#4 명령 실행과 제어

1. 마이크로 오퍼레이션(Micro Operation)
: Instruction(명령어)을 수행하기 위해 CPU내의 레지스터와 플래그가 의미 있는 상태 변환을 하도록 하는 동작
: CPU내의 레지스터들과 연산장치에 의해 이루어짐
: 프로그램에 의한 명령의 수행은 마이크로 오퍼레이션의 수행으로 이루어짐
: 마이크로 오퍼레이션은 실행될 때마다 CPU내부의 상태가 변함
: CPU에서 마이크로 오퍼레이션이 순서적으로 일어나려면 제어신호가 필요

- 마이크로 사이클 타임(Micro Cycle Time)
: 한 개의 Micro Operation을 수행하는데 걸리는 시간
: Clock Pulse에 동기화되어 동작된다, Clock에 의해 기준을 두고 실행
: CPU의 속도를 나타내는 척도로 이용

- 마이크로 사이클 타임 부여방식
1) 동기 고정식(Synchronous Fixed)
: CPU Clock의 주기를 마이크로 사이클 타임과 같도록 정의하는 방식
: 가장 긴 마이크로 오퍼레이션 동작시간을 Micro Cycle Time으로 정한다
: 시간의 낭비가 심함

2) 동기 가변식(Synchronous Variable)
: 수행시간이 유사한 마이크로 오퍼레이션끼리 그룹을 만들어 그룹별로 서로 다른 마이크로 사이클 타임을 정의하는 방식
: 사이클 타임이 현저한 차이를 나타낼때 사용
: 시간을 효율적 사용
: 서로 다른 사이클을 정의할 수 있음

3) 비동기식(Asynchronous)
: 모든 마이크로 오퍼레이션에 대해 서로 다른 마이크로 사이클 타임을 정의하는 방식



2. 메이저 스테이트(Major State)
: 현재 CPU가 무엇을 하고 있는가를 나타내는 상태
: 인스트럭션 fetch -> 인스트럭션 디코딩 -> operand fetch -> execution -> 인터럽트조사

1) 인출 단계(Fetch Cycle)
: 명령어를 주기억장치에서 CPU의 명령 레지스터로 가져와 해독하는 단계

- Fetch 단계 동작 순서


* C = 메이저 스테이트 나타냄
* T = 타이밍 신호


2) 간접 단계(Indirect Cycle)
: Fetch(인출) 단계에서 해석된 명령의 주소부가 간접주소인 경우 수행
: 해석된 주소가 간접주소이면 유효주소를 계산하기 위해 다시 Indirect 단계 수행
: 간접 주소가 아닌 경우 명령어에 따라서 Execute단계 또는 Fetch단계로 이동할지 판단

- Indirect Cycle 동작순서



3) 실행 단계(Execute Cycle)
: Fetch 단계에서 인출하여 해석한 명령을 실행하는 단계
: 플래그 레지스터의 상태를 확인하여 Interrupt 단계로 변천할 것인지 판단

- ADD 연산을 수행하는 Execute Cycle



4) 인터럽트 단계(Interrupt Cycle)
: 복귀 주소를 저장하고, 제어 순서를 인터럽트 처리 프로그램의 첫 명령으로 옮기는 단계
: 인터럽트 단계를 마친 후에는 항상 패치 단계로 변천

- Interrupt Cycle 동작순서




3. 주요 명령의 마이크로 오퍼레이션
: 실행단계의 ADD연산의 C₂t₂신호만 변경 됨

1. AND : AC <- AC ^ M[AD]
: 누산기와 메모리의 내용을 AND하여 결과를 AC에 저장하는 연산

2. ADD : AC <- AC + M[AD]
: 누산기와 메모리의 내용을 더하여 결과를 AC에 저장하는 연산

3. LDA : AC <- M[AD]
: 메모리의 내용을 AC로 가져오는 명령

4. STA : M[AD] <- AC
: AC의 내용을 메모리로 저장하는 명령

5. BUN
: 무조건 분기 명령

6. BSA(Branch and Save return Address)
: 복귀 주소를 저장하고 부 프로그램을 호출하는 명령
ㆍT0 : MAR ← MBR[AD], MBR[AD] ← PC, PC ← MBR[AD]
ㆍT1 : M[MAR] ← MBR[AD]
ㆍT2 : PC ← PC+1

7. ISZ
: 메모리의 값을 읽어 그 값을 1 증가시킨 후 음수에서 시작한 그 값이 0이면 현재 명령을 건너 뛰어 다음 명령으로 이동



4. 제어기의 구현

- 제어 데이터
: 제어 장치가 제어신호를 발생하기 위한 자료로서, CPU가 특정한 메이저 상태와 타이밍 상태에 있을 때 제어자료에 따른 제어규칙에 의해 제어신호가 발생한다.
: 메이저 스테이트 사이의 변천을 제어하는 데이터
: 중앙처리장치의 제어점을 제어하는 데이터
: 인스트럭션의 수행 순서를 결정하는 데 필요한 제어 데이터


- 제어기의 구현
1. 고정배선 제어장치
: 하드웨어적인 구성방법
: 속도가 빠르고, 회로 구성이 복잡, 마이크로 프로그램 방식에 비해 비쌈
: RISC 구조를 사용하는 컴퓨터에서 사용, 한번 만들어진 명령어 세트를 변경할 수 없다

2. 마이크로 프로그래밍 기법
: 소프트웨어적인 구성방법
: 펌웨어를 이용하는 방식, 명령어 세트를 쉽게 변경 가능
: 마이크로 프로그램이 저장되는 제어 메모리가 필요함
: 하드웨어 방식에 비해 속도가 느리고, 유지보수 및 수정이 용이


- 마이크로 명령어 형식
1. 수평 마이크로 명령(Horizontal Micro Instruction)
: 마이크로 명령의 한 비트가 한 개의 마이크로 동작을 관할하는 명령
: 제어 비트를 디코딩할 필요가 없다
: 마이크로 명령 한 개로 여러 개의 하드웨어 구성 요소를 동시에 동작시킬 수 있다
: 다만, 제어비트가 충분히 활용되지 못하고 제어워드의 길이가 길어져 비용이 많이든다.

2. 수직 마이크로 명령(Vertical Micro Instruction)
: 제어 메모리 외부에서 디코딩 회로를 필요로 하는 마이크로 명령
: 한 개의 마이크로 명령으로 한 개의 마이크로 동작만 제어할 수 있다

3. 나노 명령(Nano Instruction)
: 나노 메모리에 저장된 마이크로 명령을 나노 명령이라고 함

댓글 없음:

댓글 쓰기