26 bits
# 26 bits

En arquitectura de ordenadores, 26 bits para enteros, para direcciones de memoria o para otras unidades de datos son las que disponen de un ancho de 26 bits para su almacenamiento, por lo que pueden representar valores de direcciones de hasta 64 Mb (en base 2). Dos ejemplos de ordenadores con procesadores de 26 bits para direcciones de memoria fueron varios modelos de la segunda generación de los mainframes System/370 que introdujo IBM en 1981 (y algunos posteriores), que disponían de direcciones físicas de 26 bits pero en un espacio de direcciones virtuales de 24 bits para compatibilidad con modelos anteriores, y las primeras generaciones de los procesadores RISC de ARM.

## Historia

### IBM System/370

Como las necesidades para el proceso de datos continuaban creciendo, IBM y sus clientes afrontaron en reto de manejar un mayor espacio de direcciones de memoria. Como una solución "de emergencia" a corto plazo, un par de modelos de segunda generación de los System/370 de IBM, el 3033 y el 3081, introdujeron el manejo de 26 bits para las direcciones de memoria, aumentando la cantidad de memoria física que podría ser manejado por los System/370 por un factor de 4 sobre los anteriors sistema de 24 bits limitados a 16 MB. IBM llamó a las direcciones de 26 bits "direcciones reales extendidas", y algunos modelos posteriores también incluyeron soporte para 26 bits. Aun así, solo 2 años más tarde IBM introdujo los 31 bits en las direcciones de memoria, expandiendo las direcciones físicas y las virtuales a 31 bits con los modelos System/370-XA, e incluso el popular modelo 3081 era actualizable a un XA estándar.

Dada la breve historia de los 26 bits en los modelos de IBM, y dado que las direcciones virtuales estaban todavía limitadas a 24 bits, la creación de software de 26 bits fue muy limitada. Los pocos clientes que explotaron el modo de 26 bits finalmente ajustaron sus aplicaciones para soportar direcciones de 31 bits, e IBM dejó de dar soporte a los 26 bits tras pocos años de haber producido los modelos que soportaban los modos de 24 bits, 26 bits y 31 bits. El modo de 26 bits fue el único que IBM dejó de soportar en su línea de mainframes posteriores System/360. Los otros modos de dirección, incluyendo el nuevo modo de 64 bits, se mantuvieron en modelos actuales de sus mainframes.

### Primeros procesadores de ARM

En la arquitectura de procesadores de ARM, 26 bits se refieren al diseño utilizado en los procesadores originales de ARM en los cuales el Contador de Programa (PC) y el Registro de Estado (PSR) se combinaron en un solo registro de 32 bits (R15), las banderas de estado usaban los 6 bits altos y el Contador de Programa usaba los 26 bits bajos.

De hecho, como el contador de programa estaba siempre alineado a palabra, los dos bits más bajos eran siempre cero, lo que llevó a los diseñadores a reutilización estos dos bits para guardar también los bits de modo del procesador. Los cuatro modos eran USR26, SVC26, IRQ26, FIQ26; en contraste tenemos los 32 modos disponibles cuándo se separó el registro de estado del contador de programa en las arquitecturas ARM posteriores.

Este diseño habilitó la ejecución más eficiente del programa, ya que el Contador de Programa y las banderas de estado podrían ser salvados o restaurados en una sola operación. Esto resulta en llamadas a subrutinas más rápidas y en una mejor respuesta a las interrupciones que en los diseños tradicionales, en los cuales tenían que hacerse dos cargas o restauraciones de registros en las llamadas o retornos de una subrutina.

A pesar de disponer de una ALU de 32 bits de longitud de palabra, los procesadores basados en la arquitectura 1 y 2 de ARM disponían solo de direcciones de 26 bits tanto en el PC como en el bus de direcciones, lo que los limitaban a 64 Mb de memoria direccionable. Esto era todavía una enorme cantidad de memoria en ese momento, pero debido a esta limitación las arquitecturas posteriores han incluido mejoras sobre el diseño original de 26 bits.

La versión 3 de la arquitectura ARM introdujo un PC de 32 bits separado del Registro de Estado así como un bus de direcciones de 32 bits, dejando un espacio direccionable de 4 Gb de memoria. El cambio en el diseño del PC/PSR lo hacía incompatible con el código escrito para arquitecturas anteriores, por lo que el procesador también incluía un modo compatible de 26 bis que utilizaba la anterior combinación de PC y PSR. El procesador podría todavía direccionar 4 Gb de memoria para datos en este modo, pero no podría ejecutar programas por encima de la dirección 0x3FFFFFC (64 MB). Este modo fue utilizado por el RISC OS corriendo en el Acorn RISC PC para utilizar los nuevos procesadores manteniendo compatibilidad con el software existente.

La versión 4 de la arquitectura ARM mantuvo el soporte opcional de los modos de direccionamiento de 26 bits, pero desde la versión 5 en adelante se eliminó dicho soporte.

