Native Command Queuing

Native Command Queuing
NCQ allows the drive itself to determine the optimal order in which to retrieve outstanding requests. This may, as here, allow the drive to fulfill all requests in fewer rotations and thus less time.

Native Command Queuing (NCQ) is a technology designed to increase performance of SATA hard disks under certain conditions by allowing the individual hard disk to internally optimize the order in which received read and write commands are executed. This can reduce the amount of unnecessary drive head movement, resulting in increased performance (and slightly decreased wear of the drive) for workloads where multiple simultaneous read/write requests are outstanding, most often occurring in server-type applications.

Contents

History

Native Command Queuing was preceded by Parallel ATA's version of Tagged Command Queuing (TCQ). ATA's attempt at integrating TCQ was constrained by the requirement that ATA host bus adapters use ISA bus device protocols to interact with the operating system. The resulting high CPU overhead and negligible performance gain contributed to a lack of market acceptance for TCQ.

NCQ differs from TCQ in that with NCQ each command is of equal importance, but NCQ's host bus adapter also programs its own first party DMA engine with CPU-given DMA parameters during its command sequence whereas TCQ interrupts the CPU during command queries and requires it to modulates the ATA host bus adapter's third party DMA engine. NCQ's implementation is preferable because the drive has both more accurate knowledge of its performance characteristics and is able to account for its rotational position. Both NCQ and TCQ have a maximum queue length of 32 outstanding commands[1][2] (31 in practice).

For NCQ to be enabled, it must be supported and enabled in the SATA host bus adapter and in the hard drive itself. The appropriate driver must be loaded into the operating system to enable NCQ on the host bus adapter.

Many newer chipsets support the Advanced Host Controller Interface (AHCI), which allows operating systems to universally control them and enable NCQ. Newer mainstream Linux kernels support AHCI natively, and FreeBSD fully supports AHCI since version 8.0. Windows Vista and Windows 7 also natively support AHCI, but their AHCI support (via the msahci service) must be manually enabled via registry editing if controller support was not present during their initial install. Windows 7's AHCI enables not only NCQ but also TRIM support on SSD drives (with their supporting firmware), an industry first. Older operating systems such as Windows XP require the installation of a vendor-specific driver (similar to installing a RAID or SCSI controller) even if AHCI is present on the host bus adapter, which makes initial setup more tedious and conversions of existing installations relatively difficult as most controllers cannot operate their ports in mixed AHCI - SATA/IDE/legacy mode.

NCQ in solid-state drives

NCQ is also used in newer solid-state drives where the drive encounters latency on the host, rather than the other way around. For example, Intel's X25-E Extreme solid-state drive uses NCQ to ensure that the drive has commands to process while the host system is busy processing CPU tasks. [3]

NCQ also enables the SSD controller to complete commands concurrently (or partly concurrently, for example using pipelines) where the internal organisation of the device enables such processing.

For example, the SandForce 1200[4] based OCZ Vertex II 50GB drive running on a Dell Perc 5i (which doesn't support SATA NCQ) delivers about 7,000 4k IOPS (50% write) at a controller queue depth of 32 IOs. Moving the drive to the similar Dell Perc 6i (which does support SATA NCQ) increases this to over 14,000 IOPS on the same basis.

See also

References

  1. ^ PDF white paper on NCQ from Intel and Seagate
  2. ^ Volume 1 of the final draft of the ATA-7 standard
  3. ^ http://techreport.com/articles.x/15931/1
  4. ^ "Client SSD Processors". SandForce. http://www.sandforce.com/index.php?id=19. Retrieved 31 August 2010. 

External links


Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Look at other dictionaries:

  • Native Command Queuing — (NCQ, übersetzt integrierte Befehlsreihung) ist eine Technologie, die entwickelt wurde, um die Leistung von Festplatten unter bestimmten Bedingungen zu verbessern. Funktionen Native Command Queuing NCQ ermöglicht, dass mehrere Anfragen… …   Deutsch Wikipedia

  • Native Command Queuing — (NCQ) est une technique conçue pour augmenter les performances des disques durs SATA en permettant au disque dur individuel de recevoir plus d une requête Entrées/Sorties à la fois et de décider laquelle accomplir d abord. Utilisant la… …   Wikipédia en Français

  • Native command queueing — Native Command Queuing Native Command Queuing (NCQ, übersetzt: natürliche Befehlsreihung ) ist eine Technologie, die entwickelt wurde, um die Leistung von Festplatten unter bestimmten Bedingungen zu verbessern. Sie ermöglicht, dass mehrere… …   Deutsch Wikipedia

  • Tagged Command Queuing — (TCQ) is a technology built into certain ATA and SCSI hard drives. It allows the operating system to send multiple read and write requests to a hard drive. ATA TCQ is not identical in function to the more efficient Native Command Queuing (NCQ)… …   Wikipedia

  • Tagged Command Queuing — (TCQ) ist eine Eigenschaft, die ursprünglich mit der SCSI 2 und später dann auch mit der ATA 4 Spezifikation eingeführt wurde. Ähnlich der Native Command Queuing (NCQ) Funktion der S ATAII Spezifikation sorgt sie bei Festplatten für eine… …   Deutsch Wikipedia

  • Tagged Command Queuing — (TCQ) est une technique intégrée à certains disques durs PATA (plus connue sous le nom d IDE) et SCSI. Elle permet au système d exploitation d envoyer de multiples requêtes de lecture/écriture à un disque dur. TCQ est quasiment identique quant à… …   Wikipédia en Français

  • Command queue — A command queue is a queue for delaying the execution of commands, usually either in order of priority or on a first in first out basis.[1] They are often useful in synchronous applications, where a command executor may receive a new command… …   Wikipedia

  • Tagged Command Queueing — Tagged Command Queuing Tagged Command Queuing (TCQ) est une technologie intégrée à certains disques durs PATA (plus connue sous le nom d IDE) et SCSI. Elle permet au système d exploitation d envoyer de multiples requêtes de lecture/écriture à un… …   Wikipédia en Français

  • Microsoft Message Queuing — or MSMQ is a Message Queue implementation developed by Microsoft and deployed in its Windows Server operating systems since Windows NT 4 and Windows 95. The latest Windows 7 also includes this component. In addition to its mainstream server… …   Wikipedia

  • NCQ — Native Command Queuing Native Command Queuing (NCQ, übersetzt: natürliche Befehlsreihung ) ist eine Technologie, die entwickelt wurde, um die Leistung von Festplatten unter bestimmten Bedingungen zu verbessern. Sie ermöglicht, dass mehrere… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”