Abstract
The introduction of multicore architectures in embedded systems allows system integrators to locate multiple applications on the same chip. In the context of certification separation of these applications is mandatory. Most current multicore systems have a low core count and programmers have a need for easily utilizable platforms. Therefore, most of the current multicore systems use shared memory architectures based on bus communication. In this paper we discuss several possible architectures for shared memory protection using local and shared MPUs and MMUs for architectures of this type. This analysis includes typical use cases for multicore systems and their compatibility to these architectures. It has a strong focus on the platform's suitability for mixed-critical workloads with some cores executing safety-critical, hard-real-time applications. This paper proposes a novel shared memory protection unit to efficiently enforce spatial separation of the shared memory among the cores. Preliminary synthesis results are provided along with latency considerations relevant for hard-real-time application
چکیده
با بکار گیری معماریهای چندهستهای در داخل سیستمهای ادغام یافته، این امکان برای یکپارچه کنندههای سیستم (ادغام گرها) فراهمشده تا بتوانند چندین کاربرد را بر روی یک تراشه قرار دهند. تفکیک و مجزا سازی گواهی مرتبط با هرکدام از این کاربردها امری لازم است. بسیاری از سیستمهای چندهستهای امروزه، از تعداد هسته پایینی برخوردار میباشند و ازاینرو برنامه نویسان نیاز به پلت فرمهایی داشته که بتوانند بهآسانی از آنها استفاده کنند. بنابراین، اغلب سیستمهای چندهستهای امروزی، از معماریهای حافظهی مشترک که مبتنی بر ارتباطات گذرگاهی میباشد استفاده میکنند. در این مقاله قصد داریم مباحثی را در خصوص معماریهای ممکن برای حفاظت از حافظهی مشترک (با استفاده از MPU ها و MMU های مشترک برای این نوع معماریها) ارائه دهیم. در تحلیلی که ارائه خواهیم داد، موارد کاربردی رایجی از سیستمهای چندهستهای و سازگاری آنها با این معماریها را در بر خواهیم گرفت. در این تحلیل بهطور ویژهای بر روی متناسب بودنِ این پلت فرم برای بارهای کاری حساس-ترکیبی متمرکز خواهیم شد که در این پلت فرم، هستههایی وجود داشته که اپلیکیشن های بلادرنگ سخت و بسیار حساس به مسئلهی امنیت را اجرا میکنند. این مقاله، یک واحد مدرن حفاظت از حافظهی مشترک را ارائه میدهیم که تفکیک حافظهی مشترک در بین هستهها را بهاجبار ضروری میسازد. نتایج ترکیبی اصلی نیز به همراه ملاحظات مرتبط با تأخیر در اپلیکیشن های بلادرنگ سخت ارائه گردیده است.
1- مقدمه
در چندین دامنهی ادغام یافته، هدف این بوده که بتوان تعداد واحدهای کنترل الکترونیکی(ECU)را بهوسیلهی ادغام عملکردهای بیشتر در داخل ECU های تکی کاهش داد. این کار نیاز به یک کارائی بیشتری برای این ECU ها دارد. درگذشته، افزایش کارائی پلت فرمهای محاسباتی، از طریق افزایش سرعت کلاک و افزایش موازیسازی سطح دستورالعمل صورت میگرفت. امروزه دیگر این مورد کاربری ندارد چراکه این توسعه باعث گردیده که نتوان از چگالی انرژی گرمایی (دیوارهی انرژی) اجتناب کرد. تنها گزینهای که برای افزایش قدرت محاسباتی پیش روی ما باقیمانده است این بوده که المانهای پردازشی را بر روی این پلت فرم توزیع کنیم، این امر باعث افزایش نیاز برای بکار گیری معماریهای چندهستهای در همهی بخشهای بازار گردیده است. استانداردهای گواهی، مانند IEC 61508[1] و مشتقات مختص به دامنهی آن DO-178b[2] یا ISO 26262[3] نیاز داشته که بروز خطا در یک اپلیکیشن بر روی رفتار اپلیکیشن دیگر تأثیر نداشته باشد. این مسئله در سیستمهای بحرانی-ترکیبی اهمیت بیشتری دارد چراکه در این سیستمها، بعضی از اپلیکیشن ها ممکن است دارای احتمال خطای بیشتری نسبت به اپلیکیشن های دیگر باشند و بنابراین ممکن است یکپارچگی کلی سیستم را کاهش دهند. استانداردهای واسط فعلی، مشابه با ARNIC 653 بخش اول [4] برای دستگاههای هواپیمایی و یا AUTOSAR برای صنعت خودرویی، این مسئله را با تقاضا برای آزادی استنتاج و یا تفکیک اپلیکیشن ها منعکس میسازد...