24
234267 1 םםםם םםםםםם םםםםםםם234267 םםםםם םם'2 : - םםםם םם םםםםםםםםםם םMIPS

2342671 מבנה מחשבים ספרתיים 234267 תרגול מס' 2: חזרה על ארכיטקטורת ה- MIPS

Embed Size (px)

Citation preview

Page 1: 2342671 מבנה מחשבים ספרתיים 234267 תרגול מס' 2: חזרה על ארכיטקטורת ה- MIPS

234267 1

מבנה מחשבים ספרתיים234267

:2תרגול מס' MIPSחזרה על ארכיטקטורת ה-

Page 2: 2342671 מבנה מחשבים ספרתיים 234267 תרגול מס' 2: חזרה על ארכיטקטורת ה- MIPS

2

רגיסטרים )אוגרים(

. 0 ושווה קבוע ערכו R0 רגיסטרים לשימוש כללי. רגיסטר 32ישנם •

(שמיש 0F )float סיביות עבור פעולות 64 רגיסטרים של 16 כמו כן ישנם • סיביות.32 של float ניתן להשתמש בכל אחד מהם כשני רגיסטרים •

R0 = 0R0 = 0

R1R1

R30R30

32

R31R31

F1F1

F3F3

F29F29

32

F31F31

F0F0

F2F2

F28F28

32

F30F30

F0F2

F28F30

Page 3: 2342671 מבנה מחשבים ספרתיים 234267 תרגול מס' 2: חזרה על ארכיטקטורת ה- MIPS

3

MIPSאופני מיעון ב-

האופרנד מאוחסן ברגיסטר:(register)רגיסטר

ADD $2,$3,$4; reg 2 reg3 + reg4

סיביות עם סימן16 האופרנד הוא קבוע )מקודד בפקודה( בגודל :(Immediateמיידי )

ADDI $2,$3,15; reg 2 reg3 + 15

: (Base + Displacementבסיס + היסט )האופרנד נמצא בזיכרון -רגיסטר הבסיס + הערך שבהיסטהכתובת בזיכרון = ערך שדה ה-

LW $2,105)$3(; reg 2 mem)Reg3 + 105(

:(PC-relativeיחסי למונה התוכנית ) סיביות(. מיועד 16 )immediate לערך שדה ה-PCהערך מחושב ע"י חיבור הערך שב-

(branchesאך ורק עבור קפיצות מותנות )

BEQ $3,$4,15000; if reg3 == reg4 then PC PC + 4 + 4*15000

Page 4: 2342671 מבנה מחשבים ספרתיים 234267 תרגול מס' 2: חזרה על ארכיטקטורת ה- MIPS

4

נוספותMIPSפקודות (reg0 = 0שימו לב ש- סיביות( לכתובת קבועה( 32( מילה )Storeגישה לזיכרון, אכסן )

SW $3,100)$0(; mem)100+reg0( reg3

מיוחדת(:MOVטעינת / העתקת ערך אוגר )אין פקודת

ADDI $4,$0,15; reg4 15 )שימו לב להרחבת הסימן(ADD $4,$8,$0; reg4 reg8

Branchמותנה BEQ $0,$1,Label1; if reg1 == 0 then jump to Label1

(2L,3$,2$ BLTהשוואת "קטן-מ" )פסאודו פקודה SLT $1,$2,$3 if reg2 < reg3 then reg1 1 else reg1 0BNE $0,$1,L2 if reg0 != reg1 then jump to L2

אחרת המשך כרגיל(reg2<reg3 צמד הפקודות יגרום לקפיצה אם reg0=0)מאחר ו-

J 10000 קפיצה בלתי מותנית )מיעון מוחלט(

JR $31קפיצה עקיפה )מיעון לפי ערך האוגר(

Page 5: 2342671 מבנה מחשבים ספרתיים 234267 תרגול מס' 2: חזרה על ארכיטקטורת ה- MIPS

5

קידוד הפקודות

בתים4– כלומר סיביות 32כל הפקודות בנות סיביות:32כל סוג מגדיר את החלוקה הפנימית בתוך אותן

ישנם שלושה סוגי פקודות:

R-type - register instructions I-type - immediate J-type - jumps )unconditional(

קבוע בגודלו ונמצא תמיד. הוא חיוני כדי )op )opcodeשדה ה-לדעת מהו סוג הפקודה וכיצד לבצע את החלוקה הפנימית

השונה בין פורמט לפורמט

Page 6: 2342671 מבנה מחשבים ספרתיים 234267 תרגול מס' 2: חזרה על ארכיטקטורת ה- MIPS

6

Rבפקודות מסוג

אומר מהי func ואילו שדה ה-0 תמיד שווה opשדה ה-•הפקודה

עבור rd עבור רגיסטר המקור, ושדה ה-rt וה-rsשדות ה-•רגיסטר המטרה.

מיועד לפקודה הזזת )shamt )shift amountשדה ה-•( בלבדSLL,SRL,SRAסיביות )

קידוד הפקודות

Opcode= 0

Rs Rt Rd Shift amount

func

6bit 5bit 5bit 5bit 5bit 6bit

Page 7: 2342671 מבנה מחשבים ספרתיים 234267 תרגול מס' 2: חזרה על ארכיטקטורת ה- MIPS

7

Iבפקודות מסוג

עבור רגיסטר הבסיס rs שדה ה-immופקודות עם שדה loadבפקודות עבור רגיסטר המטרהrtושדה ה-

מכיל את rt עבור רגיסטר הבסיס ושדה ה-rsשדה ה- storeבפקודות הערך לאחסון בזיכרון

עבור רגיסטרי המקור והקבוע מקודד את כתובת rt ו-branch, rsבפקודות PCהקפיצה ביחס ל-

קידוד הפקודות

Opcode

RsLoad: BaseStore: Base

RtLoad:TargetStore: data

Address \ Immediate

6bit 5bit 5bit 16 bit

Page 8: 2342671 מבנה מחשבים ספרתיים 234267 תרגול מס' 2: חזרה על ארכיטקטורת ה- MIPS

8

Jבפקודות מסוג

segment )ה-PC סיביות מה-4קופצים אל הכתובת המתחילה משמאל ב- סיביות אחרונות 2 ו-address הסיביות שבשדה ה-26בזיכרון( שלאחריהן

.4מאחר וכל הפקודות נמצאות בכתובות המתחלקות ב-00מימין שהן תמיד

קידוד הפקודות

Opcode כתובת קפיצה

6bit 26 bit

Current PC

Target (26 bits) 00

1 022731 28

00

0000+

Target address 00

Page 9: 2342671 מבנה מחשבים ספרתיים 234267 תרגול מס' 2: חזרה על ארכיטקטורת ה- MIPS

9

MIPSקונפיגורציות של ה-

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

•Multicycleחלוקת הפקודות למספר שלבים ועבור כל פקודה לבצע בכל שלב חלק מהפעולות. •

מחזורי שעון לפחות )קצרים יותר(. אין שיפור 4רוב הפקודות עדיין משתמשות ב-משמעותי

•Pipeline

הסדרתי לשלבים datapathמחלקים את ה- •כאשר פקודה מסוימת מסיימת את השלב הראשון ועוברת לשלב השני, פקודה חדשה •

נכנסת לשלב הראשון וכן הלאהמתקבל מצב בו בכל מחזור שעון כל פקודה מתקדמת בשלב אחד. כלומר, בכל מחזור •

מסתיימת פקודה אחת ופקודה חדשה נכנסת לביצוע.

Page 10: 2342671 מבנה מחשבים ספרתיים 234267 תרגול מס' 2: חזרה על ארכיטקטורת ה- MIPS

10

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

שלבים בסיסיים:5כל פקודה )למעט נקודה צפה( ניתנת לחלוקה ל-1 .Fetch

שליפת הפקודה לביצוע מהזיכרון.קידום מונה התוכנית לפקודה הבאה לביצוע

(IRאכסון הפקודה ברגיסטר זמני )

Page 11: 2342671 מבנה מחשבים ספרתיים 234267 תרגול מס' 2: חזרה על ארכיטקטורת ה- MIPS

11

Instruction Fetch

ALU

Src

6

ALU

result

Zero

+Shift left 2

ALUControl

RegDst

Reg

Wri

te

Readreg 1

Readreg 2

Writereg

Writedata

Readdata 1

Readdata 2

Re

gis

ter

Fil

e

[15-0]

[20-16]

[15-11]

Sig

ne

xte

nd

16

EX/MEM MEM/WB

Mem

Rea

d

Mem

Writ

e

Bra

nch

PCSrc

Me

mto

Re

g

4

+

IF/ID

PC

InstructionMemory

Read Address

mux

1

0

mux

1

0

mux

1

0

mux

1

0

ID/EX

Co

ntr

ol

32

WB

Rd\Rt

Reg

Wri

te

WB

M

Read Address

Write Data

ReadData

DataMemory

Write Address

Rd\Rt

ALU

op

Reg

Dst

32

WB

EX

M

Rt

Rd

Imm

Inst

ruct

ion

New

PC

New

PC

ALU

resu

lt

Page 12: 2342671 מבנה מחשבים ספרתיים 234267 תרגול מס' 2: חזרה על ארכיטקטורת ה- MIPS

12

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

2 .Decode

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

Register Fileשליפת ערכי הרגיסטרים המתאימים מתוך •

•Sign Extension-32 סיביות ל-16: הרחבה של האופרנד המקודד מ סיביות

Page 13: 2342671 מבנה מחשבים ספרתיים 234267 תרגול מס' 2: חזרה על ארכיטקטורת ה- MIPS

13

Instruction Decode

ALU

Src

6

ALU

result

Zero

+Shift left 2

ALUControl

RegDst

Reg

Wri

te

Readreg 1Readreg 2

Writereg

Writedata

Readdata 1

Readdata 2

Reg

iste

r File

[15-0]

[20-16]

[15-11]

Sig

nexte

nd

16

32

EX/MEM MEM/WB

Mem

Read

Mem

Wri

te

Bra

nch

PCSrc

Mem

toR

eg

4

+

IF/ID

PC

InstructionMemory

Read Address

mux

1

0

mux1

0

mux

1

0

mux1

0

ID/EX

WB

EX

M

Con

trol

32

WB

Rd\Rt

Reg

Wri

te

WB

M

Read Address

Write Data

ReadData

DataMemory

Write Address

Rd\Rt

ALU

op

Reg

Dst

Rt

Rd

Imm

Inst

ruct

ion

New

PC

New

PC

ALU

resu

lt

Page 14: 2342671 מבנה מחשבים ספרתיים 234267 תרגול מס' 2: חזרה על ארכיטקטורת ה- MIPS

14

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

3 .Execute

ביצוע הפעולה הנדרשת על בסיס הערכים בערוצי המידע: – ביצוע הפעולה הנדרשת ALUעבור פעולת •

– חישוב הכתובת האפקטיביגישה לזיכרון עבור •

– חישוב כתובת היעד וחישוב תנאי הקפיצה ( branchהסתעפות )עבור • ALU האופרנדים מהרגיסטרים הנכנסים ל-2מבצעים את החישוב על •

הראשי אשר מבצע פעולת חיסור וכך ידוע האם יש לקפוץ ZERO נדלק דגל 0אם התוצאה היא –

(BEQ)חישוב כתובת היעד של הקפיצה•

Page 15: 2342671 מבנה מחשבים ספרתיים 234267 תרגול מס' 2: חזרה על ארכיטקטורת ה- MIPS

15

EXecute

ALU

Src

6

ALU

result

Zero

+Shift left 2

ALUControl

RegDst

Reg

Wri

te

Readreg 1Readreg 2

Writereg

Writedata

Readdata 1

Readdata 2

Reg

iste

r File

[15-0]

[20-16]

[15-11]

Sig

nexte

nd

16

32

EX/MEM MEM/WB

Mem

Read

Mem

Wri

te

Bra

nch

PCSrc

Mem

toR

eg

4

+

IF/ID

PC

InstructionMemory

Read Address

mux

1

0

mux1

0

mux

1

0

mux1

0

ID/EX

WB

EX

M

Con

trol

32

WB

Rd\Rt

Reg

Wri

te

WB

M

Read Address

Write Data

ReadData

DataMemor

yWrite Address

Rd\Rt

ALU

op

Reg

Dst

Rt

Rd

Imm

Inst

ruct

ion

New

PC

New

PC

ALU

resu

lt

Page 16: 2342671 מבנה מחשבים ספרתיים 234267 תרגול מס' 2: חזרה על ארכיטקטורת ה- MIPS

16

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

4 .Memory

Store / Loadקריאה / כתיבה לזיכרון בפקודות (PC )עדכון branchהחלטה האם לקפוץ בפקודות

Control Hazardשימו לב - . עד שהבנו שצריך לקפוץ, pipelineבכל שלב נכנסות פקודות חדשות ל-

אולי נכנסו פקודות שכלל אינן צריכות להתבצע

5 .Write back: או מהזיכרון( לרגיסטר היעד. ALUאכסון התוצאה )מ-

Page 17: 2342671 מבנה מחשבים ספרתיים 234267 תרגול מס' 2: חזרה על ארכיטקטורת ה- MIPS

17

MEMory \ WriteBack

ALU

Src

6

ALU

result

Zero

+Shift left 2

ALUControl

RegDst

Reg

Wri

te

Readreg 1Readreg 2

Writereg

Writedata

Readdata 1

Readdata 2

Reg

iste

r File

[15-0]

[20-16]

[15-11]

Sig

nexte

nd

16

32

EX/MEM MEM/WB

Mem

Read

Mem

Wri

te

Bra

nch

PCSrc

Mem

toR

eg

4

+

IF/ID

PC

InstructionMemory

Read Address

mux

1

0

mux1

0

mux

1

0

mux1

0

ID/EX

WB

EX

M

Con

trol

32

WB

Rd\Rt

Reg

Wri

te

WB

M

Read Address

Write Data

ReadData

DataMemory

Write Address

Rd\Rt

ALU

op

Reg

Dst

Rt

Rd

Imm

Inst

ruct

ion

New

PC

New

PC

ALU

resu

lt

Page 18: 2342671 מבנה מחשבים ספרתיים 234267 תרגול מס' 2: חזרה על ארכיטקטורת ה- MIPS

18

אותות הבקרה

Signal Name Effect when 0 Effect when 1

MemRead None. Data Memory contents at the read address are put on read data output.

MemWrite None. Data memory contents at address given by write address are replaced by value on write data input

ALUSrc The second ALU operand comes from the second register file output.

The second ALU operand is the sign-extended lower 16 bits of the instruction.

RegDst The register destination for the register write comes from the rt field.

The register destination number for the register write comes from the rd field.

RegWrite None. The register given by write register number input is written into with the value on the write data input.

PCSrc (== Branch & cond)

The PC is replaced by the output of adder that computes the value of PC+4.

The PC is replaced by the output of the adder that computes the branch target.

MemtoReg The value fed to the register write data input comes from the ALU.

The value fed to the register write data input comes from the data memory.

Page 19: 2342671 מבנה מחשבים ספרתיים 234267 תרגול מס' 2: חזרה על ארכיטקטורת ה- MIPS

19

אותות הבקרה

ALU

Src

6

ALU

result

Zero

+Shift left 2

ALUControl

RegDst

Reg

Wri

te

Readreg 1

Readreg 2

Writereg

Writedata

Readdata 1

Readdata 2

Reg

iste

r File

[15-0]

[20-16]

[15-11]

Sig

nexte

nd

16

32

EX/MEM MEM/WB

Mem

Read

Mem

Wri

te

Bra

nch

PCSrc

Mem

toR

eg

4

+

IF/ID

PC

InstructionMemory

Read Address

mux

1

0

mux1

0

mux

1

0

mux1

0

ID/EX

WB

EX

M

Con

trol

32

WB

Rd\Rt

Reg

Wri

te

WB

M

Read Address

Write Data

ReadData

DataMemo

ryWrite Address

Rd\Rt

ALU

op

Reg

Dst

Rt

Rd

Imm

Inst

ruct

ion

New

PC

New

PC

ALU

resu

lt

Page 20: 2342671 מבנה מחשבים ספרתיים 234267 תרגול מס' 2: חזרה על ארכיטקטורת ה- MIPS

20

ALU control, ALUop func

Instruction opcode ALUop

Instruction operation

Function code

Desired ALU action

ALU control input

LW 00 load word - add 010

SW 00 store word - add 010

BEQ 01 branch equal - subtract 110

ADD 10 add 100000 add 010

SUB 10 subtract 100010 subtract 110

AND 10 AND 100100 and 000

OR 10 OR 100101 or 001

SLT 10 set-on-less-than 101010 set-on-less-than 111

Page 21: 2342671 מבנה מחשבים ספרתיים 234267 תרגול מס' 2: חזרה על ארכיטקטורת ה- MIPS

21

עבור פקודות שונות:control linesדוגמאות לערכי

branch של פקודת offsetדוגמא לקידוד

( branch )כתובת פקודת ה-700: אנו נמצאים בכתובת שאלה. מה עלינו לקודד?800ורוצים לקפוץ לכתובת

Displacement = 800 – 704 = 96 bytes 96 / 4 = 24 instructions 24

WriteBack Memory Execution stage

Memto Reg

Reg Write

Mem Write

Mem Read

Branch PCsrc

ALU control

ALU src ALU op0 ALU op1 RegDst פקודה

0 1 0 0 0 010 0 0 1 1 add

X 0 0 0 1/0 110 0 1 0 X beq

Page 22: 2342671 מבנה מחשבים ספרתיים 234267 תרגול מס' 2: חזרה על ארכיטקטורת ה- MIPS

22

:שאלה. MIPSלסט הפקודות של ה- addconstברצוננו להוסיף פקודה בשם

(unsignedהפקודה תבצע חיבור של רגיסטר לקבוע חסר סימן )

והפעולה המתבצעת היא addconst R1,R2,constתחביר הפקודה R1=R2+const

0( - ]216-1 הינו מספר חיובי בטווח )constהקבוע

קידוד הפקודה החדשה הוא מסוג:.1R.2I.3JRISCלא ניתן לממש פקודה כזאת במעבד מסוג 4.אף תשובה אינה נכונה5.

?MIPSבמידה וניתן לממש את הפקודה, מה השינוי שנדרש במבנה ה-

Page 23: 2342671 מבנה מחשבים ספרתיים 234267 תרגול מס' 2: חזרה על ארכיטקטורת ה- MIPS

23

ALU

Src

6

ALU

result

Zero

+Shift left 2

ALUControl

RegDst

Reg

Wri

teReadreg 1

Readreg 2

Writereg

Writedata

Readdata 1

Readdata 2

Reg

iste

r File

[15-0]

[20-16]

[15-11]

Sig

nexte

nd

1632

EX/MEM MEM/WB

Inst

ruct

ion

Mem

Read

Mem

Wri

te

Bra

nch

PCSrc

Mem

toR

eg

4

+

IF/ID

PC

InstructionMemory

Read Address

mux

1

0

mux

1

0

mux

1

0

mux

2

0

ID/EX

WB

EX

M

Con

trol

32

WB

Rd\Rt

Reg

Wri

te

WB

M

Read Address

Write Data

ReadData

DataMemo

ryWrite Address

Rd\Rt

ALU

op

Reg

Dst

16

zero

exte

nd

32

1

Page 24: 2342671 מבנה מחשבים ספרתיים 234267 תרגול מס' 2: חזרה על ארכיטקטורת ה- MIPS

30

אתר הקורס:http://webcourse.cs.technion.ac.il/234267

תרגילי בית: תרגילי בית במהלך הסמסטר4יינתנו בחינה סופית(80% תקף )20%

הגשה בזוגות נקודות יורדו על כל יום איחור5

ספרי קורס:Hennessy & Patterson - Computer Architecture: A Quantitative Approach.Hennessy & Patterson - Computer Organization and Design: The Hardware/ Software Interface