What Is Native Command Queuing?
Native Command Queuing (NCQ), as a command protocol introduced in the SATA II interface, is the only technology that is closely related to performance among many functional extensions to SATA 1.0 [1q]. Its prototype is the ATA / ATAPI-4 command queue (CQ) technology. Because PATA (Parallel ATA) is a non-peering polling access structure, the computing power of the controller is not sufficient to support complex optimized command ordering algorithms, especially when the queue depth When it is shallow, the performance is even worse than the case without queueing. With the development of ASIC, serial technology and multi (hyper-threading) system and the service of network storage, NCQ was introduced in SATA to enhance the overall performance of the disk to meet the information life cycle (ILM), enterprise tiered storage (HSM) L4, etc. Application models have become increasingly important to reduce the operating costs of enterprises.
Native command queue
Right!
- Native Command Queuing (NCQ), as a command protocol introduced in the SATA II interface, is the only technology that is closely related to performance among many functional extensions to SATA 1.0 [1q]. Its prototype is the ATA / ATAPI-4 command queue (CQ) technology. Because PATA (Parallel ATA) is a non-peering polling access structure, the computing power of the controller is not sufficient to support complex optimized command ordering algorithms, especially when the queue depth When it is shallow, the performance is even worse than the case without queueing. With the development of ASIC, serial technology and multi (hyper-threading) system and the service of network storage, NCQ was introduced in SATA to enhance the overall performance of the disk to meet the information life cycle (ILM), enterprise tiered storage (HSM) L4, etc. Application models have become increasingly important to reduce the operating costs of enterprises.
- The native command queue NCQ (Native Command Queuing), as a command protocol introduced in the SATA II interface, is the only technology that is closely related to performance among many functional extensions made to SATA 1.0 [1q]. Its prototype is the ATA / ATAPI-4 command queue (CQ) technology. Because PATA (Parallel ATA) is a non-peering polling access structure, the computing power of the controller is not sufficient to support complex optimized command ordering algorithms, especially when the queue depth When it is shallow, the performance is even worse than the case without queueing. With the development of ASIC, serial technology and multi (hyper-threading) system and the service of network storage, NCQ was introduced in SATA to enhance the overall performance of the disk to meet the information life cycle (ILM), enterprise tiered storage (HSM) L4, etc. Application models have become increasingly important to reduce the operating costs of enterprises.
- The composition of the NCQ protocol
- 1 Functional parts
- NCQ is mainly composed of three functional components: command queue establishment, data transmission and command completion status return. Among them, the command queue establishment component determines whether to send the command to the queue (tag is valid) or execute immediately (tag is invalid) according to the semantics of the command protocol; the data transmission component uses unilateral DMA to complete the drive and host data transmission; the command completion status The returning unit returns the execution status of the disk command to the host after the data read / write operation command transmission or data transmission is completed.
- 2 Command
- FPDMA has two commands: RFQ (Read FPDMA Queued) and WFQ (Write FPDMA Queued). Both support LBA mode and 48-bit address format. Except for the command code field, it distinguishes between RFQ and WFQ (RFQ. Command 60h, WFQ. Command 6lh) In addition, other fields such as sector count, LBA, etc. are exactly the same, and the flags contained in the sector count register are specified by the host driver.
- 3 internal register structure
- The local equipment scheme of NCQ queue adopts Advanced Host Control Interface (AHCIE)-Advanced Host Controller Interface, and the adapter system structure is based on PCI-HBA. The internal register of AHCI is composed of HBA register and system memory. The HBA register can be divided into AHCI-PCI configuration space register and HBA memory register. The former defines the standard PCI register with the PCI interface, and the latter is used for general host control.
- Control and port control, they are connected through AHCI-BAR or register BAR in PCI configuration space. The AHCI system memory is connected to the control registers through ports O0 to 31. Each port control register points to the Px command list base address (PxCLB) and Px FIS base address (PxFB) of the memory at the same time. The Px command list system memory is designed for the command list structure including command information and the command table address of the PRD table. The Px FIS system memory is designed for the FIS structure of the receiving port. This design provides a flexible and efficient mechanism for commanding the human team and dynamic queuing.