Upload
cade-ballard
View
40
Download
2
Embed Size (px)
DESCRIPTION
מבנה מחשבים ספרתיים 234267. שאלות ממבחנים – OOOE , BTB מבוסס על תרגול של אורן קצנגולד. שאלה 1 – OOOE (35 נק'). נתונה מערכת אשר עובדת בשיטת OOO כפי שמדנו בכיתה המערכת יכולה לבצע : שתי פעולות fetch כל מחזור שעון . שתי פעולות decode כל מחזור שעון . - PowerPoint PPT Presentation
Citation preview
(C) Yohai Devir 234267 - January 2006 1
ספרתיים מחשבים מבנה234267
ממבחנים OOOE, BTB –שאלותקצנגולד אורן של תרגול על מבוסס
(C) Yohai Devir 234267 - January 2006 2
'OOOE( 35) – 1שאלה נק בשיטת עובדת אשר מערכת בכיתה OOOנתונה שמדנו כפי
לבצע יכולה :המערכתפעולות שעון fetchשתי מחזור .כלפעולות שעון decodeשתי מחזור .כלפעולות לוקחת ) ALU integerשתי פעולה כל שעון מחזור כל
) בלבד אחד .מחזורהפעולות ) 5כל storeאו loadפעולת קרי שעון אינןמחזורי
pipeline 5ולוקחות .) לביצוע שעון מחזוריתורים ) גדלי כרצונכם ( rob, mob, RSהניחו .גדולים
ה סוגי כל את לבצע יכולה לכל bypassing-המערכת שלב מכל.שלב
טועה ) branch predictionלמערכת שאינו קרי אידיאלי.(לעולם
(C) Yohai Devir 234267 - January 2006 3
: הבאה התוכנית נתונהR0 = 0R1 = 0
L1: R4 = 20R5 = load 100(R4) ;load from the address in
(R4) + 100R3 = R2+2R5 = R3 + 2R6 = 6R7 = R5R8 = 8;R9 = 9R1 = R1 + 1;IF (R1 < 100) goto L1 ;
L2: R4 = 23.כפי שנלמד בכיתה MIPS נק'( תרגמו את התוכנית לאסמבלי של 5) א.
(C) Yohai Devir 234267 - January 2006 4
R0 = 0R1 = 0
L1: R4 = 20R5 = load 100(R4)
R3 = R2+2R5 = R3 + 2R6 = 6R7 = R5R8 = 8;R9 = 9R1 = R1 + 1;IF (R1 < 100) goto
L1 ;L2: R4 = 23
ADDIR10,R0,100
SUB R1,R1,R1L1: ADDI
R4,R0,20LW
R5,100(R4)ADDI R3,R2,2ADDI R5,R3,2ADDI R6,R0,6ADD R7,R5,R0ADDI R8,R0,8ADDI R9,R0,9ADDI R1,R1,1BNE R1,R10,L1
L2: ADDIR4,R0,23
(C) Yohai Devir 234267 - January 2006 5
נקודות( שרטטו את מצב במערכת באשר מסיימים את 10 ) ב..בפעם השנייה 1Lשל פקודה fetch- ביצוע פעולת ה
6
Fetch Q
MOBRSROB
Execute
Retire
RAT
R1
R2
R3
R4
R5
R6
R7
7
Fetch Q
MOBRSROB
Execute
Retire
RAT
R1
R2
R3
R4
R5
R6
R7
Sub R1,R1,R1
Addi R10,R0,100
8
Instruction Q
MOB
ROB
Execute
Retire
RAT
Lw R5, 100(R4)
Addi R4,R0,20
Addi R10,R0,100
R1
R2
R3
R4
R5
R6
R7
R8
R9
R10
RS0
RS
RB0R0+100rb0
Sub R1,R1,R1
rb1
RS1
RB1R1-R1
9
Instruction Q
ROB
Execute
Retire
RAT
Addi R5,R3,2
Addi R3,R2,2
Addi R10,R0,100
R1
R2
R3
R4
R5
R6
R7
R8
R9
R10
RS0
RS
RB0R0+100rb0
Sub R1,R1,R1
rb1
RS1
RB1 R1-R1
RB1 R1-R1
RB0 R0+100Addi R4,R0,20
X 100+R4
RS2RS3
Lw R5, [x] M0
rb4rb2
RB2 R0+20
RB3rb2+100
MOB
RB4MEM(rb3)
10
RB6 rb5+2
RB5 R2+2
Instruction Q
ROB
Execute
Retire
RAT
Add R7,R5,R0
Addi R6,R0,6
Addi R10,R0,100
R1
R2
R3
R4
R5
R6
R7
R8
R9
R10
RS
rb0
Sub R1,R1,R1
rb1
Addi R4,R0,20
X 100+R4
RS2RS3
Lw R5, [x] M0
rb2
MOB
RB4 MEM(RB3)
RB2R0+20
okok
W
W
Addi R3,R2,2
Addi R5,R3,2
RB2R0+20
RB3 rb2+100
rb5
rb6
RS4RS5
11
Instruction Q
ROB
Execute
Retire
RAT
Addi R9,R0,9
Addi R8,R0,8
R1
R2
R3
R4
R5
R6
R7
R8
R9
R10
RS
rb2
MOB
RB4 MEM(RB3) WRB3 rb2+100
RB5 R2+2
RB6 rb5+2
rb5
rb6
R1 RB1R10 RB0
RB3 rb2+100RB5 R2+2
W
RB8 rb6+R0
RB7 R0+6
Addi R10,R0,100
Sub R1,R1,R1
Addi R4,R0,20
X 100+R4Lw R5, [x]
Addi R3,R2,2
Addi R5,R3,2
RS3M0
okok
RS4RS5
Add R7,R5,R0
Addi R6,R0,6
ok
RS0RS1
rb7rb8
RB6 rb5+2
Instruction Q
ROB
Execute
Retire
RAT
Bne R1,R10,L1
Addi R1,R1,1
R1
R2
R3
R4
R5
R6
R7
R8
R9
R10
RS
MOB
RB4 MEM(RB3) (1)
rb5
rb6
RB8 rb6+R0
RB7 R0+6
Addi R4,R0,20
X 100+R4Lw R5, [x]
Addi R3,R2,2
Addi R5,R3,2
ok M0
ok RS5
Add R7,R5,R0
Addi R6,R0,6
ok
RS0RS1
rb7rb8
R4 RB2
RB6 rb5+2
RB7 R0+6
W
Addi R8,R0,8
Addi R9,R0,9
rb9
rb0
RS3
RS2
RB9 R0+8
RB0 R0+9
Instruction Q
ROB
Execute
Retire
RAT
Lw R5,100)R4(
Addi R4,R0,20
R1
R2
R3
R4
R5
R6
R7
R8
R9
R10
RS
MOB
RB4 MEM(RB3) (2)
rb5
rb6
RB8 rb6+R0
X 100+R4Lw R5, [x]
Addi R3,R2,2
Addi R5,R3,2
ok M0
ok ok
Add R7,R5,R0
Addi R6,R0,6 ok RS1
rb7rb8
Addi R8,R0,8
Addi R9,R0,9
rb9
rb0
RS3
RS2
RB9 R0+8
RB0 R0+9
RB8rb6+R0RB9R0+8
W (SH)
Bne R1,R10,L1
Addi R1,R1,1
rb1
RB1 R1+1
RB2 rb1-R10RS4RS5 Only 2 ALU!
(C) Yohai Devir 234267 - January 2006 14
של המערכת כאשר CPI נקודות( בצעו חישוב מקורב של ה- 5 )ג..מבצעים את התוכנית כולה
פעמים, זמן ביצוע שאר השורות 100היות והלולאה מבוצעת זניח.
בפעם הראשונה עד הרגע שבו LW ל- fetchמהרגע שבו בוצע מחזורי שעון. לפיכך גם בין 5 פעם שניה חלפו fetchבוצע
5תחילת קריאה מהזכרון ועד שנוכל לקרוא בשנית יעברו מחזורי שעון – לא יהיו עיכובים כתוצאה מהקריאות.
לא מעכב כיוון שיש מחזור שעון בו יש structural hazardה- EXEרק פקודת אחת בשלב ה-
0.5 הוא בקרוב CPI ה- פקודות בלולאה 10יש סה"כ
(C) Yohai Devir 234267 - January 2006 15
R0 = 0R1 = 0R4 = 20R6 = 6R8 = 8;R9 = 9
L1: R5 = load 100(R4) R3 = R2+2
R5 = R3 + 2R1 = R1 + 1;IF (R1 < 100) goto L1R7 = R5
L2: R4 = 23
נקודות( קומפיילר ביצע אופטימיזציה של הקוד ויצר את הקוד 5) הבא
!!!נקודות( האם התוכניות זהות )מבחינת התוצאה( נמקו2)
(C) Yohai Devir 234267 - January 2006 16
R0 = 0R1 = 0
L1: R4 = 20R5 = load 100(R4)
R3 = R2+2R5 = R3 + 2R6 = 6R7 = R5R8 = 8R9 = 9R1 = R1 + 1IF (R1 < 100) goto
L1L2: R4 = 23
R0 = 0R1 = 0R4 = 20R6 = 6R8 = 8R9 = 9
L1: R5 = load 100(R4) R3 = R2+2
R5 = R3 + 2R1 = R1 + 1IF (R1 < 100) goto
L1R7 = R5
L2: R4 = 23התכניות זהות. כל השינוי הוא הוצאת הצבות קבועות לרגיסטרים שאינם בשימוש
בלולאה אל מחוץ ללולאה.
(C) Yohai Devir 234267 - January 2006 17
המקורב של התוכנית הזאת ? מה זה אומר CPI נקודות) מה ב- 3( לגבי הביצועים של המערכת לפני ואחרי האופטימיזציה ?
אמנם הקטנו את מספר הפקודות שבלולאה לחמש, אבל כל לוקחת חמישה מחזורי שעון, ואי אפשר לבצע את LOADפעולת
מחזורי שעון כדי שכל 5 במקביל, לכן ידרשו LOADפעולות ה- לולאה תסתיים.
מבחינת הביצועים – לא יהיה שינוי!! בקרוב אבל 2 גדל פי CPI, אמנם ה- CC*CPI*ICזמן הריצה הוא
בקרוב.2 קטן פי ICה-
(C) Yohai Devir 234267 - January 2006 18
ALUעל מנת לשפר את ביצועי המערכת הוספנו עוד יחידת INTEGER .)קרי יש עכשיו שלוש(
של המערכת ביחס לתוכנית CPI נקודות( האם שופר ה- 5)הראשונה, אם כן בכמה?
לא גורם לעיכובים, הוספת structural hazardלא, היות וה- נוספת לא תשנה דבר בריצת התכנית.ALUיחידת
ALU נקודות( הציעו שפור נוסף לחומרת המערכת )בנוסף ל-5)השלישי( שישפר את ביצועי התוכנית השניה ביחס לביצועים
(. aשחישבתם בסעיף הקודם )
.LD מהירה יותר או ביצוע מקבילי של פעולות LDלמשל פעולת
(C) Yohai Devir 234267 - January 2006 19
הסתעפויות – )2שאלה '(35חיזוי נק
המצונר )SHABATחברת המעבד את לשווק הבא:( pipelineהחלה
- ב תחנה מסמן מלבן -, pipelineכל ב שלב .pipe וכל אחד שעון מחזור לוקח
מהזיכרון ) הפקודה הבאת כי של( FETCHידוע הראשון בשלב מתבצערגיסטר pipelineה- מצוי גם הסתעפות ). PCשבו Branchהכרעת
Resolution )בשלב ה , Eמתבצע פקודת כאשר רק מגיעה Branch-כלומר. Eלשלב כתובת של ערכה גם ידוע זה בשלב כי הניחו נבדק הקפיצה תנאי
- ל אותה לטעון וניתן הנכונה .PCהקפיצה הצורך במידת
PC A B C D E F
(C) Yohai Devir 234267 - January 2006 20
חלקיתתוכניתנתונה
לולאה של איטרציות.3
5לולאה של איטרציות.
0 MOV R10,#54 L3 ADDI R7,R8,#1…..24 MOV R1,#328 L1 DEC R132 B1: BNE R1,R0,L1…..100 ADDI R7,R8,#1104 DEC R10108 B3: BNE R10,R0,L3
המספרים בעמודה הראשונה הם כתובות של הוראות(.)
(C) Yohai Devir 234267 - January 2006 21
נתון כי ביצוע התוכנית הנ"ל במערכת המתוארת, כאשר לא משתמשים בשום מנגנון לחיזוי הסתעפויות והוא מבצע מדיניות של
Always assume NOT taken , מחזורי שעון.282לוקח
נוספות, כמה מחזורים branch נקודות( בהנחה שאין פקודות 5)א-היה לוקח ביצוע התוכנית אילו המעבד היה מצויד בחזאי קפיצות
מושלם ?
branch הם תוצאה של 282נבדוק כמה מחזורים מתוך ה- misprediction.וכמה נחוצים לחישובים עצמם
NT במדיניות לא קופצת 5 קפיצות ובפעם ה- 4לולאה חיצונית מבצעת . טעויות חיזוי4יהיו
קפיצות ובפעם 2לולאה פנימית )בכל איטרציה של לולאה חיצונית( מבצעת טעויות חיזוי בכל איטרציה של הלולאה 2 ישנן השלישית לא קופצת
10 לולאות חיצוניות, הלולאה הפנימית "תורמת" 5 לאורך החיצונית .טעויות חיזוי
(C) Yohai Devir 234267 - January 2006 22
מחזורי 5 טעויות חיזוי כשכל טעות חיזוי מבזבזת 14בשתי הלולאות יש שעון.
במקרה של חזאי מחזורי שעון 70=14*5הפסדנו בגלל חיזויים לא נכונים מחזורי שעון.212=282-70קפיצות מושלם ביצוע התכנית היה לוקח
(C) Yohai Devir 234267 - January 2006 23
נקודות( כדי לשפר את ביצועי המעבד הוחלט לממש 10) ב., BTB ברמה אחת המבוסס על, Branch Prediction מנגנון כניסות והמיפוי אליו נעשה בעזרת הביטים הנמוכים של 8מכיל
הכתובת ) ללא שני הנמוכים ביותר(. הניחו כי ניחוש מתבצע .PCואז גם נטען הערך החזוי ל- pipelineבשלב הראשון ב-
עליכם (, taken, not-taken )על מנת לנחש את כיוון הקפיצהשימו לב ) לכל כניסה בטבלה סיביות2בת לבנות מכונת מצבים
, BTBכי מכונה זאת יכולה להיות שונה מהמכונה המשומשת ב- ולשם הפשטות נניח כי אותה מכונת מצבים משמשת לכל
הכניסות(. הציעו את מכונת המצבים שתתן ביצועים אופטימליים )לא בהכרך אידיאליים!( מבחינת אחוז החיזויים הנכונים עבור
'.התוכנית שהוצגה בסעיף א
.BTBניתן להניח שבתחילת ריצת התכנית הפקודות נמצאות ב-
(C) Yohai Devir 234267 - January 2006 24
בת שמכונה לב , 2נשים בעלת היא לא 4סיביות לעולם ולכן מצבים , מכונה לבנות ניתן אבל החיצונית ללולאה אידיאלי חיזוי לתת תוכל
. הפנימית ללולאה אידיאלי חיזוי שתתן - ב שונות לכניסות מתמפות השורות ששתי לב 32שורה ) BTBנשים
לא( 1101100 – 108שורה, 0100000– אידיאלית מכונה לכן. הלולאות שתי בין לשילוב להתייחס צריכה
עם ממכונה :3נתחיל , הפנימית הלולאה עבור אידיאלית מצבים
T T NT
(C) Yohai Devir 234267 - January 2006 25
נקבל הלולאות בשני הרצויים השינויים אחרי נעקוב אם: הם הפנימית הלולאה עבור הרצויים שהמעברים
T T NT
T T
NT
(C) Yohai Devir 234267 - January 2006 26
: להוסיף" יש החיצונית בלולאה מינימלי שגיאות מספר לקבל מ ע
T T NT
T T
NT
T
(C) Yohai Devir 234267 - January 2006 27
, ביצועי על להשפיע ומבלי מקרים בעוד גם תטפל שהמכונה כדי: שלנו התכנית
T T NT
T/NT
NT
T
T/NT
(C) Yohai Devir 234267 - January 2006 28
נקודות( כמה מחזורי שעון תיקח הרצת התוכנית עם 5ג. )המנגנון של סעיף ב' ?
כל החיזויים נכונים למעט טעות אחת בלולאה החיצונית באיטרציה השלישית.
212+1*5=217CC
(C) Yohai Devir 234267 - January 2006 29
נקודות( עם הזמן השתכללה התוכנית שמורצת על 10ד. ) :המעבד ועכשיו היא
3לולאה של איטרציות.
5לולאה של איטרציות.
לולאה איסופית.
8לולאה של איטרציות.
0 MOV R10,#04 L4 ADDI R10,#1…..24 MOV R1,#328 L1 DEC R132 B1: BNE R1,R0,L1…..88 MOV R2,#592 L2 DEC R296 B2: BNE R2,R0,L2…..104 MOV R3,#8108 L3 DEC R3112 B3: BNE R3,R0,L3…..128 JMP L4
(C) Yohai Devir 234267 - January 2006 30
כדי להתמודד עם תוכנית מורכבת שכזו ציידו את המעבד במנגנון Two Level Branch Prediction.
סיביות. טבלאות מכונות 7רגיסטר ההיסטוריה הוא לוקלי ובעל כל מכונות המצבים הן :. המצבים הן גם לוקליות
00 ST
01 WT
10 WNT
11 SNT
NT NTNT
Taken
Taken
TakenTaken Not Taken
. WNT וכולן מאתחלות למצב
אם כל החיזויים , t יציבה" בזמן"נגדיר שהוראת הסתעפות היא .הם נכונים t שלה מזמן
(C) Yohai Devir 234267 - January 2006 31
0 MOV R10,#04 L4 ADDI R10,#1…..24 MOV R1,#328 L1 DEC R132 B1: BNE R1,R0,L1…..88 MOV R2,#592 L2 DEC R296 B2: BNE R2,R0,L2…..104 MOV R3,#8108 L3 DEC R3112 B3: BNE R3,R0,L3…..128 JMP L4
כאשר הוראת R10 מה יהיה ערכו שלתתייצבנה. אם B1ו- B3 הסיעוף
לדעתכם הן אינן מתייצבות כלל ציינו מדוע.
ניתן להניח שאין הסתעפויות נוספות בתכנית.
(C) Yohai Devir 234267 - January 2006 32
היות וטבלאות מכונות המצבים הם לוקאליות, והיות ועבור כל אחת מהלולאות אין לנו התנגשויות בין סדרות ההיסטוריה )לא קיימת סדרת
היסטוריה שעבורה אנחנו פעם עושים קפיצה ופעם לא(. לכן מספיק לנו להגיע לסדרת היסטוריה פעם אחת כדי שמאז החיזוי שלנו עבור אותה
.סדרת היסטוריה יהיה נכון תמיד
איטרציות בכל פעם:3 לדוגמא מבצעת B1לולאה
T T N T T N T T N T T N T …
:B1המצבים שחוזרים על עצמם עבור הוראת סיעוף
T T N T T N T
T N T T N T T
N T T N T T N
את המצבים הנ"ל הוראת ההסתעפות מכירה רק בפעם השלישית )במלואה( – באיטרציה השלישית של הלולאה B1שמבוצעת לולאה
החיצונית.
(C) Yohai Devir 234267 - January 2006 33
איטרציות בכל פעם:8 מבצעת B3לולאה
T T T T T T T N T T T T T T T N T T…
תהיה יציבה לאחר שתכיר את B3 הוראת ההסתעפות של המצבים שחוזרים על עצמם. הדבר יהיה בסוף הפעם 8כל
.B3השניה בה תבוצע לולאה
נעבור על כל סדרות ההיסטוריה האפשריות B3 עבור לולאה איטרציות 3ב- B1 עבורה בשתי האיטרציות הראשונות ועבור
איטרציות של הלולאה החיצונית שתי 3ראשונות. לאחר הוראות ההסתעפות תהיינה יציבות.
3לאחר באחד R10בכל איטרציה חיצונית מקודם . R10=3איטרציות של הלולאה החיצונית
(C) Yohai Devir 234267 - January 2006 34
נקודות( חזור על סעיף ד' בהנחה שאורך רגיסטר 5)ה. . סיביות בלבד6ההיסטוריה הוא
111111אף פעם לא תתיצב כי עבור סדרת היסטוריה B3 לולאהופעם לא (B3אנחנו פעם עושים קפיצה )איטרציה שביעית של
(.B3עושים קפיצה )איטרציה שמינית של
(C) Yohai Devir 234267 - January 2006 35
ו. חזור על סעיף ד' בהנחה שמשתמשים ברגיסטר היסטוריה אחד . סיביות10בלבד )גלובלי( באורך
במקרה זה סדרות ההסטוריה יהיו:TTN TTTTN TTTT TTTN TTN TTTTN TTTT TTTN
אין התנגשויות בין סדרות ההיסטוריה. בשתי איטרציות נעבור על R10=2כל סדרות ההיסטוריה האפשריות ואז