Word (arquitectura informática)
En informática, una palabra es la unidad natural de datos utilizada por un diseño de procesador particular. Una palabra es un dato de tamaño fijo manejado como una unidad por el conjunto de instrucciones o el hardware del procesador. El número de bits o dígitos de una palabra (el tamaño de palabra, el ancho de palabra o la longitud de palabra) es una característica importante de cualquier procesador específico. diseño o arquitectura informática.
El tamaño de una palabra se refleja en muchos aspectos de la estructura y el funcionamiento de una computadora; la mayoría de los registros en un procesador suelen tener el tamaño de una palabra y el dato más grande que se puede transferir hacia y desde la memoria de trabajo en una sola operación es una palabra en muchas (no todas) arquitecturas. El tamaño de dirección más grande posible, utilizado para designar una ubicación en la memoria, suele ser una palabra de hardware (aquí, "palabra de hardware" significa la palabra natural de tamaño completo del procesador, a diferencia de cualquier otra definición utilizada). .
La documentación para computadoras más antiguas con un tamaño de palabra fijo comúnmente indica los tamaños de memoria en palabras en lugar de bytes o caracteres. La documentación a veces usa prefijos métricos correctamente, a veces con redondeo, por ejemplo, 65 kilopalabras (KW) que significa 65536 palabras, y a veces los usa incorrectamente, con kilopalabras (KW) que significa 1024 palabras (210) y megapalabras (MW) que significan 1.048.576 palabras (220). Con la estandarización de los bytes de 8 bits y la direccionabilidad de bytes, indicar los tamaños de memoria en bytes, kilobytes y megabytes con potencias de 1024 en lugar de 1000 se ha convertido en la norma, aunque existe cierto uso de los prefijos binarios IEC.
Varias de las primeras computadoras (y algunas modernas también) usan decimal codificado en binario en lugar de binario simple, y generalmente tienen un tamaño de palabra de 10 o 12 dígitos decimales, y algunas de las primeras computadoras decimales no tienen ninguna longitud de palabra fija. . Los primeros sistemas binarios tendían a utilizar longitudes de palabras que eran múltiplos de 6 bits, siendo la palabra de 36 bits especialmente común en las computadoras centrales. La introducción de ASCII condujo a la transición a sistemas con longitudes de palabras múltiplos de 8 bits, siendo populares las máquinas de 16 bits en la década de 1970 antes de la transición a procesadores modernos de 32 o 64 bits. Los diseños para fines especiales, como los procesadores de señales digitales, pueden tener cualquier longitud de palabra de 4 a 80 bits.
El tamaño de una palabra a veces puede diferir del esperado debido a la compatibilidad con computadoras anteriores. Si varias variaciones compatibles o una familia de procesadores comparten una arquitectura y un conjunto de instrucciones comunes pero difieren en el tamaño de las palabras, su documentación y software pueden volverse notablemente complejos para adaptarse a la diferencia (consulte Familias de tamaños a continuación).
Usos de las palabras
Dependiendo de cómo esté organizada una computadora, las unidades de tamaño de palabra se pueden usar para:
- Números de puntos fijos
- Soportes para punto fijo, generalmente enteros, valores numéricos pueden estar disponibles en uno o en varios tamaños diferentes, pero uno de los tamaños disponibles casi siempre será la palabra. Los otros tamaños, si los hay, probablemente sean múltiples o fracciones del tamaño de la palabra. Los tamaños más pequeños normalmente se utilizan sólo para el uso eficiente de la memoria; cuando se carga en el procesador, sus valores generalmente entran en un soporte de tamaño de palabra más grande.
- Números de punto flotante
- Los titulares para los valores numéricos de punto flotante son típicamente una palabra o un múltiples de una palabra.
- Addresses
- Los titulares de direcciones de memoria deben ser de un tamaño capaz de expresar la gama necesaria de valores pero no ser excesivamente grandes, por lo que a menudo el tamaño utilizado es la palabra aunque también puede ser una fracción o múltiples del tamaño de la palabra.
- Registros
- Los registros de procesadores están diseñados con un tamaño apropiado para el tipo de datos que poseen, por ejemplo, números enteros, números de punto flotante o direcciones. Muchas arquitecturas informáticas utilizan registros de uso general que son capaces de almacenar datos en múltiples representaciones.
- Transferencia de memoria-procesador
- Cuando el procesador lee desde el subsistema de memoria en un registro o escribe el valor de un registro a la memoria, la cantidad de datos transferidos es a menudo una palabra. Históricamente, esta cantidad de bits que podrían ser transferidos en un ciclo también se llamaba un catena en algunos ambientes (como el Bull GAMMA 60 ). En los subsistemas de memoria simples, la palabra se transfiere sobre el bus de datos de memoria, que normalmente tiene un ancho de palabra o media palabra. En los subsistemas de memoria que utilizan caches, la transferencia de tamaño de palabra es la que se encuentra entre el procesador y el primer nivel de caché; a niveles inferiores de la jerarquía de memoria se utilizan normalmente transferencias más grandes (que son múltiples del tamaño de la palabra).
- Dependencia de resolución del discurso
- En una arquitectura dada, los sucesivos valores de dirección casi siempre designan unidades sucesivas de memoria; esta unidad es la unidad de resolución de direcciones. En la mayoría de las computadoras, la unidad es un personaje (por ejemplo, un byte) o una palabra. (Unas pocas computadoras han utilizado resolución bit.) Si la unidad es una palabra, entonces se puede acceder a una mayor cantidad de memoria utilizando una dirección de un tamaño dado a costa de la complejidad adicional para acceder a los caracteres individuales. Por otro lado, si la unidad es un byte, se pueden abordar caracteres individuales (es decir, seleccionados durante la operación de memoria).
- Instrucciones
- Las instrucciones de la máquina son normalmente el tamaño de la palabra de la arquitectura, como en arquitecturas RISC, o un múltiplo del tamaño del "car" que es una fracción de ella. Esta es una opción natural ya que las instrucciones y los datos suelen compartir el mismo subsistema de memoria. En las arquitecturas de Harvard las palabras tamaños de instrucciones y datos no deben estar relacionados, ya que las instrucciones y los datos se almacenan en diferentes memorias; por ejemplo, el procesador del interruptor electrónico 1ESS tiene instrucciones de 37 bits y palabras de datos de 23 bits.
Elección del tamaño de la palabra
Cuando se diseña la arquitectura de una computadora, la elección del tamaño de palabra es de gran importancia. Hay consideraciones de diseño que alientan tamaños particulares de grupos de bits para usos particulares (por ejemplo, para direcciones), y estas consideraciones apuntan a diferentes tamaños para diferentes usos. Sin embargo, consideraciones de economía en el diseño presionan fuertemente a favor de un tamaño, o muy pocos tamaños relacionados por múltiplos o fracciones (submúltiplos) de un tamaño primario. Ese tamaño preferido se convierte en el tamaño de palabra de la arquitectura.
El tamaño de los caracteres era en el pasado (codificación de caracteres de tamaño variable) una de las influencias en la unidad de resolución de direcciones y la elección del tamaño de las palabras. Antes de mediados de la década de 1960, los caracteres se almacenaban con mayor frecuencia en seis bits; esto no permitía más de 64 caracteres, por lo que el alfabeto se limitaba a mayúsculas. Dado que es eficiente en el tiempo y el espacio que el tamaño de la palabra sea un múltiplo del tamaño del carácter, los tamaños de las palabras en este período solían ser múltiplos de 6 bits (en máquinas binarias). Una elección común entonces era la palabra de 36 bits, que también es un buen tamaño para las propiedades numéricas de un formato de punto flotante.
Después de la introducción del diseño IBM System/360, que utiliza caracteres de ocho bits y admite letras minúsculas, el tamaño estándar de un carácter (o más exactamente, un byte) pasa a ser de ocho bits. A partir de entonces, los tamaños de palabra son naturalmente múltiplos de ocho bits, siendo comúnmente utilizados 16, 32 y 64 bits.
Arquitecturas de palabras variables
Los primeros diseños de máquinas incluían algunos que utilizaban lo que a menudo se denomina longitud de palabra variable. En este tipo de organización, un operando no tiene una longitud fija. Dependiendo de la máquina y de la instrucción, la longitud puede indicarse mediante un campo de recuento, mediante un carácter delimitador o mediante un bit adicional llamado, por ejemplo, bandera o marca denominativa. Estas máquinas suelen utilizar decimales codificados en binario en dígitos de 4 bits o en caracteres de 6 bits para los números. Esta clase de máquinas incluye IBM 702, IBM 705, IBM 7080, IBM 7010, UNIVAC 1050, IBM 1401, IBM 1620 y RCA 301.
La mayoría de estas máquinas funcionan con una unidad de memoria a la vez y dado que cada instrucción o dato tiene varias unidades de longitud, cada instrucción requiere varios ciclos solo para acceder a la memoria. Estas máquinas suelen ser bastante lentas debido a esto. Por ejemplo, la instrucción se recupera en un IBM 1620 Modelo. Tomo 8 ciclos (160 μs) solo para leer los 12 dígitos de la instrucción (el Modelo II redujo esto a 6 ciclos, o 4 ciclos si la instrucción no necesitaba ambos campos de dirección) . La ejecución de la instrucción requiere un número variable de ciclos, dependiendo del tamaño de los operandos.
Direccionamiento de palabra, bit y byte
El modelo de memoria de una arquitectura está fuertemente influenciado por el tamaño de las palabras. En particular, a menudo se ha elegido como palabra la resolución de una dirección de memoria, es decir, la unidad más pequeña que puede ser designada por una dirección. En este enfoque, el enfoque de máquina direccionable por palabras, los valores de dirección que difieren en uno designan palabras de memoria adyacentes. Esto es natural en máquinas que casi siempre trabajan con unidades de palabras (o de varias palabras) y tiene la ventaja de permitir que las instrucciones utilicen campos de tamaño mínimo para contener direcciones, lo que puede permitir un tamaño de instrucción más pequeño o una mayor variedad de instrucciones.
Cuando el procesamiento de bytes va a ser una parte importante de la carga de trabajo, suele ser más ventajoso utilizar el byte, en lugar de la palabra, como unidad de resolución de direcciones. Los valores de dirección que difieren en uno designan bytes adyacentes en la memoria. Esto permite abordar directamente un carácter arbitrario dentro de una cadena de caracteres. Aún se puede direccionar una palabra, pero la dirección que se utilizará requiere unos cuantos bits más que la alternativa de resolución de palabras. El tamaño de la palabra debe ser un múltiplo entero del tamaño de los caracteres en esta organización. Este enfoque de direccionamiento se utilizó en IBM 360 y ha sido el enfoque más común en las máquinas diseñadas desde entonces.
Cuando la carga de trabajo implica procesar campos de diferentes tamaños, puede resultar ventajoso dirigirse al bit. Las máquinas con direccionamiento de bits pueden tener algunas instrucciones que utilizan un tamaño de bytes definido por el programador y otras instrucciones que operan con tamaños de datos fijos. Como ejemplo, en IBM 7030 ("Stretch"), una instrucción de punto flotante solo puede direccionar palabras, mientras que una instrucción aritmética de enteros puede especificar una longitud de campo de 1 a 64 bits, un tamaño de byte de 1 a 8 bits y un desplazamiento del acumulador de 0-127 bits.
En una máquina direccionable por bytes con instrucciones de almacenamiento a almacenamiento (SS), normalmente hay instrucciones de movimiento para copiar uno o varios bytes de una ubicación arbitraria a otra. En una máquina orientada a bytes (direccionable por bytes) sin instrucciones SS, mover un solo byte de una ubicación arbitraria a otra suele ser:
- LOAD the source byte
- STORE the result back in the target byte
Se puede acceder a bytes individuales en una máquina orientada a palabras de dos maneras. Los bytes se pueden manipular mediante una combinación de operaciones de desplazamiento y máscara en los registros. Mover un solo byte de una ubicación arbitraria a otra puede requerir el equivalente de lo siguiente:
- LOAD la palabra que contiene el byte fuente
- SHIFT la palabra fuente para alinear el byte deseado a la posición correcta en la palabra diana
- Y la palabra fuente con una máscara para cero todos menos los bits deseados
- LOAD la palabra que contiene el byte objetivo
- Y la palabra objetivo con una máscara para cero el byte objetivo
- O los registros que contienen la fuente y las palabras de destino para insertar el byte fuente
- STORE the result back in the target location
Como alternativa, muchas máquinas orientadas a palabras implementan operaciones de bytes con instrucciones que utilizan punteros de bytes especiales en registros o memoria. Por ejemplo, el puntero de bytes PDP-10 contenía el tamaño del byte en bits (lo que permitía acceder a bytes de diferentes tamaños), la posición del bit del byte dentro de la palabra y la dirección de palabra de los datos. Las instrucciones podrían ajustar automáticamente el puntero al siguiente byte, por ejemplo, en operaciones de carga y depósito (almacenamiento).
Potencias de dos
Se utilizan diferentes cantidades de memoria para almacenar valores de datos con diferentes grados de precisión. Los tamaños comúnmente utilizados suelen ser una potencia de dos múltiplos de la unidad de resolución de dirección (byte o palabra). Convertir el índice de un elemento en una matriz en el desplazamiento de la dirección de memoria del elemento requiere solo una operación de desplazamiento en lugar de una multiplicación. En algunos casos esta relación también puede evitar el uso de operaciones de división. Como resultado, la mayoría de los diseños de computadoras modernos tienen tamaños de palabras (y otros tamaños de operandos) que son una potencia de dos veces el tamaño de un byte.
Familias de tamaños
A medida que los diseños informáticos se han vuelto más complejos, la importancia central del tamaño de una sola palabra para una arquitectura ha disminuido. Aunque un hardware más capaz puede utilizar una variedad más amplia de tamaños de datos, las fuerzas del mercado ejercen presión para mantener la compatibilidad con versiones anteriores y al mismo tiempo ampliar la capacidad del procesador. Como resultado, lo que podría haber sido el tamaño de palabra central en un diseño nuevo tiene que coexistir como un tamaño alternativo al tamaño de palabra original en un diseño compatible con versiones anteriores. El tamaño original de la palabra seguirá estando disponible en diseños futuros, formando la base de una familia de tamaños.
A mediados de la década de 1970, DEC diseñó el VAX para que fuera un sucesor de 32 bits del PDP-11 de 16 bits. Usaron palabra para una cantidad de 16 bits, mientras que palabra larga se refería a una cantidad de 32 bits; esta terminología es la misma que la terminología utilizada para el PDP-11. Esto contrastaba con las máquinas anteriores, donde la unidad natural de direccionamiento de la memoria se llamaría palabra, mientras que una cantidad que fuera media palabra se llamaría media palabra. De acuerdo con este esquema, una quadword VAX es de 64 bits. Continuaron con esta terminología de palabra de 16 bits/palabra larga de 32 bits/palabra cuádruple de 64 bits con el Alpha de 64 bits.
Otro ejemplo es la familia x86, de la que se han lanzado procesadores con tres longitudes de palabras diferentes (16 bits, luego 32 y 64 bits), mientras que word sigue designando un procesador de 16 bits. cantidad de bits. Como el software se traslada habitualmente de una longitud de palabra a la siguiente, algunas API y documentación definen o hacen referencia a una longitud de palabra anterior (y por lo tanto más corta) que la longitud completa de la palabra en la CPU para la que se puede compilar el software. Además, de manera similar a cómo se usan los bytes para números pequeños en muchos programas, se puede usar una palabra más corta (16 o 32 bits) en contextos donde no se necesita el rango de una palabra más amplia (especialmente cuando esto puede ahorrar un considerable espacio de pila o caché). espacio de memoria). Por ejemplo, la API de Windows de Microsoft mantiene la definición del lenguaje de programación de WORD como 16 bits, a pesar de que la API puede usarse en un procesador x86 de 32 o 64 bits, donde el El tamaño de palabra estándar sería de 32 o 64 bits, respectivamente. Las estructuras de datos que contienen palabras de diferentes tamaños se refieren a ellas como:
- WORD (16 bits/2 bytes)
- DWORD (32 bits/4 bytes)
- QWORD (64 bits/8 bytes)
Se ha desarrollado un fenómeno similar en el lenguaje ensamblador x86 de Intel: debido a la compatibilidad con varios tamaños (y compatibilidad con versiones anteriores) en el conjunto de instrucciones, algunos mnemotécnicos de instrucción llevan "d" o "q" identificadores que denotan "doble-", "cuádruple-" o "double-quad-", que están en términos del tamaño de palabra de 16 bits original de la arquitectura.
Un ejemplo con un tamaño de palabra diferente es la familia IBM System/360. En la arquitectura System/360, la arquitectura System/370 y la arquitectura System/390, hay byte de 8 bits, media palabra de 16 bits, media palabra de 32 bits. >palabras y palabras dobless de 64 bits. La arquitectura z/, que es el miembro de 64 bits de esa familia de arquitectura, continúa refiriéndose a media palabra de 16 bits, palabra de 32 bits y 64 bits. bit doublewords y, además, presenta quadwords de 128 bits.
En general, los nuevos procesadores deben utilizar las mismas longitudes de palabras de datos y anchos de direcciones virtuales que un procesador más antiguo para tener compatibilidad binaria con ese procesador más antiguo.
A menudo, el código fuente cuidadosamente escrito (escrito teniendo en cuenta la compatibilidad del código fuente y la portabilidad del software) se puede recompilar para ejecutarlo en una variedad de procesadores, incluso aquellos con diferentes longitudes de palabras de datos o diferentes anchos de direcciones, o ambos.
Tabla de tamaños de palabras
clave: bit: bits, c: caracteres, d: decimal digits, w: tamaño de palabra de la arquitectura, n: tamaño variable, wm: marca de palabras | |||||||
---|---|---|---|---|---|---|---|
Año | Computadora arquitectura | Tamaño de la palabra w | Integer tamaños | Punto flotante tamaños | Instrucción tamaños | Dependencia de dirección resolución | Tamaño de la carga |
1837 | Babbage Motor analítico | 50 d | w | — | Se utilizaron cinco tarjetas diferentes para diferentes funciones, el tamaño exacto de las tarjetas no conocidas. | w | — |
1941 | Zuse Z3 | 22 bits | — | w | 8 bit | w | — |
1942 | ABC | 50 bits | w | — | — | — | — |
1944 | Harvard Mark I | 23 d | w | — | 24 bits | — | — |
1946 (1948) {1953} | ENIAC (w/Panel #16) {w/Panel #26} | 10 d | w, 2w w) {w} | — | — (2 d, 4 d, 6 d, 8 d) {2 d, 4 d, 6 d, 8 d} | — — {w} | — |
1948 | Manchester Baby | 32 bits | w | — | w | w | — |
1951 | UNIVAC I | 12 d | w | — | 1.2w | w | 1 d |
1952 | IAS machine | 40 bits | w | — | 1.2w | w | 5 bit |
1952 | Fast Universal Digital Computer M-2 | 34 bit | ¿Qué? | w | 34 bit = 4 bits opcode más 3×10 bit address | 10 bits | — |
1952 | IBM 701 | 36 bits | 1.2w, w | — | 1.2w | 1.2w, w | 6 bits |
1952 | UNIVAC 60 | n d | 1 d, 10 d | — | — | — | 2 d, 3 d |
1952 | ARRA I | 30 bits | w | — | w | w | 5 bit |
1953 | IBM 702 | n c | 0 c, 511 c | — | 5 c | c | 6 bits |
1953 | UNIVAC 120 | n d | 1 d, 10 d | — | — | — | 2 d, 3 d |
1953 | ARRA II | 30 bits | w | 2w | 1.2w | w | 5 bit |
1954 (1955) | IBM 650 (w/IBM 653) | 10 d | w | — w) | w | w | 2 d |
1954 | IBM 704 | 36 bits | w | w | w | w | 6 bits |
1954 | IBM 705 | n c | 0 c, 255 c | — | 5 c | c | 6 bits |
1954 | IBM NORC | 16 d | w | w, 2w | w | w | — |
1956 | IBM 305 | n d | 1 d, 100 d | — | 10 d | d | 1 d |
1956 | ARMAC | 34 bit | w | w | 1.2w | w | 5 bits, 6 bits |
1956 | LGP-30 | 31 bit | w | — | 16 bits | w | 6 bits |
1958 | UNIVAC II | 12 d | w | — | 1.2w | w | 1 d |
1958 | SAGE | 32 bits | 1.2w | — | w | w | 6 bits |
1958 | Autonetics Recomp II | 40 bits | w, 79 bits, 8 d, 15 d | 2w | 1.2w | 1.2w, w | 5 bit |
1958 | ZEBRA | 33 bit | w, 65 bit | 2w | w | w | 5 bit |
1958 | Setun | 6 trit (~9.5 bits) | hasta 6 intentos | hasta 3 pruebas | 4 tritios? | ||
1958 | Electrologica X1 | 27 bits | w | 2w | w | w | 5 bits, 6 bits |
1959 | IBM 1401 | n c | 1 c,... | — | 1 c, 2 c, 4 c, 5 c, 7 c, 8 c | c | 6 bits + wm |
1959 (TBD) | IBM 1620 | n d | 2 d,... | — (4 d,... 102 d) | 12 d | d | 2 d |
1960 | LARC | 12 d | w, 2w | w, 2w | w | w | 2 d |
1960 | CDC 1604 | 48 bits | w | w | 1.2w | w | 6 bits |
1960 | IBM 1410 | n c | 1 c,... | — | 1 c, 2 c, 6 c, 7 c, 11 c, 12 c | c | 6 bits + wm |
1960 | IBM 7070 | 10 d | w, 1-9 d | w | w | w, d | 2 d |
1960 | PDP-1 | 18 bits | w | — | w | w | 6 bits |
1960 | Elliott 803 | 39 bits | |||||
1961 | IBM 7030 (Stretch) | 64 bits | 1 bit, 64 bits, 1 d, 16 d | w | 1.2w, w | bit (integer), 1.2w (branch) w (float) | 1 bit, 8 bits |
1961 | IBM 7080 | n c | 0 c, 255 c | — | 5 c | c | 6 bits |
1962 | GE-6xx | 36 bits | w, 2 w | w, 2 w, 80 bit | w | w | 6 bits, 9 bits |
1962 | UNIVAC III | 25 bits | w, 2w, 3w, 4w, 6 d, 12 d | — | w | w | 6 bits |
1962 | Autonetics D-17B Minuteman I Guidance Computer | 27 bits | 11 bits, 24 bits | — | 24 bits | w | — |
1962 | UNIVAC 1107 | 36 bits | 1.6w, 1.3w, 1.2w, w | w | w | w | 6 bits |
1962 | IBM 7010 | n c | 1 c,... | — | 1 c, 2 c, 6 c, 7 c, 11 c, 12 c | c | 6 b + wm |
1962 | IBM 7094 | 36 bits | w | w, 2w | w | w | 6 bits |
1962 | SDS 9 Series | 24 bits | w | 2w | w | w | |
1963 (1966) | Apollo Guidance Computer | 15 bits | w | — | w, 2w | w | — |
1963 | Saturno vehículo de lanzamiento de computadora digital | 26 bits | w | — | 13 bit | w | — |
1964/1966 | PDP-6/PDP-10 | 36 bits | w | w, 2 w | w | w | 6 bits 7 bit (típico) 9 bit |
1964 | Titan | 48 bits | w | w | w | w | w |
1964 | CDC 6600 | 60 bits | w | w | 1.4w, 1.2w | w | 6 bits |
1964 | Autonetics D-37C Minuteman II Guidance Computer | 27 bits | 11 bits, 24 bits | — | 24 bits | w | 4 bits, 5 bits |
1965 | Gemini Guidance Computer | 39 bits | 26 bits | — | 13 bit | 13 bit, 26 | -bit |
1965 | IBM 1130 | 16 bits | w, 2w | 2w, 3w | w, 2w | w | 8 bit |
1965 | IBM System/360 | 32 bits | 1.2w, w, 1 d, 16 d | w, 2w | 1.2w, w, 11.2w | 8 bit | 8 bit |
1965 | UNIVAC 1108 | 36 bits | 1.6w, 1.4w, 1.3w, 1.2w, w, 2w | w, 2w | w | w | 6 bits, 9 bits |
1965 | PDP-8 | 12 bits | w | — | w | w | 8 bit |
1965 | Electrologica X8 | 27 bits | w | 2w | w | w | 6 bits, 7 bits |
1966 | SDS Sigma 7 | 32 bits | 1.2w, w | w, 2w | w | 8 bit | 8 bit |
1969 | Sistemas de cuatro fases AL1 | 8 bit | w | — | ? | ? | ? |
1970 | MP944 | 20 bits | w | — | ? | ? | ? |
1970 | PDP-11 | 16 bits | w | 2w, 4w | w, 2w, 3w | 8 bit | 8 bit |
1971 | CDC STAR-100 | 64 bits | 1.2w, w | 1.2w, w | 1.2w, w | bit | 8 bit |
1971 | TMS1802NC | 4 bits | w | — | ? | ? | — |
1971 | Intel 4004 | 4 bits | w, d | — | 2w, 4w | w | — |
1972 | Intel 8008 | 8 bit | w2 d | — | w, 2w, 3w | w | 8 bit |
1972 | Calcomp 900 | 9 bit | w | — | w, 2w | w | 8 bit |
1974 | Intel 8080 | 8 bit | w, 2w2 d | — | w, 2w, 3w | w | 8 bit |
1975 | ILLIAC IV | 64 bits | w | w, 1.2w | w | w | — |
1975 | Motorola 6800 | 8 bit | w2 d | — | w, 2w, 3w | w | 8 bit |
1975 | MOS Tech. 6501 MOS Tech. 6502 | 8 bit | w2 d | — | w, 2w, 3w | w | 8 bit |
1976 | Cray-1 | 64 bits | 24 bits, w | w | 1.4w, 1.2w | w | 8 bit |
1976 | Zilog Z80 | 8 bit | w, 2w2 d | — | w, 2w, 3w, 4w5w | w | 8 bit |
1978 (1980) | 16-bit x86 (Intel 8086) (w/punto de flotación: Intel 8087) | 16 bits | 1.2w, w2 d | — (22)w, 4w5w, 17 d) | 1.2w, w, ... 7w | 8 bit | 8 bit |
1978 | VAX | 32 bits | 1.4w, 1.2w, w1 d, 31 d, 1 bit, 32 bits | w, 2w | 1.4w, ... 141.4w | 8 bit | 8 bit |
1979 (1984) | Serie Motorola 68000 (w/punto flotante) | 32 bits | 1.4w, 1.2w, w2 d | — ()w, 2w, 21.2w) | 1.2w, w, ... 71.2w | 8 bit | 8 bit |
1985 | IA-32 (Intel 80386) (w/floating point) | 32 bits | 1.4w, 1.2w, w | — ()w, 2w, 80 bits) | 8 bits, 120 bits 1.4w... 33.4w | 8 bit | 8 bit |
1985 | ARMv1 | 32 bits | 1.4w, w | — | w | 8 bit | 8 bit |
1985 | MIPS I | 32 bits | 1.4w, 1.2w, w | w, 2w | w | 8 bit | 8 bit |
1991 | Cray C90 | 64 bits | 32 bits, w | w | 1.4w, 1.2w, 48 bit | w | 8 bit |
1992 | Alfa | 64 bits | 8 bits, 1.4w, 1.2w, w | 1.2w, w | 1.2w | 8 bit | 8 bit |
1992 | PowerPC | 32 bits | 1.4w, 1.2w, w | w, 2w | w | 8 bit | 8 bit |
1996 | ARMv4 (w/Thumb) | 32 bits | 1.4w, 1.2w, w | — | w ()1.2w, w) | 8 bit | 8 bit |
2000 | IBM z/Arquitectura (w/vector facility) | 64 bits | 1.4w, 1.2w, w 1 d, 31 d | 1.2w, w, 2w | 1.4w, 1.2w, 3.4w | 8 bit | 8 bits, UTF-16, UTF-32 |
2001 | IA-64 | 64 bits | 8 bits, 1.4w, 1.2w, w | 1.2w, w | 41 bits (en paquetes de 128 bits) | 8 bit | 8 bit |
2001 | ARMv6 (w/VFP) | 32 bits | 8 bits, 1.2w, w | — (w, 2w) | 1.2w, w | 8 bit | 8 bit |
2003 | x86-64 | 64 bits | 8 bits, 1.4w, 1.2w, w | 1.2w, w, 80 bit | 8 bits, 120 bits | 8 bit | 8 bit |
2013 | ARMv8-A y ARMv9-A | 64 bits | 8 bits, 1.4w, 1.2w, w | 1.2w, w | 1.2w | 8 bit | 8 bit |
Año | Computadora arquitectura | Tamaño de la palabra w | Integer tamaños | Punto flotante tamaños | Instrucción tamaños | Dependencia de dirección resolución | Tamaño de la carga |
clave: bit: bits, c: caracteres, d: decimal digits, w: tamaño de palabra de la arquitectura, n: tamaño variable, wm: marca de palabras |
Contenido relacionado
Tarjeta perforada
CPython
Arquitectura Harvard