제 8 장순차진행과제어 8-1 제어장치 동기형디지틀시스템의제어 : - master clock 발생회로에의한클럭제어 - 각클럭사이클마다레지스터의상태값변화 제어장치 - 연산순서에맞는제어신호공급 - 연속된마이크로연산결정 - Programmable and non-programmable system 명령어 (instruction) - programmable system - 연산종류, 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 도는상태도와유사 상태박스 - 상태원, decision 상태천이조건 조건출력 Mealy type 출력 3
8-3 ASM chart 에의한이진 Multiplier 설계 4
승산기구조 CAQ : carry, product(aq), 승수 (Q) shift right 레지스터 P : shift 연산마다 down counter, 초기값 (n-1) 제어기 : G, Z, Qo 입력상태및모드제어신호출력 5
승산기 ASM도초기연산 : B 피승수, Q 승수 3개의상태 IDLE 외부입력 G=0 차기상태는 idle, G=1 C,A,P CAP 초기화, MUL0 로천이 MUL0 Q0=1 addition C, A A+B goto MUL1 MUL1 c 0, CIIAIIQ sr CIIAIIQ P P-1 if Z=1 goto IDLE Z=0 goto MUL0 (loop n-1) 데이터처리장치기능 A 레지스터 : 병렬로드, 시프트, 동기클리어 Q 레지스터 : 병렬로드, 시프트 C 플립플럽 : 로드, 동기클리어 B 레지스터 : 병렬로드 P 카운터 : 병렬로드, 하강카운터 6
8-4 Hardwired Control Sequencer Control sequencer 데이터패스모드제어신호발생제어순서상태신호발생 - 모드제어신호각마이크로연산제어레지스터동작제어상태및제어입력에의한논리식 - 상태신호상태박스와상태천이를변화시키는판별박스로부터상태변화유도상태도와유사 7
제어회로설계 (1) 레지스터 + 디코더방식 n개의상태변수레지스터 n-to-2 n 디코더논리게이트 - 순서회로설계방식과동일현재상태, 차기상태, 출력 - 상태 F/F입력방정식유도 D M0 = IDLE G + MUL1 Z D M1 = MUL0 - 모드제어신호 init=idle G load = MUL0 Q 0 shift_dec = MUL1 clear_c = IDLE G + MUL1 8
(2) 상태당한플립플럽방식 (one F/F per state, t one hot code) - h/w cost는크나회로설계가간단 - 한클럭사이클에하나의 F/F 만이 1 값을유지 - ASM도에서논리회로유도상태박스 : F/F, 상태값표현판별박스 :DEMUX 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 출력 : ui 직접출력또는 CDR 에저장 상태비트 : 다음주소결정, ASM 에서다음상태결정 12
ASM for micro programmed for multiplier 무어머신형태필요 : 조건적출력박스제거, 상태수증가 INIT 및 ADD 상태로추가마이크로프로그램제어기설계 : 제어워드비트, ROM, CAR크기, 다음주소생성기구조결정 데이터패스모드제어신호 : 4가지신호 (IT, LD,CC,SD) 제어워드로표현시코드화 제어신호가많을때, 디코더필요 : 2비트비코드화 디코더불필요, 제어워드가커짐 : 4비트 13
- 제어장치의순차적진행방식 : 순차진행또는조건에의한진행 - 주소결정방식 : 시스템처리속도와구현비용에영향 2 개주소방식 : 조건값에따라제어워드에 2 개주소포함긴제어워드로 ROM 비트증가, 주소할당이용이 1 개주소방식 : CAR 을병렬로드기능이있는카운터사용으로순차또는분기제어, 임의주소할당이어렵다. 2 개주소방식제어워드구조 : 12 비트 SEL MUX Control 14
- 이진곱셈기의마이크로실행에대한레지스터전달식 - 곱셈기에대한마이크로프로그램제어워드형태 : 5 제어워드, 5 x 12 비트 ROM 에저장될이진프로그램정보 SCLI 15
8-8 간단한컴퓨터구조 - 프로그램가능한제어구조기사용 Instruction 컴퓨터의프로그램정보프로그램메모리에저장 1개이상의마이크로연산실행 instruction set : 컴퓨터의전체명령어연산종류, 오퍼랜드정보포함명시적 (explicit) 오퍼랜드묵시적 (implicit) 오퍼랜드 Instruction format - 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
- 7비트 opcode 명령어 + 9비트 operand 16비트명령어형태 - 더큰 (32~64) 비트컴퓨터한워드의길이와동일한개의즉시오퍼랜드길이메모리주소길이레지스터개수명령어워드의확장 간단한컴퓨터의메모리구조 -instruction memory : CPU 명령어저장 -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 모드제어 MW : 데이터메모리 R/W제어 FS : ALU 함수선택 PL, JB : jump에대한 PC 제어 PL=1 PC 가 jump 할주소 load 0 PC++, 자동증가 PL=1 JB=1 jump PL=1 JB=0 조건적분기 - 명령어군에따라디코더논리회로설계필요 MB=B 15 MD=B 14 RW=B 14 +B 15 B 13 MW=B 15 B 14 B 13 PL=B 15 B 14 JB=B 13 FS=B 13 B 12 B 1 1 B 1 0 B 9 (B 15 +B 14 ) FS는 6 비트 19
한개사이클컴퓨터에대한명령어동작과필요제어신호예 명령어에의한프로그램예 : 83 (2 + 3) 초기값 [R3]=248, M[248]=2, 2 M[249]=83, M[250] store result LD 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
- 한개사이클컴퓨터에대한장단점복잡한연산수행시한개이상의명령어로실행 R1 R1 + R2, add R1 sr R1, shift 메모리가 2개필요 : instruction memory ( 프로그램메모리 ) data memory ** 보통다수사이클컴퓨터는한개메모리로프로그램과데이터메모리를 2번 access 지연경로 (delay path) 가길다그림에서최대지연경로 (critical delay path) 가 17ns로최대동작주파수가 58.8 MHz 짧은경로또는빠른동작소자사용필요 구조적으로는파이프라인, 다수사이클로변환필요 21
8-10 Multi cycle 마이크로프로그램제어 Multi cycle computer 의구조적변화 - M 메모리 : 데이터및명령어저장 MM mux 로주소선택 MB mux로데이터입력선택 MD mux 로데이터출력선택 - 레지스터파일기존 8개에 tmp reg R8 추가오퍼랜드주소선비트 (TD,TA,TB) 다수사이클실행데이터임시저장 - IR (instruction register) 현재실행되는명령어저장,IL (instr load) PC제어신호 PI : instr read 시 1 증가 PL : PC PC+se AD *se : sign extension 현재의 DP오퍼랜드 (DR,SA,SB) 포함 제어워드에서는이를생략하여제어워드구조가단순화됨 - control memory ui에대한제어워드저장 CAR : CM 의주소값지정, 아래 mux에의해 CAR은 load/inc MC mux: IR 또는CM 에의한주소 MS mux : status에의한주소 22
다수사이클컴퓨터에대한마이크로명령어의형식 ALU 코드와관련 DP 제어신호 23
MUX S 에대한선택값과제어정보 24
마이크로명령어실행 - ui 에대한 ASM instr fetch(read) 상태 : IF instr 실행상태 : EX0 -IF 상태 IR M[PC] PC 지정주소에서 instr read PC PC+1 다음 instr을위해자동증가 - EX0 상태 IR값에따라 instr decoding - opcode 값에따라필요한마이크로연산실행상태로분기 7 bit opcode 128 ui 128 실행상태분기 - 옆예는 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 control Decoder based 혹은 one F/F per state - 리셋기능을가진카운터 + 디코더로구현예조건적출력박스를이용해 CAR 로드 : 2클록실행 go IF 상태 (000) : counter reset CR = EX0 LRI + EX1 RW = EX0 ST 28
8-11 Pipelined 제어 4 단계파이프라인구조 IF : instr fetch DOF : instr decode EX : 실행 WB : store - 파이프라인실행성능 1~7상수값을각 reg에 load LDI R1, 1 LDI R2, 2 4 stage LDI R3, 3 pipeline구조에서 10 클록요 LDI R4, 4 LDI R5, 5 5nsx10=50ns LDI R6, 6 17nsx7=119ns 한개사이클방식 LDI R7, 7 29