تمرین سری چهارم درس معماری کامپیوتر دکتر سربازی آزاد هدف تمرین مهلت تحویل نحوه تحویل سواالت طراحی پردازنده 24خرداد ،3131ساعت 21:33 تمامی فایلهای طراحیتان را به ایمیل درس ارسال نمایید. سواالت خود را از طریق پیاتزا مطرح نمایید. : این پردازنده دارای دستورات زیر است. را پیادهسازی کنیدKasraa پردازنده خیالی :دستورات محاسباتی و منطقی Opcode 31 30 29 28 Destination Reg 27 26 25 24 23 22 Source Reg 1 21 20 19 18 Source Reg 2 17 16 15 14 13 S/R Amount 12 11 10 9 8 X (Unused) 7 6 5 4 Opcode Instruction Description 00000 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 ADD SUB MUL DIV MOD MAX MIN NOT NAND NOR XNOR SHL SHRA SHRL ROL ROR DST ← SRC1 + SRC2 DST ← SRC1 – SRC2 DST ← SRC1 × SRC2 DST ← SRC1 ÷ SRC2 DST ← SRC1 % SRC2 DST ← MAX (SRC1, SRC2) DST ← MIN (SRC1, SRC2) DST ← ~SRC1 DST ← SRC1 ~& SRC2 DST ← SRC1 ~| SRC2 DST ← SRC1 ~^ SRC2 DST ← SRC1 << S/R AMOUNT DST ← SRC1 >>> S/R AMOUNT DST ← SRC1 >> S/R AMOUNT DST ← ROTATE LEFT (SRC1, S/R AMOUNT) DST ← ROTATE RIGHT (SRC1, S/R AMOUNT) 3 2 1 0 :دستورات با عملوند صریح Opcode 31 30 29 28 Destination Reg 27 26 25 24 23 22 Source Reg 21 20 19 18 Immediate Data 17 16 15 14 13 12 11 10 9 8 Opcode Instruction Description 10000 10001 10010 10011 10100 10101 10110 10111 LDI ADDI SUBI MULI DIVI NANDI NORI XNORI DST ← IMM DST ← SRC + IMM DST ← SRC – IMM DST ← SRC × IMM DST ← SRC ÷ IMM DST ← SRC ~& IMM DST ← SRC ~| IMM DST ← SRC ~^ IMM 7 x 6 5 4 3 2 1 0 3 2 1 0 :دستورات جابجایی Opcode 31 30 29 28 Reg 1 27 26 25 24 Reg 2 23 22 21 20 19 X 18 17 16 15 14 13 12 11 10 9 Opcode Instruction Description 11000 11001 MOV SWP REG1 ← REG2 REG1 ↔ REG2 8 7 6 5 4 :دستورات دسترسی به حافظه Opcode 31 30 29 28 Value Reg 27 26 25 24 23 Address Reg 22 21 20 19 18 X 17 16 15 14 13 12 11 10 9 8 7 Opcode Instruction Description 11010 11011 LD STR VAL ← MEM [ADDRSS] MEM [ADDRSS] ← VAL 6 5 4 3 2 1 0 3 2 1 0 :)دستورات ثبات آدرس (پرش و توقف Opcode 31 30 29 28 Reg 1 27 26 25 24 Reg 2 23 22 21 20 19 Address 18 17 16 15 14 13 12 X 11 10 9 8 7 6 Opcode Instruction Description 11100 11101 11110 11111 JMP BEQ BLT HLT PC ← ADDRSS REG1 == REG2: PC ← ADDRSS REG1 < REG2: PC ← ADDRSS STOP PC 5 4 توضیحات در پردازندهای که طراحی میکنید ،حـتما باید از Register File ،ALUو Memoryکه در اخـتیارتـان قرار گرفتـه است استفاده کنید .همچنین مجاز به تغییر آنها نیستید (البته این بدان معناست که در مدار تحویلی نهاییتان این سه ماژول نباید تغییر کرده باشند ،وگرنه برای آزمایش مدارتان میتوانید آنها را تغییر داده و سپس به حالت اولیه بازگردانید). در مسیرداده 3مدارتان مجاز به استفاده از هیچ مدار ترکیبیای به جز -ALUای که در اختیارتان قرار گرفته ،مالتیپلکسر و بافر سهحالته نیستید و تمامی عملیات منطقی را باید با استفاده از همین مدارها انجام دهید. در مسیرداده مجاز به استفاده از هر تعداد ثبات که نیاز دارید ( IR ،PCو )...هستید و محدودیتی در این مورد ندارید. تمام ثباتهای شما (اعم از IR ،PCو )...میبایست یک درگاه ریست ناهمگام 2داشته باشند که به سیگنال ریست پردازنده متصل باشند .با یک شدن این سیگنال محتوای این ثباتها صفر میشود. عمـلکرد ماژول حـافظهای که در اخـتیـارتـان قـرار گرفـتـه اسـت به این تـرتیب اسـت که خروجی DATA_OUTآن همواره درایهای از حافظه است که ورودی ADDRESS_READآن مشخص میکند (یعنی برای خواندن از حافظه نیازی به لبه مثبت کالک نیست) .همچنـین در لـبه مثبـت کالک ،در صورت فعال بودن ورودی ،WRITE_ENABLEمـقدار موجود در ورودی DATA_INدر درایه متناظر با ورودی ADDRESS_WRITEقرار میگیرد .ریست این ماژول باید به ریست پردازنده متصل باشد. بانک ثباتی که در اختیارتان قرار گرفته است ،به مانند تمرین قبلیتان بوده و فقط تعداد ثباتها و اندازه ثباتها تغییر کرده است (میتوانید با مراجعه به کُد زبان توصیف سختافزار آن ،به راحتی عملکرد مدار را تشخیص دهید). ماژول -ALUای که در اخـتیـارتان قـرار گـرفـته اسـت ،به مانند تمرین قبلیتان بوده ولی تعداد عملیات آن و همچنین ترتیب آنها تغییر کرده است (میتوانید با مراجعه به کُد زبان توصیف سختافزار آن ،به راحتی عملکرد مدار را تشخیص دهید). در تمامی دستورات با عملگر ضرب 12 ،بیت کمارزش نتیجه ،در ثبات مقصد قرار میگیرد. Data Path Asynchronous 1 2 در دستورات دسترسی به حافظه ،باید 8بیت کمارزش ثبات ،به عنوان ورودی آدرس حافظه در نظر گرفته شود. در دستور BLTمقایسه مقدار دو ثبات به صورت بیعالمت 1انجام میشود. در دستور LDIمقدار Immediateدر 31بیت کمارزش ثبات مقصد قرار میگیرد. دستور HLTرا میتوان به روشهای مختلفی پیادهسازی کرد .چنانچه مقدار ثبات PCرا در مرحله واکشی افزایش میدهید ،کافیست در مرحله اجرای این دستور 3واحد از آن کم کنید .همچنین اگر مقدار PCرا پس از کدگشایی دستور افزایش میدهید ،میبایست در اجرای این دستور ،مقدار PCرا افزایش ندهید. Unsigned 3
© Copyright 2025 Paperzz