A memória adora nos "deixar na mão" quando mais precisamos, até porque exigimos muito dela, seja a alheia ou a própria. Quando falamos na memória de nossos queridos, amados e praticamente insubstituíveis gadgets, sempre queremos que ela seja o mais rápida possível, que possa resgatar nossos dados mesmo depois de a bateria descarregar-se por completo, com uma capacidade bem maior do que podemos precisar durante a vida útil do aparelho e, claro, tudo isso por um precinho bem camarada.
Tio Laguna, haveria alguma tecnologia atual que possa preencher todos esses requisitos?
Talvez, mas tal tecnologia acabaria esbarrando no preço, na capacidade e/ou durabilidade. É a velha e boa questão do custo benefício, que deveria ser muito bem planejada pelo consumidor, afinal, dinheiro não nasce em árvore. Devido à inviabilidade econômica e técnica de se ter uma tecnologia de armazenamento dos dados que poderiam preencher tantas exigências, temos, desde os primórdios da informática, uma clara divisão dos tipos de memória:
- A memória principal, popularmente conhecida como (D)RAM e incluo aqui também a cache (SRAM), de onde o sistema operativo e seus programas compatíveis são diretamente executados pelos microprocessadores. Tal tipo de memória caracteriza-se pela volatilidade das informações, nela gravadas, após o desligamento do aparelho, característica que é compensada pela enorme velocidade de acesso do microprocessador aos dados que estariam ali contidos;
- E memória secundária, a de armazenamento, que é a mais barata, já que possui diversas tecnologias concorrentes e, de certa forma, complementares entre si (discos magnéticos e/ou ópticos, chips ROM de diversos tipos, SSDs, etc..). Tais tecnologias garantem que as informações contidas, nesse tipo de memória, possam ser resgatadas mesmo após o desligamento da máquina capaz de acessar a mídia física da memória secundária. O porém é que a velocidade de transferência desses dados gravados na memória secundária ainda é irrisória diante da competência que coube à memória principal. Isso considerando tecnologias e interfaces contemporrâneas, claro.
Meu caro Laguna, essa dança toda eu já sei de cor e salteado. Que tipo de besteira você veio falar aqui?
Vou "jogar um pouco de conversa fora" sobre as unidades de capacidade e velocidade de transferência da informação contida na memória, seja ela a de armazenamento ou a principal. E quais são essas unidades?
- A mais elementar é o bit (sempre abreviada como 'b' minúsculo, e Meio 'Bit' é nome próprio, tratando-se de exceção prevista no idioma português), que representa o dígito binário 0 ou 1. Quando usamos o bit como unidade, geralmente nos referimos à velocidade de transferência de dados (em transferência, sempre colocamos o tempo analisado, geralmente por segundo).
- Já a mais popular é o octeto de bits, o byte (é abreviada sempre com 'B' maiúsculo e opto pessoalmente por escrever Byte para realçar isso, em determinados momentos), que representaria um caractere (ASCII e mais outros 128 deles...) e é utilizado em qualquer situação para designar a capacidade de armazenamento da memória, seja essa memória a principal ou secundária.
Num passado não muito distante, o JEDEC e o SI brigavam entre si por conta de ambos utilizarem as mesmas ordens de grandeza (o quilo, o mega, o giga, o tera, etc..), só que com significados bem diferentes. Para evitar mais confusões, ambos chegaram a um acordo para diferenciar as ordens de grandeza binárias (JEDEC) das ordens de grandeza decimais (SI):
Por exemplo, o quilobyte (também conhecido como quibibyte, coisa que nem gosto de pronunciar), quando a ordem de grandeza é binária, ou seja, o termo é equivalente à 1024 Bytes, é abreviado como KiB. Mas caso essa ordem de grandeza seja decimal, ou seja, ao referirmo-nos a 1000 Bytes, então abreviaríamos como kB. Resumindo: na abreviatura, um 'i' minúsculo é incluído para as ordens de grandeza binária.
Utilizamos as ordens de grandeza binárias em quase toda referência à memória de nossos Equipamentos de Tecnologia da Informação, seja ela a principal ou secundária. E quanto às ordens de grandeza decimal?
Chegamos à parte interessante: geralmente utilizamos as ordens de grandeza decimais quando tratamos de velocidade de transferência de dados, além de utilizarmos o Byte sendo composto por 10 (dez) bits, devido à codificação 8b/10b, onde há os oito bits de dados + dois bits de paridade.
Então, quando referimo-nos à velocidade de acesso à internet de, por exemplo, 100 Megabits por segundo, essa velocidade seria equivalente à 1 MegaByte por segundo, não 1,25 MiBps como se suporia. A interface USB 2.0 pode chegar aos 480 Mibps (60 MiBps, half-duplex) se não fossem os protocolos proprietários enviados para identificar o componente conectado, juntamente com outras interrupções e restrições, ao passo que o USB 3.0 poderia, em teoria, chegar aos 5 Gbps, mas, na prática, acaba chegando à um pouco menos de um décimo disso, "apenas" 480 MiBps, o que já é dez vezes mais que o padrão anterior e full-duplex.
Agora tenho outra situação interessante: o melhor jogo que já joguei na vida era anunciado como tendo incríveis 256 Megabits e, à época, quando eu era um mero aborrescente, notei que isso não passava de "apenas" 32 MiB. Enquanto isso, o console concorrente, não tão "imune" à pirataria, infelizmente, tinha jogos que ocupavam mais de um CD, embora cada CD proprietário era limitado à 650 ou 700 MiB. Onde quero chegar com essa viagem toda?
Houve um ponto em que os fabricantes de discos magnéticos e/ou ópticos perceberam que era muito mais fácil utilizar ordens de grandeza decimais para medir seus produtos e torná-los mais atraentes aos consumidores, o que fez com que discos rígidos de 320 GB (gigabytes decimais) tivessem "apenas" 298 GiB (gigabytes binários), os DVDs de 4,7 GB possuindo 4,37 GiB e os Blu-rays de 25 GB, "apenas" 23,76 GiB disponíveis ao usuário para o armazenamento de seus dados e vídeos educativos em alta definição.
Mas o uso de ordens de grandeza decimal é algo que não acontece com a memória principal, e por um bom motivo: a interface obriga que a capacidade esteja em ordem de grandeza binária e seus múltiplos, pois cada canal do barramento, que liga o módulo ao controlador de memória, teve ter acesso à um mesmo número de endereços de memória. Se cada módulo de memória (pente é para cabelo..) do tipo DDR2-SDRAM, com 16 chips (oito em cada face, em cada lado do módulo), está num canal de 64 bits, dá para imaginar que cada chip seria dividido por quatro, representando cada bit do canal. Isso em teoria.
Para não me aprofundar demais no assunto e tornar o texto (ainda..) mais longo, gostaria de tratar sobre um vício que ronda alguns lusoparlantes: a mania de pluralizar as ordens de grandeza. Tenho que sempre avisar isso: não existem megas, não existem gigas e nem existem teras. Ordem de grandeza não é unidade. As unidades podem ser colocadas no plural, já que existem bits e Bytes. Mas ordem de grandeza não pode ter plural, a não ser que alguns lingüistas modernos achem o contrário, depois de algum futuro acordo ortográfico que inclua o miguxês como norma culta de nosso idioma.
Ou alguém aí fala "megasbytes", "gigasbytes" e "terasbytes", por acaso?
Uma última coisa: letras maiúsculas são diferentes de letras minúsculas. A temperatura em kelvin (K maiúsculo) é diferente de quilo decimal (k minúsculo) ou quilo binário (Ki). Mega decimal (M) é diferente de mega binário (Mi), que por sua vez, são diferentes do pequenino mili (m). Giga decimal (G) ou binário (Gi) não deveriam ser confundidos com grama (g), unidade de massa. Assim como há uma tonelada (t) de gente que pode confundir o tera decimal (T) com o binário (Ti, também conhecido como titânio pelo tio Pryderi), utilizado indiretamente como unidade de postagem (os queridos tibs) no MeioBit.
Agradecimentos ao Adriano Lepper, à Fabiane Lima, ao GuZ, ao Naftali, ao Gabriel Rezende e ao Atípico Rudá por terem me inspirado a escrever este post durante uma conversa no Skype, enquanto eu estava a jogar Devil May Cry 4, tudo isso simultaneamente, claro.
Nenhum comentário:
Postar um comentário