De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

En informática , una palabra es la unidad natural de datos utilizada por un diseño de procesador en 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 en una palabra (el tamaño de la palabra , el ancho de la palabra o la longitud de la palabra ) es una característica importante de cualquier diseño de procesador o arquitectura de computadora específicos .

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 la mayor parte de datos que se puede transferir hacia y desde la memoria de trabajo en una sola operación es una palabra en muchas (no todas) las arquitecturas. El tamaño de dirección más grande posible , que se usa para designar una ubicación en la memoria, es típicamente 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).

Varias de las primeras computadoras (y algunas modernas también) usaban decimales codificados en binario en lugar de binario simple , por lo general tenían un tamaño de palabra de 10 o 12 dígitos decimales , y algunas de las primeras computadoras decimales no tenían una longitud de palabra fija en absoluto. Los primeros sistemas binarios tendían a utilizar longitudes de palabra 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 llevó al cambio a sistemas con longitudes de palabra que eran múltiplos de 8 bits, y las máquinas de 16 bits eran populares en la década de 1970 antes del cambio a procesadores modernos con 32 o 64 bits. [1] Diseños especiales comoprocesadores de señales digitales , pueden tener cualquier longitud de palabra de 4 a 80 bits. [1]

El tamaño de una palabra a veces puede diferir del esperado debido a la compatibilidad con versiones anteriores de computadoras. 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 [ editar ]

Dependiendo de cómo esté organizada una computadora, las unidades del tamaño de una palabra pueden usarse para:

Números de coma fija
Los soportes para valores numéricos de punto fijo , generalmente enteros , pueden estar disponibles en uno o en varios tamaños diferentes, pero uno de los tamaños disponibles será casi siempre la palabra. Los otros tamaños, si los hay, probablemente sean múltiplos o fracciones del tamaño de la palabra. Los tamaños más pequeños se utilizan normalmente sólo para un uso eficiente de la memoria; cuando se cargan en el procesador, sus valores suelen ir a un contenedor más grande del tamaño de una palabra.
Números de punto flotante
Los titulares de valores numéricos de coma flotante suelen ser una palabra o un múltiplo de una palabra.
Direcciones
Los titulares de direcciones de memoria deben tener un tamaño capaz de expresar el rango de valores necesario, pero no excesivamente grandes, por lo que a menudo el tamaño utilizado es la palabra, aunque también puede ser un múltiplo o una fracción del tamaño de la palabra.
Registros
Los registros de procesador están diseñados con un tamaño apropiado para el tipo de datos que contienen, por ejemplo, números enteros, números de coma flotante o direcciones. Muchas arquitecturas de computadora utilizan registros de propósito general que son capaces de almacenar datos en múltiples representaciones.
Transferencia de memoria-procesador
Cuando el procesador lee del subsistema de memoria en un registro o escribe el valor de un registro en la memoria, la cantidad de datos transferidos suele ser una palabra. Históricamente, esta cantidad de bits que podían transferirse en un ciclo también se denominaba catena en algunos entornos (como el Bull GAMMA 60  [ fr ] ). [2] [3] En subsistemas de memoria simples, la palabra se transfiere a través del bus de datos de memoria , que normalmente tiene un ancho de una palabra o media palabra. En los subsistemas de memoria que utilizan cachés , la transferencia del tamaño de una palabra es la que se realiza entre el procesador y el primer nivel de caché; en niveles inferiores de la jerarquía de la memoria Normalmente se utilizan transferencias más grandes (que son un múltiplo del tamaño de la palabra).
Unidad de resolución de direcciones
En una arquitectura dada, los valores de dirección sucesivos 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 carácter (por ejemplo, un byte) o una palabra. (Algunas computadoras han usado resolución de bits). Si la unidad es una palabra, entonces se puede acceder a una mayor cantidad de memoria usando una dirección de un tamaño dado a costa de una mayor complejidad para acceder a caracteres individuales. Por otro lado, si la unidad es un byte, entonces se pueden direccionar caracteres individuales (es decir, seleccionarlos durante la operación de memoria).
Instrucciones
Las instrucciones de máquina son normalmente del tamaño de la palabra de la arquitectura, como en las arquitecturas RISC , o un múltiplo del tamaño de "char" que es una fracción. Esta es una elección natural, ya que las instrucciones y los datos suelen compartir el mismo subsistema de memoria. En las arquitecturas de Harvard, los tamaños de palabras de las instrucciones y los datos no necesitan estar relacionados, ya que las instrucciones y los datos se almacenan en diferentes memorias; por ejemplo, el procesador en el conmutador telefónico electrónico 1ESS tenía instrucciones de 37 bits y palabras de datos de 23 bits.

Elección del tamaño de la palabra [ editar ]

Cuando se diseña una arquitectura de computadora, la elección del tamaño de una palabra es de importancia sustancial. Hay consideraciones de diseño que fomentan tamaños de grupos de bits particulares para usos particulares (por ejemplo, para direcciones), y estas consideraciones apuntan a diferentes tamaños para diferentes usos. Sin embargo, las consideraciones de economía en el diseño presionan fuertemente por un tamaño, o muy pocos tamaños relacionados por múltiplos o fracciones (submúltiplos) a un tamaño primario. Ese tamaño preferido se convierte en el tamaño de la palabra de la arquitectura.

El tamaño de los caracteres fue en el pasado ( codificación de caracteres de tamaño pre-variable ) una de las influencias en la resolución de la unidad de dirección y la elección del tamaño de la palabra. Antes de mediados de la década de 1960, los caracteres se almacenaban con mayor frecuencia en seis bits; esto permitió no más de 64 caracteres, por lo que el alfabeto se limitó 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 eran generalmente múltiplos de 6 bits (en máquinas binarias). Entonces, una opción común fue 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 utilizaba caracteres de ocho bits y admitía letras minúsculas, el tamaño estándar de un carácter (o más exactamente, un byte ) se convirtió en ocho bits. A partir de entonces, los tamaños de las palabras fueron naturalmente múltiplos de ocho bits, siendo de uso común 16, 32 y 64 bits.

Arquitecturas de palabras variables [ editar ]

Los primeros diseños de máquinas incluían algunos que usaban lo que a menudo se denomina una longitud de palabra variable . En este tipo de organización, un operando numérico no tenía una longitud fija, sino que su final se detectaba cuando se encontraba un carácter con una marca especial, a menudo denominada marca denominativa . Estas máquinas a menudo utilizan decimales codificados en binario para los números. Esta clase de máquinas incluía IBM 702 , IBM 705 , IBM 7080 , IBM 7010 , UNIVAC 1050 , IBM 1401 e IBM 1620 .

La mayoría de estas máquinas trabajan en una unidad de memoria a la vez y, dado que cada instrucción o dato tiene varias unidades, cada instrucción necesita varios ciclos solo para acceder a la memoria. Estas máquinas suelen ser bastante lentas debido a esto. Por ejemplo, las búsquedas de instrucciones en un IBM 1620 Modelo I requieren 8 ciclos 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 tomó un número de ciclos completamente variable, dependiendo del tamaño de los operandos.

Direccionamiento de palabras y bytes [ editar ]

El modelo de memoria de una arquitectura está fuertemente influenciado por el tamaño de la palabra. En particular, 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, a menudo se ha elegido como palabra. En este enfoque, el enfoque de máquina direccionable por palabra , los valores de dirección que difieren en uno designan palabras de memoria adyacentes. Esto es natural en máquinas que tratan casi siempre en unidades de palabras (o de varias palabras) y tiene la ventaja de permitir que las instrucciones usen 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 variedad más grande 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 direccionar 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 algunos 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 del carácter 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.

En una máquina orientada a bytes ( direccionable por bytes ), mover un solo byte de una ubicación arbitraria a otra suele ser:

  1. CARGAR el byte fuente
  2. ALMACENAR el resultado en el byte de destino

Se puede acceder a bytes individuales en una máquina orientada a palabras de dos formas. Los bytes se pueden manipular mediante una combinación de operaciones de cambio y máscara en los registros. Mover un solo byte de una ubicación arbitraria a otra puede requerir el equivalente de lo siguiente:

  1. CARGUE la palabra que contiene el byte fuente
  2. MAYÚS la palabra de origen para alinear el byte deseado con la posición correcta en la palabra de destino
  3. Y la palabra fuente con una máscara para poner a cero todos los bits menos los deseados
  4. CARGUE la palabra que contiene el byte de destino
  5. Y la palabra de destino con una máscara para poner a cero el byte de destino
  6. O los registros que contienen las palabras de origen y destino para insertar el byte de origen
  7. ALMACENAR el resultado en la ubicación de destino

Alternativamente, muchas máquinas orientadas a palabras implementan operaciones de bytes con instrucciones que usan 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 permite acceder a bytes de diferentes tamaños), la posición de 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 en, por ejemplo, las operaciones de carga y depósito (almacenamiento).

Poderes de dos [ editar ]

Se utilizan diferentes cantidades de memoria para almacenar valores de datos con diferentes grados de precisión. Los tamaños de uso común suelen ser una potencia de dos múltiplos de la unidad de resolución de la dirección (byte o palabra). La conversión del índice de un elemento en una matriz en la dirección del elemento requiere solo una operación de cambio 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 computadora modernos tienen tamaños de palabras (y otros tamaños de operandos) que tienen una potencia dos veces mayor que el tamaño de un byte.

Familias de tallas [ editar ]

A medida que los diseños por computadora se han vuelto más complejos, la importancia central de un tamaño de palabra única 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 al tiempo que amplían la capacidad del procesador. Como resultado, lo que podría haber sido el tamaño de la palabra central en un diseño nuevo tiene que coexistir como un tamaño alternativo al tamaño de la palabra original en un diseño compatible con versiones anteriores. El tamaño de la palabra original permanece 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 refirió a una cantidad de 32 bits. Esto fue en contraste con las máquinas anteriores, donde la unidad natural de direccionamiento de memoria se llama una palabra , mientras que una cantidad que es la mitad de una palabra se llama una media palabra . De acuerdo con este esquema, una palabra cuádruple VAX es de 64 bits. Continuaron esta terminología de palabra / palabra larga / palabra cuádruple con el Alpha de 64 bits .

Otro ejemplo es la familia x86 , de la cual se han lanzado procesadores de tres longitudes de palabra diferentes (16 bits, luego 32 y 64 bits), mientras que palabra continúa designando una cantidad de 16 bits. Dado que 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 más antigua (y, por lo tanto, más corta) que la longitud de palabra completa 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, una palabra más corta (16 o 32 bits) se puede usar en contextos donde no se necesita el rango de una palabra más amplia (especialmente cuando esto puede ahorrar un espacio de pila o caché considerable). espacio de memoria). Por ejemplo, la API de Windows de Microsoftmantiene la definición del lenguaje de programación de WORD en 16 bits, a pesar de que la API puede usarse en un procesador x86 de 32 o 64 bits, donde 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) y QWORD (64 bits / 8 bytes) respectivamente. Un fenómeno similar se ha desarrollado en el lenguaje ensamblador x86 de Intel. - debido al soporte para varios tamaños (y compatibilidad con versiones anteriores) en el conjunto de instrucciones, algunos mnemónicos de instrucciones llevan identificadores "d" o "q" que denotan "doble-", "cuádruple-" o "doble-cuádruple-", que son en términos del tamaño de palabra original de 16 bits de la arquitectura.

En general, los nuevos procesadores deben usar 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 , puede recompilarse para ejecutarse en una variedad de procesadores, incluso aquellos con diferentes longitudes de palabras de datos o diferentes anchos de dirección o ambos.

Tabla de tamaños de palabras [ editar ]

[6] [7]

Ver también [ editar ]

  • Entero (ciencias de la computación)

Referencias [ editar ]

  1. ↑ a b Beebe, Nelson HF (22 de agosto de 2017). "Capítulo I. Aritmética de enteros". El manual de computación de funciones matemáticas - Programación usando la biblioteca de software portátil MathCW (1 ed.). Salt Lake City, UT, Estados Unidos: Springer International Publishing AG . pag. 970. doi : 10.1007 / 978-3-319-64110-2 . ISBN 978-3-319-64109-6. LCCN  2017947446 . S2CID  30244721 .
  2. Dreyfus, Phillippe (8 de mayo de 1958) [6 de mayo de 1958]. Escrito en Los Ángeles, California, EE. UU. Diseño del sistema del Gamma 60 (PDF) . Conferencia de Computación Conjunta Occidental : Contrastes en Computadoras. ACM, Nueva York, NY, EE. UU. págs. 130-133. IRE-ACM-AIEE '58 (occidental). Archivado (PDF) desde el original el 3 de abril de 2017 . Consultado el 3 de abril de 2017 . [...] Se utiliza código de datos interno: los datos cuantitativos (numéricos) se codifican en un código decimal de 4 bits; Los datos cualitativos (alfanuméricos) se codifican en un código alfanumérico de 6 bits. El código de instrucción interno significa que las instrucciones están codificadas en código binario directo.
    En cuanto a la longitud de la información interna, el cuanto de información se denomina " catena " y se compone de 24 bits que representan 6 dígitos decimales o 4 caracteres alfanuméricos. Este cuanto debe contener un múltiplo de 4 y 6 bits para representar un número entero de caracteres decimales o alfanuméricos. Se descubrió que veinticuatro bits era un buen compromiso entre el mínimo de 12 bits, lo que conduciría a un flujo de transferencia demasiado bajo desde una memoria central de lectura paralela, y 36 bits o más, que se consideró un cuanto de información demasiado grande. La catena debe considerarse como el equivalente de un carácter en máquinas de longitud variable de palabras, pero no puede denominarse así, ya que puede contener varios caracteres. Se transfiere en serie hacia y desde la memoria principal.
    No queriendo llamar a un "cuanto" una palabra, o un conjunto de caracteres una letra (una palabra es una palabra y un cuanto es otra cosa), se hizo una nueva palabra, y se llamó "catena". Es una palabra inglesa y existe en Webster, aunque no en francés. La definición de Webster de la palabra catena es "una serie conectada"; por lo tanto, un elemento de información de 24 bits. La palabra catena se utilizará de aquí en adelante.
    Por tanto, se ha definido el código interno. Ahora bien, ¿qué son los códigos de datos externos? Estos dependen principalmente del dispositivo de manejo de información involucrado. El Gamma 60  [ fr ]está diseñado para manejar información relevante para cualquier estructura codificada en binario. Por tanto, una tarjeta perforada de 80 columnas se considera un elemento de información de 960 bits; 12 filas multiplicadas por 80 columnas equivalen a 960 golpes posibles; se almacena como una imagen exacta en 960 núcleos magnéticos de la memoria principal con 2 columnas de tarjetas ocupando una catena. [...]
  3. ^ Blaauw, Gerrit Anne ; Brooks, Jr., Frederick Phillips ; Buchholz, Werner (1962). "4: Unidades de datos naturales" (PDF) . En Buchholz, Werner (ed.). Planificación de un sistema informático: estiramiento del proyecto . McGraw-Hill Book Company, Inc. / The Maple Press Company, York, PA. págs. 39–40. LCCN 61-10466 . Archivado (PDF) desde el original el 3 de abril de 2017 . Consultado el 3 de abril de 2017 . [...] Los términos utilizados aquí para describir la estructura impuesta por el diseño de la máquina, además de la barrena , se enumeran a continuación. Byte  
    denota un grupo de bits utilizados para codificar un carácter, o el número de bits transmitidos en paralelo hacia y desde unidades de entrada-salida. Aquí se utiliza un término que no sea carácter porque un carácter dado puede estar representado en diferentes aplicaciones por más de un código, y diferentes códigos pueden usar diferentes números de bits (es decir, diferentes tamaños de bytes). En la transmisión de entrada-salida, la agrupación de bits puede ser completamente arbitraria y no tener relación con los caracteres reales. (El término se acuña a partir de mordida , pero se vuelve a escribir para evitar una mutación accidental a bit .)
    Una palabra consiste en el número de bits de datos transmitidos en paralelo desde o hacia la memoria en un ciclo de memoria. Tamaño de la palabrase define así como una propiedad estructural de la memoria. (El término catena fue acuñado con este propósito por los diseñadores de la computadora Bull GAMMA 60  [ fr ] .)
    Bloque se refiere al número de palabras transmitidas hacia o desde una unidad de entrada-salida en respuesta a una sola instrucción de entrada-salida. El tamaño del bloque es una propiedad estructural de una unidad de entrada-salida; puede haber sido fijado por el diseño o dejado que el programa lo modifique. [...]
  4. Clippinger, Richard F. (29 de septiembre de 1948). "Un Sistema de Codificación Lógica Aplicado a la ENIAC (Integrador Numérico Electrónico y Computadora)" . Campo de pruebas de Aberdeen, Maryland, EE. UU .: Laboratorios de investigación balística . Informe No. 673; Proyecto No. TB3-0007 de la División de Investigación y Desarrollo, Departamento de Artillería . Consultado el 5 de abril de 2017 .
  5. Clippinger, Richard F. (29 de septiembre de 1948). "Un sistema de codificación lógica aplicado a la ENIAC" . Campo de pruebas de Aberdeen, Maryland, EE. UU .: Laboratorios de investigación balística . Sección VIII: ENIAC modificado . Consultado el 5 de abril de 2017 .
  6. ^ Blaauw, Gerrit Anne ; Brooks, Jr., Frederick Phillips (1997). Arquitectura informática: conceptos y evolución (1 ed.). Addison-Wesley . ISBN 0-201-10557-8. (1213 páginas) (NB. Esta es una edición de un solo volumen. Este trabajo también estaba disponible en una versión de dos volúmenes).
  7. ^ Ralston, Anthony; Reilly, Edwin D. (1993). Enciclopedia de Ciencias de la Computación (3ª ed.). Van Nostrand Reinhold . ISBN 0-442-27679-6.