המאה שלנו הביאה לשינוי הגדול ביותר בשטח המיחשוב מאז המחשב האלקטרוני הראשון אשר פותח במהלך שנות ה40 המאוחרות. באותו הזמן, קהיליית מדעני המחשב התמקדה במודל ה- וון ניומן Von Neuman) ) כמודל המרכזי לחישוב. זה היה מבוסס על ארכיטקטורת המעבד הסדרתי (סיקוונציאלי) היחיד הנמצאת ברוב המחשבים של ימנו
.
זכרון |
מאת: גארי סמית, חברת GARY SMITH EDA
רקע
המאה שלנו הביאה לשינוי הגדול ביותר בשטח המיחשוב מאז המחשב האלקטרוני הראשון אשר פותח במהלך שנות ה40 המאוחרות. באותו הזמן, קהיליית מדעני המחשב התמקדה במודל ה- וון ניומן Von Neuman) ) כמודל המרכזי לחישוב. זה היה מבוסס על ארכיטקטורת המעבד הסדרתי (סיקוונציאלי) היחיד הנמצאת ברוב המחשבים של ימנו.
בתחילת המאה הזו, ספקי המיקרו מעבדים המשמשים כיום את המחשבים שלנו נתקלו בבעיית זרם. ככל שהקרבנו לתדרי עיבוד של יותר מגיגה הרץ לא רק שקצבי הזרם עברו את התחום אלא המעבדים עצמם לא עמדו בקצב. היופי שבמודל וואן ניומן היה שהביצועים היו יחסיים (פרופוציונלים) באופן ישיר לתדר ומאז שנות ה-70 המוקדמות סיפקו ספקי המוליכים למחצה מעבדים מהירים יותר כל שנתיים.
מאחר ואיננו יכולים לעשות זאת יותר, ספקי המוליכים למחצה עברו לארכיטקטורת מרובת מעבדים. בעשותם כך הם פתרו את בעיית הביצועים המשופרים אבל זנחו את ארכיטקטורת וון ניומן. עובדה זו מסכנת את כל החברות שהתפרנסו ממודל החישוב של וון ניומן כולל מיקרוסופט, אינטל וכל יצרני המחשבים.
למעשה אין בעיה לבנות את המחשב . יצרני המוליכים למחצה יכולים כיום למקם אלפי מעבדים על מעגל מוכלל. הבעיה היא "האם ניתן לתכנת את זה?". בימי המחשוב העליזים, ג'ין אמדהל גילה שבעיות תקשורת עם אלגוריתמים המכילים קוד סדרתי (סיקוונציאלי) הגבילו את מספר המעבדים שניתן היה להשתמש בהם לבקושי ארבעה. זה נודע בשם חוק אמדהל. כעת יש חברות אשר מצאו התחכמיות המאפשרות להם להשתמש ב-16 מעבדים אבל זה המקסימום שהצלחנו להגיע. כמובן באלגוריתמים שהם באופן בסיסי מקביליים הבעיה הנקראת Embarrassingly Parallel Problems יכולה להשתמש במאות מעבדים אך עד כה לא מצאנו הרבה . Embarrassingly Parallel Problems
מה נדרש
למעשה הכל. תשתית פיתוח התוכנה צריכה לעבור שיפוץ כללי. באומרינו זאת עלינו לדאוג לפיתוח בארבעה איזורים שונים.
1. הראשון הוא ברור; אנחנו חייבים סט חדש של כלים כולל debuggers, profilers, software virtual prototypes, וכדומה. כמה מהכלים הנ"ל מפותחים ע"י חברות יצרני כלי התוכנה וכמה ע"י חברות ה EDA. למעשה זו לא תהיה הפתעה אם שני השווקים הללו יתאחדו.
2. התחום השני הוא שפות תכנות וקומפיילרים. למעשה הרמנו ידיים בתקווה לקומפיילר תוכנה קסום העובד בו זמנית. עכשיו השאלה היא האם אנחנו זורקים את שפת ה C. אל תשכחו שאם נישאר עם C היא תהיה שפה שונה לגמרי משפת הC של היום. אך זה בהחלט אפשרי וזה כבר קרה עם הפורטרן שבגירסה ששוחרה ב1995 נהפכה לאחת משפות התכנות הטובות ביותר הקיימות.
3. הבעיה הבאה היא מה לעשות עם מערכת ההפעלה (OS) ? במיוחד בהרבה מערכות ליבה core system) ) הגיוני להשתמש בקרנל על הליבה עצמה ואז להשתמש במערכת הפעלה מרכזית (master OS ) שתנהל את האירועים scheduling)). בנוסף יש לה משימה חדשה, לטפל בניהול צריכת הזרם. זה נשמע כמו וירטואליזציה, אך כדי שמערכת הוירטאוליזציה תהיה יעילה יש להתשמש בשכבת תוכנה קטנה.יש עוד להשקיע רבות במחקר בתחום זה.
4. זה מביא אותנו לנושא המאמר זכרון בו זמני Concurrent Memory)) .
Concurrent Memory
זיכרון בו זמני הוא זיכרון אשר יכול לטפל בתוכנות מקבילות רבות. זה הרבה יותר מורכב מזה אך כדי לשמור על פשטות לא נכנס לפרטים. חשבנו שיש לנו תשובה עם ה Transactional memory . הבעיה היחידה עם זה היתה חוסר מהירות. בשנה שעברה חוקרים מצאו דרכים לשפר את המהירות . אך לרוע המזל הם מצאו שזה זולל זרם וכך נאלצו לחזור למעבדה.
הבעיה בפניה אנו ניצבים היא אותה בעיה בפניה ניצבות אינטל וAMD בשוק המיקרו מעבדים. הדרישה המרכזית לזיכרון בו זמני תהיה כמו IP אשר מוטמא בתוך ה- SoC ולא כזכרון עצמאי שאתה מתקין על לוח האם במחשב שלך. למעשה התפיסה של רוב החוקרים היא כstacked die כלומר זכרון בו זמני מעל ה SoC אשר מתוכנת בצורה אופטימלית עבור כל SoC .
זה לא מתאים לשוק ההמוני, ולמודל העיסקי למוצרים סטנדרטים בו משתמשים יצרני הזכרונות. בדיוק כפי שלאינטל ול AMD אין מודל עיסקי המתאים למעבדים המוכללים כמו מודל ה IP שARM- משתמשת בו באופן מושלם.זה אומר שליצרני הזיכרון המרכזיים אין אינטרס לפתח את הזיכרון הבו זמני.
זו הסיבה שאנחנו חייבים לנקוט בפעולה. הזיכרון הבו זמני הוא חלק אינטגרלי מהתשובה לחישוב מקבילי. בלעדיי זה הכל ייעצר כולל חוק מור.זוהי בעיה גדולה והיא חייבת להיפתר.
{loadposition content-related} |