Published on

CU(control unit)

Authors
  • avatar
    Name
    유사공대생
    Twitter

실행장치(CU-control unit, execution unit)

컴퓨터의 실행장치(execution unit)는 제어 장치(contorl unit)라고도 알려져 있으며, 컴퓨터의 대장 역할을 한다.

실행 장치는 메모리의 정해진 장소에서 명령코드와 피연산자들을 가져와서 ALU에게 어떤 연산을 수행할 지 알려주고, 결과를 메모리에 돌려준다.

어떻게 실행장치가 이런 일을 할 수 있을까? 우리는 실행장치에게 명령어 목록을 제공한다. 이 명령어는 위치(주소)에 있는 수를 12에 있는 수와 더해서 결과를 위치 14에 넣어라와 같은 내용이다.

이런 명령어는 메모리에서 찾을 수 있다. 앞서 말한 방식으로 실행되는 컴퓨터를 프로그램 저장 방식 컴퓨터(stored-program computer) 라고 부른다.

명령어

명령어(instruction)는 컴퓨터에게 어떤 일을 할 지 알려주는 비트 패턴이다. 명령어의 비트 패턴은 CPU마다 고유한 설계에 속한다. 숫자와 달리 명령어에는 공통 표준이 없다. 그래서 똑같은 inc A 명령어라고 해도 인텔 Core i7 CPUARM Cortex-A CPU와 다른 비트 패턴을 사용할 가능성이 높다.

실행 장치가 명령어를 가져오는 방법

실행장치는 프로그램 카운터(program counter)를 사용하여 메모리에서 명령어를 가져와야 하는 위치를 알 수 있다.

image

위 그림처럼 프로그램 카운터도 레지스터의 일종이며, 메모리와 별도의 특별한 곳에 위치한다. 프로그램 카운터는 순수 레지스터대신 카운터로 이뤄진다. 프로그램 카운터에는 메모리 주소가 들어있다. 즉, 프로그램 카운터는 메모리 위치를 가리킨다.(또는 참조-reference한다.) 실행장치(CU)는 프로그램 카운터가 가리키는 주소에서 명령어를 읽어온다.

특별한 경우가 아니면 명령어를 수행한 뒤에는 다음 명령어를 메모리의 다음 위치에서 가져올 수 있도록 프로그램 카운터가 증가된다.(명령어 크기가 프로그램 카운터에 더해진다는 뜻이다.)

CPU마다 정해진 초기 프로그램 카운터 값이 있으며, CPU 전원이 들어오면 PC는 이 값으로 설정된다.

  • 이렇게 초기화되는 PC 값을 리셋 벡터(reset vector)라고 부르며, CPU마다 다르고 CPU가 리셋되는 원인에 따라 다른 리셋 벡터가 쓰일 수도 있다.

컴퓨터는 이런 방식으로 메모리의 정해진 위치에서 명령어를 찾고, 그 명령어대로 동작한다. 컴퓨터는 이런 과정을 반복하면서 프로그램을 실행한다.