As técnicas para o disco rígido podem ser aplicadas ao ssd?

0

Gostaria de saber que as técnicas para o disco rígido ainda estão disponíveis para o ssd.

Suponha que usamos um disco de estado sólido com base na memória flash ne para o segundo armazenamento (sem disco rígido).

  1. quando lemos dados, o cache de disco (que foi usado para melhorar entre a memória principal e o disco rígido) é efetivo com o ssd?

  2. quando escrevemos dados, o buffer de gravação na memória principal também é efetivo com o ssd?

Estou tão confuso para usar terminologia (como cache de disco, buffer de gravação ..). desculpe por isso.

Obrigado por qualquer comentário

    
por user133577 11.05.2012 / 14:12

2 respostas

2

Parece quase que você está confundindo o conceito de um disco RAM com o de um SSD. Um disco RAM é criado na memória DRAM para armazenar os dados em cache, mas completamente apagados se a energia for desligada. Um SSD usa flash NAND (como você menciona) e age exatamente como um disco rígido tradicional para o sistema operacional (embora seja muito rápido).

  1. A leitura de dados de um SSD ocorre diretamente, não há cache adicional como nos discos rígidos tradicionais.
  2. Não há buffer de gravação, os dados são gravados diretamente no disco (flash NAND)

O cache de leitura e o buffer de gravação são usados em discos rígidos tradicionais para contabilizar as latências mais baixas de gravação em discos magnéticos (ou seja, mover o atuador e gravar os bits no disco).

    
por 06.06.2012 / 20:47
2

Sim, as técnicas que tornam os discos rígidos giratórios mais rápidos podem e são usadas para fazer com que o SSD flash apareça mais rápido.

O sistema operacional não sabe ou se importa que o dispositivo na outra extremidade do cabo da unidade seja um disco rígido giratório ou um SSD. O sistema operacional trata os dois exatamente da mesma maneira.

Quando um aplicativo grava dados na "unidade", o sistema operacional armazena em buffer os dados em um cache de páginas na memória principal (ou seja, na DRAM da placa-mãe) para que o aplicativo possa siga para a próxima tarefa enquanto o sistema operacional coleta esses dados pelo conector da unidade. Posteriormente, quando o SO realmente envia esses dados para a unidade, tanto o disco rígido giratório quanto o SSD armazenam esses dados em um buffer de disco ( na DRAM dentro do case da unidade) para que o sistema operacional possa avançar para a próxima tarefa enquanto a unidade goteja esses dados para a mídia não volátil real (girando domínios magnéticos ou bits flutuantes de polissilício).

Quando um aplicativo lê dados da "unidade", o sistema operacional verifica se talvez esses dados foram armazenados em buffer no cache da página - e, se não tiver, ele lê não apenas esse bloco de dados do disco rígido, mas também faz uma leitura antecipada de mais alguns blocos de dados e os coloca no cache da página. Quando uma unidade (giratória magnética ou flash) recebe uma solicitação para ler dados, ela verifica se talvez os dados já foram armazenados em buffer no buffer de disco - e, se isso não acontecer, ele não só obtém esses dados do disco mídia volátil, mas normalmente também faz uma leitura antecipada de mais alguns megabytes.

Essas técnicas ainda funcionam porque, embora a memória flash seja muito, muito mais rápida do que girar discos rígidos para leituras e gravações aleatórias, a memória flash ainda é várias vezes mais lenta que a memória DRAM da placa-mãe.

Tudo isso acontece automaticamente com qualquer sistema operacional moderno.

(Ouvi dizer que alguns SSDs flash lêem tantos chips flash em paralelo que é rápido o suficiente para fazer isso "on-the-fly" ao responder a um pedido de leitura, para que eles não leiam em buffer Seus buffers de buffer interno somente gravam, que são muito mais lentos. Além disso, DRAM SSDs usam DRAM, não flash, para que não tenham um buffer de disco interno , já que não seria mais rápido em leituras ou gravações. )

EDITAR: Algumas pessoas parecem pensar que os sistemas operacionais sabem e se importam se o dispositivo na outra extremidade do cabo é um disco rígido giratório ou um SSD - em particular, para que o SO possa enviar o comando TRIM apropriado apenas para o SSD.

Meu entendimento é que (a) muitos sistemas operacionais antigos não sabem nada sobre SSDs. Esses sistemas operacionais foram escritos sob a suposição de que o dispositivo na outra extremidade do cabo é um disco giratório. Esses sistemas operacionais ainda funcionam bem quando o disco giratório é substituído por um SSD. Todos esses sistemas operacionais tratam os SSDs e os HDDs da mesma forma.

Além disso, (b) muitos sistemas operacionais modernos do sabem tudo sobre SSDs. Em particular, muitos sistemas operacionais modernos enviam o comando TRIM no momento apropriado, para melhorar o desempenho do SSD. No entanto, meu entendimento é que muitos (a maioria deles) desses sistemas operacionais ainda ainda tratam os SSDs e os HDDs da mesma forma - eles enviam o TRIM para todas as unidades, até mesmo unidades de disco giratórias, e as unidades de disco giratórias silenciosamente a ignoram. Vejo Ter tido TRIM ativado afeta outros discos rígidos em um computador (e como você sabe quando o Windows está usando)?

Além disso, os SSDs mais antigos - criados antes do padrão ATA terem um comando TRIM - também ignoram silenciosamente o comando TRIM. Veja Wikipedia: TRIM .

    
por 07.06.2013 / 21:06