PDA

نسخه کامل مشاهده نسخه کامل : تفاوت های پردازنده های 32 و 64 بیتی



safir_filthy
12-12-2006, 09:33
محدودیتی که در دامنه پردازش*های 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 Address ware کامپایل شده*اند قادر خواهند بود تا 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 بیتی در بسیاری از نرم*افزارهای مختلف خواهیم بود.