|
Tech Primer
What is Native Command Queuing?
Native Command Queuing (NCQ) is a command protocol in Serial Advanced Technology
Attachment (SATA) that allows multiple commands to queue up within a hard disk
drive at the same time. Drives that support NCQ have an internal queue where
outstanding commands can be dynamically rescheduled or re-ordered, along with
the necessary tracking mechanisms for outstanding and completed portions of
the workload. NCQ also has a mechanism that lets the host issue additional commands
to the drive while it is seeking data for another command. Operating systems
such as Microsoft Windows and Linux are increasingly multi-threaded. Combine
that with processor-based hyper-threading technology on high-performance desktops
and these features have the potential to create workloads where multiple commands
are in a hard drive queue at the same time.
How does SATA Native Command Queuing (NCQ) compare with
ATA Tagged Command Queuing (TCQ)?
Native Command Queuing is an efficient protocol that has a race-free status
return mechanism, low interrupt overhead (less than 1 interrupt per command),
and supports First Party DMA. The SATA NCQ addresses the shortcomings of ATA
TCQ, which include high overhead, two interrupts per command, a large number
of host handshakes, and no support for First Party DMA. The issues with ATA
TCQ can cause performance degradation in lightly queued workloads where the
benefit of queuing is outweighed by the significant overhead of the protocol.
Is there a substantial advantage to using NCQ?
NCQ results in higher performance with multiple-command workloads, improved
drive endurance and less mechanical wear and tear. NCQ complements several performance-boosting
features that are components of the native SATA protocol. The performance boost
provided by NCQ can be compared to that derived from using a 10K-RPM SATA drive.
A 7200 RPM SATA NCQ drive can equal or exceed the performance of a 10,000-RPM
SATA drive without NCQ.
How does NCQ improve performance?
Serial ATA NCQ achieves high performance and efficiency through efficient command
re-ordering. In addition, there are three new capabilities that are built into
the Serial ATA protocol to enhance NCQ performance including race-free status
return, interrupt aggregation, and First Party DMA. The race-free status return
mechanism feature lets the status of any command be communicated at any point
of time. There is no handshake required with the host for this status
return to take place. The drive may issue command completions for multiple commands
back-to-back or even at the same time. By interrupt aggregation, the drive interrupts
the host each time it completes a command. The more interrupts, the bigger the
host processing burden. However, with NCQ, the average number of interrupts
per command can be less than one. If the drive completes multiple commands in
a short time span, a frequent occurrence with a highly queued workload, the
individual interrupts may be aggregated. In that case, the host controller only
has to process one interrupt for multiple commands.
What about data transfer rates?
NCQ has a mechanism that lets the drive set up the Direct Memory Access (DMA)
operation for a data transfer without host software intervention. This mechanism
is called First Party DMA. The drive selects the DMA context by sending a DMA
Setup FIS (Frame Information Structure) to the host controller. This FIS specifies
the tag of the command for which the DMA is being set up. Based on the tag value,
the host controller will load the PRD table pointer
for that command into the DMA engine, and the transfer can
proceed without any software intervention. This is the means by which the drive
can effectively re-order commands since it can select the buffer to transfer
on its own initiative.
Who are the vendors supplying NCQ SATA drives?
Seagate, Maxtor, Samsung and Intel are some of the vendors who are providing
support for NCQ SATA drives. Many hard disc drive vendors have or are planning
to bring out SATA based products with NCQ capabilities.
For more information log on to www.serialata.org
|