제어 유닛 : control unit
2007. 12. 4. 07:50ㆍas 소프트웨어엔지니어/Computer Architecture
마이크로 연산(micro operation)
- 명령어 사이클(instruction cycle)은 인출(fetch) - 간접(indirect) - 실행(execute) - 인터럽트(interrupt)이란 서브사이클로 이루어지며 이중 인출과 실행 사이클만 항상 수행됨.
- 각 서브사이클(기계 사이클)은 프로세서 레지스터들이 관계된 일련의 단계로 이루어지며, 이들 단계를 가리켜 마이크로 연산이라 함.
- 마이크로 연산은 프로세서의 기능적(functional) 혹은 원자(atomic) 연산임.
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에서 사용.
- 명령어 사이클(instruction cycle)은 인출(fetch) - 간접(indirect) - 실행(execute) - 인터럽트(interrupt)이란 서브사이클로 이루어지며 이중 인출과 실행 사이클만 항상 수행됨.
- 각 서브사이클(기계 사이클)은 프로세서 레지스터들이 관계된 일련의 단계로 이루어지며, 이들 단계를 가리켜 마이크로 연산이라 함.
- 마이크로 연산은 프로세서의 기능적(functional) 혹은 원자(atomic) 연산임.
인출 사이클 경우의 예)또한 프로세서의 기본적인 기능 요소를 ALU, 레지스터, 내부 데이터 통로, 외부 데이터 통로, 제어 유닛이라고 보았을 때, 모든 마이크로 연산은 다음 분류 중 하나에 속함.
- 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를 통해 이루어질 수도 있음.
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
반응형
'as 소프트웨어엔지니어 > Computer Architecture' 카테고리의 다른 글
캐시 일관성 : Cache Coherency (0) | 2007.12.08 |
---|---|
병렬 컴퓨팅 : Parellel Computing (1) | 2007.12.08 |
가상 기억장치 : virtual memory (0) | 2007.12.02 |
참조 지역성 : locality of reference (1) | 2007.12.02 |
HSM(Hierarchical Storage Management) (0) | 2007.12.01 |