الحوسبة ذات 26 بت

في هندسة الحاسوب ، تُعرف الأعداد الصحيحة ذات 26 بت ، وعناوين الذاكرة ، أو وحدات البيانات الأخرى ، بأنها تلك التي يبلغ عرضها 26 بت، وبالتالي يمكنها تمثيل قيم غير موقعة تصل إلى 67,108,863. ومن الأمثلة على معالجات الحاسوب التي تميزت بعناوين ذاكرة ذات 26 بت، بعض طرازات الجيل الثاني من حواسيب IBM System/370 المركزية التي طُرحت في عام 1981 (والعديد من الطرازات اللاحقة)، والتي كانت تحتوي على عناوين فعلية ذات 26 بت ولكنها كانت تحتوي فقط على نفس العناوين الافتراضية ذات 24 بت مثل الطرازات السابقة، والأجيال الأولى من معالجات ARM .

تاريخ

نظام IBM/370

مع استمرار نمو احتياجات معالجة البيانات ، واجهت شركة IBM وعملاؤها تحديات في التعامل المباشر مع أحجام الذاكرة الأكبر. وفي حلٍّ طارئ قصير الأجل، قدّمت IBM طرازَي 3033 و3081 من الموجة الثانية لسلسلة System/370، وهما يدعمان عنونة الذاكرة الحقيقية ذات 26 بت، مما زاد سعة الذاكرة الفعلية التي يمكن توصيلها في System/370 بمقدار أربعة أضعاف مقارنةً بالحد السابق البالغ 16 ميجابايت (24 بت)  . أطلقت IBM على عنونة 26 بت اسم "العنونة الحقيقية الموسّعة"، كما دعمت بعض الطرازات اللاحقة هذه التقنية. ومع ذلك، وبعد عامين فقط، قدّمت IBM عنونة الذاكرة ذات 31 بت ، موسّعةً بذلك كلاً من العناوين الفعلية والافتراضية إلى 31 بت، وذلك مع طرازَي System/370-XA، حتى أن الطراز 3081 الشهير كان قابلاً للترقية إلى معيار XA.

نظراً لتاريخ نظام 26 بت القصير كأحدث تقنيات عنونة الذاكرة المتاحة في مجموعة طرازات IBM، ونظراً لأن العناوين الافتراضية كانت لا تزال محدودة بـ 24 بت، فقد كان استغلال البرمجيات لنظام 26 بت محدوداً. قام العملاء القلائل الذين استغلوا نظام 26 بت بتعديل تطبيقاتهم لاحقاً لدعم عنونة 31 بت، وتوقفت IBM عن دعم نظام 26 بت بعد عدة سنوات من إنتاج طرازات تدعم أنظمة 24 بت و26 بت و31 بت. يُعد نظام 26 بت نظام العنونة الوحيد الذي أزالته IBM من سلسلة حواسيبها المركزية المنحدرة من نظام System/360 . جميع أنظمة العنونة الأخرى، بما في ذلك نظام 64 بت، مدعومة في الحواسيب المركزية الحالية.

معالجات ARM المبكرة

في بنية معالج ARM ، يشير مصطلح 26 بت إلى التصميم المستخدم في معالجات ARM الأصلية حيث تم دمج عداد البرنامج ( PC ) وسجل حالة المعالج ( PSR ) في سجل واحد 32 بت (R15)، حيث تملأ علامات الحالة البتات الستة العليا ويشغل عداد البرنامج البتات الـ 26 السفلى.

In fact, because the program counter is always word-aligned the lowest two bits are always zero which allowed the designers to reuse these two bits to hold the processor's mode bits too. The four modes allowed were USR26, SVC26, IRQ26, FIQ26; contrast this with the 32 possible modes available when the program status was separated from the program counter in more recent ARM architectures.

This design enabled more efficient program execution, as the program counter and status flags could be saved and restored with a single operation. This resulted in faster subroutine calls and interrupt response than traditional designs, which would have to do two register loads or saves when calling or returning from a subroutine.

Despite having a 32-bit ALU and word-length, processors based on ARM architecture version 1 and 2 had only a 26-bit PC and address bus, and were consequently limited to 64 MiB of addressable memory. This was still a vast amount of memory at the time, but because of this limitation, architectures since have included various steps away from the original 26-bit design.

The ARM architecture version 3 introduced a 32-bit PC and separate PSR, as well as a 32-bit address bus, allowing 4 GiB of memory to be addressed. The change in the PC/PSR layout caused incompatibility with code written for previous architectures, so the processor also included a 26-bit compatibility mode which used the old PC/PSR combination. The processor could still address 4 GB in this mode, but could not execute anything above address 0x3FFFFFC (64 MB). This mode was used by RISC OS running on the Acorn Risc PC to utilise the new processors while retaining compatibility with existing software.

ARM architecture version 4 made the support of the 26-bit addressing modes optional, and ARM architecture version 5 onwards has removed them entirely.

  • Differences Between ARM6 and Earlier ARM Processors
  • "Using the Acorn C/C++ Development Environment to write 32-bit RISC OS software" - Details on the architectural changes and converting code between 26-bit and 32-bit.
  • http://www.heyrick.co.uk/assembler/32bit.html - Information on converting assembler to 32-bit