מבוא: הגדלה צריכה למקבילה באדריכלות CISC

מחשוב מודרני דורש ריבוי משימות, תגובה בזמן אמת, ועומס גבוה על עומסי עבודה מגוונים - מניתוח נתונים ושירותי ענן לגיימינג ואינטליגנציה מלאכותית. בלבן של מערכות רבות הוא מעבד CISC (מערכת הוראה מורכבת) מעבד, פילוסופיה עיצוב שמדגישה את מערכות ההוראה העשירות המסוגלות לבצע פעולות מרובות שלבים בהוראה אחת. בעוד ארכיטקטורות CISC מפשטות את התכנות והגודל, השגת הביצועים המקבילים כדי לבחון את מטרות התפעוליים הדרושים כדי לבחון את יסודות הכוח העכשוויים, היא קריטית של המערכת.

הבנת אדריכלות CISC: Foundation for Parallel Implementation

מעבדי CISC מאופיין על ידי מערך הוראה גדול ומגוונת שבו הוראות בודדות יכולות לטעון, לחשבונך ולאחסן נתונים בפעולה אחת.דוגמאות היסטוריות כמו אינטל 8086 ו- מוטורולה 68000 הקימו דפוס: הוראות באורך משתנה, מספר מצבי טיפול, ויחידת בקרה מיקרוקודנית המפעת פעולות מורכבות בצעדים פנימיים פשוטים יותר.

עם זאת, אותה המורכבות שהופכת את CISC מושך מתכנתים יוצרת מכשולים עבור מקבילות.הוראות באורך משתנה לסבך שלבים קודים, תלויות הוראה קשה יותר לפתור, ואת לוגיקה בקרה microcoded מציג שקיפות. כדי להתגבר על המגבלות האלה, מעבדי CISC מודרניים - בעיקר משפחת x86 מ- Intel ו- AMD - הרחק מאדריכלות פנימית דמוית RISC תוך שמירה על CISCing גישה פשוטה יותר של מיקרו-פעולה (consocip) בהוראות מורכבות.

סוגים של שקיפות ב- CISC Processors

המקבילה במעבדי CISC אינה טכניקה אחת, אלא אסטרטגיה שכבתית הכוללת רמות מרובות של concurrency. כל סוג מתייחס צווארי בקבוק שונים ודורש תמיכה חומרה ותוכנה נפרדת.

מקבילות הוראה (ILP)

ILP מנצל הוראות עצמאיות בתוך חוט יחיד, ומאפשר הוראות מרובות לביצוע בו זמנית.במעבדים CISC, ILP מושג באמצעות צינורות, ביצוע סופרקלר, ויציאה מתזמון ההזמנה.האתגר הוא כי הוראות CISC לעתים קרובות יש תלות נסתרת - לדוגמה, הוראה אחת של עותק מיתר עשוי לקרוא ולכתוב בדרכים שאינן ברורות למעבדים מודרניים של CISC פורצות מספר רב יותר, כמו הפעלת קוד זדונית, המאפשרת יותר, המאפשרת יותר, כך, כך, כך שהיא מאפשרת הפעלה פשוטה יותר, מאפשרת אפשרות של קוד זדונית של קוד פתוח יותר, וזיכרון, אשר מאפשר, וזיכרון בדרכים שאינן ברורות יותר, כלומר, כלומר, כך, כך, כך, כך, כך, כך, כך, כך, כך, כך, כך, כך, כך, כך, מאפשר, מאפשר, מאפשר, מאפשר, מאפשר, מאפשר, כך, כך, כך, כך, כך, כך, כך, כך, כך, כך, כך, מאפשר, מאפשר, מאפשר, מאפשר, מאפשר, מאפשר, כך, כך, כך, כך, כך, כך, כך, כך, כך, כך, מאפשר, מאפשר, מאפשר, כך, כך, כך, כך, כך, מאפשר, כך, כך, מאפשר, מאפשר, כך, כך,

מקבילות למשימות (TLP)

TLP מאפשר ביצוע קבוע של חוטים מרובים או תהליכים. בעוד TLP קשורה בדרך כלל עם מעבדים רב-core, ארכיטקטורות CISC תומכת בו גם באמצעות טכניקות מרובות-קריאה מרובות כגון ריבוי-הקריאה בו-זמנית (SMT) ב- SMT, חוטים חומרה מרובים חולקים משאבים לביצוע, ומאפשרים למעבד לשמור יחידות פונקציונליות עסוקות גם כאשר אחד דוכנים.

מקבילות נתונים

מקבילות נתונים מבצע את אותו פעולה על אלמנטים נתונים מרובים במקביל.מעבדים CISC תומכים זה באמצעות SIMD (Single הוראה, מספר נתונים) הרחבות כגון SSE ו AVX ב x86, ו Neon ב ARM (למרות ARM הוא RISC, העיקרון חל על הרחבות אלה מציגות רחבות רישום ויחידות ביצוע ייעודיות שיכולות לעבד וריאציות של integers או צף במספרים של נתונים, הוא קריטי, כלומר, הוא מחשבי מידע.

מקבילות זיכרון (MLP)

פחות נפוץ לדון אבל חשוב באותה מידה, MLP מתייחס ליכולת להתמודד עם מספר בקשות זיכרון בולט בו זמנית.מעבדים CISC מעסיקים טכניקות כמו ביצוע מחוץ להוצאה להורג, חפיפות לא חוסמים, וחומרה הדבקת גישה זיכרון חפיפה.זה חיוני כי הגמישות היא לעתים קרובות צוואר הבקבוק הדומיננטי בעומס עבודה מודרני, אפילו יותר מאשר חישובי גלם באמצעות.

יישום מקבילות במעבדי CISC: טכניקות ליבה

תרגם מקבילה מהרעיון האדריכלי לעבוד סיליקון דורש תזמורת זהירה של משאבי חומרה.הטכניקות הבאות מהוות עמוד השדרה של ביצוע במקביל במעבדים מודרניים של CISC.

צנרת

פישוט דיבידנדים הוראה לבצע שלבים אפשריים - אפיל, לפענח, לבצע, גישה זיכרון, תגובה בכתב. כל שלב יכול לעבד הוראה שונה בו זמנית, למעשה חפיפה פעולות.בצנרת משולשת של חמישה שלבים, עד חמישה הוראות יכול להיות בטיסה בבת אחת.עם זאת, מורכבות CISC מציגה סכנות צינורות: סיכונים מבניים (סכסוכים של קוד), סכנות (בהתאם להנחיות), ולשלוט (מפרקים) ונקזנקמי בקרה (סבים).

כדי להפחית את הסיכונים בשליטה, מעבדי CISC משתמשים מנגנוני חיזוי של מגזרים כי לנחש את התוצאה של קפיצות בתנאי לפני שהם נפתרים. תחזיות מודרניות להשיג שיעורי דיוק מעל 95% באמצעות שני תחזיות הסתגלות ומודלים המבוססים על רשת עצבית. כאשר מתרחשת תקלה, הצינור חייב להיות מתפתל מחדש, תוך תיקון מספר מחזורים - עלות משמעותית שמניעה את המחקר לאלגוריתמים.

הוצאה להורג של Superscalar

מעבדי Superscalar נושאים מספר הוראות מחזור השעון ליחידות ביצוע מרובות.זה דורש קצה חזית מורכב שיכול להביא, קודקוד, ושם מחדש לרשום עבור מספר הוראות בו זמנית.באדריכלות CISC, פורמט ההוראה באורך משתנה מסבך: מחזור יחיד יכול להכיל חלק של הוראה או מספר הוראות, הדורש היערכות מתוחכמת.

ה- μops המופעים מועברים ללוח זמנים שעוקב אחר תלותים ומעניינים אותם ליחידות פונקציונליות - Integer ALUs, יחידות צף, יחידות עומס/חנות, וכו 'הלוח הזמנים יכול להוציא יותר הוראות מאשר שלב הקוד מספק, המאפשר למעבד לבנות "חלון" של הוראות לביצוע ההזמנה.

הוצאה לאור: OOE

OoOE מאפשר למעבד לבצע הוראות כמו האופרות שלהם להיות זמין, ולא סדר התוכנית.זה ממקסם את ניצול יחידות ביצוע ומחביא את הלכידות מפספסים או תלויות נתונים.

  • (FLT:0) renaming:FLT:1 מבטל את התלויות השקריות (הטקס-אחרי-טקס וכתוב- לאחר-קריאה) על ידי מיפוי רישומים אדריכליים למערכת גדולה יותר של רישומים פיזיים.כל תוצאה חדשה כתובה לרישום פיזי ייחודי, המאפשרת הוראות מרובות בטיסה כדי לכוון את אותו הגיוני ללא רישום.
  • (ב) תחנות כוח:0) תחנות משמרות: 1FLT:1 Buffers המחזיקות הוראות הממתינות לאופרות, כאשר כל האופרות מוכנות, ההוראה נשלחת ליחידת ביצוע.
  • (FLT:0) Reorder buffer (ROB): ההרחבה הראשונה שומרת על סדר התוכנית המקורי ומבצעת תוצאות ברצף, הבטחת חריגים מדויקים והמדינה האדריכלית הנכונה.

OoOE הוא בעל ערך מיוחד עבור מעבדי CISC כי הוראות מורכבות ניתן לפסל למספר משתנה של מיקרופוס, כל אחד עם תלות משלו. לוח הזמנים יכול לבודד מיקרופוסים מהוראות שונות, להשיג טוב יותר דרך חישוב מאשר עיצוב רק בהזמנה.

תחזית שרשרת והוצאה להורג ספציפית

תחזית הזרוע מפחיתה את הסיכונים השולטים על ידי מתן המעבד להמשיך להביא ולבצע הוראות לאורך הנתיב הצפוי לפני שתוצאת הענף ידועה.כאשר בשילוב עם ביצוע קידוד, הוראות ניתן לבצע לפני שהוא אישר כי הם צריכים לרוץ. מעבדי CISC מודרניים מעסיקים חיזויים ברמה גבוהה: יעד סניף buffer (BTB) מאחסן את המטרות של סניפי נלקחים לאחרונה, דפוסי היסטוריה גלובליים, וחיזוי זה קורה ענפים, אם הם מופיעים צנרת.

ביצוע ספציפי, בעוד חזק, יש השלכות אבטחה - בעיקר פרצות מלטה וספקטרום שהתגלה בשנת 2018. התקפות אלה לנצל את תופעות הלוואי של ביצוע אופטימיזציה כדי להדליף מידע חסוי.

טכניקות מתקדמות ל-Hangism

מעבר לטכניקות הליבה, מעבדי CISC מודרניים לפרוס כמה מנגנונים מתקדמים כדי לחלץ מקבילות נוספות.

Multithread (SMT)

SMT מאפשר חוטי חומרה מרובים לשתף משאבים לביצוע על הליבה אחת.כל חוט שומר על המדינה האדריכלית שלו (registers, תוכנית נגד), אבל הם מתחרים על כיבים, יחידות ביצוע, רוחב פס זיכרון. בעיצובים CISC, SMT עוזר למלא בועות צינורות כי מתעוררות מפעילות מאומצת ארוכה - לדוגמה, בעוד חוט אחד מחכה למגם, חוט אחר יכול להשתמש ביחידות הביצוע של אינטל בדרך כלל 15 דונם אחד על ביצועים חד -30 אחוז אחד על פני 15.

עיבוד עם תוספות SIMD

הרחבות SIMD התפתחו מ-64 סיביות MMX עד 128 סיביות SSE, 256 סיביות AVX, ו 512-bit AVX-512 במעבדים מודרניים x86.הוראות אלה פועלות על מספר רכיבי נתונים במקביל, מתן מהירות משמעותית עבור עומסי עבודה מקבילים של נתונים. AVX-512, לדוגמה, יכול לעבד 8-precision כפול או 16 חד-כיחות חד-כימות יחיד-כיבית-פעמיים-פעמיים יכולים לכלול אתגרים משמעותיים של ניהוליים, לחץ דם גבוה, לחץ דם, לחץ דם גבוה, לחץ דם נמוך של לוחצים, כולל מספריים, לחץ דם גבוה, לחץ דם גבוה, לחץ דם גבוה, לחץ דם נמוך של תדרי-פעמיים, לחץ דם גבוה, לחץ דם גבוה, לחץ דם גבוה, לחץ דם גבוה, לחץ דם נמוך של לוח זמנים של לוח זמנים, לחץ דם גבוה, לחץ דם נמוך, כולל, לחץ דם נמוך של צריכת גודל של לוחצים, כולל מספריים, לחץ דם גבוה, לחץ דם גבוה, לחץ דם גבוה, לחץ דם גבוה, אפקט של לוח זמנים של לוחמת, לחץ דם גבוה, לחץ דם גבוה, אפקט של לוח זמנים של לוח זמנים של לוח זמנים של לוח זמנים של לוחמת, אפקט של לוח זמנים של לוח זמנים

זיכרון ספציפי

תלות בזיכרון היא בין הקשה ביותר לפתור כי הם כרוכים בכתובות שאינן ידועות עד לריצה.כאשר מדריך בחנות כותב למיקום זיכרון ועומס לאחר מכן קורא מאותה כתובת, העומס חייב לחכות לחנות כדי להשלים.עם זאת, אם הכתובות שונות, העומס יכול להוציא לפועל מתוך סדר.

חומרה מוקדמת

שקיפות זיכרון היא מחסום מרכזי למקבילה.החומרים של חומרה מסובכים בדפוסי גישה לזיכרון - צעדים אפשריים, סמן רודף, דפוסים לא סדירים - ובאופן פרואקטיבי מביאים נתונים לתוך הטמון לפני שהוא מתבקש במפורש. prefetchers מתקדם במעבדים CISC, כגון יחידת Prefetching נתונים של אינטל, יכול לעקוב אחר 32 זרמים עצמאיים ולהתאים באופן דינמי מראש.

אתגרים ומסחר בעיצוב CISC מקבילים

מקבילות במעבדי CISC אינה ללא מכשולים משמעותיים.כל טכניקה מציגה מורכבות, כוח, ועלויות שטח שיש לאוזן בזהירות נגד הישגים ביצועים.

הוראה וקודמת

האופי המרבי של הוראות CISC מאלץ שכבת תרגום מיקרו-op. זה מוסיף שקיפות בדרך הקריטית ודורש כיפוף נוסף.הפחתת ארבע או חמש הוראות לכל מחזור, שכל אחת מהן עשויה לייצר 1-8 מיקרופוסים, תוצאות בשלב קוד רחב עם שטח משמעותי וכוח מעל הקצה.

כוח ו-Thermal Constraints

ביצוע במקביל מגביר את צריכת החשמל הדינמית בשל פעילות מעבר גבוהה וכוח דליפה מקבצי רישום גדולים יותר ו caches. Vector יחידות כמו AVX-512 יכול לכפות את המעבד כדי להפחית את תדירות השעון שלו להישאר בתוך גבולות תרמיים, להפחית את היתרונות. מעצבים להשתמש בטכניקות כמו גלי חשמל, שעון גלימת, ו מתח דינמי / קידוד (DVS) כדי לנהל מגבלות אלה, אבל סחרחור בין מקבילה לעוצמה נשאר.

חזרה ל-ILP

ככל שגדלי החלונות והוראות נוספות נבדקות עבור מקבילות, ההישגים המצטברים מתכווץ.תלויים בהוראה, רשלנות של ענף, וגמישות זיכרון מגבילים את ILP האפשרי. מחקרים הראו כי גם עם חיזוי סניף מושלם ומשאבים בלתי מוגבלים, ממוצע ILP של קוד למטרות כלליות הוא סביב 5-7 הוראות למחזור.

אבטחה Vulnerabilities

ביצוע ספציפי, בעוד חיוני לביצועים, פתח משטח התקפה חדש. Meltdown אפשר תהליכים בלתי-ממוקדים לקרוא זיכרון גרעין על ידי ניצול ביצוע מחוץ להוצאה להורג. Spectre השתמש בחיזוי גישה לזיכרון שרירותי. Mitigations כגון בידוד דף הקרנל (KPTI), microcodes, ו-Redesigns ביצועים כופים - לפעמים 10% לעבודה עם מתגי מערכת תכופים או שיחות תכופות.

תוכנה Ecosystem Compatibility

במקביל למעבדי CISC חייב להישאר בלתי נראה לתוכנה - בינארי חייב לרוץ נכון ללא שכפול.אדריכלות מעצימה זו משתנה: כל שינוי במערך ההוראה או מודל הזיכרון חייב לשמור על תאימות לאחור.אדריכלות x86, בפרט, נושאת עשרות שנים של החלטות עיצוב מורשת המגדירות כיצד ניתן ליישם מקבילות אגרסיביות ללא הפצת קוד ישן.

דוגמאות אמיתיות: מקבילות במעבדים מודרניים של CISC

הטכניקות המתוארות לעיל אינן תיאורטיות - הן מופצות באופן פעיל במעבדים מרכזיים מ- Intel ו- AMD.

Intel Core Architecture (P-Core and E-Core)

האדריכלות ההיברידית של אינטל (אלדר לייק, Raptor Lake, מטאורולוג לייק) משלבת ליבות ביצועים (P-cores) עם ליבות יעילות (E-cores) (E-cores) הם סופרקלייר עמוק, תמיכה בביצוע מחוץ לסידור על חלון רחב, SMT, AVX-512 (למרות שעדיין לא מוגבל בחלק מהמוצרים).

AMD Zenאדריכלות

המיקרוארכיטקטורה של AMD (Zen 2, 3, 4) מדגיש גבוה ILP באמצעות buffer מסדרה גדול (עד 256 ערכים), רישום אגרסיבי renaming, וחיזוי סניף מתוחכם.ה הליבה יכול לפענח עד 4 הוראות מחזור, גיליון עד 6 מיקרופוס למחזור, ולהסתלק עד 8 מיקרופוס למחזור.

מסקנה: עתיד השקיפות ב- CISC

יישום מקבילות במעבדים CISC הוא סיפור של הסתגלות אדריכלית - עם סטים מורכבים מטבעו שכבתי וטכניקות בהשראת RISC כדי להשיג ביצועים מודרניים. פירעון, ביצוע סופרסקלאר, מחוץ מסדר, תזמון, תחזית סניף, ו-SMT הפכו לתכונות סטנדרטיות יותר, המאפשרים למעבדים לבצע מיליארדי הוראות לשנייה תוך שמירה על תאימות תוכנה.

עם זאת, הנתיב קדימה הוא מוגבל על ידי כוח, גבולות תרמיים, שיקולי אבטחה, ואת החוק של ירידה חוזרת. מעבדי CISC עתידיים סביר לשלב מאיצים ספציפיים לתחום, אריזה מתקדמת עם השבבים, ומערכות זיכרון יחד עם קומפקטיות כדי לחלץ מקבילות ברמות גבוהות יותר.המטרה נשארת זהה: לספק משימות רספוטיות רלוונטיות, ביצועים גבוהים ללא הקרבה לאחור כי מגדירה את המערכת האקולוגית של CISC.