나무 숲
Control Unit Operation 본문
Micro-Operations
- 컴퓨터가 프로그램을 실행하면, fetch/execute/indirect/interrupt 사이클 등등이 실행될 것이고 각 사이클은 micro-operation이라 불리는 몇몇 step이 있다. 각 스텝은 아주 조금 일하고 레지스터들을 포함한다. = >Atomic operation of CPU (원자급으로 더이상 쪼갤 수 없을 만큼 작은 단위)
- Type
레지스터들 간에 데이터를 전송
레지스터와 외부 사이에서 데이터를 왔다갔다
perform arithmetic or logical ops
잠시 Fetch sequence를 상기시켜보면,
현재 명령어의 다음 주소가 PC에 있다. PC의 내용은 MAR로 복사되어지고, MAR에 있는 주소가 address bus를 탄다. Control Unit이 읽기 명령을 발생시키고 메모리에서 나온 데이터, 즉 결과값이 data bus를 타고 (표현하자면..)MBR 정류장에 내린다. PC는 명령어 길이인 I에 의해 증가되고 메모리에서 데이터를 fetch하는 것과 병렬적으로 일어난다. 데이터(명령어)는 MBR에서 IR로 이동한다. MBR은 이제 다른 데이터를 fetch 하기 위해 프리해졌다.
Control of Processor
- Functions of Control Unit
1 Sequencing
CPU가 몇 개의 연속된 micro-operation을 step through하도록
2 Execution
Causing the performance of each micro-op
=>이것들은 Control Signal제어신호를 사용할 때 이루어진다
- Control Signals - Inputs
* Clock : 클락 사이클 당 하나의 micro-instruction 또는 set of parallel micro-operations
* Instruction Register : 현재 명령에 대한 opcode. 어떤 micro-instruction이 실행되는지 나타냄
* Flag : CPU의 상태. 이전 연산들의 결과
* From control bus : Interrupts, Acknowledgements
- Control Signals - Outputs
* Within CPU : 데이터 이동을 야기시킴. activate specific functions
* Via control bus : 메모리로. I/O 모듈로.
예) control signal sequence - fetch
MAR <- PC : Control Unit은 PC와 MAR 사이의 게이트를 열도록 신호를 보낸다 (아래 그림에서 C9만 연결)
MBR <- Memory : MAR과 address bus 사이의 게이트를 열고, 메모리는 control signal을 읽는다. 데이터 버스와 MBR사이의 게이트를 연다
동그라미들은 스위치라 생각하면 된다. 한가지 더 예를 들어 AC <- AC+MBR이면 ALU의 C6, C7을 연결하여 연산 후 C9를 연결시킨다.
일반적으로 쓰지 않는 스위치들은 꺼져 있다.
옆 그림에서
Y = temporary storage of input
Z = temporary storage of output
OP = Z <-(AC) OP(Y)
Fetch
t1 : MAR <- PC
t2 : MBR <- memory
t3 : IR <- MBR
PC <- PC+I
(이때 increment logic이 있으면 이렇게 하면 되는데 없으면 PC를 ALU로 보내서 값을 다시 받아야 한다.
옆 그림에서 Control Unit은 ALU)
예를 들어,
AC <- AC + X(memory location)
t1: MAR <- IR(address)
t2: MBR <- Memory
t3: Y <- MBR
t4: Z <- Y+AC
t5: AC <- Z
Control Unit Implementation에는 hardwired, microprogrammed가 있다.
Hardwired Implementation
- 문제점 :
복잡한 sequenceing & micro-operation logic, 디자인하고 테스트하는것이 어려움, inflexible design, 새로운 명령어를 추가하는 것이 어려움
=> Microprogramming!
Micro-Programmed Control
- 복잡한 연산 control 위해 연속적인 명령어를 사용한다
- micro programming의 장단점
control unit의 디자인을 간단하게 하고, 싸고, 디버깅이 쉽다(less error-prone) 근데 느리다
'Career' 카테고리의 다른 글
프로그래밍언어론 key7 Inheritance (0) | 2016.06.12 |
---|---|
프로그래밍언어론 key6 Encapsulation (0) | 2016.06.12 |
Processor Structure and Function (0) | 2016.06.11 |
Computer Arithmetic (0) | 2016.06.10 |
Input & Output (1) | 2016.06.10 |