multiplos - que es un kilobyte
¿Es un byte siempre 8 bits? (3)
Estoy trabajando en The Elements of Computing Systems cuando leí el siguiente extracto:
La computadora Hack incluye una pantalla en blanco y negro organizada en 256 filas de 512 píxeles por fila. Los contenidos de la pantalla están representados por un mapa de memoria de 8K que comienza en la dirección de RAM 16384 (0x400). Cada fila en la pantalla física, comenzando en la esquina superior izquierda de la pantalla, está representada en la RAM por 32 palabras consecutivas de 16 bits. Así, el píxel en la fila r desde la parte superior y la columna c desde la izquierda se asigna en el bit c% 16 (contando desde LSB a MSB) de la palabra ubicada en la RAM [16384 + r * 32 + c% 16]. Para escribir o leer un píxel de la pantalla física, uno lee o escribe el bit correspondiente en el mapa de memoria residente en la RAM (1 = negro, 0 = blanco).
Entonces, si la pantalla es de 256 filas de 512 píxeles y cada píxel es un solo bit, ¿cómo es un mapa de memoria de 8K para toda la pantalla?
256 filas * 512 bits = 131072/8 bits por byte / 1024 bytes por K = 16K
¿No sería eso un mapa de memoria de 16K?
Lo único en lo que puedo pensar es que debido a que el tamaño de la palabra es de 16 bits, ¿quizás esto juega un factor? Siempre he sabido que "byte" significa 8 bits, pero si su definición depende del tamaño de palabra de la computadora, tal vez eso resuelva este misterio para mí. ¿Puede alguien explicarme cómo se representa la pantalla descrita en ese párrafo con un mapa de memoria de 8K y no con 16K?
En términos modernos siempre hay 8 bits a un byte. Esto ha sido desde 1993 IIRC. ISO / IEC 2382-1: 1993.
Sin embargo, también ha habido sistemas con otros conteos de bits a un byte de 6 bits / 7 bits que han sido comunes. Sin embargo, hay otros más oscuros.
Al final del día creo que sería raro encontrar una máquina hoy que no estuviera basada en 8 bits por byte.
Excepto quizás por un breve período después de su acuñación, un byte siempre ha sido de ocho bits.
La frase ''un kilobyte'' se popularizó como ''un kilo por ocho'', en el sentido de que tendría un kilo-palabra (1024 piezas direccionables) de memoria que tenía ocho bits de ancho, en el sentido de que cada pieza direccionable tenía ocho bits. .
La palabra no siempre era ocho bits, pero cuando no lo era, nunca fue referido como ''por ocho'', fue ''por cuatro'' o ''por dieciséis'', o en el ejemplo atroz de algunas máquinas de contabilidad de Burroughs por uno -ciento veintiocho ''. En el otro extremo, las máquinas Honeywell originalmente estaban organizadas para que cada bit individual en el almacenamiento tuviera una dirección única, de modo que tuvieran tantos paquetes de memoria de ''kilo por uno''.
En el caso de la máquina de la que está hablando tendría una memoria de "8 kilo por 16", por lo tanto, un mapa de memoria de 8K, específicamente 8Kx16, donde solo hay 8192 direcciones, y cada una tiene un ancho de 16 bits.
Era más barato, dado ASCII y EBCDIC, tener límites de dirección de ocho bits, para un procesamiento de texto eficiente, incluso cuando los registros de su máquina eran más amplios. Las máquinas con registros más estrechos simplemente se extinguieron.
Entonces, sí, un byte ES siempre ocho bits, y casi siempre lo ha sido.
Sí, un byte es siempre 8 bits en la computación moderna.
El libro usa palabras, no bytes.
En el libro, la palabra y el tamaño de la palabra se mencionan explícitamente, mientras que no hay una palabra (jaja) sobre los bytes. Mire la frase ..is represented in RAM by 32 consecutive 16-bit words.
. El tamaño completo se expresa en palabras (16 bits) en lugar de bytes.
Por lo tanto, 8K se refiere a 8 Kilowords. 8 kilobytes se escribirían formalmente como 8KB, si se usa esa notación en este libro.
Las palabras son muy importantes cuando se trata de la arquitectura del procesador. Las palabras en los lenguajes de programación suelen ser de 2 bytes (o 16 bits), pero en la arquitectura del procesador también pueden ser de 8 o 32 bits, y se refieren al tamaño natural de las unidades de datos con las que trabaja un procesador, por lo que tiene sentido que El libro usa palabras en lugar de bytes, ya que el texto parece muy orientado al hardware.
Para ver cómo se relacionan los bytes y las palabras, lea esta respuesta .
Diferentes tamaños de bytes
en.wikipedia.org/wiki/Byte describe cómo un byte fue originalmente (1960) según el tamaño de la información que necesitaba mantener, por lo que se podría usar un byte de 6 bits para los caracteres (en inglés), mientras que los bytes de otros tamaños se usarían para formatos de diferentes números. Comenzó como 6 bits para los caracteres en inglés, creció a 7 bits para admitir ASCII y, finalmente, la popularidad del IBM System / 360 de 8 bits provocó la aceptación global de los bytes de 8 bits.
Un byte es una unidad de software que representa una cantidad de datos, mientras que una palabra está más ligada a la arquitectura del procesador / memoria y representa las unidades de trabajo (registros) en el procesador y las unidades direccionables en la memoria. Hoy en día, sin embargo, un byte siempre se considera que es de 8 bits, y las palabras son un múltiplo de eso. Todavía hay procesadores alrededor que tienen un tamaño de palabra diferente, pero esos son procesadores de propósito especial. El hardware normal, desde las PC hasta los teléfonos y las consolas de juegos, sigue el estándar.