제 7 장레지스터이동과데이터처리장치 - 디지털시스템의구성 data path 모듈 : 데이터처리, 레지스터, 연산기, MUX, control unit 모듈 : 제어신호발생, 연산의순서지정 - register transfer operation : reg 데이터이동 / 처리 reg set,operation, sequence control - micro-operation (uo) : reg에저장된데이터에대한기본연산단위 보통 1 클럭동안에수행 1
7-2 레지스터이동연산 - 레지스터표기 : 기능을상징하는대문자 AR : address register, PC : program counter, IR : instruction reg R2 : 2번 reg - 8비트 reg R1(7:0) : little endian, LSB가오른쪽에서끝남 R1(0:7) : big endian - 레지스터이동 : R2 R1 R1을 R2에복사, R1불변 R1 : source reg R2 : destination reg 하드웨어 : R1 출력이 R2 입력으로의경로와병렬load 기능을가진 R2 2
-enable 신호를가진이동 if (K1=1) then (R2 R1) K1 : R2 R1 K1이클럭에동기되어 t 시간의클럭에지에서 1이되고 t+1의에지에서 0 R2는 t+1의에지에서 K1이 1이되어있어 R1을 load F/F 의 setup/hold time 이있기때문 - 레지스터이동기호표기법 메모리이동 3
- 여러가지 RTL 표시방식 4
7-3 마이크로연산 - 이동, 산술, 논리, 시프트 산술마이크로연산 R0 R1 + R2 ; add and store to R0-1 증가 / 감소회로 : 상승 - 하강카운터또는가산기 / 감산기 - 곱셈 / 나눗셈 : 기본마이크로연산이아닌결합된 uo로구현 작은하드웨어, 느린연산 1 uo로구현 큰하드웨어규모, 빠른동작 5
- 가감산기구조도 X K1 : R1 R1 + R2 XK1 : R1 R1 + R2 + 1 C : carry V: overflow c : 0 1 1 0 +70 0 1000110-70 1 0111010 +80 0 1010000-80 1 0110000 --------------------------- +150 1 0010110-150 0 1101010 * overflow 발생조건 Ci xor Ci-1 = 1 6
논리마이크로연산 - (K1+K2) : R1 R2+R3, R4 R5vR6 논리 OR 산술 add 논리 OR - 논리연산 mask 10101101 10101011 R1 10101101 10101011 00000000 11111111 R2 11111111 00000000 ; R2 마스크 00000000 10101011 R1 R1^R2 11111111 10101011 R1 R1vR2 - XOR : 비트반전 Rxor1 R Rxor0 R 7
Shift 마이크로연산 R0 sr R0 same source and dest R1 sl R2 no change R2 8
7-4 MUX 를활용한이동방식 - source reg 가여러개일때 if(k1=1) then (R0 R1) else if (K2=1) then (R0 R2) K1 : R0 R1, K1 K2 : R0 R2-2 to1 MUX 를이용한연결 9
7-5 버스방식전송 - H/W 비교 (a) 2n 개 AND, n 개 OR : 9n gates 6n개 input wires (b) 3n개 AND, n개 OR : 4n gates 3n 개 input wires 10
3상태버스 : wire 감소, H/W 감소 - 많은 fanin 이있는회로에서는이방식사용 11
메모리이동 - 메모리연산 AR : addr reg DR : data reg Read: DR M[AR] Write : M[AR] DR - 메모리와버스연결 Read 연산 addr dec가주소선택 addr bus read =1 메모리데이터 data bus D0~D1 중 1개가 load Read : D1 M[A2] Write 연산 addr dec가주소선택 addr bus write =1 D0~D1 중 1개가 enable Data bus 메모리저장 Write : M[A1] D2 12
7-6 데이터처리장치 - 마이크로연산 (uo) 실행 : ALU - ALU 구성조합연산회로와 accumulator(reg) 실행시간 : 1 uo /1ck 2 operand 입력, 1 출력 CPU 주요구성부 (1) 데이터패스블록 ALU,shifter 레지스터, MUX, decoder, 버스, 처리회로등으로구성 (2) 제어신호 uo을수행하기위한적절한신호발생 R1 R2 + R3 (1)A select=10, R2 를 A 버스 (2)B select=11, R3 B 버스 MB=0, (3) G A+B 연산선택 1ck 에 (4)MF=0, ALU 출력선택 (5)MD=0, MUX F D bus (6)dest. sel=01, R1선택 (7)load enable=1 clock edge에서 R1에값저장 실행 13
7-7 산술 / 논리연산장치 - ALU : 산술 / 논리연산 N 비트입출력 carry 입력및출력 - 연산종류선택 : S신호 S2: 산술 / 논리, mode select S1S0 : 각 4가지연산종류 14
산술연산회로 -N 비트병렬가산기이용 Y 입력의다중선택회로 : S1S0 4가지연산종류설계 S=11 Cin=0, G=A-1(dec) X 1011 Y + 1111 ------- (1)1010 Carry 무시 +15-16 = 1 감소 15
- 각 1 비트에대한 B 입력논리회로 S1S0 에대한 4 to1 MUX Bi 입력과동시최적화 : 2 to 1 MUX - 4 비트산술연산논리도 16
- 논리연산회로 : 비트별연산 S1S0 : 4 개연산선택 4 to 1 MUX 17
ALU : 산술 + 논리 mode 선택 : S2 - n 비트 ALU : 가산기의 ripple carry 에 의한전파지연시간발생 - 빠른 ALU : LAC(Look Ahead Carry) 사용 18
7-8 Shifter 회로 - 기본 shifter회로 : sl, sr - Bidirectional shift reg with parallel load s1s0 동작 00 hold 01 10 Shift R Shift L 19
Barrel shifter - 한클럭에 n비트이동 shift left with rotation - 2 n 비트입출력 BS 2 n 입력, n 선택선 2 n 개의 MUX 이동수 : 0 ~ 2 n -1 Shift right 3 Shift right 2 Shift right 1 sl i sr 2 n -i 20
7-8 데이터처리장치표기법 - 레지스터파일 : operand, dest Reg 독립적 R/W : addr, data, write signal - ALU + shifter + MUX : 연산함수및MUX 선택신호 status : V,C,N,Z 10 11 11 21
7-10 Control word - 마이크로연산의데이터처리에 필요한제어신호로구성 - 8개의레지스터파일을가진 DP에대한제어워드형식 - 제어워드필드구성 : 17비트 2개의 operand 주소, dest 주소 FS, MB, MD, RW 22
데이터처리장치에대한제어워드코드 R1 R2 + R3 + 1 Field : DA AA BA MB FS MD RW symbols : R1 R2 R3 register F=A+B +1 function write Binary : 001 010 011 0 00101 0 1 23
데이터처리마이크로연산에대한제어워드코드예 24
마이크로연산의실행시뮬레이션파형 각 uo 연산에대한 destination reg 에저장시다음클럭의에지에서 발생되는것에유의!! 6 0 0 Status bit = (Z,N,C,V) Address out = (A data) Data Out = (mux B out) 2 25
7-11 파이프라인데이터처리 - uo 실행의처리속도와 단위시간당처리비율 (thru-put) - 한개 uo의실행시간과최대주파수기존구조 : 12 ns 83.3 MHz 파이프라인 (pipeline) 구조 : 5 ns 200 MHz 파이프라인 : 연산의실행시간이긴곳에레지스터를넣어연산시간을짧게하여데이터처리 thruput 를높이는처리방법 26
파이프라인처리장치구분예 -uo 의실행을 3 단계로분리수행 operand fetch(of) execute (EX) write-back(wb) - 각단계사이에는클럭이필요 : 중간데이터를레지스터 ( 파이프라인 platform) 에저장 레지스터H/W 증가 - 각단계의실행시간은짧아진다. 동작주파수의증가 27
uo의파이프라인실행과정 - 7 개의연산실행시간비교 : 파이프라인구조 9 clk x 5 ns = 45 ns Thruput = 84 / 45 = 1.9 기존구조 : 7 clk x 12 ns = 84 ns - latency : 파이프라인에서입력후데이터가나오기까지의클럭개수클럭사이클 1 : uo1 실행 OF HW 부분만사용클럭사이클 2 : uo2(of), uo1(ex) OF, EX 사용 Filling 상태클럭사이클 3 : uo3(of), uo2(ex),uo1(wb) OF,EX,WB 전부사용 uo1 실행완료 latency=2 이후사이클7까지전 HW 사용과각사이클마다한개 uo 완료 : 활성상태사이클 8,9 : emptying 상태, uo는한개씩완료 28