پردازش 64 بیتی چگونه انجام می گیرد ؟

پردازش 64 بيتي، به عمليات پردازشي اتلاق مي شود که بر روي دستورالعمل ها يا داده ها با حداکثر طول 64 بيت صورت مي گيرد. اين مشخصه مستقيماً به توانايي ثبات هاي پردازنده ارجاع داده مي شود.

ثبات، بخش کوچکي از حافظه فوق العاده سريعي است که پردازنده براي ذخيره ارزش هاي عملياتي از ان استفاده مي کند. به عيارتي ثبات ها براي پردازنده، مشابه دست هايي هستند که اشيايي که قرار است بر روي آنها عمل خاصي صورت پذيرد را نگهداري مي نمايند. بنابراين، تعداد ثبات ها و ظرفيت ذخيره سازي آنها، در کارايي پردازنده تاثير گذارند.

يک پردازنده 64 بيتي، توانايي ذخيره سازي ارزش هاي 64 بيتي را در داخل ثبات ها خود دارد، لذا اين پردازنده مي تواند اعداد صحيح يا اعداد با مميز شناور بزرگتري را در داخل يک ثبات خود، نسبت به پردازنده 32 بيتي ذخيره سازي موقت کند. به عنوان مثال براي پردازش عمليات جمع دو عددمانند 2+3، هر يک از ارزش ها تا زمان پايان يافتن عمل جمع، در داخل يک ثبات ذخيره مي شوند و ارزش 5 نيز به منزله حاصل و نتيجه پردازش در داخل سومين ثبات ذخيره گشته و جهت انتقال به خارج، انتظار مي کشد.

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

ضمن اينکه بهره گيري از ثبات هاي 64 بيتي، تنها زماني به عنوان مزيت يک پردازنده به شمار مي آيد که نرم افزارهاي اجراي روي آن، در محدوده عددي فراتر از 32 بيت برنامه ريزي شده باشند. در غير اينصورت، پردازنده 64 بيت، يا از اجراي دستورالعمل فوق امتناع مي کند (مانند که تنها پردازنده هاي Itanium 2 براي کاربرد هاي 64 بيتي طراحي شده اند) يا اينکه در حال سازگار 32 بيتي، پردازش را انجام مي دهند.

در حقيقت عدم وجود بسترهاي نرم افزاري، رويکرد به پردازش 64 بيتي را در اغلب کاربرد ها، غير ممکن ساخته است و به همين دليل پردازنده هاي 64 بيتي اينتل و اي ام دي، به عنوان پردازنده هاي سازگار با هر دو نوع نرم افزار 32 بيت و 64 بيت، در سه حالت زير مديريت مي شوند:



1.حالت 64 بيت که ويژه سيستم عامل و نرم افزار هاي 64 بيتي در نظر گرفته شده است.


2.حالت Compatibility که براي سيستم عامل 64 بيتي و سازگاري آن با برنامه هاي 32 بيتي طراحي شده است.


3.حالت Legacy ويژه سيستم عامل و نرم افزارهاي 32 بيتي.

پس برای اجرای یک نرم افزار 64 بیتی نیاز به پردازنده 64 بیتی، سیستم عامل 64 بیتی و نرم افزار 64 بیتی اجتناب ناپذیر است.

مرجع تخصصی و رایگان ویبولتین در ایران | ویکی وی بی

البته مزيت پردازنده 64 بيتي، تنها در افزايش سرعت محاسبات خلاصه نمي شود. در واقع افزايش ظرفيت حافظه اي که اين پردازنده مي تواند آدرس دهي و استفاده نمايد نيز، مزيت ديگر يک پردازنده 64 بيتي مي باشد.

فراموش نشود، آدرس دهي حافظه، يکي از وظايف کليدي هر پردازنده به شمار مي رود که طول هر آدرس بايد حداکثر به اندازه يک ثبات پردازنده تعريف شود.

در يک پردازنده با ثبات هاي 32 بيتي، حداکثر مي تواند 232 آدرس مختلف براي حافظه ايجاد نمود که اين عدد، معادل 4 گيگابايت حافظه فيزيکي ترجمه مي شود. البته تا کنون شيوه هاي مختلفي ابداع گشته اند که به صورت مجازي، حداکثر حجم حافظه اي را که پردازنده 32 بيتي مي تواند آدرس دهي نمايد، افزايش دهند، اما همگي آنها کارايي کلي کامپيوتر را قرباني محاسبات مجازي مي کنند.

اين در حاليست که دو برابر کردن طول ثبات ها به 64 بيت در پردازنده هاي 64 بيتي، به طور موثري، آدرس دهي حداکثر 16 ترابايت حافظه فيزيکي را امکانپذير مي سازد.

مرجع تخصصی و رایگان ویبولتین در ایران | ویکی وی بی

تفاوت پردازنده های ۳۲ و ۶۴ بیتی

محدودیتی که در دامنه پردازش های ۳۲ بیتی وجود دارد، همواره باعث کندشدن سرعت انجام عملیات پیچیده و سنگین اطلاعاتی در سیستم های مختلف می گردد. به همین منظور بسیاری از شرکت های سازنده نرم افزار و خصوصاً آن هایی که در زمینه سیستم عامل فعالیت دارند از دیرباز رقابتی را برای تحت پوشش قراردادن تعداد زیادتری CPU و مقدار بیشتری حافظه RAM نسبت به یکدیگر آغاز کرده اند. به عنوان مثال رقابتی که بین ویندوز ۲۰۰۰ سرور با سولاریس یا انواع یونیکس و لینوکس بر سر امکان استفاده از ۸ یا ۱۶ تا ۳۲ پردازنده به همراه چند گیگابایت حافظه RAM و امثال آن وجود داشت همواره یکی از جالب ترین و پرسروصداترین زمینه رقابت بین چند سیستم عامل به شمار می رفت. اما همه این عوامل چندی پیش تحت الشعاع واژه جدیدی به نام پردازش ۶۴ بیتی قرار گرفت. این فناوری جدید که به لطف به بازار آمدن دو محصول جدید از دو شرکت معتبر سازنده پردازنده یعنی اینتل و AMD شکل گرفت، در مدت کوتاهی توانست توجه سازندگان سیستم عامل را به شدت معطوف کارایی بی نظیر خود کند. پردازنده های Xeon و ایتانیوم از سوی اینتل و پردازنده Opteron از طرف AMD در مدت کوتاهی توجه تمام سازندگان مشهور سرورهای Enterprise و همچنین تولیدکنندگان سیستم عامل را به خود جلب کرد. در این میان مایکروسافت نیز بلافاصله اقدام به طراحی نسخه ای از ویندوز ۲۰۰۳ سرور برمبنای انجام پردازش های ۶۴ بیتی و با استفاده از پردازنده های جدید نمود. این نسخه جدید ۶۴ بیتی از چند نظر بر نسخه پیشین خود برتری داشت. اول این که از میزان حافظه فیزیکی و مجازی بیشتری پشتیبانی می کند. دوم این که در مقایسه با نسخه ۳۲ بیتی از کارایی و سرعت بالاتری در مدیریت حافظه، رجیسترها و عملیات O/I برخوردار است. نکته سوم در مورد امنیت است. نسخه ۶۴ بیتی قابلیت محافظت بیشتری در برابر کدهای مخرب(Malicious Code) از خود نشان می دهد. طبق پیش بینی های انجام گرفته تا پایان سال ۲۰۰۵ میلادی کلیه کامپیوترهایی که قرار است نقش سرور را در مراکز بزرگ اقتصادی داشته باشند به سمت ریزپردازنده و سیستم عامل ۶۴ بیتی سوق پیدا خواهند کرد. همین پیش بینی حاکی از تمایل شدید کامپیوترهای دسکتاپ به سمت استفاده از تکنولوژی ۶۴ بیتی تا پایان سال ۲۰۰۶ میلادی است. براین اساس به تدریج نه فقط سازندگان سیستم عامل مثل مایکروسافت سیستم عامل ۶۴ بیتی مختص کامپیوترهای دسکتاپ (Windows XP ۴۶ bit) را به بازار عرضه می کنند، بلکه سایر تولیدکنندگان نرم افزارهای مختلف هم با وارد شدن به دنیای پردازش های ۶۴ بیتی، کارایی و سرعت جدیدی را به کاربران خود ارائه می دهند.

مرجع تخصصی و رایگان ویبولتین در ایران | ویکی وی بیمرجع تخصصی و رایگان ویبولتین در ایران | ویکی وی بی



مرجع تخصصی و رایگان ویبولتین در ایران | ویکی وی بی

● مقایسه

در یک سیستم عامل ۳۲ بیتی مثل نسخه های ۳۲ بیتی ویندوز ۲۰۰۳ از یک حافظه مجازی (Virtual memory) برای انجام پردازش های مختلف استفاده می شود. این حافظه مجازی که حداکثر ۴ گیگابایت می تواند ظرفیت داشته باشد به دو قسمت تقسیم می شود. یک قسمت ۲ گیگابایتی آن به وسیله برنامه در حال اجرا شده و ۲ گیگابایت دیگر در اختیار سیستم عامل قرار می گیرد. تا اینجا همه چیز بسیار عادی به نظر می رسد اما مشکل زمانی پیش می آید که ۲ گیگابایت سهم برنامه های در حال اجرا به مرز پرشدن نزدیک می شود. به عنوان مثال یک بانک اطلاعاتی SQL Server را در نظر بگیرید که برای اتصال هر کاربر به سرور و انجام عملیات موردنظر وی ۲۰ مگابایت حافظه مجازی را در نظر می گیرد. با رسیدن تعداد کاربران به مرز ی....د نفر، کل حافظه مجازی ۲ گیگابایتی در اختیار SQL Server قرار می گیرد و این به معنای نزدیک شدن سیستم به یک نقطه بحرانی در عملیات سرویس دادن به کاربران است. در نسخه های ۳۲ بیتی یکی از راه هایی که برای این مسأله در نظر گرفته می شد، اختصاص ۳ گیگابایت از حافظه مجازی به برنامه های درحال اجرا بود. این روش که با استفاده از دستکاری در فایل boot.ini انجام می گرفت، یک گیگابایت از حافظه مجازی در اختیار سیستم عامل را به سهمیه حافظه مجازی برنامه های در حال اجرا واگذار می کرد و تا حدودی مشکل کمبود حافظه مجازی را رفع می کرد. اما خود این عمل هم عوارض جانبی خاص خود را دارد و آن محدود شدن کرنل سیستم عامل به یک گیگابایت حافظه مجازی برای انجام عملیات cache است.

این محدود شدن باعث افت سرعت انتقال اطلاعات از سرور به کلاینت ها می شود. ضمن این که باز هم در نهایت با زیادترشدن تعداد کاربران یا پردازش های موردنظر آنان، این ۱ گیگابایت الحاق شده نیز به مرز اشتغال شدن کامل نزدیک می شود و مدیران سیستم را به ناچار مجبور به افزایش تعداد سرورها برای رفع مشکل می کند. با آمدن ویندوز ۲۰۰۳ نسخه ۳۲ بیتی، قدرت آدرس دهی سیستم عامل برای حافظه های فیزیکی (RAM) به ۳۲ گیگابایت برای نسخه Enterprise و ۶۴ گیگابایت در نسخه DataCenter افزایش یافت و این به معنای نیاز کمتر سیستم به استفاده از حافظه مجازی و در نتیجه کمتر شدن مشکل مربوط به محدودیت حافظه های مجازی بود. اما به هر حال استفاده از حافظه مجازی برای پردازش اطلاعات امری گریزناپذیر است و به همین دلیل توجه سازندگان سیستم عامل همواره معطوف به پیدا کردن راه حلی برای عبور از این مشکل بود. سرانجام با مطرح شدن و تولد سیستم عامل ۶۴ بیتی ویندوز ۲۰۰۳ که با استفاده از قدرت پردازنده های ۶۴ بیتی جدید قادر بود از یک سیستم آدرس دهی ۴۰ بیتی استفاده کند، میزان حافظه مجازی قابل دسترسی سیستم از ۴ گیگابایت به ۴۰ ۲ یعنی ۱۶ ترابایت (هزار گیگابایت) افزایش یافت. بدین ترتیب ۸ ترابایت از این ظرفیت در اختیار برنامه های در حال اجرا و ۸ ترابایت دیگر در اختیار سیستم عامل قرار گرفت. مهم ترین سؤالی که در این جا می توانست مطرح شود این است که آیا برنامه های سابق محیط ۳۲ بیتی که برای استفاده از حداکثر ۳ گیگابایت حافظه مجازی کامپایل شده اند قادر به بهره بردن از این ۸ ترابایت فضای جدید هستند یا خیر. پاسخ این سؤال هم می تواند مثبت باشد و هم منفی. بدین صورت که برخی برنامه های کامپایل شده در محیط های ۳۲ بیتی که به صورت صریح قدرت استفاده از حداکثر ۳ گیگابایت حافظه مجازی را دارند، با ورود به محیط ۶۴ بیتی هیچ تغییری را احساس نخواهند کرد. اما برخی دیگر که با تکنولوژی Large Address ware کامپایل شده اند قادر خواهند بود تا ۴ گیگابایت از حافظه مجازی را در محیط جدید مورد استفاده قرار دهند. از لحاظ سرعت انجام عملیات نیز برخی برنامه های کامپایل شده در محیط ۳۲ بیتی (مثلاً برنامه های نوشته شده با ASP.NET که از تکنولوژی Multithreading برای اجرای موازی چند دستورالعمل در آن واحد استفاده می کنند)، به دلیل قدرت بی نظیر پردازنده های ۶۴ بیتی در انجام این کار می توانند از مزایای محیط جدید اجرا استفاده کرده و سرعت اجرای خود را افزایش دهند. اما اگر برنامه ای (مثلاً یک فایل Exe) در محیط توسعه ای مثل ویژوال بیسیک نسخه ششم برای دسترسی به یک پایگاه داده و کار با آن بدون استفاده از مکانیسم پردازشی موازی و به صورت ساده نوشته شده باشد، این برنامه حتی اگر برروی یک سرور ۶۴ بیتی هم اجرا شود نمی تواند از قابلیت های محیط جدید سودی ببرد. بنابراین اگر قرار است این برنامه روی کلاینت نصب شده و پایگاه داده موردنظر که SQL Server است روی یک سرور باشد، بهتر آن است که کلاینت در همان وضعیت ۳۲ بیتی باقی بماند و سرور به نسخه ۶۴ بیتی ویندوز ۲۰۰۳ ارتقاء داده شود. در این صورت موتور بانک اطلاعاتی SQL Server که در تمام نسخه های خود از شیوه Multithreading برای انجام دستورات موردنظر کاربران استفاده می کند، می تواند در محیط جدید با سرعت بهتری فرامین رسیده از طرف کلاینت ها را پردازش کرده و نتیجه را سریع تر به آن ها برگرداند و کارایی کلی این سیستم بانک اطلاعاتی را به نحو مطلوبی افزایش دهد.

منبع : PC Pedia