Intro. 컴퓨터의 구성
- 컴퓨터가 이해하는 정보 :
데이터, 명령어
- 컴퓨터의 네 가지 핵심부품 :
CPU, 메모리(주기억장치), 보조기억장치, 입출력장치

1. 입출력장치
1️⃣ 입력장치
- 사용자가 입력장치를 통해 컴퓨터에 명령을 요청하거나 데이터를 입력함
- 키보드, 마우스, 터치스크린, 마이크, 스캐너 등
2️⃣ 출력장치
- 컴퓨터가 출력장치를 통해 사용자에게 명령이나 데이터를 입력할 수 있는 화면을 보여주거나 명령에 대한 처리결과를 보여주고 들려줌
- 모니터, 스피커, 프린터 등
2. CPU
1️⃣ CPU의 구성

산술논리 연산장치(ALU) : 비교, 판단, 연산을 담당
제어부(CU)와 내부버스 : 명령어의 해석과 올바른 실행을 위해 CPU를 내부적으로 제어함
레지스터(Registers) : 처리할 명령어를 저장함
캐시메모리(L1) : 처리속도를 높여주는 역할
📌 (프로세서) 레지스터
- 연산에 필요한 데이터를 저장하고 빠른속도로 접근할 수 있는 저장공간
- 프로세서에 위치한 고속 메모리
- 극 소량의 데이터나 처리중인 중간결과와 같은 프로세서가 바로 사용할 수 있는 데이터를 담고 있는 영역
- 범용 레지스터 : 연산에 필요한 데이터나 연산결과를 임시 저장
- 특수목적 레지스터 : 메모리주소 레지스터, 프로그램 카운터, 명령어 레지스터, 메모리버퍼 레지스터, 누산기
📌 제어장치 (CU)
- 제어부 : 주기억장치에 저장되어 있는 명령어를 순서대로 호출하여 해독 → 제어신호를 발생시켜 컴퓨터의 각 장치를 동작하도록 하는 장치
- 내부버스 : 기억, 연산, 제어기능을 실현하기 위해 제어부 사이를 연결하는 버스
📌 연산장치 (ALU)
- 논리연산 (덧셈, 뺄셈, 비교연산) 수행
- 산술 논리 장치
2️⃣ CPU의 동작
- 기계어(0, 1) → 어셈블리어 → 프로그래밍언어
① 명령어 인출
- 제어장치(CU)가 수행할 명령어 정보를 가져옴
② 명령어 해독
- opcode 명령어 코드를 인출하고 opcode의 성격에 맞게 레지스터를 준비시킴
③ 실행
- 해독된 명령어를 수행함
- 산술/논리 연산이라면, ALU가 주체가 되어 실행
④ 반영
- 명령어 수행 결과를 반영하므로써 명령어 수행의 한 사이클이 끝남
3️⃣ CPU의 성능
📌 클럭
- CPU 내부에서 일정한 주파수를 가지는 신호
- 1Hz(헤르츠)는 1초에 한 번의 주기, 1GHz는 1초에 1기가바이트 (1024메가)
- 클럭 주파수가 빠를수록 제한된 시간에 더 많은 명령을 처리할 수 있기 때문에, 더 좋은 성능의 중앙처리장치라고 할 수 있음
📌 코어
- 중앙처리 장치 역할을 하는 블록을 뜻함
- 멀티코어는 CPU가 병렬 형태로 연산을 처리함
3. 메모리
| 메모리 종류 |
|---|
| 레지스터(CPU) |
| 캐시 메모리(주기억장치) |
| 메인 메모리(주기억장치) |
| 하드 디스크(보조기억장치) |
1️⃣ 캐시메모리(L2, L3)
- (주기억장치)컴퓨터 전원이 꺼지면 지워지지만, 제일 빠르게 조회할 수 있는 저장공간
- 컴퓨터 시스템 향상을 위해 CPU와 주기억장치 사이에 있는 아주 작은 비싼 메모리
- CPU 구성의 캐시메모리(L1)와 메모리 구성의 L2, L3 캐시메모리는 다름
- 메인메모리에 있는 데이터를 캐시메모리에 불러와 CPU가 필요한 데이터를 캐시에서 먼저 찾도록 하여 시스템 전체 성능을 향상시켜 줌
2️⃣ 주 기억장치 (=메인메모리)
- 컴퓨터 전원이 꺼지면 지워지지만, 제일 빠르게 조회할 수 있는 저장공간
- 메인메모리 = 주기억장치 = RAM
- 컴퓨터의 CPU가 현재 처리중인 데이터나 명령만을 일시적으로 저장하는 휘발성 메모리
- 보조기억장치(하드디스크)보다 접근속도가 훨씬 빠름
3️⃣ 보조 기억장치
- 컴퓨터 전원이 꺼져도 지워지지 않는 저장공간
- 사용자가 사용하고자 하는 데이터와 프로그램을 반영구적으로 저장함
- 비휘발성 메모리
4. CPU와 메모리
1️⃣ CPU와 메모리의 동작
- ①
주기억장치가 입력장치에서 입력받은 데이터, 또는 보조기억장치에 저장된 프로그램을 읽어옴
- ②
CPU는 프로그램을 실행하기 위해 주기억장치에 저장된 프로그램 명령어와 데이터를 읽어와 처리하고 결과를 다시 주기억장치에 저장함
- ③
주기억장치는 처리결과를 보조기억장치에 저장하거나 출력장치로 보내 출력시킴
- ④
CPU내의 제어장치(CU)가 위 과정에서 명령어가 순서대로 실행되도록 각 장치를 제어함
2️⃣ CPU와 메모리 구조
📌 하버드구조

명령어메모리 : 프로그램에서 사용할 명령어를 모아둔 메모리
데이터메모리 : 명령어들로 사용될 메모리
ALU : 데이터를 가지고 명령어를 읽어 연산 수행
| 구분 | 내용 |
|---|
| 장점 | - 메모리가 2개(명령어+데이터)이기 때문에 역할이 나누어져 속도가 빠르다 |
| 단점 | - 구성이 많기 때문에 비싸고, 복잡한 구성으로 고장이 날 확률이 높다 |
📌 폰노이만구조

- 보조기억장치(HDD)에서 데이터들이 CPU에서 연산되기 위해 하나의 메모리로 올라감
CU : ALU에 데이터가 메모리 어디에 위치하는지 알려주는 역할
| 구분 | 내용 |
|---|
| 단점 | - 프로그램 메모리와 데이터 메모리가 구분되어 있지 않고 하나의 버스를 가지고 있기에 병목현상이 일어남 |
📌 개선된 구조
CPU 내부 - 하버드구조 : CPU 내부에 캐시를 둬서 RAM과 CPU 간 속도 차이를 줄임
CPU 외부 - 폰노이만구조 : 메모리 하나에 하나의 버스를 가지는 구조이기에 병목현상이 아직 존재함