הבנת Shadowing and its Advantages in Embedded Systems

צללים רשומים היא טכניקה בסיסית בעיצוב של מערכות משובצות אמינות ובטוחות.זה כרוך בשמירה על עותק תוכנה & #8212; "צל" & #8212; של רישום חומרה כך המערכת יכולה לתפעל, לאמת, לפקח על מצב חומרה קריטי ללא גישה שוב ושוב לרמות הפיזיות. גישה זו מפחיתה את הסיכון של שחיתות מקרית, תומכת בהתנהגות דטריסטית, ומאפשרת זיהוי מתוחכם ושיקום, כמו גם מערכות מורכבות יותר, כמו גם הגנה, כמו גם תפקוד רפואי, כמו גם מנגנונים קריטיים, כמו גם מנגנונים קריטיים, כגון תפקודים, כמו גם מנגנונים קריטיים, כמו גם מנגנונים קריטיים יותר ויותר קריטיים, כמו גם מנגנונים קריטיים של תפקודים של תפקודים, כמו גם מנגנונים קריטיים, כמו גם מנגנונים קריטיים יותר, כמו גם מנגנונים קריטיים של תפקודים של תפקודים של תפקודים של תפקודים, כמו גם מנגנונים קריטיים, כמו גם מנגנונים קריטיים, כמו גם מנגנונים קריטיים יותר, הגנה יעילה יותר, כמו גם מנגנונים קריטיים של תפקודים של תפקודים, כמו גם מנגנונים חיוניים יותר, כמו גם הגנה יעילה יותר, כמו גם הגנה יעילה יותר ויותר, כמו גם מנגנונים קריטיים, כמו גם הגנה יעילה יותר ויותר, כמו פונקציות אבטחה

מה זה Shadowing?

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

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

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

איך זה מת ממראה וביופרינג

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

היתרונות של Shadowing

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

בטיחות מוגברת

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

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

הגדלת אמינות

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

לדוגמה, בקר ממשק רשת (NIC), צל של נקודת זנב של משדר ניתן להתאים נגד רישום חומרה לאחר ניתוח DMA להשלים. A mismatch עשוי לסמן כי מנוע DMA לא ממש לעדכן את המצביע, המאפשר התוכנה להתאושש על ידי תיקון תור הדגד ולא לאבד חבילה.

תגובה מהירה יותר

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

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

דיון מפוכח

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

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

המונחים

צללים אפקטיבי דורש עיצוב זהיר כדי להימנע מלהציג מצבי כישלונ חדשים.יש לטפל בהיבטים הבאים:

סינכרון לאחר איפוס ו Faults

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

אטומיות ויציבות

בעת עדכון רישום המשתרע על פני רוחב אוטובוס מרובים (למשל, 32 סיביות להירשם באמצעות אוטובוס 16 סיביות), יש לבצע את הכתיבה לצל באופן אטומי יחסית לכתיבה החומרה.

בקרת גישה

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

ביצועים Overhead

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

הפרקטיקה הטובה ביותר

אימוץ הפעולות הבאות ימקסם את הערך של רישום צללים תוך צמצום הסיכונים הקשורים.

  • (FLT:0) עדכן את הצל מיד לאחר כל שינוי רישום חומרה.ראה.FLT 1:1 זה מבטיח הצל נשאר השתקפות מדויקת של המדינה המיועדת.כל עיכוב מציג חלון של אי-יציבות שניתן לנצל על ידי אשם. השתמש פונקציה אחת או מקרו כותב גם את הצל ואת רישום החומרה בסעיף קריטי.
  • (FLT:0) פעולות אטומיות עבור רישום רב מילים.Build.of.com; 1 אם רישום צורך שתי כתובות מקודמות זיכרון, השתמש בעסקה אחת (למשל, עומס 64 סיביות / בית על 32 סיביות CPU) או הפרעות בלתי ניתנות להפרעה במהלך רצף הכתיבה.
  • לאמת באופן רשמי את שלמות הצללים.FreaLT:1 [במשימה רקע פרטי, לקרוא את רישום החומרה ולהשוות אותם עם עותקים הצל.כל אי התאמה צריך להיות מחובר, ואם יש צורך, להפעיל פעולה תיקון (למשל, לשכתב מחדש את ערך הצל לחומרה). תקופת אימות חייב להיות קצר יותר מאשר את הכדאיות הצפויה הנדרשת על ידי רמת הבטיחות.
  • (FLT:0) הגבלות גישה לצמצום הגישה להגבלות.FLT:1hil השתמש ב- MPU או רשימת בקרת תוכנה כדי להגביל אילו מודולים קוד יכולים לשנות כל רישום צל.נהגים צריכים לחשוף API המבודד את ההיגיון של עדכון הצללים, למנוע מניפולציה ישירה.
  • (FLT:0)Consider חומרה-sted Shadowing.Build.ph.1 חלק מהמיקרו-בקר מציעים "רשומות הצללים" ייעודיות בחומרה עבור חומרים קריטיים (למשל, תצורת שעון) אלה מספקים את אותם היתרונות עם אפס תוכנה מעל לסנכרון.

אתגרים ומסחר

בעוד שרישום הצללים מועיל, אין מדובר בכדור כסף.יש לשקול אתגרים רבים נגד היתרונות:

  • (ב) טביעת רגל מזכרת:0) Shadowing Every Register in a Complex peripheral יכול לצרוך זיכרון RAM משמעותי.In Deep משובצ במערכות עם רק קילביות של RAM, ראש זה עשוי להיות בלתי נמנע.
  • (ב) ,0) ביטול המורכבות של קוד: FLT:1 כל רישום הופך לעסקה רב-שלבית.זה יכול לגרום לנהגים להיות קשים יותר כדי לשמור יותר נוטה באגים אם לא מופשט כראוי.
  • (FLT:0) תופעות הלוואי של התזמון: ההרחבה 1 (אם רישום החומרה הוא חסר רגישות לקריאה (למשל, ניקוי של הפרעה חד-פעמית), שגרת עדכון הצללים עשויה לקרוא באופן בלתי נמנע את החומרה, גרימת אובדן שקט של אירוע.התפקיד העדכון חייב רק לכתוב לרישום החומרה, לעולם לא לקרוא אותו, אלא אם כן שימוש במונחי קריאה נפרדים.
  • (בהקשר:0) חוסר יכולת בהפרעה: FLT:1 אם מפריעה משנה את רישום החומרה ישירות (ללא לעבור את הצל), הצל יהיה יוצא מן התאריך.זה נפוץ כאשר חומרה באופן אוטומטי מנקה מצב מעט לאחר הפרעה.

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

יישומים אמיתיים

יחידות בקרת מנוע רכב (ECUs)

ECUs לנהל עשרות פועלים וחיישנים באמצעות אוטובוסים CAN ו- FlexRay. Scelowing משמש עבור רישום התזמון המנוע. צל לא תואם יכול לזהות כתב מושחת שנגרם על ידי מתח קבוע, המאפשר ECU לגרום למצב Limp-home ולא הפסקה מלאה. תקן ISO 26262 מעודד כל כך זיהוי עבור רמות ASIL-C ו-ILDIL.

מכשירים רפואיים

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

מערכות בקרת טיסה אווירית

מערכות Fly-by-wire המשתמשות ב Redundancy משולשת-מתונים עדיין יכולות ליהנות מרישום הצללים בכל נתיב.גם עם שלושה נתיבים, פגם חולפת ברישום נתיב אחד יכול לגרום להסכמה.הצל מאפשר לנתיב המקומי לזהות את השגיאה ולאפס את הרישום מבלי לערב את המצביע.זה משפר את זמני הפחתת ניתוק.

טכניקות חלופיות ושותפות

צללים רשומים משולבים לעתים קרובות עם שיטות אמינות אחרות:

  • (FLT:0) תיקון קוד (ECC) באוטובוס הרישום: ECC יכול לתקן שגיאות חד פעמיות ברישום החומרה, אך לא ניתן להגן מפני באגים תוכנה שכותבים את הערך הלא נכון.
  • (FLT:0)קרא-back לאחר כתיבת: FLT:1ir במקום צל, תוכנה יכולה לקרוא את רישום החומרה לאחר כל כתיבת ואמת הערך.זה צורכת יותר רוחב פס אוטובוס ועשוי לשנות את מצב הרישום אם הקריאה יש תופעות לוואי.
  • (FLT:0) כלבי השמירה של ה-Hardware המנטרים את השלמות: ⁇ FLT:1 לחלק מה-SoCs יש בודק יושרה חומרה המשווה מעת לעת את רישומי הצל (המונעים להשוואה ייעודית) נגד מצב החומרה.

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

מסקנה

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

(ב) לקריאה נוספת על ניהול רישום חומרה ועיצוב מוטמעים לא יסולא בפז, להתייעץ עם ה-FLT:0ARM אדריכלות מדריך הפניה של CPU 1 עבור טיפול ברישום ברמת CPU, או עם ה-FLT:2 ISO 26262 כלי רכב פונקציונלי בטיחות פונקציונליים סטנדרטיים סטנדרטיים סטנדרטיים בטיחות סטנדרטיים סטנדרטיים תקן בטיחות פונקציונליים:5 סיקור אבחון נוסף על יישום מעשי ניתן למצוא במאמר לבן של תוכנת LT:4 SoftwareSafe Software for Embedd Systemsed: