硬盘指令队列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技术还是大有必要的。

NCQ与TCQ的区别及测试比较相关推荐

  1. 声纹识别demo_语音识别、声纹识别的区别及测试

    姓名:李沂配 19021210904 转载自:https://blog.csdn.net/alice_tl/article/details/82319781 [嵌牛导读]:声纹识别和语音识别在原理上一 ...

  2. sd和sem啥区别_sd和sem的区别 sem测试主要测什么

    mean ± S.E.M.和mean ± SD有什么区别? 一.含义不同 mean表示都2113是平均数5261. SEM是standard error of mean是平均数的抽4102样误差,反应 ...

  3. 语音识别、声纹识别的区别及测试

    很多除接触AI的小伙伴, 不清楚语音识别和声纹识别的区别,经常混淆概念,以为语音识别.声纹识别.语义识别是同一回事,其实不然.这篇文章主要为小伙伴普及一下这三者的区别, 并且分别讲一讲如何测试. 语音 ...

  4. 什么是E-mark认证?ECE认证区别及测试项目

    什么是E-mark 认证? E-Mark 也就是欧洲共同市场,对汽机车及其安全零配件产品,噪音及废气等,均需依照欧盟法令[ EEC Directives ]与欧洲经济委员会法规[ ECE Regula ...

  5. 什么是接口测试,和性能测试有什么区别,测试步骤有哪些?

    一.什么是接口测试 接口测试是测试系统组件间接口的一种测试.接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点.测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑 ...

  6. 国有银行和地方银行有哪些区别?--测试

    国有银行跟地方银行虽然都同属银行机构,但是两者还是有很大区别的,这种区别主要体现在以下几个方面. 第一.所有权性质不一样. 目前国有银行包括工行,农行,建行,中行,交行和邮储银行六大银行,其中工农中建 ...

  7. APP测试和传统软件测试有什么区别

    APP测试和传统软件测试有什么区别?APP测试和传统测试是有一些区别的,移动APP的特点使得它与传统软件在开发.测试方面都有所不同.比较移动APP测试与传统软件测试的不同,要从以下几个方面进行考虑: ...

  8. alphac测试和bata测试区别_康一康!接口测试与性能测试的区别瞧过来~

    点击上方蓝字  关注我们前言 最近我在一个论坛上看到了一个关于性能测试和接口测试的经典问题,问题如下: 问题:后端性能测试,一个功能其实都是由后台多个接口组成的. 例如一个单据的保存,可能后台需要调用 ...

  9. H5和微信小程序测试区别

    01 什么是H5? H5,也就是"HTML5",指"HTML"的第5个版本.众所周知"HTML"是"超文本标记语言",是 ...

最新文章

  1. [MySQL 5.1 体验]MySQL 复制
  2. Ansible-----循环
  3. 网络安全——ipsec
  4. 栈windows linux,Linux+Windows: 程序崩溃时,在 C++ 代码中,如何获取函数调用栈信息...
  5. 在和人相处时的即时通讯软件
  6. mysql进程线程_MySQL 内核线程简要分析
  7. iphone core animation教程
  8. webserver/CGI
  9. RDA EQ频响曲线
  10. 曝!苹果折叠iPhone要问世了
  11. Java 去除字符中的空格、回车符
  12. 【十分钟读懂系列】之什么是SLF,PSL,MLF,SLO?
  13. C语言API函数大全(转载)
  14. 微信小程序使用 npm 安装第三方包
  15. java虚拟机第三版学习
  16. pdu串短信格式说明
  17. 当你的Python代码抛出错误,首先应该看这里!
  18. Java工具集-Java游戏台球
  19. LeetCode 142.环形链表||(中等)
  20. 软件集成策略——如何有效率地提升质量

热门文章

  1. 05- 线性回归算法 (LinearRegression) (算法)
  2. Java新手小白入门篇 Java项目的构建
  3. java 日期获取时间戳
  4. 蓝桥 音节判断 Python
  5. 【Android App】实战项目之虚拟现实(VR)的全景相册(附源码和演示视频 可用于学习和大作业)
  6. 台大郭彦甫_MATLAB视频笔记(六)图形界面_GUI程序设计
  7. Latex自动化学报模板学习和问题解决总结
  8. golang 编译错误:unknown revision xxx
  9. 大二物竞金牌转北大计算机,靠竞赛进入清北的学生,都能选哪些专业?| 2019竞赛优惠专业分析...
  10. 文件上传(图片上传) 大小限制的配置 及注意点