Cache SLC: utilização e características em SSDs NVMe

Cache SLC

Um dos termos que se referem ao desempenho dos SSDs NVMe que você mais ouviu nos últimos meses é o SLC Cache. É por isso que preparamos este artigo para que você possa entender como ele funciona e quais os benefícios que ele traz para o desempenho de nossas unidades de estado sólido de alto desempenho.

O armazenamento de dados com base na tecnologia NAND Flash resultou em uma mudança de paradigma em vários setores da computação, desde cartões de memória para dispositivos portáteis até SSDs NVMe em PCs. É precisamente neste último caso que um dos gargalos históricos da história foi eliminado por não ter as limitações de latência de acesso e largura de banda dos discos rígidos tradicionais, no entanto, não existe uma tecnologia perfeita com desempenho de 100% e sempre há elementos que pesam, obrigando os engenheiros a encontrar e implementar soluções.

NAND Flash e células de memória

Tipos Celda NAND Flash SLC TLC MLC QLC

A memória Flash NAND é um tipo de NVRAM ou não volátil RAM, isso significa que seu funcionamento é igual ao de uma RAM convencional, mas com a diferença de que seus dados não são perdidos quando o sistema para de receber energia. A desvantagem de ter essa capacidade é ter um número limitado de gravações de memória em seu ciclo de vida. Embora as vantagens na forma de desempenho quando se trata de acessar armazenamento valham a pena, não em vão, todo sistema de computador é tão rápido quanto sai de sua parte mais lenta, que geralmente é o armazenamento.

Cada bit de memória em uma memória RAM é armazenado nas chamadas células de memória e nas primeiras memórias NAND Flash usadas para SSD armazenamento, um bit por célula foi usado, o que tornou o armazenamento muito caro. A solução? Que cada célula pode conter dados de 2 bits ( MLC ), 3 bits ( TLC ) ou até 4 bits ( QLC ) O problema adicionado? Quanto mais bits por célula, mais rápido eles se degradam e, portanto, menos vida útil. Lembre-se disso porque é a base para a compreensão do Cache SLC.

As células TLC e QLC não se degradam apenas na duração

SSM NVMe

Depois de chegar a este ponto, muitos de vocês terão a ideia na cabeça que as memórias NAND Flash do tipo MLC, TLC e QLC têm mais capacidade de armazenamento, embora menos duração, mas a largura de banda de todas elas é a mesma e, portanto, o tipo de célula não varia o desempenho. Pois bem, digamos que as más notícias não param por aí, mas que a velocidade de acesso também se degrada.

Quando o CPU faz uma solicitação de acesso a um endereço de memória no SSD NVMe, que é recebido pelo controlador de flash que irá buscar os dados na memória para transmiti-los através da interface PCI Express ou SATA, dependendo de qual você utilizar. a unidade, mas o controlador de flash acessa os chips NVMe da unidade diretamente para manipular seus dados e não o faz por meio das interfaces que mencionamos.

A maneira de armazenar os dados na memória Flash NAND é através de mudanças na tensão, uma memória SLC só precisa de 1 tensão, um MLC requer 3 , mas um TLC vai para 7 e se formos para um QLC, a coisa vai para 15 . Bem, quanto maior o número, mais tempo leva para realizar uma operação de leitura e gravação. E quando isso começa a ser um problema? Bem, pela memória do TLC e se você olhar o número de unidades SSD NVMe nas lojas, você verá que todos eles usam essas células pelo menos hoje.

A solução: cache SLC

Cache SLC NVMe
A primeira coisa a ter em mente é que o cache SLC não é igual ao cache DRAM que também está em alguns SSDs NVMe, já que não estamos falando da memória volátil que fica entre o controlador flash e a interface PCI. Expresse o mesmo, uma vez que o cache SLC também está nas unidades DRAM-Less. Em geral, embora haja exceções que veremos mais tarde, dentro de cada chip NVMe existem dois tipos de memória Flash NAND:

  • Uma memória TLC ou QLC para armazenamento de dados
  • Uma memória SLC muito menor que funciona como cache.

A primeira coisa que temos que entender é que um cache nada mais é do que uma memória muito mais próxima de um processador e portanto com menor latência que armazena dados temporariamente. Se revisarmos o que dissemos a você, temos as seguintes premissas:

  • As células SLC têm uma vida útil muito mais longa do que os TLCs e ainda mais do que os QLCs, de modo que demoram muito mais para se degradar.
  • A velocidade de acesso das células SLC é muito maior.

Assim, a solução é que os dados sejam temporariamente despejados na memória do SLC, que funciona como um cache de buffer para que um mecanismo de cópia de dados modifique os endereços de memória no TLC.

Desempenho do cache SLC

SLC MLC TLC voltaje cache
Chegamos à parte mais importante, o cache do SLC tem um tamanho fixo e isso significa que, se o usarmos para enviar ou receber pequenos dados, seu desempenho será mantido, mas se por exemplo quisermos fazer uma cópia sequencial dos dados na forma de um bloco de dados muito grande, assim que o SLC estiver cheio, o desempenho cairá.

Por isso, embora possamos ter em mãos dois NVMe SSDs com o mesmo armazenamento, interface de acesso e até mesmo tipos de células, ou seja, praticamente iguais, podem ter desempenhos completamente diferentes. O motivo? Obviamente, o cache SLC pode ter tamanhos diferentes.

O cache SLC não é utilizado apenas para armazenar dados com acesso sequencial, mas também aleatório e deve-se levar em consideração que os programas ao acessar a informação o fazem com alta recursão e em um bloco de informação delimitado.

Tipos de cache SLC

Tipos Cache SLC
Existem duas formas de gerenciar o cache do SLC, que dependerão do algoritmo para isso que o fabricante tenha implementado no controlador de flash. Em vez disso, refere-se a quanto espaço dentro dele pode ser alocado para armazenamento temporário.

  • No cache estático, o espaço de armazenamento é fixo e não pode variar em tamanho.
  • No cache dinâmico, o tamanho alocado é variável.

Como o cache dinâmico é possível se o número de células SLC é fixo? O problema é usar as células NVMe TLC como se fossem SLCs, ou seja, fazer com que armazenem um bit em cada uma em vez de 3. Portanto, existem alguns chips NVMe que realocam parte do armazenamento como cache.

A vantagem do cache dinâmico é que o tamanho do cache SLC não se esgota, mas existe o risco de que cada vez mais células TLC não sejam mais utilizadas para armazenamento, afetando a capacidade geral deste de armazenar dados. Por esse motivo, a maioria dos sistemas de cache SLC dinâmico faz uso de sistemas que limitam o tamanho máximo deste por meio do firmware.