چرخه دستورالعمل ( همچنین به عنوان چرخه واکشی - رمزگشایی - اجرا، یا به سادگی چرخه واکشی - اجرایی شناخته می شود ) چرخه ای است که واحد پردازش مرکزی ( CPU ) برای راه اندازی دستورالعمل ها از زمان راه اندازی تا خاموش شدن رایانه دنبال می کند. این پروسه از سه مرحله اصلی تشکیل شده است: مرحله واکشی، مرحله رمزگشایی و مرحله اجرا.
در پردازنده های ساده تر، چرخه دستورالعمل به ترتیب اجرا می شود، هر دستورالعمل قبل از شروع دستورالعمل بعدی پردازش می شود. در بیشتر پردازنده های مدرن، چرخه های دستورالعمل همزمان و غالباً به طور موازی از طریق خط لوله دستورالعمل اجرا می شوند: پردازش دستورالعمل بعدی قبل از پایان دستورالعمل قبلی شروع می شود. این امکان وجود دارد زیرا چرخه به مراحل جداگانه تقسیم می شود. [ ۱]
شمارنده برنامه ( PC ) یک رجیستر ویژه است که آدرس حافظه دستورالعمل بعدی را برای اجرا در خود نگه می دارد. در مرحله واکشی، آدرس ذخیره شده در رایانه در رجیستر آدرس حافظه ( MAR ) کپی می شود و سپس PC برای اشاره به آدرس حافظه دستورالعمل بعدی که اجرا می شود، آپدیت می شود. سپس CPU دستورالعمل ها را در آدرس حافظه توصیف شده توسط MAR گرفته و آن را در رجیستر داده حافظه ( MDR ) کپی می کند. MDR همچنین به عنوان یک رجیستر دو طرفه عمل می کند که داده های واکشی شده از حافظه یا داده هایی را که منتظر ذخیره شدن در حافظه هستند را نگه می دارد ( به همین دلیل به عنوان رجیستر بافر حافظه ( MBR ) نیز شناخته می شود ) . سرانجام، دستورالعمل موجود در MDR در ثبت دستورالعمل فعلی ( CIR ) کپی می شود که به عنوان محل نگهداری موقت دستورالعمل تازه وارد شده از حافظه عمل می کند.
در مرحله رمزگشایی، واحد کنترل ( CU ) دستورالعمل را در CIR رمزگشایی می کند. سپس CU سیگنالهایی را به سایر اجزای CPU مانند واحد منطق حساب ( ALU ) و واحد شناور FPU ) ارسال می کند. ALU عملیات های حسابی مانند جمع و تفریق و همچنین ضرب را طریق جمع های مکرر و تقسیم را از طریق تفریق های مکرر را انجام می دهد. همچنین عملیات های منطقی مانند AND، OR، NOT و شیفت های باینری را نیز انجام می دهد. FPU برای انجام محاسبات ممیز شناور محفوظ است.
پردازنده هر رایانه براساس مجموعه دستورالعمل های مختلف می تواند چرخه های مختلفی داشته باشد، اما مراحل همه پردازنده ها مشابه چرخه زیر خواهند بود:
• مرحله واکشی: دستورالعمل بعدی از آدرس حافظه ای که در حال حاضر در پیشخوان برنامه ذخیره شده و در رجیستر دستورالعمل ذخیره می شود، دریافت می شود. در پایان عملیات واکشی، PC به دستورالعمل بعدی اشاره می کند که در چرخه بعدی خوانده می شود.
• مرحله رمزگشایی: در این مرحله، دستورالعمل رمزگذاری شده در رجیستر، رمزگشایی می شود.
• آدرس مؤثر: در دستورالعمل مربوط به حافظه ( مستقیم یا غیرمستقیم ) ، مرحله اجرا در طی پالس ساعت بعدی خواهد بود. اگر دستورالعمل دارای آدرس غیر مستقیم باشد، آدرس مؤثر از حافظه اصلی خوانده می شود و هرگونه داده مورد نیاز از حافظه اصلی برای پردازش دریافت می شود و سپس در رجیسترهای داده قرار می گیرد ( پالس ساعت: T 3 ) . اگر دستورالعمل مستقیم باشد، در طی این پالس ساعت کاری انجام نمی شود. اگر این یک دستورالعمل I / O یا یک دستور رجیستر باشد، عملیات در طول پالس ساعت انجام می شود.
• مرحله اجرا: واحد کنترل پردازنده اطلاعات رمزگشایی شده را به عنوان دنباله ای از سیگنال های کنترل به واحدهای مرتبط پردازنده منتقل می کند تا اقدامات مورد نیاز دستورالعمل مانند خواندن مقادیر از رجیسترها ، انتقال آنها به ALU برای انجام توابع ریاضی یا منطقی بر روی آنها و نوشتن نتیجه به یک رجیستر انجام شوند. اگر ALU درگیر باشد، یک سیگنال شرطی را به CU ارسال می کند. نتیجه تولید شده توسط این عملیات در حافظه اصلی ذخیره می شود یا برای دستگاه خروجی ارسال می شود. بر اساس بازخورد دریافت شده از ALU، ممکن است PC به نشانی دیگری که دستورالعمل بعدی از آن دریافت می شود، آپدیت شود.
• تکرار چرخه
این نوشته برگرفته از سایت ویکی پدیا می باشد، اگر نادرست یا توهین آمیز است، لطفا گزارش دهید: گزارش تخلفدر پردازنده های ساده تر، چرخه دستورالعمل به ترتیب اجرا می شود، هر دستورالعمل قبل از شروع دستورالعمل بعدی پردازش می شود. در بیشتر پردازنده های مدرن، چرخه های دستورالعمل همزمان و غالباً به طور موازی از طریق خط لوله دستورالعمل اجرا می شوند: پردازش دستورالعمل بعدی قبل از پایان دستورالعمل قبلی شروع می شود. این امکان وجود دارد زیرا چرخه به مراحل جداگانه تقسیم می شود. [ ۱]
شمارنده برنامه ( PC ) یک رجیستر ویژه است که آدرس حافظه دستورالعمل بعدی را برای اجرا در خود نگه می دارد. در مرحله واکشی، آدرس ذخیره شده در رایانه در رجیستر آدرس حافظه ( MAR ) کپی می شود و سپس PC برای اشاره به آدرس حافظه دستورالعمل بعدی که اجرا می شود، آپدیت می شود. سپس CPU دستورالعمل ها را در آدرس حافظه توصیف شده توسط MAR گرفته و آن را در رجیستر داده حافظه ( MDR ) کپی می کند. MDR همچنین به عنوان یک رجیستر دو طرفه عمل می کند که داده های واکشی شده از حافظه یا داده هایی را که منتظر ذخیره شدن در حافظه هستند را نگه می دارد ( به همین دلیل به عنوان رجیستر بافر حافظه ( MBR ) نیز شناخته می شود ) . سرانجام، دستورالعمل موجود در MDR در ثبت دستورالعمل فعلی ( CIR ) کپی می شود که به عنوان محل نگهداری موقت دستورالعمل تازه وارد شده از حافظه عمل می کند.
در مرحله رمزگشایی، واحد کنترل ( CU ) دستورالعمل را در CIR رمزگشایی می کند. سپس CU سیگنالهایی را به سایر اجزای CPU مانند واحد منطق حساب ( ALU ) و واحد شناور FPU ) ارسال می کند. ALU عملیات های حسابی مانند جمع و تفریق و همچنین ضرب را طریق جمع های مکرر و تقسیم را از طریق تفریق های مکرر را انجام می دهد. همچنین عملیات های منطقی مانند AND، OR، NOT و شیفت های باینری را نیز انجام می دهد. FPU برای انجام محاسبات ممیز شناور محفوظ است.
پردازنده هر رایانه براساس مجموعه دستورالعمل های مختلف می تواند چرخه های مختلفی داشته باشد، اما مراحل همه پردازنده ها مشابه چرخه زیر خواهند بود:
• مرحله واکشی: دستورالعمل بعدی از آدرس حافظه ای که در حال حاضر در پیشخوان برنامه ذخیره شده و در رجیستر دستورالعمل ذخیره می شود، دریافت می شود. در پایان عملیات واکشی، PC به دستورالعمل بعدی اشاره می کند که در چرخه بعدی خوانده می شود.
• مرحله رمزگشایی: در این مرحله، دستورالعمل رمزگذاری شده در رجیستر، رمزگشایی می شود.
• آدرس مؤثر: در دستورالعمل مربوط به حافظه ( مستقیم یا غیرمستقیم ) ، مرحله اجرا در طی پالس ساعت بعدی خواهد بود. اگر دستورالعمل دارای آدرس غیر مستقیم باشد، آدرس مؤثر از حافظه اصلی خوانده می شود و هرگونه داده مورد نیاز از حافظه اصلی برای پردازش دریافت می شود و سپس در رجیسترهای داده قرار می گیرد ( پالس ساعت: T 3 ) . اگر دستورالعمل مستقیم باشد، در طی این پالس ساعت کاری انجام نمی شود. اگر این یک دستورالعمل I / O یا یک دستور رجیستر باشد، عملیات در طول پالس ساعت انجام می شود.
• مرحله اجرا: واحد کنترل پردازنده اطلاعات رمزگشایی شده را به عنوان دنباله ای از سیگنال های کنترل به واحدهای مرتبط پردازنده منتقل می کند تا اقدامات مورد نیاز دستورالعمل مانند خواندن مقادیر از رجیسترها ، انتقال آنها به ALU برای انجام توابع ریاضی یا منطقی بر روی آنها و نوشتن نتیجه به یک رجیستر انجام شوند. اگر ALU درگیر باشد، یک سیگنال شرطی را به CU ارسال می کند. نتیجه تولید شده توسط این عملیات در حافظه اصلی ذخیره می شود یا برای دستگاه خروجی ارسال می شود. بر اساس بازخورد دریافت شده از ALU، ممکن است PC به نشانی دیگری که دستورالعمل بعدی از آن دریافت می شود، آپدیت شود.
• تکرار چرخه
wiki: چرخه دستورالعمل