En arquitectura informática , los números enteros de 16 bits , las direcciones de memoria u otras unidades de datos son aquellas que tienen 16 bits (2 octetos ) de ancho. Asimismo, las arquitecturas de unidad central de procesamiento (CPU) y unidad aritmético lógica (ALU) de 16 bits son aquellas que se basan en registros , buses de direcciones o buses de datos de ese tamaño. Las microcomputadoras de 16 bits son microcomputadoras que utilizan microprocesadores de 16 bits .
Un registro de 16 bits puede almacenar 2 16 valores diferentes. El rango de valores enteros que se pueden almacenar en 16 bits depende de la representación entera utilizada. Con las dos representaciones más comunes, el rango es de 0 a 65,535 (2 16 − 1) para la representación como un número binario ( sin signo ) , y −32,768 (−1 × 2 15 ) a 32,767 (2 15 − 1) para la representación como complemento a dos . Dado que 2 16 es 65,536, un procesador con direcciones de memoria de 16 bits puede acceder directamente a 64 KB (65,536 bytes) de memoria direccionable por bytes . Si un sistema utiliza segmentación con desplazamientos de segmento de 16 bits, se puede acceder a más.
El MIT Whirlwind ( c. 1951) [1] [2] fue posiblemente el primer ordenador de 16 bits de la historia. Era un tamaño de palabra inusual para la época; la mayoría de los sistemas utilizaban un código de caracteres de seis bits y utilizaban una longitud de palabra de algún múltiplo de 6 bits. Esto cambió con el esfuerzo por introducir ASCII , que utilizaba un código de 7 bits y naturalmente condujo al uso de un múltiplo de 8 bits que podía almacenar un solo carácter ASCII o dos dígitos decimales codificados en binario .
La longitud de palabra de 16 bits se hizo más común en la década de 1960, especialmente en los sistemas de minicomputadoras. Las primeras computadoras de 16 bits ( c. 1965-70) incluyen la IBM 1130 , [3] la HP 2100 , [4] la Data General Nova , [5] y la DEC PDP-11 . [6] Los primeros microprocesadores de 16 bits , a menudo modelados en una de las miniplataformas, comenzaron a aparecer en la década de 1970. Los ejemplos ( c. 1973-76) incluyen el National Semiconductor IMP-16 de cinco chips (1973), [7] el NEC μCOM-16 de dos chips (1974), [8] [7] el Western Digital MCP-1600 de tres chips (1975) y el Toshiba T-3412 de cinco chips (1976). [7]
Los primeros microprocesadores de 16 bits de un solo chip ( c. 1975-76) incluyen el Panafacom MN1610 (1975), [9] [10] [7] National Semiconductor PACE (1975), General Instrument CP1600 (1975), Texas Instruments TMS9900 (1976), [7] Ferranti F100-L y el HP BPC . Otros procesadores de 16 bits notables incluyen el Intel 8086 , el Intel 80286 , el WDC 65C816 y el Zilog Z8000 . El Intel 8088 era compatible binariamente con el Intel 8086 y era de 16 bits en el sentido de que sus registros tenían 16 bits de ancho y las instrucciones aritméticas podían operar en cantidades de 16 bits, aunque su bus externo tenía 8 bits de ancho.
Los procesadores de 16 bits han sido reemplazados casi por completo en la industria de las computadoras personales y se utilizan menos que las CPU de 32 bits (u 8 bits) en aplicaciones integradas.
El Motorola 68000 a veces se denomina de 16 bits debido a la forma en que maneja la aritmética básica. El conjunto de instrucciones se basaba en números de 32 bits y los registros internos tenían 32 bits de ancho, por lo que, según las definiciones comunes, el 68000 es un diseño de 32 bits. Internamente, la aritmética de 32 bits se realiza utilizando dos operaciones de 16 bits, y esto lleva a algunas descripciones del sistema como de 16 bits o "16/32".
Estas soluciones tienen una larga historia en el campo de la informática, con varios diseños que realizaban operaciones matemáticas incluso de bit en bit, conocidas como "aritmética serial", mientras que la mayoría de los diseños de la década de 1970 procesaban al menos unos pocos bits a la vez. Un ejemplo común es el Data General Nova, que era un diseño de 16 bits que realizaba operaciones matemáticas de 16 bits como una serie de cuatro operaciones de 4 bits. 4 bits era el tamaño de palabra de una ALU de un solo chip ampliamente disponible y, por lo tanto, permitía una implementación económica. Usando la definición que se aplicó al 68000, el Nova sería un ordenador de 4 bits, o 4/16. No mucho después de la introducción del Nova, se presentó una segunda versión, el SuperNova, que incluía cuatro de las ALU de 4 bits funcionando en paralelo para realizar operaciones matemáticas de 16 bits a la vez y, por lo tanto, ofrecer un mayor rendimiento. Esto era invisible para el usuario y los programas, que siempre usaban instrucciones y datos de 16 bits. De manera similar, los miembros posteriores de la familia 68000, comenzando con el Motorola 68020 , tenían ALU de 32 bits.
También se pueden ver referencias a sistemas que son o no de 16 bits en función de alguna otra medida. Una común es cuando el espacio de direcciones no tiene el mismo tamaño de bits que los registros internos. La mayoría de las CPU de 8 bits de la década de 1970 entran en esta categoría; el MOS 6502 , Intel 8080 , Zilog Z80 y la mayoría de los demás tenían un espacio de direcciones de 16 bits que proporcionaba 64 KB de espacio de direcciones. Esto también significaba que la manipulación de direcciones requería dos ciclos de instrucción. Por esta razón, la mayoría de los procesadores tenían modos especiales de direccionamiento de 8 bits, la página cero , que mejoraba la velocidad. Este tipo de diferencia entre el tamaño de los registros internos y el tamaño de las direcciones externas se mantuvo en la década de 1980, aunque a menudo se invirtió, ya que los costos de memoria de la época hicieron que una máquina con direccionamiento de 32 bits, 2 o 4 GB, fuera una imposibilidad práctica. Por ejemplo, el 68000 expuso sólo 24 bits de direccionamiento en el DIP , limitándolo a unos enormes (para la época) 16 MB. [11]
Un análisis similar se aplica al reemplazo de CPU 80286 de Intel , llamado 386SX , que es un procesador de 32 bits con ALU de 32 bits y rutas de datos internas de 32 bits con un bus externo de 16 bits y direccionamiento de 24 bits del procesador que reemplazó.
En el contexto de las plataformas compatibles con IBM PC y Wintel , una aplicación de 16 bits es cualquier software escrito para MS-DOS , OS/2 1.x o versiones anteriores de Microsoft Windows que originalmente se ejecutaban en los microprocesadores Intel 8088 e Intel 80286 de 16 bits. Dichas aplicaciones usaban una representación de dirección de desplazamiento de selector o segmento de 20 o 24 bits para extender el rango de ubicaciones de memoria direccionables más allá de lo que era posible usando solo direcciones de 16 bits. Por lo tanto, los programas que contenían más de 216 bytes ( 65,536 bytes ) de instrucciones y datos requerían instrucciones especiales para cambiar entre sus segmentos de 64 kilobytes , lo que aumentaba la complejidad de la programación de aplicaciones de 16 bits.