[computer science] ALU와 제어장치

인철·2024년 2월 23일

Computer Science

목록 보기
7/10
post-thumbnail

ALU와 제어장치

ALU

ALU가 받아들이는 정보

ALU가 계산을 하기 위해서는 피연사자와 수행할 연산이 필요하다.
ALU는 레지스터를 통해 '피연산자'를 받아들이고, 제어장치로부터 수행할 연산을 알려주는 '제어 신호'를 받아들인다. 받아들인 피연산자와 제어신호로 연산, 논리 연산 등 다양한 연산을 수행한다.

ALU가 내보내는 정보

연산을 수행한 결과는 메모리에 저장 되지 않고 일시적으로 레지스터에 저장된다.
CPU가 메모리에 접근하는 속도는 레지스터에 접근하는 속도보다 훨씬 느린다. ALU가 연산할 때 마다 결과를 메모리에 저장한다면 당연하게도 CPU는 메모리에 자주 접근하게 되고, 이는 프로그램 실행 속도를 늦출 수 있기 때문에 메모리가 아닌 레지스터에 우선 저장하는 것이다.
ALU는 계산결과와 더불어 '플래그'를 내보내는데 연산결과에 대해 추가적인 상태 정보는 '플래그'라고 한다.

플래그 종류의미사용예시
부호연산한 결과의 부호를 나타낸다1일 경우 계산 결과는 음수, 0일 경우 계산 결과는 양수
제로연산 결과가 0인지 여부를 나타낸다1일 경우 연산 결과는 0, 0일 경우 연산 결과는 0이 아님
캐리연산 결과 올림수나 빌림수가 발생했는지를 나타낸다1일 경우 올림수나 빌림수가 발생, 0일 경우 발생하지 않음
오버플로우오버플로우가 발생했는지 나타낸다1일 경우 오버플로우 발생, 0일 경우 발생하지 않음
인터럽트인터럽트가 가능한지 나타낸다1일 경우 가능, 0일 경우 불가능
슈퍼바이저커널모드, 사용자 모드인지 나타낸다1일 경우 커널 모드, 0일 경우 사용자 모드

제어장치

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

( 1 ) 제어장치는 클럭 신호를 받아들인다

'클럭'이란 컴퓨터의 모든 부품을 일사불란하게 움직일 수 있게 하는 시간 단위를 말한다.
클럭의 주기에 맞춰 한 레지스터에서 다른 레지스터로 데이터가 이동되거나 ALU에서 연산이 수행되거나, CPU가 메모리에 저장된 명령어를 읽어 들이는 것이다.
컴퓨터 부품들은 클럭이라는 박자에 맞춰 작동할 뿐 한 박자마다 작동하는건 아닌다.

( 2 ) 제어장치는 '해석해야 할 명령어'를 받아들딘다

CPU가 해석해야 할 명령어는 '명령어 레지스터'라는 특별한 레지스터에 저장이 되는데 제어장치는 이 명령어 레지스터로부터 해석할 명령어를 받아들이고 해석한 뒤, 제어 신호를 발생시켜 컴퓨터 부품들에 수행해야 할 내용을 알려준다.

( 3 ) 제어장치는 플래그 레지스터 속 플래그 값을 받아들인다.

플래그 값을 받아들이고 참고하여 제어 신호를 발생시킨다.

( 3 ) 제어장치는 시스템 버스, 그중에서 제어 버스로 전달된 제어 신호를 받아들인다.

CPU뿐만 아니라 입출력장치를 비롯한 외부 장치도 발생시킬 수 있는데 제어 장치는 제어 버스틀 통해 외부로부터 전달된 제어 신호를 받아들인다.

제어장치가 내보내는 정보

  • CPU 외부에 전달하는 제어 신호
  • CPU 내부에 전달하는 제어 신호
profile
같은글이있어도양해부탁드려요(킁킁)

0개의 댓글