본문 바로가기
컴퓨터 구조

[컴퓨터 구조] 마이크로 프로그램을 이용한 제어 장치

by IT 정복가 2022. 5. 21.
728x90

*[Mano의 컴퓨터 시스템 구조 3판]의 공부할겸 요약한 내용입니다.


1. 제어 메모리(Control Memory)

제어장치는 요구되는 마이크로 연산들을 연속적으로 수행하게 하는 신호를 보냄으로써 명령어를 수행하게 하는 역할을 한다.

 

2가지 종류의 제어장치

1) Hard Wired Control 방식: 일상적인 논리 회로 설계방식대로 설계가 된다.

2) Micro-Programmed Control 방식: 훨씬 더 체계적으로 제어 장치를 구성할 수 있다.

 

마이크로 프로그램된 제어 장치(Micro-Programmed Control Unit)

이진 제어 변수가 제어 메모리에 저장되는 제어 장치

 

제어 워드(Control Word)

버스 구조의 시스템에서는 멀티플렉서, 디코더들의 정보 전달로 선택과 산술 논리 연산 장치의 역할을 결정해주는 비트의 모임

 

마이크로 프로그램된 제어 구조

1) 제어 메모리(Control Memory)

: 제어 장치에서 사용되는 메모리이다. (마이크로 프로그램이 저장되어 있음)

 

2) 제어 메모리 주소 레지스터(Control Address Register: CAR)

: 마이크로 명령어의 주소를 지정한다. 

 

3) 시퀀서(Sequencer)

: 다음 주소 생성기(여러 가지로 다음 마이크로 명령어의 주소가 결정)

 

4) 제어 데이터 레지스터(Control Data Register: CDR)

: CAR이 지정한 주소의 마이크로 명령을 가짐

마이크로 프로그램된 제어 구조


2. 주소 시퀀싱(Address Sequencing)

주소 시퀀싱 = 시퀀서 : 다음 주소 생성기

 

루틴(Routine)

1) 마이크로 명령어들은 여러 개의 그룹으로 나누어 저장되는데 각 그룹은 하나의 루틴을 형성

2) 각 명령어는 그 명령어를 수행하는 자신의 루틴을 가지고 있음

 

매핑(Mapping)

ROM에서 루틴의 첫번째 주소를 찾아내는 것

 

제어 메모리에서 주소를 결정하는 4가지 방법

1) 제어 주소 레지스터를 하나 증가시킴

2) 무조건 분기와 상태 비트 조건에 따른 조건부 분기

3) 명령어의 비트들로부터 제어 메모리의 주소로 매핑하는 처리

4) 서브루틴을 호출(call)하고 복귀(return)하는 기능

제어 메모리에 대한 주소의 선택

조건부 분기

: 분기 논리에서는 상태 비트를 사용하여, 주어진 주소로 분기할지 결정

 

명령어의 매핑

: 명령어의 OP-코드를 매핑하여 제어 메모리의 주소를 생성

 

서브 루틴

: 마이크로 프로그램이 동일한 코드의 모임을 같는데, 이 부분을 서브루틴화 시켜 제어메모리를 절약


3. 마이크로 프로그램의 예(Micro-Program Example)

컴퓨터 구성

1) 주 메모리(Main Memory): 명령어와 데이터를 저장

2) 제어 메모리(Control Memory): 마이크로 명령어를 저장

 

마이크로 명령어 형식

예) 각 3비트의 마이크로 연산: F1, F2, F3

>> 동시에 3개의 마이크로 연산이 가능하다.

* 필드 간에 충돌하는 두 개 이상의 마이크로 연산은 동시에 지정할 수 없음

예) 010 001 000

>> 아래 표를 보면, 

010: AC <- 0

001: AC <- AC - DR 

*AC에 대해 두 연산이 동시에 일어나기 때문에 충돌이 발생

마이크로 명령어의 각 필드에 대한 기호와 이진 코드

기호로 표시된 마이크로 프로그램

이진 마이크로 프로그램

1) 기호로 된 마이크로 프로그램은 실제 메모리에 저장되는 형태가 아니기 때문에 이진 코드로 변환해야 함

2) 표에 열겨된 마이크로 프로그램은 제어 메모리의 내용이다. (즉, ROM을 제조하기 위한 진리표)

3) ROM은 RAM 보다 가격과 속도면에서 우수하다. 

제어 메모리를 위한 이진 마이크로 프로그램


4. 제어 장치의 설계(Design of Control Unit)

마이크로 프로그램 시퀀서

 

728x90