Download presentation
Presentation is loading. Please wait.
1
234262 Solving MIPS Exam Problems 21:12 234262 © Dima Elenbogen 2010, Technion 1
2
LWA Ri, Rj 21:12234262 © Dima Elenbogen 2010, Technion2
3
קידוד של LWA Ri, Rj 21:12234262 © Dima Elenbogen 2010, Technion 3
4
קידוד של LWA Ri, Rj 21:12234262 © Dima Elenbogen 2010, Technion4
5
תוכנית פעולה של LWA Ri, Rj 21:12234262 © Dima Elenbogen 2010, Technion5
6
מימוש LWA Ri, Rj 21:12234262 © Dima Elenbogen 2010, Technion6
7
למה נחוץ מחזור ההמתנה ? 21:12234262 © Dima Elenbogen 2010, Technion7 Tpd Tpd ≈ Tcycle
8
LWC Rn, const 21:12234262 © Dima Elenbogen 2010, Technion8 Pay attention that this command occupies 2 words!
9
קידוד של LWC Rn, const 21:12234262 © Dima Elenbogen 2010, Technion9 OPRsRtIM OP...Rn1 6 bit5 bit 16 bit const 32 bits α:α: α+4:
10
רעיון למימוש של LWC Rn, const 21:12234262 © Dima Elenbogen 2010, Technion10 IRIR M3 M3 5 IR[d] 5 IR[t] 5 IR[s] M4 M4 N REG1 W DATA M5 M5 R s R t M6 M6 12 IR[OP+FUN] N REG2 16 IR[IM] WN REG ZERO REG FILE 4 44 SIGN EXT C1 C3 WRITEWRITE 6 IR[OP] ALUout BPCBPC PCPC M1 M1 M2 M2 ZERO IR[XI] 26 PC[31:28] C2 2 0 4 WRITEWRITE READREAD ALUout ADDR MEMout MEM WDATA ALUALU OPRsRtIM OP...Rn1 Const למה קידדנו את Rn דווקה ב -Rt?
11
שלב decode מקורי 234262 – © Yohai Devir 2007 Dima Elenbogen 2010 Technion - IIT IRIR 5 IR[t] 5 IR[s] N REG1 RsRs RtRt M5 M5 M6 M6 ALUALU N REG2 REG FILE 16 IR[IM] 44 SIGN EXT C1 6 IR[OP] ALUout BPCBPC PCPC C1 is decoding IR[OP] Rs is being read Rt is being read BPC ← PC + SX(Imm)*4
12
תוספת בשלב decode 234262 – © Yohai Devir 2007 Dima Elenbogen 2010 Technion - IIT IRIR M5 M5 M6 M6 ALUALU 16 IR[IM] 44 SIGN EXT C1 6 IR[OP] ALUout BPCBPC PCPC IRIR M5 M5 M6 M6 ALUALU PCPC M1 M1 M2 M2 ADDR MEMout MEM WDATA C1 is decoding IR[OP]... BPC ← PC + SX(Imm)*4 MEMout <= MEM(PC) // BPC ← α + 8 // Read the const value from the memory השינוי לא פוגע בפקודות אחרות ! OPRsRtIM OP...Rn1
13
שלב ייחודי ל - LWC Rn, const M2 M2 5 IR[d] REG FILE ADDR MEMout MEM WDATA PCPC M1 M1 21:12234262 © Dima Elenbogen 2010, Technion13 Rt ← Mem(PC) PC ← BPC WB: // Rt ← MEM[α + 4] // PC ← α + 8 IRIR M3 M3 5 IR[t] 5 IR[s] M4 M4 N REG1 W DATA M5 M5 R s R t M6 M6 12 IR[OP+FUN] N REG2 16 IR[IM] WN REG ZERO 4 44 SIGN EXT C1 C3 WRITEWRITE 6 IR[OP] ALUout BPCBPC ZERO IR[XI] 26 PC[31:28] C2 2 0 4 WRITEWRITE READREAD ALUout ALUALU OPRsRtIM OP...Rn1
14
מימוש של LWC Rn, const 21:12234262 © Dima Elenbogen 2010, Technion14 OPRsRtIM OP...Rn1 6 bit5 bit 16 bit const 32 bits IR ← Mem(PC) PC ← PC + 4 Fetch: // PC ← α + 4 C1 is decoding IR[OP]... BPC ← PC + SX(Imm)*4 MEMout <= MEM(PC) // BPC ← α + 8 // Read the const value Decode: Rt ← Mem(PC) PC ← BPC WB: // Rt ← MEM[α + 4] // PC ← α + 8 פעולה נוספת ב - decode
15
שלב ייחודי אלטרנטיבי ל - LWC Rn, const 21:12234262 © Dima Elenbogen 2010, Technion15 Rt ← Mem(PC) PC ← PC + 4 WB: // Rt ← MEM[α + 4] // PC ← α + 8 OPRsRtIM OP...Rn... IRIR M3 M3 5 IR[d] 5 IR[t] 5 IR[s] M4 M4 N REG1 W DATA M5 M5 R s R t M6 M6 12 IR[OP+FUN] N REG2 16 IR[IM] WN REG ZERO REG FILE 4 44 SIGN EXT C1 C3 WRITEWRITE 6 IR[OP] ALUout BPCBPC PCPC M1 M1 M2 M2 ZERO IR[XI] 26 PC[31:28] C2 2 0 4 WRITEWRITE READREAD ALUout ADDR MEMout MEM WDATA ALUALU
16
ADDMEM Ri, Rj, Imm 21:12234262 © Dima Elenbogen 2010, Technion16
17
קידוד ADDMEM Ri, Rj, Imm 21:12234262 © Dima Elenbogen 2010, Technion17 OPRsRtIM OPRiRjImm 6 bit5 bit 16 bit IRIR M3 M3 5 IR[d] 5 IR[t] 5 IR[s] M4 M4 N REG1 W DATA M5 M5 R s R t M6 M6 12 IR[OP+FUN] N REG2 16 IR[IM] WN REG ZERO REG FILE 4 44 SIGN EXT C1 C3 WRITEWRITE 6 IR[OP] ALUout BPCBPC PCPC M1 M1 M2 M2 ZERO IR[XI] 26 PC[31:28] C2 2 0 4 WRITEWRITE READREAD ALUout ADDR MEMout MEM WDATA ALUALU
18
IRIR M3 M3 5 IR[d] 5 IR[t] 5 IR[s] M4 M4 N REG1 W DATA M5 M5 R s R t M6 M6 12 IR[OP+FUN] N REG2 16 IR[IM] WN REG ZERO REG FILE 4 44 SIGN EXT C1 C3 WRITEWRITE 6 IR[OP] ALUout BPCBPC PCPC M1 M1 M2 M2 ZERO IR[XI] 26 PC[31:28] C2 2 0 4 WRITEWRITE READREAD ALUout ADDR MEMout MEM WDATA ALUALU פיתרון קל ל - ADDMEM Ri, Rj, Imm 21:12234262 © Dima Elenbogen 2010, Technion18
19
IRIR M3 M3 5 IR[d] 5 IR[t] 5 IR[s] M4 M4 N REG1 W DATA M5 M5 R s R t M6 M6 12 IR[OP+FUN] N REG2 16 IR[IM] WN REG ZERO REG FILE 4 44 SIGN EXT C1 C3 WRITEWRITE 6 IR[OP] ALUout BPCBPC PCPC M1 M1 M2 M2 ZERO IR[XI] 26 PC[31:28] C2 2 0 4 WRITEWRITE READREAD ALUout ADDR MEMout MEM WDATA ALUALU עלות הפיתרון הקל ל - ADDMEM Ri, Rj, Imm 21:12234262 © Dima Elenbogen 2010, Technion19 קל, אך יקר. עלותו היא 2*32+32 = 96 ש '' ח. דורש 4 מחזורים.
20
N REG1 0 IRIR M3 M3 5 IR[d] 5 IR[t] 5 IR[s] M4 M4 W DATA M5 M5 R s R t M6 M6 12 IR[OP+FUN] N REG2 16 IR[IM] WN REG ZERO REG FILE 4 44 SIGN EXT C1 C3 WRITEWRITE 6 IR[OP] ALUout BPCBPC PCPC M1 M1 M2 M2 ZERO IR[XI] 26 PC[31:28] C2 2 0 4 WRITEWRITE READREAD ALUout ADDR MEMout MEM WDATA ALUALU פיתרון בינוני ל - ADDMEM Ri, Rj, Imm 21:12234262 © Dima Elenbogen 2010, Technion20 עלות בינונית : היא 2*32+2*5 = 74 ש '' ח. אין לנו קבוע 0 בקידוד הפקודה, לכן נדרש בורר לפני REG1. הפיתרון דורש יותר מ -4 מחזורים. כתובת שאליה נכתוב נשמרת ב -PC. כמובן, חובה לשחזר את ערך ה -PC הקודם לאחר השלמת עידכון הזיכרון. BPC ישמש לכך.
21
הפיתרון הזול ביותר ל - ADDMEM Ri, Rj, Imm 21:12234262 © Dima Elenbogen 2010, Technion21 OPRsRtIM OPRiRjImm
22
הפיתרון הזול ביותר ל - ADDMEM Ri, Rj, Imm 21:12234262 © Dima Elenbogen 2010, Technion22
23
הפיתרון הזול ביותר ל - ADDMEM Ri, Rj, Imm 21:12234262 © Dima Elenbogen 2010, Technion23 מחזורי קריאת רגיסטרים חדשים מחזור קריאת רגיסטרים אחרי עידכון מחזורי קריאת רגיסטרים חדשים שימו לב לכתיבות שנעשות במקביל במחזור הלפני אחרון מחזורים 2, 13 ו -14: גיבוי ערך PC ב -BPC ושיחזור הערך משם
24
מחזורי קריאה ( המתנה ) מ -2 סוגים ? 21:12234262 © Dima Elenbogen 2010, Technion24 Tpd Tpd ≈ Tcycle מחזורי קריאת רגיסטרים חדשים מחזור קריאת רגיסטרים אחרי עידכון
25
Pipelined MIPS 21:12234262 © Dima Elenbogen 2010, Technion25 IFIDEXMEMWB The main problem of the pipelined MIPS are data hazards. If a command updates Rk, its new value will become available only 3 commands later. A compiler/programmer should optimize code in order to minimize the data hazards. When they are inevitable, 2 solutions are possible: The compiler/programmer can intentionally insert NOP commands. (In reality) If a processor has a data hazard detection unit, the unit should detect the hazards and delay processing of the reading commands.
26
SWI Rj Rk 21:12234262 © Dima Elenbogen 2010, Technion26
27
קידוד של SWI Rj Rk 21:12234262 © Dima Elenbogen 2010, Technion27 OPRsRtIM OPRjRk4 6 bit5 bit 16 bit
28
SWI Rj Rk 21:12234262 © Dima Elenbogen 2010, Technion28 OPRsRtIM OPRjRk4 6 bit5 bit 16 bit
29
מימוש של SWI Rj Rk 21:12234262 © Dima Elenbogen 2010, Technion29
30
תשובה ל - SWI Rj Rk 21:12234262 © Dima Elenbogen 2010, Technion30
31
Single-Cycle MIPS 21:12234262 © Dima Elenbogen 2010, Technion31 מבצע כל פקודה במחזור אחד. הבקר צירופי. האוגר היחיד PC אינו מותנה. המסלול הצירופי הארוך ביותר באורך 5 יח ' איטיות.
32
Single-Cycle MIPS - Improvements 21:12234262 © Dima Elenbogen 2010, Technion32 ניסיון " לשפר " את המעבד בד '' כ מפרק טיפול בפקודה ל -2 או יותר מחזורים. לפעמים זה אפילו פוגע בישימות של חלק מהפקודות.
33
Single-Cycle MIPS (Exercise) 21:12234262 © Dima Elenbogen 2010, Technion33
34
Single-Cycle MIPS (Exercise) 21:12234262 © Dima Elenbogen 2010, Technion34
35
ואל תעשו בהן טעויות מטופשות ! © Dima Elenbogen 2010, Technion – Israel Institute of Technology
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.