בקטנה: אחד הסיפורים המדהימים בהייטק הישראלי הוא סיפורו של המעבד "תמנע" שתוכנן באינטל בחיפה. בשלב מסוים הוא בוטל ועמד להיזרק לפח האשפה; אבל אז, בתפנית מפתיעה, הפך להיות הבסיס למעבדים המרכזיים של אינטל. דדי פרלמוטר, המנהל שהוביל את השינוי, מתאר את התהליך בספרו "מוליכים להצלחה". אספנו כמה טיפים טכנולוגיים שאפשר ללמוד מהסיפור.
פעולת המעבד במחשב מזכירה את שיטת הסרט הנע במפעל ייצור. במפעל כל פועל הוא חוליה בשרשרת. בכל פרק זמן, נניח שנייה, מקבל הפועל מוצר חלקי מהפועל שלפניו, מוסיף משהו (למשל מבריג בורג או צובע) ומעביר אותו לפועל הבא בשרשרת. מנהל המשמרת מתזמן את הסרט הנע ושורק בכל שנייה כדי לסמן לפועלים לסיים את מלאכתם ולהעביר אותה הלאה. אפשר לומר שהמפעל עובד בקצב קבוע שנקרא תדר שעון (מספר השריקות לשנייה), ואם הכול כשורה, בכל שנייה יוצא מהמפעל מוצר אחד. תהליך דומה מתרחש במעבד במחשב: כל מעבד מורכב ממעגלים חשמליים רבים (שהם הפועלים) המורכבים מטרנזיסטורים. ביצוע פקודה משול כאן להוצאת מוצר, ונעשה בשיטת הסרט הנע, כך שכל מעגל מקבל את המידע מהמעגל הקודם, ולאחר פרק זמן קבוע מעביר את תוצאות החישוב למעגל הבא.
כשהמנהל מבקש להגדיל את הביצועים של המפעל, הוא יכול לעשות זאת על ידי הגדלת התדר, כלומר לשרוק בקצב גבוה יותר. לשם כך הוא צריך להעסיק פועלים בריונים שיעמדו בקצב המהיר, ולהוסיף שלבים לסרט הנע. אולם גם אז השיפור בביצועים מוגבל: לעיתים הצינור נתקע בהשהייה, למשל כשפועל ניגש למחסן להביא חומרים, ובאנלוגיה למעבד, כשיש צורך לגשת לזיכרון המחשב.
בשנות ה-90 שמה חברת אינטל את יהבה על תכנון פנטיום-4, מעבד שתוכנן לעבוד בתדר גבוה. אבל למרות הגדלת התדר, ביצועיו לא השתפרו כמצופה. לעומת זאת, שטח הסיליקון גדל עקב שימוש בטרנזיסטורים גדולים ומהירים יותר (פועלים בריונים), מחיר הייצור הרקיע שחקים, והמתחרים נשפו בעורפה של החברה עם מוצרים זולים ויעילים יותר.
עבדתי אז בצוות הישראלי בראשות המנהל דדי פרלמוטר, והתבקשנו למצוא דרך להוריד את עלויות המעבד. מצאנו פתרון יצירתי: במקום להשתמש במעבד שתוכנן לתדר גבוה, השתמשנו במעבד ישן ותכננו את המעגלים כך שיתמכו בתדר מקסימלי הנמוך ב-10% מקודמו. ההקטנה אפשרה שימוש בטרנזיסטורים קטנים וצפופים, ולשמחתנו התברר שהחיסכון בשטח היה גדול בהרבה מ-10%. לבסוף, נבנה מעבד רזה וחסכוני בשם "תמנע" שגודלו כמחצית מגודלו של פנטיום-4.
לקראת סיום התכנון התגלתה בעיה חמורה: חיבור הרכיב לזיכרון חיצוני חדיש לא צלח, וב-29 בספטמבר 2000, אחרי שלוש שנות עבודה של כ-300 אנשים בחיפה, נאלצה אינטל לבטל את הפרויקט! העובדים היו בהלם: המכרה של תמנע ננטש, ומה יהיה על הכורים?
אבל דווקא משבר יכול לפתוח הזדמנויות חדשות. דדי פרלמוטר עודד את הצוות למצוא כיוונים חדשים. אחד הרעיונות שעלו היה להשתמש בתכנון לבניית מעבד ייעודי למחשבים ניידים, שהם מוגבלים מאוד ביכולת הקירור שלהם; במחשבים ניידים אסור שההספק יעלה על סף מסוים, הפרופורציונלי לתדר הפעולה בחזקה שלישית, ולשטח הסיליקון. כך, בפנטיום-4 שהיה בעל שטח גדול מאוד, נדרש להקטין את התדר והתקבלו ביצועים נמוכים. לעומת זאת, מעבד בעל שטח קטן פי 2, אִפשר להגדיל את התדר ב-26%. באנלוגיה למפעל שלנו, כשהמזגן במפעל מוגבל, דווקא פועלים צנומים במפעל קטן יכולים לעבוד מהר ויעיל יותר מפועלים בריונים במפעל גדול.
המעבד הראשון שהיה מבוסס על תמנע, "בניאס", יצא ב-2003, שולב בפלטפורמת"סנטרינו" ווזכה להצלחה גדולה בשוק. השלב הבא היה שילוב שני מעבדים (שנקראים ליבות) באותה פיסת סיליקון עבור מחשבים ניידים [1]. הרעיון נשמע מופרך בהתחלה, שכן באותה תקופה שימוש במספר מעבדים היה בעיקר נחלתם של מחשבים גדולים כמו בשרתים. אולם בבדיקת פיזור החום על גבי פיסת סיליקון מצאנו שעם שתי ליבות אפשר לפעול בתדר מקסימלי הנמוך רק מעט מתדר של מעבד בודד, וכך אפשר לקבל קפיצה ענקית בביצועים.
גם כיום, בעולם שבו שימוש בליבות מרובות מסוגים שונים הפך כבר לנחלת הכלל, עדיין נשאלת השאלה - כמה ליבות אפשר לנצל כדי להריץ אפליקציות מעניינות? באינטל השתמשנו בהתחלה בהערכות שמרניות בהתבסס על ניתוח תוכנות קיימות תוך שימוש בחוק אמדל [2] (ראו דוגמה באתר), אולם בהמשך מצאנו שעל ידי פיתוח אפליקציות ייעודיות ניתן לעיתים לנצל ביעילות גם מספר גדול של ליבות. שילוב ליבות קטנות ויעילות שתוכננו למובייל על פיסת סיליקון נמצא מוצלח גם עבור מחשבים נייחים ומחשבי שרתים, ואינטל החליטה, בדחיפה של דדי פרלמוטר, לאמץ את התכנון החיפאי כבסיס לכל מעבדי החברה.
לסיכום, סוד ההצלחה של מכרה הדולרים "תמנע" היה ניהול טוב, זיהוי וניצול הזדמנויות וגם צוות מצוין של מהנדסים בעלי חזון ורעיונות טכנולוגיים, שידעו להוציא אותם לפועל.
בתמונה: דוגמה לשימוש בחוק אמדל להערכת מספר ליבות
עריכה: שיר רוזנבלום-מן
מקורות וקריאה נוספת:
[1] פוסט שלנו על ליבה כפולה
/
[2] חוק אמדל https://en.wikipedia.org/wiki/Amdahl%27s_law