
Estou tentando entender isso. Digamos que eu tenha um SSD de 256 GB, dos quais 180 GB já estão ocupados por arquivos permanentes (sistema operacional, programas instalados etc.). Os 70 GB restantes ou mais são criados e excluídos novos arquivos. Isso não significa que os chips NAND dessa parte se desgastarão antes da área cujos arquivos não foram modificados? Ou o SSD também move os arquivos que não mudam ao longo do tempo?
Responder1
O SSD move arquivos que não mudam ao longo do tempo.
Em primeiro lugar, você tem os setores virtuais expostos ao sistema operacional (não confundir com clusters de sistema de arquivos) e, em seguida, as células físicas nos chips flash. À medida que o controlador flash aloca/desaloca células, ele remapeia os setores virtuais de acordo, de modo que seja transparente para o sistema operacional (os mesmos setores virtuais podem aparecer em locais diferentes nas células flash em momentos diferentes).
Em segundo lugar, os SSDs possuem células sobressalentes que não podem ser utilizadas como espaço livre. Eles são reservados especificamente com a finalidade de nivelar o desgaste, mitigar a amplificação de gravação e remapear células mortas. Dessa forma, mesmo que o seu SSD tenha zero bytes de espaço livre, o controlador flash ainda terá espaço para realizar o nivelamento de desgaste.
Digamos que você tenha um SSD de 500 GB 100% cheio. Agora digamos que 499 GB desses dados sejam um arquivo que nunca muda, mas você tem um arquivo de 1 GB que muda o tempo todo. Se você excluir esse arquivo de 1 GB e depois copiar outro arquivo de 1 GB, o controlador flash fará uma de duas coisas naquele momento:
- Todos ou alguns dos novos dados serão alocados em células sobressalentes, deixando as células antigas em um estado ainda aparado.
- 1 GB de células dentro dos 499 GB de dados que nunca mudam serão copiados para outras células disponíveis. As células antigas serão então apagadas e reescritas com os novos dados.
Em ambos os casos, os setores virtuais apresentados ao sistema operacional nunca mudam, de modo que o sistema operacional não tem conhecimento do que realmente está acontecendo. O controlador flash mantém uma tabela de mapeamento de células de memória para setores virtuais.
O objetivo do algoritmo de nivelamento de desgaste na vida é tentar exercitar todas as células uniformemente, mesmo que isso envolva mover dados para alcançá-lo. Esse processo desacelera a unidade e (ironicamente) causa desgaste adicional às células flash. É chamadoamplificação de gravaçãoe é um problema significativo com SSDs. Os algoritmos reais de nivelamento de desgaste empregados pelos SSDs e as maneiras como eles atenuam a amplificação de gravação são segredos comerciais proprietários entre os fabricantes de SSD, portanto, esta é apenas uma descrição geral do processo.