נציג מבנה הקורס. זה כולל ספרים מומלצים.
יופיעו שאלות תוך כדי הרצאות וידאו
יהיו כמה אוספים של תרגילים
שיעזרו מאוד להתכונן למבחן
אז אני אתן לכם רמז, אם תפתרו את התרגילים
ואם תרכשו מיומנות בפתרון תרגילים, יהיה לכם קל יחסית במבחן.
כנראה נשתמ בהערכה ישירה
במתן ציונים כיוון שלרוב לתרגיל יש כמה פתרונות
יהיו בקורס בוחן אמצע ומבחן סופי
אני רוצה לדבר על שיתוף פעולה ומידע בקורס הזה
זה רצוי , אבל אני רוצה שכל אחד מכם יפתור תרגילים בעצמו
תשתפו אחד את השני ברעיונות כלליים
אבל אני לא רוצה
שסטודנטים ידונו בפתרון מבחנים
למשל, אתם יכולים לדון על אופן פעולה של זכרון מטמון
כדי להבין את הנושא טוב יותר. תשתפו
פעולה כדי ללמוד חוקים ולהבין חומר. אבל אל תשתפו פעולה
ואל תדונו בפתרון תרגילים של המבחנים
אז בואו נדבר על תוכן הקורס.
המוטיבציה שלנו מאוד גבוהה ועכשיו נדבר על
רכיבים של הקורס. אציג את זה כמשהו הפוך
ממה שאתם כבר הייתם אמורים ללמוד
בקורס מבנה מחשב , כמו קורס ELE 475 בפרינסטון
הייתם אמורים ללמוד פיתוח של מעבד בסיסי
דומה למשאתם רואים כאן זה ,למעשה, מחשב
הראשון מסוג RISK של ברקליי.
יש אומרים שמעבד נגיסות היה הראשון מסוג RISK
IBM 801 כלל הרבה רכיבים דומים אבל לא נשא שם RISK
טוב, אז למדתם איך ליצור מעבד שכולל 50000
טרנזיסטורים, אפשר לראות את כולו כאן
מעבד מסוג "צינור עיבוד נתונים" דו שלבי. הייתם אמורים ללמוד
דברים בסיסיים על זכרון מטמון, עיקרון צינור איבוד נתונים
וקצת על זכרון, ואתם אמורים לדעת עקרון פעולה
של לוגיקה ושל לוגיקה סיפרתית. בניגוד לכך, בקורס זה במקום
ללמוד איך ליצור מעבד פשוט, נלמד
איך לבנות מעבדים מודרניים משורה הראשונה.
נלמד איך לבנות, או לפחות איך לפתח
דברים כמו כאן בתמונה. זה מעבד I7 של אינטל
נראה שזה I7 המקורי כי נכון לעכשיו יצא כבר דור שלישי של
מעבד I7 בשנת 2012. כך שזה מעבד די חדש
כדאי שתבינו מה סדר הגודל הבדלים. במעבד שראינו מקודם, כולל
50000 טרנזיסטורים. מעבד הזה מכיל 700
מליון טרנזיסטורים. הרבה יותר מורכב
ממעבד הקודם. אפשר גם להמשחיש את זה אחרת: המעבד שלמדתם עליו
בקורס "מבנה מחשב", הוא כגודל הריבוע הקטן כאן.
ויחס הביצועים של המעבדים
פרופורציונאלי ליחס הגדלים שלהם
אז במקום ללמוד איך לפתח מעבדים קטנטנים
נלמד לבנות מעבדום גדולים בעלי ביצועים
גבוהים. לפני שנסיים עם הרשימה, אני רוצה
לדבר בקצרה על תוכן הקורס ELE 475 ושתי שיטות עיקריות
להגדיל מהירות של המעבד.
אז איך נענה לצורך האצת מהירות מחשבים.
שיטה אחת - ליישם מקביליות.
אנחנו עומדים לגלות איך לנצל הרבה טרנזיסטורים בו זמנית,
מה שנקרא מקביליות בו זמנית בתוכנה, תוך הוספת טרנזיסטורים או
יותר מקביליות. בתקווה שזה יעלה
מהירות המחשב. יש שיטות שונות
ליישם מקביליות ולא תמיד מקביליות גלויה לפנינו.
בהרבה מקרים המקביליות חבויה למשל , מקביליות ברמת
הפקודות לגמרי חבויה.
מתכנת לא צריך לעשות כלום.
יש עוד שיטה מובילה - לעבוד פחות
ניקח כדוגמה פס ייצור מכוניות.
אפשר להרכיב מכונית תוך ביצוע פעולות לפי הסדר
ואפשר לנסות לבצע אותן פעולות במקביל, או ע"י כמה אנשים
שיבנו מכוניות שונות באותו זמן. ככה עובדת מקביליות.
דבר נוסף שאפשר לעשות, כדי
לייצר מכוניות מהר יותר - לצמצם כמות פעולות או חלקים.
ככה תעבדו פחות. אפשר לצמצם עבודה
על ידי שימוש במערכות תוכנה יעילות יותר. למשל, מהדר
טוב יותר. בהרבה מקרים זה יחסוך עבודה.
זה פקודת מיטוב במהדר.
כאשר מפעילים -03 או מיטוב עבור GCC, המהדר מנסה למחוק
הוראות מיותרות או לא מועילות מהתוכנה.
דוגמא מצוינת נוספת, שלא נתפספת
בעיני רבים כמפחיתה כמות העבודה,
זה זכרון מטמון במעבד. במצעות זכרון מטמון
הגישה למידה מתקצת לעומת זכרון RAM. וזה כמו
למקם חלקים על מדף, קרוב לפס ייצור
מכוניות. במקום ללכת כל פעם למחסן מרוחק.
הליכה למחסן גוזלת הרבה זמן.
נדרש מאמץ גדול כדי להביא את החלק.
אבל בזיכרון מטמון, המידע מאוד זמין. זה דומה למדף
חלקי חילוף בפס ייצור
ובזמן הרכבת מכונית, פשוט שולפים את החלק שצריך.
לא צריך ללכת רחוק וזה חוסך עבודה
כך גם המצב עם זיכרון מטמון
יש שתי שיטות עיקריות שאנחנו ניישם.
בוא נבחן מקרוב את התוכן של
חומר הנלמד בקורס זה
נקרא להם: מקבילוית או עשיית פחות עבודה
דבר ראשון שנדבר עליו -
מקביליות ברמת פקודות
נתבוננן במעבדים סופרסקלריים שמסוגלים לבצע
פקודות מרובות בו זמנית זה נעשה באופן חבוי
ע"י קוד רציף. נלמד גם על
מעבדים מילת פקודה ארוכה מאוד - VLIW
ניגע קצת במקביליות צינור איבוד נתונים ונראה איך לבנות מעבדי
צינור איבוד נתונים ארוכים ביותר. נדבר על זיכרון מתקדם ועל
מערכות זיכרון מטמון. כאן בכותרת לא כתוב על מקביליות
אז כאן זה לגבי עשיית פחות עבודה
כאן נברר איך לבנות מערכות
זיכרון שמקרבות את המידע, או שיש להן פס רחב יותר
נלמד הרבה לגבי יישום של מערכות זיכרון מתקדמות.
ובהמשך נדבר על מקביליות ברמת נתונים
סוג זה של מקביליות גלוי יותר
כמו מחשבי ווקטור ומעבדים גרפיים
שהם מעבדים גרפיים לשימוש כללי GPGPU
בסוף הקורס נדבר על מקביליות תהליכון גלויה.
נדבר על ריבוי תהליכונים
איך לבנות מערכות מרובות מעבדים
מעבדים מרובי ליבות ואיך לקשר
בין קל המעבדים אלה. שליש ראשון של הקורס
נדבר על מקביליות ברמת מבנה.
שליש שני נקדיש לזיכרון מטמון.
וקצת למקביליות ברמת נתונים, במהלך שליש אחרון
נעסוק במקביליות ברמת תהליכונים. אבל זאת חלוקה מאוד לא מדוייקת.