CPU

Vorhandenheit ·2022년 2월 16일
0

Computer Science

목록 보기
4/6

CPU

CPU 다른 말로 Processor라고도 합니다.

1. CPU 구성요소

(1) 연산장치 (ALU, Arithmetic and Logic operation Unit)

A. ALU의 구성

  • 상태 레지스터(Status Register) : 연산결과의 상태(status=flag)를 저장합니다.
  • 2의 보수화기(2's Complementer) : 음수 연산을 위해 2의 보수를 말합니다.
  • 산술연산장치 : 사칙 연산등의 산출연산을 수행합니다.
  • 논리연산장치 : NOT, AND, ORO, XOR 등의 논리 영상을 수행합니다.
    = 시프트 레지스터 : 비트열을 이동시키는 기능을 합니다.

(2) 제어 장치 (Control Unit)

A. CU 구성

  • 제어 메모리(Control Memory) : 제어장치 내부의 기억장치로 제어신호 발생에 필요한 마이크로 명령어들이 마이크로 프로그램으로 저장됩니다.
  • 명령어 해독기(Instruction decoder) : IR에 들어온 명령어를 해독해 연산코드를 구합니다. 이를 근거로 연산코드가 지시하는 동작을 실행한 제어 서브루틴의 시작 주소를 마이크로 프로그램에서 찾아냅니다
  • 주소 해독기(address decoder) : 명령어의 오퍼랜드에서 유효주소나 간접수로를 찾아 실제 사용할 수 있는 유효주소를 만들어 레지스터에 저장합니다.
  • 제어신호 발생기 : CPU 내외부의 각 부분에 필요한 제어신호를 만듭니다.
  • 타이밍 발생회로 : 제어신호 발생을 위한 정확한 타이밍을 만들어냅니다.
  • 기타 장치들 : 마이크로명령어를 일시적으로 저장하는 버퍼 레지스터, 제어 메모리의 주소를 저장하는 레지스터, 마이크로명령어의 실행순서를 결정하는 장치등

(3) 레지스터 (Register)

CPU내의 임시 기억장소로 처리할 명령이나 연산의 중간 값 등을 일시적으로 저장합니다.

A. 레지스터 종류

  • GPR(General Purpose Register) : 연산에 필요한 데이터나 연산 결과를 임시로 저장하는 레지스터 (범용레지스터)

  • SPR(Special Purpose Register) : 특별한 용도로 사용하는 레지스터, 용도와 기능에 따라 구분되는 레지스터 (특수 목적 레지스터)

    	- PC(Program Counter) : 다음에 인출할 명령어 주소를 저장
    • IR(Instruction Register) : 현재 수행 중인 명령어를 저장(가장 최근에 인출된 명령어 저장)
    • MAR(Memory Address Register) : 메모리로부터 읽어오거나 메모리에 쓰기 위한 주소를 저장
    • MBR(Memory Buffer Register) : 메모리로부터 읽어온 데이터 또는 메모리에 써야할 데이터 저장
    • AC(Accumulator) : 연산 결과를 자신에게 다시 누적시키는 장치(누산기)
    • Flag Register : 연산결과의 상태를 나타내는 플래그 비트들로 구성 (=status register)
    • SP(Stack Pointer) : 현재 실행 중인 스레드의 스택 Top 가상 주소를 저장
    • Count Register : 반복 명령어 사용시 반복 카운터로 사용되는 값을 저장

(4) Bus

장치와 장치 사이에 정보를 주고받기 위한 전송선입니다.

  • 주소 버스(Address Bus)
    CPU에서 주기억장치 특정 위치를 가리키기 위한 단방향 회선입니다.

  • 데이터 버스(Data Bus)
    CPU와 메모리 사이에 데이터를 주고받기 위한 양방향 회선입니다.

  • 제어 버스(Control Bus)
    CPU나 채널에서 입출력 장치에 동작을 지시하기 위하여 제어신호를 전달하는 단방향 회선입니다./

(5) 기억장치

  • 주 기억장치(Main memory)

  • 캐시메모리

  • 보조기억장치

출처

https://gamedevlog.tistory.com/69
http://itnovice1.blogspot.com/2019/09/cpu.html

profile
읽고 기록하고 고민하고 사용하고 개발하자!

0개의 댓글