RISC, CISC וזרימת עיבוד
הוצג| English | משמעות |
|---|---|
| CISC/sɪsk/ | CISC |
| RISC/rɪsk/ | RISC |
| pipelining/ˈpaɪplaɪnɪŋ/ | זרם ביצועים |
| Flynn's taxonomy/flɪnz tækˈsɒnəmi/ | טקסונומיית פליין |
| register/ˈredʒɪstə/ | רגיסטר |
| ALU/ˌeɪ el ˈjuː/ | יחידה אריתמטית לוגית (ALU) |
| hazard/ˈhæzəd/ | סיכון |
| SIMD/ˈsɪmdiː/ | SIMD |
| MIMD/ˈmɪmdiː/ | MIMD |
| massively parallel/ˈmæsɪvli ˈpærəlel/ | מקביליות נרחבת |
| supercomputers/ˌsuːpəkəmˈpjuːtəz/ | מחשבי ענק |
הטלפון בכיס שלך לא רץ על אינטל
- במשך שלושים שנה המעבדים המהירים ביותר היו המורכבים ביותר: הוסף הוראות, וכל אחת מבצעת יותר עבודה. אינטל בנתה עליהן אימפריה.
- אז חברת בריטית קטנה הכניסה מעבד פשוט במיוחד לטלפון. פחות הוראות, כולן באותו אורך, כמעט אין נוגעות בזיכרון. לא הייתה יכולה לבצע כה הרבה כל הוראה, וא nonetheless ניצחה.
- היא ניצחה כי הוראות פשוטות ואחידות יכולות להיות מחופפות, וההחפה שווה יותר למורכבות.
- לקח זה הוא CISC ו-RISC, שילוב הוראות (pipelining), ארבע הארכיטקטורות בטקסונומיית פליין, ואين הגרירה של טמפרטורת ומהירות המעבד מובילה.
CISC ו-RISC
- CISC, מחשב עם סט הוראות מורכב, יש לו הרבה, לעיתים מורכבות הוראות: אחת עשויה לבצע מספר גישות לזיכרון ותפעול. הן באורך משתנה, כך שפירושן מורכב. היא מבצעת יותר כל הוראה, בחומרה. לדוגמה: Intel x86.
- RISC, מחשב עם סט הוראות מופחת (Reduced Instruction Set Computer), בעל סט קטן של הוראות פשוטות, כל אחת מבצעת פעולה בסיסית אחת, כולן באורך קבוע וקלות לפענוח. רק טעינה (load) ואחסון (store) פוגעים בזיכרון; כל שאר הפעולות הן רשמה לרשמה. דוגמה: ARM.
- תוכניות RISC הן ארוכות יותר, אך כל הוראה מהירה וניתנת לחיזוי, בדיוק מה שפייפליין זקוק לו.

יותר בהוראה, או מהיר וניתן לחיזוי יותר בהוראה
מעבד RISC מאופיין ב:
Difficulty 1/5 · 100 coins + a small bonus on first completion today
RISC שומר על פקודות בודדות, פשוטות וארוכות קבועה (בדרך כלל ⟨1⟩ מחזור); CISC מכיל פקודות רבות מורכבות עם אורך משתנה.
ההבדלים שהמבחן דורש
| מאפיין | CISC | RISC |
|---|---|---|
| סט הוראות | הרבה, מורכבות | מעט, פשוטות |
| אורך הוראה | משתנה | קבוע |
| גישה לזיכרון | ייתכן שהרבה הוראות יגישו לזיכרון | רק טעינה ואחסון |
| רשמים | פחות | הרבה |
| מחזורי הוראה | משתנה | בדרך כלל אחד |
| פייפליינינג | קשה יותר | טבעי |
- שבבים מודרניים של אינטל ממירים את הוראות ה-CISC שלהם לתוך מיקרו-פעולות פשוטות הדומות ל-RISC באופן פנימי, מה שמציג את העדות הכי ברורה לכך שאיזה עיצוב ניצח במחלוקת.
התאם כל מונח לתיאור המתאים לו.
Difficulty 2/5 · 140 coins + a small bonus on first completion today
RISC = פשוט + אורך קבוע + טעינה/אחסון; CISC = מורכב + אורך משתנה; זרימת פקודות מתכתבת את השלבים למהירות.
מעבד RISC, הפקודות היחידות שמוגשות לגישה בזיכרון הן טעינה ו____.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
הכל האחר הוא רשמה-לרשמה. הגבלה זו היא מה שהופכת את הפקודות לארוך קבוע, אחידות בזמן ביצוע וקלות לזרימת פקודות.
פייפליינינג
- פייפליינינג מעבד הוראות בשלבים מצטלבים, כמו קו הרכבה: קבלה, פענוח, ביצוע ב-ALU, גישה לזיכרון, כתיבה חוזרת.
- כל שלב עובד על הוראה שונה בו-זמנית, כך שבמועד שהפייפליינינג מתמלא, הוראה אחת נגמרת בכל מחזור.
- זה לא הופך הוראה בודדת למהירה יותר. הוא מגביר את התפוקה: יותר הוראות נגמרות בשנייה.
- הוראות ה-RISC הקבועות והפשוטות גורמות לכל שלב לקחת אותה כמות זמן, ולכן פייפליינינג של RISC עובד בצורה נקייה בעוד ש-CISC לא.

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

הוראה אחת, פריטי נתונים רבים
איזה מהתיאורים מתאר SIMD? סמן את כולם החלים.
Difficulty 2/5 · 140 coins + a small bonus on first completion today
תוכניות שונות על נתונים שונים זהו MIMD, המקרה של ליבה מרובה. SIMD היא זרע הוראה אחד על פני מספר זרעי נתונים.
מחשבים מקבילים באופן מאסיבי
- מערכת מקבילית באופן מאסיבי משתמשת באלפי מעבדים המחוברים ברשת מהירה, כל אחד עם זיכרון משלו, ומחליף נתונים באמצעות הודעות ולא באמצעות שיתוף זיכרון.
- זוהי MIMD, והיא דורשת תוכנה שנכתבה במיוחד, מכיוון שהמתכנת חייב לחלק את הבעיה ולנהל את התקשורת.
- זהו סוג המחשבים הגדולים ביותר (סופרמחשבים): סימולציית אקלים, אימון למודלים של למידת מכונה ואסטרופיזיקה פועלים כולם בדרך זו.
מעבדי מחשב מקביל עצום משתפים בבלוק זיכרון אחד.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
לכל מעבד יש זיכרון משלו, והם מחליפים נתונים באמצעות הודעות ברשת מהירה. זוהי הזיכרון המפוץ שמילה מתייחסת אליה.
דוגמה מפורטת: מיקום המכונה
- כרטיס גרפי מקיים התאמת בהירות זהה לשני מיליון פיקסלים. SIMD: הוראה אחת, נתונים רבים, וזה בדיוק מהשבבים הקטנים של אלפי ליבות GPU נבנו עבורו.
- מחשב נייד בעל ארבע ליבות מנהל דפדפן, מקומפל ומנגן מוזיקה בו זמנית. MIMD: הוראות שונות על נתונים שונים, זרם אחד לכל ליבה.
- מרכז מזג אוויר מחלק את האטמוספרה לרשת על עשרת אלפים מעבדים, כל אחד עם זיכרון משלו, ועובר ערכי גבול כהודעות. מקביליות עצומה, שהיא סוג של MIMD.
- ציין את הקטגוריה, ולאחר מכן נמק עם מספר זרמי ההוראות והנתונים.
סימונים נופלים מהיד
- השחלבת הוראות (Pipelining) מגבירה את התפוקה; היא אינה מקצרת זמן ביצוע של הוראה בודדת. אמור זאת.
- בארכיטקטורת RISC, רק הוראות טעינה ואחסון פוגעות בזיכרון. עובדה זו אחת מסבירה את אורך ההוראה הקבוע, את מספר הרגיסטרים הגדול ואת השחלבה הנקייה.
- SIMD היא הוראה אחת על נתונים רבים; MIMD הוא הוראות רבות על נתונים רבים. ספור את הזרמים לפני התשובה.
- מקביליות עצומה מתכוונת לעשרות אלפי מעבדים עם זיכרון מפוזר ועבר הודעות, ולא רק "מחשב מהיר".
הבנתך מושלמת
- CISC: הוראות מורכבות רבות באורכים משתנים, יותר הוראות להוראה · RISC: מעט הוראות פשוטות באורך קבוע, טעינה ואחסון בלבד, רגיסטרים רבים, מחזור אחד כל אחת
- שחלבה (Pipeline) חופפת בין קבלת הוראה, פענוח, ביצוע, זיכרון וחזרה לזיכרון, כך שהוראה אחת נסתיימת במחזור ברגע שמלאה: תפוקה גבוהה יותר, לא הוראות מהירות יותר; סיכון נתונים וסיכון בקרה תולעים אותה
- פליין: SISD, SIMD (GPU), MISD, MIMD (רב-ליבה)
- מקביליות עצומה: עשרות אלפי מעבדים, זיכרון מפוזר, עבר הודעות, MIMD, משמש על ידי מחשבי על