
ALU와 제어 장치

받아들이는 정보


: CPU 내부의 작은 임시저장장치
→ 프로그램 속 명령어 & 데이터는 실행 전후로 레지스터에 저장
→ CPU 내부에는 다양한 레지스터들이 있고 , 각기 다른 역할을 가진다
1. 프로그램 카운터
: 메모리에서 가져올 명령어의 주소 ( 메모리에서 읽어 들일 명령어의 주소 )

2. 명령어 레지스터
: 해석할 명령어 ( 방금 메모리에서 읽어 들인 명령어 )

3. 메모리 주소 레지스터
: 메모리의 주소를 저장

4. 메모리 버터 레지스터
: 메모리와 주고받을 값( 데이터와 명령어 )
→ CPU가 정보를 데이터 버스로 주고받을 때 거치는 레지스터

5. 플래그 레지스터
: 연산 결과 또는 CPU 상태에 대한 부가적인 정보
6. 범용 레지스터
: 다양하고 일반적인 상황에서 자유롭게 사용
7. 스택 포인터
: 주소 지정에 사용
(1) 스택 주소 지정 방식 : 스택과 스택 포인터를 이용한 주소 지정 방식
스택 포인터 : 스택의 꼭대기를 가리키는 레지스터
(2) 변위 주소 지정 방식
: 오퍼랜드 필드의 값과 특정 레지스터의 값을 더하여 유효 주소 얻기
(3) 상대 주소 지정 방식
: 오퍼랜드 필드의 값과 프로그램 카운터의 값을 더하여 유효 주소 얻기
8. 베이스 레지스터
베이스 레지스터 주소 지정 방식
: 오퍼랜드 필드의 값과 베이스 레지스터의 값을 더하여 유효 주소 얻기

명령어 사이클
: 프로그램 속 명령어들은 일정한 주기가 반복되며 실행하는데 이 주기를 명령어 사이클이라고 한다.

인터럽트
: 하드웨어/소프트웨어가 CPU에 “지금 이거 먼저 처리해!”라고 알려 현재 작업을 잠시 중단하고 지정된 처리 루틴으로 즉시 전환하게 하는 메커니즘입니다.
동기 인터럽트
- CPU가 예기치 못한 상황을 접했을 때 발생

비동기 인터럽트 ( 하드웨어 인터럽트 )
- 주로 입출력장치에 의해 발생한다.
- 알림과 같은 역할
- 입출력 작업 도중에도 효율적으로 명령어를 처리하기 위해 하드웨어 인터럽트를 사용한다.
- 입출력 장치는 CPU에 비해 느리다.
- 인터럽트가 없다면 CPU는 프린트 완료여부를 확인하기 위해 주기적으로 확인해야 한다.
하드웨어 인터럽트의 처리 순서
(1) 입출력장치는 CPU에 인터럽트 요청 신호를 보낸다.
→ 인터럽트 요청 신호 : 하드웨어/소프트웨어가 “지금 처리 필요!”라고 CPU에 보내는 신호/요청 라인입니다
(2) CPU는 실행 사이클이 끝나고 명령어를 인출하기 전 항상 인터럽트 여부를 확인한다.
(3) CPU는 인터럽트 요청을 확인하고 인터럽트 플래그를 통해 현재 인터럽트를 받아들일 수 있는지 여부를 확인한다.
→ 인터럽트 플래그 : CPU가 인터럽트를 받을지 말지를 결정하는 허용 비트
(4) 인터럽트를 받아들일 수 있다면 CPU는 지금까지의 작업을 백업한다.
→ 인터럽트 벡터 : “어떤 인터럽트가 발생했는지”에 따라 점프해야 할 처리 루틴의 시작 주소 표
→ 인터럽트 서비스 루틴 : 인터럽트가 발생했을 때 실행되는 전용 함수
(5) CPU는 인터럽트 벡터를 참조하여 인터럽트 서비스 루틴을 실행한다.
(6) 인터럽트 서비스 루틴 실행이 끝나면 (4)에서 백업해 둔 작업을 복구하여 실행을 재개한다.

→ 하드웨어 인터럽트에는 인터럽트 플래그로 막을 수 있는 인터럽트와 막을 수 없는 인터럽트가 있다.

→ 명령어 사이클은 인출 , 실행, 간접, 인터럽트 사이클로 구성된다.
정리
ALU와 제어장치
ALU는 레지스터에서 피연산자를 받아 제어장치의 제어 신호대로 연산을 수행하고, 결과와 플래그(부호·제로·캐리·오버플로우·인터럽트·슈퍼바이저)를 갱신한다.
제어장치는 명령어 해석·제어 신호 생성·흐름 제어를 담당하며, 클럭을 기준으로 단계별 동작을 맞춘다.
레지스터는 PC(다음 명령 주소), IR(현재 명령), MAR/MDR(메모리 주소/데이터), FLAG, 범용 레지스터, SP(스택 꼭대기), 베이스 레지스터 등으로 구성된다.
주소 지정은 스택, 변위(레지스터+즉치값), 상대(PC+오프셋), 베이스(베이스+오프셋) 방식이 핵심이다.
명령어 사이클
명령어 사이클은 인출(Fetch) → 해독(Decode) → 오퍼랜드 접근 → 실행(Execute) → 기록(Write-back)로 반복된다.
출처