سؤال

أنا جديد في البرمجة وتأتي من خلفية غير CS (بدون درجة رسمية). أنا في الغالب برنامج WinForms باستخدام C #.

أنا مرتبك حوالي 32 بت و 64 بت .... أعني، سمعت حوالي 32 بت OS، معالج 32 بت واستنادا إلى أي برنامج يمكن أن يكون له ذاكرة أقصى. كيف يؤثر على سرعة البرنامج. هناك الكثير من الأسئلة التي تظل في الذهن.

حاولت الذهاب من خلال بعض منظمات الكمبيوتر وكتب الهندسة المعمارية. ولكن، إما أنني غبي جدا لفهم ما هو مكتوب هناك أو الكتاب يفترض أن القارئ لديه بعض خلفية CS.

هل يمكن لشخص ما يفسرني هذه الأشياء في اللغة الإنجليزية البسيطة البسيطة أو توجيه لي إلى شيء يفعل ذلك.

تعديل: لقد قرأت أشياء مثل في وضع 32 بت، يمكنهم الوصول إلى ذاكرة تصل إلى 4 جيجابايت؛ في وضع 64 بت، يمكنهم الوصول إلى أكثر من ذلك بكثير .... أريد أن أعرف لماذا لجميع هذه الأشياء.

باون: الإجابات أدناه جيدة حقا .... esp واحد من مارتن. ولكن، أنا أبحث في تفسير شامل، ولكن في اللغة الإنجليزية البسيطة البسيطة.

هل كانت مفيدة؟

المحلول

انها حقا كل شيء يأتي إلى الأسلاك.

في الدوائر الرقمية، يمكن نقل فقط 0 والجهد المنخفض عادة والجهد العالي) من عنصر واحد (وحدة المعالجة المركزية) إلى عنصر آخر (رقاقة الذاكرة). إذا كان لدي سلك واحد فقط، يمكنني فقط إرسال إما 1 أو 0 فوق الأسلاك لكل دورة على مدار الساعة. هذا يعني أنه يمكنني معالجة فقط 2 بايت (بافتراض عنوان البايت، وأن العناوين بأكملها تنتقل في دورة واحدة فقط للسرعة!).

إذا كان لدي 2 أسلاك، يمكنني معالجة 4 بايت. لأنني أستطيع إرسال: (0، 0)، (0، 1)، (1، 0)، أو (1، 1) على الأسلاك. لذلك في الأساس انها 2 إلى قوة # من الأسلاك.

لذلك إذا كان لدي 32 أسلاك، يمكنني معالجة 4 جيجابايت، وإذا كان لدي 64 أسلاك، يمكنني معالجة المزيد أكثر من ذلك بكثير.

هناك حيل أخرى يمكن للمهندسين القيام به لمعالجة مساحة عنوان أكبر من الأسلاك التي تسمح بها. على سبيل المثال تقسيم العنوان إلى جزأين وإرسال نصفه في الدورة الأولى والنصف الثاني في الدورة التالية. ولكن هذا يعني أن واجهة الذاكرة الخاصة بك ستكون نصف بأسرع.

تحرير تعليقاتي هنا (غير محررة)؛) وجعلها ويكي إذا كان أي شخص لديه أي شيء مثير للاهتمام أن تضيف كذلك.

مثل التعليقات الأخرى المذكورة، 2 ^ 32 (2 إلى قوة 32) = 4294967296، وهو 4 جيجابايت. و 2 ^ 64 هو 18،446،744،073،709،709،551،616. للحفر في مزيد من (وربما تقرأ هذه المعالجات في Hennesey & Patterson) تحتوي على سجلات تستخدمها ك "مساحة خدش" لتخزين نتائج حساباته. يعرف وحدة المعالجة المركزية فقط كيفية القيام بحرصي بسيط وتعرف كيفية نقل البيانات حولها. بطبيعة الحال، حجم هذه السجلات هو نفس العرض في البتات باعتباره "# -Bits" للهندسة المعمارية، لذلك ستكون سجلات وحدة المعالجة المركزية 32 بت على مصراعي 32 بت، وسوف تكون سجلات وحدة المعالجة المركزية 64 بت ستكون 64 بت واسع.

ستكون هناك استثناءات لهذا الوقت عندما يتعلق الأمر بالنقطة العائمة (للتعامل مع الدقة المزدوجة) أو تعليمات SIMD الأخرى (التعليمات الفردية، أوامر بيانات متعددة). الأحمال وحدة المعالجة المركزية وتحفيز البيانات من وإلى الذاكرة الرئيسية (ذاكرة الوصول العشوائي). نظرا لأن وحدة المعالجة المركزية تستخدم أيضا هذه السجلات لحساب عناوين الذاكرة (الفيزيائي والظاهري)، فإن مقدار الذاكرة التي يمكن أن تعالجها هي نفس عرض سجلاتها. هناك بعض وحدات المعالجة المركزية التي تتعامل مع حساب العناوين بسجلات ممتدة خاصة، لكن تلك التي أسمها "بعد الأفكار" المضافة بعد أن أدرك المهندسين أنهم بحاجة إليها.

في الوقت الحالي 64 بت كبير تماما لمعالجة الذاكرة الفعلية الحقيقية. ستحذف معظم وحدات المعالجة المركزية 64 بت قليلة من الأسلاك عندما يتعلق الأمر بأسلاك وحدة المعالجة المركزية إلى الذاكرة بسبب العملي. لن يكون من المنطقي استخدام العقارات اللوحة الأم الثمينة لإدارة الأسلاك التي ستكون لديك دائما 0. ناهيك من أجل الحصول على أقصى كمية من ذاكرة الوصول العشوائي مع كثافة DIMM اليوم ستتطلب 4 مليارات فتحات DIMM :)

بخلاف زيادة مقدار الذاكرة المتزايد، تقدم معالجات 64 بت حساب أسرع للأرداد الصحيحة أكبر من 2 ^ 32. سيتعين على المبرمجين (أو المترجمين المبرمجين) السابقون أيضا محاكاة وجود سجل 64 بت من خلال تناول سجلتين 32 بت ومعالجة أي حالات تجاوز الفائض. ولكن على وحدة المعالجة المركزية 64 بت التي سيتم التعامل معها بواسطة وحدة المعالجة المركزية نفسها.

السعادة هي أن وحدة المعالجة المركزية 64 بت (مع كل شيء متساوي) سيستهلك أكثر قوة من وحدة المعالجة المركزية 32 بت فقط بسبب (تقريبا) ضعف مقدار الدوائر اللازمة. ومع ذلك، في الواقع، لن تحصل على مقارنة متساوية أبدا لأن وحدة المعالجة المركزية الأحدث ستتم تصنيعها في عمليات السيليكون الأحدث التي تحتوي على تسرب طاقة أقل، وتتيح لك حشر المزيد من الدائرة في نفس حجم الموت، وما إلى ذلك. لكن الهندسة 64 بت تستهلك ضعف الكثير ذاكرة. ما كان يعتبر ذات مرة "قبيحة" من طول التعليمات المتغيرة ل X86 هو في الواقع ميزة مقارنة بالبنية التي تستخدم حجم التعليمات الثابتة.

نصائح أخرى

دعونا نحاول الإجابة على هذا السؤال من خلال النظر اشخاص عكس أجهزة الكمبيوتر; ؛ نأمل أن هذا سوف يلقي بعض الضوء على الأشياء لك:

أشياء لتأخذها بالحسبان

  • مذهلة كما هي، أجهزة الكمبيوتر هي غبية جدا جدا.

ذاكرة

  • لدى الناس ذاكرة (باستثناء، يمكن القول، والأزواج والسياسيين.) يخزن الناس المعلومات في ذاكرتهم للاستخدام لاحقا.
    • مع سؤال (على سبيل المثال، "ما هو رقم هاتفك؟") الشخص قادر على استرداد المعلومات لإعطاء إجابة (على سبيل المثال، "867-5309")
  • جميع أجهزة الكمبيوتر الحديثة لديها ذاكرة، وتخزين المعلومات في ذاكرتها للاستخدام لاحقا.
    • لأن أجهزة الكمبيوتر غبية، لا يمكن طرحها إلا سؤال محدد للغاية لاسترداد المعلومات: "ما هي القيمة في عاشر في ذاكرتك؟ "
      • في السؤال أعلاه، عاشر يعرف باسم عنوان, ، والتي يمكن أيضا أن تسمى مؤشر.

لذلك لدينا فرق أساسي بين الأشخاص والأجهزة الكمبيوتر: لتذكر المعلومات من الذاكرة، تحتاج أجهزة الكمبيوتر إلى إعطاء عنوان, ، في حين أن الناس لا. (بمعنى، يمكن للمرء أن يقول "رقم هاتفك" هو عنوان لأنه يعطي معلومات مختلفة عن "عيد ميلادك"، ولكن هذا محادثة أخرى.)

أعداد

  • يستخدم الناس نظام رقم عشري. وبعد هذا يعني أن كل رقم في عدد عشري، يمكن أن يكون الرقم واحد من 0 أو 1 أو 2 أو 3 أو 4 أو 5 أو 6 أو 7 أو 8 أو 9. عشرة خيارات لكل رقم.
  • جميع أجهزة الكمبيوتر الحديثة تستخدم نظام الرقم الثنائي. وبعد هذا يعني أن كل رقم في عدد ثنائي، يمكن أن يكون الرقم فقط إما 1 أو 0. اثنين خيارات لكل رقم.
    • في جريغون الكمبيوتر، يسمى رقم ثنائي واحد قليل, ، باختصار ل بحفر البيضاءهو - هي.

عناوين

  • كل عنوان في الكمبيوتر هو رقم ثنائي.
  • كل عنوان في جهاز كمبيوتر لديه عدد أقصى عدد من الأرقام (أو البتات) التي يمكن أن يكون لها. هذا في الغالب لأن أجهزة الكمبيوتر غير مرنة (المعروفة أيضا باسم مثبت) ويحتاج إلى معرفة الوقت الذي ستكون فيه العنوان طويلا فقط.
  • تتحدث مصطلحات مثل "32 بت" و "64 بت" عن أطول عنوان يمكن أن يقوم جهاز كمبيوتر بتخزين المعلومات واستردادها. في اللغة الإنجليزية "32 بت" يعني "هذا الكمبيوتر يتوقع تعليمات حول ذاكرته أن يكون لديك عناوين لا تزيد عن 32 رقما ثنائيا."
    • كما يمكنك أن تتخيل، كلما تمكن الكمبيوتر من التعامل مع العنوان لفترة أطول التي يمكن أن تبحث عنها، وبالتالي فإن المزيد من الذاكرة التي يمكنها إدارتها في وقت واحد.

32 بت v. عنوان 64 بت

  • للحصول على عدد غير مرن (ثابت) من الأرقام (مثل 2 رقما عشريا) الأرقام المحتملة التي يمكنك تمثيلها تسمى نطاق (على سبيل المثال 00 إلى 99، أو 100 أرقام فريدة). إضافة تضاعف رقم عشري إضافي تضاعف نطاق 10 (على سبيل المثال 3 أرقام عشرية -> 000 إلى 999، أو 1000 أرقام فريدة من نوعها).
  • هذا ينطبق على أجهزة الكمبيوتر أيضا، ولكن لأنهم الثنائية آلات بدلا من عدد عشري الآلات، إضافة رقم ثنائي إضافي (قليل) يزيد فقط من النطاق بعامل 2.

    معالجة النطاقات:
    • يتيح لك عنوان 1 بت الكلام عن عناوين فريدة من نوعها (0 و 1).
    • يتيح لك عنوان 2 بت الكلام عن 4 عناوين فريدة من نوعها (00، 01 و 10 و 11).
    • يتيح لك معالجة 3 بت الكلام عن 8 عناوين فريدة من نوعها (000، 001، 010، 011، 100 و 101 و 110 و 111).
    • وبعد فترة طويلة ... يتيح لك معالجة 32 بت الكلام عن عناوين فريدة من 4،294،967،296.
    • وبعد an. حتى لفترة أطول في حين... يتيح لك عنوان 64 بت الكلام عن عناوين فريدة من نوعها حوالي 18446،709،709،709،5516. هذا كثيرا الذاكرة!

آثار

ما يعنيه كل هذا هو أن جهاز كمبيوتر 64 بت يمكنه تخزين واسترداده كثير مزيد من المعلومات من كمبيوتر 32 بت. بالنسبة لمعظم المستخدمين، فإن هذا حقا لا يعني الكثير لأن الأمور مثل تصفح الويب، والتحقق من البريد الإلكتروني واللعب سوليتير جميع يعمل بشكل مريح داخل حدود معالجة 32 بت. حيث ستظل فائدة 64 بت حقا في المجالات التي لديك الكثير من البيانات، سيتعين على الكمبيوتر بالتوازن. تتمثل معالجة الإشارات الرقمية، والتصوير الفوتوغرافي في Gigapixel والألعاب ثلاثية الأبعاد المتقدمة جميع المجالات التي ستشهد فيها كمياتهم الهائلة من معالجة البيانات دفعة كبيرة في بيئة 64 بت.

يمكن أن تعمل العديد من المعالجات الحديثة في وضعين: وضع 32 بت، ووضع 64 بت. في وضع 32 بت، يمكنهم الوصول إلى ذاكرة تصل إلى 4 جيجابايت؛ في وضع 64 بت، يمكنهم الوصول إلى أكثر من ذلك بكثير. المعالجات الأكبر سنا تدعم فقط وضع 32 بت.

اختارت أنظمة التشغيل استخدام المعالجات في إحدى هذه الأوضاع: في وقت التثبيت، يتم اختيار الاختيار ما إذا كنت تريد تشغيل المعالج في وضع 32 بت أو في وضع 64 بت. على الرغم من أن المعالج يمكن أن يستمر في التشغيل في وضع 64 بت، فإن التبديل من 32 بت إلى 64 بت تتطلب إعادة تثبيت النظام. أنظمة الأقدم تدعم فقط وضع 32 بت.

يمكن أيضا كتابة التطبيقات في وضع 32 بت مترجم) 32 بت أو 64 بت. التوافق هنا أكثر صعوبة، حيث أن المعالج، عند تشغيله في وضع 64 بت، لا يزال بإمكانه دعم التطبيقات 32 بت كمرافق مضاهاة. لذلك على نظام التشغيل 64 بت، يمكنك تشغيل تطبيقات 32 بت أو تطبيقات 64 بت. على نظام تشغيل 32 بت، يمكنك تشغيل تطبيقات 32 بت فقط.

مرة أخرى، فإن تخفيف الحجم هو في المقام الأول مسألة مقدار الذاكرة الرئيسية التي تريد الوصول إليها. غالبا ما يقتصر التطبيقات 32 بت على 2 جيجابايت على العديد من الأنظمة، لأن النظام يحتاج إلى بعض مساحة العنوان لنفسه.

من وجهة نظر الأداء (السرعة)، لا يوجد فرق كبير. قد تكون تطبيقات 64 بت أبطأ بعض الشيء لأنها تستخدم مؤشرات 64 بت، لذلك يحتاجون إلى مزيد من الوصول إلى الذاكرة لعملية معينة. في الوقت نفسه، قد يكون ذلك أسرعا بعض الشيء، حيث يمكنهم القيام بعمليات عدد صحيح 64 بت كتعليم واحد، في حين يحتاج معالجات 32 بت إلى محاكاة تعليمات متعددة. ومع ذلك، تلك العمليات عدد صحيح 64 بت غير شائع إلى حد ما.

قد يتساءل المرء أيضا عن تكلفة تشغيل تطبيق 32 بت على معالج 64 بت: على معالجات AMD64 و Intel64، فإن وضع المضاهاة هذا في الغالب في الأجهزة، لذلك لا يوجد فقدان أداء حقيقي على تشغيل التطبيق 32 بت أصلي. هذا مختلف بشكل كبير على إيتانيوم، حيث يتم محاكات تطبيقات 32 بت (x86) سيئة للغاية.

اسمحوا لي أن أقول لك قصة بنفيل، بلدة صغيرة في منتصف اللا مكان. كان لدى بنفيل طريق واحد يؤدي إليه. كل شخص يأتون إلى أو مغادرة Binville كان على هذا الطريق. ولكن كما اقتربت من المدينة، كان هناك شوكة. يمكنك إما الذهاب إلى اليسار أو الذهاب إلى اليمين.

في الواقع، كان لكل طريق شوكة فيه، باستثناء الطرق التي تؤدي إلى المنازل نفسها. هذه الطرق انتهت ببساطة في المنزل. لم يكن لدى أي من الطرق أسماء؛ لم يحتاجوا إلى أسماء بفضل مخطط مخاطب مبتهجا تم إنشاؤه من قبل لجنة تخطيط بينفيل. إليك خريطة بنفيل، تظهر الطرق والمنازل:

              ------- []  00
             /
       ------
      /      \
     /        ------- []  01
-----
     \        ------- []  10
      \      /
       ------
             \
              ------- []  11

كما ترون، كل منزل لديه عنوان مكون من رقمين. هذا العنوان وحده يكفي إلى أ) تحديد كل منزل بشكل فريد (لا توجد تكرار) و B) أخبرك بكيفية الوصول إلى هناك. من السهل التجول في المدينة، ترى. يتم تصنيف كل شوكة مع صفر أو واحدة، والتي تستدعي لجنة التخطيط تتبع تقاطع بينفيل أو قليل لفترة قصيرة. كما تقترب من أول شوكة، انظر إلى القليل الأول من العنوان. إذا كان الصفر، اذهب إلى اليسار؛ إذا كان الأمر كذلك، فانتقل إلى اليمين. ثم انظر إلى الرقم الثاني عند الوصول إلى الشوكة الثانية، الذهاب إلى اليسار أو اليمين حسب الاقتضاء.

دعنا نقول أنك تريد زيارة صديقك الذي يعيش في بنفيل. تقول إنها تعيش في المنزل 10. عندما تصل إلى أول شوكة بنفيل، فانتقل إلى اليمين (1). ثم في الشوكة الثانية، اذهب إلى اليسار (0). أنت هناك!

يوجد Binville مثل هذا لعدة سنوات، لكن الكلمة بدأت في التجول حول إعدادها المثالي ونظام الحدائق الرائعة والرعاية الصحية الكريمة. (بعد كل شيء، إذا لم يكن عليك أن تنفق المال في علامات الشوارع، فيمكنك استخدامها في أشياء أفضل.) ولكن كانت هناك مشكلة. مع اثنين فقط من بت، كان مخطط العنوان يقتصر على أربعة منازل!

لذلك وضعت لجنة التخطيط رؤوسها معا وتوصلت إلى خطة: إنهم سيضيفون قليلا لكل عنوان، وبالتالي مضاعفة عدد المنازل. لتنفيذ الخطة، سيقومون ببناء شوكة جديدة على حافة المدينة وسيحصل الجميع على عناوين جديدة. إليك الخريطة الجديدة، والتي تظهر شوكة جديدة تؤدي إلى بلدة والجزء الجديد من Binville:

                     ------- []  000
                    /
              ------
             /      \
            /        ------- []  001
       -----                            Old Binville
      /     \        ------- []  010
     /       \      /
    /         ------
   /                \
  /                  ------- []  011
--
  \                  -------     100
   \                /
    \         ------
     \       /      \
      \     /        ------- []  101
       -----                            New Binville (some homes not built yet)
            \        -------     110
             \      /
              ------
                    \
                     -------     111

هل لاحظت أن كل شخص في الجزء الأصلي من بينفيل أضاف ببساطة صفر إلى مقدمة عنوانهم؟ يمثل البتة الجديدة التقاطع الجديد الذي تم بناؤه. عندما يتم زيادة عدد البتات من قبل واحد، عدد العناوين الزوجي. يعرف المواطنون دائما الحد الأقصى لحجم بلدةهم: كل ما كان عليهم فعله هو حساب قيمة اثنين مرفوعة على قوة عدد البتات. مع ثلاثة بت، يمكن أن يكون 23 = 8 منازل.

مرت بضع سنوات وبينفيل مليئة مرة أخرى بالقدرة. أراد المزيد من الناس التحرك، لذلك تمت إضافة بت آخر (جنبا إلى جنب مع التقاطع المطلوب)، مضاعفة حجم المدينة إلى ستة عشر منزلا. ثم بت آخر، وأخرى، وأخرى ... كانت عناوين بنفيل قريبا في ستة عشر بت، قادرة على استيعاب ما يصل إلى 216 (16384) منازل، لكنها لم تكن كافية. أبقى الناس القادمة والقادمة!

لذلك قررت لجنة التخطيط حل المشكلة مرة واحدة وإلى الأبد: سوف يقفزون طوال أيام اثنين وثلاثين بت. مع عناوين كافية لأكثر من أربعة مليارات منازل (232)، بالتأكيد سيكون ذلك كافيا!

وكان ... منذ حوالي خمسة وعشرين عاما، عندما لم تعد بينفيل مدينة صغيرة في منتصف اللا مكان. كان الآن متروبوليس رئيسي. في الواقع، أصبح الأمر كبيرا كأمة كاملة مع مليارات من المقيمين. لكن الحدائق لا تزال لطيفة ولكل شخص رعاية صحية كبيرة، لذلك أبقى السكان ينموون.

في مواجهة السكان المتزايدين، وضعت لجنة التخطيط مرة أخرى رؤوسهم معا واقترح توسع آخر في المدينة. هذه المرة سيستخدمون 64 بت. هل تعرف عدد المنازل التي يمكن أن تناسبها داخل حدود مدينة بينفيل الآن؟ هذا صحيح: 18،446،744،073،709،5951،616. هذا العدد كبير جدا، ويمكننا ملء حوالي ملياري إرادا وإعطاء الجميع عنوانهم الخاص.

استخدام 64 بت لم يكن باناسيا لجميع مشاكل مخاطبهم. تأخذ العناوين ضعف مساحة الكتابة حيث فعلت العناوين القديمة 32 بت. والأسوأ من ذلك، لم يقوم بعض المواطنين بتحديث عناوينهم بعد لاستخدام تنسيق جديد 64 بت، لذلك تم إجبارهم على قسم مسورة من المدينة المحجوزة خصيصا لأولئك الذين لا يزالون يستخدمون عناوين 32 بت. ولكن هذا كان موافق: الأشخاص الذين يستخدمون 32 بت الوصول إلى أكثر من ما يكفي من المدينة لتناسب احتياجاتهم. لم يشعروا بالحاجة إلى التغيير حتى الآن.

سوف 64 بت يكون كافيا؟ من يدري في هذا الوقت، لكن مواطني بنفيل ينتظرون الإعلان عن عناوين 128 بت ...

الجواب مارتن هو الصحيح في الغالب ومفصلة.

اعتقدت أنني سوف أذكر فقط أن كل حدود الذاكرة هي الذاكرة الافتراضية لكل تطبيق الحدود، وليس حدود الذاكرة الفعلية الفعلية في الكمبيوتر. في الواقع، من الممكن العمل مع أكثر من 4 جيجابايت من الذاكرة في تطبيق واحد حتى في أنظمة 32 بت، فإنه يتطلب فقط المزيد من العمل، لأنه لا يمكن الوصول إليه جميعا باستخدام المؤشرات في وقت واحد. رابط النص

شيء آخر لم يتم ذكره هو أن الفرق بين معالج X86 التقليدي و X86-64 ليس فقط في حجم المؤشر، ولكن أيضا في مجموعة التعليمات. في حين أن المؤشرات أكبر وتستهلك المزيد من الذاكرة (8 بايت بدلا من 4) يتم تعويضها بواسطة مجموعة سجل أكبر (15 سجل للأغراض العامة بدلا من 8، IIRC)، وبالتالي فإن الأداء يمكن أن يكون في الواقع أفضل للحصول على التعليمات البرمجية التي تعمل على العمل الحسابي.

إجابة مارتن ممتازة. فقط لإضافة بعض النقاط الإضافية ... منذ أن ذكرت .NET، يجب أن تلاحظ أن CLI / JIT لديه بعض الاختلافات بين x86 و x64، مع تحسينات مختلفة (مكالمة الذيل، على سبيل المثال)، وبعض السلوك المختلفة المتقدم اشياء مثل volatile. وبعد هذا يمكن أن يكون له كل تأثير على التعليمات البرمجية الخاصة بك.

بالإضافة إلى ذلك، لا يعمل كل التعليمات البرمجية على X64. أي شيء يستخدم DirectX أو بعض ميزات COM قد تكافح. ليس حقا أداء ميزة، ولكن من المهم أن تعرف.

(أزلت "DirectX" - قد أتحدث عن القمامة هناك ... ولكن ببساطة: تحتاج إلى التحقق من أن أي شيء تعتمد عليه هو مستقرة في النظام الأساسي الخاص بك)

فكر في ذاكرة كمبيوتر عام كبطاقة بنغو ضخمة مع مليارات المربعات. لمعالجة أي مربع فردي على اللوحة هناك مخطط لتسمية كل صف وعمود B-5، I-12، O-52..Etc.

إذا كانت هناك ما يكفي من المربعات على البطاقة، فسوف تنفد من الحروف، لذلك ستحتاج إلى البدء في إعادة استخدام المزيد من الأحرف وكتابة أرقام أكبر للمتابعة لتتمكن من معالجة كل مربع بشكل فريد.

قبل أن تعرف أنه يصرخ المذيع أرقام هائلة مزججة ومجموعات خطابات لإعلامك بالمربع الذي يجب وضع علامة على بطاقة 10 مليارات مربع. BAZC500000، IAAA12000000، OAAAAAA523111221

تحدد عدد البت من الكمبيوتر حد تعقيد الحروف والأرقام لمعالجة أي مربع معين.

32 بت تعني إذا كانت البطاقة أكبر من 2 ^ 32 المربعات، فلن يكون لدى الكمبيوتر الأسلاك الكافية والتحدث للسماح له بمعالجة جسديا بشكل فريد أي مربع معين مطلوب لقراءة قيمة أو كتابة قيمة جديدة إلى موقع الذاكرة المحدد.

يمكن لأجهزة الكمبيوتر 64 بت معالجة فرديا مربعات ضخمة 2 ^ 64 .. ولكن للقيام بذلك يحتاج كل مربع يحتاج إلى المزيد من الحروف والأرقام للتأكد من أن كل مربعة له عنوان فريد خاص به. هذا هو السبب في أن أجهزة الكمبيوتر 64 بت تحتاج إلى مزيد من الذاكرة.

أمثلة شائعة أخرى على حدود معالجة هي أرقام الهواتف المحلية. هم من 7 أرقام بدوامة 111-2222 أو إعادة تهيئة كرقم 1،112222 .. ما يحدث عندما يكون هناك أكثر من 9،999999 شخصا يريدون أرقام الهواتف المحمولة الخاصة بهم؟ يمكنك إضافة رموز المنطقة والرموز القطرية ورقم هاتفك من 7 أرقام إلى 10 إلى 11 إجراء مساحة أكبر.

إذا كنت على دراية بنقص IPv4 الوشيك في نفس المشكلة .. عناوين IPv4 هي 32 بت معنى هناك فقط 2 ^ 32 (~ 4 مليار) عناوين IP الفريدة ممكنة وهناك الكثير من الأشخاص أكثر من ذلك على قيد الحياة اليوم.

هناك النفقات العامة في جميع المخططات التي ذكرتها (أجهزة الكمبيوتر وأرقام الهواتف أو عناوين IPv4) حيث يتم حجز أجزاء معينة للأغراض التنظيمية حتى تكون المساحة القابلة للاستخدام أقل بكثير.

يعد الأداء بالعالم 64 بت هو أنه بدلا من إرسال 4 بايت في وقت واحد (ABCD) يمكن أن يرسل جهاز كمبيوتر 64 بت 8 بايت في وقت واحد (ABCDEFGH) حتى يتم نقل الأبجدية بين مناطق مختلفة من الذاكرة حتى مرتين بأسرع كمبيوتر 32 بت. هناك أيضا استفادة لبعض التطبيقات التي تعمل فقط بشكل أسرع عندما يكون لديهم المزيد من الذاكرة التي يمكنهم استخدامها.

في معالجات سطح المكتب 64 بت الحقيقي 64 بت من Intel et al ليست حقيقية معالجات 64 بت حقا ولا تزال تقتصر على 32 بت لعدة أنواع من العمليات، لذلك في العالم الحقيقي الأداء بين تطبيقات 32 بت و 64 بت هامشي. يوفر لك وضع 64 بت المزيد من سجلات الأجهزة للعمل معه يحسن الأداء، لكن معالجة المزيد من الذاكرة على معالج "مزيف" 64 بت يمكن أن تؤذي الأداء أيضا في بعض المجالات حتى يغسل بشكل صحيح. في المستقبل، سنرى المزيد من التحسينات الأداء عند تصبح معالجات سطح المكتب 64 بت تماما.

لا أعتقد أنني رأيت الكثير من كلمة "سجل" في الإجابات السابقة. الكمبيوتر الرقمي عبارة عن مجموعة من السجلات، مع المنطق للحساب والذاكرة لتخزين البيانات والبرامج.

ولكن أولا ... تستخدم أجهزة الكمبيوتر الرقمية تمثيل ثنائي للأرقام لأن الأرقام الثنائية ("بت") 0 و 1 ممثلة بسهولة من قبل الدولتين (ON / OFF) من المفتاح. تستخدم أجهزة الكمبيوتر المبكرة التبديل الكهروميكانيكية؛ تستخدم أجهزة الكمبيوتر الحديثة الترانزستورات لأنها أصغر وأسرع. كثير أصغر، و كثير أسرع.

داخل وحدة المعالجة المركزية، يتم تجميع المفاتيح معا في سجلات الطول المحدود، ويتم تنفيذ العمليات عادة في السجلات بأكملها: على سبيل المثال، إضافة هذا التسجيل إلى ذلك، وهلم جرا. كما تتوقع، قامت وحدة المعالجة المركزية 32 بت بسجل 32 بت. أنا تبسيط هنا، ولكن تحمل معي.

من المنطقي تنظيم ذاكرة الكمبيوتر كسلسلة من "المواقع"، كل منها يحمل نفس عدد البتات كتسجيل وحدة المعالجة المركزية: على سبيل المثال، قم بتحميل هذا السجل من موقع الذاكرة هذا. في الواقع، إذا نفكر في الذاكرة بايت, ، هذا مجرد جزء بسيط من السجل ونحن Migh تحميل سجل من سلسلة من مواقع الذاكرة (1، 2، 4، 8).

نظرا لأن الترانزستورات تصبح أصغر، يمكن تنفيذ منطق إضافي لحساب أكثر تعقيدا في المساحة المحدودة لرقاقة الكمبيوتر. وحدة المعالجة المركزية العقارية هي دائما بعلاوة.

ولكن مع تحسينات في تصنيع رقاقة، يمكن إجراء المزيد من الترانزستورات بشكل موثوق على رقائق أكبر قليلا. يمكن أن تكون السجلات أطول ويمكن أن تكون المسارات بينهما أوسع.

عندما تكون السجلات التي تعقد عناوين مواقع الذاكرة أطول، فإنها تتناول الذكريات الكبيرة والبيانات يمكن التلاعب بها في قطع أكبر. بالاشتراك مع المنطق الحسابي أكثر تعقيدا، يتم القيام بالأشياء بشكل أسرع.

وليس هذا ما نحن الكل بعد؟

لشرح لماذا يمكن لوضع 32 بت الوصول فقط إلى 4 جيجابايت من ذاكرة الوصول العشوائي:

أقصى مساحة الذاكرة يمكن الوصول إليها = 2ن بايت حيث ن هو طول كلمة الهندسة المعمارية. لذلك في بنية 32 بت، الحد الأقصى لمساحة الذاكرة التي يمكن الوصول إليها هي 232 = 4294967296 = 4 جيجابايت من ذاكرة الوصول العشوائي.

بنية 64 بت ستكون قادرة على الوصول إلى 264 = الكثير من الذاكرة.

فقط لاحظت التعليقات التعليقات عبر هذا. على أي حال، بدون خلفية CS، ستكون نعم تنظيم الكمبيوتر وكتب الهندسة المعمارية صعبة فهمها في أحسن الأحوال.

  • يستخدم المعالج الأساسي 2 لتخزين الأرقام. ربما تم اختيار Base 2 لأنه "أبسط" لجميع القواعد: على سبيل المثال يحتوي جدول الضرب الأساسي على 4 خلايا فقط بينما يحتوي طاولة الضرب "10" على أساس 100 خلية.
  • قبل عام 2003، كانت معالجات الكمبيوتر المشتركة فقط "32 بت قادرة".
    • هذا يعني أن العمليات العددية الأصلية للمعالج كانت لأرقام 32 بت.
    • لا يزال بإمكانك القيام بعمليات رقمية لأرقام أكبر، ولكن يجب إجراء تلك البرامج التي تنفذها المعالج، ولا تكون "الإجراءات البدائية" (الأوامر في لغة الماكينة) التي يدعمها المعالج مثل تلك الخاصة ب 32 بت أعداد صحيحة (في ذلك الوقت)
    • تم اختيار 32 بت لأن مهندسي وحدة المعالجة المركزية مغرمون من صلاحيات 2، و 16 بت لم تكن كافية
  • لماذا لم تكن 16 بت كافية؟ مع 16 بت تمثل الأعداد الصحيحة في حدود 0-65535
    • 65535 = 1111111111111111 في ثنائي (= 20+21+22...+215 = 216-1)
    • 65535 لا يكفي لأنه على سبيل المثال، يجب أن يكون برنامج إدارة المستشفيات قادرا على حساب أكثر من 65535 مريضا
    • عادة ما ينظر الناس في حجم ذاكرة الكمبيوتر عند مناقشة حجم الأعداد الصحيحة الكبيرة. 65535 بالتأكيد لا يكفي. تحتوي أجهزة الكمبيوتر على المزيد من ذاكرة الوصول العشوائي أكثر من ذلك، ولا يهم إذا عدت في "البايت" أو البتات
  • تم اعتبار 32 بت كافية لفترة من الوقت. في عام 2003، قدمت AMD أول معالج "X86" القادرين الأول 64 بت. وبعد سرعان ما تبلى Intel.
  • في الواقع 16 بت كان يعتبر بما فيه الكفاية منذ فترة طويلة.
  • من الممارسات الشائعة عن الكثير من الأجهزة والبرامج لتكون متوافقة مع الوراء. في هذه الحالة، فهذا يعني أن وحدة المعالجة المركزية ذات 64 بت قادرة يمكن أيضا تشغيل كل برنامج يمكن أن CPUs 32 بت
    • يتم سرد التوافق المتخلفة كاستراتيجية تجارية. سيرغب المزيد من المستخدمين في الترقية إلى المعالج الأفضل إذا كان يمكن أن تفعل كل ما يمكن أن يفعله المرء السابق.
    • في التوافق المتخلف في CPUS يعني أن الإجراءات الجديدة تدعم وحدة المعالجة المركزية تضاف إلى لغة الجهاز السابقة. على سبيل المثال، قد تحتوي لغة الجهاز السابقة على بعض المواصفات مثل "جميع OPCodes ابتداء من 1111 محجوز للاستخدام في المستقبل "
    • من الناحية النظرية، لم يكن هذا النوع من التوافق مع وحدة المعالجة المركزية للخلف أمرا ضروريا لأن جميع البرامج قد تم إعادة ترجمة للتو إلى لغة الجهاز الجديدة وغير المتوافقة. ومع ذلك، هذا ليس هو الحال بسبب استراتيجيات الشركات والأنظمة السياسية أو الاقتصادية. في عالم "المصدر المفتوح" UTOPOY، من المحتمل أن لا يكون التوافق المتخلف لغات الماكينة مصدر قلق.
  • يأتي التوافق المتخلص من X86-64 (لغة وحدة المعالجة المركزية الشائعة 64 بت "لغة آلة) في شكل" وضع التوافق ". هذا يعني أن أي برنامج يرغب في الاستفادة من قدرات وحدة المعالجة المركزية الجديدة يحتاج إلى إخطار وحدة المعالجة المركزية (من خلال نظام التشغيل) أنه يجب أن يعمل في وضع 64 بت ". وبعد ذلك يمكن استخدامها إلى قدرات وحدة المعالجة المركزية الجديدة العظمى 64 بت كبيرة.
  • لذلك، للحصول على برنامج لاستخدام قدرات وحدة المعالجة المركزية 64 بت: وحدة المعالجة المركزية، نظام التشغيل، والبرنامج، يجب على جميعها "دعم 64 بت".
  • 64 بت يكفي لإعطاء كل شخص في العالم عدة أرقام فريدة. ربما تكون كبيرة بما يكفي لمعظم مساعي الحوسبة الحالية. من المحتمل أن يكون من غير المرجح أن يتحول وحدة المعالجة المركزية في المستقبل إلى 128 بت. ولكن إذا فعلوا ذلك، فهذا بالتأكيد يكفي لأن كل ما يمكنني تخيله، وبالتالي لن يكون هناك انتقال 256 بت من الضروري.

آمل أن يساعد هذا.

تجدر الإشارة إلى أن بعض التطبيقات (مثل ترميز / فك تشفير الوسائط المتعددة / فك التشفير والتقديم) زيادة كبيرة (2x) دفعة عند الكتابة إلى الاستفادة الكاملة 64 بت.

انظر 32 بت مقابل 64 بت معايير ل أوبونتو و ويندوز فيستا

لشخص غير CS. 64bit ستعمل بشكل أفضل للحسابات (جميع أنواع) سيكون ذلك جيدا أيضا وسيسمح لك بمزيد من ذاكرة الوصول العشوائي.

أيضا إذا كان لديك ذاكرة الوصول العشوائي المحدودة (في VPS على سبيل المثال أو خادم مخصص صغير من ذاكرة الوصول العشوائي) - اختر 32 بت، والخدمات، وسوف تتناول المزيد من ذاكرة الوصول العشوائي.

هذا تفسير بسيط للغاية، بالنظر إلى أن كل شيء أعلاه مفصل تماما.

32 بت يشير إلى السجلات. السجلات هي أماكن لتخزين البيانات، وجميع البرامج تعمل من خلال التلاعب بهذه الأشياء. تعمل الجمعية مباشرة عليها (وبالتالي لماذا غالبا ما يكون الناس متحمسين للبرنامج في التجميع).

32 بت يعني أن المجموعة الأساسية من السجلات يمكن أن تعقد 32 بت من المعلومات. 64 بت الوسيلة، مما لا شك فيه، 64 بت من المعلومات.

لماذا يمكن هذا جعل البرامج أسرع؟ لأنه يمكنك القيام بعمليات أكبر بشكل أسرع. سيجعل فقط أنواعا معينة من البرامج بشكل أسرع، بالمناسبة. الألعاب، عادة، يمكن أن تأخذ ميزة كبيرة من التحسين لكل معالج, ، بسبب عملياتها الرياضيات الثقيلة (وبالتالي استخدام التسجيل).

ولكن بشكل مسهل، كما ذكر Tchen، هي العديد من الأشياء الأخرى التي تتيح لك إجراء عمليات أكبر على أي حال. سيكون SSE، SSE2، إلخ، سجلات 64 بت وسجلات 128 بت، حتى على نظام '32 بت'.

تتحدث القدرة المتزايدة على معالجة الذاكرة مباشرة إلى زيادة حجم التسجيل الأساسي، بناء على (أتصور) نظام معالجة الذاكرة المحددة لنظام Windows.

نأمل أن يساعد قليلا. الملصقات الأخرى أكثر دقة بكثير مني، أحاول فقط أن أشرح ببساطة ببساطة (يساعد على معرفة القليل جدا :)

لدي إجابة رائعة لهذا السؤال، لكنها لا تنسجم كل ذلك في كتلة الإجابة هذه .... الإجابة البسيطة هي أنه بالنسبة لبرنامجك للحصول على البايت خارج الذاكرة، فإنه يحتاج إلى عنوان. في وحدة المعالجة المركزية 32 بت، يتم تخزين عنوان ذاكرة كل بايت في عدد صحيح 32 بت (غير موقعة)، والتي كقيمة قصوى تصل إلى 4 جيجابايت. عند استخدام معالج 64 بت، يعد عنوان الذاكرة عددا صحيحا 64 بت، مما يمنحك حوالي 1.84467441 × 10 ^ 19 عناوين الذاكرة الممكنة. هذا حقا يجب أن يكفي إذا كنت جديدا في البرمجة. يجب عليك حقا التركيز بشكل أكبر على تعلم كيفية البرنامج، أكثر من الأعمال الداخلية لمعالجك، ولماذا لا يمكنك الوصول إلى أكثر من 4 جيجابايت من ذاكرة الوصول العشوائي على وحدة المعالجة المركزية 32 بت.

إجابة بسيطة لشرح نطاق الذاكرة المعالج مع معالجات 32 بت هو:

يتيح لك افتراض أن لديك 3 أرقام مكونة فقط يسمح ببناء الحد الأقصى لعدد ما يمكن أن تذهب إليه هو 999. مجموعة من الأرقام (0 - 999). لديك 1000 أرقام فقط لاستخدامها.

ولكن إذا سمح لك بالحصول على أرقام مكونة من 6 أرقام، فإن الرقم الأقصى الذي يمكنك بناءه هو 999999. الآن نطاق (0 - 999999). حتى الآن لديك 1 مليون رقم معك للاستخدام.

وبالمثل، فإن المزيد من البتات المسموح لك به في معالج، مجموعة أكبر من العناوين (الأرقام في المثال السابق) يمكنك بناءها واستخدامها في النهاية لتخزين البيانات وغيرها.

أي شيء أبسط مما سيكون مثيرا للاهتمام القراءة!

-ميلادي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top