리그캣의 개발놀이터

컴퓨터 구조론 연습문제 4장 본문

프로그래밍 기본/컴퓨터 구조론

컴퓨터 구조론 연습문제 4장

리그캣 2018. 1. 21. 17:07

컴퓨터 구조론 연습문제 4장 


연습 문제

4.1 그림 4-2의 제어 기억장치의 용량을 256단어로 확장하고, 각 실행 사이클 루틴이 최대 8개의 마이크로-연산들로 구성될 수 있도록 하려면, 그림 4-3의 사상 함수는 어떻게 바뀌어야 하는가.

0

인출 사이클 루틴

.

간접 사이클 루틴

.

인터럽트 사이클 루틴

.

.

.

.

.

.

.

.

127

128

실행 사이클 루틴 1

.

실행 사이클 루틴 2

.

.

.

.

.

.

.

.

.

.

255

그림[4-2] 제어 기억장치의 내부 구성을 256단어로 확장시

명령어 코드 :

XXXX

I

Operand

사상함수 : 1XXXX000

128+8이 되어야 한다. 128은 2진법으로 10000000

8은 2진법으로 1000 임으로 사상함수는 1XXXX000이 되어야한다.

4.2 제어 기억장치의 전체 용량이 128단어이고, 실행 사이클 루틴들이 처음 절반 부분에 저장된다고 하자. 각 루틴이 최대 네 개씩의 마이크로 명령어들로 구성된다면, 그림 4-3의 사상함수는 어떻게 변경되어야 하는가?

0

실행 사이클 루틴 1

.

실행 사이클 루틴 2

.

.

.

.

.

.

.

.

63

64

 

.

 

.

.

.

.

.

.

.

.

.

.

128

실행 사이클 루틴의 주소가 0번부터

시작하기 때문에 초기의 주소는

0번지부터 67번지까지 저장된다 그러므로 사상함수는 1XXXXXXX이되어야 한다.

 

4.4 [표 4-1], [표 4-2], [표 4-3]을 이용하여 그림 4-5의 마이크로명령어들을 2진 패턴으로 변환하라. 만약 필요하다면, [표 4-1]에 새로운 마이크로-연산을 추가하여 사용하라.

[표 4-1(a)]

코드

마이크로-연산

기호

000

None

NOP

001

MAR←PC

PCTAR

010

MAR←IR(addr)

IRTAR

011

AC←AC+MAR

ADD

100

MBR←M[MAR]

READ

101

AC←MBR

BRTAC

110

IR←MBR

BRTIR

111

M[MAR]←MBR

WRITE

[표 4-1(b)]

코드

마이크로-연산

기호

000

None

NOP

001

PC←PC+1

INCPC

010

MBR←AC

ACTBR

011

MBR←PC

PCTBR

100

PC←MBR

BRTPC

101

MAR←SP

SPTAR

110

AC←AC-MBR

SUB

111

PC←IR(addr)

IRTPC

[표 4-2]

코드

조건

기호

설명

00

1

U

무조건 분기

01

I 비트

I

간접 주소지정

10

AC(S)

S

누산기(AC)에 저장된 데이터부호

11

AC=0

Z

AC에 저장된 데이터 = 0

 

 

 

 

[표 4-4]

코드

조건

설명

00

JMP

만약 조건 = 1이면, CAR ← ADF

만약 조건 = 2이면, CAR ← CAR+1

01

CALL

만약 조건 = 1이면, CAR ← ADF,SBR ←CAR+1

만약 조건 = 0이면, CAR ← CAR+1

10

RET

CAR ← SBR(서브루틴으로부터의 복귀)

11

MAP

CAR(1)←1,CAR(2-5)←IR(op),CAR(6,7)←0

그림 4-5

NOP:

INCPC

U

JMP

FETCH

;PC ← PC1

 

001

00

00

주소

 

LOAD:

NOP

I

CALL

INDRT

I=1이면,간접사이클 루틴 호출

 

000

01

01

주소

 

 

IRTAR

U

JMP

NEXT

MAR ← M[MAR]

 

010

00

00

주소

 

 

READ

U

JMP

NEXT

MBR ← AC

 

100

00

00

주소

 

 

BRTAC

U

JMP

FETCH

M[MAR] ← MBR

 

010

00

00

주소

 

STORE:

NOP

I

CALL

INDRT

I=1이면, 간접사이클 루틴 호출

 

000

01

01

주소

 

 

IRTAR

U

JMP

NEXT

MAR ← IR(addr)

 

010

00

00

주소

 

 

ACTBR

U

JMP

NEXT

MBR ← AC

 

010

00

00

주소

 

 

WRITE

U

JMP

FETCH

M[MAR] ← MBR

 

111

00

00

주소

 

ADD:

IRTAR

U

JMP

NEXT

MAR ← IR(addr)

 

010

00

00

주소

 

 

READ

U

JMP

NEXT

MBR ← M[MAR]

 

100

00

00

주소

 

 

ADD

U

JMP

FETCH

AC ← AC + MBR

 

011

00

00

주소

 

SUB:

IRTAR

U

JMP

NEXT

MAR ← IR(addr)

 

010

00

00

주소

 

 

READ

U

JMP

NEXT

MBR ← M[MAR]

 

100

00

00

주소

 

 

ADD

U

JMP

FETCH

AC ← AC - MBR

 

011

00

00

주소

 

JUMP:

IRTPC

U

JMP

JFETCH

PC ← IR(addr)

 

111

00

00

주소

 


Comments