מבנה מחשבים ספרתיים 234267
-
Upload
tarik-hanson -
Category
Documents
-
view
29 -
download
1
description
Transcript of מבנה מחשבים ספרתיים 234267
![Page 1: מבנה מחשבים ספרתיים 234267](https://reader036.fdocuments.net/reader036/viewer/2022062308/568130a6550346895d96a1b8/html5/thumbnails/1.jpg)
(C) Yohai Devir 234267 - November 2005 1
מבנה מחשבים ספרתיים234267
:1תרגול מס'
פרמטרים של הערכת ביצועים
חוק אמדל
![Page 2: מבנה מחשבים ספרתיים 234267](https://reader036.fdocuments.net/reader036/viewer/2022062308/568130a6550346895d96a1b8/html5/thumbnails/2.jpg)
2
ארכיטקטורה מול מיקרו ארכיטקטורה
שני דברים שמשלימים זה את זה•
המעבד מגדירה את הממשק בין המשתמש ארכיטקטורת•(קומפיילר או מתכנת) לבין המעבד
:סט הפקודות (סוג פקודות, מספר אופרנדים, שיטות מיעון הממשק– ארכיטקטורה שונהתתכןוכדומה). למעבדים שונים
- המבנה הפנימי של המעבד.מיקרו ארכיטקטורה •
![Page 3: מבנה מחשבים ספרתיים 234267](https://reader036.fdocuments.net/reader036/viewer/2022062308/568130a6550346895d96a1b8/html5/thumbnails/3.jpg)
3
ומדידת ביצועיםCPUזמן מושגים והגדרות
CPU יחידת העיבוד המרכזית של המחשב. זהו רכיב סינכרוני – CPUהינו החלק ב- ALU(עובד בהתאם לאות של שעון פנימי). ה-
שמבצע את החישובים האריתמטיים
מספר הפעימות שמבצע השעון ): Clock Rate - CRקצב השעון ((מגה הרץ = )Hz(הפנימי של המחשב בשנייה אחת. נמדד בהרצים
מליון פעימות לשנייה)
משך הזמן בין שתי פעימות ): Clock Cycle –CCמחזור השעון ( 1nanosecעוקבות שמבצע השעון הפנימי של המחשב. נמדד בשניות (
= 10-9sec.(
(sec))(
1
ClockCycleClockRate Hz
![Page 4: מבנה מחשבים ספרתיים 234267](https://reader036.fdocuments.net/reader036/viewer/2022062308/568130a6550346895d96a1b8/html5/thumbnails/4.jpg)
4
•)IC (Instruction Count) בתכניתלא שורות!מספר פקודות המכונה (–
) CPI = Cycles Per Instructionמחזורים לפקודה (•מספר מחזורי השעון הדרושים בממוצע לביצוע כל פקודה בתכנית. שימו לב –
– זהו פרמטר שתלוי בתוכנית.
i (CPIi = Cycles Per Instruction i)מחזורים לפקודה•iמספר מחזורי השעון הדרושים לביצוע פקודה אחת מסוג –
CPU (execution time)זמן ריצה או זמן •הזמן שלוקח למעבד לבצע תכנית. נמדד בשניות. ניתן לחישוב ע"י–
programin nsinstructio Total
runtime programin cycles TotalCPI
program
ninstructioninstructio
cycles
cycle
onds
program
onds
program
cycles
cycle
onds
program
onds
ICCPICCtimeCPU
cCCtimeCPU
**
ycles ofnumber *
secsec
secsec
![Page 5: מבנה מחשבים ספרתיים 234267](https://reader036.fdocuments.net/reader036/viewer/2022062308/568130a6550346895d96a1b8/html5/thumbnails/5.jpg)
5
)benchmark לתכנית מבחן (CPIחישוב
Ii מספר הפעמים שהפקודה – i.בוצעה בתכנית
IC .מספר ההוראות הכולל שבוצע בתכנית – i
IiIC
i
i
( * ) i i
i
CPI ITotal Cycles
CPIIC
I
נמוך יותר גורר בהכרח מחשב מהיר יותר?CPIשאלה: האם
![Page 6: מבנה מחשבים ספרתיים 234267](https://reader036.fdocuments.net/reader036/viewer/2022062308/568130a6550346895d96a1b8/html5/thumbnails/6.jpg)
6
מדדים "אובייקטיביים"
MIPS = Millions of Instructions Per Secondכמה מיליוני פעולות מבצע המעבד בשנייה
6truction)(cycle/ins
sec)/(
6(sec)
)(
10 * C
c
10 * timeCPU
countn Instructio
PI
ratelockMIPS cyclensinstructio
תלוי בסט הפקודות של המכונה ובהרכב תכנית MIPS מדד בעיה:הבדיקה. אם במעבד מסוים יש פקודות אסמבלר מורכבות יותר,
שלוקח הרבה זמן לבצע אותן, אבל עקב כך צריך להשתמש בפחות פקודות מאשר במעבדים אחרים כדי לבצע את אותם דברים, אז
שיתקבל עבור אותו מחשב יהיה נמוך, ולא בהכרח MIPSמדד ה- בצדק.
![Page 7: מבנה מחשבים ספרתיים 234267](https://reader036.fdocuments.net/reader036/viewer/2022062308/568130a6550346895d96a1b8/html5/thumbnails/7.jpg)
7
MFLOPS – Millions of Floating Point Operations Per Second
(פעולות אריתמטיות floating pointהכוונה היא לכמה פעולות ) ולא C) בשפה עילית (כמו double או floatעל משתנים מסוג
בשפת אסמבלר.
6(sec) 10 * timeCPU
Programper Operations FPMFLOPS
מחושב ביחס לזמן הריצה של תכנית בשפה MFLOPS :1בעיה עילית ולכן תלוי בקומפיילר. קומפיילר טוב יבצע אופטימיזציה ולכן
זמן הריצה יהיה קצר יותר.
פעולות שונות אורכות משכי זמן שונים (למשל: חיבור שני :2בעיה תלוי בסוג MFLOPS הוא מהיר לעומת חילוק). FPמספרי
הפעולות המופיע בתוכנית.
![Page 8: מבנה מחשבים ספרתיים 234267](https://reader036.fdocuments.net/reader036/viewer/2022062308/568130a6550346895d96a1b8/html5/thumbnails/8.jpg)
8
- נוסיף שקלול של משוקלל MFLOPSנגדיר מדד חדש: פתרון: שונות עפ"י זמן הביצוע שלהן. כלומר, סופרים את FPפעולות
מספר ההופעות בתכנית של סוגי הפעולות השונות, ונותנים להם משקל שונה בציון הסופי.
לדוגמא:
Add, sub cmp, mult 1Div, sqrt 4Exp, sin 8
![Page 9: מבנה מחשבים ספרתיים 234267](https://reader036.fdocuments.net/reader036/viewer/2022062308/568130a6550346895d96a1b8/html5/thumbnails/9.jpg)
9
שניהם תלויים בתוכנית שבחרנו כ- בעיה משותפת לשני המדדים הקודמים: benchmark.צריך תמיד להשקיע מחשבה בשאלה איזו תכנית נבחר .
– תכניות אמתיות (מעבד תמלילם, גיליון אלקטרוני, תכנת מדדים אמתיים •
נווט)
– אוסף פקודות שאמור לייצג תכנית ממוצעת (יש דבר מדדים סינטטיים •
כזה?).
– אוסף תוכיות אמתיות וסינטטיות, משוקללות עפ"י מפתח מדדים משולבים •
כלשהו.
שני המדדים שראינו הם מלאכותיים ובעייתיים, ולכן נשתדל להשוות בין
מעבדים בתנאים כמה שיותר דומים: אותה תכנית בדיקה, אותו קומפיילר
וכדומה.
להגברת הדיוק, רצוי להריץ כמה תכניות ולשקלל את התוצאות.
המדד הכי טוב יהיה השוואת זמני הביצוע של אותן תכניות ע"ג כל אחד
מהמעבדים.
![Page 10: מבנה מחשבים ספרתיים 234267](https://reader036.fdocuments.net/reader036/viewer/2022062308/568130a6550346895d96a1b8/html5/thumbnails/10.jpg)
...ובעולם האמתי
10
:דירוג חווית המשתמש של ווינדווס
![Page 11: מבנה מחשבים ספרתיים 234267](https://reader036.fdocuments.net/reader036/viewer/2022062308/568130a6550346895d96a1b8/html5/thumbnails/11.jpg)
11
דוגמא א'\loadנתון מחשב בו כל הפקודות מתבצעות בין רגיסטרים, והגישה לזיכרון היא רק דרך
store.שכיחות הפקודות בתכנית המבחן:
משתמשות באחד האופרנדים בנתון שהובא ALUבבדיקה נמצא שרבע מפקודות ה- זאתALU קודמת ומשמש רק לפקודת LOADבפקודת
שמבצעת ישירות פעולה בין רגיסטר ALU: מוצע להוסיף לסט הפקודות פקודת שאלה בין שני רגיסטרים). פקודה זאת ALU ואחריו פקודת LOADלבין תא בזיכרון (במקום
.3 ל- BRANCH של פקודת CPI אבל תגדיל את ה CPI=2תבוצע עם
CPI שכיחות הפקודה
1 40% ALU
2 20% LOAD
2 10% STORE
2 30% BRANCH
![Page 12: מבנה מחשבים ספרתיים 234267](https://reader036.fdocuments.net/reader036/viewer/2022062308/568130a6550346895d96a1b8/html5/thumbnails/12.jpg)
12
פתרון
לפני השיפור:CPI(old) = 0.4*1 + 0.2*2 + 0.1*2 + 0.3*2 = 1.6
CPU_Time(old) = IC(old) * CPI(old) * CC(old) = 1.6 * IC(old) * CC(old)
אחרי )השיפור: ) ( )
0.4 0.44 4
0.44
0.44
0.44
0.44
[( ) ]
0 4 1 0 2 21
1 82 0 1 2 0 3 3 2
1
1 2
1
old i new i newnew i
newnew new
old
old
new new new new old
IC * percentage * CPICycles
CPIIC IC
IC* [( . )* ( . )*
IC * ( )
.* . * . * ]
CPU Time IC * CPI * CC (IC * ( ))* * CC
8
1 81 125
1 6
old
new old
old old
. * IC * CC
CPU Time . * IC * CC.
CPU Time . * IC * CC
CPI שכיחות הפקודה
1 40% ALU
2 20% LOAD
2 10% STORE
2 30% BRANCH
![Page 13: מבנה מחשבים ספרתיים 234267](https://reader036.fdocuments.net/reader036/viewer/2022062308/568130a6550346895d96a1b8/html5/thumbnails/13.jpg)
13
דרך פתרון שונה, נוחה יותר, לחישוב זמן הריצה לאחר השינוי:
פקודות, ואז ע"פ האחוזים הנתונים, אפשר לדעת 100נאמר שבתכנית המקורית יש מהו מספר הפקודות מכל סוג:
CPIi אחרי השינוי
מספר פקודות אחרי השינוי
CPIi לפני השינוי
מספר פקודות לפני
השינוי
הפקודה
1 30 1 40 ALU
2 10 2 20 LOAD
2 10 2 10 STORE
3 30 2 30 BRANCH
2 10 MEM-ALU
30=¾*0.4*100, כלומר ALUנשארו פקודות ¾ שהיו – עכשיו רק ALU פקודות 40מתוך
MEM-ALU : 100*0.4*¼=10 הפכו לפקודותALU פקודות ¼שאר
פקודות 10=20-10, ולכן נותרו רק LOAD מחליפה גם פקודת MEM-ALUכל פקודת LOAD
![Page 14: מבנה מחשבים ספרתיים 234267](https://reader036.fdocuments.net/reader036/viewer/2022062308/568130a6550346895d96a1b8/html5/thumbnails/14.jpg)
14
שימו לב! מספר הפקודות הכולל ירד עקב השינוי:
IC = 30 + 10 + 10 + 30 + 10 = 90 .
צריך להשוות מחזורי שעון לפני ואחרי השינוי:
Cycles_new = 30*1 + 10*2 + 10*2 + 30*3 + 10*2 = 180Cycles_old = 40*1 + 20*2 + 10*2 + 30*2 = 160
מכיוון שקצב השעון לא השתנה מספיק להשוות את מספר מחזורי השעון לפני ואחרי CC, כלומר להכפיל ב- CPUtimeהשינוי. אחרת היינו צריכים לחשב
CPIi אחרי השינוי
מספר פקודות אחרי השינוי
CPIi לפני השינוי
מספר פקודות
לפני השינוי
הפקודה
1 30 1 40 ALU
2 10 2 20 LOAD
2 10 2 10 STORE
3 30 2 30 BRANCH
2 10 MEM-ALU
![Page 15: מבנה מחשבים ספרתיים 234267](https://reader036.fdocuments.net/reader036/viewer/2022062308/568130a6550346895d96a1b8/html5/thumbnails/15.jpg)
15
דוגמא ב', המריצים אותה תכנית מבחן 100MHzנתונים שני מחשבים בעלי תדר שעון של
)benchmark:בעלת פילוג הפעולות (בשפה עילית) הבא (
שכיחות פעולה
10% FPכפל
15% FPחיבור
5% FPחילוק
70% INTפעולות
מבצע כל FP בעל חומרה ייעודית לחישוב פעולות MFPהמחשב הראשון, מחשב יכול לבצע רק NMFP פעולה במספר מחזורי שעון שונה. המחשב השני, מחשב
פעולות בשלמים, מריץ את התכנית באמולציה – המהדר (הקומפיילר) מתרגם כל מחזורי שעון. 2 שאורכות כ"א INT למספר פעולות FPפעולת
מספר מחזורי שעון MFPבמחשב
פעולה
6 FPכפל
4 FPחיבור
20 FPחילוק
2 INTפעולות
שמבוצעות INTמספר פעולות NMFP במחשב FPלכל פקודת
פעולה
30 FPכפל
20 FPחיבור
50 FPחילוק
![Page 16: מבנה מחשבים ספרתיים 234267](https://reader036.fdocuments.net/reader036/viewer/2022062308/568130a6550346895d96a1b8/html5/thumbnails/16.jpg)
16
של שתי המכונות.MIPSא. חשב את מדד ה- להזכירכם:
CPIMFP = (0.10 * 6) + (0.15 * 4) +(0.05 * 20) +(0.70 * 2) = 3.6
CPINMFP = 2
מחזורי שעון.2 שאורכות INT מבצע רק פעולות NMFPהסבר: מחשב ה-
6( / sec)
6 6(cycle/instruction)
6
6
c 100*1027.8
C * 10 3.6*10
100*1050
2*10
cycleMFP
NMFP
lock rateMIPS
PI
MIPS
!MFP גבוה מזה של NMFP של מחשב MIPSשימו לב שמדד ה
6truction)(cycle/ins
sec)/(
6(sec)
)(
10 * C
c
10 * timeCPU
countn Instructio
PI
ratelockMIPS cyclensinstructio
מספר מחזורי שעון במחשב MFP
פעולה
6 FPכפל
4 FPחיבור
20 FPחילוק
2 INTפעולות
שמבוצעות לכל INTמספר פעולות NMFP במחשב FPפקודת
פעולה
30 FPכפל
20 FPחיבור
50 FPחילוק
![Page 17: מבנה מחשבים ספרתיים 234267](https://reader036.fdocuments.net/reader036/viewer/2022062308/568130a6550346895d96a1b8/html5/thumbnails/17.jpg)
17
נדרשות Integer פקודות. כמה פקודות 106*300 מבצע את התכנית ב- MFPב. מחשב כדי לבצע את התכנית? NMFPלמחשב
פעולה שכיחות מספר פעולות MFP
FPכפל 10%
FPחיבור 15%
FPחילוק 5%
פעולות בשלמים 70%
סה"כ 300*106
ג. מהו זמן הריצה של התכנית בשני המחשבים? MFP i i
i
6 6 6 6 8
6( )
(sec) 6( )
NMFP
6 8(sec)
CPU Time = IC *CPI * CC =
= [(30*10 *6) (45*10 *4) (15*10 *20) (210*10 *2)]*10
300*10IC10.8
MIPS 27.8*10
CPU Time = IC*CPI * CC =
27IC= (2760*10 )*2*10 55.2
MIPS
instr
IPS
6( )
6( )
60*10
50*10instr
IPS
שימו לב להבדלי זמן הריצה !
פעולה שכיחות מספר פעולות MFP
FPכפל 10% 30*106
FPחיבור 15% 45*106
FPחילוק 5% 15*106
פעולות בשלמים 70% 210*106
סה"כ 300*106
פעולה שכיחות מספר פעולות MFP
כמות פקודות באמולציה
מספר פעולות NMFP
FPכפל 10% 30*106 30 900*106
FPחיבור 15% 45*106 20 900*106
FPחילוק 5% 15*106 50 750*106
פעולות בשלמים 70% 210*106 1 210*106
סה"כ 300*106 2760*106
![Page 18: מבנה מחשבים ספרתיים 234267](https://reader036.fdocuments.net/reader036/viewer/2022062308/568130a6550346895d96a1b8/html5/thumbnails/18.jpg)
18
של שני המחשבים?MFLOPSד. מהו מדד
בשפה עילית ולא FP בשני המחשבים שווה, כי סופריםFP: מספר פעולות ה- הסברחשוב איך הן ממומשות. הדבר השונה הוא חישוב זמן הביצוע שחישבנו בסעיף ג'.
, כלומר NMFP גבוה יותר ממדד ממחשב MFP של מחשב MFLOPSנשים לב שמדד .MIPS וזאת בניגוד למדד FP מבצעת מהר יותר פעולות MFPמכונה
63.12.55
90
10* 55.2
10* 1510* 4510* 30
33.88.10
90
10* 10.8
10* 1510* 4510* 30
10* TimeExecution
nsinstructio of #
6
666
6
666
6
NMFP
MFP
MFLOPS
FPMFLOPS
![Page 19: מבנה מחשבים ספרתיים 234267](https://reader036.fdocuments.net/reader036/viewer/2022062308/568130a6550346895d96a1b8/html5/thumbnails/19.jpg)
19
חוק אמדל
עליה הוא Pניקח מכונה כלשהי שזמן הריצה של תכנית •ExTimeold .
מזמן Fractionנניח שאנו משפרים את המעבד כך שחלק •יותר מהר בזכות השיפור Speedupריצת התכנית ירוץ פי
השאלה היא מה יהא זמן הריצה כעת?•
, לא לחלק הפקודות מתייחס לחלק הזמןFractionשימו לב: •.Pאו לחלק התכנית
Speedup
FractionFractionExTimeExTime oldnew )1(
![Page 20: מבנה מחשבים ספרתיים 234267](https://reader036.fdocuments.net/reader036/viewer/2022062308/568130a6550346895d96a1b8/html5/thumbnails/20.jpg)
20
חוק אמדל
פועל יוצא הוא שחישוב ההאצה הכללית שהשגנו •ניתן לחישוב באופן הבא:
enhanced
enhancedenhanced
new
oldoverall
Speedup
FractionFractionExTime
ExTimeSpeedup
)1(
1
![Page 21: מבנה מחשבים ספרתיים 234267](https://reader036.fdocuments.net/reader036/viewer/2022062308/568130a6550346895d96a1b8/html5/thumbnails/21.jpg)
21
דוגמא
שינינו מעבד כלשהו באופן הבא:•) ירוצו floating point(ההוראות שמטפלות בנקודה צפה –
יותר מהר2.5פי יותר מהר3פעולות גישה לזיכרון פי – יותר לאט1.5פעולות חיבור/חיסור בשלמים פי –
מבדיקה עבור תוכנית מבחן עולה ש:• זמן מכלל תכנית המבחן15%פעולות נקודה צפה תופסות –20%פעולות זיכרון –40%פעולות חיבור/חיסור בשלמים – –
כמה שיפרנו בסך הכל?•
![Page 22: מבנה מחשבים ספרתיים 234267](https://reader036.fdocuments.net/reader036/viewer/2022062308/568130a6550346895d96a1b8/html5/thumbnails/22.jpg)
22
98.0
)5.1/1(
40.0
3
20.0
5.2
15.0))40.020.015.0(1(
5.1*40.03
1*20.0
5.2
1*15.01*))40.020.015.0(1(
old
old
old
new
ExTime
ExTime
ExTime
ExTime
11.02
0.98old
overallnew
ExTimeSpeedup
ExTime
Operation Speed up Frequency
Floating point 2.5 15%
Memory 3 20%
Integer 1/ 1.5 40%
![Page 23: מבנה מחשבים ספרתיים 234267](https://reader036.fdocuments.net/reader036/viewer/2022062308/568130a6550346895d96a1b8/html5/thumbnails/23.jpg)
23
CPIניתן להכליל גם לחישוב
)()1(
cyclesinSpeedup
FractionFractionCPICPI oldnew
ניתן לשימוש רק כאשר מספר הפקודות לא השתנה )Fraction(צריך להיות תקף בשני המקרים
![Page 24: מבנה מחשבים ספרתיים 234267](https://reader036.fdocuments.net/reader036/viewer/2022062308/568130a6550346895d96a1b8/html5/thumbnails/24.jpg)
24
לדוגמא
כך RISC-ית, רוצים להוציא דגם משופר מבוסס CISCנתונה מכונה •שהוראות מסובכות יפורקו (בפנים) למספר הוראת פשוטות
סיעוף מהיר פי כמו כן הצליחו במעבד החדש להשיג ביצוע הוראות •(במ"ש) מאשר במעבד המקורי. מהרצת תוכנית מבחן התברר ש: 2
70% מזמן הביצוע של הקוד קיבלנו האטה של 20%עבור –.80%במ"ש. אין שינוי בשאר ה-
מזמן הביצוע (שאינן נמנות על 10%הוראות סיעוף תופסות – שגרמו לגידול).20%ה-
?CPIפי כמה השתנה ה-–
09.15.01.07.12.0)1.02.01( old
new
CPI
CPI
![Page 25: מבנה מחשבים ספרתיים 234267](https://reader036.fdocuments.net/reader036/viewer/2022062308/568130a6550346895d96a1b8/html5/thumbnails/25.jpg)
25
)2דוגמא (
מהרצת תוכנית אחרת:50%מתברר כי מניין ההוראות בקוד הדינאמי גדל ב-•2תדר השעון לעומת זאת גדל פי • נשאר כמו בתוכנית המבחןCPInew לCPIoldהיחס בין ה•
מהו שיפור הביצועים, אם בכלל, עבור תוכנית המבחן •הנתונה?
22.15.1*09.1
2
*5.1*09.1*5.0
old
old
old
old
old
old
new
old
new
old
new
old
new
oldoverall
IC
IC
CPI
CPI
CC
CC
IC
IC
CPI
CPI
CC
CC
TimeCPU
TimeCPUSpeedup
![Page 26: מבנה מחשבים ספרתיים 234267](https://reader036.fdocuments.net/reader036/viewer/2022062308/568130a6550346895d96a1b8/html5/thumbnails/26.jpg)
26
שאלות
. התכנית רצה מהר יותר FP פעולות 20אשר מכילה בשפה עלית א. נתונה תכנית מחשב לגבי בהכרח. אילו מהקביעות הבאות נכונה B מאשר על מחשב Aעל מחשב
המחשבים הנ"ל והתכנית הנתונה?
B גבוה או שווה לזה של מחשב MIPS מדד Aלמחשב 1.
B גבוה או שווה לזה של מחשב MFLOPS מדד Aלמחשב 2.
B של מחשב CPI גבוה או שווה ל- A של מחשב CPIה- 3.
B של מחשב CPI נמוך או שווה ל- A של מחשב CPIה- 4.
B גבוה או שווה לקצב השעון של מחשב Aקצב השעון של מחשב 5.
A ארוך או שווה לזמן המחזור של מחשב Bזמן המחזור של מחשב 6.
אף תשובה אינה מתקיימת בוודאות.7.
![Page 27: מבנה מחשבים ספרתיים 234267](https://reader036.fdocuments.net/reader036/viewer/2022062308/568130a6550346895d96a1b8/html5/thumbnails/27.jpg)
27
שאלות - המשך
זהה הרצה על שני אסמבלרמה תהיה תשובתך לסעיף א' כאשר מדובר על תכנית המחשבים?
B גבוה או שווה לזה של מחשב MIPS מדד Aלמחשב 1.
B גבוה או שווה לזה של מחשב MFLOPS מדד Aלמחשב 2.
B של מחשב CPI גבוה או שווה ל- A של מחשב CPIה- 3.
B של מחשב CPI נמוך או שווה ל- A של מחשב CPIה- 4.
B גבוה או שווה לקצב השעון של מחשב Aקצב השעון של מחשב 5.
A ארוך או שווה לזמן המחזור של מחשב Bזמן המחזור של מחשב 6.
אף תשובה אינה מתקיימת בוודאות.7.