코디잉
[혼공컴운]_2주차_Chapter 04 본문
📘 책: 『혼자 공부하는 컴퓨터 구조+운영체제』
🗓️ 기간: 2주차
📍 범위: Chapter 04
🔍 Chapter 04 | CPU의 작동 원리
4-1) ALU와 제어장치
🧮 CPU의 주요 구성 요소
- ALU (산술논리연산장치): 계산 담당
- 레지스터: CPU 내부의 임시 저장 공간
- 제어장치: 명령어를 해석하고 제어 신호를 보냄
🔧 ALU (연산 장치)
- 레지스터로부터 피연산자, 제어장치로부터 제어신호를 전달받음
- 산술/논리 연산 수행 후 결과 + 플래그를 출력
- 결과는 레지스터에, 플래그는 플래그 레지스터에 저장
- 플래그 종류: 부호 플래그, 제로 플래그, 캐리 플래그, 오버플로우 플래그, 인터럽트 플래그 등
📡 제어장치
- 명령어 해석 및 제어 신호 생성
- 컴퓨터 부품들을 관리하고 작동시키기 위한 일종의 전기적 신호
- CPU 제조사마다 차이 있음
- 제어장치가 받는 정보: 클럭(clock) 신호, 명령어 레지스터의 명령어, 플래그 값, 제어 버스로 전달된 제어 신호
- CPU 내부/외부로 제어신호를 내보냄
4-2) 레지스터
레지스터명 | 설명 |
프로그램 카운터 (PC, Program Counter) | - 다음 명령어의 메모리 주소 저장 - 각 명령어 실행 후 자동으로 다음 명령어의 주소로 업데이트 |
명령어 레지스터 (IR, Instruction Register) | - 현재 실행할 명령어 코드를 저장 - 명령어 레지스터에 현재 명령어 코드가 저장되면 프로그램 카운터는 다음 명령어가 저장된 메모리 주소를 가리킨다. |
메모리 주소 레지스터 (MAR, Memory Address Register) | - CPU가 읽거나 써야 하는 데이터의 메모리 주소를 저장 - CPU가 데이터에 접근해야 할 때, 먼저 메모리 주소를 MAR에 저장 |
메모리 데이터 레지스터(MDR, Memory Data Register) 메모리 버퍼 레지스터(MBR, Memory Buffer Register) |
- 메모리에서 읽어온 데이터나 메모리에 저장할 데이터를 임시로 저장 - CPU가 메모리에서 데이터를 읽어올 때, 읽어온 데이터는 먼저 MDR에 저장 - CPU가 메모리에 데이터를 저장해야 할 때, 저장할 데이터는 먼저 MDR에 저장 - CPU와 메모리 사이에서 데이터를 주고받는 임시 저장 공간 역할을 하여 메모리 접근 속도를 향상시키는 데 기여 - MAR이 지정한 주소에 있는 데이터를 저장 |
플래그 레지스터 (Flag Register) | - 연산결과나 CPU 상태에 대한 부가적인 정보를 저장 |
범용 레지스터 (GPR, General Purpose Register) | - 데이터 값과 메모리 주소를 모두 저장할 수 있다. - 프로세서가 계산 중에 즉시 사용할 수 있도록 데이터와 메모리 주소를 저장하는 데 사용 |
스택 포인터 (Stack Pointer) | - 스택 주소 지정 방식에 사용 - 스택의 꼭대기, 즉 스택에 어디까지 데이터가 채워져 있는지를 가리키는 레지스터 |
베이스 레지스터 (Base Register) | - 변위 주소 지정 방식(Displacement Addressing Mode)에 사용 - 베이스 레지스터의 내용에 변위 값을 더하여 피연산자의 유효 주소를 계산 |
4-3) 명령어 사이클과 인터럽트
🔁 명령어 사이클
- 일반적으로 인출, 실행, 간접, 인터럽트 사이클을 반복하며 실행된다.
🚨 인터럽트
- CPU 작업을 방해하는 신호
- 동기 인터럽트: 우리가 흔히 예외(exception)라고 부르는 것
- ex) CPU가 실행하는 프로그래밍상의 오류
- 비동기 인터럽트: 주로 입출력장치에 의해 발생하는 인터럽트
📘 [문제 풀이]
📌 p.125 확인문제 2번
- 플래그 레지스터: 연산 결과 혹은 CPU 상태에 대한 부가 정보를 저장하는 레지스터
- 프로그램 카운터: 메모리에서 가져올 명령어의 주소를 저장하는 레지스터
- 범용 레지스터: 데이터와 주소를 모두 저장할 수 있는 레지스터
- 명령어 레지스터: 해석할 명령어를 저장하는 레지스터
'Reading > 혼자 공부하는 컴퓨터 구조+운영체제' 카테고리의 다른 글
[혼공컴운]_3주차_Chapter 06 ~ 08 (3) | 2025.07.20 |
---|---|
[혼공컴운]_2주차_Chapter 05 (0) | 2025.07.13 |
[혼공컴운]_1주차_Chapter 01~03 (0) | 2025.07.06 |
Comments