Native Command Queuing

Exemplo de como funciona o acesso ao disco sem NCQ (em vermelho) e com NCQ (em verde)

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

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.