17
1 הההה ההההה ההההה ההההה( 1 ) FETCH = תתת תתתתת תתתתתתתת ת"ת תתתתתת- תתתתת תPC . ( 2 ) DECODE = תתתת תת תתתתתת תתתת תת תתתתתתת.)תתת תת תתתתת( תתתתתתת( 3 ) EXECUTE = - תתתתת תALU תתת תת תתתתתת, תת תתתתת תתתתת.( 4 ) MEMORY = תתתתת תתתתתת תתתת תתתתת תתתתת: תת( תתתתת תתתתתתתStore ) תתתתתתתת תת תתתתת( Load .) ( 5 ) WRITE BACK = תתת תתתתת תתתתת תתתתת תתתתת.

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

  • View
    229

  • Download
    1

Embed Size (px)

Citation preview

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

1

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

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

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

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

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

2

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

InstructionAddress

Instruction

InstructionMemory

PC

Write

Add

Sum

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

3

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

cycle time

rising edge

falling edge

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

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

4

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

ALUPCInstruction

Instructionmemory

#register

Registers

Data

#register

#register

address

Datamemory

Data

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

5

FETCH -שלב ה

Add

PC Readaddress

Instruction

Instructionmemory

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

6

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

Readregister 1

Registers

Readregister 2

Write register

WriteData

Readdata 1

Readdata 2

{{

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

Data

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

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

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

8

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

Readaddress

Datamemory

Writeaddress

Writedata

Readdata

Write

Read

Signextend

16 32

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

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המשך בניית

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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