본문 바로가기

Computer Science/컴퓨터구조

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

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

 

마이크로 프로그램 목차

제어 메모리 별도의 메모리, 제어 메모리에 있는 제어 워드 데이터, 접근, 가져오기 방법
주소 시퀀싱 
마이크로프로그램
의 예
제어 장치의 설계

 

 

 

제어 메모리

하드와이어 제어장치 명령어 전체가 게이트를 조작하도록 이루어진 것
하드웨어적으로 제어 장치를 설계
일상적인 논리회로를 사용하여 구현

 

 

제어 워드
버스 구조 시스템에서 정보 전달 제어 비트 모임
제어 워드에 의하여 마이크로 연산 수행

 

 

마이크로프로그램 CPU의 동작을 프로그램 기법으로 실행
명령을 수행하는 일련의 제어 워드의 집합
별도의 기억장치에 저장된 프로그램 형태

 

 

마이크로 프로그램된 제어장치
마이크로프로그램을
사용하는 제어 장치
ROM
에 저장하여 사용
시퀀서(Sequencer)와 제어 메모리로 구성

 

 

내가 어떤 명령어를 사용하고 싶다 – T0부터 실행될 것이다.
내가 해야 할 명령이 제어 메모리에 몇 번지에 있는가를 알아내야 한다.


컨트롤 워드가 나오면, 멀티플렉서, 디코더 등을 이용해서 데이터를 넘겨준다

 


sequencer –
다음 제어 워드의 주소를 담고 있다.


주소 시퀀싱

처음 컴퓨터가 켜질 때 처음에 메모리에 몇 번지에 찾아가서 데이터를 찾아와라 하는 초기 주소가 있다. 이게 부트스트랩에서 사용하는 주소라고 한다.

 

 

 

초기 주소(정해저 있다)

시스템 부트 시 jump 하는 주소


ROM BIOS
주소


하드웨어적으로 미리 결정된 주소


IBM PC : 0 xFFFE0 (20bit XT)

 

 

 

제어 메모리 주소 시퀀싱 단계


1. 명령어
fetch (T0, T1, T2)
2. 유효
주소 (Effective Addr.) 계산 (T3)
3. 마이크로
연산 수행을 위한 제어 워드 fetch (T4)(컨트롤 메모리에서 제어 워드를 가져온다)
4. 명령어
실행

 

 

 

 

제어 메모리의 주소 결정하는 방법


CAR
에 메모리를 집어넣는 법
Branch by condition
Mapping from Opcode
Subroutine call/return
increment

Control memory에서 결과로 20bit짜리짜리 제어 워드가 나온다.
어떤 것은 상태를 결정하고, 분기를 위해 사용, 마이크로 오페레이션(게이트의 명령을 직접 조정하는)을 수행한다.

 

 

 

조건부 분기


상태비트상태 비트(U, I, S, Z)
에 따른 분기

 

 

 

명령어의 매핑(Mapping from Opcode)

가장 기본적인 제어 메모리의 주소를 알아내는 법


1.Opcode
로부터 제어 워드 주소 분기
2.제어
메모리 크기(비트수)에 맞는 매핑 논리 사용
3.명령어에
사용되는 제어 워드수에 따라서 매핑
4.매핑
비트의 결정

제어 메모리는128개의 워드가 있다.
뒤에다 2비트를 더 붙인다 왜냐? 한 명령어에 타이밍마다 최대 4가지의 동작을 수행하도록
그런데도 6개의 비트 밖에 없다. 7비트를 맞춰야 하기 때문에 앞에다가 0비트를 붙여서7비트 제어 메모리 주소를 완성시킨다.
ex) 1011인 Opcode의
제어 메모리 주소는 0101100이다.

 

서브루틴

동일한 제어 코드들을 서브루틴화
ex) fetch – T0, T1, T2
는 무조건 수행한다


Fetch
제어, 간접주소 계산 등


SBR
에 복귀 제어 메모리 주소 저장

 

 

 

 

728x90