출처: https://devraphy.tistory.com/298 [개발자를 향하여:티스토리]


⭐ CPU의 구성요소



  • 컴퓨터에서 데이터 처리를 수행하는 부분을 CPU라고 한다.
  • CPU는 다음 세가지 구성요소로 이루어져 있다.
  1. 레지스터 세트(RS : Register Set)
    명령을 실행하는데 필요한 데이터를 보관하는 역할

  2. 산술논리 장치(ALU : Arithmetic Logic Unit)
    명령을 수행하기 위한 마이크로 연산을 수행하는 역할
    마이크로 연산은 레지스터에 저장된 데이터를 조작하기 위해 실행되는 동작을 말한다.

  3. 제어 장치(CU : Control Unit)
    레지스터 세트 간의 정보 전송을 감시하는 역할
    ALU에게 수행할 동작을 지시하는 역할





📌 레지스터의 종류



1. 특수 전담 레지스터

  • 가장 중요한 레지스터
  • 용도(역할)가 정해져 있는 레지스터
  • 사용자가 직접 접근할 수 없음

📍 PC(Program Counter)

  • 프로그램을 순차적으로 처리하도록 프로그램의 순서를 카운트하는 역할
  • 어떤 명령어가 몇번째 순서에 실행되는지를 기록하는 역할
  • 다음에 실행될 명령어의 메모리 주소를 기억하고 있음
  • 다른 이름으로 IC(Instruction Counter) 또는 LC(Location Counter)라고도 부른다.

📍 MAR(Memory Address Register)

  • 메모리 주소록
  • 데이터의 위치를 알고 있다.
  • 비어있는 메모리 주소를 알고있다.

📍 MBR(Memory Buffer Register)

  • 메모리에 저장되기 전 임시적으로 저장되는 공간
  • MAR에게 메모리 주소를 요청한다.

📍 IR(Instruction Register)

  • Decoder에 들어가기 전에 명령어를 기억하는 역할
  • 명령어의 op-code를 확인하여 어떤 연산을 수행하는지 찾는다.


2. 데이터 레지스터(Data Register)

  • 주기억장치에서 가져온 데이터를 저장하는 레지스터
  • 가져온 데이터의 크기와 동일한 크기를 할당 한다.

📍 MBR(Memory Buffer Register)

-CPU가 메모리로부터 읽거나, 저장할 데이터 자체를 보관하는 레지스터

📍 WR(Working Register) / Accumulator

  • 산술논리연산을 실행할 때, 연산 과정의 중간값이나 결과를 저장하는 역할
  • ALU와 직접 연결되어 있는 레지스터

📍 GR(General Register) / GPR(General Purpose Register)

  • 다목적으로 사용되는 레지스터
  • 여러가지 레지스터의 집합을 의미한다.
  • ALU와는 연결되어 있지 않다.


3. 주소 레지스터(Address Register)

  • 주기억장치에 접근하기 위해서, 주기억장치의 주소 일부 또는 전부를 기억하는 레지스터

📍 PC(Program Counter)

  • 다음 실행할 프로그램의 위치를 저장하고 있는 레지스터

📍 MAR(Memory Address Register)

  • CPU가 명령에 필요한 데이터를 가져오기 위해 데이터 주소를 저장하고 있는 레지스터

📍 Base Register(BR)

  • 메모리 주소를 계산하는 레지스터, 상대주소를 절대주소로 바꾸는 데 필요한 기준주소 보관

📍 Index Register

  • 어떤 데이터를 다른 곳으로 연속해서 옮기고자 할 때 사용되는 레지스터
  • 옮길 장소의 주소와 옮겨지는 장소의 주소를 모두 갖고 있다.


4. 그 외

📍 OP(Operation Code)

  • op-code라고도 함
  • IR에 전달되는 명령어의 구조 중 하나로, 명령 코드를 의미한다.
  • 어떤 연산을 수행해야 하는지를 명시하는 부분이다.

📍 OPRD(Operand)

  • 피연산자라는 의미로, 연산이 되는 대상을 의미한다.
  • 즉, 어떤 데이터를 의미한다.

📍 Decoder

  • 실행된 명령어를 해석하는 역할

📍 SR(Status Register)

  • CPU의 상태를 나타내는 특수목적의 레지스터
  • 다음과 같은 연산 결과의 상태를 표시한다.
  • Z(zero), S(sign / 부호), V(overflow), C(carry), I(Interrupt) 등을 표시한다.




profile
⛅🛩️ 먼 길을 돌아서 온 프론트엔드 개발자 ✈️⛅

0개의 댓글