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 solo 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 eliminar la ambigüedad de 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 octeto . [3] Esos bits en un octeto generalmente se cuentan con numeración del 0 al 7 o del 7 al 0 dependiendo del endianismo del bit .
Históricamente, el tamaño del byte ha dependido del hardware y no existían estándares definitivos que exigieran 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 era una implementación de uso frecuente 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. En esta era, las agrupaciones de bits en el flujo de instrucciones a menudo se denominaban sílabas [a] o losa , 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 conveniente potencia de dos que permite valores codificados en binario del 0 al 255 para un byte, ya que 2 elevado a 8 es 256. [8] La norma internacional IEC 80000-13 codificó este significado común. Muchos tipos de aplicaciones utilizan información representable en ocho o menos bits y los diseñadores de procesadores suelen optimizar para este uso. La popularidad de las principales arquitecturas informáticas comerciales ha contribuido a la aceptación ubicua del byte de 8 bits. [9] Las arquitecturas modernas suelen utilizar palabras de 32 o 64 bits, construidas con cuatro u ocho bytes, respectivamente.
El símbolo de unidad del byte fue designado como la letra B mayúscula por la Comisión Electrotécnica Internacional (IEC) y el Instituto de Ingenieros Eléctricos y Electrónicos (IEEE). [10] Internacionalmente, la unidad octeto , símbolo o, define explícitamente una secuencia de ocho bits, eliminando la posible ambigüedad del término "byte". [11] [12]
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 IBM Stretch [15] [16] [1] [13] [14] [17 ] [18] computadora, que tenía direccionamiento al bit e instrucciones de longitud de campo variable (VFL) con un tamaño de byte codificado en la instrucción. [13] Es un rechazo deliberado de mordida para evitar una mutación accidental a mordida . [1] [13] [19] [c]
Otro origen del 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 , lo registra 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 JOVIAL de Schwartz en realidad usó el término, pero el autor recordó vagamente que se derivaba de AN/FSQ-31 . [22] [21]
Las primeras computadoras usaban una variedad de representaciones decimales codificadas en binario (BCD) de cuatro bits y 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, denominados Código Estándar Americano para el Intercambio de Información (ASCII) como Estándar Federal de Procesamiento de Información , que reemplazó los códigos de teleimpresores incompatibles utilizados por diferentes ramas del gobierno y universidades de los EE. UU. 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 del dispositivo de impresión, como el avance de página y el avance de línea, y el control físico o lógico del flujo de datos durante la transmisión. medios de comunicación. [18] A principios de la década de 1960, aunque 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 en binario extendido (EBCDIC) de ocho bits , una expansión de su código binario de seis bits. Representaciones decimales (BCDIC) [d] utilizadas en perforaciones de tarjetas anteriores. [23] La prominencia del System/360 llevó a la adopción ubicua 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 la década de 1960, AT&T introdujo la telefonía digital en líneas troncales de larga distancia . Estos 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 usa byte en su hipotética computadora MIX para denotar una unidad que "contiene una cantidad no especificada de información... capaz de contener al menos 64 valores distintos... . Por lo tanto, en un ordenador binario, un byte debe estar compuesto de seis bits como máximo . [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, remontándonos a los días en que los bytes aún no estaban estandarizados". [24]
El desarrollo de 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 en un byte, como la instrucción decimal-sumar-ajustar (DAA). A una cantidad de cuatro bits se le suele llamar nibble , también nybble , que se representa convenientemente mediante un único dígito hexadecimal .
El término octeto se utiliza para especificar sin ambigüedades un tamaño de ocho bits. [18] [12] Se utiliza ampliamente en las definiciones de protocolos .
Históricamente, el término octada u octada también se utilizó para indicar 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 las décadas de 1960 y 1970, y en toda la documentación de las computadoras centrales 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 B en mayúscula.
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 rara vez se utiliza. Se utiliza principalmente en su fracción decádica, el decibelio (dB), para medir la intensidad de la señal y el nivel de presión sonora , mientras que una unidad para una décima de byte, el decibyte, y otras fracciones, sólo se utilizan en unidades derivadas, como como tasas de transmisión.
La letra minúscula o para octeto se define como símbolo de octeto en IEC 80000-13 y se usa 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 según 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 generado confusión. Los sistemas basados en potencias de 10 utilizan prefijos estándar del SI ( kilo , mega , giga ,...) y sus correspondientes símbolos (k, M, G,...). Los sistemas basados en potencias de 2, sin embargo, 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ño que el kibibyte), los sistemas se desvían cada vez más a medida que las unidades crecen (la desviación relativa crece 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 (IEC) recomienda la definición de prefijos utilizando potencias de 10, en las que 1 kilobyte (símbolo kB) equivale a 1.000 bytes. [28] El estándar IEC define ocho de estos múltiplos, hasta 1 yottabyte (YB), equivalente a 1000 8 bytes. [29] Los prefijos adicionales ronna- para 1000 9 y quetta- para 1000 10 fueron adoptados por la Oficina Internacional de Pesas y Medidas (BIPM) en 2022. [30] [31]
Esta definición se usa más comúnmente para unidades de velocidad de datos en redes de computadoras , bus interno, discos duros y velocidades de transferencia de medios flash, y para las capacidades de la mayoría de los medios de almacenamiento , particularmente discos duros , [32] almacenamiento basado en flash , [33] y DVD . [ cita necesaria ] Los sistemas operativos que utilizan esta definición incluyen macOS , [34] iOS , [34] Ubuntu , [35] y Debian . [36] También es consistente con otros usos de los prefijos SI en informática, como velocidades de reloj de CPU o 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 está respaldado por organismos de normalización nacionales e internacionales ( BIPM , IEC , NIST ). El estándar IEC define ocho de estos múltiplos, hasta 1 yobibyte (YiB), equivalente 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 Pesas y Medidas como robi- (Ri, 1024 9 ) y quebi- (Qi, 1024 10 ). , pero aún no han sido adoptados por IEC e ISO. [37]
Un sistema alternativo de nomenclatura para las mismas unidades (denominado aquí convención habitual ), en el que 1 kilobyte (KB) equivale a 1.024 bytes, [38] [39] [40] 1 megabyte (MB) equivale a 1.024 2 bytes y 1 gigabyte (GB) equivalen a 1024. 3 bytes lo menciona un estándar JEDEC de la década de 1990 . El estándar JEDEC solo menciona los primeros tres múltiplos (hasta GB), que no menciona TB y mayores. Si bien es confusa e incorrecta, [41] la convención habitual es utilizada por el sistema operativo Microsoft Windows [42] [ se necesita mejor fuente ] y la capacidad de la memoria de acceso aleatorio , como la memoria principal y el tamaño de caché de la CPU , y en marketing y facturación por telecomunicaciones. empresas, como Vodafone , [43] AT&T , [44] Orange [45] y Telstra . [46]
Para la capacidad de almacenamiento , macOS e iOS utilizaron la convención habitual a través de Mac OS X 10.6 Snow Leopard e 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 tamaños diferentes para el mismo término incluso dentro de un solo 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 computadora [e] contemporánea tiene una arquitectura binaria, lo que hace que una definición de unidades de memoria basada en potencias de 2 sea lo más práctico. El uso del prefijo métrico kilo para múltiplos binarios surgió por conveniencia, porque 1.024 es aproximadamente 1.000. [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 (con capacidad para 368.640 bytes) que se anunciaba como "360 KB", siguiendo la convención de 1.024 bytes. Sin embargo, no fue universal. El disquete Shugart SA-400 de 5 1 ⁄ 4 pulgadas contenía 109.375 bytes sin formato, [47] y se anunciaba como "110 Kbyte", utilizando la convención 1000. [48] Asimismo, el disquete DEC RX01 de 8 pulgadas (1975) tenía 256.256 bytes formateados y se anunciaba como "256k". [49] Algunos dispositivos se anunciaron utilizando una combinación de las dos definiciones: en particular, los disquetes anunciados como "1,44 MB" tienen una capacidad real de 1.440 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 proponiendo 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 múltiples usos y definiciones adoptando los prefijos propuestos por la IUPAC (kibi, mebi, gibi, etc.) para denotar sin ambigüedades potencias de 1024. [52] Así, un kibibyte (1 KiB) es 1024 1 bytes = 1024 bytes, un mebibyte (1 MiB) son 1024 2 bytes =1.048.576 bytes, y así sucesivamente.
En 1999, Donald Knuth sugirió llamar al kibibyte "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 solo debe usarse para referirse a 1.000 bytes. [ cita necesaria ]
Las demandas derivadas de una supuesta confusión de los consumidores sobre las definiciones binaria y decimal de 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 (el decimal definición), 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' para los fines del 'comercio y el comercio de los Estados Unidos' [...] La legislatura también ha adoptado el sistema decimal para todas las 'transacciones en este estado ' " [56]
Demandas anteriores habían terminado en un acuerdo sin que se dictara sentencia judicial 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 anunciada. [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 contener cualquier miembro del conjunto de caracteres básico 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 contenga al menos 256 valores diferentes y esté representado por 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 de la memoria es parte de un byte. [68]
El tipo de datos primitivo de Java, byte, 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, con valores de 0 a 255 y −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 distinguida. Para la comunicación asíncrona, una unidad de transmisión completa generalmente 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 síncrona, la verificación de errores generalmente utiliza bytes al final de una trama .
CHAR_BIT
como se implementa en el archivo limites.h .Los términos utilizados aquí para describir la estructura impuesta por el diseño de la máquina, además de la broca , 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 y 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 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 partir de bit , pero se repelió para evitar una mutación accidental a bit ).
Una palabra consta del número de bits de datos transmitidos en paralelo desde o hacia la memoria en un ciclo de memoria. El tamaño de las palabras 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 única instrucción de entrada-salida. El tamaño del bloque es una propiedad estructural de una unidad de entrada-salida; Es posible que haya sido arreglado por el diseño o dejado que el programa lo modifique.
octeto Un 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 enviarlos al sumador en serie. Los 60 bits se vierten en núcleos magnéticos en seis niveles diferentes. Así, si sale un 1 de la posición 9, aparecerá en los seis núcleos inferiores. 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 con dígitos decimales de 4 bits , comenzando por la derecha. Primero se pulsa la diagonal 0, enviando los seis bits del 0 al 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 trabajos alfanuméricos , o manejar bytes de un solo bit para análisis lógico, o compensar los bytes en cualquier número de bits. Todo esto se puede hacer tirando de las diagonales de desplazamiento adecuadas. Se utiliza una disposición de matriz análoga para cambiar del funcionamiento en serie al paralelo en la salida del sumador. […]
Byte: una 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 varios bits, tratados como una unidad y que normalmente representa un carácter o una parte de un carácter.
NOTAS:
1 El número de bits de un byte es fijo para un sistema de procesamiento de datos determinado.
2 El número 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 cincuenta. Su carta cuenta la historia.
Como no soy un lector habitual de su revista, escuché 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 jerga [ver página 77 de BYTE de noviembre de 1976, "Inglés antiguo"] . Busqué en mis archivos y no pude encontrar un certificado de nacimiento. Pero estoy seguro de que "byte" alcanzará la mayoría de edad en 1977, cuando cumplirá 21 años.
Muchos han asumido que el byte, es decir, 8 bits, se originó con el IBM System/360, que difundió dichos bytes por todas partes a mediados de la década de 1960. El editor tiene razón al señalar que el término se remonta a la anterior computadora Stretch (pero se equivoca en que Stretch fue la primera, no la última, de las computadoras transistorizadas de segunda generación de IBM que se desarrolló).
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 . Se describió que un byte constaba de cualquier número de bits paralelos del uno al seis. Por tanto, se suponía que un byte tenía una longitud adecuada para la ocasión. Su primer uso se produjo en el contexto de los equipos de entrada y salida de la década de 1950, que manejaban seis bits a la vez. La posibilidad de pasar a bytes de 8 bits se consideró en agosto de 1956 y poco después se incorporó al diseño de Stretch.
La primera referencia publicada al término se produjo 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 fueron elaborados en el Capítulo 4 de Planificación de un sistema informático (Project Stretch), editado por W Buchholz, McGraw-Hill Book Company (1962). El motivo para acuñar 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 y 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 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 partir de morder , pero se repelió para evitar una mutación accidental a morder ) .
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 motivos de economía, el tamaño de bytes se fijó en el máximo de 8 bits y el direccionamiento a nivel de bits se reemplazó por direccionamiento de bytes.
Desde entonces, el término byte significa generalmente 8 bits y, por tanto, ha pasado al vocabulario general.
¿Existen otros términos acuñados especialmente para el campo de la informática que hayan aparecido en 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 ]: Werner Buchholz enumera en un informe las ventajas de una longitud de palabra de 64 bits para Stretch. También admite el requisito de la NSA de bytes de 8 bits. El término "Byte" de Werner se popularizó por primera vez en este memorando.
NÓTESE BIEN. Esta línea de tiempo 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, los bytes de longitud de 1 a 6 bits se pueden empaquetar de manera eficiente en una palabra de 60 bits sin tener que dividir un byte entre una palabra y el próximo. Si se necesitaran bytes más largos, 60 bits, por supuesto, ya no serían ideales. En las aplicaciones actuales, los casos realmente importantes son 1, 4 y 6 bits.
Con palabras de 64 bits, a menudo sería necesario hacer algunos compromisos, como dejar 4 bits sin usar en una palabra cuando se trata de bytes de 6 bits en la entrada y salida. Sin embargo, la computadora LINK puede equiparse para eliminar estos espacios y permitir el manejo de bytes divididos entre palabras. […]
[…] El tamaño máximo de bytes de entrada y salida para el funcionamiento en serie ahora será de 8 bits, sin contar los bits de detección y corrección de errores. Por lo tanto, el Exchange funcionará con bytes de 8 bits, y cualquier unidad de entrada-salida con menos de 8 bits por byte dejará los bits restantes en blanco. Las lagunas resultantes se pueden eliminar más tarde mediante programación […]
Llegué a trabajar para IBM y vi toda la confusión causada por 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.
Agregue 26 letras minúsculas a las 47 existentes y obtendrá 73: 9 más de lo que 6 bits podrían representar.
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 tarjetas perforadas a 256 [1].
Algunas personas se lo tomaron en serio. Lo pensé como una parodia.
Entonces 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 (diseñé el conjunto de caracteres, bajo la guía del Dr. Werner Buchholz , el hombre que SÍ acuñó el término "byte" para un sistema de 8 bits). agrupamiento). [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 "los poderes de 2 son mágicos". Y así el grupo que yo encabezaba desarrolló y justificó tal propuesta [3].
Eso fue demasiado progreso cuando se presentó al grupo de estándares que iba a formalizar ASCII, por lo que se detuvieron por el momento con un conjunto de 7 bits, o bien un conjunto de 8 bits y la mitad superior quedó para trabajo futuro.
El IBM 360 utilizaba caracteres de 8 bits, aunque no ASCII directamente. Así, el "byte" de Buchholz se hizo popular en todas partes. A mí mismo no me gustó el nombre por muchas razones. El diseño tenía 8 bits moviéndose en paralelo. Pero luego apareció una nueva pieza 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 para Cie. Bull en Francia en 1965-66, insistí en que 'byte' quedara obsoleto en favor de " octeto ".
Puedes notar que mi preferencia 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 algunos tontos 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ás que sigo teniendo 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 constaba de x número de bits ; un bit representaba una posición de notación binaria en una palabra. Las operaciones normalmente se realizaban en todos los bits de la palabra completa.
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 lo denominaba 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 sorprendió descubrir que la palabra byte se estaba utilizando en la nueva tecnología de microcomputadoras para referirse a la unidad de memoria direccionable básica.
Una sesión de preguntas y respuestas en una conferencia de 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 viene 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 razonablemente seguro de que la descripción de esa computadora incluía la palabra "byte" y la usamos. ]
[ Fred Brooks :
¿Puedo hablar sobre 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. ]