30
한국기술교육대학교 장영조 한국기술교육대학교 전기전자통신공학부 1

한국기술교육대학교 장영조 · 2016-10-31 · }Barrel Shifter (BS)-한클럭에n비트이동 shift left with rotation-2n비트입출력BS 2n입력, n 선택선 2n개의MUX

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 한국기술교육대학교 장영조 · 2016-10-31 · }Barrel Shifter (BS)-한클럭에n비트이동 shift left with rotation-2n비트입출력BS 2n입력, n 선택선 2n개의MUX

한국기술교육대학교장영조

한국기술교육대학교 전기전자통신공학부 1

Page 2: 한국기술교육대학교 장영조 · 2016-10-31 · }Barrel Shifter (BS)-한클럭에n비트이동 shift left with rotation-2n비트입출력BS 2n입력, n 선택선 2n개의MUX

한국기술교육대학교 전기전자통신공학부 2

본 슬라이드는 M. Morris Mano and Charles Kime 의 “Logic and Computer Design Fundamentals”의 내용을 참조하였습니다.

Page 3: 한국기술교육대학교 장영조 · 2016-10-31 · }Barrel Shifter (BS)-한클럭에n비트이동 shift left with rotation-2n비트입출력BS 2n입력, n 선택선 2n개의MUX

1. 레지스터 전송과 데이터 처리 장치2. 순차진행과 제어3. 명령어 구조 (Instruction Set Architecture)

3한국기술교육대학교 전기전자통신공학부

Page 4: 한국기술교육대학교 장영조 · 2016-10-31 · }Barrel Shifter (BS)-한클럭에n비트이동 shift left with rotation-2n비트입출력BS 2n입력, n 선택선 2n개의MUX

} 디지털 시스템의 구성◦ data path 모듈: 데이터 처리, 레지스터, 연산기, MUX, …◦ control unit 모듈: 제어신호 발생, 연산의 순서지정

} RTL(Register Transfer Level) operation ◦ reg 데이터 이동/처리◦ reg set, operation, sequence control

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

ß 보통 1 클럭 동안에 수행

한국기술교육대학교 전기전자통신공학부 4

Page 5: 한국기술교육대학교 장영조 · 2016-10-31 · }Barrel Shifter (BS)-한클럭에n비트이동 shift left with rotation-2n비트입출력BS 2n입력, n 선택선 2n개의MUX

- 레지스터 표기 : 기능을 상징하는 대문자AR : address registerPC : program counter IR : instruction regR2 : 2번 reg, …

- 8비트 regR1(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

한국기술교육대학교 전기전자통신공학부 5

Page 6: 한국기술교육대학교 장영조 · 2016-10-31 · }Barrel Shifter (BS)-한클럭에n비트이동 shift left with rotation-2n비트입출력BS 2n입력, n 선택선 2n개의MUX

- enable 신호를 가진 이동if (K1=1) then (R2 ßR1) è K1 : R2 ßR1

K1이 클럭에 동기되어 t 시간의 클럭 에지에서 1이 되고 t+1의 에지에서 0R2는 t+1의 에지에서 K1이 1이 되어 있어 R1 load

ß F/F의 setup/hold time이 있기 때문- 레지스터 전송 기호 표기법

한국기술교육대학교 전기전자통신공학부

메모리 이동

6

Page 7: 한국기술교육대학교 장영조 · 2016-10-31 · }Barrel Shifter (BS)-한클럭에n비트이동 shift left with rotation-2n비트입출력BS 2n입력, n 선택선 2n개의MUX

- 여러 가지 RTL 표시방식

한국기술교육대학교 전기전자통신공학부 7

Page 8: 한국기술교육대학교 장영조 · 2016-10-31 · }Barrel Shifter (BS)-한클럭에n비트이동 shift left with rotation-2n비트입출력BS 2n입력, n 선택선 2n개의MUX

- 이동, 산술, 논리, 시프트

} 산술마이크로 연산R0 ß R1 + R2 ; add and store to R0

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

기본 마이크로 연산이 아닌 결합된 uo로 구현 ß 작은 하드웨어, 느린 연산1 uo로 구현 ß 큰 하드웨어 규모, 빠른 동작

한국기술교육대학교 전기전자통신공학부 8

Page 9: 한국기술교육대학교 장영조 · 2016-10-31 · }Barrel Shifter (BS)-한클럭에n비트이동 shift left with rotation-2n비트입출력BS 2n입력, n 선택선 2n개의MUX

- 가감산기 구조도X’K1 : R1 ß R1 + R2XK1 : R1 ß R1 + R2’ + 1

C : carry , V : overflowc : 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

한국기술교육대학교 전기전자통신공학부 9

Page 10: 한국기술교육대학교 장영조 · 2016-10-31 · }Barrel Shifter (BS)-한클럭에n비트이동 shift left with rotation-2n비트입출력BS 2n입력, n 선택선 2n개의MUX

} 종류

} RT 표현- (K1+K2) : R1 ßR2+R3, R4 ßR5vR6

- 논리연산 mask10101101 10101011 R1 10101101 1010101100000000 11111111 R2 11111111 00000000 ; R2 마스크00000000 10101011 R1ßR1^R2 11111111 10101011 R1ßR1vR2

- XOR : 비트 반전R xor 1 à R’ R xor 0 à R

한국기술교육대학교 전기전자통신공학부

논리OR 산술add 논리OR

10

Page 11: 한국기술교육대학교 장영조 · 2016-10-31 · }Barrel Shifter (BS)-한클럭에n비트이동 shift left with rotation-2n비트입출력BS 2n입력, n 선택선 2n개의MUX

} shift 마이크로 연산 표현◦ R0 ß sr R0 shift right, same source and destination, change R0

R1 ß sl R2 shift left, no change R2

한국기술교육대학교 전기전자통신공학부 11

Page 12: 한국기술교육대학교 장영조 · 2016-10-31 · }Barrel Shifter (BS)-한클럭에n비트이동 shift left with rotation-2n비트입출력BS 2n입력, n 선택선 2n개의MUX

- source reg가 여러 개 일 때if (K1=1) then (R0 ßR1) else if (K2=1) then (R0 ßR2)

K1 : R0 ßR1, K1’K2 : R0 ßR2- 2 to 1 MUX를 이용한 연결

한국기술교육대학교 전기전자통신공학부 12

Page 13: 한국기술교육대학교 장영조 · 2016-10-31 · }Barrel Shifter (BS)-한클럭에n비트이동 shift left with rotation-2n비트입출력BS 2n입력, n 선택선 2n개의MUX

- H/W 비교(a) 2n개 AND, n개 OR : 9n gates

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

3n개 input wires

한국기술교육대학교 전기전자통신공학부 13

Page 14: 한국기술교육대학교 장영조 · 2016-10-31 · }Barrel Shifter (BS)-한클럭에n비트이동 shift left with rotation-2n비트입출력BS 2n입력, n 선택선 2n개의MUX

} 3상태 버스 사용한 연결 : wire 감소, H/W 감소

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

한국기술교육대학교 전기전자통신공학부

R0 ß R1, R2 ß R1

E0E1E2=010L0L1L2=101

14

Page 15: 한국기술교육대학교 장영조 · 2016-10-31 · }Barrel Shifter (BS)-한클럭에n비트이동 shift left with rotation-2n비트입출력BS 2n입력, n 선택선 2n개의MUX

- 마이크로 연산(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연산 선택(4) MF=0, ALU 출력선택(5) MD=0, MUX Fà D bus(6) D select=01, R1 선택(7) load enable=1

clock edge에서 R1에 값 저장한국기술교육대학교 전기전자통신공학부

1ck에 실행

1uo/1ck

15

Page 16: 한국기술교육대학교 장영조 · 2016-10-31 · }Barrel Shifter (BS)-한클럭에n비트이동 shift left with rotation-2n비트입출력BS 2n입력, n 선택선 2n개의MUX

} ALU◦ 산술/논리연산◦ N 비트 입출력◦ carry 입력 및 출력

} 연산종류 선택◦ S 신호

– S2: 산술/논리, mode select– S1S0 : 각 4가지 연산종류

한국기술교육대학교 전기전자통신공학부 16

Page 17: 한국기술교육대학교 장영조 · 2016-10-31 · }Barrel Shifter (BS)-한클럭에n비트이동 shift left with rotation-2n비트입출력BS 2n입력, n 선택선 2n개의MUX

} N 비트 병렬가산기이용◦ Y 입력의 다중 선택회로S1S0 ß 4가지 연산 종류 설계

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

X 1011+ Y + 1111----------------

1 1010

한국기술교육대학교 전기전자통신공학부

Carry 무시

+15-16 = 1 감소

17

Page 18: 한국기술교육대학교 장영조 · 2016-10-31 · }Barrel Shifter (BS)-한클럭에n비트이동 shift left with rotation-2n비트입출력BS 2n입력, n 선택선 2n개의MUX

- 각 1비트에 대한 B 입력 논리회로S1S0에 대한 4 to1 MUX à

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

- 4비트 산술연산논리도

한국기술교육대학교 전기전자통신공학부 18

Page 19: 한국기술교육대학교 장영조 · 2016-10-31 · }Barrel Shifter (BS)-한클럭에n비트이동 shift left with rotation-2n비트입출력BS 2n입력, n 선택선 2n개의MUX

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

4 to 1 MUX

한국기술교육대학교 전기전자통신공학부 19

Page 20: 한국기술교육대학교 장영조 · 2016-10-31 · }Barrel Shifter (BS)-한클럭에n비트이동 shift left with rotation-2n비트입출력BS 2n입력, n 선택선 2n개의MUX

} ALU : 산술 + 논리mode 선택: S2

- n 비트 ALU : 가산기의 ripple carry에의한 전파 지연시간 발생

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

한국기술교육대학교 전기전자통신공학부 20

Page 21: 한국기술교육대학교 장영조 · 2016-10-31 · }Barrel Shifter (BS)-한클럭에n비트이동 shift left with rotation-2n비트입출력BS 2n입력, n 선택선 2n개의MUX

- 기본 shifter회로 : sl, sr- Bidirectional shift reg with parallel load

한국기술교육대학교 전기전자통신공학부

s1s0 동작

0 00 11 0

holdShift RShift L

21

Page 22: 한국기술교육대학교 장영조 · 2016-10-31 · }Barrel Shifter (BS)-한클럭에n비트이동 shift left with rotation-2n비트입출력BS 2n입력, n 선택선 2n개의MUX

} Barrel Shifter (BS)- 한 클럭에 n비트 이동

shift left with rotation

- 2n 비트 입출력 BS2n 입력, n 선택선2n 개의 MUX

이동수 : 0 ~ 2n -1

한국기술교육대학교 전기전자통신공학부

Shift right 3 Shift right 2 Shift right 1

sl i ßà sr 2n -i22

Page 23: 한국기술교육대학교 장영조 · 2016-10-31 · }Barrel Shifter (BS)-한클럭에n비트이동 shift left with rotation-2n비트입출력BS 2n입력, n 선택선 2n개의MUX

} 레지스터 파일◦ operand, dest reg◦ 독립적 R/W : addr, data, write signal

} ALU + shifter + MUX : 연산함수 및 MUX 선택 신호status : V,C,N,Z

한국기술교육대학교 전기전자통신공학부

10

1111

23

Page 24: 한국기술교육대학교 장영조 · 2016-10-31 · }Barrel Shifter (BS)-한클럭에n비트이동 shift left with rotation-2n비트입출력BS 2n입력, n 선택선 2n개의MUX

} 마이크로 연산의 데이터처리에 필요한제어신호로 구성

} 8개의 레지스터 파일을 가진 DP에대한 제어 워드 형식◦ 제어워드 필드구성◦ 17 비트

– dest 주소, 2개의 operand 주소– FS , MB, MD, RW

한국기술교육대학교 전기전자통신공학부 24

Page 25: 한국기술교육대학교 장영조 · 2016-10-31 · }Barrel Shifter (BS)-한클럭에n비트이동 shift left with rotation-2n비트입출력BS 2n입력, n 선택선 2n개의MUX

} R1 ß R2 + R3’ + 1 연산의 경우 제어워드의 값Field : DA AA BA MB FS MD RWsymbols : R1 R2 R3 register F=A+B’+1 function writeBinary : 001 010 011 0 00101 0 1

è control word 00101001100010101 17 bits

한국기술교육대학교 전기전자통신공학부 25

Page 26: 한국기술교육대학교 장영조 · 2016-10-31 · }Barrel Shifter (BS)-한클럭에n비트이동 shift left with rotation-2n비트입출력BS 2n입력, n 선택선 2n개의MUX

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

한국기술교육대학교 전기전자통신공학부 26

Page 27: 한국기술교육대학교 장영조 · 2016-10-31 · }Barrel Shifter (BS)-한클럭에n비트이동 shift left with rotation-2n비트입출력BS 2n입력, n 선택선 2n개의MUX

} 실행 시뮬레이션 파형

각 uo 연산에 대한 destination reg에 저장시 다음 클럭의 에지에서 발생되는 것에 유의!!

한국기술교육대학교 전기전자통신공학부

Status bit = (Z,N,C,V)Address out = (A data)Data Out = (mux B out)

0

6 0

2

27

R1 ß R2+R3+1R4 ß sl R6R7 ß R7+1R1 ß R0+2Data out ß R3R4 ß Data inR5 ß 0

8

Page 28: 한국기술교육대학교 장영조 · 2016-10-31 · }Barrel Shifter (BS)-한클럭에n비트이동 shift left with rotation-2n비트입출력BS 2n입력, n 선택선 2n개의MUX

} uo 실행의 처리속도와 단위시간당 처리비율(thruput)

} 한 개 uo의 실행시간과 최대주파수◦ 기존 구조

12 ns è 83.3 MHz◦ 파이프라인(pipeline)구조

5 ns è 200 MHz

} 파이프라인: 연산의 실행시간이 긴 경로에 레지스터를 넣어연산 시간을 짧게 하여 데이터처리 thruput를 높이는 하드웨어 구조

한국기술교육대학교 전기전자통신공학부 28

Page 29: 한국기술교육대학교 장영조 · 2016-10-31 · }Barrel Shifter (BS)-한클럭에n비트이동 shift left with rotation-2n비트입출력BS 2n입력, n 선택선 2n개의MUX

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

– operand fetch(OF)– execute (EX)– write-back(WB)

- 각 단계 사이에는 클럭 필요- 중간 데이터를 (파이프라인 platform) 레지스터

에 저장ß 추가적인 레지스터 사용으로 H/W 증가

- 각 단계의 실행시간은 짧아진다.ß 동작주파수의 증가

한국기술교육대학교 전기전자통신공학부 29

Page 30: 한국기술교육대학교 장영조 · 2016-10-31 · }Barrel Shifter (BS)-한클럭에n비트이동 shift left with rotation-2n비트입출력BS 2n입력, n 선택선 2n개의MUX

} uo의 파이프라인 실행 과정- 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이후 사이클7까지 전 HW 사용과 각 사이클마다 한 개 uo 완료 : 활성상태사이클 8,9 : uo는 한 개씩 완료, emptying 상태

- 7개의 연산실행 시간 비교 : Thruput = 84 / 45 = 1.9파이프라인 구조: 9 clk x 5 ns = 45 ns 기존 구조 : 7 clk x 12 ns = 84 ns

한국기술교육대학교 전기전자통신공학부

Filling 상태

30