[Chapter 04] CPU의 작동 원리 - 1 ALU와 제어장치

Kim Seohyun·2024년 1월 10일
0
post-thumbnail

ALU, 플래그, 제어장치, 제어 신호
CPU의 구성 요소 중 ALU와 제어장치를 알아봅니다. ALU와 제어장치가 어떤 정보를 내보내고 받아들이는지를 중심으로 두 장치의 역할을 학습합니다.

ALU

ALU(Arithmetic Logic Unit, 산술연산장치)는 연산한 결괏값과 플래그를 내보내는 부품이다. 그래서 레지스터를 통해 피연산자를 받아들이고, 제어장치로부터 수행할 연산을 알려주는 제어 신호를 받아들인다.
내보내는 정보로는 연산을 수행한 결과가 있으며 메모리가 아닌 레지스터에 일시적으로 저장된다. CPU가 메모리에 접근하는 속도는 레지스터에 접근하는 속도보다 훨씬 느리기 때문에 프로그램 실행 속도를 보다 높일 수 있다.
때때로 결괏값뿐만 아니라 연산 결과에 대한 추가적인 정보인 플래그도 내보낸다. 대표적인 플래그에는 부호(연산한 결과의 부호), 캐리(올림수나 발림수 발생했는지), 오버플로우(오버플로우가 발생했는지), 슈퍼바이즈(커널 모드 또는 사용자 모드)가 있다. 해당값은 플래그 레지스터에 저장된다.

제어장치

제어장치는 제어 신호를 내보내고, 명령어를 해석하는 부품이다. 제어 신호는 컴퓨터 부품들을 관리하고 작동시키기 위한 일종의 전기 신호이다.

제어 장치는 크게 네 가지 정보를 받아들인다.

  • 클럭 신호
    클럭이란 컴퓨터의 모든 부품을 움직일 수 있게 하는 시간 단위이다. 클럭의 주기에 맞춰 한 레지스터에서 다른 레지스터로 데이터가 이동되거나, ALU에서 연산이 수행되거나, CPU가 메모리에 저장된 명령어를 읽어 들이는 것이다. 이때 하나의 명령어가 여러 클럭에 걸쳐 실행될 수 있음에 유의하자.
  • 해석해야 할 명령어
    CPU는 명령어 레지스터에 저장된 명령어를 받아들이고 해석한 뒤, 제어 신호를 발생시켜 컴퓨터 부품들에 수행해야 할 내용을 알려준다.
  • 플래그 레지스터 속 플래그 값
    플래그 값을 받아들이고 이를 참고하여 제어 신호를 발생시킨다.
  • 시스템 버스, 그중에서도 제어 버스로 전달된 제어 신호
    제어 신호는 CPU뿐만 아니라 입출력장치를 비롯한 CPU 외부 장치도 발생시킬 수 있다. 제어장치는 제어 버스를 통해 외부로부터 전달된 제어 신호를 받아들이기도 한다.

제어장치가 내보내는 정보에는 크게 두 가지가 있다.

  • CPU 외부에 전달하는 제어 신호(제어 버스로 제어 신호를 내보냄)
    • 메모리에 전달하는 제어 신호
      : 제어 장치가 메모리에 저장된 값을 읽거나 메모리에 새로운 값을 쓰고 싶다면 메모리로 제어 신호를 내보낸다.
    • 입출력장치에 전달하는 제어 신호
      : 제어장치가 입출력장치의 값을 읽거나 입출력장치에 새로운 값을 쓰고 싶을 때 입출력장치로 제어 신호를 내보낸다.
  • CPU 내부에 전달하는 제어 신호
    • ALU에 전달하는 제어 신호
      : 수행할 연산을 지시하기 위한 제어 신호는 내보낸다.
    • 레지스터에 전달하는 제어 신호
      : 레지스터 간에 데이터를 이동시키거나 레지스터에 저장된 명령어를 해석하기 위해 제어 신호를 내보낸다.

4가지 키워드로 정리하는 핵심 포인트

  • ALU는 레지스터로부터 피연산자를 받아들이고, 제어장치로부터 제어 신호를 받아들입니다.
  • ALU는 연산 결과와 플래그를 내보냅니다.
  • 제어장치를 클럭, 현재 수행할 명령어, 플래그, 제어 신호를 받아들입니다.
  • 제어장치는 CPU 내부와 외부로 제어 신호를 내보냅니다.
profile
EWHA Cyber Security 19

0개의 댓글