M08 CPUcontrol.ppt [호환 모드] · 2016. 10. 31. · R 또는메모리 ... LDI R1, 1 LDI R2, 2...
Transcript of M08 CPUcontrol.ppt [호환 모드] · 2016. 10. 31. · R 또는메모리 ... LDI R1, 1 LDI R2, 2...
제 8장 순차진행과 제어
8 1 제어장치8-1 제어장치
• 동기형 디지틀시스템의 제어 :
- master clock 발생 회로에 의한 클럭 제어
- 각 클럭 사이클 마다 레지스터의 상태값 변화각 클럭 사이클 마다 레지스터의 상태값 변화
• 제어장치
- 연산순서에 맞는 제어 신호 공급
- 연속된 마이크로 연산 결정
- Programmable and non-programmable system
• 명령어(instruction)
- programmable system
연산종류 operand 저장위치 next 명령어 등 지정- 연산종류, operand, 저장위치, next 명령어 등 지정
- RAM/ROM에 저장됨
- PC : 실행할 instruction에 대한 주소 저장
1한국기술교육대학교정보기술공학부 장영조
• ASM(Algorithmic State Machine)
- 디지털 하드웨어 알고리즘 정의디지털 하드웨어 알고리즘 정의
- 클럭펄스에 의한 연산실행표현
• ASM 구성요소
state box : 상태부호(이진값),
활성레지스터, 출력신호
decision box : 분기신호
conditional output box : 조건출력
decision box로부터
2한국기술교육대학교정보기술공학부 장영조
• ASM block
- 한 개의 상태박스는 반드시포함한 개의 상태박스는 반드시포함,
판별및 조건적 출력박스는 option
- 한 개의 ASM 블럭은 한 개의
클럭타임에 수행클럭타임에 수행
• Timing
- 레지스터의 상태변화는 다음클럭의레지스터의 상태변화는 다음클럭의
에지에서 발생함에 유의
* ASM도는 상태도와 유사* ASM도는 상태도와 유사
상태박스-상태원,
decision –상태천이조건
건출력 출력
3
조건출력 –Mealy type 출력
한국기술교육대학교정보기술공학부 장영조
8-3 ASM chart에 의한 이진 Multiplier 설계
4한국기술교육대학교정보기술공학부 장영조
• 승산기구조
CAQ : carry product(AQ) 승수(Q) shift right 레지스터CAQ : carry, product(AQ), 승수(Q) shift right 레지스터
P : shift 연산마다 down counter, 초기값 (n-1)
제어기 :
G, Z, Qo 입력, ,
상태및 모드
제어신호출력
5한국기술교육대학교정보기술공학부 장영조
• 승산기 ASM도초기연산 : B 피승수, Q 승수기연산 B 피승수, Q 승수
3개의 상태
IDLE
외부입력 G=0 차기상태는 idle,
G=1 C A P초기화 MUL0로 천이G 1 C,A,P초기화, MUL0로 천이
MUL0
Q0=1 addition C, A A+B
goto MUL1
MUL1MUL1
c0, CIIAIIQ sr CIIAIIQ
P P-1
if Z=1 goto IDLE
Z=0 goto MUL0 (loop n 1)Z=0 goto MUL0 (loop n-1)
• 데이터처리장치기능A레지스터 :병렬로드, 시프트, 동기클리어
Q레지스터 :병렬로드, 시프트
C플립플럽 : 로드,동기클리어
B레지스터 :병렬로드
P카운터 :병렬로드,하강카운터
6한국기술교육대학교정보기술공학부 장영조
8-4 Hardwired Control Sequencer
• Control sequencer• Control sequencer 데이터패스 모드제어신호발생
제어순서 상태신호발생
- 모드제어신호
각마이크로연산제어각마이크로연산제어
레지스터동작제어
상태및제어입력에의한 논리식
-상태신호
상태박스와 상태천이를 변화시키는
판별박스로 부터 상태변화 유도
상태도와 유사
7한국기술교육대학교정보기술공학부 장영조
제어회로설계
(1) 레지스터+디코더 방식(1) 레지스터+디코더 방식n개의 상태변수 레지스터
n-to-2n 디코더
논리 게이트
- 순서회로설계방식과 동일
현재상태, 차기상태, 출력
- 상태 F/F입력방정식유도
DM0 = IDLE G + MUL1 Z’DM1 = MUL0
- 모드제어신호
init=IDLE G
load = MUL0 Q0
shift_dec = MUL1
clear_C = IDLE G + MUL1
8한국기술교육대학교정보기술공학부 장영조
(2) 상태당 한 플립플럽 방식
( F/F t t h t d )(one F/F per state, one hot code)
- h/w cost는 크나 회로설계가 간단
- 한 클럭사이클에 하나의 F/F만이 1값을 유지한 클럭사이클에 하나의 / 만이 값을 유지
- ASM도에서 논리회로 유도
상태박스 : F/F, 상태값표현
판별박스 : DEMUX 판별신호는 sel 신호판별박스 : DEMUX, 판별신호는 sel 신호
입력의 junction : OR
조건출력 : 제어신호이름을 표현
9한국기술교육대학교정보기술공학부 장영조
• One F/F per state 제어회로- 초기상태를 위해초기상태를 위해
IDLE F/F: 비동기 preset
나머지 F/F는 비동기 reset
10한국기술교육대학교정보기술공학부 장영조
8-6 Verilog 설계
11한국기술교육대학교정보기술공학부 장영조
8-7 마이크로프로그램 제어- 메모리에 제어워드 저장메모리에 제어워드 저장
- microinstruction(uI): 마이크로연산지정
- microprogram : uI의 집합, ROM 또는 RAM에 저장
control memory
- 제어변수값을 여러개의 워드로 결합하여 표현제어변수값을 여러개의 워드로 결합하여 표현
이를 연속적으로 읽어내어 제어논리회로에 인가
마이크로프로그램제어구조
제어메모리 : 제어워드로 제어정보 저장제어메모리 : 제어워드로 제어정보 저장
CDR(control data register) : 현재실행되는 uI 저장
선택사항, 파이프라인한단계로 작용(경로지연감소)
CAR(control address register) : uI의 주소저장
다음주소결정요소 :다음주소결정요소 :
제어워드가 포함하고있는 다음주소정보
DP로부터 오는 status (예;Z, Ov,Carry..)
외부제어 입력 (예; start, stop,…)
ROM 출력 : I 직접 출력 또는 CDR에 저장ROM 출력 : uI 직접 출력 또는 CDR에 저장
상태비트 : 다음주소 결정, ASM에서 다음상태 결정
12한국기술교육대학교정보기술공학부 장영조
• ASM for micro programmed for multiplier
무어머신형태 필요 : 조건적 출력박스 제거, 상태수 증가
INIT 및 ADD 상태로 추가
마이크로프로그램 제어기 설계 :
제어워드비트, ROM, CAR크기, 다음주소생성기구조결정
데이터패스 모드제어신호 : 4가지 신호(IT, LD,CC,SD)
제어워드로 표현시제어워드로 표현시
코드화 – 제어신호가 많을때, 디코더필요 : 2비트
비코드화 – 디코더 불필요, 제어워드가 커짐 : 4비트
13한국기술교육대학교정보기술공학부 장영조
- 제어장치의 순차적 진행방식 :
순차진행 또는 조건에 의한 진행 2개주소방식 제어워드구조 : 12비트순차진행 또는 조건에 의한 진행
- 주소 결정방식: 시스템처리속도와 구현비용에 영향
2개 주소 방식 : 조건값에 따라 제어워드에 2개 주소포함
긴 제어워드로 ROM비트증가, 주소할당이 용이
1개주소 방식 : CAR을 병렬로드기능이 있는 카운터사용으로
순차 또는 분기제어, 임의주소할당이 어렵다.
• SEL MUX Control
14한국기술교육대학교정보기술공학부 장영조
- 이진곱셈기의 마이크로실행에 대한 레지스터전달식
- 곱셈기에 대한 마이크로프로그램 제어워드 형태 : 5 제어워드, 5 x 12비트 ROM에 저장될 이진 프로그램 정보
SCLI
15한국기술교육대학교정보기술공학부 장영조
8-8 간단한 컴퓨터 구조
프로그램가능한 제어구조기 사용- 프로그램가능한 제어구조기 사용
• Instruction
컴퓨터의 프로그램정보
프로그램메모리에 저장
1개이상의 마이크로연산실행
instruction set : 컴퓨터의전체명령어
연산종류,오퍼랜드 정보포함
명시적(explicit) 오퍼랜드명시적(explicit) 오퍼랜드
묵시적(implicit) 오퍼랜드
• Instruction format
d DR SA SB등의 오퍼랜드 정보필드 포함- opcode, DR, SA, SB등의 오퍼랜드 정보필드 포함
- 각 연산에 따른 format 차이
- 8개의 레지스터세트를 가정할때, 각오퍼랜드는 3비트사용
레지스터방식 : R1 R2 – R3 (sub)
immediate방식 : R2 R7 + 011
jump and branch 방식 :
R 또는 메모리내용 변화 무
명령어의실행순서변화 : PC값 변화
- PC-상대주소지정방식: PC를기준으로 주소offset을 2의보수형태로저장
branch-on-zero R6(SA) 35(AD)
현재 PC가 55일때 –20을 AD에 저장, R6값이 0이면 55+(-20)으로 PC는 35가되고 R6=0이면 PC=56번지
*** AD주소를 자리확장시 부호비트를 확장(sign extension)함에 유의
16
g
한국기술교육대학교정보기술공학부 장영조
- 7비트 opcode 명령어
+ 9비트 operand
16비트 명령어형태
- 더 큰(32~64)비트 컴퓨터
한 워드의 길이와 동일
한 개의 즉시오퍼랜드 길이
메모리주소길이
레지스터개수
명령어워드의 확장
• 간단한 컴퓨터의 메모리 구조
-instruction memory : CPU 명령어 저장
-Data memory : 프로그램실행시 데이터저장Data memory 램실행시 데이터저장
-16비트 PC
-8개의 16비트 레지스터
17한국기술교육대학교정보기술공학부 장영조
8-9 한 사이클 하드웨어제어방식- 한 클럭 사이클에 한 명령어 실행한 클럭 사이클에 한 명령어 실행
PC ( 명령어주소)
instruction memory(명령어인출)
Instruction decoder(명령어해독,연산종류,
오퍼랜드결정 제어신호발생)오퍼랜드결정, 제어신호발생)
오퍼랜드로부터 ALU 연산
data 메모리에 R/W
레지스터에 저장
- PC는 현재 명령어 인출후 +1 자동증가
Branch/jump시는 증가이전값에 offset값 처리
18한국기술교육대학교정보기술공학부 장영조
• Instruction decoder- 조합회로, 명령어에 따라 필요제어신호발생조합회로, 명령어에 따라 필요제어신호발생
- 필요제어신호
DA, AA, BA : 오퍼랜드주소
BC : 분기조건 (C,N,V,Z,C’N’,V’,Z’)MB MD RW :DP모드제어MB, MD, RW :DP모드제어
MW : 데이터메모리 R/W제어
FS : ALU 함수선택
PL, JB : jump에대한 PC 제어
PL=1 PC가 jump할 주소 loadPL=1 PC가 jump할 주소 load
0 PC++, 자동증가
PL=1 JB=1 jump
PL=1 JB=0 조건적 분기
- 명령어군에 따라 디코더논리회로 설계필요
MB=B15
MD=B14
RW B ’ + B ’BRW=B14’ + B15’B13
MW=B15’B14B13
PL=B15B14
JB=B13
S ( ’ ’)FS=B13 B12 B1 1B1 0B 9(B15’+B14’)
FS는 6 비트
19한국기술교육대학교정보기술공학부 장영조
• 한개사이클 컴퓨터에 대한 명령어 동작과 필요제어신호예
• 명령어에 의한 프로그램 예 : 83 – (2 + 3)
초기값 [R3] 248 M[248] 2 M[249] 83 M[250] t lt초기값 [R3]=248, M[248]=2, M[249]=83, M[250] store resultLD R1, R3 248번지 내용 2를 R1에 load, R1 M[R3]
ADI R1, R1, 3 R1(5) R1(2) +#3
NOT R1,R1 1의 보수
INC R1, R1 2의보수 (-5)
INC R3, R3 R3 주소증가, 249번지
LD R2, R3 R2에 R3값 83 copy
ADD R2, R2, R1 R2 R2+R1 (78 = 83+(-5) )
INC R3, R3 R3주소증가, 250번지
ST R3 R2 결과값 저장 M[R3] R2
20
ST R3, R2 결과값 저장 M[R3] R2
한국기술교육대학교정보기술공학부 장영조
- 한 개 사이클 컴퓨터에 대한 장단점
복잡한 연산 수행시 한 개 이상의 명령어로 실행
R1 R1 + R2 , add
R1 sr R1 , shift
메모리가 2개 필요 :
instruction memory (프로그램메모리)
data memory
** 보통 다수 사이클 컴퓨터는 한 개 메모리로
프로그램과 데이터 메모리를 2번 access
지연경로(delay path)가 길다지연경로(delay path)가 길다
그림에서 최대 지연경로(critical delay path)가 17ns로
최대동작주파수가 58.8 MHz
짧은 경로 또는 빠른 동작 소자 사용 필요
구조적으로는 파이프라인 다수사이클로 변환 필요 구조적으로는 파이프라인, 다수사이클로 변환 필요
21한국기술교육대학교정보기술공학부 장영조
8-10 Multi cycle 마이크로프로그램 제어• Multi cycle computer의 구조적 변화Multi cycle computer의 구조적 변화
- M 메모리 : 데이터및 명령어저장
MM mux 로 주소 선택
MB mux로 데이터입력선택
MD mux로 데이터출력선택MD mux로 데이터출력선택
- 레지스터파일
기존 8개에 tmp reg R8 추가
오퍼랜드주소선 비트(TD,TA,TB)
다수사이클실행데이터임시저장다수사이클실행데이터임시저장
- IR (instruction register)
현재실행되는 명령어저장,IL (instr load)
PC제어신호
PI : instr read시 1증가PI : instr read시 1증가
PL : PC PC+se AD
*se : sign extension
현재의 DP오퍼랜드(DR,SA,SB) 포함
제어워드에서는 이를 생략하여 제어워드에서는 이를 생략하여
제어워드 구조가 단순화 됨
- control memory
uI에 대한 제어워드 저장
CA CM의 주소값지정CAR : CM의 주소값지정,
아래 mux에 의해 CAR은 load/inc
MC mux: IR 또는CM 에 의한 주소
MS mux : status에 의한 주소
22한국기술교육대학교정보기술공학부 장영조
• 다수사이클 컴퓨터에 대한 마이크로 명령어의 형식
• ALU 코드와 관련 DP 제어신호
23한국기술교육대학교정보기술공학부 장영조
• MUX S에 대한 선택값과 제어정보
24한국기술교육대학교정보기술공학부 장영조
• 마이크로명령어 실행
- uI에 대한 ASMuI에 대한 ASM
instr fetch(read) 상태 : IF
instr 실행 상태 : EX0
- IF 상태
IR M[PC] PC지정주소에서 instr readIR M[PC] PC지정주소에서 instr read
PC PC+1 다음 instr을 위해 자동증가
- EX0 상태
IR값에 따라 instr decoding
- opcode 값에 따라opcode 값에 따라
필요한 마이크로 연산 실행상태로 분기
7 bit opcode 128 uI
128 실행상태 분기
옆 예는 3개 사이클에 한 명령어 실행하는 ASM- 옆 예는 3개 사이클에 한 명령어 실행하는 ASM
25한국기술교육대학교정보기술공학부 장영조
• 각 Instruction에 대한 마이크로프로그램과 이진코드값 예
26한국기술교육대학교정보기술공학부 장영조
- Indirect addressing load
R[DR] M[M[R[SA]]]
4 클럭사이클
- 다수 shift 연산
tmp reg인 R8에 이동연산수를
저장하여 반복 실행사이클 구성가능저장하여 반복 실행사이클 구성가능
2s +3 클록사이클, s :이동수
3 사이클 단일shift연산시의 클록수는 3s
27한국기술교육대학교정보기술공학부 장영조
• 다수사이클 컴퓨터의 hardwired controlDecoder based 혹은 one F/F per state
- 리셋기능을가진카운터+디코더로 구현예
조건적출력박스를 이용해 CAR 로드 : 2클록실행
go IF 상태(000) : counter reset g 상태( )
CR = EX0 LRI’ + EX1
RW = EX0 ST’
28한국기술교육대학교정보기술공학부 장영조
8-11 Pipelined 제어4 단계 파이프라인 구조4 단계 파이프라인 구조
IF : instr fetch
DOF : instr decode
EX : 실행
WB : storeWB : store
- 파이프라인 실행성능
1~7상수값을 각 reg에 load
LDI R1, 1
LDI R2, 2
LDI R3, 3
LDI R4, 4
LDI R5, 5
4 stage pipeline구조에서 10 클록 요
5nsx10=50ns
LDI R6, 6
LDI R7, 717nsx7=119ns 한개사이클방식
29한국기술교육대학교정보기술공학부 장영조