본문 바로가기
공부(TIL)/스터디

[컴퓨터구조] CPU의 내부구조

by 하루지오 2024. 4. 11.

❗️Review : CPU

▶️ 메모리에 저장된 명령어를 읽어들이고, 해석, 실행하는 부품

▶️ 컴퓨터의 두뇌

▶️ 굉장히 복잡하고 정교하게 설계되어 있음

▶️ 핵심 내부 구성 부분

▶️ CPU는 명령어 사이클에 맞춰 명령어들을 실행

 

1️⃣ ALU(산술 논리 연산 장치): 계산기

2️⃣ 레지스터: CPU 내부의 작은 임시 저장 장치, 여러 개로 존재함, 프로그램 속 명령어&데이터가 실행 전후에 저장됨

3️⃣ 제어장치: 제어 신호를 내보내고 명령어를 해석하는 장치

(+) 제어 신호: 컴퓨터 부품들을 관리하고 작동시키기 위한 전기 신호 ex) 메모리 읽기, 메모리 쓰기, 입출력장치 읽기

4️⃣ 캐시 메모리 

5️⃣ 시스템 버스: 컴퓨터의 4가지 핵심 부품 간 정보 교환 통로


1. CPU의 내부 구성

ALU

⬅️ input 피연산자, 제어 신호 from 레지스터, 제어장치

➡️ output 결과값, 플래그 to 레지스터(임시), 플래그 레지스터

(CPU의 레지스터 접근 시간 < CPU의 메모리 접근 시간)

(플래그: 연산 결과에 따른 부가 정보 ex) 양수/음수 여부)

플래그
1) 부호 플래그 ex) 음수 1 양수 0
2) 제로 플래그 ex) 계산 결과0 1 계산결과!0 0
3) 캐리 플래그 ex) 올림수/발림수O 1 올림수/발림수X 0
4) 오버플로우 플래그 ex) O 1 X 0
5) 인터럽트 플래그 ex) O 1 X 0
6) 슈퍼바이저 플래그 ex) 커널 모드 실행 1 사용자모드 실행 0

 

제어 장치

⬅️ 클럭 신호, 해석할 명령어, 플래그, 제어 신호 from 명령어 레지스터, 플래그 레지스터, 외부

➡️ 제어 신호 to CPU 내부(레지스터, ALU), CPU 외부(메모리, 입출력장치)

클럭 신호
- 컴퓨터의 모든 부품을 일사불란하게 움직일 수 있게 하는 시간 단위
- 클럭 속도(Hz) ≒ CPU 속도
- 헤르츠(Hz) : 1초에 클럭이 반복되는 횟수
- 필요 이상으로 높이면 발열 발생

 

레지스터

▶️ 레지스터에 담긴 값을 보는 경우 ⭕️ 프로그래머에게 더 중요

▶️ 각 레지스터마다 역할이 다름

▶️ CPU에 따라 레지스터 종류, 갯수가 다름

 

1️⃣ 프로그램 카운터(=명령어 포인터) : 메모리에서 가져올 명령어의 주소 저장, 실행될 때마다 1씩 증가

2️⃣ 명령어 레지스터 : 해석할 명령어 to 제어 장치

3️⃣ 메모리 주소 레지스터 : 메모리의 주소 to 주소 버스

4️⃣ 메모리 버퍼 레지스터 : 메모리와 주고 받은 값 through 데이터 버스

5️⃣ 플래그 레지스터: 연산 결과, CPU 상태에 대한 추가 정보

      ex) 부호 플래그, 제로 플래그, 캐리 플래그, 오버플로우 플래그, 인터럽트 플래그, 슈퍼바이저 플래그

6️⃣ 범용 레지스터: 주소, 명령어, 데이터 등, 여러 개 존재

7️⃣ 스택 포인터 : 스택 스택 포인터 주소 지정 방식에 사용, 스택의 최상위 부분 지칭(얼마나 채워져 있는가)

8️⃣ 베이스 레지스터 : 기존 주소 저장, 변위 주소 지정 방식에서 오퍼랜드 필드 값(변위)과 해당 값을 더해서 유효 주소 획득

예외 : 순차적 실행 흐름이 끊기는 경우
- 특정 메모리 주소로 실행 흐름을 이동하는 명령어 ex) JUMP, CALL
- 인터럽트