CN108777634A - 一种PCIe交换机及其端点地址空间分配方法 - Google Patents

一种PCIe交换机及其端点地址空间分配方法 Download PDF

Info

Publication number
CN108777634A
CN108777634A CN201810509026.7A CN201810509026A CN108777634A CN 108777634 A CN108777634 A CN 108777634A CN 201810509026 A CN201810509026 A CN 201810509026A CN 108777634 A CN108777634 A CN 108777634A
Authority
CN
China
Prior art keywords
virtual
endpoint
pci bridge
address space
under
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201810509026.7A
Other languages
English (en)
Other versions
CN108777634B (zh
Inventor
张健
杨亚璞
曾丽丽
刘威鹏
岳亚菲
李跃鹏
于海
董春晨
李二玉
付庆钊
刘海斌
郭虎锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
State Grid Corp of China SGCC
Xuji Group Co Ltd
XJ Electric Co Ltd
Original Assignee
State Grid Corp of China SGCC
Xuji Group Co Ltd
XJ Electric Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by State Grid Corp of China SGCC, Xuji Group Co Ltd, XJ Electric Co Ltd filed Critical State Grid Corp of China SGCC
Priority to CN201810509026.7A priority Critical patent/CN108777634B/zh
Publication of CN108777634A publication Critical patent/CN108777634A/zh
Application granted granted Critical
Publication of CN108777634B publication Critical patent/CN108777634B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/40Constructional details, e.g. power supply, mechanical construction or backplane
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation

Abstract

本发明涉及一种PCIe交换机及其端点地址空间分配方法,在遍历虚拟PCI桥的过程中,通过在未发现连接端点设备的下游虚拟PCI桥下设置虚拟端点,并将虚拟端点添加到该下游虚拟PCI桥的链路下,形成包括有虚拟端点的系统拓扑结构,并为系统扩展链路下所有虚拟PCI桥设置固定间隔的下辖外设地址空间,以实现无论系统端点数目、类型、位置发生何种改变,各下游虚拟PCI桥下接入的有效端点分配的地址空间固定,解决了目前自动分配PCIe外设地址造成的统一编程困难及存在系统外设地址访问出错、内存篡改等隐患的问题。

Description

一种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交换机及其端点地址空间分配方法,用于解决目前自动分配PCIe外设地址而造成统一编程困难及存在系统外设地址访问出错、内存篡改等隐患的问题。
为解决上述技术问题,本发明提出一种PCIe交换机的端点地址空间分配方法,包括以下步骤:
1)遍历PCIe交换机的扩展链路中所有虚拟PCI桥,当扩展链路中下游端口对应的虚拟PCI桥下未发现有效端点时,添加虚拟端点到该虚拟PCI桥下,并将虚拟端点拓展到PCIe交换机的系统拓扑结构中;
2)为所有虚拟PCI桥配置固定间隔的下辖外设地址空间,为各虚拟PCI桥的有效端点和虚拟端点分配固定的地址空间。
本发明在遍历虚拟PCI桥过程中,通过在未发现连接端点设备的下游虚拟PCI桥下设置虚拟端点,并将虚拟端点添加到该下游虚拟PCI桥的链路下,形成包括有虚拟端点的系统拓扑结构,并为系统扩展链路下所有虚拟PCI桥设置固定间隔的下辖外设地址空间,以实现无论系统端点数目、类型、位置发生何种改变,各下游虚拟PCI桥下接入的有效端点分配的地址空间固定。
作为PCIe交换机中各下游端口对应的虚拟PCI桥配置固定间隔的下辖外设地址空间的进一步限定,分别将各虚拟PCI桥下有效端点的所需地址空间的长度和预设固定间隔的长度进行比较,当比较的结果为固定间隔的长度大于或等于所需地址空间的长度时,则设置该虚拟PCI桥的下辖外设地址空间长度为所述固定间隔的长度;当比较的结果为所需地址空间的长度大于固定间隔的长度时,则将固定间隔的长度更新设置为所需地址空间的长度。
进一步,所述扩展链路中上游端口对应的虚拟PCI桥的下辖外设地址空间为所有下游端口对应的虚拟PCI桥的下辖外设地址空间的总和。
进一步,各下游端口对应的虚拟PCI桥配置固定间隔的下辖外设地址空间的起始地址,与该虚拟PCI桥下的有效端点或虚拟端点的起始地址相同。具体的,各下游端口对应的虚拟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为所述固定间隔。
作为所述有效端点和虚拟端点的进一步限定,一个下游端口对应的虚拟PCI桥最多接入一个有效端点,一个下游端口对应的虚拟PCI桥最多接入一个虚拟端点。
进一步,添加虚拟端点后,将虚拟PCI桥的虚拟端点的端点ID信息添加到设备ID表中,用于拓展系统拓扑结构,所述设备ID表为系统拓扑结构中的所有设备的端点ID信息的链表。
进一步,为下一个有效端点或虚拟端点分配地址空间前,比较剩余外设地址空间和待分配的地址空间的大小,当剩余外设地址空间小于待分配的地址空间时,发出报错信息。
为解决上述技术问题,本发明还提出一种PCIe交换机,PCIe交换机用于进行端点地址空间分配,包括以下步骤:
1)遍历PCIe交换机的扩展链路中所有虚拟PCI桥,当扩展链路中下游端口对应的虚拟PCI桥下未发现有效端点时,添加虚拟端点到该虚拟PCI桥下,并将虚拟端点拓展到PCIe交换机的系统拓扑结构中;
2)为所有虚拟PCI桥配置固定间隔的下辖外设地址空间,为各虚拟PCI桥的有效端点和虚拟端点分配固定的地址空间。
作为PCIe交换机中各下游端口对应的虚拟PCI桥配置固定间隔的下辖外设地址空间的进一步限定,分别将各虚拟PCI桥下有效端点的所需地址空间的长度和预设固定间隔的长度进行比较,当比较的结果为固定间隔的长度大于或等于所需地址空间的长度时,则设置该虚拟PCI桥的下辖外设地址空间长度为所述固定间隔的长度;当比较的结果为所需地址空间的长度大于固定间隔的长度时,则将固定间隔的长度更新设置为所需地址空间的长度。
进一步,所述扩展链路中上游端口对应的虚拟PCI桥的下辖外设地址空间为所有下游端口对应的虚拟PCI桥的下辖外设地址空间的总和。
进一步,各下游端口对应的虚拟PCI桥配置固定间隔的下辖外设地址空间的起始地址,与该虚拟PCI桥下的有效端点或虚拟端点的起始地址相同。具体的,各下游端口对应的虚拟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为所述固定间隔。
作为所述有效端点和虚拟端点的进一步限定,一个下游端口对应的虚拟PCI桥最多接入一个有效端点,一个下游端口对应的虚拟PCI桥最多接入一个虚拟端点。
进一步,添加虚拟端点后,将虚拟PCI桥的虚拟端点的端点ID信息添加到设备ID表中,用于拓展系统拓扑结构,所述设备ID表为系统拓扑结构中的所有设备的端点ID信息的链表。
进一步,为下一个有效端点或虚拟端点分配地址空间前,比较剩余外设地址空间和待分配的地址空间的大小,当剩余外设地址空间小于待分配的地址空间时,发出报错信息。
附图说明
图1是现有技术中基于PCIe交换机的系统拓扑结构图;
图2是本发明含有虚拟端点的系统拓扑结构图;
图3是含有虚拟端点的系统拓扑结构获取流程图;
图4是本发明的外设地址空间的固定分配图;
图5是本发明的外设地址空间固定分配流程图。
具体实施方式
下面结合附图对本发明的具体实施方式作进一步的说明。
本发明的基于PCIe交换机的端点地址空间分配方法的实施例,包括以下步骤:
1)遍历PCIe交换机的扩展链路中所有虚拟PCI桥,当虚拟PCI桥连接有端点设备时,将连接该端点设备的端点为虚拟PCI桥的有效端点,当扩展链路中下游端口对应的虚拟PCI桥下未发现有效端点时,添加虚拟端点到该虚拟PCI桥下,并将虚拟端点拓展到PCIe交换机的系统拓扑结构中;
2)为所有虚拟PCI桥配置固定间隔的下辖外设地址空间,为各虚拟PCI桥的有效端点和虚拟端点分配固定的地址空间。
本发明在遍历虚拟PCI桥过程中,在未发现连接任何端点设备的下游虚拟PCI桥下设置虚拟端点,并将虚拟端点添加到该下游虚拟PCI桥的链路下,形成包括有虚拟端点的系统拓扑结构,并为系统扩展链路下所有虚拟PCI桥设置固定间隔的下辖外设地址空间,以实现无论系统端点数目、类型、位置发生何种改变,各下游虚拟PCI桥下接入的有效端点分配的地址空间固定。
作为PCIe交换机中各下游虚拟PCI桥配置固定间隔的下辖外设地址空间的进一步限定,分别将各虚拟PCI桥下有效端点的所需地址空间的长度和预设固定间隔的长度进行比较,当比较的结果为固定间隔的长度大于或等于所需地址空间的长度时,则设置该虚拟PCI桥的下辖外设地址空间长度为固定间隔的长度;当比较的结果为所需地址空间的长度大于固定间隔的长度时,则将固定间隔的长度更新设置为所需地址空间的长度。
进一步,扩展链路中上游端口对应的虚拟PCI桥的下辖外设地址空间为所有下游虚拟PCI桥的下辖外设地址空间的总和。
进一步,各下游虚拟PCI桥配置固定间隔的下辖外设地址空间的起始地址,与该虚拟PCI桥下的有效端点或虚拟端点的起始地址相同。具体的,该各下游虚拟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为所述固定间隔。
作为有效端点的进一步限定,一个下游虚拟PCI桥最多接入一个有效端点,一个下游虚拟PCI桥最多接入一个虚拟端点。
添加虚拟端点后,将虚拟PCI桥的虚拟端点的端点ID信息添加到设备ID表中,用于拓展系统拓扑结构,设备ID表为系统拓扑结构中的所有设备的端点ID信息的链表。
进一步,为下一个有效端点或虚拟端点分配地址空间前,比较剩余外设地址空间和待分配的地址空间的大小,当剩余外设地址空间小于待分配的地址空间时,发出报错信息。
具体的,如图2为一个基于PCIe Switch的通用处理器系统拓扑结构图。系统的PCIe拓扑结构是一个树形结构,CPU处理器通过根复合体实现内部PCIe总线BUS0,同时扩展出虚拟PCIe桥,桥下游总线为BUS1,BUS1连接Switch的上游端口对PCIe链路进行拓展,Switch内部由多个虚拟PCI桥组成,其中每一个上游和下游端口都对应一个虚拟PCI桥,上游端口对应的虚拟PCI桥0用于连接各虚拟PCI桥,其下游总线为BUS2;下游端口(以4个为例,可以更多)各对应一个虚拟PCI桥,分别为虚拟PCI桥1、虚拟PCI桥2、虚拟PCI桥3和虚拟PCI桥4,各虚拟PCI桥下游总线依次为BUS3、BUS4、BUS5和BUS6,端点A、C、D为挂载在各下游端口下的有效端点,端点B(可以为任意端点)为本实施例添加的虚拟端点。
从连接根复合体与上游端口的总线BUS1开始,对PCIe Switch实现的链路扩展系统中的所有虚拟PCI桥和端点设备进行遍历扫描,获取系统拓扑结构。遍历扫描算法为深度优先搜索算法(Depth First Search),该算法为现有技术,其具体工作原理不再赘述。系统拓扑结构获取流程如图3所示,流程如下:
(1)对位于BUS2上的下游虚拟PCI桥及下游总线BUS3~BUS6扫描时,将处于Switch扩展链路下的下虚拟游PCI桥加入设备ID表中;
(2)如果该下游虚拟PCI桥下未扫描到有效端点,则在拓扑结构中添加虚拟端点到该下游虚拟PCI桥链路下;
(3)设置下游虚拟PCI桥下接入设备(有效端点或者虚拟端点)的属性,并加入设备ID表中;
(4)继续扫描下一个下游虚拟PCI桥,当BUS2上所有下游虚拟PCI桥扫描完毕后,得到含有虚拟端点的系统拓扑结构。
在得到含有虚拟端点的拓扑结构之后,为各下游虚拟PCI桥的下辖设备(有效端点或者虚拟端点)分配地址空间,并且设置各虚拟PCI桥(虚拟PCI桥1、虚拟PCI桥2、虚拟PCI桥3和虚拟PCI桥4)的下辖外设地址空间。
外设地址空间的固定分配如图4所示,其中Pcie_Mem_Adrs为驱动中配置的系统PCIe空间起始地址,Fixed_Space为固定间隔,Required_Space为有效端点的Bar空间长度,Pcie_Mem为剩余外设地址空间的首地址,Pcie_Mem_Pre为下游虚拟PCI桥的下辖外设地址空间的起始地址,Mem_Limit为下游虚拟PCI桥接入端点的Bar空间边界,Pcie_Mem_Post为下游虚拟PCI桥下辖的结束地址。图中端点A、C、D为不同类型有效端点,有效端点包括以下几类:网卡、显卡、视频/音频采集卡、无线网卡;B为添加的虚拟端点,由图可知,当前下游虚拟PCI桥的Pcie_Mem_Post为下一个下游虚拟PCI桥的Pcie_Mem_Pre。虽然各端点A、B、C分配的地址空间空间大小不同,但是各端点所属的下游虚拟PCI桥下辖的外设地址空间的长度相等。同时,通过Pcie_Mem与外设的边界地址比较,获取剩余外设地址空间的情况,为下一个端点分配地址空间时,如果外设剩余空间小于端点需要分配的地址空间,会发出报错信息。
如图5所示为系统外设地址空间固定分配流程图,具体步骤如下:
(1)获取驱动程序中预先配置的下游虚拟PCI桥的固定下辖空间以及PCIe空间起始地址Pcie_Mem_Adrs,并将Pcie_Mem_Adrs作为PCI0和PCI1下辖空间首地址,进行PCIe端点地址分配;
(2)对于虚拟端点,为其分配固定间隔为Fixed_Space的下辖外设地址空间,以使得虚拟端点所属的桥下辖空间为Fixed_Space,同时,由于虚拟PCI桥不含BAR空间,不占用PCI空间,因此,虚拟端点所属的下游虚拟PCI桥下辖空间为虚拟端点分配的地址空间;
(3)对于有效端点,通过读取Bar寄存器中可读不可写的位数,获取所需申请的Bar空间长度Required_Space,然后为有效端点分配Bar地址空间;再将Required_Space和预设的固定间隔Fixed_Space进行比较,如果固定间隔的长度大于或等于Bar空间长度,则设置该有效端点所属的下游虚拟PCI桥下辖空间长度为Fixed_Space;如果前者大,则将固定间隔Fixed_Space重新设置为Required_Space,并返回执行步骤(2),实现自动调整固定间隔Fixed_Space的功能;
(4)根据已经分配的外设地址总长度,更新剩余外设空间地址首地址(Pcie_Mem),作为下一个下游虚拟PCI桥的下辖空间首地址,返回步骤(2)配置下一个下游虚拟PCI桥;
(5)当所有下游虚拟PCI桥全部配置完毕,将虚拟PCI桥0的下辖地址空间的结束地址设置为Pcie_Mem。
本发明的外设地址空间的具体分配情况如图2所示,虚拟PCI桥0下辖外设地址空间大小为0x8000000Byte(128M),其下游虚拟桥的下辖外设地址空间大小均为0x2000000Byte(32M);端点A、C、D均含有2个Bar空间,各端点的2个Bar空间均位于其接入的下游虚拟PCI桥的下辖空间内。图中端点B所分配的地址为虚线,表示系统不能对该段外设地址空间进行读写操作,这是由于下游虚拟PCI桥2下没有有效端点,为端点B分配地址的目的是为了实现对有效端点A、C、D地址空间的固定分配。
本发明通过增加虚拟端点到系统拓扑结构,在拓扑结构中确保每个下游虚拟PCI桥下均有设备(有效端点或者虚拟端点)加入设备ID表,并为拓扑结构中的所有有效端点及虚拟端点分配地址空间,实现了无论系统中端点数目、类型和位置如何改变,各下游虚拟PCI桥下接入的端点所分配Bar空间起始地址固定不变,同时,各槽位桥下辖的PCI外设空间起始地址和大小固定,使得系统可以使用固定地址实现PCIe外设端点的读写操作,消除了上层应用程序获取端点Bar地址空间的环节,同时,可根据有效端点的Bar配置自动调整固定间隔的大小,降低了系统复杂性,简化了应用编程开发。
对应上述端点地址空间分配方法,本发明还提出了一种PCIe交换机,包括一个上游端口和至少两个下游端口,每个端口均对应设置有虚拟PCI桥,PCIe交换机用于进行端点地址空间分配,包括以下步骤:
1)遍历PCIe交换机的扩展链路中所有虚拟PCI桥,当扩展链路中下游端口对应的虚拟PCI桥下未发现有效端点时,添加虚拟端点到该虚拟PCI桥下,并将虚拟端点拓展到PCIe交换机的系统拓扑结构中;
2)为所有虚拟PCI桥配置固定间隔的下辖外设地址空间,为各虚拟PCI桥的有效端点和虚拟端点分配固定的地址空间。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。

Claims (10)

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交换机的端点地址空间分配方法,其特征在于,所述扩展链路中上游端口对应的虚拟PCI桥的下辖外设地址空间为所有下游端口对应的虚拟PCI桥的下辖外设地址空间的总和。
6.根据权利要求1所述的PCIe交换机的端点地址空间分配方法,其特征在于,一个下游端口对应的虚拟PCI桥最多接入一个有效端点,一个下游端口对应的虚拟PCI桥最多接入一个虚拟端点。
7.根据权利要求1所述的PCIe交换机的端点地址空间分配方法,其特征在于,添加虚拟端点后,将虚拟PCI桥的虚拟端点的端点ID信息添加到设备ID表中,用于拓展系统拓扑结构,所述设备ID表为系统拓扑结构中的所有设备的端点ID信息的链表。
8.根据权利要求1所述的PCIe交换机的端点地址空间分配方法,其特征在于,为下一个有效端点或虚拟端点分配地址空间前,比较剩余外设地址空间和待分配的地址空间的大小,当剩余外设地址空间小于待分配的地址空间时,发出报错信息。
9.一种PCIe交换机,包括一个上游端口和至少两个下游端口,每个端口均对应设置有虚拟PCI桥,其特征在于,PCIe交换机用于进行端点地址空间分配,包括以下步骤:
1)遍历PCIe交换机的扩展链路中所有虚拟PCI桥,当扩展链路中下游端口对应的虚拟PCI桥下未发现有效端点时,添加虚拟端点到该虚拟PCI桥下,并将虚拟端点拓展到PCIe交换机的系统拓扑结构中;
2)为所有虚拟PCI桥配置固定间隔的下辖外设地址空间,为各虚拟PCI桥的有效端点和虚拟端点分配固定的地址空间。
10.根据权利要求9所述的PCIe交换机,其特征在于,为所述下游端口对应的虚拟PCI桥配置固定间隔的下辖外设地址空间包括以下步骤:
分别将各虚拟PCI桥下有效端点的所需地址空间的长度和预设固定间隔的长度进行比较,当比较的结果为固定间隔的长度大于或等于所需地址空间的长度时,则设置该虚拟PCI桥的下辖外设地址空间长度为所述固定间隔的长度;当比较的结果为所需地址空间的长度大于固定间隔的长度时,则将固定间隔的长度更新设置为所需地址空间的长度。
CN201810509026.7A 2018-05-24 2018-05-24 一种PCIe交换机及其端点地址空间分配方法 Active CN108777634B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810509026.7A CN108777634B (zh) 2018-05-24 2018-05-24 一种PCIe交换机及其端点地址空间分配方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810509026.7A CN108777634B (zh) 2018-05-24 2018-05-24 一种PCIe交换机及其端点地址空间分配方法

Publications (2)

Publication Number Publication Date
CN108777634A true CN108777634A (zh) 2018-11-09
CN108777634B CN108777634B (zh) 2021-05-07

Family

ID=64027699

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810509026.7A Active CN108777634B (zh) 2018-05-24 2018-05-24 一种PCIe交换机及其端点地址空间分配方法

Country Status (1)

Country Link
CN (1) CN108777634B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109902038A (zh) * 2019-02-21 2019-06-18 杭州迪普科技股份有限公司 一种PCIe总线地址空间分配方法及装置
CN110795374A (zh) * 2019-10-16 2020-02-14 苏州浪潮智能科技有限公司 一种设备访问的方法、装置及可读存储介质
CN111581139A (zh) * 2020-05-06 2020-08-25 浙江宇视科技有限公司 PCIe设备的兼容处理方法、装置、设备及存储介质
WO2021170055A1 (zh) * 2020-02-28 2021-09-02 安徽寒武纪信息科技有限公司 一种虚拟化的方法、设备、板卡及计算机可读存储介质
CN113886311A (zh) * 2020-07-02 2022-01-04 许继集团有限公司 一种按槽位进行固定pcie总线地址分配的方法及装置
CN114840466A (zh) * 2022-07-05 2022-08-02 深圳市遇贤微电子有限公司 资源配置空间分配方法、装置、计算机设备和存储介质
WO2022188577A1 (zh) * 2021-03-11 2022-09-15 山东英信计算机技术有限公司 一种pci设备的资源地址分配方法、系统及装置
CN115460172A (zh) * 2022-08-22 2022-12-09 曙光信息产业股份有限公司 设备地址分配方法、装置、计算机设备、介质及程序产品

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070168641A1 (en) * 2006-01-17 2007-07-19 Hummel Mark D Virtualizing an IOMMU
CN103986602A (zh) * 2014-05-16 2014-08-13 华为技术有限公司 一种启动操作系统的方法、相关设备和系统
CN104285218A (zh) * 2013-12-31 2015-01-14 华为技术有限公司 一种扩展PCIe总线域的方法和装置
CN105338127A (zh) * 2014-07-18 2016-02-17 华为技术有限公司 媒体接入控制mac地址表更新方法、交换机及系统
CN105487990A (zh) * 2014-09-19 2016-04-13 中兴通讯股份有限公司 一种cpu与芯片之间传输消息报文的方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070168641A1 (en) * 2006-01-17 2007-07-19 Hummel Mark D Virtualizing an IOMMU
CN104285218A (zh) * 2013-12-31 2015-01-14 华为技术有限公司 一种扩展PCIe总线域的方法和装置
CN103986602A (zh) * 2014-05-16 2014-08-13 华为技术有限公司 一种启动操作系统的方法、相关设备和系统
CN105338127A (zh) * 2014-07-18 2016-02-17 华为技术有限公司 媒体接入控制mac地址表更新方法、交换机及系统
CN105487990A (zh) * 2014-09-19 2016-04-13 中兴通讯股份有限公司 一种cpu与芯片之间传输消息报文的方法及装置

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109902038A (zh) * 2019-02-21 2019-06-18 杭州迪普科技股份有限公司 一种PCIe总线地址空间分配方法及装置
CN110795374A (zh) * 2019-10-16 2020-02-14 苏州浪潮智能科技有限公司 一种设备访问的方法、装置及可读存储介质
WO2021170055A1 (zh) * 2020-02-28 2021-09-02 安徽寒武纪信息科技有限公司 一种虚拟化的方法、设备、板卡及计算机可读存储介质
CN111581139A (zh) * 2020-05-06 2020-08-25 浙江宇视科技有限公司 PCIe设备的兼容处理方法、装置、设备及存储介质
CN111581139B (zh) * 2020-05-06 2022-05-17 浙江宇视科技有限公司 PCIe设备的兼容处理方法、装置、设备及存储介质
CN113886311A (zh) * 2020-07-02 2022-01-04 许继集团有限公司 一种按槽位进行固定pcie总线地址分配的方法及装置
WO2022188577A1 (zh) * 2021-03-11 2022-09-15 山东英信计算机技术有限公司 一种pci设备的资源地址分配方法、系统及装置
US11924116B2 (en) 2021-03-11 2024-03-05 Shandong Yingxin Computer Technologies Co., Ltd. Resource address allocation method, system and apparatus for PCI device
CN114840466A (zh) * 2022-07-05 2022-08-02 深圳市遇贤微电子有限公司 资源配置空间分配方法、装置、计算机设备和存储介质
CN114840466B (zh) * 2022-07-05 2022-09-13 深圳市遇贤微电子有限公司 资源配置空间分配方法、装置、计算机设备和存储介质
CN115460172A (zh) * 2022-08-22 2022-12-09 曙光信息产业股份有限公司 设备地址分配方法、装置、计算机设备、介质及程序产品
CN115460172B (zh) * 2022-08-22 2023-12-05 曙光信息产业股份有限公司 设备地址分配方法、装置、计算机设备、介质及程序产品

Also Published As

Publication number Publication date
CN108777634B (zh) 2021-05-07

Similar Documents

Publication Publication Date Title
CN108777634A (zh) 一种PCIe交换机及其端点地址空间分配方法
CN103117929B (zh) 一种基于PCIe数据交换的通信方法及系统
US10922259B2 (en) System and method for extended peripheral component interconnect express fabrics
US9274940B2 (en) Method and apparatus for allocating memory space with write-combine attribute
US8095701B2 (en) Computer system and I/O bridge
CN111092773B (zh) 一种支持虚拟交换的pcie交换芯片端口配置系统和方法
KR101853748B1 (ko) PCIe 도메인을 위한 리소스 관리
Alverson et al. The gemini system interconnect
JP2003178039A (ja) 分散共有仮想メモリーとその構成方法
CN102722458A (zh) 一种用于多根共享系统的i/o重映射方法和装置
JP2020113137A (ja) ストレージ装置
CN114556881B (zh) 一种地址翻译方法及装置
US10284672B2 (en) Network interface
CN108234687B (zh) 一种智能ip地址配置方法、装置及终端设备
CN116743684A (zh) 一种具多个非透明桥端口的PCIe交换机及其通信方法
BRPI0920486B1 (pt) aparelho para controlar uma quantidade de chamadas concorrentes e método para controlar uma quantidade de chamadas concorrentes
CN116346744A (zh) 一种具多个非透明桥端口的PCIe交换机及其通信方法
CN113688091B (zh) 基于Tsi721的RapidIO动态枚举过程的实现方法及系统
CN113647058B (zh) 一种基于PCIe的通信方法及装置
US10642494B2 (en) Method, electronic device and computer program product for data processing
TWI467385B (zh) 在兩匯流排間進行序列位址位元轉換之方法及其裝置
CN205610660U (zh) 多节点服务器的串口切换监测线路及服务器
CN105930287A (zh) 一种单片机超大数据外存扩展系统及其控制方法
CN116701240A (zh) 内部映射地址资源管理方法、系统、终端及存储介质
CN116962188A (zh) 针对非透明桥通信的中断扩展方法、系统、存储介质及设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant