Professional Documents
Culture Documents
2r3+3r2+6r1+0r0+2r2+3r1+6r0=2r3+6r2+2r1+6r0
5r2+9r=6r2+2r
1
23607
2367
26267
+
5r2+3r1+2r0-2r2-2r1-3r0=3r2+0r1+5r0
3r2+1r1-1=3r2+0r1+5
r-1=5
r=6
5326
- 223
6
3066
שאלה :2
א .תחום ייצוג המספרים כתלות במספר הסיביות nבשיטת ייצוג :sign and magnitude
-(2n-1-1) …..+2n-1-1
ולכן ב 11סיביות נייצג את המספרים בין . -1023 … +1023
הפתרון הראשוני והאינטואיטיבי להצגת מספרים חיוביים ושליליים היה ע"י הוספת סיבית סימן
נפרדת להגדרת הסימן .כך נוצרה שיטת ייצוג מספרים גודל סימן . sign and magnitude
כמה בעיות היו בשיטה במהלך יישומה במחשבים.
-לא הייתה מוסכמה איפה לשים את סיבית הסימן (משמאל או מימין)
-האריתמטיקה מורכבת יותר ויש צורך בשלב נוסף לבדיקה האם המספר חיובי או שלילי ,
זהו למעשה חיסרון גדול המסבך וגורם לזמן החישוב להיות ארוך יותר.
-לייצוג הערך אפס קיימות שתי אפשריות ,דבר העלול לעשות בעיות בפעולות השוואה
ועיגול מספרים בתכניות.ולכן שיטה זו נזנחה וכיום על מנת לייצג מספרים שלמים עם
סימן אנו משתמשים בשיטת המשלים ל .2
ב .נפרק את המספר 345610לסיביות (בסיס )2לפי אלגוריתם הפירוק.
)3456/2=1728 (mod 0
)1728/2=864 (mod 0
)864/2=432 (mod 0
)432/2=216 (mod 0
)216/2=108 (mod 0
)108/2=54 (mod 0
)54/2=27 (mod 0
)27/2=13 (mod 1
)13/2=6 (mod 1
)6/2=3 (mod 0
)3/2=1 (mod 1
)1/2=0 (mod 1
כלומר קיבלנו110110000000bin :
ואמנם 211+210+28+27=345610 :
המעבר לבסיסים 16 8 4הוא מיידי:
( כל שתי סיביות הן סיפרה בבסיס ,4כל 3סיביות הן סיפרה בבסיס 3וגל 4סיביות הן סיפרה
בבסיס )4
110110000000bin=3120004=66008=0xD80
.IIניתן להגיע לערך של -3456ב 16סיביות במשלים ל 2גם ע"י ביצוע הפעולה:
216-3456=62,080=1111001010000000bin
.IIIטכניקה נוספת לקבלת -3456היא לקחת את המספר 3456בהצגה בינארית ב 16סיביות ,נעתיק את
הסיביות מהסיבית הימנית כלפי שמאל עד לסיבית הראשונה שערכה אחד (אותה נעתיק ללא שינוי) החל
מהסיבית הבאה יש לבצע העתקה עם notעל כל הסיביות ,לקבלת המספר הנגדי -3456ב 16סיביות .כמובן
שגם כאן תתקבל אותה התוצאה.
ג 1.הכפלה של מספר בארבע שקולה להזזה של שתי סיביות ) (bitשמאלה ,עבור שיטת ייצוג ללא
סימן גלישה תהיה אם"ם ערך לפחות אחת משתי הסיביות השמאליות לפני הזזה יהיה .1כלומר,
יש לבדוק את שתי הסיביות השמאליות .an-1 OR an-2=1
ג 2.הכפלה של מספר בארבע שקולה להזזה של שתי סיביות ) (bitשמאלה ,עבור שיטת ייצוג
משלים לשתיים כדי שתהיה גלישה אם במהלך תהליך ההזזה שמאלה תתבצע החלפת סימן
(סכום חיוביים יהיה שלילי או סכום שליליים יהיה חיובי) .כלומר תהיה גלישה אם"ם שלוש
הסיביות השמאליות לא יהיו זהות זו לזו בערכן .במידה וכולן הן אפס או כולן 1יישמר הסימן
ולא תתבצע גלישה במהלך התהליך.
)an-1 xor an-2) OR (an-3 xor an-2)=1
ד.
היתרון הגדול של שיטת משלים ל 2בייצוג מספרים שלמים עם סימן הוא בזה שתמיכת החומרה
פשוטה ולכן מהירה יותר .מאחר שאלגוריתם החיבור לא מבחין בין שיטת ייצוג מספרים משלים
ל 2לבין שיטת ייצוג מספרים ללא סימן ,מבוצע אלגוריתם חיבור בינארי .בחיבור מספרים בשתי
שיטות הייצוג מתקבלת אותה התוצאה .ההבחנה והפירוש למה התכוונו בתוצאה ניתנת בפקודות
האסמבלי עצמן.
יתרונות נוספים:
ניתן לבדוק את הסימן של כל ערך בינארי בקלות על ידי בדיקת הסיבית השמאלית •
ביותר( .קיים בכל השיטות המקובלות לייצוג מספרים שלילים )
לכל מספר בתחום הייצוג יש ייצוג יחיד ,בניגוד למשל לשיטת המשלים ל 1-שבה ל 0-יש •
שני ייצוגים ,דבר המסבך מימוש של חומרה ותוכנה( .אבל זה מייצר גם מספר שלילי שלא
ניתן לייצוג בחיוביים)
שאלה : 3
מספר מחזורי השעון הדרושים לריצת כל התכנית הוא:
1
∙ 10 ∙ 0.5 ∙ 108 + 12 ]𝑐𝑐[ ∙ 108 + 1 ∙ 3 ∙ 108 = 10 ∙ 108
6
מכיוון שקצב השעון קבוע ,על מנת שהמעבד ירוץ פי 4יותר מהר יש להקטין את מספר מחזורי השעון פי
,4כלומר להקטין את מספר מחזורי השעון ב ) . 7.5 ∙ 108 -החלק היחסי Fשיש לשפר על מנת להגיע
להאצה של 4הוא .(1/(1-0.75)=4 0.75
1
פקודות החילוק מהוות רק 12 ∙ 6 ∙ 108 = 2 ∙ 108ממחזורי השעון ,ולכן לפי חוק אמדל לא ניתן
להגיע לשיפור הרצוי על ידי האצה של פקודות החילוק .
( החסם העליון של אמדל במקרה זה הוא ) 1/(1-0.2)=1.25
גם פקודות הכפל מהוות רק 10 ∙ 0.5 ∙ 108 = 5 ∙ 108ממחזורי השעון ולכן לא ניתן להגיע לשיפור
הרצוי בעזרת האצה של פקודות הכפל .אז לא ניתן לשפר את זמן הריצה באופן המבוקש.
(החסם העליון של אמדל במקרה זה הוא ) 1/(1-0.5)=2
ב.
10
לאחר השיפור ,ה CPI-של פקודות הכפל הוא = 1.25
8
12
וה CPI-של פקודות החילוק הוא . = 4נקבל שמספר מחזורי השעון לאחר השיפור הוא:
3
1
]𝐶𝐶[ 1.25 ∙ 0.5 ∙ 10 + 4 ∙ ∙ 10 + 1 ∙ 3 ∙ 10 = 4.292 ∙ 108
8 8 8
6
והשיפור ביחס למעבד המקורי הוא:
10 ∙ 108
= 2.330
4.292 ∙ 108
שאלה :4
ל ,P1-נמצא CPIממוצע:
]Cpi (P1)=1/6*1+3/6*1+1/6*2+1/6*3=9/6=1.5[Cc/Inc
]Cpi(P2)=1/6*2+3/6*4+1/6*2+1/6*3=19/6=3.16667[Cc/Inc
]CPUtime(P1)=IC*CPI/CR=IC*1.5/1.2[Ghz
]CPUtime(P2)=IC*CPI/CR=IC*3.16667/1.7[Ghz
באותו IC ISAהינו זהה ולכן:
CPUtime(P2)/CPUtime(P1)=(3.16667/1.7)/(1.5/1.2)=1.49
יוצא ש P1-יותר מהיר (יותר פקודות לשנייה) ,פי 1.49
שאלה :5
ד.
]MIPS (P1)=2.5*109[cycle/sec]/4.6*106[CC/ins*106]=.543.48[MIPS
]MIPS (P2)=2*109[cycle/sec]/2.4*106[CC/ins*106]=833.33[MIPS
היות ומדובר על אותו סט פקודות מדד ה MIPSנותן אינדיקציה לגבי הביצועים ואנו רואים ש p2יותר טוב מ
)(833.33/543.48=1.533 p1פי 1.533במדד ה .MIPS
כמובן שכמו בסעיף הקודם ,גם כאן ,אנו רואים ש P2יותר מהיר פי .1.533
)Speedup) = 0.0184/0.012 = 1.533מדד ההאצה
ו.
]𝑃0.0184[𝑠𝑒𝑐/ $
∗ ]𝑃[𝐶𝑜𝑠𝑡𝑃1 = 30,000 2
[ ∗ 1000 ] = 153.3$
]𝑟𝑢𝑜60 [𝑠𝑒𝑐/ℎ 𝑟𝑢𝑜ℎ
]𝑃[30,000
= 𝐶𝑜𝑠𝑡𝑃2 = 3000$
𝑃
] [10
$
במצב זה למרות ש P2יותר מהיר פי 1.533בזמן עבור המשימה הנדרשת עלות ההשכרה של P1הינה
פי 19.6יותר זולה(3000$/153.3$) .