موضوع مقاله: واحد کنترل | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # واحد کنترل | مقدمه: واحد کنترل یکی از اجزای واحد پردازش مرکزی (CPU) است که عملیات پردازنده را هدایت می‌کند. | ## بخش 1: واحد کنترل | واحد کنترل به حافظهٔ کامپیوتر، واحد حساب و منطق و دستگاه‌های ورودی و خروجی می‌گوید که چگونه به دستورهایی که به پردازنده فرستاده شده پاسخ دهند. واحد کنترل با فراهم کردن زمان‌بندی و سیگنال‌های کنترل عملیات دیگر واحدها را کنترل می‌کند. واحد کنترل جریان داده‌ها بین واحد پردازش مرکزی و دیگر دستگاه‌ها را هدایت می‌کند. در طراحی‌های نوین کامپیوتری، واحد کنترل معمولاً یکی از بخش‌های درونی واحد پردازش مرکزیست و به‌طور کلی نقش و عملیات آن از زمان معرفی‌اش تغییر نکرده‌است. واحدهای کنترل چندچرخه‌ای ساده‌ترین کامپیوترها از ریزمعماری چندچرخه‌ای استفاده می‌کنند که طراحی‌های اولیه بوده‌اند. معماری‌های چندچرخه‌ای هنوز در کامپیوترهای خیلی کوچک مانند سامانه‌های نهفته که ماشین‌الات را هدایت می‌کنند متداول هستند. در یک کامپیوتر چندچرخه‌ای، معمولا واحد کنترل چرخهٔ فون نویمان را طی می‌کند: گرفتن دستورها، گرفتن عملگرها، انجام دستورها، نوشتن نتایج. وقتی که دستور بعدی در واحد کنترل قرارمیگیرد رفتار واحد کنترل را طوری تغییر می‌دهد تا دستورها را به درستی به اتمام برساند. پس بیت‌های دستورها مستقیما واحد کنترل را کنترل می‌کنند که به نوبهٔ خود کامپیوتر را کنترل می‌کند. واحد کنترل می‌تواند یک شمارشگر دودویی داشته باشد که به منطق واحد کنترل می‌گوید کدام مرحله را انجام دهد. | ## بخش 2: واحد کنترل | واحدهای کنترل چندچرخه‌ای معمولاً هم از بالا رفتن هم پایین رفتن لبه‌های سیگنال مربعی ساعت زمان‌بندی خود استفاده می‌کنند. آن‌ها یک مرحله از عملیاتشان را در هر لبهٔ ساعت زمانبندی اجرا می‌کنند، پس یک عملیات چهار مرحله ای در دو چرخهٔ ساعت تکمیل می‌شود. یک وقفه به این دلیل اتفاق می‌افتد که نوعی از ورودی یا خروجی توجه نرم‌افزار را نیاز دارد تا درست کار کند. یک فرق مهم دیگر این است که بعضی استثناها (برای مثال استثنای در دسترس نبودن حافظه) می‌توانند توسط یک دستور که نیاز به راه‌اندازی مجدد دارد ایجاد شوند. واحدهای کنترل می‌توانند طراحی شوند تا به وقفه‌ها به دو نحوهٔ مختلف معمول رسیدگی کنند. اگر پاسخ سریع مهم‌تر باشد، واحد کنترل طراحی می‌شود که کار را رها کند تا به وقفه رسیدگی کند. در این حالت، کاری که در حال پردازش بود بعد از آخرین دستورِ پایان یافته، مجدداً راه‌اندازی می‌شود. اگر قرار باشد کامپیوتر خیلی ارزان، ساده و قابل اطمینان باشد یا کار بیشتری را به اتمام برساند، واحد کنترل اول کار در حال پردازش را به اتمام می‌رساند و بعد از آن به وقفه رسیدگی می‌کند. به اتمام رساندن کار ارزان است زیرا به ثبات برای نگهداری آخرین دستور به اتمام رسیده نیاز ندارد، ساده و قابل اطمینان است چون حالت‌های کمتری دارد. در کامپیوترهای خیلی ساده می‌توان استثناها را وادار کرد تا مانند وقفه‌ها عمل کنند. | ## بخش 3: واحد کنترل | اگر حافظهٔ مجازی مورد نیاز باشد، یک استثنای حافظه-در-دسترس-نیست باید دوباره دستور شکست خورده را امتحان کند. گاهی زمان بیشتری صرف می‌شود تا یک پرش شرطی انجام شود زیرا نیاز است شمارندهٔ برنامه مجدداً بارگیری شود. گاهی کامپیوترهای چندچرخه‌ای دستورهای ضرب و تقسیم را با یک فرایند انجام می‌دهند، چیزی مثل ضرب و تقسیم طولانی اعداد دودویی. بعضی کامپیوترها تعداد خیلی زیادی دستور خیلی پیچیده دارند که مراحل بسیاری را شامل می‌شوند. ادغام کردن با کامپیوتر همهٔ CPUهای مدرن منطق کنترل دارند تا CPU را با بقیه کامپیوتر پیوند دهد. وقتی یک دستور از حافظه می‌خواند یا بر آن می‌نویسد، واحد کنترل یا گذرگاه را مستقیما کنترل می‌کند یا گذرگاه کنترل‌کننده را کنترل می‌کند. تعداد زیادی از کامپیوترهای امروزی رابط گذرگاه مشابهی را برای حافظه، ورودی و خروجی استفاده می‌کنند که ورودی/خروجی حافظه‌نگاشتی نامیده می‌شود. ثبات‌های دستگاه‌های ورودی/خروجی به صورت اعدادی در آدرس‌های حافظهٔ مشخص برای برنامه‌نویس نمایان می‌شوند. | ## جمع‌بندی | کامپیوترهای x86 معمولاً روش قدیمی تری را استفاده می‌کنند، یک گذرگاه ورودی/خروجی جدا برای دسترسی دستورهای ورودی/خروجی.