1 / 28

C entral P rocessing U nit CPU

C entral P rocessing U nit CPU. واحد پردازش مرکزی ( cpu ) قسمتی از کامپیوتر است که اعظم پردازش داده ها در آن انجام می شود . می توان گفت cpu از سه قسمت اصلی تشکیل شده است، که در شکل زیر آمده است. Register set. CONTROL. ALU.

Download Presentation

C entral P rocessing U nit CPU

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. Central Processing Unit CPU

  2. واحد پردازش مرکزی (cpu) قسمتی از کامپیوتر است که اعظم پردازش داده ها در آن انجام می شود. می توان گفت cpu از سه قسمت اصلی تشکیل شده است، که در شکل زیر آمده است. Register set CONTROL ALU ثباتها داده های موقت را که برای اجرای دستورات نیاز هستند، در خود ذخیره می کنند. البته می توان این داده ها را در حافظه اصلی نیز ذخیره کرد، ولی حافظه یکی از کندترین قطعات در کامپیوتر است.

  3. سازمان ثباتهای عمومی : CPUبرای انجام اعمال خود نیاز به ذخیره اطلاعات و بازیابی به موقع آنها دارد.مثلا برای نگهداری آدرس بازگشت در فراخوانی برنامه ها و یا دخیره نتایج موقت محاسبات و ... این حافظه مورد نیاز اگر در خارج ازCPU باشد، اتلاف زمان زیادی برایCPU در پی دارد و بهتر این است که در خود CPU قرار گیرد و البته ظرفیت آن محدود خواهد بود. یک یا چند ثبات درونCPU این حافظه را تشکیل می دهند. ثباتهای داخلCPU با یکدیگر در ارتباط باشند.

  4. External Input سازمان ثباتهای عمومی : External Output تعداد بیت ها

  5. مثال:برای انجام ریز عمل ابتدا SELA،محتوای و محتوایSELB محتوای را به خروجی MUXها می برند. OPR نیز عمل جمع را برایALU مشخص میکند.و SELDو نیز ورود بار ثبات را فعال میکند تا خروجیALU به منتقل شود. SELA و SELB که یکی از هفت ثبات را انتخاب می کنند. ورود هشتمی را نیز انتخاب کنند. این ورودی حافظه است.OPR ، پنچ بیت است و می تواند 32 ریز عمل را برایALU مشخص کند. مثلا برای انجام ریز عمل کافیست کلمه کنترلی به شکل زیر باشد:که عمل جمع را مشخص میکند. کلمه کنترلی که معرفی شد می تواند از حافظه کنترل بیاید.

  6. سازمان پشته: پشته حافظه ای است که اطلاعات را به نحوی ذخیره می کند که آخرین عنصر ذخیره شده، اولین عنصر قابل برداشت است؛ یعنی دارای یک ساختار آخرین ـ ورودی ـ اولین ـ خروجی ـ (LIFO) میباشد. پشته می تواند خود حافظه ای جداگانه باشد و یا بخشی از حافظه اصلی کامپیوتر را به عنوان پشته تعریف کرد.دو عمل روی پشته قابل تعریف است: عملPUSH که موجب درج عنصری در بالای پشته می شود و عمل POP که موجب حذف عنصر از بالای پشته میگردد.ثباتی که آدرس پشته را در خود ذخیره می کند، ثبات (SP)پشته نام دارد. SP می تواند به خانه پر بالای پشته اشاره کند یا به خانه خالی که این بستگی به پیاده سازی دارد. شکل ساختار یک پشته 64 کلمه ای را نشان میدهد که به صورت حافظه ای مجزا طراحی شده است، به این نوع پیاده سازی پشته، پشته ثباتی نیز می گویند. Last Item

  7. سازمان پشته: در این شکل،SP همواره آدرس کلمه بالای پشته را در خود دارد. طبق شکل Cروی پشته قرار دارد. بنابراین SP=3 می باشد. POPبرای کردن، کلمه ای که در آدرس 3 قرار دارد را باید برداشت و SP را یکی کم کرد. برای PUSH کردن ابتدا باید SP را بای یک جمع کرد و سپس کلمه را داخل پشته وارد کرد.در این شکل ثبات SP ، شش بیتی است. Last Item دو پرچم، برای چک پر یا خالی بودن پشته استفاده می شود: EMTYو FULL. اگر پشته خالی شود EMTY و اگر FULLپرشود . هرگاه SP شامل آدرس63 باشد، جمع آن با یک، SPرا صفر می کند، پس آخرین عنصر در خانه صفر قرار می گیرد و پشته پر می شود.

  8. سازمان پشته: push: عملیاتPUSH و POP با توجه به شکل به این صورت است: : Increment SP : Write to the stack : Check if stack is full : Mark not empty SP = 0, EMTY = 1, FULL = 0 pop: : Readfrom the top of stack : Decrement Stack Pointer : Check if stack is empty : Mark not full توجه:SP در هر دو حالت پر یا خالی بودن پشته به خانه صفر پشته اشاره می کند، ولی بیت های FULL وEMTY تمایز بین این دو حالت را نشان می دهد. نکته: برای PUSHمی توان ابتدا، دیتا را در پشته قرار داد سپس SP را افزایش دهیم و برای POP ابتدا SP را کاهش دهیم و سپس بخوانیم .

  9. سازمان پشته: پشته حافظه ای: شکل قسمتی از حافظه اصلی کامپیوتر را نشان می دهد که به سه بخش تقسیم شده است:برنامه، داده و پشته SP - به کلمه بالای پشته اشاره میکند. همانطور که می دانیم ثباتهای AR و PC نیز آدرس حافظه را در اختیار میگذارند.- PCدر هنگام عملیات واکشی استفاده می شود و به قسمت دستورات اشاره می کند، در فاز اجرا برای خواندن عملوند مورد نیاز است، و به منظور Push یا popکردن کلمات استفاده می شود.

  10. Start Here سازمان پشته: پشته حافظه ای: مثال: * Error Condition PUSH when FULL = 1 POP when EMTY = 1 Memory Stack :PUSH :The first item is stored at address 4000POP : SP = 4001 * Memory Stack PUSH = Address * Register Stack PUSH = Address • طبق شکل اولین کلمه پشته دارای آدرس 4001 می باشد و پشته با کاهش آدرس، رشد میکند. بنابراین اولین کلمه در آدرس 4000 ذخیره شده و آخرین کلمه در آدرس 3000، می توان برای چک پر یا خالی بودن پشته از دو ثبات استفاده کرد که یکی آدرس پایین پشته و دیگری آدرس بالای پشته را در خود دارد. • بعد از هر PUSH،SP با ثبات بالای پشته و پس از POP با ثبات پایین پشته مقایسه می شود.

  11. سازمان پشته: پشته حافظه ای: مثال: 4000 4001 4002 4003 4004 4005 5005 5002 4006 Main program 4005 Stack 5000 5001 5002 5003 5004 5005 5006 Sub1 Sub2

  12. کاربرد پشته در محاسبه عبارات ریاضی: • به منظور استفاده از پشته برای عبارات ریاضی، باید عبارت را به فرم پسوندی یا فرم معکوس لهستانی نوشت. • مثال: • A * B + C * D AB * CD *+ • : ( 3 * 4 ) + ( 5 * 6 )  34 * 56 * + • نکته : • 1- به تعداد عملوند، PUSH کرده ایم یعنی 4 عمل PUSH انجام داده ایم. • 2- تعداد کلمات مورد نیاز در پشته مطابق شکل 3 کلمه است.

  13. فرمت دستور العمل: فرمت دستورات در فصل قبل برای ماشین پایه بررسی شد. معمولا هر فرمت دستور شامل فیلدهای زیر است: 1- یک فیلد کد عملیات (opcode) که مشخص کننده نوع عملی است که انجام میشود. 2- یک فیلد آدرس که یک آدرس حافظه یا یک ثبات پردازنده را مشخص میکند. 3- یک فیلد، مد آدرس دهی را مشخص می کند؛ یعنی روشی که عملوند پیدا میشود را تعیین می کند. سایر فیلدها نیز می توانند استفاده شوند، مثلا فیلدی که تعداد شیفت ها را در یک دستور شیفت مشخص می کند. اغلب کامپیوترها دارای سه نوع ساختار کلی هستند: 1- ساختار مبتنی بر یک آکومولاتور( مانند ماشین پایه در فصل قبل) 2- ساختار چندثباتی (مبتنی بر ثباتهای عمومی) 3- ساختار پشته ای

  14. فرمت دستور العمل: 1- ساختار مبتنی بر یک آکومولاتور: کامپیوتر معرفی شده در فصل قبل مبتنی بر AC است. فرمت دستور در این ماشین فقط دارای یک فیلد آدرس است . مثل ADD X، محتویات حافظه Xرا با ACجمع می کند:AC AC+M[X] 2- ساختار چندثباتی (مبتنی بر ثباتهای عمومی): مثالی از ساختار کامپیوترهای چندثباتی در قبلا بیان شده است. در این کامپیوتر احتیاج به 3 فیلد یا 2 فیلد آدرس دارد. مثلا دستور add , , ،ا را با جمع و حاصل را به منتقل می کند . 3- ساختار پشته ای: از دستورات PUSH و POP استفاده می کنند که این دستورات احتیاج به یک فیلد آدرس دارند. بنابراین دستور push x کلمه ای که در آدرس X قرار دارد را به بالای پشته منتقل میکند. در این ماشین، دستوراتی که روی عملوند ها، عمل می کنند نیاز به فیلد آدرس ندارند. مثلا دستور ADD در این نوع ماشین دو عملوند بالای پشته را برداشته و جمع کرده و حاصل را به پشته باز می گرداند.

  15. فرمت دستور العمل: • مثال: می خواهیم عبارت M[X]=(M[A]+M[B])*(M[C]+M[D]) را با دستورات صفر، یک، دو و سه آدرسی محاسبه کنیم: • X = (A + B)*(C + D) 1) Three-Address Instruction • مزیت :کوتاهی برنامه ها • عیب: طولانی بودن دستور ADD R1, A, B ADD R2, C, D MUL X, R1, R2

  16. فرمت دستور العمل: • ادامه مثال: X = (A + B)*(C + D) • 2) Two-Address Instruction • 3) One-Address Instruction MOV R1, A ADD R1, B MOV R2, C ADD R2, D MUL R1, R2 MOV X, R1 LOAD A ADD B STORE T LOAD C ADD D MUL T STORE X

  17. فرمت دستور العمل: • ادامه مثال: X = (A + B)*(C + D) • 4) Zero-Address Instruction PUSH A PUSH B ADD PUSH C PUSH D ADD MUL POP X

  18. دستورات risc: reduced instruction set computer • دستورات در این ماشین محدود به load و store می باشد. • ارتباط بین ثبات های پردازنده و حافظه از طریق این دو دستور می باشد. • سایر دستورات فقط روی ثبات ها عمل می کنند و هیچ مراجعه ای به حافظه ندارند. • مثال:X = ( A + B ) * ( C + D ) LOAD R1, A LOAD R2, B LOAD R3, C LOAD R4, D ADD R1, R1, R2 ADD R3, R3, R4 MUL R1, R1, R3 STORE X, R1

  19. مدهای آدرس دهی: • مد آدرس دهی مشخص می کند که عملوند چگونه انتخاب شود. • برای برنامه نویس امکاناتی از قبیل اشاره گر به حافظه، شمارنده برای حلقه و ... فراهم می کند. • کاهش تعداد بیت در فیلد آدرس در دستور • دستور برای داشتن چندین مد آدرس دهی باید دارای فیلد مد آدرس دهی چند بیتی باشد مثلا

  20. مدهای آدرس دهی: • مد ضمنی implied: • عملوند به صورت ضمنی در دستورالعمل مشخص است • Examples • مکمل کردن انبارهCom: • عملوند در ثبات انباره است • PUSH : Stack push • عملوند بالای پشته قرار می گيرد • مد بلافصل immediate: • فيلد عملوند شامل عملوند واقعی است • برای مقدار دهی اوليه ثبات ها استفاده می شود • Example: LD #NBR LD # 50 • مد ثباتی register made: • عملوندها در ثبات ها هستند • ثبات مورد نظر با توجه به فيلد آدرس دهی ثبات در دستورالعمل تعيين می شود • k-bit register field can specify any one of 2k registers • Example : LD R1 • مد افزاینده یا کاهنده خودکار autoincrement or auto decrement Implied Mode

  21. مدهای آدرس دهی: • مد ثباتی غیر مستقیم register indirect made: • تعيين يک ثبات که آدرس عملوند را در خود دارد • Example : LD (R1) • مد افزاینده یا کاهنده خودکار Autoincrement or Autodecrement Mode Example (Autoincrement) : LD (R1)+ • مد آدرس دهی مستقیم یا مطلق direct-absolute • آدرس موثر در فيلد آدرس قرار می گيرد • Example : LD ADR • مد آدرس دهی غیر مستقیم indirect address mode • آدرس موثر در آدرسی از حافظه است، که آن آدرس، در فيلد عملوند قرار دارد • Example : LD @ADR

  22. مدهای آدرس دهی: • مد آدرس دهی نسبی relative مقدار PC به فيلد آدرس اضافه می شود تا آدرس موثر توليد گردد. البته بعد از اينکه شمارنده برنامه افزايش يافت • Example : LD $ADR • مد آدرس دهی ایندکس یا شاخص دار indexed • مقدار XR ( ثبات شاخص )به فيلد آدرس اضافه می شود تا آدرس موثر توليد گردد. • Example: LD ADR(XR) • مد آدرس دهی ثبات پایه base register • مقدار BR ثبات پايه به فيلد آدرس اضافه می شود تا آدرس موثر توليد گردد.

  23. مدهای آدرس دهی: مثال: در آدرس های 200 و 201 دستور Load to AC قرار دارد که فیلد آدرس آن شامل عدد 500 است. فیلد دوم دستور که در کلمه اول دستور واقع است، مد آدرس دهی است. می خواهیم با توجه به مقادیر مشخص شده در شکل اثر مدهای مختلف را بررسی کنیم. R1 = 400 -1 (prior)

  24. دستورات کامپیوتر: • دستورات اغلب کامپیوترها در سه شکل دسته بندی می شوند: • دستورات انتقال داده • دستورات دستکاری داده ها • دستورات خاص پردازنده • دستورات انتقال داده: • Load : transfer from memory to a processor register, usually an AC (memory read) • Store: transfer from a processor register into memory (memory write) • Move : transfer from one register to another register • Exchange : swap information between two registers or a register and a memory word • Input/Output : transfer data among processor registers and input/output device • Push/Pop : transfer data between processor registers and a memory stack • مدهای آدرس دهی برای دستور load: • @ : Indirect Address • $ : Address relative to PC • # : Immediate Mode • ( ) : Index Mode, Register Indirect, Autoincrement register

  25. دستورات کامپیوتر: • دستورات دستکاری داده ها • دستورات حسابی • دستورات منطقی و دستکاری بیت • دستورات شیفت • دستورات کنترل برنامه مانند branch , jump, call, return, compare,…

  26. شرایط بیت های وضعیت: • در کامپیوترها ثباتی همراه با ALU در نظر گرفته شده است که در آن بیت های وضعیت ذخیره می شوند. • Bit C (carry) : set to 1 if the end carry C8 is 1 • Bit S (sign) : set to 1 if F7 is 1 • Bit Z (zero) : set to 1 if the output of the ALU contains all 0’s • Bit V (overflow) : set to 1 if the exclusive-OR of the last two carries (C8 and C7) is equal to 1

  27. کامپیوتر risc: reduced instruction set computer • Complex Instruction Set Computer (CISC) • دستورات زیاد معمولا بین 100 تا 250 • بعضی دستورات کاربرد خاص دارند و بندرت بکار می روند • مدهای آدرس دهی زیاد دارند. بین 5 تا 20 مد مختلف • دستورات با طول متفاوت • دارای دستوراتی که می توانند با عملوند های حافظه ای سروکار دارند. • Reduced Instruction Set Computer (RISC) • دستورات نسبتا کم • مدهای آدرس دهی نسبتا کم • دسترسی به حافظه در اینجا فقط منحصر به load و store است. • تمام عملیات داخل ثبات های پردازنده انجام می شود. • دستورات طول ثابت دارند که براحتی ترجمه می شوند. • اجرای دستورات معمولا در یک سیکل انجام می شود. • واحد کنترل سیم بندی شده است.

  28. همپوشي پنجره ها در ماشين RISC: شش ثبات مشترک A,D ده ثبات محلی D شش ثبات مشترک C,D • برای سرعت بخشيدن به عمليات فراخواني و برگشت از زير روال، پنجره های همپوشانی شده استفاده می گردد. • اين پنجره ها برای جلوگيری مصرف زمان برای انتقال پارامترها و برگشت نتايج بين روال ها می باشد. • به هر فراخوانی زیر برنامه، یک پنجره جدید که شامل تعدادی ثبات از فایل ثبات است، تخصیص می یابد. • در واقع یک اشاره گر وجود دارد که هنگام فراخوانی زیر برنامه افزایش می یابد و پنجره جدید را فعال می کند و هنگام بازگشت از زیر برنامه، اشاره گر کاهش یافته و پنجره قبلی فعال می شود و و پنجره زیربرنامه مشترک متغیرها را در اختیار پنجره فعال فعلی قرار می گیرد و سرعت انتقال پارامترها به زیر روال ها افزایش می یابد. ده ثبات محلی C شش ثبات مشترک C, B ده ثبات محلی B ده ثبات عمومی شش ثبات مشترک B, A ده ثبات محلی A

More Related