Palabra (informática)

En el contexto de la informática, una palabra es una cadena finita de bits que son manejados como un conjunto por la máquina. El tamaño o longitud de una palabra hace referencia al número de bits contenidos en ella, y es un aspecto muy importante al momento de diseñar una arquitectura de ordenadores.

El tamaño de una palabra se refleja en muchos aspectos de la estructura y las operaciones de las computadoras. La mayoría de los registros en un ordenador normalmente tienen el tamaño de la palabra. El valor numérico típico manipulado por un ordenador es probablemente el tamaño de palabra. La cantidad de datos transferidos entre la CPU del ordenador y el sistema de memoria a menudo es más de una palabra. Una dirección utilizada para designar una localización de memoria a menudo ocupa una palabra.

Los ordenadores modernos normalmente tienen un tamaño de palabra de 16, 32 ó 64 bits. Muchos otros tamaños se han utilizado en el pasado, como 8, 9, 12, 18, 24, 36, 39, 40, 48 y 60 bits. El slab es uno de los ejemplos de uno de los primeros tamaños de palabra. Algunos de los primeros ordenadores eran decimales en vez de binarios, típicamente teniendo un tamaño de palabra de 10 ó 12 dígitos decimales y algunos de los primeros ordenadores no tenían una longitud de palabra fija.

Algunas veces, el tamaño de una palabra se define para tener un valor particular por compatibilidad con los ordenadores anteriores. Los microprocesadores utilizados en ordenadores personales (por ejemplo, los Intel Pentium y los AMD Athlon) son un ejemplo de esto. Su arquitectura IA-32 es una extensión del diseño original del Intel 8086 que tenía un tamaño de palabra de 16 bits. Los procesadores IA-32 siguen soportando programas del 8086 ( x86), así que el significado de "word" en el contexto IA-32 sigue siendo el mismo y se continua diciendo que son 16 bits, a pesar del hecho de que en la actualidad puede (y especialmente cuando el tamaño del operando por defecto es 32-bit) opera más como una máquina con un tamaño de palabra de 32 bits. Similarmente en la nueva arquitectura x86-64, una "palabra" sigue siendo 16 bits, aunque los operandos de 64-bit ("cuadruple palabra") sean más comunes.


Dependiendo de cómo se organiza un ordenador, las unidades de tamaño de palabra se pueden utilizar para:

  • Números enteros: Los contenedores de valores numéricos enteros pueden estar disponibles en varios tamaños diferentes, pero uno de los tamaños disponibles casi siempre será la palabra. Los otros tamaños, suelen ser múltiplos o fracciones del tamaño de palabra. Los tamaños más pequeños normalmente se utilizan sólo por eficiencia en la utilización de memoria, cuando se cargan en el procesador, sus valores normalmente son mayores, contenedores de tamaño palabra.
  • Números en coma flotante: Los contenedores para valores numéricos en coma flotante son típicamente una palabra o un múltiplo de una palabra.
  • Direcciones: Los contenedores para direcciones de memoria tienen que ser capaces de expresar el rango necesario de valores, pero no excesivamente grandes. A menudo el tamaño utilizado es el de la palabra pero puede ser un múltiplo o una fracción.
  • Registros: Los registros son diseñados con un tamaño apropiado para el tipo de dato que almacenan, p.ej. enteros, números en coma flotante o direcciones. Muchas arquitecturas de computadores utilizan registros de "propósito general" que pueden albergar varios tipos de datos, estos registros se dimensionan para permitir los más grandes de estos tipos y el tamaño típico es el tamaño de palabra de la arquitectura.
  • Transferencia memoria-procesador: Cuando el procesador lee del subsistema de memoria a un registro o escribe el valor de un registro en memoria, la cantidad de datos transferidos es a menudo una palabra. En los subsistemas de memoria simples, las palabras son transferidas sobre el bus de datos de memoria, que típicamente tiene un ancho de una palabra o media palabra. En los subsistemas de memoria que utilizan caché, la transferencia de tamaño palabra se produce entre el procesador y la caché de nivel uno, en los niveles más bajos de la jerarquía de memoria las grandes transferencias (con múltiplos de la longitud de palabra) son normalmente utilizadas.
  • Resolución de unidades de dirección: Es una arquitectura dada, los sucesivos valores de direcciones designan sucesivas unidades de memoria. En muchos ordenadores, la unidad puede ser un carácter o una palabra (algunos han utilizado una resolución de bit). Si la unidad es una palabra, entonces se puede acceder a una gran suma de memoria utilizando una dirección de un tamaño dado. Por otra parte, si la unidad es un byte, se pueden direccionar caracteres individuales (p.ej. seleccionados durante la operación de memoria).
  • Instrucciones: Las instrucciones máquina normalmente son fracciones o múltiplos de la longitud de palabra de la arquitectura. Esta es una elección natural ya que las instrucciones y los datos normalmente comparten el mismo subsistema de memoria.

Elección del tamaño de palabra

Cuando se diseña una arquitectura de computadores, la elección de la longitud de palabra es de substancial importancia. Hay consideraciones de diseño que promueven tamaños de agrupaciones de bits para usos particulares (p.ej. direcciones) y estas consideraciones apuntan a diferentes tamaños para diferentes usos. Sin embargo, las consideraciones de economía en diseños fuertemente apuestan por un tamaño o unos cuantos tamaños relacionados por múltiplos o fracciones (submúltiplos) de una longitud primaria. El tamaño elegido se convierte en la longitud de palabra de la arquitectura.

El tamaño de carácter es una de las influencias en la elección de la longitud de palabra. Antes de mediados de los años 1960, los caracteres se almacenaban a menudo en seis bits, esto permitía como mucho 64 caracteres, así que los alfabetos se limitaban a las mayúsculas. Como es eficiente en tiempo y espacio que el tamaño de palabra sea un múltiplo del tamaño de carácter, las longitudes de palabra en este periodo sean normalmente múltiplos de 6 bits (en máquinas binarias). Una elección común fueron las palabras de 32 bits, que es también un buen tamaño para las propiedades numéricas de un formato en coma flotante.

Después de la introducción del IBM S/360, diseño que utilizaba caracteres de 8 bits y soportaba letras minúsculas, el tamaño estándar de un carácter (o más correctamente, un byte) se convirtió en ocho bits. Los tamaños de palabra a partir de entonces fueron naturalmente múltiplos de ocho bits, con 16, 32 y 64 bits siendo utilizados comúnmente.

En arquitectura de ordenadores, 16 bits es un adjetivo usado para describir enteros, direcciones de memoria u otras unidades de datos que comprenden hasta 16 bits de ancho, o para referirse a una arquitectura de CPU y ALU basadas en registros, bus de direcciones o bus de datos de ese ancho.

Arquitecturas de palabra variable

Los primeros diseños de máquinas incluye algunos que utilizaban lo que a menudo se llamaba una longitud de palabra variable. En este tipo de organización, un operando numérico no tiene longitud fija sino que se detecta cuando termina con un carácter especial, como las máquinas utilizaban el BDC para números. Ejemplos de esta clase de máquinas son el IBM 702, el IBM 705, el IBM 7080, el IBM 7010, el UNIVAC 1050, el IBM 1401 y el IBM 1620.

Muchas de estas máquinas trabajan con una unidad de memoria a la vez y como cada instrucción de datos tiene una longitud de varias unidades, cada instrucción tarda varios ciclos solamente en acceder a memoria. Por esta razón, estas máquinas a veces son tan lentas. Por ejemplo, las instrucciones de un IBM 1620 Modelo I tardan 8 ciclos sólo para leer 12 dígitos de la instrucción (el Modelo II lo redujo a 6 ciclos, pero reducía los tiempos a 4 ciclos si ambos campos de direcciones no se necesitaban en la instrucción).

Las potencias de 2

Los valores de datos pueden ocupar diferentes tamaños de memoria, porque, por ejemplo, algunos números necesitan ser capaces de tener más precisión que otros. Los tamaños comúnmente utilizados normalmente se eligen para ser múltiplos de potencias de 2 de la unidad de resolución direcciones (byte o palabra). Esto es conveniente porque convirtiendo el índice de un elemento de un array en la dirección del elemento sólo requiere una operación de desplazamiento (que es sólo una pista conductora en hardware) en vez de una multiplicación. En algunos casos esta relación puede también evitar la utilización de operaciones de división. Como resultado, muchos diseños de computadores modernos tienen tamaños de palabra (y otros tamaños de operandos) que son una potencia de 2 veces el tamaño de un byte.

Other Languages