The invention relates to a PCIe switch and an endpoint address space allocation method. During traversing a virtual PCI bridge, a virtual endpoint is set up under a downstream virtual PCI bridge which has not found a connection endpoint device, and the virtual endpoint is added to the downstream virtual PCI bridge link to form a system topology node including a virtual endpoint. In order to achieve the fixed address space allocated by the effective endpoints of the downstream virtual PCI bridges regardless of the number, type and location of the system endpoints, the fixed address space allocated by the effective endpoints of the downstream virtual PCI bridges is set for all virtual PCI bridges under the system extension link, which solves the problem caused by the current automatic allocation of PCIe peripheral addresses. Unified programming is difficult and there are problems such as system external address access error, memory tampering and other hidden problems.
【技术实现步骤摘要】
一种PCIe交换机及其端点地址空间分配方法
本专利技术属于PCIe交换机接口扩展
,具体涉及一种PCIe交换机及其端点地址空间分配方法。
技术介绍
PCIe总线基于点到点拓扑结构,只有使用交换机才能对PCIe链路进行扩展,通过交换机扩展出的PCIe链路可以继续挂接EP(外部设备)或者其他交换机。而每扩展一条PCIe链路将产生一个新的PCIe总线号。每个PCIe设备/桥都会用总线号、设备号、功能号这一组合来进行编号,称为端点ID信息。如图1所示,基于PCIe交换机链路扩展的系统中交换机(Switch)可以看作为虚拟PCI桥、虚拟Bus的集合体,该设备由一个上游端口和多个下游端口组成。在这种架构的系统中,如果所有设备都使用厂商预设的配置空间,会引起PCIe设备所映射的地址空间冲突,造成系统异常。为避免各PCIe设备的资源冲突,操作系统必须为所有PCIe设备统一分配地址空间。目前,嵌入式系统对PCIe设备的地址分配主要通过操作系统自动配置,这种方法根据系统中实际存在的设备进行PCIe外设地址空间分配。然而,在由交换机实现链路扩展的多端点系统中,扩展链路下接入端点的数目不定、类型不同且位置也不定,如果由系统自动分配外设地址空间,会使得系统中各下游虚拟PCI桥(即下游端口对应的虚拟PCI桥)下接入端点的Bar空间起始地址不固定,各下游虚拟PCI桥的下辖外设地址空间也不确定,这样,不仅增加系统复杂性,造成统一编程困难,还存在系统外设地址访问出错、内存篡改等隐患。
技术实现思路
本专利技术的目的是提供一种PCIe交换机及其端点地址空间分配方法,用于解决目前自动分配PC ...
【技术保护点】
1.一种PCIe交换机的端点地址空间分配方法,其特征在于,包括以下步骤:1)遍历PCIe交换机的扩展链路中所有虚拟PCI桥,当扩展链路中下游端口对应的虚拟PCI桥下未发现有效端点时,添加虚拟端点到该虚拟PCI桥下,并将虚拟端点拓展到PCIe交换机的系统拓扑结构中;2)为所有虚拟PCI桥配置固定间隔的下辖外设地址空间,为各虚拟PCI桥的有效端点和虚拟端点分配固定的地址空间。
【技术特征摘要】
1.一种PCIe交换机的端点地址空间分配方法,其特征在于,包括以下步骤:1)遍历PCIe交换机的扩展链路中所有虚拟PCI桥,当扩展链路中下游端口对应的虚拟PCI桥下未发现有效端点时,添加虚拟端点到该虚拟PCI桥下,并将虚拟端点拓展到PCIe交换机的系统拓扑结构中;2)为所有虚拟PCI桥配置固定间隔的下辖外设地址空间,为各虚拟PCI桥的有效端点和虚拟端点分配固定的地址空间。2.根据权利要求1所述的PCIe交换机的端点地址空间分配方法,其特征在于,为所述下游端口对应的虚拟PCI桥配置固定间隔的下辖外设地址空间包括以下步骤:分别将各虚拟PCI桥下有效端点的所需地址空间的长度和预设固定间隔的长度进行比较,当比较的结果为固定间隔的长度大于或等于所需地址空间的长度时,则设置该虚拟PCI桥的下辖外设地址空间长度为所述固定间隔的长度;当比较的结果为所需地址空间的长度大于固定间隔的长度时,则将固定间隔的长度更新设置为所需地址空间的长度。3.根据权利要求1所述的PCIe交换机的端点地址空间分配方法,其特征在于,各下游端口对应的虚拟PCI桥配置固定间隔的下辖外设地址空间的起始地址,与该虚拟PCI桥下的有效端点或虚拟端点的起始地址相同。4.根据权利要求3所述的PCIe交换机的端点地址空间分配方法,其特征在于,各下游端口对应的虚拟PCI桥配置固定间隔的下辖外设地址空间的起始地址计算公式为:Pcie_Mem_Pre(Number)=Pcie_Mem_Adrs+Number*Fixed_Space式中,Pcie_Mem_Pre(Number)为所求各下游端口对应的虚拟PCI桥配置固定间隔的下辖外设地址空间的起始地址,Number为下游端口对应的虚拟PCI桥的编号,Number=0,1,2...n,Pcie_Mem_Adrs为驱动中配置的系统PCIe空间起始地址,Fixed_Space为所述固定间隔。5.根据权利要求2所述的PCIe交换机的端点地址空间分配方法...
【专利技术属性】
技术研发人员:张健,杨亚璞,曾丽丽,刘威鹏,岳亚菲,李跃鹏,于海,董春晨,李二玉,付庆钊,刘海斌,郭虎锋,
申请(专利权)人:许继电气股份有限公司,许继集团有限公司,国家电网有限公司,
类型:发明
国别省市:河南,41
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。