硬盘指令队列NCQ/TCQ技术详解&性能测试 |
|
---|---|
|
|
作者:Darren NCQ(Native Command Queuing)与TCQ(Tagged Command Queuing)都是设计通过把计算机发向硬盘的指令做重新排序,从而提高硬盘性能的技术。NCQ技术在 300MB/s的Serial ATA II规格中引入,针对的是主流的硬盘产品,而TCQ技术是在SCSI2规格中引入(ATA-4标准中也有采用),针对的是服务器以及企业级硬盘产品。 要使用NCQ、TCQ技术,芯片组硬盘接口和硬盘产品本身都必须支持才行,也就是说,如果你购买的一款新硬盘并不支持NCQ,即使你的主板是最新的支持NCQ的,也不能够打开这个功能从而提高性能。 当电脑发送指令需要读取的数据存放在距离较远的扇区的时候,这种“指令队列”功能就能够起到作用,提高硬盘的读取性能了。有了指令队列,硬盘接受到这些指令之后会对它们进行重新的排序,使得磁盘转动的每一圈都读取最多的数据。 如图,例如电脑要求硬盘读取A、B、C、D四个位置上的数据,如果没有指令队列功能的话,硬盘需要旋转两圈半来读取所有需要的数据,而有了指令队列对指令做最优化排序,磁盘只需要转动一圈就可以了。 NCQ可以同时处理32条指令,而TCQ可以同时处理216条指令(不过TCQ硬盘一般设计“只有”最大64条指令的队列),此外TCQ相比NCQ还有两个额外的功能:它可以根据需要指定不进行排序而是强制按照硬盘接受到指令的顺序读取,还可以支持高优先级指令,可以比队列中其他指令优先执行。 NCQ的实际性能表现究竟会如何呢,让我们来看一下这个测试: 测试使用的是支持NCQ的希捷ST3160023AS, 160 GB硬盘,测试平台为3.2 GHz Pentium 4, 1 GB内存, GeForce 6800显卡以及Intel主板,测试软件使用PCMark04以及IOMeter,在开启关闭NCQ的状态下做一个对比。 结果在PCMark04中硬盘使用从5,978 MB/s 提升到了6,112 MB/s,只有2.24%的提升,Windows XP载入时间性能提高了9.76%,从8,947 MB/s达到了9,821 MB/s。IOMeter的测试中成绩从119提升到了142,提升幅度为19.32%。 我们看到上述两款软件测试中差距比较大,这是因为NCQ功能对于那些硬盘接收到无序指令的情形最有效果,PCMark04硬盘性能测试使用的是一系列比较有序的指令读取测试,而IOMeter是随机工作负荷,所以结果也更好。我们注意到XP载入时间提升也是比较喜人的,由此看来NCQ技术还是大有必要的。 |