للأسف الشديد أننا دائما نسمع او نقول ان 64bit هو افضل وأسرع ...الخ
ما زال الكثير منا لا يعرف علميا الفرق بالتفصيل وأنا شخصيا تبحثت في الموضوع لكن لم افهم كثيرا.
أخبرنا ما تعرفه بشكل علمي مع أمثلة؟
هذه نقاط كتبت عنها في تدوينة قبل سنوات، أنقلها هُنا للفائدة، وكانت خلاصة دراسة وتجارب عدة:
الحاجة الماسة للإنتقال لمعمارية 64 بت كانت بسبب أن معمارية 32 بت لاتدعم ذاكرة أكبر من 4 قيقابايت
لتشغيل نظام تشغيل 64 بت، لابد من توفر معالج ذو معمارية 64 بت
لتشغيل برنامج 64 بت لابد من توفر نظام تشغيل 64 بت
نظام التشغيل 32 بت يُمكن أن يعمل على معالجات 64 بت، لكن لا يمكنه الوصول إلى ذاكرة أكبر من 4 قيقا
برامج 32 بت يُمكن أن تعمل في نظام تشغيل 64 بت، وبالتالي في معالج 64 بت
لايمكن تشغيل نظام تشغيل 64 بت في مُعالج 32 بت
لا يمكن تشغيل برامج 64 بت في نظام تشغيل 32 بت، حتى لو كان المعالج 64 بت
يمكن أن تستفيد برامج 32 بت من الذاكرة الكبيرة (اكبر من 4 قيقا) في نظام تشغيل 64 بت، وذلك عند تشغيل عدد من البرامج في نفس الوقت، لكن البرنامج الواحد لا يستطيع استخدام أكثر من 2 قيقا أو 4 قيقا من الذاكرة
يمكن للبرنامج الواحد إذا كان 64 بت الوصول أو استخدام ذاكرة أكبر من 4 قيقا لوحده في نظام تشغيل 64 بت
يمكن أن تكون البرامج اسرع في معمارية 64 بت في بعض الحالات، وفي بعض الحالات تكون أبطأ من نظيرتها 32 بت، وذلك يعتمد على طبيعة البرنامج وكيفية تعريفه لنوع المتغيرات وإستفادته من مسجلات المعالج الجديدة في نظام 64 بت
البرامج المكتوبة بلغة جافا يُمكن أن تعمل مع نظام تشغيل 32 بت أو 64 بت بدون تغيير أو إعادة ترجمة، فقط المهم هو الآلة الإفتراضية VM حيث توجد واحدة لنظام التشغيل 32 بت وأخرى لنظام التشغيل 64 بت، يجب فقط الحرص على إختيار الآلة الإفتراضية للجافا عند تثبيتها
عند برمجة البرامج الطبيعية Native مثل المُنتجة بلغة سي، سي++، وفري باسكال، ودلفي، يجب إنتاج ملفات تنفيذية ذات 32 بت وأخرى ذات 64 بت كُل على حده وذلك لدعم المعماريتين، أو على الأقل إنتاج نسخة ذات 32 بت لضمان أن يعمل في المعماريتين
بالنسبة لتعريفات العتاد الـ Device Drivers فلابد أن تكون 64 بت في نظام 64، وذلك لأنها تعمل بالتوازي مع نظام التشغيل
في بيئة وندوز 64 بت يتم تثبيت برامج 32 بت في الدليل Program Files (x86) والبرامج ذات الـ 64 بت في الدليل Program Files
في بيئة وندوز يُمكن معرفة أن البرنامج الذي يعمل هل هو 32 أم 64 بواسطة الـ Task Manager في القسم Processes، البرنامج ذو 32 بت تكون في نهاية إسمه العلامة *32 أما البرنامج 64 بت فلاتكون هُناك علامة مع إسمه
في بيئة لينكس يمكن معرفة أن النظام 32 بت أم 64 بت بواسطة الأمر uname -m فإذا كان الناتج i686 معناها أن نظام التشغيل 32 بت، أما إذا كان x86_64 فيعني أن النظام 64 ب
يُمكن الإستفادة من الذاكرة اﻷكبر من 4 قيقا في نظام تشغيل 32 بت وذلك باستخدام الميزة PAE Physical Address Extension والتي تسمح للوصول إلى 64 قيقا بايت من الذاكرة، لكن البرنامج الواحد لا يمكنه الوصول إلى أكثر من 4 قيقا من الذاكرة.
بالمختصر :
الأجهزة التى تتمتع بدعم 64 bit هى التى يكون على ال motherboard الخاص بها bus يسمح بنقل (كلمات) بطول 64 bit
الكلمات المقصودة هى لغة الآلة 0 . 1 .... فمثلاً ( 0111011011010010101010100101010101101001001011001010 ) هذه كلمة
هذه الأجهزة إذا قمت بتركيب نظام 32 bit عليها فأنت لا تستغلها بكامل طاقتها . أما إذا قمت بتركيب 64 bit عليها فإنك تستغلها بكامل طاقتها
ال bus هو ما المسارات الموجوده فى ال motherboard و التى تنقل البيانات فيما بين ال ( processor متضمنا ال cache و ال registers ) و ( ال ram )
لم "للاسف الشديد" ؟؟؟ بالفعل 64 بت اسرع وافضل والخ ايضاً :)
اعطيك الملخص, الآن معظم التوجه والتطوير يتجه الى التطوير ببيئة 64 بت, السبب انه 3 جيجا رام لم تعد تكفي وانظمة 32 لا تستطيع استثمار اكثر من 3.6 جيجا. عموماً هذا سبب سطحي, لكن معالجة البيانات واستغلال قطع الهاردوير لديك بكامل طاقتها اصبح امر ملح, لاسباب ايضاً تتعلق ليس فقط بالمعالجة وسرعتها ولكن ايضاً استهلاك اقل للطاقة وحرار اقل, اجهزة الحاسب ككقطع تدعم الـ64 من تقريباً اكثر من 10 سنين, لكن للاسف الكل متخوف من ان لا يعمل برنامج لديه مثلاً على نظام 64 بت, او اصلاً لا يحتاجه لانه لا يحاج لاكثر من 3 جيجا رام.
لكن اقول لك انا استخدم 64 بت من 5 سنين, لم يصادفني اي برنامج لا يعمل عليه حتى لو 32 فتقريباً كل البرامج تعمل, واذا صادفت برنامج لا يعمل كاوفيس او برامج اخرى فاجد ان الشركة نفسها توفر نسخة لاجهزة 64 بت. التردد الآن في الفترة احالية مضيعة وقت, اجهزة الهواتف المحمولة بدأت تتجه لـ64 بت ونحن ما زلنا متخوفين؟
بالمناسبة ماذا لو قلت لك انه فعلاً بدأت بعض الانظمة الثانوية في بيئات المطوريت تعمل على 128 بت ! ماذا لو قلت لك انه هنالك ما يعمل على اكثر من 128 بت, ككروت الشاشة.
الكلام يطول. لكن دعني أجيبك باختصار وبكلام بسيط. ولنقل أن الحواسيب تطحن الأرقام ثم تخبرنا بالنتيجة فإن معمارية الحاسوب هي حجم اللقمة الواحدة. الحواسي ذات حجم اللقمة الأصغر تحتاج وقت أطول حتى تنهي معالجة نفس الصحن من البيانات.
إذا كنت تستعمل أردوينو (لو تعليمي) فهو يحتوي على معالج ذي 8-بت ومع ذلك يمكنك القيام بعمليات على أرقام ذات 32-بت.
بعض الأخوة قال أن المعالجات ذات 32-بت غير قادرة على استيعاب رام أكثر من 4 غيغا لكن هذا غير صحيح تماما حيث يمكن استعمال نواة بتقنية PAE.
PAE (Physical Address Extension) support for systems with more than 4GB of RAM, and reliably up to 16GB.
وكل شيء له عيوبه مثلا برامج 64-بت حجمها أكبر لأن العناوين (المؤشر pointer في لغة سي) له ضعف الحجم.
لمثل هذا هناك شيء يسمى varint كما في بروتوكول بفر أو مشروعي المتواضع هذا
مثل ما قال Adil Ad:
64Bit تسمح بمرور البيانات بشكل اكبر وتدفق اعلي من 32Bit
نقاط أخرى:
يمكنك الحساب بأعداد أكبر دفعة واحدة و مباشرة، كذلك تخزين الأعداد و البيانات في الرام، هذا قد يجعلك تستغني عن arbitrary precision arithmetic (مكتبات تمكنك من القيام بعمليات الحسابية مع أعداد مركبة أكثر من 32 بت كمثال) في بعض الحالات، مما يزيد الأداء كثيرا.
لديك مزرعة فيها شبكة مواسير مياه بعرض ربع إنش تغذي أحواض زراعية
فجأة ظهرت في السوق أحواض جديدة لديها القدرة على استيعاب كمية مضاعفة من البذور والتراب
لو أردت الاستفادة من الأحواض الجديدة فإنك ستعاني من تشغيل المياه وقت مضاعف لملء الحوض لأن التدفق ثابت والكمية المطلوبة تضاعفت وبالتالي فإن كبر زيادة الكمية سيقابلها زيادة في الوقت وبالتالي حصلنا على النتيجة بنفس الوقت السابق ولم نستفد
ما الحل
تقوم بتغيير شبكة المواسير إلى القياس نصف إنش أو حتى إنش إن وجد
حينها سينخفض الوقت المطلوب لملء الأحواض وبالنتيجة سيكون لديك محصول مضاعف في نفس الزمن الذي كان يتم من قبل
إذا المواسير هي سعة تدفق البيانات في واحدة الزمن
و الأحواض هي العناصر الإلكترونية المستهدفة والتي هي الأجزاء ذات البنية التي يمكنها أن تستقبل وتتفاعل مع الكميات الجديدة من البيانات التي تصلها في واحدة الزمن
وبالتالي الحصول على نتائج مضاعفة في نفس الوقت أو الحصول على النتائج مع انخفاض الزمن للنصف
وحتى نستفيد بشكل كامل يجب أن تكون الشبكة كلها بنفس السعة الجديدة لأن وجود أي عقدة بسعة صغيرة سيعرقل الأمر ولن نستفيد
تماما كما لو وصلت أنبوب مياه بسعة إنش ولكنه يمر على وصلة بربع إنش فإن الخارج هو ربع إنش من المياه
التعليقات