
معماریهای x86 و x64 به دو نوع معماری مجموعه دستورالعمل (ISA) که توسط اینتل و AMD توسعه یافتهاند، اشاره دارد. ISA رفتار کد ماشین را تعریف می کند و تعیین می کند که نرم افزار چگونه پردازنده را کنترل می کند.
ISA یک رابط سخت افزاری و نرم افزاری است که تعریف می کند که یک پردازنده چه کاری را می تواند انجام دهد و چگونه می تواند آن را انجام دهد.
معماری x86 چیست؟
x86 یک نوع ISA برای پردازنده های کامپیوتری است که در ابتدا توسط اینتل در سال 1978 توسعه یافت. معماری x86 بر اساس ریزپردازنده 8086 اینتل (از این رو x86 نامیده می شود) و نوع 8088 آن است. این در ابتدا یک مجموعه دستورالعمل 16 بیتی برای پردازنده های 16 بیتی بود و بعداً به یک مجموعه دستورالعمل 32 بیتی تبدیل شد. تعداد بیت ها نشان می دهد که پردازنده چه مقدار اطلاعات می تواند در هر چرخه پردازش کند. به عنوان مثال، یک پردازنده 32 بیتی تا 32 بیت داده را در هر ساعت انتقال می دهد. معماری x86 در میان بسیاری از تولیدکنندگان ریزپردازنده به دلیل توانایی آن برای اجرا بر روی تقریباً هر کامپیوتری، از لپتاپ، رایانههای خانگی و سرورها محبوب شده است. مهمترین محدودیت معماری x86 این است که می تواند حداکثر 4096 مگابایت رم را مدیریت کند. از آنجایی که تعداد کل ترکیب های پشتیبانی شده 2^32 (4,294,967,295) است، یک پردازنده 32 بیتی 4.29 میلیارد مکان حافظه دارد. هر مکان یک بایت داده را ذخیره می کند که معادل تقریباً 4 گیگابایت حافظه موجود است. امروزه اصطلاح x86 به هر پردازنده 32 بیتی که قادر به اجرای مجموعه دستورات x86 باشد اشاره دارد.
معماری x64 چیست؟
x64 (مخفف x86-64) یک معماری مجموعه دستورالعمل مبتنی بر x86 است که برای اجازه دادن به کدهای 64 بیتی گسترش یافته است. اولین بار در سال 2000 منتشر شد و دو حالت کارکرد – حالت 64 بیتی و حالت سازگاری را معرفی کرد که به کاربران امکان می داد برنامه های کاربردی 16 و 32 بیتی را اجرا کنند. از آنجایی که کل مجموعه دستورات x86 در x64 پیاده سازی شده است، فایل های اجرایی قدیمی عملاً بدون افت عملکرد اجرا می شوند. معماری x64 مقادیر بسیار بیشتری از حافظه مجازی و فیزیکی را نسبت به معماری x86 پشتیبانی میکند و به برنامهها اجازه میدهد تا مقادیر زیادی داده را در حافظه ذخیره کنند. علاوه بر این، x64 تعداد رجیسترهای همه منظوره را به 16 افزایش می دهد و بهبودها و عملکردهای بیشتری را ارائه می دهد. معماری x64 می تواند در مجموع از 2^64 بایت استفاده کند که برابر با 16 میلیارد گیگابایت (16 اگزابایت) حافظه است. استفاده بسیار بیشتر از منابع، آن را برای تامین انرژی ابررایانه ها و ماشین هایی که نیاز به دسترسی به منابع عظیم دارند، مناسب می کند. معماری x64 به پردازنده اجازه می دهد تا 64 بیت داده را در هر ساعت پردازش کند، بسیار بیشتر از x86.
x86 در مقابل x64
اگرچه هر دو نوع معماری مبتنی بر مجموعه 32 بیتی هستند، برخی از تفاوت های کلیدی آنها را برای کاربردهای مختلف مناسب می کند. تفاوت اصلی بین آنها میزان داده ای است که می توانند با هر ساعت پردازش کنند و عرض رجیستر CPU.
پردازنده داده های پرکاربرد را در یک ثبت دسترسی سریع ذخیره می کند. یک پردازنده 32 بیتی در معماری x86 دارای ثبات های 32 بیتی است، در حالی که یک پردازنده 64 بیتی دارای ثبات های 64 بیتی است. بنابراین، x64 به پردازنده اجازه می دهد تا داده های بیشتری را ذخیره کند و سریعتر به آنها دسترسی داشته باشد. عرض رجیستر همچنین میزان حافظه ای که کامپیوتر می تواند استفاده کند را تعیین می کند. جدول زیر یک نمای کلی از تفاوت های اصلی بین معماری x86 و x64 ارائه می دهد:
ویژگی های
هر مجموعه معماری دارای ویژگی هایی است که آن را تعریف می کند و آن را در موارد استفاده خاص برتری می دهد. در زیر ویژگی های x64 و x86 آورده شده است:
x86
- از یک معماری پیچیده محاسباتی مجموعه دستورالعمل (CISC) استفاده می کند.
- دستورالعمل های پیچیده برای اجرا به چرخه های متعدد نیاز دارند.
- x86 رجیسترهای بیشتری در دسترس دارد اما حافظه کمتری دارد.
- این با خطوط لوله کمتر طراحی شده است اما می تواند آدرس های پیچیده را مدیریت کند.
- عملکرد سیستم از طریق رویکرد سخت افزاری بهینه می شود – x86 برای جبران حافظه ناکافی به اجزای فیزیکی متکی است.
- از DEP مبتنی بر نرم افزار (پیشگیری از اجرای داده ها) استفاده می کند.
x64
- با برنامه های 32 بیتی سازگار است.
- فضای آدرس مجازی (در تئوری) 2^64 بایت (16 اگزابایت) است. با این حال، تنها بخش کوچکی از 16 اگزابایت نظری استفاده می شود – حدود 128 ترابایت.
- x64 با نگاشت کل فایل در فضای آدرس فرآیند، فایل های بزرگ را مدیریت می کند.
- به دلیل پردازش موازی سریعتر، حافظه 64 بیتی و گذرگاه داده و ثبت بزرگتر، سرعت آن از x86 بیشتر است.
- پشتیبانی از عملکرد همزمان فایل های بزرگ در فضای آدرس های متعدد. علاوه بر این، x64 دو کار x86 را به طور همزمان شبیه سازی می کند و تجربه سریع تری نسبت به x86 ارائه می دهد.
- دستورالعمل ها را موثرتر و کارآمدتر بارگذاری می کند.
- از DEP (پیشگیری از اجرای داده) با پشتیبانی سخت افزاری استفاده می کند.
کاربر
با توجه به ویژگی های مختلف و تفاوت در دسترسی به منابع، سرعت و قدرت پردازش، هر مجموعه ای از معماری ها برای اهداف مختلف استفاده می شود:
x86
- اکثر رایانه های شخصی در جهان هنوز بر اساس سیستم عامل ها و پردازنده های x86 هستند.
- برای کنسول های بازی استفاده می شود.
- بخش هایی از رایانش ابری هنوز از معماری x86 استفاده می کنند.
- برنامه ها و برنامه های قدیمی معمولاً بر روی معماری 32 بیتی اجرا می شوند.
- 32 بیت به دلیل سازگاری با تجهیزات صوتی قدیمی هنوز در تولید صدا ترجیح داده می شود.
x64
- تعداد فزاینده ای از رایانه های شخصی از پردازنده ها و سیستم عامل های 64 بیتی مبتنی بر معماری x64 استفاده می کنند.
- تمام پردازنده های مدرن موبایل از معماری x64 استفاده می کنند.
- برای استفاده در ابر رایانه ها استفاده می شود.
- در کنسول های بازی ویدیویی استفاده می شود.
- فناوری های مجازی سازی بر اساس معماری x64 هستند.
- برای موتورهای بازی جدیدتر مناسب تر است زیرا سریعتر است و عملکرد بهتری ارائه می دهد.
محدودیت ها
اگرچه هر دو ISA دارای محدودیت هایی هستند، x64 یک معماری جدیدتر و کامل تر است. در زیر لیستی از محدودیت های هر دو نوع معماری آمده است:
x86
- مجموعه محدودی از حافظه آدرس پذیر وجود دارد.
- سرعت پردازش در مقایسه با x64 کمتر است.
- فروشندگان دیگر برنامه های کاربردی برای سیستم عامل های 32 بیتی توسعه نمی دهند.
- پردازنده های مدرن به یک سیستم عامل 64 بیتی نیاز دارند.
- تمام دستگاه های موجود در سیستم (کارت های ویدئویی، بایوس و غیره) رم موجود را به اشتراک می گذارند و حتی حافظه کمتری را برای سیستم عامل و برنامه ها باقی می گذارند.
x64
- با دستگاه های قدیمی سازگار نیست.
- عملکرد و سرعت بالای آن معمولاً انرژی بیشتری مصرف می کند.
- بعید است درایورهای 64 بیتی برای سیستم ها و سخت افزارهای قدیمی در دسترس باشند.
- برخی از نرم افزارهای 32 بیتی با معماری 64 بیتی سازگاری کامل ندارند.
x86 بهتره یا x64؟
اگرچه هر دو x86 و x64 مزایایی دارند، آینده محدودیتها را تحمل نمیکند، به این معنی که x86 در نهایت به ندرت مورد استفاده قرار میگیرد یا بهطور کامل حذف میشود. علاوه بر این، x64 بسیار سریعتر است، میتواند حافظه رم بیشتری را اختصاص دهد و دارای قابلیتهای پردازش موازی از طریق یک گذرگاه داده 64 بیتی است که انتخاب بهتری بین این دو معماری است. هنگام انتخاب نوع سیستم عامل برای نصب، همیشه بهتر است یک سیستم عامل 64 بیتی نصب شود زیرا می تواند نرم افزارهای 32 بیتی و 64 بیتی را اجرا کند. از سوی دیگر، سیستم عامل مبتنی بر x86 فقط نرم افزارهای 32 بیتی را اجرا می کند. به طور کلی، x64 بسیار توانمندتر از x86 است و از تمام رم نصب شده استفاده می کند، فضای هارد دیسک بیشتر، سرعت BUS سریعتر و عملکرد کلی بهتر را فراهم می کند.
نوشته معماری X86 در مقایسه با X64 اولین بار در Server.ir | نگرش جهانی، میزبانی ایرانی.