CN111858413B - Pcie交换芯片端口的数据调度方法及装置 - Google Patents
Pcie交换芯片端口的数据调度方法及装置 Download PDFInfo
- Publication number
- CN111858413B CN111858413B CN202010610211.2A CN202010610211A CN111858413B CN 111858413 B CN111858413 B CN 111858413B CN 202010610211 A CN202010610211 A CN 202010610211A CN 111858413 B CN111858413 B CN 111858413B
- Authority
- CN
- China
- Prior art keywords
- transaction
- transaction packet
- scheduling
- packet
- port
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1642—Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开提供了一种PCIE交换芯片端口的数据调度方法及装置,所述方法包括:根据事务包的应答类型,将PCIE交换芯片端口接收到的事务包写入所述端口的存储空间;根据存储空间中事务包的写入顺序,于预设记录队列中依次入队记录所述应答类型;确定所述存储空间中前一已取出事务包的调度阻塞状态;通过数据链路层获取链路对边设备对各所述应答类型的事务包的剩余接收量;基于所述记录队列、所述调度阻塞状态以及所述剩余接收量,对所述存储空间中事务包进行调度。本公开实施例能够保证PCIE交换芯片端口的数据调度的准确度。
Description
技术领域
本公开涉及芯片领域,具体涉及一种PCIE交换芯片端口的数据调度方法及装置。
背景技术
PCIE(PCI-Express,peripheral component interconnect express)是一种高速串行计算机扩展总线标准,是继PCI总线之后的第三代I/O总线,广泛用于CPU、显卡、声卡等通信设备的使用。
其中,PCIE芯片端口的事务包的应答类型分为P(Posted,转发)、NP(Non-Posted,非转发)以及CPL(Completion,完成)三种。其中,NP事务包的请求发送出去之后,必须要得到一个CPL事务包的应答,此次传输才会结束;P事务包的请求发送出去之后,则不需要得到CPL事务包的应答。这三种事务包的转发次序需要遵循生产者和消费者模型,满足PCIE协议规定的排序规则。
虽然市场上存在许多PCIE交换芯片,但对于PCIE交换芯片的应用层实现机制的披露资料却非常少。
发明内容
本公开的一个目的在于提出一种PCIE交换芯片端口的数据调度方法及装置,能够保证PC I E交换芯片端口的数据调度的准确度。
根据本公开实施例的一方面,公开了一种PCIE交换芯片端口的数据调度方法,所述方法包括:
根据事务包的应答类型,将PCI E交换芯片端口接收到的事务包写入所述端口的存储空间;
根据存储空间中事务包的写入顺序,于预设记录队列中依次入队记录所述应答类型;
确定所述存储空间中前一已取出事务包的调度阻塞状态;
通过数据链路层获取链路对边设备对各所述应答类型的事务包的剩余接收量;
基于所述记录队列、所述调度阻塞状态以及所述剩余接收量,对所述存储空间中事务包进行调度。
根据本公开实施例的一方面,公开了一种PCIE交换芯片端口的数据调度装置,所述装置包括:
写入模块,配置为根据事务包的应答类型,将PCI E交换芯片端口接收到的事务包写入所述端口的存储空间;
记录模块,配置为根据存储空间中事务包的写入顺序,于预设记录队列中依次入队记录所述应答类型;
确定模块,配置为确定所述存储空间中前一已取出事务包的调度阻塞状态;
获取模块,配置为通过数据链路层获取链路对边设备对各所述应答类型的事务包的剩余接收量;
调度模块,配置为基于所述记录队列、所述调度阻塞状态以及所述剩余接收量,对所述存储空间中事务包进行调度。
本公开实施例中,对于PCIE交换芯片端口接收到的事务包,将其按照应答类型写入存储空间,并在记录队列中入队记录应答类型;进而记录队列、前一已取出事务包的调度阻塞状态以及链路对边设备对各应答类型的事务包的剩余接收量,对存储空间中事务包进行调度。通过这种方法,使得对PCIE交换芯片端口进行数据调度时,能够保证数据链路两边的设备避免死锁情况的发生,保证了数据调度的准确度。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
通过参考附图详细描述其示例实施例,本公开的上述和其它目标、特征及优点将变得更加显而易见。
图1示出了根据本公开一个实施例的四端口PCIE交换芯片的简要层次结构。
图2示出了根据本公开一个实施例的PCIE交换芯片中全局错误处理模块的示意图。
图3示出了根据本公开一个实施例的PCIE交换芯片端口的数据调度方法的流程图。
图4示出了根据本公开一个实施例的端口入口侧处理模块的详细模块组成。
图5示出了根据本公开一个实施例的端口出口侧处理模块的详细模块组成。
图6示出了根据本公开一个实施例的多播处理的流程图。
图7示出了根据本公开一个实施例的端口处理模块的详细模块组成。
图8示出了根据本公开一个实施例的PCIE交换芯片端口的数据调度装置的框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些示例实施方式使得本公开的描述将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多示例实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的示例实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、步骤等。在其它情况下,不详细示出或描述公知结构、方法、实现或者操作以避免喧宾夺主而使得本公开的各方面变得模糊。
附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
图1示出了本公开一实施例的四端口PCIE交换芯片的简要层次结构。
该实施例中,该PCIE交换芯片通过端口对数据的接收、调度处理、以及端口之间数据的转发,实现端口所连接的设备之间的通信。其中,每一端口是对等的;每一端口都在对应的物理层、数据链路层、事务层以及应用层,以相应的逻辑对数据进行调度。其中,每一端口都拥有对应的端口处理模块,主要用于应用层的数据调度;芯片中的全局错误处理模块是所有端口所共享的,主要用于处理芯片中发生的错误信息。
需要说明的是,该实施例只是示例性的说明,并不代表本公开只能适用于四端口的PCIE交换芯片。该实施例不应对本公开的功能和使用范围造成限制。
图2示出了本公开一实施例的PCIE交换芯片中全局错误处理模块的示意图。
该实施例中,PCIE交换芯片中所有端口共享的全局错误处理模块主要用于处理芯片中发生的错误。对于发生的错误,根据错误类型于错误寄存器中进行登记;进而经过错误状态检测,根据错误寄存器中存储的错误屏蔽位、错误优先级等信息进行错误上报,以消息包的形式上报至主机端口。其中,对于NP请求需要返回携带错误信息的CPL事务包,将该CPL事务包发送至源事务包的出口侧处理模块。
需要说明的是,该实施例只是示例性的说明,不应对本公开的功能和使用范围造成限制。
图3示出了本公开一实施例的PCIE交换芯片端口的数据调度方法,该方法包括:
步骤S210、根据事务包的应答类型,将PCIE交换芯片端口接收到的事务包写入所述端口的存储空间;
步骤S220、根据存储空间中事务包的写入顺序,于预设记录队列中依次入队记录所述应答类型;
步骤S230、确定所述存储空间中前一已取出事务包的调度阻塞状态;
步骤S240、通过数据链路层获取链路对边设备对各所述应答类型的事务包的剩余接收量;
步骤S250、基于所述记录队列、所述调度阻塞状态以及所述剩余接收量,对所述存储空间中事务包进行调度。
本公开实施例中,对于PCIE交换芯片端口接收到的事务包,将其按照应答类型写入存储空间,并在记录队列中入队记录应答类型;进而记录队列、前一已取出事务包的调度阻塞状态以及链路对边设备对各应答类型的事务包的剩余接收量,对存储空间中事务包进行调度。通过这种方法,使得对PCIE交换芯片端口进行数据调度时,能够保证数据链路两边的设备避免死锁情况的发生,保证了数据调度的准确度。
本公开实施例中,PCIE交换芯片端口接收到事务包后,确定事务包的应答类型:P事务包、NP事务包或者CPL事务包。根据事务包的应答类型,将事务包写入该端口的存储空间:将P事务包写入存储空间中专门用于存储P事务包的空间/队列,将NP事务包写入存储空间中专门用于存储NP事务包的空间/队列,将CPL事务包写入存储空间中专门用于存储CPL事务包的空间/队列。
根据存储空间中事务包的写入顺序,于预设记录队列中依次入队记录事务包的应答类型。例如:端口依次将P事务包、NP事务包、CPL事务包、NP事务包按照应答类型写入存储空间中,则端口在记录队列中依次入队记录应答类型,得到这些事务包对应的记录队列“NP->CPL->NP->P”。该记录队列遵循先进先出的队列管理规则。
端口确定存储空间中前一已取出事务包的调度阻塞状态,确定其是否阻塞。
端口获取链路对边设备对各应答类型的事务包的剩余接收量,该剩余接收量主要通过数据链路层的通信获取。具体的,链路对边设备将自己对各应答类型的事务包的剩余接收量反馈至数据链路层,从而端口获取链路对边设备对各应答类型的事务包的剩余接收量,从而端口能够确定链路对边设备还能够接收多少P事务包,还能接收多少NP事务包,还能接收多少CPL事务包。具体的,数据链路流控制机构可以通过引入信用量(Credit)作为用于衡量剩余接收量的单位。接收方在初始化期间,向数据链路另一边的端口发送初始化流控制数据链路包,以信用量为单位报告其缓存空间的大小;在接收事务包的过程中,主动定期地向数据链路另一边的端口发送更新流控制数据链路包,告知其已经释放的信用量个数。
端口基于入队记录所得到的记录队列、存储空间中前一已取出事务包的调度阻塞状态以及链路对边设备对各应答类型的事务包的剩余接收量,对存储空间中事务包进行调度。
图4示出了本公开一实施例端口入口侧处理模块的详细模块组成。
该实施例中,根据所存储事务包的应答类型,端口将RAM(Random Access Memory,随机存取存储器)划分为P RAM、NP RAM、CPL RAM。其中,P RAM用于存储P事务包,NP RAM用于存储NP事务包,CPL RAM用于存储CPL事务包。
根据事务包写入的顺序,依次入队记录应答类型,得到图中所示的事务包入队顺序。根据先进先出的队列管理规则对事务包进行调度。当要取出一个事务包时,通过信用管理调度模块将信用量反馈至数据链路层;进而过滤路由模块对待取出的事务包进行规则检查、目标端口判断、多播包阻塞判断等各种处理。
需要说明的是,该实施例只是示例性的说明,不应对本公开的功能和使用范围造成限制。
图5示出了本公开一实施例端口出口侧处理模块的详细模块组成。
该实施例中,端口的出端口仲裁模块对于待转发的事务包进行仲裁。具体的,可以根据PHASE表端口仲裁策略完成源端口的仲裁。进而出口调度模块根据事务包入队顺序对取出的事务包进行转发。
在正常运行过程中,数据链路另一边的设备定期发送更新流控数据链路包,出口调度模块以此信息更新P/NP/CPL包的信用量管理;当某一类型的事务包调度出队时,出口调度模块负责刷新相应事务包的信用量管理。
需要说明的是,该实施例只是示例性的说明,不应对本公开的功能和使用范围造成限制。
在一实施例中,基于该记录队列、该调度阻塞状态以及该剩余接收量,对该存储空间中事务包进行调度,包括:
基于该记录队列、该调度阻塞状态以及该剩余接收量,控制对该存储空间中事务包的取出;
基于预设的调度处理规则,对取出的事务包进行调度。
该实施例中,端口基于该记录队列、该调度阻塞状态以及该剩余接收量,控制对存储空间中事务包的取出;进而针对取出的事务包,基于预设的调度处理规则进行调度。
在一实施例中,基于该记录队列、该调度阻塞状态以及该剩余接收量,控制对该存储空间中事务包的取出,包括:
基于该记录队列以及该调度阻塞状态,控制对该存储空间中当前待取出事务包的取出;
基于该记录队列以及该剩余接收量,控制对该存储空间中下一待取出事务包的取出。
该实施例中,具体的,端口基于该记录队列以及该调度阻塞状态,控制对存储空间中当前待取出事务包的取出;当该当前待取出事务包取出后,基于该记录队列以及该剩余接收量,控制对存储空间中下一待取出事务包的取出。
在一实施例中,基于该记录队列以及该调度阻塞状态,控制对该存储空间中当前待取出事务包的取出,包括:
根据该记录队列,确定该前一已取出事务包的第一应答类型;
根据该记录队列,确定该当前待取出事务包的第二应答类型;
基于该第一应答类型、该第二应答类型以及该调度阻塞状态,控制对该当前待取出事务包的取出。
该实施例中,端口根据记录队列中依次记录的应答类型,确定前一已取出事务包的第一应答类型以及当前待取出事务包的第二应答类型;进而基于该第一应答类型、该第二应答类型以及前一已取出事务包的调度阻塞状态,控制对当前待取出事务包的取出。
例如:若前一已取出事务包为P事务包且被阻塞,当前待取出事务包为NP包,则不能取出该当前待取出事务包,否则会违反生产者和消费者模型。直到该前一已取出事务包不再被阻塞再取出该当前待取出事务包。
若前一已取出事务包为NP事务包且被阻塞,当前待取出事务包为CPL事务包,则取出该当前待取出事务包。因为请求的落地依赖于响应,如果CPL事务包不能穿越NP事务包导致请求无法落地,在缓存空间均满的情况下将导致数据链路两端的设备均死锁。
在一实施例中,基于该记录队列以及该剩余接收量,控制对该存储空间中下一待取出事务包的取出,包括:
根据该记录队列,确定该当前待取出事务包的第二应答类型;
根据该记录队列,确定该下一待取出事务包的第三应答类型;
基于该第二应答类型、该第三应答类型以及该剩余接收量,控制对该下一待取出事务包的取出。
该实施例中,端口根据记录队列中依次记录的应答类型,确定当前待取出事务包的第二应答类型以及下一待取出事务包的第三应答类型;进而基于该第二应答类型、该第三应答类型以及链路对边设备对各应答类型的事务包的剩余接收量,控制对下一待取出事务包的取出。
例如:若当前待取出事务包为P事务包且链路对边设备对P事务包的剩余接收量不足,下一待取出事务包为NP事务包,则该下一待取出事务包不能取出,否则会违反生产者和消费者模型。直到该当前待取出事务包被取出才可以取出该下一待取出事务包。
若当前待取出事务包为NP事务包且链路对边设备对NP事务包的剩余接收量不足,下一待取出事务包为CPL事务包,则取出该下一待取出事务包。因为请求的落地依赖于响应,如果CPL事务包不能穿越NP事务包导致请求无法落地,在缓存空间均满的情况下将导致数据链路两端的设备均死锁。
在一实施例中,基于预设的调度处理,对取出的事务包进行调度,包括:
根据预设检查规则,从该取出的事务包中筛选出信息正确事务包;
根据预设端口配置信息,确定该信息正确事务包对应的目标端口;
将该信息正确事务包转发至该对应的目标端口。
该实施例中,端口根据预设检查规则对取出的事务包进行检查,筛选出信息正确事务包。该过程主要涉及ECRC(End-to-End CRC,端到端的CRC校验)/地址空间/ID空间/中毒位(用于指示事务包是否出现ECC错误或者奇偶检验错误的数据位)/数据包包头等信息的判断。
端口对于筛选出的信息正确事务包,根据端口配置信息,确定信息正确事务包对应的目标端口,即,确定信息正确事务包应从当前端口转发至哪一端口。该过程主要涉及地址/ID/隐含路由的判断。进而端口将信息正确事务包转发至该目标端口。
在一实施例中,基于预设的调度处理,对取出的事务包进行调度,包括:
根据预设检查规则,从该取出的事务包中筛选出并丢弃信息错误事务包;
将该信息错误事务包所对应的错误信息在全局错误寄存器中进行登记;
将该全局错误寄存器中登记的错误信息上报至主机端口。
该实施例中,端口根据预设检查规则对取出的事务包进行检查,筛选并丢弃信息错误事务包。进而将信息错误事务包所对应的错误信息在全局错误寄存器中进行登记,并将登记的错误信息上报至主机端口。
其中,该全局错误寄存器指的是位于PCIE交换芯片全局的错误寄存器。一般情况下,并不单独位于单一端口内,芯片中任一端口均可以访问该全局错误寄存器。
该全局错误寄存器除了会对信息错误事务包所对应的错误信息进行登记外,还会对PCIE芯片全局的数据调度过程中其他错误信息进行登记进而上报主机端口,例如各端口中路由错误所对应的错误、权限处理错误所对应的错误信息。
在一实施例中,基于预设的调度处理,对取出的事务包进行调度,包括:
若该取出的事务包为存储器写类型的事务包,则获取该取出的事务包的地址;
获取多播扩展寄存器的配置信息;
基于该地址以及该配置信息,确定该取出的事务包所属的多播群组,并对该取出的事务包进行多播处理。
该实施例中,若取出的事务包为存储器写类型,则端口对该取出的事务包进行多播处理。同样,若取出的事务包为携带数据的消息包,端口也会对该取出的事务包进行多播处理。
具体的,参考图6所示:对于为存储器写类型的,或者为携带数据的消息包的,端口从多播扩展寄存器的配置信息中确定多播是否使能;若多播使能,则根据该配置信息确定多播索引信息、多播群组信息以及多播最大群组信息是否符合规则;若均符合规则,则从该配置信息获取多播基地址,进而基于该多播基地址、该取出的事务包的地址以及该多播群组信息,确定该取出的事务包的地址是否在多播包地址范围内;若在范围内,则基于该多播基地址、该取出的事务包的地址以及该多播索引信息,确定该取出的事务包的地址所属的多播群组;进而判断该多播群组是否阻塞,进而基于阻塞判断结果对该取出的事务包进行多播处理。多播处理过程中,以其他端口的多播扩展寄存器的配置信息完成多播地址代换和多播包复制。
需要说明的是,该实施例只是示例性的说明,不应对本公开的功能和使用范围造成限制。
在一实施例中,基于预设的调度处理,对取出的事务包进行调度,包括:
若该取出的事务包为与下游端口请求相关的事务包,则对该取出的事务包进行权限控制;
根据所进行的该权限控制,对该取出的事务包进行调度。
该实施例中,若取出的事务包为与下游端口请求相关的事务包(例如下游端口到下游端口的事务包、下游端口到上游端口的事务包或者下游端口访问自身路由的事务包),则端口对其进行权限控制。进而,端口根据所进行的权限控制的结果,对该取出的事务包进行调度。其中,所进行的权限控制包括但不限于源头认证、传输阻塞、请求重定向。
图7示出了本公开一实施例的端口处理模块的详细模块组成。
该实施例中,端口0的入口侧处理模块将接收的事务包按照应答类型写入RAM中,并在记录队列中记录事务包入队顺序;端口运行过程中,信用管理调度模块根据RAM所存储的数据以及事务包入队顺序,将信用量反馈至数据链路层;进而过滤路由模块对待取出的事务包进行规则检查、目标端口判断、多播包阻塞判断(可以根据多播包匹配阻塞模块的反馈进行该判断)等各种处理,其中,在部分处理过程中过滤路由模块需要与寄存器模块进行交互;权限控制处理模块对来自下游端口的请求相关的事务包进行权限控制处理,对命中多播包空间的事务包进行权限控制处理以及多播处理,处理成功的事务包以及来自上游端口的请求的事务包会连同目的端口信息发送至出口方向决策模块进行处理;过滤路由错误的事务包、权限控制处理失败的事务包以及未命中多播包空间的事务包则会经由全局错误处理,发送至出口方向决策模块进行处理。
端口0的出口侧处理模块的出端口仲裁模块对于待转发的事务包进行仲裁。具体的,可以根据PHASE表端口仲裁策略完成源端口的仲裁。进而出口调度模块根据事务包入队顺序对取出的事务包进行转发。
同理,作为与端口0对等的端口,有关端口1的端口处理模块的详细模块组成不再赘述。
需要说明的是,该实施例只是示例性的说明,不应对本公开的功能和使用范围造成限制。
图8示出了根据本公开一实施例的PCIE交换芯片端口的数据调度装置,所述装置包括:
写入模块310,配置为根据事务包的应答类型,将PCIE交换芯片端口接收到的事务包写入所述端口的存储空间;
记录模块320,配置为根据存储空间中事务包的写入顺序,于预设记录队列中依次入队记录所述应答类型;
确定模块330,配置为确定所述存储空间中前一已取出事务包的调度阻塞状态;
获取模块340,配置为获取链路对边设备对各所述应答类型的事务包的剩余接收量;
调度模块350,配置为基于所述记录队列、所述调度阻塞状态以及所述剩余接收量,对所述存储空间中事务包进行调度。
在本公开的一示例性实施例中,所述装置配置为:
基于所述记录队列、所述调度阻塞状态以及所述剩余接收量,控制对所述存储空间中事务包的取出;
基于预设的调度处理规则,对取出的事务包进行调度。
在本公开的一示例性实施例中,所述装置配置为:
基于所述记录队列以及所述调度阻塞状态,控制对所述存储空间中当前待取出事务包的取出;
基于所述记录队列以及所述剩余接收量,控制对所述存储空间中下一待取出事务包的取出。
在本公开的一示例性实施例中,所述装置配置为:
根据所述记录队列,确定所述前一已取出事务包的第一应答类型;
根据所述记录队列,确定所述当前待取出事务包的第二应答类型;
基于所述第一应答类型、所述第二应答类型以及所述调度阻塞状态,控制对所述当前待取出事务包的取出。
在本公开的一示例性实施例中,所述装置配置为:
根据所述记录队列,确定所述当前待取出事务包的第二应答类型;
根据所述记录队列,确定所述下一待取出事务包的第三应答类型;
基于所述第二应答类型、所述第三应答类型以及所述剩余接收量,控制对所述下一待取出事务包的取出。
在本公开的一示例性实施例中,所述装置配置为:
根据预设检查规则,从所述取出的事务包中筛选出信息正确事务包;
根据预设端口配置信息,确定所述信息正确事务包对应的目标端口;
将所述信息正确事务包转发至所述对应的目标端口。
在本公开的一示例性实施例中,所述装置配置为:
根据预设检查规则,从所述取出的事务包中筛选出并丢弃信息错误事务包;
将所述信息错误事务包所对应的错误信息在全局错误寄存器中进行登记;
将所述全局错误寄存器中登记的错误信息上报至主机端口。
在本公开的一示例性实施例中,所述装置配置为:
若所述取出的事务包为存储器写类型的事务包,则获取所述取出的事务包的地址;
获取多播扩展寄存器的配置信息;
基于所述地址以及所述配置信息,确定所述取出的事务包所属的多播群组,并对所述取出的事务包进行多播处理。
在本公开的一示例性实施例中,所述装置配置为:
若所述取出的事务包为与下游端口请求相关的事务包,则对所述取出的事务包进行权限控制;
根据所进行的所述权限控制,对所述取出的事务包进行调度。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。
Claims (10)
1.一种PCIE交换芯片端口的数据调度方法,其特征在于,所述方法包括:
根据事务包的应答类型,将PCIE交换芯片端口接收到的事务包写入所述端口的存储空间;
根据存储空间中事务包的写入顺序,于预设记录队列中依次入队记录所述应答类型;
确定所述存储空间中前一已取出事务包的调度阻塞状态;
从数据链路层接收链路对边设备发送的流控制数据链路包,根据所述流控制数据链路包报告的信用量的个数,确定所述链路对边设备对各所述应答类型的事务包的剩余接收量;
基于所述记录队列、所述调度阻塞状态以及所述剩余接收量,对所述存储空间中事务包进行调度。
2.根据权利要求1所述的方法,其特征在于,基于所述记录队列、所述调度阻塞状态以及所述剩余接收量,对所述存储空间中事务包进行调度,包括:
基于所述记录队列、所述调度阻塞状态以及所述剩余接收量,控制对所述存储空间中事务包的取出;
基于预设的调度处理规则,对取出的事务包进行调度。
3.根据权利要求2所述的方法,其特征在于,基于所述记录队列、所述调度阻塞状态以及所述剩余接收量,控制对所述存储空间中事务包的取出,包括:
基于所述记录队列以及所述调度阻塞状态,控制对所述存储空间中当前待取出事务包的取出;
基于所述记录队列以及所述剩余接收量,控制对所述存储空间中下一待取出事务包的取出。
4.根据权利要求3所述的方法,其特征在于,基于所述记录队列以及所述调度阻塞状态,控制对所述存储空间中当前待取出事务包的取出,包括:
根据所述记录队列,确定所述前一已取出事务包的第一应答类型;
根据所述记录队列,确定所述当前待取出事务包的第二应答类型;
基于所述第一应答类型、所述第二应答类型以及所述调度阻塞状态,控制对所述当前待取出事务包的取出。
5.根据权利要求3所述的方法,其特征在于,基于所述记录队列以及所述剩余接收量,控制对所述存储空间中下一待取出事务包的取出,包括:
根据所述记录队列,确定所述当前待取出事务包的第二应答类型;
根据所述记录队列,确定所述下一待取出事务包的第三应答类型;
基于所述第二应答类型、所述第三应答类型以及所述剩余接收量,控制对所述下一待取出事务包的取出。
6.根据权利要求2所述的方法,其特征在于,基于预设的调度处理,对取出的事务包进行调度,包括:
根据预设检查规则,从所述取出的事务包中筛选出信息正确事务包;
根据预设端口配置信息,确定所述信息正确事务包对应的目标端口;
将所述信息正确事务包转发至所述对应的目标端口。
7.根据权利要求2所述的方法,其特征在于,基于预设的调度处理,对取出的事务包进行调度,包括:
根据预设检查规则,从所述取出的事务包中筛选出并丢弃信息错误事务包;
将所述信息错误事务包所对应的错误信息在全局错误寄存器中进行登记;
将所述全局错误寄存器中登记的错误信息上报至主机端口。
8.根据权利要求2所述的方法,其特征在于,基于预设的调度处理,对取出的事务包进行调度,包括:
若所述取出的事务包为存储器写类型的事务包,则获取所述取出的事务包的地址;
获取多播扩展寄存器的配置信息;
基于所述地址以及所述配置信息,确定所述取出的事务包所属的多播群组,并对所述取出的事务包进行多播处理。
9.根据权利要求2所述的方法,其特征在于,基于预设的调度处理,对取出的事务包进行调度,包括:
若所述取出的事务包为与下游端口请求相关的事务包,则对所述取出的事务包进行权限控制;
根据所进行的所述权限控制,对所述取出的事务包进行调度。
10.一种PCIE交换芯片端口的数据调度装置,其特征在于,所述装置包括:
写入模块,配置为根据事务包的应答类型,将PCIE交换芯片端口接收到的事务包写入所述端口的存储空间;
记录模块,配置为根据存储空间中事务包的写入顺序,于预设记录队列中依次入队记录所述应答类型;
确定模块,配置为确定所述存储空间中前一已取出事务包的调度阻塞状态;
获取模块,配置为从数据链路层接收链路对边设备发送的流控制数据链路包,根据所述流控制数据链路包报告的信用量的个数,确定所述链路对边设备对各所述应答类型的事务包的剩余接收量;
调度模块,配置为基于所述记录队列、所述调度阻塞状态以及所述剩余接收量,对所述存储空间中事务包进行调度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010610211.2A CN111858413B (zh) | 2020-06-29 | 2020-06-29 | Pcie交换芯片端口的数据调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010610211.2A CN111858413B (zh) | 2020-06-29 | 2020-06-29 | Pcie交换芯片端口的数据调度方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111858413A CN111858413A (zh) | 2020-10-30 |
CN111858413B true CN111858413B (zh) | 2022-05-27 |
Family
ID=72988151
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010610211.2A Active CN111858413B (zh) | 2020-06-29 | 2020-06-29 | Pcie交换芯片端口的数据调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111858413B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113438182B (zh) * | 2021-03-30 | 2023-05-19 | 南京大学 | 一种基于信用的流量控制系统和流量控制方法 |
CN113157510B (zh) * | 2021-04-25 | 2023-02-28 | 海光信息技术股份有限公司 | 高速串行计算机扩展总线事务排序规则测试方法及装置 |
CN115842790B (zh) * | 2022-12-29 | 2023-05-02 | 三未信安科技股份有限公司 | 一种应用于PCIe设备的业务数据流量控制方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10048863B1 (en) * | 2016-06-01 | 2018-08-14 | Seagate Technology Llc | Open block refresh management |
CN111078609B (zh) * | 2019-11-13 | 2023-04-25 | 南京航空航天大学 | 一种基于FPGA的PCIe转三总线接口及方法 |
-
2020
- 2020-06-29 CN CN202010610211.2A patent/CN111858413B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111858413A (zh) | 2020-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111858413B (zh) | Pcie交换芯片端口的数据调度方法及装置 | |
US8285914B1 (en) | Banked memory arbiter for control memory | |
US7574629B2 (en) | Method and device for switching between agents | |
US9806904B2 (en) | Ring controller for PCIe message handling | |
US9160607B1 (en) | Method and apparatus for deadlock avoidance | |
US8949500B2 (en) | Non-blocking processor bus bridge for network processors or the like | |
EP2406723B1 (en) | Scalable interface for connecting multiple computer systems which performs parallel mpi header matching | |
RU2509348C2 (ru) | Способ и устройство для обеспечения потоков на основе идентификатора через шину pci express | |
US8145967B2 (en) | System and method for verifying the receive path of an input/output component | |
US8943507B2 (en) | Packet assembly module for multi-core, multi-thread network processors | |
US20060047849A1 (en) | Apparatus and method for packet coalescing within interconnection network routers | |
US7979588B1 (en) | Data storage system having acceleration path for congested packet switching network | |
US8078928B2 (en) | System and method for verifying the transmit path of an input/output component | |
US7769928B1 (en) | Data storage system having CPUs adapted to perform a second atomic operation request prior to completion of a first atomic operation request | |
US10938622B2 (en) | Interconnection network for integrated circuit with fault detection circuitry provided locally to an upstream location | |
US20060265541A1 (en) | Method and apparatus for generating traffic in an electronic bridge via a local controller | |
US7987229B1 (en) | Data storage system having plural data pipes | |
US6345371B1 (en) | Method of performing diagnostic procedures on a queue structure | |
US11593281B2 (en) | Device supporting ordered and unordered transaction classes | |
US8250243B2 (en) | Diagnostic data collection and storage put-away station in a multiprocessor system | |
US9665519B2 (en) | Using a credits available value in determining whether to issue a PPI allocation request to a packet engine | |
US9338219B2 (en) | Direct push operations and gather operations | |
US7340570B2 (en) | Engine for comparing a key with rules having high and low values defining a range | |
WO2022247422A1 (zh) | 资源队列管理接口的验证方法、电子设备、存储介质 | |
US6976142B1 (en) | Method and system to provide simultaneous access by multiple pipelines to a table |
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 |