صفحه 1:
معماري کامپیوتر ( 3واحد درسي | سوري (

صفحه 2:
این درس در مورد چیست؟ اين درس در مورد ساختار وچگونگی طراحی کامپیوتر های ديجيتالى است . این مطلب معروف به "معماری کامپیوتر" ‎Coal‏ ‏(كه شامل معمارى مجموعه دستورالعمل + سازماندهى سخت افزارى مى باشد ) . 2 ممم امه5م323-04وممع 224

صفحه 3:
چرا سازماندهی کامپیوتر را بررسی می کنیم شاید هیچکدام از شما در شرکتهای اعع و یا (0000) کار نکرده ايد ‎Ul‏ .|..[ - کامپیوترهای جاسازی شده - طراحی کامپایلر - حتی طراحان نرم افزار با مجصولات این شرکتها در ارتباطند 3 ممم امه5م323-04وممع 224

صفحه 4:
طرح كلي درس بازنگری کلی کارایی مجموعه دستور العملها محاسبات کامپیوتر ماشینهای تک چرخه آی خط لوله ای سیستمهای حافظه (رپسم() اسجد() , علس0 , 0900)) سوپر اسکالر (1/را()/«لسسسسسی<) و چند پردازنده ها مباحث دیگر ممم امه5م323-04وممع 224

صفحه 5:
سرفصل : رئوس مطالب در معماری و سازماندهی کامپیوتر یافتن توانایی ارائه اطلاطات پایه از امعماری و اسازماندهی کامپیوتر در جریان طراحی کامل یک کامپیوتر * دریافتن مسئولیتهای حرفه ای و اخلاقی یک مهندس کامپیوتر (مخصوصا معمار کامپیوتر) 5 ممم امه5م323-04وممع 224

صفحه 6:
*معمار: ی" به چه معناست؟ " فن یا دانش یا ساختمان ... فن یا پرداختن به طراحی و پیاده سازی ساختار‌ها .., * ‎Orbster Of Dew Ovleye Dintigaary *‏ "شامل نقشه » طراحی » ساخته و دکوراسیون چگونگی عملکرد ‎٩‏ werd Colleye Diriosary * 6 ام هام۲9 922.00۴ وم 24

صفحه 7:
- كلمه اى كه توسط ‎red @rovks‏ ابداع گردید, 7 ممم امه5م323-04وممع 224

صفحه 8:
2 معماری كامليوتر! يعني کامپیوتر از دید کاریر" - (6۵0) ,ه ‎Q@ardka‏ ‏"ما بوسیله معماری؛ ساختارواحدهای تشکیل دهنده یک سیستم کامپیوتری را هدفمند می نمائیم ." ‎Op, tb. (QO?) -‏ 8 ممم امه5م323-04وممع 224

صفحه 9:
"معماری یک کامپیوتر عبارتست ازمحیط یا فضای بین ماشین و نرم اقزار ‎Dorks Packie -‏ اس 960/00 100 9 ممم امه5م323-04وممع 224

صفحه 10:
"معماری کامپیوثر* ساختار: نظم و ترتیب دادن به بخشهای تابت سازماندهی: فعل و انفعال پویای این بخشها و مدیریت آنها پیاده سازی:طراحی کردن بلوک بخشهای دارای هدف خاص ارزیابی کارایی: مطالعه رفتار سیستم . (مسمسه مهصسسل) ام هام۲9 922.00۴ وم 24

صفحه 11:
۰ پیاده سازی ۰ سازماندهی: منظر سطح بالا + مليستم لحافظله ۶ ساختار گذرگاه ‎(bass)‏ ‏* طراحی ‎CPO gh‏ ۰ سخت افزار + طراحی منطقی * تکنولوژی بسته بندی(ساسج) ۶ معماری مجموعه دستورالعمل 5 ممم امه5م323-04وممع 224

صفحه 12:
۰ به خاطر. بسپارید: نکته اینست که بیاموزید چگونه معماری به مفهوم تکنولوژی موجود را ارزیابی کنید. ۶ شناختن روش خیلی مهم است. اما پایان کار نیست. 2 ممم امه5م323-04وممع 224

صفحه 13:
مراحل در سازماندهی کامپیوتر ۰ مفهوم ماشینهای چند سطحی ۰ مفاهیم ماشین مجازی 13 ممم امه5م323-04وممع 224

صفحه 14:
‎٠‏ ساختار سخت افزار / نرم افزار ۰ _الگوریتم ها و پیاده سازی آنها ۰ انتشار زبان ‏14 ممم امه5م323-04وممع 224

صفحه 15:
هر دوی) سختا افذار 4 نرم افزار ام رکب از لآيه أهاى سلسله مراتلی هستند) با اهر لای سطح پائینتر جزتیاتی از دید سطح بالاتر مخفی می شوند. این اصل تجرید: روشی است که طراحان سخت افزار و طراحان نرم افزار از عهده پیچیدگی سیستم های کامپیوتری بر آمدند. پک محیط کلیدی بین لایه های انتزاعی معماری مجموعه دستورالعمل اس فضای بين سخت افزار و نرم افزار سطح پائین . اين محیط مجازی توان بسیاری در پیاده سازیبرای دگرگونی-هزینه و کارایی در اجرای یک نرم افزار یکسان است: ‎John L. Hennessy‏ ‎David A. Patterson‏ 24 ‏ام هام۲9 922.00۴ وم‎ as

صفحه 16:
عوامل در معماری کامپیوتر y 4 م0 1 ‎Orcktcohire:‏ جحي را مه( او() م۰ موم () مانب( + ماما ۰

صفحه 17:
مجموعه دستورالعملها یک محیط بحرانی

صفحه 18:
مهندسی و معماری کامپیوتر کجاست؟

صفحه 19:
تشریح: پنج جزء ترکیب شده کامپیوتر ود ام هام۲9 922.00۴ وم 24

صفحه 20:
تکنولوژی کامپیوتر: تغییری مهیج © پردازنده ؟ هر یکسال وانی 2 برایر دز سرعت(از سال 1985). * حافظه * ظرفیت 2 :]1848720 (آبرابر در هر دو سال(از سال 96) 9 ديسك * ظرفیت: 2برابر در هر سال(از سال 97) 20 ام هام۲9 00۴: 322 وم 224

صفحه 21:
گرایش تکنولوژی: پیچیدگی ریزپردازنده ‎transistors‏ | sm 11 1970 1975 1980 1985 1990 1995 00 OX trawstsiors/Ohip ‏.4ب‎ 90 9:0 peas ‏صرابر ترانزیستور/تراشه هر 0.0 تا 6 سال"موسوم به قانون مور"‎ 24 \epe9323-04F\Topico ppt a

صفحه 22:
Single/multicycle MIT Datapaths TNL The pourse Pipelinin Memory Systems 224 \cneg323-04F\Topicd.ppt 2

صفحه 23:
Intel 486™ DX CPU @ Design 1986 - 1989 @25 MHz, 33 MHz @1.2 Mtransistors 1.0 micron #5 stage pipeline @ Unified 8 KByte code/data cache (write-through) @First IA-32 processor capable of executing 1 instruction per clock cycle 224

صفحه 24:
Pentium® Processor @Design 1989 - 1993 @60 MHz, 66 MHz 3.1 M transistors 0.8 micron #5 stage pipeline @8 KByte instruction and 8 KByte data caches (writeback) @Branch predictor Pipelined floating point @First superscalar IA-32: capable of executing 2 instructions per clock 224 \cneg323-04F TopicO.ppt

صفحه 25:
Pentium® II Processor @ Design 1995 - 1997 @233 MHz, 266 MHz, 300 MHz @7.5 M transistors 0.35 micron @16 KByte L1l, 16 KByte L1D, 512 KByte off-die L2 @ First compaction of P6 microarchitecture 224 \cneg323-04F TopicO.ppt 3

صفحه 26:
Pentium® III Processor (Katmai) @ Introduced: 1999 450 MHz, 500 MHz, 533 MHz, 600MHz 9.5 M transistors 0.25 micron #16 KByte L1I, 16 KByte L1D, 512 KByte off-chip L2 @Addition of SSE instructions. SSE: Intel Streaming SIMD Extensions to the x86 ISA zane \cpe9323-04F\Topico.pot 26

صفحه 27:
Pentium® III Processor (Coppermine) # Introduced: 1999 @500Mtz ... 1133MHz @28 M transistors 0.18 micron #16 KByte L1I, 16 SEE 110, 256KByte on-chip L2 Integrate L2 cache on chip, It topped out arcu 224

صفحه 28:
Pentium® IV Processor @ Introduced: 2000 @ 1.3GHz ... 2GHz ... 3.4GHz @42M ...55M...125M transistors ‏مم‎ ‎0.18 ... 0.13 ... 0.09 ro micron 9 @Latest one: 16 KByte L1I, 16 KByte L1D, 1M on-chip L2 @Very high clock speed and SSE performance 2 ام هام۲9 922.00۴ وم 24

صفحه 29:
Intel® Itanium® Processor Design 1993 - 2000 4733 ۱/۳2, 800 ۶ 25 M transistors >0.18 micron levels of cache "16 KByte L1I, 16 KByte L1D " 96 KByte L2 = 4 MByte off-die L3 @Superscalar degree 6, in-order machine First implementation of 64-bit Itanium architecture 224 \cneg323-04F TopicO.ppt 29

صفحه 30:
Intel® Itanium 2® Processor @ Introduced: 2002 GHz »221 M transistors 0.18 micron @3 levels of cache = 32 KByte I&D L1 ™ 256 KByte L2 = integrated 1.5MByte L3 @ Based on EPIC architecture + Enhanced Machine Check Architecture (MCA) with extensive Error Correcting Code (ECC) 224 \cneg323-04F TopicO.ppt 30

صفحه 31:
Becoming Larger and Larger 1993:Pentium 2002: Level 1: 16K KByte I- ° sg KByteI-cache @ 16 KByte L11, 16 cache, 16 KByte D- ands KByteD- KByte LID cache cache 4 512 KByte off-die Level 2: 256 KB 2 # Level 3: integrated 3 MB or 1.5 MB 224 \cneg323-04F TopicO.ppt a

صفحه 32:
coated ‏کر‎ ‏و‎ SUPERSCALER ees Se ۳ تس QOverch's PowerPC OOF \cpea323-04F\Topico.pot 2 224

صفحه 33:
Intel Pentium 4 Northwood Mie eet ‏خخ‎ Seen) ages ‏اد‎ Sere ‏سک مه‎ Bree ea eee ‏انا‎ 5 0 0 که عیام ها هم ان اخااا ‎ee‏ امم اا 400.500 ,عمط

صفحه 34:
Intel Pentium 5 Prescott ‎Instruction Trace Cache 0 Buffer Allocation &‏ ۱ مها نیع تلع دمع لله اعم ‎ ‎۱ ‎erent) ‎Cee areata ‎Integer Execution Core ‎Front Side Bus Inter ‏,ععق‎ 533.00 ۷۶ ‎

صفحه 35:
یک بازبینی از جریان طراحی پردازنده

صفحه 36:
36 (1G® depiggr) Gaull sis 40 pane glee Gal yk طراحی در سطح وظایف (اسروبسسسخ) ‎QPL deste‏ طراحی در سطح اجزاء ترکیب دهنده طراحی ‎qt evel/switrk-level‏ طراحی در سطح مدار ام هام۲9 922.00۴ وم 24

صفحه 37:
روش کلاسیک طراحی مرحله ای معماری مجموعه دستورالعمل ۰ انتخاب یک الگوی ساخت ) + تعریف () برای تطبیق با: ۰ کارایی مورد نقاضای جدید و تکنولوژی جدید ۰ ارزیابی (شبیه سازی معماری مجموعه دستور العمل) ۰ تکرار تا کسب رضایت 24 ‏ام هام۲9 922.00۴ وم‎ a7

صفحه 38:
38 کل استراتژی شبیه سازی شبیه ساز در سطح دستورالعمل (800): اين روش برای ارزیایی کارایی در سطح مجموعه دستورالعمل برای شرح بیشتر مدل سازی ‎esata‏ ملي شوة. شبيه سازى در سطح سيستم: مدلهاى اين شبيه ساز جزئيات مربوط به محيط سیستم شامل برخی چیزها مانند وققه ها و مدیریت حافظه را مدل سازی می کند. ممم امه5م323-04وممع 224

صفحه 39:
(Con’d) ‎cles QTL he pO‏ اين شبيه ساز تشريح ,0 از طراحى است. ‏©6. در سطح سوتيج همزاه با تاخيرها: از همه براى شبيه سازى مولفه هاى ‏طراحى به كار مى رود؛ بردارهاى آزمايشى از مرحله ,808 تولید شده اند. ‎ ‎ ‏6 شبيه سازى در سطح مدار: براى مدل سازى جزئيات مسير بحرانى به علاوه براى بازبينى مدارها ذر تغییرات دمایی» توان ارانه شده و غیره به کار می رود. ‏39 ام هام۲9 922.00۴ وم 24

صفحه 40:
کارایی شبیه سازها Simulation Rate >10' cycles/second >10'cycley/second >10 cydleyseoond >1_gdeyseoond Level of Accuracy Instruction set System level (OS instructions + interrupts) Synchronous register transfer Gate/switch level تعداد چرخه های شبیه سازی شده در انیه بر روی یک کامپیوتر میزبان مم0 ۱[ 224

صفحه 41:
کارایی دستورالعمل بر چرخه (10) a ايجاد مدل كارايى كه: قابل انعطاف پذیرای ‎G28 3) ( Parcnvetertzed) sel gh‏ دستگیره دارای دقت ساعت در مقایسه با ,۳۷ بزابر با 9066 باشد به صورت قابل توجهی سریعتر از ,61۷ مدلها مرکب از دو بخش هستند. شبیه ساز مجموعه دستور العمل -> اجرا کننده محک(ج«اسسا) شبیه ساز خط لوله -> *حسابدار" برای چرخه های ساعت سرعت های شبیه سازی اجرای محک ها(+جملسس) به روز رسانی ریز معماری بر طبق آن چرخه : کد -> شبیه ساز -> سومان -> وفق دادن(سسم) ام هام۲9 922.00۴ وم 24

صفحه 42:
۳ دوم معماری مجموعه دستور العملها ۰ مقدمه ۶ یک بررسی موردی: معماری مجموعه دستور العمل ماشین 07160) 2 ممم امه5م323-04وممع 224

صفحه 43:
مراحل اجرای یک دستورالعمل واکشی دستورالعمل: برداشت دستورالعمل بعدی از حافظه کدبرداری از دستورالعمل: بررسی دستور العمل برای مشخص شدن اینکه: جه عملی چه عملوندهایی مورد نیازنده و نتایج باید کجا قرار گیزند. واکشی عملوندها: عملوندها برداشت می شوند. اجرا: اجرای عملیات بر روی عملوندها توسط دستورالعمل انجام گیرد (به عنوان مثال جمع) بازنویسی نتیجه: نوشتن نتیجه در محل مخصوص دستورالعمل بعدی: تعیین اينکه دستور العمل بعدی از کجا گرفته شود. 24 ‏ام هام۲9 922.00۴ وم‎ a

صفحه 44:
چه چیزی در یک ‎cif lB‏ سرع سورس) مشخص می شود؟ کدیرداری از دستورالعمل: اعمال و عملوندها چگونه تعیین می گردند؟ واکشی عملوندها: عملوندها ممکن است کجا باشند؟ چه تعداد؟ اجرا: چه اعمالی می تواند انجام گیرد؟ چه نوع داده و چه اندازه هایی؟ بازنویسی نتایج: نتایج کجا نوشته می شوند؟ چه تعداد؟ دستورالعمل بعدی: دستورالعمل بعدی را چگونه می توان انتخاب نمود؟ 44 ام هام۲9 922.00۴ وم 24

صفحه 45:
یک 180 ساده:حافظه به حافظه *_چه عملیاتی می تواند اجرا شود؟ عملیات پایه ریاضی (برای اين لحظه) * جه نوع داده و جه اندازه اى؟ نوع داده صحیح 90 بیتی ( ‎(ee‏ ۰ عملوندها و نتایج کجا می توانند قرار گیرند؟ حافظه ۰ چه تعداد عملوند و نتیجه؟ © عملوند؛ 0 نتيجه ۰ اعمال و عملوندها چگونه مشخص می شوند؟ 009 00۳ عم لمقصد,منبع |),منبع © ۰ جكونه مى توانيم دستور العمل بعدى را انتخاب كنيم؟ بعدى به ترتيب 24 ‏ام هام۲9 922.00۴ وم‎ as

صفحه 46:
مدل حافظه حافظه را به عنوان یک آرایه بزرگ از ب عدد صحیح در نظر بگیرید» که یابی تصادفی موسوم به ع) بوسیله اندیس قابل دستیابی است.(حافظه با د به عنوان نمونه ۰ [0]) شامل مقدار © اسبت. ما می توائیم در این مکانها توش و اخواندن| را انجام دهبم. ان امکانها صرفا در دسترس ماست, تمام مکانهای "مجرد" (از قبیل متفیرها در ()) باید مکانهایی رل در 0 تعبین کنند. ام هام۲9 922.00۴ وم هون oe 69 6 سل © 0 24

صفحه 47:
ar ترجمه کد ساده کد <) مفروض 0 + ه - مر ما می تولنیم تصمیم بگیریم که متغیر 0) مکان ۰0(0 9) مکان 639 و () مکان ودرا أشخال ملى كند. كد بالا را به معادل کد اسمبلی آن تبدیل مي كليم: ‎OMOO], O[FC], OFPS]‏ ۵00 چگونه می توانیم عبارت زیر را تبدیل کنیم 3® =(®+0)*(O+@) ام هام۲9 922.00۴ وم 24

صفحه 48:
استفاده از یک مکان موقتی فرض كنيد ما 8) را در 00(00؛ 8 را در ©6 ‎٠‏ 0 را در 86 0 را در 60و ‎Le‏ ‏ار ۸6۵ قرار مل دهیم| اکنون یک مکان بدون استفاده را انتخاب می کنیم (مثلا 96) # 6 0+ 0000 060, 06, ۳6 # ‏وه ۳۵0 066 ۵000 +0 مس‎ #O=0* erPDOL OOO], OOO], OOF] 0 ام هام۲9 922.00۴ وم 24

صفحه 49:
مشکلات در معماری حافظه به حافظه + حافظه اصلی خیلی کندتر از مدارات محاسباتی است این مطلب از سال 1960 تا 060003 درست است! ۶ خانه های زیادی برای مشخص نمودن آدرسهای حافظه گرفته می شوند. + معمولا نتایج یک پا دو دستورالعمل بعد مورد استفاده قرار می گیرند. به خاطر داشته باشید: بخشهای اشتراکی را سریعتر نمائد! راه حل: نتایج میانی یا موقتی را در حافظه های سریع و نزدیک به واحد محاسبه ذخیره نمائید. 0 ام هام۲9 922.00۴ وم 24

صفحه 50:
50 انباشتكرء يك بافر يرسرعت واحد (مانند يك مجموعه از 00 يا فليب فلابها » هر كدام براى يك بيت داده) را نزديك واحد محاسبه منطق نگهداری می کند. در ساده ترین حالت؛ فقط یک عملوند می تواند مشخص گردد: انباشتگر به صورت مجازی به مفهوم "و0 6()" می باشد یعنی: له ‎wor. = uv. OP‏ (Creche # Lod @ tet arebLOOD O[FE] # Odd C tw ww. (ww hes B+C) OOO O[PO] # Orte wr. Po BETORE OOO] ام هام۲9 922.00۴ وم 24

صفحه 51:
ماشین مبتنی بر انباشتگر که ‎@=(B+0)"(+@)‏ ‏را انجام می دهد Hoel ۵ io axxhOWO O20] ‏بارگذاری 0 در اباشعگر‎ ‏ع سام اما‎ tes )60+09 ‏داريم‎ oss), Saale eae .( ‏نوشتن عحتوای انباشتگر حر‎ 0 ‏فته‎ ‏بارگذاری )بر انباشتگر.‎ ‏ل سس‎ )0+0 ‏جمع نمودن يها انپاشتگر(اکنون دارم‎ ‏راو(‎ ® vw ax ODL ODO] ‏"ضرب کردن 69 در انباشتگر.‎ ‏ی‎ # Ore ox, نوشتن نتیجه در 8 51 ام هام۲9 922.00۴ وم 24

صفحه 52:
ضعف ماشینهای مبتنی بر انباشتگر * هنوز نیازمند ذخیره سازی بسیاری مقادیر موقتی و میانی در حافظه می باشیم * در واقع انباشتگر فقط برای یک ترتیب از محاسبات که در آن نتیجه یکی؛ ورودی برای بعدی است. مفید مى باشد. 224 0 ممم امه5م323-04وممع

صفحه 53:
ماشینهای مبتنی بر انباشتگر هنوز در کامپیوترهای اولیه معمول بودند ۶ یک ‎coals Gal yb‏ و بنابراين محبوب ۰ مخصوص برای - کامپیوتر های اولیه - میکروپروسسر های اولیه (0006 + ‎(BODO‏ - مدلهای اسر (ارزان) 53 ام هام۲9 922.00۴ وم 24

صفحه 54:
+ اگر منابع سخت افزاری بیشتری در دسترس است؛ مکانهای اشتگر قرار دهید: ذخیره سازی سریع را در کنار ان ۶ ماشینهای مبتنی بر پشته 24 ‏ام هام۲9 922.00۴ وم‎ 5a

صفحه 55:
ایده: یک ستون از مکانهای ذخیره سازی سریع دلرای یک بالا(مت) و یک پایین (متصاتت) ایک دتنترز الحمل فقط از مقدار بالاي پشت(به) قابلیت برداشت داردء یا شاید دو یا سه مقدار به عنوان بالای پشته در نظر گرفته شوند. ما مى توانيم مقادير جديد را در بالای شته قرال دهيم ('>اصم”) يا از بالاى يشته برداريم ‎Gas LL ("pop")‏ ما نمى توانيم به مكانهابى در زير يشتهدسترسى ذائ مكر اينكه هر جيز بالاى أن را خارج كنيم. د ممم امه5م323-04وممع هون oe 69 6 سل ca 2" Brow op 41 Prox op 24

صفحه 56:
مغمارئ مجموعه دستور العمل ماشينهاى مبتتئ بر يشئتة اعبال اصلی شامل: بارگذاری: برداشت مقدار از حافظه و قرار دادن آن بر روی پشته تخیره سازی: برداشت مقدار از پشته و ذخیره آل در حافظه حسابى: خارج كردن يك يا دو مقدار از پشته؛ قرار دادن نتیجه روی پشته دونسخه ای (بی(0): گرفتن مقدار از بالای پشته بدون حذف آن؟ قرار دادن یک کپی جدید از ‎ol‏ در روی پشته (چرا اين عمل كاربر 5 است؟) 56 ام هام۲9 922.00۴ وم 24

صفحه 57:
ماشین مبتنی بر پشته که رهبم)*رم+)عهرا انجام می دهد )+( (سده مها ۷ ‎OOC POO‏ | )0( | aC] LOGO OO] )0( (+6) Xxx | LOGO OO] @) | 0) ‏تا‎ (docked cert stl) 60 | LOGO OPS] 1 5 ممم امه5م323-04وممع 224

صفحه 58:
MOLT | GPORE OOO] ماشین مبتنی بر پشته ((®+O)(0+E)) ۷ 2 LOGO Of] | 000 > (C) (®) (+8) Jode (®+C) (+) XXX دقت کنید که اکنون پشته مشابه زمانی است که شروع نمودیم. se \cpea323-04F\Topico.pot 224

صفحه 59:
کاربرد ماشینهای مبتنی برپشته * بسیاری از کامپیوترهای اولیه ۶ واحد ممیز شناور در 06280 (تقریبا) * ماشین مجازی جاوا و ممم امه5م323-04وممع 224

صفحه 60:
ایده:به کار بردن مکانهای ذخیره سازعا زیاد("تباتها) نزدیک انباشتگرا ۶ ثبات ها نام / شماره های مشخصی دارند که می تواتند به جای حافظه استفاده می_شوند * | ادرتیابلی تمنبت له طافظه ااصلی ۶ خیلی سریعثر است (C@O atts vs. ~ (OO CPO ayes oa PC 1-2) * _ ثبات ها نسبت به مکان های حافظه خیلی نزدیک ترند 00088 تا تبات بیتیبارد _تبات های کمترک‌آدرس های کوچکتر-- وتعداد بیتهای کمتر برای نام كذارى آنها _متابع استفاده کمتر است و باید با دقت ار آنها استفاده شودا 60 ام هام۲9 922.00۴ وم 24

صفحه 61:
ثباتهای عام منظوره_خاص منظوره © یک تبات خاص _ منظوره برای اهداف مشخص استفاده می شود و ممکن است عملیاتی را که استفاده می شود را محدودکند - طراحی آسانتر سخت افزار: ثبات را در جایی که دقیقا نیازاست قرار بده - به منظور استفاده موثر برای کامپایلر خیلی سخت تر است. * یک بات عام منظوره می تواند دربیشتر مسیرهای عملیاتی استفاده شود بنابراین مسیریابی خیلی مشکل است 6 ممم امه5م323-04وممع 224

صفحه 62:
ثبات های خاص منظوره 62 The z_80 هفت تا ثبات (ع بیتی: (می توانلد جفت شوند ‎(A,B,C,D,E,H,LBC,DE,HL‏ ات 10 ‎PC OC:‏ (شمارنده برنامه) جمع ,تفریق, شیفت تنها با ۸ می تواند انجام شود (شمارنده 60 بیتی ). افزايش و كاهش می تواند با تمام ثبات ها وجفتهای ثبات انجام شود . می توانند از حافظه آدرس (رارلا)را واکشی کنند و در هریت تبات قرار دهند. یک واکشی از آدرس()9))یا(0)8))تنها می تواند به 9)برود. واکشی ها از (00)),(مابا")و (0) تعداد چرخه های متفاوتی مى كيرد چه کسی می خواهد برای این یک کامپایلر بنویسد؟ ام هام۲9 922.00۴ وم 24

صفحه 63:
5 وپردازشگرهای مشابه) 0 تا ثبات عمومی دارند alongs:00 _»(GPRs) ‏تند. همه می توانند نوشته یا‎ خوانده شوند به جز ‎GLE‏ صفر که هميشه صفراست ود تواند تغيير كند.زمان دستيابى به ثبات ثابت است. ام هام۲9 922.00۴ وم سین ‎o‏ ‏8 66 1 تبات عام منظوره ماشین های ‎(GPR)‏ سل( $0 30 56 seq 224

صفحه 64:
‎alailly GPR A=(B+C)*(D+E) catls‏ می دهد ‎ ‎#RA= O + CO[FO], O[POSd COD ‎#RO = 0 + COCO], O|E]$S GOO ‎#0 =RA* REOMOD], $4, $2OOL ‎224 ‏ممم امه5م323-04وممع‎ 6a

صفحه 65:
اندازه های داده های متفاوت چطورباید با اندازه های داده های متفاوت رفتارکنیم؟ انتخاب یک اندازه برای یک واحد ذخیره شده در یک آدرس ‎Lei‏ ۰ ذخیره کردن داده بزرگ در یک مجموعه از مکانهای همجوار حافظه * ذخیره کردن داده کوچک در یک مکان: wer shit & wash ope امروزه نقریبا همه ماشینها(شامل۷/]۳5)دارای آدرس دهی بایتی *عاواجووم۸0۲ 8۱۷۲6 "هسنند هر مکان آدرس دهی » در حافظه بیتی نگهداری می شود. ام هام۲9 922.00۴ وم 24

صفحه 66:
حافظه ۷۱۱۳5 روی یک ماشین قابل آدرس دهی ‎AL‏ ازقبيل701009) اكرما بكوييم يك كلمه (6۵بیت) در آدرس(0( ذخیره شده به اين معنااست که مکانهای ‎OOKOO‏ اشخال کرده:(کلمه بعدی از 66۴ شروع می شود): ابه طور نرمال بارگذاری وذخیره چندین بیت باید "تنظیم" شود.آدرس ببایتی بارگذاری یا ذخیره باید مضربی از,‌باشد.برای نمونه نیم کلمه تنها در آدرسهای زوج ذخیره میشود. ۵ جازم بارگذاریشدنو ذخیرم شدن‌برلی‌لستفاده مخصوص دستور ااهمل‌ها را نمی‌دهند لما آنها ممکن‌لستک ندترشوند(بیشتر پردازشگر‌ها لین‌را ببرلی‌هميشه لجازم نمی‌دهند!), 65 ام هام۲9 922.00۴ وم 24

صفحه 67:
برای یک دلده چند بایتی کدام قسمت به کدلم بایت می رود؟ اگر 8)محتوى(0*©0*00(000000700000) )و ما آن زا در أدرس (30 در يك ماشين “033 03:0" "03-345 :8" به آدرس (0© مى رود در یک ماشین "هم علورا" از سوی دیگر است. Oo oe | ee ۳۹ 29 0 ead CS 65 CF ¢o_ lee [oe] od ‏ود‎ 60 60۰.68۵ lea | ee 24 ‏ام هام۲9 922.00۴ وم‎ or

صفحه 68:
Big Crtiaa- DIPS, GPORC COOOOD ‏ماشینهای‎ ۶ intel, Dipha,Oux sls $5 3) 52 ha ite Bordon ‏ماشینهای‎ * ۰ سازگاری مشکلات انتقال چندین بایت داده بین ماشینهای علابا,) :) 0 03 ام هام۲9 922.00۴ وم 24

صفحه 69:
یک روش آدرس دهی :15/۸ این سوال را جواب می دهد :عملوندها کجا میتوانند ذخیره شوند؟ ما دو نوع ذخیره سازی در ۱۳5)داریم( وبیشتر ماشینهای دیگر) :ثباتها و حافظه اصلی.ما می توانیم به هریک از اين دو با هردو عملوندها برویم ‏ یک تک عملوند مي تواند با هر یک از این دو بياید یک ثبات یا یک مکان حافظه » و روشهای آدرس دهی راه های گوناگون تشخیص این مکانها را ارائه می کنو 6 ام هام۲9 922.00۴ وم 24

صفحه 70:
70 داده می شود: ‎Ovasicry‏ Re 4 OO] 0 aa 40 Cxawple wo $d, $C woo $1, (PO) woo 80, ۵ ام هام۲9 922.00۴ وم رمشهای آدرس دهن ساده دراین روشها یک مکان با داده به طور مستقیم دریک دستورالعمل Oode came Reyster Orrent (or wbevhte) everett 224

صفحه 71:
ad «Rd «ad «Rd Decricry O[RE] O[FO+RE] ORE +RO] Ofo[Re]] سس (96) ,90 رس ww $d, POSE) ww $0, SP($E) wo $4, @($2) \cpea323-04F\Topico.pot Oode were Rey. ‏مس‎ ‏امه‎ امه Dew. ‏اس‎ روشهای ادرس دهى غير مستقيم ‎١‏ در توليد يك آدرس حافظه يكى يا بيشترثبائها استفاده مى شوند ‎ ‎24 ‎ ‎ ‎ ‎ ‎ ‎

صفحه 72:
روشهای آدرس دهی پیشرفته نی می اجزای زیادی اجزای اصلی را در زبانهای سطح بالا يشتيبا کنند یا تعداد دستور العمل هارا در طول دستیایی از حاقظه اقزایش می دهند سس ‎RA‏ 0۵۵ ‎O{RO-] 0‏ 0]۳۵+۵۵[ aa 2 یت (60) ,80 بده ++ )$2( ,90 ند - - wou $d, PO($2) ‏[ع]‎ \cpea323-04F\Topico.pot وی 7۵() انا حول ون Gooted 24

صفحه 73:
روشهای آدرس دهی منتخب کارهایی که انجام می شود :هر روش آدرس دهی ممکن است برای هر عملوندی درا ه_زمان اتفاده شود * طرح دستورات سطح بالا به طور مستقیم به دستورالعملها آسانتر است. * برای طراحی پردازشگر سخت است بعلت اينکه باعث پیچیدگی بیشتر می شواد آدرس دهی های محدود: تنها روشهای کمی را اجازه می دهند ویا تعداد عملوندها را به روش های معین محدود میکنند * برای کامپایلر یا برنامه نویس که پیرو قواعد مشخص هستند سخت تراست + شایدطول کد زیاد شود 24 ‏ام هام۲9 922.00۴ وم‎ a

صفحه 74:
سه برنامه روی(مینی کامپیوتر)»ن,مشخص شده که همه انواع روشها را پشتیبانی می کنند: ‎of wood (%)‏ سم Orn. we. aK. 32 42 55 17 33 43 3 13 24 0 7 16 ‏بل‎ 6 0 2 3 Onde Dace 00 ‏و‎ ‎Rey. ‏اس‎ ‎rates Dexw. Tertirect Oters \cpea323-04F\Topico.pot 224

صفحه 75:
روشهای آدرس دهی داده های * بزرگی تغییر مکان مورد نیاز چه طور باید باشد؟ در بررسی های ‎Gpev ۳۵ Sper wOC‏ در صد تغییر مکانها در دامنه +-0089انجام می شود. * بزرگی تابت فوری مورد نیاز چه طور باید باشد؟ ادر مطالعات نشان داده شده ۵00 تا 000 درصد در © بیت و 8 تا 00 درصد در 9) بیت است. 5 ام هام۲9 922.00۴ وم 24

صفحه 76:
چه طور ما نمایش دادن دستورالعمل ها را انجام می دهیم ؟ * ما به چند بیت اجنیاج داریم برای اینکه بگوییم چه عملی انجام شده (مثلا جمع ,تفریق . ضرب ,غيره)كه به اين كدكذارى عملوند ‎ah Sopride‏ * ما به چند بیت برای هر عملوندو نتیجه احتیاج داریم(در نمونه ما جمعا ۵تا ) ۰ چه نوع روش آدرس دهی ۰ شماری از ثباتها , آدرس حافظه و یا ثابت فوری ام هام۲9 922.00۴ وم 24

صفحه 77:
دستورالعملهای با طول متغیر * تا کنون ء() هر روش را برای هر عملوندی اجازه داده می تواند یک دستور العمل با سه تا آدرس های ©© بیتی باشد (آدرس دهی مستفیم) 48 بایت در اين دستور العمل * اما تباتها به بیتهای کمی برای مشخص شدن نیاز دارند بنابراين بایت برای یک دستورالعمل که تنها از 0 تا ثبات استفاده می کنند هدر میشود , ۰ باید از دستور العمل های با طول متغیر استفاده کرد.دربری()دستورالعملهل از 0 تا 472 بایت متغیراند. 7 ام هام۲9 922.00۴ وم 24

صفحه 78:
دستورالعنل های با طول تلبت ۰ اگر هر دستور العمل با تعداد بیتهای یکسان (ترجیحا یک عدد زوج مانند 46 یا 06)بیشتر اجزای پردازشگر ساده تر خواهد شد.اما در هر دو صورت مقداری از فضا هدر می رود یا همه روشهای آدرس دهی را نمی تواند پشتیبانی کند! 7 ام هام۲9 922.00۴ وم 24

صفحه 79:
بار گذاری اعداد صحیح كوجى ۰ همه ثباتها در 96 00100 بیتی هستند. ۰ چه طور مانیم کلمه یا یک بایت را در یک ثبات بارگذاری می کنیم؟ * بیتها را در حداقل ابیت تباتی بارگذاری می کنیم. بار گذاری بدون علامت: همه بیت های بالا را صفر کنیم. بار گذاری علامت دار: همه بیت های بالا را با توجه به علامت صفر یا یک می کنیم(نیم کلمه یا بایت ‎(DG‏ 9 ام هام۲9 922.00۴ وم 24

صفحه 80:
Tre 6۳180 ‏اس‎ ‎٠‏ در مجموعه دستور العمل های کاهش يافته در دستگاه کامپیو تر همه دستور العمل ها در اندازه هاى يكسانى هستند (©© بيت در ‎(D1PG‏ ‏* روشهای آدرس دهی کمی پشتیبانی می شوند ( فقط آنهایی كه بیشتر کاربرد دارند) ‏۰ فقط تعداد کمی از قالب های دستور العمل(کد برداری آسانتر انجام مى شود) ‏* دستور العمل های محاسباتی که فقط روی تبات کار می کنند ‏۰ داده های حافظه باید در ثبات ها قبل از پردازش شدن بارگذاری شوند که این یک معماری ‎Load _Otore‏ نامیده می شود ‎ ‏03 ام هام۲9 922.00۴ وم 24

صفحه 81:
۰ عمل تک چرخه ای Lowd_Giore intl کنترل سخت افزاربى رابطه دستور العمل های کم و روشهای آدرس دهی دستواریالعمل-های- با قالمك_تابات تاش پیات ‎Hild Le‏ كامبايل ام هام۲9 922.00۴ وم معیارهای[85 ۷/۶۱۱ -3۱56]60۱ 24

صفحه 82:
0 Chprocessor 1 (FPU) Registers 3 و Arithmetie unit Cau: EpC ‘oprocessor 0 (traps and memory registers BadVAda tatu [cpu Registers 7 = rithmetip — [Multiply] unit divide Lo} [Hi MIPS R2000 CPU and FPU \cpea323-04F\Topico.pot 224

صفحه 83:
5 تا ثبات ‎RO=ObL‏ ثبات هاى ذخيره شده: 6,۲27 ۰51,۲2 © كاربرد مخصوص: اشاره گر به ناحیه سر اسری:8 2 اشاره گر پشته:829 اشاره گر قاب:830 آدرس بازگفت:831 0 ممم امه5م323-04وممع 224

صفحه 84:
قراردادهای ثبات استاندارد ۰ 00 تا ثبات صحیح در 16۳0/()عام متظوره هستند _هر کدام می توانند به عنوان یک عملوند یا نتیجه یک محاسبه عملیاتی استفاده شوند * اما ساخت تکه های متفاوت از نرم افزارکه باهم کار می کنند آسانتر است اگر قراردادهای معینی که دنبال می شود درباره آن تباتهایی باشد که برای آن اهداف استفاده می شود ۶ این قراردادها معمولا به وسیله فروشنده پیشنهاد می شوند و به وسیله کامپایلرها پشتیبانی می شوند 24 ‏ام هام۲9 922.00۴ وم‎ ea

صفحه 85:
Ooxstrat O (Rewerved Ror ameerbler) ‏مسجو وم انس طم بسحف‎ evd ‏یط نا ها‎ Dewporeres (DOT 86060( Card ther (Reserved Por OG kercel) ‏سوه‎ pricier (Grack porter (Prior potter له مس 0 1 2-3 4-7 24-25 ,8-15 16-23 26-27 28 29 30 31 \cpea323-04F\Topico.pot es قراردادهای ثباتی در ۷۱۳5 عع و( 01 0-5 0۵ 0-05 20-29 w$ ov Pes ro 224

صفحه 86:
3 [۳ Rewer ‏ال الال‎ Deter [ore 9 22-5 ا اانا 0ج لب دحب امد سب وف 7 forever a | ‏ومع‎ (i preened sess cal) [Tesora (oo ‏کسوس‎ aes cul) ‏سوه اس هواس بوصو‎ ‏سس تسس‎ cal) ۳۳۳۳ ae cul) ‏یه اس یساس يسود‎ | ‏کسوس اس مومس‎ apr eal) |] (oo prened aoe cal) [Gaurd ieuperon fprversed cove cal) Seed ewer (presereed sores ra) ‏تسس رسمه اس‎ woes call) ‏سره‎ 7 Swed cavers (preven wees cll Saved ieaporan (preserved wees call Saved aver (preserved wees call) ‏سوه اس‎ (preven wees call) Feeney (ool preserved wey cal) Trayoran (ot preserved weer col) ese fr OS ‏اس‎ ised or OS Revert ‎global area‏ سي ‎ack porter‏ ‎Toe penser‏ ‎ ‎rors eed by Rasa eat) ‎ ‎Fura ‎\eneg223-04F Topico.pot ‎ ‎ ‎ ‎ ‎Caer ewer ۳7 a 7 a ‎ ‎=o ‎ ‎1 ‎1 ‎1 ‎ ‎O10°G rewsters an wage powrdiod ‎122824 ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎

صفحه 87:
عملیات ۱۱۳5 * بارگذاری/ذخیره * عملیات (راو) :| انشخاب ها/يريش ها ‎a‏ ممم امه5م323-04وممع ‎224

صفحه 88:
es ‎rd‏ لق ‎S bis‏ عاط © ‎ ‎S bis 0 bis ‎CO bits: ‎\cpea323-04F\Topico.pot ‎ ‏دستورالعمل ۷۱۱۳5 ‏امس ‎op‏ ‎bite‏ 8 ‎1۳ ‏هط © ‏سول ‎ ‎ ‏عم 6 ‎224 ‎ ‎ ‎ ‎ ‎ ‎

صفحه 89:
فیلدها در دستورالعملهای ۷۱۱۳5 من:مشخصات‌عمل بیان‌لینکه کدلم قا لباستفادم شود حب او لین‌ثبات‌منبع. eee it لسرشباتقصد )داك :مقدار شيفت 010225 :ثاببتفور ووتغييرمكازيافته و يا لنشعاب 0 ام هام۲9 922.00۴ وم 24

صفحه 90:
ماشين تمايش دستورالعملهاى ‎MIPS‏ فیلدهای 10<69/()نام گذاری می شوند که بحث در مورد آنها آسانتر شود: op 15 rt rd_|shamt| funct 6 bits 5 bits 5 bits 5 bits 5 bits 6 bit} ینجا منظور هر نامی از فیلدهای دستورالعمل های ‎el DIPS‏ 0():علگر هر دستورالعمل ۲6):اولین عملوند شبات‌نبم. ۲ دومین عملوند شباتتبم. ‎RO ©:‏ عملوند شباتمقصد. آن‌نتایج عملیاتوا فرلهم می‌کند. ‏© 91,)0(/۳):مقدار شیفت ‏& ()(0)()<):تابع: لین فیلد عملیات‌مختلفهر فیلد 08() را لنتخابمىك ند. ‎ ‎ ‎ ‎ ‏90 ام هام۲9 922.00۴ وم 24 ‎ ‎

صفحه 91:
ADD $t1, $s1, $s2 32 0 8 18 17 0 ‏نمایش دهدهی:‎ ممم امه5م323-04وممع 224

صفحه 92:
۰ نمایش دهدهی 0 17 18 8 0 32 6 ‏وغزط‎ 5 bits 5 bits 5 bits 5 bits 6 bits ۰ نمایش باینری 0 01000 10010 1000 000000 ‎bits 5 bits 5 bits 5 bits 6 bits‏ 5 الط 6 92 ممم امه5م323-04وممع 224

صفحه 93:
ضرب ۵ تا عدد 06 بیتی تاحدود 06۴ بیت می نواند باشد 01005 نا مخصوص‌دارد :۷,۱ و )را نتایج ضرب ابیت های پایین تربه رامی روند و بیت های بالاتر به زرا" می روند نتایج تفسیم:خارج قسمت به ما می رود و باقی مانده به با می ووه استفاده کردن از عملیات اضافی(از قبیل «لالب)برای جابجایی به بالا و پایین ثبات های منظوره 03 ام هام۲9 922.00۴ وم 24

صفحه 94:
دستورالعملهای انتقال داده ها dhe (base + 10 bit PP sets) 7۳ we rt address 9 bite © ‏عط‎ S bits: (0 bts ‏:مثال‎ ‎y tO, 8 ($s3) --- # Temporary reg tO gets A[8] ‏:يادداشت‎ همجنينجثبات بايه است(85©ددر اين نمونه _همجنين ثبات شاخص ناميده مى شود) و 4 (در اين نمونه 09) نتايج را ذخيره مى كند (به عنوان ثبات مقصد) 24 ‏ام هام۲9 922.00۴ وم‎ 9a

صفحه 95:
5 /النجام میدهد ‎D+E)‏ 98 An Example 6 66 PO 1 57 Gq 102 256 461 ۵ | ه | 5 6 105 ام هام۲9 922.00۴ وم A=(B+C)*( Hod ook, PL wo 58 0 2۳ 7 4 ‏هه‎ ‎0 | 9 ole be €q 0 @ssewbb ‎PO($@)‏ ,56 سه ‎dy $9, PO(SO)‏ $9 ,$9 ,$0 لاله ‎CO(S@)‏ ,$8 سه ‎du 900, 960)80(‏ ‎whl $9, $9, $4‏ ‎ak! $9, $0, $9‏ ‏(400)80 ,86 سد ‎24 ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎

صفحه 96:
در بیشترپردازشگر ها"شمارنده برنامه"((۳6)) آدرس دستور العمل بعدی را نگه می دارد:واکشی از [(0])00) به طور عادی بعداز اينکه یک دستورالعمل تمام شدح (2)۳0) تا به ۳0) آضافه مى كند أى تعذاد بات ها تر نستورالعمل اس انثلعاب شاب یک انامه اجازه‌آمی| دهند واکشیم/ ‎ats‏ از مکانهای متفاوحا انشعاپها استفاده میشوند برای به کاربردن همه روند کنترلی فرمانهای زبان هاى سطح بالا ازقبيل جات مره بو ,بو 96 ام هام۲9 922.00۴ وم 24

صفحه 97:
7 دو نوع اساسی از پرشها: غير شرطی هميشه به آدرس مشخص شده جهش می کند شرطی:اگر شرط درست باشد به آدرس مشخص شده می رود. به عبارت دیگربا دستور العمل بعدی ادامه می دهد. آدرس های مقصد با روش مشابهی می تواند مشخص شود به عنوان عملوندهای دیگر (جمع آوری تباتها ,ثابت های فوری , و مکان های حافظه)بستگی دارد که چه چیزی در 1690 پشتیبانی شود ام هام۲9 922.00۴ وم 24

صفحه 98:
مثال همگردانی انشعاب * کامپایل زیر ریا دنبال کنید ii Fi #9 (==) + أن تا ‎-k‏ اج عم ۴۶-۱ nit 9 ممم امه5م323-04وممع 224

صفحه 99:
MIPS). If Then Else ssuve Pyykyij im RO-RIC (resperivel)) # @rauwk Pis>) bur 806, $40, Ce #۲۶۱۲۲ wh $0, $9, $40 مج ز ‎ucop to Bat‏ # :800 ,89 ,89 طد ۱-۲ < ۲ #ر ری ع ده ط() # و ام هام۲9 922.00۴ وم 24

صفحه 100:
* بیشتر انشعابهای شرطی برای آدرس های ثابت وکوتاه روی می دهند ۴ اما اغلب این طور استفاده نمی شوند * استفاده ای برای افزایش یا کاهش پیشوندی ندارند پس مطابق با فلسفه سادگی )۷۱۳5,۲۱5تعداد کمی انشعاب اساسی دارد 100 ممم امه5م323-04وممع 224

صفحه 101:
MIPS j> ‏انواع انشعاب‎ ۶ - انشعاب شرطی:2007 ,۲692 ,۲۵91 060/0۳6 ‎If regl =/# reg2, jump to PC‏ - ‎addr (PC-relative)‏ + ۶ پرش تباتی:ب ۳ واکشی آدرس از ثبات مشخص شده و پرش به آن ۰ يرش غير شرطی: ۷( ]| * _ هميشه به آدرس پرش می کند(استفاده ار "درس دهلی) 101 ممم امه5م323-04وممع 224

صفحه 102:
دستورالعمل های انشعاب apd eta ‏اتشعاب‎ * - 060 R1,R2,L1 # if Rl = R2 goto L1 -bne R1,R2,L1 # if Rl =\= R2 go to 1 ۰ این ها دستورالعملهای بم‌رو_٩)‏ هستند * انشعاب های غير شرطی 8 ۲69156۲ ۵۳ 2560 نا #۴ 8ه ‎JR‏ ‎Test if < 0‏ ‎silt R1,R16,R17 #R1 gets 1if R16 <‏ ‎R17‏ ‎(sit: set-less-than)‏ ‎aha bne RI, 0, le$Ssondtogganch to less if RL =\ se‏

صفحه 103:
سای هایس 1 ow lw la ‏لصن سل‎ Oord Des اس 103 ممم امه5م323-04وممع 224

صفحه 104:
‎٠‏ * کامپایل را دنبال کنید: ‎switch ) 4 ‎case 0: f = ۴ +1; break; case l: f = f -2; break; case 3: f =-f; break; ‎} ‎Note the gap (case 2); ‏104 ممم امه5م323-04وممع 224

صفحه 105:
بدنه سوئیج در ۷۱۳5 ‎DD:‏ ی ,96 مومس( من (سا) ما ط مر ‎86, 86:8 دطمم ‏:0و6 م۳ 9 .مد‎ (coher breds i@xt P = O- Rab $0, $0, SOLO: ‏سا اس‎ 0 ‏ساغتن جدول مراجعه درحافظه ‏را و له را اه سل ‎address of (Bit‏ ور ام له ‎105 ‎ ‎ ‎0۵ ‎0 ‎doo ‎1228/24 \epeg323-04F\Topico.ppt DD ‎ ‎ ‎ ‎ ‎

صفحه 106:
سوتيج كامبايل شده براي ۱۱۳5 (sence bial) © ,505 ,506 مد ۱۵ ۳۵۵ #۰۷۳۵ 0 ,500 ,5068 صا 00 > جاخ وت سا ۲ # ‎sh $F, $49, &‏ ۲ ۷ # # 000 2 ۲ < ۳ bey SIP, SO, Oxi #۲ 2 9*6 wd SUP, 509, 9 Hrd ‏لج +08 د‎ SUP, Sah, SUP # Owe oF xb a (OOO ‏سا‎ 506, (DOO (SAP) # luce ‏له سا ط‎ 0 206 ام هام۲9 922.00۴ وم 24

صفحه 107:
حلقه ها: ‎aby SIU pays Sa Por whe‏ جلقه. پرش‌کنبه بعد ان ‎Shalt Yds Staal ats‏ ‏«():تستک ردن‌شرط در انتهایی دنه حلقه,پرش‌کنبه لبتدا لگر درستاست ‏سونیچ:("سسیح؟ فراخوانده می شوددر بعضی زبانهای دیگر) ساختن یک جدول آدرس ‏استفاده( روصم ۱۵۵ )و وا ‎or equiv.‏ ‏مطمتن باشید از چک کردن برای پیش فرض یا حبومی‌های بدون استفاده ‎ ‏107 ام هام۲9 922.00۴ وم 24

صفحه 108:
پشتیبانی دستورالعملهای فراخونی پردازه Jump and link | ‏آدرس پردازشگر . ام‎ یادداشت: آدرس بازگشت در 24ذخیره می شود ‎Return‏ ‎jr -RB1‏ خیره کردن آدرس بازگشت روی پشته 0 به عوان‌لشارم گر پشته لستفادم می‌شود پارامتر زود گتر: ‎)٩, - R,,‏ لستفادد مي‌شسوند ‎ial‏ 108 ام هام۲9 922.00۴ وم 24

صفحه 109:
* عملوندهای ثابت یا فوری ‎LW R24, AddrConstant4(0)‏ ۸00۱ 3, 5 (I type) ‏ثابتها16بیتی هستند‎ 255 Load_upper_immediate ؟ می رود به مکان 10000 109 ام هام۲9 922.00۴ وم روش آدرس دهی ۷/۱5 های دیگر Lui R8 J 10000 ji_type 224

صفحه 110:
efiame pointe, art $ no Fast locations for deta. In MIPS, data must bein regis to perform. arithmetic. MIPS register $2ero always equals 0. Sp (28) the global pointer, $5p(29) i the stack pointe; Sfp (30) it (31) is the ‏سه دسفم‎ \eneg223-04F Topico.pot $50-$s7, $10-5i9, $210, $2-$23, $v0- $v1, Sop, Sfp $sp, Sra Memory [0], [Accessed only by data transfer nsiuctions: MIPS uses byte accesses 50 Mesrory 4}, sequestial wort ‏را لته‎ 4. Merrory bolds data structures, suchas anays, ] Mempry{ 42949672920] and spied regiter, suchas those saved onyprocerture calls 1۷۲1۳۹ ‏بلی‌زبان‎ ‎1 ‏زج للم‎ $2, 853 2+ 53 [Tze ‏حساك و هط مهو‎ ‏نها‎ lub $31 $2 $53 [Three operends deta in eisters art wored ‏ل‎ [Data fom mempry to register storeword [sw $1,100 682) [Maroy ($32 +100] =$81_— [Data fom reserto memory branch oneued_|boq $1, 82. Lif (@s1—=$2)qp to | ud tester arch. ‏ندال اوه‎ 2 L [iF ($81 =$52) got L—___|Notexpel estan enc ‏عم‎ ‏ا 2 ا 0 ا‎ be ssi =0 ۳3 20 lp t 10000 [mp ‏كاه وروی‎ ‏ده ع ككسدسن‎ Ip to sa [Rorswitch proceae ian jump and int [2500 PC Ea gp 1000 |For procedure call 2 registers یه سس هد |Contitiora branch {Unconditional jump 12/28)2:

صفحه 111:
odd $51, $52, $53 ub $31, $2, $83 iar 1,100 ($82) sw $81,100 ($82) lbeu $51, $52, 100 bor $51, $52, 100 د١١‎ 451, 952 3 i__ 10000 (see section 3.8) ir gra isl 10000 (see section 3.8) [All MIPS instructins 32 bits [Arithmetic instruction format [Data transfer, branch format 6 bits funct داهن ۵ | ماه داه داه جع ده بدا وتات ند با 3 تعاس \cneg323-04F\Topic0.ppt

صفحه 112:
فراخوانی تابع در ۱/۱85 * فراخوانی تابع یک ساختار ضروری زبان های برنامه ‎PLA hal gh‏ برنامه یک تابع را برای انجام چند وظیفه فرامی خواند. موقعی که تابع انجام میشود()2) دقیقا از بعد از جایی که برنامه فراخوانی شده ادامه می دهد 24 ‏ام هام۲9 922.00۴ وم‎ a2

صفحه 113:
فراخوانی تابع در ۲۸۱۳5 استفاده از دستورالعمل ‎ced fics”)‏ مر )لول لت ال فقط ری ل است به جز موارد زیر "آدرس بازگشت" (سم) +390 + لجدوام 62 اين آدرس دستور العمل بعدى بعد ازاوزاست از 5960م براى بازكشت استفاده مى كنيم درد ام هام۲9 922.00۴ وم 24

صفحه 114:
ل فراخوانی Oster Oster 6: dus $3, OGF) eck! $F, $0, (OOD ‏سا‎ ٩2, ۵)86( ‏للم‎ 36, $0, C200 pw $8, OSS) okt $d, $0, 4 aw $P, OP) mw $d, DSP) + $0d anh $d, 205 pw $4, 0 (83) ام هام۲9 922.00۴ وم 24

صفحه 115:
مشکلات قراخواتی تابع_ ها این متال درست کار می کند اما چه طور؟ تابع <) تابع دیگر را فراخوانی می کند فراخوانی کننده یک نکته مهم در تباتهای ‎PINAR ARO‏ تابع فراخوانی شده خودش را فرامی خواند؟ هر نسخه از یک تابع باید کپی متغیر هايش را داشته باشداین ها در یک پشته به عنوان یک ستون از قاب ها مرئب شده اند 24 ‏ام هام۲9 922.00۴ وم‎ us

صفحه 116:
فرض کنید تابع ۸, را فراخوانی کند و 8 ,) را فراخوانی کند,تابع ت)خودش را فراخوانی می کند. C's uae C's vere O's vars O's vas Coke O C's vers, O's vars O's vars © ots O عم 9) O's ws © عام © ممم امه5م323-04وممع O's vrs stort D 224

صفحه 117:
فراخوانی پردازه * مکان پارامترها * کنترل انتقال * ذخیره سازی ۸۵60۱۲۱۲6 ۶ انجام دادن کار * مکان بازگشت نتایج * بازگشت کنترل بر گشتی به فراخوان 1 ممم امه5م323-04وممع 224

صفحه 118:
آدرسهای حافظه بالاتر آدرسهای حافظه پایینتر Argument 5 Argument 6 Saved registers Local variables آرایش قاب پشته مم0 ۱[ $fp > $sp > 224

صفحه 119:
زو HOO. dub 8 (Foe) ©: here 21». 219, 0O8VBPRDALP APIO! DOAN LOADED MINAS Sop—> \cpea323-04F\Topico.pot (©: bere مه سا 224

صفحه 120:
قراردادهای ثبات استاندارد ۰ 00 تا ثبات صحیح در 16۳0/()عام متظوره هستند _هر کدام می توانند به عنوان یک عملوند یا نتیجه یک محاسبه عملیاتی استفاده شوند * اما ساخت تکه های متفاوت از نرم افزارکه باهم کار می کنند آسانتر است اگر قراردادهای معینی که دنبال می شود درباره آن تباتهایی باشد که برای آن اهداف استفاده می شود ۶ این قراردادها معمولا به وسیله فروشنده پیشنهاد می شوند و به وسیله کامپایلرها پشتیبانی می شوند 120 ام هام۲9 922.00۴ وم 24

صفحه 121:
ه کردن فراخوانی کننده:پردازه فر اخوان(طاامس)مسئول است برای ذخبره کردن و دوباره ذخیره کردن هر کدام از ثباتهایی که باید در طی فراخواتی نگهداری شوند.پردازه فراخوانی شده (مامس)می تواند هر ثباتی را بدون محدودیت تغییر دهد. * ذخیره کردن فراخوانی شده: پردازه ای که فراخوانی شده مسئول است برای ذخیره کردن و دوباره ذخیره کردن هر کدام از ثباتهایی که مسکن است استفاده شوند. فرخوان تباتها را بدون هیچ نگرانی درباره دوباره ذخیره کردن آنها بعد از يك فراخوانی استفاده می کند. 24 ‏ام هام۲9 922.00۴ وم‎ a

صفحه 122:
اگر شما یک تابع را فراخوانی کنید هر آنچه شما در 5 ريد در آنجا تضمين شده زمانی که تابع برمی گردد به شما اما ثباتهای 09 تاگومی و۳ ()هستند به وسیله تابع دوباره استفاده می شود چه گزینش هایی هستند؟ هیچ ذخیره کردن؟ همه چیز ذخیره کردن؟ 122 ام هام۲9 922.00۴ وم 24

صفحه 123:
اعلام یک ‎wl‏ در ‎MIPS‏ قرار بدهید آرگومانهای تابع را در 408098 اگر یک چیز مهم در 0_05باشد اکنون آنها را انتقال می دهدا اهز به تایم. ذخیره کردن 82728 _0)عو9باگرلازم باشد شما کاری انجام دهید و مقادیر بازگشت را( اگر داشته باشد) در 8/08 دوباره ذخیره میکنیم 82/28 _() رو 8ب رااگرلزومی داشته باشد ادامه دهید تا جایی که تمام شود سوال: چه کسی آن را به عنوان یک طرح می سازد؟ چه اتفاقی می افتد اگر ثباتهای ما تمام شود؟ واقعا چه چیزی عمل ذخیره کردن را انجام می دهد؟ 123 ام هام۲9 922.00۴ وم 24

صفحه 124:
فصل سوم ۱ نمایش اعداد و محاسباتی کامپیوت

صفحه 125:
نمایش عددی و مکمل دو #طراجى واحد مخاسيه ,منطق » اعداد اعشارى ممم امه5م323-04وممع 224

صفحه 126:
نمايش عددی #آنجة پیچیده به نظر می رسد: * اعداد منفی را چگونه نمايش دهیم * دامنه ‎)٩۵1206(‏ اعداد چیست؟ ۴ آگر یک عدد خارج از محدوده بود؟ * در مورد اعداد منطقی و غیر منطقی چطور؟ 224 ‏ممم امه5م323-04وممع‎ a7

صفحه 127:
بیتها فقط بیت هستند: هیچ معنای ذاتی ندارند. * قراردادها رابطه بین بیتها و اعداد را تعیین می کنند. ۴ سخت افزار چگونه تشخیص می دهد که چه قراردادی در حال استفاده است؟ Add $s1, $s2, $s3 Addu $s1, $s2, $s3 ‏چیست؟‎ 83 5 5 $1. $S2$ code 128 ممم امه5م323-04وممع 224

صفحه 128:
4 طایح با علامث ۳0 كد شده به بایتری #ممیز ثابت ‎poe‏ شناور انواع دیگر داده: * کاراکترها(اسکی و یونیکد) * پیکسل ها (گرافیک ها) * گروهی از بیتها ممم امه5م323-04وممع 224

صفحه 129:
4 چرا صحیح بدون علامت؟ " دستيابى به حافظه 1 ,512 رت)طر ‎In C, unsigned int ®‏ (#*چگونه نمایش می دهیم؟ * انگشتهای خود را بشمارید. ۴ مبنای اولیه سیستم اعداد *دهدهی: 10 نماد مختلف: 0 1 432 65 87 9 2 130 ممم امه5م323-04وممع 224

صفحه 130:
بدون علامت (مبنای اولیه سیستم اعداد) در حالت کلن. در یک سلسستم اعددی مینای 36 عدو 7 حك 22 > له ) حر اس زر * چه تنداد 0 متفاوت؟ * بزرگترین عدد کدامست؟ * کوچکترین عدد کدامست؟ مبناهای خاص: ‎Binary) 2 ci. ™‏ ‎(octal) 8 cis *®‏ ۴ مبنای ‎(hexademical)16‏ ‏5 آنها چه تعداد نماد مختلف دلرند؟ 224 ۳ ‏مم0‎ an

صفحه 131:
صحیح بدون علامت (مبنای اولیه سیستم اعداد) ‎ar Eg‏ وراه زاره 8و 16 تبدیل کرد؟ ‎eo‏ ‎010100=(0*22+1 *2'+0*20)*23+(1*224.0*2!+0429) =2*B14 4*89= 24, ‎Hexadecimal: 1 9 4 891 ۱9۱ ۱6 Binary: 000110010100100010110110 ‏6 2 4 4 062 اون ‎24 ‏ام هام۲9 922.00۴ وم‎ a2

صفحه 132:
سره مهد وه No use ود 1001 1010-1111 ‎ "‏ جه تعداد بیت برای ‎BOD‏ 2452 نیاز است؟ برای دودویی چطور؟ * فضای ذخیره سازی بکارگرفته شده؟ ‏"| جكوتط میم توان 068107 را مشخس نمود؟ “2< رط جرع 416 ‎b,>10" vs.‏ جرج ‎If‏ ‎ ‏امیک برای کامپیوتر کاراتر است؟ ‏ام هام۲9 922.00۴ وم 24

صفحه 133:
صحیح با علامت (علامت مقدار) ‎12(absolute value) (sign)- :12-#‏ ۴ یک بیت علامت مجزا * یک مقدار ‏@ رای سخت افزاز بیت علامت را کجا قرار دهیم؟چپ یا راست؟ * علامت حاصلجمع را چگونه تعیین می کنیم؟ (مثلا یک مرحله اضافی) * علامت صفر چیست؟ مثبت یا منفی؟ ‏134 ام هام۲9 922.00۴ وم 24

صفحه 134:
مکمل © #عداد و نمایش آنها یکی نیست. * نمایش عدد. یک قرارداد تعریف شده برای بیان آن است. * یک عدد می تواند دارای نمایشهای متفاوتی باشد مثلا 185001 مبناى 16 مکمل دو و غیره. * مکمل دو: یک نوع از نمایش که بصورت زیر تعریف شده است: تمایق عدد وطرط ورط بط | دخو ب هخرچ 135 ممم امه5م323-04وممع 224

صفحه 135:
ppt 1000 1001 1010 1011 1100 1101 1110 AULA 0000 0001 0010 0011 ‎4S (B*2!)‏ )?2 * يور ‎i=O 1‏ ‎0 ‎jaan ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎

صفحه 136:
Katz: Contemporary ‘ez Logic Design, p24. جرا ۱۱۱۱ و 0000 همسابه اند؟ مفهوم بيت سوم چیست؟ علامت صفر چیست؟ اکوچکترین عدد اکدامست؟ بزراگتراین اعدد. کداماستا؟ صحیح با علامت(مکمل دو) \epe9323-04F\Topico ppt 24

صفحه 137:
جر گوس ‎D, Dow‏ و والح با #7 " ااثبات افرستى ۴ میانبر: از با ارزشتراین بیت تا کم ارزشترین آهر بیث را معکوس کنید و کم ارزشترین یک را 1 نگاه دارید. Example: - (0100) = 1011 + 1 = 1100 Example: 100,, = 01100100 > 10011100 = -100,, 138 ام هام۲9 922.00۴ وم 24

صفحه 138:
ندن اعداد کوچکتر در بیتهای بیشتر چرا لازم است؟ * مقایسه یک 1۳16061 با یک 1۳16061 1010: تغییر نوع * بارگذاری یک بایت در یک کلمه * بای اضافه کرد یک باخشن فوری جه يك عدد 32 بیی ۴ چگونه می توان با اندازه های کوچکتر کار کرد؟ * در مورد اندازه های بزرگتر چطور؟ 139 ام هام۲9 922.00۴ وم 24

صفحه 139:
@ Example(2-bit): 10= 1 *(-2!)+0*2°=-2,, تمایش 2- مبتای )10 4,5 ‎Ep‏ کلمه: ابا می توانید آنرا اتجام ادهید؟ چه چیزی که می شود؟ (تکرار بیت علامت در بیتهای دیگر(گسترش علامت) 0010 -< 0000 0010 1010 -< 1111 1010 ‎1x(2*(-7) + 111.1010 < ۶ ((‏ نکته! اثبات ؟ ‏140 ام هام۲9 922.00۴ وم 24 ‎

صفحه 140:
ys جمع : درست مانند دوران شیرین دبستان 0110 + 0001 ‎a-b=a+(-b): 3 a@‏ ‎fase last‏ دواساهه لمكا 0111-0110= 0111 +1010 0001‘ * بتابراین 0110-0111= 0001 ۴ آبا شما مخوضا بیتهای علاستا را دستکازی نموده اید؟ مد ممم امه5م323-04وممع 224

صفحه 141:
#طب کنید! یک پیت اضافی گم شاه است! 0111-10 - ۱011 طرا 1 می تواند حذف شود؟ ‏ +1010 ولا ۱ 00101 | is Lee | ۱ #23 ee rans ‏اما‎ ‎+ 1*)22( + ‏دوب‎ ‎1*24 - 1*23- ۴ از دیدگاه 1 بیت : 0-13402171 * بنابراین تا زمانیکه شما/08117 بوجود آمده بوسیله 1+1 (1 سبز) را در نظر نگرفته ده درست انجام داده ايد 0 0222110155 مود

صفحه 142:
‎LIM‏ شما یک جمع کننده و یک تفریق کننده دارید؟ ‏در مورد اعدا بدون علامتجطور؟(یک) جمع کننده دیگر؟) “#مزاياى استفاده از مکمل 2 ‏۴ تفریق می تواند از منطق مشتركى با جمع استفاده كند ‏" بيت علامت مى تواند مانند يك بيت معمولى عدد رفتار كند ‏۴ ایتها نکات زیرکانه ای هستند : ‏143 ممم امه5م323-04وممع 224

صفحه 143:
سرریزی اجب 1111 1 1000+ 0110 + علامت ورودی چیست؟ علامت خروجی چیست؟ * آیا امکان وقوع سرریزی در جمع يك عدد مثبت و یک عدد منفی وجود دارد؟ © امكان وقوع سرریز با صفر وجود دارد؟ * اعمال ‎A+B‏ ۸-۳ را ملاحظه کنید. 224 ‏ممم امه5م323-04وممع‎ aaa

صفحه 144:
1111 ۰ 1 1000 + 0110 + 101111101 علامت ورودی چیست؟ علامت خروجی چیست؟ 224 \cneg323-04F TopicO.ppt ‏وقد‎

صفحه 145:
کسرریزی زمانی اتفاق می افتد که: ‎go gor "‏ عدد منفی یک عدد مثبت بدهد! ‏جمغ دو عدد مثبت یک عدد منفی- بدهد. ‏* یا یک عدد منفی را از مثبت تفریق کنیم و نتیجه متفی بگیریم 8 پا یک عدد مثبت را از منقی تفریق کنیم و نتیجه مثبت بگیزیم ‏#در مورد جمع و تفریق اعداد بدون علامت چطور؟ ‏146 ممم امه5م323-04وممع 224

صفحه 146:
‎CPU {5‏ در برابر سرریزی چیست؟ ‏¢ نادیده بگیرد؟ * هیچ وقت نمی خواهد سرریزی آشکار شود * 51111 2010111 ,20011 (۷۱5:عدم تولید سریز6 * تولید یک تله که بر اساس آن برنامه نویس پتواند با آن کار کند. * یک استتنا (وقفه)رخ دهد ‏* کنترل به آدرس از پیش تعریف شده استثنا پرش کند * فخیره آدرس مکان وقفه برای امکان بازگشت ‎ ‎ ‏*جمع » تفریق ‏مد ام هام۲9 922.00۴ وم 24

صفحه 147:
* اعداد بدون علامت ‎situ: set on less than unsigned‏ ‎sltiu: set on less than immediate unsigned‏ * اعداد با علامت ‎sit: set on less than‏ ‎siti: set on less than immediate‏ ‎H‏ متال: مقادیر 508 و 515 چیست؟ 1 111 1111 1111 1111 1111 1111 1111 8502 ‎$s1= 0000 0000 0000 0000 0000 0000 0000 0001‏ ‎$s0, $s1 (2) situ $t1, $s0, $s1‏ ,500 ]5۱ )1( ‎24 ‏ام هام۲9 922.00۴ وم‎ ue

صفحه 148:
(متادیر 509 و 518 چیست؟ 1 1111 11111111 1111 1111 1111 1111 3502 0001 0000 0000 0000 0000 0000 0000 0000 =$51 پاسخ: ل $51 ,$50 ‎Sit $t0,‏ است؟0] اگر هر دو با علامتیاشند 0 -- 551 ,550 ,511 لاااو است 115 اگر هر دو بدون علامت باشند وقد ممم امه5م323-04وممع 224

صفحه 149:
با رگذاری/ذخیره سازی * 0۷۲6 ۱۵۵0 :۱۵ ‎Ibu: load byte unsigned *‏ © Ib $s1, 100($s2)Examp' مقادیر ۹08 چیست ?When memory[$s2+100] = 0000 0000 * ?When memory[$s2+100] = 0000 0001 * ?When memory[$s2+100] = 1111 1111° Ibu $51, 100($s2)Example:@ ‏چیست‎ S1$ polio ?2when memory[$s2+100] = 1111 1111° 150 ام هام۲9 922.00۴ وم 24

صفحه 150:
طراحی پردازش طراحی ‎jal a‏ * آنها چگونه در کنار هم قار می گیرند © تجزیه بالا به پایین بخشهای مختلط #ترکیب پایین به بالای بخشهای ساده ‎asi‏ ام هام۲9 922.00۴ وم ‎CPU ‏هه ‎ ‎224

صفحه 151:
مسئله: طراحی واحد محاسبه و منطق 4 عملیات ‎and, oda, sub, subu, addi, odeho *‏ * جمع کننده تفریق کننده مکمل 2 با آشکار سازی سرریز ‎coed, or, adi, ori‏ * اعمال بیتی مجموع اعمال < (10) 1 ممم امه5م323-04وممع 224

صفحه 152:
(شکستن مسئله به بخشهای ساده تر * کار با اجزا قرار دادن قطعات با يكديكر " |بازبينئ راهكارها در نهايت #مثال: جدا كردن دستورات فورى از بقيه دستورات ۴ پردازش فوریها قبل از 0,) * اکنون ورودیهای (,ا9) یک شکل هستند. * 6 عمل غیر فوری باقی مانده است * نيازمند © بيت براى تعيين مد (0,ا9) است 153 ام هام۲9 922.00۴ وم 24

صفحه 153:
ALU (ALU Interface) L.>. ما یک 32 ]م۸ بیتی طراحی خواهیم کرد با محیط زیر: B A 3 32. 32 ALUOp __| Function 000 || AND Result 001 | OR Z =1, if Result=0 010 | ADD V= 1, if Overflow 110 | SUBTRACT Cy, = 1, if Carry-Out 111 | SET-ON-LESS-THA! 224 \cneg323-04F TopicO.ppt asa

صفحه 154:
ظر احی- کاهتن مه باه یکت مسئله بتاده تر @ برای اين مسئله» ما ‎Ly ele OLD OO‏ به بخش ساده تر یک بیتی کاهش مى ‎vase‏ ‏۴ مسائل ترکیبی بزرگ را به یک مسئله ترکیبی کوچکتر تغییر می دهیم بخشها را برای حل مسئله بزرگ در کنار هم قرار می دهیم. وقد ممم امه5م323-04وممع 224

صفحه 155:
طراحی با بلاک دیاگرام سطح پایین تر برای ‎PLD BC NK‏ بيتى 96 بار تکرار می 224

صفحه 156:
© تقسیم به بلاکهای جدا و مستقل منطق * محاسبه تکحیل هر بلاک در این امرعله برای ليم بيشتر تكميل بلاكهاى منطقى * تکمیل آنتخاب عمل ‎ay ja *‏ بلاکهای محاسباتی به بخشهای ساده تر CanyOut 224 \cneg323-04F TopicO.ppt 457

صفحه 157:
تمام جمع کننده. ‎ALU jo ole cole SS‏ است. © یک تمام جمع کننده. جمع یک بیت را انجام می دهد. at b, + ‏ع ره‎ 2¢,,+ 5 bos ‏ل‎ | Daa ‏ار‎ ۵ 4 Odod ‏بط ۳ 8 | و۳‎ 0 5 000 © 158 ممم امه5م323-04وممع 224

صفحه 158:
جدول درستی تمام جمع کننده 911 است ‎SG SI‏ تک علد از فروقیها یک باشت 01+11 لسلگر #عند (ی اب لیشتراز) ورودیلها 1 با اشتظ هطلیه + وطلیة + وله + وطوع و ulb | ‏با بت‎ 5, 0 ۵ ۱۵] 0 Oo S=aebea | . 57 | 21| 8 | qd Gii=abo+ abo+ abg+ abc 0 ۱0 ۱۵ ۱ 0 0 ‏عوبة + جلرة - دمن‎ 2 0 | ۸ | ۱۰ 0 Gs+1=ad+ Glaj+ Bb) ) 10 ۱00 0۱ 01 Gi1=ab+ alae b) 4 | ۷۶ 4 ۱ ۱8 ۱۸ ۱ aa GL OL Of robot ‏ص‎

صفحه 159:
S=aebegq G+1=ab+ Glae b) aie b =(aj+ bab 9+1 224 \cneg323-04F TopicO.ppt

صفحه 160:
‎BLO‏ يكسيتى ‎ ‎ ‎ ‎0 ‎Function ‎ ‎ ‎SET-ON-LESS-THAN ‎ ‎ ‎ ‎b,x bese, ‏ام‎ ‎* ‏هر‎ ‎ALUOp ‎000 | 001 | 010 | 110 | | ‎24 ‎ ‎ ‎ ‎

صفحه 161:
نز ()را © يكبيتويرلى6) 8 0) ۸1 ب ولی1153 باید سرویزیرا لشکار و علاهت vu 17 <09 ۵-1 set=(A< B) 224 1

صفحه 162:
ا ومنطق یک بیتی و یک واحد محاسبه ومنطق یک ‎win‏ 8)8)()و 4 تا كيت 00008 ميتوانند باهم ق شوتد و تشکیل یک واحد محاسبه و منطق ‎(Gio)‏ 4 بیتی را دهند ‎bobo‏ ‏۳۳( رلا )سر | ۲ ‎Lda!‏ سلطا 0 32 ‎fy OL "‏ ۵۷۵ 6۷۵ سب 0 وما Yo Yo ۷ Ye Ya 01 31 عدد واجد محاسبه و منطق یک بیتی و یک واحد محاسبه ومنطق ایک بیتی ‎(DOO‏ 32 تا گیت ‎WoDOR‏ توانند باهم الجاق شوند و تشکیل یک واحد محاسبه و منطق (07) 32 بیتی را می دهند 163 ام هام۲9 922.00۴ وم 24

صفحه 163:
aSKOR=O GS ‏كيت 0)-+70000/00)كيت‎ وارونه سا ز-©6)/, كيت ند تا كيت نيان است به وسيله یک واحد محاسبه منطق ]) بيتى؟ یک واحد محاسبه منطق*) یک واحد محاسبه منطق ©© بيتى؟ یک واحد محاسبه منطق و بیتی؟ ‎ALUopo‏ مح ‎\cpea323-04F\Topico.pot ‎ ‎ ‎ ‎224 ‎ ‎

صفحه 164:
* مالتی پالکسر ۳) ورودی<)گیت © اكيت 6۲20())گیت * كيت )-+00000/00)كيت * وارونه سا ز-0/. گیت چند تا گیت نیاز است به وسیله یک واحد محاسبه منطق 1 ‎MOS Ay‏ ۴ یک واحد محاننبه منطق۸ بیتی؟6۳0۵ ۴ یک واحد محاسبه منطق 00 بیتی؟ 99098 ۴ یک واحد محاسبه منطق و بيتى؟ 5*0 در یک واحد محاسبه و منطق » بیتی(ه 0) عدد گیت )با 6 ورودی و یک وارونه ساز و یک ‎KORE‏ 165 ام هام۲9 922.00۴ وم oe (a s—ALU0py ue i oy 24

صفحه 165:
#فرض کنیدتاخیرهای * مالتی پالکسر 4 ورودی<6 * گیت ,082۵ * كيت 000/00۲20) ۰ " يك واحد محاسبه منطق ©© بيتى؟ 3 ۴ یک واحد محاسیه منطق » بیتی؟ 58 ‎oe ia —ALU0py‏ (iH He ‏یک واحد محاسبه منطق بیتی؟‎ ۴ بای ساحاسلبه ابقاخیر ماه تیان اسلت. ioe 166 ممم امه5م323-04وممع 224

صفحه 166:
در طراحی قبلی کری"موج دار شده"از یک و منطق یک بیثی برای بعدی تولید می شود ور ‎bette ba‏ و ‎ce 4a [‏ للدي اطي 0 0 اج ‎doy (bt Faq) Ga fe] a‏ هه | | هرهز | هه | | هرق ‎hier jae 9 [aor‏ ‎Yo Ye ۳۹ Yo‏ این ها موجب می شوند که تا اندازه ای طراحی کند شود ,در لحظه ,0لمادم لست 167 ام هام۲9 922.00۴ وم

صفحه 167:
#فرض کنیدتاخیرهای * مالتی پالکسر 4 ورودی<6 * گیت ,082۵ * كيت 000/00۲20) " وارونه سا زح 4 بر است تاخیر * یک واحد محانبه متطق « (۵0*۵+)۵ح * یک واحد محاسبه منطق » بیتی؟ (90۲6) الو أي شطع ۵0درورودور 4 رارونه ‏ -ويق 41-0 + 5 4 5 ۲ سازبرلیمحاسبه ر]نیاز داريپ. 168 ام هام۲9 922.00۴ وم 2 less مد 3 احا 224

صفحه 168:
Carry Lookahead Adder در یک )ران‌کری ها به صورت همزمان از یک (نانات )جلها تحاط راصعا ماحانیه میل شوند ‎eee ers‏ Fel Fel Fa d-bit 4) 41 4۳ ‏خرن‎ | |] BLO*| ‏وراه‎ ECA ۵ ۵ 0 Sa _|¥o. ۲9۳9 Pe ۳۹ Fo 5 rai Ouny Lovkoheud Louic 224

صفحه 169:
#معادله متطقی کری هست: ‎Ci+l=ai bi+ (ai+ bi) Ci‏ propagate ai+bi= pi 96۴6۳۵۲6 ‏#و یک سیگنال تولید میشود‎ ai bi=gi ‎le‏ امکان را ایجاد می ‎aS iS‏ معادله منطقی کری دوباره به صورت زير نوشته شود ‎Citl=gitpici‏ ‏70 ممم امه5م323-04وممع 224

صفحه 170:
Carry Lookahead Logic 4 GOS Saco lovkokedd adder F cl = g0 + 0 ‏صورت زیر محاسبه می شوند‎ 62 2 91 + 161 91 + ۵1690 + 0060( < 01 + 0190 + 0 63 2 g2 + p2c2= g2 + p2(gl + plg0.+ p1p0c0) < 92 + 0291 + 020190 + 00 c4 = 93 + p3c3= ‏3و‎ + 3)92 + 291 + 020190 + p2p1p0c0) < ‏3و‎ + 392 + 30291 + #چند تا گیت ۳ رارلاکبیتی نیاز داای کت هب32 جایش ورودی نا محدود داشته باشند؟ گر هرسطح منطقی تنها تاخیر )داشته باشدرارار)دارای 0تاخیر است در نتيجه اين تمرين ممکن است واقع بینانه نباشد. 24 \epe9323-04F\Topico.pot an

صفحه 171:
تعدیل کردن واحد محاسبه ‎om es‏ چه طور ما می توانیم یک واحد ‎less‏ ‏محاسبه و منطق یک بیتی را تعدیل کنیم اگر که را( )مورد استفاده باشد؟ #چند تا گیت تعدیل شده برای واحد نیاز است؟ ‎G‏ ‏#چند تا گیت برای 6 راربیتی یاز است؟ *#چقدر تاخیر داریم تا زمانی که ۱) ور9)‌آماده شوند؟ oe 1 ‏افص‎ ‎nh \cpea323-04F\Topico.pot ape‏ 4رد ‎ ‎

صفحه 172:
۳ ee سه زه سه | ]| سه أل ری 9 مرو | م9 Ceo “Me |¥a Sa [Yo ‏را مارا بو‎ Or Fo ۳۵ ۳۹ 6 ۵ cE 4۳ @LO* 6 Po re تج زج لو یاون ]کی هاچ لول همزمان محاسبه می شوند از ما لمات بومو() amr 1 این طراحی به ©0<*0+<0<22006م كيت احتياج دارد بدون محاسبه رياد 1 ممم امه5م323-04وممع 224

صفحه 173:
واحد محاسبه و منطق . «#يك ©0 ()ر9بیتی ساخته شده از الحاق کردن ‎PEP‏ ()رابیتی و اجازه انتقال کری "موج دار “بين "بلاك ‎“els‏ *بيتم "er ih 1 ret ‏اس نا‎ ‏مه لک‎ ae Pa | Pa a] Pa fe CL® || CL® |] CL® ‏هرا‎ ‎hier ۵ [aes ۲66 Yao DLO ‏بدون محاسیه‎ aS COOH 0 Yeo © اين طراحی نیاز دارد به ۸ Yee ۳*۵ 24 ام هام۲9 922.00۴ وم

صفحه 174:
واحد محاسبه و منطق 16 بيتى . ورژن2 1 | | | | بيشنهاد ديكو اللمتفاده أن ومين أسطح حياط | لماح داوم راسو © ست ن پيشنهاد سریعتر است اما به گیت های بیشتری نیاز دارد 700-0 تا گیت. موكموط ‎Yao beeen‏ مموتآمیم؟ مووط ‎Cee 5 Te 2‏ سدح از سدح | ] م | ‎Pa‏ ‏مرن خورم | م۴ هرن ‎t ‎4۵ ۱9۱ ۱ | 9 ‎۲۵۵ | 0 2 ex ‏را ‎deny Lovkokeud‏ لم ‎ ‎ ‎۳9 ‎ ‎ ‎24 ‎ ‎ ‎ ‎ ‎

صفحه 175:
#۴ ۵ راد)بیتی(/) 006(0)) شبیه اولین 6 )رل )بیتی‌لستبسه جز محاسباترار0يكاتوليد بلاك و "منتشر کردن‌بسلاک بسه جای‌خروجوکسری بدین ترتیب محاسبه ‎c4 = g3 + 0392 + 030291 + ۵3020190 +‏ 03028۳18000( جایگزین شده به وسیله 10( + 030291 + 392 + 3و = 0: ‎p3p2p1g0‏ ‎Note: c4 = 63:0 + 0‏ @ این پیشنهاد محدود می کند. حداکثر مم*را به < و راراد) هنوز نیاز به 00۳ گیت دارد ام هام۲9 922.00۴ وم 24

صفحه 176:
نتایج #یک()را0) مبیتی می تواند به وسیله الحاق کردن > تا (4,ا0) یک ایتل ‎deh‏ شود ‎ead Ha gl of ah UD‏ ‎ppt data) cab‏ انوع گوناگون گزینش های طراحی برای طراحی (,9) وجود دارد #بهترین طراحی بستگی دارد به ناحیه تاخیر و توان نیازمندی ها که براساس تنوع تکنولوژی اصولی است 177 ممم امه5م323-04وممع 224

صفحه 177:
ae 4F Topico.ppt \epea32 224

صفحه 178:
ضرب صحیح بدون علامت *متال مداد و کاغذ 1.0 مضروب ‎ . .*‏ مضروب فيه 1000 0000 0000 1000 حاصلضرب ‏ 01001000 224

صفحه 179:
۶ب یگب یت ۱+۲ بینحاصلضرب انباشته های | مرحله 1 << ,8 ]ز ۸*2۱ رظ .| ارظ | ای | ,ظا او ۱ وظ | لظ 7 12/24 \epe9323-04F\Topico.pot ‏وقد‎

صفحه 180:
در هر مرحله 0 بار به چپ شیفت میدهد. استفاده از بیت بعدی ()برای اینکه تعیین کند که آیا با مضروب شیفت داده .1 شده جمع شود یا نه. #جمع کردن ابیت حاصل تاتمام در هر مرحله 2 ‎ae‏ ام هام۲9 922.00۴ وم ‎ ‎ ‎ ‎ ‎7 P, P; P,P; P, P, Po ‎224

صفحه 181:
محاسیات ساده رباص adh ails cas LD DS! ‏رو« و‎ — Produgt=3'(2'* B* A) sgl ‏رهاتى كه1-8+لابيت‎ gue ProduGf, =3 (2'*B* A) =2"* B.* A+ Produg 20 ‏به چپشیفتدادن‎ Ad Sl DS ‏این واضح است که ضرب مشتمل بر شیفت و جمع تکراری‎ A*B 224

صفحه 182:
سخت افزار ضرب ورژن1 224 \cneg323-04F TopicO.ppt 183

صفحه 183:
الگوریتم ضرب ورژن1 ‎Can‏ را در ثبات حاصلضرب قرار بده + Dy See ae يكبيتمضروبفيه را به رلستشيفتهدم .9 ‎op pias‏ مَصروب فيه حاصلضرت ‎00000010 0011 0000 ‏نه: < 32 تکرا 40 0001 00000100 0 0000 00001000 ‎00000110 ‎ ‎ab ‎224 \epe9323-04F Top ea ‎ ‎ ‎ ‎ ‎

صفحه 184:
نظارت بر روی ورژن 1ضرب #نصف بیتها در مضروب هميشه صفر است <>06۳ بیت جمع کننده هدر رفته است *#مقدار دادن در سمت چپ مضروب به عنوان شیفت دادن<> کم ارزش ترین بیت حاصلضرب هرگز تغییر نمی کند #به جای اینکه مضروب را به چپشیفت دهیم. حاصل را به راست شیفت می دهیم؟ وقد ممم امه5م323-04وممع 224

صفحه 185:
سخت افزار ضرب ورژن2 224 04F Topico.ppt 186

صفحه 186:
الگوریتم ضرب ورژن2 ‎CD‏ یکبیت‌ضروبفیه را به رلستشیفتبده .9 ae is 122824 \epeg323-00F GD

صفحه 187:
WHEBHEBHEDNE 0000 0000 0000 0010 0000 0001 0000 0001 0000 0011 1000 0001 1000 0001 1000 0001 1100 0000 1100 0000 1100 0000 0110 0000 0110 0000 0110 0000 \cpea323-04F\Topico.pot 0011 0011 0011 0001 0001 0001 0000 0000 0000 0000 0000 0000 0000 0000 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 224

صفحه 188:
Bo 1 2 <2 3 4 od #مضروب فيه هنوز مى ماند چه چیزی روی می دهد؟

صفحه 189:
#فضای هدر رفته ثبات حاصلضرب که دقیقا هم اندازه مضرئب فیه است <>به هم پیوستن ثبات مضروب فیه و ثبات حاصلضرب ود ممم امه5م323-04وممع 224

صفحه 190:
سخت افزار ضرب ورژن2 مضروب 224 04F Topico.ppt ‏ود‎

صفحه 191:
الگوریتم ضرب ورژن3 جمع كنمضروجبرا با نيه جبحاصلضريق نتيجه 3 را درنیمه چپ ثبات حاصلضرب قرار بده 224

صفحه 192:
#دو مرحله در هر پیت است برای اینکه مضروب فیه 6 حاصلضرب به هم می پیوندد. »تبات هاى .0,11 | 1/1155 هستند نيمه جب و راست حاصلضرب 116542 سور اضر يدون عامشوا يله ما مردهدا ##درمورد ضرب علامت دار جى؟ _ آسانترین راه جل زمانی است كه اهردو مثبت باشند و به ياد داشته باشيد داده تكميل شد اجرا می شود(بیت علامت را دور بریز اجرا برای 90مرحله) 4 کاربرد تعریف متمم 8 نیاز به گسترش علامت داده های بخصوص و طبقه بندی آنها در انتها الكوريتم بوت راه فوق العاده براى ضرب ' لامت دار است و از سخت افزار قبلی استفاده میکند و چرخه ها را ذخیره می کند * _می‌تواند تعدیل شود بهدع 00[ 3 غ3 5غ[ 6اماابا ‎to handle‏ 193 ام هام۲9 922.00۴ وم 24

صفحه 193:
1 0 بیت جاری) - توضیح مثال ‎or‏ 0 شروع اجرا از 46 ۰ ‎ob ODOMAOOD‏ 0 وسط اجرا از 40 ۰ 0000000080000060 ‎woe‏ add OOOAIAIDOOD desist ‏يايان‎ O 3 0000000000 dle ‏وسط اجرا از‎ OD @ ابتکاری برای سرعت (موقعی که شیفت سریعتر از 4«بود). یک رشته از ها را در مضروب فیه با نخستین تفریق جایگزین کنید 1 ما ابتدا یک ) می بینیم و سپس در جمع بعدی ‎Soi ILL‏ 224 \cneg323-04F TopicO.ppt 194

صفحه 194:
shift P (sign ext) 11> nop, shift 11 -> nop, shift 01-> add shift done حاصل 11 0000 0+ 0 1110 1 0011 1111 10011 1111 11001 1111 0010+ 11001 0001 0000 11100 \cpea323-04F\Topico.pot مضروب عملگر 0. initial value 0010 12 ۴2 ۴۰ 110 Ib. ‘0010 2 0010 3 0010 4a. 0010 4b. 0010 24

صفحه 195:
مثال بوت(3-*2) حاصل ‎sad‏ مخ روت ‎initial value 0010 0000 51510 10 -> sub‏ .0 ‎la. P=P-m 1110 +1110‏ ‎shift P (sign‏ 6 11011 11/10۱ ‎ext)‏ ‎1b. 0010 1111 01 -< 0‏ 0010 + ‎2a. 0001 71 1‏ ‎2b. 0010 0000 1017 10 -< sub‏ 1110+ ‎3a. 0010 111010120‏ ‎shift P‏ ‎3b. 0010 1111 0101 1 11 -< ۵۵‏ ‎shift‏ 1 )1111010 42 ‎done‏ 1 010 1111 0010 40 ‎aes‏ \cpea323-04F\Topico.pot

صفحه 196:
*#آسانترین راه حل این است که *۴ هردو مثبت باشد " به ياد داشته باشید که حاصل تکمیل شده اجرا می شود * علامت حاصلضرب را محاسبه می کند عملوندها را به اعداد مثبت تبدیل می کند » بیت علامت را دور می ریزد »برای9)0 مرتبه اجرا می شود » سپس نتیجه ثابت می شود. 197 ممم امه5م323-04وممع 224

صفحه 197:
الگوریتم های سریعتر یا عمل ضرب #الكوريتم بوت * ضرب اعداد علامت دار مانند قبل داز سخت افزار یکسان استفاده می کند و چرخه ها را ذخیره می کند * بیتهای مضرب را در یک لحظه می تواند دستکاری کند استفاده کردن از یک آرایه آدرس #مشاهدات اين گونه نشان می دهد که :چه اضافه شود یا نشود مضروب را یک واحد شیفت می دهیم_اين تصمیم می تواند کامل به صورت موازی انجام شود. 198 ام هام۲9 922.00۴ وم 24

صفحه 198:
Quotient 1001 Divisor 1000 | 1001010 Dividend Remainder 10 Dividend = Quotient * Divisor + Remainder 224 \cneg323-04F TopicO.ppt 199

صفحه 199:
سخت افزار تقسیم ورژن1 4 بيت ثبات مقسوم علیه »واحد محاسبه و منطق 66۴ بيتى » ثبات باقى مانده » ثبات خارج قسمت ©© بيتى شيقت راست مقسوم علیه ‎a‏ 64. ALU a 24

صفحه 200:
اک کسنید ثشباتمقسوم علیه را از باب اقی‌هانده 11 اأنيجه را در ثبات باقى مانده قرار دهید ‎ab» OH‏ برلی,‌بیتخرج قسمتو باقوماتدم باقی مانده < 0 0 < باقی مانده ب بازیلبیسقدار اولیه بسا جمع باتهم قسوم علیه و2 شیلبسه چپ 2 قرار دامن‌مجموع در ثسباتباقی‌مانده . شیفشباتظلیج | | تإتخايج 3 ‎i‏ ‏قسمنسه چپو صفر کسرهن‌کسم ارزش‌تسریرسینجد ید كترم ةما ‎ie‏ ‏جديد 2 : مقسوم غليه ‎le gh‏ - خارج قست ‎ODOD 00 000 0000 1 1 aly‏ 122824

صفحه 201:
#نصف بیت ها در مقسوم علیه هميشه صفر است < > نصف “© بيت جمع کننده هدررفته است #<>نصف مقسوم علیه هدر رفته است #به جای اینکه مقسوم علیه را شیفت به راست دهیم ‏ باقی مانده را شیفت به چپ می دهیم ¢ #مرحله اول نمی تواند تولید یک خارج قسمت کند(به عبارت دیگر خیلی بزرگ است) <>به وسیله اجرای فرمان ها با شیفت اول و سپس تفریق می توان یک تکرار ذخیره کرد. ام هام۲9 922.00۴ وم 24

صفحه 202:
. سخت افزار تقسیم ورژن 2 0 بیت بات مقسوم علیه . 9صیت۰66 (رلابیت ثبات باقی مانده 6۰بیت ‎GL‏ باقی مانده 3-04F Topico.ppt

صفحه 203:
باقی مانده ‏ خارج قسمت مقسوم ‎OOOO‏ 122824

صفحه 204:
حذف كردن ثبات خارج قسمت به وسيله بهم بيوستن با باقیمانده به عنوان آغاز شیفت دادن باقی مانده به چپ مانند قبل «#يس از آن حلقه فقط محتوی 0 مرحله است چون شیفت دادن ثبات باقی مانده هر دو شیفت ها باقی مانده در نیمه چپ و خارج قسمت در نیمه راث در نتيجه به هم ييوستن © ثبات به يكديكر و فرمان هاى جديد عملكرها در این حلقه باقی مانده ای است که در یک لحظه بارها به چپ شیفت خواهد یافت 205 ممم امه5م323-04وممع 224

صفحه 205:
, سخت افزار تقسیم ورژن 2 0 بيت ثبات مقسوم . 96بیت ۰66 (0۱,0) بیت ثبات باقی مانده ». (صفر بیت خارج قسمت). کنترل کردن 224 \cneg323-04F TopicO.ppt 206

صفحه 206:
باقی مانده بلع 1 0 00( 50000

صفحه 207:
| سخت افزار یکسان مانند ضرب:فقط به 0,/() نیاز داریم برای جمع یا تفریق » ©© بيت شيفت به جب يا راست #ثبات هاى “,اك وما به هم مى بيوندند به ‎sls is OR GL ol sie‏ ضرب و تقسيم #تقسيم علامت دار:وووووووووووووووووووووووووووووو * يادداشت:مقسوم عليه م باقى مانده بايد هم علامت باشند * یادداشت:خارج قسمت منفی شده اگر علامت مقسوم و علامت باقی مانده مخالف باشند مثال : #ممکن است برای خارج قسمت خیلی بزرگ باشد: اگر تقسسیم صحیح 00 بیتی به وسیله 6 ۰ خارج قسمت00 بیت است 208 ام هام۲9 922.00۴ وم 24

صفحه 208:
فصل چهارم سنجش کارایی * سنجش: چه, چرا, چگونه. * معادله کارآیل * قانون امدال مچگوله انروی کارایوا زا ‎iS a agate‏ 224 \epe9323-04F\Topico ppt 209

صفحه 209:

صفحه 210:
برای خرید یک ماشین جدید چگونه تصمیم می گیرید؟ گیری "زمان اجرای " 116015 ‎fter‏ ‏سار تن ها 0101| | ‎ML‏ ‏1121 >*->+ + - ۱۱/۱۱۱/۱۱۱ اندازه از Night flight Movie Wight flight? Goes ea eat Here lad ‏تصلویر‎ ‏شدید.‎ CPU 0 اچیز ام هام۲9 922.00۴ وم 24

صفحه 211:
CPOs Rie ‏معین کردن یک مجموعه از ماشینها که دارای‎ * ‏بهترین کارایی‎ * ‏کمترین هزینه‎ * ‏بهترین کارایی /هزینه‎ * ‏از لحاظ طراحی‎ ‏مواجه با انتخاب طراحی است که دارای:‎ * ‏بهترین بهبود کارایی‎ * ‏کمترین هزینه‎ * ‏بهترین کارایی / هزینه‎ * ‏نیاز هر دو‎ © ‏پایه ای برای مقایسه‎ # ‏*معیاری برای ارزیابی‎ ‏#هدف ما فهماندن مفهوم هزینه و,‌کایراپی,از,|نتچاب هاى معمارى استت. ,تومير‎

صفحه 212:
۱ دو تصور از "کارایی" | سب ‎vr Pes‏ 00 عم نیت مهم ‎pein 9 0‏ مسا 9 ۳ * زمان انجام کار(زمان اجرا) - زمان اجرا ء زمان پاسخ ۰ زمان بر * كارها در روزء ساعت » هفته » ثانیه نانو ثانیه» ... (کارایی) 24

صفحه 213:
'#كارايى ميران جيزهايى در ثانيه است ‎ul ter‏ اگر به صورت ‎enter‏ زمان پاسخ برای ما مهم باشد: ‎performance(x) = 1 W‏ ‎execution_time(x)‏ ۳ بار سریعتر از ۷۳" است به معنی اینست که : ‎execution_time(Y)performance(X)‏ ‎=n‏ ‎performance(Y) execution_time(X)‏ #چه زمانی توان عملیاتی مهمتر از زمان اجراست؟ ‎dad‏ زمانی زمان اجرا از توان عملیاتی مهمتر است؟ 24 ام هام۲9 922.00۴ وم 24

صفحه 214:
مفال این از ‎d‏ کارایی ‎Ovewrrde lee} *‏ در مقابل 2۳/۵ بیس ؟ با ساینر و = ‎BAO top‏ | ی 4660 بسن ۰ سم © سا ۵ < ‎ ‏* توان عملیاتی 0۵۳66۵۲06 در مقابل 747 806109 ؟ ‎ts (PO,COD propts / poop = 0.98 “ees Peer‏ ۱ ‎fer‏ حم 09 2 ‎Bvetry te OOO‘ bh POP O,COO popk‏ + ‏) بار ("96©00”) سريعتر است, ‎Sel see ("MICO‏ ‎ ‏۰ زمانیکه بحث کارایی پزدازنده مطرح است؛عمده تمرکز ما بز روی زمان اجرا برای "یک کار* 1 ‎Boal‏ ‎ ‏215 ام هام۲9 922.00۴ وم 24

صفحه 215:
چگونه بر زمان پاسخ و توان عملیاتی لثر می گذارد؟ * افزایش سرعت ساعت در یک پردازشگر معیل. * افزایش تعداد کارها در یک سیستم (مثلا داشتن یک سرویس واحد کامپیوتری دارای چند کاربر) * آفزایش تعداد پردازنده ها بر یک سیستم که از چند پردازنده استفاده می کند ( مانند یک شبکه از ماشینهای خود پرداز(/۸۲)) #اگر یک در (0) ثانیه اجرا کنده محصول پا م © يك برنامه را در 0 ثانیه اجرا کند و یک ۴0۷/6۲۳ برنامه ای مشابه را یوم چند بار سریتر است؟ n= 10/8 = 1.25 times faster (or 25% faster) با این وجود چه چیزی باعث می شود که کسی 0۷/6۲۳6 را برای خرید انتخاب کند ؟ 216 ام هام۲9 922.00۴ وم 24

صفحه 216:
زمان ؛ زمان به چند طریق قابل تعریف است. وابسته به اينکه چگونه مورد سنجش قرار دهیم: -: مجموع زمان صرف شده برای تکمیل یک کار شامل زمان صرف شده برلی اجرا در لا۳) دستیابی به دیسک و حافظه انتظار برای ۱/0 و دیگر پردازشهاه و سربار ینتم ‎ate‏ * زمان اجرای [2۳1): مجموع زمانی که یک ‎SG sls CPU‏ کار صرف می کند(به غیر از زمان 1/0 یا اجرای برنامه های دیگر). این زمان به طور ساده معروف به زمان ‎CPU‏ # رمن کریر (۳۱): مجموع زمانهایی که لا۳) در برنامه صرف می کند. * زمان اجرای سیستمی لا۳) : مجموع زمانی که سیستم عامل صرف اجرای کارها در برنامه می کند. » برای مثال: یک برنامه می تواند دارای زمان سیستمی ‎ath CC Joes CPU‏ باشد» یک ز مار (۳۱) برابر ‎OD‏ ثانیه » یک زمان اجرایی لا۳)» معادل 416 ثانیه » و یک ‎ :‏ :2 برابر 496 ثانیه باشد. 24 \cpea323-04F\Topico.pot 217

صفحه 217:
ساعت کامپیوتر eae Cnet ‏یک ساعت کامپیوتر در یک نرخ ثابت انجام می گیرد و‎ ® ‏می کند چه زمانی رخدادها در سخت افزار فرار گيرند.‎ 6 ‏مقدار زمان برای سپری شدن یک چرخه ساعت است (مثلا‎ 2. ‏نانوثانية).‎ ‏است.‎ a gph ‏نرخ ساعت؛‎ ” * مثلاء اگر یک کامپیوتر دارای ز ۰ جر ۸۰ .21 معادل 0 نانوثانیه باشده نرخ ساعت برابر است با 224

صفحه 218:
معیارهای پایه ارزیابی مقایسه معیار های ماشینها - زمان اجرا - توان عملیاتی - زمان لا ‎MIPS -‏ : مخفف : میلیونها دستورالعمل در ثانیه ‎MFLOPS -‏ : میلیونها عمل ممیز شناور در هر ثانیه مقایسه مجموعه برنامه های استفاده شده در ماشیذ - مفهوم محاسباتی ‏- مفهوم محاسباتی سنگین ‎Benchmarks - ‏219 ام هام۲9 922.00۴ وم 24

صفحه 219:
چه تعداد چرخه برای یک برنامه نیاز است؟ ن است تصور کرده باشید که تعداد چرخه ها - تعداد دستورالمملها باشد < 4 3 2 a £ 2 5 1st instruction 2nd instruction 220 ممم امه5م323-04وممع 224

صفحه 220:
تعداد چرخه های متفاوت برای دستورالعمل های مثفاوت ‎TTT)‏ لا ‎time‏ ‏++ ‏۰ تقسیم زمان خیلی بیشتری از جمع صرف می کند. اعمال مميز شناور» زمان بیشتری نسبت به نوع صحیح آن مصرف می کند. دسترسی به حافظه زمان بسیار بیشتری از دسترسی به ثباتها صرف می کند ‎ ‎224 \cneg323-04F TopicO.ppt 221

صفحه 221:
یک برنامه معین نیاز دارد به تعدادی از دستورالعملها تعتادی ‎Selb gle ale hl‏ اتعدادی از ثانیه ها ما یک لفك نامه برایی شوط این کمیت:ها داریم: زمان چرخه ساعت (ثانیه در هر چرخه) ترخ ساعت (نلیکل ذر ‎Gait‏ 021 (تعداد جرخة ها در هر دستورا عمل یک برنامه ممیز شناور ممکن است دارای آ2) بالاتری باشد 24 222 ام هام۲9 922.00۴ وم

صفحه 222:
[زمان اچرای یک برنامه معین می تواند مانند زیر مجاسبه شود له سأاعث| ‎CPU J ty‏ 0۱ از آنجا که زمان چرخه ساعت و نرخ ساعت عکس یکدیگرند اع = ‎PL CPU‏ > تعداد جرخه هاى ‎CPU sels‏ مى توائد مانت زير مخاسبه گردد جاخه ها = ۲ ) > ۱ اعاتدلت, سا ملها ]021 223 ام هام۲9 922.00۴ وم 24

صفحه 223:
CPO ‏چقدر طول می کشد تا یک برنامه دارای‎ tt MHZ50 cote ey alls pal ‏اكرايك‎ # ‏دستورالعمل اجرا شود؟ آم) برای این برنامه 3.5 است.‎ 0 ‏استفاده از معادلة‎ ‏لا یمان تعداد دستورالمل۳1) / ترح ساعت‎ تاطعيمانك 1000( 765010 3.5 اگر نرخ ‎Seg CPU cel‏ کامپیوتر از ‎wh tulsa! MHZ 250 4, MHZ200‏ و بقیه قاکتورها یکلسان باقی) بماننده آقزایش| سرمت کامپیوترا چقدر ست؟ قدیمی لا زما خدیق ساعت 250 ‎MHz‏ ‏سبح 1:25 MHZ 200 bel. ‏ناخ قدیمل‎ | | LCPU dos تصور ساده انگارانه ما چه بود؟ 24 ام هام۲9 922.00۴ وم 24

صفحه 224:
فاکتورهای موثر در لرابى ‎xs CRU‏ clock rate(CPI instr. count Program Compiler Le Organization Technology CPO toe = Orornds = ‘herwtw x Opts x Orvonds ۳

صفحه 225:
فاکتورهای موثر در لبي 11 6ن clock rate(CPI instr. count Program ۳ #8 Compiler * 5 Le ۴ Organization Technology = Geos = ‘kerio x Opes x Grovab CPO toe ۳

صفحه 226:
‎crié |‏ ,میانگینت-عداد چرخه ها در هر دستورا فمل‌است گر برای هر نوع دستورالعمل , لازم است ما فرکانس ها و تعداد چرخه ها را برای اجرای آن بدانیم , ما می توانیم ۳۱) را به صورت زير محاسبه کنیم: ۴ جع الب برای مثال: ‎/ ‎Op e 0۳0 ۵۵ xf ‎۹ ‏_ب‎ ۴ 0 TF ‎OO 6096 4 8 9990 bowd 60960 S 40 669 Grre 0007 9 © 1۹6 ‎۳7 90۵ GC FF 06 ‎2296 ee qo% ‎\cpea323-04F\Topico.pot ‎Doral ‎224

صفحه 227:
مسائل با میانگین حسابی #نقاضاهایی که احتمال ماشین که زمان بندی ‎A Machine B‏ یکسانی برای اجرا ندارند. 2 تا شدن براى© آزمون كارايى: ‎Machine‏ graml 2 seconids(%20) 6 seconds s(%80) 10 seconds Pr Program2 12 secon میانگین زمان اجراع ©/(©+©0) -5ثانيه ميانكين زمان اجرا-©/(©+00)-© ثانيه ميانكين زمان اجرا میانگین زمان اجرای وزنی: 228 ی وزنی۸-ثانیه 0.2*2-10 +8*12. 8عثانيهق8. 6-<8*6. 0 + 000* 00.6 12204 1۳۳۵0323100۴1۳0۵

صفحه 228:
توان عملیاتی:تعداد کارهایی هستند که در یک واجد زمانی کامل می شوند کارآبی و زمان اجرا متقابل آند افزایش کارایی کاهش زمان اجرا را در پی دارد ازمان اجرایی که به یک برنامه اختصاص داده می شود می تواند به صورت زير محاسبه شود زمان 20۳0) 2 تعداد دستورالعمل ها 00۳1 * زمان هر چرخه زمان - (26()۳0 تعداد دستور العمل ها * 0۳0()/آهنگ پالس تتاعت: اين عوامل متا ثر است از تکنولو ژی کامپایلر ؛ معماری مجموعه نستور العمل ها ۰ سازمان دهی ماشین ۰ و تکنولو ژی زیر بنايي .زمانی که کارایی افزایش می يابد دقت كنيد كه جه رخدادهايى به طور متناوب اتفاق مي افتد <>نمونه متداول سریعی ساخته می شود. به خاطر داشته باشيد: بخشهاى اشتراكى را سريعتر 24 \epe9323-04F\Topico ppt 229

صفحه 229:
آزمون های کارایی کامپیوتر آزمون کارایی ؛ یک برنامه يا مجموعه ای از برنامه هایی است که برای دستیابی کامپیوتر به کارایی استفاده می شود #آزمون های کارایی به ما اجازه می دهند سنجش کارایی بر پایه زمان های اجرایی را می دهد آزمون های کارایی باید نمایش دهنده نوع درخواست های در حال اجرا در یک کامپیوتر باشند آزمون های کارایی نباید به عوامل دیگری در کامپیوتر وابسته باشند » مثل موس » کیبورد » و... #آزمون های کارایی مي توانند در گونه های پیچیده و سودمندشان بسیار گوناگون باشند. 230 ام هام۲9 922.00۴ وم 24

صفحه 230:
۰ Uae ‏برای اجرا یا بنجش سخت است»‎ ‏ای همانندسازی سخت است*‎ ان دهنده کره سیستم حافظه قابل » آندازه كيرئ نيدت به اوج رسیدن"می تواند یک راه" ‎٠‏ ‏طولانی از درخواست کارایی باشد ود \epe9323-04F TOpIcD pat ذرخواست کامل آزمون های کارایی| مثل‌آزمون‌هایک ارلیی] 5066( آسان برای اجرا در اوایل» طراحی) چراخه قابلیت به اوج رسانیدن همانندی» و پتانسیل گلوگاه ها 24

صفحه 231:
(System Performance Evaluation Cooperative) ‏موسسه. ارزیابیک ارلیی‌سیستم‎ آزمون های کارایی ۳/262 5به شدت برای گزارش کارایی و کارایی ۳6به كار مى رود اولین دوره 0۳۱189 5۳۲ شامل (10) برنامه روی اعداد 5109/6 ##دومين دوره 6۳192 ‎SPEC‏ 2 0(5۲66 تا برنامه صحیح) و 6۴۳92 06(5۲66 تا برنامه مميز شناور) فلك ‎cla‏ كاميايلر مى توانند قرار بكيرند به طور متفاوت براى برنامه هاى متفاوت “سومين دوره 0۳۱95 5۳0۴ قرار گیری جدید برنامه ها:95 6101۲ 5۳۴86( تا برنامه صحیح) و ‎SPEC‏ ‏5 058( 000 تا برنامه ممیز شناور) ۶ تنها فلگ کامپایلری که قرار می گیرد برای همه برنامه ها . ام هام۲9 922.00۴ وم 24

صفحه 232:
GPEC CPOCOOO 252 Kx es ۰ قرار گیری جدید برنامه ها ‎GPEC:‏ ‏۵( تا برنامه صحیح) و 5)20:0) 06200060000 تا برنامه مميز شناور) * تنها فلگ کامپایلری که قرار می گیرد برای همه برنامه ها . * گزارشات مستند نسبت ارزیابی برای 5۳۴ هستند ۶ زمان لا) ماشین مورد ‎a‏ زمان لا8) ماشين مرجع ام هام۲9 922.00۴ وم 24

صفحه 233:
Noose + ۰ _ اندازه گیری کارایی ماشین های مجازی PCO? ۶ 4< اندازه گیری قوانین فایل سرویس دهند شبکه (06۴6)) >< همعد : اندازه كيرى كارايى در خواست هاى شبكه كسترده جهانى ۳0۵۵0 ۶ اندازه گیری کارایی گسترده در خواست های صنعتی 80,060,0۵0 * *< اندازه گیری کارایی درخواست های گرافیکی < برای اطلاعات بیشتر درباره آزمون های کارابی 0۴680) بم وی سیر ماولمر اجعه ‎ES‏ 234 ام هام۲9 922.00۴ وم 24

صفحه 234:
متال هایی از آزمون های کارایی 09 #نسبت های 90660نشان داده می شوند درپردازش ‎Prue Gas‏ و (+ ۱ ‎(Peutive‏ Pentium Pentium? SPEFfp _ SPECfp 26 NA 30 51 38 68 Pentium SPECint NA 60 80 ‘Pentium SPECint 32 44 55 224

صفحه 235:
+ اندازه گیری کارایی کامپیوتر شامل 000065) و 6,)6۳69() می شود ۰ 0108 میلیون‌ه دستورالعمل‌در هر شانیه ۵_-<(ز مان‌لجر *0۸000)/تسعداد دستوراسلعمل‌ه _برای مثال یک برنامه که 0 میلیون دستورالعمل را در (ثانیه محاسبه می کند درجه ‎JOIPG‏ 0.است _مزایا:آسان است برای فهمیدن و اندازه گیری :ممکن است کارایی واقعی را منتقل نکند در حالی که دستورالعمل های ساده تر را بهتر اجرا می کند. ‎bo le DPLOPO ©‏ عملكر مميز شناور در هر ‎ASL‏ ‏00010006)_>(زمانلجرا*07000©)/عملكرهاومميز شناور ‏_برای مثال برنامه 9) که 6۴ ميليون دستورالعمل را در ©ثانيه محاسبه مى كند درجه ۵ ن ‏ ©.0)است - ‏_مزایا:آسان است برای فهمیدن و اندازه گیری ‏_معایب :مانند 169(تنها اندازه گیری های ممیز شناور ‎ ‎ ‎ ‎ ‎ ‎24 \epe9323-04F\Topico ppt 236

صفحه 236:
زمان اجرای قدیم کارایی جدید میزان تسریع< ‎Se‏ ‏زمان اجرای جدید کارایی قدیم 3۳ - - . 8 224 \cneg323-04F TopicO.ppt 237

صفحه 237:
*#دستورالعمل های ممیز شناور برای 6 برابر شدن سرعت اجرا بهبود داده شده اند .اما تنها 610کزمان برای این دستورالعمل های اصلی استفاده می شود. ماشین جدید چقدر سریعتر است؟ ميزان تسريع = - ميزان تسريع 98 ۵ +000 ماشین جدید (66().)سرعت دارد ,یا (966.6سریعتر است اگر سرعت دستورالعمل های ممیز شناور ‎WDD‏ برابر سریعتر شود ماشین جدید چقدر سریعتر می شود؟ ‎F‏ 0 ‏ل‎ oo ranane QUA ‏میزان‎ >

صفحه 238:
#فرض کنید یک پردازشگر به طور جاری به (0ثانیه برای اجرا ی یک برنامه نیاز دارد و کارایی یک پردازشگر هر سال 06 کبهبود می پابد, #به وسیله چه عاملی کارایی پردازشگر در 2 سال بهبود پیدا مى کند؟ ‎@.GO=6\(40.8)‏ ‏بعد از 0 سال یک پردازشگر همان برنامه را در چه زمانی اجرا امی کند؟ انیه 52 ©©. 000/2-<95.) زمان اجرای جدید چه فرضیاتی در مسئله بالا پدید می آیند؟ 239 ام هام۲9 922.00۴ وم 24

صفحه 239:
‎ae ee Gil AMO Ad sa Sas‏ دستورالسل های یکسانی دارند ‏ارت 26۵ ۳0 ‎sa ot‏ ارد. ‎|g a fg ADO Se)‏ ‎ ‎ ‏مره 00 آخگپال‌ساعت ‎das OOM,‏ سورد لها 00 انلجرای ‎‘oop‏ ‏90 مج وه 06 تنگپلارساعت ‎ /‏ 00۳100 تمداد ستورا اسلا 06 زمان لجراي ‏آهنگ پالس ساعت 0( چقدر باید باشد تا زمان اجرای یکسانی برای آنها داشته باشد؟ ‏ام هام۲9 922.00۴ وم 24

صفحه 240:
0 عوانیکلبز ار تسحلیلگر برلعر لهمای‌طرلخی x = 2.7 cycles/instruction GS 5 ‏بر‎ 56 + 1 7 ۱۴ 2x15 + 2x7 $2 5 100 nom 3.61 \cpeg323-04F\Topicd.ppt etruction cycle:

صفحه 241:
دستورالعمل ٩۳)363):قانون‏ آمدال برنامه 9۵۵0 از زمانش را به کدهایی اختصاص می دهد که نمی توانند دوباره برای اجرا به صورت موازی کد شوند میزان تسریع محاسبه می شود برای ۰۰ ,9 ,6 ,9 ,2 0 cpus) 2) 3 | 4 | 5 « | میزان تسریع 7 00 3

صفحه 242:
دستور العمل ٩9630)<:قانون‏ آمدال برنامه 9660 از زمانش را به صورت سریال 2 میزان تسریع را برای 0 6۶ ۵0 + (PO%/M) CPUs 2 | 3 4 5 06 3.3 2.3 2.1 1.85 | 4 أميزان تسريع 0[ نت مد

صفحه 243:
یک ژول آنرژی :یک جریان 4 آمپری است که از وسط یک مقارمت اهمی عبور می کند و گرمایی معادل ‏ ژول تولید می کند انرژی و کارایی یک ژول < 0.24 کالری یک کالری دمای یک گرم آب را یک درجه افزایش می دهد یک مورد ناخواسته:کامپیوترها انر ژیالکتریکی را به گرما تبدیل می کنند.. که به عنوان فراورده های جانبی محاسبه می شود هوا پا آب می توانند مانع وب شدن چیپ در اثر انتقال حرارت شود 224 9

صفحه 244:

صفحه 245:
Temperature (°C) | | 80.1173 78.2277 76.338 74.4483 72.5587 70.669 68.7793 66.8897 24 \epe9323-04F\Topico ppt 286

صفحه 246:
اتصال انرژی :فیزیک های بنیادی انتقال منطقی اتلاف انرژی Models inouts to other gates & wire capacitance ae = ales an id ft isT can ‏اغيج كتلس سين زا تکتولو زب‎ wie limit Gtate-vP-he-at CPOs (OO uv): switching Ouwickies eaerqy is PO% oF total eaerepy. energy? ‏اس ,9000 و :جد دوت‎ ۳ “leakage” currents 65nm: 50/50!

صفحه 247:
#آرمون های کارایی خوب از قبیل آزمون های ‎is HS GPEC RIS‏ خاصی را برای ارزیابی و مقایسه کارایی کامپیوتر تولید کند ۳)۵)(),()()بر لیاستفادم لسان‌هستند لما برلینشان‌دادن‌ک ارلیینا صحیح هستند. #قانون آمدال یک روش موثر را برای توضیح میزان تسریع وابسته به عامل انحراف ایجاد می کند. به خاطر داشته باشید: بخشهای اشتراکی را سریعتر نمانید! 248 ام هام۲9 922.00۴ وم 24

صفحه 248:
نتیجه گیری مشتری ها:قیمت را می سنجند معمار‌ها : طرح را می سنجند ‎Sk‏ :ابزارآلات/<0و معادله کارایی ‏عاد قانون آمدال:محاسبه می کند ‎ ‎

صفحه 249:
فصل پنجم روشهای پیاده سازی معمار: ی پرا دازشگر

صفحه 250:
بخشهای سازنده مسیر داده © پیاده سازی یک مسیر داده ساده (تک چرخه ای) اده سازی چند چرخه ای 224 \cneg323-04F TopicO.ppt 251

صفحه 251:
۶ رود پایه اجرای دستوزالعملها * برخی قراردادها مسیر داده 060 بیتی استراتژی ساعت زنی(حساس به لبم) * مابه زیر مجموعه ای از 10۳05/) تمرکز می کنیم: دستورالعملهاى دستيابى به حافظه ريج ؛ ‎hay‏ ‏اصال عن لحم ,طح كي 01077 دستورات انشعاب در صورت تساوی(وا) و دستورات پرش () 282 ام هام۲9 922.00۴ وم 24

صفحه 252:
یک تصویر بزرگ:ما الان کجا هستیم؟ تکنولوژی طراحی مجموعه دستورالعمل ها 224 ۳ 253

صفحه 253:
یک شمای اصلی:چشم انداز کاربایی # کارایی یک ماشین تعبین می شود به وسیله: ‎or‏ * تعداد دستور العمل هاییون .) ) #زمان هر چرخه ‎(Opel Troe)‏ ‎“est. (Ochre Oppel Meet‏ # چرخه های هر دستور العمل(660) @ طراحی پردازشگر (مسیر داده و کنترل) تعیین خواهد شد: #زمان هرچرخه # چرخه های هر دستورالعمل @ پردازشگر تک چرخه ای _یک کلاک دارد برای هر دستورالعمل * مزایا:طراحی ساده و 00۳/0 کم. * معایب:زمان چرخه طولانی است و این باعث می شود که به وسیله کندترین دستور العمل محدود شود 7 2۳۳ 7

صفحه 254:
تجزیه وتحلیل مجموعه دستور العمل->پیش نیاز های مسر داده * مفهوم هر دستور العملداده میشودبا انتقال دادن ثبات ها ۳ + [۳-> [۳: * مسير داده بايد شامل محیط ذخیره سازی برای تبات های 1060/ شود * مسیر داده باید انتقال دادن هر ثبات را پشتیبانی کند انتخاب كردن مجموعه ای از بخشهایی از مسیر داده و بنیاد نهادن روشهای ساعت زنی #طراجی مسیر داده با در نظر گرفتن پیش نیاز ها اه هه سم بط خن مار ‎ort‏ ‎hee ere‏ ان وا من او ی #طراحی کنترل منطقی 255 ام هام۲9 922.00۴ وم 24

صفحه 255:
یادآوری:قالب های دستور العمل های 4 > بیت است. (ا قالب دستورالعمل هستند. #اهمه دستور العمل های 0(/109)طولشان 0 31 26 21 16 11 6. = op Ts, rt rd__| shamt {Finct ‏عانط6‎ Sbits Shits Shits Sbits 6 bits 31___26 21 16 5 ‏مه‎ TS. rt immediate 77 6bits 5 bits 5 bits 16 bits 1 | [26 ‏سب‎ ‎‘op target address 6 bits 26 bits دارای فیلدهای متفاوتی هه * 0005 عملكرد لق ۳ 5)منبع. ومقصد مخصوص: شبات‌طظ ‎lated‏ + داز شلییفت " وس" :لنتخابكربن عملياتمتفاوشدر فيلد 0ه" ۴ صوسووو: | ولو لفستادر س‌یا مقدار فوری وین امس آدرس‌هفدستور ااعمل‌پبرش 24 \cpe9323-04F\Topico.pot 256

صفحه 256:
(RTM) ‏#,۲۱۷شهوم دستوراساعمل‌را می‌دهد‎ ‏4همه دستورالعمل ها با واکشی دسئورالعمل آغاز می شوند‎ op | rs | rt | rd | shamt | funct = MEMI PC ] = MEM[ PC] Register Transfers Rird] <- Rirs] + Rit]; PC <-PC +4 Rird] <- Rirs] - Rirt]; PC <-PC +4 R{rt] <- R[rs] + zero_ext(imm16); PC <-PC+4 R{[rt] <- MEM[ Rirs] + sign_ext(imm16)]; PC <- MEM[ RIrs] +.sign,ext(imm16) ] <- Rirt]; 90 >- op | rs| rt | Imm16 inst_ addu subu ori load ۳0+ 4 وید 1 4 م16

صفحه 257:
مرحله ):تعیین پیش نیاز های مجموعه دستور العمل #حافظه * دستورالعمل و داده ها #ثبات ها (32 32 ) #خواندن ۲5 #خواندن ۲۲ " نوشتن ایا۲۵ 60# شماونده برنامه #كسترش دهنده(كسترش علامت يا كسترش صفر) #جمع و تفريق يا مقدار فورى كسترده شده ‎Add 4 or shifted extended immediate 0 50#‏ 258 ممم امه5م323-04وممع 224

صفحه 258:
مرحله ‎Oo‏ اجزاء مسیر داده #وا 158 ماه >Result ‏ومنطق‎ 3 B 33° ‏مهد‎ 3 "coeg323-04F Topico ppt 259

صفحه 259:
نیاز های ثبات انتقال -> طراحی مسیر داده #واکشی دستورالعمل #کدبر داری دستور العمل ها و خواندن عملوندها #محاسبه کردن عمل #بازنویسی نتیجه 260 ممم امه5م323-04وممع 224

صفحه 260:
آلف (- متتمه وآهد وإأكشى سور العمل #عملیات متداول 971 * واکشی دستورالعمل: [۳۸6۳۱]۴۵ * جدید کردن شمارنده برنامه: * کد پشت سرهم:: 4 + ۴6 -> ۴6 * انشعاب و پرش: 56اه ‎"PC <- “something‏ 224

صفحه 261:
‎rd, re, AB: Rfrd] >- Rfre] op Rl}‏ له ‎able Ruvs Ru, Rb ™‏ )5 فسيلدهائدستور ا هملهاى ب بور و لم ‎ood ReyDr *‏ م()را0)زبسعد از کد ببرداری‌دستورا اهملک نترلمتطقی‌می‌کستند 0 6 11 16 21 6[ 31 ‎Ts rt rd_ | shamt | funct‏ مه ‎6bits Shits Sbits Sbits Shits — 6 bits‏ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎12/28/24 | ‏لا‎ epg -0apvropico.pat | ‏ل‎ 262 ‎ ‎

صفحه 262:
immediate ‎bits‏ 16 ار ‎mediate‏ 0 0 0 0 0 0 0 0 0 0 0 00 00 ‎16 bits ‎16 ‎ ‎5 bits ‎161, ‎rt ‎(asi | ella hah ‎٩ [ <- Ris] op‏ گسترش‌صفر[1۳۱۳016 ‎21 ‎ ‎rs ‎5 bits ‎16 bits ‎31 26 ‎ ‎ ‏جر ‎bits‏ 6 31 ‎[Ra [Rt ‏مثلل ۱۳۳۸16 ,۲5 ,۲۲ 0۲1 ‎ ‎RegDst_\" ux / ‎Rs ‎ ‎ ‎ ‎ ‎Rw Ra Rb 32 32-bit Registers ‎ ‎ ‏مدید ‎ ‎ ‎

صفحه 263:
dae: Oa ‏كستر 9۹6 ا‎ + 5] [ >- Mem[RIrs] 26 21 16 rs rt immediate 16 bits ALUct 3 0 ۳ ‘Ade te tl Data ۳ pedantry ۱ Daten ‎‘Chk‏ ی ‎\epe9323-04F\Topico ppt 264 ‎6bits Shits 5 bits ‎r ‎busA. { Ws ae ‎۳ ‎ef ‎3 ‎a4 ‎cr ‎5 ‎Ss ‎ ‎fopuarg ‎Iw rt, rs, imm16Jio ‎31 ‎Rd {Rt ‎٩‏ اطع ‎RegWrs5} 5) ‏َو‎ ‎ ‎ ‎ ‎Rw Ra Rb| ‎_.| 32 32-bit 32 Registers ‎ ‎immi6— + —.| 16 ‎24 ‎ ‎ ‎ ‎

صفحه 264:
]Mem ث9:عمل ذخیره ۳ Age ALUSre \epea323-04P\Topieb pat sw rt, rs, imm16Jlio [ R[rt] -: Pee oer t R[rs] ] 31 6 21 op rs rt immediate 6bits Shits 5 bits 16 bits Ra. [BE ALUct Mere W Src ۱۳ ‏كروك زم‎ | ۱ a Ry Ba Rb | = 32 32-bit 32 32 Registers | busB ‏بر‎ 1 >| ‏بر‎ ‎3 224

صفحه 265:
ج0:دستورالعمل انشعاب 31 26 21 16 0 op. TS rt immediate 6bits 5bits 5 bits 16 bits rs, 1, or Ober BAUS ‏ولکتیستورالسمل‌از‎ we[PO] [۳]) <- [صس]() -> امب)محاسبه شرط لنشعاب (0 و2 ((206)) <#محاسبه آدرس‌دستور ا لعمل‌بعدی ‎(xP (eA Ode fyi S$) + 0 > 0+‏ ‎be‏ ‎(PO + 2‏ ب> ۳۳720۳۲۵۵ 224

صفحه 266:
6 ,1 ,15 | 960لیجاد کردن‌مسیر ادا 16 21 ‎rt immediate‏ ۹ ‎bits 5 bits 16 bits‏ 5 ‎Inst Address Cond‏ 1 1 ‎"sel Reaves} ac‏ ‎busA‏ ۱ 32 ‎a.‏ حر ا ‎pusw | B® Ra Rb‏ ‎ues S| 32 32-bit 32 | 8‏ ‎Registers |. 3‏ 4 1 كل ‎Clk‏ مسیر داده برای عمل انشعاب Clk \cpea323-04F\Topico.pot 31) 26 oP. 6 bits تس ۵ رصح ۳ Golutite jos ‏ه‎ 2294

صفحه 267:
قرار دادن همه اینها باهم :یک مسیر داده تک چرخه ای ~Instruction<31:0> + imm16] xa al cng 5 ۳۷۲۵۵ 1 ۴۲ ‏سر‎ 8 | 32 Data ‏لح‎ cx [Memory 224 \epe9323-04F\Topico ppt”

صفحه 268:
مفهوم سیکنال های کنترلي ‎Rs, Rt, Rd‏ العمل در لین‌مسیر داده سیم بندیشده اند ‎O => PC <-PC + 4; 1 => PC <-PC + 4 + SignExt(Im16) || fodnec lsat:‏ ‎Inst ‎Memory ‎Adr. ‎ ‎ ‎ ‎ ‎ ‎\cpea323-04F\Topico.pot ‎imm16 ‎ ‎224 ‎ ‎ ‎ ‎

صفحه 269:
مفهوم سیگنال های کنترلی نوشتن‌در حافظه 0۵و5۱ ,۲۹2۵۲۵۲ add”, “sub”, OrALUctrs¢ o . © Rec(Dr: ۷ ۱ ‏عع رم‎ Equal 7 سل عه رمع سان دلااط0ع0اممأ <- 1 :قوع <- 0 5 لان 224

صفحه 270:
واحد واکشی دستورالعمل در ابتدای جمع یی | واکشی دستورالعمل از حافظه ‎instruction <"Jaaloias | yemory | ——tstrction<31:>‏ اس انجام دادن برای همه دستورالعمل ها <>به بیتهای خاصی نیاز نيست 224 16 a Od fcp20323-04F\Topico.pot

صفحه 271:
مسیر داده تک چرخه 0 6 R[rd]_<- R[rs] oP, Rirt] nstruction<31 4 Ua ما 5 vv ١ 80 ‏6ص‎ ‎JlemtoRe 0 shamt funct 11 ی در طوا اج op Ts rt rd instruction C_sel: Rw Ra Rb 32 32-bit Registers 24 \epe9323-04F\Topico ppt

صفحه 272:
واحد واکشی دستورالعمل در انتهای جمع ۳-4 ‎Inst‏ ‏<31:0 م5 ]| ‎Memory‏ "اين براى همه ‎Aat‏ دستورالعمل ها یکسان است به جز 4 - 001 ۰ انشعاب و پرش imm16 ممم امه5م323-04وممع 224

صفحه 273:
مسیر داده تک چرخه ای در طول بارکردن 0 16 21 26 31 ‎op TS rt immediate‏ R[rt]_<- Data Memory {R[rs] + SignExt[imm16]} nstruction<31:0> N [Rd ‏ذا‎ 9 RegDst < 0 & 95 = 2 0 2 ۲ ‘ Rt Rs Rd Imm16 RegWr= 15 lemtoRet MemWr 2 0۳۳۳| Rw Ra Rb 32 32-bit Registers busW ~[LI Data Ing3 imm16— 9] [32 Clk ALUSre zane \epeg323-04F Topico ppt 275

صفحه 274:
مسير داده تک چرخه ای در طول عمل ذخیره سازی 16 21 0 fate JA 31:0> rEn Adr immedi instruction < 52 Data clk __|Memory rs. rt Data In 9 26 31 op. R[rt] -> {Rirs] + SignExt[imm16]} ools ‏#حافظه‎ 32 32-bit Registers 27

صفحه 275:
مسبر داده تک چرخه ای در طول عمل انشعاب 31_26 21 16 0 op Ts. rt immediate 0) then Zero <- 1; else Zero - instruction<31:0> if (R[rs] - R{rt] >7 >91 >11 ‎[Ra Rt‏ هط ‎SSS a7 7‏ ‎ReqWr = Rs Rt ALUctr Rt‏ 3 به 5 ۲و 0 ‎busW‏ ‎32 ‎Clk ‎gM) we ly Rs Rd Immi6 ‎MemtoReq ‎lemWr=0 | ‎ ‎ ‎ ‎32 32-bit 32 Registers ‎ ‎ ‎ ‎Data Ing imm1 | 32 | Clk ‎Data ‎ALUSre ‎27 1۳0070 TopICO pat 27 ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎

صفحه 276:
واحد واکشی دستورالعمل در انتهای انشعاب immediate (Zero == 1 rt 21 rs. » 4*[imm16 26 op 31 ee book for what the datapath and o :|| لسع وت توس ontrol looks like for jump instructions. ompared to book our processor als upports the ORI instructions. 224

صفحه 277:
مرحله 4:مسير داده داده شده ‎٩۲1:‏ Instruction<31:0> >CONTROL SE IE Is ‏ها تن‎ | |e ۷ oy i Rt__Rs Rd Imm16 Control | Reg WRighsbler |ALUSe jemi + gual ! | | DATA PATH \cpea323-04F\Topico.pot inst Memory mea yoy Adr 224

صفحه 278:
ALU operation |—Zero LU-—Result [Overflow CarryOut لین نمادی لست که به طور معمول برای نملیش یک لام مورد استفاده قرار ی گيرد. اين نماد همچنین براي نمایش یک جمع کننده نیز استفاده می شود. بنابرلین بوسیله یکی از دو نماد ‎ALU‏ با ۸006۲ برچسب گذاری آمي شود. خطوط کنترلی تارای برچسب ‎JSS 0 ALU Joc 5 ysl Jade od 2 ALUOperation‏ بعد معرفی می شوند. 24 \cpea323-04F\Topico.ppt 280

صفحه 279:
ALU Control lines Function 000 And 001 Or 010 Add 110 Subtract 111 Set-on-less-than ALU ‏به همراه عمل متناظر‎ ALU Jus bs ay polis 224 \cneg323-04F TopicO.ppt 28

صفحه 280:
امامت 0 | ۳2 ها لدتساو 29 ‎toput‏ مه ۵ | عاك عماامسة | «داعصوة__ | 24009 | سسوم ‎Lo GD load werd ‏مد‎ add 17 0 ‏سس هه‎ werd ‏لو وید‎ ao Gear equal | ‏اله‎ |brauck equal ‏مد‎ |rubtract ‏ههه‎ ‎[Rave ۵ Jade ‏ها و هه‎ eee dO ‏عصضد]‎ cand — feibtrace 10 eee ‏هه‎ jenn ‏هه‎ aod amp eve ‏هه‎ jor camat or cut eave ‏امس 101018 ل لا‎ aaa ‎ ‎ ‎ ‎ ‎ ‎ ‏این جدول چگونگی تنظیم بیتهای کنترلی ۸1.2 وابسته به بيتهاى كنترلى 81-1707 و كدهاى تابعی متفاوت برای دستورات نوع ثباتی را نشان می دهد. ‏8 کسه در اولین رتور سیستش ده لستوضیتیتهای00 ‎ALU‏ | سین كسس تسمام کد گسناییها ‎ ‎ ‏به صورت و اده می شوند. توجه کنید زمانی که کد ۸۲:170۳ برابر 00 یا 01 باشد. فیلد های ‏بی تمایش ‏خروجی یه فیلد کدهاي تابمی وابسته نيست. در این مورد. گفته می شود که مقدار کب ‎ ‏"بدون توجه" (0876 010۳) می باشد و فیلد کد تایعی به صورت 15060670 نمایش داده می شود. زمانی که مقدار ۸۵1.10۲ برار 10 باشد؛ کد.تابي برای تنظیم ورودی کنترل .۸1 به کار می رود ‎224 \cneg323-04F Topicd.ppt 202 ‎ ‎ ‎

صفحه 281:
دستور العملهای که از لاا۸۵ استفاده می کنند 6 محاسبه آدرس- جمع. ‎8:Branch eq‏ & جمع / تفرب ‎and/or R-type:‏ ۲ set-on-less-than نیاز به کدهای تابعی 283 ممم امه5م323-04وممع 224

صفحه 282:
بسیاری از ورودیهای اضافه شده “, طراحی کنترل ۸1.17 0۷/۰ ایور ‎HO)‏ ‏100 ‎ao,‏ ‏100 ‎aD,‏ ‎a‏ ‎aac‏ جدول درستی برای سه بیت کنترلی .۸1 به عنوان ‎ALUOp} ul‏ و فیلد کد تابعی 18> أه أه أواداهة alelele|el =| lal : H x 3 2 oO 1 a oO 3 3 5 0 © 0 1 او/<]*<]< << 2 5 04F Topico.ppt © أ- أ أ أ أب أعد امد 20 oO a 3 |<] x] x 600 3۹1 © 1 1 1 1 1 توجه"(08۳6 /0۳) هستند. به عنوان مثال. 0 از كد كذارى 11 استفاده ای نمی کند. بنابراین جدول درستی می تواند ترجیحاً شامل یهای 1 و 1 به جای 10 و 01 باشد. 24

صفحه 283:
Operation Operation بلاک کنترلی ‎ALU 5 cee ts ALU‏ را میتی بر کد تابعی و بیتهای ۸۲,۲70 تولید می کند. 285 ممم امه5م323-04وممع 224

صفحه 284:
چهره قالب دستورالعملهای ‎O1PG‏ ‏تست 10-6 sham 10-6 address address 0 rf rf rd 31-26 25-21 20-16 15-141 a. R-type instruction 3h or 43 rf rfl 31-26 2521 ۰ 6 b. Load or store instruction 4 14 rt 31-26 25-21 20-16 3 branch instruction \cpeg323-04F Topico bot Field funct Bit positions Field Bit positions Field Bit positions مد

صفحه 285:
* فیلد 00 .همچنین معروف‌به ۰000006 هميشه در بیتهای 26 تا 31 قرار می گیرد. مابه لين فیلد به صورت [00]5-0 اشاره می كنيم. و رمیستر خواند هملیشهابا فللدهای ‎PS‏ وا تا در لوقعیك 25/621 و16 تا 20 ماشخلی- ی شوندبا این مطلب. براى دستورات تباتی. انشعاب در ضورت تساوی و ذخیره سازی صدق می کند. *_ثبات پایه برای دستورات 1080و 50016 همیشه در موفعییتهای بیتی 21 نا 25 (۳5) قرار دارد. * 16 بیت افست برای دستورات اتشعاب در صورت تساوی. 1080 و 51076 هميشه در موقعیتهای 0 تا 15 قرار * بات مقصد دز یکی از این دو مکان است. برای دستورات 1020 در بیتهای موقعیت 16 تا ۳1[20) و در حألی که پرای یک دستورالعمل ثبلنی در موقعیتهای بیتی 11 تا ۳8(15) است. بنابراین مابه افزودن یک مالتی پلکسر برای انتخاب اينکه کدام| فیلد دستورالعمل به شماره رجلیستر نوشتن اشاره می کندا 207 ام هام۲9 922.00۴ وم 24

صفحه 286:
لد انم A ops Et 0 اس مس ‎Miter! — eae‏ ‎Be Hepa. 6‏ ‎ty 9‏ 55-552 مسير أذاذهءية هفراه تمامئ مالتى يلكسرها و تمامی خطوط کنترلی شناخته شده ممم امه5م323-04وممع 224

صفحه 287:
طراحی واحد کنترل برای اجرای دستورالعمل 24 \epe9323-04F\Topico ppt 289

صفحه 288:
] ‏وم بو وال ی بط و سا ساوسی مومس تا‎ pe fee dat mrt Se Se ‏عات امات لسيله باح لس توس سا‎ ارو اه تسج سای بو وتارس دا مسا | ها سلوب مسد جوت سحاد جا هجو بو | 1 [ihe ‏وا احا ددا اجه سا‎ ۳ rewire 121111 ی سا اوه ‎register‏ سار( سب ا ‎aie ae feu‏ اجه سا سا اب 1 | ‏سا ماس‎ broach tart | ‏بط‎ value Red io the reginter ante date tap ‏وه‎ موس وتا سار سس عمل هر کدام از هفت سیگال کتترلی ورودی متناظر با پایه ) را انتخاب مى كند. در غير اينصورت در صورتى كه بيا . زمانیکه بیت کنترل (0) به سمت مالتی پلکسر lear leo Vike ‏گوس لا قوس‎ noms ows the ‏سامت الس اساي سس‎ [Ihe renter sdestition wureber orth One mecpoter ers Rarer the ot Bek [Oro Vk 6017 replaced by the ouipul oP ker That exeoptes ther vale oPOPO + [Ihe value Red to the ‏ول یوس‎ lop ween Frew thee OLD [econ rene 0۳ | هيما مم ممما ابت شود مالتى بلكسر کنترل آزاد نگردد (0) باشد), مالتی پلکسر ورودی مربوط به پایه () را انتخاب می کند. به خاطر بسپارید که همه عناصر حالت دارای یک ورودی ساعت به عنوان یک ورودی ضملی می باشد و ساعت به عنوان کنترل کننده نوشتن ها به کار می رود. 290 مم0 ۱[ 224

صفحه 289:
ALUOp1 ALUOp0 224 \cneg323-04F TopicO.ppt 201

صفحه 290:
|ALUctr, 292 ALU ‘Control (Local) \cneg323-04F TopicO.ppt Main ‘Control مه 224

صفحه 291:
sw ‏وم‎ ۹ © ۵ | ۵ | ه | هو ۳ © ۰ | ۵ | ه 0 6 0 | | ه ۳9 lava o |} a 3 © ao ofa a © Reve 0 ۳ ۳ 6 o} a ٩ © ‏ی‎ o | 4a x x eg rte a a ‏]زه‎ © 0 [Dew ead of} a ©] © 0۵ ‏0ه ]اه‎ © 4 ]| ه© | ه | ه ‎Poort‏ © | ۵ | ه 0 اساسا | 0 | | 8 ار عملکرد کنترل برای پیاده سازی تک چرخه ای ساده کاملاً به وسیله جدول درستی تعیین می شود. نیمه بالای جدول ترکیب سیگنالهای ورودی که مرتبط با 6۳ کد عملیاتی (سلمسسسره) می باشد و تعیین کننده وضع خروجی کنترل هستند را به دست می دهد. (به خاطر داشته باشید که (-0)م) مرتبط با بیتهای 66 تا 00 دستورالعمل است» که فیلد کد عمل(عبسرم) می باشند.) بخش پایین جدول خروجیها را به دست می دهد 12/28)2: \cneg323-04F TopicO.ppt 293

صفحه 292:
” 1۹ ۳ جدول درستی ‎Sly‏ نوشتن ببانی ‎op[ 000000 00 110110 001110 10100 01000 1‏ R-type | ori | ‏وفط |_سه | مد‎ [jump] RegWrite. 1 1 1 0 0 0 RegWrite = R-type + ori + |lw op<5> & lop<4> & lop<3> & lop<2> & lop<1> & lop<0> (R-! type) op<5> & lop<4> & op<3> & op<2> & lop<1> & op<0>! + (ori) + <0>م0 ع <:5 60952 98522 بع ۱9935 ما و كوم ‎OP<57p‏ ‎p<0> (Iw)‏ >0< >0< >0< >0< >0< ‎sw]‏ 1 beq| jump! 204 ممم امه5م323-04وممع 224

صفحه 293:
۸روشهایک نترل‌اصلی ‎op<5>‏ . حوعوه حوکوه حقکوه <5>مه ‏ حقکمه ‎<5: ‎۳ <o> <o> <o> <o> 6 ‎R-type, sw] beq|__jump]| ‎ ‏سد ‎9 L— RegDst MemtoReg_ MemWrite Branch | Jump ALUop<0>_ ALUop<1>_ ‎ ‎ ‎ ‎ ‎ ‏295 ممم امه5م323-04وممع 224 ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎

صفحه 294:

صفحه 295:
2 پیاده سازی یک دستورالعمل چند چرخه ای 24 \epe9323-04F\Topico ppt 297

صفحه 296:
توضیحاتی از پیاده سازی تک چرخه ای * دستورالعملهای ماشین ممکن است دارای طولهای متفاوت مسیر بحرانی باشند ستو العمل ‎Load‏ - دستورات مميز شتاور روشهای آدرس دهی متفاوت زمان چرخه ساعت پوسیله پدترین مسیر بحرانی معین می شود. ۴ تکتیرا1اط عمکل اسست هریت ثار باشذ 298 ام هام۲9 922.00۴ وم 24

صفحه 297:
مساق سل تسه 1 [ ۳۵ Reg Pe Lo CLO Tod ven] ia ۵ [ ‏آ سوه‎ Qute Ll OO Lona [oJ Core a = ‏تیه 1 ] و۳‎ ‎Lx] OO | Osa dew‏ اب ‎rsa ‎CO [et Dery ‎ ‎ ‎Rey Pie [| cow [1 ‏#طولاتی بودن زمان چرخه ‏مه دستورالقمل ها به انلدازه کتدترین دلستور زمان سس برید ‎Real memory is not so nice as our idealized memory cannot always get the job done in one (short) cycle ® ‏299 ممم امه5م323-04وممع 224 ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎

صفحه 298:
کاهش زمان ‎Cut 3 dependency. graph and insert register / latch®‏ #درست همان کار رادر 0 چرخه سریع نسبت به آن که ) چرخه کند بود: آنجام میدهد slong Pewee ۱۵۱ ‏سوه)‎ ‎9 ‎bowie boxe (0) al ‏سس لالم کح‎ - yt | 224 \epe9323-04F\Topico ppt 300

صفحه 299:
Rest Gore محدودیت های بنیادی زمان چرخه ام هام۲9 922.00۴ وم 224

صفحه 300:
تقسیم بندی ‎CPI=1‏ ‏+ #اضافه کردن ثباته ال #لشکترین مرحله ها ‎Core‏ لح ‏امکان انجام دستورالعمل در چند چرخه ‎\cpe9323-04F\Topico.pot ‎lesteurtion: ‎ ‎ ‎224 ‎ ‎

صفحه 301:
مثال مسبر داده چند چرخه ای ماما ‎Pet‏ 224 ممم امه5م323-04وممع

صفحه 302:
* یک واحد حافظه یکسان برای دستورات و داده ها استفاده می شود. * يك ثبات دستورالعمل به کار می رود.1۳) sol, ALU ‏یک‎ * 304 ممم امه5م323-04وممع 224

صفحه 303:
۳-6 دستورالعمل‌های(, 200 inst LogicAl Registege-ir, fers ADDU mah Res] Oe eed =PC# 4 inst Physical Register Transfers IR <= MEM[p¢l ADDU <- Ris]; B <- 5 >-۸ + 8 IRIrd] <- S; PC <- PC +4 Rey 224 \epe9323-04F\Topico ppt 305

صفحه 304:
۳5 دستور العمل هاى قورى منطقی ‎inst. Logical Register Transfers‏ ‎ADDU R{[rt] <- R[rs] OR sx(Im16); =‏ ‎inst. Physical Register Transfers‏ ‎IR <- MEM[pc]‏ ADDU A<-Rirsl; ۹ 224 \epe9323-04F\Topico ppt 306

صفحه 305:
طن وطن یور دستورالعمل Or So EW Rit > ‏اعد‎ + sxcim16); |, PC <-PC +4 |! 3 -{ [eal |S <-A+SignEx(m16)__ inst. LW IM <- MEMIS] IRIrd] <- M; 224 \epe9323-04F\Topico ppt

صفحه 306:
بیس «إستور العمل ذخيره ‎MEM{(RIrs] + sx(Im16) <- Rirt]; |,‏ تردن PC <- PC +4 inst Gi pe IR <- MEM[pc] sw IMEM[S] <-B PC <-PC +4 224 \epe9323-04F\Topico ppt 308

صفحه 307:
دستور العمل انشعاب BEQ _ if R[rs] == Rirt] then PC <= PC + sx(Im16) ||/00 else PC <= PC +4 inst SS IR-<-MEM[pc] A<- Rirs]; B Eq =A-B BEQ&Hq PO <= PC # sxUmi6) || 00 ‏ا‎ ۳۹۳ 5 Rey +] 224 \epe9323-04F\Topico ppt

صفحه 308:
و چند چرخه ای یک واحد حافظه تنها برای هر دو دستورالعمل و داده ها استفاده می شود 24 \eneg223-04F Topico.pot 310

صفحه 309:
مسیر داده چند چرخه ای به همراه نمایش خطوط کنترلی 224

صفحه 310:
]::۳ 1 ‏؟‎ ‎| oe med sate pulp [Decoony eocteats ot the cate adress | ‏یات‎ by value oo waite data fap [The Biot GD opersodt spears Rarer the | ‏سای سس‎ by the re Rel [The resister deotioation aueber Rorihe |2۳ ‏موی سا‎ row the rd Ree [The renter gives by Drie renter arabe fe warn uit thee value oe the wnt at tp ‏سب ادم سلا‎ Recto the reginter tate date fap | ‏ساسا سس‎ Dats wry. [The ‏پم‎ othe GUO used to surely bine adds ther wren wa [The lum ‏ی و‎ wot Fe uaiies Fe | ‏)اس مدای‎ سدس معان 070501 ۳ ۳ 1 > he TO [The register destioation water Berth | ‏وا سس سس امه و۳‎ tel ‏عم‎ [The valu Ped io the reainieruanie data apa ‏سا سس سما‎ 0١ Pike FO عم ‎we he‏ مساقت سج تروصت ذا لصوي ‎ ‎Quo wwe ‏رس‎ ‏سح ‎OND‏ ‎eae‏ ‏تن ‎Dewan‏ ‏۳ ‎Dae ‏عمل سیگنالهای کنترلی|1 بیتی مشخص می باشد. ‏اعمال سیگنالهای کنترلی ‎pet ‎ ‎\ene9323-04F\Topiet ‎ ‎224 ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎

صفحه 311:
Geo Vike seovad opto the GO cowes Row tke reaister aura by the w Rela, Vike ‏اههد‎ aputte tke G/Ois the coustau & [The seopad laputto the G/Ois the sigo~exipuded lower ‏أ مانا عطاك‎ [The senvad lopulto the GLOis the siy-eatpuded vod shifted lower ۱۳۱۲ ‏ساناه‎ ‎[ihe Ch Operonns oa wid operation Mike (LO pervs wa subtract operative. [ike Rivction vode Reld oP tke 1ostructiou ‏معا‎ tke GO operation ۹۹3 0 1 Ww a 0 4 1۳ Agee ‏سوه‎ | ممما عمل سيكنالهاى كنترلى 2 بيتى مشخص مى باشد. اعمال سيكنالهاى كنترلى 04F Topico.ppt 313

صفحه 312:
‎١ *‏ ما نياز به يك ثبات موقتى داريم زمانيكه: 1 | يق شيكتال ادر يق چراخه محاسبه و دریک خرحه دایگر استفاده میل شود و 2 ورودیهای بلاکهای کاري (10016ظ [0:00۵تا که این سیگنال را تولید می کتتدزمی توالت قبل ار ایتکه این سيكثال قر غتاطر الط ذخيرة قود تغييز کلتد. ‎ ‎ ‏1 . مابه 1۳ نیاز داریم ‎atu tit |}‏ 3 ثباتهای ۸و 8 به ورودیهای ت۸۵ ‎24 ‏ام هام۲9 922.00۴ وم‎ au

صفحه 313:
مراحل پایه محاسبه دستورالعمل ۰ مرحلهنواکشی دستورالعمل [۳0] برس 18 ‎=PO +@ PO‏ ‎step.‏ 100/کد برداری و واکشی عملوندها 28 نبا(106)66-0]: 0عتبات[(1)60-0]: عسسه/0 + (علمتگ سترشی افته [ 0 >>(10)6-0]ز ‏یادداشت:ما می خواهیم عملیات را"خوشییننه"نجام دهیم. سر ‎ware powe to dl, or ot least do a hurt coy‏ ‏315 ام هام۲9 922.00۴ وم 24

صفحه 314:
(cont’d) ‏مراحل پایه محاسبه دستورالعمل‎ ‎ex 3‏ محاسبه . محاسبه آدرس حافظه » یا تکمیل انشعاب ‎ ‏نمونه: ‏:ارجاع به حافظه خروجی [(19-0) ۲1۵ ممص ميد + © راز ‎BLO cola ‏دستورالعمل‎ ‎:) vp O ees APLO ‏انشعاب:‎ ‎“AP (® ==@) PO= Pare ‏316 ممم امه5م323-04وممع 224 ‎

صفحه 315:
(cont’d) مراحل پایه محاسبه دستورالعمل 0604()دسترسی به حافظه یا تکمیل دستور العمل ۳۷۳۵۵۶ 4۲ نمونه: ارجاع به حافظه: [انحنج (انا(ا] تدصت - :200000 ‎Deere {CLO rapi] = Bor‏ دستورالعمل های (),ل0): ماه = ‎Reg[R(G-A0)]‏ SEAL OOS: Req{1R(CO-LO)] =DOR 317 ام هام۲9 922.00۴ وم 24

صفحه 316:
0<ابعدئتعيينمىشود به وسيلهز *_زمانی که ۳0)برای واکشی دستورالعمل ترتیبی یک واحد لفزوده شده خروجی(را0کیک منبع است. ۰ - ثبات هدف ۰ منبع است زمانی که دسئور العمل داده شده یک انشعاب شرطی باشد ما همچنین به یک سیگنال برای نوشتن در بات نیاز خواهیم داشت که به آنس۳() اسب كفته مى شود. ‎Ol LS POC rue‏ بیتی ی رلوی الا ‎24 ‏ام هام۲9 922.00۴ وم‎ a8

صفحه 317:
مامت بوسحم سن وا | ماهس ۳۳ 1060ب - 17 + وه OF Reyne [TREAD] 02 ‏سس‎ EDI) + ‏وی‎ (HIE) <<) ۳ [mwas] 7سا م لو Pore = > سوس نه سه عد سوسس + ‎Reg [T(GDIQ]‏ ation Por Myre tavirvotiony, Doan = Oo O ۳ و Gey ‏موده‎ ۳ etek ندمل واس سا | Gnetuitop, whhreoe eviorutaliog, مزاع اجام ۳ 7[ سسا ۳3 خلاصه ای از مراحلی که برای اجرای هر نوع دستورالعمل انجام می شود. تعداد مراحل اجرای دستورالعمل ها 3 تا 5 مرحله است دو مرحله اول مستقل از نوع دستورالسمل هستند بعد از این مراحل ۰ یک دستورالعمل از ) تا حداکثر 0 چرخه برای تکمیل شدن زمان می برد که اين وابسته به نوع دستورالعمل است 319 ام ۵ م۳۲ a 122824

صفحه 318:
23۳ whew deusseried Gfect whew usseried ۳ |۲2 ۲۵ ‏لعاموه باس نوتس‎ by ‏د60‎ ‎۳ [The @Ots ‏اوه ماه ۳۰ ما بو موه سصا ع۲ز۳:وعااس‎ ۳3 [The ovipu oPike (DO ir uritien iio the reqister Tore Size prea jt ott Uae عمل ناثبی از تنظیم هریک از سیگنال های کنترلی تسیکنال ها کنترلی 1 بیتی Qqaal cower ۹۹۳3 Girt ۳ 2 0 a [The oouteuls oPihe reuister Turyet am seal ‏مر وا‎ 00 10 1 [ih (C5) aad shifted lel ue bits) te swat to the GO Por wnt. کنترل كردن © (إبعدى \cneg323-04F\Topic0.ppt Guu ‏ده‎ ‎[POD ne [FOO nieOoed |

صفحه 319:

صفحه 320:
روشهای طراحی کنترل برای اجرای دستورات چند چرخه ای ‎ *‏ مبنا قرار دادن ماشین با حالات محدود ‏۰ مبنا قرار دادن ‎Dicrvprogranceg‏ ‏322 ممم امه5م323-04وممع 224

صفحه 321:
y rants (coir exxiboke) 323 Dent Grote boxe y ‏عون اون‎ yy اه سا و ‎Opec weet of pupal‏ ‎fet‏ بو لس ‎ol‏ وه جوا ‎dePoud‏ وا سس کنترل کردن تسهیم کننده ها هميشه صراحتا مشخصر شده است تابع حالت بعدی ام هام۲9 922.00۴ وم 24

صفحه 322:
Stan Instruction tetchidecode and register fetch (Figure 5.32) Memory access | | R-type instrucsions | | Branch instruction | | Jump instruction ] ‏یمیت‎ (Figure ‏موه‎ (Figure 5.25) (Figure 5.36) | (FSM) obser ove Gath jes hail pew as 24 \ep2g323-04F Topico ppt 324

صفحه 323:
یه 2 ‎a‏ ما ‎me‏ ‏«سصم)__ ‎١‏ ها ‎ume‏ نت موی ‎om‏ AALUOp = 09 jroerence FSM Reape FSM ‘Branch FSM sumo FSM ‏سوم‎ (Figure 534) (Figure 535) Faure 5:36) ۲. 1... | متو العمل واکشن- و کدبرداری- قسمات پکسانی پرای) همه دستورالعمل ها هستدد(شکل- 5.37 -جدید 532 24 \epe9323-04F\Topico ppt 325

صفحه 324:
Execution Reype completion Regbst = 4 Regiite Memtoreg = 0 To state 0 (Figure 5.37) New, 5,32: دستورالعمل های 3706 آآمی توانند با یک 2 91۷ "آمرحله ای ساده پیاده سازی شوند 224 \cneg323-04F TopicO.ppt

صفحه 325:
1 بسرلیکستترلکسرمن‌مستوراسانمل‌هاو|رجاع بسه جافظه 4 مرحله دارد(شکل 5-38 -جدید 5.33 327 ام هام۲9 922.00۴ وم 24

صفحه 326:
From state 1 (Oo = 'BEQ’) Branch completion ALUSreB = 00 ALUOp = O4 PCWriteCond PCSource = 01, To state 0 (Figure 5.37) New,5,32 ‏دستورالعمل انشعاب فقط به یک ماشین تک مرحله ای‎ )5.35 ‏دارد(شکل 5.40 جدید‎ 224 \cneg323-04F TopicO.ppt 328

صفحه 327:
From state 1 (Op = ‏زد‎ Jump completion To state 0 (Figure 5.37) New,5;32, The jump instruction requires a single state that asserts two control signals to write the PC with the lower 26 bits veegf the instruction-register-shifted left two bits?

صفحه 328:
واحد کنترل ماشین خالت متناهی به صورت کامل ‎Figure 5.42 = New) (ts ess js 63) p‏ ‎ene. 04F Fpl pot §.38‏ مهد ‎ ‎

صفحه 329:
222/24 \cpea323-04F\Topico.pot ai

صفحه 330:
Mapping RTs to Control 35 1 ‏سونو‎ 222/24 \cpea323-04F\Topico.pot 332

صفحه 331:
CCG & Equal Drte-bak ages \cpe9323-04F\Topico.pot 333

صفحه 332:
Combinational control logic Datapath control ‏سب‎ outputs RegWrite Next State instruction register opcode field \cpeg323-04F Toplco pot 334 Datapath control outputs 24

صفحه 333:
Tus stated + stated For Example: 0 ‏ات‎ ‎state0 + state3 $3°S2*S1*SO stateé state + state2 stated + statel state + states + stated stated + state” 3-04F Topico.ppt 335 2و عا نلعم ‎PCWriteCond‏ MemRead MemWrite IRWrite MemtoReg PCSourcel PCSourced ALUSrcBL ‏اام‎ ‎ALUSTCA

صفحه 334:
تعادل منطقی برای خروجی های حالت بعدی و ‎Output‏ ‎[eater vcs «sae? vated eee] |‏ متكا ‎NextStatel‏ ‎NextState2 | statet (Op = ‘Iw’) + (Op = ‘sw’) NextState3 (Op = "w) [nexstes_faates————SOSCSCSCSCS—SCSSSCSC*S NextStateS (Op = 'sw') NextStates state (Op = ‘Rtype’) NextState7 ‎07 ‎vewsines [sitet 07 ‎For Example: NextStatel = Stated = $3-52°S1-S0 NextState3 = State2 - (Op[5-0]="Iw’) - 53 520510 50 ١ 5 ‎ ‎ ‎ ‎ ‎

صفحه 335:
‎٠»‏ جه طور ميشود )را از روی ۳)969)تعیین اکرد؟ ‎APCD °‏ طور لنجام می‌شود؟ ‎224 \cneg323-04F TopicO.ppt 337

صفحه 336:
‘contro! logte Datapath conrol outauis Outputs 4 1 Inputs from insteuction [State register register opcoce tieia Finite state machine controllers are typically, implemented using a block of combinational logic and a register to hold the current state. 2 \cpeg323-04F Topico pot 338

صفحه 337:
تفسیر "دستور العمل ۷۱۲ پرنمهکربر بل ده ها أين مى توالد تغيير كند ‎I‏ حافظه اصبلی 6 00 ل ‎fe =o‏ یکی از اینها طراحی شده در یکی ۵۵۳9 3 2019 واحد مجاسبه = و ترتیب ‎feu wore‏ مهم ی 944 سین عون ‎Operani(e)‏ اسب (مسعه موق ممم امه5م323-04وممع 224

صفحه 338:
سس تست تس ‎labels to contialmilrocade sequencing, Labols that end ina Ler 2 are‏ رععجه ها فعولا ‎used for dlspatchirg with @ jump table thats indeved based on the opcode. Other labels‏ ‎fare used as cect lergels In the mictoinsivuction sequencing, Labels do not generate‏ ‎contre signals dresty but are used todefine the contents of dispatch tables and generate‏ ‎centrl for the Sequencing fel‏ ‎aise the ALU te ad ‎ ‎Cause the ALU te subtiact: this implements the compare for branches. Use the instructon’s funct fed te determine ALU contal ‎Use the FOas the frst ALU input ‎Register Ais the fst ALU input ‎Regisier Bis the second ALU input. ‎Use 4 forthe second ALU Input ‎Use output of the sign extension unitas the second ALU input ‎Use the output ofthe shitbtwo unit as the seconcl ALU fput ‎Read ino egisiew using the rs and rifielisof he Ras the register nanbews, pulling He deta into registers A and B. ‎Wits the register Fle using the e field ofthe If as the register nunberand the contents oFALUGU ae the cata, ‎Wits the register fle using the field ofthe Res the register number and the contents ofthe MOR as the data ‎Read memory using the BO aa arcress) write resul into IR (aed the NOR Read memory using ALUDut as adress; wite result into MOR. ‎Wite memory using the ALUDut as address; contents of Bas the data ‎Wits the cutput ofthe ALU into the PO. ‎ifthe Zere curpit ofthe ALU is active, wite the PO with the contents of the register ALUOut Wits the PO withthe jum Chaose the Rent micronstustion sequeraly ‎Go to the fist microinstruction to begin a new instucton, Dispatch using the ROM specified by (Ler 2). ‎ress from the insbustion. ‎ ‎ ‎ ‎‘ny ating ‎ ‎Extend ‎Beastie ‎Read ‎Write aL Write FOR ‎Read We Reed ALU Write aL aU ‎ALOU -cond Junp address ‎ ‎Dispatch 7 ‎ ‎Lebel ‎ALU contol ‎SRCL ‎2 ‎Register control ‎Memory ‎Pcvirte contal ‎Sequeroing ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎

صفحه 339:
واکشی برنامه میکرو ينانا لت ‎PC 4 PC‏ 0 Add ALU q Add PL Extshit Read Dispatch 1 224 \cneg323-04F TopicO.ppt ‏مد‎

صفحه 340:
دستورالعمل ارجاع به حافظه برنامه میکرو اصرح ركع رخ ‎fed lls‏ ۳ Extend Read ALL Write HOR SWZ Write ALU 224 \cneg323-04F TopicO.ppt 342

صفحه 341:
6 برنامه میکرو ‎ister‏ یگ لت ‎10۳۵ ‎ ‎Write ALD Fetch ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎224 \cneg323-04F TopicO.ppt 343 ‎ ‎ ‎

صفحه 342:
انشعاب برنامه میکرو 7 میت 177 224

صفحه 343:
پرش برنامه میکرو Coen ‏لس‎ [89 _0 224 \cneg323-04F TopicO.ppt 345

صفحه 344:
orn ‏سس تب‎ Read P 301 ‏سس‎ Dispatch 1 Men add &_| Extend Dispatch 2 1۳ al 1 © HR Fetch Write ALU Fetch 7۳۵۳۳۵۹۲ | Func code| A 8 ۹ Fetch Subt 4 8 ALUOut-_| Fetch cond 7 Jump | Fetch dre 224 \cneg323-04F TopicO.ppt 346

صفحه 345:
فصل ششم خط لوله اى كردن و معمارى خط لوله اى شده 24

صفحه 346:
خط لوله ای | خط لوله ای چیست - مفاهیم پایه 4 مسیر داده خط لوله ای شده یک بررسى موردى از ‎MIPS‏ ‏کنترل خط لوله رفع 12228101 در خط لوله 224 \cneg323-04F TopicO.ppt

صفحه 347:
224

صفحه 348:
خط لوله ای کردن» معمول S555 ‏روشی را برای اجرای‎ 1025 ol als) ao ‏همزمان چند دستورالعمل بوچود می آورد.‎ #مثال شستن لباسها ‎Ann,Brian,Dave,Cathy®‏ » كدام توده 1 لعاز لباس‌را برای‌شستن خشککردنو تا كردتار اختيار أداراتة #شستن 30 ذقيقه زمان فى| برد #خشک کن 40 دقیقه زمان می برد. عة #تا کردن 20 دقیقه زمان نیاز دارد.

صفحه 349:
P © 3# تن ترتیبی 4 توده لباس. 6 ساعت زمان می برد. ‎et alg ES gl St @‏ را فرا گرفته بودنت چقدر طول من کشید؟ 6 عصر y = ra ماه و

صفحه 350:
شستن خط لوله ای شده: نیمه شب ‎a‏ 00 9 شوحو حظ! لله ا ليوو بایان او اساعت و نهم زهان عر برد.

صفحه 351:
دروس خط لوله ای 0 6 6 660 نمی کند. بلکه توان عملیاتی کل بار یی نا را بهبود می بخشد: 0 ‎€O €O €O‏ و وس هی مه ‎i‏ 5 ‎deal‏ 7 ۳ 2 ۳ اجرای همزمان چند کار نیاز به منابع 7 05 ع امتقاوتى أدارة. . 5" © ابتانلبيل تساريع آ- تعدادامراحل لفظالولب 7 © ‎‘a‏ ‎d‏ © طول نامتوازن مراحل خط لوله ‎eb‏ - کاهش ‎ert‏ شود زمان مضرفی برای پر شدن و خالی شدن خط لوله باعث کاهش تسریع می شود. #متوقف شدن به خاطر وابستگی مللآ61۸۵))

صفحه 352:
(#خط لوله: چندین دستورالعمل به طور همزمان در حال اجرايند ##خط لوله به بحشها يا قطعات نقسیم|می شود جرخه ماشين: * زمان مورد نیاز برای گذر از یک مرحله ۴ چرخه ماشین بوسیله کندترین مرحله خط لوله معین می گردد. ۴ ملمولا خرخه هاشلن د طرخه سطاعت. ود ممم امه5م323-04وممع 224

صفحه 353:
4 يك ماشين خط لوله إى شوم كاملا متوازن: زمان غير خط لوله @ 5 تعدا بای خط لول يك ماشين معمولى ‎aes cay (Ly‏ زمان مراحل برابر نیست؛ یک سربار وجود دارد. آما می تواند تا اختلاف 610 به (1) نزدیک شود. 395 ممم امه5م323-04وممع 224

صفحه 354:
خط لوله ای کردن به عنوان یک تکنیک معماری #بطور کلی, تقریبا برای کاریر نامحسوس الست. Scalar pipelined machine vs. vector@ machine 36 ممم امه5م323-04وممع 224

صفحه 355:
تعداد دستور العملهای کامل شده جرخة (ظرقیت پذیرش) را افزایش می دهد. اما زمان اجراى هر دستورالعمل بدون whe die dosage dah ‏تغییر می ماند.‎ ‎cleo eb‏ سام عدر اده متا یه ید ‎latch time *‏ ‎clock skew ©‏ ‏* زمان تاخیر مورد نیا رای انتشار سیگنال ساعت در یک تراشه ‏397 ممم امه5م323-04وممع 224

صفحه 356:
محدودیتهای کارایی در یک خط لوله نمی توان از کندترین مرجله انتظار سرعت داشت پیچیدگیها در واقعیت. زمانهای پردازش متفاوت برای مراحل لختلف. قعل و انفعالاتازابسلتگیها بيه مرا لجل - هملكي ابلتا باعث وابستگی داده ای شود. (پویا) 388 ممم امه5م323-04وممع 224

صفحه 357:
GTOGE ‏ما۵0‎ منطق تركيبى GTOCE OC LOCTEG ‏منطق ترکیبی‎ GTOGE 6 ۸۱۸۵ منطق ترکیبی GPOCE sLOCUEG 0 فاکتورهای مهم در مسیر لوله(مدت چرخه) » تاخیر جاص! و مره سوام وود ام هام۲9 922.00۴ وم 224

صفحه 358:
رویهم اندازی(,ببس در برابر خط لوله ای ##خط لوله اى * ارتباط قوی زیر بخشها(06005: انا5) * مان پایه تابت مرحله * ارزیابی تابع پایه مستقل ##مشتركات * پیوند ضعیف زیر تابع ها * زمان متغیر مرحله * _ارزیابی وایستگی بین تابعی 360 ممم امه5م323-04وممع 224

صفحه 359:
, ۲ 0 و دم 119 - 1 ورودی/خروجی پرداز )1 ‎(stare‏ a Task + Task 1 ‎Pusk 9‏ |) جاع <ا” ‎ ‎Doe ‏رویهم اندازی0۳1/1/0 ‏مم0 ۱[ ‎ ‎ ‎0 ۲ ‎e Pook 2 ‎224 ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎

صفحه 360:
خط لوله پویا و ایستا *ایستا: * تنها ارزیابی های مکرر همان کار با داده های متفاوت انجام می شود ‎no dynamic data dependencies between - ®‏ ‎initiations‏ ‏* طرح ثابت آغاز ها #پویا:پویا متضاد است با ایستا *۴ (اسنکرون) * (روی هم افتادگی) #مثالى از خط لوله ايستا: " جمع مميز شناور در خط لوله ‏362 ممم امه5م323-04وممع 224

صفحه 361:
یک تابع واحدلوله _ چند تابع لوله یک تابع واحد لوله * مثال:جمع لوله #جند تابع لوله ‎Jae =‏ * لوله حساپی بردار لوله ۴ کنترل لوله قابل برنامه ریزی * (دستورالعمل برداری وظیفه و ورودی ها را تعبین می کند) 363 ممم امه5م323-04وممع 224

صفحه 362:
#مراحل خط لوله: * واکشی * 9 (کد برداری+ولکشیشباته) دستیابی به حاقظه یاز نویسی 9 ات ‎a 9 9 e s 9 5 © 9‏ | ‎Px DO‏ 7 سس | ‎AP. 0 EX 00 0‏ 1+ ومتسصتصدط | ‎ox 0 oo‏ 0 ۴ 2 مصاصتصدط | ‎a 0 ex OED Oo‏ 3 مماستصدط]| ‎[bstruction i+4 AP. 4D ex OCD Oo‏ در هر چرخه ساعت دستورالعمل دیگری واکشی شده و اجرا در 5 مرحله آغاز می شوداگر یک دستورالعمل شروع ‎a5,» started every clock cycle, the performance will be five times that of a machin‏ ‎tis not pipelined‏ \cneg323-04F Topicd.ppt 364

صفحه 363:
۵ Oe c Ceo ‏0ه‎ ‎©1702 2 ele 00> : 9۵| 6 1 9 7 a 4 1 4 و ع 2 1272872

صفحه 364:
Pro (chock cbs) ‘ket O ٩0 Reg} #با پاسخ دادن به سوالات مشابه مى تواند کمک کند # چند چرخه زمان می برد که این کد اجرا شود؟ * ل ۸ در طول") چرخه چه کاریانجام می‌دهد؟ * آیا 2 دستورالعمل سعی در استفاده همزمان از یک منبع مشترک دارند؟ و وب و

صفحه 365:
كنيد * 00000 دستورالعمل را مى خواهيم اجرا كنيم * ماشین تک چرخه ای که یک چرخه ساعت دارد 45/15 زمان می خواهد * ماشین چند چرخه ای و خط لوله ای که چندچرخه زمان می برند 1015زمان می خواهد * ماشین‌چند چرخه لی9. )لست #ماشین تک چرخه ای ‎ns/cycle x 1 CPI x 100 inst = 4500 ns 45"‏ #ماشين جند جرخة ا ‎ns/cycle x 4.6 CPI x 100 inst = 4600 ns 10 ®‏ ماشین خبط لوله ای ایده ال ns/cycle x (1 CPI x 100 inst + 4 cycle drain) = 1040 10 * ns #میزان تسریع خط نوله ایدهآل و ماشین تک چرخه ای ‎ns / 1040 ns = 4.33 4500 *‏

صفحه 366:
تک چرخه ای _ چند چرخه ای خط لوله ای Cycle 1 > Cycle 2 > روش تک چرخه ای Load Store Wastd Cycle Wycle Lycle Lycle Lycle Hycle Cycle Lycle Kycle dyclé clk روش چنه چرخه ای ‎iLoad Store R-type‏ هت ‎Ifetch] Reg [Exec [Mem] wr |ifetch] Reg [Exec [Mem‏ ‎i‏ روش خط لوله ای ‎Loadifetch] Reg [Exec [Mem] wr‏ ‎Storfifetch]| Reg [Exec [Mem] wr‏ ‎R-typdifetch] Reg [Exec [Mem] Wr‏ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎

صفحه 367:
چرا خط لوله؟ برای اینکه منابع را در اینجا داریم! Pow (chk rks) 1

صفحه 368:
آیا خط لوله می تواند برای ما مشکل ایجاد کند؟ #بلهزهزاردهای خط لوله ای سای ساحتر لاش بای استفاده از یک منبع یکسان برای 0 کار متفاوت در یک زمان * مثال:سعی در خواندن همزمان دو دستورالعمل از یک حافظه * هر ار های ‎ello‏ :_ قلاش برای استفاده از یک آیتم قبل از اينکه آماده شود * دستورالعمل وابسته است به نتیجه دستورالعمل قبلی که هنوز در خط لوله است ‎add + |, 12, r3‏ ‎sub r4, 12,11‏ 7 تلاش برای ظاهر كردن يك تصميم قبل از اينکه شرط اجرل شود *] دستورالعمل های انشنابا ‎beq r1, loop‏ ‎add rl, r2, 3‏

صفحه 369:
هميشه میتوان هزاردها را با رفع کرد * کنترل خط لوله ای باید هزارد را کشف کند " برداشتن عمل(تاخیر عمل) می تواند هزارد را حل ‎US‏ 224 \cneg323-04F TopicO.ppt an.

صفحه 370:
حافظه تک یک هزارد ساختاری است Deve (chock mck)

صفحه 371:
هزاردهای ساختاری کارایی را محدود می کند مثال:اگر 0.) حافظه در هر دستورالعمل دستیابی شود و فقط یک حافظه مورد دستبایی قرار می گیرد در هر چرخه ‎oSAuCPI = 1.3‏ ۴ منبع بیشتر از (960000مورد استفاده واقع شده ‏+ راه حل اول: جدا کردن حافظه داده و دستورالعمل از یکدیگر ‏@ راه حل دوم: اجزه دهیم حافظه بیش از یک خواندن و نوشتن در یک چرخه انجام دهد ‏راه حل سوم: توقف ‎

صفحه 372:
#توقف تا زمانی که تصمیم مشخص شود ‎Its possible to move up decision to 2nd stage®‏ ‎by adding hardware to check registers as‏ برخورد :هر دستورالعمل انشعاب دو چرخه ساعت زمان می برد >کند شدن

صفحه 373:
#پیشگویی کردن:یک مسیر جدس زدن بعد تهیه پشتیبان ذ اگر اشتباه بود ‎Predict ۴‏ لصاصه اام ‎Pre‏ 3 + ۷ ٩ ‏ده‎ IReg| yay ۱ i 1 i 1 ©برغورة: هر دستور العمل انشعات! اك درست اباشد یک | چراخط -ساعت و اشتباه باشد 2 چرخه زمان می برد(9۵50 موارد درست است) More dynamic scheme: history of 1 branch ) 9090

صفحه 374:
نشعاب(اتفاق می افتد بعد از ب بب تاخیر افتاده Reg} Impact: 1 clock cycles per branch instruction if can find@ instruction to put in “slot” ( 50% of time) Launch more instructions per clock cycle=>less useful@

صفحه 375:
هزاردهای داده ای روی ۰ بنمی تواند به وسیله دستورالعمل های دیگر خوانده شود قبل از اینکه به ‎ddd‏ نوشته شود add yO vO mb rP, ‏هم‎ ‎andr, «0 ‏مس‎ pr ۲۵, ۲ xr IO, “| id

صفحه 376:
هزارد داده ای ۳ لد در این زمان هزاردها هستند ‎eke) | ١ 1‏ سل ‎Dive‏ 4 Mor i ec 06 ۵ i cob ‏مرمر‎ ]۳ lB fb | fs, bP yO ; wt Oy yr? for Oy ir wor ID, 41,7 0 9

صفحه 377:
واه سبط اراد دا و" اتیچه از یک مرحله براى دیگری 5 9و 3 بسیار خوب اگر که تعریف نوشتن اخواندن درست است ‎Or [fof‏ بيه ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎yay Oo ‎por ۷۵ ror ۲,۳۷ ‎ ‎ ‎ ‎ ‎ ‎

صفحه 378:
9 (یگذشتن: در مورد بار كردن *وابستگی های به جا مانده از قبل هزارد هستند *نمی توان با ارسال> (0۳۷۵۲0110 این مسئله را حل کرد؟ *باید دستورالعمل وابسته به بارگذاری را توقف /تاخیر دهیم ‘eg?

صفحه 379:
طراحی یک مسیر داده خط لوله ای شده 224

صفحه 380:
خط لوله ای کردن دستورالعمل بارکردن Cycle 4 { Cycle 5 | ‏6ع0‎ ]6007 j Cycle 1f Cycle 2 f Cycle 3} الا ل ال ال ال ال الا 1 | | | +3 ] ۱ 1 2۰ [ووطوعع[ سد ]س1 ! ‎i‏ ‎i‏ and w[itetch [Reg/Dec] Exec T Mem | wr_] Tfetch [RegDeq] Exec | Mem | Wr 3rd lw * تا واحد نابعی مستقل درا مسیر داده خط لوله ای هستند. ۳ حاقطه دستور العمل برای مر حله راکشنی Rewer (bus A and busB)él 5 ‏خواندن از بانک ثباتی برای‎ - ‘bal ab asl - ALU ‏حافظه داده براى مرحله دسترسى به حافظه‎ + \cneg323-04F TopicO.ppt 382 بر بانک ثباتی برای مرحله ‎Wr (bus W)‏ 224

صفحه 381:
1 cycterfcyele2 | cycte 3} cycle | بال ال ال الا" ‎Rtype[_Ifetch TRegDecf_ Exec [ 3: [‏ *واکشی:واکشی دستورالعمل - واکشی دستورالعمل از حافظه دستورالعمل - جديد كردن )م ‎٠‏ وواکشی نباتها و کد برداری دسترالعمل ها ‎dee: Exec *‏ کردن لا ابر روی ۵ تا ثبات عملوند ۷/۷/۳۰ نویسی خروجی ا الربر روی بانک تباتی 224 \cneg323-04F TopicO.ppt ‏دود‎

صفحه 382:
کردن دستورالعمل های ‎LoadsR-type‏ | وعلءن | قعلمن | تعلءت | وعهو] کمهی | 4 ‎cycte 1] cycte2 | cycte 3! Cycle‏ 1 Clock ype [i Tego tee we ‎see [We‏ سوت سس مومع ‎ ‎eo ‎ ‎ ‎۱775۲ ag ‎ ‎ ‎ ‎ ‎Repe[ tech [Reged] Eee We ‎ ‏ما در خط لوله ای تضاد دار ‎po‏ دلمتور العمزل ملعی درا نواشتن در بانک تباتیل به صورات همزمان دارند! نوشتن یک پورت ‎ ‎ ‎224 04F Topico.ppt 224 ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎

صفحه 383:
مشاهدات مهم واحد کاری تنها یک بار برای هر دستورالعمل می تواند استفاده شود هر واحد کاری باید در همان مرحله برای همه دستورالعمل ها استفاده شود: در دستورالعمل ‎Load‏ نوشتن در بانک ثباتی در مرحله پنجم انجام می شود 5 4 3 2 1 ‎Load Lifetch [Reg/Dec] Exec [ Mem [ wr]‏ - در دستور العملسمر-) نوشتن در بانک ثباتی در مرحله چهارم انجام می شود 4 3 2 1 R-type[_iferch ] رلم حلبرلیه زارد خط لوله لعوجود دارد 6 224 \cneg323-04F TopicO.ppt 385

صفحه 384:
Retype Liferch TRegDe]_Exec [wr Load [ifetch [RegDed] Exec | Mem | wr Retype [Hfetch [RegDec] Exec Retype Retype Pipeline - از دست دادن واکشی دستورالعمل و فرصت انتشار, »هيج پستور العملی در چرخه 0 شرو جع نمی 224

صفحه 385:
‎AR Ape Gli os res Ua oly‏ وسیله یک چرخه ‏1 تأ خير نوشتن جمر-)به وسيله يك جرخه ‏- حال می توان نوشتن دستورالعمل های 8-۷06 را در مرحله ينجم تلجام داد ‏- امرحله دستیابی بم حافظه یک مرحله بلااستتفاده الست:هیچ چیزی در آنجا انجام ثفل شوز ‎ ‎1 2 3 4 5 R-type[_Hfetch [Reg/Dec] | Exec || Mem [| wr ‎ ‎ ‎ ‎ ‎{ Cycle 1} Cycle2 | Cycle 34 Cycle 4 | Cycle 5 | Cycle 6 {Cycle7 {Cycle 8 |Cycle9 ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎Clock 1 i | | ‎ ‎ ‎Retype[_Ifetch PRegDec] Exec | Mem | Wr ‎ ‎ ‎ ‎ ‎Retype [fetch [RegDec] Exec | Mem | Wr ‎ ‎ ‎ ‎Load [ifetch [Reg/Dec] Exec [| Mem | wr ‎ ‎ ‎ ‎Retype[_Ifetch [RegDec] Exec | Mem | wr ‎ ‎ ‎R-type[_Ifetch [RegDec] Exec | Mem | wr ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎

صفحه 386:
instruction] Memory Address ۳ wes Write back

صفحه 387:
4 نسخه خط لوله ای شده مسیر داده 9 مره out Data Memory Data : eH Sl. 0 ‏أسهام ام‎ ٍ : Gud هر Registers tb pee تا مرج | Address linstruction| ‘Memory

صفحه 388:
pst rena nen we Dat out Data Memory Data Fe ac اصررد ex 3 جله لولة دلت ‎is‏ اس 5 Registers ‘Address linstruction| ‘Memory, 2 yt دن IF

صفحه 389:
2255 Data Memory Data bus busa| { Sign! 3 مط أت ات ۴ 3 @ poi pst 1 8 ۴ we ve هرد 9 مع دهت ات جالع ولك توا دن

صفحه 390:
2 ven swe :سومین مرحله لوله دستورالعمل ۳2ن mex even add Registers 5 bust | me ‏کر‎ ‎0 lacie, Datel w x| bam 5 Data Hy Memory a} = ‏م ات‎ ‏ات‎ : 1 add address linstruction| Memory | 4

صفحه 391:
۷۸ چهارمین‌مرحله ل وله | . دستوراهمليا "دن ۱ | | ره اصرره اجه م ‎[oat‏ ‏4 PG address ۳ ‏اسر‎ ‎= busi 1 linstruction| buss| ‘Memory

صفحه 392:
مره out Data Memory Data هبرع ا ا Registers busa| busa| : a = 6 10 نكن | مدع — Address linstruction| ‘Memory,

صفحه 393:
wen swe placer. Os ‏نك‎ ‎Data ‎Memory ‎Data Gx.) Iwiex buss ‏تعبط‎ ‘Sign! fexten Registers 000 ia) pos psa ۱۳۳ ملم Iinstruction| | ‘Memory

صفحه 394:
لو ع R-typeJod | gins alg ‏(:دومین‌مرحله‎ Registers. uss| لس تمد بر مه اس 3 = مت ‎oie‏ ps

صفحه 395:
6 :سومین‌مرحله لوله دستورا لمل06 ‎٩-۲۷‏ 32 3 registers Pot] address 5 wea) fs ‏سار هه‎ ‏هچ یرل لت ۵ اد رز یه‎ Memory Y Data (3) ag

صفحه 396:
Gres) :چهارمین‌مرحله لوله دستورالمل»0 ا Registers linstruction| | R-ty POY address

صفحه 397:
Data Memory Data usa] busa| 5 ‏اه‎ {bust 5) pot) pst a ‏دع‎ ‎1 ‎3 ‎2 add + ۵ ره هرد هر HD

صفحه 398:
یک مثال برای روشن شدن خط لوله * از زمانی که بیشتر دستورالعمل ها باهم در یک مسر داده تک چرخه ای اجرا می شوند.این می تواند برای درک کردن مشکل باشد * دنبال کردن کد زیر یک آزمون خواهد بود. Iw $10, 20($1) sub $11, $2, $3 Time (clock cycles) و وج Iw $10,20($1) sub $11,$2,$3 موه 214 400

صفحه 399:
ve Data Memory Data $y 65 ‏ا‎ 3 1 Registers usa busa| b ‏اناس لس‎ جر hi $10, 20(81) Instruction fetch تسس | | | ‎le‏

صفحه 400:
CHIE at Data Memory ata pyaar: ۳ Instruction fetch 3 sub $11, $2, $3,

صفحه 401:
ِ 1 2 ۱ I 3 ‏ةو‎ ‎5 f a 11 9۶ ‏وج‎ ‎۳ 11 أ Registers uss ‏قط‎ 6 < ۶ | 5 SESE Le 2 linstructios Memory ‘Address

صفحه 402:
ع Memory

صفحه 403:
عع gst Loew مدوم ‎linstruction|‏ ‎‘Memory.‏ i We 0 املع wie lw $10, 20(61! sub $14, $2, $3

صفحه 404:
خلاسهتخطظا لوله آف کردن کچ چبزی آن را آسان مل ستازوو هید دستورالعصل هایی که طول یکسان اارند فقطیک تعداد کمی از قالب های دستورالعمل عملوندهای حافظه تنها در بارکردن و ذخیره سازی ظاهر می شوند «چه چبلیآن را تحت می سالو هزاردهای سختاری:فرض کنید ما فقظ یک جافظه داریم هزاردهای کنترلی:ما بابد بگران دستورالعمل های انشعاب باشیم هزازدهای دادم آی-یک پستورالعمل وابسته به «ستورالعمل های قبلن اس ‎tas‏ لوله ای کردن یک مقهوم بتيادى اسح ‏چندین مرحله انستفاده هی شود برأى جدا كردن مزاخل “بردازشكرهاق جديد واقعا آن زا ‎TES Ga esa‏ ‏اتستثنا كردانى ‏سعی کردن برای افزايش کارایی با یک اجرای نادرست و... ‏406 ام هام۲9 922.00۴ وم 24

صفحه 405:
کنترل مسیر داده خط لوله ای شده

صفحه 406:

صفحه 407:
فراخوانی:بیتهای کنترلی لاا۸ 0 oa na te Cae opcode ALUop __ operation ۵ ee ed load word XXXXXX_| add store word XXXXXX | add branch equal _| XXXXXX_| subtract add 100000 | add subtract 100010 | subtract AND 100100 | and OR 100101 _| or setoniess than | 101010 _| seton less than opcode

صفحه 408:
برای 3 مرجله آخر خط عب كت ‎mye x) MEM‏ مدع

صفحه 409:
کته تا مسير داده خط لوله ای شده با سیگنال های کنترلی

صفحه 410:
*اجازه بدهید بببنیم چه اتفاقی برای این اخظ لوله درابرناطه زیر می اقتد )20($1 ,$10 ‎lw‏ ‎sub $11, $2, $3‏ ‎and $12, $4, $5‏ ‎or $13, $6, $7‏ ‎add $14, $8, $9‏ این کد هیچ هزارد داده ای ,ساختاری و کنترلی ندارد 412 ممم امه5م323-04وممع 224

صفحه 411:
413 \epe9323-04F Topico bot مد قال صم 09 IF: hw $10,20(61)

صفحه 412:
aia \cpea323-04F\Topico pot 24 20 9 on 001 u —"e 1D: Iw $10,20(61) IF: sub $11,42,83,

صفحه 413:
Clock 3 24 \epea323-04F\Topico.pot ‏كله‎

صفحه 414:
5 \cpea323-04F\Topico pot 111 MEM: iw $10,20(61) | ‘MEM i & $2.83 ۳ 10 ex $5 1D: and $12,44, مدع 467 TF: oF $13,

صفحه 415:
[0 pot مد ربو MEM: sub $11,62,43,_{WB: hw $10 EX: and $12,44,85 $6.87 1D: or $13, TF add $14,589

صفحه 416:
هزاردهای داده ای * مثال قبل یه ما نشان می دهد که دستورالعمل های مستقل که از نتایج آنها در دسنورات قبل استفاده نمی شود چطور اجرا شده اند. *اين یک نمونه با برنامه های واقعی نیست. *اجازه دهید کدهای مرتب زیر زا دنبال کنیم. ‎sub $2, $1, $3‏ ‎and $12, $2, $5‏ ‎or $13, $6, $2‏ ‎add $14, $2, $2‏ ‎sw $15, 100($2)‏ * 4 دستور آخر همگی به ثبات 25وابسته اند که در دستور اول تولید می شود. * فرض کنید ثبات 25مقدار 10 را قبل از عمل تفریق دارد و مقدار 20 را بعد از آن دارد. 00 ام هام۲9 922.00۴ وم 24

صفحه 417:
هزاردهای داده ای 680 8۵ Bes The value of $2: 10 10 10 10 10/20 -20 20 20 2 sub $2, $1, $3 and $12, $2, $5 or $13, $6, $2 add $14, $2, $2 sw $15, 100($2) وه ‎\cneg323-04F Topicd.ppt‏ 4رد

صفحه 418:
هزاردهای داده ای رآ حل ساده ‏ کامپایلر هچ دشتورالعجلی را بین دستورالعمل های تناو 0وارد نمی کند * هیچ یک از این دو دستورالعمل نه داده ای را تعریف می کنند و نه نتیجه ای را مى نویسند. $3 ,$1 ,$2 ‎sub‏ nop nop and $12, $2, $5 or $13, $6, $2 add $14, $2, $2 sw $15, 100($2) ‏*نتیجه : این کار انجام می شود اما 2 چرخه ساعت به هدر می‎ (ub wo ‏رود (کارایی کاهش‎ 420 ممم امه5م323-04وممع 224

صفحه 419:
کشف هزاردهای داده ای و ارسال(۲۵۳۸/۵0۱۳9) که هزارد داده ای کشف شود و سپس مقدار منا ۱ براى حل هزارد ارسال لظ ك0 0 5 ‎a‏ ‎ilo sO‏ که یک دستورالعمل سعر كند یک ثبات را در مرحله۲] بخواند رای وک تور سس مى كت ‎pa alae ett‏ ‏این یک نمونه هست بين دستورالعمل های 9-۵00لاکزیر: ‎ ‎and $12, $2, $5 ‏* این هزارد می تواند کشف شود به وسيله يك جك كردن ساده ‎EX/MEM.RegisterRd = ID/EX.RegisterRs = $2‏ ‎214 \cpeg322-04F TopicO.ppt az

صفحه 420:
کشف هزاردهای داده ‎9S‏ ‏ارسال(۲۵۳۸/۵0۱۳۴9) *هزارد دیگر است بین دستور العمل های 08 58 sub $2, $1, $3 [Im ‏ات‎ 1 Dm Reg| and $12, $2, $5 | iz e Dm | bes or $13, $6, $2 1 ۳ Reg] : Din ‏هرا‎ »اين هزارد مى تواند كشف شود به وسيله يك جك كردن ساده ‎MEM/WB.RegisterRd = ID/EX.RegisterRt = $2‏ * هزارد داده ای بین دستورالعمل های 5۱0-200 و 50-5۷۷ وجود ندارد 224 \cpeg323-04F Topico.ppt a2

صفحه 421:
خلاصه ای از وضعیت ‎sb‏ هزارد داده ای ID/EX.RegisterRs ID/EX.RegisterRt ID/EX.RegisterRs d/= ID/EX.RegisterRt EX/MEM.RegisterRd EX/MEM.RegisterRd MEM/WB.RegisterRd MEM/WB.RegisterR« This actually refers to destination field of an instruction. It is rd filed in R-type instructions and rt field in T-type instructions. Mux in the EX stage chooses the correct one, therefore, EX/MEM and MEM/WB pipeline registers store this information as a rd filed (EX/MEM.RegisterRd_and MEM/WB.RegisterRd). Since some of the instructions (i.e. w, bea) do not write to register file, the above policy is inaccurate. Consider the following code sequence: cw $1, 100085) EX/MEM.RegisterRd = ID/EX.RegisterRs add $3,61) $2 ۲ ‏ماد و‎ This problem can be solved simply by checking RegWr signal. \cpeg322-04F Topico.ppt ‏دوه‎ ta. ib. 2a. 2b. 4رد

صفحه 422:
خلاصه ای از وضعیت های هزارد داده ای | چه اتفاقی می اقتد اگر05به عنوان ثبات مقصد استفاده شود؟ هیچ مقدار صفری ارسال نشود #بتانراین کشف فزارد باید به صورت زیر دتلال شود ‎1EX hazard‏ ‎if (EX/MEM.RegWr‏ ‎and (EX/MEM.RegisterRd = 0)‏ ‎and (EX/MEM.RegisterRd = ID/EX.RegisterRs)) ForwardA=10‏ ‎if (EX/MEM.RegWr‏ ‎and (EX/MEM.RegisterRd = 0)‏ ‎and (EX/MEM.RegisterRd = ID/EX.RegisterRt)) ForwardB=10‏ ‎:MEM hazard‏ ‎if (MEM/WB.RegWr‏ ‎and (MEM/WB.RegisterRd = 0)‏ ‎and (MEM/WB.RegisterRd = ID/EX.RegisterRs)) ForwardA=10‏ ‎if (MEM/WB.RegWr‏ ‎and (MEM/WB.RegisterRd = 0)‏ ‎and (MEM/WB.RegisterRd = ID/EX.RegisterRt)) ForwardB=10‏ 24 \epe9323-04F\Topico ppt 424

صفحه 423:
(ملاحظه کنید ترتیب زیر را : ‎add $1, $1, $2‏ add $1, $1, $3 add $1, $1, $4 در اين نمونه .نتيجه از مرحله ۱۸۴۱۷ ارسال شده برای اینکه نتیجه در مرجله/142۱ فوته أ قينا خبلی اس تلبت بع نتیجه در طرطه ۰۷/۵ ‎:=MEM hazard‏ if (MEM/WB.RegWr and (MEM/WB.RegisterRd = 0) and (MEM/WB.RegisterRd = ID/EX.RegisterRs)) ForwardA=10. if (MEM/WB.RegWr and (MEM/WB.RegisterRd = 0) and (MEM/WB.RegisterRd = ID/EX.RegisterRt)) ForwardB=10. and (EX/MEM.RegisterRd = ID/EX.RegisterRs) and (EX/MEM.RegisterRd = ID/EX.RegisterRt) 425 ام هام۲9 922.00۴ وم 24

صفحه 424:
مسیر داده خط ‎sl alg)‏ شده ب ‎(Forwarding) Jlw |‏ pie + apne (contet} ‏ب‎ “4 re 8 ۳ 10 2 ۱ ۵ Registers 0 Instr. Le ‏ل‎ ۳ 7 Data 1 Ht ‏م‎ 5 ‏عق | هدوز‎ ۲ ‏رطع‎ | [ret =| IF/ID.RegisterRt |] Rt] 8 ‏اس لها‎ 2 ۷ IE/TD Registered || Fal 9 ‏انس‎ ۳ wn

صفحه 425:
هزاردهای داده ای و توقف Time (in clock cycles) Program ‘execution order (ininstructions) CCl CC2 C3 ccd ccs 666 ‏عه‎ 68 © Forwarding does not solve lw $2, 20($1) | Tam ۳3 Di ‏ار ری ناماس‎ hazard detection unit. . instruction needs to and $4, $2, $5 Im ۳ 8] | be stalled one cycle. or $8, $2, $6 Im 6| ‏مد‎ 5 add $9, $4, $2 1۳ eal | |) Dinh HRed| sit $1, $6, $7 tin } HReg| Din} HReg| 4F Topico.ppt 427 2204

صفحه 426:
کشف هزارد | * کتترل برای کشف هزارد if (ID/EX.MemRdsuwly oS jLitod | gins Sh, Sz and vit ((ID/EX.RegisterRt = IF/ID.RegisterRs) or (ID/EX.RegisterRt = IF/ID.RegisterRt))) : سپس توقف خط لوله 42 ممم امه5م323-04وممع 224

صفحه 427:
0 ‏ما‎ ‎o ‎7 ‎G ‎2. ‎i ‎5 0 fReg| وده cco ccs cc? ۳ ccs Dm| Im ‎Reg|‏ لا سر ‎[Bubble‏ ‎ccl occ2 ‏4ع مق‎ 665 ‎1 3 DinkHReg| ‎Reg]‏ | ومع لا صر ‎\ pale lige ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎and and or instructions repeat in CC4 what they did in CC3 ‎\cneg323-04F\Topic0.ppt ‎ ‎ ‎Time (in clock cycles) ‎Program ‎execution order (in instructions) ‎lw $2, 20($1) ‎ ‎and $4, $2, $5 ‎oF $8, $2, $6 ‎add $9, $4, $2 ‎sit $1, $6, $7 ‎12284 ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎

صفحه 428:
مسیر داده خط لوله ای شده با(۴۵۲۷۷۵۲۵۱۳9)ارسال و واحد کشف هزارد Instr. Memory] Powite

صفحه 429:
Time (in clock cycles) Program execution order (invinstructions) 60 cc2 ‏عه‎ cea Sees css 69 Adar, Instr 40 beq $1, $3, 7 fReg| DinfteHReg| 44 and $12, $2, $5 In ۳۹ mal eg} 3 ۳۹ 48 $13, $6, $2 2 200 514, 32, 5 72. Iw $4, (50)$7 ۳ ‘Actually, the number of instructions needs to be flushed can be reduced from 3 to 1 instruction (shown in the following slide) when the direction of branch is mispredicted,

صفحه 430:
IHW dus) elle ish bald pate کردن قسمتی از حافظه خط لوله) سوه 10 IF-Flush

صفحه 431:
9 St

صفحه 432:
1008 190000006 190090090005 (0s 520) Ts STORE GOsms) Gs Ks Ms AF Topico.ppt 224

صفحه 433:
مشخصات برنامه ها و سبازنماندهی حافظه تجزيه و تحليل 16112 در برابر دستيابى ترتيبى: * در مقایسه کارایی برهزینه و تکنولوژی 8 همجواری در الگوهای دسترسی به جافظله © سلسله مراتب در طراحی حافظه * حافظه نهان * حافظه مجازی 435 ممم امه5م323-04وممع 224

صفحه 434:
سلولهاى حافظه ثبات خاده گذرگاه حافظه مل ] (به با از پردازشکر) ‎asl or 0‏ 1 2 3 ساختار حافظه با دستیابی تصادفی 1۸79 ‎N-2|‏ ‎NI‏ ‏آدرسها نکته‌:دارای زمان دستیابی ثابت ممم امه5م323-04وممع 224

صفحه 435:
کارایی حافظه پهنای باند - تعداد بیتها بر ثانیه "که می توانند در دسترس قرار گیرند" که بای رااست با ‎(bit/word) x (word/cycle) x (cycle/sec)‏ بتابراینابهنبود بای اباند؟ "گلوگاه ون نیومن * 437 ممم امه5م323-04وممع 224

صفحه 436:
چگونه می توان کارایی سیستم حافظه را بهبود بخشید کاهش مدت چرخه افزایش اندازه کلمه #همزمانی #طراحی کارآمد حافظه 438 ممم امه5م323-04وممع 224

صفحه 437:
پیشرقتها در تکنولویی مدارات مجتمع نه فقط متاثر از ]۳۵1۷ ‎ls SRAM ah ls‏ هرینه حافظه نهان را سیار کاهش داده اند. حافظه های نهان یکی از ایده های بسیار مهم در معماری کامپیوتر هستند زیرا آنها می توانند کارایی استفاده از حافظه را به طور اساسی بهبود ‎all‏ افزليش شکاف بین زمان چرخه ]12۳1۷ و زمان چرخه پردازنده. که در شکل بعد نمایش داده شنده است. یک انگیزه برای ایجاذ حاقظه نهان است. اگر ما بر آنیم که پردازنده ها با سرعتی که توانلیی ی را| دارند اجرا شوند. ما باید جافظه هایی با سرعت بیشتر بای افراهم نمودان داده داشته باشیم: {Joupi & Hennessy 91] 440 ام هام۲9 922.00۴ وم 24

صفحه 438:
«صلان 7 6176/۰ 6/0) @ocessvr-Orwory @erforwoave Gap: (grows GDh | year) DRED سرام( ۰ همع (dye) 224

صفحه 439:
ano 402 Qvvessor, Oewory مستت ‎dea‏ ‏عدص عه سا0 مم0 6م0470 ao? ao? a مع oF میم سر نها

صفحه 440:
443 04F Topico.ppt \epea32 224 FHE-WAEE ime [CPU Clock Period (ns) [i Memory System Access Ti XAxis 1999 1997 ‎(DO 4 Maer‏ ريصي و و و و ه ۶ 5 5 5 ‏زمان دستیابی به حافظه ‎ ‎ ‎° ‎8 ‎(a) au, ‎500 ‎ ‎ ‏در یک سیستم واحد

صفحه 441:
*مراجع برنامه تمایل دارند که به موقع در كنار هم قرار بگیرند, ” 224 \cneg323-04F TopicO.ppt aaa

صفحه 442:
مکانهابی با احتما ل دستیابی بالا (زمان کوتاه) 4 همجوارى 720 4 قاب يشته (محلى( @ نزدیک زیر روال ها @ داده های فعال 485 ممم امه5م323-04وممع 224

صفحه 443:
احتمال ارجاع آدرس ارجاع 224 \cpea323-04F\Topico.pot

صفحه 444:
1 مشکل: اغلب پیش بینی یک 5176 0206 می شود که بزرگتر ازاندازه مورد نیاز باشد. ‎\eneg343-04F Topco pot‏ 224 آدرس ارجاع دمر

صفحه 445:
فقیت حافظه های نهان که قبلا تشریح شد برگرفته از "خاصیت همجواری " است. خاصیت هجوارى داراى دو جنبه است. ‎Spatial , temporal‏ ر دوره ‎cla‏ كوتاه زملني: یک برنامه ارجاعها به حافظه خود راء.به صورتث غير يكتواخت ادر قضاى ادرس حود كسترضل ملى ‎‘Gat‏ كه لين بخشهاى فضاى آدرس در دوره هاى زملنى طولانى به صورت كسترده يكنواخت باقى ميل مانتد. 03 ام هام۲9 922.00۴ وم 24

صفحه 446:
اولین خاصیت, معروف به همجواری موقتی: با همجواری زمانی: به این محتی است که: اطلاعاتی که در آینده نزدیک مورد نیازند احتمالاً هم اکنون در حال استفاده اند. این نوع رفتار می تواند از حلقه های برنامه که هر دوی داده و دستورالعمل مجدداً استفاده میل شونده انتظار رود مه ممم امه5م323-04وممع 224

صفحه 447:
دومین خاصیت. همجواری مكانى؛ به اين معنى است که بخشهایی از فضای آدرس که دراحال استفاده اند معمولاً شامل| یک تعدادی از بخشهای همجوار یکتا از فضای آدزس می باشد. همجواری مکانی: سچس به این محتادست که مجل ارجاع برنامه در آیتده نزدیک؛ احتمالاً نزدیک محل ازجاع فقلی انبت 450 ام هام۲9 922.00۴ وم 24

صفحه 448:
[Smiths2, p475] این انوع رفتار با آگاهی بعمولی از برناسه ها آموراد انتظاز تساه بخشهای وایسته- داده (متفیرهاء آرلیه ها) مهمولا با یکن‌یگر خلخیره ملیشونا» و دسلتولات بیش تر یه جورات. رتیبی اجرا می شوند. تا زمانیکه حافظه نهان سگمنتهای اطلاعانی را که اخیرً استفاده شده لند.میانگیر (در خود نگهداری)می کند.خاصیت همجواری آشاره دارد به اینکه اطلاعات مورد نیاز احتمالاً در حافظه نهان یافت می شود. 24 ‏ام هام۲9 922.00۴ وم‎ asi

صفحه 449:
اطلاعاتی که در آینده نردیک مورد نیازند احتمالاً شامل اطلاعات رایجی هستند که هم اکتون در حال استفاده اند. (۲۱۳۳6 ۵۱ (۱۵631/۸) و آن اطلاعاتی که همجواری منطقیدآرند و به طور جاری مورد استفاده اند ‎(locality by space)‏ 452 ام هام۲9 922.00۴ وم 24

صفحه 450:
مقدمه ای بر طراحی علووم (نوعي حافظه ميانجي که سرعت دستيابي به اطلاعات آن بالا است ) 224 \cneg323-04F TopicO.ppt 453

صفحه 451:
6 حافظه نها مکانی امن برای پنهان سازی و دخیره سازی. Webster Dictionary 224

صفحه 452:
6 حافظه نها #حتی با وجود ظرفیت 21۱6 هنوزتقریباً همه لا0ها شدیدا به وسیله زمان دستیابی 66116 محدود شده اند. در بسیاری از گونه هاء هرچند زمان دستیابی 6۵66 کاهش داده شده باشد ماشین نیز باید تسریع شود. ‎-Alan Smith-‏ !'Even more so for MPs 455 ممم امه5م323-04وممع 224

صفحه 453:
#الكوهايى كه مى توانند طراحى حافظه ‎cache‏ ‏حاضرراشكست دهندء باعث افزايش كارايى حافظه 6 شدهءوبراى هر برنامه يا باركارى واقعاً محاسبات مفیدی انجام دهد. 456 ممم امه5م323-04وممع 224

صفحه 454:
بهینه کردن طراحی حافظه مجلری,به طور گسترده که دارای ‎P‏ جنبه است: ‏به حد اعلی رساندن احتمال یافتن یک مرجع حافظه در حلسم( نسبت برخورد ) ‏به حداقل رساندن زمان دستیابی به اطلاعاتی که در ام وجود دارند( زمان دستیابی ) ‏به حداقل رساندن تأخیر به علت یک خطا و ‏به حداقل رساندن هزینه های ناشی از به روز کردن حافظه اصلینگهدار ی 6016۲۵66 62606 و غیره. ‏ام هام۲9 922.00۴ وم 24

صفحه 455:
فاکتورهای کلیدی در تصمیم طراحی ‎Curkeus!y:‏ 4 (60)(حافظه مجازی) زمان دستیابی حافظه اصلی زمان دستیابی 86 = 4 ~ 20 کنترل080186 معمولاً در سخت افزار اجرا می شوند 224 ‏ممم امه5م323-04وممع‎ ase

صفحه 456:
فن آوری درع1990: Oewory ‏آمهام۲۷]| بو واهیه۱۳۲‎ Guess Nowe $ per Obyie 000 00265 910۳10 ORBD 91706055 10۳00 QDaysetic disk IQGBNALD- ANGINGLHDas 3s فن آورى در ‎$2OODs:‏ 19323-04F Toplc0.ppt 122824

صفحه 457:
$ per Obyie 40 oad ۳00-000 فنآوری در <00000: ع( 222۶۶ آم۱ 1۷۲ ‎AO‏ ‏060 ‏5000۵۰۶ - 50100000۵ \cneg323-04F\Topic0.ppt \Oewory Tevkuvloyy GROO, OROO QDOayoetio disk 122824

صفحه 458:
حافظه اصلی ‎Cache‏ پردازشگر 224 \cneg323-04F TopicO.ppt 461

صفحه 459:
‎Disk seek time‏ سوت ‎DRAM access time‏ ®— ‎SRAM access tim‏ سب ‎CPU cycle time‏ > ‎ ‎ ‎2000 ‎ ‎ ‎The CPU-Memory Gap ‎The increasing gap between DRAM, disk, and CPU ‎1995 ‎4F Topico.ppt ‎ ‎ ‎1990 ‎year ‏وعم ‎1985 ‎980 ‎1 ‎speeds. ‎100,000,000. ‎10,000,000 ‎41,000,000: ‎100,000 ‎2 10,0004 4,000 ‎100 ‎10 ‎1 ‎ ‎224 ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎

صفحه 460:
چهار سوأل برای دسته بندی سلسله ‎Gil‏ حاقظة قاعده کلی و اساسی که گرداننده همه سلسله مراتب های حافظه است ج ها اجازه ی دهد از لشرایطی که باعف برتری یافتن نسبت به سطوحی که در موردشان سخن گفتيم استفاده کنیم: این قواعد یکسان به ما اجازه طرح چهار سول درباره هر سطح از سلسله مراتب را می دهد: 463 ام هام۲9 922.00۴ وم 24

صفحه 461:
چهار سوأل برای دسته بندی سلسله مراتب حافظه ‎oil ga‏ كجا يكل بلاكل می تواتد دز سطح بالاترای اقرارا بگیرد؟ (مکان بلاک) ‏سل 2:چگوته وقتما یک لاک در اسطم بالاتری قراز دار( شناخته می شود؟(هویت بلاک) ‏سل 3 كدام جلاک ی تواند دريك فعدان جابكرين شود (جایگذاری بلاک) ‏س4:در نوشتن چه روی می دهد؟ (استراتژی نوشتن) ‏46 ممم امه5م323-04وممع 224

صفحه 462:
0 1 89 9 6 6 8 f° TOGO 0261© Marex GS, ۵, 96, 90, 86, , 8, 0406© POCOK ad, Od, 68, 68, 25606616 7d, PO, FF, SO,.. 66:1 ۳ ۵0267 دورس 1 01173 30 داده ها آدرس cache hit cache ‏مفهوم 5کنحط‎ 24 \cpea323-04F\Topico.pot 406

صفحه 463:
2606 ‏:زمان‌دستیابی‌موءتر‎ Ct مدع ‎Cach@subiwoyloj:‏ ‎t‏ :زمان‌دستیابی‌حافظه اصلی ‎A‏ :ن سبتب رخورد(موءف قیبک ‎fo = ‏میم‎ + (I-A) bmain ‏46 ممم امه5م323-04وممع 224

صفحه 464:
Let 10 ‏5م‎ - 1 - 4 clock cyclest..-he 50 ۲5 - 8 - 32 clock cycles¢,,.,, < 095 x 0.95 + 50 x 0.05 10 12 =2.5 |+ 9.5 \cpea323-04F\Topico.pot 224

صفحه 465:
نسبت برخورد(یا موءفقیت) #نیاز به نیروی کافی برای رسیدن به سطح کارایی دلخواه دارد(52۷<9096) #وسعت بخشی به اثرات و نتایج تغییرات #هرگز ثبات دائمی ‎grils sly wo‏ های مشابه ندارد 49 ممم امه5م323-04وممع 224

صفحه 466:
w.r.th (hit ratio) sal ls ‏حساسیت‎ =ht. feache| + | (4-H) thainter ‏معد‎ ‎Bache [ ‏]مب‎ + (I-A) ۶ tacts It, 1 ‘cache cache | 2 + (1-A) since 10, the magnifactor of h changes is 10 times نتیجه:خیلی حساس 224 ممم امه5م323-04وممع

صفحه 467:
0.95( 4 then ‏عم‎ tache (1 + 0.5) feache 224 \cneg323-04F TopicO.ppt an

صفحه 468:
اصطلاحات بنیادی che line (block) - size of a room "یک مجموعه از داده های همجوار که ‎words‏ 16 ~ 1 جه عتوان يك نهد ذخیره بسازی ‎cache‏ ‏مورد بحث واقع شده أند- @€ache directory - key of rooms از 6860156 که کلیدهای دستیایی ‎yeti cere‏ بيشدل كردن 2 گس سل دلشته نگهداری می کنند 2 472 ام هام۲9 922.00۴ وم 24

صفحه 469:
cache ‏دهی‎ 4کاملاً متحد: می تواند یک عنصر درهر بلاک باشد #مسیر دهل بی واسطه و مستقیم: می وآند یک عنضر فقط دریگ بلاکا بابفدا چیدمان و قرارگیری پیوسته: می تواند یک عنصر ارگروهیآزابلاک ها باشاد 473 ممم امه5م323-04وممع 224

صفحه 470:
* هربلاک در حافظه می تواند در هر 78۳06]-10016حدر 6 باشد * تمام ورودی های الگوی بلاک (۳2۴06 10016ظ)باهم مقایسه می شوند(به وسیله جستجوی پیوسته) ام هام۲9 922.00۴ وم 224

صفحه 471:
بسیار انعطاف" وبا اجتمال بالا یه منظور ساکن شدن در 080106 ‎cpa‏ بدون اتلاف (با قابلیت سازمان دهی سریع) ‎a word‏ = ساده ترین مثال: یک بلاک ‎ ‏معایب:56۵۳6 55061311۷6 01 ۵ ‏هزینه+ زمان ‏ام هام۲9 922.00۴ وم ‎0 17 ‎ ‎17 ‎ ‎Address ‎-— 027560 ‎0 ‎Cache ‎ ‎62/7560 ‎ ‎224 ‎ ‎ ‎ ‎ ‎ ‎

صفحه 472:
Block 0 E Block 1 Cag] ۳ Bléck 0 Cag ‏م‎ ‎Blgck 1 : Block I ‏]وس‎ ea eS : Blogk 127 Block 16382 3 ‏وا‎ 3 _— 14 4 lel aus (21 tag ‘word یدآوری: هر بلاک 48 کلمه دارد ان کاملاً پیوسته 0806 امم 0 ءامد 9[ 24

صفحه 473:
#بدون پیوند پیوسته از آدرس۱ حافظه"به طور مستقیم"برای قاب بلاک در 6 جایی که بلاک باید قرار بگیرد شاخص دار شده. ۸۵ comparison then is to used to determine if .it is a miss or hit 224 ‏ممم امه5م323-04وممع‎ ar

صفحه 474:
ساده ترین امتیاز: سریع(با منطق کمتر) هزینه کم‌ناز ال رو فقط یک دستگاه مقایسط کندده لازم است که می تواند در فرم استانداره حافظه قرار گیرد 00 ممم امه5م323-04وممع 224

صفحه 475:
زمانی که 6966 فقط 4860 الگوی قاب دارد در نتیجه درجه تسهیم چنین می باشد: ۱ ‎(block) 97 nlock/frame‏ ___ 16384 __اندازه اه اصلیم( و ‎Gene or set of / 128 (27) 128‏ Serie ree oF ; Ahe high-order ah 58 1 (7hitis used | be 0۶ ‏اوتا تعد جد ليك لبوا‎ Pree ‘ag tag. 1 "Disadr: “frashing ام هام۲9 922.00۴ وم 24

صفحه 476:
420 Word حافظه اصلى Block 0 Block 1 Block 2) Block 1 Block 128 Block 129 Block 255 Block 256 Block 257 Block 4095 | Block 4096 1 110017 6 Block \cpea323-04F\Topico.pot Blodk 127 آدرس حافظه اصلی اشت مستقیم 24

صفحه 477:
Mapping block addr mod (# of blocks in cache — in this case: mod (27)) مزیت : مرتبه پایین رو0| ( اندازه866ع )بیت می تواند برای شاخص دار شدن استفاده شود له ممم امه5م323-04وممع 224

صفحه 478:
direct/full-associative co» Bs ‎gslglaus «Cache @‏ 5 تقسیم می‌شود ‎S=2, 4, 8‏ ‎Gti M cache Si@‏ داشته باشد که همه باهم پاشند آنگاه داریم: ‎5 ‏ع‎ blocks/set ‎ ‏# تعداد سباختارهای قابل دسترسی برای شاخص دار کردنٌ ‏482 ام هام۲9 922.00۴ وم 24

صفحه 479:
بسید اند ذر چیدمان‌سسمتو! حافظه اصلی ا--1 1001 Block 63 Block 64, Block 65. Block 4095, 2 ‏لهمت‎ Block 126 et 6: Gag} 7 Block 127 Block 16383 {ola pst 8 6 4 EEE SE Tag Set Word هه ام هام۲9 922.00۴ وم 24

صفحه 480:
2 راه برای قرار گرفتن سازمان پیوسته 8 6 4 2 Set ‘Word dell sling sth ‏شاخص دار كردن‎ thus 20 28 block/set 6 bit used to. 2° block/per set of 2rblocks از اين رو به هم بيوستن هاى 8 بيتى يا علامتهاى © بيتى نياز اسث ۰ ام هام۲9 922.00۴ وم 24

صفحه 481:
tag, word key 0 6-7 13 14 7 7 4 ector block ۰ 0 ‏ع‎ ‎Sevier (DD 660/69( ۰-46 x IO block! sector ‏سکتور:چندین بلاک متوالی‎ * ‏عاب جاده ():جايكرينوسكتور‎ " * بیت صحيح-يك بلاك بنا به درخواست انتقال داده شده +e 425 ام هام۲9 922.00۴ وم 24

صفحه 482:
Block 0 Block 1 Soci E ro Block 15 Block 16 Secto Block 31 8 Sector 3 1 Block 31 / (fag | Block 112 Block 16368 Secto ۱ 3 27 Block 127 oo 11006 16383 3 ‏آدرس حافظه اصلی‎ 10 4 4 Sector Block Word (tag) نگاشت سکتور ‎Cache‏ ممم و۲9 322.00۴ وم 24

صفحه 483:
02۹ 8 sector - I 7 128 block: oyloCache 76 pocksr blocks/sector— 7 ححافظه اصلی دارد 6 نكاشت ام هام۲9 922.00۴ وم sectors 4. 224

صفحه 484:
ESAS pata bur structure of a four-way set-associative cache with N: age MISS \epea323-04F\Topico.pot TAGS ser NUMBER 224

صفحه 485:
Address (showing bit positions) 31 30-29-28 27 16/15 1 13-12 11 10918 70 5 432 bo Byte] sel Tag 20 10 Hit » Thdbx — valid Tag Data Data وه ممم امه5م323-04وممع 224

صفحه 486:
cache ‏ها در‎ cw eli < جمع بینها ‎of bits of a tag #)‏ + ‎of bits of a block #‏ + ‎of bits in valid field) x Cache size #‏ : ۲۱۳5منالی ‎sl»‏ = 64K (bytes, x 2¢ (1 + 32 + (32-14-2))= = 2" blocks wit! x4924= k bits 784 = kbytes 100 ~ كنيد يى نكاشت مستقيم ‎Cache‏ 124 1 c084322-0aF Topico pot 490

صفحه 487:
به روز کردن حافظه اصلی/خط و مشي واکشی به روز کردن : ‎wre writes Y16~8‏ - باز نویسی * یک نوشتن اشتباه شاید ربطی به حافظه اصلی نداشته باشد ۳ + عبور و هرور بيشثر Sly 491 ممم امه5م323-04وممع 224

صفحه 488:
چه طور خواندن/نوشتن رابه کار One-word-line: (DEC 3100) @ ‏#خواندن:آسان است‎ *] آدرس رأ يه 686:6 مناسب یفراستیدا آدرین زا از یکی از اين دو ۵6(برای خواندن یک دستورالعمل) با از لا ا۵(برای دسئیابی داده هاا * اگر سیگنال ‎Cache sl‏ موفق شوند ,کلمه در خواست شده در خطوط داده ها موجود است.اگر که سیگنال های 62006 دچار مشکل شوند. ما آارس کامل را به احاقظه اطلی ‎no‏ فرستیم؛ زمانول که حافظه داده:ها را بر جن گرداندا آن را دز 2۵6116 مي نويسيم ام هام۲9 922.00۴ وم 24

صفحه 489:
:Read Miss is easy to be handled quickly@ " خواندن تگ و خواندن بلاک می تواند باهم انجام شود ##نوشتن معمولاً کندتراست * خواندن تگ و نوشتن بلاک نمی تواند باهم انجام شود ) sl 52 a4 one-word-line caches) دوه ممم امه5م323-04وممع 224

صفحه 490:
:برای خط های چند کلمه ای ‎ona write miss, itis a‏ - تغییردادن - چرخه نوشتن خواندن بلاک اطلمل ایکا بخش توشتن بلاگ مقابسه و سنجش نگ نمی تواند به مواززات آن انجام گیرد در نتیجه انجام آن آهسته تر است موه ممم امه5م323-04وممع 224

صفحه 491:
چرا؟ فرض کنید ,لا در یک ستون بکسان نگاشت شوند و در ابتدای 6۵6۳6 | دا را داریم x] xd xf x4 fy | dvd vd v4 224 \cneg323-04F TopicO.ppt 495

صفحه 492:
اما در پایان یک بازنویسی ۷1,۷2,۲4لابواحم فرض کنید قبل از نوشتن ,8606 در برگیرنده سطور ۲ است,زمانی که ۷ نوشته می شود یک فقدان , و یک نوشته رخ می دهد 2 ۷3 نوشتن Note after write miss, if not careful, we get [y ‏أكدلنونا‎ 496 ممم امه5م323-04وممع 224

صفحه 493:
‎through) @®‏ ۵ 0۲) 6۳09 ۷۷/۲/۵6 - اطلاعانیکه نوشته می‌شود روعهر دو ‎cacheswLy‏ 5 سشطح بایین‌تتر حافظه ‎(also called copy back) @‏ 0301 ۷۷/۸۸۵ - اطلاعاتیکه تنها روعبلاکدر ۵0۳6 رد. 20۳68 غییر بافته رویحافظه اصلی نها زما جایگزین ‏پاک کردن و پر کردن بلاک ‏ایک| بت پر نشان می دهد که آیا یک سطر تا زمانی که در 2006 است تغییر کرده است .موقعی که یک "۱۱۳6 0[۳۵۷"جایگزین شود, باید در حافظه اصلی بازاوینای اشوذ. ‏497 ام هام۲9 922.00۴ وم 24 ‎

صفحه 494:
دو تا گزینه در055 ۷/۲/66 وجود دارند (تخصیص نوشتن (که به آن واكشى به منظور نوشتن هم كفته مى شود)بلاك بار مى شود »به ‎by the write-hit actions above. This is similar toa ul Jue‏ ‎-read miss‏ @No write allocate (also called write around) - The block is modified in the lower level and not loaded into the cache. Think what you do when have a write mis: 498 ام هام۲9 922.00۴ وم 24

صفحه 495:
چه موقع ۲۳۲۳۵0۱191 ۷۷۲6 بهتر ‎d‏ است؟ ‎ ‏(#زمانی که از 6116 در سطحی استفاده می شود ‎GuulSe5S cache 426155) Cpu ‎+ ‏يك تراشه بزرگ ۵66 * سازگاری آسانتر است ‏* به وسیله دومین 8/6 از ترافیک حافظه جلوگیری می شود ‏499 ام هام۲9 922.00۴ وم 24

صفحه 496:
Write-back vs. Write- th 8 ( در حالت‌صومی‌ی از کپی‌یسهتر لس If more than one read hit to the ۴ So attractive to multiprocessor in this sense ® ) cul ig Cache(write-through uj j4@ ‏منطقى()اع3-لإم وعبسيار كامل است)‎ © 500 ام هام۲9 922.00۴ وم 24

صفحه 497:
Cont'd Write-back vs. Write- th fulou ewrite-throughs! @)Buffering® به هردو نیاز دارد؛ در حالی که 00۷-061فقط به یکی نیاز دارد. مدیریت پیچیده است زیرا زمانی که یک ]۲6 ساخته می شود باید با 7۲6۲ همراه باشد #قابلیت اطمینان(0] ۱9 1۱۳0ع-۷۲3۴6۵بهتر است) برای اينکه حافظه اصلی قابلیت شناسایی خطا را دارد. ب واضحی وجود ندارد " برحسب کارایی 501 ممم امه5م323-04وممع 224

معماري كامپيوتر ( 3واحد درسي تئوري) تهيهكنندهمجتبيپورمحقق 1 \cpeg323-04F\Topic0.ppt 06/15/26 این درس در مورد چیست؟ این درس در مورد ساختار وچگونگی طراحی کامپیوتر های دیجیتالی است .این مطلب معروف به “معماری کامپیوتر” است (که شامل معماری مجموعه دستورالعمل +سازماندهی سخت افزاری می باشد ) . 2 \cpeg323-04F\Topic0.ppt 06/15/26 چرا سازماندهی کامپیوتر را بررسی می کنیم شاید هیچکدام از شما در شرکتهای Intelو یا AMDکار نکرده اید اما . . . کامپیوترهای جاسازی شده طراحی کامپایلر حتی طراحان نرم افزاربا محصوالت این شرکتها در ارتباطند . 3 \cpeg323-04F\Topic0.ppt 06/15/26 طرح كلي درس - 4 بازنگری کلی کارایی مجموعه دستورالعملها محاسبات کامپیوتر ماشینهای تک چرخه ای خط لوله ای سیستمهای حافظه ()RAM , Caches , Virtual Memory سوپر اسکالر ( )Superscalar/VLIWو چند پردازنده ها مباحث دیگر \cpeg323-04F\Topic0.ppt 06/15/26 سرفصل :1رئوس مطالب در معماری و سازماندهی کامپیوتر • یافتن توانایی ارائه اطالعات پایه از معماری و سازماندهی کامپیوتر در جریان طراحی کامل یک کامپیوتر • دریافتن مسئولیتهای حرفه ای و اخالقی یک مهندس کامپیوتر (مخصوصا معمار کامپیوتر) 5 \cpeg323-04F\Topic0.ppt 06/15/26 “معماری” به چه معناست؟ “ فن یا دانش یا ساختمان ...فن یا پرداختن به طراحی و پیاده سازی ساختارها “ ... • Webster 9th New College Dictionary “شامل نقشه ،طراحی ،ساخته و دکوراسیون چگونگی عملکرد “ • American College Dictionary 6 \cpeg323-04F\Topic0.ppt 06/15/26 “معماری کامپیوتر” کلمه ای که توسط Fred Brooksابداع گردید. 7 \cpeg323-04F\Topic0.ppt 06/15/26 ”معماری کامپیوتر“ “معماری کامپیوتر ،یعنی کامپیوتر از دید کاربر” ‏Amdhal et al, (64) - “ما بوسیله معماری ،ساختارواحدهای تشکیل دهنده یک سیستم کامپیوتری را هدفمند می نمائیم ”. ‏Stone, H. (1987) - 8 \cpeg323-04F\Topic0.ppt 06/15/26 ”معماری کامپیوتر“ “معماری یک کامپیوتر عبارتست ازمحیط یا فضای بین ماشین و نرم افزار” Andris PadgesIBM 360/370 Architect 9 \cpeg323-04F\Topic0.ppt 06/15/26 کامپیوتر““ ”معماری کامپیوتر ”معماری ساختار: نظم و ترتیب دادن به بخشهای ثابت (نقشه) سازماندهی :فعل و انفعال پویای این بخشها و مدیریت آنها پیاده سازی:طراحی کردن بلوک بخشهای دارای هدف خاص ارزیابی کارایی :مطالعه رفتار سیستم (decorative )treatment 10 \cpeg323-04F\Topic0.ppt 06/15/26 معماری (از دیدگاه معمار) • پیاده سازی • سازماندهی :منظر سطح باال • سیستم حافظه • ساختار گذرگاه ()bus • طراحی داخلی CPU • سخت افزار • طراحی منطقی • تکنولوژی بسته بندی()packaging • معماری مجموعه دستورالعمل 11 \cpeg323-04F\Topic0.ppt 06/15/26 نکات مهم • به خاطر بسپارید :نکته اینست که بیاموزید چگونه معماری به مفهوم تکنولوژی موجود را ارزیابی کنید. • شناختن روش خیلی مهم است ،اما پایان کار نیست. 12 \cpeg323-04F\Topic0.ppt 06/15/26 مراحل در سازماندهی کامپیوتر • مفهوم ماشینهای چند سطحی • مفاهیم ماشین مجازی 13 \cpeg323-04F\Topic0.ppt 06/15/26 انضباط در معماری • ساختار سخت افزار /نرم افزار 14 • الگوریتم ها و پیاده سازی آنها • انتشار زبان \cpeg323-04F\Topic0.ppt 06/15/26 تصویر بزرگ هر دوی سخت افزار و نرم افزار مرکب از الیه های سلسله مراتبی هستند ،با هر الیه سطح پائینتر جزئیاتی از دید سطح باالتر مخفی می شوند .این اصل تجرید ،روشی است که طراحان سخت افزار و طراحان نرم افزار از عهده پیچیدگی سیستم های کامپیوتری بر آمدند. یک محیط کلیدی بین الیه های انتزاعی معماری مجموعه دستورالعمل است :فضای بین سخت افزار و نرم افزار سطح پائین .این محیط مجازی توان بسیاری در پیاده سازی برای دگرگونی هزینه و کارایی در اجرای یک نرم افزار یکسان است. ‏John L. Hennessy ‏David A. Patterson 15 \cpeg323-04F\Topic0.ppt 06/15/26 عوامل در معماری کامپیوتر Technology Parallelism Applications Computer Architecture: • Instruction Set Design • Machine Organization • Implementation Operating Systems Measurement & Evaluation Programming Languages Interface Design History مجموعه دستورالعملها یک محیط بحرانی software instruction set hardware 06/15/26 \cpeg323-04F\Topic0.ppt 17 مهندسی و معماری کامپیوتر کجاست؟ Application (Netscape) Software Operating System Compiler Assembler (Windows 2K) Hardware Processor Memory I/O system 152 Instruction Set Architecture Datapath & Control Digital Design Circuit Design transistors *هماهنگی بسیاری از الیه های انتزاعی 06/15/26 \cpeg323-04F\Topic0.ppt 18 پنج جزء ترکیب:تشریح شده کامپیوتر Personal Computer Computer Processor Control (“brain”) Datapath (“brawn”) Memory (where programs, data live when running) Devices Input Output Keyboard, Mouse Disk (where programs, data live when not running) Display, Printer 06/15/26 \cpeg323-04F\Topic0.ppt 19 تکنولوژی کامپیوتر: تغییری مهیج • پردازنده • هر یکسال و نیم 2 ،برابر در سرعت(از سال .)1985 کارایی 100برابر ،در دهه گذشته • حافظه • ظرفیت DRAM: 2برابر در هر دو سال(از سال )96 بهبود اندازه 64xدر دهه گذشته • دیسک • ظرفیت2 :برابر در هر سال(از سال )97 • بهبود اندازه 250xدر دهه گذشته 20 \cpeg323-04F\Topic0.ppt 06/15/26 گرایش تکنولوژی :پیچیدگی ریزپردازنده 2X transistors/Chip Every 1.5 to 2.0 years 2برابر ترانزیستور/تراشه هر 1.5تا 2سال“موسوم به قانون مور” 06/15/26 21 \cpeg323-04F\Topic0.ppt Input M ultiplier Input M ultiplicand 32 M ultiplicand R egister 32= >34 sig nE x < <1 32 34 34 32= >34 sig nE x 1 0 34x2 M U X 34 34 M u lti x2 /x1 Arithmetic S u b /A d d 3 4 -b it A L U 2 S h iftA ll LO register (16x2 bits) R esult[LO] LoadHI R esult[H I] 32 Prev 2 2 Booth Encoder H I register (16x2 bits) LO[1] Extra 2 bits 2 "LO [0]" 32 LoadLO 32 به کجا می رویم؟ C on trol L og ic 34 ClearHI Single/multicycle Datapaths L oad M p E N C [2 ] E N C [1 ] E N C [0 ] L O [1 :0 ] 32 1000 CPU “Moore’s Law” Performance This course 100 µProc 60%/yr. (2X/1.5yr) Processor-Memory Performance Gap: (grows 50% / year) 10 DRAM 9%/yr. DRAM (2X/10 yrs) 1 WB 198 2 3 198 4 198 5 198 6 198 7 198 8 198 9 199 0 199 199 2 199 3 199 4 199 5 199 6 199 7 199 8 199 9 200 0 Exec Mem 198 0 198 1 198 IFetchDcd IFetchDcd Exec Mem WB Time IFetch Dcd Exec Mem IFetchDcd WB Exec Mem WB Pipelining C P U I/O 06/15/26 Memory Systems \cpeg323-04F\Topic0.ppt Y O U R 22 Intel 486™ DX CPU Design 1986 – 1989 25 MHz, 33 MHz 1.2 M transistors 1.0 micron 5 stage pipeline Unified 8 KByte code/data cache (write-through) First IA-32 processor capable of executing 1 instruction per clock cycle 06/15/26 \cpeg323-04F\Topic0.ppt 23 Pentium® Processor Design 1989 – 1993 60 MHz, 66 MHz 3.1 M transistors 0.8 micron 5 stage pipeline 8 KByte instruction and 8 KByte data caches (writeback) Branch predictor Pipelined floating point First superscalar IA-32: capable of executing 2 instructions per clock 06/15/26 \cpeg323-04F\Topic0.ppt 24 Pentium® II Processor Design 1995 – 1997 233 MHz, 266 MHz, 300 MHz 7.5 M transistors 0.35 micron 16 KByte L1I, 16 KByte L1D, 512 KByte off-die L2 First compaction of P6 microarchitecture 06/15/26 \cpeg323-04F\Topic0.ppt 25 Pentium® III Processor (Katmai) Introduced: 1999 450 MHz, 500 MHz, 533 MHz, 600MHz 9.5 M transistors 0.25 micron 16 KByte L1I, 16 KByte L1D, 512 KByte offchip L2 Addition of SSE instructions. SSE: Intel Streaming SIMD Extensions to the x86 ISA 06/15/26 \cpeg323-04F\Topic0.ppt 26 Pentium® III Processor (Coppermine) Introduced: 1999 500MHz … 1133MHz 28 M transistors 0.18 micron 16 KByte L1I, 16 KByte L1D, 256KByte onchip L2 Integrate L2 cache on chip, It topped out at 1GHz. 06/15/26 \cpeg323-04F\Topic0.ppt 27 Pentium® IV Processor Introduced: 2000 1.3GHz … 2GHz … 3.4GHz 42M … 55M … 125 M transistors 0.18 … 0.13 … 0.09 micron Latest one: 16 KByte L1I, 16 KByte L1D, 1M on-chip L2 Very high clock speed and SSE performance 06/15/26 \cpeg323-04F\Topic0.ppt 28 Intel® Itanium® Processor Design 1993 – 2000 733 MHz, 800 MHz 25 M transistors 0.18 micron 3 levels of cache    16 KByte L1I, 16 KByte L1D 96 KByte L2 4 MByte off-die L3 Superscalar degree 6, in-order machine First implementation of 64-bit Itanium architecture 06/15/26 \cpeg323-04F\Topic0.ppt 29 Intel® Itanium 2® Processor Introduced: 2002 1GHz 221 M transistors 0.18 micron 3 levels of cache    32 KByte I&D L1 256 KByte L2 integrated 1.5MByte L3 Based on EPIC architecture Enhanced Machine Check Architecture (MCA) with extensive Error Correcting Code (ECC) 06/15/26 \cpeg323-04F\Topic0.ppt 30 Cache Size Becoming Larger and Larger 1993: Pentium • 8 KByte I-cache and 8 KByte D-cache 06/15/26 1997: Pentium-II 16 KByte L1I, 16 KByte L1D 512 KByte off-die L2 \cpeg323-04F\Topic0.ppt 2002: Itanium-2 Level 1: 16K KByte Icache, 16 KByte D-cache Level 2: 256 KB Level 3: integrated 3 MB or 1.5 MB 31 Motorola’s PowerPC 604 06/15/26 Pentium \cpeg323-04F\Topic0.ppt 32 06/15/26 \cpeg323-04F\Topic0.ppt 33 06/15/26 \cpeg323-04F\Topic0.ppt 34 یک بازبینی از جریان طراحی پردازنده 35 \cpeg323-04F\Topic0.ppt 06/15/26 چگونه یک CPUطراحی می شود • طراحی معماری مجموعه دستورالعمل ()ISA design • طراحی در سطح وظایف (RTL )function-level ‏design • طراحی در سطح اجزاء ترکیب دهنده • طراحی gate-level/switch-level • طراحی در سطح مدار 36 \cpeg323-04F\Topic0.ppt 06/15/26 روش کالسیک طراحی مرحله ای معماری مجموعه دستورالعمل • انتخاب یک الگوی ساخت A • تعریف Aبرای تطبیق با: • کارایی مورد تقاضای جدید و تکنولوژی جدید • ارزیابی (شبیه سازی معماری مجموعه دستورالعمل) • تکرار تا کسب رضایت 37 \cpeg323-04F\Topic0.ppt 06/15/26 کل استراتژی شبیه سازی .1 شبیه ساز در سطح دستورالعمل ( :)ISAاین روش برای ارزیابی کارایی در سطح مجموعه دستورالعمل برای شرح بیشتر مدل سازی استفاده می شود. .2 شبیه سازی در سطح سیستم :مدلهای این شبیه ساز جزئیات مربوط به محیط سیستم شامل برخی چیزها مانند وقفه ها و مدیریت حافظه را مدل سازی می کند. 38 \cpeg323-04F\Topic0.ppt 06/15/26 کل استراتژی شبیه سازی )(Con’d 39 .3 در سطح :RTLمدلهای این شبیه ساز تشریح RTLاز طراحی است. .4 در سطح سوئیچ همراه با تاخیرها :بیش از همه برای شبیه سازی مولفه های طراحی به کار می رود؛ بردارهای آزمایشی از مرحله RTL تولید شده اند. .5 شبیه سازی در سطح مدار :برای مدل سازی جزئیات مسیر بحرانی به عالوه برای بازبینی مدارها در تغییرات دمایی ،توان ارائه شده و غیره به کار می رود. \cpeg323-04F\Topic0.ppt 06/15/26 کارایی شبیه سازها Simulator Level of Accuracy Simulation Rate 6 ISA Instruction set > 10 cycles/second System System level (OS instructions + interrupts) > 10 cycles/second RTL Synchronous register transfer > 10 cycles/second Gate Gate/switch level > 1 cycles/second 3 داد چرخه های شبیه سازی شده در ثانیه بر روی یک کامپیوتر میزبا 06/15/26 \cpeg323-04F\Topic0.ppt 40 کارایی دستورالعمل بر چرخه ()IPC • ایجاد مدل کارایی که: قابل انعطاف پذیرای پارامتر( ) Parameterizedاز طریق دستگیره دارای دقت ساعت در مقایسه با RTLبرابر با %95باشد به صورت قابل توجهی سریعتر از RTL• مدلها مرکب از دو بخش هستند. شبیه ساز مجموعه دستورالعمل >-اجرا کننده محک()benchmark شبیه ساز خط لوله “ >-حسابدار” برای چرخه های ساعت• سرعت های شبیه سازی • اجرای محک ها( ،)benchmarkبه روز رسانی ریز معماری بر طبق آن • چرخۀ :کد >-شبیه ساز >- characterize >-وفق دادن()tune 41 \cpeg323-04F\Topic0.ppt 06/15/26 فصل دوم معماری مجموعه دستورالعملها • مقدمه • یک بررسی موردی :معماری مجموعه دستورالعمل ماشین MIPS 42 \cpeg323-04F\Topic0.ppt 06/15/26 مراحل اجرای یک دستورالعمل واکشی دستورالعمل :برداشت دستورالعمل بعدی از حافظه کدبرداری از دستورالعمل :بررسی دستورالعمل برای مشخص شدن اینکه: چه عملی باید توسط دستورالعمل انجام گیرد (به عنوان مثال جمع) چه عملوندهایی مورد نیازند ،و نتایج باید کجا قرار گیرند. واکشی عملوندها :عملوندها برداشت می شوند. اجرا :اجرای عملیات بر روی عملوندها بازنویسی نتیجه :نوشتن نتیجه در محل مخصوص دستورالعمل بعدی :تعیین اینکه دستورالعمل بعدی از کجا گرفته شود. 43 \cpeg323-04F\Topic0.ppt 06/15/26 چه چیزی در یک ISA (معماری مجموعه دستورالعمل) مشخص می شود؟ کدبرداری از دستورالعمل :اعمال و عملوندها چگونه تعیین می گردند؟ واکشی عملوندها :عملوندها ممکن است کجا باشند؟ چه تعداد؟ اجرا :چه اعمالی می تواند انجام گیرد؟ چه نوع داده و چه اندازه هایی؟ بازنویسی نتایج :نتایج کجا نوشته می شوند؟ چه تعداد؟ دستورالعمل بعدی :دستورالعمل بعدی را چگونه می توان انتخاب نمود؟ 44 \cpeg323-04F\Topic0.ppt 06/15/26 یک ISAساده:حافظه به حافظه • چه عملیاتی می تواند اجرا شود؟ عملیات پایه ریاضی (برای این لحظه) • چه نوع داده و چه اندازه ای؟ نوع داده صحیح 32بیتی (integer )32 • عملوندها و نتایج کجا می توانند قرار گیرند؟ حافظه • چه تعداد عملوند و نتیجه؟ 2عملوند 1 ،نتیجه • اعمال و عملوندها چگونه مشخص می شوند؟ ‏OP DEST,SRC1,SRC2 عمل مقصد,منبع,1منبع2 • چگونه می توانیم دستورالعمل بعدی را انتخاب کنیم؟ بعدی به ترتیب 45 \cpeg323-04F\Topic0.ppt 06/15/26 مدل حافظه حافظه را به عنوان یک آرایه بزرگ از nعدد صحیح در نظر بگیرید ،که بوسیله اندیس قابل دستیابی است(.حافظه با دستیابی تصادفی موسوم به )ram به عنوان نمونه M[1] ،شامل مقدار 3است .ما می توانیم در این مکانها نوشتن و خواندن را انجام دهیم .این مکانها صرفا در دسترس ماست .تمام مکانهای “مجرد” (از قبیل متغیرها در )C باید مکانهایی را در Mتعیین کنند. 46 \cpeg323-04F\Topic0.ppt ‏Contents ‏Address 14 0 3 1 99 2 . . . . . . 0 ‏N-1 06/15/26 ترجمه کد ساده کد Cمفروض ;A = B + C ما می توانیم تصمیم بگیریم که متغیر Aمکان B ، 100مکان 48و C مکان 76را اشغال می کند .کد باال را به معادل کد اسمبلی آن تبدیل می کنیم: ]ADD M[100], M[48], M[76 چگونه می توانیم عبارت زیر را تبدیل کنیم );A = (B + C) * (D + E 47 \cpeg323-04F\Topic0.ppt 06/15/26 استفاده از یک مکان موقتی فرض کنید ما Aرا در B ،100را در C ، 48را در D ،76را در 20و E را در 32قرار می دهیم. اکنون یک مکان بدون استفاده را انتخاب می کنیم (مثال )84 ]# A = B + CADD M[100], M[48], M[76 ]# temp = D + EADD M[84], M[20], M[32 ]# A = A * tempMUL M[100], M[100], M[84 48 \cpeg323-04F\Topic0.ppt 06/15/26 مشکالت در معماری حافظه به حافظه • حافظه اصلی خیلی کندتر از مدارات محاسباتی است این مطلب از سال 1950تا 2003درست است!• خانه های زیادی برای مشخص نمودن آدرسهای حافظه گرفته می شوند. • معموال نتایج یک یا دو دستورالعمل بعد مورد استفاده قرار می گیرند. به خاطر داشته باشید :بخشهای اشتراکی را سریعتر نمائید! راه حل :نتایج میانی یا موقتی را در حافظه های سریع و نزدیک به واحد محاسبه ذخیره نمائید. 49 \cpeg323-04F\Topic0.ppt 06/15/26 ماشینهای مبتنی بر انباشتگر()Accumulator یک ماشین انباشتگر ،یک بافر پرسرعت واحد (مانند یک مجموعه از D latchها یا فلیپ فالپها ،هر کدام برای یک بیت داده) را نزدیک واحد محاسبه منطق نگهداری می کند. در ساده ترین حالت ،فقط یک عملوند می تواند مشخص گردد; انباشتگر به صورت مجازی به مفهوم “ ”OP Operandمی باشد یعنی: ‏acc. = acc. OP operand :Example ].# Load B into accLOAD M[48 )# Add C to acc. (now has B+C ]ADD M[76 ]# Write acc. To ASTORE M[100 50 \cpeg323-04F\Topic0.ppt 06/15/26 ماشین مبتنی بر انباشتگر که ) A=(B+C)*(D+Eرا انجام می دهد ].# Load D into accLOAD M[20 بارگذاری Dدر انباشتگر ]M[32 # Add E to acc. (now has D+E)ADD جمع Eبا انباشتگر(.اکنون داریم )D+E ]# Write acc. To ASTORE M[100 نوشتن محتوای انباشتگر در .A ].# Load B into accLOAD M[48 بارگذاری Bدر انباشتگر. ]# Add C to acc. (now has B+C)ADD M[76 جمع نمودن Cبا انباشتگر(.اکنون داریم )B+C ].# Multiply A to accMUL M[100 ضرب کردن Aدر انباشتگر. ]# Write (B+C) * (D+E) to ASTORE M[100 نوشتن نتیجه در A 51 \cpeg323-04F\Topic0.ppt 06/15/26 ضعف ماشینهای مبتنی بر انباشتگر • هنوز نیازمند ذخیره سازی بسیاری مقادیر موقتی و میانی در حافظه می باشیم • در واقع انباشتگر فقط برای یک ترتیب از محاسبات که در آن نتیجه یکی ،ورودی برای بعدی است ،مفید می باشد. 52 \cpeg323-04F\Topic0.ppt 06/15/26 ماشینهای مبتنی بر انباشتگر هنوز در کامپیوترهای اولیه معمول بودند • یک طراحی ساده ،و بنابراین محبوب ،مخصوص برای کامپیوترهای اولیه میکروپروسسرهای اولیه ()8008 ، 4004 -مدلهای ( Low-endارزان) 53 \cpeg323-04F\Topic0.ppt 06/15/26 پیشنهادات برای ماشینهای مبتنی بر انباشتگر • اگر منابع سخت افزاری بیشتری در دسترس است ،مکانهای ذخیره سازی سریع را در کنار انباشتگر قرار دهید: • ماشینهای مبتنی بر پشته • ماشینهای مبتنی بر ثبات خاص منظوره عام منظوره54 \cpeg323-04F\Topic0.ppt 06/15/26 ماشینهای مبتنی بر پشته ایده :یک ستون از مکانهای ذخیره سازی سریع دارای یک باال( )topو یک پایین ()bottom یک دستورالعمل فقط از مقدار باالی پشته( )topقابلیت برداشت دارد ،یا شاید دو یا سه مقدار به عنوان باالی پشته در نظر گرفته شوند. ما می توانیم مقادیر جدید را در باالی پشته قرار دهیم (“ )”pushیا از باالی پشته برداریم (“ )”popاما فقط همین .ما نمی توانیم به مکانهایی در زیر پشته دسترسی داشته باشیم مگر اینکه هر چیز باالی آن را خارج کنیم. 55 \cpeg323-04F\Topic0.ppt ‏Contents ‏Address 14 ‏top 3 2nd from top 99 3rd from top . . . 0 . . . ‏bottom 06/15/26 معماری مجموعه دستورالعمل ماشینهای مبتنی بر پشته اعمال اصلی شامل: بارگذاری :برداشت مقدار از حافظه و قرار دادن آن بر روی پشته ذخیره سازی :برداشت مقدار از پشته و ذخیره آن در حافظه حسابی :خارج کردن یک یا دو مقدار از پشته؛ قرار دادن نتیجه روی پشته دونسخه ای ( :)Dupگرفتن مقدار از باالی پشته بدون حذف آن؛ قرار دادن یک کپی جدید از آن در روی پشته (چرا این عمل کاربردی است؟) 56 \cpeg323-04F\Topic0.ppt 06/15/26 ماشین مبتنی بر پشته که را انجام می دهدA=(B+C)*(D+E) XXX (D) XXX (E) (D) XXX 06/15/26 (stack top at start) LOAD M[20] LOAD M[32] \cpeg323-04F\Topic0.ppt (D+E) XXX ADD (B) (D+E) XXX LOAD M[48] (continued next slide) 57 ماشین مبتنی بر پشته ‏MULT ))((B+C)*(D+E ‏XXX ]LOAD M[76 ]STORE M[100 )(C )(B )(D+E ‏XXX ‏XXX ‏ADD )(B+C )(D+E ‏XXX دقت کنید که اکنون پشته مشابه زمانی است که شروع نمودیم. 58 \cpeg323-04F\Topic0.ppt 06/15/26 کاربرد ماشینهای مبتنی برپشته • بسیاری از کامپیوترهای اولیه • واحد ممیز شناور در ( 8086تقریبا) • ماشین مجازی جاوا 59 \cpeg323-04F\Topic0.ppt 06/15/26 ماشینهای مبتنی بر ثبات ایده:به کار بردن مکانهای ذخیره سازی زیاد(”ثباتها“)نزدیک انباشتگر ثبات ها نام /شماره های مشخصی دارند که می توانند به جای حافظه • استفاده می شوند دستیابی نسبت به حافظه اصلی • خیلی سریعتر است • (_)CPU cycles vs. ~ 100 CPU cycles on PC 1-2 • ثبات ها نسبت به مکان های حافظه خیلی نزدیک ترند MIPS_ 32تا ثبات 32بیتی دارد _ ثبات های کمتر گذاری آنها آدرس های کوچکتر وتعداد بیتهای کمتر برای نام _ منابع استفاده کمتر است و باید با دقت ار آنها استفاده شود! 60 \cpeg323-04F\Topic0.ppt 06/15/26 ثباتهای عام منظوره_خاص منظوره • یک ثبات خاص_ منظوره برای اهداف مشخص استفاده می شود و ممکن است عملیاتی را که استفاده می شود را محدودکند - طراحی آسانتر سخت افزار :ثبات را در جایی که دقیقا نیازاست قرار بده - به منظور استفاده موثر برای کامپایلر خیلی سخت تر است. • یک ثبات عام منظوره می تواند دربیشتر مسیرهای عملیاتی استفاده شود بنابراین مسیریابی خیلی مشکل است 61 \cpeg323-04F\Topic0.ppt 06/15/26 ثبات های خاص منظوره ‏cpu • ‏The z_80 هفت تا ثبات 8بیتی( :می توانند جفت شوند .)A,B,C,D,E,H,LBC,DE,HL سه تا ثبات 16بیتی( PC 62:شمارنده برنامه). جمع ,تفریق ,شیفت تنها با Aمی تواند انجام شود (شمارنده 8 بیتی ). افزایش و کاهش می تواند با تمام ثبات ها وجفتهای ثبات انجام شود . می توانند از حافظه آدرس ()HLرا واکشی کنند و در هر8بیت ثبات قرار دهند. یک واکشی از آدرس()BCیا()DEتنها می تواند به Aبرود. واکشی ها از ()HL(,)BCو ( )IXتعداد چرخه های متفاوتی می گیرد چه کسی می خواهد برای این یک کامپایلر بنویسد؟ • • • • • • • 62 \cpeg323-04F\Topic0.ppt 06/15/26 ثبات عام منظوره ماشین های ()GPR (MIPSوپردازشگرهای مشابه)32تا ثبات عمومی دارند ()GPRsهر32بیتlongهستن د.همه می توانند نوشته یا خوانده شوند به جز ثبات صفر که همیشه صفراست ونمی تواند تغییر کند.زمان دستیابی به ثبات ثابت است. 63 \cpeg323-04F\Topic0.ppt ‏Contents ‏Address 0 $0 3 $1 99 $2 . . . 14 . . . $31 06/15/26 راانجام می دهدGPR A=(B+C)*(D+E) ماشین #R1 = B + CM[48], M[76]$1 ADD #R2 = D + EM[20], M[32]$2 ADD #A = R1 * R2M[100], $1, $2MUL 06/15/26 \cpeg323-04F\Topic0.ppt 64 اندازه های داده های متفاوت چطورباید با اندازه های داده های متفاوت رفتارکنیم؟ انتخاب یک اندازه برای یک واحد ذخیره شده در یک آدرس تنها • ذخیره کردن داده بزرگ در یک مجموعه از مکانهای همجوارحافظه • ذخیره کردن داده کوچک در یک مکان: ‏use shift & mask ops امروزه تقریبا همه ماشینها(شامل)MIPSدارای آدرس دهی بایتی “”Byte_Adressableهستند هر مکان آدرس دهی ،در حافظه 8بیتی نگهداری می شود. 65 \cpeg323-04F\Topic0.ppt 06/15/26 حافظهMIPS روی یک ماشین قابل آدرس دهی بایتی ازقبیل MIPSاگرما بگوییم یک کلمه (32بیت) درآدرس 80ذخیره شده به این معنااست که مکانهای 80تا83را اشغال کرده(.کلمه بعدی از 84شروع می شود). به طور نرمال بارگذاری وذخیره چندین بیت باید ”تنظیم“ شود.آدرس ‏nبایتی بارگذاری یا ذخیره باید مضربی ازnباشد.برای نمونه نیم کلمه تنها در آدرسهای زوج ذخیره میشود. MIPSاجازه بارگذاری شدن و ذخیره شدن برای استفاده مخصوص دستورالعمل ها را نمی دهند اما آنها ممکن است کندترشوند(بیشتر پردازشگرها این را برای همیشه اجازه نمی دهند!). 66 \cpeg323-04F\Topic0.ppt 06/15/26 )”Byte-Order (“Endianness • • • • برای یک داده چند بایتی کدام قسمت به کدام بایت می رود؟ اگر1$محتوی) F4240H(1000000و ما آن را در آدرس 80ذخیره کنیم : در یک ماشین “ ”Big Endian” “Big Endبه آدرس 80می رود در یک ماشین “ ”Little Endianاز سوی دیگر است. 67 … 84 40 83 42 82 0F 81 00 80 79 … 84 00 83 0F 82 42 81 40 80 79 \cpeg323-04F\Topic0.ppt … … 06/15/26 Big-Endian vs. Little-Endian Big Endian:MIPS,SPARC,68000 • ماشینهای بیشتر پردازشگر هایLittle Endian: • ماشینهای intel,Alpha,Vax Big • سازگاری مشکالت انتقال چندین بایت داده بین ماشینهای Endian,Little Endian 06/15/26 \cpeg323-04F\Topic0.ppt 68 روشهای آدرس دهی یک روش آدرس دهی ISA’Sاین سوال را جواب می دهد :عملوندها کجا میتوانند ذخیره شوند؟ ما دو نوع ذخیره سازی در MIPSداریم( وبیشتر ماشینهای دیگر) :ثباتها و حافظه اصلی.ما می توانیم به هریک از این دو یا هردو عملوندها برویم .یک تک عملوند می تواند با هر یک از این دو بیاید یک ثبات یا یک مکان حافظه ،و روشهای آدرس دهی راه های گوناگون تشخیص این مکانها را ارائه می کند. 69 \cpeg323-04F\Topic0.ppt 06/15/26 روشهای آدرس دهی ساده دراین روشها یک مکان یا داده به طور مستقیم دریک :دستورالعمل داده می شود 06/15/26 Mode name Example Register mov $1, $2 R2 R1 Direct (or absolute) mov $1, (40) M[40] R1 Immediate mov $1, #40 R1 40 \cpeg323-04F\Topic0.ppt Meaning 70 روشهای آدرس دهی غیر مستقیم در تولید یک آدرس حافظه یکی یا بیشترثباتها استفاده می شوند 06/15/26 Mode name Example Reg. Indirect mov $1, ($2) M[R2] R1 Displacement mov $1, 40($2) M[40+R2] R1 Indexed mov $1, $4($2) M[R4+R2] R1 Mem. Indirect mov $1, @($2) M[M[R2]] R1 \cpeg323-04F\Topic0.ppt Meaning 71 روشهای آدرس دهی پیشرفته اجزای زیادی اجزای اصلی را در زبانهای سطح باال پشتیبانی می کنند یا تعداد دستور العمل هارا در طول دستیابی از حافظه افزایش می دهند ‏Example ‏Mode name ‏Meaning ‏R1 ]M[4+R2 )++ mov $1, 4($2 ‏Auto-increment ‏R1 ]M{R2-4 )- - mov $1, 4($2 ‏Auto-decrement ‏R1 ]M[40+R2x2s ]mov $1, 40($2) [s ‏Scaled 72 \cpeg323-04F\Topic0.ppt 06/15/26 روشهای آدرس دهی منتخب کارهایی که انجام می شود :هر روش آدرس دهی ممکن است برای هر عملوندی در هر زمان استفاده شود • طرح دستورات سطح باال به طور مستقیم به دستورالعملها آسانتر است. • برای طراحی پردازشگر سخت است بعلت اینکه باعث پیچیدگی بیشتر می شود آدرس دهی های محدود :تنها روشهای کمی را اجازه می دهند ویا تعداد عملوندها را به روش های معین محدود میکنند • برای کامپایلر یا برنامه نویس که پیرو قواعد مشخص هستند سخت تراست • شایدطول کد زیاد شود 73 \cpeg323-04F\Topic0.ppt 06/15/26 بسامد روشهای آدرس دهی مشخصvax)سه برنامه روی(مینی کامپیوتر شده که همه انواع روشها را پشتیبانی می :کنند Frequency of mode (%) 06/15/26 Mode Name Min. ave. max. Displacement 32 42 55 Immediate 17 33 43 Reg. Indirect 3 13 24 Scaled 0 7 16 Mem. Indirect 1 3 6 Others 0 2 3 \cpeg323-04F\Topic0.ppt 74 روشهای آدرس دهی داده های تجربی • بزرگی تغییر مکان مورد نیاز چه طور باید باشد؟ در بررسی های Spec in92وSpec fp92 99درصد تغییر مکانها در دامنه 215-+انجام می شود. • بزرگی ثابت فوری مورد نیاز چه طور باید باشد؟ در مطالعات نشان داده شده 50تا 60درصد در 8بیت و 75تا 80درصد در 16بیت است. 75 \cpeg323-04F\Topic0.ppt 06/15/26 چه طور ما نمایش دادن دستورالعمل ها را انجام می دهیم ؟ • ما به چند بیت احتیاج داریم برای اینکه بگوییم چه عملی انجام شده (مثال جمع تفریق ضرب غیره)که به این کدگذاری عملوند opcodeگویند • ما به چند بیت برای هر عملوندو نتیجه احتیاج داریم(در نمونه ما جمعا 3تا ) • چه نوع روش آدرس دهی • شماری از ثباتها آدرس حافظه و یا ثابت فوری و و و و 76 \cpeg323-04F\Topic0.ppt 06/15/26 دستورالعملهای با طول متغیر • تا کنون Vaxهر روش را برای هر عملوندی اجازه داده می تواند یک دستور العمل با سه تا آدرس های 32بیتی باشد (آدرس دهی مستقیم) 12بایت در این دستورالعمل • اما ثباتها به بیتهای کمی برای مشخص شدن نیاز دارند بنابراین 12بایت برای یک دستورالعمل که تنها از 3تا ثبات استفاده می کنند هدر میشود . • باید از دستور العمل های با طول متغیر استفاده کرد.درVaxدستورالعملهل از 1تا 17بایت متغیراند. 77 \cpeg323-04F\Topic0.ppt 06/15/26 دستورالعمل های با طول ثابت • اگر هر دستورالعمل با تعداد بیتهای یکسان (ترجیحا یک عدد زوج مانند 16یا )32بیشتر اجزای پردازشگر ساده تر خواهد شد.اما در هر دو صورت مقداری از فضا هدر می رود یا همه روشهای آدرس دهی را نمی تواند پشتیبانی کند! 78 \cpeg323-04F\Topic0.ppt 06/15/26 بار گذاری اعداد صحیح کوچک • همه ثباتها در MIPS 32بیتی هستند. • چه طور ما نیم کلمه یا یک بایت را در یک ثبات بارگذاری می کنیم؟ • بیتها را در حداقل 8یا16بیت ثباتی بارگذاری می کنیم. بار گذاری بدون عالمت :همه بیت های باال را صفر کنیم. بار گذاری عالمت دار :همه بیت های باال را با توجه به عالمت صفر یا یک می کنیم(نیم کلمه یا بایت )MSB 79 \cpeg323-04F\Topic0.ppt 06/15/26 The RISC Approach • در مجموعه دستورالعمل های کاهش یافته در دستگاه کامپیو تر همه دستورالعمل ها در اندازه های یکسانی هستند ( 32بیت در )MIPS • روشهای آدرس دهی کمی پشتیبانی می شوند ( فقط آنهایی که بیشتر کاربرد دارند) • فقط تعداد کمی از قالب های دستورالعمل(کد برداری آسانتر انجام می شود) • دستور العمل های محاسباتی که فقط روی ثبات کار می کنند • داده های حافظه باید در ثبات ها قبل از پردازش شدن بارگذاری شوند که این یک معماری Load_Storeنامیده می شود 80 \cpeg323-04F\Topic0.ppt 06/15/26 معیارهای]RISC[COL WELL 85 • عمل تک چرخه ای • ماشین Load_Store • کنترل سخت افزاری • رابطه دستور العمل های کم و روشهای آدرس دهی • دستورالعمل های با قالب ثابت • تالش بیشتر در زمان کامپایل 81 \cpeg323-04F\Topic0.ppt 06/15/26 Memory Coprocessor 1 (FPU) CPU Registers Registers $0 $0 ... ... $31 $31 Arithmetic unit Multiply divide Lo Argument 1 Arithmetic unit Hi Coprocessor 0 (traps and memory) registers BadVAddr Cause Status EPC MIPS R2000 CPU and FPU 06/15/26 \cpeg323-04F\Topic0.ppt 82 ثبات ها 32تا ثبات باR0=0 ثبات های ذخیره شده.R1,R26,R27: • کاربرد مخصوص: اشاره گر به ناحیه سراسریR28: اشاره گر پشتهR29: اشاره گر قابR30: آدرس بازگشتR31: 83 \cpeg323-04F\Topic0.ppt 06/15/26 قراردادهای ثبات استاندارد • 32تا ثبات صحیح در MIPSعام منظوره هستند_هر کدام می توانند به عنوان یک عملوند یا نتیجه یک محاسبه عملیاتی استفاده شوند • اما ساخت تکه های متفاوت از نرم افزارکه باهم کار می کنند آسانتر است اگر قراردادهای معینی که دنبال می شود درباره آن ثباتهایی باشد که برای آن اهداف استفاده می شود • این قراردادها معموال به وسیله فروشنده پیشنهاد می شوند و به وسیله کامپایلرها پشتیبانی می شوند 84 \cpeg323-04F\Topic0.ppt 06/15/26 MIPS قراردادهای ثباتی در Names 06/15/26 Regs Purpose zero$ 0 Constant 0 - 1 )Reserved for assembler( v0-$v1$ 2-3 Return values/expression eval a0-$a3$ 4-7 Args to functions t0-$t9$ 24-25 ,8-15 s0-$s7$ 16-23 Saved values - 26-27 )Reserved for OS kernel( gp$ 28 Global pointer sp$ 29 Stack pointer fp$ 30 Frame pointer ra$ 31 Return address \cpeg323-04F\Topic0.ppt Temporaries (NOT SAVED) 85 MIPS registers and usage convention 06/15/26 Register name zero at v0 v1 a0 a1 a2 a3 t0 t1 t2 t3 t4 t5 t6 t7 s0 s1 s2 s3 s4 s5 s6 s7 t8 t9 k0 k1 gp sp fp ra Number 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Usage Constant 0 Reserved for assembler Expression evaluation and results of a function Expression evaluation and results of a function Argument 1 Argument 2 Argument 3 Argument 4 Temporary (not preserved aross call) Temporary (not preserved aross call) Temporary (not preserved aross call) Temporary (not preserved aross call) Temporary (not preserved aross call) Temporary (not preserved aross call) Temporary (not preserved aross call) Temporary (not preserved aross call) Saved temporary (preserved across call) Saved temporary (preserved across call) Saved temporary (preserved across call) Saved temporary (preserved across call) Saved temporary (preserved across call) Saved temporary (preserved across call) Saved temporary (preserved across call) Saved temporary (preserved across call) Temporary (not preserved aross call) Temporary (not preserved aross call) Reserved for OS kernel Reserved for OS kernel Pointer to global area Stack pointer Frame pointer Return address (used by function call) \cpeg323-04F\Topic0.ppt 86 عملیات MIPS • بارگذاری/ذخیره • عملیات ALU • انشعاب ها/پرش ها 87 \cpeg323-04F\Topic0.ppt 06/15/26 MIPS قالب های دستورالعمل R-Format op rs 6 bits 5 bits 06/15/26 rt 5 bits rd 5 bits shamt 5 bits I-Format op rs rt address 6 bits 5 bits 5 bits 16 bits J-Format op address 6 bits 26 bits \cpeg323-04F\Topic0.ppt funct 6 bits 88 فیلدها در دستورالعملهای MIPS • :opمشخصات عمل :بیان اینکه کدام قالب استفاده شود • :rsاولین ثبات منبع • :rtدومین ثبات منبع • :rdثبات مقصد • :shamtمقدار شیفت • :functجزئیات اضافی opcode • :addressثابت فوری وتغییرمکان یافته و یا انشعاب 89 \cpeg323-04F\Topic0.ppt 06/15/26 ماشین نمایش دستورالعملهای ‏MIPS فیلدهای MIPSنام گذاری می شوند که بحث در مورد آنها آسانتر شود: ‏funct ا 6 bits ‏shamt ‏rd ‏rt ‏rs ‏op 5 bits 5 bits 5 bits 5 bits 6 bits ینجا منظور هر نامی از فیلدهای دستورالعمل های MIPSاست: :OPعملگر هر دستورالعمل :RSاولین عملوند ثبات منبع :RTدومین عملوند ثبات منبع :RDعملوند ثبات مقصد.آن نتایج عملیات را فراهم می کند. :SHAMTمقدار شیفت :FUNCTتابع:این فیلد عملیات مختلف در فیلد OPرا انتخاب می کند. 90 \cpeg323-04F\Topic0.ppt 06/15/26 ALUعملوندهای R1,R2,R3ADD effect: R1= R2 + R3 مثال(شکل اسمبلر ) درMIPS ADD $t1, $s1, $s2 32 0 8 18 17 0 :نمایش دهدهی 06/15/26 \cpeg323-04F\Topic0.ppt 91 نمایش ماشینی • نمایش دهدهی 0 17 18 8 0 32 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits نمایش باینری 06/15/26 • 000000 10001 10010 01000 00000 100000 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits \cpeg323-04F\Topic0.ppt 92 ضرب و تقسیم صحیح در MIPS • ضرب 2تا عدد 32بیتی تاحدود 64بیت می تواند باشد • MIPS2تا مخصوص دارد HI:وLO • نتایج ضرب :بیت های پایین تربه Loمی روند و بیت های باالتر به Hiمی روند • نتایج تقسیم:خارج قسمت به loمی رود و باقی مانده به hiمی رود • استفاده کردن از عملیات اضافی(از قبیل )mfloبرای جابجایی به باال و پایین ثبات های منظوره 93 \cpeg323-04F\Topic0.ppt 06/15/26 دستورالعملهای انتقال داده ها )I-type (base + 16 bit offsets ‏address ‏rt ‏rs ‏op 16 bits 5 bits 5 bits 6 bits :مثال ]t0, 8 ($s3) --- # Temporary reg t0 gets A[8 ‏lw :یادداشت همچنینrsثبات پایه است(s3$در این نمونه _همچنین ثبات شاخص نامیده می شود) و ( rtدر این نمونه t0$نتایج را ذخیره می کند (به عنوان ثبات مقصد) 94 \cpeg323-04F\Topic0.ppt 06/15/26 An Example A=(B+C)*(D+E) انجام می دهدMIPS Assembly 1w $8, 48($0) 1w $9, 76($0) add $8, $8, $9 1w $9, 20($0) 1w $10, 32($0) add $9, $9, $10 add $8, $8, $9 sw $8, 100($0) 06/15/26 op rs rt rd 35 0 8 48 35 0 9 76 0 8 9 35 0 9 20 35 0 10 32 0 9 10 9 0 32 0 8 9 8 0 32 43 0 8 8 sh. 0 Ft. 32 100 \cpeg323-04F\Topic0.ppt 95 انشعاب ها • در بیشترپردازشگرها“شمارنده برنامه“()PCآدرس دستورالعمل بعدی را نگه می دارد:واکشی از])M[(PC به طور عادی بعداز اینکه یک دستورالعمل تمام شدCPU n تا به PCاضافه می کند nتعداد بایت ها در دستورالعمل است انشعاب هابه یک برنامه اجازه می دهند واکشی کنند از مکانهای متفاوت انشعابها استفاده میشوند برای به کاربردن همه روند کنترلی فرمانهای زبان های سطح باال ازقبیل if-then-else, . for, switch, etc • • • 96 \cpeg323-04F\Topic0.ppt 06/15/26 طبقه بندی انشعاب ها • دو نوع اساسی از پرشها: • غیر شرطی همیشه به آدرس مشخص شده جهش می کند • شرطی:اگر شرط درست باشد به آدرس مشخص شده می رود .به عبارت دیگربا دستورالعمل بعدی ادامه می دهد. • آدرس های مقصد با روش مشابهی می تواند مشخص شود به عنوان عملوندهای دیگر (جمع آوری ثباتها ثابت های فوری و مکان های حافظه)بستگی دارد که چه چیزی در ISAپشتیبانی شود و و 97 \cpeg323-04F\Topic0.ppt 06/15/26 مثال همگردانی انشعاب • کامپایل زیر را دنبال کنید i=j i == j? ij Else: f=g+h f=g-h if ( i == j) f = g + h; else f = g – h; Exit: 06/15/26 \cpeg323-04F\Topic0.ppt 98 MIPS درIf Then Else Assume f,g,h,i,j in R8-R12 (respectively) # Branch if i<>j bne $11, $12, Else ;# f = g + h # Jump to Exit 06/15/26 add $8, $9, $10 j Exit ;# f = g – h sub $8, $9, $10Else: # Code after if … Exit: \cpeg323-04F\Topic0.ppt 99 بررسی انشعاب ها • بیشتر انشعابهای شرطی برای آدرس های ثابت وکوتاه روی می دهند • اما اغلب این طور استفاده نمی شوند • استفاده ای برای افزایش یا کاهش پیشوندی ندارند پس مطابق با فلسفه سادگی MIPS,RISCتعداد کمی انشعاب اساسی دارد 100 \cpeg323-04F\Topic0.ppt 06/15/26 انواع انشعاب درMIPS انشعاب شرطیbeq/bne reg1, reg2, addr: • - If reg1 =/ reg2, jump to PC + )addr (PC-relative • پرش ثباتیjr reg: واکشی آدرس از ثبات مشخص شده و پرش به آن • پرش غیر شرطیj addr: • همیشه به آدرس پرش می کند(استفاده “”pseudododirectآدرس دهی) 101 \cpeg323-04F\Topic0.ppt 06/15/26 دستورالعمل های انشعاب • انشعاب های شرطی - beq R1, R2, L1 - bne R1, R2, L1 # # if R1 = R2 go to L1 if R1 =\= R2 go to L1 هستندR_type • این ها دستورالعملهای • انشعاب های غیر شرطی JR R8 # Jump based on register 8 Test if < 0 slt R1, R16, R17 # R1 gets 1 if R16 < R17 (slt: set-less-than) bne R1, 0, less # branch to less if R1 =\= 0 06/15/26 \cpeg323-04F\Topic0.ppt 102 MIPS مولد اهداف انشعاب در 4 PC-relative addressing op rt Address rs PC Memory + 5 Pseudodirect addressing op Address PC 06/15/26 Word Memory : \cpeg323-04F\Topic0.ppt Word 103 مثال تلفیق سوئیچ :• کامپایل را دنبال کنید switch (k) { case 0: f = f + 1; break; case 1: f = f – 2; break; case 3: f = -f; break; } Note the gap (case 2); 06/15/26 \cpeg323-04F\Topic0.ppt 104 MIPS بدنه سوئیچ در 1 to r8 (f)immed.$8, $8, 1 addaddi L0: jump to Exit (break) j Exit $8, $8, 2 subtract imm. 2 from r8subi Another break j Exit f = 0 - fsub $8, $0, $8L3: Another break j Exit L1: ساختن جدول مراجعه درحافظه 06/15/26 \cpeg323-04F\Topic0.ppt 1000 address of L0 1004 address of L1 1008 address of Exit 1012 address of L3 105 MIPS سوئیچ کامپایل شده برای )Assume k in r13( # set r14 if r13 1t 0 slti $14, $13, 0 # Go to Exit if k < 0 bne $14, $0, Exit # set r14 if k < 4 slti $14, $13, 4 # Go to Exit if k  4 beq $14, $0, Exit # r14 = 2*k add $14, $13, $13 # r14 = 4*k add $14, $14, $14 # Base of table at 1000 lw $14, 1000 ($14) # Jump to the address 06/15/26 \cpeg323-04F\Topic0.ppt jr $14 106 کامپایل کردن دستورات کنترلی دیگر • حلقه ها: • :For,whileتست کردن قبل از بدنه حلقه .پرش کن به بعد از بدنه حلقه اگر شرط نادرست است . • :Doتست کردن شرط در انتهای بدنه حلقه.پرش کن به ابتدا اگر درست است • سوئیچ “case”(:فراخوانده می شوددر بعضی زبانهای دیگر) • ساختن یک جدول آدرس • استفاده)jr(or equiv. In non-MIPS processor • مطمئن باشید از چک کردن برای پیش فرض یا ‏caseهای بدون استفاده 107 \cpeg323-04F\Topic0.ppt 06/15/26 پشتیبانی دستورالعملهای فراخونی پردازه ‏Jump and link آدرس پردازشگر یادداشت: ‏jal آدرس بازگشت در r31ذخیره می شود ‏Return ‏R31 ‏jr ذخیره کردن آدرس بازگشت روی پشته R29به عنوان اشاره گر پشته استفاده می شود پارامتر زود گذر: R4 ~ R7استفاده می شوند برای اینها 108 \cpeg323-04F\Topic0.ppt 06/15/26 های دیگرMIPS روش آدرس دهی LW • عملوندهای ثابت یا فوری R24, AddrConstant4(0) Addi Lui J 10000 j_type 06/15/26 R8 255 R3, 5 (I type) بیتی هستند16ثابتها Load_upper_immediate 10000 • می رود به مکان \cpeg323-04F\Topic0.ppt 109 MIPS عملوندهای Name 32 registers Example Comments $s0-$s7, $t0-$t9, Fast locations for data. In MIPS, data must be in registers to perform $zero, $a0-$a3, $v0- arithmetic. MIPS register $zero always equals 0. $gp (28) is the global $v1, $gp, $fp, $sp, $ra pointer, $sp(29) is the stack pointer, $fp (30) is the frame pointer, and $ra (31) is the return address. Memory [0], Accessed only by data transfer instructions. MIPS uses byte addresses, so 30 2 memory words Memory [4],…, sequential words differ by 4. Memory holds data structures, such as arrays, Memory[42949672920 and spilled register, such as those saved on procedure calls. MIPS اسمبلی زبان Category Arithmetic Data transfer Conditional branch Unconditional jump 06/15/26 Instruction add subtract load word store word branch on equal branch on not equal set on less than Example add $s1, $s2, $s3 sub $s1, $s2, $s3 lw $s1,100 ($s2) sw $s1,100 ($s2) beq $s1, $s2, L bne $s1, $s2, L Meaning $s1 = $s2 + $s3 $s1 = $s2 - $s3 &s1 = Memory [$s2 + 100] Memory [$s2 + 100] = $s1 if ($s1 == $s2) go to L if ($s1 != $s2) go to L Comments Three operands; data in registers Three operands; data in registers Data from memory to register Data from register to memory Equal test and branch Not equal test and branch slt $s1, $s2, $s3 Compare less than: for beq, bne jump jump register jump and link j jr jal if ($s2 < $s3) $s1 = 1; else $s1 = 0 go to 10000 go to $ra $ra = PC + 4; go to 1000 2500 $ra 2500 \cpeg323-04F\Topic0.ppt jump to target address For switch, procedure return For procedure call 110 MIPS ماشین زبان Name add sub lw sw beq bne slt j jr jal field size R-format I-format 06/15/26 Format R R I I I I R J R J R I Example Comments 0 18 19 17 0 32 add $s1, $s2, $s3 0 18 19 17 0 34 sub $s1, $s2, $s3 lw $s1,100 ($s2) 35 18 17 100 sw $s1,100 ($s2) 43 18 17 100 beq $s1, $s2, 100 4 17 18 25 bne $s1, $s2, 100 5 17 18 25 0 18 19 17 0 42 slt $s1, $s2, $s3 j 2 2500 10000 (see section 3.8) 0 31 0 0 0 8 jr $ra jal 10000 (see section 3.8) 3 2500 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits All MIPS instructins 32 bits op rs rt rd shamt funct Arithmetic instruction format op rs rt address Data transfer, branch format \cpeg323-04F\Topic0.ppt 111 فراخوانی تابع درMIPS • فراخوانی تابع یک ساختار ضروری زبان های برنامه نویسی است. برنامه یک تابع را برای انجام چند وظیفه فرامی خواند. موقعی که تابع انجام میشود CPUدقیقا از بعد از جایی که برنامه فراخوانی شده ادامه می دهد 112 \cpeg323-04F\Topic0.ppt 06/15/26 فراخوانی تابع در MIPS استفاده از دستورالعمل )”Jal(“jump and link Jal addrفقط J adrrاست به جز موارد زیر ”آدرس بازگشت“ (4placed in R31+)pc این آدرس دستورالعمل بعدی بعد ازjalاست از jr$31برای بازگشت استفاده می کنیم 113 \cpeg323-04F\Topic0.ppt 06/15/26 مثال فراخوانی Callee Caller F: 1w $6, 0($4) add $4, $0, 1000 1w $7, 0($5) add $5, $0, 1200 sw $6, 0($5) add $1, $0, 1 sw $7, 0($4) sw $1, 0($4) jr $31 add $1, $1, $ sw $1, 0 ($5) jal F sub $1, $1, $2 ?What does F do 06/15/26 \cpeg323-04F\Topic0.ppt 114 مشکالت فراخوانی تابع ها این مثال درست کار می کند اما چه طور؟ تابع Fتابع دیگر را فراخوانی می کند فراخوانی کننده یک نکته مهم در ثباتهای ‏R6وR7دارد؟ تابع فراخوانی شده خودش را فرامی خواند؟ هر نسخه از یک تابع باید کپی متغیر هایش را داشته باشداین ها در یک پشته به عنوان یک ستون از قاب ها مرتب شده اند. 115 \cpeg323-04F\Topic0.ppt 06/15/26 مثال پشته راC, B را فراخوانی کند وB ,A فرض کنید تابع .خودش را فراخوانی می کندC تابع.فراخوانی کند A’s vars start A 06/15/26 B’s vars A’s vars A calls B \cpeg323-04F\Topic0.ppt C’s vars B’s vars A’s vars B calls C C’s vars C’s vars B’s vars A’s vars C calls C 116 فراخوانی پردازه • مکان پارامترها • کنترل انتقال • ذخیره سازی Acquire • انجام دادن کار • مکان بازگشت نتایج • بازگشت کنترل بر گشتی به فراخوان 117 \cpeg323-04F\Topic0.ppt 06/15/26 آدرسهای حافظه باالتر $fp Argument 5 Argument 6 ... Saved registers رشد پشته Local variables آدرسهای حافظه پایینتر $sp آرایش قاب پشته 06/15/26 \cpeg323-04F\Topic0.ppt 118 جزئیات پشته High address $fp $fp $sp $fp Saved argument Register (if any) $sp Saved return address Saved saved Registers (if any) Local arrays and Structures (if any) $sp Low address A: before B: during C: after (From Patterson and Hennessy, p. 139; COPYRIGHT 1988 MORGAN KAUFMANN PUBLISHERS, INC. ALL RRIGHTS RESERVED) 06/15/26 \cpeg323-04F\Topic0.ppt 119 قراردادهای ثبات استاندارد • 32تا ثبات صحیح در MIPSعام منظوره هستند_هر کدام می توانند به عنوان یک عملوند یا نتیجه یک محاسبه عملیاتی استفاده شوند • اما ساخت تکه های متفاوت از نرم افزارکه باهم کار می کنند آسانتر است اگر قراردادهای معینی که دنبال می شود درباره آن ثباتهایی باشد که برای آن اهداف استفاده می شود • این قراردادها معموال به وسیله فروشنده پیشنهاد می شوند و به وسیله کامپایلرها پشتیبانی می شوند 120 \cpeg323-04F\Topic0.ppt 06/15/26 پارامترهای میانی • ذخیره کردن فراخوانی کننده:پردازه فراخوان()callerمسئول است برای ذخیره کردن و دوباره ذخیره کردن هر کدام از ثباتهایی که باید در طی فراخوانی نگهداری شوند.پردازه فراخوانی شده ()calleeمی تواند هر ثباتی را بدون محدودیت تغییر دهد. • ذخیره کردن فراخوانی شده :پردازه ای که فراخوانی شده مسئول است برای ذخیره کردن و دوباره ذخیره کردن هر کدام از ثباتهایی که ممکن است استفاده شوند. فرخوان ثباتها را بدون هیچ نگرانی درباره دوباره ذخیره کردن آنها بعد از یک فراخوانی استفاده می کند. 121 \cpeg323-04F\Topic0.ppt 06/15/26 ثباتهای ذخیره سازی • اگر شما یک تابع را فراخوانی کنید هر آنچه شما در S7$تاS0$دارید در آنجا تضمین شده زمانی که تابع برمی گردد به شما • اما ثباتهای t9$تاt0 fair game$هستند به وسیله تابع دوباره استفاده می شود • چه گزینش هایی هستند؟ • هیچ ذخیره کردن؟ • همه چیز ذخیره کردن؟ 122 \cpeg323-04F\Topic0.ppt 06/15/26 اعالم یک تابع در MIPS قرار بدهید آرگومانهای تابع را در a0_$a3$ اگر یک چیز مهم در t0_9$باشد اکنون آنها را انتقال می دهد! jalبه تابع ذخیره کردن s0_$s7$وra$اگرالزم باشد شما کاری انجام دهید و مقادیر بازگشت را( اگر داشته باشد) در ‏v0_$v1$ دوباره ذخیره میکنیم s0_$s7$وra$رااگرلزومی داشته باشد ادامه دهید تا جایی که تمام شود سوال :چه کسی آن را به عنوان یک طرح می سازد؟ چه اتفاقی می افتد اگر ثباتهای ما تمام شود؟ واقعا چه چیزی عمل ذخیره کردن را انجام می دهد؟ 123 \cpeg323-04F\Topic0.ppt 06/15/26 فصل سوم نمایش اعداد و محاسباتی کامپیوتر 124 \cpeg323-04F\Topic0.ppt 06/15/26 چکیده مقدمه نمایش عددی و مکمل دو طراحی واحد محاسبه ,منطق ضرب و تقسیم صحیح اعداد اعشاری 125 \cpeg323-04F\Topic0.ppt 06/15/26 نمایش عددی آنچه پیچیده به نظر می رسد: اعداد منفی را چگونه نمایش دهیم دامنه ( )Rangeاعداد چیست؟ اگر یک عدد خارج از محدوده بود؟ در مورد اعداد منطقی و غیر منطقی چطور؟ سخت افزار چگونه این اعداد را جمع، تفریق،ضرب و تقسیم میکند؟ 127 \cpeg323-04F\Topic0.ppt 06/15/26 بیت ها و اعداد بیتها فقط بیت هستند :هیچ معنای ذاتی ندارند. قراردادها رابطه بین بیتها و اعداد را تعیین می کنند. سخت افزار چگونه تشخیص می دهد که چه قراردادی در حال استفاده است؟ ‏Add $s1, $s2, $s3 ‏Addu $s1, $s2, $s3 عالمت s1،$s2$و s3$چیست؟ 128 \cpeg323-04F\Topic0.ppt 06/15/26 نمایش عددی صحیح بدون عالمت صحیح با عالمت ‏BCDدهدهی کد شده به باینری ممیز ثابت ممیز شناور انواع دیگر داده: کاراکترها(اسکی و یونیکد) پیکسل ها (گرافیک ها) گروهی از بیتها 129 \cpeg323-04F\Topic0.ppt 06/15/26 صحیح بدون عالمت چرا صحیح بدون عالمت؟ دستیابی به حافظه ,PC, SP, RA ‏In C, unsigned int  چگونه نمایش می دهیم؟ انگشتهای خود را بشمارید. مبنای اولیه سیستم اعداد دهدهی 10 :نماد مختلف9 8 7 6 5 4 3 2 1 0 : ‏n 1 ‏i ( ‏d * 10 ) ‏ i عدد= 130 ‏i 0 \cpeg323-04F\Topic0.ppt 06/15/26 صحیح بدون عالمت (مبنای اولیه سیستم اعداد) در حالت کلی ،در یک سیستم عددی مبنای K عدد= ‏n 1 )  (d * k ‏i ‏i ‏i 0 چه تعداد diمتفاوت؟ بزرگترین عدد کدامست؟ کوچکترین عدد کدامست؟ مبناهای خاص: مبنای )Binary( 2 مبنای )octal( 8 مبنای )hexademical(16 131 آنها چه تعداد نماد مختلف دارند؟ \cpeg323-04F\Topic0.ppt 06/15/26 صحیح بدون عالمت (مبنای اولیه سیستم اعداد) چگونه می توان مبنای دو را به مبنای 8و 16تبدیل کرد؟ مثال: )010100=(0 *22+1 *21+0*20)*23+(1*22+0*21+0*20 =2*81+ 4 *80= 248 1 9 4 8 B 6 ‏Hexadecimal: ‏Binary: 000110010100100010110110 ‏Octal: 0 6 2 4 4 2 6 6 132 \cpeg323-04F\Topic0.ppt 06/15/26 صحیح بدون عالمت (D: binary coded decimal ‏Number 0 1 2 3 4 5 6 7 8 9 ‏BCD 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 ‏No use 1010-1111 133 نمایش 12710 : چه تعداد بیت برای BCDمورد نیاز است؟ برای دودویی چطور؟ فضای ذخیره سازی بکارگرفته شده؟ ضمیمه: چگونه می توان carryرا مشخص نمود؟ “”If ai+ bi >10” vs. “If ai+ bi >2 کدامیک برای کامپیوتر کاراتر است؟ \cpeg323-04F\Topic0.ppt 06/15/26 صحیح با عالمت (عالمت مقدار) 12(absolute value) )sign(- :12 یک بیت عالمت مجزا یک مقدار برای سخت افزار بیت عالمت را کجا قرار دهیم؟چپ یا راست؟ عالمت حاصلجمع را چگونه تعیین می کنیم؟ (مثال یک مرحله اضافی) عالمت صفر چیست؟ مثبت یا منفی؟ 134 \cpeg323-04F\Topic0.ppt 06/15/26 مکمل 2 اعداد و نمایش آنها یکی نیست. نمایش عدد ،یک قرارداد تعریف شده برای بیان آن است. یک عدد می تواند دارای نمایشهای متفاوتی باشد مثال BCDمبنای ،16مکمل دو و غیره. مکمل دو :یک نوع از نمایش که بصورت زیر تعریف شده است: نمایش ‏bn-1 bn-2 ……b1b0 135 عدد ‏n 2 ) bn 1 * (  2 n 1 )   (bi * 2i ‏i 0 \cpeg323-04F\Topic0.ppt 06/15/26 مکمل دو bn 1 * (  2 06/15/26 0 1 2 3 4 5 6 7 n 1 0000 0001 0010 0011 0100 0101 0110 0111 n 2 )   (bi * 2i ) i 0 87654321- 1000 1001 1010 1011 1100 1101 1110 1111 \cpeg323-04F\Topic0.ppt bn-1 bn-2 ……b1b0 136 صحیح با عالمت(مکمل دو) مرجعKatz: Contemporary : ‏Logic Design, p243 (برای 4بیت ) +0 +2 چرا 1111و 0000همسایه اند؟ مفهوم بیت سوم چیست؟ عالمت صفر چیست؟ کوچکترین عدد کدامست؟ بزرگترین عدد کدامست؟ 137 0000 +1 0001 -1 1111 1110 0010 -2 1101 -3 0011 +3 -4 1100 0100 1011 -5 0101 1010 +4 +5 +6 1001 0110 0111 +7 \cpeg323-04F\Topic0.ppt 1000 -6 -7 -8 06/15/26 مکمل دو نمایش یک عدد منفی x- از نمایش عدد Xتا نمایش x- نمایش هر biرا معکوس کرده ،سپس با 1 جمع کنید. ‏bn-1 bn-2 ……b1b0 عدد ‏x ‏bn-1bn-2 ……b1b0 ‏x- اثبات درستی ‏ میانبر :از با ارزشترین بیت تا کم ارزشترین 1هر بیت را معکوس کنید و کم ارزشترین یک را 1نگاه دارید. ‏Example: - (0100) = 1011 + 1 = 1100 ‏Example: 10010 = 01100100  10011100 = -10010 138 \cpeg323-04F\Topic0.ppt 06/15/26 گنجاندن اعداد کوچکتر در بیتهای بیشتر چرا الزم است؟ مقایسه یک integerبا یک : long integerتغییر نوع بارگذاری یک بایت در یک کلمه برای اضافه کردن یک بخش فوری به یک عدد 32بیتی واحد محاسبه و منطق MIPSفقط با مقادیر موجود در رجیسترهای 32بیتی کار می کند. چگونه می توان با اندازه های کوچکتر کار کرد؟ در مورد اندازه های بزرگتر چطور؟ 139 \cpeg323-04F\Topic0.ppt 06/15/26 گنجاندن اعداد کوچکتر در بیتهای بیشتر ‏Example(2-bit): 10= 1 *(-21)+0 *20=-210 نمایش -2مبنای 10در 4بیت کلمه :آیا می توانید آنرا انجام دهید؟ چه چیزی کشف می شود؟ تکرار بیت عالمت در بیتهای دیگر(گسترش عالمت) 0010 0000 >- 0010 1010 1111 >- 1010 () ? = 1x(2^(-7) + 111 1010نکته! اثبات ؟ 140 \cpeg323-04F\Topic0.ppt 06/15/26 جمع و تفریق جمع :درست مانند دوران شیرین دبستان 0110 0001 + تفریق a-b=a+(-b) : اعمال مکمل دو ساده است 0111 =0111-0110 1010+ 1 1 10001 بنابراین 0001 =0110-0111 آیا شما مخصوصا بیتهای عالمت را دستکاری نموده اید؟ 141 \cpeg323-04F\Topic0.ppt 06/15/26 جمع و تفریق صبر کنید! یک بیت اضافی گم شده است! 0111 =0111-0110 چرا 1می تواند حذف 1010+ شود؟ 10001 زیرا اما رفتار می کند در جمع مانند 0*23 + 1*23 1*23 10 1 1 ‏is 0*2 + )1*(-23 1*23 3 0 از دیدگاه 1بیت 0=1+1=1-1 : بنابراین تا زمانیکه شما carryبوجود آمده بوسیله 1( 1+1سبز) را داده اید. 142در نظر نگرفته اید ،درست انجام 06/15/26 \cpeg323-04F\Topic0.ppt جمع و تفریق سئواالت: آیا شما یک جمع کننده و یک تفریق کننده دارید؟ در مورد اعداد بدون عالمت چطور؟(یک جمع کننده دیگر؟) مزایای استفاده از مکمل 2 تفریق می تواند از منطق مشترکی با جمع استفاده کند بیت عالمت می تواند مانند یک بیت معمولی عدد رفتار کند اینها نکات زیرکانه ای هستند . 143 \cpeg323-04F\Topic0.ppt 06/15/26 سرریزی جمع: 1111 0111 0110 + 1000+ عالمت ورودی چیست؟ عالمت خروجی چیست؟ آیا امکان وقوع سرریزی در جمع یک عدد مثبت و یک عدد منفی وجود دارد؟ امکان وقوع سرریز با صفر وجود دارد؟ اعمال A+Bو A-Bرا مالحظه کنید. 144 \cpeg323-04F\Topic0.ppt 06/15/26 سرریزی جمع 1111 0111 1000 + 0110 + 101111101 عالمت ورودی چیست؟ عالمت خروجی چیست؟ 145 \cpeg323-04F\Topic0.ppt 06/15/26 کشف سرریزی سرریزی زمانی اتفاق می افتد که: جمع دو عدد منفی یک عدد مثبت بدهد. جمع دو عدد مثبت یک عدد منفی بدهد. یا یک عدد منفی را از مثبت تفریق کنیم و نتیجه منفی بگیریم یا یک عدد مثبت را از منفی تفریق کنیم و نتیجه مثبت بگیریم در مورد جمع و تفریق اعداد بدون عالمت چطور؟ 146 \cpeg323-04F\Topic0.ppt 06/15/26 کار CPUدر برابر سرریزی چیست؟ نادیده بگیرد؟ هیچ وقت نمی خواهد سرریزی آشکار شود :MIPS( Addu, addiu, subu عدم تولید سریز) تولید یک تله که بر اساس آن برنامه نویس بتواند با آن کار کند. یک استثنا (وقفه)رخ دهد کنترل به آدرس از پیش تعریف شده استثنا پرش کند ذخیره آدرس مکان وقفه برای امکان بازگشت جمع ،تفریق 147 \cpeg323-04F\Topic0.ppt 06/15/26 دستورالعمل ها سنجش اعداد بدون عالمت sltu: set on less than unsigned sltiu: set on less than immediate unsigned اعداد با عالمت slt: set on less than slti: set on less than immediate چیست؟s1$ وs0$ مقادیر:مثال $s0= 1111 1111 1111 1111 1111 1111 1111 1111 $s1= 0000 0000 0000 0000 0000 0000 0000 0001 (1) slt $t0, $s0, $s1 (2) sltu $t1, $s0, $s1 06/15/26 \cpeg323-04F\Topic0.ppt 148 مثال مقادیر s0$و s1$چیست؟ $s0= 1111 1111 1111 1111 1111 1111 1111 1111 $s1= 0000 0000 0000 0000 0000 0000 0000 0001 پاسخ: slt $t0, $s0, $s1 --1است t0$اگر هر دو با عالمت باشند sltu $t1, $s0, $s1 -- 0است t1$اگر هر دو بدون عالمت باشند 149 \cpeg323-04F\Topic0.ppt 06/15/26 دستورالعمل ها ذخیره سازی/بارگذاری lb: load byte  lbu: load byte unsigned  lb $s1, 100($s2)Example: چیستs0$مقادیر ?When memory[$s2+100] = 0000 0000  ?When memory[$s2+100] = 0000 0001  ?When memory[$s2+100] = 1111 1111  lbu $s1, 100($s2)Example: چیستs1$مقادیر ?when memory[$s2+100] = 1111 1111  06/15/26 \cpeg323-04F\Topic0.ppt 150 طراحی پردازش طراحی اجزا آنها چگونه در کنار هم قرار می گیرند تجزیه باال به پایین بخشهای مختلط ترکیب پایین به باالی بخشهای ساده 151 \cpeg323-04F\Topic0.ppt 06/15/26 مسئله :طراحی واحد محاسبه و منطق عملیات ‏add, addu, sub, subu, addi, addiu  جمع کننده تفریق کننده مکمل 2با آشکار سازی سرریز ‏and, or, andi, ori  اعمال بیتی مجموع اعمال = 10 152 \cpeg323-04F\Topic0.ppt 06/15/26 طراحی :روش تقسیم و غلبه شکستن مسئله به بخشهای ساده تر کار با اجزا قرار دادن قطعات با یکدیگر بازبینی راهکارها در نهایت مثال :جدا کردن دستورات فوری از بقیه دستورات پردازش فوریها قبل از ALU اکنون ورودیهای ALUیک شکل هستند. 6 عمل غیر فوری باقی مانده است نیازمند 3بیت برای تعیین مد ALUاست 153 \cpeg323-04F\Topic0.ppt 06/15/26 ALU (ALU Interface) محیط : بیتی طراحی خواهیم کرد با محیط زیرALU 32 ما یک A B 32 32 Z V C32 3 ALU 32 Z =1, if Result=0 V= 1, if Overflow C32 = 1, if Carry-Out 06/15/26 Result \cpeg323-04F\Topic0.ppt ALUop ALUOp 000 001 010 110 111 | Function | AND | OR | ADD | SUBTRACT | SET-ON-LESS-THAN 154 طراحی :کاهش مسئله به یک مسئله ساده تر برای این مسئله ،ما ALU 32بیتی را به بخش ساده تر یک بیتی کاهش می دهیم. مسائل ترکیبی بزرگ را به یک مسئله ترکیبی کوچکتر تغییر می دهیم بخشها را برای حل مسئله بزرگ در کنار هم قرار می دهیم. 155 \cpeg323-04F\Topic0.ppt 06/15/26 طراحی با بالک دیاگرام سطح پایین تر بالک ALU یک بیتی برای یک ALU 32 بیتی 32بار تکرار می کنیم ‏Replicate 32 ‏times for a 32bit ALU 156 \cpeg323-04F\Topic0.ppt 06/15/26 بالک ALUیک بیتی تقسیم به بالکهای جدا و مستقل منطق محاسبه تکمیل هر بالک در این مرحله برای تخلیص بیشتر تکمیل بالکهای منطقی تکمیل انتخاب عمل تجزیه بالکهای محاسباتی به بخشهای ساده تر 157 \cpeg323-04F\Topic0.ppt 06/15/26 تمام جمع کننده Full Adder تمام جمع کننده ،یک بالک ساخته بنیادی در ALUاست. یک تمام جمع کننده ،جمع یک بیت را انجام می دهد. ‏ai+ bi + ci = 2ci+1 + si 1 1 1 0 0101 0111 1100 158 ‏ci ‏ai ‏bi ‏si ‏bi ai ‏ci+1 ‏ci ‏FA ‏si \cpeg323-04F\Topic0.ppt ‏ci+1 06/15/26 جدول درستی تمام جمع کننده تک عدد از ورودیها یک،” است اگر یکSi ،“1 .باشد 1 عدد (یا بیشتراز) ورودیها2 ” است اگرCi+1 ،“1 06/15/26 ai 0 0 0 0 1 1 1 1 bi 0 0 1 1 0 0 1 1 si aibici  aibi ci  aibi ci  aibici ci ci+1 si .باشند s i ai  bi  ci 0 0 0 1 0 1 ci  1 aibici  aibici  aibi ci  aibici 0 0 1 ci  1 aibi  aici  bici 1 1 0 ci  1 aibi  ci (ai  bi ) 0 0 1 ci  1 aibi  ci (ai  bi ) 1 1 0 0 1 0 1 1 \cpeg323-04F\Topic0.ppt 1 159 طراحی تمام جمع کننده 7 gate 9 یک پیاده سازی ممکن از یک تمام جمع کننده که بکار برده است bi ai si ai  bi  ci ci  1 aibi  ci (ai  bi ) ai  bi (ai  bi )aibi ci ci  1 06/15/26 \cpeg323-04F\Topic0.ppt si 160 یک بیتیALU bi ALUop 2 lessi 7 ai bi ai lessi 1-bit ALU ci+1 ALUOp 000 001 010 110 111 06/15/26 ri ci ALUop2:0 O X 8 1 R | Function | AND | OR ci  1 | ADD | SUBTRACT | SET-ON-LESS-THAN \cpeg323-04F\Topic0.ppt ci 0 2 1 ri 3 ALUop1,0 161 MSB یک بیتی برایALU ai lessi 7 بایدMSB برایALU bi ALUop 2 سرریزی را آشکار و عالمت نتیجه را نیز ci V .نشان دهد V cn  cn  1 set ( A  B ) ci  1 0 06/15/26 set \cpeg323-04F\Topic0.ppt 2 1 ri 3 ALUop1,0 162 واحدهای محاسبه منطق()ALUبزرگتر سه تا واحد محاسبه ومنطق یک بیتی و یک واحد محاسبه ومنطق یک بیتی MSBو 4تا گیت NORمیتوانند باهم الحاق شوند و تشکیل یک واحد محاسبه و منطق ( 4 )ALUبیتی را دهند. ‏b3 a3 0 ‏b2 a2 0 ‏b1 a1 0 ‏bo a0 ‏c2 ‏c1 ‏c0=ALUop2 1-bit c3 1-bit 1-bit 1-bit ‏MSB ‏ALU ‏ALU ‏ALU ‏ALU ‏ALUop2:0 ‏r3 ‏r2 ‏r1 ‏r0 ‏c4 ‏V ‏set ‏Z 31عدد واحد محاسبه و منطق یک بیتی و یک واحد محاسبه ومنطق یک بیتی MSBو 32تا گیت NORمی توانند باهم الحاق شوند و تشکیل یک واحد محاسبه و منطق ( 32 )ALUبیتی را می دهند 163 \cpeg323-04F\Topic0.ppt 06/15/26 محاسبه تعداد گیتها ‏bi ALUop 2 ‏lessi ‏ai ‏ ‏ ‏ ‏ 7 فرض کنید مالتی پالکسر 4ورودی=5گیت گیت XOR=3گیت گیت AND/OR=1گیت وارونه سا ز= ./5گیت چند تا گیت نیاز است به وسیله ‏ ‏ ‏ ‏ ‏ci یک واحد محاسبه منطق 1بیتی؟ یک واحد محاسبه منطق 4بیتی؟ یک واحد محاسبه منطق 32بیتی؟ یک واحد محاسبه منطق nبیتی؟ ALUop1,0 ‏ci  1 3 2 1 0 ‏ri 164 \cpeg323-04F\Topic0.ppt 06/15/26 محاسبه تعداد گیتها فرض کنید ‏lessi مالتی پالکسر 4ورودی=5گیت گیت XOR=3گیت گیت AND/OR=1گیت وارونه سا ز= ./5گیت ‏ai 7 ‏ ‏ ‏ ‏ ‏bi ALUop 2 چند تا گیت نیاز است به وسیله یک واحد محاسبه منطق 1بیتی؟16 یک واحد محاسبه منطق 4بیتی؟ 4*16 یک واحد محاسبه منطق 32بیتی؟ 32*16 یک واحد محاسبه منطق nبیتی؟ واحدnمحاسبه و منطق n در یک *16 بیتی( )n-1عدد گیت ORبا 2 ورودی و یک وارونه ساز و یک گیتXOR ‏ci ‏ci  1 ‏ALUop1,0 3 2 1 0 ‏ri 165 \cpeg323-04F\Topic0.ppt 06/15/26 تاخیر گیت ها ‏bi ALUop 2 ‏ ‏ ‏ ‏ ‏ یک واحد محاسبه منطق 1 بیتی؟10t یک واحد محاسبه منطق4 بیتی؟ یک واحد محاسبه منطق 32 بیتی؟ یک واحد محاسبه منطق n بیتی؟ ‏ ‏ چقدر است تاخیر برای محاسبه zتاخیر اضافه نیاز است 166 7 فرض کنیدتاخیرهای مالتی پالکسر 4ورودی=2t گیت XOR=2t گیت AND/OR=1t وارونه سا ز= 1t ‏ ‏lessi ‏ai ‏ci ‏ci  1 ‏ALUop1,0 \cpeg323-04F\Topic0.ppt 3 2 1 0 ‏ri 06/15/26 جمع کننده کری موج دار در طراحی قبلی کری“موج دار شده“از یک واحد محاسبه و منطق یک بیتی برای بعدی تولید می شود ‏bo a0 ‏b1 a1 ‏b2 a2 ‏b3 a3 ‏c4 ‏c3 ‏c2 ‏c1 ‏c0 13t 1-bit 11t 1-bit 9t 1-bit 7t 1-bit ‏ALU ‏ALU ‏ALU ‏ALU 10t 12t 14t ‏r0 ‏r1 ‏r2 16t ‏r3 این ها موجب می شوند که تا اندازه ای طراحی کند شود ‏Zدر لحظه 19tآماده است 167 \cpeg323-04F\Topic0.ppt 06/15/26 تاخیر گیت ‏lessi ‏ai 7 ‏ ‏ ‏ ‏ فرض کنیدتاخیرهای ‏bi ALUop 2 مالتی پالکسر 4ورودی=2t گیت XOR=2t گیت AND/OR=1t وارونه سا ز= 1t چقدر است تاخیر یک واحد محاسبه منطق 1بیتی؟ 10t یک واحد محاسبه منطق 4بیتی؟ 16t یک واحد محاسبه منطق 32بیتی؟ ‏ci (t=72t)8+32*2 یک واحد محاسبه منطق nبیتی؟ (t)2n+8 ‏ALUop1,0 ‏log2(n)سطح ORدوورودی و 1 وارونه سازبرای محاسبه Zنیاز \cpeg323-04F\Topic0.ppt 168داریم ‏ci  1 3 2 1 0 ‏ri 06/15/26 Carry Lookahead Adder (CLA) کری ها به صورت همزمان از یکCLA در یک محاسبه می شوندcarry lookahead logic(CLL) b3 a3 1-bit ALU* c4 06/15/26 b2 a2 c3 1-bit ALU* b1 a1 c2 1-bit ALU* bo a0 c1 1-bit ALU* c0 r3 p3 g3 r2 p2 g2 r1 p1 g1 r0 p0 g0 Carry Lookahead Logic \cpeg323-04F\Topic0.ppt 169 معادله منطقی کری معادله منطقی کری هست: ‏C i +1 = a i bi + (a i + bi ) C i ما یک سیگنال مشابه تعریف می کنیم ‏propagate = a i + bi ‏pi و یک سیگنال تولید میشود generate ‏a i bi = g i این امکان را ایجاد می کند که معادله منطقی کری دوباره به صورت زیر نوشته شود ‏C i+1= g i +p i c i 170 \cpeg323-04F\Topic0.ppt 06/15/26 Carry Lookahead Logic برای یک carry lookahead adder 4بیتی کری ها به صورت زیر محاسبه می شوند ‏c1 = g0 + p0c0 )c2 = g1 + p1c1= g1 + p1(g0 + p0c0 = g1 + p1g0 + p1p0c0 )c3 = g2 + p2c2= g2 + p2(g1 + p1g0 + p1p0c0 = g2 + p2g1 + p2p1g0 + p2p1p0c0 ‏c4 = g3 + p3c3= g3 + p3(g2 + p2g1 + p2p1g0 + )p2p1p0c0 = g3 + p3g2 + p3p2g1 + p3p2p1g0 + ‏p3p2p1p0c0 چند تا گیت CLL 4بیتی نیاز داریم اگرکه گیت ها بتوانند گنجایش ورودی نا محدود داشته باشند؟ اگر هرسطح منطقی تنها تاخیر 1tداشته باشدCLLدارای 2tتاخیر است در نتیجه این تمرین ممکن است واقع بینانه نباشد. 171 \cpeg323-04F\Topic0.ppt 06/15/26 تعدیل کردن واحد محاسبه ومنطق یک بیتی ‏bi ALUop 2 ‏lessi 7 چه طور ما می توانیم یک واحد محاسبه و منطق یک بیتی را تعدیل کنیم اگر که در CLAمورد استفاده باشد؟ چند تا گیت تعدیل شده برای واحد محاسبه و منطق یک بیتی نیازاست؟ چند تا گیت برای CLA 4بیتی نیاز است؟ چقدر تاخیر داریم تا زمانی که PiوGiآماده شوند؟ ‏ci ‏ci  1 ‏ALUop1,0 172 ‏ai \cpeg323-04F\Topic0.ppt 3 2 1 ‏ri 0 06/15/26 بیتیCLA 4 تعیین زمان کری ها به صورتCarry lookahead adder در یک Carry lookahead logic همزمان محاسبه می شوند از b3 a3 b2 a2 c3 1-bit 1-bit ALU* 5t ALU* 10t 5t c4 b1 a1 c2 bo a0 c1 1-bit 1-bit ALU* 5t ALU* c0 3t 3t r3 p3 g3 r2 p2 g2 r1 p1 g1 r0 p0 g0 Carry Lookahead Logic گیت احتیاج دارد بدون74=14+4*15 این طراحی به zیاv محاسبه 06/15/26 \cpeg323-04F\Topic0.ppt 173 واحد محاسبه و منطق 16بیتی .ورژن1 یک ALU 16بیتی ساخته شده از الحاق کردن 4تا CLA 4بیتی و اجازه انتقال کری ”موج دار “بین ”بالک های“ 4بیتی ‏b3:0 a3:0 ‏b15:12 a15:12 b11:8 a11:8 b7:4 a7:4 ‏c16 ‏c12 ‏c8 ‏c4 ‏c0 11t 4-bit 9t 4-bit 7t 4-bit 5t 4-bit ‏CLA ‏CLA ‏CLA ‏CLA 10t 12t 14t ‏r3:0 ‏r7:4 ‏r11:8 16t ‏r15:12 این طراحی نیاز دارد به 296=4*74گیت بدون محاسبه V یاZ 174 \cpeg323-04F\Topic0.ppt 06/15/26 واحد محاسبه و منطق 16بیتی . ورژن2 پیشنهاد دیگر استفاده از دومین سطح Carry lookahead ‏logicاست. این پیشنهاد سریعتر است اما به گیت های بیشتری نیاز دارد 310=14*5+15*16تا گیت. ‏b3:0 a3:0 ‏c0 ‏c4 4-bit 4-bit *CLA* 7t CLA 5t 175 ‏b15:12 a15:12 b11:8 a11:8 b7:4 a7:4 ‏r3:0 ‏r7:4 ‏c8 ‏c12 4-bit 4-bit *CLA* 7t CLA ‏r11:8 ‏Carry ‏Lookahead Logic \cpeg323-04F\Topic0.ppt 14t 5t ‏r15:12 ‏c16 06/15/26 CLA 4بیتی ‏CLA 4بیتی( )BLOCK CLAشبیه اولین CLA 4بیتی است به جز محاسبات CLLیک ”تولید بالک“ و ”منتشر کردن بالک“ به جای خروجی کری بدین ترتیب محاسبه ‏c4 = g3 + p3g2 + p3p2g1 + p3p2p1g0 + ‏p3p2p1p0c0 جایگزین شده به وسیله ‏P3:0 = p3p2p1p0 ‏G3:0 = g3 + p3g2 + p3p2g1 + p3p2p1g0 ‏Note: c4 = G3:0 + P3:0c0 این پیشنهاد محدود می کند حداکثر Fanرا به 4و CLLهنوز نیاز به 14گیت دارد 176 \cpeg323-04F\Topic0.ppt 06/15/26 نتایج یکn ALUبیتی می تواند به وسیله الحاق کردن n تا ALUیک بیتی طراحی شود CLL .می تواند برای افزایش سرعت محاسبات استفاده شود. انوع گوناگون گزینش های طراحی برای طراحی ALUوجود دارد بهترین طراحی بستگی دارد به ناحیه تاخیر و توان نیازمندی ها که براساس تنوع تکنولوژی اصولی است 177 \cpeg323-04F\Topic0.ppt 06/15/26 ضرب وتقسیم صحیح 06/15/26 \cpeg323-04F\Topic0.ppt 178 ضرب صحیح بدون عالمت مثال مداد و کاغذ مضروب 1000 مضروب فیه * 1001 1000 0000 0000 1000 حاصلضرب 01001000 179 \cpeg323-04F\Topic0.ppt 06/15/26 مشاهدات بیت حاصلضربm+n=بیتn*بیتm A * 2 i if Bi == 1 مرحلهi انباشته های 0 A3 P7 06/15/26 P6 0 0 A3 A2 A1 A3 A2 A1 A0 A3 A2 A1 A0 A2 A1 A0 P5 P4 P3 0 A0 B0 B1 B2 B3 P2 \cpeg323-04F\Topic0.ppt P1 P0 180 این چگونه کار می کند؟ در هر مرحله 2بار به چپ شیفت ‏B0 میدهد. استفاده از بیت بعدی Bبرای اینکه تعیین کند که آیا با مضروب ‏B1 شیفت داده شده جمع شود یا نه. جمع کردن 2nبیت حاصل ناتمام در هر مرحله ‏B2 ‏B 0 0 0 0 ‏A3 A2 A1 A0 0 0 0 ‏A3 A2 A1 A0 ‏A3 A2 A1 A0 ‏A3 A2 A1 A0 3 ‏P7 P6 P5 P4 P3 P2 P1 P0 181 \cpeg323-04F\Topic0.ppt 06/15/26 محاسبات ساده ریاضی ‏A*B اگرN Bتا بیت داشته باشد ‏n 1 ‏n 1 ) B  ( 2i * Bi )Product n  ( 2i * Bi * A ‏i 0 ‏i 0 سپس زمانی کهN+1 Bبیت دارد ‏n ‏Product n1  ( 2i * Bi * A) 2 n * Bn * A  Product n ‏i 0 ‏Aرایک مرتبه به چپ شیفت دادن:2i*A . این واضح است که ضرب مشتمل بر شیفت و جمع تکراری است. 182 \cpeg323-04F\Topic0.ppt 06/15/26 سخت افزار ضرب ورژن1 شیفت چپ مضروب بیت64 مضروب فیه بیت32 شیفت راست 183 کنترل بیتیALU64 نوشتن \cpeg323-04F\Topic0.ppt حصلضرب بیت64 06/15/26 الگوریتم ضرب ورژن1 شروع مضروب فیه 0 = 0تست 1. مضروب فیه0 مضروب فیه1=0 مضروب را جمع کن با حاصلضرب& نتیجه1a را در ثبات حاصلضرب قرار بده یک بیت مضروب را به چپ شیفت 2. .بده یک بیت مضروب فیه را به راست شیفت بده 3. نه 32 < :تکرار مرتبه تکرار 32 184 بله \cpeg323-04F\Topic0.ppt پایان مضروب فیه حاصلضرب 0000مضروب 00000010 0011 0000 00000100 0001 00000010 00001000 0000 00000110 00000110 06/15/26 نظارت بر روی ورژن1ضرب نصف بیتها در مضروب همیشه صفر است =>64 بیت جمع کننده هدر رفته است مقدار دادن در سمت چپ مضروب به عنوان شیفت دادن=> کم ارزش ترین بیت حاصلضرب هرگز تغییر نمی کند به جای اینکه مضروب را به چپشیفت دهیم .حاصل را به راست شیفت می دهیم؟ 185 \cpeg323-04F\Topic0.ppt 06/15/26 سخت افزار ضرب ورژن2 مضروب بیت32 مضروب فیه بیت32 شیفت راست 186 ALUبیت32 شیفت راست کنترل نوشتن \cpeg323-04F\Topic0.ppt حاصلضرب بیت64 06/15/26 الگوریتم ضرب ورژن2 شروع مضروب فیه 0 = 0تست 1. مضروب فیه0 مضروب فیه1=0 مضروب را جمع کن با نیمه چپ حاصلضرب& نتیجه1a را درنیمه چپ ثبات حاصلضرب قرار بده یک بیت ثبات حاصلضرب را به راست 2. .شیفت بده یک بیت مضروب فیه را به راست شیفت بده 3. نه 32 < :تکرار مرتبه تکرار 32 187 بله \cpeg323-04F\Topic0.ppt پایان 06/15/26 حاصلضرب :1 :2 :3 :1 :2 :3 :1 :2 :3 :1 :2 :3 188 مضروب فیه مضروب 0000 0000 0000 0010 0000 0001 0000 0001 0000 0011 1000 0001 1000 0001 1000 0001 1100 0000 1100 0000 1100 0000 0110 0000 0110 0000 0011 0011 0011 0001 0001 0001 0000 0000 0000 0000 0000 0000 0000 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0110 0000 0000 0010 \cpeg323-04F\Topic0.ppt 06/15/26 چه چیزی روی می دهد؟ 0 مضروب فیه هنوز می ماند و حاصلضرب به میBکند راست حرکت 0 ‏B1 ‏B2 ‏B3 189 ‏P0 ‏P1 ‏P2 ‏P3 \cpeg323-04F\Topic0.ppt ‏P4 0 0 0 ‏A0 ‏A1 ‏A2 ‏A3 ‏A0 ‏A1 ‏A2 ‏A3 ‏A0 ‏A1 ‏A2 ‏A3 ‏A0 ‏A1 ‏A2 ‏A3 ‏P5 ‏P6 ‏P 7 06/15/26 مشاهدات ورژن2ضرب فضای هدر رفته ثبات حاصلضرب که دقیقا هم اندازه مضرئب فیه است =>به هم پیوستن ثبات مضروب فیه و ثبات حاصلضرب 190 \cpeg323-04F\Topic0.ppt 06/15/26 سخت افزار ضرب ورژن2 مضروب بیت32 ALUبیت32 شیفت راست کنترل 191 نوشتن حاصلضرب )مضروب فیه( \cpeg323-04F\Topic0.ppt بیت64 06/15/26 الگوریتم ضرب ورژن3 شروع کردنحاصلضرب1 = 0 حاصلضرب 0 = 0تست 1. حاصلضر ب0 جمع کن مضروب را با نیمه چپ حاصلضرب& نتیجه را درنیمه چپ ثبات حاصلضرب قرار .یک بیت ثبات حاصلضرب را به راست شیفت بده 2. نه 32 < :تکرار مرتبه32 تکرار بله 32 :تکرار 192 پایان \cpeg323-04F\Topic0.ppt 06/15/26 مشاهدات ورژن3ضرب دو مرحله در هر بیت است برای اینکه مضروب فیه & حاصلضرب به هم می پیوندد. ثبات های MIPS Lo,Hiهستند نیمه چپ و راست حاصلضرب ‏MIPSدستور العمل ضرب بدون عالمت را به ما می دهد درمورد ضرب عالمت دار چی؟ آسانترین راه حل زمانی است که هردو مثبت باشند و به یاد داشته باشید داده تکمیل شده اجرا می شود(بیت عالمت را دور بریز اجرا برای 31مرحله) کاربرد تعریف متمم 2 نیاز به گسترش عالمت داده های بخصوص و طبقه بندی آنها در انتها الگوریتم بوت راه فوق العاده برای ضرب اعداد عالمت دار است و از سخت افزار یکسان مانند قبلی استفاده میکند و چرخه ها را ذخیره می کند می تواند تعدیل شود بهto handle multiple bits at a time ‏ 193 \cpeg323-04F\Topic0.ppt 06/15/26 الگوریتم بوت ابتدای اجرا وسط اجرا پایان اجرا 0 1 1 1 1 0 (بیت راست 0 1 1 0 بیت جاری) توضیح مثال 1 1وسط اجرا از 0001111000 1S شروع اجرا از 1S 0 0 0001111000 ‏OP ‏sub ‏none پایان اجرای0001111000 1s ‏add وسط اجرا از 0001111000 1s ‏none ابتکاری برای سرعت (موقعی که شیفت سریعتر از addبود) .یک کنید رشته از 1sها را در مضروب فیه با نخستین تفریق جایگزین –1 + 10000 ما ابتدا یک 1می بینیم و سپس در جمع 01111 بعدی ////////////////////////////// 06/15/26 194 \cpeg323-04F\Topic0.ppt )2*7(مثال بوت عملگر مضروب حاصل بعدی؟ 0. initial value 0010 0000 0111 0 10 -> sub 1a. P = P - m 1110 1b. 0010 2. 0010 3. 4a. 0010 0010 1111 1100 1 +0010 0001 1100 1 shift 4b. 0010 0000 1110 0 done 06/15/26 +1110 1110 0111 0 shift P (sign ext) 1111 0011 1 1111 1001 1 \cpeg323-04F\Topic0.ppt 11 -> nop, shift 11 -> nop, shift 01 -> add 195 )2*-3(مثال بوت مضروب عملگر بعدی 0. initial value 0010 0000 1101 0 1a. P = P - m 1110 1b. 0010 2a. 2b. 3b. 4a 4b. 0010 3a. 06/15/26 0010 0010 0010 10 -> sub +1110 1110 1101 0 1111 0110 1 + 0010 0001 0110 1 0000 1011 0 +1110 1110 1011 0 1111 0101 1 1111 0101 1 1111 1010 1 \cpeg323-04F\Topic0.ppt ? حاصل shift P (sign ext) 01 -> add shift P 10 -> sub shift P 11 -> nop shift done 196 ضرب عالمت دار آسانترین راه حل این است که هردو مثبت باشد به یاد داشته باشید که حاصل تکمیل شده اجرا می شود عالمت حاصلضرب را محاسبه می کند عملوندها را به اعداد مثبت تبدیل می کند ،بیت عالمت را دور می ریزد ،برای 31مرتبه اجرا می شود ،سپس نتیجه ثابت می شود. 197 \cpeg323-04F\Topic0.ppt 06/15/26 الگوریتم های سریعتر یا عمل ضرب الگوریتم بوت ضرب اعداد عالمت دار مانند قبل داز سخت افزار یکسان استفاده می کند و چرخه ها را ذخیره می کند بیتهای مضرب را در یک لحظه می تواند دستکاری کند استفاده کردن از یک آرایه آدرس مشاهدات این گونه نشان می دهد که :چه اضافه شود یا نشود مضروب را یک واحد شیفت می دهیم_این تصمیم می تواند کامل به صورت موازی انجام شود. 198 \cpeg323-04F\Topic0.ppt 06/15/26 مداد و کاغذ: تقسیم Quotient 1001 Divisor 1000 1001010 Dividend –1000 10 101 1010 –1000 Remainder 10 Dividend = Quotient * Divisor + Remainder 06/15/26 \cpeg323-04F\Topic0.ppt 199 سخت افزار تقسیم ورژن1 64بیت ثبات مقسوم علیه ،واحد محاسبه و منطق 64 بیتی ،ثبات باقی مانده ،ثبات خارج قسمت 32بیتی شیفت راست مقسوم علیه بیت62 شیفت چپ خارج قسمت ‏ALUبیتی64 بیت32 کنترل 200 نوشتن باقی مانده بیت64 \cpeg323-04F\Topic0.ppt 06/15/26 شروع:مقسوم را در باقی مانده قرار دهید الگوریتم تقسیم ورژن 1 م کنید ثبات مقسوم علیه را از ثبات باقی مانده 1. یجه را در ثبات باقی مانده قرار دهید باقی مانده < 0 تست کردن باقی مانده  0باقی مانده N+1مرحله برای nبیت خرج قسمت و باقی مانده ب.بازیابی مقدار اولیه با جمع ثبات2 شیفت به 2a. مقسوم علیه و قرار دادن مجموع در ثبات چپ ثبات خارج باقی مانده .شیفت ثبات خارج قسمت به قسمت و 1 چپ و صفر کردن کم ارزش ترین بیت کردن آخرین جدید بیت جدید سمت راست شیفت به راست ثبات مقسوم علیه به اندازه یک بیت 3- خیر 201 آیا سی و سومین مقسوم غلیه تکرار بله است؟ پایان \cpeg323-04F\Topic0.ppt باقی مانده 0000 0010 خارج قسم 00 0111 0000 06/15/26 مشاهدات تقسیم ورژن1 نصف بیت ها در مقسوم علیه همیشه صفر است =>نصف 64بیت جمع کننده هدررفته است =>نصف مقسوم علیه هدر رفته است به جای اینکه مقسوم علیه را شیفت به راست دهیم ،باقی مانده را شیفت به چپ می دهیم ؟ مرحله اول نمی تواند تولید یک خارج قسمت کند(به عبارت دیگر خیلی بزرگ است) =>به وسیله اجرای فرمان ها با شیفت اول و سپس تفریق می توان یک تکرار ذخیره کرد. 202 \cpeg323-04F\Topic0.ppt 06/15/26 سخت افزار تقسیم ورژن 2 32بیت ثبات مقسوم علیه 32 ،بیتALU ، 64بیت ثبات باقی مانده 32،بیت ثبات باقی مانده مقسوم علیه بیت32 شیفت چپخرج قسمت ALUبیت32 بیت32 شیفت چپ باقی مانده کنترل نوشتن 203 \cpeg323-04F\Topic0.ppt بیت64 06/15/26 شروع:مقسوم علیه را در باقی مانده قرار دهید الگوریتم تقسیم ورژن 2 شیفت بده ثبات باقی مانده را به چپ ثبات مقسوم را از نیمه چپ 2- ثبات باقی مانده کم کن&قرار بده نتیجه را در نیمه چپ ثبات باقی مانده باقی مانده < 0 آزمایش باقی مانده ‏ 0باقی مانده الف-مجموع بی مقدار اولیه با جمع ثبات مقسوم علیه و قرار دادن شیفت3به چپ ثبات3 سمت چپ ثبات باقیماندههمچنین شیفت ثبات خارج قسمت خارجبهقسمت و یک کردنجدید چپ و صفر کردن کم ارزش ترین بیت آخرین بیت جدید سمت راست ودومین خیر آیا سی باقی مانده تکرار است؟ بله 204 0010 \cpeg323-04F\Topic0.ppt پایان خارج قسمت مقسوم 0000 0111 0000 06/15/26 مشاهدات تقسیم ورژن2 حذف کردن ثبات خارج قسمت به وسیله بهم پیوستن با باقیمانده به عنوان شیفت چپ آغاز شیفت دادن باقی مانده به چپ مانند قبل پس از آن حلقه فقط محتوی 2مرحله است چون شیفت دادن ثبات باقی مانده هر دو شیفت ها باقی مانده در نیمه چپ و خارج قسمت در نیمه راست. در نتیجه به هم پیوستن 2ثبات به یکدیگر و فرمان های جدید عملگرها در این حلقه باقی مانده ای است که در یک لحظه بارها به چپ شیفت خواهد یافت بنابراین در مرحله تصحیح پایانی باید شیفت به عقب بدهیم که تنها باقی مانده در نیمه چپ ثبات باشد 205 \cpeg323-04F\Topic0.ppt 06/15/26 سخت افزار تقسیم ورژن 2 32بیت ثبات مقسوم 32 ،بیت ALU ، 64بیت ثبات باقی مانده ( ،صفر بیت خارج قسمت). مقسوم بیت32 ALUبیت32 شیفت چپ ”“LO )خارج قسمت( باقی مانده کنترل کردن نوشتن 206 ”“HI \cpeg323-04F\Topic0.ppt بیت64 06/15/26 شروع:مقسوم علیه را در باقی مانده قرار دهید شیفت بده ثبات باقی مانده را به چپ الگوریتم تقسیم ورژن 3 ثبات مقسوم را از نیمه چپ 2- ثبات باقی مانده کم کن&قرار بده نتیجه را در نیمه چپ ثبات باقی مانده باقی مانده < 0 آزمایش باقی مانده ‏ 0باقی مانده الف-مجموع بی مقدار اولیه با جمع ثبات مقسوم علیه و قرار دادن شیفت3به چپ ثبات3 ه سمت چپ ثبات باقیمانده همچنین شیفت ثبات باقی مانده به باقی مانده و یک کردنجدید چپ و صفر کردن کم ارزش ترین بیت آخرین بیت جدید سمت راست خیر آیا سی ودومین تکرار است؟ بله 207 \cpeg323-04F\Topic0.ppt پایان مقسوم باقی مانده 0111 0000 0010 06/15/26 مشاهدات تقسیم ورژن3 سخت افزار یکسان مانند ضرب:فقط به ALUنیاز داریم برای جمع یا تفریق 63 ،بیت شیفت به چپ یا راست ثبات های HIو loبه هم می پیوندند به عنوان ثبات 64 بیتی برای ضرب و تقسیم تقسیم عالمت دار:وووووووووووووووووووووووووووووو یادداشت:مقسوم علیه م باقی مانده باید هم عالمت باشند یادداشت:خارج قسمت منفی شده اگر عالمت مقسوم و عالمت باقی مانده مخالف باشند مثال : =-1باقی مانده و -7÷2=-3 ممکن است برای خارج قسمت خیلی بزرگ باشد :اگر تقسسیم صحیح 64بیتی به وسیله ، 1خارج قسمت64 بیت است 208 \cpeg323-04F\Topic0.ppt 06/15/26 فصل چهارم سنجش کارايی • سنجش :چه ،چرا ،چگونه. • معادله کارایی • قانون امدال •چگونه انرژی کارایی را محدود می کند. 209 \cpeg323-04F\Topic0.ppt 06/15/26 اغلب چه کسی CPUها را ارتقا می دهد یک حرفه ای که چرخه های CPUرا به پول تبدیل می کند ،و محدود به چرخه است 210 \cpeg323-04F\Topic0.ppt ‏Artist tool: ‏animation, ‏video special ‏effects. 06/15/26 برای خرید یک ماشین جدید چگونه تصمیم می گیرید؟ اندازه گیری “زمان اجرای” After Effectsدر “ظرفیت کاری” تولید خروجی تصویر ………………………//////////////////////////////////////////////////////////////////.. //////////////////////////////////////////////////////////////////// ‏Night flight ‏Movie ‏Goes ‏Here “”Night flight نقشه شهر و ابرها در آسمان بوسیله تصاویر فرموله محاسبه می شوند شدید ‏CPU I/Oناچیز 211 \cpeg323-04F\Topic0.ppt 06/15/26 کارایی و هزینه از نظر از لحاظ خرید مشتریCPU/ معین کردن یک مجموعه از ماشینها که دارای بهترین کارایی کمترین هزینه بهترین کارایی /هزینه از لحاظ طراحی مواجه با انتخاب طراحی است که دارای: بهترین بهبود کارایی کمترین هزینه بهترین کارایی /هزینه نیاز هر دو پایه ای برای مقایسه معیاری برای ارزیابی کارایی از انتخاب های 212هدف ما فهماندن مفهوم هزینه و \cpeg323-04F\Topic0.ppt 06/15/26 دو تصور از “کارایی” ‏Throughput )(pmph ‏Passengers ‏Speed ‏DC to Paris ‏Plane 286,700 470 610 mph 6.5 hours ‏Boeing 747 178,200 132 1350 mph 3 hours ‏BAD/Sud ‏Concodre کدامیک کارایی باالتری دارد؟ °زمان انجام کار(زمان اجرا) – زمان اجرا ،زمان پاسخ ،زمان برگشت °کارها در روز ،ساعت ،هفته ،ثانیه ،نانو ثانیه ( ... ،کارایی) – کارایی ،توان عملیاتی ،پهنای باند قرار دارند ،چرا؟ 213اغلب زمان پاسخ و توان عملیاتی در عکس هم \cpeg323-04F\Topic0.ppt 06/15/26 تعاریف کارایی کارایی میزان چیزهایی در ثانیه است بزرگتر بهتر است اگر به صورت عمده ،زمان پاسخ برای ما مهم باشد: ‏ = )performance(x 1 )execution_time(x “ X” nبار سریعتر از “ ”Yاست به معنی اینست که : )execution_time(Y)performance(X ---------------------- = ---------------------- = n )performance(Y )execution_time(X چه زمانی توان عملیاتی مهمتر از زمان اجراست؟ چه زمانی زمان اجرا از توان عملیاتی مهمتر است؟ 214 \cpeg323-04F\Topic0.ppt 06/15/26 مثال هایی از کارایی • زمانهای Concordeدر مقابل Boeing 747؟ بار سریعتر Concord is 1350 mph / 610 mph = 2.2 = 6.5 hours / 3 hours • • توان عملیاتی Concordeدر مقابل Boeing 747؟ ”Concord is 178,200 pmph / 286,700 pmph = 0.62 “times faster ”Boeing is 286,700 pmph / 178,200 pmph = 1.6 “times faster • • • در مورد توان عملیاتی Boeing 1.6 ،بار (“ )”%60سریعتر است. • در مورد زمان پرواز Concorde 2.2 ،بار(“ )”%120سریعتر است. • زمانیکه بحث کارایی پردازنده مطرح است،عمده تمرکز ما بر روی زمان اجرا برای “یک کار” است .چرا؟ 215 \cpeg323-04F\Topic0.ppt 06/15/26 درک کارایی چگونه بر زمان پاسخ و توان عملیاتی اثر می گذارد؟ موارد زیر احتماال، ‏ افزایش سرعت ساعت در یک پردازشگر معین. افزایش تعداد کارها در یک سیستم (مثال داشتن یک سرویس واحد کامپیوتری دارای چند کاربر). افزایش تعداد پردازنده ها در یک سیستم که از چند پردازنده استفاده می کند ( مانند یک شبکه از ماشینهای خود پرداز())ATM اگر یک پنتیوم 3یک برنامه را در 8ثانیه اجرا کند و یک PowerPcبرنامه ای مشابه را در 10ثانیه اجرا کند ،محصول پنتیوم چند بار سریعتر است؟ )n = 10 / 8 = 1.25 times faster (or 25% faster با این وجود چه چیزی باعث می شود که کسی PowerPCرا برای خرید انتخاب کند ؟ 216 \cpeg323-04F\Topic0.ppt 06/15/26 تعریف زمان زمان به چند طریق قابل تعریف است ،وابسته به اینکه چگونه مورد سنجش قرار دهیم: زمان پاسخ :مجموع زمان صرف شده برای تکمیل یک کار ،شامل زمان صرف شده برای اجرا در CPUدستیابی به دیسک و حافظه ،انتظار برای I/Oو دیگر پردازشها ،و سربار سیستم عامل. زمان اجرای :CPUمجموع زمانی که یک CPUبرای یک کار صرف می کند(به غیر از زمان I/Oیا اجرای برنامه های دیگر) .این زمان به طور ساده معروف به زمان CPUاست. زمان کاربر :CPUمجموع زمانهایی که CPUدر برنامه صرف می کند. زمان اجرای سیستمی : CPUمجموع زمانی که سیستم عامل صرف اجرای کارها در برنامه می کند. برای مثال :یک برنامه می تواند دارای زمان سیستمی CPU معادل 22ثانیه باشد ،یک زمان کاربر CPUبرابر 90ثانیه ،یک زمان اجرایی ،CPUمعادل 112ثانیه ،و یک زمان پاسخ برابر 162ثانیه باشد. 06/15/26 217 \cpeg323-04F\Topic0.ppt ساعت کامپیوتر ‏Clk چرخه ساعت یک ساعت کامپیوتر در یک نرخ ثابت انجام می گیرد و تعیین می کند چه زمانی رخدادها در سخت افزار قرار گیرند. °زمان چرخه ساعت مقدار زمان برای سپری شدن یک چرخه ساعت است (مثال 5نانوثانیه). °نرخ ساعت ،عکس زمان چرخه ساعت است. °مثال ،اگر یک کامپیوتر دارای زمان چرخه ساعت معادل 5 نانوثانیه باشد ،نرخ ساعت برابر است با: 1 ---------------------= 200 MHz -9 5 x 10 sec 06/15/26 218 \cpeg323-04F\Topic0.ppt معیارهای پایه ارزیابی مقایسه معیارهای ماشینها زمان اجرا توان عملیاتی زمان CPU : MIPSمخفف :میلیونها دستورالعمل در ثانیه : MFLOPSمیلیونها عمل ممیز شناور در هر ثانیهمقایسه مجموعه برنامه های استفاده شده در ماشینها مفهوم محاسباتی مفهوم محاسباتی سنگین Benchmarks219 \cpeg323-04F\Topic0.ppt 06/15/26 چه تعداد چرخه برای یک برنامه نیاز است؟ ممکن است تصور کرده باشید که تعداد چرخه ها = تعداد دستورالعملها باشد این تصور اشتباه است ،دستورالعملهای متفاوت ،در ماشینهای متفاوت زمانهای متفاوتی را صرف می کنند. 220 \cpeg323-04F\Topic0.ppt 06/15/26 تعداد چرخه های متفاوت برای دستورالعمل های متفاوت • تقسیم زمان خیلی بیشتری از جمع صرف می کند. اعمال ممیز شناور ،زمان بیشتری نسبت به نوع صحیح آن مصرف می کند. دسترسی به حافظه زمان بسیار بیشتری از دسترسی به ثباتها صرف می کند. 221 \cpeg323-04F\Topic0.ppt 06/15/26 اکنون که ما با مفهوم چرخه آشنا شدیم یک برنامه معین نیاز دارد به تعدادی از دستورالعملها تعدادی از چرخه های ساعت تعدادی از ثانیه ها ما یک لغت نامه برای شرح این کمیت ها داریم: زمان چرخه ساعت (ثانیه در هر چرخه) نرخ ساعت (سیکل در ثانیه) (CPIتعداد چرخه ها در هر دستورالعمل) یک برنامه ممیز شناور ممکن است دارای CPIباالتری باشد 222 \cpeg323-04F\Topic0.ppt 06/15/26 محاسبه زمان ‏CPU زمان اجرای یک برنامه معین می تواند مانند زیر محاسبه شود زمان چرخه ساعت xچرخه های ساعت = CPUزمان CPU از آنجا که زمان چرخه ساعت و نرخ ساعت عکس یکدیگرند نرخ ساعت/چرخه های ساعت =CPUزمان CPU تعداد چرخه های ساعت CPUمی تواند مانند زیر محاسبه گردد ‏CPUچرخه های ساعت = (دستورالعملها/برنامه) ( xچرخه های ساعت/دستورالعمل) = تعداد دستورالعملها x CPI بنابراین ‏CPUزمان = تعداد دستورالعملها x CPI xزمان چرخه ساعت ‏CPUزمان = تعداد دستورالعملها / x CPIنرخ ساعت واحدهای این ،اینگونه هستند ثانیه چرخه های ساعت دستورالعملها ثانیه = ---------------- x ---------------------- x ----------------- چرخه ثانیه دستورالعمل برنامه 223 \cpeg323-04F\Topic0.ppt 06/15/26 مثالی از محاسبه زمان CPU اگر یک کامپیوتر دارای نرخ ساعت MHZ50باشد ،چقدر طول می کشد تا یک برنامه دارای 1000دستورالعمل اجرا شود؟ CPIبرای این برنامه 3.5 است. استفاده از معادله / x CPIنرخ ساعت ‏CPUزمان = تعداد دستورالعمل 6 پس ‏CPUزمان = x 3.5 / (50 x 10 ) 1000 اگر نرخ ساعت CPUی یک کامپیوتر از MHZ200به MHZ 250افزایش یابد و بقیه فاکتورها یکسان باقی بمانند ،افزایش سرعت کامپیوتر چقدر است؟ 224 ‏MHz 250 نرخ جدید ساعت قدیمی CPUزمان 1.25 =--------------=-------------------------=--------------------\cpeg323-04F\Topic0.ppt ‏MHZ 200 نرخ قدیمی ساعت جدید CPUزمان 06/15/26 فاکتورهای موثر در می گیرند؟CPU کارایی زیر تاثیر چه فاکتورهایی از موارد° clock rateCPI instr. count Program Compiler ISA Organization Technology CPU CPUtime time Seconds Seconds 06/15/26 == Seconds Seconds == Instructions Instructions xx Cycles Cycles Program Program Program\cpeg323-04F\Topic0.ppt Program xx Instruction Instruction 225 Cycle Cycle فاکتورهای موثر در CPU می گیرند؟ کاراییزیر تاثیر چه فاکتورهایی از موارد° clock rateCPI * * * * * CPU CPUtime time Seconds Seconds 06/15/26 instr. count Program * * Compiler ISA * Organization Technology == Seconds Seconds == Instructions Instructions xx Cycles Cycles Program Program Program\cpeg323-04F\Topic0.ppt Program xx Instruction Instruction 226 Cycle Cycle محاسبه ‏CPI ،CPIمیانگین تعداد چرخه ها در هر دستورالعمل است اگر برای هر نوع دستورالعمل ،الزم است ما فرکانس ها و تعداد چرخه را به i ها را برای اجرای آن بدانیم ،ما می توانیم i CPI صورت زیر محاسبه کنیم: ‏CPI = Σ CPI x F برای مثال: % Time 23% 45% 14% 18% 100% 227 ‏CPI x F ‏i ‏i .5 1.0 .3 .4 2.2 ‏CPI ‏i 1 5 3 2 \cpeg323-04F\Topic0.ppt ‏Op ‏F ‏i ‏ALU 50% ‏Load 20% ‏Store 10% ‏Branch 20% ‏Total 100% 06/15/26 مسائل با میانگین حسابی تقاضاهایی که احتمال یکسانی برای اجرا ندارند 2 .تا ماشین که زمان بندی شدن برای 2آزمون کارایی: ‏Machine A ‏Machine B ‏Program1 2 seconds(%20) 6 seconds ‏Program2 12 seconds(%80) 10 seconds میانگین زمان اجرا=7= )12+2(/2ثانیه میانگین زمان اجرا= 8=)10+6(/2ثانیه میانگین زمان اجرای وزنی=Aثانیه 0.8*12+ 0.2*2=10 میانگین زمان اجرای وزنی=Bثانیه0.8*10 + 0.2*6=9.2 228 \cpeg323-04F\Topic0.ppt 06/15/26 خالصه ای از کارایی 2سنجش اصلی کارایی زمان اجرا:زمان انجام کار توان عملیاتی:تعداد کارهایی هستند که در یک واحد زمانی کامل می شوند کارآیی و زمان اجرا متقابل اند افزایش کارایی کاهش زمان اجرا را در پی دارد زمان اجرایی که به یک برنامه اختصاص داده می شود می تواند به صورت زیر محاسبه شود زمان = CPUتعداد دستورالعمل ها * * CPIزمان هر چرخه زمان =CPUتعداد دستورالعمل ها * /CPIآهنگ پالس ساعت این عوامل متآ ثر است از تکنولو ژی کامپایلر ،معماری مجموعه ذستور العمل ها ، سازمان دهی ماشین ،و تکنولو ژی زیر بنایی .زمانی که کارایی افزایش می یابد دقت کنید که چه رخدادهایی به طور متناوب اتفاق می افتد =>نمونه متداول سریعی ساخته می شود. به خاطر داشته باشید :بخشهای اشتراکی را سریعتر نمائید! 229 \cpeg323-04F\Topic0.ppt 06/15/26 آزمون های کارایی کامپیوتر آزمون کارایی ،یک برنامه یا مجموعه ای از برنامه هایی است که برای دستیابی کامپیوتر به کارایی استفاده می شود آزمون های کارایی به ما اجازه می دهند سنجش کارایی بر پایه زمان های اجرایی را می دهد آزمون های کارایی باید نمایش دهنده نوع درخواست های در حال اجرا در یک کامپیوتر باشند آزمون های کارایی نباید به عوامل دیگری در کامپیوتر وابسته باشند ،مثل موس ،کیبورد ،و... آزمون های کارایی می توانند در گونه های پیچیده و سودمندشان بسیار گوناگون باشند. 230 \cpeg323-04F\Topic0.ppt 06/15/26 انواع آزمون های کارایی معایب خیلی مشخص • غیر قابل حمل • رای اجرا یا سنجش سخت است• برای همانندسازی سخت است• مزایا هدف اصلی بار کاری نمایشگر• قابل حمل • کامال کاربردی• نشان دهنده کم• درخواست کامل آزمون های کارایی مثل آزمون های کارایی( )specپیشرفت های مفید • در واقعیت سیستم حافظه • قابل اندازه گیری نیست ”Small “Kernel ‏Benchmarks به اوج رسیدن“می تواند” • یک راه طوالنی از 231 درخواست کارایی باشد آسان برای اجرا در• اوایل طراحی چرخه قابلیت به اوج رسانیدن• آزمون های کارایی \cpeg323-04F\Topic0.ppt میکرو همانندی و پتانسیل گلوگاه 06/15/26 ها SPEC )(System Performance Evaluation Cooperative موسسه ارزیابی کارایی سیستم • • • • • آزمون های کارایی SPECبه شدت برای گزارش کارایی و کارایی PCبه کار می رود اولین دوره SPEC CPU89 شامل 10برنامه روی اعداد single دومین دوره SPEC CPU92 6(Spec CINT92تا برنامه صحیح) و 14(Spec CFP92تا برنامه ممیز شناور) فلگ های کامپایلر می توانند قرار بگیرند به طور متفاوت برای برنامه های متفاوت سومین دوره SPEC CPU95 قرار گیری جدید برنامه ها 8(SPEC CINT 95:تا برنامه صحیح) و SPEC 10 (CFP 95تا برنامه ممیز شناور) تنها فلگ کامپایلری که قرار می گیرد برای همه برنامه ها . 232 \cpeg323-04F\Topic0.ppt 06/15/26 SPEC چهارمین دوره SPEC CPU2000 • قرار گیری جدید برنامه ها 12(SPEC CINT2000:تا برنامه صحیح) و 14(SPEC CFP2000تا برنامه ممیز شناور) • تنها فلگ کامپایلری که قرار می گیرد برای همه برنامه ها . • گزارشات مستند نسبت ارزیابی برای SPECهستند • زمان CPUماشین مورد ارزیابی زمان CPUماشین مرجع 233 \cpeg323-04F\Topic0.ppt 06/15/26 دیگر آزمون های کارایی SPEC :JVM98 • اندازه گیری کارایی ماشین های مجازی :SFS97  اندازه گیری قوانین فایل سرویس دهند شبکه ()NFS :Web99  اندازه گیری کارایی در خواست های شبکه گسترده جهانی :HPC96  اندازه گیری کارایی گسترده در خواست های صنعتی ‏APC,MEDIA,OPC  اندازه گیری کارایی درخواست های گرافیکی برای اطالعات بیشتر درباره آزمون های کارایی SPEC بهhttp://www.spec.orgمراجعه کنید 234 \cpeg323-04F\Topic0.ppt 06/15/26 مثال هایی از آزمون های کارایی SPEC95 نشان داده می شوند درپردازشSPEC نسبت های Pentium pro(pentium +) وPentium گرهای Clock Pentium Pentium+ Pentium Pentium+ Rate SPECint SPECint SPEFfp SPECfp 100 MHz 3.2 N/A 2.6 N/A 150 MHZ 4.4 6.0 3.0 5.1 200 MHZ 5.5 8.0 3.8 6.8 ازاین اطالعات چه چیزی را می توان فرا گرفت؟ 06/15/26 \cpeg323-04F\Topic0.ppt 235 عوامل ضعیف ارزیابی کارایی • اندازه گیری کارایی کامپیوتر شامل MIPSو MFLOPSمی شود • :MIPSمیلیون ها دستورالعمل در هر ثانیه (=_MIPSزمان اجرا*/)6^10تعداد دستورالعمل ها _برای مثال یک برنامه که 3میلیون دستورالعمل را در 2ثانیه محاسبه می کند درجه MIPSآن 1.5است _مزایا:آسان است برای فهمیدن و اندازه گیری _ معایب:ممکن است کارایی واقعی را منتقل نکند در حالی که دستورالعمل های ساده تر را بهتر اجرا می کند. :MFLOPSمیلیون ها عملگر ممیز شناور در هر ثانیه (=_MFLOPSزمان اجرا*/)6^10عملگرهای ممیز شناور _برای مثال برنامه Sکه 4میلیون دستورالعمل را در 5ثانیه محاسبه می کند درجه MFLOPSآن 0.8است . _مزایا:آسان است برای فهمیدن و اندازه گیری _معایب :مانند MIPSتنها اندازه گیری های ممیز شناور 236 \cpeg323-04F\Topic0.ppt 06/15/26 باال بردن میزان تسریع به صورت زیر تعریف می شود زمان اجرای قدیم کارایی جدید میزان تسریع= ------------------- = ------------- زمان اجرای جدید کارایی قدیم این عامل انکسار و انحراف را برای میزان تسریع چنین در نظر می گیریم x (1 - Fractionenhanced) + Fractionenhancedزمان اجرای جدید = زمان اجرای قدیم میزان تسریع افزوده شده 1 زمان اجرای قدیم = میزان تسریع = (1 - Fractionenhanced) + Fractionenhancedزمان اجرای جدید میزان تسریع افزوده شده 237 \cpeg323-04F\Topic0.ppt 06/15/26 مثالی از قانون آمدال دستورالعمل های ممیز شناور برای 2برابر شدن سرعت اجرا بهبود داده شده اند ،اما تنها %10زمان برای این دستورالعمل های اصلی استفاده می شود .ماشین جدید چقدر سریعتر است؟ 1 زمان اجرای قدیم = میزان تسریع = (1 - Fractionenhanced) + Fractionenhancedزمان اجرای جدید ‏Speedupenhanced 1 = میزان تسریع = 1.053 (1 - 0.1) + 0.1/2 ماشین جدید 1.053سرعت دارد ,یا %5.3سریعتر است اگر سرعت دستورالعمل های ممیز شناور 100برابر سریعتر شود ماشین جدید چقدر سریعتر می شود؟ 1 238 = 1.109 (1 - 0.1) + 0.1/100 \cpeg323-04F\Topic0.ppt = میزان تسریع 06/15/26 تخمین بهبود کارایی فرض کنید یک پردازشگر به طور جاری به 10ثانیه برای اجرا ی یک برنامه نیاز دارد و کارایی یک پردازشگر هر سال 50%بهبود می یابد. به وسیله چه عاملی کارایی پردازشگر در 5سال بهبود پیدا می کند؟ (7.59=5^)1+0.5 بعد از 5سال یک پردازشگر همان برنامه را در چه زمانی ثانیه = 1.32=10/7.59زمان اجرای اجرا می کند؟ جدید چه فرضیاتی در مسئله باال پدید می آیند؟ 239 \cpeg323-04F\Topic0.ppt 06/15/26 مثال کارایی کامپیوتر های M1و M2اجراهای مجموعه دستورالعمل های یکسانی دارند ‏M1آهنگ پالس ساعت 50MHzدارد و M2آهنگ پالس ساعت 75MHzداردM1.دارای CPI 2.8است و M2دارای CPI 3.2برای برنامه دارد. چقدر زمان M2سریعتر است نسبت به M1در این برنامه؟ = 1.31 = = M1آهنگ پالس ساعت x CPIM1 /تعداد دستورالعملها M1زمان اجرای در1 M2آهنگ پالس ساعت x CPIM2 /تعداد دستورالعمل ها M2 زمان ا 2.8/50 3.2/75 آهنگ پالس ساعت M1چقدر باید باشد تا زمان اجرای یکسانی برای آنها داشته باشد؟ 240 \cpeg323-04F\Topic0.ppt 06/15/26 CPIبه عنوان یک ابزار تحلیلگر برای راهنمای طراحی میکس دستورالعمل های برنامه ‏CPIماشین 5 x 30 + 1 x 20 + 2 x 20 + 2 x 10 + 2 x 20 100 = 2.7 cycles/instruction 5 x 56 + 1 x 7 + 2 x 15 + 2 x 7 + 2 x 15 100 241 = 3.61 cycles/instruction\cpeg323-04F\Topic0.ppt 06/15/26 دستورالعمل :PEERقانون آمدال برنامه %30از زمانش را به کدهایی اختصاص می دهد که نمی توانند دوباره برای اجرا به صورت موازی کد شوند میزان تسریع محاسبه می شود برای ‏N = 2, 3, 4, 5, and ∞. ∞ 5 4 3 2 ‏CPUs میزان تسریع 242 \cpeg323-04F\Topic0.ppt 06/15/26 دستورالعمل :PEERقانون آمدال برنامه %30از زمانش را به صورت سریال استفاده می کند میزان تسریع را برای ‏N = 2, 3, 4, 5,محاسبه می کند ∞. )∞(S 1 # CPUs 3 )(70% / N 2 + 30 % ∞ 5 4 3 2 ‏CPUs 3.3 2.3 2.1 1.85 1.54 میزان تسریع 243 \cpeg323-04F\Topic0.ppt 06/15/26 =S یک ژول انرژی :یک جریان 1آمپری است که از وسط یک مقاومت 1اهمی عبور می کند و گرمایی معادل 1ژول تولید می کند و همچنین یک وات برای یک ثانیه وات :عبور 1آمپر جریان از یک مقاومت 1 1اهمی انرژی و کارایی یک ژول = 0.24کالری یک کالری دمای یک گرم آب را یک درجه افزایش می دهد یک مورد ناخواسته:کامپیوترها انر ژیالکتریکی را به گرما تبدیل می کنند ..که به عنوان فراورده های جانبی محاسبه می شود هوا یا آب می توانند مانع ذوب شدن چیپ در اثر 244 \cpeg323-04F\Topic0.ppt 06/15/26 IBM Power 4: How does die heat ?up 4 dies on a multi-chip module 2 CPUs per die 06/15/26 \cpeg323-04F\Topic0.ppt 245 IBM Power 4: Dissipating 115 Watts Hot spots Fixed point units Cache logic 06/15/26 \cpeg323-04F\Topic0.ppt 246 فیزیک های بنیادی: اتصال انرژی انتقال منطقی اتالف انرژی Vdd Vdd C E0->= 2 1 2 C Vdd E1->= 2 1 2 C Vdd How can we limit switching energy? مستقل از تکنولو ژی:نتیجه قطعی State-of-the-art CPUs (90 nm): Switching energy is 70% of total energy. Remainder: at 90nm, “switches” are “dimmers”! 06/15/26 \cpeg323-04F\Topic0.ppt “leakage” currents 65nm: 50/50! 247 خالصه ای از ارزیابی کارایی آرمون های کارایی خوب از قبیل آزمون های کاراییSPECمی تواند روش خاصی را برای ارزیابی و مقایسه کارایی کامپیوتر تولید کند ‏MIPSوMFLOPSبرای استفاده آسان هستند اما برای نشان دادن کارایی نا صحیح هستند. قانون آمدال یک روش موثر را برای توضیح میزان تسریع وابسته به عامل انحراف ایجاد می کند. به خاطر داشته باشید :بخشهای اشتراکی را سریعتر نمائید! 248 \cpeg323-04F\Topic0.ppt 06/15/26 نتیجه گیری مشتری ها:قیمت را می سنجند معمارها :طرح را می سنجند :ابزارآالتCPIو معادله کارایی قانون آمدال:محاسبه می کند 249 2 1 2 C Vdd =>E1- 2 1 2 C Vdd \cpeg323-04F\Topic0.ppt =>E0- :انرژی 06/15/26 فصل پنجم روشهای پیاده سازی معماری پردازشگر 250 \cpeg323-04F\Topic0.ppt 06/15/26 چکیده • مقدمه • بخشهای سازنده مسیر داده • پیاده سازی یک مسیر داده ساده (تک چرخه ای) • پیاده سازی چند چرخه ای 251 \cpeg323-04F\Topic0.ppt 06/15/26 مقدمه • روند پایه اجرای دستورالعملها • برخی قراردادها - مسیر داده 32بیتی - استراتژی ساعت زنی(حساس به لبه) • ما به زیر مجموعه ای از MIPSتمرکز می کنیم: 252 - دستورالعملهای دستیابی به حافظهlw ، sw: - اعمال ALU: add, sub, and, or - دستورات انشعاب در صورت تساوی( )beqو دستورات پرش ()j \cpeg323-04F\Topic0.ppt 06/15/26 یک تصویر بزرگ:ما االن کجا هستیم؟ پنج نمونه از بخشهای سازنده کامپیوتر پردازشگر ورودی کنترل حافظه خروجی مسیر داده موضوع روز:طراحی یک پردازشگر تک چرخه ای طراحی ماشین طراحی مجموعه دستورالعمل ها تکنولوژی 253 \cpeg323-04F\Topic0.ppt 06/15/26 یک شمای اصلی:چشم انداز کارایی کارایی یک ماشین تعیین می شود به وسیله: تعداد دستور العمل ها) )Inst. Count زمان هر چرخه ‏CPI ( ) Cycle Time ‏Cycle Time ‏Inst. Count چرخه های هر دستورالعمل()CPI طراحی پردازشگر (مسیر داده و کنترل) تعیین خواهد شد: زمان هرچرخه چرخه های هر دستورالعمل پردازشگر تک چرخه ای _یک کالک دارد برای هر دستورالعمل مزایا:طراحی ساده و CPIکم. معایب:زمان چرخه طوالنی است و این باعث می شود که به وسیله کندترین دستورالعمل محدود شود 254 \cpeg323-04F\Topic0.ppt 06/15/26 چه طور یک پردازشگر طراحی می شود:مرحله به مرحله تجزیه وتحلیل مجموعه دستورالعمل=>پیش نیازهای مسیر داده مفهوم هر دستورالعملداده میشودبا انتقال دادن ثبات ها ];R[rd] <– R[rs] + R[rt مسیر داده باید شامل محیط ذخیره سازی برای ثبات های ISAشود مسیر داده باید انتقال دادن هر ثبات را پشتیبانی کند انتخاب کردن مجموعه ای از بخشهایی از مسیر داده و بنیاد نهادن روشهای ساعت زنی طراحی مسیر داده با در نظر گرفتن پیش نیاز ها ‏Analyze implementation of each instruction to determine setting of ‏control points that ‏effects the register transfer طراحی کنترل منطقی 255 \cpeg323-04F\Topic0.ppt 06/15/26 یادآوری:قالب های دستورالعمل های MIPS همه دستورالعمل های MIPSطولشان 32بیت است3 .تا قالب دستورالعمل 0هستند. 31 26 21 16 11 6 ‏funct ‏ ‏R-type 0 6 bits ‏shamt ‏rd ‏rt ‏rs 5 bits 5 bits 5 bits 16 5 bits 21 ‏rt ‏rs ‏op 5 bits 5 bits 6 bits ‏immediateI-type  16 bits 0 ‏J-type  ‏op 6 bits 31 26 26 ‏target address ‏op 26 bits 6 bits دارای فیلدهای متفاوتی هستند: :OP عملکرد هر دستورالعمل :Rs,rt,rd منبع ومقصد مخصوص ثبات ها : shamt اندازه شییفت :Funct انتخاب کردن عملیات متفاوت در فیلد””op :address / immediate افست آدرس یا مقدار فوری \cpeg323-04F\Topic0.pptپرش :target address256آدرس هدف دستورالعمل 31 06/15/26 ثبات منطقی انتقال )RTL( مفهوم دستورالعمل را می دهدRTL همه دستورالعمل ها با واکشی دستورالعمل آغاز می شوند op | rs | rt | rd | shamt | funct = MEM[ PC ] op | rs | rt | Imm16 = MEM[ PC ] inst Register Transfers addu R[rd] <– R[rs] + R[rt]; PC <– PC + 4 subu R[rd] <– R[rs] – R[rt]; PC <– PC + 4 ori R[rt] <– R[rs] + zero_ext(imm16); PC <– PC + 4 load R[rt] <– MEM[ R[rs] + sign_ext(imm16)]; PC <– PC + 4 store MEM[ R[rs] + sign_ext(imm16) ] <– R[rt]; PC <– PC + 4 beq if ( R[rs] == R[rt] ) then PC <– PC + 4 + sign_ext(imm16)] || 00 257 \cpeg323-04F\Topic0.ppt else PC <– PC + 4 06/15/26 مرحله :1تعیین پیش نیازهای مجموعه دستورالعمل حافظه دستورالعمل و داده ها ثبات ها ()x 32 32 خواندن rs خواندن rt نوشتن rtیاrd PCشمارنده برنامه گسترش دهنده(گسترش عالمت یا گسترش صفر) جمع و تفریق یا مقدار فوری گسترده شده ‏Add 4 or shifted extended immediate to PC 258 \cpeg323-04F\Topic0.ppt 06/15/26 اجزاء مسیر داده:2 مرحله CarryIn A A B 32 32 B 32 32 ALU 06/15/26 A Sum Carry 32 Y Combinational Logic: Does not use a clock 32 OP واحد محاسبه ومنطق 32 Select MUX تسهیم کننده B Adder جمع کننده 32 3 32 Result \cpeg323-04F\Topic0.ppt 259 مرحله 3 پیش نیازهای ثبات انتقال >-طراحی مسیر داده واکشی دستورالعمل کدبرداری دستورالعمل ها و خواندن عملوندها محاسبه کردن عمل بازنویسی نتیجه 260 \cpeg323-04F\Topic0.ppt 06/15/26 الف :3مقدمه واحد واکشی دستورالعمل عملیات متداولRTL واکشی دستورالعملmem[PC] : جدید کردن شمارنده برنامه: کد پشت سرهمPC <- PC + 4 :: انشعاب و پرش”PC <- “something else : شمارنده برنامه ‏Clk آدرس منطقی بعدی آدرس کلمه دستورالعمل حافظه دستورالعمل 32 261 \cpeg323-04F\Topic0.ppt 06/15/26 جمع و:3ب تفریق addu rd, rs, rt : مثالR[rd] <- R[rs] op R[rt] rd و,rs, rt میآیند از فیلدهای دستورالعمل هایRw و,Ra, Rb  بعد از کد برداری دستورالعمل کنترل منطقی می:ALUctr and RegWr  کنند 31 26 21 16 11 6 0 op rs rt rd shamt funct 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits Rd Rs RegWr 5 32 Clk ALUctr 3 5 Rw Ra Rb 32 تا ثبات 32 بیتی busA 32 busB ALU busW 5 Rt Result 32 32 06/15/26 \cpeg323-04F\Topic0.ppt 262 عمل منطقی بالفاصله:3پ ori rt, rs, imm16 : ] مثالimm16[ گسترش صفرR[rt] <- R[rs] op 31 26 21 op rs rt 6 bits 5 bits 5 bits 31 Rd RegDst 0 immediate 16 15 16 bits rd? 0 immediate 0000000000000000 16 bits Rt 16 bits Mux RegWr 5 32 Clk Rs 5 5 Rw Ra Rb 32 32-bit Registers ALUctr 32 busB Sign Ext 16 Result 32 Mux 32 imm16 3 busA ALU busW 06/15/26 11 16 32 ALUSrc \cpeg323-04F\Topic0.ppt 263 عمل:3ت lw rt, rs, imm16 :مثال ]imm16[ گسترش عالمت+ R[rt] <- Mem[R[rs] بارکردن 31 Rd RegDst Mux RegWr 5 32 Clk rs rt 6 bits 5 bits 5 bits 0 immediate rd 16 bits ALUctr 3 busA W_Src 32 32 ALUSrc Data In 32 Clk \cpeg323-04F\Topic0.ppt Mux 32 MemWr Mux busB 32 Extender 06/15/26 16 11 16 op Rs 5 5 Rw Ra Rb 32 32-bit Registers imm16 21 ALU busW Rt 26 WrEn Adr Data Memory 32 264 عمل ذخیره:3ث sw rt, rs, imm16 : ] مثالR[rt] -< ]imm16[ گسترش عالمت+ R[rs] [Mem سازی 31 Rd RegDst 21 16 op rs rt 6 bits 5 bits 5 bits Rt 0 immediate 16 bits ALUctr MemWr W_Src Mux RegWr 5 5 Rw Ra Rb 32 32-bit Registers 32 busB 32 32 32 Mux 16 busA Extender imm16 3 Rt Data In 32 Clk ALUSrc \cpeg323-04F\Topic0.ppt WrEn Adr Data Memory Mux 32 Clk 5 Rs ALU busW 06/15/26 26 32 265 دستورالعمل:3ج انشعاب 31 26 21 16 0 op rs rt immediate 6 bits 5 bits 5 bits 16 bits rs, rt, imm16beq واکشی دستورالعمل از حافظه mem[PC] محاسبه شرط انشعابEqual <- R[rs] == R[rt] محاسبه آدرس دستورالعمل بعدیif (COND eq 0) x 4 )imm16( ( گسترش عالمت+ PC <- PC + 4 ) else 06/15/26 \cpeg323-04F\Topic0.ppt 266 مسیر داده برای عمل )ایجاد کردن مسیر داده شرطی(تساویbeq rs, rt, imm16 انشعاب 26 21 16 op rs rt 6 bits 5 bits 5 bits 0 immediate 16 bits Inst Address nPC_sel 4 Adder RegWr 5 busW PC Mux 00 32 Clk Adder 06/15/26 PC Ext imm16 Cond 5 Rs 5 Rt Rw Ra Rb 32 32-bit Registers busA 32 busB 32 Equal? 31 Clk \cpeg323-04F\Topic0.ppt 267 Rs nPC_sel RegDst 00 Rs 5 Rt 16 0 1 32 Data In 32 \cpeg323-04F\Topic0.ppt Clk ALUSrc 0 32 Mux Clk Extender Clk = 32 Mux PC Mux Adder PC Ext imm16 5 MemtoReg 3 busA Rw Ra Rb 32 32-bit Registers busB 32 imm16 06/15/26 ALUctr MemWr Equal ALU Adder 32 Imm16 0 RegWr 5 busW Rd Rd Rt 1 4 Rt <0:15> Adr <11:15> Memory <16:20> <21:25> یک مسیر داده تک: قرار دادن همه اینها باهم Instruction<31:0> Inst چرخه ای WrEn Adr 1 Data Memory 268 شده اندکنترلی های سیگنال مفهوم در این مسیر داده سیم بندیImed16 وRs, Rt, Rd 0 => PC <– PC + 4; 1 => PC <– PC + 4 + SignExt(Im16) || 00nPC_sel: Inst Memory Adr nPC_sel 4 00 Adder imm16 PC Mux Adder PC Ext 06/15/26 Clk \cpeg323-04F\Topic0.ppt 269 مفهوم سیگنال های کنترلی ° MemWr: ”“zero”, “signExtOp: ° MemtoReg: 0 => regB; 1 => immedALUsrc: Mem ”“add”, “sub”, “orALUctr: ° RegDst: RegDst ° RegWr: 5 5 نوشتن در ثبات MemtoReg = ALU 32 1 32 Data In 32 Clk \cpeg323-04F\Topic0.ppt ALUSrc 32 0 Mux 0 Mux 16 0 => “rt”; 1 => “rd” Rt Extender imm16 06/15/26 Rs busA Rw Ra Rb 32 32-bit Registers busB 32 Clk 0 => ALU; 1 => 3 0 RegWr 5 32 Equal Rd Rt 1 busW مقصدMemWr ALUctr نوشتن در حافظه WrEn Adr 1 Data Memory 270 واحد واکشی دستورالعمل در ابتدای جمع >Instruction<31:0 واکشی دستورالعمل از حافظه دستورالعمل]instruction <- mem[PC انجام دادن برای همه دستورالعمل ها =>به بیتهای کنترلی خاصی نیاز نیست ‏Inst ‏Memory ‏Adr ‏nPC_sel ‏imm16 ‏Adder ‏PC 271 \cpeg323-04F\Topic0.ppt ‏PC Ext ‏Clk ‏Mux 00 ‏Adder 4 06/15/26 مسیر داده تک چرخه ای در طول عمل 31 26 21 16 11 6 0 op rs rt rd shamt تفریق funct جمع و R[rd] <- R[rs] op R[rt] Zero ALU 16 Extender imm16 1 32 06/15/26 \cpeg323-04F\Topic0.ppt Rd Clk Imm16 MemtoReg = 0 MemWr = 0 0 32 Data In 32 ALUSrc = 0 Rs WrEn Adr 32 Mux busA Rw Ra Rb 32 32 32-bit Registers busB 0 32 Rt <0:15> 5 ALUctr = Add Rt <11:15> 5 Rs Mux 32 Clk Clk 1 Mux 0 RegWr = 1 5 busW Rt <16:20> RegDst = 1 Rd Instruction Fetch Unit <21:25> nPC_sel= +4 Instruction<31:0> 1 Data Memory 272 واحد واکشی دستورالعمل در انتهای جمع ‏PC <- PC + 4 >Instruction<31:0 ‏Inst ‏Memory ‏ ‏Adr ‏nPC_sel = +4 این برای همه دستورالعمل ها یکسان است به جز انشعاب و پرش ‏PC ‏imm16 273 \cpeg323-04F\Topic0.ppt ‏Adder ‏Clk ‏Mux 00 ‏Adder 4 06/15/26 مسیر داده تک چرخه ای در طول 31 26بارکردن 21 16 op rs rt 0 immediate R[rt] <- Data Memory {R[rs] + SignExt[imm16]} busA Rw Ra Rb 32 32 32-bit Registers busB 0 32 Rt Zero 32 06/15/26 \cpeg323-04F\Topic0.ppt Imm16 MemtoReg = 1 MemWr = 0 0 32 Data In 32 ALUSrc = 1 Rd Clk Mux ALU 16 Extender imm16 1 Rs <0:15> 5 ALUctr = Add Rt <11:15> 5 Rs Mux 32 Clk Clk 1 Mux 0 RegWr = 1 5 busW Rt <16:20> RegDst = 0 Rd Instruction Fetch Unit <21:25> nPC_sel= +4 Instruction<31:0> 1 WrEn Adr Data Memory 32 275 مسیر داده تک چرخه ای در طول عمل 31 26 21 16 ذخیره سازی op rs rt 0 immediate R[rt] -< }R[rs] + SignExt[imm16]{ حافظه داده Zero ALU 16 Extender imm16 1 06/15/26 32 \cpeg323-04F\Topic0.ppt Rd Clk Imm16 MemtoReg = x MemWr = 1 0 32 Data In 32 ALUSrc = 1 Rs WrEn Adr 32 Mux busA Rw Ra Rb 32 32 32-bit Registers busB 0 32 Rt <0:15> 5 ALUctr = Add Rt <11:15> 5 Rs Mux 32 Clk Clk 1 Mux 0 RegWr = 0 5 busW Rt <16:20> RegDst = x Rd Instruction Fetch Unit <21:25> nPC_sel= +4 Instruction<31:0> 1 Data Memory 276 مسیر داده تک چرخه ای در طول 31 26 21 16 انشعاب عمل op rs rt 0 immediate if (R[rs] - R[rt] == 0) then Zero <- 1 ; else Zero <- 0 5 Zero ALU 16 Extender imm16 1 32 06/15/26 \cpeg323-04F\Topic0.ppt Rd Clk Imm16 MemtoReg = x MemWr = 0 0 32 Data In 32 ALUSrc = 0 Rs WrEn Adr 32 Mux busA Rw Ra Rb 32 32 32-bit Registers busB 0 32 Rt <0:15> 5 ALUctr = Subtract Rt <11:15> 5 Rs Mux 32 Clk Clk 1 Mux 0 RegWr = 0 busW Rt <16:20> RegDst = x Rd Instruction Fetch Unit <21:25> nPC_sel= “Br” Instruction<31:0> 1 Data Memory 277 واحد واکشی دستورالعمل در انتهای انشعاب 31 26 op 21 16 rs 0 rt immediate if (Zero == 1 then Adr Instruction<31:0> ; 4*]imm16[ گسترش عالمت+ PC = PC + 4 else nPC_sel PC = PC + 4 Inst Memory See book for what the datapath and control looks like for jump instructions. 4 00 Adder imm16 PC \cpeg323-04F\Topic0.ppt Adder 06/15/26 Mux Compared to book our processor also supports the ORI instructions. Clk 278 RTL-: مسیر داده داده شده:4 مرحله >CONTROL Instruction<31:0> Rd <0:15> Rs <11:15> Rt <16:20> Op Fun <21:25> <0:5> Adr <26:31> Inst Memory Imm16 Control nPC_sel RegWr RegDst MemtoReg ALUSrc ALUctr MemWr Equal DATA PATH 06/15/26 \cpeg323-04F\Topic0.ppt 279 کنترل ALU ‏ALU operation ‏a ‏Zero ‏Result ‏Overflow ‏ALU ‏b ‏CarryOut این نمادی است که به طور معمول برای نمایش یک ALUمورد استفاده قرار می گیرد .این نماد همچنین برای نمایش یک جمع کننده نیز استفاده می شود ،بنابراین بوسیله یکی از دو نماد ALUیا Adderبرچسب گذاری می شود .خطوط کنترلی دارای برچسب ALUOperationمی باشد. 280 \cpeg323-04F\Topic0.ppt مقدار آنها و عمل ALUدر شکل بعد معرفی می شوند. 06/15/26 ALU کنترل ALU Control lines Function 000 And 001 Or 010 Add 110 Subtract 111 Set-on-less-than ALU به همراه عمل متناظرALU مقادیر سه خط کنترلی 06/15/26 \cpeg323-04F\Topic0.ppt 281 ALU control ‏input 010 010 110 010 110 000 001 111 ‏Desired ‏Function Code ‏ALU action ‏add ‏xxxxxx ‏add ‏xxxxxx ‏subtract ‏xxxxxx 100000 ‏add 100010 ‏subtract 100100 ‏and 100101 ‏or 101010 ‏set-on-less-than ‏Instruction ‏ALUOp ‏operation 00 ‏Load word 00 ‏store word 01 ‏branch equal 10 ‏add 10 ‏subtract 10 ‏AND 10 ‏OR 10 ‏set-on-less-than ‏Instroction ‏opcode ‏LW ‏SW ‏Branch equal ‏R-type ‏R-type ‏R-type ‏R-type ‏R-type این جدول چگونگی تنظیم بیتهای کنترلی ALUوابسته به بیتهای کنترلی ALUopو کدهای تابعی متفاوت برای دستورات نوع ثباتی را نشان می دهد. ،Opcodeکه در اولین ستون لیست شده است،وضعیت بیتهای ALUopار تعیین می کند .تمام کد گذاریها به صورت دودویی نمایش داده می شوند .توجه کنید زمانی که کد ALUopبرابر 00یا 01باشد، فیلد های خروجی به فیلد کدهای تابعی وابسته نیست .در این مورد ،گفته می شود که مقدار کدهای 282برای ما تابعی \cpeg323-04F\Topic0.ppt 06/15/26 دستورالعملهای که از ALUاستفاده می کنند :Load/storeمحاسبه آدرس -جمع :Branch eqتفریق جمع /تفریق ‏and/or R-type: ‏set-on-less-than نیاز به کدهای تابعی 283 \cpeg323-04F\Topic0.ppt 06/15/26 طراحی کنترل ALU ‏ALU control ‏F0 ‏input ‏X 010 ‏X 110 0 010 0 110 0 000 1 001 0 111 ‏Function code ‏F4 ‏F3 ‏F2 ‏F1 ‏X ‏X ‏X ‏X ‏X ‏X ‏X ‏X ‏X 0 0 0 ‏X 0 0 1 ‏X 0 1 0 ‏X 0 1 0 ‏X 1 0 1 ‏F5 ‏X ‏X ‏X ‏X ‏X ‏X ‏X ‏ALUOp ‏ALUOp1 ‏ALUOp0 0 0 ‏X 1 1 ‏X 1 ‏X 1 ‏X 1 ‏X 1 ‏X جدول درستی برای سه بیت کنترلی ALUبه عنوان تابعی از ALUopو فیلد کد تابعی بسیاری از ورودیهای اضافه شده “بدون توجه”( )don’t careهستند .به عنوان مثال ALUop ،از کد گذاری 11استفاده ای نمی کند ،بنابراین جدول درستی می تواند ترجیحًا شامل ورودیهای 1xو x1به جای 10و 01باشد. 284 \cpeg323-04F\Topic0.ppt 06/15/26 ALUOp ALU بالک کنترل ALUOp0 ALUOp1 Operation 2 F3 Operation F2 F (5-0) Operation 1 F1 Operation 0 F0 را مبنی بر کد تابعی وALU سه بیت کنترلیALU بالک کنترلی . تولید می کندALUop بیتهای 06/15/26 \cpeg323-04F\Topic0.ppt 285 چهره قالب دستورالعملهای MIPS Field Bit positions 0 31-26 rs 25-21 rt 20-16 rd 15-11 10-6 shamt 5-0 funct a. R-type instruction Field Bit positions 35 or 43 rs 31-26 25-21 rt 20-16 address 10-6 b. Load or store instruction Field Bit positions 4 31-26 rs 25-21 rt 20-16 address 15-0 c. branch instruction 06/15/26 \cpeg323-04F\Topic0.ppt 286 چهره قالب دستورالعملهای ‏MIPS ‏cont’d • فیلد ، opهمچنین معروف به ،opcodeهمیشه در بیتهای 26تا 31قرار می گیرد .ما به این فیلد به صورت ] Op[5-0اشاره می کنیم. • دو رجیستر خواندن همیشه با فیلدهای rsو rtدر موقعیت 21تا 25و 16تا 20مشخص می شوند. این مطلب برای دستورات ثباتی ،انشعاب در صورت تساوی و ذخیره سازی صدق می کند. • ثبات پایه برای دستورات loadو storeهمیشه در موقعییتهای بیتی 21تا )rs( 25قرار دارد. • 16بیت افست برای دستورات انشعاب در صورت تساوی load ،و storeهمیشه در موقعیتهای 0تا 15قرار دارد. • ثبات مقصد در یکی از این دو مکان است .برای دستورات loadدر بیتهای موقعیت 16تا )rt(20و در حالی که برای یک دستورالعمل ثباتی در موقعیتهای بیتی 11تا )rt(15است .بنابراین ما به افزودن یک مالتی پلکسر برای انتخاب اینکه کدام فیلد دستورالعمل به شماره رجیستر نوشتن اشاره می کند. 287 \cpeg323-04F\Topic0.ppt 06/15/26 PCSrc 0 M u x ALU ALU Add result 4 1 Shift left 2 RegWrite Instruction(25-21) PC Read address Instruction(20-16) Instruction (31-0) Instructin memory 0 M u x Read register 1 Read register 2 Read data 2 Write register Write data MemtoReg Zero Add 0 M u x ALU result Read address Read data Write address 1 1 Instruction(15-0) MeWrite Read data 1 16 Sign 32 extend RegDst Data memory Write data ALU control 1 M u x 0 MemRead Instruction(5-0) ALUOp مسیر داده به همراه تمامی مالتی پلکسرها و تمامی خطوط کنترلی شناخته شده 06/15/26 \cpeg323-04F\Topic0.ppt 288 طراحی واحد کنترل برای اجرای دستورالعمل تک چرخه ای 289 \cpeg323-04F\Topic0.ppt 06/15/26 Signal name Effect when deasserted MemRead None MemWrite None ALUSrc The second ALU operand comes from the second Register file output. The register destination number for the Write register comes from the rt field None RegDst RegWrite PCSrc MemtoReg The PC is replaced by the output of the adder That computes the value of PC + 4. The value fed to the register write data input comes from the ALU Effect when asserted Data memory contents at the read address are put on read data output Data memory contents at address given by write address is replaced by value on write data input. The second ALU operand is the sign-extended lower 16-bits of the instruction. The register desination number for the Write register comes from the rd field. The register on the Write register input is written into with the value on the write data input. The PC is replaced by the output of the adder that computes the branch target. The value fed to the register write data input comes from the data memory. ) به سمت مالتی پلکسر هدایت1( زمانیکه بیت کنترل.عمل هر کدام از هفت سیگنال کنترلی در غیر اینصورت در. را انتخاب می کند1 مالتی پلکسر ورودی متناظر با پایه،شود را0 باشد) مالتی پلکسر ورودی مربوط به پایه0( صورتی که بیت کنترل آزاد نگردد به خاطر بسپارید که همه عناصر حالت دارای یک ورودی ساعت به عنوان.انتخاب می کند .یک ورودی ضمنی می باشد و ساعت به عنوان کنترل کننده نوشتن ها به کار می رود 06/15/26 \cpeg323-04F\Topic0.ppt 290 طراحی واحد کنترل 0p5 0p4 0p3 0p2 0p1 0p0 06/15/26 RegDst ALUSrc کنترل ALU0p1 ALU0p0 \cpeg323-04F\Topic0.ppt 291 RegDst op 6 Main Control func ALUSrc 6 : ALUop ALU Control (Local) ALUctr 3 2 06/15/26 \cpeg323-04F\Topic0.ppt 292 beq 0 0 0 1 0 0 ‏X 0 ‏X 0 0 0 1 0 1 ‏sw 1 0 1 0 1 1 ‏X 1 ‏X 0 0 1 0 0 0 ‏lw 1 0 0 0 1 1 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 ‏R-format 0p5 0p4 0p3 0p2 0p1 0p0 ‏RegDst ‏ALUSrc ‏MemtoReg ‏RegWrite ‏MemRead ‏MemWrite ‏Branch ‏ALUOp1 ‏ALUPp0 ‏Inputs ‏Outputs عملکرد کنترل برای پیاده سازی تک چرخه ای ساده کامًال به وسیله جدول درستی تعیین می شود .نیمه باالی جدول ترکیب سیگنالهای ورودی که مرتبط با 4کد عملیاتی ( )opcodeمی باشد و تعیین کننده وضع خروجی کنترل هستند را به دست می دهد. (به خاطر داشته باشید که ) Op(0-5مرتبط با بیتهای 26تا 31دستورالعمل است ،که فیلد کد عمل( )opcodeمی باشند ).بخش پایین جدول خروجیها را به دست می دهد. 293 \cpeg323-04F\Topic0.ppt 06/15/26 ”جدول درستی”برای نوشتن ثباتی op 00 0000 00 1101 10 0011 10 1011 00 0100 00 0010 R-type ori lw sw beq jump 1 1 1 0 0 0 RegWrite RegWrite = R-type + ori + lw op<5> & !op<4> & !op<3> & !op<2> & !op<1> & !op<0> (R-type) ! = op<5> & !op<4> & op<3> & op<2> & !op<1> & op<0> (ori) ! + op<5> & !op<4> & !op<3> & !op<2> & op<1> & op<0> (lw) + op<5> .. op<5> <0> R-type .. op<5> <0> ori .. op<5> <0> lw .. op<5> <0> sw .. op<5> <0> beq .. op<0> jump RegWrite 06/15/26 \cpeg323-04F\Topic0.ppt 294 روشهای کنترلPLA op<5>. op<5>. . op<5>. . op<5>. . op<5>. . op<5>. . اصلی . <0> R-type <0> ori <0> lw <0> sw <0> beq jump op<0> RegWrite ALUSrc RegDst MemtoReg MemWrite Branch Jump ALUop<0> ALUop<1> 06/15/26 \cpeg323-04F\Topic0.ppt 295 کنترل و مسیر داده ساده که برای اجرای دستورات پرش گسترش یافته است 296 \cpeg323-04F\Topic0.ppt 06/15/26 پیاده سازی یک دستورالعمل چند چرخه ای 297 \cpeg323-04F\Topic0.ppt 06/15/26 توضیحاتی از پیاده سازی تک چرخه ای • دستورالعملهای ماشین ممکن است دارای طولهای متفاوت مسیر بحرانی باشند - دستورالعمل Load - دستورات ممیز شناور - روشهای آدرس دهی متفاوت زمان چرخه ساعت بوسیله بدترین مسیر بحرانی معین می شود.• تکثیر FUممکن است هزینه دار باشد. 298 \cpeg323-04F\Topic0.ppt 06/15/26 چه چیزی باعث مشکل می شود زمانی پردازشگر استCPI=1که Arithmetic & Logical PC Inst Memory Reg File mux ALU mux setup Load PC Inst Memory ALU Data Mem Store PC mux Reg File Critical Path Inst Memory Reg File mux ALU Data Mem Branch PC Inst Memory Reg File cmp mux mux طوالنی بودن زمان چرخه همه دستورالعمل ها به اندازه کندترین دستور زمان می برند Real memory is not so nice as our idealized memory cannot always get the job done in one (short) cycle  06/15/26 \cpeg323-04F\Topic0.ppt 299 کاهش زمان Cut combinational dependency graph and insert register / latch چرخه چرخه کند بود انجام1 چرخه سریع نسبت به آن که2 درست همان کار رادر میدهد storage element storage element Acyclic Combinational Logic Acyclic Combinational Logic (A) => storage element Acyclic Combinational Logic (B) storage element storage element 06/15/26 \cpeg323-04F\Topic0.ppt 300 06/15/26 Operand Fetch Instruction Fetch PC Next PC \cpeg323-04F\Topic0.ppt Exec Result Store Reg. File Mem Access RegDst RegWr MemRd MemWr ALUctr ALUSrc nPC_sel محدودیت های بنیادی زمان چرخه Control 301 Result Store MemWr MemRd MemWr RegDst RegWr Reg. File Exec Mem Access ALUctr ALUSrc Operand Fetch Instruction Fetch PC Next PC nPC_sel CPI=1 تقسیم بندی مسیرداده کوچکترین مرحله ها اضافه کردن ثباتها بین امکان انجام دستورالعمل در چند چرخه 06/15/26 \cpeg323-04F\Topic0.ppt 302 06/15/26 IR Reg File B \cpeg323-04F\Topic0.ppt Mem Access Reg. File ALU_OUT Ext ALU A Result Store Operand Fetch Instruction Fetch PC Next PC RegDst RegWr MemToReg MemRd MemWr ALUSrc ALUctr nPC_sel مثال مسیر داده چند چرخه ای M ثباتهای اضافی اضافه میشوند برای ذخیره کردن مقادیر بین مراحل 303 خصوصیات • یک واحد حافظه یکسان برای دستورات و داده ها استفاده می شود. • یک ثبات دستورالعمل به کار می رود)IR(. • یک ALUواحد 304 \cpeg323-04F\Topic0.ppt 06/15/26 . ,add, sub( دستورالعمل هایR-type inst Logical Register Transfers ). . ADDU R[rd] <– R[rs] + R[rt]; PC <– PC + 4 inst Physical Register Transfers IR <– MEM[pc] ADDU A<– R[rs]; B <– R[rt] S <– A + B 06/15/26 \cpeg323-04F\Topic0.ppt Reg. File Mem Access B PC <– PC + 4 ALU_OUT A Exec Reg File IR Inst. Mem PC Next PC R[rd] <– S; M 305 دستورالعمل های فوری inst Logical Register Transfers منطقی ADDU R[rt] <– R[rs] OR sx(Im16); PC <– PC + 4 inst Physical Register Transfers IR <– MEM[pc] ADDU A<– R[rs]; B <– R[rt] S <– A or SignExt(Im16) 06/15/26 \cpeg323-04F\Topic0.ppt Reg. File Mem Access B PC <– PC + 4 ALU_OUT A Exec Reg File IR Inst. Mem PC Next PC R[rt] <– S; M 306 دستورالعمل بارکردن inst انتقال دادن منطقی ثبات LW R[rt] <– MEM(R[rs] + sx(Im16); inst PC <– PC + 4 انتقال دادن فیزیکی ثبات IR <– MEM[pc] LW A<– R[rs]; B <– R[rt] S <– A + SignEx(Im16) M <– MEM[S] 06/15/26 \cpeg323-04F\Topic0.ppt Reg. File Mem Access B PC <– PC + 4 ALU_OUT A Exec Reg File IR Inst. Mem PC Next PC R[rd] <– M; M 307 دستورالعمل ذخیرهinst کردنSW انتقال منطقی ثبات MEM(R[rs] + sx(Im16) <– R[rt]; PC <– PC + 4 انتقال فیزیکی ثبات inst IR <– MEM[pc] SW A<– R[rs]; B <– R[rt] S <– A + SignEx(Im16); 06/15/26 \cpeg323-04F\Topic0.ppt Reg. File Mem Access B PC <– PC + 4 ALU_OUT A Exec Reg File IR Inst. Mem PC Next PC MEM[S] <– B M 308 دستورالعمل انشعاب inst انتقال منطقی ثبات BEQ if R[rs] == R[rt] then PC <= PC + sx(Im16) || 00 else PC <= PC + 4 انتقال فیزیکی ثبات inst IR <– MEM[pc] A<– R[rs]; B <– R[rt] Eq =(A - B == 0) 06/15/26 \cpeg323-04F\Topic0.ppt Reg. File Mem Access B ALU_OUT A Exec Reg File IR Inst. Mem PC Next PC BEQ&Eq PC <– PC + sx(Im16) || 00 M 309 مسیر داده چند چرخه ای (Figure 5.26, )p.327 تفاوت های بین مسیر داده تکچرخه ای و چند چرخه ای یک واحد حافظه تنها برای هر دو دستورالعمل و داده ها استفاده می شود 310 \cpeg323-04F\Topic0.ppt 06/15/26 ر داده چند چرخه ای به همراه نمایش خطوط کنت 311 \cpeg323-04F\Topic0.ppt 06/15/26 Signal name MemRead MemWrite ALUSelA RegDst RegWrite MemtoReg IorD IRWrite Effect when deasserted Effect when asserted None Contents of memory at the read address are put on read data output. None Memory contents at the write address is replaced by value on write data input. The first ALU operand is the PC. The first ALU operand comes from the register given by the rs field. The register destination number for the The register destination number for the register write comes from the rt field. register write comes from the rd field. None The register given by Write register number is written with the value on the write data input. The value fed to the register write data input The value fed to the register write data input comes from the ALU. comes from the Data memory. The PC is used to supply the address to the The output of the ALU is used to supply memory unit. the address to the memory unit. None The value from the memory unit is written into the instruction register (IR). . بیتی مشخص می باشد1 عمل سیگنالهای کنترلی اعمال سیگنالهای کنترلی 06/15/26 \cpeg323-04F\Topic0.ppt 312 Signal name ALUSelB ALUOp Value Effect 00 01 10 11 00 01 10 The second input to the ALU comes from the register given by the rt field. The second input to the ALU is the constant 4. The second input to the ALU is the sign-extended lower 16 bits of the IR. The second input to the ALU is the sign-extended and shifted lower 16 bits of the IR. The ALU performs an add operation. The ALU performs an subtract operation. The function code field of the instruction determine the ALU operation. . بیتی مشخص می باشد2 عمل سیگنالهای کنترلی اعمال سیگنالهای کنترلی 06/15/26 \cpeg323-04F\Topic0.ppt 313 طرح ساعت زنی • ما نیاز به یک ثبات موقتی داریم زمانیکه: .1 یک سیگنال در یک چرخه محاسبه و دریک چرخه دیگر استفاده می شود و .2 ورودیهای بالکهای کاری ( )functional blockکه این سیگنال را تولید می کنند می توانند قبل از اینکه این سیگنال در عناصر حالت ذخیره شود تغییر کنند. • 314 مثال: .1 ما به IRنیاز داریم .2 خروجی ALU .3 ثباتهای Aو Bبه ورودیهای ALU \cpeg323-04F\Topic0.ppt 06/15/26 مراحل پایه محاسبه دستورالعمل IF1.مرحله:واکشی دستورالعمل ]IR= Memory [PC =PC + 4 PC ‏ID step.2کد برداری و واکشی عملوندها =Aثبات[);]IR(25-21 =Bثبات [);]IR(20-16 =( + PCTargetعالمت گسترش یافته [;]IR(15-0)<< 2 یادداشت:ما می خواهیم عملیات را“خوشبینانه“انجام دهیمthose . .are common to all, or at least do no hurt any 315 \cpeg323-04F\Topic0.ppt 06/15/26 )(cont’d مراحل پایه محاسبه دستورالعمل ‏EX .3 محاسبه .محاسبه آدرس حافظه ،یا تکمیل انشعاب نمونه: :ارجاع به حافظه خروجی ]);ALU= A + sign-extend [IR(15-0 دستورالعمل های :ALU ‏ALUخروجی= ;A op B انشعاب: ;If (A ==B) PC= Target 316 \cpeg323-04F\Topic0.ppt 06/15/26 )(cont’d مراحل پایه محاسبه دستورالعمل ‏MEM.4دسترسی به حافظه یا تکمیل دستورالعمل R__TYPE نمونه: ارجاع به حافظه: ];MDR = Memory [ALUoutput ;Memory[ALUoutput] = Bor دستورالعمل های :ALU ;Reg[IR(5-11)] = ALUoutput WB .5 :بازنوشتن ‏Reg[IR(20-16)] =MDR 317 \cpeg323-04F\Topic0.ppt 06/15/26 کنترل برای PCبعدی ‏PCبعدی تعیین می شود به وسیله: • زمانی که PCبرای واکشی دستورالعمل ترتیبی یک واحد افزوده شده خروجیALUیک منبع است. • ثبات هدف ،منبع است زمانی که دستورالعمل داده شده یک انشعاب شرطی باشد ما همچنین به یک سیگنال برای نوشتن در ثبات نیاز خواهیم داشت که به آنTarget Writeگفته می شود. :PCSourceیک سیگنال کنترلی 2بیتی برای باال 318 \cpeg323-04F\Topic0.ppt 06/15/26 Step name Instruction fetch Instruction decode/ register fetch Execution, address computation, or branch completion Memory access or R-type completion Write-back Action for R-type instructions Action for memoryreference instructions Action for branches IR = Memory[PC] PC = PC + 4 A = Registers[IR(25-21)] B = Register[IR(20-16)] Target = PC + (sign-extend [IR(15-0)] <<2) ALUoutput = A op B ALUoutput = A + sign-extend if (A == B) then [IR(15-0)] PC = Target Reg[IR(15-11)] = memory-data = Memory[ALUoutput] ALUoutput or Memory [ALUoutput] = B Reg[IR(20-16)] = memory-data .خالصه ای از مراحلی که برای اجرای هر نوع دستورالعمل انجام می شود دو مرحله اول مستقل از نوع. مرحله است5 تا3 تعداد مراحل اجرای دستورالعمل ها چرخه3 تا حداکثر1 یک دستورالعمل از، بعد از این مراحل. دستورالعمل هستند برای تکمیل شدن زمان می برد که این وابسته به نوع دستورالعمل است 06/15/26 \cpeg323-04F\Topic0.ppt 319 Signal name Effect when deasserted Effect when asserted None None None The PC is written; the source is controlled by PCSource. The PC is written; if the Zero output from the ALU is also active. The output of the ALU is written into the register Target. PCWrite PCWriteCond TatgetWrite بیتی1 عمل ناشی از تنظیم هریک از سیگنال های کنترلی Signal name PCSource Value Effect 00 01 10 The ALU output is sent to the PC for writing. The contents of the register Target are sent to the PC for writing. The jump target address [PC + 4(29-26)] concatenated with IR (25-0) and shifted left two bits) is sent to the PC for writing. بیتی2 عمل ناشی از تنظیم هریک از سیگنال های کنترلی بعدیpc کنترل کردن 06/15/26 \cpeg323-04F\Topic0.ppt 320 شکل:5.28مسیر داده و سیگنال های کنترلی کامل برای چند چرخه ای(همراه پرش) 321 \cpeg323-04F\Topic0.ppt 06/15/26 روشهای طراحی کنترل برای اجرای دستورات چند چرخه ای • مبنا قرار دادن ماشین با حاالت محدود • مبنا قرار دادن Microprogramming 322 \cpeg323-04F\Topic0.ppt 06/15/26 FSMساختار :• مراحل Specify a set of output to be asserted - Assume signals not asserted are left - disserted by default کنترل کردن تسهیم کننده ها همیشه - صراحتا مشخص شده است • تابع حالت بعدی inputs (conditions) Next State Logic Control State Output Logic outputs (control sugbaks) 06/15/26 \cpeg323-04F\Topic0.ppt 323 دید سطح باالیی از کنترل ماشین حاالت متناهی( )FSM 324 \cpeg323-04F\Topic0.ppt 06/15/26 لعمل واکشی و کدبرداری قسمت یکسانی برای همه دستورالعمل ها هستند(شکل _5.37جد 325 \cpeg323-04F\Topic0.ppt 06/15/26 New ‏New5.32 5.32 دستورالعمل های R_typeمی توانند با یک FSM 2مرحله ای ساده پیاده سازی شوند 326 \cpeg323-04F\Topic0.ppt 06/15/26 FSMبرای کنترل کردن دستورالعمل های ارجاع به حافظه 4مرحله دارد(شکل _ 5.38جدید 3 327 \cpeg323-04F\Topic0.ppt 06/15/26 New ‏New5.32 5.32 328 دستورالعمل انشعاب فقط به یک ماشین تک مرحله ای نیاز دارد(شکل 5.40جدید )5.35 \cpeg323-04F\Topic0.ppt 06/15/26 New New5.32 5.32 The jump instruction requires a single state that asserts two control signals to write the PC with the lower 26 bits of the instruction register shifted left two bits. (Figure 5.41 – new 5.36)) 06/15/26 \cpeg323-04F\Topic0.ppt 329 واحد کنترل ماشین حالت متناهی به صورت کامل بر روی مسیرداده ها (Figure 5.42 )– New 5.38 06/15/26 330 \cpeg323-04F\Topic0.ppt کنترل اختصاصی برای چند چرخه ای IR <= MEM[PC] “instruction fetch” “decode / operand fetch” S <= A fun B ORi S <= A or SX LW SW BEQ & ~Equal S <= A + SX S <= A + SX M <= MEM[S] MEM[S] <= B PC <= PC + 4 BEQ & Equal PC <= PC + 4 PC <= PC + SX || 00 Write-back R-type Memory Access Execute A <= R[rs] B <= R[rt] R[rd] <= S R[rt] <= S R[rt] <= M PC <= PC + 4 PC <= PC + 4 PC <= PC + 4 06/15/26 \cpeg323-04F\Topic0.ppt 331 Mapping RTs to Control “instruction fetch” Points IR <= MEM[PC] imem_rd, IRen A <= R[rs] B <= R[rt] Aen, Ben Memory S <= A fun B ALUfun, Sen R[rd] <= S PC <= PC + 4 RegDst, RegWr, PCen 06/15/26 ORi S <= A or SX LW SW BEQ & Equal BEQ & ~Equal S <= A + SX S <= A + SX M <= MEM[S] MEM[S] <= B PC <= PC + 4 PC <= PC + 4 PC <= PC + SX || 00 Write-back Execute R-type “decode” R[rt] <= S R[rt] <= M PC <= PC + 4 PC <= PC + 4 \cpeg323-04F\Topic0.ppt 332 تخصیص IR <= MEM[PC] “instruction fetch” 0000 حاالت “decode” A <= R[rs] B <= R[rt] ORi S <= A fun B S <= A or SX 0100 0110 LW S <= A + SX 1000 M <= MEM[S] 1001 BEQ & Equal BEQ & ~Equal SW S <= A + SX 1011 PC <= PC + 4 PC <= PC + SX || 00 0011 0010 MEM[S] <= B PC <= PC + 4 1100 Write-back R-type Memory Execute 0001 R[rd] <= S R[rt] <= S R[rt] <= M PC <= PC + 4 PC <= PC + 4 PC <= PC + 4 0101 06/15/26 0111 1010 \cpeg323-04F\Topic0.ppt 333 اجرای دستگاه کنترل ماشین حالت متناهی 334 \cpeg323-04F\Topic0.ppt 06/15/26 تعادل منطقی برای خروجی های سیگنال کنترلی 335 \cpeg323-04F\Topic0.ppt 06/15/26 تعادل منطقی برای خروجی های حالت بعدی 336 \cpeg323-04F\Topic0.ppt 06/15/26 سوال: • چه طور میشود CPIرا از روی FSAتعیین کرد؟ • FSAچه طور انجام می شود؟ 337 \cpeg323-04F\Topic0.ppt 06/15/26 Finite state machine controllers are typically implemented using a block of combinational logic and a register to hold the current state. 06/15/26 \cpeg323-04F\Topic0.ppt 338 تفسیر”دستورالعملM “acro برنامه کاربر به اضافه داده ها این می تواند تغییر کند . . . یکی از اینها طراحی شده در یکی از اینها ‏ADD ‏SUB ‏AND حافظه اصلی ‏DATA واحد محاسبه و ترتیب micro کنترل حافظه ‏CPU ‏e.g., Fetch ‏Calc Operand Addr )Fetch Operand(s ‏Calculate )Save Answer(s 339 \cpeg323-04F\Topic0.ppt 06/15/26 06/15/26 \cpeg323-04F\Topic0.ppt 340 واکشی برنامه میکرو 341 \cpeg323-04F\Topic0.ppt 06/15/26 دستورالعمل ارجاع به حافظه برنامه میکرو 342 \cpeg323-04F\Topic0.ppt 06/15/26 برنامه میکروR-type 06/15/26 \cpeg323-04F\Topic0.ppt 343 انشعاب برنامه میکرو 344 \cpeg323-04F\Topic0.ppt 06/15/26 پرش برنامه میکرو 345 \cpeg323-04F\Topic0.ppt 06/15/26 همه میکرو کد 06/15/26 \cpeg323-04F\Topic0.ppt 346 فصل ششم خط لوله ای کردن و معماری خط لوله ای شده 347 \cpeg323-04F\Topic0.ppt 06/15/26 خط لوله ای خط لوله ای چیست – مفاهیم پایه مسیر داده خط لوله ای شده یک بررسی موردی از MIPS کنترل خط لوله رفع hazardدر خط لوله 348 \cpeg323-04F\Topic0.ppt 06/15/26 مفاهیم پایه خط لوله ای 349 \cpeg323-04F\Topic0.ppt 06/15/26 خط لوله ای کردن، معمول است خط لوله ای کردن ،روشی را برای اجرای همزمان چند دستورالعمل بوجود می آورد. مثال شستن لباسها Ann,Brian,Dave,Cathyهر کدام توده ای از لباس را برای شستن ،خشک کردن و تا کردن در اختیار دارند. شستن 30دقیقه زمان می برد. خشک کن 40دقیقه زمان می برد. تا کردن 20دقیقه زمان نیاز دارد. ‏D ‏C ‏B ‏A شستن نیمه شب 11 ترتیبی 10 9 8 7 6عصر ‏Time 30 40 20 30 40 20 30 40 20 30 40 20 ‏A ‏B ‏C ‏D شستن ترتیبی 4توده لباس 6 ،ساعت زمان می برد. اگر آنها خط لوله ای را فرا گرفته بودند ،چقدر طول ‏T ‏a ‏s ‏k ‏O ‏r ‏d ‏e ‏r شستن خط لوله 9 شب 11 شده10 : نیمهای 7 8 6عصر ‏Time 40 20 40 40 30 40 ‏A ‏B ‏C ‏D شستن خط لوله ای 4توده لباس 3،ساعت و نیم زمان می برد. ‏T ‏a ‏s ‏k ‏O ‏r ‏d ‏e ‏r دروس خط لوله 8 9 کردن ای خط لوله ای به زمان تاخیر یک کار کمکی نمی کند ،بلکه توان عملیاتی کل بار کاری را بهبود می بخشد. نرخ خط لوله محدود به کندترین مرحله است. اجرای همزمان چند کار نیاز به منابع متفاوتی دارد. پتانسیل تسریع = تعداد مراحل خط لوله طول نامتوازن مراحل خط لوله باعث کاهش تسریع می شود. زمان مصرفی برای پر شدن و خالی شدن خط لوله باعث کاهش تسریع می شود. 7 6 PM ‏Time 40 20 40 40 30 40 ‏A ‏B ‏C ‏D ‏T ‏a ‏s ‏k ‏O ‏r ‏d ‏e ‏r مفهوم پایه خط لوله :چندین دستورالعمل به طور همزمان در حال اجرایند. خط لوله به بخشها یا قطعات تقسیم می شود. چرخه ماشین: زمان مورد نیاز برای گذر از یک مرحله چرخه ماشین بوسیله کندترین مرحله خط لوله معین می گردد. معموال چرخه ماشین = چرخه ساعت 354 \cpeg323-04F\Topic0.ppt 06/15/26 در یک ماشین خط لوله ای شده کامال متوازن: زمان غیر خط لوله ای زمان = تعداد بخشهای خط لوله )(1 در یک ماشین معمولی ( )1درست نیست، زمان مراحل برابر نیست ،یک سربار وجود دارد. اما می تواند تا اختالف %10به ( )1نزدیک شود. 355 \cpeg323-04F\Topic0.ppt 06/15/26 خط لوله ای کردن به عنوان یک تکنیک معماری بطور کلی ،تقریبا برای کاربر نامحسوس است. ‏Scalar pipelined machine vs. vector ‏machine 356 \cpeg323-04F\Topic0.ppt 06/15/26 توان عملیاتی خط لوله ای : تعداد دستورالعملهای کامل شده چرخه بنابراین خط لوله ای کردن توان عملیاتی(ظرفیت پذیرش) را افزایش می دهد ،اما زمان اجرای هر دستورالعمل بدون تغییر می ماند. نرخ ساعت یک ماشین خط لوله ای شده محدود شده است به: 357 ‏ ‏latch time ‏ ‏clock skew ‏ زمان تاخیر مورد نیاز برای انتشار سیگنال ساعت در یک تراشه \cpeg323-04F\Topic0.ppt 06/15/26 محدودیتهای کارایی در یک خط لوله نمی توان از کندترین مرحله انتظار سرعت داشت پیچیدگیها در واقعیت ،زمانهای پردازش متفاوت برای مراحل مختلف ،فعل و انفعاالت/وابستگیها بین مراحل – ممکن است باعث وابستگی داده ای شود. (پویا) 358 \cpeg323-04F\Topic0.ppt 06/15/26 STAGE 1 LACHES منطق ترکیبی STAGE 2 LACHES منطق ترکیبی STAGE 3 LACHES منطق ترکیبی STAGE n LACHES (b) ock skew وlatch تاخیر، )کتورهای مهم در مسیر لوله(مدت چرخه 06/15/26 \cpeg323-04F\Topic0.ppt 359 رویهم اندازی( )Overlapدر برابر خط لوله ای خط لوله ای ‏ ارتباط قوی زیر بخشها()sub functions ‏ زمان پایه ثابت مرحله ‏ ارزیابی تابع پایه مستقل مشترکات 360 ‏ پیوند ضعیف زیر تابع ها ‏ زمان متغیر مرحله ‏ ارزیابی وابستگی بین تابعی \cpeg323-04F\Topic0.ppt 06/15/26 حافظه معمول پردازشگر محاسباتی (stage 1) خروجی/ورودی پردازشگر (stage 2) 1 Task 1 Task 2 Task 1 Task 3 2 Task 2 Task 1 Task 3 Task 1 Time ... =Idle time CPU/I/O رویهم اندازی 06/15/26 \cpeg323-04F\Topic0.ppt 361 خط لوله پویا و ایستا ایستا: تنها ارزیابی های مکرر همان کار با داده های متفاوت انجام می شود ‏no dynamic data dependencies between -  ‏initiations طرح ثابت آغاز ها پویا:پویا متضاد است با ایستا ( اسنکرون) ( روی هم افتادگی) مثالی از خط لوله ایستا: جمع ممیز شناور در خط لوله 362 \cpeg323-04F\Topic0.ppt 06/15/26 یک تابع واحدلوله_ چند تابع لوله یک تابع واحد لوله مثال:جمع لوله چند تابع لوله مثال لوله حسابی بردار لوله کنترل لوله قابل برنامه ریزی ( دستورالعمل برداری وظیفه و ورودی ها را تعیین می کند ) 363 \cpeg323-04F\Topic0.ppt 06/15/26 MIPS خط لوله :مراحل خط لوله واکشی )واکشی ثبات ها+ (کد برداریID محاسبات دستیابی به حافظه باز نویسی Instruction number Instruction i Instruction i+ 1 Instruction i+ 2 Instruction i+ 3 Instruction i+ 4 1 IF 2 ID IF Clock number 3 4 5 EX MEM WB ID EX MEM IF ID EX IF ID IF      6 7 8 9 WB MEM EX ID WB MEM EX WB MEM WB اگر یک دستورالعمل ش. مرحله آغاز می شود5 رخه ساعت دستورالعمل دیگری واکشی شده و اجرا در در هرچرخstarted every clock cycle, the performance will be five times that of a machine t pipelined. 06/15/26 \cpeg323-04F\Topic0.ppt 364 MIPS خط لوله نمایش دیگر IF ID EX MEM WB 06/15/26 1 1 2 2 1 3 3 2 1 4 4 3 2 1 \cpeg323-04F\Topic0.ppt 5 5 4 3 2 1 6 7 8 9 5 4 3 2 5 4 3 5 4 5 365 نمایش منقوش خط لوله ‏Dm ‏ALU ‏Reg ‏Reg ‏Dm ‏ALU )Time (clock cycles ‏Reg ‏Reg ‏Im ‏Im ‏Inst 0 ‏Inst 1 با پاسخ دادن به سواالت مشابه می تواند کمک کند چند چرخه زمان می برد که این کد اجرا شود؟ ALU در طول 4چرخه چه کاری انجام می دهد؟ آیا 2دستورالعمل سعی در استفاده همزمان از یک منبع مشترک دارند؟ ‏I ‏n ‏s ‏t ‏r. چرا خط لوله ای؟کنید فرض 100 دستورالعمل را می خواهیم اجرا کنیم ماشین تک چرخه ای که یک چرخه ساعت دارد 45NSزمان می خواهد ماشین چند چرخه ای و خط لوله ای که چندچرخه زمان می برند 10NSزمان می خواهد CPI ماشین چند چرخه ای 4.6است ماشین تک چرخه ای ‏ns/cycle x 1 CPI x 100 inst = 4500 ns 45  ماشین چند چرخه ای ‏ns/cycle x 4.6 CPI x 100 inst = 4600 ns 10  ماشین خط لوله ای ایده ال ‏ns/cycle x (1 CPI x 100 inst + 4 cycle drain) = 1040 ns 10  میزان تسریع خط لوله ایده آل و ماشین تک چرخه ای ‏ns / 1040 ns = 4.33 4500  تک چرخه ای_ چند چرخه ای _خط لوله ای Cycle 1 Cycle 2 Clk روش تک چرخه ای Load Store Waste Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 Cycle 7 Cycle 8 Cycle 9 Cycle 10 Clk روش چند چرخه ای Load Ifetch Store Reg Exec Mem Wr Ifetch R-type Reg روش خط لوله ای Load Ifetch Reg Exec Mem Wr Store Ifetch Reg Exec Mem Wr Reg Exec Mem R-type Ifetch Wr Exec Mem Ifetch چرا خط لوله؟ برای اینکه منابع را در !اینجا داریم Time (clock cycles) Inst 1 Reg Dm Im Reg Im Reg Dm Reg Reg Dm Reg Im Reg ALU Inst 4 Reg ALU Inst 3 Im Dm ALU Inst 2 Reg ALU O r d e r Inst 0 Im ALU I n s t r. Dm Reg آیا خط لوله می تواند برای ما مشکل ایجاد کند؟ بله:هزاردهای خط لوله ای هزاردهای ساختاری:تالش برای استفاده از یک منبع یکسان برای 2 کار متفاوت در یک زمان مثال:سعی در خواندن همزمان دو دستورالعمل از یک حافظه هزاردهای داده ای :تالش برای استفاده از یک آیتم قبل از اینکه آماده شود دستورالعمل وابسته است به نتیجه دستورالعمل قبلی که هنوز در خط لوله است ‏add r1, r2, r3 ‏sub r4, r2, r1 هزاردهای کنترلی :تالش برای ظاهر کردن یک تصمیم قبل از اینکه شرط اجرا شود دستورالعمل های انشعاب ‏beq r1, loop ‏add r1, r2, r3 همیشه میتوان هزاردها را با انتظار رفع کرد کنترل خط لوله ای باید هزارد را کشف کند برداشتن عمل(تاخیر عمل) می تواند هزارد را حل کند 371 \cpeg323-04F\Topic0.ppt 06/15/26 حافظه تک یک هزارد Time (clock cycles) ساختاری است Instr 4 Reg Mem Reg Mem Reg Mem Reg Mem Reg Mem Reg Mem Reg ALU Instr 3 Reg ALU Instr 2 Mem Mem ALU Instr 1 Reg ALU O r d e r Load Mem ALU I n s t r. Mem Reg )ص در این نمونه آسان است(نیمه روشن سمت راست یعنی خواندن و نیمه چپ یعنی نوشتن هزاردهای ساختاری کارایی را محدود می کند مثال:اگر 1.3حافظه در هر دستورالعمل دستیابی شود و فقط یک حافظه مورد دستیابی قرار می گیرد در هر چرخه ‏CPI = 1.3میانگین منبع بیشتر از %100مورد استفاده واقع شده راه حل اول :جدا کردن حافظه داده و دستورالعمل از یکدیگر راه حل دوم :اجزه دهیم حافظه بیش از یک خواندن و نوشتن در یک چرخه انجام دهد راه حل سوم :توقف راه حل های هزارد کنترلی Load Mem Mem Reg Reg Mem Reg Mem Reg ALU Beq Reg ALU O r d e r Add Mem ALU I n s t r. تا زمانی که تصمیم مشخص شود:توقف Its possible to move up decision to 2nd stage by  adding hardware to check registers as being read Mem Reg هر دستورالعمل انشعاب دو چرخه ساعت زمان: برخورد می برد=>کند شدن راه حل های هزارد کنترلی ‏Reg ‏Mem ‏ALU ‏Reg ‏Mem ‏ALU ‏Reg ‏Reg ‏Mem ‏ALU پیشگویی کردن:یک مسیر حدس زدن بعد تهیه پشتیبان ذ اگر اشتباه بود ‏ ‏Time (clock cycles) Predict not taken ‏Reg ‏Mem ‏Reg ‏Mem ‏Mem ‏Add ‏Beq ‏Load برخورد :هر دستورالعمل انشعاب اگر درست باشد یک چرخه ساعت و اگر اشتباه باشد 2چرخه زمان می برد( %50موارد درست است) )More dynamic scheme: history of 1 branch (­90% ‏I ‏n ‏s ‏t ‏r. ‏O ‏r ‏d ‏e ‏r راه حل های هزارد کنترلیانشعاب(اتفاق می افتد بعد از دوباره تعریف کردن رفتار Misc Load Mem Mem Reg Reg Mem Reg Mem Reg Mem Reg Mem Reg ALU Beq Reg ALU Add Mem ALU O r d e r Time (clock cycles) ALU I n s t r. ”دستورالعمل بعدی) “انشعاب به تاخیر افتاده Mem Reg Impact: 1 clock cycles per branch instruction if can find instruction to put in “slot” (­50% of time) Launch more instructions per clock cycle=>less useful هزاردهای داده ای روی ‏r1 مشکلr1:نمی تواند به وسیله دستورالعمل های دیگر خوانده شود قبل از اینکه به وسیله addنوشته شود ‏add r1 ,r2,r3 ‏sub r4, r1 ,r3 ‏and r6, r1 ,r7 ‏or r8, r1 ,r9 ‏xor r10, r1 ,r11 هزارد داده ای افتاده در این زمان هزاردها هستند •وابستگی های r1عقب :روی xor r10,r1,r11 Dm Reg Im Reg Dm Reg Im Reg Dm Reg Im Reg Dm Reg Im Reg ALU or r8,r1,r9 Reg ALU and r6,r1,r7 WB ALU sub r4,r1,r3 Im EX MEM ALU O r d e r add r1,r2,r3 ID/RF ALU I n s t r. Time (clock cycles) IF Dm Reg راه حل هزارد داده • “پیش رو” نتیجه از یک مرحله برای دیگری :ای xor r10,r1,r11 Reg Dm Reg Im Reg Dm Reg Im Reg Dm Reg Im Reg Dm Reg Im Reg ALU or r8,r1,r9 WB ALU and r6,r1,r7 MEM ALU sub r4,r1,r3 Im EX ALU O r d e r add r1,r2,r3 ID/RF ALU I n s t r. Time (clock cycles) IF Dm خواندن درست اس/” بسیار خوب اگر که تعریف نوشتنor“ • Reg ( Forwardingیاگذشتن) :در مورد بار کردن چی؟ •وابستگی های به جا مانده از قبل هزارد هستند •نمی توان با ارسال) (Forwardingاین مسئله را حل کرد؟ •باید دستورالعمل وابسته به بارگذاری را توقف /تاخیر دهیم ‏Reg ‏Dm ‏E ‏X ‏Reg ‏Dm ‏ALU ‏Reg ‏WB ‏MEM ‏ALU )Time (clock cycles ‏ID/RF ‏IF ‏Im ‏Reg ‏Im )lw r1,0(r2 ‏sub r4,r1,r3 طراحی یک مسیر داده خط لوله ای شده 381 \cpeg323-04F\Topic0.ppt 06/15/26 خط لوله ای کردن دستورالعمل بارکردن • 5تا واحد تابعی مستقل در مسیر داده خط لوله ای هستند. ًًٌٍ -حافظه دستورالعمل برای مرحله واکشی خواندن از بانک ثباتی برای مرحله()bus A and busBReg/Dec - ALUبرای مرحله اجرا حافظه داده برای مرحله دسترسی به حافظه(Wr )bus W نوشتن بر بانک ثباتی برای مرحله382 \cpeg323-04F\Topic0.ppt 06/15/26 4مرحله برای R-type •واکشی:واکشی دستورالعمل واکشی دستورالعمل از حافظه دستورالعمل جدید کردنPC• :Reg/Decواکشی ثباتها و کد برداری دسترالعمل ها • : Execعمل کردن ALUبر روی 2تا ثبات عملوند • : Wrباز نویسی خروجی ALUبر روی بانک ثباتی 383 \cpeg323-04F\Topic0.ppt 06/15/26 خط لوله ای کردن دستورالعمل های R- ‏typeوLoad ما در خط لوله ای تضاد داریم یا هزارد های ساختاری دو دستورالعمل سعی در نوشتن در بانک ثباتی به صورتهمزمان دارند! تنها نوشتن یک پورت384 \cpeg323-04F\Topic0.ppt 06/15/26 مشاهدات مهم هر واحد کاری تنها یک بار برای هر دستورالعمل می تواند استفاده شود هر واحد کاری باید در همان مرحله برای همه دستورالعمل هااستفاده شود: در دستورالعمل Loadنوشتن در بانک ثباتی در مرحله پنجمانجام می شود در دستورالعمل R-typeنوشتن در بانک ثباتی در مرحله چهارم انجام می شود راه حل برای هزارد خط لوله ای وجود دارد 2 385 \cpeg323-04F\Topic0.ppt 06/15/26 راه حل اول :وارد کردن“حباب“در خط لوله •وارد کردن حباب در خط لوله برای مانع شدن از دو نوشتن همزمان در یک چرخه منطق کنترل می تواند پیچیده شود. از دست دادن واکشی دستورالعمل و فرصت انتشار.نمی شود •هیچ386دستورالعملی در چرخه 6شروع \cpeg323-04F\Topic0.ppt 06/15/26 راه حل دوم :تأ خیر نوشتن R-typeبه وسیله یک چرخه تأ خیر نوشتن R-typeبه وسیله یک چرخه حال می توان نوشتن دستورالعمل های R-typeرا در مرحله پنجمانجام داد مرحله دستیابی به حافظه یک مرحله بالاستتفاده است:هیچ چیزی درآنجا انجام نمی شود. 387 \cpeg323-04F\Topic0.ppt 06/15/26 مسیر داده تک چرخه ای 388 \cpeg323-04F\Topic0.ppt 06/15/26 نسخه خط لوله ای شده مسیر داده 389 \cpeg323-04F\Topic0.ppt 06/15/26 :IFاولین مرحله لوله دستورالعمل بارکردن 390 \cpeg323-04F\Topic0.ppt 06/15/26 : IDدومین مرحله لوله دستورالعمل بارکردن 391 \cpeg323-04F\Topic0.ppt 06/15/26 EX:سومین مرحله لوله دستورالعمل بارکردن 392 \cpeg323-04F\Topic0.ppt 06/15/26 :MEMچهارمین مرحله لوله دستورالعمل بارکردن 393 \cpeg323-04F\Topic0.ppt 06/15/26 : WBپنجمین مرحله لوله دستورالعمل بارکردن 394 \cpeg323-04F\Topic0.ppt 06/15/26 :IFاولین مرحله لوله دستورالعمل R-type 395 \cpeg323-04F\Topic0.ppt 06/15/26 :IDدومین مرحله لوله دستورالعمل R-type 396 \cpeg323-04F\Topic0.ppt 06/15/26 :EXسومین مرحله لوله دستورالعمل R-type 397 \cpeg323-04F\Topic0.ppt 06/15/26 :MEMچهارمین مرحله لوله دستورالعمل R-type 398 \cpeg323-04F\Topic0.ppt 06/15/26 :WBپنجمین مرحله لوله دستورالعمل R-type 399 \cpeg323-04F\Topic0.ppt 06/15/26 یک مثال برای روشن شدن خط لوله • از زمانی که بیشتر دستورالعمل ها باهم در یک مسیر داده تک چرخه ای اجرا می شوند،این می تواند برای درک کردن مشکل باشد • دنبال کردن کد زیر یک آزمون خواهد بود. )lw $10, 20($1 ‏sub $11, $2, $3 400 \cpeg323-04F\Topic0.ppt 06/15/26 Clock 1 06/15/26 \cpeg323-04F\Topic0.ppt 401 Clock 2 06/15/26 \cpeg323-04F\Topic0.ppt 402 Clock 3 06/15/26 \cpeg323-04F\Topic0.ppt 403 Clock 4 06/15/26 \cpeg323-04F\Topic0.ppt 404 Clock 5 06/15/26 \cpeg323-04F\Topic0.ppt 405 خالصه:خط لوله ای کردن •چه چیزی آن را آسان می سازد؟ همه دستورالعمل هایی که طول یکسان دارند فقطیک تعداد کمی از قالب های دستورالعمل عملوندهای حافظه تنها در بارکردن و ذخیره سازی ظاهر می شوند •چه چیزی آن را سخت می سازد؟ هزاردهای سختاری:فرض کنید ما فقط یک حافظه داریم هزاردهای کنترلی:ما باید نگران دستورالعمل های انشعاب باشیم هزاردهای داده ای:یک دستورالعمل وابسته به دستورالعمل های قبلی است •خط لوله ای کردن یک مفهوم بنیادی است چندین مرحله استفاده می شود برای جدا کردن مراحل •پردازشگرهای جدید واقعآ آن را سخت می کنند استثنا گردانی سعی کردن برای افزایش کارایی با یک اجرای نادرست و... 406 \cpeg323-04F\Topic0.ppt 06/15/26 کنترل مسیر داده خط لوله ای شده 407 \cpeg323-04F\Topic0.ppt 06/15/26 مسیر داده خط لوله ای شده با سیگنال های کنترلی 408 \cpeg323-04F\Topic0.ppt 06/15/26 فراخوانی:بیتهای کنترلی ALU 409 \cpeg323-04F\Topic0.ppt 06/15/26 مقادیر خطوط کنترلی برای 3مرحله آخر خط لوله 410 \cpeg323-04F\Topic0.ppt 06/15/26 مسیر داده خط لوله ای شده با سیگنال های کنترلی 411 \cpeg323-04F\Topic0.ppt 06/15/26 یک مثال برای روشن شدن مسئله کنترل خط لوله •اجازه بدهید ببینیم چه اتفاقی برای این خط لوله در برنامه زیر )lw $10, 20($1 می افتد ‏sub $11, $2, $3 ‏and $12, $4, $5 ‏or $13, $6, $7 ‏add $14, $8, $9 این کد هیچ هزارد داده ای ،ساختاری و کنترلی ندارد 412 \cpeg323-04F\Topic0.ppt 06/15/26 06/15/26 \cpeg323-04F\Topic0.ppt 413 06/15/26 \cpeg323-04F\Topic0.ppt 414 06/15/26 \cpeg323-04F\Topic0.ppt 415 06/15/26 \cpeg323-04F\Topic0.ppt 416 06/15/26 \cpeg323-04F\Topic0.ppt 417 هزاردهای داده ای • مثال قبل به ما نشان می دهد که دستورالعمل های مستقل که از نتایج آنها در دستورات قبل استفاده نمی شود چطور اجرا شده اند. •این یک نمونه با برنامه های واقعی نیست. •اجازه دهید کدهای مرتب زیر زا دنبال کنیم. ‏sub $2, $1, $3 ‏and $12, $2, $5 ‏or $13, $6, $2 ‏add $14, $2, $2 )sw $15, 100($2 • 4دستور آخر همگی به ثبات 2$وابسته اند که در دستور اول تولید می شود. • فرض کنید ثبات 2$مقدار 10را قبل از عمل تفریق دارد و مقدار 20را بعد از آن دارد. 418 \cpeg323-04F\Topic0.ppt 06/15/26 هزاردهای داده ای 419 \cpeg323-04F\Topic0.ppt 06/15/26 هزاردهای داده ای راه حل ساده :کامپایلر هیچ دستورالعملی را بین دستورالعمل های sub- ‏andوارد نمی کند • هیچ یک از این دو دستورالعمل نه داده ای را تعریف می کنند و ‏sub $2, $1, $3 نه نتیجه ای را می نویسند. ‏nop ‏nop ‏and $12, $2, $5 ‏or $13, $6, $2 ‏add $14, $2, $2 )sw $15, 100($2 •نتیجه :این کار انجام می شود اما 2چرخه ساعت به هدر می رود (کارایی کاهش می یابد) 420 \cpeg323-04F\Topic0.ppt 06/15/26 کشف هزاردهای داده ای و ارسال()forwading این ممکن است که هزارد داده ای کشف شود و سپس مقدار مناسب را برای حل هزارد ارسال ()Forwardingکنیم زمانی که یک دستورالعمل سعی می کند یک ثبات را در مرحله EXبخواند دستورالعمل زودتر دیگری قصد دارد در مرحله WBبنویسد. این یک نمونه هست بین دستورالعمل های sub-andزیر: •این هزارد می تواند کشف شود به وسیله یک چک کردن ساده ‏EX/MEM.RegisterRd = ID/EX.RegisterRs = $2 421 \cpeg323-04F\Topic0.ppt 06/15/26 کشف هزاردهای داده ای و ارسال()forwading هزارد دیگر است بین دستورالعمل های SUB OR •این هزارد می تواند کشف شود به وسیله یک چک کردن ساده ‏MEM/WB.RegisterRd = ID/EX.RegisterRt = $2 •هزارد داده ای بین دستورالعمل های sub-addو sub-swوجود ندارد 422 \cpeg323-04F\Topic0.ppt 06/15/26 خالصه ای از وضعیت های هزارد داده ای 423 \cpeg323-04F\Topic0.ppt 06/15/26 خالصه ای از وضعیت های هزارد داده ای به عنوان ثبات مقصد استفاده شود؟0$چه اتفاقی می افتد اگر هیچ مقدار صفری ارسال نشود .بنابراین کشف هزارد باید به صورت زیر دنبال شود :EX hazard if (EX/MEM.RegWr and (EX/MEM.RegisterRd = 0) and (EX/MEM.RegisterRd = ID/EX.RegisterRs)) ForwardA=10 if (EX/MEM.RegWr and (EX/MEM.RegisterRd = 0) and (EX/MEM.RegisterRd = ID/EX.RegisterRt)) ForwardB=10 :MEM hazard if (MEM/WB.RegWr and (MEM/WB.RegisterRd = 0) and (MEM/WB.RegisterRd = ID/EX.RegisterRs)) ForwardA=10 if (MEM/WB.RegWr and (MEM/WB.RegisterRd = 0) and (MEM/WB.RegisterRd = ID/EX.RegisterRt)) ForwardB=10 06/15/26 \cpeg323-04F\Topic0.ppt 424 خالصه ای از وضعیت های هزارد داده ای : مالحظه کنید ترتیب زیر را add $1, $1, $2 add $1, $1, $3 add $1, $1, $4 ... MEM ارسال شده برای اینکه نتیجه در مرحلهMEM نتیجه از مرحله، در این نمونه .WB نتیجه اخیر خیلی است نسبت به نتیجه در مرحله :MEM hazard if (MEM/WB.RegWr and (MEM/WB.RegisterRd = 0) and (MEM/WB.RegisterRd = ID/EX.RegisterRs)) ForwardA=10 if (MEM/WB.RegWr and (MEM/WB.RegisterRd = 0) and (MEM/WB.RegisterRd = ID/EX.RegisterRt)) ForwardB=10 and (EX/MEM.RegisterRd = ID/EX.RegisterRs) and (EX/MEM.RegisterRd = ID/EX.RegisterRt) 06/15/26 \cpeg323-04F\Topic0.ppt 425 مسیر داده خط لوله ای شده با ارسال()Forwarding 426 \cpeg323-04F\Topic0.ppt 06/15/26 هزاردهای داده ای و توقف 427 \cpeg323-04F\Topic0.ppt 06/15/26 کشف هزارد •کنترل برای کشف هزارد if (ID/EX.MemRd چک کن اگر دستورالعمل بار کردن است and ((ID/EX.RegisterRt = IF/ID.RegisterRs) or (ID/EX.RegisterRt = IF/ID.RegisterRt))) سپس: توقف خط لوله 06/15/26 \cpeg323-04F\Topic0.ppt 428 هزاردهای داده ای و توقف 429 \cpeg323-04F\Topic0.ppt 06/15/26 مسیر داده خط لوله ای شده با()Forwardingارسال و واحد کشف هزارد 430 \cpeg323-04F\Topic0.ppt 06/15/26 هزاردهای انشعاب 431 \cpeg323-04F\Topic0.ppt 06/15/26 مسیر داده برای انشعاب(شامل HWخالى کردن قسمتى از حافظه خط لوله) 432 \cpeg323-04F\Topic0.ppt 06/15/26 فصل هفتم طراحی سیستم حافظه 433 \cpeg323-04F\Topic0.ppt 06/15/26 سلسله مراتب حافظه Processor Control On-Chip Cache Registers Datapath Second Level Cache (SRAM) Main Memory (DRAM) Speed (ns): 1s 10s 100s Size (bytes): 100s Ks Ms Secondary Storage (Disk) Tertiary Storage (Tape) 10,000,000s 10,000,000,000s (10s ms) (10s sec) Gs Ts MAIN PROCESSOR MEMORY MANAGEMENT UNIT 06/15/26 \cpeg323-04F\Topic0.ppt HIGHSPEED CACHE MAIN MEMORY BACKING STORE 434 مشخصات برنامه ها و سازماندهی حافظه تجزیه و تحلیل Ramدر برابر دستیابی ترتیبی: در مقایسه کارایی برهزینه و تکنولوژی همجواری در الگوهای دسترسی به حافظه سلسله مراتب در طراحی حافظه حافظه نهان حافظه مجازی 435 \cpeg323-04F\Topic0.ppt 06/15/26 حافظه با دستیابی تصادفی ثبات داده 0 1 2 3 گذرگاه حافظه ({به یا از پردازشگر) ثبات آدرس ساختار حافظه با دستیابی تصادفی ()RAM ‏N-2 ‏N-1 سلولهای حافظه 436 آدرسها نکته:دارای زمان دستیابی ثابت \cpeg323-04F\Topic0.ppt 06/15/26 کارایی حافظه پهنای باند = تعداد بیتها بر ثانیه “که می توانند در دسترس قرار گیرند” که برابر است با: )(bit/word) x (word/cycle) x (cycle/sec بنابراین ،بهبود پهنای باند؟ ”گلوگاه ون نیومن“ 437 \cpeg323-04F\Topic0.ppt 06/15/26 چگونه می توان کارایی سیستم حافظه را بهبود بخشید کاهش مدت چرخه افزایش اندازه کلمه همزمانی طراحی کارآمد حافظه 438 \cpeg323-04F\Topic0.ppt 06/15/26 حافظه نهان پیشرفتها در تکنولوژی مدارات مجتمع نه فقط متاثر از DRAMها ،بلکه SRAMها ،هرینه حافظه نهان را بسیار کاهش داده اند .حافظه های نهان یکی از ایده های بسیار مهم در معماری کامپیوتر هستند زیرا آنها می توانند کارایی استفاده از حافظه را به طور اساسی بهبود بخشند. افزایش شکاف بین زمان چرخه DRAMو زمان چرخه پردازنده ،که در شکل بعد نمایش داده شده است ،یک انگیزه برای ایجاد حافظه نهان است .اگر ما بر آنیم که پردازنده ها با سرعتی که توانایی آن را دارند اجرا شوند ،ما باید حافظه هایی با سرعت بیشتر برای فراهم نمودن داده داشته باشیم. []Joupi & Hennessy 91 440 \cpeg323-04F\Topic0.ppt 06/15/26 قانون مور – یک فرصت از دست رفته Performance 1000 100 10 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 1 µProc 60%/yr. “Moore’s Law” (2X/1.5yr) Processor-Memory Performance Gap: (grows 50% / year) DRAM DRAM 9%/yr. (2X/10 yrs) CPU 06/15/26 \cpeg323-04F\Topic0.ppt 441 Relative performance 10 6 Processor 10 3 Memory 1 1980 1990 2000 2010 Calendar year 06/15/26 \cpeg323-04F\Topic0.ppt 442 نهفتگی در یک سیستم واحد 1000 400 Time (ns) 100 300 10 200 CPU زمان 100 1 0.1 500 Memory to CPU Ratio نسبت زمان دستیابی به حافظه 0 1997 1999 2001 2003 2006 2009 X-Axis CPU Clock Period (ns) Memory System Access Time 06/15/26 \cpeg323-04F\Topic0.ppt Ratio THE WALL 443 همجواری مراجع “مراجع برنامه تمایل دارند که به موقع در کنار هم قرار بگیرند”. 444 \cpeg323-04F\Topic0.ppt 06/15/26 مکانهایی با احتما ل دستیابی باال (زمان کوتاه) همجواری PC قاب پشته (محلی( نزدیک زیر روال ها داده های فعال 445 \cpeg323-04F\Topic0.ppt 06/15/26 احتمال ارجاع آدرس ارجاع 446 \cpeg323-04F\Topic0.ppt 06/15/26 احتمال ارجاع آدرس ارجاع مشکل :اغلب پیش بینی یک page sizeمی شود که بزرگتر ازاندازه مورد نیاز باشد. 447 \cpeg323-04F\Topic0.ppt 06/15/26 همجواری موفقیت حافظه های نهان که قبال تشریح شد برگرفته از “خاصیت همجواری” است .خاصیت هجواری دارای دو جنبه است temporal ،و .spatial در دوره های کوتاه زمانی ،یک برنامه ارجاعها به حافظه خود را ،به صورت غیر یکنواخت در فضای آدرس خود گسترش می دهد. که این بخشهای فضای آدرس در دوره های زمانی طوالنی به صورت گسترده یکنواخت باقی می مانند. 448 \cpeg323-04F\Topic0.ppt 06/15/26 همجواری موقتی اولین خاصیت ،معروف به همجواری موقتی ،یا همجواری زمانی ،به این معنی است که :اطالعاتی که در آینده نزدیک مورد نیازند احتماًال هم اکنون در حال استفاده اند. این نوع رفتار می تواند از حلقه های برنامه که هر دوی داده و دستورالعمل مجددًا استفاده می شوند ،انتظار رود. 449 \cpeg323-04F\Topic0.ppt 06/15/26 همجواری مکانی دومین خاصیت ،همجواری مکانی ،به این معنی است که بخشهایی از فضای آدرس که در حال استفاده اند معموًال شامل یک تعدادی از بخشهای همجوار یکتا از فضای آدرس می باشد .همجواری مکانی ،سپس،به این معناست که محل ارجاع برنامه در آینده نزدیک ،احتماًال نزدیک محل ارجاع فعلی است 450 \cpeg323-04F\Topic0.ppt 06/15/26 ][Smith82, p475 این نوع رفتار با آگاهی معمولی از برنامه ها مورد انتظار است؛ بخشهای وابسته داده (متغیرها ،آرایه ها) معموًال با یکدیگر ذخیره می شوند ،و دستورات بیشتر به صورت ترتیبی اجرا می شوند .تا زمانیکه حافظه نهان سگمنتهای اطالعاتی را که اخیرًا استفاده شده اند،میانگیر (در خود نگهداری)می کند،خاصیت همجواری اشاره دارد به اینکه اطالعات مورد نیاز احتماًال در حافظه نهان یافت می شود. 451 \cpeg323-04F\Topic0.ppt 06/15/26 اطالعاتی که در آینده نزدیک مورد نیازند احتماًال شامل اطالعات رایجی هستند که هم اکنون در حال استفاده اند)locality by time( . و آن اطالعاتی که همجواری منطقی دارند و به طور جاری مورد استفاده اند (.)locality by space فضایی موقتی 452 \cpeg323-04F\Topic0.ppt 06/15/26 مقدمه ای بر طراحی cache (نوعي حافظه ميانجي که سرعت دستيابي به اطالعات آن باال است ) 453 \cpeg323-04F\Topic0.ppt 06/15/26 (Cacheحافظه نهان) مکانی امن برای پنهان سازی و ذخیره سازی. ‏Webster Dictionary 454 \cpeg323-04F\Topic0.ppt 06/15/26 (Cacheحافظه نهان) حتی با وجود ظرفیت cacheهنوزتقریبًا همه ‏cpuها شدیدا به وسیله زمان دستیابی cacheمحدود شده اند .در بسیاری از گونه ها ،هرچند زمان دستیابی cacheکاهش داده شده باشد ماشین نیز باید تسریع شود. -Alan Smith- !Even more so for MPs 455 \cpeg323-04F\Topic0.ppt 06/15/26 الگوهایی که می توانند طراحی حافظه cacheحاضرراشکست دهند ،باعث افزایش کارایی حافظه cacheشده،وبرای هر برنامه یا بارکاری واقعًا محاسبات مفیدی انجام دهد. 456 \cpeg323-04F\Topic0.ppt 06/15/26 .1 .2 .3 .4 457 بهینه کردن طراحی حافظه cacheبه طور گسترده که دارای 4جنبه است: به حد اعلی رساندن احتمال یافتن یک مرجع حافظه در (cacheنسبت برخورد ) به حداقل رساندن زمان دستیابی به اطالعاتی که در cacheوجود دارند( زمان دستیابی ) به حداقل رساندن تأخیر به علت یک خطا و به حداقل رساندن هزینه های ناشی از به روز کردن حافظه اصلی،نگهداری cache coherenceو غیره. \cpeg323-04F\Topic0.ppt 06/15/26 فاکتورهای کلیدی در تصمیم طراحی برای Cacheو (VMحافظه مجازی) حافظه اصلی .زمان دستیابی = 4 ~ 20 زمان دستیابی cache- . = 104 ~ 106 حافظه ثانویه زمان دستیابی - زمان دستیابی - حافظه اصلی کنترل cacheمعموًال در سخت افزار اجرا می شوند 458 \cpeg323-04F\Topic0.ppt 06/15/26 :1990sفن آوری در Memory Technology Typical Access Time SRAM DRAM Magnetic disk 10-20 ns 90-120 ns 10,000,000 - 20,000,000 ns $ per Mbyte 200-400 50-100 2-5 ؟2000s: فن آوری در 06/15/26 \cpeg323-04F\Topic0.ppt 459 :2000s فنآوری در Memory Technology Typical Access Time SRAM DRAM Magnetic disk 06/15/26 5-10 ns 10-60 ns 2,000,000 - 5,000,000 ns \cpeg323-04F\Topic0.ppt $ per Mbyte 1-20 0.1-1 0.001-0.006 460 Cacheدرسلسله مراتب حافظ حافظه حافظه اصلی ‏Cache پردازشگر ثانویه 461 \cpeg323-04F\Topic0.ppt 06/15/26 06/15/26 \cpeg323-04F\Topic0.ppt 462 چهار سوأل برای دسته بندی سلسله مراتب حافظه قاعده کلی و اساسی که گرداننده همه سلسله مراتب های حافظه است به ما اجازه می دهد از شرایطی که باعث برتری یافتن نسبت به سطوحی که در موردشان سخن گفتیم استفاده کنیم. این قواعد یکسان به ما اجازه طرح چهار سوأل درباره هر سطح از سلسله مراتب را می دهد: 463 \cpeg323-04F\Topic0.ppt 06/15/26 چهار سوأل برای دسته بندی سلسله مراتب حافظه س :1در کجا یک بالک می تواند در سطح باالتری قرار بگیرد؟ (مکان بالک) س :2چگونه وقتی یک بالک در سطح باالتری قرار دارد شناخته می شود؟(هویت بالک) س :3کدام بالک می تواند در یک فقدان جایگزین شود؟ (جایگذاری بالک) س :4در نوشتن چه روی می دهد؟ (استراتژی نوشتن) 464 \cpeg323-04F\Topic0.ppt 06/15/26 0 1 2 3 4 5 6 7 TAGS DATA 0117X 35, 72, 55, 30, 64, 23, 16, 14 7620X 11, 31, 26, 22, 55, … 3656X 71, 72, 44, 50, … 1741X خط 33, 35, 07, 65, ... 01173 آدرس 30 داده ها cache hitوcache miss مفهوم 06/15/26 \cpeg323-04F\Topic0.ppt 466 teff :زمان دستیابی موءثر cache ‏tcache :زمان دستیابی cache ‏tmain :زمان دستیابی حافظه اصلی ‏h :نسبت برخورد(موءفقیت) ‏teff = htcache + (1-h)tmain 467 \cpeg323-04F\Topic0.ppt 06/15/26 مثال = 10 ns - 1 - 4 clock cyclestcache Let = 50 ns – 8 - 32 clock cyclestmain = 0.95 h ? = teffect x 0.95 + 50 x 0.05 10 12 = 2.5 + 9.5 06/15/26 \cpeg323-04F\Topic0.ppt 468 نسبت برخورد(یا موءفقیت) نیاز به نیروی کافی برای رسیدن به سطح کارایی دلخواه دارد()say>90% وسعت بخشی به اثرات و نتایج تغییرات هرگز ثبات دائمی حتی برای ماشین های مشابه ندارد 469 \cpeg323-04F\Topic0.ppt 06/15/26 w.r.th (hit ratio)حساسیت کارایی tmain tcache tmain tcache since = h tcache + (1-h) tmainteff ] tcache [ h + (1-h) ] tcache [ 1 + (1-h) tmain ~ ~ tcache 10, the magnifactor of h changes is 10 times. خیلی حساس:نتیجه 06/15/26 \cpeg323-04F\Topic0.ppt 470 = یادآوری 1” “h Let if 06/15/26 ~ ~ :مثال h = 0.90 h = 0.05 (0.90 0.95) then (1 - h) = 0.05 then teff = tcache ( 1 + 0.5) \cpeg323-04F\Topic0.ppt 471 اصطالحات بنیادی ‏Cache line (block) - size of a room “یک مجموعه از داده های همجوار که به عنوان یک نهد ذخیره سازی cache مورد بحث واقع شده اند”. 1 ~ 16 words ‏Cache directory - key of rooms بخشی از cacheکه کلیدهای دستیابی را کنندی درست“به وسیله تطبیق ”راهنما دز پیدا که cache کردن می پشتیبانی مشارکت را بایداشتراکی دستیابی می کنند نگهداری باشد داشته 472 \cpeg323-04F\Topic0.ppt 06/15/26 سازمان دهی cache کامًال متحد :می تواند یک عنصر درهر بالک باشد مسیر دهی بی واسطه و مستقیم :می تواند یک عنصر فقط دریک بالک باشد چیدمان و قرارگیری پیوسته :می تواند یک عنصر درگروهی از بالک ها باشد 473 \cpeg323-04F\Topic0.ppt 06/15/26 پیوستگی کامل ساختار هربالک در حافظه می تواند در هر block- ‏frameدر cacheباشد تمام ورودی های الگوی بالک (block )frameباهم مقایسه می شوند(به وسیله جستجوی پیوسته) 474 \cpeg323-04F\Topic0.ppt 06/15/26 = a wordساده ترین مثال :یک بالک تمام حافظه آدرس دهی کلمه ای شدن ”“tag 0 17 ‏Address 027560 بسیار انعطاف“وبا احتمال باال به منظور ساکن شدن در cache 0 17 ‏Cache مزایا :بدون اتالف (با قابلیت سازمان دهی سریع) معایب:overhead of associative search: ‏data 027560 هزینه +زمان 475 \cpeg323-04F\Topic0.ppt 06/15/26 Block 0 Block 1 14 bits . . . … … … … Tag Block 0 Tag Block 1 … ... Tag Block I . . . Tag Block 127 Block 16382 Block 16383 آدرس حافظه اصلی 14 4 tag word کلمه دارد16 هر بالک:یدآوری 06/15/26 cache سازمان کامًال پیوسته \cpeg323-04F\Topic0.ppt 476 نگاشت مستقیم بدون پیوند پیوسته از آدرس Mحافظه“به طور مستقیم“برای قاب بالک در ‏cacheجایی که بالک باید قرار بگیرد شاخص دار شده. ‏A comparison then is to used to determine if it .is a miss or hit 477 \cpeg323-04F\Topic0.ppt 06/15/26 نگاشت مستقیم ساده ترین امتیاز: سریع(با منطق کمتر) هزینه کم:از این رو فقط یک دستگاه مقایسه کننده الزم است که می تواند در فرم استاندارد حافظه قرار گیرد معایب:اتالف و بیهودگی 478 \cpeg323-04F\Topic0.ppt 06/15/26 نگاشت مستقیم :مثال الگوی قاب دارد در128 فقطcache زمانی که :نتیجه درجه تسهیم چنین می باشد for addressing the correspondingاندازه حافظه اصلی 7 frame or set of 128 (2 ) size 1. the high-order 7 bit is used as tag. 16384 = 128 (block) 7 = 2 block/frame i.e. 27 blocks “fall” in one block frame. ”Disadr: “frashing 06/15/26 \cpeg323-04F\Topic0.ppt 479 حافظه اصلی Cache Block 0 Block 1 Block 2 7 bits ... … … … … Tag Block 0 ... Tag Block 127 Block 128 Block 129 Block 1 ... Tag Block 255 Block 256 Block 257 Block 4095 Block 4096 … ... Tag ... Block 127 Block 16383 آدرس حافظه اصلی 7 Tag 7 Block 4 Word نگاشت مستقیم 06/15/26 \cpeg323-04F\Topic0.ppt 480 نگاشت مستقیم Cont’d Mapping block addr mod (# of blocks in cache – in this case: mod (27)) )بیت میcache ( اندازهlog2 مرتبه پایین: مزیت تواند برای شاخص دار شدن استفاده شود 06/15/26 \cpeg323-04F\Topic0.ppt 481 قرار گیری پیوسته توافق بین direct/full-associative ‏Cacheبه چیدمانهای sتقسیم می شود … ,S = 2, 4, 8 اگر M cacheقاب داشته باشد که همه باهم باشند آنگاه داریم: ‏blocks/set ‏M ‏S =E #تعداد ساختارهای قابل دسترسی برای شاخص دار کردن 482 \cpeg323-04F\Topic0.ppt 06/15/26 بیت برای پیوند پیوسته به ک8 ت می توانند در چیدمان سمت راست فهرست شوند و سپس خواهد حافظه اصلی Cache Block 0 Block 1 Block 0 Block 63 Block 64 Block 65 Set 0 Tag Tag Set 1 Tag Block 1 Block 2 ... Tag ... 8 bits Block 3 Block 4095 Tag Set 63 Tag Block 126 Block 127 Block 16383 آدرس حافظه اصلی 8 Tag 06/15/26 \cpeg323-04F\Topic0.ppt 6 Set 4 Word 483 راه برای قرار گرفتن سازمان پیوسته2 8 6 4 Set Word 2 آماده دسترسی برای شاخص دار کردن 6 bit used to index into the right “set” higher order 8 bit used as tag hence an associative match of 8 bit with the tags of the 2 blocks is required 06/15/26 thus 214 (16k) = 28 block/set 26 2 way 28 block/per set of 2 or blocks بیتی با8 از این رو به هم پیوستن های بیتی نیاز است2 عالمتهای \cpeg323-04F\Topic0.ppt 484 گونه های دیگر بالک چندین کلمه=1 17 0 13 14 ‏M addr. ‏word key 13 14 17 4 ‏tag 6 7 7 0 7 ‏Sector ‏block ‏word (tag) (IBM 360/85) - 16 sector x 16 ‏Sector ‏block/sector 1 سکتور:چندین بالک متوالی :Cache miss جایگزینی سکتور بیت صحیح-یک بالک بنا به درخواست انتقال داده شده 485 \cpeg323-04F\Topic0.ppt 06/15/26 Valid bit Block 15 Block 16 Block 14 Block 15 Block 16 Block 112 Block 16368 Sector 1023 ... ... Tag Block 31 . . . Sector 1 Sector 1 Block 31 ... Tag Sector 7 Block 0 Block 1 ... Sector 0 Sector 0 ... Tag Block 0 Block 1 Block 127 Block 16383 آدرس حافظه اصلی 10 Sector (tag) 4 Block 4 Word cache نگاشت سکتور 06/15/26 \cpeg323-04F\Topic0.ppt 486 cont’d داردCache 128 blocks 16 blocks/sector = حافظه اصلی دارد 8 sector 16k 16 1 =K sectors نگاشت سکتورcache 06/15/26 \cpeg323-04F\Topic0.ppt 487 SET NUMBER 0 1 TAGS LINES 0326 34125 3411 41423 2262 66021 0173 34714 =? SELECT =? SELECT =? SELECT N -1 ADDRESS 0326 1 0 1 N -1 0 1 N -1 0 1 N -1 0326 =? 0326 34125 34125 SELECT IF NONE MISS 34125 DATA OUT The structure of a four-way set-associative cache with N sets 06/15/26 \cpeg323-04F\Topic0.ppt 488 Address (showing bit positions) 31 30 29 28 27……..16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Byte offset Hit Tag 20 Index Valid 10 Tag Data Data 0 1 2 ... ... ... 1021 1022 1023 20 32 = 06/15/26 \cpeg323-04F\Topic0.ppt 489 cache جمع تمام بیت ها در = جمع بیتها + of bits of a tag #( + of bits of a block # of bits in valid field) x Cache size # مثالی برایmips : x 214 )1 + 32 + )32-14-2(( = = 64 K (bytes) = 214 blocks with x 49 214 = k bits 784 = kbytes 100 ~ .cache فرض کنید یک نگاشت مستقیم 06/15/26 \cpeg323-04F\Topic0.ppt 490 به روز کردن حافظه اصلی/خط و مشي واکشی • به روز کردن are writes %16~8 : – باز نویسی یک نوشتن اشتباه شاید ربطی به حافظه اصلی نداشته باشد – ‏write-through عبور و مرور بیشتر • 491 واکشی \cpeg323-04F\Topic0.ppt 06/15/26 چه طور خواندن/نوشتن رابه کار ببریم )One-word-line: (DEC 3100 خواندن:آسان است ‏ آدرس را به cacheمناسب بفرستیدآ درس را از یکی از این دو (pcبرای خواندن یک دستورالعمل) یا از (ALUبرای دستیابی داده ها) ‏ اگر سیگنال های Cacheموفق شوند ،کلمه در خواست شده در خطوط داده ها موجود است.اگر که سیگنال های Cacheدچار مشکل شوند ،ما آدرس کامل را به حافظه اصلی می فرستیم .زمانی که حافظه داده ها را بر می گرداند،ما آن را در cacheمی نویسیم. 492 \cpeg323-04F\Topic0.ppt 06/15/26 :Read Miss is easy to be handled quickly خواندن تگ و خواندن بالک می تواند باهم انجام شود نوشتن معموًال کندتراست خواندن تگ و نوشتن بالک نمی تواند باهم انجام شود ) one-word-line cachesبه جز برای ) 493 \cpeg323-04F\Topic0.ppt 06/15/26 :برای خط های چند کلمه ای موقع نوشتن ‏on a write miss, it is a - تغییردادن بالک اصلی - چرخه نوشتن یک بخش خواندن نوشتن بالک مقایسه و سنجش تگ نمی تواند به موازات آن انجام گیرد در نتیجه انجام آن آهسته تر است 494 \cpeg323-04F\Topic0.ppt 06/15/26 چرا؟ فرض کنید x,yدر یک ستون یکسان نگاشت شوند و در ابتدای cache xرا داریم 495 ‏x1 x2 x3 x4 ‏x ‏y1 y2 y3 y4 ‏y ‏x1 x2 x3 x4 \cpeg323-04F\Topic0.ppt ‏x 06/15/26 فرض کنید قبل از نوشتن cache،در برگیرنده سطور xاست،زمانی که yنوشته می شود یک فقدان ،و یک نوشته رخ می دهد y.3 zنوشتن ‏Note after write miss, if not careful, we get اما در پایان یک بازنویسی x4 Y1,Y2,Y4 نابود Z می x1 x2 شوند 496 \cpeg323-04F\Topic0.ppt ‏y 06/15/26 ) – Write through (or store throughاطالعاتی که نوشته می شود روی هر دو بالک cacheو سطح پایین تر حافظه ) – Write back (also called copy backاطالعاتی که تنها روی بالک در cacheنوشته می شود .قالب cacheتغییر یافته روی حافظه اصلی تنها زمانی که جایگزین شود نوشته می شود باز نویسی پاک کردن و پر کردن بالک یک بیت پر نشان می دهد که آیا یک سطر تا زمانی که در cacheاست تغییر کرده است .موقعی که یک “”dirty lineجایگزین شود ،باید در حافظه اصلی بازنویسی شود . 497 \cpeg323-04F\Topic0.ppt 06/15/26 وجود دارندwrite missدو تا گزینه در تخصیص نوشتن (که به آن واکشی به منظور نوشتن هم گفته می by the write-hit actions above. به دنبال آن، شود)بالک بار می شود .This is similar to a read miss No write allocate (also called write around) - The block is modified in the lower level and not loaded into the cache. Think what you do when have a write miss! 06/15/26 \cpeg323-04F\Topic0.ppt 498 چه موقع write throughبهتر است؟ زمانی که از cacheدو سطحی استفاده می شود Cpuروی یک تراشه cacheکوچک است. + یک تراشه بزرگ cache 499 ‏ سازگاری آسانتر است ‏ به وسیله دومین cacheاز ترافیک حافظه جلوگیری می شود \cpeg323-04F\Topic0.ppt 06/15/26 Write-back vs. Write-through )سرعت (باز نویسی سریع است )باز کپی بهتر است، ( در حالت عمومیTraffic If more than one read hit to the line  So attractive to multiprocessor in this sense  ( بهتر استcache( write-through ساز گاری )بسیار کامل استcopy-back(منطقی 06/15/26 \cpeg323-04F\Topic0.ppt 500 Cont’d ‏Write-back vs. Write-through 4(Bufferingبرای write-throughبهترین است) به هردو نیاز دارد ،در حالی که copy-backفقط به یکی نیاز دارد .مدیریت پیچیده است زیرا زمانی که یک refساخته می شود ،باید با bufferهمراه باشد قابلیت اطمینان(write-throughبهتر است) برای اینکه حافظه اصلی قابلیت شناسایی خطا را دارد ”انتخاب واضحی وجود ندارد ” برحسب کارایی 501 \cpeg323-04F\Topic0.ppt 06/15/26

83,000 تومان