用于在数据处理系统中管理地址转换的方法和装置制造方法及图纸

技术编号:2831488 阅读:119 留言:0更新日期:2012-04-11 18:40
提供了一种用于与诸如InfiniBand↑[TM]主机通道适配器的存储器注册使能的适配器进行通信的装置和方法。通过该装置和方法,可以由设备驱动器调取设备驱动器服务,用于初始化根联合体的地址转换数据结构中的地址转换条目。由设备驱动器将注册修改符和设备驱动器存储器数据结构的地址传递到设备驱动器服务。设备驱动器服务可以在与根联合体相关联的地址转换数据结构中创建地址转换数据结构条目,并在适配器的存储器注册(MR)地址转换数据结构中创建MR地址转换条目。然后,可以使用MR  ATPT数据结构和I/O操作来旁路与根联合体相关联的地址转换数据结构。

【技术实现步骤摘要】
用于在数据处理系统中管理地址转换的方法和装置
本申请通常涉及改进的数据处理系统和方法。更具体地,本申 请涉及使用高速緩存的地址转换与存储器注册使能的适配器进行通 信的装置和方法。
技术介绍
在具有当前的外设组件互连(PCI)协议的某些系统上,当执行直接存储器访问(DMA )操作的时候,使用地址转换和保护表(ATPT ) 来执行地址转换和访问检查。尽管ATPT已经使用了几十年,它们 对于较低端系统来说是新的,并且通过许多其他名称为人所知,诸 如直接存储器访问(DMA)重映射资源或者输入/输出存储器管理单 元(IOMMU)。 ATPT存储条目,用于将在DMA事务中使用的PCI 总线地址转换为用于访问实际存储器资源的实际存储器地址。在 ATPT中的条目存储保护信息,该保护信息标识哪些设备可以访问存 储器的相应部分、以及这样的设备可以在存储器的这些部分上执行 的特殊操作。最近,PCI-SIG ( www.pcisig.com/home )已经处于对允许驻留在 ATPT中的地址转换高速緩存在PCI系适配器中的机制进行标准化 的过程中。这些机制公知为地址转换服务(ATS) 。 ATS允许PCI 系适配器针对未转换的PCI总线地址请求转换,其中在支持ATS的 系统上,这种请求的成功完成可将已转换的(即实际存储器地址) 地址返回到PCI系适配器。然后,ATS允许PCI系适配器将在DMA 操作中使用的PCI总线地址标记为已转换。然后支持ATS的系统将 使用已转换的地址以旁路ATPT。 ATS还提供一种机制,通过该机制 主机侧(例如,硬件或者虚拟化媒介)可使先前所广告的地址转换无效。图1是示出了用于使用ATPT和PCI express ( PCIe )通信协议 执行DMA操作的传统机制的示范性图示。描绘的例子还示出了上述 PCIe地址转换服务(ATS),其通过PCIe端点(诸如使用ATS执 行地址转换操作的PCIe输入/输出(I/O )适配器)来调取(invoke )。 ATS功能在PCIe端点和主机系统的根联合体之中构建,如下所述。 有关PCIe ATS的更多信息,请参考可从外设组件互连特别兴趣组(PCI-SIG)网站www.pcisig.com处获得的PCIe ATS规范。如图1中所示,主机CPU和存储器IIO借助于系统总线115耦 合到PCIe根联合体120,该PCIe根联合体120包含地址转换和保护 表(ATPT) 130。 PCIe根联合体120接着经由PCIe链路135耦合到 一个或者多个PCIe端点140 (在PCIe规范中术语端点用于指支 持PCIe的I/O适配器)。根联合体120指示I/O层次的根,其将CPU/ 存储器连接到PCIe端点140。根联合体120包括主机桥(host bridge )、 零个或者多个根联合体集成的端点、零个或者多个根联合体事件采 集器、以及一个或者多个根端口。每个根端口支持分离的1/0层次。 1/0层次可以包括根联合体120、零个或者多个互联交换机和/或桥(其包括交换机或者PCI结构)、以及诸如端点140的一个或者多 个端点。例如,PCIe交换机可以用以增加诸如附加到根联合体120 的端点140的PCIe端点的数目。有关PCI和PCIe的更多信息,请 参考可从PCI-SiG网站www.pcisig.com处获得的PCI和PCIe规范。PCIe端点包括内部路由电路142、配置管理逻辑144、 一个或者 多个物理功能(PF) 146以及零个或者多个虚拟功能(VF) 148-152, 其中每个VF关联于PF。 ATS允许每个虛拟功能使用地址转换高速 緩存(ATC) 160-164,用于将已转换的PCI存储器地址高速緩存, 并且当执行DMA操作的时候,该PCI存储器地址可由虚拟功能使用 以旁路主机ATPT 130。在操作中,PCIe端点140可以调取PCIe ATS事务以请求将给定 PCI总线地址转换成为系统总线地址,并且指示后续事务(例如DMA7操作)已经转换并且可旁路ATPT。才艮联合体120可以调取PCIe ATS 事务以使得被提供给PCIe端点140的转换无效,从而转换不再由 PCIe端点140的物理和/或虚拟功能所-使用。例如,当将要执行DMA才喿作的时候,可以在处理DMA才乘作的 特殊虚拟功能148-152的ATC 160-164中查找DMA操作的地址。如 果在ATC 160-164中没有出现地址转换,则可由PCIe端点140向才艮 联合体120提出转换请求。根联合体120则可以使用ATPT 130执行 地址转换并将已转换的地址返回PCIe端点140。 PCIe端点140则可 以在对应于处理DMA操作的物理和/或虚拟功能的适当ATC 160-164中存储该转换。使用已转换的地址可以将DMA操作传递到 系统总线115上。如果在ATC 160-164中已经存在此地址的转换,则已转换的地 址与DMA才喿作一起使用。在DMA头部中可以设置一个位来指示该 地址已经转换并且针对此DMA根联合体120中的ATPT 130可以被 旁路。作为结果,在PCIe端点140与主机CPU和存储器IIO之间 经由PCIe链路135和系统总线115来直接执行DMA操作。访问检 查仍然可以由才艮联合体120执行,用以确保PCIe端点的虚拟功能的 特歹朱BDF号对应于允许以由DMA操:作i青求的方式来访问该地址的 BDF。一段时间之后,如果提供到PCIe端点140的转换不再由PCIe 端点140所使用,诸如当转换已经在ATPT 130内部变化时,根联合 体120必须向PCIe端点140发布ATS无效请求。PCIe端点140并 不立刻冲刷针对该无效地址的所有未决请求。相反,PCIe端点140 等待引用无效的已转换的地址的所有未完成的读取请求退回 (retire),并释放ATC 160-164中的转换,诸如通过设置一个位来 将ATC 160-164中的条目标记为无效。PCIe端点140向根联合体120 返回ATS无效完成消息,指示ATC 160-164中转换无效的完成。PCIe 端点140确保无效完成指示在使用无效地址的任何先前发出的写入 之后到达根联合体120。通常,ATPT 130可以提供为系统存储器中的树状结构转换表。 针对计算系统的每个PCI总线/设备/功能(BDF)可以提供不同的树 状结构。使用这些ATPT数据结构,设备可以共享设备地址空间, 并且设备可以具有专用的地址空间。由此,不是所有的设备可以在 系统存储器的所有地址空间上执行所有的DMA操作。作为DMA事务的一部分来同步进行ATPT 130的访问。这包括 使用 一种耗时的转换机制用于将DMA事务未转换的PCI总线存储以及检查ATPT以确保提交DMA事务的设备具有足够的许可用于访 问已转换的实际存储器地址、并且具有足够的许可以在已转换的实 际存储器地址上执行希望的DMA操作。作为访问ATPT 130的部分,必须标识对应于特 未BDF的正确 的ATPT树状数据结构、并且必须遍历(walk)树状数据结构,以 便执行转换和访问检查。ATPT树状数据结构的位置可能需要一次或 者两次访问来找到关联于BDF的树状数据结构的地址。 一旦发本文档来自技高网...

【技术保护点】
一种用于在数据处理系统中管理地址转换的方法,包括:由设备驱动器调取设备驱动器服务,用于初始化所述数据处理系统的根联合体的地址转换数据结构中的地址转换条目;从所述设备驱动器向所述设备驱动器服务传递注册修改符和设备驱动器存储器数据结构的地址;由所述设备驱动器服务在与所述根联合体相关联的地址转换数据结构中创建一个或者多个地址转换数据结构条目,所述一个或者多个地址转换数据结构条目指定从未转换的地址到用以直接访问所述设备驱动器存储器数据结构的已转换的地址的转换;由所述设备驱动器服务在适配器的MRATPT数据结构中创建一个或者多个存储器注册(MR)地址转换和保护表(ATPT)条目,所述一个或者多个存储器注册(MR)地址转换和保护表(ATPT)条目与一个或者多个地址转换数据结构条目相对应;以及使用所述MRATPT数据结构和I/O操作来旁路与所述根联合体相关联的地址转换数据结构。

【技术特征摘要】
US 2006-10-17 11/550,2171.一种用于在数据处理系统中管理地址转换的方法,包括由设备驱动器调取设备驱动器服务,用于初始化所述数据处理系统的根联合体的地址转换数据结构中的地址转换条目;从所述设备驱动器向所述设备驱动器服务传递注册修改符和设备驱动器存储器数据结构的地址;由所述设备驱动器服务在与所述根联合体相关联的地址转换数据结构中创建一个或者多个地址转换数据结构条目,所述一个或者多个地址转换数据结构条目指定从未转换的地址到用以直接访问所述设备驱动器存储器数据结构的已转换的地址的转换;由所述设备驱动器服务在适配器的MR ATPT数据结构中创建一个或者多个存储器注册(MR)地址转换和保护表(ATPT)条目,所述一个或者多个存储器注册(MR)地址转换和保护表(ATPT)条目与一个或者多个地址转换数据结构条目相对应;以及使用所述MR ATPT数据结构和I/O操作来旁路与所述根联合体相关联的地址转换数据结构。2. 根据权利要求1所述的方法,其中创建一个或者多个MR ATPT条目包括向所述适配器注册与所述设备驱动器存储器数据结构相关联 的被钉住的存储器区域;利用用于所述设备驱动器存储器数据结构的 一 个或者多个地 址来填充MR ATPT数据结构条目的一部分;以及向所述适配器通知,在所述MR ATPT数据结构的较低部分中的 一个或者多个地址是已转换的地址,所述已转换的地址可在直接存 储器访问(DMA)事务中使用,以旁路与所述根联合体相关联的地 址转换数据结构。3. 根据权利要求1所述的方法,进一步包括 由所述设备驱动器调取所述设备驱动器服务,用于对所述数据处 理系统的根联合体的地址转换数据结构中的地址转换数据结构条目进4亍无效;以及由所述设备驱动器服务来对所述数据处理系统的根联合体的地 址转换数据结构中的地址转换数据结构条目、以及所述适配器上的 一个或者多个相对应的MR ATPT条目进行无效。4. 根据权利要求1所述的方法,其中对MRATPT条目进行无 效包括向所述适配器解注册所述设备驱动器存储器数据结构。5. 根据权利要求1所述的方法,其中创建一个或者多个MR ATPT条目包括向所述适配器注册与所述设备驱动器存储器数据结构相关联的 先前被钉住的存储器区域;利用用于所述设备驱动器存储器数据结构的 一 个或者多个地址 来填充所述MRATPT数据结构条目的部分;以及向所述适配器通知,在所述MR ATPT数据结构的较低部分中的 一个或者多个地址是未转换的地址,其将在用于DMA事务之前转 换,所述DMA事务将与所述根联合体相关联的所述地...

【专利技术属性】
技术研发人员:DF莫特尔RJ雷西奥CA萨尔茨伯格SM瑟伯尔
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1