مقاله

microprocessor چیست ؟ — همه دانستنی ها در مورد ریزپردازنده — به زبان ساده

رایانه‌ای که برای خواندن این صفحه از آن استفاده می‌کنید از یک ریزپردازنده یا میکروپروسسور (Microprocessor) برای انجام کار خود بهره می‌برد. ریزپردازنده قلب هر رایانه عادی است، خواه یک دستگاه دسکتاپ باشد، خواه یک سرور یا یک لپ‌تاپ. ریزپردازنده‌ای که استفاده می‌کنید ممکن است یک Pentium، یک K6، یک PowerPC، یک Sparc یا هریک از نام‌های تجاری و انواع دیگر ریزپردازنده‌ها باشد، اما نکته مهم همه میکروپروسسورها این است که تقریباً به روش مشابه عمل می‌کنند. در این آموزش با ریزپردازنده و نحوه کار آن آشنا می‌شویم.

ریزپردازنده چیست؟

ریزپردازنده، که به عنوان CPU یا واحد پردازش مرکزی نیز شناخته می‌شود، یک موتور محاسباتی کامل است که روی یک تراشه ساخته می‌شود. اولین ریزپردازنده اینتل 4004 بود که در سال 1971 معرفی شد. ریز پردازنده 4004 چندان قدرتمند نبود و تنها کاری که می‌توانست انجام دهد جمع و تفریق بود و همزمان تنها با 4 بیت کار می‌کرد. اما شگفت‌آور بود که همه چیز روی یک تراشه قرار داشت. قبل از 4004، مهندسان کامپیوترها را از مجموعه تراشه‌ها یا از اجزای گسسته مانند ترانزیستورها می‌ساختند. ریزپردازنده 4004 مجهز به یکی از اولین ماشین‌حساب‌های الکترونیکی قابل حمل بود.

microprocessor چیست

می‌توان چنین گفت که میکروپروسسور نوعی آی‌سی است که فقط واحد پردازش مرکزی (CPU) دارد و فاقد سایر اجزای لازم در داخل آی‌سی است. در واقع، بسته‌بندی این قطعه شامل رم، رام و سایر اجزای مورد نیاز برای انجام یک کار مشخص نیست. به همین دلیل برای تکمیل آن به اجزا و قطعات خارجی نیاز است.

اگر تا به حال به این فکر کرده‌اید که ریزپردازنده در رایانه چه کاری انجام می‌دهد، یا اگر تاکنون در مورد تفاوت انواع ریزپردازنده‌ها تعجب کرده‌اید، ادامه این مطلب را بخوانید. در این مطلب خواهید آموخت که چگونه تکنیک‌های منطق دیجیتال نسبتاً ساده به رایانه کمک می‌کند وظیفه خود را انجام دهد.

پیشرفت ریزپردازنده: اینتل

اولین ریزپردازنده‌ای که منجر به یک رایانه خانگی شد، اینتل ۸۰۸۰ (Intel 8080) بود؛ یک کامپیوتر کامل 8 بیتی روی یک تراشه، که در سال 1974 معرفی شد. اولین ریزپردازنده‌ای که در بازار سر و صدا به پا کرد اینتل 8088 (Intel 8088) بود که در سال 1979 معرفی شد و در کامپیوتر شخصی آی‌بی‌ام (IBM PC)، که اولین بار در حدود سال 1982 ظاهر شد، به کار رفت. اگر با بازار رایانه‌های شخصی و تاریخچه آن‌ها آشنایی داشته باشید، می‌دانید که بازار رایانه‌های شخصی از 8088 به 80286 به 80386 به 80486 به 80486 به پنتیوم به پنتیوم ۲ به پنتیوم ۳ به پنتیوم 4 تغییر کرد. همه این‌ ریزپردازنده‌ها توسط اینتل ساخته شده‌اند و همه آن‌ها پیشرفت در طراحی بر پایه 8088 هستند. پنتیوم ۴ قادر به اجرای هر قطعه کدی است که با نسخه اصلی 8088 اجرا می‌شود، با این تفاوت که آن را 5000 بار سریع‌تر انجام می‌دهد!

ریزپردازنده اینتل

از سال 2004، اینتل ریزپردازنده‌هایی با چندین هسته و میلیون‌ها ترانزیستور دیگر را معرفی کرده است. اما حتی این ریزپردازنده‌ها نیز از همان قوانین کلی تراشه‌های قبلی پیروی می‌کنند. جدول زیر مشخصات ریزپردازنده‌های مختلف را نشان می‌دهد.

تاریخ میکروپروسسور

اطلاعات تکمیلی در مورد جدول بالا به شرح زیر است:

  • منظور از سال، سالی است که پردازنده برای اولین بار معرفی شده است. بسیاری از پردازنده‌ها سال‌ها پس از تاریخ انتشار با سرعت کلاک بالاتر دوباره معرفی می‌شوند.
  • ترانزیستور تعداد ترانزیستورهای تراشه است. می‌بینید که در طول سال‌ها تعداد ترانزیستورهای یک تراشه به طور پیوسته افزایش یافته است.
  • میکرون به پهنا برحسب میکرون اشاره دارد که کوچک‌ترین سیم روی تراشه است. برای مقایسه، ضخامت موی انسان 100 میکرون است. با پایین آمدن اندازه ویژگی در تراشه، تعداد ترانزیستورها افزایش می‌یابد.
  • سرعت کلاک حداکثر سرعتی است که می‌توان تراشه را با آن کلاک کرد. سرعت کلاک را در بخش بعدی بیشتر معرفی می‌کنیم.
  • پهنای داده پهنای واحد محاسبه و منطق (ALU) است. یک ALU هشت‌بیتی می‌تواند جمع/تفریق/ضرب و غیره دو عدد 8 بیتی را انجام دهد، در حالی که یک واحد محاسبه و منطق 32 بیتی می‌تواند با اعداد 32 بیتی کار کند. یک ALU هشت‌بیتی باید چهار دستورالعمل را برای جمع کردن دو عدد 32 بیتی اجرا کند، در حالی که یک واحد محاسبه و منطق 32 بیتی می‌تواند آن را در یک دستورالعمل انجام دهد. در بسیاری از موارد، پهنای گذرگاه داده خارجی با ALU برابر است، اما نه همیشه. ریزپردازنده 8088 دارای یک واحد محاسبه و منطق 16 بیتی و یک گذرگاه 8 بیتی داشت، در حالی که پنتیوم‌های مدرن داده 64 بیتی را برای ALUهای 32 بیتی خود واکشی می‌کنند.
  • MIPS مخفف «میلیون‌ دستور در ثانیه» است و معیار تقریبی عملکرد CPU است. پردازنده‌های مدرن می‌توانند کارهای مختلفی را انجام دهند که رتبه‌بندی MIPS معنای خود را تا حد زیادی از دست بدهد، اما می‌توانید از این ستون درک کلی قدرت نسبی پردازنده‌ها را به دست آورید.

از این جدول می‌بینید که به طور کلی، بین سرعت کلاک (ساعت) و MIPS رابطه وجود دارد. حداکثر سرعت کلاک تابعی از روند تولید است و در تراشه تأخیر دارد. همچنین بین تعداد ترانزیستورها و MIPS رابطه وجود دارد. به عنوان مثال، 8088 با سرعت 5 مگاهرتز کلاک می‌شود، اما فقط در MIPS برابر با 0٫33 (تقریباً یک دستورالعمل در هر 15 سیکل ساعت) اجرا می‌شود. پردازنده‌های مدرن اغلب می‌توانند با سرعت دو دستورالعمل در هر سیکل ساعت کار کنند. این پیشرفت ارتباط مستقیمی با تعداد ترانزیستورهای تراشه دارد.

برای درک چگونگی عملکرد ریزپردازنده، بهتر است که به درون آن نگاهی بیندازیم و با منطق مورد استفاده برای ایجاد یک ریزپردازنده آشنا شویم. در این فرایند می‌توانید در مورد زبان اسمبلی – زبان مادری ریزپردازنده – و بسیاری از کارهایی که مهندسان برای افزایش سرعت پردازنده انجام می‌دهند، یاد بگیرید.

منطق ریزپردازنده

ریزپردازنده مجموعه‌ای از دستورالعمل‌های ماشین را اجرا می‌کند که به پردازنده می‌گوید چه کاری انجام دهد. بر اساس دستورالعمل‌ها، یک ریزپردازنده سه کار اساسی را انجام می‌دهد:

  • با استفاده از ALU (واحد حسابی و منطق)، یک ریزپردازنده می‌تواند عملیات ریاضی مانند جمع، تفریق، ضرب و تقسیم را انجام دهد. ریزپردازنده‌های مدرن شامل پردازنده‌های کامل نقطه شناور هستند که می‌توانند عملیات بسیار پیچیده‌ای را روی اعداد بزرگ نقطه شناور انجام دهند.
  • یک ریزپردازنده می‌تواند داده‌ها را از یک مکان حافظه به مکان دیگر منتقل کند.
  • ریزپردازنده می‌تواند تصمیم بگیرد و براساس دستورالعمل‌های جدید به مجموعه دستورالعمل‌های جدیدی بپردازد.

یک ریزپردازنده ممکن است کارهای بسیار پیچیده‌ای داشته باشد، اما سه فعالیت اساسی دارد. نمودار زیر یک ریزپردازنده بسیار ساده را نشان می‌دهد که قادر به انجام این سه کار است.

ریزپردازنده

کار یک ریزپردازنده به همین سادگی است. این ریزپردازنده دارای اجزای زیر است:

  • یک گذرگاه آدرس (که ممکن است 8، 16 یا 32 بیت پهنا داشته باشد) که آدرس را به حافظه می‌فرستد.
  • یک گذرگاه داده (که ممکن است 8، 16 یا 32 بیت پهنا داشته باشد) که می‌تواند داده را به حافظه بفرستد یا داده را از حافظه دریافت کند.
  • یک خط RD (خواندن) و WR (نوشتن) برای اینکه به حافظه بگوید آیا می‌خواهد مکان آدرس‌دهی شده را تنظیم کند یا بگیرد.
  • یک خط ساعت که اجازه می‌دهد پالس ساعت پردازنده را دنبال کنید.
  • یک خط ریست که شمارنده برنامه را به صفر (یا هر چیز دیگری) بازنشانی می‌کند و اجرای آن را دوباره شروع می‌کند.

بیایید فرض کنیم که هر دو گذرگاه آدرس و داده در این مثال 8 بیت عرض دارند.

در اینجا اجزای سازنده این ریزپردازنده ساده به صورت زیر هستند:

  • ثبات‌ها رجیسترهای A و B و C لچ‌هایی هستند که از فلیپ فلاپ ساخته می‌شوند.
  • لچ آدرس دقیقاً مانند ثبات‌های A و B و C است.
  • شمارنده برنامه یک لچ است که دارای توانایی افزایش 1 درصورتی است که کار را انجام دهید، و همچنین هنگامی که این کار را انجام شود به صفر تنظیم می‌شود.
  • ALU می‌تواند به سادگی یک جمع‌کننده 8 بیتی باشد یا ممکن است بتواند مقادیر 8 بیتی را جمع، تفریق، ضرب و تقسیم کند. مورد دوم را در اینجا فرض می‌کنیم.
  • رجیستر آزمون یک لچ ویژه است که می‌تواند مقادیر حاصل از مقایسه‌های انجام شده در ALU را در خود نگه دارد. یک ALU به طور معمول می‌تواند دو عدد را با هم مقایسه کند و برابر بودن آن‌ها را تعیین کند؛ یکی بزرگ‌تر از دیگری است و غیره. ثبات آزمون همچنین می‌تواند بیت نقلی را از آخرین مرحله جمع‌کننده نگه دارد. این مقادیر را در فلیپ‌فلاپ‌ها ذخیره می‌کند و سپس رمزگشای دستورالعمل می‌تواند از مقادیر برای تصمیم‌گیری استفاده کند.
  • در نمودار شش جعبه با علامت “3-State” وجود دارد. این‌ها بافرهای سه‌حالته هستند. یک بافر سه‌حالته می تواند از یک ۰، یک ۱ عبور کند یا اساساً می‌تواند خروجی خود را قطع کند (سوئیچی را تصور کنید که خط خروجی را کاملاً از سیمی که خروجی به سمت آن است قطع می‌کند). یک بافر حالت سه‌حالته به چندین خروجی اجازه می‌دهد تا به یک سیم متصل شوند، اما فقط یکی از آن‌ها در واقع 1 یا 0 را روی خط قرار می‌دهد.
  • ثبات دستورالعمل و دیکدر (رمزگشای) دستورالعمل وظیفه کنترل کلیه مؤلفه‌های دیگر را بر عهده دارند.

اگرچه در این نمودار نشان داده نشده‌اند، اما خطوط کنترلی از دیکدر دستورالعمل به صورت زیر وجود دارند:

  • به ثبات A بگو تا مقداری را که در حال حاضر در گذرگاه داده قرار دارد قفل (لچ) کند.
  • به ثبات B بگو تا مقداری را که در حال حاضر در گذرگاه داده قرار دارد قفل (لچ) کند.
  • به ثبات C بگو تا مقدار فعلی خروجی ALU را لچ کند.
  • به ثبات شمارنده برنامه بگو تا مقداری را که در حال حاضر روی گذرگاه داده است لچ کند.
  • به ثبات آدرس بگویید تا مقداری را که در حال حاضر در گذرگاه داده قرار دارد قفل کند.
  • به ثبات دستورالعمل‌ها بگو تا مقداری را که در حال حاضر روی گذرگاه داده است قفل کند.
  • به شمارنده برنامه بگو افزایش یابد.
  • به شمارنده برنامه بگو تا به صفر ریست شود.
  • هریک از شش بافر سه‌حالته (شش خط جداگانه) را فعال کن.
  • به ALU بگو چه عملیاتی انجام شود.
  • به ثبات آزمون بگو بیت‌های آزمون ALU را لچ کند.
  • خط RD را فعال کن.
  • خط WR را فعال کن.

حافظه ریزپردازنده

در بخش قبلی در مورد آدرس و گذرگاه داده و همچنین خطوط RD و WR صحبت شد. این گذرگاه‌های و خطوط یا به رم (RAM) یا رام (ROM) و به طور کلی هر دو متصل می‌شوند. در ریز پردازنده نمونه ما، یک گذرگاه آدرس به عرض 8 بیت و یک گذرگاه داده با عرض 8 بیت داریم. این بدین معناست که ریزپردازنده می‌تواند ۲۵۶=28 بایت حافظه را آدرس‌دهی کند، و می‌تواند 8 بیت حافظه را همزمان بخواند یا بنویسد. بیایید فرض کنیم این ریزپردازنده ساده 128 بایت ROM از آدرس 0 و 128 بایت RAM از آدرس 128 شروع می‌کند.

حافظه میکروپروسسور

ROM مخفف حافظه فقط خواندنی است. تراشه ROM با مجموعه دائمی بایت از پیش تنظیم شده برنامه‌ریزی شده است. گذرگاه آدرس‌دهی به تراشه ROM می‌گوید که کدام بایت را گرفته و در گذرگاه داده قرار دهید. وقتی خط RD حالت را تغییر می‌دهد، تراشه ROM بایت انتخاب شده را روی گذرگاه داده نمایش می‌دهد.

RAM مخفف حافظه دسترسی تصادفی است. RAM شامل بایت اطلاعات است و ریزپردازنده بسته به سیگنال شدن خط RD یا WR می‌تواند آن بایت‌ها را بخواند یا بنویسد. یک مشکل تراشه‌های RAM امروزی این است که با قطع شدن برق همه چیز را فراموش می‌کنند. به همین دلیل کامپیوتر به ROM نیاز دارد.

به هر حال، تقریباً همه رایانه‌ها حاوی مقداری ROM هستند (می‌توان یک رایانه ساده ساخت که فاقد RAM باشد. بسیاری از میکروکنترلرها این کار را با قرار دادن تعداد کمی بایت RAM روی تراشه پردازنده انجام می‌دهند. اما ایجاد آن بون ROM غیرممکن است).

در رایانه شخصی، ROM را BIOS (سیستم اصلی ورودی/خروجی) می‌نامند. هنگامی که ریزپردازنده شروع به کار می‌کند، دستورالعمل‌هایی را که در BIOS پیدا می‌کند، شروع به پیگیری خواهد کرد. دستورالعمل‌های BIOS مواردی مانند آزمایش سخت‌افزار در دستگاه را انجام می‌دهند و سپس برای واکشی بخش بوت به هارددیسک می‌روند. این بخش بوت یک برنامه کوچک دیگر است و BIOS پس از خواندن از روی دیسک، آن را در RAM ذخیره می‌کند. سپس ریزپردازنده شروع به اجرای دستورالعمل‌های بخش بوت از RAM می‌کند. برنامه بخش بوت به ریزپردازنده می‌گوید که چیز دیگری را از هارد دیسک به RAM بیاورد، سپس ریزپردازنده آن را اجرا می‌کند و… . به این ترتیب ریزپردازنده کل سیستم عامل را بارگیری و اجرا می‌کند.

عملکرد و روندهای ریزپردازنده

تعداد ترانزیستورهای موجود تأثیر به‌سزایی در عملکرد پردازنده دارد. همان‌طور که قبلاً مشاهده شد، اجرای یک دستورالعمل معمولی در پردازنده‌ای مانند 8088 به 15 چرخه ساعت نیاز دارد. به دلیل طراحی ضریب، تقریباً 80 چرخه طول می‌کشید تا فقط یک ضرب 16 بیتی در 8088 انجام شود. با ترانزیستورهای بیشتر، ضرب‌های بسیار قدرتمندتر با سرعت تک‌چرخه امکان‌پذیر است.

ترانزیستورهای بیشتر امکان ایجاد فناوری به نام «خط لوله» (Pipelining) را نیز فراهم می‌کنند. در معماری خط لوله، اجرای دستورالعمل‌ها با هم همپوشانی دارند. بنابراین، حتی اگر اجرای هر دستورالعمل ممکن است پنج چرخه ساعت طول بکشد، در مراحل مختلف اجرا همزمان می‌توان پنج دستورالعمل داشت. به این ترتیب به نظر می‌رسد که یک دستورالعمل هر چرخه ساعت را کامل می‌کند.

بسیاری از پردازنده‌های مدرن دیکدر دستورالعمل‌های متعددی دارند که هر کدام خط لوله مخصوص به خود را دارند. این امکان برای چندین جریان دستورالعمل فراهم می‌کند، به این معنی که بیش از یک دستورالعمل می‌تواند در طول هر چرخه ساعت تکمیل شود. اجرای این روش می‌تواند کاملاً پیچیده باشد، بنابراین ترانزیستورهای زیادی را می‌طلبد.

روندها

روند طراحی پردازنده در درجه اول به سمت ALUهای 32 بیتی کامل با پردازنده‌های شناور سریع در داخل و اجرای خط لوله با چندین جریان دستورالعمل بوده است. جدیدترین مورد در طراحی پردازنده ALUهای 64 بیتی است و انتظار می‌رود مردم در دهه آینده این پردازنده‌ها را در رایانه‌های شخصی خود داشته باشند. همچنین تمایل به دستورالعمل‌های خاص (مانند دستورالعمل‌های MMX) وجود دارد که عملکردهای خاص را به ویژه کارآمد می‌کند و همچنین در آن از پشتیبانی از حافظه مجازی سخت‌افزاری و کش L1 بر روی تراشه پردازنده استفاده می‌شود. همه این روندها شمار ترانزیستورها را بالا می‌برند و منجر به تولید نیروگاه‌های چند میلیونی ترانزیستوری امروزی می‌شوند. این پردازنده‌ها می‌توانند در هر ثانیه حدود یک میلیارد دستورالعمل را اجرا کنند!

تفاوت میکروپروسسور و میکروکنترلر

برخی از تفاوت‌های میکروکنترلرها و میکروپروسسورها به شرح زیر است:

  • میکروکنترلر یک مینی‌کامپیوتر است که به تنهایی قادر به انجام وظایفی است (مثلاً میکروکنترلرهای 8051، 8951 و غیره)، اما میکروپروسسور واحد پردازش مرکزی رایانه است (مثلاً 8085، 8086 و غیره).
  • میکروکنترلر دارای تجهیزات جانبی لازم در داخل تراشه است (مانند رام، رم و…)، به همین دلیل سیستم روی تراشه یا SoC نامیده می‌شود. واحدهای عملکردی این قطعه عبارت‌اند از ثبات‌ها، رم، رام، ALU، پورت‌های I/O، دیجیتال به آنالوگ، آنالوگ به دیجیتال، کانترها و تایمرها. در طرف مقابل، میکروپروسسور برای انجام یک کار به رم و رام خارجی نیاز دارد. واحدهای عملکردی آن ثبات، CU و ALU و غیره هستند.
  • از میکروکنترلرها در سیستم‌های تعبیه‌ای و کاربردهای خاص استفاده می‌شود. اما میکروپروسسورها به عنوان مغز کامپیوتر به کار می‌روند.
  • از آنجا که میکروکنترلر به تجهیزات خارجی نیاز ندارد، در وسایل فشرده به کار می‌رود، اما میکروپروسسور به تجهیزات جانبی نیاز دارد و در صورت استفاده از آن، اندازه وسیله حجیم خواهد شد.
  • به دلیل تعداد کم تجهیزات خارجی میکروکنترلر، مصرف توان میکروکنترلر بسیار کم است و با باتری می‌توان آن را تغذیه کرد. اما میکروپروسسور به دلیل داشتن تجهیزات اضافه به توان بیشتری نیاز دارد و به همین دلیل برای کار با باتری مناسب نیست.
  • میکروکنترلر داری حافظه داخلی با مقدار مشخصی است که قابلیت ارتقا ندارد. اما حافظه میکروپروسسور را می‌توان به سادگی و با توجه به کار مورد نظر ارتقا داد.
  • میکروکنترلر به دلیل دارا بودن حافظه روی چیپ برنامه و دستورات را سریع‌تر بارگیری می‌کند. بنابراین، در هنگام راه‌اندازی سریع‌تر است. اما از آنجا که میکروپروسسور حافظه خارجی دارد، بارگیری برنامه‌ها در آن نسبت به میکروکنترلر زمان می‌برد و به همین دلیل، نسبتاً کند است.
  • میکروکنترلر در زمان بیکاری سیستم مصرف توان را کاهش داده و در آن صرفه‌جویی می‌کند. اما میکروپروسسور سیستم صرفه‌جویی انرژی ندارد و در شرایط بیکار بودن سیستم انرژی مصرف می‌کند.
  • سرعت پردازش میکروکنترلر ۷ مگاهرتز تا ۵۰ مگاهرتز است. بنابراین، نمی‌توان از آن برای کارهای پیشرفته استفاده کرد. این در حالی است که سرعت پردازش میکروپروسسور به بالای یک گیگاهرتز نیز می‌رسد و می‌تواند کارهای سنگین را نیز انجام دهد.
  • میکروکنترلر ویدئوی اچ‌دی تا 720p را پشتیبانی می‌کند، در حالی که میکروپروسسور بالاتر از این مقدار را پشتیبانی خواهد کرد.
  • میکروکنترلر از USB 2.0 با حداکثر سرعت ۴۸۰ مگابیت بر ثانیه پشتیبانی می‌کند. اما میکروپروسسور قابلیت پشتیبانی از USB 3.0 با سرعت ۵ گیگابیت بر ثانیه را دارد.
  • میکروکنترلر قطعه‌ای با کاربرد خاص است، بدین معنی که برای یک کار مشخص طراحی شده است. اما میکروپروسسور برای کارهای پیچیده و دشوار طراحی شده که از حافظه زیادی استفاده می‌کنند.
  • میکروکنترلر ارزان است و مصرف توان کمتری دارد، بنابراین برای کاربردهای الکترونیک که در آن‌ها از باتری استفاده می‌شود و هزینه پایین مهم است، گزینه مناسبی هستند. در طرف مقابل، میکروپروسسورها گران و پرمصرف هستند و سرعت پردازش بالایی دارند، در نتیجه برای کارهای پیچیده کارایی بالایی دارند.

نوشته های مشابه

دیدگاهتان را بنویسید

دکمه بازگشت به بالا