صفحه 1:
00 Department of Computer and IT Engineering University of Kurdistan Coxpputer Brickiterture MANO Basic Computer

صفحه 2:
معماری اوه مرس لوق : ۵0 ۲ 55 5 15 ۱۱12015 در این نوع ساختار که اغلب کامپیوتر ها از آن پيروي میکنند عملیات یک کامپیوتر توسط برنامه اي که توسط برنامه نویس نوشته شده و در حافظه 636960 قرار داده میشود کنترل میگردد . "این برنامه از دستورالعمل هاست که نوع عملیات. عملوندهاي مربوطه و توالي اجراي عملیات را *یک دستورالعمل یک کد باينري است که توالي انجام میکروایریشن ها را مشخص مي نماید . کامپیوتر یک دستورالعمل را از حافظه خوانده و در داخل ‎ROO‏ ‏یک رجیستر قرار مي دهد. | ‎[Cowl Cove‏ واحد کنترل کد بايتري دستورالسمل راط ‏ کرده و لت دنباله اي از میکرواپریشن هاي لازم براي اجراي آن واحد كنترل * | ‎O00 Oxe‏ دستورالعمل را بوجود مي آورد 4 4 کد یک دستورالعمل گروهي از بیت هاست که به کامپیوتر ‎Re | [ovo‏ دستور مي دهد تا عمل خاصي را انجام دهد .این کد معمولا 1 به بخشهايي تقسیم مي شود که هر کدام وظیفه خاص ودشان را دارند 0-۹

صفحه 3:
‎O‏ اصلي ترین قسمت یک کد دستورالعمل بخش طحه میم يا لم0 است. طسسیم) نوع دستورالعمل نظیر ۵000), 0000) و غیره را مشخص میکند تعداد بيتهاي طحصح0 به تعداد کل دستورالعملهاي موجود در دحت بستكي دارد . ‏دستورالعمل نه تنها باید نوع عمل (طحسح) بلکه باید محلي که آن عمل روي آن انجام میگردد (حافظه يا رجیستر) را مشخص کند. ‏لذا در کد دستورالعمل یک محل حافظه با آدرس آن مشخص مي شود که این آدرس جزئي از کد دستورالعمل را تشکیل مي دهد . 2۴ براي مشخص کردن رجيسترهاي 26۳00) نیز از یک کد باينري استفاده مي شود اكر 00800 تعداد ‏رجیستر داشته باشد از یک کد 6)بيتي براي آنها استفاده مي شود . ‎

صفحه 4:
کامییو تر یایه مان اس سه سه 2 1 1ه 11 واحد حافظه با 1093 كلمه 11 بيتى MR, PC, OR, BO, 168, ۳۵, 07۳68, ‏رجیسترهای‎ ‎1DPR, GC فلیپ فلاپ های ‎GR, IO, G1, PGBO‏ ,6 ,1 رمزگشای ۳به ۸ اعمال و ۶ به ‎۱٩‏ زمانبندی گذرگاه مشترک ۱۱ بیتی دروازه های منطقی کنترلی جمع کننده و مدارهای منطقی که به ورودی 696 وصل شده اند 9

صفحه 5:
کد دست رها ‎١11110 11 19 191 11 91 1‏ * دستورهاى كامييوتر بصورت يك كد دودوئى هستند كه ترتيب خاصی از ریز عمل ها را مشخص مى كنند. * کد دستور + آدرس - اگر تعداد دستورات "9 باشد. کد دستور باید ۰ بیتی باشد. - کد دستور گاهی درشت عمل (2۰۳۰) سعه()) نامیده می شود. - آدرس یک رجیسترو یا مکانی از حافظه را مشخص می کند. * مکان حافظه آدرس عملوند می باشد. * دستورها و داده ها در حافظه قرار دارند.

صفحه 6:
کامییوتر يايه (معماری تک انباره ای) 1 1 1110801۳115 یک رجیسترپردازنده @O - ‏ولجویحجه‎ — ۴ شکل دستور - کد دستور ۴ بیتی می باشد. - ۱۲ بیت مربوط به آدرس می باشد (۲۱۲-۴۰۹۶) چرخه اجرای دستور - خواندن یک دستور ۱۶ بیتی از حافظه - استفاده از ۱۲ بیت آدرس جهت واکشی عملوند از حافظه - اجراى كد دستور ءا بيتى 09

صفحه 7:
حافظه 09966 [0]0 + 60 ۶ 60 : 46 200 ‎Cxavple:‏ ‏۴ 1 5 قالب دستور ‎as oO‏ عملوند دودونی سس 1 ممکن است بعضي از دستورالعملها به عملوند (0بوجه) بجیسترپردازنده - 100۱ احتیاج نداشته باشند. مانند 00 که در این حالت قسمت آدرس میتواند براي مقاصد ديگري استفاده شود.

صفحه 8:
اضافه نمودن مدهای آدرسد تست ون ‎lta.‏ * آدرس ۱۲ بیتی قرار گرفته در دستور * آدرس مکانی از حافظه که داده در آنجا قرار گرفته است. - غير مستقيم ‎(ecb)‏ ‏* آدرس مکانی از حافظه که در آنجا آدرس داده مورد نظر (عملوند) قرار گرفته است. به آدرس مکان عملوند آدرس موثر (068)) گفته می شود. * یکی از بیت های دستور به عنوان بیت غیرمستقیم در نظر گرفته شده است. 9

صفحه 9:
Addressing mode 457 آدرس موثر

صفحه 10:
رجيستر ها وحافظه كامييوتر يايه سک ۱۱۱09۱39۵ ۱ boa] oa 19 5 1

صفحه 11:
a عملوندخوانده شد نكهدارى آدرس حافظه رجيستر پردازشگر كد دستور خوانده شده نكهدارى آدرس دستور نگهداری داده های موقتی کاراکترهای ورودی کاراکترهای خروجی رجیسترداده رجیسترآدرس ‎ais‏ رجیستردستور شمارنده برنامه رجیسترموقت رجیسترورودی خروجی ۱۲ ۱۶ ۱۶ ۱۲ ۱۶ ۳4 "0 0 PC DR ADP

صفحه 12:
ویس دا 1 Ba Lat oad * ‏-لفرليشيكواجدي‎ AOR (iwrewent) * ۰) ( 008 - ياككردن 7+ 1 9 wR Ch « R &

صفحه 13:
شمارنده 2 نامه هت سر د د هك 18 * آدرس مکانی از حافظه که دستور بعدی در آن قرار گرفته است را نگه می دارد. * در زمانی که چرخه اجرای دستور فعلی کامل شد. دستور بعدی واکشی (2) می شود. * دقیقا پس از واکشی دستور. (*) افزایش می یابد. * در زمان اجرای دستور انشعاب (۳۵) . (۳6) مقدار جدیدی می گیرد. aq © ‎eo‏ سس ‎6 1 ‎ ‏بات ‎Lo wR Oo « 2) 3 ‎

صفحه 14:
گذرگاه مشترک ‎ne‏ ‏االلللا به یکدیگر و به حافظه وصل می کند. * با توجه به 09,09 ن9) مشخص مى شود كه خروجى كدام بخش بايد روى گذرگاه قرار گیرد. زمانی که رجیسترکمتر از ۱۷ پیت داده دارد . به بيت هاى با ارزش گذرگاه مقدار صفر داده می شود. * رجیستری که پایه 60 آن یک باشد. داده ها را از گذرگاه می خواند. * در زمانی که پایه 7۷۳() حافظه فعال باشد. داده ها در حافظه نوشته می شوند. * در زمانی که پایه ل() حافظه فعال باشد. داده های حافظه روی گذرگاه قرار می گیرد. - مشروط به اینکه ۵,۵,0 ن۵)باشد ae 09

صفحه 15:
نحوه اتصال احزاء کامسه ت, ناه HH

صفحه 16:
يع 5 9۷ INPR 16-bit Common Bus

صفحه 17:
رحبي - آدر - 66 سكس ههه ۵ ۵ ۵ ۱۱۱3۷3۵ همیشه برای مشخص کردن آدرسی از حافظه بکار می رود. این رجیستراختصاصی نیاز به وجود گذرگاه جداگانه ای ‎hy‏ ‏گذرگاه آدرس را از بین برده است. محتوای هر یک از رجیسترهایی که خروجی آنها به گذرگاه متصل است را می توان در حافظه نوشت. هر یک از رجیسترهایی که ورودی آن به گذرگاه متصل است. می تواند به عنوان مقصد دستور ل) از حافظه باشد. ور - در صورتی که خحط (,] آن فعال باشد. ‘| باه « نات OR 108 11 7 Lo 09

صفحه 18:
)90 — , Pre ‏زنب‎ >) Itt * ورودى اين رجيسترء خروجی مدار جمع کننده و منطقی می باشد. 9 مدار جمع کننده و منطقی - ورودى خروجی ۱3 بیتی انبر(00) خروجی ۱۸ بیتی رجیسترداده(؟606) ‎DPR) 525‏ خروجی ۸ بیتی رجیستر خروجی ۴ ورودی ۱ بیتی انباره(0)) * فلیپ فلاپ 2) (سرریز یا همان بیت توسعه انباره) * رجیسترهای داده و انباره برای انجام اعمال منطقی و محاسباتی بکار میروند. 9 6

صفحه 19:
stile} 08 515 5 15 15 15 111۳10 محتویات هر رجیستری که خروجی آن به گذرگاه متصل است. می تواند روی گذرگاه گذاشته شود و هر رجیستری که ورودی های آن به گذرگاه متصل است (همه غیر از 62) نیز می تواند در همان چرخه ساعت (عاصج كاوصاه) از كذ ركاه بار شود. عمليات در جفعصبا عسكلك8) و انتقال به باس ميتواند همزمان صورت مثلا دو ريز عمل زير مى توانند در يك زمان اجرا شوند: ‎—OR‏ 20) امه 0005-50 ‎٠‏

صفحه 20:
ساختار د سد رات ‎ab‏ 8119 18 18 191 19 111111 * دستورات مراجعه به حافظه )كد عمل از ‎05٠‏ تا ۱۱۰) ‎a Opvode Oddress‏ * دستورات مراجعه به رجیسترها (کد عمل ۱۱۱ و 120) 9 033 o موه ۳ 4 0 0 © * دستورات ورودی خروجی (کد عمل ۱۱۱ و 120) 9 060 © وه 1۵ 40 0 0 4 هه

صفحه 21:
فرمت دستورات 1 191 11 11 1193 ل 100 eq فقط ۳ بیت براى كد دستور بكار مى رود. بنا به فرض فوق. بنظر می رسد كه فقط / كد دستور مختلف مى توانيم داشعهياشيم, اما اين غلط است... زمانى كه كد عمل ‎11١‏ اسث یعنی در دستورات مراجعه به رجیستر و دستورات ورودی/خروجی که احتیاج به ادرس ندارند. ۱۲ بیت باقیمانده جهت توسعه فضای تعریف کد دستورالعمل ها بکار می رود. در عمل تعداد ۲۵ دستورالعمل برای کامپیوتر پایه تعریف شده است. 9

صفحه 22:
دستورات کامپیوتر پایه دستورات ورودی اخروجی 66 Description AND memory word to AC ‘Add memory word to AC Load AC from memory Store content of AC into memory Branch unconditionally Branch and save return address Increment and skip if zero Clear AC Clear E Complement AC Complement E Circulate right AC and E Circulate left AC and E Increment AC Skip next instr. if AC is positive ‘Skip next instr. if AC is negative Skip next instr. if AC is zero Skip next instr, if E is zero Halt computer Input character to AC Output character from AC Skip on input flag Skip on output flag Interrupt on Interrupt off 1 00 900 AXxx Bxxx Cxxx Dxxx Exxx Hex Code T=0 (Oxxx 00 300 400 BXXX 600 7800 7400 7200 7100 7080 7040 7020 7010 7008 7004 7002 7001 F800 F400 F200 F100 F080 F040 Symbol "AND ADD LDA STA BUN BSA 52 CLA CLE cMA CME ‏عا‎ ‎۱ ‎INC ‎SPA ‎SNA SZE HLT INP ouT SKI 0 ION 0 دستورات مراج راجعه به حافظه دستورات مراجعه به رجیستر &

صفحه 23:
دستورات کامپیوتر پایه 3 ۱11711555 * تفریق را میتوان با 006) و ۳۳۳ پیاده سازی نمود. * ضرب و تقسیم را میتوان با جمع و تفریق و شیفت پیاده سازی کرد. * با 6000 » ‎DOOO & 5 5b: DODO sl xe Orrwplewent‏ هم ميتوان تمام توابع منطقی را پیاده سازی کنیم. .سس

صفحه 24:
‎sls‏ ات د ‎inna‏ 00 ‏اگر یک کامپیوتر در هرکدام از گروههای زیر تعدادی دستورالعمل داشته باشد میگوییم مجموعه دستورالعملهای آن کامل است: ‏* محاسباتی. منطقی. و شیفت ؟ انتقال داده به/از رجیسترها و حافظه ‏کنترل جریان برنامه و بررسی وضعیت ‏ورودی و خروجی (1/60) ‏می توان مجموعه دستورالعملها را پیچیده تر هم کرد ولی طراحی مشکلتر خواهد شد. ‎9 ‎ ‎

صفحه 25:
واحد ات انز ‎Ward wired 1‏ دو ساختار کلی برای طراحی ‏واحد کنترل: ‎Diero Prownne ‏۶ واحد کنترل ‎1-٩‏ با عناصر منطقی مانند گیتها. فلیپ فلاپهاء دیکودر و ... به صورت سخت افزاری پیاده سازی ميشود. ‏در کنترل به صورت ۳۳۲۰ ۳7۲() اطلاعات کنترلی در حافظه ای موسوم به حافظه کنترلی ذخیره میگردد. ‏< با تغییر طراحی. در روش کنترل ۸۲۱ بايد تغييراتى در مدار کنترلی اعمال كنيم اما در روش 0005 بايد برنامه داخل حافظه کنترلی را تغییر داد. ‎

صفحه 26:
واحد Control signals ود J we 111 1111 1 5 ۳ م موی Combinational Control logic |+—— Increment (INR) ‏ها‎ Clear (CLR) J+—— Clock sequence counter |

صفحه 27:
واحد ‎iin ee!‏ 00 خواندن دستور از حافظه و انتقال آن به ‎WR‏ ‏قرار دادن سمت جب ترين بيت در فليب فلاب 1“ * رمزگشایی کد ۳بیتی دستورالعمل با استفاده از یک رمزگشای ۳ به ۸ در ‎DO, Dy bse‏ * رمزگشایی کد ؛ بیتی شمارنده ترتیبی با استفاده از یک رمزگشای ۶ به ‎۱٩‏ ‏در حطوط و" تا وم"/(سیگنالهای زمانی) * مقادیر 1.60 تا )و و" تا یم" و ۱۲ بیت سمت راستى 2108 و سایر ورودی ها به دروازه های کنترلی و منطقی ارسال میگردند.

صفحه 28:
ترتیب شمار (0)) ۵ 1191 191 11 111111 * داراى ورودى هاى افزايش (10008” و ياك كردن (08را0) می باشد. * مثال - 902) ب صورهتفزایشی‌شمرش‌میکند تا م۰۳ ...و مرا تولید ‎abs‏ ‎ot phe side g old SL ghd G5 Lab JID, 51. Mg dbej 52 —‏ كيرف اين ريز عمليات بصورت زير نوشته مى شود : 00-0 : م0 - 9 هه

صفحه 29:
ltt tas Clock 10 7 12 13 14 03 عه ‎sc‏

صفحه 30:
حه د 1 1 1 11180101 هر دستورالعمل باید از یک چرخه برای اجرا عبور کند. هر سیکل از تعدادی فاز تشکیل شده است. ۱- واکشی دستور از حافظه ۲- رمزگشایی دستور ۳- خواندن ادرس موثر از حافظه - در صورتی که از شیوه آدرس دهی غیر مستقیم استفاده شده باشد ۶- اجرای دستورالعمل “بعد از اجرای مرحله ۴ دوباره به مرحله ۱ باز میگردیم تا دستورالعمل بعدی را واکشی نماییم. این کار تا دستور 1,۳" ادامه می یابد. ‎R‏ 90

صفحه 31:
واكد و رمزگشا 1لا 1 ۱۱000101 * مقداردهی شدن 00 به صفر. سیگنال زمانی "را تولید می کند. * پس از هر ضربان زمانی. (6) افزايش می یابد. fe De: OO,...,.0P — Devrde IRCA), BR ‏:)ی‎ - ------ ٍ

صفحه 32:
TO: AR PC (8,S,S,=010, TO=1) T1:IR<—MIAR], PC<-PC +1 (S0S1S2=111, T1=1) 72: DO,..., D7 < Decode IR(12-14), AR < IR(0-11), | <— IR(15) 1

صفحه 33:
AR < MIAR] Nothing Execute a register-reference instr. Execute an input-output instr. Decode Opeode in IR(12-14), AR ۱300-11(_ ۱-5 =0 (direct) memory-rete instruction 56 >60 03 07۳3 97۳13 073

صفحه 34:
د تورات انتقال رحبي مرها ۵ ۱۱۱39۳۵۵ ۲2۵ IRQ, => Register Reference Instruction 50*0 AC<0 2۰ ۸0۰ 2+ ۸۵۵ 50۲۸۵6, ۸۵5( 1۴۰۰۵۵0 AC « ShIAC, AC(0) < E, E< AC(15) ACC ACH if (AC(15) = 0) then (PC « PC+1) if (AC(15) = 1) then (PC « PC+1) if (AC = 0) then (PC < PC+1) if (E = 0) then (PC < PC#1) S <0 (Sisa start-stop flip-flop)

صفحه 35:
دستورات مراحعه به حافظه ههه 5 ۵ ۵ ۱۱۱333۵۵ Symbolic Description AC < AC” MAR] AC © AC + MAR], E <—C,, AC — MIAR] MIAR] — AC هم وعم ۱/۵ ۰ ۳6, ۳۵۰۰۸6۰ 1 MIAR] — MIAR] +1, if MIAR] + 1 =0 then PC <— PCH

صفحه 36:
دستورات مراحعه به حافظه 2 ۱۳9۹۵ COO tt BC Js lal با توجه به طحه این دستور (۰۰۰) بیت 060) برای شناسایی آن بکار خواهد رفت. در زمان ‎DEP‏ ‏اپراند از حافظه به داخل ‎6000٩‏ خوانده میشود و در 2 عمل مورد نظر بر ریی محتوی ‎)06٩‏ و ‎BO‏ انجام شده و نتیجه به 600 منتقل میگردد. در زمان ۳62" اجرای دستور تمام شده است لذا 0 صفر میشود تا مراحل اجرای دستور بعدی آغاز گردد(فان ری شمه هه: ۵0۶ ‎GO OR,GO ©‏ هن : 6 0ه اجراى دستور 0600 12 ‎COD‏ با توجه به م0 اين دستور (001) بيت 001 براى شناسايى آن بكار ميرود . 0076 :08 61 0016 :68 ۵+06 ‏هم‎ One GO ©

صفحه 37:
دستورات مراحعه به حافظه كه د سه 3 1 5ه 5 LOB (load Pe 0( ‏اجرای دستور‎ چون هیچ مسیر مستقیمي بین 2۲) و (6) وجود ندارد لذا می بایست برای خواندن داده ای از حافظه و انتقال آن به ‎Lal BO‏ آن را به 0008 منتقل و سپس از مسیر موجود بين 00 و 600 به (90) منتقل نمود علت وصل نكردن 00 به 00009 به اين خاطر بوده كه در اينصورت بعلت تاخيرى كه بر اثر وجود جمع كننده در سر راه اين انتقال بوجود مى آمد زمان اجراى اين دستور از يك كلاك بيشتر ميشود ولی با حذف ‎O[OR]‏ هه : © ه06 اين مسير تمامى دستورات را ميتوان در يك كلاك انجام داد © 06,49 876:06@ اجرای دستور ‎GTO (Gtore POC)‏ دستور را میتوان با یک میکرواپریشن انجام داد را خروجی (69 به 00068) متصل است و © ‎Ge ,GO‏ هم] © : © ه06 آدرس اپراند هم در 968) موجود می باشد

صفحه 38:
(®rccck ud Gave Retura Ockress) ‏اجرای دستور‎ DS TH : DOR] PO, SR 4 O89 7TS:R6 OR, GO © 9b دستور بعدی od زیربرنامه ooo Wg حافظه و 50 بعد از اجرای ‎COB‏ 0 60 9 1 eo eq ade 9 مقادیر حافظه و ‎PO‏ 5 00 در زمان ‎Te‏ 09 CGB ‏این دستور برای پیاده سازی 0/«۲۵۲() یا صدا زدن تابع استفاده می شود. هنكام صدا زدن يك تابع بايد‎ ‏آدرس موجود در (6() که آدرس دستور بعدی در روال عادی اجرای برنامه را مشخص میکند در محلی ذخیره گردد‎ . ‏تا پس از خاتمه تابع بتواند دوباره به همان محل رجوع کند‎ ‏برای پیاده سازی اینکار مقدار ()) در آدرسی که توسط (0696) مشخص شده ( ودر 68) موجود است ) ذخیره گرد‎ و سپس مقدار (6*) با 261*6) پر میشود . 6*0() محلی است که اجرای تابع از آن شروع خواهد شد. 000 دستور بعدی ed 000 2 1 مه 0-8 ‎a‏

صفحه 39:
رات احعه به حافظه ایا ان اجرای دستور ‎BOD‏ يرش غير شرطى اين دستور برای انجام یک پرش غیر شرطی به محلی از حافظه که آدرس آن در دستور ذکر شده بكار ميرود ميدانيم كه 0 ممواره آدرس دستور بعدی را مشخص میکند از ایترو با تغیر مقدار ۳60) به آدرس محل مورد نظر میتوان روند طبیعی اجرای دستور را قطع و کامپیوتر را وادار به اجرای دستور از محل دیگری نمود © وو,هه هم : عم مهم اجرای دستور ‎Derv)‏ ۲ موا .8 مومصها") 1840 معمولا از اين دستور هنگام پیاده سازی یک حلقه تکرار شونده استفاده میشود. تعداد شمارش یا دفعات تکرار حلقه بصورت یک عدد منفی در حافظه قرار داده شده و به ازای هر با تکرار حلقه یکبار افزایش می یابد تا به صفر رسیده و خانمه شمارش و یا عمل تکراری را مشخص مینماید . وقتی که شمارنده صفر میشود مقدار (6) یک واحد افزایش داده میشود تا از اجرای دستور بعدی صرفنظر گردد . 61 ‎OO TE :OR‏ ‎ORH‏ هه : ۵97 0979:066۲ OR, A(OR=O) teu(PO POH),6O O il برای افزايش مقدار شمارنده محتوی محلی از حافظه که بعنوان شمارنده بكار ميرود به +000 منتقل و يس از افزايش مجددا به حافظه برگردانده میشود توجه شود که اجرای طولانی ترین دستور ۷ پالس ساعت نیاز دارد لذا (96) را میشود با یک شمارنده ‎Gal‏ نیز برای اجرای تمرینات کتاب است 2

صفحه 40:
Memory-reference instruction DoT, 4 DR « MIAR] ای توه ‎WIAR] >‏ ‎SCO‏ Ac AC + DR E< out DeT 4 ووه MIAR] — PC ARC AR +1 IMIAR] «DR . 0 ‏سس‎ ۲۵820 0 fen ee «Pe +1) sone

صفحه 41:
er 1۱۴۱۳۵۵۵ ‏سككس هه‎ * اگر کامپیوتری نتواند با دنیای خارج ارتباط برقرار کند. تقریبا هیچ کار مفیدی نمیتواند انجام دهد. برای ورودی و خحروجی کامپیوتر باید از یک ترمینال استفاده میشود که قسمت ورودی به کامپیوتر یک صفحه کلید و بخش خروجی یک پرینتر خواهد بود. ۰ هر دو قسمت ورودی و خروجی بصورت سریال با کامپیوتر در تماسند

صفحه 42:
سازمان ورودی خر و < (1۱۲-۱ 11 1901 ‏1لا 1ل‎ 1 eo port yt 1 555 1 ۵۸ 00 ۱ 1 ابید 00۸ 1 پرینتر | ۳0 رجیسترها و فلیپ فلاپهای داخل پردازنده

صفحه 43:
ایجاد همزمانی (سنکرون کردن) بین ورودی و کامپیوتر ___ سس _ ۱ 1۱ 1 95 1 براي ایجاد همزماني بين ورودي و کامپیوتر از ‎AOR‏ ‏فلیپ فلاپ ۳601 استفاده ميشود. کات ‎eH‏ هه * وقتى كه كامبيوتر شروع به كار ميكند فليب فلاب 6۳001200 است * هنكامى كه كليدى در صفحه كليد فشار داده ميشود يك كد هشت بيتى بياى آن توليد و بصورت سريال به رجيستر 100030 فر ود . ايتكار 00091 را يك ميكند تا هم مانع ارسال داده جديد شود و هم کامپیوتر را از وجود یک داده جدید در 1006۳68 مطلع سازد * _ کامپیوتر با چک کردن ۳69 از وجود کلید آگاه میشود و با انتقال آن به 962) این فلگ را صفر میکند جدید اجازه ورود به 6000808 را بيدا ميكند cul JEIDPR : COED ‏كير است‎ 0000 : 0 *؟ باصفر شدناين فلك eo 09

صفحه 44:
براي ايجاد همزماني ( سنكرون كردن ) بين ورودي و کامپیوتر از فلیپ فلاب 60 استفاده میشود. پرینتر 000 * كامبيوتر قبل از ارسال داده به خروجی (۳06) را چک میکند اطلاعات 962 به 001901908 فرستاده شده و 0 صفر ميشود ‎Sst PEO»‏ * _ کامپیوتر تا یک شدن 680*) داده جدیدی را به خروجی نخواهد فرستاد 020 : 00۳6 )خالي است 020 : مكبر است ee 09

صفحه 45:
2/0 ‏احرای دستورات‎ 11100۱015 5 5 55 ee IR() =B, i=6, ..., 11 میکرو اپریشن 106 | ‏میم‎ PC(O-A)E WOR, FO1E OD 0۵ | : ‏مو مج‎ COTE O(-7), ۵00 ۵0| ‏همم وم م0۵ و‎ ۵060 | ‏مه) م1 (6۵۵20) ۳ ى من[‎ € POH) OO): eo? woe | | Goo WOO دستورات 1/60 در (۳6/ اجرا میشوند ‎onl Gly Opole Jue *‏ دستورات (۱۱۱) و بیت 120 است. لذا شرط کنترلی بصورت ,6 اجرای دستورات در کلاک 9" تمام شده و مقدار (96) صفر میشود تا دستور بعدی اجرا گردد. 9

صفحه 46:
و سمس سه دده 11 دو راه براى اطلاع از ورودى و خروجى : ۳۳۹-۱ يا سركشى: - كامبيوتر بطور متناوب وضعيت ورودى و خروجى را جك ميكند تا از آماده بودن خروجى يا ورودى براى انتقال اطلاعات آكاه شود - اين روش ساده است ولى بعلت متفاوت بودن نرخ آماده شدن اطلاعات در 1/0 و سرعت پردازش کامپیوتر باعث اتلاف وقت خواهد شد ‎Ieterrupt Drives 1/60 -۲‏ : - در این روش وسیله ورودی و خروجی با ارسال یک سیگنال وقفه کامپیوتررا از آماده بودن 0 برا انتقال اطلاعات مطلع می سازد - در این روش دیگر نیازی به چک کردن متناوب 1/60 نبوده و کامپیوتر در فاصله بین آماده شدن ‎VO‏ میتاند به اجرای برنامه دیگری بپزدازد 9

صفحه 47:
قفه در کامسو تر ‎Ah‏ ‎ltt tas‏ 1000 - فلييفلابيعاتاكه 02 ‎Interrupt‏ : در کامپیوتر پایه یک ۳ به امر وقفه اختصاص داده شده است. اگر کامپیوتر بخواهد به دستگاه 1/60" اجازه ارسال وقفه را بدهد اين )را ا95) میکند اما با صفر کردن این ) میتوان جلو ارسال وقفه را سد كرد. براى تغيير وضعيت اين 0202 از دستورات 10060 و 1006۳ استفاده میشود. ‎PP‏ دیگریسه نام () یقوع وقفه را مشخصرهینماید ‎& EE gy

صفحه 48:
فعال سازی وقفه 01 5 5 15 15 ۲۱۳۲۱۸۱۲15 * کنترل مداوم ۳60) و 6696 توسط کامپیوتر زمان را تلف می کند. * با استفاده از 16260" هر زمان که نیازی به کنترل ورودی و خروجی باشد. به وی اطلاع داده می شود. * در خلال اجرای دستون در صورتی ‎S PBO | POTS‏ باشد. مقدار 8) یک می شود. وقفه در زمانی رخ می دهد که کامپیوتر خواسته باشد دستور بعدی را واکشی نماید. ‎R=O Si —‏ باشد. اجرای دستور انجام می گيرد. ‏- اگر 320 باشد. اجرای وقفه انجام می گیرد. ‎9 ‎ ‎9

صفحه 49:
R= Interrupt f/f Interrupt cycle e return address location 0 M0] — PC آدرس برگشت در خانه شماره صفر ذخیره میشود. که میتوان از يك رجیستر و با بامعل)براي این کار استفادهنمود & ‎a‏

صفحه 50:
قفه سس سس 5 ه115 * باتوجه به شكل مذكور شرط مقدار دهى 8) به يك: ‎(IEN)(FGI+FGO): Re 1‏ و1011 * میکرو اپریشن سیکل وقفه ‎AR<0, TR<PC‏ :و۲1 ‎MIAR]<TR, PC <0‏ ,۴۲ ‎RT,; PC<PC+1, IEN< 0, Re 0,SC<0‏ اضافه كردن فلیپ ‎Gach R GUS‏ میشود تا میکرو اپریشن سیکل واکشی و دیکود بصورت زیر تصحیح گردد: ‎PO‏ ۵6 :170 ‎POH‏ عم , 0۵6 -16 :1۳۳0 ‎RTO: OF..00 Dro IRCOAP) ,OR 1۵00400‏ 0

صفحه 51:
‎ee‏ وفعه در روند احرای دستورات کامپیو تر ‎Ee ak‏ 0101 1110 ‏* وقتی که یک وقفه اتفاق می افتد کامپیوتر: ‏۱ اجرای دستورجاری خود را تمام ميكند و ‏۲ آدرس دستور بعدی (محتوی ۳0)) را در محل مشخصی ذخیره میکند (آدرس صفر حافظه) و ‏و با قطع روند عادی اجرای برنامه به اجرای دستورات مربوط به پردازش وقفه که در آدرس از پیش تعیین شده ای (آدرس یک ) قرار دارد میپردازد . ‏۱ پس از خاتمه اجرای دستورات مربوط به وقفه کامپیوتر باید برنامه قطع شده را مجددا از همان محل ادامه دهد برای اب کار در انتهای روتین وقفه یک دستور پرش با آدرس دهی ‎RE‏ ‏مستقیم به آدرس صفر قرار داده میشود تا برنامه اصلی از محل قطع شده ادامه یابد . همچنین 1026" دوباره یک میشو در ‎09 ‎ ‎

صفحه 52:
100 oom me elie محل ذخیره آدرس برگشت حافظه ‎ese‏ ‏©0060 _ 6000 0 برنامه اصلي روتین وقفه 04 220 9 بعد از وقفه حافظه محل شروع وووو_ هو روتين وقفه اتفاق وقفه که برنامه اصلي روتين وقفه ۵00 9 قبل از وقفه

صفحه 53:
تشخیص وقوع وقفه سر ار ا * در هر سیکل اجرای دستور پس از آتکه عمل واکشی و دیکود دستور العمل انجام شد سخت افزار کامپیوتر وقوع یک وقفه را بررسی میکند . * در صورتی که 160-0 باشد یعنی کامپیوتر اجازه وقفه را داده باشد و یکی از پرچمهای 6*01 و ۳620 فعال شده باشد وقوع وقفه تشخیص داده میشود. ۴ وقوع وقفه با 22 کردن یک ‎oy PP‏ نام #3ثبت میشود تاعملیات مربوط به پردازش وقفه آغاز شود.

صفحه 54:
ی 3 ترز ووو ۳ در صورتی که فلیپ فلاپ 8-0 باشد یک وقفه اتفاق افتاده است لذا كا ب تر در سیکل ۲ بجای روند عادی اجرای سيكل دستور عمليات مربوط به اجراى سيكل وقفه راانجام میدهد این عملیات عبارتست از : - ذخیره آدرس دستور بعدی در محل صفر حافظه و انجام پرش به محل یک حافظه. - همچنین ‎)٩<0(‏ میشود تا دوباره سیکل اجرای دستور شروع شود . تیب 100200 میشود تا در هنگام پردازش وقفه جاری جلوی وقفه های دیگر گرفته شود . @

صفحه 55:
Qrcode سح اس 1 28-0 \ 26-0

صفحه 56:
نمودار گردشی اعمال کامییوتر یایه AR < IR(0-11), 1 IR(18) ‏وه‎ — Decode IR(12 ~ 14) DRIES ۳۹ Execute [AR © MARI] [Tale] vio Instruction se

صفحه 57:
یک واحد حافظه متشکل از ۴۰۹۶ کلمه ۱۶ بیتی نه رجیستر به نامهای: PR,PO,OR,OC,AR,PROOTR OPR,GC — فلیپ فلاپ های وضعیت: 1,6,۸, - رمز گشا - یک رمز گشای ۳ به ۸ برای کد دستورها - یک رمزگشای ۴ به ۱۶ برای زمانبندی دروازه های منطقی کنترلی (برای ساختن واحد کنترل به صورت ‎((harchuired‏ جمع کننده و مدار منطقی 2 به رجیسترانباره متصل می شود. 0-۹

صفحه 58:
ورودی های دروازه عاى م ی مدار کنترل 75۳5۳5 مه (ito. ‏لِا‎ دو رمز كشا - ۸ بیت دستور العمل و ۱۶ بیت خروجی ترتیب شمار هفت فليب فلاب ‎1,6,6,8,160,PG1,PGO‏ ‏بيت هاى ٠ه‏ تا ‎١١‏ رجيستر دستور العمل بیت های ه تا ۱۵ رجیسترانباره - برای کنترل صفر بودن رجیستر و کنترل بیت علامت بیت های ه تا ۱۵ رجیسترداده برای کنترل صفر بودن رجیستر

صفحه 59:
هاى دروازه ها لسن كاد ‎wi nie‏ هدف: طراحی سیگنالهایی برای کنترل: * ورودی های کنترلی ‎٩‏ رجیستر ۶ خطوط کنترلی خواندن و نوشتن حافظه * یک . صفر یا متمم کردن مقدار فلیپ ‎GUS‏ ها * خطوط ,),9)9)جهت انتخاب یک رجیستربرای دسترسی ‎Oy‏ گذرگا * کنترل جمع کننده و مدار منطقی انباره متصل به ‎DO‏

صفحه 60:
AR ‏عم‎ IR ۱/۵۵۵, ۳۵ ۰ DO, ..., D7 < Decode IR(12 ~ 14), AR © IR(0~ 11), 1 <IR(15) AR < MAR] 8-4 ۸٩ 0۵ MIAR] < TR, PC <0 0+ 56 ,0->8 ,0 للع ,1 + عم ‎PC‏ DR ۷۸ AC ۵۵۵۵ DR « MIAR] AC © AC + DR, E< Coy, SC <0 DR « MIAR] AC DR, SC <0 MIAR] «AC, SC 0 PC AR, SC 60 MIAR] <— PC, AR AR +1 PC AR, SCO DR « MIAR] 08 08 +1 MIAR] < DR, if(DR=0) then (PC < PC +1), sco مه Decode Indirect D, ITs: Interrupt To'Ty/T(IEN\(FGI + FGO): RTo: AND ADD LDA STA BUN BSA 152

صفحه 61:
(Common to all register-reference instr) (= 01,2, .. 11) 50 ۸0۰0 E<o AC «AC! Ee ‎shr AC, AC(15) «E, E < AC(0)‏ « عم ‎AC « shi AC, AC(0) « E, E < AC(15)‏ ‎AC AC +4‏ ‎I(AC(15) =0) then (PC < PC +1) M(AG(15) =1) then (PC < PC + 1) H(A = 0) then (PC < PC +1) ‎If(E=0) then (PC «PC +1) ‎5 ‎(Common to all input-output instructions) (i= 6,7,8,9,10,11) ‏و عه‎ ‘AC(0-7) < INPR, FGI <0 OUTR < AC(0-7), FGO <0 I(FGI=1) then (PC < PC +1) I(FGO=1) then (PC PC +1) IEN <1 IEN <0 ea ‎ ‎ ‏عملیانهای کامپپوتر پایه - ‎۱ 8 ‎Register-Reference ‎DAT; ‏ماه ‎CLE‏ ‎cMA‏ ‎CME‏ ‎cIR‏ ‏باه ‎INC‏ ‎SPA‏ ‎SNA‏ ‎SZA‏ ‎SZE‏ ‎HLT‏ ‎Input-Output ‎INP ‎OUT ‎50 ‎50 ‎ION ‎0 ‎ ‎

صفحه 62:
دروازه های کین ‎be‏ 4 7 1ك 1ك 1 11۲۱1۱1 * ورودی های کنترلی رجیستر: ۵,1۵۲,0۷۸ * تمام عبارتهایی که مقدار 00 را تغییر مى دهند LD(AR) = +RT, + DIT; CLR 9 Pat, INR’ Ry 901 وه 9

صفحه 63:
دروازه هاى 2 آدر 110۳1 ۳ Clock

صفحه 64:
دروازه های کنترلی فلیپ فلاپ اس ۲ ۱۱۱ pB7:_IEN < 1 (I/O Instruction) 86۰ ۱۶ < 0 (I/O Instruction RT,: IEN < 0 (Interrupt) p = DIT, (Input/Output Instruction) ow

صفحه 65:
‎(Rew bs J =‏ حافظه 1 1 11۲۱1۱1 ‏* تمام میکرواپریشن هایی که در آنها [6063]() در سمت راست انتقال قرار دارد. ( به فرم : > [00]008 ... ) ‏م0 + و0 +0 + ن0) خر ۵ ‎Rewl=‏

صفحه 66:
90 5 2 Multiplexer bus select inputs 5 * براى رجيستر 20

صفحه 67:
مدار مرنيط با رح تا اه ‎lata‏ Adder and From DR logic 3 circuit From INPR Control gates

صفحه 68:
د توارت تانب گذار روی مقدار كك كك كر دح ۸۵6 + ۸ AND with DR AC<AC+DR Add with DR AC<DR Transfer from DR AC(0-7) — INPR Transfer from INPR AC < AC’ Complement AC < shr AC, AC(15) < E | Shift right AC < shi AC, AC(0)<-E Shift left AC<0 Clear AC<AC+1 Increment ee

صفحه 69:

صفحه 70:

Department of Computer and IT Engineering University of Kurdistan Computer Architecture MANO Basic Computer By: Dr. Alireza Abdollahpouri معماري SPC : Stored program control در اين نوع ساختار که اغلب کامپيوتر ها از آن پيروي ميکنند عمليات يک کامپيوتر توسط برنامه اي که توسط برنامه نويس نوشته شده و در حافظه RAMقرار داده ميشود کنترل ميگردد . • اين برنامه مجموعه اي از دستورالعمل هاست که نوع عمليات ،عملوندهاي مربوطه و توالي اجراي عمليات را مشخص مي کند . • يک دستورالعمل يک کد باينري است که توالي انجام ميکرواپريشن ها را مشخص مي نمايد . کامپيوتر يک دستورالعمل را از حافظه خوانده و در داخل يک رجيستر قرار مي دهد. واحد کنترل کد باينري دستورالعمل را Decodeکرده و دنباله اي از ميکرواپريشن هاي الزم براي اجراي آن دستورالعمل را بوجود مي آورد . کد يک دستورالعمل گروهي از بيت هاست که به کامپيوتر دستور مي دهد تا عمل خاصي را انجام دهد .اين کد معموال به بخشهايي تقسيم مي شود که هر کدام وظيفه خاص خودشان را دارند . 2 ‏RAM ‏Control Regs و&احد کنترل ‏ALU ‏ADD Ax,s ‏Regs اصلي ترين قسمت يک کد دستورالعمل بخش Operation code Jيا Op-codeاست. Op-codeنوع دستورالعمل نظير ADD ، SUBو غيره را مشخص ميکند تعداد بيتهاي Op-codeبه تعداد کل دستورالعملهاي موجود در cpuبستگي دارد . دستورالعمل نه تنها بايد نوع عمل ( )opcodeبلكه بايد محلي كه آن عمل روي آن انجام ميگردد (حافظه يا رجيستر) را مشخص كند. لذا در کد دستورالعمل يک محل حافظه با آدرس آن مشخص مي شود که اين آدرس جزئي از کد دستورالعمل را تشکيل مي دهد . 2k براي مشخص کردن رجيسترهاي CPUنيز از يک کد باينري استفاده مي شود اگر CPUتعداد رجيستر داشته باشد از يک کد Kبيتي براي آنها استفاده مي شود . 3 کامپیوتر پایه مانو • • واحد حافظه با 4096کلمه 16بیتی رجيسترهای AR, PC, DR, AC, IR, TR, OUTR, ‏INPR, SC فلیپ فالپ های I, S, E, R, IEN, FGI, FGO رمزگشای 3به 8اعمال و 4به 16زمانبندی گذرگاه مشترک 16بیتی دروازه های منطقی کنترلی جمع کننده و مدارهای منطقی که به ورودی ACوصل شده اند • • • • • 4 کد دستورها • دستورهای کامپیوتر بصورت یک کد دودوئی هستند که ترتیب خاصی از ریز عمل ها را مشخص می کنند. • کد دستور +آدرس – اگر تعداد دستورات 2nباشد ،کد دستور باید nبیتی باشد. – کد دستور گاهی درشت عمل ( )Macro Operationنامیده می شود. – آدرس یک رجيسترو یا مکانی از حافظه را مشخص می کند. • مکان حافظه آدرس عملوند می باشد. • دستورها و داده ها در حافظه قرار دارند. 5 کامپیوتر پایه (معماری تک انباره ای) • یک رجيسترپردازنده – AC – accumulator • شکل دستور – کد دستور 4بیتی می باشد. – 12بیت مربوط به آدرس می باشد ()212=4096 • چرخه اجرای دستور – خواندن یک دستور 16بیتی از حافظه – استفاده از 12بیت آدرس جهت واکشی عملوند از حافظه – اجرای کد دستور 4بیتی 6 کامپیوتر پایه – فرمت دستورات ]Example: ADD 15 ; AC  AC + M[15 حIافظه4096X16I 4 آدرس دستورات برنامه 12 کد قالب دستور عملوند ها (داده) 15 0 عملوند دودوئی رIجيسترپردازIندهAC - I 7 ممكن است بعضي از دستورالعملها به عملوند ()operand احتياج نداشته باشند .مانند .Clear ACكه در اين حالت قسمت آدرس ميتواند براي مقاصد ديگري استفاده شود. اضافه نمودن مدهای آدرسدهی • آدرس 12بیتی قرار گرفته در دستور – مستقیم ()direct • آدرس مکانی از حافظه که داده در آنجا قرار گرفته است. – غیر مستقیم ()indirect • آدرس مکانی از حافظه که در آنجا آدرس داده مورد نظر (عملوند) قرار گرفته است. • به آدرس مکان عملوند آدرس موثر ( )EAگفته می شود. • یکی از بیت های دستور به عنوان بیت غیرمستقیم در نظر گرفته شده است. 8 آدرس دهی مستقیم و غیر مستقیم آدرس دهی غیر مستقیم آدرس موثر 9 آدرس دهی مستقیمI آدرس موثر رجيستر ها وحافظه کامپیوتر پایه Memory 4096 X 16 11 0 PC 15 0 15 0 7 0 11 0 15 0 IR 15 0 TR OUTR 7 0 AR DR AC INPR 10 لیست رجيستر های کامپیوتر پایه نام وظیفه عملوندخوانده شده از حافظه رجيسترداده نگهداری آدرس حافظه رجيسترآدرس رجيستر پردازشگر انباره کد دستور خوانده شده رجيستردستور نگهداری آدرس دستور شمارنده برنامه نگهداری داده های موقتی رجيسترموقت کاراکترهای ورودی رجيسترورودی 11 کاراکترهای خروجی رجيسترخروجی تعداد بیت 16 12 16 16 12 16 8 8 نماد ‏DR ‏AR ‏AC ‏IR ‏PC ‏TR ‏INP ‏R ‏OUT ‏R ورودی های کنترلی رجيسترها • ) – LD (loadب88ار ک88رد8ن • ) – INR (incrementا8فزا8یشي88كوا8حدي • ) – CLR (clearپ88اکک88رد8ن 12 12 ‏CL ‏K 12 ‏CL ‏R ‏INR ‏LD شمارنده برنامه • • • • آدرس مکانی از حافظه که دستور بعدی در آن قرار گرفته است را نگه می دارد. در زمانی که چرخه اجرای دستور فعلی کامل شد ،دستور بعدی واکشی ( )fetchمی شود. دقیقا پس از واکشی دستور PC ،افزایش می یابد. در زمان اجرای دستور انشعاب ( PC ، )branchمقدار جدیدی می گیرد. 11 0 ‏PC ‏CL ‏K 13 ‏CL ‏R ‏INR 12 ‏LD گذرگاه مشترک ()bus • رجيسترها را به یکدیگر و به حافظه وصل می کند. • با توجه به S2 S1 S0مشخص می شود که خروجی کدام بخش باید روی گذرگاه قرار گیرد. – زمانی که رجيسترکمتر از 16بیت داده دارد ،به بیت های با ارزش گذرگاه مقدار صفر داده می شود. • رجيستري که پایه LDآن یک باشد ،داده ها را از گذرگاه می خواند. • در زمانی که پایه Writeحافظه فعال باشد ،داده ها در حافظه نوشته می شوند. • در زمانی که پایه Readحافظه فعال باشد ،داده های حافظه روی گذرگاه قرار می گیرد. – مشروط به اینکه S2 S1 S0=111باشد. 14 نحوه اتصال اجزاء کامپیوتر پایه ‏ALU 15 سیستم گذرگاه مشترک از نگاه دیگر 16 رجيسترآدرس AR - • • • • همیشه برای مشخص کردن آدرسی از حافظه بکار می رود. این رجيستراختصاصی نیاز به وجود گذرگاه جداگانه ای برای گذرگاه آدرس را از بین برده است. محتوای هر یک از رجيسترهایی که خروجی آنها به گذرگاه متصل است را می توان در حافظه نوشت. هر یک از رجيسترهایی که ورودی آن به گذرگاه متصل است ،می تواند به عنوان مقصد دستور Readاز حافظه باشد. ‏I 0 ‏I – در صورتی که خط LDآن فعال باشد. ‏AR ‏CL ‏K 17 ‏CL ‏R ‏INR 12 ‏LD رجيسترانباره يا اكوموالتور AC - • ورودی این رجيستر ،خروجی مدار جمع کننده و منطقی می باشد. • مدار جمع کننده و منطقی – ورودی • خروجی 16بیتی انباره()AC • خروجی 16بیتی رجيستر8داده()DR • خروجی 8بیتی رجيسترورودی()INPR – خروجی • ورودی 16بیتی انباره()AC • فلیپ فالپ ( Eسرریز یا همان بیت توسعه انباره) • رجيسترهای داده و انباره برای انجام اعمال منطقی و محاسباتی بکار میروند. 18 زمانبدی • محتویات هر رجيستري که خروجی آن به گذرگاه متصل است ،می تواند روی گذرگاه گذاشته شود و هر رجيستري که ورودی های آن به گذرگاه متصل است (همه غير از )ACنیز می تواند در همان چرخه ساعت ( )clock cycleاز گذرگاه بار شود. • عمليات در Adder Logicو انتقال به باس ميتواند همزمان صورت گيرد. مثال دو ریز عمل زیر می توانند در یک زمان اجرا شوند: • DRAC and AC DR 19 ساختار کلی دستورات پایه • دستورات مراجعه به حافظه )کد عمل از 000تا )110 0 12 11 ‏Address 15 14 ‏Opcode ‏I • دستورات مراجعه به رجيسترها (کد عمل 111و )I=0 0 12 11 ‏Register operation 1 15 1 1 0 • دستورات ورودی خروجی (کد عمل 111و )I=1 0 12 11 ‏I/O operation 20 1 15 1 1 1 فرمت دستورات • • • • • 21 فقط 3بیت برای کد دستور بکار می رود. بنا به فرض فوق ،بنظر می رسد که فقط 8کد دستور مختلف می توانیم داشته باشیم. اما این غلط است... زمانی که کد عمل 111است يعني در دستورات مراجعه به رجيستر و دستورات ورودي/خروجي كه احتياج به آدرس ندارند 12 ،بیت باقيمانده جهت توسعه فضای تعریف کد دستورالعمل ها بکار می رود. در عمل تعداد 25دستورالعمل براي كامپيوتر پايه تعريف شده است. دستورات مراجعه به رجيستر دستورات ورودي/خروجي 22 دستورات مراجعه به حافظه دستورات کامپیوتر پایه دستورات کامپیوتر پایه • تفريق را ميتوان با ADDو Complementپياده سازي نمود. • ضرب و تقسيم را ميتوان با جمع و تفريق و شيفت پياده سازي كرد. • با ANDو Complementميتوانيم NANDبسازيم و با NAND هم ميتوان تمام توابع منطقي را پياده سازي كنيم. 23 کامل بودن مجموعه دستورات اگر يك كامپيوتر در هركدام از گروههاي زير تعدادي دستورالعمل داشته باشد ميگوييم مجموعه دستورالعملهاي آن كامل است: • • • • محاسباتی ،منطقی ،و شیفت انتقال داده به/از رجيسترها و حافظه کنترل جريان برنامه و بررسی وضعیت ورودی و خروجی ()I/O مي توان مجموعه دستورالعملها را پيچيده تر هم كرد ولي طراحي مشكلتر خواهد شد. 24 واحد کنترل ‏Hard wired دو ساختار كلي براي طراحي واحد كنترل: ‏Micro Program واحد كنترل Hardwiredبا عناصر منطقي مانند گيتها ،فليپ فالپها ،ديكودر و ...به صورت سخت افزاري پياده سازي ميشود. در كنترل به صورت Micro programاطالعات كنترلي در حافظه اي موسوم به حافظه كنترلي ذخيره ميگردد. با تغيير طراحي ،در روش كنترل hardwiredبايد تغييراتي در مدار كنترلي اعمال كنيم اما در روش MPبايد برنامه داخل حافظه كنترلي را تغيير داد. 25 واحد کنترل 26 واحد کنترل • خواندن دستور از حافظه و انتقال آن به IR • قرار دادن سمت چپ ترین بیت در فلیپ فالپ I • رمزگشایی کد 3بیتی دستورالعمل با استفاده از یک رمزگشای 3به 8در خطوط D0تا D7 • رمزگشایی کد 4بیتی شمارنده ترتیبی با استفاده از یک رمزگشای 4به 16 در خطوط T0تا ( T15سیگنالهای زمانی) • مقادیر I، D0تا D7و T0تا T15و 12بیت سمت راستی IRو سایر ورودی ها به دروازه های کنترلی و منطقی ارسال میگردند. 27 ترتیب شمار ()SC • دارای ورودی های افزایش ( )INRو پاک کردن ()CLR می باشد. • مثال 8ت8فزا8یشیش88مار8شم8یک88ند ت88ا . . . ، T0 ، T1و T4را ت88ول8ید – SCب888صور ا ن88ماید. – در زمان ، T4اگر D3فعال باشد ،ترتیب شماره پاک شده و مقدار صفر می گیرد. این ریز عملیات بصورت زیر نوشته می شود : – D3T4 : SC0 28 دیاگرام زمانی 29 چرخه دستورالعمل ‏هر دستورالعمل بايد از يك چرخه براي اجرا عبور كند .هر سيكل از تعدادي فاز تشكيل شده است. -1واکشی دستور از حافظه -2رمزگشایی دستور -3خواندن آدرس موثر از حافظه – در صورتی که از شیوه آدرس دهی غیر مستقیم استفاده شده باشد -4اجرای دستورالعمل ‏بعد از اجراي مرحله 4دوباره به مرحله 1باز ميگرديم تا دستورالعمل بعدي را واكشي نماييم .اين كار تا دستور HALTادامه مي يابد. 30 واکشی و رمزگشایی • مقداردهی شدن SCبه صفر ،سیگنال زمانی T0را تولید می کند. • پس از هر ضربان زمانی SC ،افزایش می یابد. • ریز عمل های واکشی و رمزگشایی ‏Fetch • T0 : ARPC • T1 : IR M[AR] , PC PC+1 • T2 : D0,…,D7  Decode IR(12-14), AR )IR(0-11) , I IR(15 ‏Decode 31 واکشی و رمزگشایی 32 تعیین نوع دستورالعمل 33 دستورات انتقال رجيسترها 34 دستورات مراجعه به حافظه 35 دستورات مراجعه به حافظه اجرای دستور AND to AC با توجه به opcodeاین دستور ( )000بیت D0برای شناسایی آن بکار خواهد رفت .در زمان T4 اپراند از حافظه به داخل DRخوانده میشود و در T5عمل مورد نظر بر روی محتوی DRو ACانجام شده و نتیجه به ACمنتقل میگردد .در زمان T5اجرای دستور تمام شده است لذا SCصفر میشود تا مراحل اجرای دستور بعدی آغاز گردد(فاز .)T0 0 ] M[ AR ‏D0 T4 : DR ‏AC DR , SC ‏D0 T5 : AC اجرای دستور ADD To AC با توجه به Opcodeاین دستور ( )001بیت D1برای شناسایی آن بکار میرود . 0 36 ‏Cout , SC ] M[ AR ‏D1 T4 : DR ‏AC+ DR , E ‏D1 T5 : AC دستورات مراجعه به حافظه اجرای دستور (LDA )Load To AC چون هیچ مسیر مستقیمی بین Busو ACوجود ندارد لذا می بایست برای خواندن داده ای از حافظه و انتقال آن به ACابتدا آن را به DRمنتقل و سپس از مسیر موجود بین DRو ACبه ACمنتقل نمود علت وصل نکردن ACبه BUSبه این خاطر بوده که در اینصورت بعلت تاخیری که بر اثر وجود جمع کننده در سر راه این انتقال بوجود می آمد زمان اجرای این دستور از یک کالک بیشتر میشود ولی با حذف این مسیر تمامی دستورات را میتوان در یک کالک انجام داد . ] D2 T4 : DR M[ AR 0 ‏DR , SC ‏D2 T5 : AC اجرای دستور (STA )Store AC این دستور را میتوان با یک میکرواپریشن انجام داد زیرا خروجی ACبه BUSمتصل است و آدرس اپراند هم در ARموجود می باشد 37 0 ‏Ac , SC ]D3 T4 : M [AR دستورات مراجعه به حافظه اجرای دستور ()Branch And Save Return Address ‏BSA از این دستور برای پیاده سازی Subroutineیا صدا زدن تابع استفاده می شود .هنگام صدا زدن یک تابع باید آدرس موجود در PCکه آدرس دستور بعدی در روال عادی اجرای برنامه را مشخص میکند در محلی ذخیره گردد تا پس از خاتمه تابع بتواند دوباره به همان محل رجوع کند . برای پیاده سازی اینکار مقدار PCدر آدرسی که توسط BSAمشخص شده ( ودر ARموجود است ) ذخیره گرد و سپس مقدار PCبا AR+1پر میشود AR+1 .محلی است که اجرای تابع از آن شروع خواهد شد. ‏PC , AR ‏AR 0 ‏SC 135 ]D5 T4 : M[AR ‏AR, ‏BSA 0 دستور بعدی ‏D5 T5 : PC 135 حافظه و PCبعد از اجرای ‏BSA 38 ‏PC=2 1 21 135 ‏PC=136 زيربرنامه ‏BUN دستور بعدی 21 21 در کامپیوترهای واقعی آدرس برگشت در یکی از رجیسترهای CPUو ی&&ا Stackذخیره& میشود . 20 135 ‏BSA 0 1 135 ‏BUN 20 1 مقادیر حافظه و& PCو ARدر زمان ‏T4 دستورات مراجعه به حافظه اجرای دستور BUNپرش غیر شرطی این دستور برای انجام یک پرش غیر شرطی به محلی از حافظه که آدرس آن در دستور ذکر شده بکار میرود میدانیم که PCهمواره آدرس دستور بعدی را مشخص میکند از اینرو با تغییر مقدار PCبه آدرس محل مورد نظر میتوان روند طبیعی اجرای دستور را قطع و کامپیوتر را وادار به اجرای دستور از محل دیگری نمود ‏D4 T4 : PC AR , SC 0 اجرای دستور (ISZ )Increment & Skip if Zero معموال از این دستور هنگام پیاده سازی یک حلقه تکرار شونده استفاده میشود .تعداد شمارش یا دفعات تکرار حلقه بصورت یک عدد منفی در حافظه قرار داده شده و به ازاي هر با تکرار حلقه یکبار افزایش می یابد تا به صفر رسیده و خاتمه شمارش و یا عمل تکراری را مشخص مینماید .وقتی که شمارنده صفر میشود مقدار PCیک واحد ] D6 T4 : DR M[ AR افزایش داده میشود تا از اجرای دستور بعدی صرفنظر گردد . ‏DR+1 0 ‏PC+1 ) , SC ‏DR , if( DR=0) then (PC ‏D6 T5 : DR ]D6 T6 : M[AR برای افزایش مقدار شمارنده محتوی محلی از حافظه که بعنوان شمارنده بکار میرود به DRمنتقل و پس از افزایش مجددا به حافظه برگردانده میشود . توجه شود که اجرای طوالنی ترین دستور 7پالس ساعت نیاز دارد لذا SCرا میشود با یک شمارنده 3بیتی نیز ساخت .استفاده از شمارنده های 4بیتی برای اجرای تمرینات کتاب است . 39 دستورات ارجاع به حافظه 40 ورودي -خروجي • اگر كامپيوتري نتواند با دنياي خارج ارتباط برقرار كند ،تقريبا هيچ كار مفيدي نميتواند انجام دهد. • براي ورودي و خروجي کامپيوتر بايد از يک ترمينال استفاده ميشود که قسمت ورودي به کامپيوتر يک صفحه کليد و بخش خروجي يک پرينتر خواهد بود. • هر دو قسمت ورودي و خروجي بصورت سريال با کامپيوتر در تماسند 41 سازمان ورودی خروجی ‏FG ‏I ‏INPR ‏Parallel ‏serial صفحه کليد ‏AC ‏serial ‏OUTR ‏FGO رجيسترها و فليپ فالپهاي داخل پردازنده 42 پرينتر ايجاد همزماني (سنکرون کردن) بين ورودي و کامپيوتر براي ايجاد همزماني بين ورودي و کامپيوتر از فليپ فالپ FGIاستفاده ميشود. ‏FG ‏I ‏INPR صفحه کليد ‏AC • • • • وقتي که کامپيوتر شروع به کار ميکند فليپ فالپ FGI=0است . هنگامي که کليدي در صفحه کليد فشار داده ميشود يک کد هشت بيتي بر8اي آن توليد و بصورت سريال به رجيستر INPRفرستاده ميشود .اينکار FGIرا يک ميکند تا هم مانع ارسال داده جديد شود و هم کامپيوتر را از وجود يک داده جديد در INPRمطلع سازد. کامپيوتر با چک کردن FGIاز وجود کليد آگاه ميشود و با انتقال آن به ACاين فلگ را صفر ميکند . با صفر شدن اين فلگ داده جديد اجازه ورود به INPRرا پيدا ميکند . ‏INPR : FGI=0خالي است ‏INPR : FGI=1پر است 43 ايجاد همزماني بين خروجي و کامپيوتر ‏AC براي ايجاد همزماني ( سنکرون کردن) بين ورودي و کامپيوتر از فليپ فالپ FGO استفاده ميشود. ‏OUTR پرينتر ‏FGO • • • • کامپيوتر قبل از ارسال داده به خروجي FGOرا چک ميکند اگر FGO=1باشد اطالعات ACبه OUTRفرستاده شده و FGOصفر ميشود . دستگاه خروجي داده را از OUTRدريافت کر8ده و پس از چاپ داده FGOمساوي يک قرار داده ميشود. کامپيوتر تا يک شدن FGOداده جديدي را به خروجي نخواهد فرستاد. ‏OUTR : FGO=1خالي است ‏OUTR : FGO=0پر است 44 اجراي دستورات I/O ميکرو اپريشن ‏AC ( 0-7)  INPR , FGI  0 ‏OUT A(0-7) , FGO  0 )If (FGI=1) Then (PC  PC+1 )If (FGO=1) Then (PC  PC+1 ‏IEN  1 ‏IEN  0 • • شرط کنترل : PB 11 : PB 10 : PB 9 : PB 8 : PB 7 : PB 6 دستور ‏INP ‏OUT ‏SKI ‏SKO ‏ION ‏IOF دستورات I/Oدر T3اجرا ميشوند . مقدار Op-codeبراي اين دستورات ( )111و بيت I=1است .لذا شرط کنترلي بصورت PBI=D7IT3BI مشخص ميگردد . اجراي دستورات در کالک T3تمام شده و مقدار SCصفر ميشود تا دستور بعدي اجرا گردد. 45 وقفه Interrupt دو راه براي اطالع از ورودي و خروجي : Polling -1يا سرکشي: – کامپيوتر بطور متناوب وضعيت ورودي و خروجي را چک ميکند تا از آماده بودن خروجي يا ورودي براي انتقال اطالعات آگاه شود . – اين روش ساده است ولي بعلت متفاوت بودن نرخ آماده شدن اطالعات در I/Oو سرعت پردازش کامپيوتر باعث اتالف وقت خواهد شد . : Interrupt Driven I/O -2 – در اين روش وسيله ورودي و خروجي با ارسال يک سيگنال وقفه کامپيوتررا از آماده بودن I/Oبرا انتقال اطالعات مطلع مي سازد . – در اين روش ديگر نيازي به چک کردن متناوب I/Oنبوده و کامپيوتر در فاصله بين آماده شدن I/Oميتواند به اجراي برنامه ديگري بپردازد . 46 وقفه در کامپيوتر پايه - IEN FFفIIليپفIIالپ: Interrupt Enable در کامپيوتر پايه يک FFبه امر وقفه اختصاص داده شده است. • اگر کامپيوتر بخواهد به دستگاه I/Oاجازه ارسال وقفه را بدهد اين FFرا Setميکند اما با صفر کردن اين FFميتوان جلو ارسال وقفه را سد کرد. • براي تغيير وضعيت اين FFاز دستورات IONو IOFاستفاده ميشود. • FFد8ي8گريب888ه ن8ام Rوقوع وقفه را م8شخصم8ينمايد. 47 فعال سازی وقفه • • • • کنترل مداوم FGIو FGOتوسط کامپیوتر زمان را تلف می کند. با استفاده از IENهر زمان که نیازی به کنترل ورودی و خروجی باشد ،به وی اطالع داده می شود. در خالل اجرای دستور ،در صورتی که FGIیا FGOيك باشد ،مقدار Rیک می شود. وقفه در زمانی رخ می دهد که کامپیوتر خواسته باشد دستور بعدی را واکشی نماید. – اگر R=0باشد ،اجرای دستور انجام می گیرد. – اگر R=1باشد ،اجرای وقفه انجام می گیرد. 48 نمودار گردشی وقفه وقفه ديگري قبول نميشود آدرس برگشت در خانه شماره صفر ذخيره ميشود .كه ميتوان از يك رجيستر و يا Stackبراي اين كار استفاده نمود. 49 سيکل وقفه • با توجه به شكل مذكور شرط مقدار دهی Rبه یک: • ميکرو اپريشن سيکل وقفه اضافه کردن فليپ فالپ Rباعث ميشود تا ميکرو اپريشن سيکل واکشي و ديکود بصورت زير تصحيح گردد: ‏PC+1 )IR(0-11 50 ‏PC ‏Decode IR(12-14) , AR ‏RT0 : AR PC ‏RT1 : IR M[AR] , ‏RT2 : D7…D0 تاثير وقفه در روند اجراي دستورات کامپيوتر پايه • وقتي که يک وقفه اتفاق مي افتد کامپيوتر: .1اجراي دستورجاري خود را تمام ميکند و .2آدرس دستور بعدي (محتوي )PCرا در محل مشخصي ذخيره ميکند (آدرس صفر حافظه) و .3با قطع روند عادي اجراي برنامه به اجراي دستورات مربوط به پردازش وقفه که در آدرس از پيش تعيين شده اي (آدرس يک ) قرار دارد ميپردازد . .1پس از خاتمه اجراي دستورات مربوط به وقفه کامپيوتر بايد برنامه قطع شده را مجددا از همان محل ادامه دهد براي اين کار در انتهاي روتين وقفه يک دستور پرش با آدرس دهي غير مستقيم به آدرس صفر قرار داده ميشود تا برنامه اصلي از محل قطع شده ادامه يابد .همچنين IENدوباره يك ميشو د. 51 اجراي سيکل وقفه حافظه محل ذخيره آدرس 256 برگشت ‏BUN 1120 0 0 ‏Pc=1 حافظه محل شروع روتين وقفه 1120 اتفاق وقفه برنامه اصلي ‏BUN 0 0 255 برنامه اصلي 255 ‏Pc=25 6 256 0 ‏BUN بعد از وقفه 52 1120 1120 روتين وقفه 1 1 روتين وقفه 0 ‏BUN قبل از وقفه 1 تشخيص وقوع وقفه • در هر سيکل اجراي دستور پس از آنکه عمل واکشي و ديکود دستورالعمل انجام شد سخت افزار کامپيوتر وقوع يک وقفه را بررسي ميکند . • در صورتي که IEN=1باشد يعني کامپيوتر اجازه وقفه را داده باشد و يکي از پرچمهاي FGIو FGOفعال شده باشد وقوع وقفه تشخيص داده ميشود. • وقوع وقفه با Setکردن يک FFبه نام Rثبت ميشود تاعمليات مربوط به پردازش وقفه آغاز شود. 53 سيکل وقفه در صورتي که فليپ فالپ R=1باشد يک وقفه اتفاق افتاده است لذا کامپيوتر در سيکل T0بجاي روند عادي اجراي سيکل دستور عمليات مربوط به اجراي سيکل وقفه راانجام ميدهد اين عمليات عبارتست از : – ذخيره آدرس دستور بعدي در محل صفر حافظه و انجام پرش به محل يک حافظه. – همچنIين R=0ميشود تا دوباره سيکل اجراي دستور شروع شود . – به همين ترتيب IEN=0ميشود تا در هنگام پردازش وقفه جاري جلوي وقفه هاي ديگر گرفته شود . 54 سيکل وقفه Fetch Decode Execute R=1 Interrupt R=0 Fetch Fetch Decode Execute ... Decode Execute Fetch ... Decode Execute ... 55 نمودار گردشی اعمال کامپیوتر پايه 56 نیاز های سخت افزاری برای طراحی کامپیوتر پایه • یک واحد حافظه متشکل از 4096کلمه 16بیتی • نه رجيستر به نامهای: – AR,PC,DR,AC,IR,TR,OUTR,INPR,SC • فلیپ فالپ های وضعیت: – I,S,E,R,IEN,FGI,FGO • رمز گشا – یک رمز گشای 3به 8برای کد دستورها – یک رمزگشای 4به 16برای زمانبندی • دروازه های منطقی کنترلی (برای ساختن واحد کنترل به صورت )Hardwired • جمع کننده و مدار منطقی 57 – به رجيسترانباره متصل می شود. ورودی های دروازه های منطقی مدارکنترل • دو رمز گشا – 8بیت دستور العمل و 16بیت خروجی ترتیب شمار • هفت فلیپ فالپ I,S,E,R,IEN,FGI,FGO • بیت های 0تا 11رجيستر دستور العمل • بیت های 0تا 15رجيسترانباره – برای کنترل صفر بودن رجيستر و کنترل بیت عالمت • بیت های 0تا 15رجيسترداده – برای کنترل صفر بودن رجيستر 58 خروجی های دروازه های منطقی کنترل هدف :طراحي سيگنالهايي براي كنترل: • • • • ورودی های کنترلی 9رجيستر خطوط کنترلی خواندن و نوشتن حافظه یک ،صفر یا متمم کردن مقدار فلیپ فالپ ها خطوط S2S1S0جهت انتخاب یک رجيستربرای دسترسی به گذرگاه • کنترل جمع کننده و مدار منطقی انباره متصل به AC 59 ليست تمام ریزعملیاتهای کامپیوتر پایه 60 ليست تمام ریزعملیاتهای کامپیوتر پایه - ادامه 61 دروازه های کنترلی رجيسترAR • ورودی های کنترلی رجيسترLD,INR,CLR : • تمام عبارتهایی که مقدار ARرا تغییر می دهند پیدا میکنیم (ریزعملیاتهایی که به فرم َAR … باشند) 62 دروازه های کنترلی رجيسترآدرس 63 دروازه های کنترلی فلیپ فالپ ‏IEN 64 کنترل خط Readحافظه • تمام ميكرواپريشن هايي كه در آنها ] M[ARدر سمت راست انتقال قرار دارد ( .به فرم ) ... M[AR]  : ‏Read= R’T1+D’7IT3 + (D0 + D1 + D2 + D6)T4 65 رمزگذار جهت مدار انتخابگر گذرگاه • برای رجيسترAR 66 مدار مرتبط با رجيسترانباره 67 دستوارت تاثیر گذار روی مقدار رجيسترانباره 68 دروازه های کنترلی رجيسترانباره 69 دروازه های کنترلی واحد جمع کننده و منطق 70

62,000 تومان