본문 바로가기
Computer Science/Computer Architecture

[컴퓨터 구조] ALU, 제어 장치

by 진현개발일기 2024. 9. 17.

■ 간단한 정의

(1) ALU는 계산하는 장치
(2) 제어장치는 제어 신호를 발생시키고 명령어를 해석하는 장치

 

* 이전에 정보처리 기능사를 공부하면서 정리했었던 '명령어 처리 과정' 글에 덧붙이는 포스팅임.

https://yjhdevelopdiary.tistory.com/123 

 

[컴퓨터] 명령어 처리 과정

■ 명령어 처리 [명령어실행 순서] 1. 프로그램 카운터(PC)에 저장된 주소(값)를 메모리 주소 레지스터(MAR, 번지 레지스터)에 옮긴다. 2. 명령어를 주기억장치로부터 인출(Fetch) 한다. 3. 프로그램 카

yjhdevelopdiary.tistory.com

■ ALU 

 

계산을 하기 위해서는 (1) 피연산자 (2) 수행할 연산이 필요함
(1)레지스터로부터 불러오고 (2) 제어장치로부터 제어 신호를 통해 불러옴.결과값은 레지스터에 저장한다.

 

※ 매모리가 아니라 레지스터에 저장하는 이유는 CPU가 메모리에 접근하는 속도보다 레지스터에 접근하는 속도가 훨씬 빠르기 때문이다.

 

ALU가 내보내는 정보 중에선 플래그(Flag)라고 하는 것이 또한 있다. 플래그는 연산 결과에 대한 부가 정보이다.

이러한 플래그 정보는 '플래그 레지스터'라는 저장 장치에 따로 저장된다.

 

이러한 플래그의 종류 및 명칭은 제조사마다 약간은 다르지만 공통적으로 사용되는 플래그들은 아래와 같다.

종류 의미
부호 플래그 연산 결과의 부호를 나타냄 (1: 음수, 0: 양수)
제로 플래그 연산 결과가 0인지를 나타냄 (1: 연산 결과는 0, 0: 0이 아님)
캐리 플래그 연산 결과 올림수나 빌림수가 발생했는가? (1: 발생함, 0: 발생 안함)
오버플로우 플래그 오버플로우가 발생했는가? (1: 발생함, 0: 발생 안함)
인터럽트 플래그 인터럽트를 받아들일 것인가? (1: 요구를 받아들임, 0: 외부 인터럽트 요청 안받음)
운영체제 모드 플래그 커널(Kernel) 모드 혹은 사용자(User) 모드인지를 나타냄.
(1: 커널 모드, 0: 사용자 모드)

 

ALU로부터 정보를 받아 저장되는 플래그 레지스터의 모습은 간략하게 그려보면 아래와 같다.

■ 제어장치


· 제어 장치는 클럭(Clock) 단위로 실행된다. 하나의 명령어는 여러 클럭에 걸쳐 실행될 수 있다.

 

· 제어장치가 해석할 명령어는 '명령어 레지스터'라고 하는 저장소에 저장이 된다.


· 플래그 레지스터에 등록되어있는 플래그 정보를 받아온다. 


· CPU가 아닌 I/O 및 그 외 부품에서 발생시키는 (CPU로 향하는) 제어 신호를 받아들이기도 한다. 이는 제어버스(Bus)를 통해 받아들인다.


· 제어장치는 클럭(clock), 현재 수행해야할 명령어 및 플래그, 제어 신호를 받아들인다.

· 제어장치가 내보내는 신호는 CPU 내부[레지스터, ALU]에 전달하는 제어 신호와 외부[메모리, I/O, 보조기억장치]에 전달하는 제어 신호가 있다.


· ALU에 보내는 신호는 수행할 연산을 지시하기 위해, 레지스터에게는 레지스터 간 데이터 이동 혹은 저장된 명령어 해석을 지시하기 위해 제어 신호를 보낸다.

 

 

728x90