Transcript اسلايد۵
Central Processing Unit CPU واحد پردازش مرکزی ( )CPUقسمتی از کامپیوتر است که اعظم پردازش داده ها در آن انجام می شود. می توان گفت CPUاز سه قسمت اصلی تشکیل شده است ،که در شکل زیر آمده است. Register set CONTROL ALU ثباتها داده های موقت را که برای اجرای دستورات نیاز هستند ،در خود ذخیره می کنند .البته می توان این داده ها را در حافظه اصلی نیز ذخیره کرد ،ولی حافظه یکی CPUبرای انجام اعمال خود نیاز به ذخیره عمومی : ثباتهای موقع آنها دارد. بازیابی به سازمان و اطالعات مثال برای نگهداری آدرس بازگشت در فراخوانی برنامه ها و یا دخیره نتایج موقت محاسبات و ...این حافظه مورد نیاز اگر در خارج از CPUباشد ،اتالف زمان زیادی برای CPUدر پی دارد و بهتر این است که در خود CPUقرار گیرد و البته ظرفیت آن محدود خواهد بود. یک یا چند ثبات درون CPUاین حافظه را تشکیل می دهند. ثباتهای داخل CPUبا یکدیگر در ارتباط باشند. External Input Clock Input : سازمان ثباتهای عمومی R1 R2 R3 R4 R5 R6 R7 Load (7 lines) MUX SELA MUX A bus 3×8 decoder SELD OPR B bus Arithmetic logic unit (ALU) External Output Output تعداد بیت ها (a) Block diagram 3 SELA 3 SELB 3 SELD (b) Control word 5 OPR SELB 𝟑𝑹 𝑹𝟏 𝑹𝟐 + Clock Input R1 R2 R3 R4 R5 R6 R7 SELB MUX MUX B bus SELA A bus Arithmetic logic unit )(ALU Load )(7 lines 3×8 decoder SELD OPR ابتدا ، SELAمحتوای 𝟐𝑹 و محتوای SELBمحتوای 𝟑𝑹 را به خروجی MUXها می برند. OPRنیز عمل جمع را برای ALUمشخص میکند.و SELDو نیز ورود بار ثبات 𝟏𝑹را فعال میکند تا خروجی ALUبه 𝟏𝑹 منتقل شود SELA .و SELBکه یکی از هفت ثبات را انتخاب می کنند .ورود هشتمی را نیز انتخاب کنند .این ورودی حافظه است. ، OPRپنچ بیت است و می تواند 32ریز عمل را برای ALUمشخص کند .مثال کافیست ریز عمل انجام برای SELA SELB SELD OPR کلمه کنترلی به شکل زیر باشد: 1 Output (a) Block diagram 5 3 OPR SELD 3 SELB 0 1 0 0 1 0 0 1 1 0 0 1 0 3 SELA (b) Control word که عمل جمع را مشخص میکند. پشته حافظه ای است که اطالعات را به نحوی سازمانمیپشته کند :که آخرین عنصر ذخیره شده ،اولین ذخیره عنصر قابل برداشت است؛ یعنی دارای یک ساختار آخرین ـ ورودی ـ اولین ـ خروجی ـ ()LIFO میباشد .پشته می تواند خود حافظه ای جداگانه باشد و یا بخشی از حافظه اصلی کامپیوتر را به عنوان پشته تعریف کرد.دو عمل روی پشته قابل عمل به تواند تعریفمی SP PUSHکه موجب درج عنصری در است: باالی پر خانه پشتهو عمل POPکه موجب حذف عنصر باالی شود پشته می پشتهیا به باالیکند اشاره میگردد.ثباتی که آدرس پشته را از که میاین خانهخودخالی کند ،ثبات ()SPپشته نام ذخیره در پیاده به بستگی. دارد شکل دارد. سازی ساختار یک پشته 64 کلمه ای را نشان میدهد که به صورت Last Item مجزا ای حافظه طراحی شده است ،به پیاده نوع این Address 64 FULL EMTY 4 3 C 2 B 1 A 0 DR SP در این شکل SP،همواره Address پشته: سازمان باالی پشته کلمه آدرس را در خود دارد .طبق 64 شکل Cروی پشته قرار دارد .بنابراین SP=3 FULL EMTY می باشد POP .برای کردن ،کلمه ای که در آدرس 3قرار دارد را 4 C SP باید برداشت و SPرا 3 B 2 یکی کم کرد .برای A 1 PUSHکردن ابتدا باید 0 Last Item SPرا بای یک جمع کرد و سپس کلمه را داخل DR پشته وارد کرد.در این دو پرچم ،برای چک پر یا خالی بودن پشته ، SPشش شکل ثبات .و . FULLاگر پشته خالی EMTY استفاده می شود :است بیتی شود EMTYو اگر FULLپرشود .هرگاه SPشامل آدرس 63باشد ،جمع آن با یکSP ،را صفر می کند ،پس آخرین عنصر در خانه صفر قرار می گیرد و پشته پر می شود. توجه به شکل PUSH: SP SP 1 M [ SP ] DR SP = 0, EMTY = 1, FULL = 0 :سازمان پشته باPOP وPUSH عملیات :به این صورت است : Increment SP : Write to the stack If ( SP 0) then ( FULL 1) : Check if stack is full EMTY 0 POP: DR M [ SP] : Mark not empty : Read from the top of stack : Decrement Stack Pointer SP SP 1 If ( SP 0) then ( EMTY 1) : Check if stack is empty Mark not full FULL 0 حالت پر یا خالی: دو پشته به بودن در هرSP :توجه FULL ولی بیت های،خانه صفر پشته اشاره می کند . تمایز بین این دو حالت را نشان می دهدEMTYو دیتا را در پشته، می توان ابتداPUSH برای:نکته ابتداPOP را افزایش دهیم و برایSP قرار داد سپس . را کاهش دهیم و سپس بخوانیمSP پشته سازمان از:حافظه قسمتی شکل ای: اصلی حافظه پشته را نشان کامپیوتر می دهد که به سه بخش تقسیم شده است: برنامه ،داده و پشته SP به کلمه باالی پشتهاشاره میکند .همانطور که می دانیم ثباتهای AR و PCنیز آدرس حافظه را در اختیار میگذارند. PCدر هنگام عملیاتواکشی استفاده می شود و به قسمت دستورات اشاره می کند ،در فاز اجرا برای خواندن عملوند مورد نیاز است ،و به منظور PUSHیا POP کردن کلمات استفاده می شود. Address Memory unit 1000 PC Program )(instructions 2000 AR Data )(operands 3000 Stack 3997 SP 3998 3999 4000 4001 DR سازمان پشته: * Error Condition پشته حافظه = 1ای PUSH when: FULL POP when EMTY = 1 مثال: M [ SP] DR The first item is stored at address 4000 کلمهPOP اولین : DR پشته طبق شکل M [ SP ] * Memory Stack PUSH = Address * Register Stack PUSH = Address SP = 4001 Address Memory unit 1000 PC Program )(instructions 2000 AR Data )(operands 3000 Stack 3997 SP 3998 3999 4000 4001 Start Here DR Memory Stack : PUSH : SP SP 1 SPمی باشد 4001 آدرس SP دارای 1 و پشته با کاهش آدرس ،رشد میکند .بنابراین اولین کلمه در آدرس 4000ذخیره شده و آخرین کلمه در آدرس ،3000می توان برای چک پر یا خالی بودن پشته از دو ثبات استفاده کرد که یکی آدرس پایین پشته و دیگری آدرس باالی پشته را در خود دارد. بعد از هر SP،PUSHبا ثبات باالی پشته و پس از 4000 4001 4002 4003 4004 4005 4006 :سازمان پشته :پشته حافظه ای :مثال … … … … Call sub1 … … 5005 5002 Main program 5000 5001 5002 5003 5004 5005 5006 … Call sub2 … … Call sub2 … RET Sub1 4005 … … … … … … RET Sub2 Stack کاربرد پشته در محاسبه عبارات ریاضی: منظور استفاده از پشته برای عبارات به ریاضی ،باید عبارت را به فرم پسوندی یا فرم معکوس لهستانی نوشت. مثال: A * B + C * D AB * CD * + : ( 3 * 4 ) + ( 5 * 6 ) 34 * 56 * + l 6 30 5 5 4 42 12 12 12 12 3 3 + * 6 5 * 4 3 نکته : -1به تعداد عملوند PUSH ،کرده ایم یعنی 4 عمل PUSHانجام داده ایم. -2تعداد کلمات مورد نیاز در پشته مطابق شکل 3کلمه است. فرمت دستورات در فصل قبل برای شد. فرمت دستور العمل: ماشین پایه بررسی معموال هر فرمت دستور شامل فیلدهای زیر است: -1یک فیلد کد عملیات )(OPCODE عملی است که انجام میشود. -2یک فیلد آدرس که یک آدرس حافظه یا یک ثبات پردازنده را مشخص میکند. -3یک فیلد ،مد آدرس دهی را مشخص می کند؛ یعنی روشی که عملوند پیدا میشود را تعیین می کند. سایر فیلدها نیز می توانند استفاده شوند ،مثال فیلدی که تعداد شیفت ها را در یک دستور شیفت مشخص می کند. که مشخص کننده نوع اغلب کامپیوترها دارای سه نوع ساختار کلی هستند: -1ساختار مبتنی بر یک آکوموالتور( مانند ماشین پایه در فصل قبل) -2ساختار چندثباتی (مبتنی بر ثباتهای عمومی) -3ساختار پشته ای -1ساختار مبتنی بر یک آکوموالتور: کامپیوتر معرفی شده در فصل قبل مبتنی بر ACاست. ماشین فقط دارای یک فیلد آدرس در این فرمت دستور فرمت العمل: دستور است . مثل ، ADD Xمحتویات حافظه Xرا با ACجمع می کندAC AC+M[X]: -2ساختار چندثباتی (مبتنی بر ثباتهای عمومی): مثالی از ساختار کامپیوترهای چندثباتی در قبال بیان شده است .در این کامپیوتر احتیاج به 3فیلد یا 2 فیلد آدرس دارد .مثال دستور 𝟑𝑹 ، ADD 𝑹𝟏 , 𝑹𝟐 ,ا 𝟐𝑹 را با 𝟑𝑹 جمع و حاصل را به 𝟏𝑹 منتقل می کند 𝑹𝟏 𝑹𝟐 + 𝑹𝟑 . -3ساختار پشته ای: از دستورات PUSHو POPاستفاده می کنند که این دستورات احتیاج به یک فیلد آدرس دارند .بنابراین دستور PUSH Xکلمه ای که در آدرس Xقرار دارد را به باالی پشته منتقل میکند. در این ماشین ،دستوراتی که روی عملوند ها ،عمل می کنند نیاز به فیلد آدرس ندارند. مثال دستور ADDدر این نوع ماشین دو عملوند باالی پشته را برداشته و جمع کرده و حاصل را به پشته باز فرمت دستور العمل: • مثال: می خواهیم عبارت )]M[X]=(M[A]+M[B])*(M[C]+M[D را با دستورات صفر ،یک ،دو و سه آدرسی محاسبه کنیم: )• X = (A + B)*(C + D 1) Three-Address ] R1 M [ A] M [ B ADD R1, Instruction A, B ] R 2 M [C ] M [ D R2, C, D ADD M [ X ] R1 R 2 X, R1, R2 MUL • مزیت :کوتاهی برنامه ها • عیب :طوالنی بودن دستور :فرمت دستور العمل X = (A + • 2) Two-Address Instruction R1 M [ A] R1 R1 M [ B ] MOV R1, A ADD R1, B MOV R2, C ADD R2, D R 2 M [C ] R2 R2 M [ D] MUL R1, R2 R1 R1 R 2 MOV X, R1 M [ X ] R1 • 3) One-Address Instruction LOAD A AC M [ A] ADD B STORE T LOAD C ADD D MUL T STORE X AC AC M [ B ] M [T ] AC AC M [C ] AC AC M [ D ] AC AC M [T ] M [ X ] AC :• ادامه مثال B)*(C + D) :فرمت دستور العمل :• ادامه مثال X = (A + • 4) Zero-Address Instruction PUSH A PUSH B ADD PUSH C PUSH D TOS ( A B ) TOS C TOS D TOS (C D ) TOS (C D ) ( A B ) ADD MUL POP TOS A TOS B X M [ X ] TOS B)*(C + D) دستورات :RISC REDUCED INSTRUCTION SET COMPUTER • دستورات در این ماشین محدود به loadو storeمی باشد. • ارتباط بین ثبات های پردازنده و حافظه از طریق این دو دستور می باشد. • سایر دستورات فقط روی ثبات ها عمل می کنند و هیچ )X=(A+B)*(C+D lمثال: مراجعه ای به حافظه ندارند. ]R1 M [ A ]R2 M [ B ] R 3 M [C LOAD R1, A LOAD R2, B LOAD R3, C ]R4 M [ D R1, R1, R2 R1 R1 R 2 R3, R3, R4 R 3 R 3 R 4 ADD R1, R1, R3 R1 R1 R 3 MUL LOAD R4, D X, R1 M [ X ] R1 ADD STORE مدهای آدرس دهی: • مد آدرس دهی مشخص می کند که عملوند چگونه انتخاب شود. برای برنامه نویس امکاناتی از قبیل اشاره گر بهحافظه ،شمارنده برای حلقه و ...فراهم می کند. کاهش تعداد بیت در فیلد آدرس در دستور دستور برای داشتن چندین مد آدرس دهی باید دارایباشد مثال فیلد مد آدرس دهی Opcode Addressچند بیتیMode مدهای آدرس دهی: • مد ضمنی :implied • • عملوند به صورت ضمنی در دستورالعمل مشخص است Examples • مکمل کردن انباره Com: • • عملوند در ثبات انباره است PUSH : Stack push • عملوند باالی پشته قرار می گیرد • مد بالفصل :immediate • • • فیلد عملوند شامل عملوند واقعی است برای مقدار دهی اولیه ثبات ها استفاده می شود LD # 50 Example : LD #NBR • مد ثباتی :register made • • عملوندها در ثبات ها هستند ثبات مورد نظر با توجه به فیلد آدرس دهی ثبات در دستورالعمل تعیین می شود • k-bit specify any one of 2k registers Mode ACregister R1 field canImplied مدهای آدرس دهی: • مد ثباتی غیر مستقیم :register indirect made • • تعیین یک ثبات که آدرس عملوند را در خود دارد )Example : LD (R1 ]AC M [R1 • مد افزاینده یا کاهنده خودکار Autoincrement or AC M [ R1], R1 R1 1 Autodecrement Mode Example (Autoincrement) : LD (R1)+ • مد آدرس دهی مستقیم یا مطلق direct-absolute • • آدرس موثر در فیلد آدرس قرار می گیرد Example : LD ADR • مد آدرس دهی غیر مستقیم indirect address mode • استAC ، M [M آدرس موثر در آدرسی از]][ ADR که آن آدرس ،در فیلد عملوند حافظه قرار دارد • Example : LD @ADR مدهای آدرس دهی: • مد آدرس دهی نسبی relative مقدار PCبه فیلد آدرس اضافه می شود تا آدرس موثر تولید گردد .البته یافت افزایش AC برنامهM [ PC بعد از اینکه شمارنده ]ADR • Example : LD $ADR • مد آدرس دهی ایندکس یا شاخص دار indexed • ACاضافه می شود تا آدرس موثر آدرس فیلد مقدار ( XRثبات شاخص] ) M به[ ADR XR تولید گردد. • )Example : LD ADR(XR • مد آدرس دهی ثبات پایه base register • مقدار BRثبات پایه به فیلد آدرس اضافه می شود تا آدرس موثر تولید گردد. مدهای آدرس دهی: قرار دارد مثال :در آدرس های 200و 201دستور Load to AC که فیلد آدرس آن شامل عدد 500است .فیلد دوم دستور که در کلمه اول دستور واقع است ،مد آدرس دهی است .می خواهیم با توجه به مقادیر مشخص شده در شکل اثر مدهای مختلف را بررسی کنیم. Memory Mode Load to AC Address 200 PC = 200 AC آدر س موث ر 202 400 800 500 مستقیم 202 400 500 201 بالفصل 202 400 300 800 غیرمستقیم 202 400 325 702 نسبی 400 900 600 شاخص دار 400 - ثباتی 700 400 ثباتی غیر مستقیم 400 پس افزاینده PC R1 Address = 500 201 Next instruction 202 450 399 700 400 800 500 900 600 202 325 702 202 400 202 400 300 800 R1 = 400 XR = 100 AC 202 401 700 مد آدرس دهی :دستورات کامپیوتر :• دستورات اغلب کامپیوترها در سه شکل دسته بندی می شوند • • دستورات • دستورات دستورات انتقال داده دستکاری داده ها خاص پردازنده :دستورات انتقال داده • • • • • • 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 • دستورات کامپیوتر: • دستورات دستکاری داده ها • • دستورات • دستورات دستورات حسابی منطقی و دستکاری بیت شیفت • دستورات کنترل برنامه مانند …branch , jump, call, return, compare, :شرایط بیت های وضعیت در نظر گرفته شده است که درALU در کامپیوترها ثباتی همراه با .آن بیت های وضعیت ذخیره می شوند Z C S V • 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 • کامپیوتر :RISC REDUCED INSTRUCTION SET COMPUTER • )Complex Instruction Set Computer (CISC • • بعضی دستورات کاربرد خاص دارند و بندرت بکار می روند • مدهای آدرس دهی زیاد دارند .بین 5تا 20مد مختلف • دستورات با طول متفاوت • دارای دستوراتی که می توانند با عملوند های حافظه ای دستورات زیاد معموال بین 100تا 250 سروکار دارند. • )Reduced Instruction Set Computer (RISC • • مدهای آدرس دهی نسبتا کم • دسترسی به حافظه در اینجا فقط منحصر به loadو storeاست. • تمام عملیات داخل ثبات های پردازنده انجام می شود. • دستورات طول ثابت دارند که براحتی ترجمه می شوند. • اجرای دستورات معموال در یک سیکل انجام می شود. • واحد کنترل سیم بندی شده است. دستورات نسبتا کم همپوشي پنجره ها در ماشین :RISC • شش ثبات روال، برای سرعت بخشیدن به عملیات فراخواني و برگشت از زیر مشترک A,D پنجره های همپوشانی شده استفاده می گردد. • ده ثبات محلی D این پنجره ها برای جلوگیری مصرف زمان برای انتقال پارامترها شش ثبات مشترک C,D و برگشت نتایج بین روال ها می باشد. • به هر فراخوانی زیر برنامه ،یک پنجره جدید که شامل تعدادی ثبات از فایل ثبات است ،تخصیص می یابد. • ده ثبات محلی C شش ثبات فراخوانی زیر برنامه در واقع یک اشاره گر وجود دارد که هنگام مشترک C, B افزایش می یابد و پنجره جدید را فعال می کند و هنگام بازگشت پنجرهمحلی ده ثبات قبلی Bفعال از زیر برنامه ،اشاره گر کاهش یافته و شش ثبات اختیار می شود و و پنجره زیربرنامه مشترک متغیرها ثبات مشترک را درده B, A انتقال پارامترها پنجره فعال فعلی قرار می گیرد و سرعت عمومی به زیر روال ها افزایش می یابد .ده ثبات محلی A