1 / 32

מבנה מחשב

מבנה מחשב. תרגול 1 ייצוג מידע ומספרים בחומרה. יחידות הזיכרון הבסיסיות. פירוש המידע השמור. MS. LS. כיצד יש לקרוא רישום בוליאני? לדוגמא LSB ( Least Significant Bit ) - הסיבית הראשונה מצד ימין ( תורמת הכי מעט להבנה ) בדוגמא הנ"ל ערכה הוא 1. היא מייצגת את המקדם של הערך 2 0

koen
Télécharger la présentation

מבנה מחשב

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. מבנה מחשב תרגול 1ייצוג מידע ומספרים בחומרה

  2. יחידות הזיכרון הבסיסיות תמר שרוט, נועם חזון

  3. פירוש המידע השמור MS LS • כיצד יש לקרוא רישום בוליאני? לדוגמא • LSB (Least Significant Bit) - הסיבית הראשונה מצד ימין ( תורמת הכי מעט להבנה )בדוגמא הנ"ל ערכה הוא 1. היא מייצגת את המקדם של הערך 20 • MSB (Most Significant Bit) - הסיבית הראשונה מצד שמאל ( תורמת הכי הרבה )בדוגמא הנ"ל ערכה הוא 0. אם היא מייצגת את סיבית הסימן (Sign)אז המספר חיובי (נרחיב על כך בהמשך). אחרת היא מייצגת את מקדם 27 במספר. • בשפת C ניתן להגדיר boolean אך הוא לרוב נשמר ביחידת הזיכרון הבסיסית שניתנת לגישה בעזרת pointer כלומר Byte = 8 bit. בזבזני, מספיק ביט בודד. • ניתן בעזרת פעולת or להשתמש ב-char לאכסן 8 משתנים בוליאניים. • כדי לקרוא את ה- bool ה-i נבצע (x & 2i( >> i

  4. Big / Little Endian Little • קיימות שתי שיטות נפוצות לשמירת את ה Integer הבא 000000010000010010001101 10000000בזיכרון: • אם ערך ה-MSB אגור בכתובת נמוכה הדבר נקרא שיטת Big Endians.

  5. פרשו את המחרוזת 000000010000010010001101 10000000 0 • כמה word (?) כמה מהם זוגיים? • כמה word שליליים? • כמה Byte (?) כמה מהם אי-זוגיים? • כמה HalfWord (?) כמה מהם חיוביים? 1 1 1 +1 = 2 4 1 2 תמר שרוט, נועם חזון

  6. בסיסים (הקדמה 1) • כאשר אנו רושמים מספר אנו למעשה עושים שימוש במקדמים ובסיסים • הרישום של המספר 102הינו למעשה הסכום הבא: • 2 אחדות • 0 עשרות • 1 מאות • נכון להציגו כפולינום מהצורה: • 2*100 + 0*101 +1*102 • 2*1 + 0*10 +1*100 • 2 +0 + 100 = 102 • הבסיס לפולינום הרשום הינו המספר 10 ועל כן מכונה "בסיס 10" • חזקת הבסיס עולה באופן עוקב עם התנועה שמאלה ברישום המספר • ברישום המספר אנו נדרשים רק לציין את ערך המקדמים (A, B ...) שהינה מהתחום 0-9 • כל ספרה המצורפת משמאל היא למעשההמקדם של החזקה הבאה על פני הבסיס הקבוע

  7. בסיסים (הקדמה 2) • מעבר לייצוג עשרוני: • נבצע פירוש של החזקות העולות למספרים עשרוניים • נציב את המקדמים לפי מיקומם בייצוג המקורי • אם צריך נמיר את המקדמים לבסיס עשרוני (נראה בקרוב עבור Hex) • נבצע כפל בין המקדם לבסיס עם החזקה לקבלת הגורמים של המספר • נבצע סכום בין הגורמים השונים • לדוגמא עבור המספר 102 בבסיס 10 • ישנן 3 ספרות לכן נכין את החזקות: • הצבת המקדמים: • המקדמים כבר עכשיו לפי בסיס עשרוני • ביצוע הכפל: 2 + 0 + 100 • ביצוע הסכום: 2 + 0 + 100 = 102

  8. בסיסים (מעבר לעשרוני 2) • Decimal - בסיס 10 הנפוץ והידוע בו יש ברשותנו הספרות 0-9 • 0-9 הינם המקדמים החוקיים ו-10 הינו בסיס הפולינום • הייצוג של מאה ושתיים יהיה 102 • Binary - בסיס 2, הספרות 0-1 כמקדמים ו-2 הינו הבסיס לפולינום • מה יהיה הפרוש של המספר 0 1 1 0 0 1 1? • למעשה זהו 0*20+ 1*21 + 1*22 +0*23+ 0*24 + 1*25 +1*26 + 0*27 + ... • 0*1+ 1*2 + 1*4 +0*8 + 0*16 + 1*32 +1*64+ 0*128 + ... • 0 + 2 + 4 + 0 + 0 + 32 + 64 = 102 תמר שרוט, נועם חזון

  9. בסיסים (מעבר לעשרוני 3) • Octal– בסיס 8 הספרות 0-7 כמקדמים ו- 8 הוא בסיס הפולינום. מסומן ע"י 0 מוביל • מה פירוש הביטוי 6 4 1 0 ? • 6*80+ 4*81 + 1*82 +0*83 +... • 6 + 32 + 64 = 102 • Hexadecimal - בסיס 16 הספרות 0-f כמקדמים 16 הוא בסיס הפולינום מסומן ע"י 0x מוביל • כאן נוצר הצורך להוסיף "ספרות" חדשות לשימוש כמקדמיםספירה עד 16 (לא כולל) הינה  0 1 2 3 4 5 6 7 8 9 abcdef (=15)ו- 16 הוא בסיס הפולינום • מה פירוש הביטוי 0x66 ? • 6*160+ 6*161 + 0*162 +... • 6 + 96 = 102 • מה פירוש הביטוי 0x1af ? • כלומר f*160+ a*161 + 1*162 +... • 15*1+ 10*16 + 1*256 +... • 15 + 160 + 256 = 431 תמר שרוט, נועם חזון

  10. דוגמאות לשם תרגול (פירוש עשרוני) • חשבו את הערך העשרוני של: • 10 (Bin) = • = 2 • 10 (Oct) = • = 8 • 10 (Hex) = • 0x10= 0*160+ 1*161 = 16 • b8 (Hex) = • 0xb8 = 8*160+ b*161 = 8*160+ 11*161 = 8 + 176 = 184 = 0*20+ 1*21 10 = 0*80+ 1*81 010 תמר שרוט, נועם חזון

  11. המרת עשרוני לבסיס כלשהו שיטת השארית (1) • עד שתגיעו למחלק 0 בצעו: • בצע חלוקה מרבית של המספר העשרוני לפי הבסיס הרצוי • לחילוק הבא העבר את התוצאה(!) של החילוק הקודם(לא את השארית!) • רשום את השאריות ש"נפלה בדרך" משמאל לקודמת(הפוך מסדר הכתיבה באנגלית) • עבור המרה של הערך 38 לבסיס 8 (Oct) נבצע את החישוב הבא: • הייצוג יהיה: 046 תמר שרוט, נועם חזון

  12. המרת עשרוני לבסיס כלשהו שיטת השארית (2) • נייצג את 103 בבסיס 8 (Oct): • הייצוג יהיה: 0147 • נחשב את 8 בבסיס 2 (Bin): • הפעם נשמיט את הרישום הכפול • אם אנו כותבים מימין לשמאל כאמורנאסוף מההתחלה לסוף • אם אנו כותבים משמאל לימין עלינו לאסוף את השאריות מהסוף להתחלה 0 1 0 0 0 4 0 2 0 1000 1 1 תמר שרוט, נועם חזון 0

  13. מעברי בסיסים נפוצים • האם כדי להמיר ביטוי מ Bin ל Hex באמת נצטרך לקחת את הביטוי, לחשב את ערכו העשרוני ואח"כ להמירו לפי שיטת השאריות לבסיס Hex? • לא ! ראו את השקפים הבאים תמר שרוט, נועם חזון

  14. BinHex • נרצה לבצע המרה ישירה ללא מעבר לעשרוני • נבצע הרכבה מחדש של המספר ל-"רביעיות" של סיביות לפי הטבלה הבאה (ודאו הבנתכם) • כעת ניתן לייצג ע"י סימן Hex יחיד כל רביעייה • המירו ישירות את 1110 לייצוג Hex: • 1110 e = 0xe • המירו ישירות את 00101110 לייצוג Hex: • 00101110  1110 , 0010 • e , 2 = 0x2e • המירו ישירות את 1111010 לייצוג Hex: • 1111010 1010 , 0111 • a , 7 = 0x7a תמר שרוט, נועם חזון

  15. HexBin • נרצה לבצע המרה ישירה ללא מעבר לעשרוני • נבצע פרוק של הסימן מקור ל-"רביעיות" של סיביותלפי הטבלה הקודמת • כעת ניתן לייצגו ע"י {0,1} • המירו ישירות את 0x10 לייצוג Bin: • 10 0000, 0001 • ייצוג סופי = 00010000 • מה הערך העשרוני? • המירו ישירות את 0xf3 לייצוג Bin: • f3 0011 , 1111 • ייצוג סופי = 11110011 16 תמר שרוט, נועם חזון

  16. BinOct • נרצה לבצע המרה ישירה ללא מעבר לעשרוני • נבצע הרכבה מחדש של המספר ל-"שלישיות" לפי הטבלה הבאה • כעת ניתן לייצג ע"י סימן Oct יחיד כל שלישיה • המירו ישירות את 110 לייצוג Oct: • 110 6 = 6  נכתב 06 • המירו ישירות את 101110 לייצוג Oct: • 101110 110, 101 • 6 , 5 , = 56 נכתב 056 • מה הערך העשרוני? • המירו ישירות את 1111010 לייצוג Oct: • 1111010 010 , 111 , 001 • 2 , 7 , 1 = 0172 46 תמר שרוט, נועם חזון

  17. OctBin • נרצה לבצע המרה ישירה ללא מעבר לעשרוני • נבצע פירוק של המספר ל-"שלישיות" לפי הטבלה הקודמת • כעת ניתן לייצג ע"י {0,1} • המירו ישירות את 0110 לייצוג Bin: • 0110 = 000, 001, 001 001001000 • מה הערך העשרוני? • המירו ישירות את 04526 לייצוג Bin: • 04526 110, 010, 101, 100 • 100101010110 100101010110 72 תמר שרוט, נועם חזון

  18. Oct↔Hex • נרצה לבצע המרה ישירה ללא מעבר לעשרוני • האם ניתן לעבור ישירות בין השניים? • לא • Oct מבוסס בפעולתו על ייצוג מלא בעזרת 3 ביט, ואילו Hex בעזרת 4, למעשה הביט הרביעי שה Hex זקוק לו מאוכסן בתא הראשון של האות הבאה של ה-Oct. • נבצע המרה לבינארי ואח"כ ייצוג מחדשלפי הבסיס האחר כפי שהוסבר מעלה • המירו ישירות את 0172 לייצוג 0x: • 0172 • 010, 111, 001 • 001111010001111010 • 001111010a, 7 • 0x7a • מה ערכו העשרוני? 122 תמר שרוט, נועם חזון

  19. דוגמאות לשם תרגול (המרה בין בסיסים 1) • המירו ישירות את 0xa5 לייצוג Oct: • 0xa5 • 0101, 1010 • 1010010110100101 • 101 , 100,0105, 4, 2 • 0245 • המירו ישירות את 0372 לייצוג Bin: • 0372010, 111, 011 • 01111101011111010 תמר שרוט, נועם חזון

  20. דוגמאות לשם תרגול (המרה בין בסיסים 2) • המירו את 62 ל- Hex בעזרת חלוקה ב 2 בלבד ותוך שימוש בטבלה המקוצרת • נאסוף את השאריות מהסוף להתחלה • כעת קל לנו להמיר לייצוג Hex • 111110  1110 , 0011 • e , 3 0x3e 0 31 1 15 1 111110 7 1 3 1 1 1 0 תמר שרוט, נועם חזון

  21. ייצוג מספרים שליליים

  22. ייצוג המספר ותמיכה בפעולות בסיסיות • במחשב עצמו אנו תמיד שומרים מידע לפי בסיס בינארי • בעזרת n סיביות ניתן לייצג 2n ערכים • נרצה לייצג מספרים שליליים • אם נאפשר ייצוג של מספרים שליליים האם תחום המספרים קטן? • רצוי שלא, ואף רצוי שלא יהיה ייצוג כפול למספר בודד • מספר המצבים נשאר זהה, משמעותם אחרת • נרצה לבצע פעולות חיבור, חיסור, כפל וחילוק בקלות יחסית • נרצה לייצג שברים. מאוחר יותר נתייחס לסוגיה זו תמר שרוט, נועם חזון

  23. מספרים שליליים Sign • אם המספר חיובי הייצוג Binary הוא הייצוג הרשמי • בתחילת המצגת ציינו כי בייצוג signed, אם ה-MSB הינו 1 אזי המספר שליליאך מהי משמעות יתר הסיביות במצב זה? • הצעות: • Sign – Magnitude – יתר הסיביות מציגות את המספר באופן חיובי. • כלומר 5 = 0101, הייצוג של (5-) יהיה = • קושי! כיצד נרשום את אפס? כיצד נבצע חיבור? • One’s Complement – עבור שלילי יתר הסיביות הפוכות למקור • כלומר 5 = 0101, הייצוג של (5-) יהיה = • קושי! כיצד נרשום את אפס? מה משמעות ביצועand עם אפס? • Two’s Complement – בנוסף להפיכת הסיביות נבצע פעולת חיבור עם …000001 1101 0000 וגם 1000 1010 וגם 1111 0000 תמר שרוט, נועם חזון

  24. מספרים שליליים Two’s Complement • בנוסף להפיכת הסיביות • נבצע פעולת חיבור עם …00001 • כלומר 5 = 0101, הייצוג של (5-) יהיה = • הפעולה זו להפתעתכם (?) סימטרית • נבצעה שוב לייצוג של -5 ונראה זאת • 1011  0100 + 0001  0101 • כיצד נרשום את אפס? • ייצוג יחידני! 0000... • אם ננסה להחיל אליו את החוקיות • כיצד נבצע פעולת חיבור עם שלילי? • ישירות ! ללא צורך בתרגום 1010 + 0001  1011 111... + 0001  00000... תמר שרוט, נועם חזון

  25. דוגמאות לשם תרגול של Two’s (1) • מה הערך של 11111111? • זהו מספר שלילי שכן ה- MSB = 1 • 00000000 + 00000001  00000001 = 1 • הייצוג הוא של המספר (1-) • מה הערך של 10001111? • 01110000 + 00000001 01110001 = 1 + 24 + 25 + 26 = 113 • הייצוג הוא של המספר (113-) • אם הוא signed מה הערך של ה- integer - 0xf020? • ראשית נהפוך לבינארי 0 ,2, 0, f 0000, 0010, 0000, 1111 • אנו רואים כי זהו מספר שלילי 1111000000100000 • התהליך הרגיל ובידינו ערכו החיובי: • לאחר חישוב זריז (ראו הערה) זהו המספר: = 4064- 0000111111100000 תמר שרוט, נועם חזון

  26. דוגמאות לשם תרגול של Two’s (2) • מצא את הייצוג של 62-? • ראשית נמצא את הייצוג של 62 (ראו שקף מסכם של חלק א) • הייצוג של 62 הינו 111110 • שימו לב כי נראה כעת כי ה MSB שלו הוא 1 ולכן המספר כבר שלילי !! • כדי לציין כי זהו ערך חיובי נשים אותו במסגרות חוקיות כלומר נאכסן ב-Byte • 00111110 • כעת כרגיל, נהפוך את הסיביות ונוסיף 0001... • 11000001 + 00000001 11000010 • שימו לב! • מעכשיו יש להקפיד על ייצוג בינארי במסגרות חוקיות של Bytes / Half words / Words / Double words. • כלומר במסגרות של 8 / 16 / 32 / 64 סיביות. תמר שרוט, נועם חזון

  27. מציאת ערך Two’s Complement בקלות • שיטה אלטרנטיבית לחישוב השלילי: • קחו את ה-MSB כמספר חיובי בחזקה הרלוונטית לו • חסרו ממנו את הערך החיובי של ה 1-ים בייצוג המקורי • הוסף את סימן המינוס • מה ערכו של ה 1001000000100000? • לפי השיטה המקורית חשב את: 0110111111100000 • אך כאן? • ערכו של ה- MSB עבור מספר בן 16 סיביות הינו 215 ולכן ערכו 32768 • ממנו יש להפחית במקרה זה את 25 ואת 212 • סה"כ (32 + 4096) – 32768 = 28640 • ולבסוף קיבלנו -28640 תמר שרוט, נועם חזון

  28. מציאת הייצוג השלילי של מספר ידוע בקלות • שיטה אלטרנטיבית למציאת הייצוג השלילי (Two’s): • קחו את הייצוג החיובי ותוך מעבר מימין לשמאל  • העתיקו את הערכים עד (כולל) שתגיעו ל-1 הראשון מימין • לאחר ה 1 הראשון מימין, המשיכו להעתיק תוך הפיכת הערכים • מצאו את הייצוג של 72- • ראשית עלינו למצוא את הייצוג שלו בצורה בינארית • הייצוג של 72 ע"פ שקף קודם הינו 1001000 = 8 + 64 • בצורתו המלאה 01001000 • בשיטה המהירה: 1 0 1 1 1 0 0 0 תמר שרוט, נועם חזון

  29. פעולות אריתמטיות עם מספרים שלמים חיבור וחיסור

  30. מספר בייצוג של פולינום עם בסיס b • הנוסחה של ייצוג מספר כפולינום ניתן לייצג כך: • לכן טווח המקדמים הינו תמיד עד (לא כולל) הערך של bשהרי אם ai = b אז למעשה היה עלינו לתת ל- ai את הערך 0 ולבצע ai+1 ←ai+1 +1 תמר שרוט, נועם חזון

  31. פעולת חבור וחיסור בין שלמים • קל לראות כי אילו נחבר/נחסר שני מספרים (פולינומים) בעלי בסיס זהה אנו למעשה מחברים/מחסרים את המקדמים • שוב נידרש "להעביר הלאה" את העודפים של מקדם שעבר את ערך הבסיס או "להשאיל" ממקדם גבוה במקרה הצורך • לדוגמא: 19 + 1 = 9*100+ 1*101 + 1*100 +0*101 =0*100+2*101 = 20 תמר שרוט, נועם חזון

  32. ed 10 10 15 דוגמאות של חיבור וחיסור (שלמים חיוביים) • חיבור: • חיסור 1 1 1 1 1 1 1 0001 1 0 0 0 1 f 0 3 b 01 12 9-1 9 1-1 8 9 9 1 1 0 0 0 000 0 c 7 9 תמר שרוט, נועם חזון

More Related