اجزا تشکیل دهنده CPU
اسلاید 1: Department of Computer and IT EngineeringUniversity of KurdistanComputer ArchitectureCPU StructureBy: Dr. Alireza Abdollahpouri
اسلاید 2: 2Controlمجموعه رجيسترهاALUعملیات محاسباتی و منطقی را انجام میدهدمشخص میکند که چه عملی در چه زمانی انجام گیرد.از کلاک استفاده میکندبصورت سخت افزاری و یا میکروپروگرام سیگنال لازم را به بخشهای مختلف میفرستد.داده ها را ذخیره میکنداجزا تشکیل دهنده CPU
اسلاید 3: 3معماريهاي مختلف CPU سازمان تک انباره ایسازمان چند رجيستري مانند SPARC, MIPS, Alpha, سازمان پشته ایمثال: ماشین های X86 دارای یک معماری با مجموعه دستورات پیچیده ای است که تمامی جنبه های معماری های فوق را در بر میگیرد.
اسلاید 4: 4استفاده کننده نهائی:هیچ!برنامه نویس سطح بالا خیلی کم. تا حدی که بتواند کامپایلر مناسب را انتخاب نموده و عملکرد برنامه را بهینه کند.برنامه نویس سطح پائین/ طراح OS این افراد باید اطلاعات کافی در مورد رجیسترها، ساختار حافظه، انواع داده های موجود و عملکرد دستورات داشته باشند.طراحان کامپیوتر: این افراد نیز باید اطلاعات فوق را داشته باشند تا بتوانند اجزا سخت افزای مورد نیاز را انتخاب کنند.اهمیت معماری CPU چقدر است؟
اسلاید 5: 5ساختار رجیسترهایکی از مهمترین ویژگی های تعیین کننده برا ی یک CPU ساختار رجیسترهای داخلی آن است. این رجیستر ها به دو دسته تقسیم بندی میشوند:رجیسترهائی که استفاده کننده آنها را می بیند! و میتواند از طریق برنامه نویسی به آنها دسترسی داشته باشدData registers Address registers index register segment pointer stack pointer Condition codes (flags) رجیسترهائی که برای کنترل و نگهداری وضعیت CPU بکار میروند. این رجیسترها توسط واحد کنترل برای اجرای دستورات مورد استفاده واقع میشوند.Program counter Instruction register
اسلاید 6: 6سازمان تک انباره اییک آکومولاتورمشابه با کامپیوتر پایهفصل پنجم4096*16 RAMARPCDRACINPRIRTROUTRBUSALUADDRESSهمواره یکی از اپرندها اکومولاتور است
اسلاید 7: 7سازمان رجيستر عمومیGENERAL REGISTERتمامی رجیسترها می توانند به عنوان اپراند دستورالعملهای ALU بکار برده شوند.مثال : رجیسترهای داده در پردازنده پنتیوم
اسلاید 8: 8R1R2R3R4R5R6R7MUXAMUXBDECALUورودي خارجي(حافظه)LoadsOP-CODES1S2DOutputABclock
اسلاید 9: 9در شکل فوق:خروجی هر رجیستر به دو MUX متصل شده است. اینکار باعث میشود تا هر یک از آنان را بتوان آزادانه بعنوان مبدا عملیات ALU انتخاب نمود.برای اینکه بتوان خروجی ALU را به هر یک از رجیستر ها منتقل نمود این خروجی به ورودی تمام رجیسترها متصل شده و علاوه بر آن با استفاده از یک دیکودر مقصد عملیات را مشخص میکنیم.یک ALU ممکن است که قادر به انجام عملیات مختلفی باشد، برای انتخاب یک عمل مورد نیاز از خطوط کنترلی OPR استفاده میشود.مجموعه رجیسترهای عمومی و ALU مشترک
اسلاید 10: 10برای مثال فرض کنید که میخواهیم میکرو اپریشن زیر را انجام دهیم:R1 R2 + R3برای انجام این عمل واحد کنترل باید سیگنالهای لازم را برای انتخاب ورودیهای متناسب دیکودر MUXA, MUXB, و ALU انتخاب نماید:تعیین مقدار مناسب برای ورودی MUXA یعنی S1 طوری که محتوی رجیستر R2 در روی باس A قرار گیرد.تعیین مقدار مناسب برای ورودی MUXB یعنی S2 طوری که محتوی رجیستر R3 در روی باس B قرار گیرد.تعیین مقدار لازم برای ورودی OPR که ALU را وادار به انجام عمل جمع A+B نماید.در نهایت انتخاب مقدار مناسب برای دیکور D به نحویکه خروجی ALU را به رجیستر R1 منتقل نماید.مثالی از عملیات ALU
اسلاید 11: 11قالب دستورالعملهاانتخاب عمل در ALUانتخاب رجیسترهای مبدامولتی پلکسر 1مولتی پلکسر 2انتخاب رجیستر مقصددیکدرOP-CODES1S2D5333اين چهار قسمت قبل از وارد شدن پالس ساعت بايد آماده ياشند.ALU از مدارات بسيار سريع ساخته ميشود تا نتيجه را سريعتر آماده كند.
اسلاید 12: 12عملیات ALUدر CPU انجام عملیات محاسباتی و منطقی بر عهده ALU است. عمل شیفت را میتوان توسط یک Shifter که قبل و یا بعد از ALU قرار میگیرد انجام داد. در مواردی هم ممکن است عمل شیفت توسط خودALU انجام شود. در فصل 4 طراحی چنین ALU را دیدیم که عملیات آن در جدول مقابل ذکر شده است.
اسلاید 13: 13مثالبرای انجام میکرواپریشن زیرR1 R2 – R3 میبایست کلمه کنترلی بصورت زیر انتخاب شود:همانطور که قبلا دیدیم یک راه پیاه سازی واحد کنترل استفاده از میکروپروگرامینگ است که در آن هر کلمه کنترلی در یک محل از حافظه ROM ذخیره خواهد شد.Field:OP-codeS1S2DSymbolSUBR2R3R1Control word00101010011001
اسلاید 14: 14ارتباط با حافظهR1R2R3R4R5R6R7MUXMUXDECALUINPUT
اسلاید 15: 15سازمان پشته يا Stackساختار LIFOPUSHPOPدسترسی فقط به عنصر بالای پشته امکانپذیر استفقط یک اشاره گر نیاز داریمSP = STACK POINTER
اسلاید 16: 16PUSHSP ← SP+1M[SP] ← DRIF ( SP=0) THEN (FULL←1)EMPTY ← 0SPEMPTYFULLDR6332106 بيتييك پشته 64 كلمه اي
اسلاید 17: 17POPDR ← M[SP]SP ← SP-1IF ( SP=0) THEN ( EMPTY ←1)FULL ← 0 SPEMPTYFULLDR6332106 بيتي
اسلاید 18: 18کاربرد- استفاده برای صدا زدن برنامه فرعی صدا زدن برنامه فرعی(Procedure call)call labelPush return address on stack; Jump to labelبرگشت از تابع(Procedure return) retPop address from stack; Jump to address
اسلاید 19: 19کاربرد- استفاده در برنامه هاي برگشت پذير (recursive) استفاده از پشته باعث میشود تا امکان پیاده سازی برنامه های برگشت پذیر فراهم گردد.با استفاده از پشته میتوان برای هر نسخه از تابع صدا زده شده حافظه جداگانه ای در نظر گرفتآرگومانها و متغیرهای محلی را میتوان در پشته ذخیره نمود.آدرس دهی متغیرهای محلی و آرگومانها نسبت به موقعیت پشته انجام میشود.بازگشت از توابع عکس حالتی است که صدا زده شده اند
اسلاید 20: 20کاربردعبارات محاسباتیA*B+C/DPOLISH NOTATIONAB*CD/+
اسلاید 21: 21AB*CD/+PUSH APUSH BMUL (POP,POP, PUSH A*B)PUSH CPUSH DDIV (POP,POP,PUSH C/D)ADD (POP,POP, PUSH RESULT)
اسلاید 22: 22ABPUSH APUSH BAB*CD/+
اسلاید 23: 23A*BCDMULPUSH CPUSH DPUSH APUSH BAB*CD/+
اسلاید 24: 24A*BC/DDIVMULPUSH CPUSH DPUSH APUSH BAB*CD/+
اسلاید 25: 25A*B+ C/DADDDIVMULPUSH CPUSH DPUSH APUSH BAB*CD/+
اسلاید 26: 26کدام مجموعه از عملیات ذیل می تواند یک پشته را پیاده سازی نماید ؟PUSH APOP ASP ←SP-1MEM[SP] ←AA ←MEM[SP]SP ←SP+11SP ←SP+1MEM[SP] ←AA ←MEM[SP]SP ←SP-12MEM[SP] ←ASP ←SP-1SP ←SP+1A ←MEM[SP]3هر سه1,32,31,2
اسلاید 27: 27انواع ساختار پشتهپشته رجيستريسرعت دسترسی بالاقیمت زیادتعداد کمپشته حافظه ایکندارزان حجم زیاد
اسلاید 28: 28تاثیر نوع CPU بر قالب دستوراتتک انبارهمعمولا یک اپرند آکومولاتور استدستورات تک آدرسیچندرجيستری (رجيسترهاي عمومي)اپرندها رجيستر هستند دستورات سه آدرسی ( یا دو آدرسی)پشته ایفقط اپرند مربوط به پوش یا پاپدستورات یک آدرسی و صفر آدرسی
اسلاید 29: 29تاثیر قالب دستورالعمل ها بر روی سرعت اجرامقایسه یک عملیات یکسان در سه حالت مختلفمحاسبه (A+B)*(C+D) X=دستورات سه آدرسیدستورات دو آدرسیدستورات یک آدرسیدستورات صفرآدرسی
اسلاید 30: 30دستورات سه آدرسیدر کامپیوترهای سهآدرسی، هر قسمت آدرس، برای مشخص نمودن یک ثبات پردازنده و یا آدرس یک عملوند در حافظه تخصیص داده میشود.ADD R1, A, BR1 M[A] + M[B]ADD R2, C, DR2 M[C] + M[D]MUL X, R1, R2M[X] R1 × R2X = (A+B) * (C+D)
اسلاید 31: 31دستورات دو آدرسیدستورات دوآدرسی معمولترین فرمت دستور در کامپیوترها هستند. قسمت آدرس میتواند یک رجيستر پردازنده یا یک خانه حافظه را مشخص نماید.MOV R1, AR1 M[A]ADD R1, BR1 R1 + M[B]MOV R2, CR2 M[C]ADD R2, DR2 R2 + M [D]MUL R1, R2R1 R1 × R2MOV X, R1 M[X] R1X = (A+B) * (C+D)
اسلاید 32: 32دستورات یک آدرسیدستورات یکآدرسی، برای تمام عملیات بر روی دادهها، رجيستر اکومولاتور AC را بهکار میبرند.LOAD AAC M[A]ADD BAC AC + M[B]STORE TM[T] ACLOAD CAC M[C]ADD DAC AC + M[D]MUL T AC AC × M[T]STORE XM[X] ACX = (A+B) * (C+D)
اسلاید 33: 33دستورات صفرآدرسیPUSH APUSH BADDPUSH CPUSH DADDMULPOP XX = (A+B) * (C+D)
اسلاید 34: 34 دستورات كامپيوترهاي RISC X = (A + B) × (C + D)LOAD R1, AR1 M[A]LOAD R2, BR2 M[B]LOAD R3, CR3 M[C]LOAD R4, D R4 M[D]ADD R1, R1, R2R1 R1 + R2ADD R3, R3, R4R3 R3 + R4MULR1, R1, R3R1 R1 × R3STOREX, R1M[X] R1
اسلاید 35: 35روشهاي آدرسدهیدستورات یک کامپیوتر عملی را بر روی داده ذخیره شده در حافظه و یا رجیسترهای CPU انجام میدهند. روش مشخص کردن عملوند یک دستورالعمل حالات آدرس دهی و یا addressing mode نامیده میشود. اصولا حالات مختلف آدرسدهی عملوند دستور، تسهیلات زیر را در سیستم فراهم میآورد:قابلیت ایجاد شمارنده برای برنامه حلقه، و شاخصبندی در دادهها و همچنین ایجاد اشارهگر حافظه و جابجایی برای کاربر فراهم میشودامکان تقلیل تعداد بیتهای قسمت آدرس دستور، فراهم میشود.
اسلاید 36: 36انواع حالت های آدرس دهیآدرس دهی ضمنیآدرس دهی بلادرنگآدرس دهی ثبات آدرس دهی غیر مستقیم بکمک ثباتآدرس دهی افزایش و یا کاهشی خودکارآدرس دهی مستقیم آدرس دهی غیر مستقیمآدرس دهی نسبیآدرس دهی شاخصآدرس دهی با ثبات پابهImplied Addressing ModeImmediate Addressing ModeRegister Addressing Register Indirect AddressingAutoincrement or AutodecrementDirect Addressing ModeIndirect Addressing ModeRelative Addressing ModeIndex Addressing ModeBase Register Addressing Mode
اسلاید 37: 37آدرس دهی ضمنیImplied Addressing Modeدر این روش اپراندها بصورت ضمنی در داخل دستورالعمل مشخص میشوند. مثل دستور CMA که محتوی آکومولاتور را متمم میکند.دستورات صفر آدرسی مورد استفاده در کامپیوترهای stack machine نیز از آدرس دهی ضمنی استفاده میکنند زیرا عملوندها بطور ضمنی در بالای پشته در نظر گرفته میشوند.
اسلاید 38: 38آدرس دهی بلادرنگImmediate Addressing Modeدر این روش مقدار عملوند در داخل خود دستورالعمل داده میشود.این مد آدرس دهی برای مقدار دهی رجیسترها بکار میرود.مثل دستور زیر در پردازنده x86 MOV CX, 1024 OperandInstruction
اسلاید 39: 39آدرس دهی رجیستريRegister Addressing در این روش عملوندها در داخل رجیسترهای پردازنده قرار دارند. با استفاده از K بیت میتوان تعداد 2k رحیستر را مشخص نمود.مثل دستور زیر در پردازنده x86 ADD AL, BLR InstructionOperandCPU registers
اسلاید 40: 40 آدرس دهی رجيستري غیر مستقیم Register Indirect Addressingدر این روش دستورالعمل رجیستری را مشخص میکند که محتوی آن آدرس عملوند در حافظه را مشخص خواهد نمود.مثل دستور زیر در پردازنده x86 MOV BX,[SI]R InstructionCPU registersOperandMemory
اسلاید 41: 41آدرس دهی افزایش و یا کاهشی خودکارAutoincrement or Autodecrement addressingاین روش مشابه آدرس دهی رجيستري غیر مستقیم است با این تفاوت که مقدار رجیستر بعد یا قبل از استفاده برای محاسبه آدرس موثر افزایش و یا کاهش میابد.R InstructionCPU registersOperandMemoryR=R+1R=R-1
اسلاید 42: 42آدرس دهی مستقیمDirect Addressing Modeدر این روش آدرس عملوند در داخل دستورالعمل ذکر میشود.مثل دستور زیر در پردازنده x86 MOV AX,[3000] Address InstructionOperandMemory
اسلاید 43: 43 Address InstructionOperandMemory آدرس دهی غیر مستقیمIndirect Addressing Modeدر این روش آدرس موجود در دستورالعمل محلی از حاقطه را مشخص میکند که آدرس عملوند درآنجا قرار دارد. در این حالت برای دسترسی به عملوند دوبار رجوع به حافطه مورد نیاز است: یکبار برای پیدا کردن آدرس آن و بار دیگر برای خواندن مقدار آن.
اسلاید 44: 44آدرس دهی نسبیRelative Addressing Modeدر این روش آدرس موثر از جمع آدرس مشخص شده در داخل دستورالعمل و محتوی PC حاصل میشود:Effective Address= address part of instruction + content of PC Address InstructionPC+OperandMemory
اسلاید 45: 45آدرس دهی شاخص دارIndex Addressing Modeدر این روش آدرس موثر از جمع آدرس مشخص شده در داخل دستورالعمل و محتوی یک رجیستر مخصوص که رجیستر ایندکس نامیده میشود حاصل میشود:Effective Add.= address part of instruction + content of index registerمعمولا از این روش برای دسترسی به داده های یک آرایه استفاده میشود. که محل شروع داده ها در حافظه در دستورالعمل مشخص میشود و فاصله داده مورد نظر تا محل شروع توسط رجیستر ایندکس تعیین میگردد. Address InstructionIndex Register+OperandMemory
اسلاید 46: 46آدرس دهی با ثبات پایهBase Register Addressing Modeاین روش مشابه آدرس دهی با ثبات شاخص است با این تفاوت که بجای ثبات شاخص از ثبات پایه استفاده میشود. تفاوت این دو روش در نحوه استفاده از رجیسترهاست. Effective Add.= address part of instruction + content of Base register Address InstructionBase Register+OperandMemory
اسلاید 47: 47PC = 200XR = 100R1 = 400ACمثال عددی مقدار آکومولاتور در صورت اجرای دستور موجود در آدرس 200 برای حالتهای مختلف آدرس دهی چیست؟300200399400500600702800201202بارکردن AC700450دستور بعدی800500 = آدرس900325آدرسحافظهحالت
اسلاید 48: 48مثال عددی
اسلاید 49: 49مجموعه دستورات کامپیوتردستورات مورد استفاده درکامپیوترهای مختلف از لحاظ تعداد، عملکرد، نشانه های مورد استفاده برای اسمبلی، و کد باینری بسیار متفاوت هستند با این وجود تمامی آنها دارای دستوراتی از گروههای زیر میباشند: دستورات انتقال دادهدستورات محاسباتی، منطقی و جابجائیدستورات کنترل برنامه
اسلاید 50: 50دستورات معمول انتقال اطلاعاتانتقال داده بین حافظه و رجیسترهاانتقال داده بین رجیسترهاانتقال داده بین حافظه و رجیسترهاتعویص داده های دو رحیستر و یا یک رجیستر و حافظهانتقال داده بین ورودی/خروجی و رجیسترهاانتقال داده بین پشته و رجیسترها
اسلاید 51: 51هشت حالت آدرسدهی برای دستور بارکردن
اسلاید 52: 52دستورات معمولی ریاضی
اسلاید 53: 53دستورات منطقی و عملیات روی بیت
اسلاید 54: 54دستورات معمولی شیفت
اسلاید 55: 55دستورات متداول کنترل برنامه
اسلاید 56: 56بیت های وضعیت16-bit ALUF15-F0ABVZSCOutput FF15Check For Zero OutputC15C16شرطهايي كه بر اساس آنها تصميم در مورد پرش گرفته ميشود بر اساس اين بيتها هستند.
اسلاید 57: 57مقايسه اعداد علامت دار و بدون علامتA= 11110000B= 00010100سوال: A و Bكدام بزرگترند؟ جواب: بستگي دارد آنها را علامت دار و يا بدون علامت در نظر بگيريم.علامت دار (A<B)َA= -16B = 20 بدون علامت (A>B)َA= 240B = 20
اسلاید 58: 58وقفهانواع مختلف وقفه در کامپیوتروقفه های خارجیاین وقفه ها سخت افزاری بوده و توسط یک وسیله خارجی نظیر IO و یا تایمر رخ میدهد.وقفه های داخلی در اثر استفاده غلط و نابجای یک دستور حاصل میشود. مثل رخ دادن Overflow انجام یک تقسیم بر صفر، یک کد دستورالعمل غلط، سرریز شدن پشته، وprotection violation برنامه سرویس دهی به وقفه در هر مورد در باره عکس العمل مناسب تصمیم میگیرد. این وقفه گاهی trap نامیده میشود.وقفه های نرم افزارینوع خاصی از صدا زدن برنامه فرعی هستند. برای انجام عملیات خاصی نظیر تغییر مد برنامه از حالت user به supervisor و يا انجام سرويس خاصي )مثلا چاپ يك كاراكتر(بکار میروند.
اسلاید 59: 59قالب دستورالعمل هاقالب دستورالعملها وابسته به نوع طراحی CPU است.بخش های مختلف یک دستورالعملOP-CODEآدرس ( حافظه ، ثبات ....)شیوه آدرسدهی
اسلاید 60: 60طول دستورالعملثابت متغیرتنوع دستورالعملهاکامپیوترهای CISC (پر دستور )کامپیوترهای RISC (کم دستور )
اسلاید 61: 61کامپیوترهای با مجموعه دستورات پیچیده CISC معماری یک کامپیوتر متاثر از مجموعه دستورات انتخاب شده برای آن است.در کامپیوتر های اولیه سعی بر این بود تا تعداد دستورات کم و ساده باشد تا پیاده سازی سخت افزاری آن ممکن باشد.با پیشرفت در زمینه سخت افزار و ارزان شدن آن تعداد دستورات کامپیوترها افزایش یافته و بر پیچیدگی آنها افزوده گردید. هدف این بود تا هر چه بیشتر نیاز های کاربران را در سخت افزار گنجانده وبا کاهش فاصله بین زبانهای سطح بالا و دستورات کامپیوتر کار ترجمه دستورات سطح بالا را ساده تر کنند. این نوع کامپیوترها گاها تا 200 دستور و تعداد بسیار زیادی مد آدرس دهی داشتند. این کامپیوتر ها را Complex instruction set computer (cisc) مینامند.
اسلاید 62: 62ویژگی های کامپیوترهای CISC تعداد زیادی دستورالعمل دارند 100) تا 200 عدد(دستوراتی برای انجام کارهای ویژه دارند که معمولا بندرت مورد استفاده قرار میگیرندتعداد زیادی مد آدرس دهی دارندطول دستورالعمل ها متفاوت استدستوراتی دارند که عملیاتی را بر روی اپراندهای موجود در حافظه انجام میدهند.برای اجرای دستورات به چندین کلاک نیاز هست.
اسلاید 63: 63کامپیوترهای با مجموعه دستورات کاهش یافتهRISC معماری RISC ابداعی مهم در زمینه سازمان کامپیوتر بشمار میرود.در این معماری سعی شده است تا با ساده تر کردن مجموعه دستورالعمل ها بر قدرت پردازنده افزوده شود.
اسلاید 64: 64The Semantic Gapبا پیشرفت زیانهای سطح بالا اختلاف بین برنامه های سطح بالا و زبان ماشین گسترش یافت.هر یک از معماریهای فوق روش مختلقی برای کاهش این اختلاف معرفی کردند تا ترجمه زبانهای سطح بالا بطرز موثرتری انجام شود.زبان ماشینزبان سطح بالاThe Semantic Gapنگرش : CISC دستورات زبان ماشین پیچیده تر و به زبان سطح بالا نزدیکتر گردد.نگرش : RISC دستورات زبان ماشین ساده تر و به نیازهای برنامه نزدیکتر گردد.
اسلاید 65: 65دستورات پرمصرف در کامپیوتر کدامند؟مطالعات زیادی که برای تعیین مشخصات و الگوی دستورات حاصل از ترجمه برنامه های سطح بالا انجام گرفت نشان میدهد که:از لحاظ تعداد دفعات استفاده از دستورات روند زیر بطور تقریب وجود داشته است:moves: 33%conditional branch: 20%arithmetic/logic: 16%others: between 0.1% and 10%دستورات ساده پر مصرف تر هستند
اسلاید 66: 66دستورات پرمصرف در کامپیوتر کدامند؟از لحلظ مد آدرس دهی:تقریبا 18 % مواقع از مدهای آدرس دهی پیچیده نظیر memory indirect, indexed+indirect, displacement+indexed, stackاستفاده شده است.در بیشتر موارد از مدهای آدرس دهی ساده که امکان محاسبه آدرس در یک سیکل وجود داشته استفاده میشود. نظیر register, register indirect, displacementمدهای آدرس دهی ساده ارجح هستند.
اسلاید 67: 67دستورات پرمصرف در کامپیوتر کدامند؟از لحاظ نوع عملوندها:75% عملوندها مقادیرعددی نظیرمقادیر صحیح ، حقیقی و یا کاراکتری هستند که میتوان آنها را در رجیسترها ذخیره نمود.بقیه آنها آرایه ها و استراکچها هستند که بیشتر بصورت متغیرهای خارجی مورد استفاده قرار میگیرند.80% عملوندهای عددی بصورت متغیرهای محلی مورد استفاده قرار میگیرند.اکثر عملوندها بصورت متغيرهای عددی محلی هستند که ميتوان آنها رادر رجيستر ذخيره نمود.
اسلاید 68: 68دستورات پرمصرف در کامپیوتر کدامند؟از لحاظ زمانی که برای اجرای دستورات مصرف میشود:با وجود آنکه دستورات مربوط به صدا زدن برنامه فرعی و بازگشت از آن تقریبا 15% از دستورات برنامه را تشکیل میدهند، اغلب وقت cpu صرف اجرا آنها میشود.دستورات call و return به مجموعه بزرگی از دستورات زبان ماشین ترجمه میشوند که بسیار نیاز به رجوع به حافظه دارند.مطالعات آماری برروی صدا زدن توابع نشان میدهد که:فقط 2% توابع بیشتر از 6 پارامتر دارندفقط 7% توابع بیشتر از 6 متغیر محلی دارندزنجیره توابعی که یکدیگر را صدا بزنند کوتاه بوده و بندرت از 6 تابع بیشتر میشود.بهينه کردن عمل صدا زدن تابع و بازگشت از آن ميتواند کارآيی پردازنده را افزايش دهد
اسلاید 69: 69ویژگی های RISC دستورات ساده و کمی دارندهدف این است که بتوان دستورات را بسرعت اجرا کرد. اغلب دستورات RISC در یک سیکل اجرا میشوند) بعد ازواکشی و رمزگشایی (چون دستورات در زمان مشابهی اجرا میشوند عمل pipeline دارای بازده بالایی خواهد بود.کم بودن دستورات باعث ساده شدن واحد کنترل ومسیرهای ارتباطی میشود که منجر به کم شدن تعداد ترانزیستورهای مورد نیاز برای ساخت پردازنده میشود اینکار سرعت پردازنده را نیز افزایش میدهد..در ضمن میتوان واحد کنترل را بروش سیم بندی ساخت.
اسلاید 70: 70ویژگی های RISC دسترسی به حافظه محدود به دستورات load , Store استاز آنجائیکه عمل رجوع به حافظه معمولا در یک سیکل امکانپذیر نمیباشد،تمهیداتی در کامپایلر استفاده میشود تاpipeline بطور موثرتری استفاده شود.باقی دستورات بر روی محتوی رجیسترها عمل میکنند.
اسلاید 71: 71ویژگی های RISC تعداد مد های آدرس دهی آنها کم استمعمولا فقط از مدهای آدرس دهی زیر استفاده میشود:register addressingdirect addressingregister indirect addressingdisplacement addressing
اسلاید 72: 72ویژگی های RISC دستورات طول و فرمت یکسانی دارند اینکار باعث میشود تا خواندن دستورات و رمزگشائی آنها سریع و ساده باشد.زیرا لازم نیست تا معلوم شدن طول دستور برای رمزگشایی آن صبر کرد.یکسانی فرمت باعث سهولت رمزگشایی میگردد زیرا کد و ادرس همه دستورات در محل یکسانی قرار دارند.
اسلاید 73: 73ویژگی های RISC تعداد رجیسترهای زیادی دارند.کم شدن دستورات باعث کوچگ شدن واحد کنترل و آزاد شدن فضا برای گنجاندن تعداد بیشتری رجیستر میشود.متغیرهای محلی، نتایج میانی و پارامترهای توابع در داخل رجیسترها ذخیره شده و تعداد رجوع به حافظه کاهش پیدا میکند.
اسلاید 74: 74سایر ویژگی های RISC استفاده ازتکنیک pipelining که باهمپوشانی سیکل های واکشی، رمزگشائی و اجرا شده و نهایتا به اجرای هر دستور در یک سیکل منجر میشود.تعداد زیادی رجیستر در داخل cpu وجود دارداستفاده از تکنیک همپوشانی register windows که باعث افزایش سرعت صدا زدن تابغ و بازگشت از آن میشود.حمایت از کامپایلر برای افزایش کارائی در ترجمه برنامه های سطح بالا
اسلاید 75: 75مقایسه RISC, CISC برای مثال ترجمه دستور a = a * b برای دو معماری فوق بصورت زیر خواهد بود:MULT a, bCISCLOAD R1, a LOAD R2, b MUL R1,R2 STORE a, R1 RISCبرای مثال ترجمه دستور a = a * b برای دو معماری فوق بصورت زیر خواهد بود:در معماری CISC سعی بر این است که با تعداد کمی دستورزبان ماشین عمل مورد نظر انجام شود. در حالیکه در RISCسعی بر این است که از دستوراتی استفاده شود که هر دستور در یک پالس قابل اجرا باشند. در نتیجه برنامه RISC دارای چندین خط دستور خواهد بود که احتیاج به حاقظه بیشتری دارد.
اسلاید 76: 76مقایسه RISC, CISCفرمول محاسبه کارائیاگر از فرمول زیر برای محاسبه کارائی کامپیوتر استفاده شود:CISC سعی میکند تا این قسمت کاهش پیدا کندRISC سعی میکند تا این قسمت کاهش پیدا کند
اسلاید 77: 77پیشگامان RISC ایده RISC در دهه 80 معرفی گردید. از جمله پیشگامان آن میتوان به موارد زیر اشاره نمودIBM 801Stanford MIPSBerkeley RISC 1 and 2
اسلاید 78: 78کاربردهای RISC عمده پردازنده های کامپیوترهای سرور و workstarion از نوع RISC هستند.تعدادی از پردازنده های مشهور مبتنی بر RISC عبارتند از:ARM/StrongARM که در تلفنهای همراه استفاده میشودMIPS Rxx00 که در برخی دستگاه های بازی مورد استفاده است.Hitachi SH مورد استفاده در سیستم های embedded POWER/PowerPC مورد استفاده در کامپیوترهایMACIntel Pentium II and III اگرچه از معماری CISC پیروی میکنند ولی بسیاری از ویژگی های RISC را استفاده میکنند.
اسلاید 79: 79overlapped register windowsدیدیم که صدا زدن برنامه فرعی و بازگشت از آن بخش مهمی از اجرای برنامه را بخود اختصاص میدهد. لذا سرعت بخشیدن به آن میتواند تاثیر زیادی در افزایش کارائی پردازنده داشته باشد.هنگام صدا زدن یک برنامه فرعی دستوراتی استفاده میشوند که مقادیر رجیسترها را ذخیره کنند، و پارامترها را انتقال دهند.برای بازگشت از برنامه فرعی مقدار بازگشتی تابع به برنامه صدا زننده منتقل شده و مقادیر ذخیره شده رجیسترها بازیابی میشوند.
اسلاید 80: 80overlapped register windowsدربرخی از معمارهای RISC برای سهولت انتقال بین توابع از همپوشانی پنجره ای رجیسترها استفاده میشود تا نیاز به ذخیره و بازیافت مقادیر رجیسترها را حذف نمایند.هر زمان که تابعی که صدا زده میشود پنجره ای از رجیسترها از میان بانک رجیسترموجود در پردازنده به آن اختصاص میابد.اینکار از طریق افزایش پوینتری انجام میشود. با برگشت از تابع پوینتر به مقدار قبلی آن کاهش داده میشود.پنجره مورد استفاده برای تواب همجوار همپوشانی دارند تا امکان به اشتراک گذاشتن داده ها بین دو تابع وجود داشته باشد.
اسلاید 81: 81overlapped register windowsبانک رجیسترpointerpointerبا صدا زدن تابع پنجره جدیدی از رجیسترها به آن اختصاص داده میشود.pointerپنجره رجیستراولیهپنجره جدیدبا برگشت تابع پوینتر کاهش داده میشوداز قسمت مشترک برای انتقال اطلاعات استفاده میشود
اسلاید 82: 82مثالدر کتاب سیستمی معرفی شده است که دارای بانک رجیستری با مشخصات زیر است:این بانک دارای 74 رجیستر است.رجیستر های R0 تاR9 بعنوان رجیسترهای عمومی قابل استفاده تمامی توابع هستندبقیه رحیسترها به به 4 گروهA,B,C,D تقسیم شده اند. هر پنجره دارای 10 رجیستر اختصاصی و دو دسته رجیستر 6 تائی مشترک با با پنجره های مجاور است.از رجیسترهای اختصاصی برا ذخیره متغیرهای محلی و از رجیسترهای مشترک برای انتقال پارامترها استفاده میشود.به این ترنیب هر تابع میتواند از 32 رحیستر استفاده نماید
اسلاید 83: 83مثالR15R10R73R64R63R58Common to D and ALocal to DProc. DR57R48R47R42R41R32R31R26R25R16R15R10Proc.AProc.BProc. CLocal to ALocal to BLocal to CCommon to D and CCommon to B and CCommon to B and ACommon to D and AR9R10Global Registers
اسلاید 84: 84overlapped register windowsنحوه محاسبه رجیسترهای قابل استفاده برای هر تابع به صورت زیر است.= G تعداد رجیسترهای عمومی= L تعداد رجیسترهای اختصاصی هر پنجره= C تعداد رجیسترهای مشترک بین دو پنجره= W تعداد پنجره ها= L+2C+G اندازه پنجره= (L+C)W+G تعداد کل رجیسترها در بانک رجیستری
اسلاید 85: 85مثالی از پردازنده RISC:Berekely RISC Iیکی از اولین معماری های RISC است که در دانشگاه برکلی مطرح شد.این پردازنده 32 بیتی:دارای آدرس 32 بیتی بوده و میتواند از داده های 8و16و32 بیتی استفاده نماید.سه مد آدرس دهی دارد: رجیستری، بلادرنگ و نسبییک بانک رجیستری 138 تائی شامل 10 رجیستر عمومی و 8 پنجره 32 رجیستری دارد.31 دستورالعمل دارد
اسلاید 86: 86فرمت دستورات Brekely RISC IOpcode Rd 0 RsS2 Not Used31 24 23 19 18 14 13 12 5 4 0 Opcode Rd 1 RsS231 24 23 19 18 14 13 12 0 OpcodeCONDY31 24 23 19 18 0 PC relative ModeRegister Immediate mode: S2=operandRegister mode: S2=register
نقد و بررسی ها
هیچ نظری برای این پاورپوینت نوشته نشده است.