Computación de 16 bits - 16-bit computing

En  la arquitectura de la computadora , los enteros de 16 bits , las direcciones de memoria u otras unidades de datos son aquellos que tienen 16 bits (2 octetos ) de ancho. Además, las arquitecturas de CPU y 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 computadoras en las que los microprocesadores de 16 bits eran la norma.

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 de enteros 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 de −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 usa segmentación con compensaciones de segmento de 16 bits, se puede acceder a más.

Arquitectura de 16 bits

El MIT Whirlwind ( c. 1951) fue posiblemente la primera computadora de 16 bits de la historia. Otras computadoras tempranas de 16 bits ( c. 1965-1970) incluyen la IBM 1130 , la HP 2100 , la Data General Nova y la DEC PDP-11 .

Los primeros microprocesadores de 16 bits de varios chips ( c. 1973-1976) incluyen el National Semiconductor IMP-16 de cinco chips (1973), el NEC μCOM-16 de dos chips (1974), el Western Digital MCP-1600 de tres chips (1975) y el Toshiba T-3412 de cinco chips (1976).

Los primeros microprocesadores de un solo chip de 16 bits ( c. 1975–76) incluyen Panafacom MN1610 (1975), National Semiconductor PACE (1975), General Instrument CP1600 (1975), Texas Instruments TMS9900 (1976), Ferranti F100-L y el HP BPC . Otros procesadores notables de 16 bits incluyen Intel 8086 , Intel 80286 , WDC 65C816 y Zilog Z8000 . El Intel 8088 era binario compatible con el Intel 8086, y era de 16 bits en el sentido de que sus registros tenían un ancho de 16 bits y las instrucciones aritméticas podían operar en cantidades de 16 bits, aunque su bus externo tenía un ancho de 8 bits.

Un entero de 16 bits puede almacenar 2 16 (o 65.536) valores distintos. En una representación sin signo , estos valores son los números enteros entre 0 y 65.535; utilizando el complemento a dos , los valores posibles oscilan entre -32.768 y 32.767. Por lo tanto, un procesador con direcciones de memoria de 16 bits puede acceder directamente a 64 KB de memoria direccionable por bytes .

Los procesadores de 16 bits han sido reemplazados casi por completo en la industria de las computadoras personales y se utilizan CPU de menos de 32 bits (u 8 bits) en aplicaciones integradas.

Motorola 68000 e Intel 386SX de 16/32 bits

El Motorola 68000 a veces se llama de 16 bits debido a la forma en que maneja las matemáticas básicas. El conjunto de instrucciones se basó en números de 32 bits y los registros internos tenían un ancho de 32 bits, por lo que, según las definiciones comunes, el 68000 tiene un diseño de 32 bits. Internamente, la aritmética básica de 32 bits se realiza mediante dos operaciones de 16 bits, y esto conduce a algunas descripciones del sistema como 16 bits o "16/32". Si bien esta no era una solución común en ese momento, a principios de la década de 1980, estas soluciones tienen una larga historia en el campo de la informática, con varios diseños que realizan operaciones matemáticas incluso de 1 bit a la vez, lo que se conoce como "aritmética en serie", mientras que la mayoría de los diseños en la década de 1970 procesó 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 como cuatro operaciones de 4 bits, ya que ese era el tamaño de una ALU de un solo chip común de esa época. Usando la definición que se está aplicando al 68000, el Nova sería una computadora de 4 bits, o 4/16. Poco después de la introducción de Nova, se introdujo una segunda versión, SuperNova, que incluía cuatro de las ALU de 4 bits para realizar operaciones matemáticas de 16 bits a la vez y, por lo tanto, ofrecer un mayor rendimiento. Sin embargo, esto era invisible para el usuario y los programas, que siempre usaban instrucciones de 16 bits. De manera similar, los miembros posteriores de la familia 68000, como el Motorola 68020 , tenían ALU de 32 bits.

También se pueden ver referencias a que los sistemas son o no de 16 bits basados ​​en alguna otra medida. Uno 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, de 64 KB, lo que significa que la manipulación de direcciones requería dos ciclos de instrucciones. Por esta razón, la mayoría de los procesadores tenían modos especiales de direccionamiento de 8 bits, para página cero , mejorando la velocidad. Este tipo de diferencia entre el tamaño del registro interno y el tamaño de la dirección externa 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 solo 24 bits de direccionamiento en el DIP , limitándolo a 16 MB todavía enormes (para la época).

Un análisis similar se aplica al reemplazo de la 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ó.

Aplicación de 16 bits

En el contexto de las plataformas Wintel y compatibles con IBM PC , una aplicación de 16 bits es cualquier software escrito para MS-DOS , OS / 2 1.xo versiones anteriores de Microsoft Windows que originalmente se ejecutaba en Intel 8088 e Intel 80286 de 16 bits. microprocesadores . Dichas aplicaciones utilizaban una representación de dirección de segmento o selector de 20 bits o 24 bits para ampliar el rango de ubicaciones de memoria direccionables más allá de lo que era posible utilizando solo direcciones de 16 bits. Los programas que contienen más de 2 16 bytes (65.536 bytes ) de instrucciones y datos, por lo tanto, requieren instrucciones especiales para cambiar entre sus segmentos de 64 kilobytes , aumentando la complejidad de la programación de aplicaciones de 16 bits.

Lista de CPU de 16 bits

Ver también

Referencias