معمارية 31 بت

(بالتحويل من 31-بت)


المعالجات بالبت
4بت 8بت 12بت 16بت 18بت 24بت 28بت 31بت 32بت 36بت 48بت 60بت 64بت 128بت
البرامج
16-بت 32-بت 64-بت
حجم البيانات
نيبل   أوكتات   بايت   وورد   دوورد   كوورد

في معمارية الحاسوب، 31-بت من الأعداد الصحيحة، أو أي وحدات للبيانات غالباً تكون بسعة 31-بت (32 بت تعني 1 بت لم تستخدم). كما أن وحدة المعالجة المركزية وبنية وحدة الحساب والمنطق 31-بت مبنية على السجلات، ناقلات العناوين، أو ناقلات البيانات من نفس الحجم.

ربما أن بنية الحاسوب الوحيدة القائمة علي عنونة 31-بت هي الشهر والأكثر ربحاً في مجال الحوسبة.[1] في عام 1983 قدمت شركة آي‌ بي‌ إم عنونة 31-بت في نظام System/370-XA لبنية حاسوب كبيركتحديث للعنونة 24-بت للنماذج السابقة. سمح هذا التحديث أن تكون مساحات العناوين 128 مرة أكبر مما سمح للبرامج بعونة ذاكرة أعلي من 16 مبيبايت (يُشار إليها بأنها "أعلي من المستوي") في بنية النظام System/360 وSystem/370 كانت العناوين يتم تخزينها دائما في كلمات 32-بت، لكن الأجهزة تجاهلت اعلي 8-بت من العنوان مما نتج عنه عنونه 24-بت. مع الامتداد XA لم يتم تجاهل أي بت في الكلمة.

كان التحول خادعاً: مبرمجي لغة التجميع استخدموا البايت الاحتياطي في قمة العناوين للتعليم بعلامات لنحو 20 عامًا. اختارت شركة آي‌ بي‌ إم دعم صيغتين للعنونة لتقليل الألم: إذا كان البت الأكثر أهمية (0-بت) من عنوان 32-بت موجود، فإن 31-بت التالية يتم تفسيرها كعنوان افتراضي. إذا كان البت الأكثر أهمية غير موجود فإن آخر 24-بت فقط هي التي تعتبر بمثابة العنوان (مثلما كان الحال في الأنظمة قبل XA). هكذا فإن البرامج قد تستمر باستخدام البتات السبعة الأدنى من البايت الأعلي لأغراض أخرى طالما أن البت الأعلي غير موجود.

البرامج الوحيدة التي تتطلب تعديلات حي تلك التي تضع أهم بت في الكلمة تحتوي علي عنوان. يؤثر هذا علي مقارنات العنونة: البت الأهم في الكلمة يمكن تفسيرها كـ بت الإشارة مما يشير إلي عدد سالب إذا كان البت 0 موجود. البرامج التي تستخدم تعليمات مقارنة حسابية موقعة قد يأتي بنتائج معكوسة. يمكن مقارنة عنوانين متناظرين / متساويين كغير متساويين إذا كان أحدهم فيه بت الإشارة مفتوح حتي إذا كانت البتات المتبقية متماثلة. لحسن الحظ، كان معظم ذلك غير مرئي للمبرمجين ممن يستخدمون لغات عالية مثل كوبول أو فورتران وساعدت آي‌ بي‌ إم عملية التحول بأجهزة ثائية النمط لفترة من الزمن.

تقوم تعليمات أجهزة معينة في هذه البنية 31-بت تغير بت نمط العنونة كأثر جانبي عالمي محتمل. على سبيل المثال، البرنامج الفرعي الأصلي للتعليمات BAL تخزن معلومات حالة معينة في البيت الأعلي لعنوان العودة. تم إضافة تعليمات BAS لدعم عناوين العودة 31-بت. كانت تعليمات BAS والتسجيل – التسجيل المعادل، وBASR، ومسجلات التخزين والتفرع، جميعها جزء من تعليمات النظام System/360 منذ النموذج 67. تمت المحافظة علي تلك التعليمات ولكن مع تعديلها وامتدادها للعنونة 31-بت. شملت التعليمات الإضافية لدعم عنونة 31-بت العديد من تعليمات الاتصال/العودة التي أثرت أيضاً علي تغيير نمط العنونة (مثلاً: نمط التفرع والإعداد، ونمط التفرع والتخزين والإعداد).

في التسعينات قدمت شركة آي‌ بي‌ إم بنية 370/ESA (الاسم اللاحق 390/ESA وأخيراً باسم ESA/390 أو النظام System/390 وباختصار S/390) لتكملة التطوير إلي عنونة افتراضية 31-بت كاملة والحفاظ علي علامة هذا النمط للعنونة. تدعم هذه البنيات اللاحقة أكثر من 2 جيبيبايت من الذاكرة المادية وتدعم مساحات عناوين متعددة متزامنة في نفس الوقت حجم كل منها 2 جيبيبايت. منذ منتصف عام 2006 لم يزل هناك عدد قليل من البرامج المقيدة بهذه البنية 31-بت المتعددة.

بالرغم من ذلك، فإن شركة آي‌ بي‌ إم كسرت حاجز العنونة الخطية 2 جيبيبايت ("الشريط") في عام 2000 عندما قدمت أول نظام 64-بت وبنية زد، من سلسلة زد لشركة آي‌ بي‌ إم موديل 900. علي خلاف التحول من أجهزة XA فإن البنية زد لا تحتفظ بالبت الأعلي لتحديد الشفرة السابقة. لكن البنية زد لا تحتفظ بالتوافق مع شفرة 24-بت و31-بت، وحتي الشفرات الأقدم التي تستخدم جنباً إلي جنب مع الشفرة 64-بت الأحدث.

بما أن لينكس /390 تم طرحها أولاً لأجهزة العنونة 32-بت و31-بت في عام 1999, فإن تطبيقات حاسبات لينكس الكبيرة تألفت من نمط قبل البنية زد وكذلك اقتصرت علي عنونة 31-بت. اختفي هذا القصور مع ظهور أجهزة 64-بت, و64-بت لينكس في سلسلة زد وتطبيقات 64-بت لينكس. لا زالت توزيعات 64-بت لينكس تدعم برامج 31-بت.

تدعم بنية 31-بت لشركة آي‌ بي‌ إم التخزين الموسع مما يسمح لشفرة 31-بت أن تستفيد من الذاكرة الإضافية. لكن في أي وقت لابد أن يوجد بحد أقصي 2 جيبيبايت في كل مساحة عنوان عامل / نشط. بالنسبة لـ31-بت لينكس فمن الممكن إضافة ذاكرة أعلي من شريط 2 جيبيبايت علي هيئة قرص ذاكرة مؤقتة.

مراجع عدل

  1. ^ "4.1 Merge window, part 1". LWN. 15 أبريل 2015. مؤرشف من الأصل في 2017-06-12.