<Inrto>
● CPU : 메모리에 저장된 명령어를 읽어들이고, 해석하고, 실행하는 장치.
● CPU내부
* ALU : 계산 담당
* 제어장치 : 명령어를 읽어들이고 해석
* 레지스터 : 작은 임시저장 장치
<ALU>
● ALU : 연산을 하고, 연산 결과와 flag를 내보낸다.
● CPU가 메모리에 접근하는 속도는 레지스터에 접근하는 속도보다 훨씬 느리다. ALU가 연산할 때마다 결과를 메모리에 저장한다면 CPU는 당연하게도 메모리에 자주 접근하게 되고 이는 CPU 프로그램 실행 속도를 늦출 수 있다. 그래서 ALU의 결괏값을 메모리가 아닌 레지스터에 우선 저장한다.
● ALU는 저장값 외에 flag(플래그)도 함께 내보낸다. flag는 연산 결과가 음수인지, 혹은 연산 결과가 연산 결과를 담을 레지스터보다 큰지(이렇게 결과값이 너무 큰 상황은 오버플로우(overflow)라고 한다.)처럼 연산 결과에 대한 추가적인 정보 상태를 통칭 플래그flag라고 한다.
● Flag : 연산 결과에 대한 추가적인 정보 상태
*ALU가 내보내는 대표적인 플래그는 다음과 같다.
부호 플래그, 제로 플래그, 캐리 플래그, 오버플로우 플래그, 인터럽트 플래그, 슈퍼바이저 플래그.
*플래그들은 플래그 레지스터라는 레지스터에 저장되낟. 플래그 레지스터는 이름 그대로 플래그 값들을 저장하는 레지스터이다.
<제어장치>
● 제어장치 : 명령어를 읽어들이고 해석, 제어 신호를 내보내고 명령어를 해석하는 부품. 컴퓨터 부품들을 관리하고 작동시키기 위한 일종의 전기 신호
● Clock : 컴퓨터의 모든 부품을 일사불란하게 움직일 수 있게 하는 시간 단위. 똑딱똑딱 주기에 맞춰 한 레지스터에서 다른 레지스터로 데이터가 이동되거나, ALU에서 연산이 수행되거나, CPU가 메모리에 저장된 명령어를 읽어 들인다.
*다만 컴퓨터의 모든 부품이 클럭 신호에 맞춰 작동한다라는 말을, 컴퓨터의 모든 부품이 한 클럭마다 작동한다고 이해하면 안된다. 컴퓨터 부품들은 클럭이라는 박자에 맞춰 작동할 뿐 한 박자마다 작동하는 것은 아니다. 하나의 명령어가 여러 클럭에 걸쳐 실행될 수도 있다.
● 제어장치가 하는 일
(1) 클럭신호를 받아들인다.
(2) 해석해야 할 명령어를 받아들인다.
CPU가 해석해야 할 명령어는 '명령어 레지스터'라는 특별한 레지스터에 저장된다. 제어장치는 이 명령어 레지스터로부터 해석할 명령어를 받아들이고 해석한 뒤, 제어 신호를 발생시켜 컴퓨터 부품들에 수행해야 할 내용을 알려준다.
(3) 플래그 레지스터 속 플래그 값을 받아들인다.
ALU 연산에 대한 추가적인 정보 상태인 플래그는 중요한 참고사항이므로, 제어장치가 제어신호를 통해 컴퓨터 부품들을 제어할 때 꼭 참고하여 제어신호를 발생시켜야 한다.
(4) 시스템 버스, 그중에서 제어 버스로 전달된 제어 신호를 받아들인다.
제어신호는 CPU 뿐만 아니라 입출력장치(<-보조기억장치 포함)를 비롯한 CPU외부 장치도 발생시킬 수 있다. 제어장치는 제어 버스를 통해 외부로부터 전달된 제어 신호를 받아들이기도 한다.
● 제어장치가 내보내는 정보
->크게 (1)CPU내부에 전달하는 신호와 (2) CPU 외부에 전달하는 신호로 나뉜다.
(2) 이때 cpu외부로 제어 신호를 전달한다는 말은 곧, 제어 버스로 제어 신호를 내보낸다는 말과 같다.
이러한 제어 신호에는 크게 메모리를 전달하는 제어신호와 입출력장치에 전달하는 제어 신호가 있다.
제어장치가 메모리에 저장된 값을 읽거나 메모리에 새로운 값을 쓰고 싶다면 메모리로 제어신호를 내보낸다.
그리고 제어장치가 입출력 장치의 값을 읽거나 입출력 장치에 새로운 값을 쓰고 싶을 때는 입출력 장치로 제어 신호를 내보낸다.
(1) 제어장치가 cpu 내부에 전달하는 제어 신호에는 크게 ALU에 전달하는 제어 신호와 레지스터에 전달하는 제어 신호가 있다. ALU에는 수행할 연산을 지시하기 위해, 레지스터에는 레지스터 간에 데이터를 이동시키거나 레지스터에 저장된 명령어를 해석하기 위해 제어신호를 내보낸다.
'공대생 김모립 > 컴퓨터구조' 카테고리의 다른 글
명령어 구조 (0) | 2023.04.04 |
---|---|
(1) 컴퓨터 구조 개관 (0) | 2023.03.29 |
(0) 컴퓨터구조를 배워야 하는 이유 (0) | 2023.03.29 |