코디잉

[혼공컴운]_2주차_Chapter 04 본문

Reading/혼자 공부하는 컴퓨터 구조+운영체제

[혼공컴운]_2주차_Chapter 04

yong_ღ'ᴗ'ღ 2025. 7. 13. 00:50
📘 책: 『혼자 공부하는 컴퓨터 구조+운영체제』
🗓️ 기간: 2주차
📍 범위: Chapter 04

🔍  Chapter 04 | CPU의 작동 원리

4-1) ALU와 제어장치

🧮 CPU의 주요 구성 요소

  1. ALU (산술논리연산장치): 계산 담당
  2. 레지스터: CPU 내부의 임시 저장 공간
  3. 제어장치: 명령어를 해석하고 제어 신호를 보냄

🔧 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 상태에 대한 부가 정보를 저장하는 레지스터
  • 프로그램 카운터: 메모리에서 가져올 명령어의 주소를 저장하는 레지스터
  • 범용 레지스터: 데이터와 주소를 모두 저장할 수 있는 레지스터
  • 명령어 레지스터: 해석할 명령어를 저장하는 레지스터

 

Comments