Tải bản đầy đủ (.pdf) (48 trang)

Chapter04 2pipelinedprocessor

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.55 MB, 48 trang )

dce
2017

COMPUTER ARCHITECTURE
CSE 2015

BK
TP.HCM

Faculty of Computer Science and
Engineering
Department of Computer Engineering
Vo Tan Phuong
/>

dce
2017

Chapter 4.2
Thiết kế bộ xử lý đường ống
(Pipelined Processor Design)

Computer Architecture – Chapter 4.2

©Fall 2017, CSE

2


dce


Nội dung

2017

 Thực thi theo kiểu đường ống so với tuần tự

 Datapath & Control theo kiểu đường ống
 Rủi ro (Hazard) trong hiện thực đường ống

 Rủi ro về dữ liệu và phương pháp xúc tiến sớm
 Chờ trong lệnh “Load”, phát hiện rủi ro và khựng

 Rủi ro về điều khiển

Computer Architecture – Chapter 4.2

©Fall 2017, CSE

3


dce

Ví dụ cơ chế đường ống

2017

 Dịch vụ giặt đồ: 3 bước
1. Giặt


2. Sấy
3. Gấp
 Mỗi bước thực hiện trong 30 phút

 Có 4 mẻ

Computer Architecture – Chapter 4.2

A

B

C

D

©Fall 2017, CSE

4


dce

Phương pháp tuần tự

2017

6 PM
Time 30


7
30

8
30

30

9
30

30

10
30

30

11
30

30

12 AM
30

30

A
B

C
D

 Cần 6 tiếng để hoàn thành 4 mẻ
 Dễ thấy cách làm này cịn có thể được cải thiện
Computer Architecture – Chapter 4.2

©Fall 2017, CSE

5


dce

Áp dụng cơ chế đường ống

2017

6 PM
30

7
30
30

8
30
30
30


30
30
30

9 PM

Time
30
30

30

A

 Cần 3 tiếng cho 4 mẻ

B

 Hiệu quả hơn 2 lần cho
4 mẻ

C

 Thời gian xử lý một mẻ
không đổi (90 phút)

D

Computer Architecture – Chapter 4.2


©Fall 2017, CSE

6


dce

Hiệu suất của cơ chế đường ống

2017

 Mỗi công việc cần k công đoạn
 Với ti = thời gian của mỗi công đoạn Si
 Chu kỳ xung nhịp t = max(ti) là thời gian của công đoạn dài nhất
 Tần số xung nhịp f = 1/t = 1/max(ti)
 Thời gian xử lý n công việc = (k + n – 1)*t
 k chu kỳ để hồn thành cơng việc đầu tiên
 n – 1 chu kỳ cịn lại hồn thành n – 1 công việc

 Speed up trong trường hợp lý tưởng
Số chu kỳ cho cách tuần tự
Sk =

Số chu lỳ cho cách pipeline

Computer Architecture – Chapter 4.2

nk
=


k+n–1

Sk → k khi n lớn

©Fall 2017, CSE

7


dce
2017

Bộ xử lý MIPS theo cơ chế Pipeline
 Gồm 5 công đoạn, mỗi công đoạn là một chu kỳ
1. IF: Instruction Fetch (nạp lệnh)
2. ID: Instruction Decode (giải mã lệnh)

3. EX: Execute (thực thi phép toán)
4. MEM: Memory access (truy xuất bộ nhớ dữ liệu)

5. WB: Write Back (ghi kết quả vào thanh ghi đích)

Computer Architecture – Chapter 4.2

©Fall 2017, CSE

8


dce

2017

So sánh Single-Cycle với Pipelined
 Giả sử 5 công đoạn trong q trình thực thi lệnh có thời
gian như sau:
 Nạp lệnh (IF) = ALU thực thi (ALU) = truy xuất bộ nhớ dữ liệu
(MEM) = 200 ps
 Đọc thanh ghi (RegR) = ghi thanh ghi (RegW) = 150 ps

 Tính chu kỳ của bộ xử lý đơn chu kỳ (Ts)?
 Tính chu kỳ của bộ xử lý đơn đường ống (Tp)?
 Tính speedup?
 Lời giải:
Ts = 200+150+200+200+150 = 900 ps
IF

Reg

ALU

MEM

Reg

900 ps

IF

Reg


ALU

MEM

Reg

900 ps
Computer Architecture – Chapter 4.2

©Fall 2017, CSE

9


dce

So sánh (tiếp theo)

2017

 Tp =

max(200, 150) = 200 ps
IF

Reg

200

IF

200

ALU
Reg

IF
200

MEM

Reg

ALU

MEM

Reg

ALU

MEM

200

200

Reg
200

 CPI cho bộ xử lý pipeline =


Reg
200

1

 Xét trường hợp số lượng lệnh lớn

 Speedup của bộ xử lý pipeline = 900 ps / 200 ps = 4.5
 IC và CPI bằng nhau cho cả hai trường hợp

 Speedup nhỏ hơn 5 (số công đoạn)
 Do thời gian các công đoạn khơng cân bằng

Computer Architecture – Chapter 4.2

©Fall 2017, CSE

10


dce
2017

Tiếp theo…
 Thực thi theo kiểu đường ống so với tuần tự

 Datapath & Control theo kiểu đường ống
 Rủi ro (Hazard) trong hiện thực đường ống


 Rủi ro về dữ liệu và phương pháp xúc tiến sớm
 Chờ trong lệnh “Load”, phát hiện rủi ro và khựng

 Rủi ro về điều khiển

Computer Architecture – Chapter 4.2

©Fall 2017, CSE

11


dce

Datapath đơn chu kỳ

2017

 Hình bên dưới là datapath của bộ xử lý đơn chu kỳ

 Thay đổi datapath như thế nào để trở thành pipelined?
Trả lời: Thêm thanh ghi vào cuối những công đoạn
IF = Instruction Fetch

ID = Decode &
Register Read

Jump or Branch Target Address

EX = Execute


MEM = Memory
Access
J

Next
PC

Beq
Bne

30

00

30

Instruction
Memory
Instruction

PC

0
1

ALU result

Imm26


+1

PCSrc

Rs 5
32

Rt 5

Address
Rd

Imm16

zero

32

BusA

RA

Registers
RB

BusB

0

0

1

WB =
Write
Back

RW

BusW

E

32

A
L
U

32

Data
Memory
Address
Data_out
Data_in

1

0


32

32
1

32

RegDst

clk

Reg
Write
ExtOp ALUSrc ALUCtrl

Computer Architecture – Chapter 4.2

Mem Mem
Read Write

Mem
toReg

©Fall 2017, CSE

12


dce


Datapath đường ống

2017

 Các thanh ghi thêm vào có màu xanh, bao gồm PC

 Cùng chung tín hiệu xung nhịp với bộ thanh ghi và bộ nhớ
dữ liệu (cho lệnh store)

1

Address

RB

0
1

Rd

RW

32

Imm

E
BusB
BusW


32

zero

A
L
U

1

Data
Memory

ALUout

RA

ALU result
Imm16

A

NPC
Rt 5

BusA

Next
PC


32

Data_out

0

32

32

0

Address

1

WB Data

PC

0

Rs 5

B

Instruction

Imm26


Register File

Instruction
Memory

Instruction

+1

MEM = Memory
Access

WB = Write Back

EX = Execute

D

ID = Decode &
Register Read

NPC2

IF = Instruction Fetch

Data_in

32

clk


Computer Architecture – Chapter 4.2

©Fall 2017, CSE

13


dce

Vấn đề với thanh ghi đích (RW)

2017

 Có vấn đề với địa chỉ thanh ghi đích?
 Các giá trị RA, RB, RW trong công đoạn ID khác với công đoạn WB

Address

RB

0
1

Rd

RW

ALU result
Imm16


E
BusB
BusW

32

zero

32

A

Imm

Next
PC

A
L
U

1

Data
Memory

ALUout

Rt 5


RA

BusA

MEM =
Memory Access

32
32

32

0

Address
Data_out

0

D

1

PC

0

Rs 5


B

Instruction

Imm26

Register File

Instruction
Memory

Instruction

+1

NPC

NPC2

EX = Execute

1

WB Data

ID = Decode &
Register Read

IF = Instruction Fetch


WB = Write Back

 Địa chỉ thanh ghi đích RW khi WB khơng phải là giá trị đúng cần ghi
vào

Data_in

32

clk
Computer Architecture – Chapter 4.2

©Fall 2017, CSE

14


dce
2017

Thêm đường ống cho địa chỉ thanh ghi đích

 Địa chỉ thanh ghi đích cần thêm vào đường ống
 Địa chỉ thanh ghi đích truyền từ cơng đoạn ID sang WB
 Lúc này cơng đoạn WB có giá trị đúng của địa chỉ thanh ghi đích
ID

EX

RW


BusB
BusW

0
1

32

A
L
U

1

Data
Memory

ALUout

Imm
A

32

E

32

zero


32

Data_out

0

32
32

0

Address

1

WB Data

Rd

ALU result
Imm16

Data_in

Rd4

RB

WB


Next
PC

D

RA

B

Address

Rt 5

BusA

MEM

Rd3

1

PC

0

Rs 5

Rd2


Instruction

Imm26

Register File

Instruction
Memory

Instruction

+1

NPC

NPC2

IF

clk
Computer Architecture – Chapter 4.2

©Fall 2017, CSE

15


dce
2017


Giảng đồ thực thi lệnh theo đường ống

 Diễn tả quá trình thực thi lệnh theo chu kỳ xung nhịp
 Lệnh được liệt kê theo thứ tự từ trên xuống
 Xung nhịp theo thứ tự từ trái qua phải

Program Execution Order

 Mô tả chi tiết công đoạn của từng lệnh, tài nguyên sử dụng theo
chu kỳ xung nhịp
Time (in cycles)

CC1

CC2

CC3

CC4

CC5

lw $t6, 8($s5)

IM

Reg

ALU


DM

Reg

IM

Reg

ALU

DM

Reg

IM

Reg

ALU

DM

Reg

IM

Reg

ALU


DM

Reg

IM

Reg

ALU

DM

add $s1, $s2, $s3
ori $s4, $t3, 7

sub $t5, $s2, $t3
sw $s2, 10($t3)

Computer Architecture – Chapter 4.2

CC6

CC7

CC8

©Fall 2017, CSE

16



dce

Giảng đồ tóm lược

2017

 Giảng đồ tóm lược mơ tả:
 Công đoạn thực thi của từng lệnh theo chu kỳ xung nhịp

 Các lệnh đi qua đường ống gồm 5 trạng thái
Các lệnh ALU bỏ qua
công đoạn truy xuất bộ
nhớ dữ liệu
Lệnh Store bỏ qua
cơng đoạn WB

Instruction Order

Tối đa có 5 lệnh tham gia vào
đường ống tại một thời điểm
Instruction Level Parallelism (ILP)
lw

$t7, 8($s3)

lw

$t6, 8($s5)


IF

ID

EX MEM WB

IF

ID

EX MEM WB

IF

ID

EX



WB

IF

ID

EX




IF

ID

ori $t4, $s3, 7
sub $s5, $s2, $t3

sw

$s2, 10($s3)
CC1

WB

EX MEM



CC2 CC3 CC4 CC5 CC6 CC7 CC8 CC9

Computer Architecture – Chapter 4.2

Time

©Fall 2017, CSE

17


dce


Tín hiệu điều khiển
ID

EX

RW

Imm16

BusB

1

32

Data
Memory
32
32

32

0

Address
Data_out

0


BusW

0
1

A
L
U

ALUout

E

32

zero

32

A

Imm

ALU result

1

WB Data

Rd


Bne

Data_in

Rd4

Address

RB

Beq

Rd3

1

PC

0

Rt 5

RA

BusA

WB

J


Next
PC

B

Instruction

Rs 5

MEM

Rd2

Instruction
Memory

Imm26

Register File

PCSrc

Instruction

+1

NPC

NPC2


IF

D

2017

clk
Reg
Dst

Reg
Write

Ext
Op

ALU
Src

ALU
Ctrl

Mem Mem
Read Write

Mem
toReg

Các tín hiệu điều khiển giống như bộ xử lý đơn chu kỳ

Computer Architecture – Chapter 4.2

©Fall 2017, CSE

18


dce

Điều khiển theo kiểu đường ống

32

0
1

32

Data_out

0

BusW

32
32

0

Address


1

WB Data

1

Data
Memory

ALUout

A

Imm

BusB

A
L
U

Data_in

Rd4

RW

32


E

32

zero

D

Rd

Op

1

Address

RB

Bne

Rd3

PC

0

Rt 5

RA


BusA

Beq
ALU result

Imm16

B

Instruction

Rs 5

J

Next
PC

Rd2

Instruction
Memory

Imm26

Register File

PCSrc

Instruction


+1

NPC

NPC2

2017

Main
& ALU
Control

Computer Architecture – Chapter 4.2

Ext
Op

ALU
Src

J
ALU Beq
Ctrl Bne

Mem Mem
Read Write

Mem
toReg


WB

Reg
Write

MEM

Reg
Dst

EX

Phân phối tín
hiệu điều khiển
theo cơng đoạn
như datapath

func

clk

©Fall 2017, CSE

19


dce
2017


Tiếp theo…
 Thực thi theo kiểu đường ống so với tuần tự

 Datapath & Control theo kiểu đường ống
 Rủi ro (Hazard) trong hiện thực đường ống

 Rủi ro về dữ liệu và phương pháp xúc tiến sớm
 Chờ trong lệnh “Load”, phát hiện rủi ro và khựng

 Rủi ro về điều khiển

Computer Architecture – Chapter 4.2

©Fall 2017, CSE

20


dce
2017

Các rủi ro (hazards) với thiết kế pipeline
 Hazards: Tình huống làm q trình thực thi khơng đúng
theo thứ tự pipeline bình thường
1. Rủi ro về mặt cấu trúc
 Tài nguyên (khối chức năng) được dùng bởi hai lệnh cùng một
thời điểm

2. Rủi ro về mặt dữ liệu
 Một lệnh tính ra kết quả được sử dụng bởi các lệnh kế

 Phần cứng có thể phát hiện sự phụ thuộc này giữa các lệnh

3. Rủi ro về mặt điều khiển
 Sinh ra bởi lệnh thay đổi dòng thực thi (nhảy/rẽ nhánh)

 Rủi ro làm thiết kế pipeline thêm phức tạp và giảm hiệu
suất.

Computer Architecture – Chapter 4.2

©Fall 2017, CSE

21


dce

Rủi ro về mặt điều khiển

2017

 Vấn đề
 Tranh chấp sử dụng một khối chức năng bởi hai lệnh khác nhau
vào cùng một chu kỳ xung nhịp

 Ví dụ

Structural Hazard
Hai lệnh cùng ghi
kết quả vào thanh

bộ thanh ghi

 Ghi lại kết quả ALU trong công đoạn 4

 Đụng độ với ghi kết quả ô nhớ trong

Instructions

công đoạn 5
lw

$t6, 8($s5)

IF

ori $t4, $s3, 7

ID

EX MEM WB

IF

ID

EX

WB

IF


ID

EX

WB

IF

ID

EX MEM

sub $t5, $s2, $s3
sw

$s2, 10($s3)
CC1

CC2 CC3 CC4 CC5 CC6 CC7 CC8 CC9

Computer Architecture – Chapter 4.2

Time

©Fall 2017, CSE

22



dce
2017

Tiếp theo…
 Thực thi theo kiểu đường ống so với tuần tự

 Datapath & Control theo kiểu đường ống
 Rủi ro (Hazard) trong hiện thực đường ống

 Rủi ro về dữ liệu và phương pháp xúc tiến sớm
 Chờ trong lệnh “Load”, phát hiện rủi ro và khựng

 Rủi ro về điều khiển

Computer Architecture – Chapter 4.2

©Fall 2017, CSE

23


dce
2017

Rủi ro về mặt dữ liệu
 Phụ thuộc dữ liệu giữa các lệnh tạo ra rủi ro loại này
 Các lệnh phụ thuộc dữ liệu nằm kề với nhau
 Read After Write – Rủi ro RAW
 Cho 2 lệnh I và J, với I được thực thi trước lệnh J


 Lệnh J cần (đọc) toán hạn được ghi bởi lệnh I
 Gọi là một phụ thuộc dữ liệu
I: add $s1, $s2, $s3

# $s1 is written

J: sub $s4, $s1, $s3

# $s1 is read

 Rủi ro xảy ra khi lệnh J đọc toán hạn $s1 trước khi lệnh I cập
nhật lại giá trị mới nhất

Computer Architecture – Chapter 4.2

©Fall 2017, CSE

24


dce
2017

Ví dụ về rủi ro loại RAW

Program Execution Order

Time (cycles)
value of $s2
sub $s2, $t1, $t3


CC1

CC2

CC3

CC4

CC5

CC6

CC7

CC8

10

10

10

10

10

20

20


20

IM

Reg

ALU

DM

Reg

IM

Reg

ALU

DM

Reg

IM

Reg

ALU

DM


Reg

IM

Reg

ALU

DM

Reg

IM

Reg

ALU

DM

add $s4, $s2, $t5
or $s6, $t3, $s2
and $s7, $t4, $s2
sw $t8, 10($s2)

 Kết quả của lệnh sub cần bởi lệnh add, or, and, & sw
 Lệnh add & or sẽ đọc giá trị cũ của $s2 từ bộ thanh ghi
 Trong CC5, $s2 được ghi giá trị mới vào cuối chu kỳ
Computer Architecture – Chapter 4.2


©Fall 2017, CSE

25


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×