מערכות מחשב מבוססות כיום על שני חלקים נפרדים, המעבד והזיכרון [1], המחוברים ביניהם באמצעות חוטי מתכת. בפוסטים קודמים תיארנו את צוואר הבקבוק הנוצר בין המעבד לזיכרון בשל הצורך בהעברת כמויות גדולות של מידע [1], וכן הסברנו כיצד אפשר לנצל את היררכיית הזיכרון על מנת לקרב מעט את הזיכרון למעבד [2]. אולם עקב ההתקדמות המואצת של ביצועי המעבד, פתרון זה כבר אינו מספיק. האם ארכיטקטורת המחשבים הקיימת כבר 80 שנים עדיין מתאימה למחשבים של ימינו? טכנולוגיות חדשות הנחקרות כעת מאפשרות להקנות יכולות חישוב לרכיבי הזיכרון, ובכך לייתר את ההפרדה הפיזית בין המעבד לזיכרון, בדרך אל ארכיטקטורת מחשבים חדשה לגמרי בהשראת המוח האנושי.
רוב המחשבים כיום פועלים על בסיס שתי יחידות עיקריות: יחידת זיכרון ויחידת עיבוד מידע. יחידת הזיכרון אחראית לאחסון המידע, בעוד יחידת העיבוד אחראית לביצוע חישובים על המידע לשם יצירת מידע חדש. מדובר בשתי יחידות נפרדות המיוצרות על גבי שבבים נפרדים ובדרך כלל גם בטכנולוגיות ייצור שונות. כדי להעביר מידע בין היחידות, הזיכרון והמעבד מחוברים ביניהם על ידי חוטי מתכת (הנקראים BUS). ארכיטקטורת מחשבים זו נקראת "ארכיטקטורת פון-נוימן" והיא הנפוצה ביותר כיום. ההתקדמות הטכנולוגית בשנים האחרונות הגדילה את הביצועים של שתי היחידות, כך שכעת צוואר הבקבוק העיקרי המגביל את ביצועי המחשב הוא הזמן שלוקח להעביר את המידע בין שבב המעבד לשבב הזיכרון [1].
בפוסט קודם [2] סקרנו את פתרון היררכיית הזיכרון המאפשר לקרב את הזיכרון למעבד על מנת להגדיל את ביצועי המחשב. פתרונות נוספים שהוצעו [3] ניסו לקרב חלק מעיבוד המידע לזיכרון על ידי הוספה של יחידות עיבוד פשוטות לשבבי הזיכרון (Near Memory Processing) או להשתמש בזיכרון עצמו לביצוע חלק מהחישובים (In-Memory Processing). עם זאת, פתרונות אלו אינם מספקים, שכן עדיין נדרשת העברת מידע אינטנסיבית בין המעבד לזיכרון, אשר יושבים בשבבים נפרדים ולכן קצב ההעברה מוגבל. עולה השאלה – האם ארכיטקטורת המחשבים פון-נוימן שמשרתת אותנו עוד משנות הארבעים של המאה הקודמת עדיין רלוונטית לימינו?
כדי לענות על שאלה זו נשאל תחילה, האם הדרישות שלנו מהמחשב השתנו עם השנים? התשובה היא – מובן שכן. בתחילת דרכו שימש המחשב ככלי עבודה ומחקר שהיה זמין רק לחברות גדולות ולאוניברסיטאות שיכלו להרשות לעצמן לרכוש כזה – וכולם חלקו את השימוש בו. הדרישות מהמחשב היו לבצע חישובים מורכבים וארוכים. כיום כמעט כל מוצר אלקטרוני הנמצא סביבנו מכיל מחשב – הטלפונים החכמים, הטלוויזיות, המכוניות ואפילו משחקי ילדים. הדרישות שלנו מהמחשבים היום מגוונות בהרבה, ודרישה בולטת שרק מתעצמת עם הזמן היא ניתוח של מידע רב (למשל, לעבור על כל התמונות שלכם בנייד ולסמן באיזו תמונה אתם מופיעים). אם בעבר המחשבים שלנו שימשו אותנו כדי לחשב את השורש הריבועי של מספר, היום אנחנו דורשים מהם לזהות פרצופים ולבחור עבורנו את הסדרות שנאהב לצפות בהן. נציין כי בעקבות עליית התחום של בינה מלאכותית ומערכות לומדות נולד הצורך בביצוע חישובים מורכבים (כמו כפל מטריצות - חישוב שדורש פעולות כפל וחיבור רבות), וזה הוליד מעבדים חדשים המתמחים בביצוע חישובים אלו (למשל GPU ששימש בעיקר לגרפיקה ממוחשבת, TPU של גוגל, פקסל וולטה של אנבידיה ועוד).
כדי להתאים את המחשבים לדרישות החדשות נדרש פתרון שישנה לגמרי את מבנה המחשב המוכר. הסתכלו סביב ושאלו את עצמכם – האם אנחנו כבר מכירים מחשב היעיל מאוד בזיהוי פרצופים למשל?
נכון מאוד – המוח האנושי מתפקד כמחשב בעל ביצועים גבוהים מאוד בפעולות של סיווג מידע. אומנם ייתכן שייקח לכם הרבה זמן לחשב שורש ריבועי, אבל משימה כמו להבדיל בין תמונה של כלב לתמונה של דג - מחשב יתקשה לבצע וכל אדם יבצע בקלות.
לכן, מדוע שלא נחקה את מבנה המוח? בדיוק כמו שלמדנו מהציפורים כיצד לבנות מטוסים – כך נוכל ללמוד מהמבנה הפיזי של המוח האנושי כיצד לתכנן ולבנות ארכיטקטורת מחשבים.
למי מאיתנו שעדיין לא התנסו בניתוח מוח – תצטרכו להאמין לנו שבמוח אין הפרדה מוחלטת בין יחידות העיבוד ליחידות המידע. באופן כללי ופשטני, המוח מורכב מנוירונים המתקשרים ביניהם דרך סינפסות. אפשר להמשיל את הנוירונים ליחידות עיבוד פשוטות, ואת הסינפסות – ליחידות זיכרון קטנות (כמובן שזה איננו הזיכרון במובן הביולוגי). יחידות העיבוד והזיכרון במוח אינן מופרדות פיזית, אלא מפוזרות יחד כך שכל נוירון מחובר רק לחלק מהסינפסות ומתקשר רק איתן. כאשר ניישם את האנלוגיה הזאת על מחשבים – אנו מדברים על מחשב שבנוי מהמון רכיבי זיכרון ועיבוד פשוטים מאוד המפולגים באופן אחיד ומחוברים ביניהם בקווים קצרים. לא עוד יחידה אחת שאחראית רק לזיכרון ויחידה נפרדת שאחראית רק לעיבוד – אלא המבנה כולו הוא מבנה מפולג. ארכיטקטורה כזאת המגדירה מחדש את הרכיבים שהמחשב מורכב מהם ואת החיבורים ביניהם, צפויה להיות יעילה מאוד במשימות הדורשות סיווג כמויות מידע גדולות – תחום בעל שימושים רבים מאוד בשנים האחרונות.
זיכרונות ומעבדים הם רכיבים שונים מאוד גם מבחינת תהליך הייצור שלהם, ורוב החברות העוסקות בתחום מתמחות במעבדים או בזיכרונות, אך לא בשניהם. מחקרים מהשנים האחרונות עוסקים בחקר של רכיבים חשמליים חדשניים שיכולים לשנות את התפיסה הזאת מהיסוד. רכיבים אלו מתפקדים בו זמנית גם כתאי זיכרון וגם כרכיבי חישוב, וזה יכול לאפשר את מימוש הארכיטקטורה החדשה על שבב בודד. דוגמאות לרכיבים כאלו הן רכיבים פרו-אלקטריים, אלקטרו-כימיים, (PCM) Phase-Change Memory וממריסטורים, ובפוסט המשך נרחיב עוד על הייחודיות של כל אחד מהם ועל אופן פעולתם.
עריכה: שיר רוזנבלום-מן
למקורות ולקריאה נוספת:
[1] פוסט על בעיית צוואר בקבוק פון-נוימן
[3] פוסט על חישובים ליד הזיכרון ובתוכו