1 / 31

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

معماری سیستم های کامپیوتری. واحد پردازش مرکزی ( CPU ). مهدی ایل بیگی دانشگاه پیام نور دماوند. اجزائ اصلی یک CPU. ALU : مجری دستورات CU : ایجاد سیگنال های کنترلی لازم REGISTERS : ذخیره داده های میانی. مجموعه ثبات. واحد کنترل. ALU. روش های طراحی CPU. سازمان تک انباره ای

Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. معماری سیستم های کامپیوتری • واحد پردازش مرکزی (CPU) مهدی ایل بیگی دانشگاه پیام نور دماوند

  2. اجزائ اصلی یک CPU • ALU:مجری دستورات • CU:ایجاد سیگنال های کنترلی لازم • REGISTERS: ذخیره داده های میانی مجموعه ثبات واحد کنترل ALU

  3. روش های طراحی CPU • سازمان تک انباره ای • سازمان ثبات های عمومی (چند ثباتی) • سازمان پشته ای

  4. سازمان تک انباره ای • همواره یکی از اپرندها آکومولاتور است. • نتایج عملیات به آکومولاتور انتقال داده می شود. 4096*16 RAM BUS ADDRESS AR PC DR ALU AC INPR IR TR OUTR

  5. سازمان ثبات های عمومی • در این روش از چند ثبات عمومویGENERAL REGISTERS استفاده می شود. • تمامی ثبات ها می توانند به عنوان اپراند دستورالعمل های ALU بکار برده شوند. (هم بعنوان مبداء و هم بعنوان مقصد) • مثال: رجیسترهای داده در پردازنده پنتیوم.

  6. سازمان ثبات های عمومی ورودی حافظه R1 Operation R2 R3 R4 R5 R6 R7 MUX1 MUX2 DEC SelA SelB A B ALU SelD

  7. قالب دستورالعمل ها در کامپیوتر با سازمان چند ثباتی • بخش های مختلف یک دستورالعمل: • انتخاب عمل در ALU (5 بیت) • انتخاب رجیسترهای مبداء • مولتی پلکسر 1(3 بیتی) • مولتی پلکسر 2 (3 بیتی) • انتخاب رجیستر مقصد • دیکدر (3 بیتی) 3 3 3 5 OP-CODE S1 S2 D

  8. پشته (STACK) • پشته یک ساختار Last In First Out (LIFO) است. • دو عمل اصلی روی پشته قابل انجام است: PUSH و POP • دسترسی فقط به عنصر بالای پشته امکانپذیر است و برای دسترسی به این عنصر فقط یک اشاره گر نیاز داریم که نام آن SP = STACK POINTER می باشد. • در ابتدا مقدار SP = 0 می باشد و اولین عنصر در خانه شماره 1 درج می گردد. و آخرین عنصر در آدرس 0 ذخیره خواهد شد. • پس اگر SP = 0 شود و عملیات قبلی درج باشد پشته پر خواهد شد و اگر SP = 0 شود و عملیات قبلی حذف باشد پشته خالی خواهد شد.

  9. دستورات PUSH و POP • ریز عمل های لازم برای انجام عملیات Push، بشرطی که پشته پر نباشد: SP ← SP+1 M[SP] ← DR IF (SP=0) THEN (FULL←1) // EMPTY ← 0 • ریز عمل های لازم برای انجام عملیات Pop بشرطی که پشته خالی نباشد: DR ← M[SP] SP ← SP-1 IF (SP=0) THEN (EMPTY←1)// FULL ← 0 اگر مقدار SP مثلا برابر با 111 باشد با اعمال درج در پشته، SP برابر 000 خواهد شد و این یعنی پشته پر است. اگر مقدار SP مثلا برابر با 001 باشد با اعمال حذف از پشته، SP برابر 000 خواهد شد و این یعنی پشته خالی شده است.

  10. کاربرد پشته • یکی از کاربردهای پشته، ارزیابی عبارات محاسباتی می باشد. البته این عبارات باید به شکل لهستانی (Postfix) نمایش داده شود. • مثال: A*B+C/D => Polish Notation = 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) B A D C محتویات پشته A*B C/D A*B A*B+ C/D

  11. کدام مجموعه از عملیات ذیل می تواند یک پشته را پیاده سازی نماید؟

  12. انواع ساختار پشته • پشته ثباتی: استفاده از تعدادی ثبات برای پیاده سازی پشته: • ویژگی ها: • سرعت دسترسی بالا • قیمت زیاد • تعداد کم خانه های پشته • پشته حافظه ای: استفاده از قسمتی از حافظه به عنوان پشته: • ویژگی ها: • سرعت دسترسی پایین • ارزان • حجم زیاد

  13. تاثیر نوع CPU بر قالب دستورات • CPU تک انباره: • معمولا یک اپرند آکومولاتور است. • دستورات ارجاع به حافظه، تک آدرسی خواهند بود. • CPU چندثباتی: • اپرندها ثبات هستند. • دستورات سه آدرسی ( یا دو آدرسی). • CPU پشته ای: • اپرند تنها مربوط به دستورات Push و Pop می باشد. • دستورات یک آدرسی و صفر آدرسی.

  14. تاثیر قالب دستورالعمل ها بر روی کد برنامه • برای بررسی این موضوع به مقایسه یک عملیات یکسان در چهار حالت مختلف برای آدرس دهی می پردازیم: • مثال: محاسبه A*B+C/D با استفاده از: • دستورات سه آدرسی • دستورات دو آدرسی • دستورات یک آدرسی • دستورات صفرآدرسی

  15. تاثیر قالب دستورالعمل ها بر روی کد برنامه • محاسبه A*B+C/D با استفاده از دستورات سه آدرسی: MUL R1, A, B DIV R2, C, D ADD R3, R1, R2 • محاسبه A*B+C/D با استفاده از دستورات دو آدرسی: MOV R1, A MUL R1, B MOV R2, C DIV R2, D ADD R1, R2

  16. تاثیر قالب دستورالعمل ها بر روی کد برنامه • محاسبه A*B+C/D با استفاده از دستورات تک آدرسی: LDA A MUL B STA TEMP LDA C DIV D ADD TEMP • محاسبه A*B+C/D با استفاده از دستورات صفر آدرسی: PUSH A PUSH B MUL PUSH C PUSH D DIV ADD

  17. مشخصات دستورالعمل ها • قالب دستورالعمل ها وابسته به نوع طراحی CPU است. • بخش های مختلف یک دستورالعمل: • OP-CODE • آدرس ( حافظه ، ثبات ....) • شیوه آدرسدهی • طول دستورالعمل: • می تواند ثابت باشد. • می تواند متغیر باشد. • تنوع دستورالعمل ها: • کامپیوترهای CISC (دارای تعداد زیادی دستورالعمل) • کامپیوترهای RISC (دارای تعداد کمی دستورالعمل)

  18. Complex Instruction Set computer (CISC) • کامپیوتر های مانند سری 80×86 اینتل و سری های بالاتر مثل پنتیوم، از دسته CISC بشمار می روند. • در این کامپیوترها تعداد دستورالعمل ها زیاد (100 تا 500) است. • دارای دستورالعمل هایی هستند که ندرتا استفاده می شوند. • دارای روش های آدرسدهی متنوع (5 تا 20 روش) می باشند. • در این کامپیوترها قالب دستورات با طول متغیر می باشد. • در این کامپیوترها دستوراتی با عملوند حافظه ای وجود دارند. • در این کامپیوترها برنامه نویسی آسان است. • دارای دستورالعملهایی هستند که کارهای زیادی انجام می دهند. • در این کامپیوترها دیکد کردن دستورات به طول می انجامد. • در این کامپیوترها دسترسی به عملوند های حافظه ای زمانبر است. • در این کامپیوترها کار کامپایلر ساده است.

  19. Reduced Instruction Set Computer (RISC) • در این کامپیوترها تعداد دستورات کم است. • دارای روش های آدرس دهی کمی هستند. • دارای رجیسترهای زیادی می باشند. • در این کامپیوترها اپرندها همواره در رجیسترها هستند. • مراجعات به حافظه تنها در دستورات load و store می باشد. • در این کامپیوترها دستورات با طول ثابت می باشند. • اجرای هر دستور در یک سیکل زمانی صورت می پذیرد. • واحد کنترل سخت افزاری طراحی می گردد. • برنامه های این کامپیوتر طولانی خواهند شد. • سرعت اجرای برنامه ها بالا خواهد بود. • دیکد دستورات سریع می باشد. • استفاده از پردازش pipeline بصورت کارا. • استفاده از پنجره های همپوشان برای فراخوانی سریع زیربرنامه ها.

  20. فراخوانی زیربرنامه (رویه)ها با استفاده از پنجره های همپوشان • در RISC برای فراخوانی زیربرنامه ها از پشته های حافظه ای برای ارسال پارامترها ورودی و دریافت پارامترهای خروجی استفاده نمی شود، و بجای آن از پنجره های ثباتی همپوشان استفاده می گردد. • پنجره های ثباتی همپوشان دارای: • ثبات های محلی (local) برای نگهداری متغیرهای محلی می باشند. • ثبات های عمومی (global) برای نگهداری پارامترهای مشترک بین همه رویه ها می باشند. • ثبات های مشترک با • پنجره قبلی برای دریافت پارامترهای ورودی می باشند. • پنجره بعدی برای ارسال پارامترهای خروجی می باشند.

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

  22. common مثال: چهار پنجره همپوشان local win1 تعداد ثبات های قابل دسترسی توسط هر دریچه: Windows Size=L + 2C + G common local win2 common تعداد کل ثبات های مورد نیاز در پردازشگر: Total=W(L + C) + G local win3 common General Registers local win4 common

  23. مثال: پردازنده Berkeley RISCI • مشخصات این CPU: • رجیسترهای 32 بیتی • قالب دستورات 32 بیتی • تعداد دستورات = 31 • روش های آدرسدهی: • بلافصل • ثباتی • نسبی

  24. ویژگی های CISC • یکی از ویژگی های CISC روش های متعدد آدرسدهی حافظه می باشد. • در هر دستورالعمل تعدادی از بیت ها معین کننده نوع آدرس دهی هستند. • تنوع روش های آدرس دهی، زمان اجرا را افزایش می دهد. OP-CODE ADD-MODE ADDRESS

  25. روش های آدرس دهی 1- آدرس دهی ضمنی: عملوند در خود دستور مستتر است. مثال: • CMA • CLE 2- آدرس دهی بلافصل: خود عملوند (و نه آدرس آن) در دستور قرار داده می شود. مثال: • MOV AX, 100 • ADD CX, 25H 3- آدرس دهی ثباتی: عملوند یکی از ثبات های CPU است. مثال: • MOV AX,BX • SUB CX,AX

  26. روش های آدرس دهی 4- روش خود افزایشی یا خود کاهشی: در این روش آدرس عملوند در ثبات وجود دارد و پس از استفاده از حافظه مقدار آدرس بصورت خودکار افزایش یا کاهش می یابد.مثال: • Loop در پردازنده پنتیوم 5- آدرس دهی مستقیم (Direct): آدرس عملوند در داخل دستورالعمل قرار دارد. مثال: • Add M • LDA temp 6- آدرس دهی غیرمستقیم (Indirect): در داخل دستورالعمل مکان (آدرس)، آدرس عملوند را قرار می دهیم. مثال: • Mov ax,[m] • Mov ax,[bx]

  27. روش های آدرس دهی 7- آدرس دهی نسبی: شمارنده برنامه به آدرس درون دستور اضافه می شود: Effective Address = ADDRESS + PC 8- آدرس دهی شاخصدار (Indexed): محتوای ثبات شاخص (Index Register) به آدرس دستور اضافه می شود. 9- آدرس دهی با ثبات پایه (BASE): محتوای رجیستر Base به آدرس دستور اضافه می شود.

  28. جدول انواع روش های آدرس دهی

  29. نمونه سؤال • مقادیر اولیه ثبات های PC،R1 ،R2 و موجودی حافظه در ذیل داده شده است. مشخص کنید اجرای دستورات برنامه زیر مقادیر فوق را چه تغییری می دهد. توجه شود که ثبات ها 16 بیتی، دستورات 2 بایتی و هر خانه حافظه یک بایتی است. ++ علامت آدرسدهی پس افزاینده (post increment) می باشد و کلیه اعداد در مبنـــای 16 هستند.مقادیر اولیه : PC = 308 hR1 = 100 hR2 = FFE0 hMEM[100 h] = 20 h Add [R1],R2.low Mov[R2]++,R1

  30. جواب • با اجرای دستور اول 8بیت پایینی ثبات R2 با محتویات خانه ای از حافظه که R1 به آن اشاره می کند جمع می شود و در همان خانه از حافظه ذخیره می گردد. بدلیل اینکه خانه های حافظه 8 بیتی هستند و فقط 8 بیت پایینی حاصل جمع (100h)، یعنی (00h) در حافطه ذخیره خواهد شد: • با اجرای دستور دوم ابتدا مقدار ثبات R1 در خانه ای از حافظه که ثبات R2 به آن اشاره می نماید ذخیره می گردد و سپس به دلیل وجود عملگر (++) مقدار ثبات R2 نیز یک واحد افزایش می یابد. • مقدار شمارنده برنامه PC نیز با اجرای هر کدام از دستورها دو واحد افزایش می یابد زیرا هر دستور دوبایتی است و در دو خانه از حافظه ذخیره می گردد: Add [r1],r2.low Mem[100]= E0+20=00 Mem[ffe0]= 00 h R2=ffe1 Mov [r2]++,r1 Pc=308+4=30c h

  31. ؟

More Related