m07 rtl.ppt [호환 모드] · 2016-10-31 · 클럭사이클3 : uo3(of), uo2(ex),uo1(wb) of,ex,wb...

28
제 7장 레지스터 이동과 데이터 처리 장치 - 디지털 시스템의 구성 data path 모듈: 데이터 처리, 레지스터, 연산기, MUX, control unit 모듈: 제어신호 발생, 연산의 순서지정 - register transfer operation : reg 데이터 이동/처리 reg set,operation, sequence control - micro-operation (uo) : reg에 저장된 데이터에 대한 기본연산 단위 보통 1 클럭동안에 수행 1 한국기술교육대학교 정보기술공학부 장영조

Upload: others

Post on 01-Jan-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: M07 RTL.ppt [호환 모드] · 2016-10-31 · 클럭사이클3 : uo3(OF), uo2(EX),uo1(WB) OF,EX,WB 전부사용 uo1 실행완료latency=2 Filling 상태 이후사이클7까지전HW

제 7장 레지스터 이동과 데이터 처리 장치- 디지털 시스템의 구성

data path 모듈: 데이터 처리, 레지스터, 연산기, MUX, …control unit 모듈: 제어신호 발생, 연산의 순서지정

- register transfer operation : reg 데이터 이동/처리

reg set,operation, sequence control

- micro-operation (uo) : reg에 저장된 데이터에 대한 기본연산 단위

보통 1 클럭동안에 수행

1한국기술교육대학교정보기술공학부 장영조

Page 2: M07 RTL.ppt [호환 모드] · 2016-10-31 · 클럭사이클3 : uo3(OF), uo2(EX),uo1(WB) OF,EX,WB 전부사용 uo1 실행완료latency=2 Filling 상태 이후사이클7까지전HW

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한국기술교육대학교정보기술공학부 장영조

Page 3: M07 RTL.ppt [호환 모드] · 2016-10-31 · 클럭사이클3 : uo3(OF), uo2(EX),uo1(WB) OF,EX,WB 전부사용 uo1 실행완료latency=2 Filling 상태 이후사이클7까지전HW

-enable 신호를 가진 이동

if (K1=1) then (R2 R1) K1 : R2 R1if (K1=1) then (R2 R1) K1 : R2 R1

K1이 클럭에 동기되어 t 시간의 클럭에지에서 1이되고 t+1의 에지에서 0

R2는 t+1의 에지에서 K1이 1이 되어 있어 R1을 load

F/F의 t /h ld ti 이 있기 때문 F/F의 setup/hold time이 있기 때문

- 레지스터 이동 기호 표기법

메모리 이동

3

메모리 이동

한국기술교육대학교정보기술공학부 장영조

Page 4: M07 RTL.ppt [호환 모드] · 2016-10-31 · 클럭사이클3 : uo3(OF), uo2(EX),uo1(WB) OF,EX,WB 전부사용 uo1 실행완료latency=2 Filling 상태 이후사이클7까지전HW

- 여러가지 RTL 표시방식

4한국기술교육대학교정보기술공학부 장영조

Page 5: M07 RTL.ppt [호환 모드] · 2016-10-31 · 클럭사이클3 : uo3(OF), uo2(EX),uo1(WB) OF,EX,WB 전부사용 uo1 실행완료latency=2 Filling 상태 이후사이클7까지전HW

• 7-3 마이크로 연산- 이동, 산술, 논리, 시프트

• 산술마이크로 연산산술마이크로 연산

R0 R1 + R2 ; add and store to R0

- 1 증가/감소 회로 : 상승-하강 카운터 또는 가산기/감산기

- 곱셈/나눗셈 :

기본마이크로 연산이 아닌 결합된 uo로 구현 작은 하드웨어, 느린연산

1 uo로 구현 큰 하드웨어 규모, 빠른 동작

5한국기술교육대학교정보기술공학부 장영조

Page 6: M07 RTL.ppt [호환 모드] · 2016-10-31 · 클럭사이클3 : uo3(OF), uo2(EX),uo1(WB) OF,EX,WB 전부사용 uo1 실행완료latency=2 Filling 상태 이후사이클7까지전HW

- 가감산기 구조도X’K1 : R1 R1 + R2X’K1 : R1 R1 + R2

XK1 : R1 R1 + R2’ + 1

C : carry

V : flV : overflow

c : 0 1 1 0

+70 0 1000110 -70 1 0111010

80 0 1010000 80 1 0110000+80 0 1010000 -80 1 0110000

---------------------------

+150 1 0010110 -150 0 1101010

* overflow 발생 조건

Ci xor Ci-1 = 1

6한국기술교육대학교정보기술공학부 장영조

Page 7: M07 RTL.ppt [호환 모드] · 2016-10-31 · 클럭사이클3 : uo3(OF), uo2(EX),uo1(WB) OF,EX,WB 전부사용 uo1 실행완료latency=2 Filling 상태 이후사이클7까지전HW

• 논리마이크로 연산

- (K1+K2) : R1 R2+R3, R4 R5vR6

논리OR 산술add 논리OR

- 논리연산 mask

10101101 10101011 R1 10101101 10101011

00000000 11111111 R2 11111111 00000000 ; R2 마스크00000000 11111111 R2 11111111 00000000 ; R2 마스크

00000000 10101011 R1R1^R2 11111111 10101011 R1R1vR2

- XOR : 비트 반전

R xor 1 R’ R xor 0 R

7

R xor 1 R R xor 0 R

한국기술교육대학교정보기술공학부 장영조

Page 8: M07 RTL.ppt [호환 모드] · 2016-10-31 · 클럭사이클3 : uo3(OF), uo2(EX),uo1(WB) OF,EX,WB 전부사용 uo1 실행완료latency=2 Filling 상태 이후사이클7까지전HW

• Shift 마이크로 연산

R0 sr R0 same source and dest

R1 sl R2 no change R2

8한국기술교육대학교정보기술공학부 장영조

Page 9: M07 RTL.ppt [호환 모드] · 2016-10-31 · 클럭사이클3 : uo3(OF), uo2(EX),uo1(WB) OF,EX,WB 전부사용 uo1 실행완료latency=2 Filling 상태 이후사이클7까지전HW

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한국기술교육대학교정보기술공학부 장영조

Page 10: M07 RTL.ppt [호환 모드] · 2016-10-31 · 클럭사이클3 : uo3(OF), uo2(EX),uo1(WB) OF,EX,WB 전부사용 uo1 실행완료latency=2 Filling 상태 이후사이클7까지전HW

7-5 버스방식 전송

- H/W 비교

( ) 2 개 AND 개 OR 9 t(a) 2n개 AND, n개 OR : 9n gates

6n개 input wires

(b) 3n개 AND, n개 OR : 4n gates

개3n개 input wires

10한국기술교육대학교정보기술공학부 장영조

Page 11: M07 RTL.ppt [호환 모드] · 2016-10-31 · 클럭사이클3 : uo3(OF), uo2(EX),uo1(WB) OF,EX,WB 전부사용 uo1 실행완료latency=2 Filling 상태 이후사이클7까지전HW

• 3상태 버스 : wire 감소, H/W 감소

많은 f i 이 있는 회로에서는 이 방식 사용- 많은 fanin이 있는 회로에서는 이 방식 사용

11한국기술교육대학교정보기술공학부 장영조

Page 12: M07 RTL.ppt [호환 모드] · 2016-10-31 · 클럭사이클3 : uo3(OF), uo2(EX),uo1(WB) OF,EX,WB 전부사용 uo1 실행완료latency=2 Filling 상태 이후사이클7까지전HW

• 메모리 이동- 메모리 연산

AR : addr reg

DR : data reg

Read: DR M[AR]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 연산Write 연산

addr dec가 주소선택addr bus

write =1

D0~D1 중 1개가 enable

Data bus 메모리저장

Write : M[A1] D2

12한국기술교육대학교정보기술공학부 장영조

Page 13: M07 RTL.ppt [호환 모드] · 2016-10-31 · 클럭사이클3 : uo3(OF), uo2(EX),uo1(WB) OF,EX,WB 전부사용 uo1 실행완료latency=2 Filling 상태 이후사이클7까지전HW

7-6 데이터처리장치- 마이크로 연산(uo) 실행: ALU

- ALU 구성

조합연산회로와 accumulator(reg)

실행시간 : 1 uo /1ck실행시간 : 1 uo /1ck

2 operand 입력, 1 출력

CPU 주요구성부

(1) 데이터패스 블록( )

ALU,shifter

레지스터, MUX, decoder,버스,

처리회로등으로 구성

(2) 제어신호

uo을 수행하기 위한 적절한신호발생

R1 R2 + R3

(1)A select=10 R2를 A 버스(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선택

( )

실행

13

(7)load enable=1

clock edge에서 R1에 값 저장 한국기술교육대학교정보기술공학부 장영조

Page 14: M07 RTL.ppt [호환 모드] · 2016-10-31 · 클럭사이클3 : uo3(OF), uo2(EX),uo1(WB) OF,EX,WB 전부사용 uo1 실행완료latency=2 Filling 상태 이후사이클7까지전HW

7-7 산술/논리 연산장치- ALU : 산술/논리연산

N 비트 입출력

carry 입력 및 출력

- 연산종류선택: S신호

S2:산술/논리, mode select

S1S0 : 각 4가지 연산종류

14한국기술교육대학교정보기술공학부 장영조

Page 15: M07 RTL.ppt [호환 모드] · 2016-10-31 · 클럭사이클3 : uo3(OF), uo2(EX),uo1(WB) OF,EX,WB 전부사용 uo1 실행완료latency=2 Filling 상태 이후사이클7까지전HW

• 산술연산회로

-N 비트 병렬가산기이용

Y 입력의 다중 선택회로 : S1S0Y 입력의 다중 선택회 S1S0

4가지 연산 종류 설계

S=11

Cin=0, G=A-1(dec)

X 1011

Y + 1111

-------

(1)1010

시Carry 무시

+15-16 = 1 감소

15한국기술교육대학교정보기술공학부 장영조

Page 16: M07 RTL.ppt [호환 모드] · 2016-10-31 · 클럭사이클3 : uo3(OF), uo2(EX),uo1(WB) OF,EX,WB 전부사용 uo1 실행완료latency=2 Filling 상태 이후사이클7까지전HW

- 각 1비트에 대한 B 입력 논리회로

S1S0에 대한 4 to1 MUX

Bi 입력과 동시 최적화 : 2 to 1 MUX

- 4비트 산술연산논리도

16한국기술교육대학교정보기술공학부 장영조

Page 17: M07 RTL.ppt [호환 모드] · 2016-10-31 · 클럭사이클3 : uo3(OF), uo2(EX),uo1(WB) OF,EX,WB 전부사용 uo1 실행완료latency=2 Filling 상태 이후사이클7까지전HW

- 논리연산회로 : 비트별연산S1S0 4개연산 선택S1S0 : 4개연산 선택

4 to 1 MUX

17한국기술교육대학교정보기술공학부 장영조

Page 18: M07 RTL.ppt [호환 모드] · 2016-10-31 · 클럭사이클3 : uo3(OF), uo2(EX),uo1(WB) OF,EX,WB 전부사용 uo1 실행완료latency=2 Filling 상태 이후사이클7까지전HW

• ALU : 산술 + 논리d 선택 S2mode 선택: S2

- n 비트 ALU : 가산기의 ripple carry에

의한 전파 지연시간 발생의한 전파 지연시간 발생

- 빠른 ALU : LAC(Look Ahead Carry) 사용

18한국기술교육대학교정보기술공학부 장영조

Page 19: M07 RTL.ppt [호환 모드] · 2016-10-31 · 클럭사이클3 : uo3(OF), uo2(EX),uo1(WB) OF,EX,WB 전부사용 uo1 실행완료latency=2 Filling 상태 이후사이클7까지전HW

7-8 Shifter 회로- 기본 shifter회로 : sl, sr

- Bidirectional shift reg with parallel loads1s0 동작

00 hold

01

10

Shift R

Shift L

19한국기술교육대학교정보기술공학부 장영조

Page 20: M07 RTL.ppt [호환 모드] · 2016-10-31 · 클럭사이클3 : uo3(OF), uo2(EX),uo1(WB) OF,EX,WB 전부사용 uo1 실행완료latency=2 Filling 상태 이후사이클7까지전HW

• Barrel shifter

- 한 클럭에 n비트 이동

shift left with rotation

- 2n 비트 입출력 BS

2n 입력, n 선택선

2n 개의 MUX2n 개의 MUX

이동수 : 0 ~ 2n -1

Shift right 3Shift right 3 Shift right 2 Shift right 1

20

sl i sr 2n -i한국기술교육대학교

정보기술공학부 장영조

Page 21: M07 RTL.ppt [호환 모드] · 2016-10-31 · 클럭사이클3 : uo3(OF), uo2(EX),uo1(WB) OF,EX,WB 전부사용 uo1 실행완료latency=2 Filling 상태 이후사이클7까지전HW

7-8 데이터 처리장치 표기법-레지스터 파일 : operand, dest Reg

독립적 R/W : addr, data, write signal

- ALU + shifter + MUX : 연산

함수 및 MUX 선택 신호

status : V,C,N,Z

1010

1111

21한국기술교육대학교정보기술공학부 장영조

Page 22: M07 RTL.ppt [호환 모드] · 2016-10-31 · 클럭사이클3 : uo3(OF), uo2(EX),uo1(WB) OF,EX,WB 전부사용 uo1 실행완료latency=2 Filling 상태 이후사이클7까지전HW

7-10 Control word-마이크로연산의 데이터처리에

필요한 제어신호로 구성

- 8개의 레지스터 파일을 가진 DP에

대한 제어 워드 형식

- 제어워드 필드구성: 17비트

2개의 operand 주소, dest 주소

FS , MB, MD, RW

22한국기술교육대학교정보기술공학부 장영조

Page 23: M07 RTL.ppt [호환 모드] · 2016-10-31 · 클럭사이클3 : uo3(OF), uo2(EX),uo1(WB) OF,EX,WB 전부사용 uo1 실행완료latency=2 Filling 상태 이후사이클7까지전HW

• 데이터처리장치에 대한 제어워드 코드

• 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한국기술교육대학교정보기술공학부 장영조

Page 24: M07 RTL.ppt [호환 모드] · 2016-10-31 · 클럭사이클3 : uo3(OF), uo2(EX),uo1(WB) OF,EX,WB 전부사용 uo1 실행완료latency=2 Filling 상태 이후사이클7까지전HW

• 데이터처리 마이크로연산에 대한 제어워드 코드 예

24한국기술교육대학교정보기술공학부 장영조

Page 25: M07 RTL.ppt [호환 모드] · 2016-10-31 · 클럭사이클3 : uo3(OF), uo2(EX),uo1(WB) OF,EX,WB 전부사용 uo1 실행완료latency=2 Filling 상태 이후사이클7까지전HW

• 마이크로 연산의 실행 시뮬레이션 파형

각 uo 연산에 대한

destination reg 에

저장시 다음 클럭의 에지에서

발생되는 것에 유의!!

0

6 0발생되는 것에 유의!! 6 0

Status bit = (Z,N,C,V)Address out = (A data)

25한국기술교육대학교정보기술공학부 장영조

Data Out = (mux B out)2

Page 26: M07 RTL.ppt [호환 모드] · 2016-10-31 · 클럭사이클3 : uo3(OF), uo2(EX),uo1(WB) OF,EX,WB 전부사용 uo1 실행완료latency=2 Filling 상태 이후사이클7까지전HW

7-11 파이프라인 데이터 처리- uo 실행의 처리속도와

단위시간당 처리비율(thru-put)

- 한 개 uo의 실행시간과

최대 주파수최대 주파수

기존 구조 :

12 ns 83.3 MHz

파이프라인(pipeline)구조 :

5 ns 200 MHz

파이프라인: 연산의 실행시간이

긴 곳에 레지스터를 넣어 연산

시간을 짧게 하여

데이터처리 thruput를 높이는데이터처리 thruput를 높이는

처리 방법

26한국기술교육대학교정보기술공학부 장영조

Page 27: M07 RTL.ppt [호환 모드] · 2016-10-31 · 클럭사이클3 : uo3(OF), uo2(EX),uo1(WB) OF,EX,WB 전부사용 uo1 실행완료latency=2 Filling 상태 이후사이클7까지전HW

• 파이프라인 처리 장치 구분예의 실행을 3단계로 분리수행- uo의 실행을 3단계로 분리수행

operand fetch(OF)

execute (EX)

( )write-back(WB)

- 각 단계 사이에는 클럭이 필요 :

중간데이터를 레지스터

(파이프라인 platform)에 저장

레지스터H/W 증가

- 각 단계의 실행시간은 짧아진다.

동작주파수의 증가

27한국기술교육대학교정보기술공학부 장영조

Page 28: M07 RTL.ppt [호환 모드] · 2016-10-31 · 클럭사이클3 : uo3(OF), uo2(EX),uo1(WB) OF,EX,WB 전부사용 uo1 실행완료latency=2 Filling 상태 이후사이클7까지전HW

• uo의 파이프라인 실행 과정7개의 연산실행 시간 비교 :- 7개의 연산실행 시간 비교 :

파이프라인 구조 9 clk x 5 ns = 45 ns

기존 구조 : 7 clk x 12 ns = 84 ns

- latency : 파이프라인에서 입력후 데이터가 나오기 까지의 클럭 개수

Thruput = 84 / 45 = 1.9

latency 파이프라인에서 입력후 데이터가 나오기 까지의 클럭 개수

클럭사이클 1 : uo1 실행 OF HW 부분만 사용

클럭사이클 2 : uo2(OF), uo1(EX) OF, EX 사용

클럭사이클 3 : uo3(OF), uo2(EX),uo1(WB) OF,EX,WB 전부사용 uo1 실행완료 latency=2

Filling 상태

이후 사이클7까지 전 HW 사용과 각 사이클마다 한 개 uo 완료 : 활성상태

사이클 8,9 : emptying 상태, uo는 한 개씩 완료

28한국기술교육대학교정보기술공학부 장영조