سیستمی که از آن برای خواندن همین صفحه استفاده میکنید، یک ریزپردازنده دارد. این ریزپردازنده قلب اصلی هر کامپیوتری محسوب میشود چه کامپیوتر دسکتاپ معمولی و چه سرور یا لپ تاپ. ریزپردازندهها انواع مختلفی دارند اما همگی تقریباً یک کار را انجام میدهند آن هم به یک شکل.
ریزپردازنده – که به آن سیپییو، مخفف واحد پردازش مرکزی هم گفته میشود – یک موتور پردازشی کامل است که روی یک تراشه نصب میشود. اولین ریزپردازنده جهان اینتل 4004 بود که در سال 1971 رونمایی شد. این پردازنده خیلی قوی نبود و تنها قابلیت جمع و تفریق را داشت و در آن زمان این کار را روی 4 بیت انجام میداد. اما از این نظر که همه این کارها روی یک تراشه انجام میشد، خارق العاده بود. قبل از 4004، مهندسان کامپیوترها را یا با استفاده از یک مجموعه تراشه یا قطعات مجزا (مثل ترانزیستورها) طراحی میکردند.
اگر این سوال برای شما ایجاد شده که کار ریزپردازنده در کامپیوتر چیست یا تفاوت انواع ریزپردازندهها برای شما سوال ایجاد کرده، این مطلب را دنبال کنید. در این مقاله یاد میگیرید که یک تکنیک منطقی دیجیتال نسبتاً ساده چگونه به یک کامپیوتر امکان میدهد که کارهای خودش مثل اجرای یک بازی یا بررسی املای یک داکیومنت را انجام دهد.
پیشرفت ریزپردازندهها: اینتل
اولین پردازندهای که وارد کامپیوترهای خانگی شد، اینتل 8080 بود، یک کامپیوتر 8 بیتی کامل روی یک تراشه که سال 1974 معرفی شد. اولین ریزپردازندهای که تغییر زیادی در بازار ایجاد کرد، اینتل 8088 بود که سال 1979 معرفی شده و در کامپیوتر آیبیام استفاده شد (که اولین مدل آن سال 1982 معرفی شد). اگر با بازار کامپیوتر و تاریخچه آن آشنا هستید، اطلاع دارید که این بازار از 8088 به پردازنده 8026 و سپس به 80386، 80486، سری پنتیوم، سری کور و سری زئون حرکت کرد. همه این ریزپردازندهها توسط اینتل طراحی شده و همگی شامل تغییراتی در طراحی ساده 8088 بودند.
از سال 2004، اینتل میکروپردازندههای دارای چندین هسته و میلیونها ترانزیستور بیشتر را معرفی کرد. اما حتی این ریزپردازندهها هم بر اساس قوانین تراشههای قدیمی تر طراحی شده بودند.
پردازنده Core i9 هم میتواند تا 8 هسته داشته باشد که هر کدام میتوانند همه کدهایی که 8088 توانایی اجرای آن را داشت اجرا کنند اما حدود 6700 بار سریع تر. هر هسته میتواند چندین ریسمان از دستورالعملها را مدیریت کند و به این ترتیب کامپیوتر کارها را با بهره وری بیشتری مدیریت میکند.
مجموعه محصولات مایکروسافت از دهه 70 تا به امروز به میزان زیادی گسترش یافته است. در حال حاضر این شرکت پردازندههای پنتیوم و کور را برای کامپیوتر تولید میکند اما کامپیوترهای پیشرفته و سرورها میتوانند از تراشه زئون استفاده کنند. بعلاوه، اینتل لاین پردازندههای سلرون و اتم را هم دارد. سلرون برای کاربران کامپیوترهای سطح مبتدی طراحی شده و پردازندههای اتم مناسب دستگاههای موبایل و تجهیزات عضو اینترنت اشیاء هستند.
گرچه اینتل بخش عمدهای از بازار را در اختیار دارد اما این شرکت هم بدون رقیب نیست. AMD در حوزه تولید پردازندههای کامپیوتری با اینتل در رقابت است اما این شرکت در زمینه تولید تراشههای پردازشی کارت گرافیک هم فعالیت دارد و محصولاتش بین گیمرهای کامپیوتری طرفداران زیادی دارد. Nvidia هم که در زمینه تولید تراشههای گرافیکی مشهور است، پردازنده تولید میکند. در سال 2020 شرکت اپل هم از سری M تراشههای خودش رونمایی کرد که قرار است جایگزین محصولات اینتل در کامپیوترهای این شرکت شوند. سامسونگ هم در حال کار بر روی طراحی پردازندههای اختصاصی خودش است. شرکتهای دیگر هم در حال ساخت تراشه برای محصولات الکترونیک خودشان هستند مثل اتومبیلها و تجهیزات خانه هوشمند. این بازار روزبروز رقابتی تر میشود.
تراشه چیست؟
به تراشه مدار مجتمع هم گفته میشود. معمولاً تراشه یک قطعه سیلیکون کوچک و ظریف است که ترانزیستورهای تولیدکننده ریزپردازنده در آن حک شده اند. ممکن است یک تراشه از پهلو به اندازه یک اینچ باشد و میتواند میلیونها ترانزیستور را در خود جای دهد. مدلهای ساده تر ممکن است شامل چند صد ترانزیستور باشند که روی یک تراشه چند میلی متری حک شده اند. امروزه در همه انواع دستگاهها تراشههایی با چندین هسته مشاهده میشود که هر کدام یک پردازنده هستند.
منطق ریزپردازنده
برای درک طرز کار یک ریزپردازنده بهتر است نگاهی به درون آن داشته باشیم و منطق مورد استفاده برای تولید آن را بررسی کنیم. در این فرایند با زبان اسمبلی – زبان بومی ریزپردازندهها – هم آشنایی میشوید همچنین کارهای دیگری که مهندسان میتوانند برای ارتقای سرعت بوست پردازنده انجام دهند.
ریزپردازنده مجموعهای از دستورالعملهای ماشین را اجرا میکند که به پردازنده اعلام میکنند چه کارهایی انجام دهد. بر اساس این دستورالعملها، ریزپردازنده سه کار اساسی را انجام میدهد:
- استفاده از واحد محاسبه و منطق (ALU)؛ ریزپردازنده قادر است عملیات محاسباتی مثل جمع، تفریق، ضرب و تقسیم را انجام دهد. ریزپردازندههای امروزی حاوی مجموعهای کامل از پردازندههای ممیز شناور هستند که توانایی اجرای عملیات بسیار پیچیده بر روی اعداد بزرگ دارای ممیز شناور را انجام دهند.
- ریزپردازنده توانایی انتقال دادهها از محلی به محل دیگر در حافظه را دارد.
- ریزپردازنده میتواند تصمیم گیری کرده و بر اساس این تصمیم گیریها به یک مجموعه دستورالعمل جدید پرش کند.
کارهایی که ریزپردازنده توانایی انجام آنها را دارد بسیار پیچیده هستند اما موارد اشاره شده شامل سه فعالیت ساده و ابتدایی آن بودند. دیاگرام زیر یک تصویر بسیار ساده از میکروپردازندهای را نشان میدهد که توانایی انجام این سه کار را دارد:
یک ریزپردازنده هر چقدر هم که ساده باشد، قطعات زیر را دارد که عبارتند از:
- یک گذرگاه آدرس (که ممکن است 8، 16 ،32 یا 64 بیت عرض داشته باشه) که یک آدرس به حافظه میفرستد.
- یک گذرگاه داده (که ممکن است 8، 16، 32 یا 64 بیت عرض داشته باشد) که میتواند دادهها را به حافظه ارسال کرده یا از آن دریافت کند.
- یک خط RD (خواندن) و WR (نوشتن) که به حافظه اعلام میکند آیا باید در محلی که آدرس آن مشخص شده اطلاعات بنویسد یا از آن دریافت کند.
- یک خط ساعت که امکان هماهنگی کارهای پردازنده با ضربان ساعت را فراهم میکند.
- یک خط ریست که شمارنده پردازنده را روی صفر (یا هر عدد تعیین شده) قرار داده و اجرا را ری استارت میکند.
فرض کنید که خط آدرس و داده هر دو در این مثال 8 بیتی هستند.
اجزای این ریزپردازنده ساده عبارتند از:
- ثباتهای A، B و C یکسری لچ ساده هستند که از فلیپ فلاپ تشکیل شده اند.
- لچ آدرس مثل ثباتهای A، B و C است.
- شمارنده برنامه یک لچ است با این توانایی اضافه که هر زمان به آن اعلام شود میتواند یک عدد به شمارنده اضافه کند و یا ریست شده و به حالت صفر برگردد.
- ALU میتواند به سادگی یک جمع کننده 8 بیتی باشد یا اینکه توانایی جمع، تفریق، ضرب و تقسیم مقادیر 8 بیتی را داشته باشد که ما در اینجا حالت دوم را در نظر میگیریم.
- ثبات بررسی یک لچ مخصوص است که میتواند مقادیر مربوط به مقایسههای انجام شده در ALU را در خود نگه دارد. ALU توانایی مقایسه دو عدد را دارد و میتواند برابری یا بزرگتر و کوچکتر بودن اعداد را بررسی کند. ثبات بررسی معمولاً میتواند یک بیت حامل را از آخرین مرحله جمع کننده در خود نگه دارد. این ثبات این مقادیر را در فلیپ فلاپها ذخیره کرده و سپس دیکدر دستورالعمل میتواند از این مقادیر برای تصمیم گیری استفاده کند.
- در این نمودار 6 کادر با عنوان 3-State مشاهده میشود که بافرهای سه حالته هستند. بافر سه حالته توانایی انتقال عدد 1 یا صفر و یا قطع خروجی خودش را دارد (سوئیچی را در نظر بگیرید که میتواند خط خروجی را به طور کامل از خطی که خروجی به آن متصل میشود، قطع کند). بافر سه حالته امکان اتصال خروجیهای مختلف به یک سیم را فراهم میکند اما تنها یکی از آنها میتواند عدد 1 یا صفر را به خط منتقل کند.
- ثبات دستورالعمل و دیکدر دستورالعمل هم مسئول کنترل کردن سایر قطعات هستند.
گرچه خطوط کنترل در این دیاگرام نمایش داده نشده اند اما خطوط کنترلی برای دیکدر دستورالعمل وجود دارند که میتوانند کارهای زیر را انجام دهند:
- اعلان قفل کردن مقدار فعلی گذرگاه داده به ثبات A
- اعلام قفل کردن مقدار فعلی گذرگاه داده به ثبات B
- اعلام قفل کردن خروجی فعلی ALU به ثبات C
- اعلام قفل کردن مقدار فعلی گذرگاه داده به ثبات شمارنده برنامه
- اعلام قفل کردن مقدار فعلی گذرگاه داده به ثبات آدرس
- اعلام قفل کردن مقدار فعلی گذرگاه داده به ثبات دستورالعمل
- اعلام دستور افزایش شمارنده
- اعلام دستور ریست شمارنده
- فعال سازی یکی از 6 بافر سه حالته (6 خط مجزا)
- اعلام عملیات بعدی به ALU
- اعلام قفل کردن بیتهای بررسی ALU به ثبات
- فعال کردن خط خواندن
- فعال کردن خط نوشتن
بیتهای به دست آمده از ثبات بررسی و خط ساعت و همچنین بیتهای ثبات دستورالعمل به دیکدر دستورالعمل ارسال میشوند.
حافظه ریزپردازنده
در بخش قبلی درباره گذرگاههای آدرس و داده و همچنین خطوط نوشتن و خواندن صحبت کردیم. این خطوط و گذرگاهها به رم یا رام و یا هر دوی آنها متصل میشوند. در ریزپردازنده نمونه ما یک گذرگاه آدرس 8 بیتی و یک گذرگاه داده 8 بیتی داریم. این یعنی ریزپردازنده میتواند به 256 بایت از حافظه آدرس دهی کرده و 8 بیت از حافظه را در هر لحظه بخواند. فرض کنید که این ریزپردازنده ساده 128 بایت رام دارد که از آدرس صفر شروع میشوند و 128 بایت رم که از آدرس 128 شروع میشوند.
رام مخفف read-only memory به معنای حافظه فقط خواندنی است. تراشه رام با یک مجموعه بایتهای از پیش تعیین شده دائمی برنامه نویسی میشود. گذرگاه آدرس به تراشه رام اعلام میکند که کدام بایت را دریافت کرده و در گذرگاه داده قرارد دهد. وقتی وضعیت خط خواندن تغییر کند، تراشه رام بایت انتخاب شده را وارد گذرگاه داده میکند.
رم مخفف random-access memory به معنای حافظهای با دسترسی تصادفی است. رم حاوی بایتهای اطلاعاتی است و ریزپردازنده بسته به اینکه سیگنال از سمت خط خواندن ارسال شود یا نوشتن، توانایی خواندن یا نوشتن این بایتها را دارد. یکی از مسائل مربوط به تراشههای رم امروزی این است که پس از قطع شدن برق، همه اطلاعات آنها پاک میشود و به همین دلیل کامپیوترها نیاز به رام دارند.
به هر حال، تقریباً همه کامپیوترها مقداری رام دارند (میتوان کامپیوتری ساده طراحی کرد که فاقد رم باشد – خیلی از میکروکنترلرها با قرار دادن بایتهای رم در خود تراشه پردازنده این حالت را پیاده سازی کرده اند اما به طور کلی نمیتوان کامپیوتری بدون رام داشت). در یک کامپیوتر، به رام بایاس (به معنی سیستم ورودی/خروجی پایه) هم گفته میشود. وقتی ریزپردازنده شروع به کار میکند، پردازش دستورالعملهای موجود در بایاس آغاز میشود. دستورالعملهای بایاس کارهایی مثل تست سختافزار سیستم را انجام داد و بعد بوت سکتور هارددیسک را جستجو میکند. بوت سکتور هم یک نرمافزار کوچک دیگر است و بایاس پس از خواندن آن از دیسک، آن را بر روی رم ذخیره میکند. سپس ریزپردازنده شروع به اجرای دستورالعملهای بوت سکتور از رم میکند. نرمافزار بوت سکتور به ریزپردازنده اعلام میکند که اطلاعات دیگری را از هارددیسک به رم منتقل کند که ریزپردازنده این کار را انجام داده و به کار ادامه میدهد. ریزپردازنده به همین روش کل سیستم عامل را بارگذاری و اجرا میکند.
دستورالعملهای ریزپردازنده
حتی ریزپردازندههای بسیار سادهای که در مثال قبلی مشاهده کردید قابلیت انجام مجموعه دستورالعملهای مختلفی را دارند. این مجموعه دستورالعملهای در قالب الگوهای بیتی پیاده سازی میشوند که هر کدام وقتی وارد ثبات دستورالعمل میشوند معنای متفاوتی دارند. انسانها در زمینه به خاطر سپردن الگوهای بیتی ضعیف هستند در نتیجه برای بیان هر الگوی بیتی یک کلمه متفاوت استفاده میشود. به مجموعه این کلمات، زبان اسمبلی پردازنده میگوییم. اسمبلر توانایی ترجمه این کلمات به الگوهای بیتی را به صورت بسیار راحت دارد و بعد خروجی آن برای اجرا وارد حافظه ریزپردازنده میشود.
در ادامه مجموعه دستورالعملهای زبان اسمبلی را مشاهده میکنید که میتوان برای ریزپردازنده ساده مثال ما ساخت:
- 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 نوشته شده، فاکتوریل عدد 5 را محاسبه میکند (فاکتور عدد 5 = 5*4*3*2*1 = 120):
;a=1
;f=1
while (a <= 5){ f = f * a; a = a + 1;}
در انتهای اجرای برنامه، متغیر f حاوی فاکتوریل عدد 5 خواهد بود.
زبان اسمبلی
کامپایلر زبان C، این کد را به زبان اسمبلی تبدیل میکند. با فرض اینکه رم در این پردازنده از آدرس 128 شروع شود و رام (که حاوی زبان اسمبلی است) از آدرس صفر شروع میشود، در این صورت برای ریزپردازنده ساده ما، میتوان چنین کدی داشت:
// 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
رام
حالا به این پرسش میرسیم که این دستورالعملها در رام به چه صورت هستند؟ هر یک از این دستورالعملهای زبان باید با یک عدد دودویی نمایش داده شوند. برای سادگی توضیحات، فرض میکنیم که هر دستورالعمل زبان اسمبلی یک شماره منحصربفرد دارد، به این شکل:
- 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
به این اعداد opcode گفته میشود. این برنامه کوچک ما در رام، به این صورت خواهد بود:
// 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
مشاهده میکنید که 7 خط کد C در زبان اسمبلی تبدیل به 18 خط کد شده و بعد در رام به 32 خط تبدیل شدند.
دیکدینگ
دیکدر دستورالعمل باید هر یک از opcodeها را به یک مجموعه سیگنال تبدیل کند که قطعات مختلف داخل ریزپردازنده را فعال میکنند. حالا برای مثال دستورالعمل ADD را در نظر بگیرید و اینکه برای انجام آن چه کارهایی باید انجام شود:
- در سیکل اول کلاک، باید دستورالعمل را بارگذاری کنیم. در نتیجه دیکدر دستورالعمل باید کارهای زیر را انجام دهد:
- فعال سازی بافر سه حالته برای شمارنده برنامه؛
- فعال سازی خط RD؛
- فعال سازی مسیر ورود دادهها برای بافر سه حالته؛
- لچ کردن دستورالعمل در ثبات دستورالعمل؛
- طی دومین چرخه کلاک، دستورالعمل ADD کدگشایی میشود و باید این کارها انجام شود:
- تنظیم عملیات ALU روی حالت جمع؛
- لچ کردن خروجی ALU در ثبات C؛
- طی سومین چرخه ساعت، شمارنده برنامه افزایش پیدا میکند (طبق تعریف میتوان این مرحله را در چرخه دوم کلاک قرار داد).
می توان هر دستورالعمل را به یکسری عملیات متوالی تبدیل کرد مثل آنهایی که اجزای ریزپردازنده را به ترتیب مناسب دستکاری میکنند. بعضی از دستورالعملها مثل این دستور ADD ممکن است دو یا سه چرخه کلاک طول بکشند. بعضی دیگر ممکن است پنج یا شش چرخه کلاک طول بکشند.
کارایی ریزپردانده و گرایشات جدید این حوزه
تعداد ترانزیستورها نقش مهمی در عملکرد پردازنده دارد. همانطور که قبلاً اشاره شد، اجرای یک دستورالعمل ساده در یک پردازنده مثل 8088 ممکن است به 15 سیکل ساعت نیاز داشته باشد. به دلیل طراحی خاص ضرب کننده، حدود 80 سیکل طول میکشد تا یک ضرب 16 بیتی در 8088 انجام شود. با بیشتر شدن تعداد ترانزیستورها، میتوان ضرب کنندههای بسیار قدرتمندتری ساخت که سرعت سیکل بسیار بیشتری دارند.
افزایش تعداد ترانزیستورها امکان پیاده سازی فناوری به اسم pipelining یا خط لوله سازی را فراهم میکند. در این معماری اجرای دستورالعملها با یکدیگر همپوشانی دارد. بنابراین گرچه ممکن است اجرای هر دستورالعمل 5 سیکل ساعت زمان ببرد اما در مراحل مختلف اجرا، 5 دستورالعمل به صورت همزمان اجرا میشود. به این ترتیب به نظر میرسد که در هر سیکل ساعت، یک دستورالعمل اجرا میشود.
بسیاری از پردازندههای مدرن چندین دیکدر دستورالعمل دارند که هر کدام خط لوله خودش را دارد. به این ترتیب امکان اجرای چندین جریان دستورالعمل فراهم میشود و این یعنی در هر سیکل ساعت بیشتر از یک دستورالعمل تکمیل میشود. ممکن است پیاده سازی این تکنیک بسیار پیچیده باشد در نتیجه نیاز به ترانزیستورهای زیادی دارد.
گرایشات روز در این حوزه
امروزه به نظر میرسد که پردازندهها همه جا هستند و این روند همچنان ادامه دارد. محققان روشهایی برای انعطاف پذیرتر کردن ریزپردازندهها ابداع کرده اند که به تولید محصولاتی مثل لباسهای هوشمند کمک میکنند. محققان در حال کار روی روشهایی برای استفاده از نور (به جای الکتریسیته) برای کار کردن پردازندهها هستند. شاید مهم ترین تغییر پیش رو، توسعه کامپیوترهای کوانتوم باشد که برای حل مسائل محدود به استفاده از صفر و یک نیستند. گرچه این کامپیوترها توانایی اجرای مسائل پیچیده به روش کارآمدتر را دارند اما بعید است که به این زودی بتوانید از یک کامپیوتر کوانتوم به عنوان کامپیوتر شخصی خودتان استفاده کنید.
ریزپردازندههای 64 بیتی
از سال 1992 پردازندههای 64 بیتی با ما بوده اند و امروزه در قرن بیستم متداول شده اند. این پردازندهها ALU، ثبات، گذرگاه و قطعات مختلف دیگر 64 بیتی دارند.
یکی از دلایل نیاز جهان به پردازندههای 64 بیتی، فضای آدرس عظیم آنهاست. معمولاً تراشههای 32 بیتی محدود به دسترسی به 2 یا 4 گیگابایت رم هستند. در دورهای که اکثر کامپیوترها تنها 256 یا 512 مگابایت رم داشتند این فضای آدرس زیاد به نظر میرسید اما کامپیوترهای قرن بیست و یکم توانایی پردازش بسیار سریع تر دادهها را دارند. این نوع قدرت پردازشی برای افرادی که کار ویرایش ویدیو و عکس انجام میدهند بسیار مفید است. گیمرهای حرفهای هم از بازیهایی با رزولوشن بالا لذت میبرند.
تراشه 64 بیتی، امکانات بیشتری را فراهم میکند چون تا آیندهای طولانی، فضای آدرس 64 بیتی نامحدود به نظر میرسد – 2 به توان 64 بایت رم، یعنی رمی با ظرفیتی در حد یک میلیارد گیگابایت. با استفاده از یک گذرگاه آدرس 64 بیتی و گذرگاه داده پرسرعت و وسیع بر روی مادربورد، سیستمهای 64 بیتی میتوانند برای دستگاههایی مثل هارددرایو و کارت ویدیویی سرعت ورودی/خروجی بالاتری فراهم کنند. این قابلیتها کارایی و سرعت سیستم را به طور چشمگیری بالا میبرند.