بخشی از پاورپوینت
اسلاید 1 :
معماري کامپيوتر
فصل هفتم: کنترل کامپيوتر با ريزبرنامه
Microprogram Control Organization
اسلاید 2 :
تعاريف
وظيفه يک واحد کنترل، بکارگیری دنبالهای از ریزعملها است.
پیچیدگی سیستم دیجیتال به تعداد ریزعملهای متوالی که اجرا میکند، وابسته است.
دو نوع اصلي از واحد کنترل:
کنترل سيمبندي (Hardwired): در حالت محدود بودن انواع ريزعمليات و پيچيدگي کم سيستم از اين کنترل استفاده ميشود. در اينحالت سيگنالهاي کنترلي بوسيله مدارهاي منطقي طراحي شده توليد ميشوند.
کنترل ريزبرنامه (Micro programming): اين نوع کنترل در حالت پيچيدگي سيستم بکار ميرود و سيگنالهاي کنترلي، بيتهاي ذخيره شده در حافظه هستند که به بخشهاي مختلف سيستم ديجيتال ارسال ميگردند.
اسلاید 3 :
تعاريف
مزيت اصلي کنترل ريزبرنامه، توانايي تغيير عمليات کنترل سيستم به دنبال تغيير سيستم با هزينه اندک است، زيرا فقط کافي است ريزبرنامه عوض شود و تغيير سخت افزار لزومي ندارد.
کلمه کنترل (Control word): در روش کنترل ريزبرنامه، سيگنالهاي کنترل کننده، مقادير دودويي هستند که يک يا چند ريزعمل را مشخص مينمايند. هر سطر ريز برنامه را ”کلمه کنترل“ نامند. در واقع هر کلمه کنترل حاوی یک ریز دستورالعمل است.
اسلاید 4 :
تعاريف
ريزدستور (Micro Instruction): هر کلمه کنترل، حاوي يک ريزدستور است که اجراي يک يا چند ريزعمل را بعهده دارد.
ريزبرنامه (Micro Program): مجموعهاي از ريزدستورها بطور متوالي، يک ريزبرنامه را تشکيل ميدهند. در مجموع، عمليات کنترل سيستم ديجيتال را ريزبرنامه بعهده دارد. عموماً ريزبرنامه نيازي به تغيير ندارد و ميتواند در حافظه فقط خواندنی (ROM) نگهداري شود.
حافظهاي که ريز برنامه مربوط به کنترل سيستم در آن قرار دارد را ” حافظه کنترل“ ميناميم.
اسلاید 5 :
ساختار کنترل ريزبرنامه
بعد از طراحي و تشخيص بيتهاي کنترل کننده که بصورت ريزدستورات در حافظه کنترل قرار دارد، آنچه حائز اهميت است، توالي اعمال ريزدستورات است. اين ترتيب بايد بصورتي باشد که فازهاي گوناگون اجراي دستورات یعنی:
برداشت دستورالعمل ماشین از حافظه اصلی،
محاسبه آدرس موثر،
اجرای عمل مربوط به دستورالعمل ماشین،
برگرداندن کنترل بطور متوالي انجام شوند.
هر دستور العمل ماشين، موجب اجرای رشتهای از ریزدستورالعملهای موجود در حافظه کنترل میشود. ریز برنامه از ریز دستور تشکیل شده که بنوبه خود انواع سیگنالهای کنترل را برای اجرای ریزعمل روی ثباتها مشخص میکنند.
اسلاید 6 :
ساختار کنترل ريزبرنامه
حداقل ساختار لازم براي کنترل بصورت ريزبرنامه:
حافظه کنترل (ROM): اين حافظه حاوي ريزدستورات است.
ثبات آدرس کنترل (CAR): اين ثبات حاوي آدرس ريزدستور مورد نظر براي اعمال به سيستم است.
ثبات داده کنترل (CDR): اين ثبات ريزدستور خوانده شده از حافظه را نگه میدارد. ریز دستور حاوی یک کلمه کنترل است که یک یا چند ریز عمل را برای پردازشگر داده مشخص میکند.
توليد کننده آدرس بعدي (Sequenser): اين بخش، آدرس دستور بعدي از حافظه را توليد ميکند. بعد از اجرای ریز اعمال آدرس بعدی مشخص میشود.
مکان ریزدستور بعدی یا خانه بعدی حافظه کنترل است یا در جایی دیگر این حافظه واقع است. باین دلیل تعدادی از بیتهای ریزدستور فعلی برای کنترل ایجاد آدرس بعدی استفاده میشود. همچنین آدرس بعدی میتواند تابعی از شرایط ورودی خارجی نیز باشد.
اسلاید 7 :
ساختار کنترل ريزبرنامه
همزماني واحد کنترل با سيستم: در سيستم ديجيتال، پالس ساعت، هماهنگي ريزعملها را تعيين مينمايد و کلمه کنترل نوع و چگونگي ريزعملها را مشخص مينمايد.
در واحد کنترل وارد شدن آدرس جديد به CAR خروج داده جديد از حافظه را سبب ميشود و تا بودن آدرس در وروديهاي آدرس حافظه، داده کنترل در خروجي آن ميماند به همين دليل در برخي از واحدهاي کنترل جزء CDR حذف ميشود.
اسلاید 8 :
توليد آدرس ريزدستور
ريزدستوراتي که در حافظه کنترل ذخيره ميشوند، بصورت گروهي ميباشند که هر گروه، يک دستور خاص در ماشين را ارئه مينمايد. همچنين ممکن است يک گروه، يکي از فازهاي مختلف را پياده نمايد. به هر کدام از اين گروهها يک «روتين» گفته ميشود.
اين روتينها در محلهاي مختلف حافظه کنترل ذخيره شدهاند که براي اجراي هر دستور ماشين بايد محل روتين کنترلي آن مشخص گردد و از آن محل، اجراي ريزدستور شروع شده و بعد از اجراي يک دستور ماشين، روتين بعدي شروع بکار نمايد. روتين هاي برداشت دستورالعمل ماشین از حافظه، محاسبه آدرس موثر و اجراي دستور، پيدرپي عمل مينمايند.
نگاشت (Mapping): براي بدست آوردن آدرسي از حافظه کنترل که ريزدستورات متوالي مربوط به يک دستور در آن واقع است، ميتوان با استفاده از کد دستور، آدرس را توليد نمود، بطوريکه براي هر کد دستور، آدرس منحصر بفردي توليد گردد، اين عمل را نگاشت گويند.
اسلاید 9 :
تولید آدرس ریزدستور
بدست آوردن آدرس موثر از طریق ریزدستور انشعاب قابل دسترسی است.
متناسب با کد دستور به زیر روال خاص برویم و ریز دستورات را اجرا کنیم. در این مرحله عملیات نگاشت لازم است.
ریزبرنامههایی که از زیرروال استفاده می کنند، به یک ثبات خارجی برای نگهداری آدرس برگشت نیاز دارند. آدرس برگشت نمیتوانند در ROM ذخیره شود.
اسلاید 10 :
توليد آدرس ريزدستور
قابلیتهای لازم برای توالی آدرس در حافظه کنترل:
افزايش ثبات آدرس كنترل به ميزان يك واحد(براي ريزدستورات متوالي).
انشعاب
عمليات نگاشت (Mapping)، براي بدست آوردن آدرس شروع ريزدستورات با استفاده از کد دستور.
امکانات فراخواني و بازگشت از برنامههاي فرعي.
اسلاید 11 :
بلاک دياگرام يک حافظه کنترل و سخت افزار لازم براي انتخاب آدرس ريزدستورالعمل بعدي
اسلاید 12 :
توليد آدرس ريزدستور
با توجه به شکل اسلايد قبل، انتخاب محتواي CAR توسط يک مالتي پلکسر (4x1) صورت ميگيرد. وروديهاي اين مالتي پلکسر از چهار منبع افزايشدهنده يک واحدي، ثبات برنامه فرعي، مدارهاي نگاشت و نيز از آدرس پرش (محتواي خود حافظه کنترل) تأمين ميشوند.
انتخاب يکي از اين چهار حالت نيز توسط محتواي فعلي حافظه کنترل و نيز بيتهاي حالت ناشي از اجراي دستورات صورت ميگيرد.
اسلاید 13 :
توليد آدرس ريزدستور
افزايش دهنده يک واحدي:
در حالتي اين منبع انتخاب ميشود که ريزدستور بعدي، دقيقاً بعد از ريز دستور فعلي در حافظه کنترل واقع باشد.
ثبات برنامه فرعي:
هنگامي که يک فراخواني سابروتين (برنامه فرعي) صورت ميگيرد، آدرس برگشت در ثباتي به نام SBR ذخيره ميگردد و سپس عمل پرش به سابروتين انجام ميگيرد، در برگشت از سابروتين همان ثبات بعنوان منبع توليد آدرس بعدي در نظر گرفته خواهد شد.
اسلاید 14 :
توليد آدرس ريزدستور
آدرس پرش:
در اينحالت، آدرس گروه ريزدستورات بعدي از درون خود محتواي مکان فعلي بدست ميآيد که آدرس پرش به مکان ديگري از حافظه است.
مدارهاي نگاشت:
براي رسيدن به مکان ذخيره ريزدستورات مربوط به يک دستور ماشين، کد دستور به يک آدرس براي حافظه کنترل تبديل ميگردد.
اسلاید 15 :
تبديل کد دستورالعمل به آدرس ريزدستور
فرض كنيد حافظه كنترل 128 كلمه داشته باشد، در نتيجه به آدرس هفت بيتي نياز خواهد داشت. براي هر كد عمليات يك روال ريزبرنامه درحافظه وجود دارد كه دستورالعمل را اجرا ميكند. نمونه سادهاي از فرآيند نگاشت كه كد عمليات 4 بيتي را به آدرس 7 بيتي براي حافظه كنترل تبديل ميكند در شكل زيرنشان داده شده است.
لذا براي هر دستورالعمل كامپيوتر مي توان يك روال ريزبرنامه با ظرفيت چهار ريزدستورالعمل داشت. اگر روال به بيش از چهار ريزدستورالعمل نياز داشته باشد ، مي توان از آدرسهاي 1000000 تا 1111111 استفاده كرد و اگر كمتراز چهار ريز عمل به كار رود، از مكان هاي بلا استفاده ميتوان براي روال هاي ديگر استفاده كرد .
اسلاید 16 :
آرايش كامپيوتر
در ادامه به شرح يک کامپيوتر با واحد کنترل ريزبرنامه ميپردازيم.
كامپيوتر مورد نظر از دو واحد حافظه تشكيل شده است : يكي حافظه اصلي براي ذخيره دستورالعمل ها و داده ها و ديگري حافظه كنترل براي ذخيره ريزبرنامه . چهار ثبات به واحد پردازنده و دو ثبات به واحد كنترل اختصاص يافته اند. ثباتهاي پردازنده عبارتند از شمارنده برنامه PC، ثبات انباره AC، ثبات داده DR و ثبات آدرس AR .
ثباتهاي واحد کنترل عبارتند از: CAR و SBR.
انتقال اطلاعات بين ثبات هاي پردازنده از طريق مولتي پلكسر صورت مي گيرد و نه با استفاده از گذرگاه مشترك .
اسلاید 17 :
پيکربندي سختافزار کامپيوتر
اسلاید 18 :
دستورالعملهاي کامپيوتر
- قالب دستورالعمل:
I: يک بيت براي آدرسدهي غيرمستقيم.
کد عمل (Opcode): 4 بيت براي کد عمل
آدرس (Address): 11 بيت آدرس براي حافظه سيستم
با فرمت بالا، ميتوان شانزده دستور رجوع به حافظه را تعريف کرد و با 11 بيت آدرس ميتوان 2048=211 خانه از حافظه را آدرس دهي نمود.
اسلاید 19 :
قالب ريز دستورالعملها
قالب ريزدستورالعملها براي حافظه كنترل در شكل زيرنشان داده شده است. ريزدستورات 20 بيتي هستند. هر ريزدستوربه چهار بخش عملياتي تقسيم شده است.
F1,F2,F3 = Microops = 9 بيت = نوع عمل را تعيين ميکند
CD = Condition = 2 بيت = شرايط
BR = Branch = 2 بيت = نوع پرش
AD = Address field = 7 بيت = آدرس
اسلاید 20 :
فيلدهاي ريزعمل
هر کدام از فيلدهاي F1، F2 و F3 سه بيت هستند، بنابراين ميتوان 21 ريزعمل تعريف نمود.
ريزعملهايي که با هم تداخل دارند نميتوانند در يک ريز دستور استفاده گردند.
اگر در يک ريزدستور کمتر از سه ريز عمل انتخاب گردد، به جاي هر کدام از F1، F2 و F3 بايد 000 قرار دهيم.
هرگاه ريزدستورالعمل هيچ عملي نداشته باشد از سمبل (NO OPERATION) NOP استفاده ميشود. اسمبلر اين سمبل را به 9 عدد صفر (000000000)ترجمه ميكند .

