طراحی CPU بر اساس زمان بندی سخت افزاری و ثبات های خط لوله مستقل / CPU Architecture Based on a Hardware Scheduler and Independent Pipeline Registers

طراحی CPU بر اساس زمان بندی سخت افزاری و ثبات های خط لوله مستقل CPU Architecture Based on a Hardware Scheduler and Independent Pipeline Registers

  • نوع فایل : کتاب
  • زبان : فارسی
  • ناشر :  آی تریپل ای IEEE
  • چاپ و سال / کشور: 2014

توضیحات

رشته های مرتبط: مهندسی کامپیوتر، معماری سیستم های کامپیوتری و سخت افزار کامپیوتر
۱٫ مقدمه استفاده از سیستم عامل های بی درنگ اختیاری و تجاری کنونی(RTOSs) برای سیستم های جاسازی شده، از نظر ما دو مسئله عمده را ایجاد می کند. در حالی که یکی به دستگذار (یک فایلی یا تسهیلاتی که وقفه را بعهده دارد) وقفه اشاره دارد، دومی به این حقیقت اشاره می کند که یک وظیفه نمی توان بطور همزمان با رویدادهای استفاده شده برای هماهنگ سازی، اشتراک گذاری منابع، ارتباطات هماهنگ شود. چنین رویدادی، سیگنال ها، تیرهای راهنما (semaphores)، پردازنده ی کلمات متنی (انحصار متقابلes)، پیام ها، پرچم ها و سایرین خواهند شد. این مسائل در RTOSs شناسایی شدند که در میکروکنترل کننده ها بدون واحد مدیریت حافظه ی مجازی و مخزن حافظه اجرا می شوند. مثال هایی که از RTOSs پیروی می کنند عبارتند از: μITRON, μTKernel, μC/OS-II, EmbOS, FreeRTOS, SharcOS, XMK OS, eCOS, Erika, Hartik, KeilOS اولین مسئله، بخصوص با استفاده از جریان های عادی سرویس وقفه ی تولید شده، حرکت نامنظم اتفاقی(jitter) می باشد. به دلیل اینکه، آن برای محاسبه مشکل است، یک جزء مهمی از سیستم های بی درنگ می باشد. این ممکن است منجر به فقدان بی ضرب الاجل (deadline) شود. دومین مسئله، گسترش یافتن زمان اجرای کار می باشد. این بسط، با استفاده از فراخوان های پی در پی توابع واسط برنامه نویسی (API) برنامه ی RTOS برای تشخیص رخداد یکی از رویدادهای بالا ایجاد می شود. موضوع مهم دیگر، صرف زمان توسط RTOS برای سوئیچ کردن قشر یا قشری وظیفه می باشد (سوئیچ قشری، یک عملیات انجام شده توسط زمان بندی RTOS می باشد که نیاز به زمان زیادی دارد). بعلاوه فراخوان های تابع API ، مصرف کننده ی زمان می شوند، بخصوص اگر پردازنده نیاز به انتقال از حالت کاربر به حالت ناظر یا بالعکس داشته باشد. پردازدنده های همه منظوره های کنونی برای سیستم های جاسازی شده استفاده می شوند اما آنها می توانند مشکلاتی را به دلیل عملکرد غیرمحتمل و صرف انرژی ناکارآمد ایجاد کنند. به منظور پرهیز از چنین مشکلاتی، فن آوری های طراحی محتاطانه ایی ممکن است اتخاذ شود. این فن آوری ها می تونند پلت فرم (سطوح) بسیار بزرگی را ایجاد کنند که قادر به رفتار مناسب تحت بدترین شرایط می باشند. بعنوان یک نتیجه، استفاده از این پردازنده ها، کاربرد پذیری را محدود کرده است و آنها برای سیستم های جاسازی شده با ویژگی های زمان وقعی سخت و الزامات یا تقاضاهای مصرف انرژی پایین نامناسب هستند. از طرف دیگر، اخیراً، دستگاه های آرایه ی (FPGA) قابل برنامه ریزی میدان با ارزش های کارامدتر و با ظرفیت معادل در مدخل های منطقی (بیش از میلیون) گسترده می شوند. به این دلیل ما یک پشتیبان سخت افزاری را بر اساس سیستم های FPGA پیشنهاد می دهیم. ما یک معماری زمانبندی سنتی را ارائه می کنیم که یک طراحی سخت افزاری با تکرار منابع می باشد (شمارنده ی برنامه (PC)، ثبات ی خط لوله (pipeline)، و ثبات ی همه منظوره ی CPU) چنانکه در مراجع ۶ و ۷ تعریف شده اند. معماری ما بر اساس پردازنده ی میکرو بدون معماری مراحل خط لوله ی در هم قفل شده (MIPS) می باشد که بطور خاص برای پشتیبانی عملیات زمان بندی سخت افزاری بعنوان بخشی از CPU آن اتخاذ شد. آن بک مجموعه از ۴ ثبات ی خط لوله را برای هر وظیفه که برای نگهداری دستوالعمل های در حال اجرای CPU استفاده شدند بکار می رود. فایل ثبات برای هر وظیفه یا کار تکرار می شود. این امر موجب سوئیچ کردن سریع قشر یا زمینه، به سادگی با استفاده از ایجاد نقشه ی مجدد از قشر یا زمینه ی فعال برای اجرا شدن می شود. این معماری، که در مرجع ۷ معماری ثبات ی چند خط لوله ایی (multipipeline ) نامیده شد (MPRA)، روش های ذخیره ی پشته (stack saving) را با الگوریتم ایجاد نقشه ی جدید(remapping ) جایگزین می کند این الگوریتم قادر به اجرای شروع وظیفه ی جدید با چرخه ی ساعت بعدی می باشد. معماری جدید به صورت زیر مشخص می شود: آن شامل یک پیاده سازی اصلی ساختار سخت افزاری استفاده شده برای زمان بندی دینامیک (پویا) و استاتیک وظایف می باشد، آن قادر به مدیریت واحد رویدادها و وقفه ها می باشد، آن دسترسی به منابع به اشتراک گذاشته را فراهم می کند و هچمین روش استفاده شده برای اتصال وقفه ها به وظایف فراهم می کند بنابراین یک عملیات کارامد را در زمینه ی الزمات یا تقاضاهای بی درنگ ایجاد می کند. هدف از طراحی جدید، بهبود عملکردهای میکروکنترل کننده های RTOSs می باشد. علکردها مربوط به موارد زیر هستند: زمان سوئیچ کردن وظایف، زمان پاسخ به رویدادهای خارجی، رفتار وقفه ها، و زمان اجرای هماهنگ سازی ارتباطات داخل فرایندی (IPC) عناصر اولیه ی یک برنامه (رویدادها، پیام ها، انحصار متقابلes(پردازنده ی متنی) و غیره) این مقاله بصورت زیر سازماندهی می شود: معماری nMPRA، در بخش II ارائه می شود و معماری nHSE و از جمله تمام تسهیلات RTOSs در بخش III ارائه می شود. بخش IV یک سری آزمایشات را در طوا پیاده سازی معماری یا طرح پیشنهادی ارائه می دهد. بخش V شامل کار مرتبطو مقایسه با معماری nMPRA می باشد.در نهایت نتایج در بخش VI آورده می شود.

Description

THE use of the current commercial and free real-time operating systems (RTOSs) for embedded systems encounters, in our opinion, two major problems. While the first one refers to the interrupt handler, the second addresses the fact that a task cannot synchronize simultaneously with events used for synchronization, resource sharing, and communication. Such events would be signals, semaphores, mutexes, messages, flags, and others. These problems were identified in RTOSs that run on microcontrollers without a virtual memory management unit and cache memory. Examples include the following RTOSs: μITRON, μTKernel, μC/OS-II, EmbOS, FreeRTOS, SharcOS, XMK OS, eCOS, Erika, Hartik, KeilOS, and PortOS. The first problem, generated especially by the interrupt service routines on the simultaneous occurrence of many interrupts, is the jitter. Because of it, it is difficult to calculate the worst case execution time, an important component of the real-time systems. This can lead to deadline misses. A second problem is the extension of the task’s execution time. This extension is generated by successive calls of the RTOS application programming interface (API) functions used to detect the occurrence of one of the events listed above. Another important issue is the time spent by RTOSs for task context switching (context switching is an operation carried out by the RTOS scheduler that requires a lot of time). Furthermore, API function calls become time consuming, especially if the processor requires transition from the user mode to the supervisor mode, and vice-versa. The current general-purpose processors are used for embedded systems, but they can create problems, mainly due to nondeterministic performance and inefficient power consumption. In order to avoid these problems, conservative design techniques may be adopted. These techniques can create an oversized platform, enabling the proper behavior under worst case conditions. As a consequence, the use of these processors has limited applicability and they are unsuitable for the embedded systems with hard real-time features and low power consumption requirements. On the other hand, currently, field-programmable gate array (FPGA) devices [1], [2] at more efficient prices and with equivalent capacity in logic gates (more than millions) are widespread [3], [4]. For this reason, we propose a hardware support for real-time OS functionalities [5], based on the FPGA systems. We present a custom scheduler architecture that is a hardware design with replication of resources [program counter (PC), pipeline registers, and CPU general purpose registers] as defined in [6] and [7]. Our architecture is based on the microprocessor without interlocked pipeline stages (MIPS) architecture that was especially adapted to support the operation of the hardware scheduler as part of the CPU itself. It employs a set of four pipeline registers for each task, used to hold the running instructions of the CPU. The register file is replicated for each task. This allows a very fast context switching, simply by remapping the active context of the task to be executed. This architecture, called multipipeline register architecture (MPRA) in [7], replaces the stack saving methods with a remapping algorithm that enables the execution of the new task starting with the next clock cycle. The new architecture is characterized as follows: it contains an original implementation of the hardware structure used for static and dynamic scheduling of the tasks, it enables unitary management of the events and interrupts, it provides access to shared resources, event generation, and also defines a method used to attach interrupts to tasks, thus ensuring an efficient operation in the context of real-time requirements. The aim of the new architecture is to improve for microcontrollers the performances of the RTOSs. The performances are related to the following: task switching time, response time to external events, behavior of the interrupts, and execution time of the synchronization interprocess communication (IPC) primitives (events, mutexes, messages, and so on). This paper is organized as follows. The nMPRA architecture is presented in Section II, and the nHSE architecture, including all RTOS facilities implemented in hardware, is presented in Section III. Section IV presents a series of tests carried out during the implementation of the proposed architecture. Section V includes related work and the comparisons with the nMPRA architecture. Finally, conclusions are drawn in Section VI.
اگر شما نسبت به این اثر یا عنوان محق هستید، لطفا از طریق "بخش تماس با ما" با ما تماس بگیرید و برای اطلاعات بیشتر، صفحه قوانین و مقررات را مطالعه نمایید.

دیدگاه کاربران


لطفا در این قسمت فقط نظر شخصی در مورد این عنوان را وارد نمایید و در صورتیکه مشکلی با دانلود یا استفاده از این فایل دارید در صفحه کاربری تیکت ثبت کنید.

بارگزاری