02-MS-pipeline - 이상정
Download
Report
Transcript 02-MS-pipeline - 이상정
명령어 파이프라인
순천향대학교 정보기술공학부
이상정
2002-2 컴퓨터구조특론1
파이프라인 이란?
세탁 예
A
A, B, C, D
각기 옷을 세탁, 말림, 접기
세탁에 30분 소요
말림에 30분 소요
접기에 30분 소요
옷을 서랍에 정리하는데 30분 소요
순천향대학교 정보기술공학부 이 상 정
2
B
C
D
2002-2 컴퓨터구조특론1
순차 세탁
6 PM
T
a
s
k
O
r
d
e
r
A
7
8
9
11
10
12
1
30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30
Time
B
C
D
순차세탁은 4개의 세탁을 위해 8시간 소요
파이프라인을 적용했을 경우 얼마나 소요될 것인가?
순천향대학교 정보기술공학부 이 상 정
3
2002-2 컴퓨터구조특론1
파이프라인 세탁
6 PM
T
a
s
k
7
8
9
11
10
12
1
Time
30 30 30 30 30 30 30
A
B
C
O
D
r
d
e
r 파이프 라인 세탁은 4개 세탁에 대해 3.5 시간 소요 !
순천향대학교 정보기술공학부 이 상 정
4
2 AM
2002-2 컴퓨터구조특론1
파이프라인 교훈
6 PM
T
a
s
k
O
r
d
e
r
7
8
9
Time
30 30 30 30 30 30 30
A
B
C
D
순천향대학교 정보기술공학부 이 상 정
파이프라인은 단일 태스크의 처리
시간(latency)을 줄이지 않지만 전
체작업의 시간을 줄임(throughput)
다수의 태스크가 다른 자원을 이용
하여 동시에 수행
Potential speedup =
Number pipe stages
파이프라인 처리속도는 가장 늦은
파이프 스테이지에 의해 제한
파이프 스테이지의 길이가 다른 경
우 성능 저하
시작 시 파이프라인 채우는 시간과
종료 시 끝나는 시간 동안에는 모
두 중첩 실행되지 않음
Stall for Dependences
5
2002-2 컴퓨터구조특론1
명령어 파이프라인 스테이지 예
Cycle 1
IF
Cycle 2
ID
Cycle 3
EX
Cycle 4
MEM
Cycle 5
WB
IF: 명령 페치 (Instruction Fetch)
• 명령어 캐시로 부터 다음에 수행될 명령어 페치
ID: 명령 디코드(Decode/Registers Fetch)
• 수행될 명령어 디코드, 레지스터 오퍼랜드 읽기
EX: 명령 수행(EXecution/Effective Address)
• 명령의 수행, 메모리 연산의 유효 주소 계산
MEM: 메모리 참조
(MEMory Access/Branch completion Cycle)
• 메모리 참조, 분기명령 수행
WB: Write-Back Cycle
• 연산 결과 및 메모리 참조 내용의 레지스터 저장
순천향대학교 정보기술공학부 이 상 정
6
2002-2 컴퓨터구조특론1
파이프라인 중첩실행
Time
IF
ID
IF
EX
MEM
WB
ID
EX
MEM
WB
ID
EX
MEM
WB
ID
EX
MEM
WB
ID
EX
MEM
WB
ID
EX
MEM
IF
IF
IF
Program Flow
순천향대학교 정보기술공학부 이 상 정
IF
7
WB
2002-2 컴퓨터구조특론1
5 스테이지 수행 경로
순천향대학교 정보기술공학부 이 상 정
8
2002-2 컴퓨터구조특론1
Single Cycle, Multiple Cycle
vs. Pipeline
Cycle 1
Cycle 2
Clk
Single Cycle Implementation:
Load
Store
Waste
Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 Cycle 7 Cycle 8 Cycle 9 Cycle 10
Clk
Multiple Cycle Implementation:
Load
IF
ID EX
MEM
Store
WB
IF
ID
Pipeline Implementation:
Load
IF
ID
Store
IF
R-type
EX
MEM
ID
IF
순천향대학교 정보기술공학부 이 상 정
EX
ID
WB
MEM
WB
EX
MEM
9
WB
EX
R-type
MEM
IF
2002-2 컴퓨터구조특론1
파이프라인의 성능 비교
100개 명령을 수행하는 예 가정
Single Cycle Machine
• 45 ns/cycle x 1 CPI x 100 inst = 4500 ns
Multicycle Machine
• 10 ns/cycle x 4.6 CPI (due to inst mix) x 100 inst = 4600 ns
Ideal pipelined machine
• 10 ns/cycle x (1 CPI x 100 inst + 4 cycle drain) = 1040 ns
순천향대학교 정보기술공학부 이 상 정
10
2002-2 컴퓨터구조특론1
Visualizing Pipelining
순천향대학교 정보기술공학부 이 상 정
11
2002-2 컴퓨터구조특론1
Pipelined DLX Datapath
순천향대학교 정보기술공학부 이 상 정
12
2002-2 컴퓨터구조특론1
성능 비교 예
Unpipelined CPU:
• 10-ns clock cycle
• Four cycles for ALU operations and branches
• Five cycles for memory operations
• Frequency = 40%, 20% and 40%
Average instruction execution time
= Clock * Average CPI
= 10ns*((.4+.2)*4 + (.4*5))
= 10ns*4.4
= 44ns
순천향대학교 정보기술공학부 이 상 정
13
2002-2 컴퓨터구조특론1
성능 비교 예
Pipelined CPU:
• 11-ns clock cycle (to accommodate slowest stage)
• No pipeline conflicts
Averge instruction execution time
= 11ns
Speedup
= Time unpipelined / Time pipelined
= 44ns/11ns
=4
순천향대학교 정보기술공학부 이 상 정
14
2002-2 컴퓨터구조특론1
파이프라인 해저드
(Pipeline Hazards)
해저드 는 다음 명령이 지정된 클럭에서 계속 수행하는
것을 방해한다.
• 구조적 해저드(Structural hazards): 하드웨어가 여러 명령들
을 수행을 지원하지 않기 때문에 발생, 자원충돌(resource
conflicts)
• 데이터 해저드(Data hazards): 명령이 현재 파이프라인에서
수행 중인 이전명령의 결과에 종속되는 경우 발생
• 제어 해저드(Control hazards): 분기 명령어에 의해 발생
• 해저드를 해결하는 가장 단순한 방식은 해저드의 요인이 소멸
될 때까지 파이프라인을 중지(stall) 하는 것이다.
순천향대학교 정보기술공학부 이 상 정
15
2002-2 컴퓨터구조특론1
1 메모리 포트 구조적 해저드
순천향대학교 정보기술공학부 이 상 정
16
2002-2 컴퓨터구조특론1
1 메모리 포트 구조적 해저드
순천향대학교 정보기술공학부 이 상 정
17
2002-2 컴퓨터구조특론1
데이터 해저드
Time (clock cycles)
IF
I
n
s
t
r.
O
r
d
e
r
ID/RF EX
add r1,r2,r3
sub r4,r1,r3
and r6,r1,r7
or r8,r1,r9
xor r10,r1,r11
순천향대학교 정보기술공학부 이 상 정
18
MEM
WB
2002-2 컴퓨터구조특론1
데이터 해저드 - RAW
명령 InstrI 다음에 명령 InstrJ 오는 예
Read After Write (RAW)
명령 InstrI 가 저장한 오퍼랜드를 명령 InstrJ
가 읽을때 발생
• A = B + C; D = A + E;
• 명령 InstrI 가 WB 스테이지 에서 결과값을
쓰기를 할 때까지 기다려야 한다.
순천향대학교 정보기술공학부 이 상 정
19
2002-2 컴퓨터구조특론1
데이터 해저드 - WAR
Write After Read (WAR)
명령 InstrI 가 오퍼랜드를 읽기 전에 명령
InstrJ 가 같은 오퍼랜드 쓰기의 경우 발생
• A = B + C; B = D + E;
단일 파이프라인에서는 발생하지 않음:
• 스테이지 2에서 오퍼랜드 읽고, 스테이지 5
에서 오퍼랜드 쓰기 때문
• 동시에 수행하는 다중이슈(multiple issue)
에서는 발생
순천향대학교 정보기술공학부 이 상 정
20
2002-2 컴퓨터구조특론1
데이터 해저드 - WAW
Write After Write (WAW)
명령 InstrI 가 오퍼랜드를 쓰기 전에 명령
InstrJ 가 같은 오퍼랜드를 쓰는 경우 발생
• A = B + C; A = D + E;
단일 파이프라인에서는 발생하지 않음:
• 동시에 수행하는 다중이슈(multiple issue)
에서는 발생
순천향대학교 정보기술공학부 이 상 정
21
2002-2 컴퓨터구조특론1
데이터 해저드를 피하기 위한
포워딩(Forwarding)
Time (clock cycles)
I
n
s
t
r.
O
r
d
e
r
add r1,r2,r3
sub r4,r1,r3
and r6,r1,r7
or r8,r1,r9
xor r10,r1,r11
순천향대학교 정보기술공학부 이 상 정
22
2002-2 컴퓨터구조특론1
포워딩을 위한 하드웨어 변경
순천향대학교 정보기술공학부 이 상 정
23
2002-2 컴퓨터구조특론1
포워딩을 해결할 수 없는
데이터 해저드
Time (clock cycles)
I
n
s
t
r.
lw r1, 0(r2)
O
r
d
e
r
and r6,r1,r7
sub r4,r1,r6
or r8,r1,r9
순천향대학교 정보기술공학부 이 상 정
24
2002-2 컴퓨터구조특론1
포워딩을 해결할 수 없는
데이터 해저드
Time (clock cycles)
I
n
s
t
r.
O
r
d
e
r
lw r1, 0(r2)
sub r4,r1,r6
and r6,r1,r7
or r8,r1,r9
순천향대학교 정보기술공학부 이 상 정
25
2002-2 컴퓨터구조특론1
데이터해저드를 해결하기 위한
소프트웨어 스케쥴링
Try producing fast code for
a = b + c;
d = e - f;
assuming a, b, c, d ,e, and f in
memory.
Slow code:
LW
LW
ADD
SW
LW
LW
SUB
SW
LW
LW
LW
LW
ADD
SW
SUB
SW
Rb,b
Rc,c
Ra,Rb,Rc
a,Ra
Re,e
Rf,f
Rd,Re,Rf
d,Rd
순천향대학교 정보기술공학부 이 상 정
26
Rb,b
Rc,c
Re,e
Rf,f
Ra,Rb,Rc
a,Ra
Rd,Re,Rf
d,Rd
2002-2 컴퓨터구조특론1
분기명령에 의한 제어 해저드
(Control Hazard)
Time
IF
ID
EX
MEM
WB
IF
stall
stall
IF
ID
EX
MEM
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
Program Flow
순천향대학교 정보기술공학부 이 상 정
27
WB
WB
2002-2 컴퓨터구조특론1
분기 중지 영향
(Branch Stall Impact)
If CPI = 1, 30% branch, Stall 3 cycles
=> new CPI = 1.9!
2가지 해결:
• 분기조건의 조기 결정, AND
• 분기주소의 조기결정
RISC 머신의 조건분기, register = 0 or 0
해결책:
• 0 값의 조건 테스트를 ID/RF 스테이지에서 수행
• 분기주소계산을 위한 덧셈기 추가
• 3 클럭 손실 대신 1 클럭 손실
순천향대학교 정보기술공학부 이 상 정
28
2002-2 컴퓨터구조특론1
제어 해저드-조기 판정
Time
IF
ID
stall
EX
MEM
WB
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
Program Flow
순천향대학교 정보기술공학부 이 상 정
29
WB
2002-2 컴퓨터구조특론1
파이프라인 수행 경로
순천향대학교 정보기술공학부 이 상 정
30
2002-2 컴퓨터구조특론1
분기 해저드 해소 방법들
#1: 분기 방향이 결정될 때까지 중지
#2: Predict Branch Not Taken
• 다음 명령을 무조건 수행
• 분기가 taken 된 경우 파이프라인 상의 명령을 취소(Squash)
• 47% DLX 분기 명령이 not taken
• PC+4 는 이미 계산되었기 때문에 다음 명령 페치 시 바로 사
용할 수 있다.
#3: Predict Branch Taken
• 53% DLX 분기 명령이 taken
• 그러나 대부분 머신에서는 타겟 주소가 계산되지 않았기 때문
에
• 여전히 1 사이클 분기손실 필요
순천향대학교 정보기술공학부 이 상 정
31
2002-2 컴퓨터구조특론1
분기 해저드 해소 방법들
#4: 지연분기(Delayed Branch)
• 분기손실되는 클럭 동안에 다른 명령 수행
branch instruction
sequential successor1
sequential successor2
........
sequential successorn
branch target if taken
#4: 분기예측(branch prediction)
순천향대학교 정보기술공학부 이 상 정
32
2002-2 컴퓨터구조특론1
지연분기 – 지연슬롯 위치
순천향대학교 정보기술공학부 이 상 정
33