Crédito: Molly Flores/Gon Mag
No início…
Para entender como e por que SSDs são diferentes dos discos giratórios, precisamos discutir os discos rígidos. Um disco rígido armazena dados em uma série de discos magnéticos giratórios chamados pratos.
Este diagrama mostra uma unidade antiga estilo PATA, mas o atuador e os pratos ainda são conceitualmente os mesmos.Crédito: Surachit/CC BY-SA 3.0
O braço atuador acima posiciona as cabeças de leitura e gravação sobre a área correta da unidade para ler ou gravar informações.
Como os cabeçotes da unidade devem estar alinhados em uma área do disco para ler ou gravar dados, e o disco está girando constantemente, há um atraso antes que os dados possam ser acessados. A unidade pode precisar ler de vários locais para iniciar um programa ou carregar um arquivo, o que significa que pode ser necessário esperar que os pratos girem na posição adequada várias vezes antes de poder concluir o comando. Se uma unidade estiver inativa ou em estado de baixo consumo de energia, poderá levar mais alguns segundos para que o disco gire até a potência máxima e comece a operar.
Desde o início, ficou claro que os discos rígidos não poderiam atingir as velocidades em que as CPUs poderiam operar. A latência em HDDs é medida em milissegundos, em comparação com nanossegundos de uma CPU típica. Um milissegundo equivale a 1.000.000 nanossegundos e normalmente leva de 10 a 15 milissegundos para um disco rígido encontrar dados na unidade e começar a lê-los.
A indústria de discos rígidos introduziu pratos menores, caches de memória em disco e velocidades de rotação mais rápidas para neutralizar essa tendência, mas as unidades mecânicas só conseguem girar até certo ponto. A família VelociRaptor de 10.000 RPM da Western Digital é o conjunto de unidades mais rápido já construído para o mercado consumidor, enquanto algumas unidades empresariais giram tão rapidamente quanto 15.000 RPM. O problema é que mesmo a unidade giratória mais rápida, com os maiores caches e os menores pratos, ainda é dolorosamente lenta no que diz respeito à CPU.
Como os SSDs são diferentes
“Se eu tivesse perguntado às pessoas o que elas queriam, elas teriam dito cavalos mais rápidos.” – Henry Ford
As unidades de estado sólido são chamadas assim especificamente porque não dependem de peças móveis ou discos giratórios. Em vez disso, os dados são salvos em um pool de flash NAND. O próprio NAND é composto pelos chamados transistores de porta flutuante. Ao contrário dos designs de transistores usados na DRAM, que devem ser atualizados várias vezes por segundo, o flash NAND foi projetado para manter seu estado de carga mesmo quando não está ligado. Isso torna o NAND um tipo de memória não volátil. A DRAM, por outro lado, é volátil – ela perde dados se não for atualizada rapidamente.
Crédito: Cyferz
O diagrama acima mostra um design simples de célula flash. Os elétrons são armazenados na porta flutuante, que então é lida como carregada “0” ou não carregada “1”. Sim, no flash NAND, 0 significa que os dados estão armazenados em uma célula – é o oposto de como normalmente pensamos em zero ou um. O flash NAND é organizado em uma grade. Todo o layout da grade é chamado de bloco, enquanto as linhas individuais que compõem a grade são chamadas de página. Os tamanhos de página comuns são 2K, 4K, 8K ou 16K, com 128 a 256 páginas por bloco. O tamanho do bloco, portanto, normalmente varia entre 256 KB e 4 MB.
Uma vantagem deste sistema deve ser imediatamente óbvia. Como os SSDs não possuem partes móveis, eles podem operar em velocidades muito superiores às de um HDD típico. O gráfico a seguir mostra a latência de acesso para meios de armazenamento típicos, fornecida em microssegundos.
Crédito: Micron
NAND não é tão rápido quanto a memória principal, mas é várias ordens de magnitude mais rápido que um disco rígido. Embora as latências de gravação sejam significativamente mais lentas para o flash NAND do que as latências de leitura, elas ainda superam a mídia giratória tradicional.
Há duas coisas a serem observadas no gráfico acima. Primeiro, observe como adicionar mais bits por célula de NAND tem um impacto significativo no desempenho da memória. É pior para gravações do que para leituras: a latência típica de célula de nível triplo (TLC) é 4x pior em comparação com NAND de célula de nível único (SLC) para leituras, mas 6x pior para gravações. As latências de apagamento também são significativamente afetadas. O impacto também não é proporcional – o TLC NAND é quase duas vezes mais lento que o MLC NAND, apesar de conter apenas 50% mais dados (três bits por célula em vez de dois). Isso também se aplica aos drives QLC, que armazenam ainda mais bits em níveis variados de tensão dentro da mesma célula.
Crédito: Micron
A razão pela qual o TLC NAND é mais lento que o MLC ou o SLC tem a ver com a forma como os dados entram e saem da célula NAND. Com SLC NAND, o controlador só precisa saber se o bit é 0 ou 1. Com MLC NAND, a célula pode ter quatro valores – 00, 01, 10 ou 11. Com TLC NAND, a célula pode ter oito valores , e QLC tem 16. Ler o valor adequado da célula requer que o controlador de memória use uma voltagem precisa para verificar se alguma célula específica está carregada.
Lê, escreve e apaga
Uma das limitações funcionais SSDs é enquanto eles podem ler e gravar dados muito rapidamente para uma unidade vazia, a substituição de dados é muito mais lenta. Isso ocorre porque, embora os SSDs leiam dados no nível da página (ou seja, de linhas individuais na grade de memória NAND) e possam gravar no nível da página, assumindo que as células vizinhas estejam vazias, eles só podem apagar dados no nível do bloco. Isso ocorre porque o ato de apagar o flash NAND requer uma grande quantidade de voltagem. Embora teoricamente você possa apagar o NAND no nível da página, a quantidade de voltagem necessária sobrecarrega as células individuais ao redor das células que estão sendo reescritas. Apagar dados no nível do bloco ajuda a mitigar esse problema.
A única maneira de um SSD atualizar uma página existente é copiar o conteúdo de todo o bloco para a memória, apagar o bloco e, em seguida, gravar o conteúdo do bloco antigo + a página atualizada. Se a unidade estiver cheia e não houver páginas vazias disponíveis, o SSD deverá primeiro procurar blocos marcados para exclusão, mas que ainda não foram excluídos, apagá-los e, em seguida, gravar os dados na página agora apagada. É por isso que os SSDs podem ficar mais lentos à medida que envelhecem: uma unidade quase vazia está cheia de blocos que podem ser gravados imediatamente, e uma unidade quase cheia tem maior probabilidade de ser forçada a passar por toda a sequência de programar/apagar.
Se você já usou SSDs, provavelmente já ouviu falar de algo chamado “coleta de lixo”. A coleta de lixo é um processo em segundo plano que permite que uma unidade mitigue o impacto no desempenho do ciclo de programar/apagar executando determinadas tarefas em segundo plano. A imagem a seguir percorre o processo de coleta de lixo.
Crédito: Wikipédia
Observe neste exemplo que a unidade aproveitou o fato de poder gravar muito rapidamente em páginas vazias, gravando novos valores para os primeiros quatro blocos (A’-D’). Também estão escritos dois novos blocos, E e H. Os blocos AD agora estão marcados como obsoletos, o que significa que contêm informações que a unidade marcou como desatualizadas. Durante um período ocioso, o SSD moverá as páginas novas para um novo bloco, apagará o bloco antigo e marcará-o como espaço livre. Isso significa que da próxima vez que o SSD precisar realizar uma gravação, ele poderá gravar diretamente no Bloco X agora vazio, em vez de executar o ciclo de programa/apagamento.
O próximo conceito que quero discutir é TRIM. Quando você exclui um arquivo do Windows 11 em um disco rígido normal, o arquivo não é excluído imediatamente. Em vez disso, o sistema operacional informa ao disco rígido que ele pode sobrescrever a área física do disco onde os dados foram armazenados na próxima vez que precisar realizar uma gravação. É por isso que é possível recuperar arquivos (e porque a exclusão de arquivos no Windows normalmente não libera muito espaço no disco físico até que você esvazie a lixeira). Com um HDD tradicional, o sistema operacional não precisa prestar atenção onde os dados estão sendo gravados ou qual é o estado relativo dos blocos ou páginas. Com um SSD, isso é importante.
O comando TRIM permite que o sistema operacional diga ao SSD que ele pode pular a reescrita de determinados dados na próxima vez que executar um apagamento de bloco. Isso reduz a quantidade total de dados que a unidade grava e aumenta a longevidade do SSD. Tanto as leituras quanto as gravações danificam o flash NAND, mas as gravações causam muito mais danos do que as leituras. Felizmente, a longevidade em nível de bloco não provou ser um problema no flash NAND moderno. Mais dados sobre Longevidade do SSDcortesia do Tech Report, pode ser encontrado aqui.
Os dois últimos conceitos sobre os quais queremos falar são nivelamento de desgaste e amplificação de gravação. Como os SSDs gravam dados em páginas, mas apagam dados em blocos, a quantidade de dados gravados na unidade é sempre maior do que a atualização real. Se você fizer uma alteração em um arquivo de 4KB, por exemplo, todo o bloco onde o arquivo 4K se encontra deverá ser atualizado e reescrito. Dependendo do número de páginas por bloco e do tamanho das páginas, você pode acabar gravando 4 MB de dados para atualizar um arquivo de 4 KB. A coleta de lixo reduz o impacto da amplificação de gravação, assim como o comando TRIM. Manter uma parte significativa da unidade livre e/ou o provisionamento excessivo do fabricante também pode reduzir o impacto da amplificação de gravação.
O nivelamento de desgaste refere-se à prática de garantir que certos blocos NAND não sejam gravados e apagados com mais frequência do que outros. Embora o nivelamento de desgaste aumente a expectativa de vida e a resistência de uma unidade ao gravar igualmente no NAND, ele pode, na verdade, aumentar a amplificação de gravação. Para distribuir as gravações uniformemente pelo disco, às vezes é necessário programar e apagar blocos, mesmo que seu conteúdo não tenha realmente mudado. Um bom algoritmo de nivelamento de desgaste procura equilibrar esses impactos.
Controladores e interfaces SSD
Já deveria estar óbvio que os SSDs exigem mecanismos de controle muito mais sofisticados do que os discos rígidos. Isso não é para menosprezar a mídia magnética – na verdade, acho que os HDDs merecem mais respeito do que recebem. Os desafios mecânicos envolvidos no equilíbrio de vários nanômetros de cabeças de leitura e gravação acima de pratos que giram de 5.400 a 10.000 RPM não são nada desprezíveis. O fato de os HDDs enfrentarem esse desafio ao mesmo tempo em que são pioneiros em novos métodos de gravação em mídia magnética e, eventualmente, acabam vendendo unidades a 3-5 centavos de dólar por gigabyte é simplesmente incrível.
Um controlador SSD típicoCrédito: Wikipédia
SSD controladores, no entanto, estão em uma classe própria. Eles geralmente têm um pool de memória DDR3 ou DDR4 para ajudar no gerenciamento do próprio NAND. Muitas unidades também incorporam caches de células de nível único que atuam como buffers, aumentando o desempenho da unidade ao dedicar NAND rápido aos ciclos de leitura/gravação. Como o flash NAND em um SSD normalmente é conectado ao controlador por meio de uma série de canais de memória paralelos, você pode pensar no controlador da unidade executando parte do mesmo trabalho de balanceamento de carga que um array de armazenamento de última geração – os SSDs não implantar o RAID internamente, mas o nivelamento de desgaste, a coleta de lixo e o gerenciamento de cache SLC têm paralelos no grande mundo do ferro.
Algumas unidades também usam algoritmos de compactação de dados para reduzir o número total de gravações e melhorar a vida útil da unidade. O controlador SSD lida com a correção de erros, e os algoritmos que controlam erros de bit único tornaram-se cada vez mais complexos com o passar do tempo. Infelizmente, não podemos entrar em muitos detalhes sobre os controladores SSD porque as empresas bloqueiam seus vários ingredientes secretos. Grande parte do desempenho do flash NAND é determinado pelo controlador subjacente, e as empresas não estão dispostas a revelar muito como fazem o que fazem, para não dar uma vantagem ao concorrente.
Em relação às interfaces, os SSDs usavam portas SATA, assim como os discos rígidos no início. Nos últimos anos, vimos uma mudança para unidades M.2 – unidades muito finas, com vários centímetros de comprimento, que se encaixam diretamente na placa-mãe (ou, em alguns casos, em um suporte de montagem em uma placa riser PCIe). Uma unidade Samsung SSD 990 Pro é mostrada abaixo.
Crédito: Kyle Cobian/Gon Mag
O caminho a seguir
O flash NAND oferece uma enorme melhoria em relação aos discos rígidos, mas tem suas próprias desvantagens e desafios. Espera-se que as capacidades das unidades e o preço por gigabyte continuem a aumentar e diminuir, respectivamente, mas há poucas chances de os SSDs alcançarem os discos rígidos no preço por gigabyte. A redução dos nós de processo é um desafio significativo para o flash NAND – embora a maior parte do hardware melhore à medida que o nó diminui, a NAND se torna mais frágil.
Os tempos de retenção de dados e o desempenho de gravação são intrinsecamente mais baixos para NAND de 20 nm do que para NAND de 40 nm, mesmo que a densidade de dados e a capacidade total sejam bastante melhoradas. Até agora, vimos unidades com até 232 camadas no mercado, e mais ainda parece plausível neste momento. No geral, a mudança para 3D NAND ajudou a melhorar a densidade sem reduzir os nós do processo ou depender do dimensionamento planar.
Até agora, os fabricantes de SSD proporcionaram melhor desempenho, oferecendo padrões de dados mais rápidos, mais largura de banda e mais canais por controlador, além do uso de caches SLC mencionados anteriormente. No entanto, no longo prazo, presume-se que o NAND será substituído por outro.
Como será essa outra coisa ainda está aberto para debate. Ambos RAM magnética e memória de mudança de fase se apresentaram como candidatos. No entanto, ambas as tecnologias ainda estão nos estágios iniciais e devem superar desafios significativos para realmente competir como substitutas da NAND. Se os consumidores notariam a diferença é uma questão em aberto. Se você atualizou de um HDD para um SSD e depois atualizou para um SSD mais rápido, provavelmente sabe que a diferença entre HDDs e SSDs é muito maior do que a diferença entre SSD e SSD, mesmo ao atualizar de um relativamente modesto. dirigir . Melhorar os tempos de acesso de milissegundos para microssegundos é muito importante, mas melhorá-los de microssegundos para nanossegundos pode ficar abaixo do que os humanos podem realmente perceber na maioria dos casos.
Confira nosso ExtremeTech explica série para uma cobertura mais aprofundada dos tópicos de tecnologia mais recentes da atualidade.
Marcado em
Storage Extremetech explica armazenamento de estado sólido NAND Flash SSD