410 likes | 632 Views
درس معماری کامپیوتر فصل هفتم کنترل ریزبرنامه ریزی شده Micro-programmed Control تهیه شده توسط حسین امیرخانی. مقدمه. یادآوری: Micro-operation : ریزعمل Macro-operation یا Instruction : دستورالعمل دنبالهای از ریزعملیات. وظیفهی واحد کنترل:
E N D
درس معماری کامپیوترفصل هفتمکنترل ریزبرنامه ریزی شدهMicro-programmed Controlتهیه شده توسط حسین امیرخانی
مقدمه • یادآوری: • Micro-operation: ریزعمل • Macro-operation یا Instruction: دستورالعمل • دنبالهای از ریزعملیات. • وظیفهی واحد کنترل: • راه اندازی دنبالهای از ریزعملیات برای اجرای دستورالعملهای کاربر. حافظهی اصلی واحد کنترل دستورالعمل اجرای ریزعملیات
انواع واحد کنترل 1. واحد کنترل سخت افزاری یا سیم بندی شده (Hardwired) 2. واحد کنترل ریزبرنامه ریزی شده (Mircro-programmed)
واحد کنترل سخت افزاری • واحد کنترل کامپیوتر پایهی فصل 5 به این طریق طراحی شد. • ریزعملیات مربوط به کلیهی دستورالعملها تحلیل شده و از طریق تکنیکهای مدارهای منطقی رایج، سخت افزار مربوطه طراحی میشود. • مثال: برای ثبات AR
واحد کنترل سخت افزاری • افزودن دستورالعمل در واحد کنترل سخت افزاری: • بسیار مشکل. • راه حل جایگزین: • واحد کنترل ریزبرنامه ریزی شده.
واحد کنترل ریزبرنامه ریزی شده • ابتدا از طریق تکنیکهای سخت افزاری، واحدی طراحی میشود که قابلیت اجرای ریزعملیات مختلف را دارد. • برای اجرای هر دستورالعمل، کافی است ریزعملیات مربوطه را به واحد فوق بدهیم. • ریزعملیات مربوط به هر دستورالعمل در حافظهای خاص به نام حافظهی کنترلی ذخیره میشود. واحدی با قابلیت اجرای ریزعملیات ریزعمل اجرای ریزعمل
مقایسهی واحدهای کنترل واحد کنترل ریزبرنامه ریزی شده حافظهی اصلی اجرای ریزعملیات واحدی با قابلیت اجرای ریزعملیات حافظهی کنترل دستورالعمل ریزعملیات حافظهی اصلی واحد کنترل سخت افزاری دستورالعمل اجرای ریزعملیات
مقایسهی واحدهای کنترل • واحد کنترل سخت افزاری: • تغییر در آن مشکل است. • میتوان سخت افزار بهینه طراحی کرد: سرعت بالاتر. • واحد کنترل ریزبرنامه ریزی شده: • تغییر در آن ساده است: تغییر در محتویات حافظهی کنترل بدون نیاز به تغییر در سخت افزار.
اصطلاحات • به هر کلمه در حافظهی کنترل یک ریزدستورالعمل گویند (Micro-instruction). • هر ریزدستورالعمل، یک کلمهی کنترل (control word) است که مشخص میکند چه ریزعملیاتی اجرا شوند و چه ریزعملیاتی راکد باشند. • به مجموعهای از ریزدستورالعملها یک ریزبرنامه (micro-program) گویند.
بنابراین، در کنترل ریزبرنامه ریزی شده، دو حافظه در سیستم داریم: • حافظهی اصلی • در اختیار کاربر برای ذخیرهی برنامهها و دادهها. • در حین اجرای برنامه ممکن است تغییر کند. • حافظهی کنترل • در اختیار طراح برای ذخیرهی ریزبرنامهها. • محتوای آن در حین اجرای برنامه ثابت است. • هریک از دستورالعمل و ریزدستورالعمل، در کدام حافظه قرار دارند؟
حافظهی کنترلی • میتواند از نوع فقط خواندنی (ROM) باشد یا قابلیت نوشتن هم داشته باشد (RAM). • اگر از RAM استفاده شود به آن ریزبرنامهنویسی پویا (dynamic microprogramming) گویند. • معمولاً ROM استفاده میشود: • ارزانتر و سریعتر از RAM، • کاربر معمولی نمیتواند محتوای آنرا تغییر دهد.
آدرس دهی حافظهی کنترلی • حافظهی کنترلی نیاز به ثباتی برای مشخص کردن آدرس ریزدستورالعمل دارد: • Control Address Register (CAR) • همینطور مداری برای تولید آدرس بعدی حافظهی کنترلی مورد نیاز است: • Next Address Generator یا Sequencer (توالیگر).
توالیگر آدرس • در حافظهی کنترل، برای هر دستورالعمل، یک روال (routine) خاص شامل مجموعهای از ریزدستورالعملها وجود دارد. • به فرآیند تبدیل بیتهای کد دستورالعمل به آدرس روال مربوط به آن دستورالعمل در حافظهی کنترلی، نگاشت (mapping) گوییم. • توالیگر آدرس باید قابلیت افزایش مقدار CAR را داشته باشد تا کلیهی ریزدستورالعملهای روال مربوط به یک دستورالعمل را آدرس دهی نماید.
توالیگر آدرس • لازم است برای ساده کردن ریزبرنامه نویسی، امکان فراخوانی و بازگشت از زیرروال و همچنین امکان پرشهای شرطی و غیرشرطی فراهم شود. • بنابراین، قابلیتهای مورد نیاز توالیگر آدرس عبارتند از: • نگاشت. • افزایش CAR. • پرش شرطی و غیرشرطی. • فراخوانی و بازگشت از زیرروال.
بیتهایی از وضعیت سیستم بازگشت از زیرروال شرط پرش محل پرش
عملیات نگاشت (Mapping) • مثالی از یک نوع نگاشت: • فرض: حافظهی کنترل دارای 128 کلمه است. • در نگاشت فوق، برای هر دستورالعمل میتوان یک روال ریزبرنامه با ظرفیت چهار ریزدستورالعمل داشت. • اگر روال به بیش از چهار ریزدستورالعمل نیاز داشت، میتوان از آدرسهای 1000000 تا 1111111 استفاده نمود.
مثالی از طراحی واحد کنترل ریزبرنامه ریزی شده انتقال اطلاعات از طریق مولتی پلکسر انجام میشود و نه باس تنها ثباتی که با حافظه ارتباط مستقیم دارد: DR ثباتهای واحد کنترل ALU برروی DR و AC عملیات را انجام داده و حاصل را در AC قرار میدهد.
فرمت دستورالعملهای کامپیوتر مثال فوق برای سادگی
فرمت ریزدستورالعملها برای هر ریزدستور نمیتوان بیش از سه ریزعمل انتخاب نمود. اگر کمتر از سه ریزعمل مورد نیاز بود، از کد 000 با سمبول NOP استفاده میکنیم. آیا F1=010 و F2=001 و F3=000 معتبر است؟ خیر! عملیات متضاد.
فرمت ریزدستورالعملها نوع پرش آدرس پرش شرط پرش (condition) مستقل از AD و CD
ریزبرنامه نویسی • هر سطر از حافظهی کنترلی: یک ریزدستورالعمل • بهصورت سمبولیک (اسمبلی) دارای 5 بخش است: Label: F1,F2,F3 CD BR AD • یکی از این سه مورد: • 1. یک برچسب • 2. سمبول NEXT: آدرس بعدی • 3. اگر BR برابر RET یا MAP • بود، AD خالی گذاشته میشود. برای آدرس دهی. میتواند خالی باشد. اگر یک یا دو سمبول، NOP بودند، آنها را نمینویسیم. اگر هر سه سمبول NOP بودند، NOP را مینویسیم.
روال برداشت (Fetch Routine) • روالی برای تولید ریزعملیات مربوط به فاز برداشت.
روال برداشت (Fetch Routine) • روال برداشت دارای سه ریزدستورالعمل است که در آدرسهای 64، 65 و 66 قرار میدهیم. • باید در بخشی از 64 کلمهی آخر حافظهی کنترل قرار گیرد، زیرا 64 کلمهی اول مربوط به روالهای 16 دستورالعمل است.
روال محاسبهی آدرس مؤثر • ریزدستورالعملهایی برای تولید ریزعملیات مربوط به محاسبهی آدرس مؤثر. • روش آدرس دهی غیرمستقیم (indirect) در همهی دستورات حافظهای میتواند بهکار رود. • آنرا بهصورت یک روال ذخیره میکنیم.
روال محاسبهی آدرس مؤثر • در خانهی 67 و 68 حافظهی کنترلی:
ریزبرنامهی مربوط به دستورالعمل EXCHANGE چون حساس به لبه (edge triggered) هستند امکان پذیر است
ریزبرنامهی باینری ریزبرنامهی سمبولیک اسمبلر ریزبرنامهی باینری
ریزبرنامهی باینری پرش بدون شرط به روال برداشت
طراحی بخش سخت افزاری واحد کنترل • یک بار طراحی شده و بعد از آن بدون تغییر باقی میماند. • تغییرات فقط در محتوای حافظهی کنترلی انجام میشود. واحد کنترل ریزبرنامه ریزی شده ریزعملیات حافظهی اصلی اجرای ریزعملیات واحدی با قابلیت اجرای ریزعملیات حافظهی کنترل دستورالعمل استخراج ریزعملیات از ریزدستورالعمل انتخاب آدرس بعدی
طراحی بخش سخت افزاری واحد کنترل استخراج ریزعملیات از ریزدستورالعمل و اجرای ریزعملیات
طراحی بخش سخت افزاری واحد کنترل مدار انتخاب آدرس بعدی (توالیگر)
طراحی بخش سخت افزاری واحد کنترل مدار انتخاب آدرس بعدی (توالیگر) ورودی و خروجی 7 بیتی امکان فراخوانی تا یک سطح