1 / 86

Department of Computer and IT Engineering University of Kurdistan Computer Architecture

Department of Computer and IT Engineering University of Kurdistan Computer Architecture CPU Structure By: Dr. Alireza Abdollahpouri. اجزا تشکیل دهنده CPU. مجموعه رجيسترها. Control. ALU. داده ها را ذخیره میکند. مشخص میکند که چه عملی در چه زمانی انجام گیرد. از کلاک استفاده میکند

Download Presentation

Department of Computer and IT Engineering University of Kurdistan Computer Architecture

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. Department of Computer and IT Engineering University of Kurdistan Computer Architecture CPU Structure By: Dr. AlirezaAbdollahpouri

  2. اجزا تشکیل دهندهCPU مجموعه رجيسترها Control ALU داده ها را ذخیره میکند • مشخص میکند که چه عملی در چه زمانی انجام گیرد. • از کلاک استفاده میکند • بصورت سخت افزاری و یا میکروپروگرام سیگنال لازم را به بخشهای مختلف میفرستد. عملیات محاسباتی و منطقی را انجام میدهد

  3. معماريهاي مختلف CPU • سازمان تک انباره ای • سازمان چند رجيستري مانند SPARC, MIPS, Alpha, • سازمان پشته ای مثال: ماشین های X86 دارای یک معماری با مجموعه دستورات پیچیده ای است که تمامی جنبه های معماری های فوق را در بر میگیرد.

  4. اهمیت معماری CPU چقدر است؟ • استفاده کننده نهائی: • هیچ! • برنامه نویس سطح بالا • خیلی کم. تا حدی که بتواند کامپایلر مناسب را انتخاب نموده و عملکرد برنامه را بهینه کند. • برنامه نویس سطح پائین/ طراح OS • این افراد باید اطلاعات کافی در مورد رجیسترها، ساختار حافظه، انواع داده های موجود و عملکرد دستورات داشته باشند. • طراحان کامپیوتر: • این افراد نیز باید اطلاعات فوق را داشته باشند تا بتوانند اجزا سخت افزای مورد نیاز را انتخاب کنند.

  5. ساختار رجیسترها • یکی از مهمترین ویژگی های تعیین کننده برا ی یک CPU ساختار رجیسترهای داخلی آن است. این رجیستر ها به دو دسته تقسیم بندی میشوند: • رجیسترهائی که استفاده کننده آنها را می بیند! و میتواند از طریق برنامه نویسی به آنها دسترسی داشته باشد • Data registers • Address registers • index register • segment pointer • stack pointer • Condition codes (flags) • رجیسترهائی که برای کنترل و نگهداری وضعیت CPU بکار میروند. این رجیسترها توسط واحد کنترل برای اجرای دستورات مورد استفاده واقع میشوند. • Program counter • Instruction register

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

  7. سازمان رجيستر عمومی • GENERAL REGISTER • تمامی رجیسترهامی توانند به عنوان اپراند دستورالعملهای ALU بکار برده شوند. • مثال : رجیسترهای داده در پردازنده پنتیوم

  8. ورودي خارجي(حافظه) clock R1 R2 R3 R4 R5 R6 R7 Loads DEC MUXA MUXB S1 A B S2 D ALU OP-CODE Output

  9. مجموعه رجیسترهای عمومی و ALU مشترک • در شکل فوق: • خروجی هر رجیستر به دو MUX متصل شده است. اینکار باعث میشود تا هر یک از آنان را بتوان آزادانه بعنوان مبدا عملیات ALU انتخاب نمود. • برای اینکه بتوان خروجی ALU را به هر یک از رجیستر ها منتقل نمود این خروجی به ورودی تمام رجیسترها متصل شده و علاوه بر آن با استفاده از یک دیکودر مقصد عملیات را مشخص میکنیم. • یک ALU ممکن است که قادر به انجام عملیات مختلفی باشد، برای انتخاب یک عمل مورد نیاز از خطوط کنترلی OPR استفاده میشود.

  10. مثالی از عملیات ALU • برای مثال فرض کنید که میخواهیم میکرو اپریشن زیر را انجام دهیم: • R1  R2 + R3 • برای انجام این عمل واحد کنترل باید سیگنالهای لازم را برای انتخاب ورودیهای متناسب دیکودر MUXA, MUXB, و ALU انتخاب نماید: • تعیین مقدار مناسب برای ورودی MUXA یعنی S1 طوری که محتوی رجیستر R2 در روی باس A قرار گیرد. • تعیین مقدار مناسب برای ورودی MUXB یعنی S2 طوری که محتوی رجیستر R3 در روی باس B قرار گیرد. • تعیین مقدار لازم برای ورودی OPR که ALU را وادار به انجام عمل جمع A+B نماید. • در نهایت انتخاب مقدار مناسب برای دیکور D به نحویکه خروجی ALU را به رجیستر R1 منتقل نماید.

  11. قالب دستورالعملها • انتخاب عمل در ALU • انتخاب رجیسترهای مبدا • مولتی پلکسر 1 • مولتی پلکسر 2 • انتخاب رجیستر مقصد • دیکدر • اين چهار قسمت قبل از وارد شدن پالس ساعت بايد آماده ياشند. • ALU از مدارات بسيار سريع ساخته ميشود تا نتيجه را سريعتر آماده كند. 5 3 3 3 OP-CODE S1 S2 D

  12. عملیات ALU • در CPU انجام عملیات محاسباتی و منطقی بر عهده ALU است. عمل شیفت را میتوان توسط یک Shifter که قبل و یا بعد از ALU قرار میگیرد انجام داد. در مواردی هم ممکن است عمل شیفت توسط خودALU انجام شود. در فصل 4 طراحی چنین ALU را دیدیم که عملیات آن در جدول مقابل ذکر شده است.

  13. مثال • برای انجام میکرواپریشن زیر R1  R2 – R3 میبایست کلمه کنترلی بصورت زیر انتخاب شود: همانطور که قبلا دیدیم یک راه پیاه سازی واحد کنترل استفاده از میکروپروگرامینگ است که در آن هر کلمه کنترلی در یک محل از حافظه ROM ذخیره خواهد شد.

  14. ارتباط با حافظه INPUT R1 R2 R3 R4 R5 R6 R7 DEC MUX MUX ALU

  15. سازمان پشته يا Stack • ساختار LIFO • PUSH • POP • دسترسی فقط به عنصر بالای پشته امکانپذیر است • فقط یک اشاره گر نیاز داریم • SP = STACK POINTER

  16. PUSH • SP ← SP+1 • M[SP] ← DR • IF ( SP=0) THEN (FULL←1) • EMPTY ← 0 يك پشته 64 كلمه اي 63 3 2 1 0 FULL EMPTY SP 6 بيتي DR

  17. POP • DR ← M[SP] • SP ← SP-1 • IF ( SP=0) THEN ( EMPTY ←1) • FULL ← 0 63 3 2 1 0 FULL EMPTY SP 6 بيتي DR

  18. کاربرد- استفاده برای صدا زدن برنامه فرعی • صدا زدن برنامه فرعی(Procedure call) • call label • Push return address on stack; • Jump to label • برگشت از تابع(Procedure return) • ret • Pop address from stack; • Jump to address

  19. کاربرد- استفاده در برنامههايبرگشتپذير (recursive) • استفاده از پشته باعث میشود تا امکان پیاده سازی برنامه های برگشت پذیر فراهم گردد. • با استفاده از پشته میتوان برای هر نسخه از تابع صدا زده شده حافظه جداگانه ای در نظر گرفت • آرگومانها و متغیرهای محلی را میتوان در پشته ذخیره نمود. • آدرس دهی متغیرهای محلی و آرگومانها نسبت به موقعیت پشته انجام میشود. • بازگشت از توابع عکس حالتی است که صدا زده شده اند

  20. کاربرد • عبارات محاسباتی • A*B+C/D • POLISH NOTATION • AB*CD/+

  21. 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)

  22. AB*CD/+ PUSH A PUSH B B A

  23. AB*CD/+ PUSH A PUSH B MUL PUSH C PUSH D D C A*B

  24. AB*CD/+ PUSH A PUSH B MUL PUSH C PUSH D DIV C/D A*B

  25. AB*CD/+ PUSH A PUSH B MUL PUSH C PUSH D DIV ADD A*B+ C/D

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

  27. انواع ساختار پشته • پشته رجيستري • سرعت دسترسی بالا • قیمت زیاد • تعداد کم • پشته حافظه ای • کند • ارزان • حجم زیاد

  28. تاثیر نوع CPU بر قالب دستورات • تک انباره • معمولا یک اپرند آکومولاتور است • دستورات تک آدرسی • چندرجيستری (رجيسترهاي عمومي) • اپرندها رجيسترهستند • دستورات سه آدرسی ( یا دو آدرسی) • پشته ای • فقط اپرند مربوط به پوش یا پاپ • دستورات یک آدرسی و صفر آدرسی

  29. تاثیر قالب دستورالعمل ها بر روی سرعت اجرا • مقایسه یک عملیات یکسان در سه حالت مختلف • محاسبه (A+B)*(C+D)X= • دستورات سه آدرسی • دستورات دو آدرسی • دستورات یک آدرسی • دستورات صفرآدرسی

  30. دستورات سه آدرسی در کامپیوترهای سه‌آدرسی، هر قسمت آدرس، برای مشخص نمودن یک ثبات پردازنده و یا آدرس یک عملوند در حافظه تخصیص داده می‌شود. X = (A+B) * (C+D) • ADD R1, A, B R1  M[A] + M[B] • ADD R2, C, D R2  M[C] + M[D] • MUL X, R1, R2 M[X]  R1 × R2

  31. دستورات دو آدرسی دستورات دوآدرسی معمول‌ترین فرمت دستور در کامپیوترها هستند. قسمت آدرس می‌تواند یک رجيسترپردازنده یا یک خانه حافظه را مشخص نماید. X = (A+B) * (C+D) • MOV R1, A R1  M[A] • ADD R1, B R1  R1 + M[B] • MOV R2, C R2  M[C] • ADD R2, D R2  R2 + M [D] • MUL R1, R2 R1  R1 × R2 • MOV X, R1 M[X]  R1

  32. دستورات یک آدرسی دستورات یک‌آدرسی، برای تمام عملیات بر روی داده‌ها، رجيستر اکومولاتور AC را به‌کار می‌برند. X = (A+B) * (C+D) LOAD A AC  M[A] ADD B AC  AC + M[B] STORE T M[T] AC LOAD C AC  M[C] ADD D AC  AC + M[D] MUL T AC  AC × M[T] STORE X M[X]  AC

  33. دستورات صفرآدرسی • PUSH A • PUSH B • ADD • PUSH C • PUSH D • ADD • MUL • POP X X = (A+B) * (C+D)

  34. X = (A + B) × (C + D) LOAD R1, A R1  M[A] LOAD R2, B R2  M[B] LOAD R3, C R3  M[C] LOAD R4, D R4  M[D] ADD R1, R1, R2 R1  R1 + R2 ADD R3, R3, R4 R3  R3 + R4 MUL R1, R1, R3 R1  R1 × R3 STORE X, R1 M[X]  R1 دستوراتكامپيوترهاي RISC

  35. روشهاي آدرس‌دهی دستوراتیککامپیوترعملیرابررویدادهذخیرهشدهدرحافظهویارجیسترهای CPU انجاممیدهند. روشمشخصکردنعملوندیکدستورالعملحالاتآدرسدهیویا addressing mode نامیدهمیشود. اصولا حالات مختلف آدرس‌دهی عملوند دستور، تسهیلات زیر را در سیستم فراهم می‌آورد: • قابلیت ایجاد شمارنده برای برنامه حلقه، و شاخص‌بندی در داده‌ها و هم‌چنین ایجاد اشاره‌گر حافظه و جابجایی برای کاربر فراهم می‌شود • امکان تقلیل تعداد بیت‌های قسمت آدرس دستور، فراهم می‌شود.

  36. انواعحالتهایآدرسدهی • آدرسدهیضمنی • آدرسدهیبلادرنگ • آدرسدهیثبات • آدرسدهیغیرمستقیمبکمکثبات • آدرسدهیافزایشویاکاهشیخودکار • آدرسدهیمستقیم • آدرسدهیغیرمستقیم • آدرسدهینسبی • آدرسدهیشاخص • آدرسدهیباثباتپابه • Implied Addressing Mode • Immediate Addressing Mode • Register Addressing • Register Indirect Addressing • Autoincrement or Autodecrement • Direct Addressing Mode • Indirect Addressing Mode • Relative Addressing Mode • Index Addressing Mode • Base Register Addressing Mode

  37. آدرسدهیضمنی • Implied Addressing Mode دراینروشاپراندهابصورتضمنیدرداخلدستورالعملمشخصمیشوند. • مثلدستور CMA کهمحتویآکومولاتوررامتمممیکند. • دستوراتصفرآدرسیمورداستفادهدرکامپیوترهای stack machine نیزازآدرسدهیضمنیاستفادهمیکنندزیراعملوندهابطورضمنیدربالایپشتهدرنظرگرفتهمیشوند.

  38. آدرسدهیبلادرنگ • Immediate Addressing Mode دراینروشمقدارعملونددرداخلخوددستورالعملدادهمیشود. اینمدآدرسدهیبرایمقداردهیرجیسترهابکارمیرود. • مثلدستورزیردرپردازنده x86 MOV CX, 1024 Operand Instruction

  39. آدرسدهیرجیستري • Register Addressing دراینروشعملوندهادرداخلرجیسترهایپردازندهقراردارند. بااستفادهاز K بیتمیتوانتعداد 2kرحیستررامشخصنمود. • مثلدستورزیردرپردازنده x86 ADD AL, BL CPU registers R Instruction Operand

  40. آدرسدهیرجيستريغیرمستقیم • Register Indirect Addressing • دراینروشدستورالعملرجیستریرامشخصمیکندکهمحتویآنآدرسعملونددرحافظهرامشخصخواهدنمود. • مثلدستورزیردرپردازنده x86 MOV BX,[SI] Memory CPU registers Instruction R Operand

  41. آدرسدهیافزایشویاکاهشیخودکار • Autoincrement or Autodecrement addressing • اینروشمشابهآدرسدهیرجيستريغیرمستقیماستبااینتفاوتکهمقداررجیستربعدیاقبلازاستفادهبرایمحاسبهآدرسموثرافزایشویاکاهشمیابد. Memory CPU registers R Instruction Operand R=R+1 R=R-1

  42. آدرسدهیمستقیم • Direct Addressing Mode دراینروشآدرسعملونددرداخلدستورالعملذکرمیشود. • مثلدستورزیردرپردازنده x86 MOV AX,[3000] Memory Instruction Address Operand

  43. آدرسدهیغیرمستقیم • Indirect Addressing Mode دراینروشآدرسموجوددردستورالعملمحلیازحاقطهرامشخصمیکندکهآدرسعملونددرآنجاقراردارد. دراین حالتبرایدسترسیبهعملونددوباررجوعبهحافطهموردنیازاست: یکباربرایپیداکردنآدرسآنوباردیگربرایخواندنمقدارآن. Memory Instruction Operand Address

  44. آدرسدهینسبی • Relative Addressing Mode • دراینروشآدرسموثرازجمعآدرسمشخصشدهدرداخلدستورالعملومحتوی PC حاصلمیشود: Effective Address= address part of instruction + content of PC Memory Instruction Address Operand + PC

  45. آدرسدهیشاخصدار • Index Addressing Mode • دراینروشآدرسموثرازجمعآدرسمشخصشدهدرداخلدستورالعملومحتوییکرجیسترمخصوصکهرجیسترایندکسنامیدهمیشودحاصلمیشود: Effective Add.= address part of instruction + content of index register • معمولاازاینروشبرایدسترسیبهدادههاییکآرایهاستفادهمیشود. کهمحلشروعدادههادرحافظهدردستورالعملمشخصمیشودوفاصلهدادهموردنظرتامحلشروعتوسطرجیسترایندکستعیینمیگردد. Memory Instruction Address Operand + Index Register

  46. آدرسدهیباثباتپایه • Base Register Addressing Mode • اینروشمشابهآدرسدهیباثباتشاخصاستبااینتفاوتکهبجایثباتشاخصازثباتپایهاستفادهمیشود. تفاوتاین دوروشدرنحوهاستفادهاز رجیسترهاست. Effective Add.= address part of instruction + content of Base register Memory Instruction Address Operand + Base Register

  47. PC = 200 R1 = 400 XR = 100 AC آدرس حافظه مثالعددی مقدارآکومولاتوردرصورتاجرایدستورموجوددرآدرس 200 برایحالتهایمختلفآدرسدهیچیست؟ 200 بارکردن AC حالت 201 500 = آدرس 202 دستور بعدی 399 450 400 700 500 800 600 900 702 325 800 300

  48. مثالعددی

  49. مجموعهدستوراتکامپیوتر • دستوراتمورداستفادهدرکامپیوترهایمختلفازلحاظتعداد،عملکرد،نشانههایمورداستفادهبرایاسمبلی،وکدباینریبسیارمتفاوتهستندبااینوجودتمامیآنهادارایدستوراتیازگروههایزیرمیباشند: • دستوراتانتقالداده • دستوراتمحاسباتی،منطقیوجابجائی • دستوراتکنترلبرنامه

  50. دستورات معمول انتقال اطلاعات انتقالدادهبینحافظهورجیسترها انتقالدادهبینرجیسترها انتقالدادهبینحافظهورجیسترها تعویصدادههایدورحیسترویایکرجیستروحافظه انتقالدادهبینورودی/خروجیورجیسترها انتقالدادهبینپشتهورجیسترها

More Related