Transcript Document
Department of Computer and IT Engineering University of Kurdistan Computer Architecture Microprogrammed Control By: Dr. Alireza Abdollahpouri وظایف واحد کنترل • تنظیم مسیرهای الزم جهت اجرای دستورالعملها • متغیرهای کنترلی – – – – – تنظیم گذرگاه مشترک پایه های رجیسترها انتخاب مولتی پلکسرها تعیین نوع عمل ALU ... • در هرلحظه گروههایی از بیتهای کنترلی در وضعیت SETیا RESETقرار دارند • ایجاد یک سری مراحل متوالی جهت اجرای ریزعمل ها 2 بالک دیاگرام واحدکنترل INSTRUCTION CONTROL UNIT CONTROL WORD 3 روشهای طراحی واحد کنترل • کنترل سیم بندی شده ()HardWired – خروجی واحد کنترل ،متغیرهای کنترلی سخت افزاری است که مسیرهای داده را در داخل CPUتعیین می کنند. – با تغییر دستورالعمل ها این مدارات باید از نو طراحي شوند. • کنترل ریزبرنامه نویسی شده ()MICROPROGRAM – کلمات کنترلی در یک حافظه ذخیره میشوند(.معوال از نوع ROMیا )EPROM – برای اجرای یک دستورالعمل ،به ترتیب سیگنالهای کنترلی که از قبل در حافظه ذخیره شده اند تولید میشوند. – با تغییردستورالعملها فقط محتویات این حافظه تغییر خواهد کرد. – كامپیوتري كه از واحد كنترل ریزبرنامه نویسي استفاده میكند ،دو حافظه مجزا خواهد داشت :حافظه اصلي و حافظه كنترلي. – حافظه اصلي براي ذخیره برنامه ها و داده ها در اختیار كاربر است. 4 کنترل ریزبرنامه نویسی شده كلمه كنترلي رجیسترداده کنترل CDR حافظه کنترل ROM رجیسترآدرس کنترل CAR اطالعات آدرس بعدي 5 ورودي خارجي مولد آدرس بعدی )Control Address Register (CAR • رجیسترآدرس کنترل حاوی آدرس ریز اعمالی است که جهت اجرای دستورالعمل نیاز است. رجیسترآدرس کنترل CAR حافظه کنترل ROM • هنگام روشن شدن كامپیوتر ،آدرس اولیه در CARبار میشود كه به زیربرنامه Fetchاشاره میكند(.یا پرش به زیربرنامه )Fetch 6 حافظه کنترل • • • • • ریزعملیاتهاي( )Micro-operationالزم جهت اجرای یک دستورالعمل را ذخیره می کند. از نوع ROMاست. ROMیک مدار ترکیبی بوده و نیاز به کالک ندارد و همچنین سیگنال خواندن الزم نیست. تا زمانی که آدرس ثابت باقی بماند خروجی ROMتغییر نمی کند. خروجی این حافظه ،کلمه کنترل ( ) Control Wordاست. 7 )Control Data Register (CDR • رجیسترداده کنترل حاوی سیگنالهای کنترلی مربوط به ریزعملی است که از حافظه کنترل انتخاب شده است. • ایجاد خروجی های الزم برای ریزعمل فعلی. • تعیین ریزعمل بعدی CONTROL WORDرجیسترداده ادامه دستورالعمل قبلی واکشی دستورالعمل بعدی اجرای زیربرنامه انشعاب به بخش دیگری از حافظه کنترل – – – – • میتوان CDRرا حذف كرد و كلمه كنترلي و اطالعات آدرس بعدي را مستقیما از خروجي ROMگرفت. 8 کنترل CDR اطالعات آدرس بعدي حافظه کنترل ROM روال اجرای دستورالعمل • • • • 9 واکشی ( ) FETCH دیکد () DECODE محاسبه آدرس غیر مستقیم ()Indirect address اجرا ( ) EXECUTE ریز عملهای تکراری • واکشی ()Fetch • دیکد ()Decode • محاسبه آدرس غیر مستقیم()Indirect • روال هایی برای تولید سیگنالهای مربوط به واکشی ،دیکد و آدرس وجود دارد. • این روالها برای تمام دستورالعملها مشترک خواهند بود. 10 ریزعملهای اختصاصی • • • • • اجرا EXECUTE برای ایجاد سیگنال های کنترلی الزم بطور متوالی نیاز به ریز دستورالعمل های اختصاصی داریم برای هر دستورالعمل ،روالی تعریف میشود که مولد سیگنالهای کنترلی الزم است تعداد این روال ها برابر با تعداد دستورات است. بعد از تکمیل هر روال ،کنترل به روال واکشی ()Fetchمنتقل میشود. 11 ریز عملهای شرطی • آدرس غیر مستقیم • با توجه به بیت های خاصی در دستورالعمل ممکن است این روال اجرا شود . • در صورت اجرای این روال سیگنالهای کنترلی الزم جهت تولید آدرس غیرمستقیم تولید میشود. 12 I OP-code Instruction Code MAPPING LOGIC بیتهاي وضعیت BRANCH LOGIC MUX SUBROUTINE REGISTER (SBR) CONTROL ADDRESS REGISTER (CAR) INCREAMENT CONTROL MEMORY ROM MICRO OPERATIONS آدرس انشعاب 13 .تصمیمات پرش از روي بیتهاي وضعیت و آدرس انشعاب گرفته میشود نگاشت ()Mapping ADDRESS OPCODE 0110 •تبديل بيتهاي op-codeبه يك آدرس در حافظه كنترل كه روال مربوطه در آن قرار دارد نگاشت يا mappingناميده ميشود. MAPPING LOGIC 0 XXXX 00 CONTROL MEMORY 128كلمه 7بیت ADDRESS 14 CAR 0 1100 00 نگاشت ()Mapping • هر دستورالعمل می تواند 4سلول حافظه را استفاده کند • دستورالعملهای طوالنی میتوانند از قسمت های باالیی حافظه استفاده کنند 0 0000 00 0000 CONTROL MEMORY 128 WORD MAPPING 0 1111 00 10000000 1 1111 11 15 OPCODE 1111 حافظه کنترل • هر دستورالعمل 4خانه حافظه • تعداد دستورالعملها = 16 • اندازه حافظه کنترل = 64 • درصورتی که از 128سلول حافظه استفاده شود 64سلول انتهایی خالی خواهد بود 16 MAIN EXTRA 64 64 4 4 ADD :--------------------------BRANCH:------------ 4 STORE:----------------- 4 EXCHANGE:------------ 4 ADD M MAP SUB:---------….. 17 MUX 11 AR PC Address RAM 2048*16 11 16 MUX SBR CAR DR حافظه كنترلي ROM 128*20 ALU AC 18 16 • 4رجيستر در واحد پردازنده ( DRو 16 ACبيتي و ARو 11 PCبيتي) و 2رجيستر در واحد كنترل( CARو SBRهفت بيتي) وجود دارند. • در اين كامپيوتر براي انتقال بين رجيسترها بجاي BUSاز MUXاستفاده ميشود. • DRميتواند از حافظه PC ،و يا ACاطالعات بگيرد. • داده ورودي به حافظه از DRمي آيد و داده خروجي تنها در DRريخته ميشود. 19 فرمت دستورالعمل ها در حافظه اصلي ()RAM 11 BIT ADDRESS 211=2048سلول حافظه 20 4 BIT OP-CODE 16دستورالعمل I نحوه آدرس دهی چند دستورالعمل اولیه AC←AC + M[EA] 0000 ADD If )AC<0( then )PC←EA( 0001 BRANCH M[EA] ←AC 0010 STORE AC←M[EA],M[EA] ←AC 0011 EXCHANGE 21 فرمت ریزدستورالعملها در حافظه كنترلي ()ROM 2 2 3 3 3 7 AD BR CD F3 F2 F1 ADDRESS BRANCH FIELD 2 FIELD 3 FIELD 1 CONDITION F1,F2و F3می توانند همزمان اجرا شوند مثال 000100101به معناي انجام دو عملیات همزمان به صورت روبرو است: 22 ]DR←M[AR F2=100 PC←PC+1 F3=101 F1 ریز عملیاتهای 000 NOTHING NOP 001 AC←AC+DR ADD 010 AC←0 CLRAC 011 AC←AC+1 INCAC 100 AC←DR DRTAC 101 AR←DR)0-10) DRTAR 110 AR←PC PCTAR 111 M[AR] ←DR WRITE 23 F2 ریز عملياتهای 000 NOTHING NOP 001 AC←AC-DR SUB 010 AC←AC or DR OR 011 AC←AC and DR AND 100 DR←M[AR] READ 101 AR←AC ACTAR 110 DR←DR+1 INCDR 111 DR(0-10( ←PC PCTDR 24 F3 ریز عملياتهای 000 NOTHING NOP 001 AC xor DR XOR 010 AC←AC’ COM 011 AC← shl AC SHL 100 AC← shr AC SHR 101 PC←PC+1 INCPC 110 PC←AR ARTPC 111 Reserved -------- 25 CONDITION CD شرط سمبل نوع انشعاب 00 1 U Unconditional Branch 01 DR(15) I Indirect Addressing 10 AC(15) S Sign bit 11 AC=0 Z Zero bit 26 BRANCH T : CAR←AD F: CAR←CAR+1 T:CAR←AD,SBR←CAR+1 F: CAR←CAR+1 00 JMP 01 CALL 10 RET CAR←SBR 11 MAP CAR(2-5( ←DR)11-14( ,CAR)0,1,6( ←0 27 )FETCH( واکشی دستورالعمل AR←PC DR←M[AR],PC←PC+1 AR←DR)0-10),CAR(2-5( ←DR)11-14), CAR(0,1,6( ←0 . قرار میگیرند66و65و64 داراي سه ریزعملیات است كه در آدرسهاي ORG 64 FETCH : PCTAR READ,INCPC DRTAR U U U JMP NEXT JMP NEXT MAP 28 واکش ی دستورالعمل ()FETCH ترجمه برنامه میکروپروگرام به کد باینری AD BR CD F3 F2 F1 آدرس باینری 10000001 00 00 000 000 110 1000000 10000010 00 00 101 100 000 1000001 00000000 11 00 000 000 101 1000010 29 ADD ORG 0 ADD: NOP READ ADD I CALL U JMP U JMP INDIRECT NEXT FETCH 30 BRANCH ORG 4 BRANCH : OVER: NOP S NOP U NOP I ARTPC U JMP OVER JMP FETCH CALL INDIRECT JMP FETCH 31 STORE ORG 8 STORE : NOP ACTDR WRITE I U U CALL JMP JMP INDIRECT NEXT FETCH 32 EXCHANGE ORG 12 EXCHANGE : NOP I CALL INDIRECT READ U JMP NEXT ACTDR,DRTAC U JMP NEXT WRITE U JMP FETCH 33 FETCH & INDIRECT ORG 64 FETCH : PCTAR READ,INCPC DRTAR INDIRECT : READ DRTAR U U U U U JMP JMP MAP JMP RET NEXT NEXT NEXT 34 ADD: BRANCH : OVER: STORE : EXCHANGE : NOP READ ADD I U U CALL INDIRECT JMP NEXT JMP FETCH NOP NOP NOP ARTPC S U I U JMP JMP CALL JMP NOP ACTDR WRITE I U U CALL JMP JMP NOP READ ACTDR,DRTAC WRITE I U U U ADD X OVER FETCH INDIRECT FETCH INDIRECT NEXT FETCH CALL JMP NEXT JMP INDIRECT NEXT MAP FETCH FETCH : PCTAR READ,INCPC DRTAR U U U JMP JMP MAP NEXT NEXT INDIRECT : READ DRTAR U U JMP RET NEXT . نوشته میشودFetch در خانه هایي كه استفاده نمیشوند دستور پرش به روتین:نكته 35 MAP SELECT CAR 1 I S Z SBR MUX INC MUX CONTROL MEMORY MICRO-OP CD BR AD 36 طراحي واحد كنترل • براي هركدام از فيلدهاي F1و F2و F3يك ديكودر قرار ميدهيم تا ريزعملياتها را از يكديگر تشخيص دهيم. • هر يك از خروجيهاي ديكودرها به قسمت مشخص ي از پردازنده وارد ميشود. به عنوان مثال براي F1=101يا DRTARو F1=110يا PCTARبايد خط لود ARفعال شود. • تمام خروجيهاي سه ديكودر كه به نوعي به ACمربوط ميشوند بايد به مدار ALUمنقل گردد. 37 F1 F2 DEC3*8 F3 DEC3*8 DEC3*8 AND ADD DRTAC ALU PC DRTAR DR MUX PCTAR LD LD AC AR 38 مدار كلي 39 نحوه تعيين آدرس بعدي در حافظه كنترلي • هدف طراحي مداري است كه خطوط انتخاب MUXاصلي و همچنين خط لود SBRرا توليد ميكند. • ميتوان بجاي رجيستر SBRاز Stackبراي ذخيره آدرس برگشت در رفتن به روتينها استفاده نمود. 40 نحوه تعيين آدرس بعدي در حافظه كنترلي I0 I1 )بسته به JMP ( T 0 0 )بسته به CALL ( T 1 0 RET 0 1 L = I’1I0T MAP 1 1 S1=I1 S0 = I1I0 + I’1T 41 حافظه كنترلي دو سطحی (استفاده از نانو حافظه) اگر در یک سیستم نیاز باشد که تعداد بسیار زیادی سیگنال کنترلی تولید شود و نیز تعداد سیگنالهای کنترلی مجزا محدود و تعداد کمی باشند ،به جای قرار دادن تمامی این سیگنالها در حافظه میکرو ،فقط سیگنالهای مستقل را در یک حافظه تحت عنوان حافظه نانو قرار داده و در حافظه میکرو آدرس این سیگنالها(کلمات) کنترلی را مشخص میکنیم. در این حالت ،ما دیگر تعداد زیاد و تکراری کلمات کنترلی را در حافظه میکرو نداریم و به جای آن آدرسهای تکراری که حافظه کمتری اشغال میکنند را داریم. . مثال 1 42 مثال 2 حافظه كنترلي دو سطحی (استفاده از نانو حافظه) مثال :فرض کنید که در یک سیستم تعداد 300کلمه کنترلی را داریم .از این 300تا تعداد 60کلمه مستقل هستند( 240تا تکراری هستند) .اگر طول کلمات کنترلی 150بیت باشد(تعداد سیگنالهای کنترلی 150باشد) خواهیم داشت: -1در حالت معمول و بدون استفاده از حافظه نانو ،حجم حافظه میکرو برابر 150*300 است. -2در صورت استفاده از حافظه نانو ،حجم این حافظه برابر 150*60است .زیرا در این حافظه فقط قرار است که کلمات کنترلی مستقل و غیر تکراری قرار گیرند. در حالت دوم ،حافظه میکرو فقط باید آدرس 300تا کلمه کنترلی مورد نیاز را از حافظه نانو مشخص نماید .برای مشخص کردن (آدرس دهی) 60کلمه کنترلی ،به 6بیت احتیاج داریم .چون سیستم به 300سیگنال کنترلی نیاز دارد ،پس در این حالت حجم .6*300 حافظه میکرو برابر است با: میزان صرفه جویی: 43 )150*300(-)60*150 + 6*300( = 34200bits حافظه كنترلي دو سطحی (استفاده از نانو حافظه) یک پردازنده دارای ۱۷۵سیگنال کنترلی و ۲۵۰ریزدستور است .اگر ۲۰۰ریزدستور متفاوت در این پردازنده وجود داشته باشد ،حجم کل حافظه واحد کنترل در صورت استفاده از حافظه نانو چقدر است؟ الف۲۸۰۰۰ -بیت ۳۲۰۰۰بیت ب- ۲۴۰۰۰بیت ج- ۳۷۰۰۰بیت د- 44