معماری X86 در مقایسه با X64 : بررسی جامع معماریهای پردازنده
معماریهای x86 و x64 به دو نوع پرکاربرد معماری مجموعه دستورالعمل (ISA) که توسط اینتل و AMD ایجاد شدهاند اشاره دارد. یک ISA رفتار کد ماشین را مشخص میکند و نحوه کنترل CPU را توسط نرمافزار مشخص میکند.
ISA رابط سختافزاری و نرمافزاری است که مشخص میکند CPU چه کاری و چگونه میتواند انجام دهد.
در مقاله «معماری X86 در مقایسه با X64» به تفاوتهای کلیدی بین معماریهای ۳۲ بیتی (x86) و ۶۴ بیتی (x64) پرداخته شده است. این مقاله توضیح میدهد که معماری x86 محدود به ۴ گیگابایت حافظه است، در حالی که x64 میتواند تا ۱۶ اگزابایت حافظه را پشتیبانی کند. همچنین، x64 با افزایش تعداد رجیسترها و بهبود عملکرد، امکان پردازش دادههای بیشتر و سریعتر را فراهم میآورد.
x86 نوعی ISA برای پردازندههای کامپیوتری است که در ابتدا توسط اینتل در سال ۱۹۷۸ توسعه یافت. معماری x86 بر اساس ریزپردازنده ۸۰۸۶ اینتل (از این رو نام آن x86 میباشد) و نوع ۸۰۸۸ آن است. در ابتدا یک مجموعه دستورالعمل ۱۶ بیتی برای پردازندههای ۱۶ بیتی بود و بعداً به مجموعه دستورالعملهای ۳۲ بیتی رسید.
تعداد بیتها نشان میدهد که CPU چه مقدار اطلاعات میتواند در هر چرخه پردازش کند. مثلا، یک CPU ۳۲ بیتی تا ۳۲ بیت داده را در هر سیکل ساعت انتقال میدهد. معماری x86 به دلیل قابلیت اجرا بر روی تقریبا هر کامپیوتری، از لپتاپ، رایانههای شخصی خانگی و سرورها، در میان تولیدکنندگان ریزپردازندههای متعدد محبوب شده است.
محدودیتهای کلیدی x86
مهمترین محدودیت معماری x86 (که به آن میتوان گفت x86 چند بیتی است) این است که میتواند حداکثر ۴۰۹۶ مگابایت رم را مدیریت کند.
- از آنجایی که تعداد کل ترکیبهای پشتیبانی شده (۴,۲۹۴,۹۶۷,۲۹۵) است.
- پردازنده ۳۲ بیتی ۴.۲۹ میلیارد مکان حافظه دارد.
- هر مکان یک بایت داده را ذخیره میکند که معادل تقریبا ۴ گیگابایت حافظه قابل دسترسی است.
امروزه اصطلاح x86 به هر پردازنده ۳۲ بیتی که قادر به اجرای مجموعه دستورات x86 باشد اشاره میکند.
x64 چیست: معماری گسترش یافته
x64 (مخفف x86-64) یک معماری از مجموعه دستورالعمل مبتنی بر x86 است که برای فعال کردن کدهای ۶۴ بیتی گسترش یافته است. اولین بار در سال ۲۰۰۰ منتشر شد و دو حالت کار را معرفی کرد – حالت ۶۴ بیتی و حالت سازگاری، که به کاربران اجازه میدهد برنامههای ۱۶ بیتی و ۳۲ بیتی را نیز اجرا کنند.
از آنجایی که کل مجموعه دستورات x86 در x64 پیادهسازی میشود، فایلهای اجرایی قدیمیتر عملا بدون جریمه عملکرد اجرا میشوند.
قابلیتهای x64
معماری x64 از مقادیر بسیار بیشتری از حافظه مجازی و فیزیکی نسبت به معماری x86 پشتیبانی میکند و به برنامهها اجازه میدهد تا مقادیر زیادی داده را در حافظه ذخیره کنند.
- علاوه بر این، x64 تعداد رجیسترهای همهمنظوره را به ۱۶ افزایش میدهد و پیشرفتها و عملکردهای بیشتری را ارائه میدهد.
- معماری x64 میتواند در مجموع از بایت استفاده کند که برابر با ۱۶ میلیارد گیگابایت (۱۶ اگزابایت) حافظه است.
- x64 به CPU اجازه میدهد تا ۶۴ بیت داده را در هر چرخه ساعت پردازش کند، بسیار بیشتر از x86.
استفاده بسیار بیشتر از منابع، آن را برای تامین انرژی ابررایانهها و ماشینهایی که نیاز به دسترسی به منابع گسترده دارند، مناسب میکند.
تفاوت x64 و x86: مقایسه اصلی x86 vs x64
در حالی که هر دو نوع معماری بر اساس مجموعه ۳۲ بیتی هستند، برخی از تفاوتهای کلیدی آنها را برای استفادههای مختلف مناسب میکند. تفاوت اصلی بین آنها میزان دادهای است که میتوانند با هر چرخه مدیریت کنند.
پردازنده دادههای پرکاربرد را در یک رجیستر برای دسترسی سریع ذخیره میکند.
- یک پردازنده ۳۲ بیتی در معماری x86 دارای ثباتهای ۳۲ بیتی است.
- در حالی که پردازندههای ۶۴ بیتی در معماری x64 دارای ثباتهای ۶۴ بیتی هستند.
بنابراین، x64 به CPU اجازه میدهد تا دادههای بیشتری را ذخیره کند و سریعتر به آنها دسترسی پیدا کند. عرض رجیستر همچنین میزان حافظهای که کامپیوتر میتواند استفاده کند را تعیین میکند. این مقایسه برای درک تفاوت x86 با x64 ضروری است.
این مقایسه همچنین میتواند به عنوان پاسخ به پرسش «تفاوت x86 با x64» و همچنین «x86 vs x64» در نظر گرفته شود.
ویژگیهای ساختاری: x86 or x64
هر مجموعه معماری دارای ویژگیهایی است که آن را تعریف میکند و در موارد استفاده خاص به آن برتری میدهد. لیستهای زیر ویژگیهای x64 و x86 را نشان میدهد و به مقایسه x86 or x64 کمک میکند.
ویژگیهای x86
- از معماری محاسباتی مجموعه دستورالعملهای پیچیده (CISC) استفاده میکند.
- دستورالعملهای پیچیده برای اجرا به چرخههای متعدد نیاز دارند.
- x86 رجیسترهای بیشتری در دسترس دارد اما حافظه کمتری دارد.
- با خطوط PIPE LINE کمتری طراحی شده است، اما میتواند آدرسهای پیچیده را مدیریت کند.
- عملکرد سیستم با استفاده از رویکرد سختافزاری بهینه شده است – x86 برای جبران حافظه کم به اجزای فیزیکی متکی است.
- از DEP مبتنی بر نرمافزار (پیشگیری از اجرای دادهها) استفاده میکند.
ویژگیهای x64
- دارای قابلیت سازگاری با برنامههای ۳۲ بیتی میباشد.
- فضای آدرس مجازی (تئوری) بایت (۱۶ اگزابایت) است. با این حال، تنها بخش کوچکی از محدوده نظری ۱۶ اگزابایتی مورد استفاده قرار میگیرد – حدود ۱۲۸ ترابایت.
- x64 فایلهای بزرگ را با نگاشت کل فایل در فضای آدرس فرآیند پردازش میکند.
- سریعتر از x86 است به دلیل پردازش موازی سریعتر، حافظه ۶۴ بیتی و گذرگاه داده و رجیسترهای بزرگتر.
- پشتیبانی از عملیات همزمان فایلهای بزرگ در فضای آدرسهای متعدد. علاوه بر این، x64 دو وظیفه x86 را به طور همزمان شبیهسازی میکند و تجربه سریعتری نسبت به x86 ارائه میکند.
- دستورالعملها را موثرتر و کارآمدتر بارگذاری میکند.
- از DEP با پشتوانه سختافزاری (پیشگیری از اجرای دادهها) استفاده میکند.
کاربری و محدودیتها
با توجه به ویژگیهای مختلف و تفاوت در دسترسی به منابع، سرعت و قدرت پردازش، هر مجموعه معماری برای اهداف مختلفی استفاده میشود:
کاربریهای x86 و x64
محدودیتهای x86 و x64
در حالی که هر دو ISA دارای محدودیتهایی هستند، x64 یک نوع معماری جدیدتر و کاملتر است.
x86 بهتر است یا x64؟
اگرچه هر دو x86 و x64 دارای مزایایی هستند، آینده محدودیتهایی را تحمل نمیکند، به این معنی که x86 در نهایت به ندرت مورد استفاده قرار میگیرد یا کاملا حذف میشود.
علاوه بر این، x64 بسیار سریعتر است، میتواند حافظه رم بیشتری را اختصاص دهد و دارای قابلیتهای پردازش موازی از طریق گذرگاه داده ۶۴ بیتی است که باعث میشود انتخاب بهتری بین دو نوع معماری باشد.
هنگام انتخاب نوع سیستمعامل برای نصب، همیشه بهتر است یک سیستمعامل ۶۴ بیتی نصب کنید زیرا میتواند نرمافزارهای ۳۲ بیتی و ۶۴ بیتی را اجرا کند. از سوی دیگر، سیستمعامل مبتنی بر x86 تنها نرمافزار ۳۲ بیتی را اجرا میکند. به طور کلی، x64 بسیار توانایی بیشتری نسبت به x86 دارد و از تمام رم نصب شده استفاده میکند، فضای هارد دیسک بیشتر، سرعت BUS سریعتر و عملکرد کلی بهتر را فراهم میکند.
حالت Long Mode: رمزگشایی عملکرد x64
معماری x64 یک حالت عملیاتی جدید به نام Long Mode را معرفی کرد که خود شامل دو زیرحالت اصلی است: ۶۴ بیتی Mode و Compatibility Mode. ۶۴ بیتی Mode محیط اصلی است که در آن سیستم عاملهای ۶۴ بیتی و برنامههای ۶۴ بیتی اجرا میشوند و از تمام مزایای معماری جدید (رجیسترهای ۶۴ بیتی، حافظه بزرگ و غیره) بهره میبرند. در مقابل، Compatibility Mode به پردازنده اجازه میدهد که کدهای ۳۲ بیتی قدیمی (که برای x86 نوشته شدهاند) را بدون نیاز به هیچ گونه شبیهسازی یا ترجمه پیچیده، اجرا کند.
این قابلیت دوگانه تضمین میکند که سیستمهای مدرن x64 بتوانند هم نرمافزارهای جدید و هم نرمافزارهای قدیمی را مدیریت کنند، و این یک مزیت بزرگ نسبت به پردازندههای x86 است که تنها میتوانند برنامههای ۳۲ بیتی را اجرا کنند. معمولا این قابلیت در دنیای سرورهای مجازی ویندوزی بین المللی بسیار کاربردی است و وجود آن برای اجرای درست بسیاری از وباپلیکیشنها و برنامههای کاربردی قدیمی، الزامی است.
تفاوت x64 و x86: افزایش توان رجیستر و گذرگاه داده
یکی از پیشرفتهای چشمگیر در معماری x64، فراتر از آدرسدهی حافظه، افزایش تعداد و اندازه رجیسترهای عمومی است. در هسته هر پردازنده، رجیسترها فضای کاری بسیار سریع و موقتی هستند که برای نگهداری دادهها و دستورالعملهایی که به طور فعال در حال پردازش هستند، استفاده میشوند.
پردازندههای ۳۲ بیتی (x86) تنها هشت رجیستر عمومی داشتند، در حالی که پردازندههای ۶۴ بیتی (x64) این تعداد را به شانزده رجیستر ۶۴ بیتی افزایش دادند. این دو برابر شدن فضای کاری، به CPU اجازه میدهد تا دادههای بیشتری را در داخل خود پردازنده نگه دارد و نیاز به رفت و برگشت مداوم به حافظه اصلی (RAM) را به شدت کاهش دهد. نتیجه این امر، افزایش قابل توجه سرعت محاسبات و کارایی در اجرای برنامههای پیچیده است.
اهمیت گذرگاه داده (Data Bus) در معماریهای ۶۴ بیتی
علاوه بر رجیسترها، عرض گذرگاه داده (Data Bus) نیز در معماری x64 گسترش یافته است. گذرگاه داده مانند بزرگراهی است که دادهها را بین CPU، حافظه و سایر اجزای سیستم منتقل میکند. در معماری x86، این گذرگاه توانایی انتقال ۳۲ بیت داده در هر لحظه را داشت. اما در x64، این توانایی به ۶۴ بیت در هر سیکل ساعت رسیده است.
این افزایش ظرفیت، مشابه دو بانده کردن یک بزرگراه شلوغ است؛ به این معنی که CPU میتواند حجم دادهها را بسیار سریعتر جابجا کند و به این ترتیب، گلوگاههای انتقال داده از بین میروند. این پهنای باند بیشتر، به ویژه در کارهایی مانند ویرایش ویدئو، شبیهسازیهای علمی و اجرای پایگاههای داده بزرگ، که نیاز به جابجایی حجم عظیمی از اطلاعات دارند، حیاتی است و به وضوح برتری x64 را نسبت به x86 نشان میدهد.
سوالات متداول
بله. معماری x64 (که با نامهای AMD64 یا Intel 64 نیز شناخته میشود) به گونهای طراحی شده است که سازگاری کامل با نسخههای قدیمیتر (۳۲ بیتی یا x86) داشته باشد. بنابراین، یک پردازنده ۶۴ بیتی میتواند یک سیستم عامل ۳۲ بیتی را اجرا کند. اما برعکس آن صادق نیست: یک پردازنده ۳۲ بیتی (x86) هرگز نمیتواند یک سیستم عامل ۶۴ بیتی را اجرا کند.
بله، در اکثر موارد اجرا میشود. سیستمهای عامل ۶۴ بیتی (مانند ویندوز یا لینوکس ۶۴ بیتی) دارای یک لایه سازگاری داخلی هستند که به آنها اجازه میدهد تا برنامههای ۳۲ بیتی را اجرا کنند. در ویندوز، این قابلیت با نام WoW64 (Windows on Windows 64-bit) شناخته میشود. با این حال، اجرای برنامههای قدیمی ۱۶ بیتی ممکن است روی سیستمهای ۶۴ بیتی با مشکل مواجه شود.
بله، نصب سیستم عامل x64 حتی اگر کمتر از ۴ گیگابایت RAM (مثلا ۲ گیگابایت) داشته باشید، معمولا منطقی است. دلایل این امر عبارتند از:
- امنیت بهتر: سیستم عاملهای x64 از قابلیتهای امنیتی مدرنتری مانند DEP (Data Execution Prevention) سختافزاری استفاده میکنند که در سیستمهای x86 وجود ندارد یا فقط به صورت نرمافزاری است.
- عملکرد بهتر: برنامههای ۶۴ بیتی معمولا از رجیسترهای بیشتر و گذرگاه داده ۶۴ بیتی استفاده میکنند که حتی با رم کم، سرعت کلی پردازش را افزایش میدهد.
- آیندهنگری: تقریبا تمام نرمافزارهای جدید و درایورهای سختافزاری فقط برای معماری ۶۴ بیتی منتشر میشوند.
از نظر فنی، این سه اصطلاح به یک معماری پایه مشترک اشاره میکنند: معماری ۶۴ بیتی که از مجموعه دستورالعملهای x86 سرچشمه میگیرد.
- x86-64: یک نام عمومی و استاندارد برای این معماری است.
- AMD64: نامی است که شرکت AMD برای اولین پیادهسازی این معماری استفاده کرد.
- Intel 64 (که قبلا EM64T نامیده میشد): نامی است که اینتل برای پیادهسازی خود از این معماری به کار میبرد.
در عمل، یک سیستم عامل یا برنامه نرمافزاری که برای x64 کامپایل شده باشد، میتواند روی هر دو پردازنده AMD و Intel با معماری ۶۴ بیتی اجرا شود.
شما میتوانید دیدگاه خود را در مورد این مطلب با ما با اشتراک بگذارید.