高层建筑的电梯与硬盘技术 SATA 接口全速命令队列( NCQ )之间有什么共同之处?二者都具有可靠、高效地输送能力,这使得这两种完全不同的运输机制,在技术上有了非常相似之处。在高层办公建筑内乘坐电梯。当工作人员和来访者进入电梯要去不同的楼层时,他们就按楼层按钮。当许多人在不同的楼层进入电梯,要去往不同的楼层时,电梯并不是按照按钮按下的顺序去停靠楼层,这种方法会给电梯的各种部件造成不必要的磨损,比如: 钢索系统、刹车、液压系统、传动装置 和导向轴等。对于许多乘客来说,当一部笨拙的电梯哼哼唧唧地从一层开到另一层,按照按钮按下的顺序停靠卸栽乘客时,会产生许多额外的等候时间。电梯最顺畅有效的运行顺序是,每次都运行到最近的楼层停靠,每次向反方向运行之前,先要到达最高或最低的停靠点。
硬盘的 NCQ 技术使用类似的方法来高效地安排和运行数据命令。没有 NCQ 的硬盘像笨拙的电梯一样效率低下,并会按照命令发送到硬盘的顺序来执行它们。有了 NCQ ,硬盘会考虑读 / 写头在盘片上的位置,然后决定最有效的命令执行顺序,像电梯一样,先将磁头移到最近的位置执行命令,再按照相同的方式到下一个位置。 更特别的是, NCQ 通过让硬盘在内部优化工作负荷或命令的执行顺序,从而提高了硬盘性能并延长了硬盘寿命。在硬盘内部,命令队列对命令进行智能重排,最大程度地减少硬盘的机械定位延迟,有助于改善工作队列的性能。这一点非常重要,因为在今天的计算机系统中,只有硬盘内的所有移动部件是机械装置,包括:磁头驱动臂、盘片等。 正是这种有效地对传输路径进行排序的能力,最大程度地减小了机械磨损降,优化了性能,使 SATA 硬盘与电梯技术有了相似之处。NCQ 为系统构建商提供了一种方法,可以轻松地将用于台式机的高容量 SATA 硬盘扩大到用于高性能 PC 机、工作站和初级服务器,而且只需为每 GB 容量支付不到 1 美元。 在“ SATA1.0 技术规范扩充版”引入的大多数先进特性中, NCQ 是一种命令协议,它能允许同一块硬盘在同一时间有多个待执行命令。 NCQ 有一个待执行命令的内部队列,该队列与跟踪待执行命令和已完成工作的机制一起,对队列中的命令进行重新计划或排序。 NCQ 还允许主机在硬盘为另一个命令查寻数据时,对硬盘发出附加命令。这样做的结果是减少了机械运动,降低了盘片的旋转延迟,提高了性能。 有这样几种方法来最大程度地减少旋转延迟。一种方法是部署更高转速的硬盘,比如具有 10K 甚至更高主轴转速的 ATA 硬盘。然而,具有高 RPM 主轴转速的硬盘却价格昂贵。另一种方法就是根据硬盘磁头的旋转位置,确定下次应该执行的最佳命令,并对待执行命令重新排序。还可以使用无序数据传送方式来降低旋转延迟,这种特性不需要磁头首先去访问初始 LBA (逻辑块寻址)。磁头可以在目标 LBA 内的任意位置开始读取数据。当磁头定位在正确的磁道上方时,就开始读取数据,错过的数据待磁盘旋转回来后再补上即可;而不需要为回到被请求数据的第一个 LBA 上方进行旋转。 NCQ 通过在较少的磁盘旋转中处理更多的 IOPS 来减少旋转延迟。结果是在繁重工作负荷中,有更多的 IOPS 被处理了。 NCQ 是动态的,工作负荷越重,硬盘性能越高。 当明显需要对待处理命令重新排队以减小机械负担,改善输入 / 输出( I/O )延迟时,这样做要比简单地在队列中收集命令效果好。重排序算法使用一个被称为“基于寻道和旋转优化的命令重新排序”,或者称为标记命令队列( TCQ )的过程,优化了目标数据的线性和角度定位,从而最大程度地缩短总服务时间。命令队列减轻了机械负荷,降低了机械磨损,延长了硬盘寿命。 NCQ 是执行标记命令队列( TCQ )的高效协议。与 TCQ 不同的是, SATA NCQ 降低了队列算法导致的额外开销。 TCQ 没有在 ATA 硬盘中获得广泛采用的原因,是其所提高的性能被额外开销给抵消了。 SATA 通过采用高效的状态返回机制(无竞争)、低中断开销和第一方 DMA 等技术,极大地降低了额外开销,上述这些技术是无法在 PATA 中实施的。 无竞争状态返回机制 这一特性消除了传统上硬盘为了返回状态而与主机之间必须进行的“握手”过程,允许在任意时刻交流任意命令状态,使硬盘可以顺序或者同时完成多个命令。 中断聚合 硬盘为了完成一条命令通常会中断主机许多次。中断越多,主机的处理负担就越重,性能就越低。 NCQ 将处理每条命令的平均中断次数降低到了一次。如果硬盘在很短的时间内完成多条命令(这在工作负荷繁重时经常出现), NCQ 可以将单个中断聚合起来,这样主机控制器只需处理一个中断就可以了。 第一方 DMA ( FPDMA ) NCQ 采用第一方 DMA 技术,使硬盘能够在没有主机软件干预的情况下,为数据传输设置直接内存访问( DMA )操作。硬盘通过向主机控制器发送一个 DMA Setup FIS (桢信息结构)来选择 DMA 内容 。这一 FIS 为被设置的 DMA 指定了命令标记。主机控制器根据标记值,为该命令向 DMA 引擎内装载 PRD 表指针,然后,数据传输就可以在没有软件干预情况下进行,硬盘由于可以自己选择所传送的缓冲区,就能够更有效地对命令重新排序。
|
|
来自: clover_xian > 《我的图书馆》