CPU는 ALU, 제어장치, 레지스터들로 이루어져있음.
ALU
ALU는 제어장치로부터 어떤 연산을 수행해야 하는지(제어 신호)와
레지스터에서 연산할 데이터(피연산자)를 받아 산술 논리 연산 등을 실행함.
연산 결과의 경우 바로 메모리에 저장되는 것이 아니라 레지스터에 일시적으로 저장되는데, 이 이유는 메모리 접근보다 레시스터 접근 속도가 훨씬 빠르기 때문. (원래도 느린데 계산할 때마다 메모리에 접근하면 얼마나 더 느려지겠음?) ALU는 수행 결과값(특정 숫자, 문자, 메모리 주소 등)을 레지스터에 저장함.
계산 결과뿐만 아니라 연산 결과에 대한 추가적인 상태 정보인 플래그(Flag)를 플래그 레지스터에 저장하는 작업 또한 수행하게 됨.
제어장치
제어 장치는 제어 신호(컴퓨터 부품들을 관리, 작동시키기 위한 일종의 전기 신호)를 내보내고 명령어를 해석
제어 장치가 받아들이는 정보
- 클럭 신호를 받아들임
- 클럭(clock)이란 컴퓨터의 모든 부품을 움직일 수 있게 하는 시간 단위
- 단, 한 클럭마다 하나의 움직임이 있는 것은 아님. 하나의 명령어가 여러 클럭에 걸쳐 실행될 수도 있음
- 일반적으로 클럭 속도가 높을수록 CPU의 속도도 빠름 (클럭 속도는 CPU가 초당 실행하는 사이클 수를 GHz단위로 측정한 것 자세한 사항은 인텔의 문서에서)
- 해석해야 할 명령어를 받아들임
- 명령어 레지스터에서 CPU가 해석해야 할 명령어를 받아 해석, 제어 신호 발생시킴
- 플래그 레지스터 속 플래그 값을 받아들임
- 플래그 레지스터 속 플래그 값을 참고하여 제어 신호 발생시킴
- 시스템 버스 중 제어 버스로 전달된 제어 신호를 받아들임
- 제어 버스를 통해 외부로부터 전달된 제어 신호를 받아들임
제어 장치가 내보내는 정보
- CPU 내부에 전달하는 제어 신호
- ALU에 수행할 연산을 지시하는 제어 신호
- 레지스터에 레지스터 간 데이터 이동 혹은 레지스터 안에 저장된 명령어를 해석하기 위한 제어 신호
- CPU 외부에 전달하는 제어 신호 (제어 버스를 통해 제어 신호를 내보냄)
- 메모리에 저장된 값을 읽거나 새로운 값을 쓰기 위한 제어 신호
- 입출력장치의 값을 읽거나 새로운 값을 쓰기 위한 제어 신호
'CS' 카테고리의 다른 글
[혼공컴운] 명령어 사이클과 인터럽트 (0) | 2023.03.31 |
---|---|
[혼공컴운] 프로세스 개요 (0) | 2023.03.30 |
[혼공컴운] 레지스터 (0) | 2023.03.28 |
[혼공컴운] 운영체제 시작하기 (0) | 2023.03.16 |
[혼공컴운] 명령어의 구조 (0) | 2023.03.14 |