首页> 中国专利> 使用完成者对存储器区域排序要求的知识来修改事务属性

使用完成者对存储器区域排序要求的知识来修改事务属性

摘要

一种通过设置读取完成中的排序属性来放宽读取完成的排序的方法和系统。放宽的排序属性允许读取完成绕开待决写入。包括一种装置,包括:逻辑,用于:在互连上接收特定事务的分组,所述互连包括一个或多个点对点串行链路,其中所述分组包括识别请求者的请求分组;识别排序属性是否被设置在所述请求分组中以指示放宽的排序被应用到所述特定事务;以及确定应用放宽的排序以完成所述特定事务的机会。

著录项

  • 公开/公告号CN102981984A

    专利类型发明专利

  • 公开/公告日2013-03-20

    原文格式PDF

  • 申请/专利权人 英特尔公司;

    申请/专利号CN201210586797.9

  • 发明设计人 D·哈利曼;

    申请日2009-10-14

  • 分类号G06F13/16(20060101);G06F13/20(20060101);

  • 代理机构31100 上海专利商标事务所有限公司;

  • 代理人毛力

  • 地址 美国加利福尼亚州

  • 入库时间 2024-02-19 17:47:45

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-04-06

    授权

    授权

  • 2013-04-17

    实质审查的生效 IPC(主分类):G06F13/16 申请日:20091014

    实质审查的生效

  • 2013-03-20

    公开

    公开

说明书

本申请是优先权为US12/252,303、优先权日为2008年10月15日、中国国 家申请号为200910208029.8、题为“使用完成者对存储器区域排序要求的知识来 修改事务属性”的申请的分案申请。

技术领域

本发明的实施例一般涉及事务排序,尤其涉及允许修改严格排序的系统和方 法。

背景技术

外围组件互连(PCI)是于1992年开发的第二代并行总线架构,其作为行业 标准架构(ISA)总线的替代。在PCI中,所有设备共享相同的双向、32位(或 64位)并行信号路径。PCI总线带来优于ISA总线的数个优点,包括处理器独立 性、缓冲隔离、总线主控、以及实在的即插即用操作。PCI高速(PCI Express,PCIe) 是被设计用来替代PCI总线的第三代通用串行I/O互连。并非总线,PCIe是围绕 被称为通道(lane)的点对点串行链路而构造的。

PCI高速的点对点串行链路架构非常适合经由分布式多处理器架构模型的分 布式处理。分布式处理器一般被优化用于实现数据分组处理功能。与严重依赖于高 速缓存以提高性能的通用CPU不同,分布式处理器在分组处理上缺乏局部性并且 需要高性能I/O,这已推动设计者提出创新架构以减少处理等待时间,同时仍以高 数据率处理分组。

目前,PCIe中的事务排序属性和类似互连必须由请求者来设置。由于主CPU 是通用资源,因此它们通常不具有根据正执行的活动的具体要求来设置排序属性的 能力,并且必然落后于最低的公共平均水平,这导致低性能。CPU至IO读取通常 是性能最关键的系统事务,因为CPU核可能停转以等待结果。改进这种读取的性 能因此通过释放CPU资源供其它更有用工作用就直接导致整个系统性能的提高。

附图说明

通过参考用来说明本发明的实施例的以下描述和附图,可最好地理解本发明。

图1是图解宽松排序属性的PCIe请求报头的示意图解。

图2是图解宽松排序属性的PCIe完成报头的示意图解。

图3是本发明的一个实施例的示意图解。

图4是本发明的另一个实施例的示意图解。

具体实施方式

如说明书及权利要求书中所使用的,单数形式的“一”、“一个”以及“该” 包括复数引用,除非上下文另外明确地指出。“根联合体”(“RC”)是将中央 处理单元(“CPU”或“处理器”)和存储器连接到PCI高速开关结构的PCI高 速设备。根联合体代表处理器生成事务请求。“请求者”是作出请求的任何设备。 “完成者”是服务请求的任何实体。“媒介”是请求者与完成者之间的任何设备, 诸如开关。通常,媒介仅向前传递请求。如说明书和权利要求书中所使用的“上游” 指示往根联合体的流。“下游”指示远离根联合体的流。“区域”是由地址或地址 范围定义的存储器部分。设备例如可能希望用于存储对设备的指令的一个区域和用 于由设备产生或消耗的数据的另一个区域有不同行为。

本发明的实施例描述如何通过使IO设备基于该设备对因事务而异的要求的理 解来修改完成的排序属性,来恢复迷失于不必要的严格排序的一些性能以用于 CPU至IO设备读取。作为严格排序问题的示例,考虑如果初始要花费2μs来完成 的读取可被改进到1μs,则这1μs之差可被“返回”给核心以完成有用工作——这 是足以执行数千指令的时间。当前系统频繁地在CPU至IO设备读取上引发0.6μs 到若干μs的等待时间。较大系统针对常规排序的CPU至IO设备读取可能引发4μs 的等待时间。这种延迟中的大部分是由于禁止完成绕开写入的常规排序要求造成 的。由于常常存在大量的IO设备至主存写入业务,因此对CPU的读取完成常常简 单地因这许多写入造成的排队延迟而延迟。

PCIe和类似的互连将排序属性与事务相关联以允许最优化处理。例如,在 PCI/PCIe中,默认排序规则要求读取完成等待所有先前发出的在同一方向上流动 的写入,作为PCI生产者/消费者排序模型的正确要求。然而,这种模型对于大多 数情形而言过于保守。例如,在读取描述IO设备的状态的数据结构之前通常必须 清空IO设备写入主存。清空设备写入常常通过使CPU读取设备来完成。然而,一 旦清空读取完成,附加的设备状态读取通常不必针对上游写入进行排序。此外,通 常不必针对来自无关设备的上游写入来排序CPU的读取,即使PCI/PCIe默认排序 规则要求该行为。

通常,主CPU无法知晓如何标注读取请求以指示所要求的排序属性。然而, IO设备通常知晓哪些区域要求常规排序而哪些不要求。在各设备之间、设备内的 一个寄存器与同一设备中另一个寄存器之间、以及甚至是针对基于如何访问该寄存 器的一个寄存器,排序要求可能显著变化。排序要求的知识理论上可通过在主机上 运行的设备驱动软件来传达,但大多数当前架构CPU不提供这样做的机制。然而, 通常IO设备自身具有排序要求的知识。然而,IO设备不能标记CPU至设备请 求——该事务的这部分必须在假定应用最保守的排序要求下处理,除非某种其它机 制另行作出指示。

在许多情形中,加诸于各完成上的排序要求导致显著的停转。然而使用本发 明的系统和方法,可由IO设备标记排序要求,用于在恰适之处放宽排序要求。排 序要求取决于实现架构。在本发明的一个实施例中,该架构是PCIe。PCIe设备能 访问被称为宽松排序(RO)的排序属性。

图1示出PCIe请求报头中的RO比特的位置。通常,在请求中将RO比特设 为0,除非存在为CPU提供用以理解哪些请求可允许RO比特被置位的信息的某 种机制。根据现有的PCIe规则,由完成者简单地将RO比特(以及相关联的排序 含意)从请求复制到完成中。图2示出PCIe完成报头中的相应宽松排序(RO)比 特。

在当今的PCI-x/PCIe中,RO比特仅在其在对应的请求中被置位的情况下才在 完成报头中被置位。这种策略对于设备读取至主存有意义,因为假定该设备“知晓” 哪些请求可标注RO而哪些不能。本发明的实施例认识到针对设备返回的完成, CPU读取设备可标注RO。这允许完成绕开无关的设备写入存储器。

图3示出可如何由IO设备置位宽松排序属性(在这种情形中为PCI/PCIe完 成的RO比特)的示例。在该示例中,系统100包括3个PCI/PCIe端点1、2、3。 然而,系统100可具有任何数目的PCI/PCIe端点。前两个PCI/PCIe端点1、2经 由PCIe互连122连接到开关108。开关108通过另一个PCIe互连122连接到根综 合体110。第三PCI/PCIe端点3经由PCIe互连122直接连接到根综合体110。根 综合体110包括输入/输出控制器集线器控制器(ICH)112、存储器控制器集线器 (MCH)114、主存116、以及CPU118。输入/输出控制器集线器控制器(ICH) 112经由桌面管理接口(DMI)120连接到存储器控制器集线器(MCH)114。

在该实施例中,端点2和3将数据写入主存116。这些写入与端点1的活动无 关。CPU核118读取端点1。常规PCI排序规则在这些写入可能与读取数据相关的 (过度保守的)假定下禁止完成绕开对存储器的写入。这种行为是PCI生产者/消 费者模型所要求的。通常,端点1“知晓”CPU正读取的数据是否与未完结的写入 存储器相关,并且如果与未完结的写入有关系,则将不指示读取完成的RO。然而, 在大多数情形中,端点1“知晓”该读取与任何未完结的写入无关,并且在这种情 形中端点1可安全地关于RO标注该完成。

图4图解本发明的另一个实施例,其中寻址设备集成在根综合体110中。系 统200包括连接到输入/输出控制集线器控制器(ICH)112的2个集成端点124、 126。输入/输出控制器集线器控制器(ICH)11经由桌面管理接口(DMI)120连 接到存储器控制器集线器(MCH)114。存储器控制器集线器(MCH)114连接到 CPU118和主存116。该实施例包括单个PCI/PCIe端点1。然而,系统100可具有 任何数目的集成寻址设备124、126或PCI/PCIe端点1。

在许多情形中,集成寻址设备124、126按照很好地定义的方式使用,并且能 够简化用于确定何时可接受完成排序放宽的机制。注意,完成排序的具体处理无需 遵守PCIe RO要求。即,根据所需成本/益处,可使得本发明的其它实施例更简单 或更复杂。

图4示出其根综合体集成设备参与完成排序放宽方案的系统。在图4中所示 的系统中,可实现以下策略或其它类似策略。

·认识到CPU读取集成设备针对从其它集成设备写入主存可能从来没有排序 要求

·认识到CPU读取集成设备针对从非集成设备写入主存可能从来没有排序要 求

·认识到CPU读取非集成设备针对从其它集成设备写入主存可能从来没有排 序要求

·认识到CPU读取非集成设备针对从其它非集成设备写入主存可能从来没有 排序要求

以上示例是用PCI/PCIe RO属性例示的。然而,本发明不局限于PCI/PCIe RO。 在更一般性情形中,排序属性可不同于RO。此外,表达排序属性的方式可能不同。 完成者具有用于确定是否能从默认行为安全地修改完成排序的知识是充分的。此 外,以上示例是以针对上游写入排序的形式来例示的。然而,该系统是对称的。即, 排序属性也可被放宽以改变针对下游写入的排序。

本发明的实施例可提供对于宽泛的计算机系统合需的性能改进。PC兼容的架 构系统被特别约束,因为与支持传统硬件和软件相关联的要求使得很难实现排序放 宽。然而,以上描述的机制在PC环境中工作良好。

虽然本发明已用本发明的若干实施例的形式进行了描述,但本领域普通技术 人员将认识到,本发明并不被限定于所描述的本发明的实施例,而是可以用落在所 附权利要求书的精神和范围内的修改和变更来实践。因此本说明书应被认为是说明 性的而不是限制性的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号