본문 바로가기
IT기술노트/컴퓨터구조 및 운영체제

중앙처리장치 메이저 상태 (CPU Major State)

by 비트코기 2023. 10. 9.

중앙처리장치 메이저 상태 (CPU Major State)


I. CPU의 4가지 작업상태, 중앙처리장치의 메이저 상태 개요

가. 중앙처리장치의 메이저 상태 정의

- CPU가 현재 수행하는 4가지 형태( Fetch, Indirect, Execute, Interrupt )의 작업 상태

나. 메이저 상태의 특징

- CPI는 4가지 상태를 반복적으로 수행, 메이저 상태 레지스터를 통해 확인

 

II. 메이저 상태 개념도 및 설명

가. 메이저 상태 개념도

나. 메이저 상태 설명

메이저 상태 역할 동작 과정
Fetch - 명령어를 메모리에서 CPU 레지스터로 가져와서 해독 MAR ←  PC, PC에 있는 번지를 MAR에 전송
MBR ← M[MAR], 메모리에서 MAR이 지정하는 위치의 값을 MBR에 전송
PC ←  PC + 1, 다음에 실행할 명령의 위치를 지정하기 위해 PC 값 1 증가
IR ← MBR[OP], 명령어의 OP-Code 부분을 명령 레지스터에 전송
I  ← MBR[i], 명령어의 모든 비트를 플립플롭 I에 전송
F  ←  1 or R  ←  1,  I가 0이면 F 플립플롭에 1을 전송하여 Execute 단계로 전환하고 I가 1이면 R 플립플롭에 1을 전송하여 Indirect 단계로 전환
Indirect - Fetch 단계에서 해석된 명령어의 주소부가 간접 주소인 경우 수행 MAR ← MBR(Address), MBR에 있는 명령어의 번지 부분을 MAR에 전송
MBR ← M[MAR], 메모리에서 MAR이 지정하는 위치의 값을 MBR에 전송
No Operation, 동작없음
 ←  1 / R  ←  0, F에 1, R에 0을 전송하여 Execute 단계로 전환
Execute - Fetch 단계에서 인출해 해석한 명령을 실행하는 단계
- 플래그 레지스터의 상태변화를 검사해 Interrupt 단계로 이동할지 판단
- Interrupt 요청 신호를 나타내는 플래그 레지스터의 변화가 없으면 Fetch 단계로 이동
MAR ← MBR(Address),  MBR에 있느 ㄴ명령어의 번지 부분을 MAR에 전송
MBR ← M[MAR], 메모리에서 MAR이 지정하는 위치의 값을 MBR에 전송
AC ← AC + MBR, 누산기의 값과 MBR의 값을 더해 누산기에 전송
 ←  1 or R  ←  0,  F에 0을 전송하면 F=0, R=0이 되어 Fetch 단계로 전화하고 R에 1을 주면 F=1, R=1이 되어 Interrupt 단계로 전환한다.
Interrupt - Interrupt 발생 시 복귀 주소(PC)를 저장하고, 제어 순서를 인터럽트 처리 프로그램의 첫번 째 명령으로 옮기는 단계 MBR(Address) ← PC, PC가 가지고 있는 다음에 실행할 명령의 주소를 MBR의 주소 부분으로 전송
PC  ← 0, 복귀 주소를 저장할 0번지를 Pc에 전송
MAR ← PC, PC가 가지고 있는 값 0번지를 MAR에 전송
PC ← PC + 1, ISR로 이동할 수 있는 IV의 위치를 지정하기 위해 PC의 값을 1증가시켜 1로 세트
M[MAR]  ← MBR, MBR이 가지고 있는 다음에 실행할 명령의 주소를 메모리의 MAR이 가리키는 위치(0버지)에 저장
IEN  ←  0, 인터럽트 단계가 끝날 때까지 다른 인터럽트가 발행되지 않게 IEN에 0을 전송
F  ← 0 / R  ←  0, Execute Cycle은 F와 R 플립플롭 상태가 F = 1, R = 0이고 F에 0을 전송하면 F=0, R=0이 디어 Fetch 단계로 전환된고 R에 1을 주면 F=1, R=1이 되어 Interrupt 단계로 전환

- 인터럽트 발생 시 발생 인터럽트 ID를 IVT(Interrupt Vector Table)에서 조회후 해당하는 처리 루틴으로 분기

 

III. 중앙처리장치 메이저 상태 변화 과정

상황 변화과정
직접 주소 사용 시 - 인출 사이클 → 실행 사이클
간접 주소 사용 시 - 인출 사이클 → 간접 사이클 → 실행 사이클
인터럽트 발생 시 - 인출 사이클 → 간접 사이클 → 실행 사이클 → 인터럽트 발생 → 인터럽트 사이클 → 인출 사이

※ 용어 참고

용어 설명
MAR, Memory Address Register - PC 에 저장된 명령어 주소가 사용되기 전에 일시적으로 저장되는 주소 레지스터
MBR, Memory Buffer Register - 기억장치에 저장될 데이터 혹은 읽혀진 데이터가 일시적으로 저장되는 버퍼 레지스터
PC, Program Counter - 다음 인출(Fetch) 될 명령어의 주소를 가지고 있는 레지스터
IR, Instruction Register - 현재 수행 중인 명령을 갖고 있는 레지스터
OP, Operation Code - 수행할 연산
AC, Accumulator - 연산 결과 데이터를 일시적으로 저장하는 레지스터
SP, Stack Pointer - 주기억장치 스택의 데이터 삽입과 삭제가 이루어지는 주소를 저장
ISR, Interrupt Service Routine - 인터럽트 처리 동작 수행

- 레지스터는 주기억장치로부터 읽어온 명령어나 데이터를 저장하거나 연산된 결과를 저장하는 공

반응형

댓글