Memari_computer

در نمایش آنلاین پاورپوینت، ممکن است بعضی علائم، اعداد و حتی فونت‌ها به خوبی نمایش داده نشود. این مشکل در فایل اصلی پاورپوینت وجود ندارد.




  • جزئیات
  • امتیاز و نظرات
  • متن پاورپوینت

امتیاز

درحال ارسال
امتیاز کاربر [0 رای]

نقد و بررسی ها

هیچ نظری برای این پاورپوینت نوشته نشده است.

اولین کسی باشید که نظری می نویسد “معماری کامپیوتر”

معماری کامپیوتر

اسلاید 1: 3/13/2018cpeg323-04FTopic0.ppt1معماري كامپيوتر ( 3واحد درسي تئوري)تهيه كننده:مجتبي پورمحقق

اسلاید 2: 3/13/2018cpeg323-04FTopic0.ppt2این درس در مورد چیست؟این درس در مورد ساختار وچگونگی طراحی کامپیوتر های دیجیتالی است . این مطلب معروف به “معماری کامپیوتر” است (که شامل معماری مجموعه دستورالعمل + سازماندهی سخت افزاری می باشد ) .

اسلاید 3: 3/13/2018cpeg323-04FTopic0.ppt3چرا سازماندهی کامپیوتر را بررسی می کنیمشاید هیچکدام از شما در شرکتهای Intel و یا AMD کار نکرده اید اما . . .- کامپیوترهای جاسازی شده- طراحی کامپایلر- حتی طراحان نرم افزار با محصولات این شرکتها در ارتباطند .

اسلاید 4: 3/13/2018cpeg323-04FTopic0.ppt4طرح كلي درسبازنگری کلیکاراییمجموعه دستورالعملهامحاسبات کامپیوترماشینهای تک چرخه ایخط لوله ای سیستمهای حافظه (RAM , Caches , Virtual Memory)سوپر اسکالر (Superscalar/VLIW) و چند پردازنده هامباحث دیگر

اسلاید 5: 3/13/2018cpeg323-04FTopic0.ppt5سرفصل 1: رئوس مطالب در معماری و سازماندهی کامپیوتر یافتن توانایی ارائه اطلاعات پایه از معماری و سازماندهی کامپیوتر در جریان طراحی کامل یک کامپیوتر دریافتن مسئولیتهای حرفه ای و اخلاقی یک مهندس کامپیوتر (مخصوصا معمار کامپیوتر)

اسلاید 6: 3/13/2018cpeg323-04FTopic0.ppt6“معماری” به چه معناست؟“ فن یا دانش یا ساختمان ... فن یا پرداختن به طراحی و پیاده سازی ساختارها ... “Webster 9th New College Dictionary “شامل نقشه ، طراحی ، ساخته و دکوراسیون چگونگی عملکرد “American College Dictionary

اسلاید 7: 3/13/2018cpeg323-04FTopic0.ppt7“معماری کامپیوتر”- کلمه ای که توسط Fred Brooks ابداع گردید.

اسلاید 8: 3/13/2018cpeg323-04FTopic0.ppt8“معماری کامپیوتر، یعنی کامپیوتر از دید کاربر”- Amdhal et al, (64)“ما بوسیله معماری، ساختارواحدهای تشکیل دهنده یک سیستم کامپیوتری را هدفمند می نمائیم .”- Stone, H. (1987)“معماری کامپیوتر”

اسلاید 9: 3/13/2018cpeg323-04FTopic0.ppt9 “معماری یک کامپیوتر عبارتست ازمحیط یا فضای بین ماشین و نرم افزار”- Andris Padges IBM 360/370 Architect“معماری کامپیوتر”

اسلاید 10: 3/13/2018cpeg323-04FTopic0.ppt10ساختار: نظم و ترتیب دادن به بخشهای ثابت (نقشه)سازماندهی: فعل و انفعال پویای این بخشها و مدیریت آنهاپیاده سازی:طراحی کردن بلوک بخشهای دارای هدف خاصارزیابی کارایی: مطالعه رفتار سیستم (decorative treatment)“معماری کامپیوتر”

اسلاید 11: 3/13/2018cpeg323-04FTopic0.ppt11معماری (از دیدگاه معمار) پیاده سازیسازماندهی: منظر سطح بالاسیستم حافظهساختار گذرگاه (bus)طراحی داخلی CPUسخت افزارطراحی منطقیتکنولوژی بسته بندی(packaging) معماری مجموعه دستورالعمل

اسلاید 12: 3/13/2018cpeg323-04FTopic0.ppt12نکات مهم به خاطر بسپارید: نکته اینست که بیاموزید چگونه معماری به مفهوم تکنولوژی موجود را ارزیابی کنید. شناختن روش خیلی مهم است، اما پایان کار نیست.

اسلاید 13: 3/13/2018cpeg323-04FTopic0.ppt13مراحل در سازماندهی کامپیوتر مفهوم ماشینهای چند سطحی مفاهیم ماشین مجازی

اسلاید 14: 3/13/2018cpeg323-04FTopic0.ppt14انضباط در معماری ساختار سخت افزار / نرم افزار الگوریتم ها و پیاده سازی آنها انتشار زبان

اسلاید 15: 3/13/2018cpeg323-04FTopic0.ppt15هر دوی سخت افزار و نرم افزار مرکب از لایه های سلسله مراتبی هستند، با هر لایه سطح پائینتر جزئیاتی از دید سطح بالاتر مخفی می شوند. این اصل تجرید، روشی است که طراحان سخت افزار و طراحان نرم افزار از عهده پیچیدگی سیستم های کامپیوتری بر آمدند.یک محیط کلیدی بین لایه های انتزاعی معماری مجموعه دستورالعمل است: فضای بین سخت افزار و نرم افزار سطح پائین . این محیط مجازی توان بسیاری در پیاده سازی برای دگرگونی هزینه و کارایی در اجرای یک نرم افزار یکسان است. John L. HennessyDavid A. Pattersonتصویر بزرگ

اسلاید 16: عوامل در معماری کامپیوترTechnologyProgrammingLanguagesOperatingSystemsHistoryApplicationsInterface DesignMeasurement & Evaluation ParallelismComputer Architecture:• Instruction Set Design• Machine Organization• Implementation

اسلاید 17: 3/13/2018cpeg323-04FTopic0.ppt17مجموعه دستورالعملها یک محیط بحرانیinstruction setsoftwarehardware

اسلاید 18: 3/13/2018cpeg323-04FTopic0.ppt18152مهندسی و معماری کامپیوتر کجاست؟هماهنگی بسیاری از لایه های انتزاعیI/O systemProcessorCompilerOperatingSystem(Windows 2K)Application (Netscape)Digital DesignCircuit DesignInstruction Set ArchitectureDatapath & Control transistorsMemoryHardwareSoftwareAssembler

اسلاید 19: 3/13/2018cpeg323-04FTopic0.ppt19تشریح: پنج جزء ترکیب شده کامپیوترPersonal Computer Processor ComputerControl(“brain”)Datapath(“brawn”)Memory(where programs, data live whenrunning)DevicesInputOutputKeyboard, MouseDisplay, PrinterDisk (where programs, data live whennot running)

اسلاید 20: 3/13/2018cpeg323-04FTopic0.ppt20تکنولوژی کامپیوتر: تغییری مهیج پردازنده هر یکسال و نیم، 2 برابر در سرعت(از سال 1985). کارایی 100 برابر، در دهه گذشته حافظه ظرفیت DRAM: 2برابر در هر دو سال(از سال 96) بهبود اندازه 64x در دهه گذشته دیسک ظرفیت: 2برابر در هر سال(از سال 97)بهبود اندازه 250x در دهه گذشته

اسلاید 21: 3/13/2018cpeg323-04FTopic0.ppt21گرایش تکنولوژی: پیچیدگی ریزپردازنده2X transistors/Chip Every 1.5 to 2.0 years2برابر ترانزیستور/تراشه هر 1.5 تا 2 سال“موسوم به قانون مور”

اسلاید 22: 3/13/2018cpeg323-04FTopic0.ppt22به کجا می رویم؟This courseµProc60%/yr.(2X/1.5yr)DRAM9%/yr.(2X/10 yrs)110100100019801981198319841985198619871988198919901991199219931994199519961997199819992000DRAMCPU1982Processor-MemoryPerformance Gap: (grows 50% / year)PerformanceTime“Moore’s Law”ArithmeticSingle/multicycleDatapathsIFetchDcdExecMemWBIFetchDcdExecMemWBIFetchDcdExecMemWBIFetchDcdExecMemWBPipeliningMemory SystemsI/OYOURCPU

اسلاید 23: 3/13/2018cpeg323-04FTopic0.ppt23Intel 486™ DX CPUDesign 1986 – 198925 MHz, 33 MHz 1.2 M transistors1.0 micron5 stage pipelineUnified 8 KByte code/data cache (write-through)First IA-32 processor capable of executing 1 instruction per clock cycle

اسلاید 24: 3/13/2018cpeg323-04FTopic0.ppt24Pentium® Processor Design 1989 – 199360 MHz, 66 MHz3.1 M transistors0.8 micron5 stage pipeline8 KByte instruction and 8 KByte data caches (writeback)Branch predictorPipelined floating pointFirst superscalar IA-32: capable of executing 2 instructions per clock

اسلاید 25: 3/13/2018cpeg323-04FTopic0.ppt25Pentium® II ProcessorDesign 1995 – 1997233 MHz, 266 MHz, 300 MHz7.5 M transistors0.35 micron16 KByte L1I, 16 KByte L1D, 512 KByte off-die L2First compaction of P6 microarchitecture

اسلاید 26: 3/13/2018cpeg323-04FTopic0.ppt26Pentium® III Processor (Katmai)Introduced: 1999450 MHz, 500 MHz, 533 MHz, 600MHz9.5 M transistors0.25 micron16 KByte L1I, 16 KByte L1D, 512 KByte off-chip L2Addition of SSE instructions.SSE: Intel Streaming SIMD Extensions to the x86 ISA

اسلاید 27: 3/13/2018cpeg323-04FTopic0.ppt27Pentium® III Processor (Coppermine)Introduced: 1999500MHz … 1133MHz28 M transistors0.18 micron16 KByte L1I, 16 KByte L1D, 256KByte on-chip L2Integrate L2 cache on chip, It topped out at 1GHz.

اسلاید 28: 3/13/2018cpeg323-04FTopic0.ppt28Pentium® IV ProcessorIntroduced: 20001.3GHz … 2GHz … 3.4GHz42M … 55M … 125 M transistors0.18 … 0.13 … 0.09 micronLatest one: 16 KByte L1I, 16 KByte L1D, 1M on-chip L2Very high clock speed and SSE performance

اسلاید 29: 3/13/2018cpeg323-04FTopic0.ppt29Intel® Itanium® ProcessorDesign 1993 – 2000733 MHz, 800 MHz25 M transistors0.18 micron3 levels of cache16 KByte L1I, 16 KByte L1D 96 KByte L24 MByte off-die L3Superscalar degree 6, in-order machineFirst implementation of 64-bit Itanium architecture

اسلاید 30: 3/13/2018cpeg323-04FTopic0.ppt30Intel® Itanium 2® ProcessorIntroduced: 20021GHz 221 M transistors0.18 micron3 levels of cache32 KByte I&D L1256 KByte L2integrated 1.5MByte L3 Based on EPIC architecture Enhanced Machine Check Architecture (MCA) with extensive Error Correcting Code (ECC)

اسلاید 31: 3/13/2018cpeg323-04FTopic0.ppt31Cache Size Becoming Larger and Larger8 KByte I-cache and 8 KByte D-cache16 KByte L1I, 16 KByte L1D512 KByte off-die L2Level 1: 16K KByte I-cache, 16 KByte D-cacheLevel 2: 256 KB Level 3: integrated 3 MB or 1.5 MB 1993: Pentium1997: Pentium-II2002: Itanium-2

اسلاید 32: 3/13/2018cpeg323-04FTopic0.ppt32Motorola’s PowerPC 604Pentium

اسلاید 33: 3/13/2018cpeg323-04FTopic0.ppt33

اسلاید 34: 3/13/2018cpeg323-04FTopic0.ppt34

اسلاید 35: 3/13/2018cpeg323-04FTopic0.ppt35یک بازبینی از جریان طراحی پردازنده

اسلاید 36: 3/13/2018cpeg323-04FTopic0.ppt36چگونه یک CPU طراحی می شودطراحی معماری مجموعه دستورالعمل (ISA design)طراحی در سطح وظایف (function-level) RTL designطراحی در سطح اجزاء ترکیب دهندهطراحی gate-level/switch-levelطراحی در سطح مدار

اسلاید 37: 3/13/2018cpeg323-04FTopic0.ppt37روش کلاسیک طراحی مرحله ای معماری مجموعه دستورالعملانتخاب یک الگوی ساخت Aتعریف A برای تطبیق با:کارایی مورد تقاضای جدید و تکنولوژی جدیدارزیابی (شبیه سازی معماری مجموعه دستورالعمل)تکرار تا کسب رضایت

اسلاید 38: 3/13/2018cpeg323-04FTopic0.ppt38کل استراتژی شبیه سازیشبیه ساز در سطح دستورالعمل (ISA): این روش برای ارزیابی کارایی در سطح مجموعه دستورالعمل برای شرح بیشتر مدل سازی استفاده می شود. شبیه سازی در سطح سیستم: مدلهای این شبیه ساز جزئیات مربوط به محیط سیستم شامل برخی چیزها مانند وقفه ها و مدیریت حافظه را مدل سازی می کند.

اسلاید 39: 3/13/2018cpeg323-04FTopic0.ppt39کل استراتژی شبیه سازیدر سطح RTL: مدلهای این شبیه ساز تشریح RTL از طراحی است.در سطح سوئیچ همراه با تاخیرها: بیش از همه برای شبیه سازی مولفه های طراحی به کار می رود؛ بردارهای آزمایشی از مرحله RTL تولید شده اند.شبیه سازی در سطح مدار: برای مدل سازی جزئیات مسیر بحرانی به علاوه برای بازبینی مدارها در تغییرات دمایی، توان ارائه شده و غیره به کار می رود. (Con’d)

اسلاید 40: 3/13/2018cpeg323-04FTopic0.ppt40کارایی شبیه سازهاتعداد چرخه های شبیه سازی شده در ثانیه بر روی یک کامپیوتر میزبان

اسلاید 41: 3/13/2018cpeg323-04FTopic0.ppt41کارایی دستورالعمل بر چرخه (IPC)ایجاد مدل کارایی که:قابل انعطافپذیرای پارامتر(Parameterized ) از طریق دستگیرهدارای دقت ساعت در مقایسه با RTL برابر با 95% باشدبه صورت قابل توجهی سریعتر از RTLمدلها مرکب از دو بخش هستند.شبیه ساز مجموعه دستورالعمل -> اجرا کننده محک(benchmark)شبیه ساز خط لوله -> “حسابدار” برای چرخه های ساعتسرعت های شبیه سازیاجرای محک ها(benchmark)، به روز رسانی ریز معماری بر طبق آنچرخۀ : کد -> شبیه ساز -> characterize -> وفق دادن(tune)

اسلاید 42: 3/13/2018cpeg323-04FTopic0.ppt42فصل دوم معماری مجموعه دستورالعملهامقدمهیک بررسی موردی: معماری مجموعه دستورالعمل ماشین MIPS

اسلاید 43: 3/13/2018cpeg323-04FTopic0.ppt43مراحل اجرای یک دستورالعملواکشی دستورالعمل: برداشت دستورالعمل بعدی از حافظهکدبرداری از دستورالعمل: بررسی دستورالعمل برای مشخص شدن اینکه:چه عملی باید توسط دستورالعمل انجام گیرد (به عنوان مثال جمع)چه عملوندهایی مورد نیازند، و نتایج باید کجا قرار گیرند.واکشی عملوندها: عملوندها برداشت می شوند.اجرا: اجرای عملیات بر روی عملوندهابازنویسی نتیجه: نوشتن نتیجه در محل مخصوصدستورالعمل بعدی: تعیین اینکه دستورالعمل بعدی از کجا گرفته شود.

اسلاید 44: 3/13/2018cpeg323-04FTopic0.ppt44چه چیزی در یک ISA(معماری مجموعه دستورالعمل) مشخص می شود؟کدبرداری از دستورالعمل: اعمال و عملوندها چگونه تعیین می گردند؟واکشی عملوندها: عملوندها ممکن است کجا باشند؟ چه تعداد؟اجرا: چه اعمالی می تواند انجام گیرد؟ چه نوع داده و چه اندازه هایی؟بازنویسی نتایج: نتایج کجا نوشته می شوند؟ چه تعداد؟دستورالعمل بعدی: دستورالعمل بعدی را چگونه می توان انتخاب نمود؟

اسلاید 45: 3/13/2018cpeg323-04FTopic0.ppt45چه عملیاتی می تواند اجرا شود؟ عملیات پایه ریاضی (برای این لحظه)چه نوع داده و چه اندازه ای؟ نوع داده صحیح 32 بیتی (integer 32)عملوندها و نتایج کجا می توانند قرار گیرند؟ حافظهچه تعداد عملوند و نتیجه؟ 2 عملوند، 1 نتیجهاعمال و عملوندها چگونه مشخص می شوند؟ OP DEST,SRC1,SRC2عمل مقصد,منبع1,منبع2 چگونه می توانیم دستورالعمل بعدی را انتخاب کنیم؟ بعدی به ترتیبیک ISA ساده:حافظه به حافظه

اسلاید 46: 3/13/2018cpeg323-04FTopic0.ppt46مدل حافظهحافظه را به عنوان یک آرایه بزرگ از n عدد صحیح در نظر بگیرید، که بوسیله اندیس قابل دستیابی است.(حافظه با دستیابی تصادفی موسوم به ram)143990...Address Contents012N - 1...به عنوان نمونه ، M[1] شامل مقدار 3 است. ما می توانیم در این مکانها نوشتن و خواندن را انجام دهیم. این مکانها صرفا در دسترس ماست. تمام مکانهای “مجرد” (از قبیل متغیرها در C) باید مکانهایی را در M تعیین کنند.

اسلاید 47: 3/13/2018cpeg323-04FTopic0.ppt47ترجمه کد سادهکد C مفروضA = B + C;ما می توانیم تصمیم بگیریم که متغیر A مکان 100 ، B مکان 48 و C مکان 76 را اشغال می کند. کد بالا را به معادل کد اسمبلی آن تبدیل می کنیم:ADD M[100], M[48], M[76]چگونه می توانیم عبارت زیر را تبدیل کنیم A = (B + C) * (D + E);

اسلاید 48: 3/13/2018cpeg323-04FTopic0.ppt48استفاده از یک مکان موقتیفرض کنید ما A را در 100، B را در 48 ، C را در 76، D را در 20 و E را در32 قرار می دهیم.اکنون یک مکان بدون استفاده را انتخاب می کنیم (مثلا 84)ADD M[100], M[48], M[76]# A = B + CADD M[84], M[20], M[32]# temp = D + EMUL M[100], M[100], M[84]# A = A * temp

اسلاید 49: 3/13/2018cpeg323-04FTopic0.ppt49مشکلات در معماری حافظه به حافظهحافظه اصلی خیلی کندتر از مدارات محاسباتی است- این مطلب از سال 1950 تا 2003 درست است!خانه های زیادی برای مشخص نمودن آدرسهای حافظه گرفته می شوند.معمولا نتایج یک یا دو دستورالعمل بعد مورد استفاده قرار می گیرند.به خاطر داشته باشید: بخشهای اشتراکی را سریعتر نمائید!راه حل: نتایج میانی یا موقتی را در حافظه های سریع و نزدیک به واحد محاسبه ذخیره نمائید.

اسلاید 50: 3/13/2018cpeg323-04FTopic0.ppt50ماشینهای مبتنی بر انباشتگر(Accumulator)یک ماشین انباشتگر، یک بافر پرسرعت واحد (مانند یک مجموعه از D latchها یا فلیپ فلاپها ، هر کدام برای یک بیت داده) را نزدیک واحد محاسبه منطق نگهداری می کند.در ساده ترین حالت، فقط یک عملوند می تواند مشخص گردد; انباشتگر به صورت مجازی به مفهوم “OP Operand” می باشد یعنی: acc. = acc. OP operandExample: LOAD M[48] # Load B into acc.ADD M[76]# Add C to acc. (now has B+C)STORE M[100]# Write acc. To A

اسلاید 51: 3/13/2018cpeg323-04FTopic0.ppt51ماشین مبتنی بر انباشتگر که A=(B+C)*(D+E) را انجام می دهدLOAD M[20] # Load D into acc.بارگذاری D در انباشتگرADD M[32]# Add E to acc. (now has D+E)جمع E با انباشتگر.(اکنون داریم D+E)STORE M[100]# Write acc. To Aنوشتن محتوای انباشتگر در A.LOAD M[48] # Load B into acc.بارگذاری Bدر انباشتگر.ADD M[76] # Add C to acc. (now has B+C)جمع نمودن Cبا انباشتگر.(اکنون داریم B+C)MUL M[100]# Multiply A to acc.ضرب کردن A در انباشتگر.STORE M[100]# Write (B+C) * (D+E) to Aنوشتن نتیجه در A

اسلاید 52: 3/13/2018cpeg323-04FTopic0.ppt52ضعف ماشینهای مبتنی بر انباشتگرهنوز نیازمند ذخیره سازی بسیاری مقادیر موقتی و میانی در حافظه می باشیمدر واقع انباشتگر فقط برای یک ترتیب از محاسبات که در آن نتیجه یکی، ورودی برای بعدی است، مفید می باشد.

اسلاید 53: 3/13/2018cpeg323-04FTopic0.ppt53ماشینهای مبتنی بر انباشتگر هنوز در کامپیوترهای اولیه معمول بودندیک طراحی ساده، و بنابراین محبوب ، مخصوص برای- کامپیوترهای اولیه- میکروپروسسرهای اولیه (4004 ، 8008)- مدلهای Low-end (ارزان)

اسلاید 54: 3/13/2018cpeg323-04FTopic0.ppt54پیشنهادات برای ماشینهای مبتنی بر انباشتگراگر منابع سخت افزاری بیشتری در دسترس است، مکانهای ذخیره سازی سریع را در کنار انباشتگر قرار دهید:ماشینهای مبتنی بر پشتهماشینهای مبتنی بر ثبات- خاص منظوره- عام منظوره

اسلاید 55: 3/13/2018cpeg323-04FTopic0.ppt55ماشینهای مبتنی بر پشتهایده: یک ستون از مکانهای ذخیره سازی سریع دارای یک بالا(top) و یک پایین (bottom)143990...Address Contentstop2nd from top3rd from topbottom...یک دستورالعمل فقط از مقدار بالای پشته(top) قابلیت برداشت دارد، یا شاید دو یا سه مقدار به عنوان بالای پشته در نظر گرفته شوند.ما می توانیم مقادیر جدید را در بالای پشته قرار دهیم (“push”) یا از بالای پشته برداریم (“pop”) اما فقط همین. ما نمی توانیم به مکانهایی در زیر پشته دسترسی داشته باشیم مگر اینکه هر چیز بالای آن را خارج کنیم.

اسلاید 56: 3/13/2018cpeg323-04FTopic0.ppt56معماری مجموعه دستورالعمل ماشینهای مبتنی بر پشتهاعمال اصلی شامل:بارگذاری: برداشت مقدار از حافظه و قرار دادن آن بر روی پشتهذخیره سازی: برداشت مقدار از پشته و ذخیره آن در حافظهحسابی: خارج کردن یک یا دو مقدار از پشته؛ قرار دادن نتیجه روی پشتهدونسخه ای (Dup): گرفتن مقدار از بالای پشته بدون حذف آن؛ قرار دادن یک کپی جدید از آن در روی پشته (چرا این عمل کاربردی است؟)

اسلاید 57: 3/13/2018cpeg323-04FTopic0.ppt57ماشین مبتنی بر پشته که A=(B+C)*(D+E) را انجام می دهدXXX(D)XXX(D)XXX(E)(stack top at start)LOAD M[20]LOAD M[32](D+E)XXXADD(D+E)XXX(B)LOAD M[48](continued next slide)

اسلاید 58: 3/13/2018cpeg323-04FTopic0.ppt58ماشین مبتنی بر پشته(C)(B)(D+E)(D+E)XXX(B+C)LOAD M[76]ADD((B+C)*(D+E))XXXMULTSTORE M[100]دقت کنید که اکنون پشته مشابه زمانی است که شروع نمودیم.XXXXXX

اسلاید 59: 3/13/2018cpeg323-04FTopic0.ppt59کاربرد ماشینهای مبتنی برپشتهبسیاری از کامپیوترهای اولیهواحد ممیز شناور در 8086 (تقریبا)ماشین مجازی جاوا

اسلاید 60: 3/13/2018cpeg323-04FTopic0.ppt60ماشینهای مبتنی بر ثباتایده:به کار بردن مکانهای ذخیره سازی زیاد(”ثباتها“)نزدیک انباشتگر ثبات ها نام / شماره های مشخصی دارند که می توانند به جای حافظه استفاده می شونددستیابی نسبت به حافظه اصلی خیلی سریعتر است (1-2 CPU cycles vs. ~ 100 CPU cycles on PC)_ ثبات ها نسبت به مکان های حافظه خیلی نزدیک ترندMIPS_ 32 تا ثبات 32 بیتی دارد_ثبات های کمتر آدرس های کوچکتر وتعداد بیتهای کمتر برای نام گذاری آنها_منابع استفاده کمتر است و باید با دقت ار آنها استفاده شود!

اسلاید 61: 3/13/2018cpeg323-04FTopic0.ppt61ثباتهای عام منظوره_خاص منظورهیک ثبات خاص_ منظوره برای اهداف مشخص استفاده می شود و ممکن است عملیاتی را که استفاده می شود را محدودکند طراحی آسانتر سخت افزار: ثبات را در جایی که دقیقا نیازاست قرار بدهبه منظور استفاده موثر برای کامپایلر خیلی سخت تر است.یک ثبات عام منظوره می تواند دربیشتر مسیرهای عملیاتی استفاده شود بنابراین مسیریابی خیلی مشکل است

اسلاید 62: 3/13/2018cpeg323-04FTopic0.ppt62ثبات های خاص منظوره The z_80 cpu هفت تا ثبات 8 بیتی: (می توانند جفت شوند A,B,C,D,E,H,LBC,DE,HL).سه تا ثبات 16 بیتی:62 PC (شمارنده برنامه). جمع ,تفریق, شیفت تنها با A می تواند انجام شود (شمارنده 8 بیتی ).افزایش و کاهش می تواند با تمام ثبات ها وجفتهای ثبات انجام شود .می توانند از حافظه آدرس (HL)را واکشی کنند و در هر8بیت ثبات قرار دهند.یک واکشی از آدرس(BC)یا(DE)تنها می تواند به Aبرود.واکشی ها از (BC),(HL)و (IX) تعداد چرخه های متفاوتی می گیردچه کسی می خواهد برای این یک کامپایلر بنویسد؟

اسلاید 63: 3/13/2018cpeg323-04FTopic0.ppt63ثبات عام منظوره ماشین های (GPR) MIPS(وپردازشگرهای مشابه)32تا ثبات عمومی دارند (GPRs)هر32بیتlongهستند.همه می توانند نوشته یا خوانده شوند به جز ثبات صفر که همیشه صفراست ونمی تواند تغییر کند.زمان دستیابی به ثبات ثابت است.039914...Address Contents$0$1$2$31...

اسلاید 64: 3/13/2018cpeg323-04FTopic0.ppt64ماشین GPR A=(B+C)*(D+E) راانجام می دهدADD $1M[48], M[76]#R1 = B + CADD$2M[20], M[32]#R2 = D + EMUL M[100], $1, $2#A = R1 * R2

اسلاید 65: 3/13/2018cpeg323-04FTopic0.ppt65اندازه های داده های متفاوت چطورباید با اندازه های داده های متفاوت رفتارکنیم؟ انتخاب یک اندازه برای یک واحد ذخیره شده در یک آدرس تنها ذخیره کردن داده بزرگ در یک مجموعه از مکانهای همجوارحافظهذخیره کردن داده کوچک در یک مکان: use shift & mask ops امروزه تقریبا همه ماشینها(شاملMIPS)دارای آدرس دهی بایتی “Byte_Adressable”هستند هر مکان آدرس دهی ، در حافظه 8بیتی نگهداری می شود.

اسلاید 66: 3/13/2018cpeg323-04FTopic0.ppt66حافظهMIPS روی یک ماشین قابل آدرس دهی بایتی ازقبیلMIPS اگرما بگوییم یک کلمه (32بیت) درآدرس80 ذخیره شده به این معنااست که مکانهای 80تا83را اشغال کرده.(کلمه بعدی از84 شروع می شود).به طور نرمال بارگذاری وذخیره چندین بیت باید ”تنظیم“ شود.آدرس nبایتی بارگذاری یا ذخیره باید مضربی ازnباشد.برای نمونه نیم کلمه تنها در آدرسهای زوج ذخیره میشود.MIPS اجازه بارگذاری شدن و ذخیره شدن برای استفاده مخصوص دستورالعمل ها را نمی دهند اما آنها ممکن است کندترشوند(بیشتر پردازشگرها این را برای همیشه اجازه نمی دهند!).

اسلاید 67: 3/13/2018cpeg323-04FTopic0.ppt67Byte-Order (“Endianness”)برای یک داده چند بایتی کدام قسمت به کدام بایت می رود؟اگر$1محتوی1000000(F4240H )و ما آن را در آدرس 80 ذخیره کنیم :در یک ماشین “Big Endian” “Big End” به آدرس 80 می روددر یک ماشین “Little Endian” از سوی دیگر است. 00 0F 42 40… 79 80 81 82 83 84 … 40 42 0F 00… 79 80 81 82 83 84 …

اسلاید 68: 3/13/2018cpeg323-04FTopic0.ppt68Big-Endian vs. Little-Endianماشینهای Big Endian:MIPS,SPARC,68000ماشینهای :Little Endianبیشتر پردازشگر های intel,Alpha,Vaxسازگاری مشکلات انتقال چندین بایت داده بین ماشینهای Big Endian,Little Endian

اسلاید 69: 3/13/2018cpeg323-04FTopic0.ppt69روشهای آدرس دهییک روش آدرس دهی ISA’S این سوال را جواب می دهد :عملوندها کجا میتوانند ذخیره شوند؟ما دو نوع ذخیره سازی در MIPSداریم( وبیشتر ماشینهای دیگر) :ثباتها و حافظه اصلی.ما می توانیم به هریک از این دو یا هردو عملوندها برویم . یک تک عملوند می تواند با هر یک از این دو بیاید یک ثبات یا یک مکان حافظه ، و روشهای آدرس دهی راه های گوناگون تشخیص این مکانها را ارائه می کند.

اسلاید 70: 3/13/2018cpeg323-04FTopic0.ppt70روشهای آدرس دهی سادهدراین روشها یک مکان یا داده به طور مستقیم دریک دستورالعمل داده می شود:

اسلاید 71: 3/13/2018cpeg323-04FTopic0.ppt71روشهای آدرس دهی غیر مستقیمدر تولید یک آدرس حافظه یکی یا بیشترثباتها استفاده می شوند

اسلاید 72: 3/13/2018cpeg323-04FTopic0.ppt72روشهای آدرس دهی پیشرفتهاجزای زیادی اجزای اصلی را در زبانهای سطح بالا پشتیبانی می کنند یا تعداد دستور العمل هارا در طول دستیابی از حافظه افزایش می دهند

اسلاید 73: 3/13/2018cpeg323-04FTopic0.ppt73روشهای آدرس دهی منتخبکارهایی که انجام می شود :هر روش آدرس دهی ممکن است برای هر عملوندی در هر زمان استفاده شود طرح دستورات سطح بالا به طور مستقیم به دستورالعملها آسانتر است.برای طراحی پردازشگر سخت است بعلت اینکه باعث پیچیدگی بیشتر می شودآدرس دهی های محدود: تنها روشهای کمی را اجازه می دهند ویا تعداد عملوندها را به روش های معین محدود میکنندبرای کامپایلر یا برنامه نویس که پیرو قواعد مشخص هستند سخت تراست شایدطول کد زیاد شود

اسلاید 74: 3/13/2018cpeg323-04FTopic0.ppt74بسامد روشهای آدرس دهیسه برنامه روی(مینی کامپیوتر)vaxمشخص شده که همه انواع روشها را پشتیبانی می کنند:Displacement324255Immediate173343Reg. Indirect31324Scaled0716Mem. Indirect136Others023Mode NameFrequency of mode (%)Min. ave. max.

اسلاید 75: 3/13/2018cpeg323-04FTopic0.ppt75روشهای آدرس دهی داده های تجربیبزرگی تغییر مکان مورد نیاز چه طور باید باشد؟در بررسی های Spec in92وSpec fp92 99درصد تغییر مکانها در دامنه +-215انجام می شود.بزرگی ثابت فوری مورد نیاز چه طور باید باشد؟در مطالعات نشان داده شده 50 تا 60 درصد در 8 بیت و75 تا 80 درصد در 16 بیت است.

اسلاید 76: 3/13/2018cpeg323-04FTopic0.ppt76چه طور ما نمایش دادن دستورالعمل ها را انجام می دهیم ؟ما به چند بیت احتیاج داریم برای اینکه بگوییم چه عملی انجام شده (مثلا جمع وتفریق و ضرب وغیره)که به این کدگذاری عملوند opcodeگویندما به چند بیت برای هر عملوندو نتیجه احتیاج داریم(در نمونه ما جمعا 3تا ) چه نوع روش آدرس دهیشماری از ثباتها و آدرس حافظه و یا ثابت فوری

اسلاید 77: 3/13/2018cpeg323-04FTopic0.ppt77دستورالعملهای با طول متغیرتا کنون Vax هر روش را برای هر عملوندی اجازه داده می تواند یک دستور العمل با سه تا آدرس های 32 بیتی باشد (آدرس دهی مستقیم) 12 بایت در این دستورالعمل اما ثباتها به بیتهای کمی برای مشخص شدن نیاز دارند بنابراین 12 بایت برای یک دستورالعمل که تنها از 3 تا ثبات استفاده می کنند هدر میشود .باید از دستور العمل های با طول متغیر استفاده کرد.درVaxدستورالعملهل از 1 تا 17 بایت متغیراند.

اسلاید 78: 3/13/2018cpeg323-04FTopic0.ppt78دستورالعمل های با طول ثابتاگر هر دستورالعمل با تعداد بیتهای یکسان (ترجیحا یک عدد زوج مانند 16 یا 32)بیشتر اجزای پردازشگر ساده تر خواهد شد.اما در هر دو صورت مقداری از فضا هدر می رود یا همه روشهای آدرس دهی را نمی تواند پشتیبانی کند!

اسلاید 79: 3/13/2018cpeg323-04FTopic0.ppt79بار گذاری اعداد صحیح کوچکهمه ثباتها در MIPS 32 بیتی هستند. چه طور ما نیم کلمه یا یک بایت را در یک ثبات بارگذاری می کنیم؟بیتها را در حداقل 8یا16بیت ثباتی بارگذاری می کنیم.بار گذاری بدون علامت: همه بیت های بالا را صفر کنیم. بار گذاری علامت دار: همه بیت های بالا را با توجه به علامت صفر یا یک می کنیم(نیم کلمه یا بایت MSB)

اسلاید 80: 3/13/2018cpeg323-04FTopic0.ppt80The RISC Approachدر مجموعه دستورالعمل های کاهش یافته در دستگاه کامپیو تر همه دستورالعمل ها در اندازه های یکسانی هستند (32 بیت در MIPS) روشهای آدرس دهی کمی پشتیبانی می شوند ( فقط آنهایی که بیشتر کاربرد دارند)فقط تعداد کمی از قالب های دستورالعمل(کد برداری آسانتر انجام می شود)دستور العمل های محاسباتی که فقط روی ثبات کار می کنندداده های حافظه باید در ثبات ها قبل از پردازش شدن بارگذاری شوند که این یک معماری Load_Store نامیده می شود

اسلاید 81: 3/13/2018cpeg323-04FTopic0.ppt81معیارهایRISC[COL WELL 85] عمل تک چرخه ایماشین Load_Storeکنترل سخت افزاری رابطه دستور العمل های کم و روشهای آدرس دهی دستورالعمل های با قالب ثابت تلاش بیشتر در زمان کامپایل

اسلاید 82: 3/13/2018cpeg323-04FTopic0.ppt82MIPS R2000 CPU and FPUMemoryCPURegistersArithmeticunitMultiplydivideLoHi $0$31...Coprocessor 1 (FPU)RegistersArithmeticunit $0$31...Coprocessor 0 (traps and memory) registersBadVAddrStatusCauseEPC

اسلاید 83: 3/13/2018cpeg323-04FTopic0.ppt83ثبات ها32 تا ثبات با0=R0ثبات های ذخیره شده:R1,R26,R27.کاربرد مخصوص:اشاره گر به ناحیه سراسری:R28اشاره گر پشته:R29اشاره گر قاب:R30آدرس بازگشت:R31

اسلاید 84: 3/13/2018cpeg323-04FTopic0.ppt84قراردادهای ثبات استاندارد32 تا ثبات صحیح در MIPSعام منظوره هستند_هر کدام می توانند به عنوان یک عملوند یا نتیجه یک محاسبه عملیاتی استفاده شونداما ساخت تکه های متفاوت از نرم افزارکه باهم کار می کنند آسانتر است اگر قراردادهای معینی که دنبال می شود درباره آن ثباتهایی باشد که برای آن اهداف استفاده می شود این قراردادها معمولا به وسیله فروشنده پیشنهاد می شوند و به وسیله کامپایلرها پشتیبانی می شوند

اسلاید 85: 3/13/2018cpeg323-04FTopic0.ppt85قراردادهای ثباتی در MIPS$zero0Constant 0-1(Reserved for assembler)$v0-$v12-3Return values/expression eval$a0-$a34-7Args to functions$t0-$t98-15, 24-25Temporaries (NOT SAVED)$s0-$s716-23Saved values-26-27(Reserved for OS kernel)$gp28Global pointer$sp29Stack pointer$fp30Frame pointer$ra31Return addressNames Regs Purpose

اسلاید 86: 3/13/2018cpeg323-04FTopic0.ppt86MIPS registers and usage convention

اسلاید 87: 3/13/2018cpeg323-04FTopic0.ppt87عملیات MIPSبارگذاری/ذخیرهعملیات ALUانشعاب ها/پرش ها

اسلاید 88: 3/13/2018cpeg323-04FTopic0.ppt88قالب های دستورالعمل MIPSoprsrtrdshamtfunct6 bits5 bits5 bits5 bits5 bits6 bitsoprsrtaddress6 bits5 bits5 bits16 bitsopaddress6 bits26 bitsR-FormatI-FormatJ-Format

اسلاید 89: 3/13/2018cpeg323-04FTopic0.ppt89فیلدها در دستورالعملهای MIPSop:مشخصات عمل: بیان اینکه کدام قالب استفاده شودrs:اولین ثبات منبعrt:دومین ثبات منبعrd:ثبات مقصدshamt:مقدار شیفتfunct:جزئیات اضافی opcodeaddress:ثابت فوری وتغییرمکان یافته و یا انشعاب

اسلاید 90: 3/13/2018cpeg323-04FTopic0.ppt90ماشین نمایش دستورالعملهای MIPSفیلدهای MIPSنام گذاری می شوند که بحث در مورد آنها آسانتر شود:اینجا منظور هر نامی از فیلدهای دستورالعمل های MIPS است:OP:عملگر هر دستورالعملRS:اولین عملوند ثبات منبعRT:دومین عملوند ثبات منبعRD:عملوند ثبات مقصد.آن نتایج عملیات را فراهم می کند.SHAMT:مقدار شیفت FUNCT:تابع:این فیلد عملیات مختلف در فیلد OP را انتخاب می کند.oprsrtfunctrdshamt6 bits 5 bits 5 bits 5 bits 5 bits 6 bits

اسلاید 91: 3/13/2018cpeg323-04FTopic0.ppt91عملوندهایALUADDR1,R2,R3effect: R1= R2 + R3مثال(شکل اسمبلر در )MIPS ADD $t1, $s1, $s2نمایش دهدهی: 0 17 18 8 0 32

اسلاید 92: 3/13/2018cpeg323-04FTopic0.ppt92نمایش ماشینینمایش دهدهینمایش باینری01718 328 06 bits 5 bits 5 bits 5 bits 5 bits 6 bits000000100011001010000001000000006 bits 5 bits 5 bits 5 bits 5 bits 6 bits

اسلاید 93: 3/13/2018cpeg323-04FTopic0.ppt93ضرب و تقسیم صحیح در MIPSضرب 2 تا عدد 32 بیتی تاحدود 64 بیت می تواند باشدMIPS2 تا مخصوص دارد :HIوLOنتایج ضرب :بیت های پایین تربه Loمی روند و بیت های بالاتر به Hi می روندنتایج تقسیم:خارج قسمت به lo می رود و باقی مانده به hi می رود استفاده کردن از عملیات اضافی(از قبیل mflo)برای جابجایی به بالا و پایین ثبات های منظوره

اسلاید 94: 3/13/2018cpeg323-04FTopic0.ppt94دستورالعملهای انتقال داده هاI-type (base + 16 bit offsets) همچنینrsثبات پایه است($s3در این نمونه _همچنین ثبات شاخص نامیده می شود) و rt (در این نمونه $t0 نتایج را ذخیره می کند (به عنوان ثبات مقصد)oprsrt address6 bits 5 bits 5 bits 16 bits مثال:lwt0, 8 ($s3) --- # Temporary reg t0 gets A[8]یادداشت:

اسلاید 95: 3/13/2018cpeg323-04FTopic0.ppt95An ExampleMIPSانجام می دهد A=(B+C)*(D+E)Assembly1w $8, 48($0)1w $9, 76($0)add $8, $8, $91w $9, 20($0)1w $10, 32($0)add $9, $9, $10add $8, $8, $9sw $8, 100($0)op rs rt rd sh. Ft.35 0 8 48 35 0 9 760 8 9 8 0 3235 0 9 2035 0 10 320 9 10 9 0 320 8 9 8 0 3243 0 8 100

اسلاید 96: 3/13/2018cpeg323-04FTopic0.ppt96انشعاب هادر بیشترپردازشگرها“شمارنده برنامه“(PC)آدرس دستورالعمل بعدی را نگه می دارد:واکشی ازM[(PC)]به طور عادی بعداز اینکه یک دستورالعمل تمام شدCPU n تا به PC اضافه می کند n تعداد بایت ها در دستورالعمل استانشعاب هابه یک برنامه اجازه می دهند واکشی کنند از مکانهای متفاوتانشعابها استفاده میشوند برای به کاربردن همه روند کنترلی فرمانهای زبان های سطح بالا ازقبیل if-then-else, for, switch, etc .

اسلاید 97: 3/13/2018cpeg323-04FTopic0.ppt97طبقه بندی انشعاب هادو نوع اساسی از پرشها:غیر شرطی همیشه به آدرس مشخص شده جهش می کندشرطی:اگر شرط درست باشد به آدرس مشخص شده می رود. به عبارت دیگربا دستورالعمل بعدی ادامه می دهد.آدرس های مقصد با روش مشابهی می تواند مشخص شود به عنوان عملوندهای دیگر (جمع آوری ثباتها وثابت های فوری و و مکان های حافظه)بستگی دارد که چه چیزی در ISAپشتیبانی شود

اسلاید 98: 3/13/2018cpeg323-04FTopic0.ppt98مثال همگردانی انشعابکامپایل زیر را دنبال کنیدif ( i == j) f = g + h;else f = g – h;f = g + h i == j?f = g - h i = j i  j Exit: Else:

اسلاید 99: 3/13/2018cpeg323-04FTopic0.ppt99If Then Else درMIPS Assume f,g,h,i,j in R8-R12 (respectively)bne $11, $12, Else# Branch if i<>j add $8, $9, $10# f = g + h; j Exit# Jump to ExitElse: sub $8, $9, $10# f = g – h;Exit: …# Code after if

اسلاید 100: 3/13/2018cpeg323-04FTopic0.ppt100بررسی انشعاب هابیشتر انشعابهای شرطی برای آدرس های ثابت وکوتاه روی می دهنداما اغلب این طور استفاده نمی شونداستفاده ای برای افزایش یا کاهش پیشوندی ندارندپس مطابق با فلسفه سادگی MIPS,RISCتعداد کمی انشعاب اساسی دارد

اسلاید 101: 3/13/2018cpeg323-04FTopic0.ppt101انواع انشعاب درMIPSانشعاب شرطی:beq/bne reg1, reg2, addrپرش ثباتی:jr regواکشی آدرس از ثبات مشخص شده و پرش به آنپرش غیر شرطی:j addrهمیشه به آدرس پرش می کند(استفاده “pseudododirect”آدرس دهی)- If reg1 =/ reg2, jump to PC + addr (PC-relative)

اسلاید 102: 3/13/2018cpeg323-04FTopic0.ppt102دستورالعمل های انشعابانشعاب های شرطیاین ها دستورالعملهای R_type هستندانشعاب های غیر شرطی - beqR1, R2, L1# if R1 = R2 go to L1- bneR1, R2, L1 # if R1 == R2 go to L1JR R8 # Jump based on register 8Test if < 0 sltR1, R16, R17 # R1 gets 1 if R16 < R17 (slt: set-less-than) bneR1, 0, less # branch to less if R1 == 0

اسلاید 103: 3/13/2018cpeg323-04FTopic0.ppt103مولد اهداف انشعاب در MIPSMemoryWordoprsrtAddressPC+MemoryWordopAddressPC:4 PC-relative addressing5 Pseudodirect addressing

اسلاید 104: 3/13/2018cpeg323-04FTopic0.ppt104مثال تلفیق سوئیچکامپایل را دنبال کنید:switch (k) { case 0: f = f + 1; break; case 1: f = f – 2; break; case 3: f = -f; break;}Note the gap (case 2);

اسلاید 105: 3/13/2018cpeg323-04FTopic0.ppt105بدنه سوئیچ در MIPSL0:addi$8, $8, 1 addimmed. 1 to r8 (f)j Exit jump to Exit (break)L1:subi$8, $8, 2 subtract imm. 2 from r8j Exit Another breakL3:sub $8, $0, $8 f = 0 - fj Exit Another breakساختن جدول مراجعه درحافظه address of L0address of L1address of Exitaddress of L31000100410081012

اسلاید 106: 3/13/2018cpeg323-04FTopic0.ppt106سوئیچ کامپایل شده برای MIPS(Assume k in r13)slti $14, $13, 0# set r14 if r13 1t 0bne $14, $0, Exit# Go to Exit if k < 0slti $14, $13, 4# set r14 if k < 4beq $14, $0, Exit# Go to Exit if k  4add $14, $13, $13# r14 = 2*kadd $14, $14, $14# r14 = 4*klw $14, 1000 ($14)# Base of table at 1000jr $14# Jump to the address

اسلاید 107: 3/13/2018cpeg323-04FTopic0.ppt107کامپایل کردن دستورات کنترلی دیگرحلقه ها:For,while:تست کردن قبل از بدنه حلقه. پرش کن به بعد از بدنه حلقه اگر شرط نادرست است .Do:تست کردن شرط در انتهای بدنه حلقه.پرش کن به ابتدا اگر درست استسوئیچ:(”case“ فراخوانده می شوددر بعضی زبانهای دیگر)ساختن یک جدول آدرساستفادهjr(or equiv. In non-MIPS processor)مطمئن باشید از چک کردن برای پیش فرض یا caseهای بدون استفاده

اسلاید 108: 3/13/2018cpeg323-04FTopic0.ppt108پشتیبانی دستورالعملهای فراخونی پردازهJump and linkآدرس پردازشگر jalیادداشت: آدرس بازگشت در r31ذخیره می شود ذخیره کردن آدرس بازگشت روی پشتهR29 به عنوان اشاره گر پشته استفاده می شودپارامتر زود گذر:R4 ~ R7 استفاده می شوند برای اینهاReturnjrR31

اسلاید 109: 3/13/2018cpeg323-04FTopic0.ppt109روش آدرس دهی MIPSهای دیگرعملوندهای ثابت یا فوریLW R24, AddrConstant4(0) Addi R3, 5 (I type) ثابتها16بیتی هستند Lui R8 255 Load_upper_immediateمی رود به مکان 10000 J 10000 j_type

اسلاید 110: 3/13/2018cpeg323-04FTopic0.ppt110MIPS عملوندهایMIPS اسمبلی زبان

اسلاید 111: 3/13/2018cpeg323-04FTopic0.ppt111MIPS ماشین زبان

اسلاید 112: 3/13/2018cpeg323-04FTopic0.ppt112فراخوانی تابع درMIPSفراخوانی تابع یک ساختار ضروری زبان های برنامه نویسی است. برنامه یک تابع را برای انجام چند وظیفه فرامی خواند. موقعی که تابع انجام میشودCPU دقیقا از بعد از جایی که برنامه فراخوانی شده ادامه می دهد

اسلاید 113: 3/13/2018cpeg323-04FTopic0.ppt113فراخوانی تابع در MIPS استفاده از دستورالعمل Jal(“jump and link”) Jal addr فقط J adrr است به جز موارد زیر”آدرس بازگشت“ (pc)+4placed in R31این آدرس دستورالعمل بعدی بعد ازjalاستاز jr$31 برای بازگشت استفاده می کنیم

اسلاید 114: 3/13/2018cpeg323-04FTopic0.ppt114مثال فراخوانیCallerCalleeadd $4, $0, 1000 F: 1w $6, 0($4)add $5, $0, 1200 1w $7, 0($5) add $1, $0, 1 sw $6, 0($5)sw $1, 0($4) sw $7, 0($4) add $1, $1, $ jr $31 sw $1, 0 ($5) jal Fsub $1, $1, $2What does F do?

اسلاید 115: 3/13/2018cpeg323-04FTopic0.ppt115مشکلات فراخوانی تابع هااین مثال درست کار می کند اما چه طور؟تابع F تابع دیگر را فراخوانی می کندفراخوانی کننده یک نکته مهم در ثباتهای R6وR7دارد؟تابع فراخوانی شده خودش را فرامی خواند؟هر نسخه از یک تابع باید کپی متغیر هایش را داشته باشداین ها در یک پشته به عنوان یک ستون از قاب ها مرتب شده اند.

اسلاید 116: 3/13/2018cpeg323-04FTopic0.ppt116مثال پشتهفرض کنید تابع B ,Aرا فراخوانی کند و C, B را فراخوانی کند.تابع Cخودش را فراخوانی می کند.A’s varsstart AA’s varsA calls BA’s varsB calls CA’s varsC calls CB’s varsB’s varsC’s varsB’s varsC’s varsC’s vars

اسلاید 117: 3/13/2018cpeg323-04FTopic0.ppt117فراخوانی پردازهمکان پارامترهاکنترل انتقالذخیره سازی Acquireانجام دادن کارمکان بازگشت نتایجبازگشت کنترل بر گشتی به فراخوان

اسلاید 118: 3/13/2018cpeg323-04FTopic0.ppt118آرایش قاب پشتهLocal variablesSaved registers$fpآدرسهای حافظه بالاتررشد پشتهArgument 5Argument 6. . .$spآدرسهای حافظه پایینتر

اسلاید 119: 3/13/2018cpeg323-04FTopic0.ppt119جزئیات پشته$fp$spSaved argumentRegister (if any)Saved return addressSaved savedRegisters (if any)Local arrays andStructures (if any)High address$fp$sp$fp$spLow addressA: before B: duringC: after(From Patterson and Hennessy, p. 139; COPYRIGHT 1988 MORGAN KAUFMANN PUBLISHERS, INC. ALL RRIGHTS RESERVED)

اسلاید 120: 3/13/2018cpeg323-04FTopic0.ppt120قراردادهای ثبات استاندارد32 تا ثبات صحیح در MIPSعام منظوره هستند_هر کدام می توانند به عنوان یک عملوند یا نتیجه یک محاسبه عملیاتی استفاده شونداما ساخت تکه های متفاوت از نرم افزارکه باهم کار می کنند آسانتر است اگر قراردادهای معینی که دنبال می شود درباره آن ثباتهایی باشد که برای آن اهداف استفاده می شود این قراردادها معمولا به وسیله فروشنده پیشنهاد می شوند و به وسیله کامپایلرها پشتیبانی می شوند

اسلاید 121: 3/13/2018cpeg323-04FTopic0.ppt121پارامترهای میانیذخیره کردن فراخوانی کننده:پردازه فراخوان(caller)مسئول است برای ذخیره کردن و دوباره ذخیره کردن هر کدام از ثباتهایی که باید در طی فراخوانی نگهداری شوند.پردازه فراخوانی شده (callee)می تواند هر ثباتی را بدون محدودیت تغییر دهد.ذخیره کردن فراخوانی شده: پردازه ای که فراخوانی شده مسئول است برای ذخیره کردن و دوباره ذخیره کردن هر کدام از ثباتهایی که ممکن است استفاده شوند.فرخوان ثباتها را بدون هیچ نگرانی درباره دوباره ذخیره کردن آنها بعد از یک فراخوانی استفاده می کند.

اسلاید 122: 3/13/2018cpeg323-04FTopic0.ppt122ثباتهای ذخیره سازیاگر شما یک تابع را فراخوانی کنید هر آنچه شما در $S7تا$S0دارید در آنجا تضمین شده زمانی که تابع برمی گردد به شمااما ثباتهای $t9 تا$t0 fair gameهستند به وسیله تابع دوباره استفاده می شود چه گزینش هایی هستند؟هیچ ذخیره کردن؟همه چیز ذخیره کردن؟

اسلاید 123: 3/13/2018cpeg323-04FTopic0.ppt123اعلام یک تابع در MIPSقرار بدهید آرگومانهای تابع را در $a0_$a3اگر یک چیز مهم در $t0_9باشد اکنون آنها را انتقال می دهد!jal به تابعذخیره کردن $s0_$s7و$raاگرلازم باشد شما کاری انجام دهید و مقادیر بازگشت را( اگر داشته باشد) در $v0_$v1دوباره ذخیره میکنیم $s0_$s7و$raرااگرلزومی داشته باشد ادامه دهید تا جایی که تمام شودسوال: چه کسی آن را به عنوان یک طرح می سازد؟چه اتفاقی می افتد اگر ثباتهای ما تمام شود؟واقعا چه چیزی عمل ذخیره کردن را انجام می دهد؟

اسلاید 124: 3/13/2018cpeg323-04FTopic0.ppt124فصل سوم نمایش اعداد و محاسباتی کامپیوتر

اسلاید 125: 3/13/2018cpeg323-04FTopic0.ppt125چکیده مقدمه نمایش عددی و مکمل دوطراحی واحد محاسبه ,منطق ضرب و تقسیم صحیح اعداد اعشاری

اسلاید 126: 3/13/2018cpeg323-04FTopic0.ppt126مروربازبینیمراحل اجرای یک دستورالعملفیلدهای یک دستورالعملکارایی؟مبانی عملوندها؟Decoded opcode32result32a32bALU آنچه پیش روی ماست:نمایش عددیالگوریتم های محاسباتیپیاده سازی سخت افزاریدستورالعملهاALU

اسلاید 127: 3/13/2018cpeg323-04FTopic0.ppt127نمایش عددیآنچه پیچیده به نظر می رسد:اعداد منفی را چگونه نمایش دهیمدامنه (Range) اعداد چیست؟اگر یک عدد خارج از محدوده بود؟در مورد اعداد منطقی و غیر منطقی چطور؟سخت افزار چگونه این اعداد را جمع، تفریق،ضرب و تقسیم میکند؟

اسلاید 128: 3/13/2018cpeg323-04FTopic0.ppt128بیتها فقط بیت هستند: هیچ معنای ذاتی ندارند.قراردادها رابطه بین بیتها و اعداد را تعیین می کنند.بیت ها و اعدادسخت افزار چگونه تشخیص می دهد که چه قراردادی در حال استفاده است؟ Add $s1, $s2, $s3 Addu $s1, $s2, $s3علامت $s1،$s2 و $s3 چیست؟

اسلاید 129: 3/13/2018cpeg323-04FTopic0.ppt129نمایش عددی صحیح بدون علامت صحیح با علامت BCDدهدهی کد شده به باینریممیز ثابتممیز شناورانواع دیگر داده:کاراکترها(اسکی و یونیکد) پیکسل ها (گرافیک ها)گروهی از بیتها

اسلاید 130: 3/13/2018cpeg323-04FTopic0.ppt130صحیح بدون علامتچگونه نمایش می دهیم؟انگشتهای خود را بشمارید.مبنای اولیه سیستم اعداددهدهی: 10 نماد مختلف: 0 1 2 3 4 5 6 7 8 9 عدد= چرا صحیح بدون علامت؟دستیابی به حافظه PC, SP, RA,In C, unsigned int

اسلاید 131: 3/13/2018cpeg323-04FTopic0.ppt131صحیح بدون علامت (مبنای اولیه سیستم اعداد)چه تعداد di متفاوت؟بزرگترین عدد کدامست؟کوچکترین عدد کدامست؟مبناهای خاص:مبنای 2 (Binary)مبنای 8 (octal)مبنای 16(hexademical)آنها چه تعداد نماد مختلف دارند؟ در حالت کلی، در یک سیستم عددی مبنای K عدد=

اسلاید 132: 3/13/2018cpeg323-04FTopic0.ppt132Binary: 000110010100100010110110 1 9 4 8 B 6 0 6 2 4 4 2 6 6چگونه می توان مبنای دو را به مبنای 8 و 16 تبدیل کرد؟مثال: 010100=(0 *22+1 *21+0*20)*23+(1*22+0*21+0*20) =2*81+ 4 *80= 248Hexadecimal:Octal:صحیح بدون علامت (مبنای اولیه سیستم اعداد)

اسلاید 133: 3/13/2018cpeg323-04FTopic0.ppt133صحیح بدون علامت (BCD: binary coded decimal) نمایش : 12710چه تعداد بیت برای BCD مورد نیاز است؟ برای دودویی چطور؟فضای ذخیره سازی بکارگرفته شده؟ضمیمه:چگونه می توان carry را مشخص نمود؟“If ai+ bi >10” vs. “If ai+ bi >2” کدامیک برای کامپیوتر کاراتر است؟

اسلاید 134: 3/13/2018cpeg323-04FTopic0.ppt134صحیح با علامت (علامت مقدار)-12: -(sign) 12(absolute value)یک بیت علامت مجزایک مقداربرای سخت افزاربیت علامت را کجا قرار دهیم؟چپ یا راست؟علامت حاصلجمع را چگونه تعیین می کنیم؟ (مثلا یک مرحله اضافی)علامت صفر چیست؟ مثبت یا منفی؟

اسلاید 135: 3/13/2018cpeg323-04FTopic0.ppt135مکمل 2اعداد و نمایش آنها یکی نیست.نمایش عدد، یک قرارداد تعریف شده برای بیان آن است.یک عدد می تواند دارای نمایشهای متفاوتی باشد مثلا BCD مبنای 16، مکمل دو و غیره. مکمل دو: یک نوع از نمایش که بصورت زیر تعریف شده است:عدد نمایشbn-1 bn-2 ……b1b0

اسلاید 136: 3/13/2018cpeg323-04FTopic0.ppt136مکمل دوbn-1 bn-2 ……b1b0

اسلاید 137: 3/13/2018cpeg323-04FTopic0.ppt1370000011100111011111111101101110010101001100001100101010000100001+0+1+2+3+4+5+6+7-8-7-6-5-4-3-2-1(برای 4 بیت )مرجع: Katz: Contemporary Logic Design, p243چرا 1111 و 0000 همسایه اند؟مفهوم بیت سوم چیست؟علامت صفر چیست؟کوچکترین عدد کدامست؟بزرگترین عدد کدامست؟صحیح با علامت(مکمل دو)

اسلاید 138: 3/13/2018cpeg323-04FTopic0.ppt138مکمل دونمایش یک عدد منفی -xاز نمایش عدد X تا نمایش -xعدد نمایشxbn-1 bn-2 ……b1b0-xbn-1bn-2 ……b1b0هر bi را معکوس کرده، سپس با 1 جمع کنید.میانبر: از با ارزشترین بیت تا کم ارزشترین 1هر بیت را معکوس کنید و کم ارزشترین یک را 1 نگاه دارید.Example: - (0100) = 1011 + 1 = 1100 Example: 10010 = 01100100  10011100 = -10010اثبات درستی

اسلاید 139: 3/13/2018cpeg323-04FTopic0.ppt139گنجاندن اعداد کوچکتر در بیتهای بیشترچرا لازم است؟مقایسه یک integer با یک long integer : تغییر نوعبارگذاری یک بایت در یک کلمهبرای اضافه کردن یک بخش فوری به یک عدد 32 بیتی واحد محاسبه و منطق MIPS فقط با مقادیر موجود در رجیسترهای 32 بیتی کار می کند.چگونه می توان با اندازه های کوچکتر کار کرد؟در مورد اندازه های بزرگتر چطور؟

اسلاید 140: 3/13/2018cpeg323-04FTopic0.ppt140گنجاندن اعداد کوچکتر در بیتهای بیشترتکرار بیت علامت در بیتهای دیگر(گسترش علامت)0010 -> 0000 0010 1010 -> 1111 1010 (1x(2^(-7) + 111 1010 = ? ) نکته! اثبات ؟ Example(2-bit): 10= 1 *(-21)+0 *20=-210نمایش 2- مبنای 10 در 4 بیت کلمه: آیا می توانید آنرا انجام دهید؟ چه چیزی کشف می شود؟

اسلاید 141: 3/13/2018cpeg323-04FTopic0.ppt141جمع : درست مانند دوران شیرین دبستان 0110 + 0001تفریق : a-b=a+(-b)اعمال مکمل دو ساده است 0111-0110= 0111 +1010 10001جمع و تفریق بنابراین 0111-0110= 0001آیا شما مخصوصا بیتهای علامت را دستکاری نموده اید؟11

اسلاید 142: 3/13/2018cpeg323-04FTopic0.ppt142صبر کنید! یک بیت اضافی گم شده است! 0111-0110= 0111 +1010 10001زیراجمع و تفریقاز دیدگاه 1 بیت : 1-1=1+1=0 بنابراین تا زمانیکه شماcarry بوجود آمده بوسیله 1+1 (1 سبز) را در نظر نگرفته اید، درست انجام داده اید.11is 0*23+ 1*(-23) 1*23 0اما رفتار می کند در جمع مانند 0*23 + 1*23 1*23 10چرا 1 می تواند حذف شود؟

اسلاید 143: 3/13/2018cpeg323-04FTopic0.ppt143سئوالات:آیا شما یک جمع کننده و یک تفریق کننده دارید؟در مورد اعداد بدون علامت چطور؟(یک جمع کننده دیگر؟)مزایای استفاده از مکمل 2تفریق می تواند از منطق مشترکی با جمع استفاده کندبیت علامت می تواند مانند یک بیت معمولی عدد رفتار کنداینها نکات زیرکانه ای هستند .جمع و تفریق

اسلاید 144: 3/13/2018cpeg323-04FTopic0.ppt144جمع: 0111 1111 + 0110 +1000 سرریزیعلامت ورودی چیست؟علامت خروجی چیست؟آیا امکان وقوع سرریزی در جمع یک عدد مثبت و یک عدد منفی وجود دارد؟امکان وقوع سرریز با صفر وجود دارد؟اعمال A+B و A-B را ملاحظه کنید.

اسلاید 145: 3/13/2018cpeg323-04FTopic0.ppt145جمع 0111 1111 + 0110 + 1000 110110111سرریزی علامت ورودی چیست؟علامت خروجی چیست؟

اسلاید 146: 3/13/2018cpeg323-04FTopic0.ppt146در مورد جمع و تفریق اعداد بدون علامت چطور؟کشف سرریزیسرریزی زمانی اتفاق می افتد که:جمع دو عدد منفی یک عدد مثبت بدهد.جمع دو عدد مثبت یک عدد منفی بدهد.یا یک عدد منفی را از مثبت تفریق کنیم و نتیجه منفی بگیریمیا یک عدد مثبت را از منفی تفریق کنیم و نتیجه مثبت بگیریم

اسلاید 147: 3/13/2018cpeg323-04FTopic0.ppt147 نادیده بگیرد؟هیچ وقت نمی خواهد سرریزی آشکار شودAddu, addiu, subu (MIPS:عدم تولید سریز)تولید یک تله که بر اساس آن برنامه نویس بتواند با آن کار کند.یک استثنا (وقفه)رخ دهدکنترل به آدرس از پیش تعریف شده استثنا پرش کندذخیره آدرس مکان وقفه برای امکان بازگشتجمع ، تفریقکار CPU در برابر سرریزی چیست؟

اسلاید 148: 3/13/2018cpeg323-04FTopic0.ppt148دستورالعمل ها سنجشاعداد بدون علامتsltu: set on less than unsignedsltiu: set on less than immediate unsignedاعداد با علامتslt: set on less thanslti: set on less than immediate مثال: مقادیر $s0 و $s1 چیست؟$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

اسلاید 149: 3/13/2018cpeg323-04FTopic0.ppt149مثالمقادیر $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 اگر هر دو بدون علامت باشند

اسلاید 150: 3/13/2018cpeg323-04FTopic0.ppt150دستورالعمل هابارگذاری/ذخیره سازیlb: load bytelbu: load byte unsignedExample:lb $s1, 100($s2) مقادیر$s0 چیستWhen memory[$s2+100] = 0000 0000?When memory[$s2+100] = 0000 0001?When memory[$s2+100] = 1111 1111?Example:lbu $s1, 100($s2)مقادیر$s1 چیستwhen memory[$s2+100] = 1111 1111?

اسلاید 151: 3/13/2018cpeg323-04FTopic0.ppt151طراحی پردازش طراحی اجزاآنها چگونه در کنار هم قرار می گیرند تجزیه بالا به پایین بخشهای مختلط ترکیب پایین به بالای بخشهای ساده

اسلاید 152: 3/13/2018cpeg323-04FTopic0.ppt152مسئله: طراحی واحد محاسبه و منطقعملیاتadd, addu, sub, subu, addi, addiuجمع کننده تفریق کننده مکمل 2 با آشکار سازی سرریزand, or, andi, oriاعمال بیتیمجموع اعمال = 10

اسلاید 153: 3/13/2018cpeg323-04FTopic0.ppt153طراحی: روش تقسیم و غلبه شکستن مسئله به بخشهای ساده ترکار با اجزاقرار دادن قطعات با یکدیگربازبینی راهکارها در نهایتمثال: جدا کردن دستورات فوری از بقیه دستوراتپردازش فوریها قبل از ALU اکنون ورودیهای ALU یک شکل هستند.6 عمل غیر فوری باقی مانده استنیازمند 3 بیت برای تعیین مد ALU است

اسلاید 154: 3/13/2018cpeg323-04FTopic0.ppt154محیط ALU (ALU Interface) ما یک ALU 32 بیتی طراحی خواهیم کرد با محیط زیر:3232ALUopResultBALU32A3ZC32V ALUOp | Function 000 | AND 001 | OR 010 | ADD 110 | SUBTRACT 111 | SET-ON-LESS-THAN Z =1, if Result=0V= 1, if OverflowC32 = 1, if Carry-Out

اسلاید 155: 3/13/2018cpeg323-04FTopic0.ppt155طراحی: کاهش مسئله به یک مسئله ساده تر برای این مسئله، ما ALU 32 بیتی را به بخش ساده تر یک بیتی کاهش می دهیم.مسائل ترکیبی بزرگ را به یک مسئله ترکیبی کوچکتر تغییر می دهیم بخشها را برای حل مسئله بزرگ در کنار هم قرار می دهیم.

اسلاید 156: 3/13/2018cpeg323-04FTopic0.ppt156طراحی با بلاک دیاگرام سطح پایین ترReplicate 32 times for a 32-bit ALU بلاک ALU یک بیتیبرای یک ALU 32 بیتی 32 بار تکرار می کنیم

اسلاید 157: 3/13/2018cpeg323-04FTopic0.ppt157بلاک ALU یک بیتی تقسیم به بلاکهای جدا و مستقلمنطقمحاسبه تکمیل هر بلاک در این مرحله برای تخلیص بیشترتکمیل بلاکهای منطقیتکمیل انتخاب عملتجزیه بلاکهای محاسباتی به بخشهای ساده تر

اسلاید 158: 3/13/2018cpeg323-04FTopic0.ppt158تمام جمع کننده Full Adder تمام جمع کننده، یک بلاک ساخته بنیادی در ALU است. یک تمام جمع کننده، جمع یک بیت را انجام می دهد. ai+ bi + ci = 2ci+1 + si FAaibicici+1si0 1 0 10 1 1 11 1 0 0aibisicici+11 1 1 0

اسلاید 159: 3/13/2018cpeg323-04FTopic0.ppt159جدول درستی تمام جمع کننده Si ،“1” است اگر یک، تک عدد از ورودیها یک باشد.Ci+1 ،“1” است اگر 2عدد (یا بیشتراز) ورودیها 1 باشند.0 0 0 0 00 0 1 0 10 1 0 0 10 1 1 1 01 0 0 0 11 0 1 1 01 1 0 1 01 1 1 1 1aibicici+1si

اسلاید 160: 3/13/2018cpeg323-04FTopic0.ppt160طراحی تمام جمع کننده یک پیاده سازی ممکن از یک تمام جمع کننده که 9 gate بکار برده است7

اسلاید 161: 3/13/2018cpeg323-04FTopic0.ppt161ALU یک بیتی701231-bitALUaibicici+1rilessiALUop2:0 ALUOp | Function 000 | AND 001 | OR 010 | ADD 110 | SUBTRACT 111 | SET-ON-LESS-THAN

اسلاید 162: 3/13/2018cpeg323-04FTopic0.ppt162ALU یک بیتی برای MSBALU برای MSB باید سرریزی را آشکار و علامت نتیجه را نیز نشان دهد.70123

اسلاید 163: 3/13/2018cpeg323-04FTopic0.ppt163واحدهای محاسبه منطق(ALU)بزرگترسه تا واحد محاسبه ومنطق یک بیتی و یک واحد محاسبه ومنطق یک بیتی MSBو 4 تا گیت NOR میتوانند باهم الحاق شوند و تشکیل یک واحد محاسبه و منطق (ALU) 4 بیتی را دهند.31 عدد واحد محاسبه و منطق یک بیتی و یک واحد محاسبه ومنطق یک بیتی MSBو 32 تا گیت NORمی توانند باهم الحاق شوند و تشکیل یک واحد محاسبه و منطق (ALU) 32 بیتی را می دهند1-bitALUa0boc1r0ALUop2:0c0=ALUop21-bitALUa1b1c2r101-bitALUa2b2c3r201-bitMSBALUa3b3Vr30c4setZ

اسلاید 164: 3/13/2018cpeg323-04FTopic0.ppt164محاسبه تعداد گیتهافرض کنیدمالتی پالکسر 4 ورودی=5گیتگیت XOR=3گیتگیت AND/OR=1گیتوارونه سا ز=5/. گیتچند تا گیت نیاز است به وسیلهیک واحد محاسبه منطق 1 بیتی؟یک واحد محاسبه منطق4 بیتی؟یک واحد محاسبه منطق 32 بیتی؟یک واحد محاسبه منطق n بیتی؟70123

اسلاید 165: 3/13/2018cpeg323-04FTopic0.ppt165محاسبه تعداد گیتهافرض کنیدمالتی پالکسر 4 ورودی=5گیتگیت XOR=3گیتگیت AND/OR=1گیتوارونه سا ز=5/. گیتچند تا گیت نیاز است به وسیلهیک واحد محاسبه منطق 1 بیتی؟16یک واحد محاسبه منطق4 بیتی؟16*4یک واحد محاسبه منطق 32 بیتی؟16*32یک واحد محاسبه منطق n بیتی؟16*n70123در یک واحد محاسبه و منطق n بیتی(n-1) عدد گیت ORبا 2 ورودی و یک وارونه ساز و یک گیتXOR

اسلاید 166: 3/13/2018cpeg323-04FTopic0.ppt166تاخیر گیت هافرض کنیدتاخیرهایمالتی پالکسر 4 ورودی=2tگیت XOR=2tگیت AND/OR=1tوارونه سا ز= 1tچقدر است تاخیر یک واحد محاسبه منطق 1 بیتی؟10tیک واحد محاسبه منطق4 بیتی؟یک واحد محاسبه منطق 32 بیتی؟یک واحد محاسبه منطق n بیتی؟70123برای محاسبه zتاخیر اضافه نیاز است

اسلاید 167: 3/13/2018cpeg323-04FTopic0.ppt167جمع کننده کری موج داردر طراحی قبلی کری“موج دار شده“از یک واحد محاسبه و منطق یک بیتی برای بعدی تولید می شوداین ها موجب می شوند که تا اندازه ای طراحی کند شودZدر لحظه 19tآماده است1-bitALUa0boc1c01-bitALUa1b1c21-bitALUa2b2c31-bitALUa3b3c4r0r1r2r37t10t12t14t16t9t11t13t

اسلاید 168: 3/13/2018cpeg323-04FTopic0.ppt168تاخیر گیتفرض کنیدتاخیرهایمالتی پالکسر 4 ورودی=2tگیت XOR=2tگیت AND/OR=1tوارونه سا ز= 1tچقدر است تاخیر یک واحد محاسبه منطق 1 بیتی؟10tیک واحد محاسبه منطق4 بیتی؟16tیک واحد محاسبه منطق 32 بیتی؟(2*32+8)t=72tیک واحد محاسبه منطق n بیتی؟(2n+8)t70123log2(n)سطح ORدوورودی و 1 وارونه سازبرای محاسبه Zنیاز داریم

اسلاید 169: 3/13/2018cpeg323-04FTopic0.ppt169Carry Lookahead Adder (CLA)در یک CLAکری ها به صورت همزمان از یک carry lookahead logic(CLL) محاسبه می شوند 1-bitALU*a0boc1c01-bitALU*a1b1c21-bitALU*a2b2c31-bitALU*a3b3r0r1r2r3Carry Lookahead Logicp0g0p1g1p2g2p3g3c4

اسلاید 170: 3/13/2018cpeg323-04FTopic0.ppt170معادله منطقی کریمعادله منطقی کری هست:C i +1 = a i bi + (a i + bi ) C i ما یک سیگنال مشابه تعریف می کنیم propagate a i + bi = p iو یک سیگنال تولید میشود generatea i bi =g i این امکان را ایجاد می کند که معادله منطقی کری دوباره به صورت زیر نوشته شودC i+1= g i +p i c i

اسلاید 171: 3/13/2018cpeg323-04FTopic0.ppt171Carry Lookahead Logicبرای یک carry lookahead adder 4بیتی کری ها به صورت زیر محاسبه می شوندc1 = g0 + p0c0c2 = g1 + p1c1= g1 + p1(g0 + p0c0) = g1 + p1g0 + p1p0c0c3 = g2 + p2c2= g2 + p2(g1 + p1g0 + p1p0c0) = g2 + p2g1 + p2p1g0 + p2p1p0c0c4 = g3 + p3c3= g3 + p3(g2 + p2g1 + p2p1g0 + p2p1p0c0) = g3 + p3g2 + p3p2g1 + p3p2p1g0 + p3p2p1p0c0چند تا گیت CLL 4بیتی نیاز داریم اگرکه گیت ها بتوانند گنجایش ورودی نا محدود داشته باشند؟اگر هرسطح منطقی تنها تاخیر 1tداشته باشدCLLدارای 2tتاخیر است در نتیجه این تمرین ممکن است واقع بینانه نباشد.

اسلاید 172: 3/13/2018cpeg323-04FTopic0.ppt172تعدیل کردن واحد محاسبه ومنطق یک بیتیچه طور ما می توانیم یک واحد محاسبه و منطق یک بیتی را تعدیل کنیم اگر که در CLAمورد استفاده باشد؟چند تا گیت تعدیل شده برای واحد محاسبه و منطق یک بیتی نیازاست؟چند تا گیت برای CLA 4بیتی نیاز است؟چقدر تاخیر داریم تا زمانی که Pi وGiآماده شوند؟70123

اسلاید 173: 3/13/2018cpeg323-04FTopic0.ppt173تعیین زمان CLA 4بیتیدر یک Carry lookahead adder کری ها به صورت همزمان محاسبه می شوند از Carry lookahead logic این طراحی به 15*4+14=74 گیت احتیاج دارد بدون محاسبه vیاz1-bitALU*a0boc1c01-bitALU*a1b1c21-bitALU*a2b2c31-bitALU*a3b3r0r1r2r3Carry Lookahead Logicp0g0p1g1p2g2p3g3c43t3t5t5t5t10t

اسلاید 174: 3/13/2018cpeg323-04FTopic0.ppt174واحد محاسبه و منطق 16بیتی .ورژن1یک ALU 16بیتی ساخته شده از الحاق کردن 4 تا CLA 4بیتی و اجازه انتقال کری ”موج دار “بین ”بلاک های“ 4بیتی 4-bitCLAa3:0b3:0c4c04-bitCLAc84-bitCLAc124-bitCLAc16r3:0r7:4r11:8r15:125t10t12t14t16t7t9t11ta7:4b7:4a11:8b11:8a15:12b15:12این طراحی نیاز دارد به 74*4=296 گیت بدون محاسبه V یاZ

اسلاید 175: 3/13/2018cpeg323-04FTopic0.ppt175واحد محاسبه و منطق 16بیتی . ورژن2پیشنهاد دیگر استفاده از دومین سطح Carry lookahead logicاست.این پیشنهاد سریعتر است اما به گیت های بیشتری نیاز دارد 16*15+5*14=310 تا گیت. 4-bitCLA*c4c04-bitCLA*c84-bitCLA*c124-bitCLA*r3:0r7:4r11:8r15:12Carry Lookahead Logicc165t5t7t7t14ta3:0b3:0a7:4b7:4a11:8b11:8a15:12b15:12

اسلاید 176: 3/13/2018cpeg323-04FTopic0.ppt176CLA 4بیتی CLA 4بیتی(BLOCK CLA) شبیه اولین CLA 4بیتی است به جز محاسبات CLLیک ”تولید بلاک“ و ”منتشر کردن بلاک“ به جای خروجی کریبدین ترتیب محاسبهc4 = g3 + p3g2 + p3p2g1 + p3p2p1g0 + p3p2p1p0c0جایگزین شده به وسیلهP3:0 = p3p2p1p0 G3:0 = g3 + p3g2 + p3p2g1 + p3p2p1g0Note: c4 = G3:0 + P3:0c0 این پیشنهاد محدود می کند حداکثر Fanرا به 4 و CLL هنوز نیاز به 14 گیت دارد

اسلاید 177: 3/13/2018cpeg323-04FTopic0.ppt177نتایجیکn ALUبیتی می تواند به وسیله الحاق کردن n تا ALU یک بیتی طراحی شود . CLLمی تواند برای افزایش سرعت محاسبات استفاده شود.انوع گوناگون گزینش های طراحی برای طراحی ALU وجود داردبهترین طراحی بستگی دارد به ناحیه تاخیر و توان نیازمندی ها که براساس تنوع تکنولوژی اصولی است

اسلاید 178: 3/13/2018cpeg323-04FTopic0.ppt178ضرب وتقسیم صحیح

اسلاید 179: 3/13/2018cpeg323-04FTopic0.ppt179ضرب صحیح بدون علامتمثال مداد و کاغذمضروب 1000 مضروب فیه * 1001 1000 0000 0000 1000 حاصلضرب 01001000

اسلاید 180: 3/13/2018cpeg323-04FTopic0.ppt180مشاهداتmبیت*nبیت=m+n بیت حاصلضرب انباشته های i مرحله A * 2 i if Bi == 1B0A0A1A2A3A0A1A2A3A0A1A2A3A0A1A2A3B1B2B3P0P1P2P3P4P5P6P70000

اسلاید 181: 3/13/2018cpeg323-04FTopic0.ppt181این چگونه کار می کند؟در هر مرحله 2 بار به چپ شیفت میدهد.استفاده از بیت بعدی Bبرای اینکه تعیین کند که آیا با مضروب شیفت داده شده جمع شود یا نه.جمع کردن 2nبیت حاصل ناتمام در هر مرحلهB0A0A1A2A3A0A1A2A3A0A1A2A3A0A1A2A3B1B2B3P0P1P2P3P4P5P6P70000000

اسلاید 182: 3/13/2018cpeg323-04FTopic0.ppt182محاسبات ساده ریاضیAرایک مرتبه به چپ شیفت دادن. 2i*A: این واضح است که ضرب مشتمل بر شیفت و جمع تکراری است.A*B تا بیت داشته باشدN Bاگر بیت داردN+1 Bسپس زمانی که

اسلاید 183: 3/13/2018cpeg323-04FTopic0.ppt183سخت افزار ضرب ورژن1حصلضربمضروب فیهمضروبALU64بیتیشیفت چپشیفت راستنوشتنکنترل32بیت64بیت64بیت

اسلاید 184: 3/13/2018cpeg323-04FTopic0.ppt184الگوریتم ضرب ورژن1 3. یک بیت مضروب فیه را به راست شیفت بدهپایانبله2. یک بیت مضروب را به چپ شیفت بده.نه: < 32 تکرار1.تستمضروب فیه0مضروب فیه0 = 0مضروب فیه0=11aمضروب را جمع کن با حاصلضرب& نتیجه را در ثبات حاصلضرب قرار بده32 مرتبه تکرارشروع0000مضروب مضروب فیه حاصلضرب0000 0011 0000001000000010 0001 0000010000000110 0000 00001000 00000110

اسلاید 185: 3/13/2018cpeg323-04FTopic0.ppt185نظارت بر روی ورژن1ضربنصف بیتها در مضروب همیشه صفر است =>64 بیت جمع کننده هدر رفته استمقدار دادن در سمت چپ مضروب به عنوان شیفت دادن=> کم ارزش ترین بیت حاصلضرب هرگز تغییر نمی کندبه جای اینکه مضروب را به چپشیفت دهیم. حاصل را به راست شیفت می دهیم؟

اسلاید 186: 3/13/2018cpeg323-04FTopic0.ppt186سخت افزار ضرب ورژن2 حاصلضربمضروب فیهمضروب32بیت ALUشیفت راستشیفت راستکنترل32بیت32بیت64بیتنوشتن

اسلاید 187: 3/13/2018cpeg323-04FTopic0.ppt187الگوریتم ضرب ورژن23. یک بیت مضروب فیه را به راست شیفت بدهپایانبله2. یک بیت ثبات حاصلضرب را به راست شیفت بده.نه: < 32 تکرار1.تستمضروب فیه0مضروب فیه0 = 0مضروب فیه0=11aمضروب را جمع کن با نیمه چپ حاصلضرب& نتیجه را درنیمه چپ ثبات حاصلضرب قرار بده32 مرتبه تکرارشروع

اسلاید 188: 3/13/2018cpeg323-04FTopic0.ppt188حاصلضرب مضروب فیه مضروب 0000 0000 0011 00101: 0010 0000 0011 00102: 0001 0000 0011 00103: 0001 0000 0001 00101: 0011 0000 0001 00102: 0001 1000 0001 00103: 0001 1000 0000 00101: 0001 1000 0000 00102: 0000 1100 0000 00103: 0000 1100 0000 00101: 0000 1100 0000 00102: 0000 0110 0000 00103: 0000 0110 0000 0010 0000 0110 0000 0010

اسلاید 189: 3/13/2018cpeg323-04FTopic0.ppt189چه چیزی روی می دهد؟مضروب فیه هنوز می ماند و حاصلضرب به راست حرکت می کندB0B1B2B3P0P1P2P3P4P5P6P70000A0A1A2A3A0A1A2A3A0A1A2A3A0A1A2A3

اسلاید 190: 3/13/2018cpeg323-04FTopic0.ppt190مشاهدات ورژن2ضربفضای هدر رفته ثبات حاصلضرب که دقیقا هم اندازه مضرئب فیه است =>به هم پیوستن ثبات مضروب فیه و ثبات حاصلضرب

اسلاید 191: 3/13/2018cpeg323-04FTopic0.ppt191سخت افزار ضرب ورژن2حاصلضربمضروب32بیت ALUشیفت راستکنترل32بیت64بیتنوشتن(مضروب فیه)

اسلاید 192: 3/13/2018cpeg323-04FTopic0.ppt192الگوریتم ضرب ورژن3پایانبله: 32 تکرار2. یک بیت ثبات حاصلضرب را به راست شیفت بده.نه: < 32 تکرار1.تست کردنحاصلضرب0حاصلضرب0 = 0حاصلضرب0 = 11a. جمع کن مضروب را با نیمه چپ حاصلضرب& نتیجه را درنیمه چپ ثبات حاصلضرب قرار بده32مرتبه تکرارشروع

اسلاید 193: 3/13/2018cpeg323-04FTopic0.ppt193مشاهدات ورژن3ضربدو مرحله در هر بیت است برای اینکه مضروب فیه & حاصلضرب به هم می پیوندد.ثبات های MIPS Lo,Hiهستند نیمه چپ و راست حاصلضربMIPSدستور العمل ضرب بدون علامت را به ما می دهددرمورد ضرب علامت دار چی؟آسانترین راه حل زمانی است که هردو مثبت باشند و به یاد داشته باشید داده تکمیل شده اجرا می شود(بیت علامت را دور بریز اجرا برای 31مرحله)کاربرد تعریف متمم 2 نیاز به گسترش علامت داده های بخصوص و طبقه بندی آنها در انتهاالگوریتم بوت راه فوق العاده برای ضرب اعداد علامت دار است و از سخت افزار یکسان مانند قبلی استفاده میکند و چرخه ها را ذخیره می کند می تواند تعدیل شود بهto handle multiple bits at a time

اسلاید 194: 3/13/2018cpeg323-04FTopic0.ppt194الگوریتم بوت(بیت راست بیت جاری) توضیح مثال OP 0 1 شروع اجرا از sub 0001111000 1S 1 1 وسط اجرا از none 0001111000 1S 1 0 پایان اجرایadd 0001111000 1s 0 0 وسط اجرا از none 0001111000 1s0 1 1 1 1 0ابتدای اجراپایان اجراوسط اجرا ابتکاری برای سرعت (موقعی که شیفت سریعتر از addبود). یک رشته از 1sها را در مضروب فیه با نخستین تفریق جایگزین کنید ما ابتدا یک 1 می بینیم و سپس در جمع بعدی //////////////////////////////–1+ 1000001111

اسلاید 195: 3/13/2018cpeg323-04FTopic0.ppt195مثال بوت(7*2)عملگرمضروبحاصلبعدی؟0. initial value00100000 0111 010 -> sub1a. P = P - m1110 +1110 1110 0111 0 shift P (sign ext)1b. 0010 1111 0011 1 11 -> nop, shift 2. 0010 1111 1001 1 11 -> nop, shift 3. 0010 1111 1100 1 01 -> add4a. 0010 +0010 0001 1100 1 shift4b. 0010 0000 1110 0 done

اسلاید 196: 3/13/2018cpeg323-04FTopic0.ppt196مثال بوت(3-*2)عملگر مضروب حاصل بعدی? 0. initial value 00100000 1101 0 10 -> sub 1a. P = P - m 1110 +1110 1110 1101 0 shift P (sign ext) 1b. 0010 1111 0110 1 01 -> add + 0010 2a. 0001 0110 1 shift P 2b. 0010 0000 1011 0 10 -> sub +1110 3a. 0010 1110 1011 0 shift P 3b. 0010 1111 0101 1 11 -> nop 4a 1111 0101 1 shift 4b. 0010 1111 1010 1 done

اسلاید 197: 3/13/2018cpeg323-04FTopic0.ppt197ضرب علامت دارآسانترین راه حل این است کههردو مثبت باشدبه یاد داشته باشید که حاصل تکمیل شده اجرا می شودعلامت حاصلضرب را محاسبه می کند عملوندها را به اعداد مثبت تبدیل می کند ، بیت علامت را دور می ریزد ،برای31 مرتبه اجرا می شود ، سپس نتیجه ثابت می شود.

اسلاید 198: 3/13/2018cpeg323-04FTopic0.ppt198الگوریتم های سریعتر یا عمل ضربالگوریتم بوتضرب اعداد علامت دار مانند قبل داز سخت افزار یکسان استفاده می کند و چرخه ها را ذخیره می کندبیتهای مضرب را در یک لحظه می تواند دستکاری کنداستفاده کردن از یک آرایه آدرسمشاهدات این گونه نشان می دهد که :چه اضافه شود یا نشود مضروب را یک واحد شیفت می دهیم_این تصمیم می تواند کامل به صورت موازی انجام شود.

اسلاید 199: 3/13/2018cpeg323-04FTopic0.ppt199تقسیم :مداد و کاغذQuotient 1001 Divisor 1000 1001010 Dividend –1000 10 101 1010 –1000 Remainder 10 Dividend = Quotient * Divisor + Remainder

اسلاید 200: 3/13/2018cpeg323-04FTopic0.ppt200سخت افزار تقسیم ورژن164 بیت ثبات مقسوم علیه ،واحد محاسبه و منطق 64 بیتی ، ثبات باقی مانده ، ثبات خارج قسمت 32 بیتیباقی ماندهخارج قسمتمقسوم علیه64بیتیALUشیفت راستشیفت چپنوشتنکنترل32بیت62بیت64بیت

اسلاید 201: 3/13/2018cpeg323-04FTopic0.ppt201الگوریتم تقسیم ورژن 12ب.بازیابی مقدار اولیه با جمع ثبات مقسوم علیه و قرار دادن مجموع در ثبات باقی مانده . شیفت ثبات خارج قسمت به چپ و صفر کردن کم ارزش ترین بیت جدیدتست کردن باقی ماندهباقی مانده < 0باقی مانده  01. کم کنید ثبات مقسوم علیه را از ثبات باقی مانده نتیجه را در ثبات باقی مانده قرار دهید2a. شیفت به چپ ثبات خارج قسمت و 1 کردن آخرین بیت جدید سمت راست3- شیفت به راست ثبات مقسوم علیه به اندازه یک بیتپایانبلهشروع:مقسوم را در باقی مانده قرار دهیدآیا سی و سومین تکرار است؟خیرN+1 مرحله برای nبیت خرج قسمت و باقی ماندهباقی مانده خارج قسمتمقسوم غلیه 0000 0111 00000010 0000

اسلاید 202: 3/13/2018cpeg323-04FTopic0.ppt202مشاهدات تقسیم ورژن1نصف بیت ها در مقسوم علیه همیشه صفر است =>نصف 64 بیت جمع کننده هدررفته است=>نصف مقسوم علیه هدر رفته استبه جای اینکه مقسوم علیه را شیفت به راست دهیم ، باقی مانده را شیفت به چپ می دهیم ؟مرحله اول نمی تواند تولید یک خارج قسمت کند(به عبارت دیگر خیلی بزرگ است)=>به وسیله اجرای فرمان ها با شیفت اول و سپس تفریق می توان یک تکرار ذخیره کرد.

اسلاید 203: 3/13/2018cpeg323-04FTopic0.ppt203سخت افزار تقسیم ورژن 232 بیت ثبات مقسوم علیه ، 32بیتALU ، 64بیت ثبات باقی مانده ،32بیت ثبات باقی مانده باقی ماندهخرج قسمتمقسوم علیه32بیت ALUشیفت چپنوشتنکنترل32بیت32بیت64بیتشیفت چپ

اسلاید 204: 3/13/2018cpeg323-04FTopic0.ppt204الگوریتم تقسیم ورژن 23ب- بازیابی مقدار اولیه با جمع ثبات مقسوم علیه و قرار دادن مجموع در نیمه سمت چپ ثبات باقیماندههمچنین شیفت ثبات خارج قسمت به چپ و صفر کردن کم ارزش ترین بیت جدید آزمایش باقی ماندهباقی مانده < 0باقی مانده 02- ثبات مقسوم را از نیمه چپ ثبات باقی مانده کم کن&قرار بده نتیجه را در نیمه چپثبات باقی مانده3الف-شیفت به چپ ثبات خارج قسمت و یک کردن آخرین بیت جدید سمت راست شیفت بده ثبات باقی مانده را به چپپایانبله آیا سی ودومین تکرار است؟خیرشروع:مقسوم علیه را در باقی مانده قرار دهیدباقی مانده خارج قسمت مقسوم 0000 0111 0000 0010

اسلاید 205: 3/13/2018cpeg323-04FTopic0.ppt205مشاهدات تقسیم ورژن2حذف کردن ثبات خارج قسمت به وسیله بهم پیوستن با باقیمانده به عنوان شیفت چپآغاز شیفت دادن باقی مانده به چپ مانند قبلپس از آن حلقه فقط محتوی 2 مرحله است چون شیفت دادن ثبات باقی مانده هر دو شیفت ها باقی مانده در نیمه چپ و خارج قسمت در نیمه راست.در نتیجه به هم پیوستن 2 ثبات به یکدیگر و فرمان های جدید عملگرها در این حلقه باقی مانده ای است که در یک لحظه بارها به چپ شیفت خواهد یافتبنابراین در مرحله تصحیح پایانی باید شیفت به عقب بدهیم که تنها باقی مانده در نیمه چپ ثبات باشد

اسلاید 206: 3/13/2018cpeg323-04FTopic0.ppt20632 بیت ثبات مقسوم ، 32بیت ALU ، 64 بیت ثبات باقی مانده ، (صفر بیت خارج قسمت).سخت افزار تقسیم ورژن 2باقی مانده(خارج قسمت)مقسوم32بیت ALUنوشتنکنترل کردن32بیت64بیتشیفت چپ“HI”“LO”

اسلاید 207: 3/13/2018cpeg323-04FTopic0.ppt207الگوریتم تقسیم ورژن 33ب- بازیابی مقدار اولیه با جمع ثبات مقسوم علیه و قرار دادن مجموع در نیمه سمت چپ ثبات باقیمانده همچنین شیفت ثبات باقی مانده به چپ و صفر کردن کم ارزش ترین بیت جدید آزمایش باقی ماندهباقی مانده < 0باقی مانده 02- ثبات مقسوم را از نیمه چپ ثبات باقی مانده کم کن&قرار بده نتیجه را در نیمه چپثبات باقی مانده3الف-شیفت به چپ ثبات باقی مانده و یک کردن آخرین بیت جدید سمت راست شیفت بده ثبات باقی مانده را به چپپایانبله آیا سی ودومین تکرار است؟خیرشروع:مقسوم علیه را در باقی مانده قرار دهیدباقی مانده مقسوم 0000 0111 0010

اسلاید 208: 3/13/2018cpeg323-04FTopic0.ppt208مشاهدات تقسیم ورژن3سخت افزار یکسان مانند ضرب:فقط به ALU نیاز داریم برای جمع یا تفریق ، 63 بیت شیفت به چپ یا راستثبات های HI وlo به هم می پیوندند به عنوان ثبات 64 بیتی برای ضرب و تقسیمتقسیم علامت دار:وووووووووووووووووووووووووووووویادداشت:مقسوم علیه م باقی مانده باید هم علامت باشندیادداشت:خارج قسمت منفی شده اگر علامت مقسوم و علامت باقی مانده مخالف باشند مثال : 1-=باقی مانده و 3-=2÷7-ممکن است برای خارج قسمت خیلی بزرگ باشد: اگر تقسسیم صحیح 64 بیتی به وسیله 1 ، خارج قسمت64 بیت است

اسلاید 209: 3/13/2018cpeg323-04FTopic0.ppt209فصل چهارم سنجش کارايی سنجش: چه، چرا، چگونه. معادله کارایی قانون امدالچگونه انرژی کارایی را محدود می کند.

اسلاید 210: 3/13/2018cpeg323-04FTopic0.ppt210اغلب چه کسی CPUها را ارتقا می دهدیک حرفه ای که چرخه های CPU را به پول تبدیل می کند، و محدود به چرخه استArtist tool: animation, video special effects.

اسلاید 211: 3/13/2018cpeg323-04FTopic0.ppt211برای خرید یک ماشین جدید چگونه تصمیم می گیرید؟اندازه گیری “زمان اجرای” After Effects در “ظرفیت کاری” تولید خروجی تصویر………………………..////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// “Night flight” نقشه شهر و ابرها در آسمان بوسیله تصاویر فرموله محاسبه می شوند CPU شدید I/O ناچیز Night flight Movie Goes Here

اسلاید 212: 3/13/2018cpeg323-04FTopic0.ppt212 کارایی و هزینه از نظر مشتری/CPU از لحاظ خریدمعین کردن یک مجموعه از ماشینها که دارای بهترین کاراییکمترین هزینهبهترین کارایی / هزینه از لحاظ طراحیمواجه با انتخاب طراحی است که دارای: بهترین بهبود کارایی کمترین هزینهبهترین کارایی / هزینه نیاز هر دوپایه ای برای مقایسهمعیاری برای ارزیابیهدف ما فهماندن مفهوم هزینه و کارایی از انتخاب های معماری است.

اسلاید 213: 3/13/2018cpeg323-04FTopic0.ppt213دو تصور از “کارایی”° زمان انجام کار(زمان اجرا)– زمان اجرا ، زمان پاسخ ، زمان برگشت° کارها در روز، ساعت ، هفته ، ثانیه ، نانو ثانیه ، ... (کارایی)– کارایی ، توان عملیاتی ، پهنای باند اغلب زمان پاسخ و توان عملیاتی در عکس هم قرار دارند، چرا؟PlaneBoeing 747BAD/Sud ConcodreSpeed610 mph1350 mphDC to Paris6.5 hours3 hoursPassengers470132Throughput (pmph)286,700178,200کدامیک کارایی بالاتری دارد؟

اسلاید 214: 3/13/2018cpeg323-04FTopic0.ppt214تعاریف کاراییکارایی میزان چیزهایی در ثانیه استبزرگتر بهتر استاگر به صورت عمده، زمان پاسخ برای ما مهم باشد:performance(x) = 1 execution_time(x)“X” n بار سریعتر از “Y” است به معنی اینست که : performance(X) execution_time(Y) n = ---------------------- = ---------------------- performance(Y) execution_time(X)چه زمانی توان عملیاتی مهمتر از زمان اجراست؟چه زمانی زمان اجرا از توان عملیاتی مهمتر است؟

اسلاید 215: 3/13/2018cpeg323-04FTopic0.ppt215مثال هایی از کاراییزمانهای 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%”) سریعتر است.زمانیکه بحث کارایی پردازنده مطرح است،عمده تمرکز ما بر روی زمان اجرا برای “یک کار” است. چرا؟

اسلاید 216: 3/13/2018cpeg323-04FTopic0.ppt216درک کارایی موارد زیر احتمالا، چگونه بر زمان پاسخ و توان عملیاتی اثر می گذارد؟ افزایش سرعت ساعت در یک پردازشگر معین.افزایش تعداد کارها در یک سیستم (مثلا داشتن یک سرویس واحد کامپیوتری دارای چند کاربر).افزایش تعداد پردازنده ها در یک سیستم که از چند پردازنده استفاده می کند ( مانند یک شبکه از ماشینهای خود پرداز(ATM))اگر یک پنتیوم 3 یک برنامه را در 8 ثانیه اجرا کند و یک PowerPc برنامه ای مشابه را در 10 ثانیه اجرا کند، محصول پنتیوم چند بار سریعتر است؟n = 10 / 8 = 1.25 times faster (or 25% faster) با این وجود چه چیزی باعث می شود که کسی PowerPC را برای خرید انتخاب کند ؟

اسلاید 217: 3/13/2018cpeg323-04FTopic0.ppt217تعریف زمان زمان به چند طریق قابل تعریف است، وابسته به اینکه چگونه مورد سنجش قرار دهیم: زمان پاسخ: مجموع زمان صرف شده برای تکمیل یک کار، شامل زمان صرف شده برای اجرا در CPU دستیابی به دیسک و حافظه، انتظار برای I/O و دیگر پردازشها، و سربار سیستم عامل. زمان اجرای CPU: مجموع زمانی که یک CPU برای یک کار صرف می کند(به غیر از زمان I/O یا اجرای برنامه های دیگر). این زمان به طور ساده معروف به زمان CPU است.زمان کاربر CPU: مجموع زمانهایی که CPU در برنامه صرف می کند. زمان اجرای سیستمی CPU : مجموع زمانی که سیستم عامل صرف اجرای کارها در برنامه می کند. برای مثال: یک برنامه می تواند دارای زمان سیستمی CPU معادل 22 ثانیه باشد، یک زمان کاربر CPU برابر 90 ثانیه ، یک زمان اجرایی CPU، معادل 112 ثانیه ، و یک زمان پاسخ برابر 162 ثانیه باشد.

اسلاید 218: 3/13/2018cpeg323-04FTopic0.ppt218ساعت کامپیوتر یک ساعت کامپیوتر در یک نرخ ثابت انجام می گیرد و تعیین می کند چه زمانی رخدادها در سخت افزار قرار گیرند.Clkزمان چرخه ساعت مقدار زمان برای سپری شدن یک چرخه ساعت است (مثلا 5 نانوثانیه).نرخ ساعت، عکس زمان چرخه ساعت است.مثلا، اگر یک کامپیوتر دارای زمان چرخه ساعت معادل 5 نانوثانیه باشد، نرخ ساعت برابر است با: 1 ---------------------- = 200 MHz 5 x 10 secچرخه ساعت-9

اسلاید 219: 3/13/2018cpeg323-04FTopic0.ppt219معیارهای پایه ارزیابی مقایسه معیارهای ماشینها- زمان اجرا- توان عملیاتی- زمان CPU- MIPS : مخفف : میلیونها دستورالعمل در ثانیه- MFLOPS : میلیونها عمل ممیز شناور در هر ثانیهمقایسه مجموعه برنامه های استفاده شده در ماشینها- مفهوم محاسباتی - مفهوم محاسباتی سنگین- Benchmarks

اسلاید 220: 3/13/2018cpeg323-04FTopic0.ppt220چه تعداد چرخه برای یک برنامه نیاز است؟ ممکن است تصور کرده باشید که تعداد چرخه ها = تعداد دستورالعملها باشداین تصور اشتباه است، دستورالعملهای متفاوت ، در ماشینهای متفاوت زمانهای متفاوتی را صرف می کنند.

اسلاید 221: 3/13/2018cpeg323-04FTopic0.ppt221تعداد چرخه های متفاوت برای دستورالعمل های متفاوت تقسیم زمان خیلی بیشتری از جمع صرف می کند. اعمال ممیز شناور، زمان بیشتری نسبت به نوع صحیح آن مصرف می کند. دسترسی به حافظه زمان بسیار بیشتری از دسترسی به ثباتها صرف می کند.

اسلاید 222: 3/13/2018cpeg323-04FTopic0.ppt222اکنون که ما با مفهوم چرخه آشنا شدیم یک برنامه معین نیاز دارد به تعدادی از دستورالعملهاتعدادی از چرخه های ساعتتعدادی از ثانیه هاما یک لغت نامه برای شرح این کمیت ها داریم:زمان چرخه ساعت (ثانیه در هر چرخه)نرخ ساعت (سیکل در ثانیه)CPI(تعداد چرخه ها در هر دستورالعمل)یک برنامه ممیز شناور ممکن است دارای CPI بالاتری باشد

اسلاید 223: 3/13/2018cpeg323-04FTopic0.ppt223محاسبه زمان CPUزمان اجرای یک برنامه معین می تواند مانند زیر محاسبه شودزمان چرخه ساعت x چرخه های ساعت CPU = زمان CPUاز آنجا که زمان چرخه ساعت و نرخ ساعت عکس یکدیگرندنرخ ساعت/چرخه های ساعت CPU=زمان CPU تعداد چرخه های ساعت CPU می تواند مانند زیر محاسبه گرددCPUچرخه های ساعت = (دستورالعملها/برنامه) x (چرخه های ساعت/دستورالعمل) = تعداد دستورالعملها x CPIبنابراینCPUزمان = تعداد دستورالعملها x CPI x زمان چرخه ساعتCPUزمان = تعداد دستورالعملها x CPI / نرخ ساعتواحدهای این، اینگونه هستند دستورالعملها چرخه های ساعت ثانیهثانیه = ----------------- x ---------------------- x ---------------- برنامه دستورالعمل چرخه ثانیه

اسلاید 224: 3/13/2018cpeg323-04FTopic0.ppt224مثالی از محاسبه زمان CPU اگر یک کامپیوتر دارای نرخ ساعت MHZ50 باشد، چقدر طول می کشد تا یک برنامه دارای 1000 دستورالعمل اجرا شود؟ CPI برای این برنامه 3.5 است. استفاده از معادلهCPUزمان = تعداد دستورالعمل x CPI / نرخ ساعتپس CPUزمان = 1000 x 3.5 / (50 x 10 ) اگر نرخ ساعت CPU ی یک کامپیوتر از MHZ200 به MHZ 250 افزایش یابد و بقیه فاکتورها یکسان باقی بمانند، افزایش سرعت کامپیوتر چقدر است؟ قدیمی CPUزمان نرخ جدید ساعت 250 MHz---------------------=-------------------------=--------------= 1.25جدید CPUزمان نرخ قدیمی ساعت 200 MHZ تصور ساده انگارانه ما چه بود؟6

اسلاید 225: 3/13/2018cpeg323-04FTopic0.ppt225فاکتورهای موثر در کارایی CPUinstr. countCPIclock rateProgramCompiler ISAOrganizationTechnologyچه فاکتورهایی از موارد زیر تاثیر می گیرند؟CPU time= Seconds = Instructions x Cycles x Seconds Program Program Instruction Cycle

اسلاید 226: 3/13/2018cpeg323-04FTopic0.ppt226فاکتورهای موثر در کارایی CPUinstr. countCPIclock rateProgram *Compiler * * ISA * *Organization * *Technology *چه فاکتورهایی از موارد زیر تاثیر می گیرند؟CPU time= Seconds = Instructions x Cycles x Seconds Program Program Instruction Cycle

اسلاید 227: 3/13/2018cpeg323-04FTopic0.ppt227محاسبه CPICPI،میانگین تعداد چرخه ها در هر دستورالعمل است اگر برای هر نوع دستورالعمل ، لازم است ما فرکانس ها و تعداد چرخه ها را برای اجرای آن بدانیم ، ما می توانیم CPI را به صورت زیر محاسبه کنیم:CPI = Σ CPI x F برای مثال:iiOp F CPI CPI x F % TimeALU 50% 1 .5 23%Load 20% 5 1.0 45%Store 10% 3 .3 14%Branch 20% 2 .4 18%Total100% 2.2 100%iiii

اسلاید 228: 3/13/2018cpeg323-04FTopic0.ppt228مسائل با میانگین حسابیتقاضاهایی که احتمال یکسانی برای اجرا ندارند. 2 تا ماشین که زمان بندی شدن برای2 آزمون کارایی:Machine A Machine B Program1 2 seconds(%20) 6 seconds Program2 12 seconds(%80) 10 seconds میانگین زمان اجرا=2/(2+12) =7ثانیهمیانگین زمان اجرا=2/(6+10)=8 ثانیهثانیه 10=2*0.2 +12*0.8=Aمیانگین زمان اجرای وزنی ثانیه9.2=6*0.2 + 10*0.8=Bمیانگین زمان اجرای وزنی

اسلاید 229: 3/13/2018cpeg323-04FTopic0.ppt229خلاصه ای از کارایی2 سنجش اصلی کاراییزمان اجرا:زمان انجام کارتوان عملیاتی:تعداد کارهایی هستند که در یک واحد زمانی کامل می شوندکارآیی و زمان اجرا متقابل اند افزایش کارایی کاهش زمان اجرا را در پی داردزمان اجرایی که به یک برنامه اختصاص داده می شود می تواند به صورت زیر محاسبه شودزمان CPU = تعداد دستورالعمل ها * CPI * زمان هر چرخهزمان CPU= تعداد دستورالعمل ها * CPI/آهنگ پالس ساعتاین عوامل متآ ثر است از تکنولو ژی کامپایلر ، معماری مجموعه ذستور العمل ها ، سازمان دهی ماشین ، و تکنولو ژی زیر بنایی .زمانی که کارایی افزایش می یابد دقت کنید که چه رخدادهایی به طور متناوب اتفاق می افتد =>نمونه متداول سریعی ساخته می شود.به خاطر داشته باشید: بخشهای اشتراکی را سریعتر نمائید!

اسلاید 230: 3/13/2018cpeg323-04FTopic0.ppt230آزمون های کارایی کامپیوترآزمون کارایی ، یک برنامه یا مجموعه ای از برنامه هایی است که برای دستیابی کامپیوتر به کارایی استفاده می شودآزمون های کارایی به ما اجازه می دهند سنجش کارایی بر پایه زمان های اجرایی را می دهدآزمون های کارایی باید نمایش دهنده نوع درخواست های در حال اجرا در یک کامپیوتر باشندآزمون های کارایی نباید به عوامل دیگری در کامپیوتر وابسته باشند ، مثل موس ، کیبورد ، و...آزمون های کارایی می توانند در گونه های پیچیده و سودمندشان بسیار گوناگون باشند.

اسلاید 231: 3/13/2018cpeg323-04FTopic0.ppt231انواع آزمون های کاراییهدف اصلی بار کاریSmall “Kernel” Benchmarksآزمون های کارایی میکرودرخواست کامل آزمون های کارایی)spec (مثل آزمون های کاراییمزایامعایبنمایشگر خیلی مشخص غیر قابل حملبرای اجرا یا سنجش سخت استبرای همانندسازی سخت است قابل حملکاملا کاربردی پیشرفت های مفید در واقعیتآسان برای اجرا در اوایل طراحی چرخهقابلیت به اوج رسانیدن همانندی و پتانسیل گلوگاه هانشان دهنده کم سیستم حافظه قابل اندازه گیری نیست ”به اوج رسیدن“می تواند یک راه طولانی از درخواست کارایی باشد

اسلاید 232: 3/13/2018cpeg323-04FTopic0.ppt232SPEC (System Performance Evaluation Cooperative) موسسه ارزیابی کارایی سیستمآزمون های کارایی SPECبه شدت برای گزارش کارایی و کارایی PCبه کار می روداولین دوره SPEC CPU89شامل 10 برنامه روی اعداد singleدومین دوره SPEC CPU92Spec CINT92(6 تا برنامه صحیح) وSpec CFP92(14 تا برنامه ممیز شناور)فلگ های کامپایلر می توانند قرار بگیرند به طور متفاوت برای برنامه های متفاوتسومین دوره SPEC CPU95قرار گیری جدید برنامه ها:SPEC CINT 95(8 تا برنامه صحیح) و SPEC CFP 95( 10 تا برنامه ممیز شناور)تنها فلگ کامپایلری که قرار می گیرد برای همه برنامه ها .

اسلاید 233: 3/13/2018cpeg323-04FTopic0.ppt233SPECچهارمین دوره SPEC CPU2000قرار گیری جدید برنامه ها :SPEC CINT2000(12 تا برنامه صحیح) و SPEC CFP2000(14 تا برنامه ممیز شناور)تنها فلگ کامپایلری که قرار می گیرد برای همه برنامه ها .گزارشات مستند نسبت ارزیابی برای SPEC هستند زمان CPU ماشین مورد ارزیابی زمان CPU ماشین مرجع

اسلاید 234: 3/13/2018cpeg323-04FTopic0.ppt234دیگر آزمون های کارایی SPECJVM98:اندازه گیری کارایی ماشین های مجازیSFS97:اندازه گیری قوانین فایل سرویس دهند شبکه (NFS) Web99:اندازه گیری کارایی در خواست های شبکه گسترده جهانیHPC96:اندازه گیری کارایی گسترده در خواست های صنعتیAPC,MEDIA,OPCاندازه گیری کارایی درخواست های گرافیکیبرای اطلاعات بیشتر درباره آزمون های کارایی SPEC بهhttp://www.spec.orgمراجعه کنید

اسلاید 235: 3/13/2018cpeg323-04FTopic0.ppt235مثال هایی از آزمون های کارایی SPEC95نسبت های SPECنشان داده می شوند درپردازش گرهای Pentium وPentium pro(pentium +)ازاین اطلاعات چه چیزی را می توان فرا گرفت؟

اسلاید 236: 3/13/2018cpeg323-04FTopic0.ppt236عوامل ضعیف ارزیابی کاراییاندازه گیری کارایی کامپیوتر شامل MIPS وMFLOPS می شودMIPS: میلیون ها دستورالعمل در هر ثانیهMIPS_=(زمان اجرا*10^6)/تعداد دستورالعمل ها_برای مثال یک برنامه که 3 میلیون دستورالعمل را در 2ثانیه محاسبه می کند درجه MIPSآن 1.5است_مزایا:آسان است برای فهمیدن و اندازه گیری_معایب:ممکن است کارایی واقعی را منتقل نکند در حالی که دستورالعمل های ساده تر را بهتر اجرا می کند.MFLOPS:میلیون ها عملگر ممیز شناور در هر ثانیهMFLOPS_=(زمان اجرا*10^6)/عملگرهای ممیز شناور_برای مثال برنامه S که 4 میلیون دستورالعمل را در 5ثانیه محاسبه می کند درجه MFLOPSآن 0.8است ._مزایا:آسان است برای فهمیدن و اندازه گیری_معایب :مانند MIPSتنها اندازه گیری های ممیز شناور

اسلاید 237: 3/13/2018cpeg323-04FTopic0.ppt237بالا بردن میزان تسریع به صورت زیر تعریف می شود زمان اجرای قدیم کارایی جدید میزان تسریع= ------------- = ------------------- زمان اجرای جدید کارایی قدیماین عامل انکسار و انحراف را برای میزان تسریع چنین در نظر می گیریمزمان اجرای جدید = زمان اجرای قدیم x (1 - Fractionenhanced) + Fractionenhancedمیزان تسریع =زمان اجرای قدیمزمان اجرای جدیدمیزان تسریع افزوده شده =1(1 - Fractionenhanced) + Fractionenhancedمیزان تسریع افزوده شده

اسلاید 238: 3/13/2018cpeg323-04FTopic0.ppt238مثالی از قانون آمدالدستورالعمل های ممیز شناور برای 2 برابر شدن سرعت اجرا بهبود داده شده اند ، اما تنها 10%زمان برای این دستورالعمل های اصلی استفاده می شود. ماشین جدید چقدر سریعتر است؟میزان تسریع =زمان اجرای قدیمزمان اجرای جدید =1(1 - Fractionenhanced) + FractionenhancedSpeedupenhancedمیزان تسریع =1(1 - 0.1) + 0.1/2= 1.053ماشین جدید 1.053سرعت دارد ,یا 5.3%سریعتر استاگر سرعت دستورالعمل های ممیز شناور 100 برابر سریعتر شود ماشین جدید چقدر سریعتر می شود؟ میزان تسریع =1(1 - 0.1) + 0.1/100= 1.109

اسلاید 239: 3/13/2018cpeg323-04FTopic0.ppt239تخمین بهبود کاراییفرض کنید یک پردازشگر به طور جاری به 10ثانیه برای اجرا ی یک برنامه نیاز دارد و کارایی یک پردازشگر هر سال %50بهبود می یابد.به وسیله چه عاملی کارایی پردازشگر در 5 سال بهبود پیدا می کند؟(1+0.5)^5=7.59بعد از 5 سال یک پردازشگر همان برنامه را در چه زمانی اجرا می کند؟ ثانیه =10/7.59=1.32 زمان اجرای جدیدچه فرضیاتی در مسئله بالا پدید می آیند؟

اسلاید 240: 3/13/2018cpeg323-04FTopic0.ppt240مثال کاراییکامپیوتر های M1وM2اجراهای مجموعه دستورالعمل های یکسانی دارندM1آهنگ پالس ساعت 50MHzدارد وM2 آهنگ پالس ساعت 75MHz دارد.M1دارای2.8 CPI است و M2 دارای 3.2 CPIبرای برنامه دارد.چقدر زمان M2سریعتر است نسبت به M1در این برنامه؟ آهنگ پالس ساعت M1چقدر باید باشد تا زمان اجرای یکسانی برای آنها داشته باشد؟ M1زمان اجرای درM1 تعداد دستورالعملها x CPIM1 / آهنگ پالس ساعت M1==2.8/503.2/75= 1.31M2زمان اجرای M2 تعداد دستورالعمل ها x CPIM2 / آهنگ پالس ساعت M2

اسلاید 241: 3/13/2018cpeg323-04FTopic0.ppt241CPIبه عنوان یک ابزار تحلیلگر برای راهنمای طراحیماشینCPI 5 x 30 + 1 x 20 + 2 x 20 + 2 x 10 + 2 x 20100 = 2.7 cycles/instructionمیکس دستورالعمل های برنامه 5 x 56 + 1 x 7 + 2 x 15 + 2 x 7 + 2 x 15100 = 3.61 cycles/instruction

اسلاید 242: 3/13/2018cpeg323-04FTopic0.ppt242دستورالعمل PEER:قانون آمدالبرنامه 30% از زمانش را به کدهایی اختصاص می دهد که نمی توانند دوباره برای اجرا به صورت موازی کد شوند CPUs2345∞میزان تسریعمیزان تسریع محاسبه می شود برایN = 2, 3, 4, 5, and ∞.

اسلاید 243: 3/13/2018cpeg323-04FTopic0.ppt243دستورالعمل PEER:قانون آمدالS =1 30 % + (70% / N)برنامه 30% از زمانش را به صورت سریال استفاده می کندCPUs2345∞میزان تسریع1.541.852.12.33.3میزان تسریع را برای محاسبه می کندN = 2, 3, 4, 5, ∞.S(∞)23# CPUs

اسلاید 244: 3/13/2018cpeg323-04FTopic0.ppt244انرژی و کارایییک ژول = 0.24 کالری یک کالری دمای یک گرم آب را یک درجه افزایش می دهدیک ژول انرژی :یک جریان 1 آمپری است که از وسط یک مقاومت 1 اهمی عبور می کند و گرمایی معادل 1 ژول تولید می کندیک مورد ناخواسته:کامپیوترها انر ژیالکتریکی را به گرما تبدیل می کنند.. که به عنوان فراورده های جانبی محاسبه می شودهوا یا آب می توانند مانع ذوب شدن چیپ در اثر انتقال حرارت شود1 وات :عبور 1 آمپر جریان از یک مقاومت 1 اهمیو همچنین یک وات برای یک ثانیه

اسلاید 245: 3/13/2018cpeg323-04FTopic0.ppt245 IBM Power 4: How does die heat up?4 dies on amulti-chipmodule2 CPUsper die

اسلاید 246: 3/13/2018cpeg323-04FTopic0.ppt246 IBM Power 4: Dissipating 115 WattsFixedpointunitsHot spotsCachelogic

اسلاید 247: 3/13/2018cpeg323-04FTopic0.ppt247اتصال انرژی :فیزیک های بنیادی VddC 1 2C VddE1->= 2 1 2C VddE0->= 2Vddانتقال منطقی اتلاف انرژینتیجه قطعی:مستقل از تکنولو ژیState-of-the-art CPUs (90 nm): Switching energy is 70% of total energy. Remainder: at 90nm, “switches” are “dimmers”!“leakage” currents How can we limit switching energy? 65nm: 50/50!

اسلاید 248: 3/13/2018cpeg323-04FTopic0.ppt248خلاصه ای از ارزیابی کاراییآرمون های کارایی خوب از قبیل آزمون های کاراییSPECمی تواند روش خاصی را برای ارزیابی و مقایسه کارایی کامپیوتر تولید کندMIPSوMFLOPSبرای استفاده آسان هستند اما برای نشان دادن کارایی نا صحیح هستند.قانون آمدال یک روش موثر را برای توضیح میزان تسریع وابسته به عامل انحراف ایجاد می کند. به خاطر داشته باشید: بخشهای اشتراکی را سریعتر نمائید!

اسلاید 249: 3/13/2018cpeg323-04FTopic0.ppt249نتیجه گیریو معادله کاراییCPIابزارآلات:انرژی : قانون آمدال:محاسبه می کند 1 2C VddE0->= 2 1 2C VddE1->= 2مشتری ها:قیمت را می سنجندمعمارها : طرح را می سنجند

اسلاید 250: 3/13/2018cpeg323-04FTopic0.ppt250فصل پنجم روشهای پیاده سازی معماری پردازشگر

اسلاید 251: 3/13/2018cpeg323-04FTopic0.ppt251چکیدهمقدمهبخشهای سازنده مسیر دادهپیاده سازی یک مسیر داده ساده (تک چرخه ای)پیاده سازی چند چرخه ای

اسلاید 252: 3/13/2018cpeg323-04FTopic0.ppt252مقدمهروند پایه اجرای دستورالعملهابرخی قراردادهامسیر داده 32 بیتیاستراتژی ساعت زنی(حساس به لبه)ما به زیر مجموعه ای از MIPS تمرکز می کنیم:دستورالعملهای دستیابی به حافظه:lw ، swاعمال ALU: add, sub, and, orدستورات انشعاب در صورت تساوی(beq) و دستورات پرش (j)

اسلاید 253: 3/13/2018cpeg323-04FTopic0.ppt253یک تصویر بزرگ:ما الان کجا هستیم؟پنج نمونه از بخشهای سازنده کامپیوترموضوع روز:طراحی یک پردازشگر تک چرخه ایکنترلمسیر دادهحافظهپردازشگرورودیخروجیطراحی مجموعه دستورالعمل هاتکنولوژیطراحی ماشین

اسلاید 254: 3/13/2018cpeg323-04FTopic0.ppt254یک شمای اصلی:چشم انداز کارایی کارایی یک ماشین تعیین می شود به وسیله:تعداد دستور العمل هاInst. Count) )زمان هر چرخه ( Cycle Time )چرخه های هر دستورالعمل(CPI) طراحی پردازشگر (مسیر داده و کنترل) تعیین خواهد شد:زمان هرچرخه چرخه های هر دستورالعمل پردازشگر تک چرخه ای _یک کلاک دارد برای هر دستورالعمل مزایا:طراحی ساده و CPI کم.معایب:زمان چرخه طولانی است و این باعث می شود که به وسیله کندترین دستورالعمل محدود شودCPIInst. CountCycle Time

اسلاید 255: 3/13/2018cpeg323-04FTopic0.ppt255چه طور یک پردازشگر طراحی می شود:مرحله به مرحله تجزیه وتحلیل مجموعه دستورالعمل=>پیش نیازهای مسیر دادهمفهوم هر دستورالعملداده میشودبا انتقال دادن ثبات ها R[rd] <– R[rs] + R[rt];مسیر داده باید شامل محیط ذخیره سازی برای ثبات های ISA شودمسیر داده باید انتقال دادن هر ثبات را پشتیبانی کند انتخاب کردن مجموعه ای از بخشهایی از مسیر داده و بنیاد نهادن روشهای ساعت زنیطراحی مسیر داده با در نظر گرفتن پیش نیاز ها Analyze implementation of each instruction to determine setting of control points that effects the register transferطراحی کنترل منطقی

اسلاید 256: 3/13/2018cpeg323-04FTopic0.ppt256یادآوری:قالب های دستورالعمل های MIPSهمه دستورالعمل های MIPSطولشان 32 بیت است. 3تا قالب دستورالعمل هستند.R-typeI-typeJ-typeدارای فیلدهای متفاوتی هستند:OP:عملکرد هر دستورالعملRs,rt,rd:منبع ومقصد مخصوص ثبات هاshamt : اندازه شییفتFunct:انتخاب کردن عملیات متفاوت در فیلد”op”address / immediate:افست آدرس یا مقدار فوریtarget address:آدرس هدف دستورالعمل پرشoptarget address026316 bits26 bitsoprsrtrdshamtfunct0611162126316 bits6 bits5 bits5 bits5 bits5 bitsoprsrtimmediate0162126316 bits16 bits5 bits5 bits

اسلاید 257: 3/13/2018cpeg323-04FTopic0.ppt257ثبات منطقی انتقال (RTL)RTLمفهوم دستورالعمل را می دهدهمه دستورالعمل ها با واکشی دستورالعمل آغاز می شوندop | rs | rt | rd | shamt | funct = MEM[ PC ]op | rs | rt | Imm16 = MEM[ PC ]inst Register TransfersadduR[rd] <– R[rs] + R[rt];PC <– PC + 4subuR[rd] <– R[rs] – R[rt];PC <– PC + 4oriR[rt] <– R[rs] + zero_ext(imm16); PC <– PC + 4loadR[rt] <– MEM[ R[rs] + sign_ext(imm16)];PC <– PC + 4storeMEM[ R[rs] + sign_ext(imm16) ] <– R[rt];PC <– PC + 4beq if ( R[rs] == R[rt] ) then PC <– PC + 4 + sign_ext(imm16)] || 00 else PC <– PC + 4

اسلاید 258: 3/13/2018cpeg323-04FTopic0.ppt258مرحله 1:تعیین پیش نیازهای مجموعه دستورالعملحافظهدستورالعمل و داده هاثبات ها (32 x 32)خواندن rsخواندن rtنوشتن rtیاrdPC شمارنده برنامهگسترش دهنده(گسترش علامت یا گسترش صفر)جمع و تفریق یا مقدار فوری گسترده شدهAdd 4 or shifted extended immediate to PC

اسلاید 259: 3/13/2018cpeg323-04FTopic0.ppt259جمع کنندهتسهیم کنندهواحد محاسبه ومنطق3232AB32SumCarry3232AB32ResultOP32AB32Y32SelectAdderMUXALUCarryIn3مرحله 2: اجزاء مسیر دادهCombinational Logic: Does not use a clock

اسلاید 260: 3/13/2018cpeg323-04FTopic0.ppt260مرحله 3پیش نیازهای ثبات انتقال -> طراحی مسیر دادهواکشی دستورالعملکدبرداری دستورالعمل ها و خواندن عملوندهامحاسبه کردن عملبازنویسی نتیجه

اسلاید 261: 3/13/2018cpeg323-04FTopic0.ppt261الف 3: مقدمه واحد واکشی دستورالعمل عملیات متداولRTLواکشی دستورالعمل: mem[PC]جدید کردن شمارنده برنامه:کد پشت سرهم:: PC <- PC + 4 انشعاب و پرش: PC <- “something else”32کلمه دستورالعملآدرسحافظه دستورالعملشمارنده برنامهClkآدرس منطقی بعدی

اسلاید 262: 3/13/2018cpeg323-04FTopic0.ppt262ب3:جمع و تفریقR[rd] <- R[rs] op R[rt] مثال: addu rd, rs, rtRa, Rb, وRw میآیند از فیلدهای دستورالعمل های rs, rt, و rdALUctr and RegWr:بعد از کد برداری دستورالعمل کنترل منطقی می کنند32ResultALUctrClkbusWRegWr3232busA32busB555RwRaRb32 تا ثبات 32 بیتیRsRtRdALUoprsrtrdshamtfunct0611162126316 bits6 bits5 bits5 bits5 bits5 bits3

اسلاید 263: 3/13/2018cpeg323-04FTopic0.ppt263پ3:عمل منطقی بلافاصلهR[rt] <- R[rs] op گسترش صفر[imm16] مثال : ori rt, rs, imm16 32ResultALUctrClkbusWRegWr3232busA32busB555RwRaRb32 32-bitRegistersRsRtRdRegDstSign ExtMuxMux3216imm16ALUSrcALU11oprsrtimmediate0162126316 bits16 bits5 bits5 bitsrd?immediate016153116 bits16 bits0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 03

اسلاید 264: 3/13/2018cpeg323-04FTopic0.ppt264ت3:عمل بارکردنR[rt] <- Mem[R[rs] + گسترش علامت[imm16] مثال: lw rt, rs, imm1611oprsrtimmediate0162126316 bits16 bits5 bits5 bitsrd32ALUctrClkbusWRegWr3232busA32busB555RwRaRb32 32-bitRegistersRsRtRdRegDstExtenderMuxMux3216imm16ALUSrcClkData InWrEn32AdrDataMemory32ALUMemWrMuxW_Src3

اسلاید 265: 3/13/2018cpeg323-04FTopic0.ppt265ث3:عمل ذخیره سازیMem[ R[rs] + گسترش علامت[imm16] <- R[rt] ] مثال: sw rt, rs, imm1632ALUctrClkbusWRegWr3232busA32busB555RwRaRb32 32-bitRegistersRsRtRtRdRegDstExtenderMuxMux3216imm16ALUSrcClkData InWrEn32AdrDataMemoryMemWrALUoprsrtimmediate0162126316 bits16 bits5 bits5 bits32MuxW_Src3

اسلاید 266: 3/13/2018cpeg323-04FTopic0.ppt266ج3:دستورالعمل انشعابbeqrs, rt, imm16mem[PC]واکشی دستورالعمل از حافظهEqual <- R[rs] == R[rt]محاسبه شرط انشعابif (COND eq 0)محاسبه آدرس دستورالعمل بعدیPC <- PC + 4 + ( گسترش علامت(imm16) x 4 )elsePC <- PC + 4oprsrtimmediate0162126316 bits16 bits5 bits5 bits

اسلاید 267: 3/13/2018cpeg323-04FTopic0.ppt267مسیر داده برای عمل انشعابbeq rs, rt, imm16ایجاد کردن مسیر داده شرطی(تساوی)oprsrtimmediate0162126316 bits16 bits5 bits5 bits32imm16PCClk00AdderMuxAdder4nPC_selClkbusWRegWr32busA32busB555RwRaRb32 32-bitRegistersRsRtEqual?CondPC ExtInst Address

اسلاید 268: 3/13/2018cpeg323-04FTopic0.ppt268قرار دادن همه اینها باهم :یک مسیر داده تک چرخه ایimm1632ALUctrClkbusWRegWr3232busA32busB555RwRaRb32 32-bitRegistersRsRtRtRdRegDstExtenderMux3216imm16ALUSrcMuxMemtoRegClkData InWrEn32AdrDataMemoryMemWrALUEqualInstruction<31:0>010101<21:25><16:20><11:15><0:15>Imm16RdRtRs=AdderAdderPCClk00Mux4nPC_selPC ExtAdrInstMemory3

اسلاید 269: 3/13/2018cpeg323-04FTopic0.ppt269AdrInstMemoryمفهوم سیگنال های کنترلیRs, Rt, Rd و Imed16 در این مسیر داده سیم بندی شده اندnPC_sel: 0 => PC <– PC + 4; 1 => PC <– PC + 4 + SignExt(Im16) || 00AdderAdderPCClk00Mux4nPC_selPC Extimm16

اسلاید 270: 3/13/2018cpeg323-04FTopic0.ppt270مفهوم سیگنال های کنترلیExtOp:“zero”, “sign”ALUsrc:0 => regB; 1 => immedALUctr:“add”, “sub”, “or”32ALUctrClkbusWRegWr3232busA32busB555RwRaRb32 32-bitRegistersRsRtRtRdRegDstExtenderMux3216imm16ALUSrcMuxMemtoRegClkData InWrEn32AdrDataMemoryMemWrALUEqual010101MemWr:نوشتن در حافظهMemtoReg:0 => ALU; 1 => MemRegDst:0 => “rt”; 1 => “rd”RegWr:نوشتن در ثبات مقصد=3

اسلاید 271: 3/13/2018cpeg323-04FTopic0.ppt271واحد واکشی دستورالعمل در ابتدای جمعPC Extواکشی دستورالعمل از حافظه دستورالعملinstruction <- mem[PC]انجام دادن برای همه دستورالعمل ها =>به بیتهای کنترلی خاصی نیاز نیست AdrInstMemoryAdderAdderPCClk00Mux4nPC_selimm16Instruction<31:0>

اسلاید 272: 3/13/2018cpeg323-04FTopic0.ppt272مسیر داده تک چرخه ای در طول عمل جمع و تفریق32ALUctr = AddClkbusWRegWr = 13232busA32busB555RwRaRb32 32-bitRegistersRsRtRtRdRegDst = 1ExtenderMuxMux3216imm16ALUSrc = 0MuxMemtoReg = 0ClkData InWrEn32AdrDataMemory32MemWr = 0ALUInstructionFetch UnitClkZeroInstruction<31:0> R[rd] <- R[rs] op R[rt]010101<21:25><16:20><11:15><0:15>Imm16RdRsRtoprsrtrdshamtfunct061116212631nPC_sel= +4

اسلاید 273: 3/13/2018cpeg323-04FTopic0.ppt273واحد واکشی دستورالعمل در انتهای جمعPC <- PC + 4این برای همه دستورالعمل ها یکسان است به جز انشعاب و پرشAdrInstMemoryAdderAdderPCClk00Mux4nPC_sel = +4imm16Instruction<31:0>

اسلاید 274: 3/13/2018cpeg323-04FTopic0.ppt274OR مسیر داده تک چرخه ای در طول عمل بلافاصله32ALUctr = OrClkbusWRegWr = 13232busA32busB555RwRaRb32 32-bitRegistersRsRtRtRdRegDst = 0ExtenderMuxMux3216imm16ALUSrc = 1MuxMemtoReg = 0ClkData InWrEn32AdrDataMemory32MemWr = 0ALUInstructionFetch UnitClkZeroInstruction<31:0>R[rt] <- R[rs] or گسترش علامت[Imm16]010101<21:25><16:20><11:15><0:15>Imm16RdRsRtoprsrtimmediate016212631nPC_sel= +4

اسلاید 275: 3/13/2018cpeg323-04FTopic0.ppt275مسیر داده تک چرخه ای در طول بارکردن32ALUctr = AddClkbusWRegWr = 13232busA32busB555RwRaRb32 32-bitRegistersRsRtRtRdRegDst = 0ExtenderMuxMux3216imm16ALUSrc = 1MuxMemtoReg = 1ClkData InWrEn32AdrDataMemory32MemWr = 0ALUInstructionFetch UnitClkZeroInstruction<31:0>010101<21:25><16:20><11:15><0:15>Imm16RdRsRtR[rt] <- Data Memory {R[rs] + SignExt[imm16]}oprsrtimmediate016212631nPC_sel= +4

اسلاید 276: 3/13/2018cpeg323-04FTopic0.ppt276مسیر داده تک چرخه ای در طول عمل ذخیره سازی32ALUctr = AddClkbusWRegWr = 03232busA32busB555RwRaRb32 32-bitRegistersRsRtRtRdRegDst = xExtenderMuxMux3216imm16ALUSrc = 1MuxMemtoReg = xClkData InWrEn32AdrDataMemory32MemWr = 1ALUInstructionFetch UnitClkZeroInstruction<31:0>010101<21:25><16:20><11:15><0:15>Imm16RdRsRtحافظه داده {R[rs] + SignExt[imm16]} <- R[rt]oprsrtimmediate016212631nPC_sel= +4

اسلاید 277: 3/13/2018cpeg323-04FTopic0.ppt277مسیر داده تک چرخه ای در طول عمل انشعاب32ALUctr = SubtractClkbusWRegWr = 03232busA32busB555RwRaRb32 32-bitRegistersRsRtRtRdRegDst = xExtenderMuxMux3216imm16ALUSrc = 0MuxMemtoReg = xClkData InWrEn32AdrDataMemory32MemWr = 0ALUInstructionFetch UnitClkZeroInstruction<31:0>010101<21:25><16:20><11:15><0:15>Imm16RdRsRtif (R[rs] - R[rt] == 0) then Zero <- 1 ; else Zero <- 0oprsrtimmediate016212631nPC_sel= “Br”

اسلاید 278: 3/13/2018cpeg323-04FTopic0.ppt278واحد واکشی دستورالعمل در انتهای انشعابif (Zero == 1) then PC = PC + 4 + گسترش علامت[imm16]*4 ; else PC = PC + 4oprsrtimmediate016212631AdrInstMemoryAdderAdderPCClk00Mux4nPC_selimm16Instruction<31:0>See book for what the datapath and control looks like for jump instructions.Compared to book our processor also supports the ORI instructions.

اسلاید 279: 3/13/2018cpeg323-04FTopic0.ppt279مرحله 4:مسیر داده داده شده :RTL->CONTROLALUctrRegDstALUSrcMemtoRegMemWrEqualInstruction<31:0><21:25><16:20><11:15><0:15>Imm16RdRsRtnPC_selAdrInstMemoryDATA PATHControlOp<0:5>FunRegWr<26:31>

اسلاید 280: 3/13/2018cpeg323-04FTopic0.ppt280این نمادی است که به طور معمول برای نمایش یک ALU مورد استفاده قرار می گیرد. این نماد همچنین برای نمایش یک جمع کننده نیز استفاده می شود، بنابراین بوسیله یکی از دو نماد ALU یا Adder برچسب گذاری می شود. خطوط کنترلی دارای برچسب ALUOperation می باشد. مقدار آنها و عمل ALU در شکل بعد معرفی می شوند.ALUALU operationZeroResultOverflowabCarryOutکنترل ALU

اسلاید 281: 3/13/2018cpeg323-04FTopic0.ppt281مقادیر سه خط کنترلی ALU به همراه عمل متناظر ALUALU Control linesFunction 000 And 001 Or 010 Add 110 Subtract 111 Set-on-less-thanکنترل ALU

اسلاید 282: 3/13/2018cpeg323-04FTopic0.ppt282این جدول چگونگی تنظیم بیتهای کنترلی ALU وابسته به بیتهای کنترلی ALUop و کدهای تابعی متفاوت برای دستورات نوع ثباتی را نشان می دهد.Opcode، که در اولین ستون لیست شده است،وضعیت بیتهای ALUop ار تعیین می کند. تمام کد گذاریها به صورت دودویی نمایش داده می شوند. توجه کنید زمانی که کد ALUop برابر 00 یا 01 باشد، فیلد های خروجی به فیلد کدهای تابعی وابسته نیست. در این مورد، گفته می شود که مقدار کدهای تابعی برای ما “بدون توجه” (don’t care) می باشد و فیلد کد تابعی به صورت xxxxx نمایش داده می شود. زمانی که مقدار ALUop برابر 10 باشد، کد تابعی برای تنظیم ورودی کنترل ALU به کار می رود.

اسلاید 283: 3/13/2018cpeg323-04FTopic0.ppt283دستورالعملهای که از ALU استفاده می کنندLoad/store:محاسبه آدرس - جمع Branch eq:تفریقجمع / تفریقR-type:and/orset-on-less-thanنیاز به کدهای تابعی

اسلاید 284: 3/13/2018cpeg323-04FTopic0.ppt284جدول درستی برای سه بیت کنترلی ALU به عنوان تابعی ازALUop و فیلد کد تابعیبسیاری از ورودیهای اضافه شده “بدون توجه”(don’t care) هستند. به عنوان مثال، ALUop از کد گذاری 11 استفاده ای نمی کند، بنابراین جدول درستی می تواند ترجیحاً شامل ورودیهای 1x و x1 به جای 10 و 01 باشد.طراحی کنترل ALU

اسلاید 285: 3/13/2018cpeg323-04FTopic0.ppt285ALUOpALUOp0ALUOp1Operation 2Operation 0Operation 1Operation F (5-0)F3F2F1F0بلاک کنترل ALUبلاک کنترلی ALU سه بیت کنترلی ALU را مبنی بر کد تابعی و بیتهای ALUop تولید می کند.

اسلاید 286: 3/13/2018cpeg323-04FTopic0.ppt286چهره قالب دستورالعملهای MIPSField0rsrtrd shamt functBit positions 31-26 25-21 20-16 15-11 10-6 5-0 a.R-type instructionField 35 or 43rsrt addressBit positions 31-26 25-21 20-16 10-6 b.Load or store instructionField4rsrt addressBit positions 31-26 25-21 20-16 15-0 c.branch instruction

اسلاید 287: 3/13/2018cpeg323-04FTopic0.ppt287فیلد op ، همچنین معروف به opcode، همیشه در بیتهای 26 تا 31 قرار می گیرد. ما به این فیلد به صورت Op[5-0] اشاره می کنیم.دو رجیستر خواندن همیشه با فیلدهای rs و rt در موقعیت 21 تا 25 و 16 تا 20 مشخص می شوند. این مطلب برای دستورات ثباتی، انشعاب در صورت تساوی و ذخیره سازی صدق می کند.ثبات پایه برای دستورات load و store همیشه در موقعییتهای بیتی 21 تا 25 (rs) قرار دارد.16 بیت افست برای دستورات انشعاب در صورت تساوی، load و store همیشه در موقعیتهای 0 تا 15 قرار دارد.ثبات مقصد در یکی از این دو مکان است. برای دستورات load در بیتهای موقعیت 16 تا 20(rt) و در حالی که برای یک دستورالعمل ثباتی در موقعیتهای بیتی 11 تا 15(rt) است. بنابراین ما به افزودن یک مالتی پلکسر برای انتخاب اینکه کدام فیلد دستورالعمل به شماره رجیستر نوشتن اشاره می کند.cont’dچهره قالب دستورالعملهای MIPS

اسلاید 288: 3/13/2018cpeg323-04FTopic0.ppt288ALUAddALUresult0Mux1ReadaddressInstructinmemoryInstruction(31-0)PC4Readregister 1Readregister 2WriteregisterWritedataReaddata 1Readdata 20Mux1SignextendALUcontrolReadaddressWriteaddressWritedataReaddataDatamemoryAddZeroALUresult0Mux11Mux0MemReadInstruction(25-21)Instruction(20-16)Instruction(15-0)RegDstPCSrcMeWriteMemtoRegALUOp1632Shiftleft 2RegWriteInstruction(5-0)مسیر داده به همراه تمامی مالتی پلکسرها و تمامی خطوط کنترلی شناخته شده

اسلاید 289: 3/13/2018cpeg323-04FTopic0.ppt289 طراحی واحد کنترل برای اجرای دستورالعمل تک چرخه ای

اسلاید 290: 3/13/2018cpeg323-04FTopic0.ppt290عمل هر کدام از هفت سیگنال کنترلی. زمانیکه بیت کنترل (1) به سمت مالتی پلکسر هدایت شود، مالتی پلکسر ورودی متناظر با پایه 1 را انتخاب می کند. در غیر اینصورت در صورتی که بیت کنترل آزاد نگردد (0 باشد) مالتی پلکسر ورودی مربوط به پایه 0 را انتخاب می کند. به خاطر بسپارید که همه عناصر حالت دارای یک ورودی ساعت به عنوان یک ورودی ضمنی می باشد و ساعت به عنوان کنترل کننده نوشتن ها به کار می رود.

اسلاید 291: 3/13/2018cpeg323-04FTopic0.ppt291طراحی واحد کنترل0p50p0کنترلRegDstALUSrcALU0p1ALU0p00p40p30p20p1

اسلاید 292: 3/13/2018cpeg323-04FTopic0.ppt292MainControlop6ALUControl(Local)func26ALUopALUctr3RegDstALUSrc:

اسلاید 293: 3/13/2018cpeg323-04FTopic0.ppt293عملکرد کنترل برای پیاده سازی تک چرخه ای ساده کاملاً به وسیله جدول درستی تعیین می شود. نیمه بالای جدول ترکیب سیگنالهای ورودی که مرتبط با 4 کد عملیاتی (opcode) می باشد و تعیین کننده وضع خروجی کنترل هستند را به دست می دهد. (به خاطر داشته باشید که Op(0-5) مرتبط با بیتهای 26 تا 31 دستورالعمل است، که فیلد کد عمل(opcode) می باشند.) بخش پایین جدول خروجیها را به دست می دهد.

اسلاید 294: 3/13/2018cpeg323-04FTopic0.ppt294”جدول درستی”برای نوشتن ثباتیR-typeorilwswbeqjumpRegWrite111000op00 000000 110110 001110 101100 010000 0010 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<0>op<5>..op<5>..<0>op<5>..<0>op<5>..<0>op<5>..<0>op<5>..<0>R-typeorilwswbeqjumpRegWrite

اسلاید 295: 3/13/2018cpeg323-04FTopic0.ppt295PLAروشهای کنترل اصلیop<0>op<5>..op<5>..<0>op<5>..<0>op<5>..<0>op<5>..<0>op<5>..<0>R-typeorilwswbeqjumpRegWriteALUSrcMemtoRegMemWriteBranchJumpRegDstALUop<1>ALUop<0>

اسلاید 296: 3/13/2018cpeg323-04FTopic0.ppt296کنترل و مسیر داده ساده که برای اجرای دستورات پرش گسترش یافته است

اسلاید 297: 3/13/2018cpeg323-04FTopic0.ppt297پیاده سازی یک دستورالعمل چند چرخه ای

اسلاید 298: 3/13/2018cpeg323-04FTopic0.ppt298توضیحاتی از پیاده سازی تک چرخه ایدستورالعملهای ماشین ممکن است دارای طولهای متفاوت مسیر بحرانی باشنددستورالعمل Loadدستورات ممیز شناورروشهای آدرس دهی متفاوتزمان چرخه ساعت بوسیله بدترین مسیر بحرانی معین می شود.تکثیر FU ممکن است هزینه دار باشد.

اسلاید 299: 3/13/2018cpeg323-04FTopic0.ppt299چه چیزی باعث مشکل می شود زمانی کهCPI=1پردازشگر است طولانی بودن زمان چرخههمه دستورالعمل ها به اندازه کندترین دستور زمان می برندReal memory is not so nice as our idealized memorycannot always get the job done in one (short) cyclePCReg FileInst MemorymuxALUmuxPCInst MemorymuxALUData MemPCInst MemorycmpmuxReg FileReg FileArithmetic & LogicalLoadStoreBranchCritical PathsetupPCInst MemorymuxALUData MemmuxReg File

اسلاید 300: 3/13/2018cpeg323-04FTopic0.ppt300کاهش زمان چرخهCut combinational dependency graph and insert register / latchدرست همان کار رادر 2 چرخه سریع نسبت به آن که 1 چرخه کند بود انجام میدهد storage elementAcyclic CombinationalLogicstorage elementstorage elementAcyclic CombinationalLogic (A)storage elementstorage elementAcyclic CombinationalLogic (B)=>

اسلاید 301: 3/13/2018cpeg323-04FTopic0.ppt301محدودیت های بنیادی زمان چرخهPCNext PCOperandFetchExecReg. FileMemAccessInstructionFetchResult StoreALUctrRegDstALUSrcnPC_selRegWrMemWrMemRdControl

اسلاید 302: 3/13/2018cpeg323-04FTopic0.ppt302تقسیم بندی CPI=1 مسیردادهاضافه کردن ثباتها بین کوچکترین مرحله هاPCNext PCOperandFetchExecReg. FileMemAccessInstructionFetchResult StoreALUctrRegDstALUSrcMemWrnPC_selRegWrMemWrMemRdامکان انجام دستورالعمل در چند چرخه

اسلاید 303: 3/13/2018cpeg323-04FTopic0.ppt303مثال مسیر داده چند چرخه ایثباتهای اضافی اضافه میشوند برای ذخیره کردن مقادیر بین مراحلPCNext PCOperandFetchExtALUReg. FileMemAccessInstructionFetchResult StoreALUctrRegDstALUSrcnPC_selRegWrMemWrMemRdIRABALU_OUTMRegFileMemToReg

اسلاید 304: 3/13/2018cpeg323-04FTopic0.ppt304خصوصیاتیک واحد حافظه یکسان برای دستورات و داده ها استفاده می شود.یک ثبات دستورالعمل به کار می رود.(IR)یک ALU واحد

اسلاید 305: 3/13/2018cpeg323-04FTopic0.ppt305R-type دستورالعمل های (add, sub, . . .)inst Logical Register TransfersADDUR[rd] <– R[rs] + R[rt]; PC <– PC + 4inst Physical Register TransfersIR <– MEM[pc]ADDUA<– R[rs]; B <– R[rt]S <– A + BR[rd] <– S; PC <– PC + 4ExecReg. FileMemAccessABMRegFilePCNext PCIRInst. MemALU_OUT

اسلاید 306: 3/13/2018cpeg323-04FTopic0.ppt306دستورالعمل های فوری منطقیinst Logical Register TransfersADDUR[rt] <– R[rs] OR sx(Im16); PC <– PC + 4inst Physical Register TransfersIR <– MEM[pc]ADDUA<– R[rs]; B <– R[rt]S <– A or SignExt(Im16)R[rt] <– S; PC <– PC + 4ExecReg. FileMemAccessABMRegFilePCNext PCIRInst. MemALU_OUT

اسلاید 307: 3/13/2018cpeg323-04FTopic0.ppt307دستورالعمل بارکردنinst انتقال دادن منطقی ثباتLWR[rt] <– MEM(R[rs] + sx(Im16); PC <– PC + 4inst انتقال دادن فیزیکی ثباتIR <– MEM[pc]LWA<– R[rs]; B <– R[rt]S <– A + SignEx(Im16)M <– MEM[S]R[rd] <– M; PC <– PC + 4ExecReg. FileMemAccessABMRegFilePCNext PCIRInst. MemALU_OUT

اسلاید 308: 3/13/2018cpeg323-04FTopic0.ppt308دستورالعمل ذخیره کردنinst انتقال منطقی ثباتSWMEM(R[rs] + sx(Im16) <– R[rt];PC <– PC + 4inst انتقال فیزیکی ثباتIR <– MEM[pc]SWA<– R[rs]; B <– R[rt]S <– A + SignEx(Im16); MEM[S] <– BPC <– PC + 4ExecReg. FileMemAccessABMRegFilePCNext PCIRInst. MemALU_OUT

اسلاید 309: 3/13/2018cpeg323-04FTopic0.ppt309دستورالعمل انشعابinst انتقال منطقی ثباتBEQif R[rs] == R[rt] then PC <= PC + sx(Im16) || 00else PC <= PC + 4inst انتقال فیزیکی ثباتIR <– MEM[pc]A<– R[rs]; B <– R[rt]Eq =(A - B == 0)BEQ&EqPC <– PC + sx(Im16) || 00ExecReg. FileMemAccessABMRegFilePCNext PCIRInst. MemALU_OUT

اسلاید 310: 3/13/2018cpeg323-04FTopic0.ppt310مسیر داده چند چرخه ای (Figure 5.26, p.327) تفاوت های بین مسیر داده تکچرخه ای و چند چرخه اییک واحد حافظه تنها برای هر دو دستورالعمل و داده ها استفاده می شود

اسلاید 311: 3/13/2018cpeg323-04FTopic0.ppt311مسیر داده چند چرخه ای به همراه نمایش خطوط کنترلی

اسلاید 312: 3/13/2018cpeg323-04FTopic0.ppt312عمل سیگنالهای کنترلی 1 بیتی مشخص می باشد.اعمال سیگنالهای کنترلی

اسلاید 313: 3/13/2018cpeg323-04FTopic0.ppt313عمل سیگنالهای کنترلی 2 بیتی مشخص می باشد.اعمال سیگنالهای کنترلی

اسلاید 314: 3/13/2018cpeg323-04FTopic0.ppt314طرح ساعت زنیما نیاز به یک ثبات موقتی داریم زمانیکه:یک سیگنال در یک چرخه محاسبه و دریک چرخه دیگر استفاده می شود وورودیهای بلاکهای کاری (functional block) که این سیگنال را تولید می کنند می توانند قبل از اینکه این سیگنال در عناصر حالت ذخیره شود تغییر کنند.مثال: ما به IR نیاز داریمخروجی ALUثباتهای A و B به ورودیهای ALU

اسلاید 315: 3/13/2018cpeg323-04FTopic0.ppt315مراحل پایه محاسبه دستورالعمل.1IF مرحله:واکشی دستورالعمل IR= Memory [PC] PC + 4 PC= 2.ID stepکد برداری و واکشی عملوندهاA= ثبات[IR(25-21)];B=ثبات [IR(20-16)];Target=PC + (علامت گسترش یافته [IR(15-0)<< 2];یادداشت:ما می خواهیم عملیات را“خوشبینانه“انجام دهیم. those are common to all, or at least do no hurt any.

اسلاید 316: 3/13/2018cpeg323-04FTopic0.ppt316مراحل پایه محاسبه دستورالعمل3. EX محاسبه . محاسبه آدرس حافظه ، یا تکمیل انشعابنمونه: :ارجاع به حافظهخروجی ALU= A + sign-extend [IR(15-0)]; دستورالعمل های ALU: ALUخروجی= A op B;انشعاب:If (A ==B) PC= Target;(cont’d)

اسلاید 317: 3/13/2018cpeg323-04FTopic0.ppt317مراحل پایه محاسبه دستورالعمل4.MEMدسترسی به حافظه یا تکمیل دستورالعمل R__TYPEنمونه:ارجاع به حافظه:MDR = Memory [ALUoutput];orMemory[ALUoutput] = B;دستورالعمل های ALU:Reg[IR(5-11)] = ALUoutput; : WB .5 بازنوشتنReg[IR(20-16)] =MDR(cont’d)

اسلاید 318: 3/13/2018cpeg323-04FTopic0.ppt318کنترل برای PCبعدیPCبعدی تعیین می شود به وسیله:زمانی که PCبرای واکشی دستورالعمل ترتیبی یک واحد افزوده شده خروجیALUیک منبع است.ثبات هدف ، منبع است زمانی که دستورالعمل داده شده یک انشعاب شرطی باشد ما همچنین به یک سیگنال برای نوشتن در ثبات نیاز خواهیم داشت که به آنTarget Writeگفته می شود.PCSource:یک سیگنال کنترلی 2 بیتی برای بالا

اسلاید 319: 3/13/2018cpeg323-04FTopic0.ppt319خلاصه ای از مراحلی که برای اجرای هر نوع دستورالعمل انجام می شود.تعداد مراحل اجرای دستورالعمل ها 3 تا 5 مرحله است .دو مرحله اول مستقل از نوع دستورالعمل هستند .بعد از این مراحل ، یک دستورالعمل از 1 تا حداکثر 3 چرخه برای تکمیل شدن زمان می برد که این وابسته به نوع دستورالعمل است

اسلاید 320: 3/13/2018cpeg323-04FTopic0.ppt320عمل ناشی از تنظیم هریک از سیگنال های کنترلی 1 بیتیعمل ناشی از تنظیم هریک از سیگنال های کنترلی 2 بیتیکنترل کردن pcبعدی

اسلاید 321: 3/13/2018cpeg323-04FTopic0.ppt321شکل5.28:مسیر داده و سیگنال های کنترلی کامل برای چند چرخه ای(همراه پرش)

اسلاید 322: 3/13/2018cpeg323-04FTopic0.ppt322روشهای طراحی کنترل برای اجرای دستورات چند چرخه ایمبنا قرار دادن ماشین با حالات محدودمبنا قرار دادن Microprogramming

اسلاید 323: 3/13/2018cpeg323-04FTopic0.ppt323ساختارFSMمراحل:Specify a set of output to be assertedAssume signals not asserted are left disserted by defaultکنترل کردن تسهیم کننده ها همیشه صراحتا مشخص شده استتابع حالت بعدیControl StateNext StateLogicOutput Logicinputs (conditions)outputs (control sugbaks)

اسلاید 324: 3/13/2018cpeg323-04FTopic0.ppt324دید سطح بالایی از کنترل ماشین حالات متناهی( FSM)

اسلاید 325: 3/13/2018cpeg323-04FTopic0.ppt325دستورالعمل واکشی و کدبرداری قسمت یکسانی برای همه دستورالعمل ها هستند(شکل 5.37_جدید 5.32)

اسلاید 326: 3/13/2018cpeg323-04FTopic0.ppt326دستورالعمل های R_typeمی توانند با یک FSM 2مرحله ای ساده پیاده سازی شوند New 5.32

اسلاید 327: 3/13/2018cpeg323-04FTopic0.ppt327FSMبرای کنترل کردن دستورالعمل های ارجاع به حافظه 4 مرحله دارد(شکل 5.38 _جدید 5.33

اسلاید 328: 3/13/2018cpeg323-04FTopic0.ppt328دستورالعمل انشعاب فقط به یک ماشین تک مرحله ای نیاز دارد(شکل5.40 جدید 5.35)New 5.32

اسلاید 329: 3/13/2018cpeg323-04FTopic0.ppt329The jump instruction requires a single state that assertstwo control signals to write the PC with the lower 26 bitsof the instruction register shifted left two bits. (Figure 5.41 – new 5.36))New 5.32

اسلاید 330: 3/13/2018cpeg323-04FTopic0.ppt330واحد کنترل ماشین حالت متناهی به صورت کامل بر روی مسیرداده ها (Figure 5.42 – New 5.38)

اسلاید 331: 3/13/2018cpeg323-04FTopic0.ppt331کنترل اختصاصی برای چند چرخه ایIR <= MEM[PC]R-typeA <= R[rs]B <= R[rt]S <= A fun BR[rd] <= SPC <= PC + 4S <= A or SXR[rt] <= SPC <= PC + 4ORiS <= A + SXR[rt] <= MPC <= PC + 4M <= MEM[S]LWS <= A + SXMEM[S] <= BPC <= PC + 4BEQ & EqualBEQ & ~EqualPC <= PC + 4PC <= PC + SX || 00SW“instruction fetch”“decode / operand fetch”ExecuteMemoryAccessWrite-back

اسلاید 332: 3/13/2018cpeg323-04FTopic0.ppt332Mapping RTs to Control PointsIR <= MEM[PC]R-typeA <= R[rs]B <= R[rt]S <= A fun BR[rd] <= SPC <= PC + 4S <= A or SXR[rt] <= SPC <= PC + 4ORiS <= A + SXR[rt] <= MPC <= PC + 4M <= MEM[S]LWS <= A + SXMEM[S] <= BPC <= PC + 4BEQ & EqualBEQ & ~EqualPC <= PC + 4PC <= PC + SX || 00SW“instruction fetch”“decode”ExecuteMemoryWrite-backimem_rd, IRenALUfun, SenRegDst, RegWr,PCenAen, Ben

اسلاید 333: 3/13/2018cpeg323-04FTopic0.ppt333تخصیص حالاتIR <= MEM[PC]R-typeA <= R[rs]B <= R[rt]S <= A fun BR[rd] <= SPC <= PC + 4S <= A or SXR[rt] <= SPC <= PC + 4ORiS <= A + SXR[rt] <= MPC <= PC + 4M <= MEM[S]LWS <= A + SXMEM[S] <= BPC <= PC + 4BEQ & EqualBEQ & ~EqualPC <= PC + 4PC <= PC + SX || 00SW“instruction fetch”“decode”ExecuteMemoryWrite-back0000000101000101011001111000100110100011001010111100

اسلاید 334: 3/13/2018cpeg323-04FTopic0.ppt334اجرای دستگاه کنترل ماشین حالت متناهی

اسلاید 335: 3/13/2018cpeg323-04FTopic0.ppt335تعادل منطقی برای خروجی های سیگنال کنترلی

اسلاید 336: 3/13/2018cpeg323-04FTopic0.ppt336تعادل منطقی برای خروجی های حالت بعدی

اسلاید 337: 3/13/2018cpeg323-04FTopic0.ppt337سوال: چه طور میشود CPIرا از روی FSAتعیین کرد؟FSAچه طور انجام می شود؟

اسلاید 338: 3/13/2018cpeg323-04FTopic0.ppt338Finite state machine controllers are typically implemented using a block of combinational logic and a register to hold the current state.

اسلاید 339: 3/13/2018cpeg323-04FTopic0.ppt339تفسیر”دستورالعملMacro“حافظه اصلیواحد محاسبهکنترل حافظهCPUADDSUBANDDATA...برنامه کاربر به اضافه داده هااین می تواند تغییر کندو ترتیب microe.g., Fetch Calc Operand Addr Fetch Operand(s) Calculate Save Answer(s)یکی از اینها طراحی شده در یکی از اینها

اسلاید 340: 3/13/2018cpeg323-04FTopic0.ppt340

اسلاید 341: 3/13/2018cpeg323-04FTopic0.ppt341واکشی برنامه میکرو

اسلاید 342: 3/13/2018cpeg323-04FTopic0.ppt342دستورالعمل ارجاع به حافظه برنامه میکرو

اسلاید 343: 3/13/2018cpeg323-04FTopic0.ppt343R-type برنامه میکرو

اسلاید 344: 3/13/2018cpeg323-04FTopic0.ppt344انشعاب برنامه میکرو

اسلاید 345: 3/13/2018cpeg323-04FTopic0.ppt345پرش برنامه میکرو

اسلاید 346: 3/13/2018cpeg323-04FTopic0.ppt346همه میکرو کد

اسلاید 347: 3/13/2018cpeg323-04FTopic0.ppt347فصل ششم خط لوله ای کردن و معماری خط لوله ای شده

اسلاید 348: 3/13/2018cpeg323-04FTopic0.ppt348خط لوله ای خط لوله ای چیست – مفاهیم پایه مسیر داده خط لوله ای شده یک بررسی موردی از MIPS کنترل خط لوله رفع hazard در خط لوله

اسلاید 349: 3/13/2018cpeg323-04FTopic0.ppt349مفاهیم پایهخط لوله ای

اسلاید 350: خط لوله ای کردن، معمول استخط لوله ای کردن، روشی را برای اجرای همزمان چند دستورالعمل بوجود می آورد.مثال شستن لباسهاAnn,Brian,Dave,Cathy هر کدام توده ای از لباس را برای شستن، خشک کردن و تا کردن در اختیار دارند.شستن 30 دقیقه زمان می برد.خشک کن 40 دقیقه زمان می برد.تا کردن 20 دقیقه زمان نیاز دارد.ABCD

اسلاید 351: شستن ترتیبی شستن ترتیبی 4 توده لباس، 6 ساعت زمان می برد. اگر آنها خط لوله ای را فرا گرفته بودند، چقدر طول می کشید؟ ABCD3040203040203040203040206 عصر7891011نیمه شبTaskOrderTime

اسلاید 352: شستن خط لوله ای شده: شستن خط لوله ای 4 توده لباس،3 ساعت و نیم زمان می برد.ABCD6 عصر7891011نیمه شبTaskOrderTime304040404020

اسلاید 353: دروس خط لوله ای کردن خط لوله ای به زمان تاخیر یک کار کمکی نمی کند، بلکه توان عملیاتی کل بار کاری را بهبود می بخشد. نرخ خط لوله محدود به کندترین مرحله است. اجرای همزمان چند کار نیاز به منابع متفاوتی دارد. پتانسیل تسریع = تعداد مراحل خط لوله طول نامتوازن مراحل خط لوله باعث کاهش تسریع می شود. زمان مصرفی برای پر شدن و خالی شدن خط لوله باعث کاهش تسریع می شود.متوقف شدن به خاطر وابستگی هاSTALL))ABCD6 PM789TaskOrderTime304040404020

اسلاید 354: 3/13/2018cpeg323-04FTopic0.ppt354مفهوم پایهخط لوله: چندین دستورالعمل به طور همزمان در حال اجرایند.خط لوله به بخشها یا قطعات تقسیم می شود.چرخه ماشین:زمان مورد نیاز برای گذر از یک مرحلهچرخه ماشین بوسیله کندترین مرحله خط لوله معین می گردد.معمولا چرخه ماشین = چرخه ساعت

اسلاید 355: 3/13/2018cpeg323-04FTopic0.ppt355در یک ماشین خط لوله ای شده کاملا متوازن:زمان = در یک ماشین معمولی(1) درست نیست،زمان مراحل برابر نیست، یک سربار وجود دارد.اما می تواند تا اختلاف 10% به (1) نزدیک شود. زمان غیر خط لوله ایتعداد بخشهای خط لوله(1)

اسلاید 356: 3/13/2018cpeg323-04FTopic0.ppt356خط لوله ای کردن به عنوان یک تکنیک معماریبطور کلی، تقریبا برای کاربر نامحسوس است.Scalar pipelined machine vs. vector machine

اسلاید 357: 3/13/2018cpeg323-04FTopic0.ppt357توان عملیاتی خط لوله ای :بنابراین خط لوله ای کردن توان عملیاتی(ظرفیت پذیرش) را افزایش می دهد، اما زمان اجرای هر دستورالعمل بدون تغییر می ماند.نرخ ساعت یک ماشین خط لوله ای شده محدود شده است به:latch timeclock skewزمان تاخیر مورد نیاز برای انتشار سیگنال ساعت در یک تراشهتعداد دستورالعملهای کامل شدهچرخه

اسلاید 358: 3/13/2018cpeg323-04FTopic0.ppt358محدودیتهای کارایی در یک خط لولهنمی توان از کندترین مرحله انتظار سرعت داشتپیچیدگیها در واقعیت، زمانهای پردازش متفاوت برای مراحل مختلف، فعل و انفعالات/وابستگیها بین مراحل – ممکن است باعث وابستگی داده ای شود. (پویا)

اسلاید 359: 3/13/2018cpeg323-04FTopic0.ppt359STAGE 1 LACHESمنطق ترکیبیمنطق ترکیبیمنطق ترکیبیSTAGE 2 LACHESSTAGE 3 LACHESSTAGE n LACHESفاکتورهای مهم در مسیر لوله(مدت چرخه) ، تاخیر latch و clock skew(b)

اسلاید 360: 3/13/2018cpeg323-04FTopic0.ppt360رویهم اندازی(Overlap) در برابر خط لوله ایخط لوله ایارتباط قوی زیر بخشها(sub functions)زمان پایه ثابت مرحلهارزیابی تابع پایه مستقلمشترکاتپیوند ضعیف زیر تابع هازمان متغیر مرحله ارزیابی وابستگی بین تابعی

اسلاید 361: 3/13/2018cpeg323-04FTopic0.ppt361حافظه معمولپردازشگر محاسباتی(stage 1)ورودی/خروجی پردازشگر(stage 2)1Task 1 Task 2 Task 1 Task 3 . . .2Task 2 Task 1 Task 3 Task 1 Time=Idle timeCPU/I/O رویهم اندازی

اسلاید 362: 3/13/2018cpeg323-04FTopic0.ppt362خط لوله پویا و ایستاایستا:تنها ارزیابی های مکرر همان کار با داده های متفاوت انجام می شود- no dynamic data dependencies between initiations طرح ثابت آغاز هاپویا:پویا متضاد است با ایستا(اسنکرون)(روی هم افتادگی)مثالی از خط لوله ایستا:جمع ممیز شناور در خط لوله

اسلاید 363: 3/13/2018cpeg323-04FTopic0.ppt363یک تابع واحدلوله_ چند تابع لولهیک تابع واحد لولهمثال:جمع لولهچند تابع لولهمثاللوله حسابیبردار لولهکنترل لوله قابل برنامه ریزی(دستورالعمل برداری وظیفه و ورودی ها را تعیین می کند )

اسلاید 364: 3/13/2018cpeg323-04FTopic0.ppt364MIPS خط لولهمراحل خط لوله:واکشیID (کد برداری +واکشی ثبات ها)محاسبات دستیابی به حافظهباز نویسیدر هر چرخه ساعت دستورالعمل دیگری واکشی شده و اجرا در 5 مرحله آغاز می شود.اگر یک دستورالعمل شروع شوددر هرچرخه ساعت started every clock cycle, the performance will be five times that of a machine that is not pipelined.

اسلاید 365: 3/13/2018cpeg323-04FTopic0.ppt365MIPS خط لوله نمایش دیگر

اسلاید 366: نمایش منقوش خط لوله با پاسخ دادن به سوالات مشابه می تواند کمک کندچند چرخه زمان می برد که این کد اجرا شود؟ALU در طول 4 چرخه چه کاری انجام می دهد؟آیا 2 دستورالعمل سعی در استفاده همزمان از یک منبع مشترک دارند؟Instr.Time (clock cycles)Inst 0Inst 1ALUImRegDmRegALUImRegDmReg

اسلاید 367: چرا خط لوله ای؟فرض کنید 100 دستورالعمل را می خواهیم اجرا کنیمماشین تک چرخه ای که یک چرخه ساعت دارد 45NS زمان می خواهدماشین چند چرخه ای و خط لوله ای که چندچرخه زمان می برند 10NSزمان می خواهدCPI ماشین چند چرخه ای 4.6استماشین تک چرخه ای45 ns/cycle x 1 CPI x 100 inst = 4500 nsماشین چند چرخه ای10 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میزان تسریع خط لوله ایده آل و ماشین تک چرخه ای4500 ns / 1040 ns = 4.33What has not yet been considered?

اسلاید 368: تک چرخه ای_ چند چرخه ای _خط لوله ای ClkCycle 1روش چند چرخه ایIfetchRegExecMemWrCycle 2Cycle 3Cycle 4Cycle 5Cycle 6Cycle 7Cycle 8Cycle 9Cycle 10LoadIfetchRegExecMemWrIfetchRegExecMemLoadStoreروش خط لوله ایIfetchRegExecMemWrStoreClkروش تک چرخه ایLoadStoreWasteIfetchR-typeIfetchRegExecMemWrR-typeCycle 1Cycle 2

اسلاید 369: چرا خط لوله؟ برای اینکه منابع را در اینجا داریم!Instr.OrderTime (clock cycles)Inst 0Inst 1Inst 2Inst 4Inst 3ALUImRegDmRegALUImRegDmRegALUImRegDmRegALUImRegDmRegALUImRegDmReg

اسلاید 370: آیا خط لوله می تواند برای ما مشکل ایجاد کند؟بله:هزاردهای خط لوله ای هزاردهای ساختاری:تلاش برای استفاده از یک منبع یکسان برای 2 کار متفاوت در یک زمانمثال:سعی در خواندن همزمان دو دستورالعمل از یک حافظههزاردهای داده ای: تلاش برای استفاده از یک آیتم قبل از اینکه آماده شوددستورالعمل وابسته است به نتیجه دستورالعمل قبلی که هنوز در خط لوله استadd r1, r2, r3sub r4, r2, r1هزاردهای کنترلی: تلاش برای ظاهر کردن یک تصمیم قبل از اینکه شرط اجرا شوددستورالعمل های انشعابbeq r1, loopadd r1, r2, r3

اسلاید 371: 3/13/2018cpeg323-04FTopic0.ppt371همیشه میتوان هزاردها را با انتظار رفع کردکنترل خط لوله ای باید هزارد را کشف کندبرداشتن عمل(تاخیر عمل) می تواند هزارد را حل کند

اسلاید 372: Memحافظه تک یک هزارد ساختاری استInstr.OrderTime (clock cycles)LoadInstr 1Instr 2Instr 3Instr 4ALUMemRegMemRegALUMemRegMemRegALUMemRegMemRegALURegMemRegALUMemRegMemRegتشخیص در این نمونه آسان است(نیمه روشن سمت راست یعنی خواندن و نیمه چپ یعنی نوشتن)

اسلاید 373: هزاردهای ساختاری کارایی را محدود می کندمثال:اگر 1.3 حافظه در هر دستورالعمل دستیابی شود و فقط یک حافظه مورد دستیابی قرار می گیرد در هر چرخه میانگینCPI = 1.3منبع بیشتر از 100%مورد استفاده واقع شدهراه حل اول: جدا کردن حافظه داده و دستورالعمل از یکدیگرراه حل دوم: اجزه دهیم حافظه بیش از یک خواندن و نوشتن در یک چرخه انجام دهدراه حل سوم: توقف

اسلاید 374: توقف:تا زمانی که تصمیم مشخص شودIts possible to move up decision to 2nd stage by adding hardware to check registers as being readبرخورد :هر دستورالعمل انشعاب دو چرخه ساعت زمان می برد=>کند شدن راه حل های هزارد کنترلیInstr.OrderAddBeqLoadALUMemRegMemRegALUMemRegMemRegALURegMemRegMem

اسلاید 375: پیشگویی کردن:یک مسیر حدس زدن بعد تهیه پشتیبان ذ اگر اشتباه بودPredict not takenبرخورد: هر دستورالعمل انشعاب اگر درست باشد یک چرخه ساعت و اگر اشتباه باشد 2 چرخه زمان می برد(50% موارد درست است)More dynamic scheme: history of 1 branch (­ 90%)راه حل های هزارد کنترلیInstr.OrderTime (clock cycles)AddBeqLoadALUMemRegMemRegALUMemRegMemRegMemALURegMemReg

اسلاید 376: دوباره تعریف کردن رفتار انشعاب(اتفاق می افتد بعد از دستورالعمل بعدی) “انشعاب به تاخیر افتاده”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راه حل های هزارد کنترلیInstr.OrderTime (clock cycles)AddBeqMiscALUMemRegMemRegALUMemRegMemRegMemALURegMemRegLoadMemALURegMemReg

اسلاید 377: هزاردهای داده ای روی r1add r1 ,r2,r3sub r4, r1 ,r3and r6, r1 ,r7or r8, r1 ,r9xor r10, r1 ,r11مشکل:r1نمی تواند به وسیله دستورالعمل های دیگر خوانده شود قبل از اینکه به وسیله add نوشته شود

اسلاید 378: وابستگی های عقب افتاده در این زمان هزاردها هستند هزارد داده ای روی:r1Instr.OrderTime (clock cycles)add r1,r2,r3sub r4,r1,r3and r6,r1,r7or r8,r1,r9xor r10,r1,r11IFID/RFEXMEMWBALUImRegDmRegALUImRegDmRegALUImRegDmRegImALURegDmRegALUImRegDmReg

اسلاید 379: “پیش رو” نتیجه از یک مرحله برای دیگری “or” بسیار خوب اگر که تعریف نوشتن/خواندن درست استراه حل هزارد داده ای:Instr.OrderTime (clock cycles)add r1,r2,r3sub r4,r1,r3and r6,r1,r7or r8,r1,r9xor r10,r1,r11IFID/RFEXMEMWBALUImRegDmRegALUImRegDmRegALUImRegDmRegImALURegDmRegALUImRegDmReg

اسلاید 380: وابستگی های به جا مانده از قبل هزارد هستندنمی توان با ارسال) (Forwardingاین مسئله را حل کرد؟باید دستورالعمل وابسته به بارگذاری را توقف /تاخیر دهیم Forwarding (یاگذشتن): در مورد بار کردن چی؟Time (clock cycles)lw r1,0(r2)sub r4,r1,r3IFID/RFEXMEMWBALUImRegDmRegALUImRegDmReg

اسلاید 381: 3/13/2018cpeg323-04FTopic0.ppt381طراحی یک مسیر داده خط لوله ای شده

اسلاید 382: 3/13/2018cpeg323-04FTopic0.ppt382خط لوله ای کردن دستورالعمل بارکردن5 تا واحد تابعی مستقل در مسیر داده خط لوله ای هستند.ًًٌٍ - حافظه دستورالعمل برای مرحله واکشی- خواندن از بانک ثباتی برای مرحله(bus A and busB) Reg/Dec ALU - برای مرحله اجرا- حافظه داده برای مرحله دسترسی به حافظه- نوشتن بر بانک ثباتی برای مرحله (bus W) Wr

اسلاید 383: 3/13/2018cpeg323-04FTopic0.ppt3834 مرحله برای R-typeواکشی:واکشی دستورالعمل - واکشی دستورالعمل از حافظه دستورالعمل - جدید کردنPC Reg/Dec:واکشی ثباتها و کد برداری دسترالعمل ها Exec :عمل کردن ALUبر روی 2 تا ثبات عملوند Wr : باز نویسی خروجی ALUبر روی بانک ثباتی

اسلاید 384: 3/13/2018cpeg323-04FTopic0.ppt384خط لوله ای کردن دستورالعمل های R-typeوLoadما در خط لوله ای تضاد داریم یا هزارد های ساختاری - دو دستورالعمل سعی در نوشتن در بانک ثباتی به صورت همزمان دارند!- تنها نوشتن یک پورت

اسلاید 385: 3/13/2018cpeg323-04FTopic0.ppt385مشاهدات مهمهر واحد کاری تنها یک بار برای هر دستورالعمل می تواند استفاده شود- هر واحد کاری باید در همان مرحله برای همه دستورالعمل ها استفاده شود:- در دستورالعمل Load نوشتن در بانک ثباتی در مرحله پنجم انجام می شود - در دستورالعملR-type نوشتن در بانک ثباتی در مرحله چهارم انجام می شود 2 راه حل برای هزارد خط لوله ای وجود دارد

اسلاید 386: 3/13/2018cpeg323-04FTopic0.ppt386راه حل اول :وارد کردن“حباب“در خط لولهوارد کردن حباب در خط لوله برای مانع شدن از دو نوشتن همزمان در یک چرخه- منطق کنترل می تواند پیچیده شود. - از دست دادن واکشی دستورالعمل و فرصت انتشار.هیچ دستورالعملی در چرخه 6 شروع نمی شود

اسلاید 387: 3/13/2018cpeg323-04FTopic0.ppt387راه حل دوم : تأ خیر نوشتن R-typeبه وسیله یک چرخهتأ خیر نوشتن R-typeبه وسیله یک چرخه - حال می توان نوشتن دستورالعمل های R-type را در مرحله پنجم انجام داد - مرحله دستیابی به حافظه یک مرحله بلااستتفاده است:هیچ چیزی در آنجا انجام نمی شود.

اسلاید 388: 3/13/2018cpeg323-04FTopic0.ppt388مسیر داده تک چرخه ای

اسلاید 389: 3/13/2018cpeg323-04FTopic0.ppt389نسخه خط لوله ای شده مسیر داده

اسلاید 390: 3/13/2018cpeg323-04FTopic0.ppt390IF:اولین مرحله لوله دستورالعمل بارکردن

اسلاید 391: 3/13/2018cpeg323-04FTopic0.ppt391ID :دومین مرحله لوله دستورالعمل بارکردن

اسلاید 392: 3/13/2018cpeg323-04FTopic0.ppt392:EXسومین مرحله لوله دستورالعمل بارکردن

اسلاید 393: 3/13/2018cpeg323-04FTopic0.ppt393MEM: چهارمین مرحله لوله دستورالعمل بارکردن

اسلاید 394: 3/13/2018cpeg323-04FTopic0.ppt394WB :پنجمین مرحله لوله دستورالعمل بارکردن

اسلاید 395: 3/13/2018cpeg323-04FTopic0.ppt395IF:اولین مرحله لوله دستورالعمل R-type

اسلاید 396: 3/13/2018cpeg323-04FTopic0.ppt396ID:دومین مرحله لوله دستورالعمل R-type

اسلاید 397: 3/13/2018cpeg323-04FTopic0.ppt397EX:سومین مرحله لوله دستورالعمل R-type

اسلاید 398: 3/13/2018cpeg323-04FTopic0.ppt398MEM:چهارمین مرحله لوله دستورالعمل R-type

اسلاید 399: 3/13/2018cpeg323-04FTopic0.ppt399WB:پنجمین مرحله لوله دستورالعمل R-type

اسلاید 400: 3/13/2018cpeg323-04FTopic0.ppt400یک مثال برای روشن شدن خط لوله از زمانی که بیشتر دستورالعمل ها باهم در یک مسیر داده تک چرخه ای اجرا می شوند،این می تواند برای درک کردن مشکل باشد دنبال کردن کد زیر یک آزمون خواهد بود. lw $10, 20($1) sub $11, $2, $3

اسلاید 401: 3/13/2018cpeg323-04FTopic0.ppt401Clock 1

اسلاید 402: 3/13/2018cpeg323-04FTopic0.ppt402Clock 2

اسلاید 403: 3/13/2018cpeg323-04FTopic0.ppt403Clock 3

اسلاید 404: 3/13/2018cpeg323-04FTopic0.ppt404Clock 4

اسلاید 405: 3/13/2018cpeg323-04FTopic0.ppt405Clock 5

اسلاید 406: 3/13/2018cpeg323-04FTopic0.ppt406خلاصه:خط لوله ای کردنچه چیزی آن را آسان می سازد؟همه دستورالعمل هایی که طول یکسان دارندفقطیک تعداد کمی از قالب های دستورالعملعملوندهای حافظه تنها در بارکردن و ذخیره سازی ظاهر می شوند چه چیزی آن را سخت می سازد؟هزاردهای سختاری:فرض کنید ما فقط یک حافظه داریمهزاردهای کنترلی:ما باید نگران دستورالعمل های انشعاب باشیمهزاردهای داده ای:یک دستورالعمل وابسته به دستورالعمل های قبلی استخط لوله ای کردن یک مفهوم بنیادی استچندین مرحله استفاده می شود برای جدا کردن مراحلپردازشگرهای جدید واقعآ آن را سخت می کننداستثنا گردانیسعی کردن برای افزایش کارایی با یک اجرای نادرست و...

اسلاید 407: 3/13/2018cpeg323-04FTopic0.ppt407کنترل مسیر داده خط لوله ای شده

اسلاید 408: 3/13/2018cpeg323-04FTopic0.ppt408مسیر داده خط لوله ای شده با سیگنال های کنترلی

اسلاید 409: 3/13/2018cpeg323-04FTopic0.ppt409فراخوانی:بیتهای کنترلی ALU

اسلاید 410: 3/13/2018cpeg323-04FTopic0.ppt410مقادیر خطوط کنترلی برای 3 مرحله آخر خط لوله

اسلاید 411: 3/13/2018cpeg323-04FTopic0.ppt411مسیر داده خط لوله ای شده با سیگنال های کنترلی

اسلاید 412: 3/13/2018cpeg323-04FTopic0.ppt412یک مثال برای روشن شدن مسئله کنترل خط لولهاجازه بدهید ببینیم چه اتفاقی برای این خط لوله در برنامه زیر می افتد lw $10, 20($1) sub $11, $2, $3and $12, $4, $5or $13, $6, $7add $14, $8, $9 این کد هیچ هزارد داده ای ،ساختاری و کنترلی ندارد

اسلاید 413: 3/13/2018cpeg323-04FTopic0.ppt413

اسلاید 414: 3/13/2018cpeg323-04FTopic0.ppt414

اسلاید 415: 3/13/2018cpeg323-04FTopic0.ppt415

اسلاید 416: 3/13/2018cpeg323-04FTopic0.ppt416

اسلاید 417: 3/13/2018cpeg323-04FTopic0.ppt417

اسلاید 418: 3/13/2018cpeg323-04FTopic0.ppt418هزاردهای داده ای مثال قبل به ما نشان می دهد که دستورالعمل های مستقل که از نتایج آنها در دستورات قبل استفاده نمی شود چطور اجرا شده اند.این یک نمونه با برنامه های واقعی نیست.اجازه دهید کدهای مرتب زیر زا دنبال کنیم.sub $2, $1, $3and $12, $2, $5or $13, $6, $2add $14, $2, $2sw $15, 100($2) 4 دستور آخر همگی به ثبات $2وابسته اند که در دستور اول تولید می شود. فرض کنید ثبات $2مقدار 10 را قبل از عمل تفریق دارد و مقدار 20 را بعد از آن دارد.

اسلاید 419: 3/13/2018cpeg323-04FTopic0.ppt419هزاردهای داده ای

اسلاید 420: 3/13/2018cpeg323-04FTopic0.ppt420هزاردهای داده ایراه حل ساده : کامپایلر هیچ دستورالعملی را بین دستورالعمل های sub-andوارد نمی کند هیچ یک از این دو دستورالعمل نه داده ای را تعریف می کنند و نه نتیجه ای را می نویسند. sub $2, $1, $3 nopnopand $12, $2, $5or $13, $6, $2add $14, $2, $2sw $15, 100($2)نتیجه : این کار انجام می شود اما 2 چرخه ساعت به هدر می رود (کارایی کاهش می یابد)

اسلاید 421: 3/13/2018cpeg323-04FTopic0.ppt421کشف هزاردهای داده ای و ارسال(forwading)این ممکن است که هزارد داده ای کشف شود و سپس مقدار مناسب را برای حل هزارد ارسال (Forwarding)کنیمزمانی که یک دستورالعمل سعی می کند یک ثبات را در مرحلهEX بخواند دستورالعمل زودتر دیگری قصد دارد در مرحله WBبنویسد.این یک نمونه هست بین دستورالعمل های sub-andزیر:این هزارد می تواند کشف شود به وسیله یک چک کردن سادهEX/MEM.RegisterRd = ID/EX.RegisterRs = $2

اسلاید 422: 3/13/2018cpeg323-04FTopic0.ppt422هزارد دیگر است بین دستورالعمل های SUB ORکشف هزاردهای داده ای و ارسال(forwading)این هزارد می تواند کشف شود به وسیله یک چک کردن ساده MEM/WB.RegisterRd = ID/EX.RegisterRt = $2هزارد داده ای بین دستورالعمل های sub-add وsub-sw وجود ندارد

اسلاید 423: 3/13/2018cpeg323-04FTopic0.ppt423خلاصه ای از وضعیت های هزارد داده ای

اسلاید 424: 3/13/2018cpeg323-04FTopic0.ppt424خلاصه ای از وضعیت های هزارد داده ایچه اتفاقی می افتد اگر$0به عنوان ثبات مقصد استفاده شود؟هیچ مقدار صفری ارسال نشودبنابراین کشف هزارد باید به صورت زیر دنبال شود.EX hazard:if (EX/MEM.RegWrand (EX/MEM.RegisterRd = 0)and (EX/MEM.RegisterRd = ID/EX.RegisterRs)) ForwardA=10if (EX/MEM.RegWrand (EX/MEM.RegisterRd = 0)and (EX/MEM.RegisterRd = ID/EX.RegisterRt)) ForwardB=10MEM hazard:if (MEM/WB.RegWrand (MEM/WB.RegisterRd = 0)and (MEM/WB.RegisterRd = ID/EX.RegisterRs)) ForwardA=10if (MEM/WB.RegWrand (MEM/WB.RegisterRd = 0)and (MEM/WB.RegisterRd = ID/EX.RegisterRt)) ForwardB=10

اسلاید 425: 3/13/2018cpeg323-04FTopic0.ppt425خلاصه ای از وضعیت های هزارد داده ایملاحظه کنید ترتیب زیر را :add $1, $1, $2add $1, $1, $3add $1, $1, $4. . . در این نمونه ،نتیجه از مرحله MEM ارسال شده برای اینکه نتیجه در مرحلهMEM نتیجه اخیر خیلی است نسبت به نتیجه در مرحله WB.MEM hazard:if (MEM/WB.RegWrand (MEM/WB.RegisterRd = 0)and (MEM/WB.RegisterRd = ID/EX.RegisterRs)) ForwardA=10if (MEM/WB.RegWrand (MEM/WB.RegisterRd = 0)and (MEM/WB.RegisterRd = ID/EX.RegisterRt)) ForwardB=10and (EX/MEM.RegisterRd = ID/EX.RegisterRs)and (EX/MEM.RegisterRd = ID/EX.RegisterRt)

اسلاید 426: 3/13/2018cpeg323-04FTopic0.ppt426مسیر داده خط لوله ای شده با ارسال(Forwarding)

اسلاید 427: 3/13/2018cpeg323-04FTopic0.ppt427هزاردهای داده ای و توقف

اسلاید 428: 3/13/2018cpeg323-04FTopic0.ppt428کشف هزاردکنترل برای کشف هزارد if (ID/EX.MemRd چک کن اگر دستورالعمل بار کردن است and ((ID/EX.RegisterRt = IF/ID.RegisterRs) or (ID/EX.RegisterRt = IF/ID.RegisterRt)))سپس:توقف خط لوله

اسلاید 429: 3/13/2018cpeg323-04FTopic0.ppt429هزاردهای داده ای و توقف

اسلاید 430: 3/13/2018cpeg323-04FTopic0.ppt430 مسیر داده خط لوله ای شده با(Forwarding)ارسال و واحد کشف هزارد

اسلاید 431: 3/13/2018cpeg323-04FTopic0.ppt431هزاردهای انشعاب

اسلاید 432: 3/13/2018cpeg323-04FTopic0.ppt432مسیر داده برای انشعاب(شامل HWخالى کردن قسمتى از حافظه خط لوله)

اسلاید 433: 3/13/2018cpeg323-04FTopic0.ppt433فصل هفتم طراحی سیستم حافظه

اسلاید 434: 3/13/2018cpeg323-04FTopic0.ppt434سلسله مراتب حافظه

اسلاید 435: 3/13/2018cpeg323-04FTopic0.ppt435 مشخصات برنامه ها و سازماندهی حافظهتجزیه و تحلیل Ram در برابر دستیابی ترتیبی: در مقایسه کارایی برهزینه و تکنولوژیهمجواری در الگوهای دسترسی به حافظه سلسله مراتب در طراحی حافظه حافظه نهانحافظه مجازی

اسلاید 436: 3/13/2018cpeg323-04FTopic0.ppt436حافظه با دستیابی تصادفیثبات دادهثبات آدرس0123N-2N-1سلولهای حافظه آدرسها{گذرگاه حافظه(به یا از پردازشگر)ساختار حافظه با دستیابی تصادفی (RAM)نکته:دارای زمان دستیابی ثابت

اسلاید 437: 3/13/2018cpeg323-04FTopic0.ppt437کارایی حافظهپهنای باند = تعداد بیتها بر ثانیه “که می توانند در دسترس قرار گیرند” که برابر است با: (bit/word) x (word/cycle) x (cycle/sec) بنابراین، بهبود پهنای باند؟ “گلوگاه ون نیومن”

اسلاید 438: 3/13/2018cpeg323-04FTopic0.ppt438چگونه می توان کارایی سیستم حافظه را بهبود بخشیدکاهش مدت چرخهافزایش اندازه کلمههمزمانیطراحی کارآمد حافظه

اسلاید 439: 3/13/2018cpeg323-04FTopic0.ppt439تقریباً تمام ریز پردازنده های با کارایی بالا در بازار از حافظه نهان استفاده می کنند.چرا معماری برداری (نوعى کامپيوتر بسيار بزرگ) Cray استفاده نشود؟حافظه نهان

اسلاید 440: 3/13/2018cpeg323-04FTopic0.ppt440پیشرفتها در تکنولوژی مدارات مجتمع نه فقط متاثر از DRAM ها، بلکه SRAM ها، هرینه حافظه نهان را بسیار کاهش داده اند. حافظه های نهان یکی از ایده های بسیار مهم در معماری کامپیوتر هستند زیرا آنها می توانند کارایی استفاده از حافظه را به طور اساسی بهبود بخشند. افزایش شکاف بین زمان چرخه DRAM و زمان چرخه پردازنده، که در شکل بعد نمایش داده شده است، یک انگیزه برای ایجاد حافظه نهان است. اگر ما بر آنیم که پردازنده ها با سرعتی که توانایی آن را دارند اجرا شوند، ما باید حافظه هایی با سرعت بیشتر برای فراهم نمودن داده داشته باشیم.[Joupi & Hennessy 91]حافظه نهان

اسلاید 441: 3/13/2018cpeg323-04FTopic0.ppt441 قانون مور – یک فرصت از دست رفته

اسلاید 442: 3/13/2018cpeg323-04FTopic0.ppt442

اسلاید 443: 3/13/2018cpeg323-04FTopic0.ppt443نهفتگی در یک سیستم واحدزمان دستیابی به حافظهزمان CPUنسبتTHE WALL

اسلاید 444: 3/13/2018cpeg323-04FTopic0.ppt444همجواری مراجع“مراجع برنامه تمایل دارند که به موقع در کنار هم قرار بگیرند.”

اسلاید 445: 3/13/2018cpeg323-04FTopic0.ppt445مکانهایی با احتما ل دستیابی بالا (زمان کوتاه) همجواری PC قاب پشته (محلی( نزدیک زیر روال ها داده های فعال

اسلاید 446: 3/13/2018cpeg323-04FTopic0.ppt446آدرس ارجاعاحتمال ارجاع

اسلاید 447: 3/13/2018cpeg323-04FTopic0.ppt447آدرس ارجاعاحتمال ارجاعمشکل: اغلب پیش بینی یک page size می شود که بزرگتر ازاندازه مورد نیاز باشد.

اسلاید 448: 3/13/2018cpeg323-04FTopic0.ppt448موفقیت حافظه های نهان که قبلا تشریح شد برگرفته از “خاصیت همجواری” است. خاصیت هجواری دارای دو جنبه است، temporal و spatial.در دوره های کوتاه زمانی، یک برنامه ارجاعها به حافظه خود را، به صورت غیر یکنواخت در فضای آدرس خود گسترش می دهد.که این بخشهای فضای آدرس در دوره های زمانی طولانی به صورت گسترده یکنواخت باقی می مانند.همجواری

اسلاید 449: 3/13/2018cpeg323-04FTopic0.ppt449اولین خاصیت، معروف به همجواری موقتی، یا همجواری زمانی، به این معنی است که: اطلاعاتی که در آینده نزدیک مورد نیازند احتمالاً هم اکنون در حال استفاده اند.این نوع رفتار می تواند از حلقه های برنامه که هر دوی داده و دستورالعمل مجدداً استفاده می شوند، انتظار رود.همجواری موقتی

اسلاید 450: 3/13/2018cpeg323-04FTopic0.ppt450دومین خاصیت، همجواری مکانی، به این معنی است که بخشهایی از فضای آدرس که در حال استفاده اند معمولاً شامل یک تعدادی از بخشهای همجوار یکتا از فضای آدرس می باشد. همجواری مکانی، سپس،به این معناست که محل ارجاع برنامه در آینده نزدیک، احتمالاً نزدیک محل ارجاع فعلی استهمجواری مکانی

اسلاید 451: 3/13/2018cpeg323-04FTopic0.ppt451این نوع رفتار با آگاهی معمولی از برنامه ها مورد انتظار است؛ بخشهای وابسته داده (متغیرها، آرایه ها) معمولاً با یکدیگر ذخیره می شوند، و دستورات بیشتر به صورت ترتیبی اجرا می شوند. تا زمانیکه حافظه نهان سگمنتهای اطلاعاتی را که اخیراً استفاده شده اند،میانگیر (در خود نگهداری)می کند،خاصیت همجواری اشاره دارد به اینکه اطلاعات مورد نیاز احتمالاً در حافظه نهان یافت می شود.[Smith82, p475]

اسلاید 452: 3/13/2018cpeg323-04FTopic0.ppt452اطلاعاتی که در آینده نزدیک مورد نیازند احتمالاً شامل اطلاعات رایجی هستند که هم اکنون در حال استفاده اند. (locality by time) و آن اطلاعاتی که همجواری منطقی دارند و به طور جاری مورد استفاده اند (locality by space).موقتیفضایی

اسلاید 453: 3/13/2018cpeg323-04FTopic0.ppt453مقدمه ای بر طراحی cache(نوعي حافظه ميانجي که سرعت دستيابي به اطلاعات آن بالا است )

اسلاید 454: 3/13/2018cpeg323-04FTopic0.ppt454Cache(حافظه نهان)مکانی امن برای پنهان سازی و ذخیره سازی.Webster Dictionary

اسلاید 455: 3/13/2018cpeg323-04FTopic0.ppt455Cache(حافظه نهان)حتی با وجود ظرفیت cacheهنوزتقریباً همه cpuها شدیدا به وسیله زمان دستیابی cache محدود شده اند. در بسیاری از گونه ها، هرچند زمان دستیابی cache کاهش داده شده باشد ماشین نیز باید تسریع شود.-Alan Smith-Even more so for MPs!

اسلاید 456: 3/13/2018cpeg323-04FTopic0.ppt456الگوهایی که می توانند طراحی حافظه cache حاضرراشکست دهند، باعث افزایش کارایی حافظه cache شده،وبرای هر برنامه یا بارکاری واقعاً محاسبات مفیدی انجام دهد.

اسلاید 457: 3/13/2018cpeg323-04FTopic0.ppt457بهینه کردن طراحی حافظه cacheبه طور گسترده که دارای 4 جنبه است:به حد اعلی رساندن احتمال یافتن یک مرجع حافظه در cache( نسبت برخورد )به حداقل رساندن زمان دستیابی به اطلاعاتی که در cache وجود دارند( زمان دستیابی ) به حداقل رساندن تأخیر به علت یک خطا وبه حداقل رساندن هزینه های ناشی از به روز کردن حافظه اصلی،نگهداری cache coherence و غیره.

اسلاید 458: 3/13/2018cpeg323-04FTopic0.ppt458فاکتورهای کلیدی در تصمیم طراحی برایCache و VM(حافظه مجازی)-زمان دستیابی حافظه اصلی-زمان دستیابی cache-زمان دستیابی حافظه ثانویه-زمان دستیابی حافظه اصلی= 4 ~ 20.= 4 ~ 20.= 104 ~ 106.= 104 ~ 106.کنترلcache معمولاً در سخت افزار اجرا می شوند

اسلاید 459: 3/13/2018cpeg323-04FTopic0.ppt459فن آوری در1990s:فن آوری در :2000s؟

اسلاید 460: 3/13/2018cpeg323-04FTopic0.ppt460فنآوری در 2000s:

اسلاید 461: 3/13/2018cpeg323-04FTopic0.ppt461پردازشگرCacheحافظه اصلیحافظهثانویهCacheدرسلسله مراتب حافظه

اسلاید 462: 3/13/2018cpeg323-04FTopic0.ppt462

اسلاید 463: 3/13/2018cpeg323-04FTopic0.ppt463چهار سوأل برای دسته بندی سلسله مراتب حافظهقاعده کلی و اساسی که گرداننده همه سلسله مراتب های حافظه است به ما اجازه می دهد از شرایطی که باعث برتری یافتن نسبت به سطوحی که در موردشان سخن گفتیم استفاده کنیم.این قواعد یکسان به ما اجازه طرح چهار سوأل درباره هر سطح از سلسله مراتب را می دهد:

اسلاید 464: 3/13/2018cpeg323-04FTopic0.ppt464س1:در کجا یک بلاک می تواند در سطح بالاتری قرار بگیرد؟ (مکان بلاک)س2:چگونه وقتی یک بلاک در سطح بالاتری قرار دارد شناخته می شود؟(هویت بلاک)س3:کدام بلاک می تواند در یک فقدان جایگزین شود؟ (جایگذاری بلاک)س4:در نوشتن چه روی می دهد؟ (استراتژی نوشتن)چهار سوأل برای دسته بندی سلسله مراتب حافظه

اسلاید 465: 3/13/2018cpeg323-04FTopic0.ppt465این سوألات ما را در جهت رسیدن به یک درک کامل از مبادلات متفاوت در خواست شده به وسیله ارتباطات حافظه ها در سطوح متفاوت یک سلسله مراتب کمک می کند.

اسلاید 466: 3/13/2018cpeg323-04FTopic0.ppt4660 1 2 3 4 5 6 7TAGSDATA0117X35, 72, 55, 30, 64, 23, 16, 147620X11, 31, 26, 22, 55, …3656X71, 72, 44, 50, …1741X33, 35, 07, 65, ...0117330مفهوم cache missوcache hitخطآدرسداده ها

اسلاید 467: 3/13/2018cpeg323-04FTopic0.ppt467teff :زمان دستیابی موءثر cachetcache : زمان دستیابی cachetmain :زمان دستیابی حافظه اصلیh :نسبت برخورد(موءفقیت)teff = htcache + (1-h)tmain

اسلاید 468: 3/13/2018cpeg323-04FTopic0.ppt468مثالLet tcache = 10 ns - 1 - 4 clock cyclestmain = 50 ns – 8 - 32 clock cyclesh = 0.95teffect = ?10 x 0.95 + 50 x 0.05 9.5 + 2.5 = 12

اسلاید 469: 3/13/2018cpeg323-04FTopic0.ppt469نسبت برخورد(یا موءفقیت)نیاز به نیروی کافی برای رسیدن به سطح کارایی دلخواه دارد(say>90%)وسعت بخشی به اثرات و نتایج تغییراتهرگز ثبات دائمی حتی برای ماشین های مشابه ندارد

اسلاید 470: 3/13/2018cpeg323-04FTopic0.ppt470حساسیت کاراییw.r.th (hit ratio)teff = h tcache + (1-h) tmain = tcache [ h + (1-h) ] tcache [ 1 + (1-h) ]since 10, the magnifactor of h changes is 10 times. نتیجه:خیلی حساسtmaintcachetmaintcachetmaintcache~~

اسلاید 471: 3/13/2018cpeg323-04FTopic0.ppt471 یادآوری“h 1”مثال:Leth = 0.90if h = 0.05 (0.90 0.95) then(1 - h) = 0.05thenteff = tcache ( 1 + 0.5) ~~

اسلاید 472: 3/13/2018cpeg323-04FTopic0.ppt472اصطلاحات بنیادیCache line (block) - size of a room1 ~ 16 wordsCache directory - key of roomscacheباید مشارکت دز پیدا کردن ”راهنما ی درست“به وسیله تطبیق داشته باشد“یک مجموعه از داده های همجوار کهبه عنوان یک نهد ذخیره سازی cacheمورد بحث واقع شده اند.”بخشی از cacheکه کلیدهای دستیابی را که دستیابی اشتراکی را پشتیبانی می کنند نگهداری می کنند

اسلاید 473: 3/13/2018cpeg323-04FTopic0.ppt473سازمان دهی cacheکاملاً متحد: می تواند یک عنصر درهر بلاک باشدمسیر دهی بی واسطه و مستقیم: می تواند یک عنصر فقط دریک بلاک باشدچیدمان و قرارگیری پیوسته: می تواند یک عنصر درگروهی از بلاک ها باشد

اسلاید 474: 3/13/2018cpeg323-04FTopic0.ppt474پیوستگی کاملساختارهربلاک در حافظه می تواند در هر block-frameدر cache باشدتمام ورودی های الگوی بلاک (block frame)باهم مقایسه می شوند(به وسیله جستجوی پیوسته)

اسلاید 475: 3/13/2018cpeg323-04FTopic0.ppt475ساده ترین مثال: یک بلاک = a wordتمام حافظه آدرس دهی کلمه ای شدنAddress0275600 17 027560 data0 17مزایا: بدون اتلاف (با قابلیت سازمان دهی سریع)معایب:overhead of associative search: هزینه+ زمانبسیار انعطاف“وبا احتمال بالا به منظور ساکن شدن در cacheCache“tag”

اسلاید 476: 3/13/2018cpeg323-04FTopic0.ppt476TagTagTagTagBlock 0Block 1Block 127… … … … … ...Block 0Block 1Block IBlock 16382Block 16383. . .. . .14 bitsآدرس حافظه اصلیtag word14 4سازمان کاملاً پیوسته cacheیدآوری: هر بلاک 16 کلمه دارد

اسلاید 477: 3/13/2018cpeg323-04FTopic0.ppt477نگاشت مستقیمبدون پیوند پیوستهاز آدرسM حافظه“به طور مستقیم“برای قاب بلاک در cacheجایی که بلاک باید قرار بگیرد شاخص دار شده. A comparison then is to used to determine if it is a miss or hit.

اسلاید 478: 3/13/2018cpeg323-04FTopic0.ppt478نگاشت مستقیمساده ترین امتیاز:معایب:اتلاف و بیهودگیسریع(با منطق کمتر)هزینه کم:از این رو فقط یک دستگاه مقایسه کننده لازم است که می تواند در فرم استاندارد حافظه قرار گیرد

اسلاید 479: 3/13/2018cpeg323-04FTopic0.ppt479نگاشت مستقیممثال:زمانی که cache فقط 128 الگوی قاب دارد در نتیجه درجه تسهیم چنین می باشد:Disadr: “frashing”اندازه حافظه اصلی 16384 (block) 128 (27) 128== 27 block/framefor addressing the corresponding frame or set of size 1.the high-order7 bit is usedas tag.i.e. 27 blocks “fall” in one block frame.

اسلاید 480: 3/13/2018cpeg323-04FTopic0.ppt480نگاشت مستقیمTagTagTagTagBlock 0Block 1Block 127… … … … … ...Block 0Block 1Block 2Block 127Block 128Block 129Block 255Block 256Block 257Block 4095Block 4096Block 16383...7 bitsآدرس حافظه اصلیCacheحافظه اصلی......... Tag Block Word 7 7 4

اسلاید 481: 3/13/2018cpeg323-04FTopic0.ppt481نگاشت مستقیمMapping block addr mod (# of blocks in cache – in this case: mod (27))مزیت : مرتبه پایین log2 ( اندازهcache )بیت می تواند برای شاخص دار شدن استفاده شودCont’d

اسلاید 482: 3/13/2018cpeg323-04FTopic0.ppt482قرار گیری پیوستهتوافق بین direct/full-associativeCacheبه چیدمانهای s تقسیم می شودS = 2, 4, 8, …اگر M cache قاب داشته باشد که همه باهم باشند آنگاه داریم:E = blocks/set# تعداد ساختارهای قابل دسترسی برای شاخص دار کردن MS

اسلاید 483: 3/13/2018cpeg323-04FTopic0.ppt483TagTagTagBlock 0Block 1Block 2Block 3Block 126Block 127Block 0Block 1Block 63Block 64Block 65Block 4095Block 16383...8 bitsCacheحافظه اصلیآدرس حافظه اصلی Tag Set Word 8 6 4TagTagSet 0Set 1Set 63Tag...6 بیت می توانند در چیدمان سمت راست فهرست شوند و سپس 8 بیت برای پیوند پیوسته به کارخواهد رفت

اسلاید 484: 3/13/2018cpeg323-04FTopic0.ppt484thusorSet Word 8 6 422 راه برای قرار گرفتن سازمان پیوستهآماده دسترسی برای شاخص دار کردن214 (16k)26= 28 block/set 28 block/per set of 2 blocks6 bit used to indexinto the right “set”higher order8 bit used as taghence an associativematch of 8 bit withthe tags of the 2 blocks is required2 wayاز این رو به هم پیوستن های 8 بیتی با علامتهای 2 بیتی نیاز است

اسلاید 485: 3/13/2018cpeg323-04FTopic0.ppt485گونه های دیگرچندین کلمه=1بلاکSector (IBM 360/85) - 16 sector x 16 block/sector1 سکتور:چندین بلاک متوالیCache miss:جایگزینی سکتوربیت صحیح-یک بلاک بنا به درخواست انتقال داده شدهM addr.tag word key0 13 14 17Sector block word (tag)06 7 13 14 177 7 4

اسلاید 486: 3/13/2018cpeg323-04FTopic0.ppt486TagTagBlock 0Block 1Block 14Block 15Block 16Block 31Block 112Block 127Block 0Block 1Block 15Block 16Block 31Block 16368Block 16383...Validbitآدرس حافظه اصلی Sector Block Word (tag) 10 4 4TagSector 0Sector 1 Sector 7............. . .Sector 0Sector 1Sector 0Sector 1023نگاشت سکتور cache

اسلاید 487: 3/13/2018cpeg323-04FTopic0.ppt487داردCache = 8 sectorحافظه اصلی دارد = 1K sectors128 blocks16 blocks/sector16k16نگاشت سکتور cachecont’d

اسلاید 488: 3/13/2018cpeg323-04FTopic0.ppt488032634112262017334125414236602134714= ?= ?= ?= ?SELECTSELECTSELECTSELECTIF NONE34125TAGSLINESSETNUMBER01N -101N -101N -101N -10326 1ADDRESS032603263412534125MISSDATA OUTThe structure of a four-way set-associative cache with N sets

اسلاید 489: 3/13/2018cpeg323-04FTopic0.ppt489Address (showing bit positions)31 30 29 28 27……..16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0Index Valid Tag DataByteoffset=Data1020TagHit012. . .. . .. . .1021102210232032

اسلاید 490: 3/13/2018cpeg323-04FTopic0.ppt490جمع تمام بیت ها در cacheجمع بیتها =(# of bits of a tag + # of bits of a block + # of bits in valid field) x Cache sizeمثالی برایmips := ((32-14-2) + 32 + 1) x 214= 214 x 49= 784 k bits~ 100 kbytes= 64 K (bytes)= 214 blocks with فرض کنید یک نگاشت مستقیم cache.

اسلاید 491: 3/13/2018cpeg323-04FTopic0.ppt491به روز کردن حافظه اصلی/خط و مشي واکشیبه روز کردن : 8~16% are writesباز نویسییک نوشتن اشتباه شاید ربطی به حافظه اصلی نداشته باشدwrite-throughعبور و مرور بیشترواکشی

اسلاید 492: 3/13/2018cpeg323-04FTopic0.ppt492چه طور خواندن/نوشتن رابه کار ببریم One-word-line: (DEC 3100)خواندن:آسان استآدرس را به cache مناسب بفرستیدآ درس را از یکی از این دو pc(برای خواندن یک دستورالعمل) یا از ALU(برای دستیابی داده ها)اگر سیگنال های Cache موفق شوند ،کلمه در خواست شده در خطوط داده ها موجود است.اگر که سیگنال های Cache دچار مشکل شوند، ما آدرس کامل را به حافظه اصلی می فرستیم. زمانی که حافظه داده ها را بر می گرداند،ما آن را در cache می نویسیم.

اسلاید 493: 3/13/2018cpeg323-04FTopic0.ppt493Read Miss is easy to be handled quickly:خواندن تگ و خواندن بلاک می تواند باهم انجام شودنوشتن معمولاً کندتراستخواندن تگ و نوشتن بلاک نمی تواند باهم انجام شود)به جز برای one-word-line caches)

اسلاید 494: 3/13/2018cpeg323-04FTopic0.ppt494برای خط های چند کلمه ای:موقع نوشتنon a write miss, it is aخواندن - تغییردادن - چرخه نوشتنبلاک اصلی یک بخش نوشتن بلاک مقایسه و سنجش تگ نمی تواند به موازات آن انجام گیرد در نتیجه انجام آن آهسته تر است

اسلاید 495: 3/13/2018cpeg323-04FTopic0.ppt495چرا؟ فرض کنید x,y در یک ستون یکسان نگاشت شوند و در ابتدای cache xرا داریمxx4x3x2x1x4x3x2x1y4y3y2y1yx

اسلاید 496: 3/13/2018cpeg323-04FTopic0.ppt496فرض کنید قبل از نوشتن ،cacheدر برگیرنده سطور x است،زمانی که y نوشته می شود یک فقدان ، و یک نوشته رخ می دهدنوشتن y.3 zNote after write miss, if not careful, we get اما در پایان یک بازنویسی Y1,Y2,Y4نابود می شوندx4 Zx2x1y

اسلاید 497: 3/13/2018cpeg323-04FTopic0.ppt497Write through (or store through) – اطلاعاتی که نوشته می شود روی هر دو بلاک cache و سطح پایین تر حافظهWrite back (also called copy back) – اطلاعاتی که تنها روی بلاک در cache نوشته می شود. قالب cache تغییر یافته روی حافظه اصلی تنها زمانی که جایگزین شود نوشته می شودباز نویسیپاک کردن و پر کردن بلاکیک بیت پر نشان می دهد که آیا یک سطر تا زمانی که در cache است تغییر کرده است .موقعی که یک “dirty line”جایگزین شود، باید در حافظه اصلی بازنویسی شود .

اسلاید 498: 3/13/2018cpeg323-04FTopic0.ppt498دو تا گزینه در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!

اسلاید 499: 3/13/2018cpeg323-04FTopic0.ppt499چه موقع write through بهتر است؟زمانی که از cache دو سطحی استفاده می شودCpu روی یک تراشه cache کوچک است.+ یک تراشه بزرگ cacheسازگاری آسانتر استبه وسیله دومین cache از ترافیک حافظه جلوگیری می شود

اسلاید 500: 3/13/2018cpeg323-04FTopic0.ppt500Write-back vs. Write-throughسرعت (باز نویسی سریع است)Traffic ( در حالت عمومی،باز کپی بهتر است)If more than one read hit to the lineSo attractive to multiprocessor in this senseساز گاری cache(write-through بهتر است (منطقی(copy-backبسیار کامل است)

اسلاید 501: 3/13/2018cpeg323-04FTopic0.ppt501Write-back vs. Write-throughBuffering(4 برای write-throughبهترین است)به هردو نیاز دارد، در حالی که copy-backفقط به یکی نیاز دارد. مدیریت پیچیده است زیرا زمانی که یک ref ساخته می شود ،باید با buffer همراه باشد قابلیت اطمینان(write-throughبهتر است) برای اینکه حافظه اصلی قابلیت شناسایی خطا را دارد”انتخاب واضحی وجود ندارد ” برحسب کاراییCont’d

16,000 تومان

خرید پاورپوینت توسط کلیه کارت‌های شتاب امکان‌پذیر است و بلافاصله پس از خرید، لینک دانلود پاورپوینت در اختیار شما قرار خواهد گرفت.

در صورت عدم رضایت سفارش برگشت و وجه به حساب شما برگشت داده خواهد شد.

در صورت نیاز با شماره 09353405883 در واتساپ، ایتا و روبیکا تماس بگیرید.

افزودن به سبد خرید