728x90
CPU
- 메모리에 저장된 명령어를 읽어 들이고, 해석하고, 실행하는 장치
- ALU, 제어장치, 레지스터로 구성됨
ALU
- CPU 내부에서 계산을 담당함
- 연산한 결괏값과 플래그를 내보냄
받아들이는 정보
- 피연산자와 수행할 연산
- 레지스터를 통해 피연산자를 받아들임
- 제어장치를 통해 제어 신호를 받아들임
내보내는 정보
- 연산 수행 결과는 특정 숫자, 문자, 메모리 주소 등이 될 수 있음
- 위의 결괏값은 바로 메모리에 저장하지 않고 일시적으로 레지스터에 저장함
- CPU에서 메모리에 접근하는 것이 레지스터에 접근하는 것보다 훨씬 느리기 때문
- 플래그 (flag)
- 때때로 결괏값뿐만 아니라 연산 결과에 대한 추가적인 정보는 내보내야 할 때가 있음
- ex) 음수와 양수를 구분하기 위해 플래그를 사용한다.
- ex) 연산 결과가 레지스터보다 클 때 결괏값이 너무 크다라는 추가 정보를 내보냄
대표적인 플래그
제어 플래그
플래그 종류 | 기능 |
인터럽트 플래그 (I F) | 시스템 인터럽트들이 처리되거나 되지 않도록 명령한다. 인터럽트는 키보드, 디스크 드라이브, 시스템 클럭 타이머 같은 하드웨어 장치들에 의해 발생할 수 있다. 플래그값이1이면 인터럽트가 허용되고 0이면 금지한다. |
트랩 플래그 (TF) | 명령어 하나하나가 실행된 후 CPU가 정지 상태로 되어야 할지 말지를 결정한다. 이 플래그가 설정되면 오류 수정 프로그램이 프로그래머로 하여금 프로그램 명령어들을 한번에 하나씩 실행시킬 수 있어, 프로그램 추적에 의한 오류 수정이 가능해진다. 이 플래그 값이 1이면 트레이스가 허용되고 0이면 금지된다. |
상태 플래그
플래그 종류 | 기능 |
오버플로우 플래그 (OF) | 부호 있는 연산 결과가 너무 많은 비트들을 요구하여 목적지 피연산자에 저장되지 못할 때 설정된다. 이 플래그가 1이면 오버플로우가 발생할 때 이고 0이면 오버플로우가 발생하지 않았음을 나타낸다. |
부호 플래그 (SF) | 산술 및 논리 연산의 결과가 음의 수가 될 때 설정된다. 음의 수는 항상 최상위 비트 위치가 1이므로, 부호 플래그는 항상 목적지 피연산자의 부호 비트로 복사된다. 이 플래그의 값이 0이면 양수, 1이면 음수를 나타낸다. |
제로 플래그 (ZF) | 산술 및 논리 연산의 결과가 0일 때 설정된다. 이 플래그값이 1이면 두 값을 비교하여 같은 경우이고 0이면 같지 않은 경우이다. |
캐리 플래그 (CF) | 부호 없는 산술 연산 결과가 너무 커서 자리 올림이 발생할 때 설정된다. 이 플래그가 1이면 캐리가 발생한 것이고, 0이면 캐리가 발생하지 않은 것이다. |
위의 플래그 들은 레지스터 플래그에 저장됨
제어장치
- 제어장치: 제어 신호를 내보내고, 명령어를 해석하는 부품
- 제어신호: 컴퓨터 부품들을 관리하고 작동시키기 위한 일종의 전기 신호
- CPU 구성 요소 중 가장 정교하게 설계된 부품
- CPU 제조사마다 제어장치의 구현 방식이나 명령어를 해석하는 방식, 받아들이고 내보내는 정보에는 조금씩 차이가 있음
제어장치 받아들이는 정보
- 클럭 신호를 받아들임
- 클럭 Clock이란 컴퓨터의 모든 부품을 일사불란하게 움직일 수 있게 하는 시간 단위
- 클럭의 똑-딱 주기에 맞춰 한 레지스터에서 다른 레지스터로 데이터가 이동되거나, ALU에서 연산이 수행되거나, CPU가 메모리에 저장된 명령어를 읽어 들임
- -> 컴퓨터의 모든 부품이 한 클럭마다 작동한다고 이해하면 안됨
- 하나의 명령어가 여러 클럭에 걸쳐 실행될 수 있음
- 해석해야 할 명령어를 받아들임
- CPU가 해석해야 할 명령어는 명령어 레지스터라는 특별한 레지스터에 저장됨
- 제어장치는 이 명령어 레지스터로부터 해석할 명령어를 받아들이고 해석한 뒤, 제어 신호를 발생시켜 컴퓨터 부품들에 수행해야 할 내용을 알려줌
- 플래그 레지스터 속 플래그 값을 받아들임
- 플래그는 ALU 연산에 대한 추가적인 상태 정보
- 제어장치는 플래그를 참고하여 제어 신호를 발생시킴
- 시스템 버스, 그중에서 제어 버스로 전달된 제어 신호를 받음
제어장치가 내보내는 정보
- CPU 내부
- CPU 외부
- 제어 버스로 제어 신호를 내보냄 (메모리, 입출력 장치(보조기억장치))
제어장치는 메모리에 저장된 값을 읽거나 메모리에 새로운 값을 쓰고 싶을 때 메모리로 제어 신호를 내보냄
제어장치가 CPU 내부에 전달하는 제어 신호는 크게 ALU에 전달 하는 제어 신호와 레지스터에 전달하는 제어신호가 있음.
ALU: 수행할 연산 지시
레지스터: 레지스터 간에 데이터 이동, 레지스터에 저장된 명령어 해석
728x90
'컴퓨터구조' 카테고리의 다른 글
[컴퓨터구조] 명령어 사이클, 인터럽트 (0) | 2022.11.22 |
---|---|
[컴퓨터구조] 레지스터 (0) | 2022.11.22 |
[컴퓨터구조] 소스 코드와 명령어 (0) | 2022.11.21 |
[컴퓨터구조] 컴퓨터 정보 단위 (1) | 2022.11.21 |
[컴퓨터구조] 컴퓨터 핵심 부품 (0) | 2022.11.21 |