Cómo se relacionan la capacidad en GB, el tamaño del sector y el LBA

Geometría de sectores de una memoria USB mostrando capacidad, tamaño del sector y LBA

La capacidad de almacenamiento parece algo sencillo hasta que empiezas a mirar más allá del número impreso en el costado de una memoria USB. Una unidad USB puede venderse como de 32GB, Windows puede mostrar una cifra ligeramente diferente, una herramienta de fabricación puede pedir la capacidad en MB y, en otro lugar, el dispositivo puede informar un número de LBA que parece no tener ninguna relación con todo lo anterior.

En realidad, todo está relacionado.

La relación entre capacidad, tamaño del sector y LBA es bastante sencilla una vez que entiendes qué representa cada número. También es información muy útil cuando se trabaja con memorias USB a nivel de fabricación o duplicación, donde especificar simplemente “32GB” a veces no es lo suficientemente preciso.

¿Qué es un LBA?

LBA significa Logical Block Addressing, o direccionamiento lógico por bloques. En lugar de pensar en la ubicación física de los datos dentro de la memoria flash NAND, la computadora ve el dispositivo de almacenamiento como una larga secuencia de bloques lógicos numerados.

LBA 0 es el primer bloque lógico, LBA 1 es el siguiente, después viene LBA 2 y así sucesivamente hasta que el dispositivo llega a su último LBA disponible.

Lo importante es que un LBA por sí solo no nos dice cuánta capacidad de almacenamiento existe. También necesitamos conocer el tamaño de cada sector lógico.

La relación básica es:

Capacidad en bytes = número de LBA × tamaño del sector lógico

En la mayoría de las memorias USB, el tamaño del sector lógico es de 512 bytes.

Eso nos da un atajo muy útil.

Hay 1.048.576 bytes en un MiB. Si cada sector lógico contiene 512 bytes:

1.048.576 ÷ 512 = 2.048

Por lo tanto, con sectores lógicos de 512 bytes:

2.048 LBA = 1 MiB

Y eso significa:

Número de LBA ÷ 2.048 = capacidad en MiB

Técnicamente, MiB es el término correcto aquí porque estamos utilizando 1.048.576 bytes en lugar de los 1.000.000 de bytes decimales utilizados para MB. Algunas utilidades de fabricación y algunos MPTool siguen etiquetando este valor como “MB”, por lo que es importante entender qué significa realmente MB dentro de la herramienta específica que se esté utilizando.

Un ejemplo real de LBA

Supongamos que una memoria USB informa el siguiente número de LBA:

60.125.184

Si suponemos que el dispositivo utiliza sectores lógicos de 512 bytes, podemos calcular su capacidad direccionable:

60.125.184 × 512 = 30.784.094.208 bytes

O podemos utilizar el atajo:

60.125.184 ÷ 2.048 = 29.358 MiB

Por lo tanto, el dispositivo tiene exactamente 29.358 MiB de almacenamiento direccionable, lo que equivale aproximadamente a 28,67 GiB, o 30,78 GB cuando la capacidad se expresa utilizando gigabytes decimales.

Esta es también la razón por la que llamar a algo simplemente una “memoria USB de 32GB” no nos dice cuál es su geometría exacta.

Dos memorias USB que se venden como productos de 32GB no necesariamente tienen exactamente el mismo número de LBA disponibles. La configuración de la NAND, los ajustes del controlador, la capacidad reservada, la gestión de bloques defectuosos, el over-provisioning y la forma en que se configuró el dispositivo durante la fabricación pueden afectar la capacidad direccionable final que se presenta a la computadora host.

Para la mayoría de los usuarios, una pequeña diferencia no tiene importancia.

Para la duplicación de discos, en cambio, puede importar bastante.

Hacer el cálculo en la dirección contraria

El cálculo también puede hacerse al revés.

Si conocemos el número exacto de LBA que queremos y el tamaño del sector lógico es de 512 bytes, podemos convertir ese número de LBA en una capacidad y configurar la memoria USB de acuerdo con ese valor utilizando un MPTool, suponiendo que el controlador y el MPTool ofrezcan esa posibilidad.

La fórmula es:

Número de LBA ÷ 2.048 = MiB

Por lo tanto, podemos calcular la capacidad necesaria a partir del número de LBA solicitado por un cliente y establecer la capacidad correspondiente dentro del MPTool.

Si el MPTool utiliza sectores lógicos de 512 bytes y su campo de capacidad representa MiB binarios, configurar esa capacidad debería producir el número de LBA deseado.

Esto puede resultar especialmente útil cuando se fabrican memorias USB que necesitan coincidir con un dispositivo maestro conocido. También es una de las razones por las que el hardware de duplicación USB se comporta de forma diferente a una simple copia de archivos. Un duplicador puede estar trabajando con la estructura real del dispositivo de almacenamiento en lugar de limitarse a copiar archivos visibles de un sistema de archivos a otro.

Por ejemplo, imaginemos que un cliente crea una imagen maestra de arranque utilizando un determinado lote de memorias USB. Seis meses después llega otro lote de unidades nominalmente idénticas de 32GB, pero la NAND ha cambiado y las nuevas unidades fabricadas exponen una cantidad ligeramente menor de LBA.

La etiqueta sigue diciendo 32GB.

El sistema operativo sigue reconociéndolas como dispositivos de aproximadamente 32GB.

Pero desde el punto de vista de una imagen de disco copiada sector por sector, no son idénticas.

Si la imagen maestra espera más LBA de los que ofrece el dispositivo de destino, es posible que la imagen no quepa. Los medios basados en GPT añaden otra complicación porque GPT mantiene un encabezado de respaldo al final del disco. La ubicación de esa estructura está vinculada al final del dispositivo direccionable.

Esta es una de las razones por las que los medios de arranque y las imágenes de disco merecen un poco más de atención que una colección normal de archivos. También hemos explicado por qué los medios USB de arranque no se comportan igual en todos los entornos, y el punto en común es que la estructura del disco puede ser tan importante como los archivos que se encuentran almacenados en la unidad.

Controlar la capacidad realmente fabricada puede ser, por lo tanto, mucho más útil que limitarse a especificar una capacidad comercial como 32GB, 64GB o 128GB.

El tamaño del sector cambia el cálculo

Sin embargo, existe una consideración importante respecto al atajo anterior:

Número de LBA ÷ 2.048 = MiB solo funciona con sectores lógicos de 512 bytes.

Un LBA es una dirección. No significa automáticamente 512 bytes.

Si un dispositivo de almacenamiento presenta en cambio sectores lógicos de 4.096 bytes, cada LBA representa ocho veces más datos.

Por ejemplo, tomemos el mismo número de LBA utilizado anteriormente:

60.125.184

Con sectores lógicos de 512 bytes:

60.125.184 × 512 = 30.784.094.208 bytes

Eso equivale aproximadamente a 30,78 GB, o alrededor de 28,67 GiB.

Pero si esos mismos 60.125.184 LBA representaran sectores lógicos de 4.096 bytes:

60.125.184 × 4.096 = 246.272.753.664 bytes

Ahora el dispositivo representaría aproximadamente 246,27 GB, o alrededor de 229,36 GiB.

El mismo número de LBA. Una capacidad completamente diferente.

Por eso es necesario conocer el tamaño del sector antes de convertir un número de LBA en una capacidad.

¿Por qué alguien usaría algo distinto de 512 bytes?

En este punto, la pregunta evidente es por qué los dispositivos de almacenamiento no utilizan simplemente sectores de 512 bytes todo el tiempo.

Históricamente, los sectores de 512 bytes se convirtieron en el estándar de los discos duros y, con el tiempo, quedaron profundamente integrados en los sistemas operativos, las implementaciones de BIOS, los cargadores de arranque, las utilidades de disco y otros programas. La compatibilidad es una de las principales razones por las que los sectores lógicos de 512 bytes siguen siendo tan comunes, incluso en las memorias USB.

Pero los dispositivos de almacenamiento modernos son considerablemente más complejos internamente.

La memoria flash NAND no funciona físicamente en pequeños bloques ordenados de 512 bytes. La NAND utiliza páginas y bloques de borrado mucho más grandes, mientras que los discos duros modernos también han pasado a utilizar sectores físicos de mayor tamaño. Un controlador tiene que traducir la forma en que la computadora cree que está organizado el dispositivo de almacenamiento a las estructuras mucho más grandes que realmente utiliza el medio subyacente.

Aquí es donde entran en juego geometrías de sectores como 512e y 4Kn.

Un dispositivo 512e utiliza sectores físicos más grandes, normalmente de 4.096 bytes, mientras continúa presentando al host sectores lógicos de 512 bytes. La computadora obtiene así la compatibilidad de los sectores tradicionales de 512 bytes, mientras que el dispositivo de almacenamiento puede funcionar internamente utilizando una geometría física más eficiente.

Un dispositivo 4Kn va un paso más allá y expone directamente al host sectores lógicos de 4.096 bytes.

Los sectores más grandes pueden reducir la sobrecarga de direccionamiento, mejorar la eficiencia de la información de corrección de errores y ajustarse mejor a las características físicas de los medios de almacenamiento modernos. En dispositivos de almacenamiento de gran capacidad, los sectores lógicos más grandes también significan que se necesitan menos bloques lógicos individuales para describir la misma capacidad.

Sin embargo, existen algunas compensaciones.

Los sistemas operativos antiguos, los entornos de arranque, los dispositivos integrados y el hardware especializado pueden esperar sectores lógicos de 512 bytes. El software que hace determinadas suposiciones sobre el tamaño de los sectores también puede comportarse de forma diferente cuando trabaja con medios 4Kn. Esa es una de las razones por las que los fabricantes de dispositivos de almacenamiento y los proveedores de controladores a veces ofrecen la geometría de sectores como una opción configurable en lugar de imponer una sola configuración para todas las aplicaciones.

Para una memoria USB normal utilizada simplemente para mover documentos de Word y fotografías entre computadoras, nada de esto resulta especialmente emocionante. El usuario conecta la unidad, ve aproximadamente la capacidad que esperaba y continúa con su día.

Sin embargo, para duplicadores, medios USB de arranque, sistemas integrados, equipos industriales y entornos de fabricación controlados, la geometría exacta puede convertirse en parte de la especificación del producto.

“32GB” describe el vecindario.

El tamaño del sector y el número de LBA indican la dirección exacta.

Nota editorial: GetUSB.info cubre desde 2006 temas relacionados con memoria flash USB, sistemas de duplicación y el comportamiento de los medios de almacenamiento extraíbles. Este artículo se basa en experiencia práctica trabajando con la geometría de las memorias USB, la configuración de controladores y la duplicación a nivel de sector.

Read More Articles

Keep exploring more stories, analysis, and technical insights.