将排队进行到底----SATA-II的本机命令排队.pdfVIP

将排队进行到底----SATA-II的本机命令排队.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
将排队进行到底----SATA-II的本机命令排队

SATA- II 的本机命令排队 Serial ATA Ⅱ对Serial ATA 1.0 所做的诸多功能扩展中,只有一项是与性能密切相关的,它就是 本机命令排队(Native Command queuing ,也称全速命令排队,简写为NCQ )。借助SATA 1.0 改进的DMA 机制,SATA Ⅱ本机命令排队结束了PATA 命令排队可有可无的尴尬历史,能够更好地满足入门级服务 器和网络存储设备的要求,也顺应了PC 应用环境向多线程发展的趋势。 并行ATA (PATA )命令排队协议1997 年就被加入ATA/ATAPI-4 规范,可直到现 仍仅有一家硬盘 厂商 (HGST,原来的IBM )提供支持该协议的产品。难道是PATA 命令排队实现起来太过复杂?答案 当然是……非也。 PATA 排队难有作为 这个即将被抛弃的时刻,PATA 的 “罪恶”自然是罄竹难书。如此说来,再多拎出一条似乎也不 能算落井下石。 组成PATA 排队协议的命令包括Read DMA Queued(Ext) 、Write DMA Queued(Ext)和Service ,其中 后者是出于PATA DMA 的总线从属性需要。前面我们已经介绍过,PATA 是非对等的协议,也即硬盘不 能主动与主机通信,必须由主机定期交替轮询 (同一通道内的)主盘和从盘。这样一来,硬盘 接收到 来自主机的命令后,要么立即执行,要么必须通过设置注意标志和 Service 位来通知主机何时准备就绪 执行命令。主机发现Service 位后,会发出一条Service 命令,以便从硬盘得到将执行哪一条待执行命令 的信息。 由于队列的客观属性决 了其中至多有一条命令能够立即执行,因此 深度大于1 的队列中Service 命令不可避免。由于 Service 位不包含任何对即将执行命令的识别信息,所必需的命令识别信息要以标 记值的形式与数据请求一同传输,而且仅供主机用以设置DMA 引擎和接收数据缓冲区,主机不能预先 掌握硬盘所设置的辅助位来自哪条命令,数据传输周期开始前也无法设置DMA 引擎。本来最清楚数据 存放 何处和怎样访问的硬盘,现 反倒被置于完全被动的地位,有关数据传输的所有准备工作和决策 都是由主机做出的,自己只剩下设置Service 位,等待主机下一次查询的份儿。最终的结果是,受PATA DMA 的总线从属性限制,PATA 命令排队 来的性能改善,很轻易地就被协议开销抹杀了。在队列深度 较浅的时候,性能甚至还比不排队的情况有所下降……连 “聊胜于无”都算不上。 所以,尽管接收到来自主机的命令就执行(而不是排队)看起来很傻,可是PATA 硬盘的设计者们 基本上别无选择。没有命令排队(有也发挥不了多大作用)的后果就是,随着并发访问程度的提高,PATA 硬盘与SCSI 硬盘之间的性能差距被越拉越大 (见图)。 传统的PC 单线程应用中,PATA 硬盘可以按照主机软件安排的顺序执行命令,因此没有命令排队 还不是很严重的问题。但是,随着超线程技术的出现,多线程应用将逐渐 PC 领域普及,对硬盘端排 队能力的需求渐趋迫切,SATA Ⅱ本机命令排队可谓生逢其时。 FPDMA 反客为主 既然PATA DMA 的总线从属性是命令排队有名无实的ldquo;元凶rdquo;,SATA Ⅱ本机命令排队 就通过单方DMA(First Party DMA ,FPDMA )的机制来解决这个问题。虽然继承了PATA 的非对等ldquo; 传统rdquo;,但SATA 利用FPDMA 促成主机控制器为排队命令的数据传输选择适当的目标或源物理内 存区域 (允许硬盘经由Scatter/Gather 列表直接寻址)并初始化DMA 引擎,进而可以自己安排传输数据 的时间和顺序。 为了实现硬盘与主机之间的数据和状态通信,SATA 1.0 了三种类型的帧信息结构 (FIS ),分别 是FPDMA Setup 、DMA Active 和Set Device Bits ,SATA Ⅱ本机命令排队直接使用它们而无需修改现有 SATA 协议,不过增加了Read FPDMA Queued 和Write FPDMA Queued 这两条命令。 SATA Ⅱ本机命令排队允许支持和不支持该协议的硬盘连接在一个主机控制器上,当然更能够共存 于同一磁盘子系统中。主机控制器驱动程序通过识别设备(Identify Device )功能检测硬盘是否支持SATA

文档评论(0)

hhuiws1482 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档