1 שלבי ביצוע הוראת מכונה (1) FETCH = קרא הוראה מהזיכרון ע "...

Preview:

Citation preview

1

שלבי ביצוע הוראת מכונה(1 )FETCH = -קרא הוראה מהזיכרון ע"פ הכתובת שמכיל הPC.(2 )DECODE = פענח את הפקודה וקרא את האוגרים הנחוצים

)אחד או שניים(.(3 )EXECUTE = -בעזרת הALU חשב את התוצאה, או כתובת

רצויה.(4 )MEMORY = השתמש בתוצאה לבצע במידת הצורך: או

(.Loadאו קריאה מהזיכרון )( Storeטעינה לזיכרון )(5 )WRITE BACK = .בצע במידת הצורך טעינה לאוגר

2

חלקים בסיסים של המחשב

InstructionAddress

Instruction

InstructionMemory

PC

Write

Add

Sum

3

בתחילת שעון קוראים בסוף שעון כותבים

cycle time

rising edge

falling edge

קווי הבקרה - מחוברים לשעון

4

MIPS תיאור מופשט של מעבד

ALUPCInstruction

Instructionmemory

#register

Registers

Data

#register

#register

address

Datamemory

Data

5

FETCH -שלב ה

Add

PC Readaddress

Instruction

Instructionmemory

6

יחידת הרגיסטרים

Readregister 1

Registers

Readregister 2

Write register

WriteData

Readdata 1

Readdata 2

{{

מספריהאוגרים

Data

7

Arithmetic Logic operation

Readregister 1

Registers

Readregister 2

Write register

WriteData

Read

data 1

Readdata 2

ALU

Zero

ALU operation

ALUresult

Instruction

ALU

ALU

result

ALU operation

8

Load,Store בניית פעולות

Readaddress

Datamemory

Writeaddress

Writedata

Readdata

Write

Read

Signextend

16 32

9

Readregister 1

Registers

Readregister 2

Write register

WriteData

Read

data 1

Read

data 2

ALU

Zero

ALU operation

ALUresult

Instruction

Readaddress

Data

memory

Writeaddress

Writedata

Readdata

Write

Read

Signextend

16 32

LW,SWהמשך בניית

10

Readregister 1

Registers

Readregister 2

Write register

WriteData

Readdata 1

Readdata 2

Instruction

ALU

Zero

ALU operation

ALUresult

Data

Signextend

32

Readaddress

memory

Writeaddress

Writedata

Readdata

Write

Read

16

Mux

Mux

שילוב פעולות אריתמטיות עם פעולות גישה לזיכרון

11

FETCH -הוספת שלב ה

Readregister

1

Registers

Readregister 2

Write register

WriteData

Readdata 1

Readdata 2

ALU

Zero

ALU operation

ALUresult

Data

Signextend

32

Readaddress

memory

Writeaddress

Writedata

Readdata

Write

Read

16

Mux

Mux

Add4

PC

Readaddress

Instruction

Instructionmemory

12

Branch הוספת

ALU

Zero

Readregister 1

Registers

Readregister 2

Write register

WriteData

Readdata 1

Readdata 2

Instruction

AdderSum

Shiftleft 2

SighExtend

BranchTarget

מועברליחידתהבקרהכתוצאההלוגית

שלההשוואה

16 32

PC+4 -משלב הFetch

13

שילוב כל הפקודות

Readregister 1

Registers

Readregister 2

Write register

WriteData

Readdata 1

Readdata 2

Zero

ALU

ALUresult

Data

Signextend 32

Readaddress

memory

Writeaddress

Writedata

Readdata

Write

Read

16

Add4

PC

Mux

Readaddress

Instruction

Instructionmemory

ADD

ALUresult

Shiftleft 2

Mux

Mux

14

קווי בקרה

PC

Instructionmemory

Readaddress

Instruction

16 32

AddMux

Registers

Writeregister

Writedata

Readdata 1

Readdata 2

Readregister 1Readregister 2

4

Mux

ALU operation3

RegWrite

MemRead

MemWrite

PCSrc

ALUSrc

MemtoReg

ALUresult

ZeroALU

Datamemory

Address

Writedata

Readdata M

ux

Signextend

AddALU

resultShiftleft 2

15

Control

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

16

Instruction RegDst ALUSrcMemto-

RegReg

WriteMem Read

Mem Write Branch ALUOp1 ALUp0

R-format 1 0 0 1 0 0 0 1 0lw 0 1 1 1 1 0 0 0 0sw X 1 X 0 0 1 0 0 0beq X 0 X 0 0 0 1 0 1

R-format Iw sw beq

Op0

Op1

Op2

Op3

Op4

Op5

Inputs

Outputs

RegDst

ALUSrc

MemtoReg

RegWrite

MemRead

MemWrite

Branch

ALUOp1

ALUOpO

Control

17

ALU controlALUOp Funct field Operation

ALUOp1 ALUOp0 F5 F4 F3 F2 F1 F00 0 X X X X X X 010X 1 X X X X X X 1101 X X X 0 0 0 0 0101 X X X 0 0 1 0 1101 X X X 0 1 0 0 0001 X X X 0 1 0 1 0011 X X X 1 0 1 0 111

ALU control input

000 AND001 OR010 add110 subtract111 set-on-less-than

00 = lw, sw01 = beq, 11 = arithmetic

ALUop

Operation2

Operation1

Operation0

Operation

ALUOp1

F3

F2

F1

F0

F (5– 0)

ALUOp0

ALUOp

ALU control block

Recommended