基于PCIe交换芯片的虚拟交换模式控制方法技术

技术编号:35561510 阅读:19 留言:0更新日期:2022-11-12 15:44
本发明专利技术公开了一种基于PCIe交换芯片的虚拟交换模式控制方法。所述虚拟交换模式控制方法包括:通过读取虚拟交换使能寄存器值,确定交换芯片在虚拟交换模式下使能的虚拟交换数量;通过读取上游端口指示寄存器的字段确定每个虚拟交换的上游端口;通过读取管理端口控制寄存器值来使能并指定管理端口;将虚拟端口向量寄存器对应的端口分配给对应的虚拟交换。在一片PCIe交换芯片上能实现多个虚拟交换,使其实现多个独立的交换机在一个物理结构内,有效的节省了板级空间和功耗。的节省了板级空间和功耗。的节省了板级空间和功耗。

【技术实现步骤摘要】
基于PCIe交换芯片的虚拟交换模式控制方法


[0001]本申请涉及网络通信
,尤其涉及基于PCIe交换芯片的虚拟交换模式控制方法。

技术介绍

[0002]高速串行计算机扩展总线标准(Peripheral Component Interconnect express,PCIe)交换器是一种基于PCIe协议规则,使用高速差分总线并采用端对端的连接方式进行数据交互的交换芯片,其支持多种数据路由方式,基于多通路的数据传递方式和基于报文的数据传送方式,使得这类芯片在军事和民用领域都有着非常广泛而重要的应用。
[0003]传统的基于PCIe的交换机芯片通常是只能支持为每个虚拟机提供独立的内存空间、中断、和直接存储器访问(Direct Memory Access,DMA),该方法只能实现多个虚拟机访问同一个PCIe设备,不能实现硬件上的多主机共享PCIe设备。目前多主机共享同一PCIe设备的方法虽然正在被逐步实现,但是无法支持在同一物理结构中划分多个相互独立的虚拟交换机的交换芯片,导致了板级空间的浪费以及相对较高的功耗。与此同时,期望或者不期望事件可以导致一个虚拟交换机中的主机挂死从而导致该虚拟交换无法再进行数据传输,从而使得该虚拟交换的下游端口以及所连接的设备都处于闲置状态,大大降低了资源的利用率。
[0004]因此,如何解决上述的问题以实现多主机系统以及主机故障备份的交换芯片是本领域技术人员目前需要解决的问题。

技术实现思路

[0005]本申请的目的在于提供基于PCIe交换芯片的虚拟交换模式控制方法,在一片PCIe交换芯片上能实现多个虚拟交换,有效分离交换芯片,使其实现多个独立的交换机在一个物理结构内,有效的节省了板级空间和功耗。
[0006]本申请实施例的第一方面提了一种基于PCIe交换芯片的虚拟交换模式控制方法,所述交换芯片具有基本模式和虚拟交换模式,所述基本模式下所述交换芯片允许工作在一个PCIe桥的层次结构,所述虚拟交换模式下所述交换芯片允许工作在多个相互独立的PCIe桥的层次结构,其中,所述交换芯片包括:多个端口,用于连接上游主机和下游设备;虚拟交换使能寄存器,用于定义虚拟交换的使能位;上游端口指示寄存器,用于指示每个虚拟交换的上游端口号;管理端口控制寄存器,用于指定或使能所述交换芯片的管理端口;以及虚拟端口向量寄存器,用于将该寄存器对应的端口分配给对应的虚拟交换;所述虚拟交换模式控制方法包括:通过读取所述虚拟交换使能寄存器值,确定所述交换芯片在虚拟交换模式下使能的虚拟交换数量;通过读取所述上游端口指示寄存器的字段确定每个所述虚拟交换的上游端口;通过读取所述管理端口控制寄存器值来使能并指定管理端口;将所述虚拟端口向量寄存器对应的端口分配给对应的所述虚拟交换。
[0007]其中一个实施例中,在所述通过读取所述管理端口控制寄存器值来使能并指定管
理端口的步骤之前的步骤中,采用EEPROM改写寄存器的值,所述EEPROM设备内部包括所述交换芯片的虚拟交换表信息。
[0008]其中一个实施例中,在所述通过读取所述管理端口控制寄存器值来使能并指定管理端口的步骤之前的步骤中,采用I2C或UART的方式改写寄存器的值,I2C或UART所配置的内容包含所述交换芯片的虚拟交换表信息。
[0009]其中一个实施例中,在所述通过读取所述管理端口控制寄存器值来使能并指定管理端口的步骤之前的步骤中,采用管理端口改写寄存器的值,管理端口通过配置寄存器来确定每个虚拟交换的端口分配情况。
[0010]其中一个实施例中,所述管理端口分为活跃管理端口和备用管理端口,当所述交换芯片指定某个端口为管理端口且该管理端口使能后,该管理端口用于控制所述交换芯片,当该管理端口连接的主机发生故障时,备用管理端口提升为新的管理端口;所述管理端口可以访问所述交换芯片的所有寄存器,并用于实现以下功能:配置虚拟交换,包括指定虚拟交换机的上游端口和所属的下游端口;将端口由一个虚拟交换搬迁到另一个虚拟交换;监控所有虚拟交换的链路状态;配置交换芯片的寄存器;采用软件读写EEPROM、配置扩展ROM功能的寄存器设置。
[0011]其中一个实施例中,所述交换芯片还具有故障备份功能,所述交换芯片还具有故障备份功能,所述交换芯片在故障备份的过程中多个所述虚拟交换及其对应的端口会进行重新配置,包括:重分配下游端口、下游设备的突然迁移、重分配上游端口、上游端口的突然迁移以及管理端口的转移。
[0012]其中一个实施例中,当所述交换芯片连接的上游主机发生故障时,故障备份的过程包括:中断上报给所述管理端口对应的上游主机故障发生;所述管理端口通过配置直接禁用发生故障的上游主机的下游端口来停止所述下游端口新事务的出现,并上报发生故障的上游主机所连接的上游端口处于空闲状态;根据管理指令,移除需要重分配的上游端口所连接的上游主机,并发送热复位到所有属于该上游端口结构下的所有端口,或将需要重分配的上游端口所管理的所有端口进行重新分配。
[0013]其中一个实施例中,当所述活跃管理端口发生故障,故障备份的过程包括:在所述备用管理端口确认当前的活跃管理端口不再活跃时,所述备用管理端口将所述管理端口控制寄存器的备用管理端口字段和活跃管理端口字段的内容进行调换,并始终保持使能活跃管理端口控制位和使能备用管理端口控制位有效;所述备用管理端口取代原来的活跃管理端口,完成故障转移,并读取相应寄存器,来确定是否有活跃中断需要处理,并通知其它上游主机提升了一个新的活跃管理端口。
[0014]其中一个实施例中,当所述交换芯片连接的上游主机发生故障时,由非透明桥端口连接的主机取代发生故障的主机,其过程包括:通过管理端口写所述非透明桥端口的端口向量寄存器,从原始虚拟交换层次结构中移除非透明桥端口,然后再次写所述端口向量寄存器添加非透明桥端口到故障虚拟交换机;非透明桥端口写故障转移寄存器来重新指定当前虚拟交换的上游端口并映射到对应的寄存器,将自身设置为上游端口,把故障上游端口设置为下游端口或新的非透明桥端口,完成故障主机向所述非透明桥端口连接的主机的故障转移。
[0015]本申请实施例的第二方面还公开了一种计算机可读存储介质,其上存储有计算机
程序,该程序被处理器执行时实现如本申请实施例第一方面提供的基于PCIe交换芯片的虚拟交换模式控制方法的步骤。
[0016]本专利技术实施例与现有技术相比存在的有益效果是:公开了一种允许一个(基本模式)或多个相互独立的(虚拟交换模式)PCIe桥的层次结构。在虚拟交换模式下,交换芯片最多可以同时创建多个虚拟交换机,允许每个主机扇出各自的端点,并且该系统支持高的可用性、故障备份、冗余结构和集群系统。虚拟交换机主机之间没有数据通路。虚拟交换模式有效分离交换芯片,使其看起来像多个独立的交换机却又在一个物理结构内,这样减少了扇出所需的交换机数量,有效的节省了板级空间和功耗。
附图说明
[0017]图1为交换芯片使能不同虚拟交换的示意图;
[0018]图2为本申请一实施例提供的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于PCIe交换芯片的虚拟交换模式控制方法,所述交换芯片具有基本模式和虚拟交换模式,所述基本模式下所述交换芯片允许工作在一个PCIe桥的层次结构,所述虚拟交换模式下所述交换芯片允许工作在多个相互独立的PCIe桥的层次结构,其中,所述交换芯片包括:多个端口,用于连接上游主机和下游设备;虚拟交换使能寄存器,用于定义虚拟交换的使能位;上游端口指示寄存器,用于指示每个虚拟交换的上游端口号;管理端口控制寄存器,用于指定或使能所述交换芯片的管理端口;以及虚拟端口向量寄存器,用于将该寄存器对应的端口分配给对应的虚拟交换;所述虚拟交换模式控制方法包括:通过读取所述虚拟交换使能寄存器值,确定所述交换芯片在虚拟交换模式下使能的虚拟交换数量;通过读取所述上游端口指示寄存器的字段确定每个所述虚拟交换的上游端口;通过读取所述管理端口控制寄存器值来使能并指定管理端口;将所述虚拟端口向量寄存器对应的端口分配给对应的所述虚拟交换。2.如权利要求1所述的虚拟交换模式控制方法,其特征在于,在所述通过读取所述管理端口控制寄存器值来使能并指定管理端口的步骤之前的步骤中,采用EEPROM改写寄存器的值,所述EEPROM设备内部包括所述交换芯片的虚拟交换表信息。3.如权利要求1所述的虚拟交换模式控制方法,其特征在于,在所述通过读取所述管理端口控制寄存器值来使能并指定管理端口的步骤之前的步骤中,采用I2C或UART的方式改写寄存器的值,I2C或UART所配置的内容包含所述交换芯片的虚拟交换表信息。4.如权利要求1所述的虚拟交换模式控制方法,其特征在于,在所述通过读取所述管理端口控制寄存器值来使能并指定管理端口的步骤之前的步骤中,采用管理端口改写寄存器的值,管理端口通过配置寄存器来确定每个虚拟交换的端口分配情况。5.如权利要求1所述的虚拟交换模式控制方法,其特征在于,所述管理端口分为活跃管理端口和备用管理端口,当所述交换芯片指定某个端口为管理端口且该管理端口使能后,该管理端口用于控制所述交换芯片,当该管理端口连接的主机发生故障时,备用管理端口提升为新的管理端口;所述管理端口可以访问所述交换芯片的所有寄存器,并用于实现以下功能:配置虚拟交换,包括指定虚拟交换机的上游端口和所属的下游端口;将端口由一个虚拟交换搬迁到另一个虚拟交换;监控所有虚拟交换的链路状态...

【专利技术属性】
技术研发人员:祝红彬吕骏华朱喜高昌垒
申请(专利权)人:深圳市国微电子有限公司
类型:发明
国别省市:

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

1