ZNS SSD: características e uso deste formato de armazenamento

Os SSDs ZNS serão uma realidade em nenhum momento. Eles não são um tipo diferente de hardware, mas variam na maneira como acessam os dados nos chips de memória NAND Flash e adotam um método mais otimizado para usar a memória NAND Flash. Portanto, eles envolvem mudanças no Flash Controller integrado em cada SSD.

O padrão SSD ZNS foi aprovado como padrão no NVMe e faz parte da versão 2.0 do mesmo. Envolve mudanças importantes na maneira como você acessa e organiza os dados armazenados. Até o momento o SSD tem sido acessado como se fosse um disco rígido convencional, o que não é o melhor método para este tipo de memória.

SSD ZNS

O que é um SSD?

Um SSD convencional no nível do hardware é um conjunto de componentes não voláteis RAM memórias, especificamente memória Flash NAND, que são conectadas a um controlador de flash, que funciona da mesma forma que um controlador de memória normal e é responsável por gerenciar as solicitações de acesso à memória que você conectou.

Até agora, os SSDs usaram a mesma maneira de gerenciar seus dados que um disco rígido convencional, o que não é muito eficiente em termos de vida útil e de como usar seus recursos. A razão é que a memória NAND Flash apesar de não ser volátil como a de um disco rígido é mais semelhante à RAM em termos de acesso aos dados. O que torna melhor adotar uma nova forma de acesso a este tipo de memória, mais avançada e, portanto, em linha com as suas capacidades.

O ZNS tem exatamente essa forma, vamos agora ver suas características.

O que é um ZNS SSD?

Controlador ZNS

Em primeiro lugar, o que significa ZNS? Bem, eles são a sigla para Zoned NameSpaces. Que é uma forma de organizar o armazenamento em disco e, portanto, estamos falando sobre a forma como os dados são armazenados no SSD. Nos discos rígidos, o que se faz é organizar as informações em páginas, que ficam armazenadas em tabelas e estas em diretórios. O sistema de paginação é utilizado para organizar os dados em um disco rígido convencional no qual cada página possui um espaço fixo e específico.

Por outro lado, em um SSD ZNS o que é feito é dividir o espaço em zonas de tamanhos diferentes. O objetivo é que quando o CPU, GPU ou qualquer outro elemento precisa escrever os dados na memória em vez de apontar para um endereço de memória virtual, o que fará é apontar para essa área. Que terá sido previamente definido em termos de tamanho. Qual é o seu funcionamento? Simples, toda vez que você deseja gravar na memória flash, o namespace atribuído a essa zona é invocado. O controlador de flash gravará os dados nessa zona e não fora dela. Também o fará sequencialmente, para não deixar espaços mortos no disco e otimizar a sua utilização.

SSD ZNS

O que se consegue com essa técnica é que o controlador de memória flash não precisa lidar com gravações em endereços de memória aleatórios e o uso de espaço no SSD é otimizado. A CPU simplesmente reserva uma parte delimitada do armazenamento como uma área para armazenar os dados. Quando você precisar acessar essa zona, o PC dirá ao controlador de memória flash que deseja acessar os dados dessa zona específica invocando esse namespace específico.

Os SSDs ZNS usam o que chamamos de endereçamento de bloco lógico, cada uma das zonas é composta de blocos lógicos ou LBAs. Cada zona pode ter qualquer número de blocos lógicos para armazenar dados, mas deve ter um tamanho mínimo de 2 e quando os dados de um bloco lógico ou LBA foram gravados, as informações do próximo são preenchidas sequencialmente.

A principal vantagem é que ele não cria espaços mortos no SSD por não reservar mais memória do que o necessário em todos os momentos. Isso torna os ciclos de gravação muito mais curtos e também nos permite prever mais facilmente a latência no acesso aos dados, pois eles são organizados sequencialmente em vez de serem distribuídos pela unidade.

Máquina de estado em um SSD ZNS e comandos

Máquina Estado ZNS

Para oferecer suporte aos NameSpaces de zonas, o controlador de memória flash deve ser capaz de executar uma série de instruções para lidar com as informações e acessar o SSD de maneira adequada. É por isso que uma série de máquinas de estado finito são usadas para controlar as informações no SSD. As máquinas de estado finito são códigos micro-conectados no hardware, neste caso o controlador de flash, que, com base nas informações de entrada, indica como deve funcionar com aquela área da memória flash.

  • Vazio: dados podem ser gravados quando não há nada, se for feita uma leitura, ele retornará os dados que são predefinidos pelo fabricante. Na maioria das vezes, lixo. Uma zona pode ser completamente apagada através do comando reset, isso destrói a organização das diferentes zonas.
  • Cheio: a zona está cheia de dados e não pode armazenar mais informações, mas pode ser usada somente para leitura.
  • Aberto: permite a leitura e escrita dos dados no atual LBA ativo da zona. Cada zona pode ser aberta implicitamente ou explicitamente aberta. O primeiro refere-se ao fato de que podemos abri-lo invocando o comando Abrir do controlador de flash. Em vez disso, o modo explícito tem a mesma função, mas do próprio aplicativo.
  • Fechadas: quando uma zona é fechada, só aceita comandos de leitura e não permite a entrada de novos dados.
  • Acabamento: não apaga os dados, mas marca a zona como completa. Independentemente de haver mais memória originalmente alocada para armazenamento na forma de vários LBAs, nenhum dado pode ser armazenado nessa zona.

No início de cada zona, o que o controlador de flash faz é colocar uma etiqueta que o lembrará do status daquela zona na memória.