(Este é o terceiro num post de quatro partes que coloca 10GB/s em perspectiva. Na primeira parte, descrevemos o que um hipotético robô de cinema poderia fazer com um SSD de 10GB/s. A segunda parte definiu as unidades padrão de medidas-bits e bytes-utilizadas em tecnologias computacionais. Esta seção tenta explicar um problema particularmente confuso com armazenamento e dados: duas definições comumente usadas para os mesmos prefixos de unidade.)

Deixar que você já comprou um sistema de computador com, digamos, um dispositivo de armazenamento de 500GB, mas quando você o iniciou pela primeira vez seu sistema operacional reportou apenas 465GB? Vimos na Parte 2 que o giga- é suposto significar bilhões, portanto uma unidade de 500GB deve ter uma capacidade de 500 bilhões de bytes – não 465 bilhões. Certo?

Direito!

E não está certo, também.

Se por acaso você se aprofundar na discrepância, provavelmente percebeu que os 35GB que faltavam não faltavam de todo. É que nem sempre é usado exatamente como você acha que deveria. Assim como muitos padeiros consideram a palavra dúzia como significando 13, em alguns círculos giga- é usado para significar 1.073.741.824! Para muitos de nós que crescemos entendendo que um bilhão é um 1 com nove 0s a seguir, esta definição de “outro” pode precisar de algum esclarecimento.

A Trip Down Memory Lane

Os computadores usam informações e instruções contidas em arquivos de dados. Estes ficheiros de dados residem em dois locais num sistema moderno de computador: memória primária e armazenamento secundário. A memória primária, agora mais comumente a memória de acesso aleatório (RAM), contém dados que os processadores de computador podem acessar imediatamente. O armazenamento secundário é principalmente de longo prazo, como unidades de disco rígido (HDDs) e unidades de estado sólido (SSDs). Os dados encontrados no armazenamento secundário devem primeiro ser movidos para a RAM antes que um computador possa utilizá-la. A situação é semelhante à da mesa de um escritório e de seu gabinete de arquivos: Os documentos na área de trabalho do escritório são como arquivos na RAM, pois são os únicos que você como um processador de computador pode acessar, ler e agir imediatamente; você pode usar documentos no gabinete de arquivos, ou no armazenamento secundário, mas somente depois de obtê-los do gabinete e colocá-los na área de trabalho.

O tamanho de um arquivo, onde quer que ele seja encontrado, é normalmente expresso em bytes. E como mencionado na Parte 2 deste post, porque estes tamanhos tipicamente correm em milhares, milhões ou mesmo bilhões de bytes, estes tamanhos raramente são mencionados sem prefixos especiais. O problema surge porque os fabricantes de dispositivos de armazenamento secundário têm usado historicamente o conjunto tradicional de definições de prefixos para medir as capacidades de armazenamento de suas unidades, enquanto os fabricantes de chips de RAM e CPU têm optado por usar outro conjunto de definições para os mesmos prefixos!

A Tale of Two Systems

A maioria das indústrias de computadores e eletrônicos usa o sistema métrico, ou decimal, de prefixos. Sua forma atual foi originalmente padronizada pelo Sistema Internacional de Unidades (SI) em 1960. O sistema de prefixos métricos tem como base o número 10, portanto seus prefixos correspondem a números que são potências inteiras de 10. Kilo, por exemplo, é 103 – o que significa 10 multiplicado por si mesmo três vezes – ou 1.000. Os prefixos subsequentes no sistema podem ser expressos facilmente como potências desse 1.000. O prefixo mega-, por exemplo, é 1.0002 (1.000.000) e o giga- é 1.0003 (1.000.000.000). A indústria de armazenamento utiliza o sistema de prefixo métrico para descrever a capacidade dos dispositivos de armazenamento secundário.

O sistema de prefixo binário entra em jogo quando se fala de memória primária. O sistema de prefixo binário tem como base o número 2, portanto seus prefixos correspondem a números que são potências inteiras de 2. Quando os dados chegam à memória primária, a cada informação é atribuído um endereço único que permite ao processador encontrar os dados quando necessário. Em meados dos anos 60, um esquema de endereçamento binário tornou-se padrão nas arquiteturas de computadores porque um sistema binário permite que os dados binários na memória sejam organizados da forma mais eficiente para que todos tenham endereços válidos.

No início, as capacidades de memória principal eram expressas em números absolutos, mas quando os primeiros profissionais de informática encontraram a necessidade de expressar capacidades de memória maiores, eles também encontraram a necessidade de usar prefixos para descrevê-los. A indústria de armazenamento já havia adotado o uso do sistema de prefixos métricos baseados em SI. Por conveniência, esses profissionais decidiram adotar o sistema de prefixos também…com algumas modificações. Eles notaram que o número 1.024, ou 210 (binário), era aproximadamente igual a 1.000, ou 103 (decimal), então eles começaram a usar o prefixo kilo não para significar 1.000, mas para significar 1.024! Os prefixos subsequentes no sistema podem ser expressos como potências desse 1.024. Mega-, por exemplo, tornou-se 1.0242 e giga- tornou-se 1.0243,

A tabela a seguir expande uma tabela apresentada na Parte 2 deste post, incluindo não apenas o significado de cada prefixo, mas também o valor exato dos prefixos de ambos os sistemas.

prefixos métricos
Um tem que lembrar, no entanto, que a capacidade total do nosso hipotético SSD ainda é de 500.000.000.000 de bytes. É que quando você divide este número por um gigabyte, você pode ter dois valores diferentes porque existem duas definições diferentes de gigabyte. Quando você define um gigabyte como 1.0003 (ou 1.000.000.000.000) bytes, como o Sistema Internacional de Unidades e como os fabricantes de armazenamento fazem, então 500.000.000.000 bytes é o mesmo que 500GB. Quando você define um gigabyte como 1.0243 (ou 1.073.741.824) bytes, como fazem os fabricantes de RAM e alguns grandes sistemas operacionais, então 500.000.000.000 bytes é o mesmo que 465GB. Afinal, a discrepância entre um kilobyte métrico e um kilobyte binário é de apenas 2,4%. Além disso, qualquer pessoa que já tenha falado de KB já sabia se estava falando de 1.000 bytes de armazenamento ou de 1.024 bytes de memória. Mas com o passar do tempo, as capacidades tanto de memória como de armazenamento começaram a aumentar. Com o crescimento das capacidades, as diferenças relativas entre os valores decimal e binário do mesmo prefixo tornam-se mais pronunciadas. Por exemplo, embora a discrepância entre o quilo binário e métrico possa ser de apenas 2,4%, a diferença entre um giga- nas duas interpretações cresce para 7,4%, e para 12,6% quando se fala de peta-!

Por causa do potencial de problemas com esta discrepância, um movimento nos círculos científicos começou no final dos anos 90 para estabelecer formalmente uma nova e distinta convenção de nomes para prefixos de grandes números binários. Em 1998, os prefixos binários resultantes foram adotados pelos órgãos de normalização da Comissão Eletrotécnica Internacional (IEC), da Organização Internacional de Normalização (ISO) e do Instituto Nacional de Normas e Tecnologia (NIST), e agora são referidos como “prefixos IEC”. Os prefixos neste sistema destinam-se a fornecer distinções óbvias entre os dois sistemas e são formados como contracções combinando as duas primeiras letras dos prefixos SI com as letras bi (abreviatura para binário). A tabela seguinte apresenta uma lista dos prefixos e seus significados.

prefixos binários

Embora as ramificações de usar erroneamente um prefixo quando se pretende usar o outro possam não ser tão dramáticas como a desconexão que resultou na infame queima de 1999 do Orbitro Climático de Marte da NASA, quando seu software calculou a força de seus propulsores em “libras”, mas um pedaço separado de software levou os dados assumindo que estava na unidade métrica “newtons”, entendendo a diferença entre esses sistemas pode salvar você de se sentir surpreso – ou pelo menos de ficar confuso.Infelizmente, nem todos os fabricantes de computadores, software e memória começaram ainda a usar as definições científicas padronizadas, por isso ainda é provável que você veja o mesmo prefixo usado tanto para as interpretações métricas como binárias. A confusão entre os consumidores ainda pode ocorrer quando o dispositivo de armazenamento que eles instalam indica uma capacidade usando prefixos padrão, mas seu sistema operacional, que pode expressar capacidades de memória primária e de armazenamento secundário em termos de prefixo binário, exibe o que parece ser uma capacidade diferente. Hoje, para amenizar a confusão, a maioria dos fabricantes de armazenamento inclui explicações sobre seus produtos e literatura que definem o valor exato do prefixo que usam.

A próxima parte deste post cobrirá as taxas de transferência e as considerações únicas tomadas ao expressá-las com dados.

Articles

Deixe uma resposta

O seu endereço de email não será publicado.