سیستم نهفته و تکامل آن در دو دهه گذشته
بررسی صنعت سیستم نهفته از سال ۱۹۹۹، ۲۰۰۹ و ۲۰۱۹، تصویری از اینکه چگونه توسعه نهفته در طول دو دهه گذشته تکامل یافته است، به ما ارائه میدهد. در نگاه اولیه، سخت افزار، نرم افزار و روش های مورد استفاده برای ساخت سیستم های نهفته، در اثر گذشت زمان بهتر، یا شاید متفاوت میشوند.
پایههای توسعه سیستم های نهفته، اکنون مشابه زمانی است که مهندسان مجبور بودند برای اجرای کد ماشین سوییچها را روی میکروکامپیوترها تغییر دهند. مانند آن مهندسان، ما هنوز در حال تلاش برای نظارت بر رویدادهای خارجی و یافتن یک پاسخ مناسب هستیم.
نظرسنجی سال ۱۹۹۹ دارای بخشهای بزرگی با سوالاتی در مورد cross-compiler ها، روش های طراحی شیء گرا و emulation های مدار داخلی بود اما در مورد سیستمهای عامل سوالات نسبتا کم بود. در سال ۲۰۰۹، این بررسی ، بخشهای خاص را حذف کرده بود و شامل سوال هایی درباره طراحی مولتی پروسسور، سیستم عامل و به طور خاص لینوکس نهفته بود، اما موضوعاتی مانند اینترنت اشیا (IoT) و هوش مصنوعی (AI) هنوز وجود نداشتند. در بررسی سال ۲۰۱۹، این موضوعات، بعلاوه امنیت، هم علاقه گسترده و هم کاربرد بیشتری را نشان دادند.
تمرکز برنامههای کاربردی و قابلیتها
بخشهای کاربردی برتر برای طرح های سیستم نهفته در طول دهه گذشته چگونه تغییر کردهاند؟
اگر چه کاربرد صنعتی و مصرفکنندگی در پنج مورد برتر باقی ماندند، اما طراحیهای کاربردهای خودران و IoT شروع از پرکاربردترین آنهاهستند. (جدول ۱). احتمالا این یک شرط ایمن است که طرحهای چیزی که ما آن را datacomm در سال ۲۰۰۹ مینامیم، در سال ۲۰۱۹ تحت ارتباطات ردهبندی شدند.
جدول ۱: ۵ تا از پرکاربردترین بخشهای صنعت (% پاسخ دهندگان)
چیزی که به ویژه در مطالعه نظرسنجی سال ۱۹۹۹ جالب است این است که ۴۳ درصد از پاسخ دهندگان گفتهاند که قصد انجام این کار را ندارند، اما ۱۴ درصد گفتهاند که این کار را کردهاند.
به طور کلی، جدول ۲ نشان میدهد که چگونه سه قابلیت طراحی کلیدی توسعه یافته اند. تنها تغییر واقعی، افزایش عظیم طرح های متصل از ۳۵% در آغاز هزاره سوم به بیش از ۹۰% در یک دهه پیش بود.
به طور مشابه، توسعه دهندگان سیستم نهفته برای حداقل یک دهه، با انرژی باتری طراحی میکردند. گاهی اوقات صنعت فراموش میکند که طراحی با انرژی باتری قبل از ظهور IoT و گجت های پوشیدنیها وجود داشته است.
جدول ۲: قابلیتهای کلیدی طراحی (% پاسخ دهندگان)
زبان برنامه نویسی سیستم نهفته
خوب است بدانید که C++ / C همیشه زبان غالب برای توسعه سیستم نهفته نبوده است (شکل ۱). برخی دیگر از پاسخهای نهفته در هر نظرسنجی را هم در نظر بگیرید، و این احتمال وجود دارد که افزایش پردازندههای با کارایی بالاتر نیاز به کد اسمبلی را کاهش دهد. همچنین باید دانست که تنها حدود ۳۷% پروژهها طبق برنامه به وجود آمدند، رقمی که در سال ۲۰۱۹ با وجود تمایل بیانشده در سال ۲۰۰۹ برای اصلاح فرآیند توسعه، تغییر چندانی نکرد (شکل ۶ را ببینید).
شکل ۱: محبوب ترین زبانهای توسعه (% پاسخ دهندگان).
تا پایان سال ۲۰۰۹، ۷۸۹ سیستم عامل (OS) متن باز شروع به جایگزین شدن سیستمعامل های تجاری شدند. و این روند تا سال ۲۰۱۹ ادامه داشت. نکته جالب در اینجا این است که تغییر مکان سیستمعامل تجاری تنها به دلیل افزایش OS های منبع باز نبود. OS های سفارشی و مخصوص شرکت ها هم استفاده افزاینده ای داشته اند (شکل ۲).
شکل ۲: نوع سیستمعامل (% پاسخ دهندگان).
معماری پردازنده
اگر چه استفاده از معماریهای ۳۲ بیتی در طول دهه گذشته یکسان باقی مانده است، معماری ۶۴ بیتی به طور قابلتوجهی رشد کرده است (شکل ۳). با حرکت توسعه دهندگان به سمت پهنای بیت ها از ۸ بیت به ۱۶ بیت و ۳۲ بیت به ۶۴ بیت، می توان حدس زد که این یک روند تکاملی ساده است.
شکل ۳: معماری پردازنده (% پاسخ دهندگان).
پردازندههای جداگانه در مقابل پردازنده های چندهستهای
شاید واضح ترین روند در دهه ۲۰۱۰، کاهش طراحی از تراشه های چند پردازنده به دستگاه های چند هستهای یا از چند تراشه با یک پردازنده به یک دستگاه چندهستهای همگن یا از چند تراشه با پردازندههای مختلف به یک دستگاه چندهستهای ناهمگن بود (شکل ۴).
شکل ۴: پردازنده تک هسته ای در مقابل پردازندههای چند هسته ای (% پاسخ دهندگان).
حتماً بخوانید: MAX32520 ، میکروکنترلر جدید با تکنولوژی PUF
هدایتکنندگان پردازنده سیستم نهفته
فاکتور اصلی در انتخاب پردازنده در دو دهه اخیر تغییر نکرده است (شکل ۵). در دسترس بودن ابزارهای توسعه نرمافزار، هنوز هم به عنوان بهترین انتخاب رتبهبندی میشود. سر و کله زدن با کد ماشین در کل روز برای هیچ کس لذت بخش و جذاب نیست. چیزی که در اینجا جالب است این است که آشنایی با معماری از ابتدای هزاره اهمیت اصلی خود را از دست دادهاست، و هم هزینه و هم قابلیتهای جانبی و ورودی-خروجی به کاهش اهمیت (نسبی) ادامه دادهاند.
شکل ۵: فاکتورهای انتخاب پردازنده (% پاسخ دهندگان).
چالشهای فنآوری نهفته
اگر به پنج چالش برتر ذکر شده در نظرسنجیهای ۲۰۰۹ و ۲۰۱۹ نگاه کنیم، یکپارچهسازی، پیچیدگی کد و ابزارهای نرمافزاری به عنوان چالش های کلیدی ادامه خواهند یافت. چیزی که در اینجا جالب است این است که چالش های بیانشده در مورد روند توسعه در دهه گذشته کمرنگ شده و جای خود را به چالشهای مربوط به قدرت کم و امنیت داده است. در واقع، افزایش چالش ها و اقدامات امنیتی برای کاهش تهدیدها، بخش بزرگی از بررسی سال ۲۰۱۹ را شکل داده است.
در سال ۲۰۰۹، تنها ۳ درصد پاسخ دهندگان امنیت را به عنوان یک چالش اعلام کردند. همانطور که قبلا اشاره شد، نرخ پایین آماری مشابه در عملکرد به موقع پروژه در سال ۲۰۰۹ و ۲۰۱۹ نشان میدهد که تغییر اهمیت نسبی در سال ۲۰۱۹ مربوط به فرآیند توسعه، ارتباط کمتری با هر گونه موفقیت ظاهری در این زمینه و بیشتر با ظهور چالش های مهمتر دارد.
شکل ۶: مهمترین چالشهای فنآوری از نظر پاسخگویان (% پاسخ دهندگان).
این روند برای دهه ۲۰۲۰ به چه معناست؟
ممکن است از این نتایج استنتاج کنیم که مسایلی مانند ابزارهای توسعه نرمافزار و مدیریت اندازه کد مهم باقی خواهند ماند و ویژگیهای پردازنده مانند عملکرد و وسایل جانبی در اهمیت نسبی قرار خواهند گرفت. از سوی دیگر، ظهور فنآوریهای جدید در سال ۲۰۲۰ مانند ابزارهای توسعه بدون کد، محاسبات کوانتومی، و هستههای هوش مصنوعی که مدلهای شبکه عصبی قابل آموزش را پشتیبانی میکنند، به نظر میرسد دلیلی برای تغییر چشمگیر در چالشهای طراحی باشد.
سیستمهای نهفته هنوز هم نیازمند ابزارهایی برای نوشتن (یا تولید) کد و احتمالا نیاز به انجام این کار برای طرحهای سختافزاری چندپردازندهای ناهمگن پیچیده هستند. این طرحها هنوز هم باید با دنیای فیزیکی در ارتباط باشند اما طبیعتا رابط ها ممکن است از ارتباطات سنسور ها دور شوند. تقاضا برای کارکرد بیشتر همچنان رو به افزایش است، و نیاز به عملکرد بیشتر و افزایش قابلیتها ، سختافزار را به اجرای برنامههای پیچیدهتر سوق میدهد. در نهایت، طراحیهای سیستم نهفته برای این دهه جدید هنوز نیاز به ارتباط موثرتر با منابع داده، اجرای کد های پیچیدهتر با حداقل تاخیر و مقابله با تهدیدهای امنیتی پیچیدهتر دارد در حالی که جریان حداقل را از منابع فوق العاده کم توان مصرف میکند.