پردازنده چند هستهای
در یک سیستم رایانهای پردازندهی مرکزی یا CPU وظیفهی انجام دستورات را برعهده دارد. هر CPU میتواند به صورت همزمان یک تسک را پردازش کند. در گذشته کامپیوترهایی که نیاز به قدرت پردازش بالاتر داشتند از چند CPU روی یک مادربرد بهره میبردند. هر چند با این کار سیستم توان انجام چند وظیفه همزمان را داشت، اما در این حالت مصرف انرژی افزایش یافته و ارتباط بینCPUها با تاخیر قابل ملاحظهای انجام میشد. همچنین برای آنکه پردازندههای مختلف بتوانند به حافظهی RAM و دیگر اجزا سختافزاری به صورت مشترک دسترسی داشته باشند، به قطعات بیشتر از آنچه در مادربردهای معمولی استفاده میشد، نیاز خواهیم داشت که خود باعث افزایش هزینه سیستم نهایی میشد.
برای حل این مشکل تولیدکنندگان پردازنده به فکر ساخت CPUهایی افتادند که به چند هسته مجهز باشند تا هر کدام بتوانند نقش یک CPU مستقل را ایفا کرده و یک تسک را پردازش کنند. چند هستهاي بودن، فرآيندي براي بالارفتن کارايي سيستمهاي رايانهاي است.
امروزه نیازمندیهای یک هواپیما از لحاظ عملکرد و بازدهی سوخت به ازای هر مسافر رو به افزایش است. از اینرو عواملی همچون افزایش قابلیتهای جدید، تعویض سیستمهای مکانیکی با نمونه الکتریکی و همچنین بهینهسازی فضا، وزن و انرژی مصرفی هواپیما، موجب ادغام و یکپارچگی بسیاری از سیستمهای اویونیک شدهاند. کامپیوترهای تعبیهشده پایه و اساس این توسعه هستند و وظایف بیشتری را با حفظ حداقل مشخصات ایمنی انجام میدهند.
از 15 سال گذشته توابع مختلف و رایجی که در دستگاههای مجزا فعالیت میکردند، مجبور به گروهبندی در یک دستگاه شدند تا تعداد کامپیوترها در هواپیماهای جدید محدود شود. به دلایل ایمنی تاکنون پردازشگرهای تک هستهای عملیات توابع را انجام میدادند تا اینکه ایده استفاده از فناوری پردازشگرهای چند هستهای برای افزایش کارایی مطرح شد. در واقع عملکرد و کارایی پردازندههای تک هستهای فعلی که مناسب برنامههای ایمنی محور و تعبیهشده هستند، محدود است و بنابراین گروهبندی برنامهها را محدود میکند. اگر چه فناوری چند هستهای نمیتواند اطمینانی مشابه کنترلکنندههای تک هستهای را تضمین کند، اما در حال حاضر پردازندههای چند هستهای به عنوان تنها راهحل شناخته شده برای برآوردن نیازمندیهای رو به افزایش دنیای اویونیک است. همچنین معماریها و ویژگیهای خاص پردازندههای چند هستهای، قابلیتهای ایمنی که اخیرا توسعه یافتهاند را بهبود میبخشد. بنابراین انتظار میرود در چند سال آینده شاهد گسترش این فناوری در هواگردهای بزرگ و کوچک باشیم.
مروری بر معماری اویونیک
در دهه 70 میلادی سیستمهای الکترونیک هوایی بر اساس «معماری وابسته از مشخصات قوی معماری وابسته میتوان به ایزوله کردن خطاهای طبیعی و اجرای بدون دخالت توابع اشاره کرد. اما در یک معماری متمرکز اطمینان از جداسازی (تفکیک)، کاهش خطا و قابلیت اطمینان ضرورت مطلق دارد، این در حالیست که باید گروهبندی چند تابع روی تعداد محدودی از دستگاههای محاسباتی انجام شود. این معماری شامل ویژگیهایی از قبیل افزونگی کامپیوتر به صورت مستقل برای خنثی کردن اثرات مشترک، معماریها و قابلیتهای خاص پردازنده برای اطمینان از تفکیک و جداسازی برنامهها، سیستمعاملهای با کیفیت و کارا برای بهرهبرداری از مکانیزمهای سختافزاری و اطمینان از اجرای مورد انتظار است. چند سال طول کشید تا پلتفرمهای متمرکز مناسب برای اجرای برنامههایی که نیاز به بالاترین سطح ایمنی (مانند ارابههای فرود یا سیستمهای کنترل پرواز) دارند، ارائه شود. امروزه میبینیم بیشتر هواپیماهایی که در 10 سال گذشته توسعه پیدا کردهاند، بر اساس معماری IMA یا الهام گرفته از آن هستند. بخشی از موفقیت این معماری در جایگزین کردن زیرساختهای الکترومکانیکی پرمصرف و حجیم و ادغام بیشتر امکانات خلبان و ارائه قابلیتهای متمایز در تعمیر و نگهداری سیستمها است. با این وجود همچنان نیاز است تا سیستمهای اویونیکی بیشتر بهینهسازی شوند تا بتوان از فضا، وزن و انرژی برای حمل و نقل مسافران یا کالاها به صرفه استفاده کرد. با ارائه سیستمهای مبتنی بر شبکه، سیستمهای پیشرفته اویونیک در آینده یک نیاز اساسی خواهند بود. با ارائه این سیستمها نیاز به قدرت پردازش بسیار بالا احساس میشود. بنابراین راهحل مناسب برای رفع این نیازمندیها، استفاده از پردازش چند هستهای خواهد بود. استفاده از سیستمهای باز و ساختار شبکهای، روند اصلی تغییر معماری اویونیک در پی افزایش تعداد قابلیتهایی که باید توسط سیستمهای اویونیک تحقق پیدا کنند، صنعت هوافضا با چالشهای جدیدی روبهرو شده است. ریزپردازندههای تک هستهای فعلی که مناسب برنامههای ایمنی محور هستند، دارای محدودیتهایی است. آنها نمیتوانند برای مقابله با افزایش نیازمندیها بدون افزایش مجدد تعداد کامپیوترها عملکردی مناسب و کافی داشته باشند. در حالیکه هدف سازندگان هواپیما متمرکز کردن توابع سیستمی بیشتر روی سیستمهای الکترونیکی کمتر است. پردازندههای چند هستهای یک راهحل جالب برای این چالش هستند. اگر چه مراقبت از چند واحد اجرایی به صورت همزمان در یک پردازنده، با استفاده از تعداد زیادی منابع مشترک داخلی (مانند: حافظه، گذرگاه، وسایل جانبی I/O)، مفاهیم تفکیک، ایزوله کردن خطا و غیره را از بین میبرد، اما انقلابی بزرگ برای پیشرفت سیستمهای اویونیک گذشته به راه انداخته است. امروزه کار با پردازندههای تک هستهای برای سیستمهایی با قابلیتهای فراوان گزینهای پرمخاطره محسوب میشود. دلیل این امر نیاز به فرکانس کلاک بسیار بالا برای عملکرد مناسب سیستم است که تنها با افزایش اتلاف گرمای فعال یا کاهش اندازه ترانزیستورها امکانپذیر است. از اینرو پردازنده بسیار حساس به تشعشعات خواهد بود. هر دو مورد تاثیر منفی بر قابلیتهای ایمنی پردازندههای تک هستهای دارد که میتواند با افزونگی برطرف و اصلاح شود. اما این کار با رویکرد کاهش دستگاههای محاسباتی مغایرت دارد. علاوه بر این حوزههای دیگر صنعت نیز با اصلاح طراحیها به سمت استفاده از پردازندههای چندهستهای حرکت کردهاند و در نتیجه تولیدکنندگان نیمههادی تحولات جدید خود را روی این پردازندهها متمرکز میکنند. بنابراین پیشرفتهای قابل توجهی در عملکرد و ایمنی پردازندههای تک هستهای در آینده صورت نخواهد گرفت. صنعت اویونیک میتواند یک پردازنده تک هستهای اویونیک اختصاصی با قابلیتهای ایمنی و کارایی بالا را به سازندگان تراشههای نیمههادی سفارش دهد، اما به نظر میرسد به دلایل زیر این امر تحقق پیدا نکرده است. بنابراین استفاده از پردازندههای تک هستهای نمیتواند پاسخگوی نیازمندیهای صنعت هوایی باشد و از اینرو در این چند سال، گرایش به پردازندههای چند هستهای در هر شرایطی ضروری است. در حال حاضر توسعه فناوری چند هستهای برای رفع نیازهای صنایع با الزامات ایمنی قوی در حال ارزیابی است. این همان چیزی است که توسط یک کنسرسیوم متشکل از 30 شرکت از صنایع و دانشگاهها در پروژهای به نام «سیستمهای چندهستهای در صنایع خودرو، راهآهن و اویونیک» (ARAMiS[3]) تحقق یافته است. طی این پروژه چند خانواده از معماری پردازندههای چند هستهای برای کاربردهای مختلف مورد بررسی قرار گرفته و بسته به مورد استفاده، راهحلهای ترکیبی ایدهآل از نرمافزار و سختافزارهای مدرن توسعه یافتهاند. در زمینه اویونیک موارد استفاده برای برنامههای ایمنی محور با توجه به جنبههای زیر مورد بررسی قرار گرفته است. وقتی که نگاهی دقیق به پردازندههای چند هستهای عمومی گسترده از قبیل لوازم الکترونیکی مصرفی داشته باشیم، میتوان شباهتهای متعددی بین معماریهای مختلف و سازندگان پیدا کرد. یک بلاک دیاگرام انتزاعی از معماری چندهستهای در شکل زیر نشان داده شده است. به طور کلی یک تراشه چندپردازندهای میزبان چند هسته پردازش است که توسط اتصال داخلی مشترک به یکدیگر متصل شدهاند. این تراشه همچنین دارای پردازنده کمکی، واحد دسترسی مستقیم به حافظه، ابزار جانبی مشترک، حافظه، کنترلکننده حافظه، مکانیزمهای شتابدهنده مانند cache، تایمر و غیره است که برای همه هستهها مشترک هستند. ویژگی دیگر این معماری، کلاک و منبع تغذیه ولتاژ مشترک برای کل تراشه است. به طور خلاصه میتوان گفت این معماری چند هستهای ساده دارای مشکلاتی برای جداسازی و رفتارهای قطعی سیستم است که استفاده از آن را برای برنامههای ایمنی محور مانند کاربردهای اویونیکی دشوار میکند. بلوک دیاگرام انتزاعی از معماری چندهستهای با توجه به ملاحظات جداسازی، توصیههای پردازشی و همچنین شرایط مربوط به افزایش خطر اثرات تشعشعی به نظر میرسد ساخت پردازندههای چندهستهای خاص برای صنعت اویونیک لازم است. موارد مورد نیاز برای این پردازندههای چندهستهای با راهحلهای فنی زیر میتواند تحقق یابد. در حالت ایدهال باید تا آنجا که امکان دارد هستههای پردازنده را جدا کرد. در واقع محصول نهایی باید بیشتر چند پردازنده باشد تا تراشه چند هستهای. با این حال به دلیل پیچیدگی کار و هزینههای توسعه برای چنین اجزای پیچیدهای، به نظر میرسد در فاز اول ساختن پردازندههای چند هستهای اختصاصی و به طور انحصاری برای صنعت اویونیک واقعبینانه نباشد. کسب تجربه از پردازندههای چند هستهای موجود حتی به صورت محدود برای اصلاح نیازمندیها و بهبود کارایی استفاده از این فناوری، ضروری است. استفاده از پردازندههای چند هستهای که قبلا توسط حوزههای صنعتی دیگر با الزامات ایمنی مشابه استفاده و پذیرفته شدهاند، سودمند خواهد بود. همچنین میتوان به صورت گام به گام الزامات خاص صنعت اویونیک را برای ارائه نسل جدید پردازندههای چند هستهای، یکپارچه کرد. در سال 2012 آژانس ایمنی هوایی اتحادیه اروپا در پروژهای با نام مولکورس[6] به بررسی استفاده از پردازندههای چند هستهای در سیستمهای هواپیما پرداخت. نتیجه این پروژه انتشار یک سند 163 صفحهای بود که در آن به طور مفصل ملاحظات این فناوری بیان شده است. در این پروژه قابلیتهای چند مدل از پردازندههای چند هستهای مانند Freescale P4080 (8 هسته)، TMS320C6678 شرکت تگزاس اینسترومنت (8 هسته) و ARM Cortex-A15 (4 هسته) مورد بررسی قرار گرفته است. Freescale P4080 این پردازنده دارای 8 هسته است که میتوانند به طور کاملا مستقل فعالیت کنند. در واقع P4080 به منظور پاسخگویی به تقاضاهای فراوان برای پردازندهای با توان محاسباتی بالا طراحی شده است. با این حال P4080 تنها دو کنترلکننده حافظه DDR برای 8 هسته به کار میگیرد. این مورد به علاوه برخی محدودیتهای دیگر سبب میشود تا پیشبینیپذیری سیستم بدون انجام برنامهنویسی پیچیده امکانپذیر نباشد. همچنین P4080 از ویژگیهای ایمنی مطلوبی مانند کد تصحیح خطا (ECC[7]) برای تمامی نواحی حافظه برخوردار نیست. مشکل دیگر آن عدم ارائه اسناد معتبر (فنی، طراحی، ایمنی و غیره) به ویژه برای بخشهایی از پردازنده است که موجب ایجاد چالش هنگام دریافت گواهینامه محصول نهایی میشود. بلوک دیاگرام Freescale P4080 Freescale i.MX6 مثال دیگری از یک پردازنده عمومی بالقوه برای استفاده در سیستمهای اویونیک پرقدرت، پلتفرم i.MX6 است. هرچند این پلتفرم چندهستهای برای برنامههای کاربردی با سطح ایمنی بالا مناسب نیست، اما چند شتابدهنده گرافیکی و رابطهای نمایشگر، آن را مورد توجه طراحان قرار داده است. این پلتفرم بر پایه 4 هسته ARM Cortex A9 است و از چند پردازنده کمکی بهره میبرد. این پردازنده در واقع دارای قدرت پردازشی بالایی بوده و برای استفاده در صنعت خودروسازی توسعه یافته است، اما گزینه مطلوبی برای سیستمهای ایمنی- بحرانی محسوب نمیشود. همچنین وجود تعداد زیادی رابط مولتیمدیا برای سیستمهای جانبی که در کاربردهای اویونیک بدون استفاده هستند، امکان بروز خطا خاموش را افزایش میدهد. قطعا در سالهای پیشرو شاهد نفوذ پلتفرمهای مبتنی بر پردازندههای چند هستهای در صنعت هوایی خواهیم بود. معماری اویونیک ماژلار یکپارچه محل مناسبی برای رشد این فناوری و رسیدن به بلوغ آن است. از اینرو در سالهای گذشته تحقیقات گستردهای در رابطه با چالشها و مشکلات ورود فناوری چندهستهای انجام شده است و حتی شاهد معرفی برخی محصولات ساخته شده توسط این پردازندهها بودهایم. هرچند استفاده از پلتفرمهای عمومی موجود در بازار میتواند گزینه مطلوبی برای سیستمهای هوایی باشد، اما در فرایند انتخاب باید مسائل مختلفی همچون وجود دادههای طراحی و ویژگیهای ایمنی در نظر گرفته شود. در نسخههای آینده مجله نیز به موضوع پردازندههای چند هستهای و کاربردهای آن خواهیم پرداخت. [1] Federated Architecture [2] Integrated modular avionics [3] Automotive, Railway and Avionics Multicore Systems [4] Single/Multiple Event Effects [5] Memory Management Unit/Memory Protection Unit [6] Use of MULticore proCessORs in airborne Systems (MULCORS) [7] Error-Correcting Codeچالشها و وضعیت فعلی اویونیک
حرکت از معماری وابسته به معماری IMA چند هستهایپردازندههای تک هستهای
پردازندههای چند هستهای
معماری چند هستهای پایه
توسعه کنترلکننده چند هستهای اویونیک
ایمنی
جداسازی
پیشبینیپذیری
صدور گواهینامه
استفاده از پلتفرمهای چند هستهای عمومی
نتیجهگیری
ثبت ديدگاه
You must be logged in to post a comment.