[CS] CPU의 구성 요소 - 레지스터 중심

Jinny·2023년 1월 10일
0

CS

목록 보기
1/1

🧞 들어가기 전에

CPU의 기능은 연산 기능, 기억 기능, 제어 기능이 있다.
이 3가지 기능을 담당하는 CPU의 3대 구성 요소는:

  • 연산 기능을 담당하는 ALU
  • 기억 기능을 담당하는 Register
  • 제어 기능을 담당하는 Control Unit

관련하여 자세한 내용은 본문을 참고해 주시라~


🧮 1. 산술 논리 장치(Arithmatic Logic Unit)

  • 제어 장치의 명령을 받아 실제 연산을 수행
  • 덧셈, 뺄셈, 나눗셈, 곱셈과 논리 연산(True/False) 수행
  • 가산기, 누산기, 보수기, 데이터 레지스터, 오버플로우 검출기 등으로 구성

🧠 2. 기억 장치(Memory Unit) -> RAM X

  • 기억 장치라고 하면 흔히 RAM을 먼저 떠올릴 텐데 CPU의 기억장치는 RAM이 아님
  • CPU의 기억 공간인 레지스터(Register)를 의미
  • CPU 내부에서 처리할 명령어나 연산의 중간 결과값 등을 일시적으로 기억하는 임시 기억장소
  • 메모리 중에서 가장 빠른 속도를 가짐
  • 일반적으로 말하는 8비트/16비트/32비트 컴퓨터는 레지스터 한개의 크기를 의미
  • CPU 내부에는 다양한 레지스터가 있고, 각기 다른 역할(용도)을 지님

[기억장치 예시]
"1 + 2" 연산 수행 시, 다음과 같은 레지스터가 있을 수 있음

  • 1과 2의 값을 저장하기 위한 레지스토리
  • 1 + 2의 결과 값인 3을 저장하기 위한 레지스토리
  • CPU마다 레지스터 종류와 개수가 다름
  • 똑같은 용도의 레지스터가 다른 이름으로 불리는 경우가 있는데 그럼에도 불구하고 대다수 CPU가 갖고 있는 레지스터가 있음
  1. 프로그램 카운터(Program Counter)
  2. 명령어 레지스터(Instruction Register)
  3. 메모리 주소 레지스터(Memory Address Register)
  4. 메모리 버퍼 레지스터(Memory Buffer Register)
  5. 플래그 레지스터
  6. 범용 레지스터
  7. 스택 포인터
  8. 베이스 레지스터

여기서는 1~4번 레지스터까지 다루어 보려 함.

1~4번 레지스터가 어떻게 상호작용(?)하는지에 대해서
코드스쿼드에 같이 참여하고 있는 조원 🌍지구님이 블로그에 그림으로 잘 정리해 놓으셔서 필자가 쓴 본문과 해당 블로그의 그림을 같이 보면 이해가 잘 될 것 같다.

📌 2-1. PC 레지스터(Program Counter)

  • 메모리에서 가져올 (현재 or 다음)명령어의 주소를 저장

📌 2-2. IR 레지스터(Instruction Register)

  • 메모리에서 가져온 명령어를 저장

📌 2-3. MAR 레지스터(Memory Address Register)

  • CPU가 필요한 메모리의 주소를 저장

📌 2-4. MBR 레지스터(Memory Buffer Register)

  • 메모리와 주고받을 데이터와 명령어를 저장

🎚 3. 제어 장치(Control Unit)

  • 컴퓨터에 있는 모든 장치들의 동작을 지시하고 제어
  • 메모리에서 명령어 읽어옴 -> 해독 -> 해당하는 장치에게 제어 신호를 보내 수행함
  • 간단하게는 CPU 이외의 모든 장치, CPU가 자신 및 주변 기기들을 컨트롤할 수 있는 장치를 의미함
    (예: RAM, 그래픽 카드)
  • 제어장치의 구성요소는 다음과 같은 것들이 있는데 시간이 있으면 또 다뤄보겠음
    (공부할게 넘 많아...)
  1. 명령 해독기(Decoder)
  2. 부호기(Encoder)
  3. 제어 주소 레지스터(CAR)
  4. 제어 버퍼 레지스터
  5. 제어 기억장치
  6. 순서 제어 모듈

참고:

profile
블로그 이사갔어요. https://jinny-l.tistory.com/

0개의 댓글