40
제 7 제 제제 제제 제제 제제제 제제 제제제 제제제 제제제 제제 제제제 제제제 제제 제제제 제제 제제 제제제제제제제제제 제 제제

제 7 장 제어 장치

Embed Size (px)

DESCRIPTION

제 7 장 제어 장치. 구성. 제어 장치의 개념 메이저 상태와 타이밍 상태 명령어 사이클 제어 장치의 구현 방법 마이크로프로그램의 예. 제 7 장 제어 장치의 개념. 제어 장치 요구되는 마이크로 연산( micro-operation) 들을 연속적으로 수행하게 하는 신호를 발생 제어 장치의 구성. 주기억장치로부터 명령을 인출하여 해석하고, 해석한 결과에 따라 제어 신호 를 컴퓨터 시스템 내의 각 부분으로 보낸다. 또 시스템 내의 각 부분으로부터 신호를 받아서 다음에 수행할 동작을 결정한다. - PowerPoint PPT Presentation

Citation preview

Page 1: 제 7 장 제어 장치

제 7 장 제어 장치

제어 장치의 개념 메이저 상태와 타이밍 상태 명령어 사이클 제어 장치의 구현 방법 마이크로프로그램의 예

구성

Page 2: 제 7 장 제어 장치

제어 장치 요구되는 마이크로 연산 (micro-operation) 들을 연속적으로 수행하게 하는

신호를 발생 제어 장치의 구성

제 7 장 제어 장치의 개념

연산 코드(OP Code)

주소 필드( )오퍼랜드

(IR)명령어 레지스터

해독기

순서기

제어 신호 발생기

주기억장치

(1)

(2)

(4)

(3) (3)

ALU 및 레지스터

제 어

장치

중앙처리장치

+1

(5)

MBR

MAR

주소처리기

(PC)

제어 신호

주기억장치로부터 명령을 인출하여 해석하고 , 해석한 결과에 따라 제어 신호를 컴퓨터 시스템 내의 각 부분으로 보낸다 .

또 시스템 내의 각 부분으로부터 신호를 받아서 다음에 수행할 동작을 결정한다 .

Fig. 7-1

Page 3: 제 7 장 제어 장치

명령어의 수행 과정

제 7 장 제어 장치의 개념

① PC 에 기억된 주소를 메모리 주소 레지스터로 보낸다 .

② 주기억장치에서 읽어온 명령어를 IR 에 저장하고 , PC 를 1 증가시킨다 .

③ 명령어의 연산 코드 (operation code) 필드와 주소 필드를 각각 해독기와 주소

레지스 터로 보낸다 .

④ 주소 레지스터에서 명령 수행에 필요한 데이터 , 즉 피연산자의 주소를 계산하고 ,

이를 위해 주기억장치에 접근한다 .

⑤ 제어 신호 발생기에서는 위의 ① ~④ 까지의 과정에서 필요한 제어 신호와 연산

코드를 해석하여 명령의 수행에 필요한 제어 신호를 발생시킨다 .

⑥ 다음 명령의 수행을 위하여 ①부터 다시 시작한다 .현재 명령어 레지스터 (IR) 에 있는 명령어의 수행이 끝나면증가된 프로그램 카운터의 값을 주소 레지스터로 보내어다음 명령어를 인출 , 해석 후 실행하는 과정이 반복된다 .

현재 명령어 레지스터 (IR) 에 있는 명령어의 수행이 끝나면증가된 프로그램 카운터의 값을 주소 레지스터로 보내어다음 명령어를 인출 , 해석 후 실행하는 과정이 반복된다 .

Page 4: 제 7 장 제어 장치

연산 (operation) 과 마이크로 연산 (micro-operation) 연산

주기억장치에 저장된 명령어의 일부 컴퓨터에게 특별한 동작 ( 산술 / 논리 연산 등 ) 등을 실행하도록 명령하는 이진

코드 하나의 연산 코드 : 여러 개의 마이크로 연산들로 구성

마이크로 연산 하나의 클록 펄스 기간 동안 레지스터에 저장된 데이터를 가지고 실행되는 기본

동작 명령어의 수행을 위한 동작들을 의미

연산과 마이크로 연산의 관계 Fig. 7-2 참조

제 7 장 제어 장치의 개념

Page 5: 제 7 장 제어 장치

제어 장치는 주기억장치로부터 명령어를 받아서 연산 코드의 비트 부분을 해석하여 중앙처리장치 내의 레지스터에서 마이크로 연산이 이루어지도록 하는 일련의 제어

함수를 발생

ADD 연산» 5 개의 마이크로 연산 이 연속적 수행» t 는 타이밍 순차

타이밍 : 주클록 발생기

제어 타이밍 신호가 클록과 동기되어 레지스터 활성화 제어 함수

제 7 장 제어 장치의 개념

0100

209

주소주기억장치

001001

연산

데이터

OP code Address

명령어 2

명령어 3

명령어 4

프로그램

0100 001001인출

명령어 1

명령어 레지스터(IR)

제어 신호 발생기

C0 C1 CnC2 제어 함수

제어 장치

0100ADDM0 t0 : MAR PCM0 t1 : MBR M[MAR], PC PC+1

M0 t2 : IR MBR, C0..Cn Decode(op), MAR IR(addr)

M2 t0 : MBR M[MAR]M2 t1 : AC AC + MBR

마이크로연산

연산

마이크로연산

순서기

해독기

Page 6: 제 7 장 제어 장치

제어 장치의 구현 방법 하드와이어 (hardwired) 제어 , 마이크로프로그램 (microprogrammed)

제어

제 7 장 제어 장치의 개념

제어 장치 R1

R2

n

PLoad

Clock

(a) 블록도

Clock

t t+1

Load

(b) 제어 타이밍 신호

Page 7: 제 7 장 제어 장치

하드와이어 제어의 예 논리 게이트로 구현 FT1 + R’T3 : A←B

마이크로 사이클 하나의 마이크로 연산이 수행되는 과정 마이크로 사이클 타임 : 마이크로 사이클의 주기 , 즉 하나의 마이크로 연산을

수행하는데 걸리는 시간

제 7 장 제어 장치의 개념

F

Clock

R

T1 T3 다른 조건

A레지스터

B레지스터

Load

제어 논리

Page 8: 제 7 장 제어 장치

마이크로 사이클 동기 고정식

모든 마이크로 연산의 수행시간이 같다고 가정 모든 마이크로 연산 중 수행 시간이 가장 긴 것을 주 클록 발생기의 클록 주기로

설정 모든 마이크로 연산의 수행 시간이 유사할 경우에 사용 제어 장치의 구현이 간단 CPU 시간의 낭비

동기 가변식 마이크로 연산의 수행 시간이 서로 다를 경우

» 수행 시간이 유사한 것끼리 몇 개의 군으로 나눔» 각 군에 대해 서로 다른 마이크로 사이클 타임을 정의

제어가 복잡 CPU 시간을 효율적으로 사용

비동기식 마이크로 연산의 수행 시간의 차이가 현저할 뿐 아니라 수행 시간을 예측할 수

없을 때 하나의 마이크로 연산이 끝나야 다음 마이크로 연산을 위한 타이밍 신호가 생성 CPU 의 시간을 효율적으로 사용 가능 , 제어 구조가 매우 복잡

제 7 장 제어 장치의 개념

Page 9: 제 7 장 제어 장치

타이밍 신호 링 카운터 혹은 2 진 카운터와 디코더를 사용

제 7 장 제어 장치의 개념

CP

T1

T2

T3

T4

우측 시프트 T0 T1 T2 T3

(a) 4 ( : T=1000)비트 링 카운터 초기값

2 비트 카운터

2 X 4디코더

T0

T1

T2

T3

(b) 카운터와 디코더

증가

Fig. 7-5

4 개의 연속 타이밍 신호의 발생

Page 10: 제 7 장 제어 장치

마이크로 연산의 수행을 위한 제어 : 마이크로 연산의 수행에 필요한 제어 신호의 공급을 의미

주 클록 발생기와 동기되어 정확한 시점에 필요한 제어 신호를 발생 제어 신호는 CPU 의 상태에 따라 결정 CPU 의 상태 : CPU 가 어느 시점에 무엇을 하고 있는가를 나타내는 정보

» 시간에 관한 정보 : 타이밍 상태 , 타이밍 상태 카운터» 현재 진행중인 작업에 관한 정보 : 메이저 상태 , 메이저 상태 레지스터

메이저 상태 CPU 가 하고 있는 작업에 관한 정보 , 주기억장치 접근 단위 인출 사이클 , 간접 사이클 , 실행 사이클 , 인터럽트 사이클 CPU 의 메이저 상태 : 주기억장치 접근 때마다 변화 머신 사이클 : CPU 가 하나의 메이저 상태에 머물러 있는 시간

» 1- 사이클 명령 , 2- 사이클 명령 어느 명령어 수행 n 개의 머신 사이클 필요 : n- 사이클 명령 머신 사이클 = 머이저 상태의 수 = 주기억장치 접근 회수 CPU 의 메이저 상태 변이 (Fig. 7-6 참조 )

제 7 장 메이저 상태와 타이밍 상태

Page 11: 제 7 장 제어 장치

명령어 수행시 기억장치 접근 회수 ( 단일 누산기 구조 )

CPU 의 메이저 상태 변이

제 7 장 메이저 상태와 타이밍 상태

인출(Fetch)

인터럽트(Interrupt)

실행(Excute)

간접(Indirect)

CMA, JMP X( )직접

ADD X( )직접JMP X( )간접ADD X( )간접

인터럽트 메이저 상태

Page 12: 제 7 장 제어 장치

CPU 의 메이저 상태와 역할

제 7 장 메이저 상태와 타이밍 상태

Page 13: 제 7 장 제어 장치

타이밍 상태 메이저 상태를 더 세분화 : 시간에 관한 정보 메이저 상태에서 마이크로 연산이 수행되는 시간 타이밍 상태 = 마이크로 사이클 타임 머신 사이클 = 여러 개의 타이밍 상태 , 즉 여러 개의 마이크로 사이클 예 ( 그림 7-7 제어장치 블록도 참조 )

» JMP X : 1- 사이클 명령 , 4 개의 타이밍

제 7 장 메이저 상태와 타이밍 상태

메이저 상태

타이밍 상태 JMP X ADD X( 직접 번지 )

FETCH

t0

t1

t2

t3

MAR←PCMBR←M[MAR], PC←PC+ 1IR←MBR,C0..C7←Decode(OP), MAR←IR(addr)PC←MAR

MAR←PCMBR←M[MAR], PC←PC+ 1IR←MBR,C0..C7←Decode(OP), MAR←IR(addr)  

INDIRECT

t0

t1

t2

   

EXECUTE

t0

t1

t2

 MBR ←M[MAR]AC ←AC + MBR 

Page 14: 제 7 장 제어 장치

타이밍과 제어 3 비트 순차 카운터 ( 타이밍 상태 카운터 ) : 8 개의 연속 타이밍 신호 메이저 상태 레지스터 : F 와 R 의 플립플롭에 2X4 디코더 연결 , 4 가지 상태

구분

제 7 장 메이저 상태와 타이밍 상태

7 6 5 4 3 2 1 0

3 X 8디코더

I

3 X 8디코더

3비트 순차 카운터

(SC)

INRClear(CLR)Clock

7 6 5 4 3 2 1 0

타이밍 상태

2 X 4디코더

F R

메이저 상태

M0 M1 M2 M3

C0

C7

T0

T7

ControlLogicgates

제어 신호출력

I(1비트)

Opcode(3비트)

Address(12비트)

B11~B0

Other controlconditions

Page 15: 제 7 장 제어 장치

타이밍과 제어 순차 카운터 : 주 클록 발생기와 동기되어 클리어되는 기능 D3T4 : SC ← 0

제 7 장 메이저 상태와 타이밍 상태

T0

Clock

T0 T1 T2 T3 T4 T0

T1

T2

T3

T4

D3

CLRSC

Page 16: 제 7 장 제어 장치

F, R 값에 따른 메이저 상태

명령어 사이클

제 7 장 메이저 상태와 타이밍 상태

Tab. 7-4

프로그램 실행

명령어 사이클 명령어 사이클 명령어 사이클

인출 간접 실행 인터럽트 인출 간접

ЧOP ЧOP ЧOP ЧOP ЧOP ЧOP ЧOP ЧOP : 마이크로 연산

Page 17: 제 7 장 제어 장치

제 7 장 명령어 사이클 명령어 인출 사이클

주기억장치에서 명령어를 읽어 오는 과정 인출단계를 위한 레지스터 전송

» 타이밍 신호 T0 에서

» 타이밍 신호 T1 에서

» 타이밍 신호 T2 에서

주기억장치4096×16

MBR

MAR

PC

IR

Address

Read

LD

T0

1

S0

S2

S1 Bus

4

LD

T1

INC

T2

3

5

LD Clock

2

M0T0 : MAR ←PC

M0T1 : MBR ←M[MAR], PC ←PC + 1

M0T2 : IR ←MBR, C0,..,C7← Decode IR(12-14), MAR← IR(0-11), I← IR(15)

1. 버스선택입력 (S2,S1,S0) 을 001 로 하여 PC 의 내용을

버스로 전송2. MAR 의 LD 입력 활성화 ,

버스의 내용을 MAR 로 전송1. 주기억장치 읽기 (Read) 입력을 활성화

2. S2,S1,S0=011 로 하여 주기억장치의 내용 버스로 전송

3. MBR 의 LD 입력 활성화 , 버스의 내용을 MBR 로 전송

4. PC 의 INC 입력 활성화 , PC 의 값을 하나 증가

1. 위와 동일한 방법으로 연결을 설정

2. 명령어의 종류를 결정

Page 18: 제 7 장 제어 장치

M3T0 : MBR ← PC

M3T1 : MAR ← Return address, PC ← Interrupt service routine start

address

M3T2 : M[MAR] ← MBR

M1T0 : MBR ←M[MAR]

M1T1 : IR ←MBR(addr)

M1T2 : MAR ←IR(addr)

제 7 장 명령어 사이클 명령어 인출 사이클

주기억장치에서 명령어를 읽어 오는 과정

명령어 간접 사이클 간접 주소 지정 방식 , 유효 주소를 구하기 위해 또 한 번의 메모리 접근 필요

명령어 인터럽트 사이클 현재 수행중인 프로그램의 PC 값을 스택에 저장 인터럽트 처리 루틴의 시작 번지를 PC에 저장 인터럽트 처리 루틴으로 분기

M0T0 : MAR ←PC

M0T1 : MBR ←M[MAR], PC ←PC + 1

M0T2 : IR ←MBR, C0,..,C7← Decode IR(12-14), MAR← IR(0-11), I← IR(15)

Page 19: 제 7 장 제어 장치

명령어 실행 사이클 ADD X

M2T0 : MBR ← M[MAR]

M2T1 : AC ← AC + MBR, E ← Cout

ISZ X

M2T0 : MBR ← M[MAR]

M2T1 : MBR ← MBR + 1

M2T2 : M[MAR] ← MBR, if (MBR=0) then (PC ← PC + 1)

LDA X

M2T0 : MBR ← M[MAR]

M2T1 : AC ← MBR

BSA X

M2T0 : M[MAR] ← PC, MAR ← MAR + 1

M2T1 : PC ← MAR

» BSA 실행 예

제 7 장 명령어 사이클

Page 20: 제 7 장 제어 장치

BSA 실행 예

제 7 장 명령어 사이클

주기억장치

서브루틴

0 BSA 135

Next Instruction

20

PC = 21

MAR = 135

136

1 BUN 135

(a) 명령 수행 전

주기억장치

서브루틴

0 BSA 135

Next Instruction

20

21

135

PC = 136

1 BUN 135

(b) 명령 수행 후

21

Page 21: 제 7 장 제어 장치

컴퓨터 명령어 사이클 흐름도

제 7 장 명령어 사이클

FR

01(Indirect)10(Execute)

00(Fetch)11(Interrupt)

OP Code?

ЧOP

ReadAddress

FetchInstruction

Set upInterrupt

FR = 10

FR = 10 FR = 01

IndirectAddressing?

Interruptfor EnabledInterrupt?

ExecuteInstruction

ЧOP : micro operation

FR = 11 FR = 00

FR = 00No Yes

NoYes

Page 22: 제 7 장 제어 장치

제어 신호와 제어점 제어 장치의 설계와 구현

CPU 의 동작 : 마이크로 연산의 집합으로 정의 제어 장치 : 각 마이크로 연산의 수행을 위하여 어떠한 제어 신호가

필요하며 , 제어 장치가 해야할 일이 무엇인지를 정확하게 정의 제어 장치의 특성 결정

① CPU 의 기본 구성 요소를 정의한다 .

- ALU, 레지스터 , 내부 버스 , 외부 버스 , 제어 장치 등 ② CPU 가 실행할 마이크로 연산을 정의한다 .

- 한 레지스터에서 다른 레지스터로 데이터의 전송 - 한 레지스터에서 외부 버스로의 데이터 전송 - 외부 버스로부터 레지스터로의 데이터 전송 - 산술 또는 논리 연산의 수행③ 마이크로 연산들이 실행되기 위하여 제어 장치가 해야할 기능들을

결정한다 .

- 순서 제어 (sequencing) : 실행될 프로그램에 근거하여 중앙처리장치가 일련의 마이크로 연산들을 적절한 순서대로 처리하도록 해준다 .

- 실행 제어 (execution) : 제어 장치는 각 마이크로 연산이 수행되도록 제어 신호를 발생시킨다 .

제 7 장 명령어 사이클

Page 23: 제 7 장 제어 장치

제어 신호와 제어점 제어 장치 모델

제 7 장 명령어 사이클

제 어 장치

명령어 레지스터(IR)

레지스터 집합

ALU

Control Signalsfrom system bus

Control Signalsto system bus

Control Signalswithin CPU

Control bus

Clock

Flags

입력 신호 » 클록 (clock), » 명령어 레지스터 (IR)» 플래그 (flags)» 제어 버스로부터의 제어 신호들

출력 신호» CPU 내의 제어 신호들» 제어 버스로 나가는 제어 신호들

제어 장치의 기능 수행

» 시스템의 상태에 관한 입력 ( 메이저 상태와 타이밍 상태 )

» 시스템의 동작을 제어하는 출력

Page 24: 제 7 장 제어 장치

제어 신호와 제어점 제어 장치 모델

세 가지 형태의 제어 신호» ALU 의 연산 기능을 활성화시키는 신호» 데이터 경로를 활성화시키는 신호» 외부 시스템 버스나 그 밖의 외부 인터페이스로 나가거나 들어오는 신호

예 : 인출 사이클» MAR ← PC

» PC : 출력 게이트 , MAR : 입력 게이트를 열게하는 제어 신호 제어점 : 입력 게이트와 출력 게이트 그리고 연산 장치 (ALU) 의 제어 신호

단자 독립 제어점 : 서로 다른 제어 신호를 가하여야 되는 제어점

제 7 장 명령어 사이클

Q0 Q1 Q2 Q3 Q0 Q1 Q2 Q3

D0 D1 D2 D3 D0 D1 D2 D3

Bus←R1 Bus←R2

cp cp

R1 R2

입력 게이트

출력 게이트

R2←BusR1←Bus

Page 25: 제 7 장 제어 장치

제어 신호와 제어점 제어 신호의 예

단일 누산기 구조의 컴퓨터에서 제어 장치의 기능 설명 예 제어 신호 Ci로 표기 (Tab. 7-5 참조 )

제어 신호의 목적지 : 데이터 경로 , ALU, 시스템 버스

제 7 장 명령어 사이클

PCAC

ALU

I R

Fl agsCl ock

MAR

MBR

제어 장치

제어신호

C0 C1 CnC2

+1

C9

C11

C10

C6 C7

C4

C13

C2C8

C1 C3

C0

C12

C5

주기억장치

C14

제어 신호

Page 26: 제 7 장 제어 장치

하드와이어 구현

조합회로 제어 장치의 내부 논리 설계 : 각 입력 신호들에 대한 부울 표현식을 유도 비정규형 논리이므로 매우 복잡 비경제적

제 7 장 제어 장치의 구현 방법

제어 장치

디코더

순차카운터

T0

C0

Tn

T2

T1

제어 신호

CnC2C1

플래그

클록

명령어 레지스터

D0 D2D1 Dn

Fig. 7-16

Page 27: 제 7 장 제어 장치

마이크로 프로그램 구현 Morris Wilkes 제안 , 체계적으로 시스템 제어 장치를 설계하고 구현 제어 메모리 (control memory)

: 마이크로 연산에 필요한 제어 신호 저장 ( 마이크로프로그램 ) 마이크로 명령어 (micro-instruction) : 어떤 마이크로 연산을 할 것인가를

결정하는 비트들의 모임

제어 주소 레지스터 (CAR) : 마이크로 명령어의 주소 지정 제어 데이터 레지스터 (CDR) : 마이크로 명령어 보관 다음 명령어의 주소 : 외부 입력 + 마이크로 명령어의 일부 비트

제 7 장 제어 장치의 구현 방법

Nextaddress

generator(sequencer)

ControlAddressRegister

Controlmemory(ROM)

외부 입력조건 제어 워드Control

dataRegister

Next- address information

마이크로 프로그램 제어 장치

Page 28: 제 7 장 제어 장치

마이크로 명령어 형식 수평 마이크로 명령어와 수직 마이크로 명령어 수평 마이크로 명령어 : 제어 신호 필드 , 조건 분기 필드 , 주소 필드

» 한 비트 하나의 마이크로 연산» n 개의 서로 다른 제어 신호 n 비트의 제어 신호 필드가 필요 » 조건 분기 필드 : 분기에 사용될 조건» 동작속도가 빠르고 하드웨어를 효율적으로 사용» 제어 필드의 수가 마이크로 연산의 수에 의존 긴 제어 워드를 필요 , 비용이

많이듦

수직 마이크로 명령어» 디코딩 회로를 통하여 제어 신호 발생» 배타적인 값을 갖는 비트들을 묶어서 하나의 필드를 형성 제어 워드의 길이를

줄임» K 비트의 필드 2k개의 서로 다른 마이크로 연산을 명시» 일반 명령어와 유사 , 속도가 느린것이 단점

제 7 장 제어 장치의 구현 방법

CPU 내부 제어 신호 시스템 버스 제어 신호 분기 조건 마이크로 명령어 주소

무조건 분기(Zero, AC=0)제로(AC )부호 의 부호 간접 비트

Page 29: 제 7 장 제어 장치

마이크로 명령어 형식 수직 마이크로 명령어

주소 시퀀싱 마이크로 프로그램 시퀀서 : 다음 마이크로 명령어의 주소 결정 마이크로 명령어 : Fig. 7-18 과 같이 여러 개의 그룹으로 나누어 저장 제어 메모리의 주소 : 하나의 루틴 내에서 연속적인 마이크로 명령어를

수행 ,

다른 루틴으로 분기 문제는 이러한 마이크로 프로그램을 언제 어떻게 수행해야 하는가 하는

다음 주소 걀정을 위한 방법이 필요 다음 주소 결정 : 현재 진행 중인 마이크로 명령어 주소 비트 + 상태 비트

제 7 장 제어 장치의 구현 방법

A기능 코드 B기능 코드 분기 조건 마이크로 명령어 주소 C기능 코드

디코더 디코더 디코더

Page 30: 제 7 장 제어 장치

제어 기억장치의 구성

제어 기억장치에서 다음에 수행할 마이크로 명령어의 주소를 결정하는 방법

제 7 장 제어 장치의 구현 방법

jump to Indirect or Execute

●●●●

jump to Execute

●●●●

jump to Fetch

●●●●

jump to Indirect or Interrupt

●●●●

jump to Indirect or Interrupt

●●●●

jump to Indirect or Interrupt

●●●●

jump to OP Code Routine

FetchCycle

Routine

IndirectCycle

Routine

InterruptCycle

Routine

Execute Cycle Beginning

AND Routine

ADD Routine

I/O Routine

① CAR 을 하나 증가시킴

② 무조건 분기와 상태 비트 조건에 따른 조건부 분기

③ 명령어의 OP 코드 비트들로부터 제어 메모리의 주소로 매핑하는 처리

④ 서브루틴을 호출 (call) 하고 , 복귀 (return)하는 기능

Page 31: 제 7 장 제어 장치

OP Code

Mappinglogic

Branchlogic Multiplexers

Subroutineregister(SBR)

Increment

Control Address Register(CAR)

Clock

Control Memory

Branch address

Select status bit

Status bits

MUXselect

① increment ② 분기 ③ 조건부 ④ 명령어의 연산 코드 매핑 ⑤ 서브루틴의 복귀 주소

제 7 장 제어 장치의 구현 방법

Page 32: 제 7 장 제어 장치

명령어 매핑 매핑 : 명령어의 연산 코드 부분 (op code) 에 대한 제어 기억장치 내의

마이크로 명령어의 시작 주소를 찾아내는 과정

한 개의 연산 코드 : 4 개의 마이크로 명령 시작 주소 : 010110000, 010110101, 010111010, 010111111

제 7 장 제어 장치의 구현 방법

1 0 1 1 주소 필드(instruction)명령어

마이크로 명령어 주소(microinstruction address)

0

매핑 비트 0 X X X X 0 0

0 01 0 1 1

OP Code

Page 33: 제 7 장 제어 장치

컴퓨터 하드웨어의 구성 및 명령어 형식

제 7 장 마이크로프로그램의 예

I OP code Address

15 14 11 10 0

(a) 명령어 형식

기호 연산 코드 동작

ADD

BRANCH

STORE

0000

0001

0010

AC ← AC + M[EA]

If (AC<0) then (PC←EA)

M[EA] ← AC

EA : Effective Address

(b) 3개의 컴퓨터 명령어

컴퓨터 명령어

CAR SBR

Control Memory128 X 20

Control Unit

6 0 6 0

PC

MAR

MUX

Memory2048 X 16

Address

10 0

MUX

MBR

ArithmeticLogic andShift Unit

AC

15 0

15 0

IR

10 0

15 0

Page 34: 제 7 장 제어 장치

마이크로 명령어 형식

예를 들어 F1, F2, F3 필드에 000 100 101의 값을 지정하게 되면 두 개의 마이크로 연산을 동시에 지정

제 7 장 마이크로프로그램의 예

마이크로 명령어 형식 (20비트 )

F1 F2 F3 CD BR AD

3 3 3 2 2 7

F1, F2, F3 : Microoperation fields

CD : Condition for branching

BR : Branch field

AD : Address field

   MBR ← M[MAR]  (F2=100)

PC ← PC + 1     (F3=101)

Page 35: 제 7 장 제어 장치

제 7 장 마이크로프로그램의 예

000 None NOP001 AC←AC+MBR ADD010 AC←0 CLRAC011 AC←AC+1 INCAC100 AC←MBR BRTAC101 MAR←IR(0-10) IRTAR110 MAR←PC PCTAR111 M[MAR]←MBR WRITE

F1 마이크로 연산 기호

000 None NOP001 AC←AC-MBR SUB010 AC←AC∨ MBR OR011 AC←AC∧ MBR AND100 MBR←M[MAR] READ101 MBR←AC ACTBR110 MBR←MBR+1 INCBR111 IR←MBR BRTIR

F2 마이크로 연산 기호

000 None NOP001 AC←AC MBR XOR010 AC←AC COM011 AC← shl AC SHL100 AC← shr AC SHR101 PC←PC+1 INCPC110 PC←MAR ARTPC111 MBR(0-10)←PC PCTBR

F3 마이크로 연산 기호 CD 조건 기호

00 Always=1 U 01 IR(15) I 10 AC(15) S 11 AC= 0 - Z

BR 기호 기능

00 JMP CAR←AD if condition = 1 CAR← CAR + 1 if condition = 0 01 CALL CAR←AD, SBR←CAR + 1 if condition = 1 CAR← CAR + 1 if condition = 0 10 RET CAR←SBR(Return from subroutine) 11 MAP CAR(2-5)←MBR(11-14), CAR(0,1,6)← 0

S : Unconditional branchS : Indirect address bitS : Sign bit of ACS : Zero value in AC

UI

Z

+

Page 36: 제 7 장 제어 장치

   MAR ← PC

   MBR ← M[MAR], PC ← PC + 1

   IR ← MBR

   MAR ← IR(0-11), CAR(2-5) ← IR(11-14), CAR(0,1,6) ← 0

제 7 장 마이크로프로그램의 예 인출 사이클 마이크로 명령어

[그림 7-22]의 컴퓨터 구성에서» 제어 워드는 128 워드» 각각의 워드는 20비트로 구성» 0~63번지는 16개의 매크로 연산을 위한 루틴으로 사용» 64~127번지는 다른 용도로 사용 . 인출 사이클 루틴 64번지부터 시작

인출 사이클 루틴은 제어 기억장치 내의 주소 64, 65, 66, 67에 위치하는 네 개의 마이크로 명령어로 다음과 같이 구성

Page 37: 제 7 장 제어 장치

제 7 장 마이크로프로그램의 예

기호로 표시된 마이크로 명령어 전통적인 어셈블리 언어 작성 방법과 동일한 개념 기호 주소를 나타내는 라벨(label), 마이크로 연산, CD(조건), BR(분기), AD(주소) 등 다섯 개의 필드로 나뉘어지며 각 필드는 다음의 정보를 갖게 된다.

» 라벨 필드는 공백 일 수도, 기호 주소를 나타낼 수 있다. 라벨 뒤에는 콜론(:)이 붙어야 한다.» 마이크로 연산 필드는 [표 7-6]에서 정의된 하나 혹은 둘 이상의 기호로 구성되고, 각 기호는 콤마로 구분된다.» CD 필드는 U, I, S, Z 중 하나의 문자를 넣는다.» BR 필드는 [표 7-6]에 정의된 네 개의 기호들 중 하나를 갖는다.» AD 필드는 다음 세 가지 중 하나를 가지는데, 이는 다음 주소를 결정하는 방법을 나타낸다.

    - 기호 주소(이는 라벨을 나타내며, 프로그램상에 나타나야 한다)

    - NEXT(이는 연속된 다음 주소를 의미한다)

    - BR이 RET나 MAP이면 AD는 공란으로 둔다.제어 워드는 128 워드» ORG라는 의사 명령어(psuedoinstruction)를 사용하는데, 이는 마이크로프로그램 루틴의 시작 위치를 나타낸다.

Page 38: 제 7 장 제어 장치

제 7 장 마이크로프로그램의 예

이진 마이크로프로그램

기호 프로그램

어셈블러

제어 기억장치

이진주소

1000000

10000011000010

1000011

110 000 000 00 00 1000001

F1 F2 F3 CD BR AD

0000000

1111111

000 100 101 00 00 1000010

000 111 000 00 00 1000011101 000 000 00 11 0000000

인출 사이클을 위한이진 마이크로프로그램

Page 39: 제 7 장 제어 장치

제 7 장 마이크로프로그램의 예 연산 코드에 따른 매크로 연산 루틴으로의 분기 동작

인출 사이클의 마지막 동작은 인출된 명령어의 연산 코드에 따른 매크로 연산 루틴으로의 분기 동작» 위의 인출 사이클이 끝난 후 명령어 레지스터 (IR) 에 들어온 값의 연산 코드 (OP) 가 0000 인 ADD 명령어라면 » 제어 주소 레지스터 (CAR) 에 0000000 이 저장되어 ADD 루틴을 수행» 동일한 방법으로 BRANCH 는 0000100 이 , STORE 는 0001000 이 그 루틴의 시작 위치

I 0000 Address

opcode

0 000 000 000 01 01 10001001 000 100 000 00 00 00000102 001 000 000 00 00 10000003 000 000 000 00 00 10000004 000 000 000 10 00 00001105 000 000 000 00 00 10000006 000 000 000 01 01 10001007 000 000 110 00 00 10000008 000 000 000 01 01 10001009 000 101 000 00 00 000101010 111 000 000 00 00 100000011 000 000 000 00 00 1000000

64 110 000 000 00 00 100000165 000 100 101 00 00 100001066 000 111 000 00 00 100001167 101 000 000 00 11 000000068 000 100 000 00 00 100010169 000 111 000 00 00 100011070 101 000 000 00 10 0000000

(a) 명령어 레지스터(IR)

주소

Mapping

ADD

BRANCH

STORE

FETCH

INDIRECT

F1 F2 F3 CD BR AD

(b) 제어 기억장치를 위한 이진 마이크로프로그램

연산코드의 매핑

Page 40: 제 7 장 제어 장치

제 7 장 마이크로프로그램의 예

기호로 표시된 마이크로프로그램