이론

CPU 레지스터

월러비 2024. 4. 9. 22:22

 

CPU 구조

  1. 산술 논리 장치 (Arithmetic logic unit) (ALU)
    1. 산술 연산 : ADD, SUB, MUL, DIV, INC, DEC, NEG
    2. 논리 연산 : AND, OR, NOT, XOR, SHIFT
    3. 상태 레지스터의 상태 변경
    4. 주로 정수 연산
    5. 부동 소수점 단위 (Floating-Point Unit)(FPU)는 포함되지 않는다.
  2. 레지스터 (Registers)
    1. CPU 내부에 있는 고속의 작은 기억장치/데이터를 임시 저장하는 기능
    2. 특수목적용 레지스터와 범용 레지스터로 구분 된다.
    3. 범용목적 레지스터
    • 데이터 저장, 주소저장 등과 같은 범용목적으로 사용된다.
    1. 데이터 레지스터
      • 데이터 레지스터는 일반적으로 데이터 저장용으로만 사용된다.
      • 누산기 : - 데이터를 일시 저장하는 레지스터다.
        • 모든 명령어를 수행할 경우 입력장치로부터 데이터를 받아 들이거나, 출력 장치로 데이터를 전송하는데 사용된다.
        • 연산이 이루어진 후에 그 결과 값이 누산기에 다시 적재된다.
    2. 주소 레지스터
      • 대체로 범용목적용으로 사용되어지거나 다음과 같은 특정 주소지정 방식을 위하여 사용된다.
      • 세그먼트 포인터 : 세그먼트 주소 지정 방식에 사용되어 진다.
        • 하나의 CPU에 여러 개가 있는 경우도 있다.
      • 인덱스 레지스터 : 인덱스 주소 지정 방식에 사용되어지는 레지스터
      • 스택 포인터 : 스택 주소지정방식에 사용되어지는데 스택의 최상위를 지정한다.
    3. 제어/조건 레지스터
      • 프로그램 카운터(PC) : 다음에 수행되어질 명령어가 있는 주소를 가진다.
        • PC 값은 사용되어지는 단어의 크기에 따라 1 혹은 4씩 증가된다.
      • 명령어 레지스터(IR) : 프로그램의 수행 중에 가장 최근에 메모리로부터 인출되어진 명령어를 가진다. (가장 최근에 메모리로부터 인출되어진 명령어가 바로 현재 수행되어지고 있는 명령어다.)
        • 명령어 레지스터가 가지는 비트 수는 명령어의 명령 코드의 비트 수와 같다.
      • 메모리 주소 레지스터(MAR) : 다음에 수행될 명령어를 인출하기 위하여 PC에 들어있는 내용이 시스템 주소버스로 출력되기 전에 일시적으로 저장되어지는 주소 레지스터.
      • 메모리 버퍼 레지스터(MBR) : 기억 장치로 쓰여질 데이터나 혹은 기억장치로부터 읽혀진 데이터를 임시로 저장하는 레지스터다.
  3. 제어 유니트(Control Unit)
    1. ALU가 올바른 기능을 수행하도록 할 뿐 만 아니라, 레지스터에 데이터를 적재하거나 그 내용을 증가 또는 클리어하고 출력하도록 내부 제어 신호를 발생시킨다.
    2. 제어유니트는 제어기억 장치로부터 마이크로명령어를 가져오고, 가져온 마이크로명령어 실행에 필요한 제어신호들을 발생하는 하드웨어 모듈이다.

CPU 구

CPU 기능

  • 명령어 인출 : 기억장치로부터 명령어를 읽어 오는 기능
    • 명령어 인출이란 물리 메모리인 RAM으로부터 명령어를 가져오는 것이다.
    • 인출되어질 명령어의 주소가 프로그램 카운터(PC)에 들어 있다.
    • 인출되어진 명령어는 명령어 레지스터(IR)에 복사된다.
  • 명령어 해석 : 인출되어진 명령어가 어떤 동작을 하는것인가를 해석하는 기능
    • 인출되어진 명령어가 무엇을 수행하는지를 알기 위하여 명령어를 해독하는 과정이다.
    • 이 과정에서 명령어 종류에 따라 필요한 경우에 피연산자의 인출이 이루어진다.
  • 데이터 인출 : 덧셈, 뺄셈 등과 같은 명령어를 실행하기 위하여 만약 데이터가 필요하다면 기억장치 혹은 입력/출력 장치로부터 데이터를 읽어 오는 기능
    • 지정된 연산을 수행
    • 간접 주소 방식의 명령어일 경우에는 기억장치로부터 데이터가 들어 있는 유효주소를 가져 온다.
  • 데이터 처리 : 명령어를 실행하기 위하여 산술연산 혹은 논리연산을 수행하는 기능
    • 실행 단계에서 수행된 연산의 결과가 레지스터 혹은 메모리에 쓰여지는 과정이다.
  • 데이터 쓰기 : 실행한 결과를 기억장치에 저장하는 기능
    • 인터럽트가 발생하면, 현재 프로세서의 상태를 저장한 후에 해당 인터럽트를 처리한다.

 

'이론' 카테고리의 다른 글

CPU ALU  (0) 2024.04.13
캐시 메모리  (0) 2024.04.13
I/O 버스  (0) 2024.04.07
직렬화  (0) 2024.04.06
마샬링  (0) 2024.04.05