마이크로 명령 형식과 제어 기억장치 설계
수평·수직 마이크로 명령과 나노 명령의 인코딩 방식, 병렬성, 디코딩, 제어 기억장치 용량 간 설계 트레이드오프를 정리한다.
2026-08-14 · 최초 발행 2025-12-25
제어 신호를 어떻게 담을 것인가
마이크로 명령 형식은 마이크로프로그램 제어 유닛이 제어 신호를 인코딩하는 방법이다. 각 비트를 제어 신호에 직접 연결할지, 코드를 디코딩해 신호를 만들지에 따라 제어 기억장치의 용량과 실행 속도, 병렬 처리 범위가 달라진다.
이 형식은 CPU 제어 유닛과 펌웨어에서 제어 신호를 생성하고 제어 기억장치를 구성할 때 핵심이 된다. 설계에서는 병렬성, 메모리 용량, 디코딩 복잡도를 함께 판단해야 한다.
비트를 제어 신호에 직접 연결하는 수평 방식
수평 마이크로 명령은 마이크로 명령의 한 비트가 한 개의 마이크로 동작에 직접 대응하는 형식이다. 여러 비트를 동시에 1로 설정할 수 있으므로 다중 동작을 함께 제어할 수 있다.
별도 디코더 없이 비트를 제어 신호로 사용할 수 있어 실행 속도와 병렬성이 높고, 세밀한 제어에도 유리하다. 반대로 제어 신호 수만큼 비트가 필요하므로 명령 워드가 수십~수백 비트까지 길어질 수 있으며, 제어 기억장치 용량과 인코딩 밀도에는 불리하다.
마이크로 명령: 1 0 1 0 0 1 0 0 ...
↓ ↓ ↓ ↓ ↓ ↓
ALU Reg Memory PC ...
코드 필드로 압축하는 수직 방식
수직 마이크로 명령은 제어 동작을 코드로 표현하고, 디코더가 이를 제어 신호로 변환하는 형식이다. 명령 워드는 수 비트~수십 비트로 짧아질 수 있다.
작은 제어 기억장치와 높은 인코딩 밀도가 필요한 경우에 적합하다. 다만 디코더 회로가 필요하고, 한 개의 마이크로 명령으로 한 개의 마이크로 동작만 제어하므로 병렬성은 낮아진다. 디코딩에 따른 지연과 제한된 유연성도 함께 감수해야 한다.
마이크로 명령: 0011
↓
디코더
↓
제어 신호: 00001000
속도와 제어 기억장치 사이의 선택
| 항목 | 수평 마이크로 명령 | 수직 마이크로 명령 |
|---|---|---|
| 비트 의미 | 1비트 = 1제어신호 | 코드 필드 |
| 명령 길이 | 길음 (수십~수백비트) | 짧음 (수~수십비트) |
| 병렬성 | 높음 (다중 동작 동시) | 낮음 (순차 실행) |
| 속도 | 빠름 (디코딩 없음) | 느림 (디코딩 필요) |
| 메모리 용량 | 큼 | 작음 |
| 유연성 | 높음 | 낮음 |
| 구현 복잡도 | 단순 | 복잡 (디코더 필요) |
수평 방식은 빠른 속도와 병렬 제어를 얻는 대신 큰 메모리를 요구한다. 수직 방식은 메모리 사용량을 줄이는 대신 디코딩과 순차 실행의 부담을 가진다.
나노 메모리로 제어 신호를 공유하는 방법
나노 명령(Nanoinstruction)은 수직 마이크로 명령의 메모리 효율을 높이기 위한 2단계 메모리 구조다. 마이크로 명령이 나노 메모리의 주소를 가리키고, 나노 메모리가 실제 제어 신호를 제공한다.
여러 마이크로 명령이 동일한 나노 명령을 공유할 수 있어 반복되는 제어 신호를 줄이고 전체 제어 기억장치 용량을 낮출 수 있다. 대신 2회 메모리 접근으로 지연이 증가하며, 나노 메모리 관리와 전체 설계의 복잡도도 커진다.
요구 조건에 맞춰 형식을 조합한다
병렬 동작이 많거나 디코딩을 최소화해야 한다면 수평 마이크로 명령이 맞는다. 제어 기억장치 비용이 제약 조건이라면 수직 방식이나 나노 명령을 고려할 수 있다.
복잡한 명령어 집합에는 수평 방식이, 단순한 제어에는 수직 방식이 각각 어울린다. 실제 CPU에서는 일부 필드를 수평으로 두고 다른 필드를 수직으로 인코딩하는 혼합 방식을 사용해 병렬성과 메모리 효율의 균형을 맞춘다.