컴퓨터 구조를 알아야하는 이유과 컴퓨터 구조의 큰 그림
목차(T.O.C)
1. 컴퓨터 구조를 알아야하는 이유
1-1. 문제해결 능력향상
1-2. 성능 , 용량 , 비용의 선택이 가능
2. 컴퓨터가 이해하는 정보
2-1. 데이터
2-2. 명령어
3. 컴퓨터의 4가지 핵심부품
3-1. ram
3-2. cpu
4. 컴퓨터의 4가지 핵심부품을 연결
4-1. 메인보드
4-2. 시스템 버스
1. 컴퓨터 구조를 알아야하는 이유
처음 프로그래밍 공부를 시작하면 프로그래밍 언어의 문법부터 학습함.
프로그래밍 언어의 문법과 함께 컴퓨터의 근간을 알아야한다.
1-1. 문제해결 능력 향상
분명 코드를 제대로 작성했는데 ... 왜 작동안함?
컴퓨터 구조를 안다면,
컴퓨터를 이렇게 미지의 대상에서 보는 것에서 나아가 분석의 대상으로 컴퓨터를 관조할 수 있다
1-2. 성능 , 용량 , 비용 선택이 가능
어떤 서버 컴퓨터를 고를까 고민할 때, cpu 용량 하드디스크 등을 선택해야하는데
이떄 용량과 비용이 천차만별이다.
컴퓨터 구조를 알면 고르기 수월하다.
2. 컴퓨터가 이해하는 정보
컴퓨터가 이해하는 정보는 데이터와 명령어 2개 뿐이다.
2-1. 데이터
숫자, 문자, 이미지, 동영상과 같은 정적인 정보/ 컴퓨터와 주고받는 내부에 저장된 정보를 통칭하기도 한다.
2-2. 명령어
컴퓨터는 결국 명령을 처리하는 기계이다.
명령어는 컴퓨터를 실질적으로 움직이는 정보로 데이터는 명령어를 위한 일종의 재료이다.
ex> 명령어의 생김새와 동작방식
1과 2를 더하라-> 1과 2는 데이터
'안녕하세요'를 출력하라-> 안녕하세요는 데이터
3. 컴퓨터 네가지 핵심부품
cpu, 메모리(메인 메모리= 주기억장치), 보조기억장치, 입출력 장치
3-1. 메모리

1. 현재 실행되는 프로그램= 프로세스의 명령어와 데이터를 처리하는 부품
2. 각 번지에 주소가 있어서, 내가 원하는 데이터와 명령어가 몇 번지에 저장되어있는지 알 수 있다.

3-2. cpu(컴퓨터의 두뇌)
메모리에 저장된 명령어를 읽어들이고, 해석하고 실행하는 부품
1. ALU- 계산기
2. 레지스터- cpu 내부의 작은 저장장치(임시저장장치)
3. 제어장치- 제어신호를 보내고, 명령어를 해석하는 장치
ex> 1번지 명령어 실행
cpu의 제어장치가 1번지에 접근하여 명령어를 읽어들임
읽어들인 1번지의 명령어를 cpu 의 레지스터에 가져옴.
제어장치가 명령어를 해석하고 3번지와 4번지의 데이터가 필요하다는 것을 파악함
제어장치가 3번지와 4번지에서 데이터를 가져옴.(명령어 실행)
가져온 데이터를 cpu의 레지스터에 저장함.
alu 가 연산을 수행하고 결과를 다시 레지스터에 저장한다.
ex> 2번지 명령어 실행
cpu의 제어장치가 2번지의 명령어를 읽어들여서 레지스터에 저장한다.
레지스터에 있는 명령어를 해석하여 연산결과를 저장해야함을 파악한다.
얻은 연산결과인 220을 레지스터에서 메모리로 이동시킨다(명령어 실행)
3-3. 보조기억장치
주기억장치(메모리)는 비싸고 전원이 꺼지면 내용을 잃는다
-> 전원이 꺼져도 보관할 프로그램을 저장하는 장치
메모리는 현재 실행되는 프로그램을 저장. 보조기억장치는 보관할 프로그램을 저장.
3-4. 입출력 장치
컴퓨터 외부와 연결되어 컴퓨터 내부와 정보를 교환하는 장치
보조기억장치와 다른점-> 딱 구분되는 개념은 아님. 보조기억장치는 메모리를 보조하는 특별한 입출력 장치
4. 컴퓨터의 4가지 핵심 부품을 연결
4-1. 메인보드
컴퓨터의 4가지 핵심부품을 연결하는 판
4-2. 버스
정보를 주고받는 통로를 버스라고 하고, 거기서 컴퓨터의 핵심부품을 연결하는 버스를 시스템버스라고 한다.

1. 시스템 버스의 내부구성
- 주소버스 : 주소를 주고받는 통로
- 데이터 버스 : 명령어와 데이터를 주고받는 통로
- 제어버스 : 제어신호를 주고받는 통로
ex> 메모리 값 읽기
메모리에 저장된 명령어를 읽어들이기 위해서 제어장치에서 보낸 제어신호인 읽고자 하는 주소 정보가 제어버스와 주소버스를 통해 메모리에 전달됨
해당 메모리의 주소에 있는 명령어를 데이터 버스를 통해 읽어와서 레지스터에 저장함.

ex> 메모리 값 쓰기
메모리에 명령어를 작성하기 위해 제어장치가 메모리에 주소와 데이터와 함꼐 메모리 쓰기라는 제어신호를 보낸다.
이때 메모리 주소는 주소버스, 데이터는 데이터버스, 제어신호는 제어버스를 통해 메모리에게 전달된다.
