¿Por qué los tamaños de EEPROM se miden en "k" o kbit y no en kbyte o byte?

Sigo viendo hojas de datos de EEPROM que usan términos como 4k, 16k, etc. y se refieren a 4 kilobits y 16 kilobits, a menudo se usan bits, megabits y kilobits. Muy rara vez usan prefijos de bytes. Algunos también aclararán con 512 * 8 bits, o 2048 * 8 bits.

¿Por qué no se prefiere usar bytes (o kilo-/mega-), ya que siempre hay 8 bits en un byte, y nunca he oído hablar de EEPROM que no se puede dividir en bytes?

Me doy cuenta de que kbit/Mbit se usa en la comunicación de datos, pero no entiendo la relación porque EEPROM técnicamente es almacenamiento, no ancho de banda. Esto se aplica a EEPROM, pero también a otros tipos de memoria similares como Flash o SRAM, etc.

Quiero señalar que kilo y mega son prefijos incorrectos para 2^10 y 2^20. El prefijo correcto para 2^10 es kibi y para 2^20 es mebi. Los símbolos para 2^10 bits y 2^20 bytes son Kib y MiB. Sé que suena pedante, pero se han perdido juicios por la diferencia y la ingeniería se trata de ser precisa. Detalles en IEEEStd-1541.

Respuestas (3)

  1. El departamento de marketing llegó primero.

  2. Porque ellos pueden.

  3. Hasta cierto punto, saber cuántos bits puede almacenar tiene algún valor, ya que la EEPROM se puede usar para almacenamiento de bit, nibble, ternario o Klingon-base-xxx. PERO la mayoría de los ingenieros pueden multiplicar por 8 y dividir bastante bien, por lo que expresarlo en bits no tiene un gran valor.

1 y 2 se pueden traducir como "suena mejor y es posible que vendamos más". No lo hace y no lo harán, pero la esperanza muere eternamente en el departamento de marketing.

Algunos sistemas utilizan anchos de palabra distintos de los 8 bits, por lo que expresarlo en bits puede tener sentido, pero esto no suele ser una buena razón. Si está utilizando una CPU Intersil 6601 para construir un DECMATE PDP-8 compatible , es posible que desee usar palabras de 12 bits (pero llegaría unos 30 años tarde :-)). De lo contrario, usar "bytes" donde el tamaño de palabra es de 8 bits, o "palabras" donde el tamaño de palabra <> 8 bits, son tan útiles o más que los bits.

Lo realmente divertido es que esto fue al revés al mostrar cuánta memoria de programa tiene un microcontrolador. Quiero verlo en palabras de instrucción, porque así es como paso la mayor parte del tiempo. Pero la primera especificación suele ser en bytes, incluso cuando eso no tiene sentido para la arquitectura. Por ejemplo, un PIC 16F877 tiene 8k palabras de 14 bits cada una, pero lo he visto citado en 14k o más bytes.

Esta es una práctica bastante estándar entre muchos tipos diferentes de memoria. Creo que hay un par de razones para ello. Primero, los chicos de marketing quieren poner el mayor número posible en sus dispositivos. La segunda es que es la medida más fundamental del tamaño de la memoria. Los dispositivos pueden venir en todo tipo de anchos diferentes: 1, 2, 4, 8, 16, 32, 64, etc. bits. Como resultado, los chips con el mismo número de bits pueden tener un número muy diferente de palabras. La diferencia entre una memoria de 128M x 8, una memoria de 16M x 16 y una memoria de 256M x 4 es solo la configuración de los bancos en el chip de memoria, cuántos pines de dirección están conectados y cuántos pines de datos están enrutados. La única diferencia para algunos dispositivos puede ser solo una configuración de fusible. La matriz de memoria básica para los tres consistirá en 1 Gb de memoria. Tiene sentido medir un 128M x 8 como 128 MB, pero ¿qué pasa con 16M x 16 o 256M x 4? Cuando se construye un módulo de memoria, se pueden combinar varios chips en una memoria más grande; por ejemplo, se pueden combinar 16 256M x 4 para formar una memoria de 256M x 64. Esto podría medirse como 256 M qwords, 2048 M bytes, 16384 M bits, etc.

Históricamente, los chips de RAM han estado comúnmente disponibles en configuraciones x1, x4, x8 y posteriores x16, y era común que las computadoras terminaran necesitando múltiples bancos de chips para lograr la máxima capacidad de RAM. Dos chips 1Kx4 contendrían la misma cantidad de almacenamiento que ocho chips 4Kx1, pero una máquina de 8 bits que usara chips 1Kx4 podría expandirse en incrementos de 1 KB (2 chips - 8 Kbit) (un chip a la vez) mientras que una que usara Los chips 4Kx1 tendrían que ampliarse en incrementos de 4 KB (8 chips, 32 Kbit).

Tenga en cuenta también que, históricamente, no todos los sistemas usaban memoria de 8 bits de ancho para todo. El VIC-20, que se anuncia con 5K de RAM, en realidad tiene 5Kx8 más 1Kx4; el Commodore 64 tiene 64Kx8 más 1Kx4. En ambos casos, los chips de 1Kx4 (4kbit) se asignan a 1024 bytes de espacio de direcciones, pero solo se conectan los cuatro cables de datos inferiores (la RAM adicional se usa para permitir que cada celda de carácter en la pantalla se configure para uno de los 16 colores, y solo se necesitan cuatro bits por byte para ese propósito). En el VIC-20, la pantalla de video solo necesita 506 nybbles, y los 518x4 bits restantes generalmente no se usan. Sin embargo, he oído hablar de al menos una aplicación que los usa, ya que 259 bytes es un 5% adicional de memoria.