چرا یک پردازنده مناسب استفاده در محیطهای خاص نیست؟
مسعود رادپور – در مقاله برنامهنویسی Raspberry Pi Pico RP2040 در محیط MicroPython اشاره شد به مناسب نبودن استفاده از میکروکنترولر RP2040 در سیستمهای پیشرفته و یا صنایع حساس شد، دلیل این حساسیت را بررسی میکنیم.
Real-Time به چه معناست و چه زمانی استفاده میشود؟
“زمان واقعی” در اصل به معنای ” پاسخگویی هم اکنون یا بلافاصله.” در مهندسی، بلادرنگ به سیستمهایی اطلاق میشود که نهتنها نیاز به محاسبه پاسخ صحیح دارند، بلکه باید فوراً و اغلب در تعامل مداوم (بهصورت پویا) به محیط سیستم پاسخ دهند.
زمان واقعی عبارتی است که در دو حوزه اصلی باتوجهبه نرمافزار و الکترونیک استفاده میشود. زمان واقعی میتواند به یک ساعت در یک مدار اشاره کند، مانند یک ساعت زمان واقعی (RTC). RTC مداری است که زمان و تاریخ را نگه میدارد و برای تنظیم آلارمها دررابطهبا زمان و تقویم استفاده میشود. یک RTC باید برای حفظ زمان و تاریخ فعلی فعال بماند. در غیر این صورت، زمان و تاریخ باید تنظیم مجدد شود؛ بنابراین، بسیاری از RTCها با حداقل مصرف انرژی با باتری طراحی شدهاند، حتی اگر همه چیز برای حفظ انرژی «به حالت خوابرفته باشد». RTC نباید با “ساعت” یا “تایمر” در مداری با MCU اشتباه گرفته شود. یک ساعت یا تایمر عملکرد بسیار متفاوتی از زمانبندی (کلاک) چرخههای محاسباتی را برای یک پردازنده یا کنترلکننده انجام میدهد.
اصطلاح “زمان واقعی” همچنین برای رایانهها و کنترلرها نیز استفاده میشود. در اینجا، بلادرنگ بهفوریت پاسخی اشاره دارد که «مغز» دستگاه مدیریت میکند. یک پردازنده، کنترلکننده یا سیستمعامل در صورتی بلادرنگ است که بتواند فوراً به موقعیتها پاسخ دهد بدون منتظر ماندن وقفه ساعت برای توقف چرخش باشد. رایانههای شخصی (PC) برای اجرای فرایندهای بلادرنگ به این معنا نیستند و سیستمعامل بلادرنگ ندارند. بهعنوانمثال، سیستمعاملهای Windows و iOS برای قابلیت اغلب حیاتی موردنیاز سیستمهای بلادرنگ در نظر گرفته نشدهاند. بااینحال، آنها یک RTC دارند تا بتوانند تقویم را نگه دارند.
کنترل بلادرنگ در بسیاری از کاربردها به دلیل مسائل ایمنی حیاتی است. نمونههایی از برنامههایی که محدودیتهای بلادرنگ دارند عبارتاند از: صنعت خودرو (بهعنوانمثال، رانندگی با سیم و ABS)، کنترل ترافیک هوایی، کنترلهای فرایند، و دستگاههای پزشکی (مانند ضربانسازهای قلب).
رانندگی با سیم چیست:
فناوری رانندگی با سیم، DbW، با سیم، هدایت با سیم، fly-by-wire یا x-by-wire در صنعت خودروسازی یا هوانوردی استفاده میشود. سیستمهای الکتریکی یا الکترومکانیکی برای انجام عملکردهای وسیله نقلیه است که به طور سنتی توسط اتصالات مکانیکی استفاده میشود. این فناوری جایگزین سیستمهای کنترل مکانیکی سنتی با سیستمهای کنترل الکترونیکی با استفاده از محرکهای الکترومکانیکی و رابطهای انسان و ماشین مانند شبیهسازهای احساس پدال و فرمان میشود. قطعاتی مانند ستون فرمان، شفتهای میانی، پمپها، شیلنگها، تسمهها، کولرها و سرووهای خلاق و سیلندرهای اصلی از خودرو حذف میشوند. این شبیه به سیستمهای fly-by-wire است که به طور گسترده در صنعت هوانوردی استفاده میشود.
کنترل یا محاسبات بلادرنگ به پردازنده نیاز دارد که وقفهها را در لحظه وقوع وارد میشوند اولویتبندی کند و فوراً روی وقفههایی که اولویت بالاتری دارند، و در موارد «سخت» بدون اینکه ابتدا کاری را که در حال حاضر پردازشگر را اشغال میکند به پایان برساند، عمل کند. زمان واقعی “سخت” نمیتواند به هر چیزی که 100٪ قابلاعتماد نیست وابسته باشد، زیرا برای مثال رویدادی که نیاز به پاسخ بلادرنگ دارد نمیتواند منتظر اتصال به اینترنت باشد. زمان واقعی سخت به این واقعیت اشاره دارد که اگر سیستم نتواند بهموقع پاسخ دهد، عواقب مرگباری در پی خواهد داشت. در مقابل، “زمان واقعی نرم” نسبت به مهلت ازدسترفته تحمل بیشتری دارد، اما عواقب آن هنوز مطلوب نیست. تأخیر در پاسخ بر ارزش قابل تحویل تأثیر میگذارد. در سیستمهای بلادرنگ سخت، تحویل دیرهنگام مانند عدم تحویل است.
در مثالی دیگر، یک سیستم بلادرنگ نرم ممکن است قبل از انجام اقدامات اصلاحی منتظر شکست باشد، مانند یک نقطه رد شده در یک DVD. بااینحال، یک سیستم بلادرنگ سخت ممکن است نیاز داشته باشد قبل از انجام یک کار مشخص، یک نتیجه خوب را محاسبه کند. در غیر این صورت، ممکن است بر اساس محاسباتی که ضربالاجل با کار اولیه و پیشفرض برآورده نشود، کار متفاوتی را انجام دهد. سیستمهای بلادرنگ به منابع قابلپیشبینی و قابلاعتماد نیاز دارند، بهخصوص اگر ورودیها و فرایندهای پویا برای اجرای موفقیتآمیز موردنیاز باشند.