이 글은 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
i가 1이면 i이니 indirect주소이다.
간접주소를 call해서 다시한번 값을 가져와서 return 한다.
i가 0이면 다음명령으로 바로 간다.
BRANCH
S값이 1이면 OVER로 가고
S값이 0이면 다음 명령을 가져온다.
S값이 음수이면 다음 명령의 주소를 가져와서 AR을 PC값에 넣고 끝나면 fetch
EXCHANGE
간접주소 불러온다.
메모리를 read해서 AC에 넣는다.
먼저 AC의 값을 DR로 넣는다. 동시에 DR값을 AC로 보낸다.
그러면 AC는 원래 DR에 있는 값이 있을 것이다 이것을 WRITE한다.
'Computer Science > 컴퓨터구조' 카테고리의 다른 글
[컴퓨터 구조] 중앙처리장치 (0) | 2021.01.31 |
---|---|
[컴퓨터 구조] 이진 마이크로 프로그램 (0) | 2021.01.30 |
[컴퓨터 구조] 마이크로 프로그램 (0) | 2021.01.28 |
[컴퓨터 구조] 입출력 프로그래밍 (0) | 2021.01.27 |
[컴퓨터 구조] 어셈블리어 예제 (0) | 2021.01.26 |