صفحه 1:
معماری کامپیوتر - درس ۸ 3 روشهای طراحی 000

صفحه 2:

صفحه 3:
وظائف ۶ () : مچری‌دستورات * (20): ایجلد سیگنا هایک نترلی‌لا-زم ۰ ۷660197۳00۷۵ : ذخیره دادم های‌میانی

صفحه 4:
روش های طراحی * سازمان تک انباره ای * سازمان چند ثیاتی * سازمان پشته ای

صفحه 5:
سازمان تک انباره ای ۵۵۵۰6 ‏له‎ og ‏یک آکومولاتور‎ ٠ bul ‏مشابه با کامپیوتر‎ * ARE 1 - ‏ال‎

صفحه 6:
سازمان ثبات عمومی ۰ ۵۵۸ 26060۵0 تمامی ثباتها می توانند به عنوان اپراند دستور العملهای (/0) بکار برده شوند متثال : رجیسترهای داده در پردازنده پنتیوم

صفحه 7:

صفحه 8:
قالب دستورالعملها * اتتخاب عمل در ‎LO‏ * انتخاب رجیسترهای مبدا - مولتی پلکسر ۱ — مولتی پلکسر ۲ * انتخاب رجیستر مقصد 7 دیکدر 6 9 9 - met ge Re gs ge ey OP-COOE oa ee oO

صفحه 9:
ارتباط با حافظه 0۳0۳

صفحه 10:
سازمان پشته LIPO ‏ساختار‎ * POGW ٠ POP ۰ دسترسی فقط به عنصر بالای پشته امکانپذیر است * فقط یک اشاره گر نیاز داریم GP = GPOCK ۳0100/۵۵۸ ۰ 0

صفحه 11:
POGWL OP —Ge+ ۰ O[GP] — OR - AP (GP=O) MED ° (FOLL—A) COPPY —O * aa

صفحه 12:
POP OR — OCP] ۵ — CP + Ik (GP=O) THEM ° (CO@ETY 4) POW —O * ~

صفحه 13:
کاربرد * عبارات محاسباتی ۵۵/۵0 POLIGW DOTOMOD ٠ +/B0*CO ٠ 9

صفحه 14:
+7500 POGW 6 ٠ 028 6 ۰ DOOL (POP,POP, POGW C*B) * POGW C * POGW 00 ٠ O10 (POP, POP ,POGW C/M) ۴ POO (POP,POR, ۵۵ ۰ RECOLT) ae

صفحه 15:
+۸00 POCW BO POCW B

صفحه 16:
+300 POCW BO POCW B OOL POC 0 POG O ©

صفحه 17:
+300 POCW BO POCW B OOL POC 0 POG O 00

صفحه 18:
+300 POCW BO POCW B OOL POC 0 POG O 00 COO

صفحه 19:
کدام مجموعه از عملیات ذیل می تواند یک پ پیاده سازی نماید ؟ © ووم 1 060066 جوم 6 ۱ 4ب و سر هب 6 ]0 9 POGW BO GP Ged OED[GP —O GP 0 MCO[GH] —® EO[CE] ‏م‎ ‎GP —GP4 هر سه 0

صفحه 20:
‎oe oe oS ۳‏ انواع ساختار پشته = سرعت دسترسی بالا - قيمت زياد - تعداد كم ‎٠»‏ ب يشته حافظه اى كه - ارزان - حجم زياد ‎

صفحه 21:
دستورات ۶ تک انباره - معمولا یک اپرند آکومولاتور است - دستورات تک آدرسی ۴ چندئباتی - اپرندها ثبات هستند - دستورات سه آدرسى ( يا دو آدرسى) * پشته ای - فقط اپرند مربوط به پوش يا پاپ - دستورات یک آدرسی و صفر آدرسی

صفحه 22:
تاثیر قالب دستورالعمل ها بر روی سرعت اجرا * مقایسه یک عملیات یکسان در سه حالت مختلف * محاسبه 9*0+0/0) - دستورات سه آدرسی <- دستورات دو آدرسی - دستورات یک آدرسی - دستورات صفرآدرسی

صفحه 23:
دستورات سه آدرسی MOL 40,۵, ۰ 010 88,0, ٠ COD RO,RAROE ۰

صفحه 24:
دستورات دو آدرسی MOO 40, ٠ MOL 0, ۰ MOO 068,0 ٠ ‏كم‎ 8,0 ٠ COD RARE ٠

صفحه 25:
دستورات یک آدرسی LO® ® * MOL 8 ۰ GTR ۳۵000 * LO® C* O10 0 ٠ COD 41020006 ٠

صفحه 26:
دستورات صفرآدرسی POGW BO POG ® ٠ MOL ۶ POGW C * POGW 00 ٠ 010 ٠ 000 ۰

صفحه 27:
قالب دستورالعمل ها * قالب دستور العملها وایسته به نوع طراحی 060201 است * بخش های مختلف یک دستورالعمل - 00۳46008 - آدرس ( حافظه . تبات ....) — شیوه آدرسدهی

صفحه 28:
طول دستور العمل J ‏متغب‎ تنوع دستور العملها - كامييوترهاى ©0710 (پر دستور ) - كامييوترهاى ©8008 (كم دستور )

صفحه 29:
060 ° عسل جومت بوظ) متسه ومموون6 6 * تعداد دستورالعملهای زیاد (۱۰۰ تا ه۰ه) دستورالعملهایی که ندرتا استفاده می شوند روشهای ادرسدهی متنوع (ه تا ۲۰ روش) قالب دستورات با طول متغیر ۴ دستوراتی با عملوند حافظه ای

صفحه 30:
060 برنامه نویسی آسان است * دستورالعملهایی که کارهای زیادی انجام میدهند * دیکد کردن دستورات به طول می انجامد * دسترسی به عملوند های حافظه ای زمانبر است * کار کامپایلر ساده است

صفحه 31:
61650 Reduced Iestruniiva set Oowputer * دستورات کم ۴ روش های آدرس دهی ‎PS‏ رجیسترهای زیاد * اپرندها همواره رجیستر هستند * تنها مراجعات به حافظه در دستورات !۲ و سسد ۴ دستورات با طول ثابت * اجرای هر دستور در یک سیکل زمانی ۶ واحد کتترل سخت افزاری

صفحه 32:
61650 * برنامه های طولاتی سرعت اجرای بالا دیکد سریع * استفاده از پردازش ۲۳۳۲ * استفاده از پنجره های همپوشان

صفحه 33:
فراخوانی سابروتین * ارسال پارامترهای ورودی * در یافت پارامترهای خروجی ° عدم دسترسی به حافظه پشته * استفاده از ثباتها

صفحه 34:
پنجره های همپوشان * ثبانهای محلی () ثباتهای عمومی (29۲) * ثباتهای مشترک با - پنجره قبلی ( دریافت آرگومان ‎(lo‏ ‏- پنجره بعدی ( ارسال آرگومان ها)

صفحه 35:
فراخوانی سابروتین به صورت تودر تو * حداکثر چهار مرحله * هر سابروتین ثباتهای همپوشان ( پنجره ) مخصوص به خود را دارد * اشاره گری که همواره به پنجره فعال اشاره دارد * با فراخوانی هر سابروتین این اشاره گر یک واحد افز ایش می ‎Wh‏ * با بازگشت از سابروتین اين اشاره گر یک واحد کاهش می یابد

صفحه 36:
پنجره های همپوشان ابتدا پارامترهای ارسالی را در بخش مشترک( با بعدی) قرار می دهیم * اشاره گر را یک واحد افزایش می هیم پس از اجرای سابروتین * پارامترهای بازگشتی را در بخش مشترک (با قبلی) قرار می دهیم * اشاره گر را کاهش می دهیم

صفحه 37:

صفحه 38:
Gie=LtOG6+B Dord=O(L+G)+6

صفحه 39:
مثال ‎R1IGO1 0355‏ ‎dejan,‏ ۳۲ بیتی قال دستورات ۳۲ بیتی ‎Sie‏ دستورات < ۳۱ روشهای آدرسدهی - بلافصل — ثباتی ‏تسبي ‎

صفحه 40:
66501 * ۱۳۸ ثبات ‎٠‏ ده تبات عمومی * هشت پنجره ۳۲ ثباتی

صفحه 41:
ویژگی های 080 * روشهای متعدد آدرسدهی حافظه 9 در هر دستور العمل تعدادی از بیتها معین کننده نوع ادرسدهى هستند 1 * تنوع روشهاء زمان اجرا را افزايش مى دهد a

صفحه 42:
شمنی : عملوند در خود دستور مستتر است - 00008 4 OLE - * بلافصل: خود عملوند ( و نه آدرس آن) در دستور قرار داده ميشود - 00,000 000 - 0,66 200)

صفحه 43:
روش های آدرسدهی (ادامه) * روش ثباتی : عملوند یکی از ثباتهای (00۳) است — 0,60 200 ‎GOB CX,0X 2‏ * روش خود افزایشی یا خود کاهشی - مجمجووظ) )| مجمجهها ‎ut‏ - در پردازنده پنتیوم

صفحه 44:
روش های آدرسدهی (ادامه) * ادرسدهی مستقیم (0۳)) : آدرس عملوند در داخل دستورالعمل قرار دارد ‎Od OD —‏ ‎bdo tewop —‏ آدرسدهی غیرمستقیم (1۲۳) : در داخل دستور العمل مکان آدرس عملوند را قرار می دهیم - امه بو Dev ux,[bx] —

صفحه 45:
روش های آدرسدهی (ادامه) * آدرسدهی تسبی : - شمارنده برنامه به آدرس اضافه میشود - 60 + 600660۵6 2 606 * آدرسدهى شاخصدار(0000002) - محتواى يك رجيستر به آدرس دستور اضافه ميشود )06000602( ‏ادرسدهى با ثبات يايه‎ ٠ ‏محتواى يك رجيستر به آدرس دستور اضافه ميشود‎ -

صفحه 46:
QM 0-00 [(60000) 0 0 [0000) 0م د 0م 00 00 0 000۸ 0 > 0 HORA +40C —O[RG RA - 00 OLR] RA 6۷000 LO GOR 7۵ 648 ‏معنا‎ 5000+ ۱۸0 08 70 0600 LO ea Lo (Rd) 4L0 (Rd) LO ~(RA) MOOG O1RECT IMOIRECT RELOMOE 5 IDDEOIGNE IMOEX REGIGTER REGISTER ADOIRECT

صفحه 47:
مقادیر اولیه ثباتهای ‎RO‏ 20,30 و موجودی حافظه در ذیا داده شده است . مشخص کنید اجرای دستورات برنامه زیره فوق را چه تغییری می دهد. توجه شود که ثباتها ۶ ۱ بیتی ء دستورات ۲ بایتی و هر خانه ۶ یک بایتی است . جهت انتقال از راست به چپ و ++ علامت: آدرسدهی پس افزاینده هه ام ) می باشد . در مبنای ۱۶ هستند مقادیر اولیه : 2-006 20 ۵2۳۳ ۳000120

صفحه 48:
0ج + 0ج -[0000] مد( سا هب۴۵ 2۳+ Dewl[PPeO]=dOO 9۳۳ Pr=OOO +P =90r مم

معماری کامپیوتر – درس 8 روشهای طراحی CPU 1 شمای کلی مجموعه ثبات واحد کنترل ‏ALU 2 وظائف • : ALUم جریدستورات • : CUایجاد س یگنا له ایک نترلیال زم • : REGISTERSذخیره داده هایم یانی 3 روش های طراحی • سازمان تک انباره ای • سازمان چند ثباتی • سازمان پشته ای 4 سازمان تک انباره ای • یک آکوموالتور • مشابه با کامپیوتر پایه 4096*16 RAM ‏BUS ‏ADDRESS ‏AR ‏PC ‏DR ‏AC ‏ALU ‏INPR همواره یکی از اپرندها اکوموالتور است ‏IR ‏TR ‏OUTR 5 سازمان ثبات عمومی • GENERAL REGISTER • تمامی ثباتها می توانند به عنوان اپراند دستورالعملهای ALUبکار برده شوند • مثال :رجیسترهای داده در پردازنده پنتیوم 6 R1 R2 R3 R4 R5 R6 R7 R8 DEC MUX MUX ALU قالب دستورالعملها • انتخاب عمل در ALU • انتخاب رجیسترهای مبدا – مولتی پلکسر 1 – مولتی پلکسر 2 • انتخاب رجیستر مقصد – دیکدر 3 ‏D 3 3 5 ‏S2 ‏S1 ‏OP-CODE 8 ارتباط با حافظه INPUT R1 R2 R3 R4 R5 R6 R7 R8 DEC MUX MUX ALU 9 سازمان پشته • • • • • • ساختار LIFO ‏PUSH ‏POP دسترسی فقط به عنصر باالی پشته امکانپذیر است فقط یک اشاره گر نیاز داریم ‏SP = STACK POINTER 10 PUSH SP ← SP+1 M[SP] ← DR IF ( SP=0) THEN (FULL←1) EMPTY ← 0 11 • • • • POP DR ← M[SP] SP ← SP-1 IF ( SP=0) THEN ( EMPTY ←1) FULL ← 0 12 • • • • کاربرد عبارات محاسباتی A*B+C/D PULISH NOTATION +/AB*CD 13 • • • • +/AB*CD PUSH A PUSH B MUL (POP,POP, PUSH A*B) PUSH C PUSH D DIV (POP,POP,PUSH C/D) ADD (POP,POP, PUSH RESULT) 14 • • • • • • • +/AB*CD PUSH A PUSH B B A 15 +/AB*CD PUSH A PUSH B MUL PUSH C D PUSH D C A*B 16 +/AB*CD PUSH A PUSH B MUL PUSH C PUSH D C/D DIV A*B 17 +/AB*CD PUSH A PUSH B MUL PUSH C PUSH D DIV A*B+ C/D 18 ADD کدام مجموعه از عملیات ذیل می تواند یک پشته را پیاده سازی نماید ؟ PUSH A POP A SP ←SP-1 A ←MEM[SP] MEM[SP ←A SP ←SP+1 SP ←SP+1 A ←MEM[SP] MEM[SP] ←A SP ←SP-1 MEM[SP] ←A SP ←SP+1 SP ←SP-1 A ←MEM[SP] هر سه 19 1,3 2,3 1,2 1 2 3 انواع ساختار پشته • پشته ثباتی – سرعت دسترسی باال – قیمت زیاد – تعداد کم • پشته حافظه ای – کند – ارزان – حجم زیاد 20 تاثیر نوع CPUبر قالب دستورات • تک انباره – معموال یک اپرند آکوموالتور است – دستورات تک آدرسی • چندثباتی – اپرندها ثبات هستند – دستورات سه آدرسی ( یا دو آدرسی) • پشته ای – فقط اپرند مربوط به پوش یا پاپ – دستورات یک آدرسی و صفر آدرسی 21 تاثیر قالب دستورالعمل ها بر روی سرعت اجرا • مقایسه یک عملیات یکسان در سه حالت مختلف • محاسبه A*B+C/D – – – – دستورات سه آدرسی دستورات دو آدرسی دستورات یک آدرسی دستورات صفرآدرسی 22 دستورات سه آدرسی MUL R1,A,B • DIV R2,C,D • ADD R3,R1,R2 • 23 دستورات دو آدرسی MOV R1,A MUL R1,B MOV R2,C DIV R2,D ADD R1,R2 24 • • • • • دستورات یک آدرسی LDA A MUL B STA TEMP LDA C DIV D ADD TEMP 25 • • • • • • دستورات صفرآدرسی PUSH A PUSH B MUL PUSH C PUSH D DIV ADD 26 • • • • • • • قالب دستورالعمل ها • قالب دستورالعملها وابسته به نوع طراحی CPU است • بخش های مختلف یک دستورالعمل – OP-CODE – آدرس ( حافظه ،ثبات ).... – شیوه آدرسدهی 27 طول دستورالعمل • ثابت • متغیر • تنوع دستورالعملها – کامپیوترهای ( CISCپر دستور ) – کامپیوترهای ( RISCکم دستور ) 28 CISC • • • • • • • ‏Complex Instruction Set computer سری 80x86و پنتیوم تعداد دستورالعملهای زیاد ( 100تا )500 دستورالعملهایی که ندرتا استفاده می شوند روشهای ادرسدهی متنوع ( 5تا 20روش) قالب دستورات با طول متغیر دستوراتی با عملوند حافظه ای 29 CISC • • • • • برنامه نویسی آسان است دستورالعملهایی که کارهای زیادی انجام میدهند دیکد کردن دستورات به طول می انجامد دسترسی به عملوند های حافظه ای زمانبر است کار کامپایلر ساده است 30 RISC • • • • • • • • • ‏Reduced Instruction set Computer دستورات کم روش های آدرس دهی کم رجیسترهای زیاد اپرندها همواره رجیستر هستند تنها مراجعات به حافظه در دستورات loadو store دستورات با طول ثابت اجرای هر دستور در یک سیکل زمانی واحد کنترل سخت افزاری 31 RISC • • • • • برنامه های طوالنی سرعت اجرای باال دیکد سریع استفاده از پردازش pipeline استفاده از پنجره های همپوشان 32 فراخوانی سابروتین • • • • ارسال پارامترهای ورودی در یافت پارامترهای خروجی عدم دسترسی به حافظه پشته استفاده از ثباتها 33 پنجره های همپوشان • ثباتهای محلی ()local • ثباتهای عمومی ()global • ثباتهای مشترک با – پنجره قبلی ( دریافت آرگومان ها) – پنجره بعدی ( ارسال آرگومان ها) 34 فراخوانی سابروتین به صورت تودر تو • • • • • حداکثر چهار مرحله هر سابروتین ثباتهای همپوشان ( پنجره ) مخصوص به خود را دارد اشاره گری که همواره به پنجره فعال اشاره دارد با فراخوانی هر سابروتین این اشاره گر یک واحد افزایش می یابد با بازگشت از سابروتین این اشاره گر یک واحد کاهش می یابد 35 پنجره های همپوشان • • • • • ابتدا پارامترهای ارسالی را در بخش مشترک( با بعدی) قرار می دهیم اشاره گر را یک واحد افزایش می هیم پس از اجرای سابروتین پارامترهای بازگشتی را در بخش مشترک (با قبلی) قرار می دهیم اشاره گر را کاهش می دهیم 36 local share local share local share general local share 37 share win1 local share win2 Size=L+2S+G local Total=W(L+S)+G share local win3 share general win4 local share 38 مثال • • • • • پردازنده RISCI رجیسترهای 32بیتی قالب دستورات 32بیتی تعداد دستورات = 31 روشهای آدرسدهی – بالفصل – ثباتی – نسبی 39 Share D,A RISCI Local A ثبات138 • • ده ثبات عمومی ثباتی32 • هشت پنجره shareA,B Local B Share B,C Local C Share C,D 10 general Local D 6 10 shareD,A 40 6 ویژگی های CISC • روشهای متعدد آدرسدهی حافظه • در هر دستورالعمل تعدادی از بیتها معین کننده نوع آدرسدهی هستند • تنوع روشها ،زمان اجرا را افزایش می دهد ‏ADDRESS ‏ADD-MODE ‏OP-CODE 41 روش های آدرسدهی • ضمنی :عملوند در خود دستور مستتر است – CMA – CLE • بالفصل :خود عملوند ( و نه آدرس آن) در دستور قرار داده میشود – MOV AX,100 – ADD CX,25H 42 روش های آدرسدهی (ادامه) • روش ثباتی :عملوند یکی از ثباتهای CPUاست – MOV AX,BX – SUB CX,AX • روش خود افزایشی یا خود کاهشی – Auto Increment / Auto Decrement – Loopدر پ ردازنده پ نتیوم 43 روش های آدرسدهی (ادامه) • ادرسدهی مستقیم ( : )Directآدرس عملوند در داخل دستورالعمل قرار دارد – Add M – Lda temp • آدرسدهی غیرمستقیم ( : )Indirectدر داخل دستورالعمل مکان آدرس عملوند را قرار می دهیم – ]Mov ax,[m – ]Mov ax,[bx 44 روش های آدرسدهی (ادامه) • آدرسدهی نسبی : – شمارنده برنامه به آدرس اضافه میشود – EA = ADDRESS + PC • آدرسدهی شاخصدار()INDEX – محتوای یک رجیستر به آدرس دستور اضافه میشود • آدرسدهی با ثبات پایه ()BASE – محتوای یک رجیستر به آدرس دستور اضافه میشود 45 MODE SYMBOL RTL DIRECT LD ADR AC←M[ADR] INDIRECT LD @ADR AC ←M[M(ADR)] RELATIVE LD $ADR AC ←M[PC+ADR] IMMEDIATE LD #NBR AC ←NBR INDEX LD ADR(X) AC ←M[ADR+XR] REGISTER LD R1 AC ←R1 REGISTER INDIRECT LD (R1) AC ←M[R1] INCREMENT +LD (R1) ++AC ←M[R1] ,R1 DECREMENT LD -(R1) - -AC ←M[R1] ,R1 46 مقادیر اولیه ثباتهای PC،R1 ،R2و موجودی حافظه در ذیل داده شده است .مشخص کنید اجرای دستورات برنامه زیر مقادیر فوق را چه تغییری می دهد. توجه شود که ثباتها 16بیتی ،دستورات 2بایتی و هر خانه حافظه یک بایتی است .جهت انتقال از راست به چپ و ++عالمت آدرسدهی پس افزاینده ( ) post incrementمی باشد .کلیه اعداد در مبنای 16هستند مقادیر اولیه : ‏pc=308 ‏r1=100 ‏Add [r1],r2.low ‏Mov [r2]++,r1 ‏r2=ffe0 ‏mem[100]=20 47 Add [r1],r2.low Mov [r2]++,r1 Mem[100]= E0+20=00 Mem[ffe0]=100 R2=ffe1 Pc=308+4=30c 48

51,000 تومان