제어 장치, CU
제어 장치, CU (Control Unit) 은 CPU 내에서 명령어를 해석하고, 각 부품들 (레지스터, ALU, 메모리) 등이 어떻게 동작할 지 지시를 내리는 장치이다. 쉽게 말하면 CPU의 감독관이라고 보면 된다. 명령어를 해석해서 레지스터에 저장하거나 추출, ALU에 명령어를 지시하는 역할을 한다.
주요 역할
제어 장치는 크기 3가지의 역할을 수행한다. 명령어 해석 (Decode) 와 제어 신호 생성, 데이터 흐름 조절이다. 각각의 역할은 다음과 같다.
역할 | |
---|---|
명령어 해석 (Decode) | 메모리에서 가져온 명령어가 어떤 연산인지 해석 |
제어 신호 해석 | ALU, 레지스터, 메모리 등에 “어떻게 동작하라”는 신호 전달 |
데이터 흐름 조절 | 어떤 값이 어디서 어디로 가야 하는 지 결정 (경로 제어) |
동작 예시
ADD R1, R2, R3
를 예로 든다면, 다음과 같이 동작한다.
-
명령어 Decode
R2 + R3를 계산하여 R1에 저장하라는 뜻
-
ALU에 신호 전달
덧셈 회로 생성 (ALUControl = 0000) 신호 전달
-
레지스터에게 신호 전달
R2, R3 데이터 추출 및 R1에 결과값 저장
-
메모리 접근이 필요할 경우
Load/Store 명령이라면 메모리 컨트롤 회로 동시 제어
생성 방식
제어 장치 구현 방식은 2가지로 이루어져있다.
방식 | ||
---|---|---|
하드와이어드 | 회로로 고정된 제어 | 빠르지만 고정 |
마이크로프로그램 | 마이크로 명령으로 저장 | 느리지만 유연 |
대부분의 RISC CPU는 하드와이어드, 복잡한 CISC CPU는 마이크로 프로그램 방식을 사용한다.
참고자료
※ 이 글은 『이것이 컴퓨터 과학이다』 책을 기반으로, 다양한 자료를 참고해 작성했습니다.
『Computer Organization and Design』 – David A. Patterson