sexta-feira, 13 de dezembro de 2013

SSD: memórias não voláteis de múltiplos níveis

Na coluna anterior discutimos os princípios que orientam o funcionamento das memórias não voláteis (tipo “flash”) usadas nos SSDs.
Quem conhece o funcionamento das memórias voláteis (por exemplo, as usadas para os bancos de memória RAM, que funcionam como capacitores elementares), nas quais aferimos que bit armazena “zero” ou “um” - verificando se estão, respectivamente, descarregadas ou carregadas - há de ter estranhado a forma como essa aferição é feita nas memórias não voláteis usadas nos SSDs já que, conforme mencionado no final da coluna citada, os bits são determinados pelo valor (e não apenas pela presença ou ausência) da carga contida na célula. 
Evitei mencionar na referida coluna (para não dar a má interpretação) que os valores armazenados em cada faixa de tensão são justamente os opostos dos que se seriam de esperar.
Para entender melhor o que quero dizer com isso, examine a imagem da parte de cima da Figura 1 (uma modificação da obtida no artigo “SanDisk plans hat trick of SSD performance improvements” - também uma boa fonte de informações sobre nosso tema). Ela é em tudo semelhante à Figura 2 da coluna anterior, porém mostra os possíveis valores a serem armazenados na célula (no caso, “um” e “zero”). Repare que o valor “zero” corresponde à distribuição de tensões mostrada em verde, ou seja, acima do ponto de referência (no caso, 4V), portanto a de maior tensão. Enquanto isso, o valor “um” corresponde à distribuição mostrada em azul, a de menor nível de tensão. Como esta escolha é arbitrária, se a tensão mais alta corresponde ao maior ou menor valor armazenado não faz qualquer diferença. Mas a distribuição adotada nas células SSD não acompanha a nossa tendência instintiva. 
Outro ponto digno de nota: a distribuição de tensões discutida acima, em dois “estados” de carga, corresponde exatamente à das células “flash” comuns, usadas em todo tipo de “pendrive”, capazes de armazenar apenas dois valores: “zero” e “um”. Células deste tipo são denominadas “células de nível único”, “Single Level Cell”, ou SLC.
GPC20131212_1Figura 1: referencias de tensões para memórias SLC e MLC (Foto: Reprodução/Internet)
Muito bem, agora que chegamos a este ponto já podemos responder à pergunta deixada no ar no final da coluna anterior: se para determinar o valor armazenado em uma célula de memória não volátil é preciso medir a tensão que armazena, por que me limitar apenas a dois valores para esta tensão?
A resposta é simples: não há qualquer razão. E tanto não há que já existem no mercado (por enquanto timidamente, mas a tendência é que o número aumente) dispositivos com células de memória não volátil do tipo “múltiplo nível”, ou Multi Level Cell (MLC).
A parte inferior da Figura 1 mostra a referência de tensões de uma célula tipo MLC capaz de assumir quatro estados, ou quatro níveis de tensão, podendo, assim, armazenar quatro valores diferentes.
Note que, ao contrário das memórias voláteis, que armazenam bits individuais, as memórias não voláteis que estamos examinando armazenam valores. Ou seja, uma célula de memória RAM pode estar carregada ou descarregada; carregada, armazena o bit “1”, que corresponde ao valor “um”; descarregada, armazena o bit “0”, que representa o valor “zero”. Já uma célula SLC pode reter uma tensão maior ou menor que 4V. Se menor, armazena o valor “um”. Se maior, armazena o valor “zero”. A diferença é sutil, mas existe. E se neste ponto você está prestes a abanar a cabeça e comentar “ora, que bobagem, afinal tanto faz uma coisa ou outra”, contenha-se pelo menos até o final do próximo parágrafo.
Repare agora na distribuição de tensões na imagem da parte inferior da Figura 1, que mostra a referência de tensões de uma célula de memória de múltiplo nível (MLC) capaz de armazenar quatro valores: três; dois; um ou zero (em binário, estes valores são: três = 110b; dois = 10b; um = 1b e zero = 0b e, como se percebe, os dois mais altos necessitam cada um de dois bits para serem representados). Repare ainda que, como a SLC, a MLC armazena valores, e não bits. Mas no caso da MLC a diferença é essencial: em uma única célula de memória é possível armazenar qualquer um desses quatro valores apenas variando a tensão retida (veja a figura), enquanto caso estivéssemos usando células do tipo SLC seria preciso duas delas para armazenar o mesmo número de valores (já que os valores dois e três usam dois bits cada).
Isso significa que usando células de memória tipo MLC de dois níveis, como a correspondente ao diagrama mostrado na parte de baixo da Figura 1, eu posso reduzir pela metade o número de células de memória não voláteis (“flash”) necessárias para uma dada capacidade de memória. E estas são apenas de duplo nível, ou seja, conseguem armazenar quatro estados (ou quatro diferentes níveis de carga). E já estão em desenvolvimento memórias não voláteis de triplo nível, também conhecidas por “Triple Level Cell” (TLC), que podem conter oito diferentes estados, armazenando assim oito valores diferentes (de zero a sete), o que reduz à quarta parte o número de células necessárias para conter determinada capacidade de armazenamento.
Pronto, agora falta pouco. Por exemplo: comparar as características das SLC com as da MLC. Este será nosso próximo assunto mas, até a semana que vem, vá pensando: qual a mais barata? Qual a de maior duração? Qual delas usa maior tensão de alimentação? Qual a que exige maior segurança no controle de erros?
Tudo isso são fatores importantes quando se trata de escolher memórias para SSDs.
Até a próxima coluna.
B. Piropo
via TechTudo.com.br
Anterior
Proxima

Postador

Postagens Relacionadas

0 comentários:

Os comentários serão moderados antes de publicar! respondo todos, obrigado por comentar.