ביצועים, מחזור ציוד-ביצוע והפרעות
הוצג| English | משמעות |
|---|---|
| interrupt/ˈɪntərʌpt/ | הפרעה |
| clock speed/klɒk spiːd/ | מהירות שעון |
| fetch-execute cycle/fetʃ ˈeksɪkjuːt ˈsaɪkl/ | מחזור הוראה-ביצוע |
| cores/kɔːz/ | ליבות |
| cache/kæʃ/ | מטמון (Cache) |
| word size/wɜːd saɪz/ | אורך מילה |
| port/pɔːt/ | יציאה |
| peripheral/pəˈrɪfərəl/ | מכשיר משני |
| register transfer notation/ˈredʒɪstə ˈtrænsfɜː nəʊˈteɪʃn/ | סימון העברת רישומים |
| stack/stæk/ | סטק |
| interrupt service routine/ˈɪntərʌpt ˈsɜːvɪs ruːˈtiːn/ | תוכנית שירות הפרעות |
| interrupt register/ˈɪntərʌpt ˈredʒɪstə/ | רישום הפרעות |
מדוע המחשב שלך מפסיק הכל כשאתה לוחץ מקש
- מעבד מבצע מיליארדי מחזורים בשנייה. אם היה צריך לעצור ולשאול את המקלדת "עוד דבר?" בין הוראות, הוא ישחית את רובם בשאלות.
- במקום זאת, המקלדת שולחת הפרעה. המעבד גמר את ההוראה הנוכחית, שמר את מקומו, טיפל בלחיצה, וחזר כאילו nichts לא קרה.
- מנגנון זה הוא ההסבר לכך שמעבד יחיד נראה כאילו הוא מפעיל את המוזיקה שלך, את הדפדפן והקלדת בטוח בו-זמנית.
- שיעור זה עוסק במה הופך מעבד למהיר, כיצד הוא מתחבר למכשירים, באופן מדויק כיצד הוא מפעיל הוראה אחת, וכיצב קטע (interrupt) חודר לתוך התהליך.
מה משפיע על הביצועים
- מהירות שעון: יותר מחזורי קריאה-ביצוע בשנייה, כלומר יותר הוראות בשנייה, עד שהחום מגדיר את הגבול.
- מספר ליבות: כל ליבה קוראת ומבצעת את ההוראה שלה בו-זמנית, כך שמספר תוכניות או תהליכים רצים במקביל. תוכנית חייבת להיות מותאמת לשימוש בהן, ולכן הכפלת מספר הליבות אינה מכפילה את המהירות.
- רוחב סל: סל נתונים רחב מעביר יותר ביטים בכל העברה, ולכן נדרשות פחות העברות; סל כתובות רחב מאפשר גישה לזיכרון גדול יותר.
- מטמון (Cache): זיכרון קטן ומהיר הסמוך למעבד המשמר את ההוראות והנתונים שנשמשו לאחרונה, כך שישנן פחות נסיעות איטיות ל-RAM. גם גודל מילה, כמות ה-RAM וסוג האחסון עוזרים.
בחר את כל הגורמים המשפיעים על ביצועי ה-CPU.
Difficulty 2/5 · 140 coins + a small bonus on first completion today
מהירות שעון, ליבות ו-cache (בנוסף לגודל מילה, RAM, אחסון ורוחב נתיב) כולם משפיעים על הביצועים. צבע המארז לא משפיע.
מעבד רב-ליבה הוא במיוחד מועיל עבור:
Difficulty 1/5 · 100 coins + a small bonus on first completion today
ליבות נוספות מריצות משימות במקביל. משימה חד-תהליכית טהורה נהנית יותר ממהירות גבוהה יותר לכל ליבה.
____ memory הוא מאגר קטן ומהיר בסמוך למעבד שמחזיק הוראות ונתונים ששימשו לאחרונה, כך שפחות נסיעות איטיות ל-RAM נדרשות.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
יותר cache אומר שיותר מערכת העבודה נמצאת בסמוך למעבד, והוא זה הסיבה שהוא מופיע בכל השוואת הביצועים.
דוגמה פתורה: "הסבר מדוע המחשב החדש מהיר יותר"
- השוו בין שתי המפרטים שורה אחר שורה, עם הסיבה המתאימה לכל אחד.
- 3.8 GHz לעומת 2.4 GHz: יותר מחזורים בשנייה, כלומר יותר הוראות מבוצעות בשנייה.
- 8 ליבות לעומת 4: ניתן לקרוא ולבצע פי שניים מההוראות בו-זמנית, עבור תוכנה הנמצשת בהן.
- 16 MB מטמון לעומת 4 MB: יותר מהסט העובד נשמר לצד המעבד, ולכן ישנם פחות המתנות ל-RAM. כל שורה זוכה לשתי נקודות: הגורם והתוצאה שלו.
יציאות (Ports)
- יציאה היא שקע פיזי המקשר התקן היקפי.
- USB (BUS סדרוני אוניברסלי) הוא רב-שימושי: מקלדות, דיסקים, טלפונים. הוא התקנה וחיווט מיידי: המחשב מזהה את ההתקן, מזיהה אותו, מטעין את הדרייבר שלו ויכול לספק לו חשמל, ללא צורך בהפעלה מחדש.
- HDMI (ממשק מולטימדיה ברזולוציה גבוהה) מעביר וידאו דיגיטלי וגם אודיו באותו כבל, ולכן אין המרה לאנלוגי והתמונה אינה מתדרדרת. VGA (מערך גרפי וידאו) הוא השקע הווידאו האנלוגי הישן.
התאם כל יציאה למה שהיא מעבירה.
Difficulty 2/5 · 140 coins + a small bonus on first completion today
אותות שונים, שקעים שונים: כבל HDMI לא יתאים ליציאת USB.
שלב הקריאה
- פעם אחת בכל הוראה המעבד מרחיק את מחזור הקריאה-ביצוע. הקריאה באה ראשונה, ובמבחן דורשים אותה בסימון העברת רשומות.
MAR ← [PC] the address of the next instruction goes to the MAR
PC ← [PC] + 1 the PC now points to the following instruction
MDR ← [[MAR]] the instruction at that address is read into the MDR
CIR ← [MDR] the instruction is copied into the CIR for decoding
- אות קריאה עובר על סל הבקרה, הכתובת על סל הכתובות, וההוראה חוזרת על סל הנתונים. ה-PC מוגדל מיידית לאחר העתכת כתובתו, כדי שקפיצה שתבוצע מאוחר יותר תוכל仍 להחליף אותה.

PC → MAR → זיכרון → MDR → CIR, כאשר ה-PC מוגדל במהלך המסע
סדר את שלבי החיפוש בסדר הנכון.
Difficulty 3/5 · 200 coins + a small bonus on first completion today
PC → MAR, הגדלת PC, אות קריאה, ולאחר מכן ההוראה עוברת MDR → CIR מוכנה לפענוח.
ערך PC מוגדל במהלך שלב החיפוש כדי שהמחזור הבא יחפש את ההוראה הבאה.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
הגדלת ערך PC מוקדם פירושה שהוא כבר מצביע על ההוראה הבאה בזמן ביצוע ההוראה הנוכחית (אלא אם קפיצה משנה אותו).
פענוח, ביצוע, חזרה
- פענוח: יחידת הבקרה קובעת מההוראה ב-CIR האם זו פעולה כלשהי ואين הארגומנטים שלה נמצאים.
- ביצוע: חישובים אריתמטיים ולוגיים מתבצעים באליו, עם התוצאה ב-ACC; הוראת טעינה או אחסון מעבירה נתונים בין הזיכרון לרישום; הוראת קפיצה כותבת כתובת חדשה לתוך ה-PC.
- לאחר מכן מחזור החישוב חוזר מהנקודה
MAR ← [PC]. בסוף כל מחזור, המעבד בודק גם האם ממתינים לו קטע (interrupt).
טעינה אחת והוספה אחת עוברות את הרישומים: טעינה, פענוח, ביצוע, חזרה לחזור
מחזור ציוד-ביצוע
הקלד סביב לולאת ה-CPU החוזרת מיליארדי פעמים בשנייה. צפה כיצד השלב fetch משתמש ברישומי PC/MAR/MDR/CIR, ולאחר מכן decode ו-execute פועלים על מה שנלקח.
דוגמה פותרת: ביצוע שתי הוראות בסימון
- לבצע
LDD 200(טען תוכן של הכתובת 200 ל-ACC):MAR ← 200, לאחר מכןMDR ← [[MAR]], לאחר מכןACC ← [MDR]. - לבצע
ADD 201:MAR ← 201,MDR ← [[MAR]],ACC ← [ACC] + [MDR]. - לבצע
STO 202:MAR ← 202,MDR ← [ACC],[[MAR]] ← [MDR]. - כל שורה מעבירה ערך אחד בין שני מקומות. הסוגריים הכפולים תמיד פירונם "מיקום בזיכרון שכתובתו נמצאת ב-MAR".
סדר את העברות הרשמים המבצעות LDD 200 בסדר הנכון.
Difficulty 3/5 · 200 coins + a small bonus on first completion today
כתובת למרשם MAR, תוכן הכתובה זו למרשם MDR, ולאחר מכן לאקומולטור.
הפרעות (Interrupts)
- הפרעה היא אות שמפסיק את המחזור הרגיל כדי שהמעבד יוכל להתמודד עם אירוע דחוף.
- גורמים: מכשיר חומרה (מקשי קלדור, תור הדפסה ריק, חבילת רשת הנכנסת), תקלת תוכנה (חלוקה באפס, הוראה לא חוקית, סחיף אריתמטי), השעון של מערכת ההפעלה המסמן את סוף החלק הזמן, אזהרת הפסקת חשמל.
- הפרעות מאפשרות למערכת להגיב במהירות ללא צורך במעבד לבדוק מכשירים באופן מתמיד, והן המנגנון בו מערכת ההפעלה מנהלת משימות מרובות.

המחזור, עם בדיקת ההפרעה בסוף כל מעבר
הפרעה היא:
Difficulty 1/5 · 100 coins + a small bonus on first completion today
הפרעה מפסיקה זמנית את מחזור ההוראה-ביצוע כדי שהמעבד יוכל לשרת אירוע דחוף, ולאחר מכן ממשיך.
איזה מהאירועים הבאים יכול לגרום להפרעה? סמן את כל האפשרויות החלות.
Difficulty 2/5 · 140 coins + a small bonus on first completion today
אירועי חומרה, תקלות תוכנה וטיימר מערכת ההפעלה גורמים להפרעות. סיום לולאה הוא זרימת תוכן רגילה הנשלטת על ידי הוראת קפיצה, ולא הפרעה.
טיפול בהפרעה
- סיום ההוראה הנוכחית. שמירת מצב: תוכן ה-PC והרישומים האחרים מועברים לסטק.
- טעינת כתובת תוכנית שירות ההפרעות (ISR) לתוך ה-PC וביצועה. תוכנית ה-ISR מטפלת באירוע.
- שחזור המצב המושמר מהסטק והמשכה בתוכנית שהופרעה בדיוק מהנקודה שבה נעצרה.

שמור, שירות, שחזר, המשך
כאשר מתרחשת הפרעה, המעבד מסיים תחילה את ההוראה הנוכחית, ולאחר מכן:
Difficulty 1/5 · 100 coins + a small bonus on first completion today
הוא שומר את PC והריגיסטרים, פועל בתוכנת שירות ההפרעות, ולאחר מכן משחזר את המצב וממשיך מהנקודה בה עצר.
דוגמה פתורה: תשובה לשאלה של ארבע נקודות על הפסקות
- הסבר כיצד הפסקה ממכניס קלט מזהה ומטופלת במחזור ה-Fetch-Execute.
- המכשיר שולח אות הפסקה שמגדיר סימן (flag) ב-רישום ההפסקות. מעבד הבדוק רישום זה בסוף כל מחזור, לאחר שההוראה הנוכחית הסתיימה לביצוע.
- אם סימן מוגדר וההפסקה בעלת עדיפות גבוהה מהמשימה הנוכחית, ה-PC ושאר הרישומים נשמרים בערימה. כתובת ISR נטענת ל-PC והתוכנית פועלת.
- כאשר היא מסתיימת, הרישומים משוחזרים מערימה והתוכנית המקוטעת ממשיכה מאין הפסיקה. ארבע נקודות, בסדר זה.
המעבד בודק האם ישנן הפרעות בסוף כל מחזור הוראה-ביצוע, לאחר סיום ההוראה הנוכחית.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
המועדות הזו היא מה שמאפשרת לשמור את המצב בצורה נקייה: לא נשאר לעולם הוראה בעומד במחצית ביצועה.
סימונים נופלים מהיד
- ה-PC מתגבר במהלך ה-fetch, ולא לאחר ה-execute. שימו
PC ← [PC] + 1במקום השני, ישר אחריMAR ← [PC]. - הפסקות נבדקות בסוף מחזור, לעולם באמצע הוראה.
- המצב עולה לערימה וחוזר ממנה. "המעבד נעצר" או "התוכנית אבודה" הוא שגוי: היא ממשיכה בדיוק מהנקודה בה הייתה.
- ליבה נוספת אינה מכפילה את המהירות; התוכנה צריכה להשתמש בהן. ציינו זאת בהשוואת מפרטים.
הבנתך מושלמת
- ביצועים: מהירות שעון, ליבות, רוחב זריקה, מטמון (כן גם גודל מילה, RAM, אחסון), לכל אחד מהם השלכות.
- יציאות: USB רב-שימושיות וPlug-and-play, HDMI דיגיטליות לקולויה ולוידאו, VGA אנלוגיות לוידאו.
- fetch:
MAR ← [PC],PC ← [PC] + 1,MDR ← [[MAR]],CIR ← [MDR]; ואז decode, execute, חזור על כך. - הפסקה נבדקת בסוף כל מחזור: שמור מצב בערימה, הרץ את ISR, שחזר, המשך.