Table of Contents
מבוא
שבבים מורכבים מודרניים - ממיקרו-מעבדים בעלי ביצועים גבוהים ועד מעבדי אותות דיגיטליים מיוחדים (DSPs) ומערכת-on-chips (SoCs) - מכילים מאות או אפילו אלפי רישומים מאורגנים בהיררכיה מתוכננת בקפידה. רישומים אלה אינם רק מפוזרים על פני סיליקון; הם יוצרים בנקים רשומים מובנים המאפשרים תנועה יעילה, בקרה ותצורה של מבנה היררכי זה חיוני עבור מהנדסים, מפתחים, וצריכים כיום, פונקציות משולבות, ולהפחית את המורכבות של מערכות הפעלה, אשר יכולות של פונקציות, ולהפחית את המורכבות של ימינו.
הארגון ההיררכי של בנקים רשומים מראה את הארכיטקטורה השכבתית של השבב עצמו. ברמה העליונה, רישומים גלובליים לתאם פונקציות מערכת עיקריות; ברמות ביניים, תת-מערכת רושמים לנהל מודולים ייעודיים; וברמה הנמוכה ביותר, רישומים מקומיים מספקים גישה מהירה ליחידות פונקציונליות אינדיבידואליות. מאמר זה חוקר כל רמה בעומק, מסביר מדוע ההיררכיה היא הכרחית, בוחן את ההיררכיה של המסחר-offoffs, ומספק דוגמאות מעשיות מ- השבבים אמיתיים.
מה הם בנקי רישום?
בנקים רשומים הם אוספים של רכיבי אחסון (registers) בתוך שבב שמחזיק באופן זמני נתונים, כתובות, ביטים שליטה או מידע סטטוס.בניגוד לזיכרון הראשי (DRAM או SRAM caches), רישומים ממוקמים פיזית קרוב ללוגיקה העיבוד, וכתוצאה מכך עצלות גישה נמוכה מאוד - באופן חד פעמי או שניים מחזורי שעון.
בדרך כלל, רשומים נופלים לשתי קטגוריות רחבות:
- (FLT:0) רישום אדריכלי של קונסול 1 (Architectural RegistersFLT:1) המוגדר על ידי אדריכלות סט ההוראה (ISA) וניתן לראות אותה לתוכנה (למשל, רישום כללי, דגלי מעמד).
- (FLT:0) רישומים ספציפיים לחיקוי 1 (Feloph:1) בשימוש פנימי עבור בקרת צינורות, ניהול זיכרון, I / O תצורה, ו debug.אלה אינם חשופים למתכנת אך הם חיוניים לפעילות חומרה.
שבבים מודרניים משלבים שני סוגים של בנקים רושמים היררכיים.הארגון משפיע ישירות על הביצועים, הכוח, האזור (שלושת עמודי התווך של עיצוב השבבים), וקלות אימות.
הצורך בהיררכיה בארגון הרישום
בתיק רישום שטוח, ברמה יחידה, כל הרשומות היו שותפים לאוטובוס משותף ומנגנון ההתייחסות.כפי שמספר הרשומות גדל, גישה שטוחה זו סובלת ממספר בעיות:
- (ב) ,0) , 000 פעמים גישה ל[[1924]], בשל עיכובים גבוהים יותר של חוטים ומספרים גדולים יותר.
- (ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- (ב) ,0) ,3 , כאשר תת-מערכות שונות דורשות הצצה לשמות או מספרים.
- (ב) ,0) עיצוב מורכבות FLT:1 (ב) בסימנים שליטה לכל רישום מנקודת מוצא מרכזית.
כדי להתגבר על נושאים אלה, אדריכלים שבב להפיץ רישומים על פני בנקים מרובים מסודרים בהיררכיה.התנועה מקומית, מפחיתה את אורך חוט, ומאפשרים שעונים עצמאיים וניהול כוח לבנק.התוצאה היא מבנה מדרגי שיכול להכיל מאות רישומים ללא מהירות הקרבה.
רמות ההיררכיה ב- Modern Chips
ההיררכיה הטיפוסית מורכבת משלושה רמות עיקריות, אם כי כמה צ'יפס מוסיפים שכבות ביניים אפילו נדיבות יותר.
Global Register הבנקים
בנקים רשומים גלובליים נגישים מכל מודול או תת-מערכת בתוך השבב.הם מאחסנים נתונים שיש לשתף אותם בכל המערכת, כגון:
- תצורה גלובלית רשומה (למשל, מזהה שבב, הגדרות מצב חשמל, דיבידנדי שעון).
- רישום אינטררופווט (מסכות פרטיות, מעמד של כוורת).
- ראשי התיבות של Watchdog Againsts
- DMA בקר נרשם המגדירה העברות זיכרון לפריפריה.
מכיוון שרשומות אלה נגישות מנקודות רבות, הן ממוקמות בדרך כלל ליד אוטובוס המערכת או בד קישורי. כתובת הקידוד היא מרכזית, ורשאות גישה (קריאה/כתיבה, גישה חסויה) נשמרות ברחבי העולם.מספר הרשומות הגלובליות נשאר קטן יחסית כדי להימנע מלהיות צוואר בקבוק מחוספס.
« « פורומים
בנקים תת-מערכת משרתים בלוקים פונקציונליים ספציפיים כגון בקרי זיכרון, בקרים USB, ליבות גרפיקה או מנועי הצפנה.רשומות אלה גלויות רק בתוך תת-מערכת שלהם ולעתים קרובות חולקות אוטובוס מקומי או גשר אל הבד הגלובלי.
דוגמאות לרישום תת-מערכת כוללות:
- DDR Memory Controller רושם (סימול: פרמטרים, בקרה רענון, מצבי ירידה בכוח).
- Ethernet MAC רושם (בקרת זרימה, סטטיסטיקות נגד, PHY תצורה).
- תור פיקוד GPU נרשם.
בנקים תת-מערכת מאפשרים לכל בלוק IP להיות מתוכנן ומאומת באופן עצמאי, הם גם מאפשרים חשמל לבלוט: כאשר תת-מערכת היא בטלה, כל בנק הרישום שלה יכול להיות כבוי מבלי להשפיע על שאר השבב.
בנקי רישום מקומיים
רישומים מקומיים הם הקטנים ביותר, המהירים ביותר, והחזקים ביותר ליחידות פונקציונליות אינדיבידואליות – לדוגמה, הצנרת רשומה ביחידת ביצוע CPU, הפילטרים ב-DSP, או ההקשר נרשם במעבד רב-הנקרא.הרישוםים האלה הם לעתים קרובות חלק מקובץ רישום ייעודי עם מספר רב/טקס יציאות לתמיכה בפעילות במקביל.
מאפיינים מרכזיים של בנקים מקומיים:
- גישה קצרה מאוד (בדרך כלל 1-2 מחזור).
- מספר מצומצם מאוד של ערכים (למשל, 16-64 רשומים לבנק) כדי לשמור על הקובץ קטן ומהיר.
- פורט ספירה המותאמים לצרכים של היחידה (למשל, לרשום קבצים ב- Superscalar CPU יש הרבה יציאות קריאה/כתיבה).
- לעתים קרובות פיזית ליד יחידת פונקציונלי המתאים למזער עיכוב חוט.
CPU Register File Hierarchy - דוגמה לשילוב
במעבדת ה- x86 או ARM מודרנית, ההיררכיה של הרישום בולטת במיוחד.קובץ הרישום האדריכלי (למשל, 16 או 32 רישומים למטרות כלליות) הוא רק קצה הקרחון:
- (ב) ,0) קובץ רישום פיזי (PLT:1): מכיל הרבה יותר רישומים מאשר סט האדריכלי לתמוך לרשום renaming.זהו מערך SRAM גדול ורב-מכיר יושב בלב ה- CPU.
- (ב) ,0) ,Retirement file: 1lor: חנויות המדינה האדריכלית מחויבת למעטים מדויקים.
- (ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- (FLT:0) רישומים מיוחדים למטרות מיוחדות (FLT:1): כגון רישום בקרה (CR0-CR4), רישום פלח, רישומים ספציפיים מודל (MSRs), ורשומות debug.
כל אחד מהקבצים או הבנקים האלה תופס רמה שונה בהיררכיה, עם דפוסי גישה נפרדים, תקציבי חשמל, ומגבלות עיצוב.קובץ הרישום הפיזי, למשל, עשוי להיות מאות ערכים הנגישות על ידי מספר רב של יציאות ביצוע - אופטימיזציה עיצובית היא קריטית לביצועים של CPU.
שיקולים עבור בנקי רישום היררכיים
יצירת היררכיה בנקאית יעילה דורש מחשבה זהירה במספר תחומים.
כתובת וזיכרון Mapping
ברוב ה-SoCs, רישומים הם ממפת זיכרון - הם מופיעים ככתובות ספציפיות במרחב הכתובות של המערכת.ההיררכיה מפשטת את כתובת הקידוד: כל תת-מערכת מקבלת טווח כתובת מגובש, ובטווח זה, בנקים מקומיים מקודדים באופן מקומי.זה מקטין את גודלו ומורכבותו של הכתובת העולמית.
לדוגמה, באדריכלות האוטובוסים המתקדמת של מיקרובקר (AMBA) AXI או AHB קישורים, כל ממשק עבדים תואם לבנק רשום.מפת הכתובת מוגדרת בזמן האינטגרציה, וההיררכיה מבטיחה שרק הבנק הרלוונטי מגיב לעסקה.
כוח ושטח סחר
רמות היררכיה שונות יש תכונות שונות מאוד של כוח ואזור:
- (FLT:0) בנקים מקומיים, ראט" 1: קטן, מהיר, אבל מקרים רבים על פני השבב.כל מקרה צורב שטח ודליפה כוח. כי הם קטנים, שטח לבנק הוא נמוך, אבל האזור המצטבר יכול להיות משמעותי אם בשימוש יתר על המידה.
- (FLT:0) הבנקים הגלובליים של LT:1; גדול יותר, איטי יותר, אבל רק כמה מקרים.הם חייבים להיות ממוקמים במקומות בעלי יכולת נמוכה עם שעון חזק וחלוקה כוח דינמי נשלט על ידי החוטים ארוכים המחברים לבקשות שונות.
- (FLT:0) בנקים במערכת החינוך: ביניים בגודל ובמספר.הם מאפשרים חשמל סלקטיבי - תחום הכוח של תת-מערכת יכול להיות סגור לחלוטין כאשר לא בשימוש.
מעצבים לעתים קרובות לדמות תבניות פעילות כדי להחליט אילו רישומים שייכים באיזו רמה. רשם גישה לעתים קרובות (למשל, פסיקת רישום סטטוס) ניתן להציב בבנק מקומי מהיר, בעוד אלה נגישים לעתים רחוקות (למשל, ניגודי שגיאות) יכול להיות בבנק העולמי איטי יותר כדי לחסוך כוח.
שעון דומיינים וסינכרון
כאשר רישומים בתחומים שונים של השעון צריכים לתקשר, המבנה ההיררכי חייב לכלול מנגנוני סינכרוניזציה. גישה נפוצה היא קבוצה של כל הרשומות בתחום השעון נתון יחד תחת אותו גשר אוטובוס.הגשר מטפל במעבר השעון (CDC) באמצעות מעבדי דואר כפול או שרשראות סינכרון של סינכרון.משום דומיינים על פני שטח יכול לגרום לבעיות של יכולת עמידה וחרקים.
יישום מעשי ב- Chips Commercial
הבנת ההיררכיה מופשטת היא קלה יותר עם דוגמאות קונקרטיות ממשפחות שבב אמיתיות.
ARM Cortex-A Series (Application Processors)
מעבדי ARM משתמשים באופן נרחב ברישום מערכת הזיכרון-מפות.The FLT:0 ,System Control BlockcioFLT:1 (SCB) מכילים רשומות תצורה גלובלית עבור צ'יפים, אנדונציה ותזמון המערכת.לכל ליבה יש יחידת בקרה משלה ו ניטור ביצועים עם רישומים מקומיים.המפקח הבין-פעמי ג'נרי (GIC) הוא תת-מערכת עם הבנק שלה עבור רישום משלו עבור רישום ותיקון של מסמכים של RMIPOST.
(ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
RISC-V Platforms
העיצוב המודולארי של RISC-V מעודד בנקים רושמים היררכיים.בסיס ISA מגדיר 32 רישומים למטרות כלליות (x0-x31) כבנק מקומי בכל hararchic. Machine, מפקח ורמות זכויות למשתמש לכל אחד יש את השליטה והמעמד שלהם (CSRs) גישה באמצעות הוראות קריאה ייעודיות / כתב, ו- CSR address הוא מחולק על ידי פונקציות רבות של ICC-O (מקלטים) עם גירסאות אלה עם הגדרות אבטחה ו-CDC-CDC-S.
◄ [13] ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
x86 (Intel Core / AMD Zen)
מעבדי x86 יש אולי את ההיררכיה העמוקה ביותר.הרישום של Machine Specific (MSRs) יוצרים מרחב גדול ושטוע שזמין באמצעות הוראות RDMSR/WRMSR – אלה יכולים להיחשב כמקלטים גלובליים לתצורה ולעקוב אחר כל ליבה יש עקרונות מתקדמים מקומיים של פיקוח אינטררופט (APIC) לרשום בנק.
⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
יתרונות ומגבלות של בנקי רישום היררכיים
הגישה ההיררכית מציעה יתרונות ברורים, אך יש לה גם חסרונות.
יתרונות
- (FLT:0SpeedFeloph:1) : רישומים מקומיים מספקים את השקיפות הנמוכה ביותר, לעתים קרובות להתאים את שעון הצינור של יחידת התפקוד.
- (FLT:0)ScalabilityofLT:1: הוספת תת-מערכות חדשות לא דורשות עיצוב מחדש של שטח הרישום העולמי - כל בלוק חדש מקבל את חלון הכתובת שלו ואת הבנק המקומי.
- (FLT:0) PowerיעילותFLT:1: סוביסט ובנקים מקומיים יכולים להיות נחקרים על ידי השעון או על ידי כוח-העוצמה באופן עצמאי, צמצום כוח דינמי וסטטי.
- (FLT:0)עיצוב מודולריות FLT:1: ניתן לפתח בלוקים IP עם בנקים רשומים משלהם ולאחר מכן משולב עם תיאום גלובלי מינימלי, כל עוד מפת הכתובת מכובדת.
- (FLT:0) מכילות המכילות את ה-FLT:1: A Problem in a Local Register Bank (למשל, בשל שערורייה חד-משמעית) בדרך כלל רק משפיע על תת-מערכת, מה שהופך עיצובים לא-סובלניים (למשל, ECC על רישום קריטי) קל יותר ליישם.
הגבלות
- (ב) ⁇ :0) ,המורכבות המשחררת של ה-FLT:1: הכתובת מעוותת ולוגיקה בוררות האוטובוס צומחת עם מספר הבנקים.
- (FLT:0) גישה לעקביות וריאציות FLT:1: תוכנה חייבת להיות מודעת לכך שגישה לרישום עולמי עשויה לקחת מחזורים רבים בהשוואה לרישום מקומי - קריטי עבור מערכות בזמן אמת.
- (FLT:0) קושי בריג'ינג:1: ניתן לאתגר את האפשרות של מעבר לרמות היררכיות על פני רמות היררכיות בעת ניסיון לבודד באגים.החומרה של הארדware debug (למשל, שרשראות סריקות מבוססות JTAG) יש לתכנן לקרוא כל בנק באמצעות ההיררכיה.
- (FLT:0) מוקרן שטח רישום ממפה: ב-SoCs גדול מאוד עם מאות בלוקים, שטח הכתובת הנדרש עבור כל הבנקים הרשומים יכול להפוך גורם מגביל, במיוחד אם רוחב האוטובוסים מוגבל (למשל, שטח כתובת 32 סיביות).
מסקנה
המבנה ההיררכי של בנקים רשומים הוא דפוס אדריכלי בסיסי שבבים מורכבים מודרניים.מתצורה גלובלית רושם נגיש למערכת כולה למטה לקבצים מקומיים רשומים צינורות ביצוע, היררכיה זו מאפשרת את הביצועים, יעילות הכוח, ואת הדרגתיות כי הביקוש של היום של מהנדסים להבין הארגון הזה יכול לקבל החלטות טובות יותר במהלך עיצוב שבב, פיתוח תוכנה ושילוב מערכת.