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

27
(C) Yohai Devir 234267 - November 2005 1 םםםם םםםםםם םםםםםםם234267 םםםםם םם'1 : םםםםםםם םם םםםםם םםםםםםם םםם םםםם

description

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

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

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

(C) Yohai Devir 234267 - November 2005 1

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

:1תרגול מס'

פרמטרים של הערכת ביצועים

חוק אמדל

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

2

ארכיטקטורה מול מיקרו ארכיטקטורה

שני דברים שמשלימים זה את זה•

המעבד מגדירה את הממשק בין המשתמש ארכיטקטורת•(קומפיילר או מתכנת) לבין המעבד

:סט הפקודות (סוג פקודות, מספר אופרנדים, שיטות מיעון הממשק– ארכיטקטורה שונהתתכןוכדומה). למעבדים שונים

- המבנה הפנימי של המעבד.מיקרו ארכיטקטורה •

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

3

ומדידת ביצועיםCPUזמן מושגים והגדרות

CPU יחידת העיבוד המרכזית של המחשב. זהו רכיב סינכרוני – CPUהינו החלק ב- ALU(עובד בהתאם לאות של שעון פנימי). ה-

שמבצע את החישובים האריתמטיים

מספר הפעימות שמבצע השעון ): Clock Rate - CRקצב השעון ((מגה הרץ = )Hz(הפנימי של המחשב בשנייה אחת. נמדד בהרצים

מליון פעימות לשנייה)

משך הזמן בין שתי פעימות ): Clock Cycle –CCמחזור השעון ( 1nanosecעוקבות שמבצע השעון הפנימי של המחשב. נמדד בשניות (

= 10-9sec.(

(sec))(

1

ClockCycleClockRate Hz

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

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

5

)benchmark לתכנית מבחן (CPIחישוב

Ii מספר הפעמים שהפקודה – i.בוצעה בתכנית

IC .מספר ההוראות הכולל שבוצע בתכנית – i

IiIC

i

i

( * ) i i

i

CPI ITotal Cycles

CPIIC

I

נמוך יותר גורר בהכרח מחשב מהיר יותר?CPIשאלה: האם

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

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

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

8

- נוסיף שקלול של משוקלל MFLOPSנגדיר מדד חדש: פתרון: שונות עפ"י זמן הביצוע שלהן. כלומר, סופרים את FPפעולות

מספר ההופעות בתכנית של סוגי הפעולות השונות, ונותנים להם משקל שונה בציון הסופי.

לדוגמא:

Add, sub cmp, mult 1Div, sqrt 4Exp, sin 8

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

9

שניהם תלויים בתוכנית שבחרנו כ- בעיה משותפת לשני המדדים הקודמים: benchmark.צריך תמיד להשקיע מחשבה בשאלה איזו תכנית נבחר .

– תכניות אמתיות (מעבד תמלילם, גיליון אלקטרוני, תכנת מדדים אמתיים •

נווט)

– אוסף פקודות שאמור לייצג תכנית ממוצעת (יש דבר מדדים סינטטיים •

כזה?).

– אוסף תוכיות אמתיות וסינטטיות, משוקללות עפ"י מפתח מדדים משולבים •

כלשהו.

שני המדדים שראינו הם מלאכותיים ובעייתיים, ולכן נשתדל להשוות בין

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

וכדומה.

להגברת הדיוק, רצוי להריץ כמה תכניות ולשקלל את התוצאות.

המדד הכי טוב יהיה השוואת זמני הביצוע של אותן תכניות ע"ג כל אחד

מהמעבדים.

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

...ובעולם האמתי

10

:דירוג חווית המשתמש של ווינדווס

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

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

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

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

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

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

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

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

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

19

חוק אמדל

עליה הוא Pניקח מכונה כלשהי שזמן הריצה של תכנית •ExTimeold .

מזמן Fractionנניח שאנו משפרים את המעבד כך שחלק •יותר מהר בזכות השיפור Speedupריצת התכנית ירוץ פי

השאלה היא מה יהא זמן הריצה כעת?•

, לא לחלק הפקודות מתייחס לחלק הזמןFractionשימו לב: •.Pאו לחלק התכנית

Speedup

FractionFractionExTimeExTime oldnew )1(

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

20

חוק אמדל

פועל יוצא הוא שחישוב ההאצה הכללית שהשגנו •ניתן לחישוב באופן הבא:

enhanced

enhancedenhanced

new

oldoverall

Speedup

FractionFractionExTime

ExTimeSpeedup

)1(

1

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

21

דוגמא

שינינו מעבד כלשהו באופן הבא:•) ירוצו floating point(ההוראות שמטפלות בנקודה צפה –

יותר מהר2.5פי יותר מהר3פעולות גישה לזיכרון פי – יותר לאט1.5פעולות חיבור/חיסור בשלמים פי –

מבדיקה עבור תוכנית מבחן עולה ש:• זמן מכלל תכנית המבחן15%פעולות נקודה צפה תופסות –20%פעולות זיכרון –40%פעולות חיבור/חיסור בשלמים – –

כמה שיפרנו בסך הכל?•

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

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

23

CPIניתן להכליל גם לחישוב

)()1(

cyclesinSpeedup

FractionFractionCPICPI oldnew

ניתן לשימוש רק כאשר מספר הפקודות לא השתנה )Fraction(צריך להיות תקף בשני המקרים

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

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

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

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

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.