بخشی از مقاله

مقایسه مختصر بین پردازنده های 32 بیت و 64 بیت

مقدمه

محدودیتی که در دامنه پردازش‌های 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 بیتی در انجام این کار می‌توانند از مزایای محیط جدید اجرا استفاده کرده و سرعت اجرای خود را افزایش دهند .

اما اگر برنامه‌ای (مثلاً یک فایل Exe) در محیط توسعه‌ای مثل ویژوال بیسیک نسخه ششم برای دسترسی به یک پایگاه داده و کار با آن بدون استفاده از مکانیسم پردازشی موازی و به صورت ساده نوشته شده باشد، این برنامه حتی اگر برروی یک سرور 64 بیتی هم اجرا شود نمی‌تواند از قابلیت‌های محیط جدید سودی ببرد. بنابراین اگر قرار است این برنامه برروی کلاینت نصب شده و پایگاه داده موردنظر که SQL Server است برروی یک سرور باشد، بهتر آن است که کلاینت در همان وضعیت 32 بیتی باقی بماند و سرور به نسخه 64 بیتی ویندوز 2003 ارتقاء داده‌شود.

در این صورت موتور بانک‌اطلاعاتی SQL Server که در تمام نسخه‌های خود از شیوه Multithreading برای انجام دستورات موردنظر کاربران استفاده می‌کند، می‌تواند در محیط جدید با سرعت بهتری فرامین رسیده از طرف کلاینت‌ها را پردازش کرده و نتیجه را سریع‌تر به آن‌ها برگرداند و کارایی کلی این سیستم بانک اطلاعاتی را به نحو مطلوبی افزایش دهد. اصولاً برنامه‌های نوشته شده برای محیط‌های 32 بیتی با استفاده از رابطی به نام WOW64 قادر خواهند بود در محیط 64 بیتی اجرا شوند و از مزایای ارتقاء سیستم عامل و دسترسی به حافظه بیشتر بهره ببرند.

پردازنده

هر دو شرکت اینتل و AMD از همان آغاز تولید پردازنده‌های 64 بیتی، تمام تمرکز خود را برروی پردازنده‌هایی که در رده کامپیوترهای سرور مورد استفاده قرار می‌گیرد، گذاشتند. پردازنده اُپترون (Opteron) محصول شرکت AMD وXeon محصول اینتل هر دو به همین منظور طراحی و تولید شدند .

پس از آن استفاده از تکنولوی 64 بیتی در رده کامپیوترهای کلاینت نیز مدنظر هر دو شرکت قرار گرفت و از آنجا که سروصدای ظهور سیستم‌عامل 64 بیتی ویندوزXP به تدریج نوید یک دگرگونی در کارایی این رده از کامپیوترها را می‌داد، این دو شرکت پردازنده‌های 64 بیتی جدیدی را با قی

مت ارزان‌تر برای کار در کلاینت‌ها روانه بازار کردند. پردازنده Athlon 64 و پنتیوم 4 سری EM46T از جمله این پردازنده‌های جدید بودند. .


ضمن این‌که در رده سرور نیز هر دو به ارتقاء پردازنده‌‌های ویژه خود پرداختند. پردازنده‌های اُپترون و پردازنده‌های ایتانیوم از اینتل نتیجه این ارتقاء محسوب می‌شوند که از آخرین دست‌آوردهای تکنولوژی 64 بیتی به‌شمار می‌روند.

هم‌اکنون AMD پردازنده‌‌های Opteron را برای استفاده در کامپیوترهای دسکتاپ و سرور با سیستم‌عامل 64 بیتی، پردازنده‌های Athlon 64 را جهت استفاده در کامپیوترهای دسکتاپ و کیفی با سیستم‌عامل 32 یا 64 بیتی و پردازنده‌های Turion را برای استفاده در کامپیوترهای کیفی با سیستم‌عامل 64 بیتی به بازار عرضه می‌کند. اینتل هم انواع پردازنده‌های نوع Xeon خصوصاً سری MP را برای کار در محیط 32 یا 64 بیتی و انواع پردازنده‌های رده ایتانیوم را برای سرورهای با سیستم‌عامل 64 بیتی تولید می‌کند.

نرم‌افزار
با تحولی که در دنیای پردازنده‌ها و سیستم‌‌عامل‌ها در حال وقوع بود، قاعدتاً دنیای نرم‌افزار نیز باید شاهد تغییراتی در نحوه انجام پردازش‌ها و سرعت و کارایی اجرا می‌شد. در اولین گام کلیه سرویس‌هایی که به همراه ویندوز 2003 نسخه 64 بیتی ارایه شد همگی با این تکنولوژی جدید همراه شدند .

این سرویس‌ها که متعلق به مقوله نرم‌افزار به حساب می‌آمدند، از اکتیودایرکتوری گرفته تا Terminal service و وب‌سرور IIS با امکانات جدید محیط 64 بیتی مثل استفاده از فضای بسیار بزرگ حافظه، افزایش سرعت عملیات I/O و استفاده مناسب و بهینه از زمان CPU کاملاً هماهنگ شدند .

از طرفی دیگر بلافاصله خبر از ارایه شدن نسخه‌های جدید برخی نرم‌افزارهای سمت سرور مایکروسافت برای کار در محیط 64 بیتی رسید. نسخه 64 بیتی SQL Server2000 و بعد از آن حرف و حدیث‌های مربوط به نسخه 2005 که مرزهای سرعت و کارایی را پشت‌سر می‌گذارد، از این دست به شمار می‌روند. در همین حال خبرهای دیگری حاکی از اقبال این دگرگونی از سمت برنامه‌نویسان بود .

 

محیط برنامه‌نویسی محبوب دات‌نت این‌بار با سروصدای جدیدی وارد معرکه شد و Visual Studio2005 را برای نوشتن برنامه‌های کاربردی 64 بیتی به علاقمندان ارایه کرد. از سوی دیگر رقبای مایکروسافت هم بیکار ننشستند. اوراکل با محصول oracle 10g و آی‌بی‌ام با تولید DB2 64 و بسیاری دیگر از سازندگان نرم‌افزار و خصوصاً سازندگان برنامه‌های سرور محیط بزرگ (Enterprise) با سعی و تلاش خود نشان دادند که پلتفرم جدید پردازش‌های 64 بیتی برای آن‌ها از اهمیت ویژه‌ای برخوردار است. به هر حال در آینده نزدیک شاهد رونق فناوری محاسبات 64 بیتی در بسیاری از نرم‌افزارهای مختلف خواهیم بود.


Bit چيست؟

كلمه bit (بيت) مخفف عبارت binary digit است. اعداد دودويي يا باينري يعني همان روشي است كه يك كامپيوتر داده‌ها را با آن ذخيره كرده يا در قالب آن انتقال مي‌دهد. يك بيت مي‌تواند مقداري بين صفر يا يك را به خود بگيرد. اگر تعدادي از بيت‌ها را پشت سر هم رديف كنيم، به يك كُد باينري مي‌رسيم مثل 1001011000101 كه مي‌تواند بيانگر يك دستورالعمل رياضي (مثل جمع و تفريق)، يك محل‌خاص از حافظه (جهت آدرس‌دهي)، و يا يك داده مشخص مثلاً عدد 456/12 باشد. يك پردازنده 32 بيتي، مثل پنتيوم قادراست با استفاده از اين رشته صفر و يك، تا عدد 322 را كدگذاري كند يا در اصطلاح، آن را به مبناي باينري (دودويي(ببرد.

طبيعي است كه اين ميزان براي يك پردازنده 64 بيتي به 64‌‌2 مي‌رسد و اين بدان معني است كه يك پردازنده 64 بيتي، مي‌تواند سقف بسيار بالاتري از اعداد را در واحد زمان پشتيباني‌كند. بنابراين اگر يك پردازنده 32 بيتي بخواهد عددي بيشتر از 232 را پردازش كند يا انتقال دهد، بايد در دو سيكل زماني اين كار را انجام دهد كه وقت بيشتري را نسبت به
يك پردازنده 64 بيتي صرف‌مي‌كند. بدين ترتيب يك پردازنده 64 بيتي، صرف‌نظر از آن‌كه چند سيكل زماني در ثانيه (فركانس) بيشتر از يك پردازنده 32 بيتي دارد، در هر كدام از اين سيكل‌هاي زماني نيز قادر است دو برابر يك پردازنده 32 بيتي عمل پردازش را انجام دهد.


حافظه؛ مسئله مهم‌تر

اما عامل ديگري كه تحت‌تأثير دامنه بيتي يك پردازنده قرار مي‌گيرد، ميزان حافظه‌اي است كه سيستم‌پشتيباني مي‌كند يا مورد دسترسي قرار مي‌دهد. در پردازنده‌هاي 32 بيتي كه با سيستم‌عامل‌هاي همگون 32 بيتي كار مي‌كنند، تنها چهار‌گيگابايت از فضاي حافظه RAM قابل دسترسي است كه حتي اين مقدار هم توسط سيستم‌عامل‌هاي 32 بيتي، اغلب به دو‌گيگابايت كاهش مي‌يابد. زيرا دو گيگابايت ديگر از آن بايد به برنامه‌هاي كاربردي جهت اجرا تخصيص داده شود.

 

پردازنده پنتيوم‌4 محصول اينتل و آتلون XP از AMD، از جمله همين پردازنده‌هايي هستند كه عليرغم فركانس بالا جهت اجراي تعداد بيشتري دستورالعمل در واحد زمان، به دليل عدم امكان دسترسي به مقادير زيادتري از حافظه، گاه سرورهاي محيط‌هاي Enterprise را با مشكل مواجه‌‌مي‌كنند. در حالي كه اين مشكل، در پردازنده‌هاي 64 بيتي (البته به شرط اجراي برنامه‌هاي 64 بيتي تحت سيستم‌عامل‌هاي 64 بيتي) با پشتيباني از چندترابايت فضاي حافظه، برطرف شده است.

اينتل و AMD

شركت AMD، با ساخت اولين مدل آتلون 64 بيتي كه البته برخلاف نام آن، قابليت پشتيباني 40 بيتي (نه 32 و نه 64) از حافظه را داشت و مي‌توانست 136 گيگابايت از فضاي حافظه را آدرس‌دهي كند و اينتل با ساخت پردازندهXeon سري Dual Processor) DP) با قابليت اجراي 32 و 64 بيتي و برخورداري از تكنولوژي hyper threading، اولين گام‌ها را جهت ساخت پردازنده‌هاي 64 بيتي برداشتند. اين پردازنده‌ها علاوه بر مهيا‌ساختن قابليت دسترسي به ميزان حافظه بيشتر براي سيستم‌عامل، به هر برنامه كاربردي قابل اجرا بر روي آن سيستم‌عامل، يك بلاك چهار‌گيگابايتي از حافظه را جهت اجرا اختصاص مي دهند.

اين توانايي جديد به نحو بسيار محسوسي، كاربران برنامه‌هاي طراحي مهندسي (CAD) و بسياري از بانك‌هاي اطلاعاتي را با افزايش كارايي و سرعت اجراي برنامه‌ها مواجه‌‌كرد. اين پردازنده‌ها كه طبق نظر سازندگانشان به‌طور كامل از سيستم‌عامل‌ها و برنامه‌هاي 32‌بيتي پشتيباني كرده و هيچ خللي را به دليل ارتقا به وضعيت 64 بيتي، در برنامه‌هاي قبلي وارد نمي‌كردند و به قول خودشان سازگار ‌با‌قبل (Backward Compatible) بودند، تنها در صورت اجراي سيستم‌عامل‌هاي 64 بيتي (مثل ويندوز 2003 نسخه 64) و همچنين اجراي برنامه‌هاي 64 بيتي، مي‌توانستند قدرت خودشان را به نمايش بگذارند.


در حالي كه در زمان اجراي 32‌بيتي بر روي سيستم‌عامل‌هاي 32‌بيتي، تنها چيزهايي كه مي‌توانند عايد اين محيط‌هاي قديمي نمايند، عبارت است از:

- استفاده از فركانس بالاتر جهت اجراي تعداد بيشتري دستورالعمل در واحد زمان


- استفاده از سطوح بالاتر cache (سطح 2) جهت افزايش سرعت د

سترسي به اطلاعات


- استفاده از سيليكون‌هايي با كيفيت بالاتر و داراي تعداد ترانزيستور بيشتر باز هم در راه افزايش سرعت.


به هر روي هر دو شركت سرشناس توليدكننده پردازنده‌هاي 64 بيتي براي كامپيوترهاي x86 مدعي

ساخت

پردازنده‌هاي مذكور با كيفيت بالاتر بوده و در واقع هر دو ادعاي پيشتازي در اين عرصه را دارند.

● راه‌حل‌هاي اينتل


اين راه‌حل‌ها شامل سه دسته پردازنده (بعد از ارائه Xeon DP) و سه مدل پردازنده ايتانيوم به شرح زير است:

در متن اصلی مقاله به هم ریختگی وجود ندارد. برای مطالعه بیشتر مقاله آن را خریداری کنید