מהי ארכיטקטורת מחשב?
קחו לדוגמא אפליקציה או כל דבר שאנשים עושים באמצעות מחשב
לסכם טבלא, לנגן מוזיקה או סרט. אנחנו רוצים
להבין איך זה מתבצע באופן פיזי
מה זאת אומרת ב"אופן פיזי" ובכן פיזיקה
בעולם שלנו יכולה לבטא תנועת חלקיקים
או תופעות קשורות באור ואנחנו צריכים להמיר את רצונות של אנשים
לתופעות פיזיקליות. הבעיה היא
שיש בין שני הדברים פער ענק. האם ייתכן לעבור ישירות מאפליקציה
לתופעות פיזיקליות. לתנועת חלקיקים
או פעולת מנגנונים מכניים?
ללא הפשטה והתאמה, מאוד קשה לעבור מאפליקציה
ישירות לביצועים ברמה פיזית. ובמובן רחב,
ארכיטקטורת מחשב נועדה לעשות זאת באמצעות הפשטה
ושכבות יישום. יש בהם צורך כדי לגשר על הפער הזה
לכן , אנחנו זקוקים כאן לכל מיני
שכבות כאן ועל ידי חלוקה לשכבות מופשטות
ובאמצעות שכבות נהיה מסוגלים לתת מענה לתת בעיות של בעיה נתונה
ולא נצטרך לשנות הכל במכה אחת
בוא נגיד, שינוים פיזיים או אפליקטיווים קטנים יאפשרו לנו
לעשות שימוש חוזר בעבודה שעשינו לאורך הדרך
מכאן, ארכיטקטורת מחשב היא חקר שכבות האלה ומציאת דרכים
להפיכת תכונות פיזיקליות לביצועי תוכנה שאנשים רוצים להשיג
אני רוצה להדגיש שבעולם שלנו
בכלל לא פשוט לעבור מאפליקציה לתכונות פיזיקליות של דברים
יש מעט דוגמאות כאלה אחת מהן
זה מצפן. מצפן הוא מכשיר קטן ומגניב
שהופך תופעה פיזיקלית ליישום
אבל יש מעט מאוד דוגמאות כאלה. לדעתי אפשר להגיד זה ספר הוא דוגמא נוספת
אבל במקרים אחרים אנשים יוצרים הרבה שכבות מופשטות בין לבין
אני רוצה להצביע על ניסיון שלנו להשתמש
בטכנולוגיות ייצור הכוונה שלי - כשיכולות פיזיקליות
משתנות, או שאנחנו מיישמים טרנזיסטורים קטנים יותר.
או למשל משתמשים בגליום ארסניד במקום סיליון. או כל יישום טכנולוגי
שמשנה שכבה תחתונה, אנחנו עדיין רוצים להשתמש בהמון
דברים שעבדנו עליהם במשך שנים אז בוא נתבוננן בהפשטות
במערכות מחשוב מודרניות. הכל מתחיל מפיזיקה.
ישנם חוקי יסוד פיזיקליים שמתארים תכונות החלקיקים, ומכאן נעבור
לרכיבים. מהם אותם רכיבים?
טרנזיסטורים. אנחנו מסוגלים לייצר הרבה סוגים של טרנזיסטורים:
MOSFET, BJT, פותחו סוגים אחרים של FET פותחו ונבנו
מעגלים, מעגלים יותר ויותר גדולים ומאלה פותחו שערים לוגיים
משערים לוגיים אפשר להתקדם ל- RTL שפת מעבר אוגרים, שהיא
סוג של תכנות VERILOG ואז נוכל לגעת בנושאים של הקורס
שהם - סוגים שונים של ארכיטקטורה
שי כאן את מיקרו ארכיטקטורה, שמגדירה איך לפתח
יישום מסוים של המעבד. ומעל זה נמצאת
ארכיטקטורת סדרת פקודות שמאפשרת ניידות מעל זה
מכאן עוברים למערכות הפעלה ומכונות וירטואליות, שפות תכנות
ואלגוריתמים. ומעל כל אלה
נמצא מתכנת אפליקציה. בקורס הזה
אנחנו נתמקד בשלוש כשבות האמצעיות
ארכיטקטורת סדרת פקודות , או כמו שאני קורא לזה לפעמים, ארכיטקטורה
של A הגדולה. מיקרו ארכיטקטורה או בשמה השני
ארגון מערכות מחשב
כמו כן שפת מעבר אוגרים. אנחנו ניגע קצת במה שקשור
לשכבות הפשטה סמוכות לשלושת השכבות שנלמד
נדבר מעט על סוגיות מערכת הפעלה וסוגיות של
מכונה וירטואלית. נדבר קצת על השפעת
טרנזיסטורים , שערים לוגיים וטכנולוגיה על מערכות מחשב
חשוב להבין שארכיטקטורת מחשב כל הזמן משתנה
בגלל מגבלות שונות ושינוים שחלים באפליקציות
אנשים מוצאים דרכים חדשות
או ממצאים יישומים חדשים
כולם רוצים היום טלפון חכם לפני עשרים שנה דברים כאלה לא היו קיימים
מרצונות אלה נוצרות דרישות שונות.
ודרישות אלה מכתיבות שינוים בארכיטקטורה
למשל, אם אתם זקוקים ליכולות גבוהות בעיבוד וידאו. וזה בהחלט
משפיע על ארכיטקטורת מחשב אז אתם מוסיפים הוראות מסוימות
לטובת יכולת עיבוד וידאו. מצד שני מופיעות מגבלות טכנולוגיות
טרנזיסטורים הופכים לקטנים יותר
וזה מאיץ את פעולה שלהם אבל חיבורים מאיטים את הפעולה, וזה
משפיע על ארכיטקטורת מחשב בהרבה מקרים, טכנולוגיות חדשות
מאפשרות התפתחות ארכיטקטורה חדשה. אז מה אני רוצה לאמר בזה?
נניח שיש לכם טרנזיסטורים עם חיבורים גדולים. וכמות טרנזיסטורים כפולה
ממה שהייתה קודם. במקרה כזה, ארכיטקטורה ומיקרו
ארכיטקטורה, שהיה בלתי אפשרי ליישם, הופכת לאפשרית. כיוון
שנגיד, זה מאפשר לבצע יותר פעולות חישוב עם המעבד.
מה שמעניין כאן, שבארכיטקטורת מחשב לא קיים "יש מאין"
ולמעשה, ארכיטקטורת מחשב
מספקת משוב כלפי שכבות מעליה ומתחתיה
ובכן, מתקבל משוב. וכך זה ישפיע על כיווני מחקר
לפתרונות טכנולוגיים. וישפיע על
פיתוח אפליקציות חדישות
כמוש אמרנו, אין יש מאין ומי שעוסק בארכיטקטורת מחשב,
נמצא בעמדת מפתח של כל שכבות מופשטות כייון שהוא משפיע כלפי מעלה וכלפי מטה
ועבודתו אינה מוגבלת על ידי מצב הנתון בהיבט הטכנולוגי
אך שינויים מסוג זה יכולים לקחת שנים
אז בוא נדבר על יותר מה שנלמד בקורס מכיוון
הסטוריה. ונראה מה תרומה של פרינסטון
לכך. נדבר על מחשבים שהיו בשנות ה-40 מאוחרות
ושנות ה-50 מוקדמות. 1940-1950 כאן אתם רואים תמונה
של IAS, מכונת לימודים מתקדמים של המכון, שנבנתה במכון
ללימודים מתקדמים, שנמצא במרחק של שני ק"מ בערך מכאן
המכונה פותחה על ידי ג'ון וון גוימן
היא הועברה לפרינסטון ב- 1952
למעשה עבודות החלו בשנות ה-40 מואחרות ולקח מספר שנים
כדי להביא אותה למצב עבודה. אחד הדברים המעיינינים הוא
שמכונה זאת מופעלת על ידי שפרפרות וואקום
היום כולם מכירים את הטרנזיסטורים
אבל לפני הטרנזיסטורים עבדו עם שפרפרות זכוכית קטנות
שדמו למנורות, ובתוכן היו מתגים שאפשר היה להפעיל
במצבים שונים. זה מאוד דומה
לפעולת הטרנזיסטור. רק שכאן מדובר בשפרפרות זכוכית ללא אוויר, עם
משדר קטן, זוהי שפופרת קרן קתודית. והי שער לוגי
בתוכה. כך אנשים יצרו מחשבים הרבה לפני
קיום טרנזיסטורים. ואנשים חשבו על ארכיטקטורת מחשב הרבה
לפני שטרנזיסטורים היו קיימים. ואנשים אפילו חשבו על
ארכיטקטורת מחשב וטכנולוגיות דומות לפני קיום שפופרת וואקום.
היו קיימות מערכות אלקטרומכניות דוגמא טובה למערכת כזאת
מערכות שהוי פעם בשימוש מכשירי טלפון. היו בהם מתגים אלקטרומכניים
כשהייתם מחייגים בטלפון חוגה
הייתם מסובבים את המנגנון ושומעים: "טיק, טיק, טיק, טיק, טיק, טיק, טיק, טיק"
בזמן הזה המנגנון
היה שולח פעימות שהיו מניעים זרוע מכנית קטנה
של מערכת ממסר. אנשים בנו מחשבים מממסרים אלקטרומכניים
כך שיש לכם התקנים שמניעים ומשנים מצבם של מתגים
בדומה לעקרון פעולה של טרנזיסטור
ואפילו לפני כן אנשים בנו מערכות מכניות כאלה.
מכונת סיכום מכנית , לדוגמא
היום , כמובן, אנחנו משתמשים בטרנזיסטורים
אז ככה נראה מחשב בשנות החימשים. היום
מחשבים נראים לגמרי שונה. בתמונה כאן, המחשב
היה בגודל של חדר
וביחס לזה היה הגובה של אדם הממוצע
היום, יש לנו סוגי רבים
של מכשירים ואפליקציות מחשוב נראה אחרת לגמרי
יש מערכות מחשוב במערכות קטנות
ישנן רשת חיישנים קטנה - רשתות עם חיישנים
מפוזרים. ישנן מצלמות מיוחדות
יש לנו טלפונים חכמים אי פודים ונגני שמע.
יש לנו מחשבים ניידים. ישנן מכוניות עם מערכת נהיגה אוטומטית
יש שרתים גדולים, וכל מיני סוגים של מערכות מחשוב
השפעה של טכנולוגיה הזאת
ארכיתקטורת מחשב, הייתה מאוד רחבת היקף
הפשר להמשיך ולהזכיר נתבים כתב"מים
ג'י פי אס, שזה למעשה מחשב בקנה מידה קטן
שאפשר לשים כמו שעון ולהראות מיקום מדויק
טבלטים, ספרים מקוונים ועוד רשימה ארוכה של מכשירים
עם כל אלה אני רוצה להראות שלארכיטקטורת מחשב
היסטוריה ארוכה מאוד היא נמשכת ומשתנה
גם היום. אנחנו לא לומדים משהו
שאף אחד לא מתעניין בו. בכל רגע נתון אנשים מצפים
לדור הבא של ארכיטקטורת מחשב
אנשים, כמו שאתם בטח יודעים, רוצים מחשבים מהירים יותר.
היום זה אולי פחות חשוב, כי כולם רוצים טלפון
חכם מהיר יותר. אנשים רוצים זיהוי קולי
זמין בכל עת. רוצים יישומים מדעים
יאפשרו להם ליצור מודלים מסובכים
כל הדברים שלא היו קיימים לפני זמן מה. והפיתוח לא נעצר לרגע.
זה נכון מאוד להיום. ויש לכך היסטוריה ארוכה.
בקורס נדבר מעט על פן היסטורי ונתמקד בעיקר
בפן הטכנולוגי. לעתים מלמדים קורס ארכיטקטורת
מחשב תוך הדגשת היסטורית התפתחות של מחשבים
בקורס זה נדון בעיקר בטכנולוגיה ונתייחס מעט להיסטוריה
כאן מוצג תרשים מהספר של הנסי פטרסון
ובו רואים דבר שהוא
מאוד בסיסי בארכיטקטורת מחשב
הכח המניע של תעשיית מחשוב כאן רואים
גרף המבטא פיתוח מעבדים שונים. המספרים בציר לוגריטמי הם 10, 100, 1000
הגרף מראה גידול בביצועים במשך שנים. אז אם אתם מסתכלים על הגרף
זה נראה פחות או יותר כקו ישר,
כאשר ציר אנכי מראה גידול אקספננציאלי בביצועים
רואים כי מהירות ביצעים מחשוב גדלים אקספוננציאלית
זה העיקרון בהתפתחות תעשיית המחשוב
וזאת הסיבה לחשיבות של ארכיטקטורת מחשב
אני רוצה לומר שגידול אקספוננציאלי נובע משני
דברים. לא הכל נמצא בידי ארכיטקטורת מחשב. הייתי רוצה
לקחת לעצמנו את כל הקרדיט. אבל חלק גדול
מהגידול נובע משיפורים טכנולוגיים
אני מתכוון לשכבות שמתחת לארכיטקטורת מחשב - טכנולוגיה יישומית
כגון טכנולוגיית טרנזיסטורים. וחלק נובע משיפורים
בארכיטקטורת מחשב. ומה שבאמת חשוב לציין
הטרזיסטורים משתפרים פלאים
לפי הגרף, מה שקורה בדרך כלל זה
ריבוי טרנזיסטורים, אבל לא בהכרח מהירות הטרנזיסטורים
גדלה אקספוננציאלית. לכן, מהנדסי ארכיטקטורת מחשב חייבים
להשתמש כמויות אדירות של טרנזיסטורים ולהמיר
כמות לאיכות בביצועים. ברב המקרים אנחנו
קוראים "חוק מור" החוק אומר
שבכל שנה וחצי - שנתיים
כמות הטרנזיסטורים שאתם יכולים לרכוש באותו סכום
גדלה פי שתיים. זה חוק של גורדון מור במקור
לחוק ניתנה פרשנות קצת שונה - בכל שנה מהירות ביצועי מחשב
עולה פי שניים. וזה לא מה שנאמר מלכתחילה
מור אמר שכמות כפולה של
טרנזיסטורים תעלה אותו סכום
לפעמים גם מפרשים את החוק כגידול מספר הטרנזיסטורים
במעבד, פי שניים בכל שנה. גם זה שונה מאמירה מקורית
אבל קרוב מספיק. וכך אני לא ממש זקוק לגרף
הזה. אבל אם נסתכל בגדול על מחשוב
הכל מבוסס על טכנולוגיית טרנזיסטור
אלב אם נחזור הרבה שנים אחורה נראה כי היו טכנולוגיות שונות
כמו שפופרות וואקום וטכנולוגיה מבוססת על ממסרים
וזה די מתיישב עם מה שרואים בגרף
כאן בהתחלה יש נתונים על שפופרות מחשב
וכאן יש עליה מתונה ביחס לגידול אקספוננציאלי
על הגרף ישנן שתי נקודות פיתול בוא נבחן אותן
הראשונה כאן , במקום שהשיפוע
משתנה מעט. אז מה קרה בנקודה הזאת?
היא מסמנת כניסת מחשבים עם סדרת פקודות מצומצמת, שנקראים גם מחשבי RISK
לכן יש שינוי מגמה
בזמן שהמחשבים אלה הופיעו
דבר נוסף שאתם רואים, יש כאן מפנה קטן
אנחנו נדבר על זה בהרחבה במהלך הקורס על הסיבות לכך ומה
זה מביע בעצם. אז מה קרה כאן?
ובכן, ביצוע רציף, זה ביצוע של תוכנה בודדת
האיץ אקספוננציאלית. אבל אז, תלוי את מי שואלים
אני אישית אומר שזה קרה ב-2005
על כל פנים בין 2003 לבין 2007 ביצוע רציף של מעבד
יצר בעיה. אבל סך ביצועים של מעבדים
משתפרים בעקביות גם היום. זה יתאפשר הודות למעבר
למעבדים מרובי ליבה
אנחנו מאוד מקווים שהגרף ימשיך לטפס למעלה עם מעבדים
מרובי ליבה, אם נבין איך לשתק תוכנות שלנו
למרות דעיכה בביצועים של ביצוע רציף
כי ארכיטקטורת מחשב ותעשיית מחשבים יספגו נזק רב
אם פתאום מהירות מחשבים לא תשתפר, כי אז אף אחד
לא יקנה מעבדים חדשים