Native Command Queuing
![](http://upload.wikimedia.org/wikipedia/commons/thumb/4/4a/NCQ.svg/300px-NCQ.svg.png)
O enfileiramento de comandos nativo também conhecido como NCQ (do acrônimo do inglês Native Command Queuing), é um protocolo de comando para dispositivos com o padrão SATA que possibilita ter diversos comandos pendentes serem executados em uma ordem internamente determinada pelo dispositivo (disco rígido).
Em termos simples, a funcionalidade do NCQ é um tanto similar a um elevador. O elevador viaja sequencialmente de andar a andar e deixa as pessoas entrarem e saírem. Não segue a sequência que os usuários apertaram os botões de pedido do andar porque significaria uma carga mecânica excessiva e um tempo muito mais longo para esperar ou embarcar.
Para o NCQ ser habilitado, ele precisa ser suportado, e estar ativado, no adaptador de barramento SATA do computador, e também no disco rígido em si. Adicionalmente, o driver apropriado deve estar carregado no sistema operacional, para habilitar o NCQ no adaptador de barramento do computador.[1]
Desempenho e resistência
NCQ gera benefícios em grandes proporções, especialmente na área de desempenho, produzindo vasto desempenho com alta transição de workloads. O benefício do desempenho pode atingir uma adição de desempenho de um dispositivo de 10K SATA. Adicionalmente, em consequência da sua manipulação de dados e de comandos, NCQ reduz o desgaste mecânico nos dispositivos e melhora sua resistência.
Como o NCQ trabalha
NCQ compreende três componentes principais de funcionalidade. Dentro de cada um deles inclui as potencialidades que aumentam o desempenho e a duração de movimentações de SATA.
- Comando de enfileiramento: um dispositivo SATA NCQ pode enfileirar comandos e executá-los imediatamente. O dispositivo sabe qual protocolo que deve ser aplicado aos diferentes comandos. Aplica um tag único para os comandos.
- Transferindo dados para cada comando: NCQ deixa o dispositivo ajustar uma operação de "acesso direto à memória" (DMA) para transferência de dados sem intervenção do software do host. O dispositivo controla o motor do "Acesso Direto à Memória", seleciona transferências para minimizar latências, e otimiza o pedido de comando.
- Status de retorno para comandos terminados: O dispositivo retorna um status para comandos terminados. O status do comando é "corrida-livre", que significa que um status para qualquer comando pode ser comunicado em qualquer momento, sem um "handshake" entre o dispositivo e o host. O host e o dispositivo usam um registro de 32-bit para comunicar-se sobre comandos proeminentes, e mantém este registro sempre exato.
Ver também
- Serial ATA
- Disco Rígido
- AAM
- ↑ "SATA II Native Command Queuing Overview", Intel Whitepaper, April 2003.