O que é o dispositivo de tecnologia de memória?

0

Documentação e páginas da web não são muito claras sobre isso. É uma tecnologia Linux? É um tipo de dispositivo de armazenamento?

Algumas outras perguntas:

  • Se é uma tecnologia Linux, com que tipos de armazenamento ela funciona?
  • Qual é a "propriedade de desgaste"?
  • Por que as partições MTD são definidas com um parâmetro de inicialização?
por Melab 03.01.2016 / 10:55

2 respostas

1

A maioria dos sistemas comuns de Linux (e Unix, em geral) usam uma abstração de armazenamento chamada dispositivos de bloco. Um dispositivo de bloco é uma seqüência de blocos (setores). Blocos individuais podem ser lidos ou escritos. Há uma suposição de que a leitura ou a escrita de blocos sequenciais será mais rápida do que a leitura e a escrita e uma suposição de que não há problema em escrever no mesmo local repetidamente.

Esse é um ótimo modelo para unidades de disco. Não é um bom modelo para memória flash.

A memória flash deve ser apagada antes de poder ser reescrita. O circuito de apagamento é relativamente complexo, portanto, os blocos de apagamento (especialmente no flash NAND) são geralmente substancialmente maiores que os blocos de gravação. Cada bloco de apagamento só pode ser apagado um número limitado de vezes antes de falhar. Portanto, para maximizar a vida útil, é necessário um mecanismo para uniformizar o desgaste no dispositivo.

Existem duas abordagens. Uma abordagem é criar um controlador que apresente uma interface de dispositivo de bloco padrão e lide com o nivelamento de desgaste ao remapear blocos lógicos para diferentes físicos e, em alguns casos, mover dados "frios" (raramente modificados) de blocos de baixo desgaste para de alto desgaste. Isso significa que qualquer sistema de arquivos normal pode ser usado, mas o sistema de remapeamento é difícil de implementar corretamente. Em particular, a manipulação de falhas de energia é muito difícil. Essa é a abordagem usada pelos SSDs, pen drives, cartões SD, etc.

A outra abordagem não é tentar e fingir que o flash é uma unidade de disco, mas criar um novo tipo de dispositivo que represente diretamente um chip flash. O sistema de arquivos (ou, no caso de ubifs, a camada ubi) assume a responsabilidade pelo nivelamento de desgaste. O Linux chama esses dispositivos de dispositivos mtd. Como nos discos rígidos, cada dispositivo pode ser dividido em várias partições (embora as partições do IIRC sejam geralmente definidas pelo firmware do sistema, e não por uma tabela de partição no dispositivo flash em questão). Essa abordagem é vista com frequência em dispositivos incorporados, smartphones e tablets semelhantes a smartphones.

    
por 04.01.2016 / 00:54
0

A melhor descrição, como sempre, é na Wikipedia .

Basicamente, é uma camada de abstração (driver de dispositivo linux) entre o dispositivo flash on-board de um sistema embarcado e o dispositivo de bloco apresentado, etc., que o sistema operacional vê.

    
por 03.01.2016 / 13:15