electrical-engineering-principles
עיצוב מעבירים מרובים: עקרונות, חישובים ומדוגמאות בעולם האמיתי
Table of Contents
מעבדי Multi-core הפכו לאבן הפינה של מחשוב מודרני, מה שמחייב את כל מה שסמארטפונים ומחשבים ניידים לשרתים בעלי ביצועים גבוהים ומחשבים על-ידי 2024, המיקרו-מעבדים המשמשים כמעט בכל המחשבים האישיים החדשים הם רב-coreים.הבנת העקרונות, החישובים, והיישום בעולם האמיתי של עיצוב מעבדים רב-core הוא חיוני לכל מי שעובד בארכיטקטורה ממוחשבת, פיתוח תוכנה או מערכת מקיפה זו, חוקרת את המסגרות המתמטיות, עיצוביות, פתרונות מתמטיים, ויישומים מעשיים, עיצוביים, עיצוביים, עיצוביים.
האבולוציה והנסליות של אדריכלות רב-core
סינגלים מ-one-Core to Multi-core: A Paradigm Shift
השנים הראשונות של שנות ה-2000 הובילו לנקודת השתקפות באדריכלות ממוחשבת: בעוד שמספר הטרנזיסטורים הזמינים על שבב המשיך לגדול, תכונות transistor מכריעות של דרוג החלו להתפרק וכתוצאה מכך צריכת חשמל מוגברת, בעוד אופטימיזציה של ביצועים חד-core אגרסיביים חד-coreים היו תוצאה ירידה של החזרות עקב מגבלות טפיליות ברמת ההוראה.
עבור מעבדים למטרות כלליות, הרבה מוטיבציה עבור מעבדים רב-core מגיע מהישגים מופחתים מאוד בביצועים מעבדים מהגדלת תדירות ההפעלה.זה נובע משלושה גורמים עיקריים: קיר הזיכרון; הפער הגובר בין מעבד למהירויות זיכרון.זה, למעשה, דוחף את גודלי ה-Cache להיות גדול יותר כדי להסוות את החוזק של הזיכרון.
אימוץ שוק ומגמות בתעשייה
בשוק הצרכני, מעבדי דואל-core (כלומר, מיקרו-מעבדים עם שתי יחידות) החלו להיות נפוצים במחשבים אישיים בסוף שנות ה -2000. בתחילת 2010, מעבדי קוואד-core גם אומץ בעידן זה עבור מערכות מתקדמות יותר לפני שהפך לסטנדרט עד אמצע 2010.בשלהי 2010s.com-core (scores) החל להיכנס למילינסטרים וכיוון שבתחילת 2020 יש צורך בהתקדמות מתמדת של תעשיות אלה.
מעבדי Multicore, המשלבים יחידות עיבוד מרובות על שבב אחד, הפכו לפתרון חשוב יותר לענות על צרכי מחשוב עולים.המעבר לאדריכלות רב-core מייצג לא רק שיפור מצטבר אלא גם חשיבה יסודית של האופן שבו בעיות חישוביות מתקרבות ונפתות.
עקרונות יסוד של עיצוב Multi-core
המונחים: the Core Concept
העיקרון הבסיסי של עיצוב מעבד רב-core הוא מקבילה - היכולת לבצע משימות מרובות או הוראות בו זמנית.אדריכלות רב-core לנצל מקבילות ברמת חוט, המאפשר ביצוע בו-זמנית של משימות מרובות. גישה זו מאפשרת מערכות להשיג ביצועים כלליים יותר מבלי לדרוש את תדרי השעון הקיצוניים שאפיינו את עידן הליבה הבודד.
מעבדי Multicore משלבים ליבות מעבד מרובות על שבב יחיד, המאפשר ביצוע מקביל של משימות וחוטים כדי להשיג ביצועים גבוהים יותר. אדריכלות רב-core מציעים ביצועים משופרים עבור וואט על ידי חלוקת עומס העבודה על פני ליבות מרובות, צמצום הצורך בתדרים עת גבוהים צינורות מורכבים. תדרי שעון נמוכים יותר ועיצובים הליבה פשוט לגרום לירידה צריכת החשמל עבור הליבה.
אדריכלות הומוגנית לעומת Heterogeneeous Architectures
מערכות מרובות-core הומוגניות כוללות רק ליבות זהות; מערכות רב-core heterogeneous יש ליבות שאינן זהות (למשל גדול.LITTLE יש ליבות heterogeneous לחלוק את אותה מערכת הוראה, בעוד ש- AMD Accelerated יחידות עיבוד יש ליבות שאינן חולקות את אותה מערכת הוראה).
מעבדי Multicore הומוגניים מורכבים ליבה זהה, מפשטים עיצוב ועומס אבל אולי לא להיות אופטימלי עבור עומסי עבודה מגוונים. ליבות Identical להקל על תזמון משימות וחלוקת עומס.אדריכלות הומוגנית מתאימים למחשוב כללי ועומס עבודה עם דרישות משאבים אחידות. heterogeneous משלב סוגים שונים של ליבות, כל אחד מותאם למשימות ספציפיות, המציע יעילות טובה יותר ומורכבות.
ארכיטקטורות heterogeneous, המשלב סוגים שונים של ליבות אופטימיזציה עבור משימות ספציפיות, צברו מצעים כדרך לאזן את הכוח ואת הביצועים.פילוסופיה עיצוב זו מזהה כי לא כל משימות חישוביות דורשות את אותם משאבים, ליבות מיוחדות יכול להתמודד עם עומסי עבודה ספציפיים יותר ביעילות מאשר ליבות מטרות כלליות.
סקלאלה ו-Alcon
מעבדי Multicore מספקים יכולת מדרג טובה יותר בהשוואה למעבדים בודדים, שכן מספר ליבות ניתן להגדיל כדי להתמודד עם דרישות חישוביות גדלות.הוספת ליבות נוספות מאפשר ביצועים מוגברים ללא צורך שינויים משמעותיים בארכיטקטורה המעבד.
תכנון מעבדים רב-core כרוך בעסקאות קריטיות של הקצאת משאבים, הומוגניות הליבה, קוהרנטיות של שפם, וטופולוגיה בין-קישורית.החלטות אלה משפיעות על ביצועי כוח, יעילות ויעילות התוכנית.אדריכלים חייבים לאזן בזהירות את הדרישות המתחרותיות הללו כדי ליצור מעבדים שעומדים ביעדים ספציפיים תוך השאר בתוך כוח ותקציב תרמי.
קשר להתנצלות
רשת משותפת להתנצלות המשמשות ליבות חיבור כוללות אוטובוסים, טבעת, מרש דו-ממדי, וקרוסבר.הבחירה של טופולוגיה הדדית משפיעה באופן משמעותי על שקיפות תקשורת, רוחב פס והיקף.קשרים המבוססים על אוטובוסים הם פשוטים אך יכולים להפוך צווארי בקבוק ככל ספירת הליבה.טבעת topogies מציעים יכולת מדרג טובה יותר, אך עשויה להציג עצלות גבוהה יותר עבור ליבות כי הם הרבה מעבר.
אתגרים עיצוב קריטיים במערכות Multi-core
Cache Coherence and Memory Consistency
אחד האתגרים המשמעותיים ביותר בעיצוב מעבד רב-core הוא שמירה על קוהרנטיות של שפם - המבטיח כי לכל ליבות יש נוף עקבי של זיכרון כאשר מספר ליבות מטמון את אותם הנתונים.פרוטוקולים קוהרנטיות של Cache (כגון MESI: Modified, בלעדית, משותפת, לא חוקי) משמשים כדי לשמור על קוהרנטיות, אבל פרוטוקולים אלה הופכים מורכבים יותר ויותר כמו מספר ליבות.
בנוסף, הבטחת עקביות זיכרון - שפעולות זיכרון מופיעות בסדר צפוי - חיוני לתיקון תוכנה, במיוחד בסביבות תכנות במקביל.ללא מנגנוני קוהרנטיות נאותה, ליבות שונות עשויות לראות ערכים שונים עבור אותו מיקום זיכרון, המוביל לתכנת תוכנה לא נכונה שגיאות ביצוע וטעויות קשות לדה-bug.
מנגנוני קוהרנטיות של Cache, כגון פרוטוקולים מבוססי נינוח או דירקטוריונים, להבטיח עקביות נתונים על פני לוחות פרטיים משותפים במעבדים רב-coreים.פרוטוקולים מעקב אחר תנועת האוטובוס כדי לעקוב אחר אילו ליבות יש עותקים של קווי מטמון, בעוד פרוטוקולים המבוססים על הבמאי לשמור על מנהל מרכזי או מבוזר כי מעקב אחר מעמד קווי cache. לכל גישה יש תכונות שונות ומגבלות יכולת.
ניהול חשמל ו-Thermal Management
בעוד שטכנולוגיית הייצור משתפרת, צמצום גודלם של שערי הפרט, הגבולות הפיזיים של מיקרואלקטרוניקה מבוססי מוליכים למחצה הפכו לדאגה עיצובית מרכזית.מגבלות פיזיות אלה עלולות לגרום לניתוק חום משמעותי ובעיות סינכרון נתונים.כפי שמקרינים צניפות, צפיפות הכוח גם מגבירה, יצירת נקודות חמות תרמיות שיכולות לפגוע בביצועים ואמינות.
במאמר זה אנו מציגים בדיקה מעמיקה של עקרונות עיצוב ארכיטקטורת רב-core ביחס לחיבורים, קוהרנטיות של כאב, ניהול זיכרון ובעיות צריכת חשמל, כמו גם אתגרים ומורכבות של בעיות תכנות מקבילות כמו מכשולים גדולים העומדים בפני עיצובים רב-core מודרני כיום, מעבדים רב-coreים משתמשים בטכניקות ניהול חשמל מתוחכמות, כולל מתח דינמי ותדירות (DVS), כוח מתפתל, ושעון תרמי לניהול חשמל וצריכת חשמל וניהול חשמל.
אתגר תכנות במקביל
ההשוואה של התוכנה היא נושא מתמשך משמעותי של מחקר.בעוד חומרה רב-core מספקת את הפוטנציאל לביצוע במקביל, מימוש הפוטנציאל הזה דורש תוכנה שיכולה לנצל ביעילות מספר ליבות.זה מייצג את אחד האתגרים המשמעותיים ביותר בעידן הרב-core - הצורך לחשוב מחדש על פיתוח תוכנה לאמץ מקבילות.
מודלים תכנות מסורתיים חייב להיות מותאם או להחליף פרדיגמות תכנות מקבילים שיכולים לבטא concurrency, לנהל סינכרוניזציה, ולהימנע תנאי גזע.מודלים תכנות כגון OpenMP, MPI, ומסגרות מודרניות כמו המודל השחקן לספק מופשטים לתכנות מקבילה, אבל מפתחים עדיין לתכנן בקפידה את האלגוריתמים שלהם כדי למנוע צווארי בקבוק ולהבטיח סינכרוניזציה נכונה.
יסודות מתמטיים: חוק וגישורי ביצועים
הבנת חוק אמדאל
באדריכלות המחשב, החוק של אמהל (או הטיעון של אמהל) הוא נוסחה המגבלה את מהירות המשימה כמשאבים מתווספים למערכת המבצעת את המשימה הזו.שיפור הביצועים הכולל שנרכש על ידי אופטימיזציה של חלק אחד של מערכת מוגבל על ידי השבריר של הזמן כי החלק המשופר משמש למעשה.עקרון בסיסי זה, בשם מדען המחשב ג'ין אמנהל, והובא בפדרציה לעיבוד מידע אמריקאי של חברות מחשב (AFS) ב-1967.
חוק אמהל משמש לעתים קרובות מחשוב במקביל כדי לחזות את המהירות התיאורטית בעת שימוש במעבדים מרובים.החוק מספק מסגרת מתמטית להבנת גבולות ההקבלה ומסייע למעצבים לקבל החלטות מושכלות על הקצאת משאבים.
חוק אמדאל פורמולה
החוק הוא נפוץ כמו איפה (p) הוא השבריר של זמן ההוצאה שניתן להשוות ו (n) הוא מספר המעבדים או ליבות המשמשות לביצוע מקביל.השבר הסידורי (1- p), מייצג את החלק של התוכנית שיש לבצע באופן שווה.
הנוסחה הבסיסית של חוק אמדההל היא S=1 / (1 - p + p / p /s), שבו נוסחה זו קובעת כי השיפור המקסימלי במהירות של תהליך מוגבל על ידי שיעור התוכנית שניתן לבצע במקביל. נוסחה אלגנטית זו לוכדת אמת עמוקה על מחשוב מקביל: לא משנה כמה מעבדים אתה מוסיף, החלק הניע של התוכנית קובע רמה גבוהה על המהירות האפשרית.
השלכות מעשיות ודוגמאות
לדוגמה, אם 90% מהתוכנית ניתן למקבילה (p=0) והוצא להורג ב 1024 ליבות (n= 1024), המהירות מדגימה את הגבול העליון שהוטל על ידי השבר הסידורי.אם רק 1% מהתוכנית היא סדרתית ((p= 0.99)), המהירות המקסימלית עם מעבדים אינסופיים היא 100× דוגמאות אלה מוכיחות את החשיבות הקריטית של צמצום השבריר המילולי של תוכניות.
נניח שתוכנית מוציאה 20% (P=0) מהזמן שלה בעבודה במקביל, ואנו משתמשים בחמישה מעבדים (N=5): המערכת משתפרת רק ב-19%, מה שמוכיח כי החלק השוויוני של 80% הוא צוואר הבקבוק.דוגמה זו ממחישה מדוע פשוט הוספת ליבות נוספות אינה מתורגמת באופן אוטומטי לשיפורים פרופורציונליים.
במילים אחרות, לא משנה כמה מעבדים יש לך או כמה מהר יותר כל מעבד יכול להיות; השיפור המקסימלי במהירות יהיה תמיד מוגבל על ידי צוואר הבקבוק המשמעותי ביותר במערכת.מגבלה בסיסית זו מניעה את הצורך בעיצוב אלגוריתם קפדני אופטימיזציה של חלקים סידוריים של קוד.
חוק גוסטפטון: פרספקטיבה חלופית
גוסטפטון (1988) צפה כי מדענים ומתכנתים נוטים לדרג את שאיפות המחקר שלהם ואת התוכניות כדי להתאים את כוח מחשוב זמין. במקום לבצע את אותם ניתוחים בפחות זמן, חוקרים שקיבלו גישה ליבות נוספות נטו לעשות יותר חישוב באותה עת. במילים אחרות, (F p) נוטה בקנה מידה עם (N) בעוד חוק אמדההל היה נגזר הנחה של גודל קבוע, טען כי הוא מבוסס על מהירות קבועה של זמן נתון על ידי חישובית על ידי חישוב יעיל יותר.
החוק של אמהל מניח את גודל הבעיה נקבע בפועל, שכן יותר משאבים זמינים, מתכנתים לפתור בעיות מורכבות יותר לנצל באופן מלא את השיפורים בכוח מחשוב.אז, במציאות, הזמן שבילה בחלק המשימה שיכולה ליהנות ממחשב מקביל לעתים קרובות גדל הרבה יותר מהר מאשר הזמן בילה בחלק הנימוק.זה מספק מבט אופטימי יותר של פוטנציאל מחשוב מקביל כאשר הבעיה יכולה להיות זמינה עם משאבים.
ביצועים והערכה
מהירות ויעילות
Speedup הוא המדד העיקרי המשמש להערכת השיפור בביצועים שהושגו על ידי ביצוע מקביל.זה מוגדר כיחס של זמן ביצוע על מעבד יחיד כדי לבצע זמן על מעבדים מרובים.מהירות אידיאלית של N על מעבדי N מעידה על דרוג מושלם, שבו כל מעבד נוסף תורם באופן יחסי לשיפור ביצועים.
יעילות היא מדד קריטי נוסף, מחושב כמהירות מחולקת על ידי מספר המעבדים.זה מייצג את האופן שבו המערכת המקבילה משתמשת ביעילות במשאבים הזמינים.יעילות של 1.0 (או 100%) מעידה על ניצול מושלם, בעוד ערכים נמוכים מציעים כי כמה מעבדים הם בטלים או כי תקשורת מעל פני ראש היא צמצום היעילות.
המונחים: Latency Considerations
מעבדי Multi-core יכולים לשפר את שני ה-EP (מספר המשימות שהושלמו לזמן ליחידה) ואת הסבלנות (הזמן להשלמת משימה אחת) עבור עומסי עבודה המורכבים ממשימות עצמאיות רבות, מעבדים רב-core יכולים להגדיל באופן דרמטי באמצעות ביצוע משימות מרובות בו-זמנית.
מעצבים חייבים לשקול בזהירות את עומס העבודה המטרה כאשר אופטימיזציה של מעבדים רב-core. Server מעבדים בדרך כלל עדיפות באמצעות ערכת טיפול עבור יישומים רבים במקביל, בעוד מעבדי שולחן העבודה עשויים לאזן באמצעות חישוב וביצועים לקריאה אחת כדי להתמודד הן במקביל והן משקעים עבודה זניח ביעילות.
Benchmarking Multi-core Performance
כלים מודרניים למדידה מקיפה של ביצועי מעבד רב-core על פני עומסי עבודה שונים. PassMark CPU מעבדי בדיקות מעבדים בכל ליבות וחוטים הזמינים, ומספקים ציוני ביצועים הוליסטיים. Cinebench R23, בהתבסס על מנוע הסימון של קולנוע 4D, מציע תובנות לביצועים בעולם האמיתי עבור יישומים מקבילים.
מדדים אלה מסייעים לכמת את היתרונות המעשיים של עיצובים רב-core ומאפשרים השוואות בין ארכיטקטורות מעבד שונות.עם זאת, תוצאות ה-Point צריכות להיות מתפרשות בזהירות, שכן הביצועים של העולם האמיתי תלויים במידה רבה ביישומים הספציפיים ובעומסי עבודה שהוצאו להורג.
זיכרון Hierarchy ו-Cache Design
אדריכלות Cache
מעבדים רב-core מודרניים מעסיקים היררכיה של כאבי ראש מתוחכמים כדי לגשר על הפער הגדל בין מעבד ומהירויות זיכרון. עיצובים אופייניים כוללים פרטי L1 ו- L2 כיבים לכל הליבה, יחד עם שפם משותף L3 נגיש על ידי כל ליבת. היררכיה זו מאזן את הצורך בגישה דלת-latency לשימוש לעתים קרובות בנתונים עם היתרונות של שיתוף נתונים על פני ליבות.
צ'יפים פרטיים להפחית את התוכן ולספק גישה נמוכה צפויה של גישה לכל מערך העבודה של הליבה. כיבים משותפים להקל על שיתוף נתונים בין ליבות ולספק יכולת מטמון הכוללת גדולה יותר, אך עשויים להציג תוכן כאשר ליבות מרובות ניגשים ל- cache בו זמנית. היררכיה המכזית אופטימלית תלויה עומס העבודה המטרה והמאזן בין ביצועים לקריאה יחידה והיקף רב-readability.
פרוטוקולי Cache Coherence Protocols inפרט
פרוטוקולי קוהרנטיות של Cache מבטיחים שכל ליבות יש השקפה עקבית של זיכרון למרות שיש להן כיבים פרטיים.פרוטוקול MESI (Modified,בלעדי, משותף, לא חוקי) הוא אחד הפרוטוקולים הנפוצים ביותר.בפרוטוקול זה, כל קו מטמון יכול להיות באחת מארבע המדינות: Modified (כולל חרדמת ומשתנה), בלעדית (אך לא מעודנת), אך לא מעודנים או מעודנים (חלקים) או מקודמים).
פרוטוקולי קוהרנטיות מבוססי סנואופינג עוקבים אחר עסקאות אוטובוס כדי לעקוב אחר מצבי קו שפיכת קו השבר ולשמור על קו ההכתרה.כאשר ליבה כותבת לקו שפם, היא משדרת מסר לא מבוטל כדי להבטיח ליבות אחרות לא יסתבכו את העותקים שלהם.פרוטוקולים מבוססי Directory משתמשים במדריך מרכזי או מבוזר כדי לעקוב אחר אילו ליבות יש עותקים של כל קו מטמון, צמצום התנועה אך שידור מעל פני ראש.
זיכרון בנדיד ואתגרי טינה
ככל שספירת הליבה עולה, רוחב הפס הזיכרון הופך לצוואר בקבוק ביקורתי יותר ויותר. ליבות מרובות המתחרים על גישה לזיכרון משותף יכולות למקם רוחב פס זיכרון, להגביל את היתרונות של ליבות נוספות.מעבדים מודרניים משתמשים בטכניקות שונות כדי להתמודד עם אתגר זה, כולל ערוצי זיכרון מרובים, קלושים גדולים יותר כדי להפחית את התנועה בזיכרון, ולקדם להסתיר את הגינות הזיכרון.
ארכיטקטורות שאינן מבוססות זיכרון (NUMA) מספקות כל מעבד או קבוצה של ליבות עם זיכרון מקומי שניתן לגשת אליו עם שקיפות נמוכה יותר מאשר זיכרון מרחוק. גישה זו משפרת את יכולת רוחב הפס של זיכרון אבל דורשת הקצאת זיכרון זהירה ומיקום חוט כדי להבטיח חוטים גישה לזיכרון המקומי בכל הזדמנות אפשרית.
ניהול חשמל ועיצוב
דינמי וולט ותדירות גבוהה Scaling (DVFS)
דינמי וולט ותדירות Scaling מאפשר מעבדים להתאים את המתח התפעולי ואת תדירות של ליבות בודדות או את המעבד כולו בהתבסס על דרישות עומס עבודה. כאשר ליבות הם idle או הפעלת עומסי אור, DVFS יכול להפחית מתח ותדירות כדי לחסוך כוח. כאשר ביצועים גבוהים הוא צורך, מתח ותדירות ניתן להגדיל כדי למקסם את הביצועים.
מעבדים רב-core מודרניים ליישם את per-core DVFS, המאפשרים לכל הליבה לפעול ברמות מתח שונות ותדירות באופן עצמאי.שליטה זו מבוססת היטב מאפשרת למעבדים לייעל צריכת חשמל תוך שמירה על ביצועים עבור ליבות פעיל. יישומים מתקדמים משתמשים אלגוריתמים למידת מכונה כדי לחזות דפוסי עומס עבודה והתאמות באופן יזום הגדרות מתח ותדירות.
כוח עיצוב תרמי (TDP) Calculations
כוח עיצוב תרמית מייצג את כמות מקסימלית של חום מעבד צפוי לייצר תחת עומסי עבודה אופייניים. TDP הוא מפרט קריטי הקובע דרישות קירור והשפעות החלטות עיצוב מעבד. מעבדי Multi-core חייבים לנהל בקפידה את TDP כדי למנוע בריחת תרמי, שבו המעבד מקטין את הביצועים להישאר בתוך גבולות תרמיים.
חישובים TDP לשקול את צריכת החשמל של כל ליבות, צ'יפים, בקרים זיכרון, ורכיבים אחרים על שבב.מעצבים חייבים לאזן יכולות ביצועי שיא עם ביצועים מתמשכים תחת מגבלות תרמיות.טכניקות כגון קיצוץ כוח (הסגרה לחלוטין ליבות בלתי מנוצלות) ושעון גלימת (הפסקת השעון למעגלים של idle) לעזור להפחית את צריכת החשמל ולנהל תפוקה תרמית.
Turbo Boost ו- Performance States
טכנולוגיות טורבו Boost מאפשרות למעבדים לעלות באופן זמני על תדירות הבסיס שלהם כאשר חדר ראש תרמי וכוח זמין.כאשר רק כמה ליבות הם פעילים, המעבד יכול להגדיל את התדר שלהם מעבר למפרט הבסיס, מתן ביצועים גבוהים יותר לקריאה אחת. גישה זו מזהה כי הרבה עומסי עבודה לא לנצל את כל הליבה בו זמנית ומאפשרת למעבדים להתאים לביצועים מקבילים ומשתנים.
מצבי ביצועים (P-states) מגדירים נקודות הפעלה דיסקרטיות עם שילובים ספציפיים של מתח ותדירות. מעבדים מעבר בין P-states בהתבסס על דרישות עומס עבודה, איזון ביצועים וצריכת חשמל.מעבדים מודרניים תומכים בעשרות מדינות P, המאפשר ניהול כוח מבוזר היטב להסתגל למאפיינים שונים של עומס עבודה.
דוגמאות ל- Multi-core Multi-core
Intel Core Processors
משפחת המעבד Core של אינטל התפתחה באופן דרמטי מאז הצגת עיצובים רב-core.מעבדי אינטל מודרניים כוללים ארכיטקטורות היברידיות המשלבות ליבות ביצועים גבוהים (P-cores) עם ליבות יעילות אנרגיה (E-cores) זה עיצוב הטרוגניות, שהוצג עם ארכיטקטורת אלדר לייק, מאפשר למעבד להקצות משימות תובעניות ל-P תוך טיפול במשימות על E-coreים, ביצועים ויעילות כוח.
המעבדים האחרונים של אינטל כוללים עד 24 ליבות (8 P-cores ו-16 E-cores) במעבדים שולחניים צרכניים, עם מעבדי השרתים המקיפים את מספר רב יותר של ליבת הליבה.מעבדים אלה ליישם היררכיה מתוחכמת עם L1 ו-L2 כיבים לכל הליבה ותכונות מתקדמות משותפות גדולות כמו מנהל ההתקן של Intel Messenger עוזר למערכת ההפעלה לקבל החלטות תזמון חכמות כדי להקצות את הטיפים המתאימים ביותר לטיפוס המתאים ביותר.
AMD Ryzen ו-EPYC מעבדים
מעבדי Ryzen ו-EPYC של AMD מעסיקים ארכיטקטורה מבוססת שבבים שמפרידה מת (כולל CPU ליבות) מ I / O מת. גישה מודולרית זו מאפשרת ל- AMD לדרג את ספירות הליבה ביעילות על ידי שילוב של שבבים מרובים על חבילה אחת.קישור הבד האינסופי מספק תקשורת בין שבבים, נמוך יחסית בין שבבים.
מעבדי הצריכה של AMD רייזן כוללים עד 16 ליבות עם ריבוי בו-זמנית (SMT), ביעילות לספק 32 חוטים. מעבדי EPYC מוכווני של מעבדי EPYC בקנה מידה של 96 ליבות ו 192 חוטים, מיקוד מחשוב ביצועים גבוהים ועומסי עבודה במרכז נתונים.אדריכלות השבבים מספקת יתרונות ייצור ומאפשרת ל- AMD להציע מעבדים עם ספירות ליבה משתנות באמצעות אותם אבני בניין בסיסיות.
מעבדים Multi-core מבוססי
מעבדים מבוססי ARM הפכו דומיננטיים במכשירים ניידים והם משמשים יותר ויותר במחשבים ובשרתים.אדריכלות הגדולה של ARM LITTLE חלוצה בעיצובים רב-coreים heterogeneous, המשלבת ליבות "גדולות" בעלות "בסיסים" יעילים באנרגיה "LITTLE" . גישה זו מאפשרת למכשירים ניידים לאזן את הביצועים ואת חיי הסוללה על ידי הקצאה דינמית משימות לליבות המתאימות.
מעבדי ARM מודרניים כמו מעבדי Snapdragon של Qualcomm ו- M-Series שבבי של Apple כוללים עיצובים רב-core מתוחכמות עם סוגים מרכזיים מרובים אופטימיזציה עבור עומסי עבודה שונים. מעבדי M של Apple, במיוחד, הוכיחו כי עיצובים מבוססי ARM יכולים להתחרות עם מעבדי x86 בביצועים ויעילות, שמציעים עד 16 CPUs יחד עם GPU משולב ומפתחים מיוחדים.
מעבדים Multi-core
מעבר למעבדים למטרות כלליות, מעבדים מרובי-core מיוחדים מכוונים לדומיינים ספציפיים של יישומים. Graphics Processing Units (GPUs) כוללים מאות או אלפי ליבות פשוטות המותאמות לגרפיקה מקבילים ועומס עבודה.אדריכלות המקבילה מסיבית הזו מצטיינים במשימות דומות לנתונים שבהם אותו פעולה מוחלת על נתונים גדולים.
מעבדי רשת ומעבדי אותות דיגיטליים (DSPs) גם מעסיקים עיצובים רב-core המותאמים לתחומים הספציפיים שלהם.מעבדים מיוחדים אלה להוכיח כי עקרונות רב-core חלים באופן רחב על פני מחשוב, עם כל תחום הדורש אופטימיזציה זהירה של אדריכלות הליבה, קישורים ומערכות זיכרון כדי להתאים את מאפייני עומס העבודה.
פתרונות Multi-core Systems
תמיכה במערכת הפעלה
מערכות הפעלה ממלאות תפקיד קריטי בניהול מעבדים רב-core ביעילות.מערכות הפעלה מודרניות ליישם לוחות זמנים מתוחכמות המקצים חוטים לליבות תוך התחשבות בגורמים כגון זיקה למצוקה, טופולוגיה הליבה וניהול כוח.הלוח חייב לאזן עומס על פני ליבות כדי למקסם את קצב תוך צמצום מתגי הקשר ומצפי השבר.
NUMA-aware לוח הזמנים מבטיח כי חוטים מוקצה ליבות עם גישה זיכרון מקומית בכל הזדמנות, צמצום הגמישות הזיכרון ושיפור ביצועים. מערכות הפעלה לתאם גם עם תכונות ניהול כוח חומרה, קבלת החלטות לגבי אילו ליבות להפעיל ואשר הביצועים קובעים להשתמש על בסיס עומס מערכת ומדיניות כוח.
מודלים מקבילים
ניצול יעיל של מעבדי מרובי-core דורש מודלים תכנות מקבילים המאפשרים למפתחים להביע concurrency תוך ניהול המורכבות של סינכרון ותקשורת.מודלים תכנות משותפים-זיכרון כמו OpenMP לספק הוראות מדגמים המאפשרים למפתחים למקביל ללולאות וקטעי קוד עם שינויים מינימליים לתוכניות קיימות.
מודלים של העברת הודעות כמו MPI משמשים בדרך כלל מחשוב מבוזר אבל יכול גם להיות מיושם במערכות מרובות-core.מודלים אלה לנהל במפורש תקשורת בין משימות במקביל, מתן שליטה על טעונה, אך דורש יותר מאמץ ממפתחים.שפות תכנות מודרניות יותר ויותר לשלב מקבילות כמו תכונות מחלקה ראשונה, עם מבנים לביטוי של ביצוע במקביל וניהול סינכרוניזציה.
Synchronization and Concurrency Control
תוכניות מקבילים חייבות לנהל בזהירות סינכרוניזציה כדי להבטיח ביצוע נכון בעת שימוש במספר חוטים גישה לנתונים משותפים. Locks, סמפורים, ופרימיטיבי סינכרון אחרים להגן על חלקים קריטיים של קוד מגישה במקביל.עם זאת, סינכרוניזציה מוגזמת יכולה ליצור צווארי בקבוק המגדירים ביצועים מקבילים.
אלגוריתמים ללא תשלום וללא המתנה מספקים חלופות למנעול מסורתי, באמצעות פעולות אטומיות כדי לתאם גישה לנתונים משותפים ללא חסימת חוטים.טכניקות אלה יכולות לשפר את יכולת הסקאלה, אך דורשות תכנון זהיר כדי להבטיח את הנכונות.הזיכרון העסקי, הן בחומרה והן בתוכנה, מציעה גישה נוספת על ידי כך שמאפשרת למתכנתים לציין אזורים אטומיים המבצעים כעסקאות, עם מערכת טיפול בזיהוי ופתרון.
מגמות עתידיות בעיצוב רב-core
הגדלת ספירות הליבה והתמחות
המגמה כלפי ספירות ליבה גבוהות יותר ממשיכה כהתקדמות טכנולוגית הייצור והאדריכלים מוצאים דרכים חדשות לנהל את המורכבות של מערכות רבות-core עתידיות.מעבדים עתידיים עשויים לכלול מאות ליבות על שבב יחיד, הדורשות ארכיטקטורות חדשות של חיבור ופרוטוקולים קוהרנטיות שסולפים ביעילות.
התמחות היא עוד מגמה מרכזית, עם מעבדים המשלבים מאיצים ספציפיים של התחום לצד ליבות מטרות כלליות.מכונות למידה מאיצים, מנועי הצפנה, וקודמי וידאו משולבים יותר ויותר במעבדים, ומאפשר חומרה מיוחדת לטפל במשימות ספציפיות ביעילות רבה יותר מאשר ליבות מטרות כלליות.
3D אינטגרציה ו- Advanced Packaging
טכנולוגיות אינטגרציה תלת-ממדיות ערימה של מספר הרוגים אנכי, המחוברות על ידי פס גבוה דרך-סילייקון דרך (TSVs) גישה זו מפחיתה מרחקים בין-קישורים ומאפשר רוחב פס גבוה יותר בין מרכיבים.טכניקות אריזה מתקדמות מאפשרות שילוב heterogeneous של מת באמצעות טכנולוגיות תהליכים שונות, אופטימיזציה כל רכיב עצמאי.
עיצובים מבוססי Chiplet ממשיכים להתפתח, עם ממשקים סטנדרטיים המאפשרים ערבוב והתאמה של רכיבים מ ספקים שונים. גישה מודולרית זו עלולה להוביל עיצובים גמישים יותר של מעבדים שבהם הלקוחות יכולים להגדיר מעבדים עם שילוב ספציפי של ליבות, כנים, ו מאיצים הדרושים עבור עומסי העבודה שלהם.
Machine Learning for Processor Optimization
טכניקות למידת מכונות מוחלות יותר ויותר על עיצוב מעבד ואופטימיזציה. אלגוריתמים של ML יכולים לחזות התנהגות של ענף, תבניות prefetch, והחלטות ניהול כוח אופטימליות יותר דיוק מאשר היוריסטים המסורתיים. חלק מהמחקרים חוקרים באמצעות ML כדי לייעל את תהליך העיצוב עצמו, באופן אוטומטי לחקור חללי עיצוב וזיהוי תצורה אופטימלית.
אופטימיזציה של ריצה באמצעות ML מאפשרת למעבדים ללמוד מתבניות עומס עבודה ולהתאים את התנהגותם בהתאם.זה יכול לאפשר למעבדים לכוון באופן אוטומטי מדיניות מטמון, אסטרטגיות טרום-הפחתת וניהול כוח על בסיס התנהגות יישום נצפית, שיפור ביצועים ויעילות מבלי לדרוש כוונון ידני.
מחשוב קוונטי ונוירומורפילי
בעוד עדיין בשלבים מוקדמים, מחשוב קוונטי ומחשוב נוירו-מורפי מייצגים פרדיגמות פוטנציאליות שיכולות להשלים או בסופו של דבר להשלים מעבדים מרובי-core מסורתיים.מעבדים קוונטיים לנצל תופעות מכניות קוונטיות כדי לפתור בעיות מהירות יותר מהר מאשר מחשבים קלאסיים, אם כי הם מתמודדים עם אתגרים משמעותיים בתיקון שגיאות ורמתיות.
מעבדי Neuromorphic לחקות את המבנה ואת הניתוח של רשתות עצביות ביולוגיות, המציעים יתרונות פוטנציאליים עבור סוגים מסוימים של זיהוי דפוס ולמידה משימות.אדריכלות מיוחדות אלה יכולים לעבוד לצד מעבדים רב-core מסורתיים, משימות טיפול שעבורם הם מתאימים במיוחד בעוד ליבות קונבנציונליות להתמודד עם חישוב כללי.
שיטות עיצוב וכלים
סימבול ומודל
תכנון מעבדים רב-core דורש סימולציה מתוחכמת וכלים מודלים שיכולים להעריך חלופות עיצוב לפני ביצוע ייצור יקר.מחזור-accurate סימולטורים מודל התנהגות מעבד ברמת מחזורי השעון הבודד, המאפשר ניתוח ביצועים מפורט.מודלים אנליטיים ברמה גבוהה יותר מספקים הערכה מהירה יותר של חללי עיצוב, דיוק מסחר עבור מהירות סימולציה.
מודלים ביצועים עוזרים לאדריכלים להבין צווארי בקבוק ואופטימיזציה הקצאת משאבים.על ידי הדמיה של עומסי עבודה שונים על עיצובים המוצעים, אדריכלים יכולים לזהות בעיות ביצועים ולהעריך את ההשפעה של שינויים עיצוב. Power Modeling חשוב באותה מידה, להבטיח כי עיצובים עומדים בפני מגבלות כוח תרמיות ועוצמה תוך מתן ביצועים מטרה.
אימות ואימות
המורכבות של מעבדי ריבוי-core הופכת אימות ואימות אתגרים קריטיים.טכניקות אימות טפסים להוכיח באופן מתמטי כי עיצובים עומדים מפרטים, מתן אמון גבוה לתקן רכיבים קריטיים כמו פרוטוקולים קוהרנטיות של שפם.
אימות פוסט-סילייקון ממשיך לאחר ייצור, בדיקות שבבים אמיתיים כדי לאמת את המבצע הנכון ואפיון ביצועים. שלב זה חושף לעתים קרובות בעיות שלא זוהו במהלך אימות טרום-סיליקון, הדורשות העדכונים קושחה או מיקרוקוד לעבוד סביב באגים חומרה.העלות הגבוהה של שבבים מחזר הופכת אימות יסודי חיוני.
תכנון החלל
עיצוב מעבד רב-core כולל ניווט של שטח עיצוב עצום עם אינספור פעולות מסחר.כלי חקר עיצוב אוטומטיים לסייע לאדריכלים להעריך אלפי או מיליוני נקודות עיצוב, זיהוי תצורה Pareto-optimal המציעה את הטוב ביותר עסקאות בין מטרות מתחרות כמו ביצועים, כוח, אזור.
טכניקות למידת מכונות מוחלות יותר ויותר על תכנון חקר חלל, למידה מהערכות קודמות כדי להנחות את החיפוש לעבר אזורים מבטיחים של חלל העיצוב.זה יכול להפחית באופן דרמטי את הזמן הנדרש כדי למצוא עיצובים אופטימליים או קרובים, המאפשרים לאדריכלים לחקור חלופות נוספות ולקבל החלטות מושכלות יותר.
יישומים בתעשייה ושימוש במקרים
מרכזי נתונים וענן מחשוב
מרכזי נתונים מייצגים את אחת היישומים התובעניים ביותר עבור מעבדים רב-core, הדורשים תפוקה גבוהה כדי להתמודד עם אלפי בקשות במקביל תוך שמירה על יעילות האנרגיה לשלוט בעלויות התפעול.מעבדים Server כוללים ספירות ליבה גבוהות, כיבים גדולים, ומיומנויות I / O נרחבות לתמוך וירטואליזציה ועומסי עבודה מקוטבים.
ספקי ענן ממנפים מעבדים רב-core כדי למקסם את ניצול המשאבים באמצעות וירטואליזציה, הפעלת מכונות וירטואליות מרובות או מכולות על כל שרת פיזי.היכולת להקצות ליבות באופן דינמי לעומסי עבודה שונים מאפשרת שיתוף משאבים יעילים ומשפרת את היעילות הכוללת של מרכז הנתונים. תכונות מתקדמות כמו וירטואליזציה ורחבות אבטחה מונעות חומרה הן חיוניות עבור פריסות ענן.
מערכות מובייל ו Embedded
מכשירים ניידים עומדים בפני מגבלות ייחודיות, הדורשות ביצועים גבוהים עבור יישומים תובעניים תוך כדי למקסם את חיי הסוללה.עיצובים רב-coreים heterogeneous עם ליבות גדולות ו-LITTLE מאפשרים למעבדים ניידים להסתגל לדרישות עומס עבודה שונות, תוך שימוש בליבות ביצועים גבוהים עבור משימות תובעניות ובטיחות יעילות אנרגיה לפעילויות רקע.
מערכות Embedded משתרעות על מגוון רחב של יישומים ממכוניות לשליטה תעשייתית, כל אחד עם דרישות ספציפיות.מעבדי רכב חייב לעמוד באמינות מחמירה דרישות בטיחות תוך מתן ביצועים מספיקים עבור מערכות סיוע מתקדמות ו-infotainment. למערכות משובצות תעשייתיות עשוי לתעדף ביצועים בזמן אמת והתנהגות דטרמיניסטית על פני הגלום באמצעות חישוב.
מחשוב גבוה
מערכות מחשוב ביצועים גבוהים (HPC) דוחפות מעבדים רב-core למגבלות שלהם, משלבות אלפי מעבדים כדי להתמודד עם הבעיות החישוביות התובעניות ביותר במדע ובהנדסתה.מעבדים HPC לפני ביצוע צף, רוחב פס זיכרון ויכולות חיבור כדי לתמוך ביישומים מקבילים הדוקים.
מערכות HPC מודרניות יותר ויותר משלבות מאיצים כמו GPUs לצד CPUs מסורתיים, יצירת מערכות heterogeneous המנף את נקודות החוזק של סוגים שונים של מעבדים. תכנות מערכות אלה דורשות כלים ומסגרות מתוחכמות שיכולים לנהל מורכבות תוך מיצוי ביצועים מקסימליים של משאבי חומרה זמינים.
אינטליגנציה מלאכותית ולמידה של מכונות
AI ו- Machine Learning עומסים הפכו לנהגים חשובים יותר ויותר של עיצוב מעבד. בעוד מאיצים AI מיוחדים מטפלים באימונים ובהתאמה למודלים גדולים, מעבדי Multi-core נותרו חיוניים לעיבוד נתונים, פריסת מודל, ומריצים עומסי עבודה של AI מגוונים שאינם מצדיקים חומרה מיוחדת.
מעבדי Multi-core עם הרחבות וריאציות מרובות ממטריקס יכולים לבצע ביעילות עומסי עבודה רבים של AI, במיוחד עבור ההפרעה שבה דיסלקציה מדויקת נמוכה מקובלת.הגמישות של ליבות מטרות כלליות מאפשרת להם להסתגל לאלגוריתמים ומסגרות מתפתחות, משלימים מאיצים מיוחדים במערכות בינה מלאכותית מקיפים.
Best Practices for Multi-core System Design
המונחים: workload Characterization
עיצוב מעבד רב-core יעיל מתחיל עם אופי עומס עבודה יסודי.הבנת המאפיינים של יישומי היעד - כולל מקבילה, דפוסי גישה זיכרון ועוצמה חישובית - אדריכלים מסוגלים לקבל החלטות עיצוב מושכלות.
עומסי עבודה שונים מדגישים היבטים שונים של המעבד.עומס עבודה מקיפים תועלת יותר ליבות ותדירות גבוהה יותר, בעוד עומסי עבודה בחישה זיכרון דורשים כיבים גדולים יותר ורוחב רוחב פס זיכרון גבוה יותר.
איזון ביצועים ויעילות
מעבדים רב-core מודרניים חייבים לאזן את ביצועי שיא עם יעילות אנרגיה. בעוד הוספת ליבות נוספות יכול להגדיל את דרך המחשב, זה גם מגביר את צריכת החשמל ואת המורכבות.אדריכלים חייבים לשקול בזהירות את מדד הביצועים-per-וואט, להבטיח כי ליבות נוספות לספק יתרונות מספיקים לביצועים כדי להצדיק את עלויות הכוח והאזור שלהם.
עיצובים heterogeneous מציעים גישה אחת לאיזון ביצועים ויעילות, מתן ליבות ביצועים גבוהים עבור משימות תובעניות ואת ליבות יעילות אנרגיה עבור עומסי עבודה קלים יותר. ניהול כוח דינמי מאפשר למעבדים להסתגל לדרישות עומס עבודה שונות, למקסם את היעילות ללא ביצועים מקריים בעת הצורך.
שיקולים סקלאיים
תכנון עבור דרוגיות מבטיח כי מעבדים רב-core יכולים לגדול כדי לענות על דרישות עתידיות.אדריכלות אינטר-קישור חייב בקנה מידה ביעילות ככל שספירת הליבה עולה, הימנעות מצוואר בקבוק המגבלה ביצועים. פרוטוקולים קוהרנטיות של Cache צריך למזער פני השטח ולהגדיל כדי לתמוך בעשרות או מאות ליבות ללא תנועה מופרזת או עצלות.
דרוגיות תוכנה חשובה באותה מידה. מעבדים צריכים לספק תכונות המאפשרות מערכות הפעלה ויישומים בקנה מידה יעיל, כולל תמיכה חומרה עבור סינכרון, טיפול יעיל להפריע, וניהול זיכרון NUMA-מודע. עיצוב עם יכולת דרוגית מראשית היא הרבה יותר קלה מאשר רטרוהתאמה של קנה מידה לתוך עיצובים קיימים.
מסקנה
עיצוב מעבד רב-core מייצג את אחד השינויים המשמעותיים ביותר בהיסטוריה של ארכיטקטורת מחשבים, שינוי יסודי כיצד אנו ניגשים לבעיות חישוביות.עקרונות המקבילות, הקצאת משאבים זהירה, וניהול האינטראקציות המורכבות בין ליבות, צ'יפים ומערכות זיכרון יוצרים את הבסיס של עיצוב מעבד מודרני.
מסגרות מתמטיות כמו חוק אמהל מספקות כלים חיוניים להבנת הגבולות וההזדמנויות של מחשוב מקביל, המנחה הן החלטות חומרה והן עיצוב תוכנה. יישום בעולם האמיתי מ- Intel, AMD, ARM ואחרים מפגינים גישות מגוונות לתכנון רב-core, כל אחד מותאם לקטעי שוק ספציפיים ומאפיינים עומס עבודה.
בעוד אנו מסתכלים על העתיד, מעבדי רב-core ימשיכו להתפתח, שילוב יותר ליבות, התמחות גדולה יותר וטכנולוגיות מתקדמות כמו שילוב תלת-ממדי ואופטימיזציה של למידת מכונה.האתגרים של ניהול כוח, קוהרנטיות מטמון, ותכנות במקביל נותרו חששות מרכזיים, נהיגה במחקר וחדשנות.
עבור מהנדסים, אדריכלים ומפתחים העובדים עם מערכות מרובות-core, הבנת העקרונות הבסיסיים והשיקולים המעשיים האלה היא חיונית.אם עיצוב מעבדים חדשים, אופטימיזציה תוכנה לביצוע מקביל, או פשוט קבלת החלטות מושכלות על בחירת חומרה, המושגים שנבחנו במדריך זה מספקים בסיס לעבודה יעילה עם טכנולוגיית ריבוי-core.
עידן הרב-core שינה את מחשוב בכל המאזניים, מסמארטפונים ועד למחשבים העל. על ידי שליטה בעקרונות, בחישובים ובשיקולים של עיצוב מעבד רב-core, אנו יכולים להמשיך לדחוף את הגבולות של מה שניתן לחשבוונומי תוך ניהול מגבלות הכוח, התפוקה התרמית ומורכבות התכנות המגדירה מחשוב מודרני.
(ב) לקריאה נוספת על ארכיטקטורת מחשבים ומחשוב מקביל, בקר באדריכלות מעבדים ספציפיים ניתן למצוא בתיעוד של ספק מ-FLT:4 Intelve:2ACMIRLT 3 פרטים טכניים נוספים על ארכיטקטורות מעבדים ספציפיים ניתן למצוא בתיעוד המוכר מ-FLT:4 intelveFLT:5,FLT5, ו-FLT7, ו-Fallowdph5, ו-ARMIF:8Fallow:5, ו-ALT5, ו-ALT5, ו-ALT5, ו-ALT5, .