Por favor, habilite JavaScript para poder visualizar esta página corretamente.

NCQ: Native Command Queuing

Criado em 26/09/2021, por Hosco.

Serial ATA e AHCI

A interface SATA surgiu no ano 2000 e constitui o barramento de comunicação com dispositivos de armazenamento mais usado na atualidade. Sua primeira versão já apresentava taxas de transferência mais altas e estáveis que o predecessor Parallel ATA (PATA).

A segunda revisão Serial ATA (SATA II ou 2.0) trouxe tecnologias que geram notável aumento de performance. O NCQ faz parte dessas melhorias, sendo um recurso inovador que proporciona melhor desempenho em HDs.

O AHCI (Advanced Host Controller Interface) é o padrão, criado pela Intel, de interface para controladores de host que usam SATA. Ele permite que o sistema operacional use atributos importantes oferecidos pelo SATA II (NCQ, hotplug etc.).

Seagate Barracuda V foi a primeira série de discos rígidos com tecnologia Serial ATA. Foi lançado no mercado em janeiro de 2003.

Este breve documento expõe o conceito, principais características e vantagens do Native Command Queuing.

HD Seagate Barracuda V ST380023AS SATA
Seagatete ST380023AS, um dos primeiros HDs SATA

O Que é a Tecnologia NCQ?

NCQ é a sigla para Native Command Queuing e sua tradução (aproximada) para português é fila de comando nativo. É uma tecnologia de interface para dispositivos de armazenamento que otimiza a forma como as operações de leitura e gravação são realizadas, ocasionando maior desempenho e durabilidade do equipamento. É uma "extensão" do protocolo SATA em sua segunda revisão (concluída em abril de 2004).

Um HD antigo e sem NCQ realiza tarefas de I/O em forma síncrona e na exata ordem que foram solicitadas. É comum as cabeças de leitura e escrita se deslocarem repetidas vezes entre áreas extremas de disco, tendo que percorrer longas distâncias para realizar poucas tarefas.

Tanto HDs SATA-2 quanto SSDs suportam essa tecnologia, mas são os discos rígidos que se beneficiam mais dela. Em um dispositivo com NCQ as operações são reordenadas de forma inteligente. Mais setores são acessados com menos rotações de pratos (discos). As cabeças de leitura se locomovem menos vezes e percorrem menores distâncias. Por fim, as latências diminuem e as operações ficam mais rápidas.

NCQ vs Sem NCQ
Comparação de funcionamento: HD sem NCQ vs HD com NCQ

Como Funciona o Recurso NCQ?

A dinâmica de um elevador é um ótimo exemplo para se entender o NCQ: independente da ordem de chamada, ele sempre vai se deslocar primeiro até o andar mais próximo que o solicitou. Não faz sentido o levador subir direto até o último andar, sendo que ele também pode pegar o passageiro que o está chamando no segundo andar.

Se um HD com NCQ tiver requisições para os setores 1.000.000, 10 e 1.000, elas serão reordenadas para os setores 10, 1.000 e 1.000.000. Se fosse cumprir as tarefas exatamente como foram solicitadas, as cabeças de leitura iriam do setor 1.000.000 para o 10 e, depois, do 10 para o 1.000. Reorganizando as tarefas de acordo com NCQ, ocorre um único movimento até o setor 1.000.000. (com uma imperceptível parada pelo setor 1.000).

O exemplo acima é para um simples entendimento. Nem sempre os setores corresponderão às áreas físicas dos pratos (discos) do HD. Mas é basicamente este o algoritmo adotado. De qualquer forma, acontece um notável impacto na performance geral do sistema.

SSDs suportam NCQ nativamente, distribuindo as operações de leitura e escrita de forma eficiente. Para manter a unidade ativa por maior tempo possível, eles conseguem manter em espera até 32 operações de I/O.

Exibindo Informações do HD
Software exibindo NCQ e outras informações do HD

Benefícios Providos Pelo NCQ

O movimento das cabeças e a gravação de informações nos pratos magnéticos são processos lentos se comparados com aqueles realizados na memória de cache do HD. É essa parte mecânica do hard disk que limita velocidade e que sofre maior desgaste ao longo do tempo. Tecnologias que otimizam as operações em nível mecânico não só promovem maior velocidade, mas também prolongam a vida útil do equipamento.

A extensao Native Command Queuing proporciona o processamento de múltiplas requisições, fazendo o drive de armazenamento operar em modo multitarefa preemptivo. É um grande avanço em relação às tecnologias anteriores que, basicamente, realizavam uma tarefa por vez.

Componentes de um HD
Localização dos componentes e partes do hard disk

Considerações e Finalização

Todos os drives modernos têm NCQ habilitado; assim como as controladoras de storage (através de AHCI). Os sistemas operacionais recentes também suportam, nativamente, a tecnologia. Em ambientes Linux é possível verificar se O NCQ está ativo, executando o comando hdparm -Q sob o drive desejado.

O Native Command Queuing é um recurso bastante importante e inovador para a época que surgiu. Assim como certas instruções de processador, o NCQ irá perdurar por tempo indeterminado nos HDS, SSDs e flash drives.

#hd #ncq #harddisk #sata #ahci #performance #hosco