[发明专利]基于PCIe总线的数据传输方法和装置有效
申请号: | 201410647345.6 | 申请日: | 2014-11-14 |
公开(公告)号: | CN105653481B | 公开(公告)日: | 2019-03-26 |
发明(设计)人: | 侯新宇;俞洲;林沐晖 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F13/38 | 分类号: | G06F13/38;G06F13/42 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 罗振安 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 pcie 总线 数据传输 方法 装置 | ||
本发明公开了一种基于PCIe总线的数据传输方法和装置,属于通信技术领域。所述方法包括:NTB接收请求设备发送的请求TLP,请求TLP包括Requester ID字段、Tag字段和地址字段,Requester ID字段携带请求设备的总线号、设备号和功能号,地址字段用于指示目标设备的地址,Requester ID字段携带请求设备的总线号、设备号和功能号,请求设备和目标设备分别在通过NTB连接的第一、二PCIe总线域;采用NTB在第二PCIe总线域中的总线号、设备号和功能号替换请求TLP中的请求设备的总线号、设备号和功能号,并发送给目标设备。本发明通过将请求TLP中的请求设备的总线号、设备号和功能号分别替换为NTB在第二PCIe总线域中的总线号、设备号和功能号,当IOMMU对请求TLP进行合法性检测时,不会再引起错误。
技术领域
本发明涉及通信技术领域,特别涉及一种基于PCIe总线的数据传输方法和装置。
背景技术
外围设备高速互连(Peripheral Component Interconnect Express,简称“PCIe”)为总线和接口标准。在处理器系统中,PCIe总线属于局部总线,主要用于连接外部设备。在一个处理器系统中,PCIe设备使用独立的地址空间,即PCIe总线的地址空间,也称为PCIe总线域。处理器可以通过根联合体(Root Complex,简称“RC”)访问RC所属的PCIe总线域中的PCIe设备,该RC所属的PCIe总线域中的PCIe设备也可以通过RC访问主存储器。在包括多个处理器系统的计算机系统中,可以采用PCIe非透明桥(Non-TransparentBridging,简称“NTB”)将不同的PCIe总线域的地址空间进行隔离,以连接不同的处理器系统,此时该NTB同时作为与其连接的两个PCIe总线域的PCIe设备。一个处理器系统中的处理器可以通过NTB访问另一个处理器系统中的处理器或者另一个处理器系统的PCIe总线域中的PCIe设备。
当一个处理器系统中的处理器(简称为第一处理器)通过NTB访问另一个处理器系统中的处理器(简称为第二处理器)时,例如,第一处理器想读取第二处理器管理的存储器中的数据时,NTB会对第一处理器发送的存储器读请求事务层包(Transaction LayerPacket,简称“TLP”)中的请求者身份标识Requester ID(即第一处理器的RC在第一PCIe总线域中的ID)进行转换,以满足第二PCIe总线域中的地址空间的要求。
现有技术中,提供了一种NTB对Requester ID进行转换的方法,以存储器读请求TLP为例,当NTB接收到第一处理器发送的存储器读请求TLP时,先在显示查找表(Look-UpTable,简称“LUT”)中建立索引,并将该存储器读请求TLP中的Requester ID1的中的BusNumber1和Device Number1以该索引对应的表项内容保存在LUT中,再将该存储器读请求TLP中的Bus Number1修改为NTB在第二处理器对应的PCIe总线域中的Bus Number2,将Device Number1修改为LTU的索引值,Function Number1保持不变,然后将修改后的存储器读请求TLP发送给第二处理器。
当第二处理器中的输入输出存储管理单元(input/output memory managementunit,简称“IOMMU”)开启时,会对存储器读请求TLP进行合法性检测,由于现有的NTB对存储器读请求TLP进行转换时,其Requester ID中只有Bus Number采用了NTB在第二PCIe总线域中的Bus Number,而Device Number为LUT的索引值,Function Number为NTB在第一PCIe总线域中的Function Number,在IOMMU查询的页表结构中并不存在这样的Requester ID对应的PCIe设备(说明该读请求TLP不合法),因此,会引起IOMMU错误,例如不支持的请求等,导致IOMMU无法正常工作。
发明内容
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410647345.6/2.html,转载请声明来源钻瓜专利网。