عنوان پایاننامه
طراحی سیستمهای نهفته به روش حافظه تراکنشی
- رشته تحصیلی
- مهندسی کامپیوتر-معماری کامپیوتر
- مقطع تحصیلی
- کارشناسی ارشد
- محل دفاع
- کتابخانه مرکزی -تالار اطلاع رسانی شماره ثبت: 39503;کتابخانه دانشکده برق و کامپیوتر شماره ثبت: E1484
- تاریخ دفاع
- ۲۶ اسفند ۱۳۸۶
- دانشجو
- امیر مقیمی
- استاد راهنما
- ناصر یزدانی
- چکیده
- چکیده: از آنجایی که امروزه سرعت در سیستمهای تک پردازنده به مرز نهایی خود نزدیک شده و به سختی امکان افزایش کارآیی وجود دارد، استفاده از سیستمهای چندپردازنده و به ویژه چندپردازندههای روی یک تراشه (Chip Multi-Processors) رونق پیدا کرده است. گسترش در استفاده از این سخت افزارها، توسعه نرم افزارهای موازی را نیز به نیازی حیاتی بدل میکند. از طرفی روشهای موجود برای توسعه نرم افزارهای موازی عموماً مبتنی بر استفاده از قفلها (Lock) هستند که مشکلات زیادی را در طراحی سیستم ایجاد میکنند. از این رو روش جدیدی که حافظه تراکنشی (Transactional-Memory) نام دارد به تازگی به عنوان جایگزینی برای روشهای برنامه¬سازی موجود ارائه شده است که سعی دارد با استفاده از بکار بردن مفهوم تراکنش (Transaction) برای دسترسی به دادههای اشتراکی این امر را تسهیل نماید. طراحی سیستمهای مبتنی بر حافظه تراکنشی در حال حاضر عموماً در حوز? چندپردازنده¬های بزرگ و با استفاده از شبیه سازهای سطح بالا صورت میگیرد. در این تحقیق ما طراحی این سیستم را در حوزه سیستمهای نهفته انجام دادیم و تا مدلسازی سخت افزاری و پیاده سازی بر روی FPGA پیش رفتیم. برای رسیدن به این هدف، در این پایان¬نامه یک شبیه¬ساز بستر چند پردازنده (Multiprocessor Platform Simulator) به نام UTBlazer پیاده¬سازی شده که توانایی مدلسازی و شبیه¬سازی دقیق سیستمهای چند پردازند? نهفته را از طریق یک واسط گرافیکی فراهم می¬کند. همچنین با استفاده از یک عیب¬یاب گرافیکی (Graphical Debugger) در آن می¬توان برنامه¬های موازیِ مبتنی بر بستر Xilinx را به راحتی عیب-یابی کرد. یک معماریِ سیستم نهفت? موازیِ مقیاس پذیر نیز که مبتنی بر یک ساختار شبکه روی تراشه (Network-on-Chip) از پردازنده¬هاست با استفاده از این شبیه¬ساز طراحی شده است. این سیستم در حال حاضر از هر دو روش قفل و حافظ? تراکنشی برای ایجاد انواع ساز و کارهای همگام¬سازی (Synchronization) استفاده می¬کند. در پایان برای ارزیابی کارآیی این معماری و مقایس? این دو روش تعدادی مسائل محک (Benchmark) بر روی این سیستم پیاده¬سازی شده و نتایج مورد بررسی قرار گرفته¬اند. نتایج بدست آمده نشان می¬دهد که روش حافظ? تراکنشی در برخی کاربردها که نیاز به همگام¬سازی کمی دارند بدلیل سربار بیشتر، کندتر عمل می¬کند و در کاربردهای دیگر به ازای تعداد پردازنده¬های کمتر سریعتر بوده ولی به ازای تعداد پردازنده¬های بیشتر کندتر از روش مبتنی بر قفلها عمل می¬کند. این امر به علت بالا رفتن تعداد تداخلها با زیاد شدن پردازنده¬ها و همچنین ساز و کار بررسی صحت تراکنشهاست که در حال حاضر نیاز به قفل کردن پردازنده¬ها در زمان تایید صحت دارد.
- Abstract
- Abstract: Today, the use of multiprocessor systems is so wide that we can see them being deployed in domestic and embedded devices. This is mainly because super scalar single processor systems that are based on Instruction Level Parallelism (ILP) and high speed clocks with deep pipelining are reaching their ultimate speed up limit. This wide-spread employment of multiprocessors has changed parallel software development trend from an optional task for efficiency improvement to a vital requirement of hardware utilization. Most of current methods in parallel software development, whether a system or application software, are based on memory locks that are very error prone. Transactional Memory (TM) is another concurrency management model introduced to simplify both tasks of parallel software development and hardware design. A transaction is a sequence of instructions executed atomically, which means that either they are executed completely or not at all. That implies rolling back any changes made into the system. Transactional memory system design is currently being studied on large multiprocessor using high level simulators. In this research, we designed a transactional memory embedded system and implemented it on FPGA. For achieving this goal, a multiprocessor platform simulator, named UTBlazer, is implemented in this thesis that supports Xilinx MicroBlaze processor. This simulator enables the designer to model and simulate an embedded system through a graphical user interface. Also the parallel programs written for this platform may be debugged by a graphical debugger in UTBlazer. A scalable parallel architecture based on network-on-chip topology is also modeled with this simulator. This system currently supports both locks and transactions for synchronization. Two separate APIs have been provided for applications to synchronize processors based on any of these methods. Also a tool named Grid Builder is created for automatic grid model generation and parallel program compilation. A number of embedded system benchmarks are implemented and tested on this architecture in order to compare the two concurrency methods. The results show that transactional memory mechanism performs slower in applications that require less synchronization due to higher communication overheads. This method is faster in other applications where the synchronization is highly contending and there are a small number of processors. By extending the number of processors, transactional memory slows down again because of the employed validation method which is based on locking all processors before each validation phase.