کامپیوتری که از آن برای خواندن این صفحه استفاده میکنید، برای انجام وظایف خود از یک ریزپردازنده بهره میبرد. ریزپردازنده، قلب هر کامپیوتر معمولی است، چه یک دستکتاپ یا دستگاه رومیزی باشد، چه یک سرور یا یک لپتاپ. انواع مختلفی از ریزپردازندهها وجود دارد، اما همه آنها تقریباً کار یکسانی را به روشی مشابه انجام میدهند.
یک ریزپردازنده – که با نام CPU یا واحد پردازش مرکزی (Central Processing Unit) نیز شناخته میشود – یک موتور محاسباتی کامل است که بر روی یک تراشه واحد ساخته میشود. اولین ریزپردازنده، Intel 4004 بود که در سال 1971 معرفی شد. 4004 توانایی چندانی نداشت – تنها کاری که میتوانست انجام دهد جمع و تفریق بود و آن را هم فقط 4 بیت در هر زمان میتوانست انجام دهد. اما شگفتانگیز بود که همه چیز روی یک تراشه قرار داشت. قبل از 4004، مهندسان کامپیوترها را یا از مجموعهای از تراشهها یا از اجزای گسسته (ترانزیستورهایی که یکی یکی سیمکشی شده بودند) میساختند. 4004 یکی از اولین ماشینحسابهای الکترونیکی قابل حمل را مجهز کرد.
اگر تا به حال از خود پرسیدهاید که ریزپردازنده موجود در کامپیوتر شما چه کاری انجام میدهد، یا اگر تا به حال به تفاوت بین انواع ریزپردازندهها فکر کردهاید، پس به خواندن ادامه دهید. در این مقاله، خواهید آموخت که چگونه تکنیکهای منطق دیجیتال نسبتاً ساده به یک کامپیوتر اجازه میدهند تا کار خود را، چه بازی کردن باشد و چه بررسی املایی یک سند، انجام دهد!
پیشرفت ریزپردازنده: اینتل
اولین ریزپردازندهای که به یک کامپیوتر خانگی راه یافت، اینتل 8080 (Intel 8080) بود، یک کامپیوتر کامل 8 بیتی بر روی یک تراشه که در سال 1974 معرفی شد. اولین ریزپردازندهای که سر و صدای زیادی در بازار به پا کرد، اینتل 8088 بود که در سال 1979 معرفی شد و در IBM PC (که اولین بار حدود سال 1982 ظاهر شد) گنجانده شد. اگر با بازار PC و تاریخچه آن آشنا باشید، میدانید که بازار PC از 8088 به 80286، به 80386، به 80486، به سری Pentium، به سری Core و به سری Xeon عبور کرد. همه این ریزپردازندهها توسط اینتل ساخته شدهاند و همه آنها پیشرفتهایی در طراحی اصلی 8088 هستند.
از سال 2004، اینتل ریزپردازندههایی با هستههای متعدد و میلیونها ترانزیستور بیشتر معرفی کرده است. اما حتی این ریزپردازندهها نیز از همان قوانین کلی تراشههای قبلی پیروی میکنند.
یک پردازنده Intel Core i9 میتواند تا هشت هسته داشته باشد که هر کدام میتوانند هر قطعه کدی را که روی ریزپردازنده 8088 اولیه اجرا میشد، اجرا کنند، فقط حدود 6700 برابر سریعتر! هر هسته میتواند چندین رشته دستورالعمل را مدیریت کند و به کامپیوتر اجازه میدهد تا وظایف را کارآمدتر مدیریت کند.
محدوده محصولات اینتل از دهه 1970 به طور چشمگیری گسترش یافته است. در زمان نگارش این متن، این شرکت هنوز پردازندههای Pentium و Core را برای کامپیوترها تولید میکند، اما PCها و سرورهای با کارایی بالاتر ممکن است از تراشه Xeon استفاده کنند. علاوه بر این، اینتل خطوط پردازنده Celeron و Atom را نیز ارائه میدهد. Celeron برای کاربران کامپیوترهای سطح پایه طراحی شده است و پردازندههای Atom برای دستگاههای تلفن همراه و دستگاههایی که بخشی از اینترنت اشیا هستند، مناسبتر هستند.
در حالی که اینتل هنوز سهم بزرگی از بازار را در اختیار دارد، رقبای زیادی نیز دارد. AMD در بازار پردازندههای PC با اینتل رقابت میکند، اما در زمینه تراشههای پردازنده گرافیکی نیز که در بین گیمرهای PC محبوب هستند، تجارت بزرگی دارد. Nvidia، که به خاطر تراشههای گرافیکی خود مشهور است، CPU نیز تولید میکند. در سال 2020، اپل تراشههای سری M خود را معرفی کرد که جایگزین تراشههای اینتل شدند که اپل برای کامپیوترهای مکینتاش (Macintosh) خود استفاده میکرد. سامسونگ (Samsung) نیز ممکن است در حال کار بر روی طرحهای پردازنده اختصاصی خود باشد. بسیاری از شرکتهای دیگر، پردازندهها را برای سایر کاربردهای الکترونیکی مانند خودروها و محصولات خانه هوشمند میسازند. بازار به طور فزایندهای رقابتی شده است.
تراشه چیست؟
به تراشه (Chip)، مدار مجتمع (Integrated Circuit) نیز گفته میشود. به طور کلی، این یک قطعه کوچک و نازک از سیلیکون است که ترانزیستورهای تشکیل دهنده ریزپردازنده بر روی آن حک شدهاند. یک تراشه ممکن است به بزرگی یک اینچ در هر طرف باشد و میتواند شامل دهها میلیون ترانزیستور باشد. مدلهای سادهتر ممکن است از چند هزار ترانزیستور تشکیل شده باشند که بر روی یک تراشه چند میلیمتر مربعی حک شدهاند. دیدن تراشهها در انواع دستگاهها با هستههای متعدد، که هر کدام یک پردازنده هستند، رایج شده است.
منطق ریزپردازنده
برای درک نحوه عملکرد یک ریزپردازنده، مفید است که داخل آن را بررسی کرده و در مورد منطقی که برای ساخت آن استفاده میشود، اطلاعات کسب کنید. در این فرآیند، میتوانید در مورد زبان اسمبلی (Assembly Language) – زبان اصلی یک ریزپردازنده – و بسیاری از کارهایی که مهندسان میتوانند برای افزایش سرعت پردازنده انجام دهند نیز بیاموزید.
یک ریزپردازنده مجموعهای از دستورالعملهای ماشینی را اجرا میکند که به پردازنده میگویند چه کاری انجام دهد. بر اساس دستورالعملها، یک ریزپردازنده سه کار اساسی انجام میدهد:
- یک ریزپردازنده با استفاده از واحد ALU (واحد حساب و منطق) خود، میتواند عملیات ریاضی مانند جمع، تفریق، ضرب و تقسیم را انجام دهد. ریزپردازندههای مدرن حاوی پردازندههای ممیز شناور (Floating-Point) کاملی هستند که میتوانند عملیات بسیار پیچیدهای را روی اعداد ممیز شناور بزرگ انجام دهند.
- یک ریزپردازنده میتواند دادهها را از یک مکان حافظه به مکان دیگر منتقل کند.
- یک ریزپردازنده میتواند تصمیمگیری کرده و بر اساس آن تصمیمات، به مجموعه جدیدی از دستورالعملها پرش کند.
ممکن است کارهای بسیار پیچیدهای وجود داشته باشد که یک ریزپردازنده انجام میدهد، اما اینها سه فعالیت اساسی آن هستند. نمودار زیر یک ریزپردازنده بسیار ساده را نشان میدهد که قادر به انجام آن سه کار است.
این یک ریزپردازنده تا حد ممکن ساده است. این ریزپردازنده دارای این موارد است:
- یک گذرگاه آدرس (Address bus) (که ممکن است 8، 16، 32 یا 64 بیت عرض داشته باشد) که یک آدرس را به حافظه ارسال میکند.
- یک گذرگاه داده (Data bus) (که ممکن است 8، 16، 32 یا 64 بیت عرض داشته باشد) که میتواند دادهها را به حافظه ارسال کند یا دادهها را از حافظه دریافت کند.
- خطوط RD (خواندن) و WR (نوشتن) برای اینکه به حافظه بگوییم آیا باید مکان آدرسدهیشده را تنظیم یا دریافت کند.
- یک خط ساعت (Clock line) که به یک پالس ساعت اجازه میدهد تا پردازنده را دنبال کند.
- یک خط ریست (Reset line) که شمارنده برنامه را به صفر (یا هر مقدار دیگر) بازنشانی میکند و اجرای برنامه را دوباره شروع میکند.
بیایید فرض کنیم که در این مثال، هر دو گذرگاه آدرس و داده 8 بیت عرض دارند.
در اینجا اجزای این ریزپردازنده ساده آورده شده است:
- رجیسترهای A، B و C صرفاً قفلهایی هستند که از فلیپ فلاپ (Flip-flops) ساخته شدهاند. (برای جزئیات، به بخش “قفلهای لبه-تحریک (Edge-Triggered Latches)” در “نحوه عملکرد منطق بولی” مراجعه کنید.)
- قفل آدرس نیز مانند رجیسترهای A، B و C است.
- شمارنده برنامه یک قفل است با این قابلیت اضافی که وقتی به آن گفته شود، 1 واحد افزایش مییابد و وقتی به آن گفته شود، به صفر بازنشانی میشود.
- ALU میتواند به سادگی یک جمعکننده 8 بیتی باشد (برای جزئیات، به بخش جمعکنندهها در “نحوه عملکرد منطق بولی” مراجعه کنید)، یا ممکن است بتواند مقادیر 8 بیتی را جمع، تفریق، ضرب و تقسیم کند. بیایید در اینجا مورد دوم را فرض کنیم.
- رجیستر تست (Test register) یک قفل خاص است که میتواند مقادیری را از مقایسههای انجام شده در ALU نگه دارد. یک ALU معمولاً میتواند دو عدد را با هم مقایسه کند تا مشخص کند که آیا برابر هستند، آیا یکی بزرگتر از دیگری است و غیره. رجیستر تست همچنین میتواند به طور معمول بیت نقلی را از آخرین مرحله جمعکننده نگه دارد. این مقادیر را در فلیپفلاپها ذخیره میکند و سپس رمزگشای دستورالعمل میتواند از این مقادیر برای تصمیمگیری استفاده کند.
- شش جعبه با علامت “۳-حالته ” در نمودار وجود دارد. اینها بافرهای سهحالته (Tri-state buffers) هستند. یک بافر سهحالته میتواند 1 یا 0 را عبور دهد یا اساساً خروجی خود را قطع کند (تصور کنید یک کلید که به طور کامل خط خروجی را از سیمی که خروجی به سمت آن میرود جدا میکند). یک بافر سه حالته به چندین خروجی اجازه میدهد تا به یک سیم متصل شوند، اما فقط یکی از آنها میتواند واقعاً 1 یا 0 را روی خط هدایت کند.
- رجیستر دستورالعمل (Instruction register) و رمزگشای دستورالعمل (Instruction decoder) مسئول کنترل تمام اجزای دیگر هستند.
اگرچه در این نمودار نشان داده نشده است، خطوط کنترلی از رمزگشای دستورالعمل وجود خواهد داشت که:
- به رجیستر A بگو مقداری را که در حال حاضر روی گذرگاه داده است، قفل کند.
- به رجیستر B بگو مقداری را که در حال حاضر روی گذرگاه داده است، قفل کند.
- به رجیستر C بگو مقداری را که در حال حاضر توسط ALU خروجی می شود، قفل کند.
- به رجیستر شمارنده برنامه بگو مقداری را که در حال حاضر روی گذرگاه داده است، قفل کند.
- به رجیستر آدرس بگو مقداری را که در حال حاضر روی گذرگاه داده است، قفل کند.
- به رجیستر دستورالعمل بگو مقداری را که در حال حاضر روی گذرگاه داده است، قفل کند.
- به شمارنده برنامه بگو افزایش یابد.
- به شمارنده برنامه بگو به صفر بازنشانی شود.
- هر یک از شش بافر سه حالته را فعال کند (شش خط جداگانه).
- به ALU بگو چه عملیاتی را انجام دهد.
- به رجیستر تست بگو بیتهای تست ALU را قفل کند.
- خط RD را فعال کند.
- خط WR را فعال کند.
بیتها از رجیستر تست و خط ساعت و همچنین بیتها از رجیستر دستورالعمل وارد رمزگشای دستورالعمل میشوند.
حافظه ریزپردازنده
بخش قبلی در مورد گذرگاههای آدرس و داده و همچنین خطوط RD و WR صحبت کرد. این گذرگاهها و خطوط یا به RAM یا ROM متصل میشوند – معمولاً هر دو. در ریزپردازنده نمونه ما، یک گذرگاه آدرس به عرض ۸ بیت و یک گذرگاه داده به عرض ۸ بیت داریم. این بدان معناست که ریزپردازنده میتواند ۲۵۶ بایت حافظه را آدرسدهی کند و میتواند ۸ بیت از حافظه را به طور همزمان بخواند یا بنویسد. بیایید فرض کنیم که این ریزپردازنده ساده دارای ۱۲۸ بایت ROM است که از آدرس ۰ شروع میشود و ۱۲۸ بایت RAM که از آدرس ۱۲۸ شروع میشود.
ROM مخفف حافظه فقط خواندنی (Read-only memory) است. یک تراشه ROM با مجموعهای دائمی از بایتهای از پیش تعیین شده برنامهریزی شده است. گذرگاه آدرس به تراشه ROM میگوید کدام بایت را بگیرد و روی گذرگاه داده قرار دهد. هنگامی که خط RD تغییر وضعیت میدهد، تراشه ROM بایت انتخاب شده را روی گذرگاه داده ارائه میکند.
RAM مخفف حافظه با دسترسی تصادفی (Random-access memory) است. RAM حاوی بایتهای اطلاعات است و ریزپردازنده میتواند بسته به اینکه خط RD یا WR علامت داده شود، آن بایتها را بخواند یا بنویسد. یکی از مشکلات تراشههای RAM امروزی این است که با قطع برق همه چیز را فراموش میکنند. به همین دلیل است که کامپیوتر به ROM نیاز دارد.
اتفاقاً تقریباً همه کامپیوترها دارای مقداری ROM هستند (امکان ایجاد یک کامپیوتر ساده وجود دارد که حاوی RAM نباشد – بسیاری از میکروکنترلرها این کار را با قرار دادن چند بایت RAM روی خود تراشه پردازنده انجام میدهند – اما به طور کلی ایجاد یک کامپیوتر که حاوی ROM نباشد غیرممکن است). در یک کامپیوتر شخصی، ROM به نام BIOS (سیستم ورودی/خروجی پایه) نامیده میشود. هنگامی که ریزپردازنده شروع به کار میکند، شروع به اجرای دستورالعملهایی میکند که در BIOS پیدا میکند. دستورالعملهای BIOS کارهایی مانند آزمایش سختافزار موجود در دستگاه را انجام میدهند و سپس به هارد دیسک (Hard disk) میروند تا بخش بوت (Boot sector) را بیاورند یا واکشی (fetch) کنند (برای جزئیات بیشتر به نحوه کار هارد دیسکها مراجعه کنید). این بخش بوت یک برنامه کوچک دیگر است و BIOS آن را پس از خواندن از روی دیسک در RAM ذخیره میکند. سپس ریزپردازنده شروع به اجرای دستورالعملهای بخش بوت از RAM میکند. برنامه بخش بوت به ریزپردازنده میگوید که چیز دیگری را از هارد دیسک به RAM واکشی کند، که ریزپردازنده سپس آن را اجرا میکند و غیره. اینگونه است که ریزپردازنده کل سیستم عامل را بارگیری و اجرا میکند.
دستورالعملهای ریزپردازنده حتی ریزپردازنده فوقالعاده سادهای که در مثال قبلی نشان داده شد، دارای مجموعه نسبتاً بزرگی از دستورالعملها است که میتواند انجام دهد. مجموعه دستورالعملها به عنوان الگوهای بیتی پیادهسازی شدهاند که هر کدام هنگام بارگذاری در ثبات دستورالعمل، معنای متفاوتی دارند. انسانها در به خاطر سپردن الگوهای بیتی چندان خوب نیستند، بنابراین مجموعهای از کلمات کوتاه برای نشان دادن الگوهای بیتی مختلف تعریف شدهاند. این مجموعه کلمات، زبان همگذاری (اَسِمبِلی) (Assembly language) پردازنده نامیده میشود. یک همگذار (اَسِمبلِر)(Assembler) میتواند کلمات را به راحتی به الگوهای بیتی خود ترجمه کند و سپس خروجی اسمبلر در حافظه قرار میگیرد تا ریزپردازنده آن را اجرا کند.
در اینجا مجموعه دستورالعملهای زبان اسمبلی وجود دارد که طراح ممکن است برای ریزپردازنده ساده در مثال ما ایجاد کند:
- LOADA mem: بارگیری رجیستر A از آدرس حافظه
- LOADB mem: بارگیری رجیستر B از آدرس حافظه
- CONB con: بارگیری یک مقدار ثابت در رجیستر B
- SAVEB mem: ذخیره رجیستر B در آدرس حافظه
- SAVEC mem: ذخیره رجیستر C در آدرس حافظه
- ADD: جمع A و B و ذخیره نتیجه در C
- SUB: تفریق A و B و ذخیره نتیجه در C
- MUL: ضرب A و B و ذخیره نتیجه در C
- DIV: تقسیم A و B و ذخیره نتیجه در C
- COM: مقایسه A و B و ذخیره نتیجه در تست
- JUMP addr: پرش به یک آدرس
- JEQ addr: درصورت تساوی به آدرس پرش کنید
- JNEQ addr: درصورت عدم تساوی به آدرس پرش کنید
- JG addr: درصورت بزرگتر بودن به آدرس پرش کنید
- JGE addr: درصورت بزرگتر یا مساوی بودن به آدرس پرش کنید
- JL addr: درصورت کوچکتر بودن به آدرس پرش کنید
- JLE addr: درصورت کوچکتر یا مساوی بودن به آدرس پرش کنید
- STOP: توقف اجرا
اگر کتاب «نحوه کارکرد برنامهنویسی C» را خوانده باشید، میدانید که این قطعه کد ساده C، فاکتوریل ۵ را محاسبه میکند (که در آن فاکتوریل ۵: !۵ = 1 * 2 * 3 * 4 * ۵ = 120):
a=1;f=1;while (a <= 5){ f = f * a; a = a + 1;}
در پایان اجرای برنامه، متغیر f شامل فاکتوریل ۵ خواهد بود.
زبان اسمبلی
یک کامپایلر C این کد C را به زبان اسمبلی ترجمه میکند. با فرض اینکه RAM از آدرس 128 در این پردازنده شروع میشود، و ROM (که شامل برنامه زبان اسمبلی است) از آدرس 0 شروع میشود، سپس برای ریزپردازنده ساده ما، زبان اسمبلی ممکن است به این شکل باشد:
// Assume a is at address 128// Assume F is at address 1290 CONB 1 // a=1;1 SAVEB 1282 CONB 1 // f=1;3 SAVEB 1294 LOADA 128 // if a > 5 the jump to 175 CONB 56 COM7 JG 178 LOADA 129 // f=f*a;9 LOADB 12810 MUL11 SAVEC 12912 LOADA 128 // a=a+1;13 CONB 114 ADD15 SAVEC 12816 JUMP 4 // loop back to if17 STOP
ROM
اکنون سوال این است که “این دستورالعملها در ROM چگونه به نظر میرسند؟” هر یک از این دستورالعملهای زبان اسمبلی باید با یک عدد دودویی (باینری)(Binary) نشان داده شوند. برای سادگی، بیایید فرض کنیم به هر دستورالعمل زبان اسمبلی یک عدد منحصر به فرد اختصاص داده شده است، مانند این:
- LOADA – 1
- LOADB – 2
- CONB – 3
- SAVEB – 4
- SAVEC mem – 5
- ADD – 6
- SUB – 7
- MUL – 8
- DIV – 9
- COM – 10
- JUMP addr – 11
- JEQ addr – 12
- JNEQ addr – 13
- JG addr – 14
- JGE addr – 15
- JL addr – 16
- JLE addr – 17
- STOP – 18
این اعداد به عنوان کدهای عملیاتی (Opcodes) شناخته میشوند. در ROM، برنامه کوچک ما به این شکل خواهد بود:
// Assume a is at address 128// Assume F is at address 129Addr opcode/value0 3 // CONB 11 12 4 // SAVEB 1283 1284 3 // CONB 15 16 4 // SAVEB 1297 1298 1 // LOADA 1289 12810 3 // CONB 511 512 10 // COM13 14 // JG 1714 3115 1 // LOADA 12916 12917 2 // LOADB 12818 12819 8 // MUL20 5 // SAVEC 12921 12922 1 // LOADA 12823 12824 3 // CONB 125 126 6 // ADD27 5 // SAVEC 12828 12829 11 // JUMP 430 831 18 // STOP
همانطور که مشاهده میکنید، هفت خط کد C به ۱۸ خط زبان اسمبلی و سپس به ۳۲ بایت در ROM تبدیل شد.
رمزگشایی (Decoding)
رمزگشای دستورالعمل باید هر یک از کدهای عملیاتی را به مجموعهای از سیگنالها تبدیل کند که اجزای مختلف داخل ریزپردازنده را هدایت میکنند. بیایید دستورالعمل ADD را به عنوان مثال در نظر بگیریم و بررسی کنیم که چه کاری باید انجام دهد:
۱. در طول اولین چرخه ساعت، باید دستورالعمل را بارگذاری کنیم. بنابراین، رمزگشای دستورالعمل باید:
۲. بافر سهحالته برای شمارنده برنامه را فعال کند.
۳. خط RD را فعال کند.
۴. بافر سهحالته داده ورودی را فعال کند.
۵. دستورالعمل را در ثبات دستورالعمل قفل کند.
۶. در طول دومین چرخه ساعت، دستورالعمل ADD رمزگشایی میشود. این دستورالعمل کمی نیاز دارد به:
۷. عملکرد ALU را روی جمع تنظیم کند.
۸. خروجی ALU را در رجیستر C قفل کند.
۹. در طول سومین چرخه ساعت، شمارنده برنامه افزایش مییابد (در تئوری این کار میتواند با دومین چرخه ساعت همپوشانی داشته باشد).
هر دستورالعمل را میتوان به عنوان مجموعهای از عملیاتهای دنبالهدار مانند اینها تجزیه کرد که اجزای ریزپردازنده را به ترتیب مناسب دستکاری میکنند. برخی از دستورالعملها، مانند دستورالعمل ADD، ممکن است دو یا سه چرخه ساعت طول بکشند. بقیه ممکن است پنج یا شش چرخه ساعت طول بکشند.
عملکرد و روندهای ریزپردازنده
تعداد ترانزیستورهای (Transistors) موجود، تأثیر زیادی بر عملکرد پردازنده دارد. همانطور که قبلاً دیدیم، یک دستورالعمل معمولی در پردازندهای مانند 8088 برای اجرا ۱۵ چرخه ساعت (clock cycles) طول میکشید. به دلیل طراحی ضربکننده، تقریباً ۸۰ چرخه فقط برای انجام یک ضرب ۱۶ بیتی روی 8088 طول میکشید. با ترانزیستورهای بیشتر، ضربکنندههای بسیار قدرتمندتری که قادر به سرعتهای تکچرخهای (single-cycle) هستند، ممکن میشوند.
ترانزیستورهای بیشتر همچنین امکان فناوری به نام پایپلاینینگ (Pipelining) را فراهم میکنند. در یک معماری پایپلاین، اجرای دستورالعملها با هم همپوشانی دارند. بنابراین، حتی اگر اجرای هر دستورالعمل پنج چرخه ساعت طول بکشد، میتواند پنج دستورالعمل در مراحل مختلف اجرا به طور همزمان وجود داشته باشد. به این ترتیب به نظر میرسد که یک دستورالعمل در هر چرخه ساعت تکمیل میشود.
بسیاری از پردازندههای مدرن دارای رمزگشاهای دستورالعمل متعددی هستند که هر کدام پایپلاین خود را دارند. این امر امکان جریانهای دستورالعمل متعددی را فراهم میکند، به این معنی که بیش از یک دستورالعمل میتواند در هر چرخه ساعت تکمیل شود. پیادهسازی این تکنیک میتواند بسیار پیچیده باشد، بنابراین به ترانزیستورهای زیادی نیاز دارد.
روندها (Trends)
این روزها به نظر میرسد که پردازندهها همهجا هستند و این روند به نظر نمیرسد که کند شود. محققان راههایی برای انعطافپذیرکردن ریزپردازندهها پیدا کردهاند و مواردی مانند لباسهای هوشمند را امکانپذیر میکنند. محققان در حال کار بر روی راههایی برای استفاده از نور، به جای الکتریسیته، برای به کار انداختن پردازندهها هستند. احتمالاً بزرگترین تغییر در چشمانداز آینده، توسعه رایانههای کوانتومی است که محدود به استفاده از ۱ و ۰ برای حل مسائل نیستند. در حالی که این رایانهها میتوانند مسائل دشوارتر را کارآمدتر پردازش کنند، ولی بعید است که به زودی یک رایانه کوانتومی روی میز کار خود ببینید.
ریزپردازنده ۶۴-بیتی
پردازندههای 64 بیتی از سال 1992 با ما بودهاند و در قرن بیست و یکم به جریان اصلی تبدیل شدهاند. این پردازندهها دارای ALU های 64 بیتی، رجیسترهای 64 بیتی، گذرگاههای 64 بیتی و غیره هستند.
یکی از دلایلی که دنیا به پردازندههای 64 بیتی نیاز دارد، فضای آدرسدهی بزرگتر آنها است. تراشههای 32 بیتی اغلب به حداکثر 2 یا 4 گیگابایت دسترسی به RAM محدود میشوند. وقتی بیشتر کامپیوترهای خانگی فقط از 256 مگابایت تا 512 مگابایت RAM استفاده میکردند، این مقدار زیاد به نظر میرسید. اما کامپیوترهای خانگی قرن بیست و یکم میتوانند دادهها (دادههای بسیار پیچیده که دارای اعداد حقیقی زیادی هستند) را سریعتر پردازش کنند. افرادی که ویرایش ویدیو و ویرایش عکس روی تصاویر بسیار بزرگ را انجام میدهند، از این نوع قدرت محاسباتی بهره میبرند. گیمرهای حرفهای نیز از بازیهای با وضوح بالا و جزئیات بیشتر سود میبرند.
یک تراشه 64 بیتی گزینههای بیشتری را باز میکند زیرا فضای آدرس RAM 64 بیتی اساساً برای آینده قابل پیشبینی بینهایت است – 2 به توان 64 بایت RAM چیزی در حدود یک میلیارد گیگابایت RAM است. با یک گذرگاه آدرس 64 بیتی و گذرگاههای داده پهن و پرسرعت روی مادربرد (Motherboard)، ماشینهای 64 بیتی نیز سرعت I/O (نسبت ورودی به خروجی) سریعتری را برای مواردی مانند درایوهای هارد دیسک و کارتهای ویدیو ارائه میدهند. این ویژگیها میتوانند عملکرد سیستم را تا حد زیادی افزایش دهند.
سوالات متداول
ریزپردازنده برای چه کاری استفاده میشود؟
ریزپردازنده بخشی از یک کامپیوتر است که عملیات حسابی و منطقی را انجام میدهد، که عموماً شامل جمع، تفریق، انتقال اعداد از یک ناحیه به ناحیه دیگر و مقایسه دو عدد است.
ریزپردازنده با چه نام دیگری نیز شناخته میشود؟
ریزپردازنده با نام واحد پردازش مرکزی (Central Processing Unit) نیز شناخته میشود.




