CPU의 작동 원리

오쏭·2022년 10월 20일
1

운영체제

목록 보기
1/1
post-thumbnail

ALU와 제어장치

Before start
CPU는 메모리에 저장된 명령어를 읽고, 해석하고, 실행하는 장치입니다. CPU는 계산을 담당하는 ALU, 명령어를 읽어 들이고 해석하는 제어장치, 작은 임시 저장 장치인 레지스터로 구성되어 있습니다.
ALU와 제어장치가 어떤 정보를 주고 받는지를 중점으로 두고 학습하시면 됩니다!

ALU는 레지스터로부터 피연산자를 받아들이고, 제저장치로부터 제어 신호를 받아들입니다.

결과값 : CPU가 메모리에 접근하는 속도가 레지스터에 접근하는 속도보다 훨씬 느리기 때문에 연산을 수행한 결과값은 바로 메모리에 저장되지 않고, 일시적으로 레지스터에 저장됩니다.
플래그 : 연산 결과에 대한 추가적인 상태 정보
ex) 연산의 결과가 레지스터보다 큰 상황이 발생했을 때 오버플로우 플래그를 추가적으로 내보낸다.
플래그 레지스터 : 플래그 값들을 저장하는 레지스터


제어장치는 제어 신호를 보내고, 명령어를 해석하는 부속 / CPU 내·외부로 제어 신호를 보낸다.

제어 신호 : 컴퓨터 부품들을 관리하고 작동시키기 위한 일종의 전기 신호

제어장치가 받아들이는 정보

  • 클럭(Clock) : 컴퓨터의 모든 부품을 움직일 수 있게하는 시간 단위 (한 박자마다 작동하는 것이 아님. 여러 클럭에 걸쳐 실행될 수 있음)
  • 명령어 : 명령어 레지스터로부터 받아 명령어를 해석하고 제어 신호를 발생시킨다.
  • 플래그 : 플래그 레지스터로부터 플러그 값을 받아 이를 참고하여 제어 신호를 발생시킨다.
  • 제어 신호 : 제어 버그로 전달된 제어 신호를 받아들인다.

레지스터

레지스터는 CPU 제조사마다 크기나 종류가 매우 다양합니다. 그 중 가장 중요하게 다뤄지는 레지스터 8개 있습니다.

  1. 프로그램 카운터
    : (PC;Program Counter or 명령어 포인터 IP;Instruction Pointer)는 메모리에서 읽어들일 명령어의 주소를 저장한다.
  2. 명령어 레지스터
    : 메모리에서 읽어 들인 명령어를 저장하는 레지스터
  3. 메모리 주소 레지스터
    : 메모리의 주소를 저장하는 레지스터
  4. 메모리 버퍼 레지스터
    : 메모리와 주고받을 값을 저장하는 레지스터
  5. 플래그 레지스터
    : 연산 결과 또는 CPU 상태에 대한 부가적인 정보를 저장하는 레지스터
  6. 범용 레지스터
    : 다양하고 일반적인 상황에서 자유롭게 사용하는 레지스터
  7. 스택 포인터
    : 스택에 마지막으로 저장한 값을 위치를 저장하는 레지스터
  8. 베이스 레지스터
    : 명령이 시작되는 시작 번지를 기억하는 레지스터

명령어 사이클과 인터럽트

프로그램은 수많은 명령어로 이루어져 있고, CPU가 프로그램 속 각각의 명령어를 일정한 주기로 반복하며 실행하는데 이 주기를 명령어 사이클이라고 합니다.

메모리에 있는 명령어를 CPU로 가지고 오는 단계를 인출 사이클이라고 하고, CPU로 가져온 명령어를 실행하는 단계를 실행 사이클이라고 합니다.

0개의 댓글