마이크로 연산(micro operation)
- 명령어 사이클(instruction cycle)은 인출(fetch) - 간접(indirect) - 실행(execute) - 인터럽트(interrupt)이란 서브사이클로 이루어지며 이중 인출과 실행 사이클만 항상 수행됨.
- 각 서브사이클(기계 사이클)은 프로세서 레지스터들이 관계된 일련의 단계로 이루어지며, 이들 단계를 가리켜 마이크로 연산이라 함.
- 마이크로 연산은 프로세서의 기능적(functional) 혹은 원자(atomic) 연산임.
인출 사이클 경우의 예)
    - MAR, MBR, PC, IR의 네 레지스터 간 interaction으로 구성

1. PC에 담겨있는 명령어 주소를 MAR로 옮김
2. control unit이 READ 명령을 발생하여 MBR로 명령어를 가져옴
3. 다음 명령어 실행 준비를 위해 PC가 1 증가. 이와 동시에 MBR의 내용을 IR로 이동. 이들 두 마이크로 연산은 서로 영향을 미치지 않기 때문에 동시 실행 가능

위 단계를 정리해보면, 3 clock 동안 4개의 마이크로 연산이 이루어짐.

t1 :    MAR <- (PC)
t2 :    MBR <- Memory
t3 :    PC <- (PC) + 1
        IR <- (MBR)

참고: 위 명령 중 덧셈 연산은 ALU를 통해 이루어질 수도 있음.
또한 프로세서의 기본적인 기능 요소를 ALU, 레지스터, 내부 데이터 통로, 외부 데이터 통로, 제어 유닛이라고 보았을 때, 모든 마이크로 연산은 다음 분류 중 하나에 속함.
1. 한 레지스터에서 다른 레지스터로의 데이터 전송
2. 한 레지스터에서 외부 인터페이스(예: 시스템 버스)로의 데이터 전송
3. 외부 인터페이스에서 레지스터로의 데이터 전송
4. 입력과 출력을 위해 레지스터들을 사용하면서, 산술 혹은 논리 연산 수행.
제어 유닛(control unit)의 정의
- 프로세서가 행하는 모든 행동을 제어하는 장치. 제어 유닛의 산출물(output)는 프로세서를 구성하는 나머지 요소(ALU, 레지스터들)의 행동이다. 제어 유닛은 유한 상태 기계로 여겨도 무방.

- 이를 제어 유닛이 행하는 구체적으로 작업으로 표현하면, (1) 실행될 프로그램에 의해 결정되는 순서대로 프로세서가 마이크로 연산을 실행하게 함 - 순서제어(sequencing) (2) 각 마이크로 연산을 실행시키기 위해 내,외부 버스의 control line을 사용하여 제어 신호를 발생 - 실행(execution) 와 같다.

제어 유닛과 프로세서 내의 타 요소간 상호작용
-  제어 유닛은 제어 신호를 받아 decoder를 통해 처리할 내용을 결정한 후 제어 신호를  보냄으로서 마이크로 연산 실행을 일으킴.

사용자 삽입 이미지

- 입력 신호
    1. clock : 제어 유닛이 시간을 지키도록 함. 매 clock pulse마다 마이크로 연산이 실행됨. 이를                   가리켜 processor cycle time 또는 clock cycle time라고 함.
    2. instruction register(IR) : 어떤 마이크로 연산을 실행할 지를 결정
    3. flag : 프로세서의 상태와 이전 ALU 연산 결과를 검사하기 위해 사용
    4. 제어 버스로부터의 신호 : 시스템 버스의 제어 버스 부분으로부터 인터럽트 신호 및 확인 신                                          호가 들어옴.
- 출력 신호
    1. 프로세서 내의 신호 : 레지스터 간의 데이터 전송을 발생시키는 신호와 특정 ALU 기능                                            을 활성화하는 신호.
    2. 제어버스로 나가는 신호 : 기억장치와 I/O 모듈로 보내지는 제어 신호.

제어 유닛의 구현
- 두 가지 구현 모델이 존재 : 하드와이어 구현(hardwired implementation)과 마이크로프로그램을 이용한 구현(microprogrammed implementation)
- hardwired 제어 유닛은 근본적으로 조합회로임.
- CISC의 경우 제어 유닛 설계에 필요한 boolean 식이 매우 많아 이들 식 모두를 만족하는 조합회로를 구현하는 것이 매우 어려움. RISC에서 사용.
- hardwired 제어 유닛에 대한 대안이 바로 microprogrammed 제어 유닛. 이 제어 유닛의 경우, 제어 유닛의 논리가 microprogram에 의해 지정됨.
- microprogram은 microprogramming 언어로 쓰여진 일련의 명령어로 구성.
- microprogrammed 제어 유닛은 비교적 간단한 논리 회로임. CISC에서 사용.
reference:
컴퓨터시스템구조론(Computer Organization & Architecture Designing for
Performance). William Stallings, 김종현 역
Control unit. Wikipedia
Instruction cycle. Wikipedia
Posted by 어쨌건간에