Buffer de disco

Read-ahead/leia-behindEdit

Quando um disco do controlador executa uma leitura física, o atuador move a cabeça de leitura/escrita (ou perto) o correto cilindro, depois de algum recalque e possivelmente multa-de accionamento a cabeça de leitura começa a pegar dados de faixa, e é tudo que resta a fazer é esperar até que o prato de rotação traz os dados solicitados.

os dados lidos antes do Pedido durante esta espera não são requisitados, mas livres, por isso são normalmente salvos no buffer de disco no caso de ser solicitado mais tarde.

da mesma forma, os dados podem ser lidos gratuitamente por trás do pedido se a cabeça pode permanecer no caminho, porque não há outra leitura para executar ou a próxima atualização pode começar mais tarde e ainda completa no tempo.

se várias leituras solicitadas estiverem na mesma faixa (ou perto de uma faixa em espiral), a maioria dos dados não solicitados entre eles serão lidos para a frente e para trás.

Speed matchingEdit

the speed of the disk’s I / O interface to the computer almost never matches the speed at which the bits are transferred to and from the hard disk platter. O buffer de disco é usado para que tanto a interface de E/S e a cabeça de leitura / escrita do disco possam operar a toda a velocidade.

Escrever accelerationEdit

O disco incorporado microcontrolador pode ser sinal de que o computador principal de um disco de gravação é concluída imediatamente após o recebimento dos dados de gravação, antes de os dados é na verdade escrito para o prato. Este sinal inicial permite que o computador principal continue trabalhando, mesmo que os dados ainda não tenham sido escritos. Isto pode ser um pouco perigoso, porque se a energia é perdida antes que os dados são fixados permanentemente nos meios magnéticos, os dados serão perdidos do buffer do disco, e o sistema do arquivo no disco pode ser deixado em um estado inconsistente.

em alguns discos, este período vulnerável entre sinalizar a escrita completa e fixar os dados pode ser arbitrariamente Longo, uma vez que a escrita pode ser adiada indefinidamente por pedidos recém-chegados. Por esta razão, o uso da aceleração de escrita pode ser controverso. Consistência pode ser mantida, no entanto, usando um sistema de memória battery-backed para dados de cache, embora isso normalmente só é encontrado em Controladores RAID high-end.

Alternativamente, o caching pode simplesmente ser desligado quando a integridade dos dados é considerada mais importante do que o desempenho de escrita. Outra opção é enviar dados para o disco em uma ordem cuidadosamente gerenciada e emitir comandos “cache flush” nos lugares certos, que é geralmente referido como a implementação de barreiras de escrita.

fila de comandos

SATA mais recente e a maioria dos discos SCSI podem aceitar vários comandos enquanto qualquer um deles está em operação através de” Fila de comandos ” (ver NCQ e TCQ). Estes comandos são armazenados pelo controlador embutido do disco até que sejam completados. Um benefício é que os comandos podem ser re-ordenados para serem processados de forma mais eficiente, de modo que os comandos que afetam a mesma área de um disco são agrupados juntos. Se uma referência de leitura os dados no destino de uma escrita em fila de espera, os dados a serem escritos serão devolvidos.

NCQ é normalmente utilizado em combinação com o tampão de escrita activo. No caso de um comando FPDMA de leitura/escrita com o bit Force Unit Access (FUA) configurado como 0 e ativado o buffer de Escrita, um sistema operacional pode ver a operação de escrita terminada antes que os dados sejam fisicamente escritos para a mídia. No caso de um bit FUA configurado para 1 e ativado o buffer de escrita, a operação de gravação retorna apenas depois que os dados são fisicamente escritos para a mídia.



+