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:
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.
Deixe seu comentário