لماذا هي أصغر قيمة يمكن تخزينها هي بايت (8 بت) وليس قليلا (1bit)؟

StackOverflow https://stackoverflow.com/questions/4607572

  •  25-09-2019
  •  | 
  •  

سؤال

لماذا هي أصغر قيمة يمكن تخزينها بايت (8 بت) وليس قليلا (1bit) في الذاكرة؟ يتم تخزين حتى المنطقية على أنها بايت. هل سنصطدم بأصغر عدد إلى 32 أو 64 بايت مثل التسجيل في وحدة المعالجة المركزية؟

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

المحلول

تقتصر الطرق الأساسية للوصول إلى المعالج على حجم أصغر سجل قابل للاستخدام. في معظم البنى ، هذا الحجم هو 8 بت. يمكنك استخدام أجزاء أصغر من هذه ؛ على سبيل المثال ، يحتوي C على ميزة Bitfield في الهياكل التي ستسمح بالجمع بين الحقول التي تحتاج فقط إلى أن تكون أطوال بت معينة. سيظل الوصول يتطلب قراءة البايت بأكمله.

بعض البنى الغريبة القديمة لديها بالفعل "حجم كلمة". في هذه الآلات ، قد يكون 10 بتات شائعة.

أخيرًا ، تكون المعالجات متوافقة دائمًا إلى الوراء. حافظت Intel ، على سبيل المثال ، على توافق تعليمات كاملة من 386 على UP. إذا أخذت برنامجًا تم تجميعه لـ 386 ، فسيظل يعمل على معالج i7. تغيير حجم الكلمة من شأنه أن يكسر التوافق. لذلك في حين ذلك هو ممكن ، لن تفعل أي شركة تصنيع ذلك.

نصائح أخرى

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

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

نظرًا لأن أجهزة الكمبيوتر تتناول الذاكرة على مستوى البايت ، لذلك لا يمكن معالجة أي شيء أصغر من البايت.

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