Open4U

שאלה 1 מתוך 10

מועד 89 · 2021אהשלמת תרשים24 נק׳פרק חשיפור ביצועים בצנרת

- ערך כל אוגר בתחילת ביצוע הקוד הינו מספרו כפול 0x30 (אוגר 1 ערכו 0x30, אוגר 2 ערכו 0x60 וכן הלאה). - כמו כן נתון שניתן לגשת לכל מרחב הזיכרון בפקודות lw sw (כל עוד הכתובת מתחלקת ב-4). - ערך 1000 המילים הנמוכות בזיכרון מאותחל באופן שכל מילה מאותחלת לערך הנגדי לכתובתה במילים (בהיפוך סימן, משלים ל-2). לדוגמא: מילה בכתובת אפס במילים (בתים 0-3 בזיכרון) מאותחלת לערך 0. מילה בכתובת אחד במילים (בתים 4-7 בזיכרון) מאותחלת לערך מינוס 1. מילה בכתובת 100 במילים (בתים 400-403 בזיכרון) מאותחלת לערך מינוס 100. נתונים אלו תקפים לכל סעיפי השאלה.

נתון קטע הקוד שלהלן באסמבלי של ה-mips:
Address        Code          Basic                     Source
0x2855738c   0x8d0b0100   lw  $11,0x00000100($8)   3    lw   $11,256($8)
0x28557390   0x016b3820   add $7,$11,$11           4    add  $7,$11,$11
0x28557394   0x00ec4822   sub $9,$7,$12            5    sub  $9,$7,$12
0x28557398   0xae090000   sw  $9,0x00000000($16)   6    sw   $9,0($16)
0x2855739c   0x10eb0000   beq $7,$11,0x00000000    7    beq  $7,$11,far_away

בתרשים שלפניכם של מעבד MIPS, העובד בטכנולוגיית צנרת (המבוסס על תרשים 4.66 בנספח, בתוספת המרבב ALUSrc), מתוארת סוף פעימת השעון השישית בביצוע הקוד שבשאלה, ע"פ נתוני השאלה. (בפעימה זו נמצאת בשלב 5, שלב ה-WB, בועה (bubble) כתוצאה מ-load use.) בתרשים 6 סימונים B1-B6 על קווים מסוימים על המעבד. עליכם למלא בטבלה בטופס התשובות את הערכים על קווים אלו, בהנחה שסיכוני הנתונים נפתרים ע"י יחידת העברה קדימה, יחידת איתור סיכונים (Forwarding Unit, HDU) וחציית מקבץ האוגרים. לדוגמא, ראו את הבועה (Bubble) בשלב 5 בתרשים, שנוצרה כתוצאה מסיכון load use בקוד. - יש להציג בבסיס הקסא (4 נק' לסימון). - ערך לא ידוע יש לסמן ב-X.

Five-stage MIPS pipelined datapath with hazard detection unit, forwarding unit, IF/ID, ID/EX, EX/MEM and MEM/WB pipeline registers, and exception (Cause/EPC) hardware. Column headers name the instruction in each stage at the end of clock cycle 6: stage 1 beq $7,$11,far_away, stage 2 sw $9,0($16), stage 3 sub $9,$7,$12, stage 4 add $7,$11,$11, stage 5 Bubble. Six red probe points: B1 on the PC+4 adder output in IF, B2 on the register file Write register input, B3 on the sign-extend output, B4 on the register file Read data 1 output, B5 on the ForwardA mux output feeding ALU input 1, and B6 on the ForwardB mux output carrying the rt value.