728x90
반응형
마이크로 오퍼레이션(Micro Operation)의 정의
- Instruction 수행을 위해 CPU내 레지스터와 플래그의 상태를 변환
- 모든 명령을 구성하는 기본 동작
- 프로그램에 의한 명령은 마이크로 오퍼레이션으로 이루어짐
- 레지스터에 저장된 데이터에 의해 이루어짐
- CPU의 Clock 펄스에 맞춰 실행
- 마이크로 오퍼레이션의 순서 결정을 위한 제어장치의 신호를 제어신호라 함
- Instruction 과정 중 한 단계식 이루어지는 동작, 한 개의 Instruction은 여러 개의 Micro Operation의 동작
- Micro Cycle Time
- 한 개의 Micro Operation의 수행 시간
- CPU Cycle Time 또는 CPU Clock Time 이라고도 함, CPU 속도의 척도
제어 워드와 마이크로 프로그램
- 제어 워드 (마이크로 명령어) : 레지스터 선택, 산술 논리연산장치 역할 및 마이크로 연산 결정을 하는 비트의 모임
- 마이크로 프로그램 : 일련의 제어 워드가 기억장치 속에 저장된 것
Micro Cycle Time 부여 방식
Mivro Cycle Time : 한 개 Micro Operation 수행을 위한 시간
동기 고정식 (Synchronous Fixed) |
- 모든 마이크로 오퍼레이션 동작시간이 갖다 가정했을 때 CPU Clock 주기를 Micro Cycle Time과 같도록 정의 - 동작시간이 가장 긴 마이크로 오퍼레이션을 Micro Cycle Time으로 정함 - 모든 마이크로 오퍼레이션 동작시간이 비슷할 때 유리 - 장점 : 제어기 구현 단순 - 단점 : CPU의 시간 낭비가 심함 |
동기 가변식 (Synchronous Variable) |
- 동작 시간이 유사한 Micro Operation끼리의 그룹별로 Micro Cycle Time정의 - 동기 고정식에 비해 CPU 시간 낭비가 적으나 제어기 구현 복잡 - 마이크로 오퍼레이션의 수행시간이 현저히 차이날 때 사용 - 그룹 간 사이클 타임의 동시를 맞추기 위해 사이클 타임을 정수배로 설정 |
비동기식 (Asynchronous) |
- 모든 마이크로 오퍼레이션에 다른 Micro Cycle Time 정의 - 제어기가 매우 복잡해져 실제로는 거의 사용하지 않음 |
메이저 스테이트
- CPU의 상태 표시 (Fetch, Indirect, Execute, Interrupt)
- CPU는 4가지 단계를 반복하며 동작 수행
- 메이저 스테이트 레지스터로 알 수 있음
- Major Cycle 또는 Machine Cycle이라고도 함
- 변천 과정
인출 단계(Fetch Cycle)
- 명령어를 주기억장치에서 중앙처리장치의 명령 레지스터로 가져와 해독
- 명령어가 1Cycle 명령이면 수행 후 Fetch Cycle로 변천
- 1Cycle 명령이 아니면, 명령어의 모드 비트에 따라 직접주소, 간접주소 판단
- 모드 비트 0 : 직접주소. Execute 단계로 변천
- 모드 비트 1 : 간접주소. Indirect 단계로 변천
Micro Operation | 의미 |
MAR ← PC | PC에 있는 번지를 MAR에 전송 |
MBR ← M[MAR], PC ← PC + 1 |
- MAR이 지정하는 위치 값을 MBR에 전송 - PC 값을 1 증가시켜 다음 명령어 위치 지정 |
IR ← MBR[OP] I ← MBR[I] |
- 명령어 OP-Code 부분을 명령 레지스터에 전송 (MBR에는 주기억장치에서 읽은 명령이 있음) - 명령어 모드 비트를 플립플롭 I에 전송 |
F ← 1 또는 R ← 1 |
I가 0 : F 플립플롭에 1을 전송하여 Execute 단계 변천 I가 1 : R 플립플롭에 1을 전송하여 Indirect 단계 변천 |
간접 단계 (Indirect Cycle)
- Fetch 단계의 명령의 주소부가 간접주소일 때 수행
- Fetch 단계에서 해석한 주소가 간접주소이면 유효주소를 계산하기 위해 다시 Indirect 수행
- 간접주소가 아닌 경우 명령어에 따라 Execute 혹은 Fetch 로 이동
- 동작 순서
Micro Operation | 의미 |
MAR ← MBR[AD] | MBR의 명령어 번지 부분 MAR에 전송 |
MBR ← M[MAR] | 메모리의 MAR이 지정하는 위치 값을 MBR에 전송 |
No Operation | 동작 없음 |
F ← 1, R ← 0 | F에 1, R에 0을 전송하여 Execute 단계로 변천 |
실행 단계(Execute Cycle)
- Fetch 단계에서 해석한 명령 실행
- 플래그 레지스터 상태 변화를 검사하여 Interrupt 단계로의 변천 판단
- Interrupt 플래그 래지스터의 변화가 없으면 Fetch로 변천
Micro Operatoin | 의미 |
MAR ← MBR[AD] | - MBR 명령어 번지 MAR에 전송 |
MBR ← M[MAR] | - 메모리에서 MAR이 지정하는 위치 값을 MBR에 전송 |
AC ← AC + MBR | - 누산기 값과 MBR값의 합을 누산기에 전송 |
F ← 0, R ← 1 | - Execute Cycle은 F=1,R=0 - F에 0 전송시 Fetch 단계 변천, R에 1 전송시 Interrupt 단계 변천 |
인터럽트 단계(Interrept Cycle)
- 인터럽트 발생시 복귀주소(PC) 저장, 제어순서를 인터럽트 처리의 첫 번째로 옮김
- 마친 후 Fetch 단계로 변천
- Interrupt 시 다른 처리하고 돌아오므로 서브루틴(부 프로그램) 호출이라고도 함
- 동작 순서
Micro Operation | 의미 |
MBR[AD] ← PC, PC ← 0 |
- PC의 다음 실행 명령 주소를 MBR의 주소 부분으로 전송 - 복귀주소를 저장한 0번지를 PC에 전송 |
MAR ← PC PC ← PC + 1 |
- PC가 가진 값 0번지를 MAR에 전송 - 인터럽트 루틴으로의 벡터 위치를 지정하기 위해 PC 값을 1 증가시켜 1로 세트 |
M[MAR] ← MBR, IEN ← 0 |
- MBR이 가진 다음 실행 명령의 주소를 메모리의 MAR이 가리키는 위치(0번지)에 저장 - 인터럽트 단계가 끝날 때 까지 다른 인터럽트를 막기 위해 IEN에 0 전송 |
F ← 0, R ← 0 | - F에 0, R에 0을 전송하여 Fetch단계로 변천 |
728x90
반응형
'자격증 > IT' 카테고리의 다른 글
정보처리산업기사(필기) - 전자계산기 구조 : 입력 및 출력 (입·출력의 기본, 입·출력 제어 방식) (0) | 2021.04.13 |
---|---|
정보처리산업기사(필기) - 전자계산기 구조 : 명령 실행과 제어 (주요 명령의 마이크로 오퍼레이션, 제어기의 구현) (0) | 2021.04.11 |
정보처리산업기사(필기) - 전자계산기 구조 : 프로세서 3 (명령어 형식, 주소 지정 방식) (0) | 2021.04.06 |
정보처리산업기사(필기) - 전자계산기 구조 : 프로세서 2 (명령어, 연산) (0) | 2021.04.04 |
정보처리산업기사(필기) - 전자계산기 구조 : 프로세서 1 (중앙처리장치) (0) | 2021.04.01 |