המצגת נטענת. אנא המתן

המצגת נטענת. אנא המתן

Branch Prediction בעריכת אורן קצנגולד Updated by Franck Sala.

מצגות קשורות


מצגת בנושא: "Branch Prediction בעריכת אורן קצנגולד Updated by Franck Sala."— תמליל מצגת:

1 Branch Prediction בעריכת אורן קצנגולד Updated by Franck Sala

2 דוגמא נתון מעבד בעל חמישה שלבי pipeline IF,ID,EX,MEM,WB עם מנגנון חיזוי (BTB) הפועל ע"פ האלגוריתם הבא: כאשר נרשמת פקודת branch ב BTB-בפעם הראשונה, מצב החיזוי שלו מאותחל ל-01. מה יהיה החיזוי בכל פעם שפקודת הBNEQ שבקטע הבא מבוצעת: MOVI R1,2 loop1: MOV R2,R1 loop2: Dec R2 BNEQ R2,R0,loop2 INC R1 BLT R1,4,loop1 מהי כמות השגיאות בחיזוי?

3 דוגמא MOVI R1,2 loop1: MOV R2,R1 loop2: Dec R2 BNEQ R2,R0,loop2 INC R1
BLT R1,4,loop1 מחזור R1 R2 מצב נוכחי חיזוי בפועל המצב הבא שגיאה? Loop1 1 2 BNEQ 01 not taken taken 10 + 3 4 5 6 11 7 מחזור R1 R2 מצב נוכחי חיזוי בפועל המצב הבא שגיאה? Loop1 BNEQ

4 דוגמא MOVI R1,2 loop1: MOV R2,R1 loop2: Dec R2 BNEQ R2,R0,loop2 INC R1
BLT R1,4,loop1 מחזור R1 R2 מצב נוכחי חיזוי בפועל המצב הבא שגיאה? Loop1 1 2 BNEQ 01 not taken taken 10 + 3 4 5 6 11 7 מחזור R1 R2 מצב נוכחי חיזוי בפועל המצב הבא שגיאה? Loop1 BNEQ

5 2-Level Branch Prediction
ישנם שני סטים, סט של היסטוריות וסט של מצבים (מכונת מצבים), וכן ישנו מיפוי בין שני הסטים – History State על כן נקרא 2-level במקום להחזיק במכונת מצבים אחת לכל הוראת branch מחזיקים 2n מכונות מצבים ובוחרים במכונה הרצויה ע"פ ההיסטוריה של n ההכרעות (taken/not taken) האחרונות. להיעזר בציור

6 BHR: Branch History Register
בכל רגע נתון מחזיקים ב-shift register בן n ביטים אשר מציין את ההיסטוריה (0 ל not taken ו-1 ל taken), למשל עבור 5 ביטים: 1 Taken 1 1 lsb

7 Example: The initialization phase
First level: shift register that keeps the history of the n last branches x=0; for (I=0; I<100; I++) for (J=0; J<4;J++) x=x+j+I; sub r10,r10,r10 movi r9, 100 ll1: movi r8,4 112 ll2: add r10,r10,r9 add r10,r10,r8 120 sub r8,r8,1 if (r8 != r0) ll2 128 sub (r9,r9,1) 132 If (r9 != r0) ll1 WT WT WT WT WT WT WT WT WT WT WT WT WT WT WT WT ST ST 1 1 1 1 ST We update the table based on current state (0) and modify the state AFTER the outcome is known WNT Second level: prediction table that predicts for every history state if the direction should be taken or not taken 2 1 3

8 Example -cont BHR History 14 13 11 7 14 If we look at the history that will be generated at the BHR (branch history register) we can see that values 14, 13, and 11 indicate taken branches while state 7 indicates not taken branch. If sequence of histories repeats itself, we claim that the system reaches stability.

9 History Register Global HR Per Branch BHR
History Register אחד גלובלי משותף לכל הוראות ה-Branch. (עשוי להיות יעיל בתפיסת תלויות בין הוראות branch) Per Branch BHR BHR לכל הוראת branch, ואז ה-BHR לוקאלי (עשוי לעלות על תבנית חוזרת של הוראות branch - למשל לולאות מקוננות).

10 טבלת מכונות החיזוי Global Table ניתן להחזיק בטבלה גלובלית, בכך לחסוך במקום ולאפשר אולי BHR-ים ארוכים יותר (שימו לב שהטבלה גדלה אקספוננציאלית). Per-Branch Table להחזיק טבלה לוקאלית לכל הוראת branch

11 טבלא ו-BHR לוקלים History Cache (BHRs) 2-bit-sat counter array
Branch IP tag history prediction 2-bit-sat counter array History Cache (BHRs) טבלא ו-BHR לוקלים נניח טבלת היסטוריות בת 1024 כניסות, עם היסטוריות באורך 4, Fully Associative נניח שכתובת היא בת 32 סיביות וכל ההוראות הן aligned כך שניתן להשמיט את שתי הסיביות ה-lsb. מהו גודל טבלת ההיסטוריות? The predictor size: #entries * (tag_size + history_size + 2*2 history_size) #entries = 1024 tag_size (branch IP) = 32 – 2 = 30 bit history_size = 4 => size= 1024 * (30+4+2*24) = 66 K bits

12 תרגום: קטע קוד for (i=100; i>0; i--) for (j=2; j<5; j++)
if (i%j == 0) … Addi r5, r0, 5 Addi r1,r0,100 L1: Addi r2, r0, 2 L2: Mod r3, r1, r2 Bne r3, r0, IF IF: Addi r2, r2, 1 Bne r2, r5, L2 Subi r1, r1, 1 Bne r1, r0, L1 תרגום:

13 דוגמת הרצה: Addi r5, r0, 5 Addi r1,r0,100 L1: Addi r2, r0, 2
WT WT WT WT WT WT WT WT WT WT WT WT WT WT WT WT WT BHRs Addi r5, r0, 5 Addi r1,r0,100 L1: Addi r2, r0, 2 L2: Mod r3, r1, r2 Bne r3, r0, IF IF: Addi r2, r2, 1 Bne r2, r5, L2 Subi r1, r1, 1 Bne r1, r0, L1 tag history IP1 IP2 IP1 IP3 IP2 IP3

14 טעות בחיזוי (לא הייתה קפיצה)
r1 r2 r3 100 2 WNT WT WT WT WT WT WT WT WT WT WT WT WT WT WT WT WT BHRs Addi r5, r0, 5 Addi r1,r0,100 L1: Addi r2, r0, 2 L2: Mod r3, r1, r2 Bne r3, r0, IF IF: Addi r2, r2, 1 Bne r2, r5, L2 Subi r1, r1, 1 Bne r1, r0, L1 tag history IP1 IP2 IP3

15 Addi r5, r0, 5 Addi r1,r0,100 L1: Addi r2, r0, 2 L2: Mod r3, r1, r2
WT WT WT WT WT WT WT WT WT WT WT WT WT WT WT WT WT BHRs Addi r5, r0, 5 Addi r1,r0,100 L1: Addi r2, r0, 2 L2: Mod r3, r1, r2 Bne r3, r0, IF IF: Addi r2, r2, 1 Bne r2, r5, L2 Subi r1, r1, 1 Bne r1, r0, L1 tag history IP1 IP2 IP3

16 חיזוי נכון (הייתה קפיצה)
r1 r2 r3 100 3 ST WT WT WT WT WT WT WT WT WT WT WT WT WT WT WT WT BHRs Addi r5, r0, 5 Addi r1,r0,100 L1: Addi r2, r0, 2 L2: Mod r3, r1, r2 Bne r3, r0, IF IF: Addi r2, r2, 1 Bne r2, r5, L2 Subi r1, r1, 1 Bne r1, r0, L1 tag history IP1 1 IP2 IP3

17 Addi r5, r0, 5 Addi r1,r0,100 L1: Addi r2, r0, 2 L2: Mod r3, r1, r2
WNT WT WT WT WT WT WT WT WT WT WT WT WT WT WT WT WT BHRs Addi r5, r0, 5 Addi r1,r0,100 L1: Addi r2, r0, 2 L2: Mod r3, r1, r2 Bne r3, r0, IF IF: Addi r2, r2, 1 Bne r2, r5, L2 Subi r1, r1, 1 Bne r1, r0, L1 tag history IP1 1 IP2 IP3

18 טעות בחיזוי (הייתה קפיצה)
r1 r2 r3 100 3 1 WT WT WT WT WT WT WT WT WT WT WT WT WT WT WT WT WT BHRs Addi r5, r0, 5 Addi r1,r0,100 L1: Addi r2, r0, 2 L2: Mod r3, r1, r2 Bne r3, r0, IF IF: Addi r2, r2, 1 Bne r2, r5, L2 Subi r1, r1, 1 Bne r1, r0, L1 tag history 1 IP1 1 IP2 IP3

19 Addi r5, r0, 5 Addi r1,r0,100 L1: Addi r2, r0, 2 L2: Mod r3, r1, r2
4 1 ST WT WT WT WT WT WT WT WT WT WT WT WT WT WT WT WT BHRs Addi r5, r0, 5 Addi r1,r0,100 L1: Addi r2, r0, 2 L2: Mod r3, r1, r2 Bne r3, r0, IF IF: Addi r2, r2, 1 Bne r2, r5, L2 Subi r1, r1, 1 Bne r1, r0, L1 tag history 1 IP1 1 IP2 IP3

20 חיזוי נכון (הייתה קפיצה)
r1 r2 r3 100 4 1 ST WT WT WT WT WT WT WT WT WT WT WT WT WT WT WT ST WT BHRs Addi r5, r0, 5 Addi r1,r0,100 L1: Addi r2, r0, 2 L2: Mod r3, r1, r2 Bne r3, r0, IF IF: Addi r2, r2, 1 Bne r2, r5, L2 Subi r1, r1, 1 Bne r1, r0, L1 tag history 1 IP1 1 IP2 IP3

21 Addi r5, r0, 5 Addi r1,r0,100 L1: Addi r2, r0, 2 L2: Mod r3, r1, r2
4 WT WT WT WT WT WT WT WT WT WT WT WT WT WT WT WT WT BHRs Addi r5, r0, 5 Addi r1,r0,100 L1: Addi r2, r0, 2 L2: Mod r3, r1, r2 Bne r3, r0, IF IF: Addi r2, r2, 1 Bne r2, r5, L2 Subi r1, r1, 1 Bne r1, r0, L1 tag history 1 IP1 1 IP2 IP3

22 טעות בחיזוי (לא הייתה קפיצה)
r1 r2 r3 100 4 WT WT WT WT WT WT WT WT WT WT WT WT WT WT WT WT WNT WT BHRs Addi r5, r0, 5 Addi r1,r0,100 L1: Addi r2, r0, 2 L2: Mod r3, r1, r2 Bne r3, r0, IF IF: Addi r2, r2, 1 Bne r2, r5, L2 Subi r1, r1, 1 Bne r1, r0, L1 tag history 1 IP1 1 IP2 IP3

23 Addi r5, r0, 5 Addi r1,r0,100 L1: Addi r2, r0, 2 L2: Mod r3, r1, r2
ST WT WT WT WT WT WT WT WT WT WT WT WT WT WT WT ST WT BHRs Addi r5, r0, 5 Addi r1,r0,100 L1: Addi r2, r0, 2 L2: Mod r3, r1, r2 Bne r3, r0, IF IF: Addi r2, r2, 1 Bne r2, r5, L2 Subi r1, r1, 1 Bne r1, r0, L1 tag history 1 IP1 1 IP2 IP3

24 טעות בחיזוי (לא הייתה קפיצה)
r1 r2 r3 100 5 ST WT WT WT WNT WT WT WT WT WT WT WT WT WT WT WT ST WT BHRs Addi r5, r0, 5 Addi r1,r0,100 L1: Addi r2, r0, 2 L2: Mod r3, r1, r2 Bne r3, r0, IF IF: Addi r2, r2, 1 Bne r2, r5, L2 Subi r1, r1, 1 Bne r1, r0, L1 tag history 1 IP1 1 IP2 IP3

25 Addi r5, r0, 5 Addi r1,r0,100 L1: Addi r2, r0, 2 L2: Mod r3, r1, r2
99 5 WT WT WT WT WT WT WT WT WT WT WT WT WT WT WT WT WT BHRs Addi r5, r0, 5 Addi r1,r0,100 L1: Addi r2, r0, 2 L2: Mod r3, r1, r2 Bne r3, r0, IF IF: Addi r2, r2, 1 Bne r2, r5, L2 Subi r1, r1, 1 Bne r1, r0, L1 tag history 1 IP1 1 IP2 IP3

26 חיזוי נכון (הייתה קפיצה)
r1 r2 r3 99 5 ST WT WT WT WT WT WT WT WT WT WT WT WT WT WT WT WT BHRs Addi r5, r0, 5 Addi r1,r0,100 L1: Addi r2, r0, 2 L2: Mod r3, r1, r2 Bne r3, r0, IF IF: Addi r2, r2, 1 Bne r2, r5, L2 Subi r1, r1, 1 Bne r1, r0, L1 tag history 1 IP1 1 IP2 1 IP3

27 טבלא ו-BHR גלובליים נשים לב שכעת אנו משתמשים ב- BHR יחיד, וכן בטבלא בודדת. אם נניח שבדיקת כתובת הקפיצה מתבצעת בנפרד ב- BTB (כמו שבעצם הנחנו גם קודם), וכן שאנו רוצים היסטוריה של 4 הוראות. מהו גודל הזיכרון הדרוש? The predictor size: history_size + 2*2 history_size history_size = 4  size= 4+2*24 = 36 bits vs. 66Kb Save 1023 entries (tag+hist.)

28 דוגמת הרצה: Addi r5, r0, 5 Addi r1,r0,100 L1: Addi r2, r0, 2
Global table r1 r2 r3 100 2 WT WT WT WT WT WT WT WT WT WT WT WT WT WT WT WT WT Addi r5, r0, 5 Addi r1,r0,100 L1: Addi r2, r0, 2 Mod r3, r1, r2 L2: Bne r3, r0, IF IF: Addi r2, r2, 1 Bne r2, r5, L2 Subi r1, r1, 1 Bne r1, r0, L1 Global BHR IP1 IP2 IP3

29 טעות בחיזוי (לא הייתה קפיצה)
Global table r1 r2 r3 100 2 WNT WT WT WT WT WT WT WT WT WT WT WT WT WT WT WT WT Addi r5, r0, 5 Addi r1,r0,100 L1: Addi r2, r0, 2 Mod r3, r1, r2 L2: Bne r3, r0, IF IF: Addi r2, r2, 1 Bne r2, r5, L2 Subi r1, r1, 1 Bne r1, r0, L1 Global BHR

30 Addi r5, r0, 5 Addi r1,r0,100 L1: Addi r2, r0, 2 Mod r3, r1, r2
Global table r1 r2 r3 100 3 WNT WT WT WT WT WT WT WT WT WT WT WT WT WT WT WT WT Addi r5, r0, 5 Addi r1,r0,100 L1: Addi r2, r0, 2 Mod r3, r1, r2 L2: Bne r3, r0, IF IF: Addi r2, r2, 1 Bne r2, r5, L2 Subi r1, r1, 1 Bne r1, r0, L1 Global BHR

31 טעות בחיזוי (הייתה קפיצה)
Global table r1 r2 r3 100 3 WT WT WT WT WT WT WT WT WT WT WT WT WT WT WT WT WT Addi r5, r0, 5 Addi r1,r0,100 L1: Addi r2, r0, 2 Mod r3, r1, r2 L2: Bne r3, r0, IF IF: Addi r2, r2, 1 Bne r2, r5, L2 Subi r1, r1, 1 Bne r1, r0, L1 Global BHR 1

32 Addi r5, r0, 5 Addi r1,r0,100 L1: Addi r2, r0, 2 Mod r3, r1, r2
Global table r1 r2 r3 100 3 1 WT WT WT WT WT WT WT WT WT WT WT WT WT WT WT WT WT Addi r5, r0, 5 Addi r1,r0,100 L1: Addi r2, r0, 2 Mod r3, r1, r2 L2: Bne r3, r0, IF IF: Addi r2, r2, 1 Bne r2, r5, L2 Subi r1, r1, 1 Bne r1, r0, L1 Global BHR 1

33 חיזוי נכון (הייתה קפיצה)
Global table r1 r2 r3 100 3 1 WT WT WT WT WT WT WT WT WT WT WT WT WT WT WT WT ST WT Addi r5, r0, 5 Addi r1,r0,100 L1: Addi r2, r0, 2 Mod r3, r1, r2 L2: Bne r3, r0, IF IF: Addi r2, r2, 1 Bne r2, r5, L2 Subi r1, r1, 1 Bne r1, r0, L1 Global BHR 1

34 Addi r5, r0, 5 Addi r1,r0,100 L1: Addi r2, r0, 2 Mod r3, r1, r2
Global table r1 r2 r3 100 4 1 WT WT WT WT WT WT WT WT WT WT WT WT WT WT WT WT ST WT Addi r5, r0, 5 Addi r1,r0,100 L1: Addi r2, r0, 2 Mod r3, r1, r2 L2: Bne r3, r0, IF IF: Addi r2, r2, 1 Bne r2, r5, L2 Subi r1, r1, 1 Bne r1, r0, L1 Global BHR 1

35 חיזוי נכון (הייתה קפיצה)
Global table r1 r2 r3 100 4 1 WT WT WT WT ST WT WT WT WT WT WT WT WT WT WT WT ST WT Addi r5, r0, 5 Addi r1,r0,100 L1: Addi r2, r0, 2 Mod r3, r1, r2 L2: Bne r3, r0, IF IF: Addi r2, r2, 1 Bne r2, r5, L2 Subi r1, r1, 1 Bne r1, r0, L1 Global BHR 1

36 Addi r5, r0, 5 Addi r1,r0,100 L1: Addi r2, r0, 2 Mod r3, r1, r2
Global table r1 r2 r3 100 4 WT WT WT WT ST WT WT WT WT WT WT WT WT WT WT WT ST WT Addi r5, r0, 5 Addi r1,r0,100 L1: Addi r2, r0, 2 Mod r3, r1, r2 L2: Bne r3, r0, IF IF: Addi r2, r2, 1 Bne r2, r5, L2 Subi r1, r1, 1 Bne r1, r0, L1 Global BHR 1

37 טעות בחיזוי (לא הייתה קפיצה)
Global table r1 r2 r3 100 4 WT WT WT WT ST WT WT WT WT WT WT WT WT WT WT WT ST WT WNT Addi r5, r0, 5 Addi r1,r0,100 L1: Addi r2, r0, 2 Mod r3, r1, r2 L2: Bne r3, r0, IF IF: Addi r2, r2, 1 Bne r2, r5, L2 Subi r1, r1, 1 Bne r1, r0, L1 Global BHR 1

38 Addi r5, r0, 5 Addi r1,r0,100 L1: Addi r2, r0, 2 Mod r3, r1, r2
Global table r1 r2 r3 100 5 WT WT WT WT ST WT WT WT WT WT WT WT WT WT WT WT ST WT WNT Addi r5, r0, 5 Addi r1,r0,100 L1: Addi r2, r0, 2 Mod r3, r1, r2 L2: Bne r3, r0, IF IF: Addi r2, r2, 1 Bne r2, r5, L2 Subi r1, r1, 1 Bne r1, r0, L1 Global BHR 1

39 טעות בחיזוי (לא הייתה קפיצה)
Global table r1 r2 r3 100 5 WT WT WT WT ST WT WT WT WT WT WT WT WT WT WT WT ST WT WNT Addi r5, r0, 5 Addi r1,r0,100 L1: Addi r2, r0, 2 Mod r3, r1, r2 L2: Bne r3, r0, IF IF: Addi r2, r2, 1 Bne r2, r5, L2 Subi r1, r1, 1 Bne r1, r0, L1 Global BHR 1

40 Addi r5, r0, 5 Addi r1,r0,100 L1: Addi r2, r0, 2 Mod r3, r1, r2
Global table r1 r2 r3 99 5 WT WT WT WT ST WT WT WT WT WT WT WT WT WT WT WT ST WT WNT Addi r5, r0, 5 Addi r1,r0,100 L1: Addi r2, r0, 2 Mod r3, r1, r2 L2: Bne r3, r0, IF IF: Addi r2, r2, 1 Bne r2, r5, L2 Subi r1, r1, 1 Bne r1, r0, L1 Global BHR 1

41 חיזוי נכון (הייתה קפיצה)
Global table r1 r2 r3 99 5 WT ST WT WT ST WT WT WT WT WT WT WT WT WT WT WT ST WT WNT Addi r5, r0, 5 Addi r1,r0,100 L1: Addi r2, r0, 2 Mod r3, r1, r2 L2: Bne r3, r0, IF IF: Addi r2, r2, 1 Bne r2, r5, L2 Subi r1, r1, 1 Bne r1, r0, L1 Global BHR 1

42 טבלת חיזוי גלובלית החיסרון של טבלא גלובלית עשוי להיות בעיית ההתנגשויות בין הוראות branch שונות. דרך אחת להתמודדות עם זה היא ליצור ערבול כלשהו בטבלא ע"י בחירת המכונה המתאימה לא רק ע"פ ה-BHR אלא ע"פ תוצאת ה-XOR שלו עם ה- branch IP. הטריק נקרא בלעז: Ishare/gshare

43 local Predictor: LShare
Lshare combines the local history information with the branch IP This Xor is a significant improvement h h l.s.bits of IP history cache tag history prediction = msb of counter Branch IP 2-bit-sat counter array

44 Chooser The chooser may also be indexed by the GHR Prediction
Bimodal or Local M X U Prediction Branch IP Global +1 if Bimodal / Local correct and Global wrong -1 if Bimodal / Local wrong and Global correct Chooser array (an array of 2-bit sat. counters). The chooser may also be indexed by the GHR

45 דוגמא: for (i=100; i>0; i--) for (j=2; j<6; j++) switch (i%j) {
case 0: … break; case 1: … break; case 2: … break; case 3: … break; case 4: … break; } 1 2 3 4 5 6

46 התנהגות ה branch-ים השונים
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTN - 0 TTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTNTTTN - 1 TTTTNTTTTNTTNTNTTTTNNNTTTTTTNTNTTNTTNTTNTTTTNNNTTTTTNTTTTNTNNTNTTTTTNNTTTTTTNTNNTNTTNTTTTTTTNNNTTTTNNTTTTNTTNTNTTTTTNNTNTTTTNTNTTNTTNTTTTTTNNNNTTTTTNTTTTNTTNTNNTTTTNNTTTTTTNTNTTNTNNTTTTTTTNNNTTTTTNTTNTNTTNTNTTTTTNNTTTTTNNTNTTNTTNTTTTTTTNNNNTTTTNTTTTNTTNTNTTTTNNNTTTTTTNTNTTNTTNTTNTTTTNNNTTTTTNTTTTNTNNTNTTTTTNNTTTTTTNTNNTNTTNTTTTTTTNNNTTTTNNTTTTNTTNTNTTTTTNNTNTTTTNTNTTNTTNTTTTTTNNNNTTTTTNTTTTNTTNTNN - 2 NNNNTTTTNTTTTNTTNTNTTTTNNNTTTTTTNTNTTNTTNTTNTTTTNNNTTTTTNTTTTNTNNTNTTTTTNNTTTTTTNTNNTNTTNTTTTTTTNNNTTTTNNTTTTNTTNTNTTTTTNNTNTTTTNTNTTNTTNTTTTTTNNNNTTTTTNTTTTNTTNTNNTTTTNNTTTTTTNTNTTNTNNTTTTTTTNNNTTTTTNTTNTNTTNTNTTTTTNNTTTTTNNTNTTNTTNTTTTTTTNNNNTTTTNTTTTNTTNTNTTTTNNNTTTTTTNTNTTNTTNTTNTTTTNNNTTTTTNTTTTNTNNTNTTTTTNNTTTTTTNTNNTNTTNTTTTTTTNNNTTTTNNTTTTNTTNTNTTTTTNNTNTTTTNTNTTNTTNTTTTTTNNNNTTTTTNTTTTNTT - 3 TTTTTNNNTTTTTTTTTNTTTTNTTTTNTNTTTTTTTTNTTNTTTTTNTTTTTNNTTTTTTTTTTNTNTTNTTTTTTNTTTTTTTTNNTNTTTTTTTTTTTNNTTTTNTTTTTNTTTTNTTTTTTNTNTTTTTTNTTNTTTTTTTTTNTNNTTTTTTTTTTNTTTTNNTTTTTNTTTTTTTTNTTNTNTTTTTTTTTNNTTTTTTTTNTNTTTTNTTTTTTNTTTTTNTTNTTNTTTTTTTTTTTNNNTTTTTTTTTNTTTTNTTTTNTNTTTTTTTTNTTNTTTTTNTTTTTNNTTTTTTTTTTNTNTTNTTTTTTNTTTTTTTTNNTNTTTTTTTTTTTNNTTTTNTTTTTNTTTTNTTTTTTNTNTTTTTTNTTNTTTTTTTTTNTNNTTTTTTTTT - 4 TTTTTTTTTTNNTTTTTTTTTTTTTTNTTTTNTTTTTTTTTTNTTTTTTTTNTTTTTTNTTTTTTTTTTTTNTTNTTTTTTTTTTTTTTTNNTTTTTTTTTTTTTTNTTTTNTTTTTTTTTTNTTTTTTTTNTTTTTTNTTTTTTTTTTTTNTTNTTTTTTTTTTTTTTTNNTTTTTTTTTTTTTTNTTTTNTTTTTTTTTTNTTTTTTTTNTTTTTTNTTTTTTTTTTTTNTTNTTTTTTTTTTTTTTTNNTTTTTTTTTTTTTTNTTTTNTTTTTTTTTTNTTTTTTTTNTTTTTTNTTTTTTTTTTTTNTTNTTTTTTTTTTTTTTTNNTTTTTTTTTTTTTTNTTTTNTTTTTTTTTTNTTTTTTTTNTTTTTTNTTTTTTTTTTTTNTTNTTTTT - 5 TTTTTTTTTTTTTTTNTTTTTTTTTTTTTTTTTTTNTTTTTTTTTTTTTTTTTTTNTTTTTTTTTTTTTTTTTTTNTTTTTTTTTTTTTTTTTTTNTTTTTTTTTTTTTTTTTTTNTTTTTTTTTTTTTTTTTTTNTTTTTTTTTTTTTTTTTTTNTTTTTTTTTTTTTTTTTTTNTTTTTTTTTTTTTTTTTTTNTTTTTTTTTTTTTTTTTTTNTTTTTTTTTTTTTTTTTTTNTTTTTTTTTTTTTTTTTTTNTTTTTTTTTTTTTTTTTTTNTTTTTTTTTTTTTTTTTTTNTTTTTTTTTTTTTTTTTTTNTTTTTTTTTTTTTTTTTTTNTTTTTTTTTTTTTTTTTTTNTTTTTTTTTTTTTTTTTTTNTTTTTTTTTTTTTTTTTTTNTTTT - 6

47 תוצאות חיזוי נכון (היסטוריה של 5 הוראות)
2 bit counter: 0 : 0.98 1 : 2 : 0.605 3 : 0.61 4 : 5 : 6 : avg: local history & tables: 0 : 0.99 1 : 0.995 2 : 3 : 0.605 4 : 0.76 5 : 0.885 6 : 0.95 avg: global history & table: 0 : 0.99 1 : 0.655 2 : 0.565 3 : 0.77 4 : 5 : 0.88 6 : 0.965 avg: 0.776 Error is 3 cycles Branch every 5 instruction instructions Perfect predictor: Bimodal: /5 * 3 * ( ) = local history global table: 0 : 0.98 1 : 0.98 2 : 3 : 0.64 4 : 0.785 5 : 0.865 6 : avg: global history local tables: 0 : 0.99 1 : 2 : 3 : 0.74 4 : 5 : 6 : avg: 0.816


הורד את "ppt "Branch Prediction בעריכת אורן קצנגולד Updated by Franck Sala.

מצגות קשורות


מודעות Google