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

技术编号:2831359 阅读:139 留言:0更新日期:2012-04-11 18:40
提供了一种用于在数据处理系统中管理地址转换的方法和装置。通过该装置和方法,设备驱动器调取设备驱动器服务,用于针对队列数据结构在根联合体中初始化地址转换以及保护表(ATPT)。设备驱动器服务向设备驱动器返回未转换的地址,接着将未转换的地址提供到网络适配器。在接收到目标为与队列元素相关联的缓冲器的数据包之前,响应于从队列数据结构获取队列元素,网络适配器可以请求对队列元素中指定的未转换的地址进行转换,并将已转换的地址存储在网络适配器中。

【技术实现步骤摘要】
用于在数据处理系统中管理地址转换的方法和装置
本申请通常涉及改进的数据处理系统和方法。更具体地,本申 请涉及使用队列数据结构和高速緩存的地址转换与网络适配器进行 通信的装置和方法。
技术介绍
在具有当前的外设组件互连(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和存储器110借助于系统总线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总线地址转换成为系统总线地址,并且指示后续事务(例如DMA操作)已经转换并且可旁路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则可 以在对应于处理DMAf乘作的物理和/或虚拟功能的适当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操作请求的方式来访问该地址的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事务的i殳备具有足够的许可用于访 问已转换的实际存储器地址、并且具有足够的许可以在已转换的实 际存储器地址上执行希望的DMA操作。作为访问ATPT 130的部分,必须标识对应于特歹朱BDF的正确 的ATPT树状数据结构、并且必须遍历(walk)树状数据结构,以 便执行转换和访问检查。A TP T树状数据结构的位置可能需要 一 次或 者两次访问来找到关联于BDF的树状数据结构的地址。 一旦发现, 本文档来自技高网...

【技术保护点】
一种用于在数据处理系统中管理地址转换的方法,所述地址转换用于访问由网络设备驱动器所使用的缓冲器数据结构,来与网络输入/输出(I/O)适配器通信,所述方法包括:创建缓冲器数据结构,用于存储与网络I/O适配器通信的数据;由所述设备驱动器调取设备驱动器服务,用于在与所述数据处理系统的根联合体相关联的地址转换数据结构中针对缓冲器数据结构初始化一个或者多个地址转换条目,其中所述一个或者多个地址转换条目指定从一个或者多个未转换的地址到与所述缓冲器数据结构相关联的一个或者多个已转换的地址的转换;由设备驱动器服务向所述设备驱动器提供与所述缓冲器数据结构相关联的所述一个或者多个未转换的地址;在队列数据结构中创建队列元素(QE),其中所述QE引用与所述缓冲器数据结构相关联的所述一个或者多个未转换的存储器地址的至少一个;以及由所述网络I/O适配器从所述队列数据结构获取所述QE。

【技术特征摘要】
US 2006-10-17 11/550,1911.一种用于在数据处理系统中管理地址转换的方法,所述地址转换用于访问由网络设备驱动器所使用的缓冲器数据结构,来与网络输入/输出(I/O)适配器通信,所述方法包括创建缓冲器数据结构,用于存储与网络I/O适配器通信的数据;由所述设备驱动器调取设备驱动器服务,用于在与所述数据处理系统的根联合体相关联的地址转换数据结构中针对缓冲器数据结构初始化一个或者多个地址转换条目,其中所述一个或者多个地址转换条目指定从一个或者多个未转换的地址到与所述缓冲器数据结构相关联的一个或者多个已转换的地址的转换;由设备驱动器服务向所述设备驱动器提供与所述缓冲器数据结构相关联的所述一个或者多个未转换的地址;在队列数据结构中创建队列元素(QE),其中所述QE引用与所述缓冲器数据结构相关联的所述一个或者多个未转换的存储器地址的至少一个;以及由所述网络I/O适配器从所述队列数据结构获取所述QE。2. 根据权利要求1所述的方法,其中所述队列数据结构是发送 或者接收队列数据结构中的一个,并且其中所述队列元素是发送或 者接收队列元素中的一个。3. 根据权利要求1所述的方法,其中所述设备驱动器提供在所 述数据处理系统的不受信任的逻辑分区或者系统镜像之一 中,并且 所述设备驱动器服务提供在受信任的虚拟化媒介中。4. 根据权利要求1所述的方法,进一步包括器访问(DMA )事务之前,响应于从所述队列数据结构获取所述QE, 从所述网络I/O适配器向所述根联合体发布转换请求,以获取与关联 于所述緩沖器数据结构的一个或者多个未转换的地址相对应的一个 或者多个已转换的地址。5. 根据权利要求4所述的方法,进一步包括 将与所述緩沖器数据结构相关联的一个或者多个已转换的地址存储在所述网络I/O适配器的本地存储器中。6. 根据权利要求5所述的方法,进一步包括接收所述网络I/O适配器中的数据,所述数据目标为所述緩沖器 数据结构;以及在所述D...

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

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

1
相关领域技术
  • 暂无相关专利