عنوان پایان‌نامه

بهینه سازی آزمون در تراشه های چند پردازنده ای



    دانشجو در تاریخ ۲۷ اردیبهشت ۱۳۹۴ ، به راهنمایی ، پایان نامه با عنوان "بهینه سازی آزمون در تراشه های چند پردازنده ای" را دفاع نموده است.


    محل دفاع
    کتابخانه مرکزی پردیس 2 فنی شماره ثبت: E 2676;کتابخانه مرکزی -تالار اطلاع رسانی شماره ثبت: 68456
    تاریخ دفاع
    ۲۷ اردیبهشت ۱۳۹۴

    تقاضای روزافزون برای تولید پردازنده‌های با کارایی بالا منجر به ظهور تراشه‌های چندپردازنده‌ای شده است؛ اما آزمون این پردازنده ها با چالش‌هایی روبه‌رو است. حجم عظیم داده آزمون و محدود بودن تعداد پایه‌های ورودی و خروجی از مهم‌ترین عواملی هستند که آزمون این تراشه‌ها را مشکل کرده‌اند. از سوی دیگر به دلیل کامل نبودن آزمون burn-in در فنّاوری‌های جدید ساخت، شدیدتر بودن اثرات پیری در این فنّاوری‌ها و ناقص بودن فرایند درستی‌سنجی و آزمون در تراشه‌های جدید، تراشه‌های چندپردازنده‌ای نوظهور با چالش قابلیت اطمینان روبه‌رو بوده و ممکن است که در هر زمان در محیط کار دچار اشکال شوند. لذا روش سنتی یک‌بار آزمون در محل ساخت دیگر جوابگو نبوده و لازم است که روش‌ها و مکانیسم‌هایی در معماری این پردازنده‌ها قرار داده شود که با این چالش‌ها مقابله کرده و عملکرد طولانی‌مدت آن‌ها را تضمین نماید. در این راستا در این پایان نامه ابتدا روشی برای تولید نوع ویژه ای از روتین های آزمون نرم افزاری که آنها را ریزآزمون می نامیم، ارائه شده است. سپس دو مکانیسم برای اعمال این ریزآزمون ها به هسته های پردازشی یک پردازنده بسا هسته ای برای شناسایی برخط اشکال‌های دائمی آنها ارائه شده است. در یکی از این روش‌ها، آزمون یک هسته پردازشی با متوقف کردن دوره ای عملکرد عادی هسته پردازشی و در روش دیگر، آزمون یک هسته پردازشی در زمان های بیکاری آن انجام می‌شود. در هر دو روش آزمون، برخی اجزاء سخت‌افزاری به معماری پردازنده بسا هسته ای اضافه شده‌اند. برخی از این اجزاء، داده آزمون را بین هسته‌های پردازشی توزیع می‌نمایند. برخی دیگر از اجزاء در مجاورت هسته‌های پردازشی قرار گرفته و مسئول ایزوله کردن هسته‌های پردازشی، اعمال داده آزمون و بررسی نتیجه آزمون به‌صورت دوره ای هستند. درنتیجه ما یک پردازنده بسا هسته ای خواهیم داشت که به‌صورت خودمختار و همزمان با عملکرد عادی سامانه، وضعیت سلامتی هسته‌های پردازشی خود را بررسی، هسته‌های پردازشی خراب را شناسایی و امکان حذف آن‌ها را از سامانه فراهم می‌نماید. نتایج تجربی ما نشان می‌دهد که زمان آزمون روش‌های پیشنهادی، کمتر از روش‌های موجود بوده و درعین‌حال سربار سخت‌افزاری آن کم و قابل چشم‌پوشی است. علاوه بر این روش‌های آزمون پیشنهادی، بدون اثر قابل‌توجه روی زمان آزمون و سربار سخت‌افزاری، به‌راحتی برای آزمون پردازنده های بسا هسته ای با بیش از هزار هسته پردازشی مقیاس‌پذیر هستند. واژه‌های کلیدی: آزمون برخط، اشتراک آزمون، پردازنده بسا هسته ای ، تراشه چندپردازنده‌ای، توزیع آزمون، خود آزمونی نرم‌افزاری، شبکه پتری
    Abstract
    Ever-increasing demand for processors with more processing power has led to emergence of processors with a large number of processing cores on a single chip. These processors are referred to as many-core processors. Testing of many-core processors faces new challenges. Huge test data volume, and limited number of input and output pins are the most important factors that make testing of these chips a real challenge. On the other hand, due to inadequate and non-aggressive burn-in testing, more pronounced aging effects, and incomplete testing and verification processes, these emerging many-core processors may experience faults and fail at any time in the field. Therefore, a one-time factory testing of these processors is not sufficient, and their success heavily depends on integrating architectures and mechanisms into the design to deal with in-field failure of components and guarantee their long-life reliable operation. In this direction, at first a method for generating a special kind of software-based test routines that are refered to as test snippets is proposed. Then two different mechanisms for application of these test snippets to the processing cores of a many-core processor are proposed that facilitate online detection of permanent faults in the processing cores. In the first mechanism, in order to test a processing core, its normal operation is interrupted. In the second mechanism, processing cores are tested during their idle times. In both of these testing mechanisms, several hardware test components are incorporated into the many-core architecture. Some of these test components handle distribution of test data among the processing cores. Several other components are situated near the processing cores and are responsible for isolating the neighboring processing cores, applying test, and checking test results periodically. In effect, we have a many-core processor that autonomously and concurrent with its normal operation checks the health status of its processing cores, detects faulty ones, and makes their omission from the system possible. Our experimental results show that test time of the proposed mechanisms is less than that of the existing methods, and at the same time, hardware overhead of the test components is ignorable. Furthermore, the proposed test mechanisms are easily scalable to a many-core processor with a thousand processing cores with an ignorable impact on test time and hardware overhead. Keywords: chip multiprocessor, many-core processor, online testing, Petri net, software-based self-testing, test distribution, test sharing