30
(C) Yohai Devir 234267 - October 2005 1 םםםם םםםםםם םםםםםםם234267 םםםםם םם'1 : םםםםםם- םםםם םם םםםםםםםםםם םMIPS

(C) Yohai Devir234267 - October 20051 מבנה מחשבים ספרתיים 234267 תרגול מס' 1: מנהלות חזרה על ארכיטקטורת ה- MIPS

  • View
    235

  • Download
    8

Embed Size (px)

Citation preview

Page 1: (C) Yohai Devir234267 - October 20051 מבנה מחשבים ספרתיים 234267 תרגול מס' 1: מנהלות חזרה על ארכיטקטורת ה- MIPS

(C) Yohai Devir 234267 - 2005October 1

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

:1תרגול מס' מנהלות

MIPSחזרה על ארכיטקטורת ה-

Page 2: (C) Yohai Devir234267 - October 20051 מבנה מחשבים ספרתיים 234267 תרגול מס' 1: מנהלות חזרה על ארכיטקטורת ה- MIPS

(C) Yohai Devir 234267 - 2005October 2

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

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

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

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

Page 3: (C) Yohai Devir234267 - October 20051 מבנה מחשבים ספרתיים 234267 תרגול מס' 1: מנהלות חזרה על ארכיטקטורת ה- MIPS

(C) Yohai Devir 234267 - 2005October 3

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

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

Inst

ruct

ion

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

Page 4: (C) Yohai Devir234267 - October 20051 מבנה מחשבים ספרתיים 234267 תרגול מס' 1: מנהלות חזרה על ארכיטקטורת ה- MIPS

(C) Yohai Devir 234267 - 2005October 4

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

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

float סיביות עבור פעולות 64 רגיסטרים של 16כמו כן ישנם אשר לחילופין ניתן להשתמש בכל אחד מהם כשני רגיסטרים

סיביות.32של R0 = 0R0 = 0

R1R1

R30R30

32

R31R31

F1F1

F3F3

F29F29

32

F31F31

F0F0

F2F2

F28F28

32

F30F30

F0F2

F28F30

Page 5: (C) Yohai Devir234267 - October 20051 מבנה מחשבים ספרתיים 234267 תרגול מס' 1: מנהלות חזרה על ארכיטקטורת ה- MIPS

(C) Yohai Devir 234267 - 2005October 5

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: הערך מחושב ע"י חיבור הערך שב-)PC-relativeיחסי למונה התוכנית (. (קפיצה ביחס למקום הנוכחי)branches סיביות). מיועד אך ורק עבור immediate) 16ה-

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

Page 6: (C) Yohai Devir234267 - October 20051 מבנה מחשבים ספרתיים 234267 תרגול מס' 1: מנהלות חזרה על ארכיטקטורת ה- MIPS

(C) Yohai Devir 234267 - 2005October 6

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

SW $3,100($4); mem(100+reg4) reg3

)reg0 = 0שימו לב ש- ) קבועה) מכתובת Loadגישה לזיכרון, טען (LW $4,8($0); reg4 mem(8 + 0)

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

)Set Less Thanהשוואה (כאן לפי 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(מאחר ו-

קפיצות בלתי מותנות PC – relative" J 10000קפיצת "

JR $31

Page 7: (C) Yohai Devir234267 - October 20051 מבנה מחשבים ספרתיים 234267 תרגול מס' 1: מנהלות חזרה על ארכיטקטורת ה- MIPS

(C) Yohai Devir 234267 - 2005October 7

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

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

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

R-type - register instructions I-type - immediate J-type - jumps

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

החלוקה הפנימית השונה בין פורמט לפורמט.

Page 8: (C) Yohai Devir234267 - October 20051 מבנה מחשבים ספרתיים 234267 תרגול מס' 1: מנהלות חזרה על ארכיטקטורת ה- MIPS

(C) Yohai Devir 234267 - 2005October 8

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

אומר מהי func ואילו שדה ה-0 תמיד שווה opשדה ה-הפקודה. rd עבור רגיסטר המקור, ושדה ה- rt וה- rsשדות ה-

עבור רגיסטר המטרה. מיועד לפקודה הזזת shamt (shift amount)שדה ה-

סיביות (שמאלה או ימינה)

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

Opcode Rs Rt Rd Shift amount

func

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

Page 9: (C) Yohai Devir234267 - October 20051 מבנה מחשבים ספרתיים 234267 תרגול מס' 1: מנהלות חזרה על ארכיטקטורת ה- MIPS

(C) Yohai Devir 234267 - 2005October 9

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

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

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

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

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

Opcode

Rs Rt Address \ Immediate

6bit 5bit 5bit 16 bit

Page 10: (C) Yohai Devir234267 - October 20051 מבנה מחשבים ספרתיים 234267 תרגול מס' 1: מנהלות חזרה על ארכיטקטורת ה- MIPS

(C) Yohai Devir 234267 - 2005October 10

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

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

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

.4המתחלקות ב-

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

Opcode כתובת קפיצה

6bit 26 bit

Page 11: (C) Yohai Devir234267 - October 20051 מבנה מחשבים ספרתיים 234267 תרגול מס' 1: מנהלות חזרה על ארכיטקטורת ה- MIPS

(C) Yohai Devir 234267 - 2005October 11

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

single cycle כל פקודה מבוצעת במחזור שעון יחיד בעל - זמן מחזור ארוך מאוד.

multycycle - חלוקת הפקודות למספר שלבים ועבור כלפקודה לבצע בכל שלב חלק מהפעולות. רוב הפקודות עדיין

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

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

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

Page 12: (C) Yohai Devir234267 - October 20051 מבנה מחשבים ספרתיים 234267 תרגול מס' 1: מנהלות חזרה על ארכיטקטורת ה- MIPS

(C) Yohai Devir 234267 - 2005October 12

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

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

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

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

Page 13: (C) Yohai Devir234267 - October 20051 מבנה מחשבים ספרתיים 234267 תרגול מס' 1: מנהלות חזרה על ארכיטקטורת ה- MIPS

(C) Yohai Devir 234267 - 2005October 13

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

32

EX/MEM MEM/WB

Inst

ruct

ion

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

WB

EX

M

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

Page 14: (C) Yohai Devir234267 - October 20051 מבנה מחשבים ספרתיים 234267 תרגול מס' 1: מנהלות חזרה על ארכיטקטורת ה- MIPS

(C) Yohai Devir 234267 - 2005October 14

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

2 .decode:.RFשליפת ערכי הרגיסטרים המתאימים מתוך •פענוח הפקודה ויצירת את אותות הבקרה •

שילוו את הפקודה בהמשך.•sign extension הרחבה של האופרנד :

סיביות. 32 סיביות ל- 16המקודד מ -

Page 15: (C) Yohai Devir234267 - October 20051 מבנה מחשבים ספרתיים 234267 תרגול מס' 1: מנהלות חזרה על ארכיטקטורת ה- MIPS

(C) Yohai Devir 234267 - 2005October 15

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

Inst

ruct

ion

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

Page 16: (C) Yohai Devir234267 - October 20051 מבנה מחשבים ספרתיים 234267 תרגול מס' 1: מנהלות חזרה על ארכיטקטורת ה- MIPS

(C) Yohai Devir 234267 - 2005October 16

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

3 .execute:ביצוע הפעולה הנדרשת על בסיס הערכים בערוצי

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

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

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

חישוב כתובת היעד של הקפיצה.

Page 17: (C) Yohai Devir234267 - October 20051 מבנה מחשבים ספרתיים 234267 תרגול מס' 1: מנהלות חזרה על ארכיטקטורת ה- MIPS

(C) Yohai Devir 234267 - 2005October 17

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

Inst

ruct

ion

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

Page 18: (C) Yohai Devir234267 - October 20051 מבנה מחשבים ספרתיים 234267 תרגול מס' 1: מנהלות חזרה על ארכיטקטורת ה- MIPS

(C) Yohai Devir 234267 - 2005October 18

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

3 .memory:.Store / Loadקריאה / כתיבה לזיכרון בפקודות

.branchהחלטה האם לקפוץ בפקודות : בכל שלב נכנסות Control Hazardשימו לב -

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

להתבצע.4 .Write back:

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

Page 19: (C) Yohai Devir234267 - October 20051 מבנה מחשבים ספרתיים 234267 תרגול מס' 1: מנהלות חזרה על ארכיטקטורת ה- MIPS

(C) Yohai Devir 234267 - 2005October 19

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

Inst

ruct

ion

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

Page 20: (C) Yohai Devir234267 - October 20051 מבנה מחשבים ספרתיים 234267 תרגול מס' 1: מנהלות חזרה על ארכיטקטורת ה- MIPS

(C) Yohai Devir 234267 - 2005October 20

אותות הבקרה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 21: (C) Yohai Devir234267 - October 20051 מבנה מחשבים ספרתיים 234267 תרגול מס' 1: מנהלות חזרה על ארכיטקטורת ה- MIPS

(C) Yohai Devir 234267 - 2005October 21

אותות הבקרה

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

Inst

ruct

ion

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

Page 22: (C) Yohai Devir234267 - October 20051 מבנה מחשבים ספרתיים 234267 תרגול מס' 1: מנהלות חזרה על ארכיטקטורת ה- MIPS

(C) Yohai Devir 234267 - 2005October 22

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 23: (C) Yohai Devir234267 - October 20051 מבנה מחשבים ספרתיים 234267 תרגול מס' 1: מנהלות חזרה על ארכיטקטורת ה- MIPS

(C) Yohai Devir 234267 - 2005October 23

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

:branch של פקודת offsetדוגמא לקידוד ) branch (כתובת פקודת ה-700: אנו נמצאים בכתובת שאלה

. מה עלינו לקודד?800ורוצים לקפוץ לכתובת

stage Execution Memory WriteBack

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

Branch PCsrc

Mem Read

Mem Write

Reg Write

Memto Reg

add 1 1 0 0 010 0 0 0 1 0

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

Page 24: (C) Yohai Devir234267 - October 20051 מבנה מחשבים ספרתיים 234267 תרגול מס' 1: מנהלות חזרה על ארכיטקטורת ה- MIPS

(C) Yohai Devir 234267 - 2005October 24

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

).unsignedהפקודה תבצע חיבור של רגיסטר לקבוע חסר סימן ( והפעולה המתבצעת היא addconst R1,R2,constתחביר הפקודה

R1=R2+const הקבוע .const) 0) - 216-1 הינו מספר חיובי בטווח.

קידוד הפקודה החדשה הוא מסוג:•R•I•JRISCלא ניתן לממש פקודה כזאת במעבד מסוג •אף תשובה אינה נכונה•

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

Page 25: (C) Yohai Devir234267 - October 20051 מבנה מחשבים ספרתיים 234267 תרגול מס' 1: מנהלות חזרה על ארכיטקטורת ה- MIPS

(C) Yohai Devir 234267 - 2005October 25

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 26: (C) Yohai Devir234267 - October 20051 מבנה מחשבים ספרתיים 234267 תרגול מס' 1: מנהלות חזרה על ארכיטקטורת ה- MIPS

(C) Yohai Devir 234267 - 2005October 26

backups

Page 27: (C) Yohai Devir234267 - October 20051 מבנה מחשבים ספרתיים 234267 תרגול מס' 1: מנהלות חזרה על ארכיטקטורת ה- MIPS

(C) Yohai Devir 234267 - 2005October 27

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

16

32

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

1

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

Page 28: (C) Yohai Devir234267 - October 20051 מבנה מחשבים ספרתיים 234267 תרגול מס' 1: מנהלות חזרה על ארכיטקטורת ה- MIPS

(C) Yohai Devir 234267 - 2005October 28

MIPS machine language Name Format

ExampleComments

6 bits 5 bits 5 bits 5 bits 5 bits 6 bits

add R 0 2 3 1 0 32 add $1,$2, $3

sub R 0 2 3 1 0 34 sub $1, $2, $3

addi I 8 2 1 100 addi $1, $2, 100

addu R 0 2 3 1 0 33 addu $1, $2, $3

subu R 0 2 3 1 0 35 subu $1, $2, $3

addiu I 9 2 1 100 addiu $1, $2, 100

mfc0 R 16 0 1 14 0 0 mfc0 $1, $epc

mult R 0 2 3 0 0 24 mult $2, $3

multu R 0 2 3 0 0 25 multu $2, $3

div R 0 2 3 0 0 26 div $2, $3

divu R 0 2 3 0 0 27 divu $2, $3

mfhi R 0 0 0 1 0 16 mfhi $1

mflo R 0 0 0 1 0 18 mflo $1

and R 0 2 3 1 0 36 and $1, $2, $3

or R 0 2 3 1 0 37 or $1, $2, $3

andi I 12 2 1 100 andi $1, $2, 100

Page 29: (C) Yohai Devir234267 - October 20051 מבנה מחשבים ספרתיים 234267 תרגול מס' 1: מנהלות חזרה על ארכיטקטורת ה- MIPS

(C) Yohai Devir 234267 - 2005October 29

MIPS machine language (2) Name Format

ExampleComments

6 bits 5 bits 5 bits 5 bits 5 bits 6 bits

ori I 13 2 1 100 ori $1, $2, 100

sli R 0 0 2 1 10 0 sli $1, $2, 10

sri R 0 0 2 1 10 2 sri $1, $2, 10

lw I 35 2 1 100 lw $1, 100($2)

sw I 43 2 1 100 sw $1, 100($2)

lui I 15 0 1 100 lui $1, 100

beq I 4 1 2 100 beq $1, $2, 100

bne I 5 1 2 100 bne $1, $2, 100

slt R 0 2 3 1 0 42 slt $1, $2, $3

slti I 10 2 1 100 slti $1, $2, 100

sltu R 0 2 3 1 0 43 sltu $1, $2, $3

sltiu I 11 2 1 100 sltiu $1, $2, 100

j J 2 10000 j 10000

jr R 0 31 0 0 0 8 jr $31

jai J 3 1000 jal 10000

Page 30: (C) Yohai Devir234267 - October 20051 מבנה מחשבים ספרתיים 234267 תרגול מס' 1: מנהלות חזרה על ארכיטקטורת ה- MIPS

(C) Yohai Devir 234267 - 2005October 30

Field bits 31--26 25—21 20—16 15--11 10--6 5--0 All instructions 32 bits

Format R R op rs rt rd shamt funct Arithmetic instruction format

Format I I op rs rt address/immediate Transfer, branch, imm. inst. format

Format J J op target address Jump instruction format

Main MIPS machine language. Formats and examples are shown, with values in each field: op and funct fields from the opcode (each 6 bits), rs is a source register (5 bit), rt is also normally a source register (5 bits), rd is the destination register (5 bits), and shamt supplies the shift amount (5 bits). The field values are all in decimal .