واحد پردازنده مرکزی یا اصلی سیستم( Central Processing Unit(CPU) )، مداری الکترونیکی برای اجرای دستورالعمل های یک برنامه سیستمی همچون اعمال محاسباتی، منطقی و کنترل ورودی/خروجی و در واقع، قلب و مغز یک سیستم کامپیوتری می باشد. با گذر زمان اشکال ظاهری انواع CPU تغییراتی داشته است، این در حالی است که تقریبا می توان گفت؛ عمل اصلی آنها بدون تغییر باقی مانده است. اجزای اصلی یک CPU را می توان اینگونه نام برد:
- واحد منطق و محاسبه ( Arithmetic Logic Unit )، که کلیه محاسبات و اعمال منطقی را انجام می دهد.
- رجیسترها یا ثبات های پردازنده که وظیفه آنها، فراهم کردن عملوند برای ALU و ذخیره نتایج عملیات می باشد.
- یک واحد کنترل نیز، برای سازماندهی واکشی دستورالعملها از حافظه و اجرای آنها با هدایت عملیات هماهنگ ALU، رجیسترها و سایر اجزا در این بخش وجود دارد.
امروزه، CPUها به شکل ریزپردازنده هایی بر روی مدار مجتمع (Integrated Circuit) ساخته می شوند؛ طراحی این پردازنده ها به شکلی است که روی یک تراشه IC از جنس نیمه هادی اکسید فلز، تعدادی بین یک یا بیشتر CPU قرار داده می شود. اگر روی IC بیشتر از یک CPU باشد، به این پردازنده، پردازنده چند هسته ای می گویند و اگر روی IC، CPUهای تنها ریسمانی باشند، پردازنده های منطقی یا مجازی بیشتری خواهیم داشت. همچنین، یک قطعه IC دارای یک CPU نیز، حافظه، رابط های محیطی و دیگر اجزای یک کامپیوتر را دارد که میکروکنترلر یا سیستمهای روی تراشه نامیده می شوند.
نوعی دیگر از پردازنده ها نیز وجود دارند که پردازنده های آرایه ای یا برداری (Vector) نامیده شده و در حقیقت گروهی از پردازنده ها هستند که عملکرد موازی داشته و هیچ واحدی در مرکزیت ندارند. CPUهای دیگری که مجازی هستند، یک فرم انتزاعی از منابع محاسباتی پویا می باشند.
تکامل پردازنده های مرکزی؛
- پردازنده های ترانزیستوری
با گذر زمان و پیشرفت تکنولوژی، پردازنده ها نیز پیچیده تر شده و ساخت آنها همراه با ابزارهای الکترونیک کوچک تر و قابل اعتماد تر تکامل یافت؛ یکی از این قطعات تزارنزیستور است که در طی دهه های 1950 و 1960 ابداع شد. برای ساخت پردازنده های ترانزیستوری از عناصر سوئیچ حجیم، نا مطمئن و شکننده مثل لامپ های خلاء و رله ها استفاده شده است. قطعات ترانزیستوری، علاوه بر افزایش قابلیت اطمینان و کاهش مصرف انرژی به پردازنده ها این امکان را می دهند که با سرعت بالاتری کار کنند، زیرا زمان سوئیچ یک ترانزیستور، در مقایسه با اجزایی همچون لامپ خلاء یا رله کوتاه تر است؛ امروزه، می توان گفت که عناصر سوئیچ موجود در بازار تماما ترانزیستور هستند. چرا که با وجود این قطعات سرعت پردازنده ها به سادگی تا ده ها مگاهرتز رسید؛
با گسترش استفاده از ترانزیستورهای گسسته و پردازنده های مدار مجتمع، طراحی های جدید با کارآیی بالا، مثل پردازنده های برداری SMD (تک دستورالعمل،چندین داده) روی کار آمدند؛
- پردازنده های مجتمع کوچک مقیاس
گاها، تعداد زیادی ترانزیستور را در یک فضای فشرده به هم متصل کرده و قطعه ای جدید می سازند که به شکل یک مدار مجتمع در می آید. در این مدار مجتمع، تعداد زیادی از ترانزیستورها بر روی یک دای نیمه هادی یا چیپ قرار می گیرند؛ در ابتدا، مدارهای دیجیتال غیراختصاصی پایه ای در داخل آی سی ها فشرده شدند. پردازنده های مبتنی بر این آی سی ها پردازنده های مجتمع کوچک مقیاس نام دارند؛
- پردازنده های مجتمع بزرگ مقیاس
پردازنده های ترانزیستوری، با داشتن مقیاس پذیری بالا و مصرف انرژی بسیار کمتر و تراکم بالاتر امکان تولید مدارهای مجتمع با تراکم بالا را فراهم کرد. سپس، با پیشرفت تکنولوژی میکرو الکترونیک، ترانزیستورهای بیشتری در داخل آی سیها قرار داده شدند که باعث کاهش تعداد آی سیهای مورد نیاز برای یک پردازنده شد و پردازنده های مجتمع بزرگ مقیاس به وجود آمدند. حتی آی سیهایی همچون ام.اس.آی و ال.اس.آی، تعداد ترانزیستورها را به صدها و حتی هزاران عدد افزایش دادند.
- ریزپردازنده ها
سرانجام، در اوایل دهه 1970 ریزپردازنده ها ابداع شدند. اولین ریزپردازنده ساخته شده، یعنی اینتل ۸۰۸۰ بهطور گسترده مورد استفاده قرار گرفت. این پردازندهها، تقریباً بهطور کامل، تمام روشهای دیگر پیادهسازی پردازنده را از رده خارج کردند. اکنون، اصطلاح CPU تقریباً بهطور کامل به ریزپردازندهها اطلاق میشود. بعلاوه، میتوان چندین CPU را در یک چیپ پردازشی با هم ترکیب کرد. ریز پردازندهها، درواقع، پردازندههایی هستند که با تعداد حداقل آی سیها تولید میشوند. پیادهسازی اجزای پردازنده روی یک دای، منجر به کوچک شدن اندازهٔ کلی پردازندهها و افزایش سرعت سوئیچ گردید. علت این امر، تغییر فاکتورهای فیزیکی خاصی همچون کاهش ظرفیت خازنی پارازیتی بود. ریزپردازندههای همگام، دارای سرعتهایی در حدود دهها مگاهرتز تا چندین گیگاهرتز هستند. علاوه بر این، قابلیت ساخت ترانزیستورهای بسیار کوچک در یک آی سی، باعث افزایش پیچیدگی شد. این مسئله باعث چندین برابر شدن تعداد ترانزیستورها در یک پردازشگر گردید.
هسته و فرکانس
مهمترین مؤلفه مطرح شده برای سرعت پردازنده، فرکانس کلاک پردازنده است و افزایش تعداد هستههای پردازنده، همواره دلیل بر افزایش سرعت پردازش هسته نیست. سرعت پردازنده نیز، نشانگر تعداد عملی است که یک هسته میتواند در هر ثانیه انجام دهد. واحد اندازهگیری فرکانس پردازنده، گیگاهرتز است که با علامت GHz نشان داده میشود. فرکانس پردازندهها با فرکانس پایه یا کلاک پایه (Base clock) شناخته میشود.
نحوه عمل پردازنده مرکزی
کارکرد اساسی اکثر پردازنده ها، صرف نظر از فرم فیزیکی آنها، اجرای مجموعه ای از دستورالعملهای ذخیره شدهاست که برنامه نام دارد. دستورالعملهایی که قرار است اجرا شوند، در نوعی حافظهٔ کامپیوتر ذخیره میشوند. تقریباً تمام پردازندهها در طی عملکرد خود، از سه مرحلهٔ واکشی، کد گشایی، و اجرا که در مجموع چرخهٔ دستورالعمل نامیده میشود، تبعیت میکنند. بعد از اجرای یک دستورالعمل، کل فرایند تکرار میشود و چرخهٔ بعدی دستورالعمل، بهطور معمول، دستورالعمل بعدی را، در نتیجهٔ افزایش شمارنده برنامه، واکشی میکند. اگر یک دستورالعمل پرش اجرا شود، مقدار شمارندهٔ برنامه طوری تغییر میکند که آدرس دستورالعملی که به آن پرش انجام شدهاست، در آن ذخیره شود و اجرای برنامه بهطور نرمال ادامه پیدا میکند. در پردازندههای پیچیدهتر میتوان چندین دستورالعمل را بهطور همزمان واکشی، رمزگشایی، و اجرا کرد.
خنک کننده پردازنده مرکزی
از آنجایی که CPU یک قطعه بسیار مهم در هر سیستم کامپیوتری است، بنابراین باید برای خنک کردن آن در حین کار نیز از یک خنک کننده مناسب استفاده کرد تا دمای آن را پایین نگه دارد. بدین منظور، دو نوع خنک کننده رایج است؛
- خنک کننده بادی؛ این خنک کننده ها، پرمصرف ترین و ارزان ترین نوع فن های سی پی یو هستند و پردازنده را از طریق باد فن خنک می کنند.
- خنک کننده آبی؛ نوع دوم از انواع خنک کننده، آبی هستند که در سیستم های حرفه ای و رده بالا از آنها استفاده می شود و ساز و کار پیچیده تری نسبت به خنک کننده های بادی دارد. این سیستم، از یک مایع مانند آب برای دفع گرمای تولید شده توسط تراشه استفاده می کند.
حافظه نهان (کش)
حافظه کش پردازنده، در واقع، نوعی حافظهٔ نهان سختافزاری است که توسط واحد پردازش مرکزی سیستم برای کاهش میانگین هزینهٔ زمان یا انرژی دسترسی به داده موجود در حافظه اصلی استفاده میشود. این بخش، یک حافظه کوچکتر و سریعتر است که به هستهٔ پردازنده نزدیکتر بوده و کپیهایی از دادههای مکررا استفاده شده در مکانهایی از حافظه اصلی، را ذخیره میکند. اکثر CPUها، دارای کشهای مستقل و متنوع، از جمله: کشهای دستورالعمل، کشهای داده و ... هستند. البته، تقریباً تمام پردازندههای جدید دارای کش، یک کش دو قسمتی در سطح یک و سطح دو و در پردازندههای بزرگتر، کش سطح سه نیز دارند.
پردازنده برای به دست آوردن داده، ابتدا حافظه نهان را چک میکند و پس از نیافتن اطلاعات، به سراغ حافظههای دیگر از جمله رم میرود. حافظه نهان میتواند دارای چند سطح است که با حرف L مشخص میشود. معمولاً پردازندهها تا ۳ لایه حافظه نهان دارند که لایه اول (L1) نسبت به دوم (L2) و دوم نیز نسبت به سوم (L3) دارای سرعت بیشتر و حافظه کمتری است. زمانیکه پردازنده میخواهد دادهای را مورد پردازش قرار دهد ابتدا به نزدیکترین حافظه سطح حافظه نهان خود نگاه میکند تا در صورت موجود بودن آن دستورالعمل را پردازش کند. اگر دادهها در نزدیکترین سطح حافظه پنهان پردازنده یافت شد، آن را پردازش می کند ولی اگر پیدا نشد به ترتیب به سطحهای بعدی هدایت می شود و در نهایت اگر داده یافت نشد به حافظه اصلی رجوع میکند.
سرعت کلاک
اکثر CPUها، مدارهای همگامی هستند که از یک سیگنال کلاک برای هماهنگکردن عملیات متوالی خود استفاده میکند. این سیگنال، را یک مدار نوسانگر خارجی تولید میکند و در واقع، تعداد ثابتی از پالسها در هر ثانیه را به شکل یک موج مربعی متناوب تولید میکند. فرکانس این پالسها مشخص میکند که CPU با چه سرعتی دستورالعملها را اجرا می کند. لذا، با افزایش آن، دستورالعملهای بیشتری توسط CPU در هر ثانیه اجرا می شوند.
ماژول تنظیم کنندهٔ ولتاژ
بسیاری از CPUهای جدید، دارای یک قطعهٔ مجزا بر روی دای برای مدیریت انرژی هستند. وظیفه این قطعه، تنظیم کردن منبع ولتاژ به صورت دلخواه برای مدار CPU است. لذا از این طریق، بین عملکرد و مصرف انرژی تعادلی را برقرار میکند.
محدوده اعداد صحیح
هر پردازنده مقادیر عددی را به شیوه خاصی نمایش میدهد. برای مثال برخی کامپیوترهای دیجیتال قدیمی اعداد را به شکل مقادیر سیستم عددی ده دهی نشان میدادند و برخی دیگر از کامپیوترها از نمایشهای غیر معمول بدین منظور استفاده می کنند. تقریباً تمامی پردازندههای جدید، اعداد را به فرم باینری نشان میدهند. در این نوع نوشتار، هر رقم به وسیله یک کمیت فیزیکی دو مقداری، نظیر ولتاژ «بالا» یا «پایین» نمایش داده میشود.
اندازه و دقت اعداد صحیحی که یک پردازنده میتواند نمایش دهد، مربوط به نمایش عددی میشود. در رابطه با یک پردازنده باینری، این معیارها به وسیلهٔ تعداد بیتهایی که پردازنده میتواند در یک عملیات پردازش کند، اندازهگیری میشود. پردازندههایی که دارای اندازه کلمات بزرگتری هستند، نیاز به مداربندی بیشتری دارند. پس این پردازنده ها، باید از لحاظ فیزیکی بزرگتر و هزینهٔ بیشتری داشته و انرژی زیادی نیز مصرف کنند. بعلاوه، زمانیکه سیستم نیازمند عملکرد بالاست، مزایای اندازهٔ بزرگتر کلمه بر معایب آن چیره می شود. همچنین باید بدانیم که مسیرهای دادهٔ داخلی یک پردازنده، میتواند باریکتر از اندازه کلمه باشد و بدین ترتیب، اندازه و هزینه کاهش یابد.
برای بهرهگیری از مزایای طولهای مختلف بیت، بسیاری از مجموعه دستورالعملها دارای پهناهای بیت متفاوتی هستند. در این حالت، پردازندههایی که از این مجموعه دستورالعملها استفاده میکنند، میتوانند پهناهای بیت متفاوتی برای قسمتهای مختلف کامپیوتر داشته باشند.
موازی سازی در پردازنده های مرکزی
تلاش برای رسیدن به عملکردی در حد اسکالر یا بهتر از آن منجر به پیدایش انواعی از روشهای طراحی شد که باعث میشود تا پردازنده، کمتر به صورت خطی و بیشتر به صورت موازی عمل کند. در هنگام استفاده از اصطلاح موازی سازی برای پردازندهها، دو اصطلاح بهطور کلی، برای طبقهبندی این تکنیکهای طراحی استفاده میشود:
- موازی سازی در سطح دستور العمل (instruction-level parallelism) با هدف افزایش سرعت اجرای دستورالعملها در داخل پردازنده است
- موازی سازی در سطح وظایف (task-level parallelism) نیز با هدف افزایش تعداد ریسمانها یا فرایندهایی که یک پردازنده قادر است تا بهطور همزمان اجرا کند.
پردازندههای مجازی
رایانش ابری میتواند با تقسیمبندی اعمال پردازنده بین واحدهای پردازش مرکزی مجازی باشد. یک میزبان، معادل مجازی یک سیستم فیزیکی است که بر روی آن سیستمی از نوع مجازی عمل میکند. زمانی که چندین سیستم فیزیکی با یکدیگر کار کرده و به صورت یکپارچه مدیریت میشوند، یک خوشه به وجود میآید. در برخی سیستمها، این امکان وجود دارد تا به صورت پویا از خوشه کم و یا بدان اضافه کنیم. منابع موجود در یک میزبان و سطح خوشه را میتوان به مخازن منبع با اجزای دیگر تقسیم کرد.
اورکلاک
بالا بردن میزان نرخ زمانی کلاک که سبب تولید هشریت بیشتر در واحد زمان و در نتیجه تسریع محاسبه در بازه زمانی میشود، را فرکانس اورکلاک می نامند. پردازندههایی با قفل باز را میتوان اورکلاک کرد و مزیت آن، انجام سریع تر پردازش و رندرهای سنگین توسط پردازنده است. مضرات اورکلاک بالا رفتن دمای پردازنده برای محاسبه و پایین آمدن عمر پردازشگر در نتیجه استفاده مداوم ازآن است.
شرکتهای تولیدکننده
شرکتهای تولیدکننده ای، هرساله پردازندههای قدرتمندی برای کاربران عادی و گیمرها ارائه میشوند. از جمله؛ اینتل، ایامدی، اِنویدیا، آی بی اِم، Cyrix و ...
ترجمه و تالیف: حدیثه سقاتپه
منابع و ماخذ؛
Computers and Computations
http://tech-com.ir