محدودیتی که در دامنه پردازشهای 32 بیتی وجود دارد، همواره باعث کندشدن سرعت انجام عملیات پیچیده و سنگین اطلاعاتی در سیستمهای مختلف میگردد. به همینمنظور بسیاری از شرکتهای سازنده نرمافزار و خصوصاً آنهایی که در زمینه سیستمعامل فعالیت دارند از دیرباز رقابتی را برای تحت پوشش قراردادن تعداد زیادتری CPU و مقدار بیشتری حافظه RAM نسبت به یکدیگر آغاز کردهاند. به عنوان مثال رقابتی که بین ویندوز 2000 سرور با سولاریس یا انواع یونیکس و لینوکس بر سر امکان استفاده از 8 یا 16 تا 32 پردازنده به همراه چند گیگابایت حافظه RAM و امثال آن وجود داشت همواره یکی از جالبترین و پرسروصداترین زمینه رقابت بین چند سیستمعامل بهشمار میرفت. اما تمام این عوامل چندی پیش تحتالشعاع واژه جدیدی به نام پردازش 64 بیتی قرار گرفت. این فناوری جدید که به لطف به بازار آمدن دو محصول جدید از دو شرکت معتبر سازنده پردازنده یعنی اینتل و AMD شکل گرفت، در مدت کوتاهی توانست توجه سازندگان سیستمعامل را به شدت معطوف کارایی بینظیر خود کند .
پردازندههای Xeon و ایتانیوم از سوی اینتل و پردازنده Opteron از طرف AMD طی مدت کوتاهی توجه تمام سازندگان مشهور سرورهای Enterprise و همچنین تولیدکنندگان سیستمعامل را به خود جلب کرد. در این میان مایکروسافت نیز بلافاصله اقدام به طراحی نسخهای از ویندوز 2003 سرور برمبنای انجام پردازشهای 64 بیتی و با استفاده از پردازندههای جدید نمود. این نسخه جدید 64 بیتی از چند نظر بر نسخه پیشین خود برتری داشت. اول اینکه از میزان حافظه فیزیکی و مجازی بیشتری پشتیبانی میکند .
دوم اینکه در مقایسه با نسخه 32 بیتی از کارایی و سرعت بالاتری در مدیریت حافظه، رجیسترها و عملیات I/O برخوردار است. نکته سوم در مورد امنیت است. نسخه 64 بیتی قابلیت محافظت بیشتری در برابر کدهای مخرب(Malicious Code) از خود نشان میدهد. طبق پیشبینیهای انجام گرفته تا پایان سال 2005 میلادی کلیه کامپیوترهایی که قرار است نقش سرور را در مراکز بزرگ اقتصادی داشته باشند به سمت ریزپردازنده و سیستمعامل 64 بیتی سوق پیدا خواهند کرد. همین پیشبینی حاکی از تمایل شدید کامپیوترهای دسکتاپ به سمت استفاده از تکنولوژی 64 بیتی تا پایان سال 2006 میلادی است .
برایناساس به تدریج نه تنها سازندگان سیستمعامل مثل مایکروسافت سیستمعامل 64 بیتی مختص کامپیوترهای دسکتاپ (Windows XP 46 bit) را به بازار عرضه میکنند، بلکه سایر تولیدکنندگان نرمافزارهای مختلف هم با وارد شدن به دنیای پردازشهای 64بیتی، کارایی و سرعت جدیدی را به کاربران خود ارایه میدهند .
مقایسه
در یک سیستمعامل 32 بیتی مثل نسخههای 32 بیتی ویندوز 2003 از یک حافظه مجازی (Virtual memory) برای انجام پردازشهای مختلف استفاده میشود. این حافظه مجازی که حداکثر 4 گیگابایت میتواند ظرفیت داشته باشد به دو قسمت تقسیم میشود. یک قسمت 2 گیگابایتی آن به وسیله برنامه در حال اجرا اشغال شده و 2 گیگابایت دیگر در اختیار سیستمعامل قرار میگیرد.
تا اینجا همه چیز بسیار عادی به نظر میرسد اما مشکل زمانی پیش میآید که 2 گیگابایت سهم برنامههای در حال اجرا به مرز پرشدن نزدیک میشود. به عنوان مثال یک بانک اطلاعاتی SQL Server را در نظر بگیرید که برای اتصال هر کاربر به سرور و انجام عملیات موردنظر وی 20 مگابایت حافظه مجازی را در نظر میگیرد. با رسیدن تعداد کاربران به مرز یکصد نفر، کل حافظه مجازی 2 گیگابایتی در اختیار SQL Server قرار میگیرد و این به معنای نزدیک شدن سیستم به یک نقطه بحرانی در عملیات سرویسدادن به کاربران است .
در نسخههای 32 بیتی یکی از راههایی که برای این مساله در نظر گرفته میشد، اختصاص 3 گیگابایت از حافظه مجازی به برنامههای درحالاجرا بود. این روش که با استفاده از دستکاری در فایل boot.ini انجام میگرفت، یک گیگابایت از حافظه مجازی در اختیار سیستمعامل را به سهمیه حافظه مجازی برنامههای در حال اجرا واگذار میکرد و تا حدودی مشکل کمبود حافظه مجازی را رفع میکرد. اما خود این عمل هم عوارض جانبی خاص خود را دارد و آن محدود شدن کرنل سیستمعامل به یک گیگابایت حافظه مجازی برای انجام عملیات cache است .
این محدود شدن باعث افت سرعت انتقال اطلاعات از سرور به کلاینتها میشود. ضمن اینکه باز هم در نهایت با زیادترشدن تعداد کاربران یا پردازشهای موردنظر آنان، این 1 گیگابایت الحاقشده نیز به مرز اشتغال شدن کامل نزدیک میشود و مدیران سیستم را به ناچار مجبور به افزایش تعداد سرورها برای رفع مشکل میکند. با آمدن ویندوز 2003 نسخه 32 بیتی، قدرت آدرسدهی سیستمعامل برای حافظههای فیزیکی (RAM) به 32 گیگابایت برای نسخه Enterprise و 64 گیگابایت در نسخه DataCenter افزایش یافت و این به معنای نیاز کمتر سیستم به استفاده از حافظه مجازی و در نتیجه کمتر شدن مشکل مربوط به محدودیت حافظههای مجازی بود.
اما به هر حال استفاده از حافظه مجازی برای پردازش اطلاعات امری گریزناپذیر است و بههمین دلیل توجه سازندگان سیستمعامل همواره معطوف به پیدا کردن راهحلی برای عبور از این مشکل بود. سرانجام با مطرح شدن و تولد سیستمعامل 64 بیتی ویندوز 2003 که با استفاده از قدرت پردازندههای 64 بیتی جدید قادر بود از یک سیستم آدرسدهی 40 بیتی استفاده کند، میزان حافظه مجازی قابل دسترسی سیستم از 4 گیگابایت به 40 2 یعنی 16 ترابایت (هزار گیگابایت) افزایش یافت.
بدینترتیب 8 ترابایت از این ظرفیت در اختیار برنامههای در حال اجرا و 8 ترابایت دیگر در اختیار سیستمعامل قرار گرفت. مهمترین سوالی که در اینجا میتوانست مطرح شود این است که آیا برنامههای سابق محیط 32 بیتی که برای استفاده از حداکثر 3 گیگابایت حافظه مجازی کامپایل شدهاند قادر به بهره بردن از این 8 ترابایت فضای جدید هستند یا خیر. پاسخ این سوال هم میتواند مثبت باشد و هم منفی. بدینصورت که برخی برنامههای کامپایلشده در محیطهای 32 بیتی که به صورت صریح قدرت استفاده از حداکثر 3 گیگابایت حافظه مجازی را دارند، با ورود به محیط 64 بیتی هیچ تغییری را احساس نخواهند کرد .
اما برخی دیگر که با تکنولوژی Large Addressware کامپایل شدهاند قادر خواهند بود تا 4 گیگابایت از حافظه مجازی را در محیط جدید مورد استفاده قرار دهند. از لحاظ سرعت انجام عملیات نیز برخی برنامههای کامپایل شده در محیط 32 بیتی (مثلاً برنامههای نوشته شده با ASP.NET که از تکنولوژی Multithreading برای اجرای موازی چند دستورالعمل در آن واحد استفاده میکنند)، به دلیل قدرت بینظیر پردازندههای 64 بیتی در انجام این کار میتوانند از مزایای محیط جدید اجرا استفاده کرده و سرعت اجرای خود را افزایش دهند .