El byte es una unidad de información digital que normalmente consta de ocho bits . Históricamente, el byte era el número de bits utilizados para codificar un único carácter de texto en una computadora [1] [2] y por esta razón es la unidad de memoria direccionable más pequeña en muchas arquitecturas de computadoras . Para desambiguar los bytes de tamaño arbitrario de la definición común de 8 bits , los documentos de protocolo de red como el Protocolo de Internet ( RFC 791) se refieren a un byte de 8 bits como un octeto . [3] Esos bits en un octeto generalmente se cuentan con numeración de 0 a 7 o de 7 a 0 dependiendo del endianness de bit .
El tamaño del byte ha dependido históricamente del hardware y no existían estándares definitivos que establecieran el tamaño. Se han utilizado tamaños de 1 a 48 bits. [4] [5] [6] [7] El código de caracteres de seis bits fue una implementación utilizada a menudo en los primeros sistemas de codificación, y las computadoras que usaban bytes de seis y nueve bits eran comunes en la década de 1960. Estos sistemas a menudo tenían palabras de memoria de 12, 18, 24, 30, 36, 48 o 60 bits, correspondientes a 2, 3, 4, 5, 6, 8 o 10 bytes de seis bits, y persistieron, en sistemas heredados, hasta el siglo XXI. En esta era, las agrupaciones de bits en el flujo de instrucciones a menudo se denominaban sílabas [a] o slab , antes de que el término byte se volviera común.
El estándar moderno de facto de ocho bits, como se documenta en ISO/IEC 2382-1:1993, es una potencia de dos conveniente que permite los valores codificados en binario de 0 a 255 para un byte, ya que 2 elevado a la octava potencia es 256. [8] El estándar internacional IEC 80000-13 codificó este significado común. Muchos tipos de aplicaciones utilizan información representable en ocho bits o menos y los diseñadores de procesadores comúnmente optimizan para este uso. La popularidad de las principales arquitecturas informáticas comerciales ha ayudado a la aceptación ubicua del byte de 8 bits. [9] Las arquitecturas modernas suelen utilizar palabras de 32 o 64 bits, construidas de cuatro u ocho bytes, respectivamente.
La Comisión Electrotécnica Internacional (IEC) y el Instituto de Ingenieros Eléctricos y Electrónicos (IEEE) designaron el símbolo de unidad para el byte como la letra B mayúscula . [10] A nivel internacional, la unidad octeto define explícitamente una secuencia de ocho bits, eliminando la posible ambigüedad del término "byte". [11] [12] El símbolo para octeto, 'o', también elimina convenientemente la ambigüedad en el símbolo 'B' entre byte y bel .
El término byte fue acuñado por Werner Buchholz en junio de 1956, [4] [13] [14] [b] durante la fase inicial de diseño de la computadora IBM Stretch [15] [16] [1] [13] [ 14] [17] [18] , que tenía direccionamiento a bits e instrucciones de longitud de campo variable (VFL) con un tamaño de byte codificado en la instrucción. [13] Es un cambio de ortografía deliberado de bite para evitar una mutación accidental a bit . [1] [13] [19] [c]
Otro origen del término byte para grupos de bits más pequeños que el tamaño de palabra de una computadora, y en particular grupos de cuatro bits , está registrado por Louis G. Dooley, quien afirmó haber acuñado el término mientras trabajaba con Jules Schwartz y Dick Beeler en un sistema de defensa aérea llamado SAGE en el Laboratorio Lincoln del MIT en 1956 o 1957, que fue desarrollado conjuntamente por Rand , MIT e IBM. [20] [21] Más tarde, el lenguaje de Schwartz, JOVIAL, utilizó el término, pero el autor recordó vagamente que se derivó de AN/FSQ-31 . [22] [21]
Las primeras computadoras usaban una variedad de representaciones decimales codificadas en binario (BCD) de cuatro bits y los códigos de seis bits para patrones gráficos imprimibles comunes en el Ejército de los EE. UU. ( FIELDATA ) y la Marina . Estas representaciones incluían caracteres alfanuméricos y símbolos gráficos especiales. Estos conjuntos se ampliaron en 1963 a siete bits de codificación, llamados Código estándar estadounidense para el intercambio de información (ASCII) como Estándar federal de procesamiento de información , que reemplazó a los códigos de teleimpresora incompatibles en uso por diferentes ramas del gobierno de los EE. UU. y universidades durante la década de 1960. ASCII incluía la distinción de alfabetos en mayúsculas y minúsculas y un conjunto de caracteres de control para facilitar la transmisión del lenguaje escrito, así como las funciones de los dispositivos de impresión, como el avance de página y el salto de línea, y el control físico o lógico del flujo de datos sobre el medio de transmisión. [18] A principios de los años 1960, mientras también estaba activo en la estandarización ASCII, IBM introdujo simultáneamente en su línea de productos System/360 el Código de Intercambio Decimal Codificado Binario Extendido (EBCDIC) de ocho bits, una expansión de sus representaciones decimales codificadas en binario (BCDIC) de seis bits [d] utilizadas en perforadoras de tarjetas anteriores. [23] La prominencia del System/360 condujo a la adopción generalizada del tamaño de almacenamiento de ocho bits, [18] [16] [13] mientras que en detalle los esquemas de codificación EBCDIC y ASCII son diferentes.
A principios de los años 1960, AT&T introdujo la telefonía digital en líneas troncales de larga distancia . Estas utilizaban la codificación de ley μ de ocho bits . Esta gran inversión prometía reducir los costos de transmisión de datos de ocho bits.
En el Volumen 1 de The Art of Computer Programming (publicado por primera vez en 1968), Donald Knuth utiliza el término byte en su hipotético ordenador MIX para designar una unidad que "contiene una cantidad no especificada de información... capaz de albergar al menos 64 valores distintos... como máximo 100 valores distintos. En un ordenador binario, un byte debe estar compuesto por seis bits". [24] Señala que "desde 1975 aproximadamente, la palabra byte ha llegado a significar una secuencia de exactamente ocho dígitos binarios... Cuando hablamos de bytes en relación con MIX nos limitaremos al sentido anterior de la palabra, que nos remonta a los días en que los bytes aún no estaban estandarizados". [24]
El desarrollo de los microprocesadores de ocho bits en la década de 1970 popularizó este tamaño de almacenamiento. Los microprocesadores como el Intel 8080 , el predecesor directo del 8086 , también podían realizar una pequeña cantidad de operaciones en los pares de cuatro bits de un byte, como la instrucción de suma y ajuste decimal (DAA). Una cantidad de cuatro bits a menudo se denomina nibble , también nybble , que se representa convenientemente mediante un solo dígito hexadecimal .
El término octeto especifica de forma inequívoca un tamaño de ocho bits. [18] [12] Se utiliza ampliamente en las definiciones de protocolos .
Históricamente, el término octad u octade se utilizaba para designar ocho bits, al menos en Europa occidental; [25] [26] sin embargo, este uso ya no es común. El origen exacto del término no está claro, pero se puede encontrar en fuentes británicas, holandesas y alemanas de los años 1960 y 1970, y en toda la documentación de las computadoras mainframe de Philips .
El símbolo de unidad para el byte se especifica en IEC 80000-13 , IEEE 1541 y el Formato de Intercambio Métrico [10] como el carácter mayúscula B.
En el Sistema Internacional de Cantidades (ISQ), B es también el símbolo del bel , una unidad de relación de potencia logarítmica que lleva el nombre de Alexander Graham Bell , lo que crea un conflicto con la especificación IEC. Sin embargo, existe poco peligro de confusión, porque el bel es una unidad que se utiliza raramente. Se utiliza principalmente en su fracción decimal, el decibel (dB), para mediciones de intensidad de señal y nivel de presión sonora , mientras que una unidad para una décima parte de un byte, el decibyte, y otras fracciones, solo se utilizan en unidades derivadas, como las velocidades de transmisión.
La letra minúscula o para octeto se define como el símbolo de octeto en IEC 80000-13 y se utiliza comúnmente en idiomas como el francés [27] y el rumano , y también se combina con prefijos métricos para múltiplos, por ejemplo ko y Mo.
Existe más de un sistema para definir múltiplos de unidades basados en el byte. Algunos sistemas se basan en potencias de 10 , siguiendo el Sistema Internacional de Unidades (SI), que define por ejemplo el prefijo kilo como 1000 (10 3 ); otros sistemas se basan en potencias de 2. La nomenclatura de estos sistemas ha llevado a confusión. Los sistemas basados en potencias de 10 utilizan prefijos estándar del SI ( kilo , mega , giga , ...) y sus símbolos correspondientes (k, M, G, ...). Sin embargo, los sistemas basados en potencias de 2 pueden utilizar prefijos binarios ( kibi , mebi , gibi , ...) y sus símbolos correspondientes (Ki, Mi, Gi, ...) o pueden utilizar los prefijos K, M y G, creando ambigüedad cuando se utilizan los prefijos M o G.
Si bien la diferencia entre las interpretaciones decimal y binaria es relativamente pequeña para el kilobyte (aproximadamente un 2 % más pequeña que el kibibyte), los sistemas se desvían cada vez más a medida que las unidades se hacen más grandes (la desviación relativa aumenta un 2,4 % por cada tres órdenes de magnitud). Por ejemplo, un terabyte basado en una potencia de 10 es aproximadamente un 9 % más pequeño que un tebibyte basado en una potencia de 2.
La Comisión Electrotécnica Internacional (CEI) recomienda la definición de prefijos que utilizan potencias de 10 (en las que 1 kilobyte (símbolo kB) equivale a 1000 bytes). [28] La norma IEC define ocho de estos múltiplos, hasta 1 yottabyte (YB), equivalente a 1000 8 bytes. [29] La Oficina Internacional de Pesas y Medidas (BIPM) adoptó los prefijos adicionales ronna- para 1000 9 y quetta- para 1000 10 en 2022. [30] [31]
Esta definición se utiliza con mayor frecuencia para unidades de velocidad de datos en redes informáticas , bus interno, velocidades de transferencia de discos duros y medios flash, y para las capacidades de la mayoría de los medios de almacenamiento , en particular discos duros , [32] almacenamiento basado en flash , [33] y DVD . [ cita requerida ] Los sistemas operativos que utilizan esta definición incluyen macOS , [34] iOS , [34] Ubuntu , [35] y Debian . [36] También es coherente con otros usos de los prefijos SI en informática, como las velocidades de reloj de la CPU o las medidas de rendimiento .
Un sistema de unidades basado en potencias de 2 en el que 1 kibibyte (KiB) es igual a 1.024 (es decir, 2 10 ) bytes está definido por la norma internacional IEC 80000-13 y es apoyado por organismos de normalización nacionales e internacionales ( BIPM , IEC , NIST ). La norma IEC define ocho de estos múltiplos, hasta 1 yobibyte (YiB), igual a 1024 8 bytes. Las contrapartes binarias naturales de ronna- y quetta- se dieron en un documento de consulta del Comité Consultivo de Unidades (CCU) del Comité Internacional de Pesos y Medidas como robi- (Ri, 1024 9 ) y quebi- (Qi, 1024 10 ), pero aún no han sido adoptadas por la IEC y la ISO. [37]
Un sistema alternativo de nomenclatura para las mismas unidades (denominado aquí convención habitual ), en el que 1 kilobyte (KB) es igual a 1.024 bytes, [38] [39] [40] 1 megabyte (MB) es igual a 1024 2 bytes y 1 gigabyte (GB) es igual a 1024 3 bytes es mencionado por un estándar JEDEC de los años 1990. Solo los primeros tres múltiplos (hasta GB) son mencionados por el estándar JEDEC, que no hace mención de TB y mayores. Aunque confuso e incorrecto, [41] la convención habitual es utilizada por el sistema operativo Microsoft Windows [42] [ se necesita una mejor fuente ] y la capacidad de memoria de acceso aleatorio , como la memoria principal y el tamaño de caché de la CPU , y en marketing y facturación por compañías de telecomunicaciones, como Vodafone , [43] AT&T , [44] Orange [45] y Telstra . [46]
Para la capacidad de almacenamiento , la convención habitual fue utilizada por macOS e iOS hasta Mac OS X 10.6 Snow Leopard y iOS 10, después de lo cual cambiaron a unidades basadas en potencias de 10. [34]
Varios proveedores de computadoras han acuñado términos para datos de varios tamaños, a veces con diferentes tamaños para el mismo término incluso dentro de un mismo proveedor. Estos términos incluyen palabra doble , media palabra , palabra larga , palabra cuádruple , losa , superpalabra y sílaba . También hay términos informales, por ejemplo, medio byte y nybble para 4 bits, octal K para 1000 8 .
La memoria de las computadoras contemporáneas tiene una arquitectura binaria, lo que hace que la definición de unidades de memoria basada en potencias de 2 sea la más práctica. El uso del prefijo métrico kilo para múltiplos binarios surgió como una conveniencia, porque1024 es aproximadamente1000. [27] Esta definición fue popular en las primeras décadas de la informática personal , con productos como el formato de disquete DD Tandon de 5 1 ⁄ 4 pulgadas (que contiene368 640 bytes) que se anuncia como "360 KB", después de laConvención de 1024 bytes. Sin embargo, no era universal. El disquete Shugart SA-400 de 5 1 ⁄ 4 pulgadas contenía 109 375 bytes sin formato, [47] y se publicitaba como "110 Kbyte", utilizando la convención de 1000. [48] De la misma manera, el disquete DEC RX01 de 8 pulgadas (1975) contenía256 256 bytes formateados y se anunciaban como "256k". [49] Algunos dispositivos se anunciaban utilizando una mezcla de las dos definiciones: en particular, los disquetes anunciados como "1,44 MB" tienen una capacidad real de1440 KiB , el equivalente a 1,47 MB o 1,41 MiB.
En 1995, el Comité Interdivisional de Nomenclatura y Símbolos de la Unión Internacional de Química Pura y Aplicada (IUPAC) intentó resolver esta ambigüedad al proponer un conjunto de prefijos binarios para las potencias de 1024, incluidos kibi (kilobinario), mebi (megabinario) y gibi (gigabinario). [50] [51]
En diciembre de 1998, la IEC abordó estos usos y definiciones múltiples adoptando los prefijos propuestos por la IUPAC (kibi, mebi, gibi, etc.) para denotar de forma inequívoca potencias de 1024. [52] Por lo tanto, un kibibyte (1 KiB) es 1024 1 byte = 1024 bytes, un mebibyte (1 MiB) es 1024 2 bytes =1 048 576 bytes, y así sucesivamente.
En 1999, Donald Knuth sugirió llamar al kibibyte un "kilobyte grande" ( KKB ). [53]
La IEC adoptó la propuesta de la IUPAC y publicó la norma en enero de 1999. [54] [55] Los prefijos IEC son parte del Sistema Internacional de Cantidades . La IEC especificó además que el kilobyte sólo debe utilizarse para referirse a1000 bytes. [ cita requerida ]
Las demandas derivadas de la supuesta confusión de los consumidores sobre las definiciones binarias y decimales de los múltiplos del byte generalmente han terminado a favor de los fabricantes, y los tribunales han sostenido que la definición legal de gigabyte o GB es 1 GB =1 000 000 000 (10 9 ) bytes (la definición decimal), en lugar de la definición binaria (2 30 , es decir,1 073 741 824 ). En concreto, el Tribunal de Distrito de los Estados Unidos para el Distrito Norte de California sostuvo que "el Congreso de los Estados Unidos ha considerado que la definición decimal de gigabyte es la 'preferida' a los efectos del 'comercio y comercio de los Estados Unidos' [...] La Legislatura de California ha adoptado asimismo el sistema decimal para todas las 'transacciones en este estado ' " . [56]
Demandas anteriores habían terminado en un acuerdo sin que el tribunal se pronunciara sobre la cuestión, como una demanda contra el fabricante de unidades Western Digital . [57] [58] Western Digital resolvió el desafío y agregó exenciones de responsabilidad explícitas a los productos de que la capacidad utilizable puede diferir de la capacidad publicitada. [57] Seagate fue demandada por motivos similares y también llegó a un acuerdo. [57] [59]
Muchos lenguajes de programación definen el tipo de datos byte .
Los lenguajes de programación C y C++ definen byte como una "unidad direccionable de almacenamiento de datos lo suficientemente grande como para albergar cualquier miembro del conjunto de caracteres básicos del entorno de ejecución" (cláusula 3.6 del estándar C). El estándar C requiere que el tipo de datos integral unsigned char debe contener al menos 256 valores diferentes y se representa con al menos ocho bits (cláusula 5.2.4.2.1). Varias implementaciones de C y C++ reservan 8, 9, 16, 32 o 36 bits para el almacenamiento de un byte. [66] [67] [g] Además, los estándares C y C++ requieren que no haya espacios entre dos bytes. Esto significa que cada bit en la memoria es parte de un byte. [68]
El tipo de datos primitivo byte de Java se define como ocho bits. Es un tipo de datos con signo que contiene valores de −128 a 127.
Los lenguajes de programación .NET , como C# , definen byte como un tipo sin signo y sbyte como un tipo de datos con signo, que contienen valores de 0 a 255 y de −128 a 127 , respectivamente.
En los sistemas de transmisión de datos, el byte se utiliza como una secuencia contigua de bits en un flujo de datos en serie, que representa la unidad de datos más pequeña. Para la comunicación asincrónica , una unidad de transmisión completa normalmente incluye además un bit de inicio, 1 o 2 bits de parada y, posiblemente, un bit de paridad , y, por lo tanto, su tamaño puede variar de siete a doce bits para cinco a ocho bits de datos reales. [69] Para la comunicación sincrónica, la comprobación de errores suele utilizar bytes al final de una trama .
CHAR_BIT
se implementa en el archivo limits.h .Los términos utilizados aquí para describir la estructura impuesta por el diseño de la máquina, además de bit , 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 distinto de carácter porque un carácter determinado puede representarse en diferentes aplicaciones por más de un código, y diferentes códigos pueden utilizar diferentes números de bits (es decir, diferentes tamaños de byte). 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ñó de bite , pero se volvió 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. El tamaño de palabra se define así como una propiedad estructural de la memoria. (El término catena fue acuñado para este propósito por los diseñadores de la computadora Bull GAMMA 60 ).
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 puede ser modificado por el programa.
octeto Byte de ocho bits.
[...] Lo más importante, desde el punto de vista de la edición, será la capacidad de manejar cualquier carácter o dígito, de 1 a 6 bits de longitud.
La Figura 2 muestra la Matriz de Desplazamiento que se utilizará para convertir una palabra de 60 bits , procedente de la Memoria en paralelo, en caracteres , o 'bytes' como los hemos llamado, para ser enviados al Sumador en serie. Los 60 bits se vuelcan en núcleos magnéticos en seis niveles diferentes. Así, si un 1 sale de la posición 9, aparece en los seis núcleos de debajo. Al pulsar cualquier línea diagonal se enviarán los seis bits almacenados a lo largo de esa línea al Sumador. El Sumador puede aceptar todos o sólo algunos de los bits.
Supongamos que se desea operar en dígitos decimales de 4 bits , empezando por la derecha. La diagonal 0 se pulsa primero, enviando los seis bits 0 a 5, de los cuales el Sumador acepta sólo los primeros cuatro (0-3). Los bits 4 y 5 se ignoran. A continuación, se pulsa la diagonal 4. Esto envía los bits 4 a 9, de los cuales los dos últimos se ignoran nuevamente, y así sucesivamente.
Es igual de fácil utilizar los seis bits en el trabajo alfanumérico , o manejar bytes de solo un bit para el análisis lógico, o desplazar los bytes por cualquier número de bits. Todo esto se puede hacer tirando de las diagonales de desplazamiento adecuadas. Se utiliza una disposición matricial análoga para cambiar de operación en serie a operación en paralelo en la salida del sumador. [...]
Byte: partición de una palabra de computadora.
Byte = zusammengehörige Folge von ia neun Bits; davon sind acht Datenbits, das neunte ein Prüfbit
byte:
cadena que consta de una cantidad de bits, que se considera una unidad y que, por lo general, representa un carácter o parte de un carácter.
NOTAS:
1 La cantidad de bits de un byte es fija para un sistema de procesamiento de datos determinado.
2 La cantidad de bits de un byte suele ser 8.
byte, octeto, byte de 8 bits: Una cadena que consta de ocho bits.
Recibimos lo siguiente de W Buchholz, una de las personas que trabajaba en el Proyecto Stretch de IBM a mediados de los años 50. Su carta cuenta la historia.
Como no soy un lector habitual de su revista, me enteré de la pregunta en el número de noviembre de 1976 sobre el origen del término "byte" de un colega que sabía que yo había perpetrado esta pieza de jerga [ver página 77 de BYTE de noviembre de 1976, "Olde Englishe"] . Busqué en mis archivos y no pude encontrar un certificado de nacimiento. Pero estoy seguro de que "byte" está llegando a la mayoría de edad en 1977 con su 21º cumpleaños.
Muchos han asumido que byte, que significa 8 bits, se originó con el IBM System/360, que difundió tales bytes por todas partes a mediados de los años 60. El editor tiene razón al señalar que el término se remonta a la computadora Stretch anterior (pero se equivoca en que Stretch fue la primera, no la última, de las computadoras transistorizadas de segunda generación de IBM que se desarrollaron).
La primera referencia encontrada en los archivos estaba contenida en un memorando interno escrito en junio de 1956 durante los primeros días del desarrollo de Stretch . Un byte se describía como compuesto por cualquier número de bits paralelos de uno a seis. Por lo tanto, se suponía que un byte tenía una longitud apropiada para la ocasión. Su primer uso fue en el contexto del equipo de entrada-salida de la década de 1950, que manejaba seis bits a la vez. La posibilidad de llegar a bytes de 8 bits se consideró en agosto de 1956 y se incorporó al diseño de Stretch poco después.
La primera referencia publicada al término ocurrió en 1959 en un artículo 'Processing Data in Bits and Pieces' de GA Blaauw , FP Brooks Jr y W Buchholz en IRE Transactions on Electronic Computers , junio de 1959, página 121. Las nociones de ese artículo se desarrollaron en el Capítulo 4 de Planning a Computer System (Project Stretch), editado por W Buchholz, McGraw-Hill Book Company (1962). La razón de haber acuñado el término se explicó allí en la página 40 de la siguiente manera:
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 distinto de carácter porque un carácter determinado puede representarse en diferentes aplicaciones mediante más de un código, y diferentes códigos pueden utilizar diferentes cantidades de bits (es decir, diferentes tamaños de byte). 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 partir de bite , pero se volvió a escribir para evitar una mutación accidental a bit ) .
El System/360 adoptó muchos de los conceptos de Stretch, incluidos los tamaños básicos de bytes y palabras, que son potencias de 2. Sin embargo, por razones de economía, el tamaño de bytes se fijó en un máximo de 8 bits y el direccionamiento a nivel de bits se reemplazó por el direccionamiento por bytes.
Desde entonces, el término byte generalmente significa 8 bits y, por lo tanto, ha pasado al vocabulario general.
¿Existen otros términos acuñados especialmente para el campo de la informática que hayan llegado a los diccionarios generales del idioma inglés?
Verano de 1956: Gerrit Blaauw , Fred Brooks , Werner Buchholz , John Cocke y Jim Pomerene se unen al equipo de Stretch . Lloyd Hunter proporciona liderazgo en transistores
. Julio de 1956 [ sic ]: En un informe, Werner Buchholz enumera las ventajas de una longitud de palabra de 64 bits para Stretch. También respalda el requisito de la NSA de bytes de 8 bits. El término "Byte" de Werner se popularizó por primera vez en este memorando.
Nota: Esta cronología especifica erróneamente la fecha de nacimiento del término "byte" como julio de 1956 , mientras que Buchholz en realidad utilizó el término ya en junio de 1956 .
[...] 60 es un múltiplo de 1, 2, 3, 4, 5 y 6. Por lo tanto, se pueden empaquetar de manera eficiente bytes de longitud de 1 a 6 bits en una palabra de 60 bits sin tener que dividir un byte entre una palabra y la siguiente. Si se necesitaran bytes más largos, 60 bits, por supuesto, ya no serían ideales. Con las aplicaciones actuales, 1, 4 y 6 bits son los casos realmente importantes.
Con palabras de 64 bits, a menudo sería necesario hacer algunos compromisos, como dejar 4 bits sin usar en una palabra cuando se trabaja con bytes de 6 bits en la entrada y la salida. Sin embargo, la computadora LINK puede equiparse para eliminar estos espacios vacíos y permitir el manejo de bytes que se dividen entre palabras. [...]
[...] El tamaño máximo de bytes de entrada-salida para la operación en serie será ahora de 8 bits, sin contar los bits de detección y corrección de errores. Por lo tanto, el Exchange funcionará sobre la base de bytes de 8 bits, y cualquier unidad de entrada-salida con menos de 8 bits por byte dejará los bits restantes en blanco. Los espacios resultantes se pueden editar más tarde mediante programación [...]
Llegué a trabajar para IBM y vi toda la confusión que causaba la limitación de 64 caracteres. Especialmente cuando empezamos a pensar en el procesamiento de textos, que requeriría tanto mayúsculas como minúsculas. Si
a las 47 existentes añadimos 26 letras minúsculas, obtenemos 73, 9 más de las que pueden representar 6 bits.
Incluso hice una propuesta (en vista de STRETCH , la primera computadora que conozco con un byte de 8 bits) que ampliaría el número de códigos de caracteres de las tarjetas perforadas a 256 [1].
Algunas personas se lo tomaron en serio. Yo lo consideré una parodia.
Así que algunas personas empezaron a pensar en caracteres de 7 bits, pero esto era ridículo. Con la computadora STRETCH de IBM como fondo, manejando palabras de 64 caracteres divisibles en grupos de 8 (yo diseñé el conjunto de caracteres para ella, bajo la guía del Dr. Werner Buchholz , el hombre que SÍ acuñó el término "byte" para una agrupación de 8 bits). [2] Parecía razonable crear un conjunto de caracteres universal de 8 bits, que pudiera manejar hasta 256. En aquellos días, mi mantra era "las potencias de 2 son mágicas". Y así, el grupo que yo dirigía desarrolló y justificó tal propuesta [3].
Eso fue un poco demasiado avance cuando se presentó al grupo de estándares que debía formalizar ASCII, por lo que se quedaron cortos por el momento con un conjunto de 7 bits, o bien un conjunto de 8 bits dejando la mitad superior para trabajos futuros.
El IBM 360 usaba caracteres de 8 bits, aunque no ASCII directamente. Así, el "byte" de Buchholz se hizo popular en todas partes. A mí mismo no me gustaba el nombre por muchas razones. El diseño tenía 8 bits moviéndose en paralelo. Pero luego llegó una nueva parte de IBM, con 9 bits para autoverificación, tanto dentro de la CPU como en las unidades de cinta . Expuse este byte de 9 bits a la prensa en 1973. Pero mucho antes de eso, cuando dirigía las operaciones de software de Cie. Bull en Francia en 1965-66, insistí en que se dejara de usar el término "byte" en favor de " octeto ".
Como puede observar, mi preferencia de entonces es ahora el término preferido.
Se justifica por los nuevos métodos de comunicación que pueden transportar 16, 32, 64 e incluso 128 bits en paralelo. Pero algunas personas tontas ahora se refieren a un "byte de 16 bits" debido a esta transferencia paralela, que es visible en el conjunto UNICODE . No estoy seguro, pero tal vez esto debería llamarse " hexteto ".
Pero notará que todavía tengo razón. ¡Las potencias de 2 siguen siendo mágicas!
La palabra byte fue acuñada alrededor de 1956 a 1957 en los Laboratorios Lincoln del MIT dentro de un proyecto llamado SAGE (Sistema de Defensa Aérea de América del Norte), que fue desarrollado conjuntamente por Rand , Lincoln Labs e IBM . En esa época, la estructura de la memoria de la computadora ya estaba definida en términos de tamaño de palabra . Una palabra consistía en x número de bits ; un bit representaba una posición de notación binaria en una palabra. Las operaciones normalmente operaban en todos los bits de la palabra completa.
Nosotros acuñamos la palabra byte para referirnos a un conjunto lógico de bits menores que el tamaño de una palabra completa. En ese momento, no se definía específicamente como x bits, sino que normalmente se hacía referencia a un conjunto de 4 bits , ya que ese era el tamaño de la mayoría de nuestros elementos de datos codificados. Poco después, pasé a otras responsabilidades que me alejaron de SAGE. Después de haber pasado muchos años en Asia, regresé a los EE. UU. y me quedé perplejo al descubrir que la palabra byte se estaba utilizando en la nueva tecnología de microcomputadoras para referirse a la unidad básica de memoria direccionable.
Una sesión de preguntas y respuestas en una conferencia de la ACM sobre la historia de los lenguajes de programación incluyó este intercambio:
[ John Goodenough :
Mencionaste que el término "byte" se usa en JOVIAL . ¿De dónde proviene el término? ]
[ Jules Schwartz (inventor de JOVIAL):
Según recuerdo, el AN/FSQ-31 , un ordenador totalmente diferente al 709 , estaba orientado a bytes. No lo recuerdo con seguridad, pero estoy bastante seguro de que la descripción de ese ordenador incluía la palabra "byte", y la usábamos. ]
[ Fred Brooks :
¿Puedo hablar de eso? Werner Buchholz acuñó la palabra como parte de la definición de STRETCH , y el AN/FSQ-31 la tomó de STRETCH, pero Werner es definitivamente el autor de esa palabra. ]
[ Schwartz:
Así es. Gracias. ]