HD Sata II…8MB,16MB,32MB de Buffer…O que é Buffer?

Muita gente as vezes me perguntam, o que significa o "8mb,16mb ou 32mb" que aparece na especificação dos HDs. (Exemplo: HD SATA II 500GB SEAGATE 32MB; HD SATA II 160GB SEAGATE 8MB; HD SATA II 400GB SAMSUNG 16MB)

Estas especificações tratam da velocidade de buffer que  diretamente ligado ao desempenho e velocidade de transferência de dados.

Tecnicamente falando um buffer é...e serve para:

Um buffer é uma pequena área de memória ultra-rápida usada para melhorar a velocidade de acesso a um determinado dispositivo. É encontrado em HDs, gravadores de CD, modems, e muitos outros. Apesar de serem sinônimos, o termo "buffer" é mais usado em relação aos dispositivos anteriormente citados enquanto o termo "cache" é mais usado com relação aos processadores e memória RAM.

Embora não seja tão importante para o desempenho quanto geralmente se pensa, o buffer permite à controladora do HD executar um conjunto de operações úteis para melhorar o desempenho.

Geralmente ao ler um arquivo, serão lidos vários setores seqüenciais. A forma mais rápida de fazer isso é, naturalmente, fazer com que a cabeça de leitura leia de uma vez todos os setores da trilha, passe para a trilha seguinte, passe para a terceira e assim por diante. Isso permite obter o melhor desempenho possível.

O problema é que na prática não é assim que funciona. O sistema pede o primeiro setor do arquivo  e só solicita o próximo depois de recebê-lo e certificar-se de que não existem erros.

Se não houvesse nenhum tipo de buffer, a cabeça de leitura do HD acabaria tendo que passar várias vezes sobre a mesma trilha, lendo um setor a cada passagem, já que não daria tempo de ler os setores seqüencialmente depois de todo tempo perdido antes de cada novo pedido.

Graças ao buffer, este problema é resolvido, pois a cada passagem a cabeça de leitura lê todos os setores próximos, independentemente de terem sido solicitados ou não. Após fazer sua verificação de rotina, o sistema solicitará o próximo setor, que por já estar carregado no buffer será fornecido em tempo recorde.

Nos HDs atuais, o buffer pode ser usado também nas operações de escrita. Imagine, por exemplo, que a controladora está ocupada lendo um arquivo longo e o sistema solicita que ela atualize um pequeno arquivo de log. Em vez de precisar parar o que está fazendo, a controladora pode armazenar a operação no buffer e executá-la mais adiante, em um momento de ociosidade.

Nos HDs SATA com NCQ, a controladora possui liberdade para reorganizar as operações, realizando-as de forma que sejam concluídas mais rápido. A controladora passa então a armazenar os dados no buffer, de forma que, depois de concluídas as operações, possa organizar os dados e entregá-los na ordem correta para o sistema.

O espaço excedente é usado para armazenar os últimos arquivos acessados, de forma que eles possam ser fornecidos rapidamente caso sejam requisitados novamente. A principal vantagem de usar um buffer maior seria justamente ter mais espaço para arquivos. A questão é que o sistema operacional também mantém um cache de leitura e gravação utilizando a memória RAM que, por ser maior que o buffer do HD, acaba sendo mais eficiente e também mais rápido, já que o buffer do HD tem sua velocidade de transferência limitada à velocidade da interface IDE ou SATA, enquanto o cache feito pelo sistema operacional está limitado apenas à velocidade de acesso da própria memória RAM.

6 thoughts on “HD Sata II…8MB,16MB,32MB de Buffer…O que é Buffer?

  1. Felipe

    Recentemente comprei um HD de 1 TB Samsung / 32 MB Buffer, mas me arrependi, deveria ter comprado um com 64 MB de Buffer.
    Resumindo, excelente post.
    Abraços.

    Reply
    1. Post author

      Oi Felipe,

      32MB de buffer não é tão ruim, principalmente para HDs de notebook. Sua decepção deve ser em função da rotação dos discos, pois velocidades abaixo de 7.200RPM, como 5.200 ou 5.400 podem também gerar um incômodo.

      Reply

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *