ما را در شبکههای اجتماعی دنبال کنید:
بررسی چالشهای موثر در ایمنی سیستمهای مدرن اویونیک
طراحان سیستمهای هوافضا و اویونیک همواره به دنبال پردازشهای محاسباتی بزرگتر و در عین حال با سختافزار کوچکتر، وزن کمتر و توان مصرفی پایینتر (SWaP) هستند. از اینرو در سالهای اخیر طراحان اویونیک سعی بر یکپارچهسازی سیستمها دارند. بنابراین سیستمهای موجود را از دستگاههای پردازنده گسسته به دستگاههای چند هستهای روی یک تراشه (SoC) منتقل کردند. این مسیر موجب یکپارچگی بیشتر سیستمهای اویونیک و به مراتب هماهنگی بیشتر سختافزار و نرمافزار تجهیزات هواپیماها شده است. اما با وجود ارائه کارایی مورد نیاز توسط فناوری SoC، چالشهایی نیز پیش روی طراحان ایجاد میشود. در ادامه با برخی از این چالشها آشنا خواهیم شد.
قطعیت
در حملونقلهای هوایی، معمولا ایمنی افراد به قابلیت اطمینان و اعتماد سیستمهای اویونیک بستگی دارد. در نتیجه این سیستمها باید همانطور که انتظار میرود همواره به خوبی اجرا شوند. برای مثال اجرای هر کاری در سیستم باید قابل پیشبینی و هربار که اجرا میشود، تکرارپذیر باشد. به عبارت دیگر عملیات سیستم باید قطعی و معین باشد. یکی از معیارهای قطعیت پارامتر زمان است. به این صورت که کارها باید در یک بازه خاصی از زمان اجرا شوند. اما در یک SoC چند هستهای با منابع مشترک، اگر کنترلی صورت نگیرد، نتایج میتواند غیرمنتظره و غیرقابل پیشبینی باشد.
نسلهای پیشین معماریهای اویونیک میتوانست فرآیندها یا وظایفی که سیستم را تشکیل میدهند، جدا کند. برای مثال یک دستگاه پردازنده خاص با حافظه اختصاصی خود ممکن بود تنها موظف به برقراری ارتباط با دنیای خارج باشد. تقسیمبندی این عملیات با یک SoC چندهستهای به شدت دشوار است اما از آنجا که در سیستمهای مبتنی بر SoC به طور طبیعی منابع به اشتراکگذاشته میشوند، از لحاظ SWaP کاملا مفید است. منابع اختصاصی اغلب بیکار هستند و در عین حال هزینهها، اندازه، وزن و توان مصرفی را افزایش میدهند. امروزه معماریهای مبتنی بر SoC از فواید اشتراکگذاری منابع و استراتژیهای مجازیسازی برای به حداقل رساندن SWaP و بهینهسازی عملکرد سیستم استفاده میکنند. یکی از چالشهای مربوط به مجازیسازی، افزایش پیچیدگی سیستم و تاثیر آن بر قطعیت است.
از دیگر عواملی که موجب عدم قطعیت میشود، افزایش اندازه و پیچیدگی نرمافزار درحال اجرا روی سیستمهای اویونیک است. همانند عناصر سختافزاری که در یک SoC، یکپارچه شدهاند، عناصر نرمافزاری جدا از هم نیز باید در پایگاه دادههای کدگذاری چندرشتهای بزرگ درآمیخته شوند. در بسیاری از موارد نرمافزارهای بزرگ در سیستمهای اویونیک امروزی نیاز به منابع حافظه خارجی معمولا به شکل حافظه DDR خواهند داشت. در این شرایط این مسئله مطرح میشود که چه روش و معماریهایی برای ترکیب حافظههای پنهان (Cache)، حافظه اشتراکی و حافظه خارجی مناسب است تا سیستم بتواند نیازهای عملکردی و عملیاتی آن را برآورده کند.
سطوح مختلف از یک معماری پنهان
اگرچه حضور حافظه پنهان در معماری سیستم روش جدیدی نیست اما بر قطعیت سیستم تاثیر خواهد داشت. در صورت استفاده از این روش باید از استقرار هرگونه اطلاعات مهم یا کد در حافظه پنهان یا حافظه SRAM داخلی تراشه مطمئن شد. در این حالت باید از حفظ متوسط توان عملیاتی یا عملکرد سیستم اطمینان داشت. در غیر صورت اگر رویداد ناخوشایند یا غیرمنتظره رخ دهد، پردازش وظایفی که اولویت کمتری از ماموریتهای حیاتی دارند، کند خواهد شد و اجرای آنها غیرقابل پیشبینی میشود.
علاوه بر این هنگامیکه چند کار روی پردازنده چندهستهای اجرا میشود، هر یک از کارها ممکن است به حافظه DDR مشترک دسترسی داشته باشد و دادههای حیاتی را به صورت محلی ذخیره کند. در چنین مواردی کارها باید به درستی و مجزا از هم تفکیک شوند تا اجرای هر کاری روی اجرای کارهای دیگر تاثیر نگذارد.
یکی دیگر از نکات مربوط به ارائه حافظه پنهان، وابستگی و ارتباط دادهها است. برای دادههایی که توسط هستههای مختلف یا بین یک هسته و دستگاه جانبی به اشتراک گذاشته میشوند باید از دیگر مکانیزمهای اشتراکگذاری به منظور حفظ وابستگی و ارتباط دادهها استفاده کرد. به طور کلی این رویکرد برای قطعیت و عملکرد سیستم مفید است.
درحالیکه اثرات نرمافزار و حافظه پنهان بسیار مورد توجه هستند اما تمرکز ویژه روی پیچیدگیهای یکپارچگی SoCهای امروزه بسیار مهم است. برخی از پیچیدگیهای ادغام میتواند با مجازیسازی مدیریت شوند اما همزمان در نظر گرفتن شرایطی برای داشتن قطعیت سیستم نیاز است. مجازیسازی اجرای وظایف در پردازنده چندهستهای اغلب از فضاهای حافظه مشترک که خود نیز مجازی شده است، استفاده میکند. به عنوان مثال ممکن است دو کار روی دو هسته متفاوت اجرا شوند و از طریق فضای حافظه یکسان ارتباط برقرار کنند. در واقع دو مکان فیزیکی متفاوت در حافظه برای هر یک از کارها اختصاص داده میشود.
حذف تداخل
یکی دیگر از مسائل و چالشهای مربوط به طراحان سیستمهای اویونیک، حذف یا محدود کردن تداخل پردازش بین کارها روی پردازنده چندهستهای است. اگر چه این موضوع متمایز از قطعیت است اما تداخل میتواند بر درجه قطعیت در سیستم تاثیرگذار باشد. درواقع معمولا قطعیت بر اساس عملکرد سیستم تعریف میشود، اما تداخل بر یکپارچگی داده برای استفاده در سیستم تاثیر میگذارد.
یک مثال از تداخل زمانیست که دو کار به طور همزمان روی هستههای مشابه یا متفاوت اجرا میشوند و هر دو به یک فضای حافظه مشابه دسترسی دارند. یک کار ممکن است برای ایمنی اپراتور انسانی بحرانی و مهمتر باشد در حالیکه دیگری یک کار معمول است. در چنین مواردی اگر اجرای کار معمول مانع از اجرای کار مهم و بحرانی شود، کار معمول نباید قادر به تغییر محتوای حافظه مشترک باشد. در چنین شرایطی واحدهای مدیریت حافظه (MMU) یا واحدهای محافظت از حافظه (MPU) میتوانند برای محدود کردن دسترسی به آدرسهای حافظه برنامهریزی شوند.
بسیاری از SoCها در سیستمهای اویونیک ناهمگون هستند و از انواع مختلف هسته پردازش با معماری مجموعه دستورالعملهای (ISA) اختصاصی خود بهره میبرند. در واقع میتوان گفت پردازندههای متفاوت، دستورالعملهای متفاوتی دارند که در قیمت و سرعت و … آنها تأثیرگذار است. این مجموعه دستورالعملها توسط شرکتهای سازنده ریزپردازندهها، در داخل آنها تعبیه میشود. معماری مجموعه دستورالعمل یا ISAشامل ثباتهای یک پردازنده به اضافه مجموعه دستورالعملهای آن پردازنده است؛ بنابراین وقتی دو پردازنده دارای ISA یکسانی باشند، توانایی اجرای کدهای برنامههای یکسان را دارند.
در طول عملیات سیستم، یکپارچگی هر یک از هستهها میتواند وابسته به یکپارچگی تمام هستهها یا یکپارچگی یک یا چند مجموعه از هستهها باشد. اغلب پیکربندی MMU برای یک هسته یا مجموعهای از هستهها با ISA مشابه به سادگی و بدون تداخل کارها انجام میشود. اما این روش در دستگاهها با هستههای ناهمگن که ممکن است ISA متفاوتی داشته باشند، یک چالش بزرگ است. برای کاهش هر چه بیشتر مشکل، طراحان باید در مرحله انتخاب قطعات و دستگاهها، توجه ویژهای به سازگاری آنها داشته باشند.
چارچوب نرمافزار
عملکرد محیطی
اثرات محیطی واقعا یک چالش جدید برای عملیات قطعی نیست؛ با این وجود با افزایش یکپارچگی در سطح SoC اجزای بیشتری در یک ناحیه کوچک بستهبندی میشوند و بدون بررسی این تاثیرات بررسی قطعیت کامل نخواهد شد. عملکرد محیط یا چگونگی عملکرد سیستمهای اویونیک تحت شرایطی مانند حداکثر درجه حرارت (دما) در ارتفاع بالا و همچنین رویدادهای تابشی برای اطمینان از قابلیت اعتماد و پایداری سیستم بسیار مورد توجه است. همچنین دمای اتصال تمام دستگاههای نیمه هادی از جمله SoC باید ارزیابی شود. علاوه بر این اثراتی که شرایط مختلف شکست مانند آشفتگی، قطع گیت و سوختن را ایجاد میکنند، باید روی قطعیت سیستم بررسی و رفع شود. برای مثال یک رویداد تابشی ممکن است یک بیت در حافظه یا وضعیت یک گیت منطقی را تغییر دهد. در این شرایط قابلیتهای محافظتی اضافه مانند کد تصحیح خطا با اینکه SoC توانایی پردازش با حداقل کردن SWaP را برای طراحان سیستمهای هوافضا و اویونیک فراهم میکند، اما چالشهایی را به همراه دارد. معماریهای سیستمهای قدیمی میتوانند با جداسازی عناصر عملیاتی و دیگر منابع روی دستگاههای نیمه هادی گسسته بر این چالشها غلبه کنند. اما سیستم روی تراشه چنین امکاناتی را فراهم نمیکند، زیرا آنها از منابع مشترک و هستههای پردازش چندکاره بهره میبرند. در بین نگرانیهای اصلی برای توسعهدهندگانی که سیستمهای اویونیکی مبتنی بر SoC را طراحی میکنند، قطعیت سیستم، حذف تداخل موثر روی یکپارچگی داده، عملکرد و قابلیت اطمینان سیستم در شرایط محیطی شدید از اهمیت بسیاری برخوردار است. همه این مسائل میتواند به طور موثر در سیستمهای مبتنی بر SoC از طریق ابزارهای مختلف از جمله فضای قوی و پارتیشنبندی زمانی، روشهای مختلف هماهنگی در سطح گسترده نظیر ISA و طراحی قابلیتهای محافظتی اضافه برای غلبه بر وقایع پیشبینی نشده حل شوند. [1] error correction codeجمعبندی