Lomadee, uma nova espécie na web. A maior plataforma de afiliados da América Latina.

domingo, 2 de janeiro de 2011

Fique por dentro dos SSDs

Introdução

Os SSDs ou "Solid State Disks" (discos de estado sólido) são possivelmente a maior revolução dentro do ramo dos HDs desde o IBM 350, já que eles utilizam um princípio de armazenamento completamente diferente, com os discos magnéticos dando lugar aos chips de memória Flash:
A vantagem óbvia dos SSDs é que eles oferecem tempos de acesso muito baixos, combinados com excelentes taxas de leitura e gravação em setores aleatórios, onde mesmo os melhores HDs magnéticos oferecem apenas alguns poucos MB/s. Isso melhora o desempenho consideravelmente em uma grande gama de aplicativos e reduz bastante o tempo de boot, tornando o sistema muito mais responsível.
Os SSDs também oferecem um consumo elétrico mais baixo (o que os tornam um componente atrativo especialmente para os notebooks), são silenciosos, resistentes a impactos e oferecem uma melhor segurança contra perda de dados devido a defeitos de hardware, já que não possuem partes móveis.
A grande desvantagem por outro lado é o custo por megabyte, já que em vez de combinar 4 discos magnéticos de 500 GB cada um para criar um HD de 2 TB, você precisa juntar 20 chips de memória Flash de 8 GB cada para criar um SSD de apenas 160 GB. Quanto mais gigabytes, mais chips, o que leva os preços dos drives de maior capacidade para as alturas.
Os primeiros SSDs para uso doméstico começaram a chegar ao mercado em 2007, mas por serem muito caros (pense em US$ 500 por um SSD de 32 GB) eles receberam pouca atenção. Apenas recentemente (final de 2009) os SSDs começaram a chegar com mais força, liderados pela série X25 da Intel e modelos da Kingston, Corsair, OCZ, Super Talent e outros fabricantes menores, que se especializaram em vender versões OEM de drives da Samsung, Indilinx ou até mesmo da Intel.
A grande maioria dos SSDs domésticos utilizam módulos de memória Flash MLC, assim como nos cartões e pendrives. Entretanto, eles oferecem um diferencial importante, que é o uso de múltiplos canais de acesso. Isso permite que o controlador acesse vários chips simultaneamente, dividindo os arquivos em pequenos blocos que podem ser divididos entre os chips e depois lidos simultaneamente, de maneira muito similar ao que temos em um sistema RAID.
A maioria dos drives atuais utilizam 10 ou 20 chips de memória Flash (o que permite que os fabricantes produzam drives de baixa e alta capacidade usando as mesmas placas) e 10 canais de acesso simultâneo. Um bom exemplo é o Intel X25-M G2, que usa 10 chips na versão de 160 GB e 20 chips na versão de 320 GB (com os mesmos 10 canais de acesso em ambos os casos).
Ao escrever um arquivo de 4 MB, por exemplo, o controlador o dividirá em 10 blocos de 400 KB cada um, que serão escritos simultaneamente em 10 chips diferentes, ocupando um total de 100 páginas de 4 KB em cada um. Ao ler o arquivo posteriormente, a leitura é novamente dividida entre os 10 chips, o que multiplica tanto a taxa de escrita quanto a de leitura, sem que exista penalidade com relação aos tempos de acesso.
Outro ponto importante a favor dos SSDs é o uso de controladores mais inteligentes, que utilizam buffers de dados relativamente grandes. Isso permite que as operações sejam organizadas e agrupadas de maneiras mais eficientes e muitas operações sejam cacheadas.
Em situações em que a controladora dispõe de um volume suficiente de blocos limpos (veja mais detalhes a seguir) um SSD de segunda geração como o Intel X25-M G2 pode atingir facilmente 250 MB/s de taxa de leitura sequencial e 80 MB/s de escrita sequencial (muitos drives atingem os 160 MB/s), se aproximando dos 300 MB/s teóricos do SATA-300.
Entretanto, é nas operações de leitura e escrita em setores aleatórios que a diferença se torna mais marcante. Enquanto um HD magnético de 7200 RPM não é capaz de manter mais do que 800 ou 1000 KB/s de escrita ao gravar arquivos de 4 KB em setores aleatórios, um bom SSD é capaz de ultrapassar facilmente os 20 MB/s (o X25-M G2 é capaz de manter de 36 a 40 MB/s de acordo com o volume de requisições simultâneas), o que acaba representando uma diferença muito grande em situações reais de uso.

Entendendo a memória Flash

Diferentemente da memória RAM e também das SRAM, a memória Flash permite armazenar dados por longos períodos, sem precisar de alimentação elétrica. Este simples fato acabou fazendo com que a memória Flash se tornasse uma das tecnologias mais importantes das últimas décadas, possibilitando o surgimento dos cartões de memória, pendrives, SSDs, celulares, câmeras e players de mídia com armazenamento interno e assim por diante.
Se a memória Flash não existisse, todas essas áreas estariam muito atrasadas em relação ao que temos hoje. Os celulares e os palmtops provavelmente ainda utilizariam memória SRAM para armazenar os dados e seriam por isso mais caros e perderiam os dados quando a bateria fosse removida. Os pendrives simplesmente não existiriam e os cartões de memória estariam estagnados nos cartões CompactFlash, utilizando microdrives ou chips de memória SRAM alimentados por uma pequena bateria. Formatos mais compactos, como os cartões SD e miniSD simplesmente não existiriam.
As células de memória Flash são bastante similares a um transistor MOSFET, construídas sobre um wafer de silício (o substrato). A grande diferença é que a célula utiliza dois gates em vez de um. O primeiro é o "control gate", que é usado para ativar a célula e fazer a leitura dos dados armazenados.
Os dados propriamente ditos são armazenados no segundo, o "floating gate", que é precisamente construído entre duas camadas de óxido de silício (oxide layer). O termo "floating" indica justamente o fato de ele ser posicionado entre as duas camadas, sem contato direto com os outros componentes da célula:
As camadas de dióxido de silício armazenam cargas negativas, o que cria uma espécie de armadilha de elétrons, que impede a saída de qualquer carga armazenada no floating gate, um arranjo que permite manter os dados por longos períodos de tempo, sem que seja necessário manter a alimentação elétrica (como nas memórias SRAM), ou muito menos fazer um refresh periódico (como na memória DRAM). Isso simplifica muito o design dos cartões, pendrives e outros dispositivos, pois eles precisam incluir apenas os chips de memória Flash, um chip controlador e as trilhas necessárias, sem necessidade de baterias ou de circuitos de refresh.
Os dados são gravados na célula através de um processo de programação, que consiste em ativar o transistor (a corrente flui do emissor para o coletor) e, simultaneamente, aplicar uma tensão mais alta (12 volts ou mais) no control gate. A alta tensão faz com que alguns dos elétrons sejam "sugados" para dentro do floating gate, onde ficam presos devido às duas camadas de óxido de silício. Uma vez que a célula é programada, os dados podem ser lidos inúmeras vezes, sem que seja necessário regravar os dados.
Para modificar os dados gravados é necessário primeiro limpar o conteúdo das células, o que é feito aplicando uma tensão diferencial entre o emissor e o control gate. Isso remove qualquer carga armazenada no floating gate, fazendo com que a célula retorne ao estado original e possa ser programada novamente. Todo chip de memória Flash suporta um número finito de operações de escrita (de 10.000 a 100.000) mas suporta um número quase ilimitado de operações de leitura.
Continuando, nem todos os chips de memória Flash nascem iguais. Embora a função seja sempre a mesma (armazenar dados), existem diferenças nas tecnologias usadas, que determinam onde o chip será usado.
Existem dois tipos de memória Flash. A primeira tecnologia de memória Flash a se popularizar foi o tipo NOR, que chegou ao mercado em 1988. Os chips de memória Flash NOR possuem uma interface de endereços similar à da memória RAM, incluindo o suporte ao XiP (eXecute in Place), que permite que softwares armazenados no chip de memória Flash sejam executados diretamente, sem precisarem ser primeiro copiados para a memória RAM.
Isso permite que eles sejam usados para armazenar o BIOS da placa-mãe e firmwares em dispositivos diversos, que antes eram armazenados em chips de memória ROM ou EEPROM. Nos primeiros PCs, por exemplo, o BIOS da placa-mãe era gravado em um chip de memória ROM e por isso não era atualizável, a menos que o chip fosse fisicamente substituído.
O problema com as memórias NOR é que elas são muito caras e, embora as leituras sejam rápidas, o tempo de gravação das células é muito alto. Em um chip de memória NOR típico, as operações de gravação demoram cerca de 750 nanosegundos, o que é várias ordens de magnitude mais lento do que em um chip de memória RAM.
No caso do BIOS da placa-mãe, isso não é um grande problema, pois você só precisa atualizá-lo esporadicamente, mas os chips de memória Flash NOR não seriam muito adequados para uso em um SSD, por exemplo.
Chips de memória Flash NOR de acesso serial, como os usados para gravar o BIOS em placas-mãe atuais
As memórias NOR chegaram a ser utilizadas em muitos palmtops e smartphones (até por volta de 2006) para armazenar o firmware do sistema, mas nesse caso ela era usada apenas para leitura, com todas as operações de escrita sendo feitas em um chip de memória SRAM ou Flash NAND separado. A vantagem nesse caso é que o boot era um pouco mais rápido, já que o sistema podia rodar diretamente a partir da memória Flash, sem precisar ser primeiro copiado para a memória RAM. Eles são também muito utilizados em dispositivos mais simples, como impressoras, modems ADSL, pontos de acesso e outros, armazenando o firmware do sistema.
De volta aos PCs, as memórias Flash NOR chegaram a ser utilizadas nos primeiros cartões de memória PCMCIA e CompactFlash, mas elas desapareceram desse ramo quando foram introduzidas as memórias NAND, que rapidamente se tornaram as mais populares.
Além de mais baratas que as NOR, as memórias NAND também são muito mais rápidas na hora de gravar dados. A principal limitação é que elas são endereçadas usando páginas de 4 KB (ou 2 KB, dependendo do design do chip) e acessadas através de um barramento serial. Ou seja, do ponto de vista do sistema, um cartão de memória Flash NAND está mais para um HD do que para uma unidade de memória. Você pode usá-lo para guardar dados, mas na hora que o sistema precisa rodar um programa, precisa primeiro copiá-lo para a memória RAM, da mesma forma que faria ao usar um HD.
A partir de 2006, até mesmo os smartphones e palmtops passaram a utilizar chips de memória NAND para armazenar o firmware e os aplicativos instalados, em vez de um chip separado de memória XOR.
Isso se tornou possível graças ao uso de sistema de execução dinâmica, onde os aplicativos são primeiro copiados da memória Flash para a memória RAM e executados a partir dela. Esse esquema é muito similar ao que temos num PC, onde os arquivos são salvos no HD, porém processados usando a memória RAM.
O grande boom da memória Flash aconteceu entre 2004 e 2005, quando uma combinação de dois fatores fez com que os preços por MB caíssem rapidamente.
O primeiro foi o brutal aumento na produção e a concorrência entre os fabricantes, que empurraram os preços para baixo. Além de gigantes como a Samsung e a Toshiba, até mesmo a Intel e a AMD investiram pesadamente na fabricação de memória Flash.
O segundo foi a introdução da tecnologia MLC (Mult-Level Cell), onde cada célula passa a armazenar dois ou mais bits em vez de apenas um. Isso é possível graças ao uso de tensões intermediárias. Com 4 tensões diferentes, a célula pode armazenar 2 bits, com 8 pode armazenar 3 bits e assim por diante. Na geração atual (2009) os chips armazenam apenas 2 bits, mas não deve demorar até que os fabricantes desenvolvam células capazes de armazenar 3 e 4 bits, já que isso reduzirá proporcionalmente o custo por megabyte.
O MLC foi implantado de forma mais ou menos simultânea pelos diversos fabricantes e permitiu reduzir drasticamente o custo por megabyte, quase que de uma hora para a outra. Hoje em dia, os chips MLC são os usados na esmagadora maioria dos pendrives, cartões de memória e SSDs.
Os chips "tradicionais", que armazenam um único bit por célula passaram a ser chamados de "SLC" (Single-Level Cell) e ainda são produzidos com o objetivo de atender o mercado de SSDs de alto desempenho (sobretudo os modelos destinados ao mercado de servidores). Embora muito mais caros, eles oferecem um melhor desempenho e são mais duráveis.
Outra tecnologia usada pelos fabricantes para cortar custos e ao mesmo tempo permitir a criação de chips de maior densidade é o "Die-Stacking", onde dois ou mais chips são "empilhados", conectados entre si e selados dentro de um único encapsulamento, que possui o mesmo formato e contatos que um chip tradicional:
Chips de memória empilhados, usando o die-stacking
Assim como em outras tecnologias, o uso do die-stacking inicialmente encarecia os chips, mas, com a evolução das técnicas de produção, ele acabou resultando em redução de custos, já que boa parte do preço de um chip de memória flash corresponde, justamente, ao processo de encapsulamento. Com isso, acaba sendo bem mais barato produzir um único chip com 8 camadas, do que 8 chips separados, por exemplo.

Os acidentes evolutivos

Além dos SSDs SATA destinados a desktops, existiram também alguns modelos de baixo custo e baixo desempenho (como os usados no Eee PC 701, 900 e 901), mas eles se comportavam basicamente como um pendrive ligado a um slot Express Mini. Eles ofereciam taxas razoáveis de leitura, mas em compensação ofereciam taxas de escrita incrivelmente baixas para pequenos arquivos (combinados com buffers de escrita muito pequenos), o que prejudicava a responsividade do sistema, resultando em irritantes pausas de até um segundo sempre que o sistema precisava escrever dados no SSD.
Para ter uma ideia, o SSD Phison de 8 GB usado no Eee 901 é capaz de executar apenas 12 gravações de arquivos de 4 KB por segundo, o que corresponde a apenas 48 KB/s!
O terrível Phison do Eee 901, um dos SSDs mais lentos de todos os tempos
Este problema das pausas em operações de escrita afetou também a primeira geração de SSDs, baseados no controlador JMicron JMF602, que foi usado em drives de diversos fabricantes, incluindo modelos da OCZ, SuperTalent, Corsair e outros.
Embora eles apresentassem taxas de leitura e escrita sequenciais relativamente altas, as deficiências do controlador faziam com que a latência de operações de escrita de pequenos arquivos ultrapassassem os 900 ms em muitas situações.
Para complicar, o controlador incluía um buffer de escrita de apenas 16 KB, suficiente para absorver apenas um punhado de operações. Sempre que o buffer ficava cheio, o drive deixava de aceitar comandos, fazendo com que o sistema simplesmente congelasse por um ou dois segundos antes de voltar a responder, o que acontecia com frequência mesmo em operações corriqueiras, como abrir uma página web ou enviar mensagens de IM (caso o cliente tentasse salvar a mensagem no histórico).
Pode-se discutir se a culpa foi da JMicron em colocar o controlador no mercado, ou se foi dos fabricantes de SSDs que passaram a vender drives baseados nele apesar dos problemas, mas, de qualquer maneira, o JMicron JMF602 é um controlador que viverá na infâmia:
Felizmente, a notícia logo se espalhou e estes drives ruins foram logo substituídos por modelos baseados em controladores da Samsung, Indilinx e Intel, dando origem à geração atual. No final, o JMF602 acabou sendo usado em apenas alguns milhares de drives, vendidos principalmente no mercado norte-americano.
Outra opção muito comentada são os adaptadores SD > IDE, que permitem transformar um cartão de memória em SSD de baixo custo:
O grande problema com estes leitores é que eles utilizam controladores destinados a leitores de cartões PCMCIA, como o FC1306T (que oferece suporte também à interface IDE) e não controladores de disco como os SSDs de verdade, que incluem buffers, uso de vários canais e outras otimizações. Como resultado, os leitores oferecem um desempenho muito ruim não apenas em leitura e gravação (já que ficam limitados às taxas suportadas pelo cartão) mas principalmente ao gravar pequenos arquivos. Se o BIOS do micro suportar boot via USB, é bem melhor simplesmente usar um pendrive.

Desempenho: SSD "novo" e SSD "usado"

Diferente dos HDs magnéticos, o desempenho dos SSDs praticamente não é afetado pela fragmentação, já que não faz muita diferença para o controlador se os endereços a serem lidos estão em setores adjacentes ou espalhados pelo disco. Entretanto, particularidades na maneira como os setores são acessados fazem com que, em muitas situações, o desempenho decaia com o uso, conforme dados são gravados e apagados. À primeira vista, o efeito pode parecer similar à perda de desempenho causada pela fragmentação, mas as razões são completamente diferentes.
Em um HD magnético os dados são gravados em setores de 512 bytes, que podem ser apagados e sobrescritos de maneira independente. Nos SSDs, por outro lado, os endereços são organizados em páginas de 4 KB, que são então agrupadas em blocos de 512 KB:
As páginas funcionam de maneira muito similar aos clusters dos HDs magnéticos. Cada página pode armazenar um arquivo ou fragmento de arquivo. Dois arquivos não podem compartilhar a mesma página, o que faz com que arquivos com menos de 4 KB ocupem uma página inteira, desperdiçando espaço.
Este não chega a ser um grande problema, já que a maioria dos sistemas de arquivos utilizam clusters de 4 KB ou mais de qualquer forma. O grande problema é mesmo a questão dos blocos e das operações de escrita.
Assim como em um HD magnético, a controladora é capaz de acessar as páginas de forma independente, lendo e gravando dados. Em um chip de memória MLC típico, uma operação de leitura demora 50 microssegundos (0.05 ms) e uma operação de escrita demora 900 microssegundos, o que explica a diferença entre o desempenho de leitura e escrita na maioria dos SSDs.
O grande problema é que as páginas na memória Flash não podem ser simplesmente regravadas, como os setores em um HD magnético. Sempre que é necessário gravar dados em uma página já ocupada, a controladora precisa primeiro apagar os dados anteriores (revertendo as células a seu estado original) para só então executar a nova operação de escrita.
Para piorar (desgraça pouca é bobagem...) não é possível apagar as páginas de forma independente. Sempre que precisa apagar alguma coisa, a controladora tem que limpar todo o bloco (128 páginas), uma operação demorada, que leva 1 ms ou mais (ou seja, 1000 vezes mais tempo que a escrita de uma página vazia).
Se já houverem outros dados válidos dentro do bloco a ser apagado, a operação se torna ainda mais demorada, já que a controladora precisa ler todo o conteúdo do bloco, copiá-lo para o buffer, executar o comando de limpeza (que apaga todo o conteúdo do bloco), fazer a modificação dos dados no buffer e em seguida gravar todo o bloco novamente. Essa sequência de passos demora uma verdadeira eternidade, o que explica como o desempenho de muitos SSDs pode ser tão baixo em algumas situações.
Para reduzir o número de vezes em que precisa arcar com a penalidade, a controladora procura sempre que possível usar blocos vazios, em vez de regravar o conteúdo de blocos existentes. Nesse caso, um novo bloco é usado para armazenar a versão modificada e a tabela de alocação do sistema de arquivos é atualizada, com a entrada apontando para o novo endereço.
O grande problema com essa abordagem é que ela funciona bem durante as primeiras semanas ou meses de uso, mas a partir do momento em que todos os blocos foram usados pelo menos uma vez, a controladora passa a ser obrigada a voltar e reciclar os blocos anteriormente utilizados, executando todos os passos. Isso leva a um fenômeno curioso, onde o desempenho do drive "novo" é consideravelmente melhor que o do drive "usado", depois de algum tempo de uso. Como comentei, o sintoma é similar ao que temos em um HD fragmentado, mas a causa é diferente.
Esse problema afetou toda a primeira geração de SSDs (dos genéricos baseados em controladores da jMicron aos Intel X25), cujo desempenho de escrita caía para menos da metade depois de algum tempo de uso. O caso acabou gerando uma grande repercussão, o que levou os fabricantes a responderem com atualizações de firmware destinadas a remendar o problema, implementando sistemas de "reciclagem", que limpam os setores marcados como vagos enquanto o drive está ocioso, mantendo sempre um determinado volume de blocos vagos.
A solução definitiva veio com o comando TRIM, uma nova função que permite ao sistema operacional agendar a limpeza das páginas cujo conteúdo foi deletado ou movido em vez de simplesmente marcá-las como vagas. Isso faz com que as páginas livres do SSD realmente estejam prontas para receber novos dados, sem depender unicamente de algum sistema de reciclagem executado pela controladora.
O grande problema com o TRIM é que ele é suportado apenas pelo Windows 7 e por versões recentes do kernel Linux, o que deixa de fora usuários do Windows Vista ou Windows XP. No caso deles existem utilitários de otimização oferecidos pelos fabricantes, como o SSD Toolbox da Intel, que permitem executar testes e otimizações.
Naturalmente, o TRIM precisa ser suportado também pelo SSD, o que abre outra margem para problemas, já que apenas os drives produzidos a partir do final de 2009 oferecem suporte a ele. No caso dos drives da Intel, por exemplo, o suporte está disponível apenas a partir do X25-M G2. Se você tem um X25-M da primeira geração, está sem sorte.
Concluindo, você pode se perguntar por que os fabricantes não passam a produzir chips de memória Flash com páginas que podem ser apagadas e regravadas de forma independente, eliminando o uso dos blocos.
Bem, com certeza muitos fabricantes devem ter considerado essa ideia. O grande problema é que isso demandaria o uso de muito mais trilhas, o que reduziria a densidade dos chips (as trilhas roubariam o espaço utilizado pelas células) e aumentaria o custo por megabyte. Outro obstáculo é que os chips atuais (com os blocos de 512 KB) são os mesmos utilizados em cartões e pendrives. Desenvolver linhas separadas de chips destinados a SSDs aumentaria ainda mais o custo, tornando a produção quase inviável. Como o bolso é a parte mais sensível do corpo humano, soluções via software como o TRIM acabam sendo a resposta mais fácil.

Ciclos de gravação e a questão da longevidade

Um dos grandes problemas com as células de memória Flash é a longevidade. Diferente dos platters de um HD, que podem ser regravados alguns milhões de vezes (o desgaste está mais relacionado ao tempo de uso e a danos físicos e não ao número de regravações), as células de memória Flash têm uma vida útil estimada em 100.000 regravações no caso dos chips SLC e apenas 10.000 regravações no caso dos MLC.
Os chips SLC são a tecnologia original de chips de memória flash NAND, onde cada cada célula armazena um único bit, salvo na forma de um impulso elétrico (1 ou 0). As células MLC armazenam dois bits, utilizando 4 níveis de tensão diferentes. O uso do MLC permite produzir chips com o dobro da capacidade sem praticamente nenhum custo adicional, mas por outro lado resulta em chips mais lentos (principalmente nas operações de escrita) e menos duráveis.
Como sempre, a questão do custo acaba falando mais alto, o que faz com que os chips MLC sejam os utilizados em praticamente todos os cartões de memória e pendrives (com exceção de alguns modelos de alto desempenho) e também na esmagadora maioria dos SSDs de baixo e médio custo, o que nos leva ao problema das 10.000 regravações.
Em um cartão de memória ou mesmo em um pendrive, este número não parece tão preocupante, já que, mesmo que enchesse o cartão da sua câmera todos os dias, você demoraria 30 anos para atingir as 10.000 regravações. Em um SSD, por outro lado, a coisa é um pouco mais séria, já que não apenas o volume de operações é muito maior (principalmente se for usada memória swap) mas também a importância dos dados armazenados é muito maior.
Para evitar que algumas áreas (como no caso de áreas usadas como swap) falhem prematuramente, inutilizando o disco, os fabricantes utilizam sistemas de wear leveling (distribuição de uso), que alteram os setores usados cada vez que arquivos são criados ou alterados. Em outras palavras, sempre que o conteúdo de um bloco é modificado, o controlador simplesmente lê os dados, faz a alteração e grava o conteúdo em um novo bloco.
Isso faz com que o bloco anterior seja novamente utilizado apenas depois que todos os outros blocos do SSD forem utilizados pelo menos uma vez. Note que o wear leveling se encaixa bem com os algoritmos para evitar as penalidades de escrita.
Com 10.000 operações de escrita por bloco, um SSD de 80 GB teria uma vida útil estimada em 800 TB de gravações, o que é um número difícil de atingir em situações normais, já que você precisaria gravar 40 GB de dados todos os dias por 60 anos para atingir a marca.
Entretanto, na prática, a vida útil é menor devido a um outro fator, o write amplification, que é causado pela questão dos blocos. Enquanto o controlador está gravando grandes arquivos isso não é um problema, já que eles serão quebrados em pedaços de 512 KB e cada um ocupará um bloco inteiro. O grande problema é a gravação de arquivos pequenos, onde existe a possibilidade de ter que apagar e em seguida regravar um bloco inteiro para salvar um arquivo de apenas 4 KB (ou menos).
No pior caso possível o write amplification seria de 128x (gravar um bloco inteiro para alterar uma única página), mas em situações reais ele é estimado em de 20x a 40x (ou seja, para cada 8 GB de dados, a controladora acabaria escrevendo um total de 160 a 320 GB de dados nas células de memória).
Nos drives atuais, porém, o cenário não é tão sombrio, pois graças ao uso de sistemas inteligentes de redução (combinação de escritas e outras técnicas), os controladores são capazes de reduzir bastante este número. A Intel por exemplo promete (embora não garanta) valores de até 1.1x nos SSDs da série X25.
Como são obrigados a levar vários fatores em conta e oferecer uma estimativa mínima do quanto o SSD vai durar, os fabricantes adotam posturas bem mais conservadoras, estimando a vida útil do SSD em de 5 a 10 anos de uso intenso, o que é, de qualquer forma, bem mais que a média dos HDs magnéticos. As células de memória flash são também capazes de preservar os dados por pelo menos 10 anos sem receberem alimentação elétrica, o que também é uma boa marca.
A questão da capacidade: Assim como no caso dos chips de memória, a capacidade dos chips de memória Flash é medida em valores binários e não em decimais (como no caso dos HDs). Com isso, um chip de 8 GB armazena 8.589.934.592 bytes, e não 8.000.000.000.
Entretanto, os fabricantes adotam a nomenclatura decimal, assim como os fabricantes de HDs, reduzindo o espaço utilizável do disco. Um SSD de 80 GB passa a ter então apenas 80 bilhões de bytes, ou seja, apenas 74.5 GB binários, assim como em um HD magnético.
Os 5.5 GB restantes são usados pelo controlador como uma área reservada (spare area). Ela tem basicamente duas funções: servir como uma área de armazenamento temporário para novos dados, permitindo que o controlador grave informações imediatamente mesmo que não tenha setores limpos disponíveis e, mais importante, permite que o controlador remapeie páginas defeituosas.
Como sempre, as 10.000 operações de escrita são apenas uma estimativa. Dentro do SSD, algumas células podem falar muito antes, enquanto outras acabam resistindo a um volume muito maior de escritas. A área reservada permite que o controlador substitua as páginas conforme os defeitos aparecem, fazendo com que a longevidade do HD seja muito maior. Graças a isso, o sistema começará a acusar setores defeituosos apenas depois que o SSD já tiver 7% (5.5 GB no caso de um SSD de 80 GB) de páginas defeituosas.

A popularização

Considerando o brutal custo por gigabyte dos SSDs, não faz muito sentido pensar em utilizá-los para armazenar seus 2 TB de filmes e músicas (a menos que você seja algum milionário excêntrico sem nada melhor para fazer com o dinheiro...) já que você simplesmente gastaria uma fortuna.
O truque para reduzir os custos e maximizar os ganhos é combinar um SSD de baixa capacidade com um ou mais HDs magnéticos de grande capacidade, usando o SSD para armazenar a partição principal (com o sistema operacional, programas e arquivos de trabalho) e usar o HD magnético para os arquivos maiores.
Isso permite que o SSD desempenhe seu papel de oferecer um boot mais rápido e carregamento quase instantâneo dos aplicativos, exibindo seus dotes com leitura de setores não sequenciais, ao mesmo tempo em que o HD magnético tem a oportunidade de demostrar seus talentos com relação à capacidade e leitura de setores sequenciais.
Não demorou para que muitos fabricantes percebessem o nicho, passando a lançar SSDs de baixo custo e baixa capacidade, destinados a serem usados como disco de boot. Um bom exemplo é o Kingston V Series de 40 GB, que é uma versão econômica do Intel X25-M G2, com menos chips de memória Flash (ele usa apenas 5 chips de 8 GB, em vez de 10 chips de 16 GB como no X25-M G2 de 160 GB). Ele foi o primeiro SSD de alto desempenho a ser vendido (nos EUA) abaixo da marca dos US$ 100, o que pode ser considerado um marco.
Com relação aos preços dos SSDs de maior capacidade, não espere nenhuma mudança súbita a curto prazo. A tendência é que os chips de memória Flash continuem dobrando de capacidade a cada 18 meses, permitindo que os fabricantes ofereçam SSDs com o dobro da capacidade por basicamente o mesmo preço.
As versões iniciais do Intel X25-M, por exemplo, foram lançadas em capacidades de 80 e 160 GB, usando (respectivamente), 10 e 20 chips de 8 GB, produzidos usando uma técnica de 50 nm. A segunda geração (o X25-M G2) foi equipada com chips de 16 GB, produzidos usando uma técnica de 34 nm, o que permitiu à Intel dobrar as capacidades e oferecer modelos com 160 e 320 GB.
Eventualmente migrarão para a técnica de 22 nm, o que permitirá equipar os drives com chips de 32 GB (novamente dobrando a capacidade) e, eventualmente, para a técnica de 15 nm, dobrando mais uma vez. Os preços devem flutuar de acordo com a demanda, mas a tendência geral é que não exista uma grande redução no custo por unidade.
O que deve acontecer é o aparecimento de mais opções de SSDs de baixa capacidade (e menos chips), vendidos por preços mais baixos. Em outras palavras, os HDs magnéticos continuarão entre nós por pelo menos mais uma ou duas décadas, senão mais.
Formatos: Embora os SSDs não pareçam tão atrativos nos desktops devido ao custo e à baixa capacidade em relação aos HDs magnéticos, eles tendem a se tornar muito populares em notebooks ultraportáteis. Por serem mais caros, eles são os modelos que podem absorver melhor o aumento no custo e, ao mesmo tempo, são onde as dimensões reduzidas e o consumo elétrico mais baixo dos SSDs fazem mais diferença.
Os primeiros modelos de SSDs destinados a ultraportáteis utilizam o formato half-slim, com metade do comprimento de um HD de 2.5" regular, baseados no conector SATA padrão. Entretanto, prevendo o crescimento do setor, a SATA-IO se apressou em criar um padrão miniaturizado, o mSATA (ou mini-SATA) que permite a criação de SSDs mais compactos:
Embora o mSATA utilize o mesmo conector das placas Express Mini, ele mantém o uso da sinalização Serial-ATA. Graças a isso, os SSDs suportam as mesmas taxas de 150 e 300 MB/s do SATA-150 e do SATA-300 e são detectados pelo sistema operacional da mesma maneira que HDs SATA regulares, sem necessidade de novos drivers (ou seja, muda apenas o conector).
Uma observação importante é que os SSDs mSATA são diferentes dos SSDS usados nos primeiros modelos do Eee PC (e em alguns outros notebooks), que embora utilizassem o formato Express Mini, eram ligados ao barramento USB.

HDs híbridos, aceleradores e RAM-drives

Um meio termo entre os SSDs e os HDs tradicionais são os HHDs (Hybrid Hard Drives, ou HDs híbridos), que são HDs tradicionais, que incorporam chips de memória Flash, usados como um buffer de dados.
Todos os HDs atuais incluem uma pequena quantidade de memória SDRAM (ou SRAM), usada como cache de disco. O cache é bastante rápido, mas é limitado por dois fatores: é muito pequeno (16 MB na maioria dos HDs atuais) e perde os dados armazenados quando o micro é desligado.
Em um HHD é usada uma quantidade generosa de memória Flash (512 MB ou mais em muitos modelos), que tem a função de armazenar dados frequentemente acessados (como arquivos carregados durante o boot), de forma que eles continuem disponíveis depois de desligar o micro e possam ser usados no próximo boot; e, também, a de servir como um buffer de dados, permitindo que arquivos sejam salvos na memória Flash e copiados para os discos magnéticos quando for mais conveniente. Nesse caso não existe problema de perda de dados armazenados no buffer ao desligar o micro no botão, pois os dados ficam retidos na memória Flash e são gravados nos discos magnéticos no boot seguinte.
Além dos ganhos de desempenho, sobretudo a potencial redução no tempo de boot, o buffer permite que o HD fique mais tempo em modo de economia de energia, já que não é preciso "acordar" o HD ao salvar arquivos ou quando o sistema precisa atualizar arquivos de log, por exemplo, operações que podem ser realizadas no buffer. Isso acaba tornando a tecnologia bastante interessante para os notebooks, onde o HD chega a representar um quarto do consumo elétrico total.
Naturalmente, a memória Flash é muito mais lenta que a memória RAM tipicamente usada no cache de disco e (em muitos casos) mais lenta até mesmo que os discos magnéticos em leitura ou gravação de arquivos sequenciais. Ao salvar um arquivo grande (uma imagem de DVD, por exemplo), a gravação é feita diretamente nos discos magnéticos, sem passar pelo buffer.
Temos também a tecnologia Robson, desenvolvida pela Intel, onde temos um buffer similar, instalado na placa-mãe. Os chips de memória Flash podem ser incorporados diretamente na placa, ou instalados através de uma placa de expansão (opção que fica a cargo do fabricante):
Em ambos os casos, o buffer se comunica com o chipset através do barramento PCI Express e ele (chipset), com a ajuda de um driver instalado no sistema operacional, se encarrega de usar o buffer para cachear as operações do HD. O princípio de funcionamento e o resultado prático é o mesmo que usar um HHD, a única grande diferença é que o dinheiro vai para a Intel, ao invés de para o fabricante do HD :). A tecnologia Robson foi introduzida no chipset i965GM e é usado em alguns notebooks baseados na plataforma Santa Rosa.
Na geração inicial, o ganho de desempenho e de autonomia da bateria é muito pequeno, mas isso pode vir a melhorar nas revisões subsequentes. De qualquer forma, fica a cargo do fabricante usar o buffer ou não.
Além dos SSDs, outra modalidade de discos de estado sólido (o "disco" é apenas figura de linguagem, já que chips não são redondos...) são os RAM-drives, que utilizam memória RAM como mídia de armazenamento, oferecendo tempos de acesso ainda mais baixos que os SSDs NAND e taxas de leitura e gravação absurdamente altas.
Embora sejam muito caros e consumam muita energia, eles são moderadamente populares em servidores de alto desempenho, onde o ganho de desempenho compensa o custo. Um bom exemplo é o RamSan-440 (http://www.superssd.com/products/), uma unidade com 256 ou 512 GB de memória DDR2, que suporta até 600.000 operações de I/O por segundo, com uma taxa de leitura e gravação em setores não sequenciais de 4 GB/s:
Diferente de um SSD típico, ele é uma unidade 4U externa, que é conectada ao servidor através de um link Fibre Channel. Dentro do gabinete temos 128 ou 256 módulos de memória de 2 GB cada um, combinados com uma fonte de alimentação e um conjunto de controladores encarregados de criar a interface de dados e dividir as operações de leitura e gravação entre os módulos (maximizando a performance).
Como a memória RAM é volátil e dados em servidores são uma coisa importante, ele implementa um sistema duplo de manutenção, composto por uma bateria que preserva os dados da memória por algumas horas em caso de falta de energia e um sistema de backup contínuo dos dados em uma unidade de memória Flash.
Em 2005, a Gigabyte tentou popularizar o uso de RAM-drives em desktops com o i-RAM, uma placa PCI que permitia o uso de 4 GB de memória DDR:
Apesar do uso do slot PCI, a conexão de dados era feita através de uma porta SATA, o que permitia que o i-RAM fosse detectado como um HD convencional, sem necessidade de drivers adicionais (o slot PCI era usado apenas para o fornecimento elétrico). Ele continuava sendo alimentado com o PC desligado (desde que a fonte continuasse ligada na tomada, naturalmente) e uma pequena bateria de backup mantinha os dados por algumas horas em caso de falta de luz.
Graças ao uso dos módulos de memória, os tempos de acesso eram muito baixos, mas a taxa de transferência era limitada aos 150 MB/s da interface SATA. A ideia não era de todo ruim, mas ele acabou desaparecendo com a chegada dos primeiros SSDs NAND.

Phase-change memory e o futuro

Embora a densidade da memória Flash tenha crescido acima do esperado nos últimos anos, levando a uma rápida queda no preço por megabyte, o futuro da memória Flash está ameaçado pelo mesmo problema que ameaça a evolução dos processadores: os limites físicos para a miniaturização das células.
Cada célula de memória Flash funciona como uma pequena prisão de elétrons. Conforme as células se tornam cada vez menores, o número de elétrons armazenados no floating gate se torna menor, tornando mais difícil para o controlador discernir entre um bit "1" e um bit "0". O problema é maior nos chips MLC, onde as células trabalham com quatro ou mais possibilidades.
Os mais pessimistas afirmam que os 20 nm serão o limite final para a memória Flash, apenas duas gerações à frente dos chips atuais, que são produzidos em 34 nm. A partir daí, os cartões e SSDs ainda poderiam atingir capacidades maiores através do uso de chips com mais camadas, ou através do uso de mais chips, mas o preço por gigabyte deixaria de cair, comprometendo a adoção dos SSDs e retardando o progresso da tecnologia em diversas áreas.
A principal candidata à sucessora da memória Flash é a PCM (Phase-Change Memory), um tipo de memória não volátil baseada no uso de vidro calcogeneto (chalcogenide glass) para o armazenamento de dados. O vidro calcogeneto é uma estrutura cristalina (não necessariamente de sílica) que inclui elementos do grupo 16 da tabela periódica, como o selênio, enxofre, telúrio ou antimônio.
O armazenamento de dados é possível graças à uma peculiaridade do material: de acordo com a temperatura, ele pode assumir uma estrutura cristalina ou amorfa depois de aquecido e resfriado. Os dois estados possuem características elétricas diferentes, com o estado amorfo oferecendo uma resistência muito maior à passagem de corrente elétrica que o estado cristalino. Isso permite que os dois estados sejam usados para armazenar dígitos binários, com o estado amorfo representando um bit "0" e o cristalino um bit "1".
Essa mesma característica é usada em mídias ópticas regraváveis, onde a diferença na taxa de opacidade dos dois estados é usada pelo laser de leitura para armazenar os bits. No caso das mídias ópticas, o calcogeneto é simplesmente espalhado uniformemente sobre a mídia e variações na intensidade do laser de gravação são usadas para atingir as temperaturas que dão origem aos dois estados.
Os chips PCM por sua vez utilizam células compostas por um par de eletrodos, um pequeno bloco de uma liga de calcogeneto (uma liga de germânio, antimônio e telúrio) e um resistor, que é usado para aquecer e assim alterar o estado de parte do material. Uma vez solidificado, o bit armazenado no bloco pode ser lido através dos eletrodos, com o controlador enviando uma pequena corrente elétrica e medindo a resistência.
Sendo um bloco sólido, a estrutura é extremamente durável, permitindo que os dados sejam armazenados por vários séculos, com suporte a um volume de regravações potencialmente muito maior que os chips de memória Flash NAND atuais.
Embora o uso de um resistor sugira o uso de muita energia, o tamanho reduzido das células permite que os chips PCM sejam na verdade mais econômicos que os chips de memória Flash, onde as células utilizam muita energia nas operações de escrita devido às tensões necessárias.
Em termos de desempenho, os chips PCM assumem um posto intermediário entre os chips de memória Flash e memória RAM. Em termos de leitura, eles podem ser quase tão rápidos quanto a memória RAM e mesmo as taxas de escrita são superiores à da memória Flash, graças ao endereçamento individual das células. Este formato de endereçamento permite escrever um bit de cada vez (em oposição à escrita em blocos da memória Flash), uma combinação que as torna especialmente atrativas no caso dos SSDs.
As memórias PCM não são uma tecnologia nova. As primeiras pesquisas foram publicadas ainda na década de 60 e um chip de 256 bits chegou a ser construído em 1970, mostrando a viabilidade da tecnologia. Entretanto, a evolução da memória RAM e das mídias magnéticas rapidamente roubaram a atenção, fazendo com que as memórias PCM fossem deixadas de lado, até que a ameaça de estagnação da memória Flash fez com que as pesquisas fossem retomadas.
A principal empresa por trás do desenvolvimento das memórias PCM é a Numonyx, uma joint-venture entre a Intel e a STMicro. Em outubro de 2009 foi apresentado um protótipo de chip de 64 megabits, que suporta o empilhamento de múltiplas camadas (um pré-requisito para a construção de chips de grande capacidade) e suporta a gravação de dois bits por célula, usando uma técnica similar à usada nos chips de memória Flash MLC. Temos aqui uma foto de microscópio que mostra os eletrodos e as células dentro do chip:
Outra proponente é a Samsung, que já fabrica chips de 512 megabits (64 MB) em pequena escala desde setembro de 2009. Eles são destinados a substituírem chips de memória RAM em smartphones, oferecendo como vantagem um consumo elétrico mais baixo (já que não precisam de ciclos refresh). A Samsung prefere chamá-las de PRAM (Phase-change RAM), mas a tecnologia é a mesma:
Embora ainda esteja um pouco longe de ser competitiva em termos de preço e densidade com os os chips de memória Flash, as memórias PCM realmente funcionam e oferecem taxas de leitura e gravação consideravelmente mais altas. O grande problema por enquanto é como aumentar a densidade e reduzir o custo dos chips a ponto de permitir que eles sejam usados como memória de armazenamento em smartphones e em seguida nos SSDs.
A grande questão é que a estrutura é mais simples que uma célula de memória Flash, possibilitando do uso de níveis muito maiores de miniaturização. Isso torna os chips de memória PCM uma possibilidade real para os próximos anos.



Nenhum comentário:

Postar um comentário