Введение

В компьютерной архитектуре, 26-битные целые числа, адреса памяти или другие единицы данных – это те, которые занимают 26 бит в ширину и, следовательно, могут представлять беззнаковые значения до 67 108 863. Два примера компьютерных процессоров, использовавших 26-битное адресное пространство памяти, – это некоторые модели мейнфреймов IBM System/370 второго поколения, представленные в 1981 году (и несколько последующих моделей), которые имели 26-битные физические адреса, но сохранили 24-битные виртуальные адреса, как и более ранние модели, а также процессоры ARM первых поколений.

IBM System/370 (англ.) (англ.) (англ.)

По мере роста потребностей в обработке данных, IBM и её клиенты столкнулись с проблемами, связанными с увеличением объёмов памяти. В качестве временного "аварийного" решения, две модели IBM System/370 второго поколения – 3033 и 3081 – внедрили 26-битное адресное пространство реальной памяти, увеличив объём физической памяти System/370, который можно было подключить, в 4 раза по сравнению с предыдущим 24-битным ограничением в 16 МБ. 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), при этом флаги состояния занимали старшие 6 бит, а счётчик команд – младшие 26 бит. Поскольку счётчик команд всегда выровнен по границе слова, два младших бита всегда были равны нулю, что позволило разработчикам использовать их для хранения битов режима процессора. Доступными режимами были USR26, SVC26, IRQ26 и FIQ26; это отличалось от 32 возможных режимов, доступных в более поздних архитектурах ARM, где статус программы был отделён от счётчика команд. Такая конструкция обеспечивала более эффективное выполнение программ, поскольку счётчик команд и флаги состояния можно было сохранить и восстановить одной операцией. Это приводило к более быстрым вызовам подпрограмм и обработке прерываний по сравнению с традиционными конструкциями, которым требовалось две операции загрузки или сохранения регистров при вызове или возврате из подпрограммы. Несмотря на 32-битный АЛУ и длину слова, процессоры, основанные на архитектурах ARM версии 1 и 2, имели только 26-битный счётчик команд и адресную шину и, следовательно, были ограничены 64 МБ адресуемой памяти. Это был значительный объём памяти для того времени, но из-за этого ограничения последующие архитектуры включали различные изменения, отходящие от первоначальной 26-битной конструкции. В архитектуре ARM версии 3 был представлен 32-битный счётчик команд и отдельный PSR, а также 32-битная адресная шина, позволяющая адресовать 4 ГБ памяти. Изменение компоновки счётчика команд/PSR привело к несовместимости с кодом, написанным для предыдущих архитектур, поэтому процессор также включал 26-битный режим совместимости, который использовал старую комбинацию счётчика команд/PSR. В этом режиме процессор всё ещё мог адресовать 4 ГБ, но не мог выполнять код по адресу выше 0x3FFFFFC (64 МБ). Этот режим использовался RISC OS, работающей на Acorn Risc PC, для использования новых процессоров с сохранением совместимости с существующим программным обеспечением. Архитектура ARM версии 4 сделала поддержку 26-битных режимов адресации необязательной, а начиная с архитектуры ARM версии 5 они были полностью удалены.