dongdorodongdong
Micro Operation (마이크로 오퍼레이션) 본문
Micro Operation
- 정의
- Instruction을 수행하기 위해 CPU 내의 레지스터와 플래그가 의미 있는 상태 변환을 하도록 하는 동작
- 하나의 Clock Pulse 단위로 실행되는 기본 동작
- Instruction 실행과정에서 한 단계씩 이루어지는 동작으로, 한 개의 Instruction은 여러 개의 마이크로 오퍼레이션이 동작되어 실행 - 특징
- 모든 마이크로 오퍼레이션은 CPU의 Clock 펄스에 맞춰 실행 - 제어 신호
- 다양한 종류가 있는 마이크로 오퍼레이션들의 순서를 결정하기 위하여 제어장치가 발생하는 신호 - 제어워드
- 레지스터의 선택과 산술 논리 연산장치의 역할을 결정
- 어떤 마이크로 연산을 할 것인가를 결정하는 비트의 모임
- 마이크로 명령어라고도 함 - 마이크로 프로그램
- 어떤 명령을 수행할 수 있도록 구성된 일련의 제어 워드가 특수한 기억장치 속에 저장된 프로그램
Micro Cycle Time
- 정의
- 한 개의 마이크로 오퍼레이션을 수행하는 데 걸리는 시간
- CPU Cycle Time 또는 CPU Clock Time이라고도 함
- CPU 속도를 나타내는 척도로 이용 - 특징
- 모든 순서논리회로는 Clock Pulse의 동기화에 의해 동작되는데, CPU도 하나의 순서논리회로이므로 Clock Pulse에 동기화되어 동작
- 이 때의 Pulse를 CPU Clock이라고 함
- 한 개의 마이크로 오퍼레이션은 CPU Clock의 발생 주기의 간격 시간 내에 실행 - 예시
- 개인 PC의 속도는 GHz로 표시하는데, 실제로 CPU 클록 주파수로 1초에 10억번의 Clock이 있다는 의미 - 부여 방식
- 동기 고정식
"모든 마이크로 오퍼레이션의 동작 시간이 같다고 가정"
"CPU Clock의 주기를 Micro Cycle Time과 같도록 정의"
"동작 시간이 가장 긴 마이크로 오퍼레이션의 동작 시간을 Micro Cycle Time으로 정함"
"모든 마이크로 오퍼레이션의 동작 시간이 비슷할 때 유리"
"제어기의 구현이 단순"
"CPU의 시간 낭비가 심함"
- 동기 가변식
"동작 시간이 유사한 마이크로 오퍼레이션들끼리 그룹을 만들어, 각 그룹별로 서로 다른 Micro Cycle Time을 정의"
"마이크로 오퍼레이션들의 수행시간 차이가 현저할 때 사용"
"각 그룹간의 Micro Cycle Time을 정수배가 되게함"
"동기 고정식에 비해 CPU 시간 낭비를 줄일 수 있음"
"제어기의 구현은 복잡"
- 비동기식
"모든 마이크로 오퍼레이션에 대해 서로 다른 Micro Cycle Time을 정의"
"CPU의 시간 낭비는 전혀 없음"
"제어기가 매우 복잡"
"거의 사용X"
Micro Instruction 형식
Micro Operation |
Condition |
Branch |
Address |
- 수평 마이크로 명령
- 마이크로 명령의 한 비트가 한 개의 마이크로 동작을 관할하는 명령
- Micro Operation
"m 비트일 때, m개의 마이크로 동작을 표현 가능"
- Condition
"분기에 사용될 조건 플래그를 지정"
- Branch
"분기의 종류와 다음에 실행할 마이크로 명령의 주소를 결정"
- Address
"다음 마이크로 명령의 주소를 결정" - 수직 마이크로 명령
- 제어 메모리 외부에서 디코딩 회로를 필요로 하는 명령
- 한 개의 마이크로 명령으로 한 개의 마이크로 동작만 제어 가능
- 마이크로 명령어의 비트 수가 감소
- 제어 기억장치의 용량을 줄일 수 있음
- 마이크로 명령어의 코드화된 비트들을 해독하기 위한 지연이 발생 - 나노 명령
- 나노 메모리라는 낮은 레벨의 메모리에 저장된 마이크로 명령
- 수직 마이크로 명령을 수행하는 제어기에서 디코더를 ROM(나노 메모리)으로 대치하여 두 메모리 레벨로 구성
'Electronic Calculator Architecture' 카테고리의 다른 글
제어 데이터 / 장치 / 메모리 (0) | 2020.07.12 |
---|---|
CPU 상태 (0) | 2020.07.12 |
Operand (자료부) (0) | 2020.07.01 |
OP Code (연산자부) (0) | 2020.07.01 |
CPU 구성 요소 (0) | 2020.06.21 |