ما را در شبکههای اجتماعی دنبال کنید:
استفاده از پردازنده چندهستهای در سیستمهای اویونیک تجاری
امروزه به لطف پیشرفتهای نرمافزاری و سختافزاری، تولیدکنندگان میتوانند تا 10 هزار حسگر را روی یک بال هواپیما قرار دهند. از این طریق مجموعه واحدهای کنترل زمینی میتوانند علاوه بر بررسی ایمنی هواپیما، مصرف سوخت را نیز کاهش دهند. یکی از مهمترین عوامل این پیشرفتها، دستیابی به راهکارهای نرمافزاری جدید و استفاده از پردازشگرهای چندهستهای است.
اولین گواهینامههای صادر شده برای سیستمهای نرمافزاری اویونیک، مربوط به تجهیزات یکپارچهای بودند که روی پردازندههای تکهستهای میزبانی میشد. اما با رشد سریع پردازش چندهستهای در صنایع مختلف از جمله رایانهها و تلفنهای همراه هوشمند، مهندسان به فکر استفاده از این فناوری در صنایع هوایی افتادند. بخش هوانوردی نظامی خیلی زود توانست از قابلیتهای خاص این فناوری در هواگردهای مختلف و بهطور ویژه در هواپیماهای بدون سرنشین استفاده کند. اما ورود این پردازندهها به عرصه هوانوردی تجاری به دلیل مباحث صدور گواهینامه ایمنی پرواز با تاخیر انجام شده است.
چالشهای پیش روی صنعت هوایی در استفاده از تراشههای چندهستهای
معماریهای چندهستهای با وجود کارایی بالا در برنامههای کاربردی چندمنظوره، برای استفاده در سیستمهای ایمنی- بحرانی چالشهایی را پیش رو دارند. برنامههای اویونیک اغلب نیازمندیهای خاصی از جمله ایزوله بودن و جبرگرایی دارند. این درحالی است که چنین مواردی جزو ملاحظات شرکتهای نیمههادی در هنگام طراحی یک پردازنده چندهستهای نیست. تحقیقات انجام شده توسط دانشگاهها، صنعت اویونیک و مراجع صدور گواهینامه نشان میدهد که بین طراحیهای پردازش چندهستهای تفاوتهایی وجود دارد. این تفاوتها میتواند به دلیل اثربخشی در ایزوله بودن و جبرگرایی، بر قابلیت استفاده از آنها در برنامههای اویونیک تاثیرگذار باشد. در ادامه این بخش به برخی از چالشهای مهم استفاده از پردازندههای چندهستهای در سیستمهای اویونیک اشاره میکنیم.
- استفاده مشترک از منابع
برای دستیابی به کارایی بالا، طراحیهای پردازندههای چندهستهای از اشتراکگذاری منابع روی یک دستگاه استفاده میکنند. برای مثال هستهها ممکن است از کنترلکننده حافظه، گذرگاه داده یا حافظه کش سطح 2 بهطور مشترک استفاده کنند (شکل 1). در نتیجه، اجرای چند برنامه در هستههای مختلف و بهطور همزمان خطر انسداد منابع را ایجاد کرده و ممکن است منجر به تداخل هستهها شود. همچنین استفاده از چند هسته برای اجرای برنامهها، تحلیل رفتار و بررسی بدترین زمان اجرای (WCET[1]) برنامهها را پیچیده و دشوار میکند.
شکل 1- معماری حافظه چندهستهای با اشتراکگذاری حافظه کش سطح 2
افزایش سطح تلفیق در پردازندههای چندهستهای SoC باعث یکپارچهسازی اجزای بیشتری شده که در نهایت منجر به ساده شدن طرح برد نهایی و کاهش تعداد اجزای روی آن میشود. اما این میتواند باعث افزایش پیچیدگی تعاملات و ارتباطات داخلی تراشه برای استفاده از رابطهای جانبی توسط هستههای پردازشگر شود. تحلیل سختافزاری این تعاملات وابسته به امکان دسترسی به اطلاعات طراحی اختصاصی تراشه از سوی شرکت تولیدکننده است. در صورت در دسترس نبودن این اطلاعات، ممکن است درک کامل رفتار دستگاه غیرممکن باشد.
- تطابق با الزامات ایمنی و امنیتی
سیستمهای میزبان از برنامههای نسل جدید اویونیک نیاز به استفاده از اقدامات ایمنی با قابلیتهای امنیتی قوی دارند. این سیستمها نباید جان انسانها را در معرض خطر قرار داده و در عین حال باید به گونهای طراحی شوند که از جهان خارج آسیبپذیر نباشند. پیچیدگی معماری امنیت چندسطحی و مشخصات راهکارهای چندهستهای نیازمند استفاده از لایههای نرمافزاری چندگانه است.
برای یک سیستمعامل بلادرنگ، این پیادهسازی اغلب به شکل پارتیشنبندی زمان و فضا است که با استفاده از واحد مدیریت حافظه، مجازیسازی سختافزار، نرمافزارهای قطعی و همچنین ارتباطات محض اجرا میشود. به منظور اثبات جدایی برنامهها، آنها باید روی پارتیشنهای مختلف اجرا شوند. در این صورت آنها میتوانند بهطور مجزا و بدون تاثیرگذاشتن روی سایر بخشهای سیستم بروزرسانی شوند.
شکل 2- معماری اویونیک ماژولار یکپارچه با نسخه چندهستهای VxWorks 653
- چرخه زمان توسعه
شرکتهای تولیدکننده تجهیزات اویونیک اغلب با فشار اجرای طرحها در کمترین زمان مواجه هستند. تبدیل طراحیهای ساده یک سیستم با طراحی پیچیده مبتنی بر پلتفرمهای چندهستهای نسل آینده ممکن است فرایند توسعه سیستم را طولانی کند. در اینجا راهکارهای تجاری مرسوم در بازار (COTS) نقش مهمی در کاهش ریسک توسعه سیستم بازی میکنند.
- توان مالی
داشتن چند سطح متفاوت بحرانی و هستههای مختلف برای برنامهها و از طرف دیگر رعایت استانداردهای ARINC 653 و DO-178C نیازمند صرف زمان و هزینه زیادی است.
- مدارک صدور گواهینامه
بهطور کلی هنوز یک عدم قطعیت در انتخاب پردازندههای چندهستهای برای برنامههای اویونیک وجود دارد، زیرا هیچ سیاست رسمی در مورد صدور گواهینامه برای برنامههای چندهستهای منتشر نشده است. برای سیستمهای چندهستهای، اداره هوانوردی فدرال (FAA) استانداردهای سختگیرانهای همچون DO-178C یا DO-297 را ملاک قرار داده است و اسنادی مثل CAST-32A را منتشر کرده است. سند CAST-32A اهداف 10 گانهای را در رابطه با طرحریزی، استفاده از منابع و مدیریت خطا و نرمافزار تعریف میکند.
برنامه شرکت کالینز برای استفاده از پردازندههای چندهستهای در سیستمهای اویونیک تجاری
شرکت راکول کالینز را میتوان از پیشتازان توسعه سیستمعامل چند-پارتیشنی دانست که اجازه اجرای ایمن چند تابع با سطوح تضمین طراحی مختلف (DAL[2]) را روی یک تک پردازنده میدهد. این فناوری توسط کالینز به سطح بلوغ خود رسیده است و تاکنون روی چند نوع هواپیمای نظامی و تجاری مورد استفاده قرار گرفته است. در دو سال گذشته این شرکت گامهای بزرگی در مسیر توسعه پلتفرمهای پردازش چندهستهای که قابلیت دریافت گواهی داشته باشند، برداشته است. این پلتفرمها توانایی اجرای کامل چند تابع با ترکیبی از سطوح تضمین ایمنی را روی هستههای مختلف یک پردازنده SoC (سیستم روی تراشه) دارند.
این پروژه کالینز را میتوان یک گام بلند به سوی بهبود کارایی و عملکرد سیستمهای پردازشی دانست که از طریق افزایش سطح تلفیق سامانهها داخل یک دستگاه بدست میآید. کالینز بر اساس مطالعات و تجربیات آزمایشگاهی، تصمیم دارد مراحل دریافت گواهینامه برای پردازش چندهستهای را توسط پردازندههای معماری پاور Freescale/NXP QorIQ دنبال کند. این پردازندهها سطح قابل توجهی از افزایش عملکرد را فراهم میکنند. این ویژگی در حالی است که مصرف توان توسط پردازندهها افزایش نیافته و میتوانند ویژگیهای ارزشمندی را برای پشتیبانی از تلفیق امن و قطعی در همه هستهها به کاربر عرضه کنند.
- مجازیسازی
بهتر است در این قسمت ابتدا مروری کوتاه بر بحث مجازیسازی سختافزار در سیستمهای تعبیه شده داشته باشیم. مجازیسازی به ساخت نمونه مجازی و غیرواقعی از چیزهایی همچون پلتفرم سختافزاری، سیستمعامل، وسایل ذخیرهسازی یا منابع شبکه گفته میشود. ماشین مجازی به سیستمی گفته میشود که اجرای سیستم مجازی را بر عهده گرفته است. هر ماشین مجازی میتواند شامل سیستمعامل، سختافزار و نرمافزار اختصاصی خود باشد. ماشینهای مجازی، مستقل از پلتفرم سختافزاری یا سیستمعامل اولیه به فعالیت خود ادامه میدهند. این به دلیل یک لایه جدید به نام Hypervisor است. در اغلب سیستمهای مجازیساز، یک لایه جدا کننده به نام هایپروایزر (فوق ناظر) بین سیستمعامل مهمان (ماشین مجازی) و سختافزار یا منابع فیزیکی موجود حائل میشود. کار هایپروایزر ایجاد یک دید مستقل مجازی از سختافزار یا منابع است. هایپروایزر باعث میشود ماشینهای مجازی از دید یکدیگر پنهان بمانند و هر ماشین مجازی تصور کند تمام سختافزار یا منابع لازم را در اختیار گرفته است.
- انتخاب پردازنده مناسب
شرکت کالینز در سالهای گذشته یک تحقیق چند جانبه در رابطه با انتخاب پردازشگر برای پروژه خود انجام داده است. در این مطالعه که با هدف صدور گواهینامه برای حضور پردازشگرهای چندهستهای در عرصه اویونیک تجاری صورت گرفته است، جنبههایی از جمله امکان بهرهمندی از سیستمعاملهای بلادرنگ با سطح تضمین طراحی A (مطابق استاندارد DO-178C)، پشتیبانی از مجازیسازی، عملکرد شبکه در تراشه و همچنین نوع ابزار جانبی موجود در تراشه در نظر گرفته شده است.
شکل 3- بلوک دیاگرام پردازنده T2080 ساخت شرکت NXP
گروه کارشناسی کالینز در ابتدا تراشه NXP P3041 را انتخاب کردند، اما پس از اینکه شرکت NXP پردازندههای خانواده سری T خود را منتشر کرد، گروه کارشناسی ارزیابیهای خود را مجددا آغاز کرد. در نهایت این گروه تراشه NXP T2080 را به دلیل ویژگیهای بهبود یافته نسبت به خانواده سری P برای انجام برنامه خود انتخاب کرد. از جمله مزایای این تراشه نسبت به P3041 میتوان به استفاده از هسته اصلی مدل e6500، توانایی بالا در محاسبات نقطه شناور و قابلیت dual-threading بدون مصرف توان اضافی اشاره کرد.
جدول مقایسه مشخصات تراشه NXP P3041 با NXP T2080
مهمترین نیازمندیها برای یک پلتفرم ایمنی- بحرانی
شرکت کالینز نیازمندیهایی را برای یک پلتفرم ایمنی- بحرانی مبتنی بر پردازنده T2080 تعریف کرد. در ادامه به برخی از مهمترین این نیازمندیها اشاره شده است.
- پشتیبانی از چند سیستمعامل مهمان
برای کالینز مهم است که پلتفرم طراحی شده بتواند قابلیت مجازیسازی و اجرای چند سیستمعامل مهمان (Guest OS) روی ماشینهای مجازی ایجاد شده را داشته باشد. این ویژگی معماری سیستم باز به کالینز و مشتریانش در کاهش هزینههای تلفیق و یکپارچهسازی سیستم کمک زیادی میکند. چنین قابلیتی برای حذف هزینه توسعه میلیونهای خط کد منبع، جمعآوری مدارک تضمین طراحی و تهیه بسیاری از برنامههای کاربردی مهم است.
- یک پلتفرم مبتنی بر DO-178C با قابلیت تفکیک برنامههایی با سطوح تضمین طراحی (DAL) مختلف
به منظور استفاده از قابلیت بهینه اندازه، وزن و توان (SWaP) پردازنده، پلتفرم مجازیسازی باید از سطوح A تا E تضمین طراحی (در نسخههای 23، 24 و 34 مجله DAL و سطوح مختلف آن تشریح شده است) روی پردازنده خود استفاده کند. این ویژگی به هر برنامه اجازه میدهد بدون نگرانی در مورد رفتار سایر برنامهها در پارتیشنهای دیگر، بهطور کاملا ایزوله اجرا شود.
- مجازیسازی کارآمد
شرکت کالینز یک پلتفرم با قابلیت تنظیمهای بالا نیاز دارد که مزایای مجازیسازی و پیکربندی سختافزار را داشته باشد.
- پشتیبانی از رابطهای برنامهنویسی اپلیکیشن (APIs) استاندارد باز
مشتریان کالینز به پشتیبانی از استانداردهای باز همچون POSIX، ARINC 653 و FACE نیاز دارند.
- مدل کسبوکار انعطافپذیر
پلتفرم نهایی باید دارای یک مدل کسبوکار و لایسنس باشد تا بتوان از آن در محصولات مختلف (نمایشگرهای چندمنظوره، واحدهای کنترل، کامپیوترهای عملیات و غیره) و توسط مشتریان متفاوت، بدون نیاز به فعالیت خاص برای لایسنس استفاده کرد.
انتخاب سیستمعامل مناسب برای گواهینامه چندهستهای
در سال 2002 شرکت ویندریور گامهای اول برای توسعه VxWorks 653 را برداشت. این محصول مبتنی بر سیستمعامل بلادرنگ VxWorks بوده و مطابق با شاخصهای استاندارد ARINC-653 است و میتوان از آن بهطور ویژه در معماری نرمافزار اویونیک ماژولار یکپارچه (IMA) استفاده کرد. رویکرد IMA باعث شده است سامانههایی که قبلا در قالب LRU در یک معماری وابسته ساخته میشدند، اکنون به صورت برنامههای کاربردی روی سختافزار مشترک اجرا شوند. این معماری مدرن باعث بهینهسازی در وزن، اندازه و توان مصرفی هواپیما میشود و نتیجه آن کاهش آلودگی و مصرف سوخت و در نهایت صرفهجویی در هزینهها است. سیستمعامل VxWorks 653 توانایی اجرای انواع مختلفی از برنامهها را روی پارتیشنهای متفاوت دارد. این برنامهها میتوانند شامل پردازشهای ARINC 653 APEX، POSIX threads، وظایف VxWorks و/یا وظایف Ada باشند. شرکت ویندریور در واکنش به نیازمندیهای بازار، یک بسته کامل از مدارک صدور گواهینامه DO-178 بهصورت COTS را تهیه کرده است.
در سال 2014 شرکت ویندریور شروع به توسعه نسخه چندهستهای از سیستمعامل VxWorks 653 کرد. این شرکت اهداف مختلفی را از این پروژه دنبال میکرد که از مهمترین آنها میتوان به موارد زیر اشاره کرد.
- توسعه مدارک گواهینامه سطح تضمین طراحی A برای استاندارد DO-178C
- پشتیبانی از چند سطح تضمین طراحی مختلف روی چند هسته
- محدودسازی و ایزولاسیون خطا (نظارت بر سلامت)
- اجرای استاتیک پیکربندی
- توسعه برنامههای IMA منطبق بر استاندارد DO-297
- پارتیشنبندی قوی محیط برنامهها و سیستمعامل برای سهولت در بروزرسانیها و کاهش بار دریافت گواهینامه
شکل 4- امکان اجرای سیستمعاملهای مهمان و برنامههایی با سطوح تضمین طراحی متفاوت روی هستههای مختلف یک پلتفرم با نسخه چندهستهای سیستم عامل VxWorks 653
این اهداف سطح بالا باعث شده است پلتفرم چند هستهای VxWorks 653 گزینه مناسبی برای بسیاری از مشتریان در کاربردهای اویونیک و حتی محیطهای غیر ایمنی- بحرانی باشد. ویندریور برای این سیستمعامل یک هایپروایزر نوع 1 در نظر گرفته است. این انتخاب به این دلیل بوده است که هایپروایزرهای نوع 1 توانایی کنترل چند هسته پردازنده را بهصورت نظارت سبک (تاثیر کم در عملکرد سیستم) دارند. این هایپروایزر توانایی میزبانی از برنامهها و سیستمعاملهای توسعهیافته قدیمی روی پلتفرم چند هستهای را دارد (شکل 4). این قابلیت باعث میشود امکان استفاده مجدد از برنامههای قدیمی گواهیشده بدون نیاز به سفارشیسازی خاص فراهم شود. پلتفرم مجازیسازی VxWorks 653 برای جدیدترین معماریهای PowerPC، اینتل و Arm معتبر است.
تطابق با سند CAST-32A
اداره هوانوردی فدرال و آژانس ایمنی هوایی اروپا (EASA) هنوز یک سیاست یا راهنمای رسمی برای استفاده از پردازندههای چندهستهای منتشر نکردهاند. دلیل این موضوع را هم میتوان ادامهدار بودن تحقیقات برای ورود این فناوری به سیستمهای اویونیک دانست. با این وجود گروه نرمافزاری تنظیم گواهینامه FAA در سال 2016 یک سند راهنما برای پردازندههای چندهستهای با عنوان CAST-32A منتشر کرد. این سند توسط نمایندگان مراکز صدور گواهینامه در آمریکای شمالی و جنوبی، اروپا و آسیا نوشته شده است.
در سند CAST-32A تعدادی هدف تعریف شده است که یک توسعهدهنده اویونیک برای استفاده از پردازندههای چندهستهای باید آنها را برآورده کند. اهداف این سند به جنبههای ایمنی در حوزههای سختافزار، سیستمعامل، نرمافزار پلتفرم، نرمافزار برنامههای اویونیک و یکپارچهسازی سیستم اشاره دارد. بنابراین میتوان گفت این سند با یک دید از بالا، جنبههای مختلف طراحی یک پلتفرم چندهستهای را از منظر ایمنی هدف قرار داده است. ویندریور سعی کرده است در کنار برآوردهسازی نیازمندیهای استاندارد DO-178C، اهداف در نظرگرفته شده در سند CAST-32A را نیز در طراحی سیستمعامل VxWorks 653 اعمال کند.
مراجع صلاحیت پرواز نظامی نیز به دلیل نگرانیهای مشابه در مورد سیستمهای چندهستهای، به دنبال راهکارهایی برای ورود این فناوری به حوزههای مربوط به خود هستند. اخیرا شرکت کالینز در این رابطه چند جلسه با سازمانهای نظامی و دفاعی ایالات متحده داشته و توانسته است نظر مثبت آنها را در رابطه با روشهای مدنظر خود برای ورود تراشههای چندهستهای به عرصه اویونیک کسب کند.
رویکرد کالینز برای دستیابی به گواهینامه چندهستهای
شرکت کالینز یک رویکرد چند جانبه را برای رسیدن به گواهینامه ایمنی پردازندههای چند هستهای در پیش گرفته است. تلاش اصلی مهندسان این شرکت در تطابق دادن نیازمندیهای خود با ملاحظات گواهینامه و اهداف ذکر شده در سند CAST-32A متمرکز شده است. آنها از اسناد رسمی همچون DO-178C برای جزئیات نرمافزاری و DO-254 برای جزئیات سختافزاری صدور گواهینامه استفاده میکنند.
شکل 5- طرح مفهومی از معماری نرمافزار چندهستهای
مهندسان کالینز به منظور اعمال سند CAST-32A به تمام جنبههای طراحی خود، یک ماتریس تهیه کردهاند که اهداف دهگانه این سند را به فعالیتهای مختلف سختافزاری، نرمافزاری، یکپارچهسازی سیستم و همچنین جمعآوری مدارک طراحی تخصیص میدهد. همچنین 5 تحلیل بحرانی برای تایید برآوردهسازی اهداف CAST-32A در نظر گرفته شده است. این تحلیلها به این شرح هستند:
- تحلیل پیکربندی
- تحلیل کانال تداخلات
- تحلیل پارتیشنبندی
- تحلیل حافظه اشتراکی
- تحلیل خرابی
تحلیل پیکربندی روی تنظیمات بحرانی پیکربندی SoC که دسترسی قابلیتهای پردازشی را برای برنامههای کاربردی تعیین میکند، تمرکز دارد. این تنظیمات میتوانند بر عملکرد هستههای پردازشی، منابع اختصاصیافته به هر هسته، عملکرد ابزار جانبی SoC و همچنین استفاده SoC از منابع مشترک تاثیرگذار باشند. انتخاب مناسب این تنظیمات میتواند برای رسیدن به جبرگرایی و بیشینه عملکرد تراشه تاثیرگذار باشد و ایجاد تغییرات در آنها روی رفتار SoC و دورکردن آن از نیازمندیهای طراحی موثر است. تحلیل پیکربندی یک استراتژی برای محافظت از سیستم در مقابل تغییر غیرمنتظره این تنظیمات توصیف میکند.
اشتراک منابع موقعیتهای بالقوهای را برای بروز تداخلات ایجاد میکند. تحلیل کانال تداخلات میزان تاثیرگذاری تداخل را محدود میکند. شرکت کالینز آزمایشهایی را پیشبینی کرده است که میزان تاثیرگذاری هر نوع تداخل را در هنگام اجرای برنامه اندازهگیری میکند. این شرکت از ابزارهای تخصصی برای تولید سطوح بالایی از تداخلات (بیشتر از مقادیر عادی) استفاده میکند.
تحلیل پارتیشنبندی وضعیت معماری نرمافزار را از لحاظ پارتیشنبندی زمان، فضا و منابع تایید میکند. موقعیتهای بالقوهای وجود دارد که یک رویداد برنامه ممکن است موجب هدر رفتن زمان پردازشی اختصاص یافته به برنامههای دیگر شود. برای مثال یک وقفه ممکن است در زمان اجرای یک برنامه رخ دهد. طراح باید اطمینان حاصل کند که با رسیدگی به درخواست وقفه، اجرای برنامه در زمان از پیش تعیین شده خود به پایان میرسد. تحلیل پارتیشنبندی تمام رویدادهایی که روی زمان اجرای برنامهها تاثیرگذار است را مشخص و اندازهگیری میکند. نتیجه این تحلیل بهطور مستقیم در زمانبندی برنامهها هنگام فرایند یکپارچهسازی سیستم بهکار گرفته میشود.
تحلیل حافظه اشتراکی تمامی استفادهها از حافظه مشترک را مشخص کرده و اطمینان حاصل میکند که رفتار معماری نرمافزار مطابق انتظار است. ساختار دادههای اشتراکی مورد تحلیل قرار گرفته تا نشان داده شود ارتباطات قطعی تامین شده است.
تحلیل خرابی به بررسی خرابیها و مشکلات گزارش شده از سوی کارشناسان یا شرکت سازنده SoC میپردازد. مهندسان نرمافزار و سختافزار اطلاعات گزارش شده را بررسی و اقدامات لازم برای رفع و جلوگیری از وقوع اتفاق مشابه را اجرا میکنند.
در نهایت نتایج تحلیلهای ذکر شده به عنوان دادههای طراحی و با نام سند تحلیل جبرگرایی آماده میشود. این سند رفتار قطعی و جبرگرایانه سیستم نهایی را تضمین میکند.
لازم به ذکر است شرکت کالینز در اوایل سال 2019 میلادی تمامی اسناد و مدارک طراحی خود را برای FAA ارسال کرده است تا بتواند موافقت این سازمان را برای استفاده از پردازندههای چندهستهای در بخش هوانوردی تجاری کسب کند.
منابع:
https://www.windriver.com
[1] Worst-Case Executing Timing
[2] Design Assurance Levels