1 / 44

Department of Computer and IT Engineering University of Kurdistan Computer Architecture

Department of Computer and IT Engineering University of Kurdistan Computer Architecture Microprogrammed Control By: Dr. Alireza Abdollahpouri. وظایف واحد کنترل. تنظیم مسیرهای لازم جهت اجرای دستورالعملها متغیرهای کنترلی تنظیم گذرگاه مشترک پایه های رجیسترها انتخاب مولتی پلکسرها

terah
Download Presentation

Department of Computer and IT Engineering University of Kurdistan Computer Architecture

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Department of Computer and IT Engineering University of Kurdistan Computer Architecture Microprogrammed Control By: Dr. AlirezaAbdollahpouri

  2. وظایف واحد کنترل • تنظیم مسیرهای لازم جهت اجرای دستورالعملها • متغیرهای کنترلی • تنظیم گذرگاه مشترک • پایه های رجیسترها • انتخاب مولتی پلکسرها • تعیین نوع عمل ALU • ... • در هرلحظه گروههایی از بیتهای کنترلی در وضعیتSET یا RESET قرار دارند • ایجاد یک سری مراحل متوالی جهت اجرای ریزعمل ها

  3. بلاک دیاگرام واحدکنترل INSTRUCTION CONTROL UNIT CONTROL WORD

  4. روشهای طراحی واحد کنترل • کنترل سیم بندی شده (HardWired) • خروجی واحد کنترل ، متغیرهای کنترلی سخت افزاری است که مسیرهای داده را در داخل CPU تعیین می کنند. • با تغییر دستورالعمل ها این مدارات بايد از نو طراحي شوند. • کنترل ریزبرنامه نویسی شده (MICROPROGRAM) • کلمات کنترلی در یک حافظه ذخیره ميشوند.(معولا از نوع ROM يا EPROM) • برای اجرای یک دستورالعمل، به ترتیب سیگنالهای کنترلی که از قبل در حافظه ذخیره شده اند تولید ميشوند. • با تغییردستورالعملها فقط محتویات این حافظه تغییر خواهد کرد. • كامپيوتري كه از واحد كنترل ريزبرنامه نويسي استفاده ميكند، دو حافظه مجزا خواهد داشت: حافظه اصلي و حافظه كنترلي. • حافظه اصلي براي ذخيره برنامه ها و داده ها در اختيار كاربر است.

  5. کنترل ریزبرنامه نویسی شده مولد آدرس بعدی رجيسترآدرس کنترل CAR حافظه کنترل ROM رجيسترداده کنترل CDR ورودي خارجي كلمه كنترلي اطلاعات آدرس بعدي

  6. Control Address Register (CAR) • رجيسترآدرس کنترل حاوی آدرس ریز اعمالی است که جهت اجرای دستورالعمل نیاز است. • هنگام روشن شدن كامپيوتر، آدرس اوليه در CAR بار ميشود كه به زيربرنامه Fetch اشاره ميكند.(يا پرش به زيربرنامه Fetch) حافظه کنترل ROM رجيسترآدرس کنترل CAR

  7. حافظه کنترل • ریزعملياتهاي(Micro-operation) لازم جهت اجرای یک دستورالعمل را ذخیره می کند. • از نوع ROM است. • ROM یک مدار ترکیبی بوده و نیاز به کلاک ندارد و همچنين سيگنال خواندن لازم نيست. • تا زمانی که آدرس ثابت باقی بماند خروجی ROM تغییر نمی کند. • خروجی این حافظه ، کلمه کنترل (Control Word ) است.

  8. Control Data Register (CDR) • رجيسترداده کنترل حاوی سیگنالهای کنترلی مربوط به ریزعملی است که از حافظه کنترل انتخاب شده است. • ایجاد خروجی های لازم برای ریزعمل فعلی. • تعیین ریزعمل بعدی • ادامه دستورالعمل قبلی • واکشی دستورالعمل بعدی • اجرای زیربرنامه • انشعاب به بخش دیگری از حافظه کنترل • ميتوان CDR را حذف كرد و كلمه كنترلي و اطلاعات آدرس بعدي را مستقيما از خروجي ROM گرفت. حافظه کنترل ROM CONTROL WORD رجيسترداده کنترل CDR اطلاعات آدرس بعدي

  9. روال اجرای دستورالعمل • واکشی ( FETCH ) • دیکد (DECODE ) • محاسبه آدرس غير مستقيم (Indirect address) • اجرا ( EXECUTE )

  10. ریز عملهای تکراری • واکشی (Fetch) • دیکد(Decode) • محاسبه آدرس غير مستقيم(Indirect) • روال هایی برای تولید سیگنالهای مربوط به واکشی ، دیکد و آدرس وجود دارد. • این روالها برای تمام دستورالعملها مشترک خواهند بود.

  11. ریزعملهای اختصاصی • اجرا EXECUTE • برای ایجاد سیگنال های کنترلی لازم بطور متوالی نیاز به ریز دستورالعمل های اختصاصی داریم • برای هر دستورالعمل،روالی تعریف میشود که مولد سیگنالهای کنترلی لازم است • تعداد این روال ها برابر با تعداد دستورات است. • بعد از تکمیل هر روال، کنترل به روال واکشی (Fetch)منتقل میشود.

  12. ریز عملهای شرطی • آدرس غیر مستقیم • با توجه به بیت های خاصی در دستورالعمل ممکن است این روال اجرا شود . • در صورت اجرای این روال سیگنالهای کنترلی لازم جهت تولید آدرس غیرمستقیم تولید میشود.

  13. I OP-code Instruction Code MAPPING LOGIC BRANCH LOGIC بيتهاي وضعيت MUX SUBROUTINE REGISTER (SBR) CONTROL ADDRESS REGISTER (CAR) INCREAMENT CONTROL MEMORY ROM MICRO OPERATIONS آدرس انشعاب تصميمات پرش از روي بيتهاي وضعيت و آدرس انشعاب گرفته ميشود.

  14. نگاشت (Mapping) OPCODE ADDRESS 0110 • تبديل بيتهاي op-code به يك آدرس در حافظه • كنترل كه روال مربوطه در آن قرار دارد نگاشت • يا mapping ناميده ميشود. MAPPING LOGIC 0 XXXX 00 CONTROL MEMORY 128 كلمه CAR 7 بيت ADDRESS 0 1100 00

  15. هر دستورالعمل می تواند 4 سلول حافظه را استفاده کند دستورالعملهای طولانی ميتوانند از قسمت های بالایی حافظه استفاده کنند نگاشت (Mapping) CONTROL MEMORY 128 WORD 0 0000 00 MAPPING 0000 OPCODE 0 1111 00 1111 10000000 1 1111 11

  16. حافظه کنترل MAIN • هر دستورالعمل 4 خانه حافظه • تعداد دستورالعملها = 16 • اندازه حافظه کنترل = 64 • درصورتی که از 128 سلول حافظه استفاده شود 64 سلول انتهایی خالی خواهد بود 64 EXTRA 64

  17. ADD :------ ----------- ------------ ADD M 4 BRANCH:----- -------- 4 MAP STORE:----- ---- ---------- 4 EXCHANGE:---- --------- 4 SUB:-- --------- 4 …..

  18. MUX RAM 2048*16 11 AR Address PC 11 16 MUX DR SBR CAR ROM 128*20 حافظه كنترلي ALU AC 16

  19. 4 رجيستر در واحد پردازنده (DR و AC 16 بيتي و AR و PC 11 بيتي) و 2 رجيستر در واحد كنترل(CAR و SBR هفت بيتي) وجود دارند. • در اين كامپيوتر براي انتقال بين رجيسترها بجاي BUS از MUX استفاده ميشود. • DR ميتواند از حافظه، PC و يا AC اطلاعات بگيرد. • داده ورودي به حافظه از DR مي آيد و داده خروجي تنها در DR ريخته ميشود.

  20. فرمت دستورالعمل ها در حافظه اصلي (RAM) 11 BIT 4 BIT I OP-CODE ADDRESS 16 دستورالعمل نحوه آدرسدهی 211=2048 سلول حافظه

  21. چند دستورالعمل اوليه

  22. فرمت ریزدستورالعملها در حافظه كنترلي (ROM) 3 3 3 2 2 7 F1 F2 F3 CD BR AD BRANCH FIELD 1 FIELD 2 FIELD 3 ADDRESS CONDITION F1,F2 وF3 می توانند همزمان اجرا شوند مثلا 000100101 به معناي انجام دو عمليات همزمان به صورت روبرو است: F2=100 DR←M[AR] F3=101 PC←PC+1

  23. ریز عملياتهای F1

  24. ریز عملياتهای F2

  25. ریز عملياتهای F3

  26. CONDITION CD

  27. BRANCH

  28. واکشی دستورالعمل (FETCH) AR←PC DR←M[AR],PC←PC+1 AR←DR(0-10),CAR(2-5) ←DR(11-14), CAR(0,1,6) ←0 داراي سه ريزعمليات است كه در آدرسهاي 64و65و66 قرار ميگيرند. ORG 64 FETCH : PCTAR U JMP NEXT READ,INCPC U JMP NEXT DRTAR U MAP

  29. واکشی دستورالعمل (FETCH) ترجمه برنامه میکروپروگرام به کد باینری

  30. ADD ORG 0 ADD: NOP I CALL INDIRECT READ U JMP NEXT ADD U JMP FETCH

  31. BRANCH ORG 4 BRANCH : NOP S JMP OVER NOP U JMP FETCH OVER: NOP I CALL INDIRECT ARTPC U JMP FETCH

  32. STORE ORG 8 STORE : NOP I CALL INDIRECT ACTDR U JMP NEXT WRITE U JMP FETCH

  33. EXCHANGE ORG 12 EXCHANGE : NOP I CALL INDIRECT READ U JMP NEXT ACTDR,DRTAC U JMP NEXT WRITE U JMP FETCH

  34. FETCH & INDIRECT ORG 64 FETCH : PCTAR U JMP NEXT READ,INCPC U JMP NEXT DRTAR U MAP INDIRECT : READ U JMP NEXT DRTAR U RET

  35. ADD: NOP I CALL INDIRECT READ U JMP NEXT ADD U JMP FETCH ADD X BRANCH : NOP S JMP OVER NOP U JMP FETCHOVER: NOP I CALL INDIRECT ARTPC U JMP FETCH STORE : NOP I CALL INDIRECT ACTDR U JMP NEXT WRITE U JMP FETCH MAP EXCHANGE : NOP I CALL INDIRECT READ U JMP NEXT ACTDR,DRTAC U NEXT WRITE U JMP FETCH FETCH : PCTAR U JMP NEXT READ,INCPC U JMP NEXT DRTAR U MAP INDIRECT : READ U JMP NEXT DRTAR U RET نكته: در خانه هايي كه استفاده نميشوند دستور پرش به روتين Fetch نوشته ميشود.

  36. MAP MUX SELECT SBR CAR INC 1 MUX I S Z CONTROL MEMORY MICRO-OP CD BR AD

  37. طراحي واحد كنترل • براي هركدام از فيلدهاي F1 و F2 و F3 يك ديكودر قرار ميدهيم تا ريزعملياتها را از يكديگر تشخيص دهيم. • هر يك از خروجيهاي ديكودرها به قسمت مشخصي از پردازنده وارد ميشود. به عنوان مثال براي F1=101 يا DRTAR و F1=110 يا PCTAR بايد خط لود AR فعال شود. • تمام خروجيهاي سه ديكودر كه به نوعي به AC مربوط ميشوند بايد به مدار ALU منقل گردد.

  38. F1 F2 F3 DEC3*8 DEC3*8 DEC3*8 AND ALU ADD DRTAC PC DR MUX DRTAR AC PCTAR LD LD AR

  39. مدار كلي

  40. نحوه تعيين آدرس بعدي در حافظه كنترلي • هدف طراحي مداري است كه خطوط انتخاب MUX اصلي و همچنين خط لود SBR را توليد ميكند. • ميتوان بجاي رجيستر SBR از Stack براي ذخيره آدرس برگشت در رفتن به روتينها استفاده نمود.

  41. نحوه تعيين آدرس بعدي در حافظه كنترلي L = I’1I0T S1=I1 S0 = I1I0 + I’1T

  42. حافظه كنترلي دو سطحی (استفاده از نانو حافظه) اگر در یک سیستم نیاز باشد که تعداد بسیار زیادی سیگنال کنترلی تولید شود و نیز تعداد سیگنالهای کنترلی مجزا محدود و تعداد کمی باشند، به جای قرار دادن تمامی این سیگنالها در حافظه میکرو، فقط سیگنالهای مستقل را در یک حافظه تحت عنوان حافظه نانو قرار داده و در حافظه میکرو آدرس این سیگنالها(کلمات) کنترلی را مشخص میکنیم. در این حالت، ما دیگر تعداد زیاد و تکراری کلمات کنترلی را در حافظه میکرو نداریم و به جای آن آدرسهای تکراری که حافظه کمتری اشغال میکنند را داریم. . مثال 2 مثال 1

  43. حافظه كنترلي دو سطحی (استفاده از نانو حافظه) مثال: فرض کنید که در یک سیستم تعداد 300 کلمه کنترلی را داریم. از این 300 تا تعداد 60 کلمه مستقل هستند(240 تا تکراری هستند). اگر طول کلمات کنترلی 150 بیت باشد(تعداد سیگنالهای کنترلی 150 باشد) خواهیم داشت: 1- در حالت معمول و بدون استفاده از حافظه نانو، حجم حافظه میکرو برابر 300*150 است. 2- در صورت استفاده از حافظه نانو ، حجم این حافظه برابر 60*150 است. زیرا در این حافظه فقط قرار است که کلمات کنترلی مستقل و غیر تکراری قرار گیرند. در حالت دوم، حافظه میکرو فقط باید آدرس 300 تا کلمه کنترلی مورد نیاز را از حافظه نانو مشخص نماید. برای مشخص کردن (آدرس دهی) 60 کلمه کنترلی، به 6 بیت احتیاج داریم. چون سیستم به 300 سیگنال کنترلی نیاز دارد، پس در این حالت حجم حافظه میکرو برابر است با: 300*6. میزان صرفه جویی: bits 34200 = (300*6 + 150*60)-(300*150)

  44. حافظه كنترلي دو سطحی (استفاده از نانو حافظه) یک پردازنده دارای ۱۷۵ سیگنال کنترلی و ۲۵۰ ریزدستور است. اگر۲۰۰ ریزدستور متفاوت در این پردازنده وجود داشته باشد‌، حجم کل حافظه واحد کنترل در صورت استفاده از حافظه نانو چقدر است؟ الف- ۲۸۰۰۰بیتب- ۳۲۰۰۰بیتج- ۲۴۰۰۰بیتد- ۳۷۰۰۰بیت

More Related