96
CE CHƯƠNG 4 BXLÝ (THE PROCESSOR) 1 KIN TRÚC MÁY TÍNH

Chuong04 Datapath Và Pipeline-update

Embed Size (px)

Citation preview

Page 1: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 1/96

CE

CHƯƠNG 4

BỘ XỬ LÝ (THE PROCESSOR)

1

KIẾN TRÚC MÁY TÍNH

Page 2: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 2/96

CE

CHƯƠNG 4

BỘ XỬ LÝ (THE PROCESSOR)

Phần 1. Xây dựng đường dữ liệu (Datapath)

Phần 2. Kỹ thuật ống dẫn (Pipeline)

2

KIẾN TRÚC MÁY TÍNH

Page 3: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 3/96

CE  BỘ XỬ LÝ

Nội dung phần 1

1.  Giới thiệu

2.  Nhắc lại các quy ước thiết kế logic

3. Xây dựng đường dữ liệu (datapath) đơn giản

4.  Hiện thực datapath đơn chu kỳ

3

Page 4: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 4/96

CE  BỘ XỬ LÝ

Nội dung

1.  Giới thiệu

2.  Nhắc lại các quy ước thiết kế logic

3. Xây dựng đường dữ liệu (datapath) đơn giản

4.  Hiện thực datapath đơn chu kỳ

4

Page 5: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 5/96

CE  Giới thiệu

5

 Hiệu suất của một máy tính được xác định bởi ba yếu tố:

 – Tổng số câu lệnh Được xác định bởi trình biên dịchvà kiến trúc tập lệnh

 –  Chu kỳ xung clock 

 – Số chu kỳ xung clock trên một lệnh

(Clock cycles per instruction − CPI)

Mục đích chính của chương này:

-  Giải thích quy tắc hoạt động và hướng dẫn xây dựng datapath cho một bộ xử lý

chứa một số lệnh đơn giản (giống kiến trúc tập lệnh dạng MIPS), gồm hai ý

chính:•  Thiết kế datapath

•  Hiện thực datapath đã thiết kế

MIPS ( bắt nguồn từ chữ viết tắt của ‘Microprocessor without Interlocked Pipeline Stages’) là mộtkiến trúc tập tập lệnh dạng RISC, được phát triển bởi MIPS Technologies (trước đây là MIPS

Computer Systems, Inc.)

Được xác định bởi quá

trình hiện thực bộ xử lý

Page 6: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 6/96

Page 7: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 7/96

Page 8: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 8/96

CE  Giới thiệu

8

Hình ảnh datapath của một bộ xử lý với 8 lệnh MIPS: add, sub, AND, OR, slt,

lw, sw vàbeq 

Page 9: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 9/96

CE  BỘ XỬ LÝ

Nội dung

1.  Giới thiệu

2.  Nhắc lại các quy ước thiết kế logic

3. Xây dựng đường dữ liệu (datapath) đơn giản

4.  Hiện thực datapath đơn chu kỳ

9

Page 10: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 10/96

CEQuy ước thiết kế

10

Phần này nhắc lại các khái niệm:

 Mạch tổ hợp (Combinational): ALU

 Mạch tuần tự (Sequential): instruction/data memories và thanh ghi

Tín hiệu điều khiển (Control signal)

Tín hiệu dữ liệu (Data signal)

Asserted (assert): Khi tín hiệu ở mức cao hoặc ‘true’

Deasserted (deassert): Khi tín hiệu ở mức thấp hoặc ‘false’

Bus

Page 11: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 11/96

CE  BỘ XỬ LÝ

Nội dung

1.  Giới thiệu

2.  Nhắc lại các quy ước thiết kế logic

3. Xây dựng đường dữ liệu (datapath) đơn giản

4.  Hiện thực datapath đơn chu kỳ

11

Page 12: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 12/96

CE Quy trình thực thi lệnh

Instruction Fetch (tìm nạp lệnh): – Nạp lệnh từ bộ nhớ (memory)

 – Địa chỉ của lệnh lưu trong thanh ghi Program

Counter (PC)

Instruction Decode (giải mã lệnh):

 –  Tìm ra lệnh thực hiện

Operand Fetch (Tìm nạp toán hạn):

 – Lấy các toán hạng cần thiết cho lệnh

Execute (thực thi):

 – Thực hiện câu lệnh

Result Write (Store):

 – Lưu trữ kết quả

Inst ruct ion 

Fetch 

Inst ruct ion 

Decode 

Operand 

Fetch 

Execute 

Result 

Write 

   N  e  x   t   I  n  s   t  r  u  c   t   i  o  n

12

Page 13: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 13/96

CE MIPS Instruction Executions

3 giai đoạn thực thi lệnh trong 3 nhóm lệnh MIPS cơ bản

Giai đoạn Fetch and Decode không được hiển thị:

add $3, $1, $2 lw $3, 20( $1 )  beq $1, $2, label

Fetch &

Decode standard standard standard  

Operand

Fetch

oRead [$1] as opr1

oRead [$2] as opr2

oRead [$1] as opr1

oUse 20 as opr2

oRead [$1] as opr1

oRead [$2] as opr2

Execute  Result = opr1 + opr2

o MemAddr = opr1 + opr2

oUse MemAddr to read from

memory

Taken = (opr1 == opr2 )?

Target = PC + Label*

Result

Write Result stored in $3  Memory data stored in $3

if (Taken)

PC = Target 

opr = Operand

MemAddr = Memory Address

* = simplification, not exact

add $3, $1, $2 lw $3, 20( $1 )  beq $1, $2, label

13

Page 14: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 14/96

CE 5-STAGE MIPS EXECUTION

Thay đổi thiết kế các giai đoạn thực hiện lệnh: – Gộp giai đoạn Decode và Operand Fetch – Giai đoạn Decode khá đơn giản MIPS

 –  Tách giai đoạn Execute nto ALU (Calculation) and Memory Access 

add $3, $1, $2 lw $3, 20( $1 )  beq $1, $2, label

Fetch Read inst. at [PC] Read inst. at [PC] Read inst. at [PC]

Decode &

Operand

Fetch

oRead [$1] as opr1

oRead [$2] as opr2

oRead [$1] as opr1

oUse 20 as opr2

oRead [$1] as opr1

oRead [$2] as opr2

ALU  Result = opr1 + opr2 MemAddr = opr1 + opr2Taken = (opr1 == opr2 )?

Target = PC + Label*

Memory

Access

Use MemAddr to read from

memory

Result

Write Result stored in $3  Memory data stored in $3

if (Taken)

PC = Target 

add $3, $1, $2 lw $3, 20( $1 )  beq $1, $2, label

14

Page 15: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 15/96

CE

Instruction Fetch (Nạp lệnh)

Instruction Decode & Operand Fetch

(Giải mã và lấy các toán hạng cần thiết, Gọi tắt là

“Instruction Decode”)

ALU (Giai đoạn sử dụng ALU hay giai đoạn thựcthi)

Memory Access (Giai đoạn truy xuất vùng nhớ )

Result Write (Giai đoạn ghi lại kết quả/lưu trữ )

Fetch 

Inst ruct ion 

Decode 

ALU 

Memory

Access 

Result

Write

   N  e  x   t   I  n  s   t  r  u  c   t   i  o  n

15

Quy trình thực thi lệnh của MIPS (5 công đoạn)

Page 16: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 16/96

Page 17: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 17/96

CE Giai đoạn tìm nạp lệnh (Instruction Fetch)

Instruction Fetch Stage:

1.   Sử dụng thanh ghi Program Counter (PC) để tìm nạp lệnhtừ bộ nhớ 

• Thanh ghi PC là một thanh ghi đặc biệt trong bộ vi xử lý

2.   Tăng giá trị trong thanh ghi PC lên 4 đơn vị để lấy địa chỉcủa lệnh tiếp theo

• Tại sao địa chỉ lệnh tiếp theo là PC + 4?

• Chú ý, lệnh rẽ nhánh ( branch) và lệnh nhảy ( jump) là một trường

hợp ngoại lệ

 Kết quả của giai đoạn này là đầu vào cho giai đoạntiếp theo (Decode):

 – Lệnh sẽ được thực thi   17

Page 18: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 18/96

CE Fetch Stage: Block Diagram

Add

PC

4

Readaddress

Instruction

 Instructionmemory 

A register 

Memory which

stores program

instructions

A simple

adder 

D e  c  o d  e  S  t   a g e 

Instruction

18

Page 19: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 19/96

CE

Memory

Instruction Memory

Đóng vai trò lưu trữ lệnh –  Has an internal state that stores information

Cung cấp địa chỉ của lệnh – Giả sử M là giá trị địa chỉ đầu vào của lệnh M

thì bộ nhớ sẽ xuất ra kết quả là nội dung củalệnh tại địa chỉ đó

 –  Cách sắp xếp của bộ nhớ giống như hình bên

 phải

 InstructionMemory 

InstructionAddress

Instruction

2048

20522056 andi $1, $4, 0xF

sll $4, $3, 2

add $3, $1, $2

……

………..

………..

19

Page 20: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 20/96

CE Adder 

Mạch logic kết hợp để cộng 2 số

Đầu vào:

 –  Hai số 32-bit A, B

Đầu ra: –  A + B

Sum Add 

A

B

A+B

20

Page 21: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 21/96

CE The Idea of Clocking

Dường như thanh ghi PC được đọc và cập nhật cùng lúc:

 –  PC hoạt động chính xác như thế nào?

Magic of clock :

 –  PC được đọc trong nửa clock đầu và cập nhật thành PC+4 trong

lần kích thích cạnh lên tiếp

Add

PC

4

Readaddress

Instruction

 Instructionmemory 

In Clk

Time

PC   100 104 108 112

In   104 108 112   116

21

Page 22: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 22/96

Page 23: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 23/96

CE Giai đoạn Decode

Instruction Decode Stage:

 – Lấy nội dung dữ liệu trong các trường (field) của lệnh:

1.   Đọc opcode để xác định kiểu lệnh và chiều dài của các

2.   Đọc dữ liệu từ các thanh ghi cần thiết• Có thể 2 ( lệnh add ), 1 (lệnh addi) hoặc 0 (lệnh j)

Đầu vào từ giai đoạn trước (Fetch):

 –  Instruction to be executed

Đầu ra cho giai đoạn tiếp theo (Execute): –  Operation and the necessary operands

23

Page 24: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 24/96

CE Decode Stage: Block Diagram

F  e  t   c h  S  t   a g

 e 

Inst.

Readregister 1

Readregister 2

Writeregister

Readdata 1

Readdata 2

Data

Register

Number

Register File

5

5

5

Ex e  c  u t   e  S  t   a

 g e 

Operands

Collection ofregisters, known as

register file

24

Page 25: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 25/96

CE Register File

Một tập 32 thanh ghi:

 – Mỗi thanh ghi có chiều dài 32 bit và có thể được đọc hoặc ghi bằng cáchchỉ ra chỉ số của thanh ghi

 – Với mỗi lệnh, cho phép đọc nhiều nhất từ 2 thanh ghi

 – Với mỗi lệnh, cho phép ghi vào nhiều nhất một thanh ghi

RegWrite : là một tín hiệu điều khiển nhằm mục đích:

 –  Cho phép ghi vào một thanh ghi hay không

 –  1(True) = Write, 0 (False) = No Write

Readregister 1

Readregister 2

Writeregister

Writedata

Readdata 1

Readdata 2

RegWrite

Data

Data

RegisterNumber Register 

File

5

5

5

25

Page 26: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 26/96

CE Decode Stage: R-Type Instruction

 o p c o d  e

 3 1 

 :2 

 6 

r s

2  5  :2 

r t

2  0  :1 

 6 

r d 

1  5  :1 1 

 sh  am

 t

1  0  : 6 

f  un

 c t

 5  : 0 

 0  0  0  0  0  0 

 0 1 

 0  0 

 0 1 

 0 1 

 0 

 0 1 

 0  0  0 

 0  0  0  0  0 

1  0  0  0  0  0 

Readregister 1

Readregister 2

Writeregister

Writedata

Read

data 1

Readdata 2

RegWrite

Register File

5

5

5

content of

register $9

content ofregister $10

Result to be stored

(produced by later

stage)

Inst [25:21]

Notation:

Inst [Y:X]

= bits X to Y in Instruction

26

add $8, $9, $10

Page 27: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 27/96

CE Decode Stage: I-Type Instruction

 0  0 1 

 0  0  0 

1  0 1 1 

 0 

1  0 

1  0 1 

1 1 1 1 

1 1 1 1 

1 1 

 0  0 

1 1 1 

 0 

Readregister 1

Readregister 2

Writeregister

Writedata

Readdata 1

Readdata 2

RegWrite

Register File

5

5

5

Content ofregister $22

Imm

 e d i 

 a t e

1  5  : 0 

 o p c o d  e

 3 1 

 :2 

 6 

r s

2  5  :2 1 

r t

2  0 

 :1  6 

Inst [25:21]

27

addi $21, $22, -50

Problems:

- Thanh ghi đích $21 “đặt không đúng vị trí”- Read Data 2 là một hằng số, không phải đọc từ thanh ghi

Page 28: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 28/96

Decode Stage: Choice in Destination

28

 0  0 1 

 0  0  0 

1  0 1 1 

 0 

1  0 

1  0 1 

1 1 1 1 

1 1 1 1 

1 1 

 0  0 

1 1 1 

 0 

Readregister 1

Readregister 2

Writeregister

Writedata

Readdata 1

Readdata 2

Register File

5

5

5

Imm

 e d i 

 a t e

1  5  : 0 

 o p c o d  e

 3 1 

 :2 

 6 

r s

2  5  :2 1 

r t

2  0 

 :1  6 

Inst [25:21]

Inst [15:11]

M

U

X

RegDst

RegDst:

A control signal to choose either

Inst[20:16] or Inst[15:11] as the

write register number 

addi $21, $22, -50

Solution (Wr. Reg. No.):Sử dụng một multiplexer  để lựa

chọn chỉ số thanh ghi cho ngõ write

register chính xác dựatrên từng loại lệnh

Page 29: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 29/96

CE Multiplexer 

Chức năng:

 – Chọn một input từ tập input đầu vào

Inputs:

 –  n  đường vào có cùng chiều rộng

Control:

 –  Cần m bit trong đó n = 2m

Output:

 – Chọn đường input thứ I nếu giá trị tín hiệu điều khiển control=i

Control=0 select in0

Control=3 select in3

in0

inn-1

out

Control

m

.

.

.

M

UX

29

Page 30: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 30/96

Decode Stage: Choice in Data 2

30

 0  0 

1  0  0  0 

1  0 1 1 

 0 

1  0 1 

 0 1 

1 1 1 1 

1 1 1 1 

1 1 

 0  0 

1 1 1 

 0 

Readregister 1

Readregister 2

Writeregister

Writedata

Readdata 1

Readdata 2

5

5

5

Imm

 e d i 

 a t e

1  5  : 0 

 o p

 c o d  e

 3 1 

 :2 

 6 

r s

2  5  :2 1 

r t

2  0  :1 

 6 

Inst [25:21]

Inst [15:11]

M

U

X

RegDst

Inst [15:0]

M

U

X

 ALUSrc

RegWrite

Sign

Extend16   32

Register File

 ALUSrc:

A control signal tochoose either

"Read data 2" or

the sign extended

Inst[15:0] as the

second operand

addi $21, $22, -50

Solution (Rd. Data 2):Sử dụng một multiplexer để chọn chính xác toán hạng thứ 2.

Sign extend: the 16-bit immediate value to 32-bit

Page 31: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 31/96

CE Decode Stage: Load Word Instruction

1  0  0  0 1 1 

1  0 1 1 

 0 

1  0 1 

 0 1 

1 1 1 1 

1 1 1 1 

1 1 

 0  0 

1 1 1 

 0 

Readregister 1

Readregister 2

Writeregister

Writedata

Readdata 1

Readdata 2

5

5

5

Imm

 e

 d i  a t e

1  5 

 : 0 

 o p c o d  e

 3 1 

 :2 

 6 

r s

2  5  :2 1 

r t

2  0  :1 

 6 

Inst [25:21]

Inst [15:11]

Xem ví dụ sau: "lw $21, -50($22)"

 –  Có cần phải thay đổi thành phần nào?

M

U

X

RegDst

Inst [15:0]

M

U

X

 ALUSrc

RegWrite

Sign

Extend16   32

Register File

31

Page 32: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 32/96

CE Decode Stage: Branch Instruction

 0  0  0 1 

 0  0 

 0 1 

 0  0 

 0  0  0  0  0 

 0  0  0  0 

 0  0 

 0  0 

 0  0  0  0 

 0  0 1 1 

Im

m e d i 

 a t e

1  5  : 0 

 o p c o d  e

 3 1 

 :2 

 6 

r s

2  5  :2 

r t

2  0  :1 

 6 

Example: " beq $9, $0, 3"

 – Cần tính kết quả rẽ nhánh và đích đến cùng một lúc ! – Giải quyết vấn đề này trong giai đoạn của ALU

Readregister 1

Readregister 2

Writeregister

Writedata

Read

data 1

Readdata 2

5

5

5

Inst [25:21]

Inst [15:11]

M

U

X

RegDst

Inst [15:0]

M

U

X

 ALUSrc

RegWrite

Sign

Extend16   32

Register File

32

D d St tổ kết

Page 33: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 33/96

CE Decode Stage: tổng kết

Readregister 1

Readregister 2

Writeregister

Writedata

Readdata 1

Readdata 2

Registers

5

5

5

Inst [25:21]

Inst [15:11]

M

U

X

RegDst

Inst [15:0]

M

U

X

 ALUSrc

RegWrite

SignExtend16   32

Operand 1

Operand 2

Inst[31:0]

33

Page 34: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 34/96

CE

Instruction Fetch (Nạp lệnh)

Instruction Decode & Operand Fetch

(Giải mã và lấy các toán hạng cần thiết, Gọi tắt là

“Instruction Decode”)

ALU (Giai đoạn sử dụng ALU hay giai đoạn thựcthi)

Memory Access (Giai đoạn truy xuất vùng nhớ )

Result Write (Giai đoạn ghi lại kết quả/lưu trữ )

Fetch 

Inst ruct ion 

Decode 

ALU 

Memory

Access 

Result

Write

   N  e  x   t   I  n  s   t  r  u

  c   t   i  o  n

34

Quy trình thực thi lệnh của MIPS (5 công đoạn)

S ê ầ

Page 35: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 35/96

CE ALU Stage: Yêu cầu

Instruction ALU Stage:

 –  ALU = Arithmetic-Logic Unit – Thực hiện các nhóm lệnh sau:

• Arithmetic (e.g. add , sub), Shifting (e.g. sll), Logical (e.g. and ,

or)

• Memory operation (e.g. lw, sw): tính toán địa chỉ

• Branch operation (e.g. bne, beq ): thực hiện so sánh các giá trị trên

thanh ghi và tính toán địa chỉ đích

Input from previous stage (Decode):

 –  Operation and Operand(s)

Output to the next stage (Memory):

 –  Calculation result

35

ALU S Bl k Di

Page 36: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 36/96

CE ALU Stage: Block Diagram

ALUresult

 ALU 

D e  c  o d  e  S  t   a g e 

Operands

M e m or  y S  t   a

 g e 

Khối mạch thực

hiện các phép toánlogic và số học

36

Page 37: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 37/96

Thành phần: Arithmetic Logical Unit

ALU (Arithmetic-logical unit)

 – Sử dụng logic kết hợp để thực hiện cáctoán tử số học và logic

Inputs:

 –  2 số 32-bit

Control:

 –  4-bit để quyết định các toán tử đặc biệt

Outputs: – Kết quả của phép toán số học hoặc logic

 – Một bit tín hiệu để chỉ ra rằng kết quả có

 bằng 0 hay không

ALUresult

 ALU 

 ALUcontrol4

isZero?

ALUcontrol Function

0000 AND

0001 OR

0010 add

0110 subtract

0111 slt

1100 NOR

A

B A op B

(A op B) == 0?

37

ALU St N B h I t ti

Page 38: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 38/96

CE ALU Stage: Non-Branch Instructions

We can handle non-branch instructions easily:

Readregister 1

Readregister 2

Writeregister

Writedata

Read

data 1

Readdata 2

Register File

5

5

5

Inst [25:21]

Inst [15:11]

M

U

X

RegDst

Inst [15:0]

M

U

X

 ALUSrc

RegWrite

Sign

Extend16   32

ALUresult

 ALU 

 ALUcontrol

4

isZero?

 o p c o d  e

 3 1 

 :2 

 6 

r s

2  5  :2 

r t

2  0  :1 

 6 

r d 

1  5  :1 1 

 sh 

 am

 t

1  0  : 6 

f  un

 c t

 5  : 0 

 0  0  0  0  0  0 

 0 1 

 0  0 

 0 1 

 0 1 

 0 

 0 1 

 0  0  0 

 0  0  0  0  0 

1  0  0  0  0  0 

ALUcontrol:

Thiết lập giá trị cho

ALUcontrol cần sử dụngtrường opcode và funct

38

add $8, $9, $10

ALU St B h I t ti

Page 39: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 39/96

CE ALU Stage: Brach Instructions

Lệnh rẽ nhánh thì khó hơn vì phải tính toán hai phép toán:

Example: " beq $9, $0, 3"

1.   Kết quả rẽ nhánh:

• Sử dụng ALU để so sánh thanh ghi

• Tín hiệu 1-bit "isZero?“ để kiểm tra tính chất bằng/không bằng

2.   Địa chỉ đích của nhánh:

• Sử dụng một bộ cộng để tính địa chỉ

• Cần PC (từ Fetch Stage)• Cần Offset (từ Decode Stage)

39

Page 40: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 40/96

 0  0  0 1 

 0  0 

 0 1  0  0 1 

 0  0  0  0  0 

 0  0  0 

 0  0  0  0  0 

 0  0  0  0 

 0  0 1 1 

Imm

 e d i 

 a t e

1  5  : 0 

 o p c o d  e

 3 1 

 :2 

 6 

r s

2  5  :2 1 

r t

2  0  :1 

 6 

Readregister 1

Readregister 2

Writeregister

Write

data

Readdata 1

Readdata 2

Register File

5

5

5

Inst [25:21]

Inst [15:11]

M

U

X

RegDst

Inst [15:0]

M

UX

 ALUSrc

RegWrite

Sign

Extend16   32

ALUresult

 ALU 

 ALUcontrol4

isZero?

Left Shift

2-bit

PC   Add 

4

 Add 

MU

X

PCSrc

E.g. " beq $9, $0, 3"

Complete ALU Stage

40

PCSrc:Control Signal

to select

 between

(PC+4) or

Branch Target

Q t ì h th thi lệ h ủ MIPS (5 ô đ )

Page 41: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 41/96

CE

Instruction Fetch (Nạp lệnh)

Instruction Decode & Operand Fetch

(Giải mã và lấy các toán hạng cần thiết, Gọi tắt là

“Instruction Decode”)

ALU (Giai đoạn sử dụng ALU hay giai đoạn thựcthi)

Memory Access (Giai đoạn truy xuất vùng nhớ )

Result Write (Giai đoạn ghi lại kết quả/lưu trữ )

Fetch 

Inst ruct ion 

Decode 

ALU 

Memory

Access 

Result

Write

   N  e  x   t   I  n  s   t  r  u

  c   t   i  o  n

41

Quy trình thực thi lệnh của MIPS (5 công đoạn)

Memory Stage: Yêu cầu

Page 42: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 42/96

CE Memory Stage: Yêu cầu

Instruction Memory Access Stage:

 – Chỉ có lệnh Load và Store cần thực hiện các thao tác trong giai đoạnnày:

• Sử dụng địa chỉ vùng nhớ được tính toán ở giai đoạn ALU

• Đọc ra hoặc ghi vào vùng nhớ dữ liệu

 – Tất cả các lệnh khác sẽ rãnh trong giai đoạn này

Input from previous stage (ALU):

 – Kết quả tính toán được dùng làm địa chỉ vùng nhớ (nếu có thể ứngdụng)

Output to the next stage (Result Write): – Kết quả được lưu trữ lại (nếu có thể áp dụng)

42

M St Bl k Di

Page 43: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 43/96

CE Memory Stage: Block Diagram

AL U S  t   a g e 

Result

R e  s  ul   t   S  t   or  e  S 

 t   a g e 

Memory which

stores data values

Data

Memory 

Address

ReadData

WriteData

MemRead

MemWrite

43

Thành phần: Data Memory

Page 44: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 44/96

Thành phần: Data Memory

Thành phần lưu trữ dữ liệu của một chương

trình

Inputs:

 –  Address: Địa chỉ vùng nhớ 

 –  Write Data: Dữ liệu sẽ được ghi vào vùng nhớ đốivới lệnh Store

Control:

 –  Tín hiệu đọc (MemRead ) và ghi (MemWrite); chỉ

một tín hiệu được bật lên tại bất kì một thời điểmnào

Output:

 – Dữ liệu được đọc từ vùng nhớ đối với lệnh Load

DataMemory 

Address

ReadData

WriteData

MemRead

MemWrite

44

Memory Stage: Load Instructions

Page 45: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 45/96

CE Memory Stage: Load Instructions

Only relevant parts of Decode & ALU Stage are shown

 0  0  0 1 

 0  0 

 0 1 

 0  0 

 0  0  0  0  0 

 0  0  0  0 

 0  0  0  0 

 0  0  0  0 

 0  0 1 1 

Im

m e d i 

 a t e

1  5  : 0 

 o p c o d  e

 3 1 

 :2 

 6 

r s

2  5  :2 

r t

2  0  :1 

 6 

Inst [25:21]

Inst [15:11]

M

U

X

RegDst

Inst [15:0]

M

U

X

 ALUSrc

RR1

RR2

WR 

WD

RD1

RD2

Registers

5

5

5

RegWrite

Sign

Extend16   32

ALUresult

 ALU 

 ALUcontrol

4

1  0  0  0 1 1 

1  0 1 1 

 0 

1  0 1 

 0 1 

1 1 1 1 

1 1 1 1 

1 1 

 0  0 

1 1 1 

 0 

Address

WriteData

MemRead

MemWrite

DataMemory 

ReadData

45

lw $21, -50($22)

Memory Stage: Store Instructions

Page 46: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 46/96

CE Memory Stage: Store Instructions

 Need Read Data 2 (Decode) as the Write Data

 0  0  0 1 

 0  0 

 0 1 

 0  0 

 0  0  0  0  0 

 0  0  0  0 

 0  0  0  0 

 0  0  0  0 

 0  0 1 1 

Im

m e d i 

 a t e

1  5  : 0 

 o p c o d  e

 3 1 

 :2 

 6 

r s

2  5  :2 

r t

2  0  :1 

 6 

Inst [25:21]

Inst [15:11]

M

U

X

RegDst

Inst [15:0]

M

U

X

RR1

RR2

WR 

WD

RD1

RD2

Registers

5

5

5

RegWrite

Sign

Extend16   32

ALUresult

 ALU 

 ALUcontrol

4

1  0 1 

 0 1 1 

1  0 1 1 

 0 

1  0 1 

 0 1 

1 1 1 1 

1 1 1 1 

1 1 

 0  0 

1 1 1 

 0 

Address

WriteData

MemRead

MemWrite

DataMemory 

ReadData

46

sw $21, -50($22)

M St N M I t ti

Page 47: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 47/96

CE Memory Stage: Non-Memory Instructions

Add a multiplexer to choose the result to be stored

Inst [25:21]

Inst [15:11]

M

U

X

RegDst

Inst [15:0]

M

U

X

RR1

RR2

WR 

WD

RD1

RD2

Registers

5

5

5

RegWrite

Sign

Extend16   32

ALUresult

 ALU 

 ALUcontrol

4

DataMemory 

Address

ReadDataWriteData

MemWrite

 o p c o d  e

 3 1 

 :2 

 6 

r s

2  5  :2 1 

r t

2  0  :1 

 6 

r d 

1  5  :1 1 

 s

h  am

 t

1  0  : 6 

f  un

 c t

 5  : 0 

 0  0  0  0  0  0 

 0 1 

 0  0 1 

 0 1 

 0 1 

 0 

 0 1 

 0  0  0 

 0 

 0  0  0  0 

1  0  0  0  0  0 

MU

X

 MemToReg

47

 MemToReg:

Tín hiệu điều khiển giúp lựachọn giá trị lưu vào thanh ghi

là từ Read Data hay từ ALUresult

add $8, $9, $10

Quy trình thực thi lệnh của MIPS (5 công đoạn)

Page 48: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 48/96

CE

Instruction Fetch (Nạp lệnh)

Instruction Decode & Operand Fetch

(Giải mã và lấy các toán hạng cần thiết, Gọi tắt là

“Instruction Decode”)

ALU (Giai đoạn sử dụng ALU hay giai đoạn thựcthi)

Memory Access (Giai đoạn truy xuất vùng nhớ )

Result Write (Giai đoạn ghi lại kết quả/lưu trữ )

Fetch 

Inst ruct ion 

Decode 

ALU 

Memory

Access 

Result

Write

   N  e  x   t   I  n  s   t  r  u

  c   t   i  o  n

48

Quy trình thực thi lệnh của MIPS (5 công đoạn)

Result Write Stage: yêu cầu

Page 49: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 49/96

CE Result Write Stage: yêu cầu

Instruction Register Write Stage:

 – Những lệnh ghi kết quả của các phép toán vào một thanh ghi• Ví dụ: số học, logic, shifts, load, set-less-than

• Cần số thanh ghi đích và kết quả tính toán

 –  Các ngoại lệ là lệnh store, branche, jump:

• Không có ghi kết quả

 Những lệnh này không thực hiện gì trong giai đoạn này

Input from previous stage (Memory):

 – Kết quả tính toán từ memory or ALU

49

K t quả của giai đoạn Write: Block

Page 50: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 50/96

CEK t quả của g  đoạn

Diagram

Công đoạn Result Write không có thêm bất kỳ thành phần nào

khác:

 – Chỉ đơn giản đưa kết quả vào thanh ghi (ngõ Write data của khốiRegisters/Register file)

 – Chỉ số của thanh ghi được ghi vào (ngõ vào Write Register)  được sinh

ra trong giai đoạn Decode Stage

M e m or  y S  t   a g e 

Result

Readregister 1

Readregister 2

Writeregister

Readdata 1

Readdata 2

Registers

5

5

5

Writedata

50

Result Write Stage: Định tuyến(routing)

Page 51: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 51/96

Result Write Stage: Định tuyến(routing)

51

Inst [25:21]

Inst [15:11]

M

U

X

Inst [15:0]

M

U

X

RR1

RR2

WR 

WD

RD1

RD2

Registers

5

5

5

RegWrite

Sign

Extend

ALUresult

 ALU 

 ALUcontrol

4

DataMemory 

Address

ReadData

Write

Data

 MemWrite

 o p c o d  e

 3 1 

 :2 

 6 

r s

2  5  :2 1 

r t

2  0  :1 

 6 

r d 

1  5  :1 1 

 sh 

 am

 t

1  0  : 6 

f  un

 c t

 5  : 0 

 0  0  0  0  0  0 

 0 1 

 0  0 1 

 0 1 

 0 1 

 0 

 0 1 

 0  0  0 

 0  0  0  0  0 

1  0  0  0  0  0 

M

UX

 MemToReg

add $8, $9, $10

Page 52: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 52/96

Inst [25:21]

Inst [15:11]

M

UX

Inst [15:0]

M

U

X

RR1

RR2

WR 

WD

RD1

RD2

Registers

5

5

5

RegWrite

Sign

Extend

ALUresult

 ALU 

ALUcontrol4

DataMemory 

Address

ReadData

WriteData

MemWrite

 o p c o d  e

 3 1 

 :2 

 6 

r s

2  5  :2 1 

r t

2  0  :1 

 6 

r d 

1  5 

 :1 1 

 sh 

 am

 t

1  0  : 6 

f  un

 c t

 5  : 0 

 0  0  0  0  0  0 

 0 1 

 0  0 1 

 0 1 

 0 1 

 0 

 0 1 

 0  0  0 

 0  0  0  0  0 

1  0  0  0  0 

 0 

Left Shift

2-bit

PC   Add 

4

 Add 

M

U

X

PCSrc

 InstructionMemory 

is0?

Address

Instruction

RegDst

MemRead

ALUSrc

 C om pl   e  t   e D a t   a p a t  h 

MemToReg

M

U

X

52

Bài tập

Page 53: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 53/96

CE Bài tập

Cho các lệnh sau, dựa vào sơ đồ khối hình 4.2:

 –  AND Rd, Rs, Rt Reg[Rd] = Reg[Rs] AND Reg[Rt]

 –  SW Rt,Offs(Rs) Mem[Reg[Rs] + Offs] = Reg[Rt]

Xác định các giá trị tín hiệu cho từng lệnh trên

Các khối sử dụng thực hiện cho lệnh trên.

53

Bài tập

Page 54: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 54/96

CE Bài tập

Different execution units and blocks of digital logic have

different latencies (time needed to do their work). In Figure4.2 there are seven kinds of major blocks. Latencies of blocks

along the critical (longest-latency) path for an instruction

determine the minimum latency of that instruction. For the

remaining three problems in this exercise, assume thefollowing resource latencies:

What is the critical path for an MIPS AND instruction?

What is the critical path for an MIPS load (LW) instruction?

What is the critical path for an MIPS BEQ instruction?

54

BỘ XỬ LÝ

Page 55: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 55/96

CE  BỘ XỬ LÝ

Nội dung phần 1

1.  Giới thiệu

2.  Nhắc lại các quy ước thiết kế logic

3. Xây dựng đường dữ liệu (datapath) đơn giản

4.  Hiện thực datapath đơn chu kỳ

55

Hiện thực datapath

Page 56: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 56/96

CE  Hiện thực datapath

56Datapath với đầy đủ dữ liệu input cho từng khối

????

1. Inputs của khối “Registers”, “Control” và “Sign-extend”

Hiện thực datapath

Page 57: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 57/96

CE  Hiện thực datapath

57

Trường op (hay opcode) luôn chứa bits từ 31:26.

Hai thanh ghi dùng để đọc trong tất cả các lệnh luôn luôn là rs và rt, tại vị trí bits từ 25:21

và 20:26.

Thanh ghi nền cho lệnh load và store luôn là rs và tại vị trí bits 25:21.

16 bits offset cho beq, lw và sw thì luôn tại vị trí 15:0.

Các thanh ghi đích dùng để ghi kết quả vào ở hai vị trí: Với lw, thanh ghi đích tại vị trí

 bits từ 20:16 (r t ), trong khi với nhóm lệnh logic và số học, thanh ghi đích ở vị trí 15:11

(rd ). Vì vậy, một multiplexor cần sử dụng ở đây để lựa chọn thanh ghi nào sẽ được ghi.

Hiện thực datapath

Page 58: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 58/96

CE  Hiện thực datapath

58 Datapath với đầy đủ dữ liệu input cho từng khối

CEHiện thực datapath

Page 59: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 59/96

CE  Hiện thực datapath

59

2. Khối “ALU Control”

????

CEHiện thực datapath

Page 60: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 60/96

CE  Hiện thực datapath

60

Bộ ALU của MIPS gồm 6 chức năng tính toán dựa trên 4 bits điều khiển đầu vào:

Tùy thuộc vào từng nhóm lệnh mà ALU sẽ thực hiện 1 trong 5 chức năng đầu(NOR sẽ được dùng cho các phần khác)

  Với các lệnh load word và store word, ALU sử dụng chức năng ‘add’ đểtính toán địa chỉ của bộ nhớ 

  Với các lệnh thuộc nhóm logic và số học, ALU thực hiện 1 trong 5 chứcnăng (AND, OR, subtract, add, và set on less than ), tùy thuộc vào giá trịcủa trường funct (6 bits) trong mã máy lệnh.

 Với lệnh nhảy nếu bằng, ALU thực hiện chức năng ‘subtract’ để xem điều

khiện bằng có đúng không.

CEHiện thực datapath

Page 61: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 61/96

CE  Hiện thực datapath

61

 Như vậy, để sinh ra 4 bits điều khiển ALU, một trong số các cách hiện thực có thể là sử

dụng thêm một khối điều khiển “ALU Control”“ALU Control” nhận input là 6 bits từ trường funct  của mã máy, đồng thời dựa vào 2 bits

“ALUOp” được sinh ra từ khối “Control” để sinh ra output là 4 bits điều khiển ALU, theo

quy tắc như bảng sau:

 Một gợi ý để  sinh ra 4 bits điều khiển ALU dựa vào trường “opcode” và trường “ funct ” của mã máy.

CEHiện thực datapath

Page 62: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 62/96

CE  Hiện thực datapath

62

Bảng sự thật: Từ quy tắc hoạt động, bảng sự thật gợi ý cho khối “ALU Control” như sau

CEHiện thực datapath

Page 63: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 63/96

CE  Hiện thực datapath

63

3. Khối điều khiển chính “Control”

???

CEHiện thực datapath

Page 64: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 64/96

CE  Hiện thực datapath

64Tác động của các tín hiệu điều khiển

Tên tín hiệu điềukhiển

Tác động khi ở mứcthấp

Tác động khi ở mức cao

RegDst Thanh ghi đích cho thao tácghi sẽ từ thanh ghi rt (bits từ20:16)

Thanh ghi đích cho thao tác ghi sẽ từ thanh ghi rd (bits từ 15:11)

RegWrite   Khối “Registers” chỉ thựchiện mỗi chức năng đọc thanh

ghi

 Ngoài chức năng đọc, khối “Register” sẽ thực hiện thêm chức năngghi. Thanh ghi được ghi là thanh ghi có chỉ số được đưa vào từ ngõ

“Write register” và dữ liệu dùng ghi vào thanh ghi này được lấy từngõ “Write data”

ALUSrc Input thứ hai cho ALU đến từ

“Read data 2” của khối“Registers”

Input thứ hai cho ALU đến từ output của khối “Sign-extend”

Branch Cho biết lệnh nạp vào không

 phải “ beq”. Thanh ghi PC

nhận giá trị là PC + 4

Lệnh nạp vào là lệnh “ beq”, kết hợp với điều kiện bằng thông qua

cổng AND nhằm xác định xem lệnh tiếp theo có nhảy đến địa chỉmới hay không. Nếu điệu kiện bằng đúng, PC nhận giá trị mới từ kếtquả của bộ cộng “Add”

MemRead (Không)   Khối “Data register” thực hiện chức năng đọc dữ liệu. Địa chỉ dữliệu cần đọc được đưa vào từ ngõ “Address” và nội dung đọc được

xuất ra ngõ “Read data”

MemWrite (Không)   Khối “Data register” thực hiện chức năng ghi dữ liệu. Địa chỉ dữliệu cần ghi được đưa vào từ ngõ “Address” và nội dung ghi vào lấytừ ngõ “Write data”

MemtoReg Giá trị đưa vào ngõ “Writedata” đến từ ALU

Giá trị đưa vào ngõ “Write data” đến từ khối “Data memory”

CE  Hiện thực datapath

Page 65: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 65/96

CEệ ự p

65

Giá trị các tín hiệu điều khiển tương ứng với mỗi lệnh như sau:

 Khối “Control” trong datapath nhận input là 6 bits từ trường “opcode” của mã máy, dựavào đó các tín hiệu điều khiển được sinh ra tương ứng như bảng .

CE  Hiện thực datapath

Page 66: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 66/96

CEệ ự p

66

Bảng sự thật khối “Control”:

 Bảng sự thật khối “Control”

CE  Hiện thực datapath

Page 67: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 67/96

CEệ ự p

67

  Hiện thực bộ xử  lý  đơn chu  kỳ (Single-cycle implementation hay single

clock cycle implementation): là cách hiện thực sao cho bộ xử lý đáp ứng thựcthi mỗi câu lệnh chỉ trong 1 chu kỳ xung clock  đòi hỏi chu kỳ xung clock  phải bằng thời gian của lệnh dài nhất.

Cách hiện thực bộ xử lý như đã trình bày trên là cách hiện thực đơn chu kỳ:

Lệnh dài  nhất là lw,  gồm truy  xuất vào “Instruction memory”, “Registers”, “ALU”,“Data memory” và quay trở lại “Registers”, trong khi các lệnh khác không đòi hỏi tấtcả các công đoạn trên chu kỳ xung clock  thiết kế phải bằng thời gian thực thi lệnhlw.

  Mặc dù hiện thực bộ xử lý đơn chu kỳ có CPI = 1 nhưng hiệu suất rất kém, vì

một chu kỳ xung clock quá dài, các lệnh ngắn đều phải thực thi cùng thời gianvới lệnh dài nhất.Vì vậy, Hiện thực đơn chu kỳ hiện tại không còn được sử dụng (hoặc chỉcó thể chấp nhận cho các tập lệnh nhỏ)

CE

Page 68: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 68/96

CE

68

Xem lại Datapath với từng nhóm lệnh

Các đường đậm nét là các đường hoạt động khi lệnh thuộc nhóm logic và số học thực thi

CE

Page 69: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 69/96

CE

69

Xem lại Datapath với từng nhóm lệnh

Các đường đậm nét là các đường hoạt động khi lệnh lw  thực thi

CE

Page 70: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 70/96

CE

70

Xem lại Datapath với từng nhóm lệnh

Các đường đậm nét là các đường hoạt động khi lệnh beq  thực thi

CE   Exercise

Page 71: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 71/96

CE

Different instructions require different control signals to be

asserted in the datapath. The remaining problems in thisexercise refer to the following two control signals:

What is the value of these two signals for this instruction?

71

CE   Exercise

Page 72: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 72/96

CE

In this exercise we examine how the clock cycle time of the

 processor affects the design of the control unit, and vice versa.

Problems in this exercise assume that the logic blocks used toimplement the datapath have the following latencies:

To avoid lengthening the critical path of the datapath shown inFigure 4.24, how much time can the control unit take to generate

the MemWrite signal?

Which control signal in Figure 4.24 has the most slack and how

much time does the control unit have to generate it if it wants toavoid being on the critical path?

Which control signal in Figure 4.24 is the most critical to

generate quickly and how much time does the control unit have

to generate it if it wants to avoid being on the critical path? 72

CE   Exercise

Page 73: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 73/96

CE

The remaining problems in this exercise assume that the time

needed by the control unit to generate individual controlsignals is as follows

What is the clock cycle time of the processor?

If you can speed up the generation of control signals, but the

cost of the entire processor increases by $1 for each 5ps

improvement of a single control signal, which control signalswould you speed up and by how much to maximize

 performance? What is the cost (per processor) of this

 performance improvement?

73

CE   Exercise

Page 74: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 74/96

CE

The remaining problems in this exercise assume that the time

needed by the control unit to generate individual controlsignals is as follows

If the processor is already too expensive, instead of paying to

speed it up as we did in 4.10.5, we want to minimize its cost

without further slowing it down. If you can use slower logic to

implement control signals, saving $1 of the processor cost foreach 5ps you add to the latency of a single control signal,

which control signals would you slow down and by how much

to reduce the processor’s cost without slowing it down?

74

CE   Exercise

Page 75: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 75/96

CE

In this exercise we examine in detail how an instruction is

executed in a single-cycle datapath. Problems in this exerciserefer to a clock cycle in which the processor fetches the

following instruction word:

What are the outputs of the sign-extend and the jump “Shiftleft 2” unit (near the top of Figure 4.24) for this instruction

word?What are the values of the ALU control unit’s inputs for this

instruction?

What is the new PC address after this instruction is executed?

Highlight the path through which this value is determined.   75

CE KIẾN TRÚC MÁY TÍNH

Page 76: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 76/96

CE

CHƯƠNG 4

BỘ XỬ LÝ (THE PROCESSOR)

Phần 1. Xây dựng đường dữ liệu (Datapath)

Phần 2. Kỹ thuật ống dẫn (Pipeline)

76

CE  Kỹ thuật ống dẫn (pipeline)

Page 77: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 77/96

CE

Pipeline là một kỹ thuật mà trong đó các lệnh được thực thi theo kiểu chồng lắp lên

nhau.

Ví dụ minh họa hoạt động như thế nào là không pipeline hay pipeline:

•  Giả sử một phòng có nhiều người, mỗi người đều cần giặt quần áo bẩn của mình.

Quá trình giặt quần áo bao gồm 4 công đoạn:

1.  Đặt quần áo bẩn vào máy giặt để giặt

2. Khi máy giặt hoàn thành, đưa quần áo ướt vào máy sấy3. Khi máy sấy hoàn thành, đặt quần áo khô lên bàn và ủi4. Khi ủi hoàn tất, xếp quần áo vào tủ

 Nếu một người hoàn tất tất cả các công đoạn giặt quần áo (xong công đoạn ủi, xếpquần áo vào tủ) thì người khác mới bắt đầu ( bắt đầu đặt quần áo bẩn vào máy giặt),quá trình thực hiện này gọi là không pipeline.

Tuy nhiên, rõ ràng rằng khi người trước hoàn thành công đoạn 1, sang công đoạn 2

thì máy giặt đã trống, lúc này người tiếp theo có thể đưa quần áo bẩn vào giặt. Nhưvậy, người tiếp theo không cần phải chờ người trước xong công đoạn thứ 4 mới có

thể bắt đầu, mà ngay khi người trước đến công đoạn thứ 2 thì người tiếp theo đã có

thể bắt đầu công đoạn thứ nhất và cứ tiếp tục như vậy. Quá trình thực hiện chồng lắp

này gọi là pipeline. 77

CE  Kỹ thuật ống dẫn (pipeline)

Page 78: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 78/96

CE

78

 Hình ảnh 4 người A, B, C, D giặt quần áo theo kiểu tiếp cận không pipeline (hình trên) và

 pipeline (hình dưới )

CE  Kỹ thuật ống dẫn (pipeline)

Page 79: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 79/96

79

- Cách tiếp cận dùng kỹ thuật  pipeline tiêu tốn ít thời gian hơn cho tất cả các công việchoàn tất bởi vì các công việc được thực hiện song song, vì vậy số công việc hoàn thành

trong một giờ sẽ nhiều hơn so với không pipeline.

- Chú ý, pipeline không làm giảm thời gian hoàn thành một công việc mà làm giảm thờigian hoàn thành tổng số công việc (như trong ví dụ trên, thời gian cho người A hoàn thành

việc giặt khi áp dụng  pipeline hay không pipeline đều là 2 giờ , nhưng tổng số giờ  cho 4

người A, B, C và D hoàn thành dùng pipeline giảm rất nhiều so với không pipeline)

Page 80: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 80/96

CEAn Overview of Pipelining

Page 81: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 81/96

1. Nạp lệnh từ bộ nhớ − IF

2. Giải mã lệnh và đọc các thanh ghi − ID

3. Thực thi − EX

4. Truy xuất bộ nhớ − MEM

5. Ghi kết quả vào thanh ghi − WB81

CE  Kỹ thuật ống dẫn (pipeline)

Page 82: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 82/96

- Xét một bộ xử lý với 8 lệnh cơ bản: load word (lw ), store word (sw ), add (add ),

subtract (sub ), AND (and ), OR (or ), set less than (slt ), và nhảy với điều kiện bằng (beq ).

-   Giả sử thời gian hoạt động các công đoạn như sau: 200 ps cho truy xuất bộ nhớ ,200 ps cho tính toán của ALU, 100 ps cho thao tác đọc/ghi thanh ghi

- So sánh thời gian trung bình giữa các lệnh của hiện thực đơn chu kỳ và pipeline.

82

CE  Kỹ thuật ống dẫn (pipeline)

Page 83: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 83/96

83

Ví  dụ hình ảnh 3 lệnh lw thực hiện theo kiểu không pipeline, đơn chu kỳ (hình trên) và có

 pipeline (hình dưới )

Thời gian giữa lệnh thứ nhất và thứ tư trong không pipeline là 3 x 800 = 2400 ps, nhưng

trong pipeline là 3 x 200 = 600 ps

CE  Kỹ thuật ống dẫn (pipeline)

Page 84: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 84/96

Sự tăng tốc của pipeline

Trong trường hợp lý tưởng: khi mà các công đoạn pipeline hoàn toàn bằng nhau thì

thời gian giữa hai lệnh liên tiếp được thực thi trong pipeline bằng:

84

 Như vậy , trong ví  dụ trên, thời gian giữa hai lệnh liên tiếp có pipeline bằng 160 ps (800:5 = 160)

 

Trong trường hợp lý tưởng, pipeline sẽ tăng tốc so với không pipeline với số lần đúngbằng số tầng của pipeline.

Trong thực tế: Các công đoạn thực tế không bằng nhau, việc áp dụng pipeline phải chọncông đoạn dài nhất để làm một chu kỳ pipeline.

Vì vậy, trong ví dụ trên, thời gian liên tiếp giữa hai lệnh pipeline là 200 ps. Và áp dụng pipeline tăng tốc gấp 4 lần so với không pipeline.

Speed-up ≈ Thời gian giữa hai lệnh liên tiếp không pipeline : Thời gian giữa hai lệnh liên tiếp pipeline

≈ 800 : 200 = 4 < 5 (number pipeline stages)

  Trong thực tế, pipeline sẽ tăng tốc so với không pipeline với số lần nhỏ hơn số tầng

của pipeline.

CE  Kỹ thuật ống dẫn (pipeline)

Page 85: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 85/96

Lưu ý, pipeline tăng tốc so với không pipeline:

Kỹ thuật pipeline không giúp giảm thời gian thực thi của từng lệnh riêng lẽ mà

giúp giảm tổng thời gian thực thi của đoạn lệnh/chương trình chứa nhiều lệnh (từ

đó giúp thời gian trung bình của mỗi lệnh giảm)

Việc giúp giảm thời gian thực thi cho nhiều lệnh vô cùng quan trọng, vì các

chương trình chạy trong thực tế thông thường lên đến hàng tỉ lệnh.

85

CE  Kỹ thuật ống dẫn (pipeline)

Page 86: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 86/96

Quy ước trình bày 5 công đoạn thực thi một lệnh của pipeline:

86

Lưu ý cách vẽ hình các công đoạn pipeline như sau:

Khối tô đen hoàn toàn hoặc để trắng hoàn toàn: Trong mỗi công đoạn  pipeline, nếulệnh thực thi không làm gì trong công đoạn này sẽ được tô trắng, ngược lại sẽ được tô

đen.

Ví  dụ lệnh “add” có EX  đen và MEM  trắng tức lệnh này có tính toán trong công đoạn EX và không truy xuất bộ nhớ dữ liệu trong công  đoạn MEM.

Các công đoạn liên qua đến bộ nhớ và thanh ghi có thể tô nữa trái hoặc nữa phải đen:

 Nếu nữa phải tô đen, tức công đoạn đó đang thực hiện thao tác đọc; ngược lại nếu nữatrái tô đen, công đoạn đó đang thực hiện thao tác ghi.

CE  Kỹ thuật ống dẫn (pipeline)

Page 87: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 87/96

Hình ảnh datapath có hỗ trợ pipeline

87

CE  Kỹ thuật ống dẫn (pipeline)

Page 88: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 88/96

Các xung đột có thể xảy ra khi áp dụng kỹ thuật pipeline (Pipeline Hazards):

Xung đột là trạng thái mà lệnh tiếp theo không thể thực thi trong chu kỳ pipelinengay sau đó (hoặc thực thi nhưng sẽ cho ra kết quả sai), thường do một trong ba

nguyên nhân sau:

88

Xung đột cấu trúc (Structural hazard): là khi một lệnh dự kiến không thểthực thi trong đúng chu kỳ pipeline của nó do phần cứng cần không thể hỗ trợ .

 Nói cách khác, xung đột cấu trúc xảy ra khi có hai lệnh cùng truy xuất vào mộttài nguyên phần cứng nào đó cùng một lúc.

Xung đột dữ liệu (Data hazard): là khi một lệnh dự kiến không thể thực thi

trong đúng chu kỳ  pipeline của nó do dữ liệu mà lệnh này cần vẫn chưa sẵn

sàng.

Xung  đột điều khiển (Control/Branch hazard): là khi  một lệnh dự kiếnkhông thể thực thi trong đúng chu kỳ  pipeline của nó do lệnh nạp vào không

 phải là lệnh được cần. Xung đột này xảy ra trong trường hợp luồng thực thi

chứacác

 lệnh nhảy.

CE  Kỹ thuật ống dẫn (pipeline)

Page 89: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 89/96

Xung đột cấu trúc

89

Ví dụ về xung đột cấu trúc:

Giả sử rằng chúng ta có một bộ nhớ đơn duy nhất thay vì hai bộ nhớ lệnh và dữ liệu rờirạc nhau.  Nếu  pipeline trong ví dụ ở  hình trên có thêm lệnh thứ tư thì trong chu kỳ

 pipeline từ 600 tới 800 khi lệnh thứ nhất thực hiện truy xuất bộ nhớ lấy dữ liệu thì lệnh

thứ tư sẽ thực hiện truy xuất bộ nhớ lấy lệnh. Do không có bộ nhớ lệnh và dữ liệu riêng

lẽ, trong trường hợp này sẽ có xung đột cấu trúc xảy ra.

CE  Kỹ thuật ống dẫn (pipeline)

Page 90: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 90/96

Xung đột dữ liệu

Ví dụ cho đoạn lệnh sau: add $s0, $t0, $t1

 sub $t2, $s0, $t3

90

Trong ví dụ trên, nếu áp dụng pipeline bình thường thì công đoạn ID của lệnh sub sẽ thực

hiện cùng lúc với cộng đoạn EX của lệnh add . Trong công đoạn ID, lệnh  sub sẽ cần đọc

giá trị của thanh ghi $s0, trong khi đó giá trị mới của thanh ghi $s0 phải tới công đoạn WB

của lệnh add  mới sẵn sàng. Vì vậy, nếu thực hiện  pipeline thông thường, trường hợp nàysẽ xảy ra xung đột dữ liệu

Một cách giải quyết có thể trong trường hợp này là chờ thêm hai chu kỳ xung xung clock 

thì lệnh add mới được nạp vào

CE  Kỹ thuật ống dẫn (pipeline)

Page 91: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 91/96

Xung đột dữ liệu

Thay vì chờ một số chu kỳ đến khi dữ liệu cần sẵn sàng, một kỹ thuật có thể được áp

dụng để rút ngắn số chu kỳ rỗi, gọi là kỹ thuật nhìn trước (forwarding hay bypassing).

 Như trong ví dụ trước, thay vì chờ sau hai chu kỳ rỗi mới nạp lệnh add vào, ngay khi

ALU hoàn thành tính toán tổng cho lệnh add thì tổng này cũng được cung cấp ngay cho

công đoạn EX của lệnh  sub (thông qua một bộ đệm dữ liệu gắn thêm bên trong) đểALU tính toán kết quả cho sub nhanh.

Kỹ thuật nhìn trước: một phương pháp giải quyết xung đột dữ liệu bằng đưa thêm vào các

 bộ đệm phụ bên trong, các dữ liệu cần có thể được truy xuất từ bộ đệm này hơn là chờ đợiđến khi nó sẵn sàng trong bộ nhớ hay trong thanh ghi.

91

CE  Kỹ thuật ống dẫn (pipeline)

Page 92: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 92/96

Xung đột dữ liệu

Lưu ý, với lệnh lw và các lệnh có chức năng tương tự, thông thường kết quả của nó không

 phải khi hoàn tất công đoạn EX mà là khi hoàn tất công đoạn MEM.Xét ví dụ sau: lw $s0, 20($t1)

 sub $t2, $s0, $t3

92

Với lệnh lw, dữ liệu mong muốn sẽ chỉ sẵn sàng sau 4 chu kỳ pipeline (tức sau khi công đoạnMEM hoàn tất). Vì vậy, giả sử dữ liệu đầu ra của công đoạn MEM của lệnh lw được truyềntới đầu vào công đoạn EX của lệnh sub theo sau, thì lệnh sub vẫn phải chờ sau một chu kỳ rỗi

mới được nạp vào.

Kỹ thuật forwarding có thể hỗ trợ giải quyết xung đột dữ liệu hiệu quả, tuy nhiên nó không

thể ngăn chặn tất cả các trường hợp chu kỳ rỗi

Page 93: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 93/96

CE  Kỹ thuật ống dẫn (pipeline)

Page 94: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 94/96

Xung đột điều khiển

Một số lệnh nhảy có điều kiện và không điều kiện trong MIPS (branches, jump) tạora xung đột điều kiển này

Ví dụ xét đoạn chương trình sau: add $4, $5, $6 

beq $1, $2, label 

lw $3, 300($s0)

 Nếu áp dụng  pipeline thông thường, tại chu kỳ thứ  ba của  pipeline, khi beq đangthực thi công đoạn ID thì lệnh lw sẽ được nạp vào. Nhưng nếu điều kiện bằng củalệnh beq xảy ra thì lệnh thực hiệp tiếp sau đó không phải là lw mà là lệnh được gán

nhãn ‘label ’, lúc này xảy ra xung đột điều khiên.

Các giải pháp giải quyết xung đột điều khiển (tham khảo thêm mục 4.8, sách tham

khảo chính)

94

CE Example

Page 95: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 95/96

we examine how pipelining affects the clock cycle time of the

 processor. Problems in this exercise assume that individual

stages of the datapath have the following latencies:

What is the clock cycle time in a pipelined and non-pipelined

 processor?

What is the total latency of an LW instruction in a pipelined

and non-pipelined processor?

How many time does it take processor to execute 3 statement?

(pipeline – not pipeline), if hazard, not?

OR R1,R2,R3

OR R2,R1,R4

OR R1,R1,R2   95

Example

Page 96: Chuong04 Datapath Và Pipeline-update

8/15/2019 Chuong04 Datapath Và Pipeline-update

http://slidepdf.com/reader/full/chuong04-datapath-va-pipeline-update 96/96

Hazards?

SW R16, – 100(R6)

LW R4,8(R16)

ADD R5,R4,R4

SUB R1, R3, R2

Hazards?

OR R1,R2,R3

OR R2,R1,R4OR R1,R1,R2