Gigabytes e gibibytes

Nós, como seres humanos, estamos acostumados a pensar em valores segundo o padrão decimal, por isso temos muito mais facilidade em lidar com números múltiplos de 10.

Os computadores, por outro lado, trabalham utilizando o sistema binário, ou seja, com potências do número 2. Um único bit permite duas combinações possíveis, dois bits permitem 4, oito bits permitem 256, 16 bits permitem 65.536 e assim por diante.

Por causa dessa peculiaridade, um kilobyte não corresponde a 1000 bytes, mas sim a 1024, já que 1024 é a potência de 2 mais próxima de 1000. Um megabyte corresponde a 1024 kbytes, que por sua vez correspondem a 1048.576 bytes.

Quando falamos em gigabytes e terabytes, as diferenças crescem, já que um gigabyte corresponde a 1.073.741.824 bytes e um terabyte corresponde a 1.099.511.627.776 bytes. Ou seja, um acréscimo de quase 10% em relação ao que teríamos utilizando o padrão decimal.

Diversos dispositivos seguem essa notação binária, incluindo módulos de memória e CD-ROMs. Um módulo de memória de 1 GB possui exatamente 1.073.741.824 bytes, enquanto um CD-ROM de 650 MB é dividido em 333.000 setores de 2048 bytes cada um, totalizando 681.984.000 bytes, ou 650.39 MB.

Esta notação segue o padrão do JEDEC para dispositivos de memória, onde o “mega” é o número 2 elevado à vigésima segunda potência e o “giga” é o número 2 elevado à trigésima potência.

O ponto de discórdia são os fabricantes de HDs, que comodamente adotaram o padrão decimal para medir a capacidade dos seus produtos. A discordância começou muito antes do que se imagina, datando dos primeiros discos fabricados pela IBM. O IBM 350 não armazenava 5 megabytes, mas sim 5 milhões de caracteres, com 7 bits cada um.

Concordando ou não, todos os fabricantes acabaram sendo obrigados a aderir à ideia, já que qualquer fabricante que preferisse seguir o padrão binário teria a capacidade de seus produtos “encolhida” em relação à concorrência. Querendo ou não, o anúncio de um HD de “1 terabyte” soa melhor do que o anúncio de um HD de “931 gigabytes binários”.

Graças a isso, um HD de 500 GB possui, na verdade, 500 bilhões de bytes, que correspondem a apenas 465.6 GB, divididos em pouco mais de 931 milhões de setores de 512 bytes cada um.

Inicialmente, os programas de particionamento exibiam a capacidade dos HDs de forma correta, calculando o espaço em termos de potências binárias. O problema é que isso resultava numa diferença considerável entre o espaço exibido e o espaço declarado pelos fabricantes, o que gerava dúvidas e confusão entre os usuários, que ficavam sem saber por que o programa de particionamento dizia que seu HD de “120 GB” tinha apenas 111.7 GB.

Depois de muita confusão e inclusive alguns processos na justiça por propaganda enganosa, os fabricantes de HDs acabaram ganhando a queda de braço e os programas de particionamento passaram a mostrar a capacidade utilizando potências de 10. Veja como o cfdisk (no Linux) reconhece um HD Samsung de 300 GB:

CFDisk

Ou seja, ele reconhece corretamente a capacidade do drive em bytes, mas arredonda o número para “300.0 GB”, muito embora 300.069.052.416 bytes correspondam na verdade a apenas 286.16 GB.

Temos ainda o caso dos pendrives e cartões de memória, que ficam no meio do caminho. Por comodidade, os fabricantes também adotam a notação decimal, de forma que um pendrive de 1 GB é divulgado como tendo “1.000.000.000 de bytes, ou mais”, enquanto a capacidade real tende a variar um pouco de fabricante para fabricante. Um pendrive de 1 GB da PQI que testei tinha 1.027.603.968 bytes, enquanto um cartão de 2 GB da Kingston tinha 2.002.255872 bytes.

O caso dos pendrives e cartões é interessante, pois eles são originalmente compostos por chips de memória Flash que seguem o padrão binário. Ou seja, um pendrive composto por 2 chips de 8 gigabits possuiria realmente 2 GB “reais”. Apesar disso, os fabricantes precisam reservar parte da capacidade dos chips para o mapeamento de blocos defeituosos e códigos de correção de erros, de forma que a capacidade utilizável acaba sendo sempre um pouco menor, além de variar de fabricante para fabricante, de acordo com o número de bits reservados.

Na prática acabamos com dois padrões de medida conflitantes dentro do ramo da informática; o padrão decimal e o padrão binário, onde cada um é apoiado por um segmento.

Em 2005 o IEEE acabou cedendo à pressão dos fabricantes de HDs e introduziu um novo conjunto de medidas para a designação de valores binários, incluindo o mebibyte, o gibibyte e o tebibyte. O “bi” em todos os prefixos é abreviação de “binary”, indicando justamente que estamos falando de grandezas binárias.

Pelo novo padrão (IEEE 1541), um kilobyte deixa de ter 1024 bytes e passa a ter apenas 1000. Um “kibibyte” não é mais uma mordida no kibe, mas sim um conjunto de 1024 bytes, enquanto um “kibibit” passa a ser um conjunto de 1024 bits. Mudam também as abreviações, onde “Pib” deixa de ser “produto interno bruto” e passa ser abreviação de “pebibyte”, ou seja, pouco mais que um quadrilhão de bits.

Vamos então parar com as piadinhas e ir diretamente à tabela com o novo padrão e as novas abreviações:

Padrão Decimal

Padrão Binário

kilobyte (KB)

kilobit (Kb)

kibibyte (KiB)

kibibit (Kib)

megabyte (MB)

megabit (Mb)

mebibyte (MiB)

mebibit (Mib)

gigabyte (GB)

gigabit (Gb)

gibibyte (GiB)

gigibit (Gib)

terabyte (TB)

terabit (Tb)

tebibyte (TiB)

tebibit (Tib)

petabyte (PB)

petabit (Pb)

pebibyte (PiB)

pebibit (Pib)

exabyte (EB)

exabit (Eb)

exbibyte (EiB)

exbibit (Eib)

zettabyte (ZB)

zettabit (Zb)

zebibyte (ZiB)

zebibit (Zib)

yottabyte (YB)

yottabit (Yb)

yobibyte (YiB)

yobibit (Yib)

Naturalmente, o novo padrão encontrou opositores e a adoção vem caminhando a passos de tartaruga. Muitos autores optaram por ignorar o novo padrão e continuar utilizando a notação binária, usando o termo “decimal” para indicar o uso do padrão decimal quando isso puder dar origem à confusão. Posso então dizer que o padrão ATA-6 derrubou o limite de 128 GB para o endereçamento dos HDs, ou que ele derrubou o limite de 137 GB decimais.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X