마이크로프로그램을 이용한 제어 - kcms.daegu.ac.kr

Download Report

Transcript 마이크로프로그램을 이용한 제어 - kcms.daegu.ac.kr

컴퓨터 구조 (Computer Architecture)
마이크로프로그램을 이용한 제어
남영진 ([email protected])
1
Prof. Young Jin Nam, Daegu University
강의내용
 기본개념
 수평적 마이크로명령어 vs. 수직적 마이크로명령어
2
Prof. Young Jin Nam, Daegu University
기본 개념
 하드와이어 구현의 Drawbacks
복잡한 sequencing & 마이크로 연산 회로가 존재
 설계와 시험이 복잡
 Inflexible 설계임  새로운 명령어를 추가하기가 어려움

 마이크로프로그램(Microprogram)

1950년도 초 M. V. Wilkes에 의해서 처음 사용 [WILK51]
하드웨어를 이용한 구현의 복잡성을 피할 수 있는
 조직적이고 체계적인 제어 유니트의 설계를 위해서 제안

3
Prof. Young Jin Nam, Daegu University
기본 개념
 마이크로프로그래밍 언어
각 마이크로 연산은 기호(symbol)로 표기
 이 표기는 마치 프로그래밍 언어와 같이 보임

 마이크로명령어(Microinstruction)
각 줄은 동시에 수행되는 마이크로 연산(micro-operation)들의 집합
 이를 마이크로명령어라 함

 마이크로프로그램(Microprogram)
이러한 마이크로 명령어들의 모임
 Aka, 펌웨어(firmware)라 불림

4
Prof. Young Jin Nam, Daegu University
마이크로프로그래밍 이용한 제어 유닛 구현
 제어 유닛은 “궁극적으로” 일련의 제어 신
호를 발생함
 각 마이크로 연산에 의해 제어 유닛으로 발
생되는 각 선은 on or off 됨
 각 bit가 하나의 제어 신호를 나타내는 제어
(control) word를 구성할 수 있음
 각 마이크로 연산은 제어 word에 의해서 표
현될 수 있음
 마이크로 연산을 표현하기 위해서 제어
word를 순서대로 나열
 각 제어 word에는 다음 수행할 제어 word의
위치를 포함
5
제어 유닛
0
1
control
word
제어
신호
1
0
1
0
1 … 1
1 … 0
0/1 0/1 0/1 0/1
… 0/1
c1 c2 c3 c4
cn
Prof. Young Jin Nam, Daegu University
수평적 마이크로명령어
(Horizontal Microinstruction)
 프로세서 내부/시스템 버스의 각 제어선에 대해서 한 bit 씩 할당
 분기에서 사용될 조건을 나타내는 조건 field와 분기 발생시 다음
에 실행될 마이크로명령어 주소를 갖는 field가 존재
프로세서 내부
제어 신호
6
시스템 버스
제어 신호
Microinstruction address
Jump condition
- unconditional
- zero
- overflow
- indirect bit
Prof. Young Jin Nam, Daegu University
제어 기억 장치 내에서의 배치
 각 루틴 내의 마이크로명령어들은 순차적으로 실행
 각 루틴은 다음 수행 위치를 나타내는 분기 or 점프 명령어로 끝남
.
Jump to Indirect or Execute
.
Jump to Execute
.
Jump to Fetch
Jump to Op code routine
Fetch cycle routine
Indirect Cycle routine
Interrupt cycle routine
Execute cycle begin
.
Jump to Fetch or Interrupt
.
Jump to Fetch or Interrupt
7
AND routine
ADD routine
Prof. Young Jin Nam, Daegu University
제어 유닛의 마이크로구조(Micro-Architecture)




한 set 마이크로명령어들이 제어 기억장치에 저장됨.
제어 주소 레지스터(CAR): 다음에 읽을 마이크로명령어 주소 저장
제어 버퍼 레지스터(CBR): 읽혀진 마이크로명령어 저장
Left(CBR)은 제어선과 연결 ( 마이크로명령어를 읽는 것은 마이
크로명령어를 실행함과 동일)
 순서제어 유닛(SL): CAR에 주소
를 적재하고, 읽기 명령어를 발생
하는 순서를 제어
8
Prof. Young Jin Nam, Daegu University
마이크로프로그램 제어 유닛의 기능





READ 명령: SL  CM
CBR  CM[CAR]
Part of CBR = 제어신호
Part of CBR = next address
SL: CAR  func(next address,
ALU flags)
IR opcode를
CM 내 주소로
변경
 func(): CAR :
다음주소(CAR + 1), or
 jmp 마이크로명령어에 의하여 새
로운 루틴으로 jmp함 (part of
CBR), or
 IR에 있는 연산코드에 근거하여
해당 루틴의 주소를 CAR

9
Prof. Young Jin Nam, Daegu University
수직적 마이크로명령어
(Vertical Microinstruction)
 Left(CBR)이 제어선과 직접 연결되어 있지 않음
 대신, 해독기(decoder)를 통해서 CM으로부터 CBR로 읽혀진 내
용을 실제적인 제어 신호로 변경
 수평적 마이크로명령어에 비해서,
 장점: 보다 간결 (적은수의 비트를 이용하여 CM에 저장)
 단점: 시간지연이 존재
10
Prof. Young Jin Nam, Daegu University
수평적 vs. 수직적 마이크로명령어
 특징 비교
11
수평적 마이크로명령어
수직적 마이크로명령어
1. each data line (control bit)
corresponds to a physical
control line
2. no decoder needed (faster)
3. long formats
4. can express high degrees of
parallelism
1. sets of control lines are
encoded into a few data lines
2. decoder required
3. short formats
4. limited ability to exploit
parallelism
Prof. Young Jin Nam, Daegu University
The end of “마이크로프로그램을 이용한 제어”
Part of Homework #4:
(복습 문제: 17.1~17.5)
12
Prof. Young Jin Nam, Daegu University