1. NCQ的简介
- NCQ在SATA 2.0中被引入
- 最多支持32个命令outstanding
- 主要是硬盘侧的优化。支持NCQ 特性的硬盘可以根据收到的多个command去优化执行步骤(不是保序执行的),从而减少所有命令执行完时间,较少磁盘、磁头的转动,延长硬盘寿命。
- NCQ使用First Party DMA Read command、First Party DMA Write command
- 不具有NCQ特性和具有NCQ特性的硬盘的执行过程差异如下图所示
2. First Party DMA command
- H2D会包含TAG信息
- DMA Setup FIS会包含TAG信息
- Set Device Bits FIS会包含TAG信息
- 也就是说当通过DMA Setup FIS建立了一个TAG的DMA传输后,后续的(DMA Active FIS、)DATA FIS一直对应着该TAG,直到传输完成,通过Set Device Bit FIS表面该TAG的命令执行完成了。然后才能发送另一个DMA Setup FIS(另一个TAG)去开始
2.1 FPDMA Read command
- H2D会包含TAG信息
- DMA