35
(C) Yohai Devir 234267 - January 2006 1 םםםם םםםםםם םםםםםםם234267 םםםםם םםםםםםםOOOE, BTB םםםםם םם םםםםם םם םםםם םםםםםםם

מבנה מחשבים ספרתיים 234267

Embed Size (px)

DESCRIPTION

מבנה מחשבים ספרתיים 234267. שאלות ממבחנים – OOOE , BTB מבוסס על תרגול של אורן קצנגולד. שאלה 1 – OOOE (35 נק'). נתונה מערכת אשר עובדת בשיטת OOO כפי שמדנו בכיתה המערכת יכולה לבצע : שתי פעולות fetch כל מחזור שעון . שתי פעולות decode כל מחזור שעון . - PowerPoint PPT Presentation

Citation preview

Page 1: מבנה מחשבים ספרתיים 234267

(C) Yohai Devir 234267 - January 2006 1

ספרתיים מחשבים מבנה234267

ממבחנים OOOE, BTB –שאלותקצנגולד אורן של תרגול על מבוסס

Page 2: מבנה מחשבים ספרתיים 234267

(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למערכת שאינו קרי אידיאלי.(לעולם

Page 3: מבנה מחשבים ספרתיים 234267

(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) א.

Page 4: מבנה מחשבים ספרתיים 234267

(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

Page 5: מבנה מחשבים ספרתיים 234267

(C) Yohai Devir 234267 - January 2006 5

נקודות( שרטטו את מצב במערכת באשר מסיימים את 10 ) ב..בפעם השנייה 1Lשל פקודה fetch- ביצוע פעולת ה

Page 6: מבנה מחשבים ספרתיים 234267

6

Fetch Q

MOBRSROB

Execute

Retire

RAT

R1

R2

R3

R4

R5

R6

R7

Page 7: מבנה מחשבים ספרתיים 234267

7

Fetch Q

MOBRSROB

Execute

Retire

RAT

R1

R2

R3

R4

R5

R6

R7

Sub R1,R1,R1

Addi R10,R0,100

Page 8: מבנה מחשבים ספרתיים 234267

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

Page 9: מבנה מחשבים ספרתיים 234267

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)

Page 10: מבנה מחשבים ספרתיים 234267

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

Page 11: מבנה מחשבים ספרתיים 234267

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

Page 12: מבנה מחשבים ספרתיים 234267

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

Page 13: מבנה מחשבים ספרתיים 234267

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!

Page 14: מבנה מחשבים ספרתיים 234267

(C) Yohai Devir 234267 - January 2006 14

של המערכת כאשר CPI נקודות( בצעו חישוב מקורב של ה- 5 )ג..מבצעים את התוכנית כולה

פעמים, זמן ביצוע שאר השורות 100היות והלולאה מבוצעת זניח.

בפעם הראשונה עד הרגע שבו LW ל- fetchמהרגע שבו בוצע מחזורי שעון. לפיכך גם בין 5 פעם שניה חלפו fetchבוצע

5תחילת קריאה מהזכרון ועד שנוכל לקרוא בשנית יעברו מחזורי שעון – לא יהיו עיכובים כתוצאה מהקריאות.

לא מעכב כיוון שיש מחזור שעון בו יש structural hazardה- EXEרק פקודת אחת בשלב ה-

0.5 הוא בקרוב CPI ה- פקודות בלולאה 10יש סה"כ

Page 15: מבנה מחשבים ספרתיים 234267

(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)

Page 16: מבנה מחשבים ספרתיים 234267

(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התכניות זהות. כל השינוי הוא הוצאת הצבות קבועות לרגיסטרים שאינם בשימוש

בלולאה אל מחוץ ללולאה.

Page 17: מבנה מחשבים ספרתיים 234267

(C) Yohai Devir 234267 - January 2006 17

המקורב של התוכנית הזאת ? מה זה אומר CPI נקודות) מה ב- 3( לגבי הביצועים של המערכת לפני ואחרי האופטימיזציה ?

אמנם הקטנו את מספר הפקודות שבלולאה לחמש, אבל כל לוקחת חמישה מחזורי שעון, ואי אפשר לבצע את LOADפעולת

מחזורי שעון כדי שכל 5 במקביל, לכן ידרשו LOADפעולות ה- לולאה תסתיים.

מבחינת הביצועים – לא יהיה שינוי!! בקרוב אבל 2 גדל פי CPI, אמנם ה- CC*CPI*ICזמן הריצה הוא

בקרוב.2 קטן פי ICה-

Page 18: מבנה מחשבים ספרתיים 234267

(C) Yohai Devir 234267 - January 2006 18

ALUעל מנת לשפר את ביצועי המערכת הוספנו עוד יחידת INTEGER .)קרי יש עכשיו שלוש(

של המערכת ביחס לתוכנית CPI נקודות( האם שופר ה- 5)הראשונה, אם כן בכמה?

לא גורם לעיכובים, הוספת structural hazardלא, היות וה- נוספת לא תשנה דבר בריצת התכנית.ALUיחידת

ALU נקודות( הציעו שפור נוסף לחומרת המערכת )בנוסף ל-5)השלישי( שישפר את ביצועי התוכנית השניה ביחס לביצועים

(. aשחישבתם בסעיף הקודם )

.LD מהירה יותר או ביצוע מקבילי של פעולות LDלמשל פעולת

Page 19: מבנה מחשבים ספרתיים 234267

(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

Page 20: מבנה מחשבים ספרתיים 234267

(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

המספרים בעמודה הראשונה הם כתובות של הוראות(.)

Page 21: מבנה מחשבים ספרתיים 234267

(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 לאורך החיצונית .טעויות חיזוי

Page 22: מבנה מחשבים ספרתיים 234267

(C) Yohai Devir 234267 - January 2006 22

מחזורי 5 טעויות חיזוי כשכל טעות חיזוי מבזבזת 14בשתי הלולאות יש שעון.

במקרה של חזאי מחזורי שעון 70=14*5הפסדנו בגלל חיזויים לא נכונים מחזורי שעון.212=282-70קפיצות מושלם ביצוע התכנית היה לוקח

Page 23: מבנה מחשבים ספרתיים 234267

(C) Yohai Devir 234267 - January 2006 23

נקודות( כדי לשפר את ביצועי המעבד הוחלט לממש 10) ב., BTB ברמה אחת המבוסס על, Branch Prediction מנגנון כניסות והמיפוי אליו נעשה בעזרת הביטים הנמוכים של 8מכיל

הכתובת ) ללא שני הנמוכים ביותר(. הניחו כי ניחוש מתבצע .PCואז גם נטען הערך החזוי ל- pipelineבשלב הראשון ב-

עליכם (, taken, not-taken )על מנת לנחש את כיוון הקפיצהשימו לב ) לכל כניסה בטבלה סיביות2בת לבנות מכונת מצבים

, BTBכי מכונה זאת יכולה להיות שונה מהמכונה המשומשת ב- ולשם הפשטות נניח כי אותה מכונת מצבים משמשת לכל

הכניסות(. הציעו את מכונת המצבים שתתן ביצועים אופטימליים )לא בהכרך אידיאליים!( מבחינת אחוז החיזויים הנכונים עבור

'.התוכנית שהוצגה בסעיף א

.BTBניתן להניח שבתחילת ריצת התכנית הפקודות נמצאות ב-

Page 24: מבנה מחשבים ספרתיים 234267

(C) Yohai Devir 234267 - January 2006 24

בת שמכונה לב , 2נשים בעלת היא לא 4סיביות לעולם ולכן מצבים , מכונה לבנות ניתן אבל החיצונית ללולאה אידיאלי חיזוי לתת תוכל

. הפנימית ללולאה אידיאלי חיזוי שתתן - ב שונות לכניסות מתמפות השורות ששתי לב 32שורה ) BTBנשים

לא( 1101100 – 108שורה, 0100000– אידיאלית מכונה לכן. הלולאות שתי בין לשילוב להתייחס צריכה

עם ממכונה :3נתחיל , הפנימית הלולאה עבור אידיאלית מצבים

T T NT

Page 25: מבנה מחשבים ספרתיים 234267

(C) Yohai Devir 234267 - January 2006 25

נקבל הלולאות בשני הרצויים השינויים אחרי נעקוב אם: הם הפנימית הלולאה עבור הרצויים שהמעברים

T T NT

T T

NT

Page 26: מבנה מחשבים ספרתיים 234267

(C) Yohai Devir 234267 - January 2006 26

: להוסיף" יש החיצונית בלולאה מינימלי שגיאות מספר לקבל מ ע

T T NT

T T

NT

T

Page 27: מבנה מחשבים ספרתיים 234267

(C) Yohai Devir 234267 - January 2006 27

, ביצועי על להשפיע ומבלי מקרים בעוד גם תטפל שהמכונה כדי: שלנו התכנית

T T NT

T/NT

NT

T

T/NT

Page 28: מבנה מחשבים ספרתיים 234267

(C) Yohai Devir 234267 - January 2006 28

נקודות( כמה מחזורי שעון תיקח הרצת התוכנית עם 5ג. )המנגנון של סעיף ב' ?

כל החיזויים נכונים למעט טעות אחת בלולאה החיצונית באיטרציה השלישית.

212+1*5=217CC

Page 29: מבנה מחשבים ספרתיים 234267

(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

Page 30: מבנה מחשבים ספרתיים 234267

(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 שלה מזמן

Page 31: מבנה מחשבים ספרתיים 234267

(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 הסיעוף

לדעתכם הן אינן מתייצבות כלל ציינו מדוע.

ניתן להניח שאין הסתעפויות נוספות בתכנית.

Page 32: מבנה מחשבים ספרתיים 234267

(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שמבוצעת לולאה

החיצונית.

Page 33: מבנה מחשבים ספרתיים 234267

(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איטרציות של הלולאה החיצונית

Page 34: מבנה מחשבים ספרתיים 234267

(C) Yohai Devir 234267 - January 2006 34

נקודות( חזור על סעיף ד' בהנחה שאורך רגיסטר 5)ה. . סיביות בלבד6ההיסטוריה הוא

111111אף פעם לא תתיצב כי עבור סדרת היסטוריה B3 לולאהופעם לא (B3אנחנו פעם עושים קפיצה )איטרציה שביעית של

(.B3עושים קפיצה )איטרציה שמינית של

Page 35: מבנה מחשבים ספרתיים 234267

(C) Yohai Devir 234267 - January 2006 35

ו. חזור על סעיף ד' בהנחה שמשתמשים ברגיסטר היסטוריה אחד . סיביות10בלבד )גלובלי( באורך

במקרה זה סדרות ההסטוריה יהיו:TTN TTTTN TTTT TTTN TTN TTTTN TTTT TTTN

אין התנגשויות בין סדרות ההיסטוריה. בשתי איטרציות נעבור על R10=2כל סדרות ההיסטוריה האפשריות ואז