본문 바로가기

Computer Science/컴퓨터구조

[컴퓨터 구조] 마이크로프로그램 예

이 글은 www.youtube.com/watch?v=54w8BYgB0IQ&list=PLc8fQ-m7b1hD4jqccMlfQpWgDVdalXFbH&index=32 보고 공부한 글입니다.

 

 

마이크로 프로그램 예


128x20
제어 메모리 사용

128개의 제어워드 사용
20bit
의 제어워드로 구성

제어메모리는 128x 20 이다.

 

 

컴퓨터 명령어 형식


마이크로 프로그래밍을 위한

4가지의 명령어만 예시로 본다
예시에서는 11비트 주소 비트를 사용한다.

 

 

마이크로 명령어

20비트의 제어메모리의 내용
처음에 9비트는 마이크로 오퍼레이션 하나의 명령어가 사용될 때 각 타이밍마다 수행되는 레지스터전송 명령  
가급적F1,F2,F3충돌이 나지않는 명령들로 묶어둔다.

 

CD 비트 - 분기 조건
00 –
항상1
01 – 15
번 비트 = 직접주소, 간접주소
10 – AC
가 음수인지 양수인지
11 – AC
0이냐? 1이면0 0이면1

 

BR 비트조건이 맞으면 어디로 분기하라는 뜻
00 – (
점프)CD필드가 1이면 CAR값은 AD의 값이된다.
01 – (
)AD값으로 간다. 다음 명령의 주소는 SBR
10 – (
리턴)SBR 값을 CAR값으로 넣는다.
11 – (
맵핑)명령어 opcode로부터 제어워드의 주소를 찾아내라

 

 

기호로 표시된 마이크로 명령어

Fetch루틴

T0에서 PC값을 AR로 보낸다.

ex) 64번지에서 시작한다고 가정한다.


PCTAR
을 수행한다. U(CD =1) 다음번지로 JUM


메모리의 값을 데이터레지스터로 보낸다. PC를 증가시킨다. U(CD =1) 다음번지로 JUM


데이터레지스터 값을 AR에 넘긴다.

 

 

 

ADD
처음에 indirect인지 direct인지 따져봐야 한다.
CD
의 값이 i이니 indirect주소이다.
간접주소를 call해서 다시한번 값을 가져와서 return 한다.

read하고

add한다. 그 다음 명령을 fetch한다.

 

 

STORE

i1이면 i이니 indirect주소이다.
간접주소를 call해서 다시한번 값을 가져와서 return 한다.
i
0이면 다음명령으로 바로 간다.

 

 

BRANCH

S값이 1이면 OVER로 가고

S값이 0이면 다음 명령을 가져온다.

S값이 음수이면 다음 명령의 주소를 가져와서 ARPC값에 넣고 끝나면 fetch

 

 

EXCHANGE

간접주소 불러온다.

메모리를 read해서 AC에 넣는다.

먼저 AC의 값을 DR로 넣는다. 동시에 DR값을 AC로 보낸다.

그러면 AC는 원래 DR에 있는 값이 있을 것이다 이것을 WRITE한다.

 

 

728x90