מבנה מחשבים ספרתיים 234267
DESCRIPTION
מבנה מחשבים ספרתיים 234267. תרגול מס' 1 : מנהלות חזרה על ארכיטקטורת ה- MIPS. 32. R0 = 0. R1. R30. R31. 32. 32. F0. F1. F0. F2. F3. F2. F28. F29. F28. F30. F31. F30. רגיסטרים (אוגרים). ישנם 32 רגיסטרים לשימוש כללי. רגיסטר R0 ערכו קבוע ושווה 0. - PowerPoint PPT PresentationTRANSCRIPT
(C )Yohai Devir 234267 - October 2005 1
מבנה מחשבים ספרתיים234267
:1תרגול מס' מנהלות
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
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
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קפיצה עקיפה )מיעון לפי ערך האוגר(
5
קידוד הפקודות
בתים4– כלומר סיביות 32כל הפקודות בנות סיביות:32כל סוג מגדיר את החלוקה הפנימית בתוך אותן
ישנם שלושה סוגי פקודות:
R-type - register instructions I-type - immediate J-type - jumps )unconditional(
קבוע בגודלו ונמצא תמיד. הוא חיוני כדי )op )opcodeשדה ה-לדעת מהו סוג הפקודה וכיצד לבצע את החלוקה הפנימית
השונה בין פורמט לפורמט
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
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
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
9
MIPSקונפיגורציות של ה-
•Single Cycle כל פקודה מבוצעת במחזור שעון יחיד בעל זמן מחזור ארוך מאוד•
•Multicycleחלוקת הפקודות למספר שלבים ועבור כל פקודה לבצע בכל שלב חלק מהפעולות. •
מחזורי שעון לפחות )קצרים יותר(. אין שיפור 4רוב הפקודות עדיין משתמשות ב-משמעותי
•Pipeline
הסדרתי לשלבים datapathמחלקים את ה- •כאשר פקודה מסוימת מסיימת את השלב הראשון ועוברת לשלב השני, פקודה חדשה •
נכנסת לשלב הראשון וכן הלאהמתקבל מצב בו בכל מחזור שעון כל פקודה מתקדמת בשלב אחד. כלומר, בכל מחזור •
מסתיימת פקודה אחת ופקודה חדשה נכנסת לביצוע.
10
השלבים הבסיסיים בביצוע פקודות
שלבים בסיסיים:5כל פקודה )למעט נקודה צפה( ניתנת לחלוקה ל-1 .Fetch
שליפת הפקודה לביצוע מהזיכרון.קידום מונה התוכנית לפקודה הבאה לביצוע
(IRאכסון הפקודה ברגיסטר זמני )
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
12
השלבים הבסיסיים בביצוע פקודות
2 .Decode
פענוח הפקודה ויצירת את אותות הבקרה שילוו את הפקודה בהמשך•
Register Fileשליפת ערכי הרגיסטרים המתאימים מתוך •
•Sign Extension-32 סיביות ל-16: הרחבה של האופרנד המקודד מ סיביות
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
DataMemor
yWrite Address
Rd\Rt
ALU
op
Reg
Dst
Rt
Rd
Imm
Inst
ruct
ion
New
PC
New
PC
ALU
resu
lt
14
השלבים הבסיסיים בביצוע פקודות
3 .Execute
ביצוע הפעולה הנדרשת על בסיס הערכים בערוצי המידע: – ביצוע הפעולה הנדרשת ALUעבור פעולת •
– חישוב הכתובת האפקטיביגישה לזיכרון עבור •
– חישוב כתובת היעד וחישוב תנאי הקפיצה ( branchהסתעפות )עבור • ALU האופרנדים מהרגיסטרים הנכנסים ל-2מבצעים את החישוב על •
הראשי אשר מבצע פעולת חיסור וכך ידוע האם יש לקפוץ ZERO נדלק דגל 0אם התוצאה היא –
(BEQ)חישוב כתובת היעד של הקפיצה•
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
16
השלבים הבסיסיים בביצוע פקודות
3 .Memory
Store / Loadקריאה / כתיבה לזיכרון בפקודות (PC )עדכון branchהחלטה האם לקפוץ בפקודות
Control Hazardשימו לב - . עד שהבנו שצריך לקפוץ, pipelineבכל שלב נכנסות פקודות חדשות ל-
אולי נכנסו פקודות שכלל אינן צריכות להתבצע
4 .Write back: או מהזיכרון( לרגיסטר היעד. ALUאכסון התוצאה )מ-
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
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.
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
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
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
22
:שאלה. MIPSלסט הפקודות של ה- addconstברצוננו להוסיף פקודה בשם
(unsignedהפקודה תבצע חיבור של רגיסטר לקבוע חסר סימן )
והפעולה המתבצעת היא addconst R1,R2,constתחביר הפקודה R1=R2+const
0( - ]216-1 הינו מספר חיובי בטווח )constהקבוע
קידוד הפקודה החדשה הוא מסוג:.1R.2I.3JRISCלא ניתן לממש פקודה כזאת במעבד מסוג 4.אף תשובה אינה נכונה5.
?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
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