¿Por qué los discos duros nunca son tan grandes como se anuncian?

De todos los discos duros que he comprado, nunca parecen ser tan grandes como el tamaño anunciado; Desde 320 GB hasta 290 GB, desde 500 GB hasta 450 GB, etc. ¿Hay alguna razón técnica para esto?

La razón técnica es que los fabricantes de discos duros venden sus capacidades en unidades métricas. Así que un GB = 1,000,000,000 bytes por el sistema métrico. Sin embargo, las computadoras miden el tamaño de la unidad en potencias de 2. Así que 1GiB = 1,024MiB, 1MiB = 1,024KiB, etc. Lo que esto significa es que 1GiB = 1,073,741,824 bytes, una diferencia de 73,741,824.

Así que cuando instale su unidad de 1 GB (por ejemplo), el sistema operativo sólo ve 0.93GiB, y esta es la causa de la discrepancia.

(Si nunca has visto la abreviatura GiB antes, es una nueva notación adoptada para denotar poderes de 1024 en lugar de 1000. Sin embargo, la mayoría de los sistemas operativos reportarán a GiB como GB, lo que confunde aún más este problema)

Cuando un fabricante de unidades crea una unidad de 500 GB de capacidad, tiene una capacidad de 500.000.000.000 de bytes, y seguro que van a anunciarlo como tal. Los ordenadores, que son dispositivos binarios, prefieren potencias de dos, con un conjunto diferente de prefijos, por lo que es lo que utilizan para la medición de espacio de almacenamiento:

1 kibibyte = 2 ^ 10, 1 mebibyte = 2 ^ 20, 1 gibibyte = 2 ^ 30, etc.

Por ejemplo, tengo una unidad de 300 GB conectada a esta máquina y Windows muestra lo siguiente para la capacidad:

Capacity: 300,082,855,936 279 GB 

300.082.855.936 / 2 ^ 30 = ~ 279. Lo que realmente está mostrando es el tamaño de la unidad en bytes gibi , no giga bytes. Por lo tanto, debe decir:

 Capacity: 300,082,855,936 279 Gi 

Se podría decir que esto es una falla en Windows, pero al parecer no hay un estándar definitivo para los significados de prefijo de capacidad de almacenamiento. Mucha información más buena, incluyendo una sección sobre "Confusión del consumidor", en este artículo de Wikipedia .

Originalmente esta fue la respuesta a esta pregunta (fusionada) de 4 GB de pen drive.

Empecemos por la declaración: " El sistema humano se basa en el poder de 10, binario en el poder de 2 "
Lo que sigue puede dar una primera respuesta a su pregunta.

Los prefijos métricos son potencia de 10, 1000 o 10 ^ 3 es k , 10 ^ 6 es M , 10 ^ 9 G
Los prefijos binarios son potencia de 2 (2 ^ 10 = 1024 no tan lejos de 1000 pero diferente, 2,4% ).

 4000000000/1024/1024/1024 Your 4GB are 4 000 000 000 Bytes 3.72529029846191406250 That becames around 3.73 GiB 

Vendedores y Derecho : Los vendedores se comportan de acuerdo a las reglas del mercado, cuando las leyes no los obligan a hacer lo contrario. 4 vende mejor que 3.78. Por las mismas razones los proveedores de Internet a menudo hablan de bps y le permiten entender Bps . Hay un factor 8: un byte ( B ) es de 8 bits ( b ).

El problema es que las leyes existen, pero no en todas las naciones son las mismas.

El sistema internacional , o SI , es el más utilizado en el mundo para el comercio y la ciencia (se publicó en 1960 y en la actualidad son parcialmente fuera sólo Estados Unidos que está adoptando, Birmania y Liberia).
Establece no sólo las unidades de medida, sino incluso los prefijos .

Puesto que es natural en el mundo informático el uso de una base numérica en potencia de 2 (y no 10 como en el mundo humano ) se introdujo en 1998 el sistema de los prefijos binarios . Aquí directamente la mesa . Hoy en día encontramos en la situación que

 the International Electrotechnical Commission (IEC) and several other standards (NIST...) and trade organizations approved standards and recommendations for a new set of binary prefixes that refer unambiguously to powers of 1024 

Cuando lea 1GB debe ser de 1 000 000 Bytes ,
En su lugar, cuando lea 1GiB debe ser 1 073 741 824 Bytes .

¿Por qué todavía debe ser y no es ? Porque depende de cómo el legislador de la nación en que se produce el artículo y el legislador de la nación en que se importa el artículo adopte y transforme en ley la directiva de las comisiones internacionales.

Así que mantener los ojos bien abiertos.

(Incluso porque en varias naciones se prescribe escribir las informaciones para cumplir los deberes de ley en una etiqueta adhesiva.Por lo general es tan poco de lo que realmente necesita para mantener bien abierto los ojos para leer leerlo)


Referencias adicionales

  • El Sistema Internacional de Unidades (SI) (8ª ed.), ISBN 92-822-2213-6
  • Unidades específicas de IEC 60027-2 A.2 e ISO / IEC 80000
  • NIST SP 330 para algunos electrodomésticos de SI en los Estados Unidos
  • Directiva 71/354 / CEE del Consejo, de 18 de octubre de 1971, relativa a la aproximación de las legislaciones de los Estados miembros sobre unidades de medida
  • Directiva 80/181 / CEE del Consejo, de 20 de diciembre de 1979, relativa a la aproximación de las legislaciones de los Estados miembros sobre las unidades de medida y la derogación de la Directiva 71/354 / CEE y sucesivas modificaciones

Vea este artículo para una explicación.

Básicamente, hay dos definiciones de "gigabyte". Una definición es que 1 GB = 1024 3 bytes. Esta es la definición que el equipo informa (por razones técnicas).

La otra definición (de unidades SI) es que 1 GB = 1000 3 bytes. Esta es la misma que cualquier otra unidad métrica (1 gigámetro = 1000 metros).

Dado que la definición de métrica de un gigabyte es menor que la que el equipo considera un gigabyte, los fabricantes de discos duros utilizan la definición de métrica porque pueden imprimir una mayor capacidad en la caja.

Una pequeña cantidad de espacio también es utilizada por el propio sistema de archivos, pero la mayor parte de la capacidad que falta es de la definición de un gigabyte.

Si desea estar seguro de cuán grande es en realidad, averigüe qué tamaño de sector utiliza y el número total de sectores. Luego multiplique estos dos números para obtener el tamaño total en bytes. Este es el verdadero tamaño! ¡En cualquier sistema operativo! También se conoce como capacidad de disco.

 T = bx S Where T is the total disk size in bytes, b is the sector size in bytes, and S is the total number of sectors. 

Número de sectores

A menudo encontrará el número de sectores impresos en una etiqueta en el propio dispositivo. Si no, entonces mire la hoja de datos para su modelo. Este es un documento que especifica todo tipo de detalles técnicos sobre su modelo. En un mundo conectado a Internet, lo encontrará en el sitio web del fabricante, ya sea en algún tipo de tabla en una página web o como un archivo que puede descargar (comúnmente PDF) para estudio y referencia. En la vejez (antes de que hubiera una web), es posible que haya recibido una copia impresa cuando compró la unidad de disco duro.

Tamaños del sector

Hay dos tipos de sectores: físico, y lógico. Más comúnmente, el tamaño del sector físico es de 512 bytes en un disco estándar. El tamaño del sector no aparece en la etiqueta de una unidad de disco duro moderna. Para entender por qué esto es, usted necesita entender la diferencia entre los sectores lógico y físico. Trataré de explicar esto brevemente.

Disco LBA

Las unidades de disco duro modernas utilizan sectores lógicos. Verá esto denominado LBA (Logical Block Addressing). De hecho, al buscar el número total de sectores en la etiqueta, verá el número de sectores llamados LBA, por lo que dirán algo así como LBA: 123456789 . Este es su número total de sectores. Estos son los sectores lógicos en el disco y se escriben y se leen de usar el método de direccionamiento LBA. Este método permite al sistema operativo utilizar un formato de sistema de archivos (por ejemplo, NTFS, FAT32) con una unidad de asignación que es mayor que el tamaño del sector físico.

Wd Maxtor

Unidad de asignación

La unidad de asignación es similar en concepto a un tamaño de sector , pero ofrece cierto nivel de flexibilidad en el que puede cambiar su tamaño, sin cambiar el tamaño del sector físico. Si ha comprado e instalado, y luego formateado más de una unidad de disco duro en su vida, entonces usted sin duda ha encontrado este término. Los tamaños de unidad de asignación más comunes para una unidad de disco duro formateada NTFS en la actualidad son 4K, 8K y 16K. Digo "hoy" debido a los tamaños de disco que las unidades de disco duro están disponibles en estos días.

A saber, qué tamaño de unidad de asignación es apropiado para una unidad de disco duro puede no ser apropiado para otra. Depende de lo grande que sea. Los más pequeños están mejor con tamaños de unidad de asignación más pequeños, y los más grandes están mejor con tamaños de unidades de asignación más grandes. Sin embargo, eso no le impide utilizar un tamaño de unidad de asignación grande en una unidad de disco duro pequeña. ¡De lo contrario! Gracias a la naturaleza lógica de la unidad de asignación, se puede configurar durante el proceso de formateo y se puede configurar para que sea mayor que el sector físico. En una unidad de disco duro pequeña, una unidad de asignación grande tiende a dar un ligero aumento de rendimiento, a expensas del espacio de disco sin embargo.

Es por eso que Microsoft ha cambiado la terminología, del tamaño del sector, a la unidad de asignación. Esto sucedió varias versiones de Windows de nuevo. Si recuerdo correctamente, fue con una de las familias de Windows 9x que comenzaron a usar este término.

La unidad de asignación se traduce y se asigna internamente a uno o varios sectores físicos en el disco. Esta tarea la realiza el controlador de accionamiento. El controlador es la placa de circuito impreso en la parte posterior de la unidad de disco duro. En las primeras unidades de disco duro ATA (ahora conocidas como Paralelo ATA o PATA), la placa controladora se conocía como IDE (Integrated Drive Electronics). Históricamente, las unidades de disco duro no siempre tienen el controlador integrado en ellos. En su lugar, esta era una interfaz independiente.

El tamaño del sector físico más común en una unidad de disco duro dirigida por LBA es de 512 bytes. Pero desde alrededor del año 2010, muchas nuevas unidades de disco duro son ahora del tipo Advanced Format . Esto simplemente significa que utiliza tamaños de sector que son mayores que 512 byte. Actualmente, el tamaño del sector más grande es 4K, o 4096 bytes.

El punto principal es: el tamaño del sector físico en una unidad de disco duro moderna tiene poca o ninguna relevancia para el usuario. Los tamaños del sector físico se organizan en sectores lógicos y unidades de asignación y se abstraen del usuario. Hay incluso una capa más de abstracción con los discos de formato avanzado, porque esos discos pueden emular sectores de 512 bytes pero utilizan 4096 sectores físicos. Por esta razón, el tamaño del sector normalmente no se imprime en la etiqueta de una unidad de disco duro dirigida por LBA, y aún más para discos de formato avanzado. Pero sí tienen tamaños físicos del sector, sin embargo. Encontrará este detalle en la hoja de datos de cada modelo o utilizando un software de utilidad en un sistema en ejecución.

Disco CHS

Este tipo de discos anteriores a las unidades de disco dirigidas LBA. Ellos usan un método llamado CHS (Cilindro Head Sector) dirigiendo para leer y escribir. El usuario tiene acceso directo a sectores físicos. A diferencia de LBA, no existe una capa de abstracción sectorial. El tamaño del sector en estos discos es casi garantizado para ser de 512 bytes. Pero podría ser cambiado por el usuario.

¿Alguna vez has oído hablar de "bajo nivel de formato"? Aquí es donde este término se deriva. Como resultado del acceso directo a los sectores físicos, es posible cambiar el tamaño del sector. Esto permite al usuario "nivel bajo" formatear el disco, lo que significa volver a escribir los sectores físicamente en el disco. Esto era a veces útil cuando había un problema con el disco. Era un medio de refrescar el disco. El verdadero formato de bajo nivel ya no es posible con las modernas unidades de disco duro. Esto no debe confundirse con el formato del sistema de archivos.

cuántico Ibm

Los discos CHS siempre tenían el número de Sectores por Pista (SPT) impreso en la etiqueta, entre otros detalles. Si no se menciona el tamaño del sector, se supone que es de 512 bytes. Los otros detalles son número de cilindros y número de cabezas. Esos fueron los tres principales. De ahí el nombre, Sector Cilindro. Había una buena razón para esto también. Debido a que en las primeras unidades de disco duro que utilizaban el direccionamiento CHS, todos estos parámetros debían establecerse manualmente en el programa de configuración del BIOS del sistema. Esto fue parte del proceso de instalación! Así que esta era una pieza clave de información para poder instalarla correctamente. A medida que la plataforma de PC evolucionó, incluyendo las mejoras de BIOS, la unidad de disco y las innovaciones de interfaz, fue posible conectar la unidad de disco duro y el sistema lo detectaría y lo configuraría automáticamente.

Usted puede haber notado que escribo sobre estos discos en tiempo pasado. Esto es porque están obsoletos, y están (casi) en ninguna parte ser encontrado. A excepción de los museos técnicos quizás.

Prefijando tamaños de bytes

Algunos conceptos básicos primero en las mediciones:

  • Un dígito binario (bit) es la unidad de medida más pequeña en un ordenador binario. Es un 1 o un 0. (O ambos en un ordenador cuántico.)
  • Un bit es abreviado con una minúscula b , o deletreado como bit .
  • La siguiente unidad es un byte.
  • Un byte es abreviado con una mayúscula B , o deletreado como byte o byte .
  • Un byte es exactamente 8 bits.
  • La siguiente unidad es una palabra, y por lo general sólo se expresa como palabra .
  • La longitud de la palabra depende de la arquitectura del procesador. Es comúnmente de 8 bits, 16 bits o 32 bits, o 64 bits.
  • La siguiente unidad después de eso es un múltiplo de una palabra, como una palabra doble o una palabra cuádruple.
  • Una palabra doble es abreviada como Dword o Dw, y una palabra quad abreviada como Qword o Qw.

Esas son las medidas básicas, pero no encontrarás palabras a menos que seas un programador. Los tamaños de disco, las particiones y los archivos utilizan bytes. Un byte es la medida más práctica para trabajar. Un sector en un disco es un bloque de bytes. Por convención, esto es más comúnmente 512 bytes, que es un múltiplo de 2.

 2^0 = 1 byte 2^1 = 2 byte 2^2 = 4 byte 2^3 = 8 byte 2^4 = 16 byte 2^5 = 32 byte 2^6 = 64 byte 2^7 = 128 byte 2^8 = 256 byte 2^9 = 512 byte 

Estos tamaños de bytes más pequeños se pueden expresar fácilmente con números solamente. Pero el vigésimo múltiplo de 2 es 1048576, y el múltiplo 30 es 1073741824. Si esto representa bytes, podemos usar un prefijo para expresar el mismo valor más simplemente. Es por eso que tenemos prefijos como kilo, mega y giga. Pero el problema es que estos son los prefijos SI (Système International) que se utilizan en el sistema métrico de medición decimal. Cada prefijo en este sistema representa un valor que es un múltiplo de 10. Mientras que un equipo binario utiliza una base de 2 para medir información.

 unit 10^0 = 1 kilo 10^3 = 1000 mega 10^6 = 1000000 giga 10^9 = 1000000000 

Es por esta razón que IEC, un organismo internacional de estándares, ha introducido el concepto de prefijos binarios. Los nombres kilo, mega, giga, y así sucesivamente, han sido ligeramente cambiados en este sistema para reflejar que se van a utilizar con mediciones binarias.

 kibi 2^10 = 1024 = 1024^1 mebi 2^20 = 1048576 = 1024^2 gibi 2^30 = 1073741824 = 1024^3 

Los nombres son concatenaciones de su nombre respectivo en el sistema SI, y la palabra binario. Por ejemplo, kibi, se forma de ki lo y bi nary.

Si digo que un objeto tiene una masa de 5000 gramos, puedo expresar ese valor con un prefijo como 5 kG (kilogramo). Lo estoy dividiendo por mil para eliminar los ceros finales. Debido a que el valor del prefijo es conocido, una segunda persona no necesita preguntarme cuántos gramos medí la primera vez. Simplemente invierte el proceso, tomando mi notación de 5 kG y multiplicándola por mil para convertirla en gramos. Kilo significa mil, por lo que 5 x 1000 = 5000.

Los primeros 30 sectores en un disco es 15360 byte, si cada sector es 512 byte. Para expresar esto más simplemente, podría dividirlo por 1000. El resultado es 15.36 kilobytes, o 15.36 kB. Si tuviera que redondearla al número entero más cercano, sería 15 kB. Si otra persona mirara este número, él asumiría que 15 kB eran la medida exacta, y la multiplica con 1000 para convertirla en bytes. De modo que sería 15000 bytes, que no es correcto, porque la medida original era 15360 bytes. Por otra parte, si dividiera 15360 byte por 1024, conseguiría exactamente 15 KiB! Eso es kibibyte . ¡No hay expansión decimal! Dado que dice "KiB" y no "KB", otra persona sabría multiplicar por 1024, y no 1000, para obtener el valor original.

Del mismo modo, cuando un fabricante imprime 8 GB en un dispositivo, están utilizando prefijos decimales. Los que tienen cero valores cero! Así que 8 GB no es 8 GiB (gibibyte) ni 8 x 2 ^ 30, sino 8 x 10 ^ 9 = 8 000 000 000 bytes. Sin embargo, Windows está usando cálculos de tamaño binario (poderes de 2) con lo que parece prefijos decimales (es decir, "GB"). Así que en Windows, estos 8 000 000 000 bytes están divididos por 2 ^ 30 (o 1024 ^ 3) para obtener 7.450580597 "GB" (en realidad GiB). Esto se redondea al centésimo más cercano, por lo que se mostrará como 7.45 "GB" en Windows. Sigo citando "GB" porque Microsoft debería usar GiB para este significado, no GB. Esto sólo se publicará en un tema ya confuso.

Ejemplos de trabajo

Ahora voy a correr a través de algunos ejemplos, utilizando la información de la etiqueta de las unidades de disco duro en las imágenes. Echemos un vistazo al disco de 500 GB primero.

 Capacity: 500 GB LBA: 976773168 976773168 x 512 = 500107862016 bytes 500107862016 / 1024^3 = 465.761741638 ≈ 466 GiB 

Así que esto es 466 GiB, o 466 GB en términos de Microsoft (y JEDEC). Tenga en cuenta que el número no fue ni siquiera después de la división. Creo que esto es porque hay más sectores que el usuario puede utilizar para almacenar datos. Algunos sectores están protegidos y algunos se utilizan para re-mapeo. Algunos sectores se vuelven malos con el tiempo, por lo que es cuando los otros sectores se utilizan como reserva. La unidad de disco duro marcas y mantiene un seguimiento de los sectores defectuosos y deja de usarlos.

Si usted toma solamente el número de la capacidad y lo convierte a GiB parecerá algo como esto.

 500 GB = 500 x 10^9 = 500000000000 byte 500000000000 byte = 500000000000 / 1024^3 = 465.661287308 ≈ GiB 

Usted puede ver que es un número algo más pequeño, pero todavía rondas a 466 GiB. Pero en bytes exactos, esto es más cercano a cuánto usted puede utilizar realmente. De esta manera, no es necesario conocer el tamaño del sector. La capacidad exacta se calcula utilizando el número LBA y el tamaño del sector. Eso es lo que voy a utilizar en el resto de los ejemplos.

 Capacity: 320 GB LBA: 632672208 632672208 x 512 = 323928170496 bytes 323928170496 / 1024^3 ≈ 302 GiB 

Por último, aquí está uno de los discos de CHS. La idea básica es muy similar. Se supone que el tamaño del sector es de 512 bytes si no se indica lo contrario. Voy a mirar el disco Quantum. Usted puede hacer el IBM usted mismo. El disco cuántico no dice nada acerca de su capacidad.

 C: 2484 H: 16 S: 63 2048 x 16 x 63 x 512 = 1056964608 bytes 1056964608 bytes = 1056964608 / 1024^2 = 1008 MiB 1056964608 bytes = 1056964608 / 1024^3 = 0.984375 ≈ 0.98 GiB 

¡Ahí tienes! Un enorme 0,98 GB! ¡Perdóname! Me refiero a 0,98 GiB! D

Márketing

Hay algo llamado "sectores garantizados". Encontrará esto impreso en la etiqueta de algunas unidades de disco duro, o en su hoja de datos. Este es el resultado de la disputa en curso entre usuarios / consumidores y los proveedores de dispositivos de almacenamiento. Esta confusión todavía está presente hoy en día, en la era de la computación en la nube y en un mundo en el que los discos de estado sólido se han convertido en una tecnología convencional y están reemplazando gradualmente las viejas unidades de disco duro.

Yo diría que la comercialización tiene muy poco, si acaso, que ver con esto. Es puramente un problema de matemáticas, y no es un problema con las matemáticas en sí, sino con la gente. Todo es sólo una gran confusión que se ha permitido continuar. Como mínimo, Microsoft debería indicar prefijos binarios como KiB, MiB y GiB. Windows sigue siendo el principal sistema operativo en las PCs de hoy.

En realidad, por lo general son tan grandes como se anuncian, pero:

  1. Siempre (hasta donde yo sé) utilizan 1000 en lugar de 1024 al hacer B a KB y así sucesivamente.
  2. El sistema de archivos utiliza una pequeña cantidad de espacio para realizar un seguimiento de todo.

Puede haber otras razones también, pero son las principales que conozco

En los viejos tiempos de las computadoras cada cálculo era caro (en el sentido del rendimiento). Los programadores utilizaron todo tipo de atajos para hacer los cálculos más pequeños posible. Uno de esos trucos era almacenar la parte del año de una fecha como sólo dos dígitos, lo que finalmente llevó al problema y2k. Otro truco era que definían 1k (kilo) para no significar 1000 como todos los demás en el mundo civilizado, pero para significar 1024 en su lugar. Esto les permitió cortar algunas esquinas al hacer cálculos de tamaño. Ese hábito pegado y todavía se está utilizando hoy en día aunque los cálculos de la computadora se han vuelto tanto más baratos.

El fabricante del hardware le está dando el tamaño adecuado donde K = 1000, M = 1000000 y G = 1000000000. Es el software que te da valores falsos.

Los fabricantes de software están cambiando sus hábitos hoy en día. OSX, por ejemplo, muestra el tamaño adecuado.