30
1 םםםםםם םםםםם םםםםםםם( םםםםםם םםםםםםRead Only ) , םםם םםםם םםםםם םםםםם םםםם( םםםםםם םםםםםםRead / Write ) םםםםםםםםProgram counter )PC( ALU Registers Register # Data Register # Data me mory Address Data Register # PC Instruction ALU Instruction me mory Address December 2013

מרכיבי מסלול הנתונים

  • Upload
    calum

  • View
    57

  • Download
    0

Embed Size (px)

DESCRIPTION

D. a. t. a. R. e. g. i. s. t. e. r. #. A. d. d. r. e. s. s. P. C. I. n. s. t. r. u. c. t. i. o. n. R. e. g. i. s. t. e. r. s. A. L. U. A. d. d. r. e. s. s. R. e. g. i. s. t. e. r. #. I. n. s. t. r. u. c. t. i. o. n. D. a. t. - PowerPoint PPT Presentation

Citation preview

Page 1: מרכיבי מסלול הנתונים

1

מרכיבי מסלול הנתונים, חוץ מזמן טעינת תכנית חדשה(Read Onlyזיכרון פקודות )•

(Read / Writeזיכרון נתונים )•

רגיסטרים•

•Program counter )PC(

•ALU

Registers

Register #

Data

Register #

Datamemory

Address

Data

Register #

PC Instruction ALU

Instructionmemory

Address

December 2013

Page 2: מרכיבי מסלול הנתונים

2

A General Register File

log nto-n

decoder

Register 0

Register 1

Register n – 2E

E

D

DRegister n – 1

E

E

D

D

Write

0

1

n – 2

n – 1

n-to-1selector

n-to-1selector

Register number

Register number

enable

numberRegister

dataRegister

כתובת רגיסטר לכתיבה

תוכן לכתיבה

כתובת רגיסטר לקריאה

כתובת רגיסטר לקריאה

December 2013

תוכן נקרא

Page 3: מרכיבי מסלול הנתונים

3

Register Files )Read Ports(

Mux

Register 0

Register 1

Register n-2

Register n-1

Mux

Read data 1

Read data 2

Read registernumber 1

Read registernumber 2

December 2013

Page 4: מרכיבי מסלול הנתונים

4

Register Files )Write Port(

n-to-1decoder

Register 0

Register 1

Register n-2E

E

D

DRegister n-1

E

E

D

D

Register number

Write

Register data

0

1

n-2

n-1

December 2013

Page 5: מרכיבי מסלול הנתונים

5

MIPS Register File

Register 0

Register 1

Register E

E

D

DRegister 31

E

E

D

D

Write

0

1

31

32×32-to-1Selectors

32×32-to-1Selectors

Register number

Register number

enable

numberRegister

dataRegister

30

30

32

32

32

5

5

5

32

32

32

32

5-to-32Decoder

December 2013

Page 6: מרכיבי מסלול הנתונים

6

ביצוע פקודות בשלבים

מסלול הנתונים ממומש כמכונת מצבים•

מחזור שעון אחדביצוע פקודה •

אבל במהלך הביצוע לא הכול קורה בו זמנית. ניתן •להבחין בשלבים שונים הקורים זה אחר זה

נבחן כל שלב בנפרד.•

מאוחר יותר נשנה את המכונה כך שכל שלב •יתבצע במחזור שעון נפרד

במכונה שבה כל פקודה מתבצעת במספר מחזורי שעון–

pipelineבמכונה עם –

December 2013

Page 7: מרכיבי מסלול הנתונים

7

שני השלבים הראשונים זהים לכל הפקודות

.1FETCH – -הבאת הפקודה שהPC מצביע עליה מזיכרון הפקודות

.2DECODE –-פענוח הפקודה וREAD קריאת – . רגיסטרים, בהתאם לפקודה2 או 0,1

PC op rs rt rd shamt funct

Instruction memory

December 2013

Page 8: מרכיבי מסלול הנתונים

8

4 ב-PCהבאת פקודה והגדלת ה-

PC

Instructionmemory

Readaddress

Instruction

4

Add

December 2013

Page 9: מרכיבי מסלול הנתונים

9

פענוח הפקודה

R-type: add $t1, $t2, $t3פענוח פקודה מסוג •

Op=0 Rs=10 Rt=11 Rd=9 Shamt=0 Funct=32

ALU control

RegWrite

RegistersWriteregister

Readdata 1

Readdata 2

Readregister 1

Readregister 2

Writedata

ALUresult

ALU

Data

Data

Registernumbers

a. Registers b. ALU

Zero5

5

5 3

הינה ALU פעולת ה ו Opתוצאה של

Func

December 2013

Page 10: מרכיבי מסלול הנתונים

10

במסלול הנתוניםload, storeתמיכה ב-

)lw $t0, 100)$t1 דוגמה: •

Op=35 Rs=9 Rt=8 Address offset=100

Instruction

16 32

RegistersWriteregister

Readdata 1

Readdata 2

Readregister 1

Readregister 2

Datamemory

Writedata

Readdata

Writedata

Signextend

ALUresult

Zero

ALU

Address

MemRead

MemWrite

RegWrite

ALU operation3

base Reg

offset

temp Reg

December 2013

Page 11: מרכיבי מסלול הנתונים

11

תמיכה בקפיצה מותנית

beq $t0, $t1, 100דוגמה: •

'00ננצל שוב את העובדה שכתובות של פקודות מסתיימות ב-'•

Op=4 Rs=8 Rt=9 Address offset=25

16 32Sign

extend

ZeroALU

Sum

Shiftleft 2

To branchcontrol logic

Branch target

PC + 4 from instruction datapath

Instruction

Add

RegistersW riteregister

Readdata 1

Readdata 2

Readregister 1

Readregister 2

W ritedata

RegWrite

ALU operation3

words

bytes

multiply by 4

December 2013

Page 12: מרכיבי מסלול הנתונים

Instruction

16 32

RegistersW ritereg ister

Readdata 1

Readdata 2

Readregister 1

Readreg ister 2

Datamemory

W ritedata

Readdata

Mux

MuxW rite

data

Signextend

ALUresult

Zero

ALU

Address

RegW rite

ALU operation3

Mem Read

M em W rite

A LUSrcM em toReg

12

שילוב חלקי מסלול הנתונים

lw/sw וב- add/subהחלקים התומכים ב- •(:muxמשולבים בעזרת בוררים )

December 2013

Page 13: מרכיבי מסלול הנתונים

13

מותנות שילוב התמיכה בקפיצות

PC

Instructionmemory

Readaddress

Instruction

16 32

Add ALUresult

Mux

Registers

Writeregister

Writedata

Readdata 1

Readdata 2

Readregister 1

Readregister 2

Shiftleft 2

4

Mux

ALU operation3

RegWrite

MemRead

MemWrite

PCSrc

ALUSrc

MemtoReg

ALUresult

ZeroALU

Datamemory

Address

Writedata

Readdata M

ux

Signextend

Add

next instruction

sequential

December 2013

Page 14: מרכיבי מסלול הנתונים

14

כיעד לכתיבהrd / rt ובחירת ALUבקרת

MemtoReg

MemRead

MemWrite

ALUOp

ALUSrc

RegDst

PC

Instructionmemory

Readaddress

Instruction[31– 0]

Instruction [20– 16]

Instruction [25– 21]

Add

Instruction [5– 0]

RegWrite

4

16 32Instruction [15– 0]

0Registers

WriteregisterWritedata

Writedata

Readdata 1

Readdata 2

Readregister 1Readregister 2

Signextend

ALUresult

Zero

Datamemory

Address Readdata M

ux

1

1

Mux

0

1

Mux

0

1

Mux

0

Instruction [15– 11]

ALUcontrol

Shiftleft 2

PCSrc

ALU

Add ALUresult

R-type

lw / sw

December 2013

Page 15: מרכיבי מסלול הנתונים

15

ALUבקרת

OP, FUNCT כתלות בערכי השדות ALUבוחרים מה יעשה ה-•מן הפקודה

Instruction Op Funct (ALUOp) ALU ctrl Function

lw 35 - 00 010 ADD

sw 43 - 00 010 ADD

beq 4 - 01 110 SUB

addu 0 33 10 010 ADD

sub 0 34 10 110 SUB

and 0 36 10 000 AND

or 0 37 10 001 OR

slt 0 42 10 111 SLT

December 2013

Op Rs Rt Address offsetI-type

Op Rs Rt Rd Shamt FunctR-type

Page 16: מרכיבי מסלול הנתונים

16

ALUקווי הבקרה לבוררים ו-

PC

Instructionmemory

Readaddress

Instruction[31– 0]

Instruction [20 16]

Instruction [25 21]

Add

Instruction [5 0]

MemtoReg

ALUOp

MemWrite

RegWrite

MemRead

BranchRegDst

ALUSrc

Instruction [31 26]

4

16 32Instruction [15 0]

0

0Mux

0

1

Control

Add ALUresult

Mux

0

1

RegistersWriteregister

Writedata

Readdata 1

Readdata 2

Readregister 1

Readregister 2

Signextend

Mux

1

ALUresult

Zero

PCSrc

Datamemory

Writedata

Readdata

Mux

1

Instruction [15 11]

ALUcontrol

Shiftleft 2

ALUAddress

December 2013

Page 17: מרכיבי מסלול הנתונים

17

הבקר הראשי

לקביעת כל הבורריםOPהבקר הראשי משתמש רק בערכי השדה •

Inst.Op-

codeReg-Dst

ALU-Src

Memto-Reg

Reg-Write

Mem-Read

Mem-Write

Branch ALUOp

R-type 0 1 0 0 1 0 0 0 10

lw 35 0 1 1 1 1 0 0 00

sw 43 X 1 X 0 0 1 0 00

beq 4 X 0 X 0 0 0 1 01

December 2013

Page 18: מרכיבי מסלול הנתונים

18

מימוש הבקר הראשי

R-format Iw sw beq

Op0

Op1

Op2

Op3

Op4

Op5

Inputs

Outputs

RegDst

ALUSrc

MemtoReg

RegWrite

MemRead

MemWrite

Branch

ALUOp1

ALUOpO

December 2013

0 4335 4

Page 19: מרכיבי מסלול הנתונים

19

)R-type )1/4ביצוע פקודת

PC

Instructionmemory

Readaddress

Instruction[31– 0]

Instruction [20– 16]

Instruction [25– 21]

Add

Instruction [5– 0]

MemtoReg

ALUOp

MemWrite

RegWrite

MemRead

BranchRegDst

ALUSrc

Instruction [31– 26]

4

16 32Instruction [15– 0]

0

0Mux

0

1

Control

Add ALUresult

Mux

0

1

RegistersWriteregister

Writedata

Readdata 1

Readdata 2

Readregister 1

Readregister 2

Signextend

Shiftleft 2

Mux

1

ALUresult

Zero

Datamemory

Writedata

Readdata

Mux

1

Instruction [15– 11]

ALUcontrol

ALUAddress

PC

Instructionmemory

Readaddress

Instruction[31– 0]

Instruction [20– 16]

Instruction [25– 21]

Add

Instruction [5– 0]

MemtoReg

ALUOp

MemWrite

RegWrite

MemRead

BranchR

PC

Instructionmemory

Readaddress

Instruction[31– 0]

Instruction [20– 16]

Instruction [25– 21]

Add

Instruction [5– 0]

MemtoReg

ALUOp

MemWrite

RegWrite

MemRead

BranchRegDst

ALUSrc

Instruction [31– 26]

4

16 32Instruction [15– 0]

0

0Mux

0

1

Control

Add ALUresult

Mux

0

1

RegistersWriteregister

Writedata

Readdata 1

Readdata 2

Readregister 1

Read

egDst

ALUSrc

Instruction [31– 26]

4

16 32Instruction [15– 0]

0

0Mux

0

1

Control

Add ALUresult

Mux

0

1

RegistersWriteregister

Writedata

Readdata 1

Readdata 2

Readregister 1

Readregister 2

Signextend

Shiftleft 2

Mux

1

ALUresult

Zero

Datamemory

Writedata

Readdata

Mux

1

Instruction [15– 11]

ALUcontrol

ALUAddress

December 2013

Page 20: מרכיבי מסלול הנתונים

20

)R-type )2/4ביצוע פקודת

PC

Instructionmemory

Readaddress

Instruction[31– 0]

Instruction [20– 16]

Instruction [25– 21]

Add

Instruction [5– 0]

MemtoReg

ALUOp

MemWrite

RegWrite

MemRead

BranchRegDst

ALUSrc

Instruction [31– 26]

4

16 32Instruction [15– 0]

0

0Mux

0

1

Control

Add ALUresult

Mux

0

1

RegistersWriteregister

Writedata

Readdata 1

Readdata 2

Readregister 1

Readregister 2

Signextend

Shiftleft 2

Mux1

ALUresult

Zero

Datamemory

Writedata

Readdata

Mux

1

Instruction [15– 11]

ALUcontrol

ALUAddress

PC

Instructionmemory

Readaddress

Instruction[31– 0]

Instruction [20– 16]

Instruction [25– 21]

Add

Instruction [5– 0]

MemtoReg

ALUOp

MemWrite

RegWrite

MemRead

Branc

PC

Instructionmemory

Readaddress

Instruction[31– 0]

Instruction [20– 16]

Instruction [25– 21]

Add

Instruction [5– 0]

MemtoReg

ALUOp

MemWrite

RegWrite

MemRead

BranchRegDst

ALUSrc

Instruction [31– 26]

4

16 32Instruction [15– 0]

0

0Mux

0

1

Control

Add ALUresult

Mux

0

1

RegistersWriteregister

Writedata

Readdata 1

Readdata 2

Readregister 1

Rea

hRegDst

ALUSrc

Instruction [31– 26]

4

16 32Instruction [15– 0]

0

0Mux

0

1

Control

Add ALUresult

Mux

0

1

RegistersWriteregister

Writedata

Readdata 1

Readdata 2

Readregister 1

Readregister 2

Signextend

Shiftleft 2

Mux1

ALUresult

Zero

Datamemory

Writedata

Readdata

Mux

1

Instruction [15– 11]

ALUcontrol

ALUAddress

December 2013

Page 21: מרכיבי מסלול הנתונים

21

)R-type )3/4ביצוע פקודת

PC

Instructionmemory

Readaddress

Instruction[31– 0]

Instruction [20 16]

Instruction [25 21]

Add

Instruction [5 0]

MemtoReg

ALUOp

MemWrite

RegWrite

MemRead

BranchRegDst

ALUSrc

Instruction [31 26]

4

16 32Instruction [15 0]

0

0Mux

0

1

ALUcontrol

Control

Add ALUresult

Mux

0

1

RegistersWriteregister

Writedata

Readdata 1

Readdata 2

Readregister 1

Readregister 2

Signextend

Mux1

ALUresult

Zero

Datamemory

ReaddataAddress

Writedata

Mux

1

Instruction [15 11]

ALU

Shiftleft 2

PC

Instructionmemory

Readaddress

Instruction[31– 0]

Instruction [20 16]

Instruction [25 21]

Add

Instruction [5 0]

MemtoReg

ALUOp

MemWrite

RegWrite

MemRead

PC

Instructionmemory

Readaddress

Instruction[31– 0]

Instruction [20 16]

Instruction [25 21]

Add

Instruction [5 0]

MemtoReg

ALUOp

MemWrite

RegWrite

MemRead

BranchRegDst

ALUSrc

Instruction [31 26]

4

16 32Instruction [15 0]

0

0Mux

0

1

ALUcontrol

Control

Add ALUresult

Mux

0

1

RegistersWriteregister

Writedata

Readdata 1

Readdata 2

BranchRegDst

ALUSrc

Instruction [31 26]

4

16 32Instruction [15 0]

0

0Mux

0

1

ALUcontrol

Control

Add ALUresult

Mux

0

1

RegistersWriteregister

Writedata

Readdata 1

Readdata 2

Readregister 1

Readregister 2

Signextend

Mux1

ALUresult

Zero

Datamemory

ReaddataAddress

Writedata

Mux

1

Instruction [15 11]

ALU

Shiftleft 2

December 2013

Page 22: מרכיבי מסלול הנתונים

22

)R-type )4/4ביצוע פקודת

PC

Instructionmemory

Readaddress

Instruction[31– 0]

Instruction [20 16]

Instruction [25 21]

Add

Instruction [5 0]

MemtoReg

ALUOp

MemWrite

RegWrite

MemRead

BranchRegDst

ALUSrc

Instruction [31 26]

4

16 32Instruction [15 0]

0

0Mux

0

1

ALUcontrol

Control

Shiftleft 2

Add ALUresult

Mux

0

1

RegistersWriteregister

Writedata

Readdata 1

Readdata 2

Readregister 1

Readregister 2

Signextend

Mux1

ALUresult

Zero

Datamemory

Writedata

Readdata

Mux

1

Instruction [15 11]

ALUAddress

PC

Instructionmemory

Readaddress

Instruction[31– 0]

Instruction [20 16]

Instruction [25 21]

Add

Instruction [5 0]

MemtoReg

ALUOp

MemWrite

RegWrite

MemRead

B

PC

Instructionmemory

Readaddress

Instruction[31– 0]

Instruction [20 16]

Instruction [25 21]

Add

Instruction [5 0]

MemtoReg

ALUOp

MemWrite

RegWrite

MemRead

BranchRegDst

ALUSrc

Instruction [31 26]

4

16 32Instruction [15 0]

0

0Mux

0

1

ALUcontrol

Control

Shiftleft 2

Add ALUresult

Mux

0

1

RegistersWriteregister

Writedata

Readdat

ranchRegDst

ALUSrc

Instruction [31 26]

4

16 32Instruction [15 0]

0

0Mux

0

1

ALUcontrol

Control

Shiftleft 2

Add ALUresult

Mux

0

1

RegistersWriteregister

Writedata

Readdata 1

Readdata 2

Readregister 1

Readregister 2

Signextend

Mux1

ALUresult

Zero

Datamemory

Writedata

Readdata

Mux

1

Instruction [15 11]

ALUAddress

December 2013

Page 23: מרכיבי מסלול הנתונים

23

Jהוספת פקודת

j 10000דוגמה: •

(. 32—דרושות 26בכתובת אין מספיק סיביות )רק •נשלים ע"י שרשור הסיביות:

PC+4 [31…28] סיביות עליונות: 4–

סיביות מהפקודה26–

' )ע"י הזזה שמאלה בשני מקומות(00 סיביות '2–

Op=2 Jump target address=2500

word byte

December 2013

Page 24: מרכיבי מסלול הנתונים

24

JUMPהוספת הטיפול ב-

Shiftleft 2

PC

Instructionmemory

Readaddress

Instruction[31– 0]

Datamemory

Readdata

Writedata

RegistersWriteregister

Writedata

Readdata 1

Readdata 2

Readregister 1

Readregister 2

Instruction [15– 11]

Instruction [20– 16]

Instruction [25– 21]

Add

ALUresult

Zero

Instruction [5– 0]

MemtoReg

ALUOp

MemWrite

RegWrite

MemRead

Branch

JumpRegDst

ALUSrc

Instruction [31– 26]

4

Mux

Instruction [25– 0] Jump address [31– 0]

PC+4 [31– 28]

Signextend

16 32Instruction [15– 0]

1

Mux

1

0

Mux

0

1

Mux

0

1

ALUcontrol

Control

Add ALUresult

Mux

0

1 0

ALU

26 28

Address

Shiftleft 2

December 2013

Page 25: מרכיבי מסלול הנתונים

25

PCout

INSTR. MEMout

CONTROLout

REG1,2out

ALUout

DATA MEMout Only for lw

REG DATAin tSU

PCin

מהלך ביצוע פקודה במימוש מחזור יחיד

December 2013

Page 26: מרכיבי מסלול הנתונים

26

מתי מגיע השעון ?

Shiftleft 2

PC

Instructionmemory

Readaddress

Instruction[31– 0]

Datamemory

Readdata

Writedata

RegistersWriteregister

Writedata

Readdata 1

Readdata 2

Readregister 1

Readregister 2

Instruction [15– 11]

Instruction [20– 16]

Instruction [25– 21]

Add

ALUresult

Zero

Instruction [5– 0]

MemtoReg

ALUOp

MemWrite

RegWrite

MemRead

Branch

JumpRegDst

ALUSrc

Instruction [31– 26]

4

Mux

Instruction [25– 0] Jump address [31– 0]

PC+4 [31– 28]

Signextend

16 32Instruction [15– 0]

1

Mux

1

0

Mux

0

1

Mux

0

1

ALUcontrol

Control

Add ALUresult

Mux

0

1 0

ALU

Shiftleft 2

26 28

Address

December 2013

t

t+1t+1

Page 27: מרכיבי מסלול הנתונים

27

ביצועי מחשב בעל מחזור שעון יחיד

מחשב בעל מחזור שעון יחיד הוא פשוט לתכנון•

אבל זמן המחזור תלוי בזמן הביצוע של פקודה האיטית •ביותר...

אילו פקודות מהירות ואילו איטיות?•

נבדוק את זמני ההשהיה של היחידות במחשב:•

ns 2זיכרונות:–

–ALU:2 ומחברים ns

ns 1רגיסטרים:–

)באופן מעשי זה יותר(ns 0בוררים:–

)באופן מעשי זה יותר(ns 0חוטים:–

December 2013

Page 28: מרכיבי מסלול הנתונים

28

מסלולים קריטיים במחשב

Instr.-type

Components used

ALU I-Mem Registers ALU Registers

Load I-Mem Registers ALU D-Mem Registers

Store I-Mem Registers ALU D-Mem

Branch I-Mem Registers ALU

Jump I-Mem

Instr.-type

I-Mem Registers ALU D-Mem Registers Total

ALU 2 1 2 1 6 ns

Load 2 1 2 2 1 8 ns

Store 2 1 2 2 7 ns

Branch 2 1 2 5 ns

Jump 2 2 ns

December 2013

Page 29: מרכיבי מסלול הנתונים

29

שיפור הביצועים

קובע את זמן 8nsהמסלול הקריטי בדוגמה •המחזור

1/8ns = 125 MHz תדר השעון המרבי: •

pipelineניתן להפוך את המחשב ל-•

ילמד בהמשך הסמסטר–

שיטה אחרת אפשרית הינה תכנון מסלול נתונים •של מספר מחזורי שעון

מה ניתן להרוויח ע"י מספר מחזורי שעון בפקודה?–

December 2013

Page 30: מרכיבי מסלול הנתונים

30

לוקחות זמן רב, ואחרות פחות load, storeפקודות •

אולי כדאי לכתוב תכניות שמכילות פחות פקודות –איטיות ויותר פקודות מהירות?

בתכניות רבות יש התפלגות פקודות טיפוסית: •

–24% Loads, 12% Stores, 44% ALU, 18% Branches, 2% Jumps

הזמן הממוצע של ביצוע פקודה:•

8×24% + 7×12% + 6×44% + 5×18% + 2×2% = 6.3ns

8ns / 6.3ns = 1.27שיפור הביצועים פוטנציאלי: •

December 2013