logo好方法网

一种透明桥和非透明桥功能可选的PCIE交换器及多主机系统


技术摘要:
本发明公开了一种透明桥和非透明桥功能可选的PCIE交换器及多主机系统,PCIE交换器包括透明桥、第一选择器、第二选择器、第三选择器以及非透明桥,第一选择器的固定端口作为上游端口,第一选择器的选择端口分别与透明桥的上游端口、第二选择器的一个选择端口相连,第二  全部
背景技术:
高速外围组件互联PCI-Express(Peripheral  Component  Interconnect  Express,简称PCIE)是一种高速串行计算机扩展总线标准,PCIE设备可分为三种类型:根复 合体、SWITCH和端点设备(Endpoint)。典型的PCIE树形拓扑如图1所示,在树形拓扑中只有 一个根复合体,它负责发现整个拓扑的结构,包括其中的总线和各节点设备,并分配对应的 总线号和地址空间。PCIE  SWITCH内部包含多个PCI-PCI桥,这些PCI-PCI桥通常被称为透明 桥。 近年,分布式系统得到广泛发展,多主机系统可以提供高带宽的同时,还能提供更 好的稳定行。但是,PCIE协议中树形拓扑中只有一个根复合体的规定,是得传统PCIE  SWITCH不能友好地构建多主机系统,从而需要在SWITCH中实现非透明桥,用来隔离多个主 机系统地地址空间。非透明桥通过假装成Endpoint,向两个主机端暴露的是Type0型地配置 空间,那么两边的枚举软件就会把非透明桥都当作是拓扑中的叶节点,即两个主机系统都 看不到对方拓扑中的设备了,从而达到被隔离的目的。同时非透明桥还利用Type0配置头中 的BAR寄存器对双向的请求进行地址和ID转换,将这些请求的发起者从主机系统转换为非 透明桥,然后在另一个主机系统中进行路由,这样就实现两个主机系统之间地址空间共享。 PCIE协议定义了三种路由方式:地址路由;ID路由和隐式路由。其中ID的含义是节 点编号,有该节点的BUS号、DEV号和FUNC号组成,通常也记为BDF。PCIE协议还定义四种事 务:存储读写;IO读写;配置读写;消息。MEM读写和IO读写是地址路由,配置读写和完成报文 是ID路由,消息通常是隐式路由。非透明桥要实现两个主机系统之间的交互,就必须支持上 述四种报文的转换处理。在SWITCH非透明桥的系统架构中,主机系统可以连接在非透明桥 的端口上。这种架构的应用场景可以是两个主机系统交换内存数据,也可以是非透明端口 的主机系统与另一个地址域的设备进行数据交换。这两种应用场景对系统架构的需求是不 一样的,与不在本拓扑树上的设备交换数据,那么必须要有访问这些设备的路径,也就是转 换后的请求也要能上SWITCH内部的虚拟总线。这些访问也是延迟敏感的,当然,这种敏感在 内存数据交换应用中更突出。 综述所述,PCIE  SWITCH中非透明桥的结构需要面向上述两种应用场景,完成各类 请求的转换和地址空间共享。
技术实现要素:
本发明要解决的技术问题:针对现有技术的上述问题,提供一种透明桥和非透明 桥功能可选的PCIE交换器及多主机系统,本发明能够实现透明桥和非透明桥功能可选,实 现地址路由和ID路由兼容。 5 CN 111597135 A 说 明 书 2/10 页 为了解决上述技术问题,本发明采用的技术方案为: 一种透明桥和非透明桥功能可选的PCIE交换器,包括透明桥,还包括第一选择器、第二 选择器、第三选择器以及非透明桥,所述第一选择器的固定端口作为PCIE交换器的上游端 口,所述第一选择器的选择端口分别与透明桥的上游PCI-PCI桥的上游端口、第二选择器的 一个选择端口相连,所述第二选择器的选择端口与透明桥的一个下游PCI-PCI桥的下游端 口相连,所述第二选择器的固定端口分为两路且其中一路串接非透明桥后与第三选择器的 一个选择端口相连、另一路作为非透明桥的旁路通道与第三选择器的另一个选择端口相 连,第三选择器的固定端口作为PCIE交换器的一个下游端口。 可选地,所述非透明桥包括上游端点设备模块UEP、下游端点设备模块DEP、门铃寄 存器模块以及便签寄存器模块,所述上游端点设备模块UEP和下游端点设备模块DEP之间并 联有四条通路:第一条通路包括出站地址转换模块、出站请求报文ID转换模块;第二条通路 包括响应出站请求完成报文ID转换模块;第三条通路包括响应入站请求完成报文ID转换模 块;第四条通路包括入站地址转换模块、入站请求报文ID转换模块;所述上游端点设备模块 UEP上游方向与第二选择器的固定端口相连、下游方向分别与出站地址转换模块、响应出站 请求完成报文ID转换模块、响应入站请求完成报文ID转换模块、入站请求报文ID转换模块、 门铃寄存器模块、便签寄存器模块相连,所述上游端点设备模块UEP、下游端点设备模块DEP 为标准PCIE端点设备。 可选地,所述上游端点设备模块UEP中带有多个基地址寄存器,用于分配连接在 PCIE交换器的上游端口的第一系统中的配置、IO地址和内存空间;所述下游端点设备模块 DEP中带有多个基地址寄存器,用于分配连接在PCIE交换器的上游端口的第二系统中的配 置、IO地址和内存空间;所述出站地址转换模块、入站地址转换模块用于实现第一系统、第 二系统之间的IO地址和内存空间的地址空间转换,所述出站请求报文ID转换模块、入站请 求报文ID转换模块用于实现第一系统、第二系统之间的请求报文ID转换,所述响应出站请 求完成报文ID转换模块、响应入站请求完成报文ID转换模块用于实现第一系统、第二系统 之间的响应出站请求完成报文或响应入站请求完成报文的ID转换。 可选地,出站地址转换模块实现第一系统、第二系统之间的IO地址和内存空间的 地址空间转换的详细步骤包括:出站地址转换模块对收到的来自第一系统请求报文的地址 域进行基地址寄存器中的基地址匹配,如果匹配上了,就将报文地址域的偏移和基地址转 换寄存器的基地址重新组合成第二系统地址域里的地址,所述基地址转换寄存器里保存的 是第二系统域里的基地址,如果没有匹配上,就直接丢弃或指示上游端点设备模块UEP返回 不支持该请求;所述入站地址转换模块实现第一系统、第二系统之间的IO地址和内存空间 的地址空间转换的详细步骤包括:入站地址转换模块对收到的来自第二系统请求报文的地 址域进行基地址寄存器中的基地址匹配,如果匹配上了,就将报文地址域的偏移和基地址 转换寄存器的基地址重新组合成第一系统地址域里的地址,所述基地址转换寄存器里保存 的是第一系统域里的基地址,如果没有匹配上,就直接丢弃或指示下游端点设备模块DEP返 回不支持该请求。 可选地,所述出站请求报文ID转换模块有一个全局表,全局表需要在第一系统枚 举配置完成之后,且在第一系统发出请求之前被初始化完毕,该表需要设计8项,每项有4个 字段:INDEX字段、Bus字段、Dev字段和Func字段,其中Func字段为第一系统域的功能号, 6 CN 111597135 A 说 明 书 3/10 页 INDEX字段为第一系统域的功能号对应的第二系统域的功能号,Bus字段用于记录总线号, Dev字段用于记录设备号,长度分别为3位、8位、5位和3位;出站请求报文ID转换模块收到第 一系统域请求报文ID={FBus,FDev,FFunc}后,其中FBus表示总线号,FDev表示设备号, FFunc表示功能号;首先将第一系统域请求报文的请求ID采用内容匹配查找方式查找全局 表,FBus用于匹配Bus字段、FDev用于匹配Dev字段、FFunc用于匹配Func字段,如果没有命中 全局表中的任意一项,则返回不支持该请求;则将请求ID的FFunc字段用命中表项的INDEX 字段替代,使得命中表项的INDEX字段为转换后的第二系统请求报文的请求ID的新FFunc字 段,同时将请求ID的FDev字段使用下游端点设备模块DEP捕获的第二系统的设备号DEPDev 替代、请求ID的FBus字段使用下游端点设备模块DEP捕获的第二系统的设备号DEPBus替代, 从而得到转换到第二系统域的请求报文ID={DEPBus,DEPDev,INDEX}。 可选地,响应入站请求完成报文ID转换模块实现第一系统、第二系统之间的响应 入站请求完成报文的ID转换时,接收来自第二系统域的响应入站请求完成报文ID= {DEPBus,DEPDev,INDEX},利用其中的INDEX字段访问出站请求报文ID转换模块的全局表, 读出命中表项的Bus字段、Dev字段和Func字段,并将其填入转换后的进入第一系统的响应 入站请求完成报文ID={Bus,Dev,Func}。 可选地,所述入站请求报文ID转换模块有一个全局表,全局表需要在第一系统枚 举配置完成之后,且在第二系统发出请求之前被初始化完毕,该表需要设计8项,每项有4个 字段:INDEX字段、Bus字段、Dev字段和Func字段,其中Func字段为第二系统域的功能号, INDEX字段为第二系统域的功能号对应的第一系统域的功能号,Bus字段用于记录总线号, Dev字段用于记录设备号,长度分别为3位、8位、5位和3位;出站请求报文ID转换模块收到第 二系统域请求报文ID={FBus,FDev,FFunc}后,其中FBus表示总线号,FDev表示设备号, FFunc表示功能号;首先将第二系统域请求报文的请求ID采用内容匹配查找方式查找全局 表,FBus用于匹配Bus字段、FDev用于匹配Dev字段、FFunc用于匹配Func字段,如果没有命中 全局表中的任意一项,则返回不支持该请求;则将请求ID的FFunc字段用命中表项的INDEX 字段替代,使得命中表项的INDEX字段为转换后的第一系统请求报文的请求ID的新FFunc字 段,同时将请求ID的FDev字段使用上游端点设备模块UEP捕获的第一系统的设备号DEPDev 替代、请求ID的FBus字段使用下游端点设备模块DEP捕获的第一系统的设备号DEPBus替代, 从而得到转换到第一系统域的请求报文ID={DEPBus,DEPDev,INDEX}。 可选地,响应出站请求完成报文ID转换模块实现第一系统、第二系统之间的响应 出站请求完成报文的ID转换时,接收来自第一系统域的响应入站请求完成报文ID= {DEPBus,DEPDev,INDEX},利用其中的INDEX字段访问入站请求报文ID转换模块的全局表, 读出命中表项的Bus字段、Dev字段和Func字段,并将其填入转换后的进入第二系统的响应 入站请求完成报文ID={Bus,Dev,Func}。 可选地,所述门铃寄存器模块包含一组寄存器,用来第一系统和第二系统之间传 递中断,所述门铃寄存器模块的寄存器包括:第一系统中断状态寄存器、第一系统中断请求 寄存器、第一系统中断掩饰置位寄存器、第一系统中断掩饰清零寄存器、第二系统中断状态 寄存器、第二系统中断请求寄存器、第二系统中断掩饰置位寄存器、第二系统中断掩饰清零 寄存器,上述每个寄存器可被第一系统和第二系统通过内存地址或IO地址空间访问它们, 只要请求寄存器有位被置起,且没有被掩饰(mask),那么就输出有效中断;如果请求位被清 7 CN 111597135 A 说 明 书 4/10 页 掉了,或是被掩饰了,那么就将中断无效;便签寄存器模块也包含一组寄存器,第一系统和 第二系统都可通过内存地址或IO地址空间访问它们,可读可写,这组寄存器用于传递控制、 状态信息,或单纯作为读写状态寄存器。 此外,本发明还提供一种多主机系统,至少包括第一系统、第二系统,所述第一系 统、第二系统之间通过PCIE交换器相连,所述PCIE交换器为前述的透明桥和非透明桥功能 可选的PCIE交换器。 和现有技术相比,本发明具有下述优点:本发明包括透明桥、第一选择器、第二选 择器、第三选择器以及非透明桥,第一选择器的固定端口作为PCIE交换器的上游端口,第一 选择器的选择端口分别与透明桥的上游PCI-PCI桥的上游端口、第二选择器的一个选择端 口相连,第二选择器的选择端口与透明桥的一个下游PCI-PCI桥的下游端口相连,第二选择 器的固定端口分为两路且其中一路串接非透明桥后与第三选择器的一个选择端口相连、另 一路作为非透明桥的旁路通道与第三选择器的另一个选择端口相连,第三选择器的固定端 口作为PCIE交换器的一个下游端口,本发明能够实现透明桥和非透明桥功能可选,实现地 址路由和ID路由兼容,能够适应两个主机系统交换内存数据、非透明端口的主机系统与另 一个地址域的设备进行数据交换这两种典型的应用场景完成各类请求的转换和地址空间 共享。 附图说明 图1为现有技术的PCIE透明桥SWITCH系统结构示意图。 图2为本发明实施例中PCIE交换器的结构示意图。 图3为本发明实施例中地址转换的实现方式示意图。 图4为本发明实施例中ID转换的实现方式示意图。
下载此资料需消耗2积分,
分享到:
收藏