51
9 장 . 장장장장 Lecture #9

9 장 . 제어장치

Embed Size (px)

DESCRIPTION

9 장 . 제어장치. Lecture #9. 9.1 제어 장치의 구성 (1). 제어 장치 (Control Unit) 컴퓨터 시스템의 모든 장치들을 유기적으로 동작하도록 제어하는 장치. 9.1 제어 장치의 구성 (2). 제어장치 구조. 9.2 마이크로 오퍼레이션과 마이크로 사이클 (1). 마이크로 오퍼레이션 명령어의 실행 과정에서 한 단계씩 이루어지는 동작 . 중앙처리장치 클럭 ( 중앙처리장치 클럭 사이클 ) 중앙처리 장치에 공급되는 클럭 펄스 - PowerPoint PPT Presentation

Citation preview

Page 1: 9 장 .  제어장치

9 장 . 제어장치Lecture #9

Page 2: 9 장 .  제어장치

컴퓨터 구조론 2

9.1 제어 장치의 구성 (1)

제어 장치 (Control Unit) 컴퓨터 시스템의 모든 장치들을 유기적으로 동작하도록

제어하는 장치 .

제어 로직(control logic)

데이터 처리기(data processing)

외부 입력 신호

출력 데이터

상태 신호

마이크로 오퍼레이션

입력 데이터

Page 3: 9 장 .  제어장치

컴퓨터 구조론 3

9.1 제어 장치의 구성 (2)

제어장치 구조 프로그램 카운터

(PC)

주 기억 장치

ALU 및 레지스터

명령어 레지스터(IR)

주소 처리기

제어신호 발생기

해독기

순서기

+1

제어 장치

1

5

3

4

3 2

4

2

5

Page 4: 9 장 .  제어장치

컴퓨터 구조론 4

마이크로 오퍼레이션 명령어의 실행 과정에서 한 단계씩 이루어지는 동작 . 중앙처리장치 클럭 ( 중앙처리장치 클럭 사이클 )

중앙처리 장치에 공급되는 클럭 펄스 명령어 실행은 명령어 사이클로 이루어진 프로그램을

순차적으로 수행한다는 것을 의미 . 각 명령어 사이클은 여러 개의 부 사이클로 이루어져

있으며 부 사이클은 인출 사이클 , 간접사이클 , 실행사이클 , 인터럽트 사이클로 구분한다 .

9.2 마이크로 오퍼레이션과 마이크로 사이클 (1)

Page 5: 9 장 .  제어장치

컴퓨터 구조론 5

프로그램 실행의 계층

프로그램 실행

명령어 사이클 명령어 인출 사이클 마이크로 오퍼레이션

마이크로 오퍼레이션

마이크로 오퍼레이션

간접 사이클 마이크로 오퍼레이션

마이크로 오퍼레이션

실행 사이클 마이크로 오퍼레이션

마이크로 오퍼레이션

인터럽트 사이클 마이크로 오퍼레이션

마이크로 오퍼레이션

명령어 사이클

명령어 사이클

9.2 마이크로 오퍼레이션과 마이크로 사이클 (2)

Page 6: 9 장 .  제어장치

컴퓨터 구조론 6

1 개 마이크로 오퍼레이션

t0 t1 t2 t3 t4 tn t6

시스템 클럭

(마이크로 오퍼레이션 MAR PC) (마이크로 오퍼레이션 MBR [M])

(마이크로 오퍼레이션 IR MBR)

명령어 인출 사이클 명령어 실행 사이클 인터럽트사이클

1 개 명령어 사이클

9.2 마이크로 오퍼레이션과 마이크로 사이클 (3)

Page 7: 9 장 .  제어장치

컴퓨터 구조론 7

마이크로 오퍼레이션 기능 : 데이터 전송 , 데이터 연산 전송 기능

레지스터와 레지스터간의 데이터 전송 , 레지스터와 메모리나 입출력 장치들 간의 데이터 전송 .

예 ) MBR ← [M] ; A ← B ; MAR ← PC 연산 기능

단항 연산자 : 하나의 레지스터에 기억되어 있는 정보가 연산 장치에 전달되어 연산 후에 그 값을 레지스터에 기억시키는 것 .( 예 :보수연산 )

이항 연산자 : 두 개의 레지스터에 기억되어 있는 정보가 연산 장치에 전달되어 연산이 행해진 후 그 결과를 다른 레지스터로 옮기는 것 .( 예 A ← A + B )

9.2 마이크로 오퍼레이션과 마이크로 사이클 (4)

Page 8: 9 장 .  제어장치

컴퓨터 구조론 8

마이크로 오페레이션의 제어 기능 제어 기능에 의한 정보전달

P : A B B 레지스터의 내용을 A 레지스터로 전송할 경우 전송 제어 기능

신호 P 에 의하여 레지스터 B 의 내용이 레지스터 A 로 옮겨지는 과정 .

[ 정보 전달 과정 ] [ 타이밍 상태 ]

B레지스터

A레지스터LoadP

CLK

CLK

P 제어점 신호

(B 레지스터의 내용이 A 레 )지스터로 로드되는 시점

9.2 마이크로 오퍼레이션과 마이크로 사이클 (5)

Page 9: 9 장 .  제어장치

컴퓨터 구조론 9

마이크로 사이클 (micro cycle) 하나의 마이크로 오퍼레이션이 수행되는 과정 . 동기 고정식

수행 시간이 가장 긴 것을 마이크로 사이클 타임으로 정하여 클럭을 공급하는 방식 .

제어 장치의 구현이 간단하나 CPU 의 속도와 성능 저하 동기 가변식

수행시간이 유사한 것끼리 모아 한 개의 군을 형성하여 처리 . 제어 장치가 복잡하나 CPU 의 성능과 속도 향상

비동기식 수행 시간의 차이가 현저하고 예측시간도 예측할 수 없을 때

사이클을 정의하지 않고 비동기식으로 처리 .

9.2 마이크로 오퍼레이션과 마이크로 사이클 (6)

Page 10: 9 장 .  제어장치

컴퓨터 구조론 10

9.3 메이저 상태 (1)

메이저 상태와 타이밍 상태 메이저 상태 : 레지스터와 중앙처리장치가 무엇을 하고

있는가를 나타냄 . 타이밍 상태 : 시간에 관한 정보를 기억

메이저 상태의 단계별 수행 상태 Fetch Cycle( 인출 사이클 )

실행할 명령어를 메모리로부터 읽어낸다 . 명령어 해석 명령어가 1 사이클 명령어이면 다시 인출사이클로 이동 (CPL, SHL) 1 사이클 명령어가 아니면 간접 사이클로 가고 아니면

실행사이클로 이동 .

Page 11: 9 장 .  제어장치

컴퓨터 구조론 11

9.3 메이저 상태 (2)

메이저 상태의 단계별 수행 상태 ( 계속 ) Indirect Cycle( 간접 사이클 )

주소 기억장치로부터 주소를 읽어낸다 . 간접주소이면 간접사이클로 이동하고 , 아니면 분기명령이면 실행

후 인출 사이클로 이동하고 분기 명령이 아니면 실행사이클로 이동 . Execution Cycle( 실행 사이클 )

데이터를 메모리에서 읽어낸다 . 실행 후 인출 사이클로 이동 .

Interrupt Cycle( 인터럽트 사이클 ) CPU 상태를 잠시 피신시키고 , interrupt routine 으로 점프 . 인출 사이클로 이동 .

Page 12: 9 장 .  제어장치

컴퓨터 구조론 12

9.3 메이저 상태 (3)

메이저 상태의 신호 흐름도

Yes

인출 사이클

1 ?사이클명령

인터럽트사이클

간접사이클

No

No

Yes

YES

Yes

CPL, SHL등implied addressing mode

?간접사이클

?직접사이클

Interrupt ?사이클

No

No

?분기

No

Yes

실행 사이클

Page 13: 9 장 .  제어장치

컴퓨터 구조론 13

9.3 메이저 상태 (4)

메이저 상태와 타이밍 상태

t0 t1 t2 t3 t4 tn t6

시스템 클럭

메이져 상태

명령어 인출 사이클 명령어 실행 사이클 인터럽트사이클

1 개 명령어 사이클

타이밍 상태( )마이크로 오퍼레이션

Page 14: 9 장 .  제어장치

컴퓨터 구조론 14

9.3 메이저 상태 (5)

인출 사이클 (fetch cycle) 명령어 인출 사이클 (instruction fetch cycle)

인출 메이저 상태에서 명령어 인출과 실행 준비 작업 . 수행단계

실행될 명령어의 주소를 PC 로부터 기억장소 주소 레지스터 (MAR) 로 전송 .

기억장치로부터 명령어 코드를 가져오고 PC 를 1 증가 . MBR 의 내용을 명령어 레지스터 (IR) 로 전송 .

인출과정 t1 : MAR ←(PC) t0 : MBR ←M[MAR]

PC ←(PC) +1 t2 : IR ← (MBR)

Page 15: 9 장 .  제어장치

컴퓨터 구조론 15

9.3 메이저 상태 (6)

명령어 인출 사이클 (instruction fetch cycle) ( 계속 ) 명령어 인출 경로

명령어 인출 사이클

READ

PC MAR

MEMORYCELL

IR MBR

해석기

클럭

Load

Load

t0t1t2

t0

t1

Increment

t1t2

t0 t1 t2 t3 t4 tn t6

시스템 클럭

명령어 인출 사이클

명령어 실행 사이클 인터럽트사이클

MAR PC MBR [M]

PC PC+1

IR MBR

Page 16: 9 장 .  제어장치

컴퓨터 구조론 16

9.3 메이저 상태 (7)

간접 사이클 (indirect cycle) 명령어 인출 후 다음 단계로 실행사이클로 갈 것인가를

간접 사이클로 갈 것인가 결정 . 간접 주소 지정 방식

간접 사이클 실행 흐름 qat3 : MAR ← IR(Address) qat4 : MBR ← M[MAR] qat5 : IR(address) ← MBR(address)

Op-code

qa A(100H)Momory

Operand( )간접주소

01H

55H

10H0100H

0101H

0110H

:0100H 유효주소 번지

Page 17: 9 장 .  제어장치

컴퓨터 구조론 17

t0 t1 t2 t3 t4 t5 t6

시스템 클럭

명령어 인출 사이클

간접 사이클

MAR IR MBR [M] IR MBR

qa

9.3 메이저 상태 (8)

PC MAR

MEMORYCELL

qa, A(address) MBR

해석기

클럭

Load

Load

qat3

Increment

READ

IR

qat4qat5

qat3qat4

qat5

[ 간접 사이클 접근 경로와 간접 사이클 ]

Page 18: 9 장 .  제어장치

컴퓨터 구조론 18

9.3 메이저 상태 (9)

실행 사이클 (execute cycle) 실제로 명령어 수행이 일어남 . 인출과정 (ADD A, (nn))

qadd t3 : MAR ← IR(nn address) qadd t4 : MBR ← M[MAR] qadd t5 : A ← A + MBR

Page 19: 9 장 .  제어장치

컴퓨터 구조론 19

9.3 메이저 상태 (10)

실행 사이클 (execute cycle) ( 계속 ) 실행 사이클 접근 경로와 실행 사이클

PC MAR

MEMORYCELL

qadd (address) MBR

해석기

클럭

qaddt3

Load

READ

qaddt4qaddt5

ALU

A

qaddt3IR

Load

qaddt5

t0 t1 t2 t3 t4 t5 t6

시스템 클럭

명령어 인출 사이클

실행 사이클

MAR IR MBR [M] A MBR

qadd

Page 20: 9 장 .  제어장치

컴퓨터 구조론 20

9.3 메이저 상태 (11)

인터럽트 사이클 (interrupt cycle) 프로그램 수행 중에 인터럽트가 걸리면 현재 수행중인

프로그램을 일시정지하고 인터럽트 프로그램을 먼저 처리 인출과정

* qint t0 : MBR ← (PC) * qint t1 : MAR ← (Stack Pointer) : save-address

PC ← Interrupt service routine-start address * qint t2 : MAR ← PC

Page 21: 9 장 .  제어장치

컴퓨터 구조론 21

9.4 제어 장치 구현 (1)

제어 장치 구현 방법 하드 와이어 제어 방식

상태 플립 - 플롭 제어 방식 순차 레지스터와 디코더 제어 방식

소프트웨어 제어 방식 PLA 제어 방식 마이크로 프로그램 제어 방식

Page 22: 9 장 .  제어장치

컴퓨터 구조론 22

9.4 제어 장치 구현 (2)

상태 플립플롭 제어 방식 순차 제어 회로의 각 상태마다 한 개씩의 플립플롭으로 구성 . 장점 : 설계하기 간단 . 단점 : 상태 수가 증가하면 하드웨어적으로 복잡해진다 .

구성도

DecisionLogic

D Q

D Q

D Q

cp

ExternalInput

T0

T1

T2

Page 23: 9 장 .  제어장치

컴퓨터 구조론 23

9.4 제어 장치 구현 (3)

순차 레지스터와 디코더 제어 방식 순차 레지스터를 사용 : 제어 상태를 순차적으로 실행 디코더 사용 : 각 상태마다 하나의 출력

ExternalInput

Decision

LogicSequenceRegister

Decoder

현재 상태

T0

T1

T2

T3

Page 24: 9 장 .  제어장치

컴퓨터 구조론 24

9.4 제어 장치 구현 (4)

PLA 제어 방식 소프트웨어적으로 제어 신호 구성 PLA 프로그램

디코더의 논리 상태를 코드화하여 저장 구성도

PLA

SequenceRegister

ExternalInputCondition

Micro-operationControl signalOutput

Page 25: 9 장 .  제어장치

컴퓨터 구조론 25

9.4 제어 장치 구현 (5)

마이크로 프로그램 제어 방법 제어 변수가 1 과 0 으로 이루어진 제어 워드 (control word)

로 구성 . 마이크로 명령어들을 순차적으로 모은 마이크로

프로그램을 기억 장치에 기억시켜 두고 순차적으로 실행시키면서 제어신호를 만들어 내는 방식 .

구성도

NextAddress

Generator

ControlAddressRegister

ControlMemory(ROM)

ExternalInputCondition

Next Address Information

Micro-operationControl signalOutput

Page 26: 9 장 .  제어장치

컴퓨터 구조론 26

9.5 마이크로 명령어 (1)

마이크로 명령어 한 개의 마이크로 오퍼레이션이 수행되는 동작 제어워드

각 순간에 실행되는 마이크로 명령어는 1, 0 으로 표현 마이크로 프로그램 또는 펌웨어 (Firmware)

하드웨어와 소프트웨어의 중간 단계 마이크로 명령어의 조합 .

Page 27: 9 장 .  제어장치

컴퓨터 구조론 27

9.5 마이크로 명령어 (2)

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

수평 마이크로 명령어 형식 각각의 제어 신호에 하나의 비트 할당

수직 마이크로 명령어 형식 마이크로 명령들이 동시에 여러 개나 일어나지 않는다는 가정 하에 설계 하나의 명령어는 하나의 오퍼레이션만 수행 . 일반 명령어와 유사 , 설계할 때 논리 회로가 복잡

제어신호 필드 조건 분기 필드 마이크로 명령어 주소

제어신호

CPU 내부제어신호 제어신호 필드 조건 분기 필드 마이크로 명령어 주소

(decoder)디코더

제어신호

Page 28: 9 장 .  제어장치

컴퓨터 구조론 28

9.6 주소 순서기 (1)

주소 순서기IR( )명령어 레지스터

(decoder)명령어 해독기

MUX0 1 2 3

CAR(Control Address Register

SBR(SuBroutine

Register)

incrementer

(Control 제어 메모리memory)

(CBR)제어 버퍼 레지스터

BranchLogic

microoperation

Select a state

Branch address

상태조건

S0

S1

외부 제어 신호들 내부 제어 신호들

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

Page 29: 9 장 .  제어장치

컴퓨터 구조론 29

9.6 주소 순서기 (2)

주소 순서기 각 구성요소의 기능

명령어 해독기 명령어의 연산을 해독하여 해당 연산을 수행하기 위한 루틴의 시작

주소 결정 . MUX

제어 주소 레지스터에 실행 주소 선택

S1 S0 MUX 기능

0 0 CAR 로 1 증가 가능0 1 제어메모리의 브런치 번지로 점프

1 0 명령어 해독기로부터 명령어의 시작번지 매핑 기능

1 1 서브 프로그램 루틴으로 점프

Page 30: 9 장 .  제어장치

컴퓨터 구조론 30

9.6 주소 순서기 (3) 각 구성요소의 기능

제어 주소 레지스터 (CAR) 마이크로 프로그램을 저장하는 내부 기억장치 . 입력되는 주소 : 1 증가된 주소 , 제어 메모리로부터 브런치 주

소 , 해독기로부터 해독된 명령어가 내장된 제어 메모리의 시작 주소 ,SBR 로부터 서브루틴의 주소

제어 메모리 마이크로 프로그램 저장하는 내부기억장치

제어 버퍼 레지스터 제어기억장치로부터 읽혀진 마이크로 명령어 비트들을

일시적으로 저장 . 내부제어신호 : MUX 선택 신호 , 브런치 주소 외부제어신호 : 연산장치 , 레지스터 , 외부메모리

서브루틴 레지스터 마이크로 프로그램에서 서브루틴이 호출되는 경우 현재의 CAR

내용을 일시적으로 저장 .

Page 31: 9 장 .  제어장치

컴퓨터 구조론 31

9.6 주소 순서기 (4)

제어 장치 동작 CAR 로 제어 기억 장치의 마이크로 명령어 시작 번지를 로드하기

위한 로드 신호를 보낸다 . 주소가 CAR 에 의해 지정된 기억 장치내의 제어 워드를 CBR 로

전송한다 . CBR 의 내용에 따라 제어 신호들과 순차 모듈 논리 장치에 다음

주소 정보를 전송한다 . 주소 순서기는 CBR 과 ALU 의 상태 레지스터들로부터 발생된

상태에 의해 점프해 갈 새로운 주소를 CAR 에 적재한다 .

Page 32: 9 장 .  제어장치

컴퓨터 구조론 32

9.6 주소 순서기 (5)

명령어 해독기 IR 로부터 전송된

명령어의 Op-code 를 마이크로 명령어가 저장되어 있는 제어 메모리 주소로 매핑

IR 1011 addressOpcode Operand

명령어 해석기

매핑된번지 0 1011 00

제어 메모리

000000000000010000010

0101100010110101011100101111

address

Opcode "1011" 에 해당 되는 마이크로프로그램이

저장된주소

Page 33: 9 장 .  제어장치

컴퓨터 구조론 33

9.7 연산 제어 장치 설계 (1)

가 / 감산기 분석

AS, BS 는 각 레지스터들의 부호 비트임 . 제어로직은 가산 (qa 신호 ) 혹은 감산 (qb신호 ) 명령어에

의해 수행 .

B register

ALU

A register

Bs

As

EControllogic

qa( )가산

x( )동작완료

qb( )감산

Page 34: 9 장 .  제어장치

컴퓨터 구조론 34

9.7 연산 제어 장치 설계 (2)

가 / 감산기 알고리즘

As : B s

A=A+BE=C out

(X=1)초기 상태

E E=0

A=A+1As=As

B s=Bs

A=A

=

qs=1(-)qa=1(+)

=0A<B

=1

A>=B

A=A+B+1E=C out

=

Page 35: 9 장 .  제어장치

컴퓨터 구조론 35

9.7 연산 제어 장치 설계 (3)

가 / 감산기 제어 신호

S0, S0 , S0 : 제어신호 w : E 플립플롭 클리어 신호 qa : 실행제어 신호 ( 가산명령어 입력시 ) qb : 실행제어 신호 (감산명령어 입력시 ) As, Bs : As: Bs 를 비교하는 스텝

S2S1S0Cin

x ( )초기상태S2S1S0CinLyzw

qa

qs

E

AsBs

w

z

y

Load

B register

A register

ALU

Bs

As E

제어논리회로

Page 36: 9 장 .  제어장치

컴퓨터 구조론 36

9.7 연산 제어 장치 설계 (4)

가 / 감산기 알고리즘 상태도 상태도로 변환하는 이유 : 프로그램 제어 방식에서 각 상태들은

곧바로 제어기억 장치의 주소가 되기 때문 .x=1

T0

T 1

T3

T6

T 7

qa =0

qs =0 qs =1

qa =1

Bs=Bs

S=0

S=1

E=1

E=0

T0

: 초기상태 x=1

T 2 : As,Bs 비교T 3 : A=A+B, E=Cout

T5 : E=0

T 7 : A=A+1, As=As

T 1 : Bs=Bs

T 4 : A=A+B+1, E=Cout

T 6 : A=A

T5

T4

T2

Page 37: 9 장 .  제어장치

컴퓨터 구조론 37

9.7 연산 제어 장치 설계 (5)

상태 플립플롭 제어 방식에 의한 설계

D

D

D

D

D

D

D

D

T0

T1

T2

T3

T4

T5

T6

T7

S

qa

qs

As

Bs

E

CP

S0

Ly

x

z

w

C in

S2

S1

Page 38: 9 장 .  제어장치

컴퓨터 구조론 38

9.7 연산 제어 장치 설계 (6)

마이크로 프로그램 제어 방식에 의한 설계 마이크로 명령어 형식

제어 신호 필드 : 9- 비트 구성 . 실제 데이터 처리기의 제어 신호 다음 주소 공급 필드 : 제어 기억 장치의 주소를 제어하는 주소 버스 선

분기 조건 필드 : 마이크로 오퍼레이션의 분기점에서 다음 번지를 실행할 것인가 아니면 다른 번지로 점프할 것인가 결정

x s2 s1 s0 cin L y z w A2 A1 A0 MS1 MS0

[ 제어 신호 필드 ] [ 다음 주소 공급 필드 ] [ 분기 조건 필드 ]

[ 마이크로 명령어 형식 ]

Page 39: 9 장 .  제어장치

컴퓨터 구조론 39

9.7 연산 제어 장치 설계 (7)

마이크로 프로그램 제어 방식에 의한 설계

0 1 S E

0 1 0

0 0 1

qs=1

qa=1

x

S1

S2

zyLCin

S0

w

Load in

put

incre

ment

A2A1A0MS1MS0

A2

A0

A1

CAR

MUX

0 1 2 3

MS

MS

0

1

제어 메모리0123456789

10111213

address select

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

Page 40: 9 장 .  제어장치

컴퓨터 구조론 40

9.8 간단한 컴퓨터 설계 (1)

8비트 컴퓨터의 CPU 설계 하드웨어 사양

PC : 16 bit MAR : 16 bit MBR : 8 bit IR : 8 bit Memory : 64 Kbyte Register(R1, R2, R3 ) ALU : 8 bit

Page 41: 9 장 .  제어장치

컴퓨터 구조론 41

9.8 간단한 컴퓨터 설계 (2)

8비트 컴퓨터의 CPU 설계 명령어 구성

LD R1, n R1 ← n Immediate LD R1, R2 R1 ← R2 register LD R1, R3 R1 ← R3 register LD R1, M[address] R1 ← M[address] Direct LD M[address], R1 M[address] ← R1 Direct LD R2, R1 R2 ← R1 register LD R3, R1 R3 ← R1 Direct ADD R1, n R1 ← R1 + n Immediate ADD R1, R2 R1 ← R1 + R2 register SUB R1, R2 R1 ← R1 - R2 register

Page 42: 9 장 .  제어장치

컴퓨터 구조론 42

9.8 간단한 컴퓨터 설계 (3)

8비트 컴퓨터의 CPU 설계 OP-CODE 설계

Op-code Mnemonic Command Addressing mode

00000001(01)

LD R1 , n R1 ← n Immediate

00000010(02)

LD R1, R2  R1 ← R2 register

00000011(03)

LD R1, R3 R1 ← R3 register

00000100(04)

LD R1, M[address] R1 ← M[address] Direct

00000101(05)

LD M[address], R1 M[address] ← R1 Direct

00000110(06)

LD R2, R1 R2 ← R1 register

00000111(07)

LD R3, R1  R3 ← R1 Direct

00001000(08)

ADD R1, n R1 ← R1 + n Immediate

00001001(09)

ADD R1, R2 R1 ← R1 + R2 register

00001010(0A)

SUB R1, R2 R1 ← R1 - R2 register

Page 43: 9 장 .  제어장치

컴퓨터 구조론 43

9.8 간단한 컴퓨터 설계 (4)

8비트 컴퓨터의 CPU 설계 명령어 분석 -1

Instruction Fetch Cycle t0 : MAR ← PC t1 : MBR ← [M], PC ← PC + 1 t2 : IR ← MBR

Instruction Execution Cycle LD R1,n q1t3 : MAR ← PC q1t4 : MBR ← [M], PC← PC + 1 q1t5 : R1 ← MBR, T← 0 LD R1,R2 q2t3 : R1 ← R2, T ← 0 LD R1,R3 q3t3 : R1 ← R3, T ← 0

Page 44: 9 장 .  제어장치

컴퓨터 구조론 44

9.8 간단한 컴퓨터 설계 (5)

8비트 컴퓨터의 CPU 설계 명령어 분석 -2

LD R1,M[address] q4t3 : MAR ← PC q4t4 : MBR ← [M], PC ← PC + 1 q4t5 : TEMPL ← MBR q4t7 : MAR ← PC q4t7 : MBR ← [M], PC ← PC + 1 q4t8 : TEMPH ← MBR q4t9 : MAR ← TEMP q4t10 :MBR ← [M] q4t11 : R1 ← MBR, T ← 0

Page 45: 9 장 .  제어장치

컴퓨터 구조론 45

9.8 간단한 컴퓨터 설계 (6)

8비트 컴퓨터의 CPU 설계 명령어 분석 -3

LD M[address], R1 q5t3 : MAR ← PC q5t4 : MBR ← [M], PC ← PC + 1 q5t5 : TEMPL ← MBR q5t7 : MAR ← PC q5t7 : MBR ← [M], PC ← PC + 1 q5t8 : TEMPH ← MBR q5t9 : MAR ← TEMP q5t10 : MBR ← R1 q5t11 : [M] ← MBR, T←0 LD R2,R1 q6t3 : R2 ← R1, T← 0

Page 46: 9 장 .  제어장치

컴퓨터 구조론 46

9.8 간단한 컴퓨터 설계 (7)

8비트 컴퓨터의 CPU 설계 명령어 분석 -4

LD R3,R1 q7t3 : R3 ← R1, T← 0 ADD R1,n q8t3 : MAR ← PC q8t4 : MBR ← [M], PC ← PC + 1 q8t5 : R1, MBR select q8t7 : ADD signal → Control q8t7 : R1 ← SHIFTER, T ← 0 ADD R1,R2 q9t3 : R1,R2 select q9t4 : ADD signal → control q9t5 : R1 ← SHIFTER, T ← 0

Page 47: 9 장 .  제어장치

컴퓨터 구조론 47

9.8 간단한 컴퓨터 설계 (8)

8비트 컴퓨터의 CPU 설계 명령어 분석 -5

SUB R1,R2 qAt3 : R1,R2 select qAt4 : SUB signal → control qAt5 : R1 ← SHIFTER, T ← 0

Page 48: 9 장 .  제어장치

컴퓨터 구조론 48

9.8 간단한 컴퓨터 설계 (9)

8비트 컴퓨터의 CPU 설계 분석된 명령어들을 기능별로 분류 -1

MAR ← PC x1 = t0+q1t3+q4t3+q4t7+q5t3+q5t7+q8t3

PC ← PC + 1 x2 = t1+q1t4+q4t4+q4t7+q5t4+q5t7+q8t4

MBR ← [M] x3 = x2+q4t10

IR ← MBR x4 = t2

R1 ← MBR x5 = q1t5 + q4t11

TEMPL ← MBR x6 = q4t5 + q5t5

TEMPH ← MBR x7 = q4t8 + q5t8

Page 49: 9 장 .  제어장치

컴퓨터 구조론 49

9.8 간단한 컴퓨터 설계 (10)

8비트 컴퓨터의 CPU 설계 분석된 명령어들을 기능별로 분류 -2

MAR ← TEMP x8 = q4t9 + q5t9

R1 ← R2 x9 = q2t3

R1 ← R3 x10 = q3t3

MBR ← R1 x11 = q5t10

[M] ← MBR x12 = q5t11

R2 ← R1

x13 = q6t3

Page 50: 9 장 .  제어장치

컴퓨터 구조론 50

9.8 간단한 컴퓨터 설계 (11)

8비트 컴퓨터의 CPU 설계 분석된 명령어들을 기능별로 분류 -3

R3 ← R1 x14 = q7t3

R1, MBR select x15 = q8t5

ADD signal x16 = q8t7 + q9t4

R1 ← SHIFTER x17 = q8t7 + q9t5 + qAt5

R1, R2 select x18 = q9t3 + qAt3

SUB signal x19 = qAt4

T ← 0 x20 = q1t5+q2t3+q3t3+q4t11+q5t11+q6t3+q7t3+q8t7+q9t5+qAt5

Page 51: 9 장 .  제어장치

컴퓨터 구조론 51

9.8 간단한 컴퓨터 설계 (12) 8비트 컴퓨터의 CPU 설계 - CPU 회로도

MBR

CONTROLLogic

Decoder

T

Memory64K*8

MAR

PC

IR

R1

Decoder

MUXX1X2X3X4X5X6X7X8X9X11X12X13X14X15X16X17X18

t15

MUX

R2

R3

ALU

xS2S1S0cinH1H0Lyzw

MUX As

Bs

E

TEMPH TEMPL

DECODER

shifter

S2

S1

S0

cin

H1

H0W

Zy

X5X9X10

X17

X4

X20

X8

X7

X6X7

X2

read

write

load

X3

X18

X12

X11

Encoder

X5X9

X10X17

X20

0 1

X13

X14

X1

X8

연산제어회로

( 그림7- 21)

X19

X16

S1

S0 1 2 3

X19