https://ko.wikipedia.org/wiki/%EC%82%B0%EC%88%A0_%EB%85%BC%EB%A6%AC_%EC%9E%A5%EC%B9%98
ALU는 CPU 내부에서 계산을 담당하는 장치입니다.
CPU 메모리 접근 속도 < CPU 레지스터 접근 속도이므로, 연산 수행 결과는 바로 메모리에 저장되지 않고 일시적으로 레지스터에 저장됩니다.
플래그 종류 | 의미 | 예시 |
---|---|---|
부호 플래그 | 연산한 결과의 부호 | 1:음수, 0:양수 |
제로 플래그 | 연산 결과가 0인지 여부 | 1:True, 0:False |
캐리 플래그 | 연산 결과의 올림수/빌림수 발생 여부 | 1:True, 0:False |
오버플로우 플래그 | 오버플로우 발생 여부 | 1:True, 0:False |
인터럽트 플래그 | 인터럽트 가능여부 | 1: True, 0: False |
슈퍼바이저 플래그 | 현재 실행모드 (커널 모드/사용자 모드) | 1:커널, 0:사용자 |
제어 신호를 내보내고 명령어를 해석하는 부품
https://witscad.com/course/computer-architecture/chapter/cpu-control-unit
input: 클럭 신호, 현재 수행할 명령어(from 명령어 레지스터), 플래그, 제어 버스로 전달된 제어 신호
output: CPU 외부에 전달하는 제어 신호(제어 버스로 보내는 제어 신호), CPU 내부에 전달하는 제어 신호
클럭 신호: 컴퓨터의 모든 부품을 움직일 수 있게 하는 시간 단위
클럭의 주기에 맞춰 한 레지스터에서 다른 레지스터로 데이터가 이동되거나 ALU에서 연산이 수행되는 등의 작업이 이루어집니다.
Note. 컴퓨터의 모든 부품이 한 클럭마다 작동 (X) 컴퓨터 부품들은 클럭이라는 박자에 맞춰 작동 (O)
하나의 명령어가 여러 클럭에 걸쳐 실행될 수도 있습니다.
CPU 내부에 전달하는 제어 신호
레지스터는 CPU 내에 있는 작은 임시 저장 장치입니다.
프로그램 속 명령어와 데이터는 실행 전후로 반드시 레지스터에 저장되므로, 레지스터에 저장된 값을 잘 관ㄹ찰하면 CPU에서 수행되는 작업 및 작업 과정을 알 수 있습니다.
레지스터 종류 | 의미 |
---|---|
프로그램 카운터(명령어 포인터) | 메모리에서 가져올 명령어의 주소를 저장 |
명령어 레지스터 | 메모리에서 읽어 들인 명령어를 저장 |
메모리 주소 레지스터 | 메모리의 주소를 저장 |
메모리 버퍼 레지스터 | 메모리와 주고받을 값(데이터와 명령어)을 저장하는 레지스터 |
범용 레지스터 | 다양하고 일반적인 상황에서 자유롭게 사용가능, 데이터와 주소를 모두 저장할 수 있음 |
플래그 레지스터 | 연산 결과 또는 CPU 상태에 대한 부가적인 정보를 저장 |
스택 주소 지정 방식은 스택과 스택 포인터를 이용한 주소 지정 방식입니다.
Recall: 스택: FILO(First in Last Out
변위 주소 지정 방식은 오퍼랜드 필드의 값(변위)과 특정 레지스터의 값을 더하여 유효 주소를 얻어내는 주소 지정 방식입니다.
레지스터의 값과 오퍼랜드에 있는 주소를 더한 곳에 있는 데이터로 연산 코드에 해당하는 내용을 수행하는 방식입니다.
확인문제
2. 설명에 맞는 레지스터를 보기에서 찾아 빈칸을 채워보세요.
참고문헌
https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=299014282&start=slayer