CN118295943A - 读响应保序方法、系统、存储介质及电子设备 - Google Patents
读响应保序方法、系统、存储介质及电子设备 Download PDFInfo
- Publication number
- CN118295943A CN118295943A CN202410341565.XA CN202410341565A CN118295943A CN 118295943 A CN118295943 A CN 118295943A CN 202410341565 A CN202410341565 A CN 202410341565A CN 118295943 A CN118295943 A CN 118295943A
- Authority
- CN
- China
- Prior art keywords
- request
- read
- identifier
- read response
- activation
- 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.)
- Pending
Links
- 230000004044 response Effects 0.000 title claims abstract description 192
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000004321 preservation Methods 0.000 title description 13
- 230000004913 activation Effects 0.000 claims abstract description 129
- 238000012545 processing Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 11
- 230000005540 biological transmission Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000003213 activating effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Bus Control (AREA)
Abstract
本申请涉及一种读响应保序方法、系统、存储介质及电子设备。所述方法包括:PCIe设备在对接收到的读请求分配读请求标识后,基于读请求标识将读请求的请求类型信息存储至读响应缓存中,PCIe设备在读请求属于DMA类型的情况下,将读请求标识存储至DMA通道号对应的请求顺序队列中,激活模块基于请求顺序队列,配置DMA通道号对应的标识激活逻辑,并在PCIe设备接收到携带读响应标识的读响应数据时,从读响应缓存中获取与读响应标识匹配的目标读请求的目标请求类型信息,结合目标请求类型信息和标识激活逻辑,确定读响应标识的激活状态。采用上述方法能够有效的节省硬件资源。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种读响应保序方法、系统、存储介质及电子设备。
背景技术
随着计算产业的快速发展,对芯片的算力和访存性能提出了更高的要求,PCIExpress(PCIe)也得到了越来越广泛的应用。PCIe是一种高速串行计算机扩展总线标准,旨在实现更高的数据速率并简化系统设计,其内部通常集成了DMA(Direct Memory Access,直接存储器访问)控制器,以适应现代计算机的最新带宽需求。DMA通常用于提供在外设和存储器之间或存储器和存储器之间的高速数据传输,无需CPU的干预,通过DMA数据可以快速的移动,从而节省CPU的资源来做其他操作。同时,为了提供更高的数据吞吐量和更低的延迟,DMA通常可以分为若干通道,每个通道可以独立的完成各自的任务,以满足现代计算和存储系统的需求。
在面对拥有相互独立的多通道DMA控制器时,通常需要每个通道内实现读响应ID的保序,而通道间可以乱序发出,既保证了每个通道内响应数据的顺序,也保证了通道间的独立和PCIe总线的传输效率。另外,对于非DMA类型的请求,通常不需要进行保序处理。因此,亟需提供一种在非DMA请求和多通道DMA请求同时存在的情况下的读响应保序方法。
发明内容
基于此,有必要针对上述技术问题,提供一种能够在非DMA请求和多通道DMA请求同时存在的情况下提供保序逻辑的读响应保序方法、系统、存储介质及电子设备。
第一方面,本申请提供了一种读响应保序方法,应用于PCIe设备,PCIe设备配置有读响应缓存、保序队列和激活模块,激活模块分别与读响应缓存和保序队列连接;保序队列包括多个DMA通道分别对应的请求顺序队列;该方法包括:
PCIe设备在对接收到的读请求分配读请求标识后,基于读请求标识将读请求的请求类型信息存储至读响应缓存中;请求类型信息用于指示读请求是否为DMA类型及DMA读请求的DMA通道号;
PCIe设备在读请求属于DMA类型的情况下,将读请求标识存储至DMA通道号对应的请求顺序队列中;
激活模块基于请求顺序队列,配置DMA通道号对应的标识激活逻辑,并在PCIe设备接收到携带读响应标识的读响应数据时,从读响应缓存中获取与读响应标识匹配的目标读请求的目标请求类型信息,结合目标请求类型信息和标识激活逻辑,确定读响应标识的激活状态。
在其中一个实施例中,结合目标请求类型信息和标识激活逻辑,确定读响应标识的激活状态,包括:
激活模块在目标读请求属于DMA类型的情况下,根据目标请求类型信息中目标读请求的目标DMA通道号,确定所述目标DMA通道号对应的标识激活逻辑;
激活模块对读响应标识与目标DMA通道号对应的标识激活逻辑进行匹配,得到匹配结果;
激活模块基于匹配结果,确定读响应标识的激活状态。
在其中一个实施例中,标识激活逻辑包括请求顺序队列中的当前指定标识,激活模块基于匹配结果,确定读响应标识的激活状态,包括:
激活模块在读响应标识与目标DMA通道号对应的当前指定标识相同的情况下,激活读响应标识。
在其中一个实施例中,激活模块基于匹配结果,确定读响应标识的激活状态,还包括:
激活模块在读响应标识与目标DMA通道号对应的当前指定标识不相同的情况下,确定读响应标识处于未激活状态。
在其中一个实施例中,该方法还包括:
保序队列更新目标DMA通道号对应的请求顺序队列中的当前指定标识;
激活模块基于更新后的当前指定标识,更新目标DMA通道号对应的标识激活逻辑。
在其中一个实施例中,结合目标请求类型信息和标识激活逻辑,确定读响应标识的激活状态,还包括:
激活模块在目标读请求不属于DMA类型的情况下,激活读响应标识。
在其中一个实施例中,读响应缓存包括多个存储单元,存储单元与预先配置的标识一一对应;基于读请求标识将读请求的请求类型信息存储至读响应缓存中,包括:
将读请求标识和请求类型信息,存储至与读请求标识对应的存储单元中。
第二方面,本申请还提供了一种读响应保序系统。该系统包括设置于PCIe设备读响应缓存、保序队列、激活模块及处理单元,所述激活模块分别与所述读响应缓存和所述保序队列连接;所述保序队列包括多个DMA通道分别对应的请求顺序队列;
所述处理单元,用于在对接收到的读请求分配读请求标识后,基于所述读请求标识将所述读请求的请求类型信息存储至所述读响应缓存中;所述请求类型信息用于指示所述读请求是否为DMA类型及DMA读请求的DMA通道号;
所述处理单元,用于在所述读请求属于DMA类型的情况下,将所述读请求标识存储至所述DMA通道号对应的所述请求顺序队列中;
所述激活模块基于所述请求顺序队列,配置所述DMA通道号对应的标识激活逻辑,并在所述PCIe设备接收到携带读响应标识的读响应数据时,从所述读响应缓存中获取与所述读响应标识匹配的目标读请求的目标请求类型信息,结合所述目标请求类型信息和所述标识激活逻辑,确定所述读响应标识的激活状态。
第三方面,本申请还提供了一种计算机可读存储介质。该计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面提供的步骤。
第四方面,本申请还提供了一种计算机程序产品。该计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述第一方面提供的步骤。
上述读响应保序方法、系统、存储介质及电子设备,PCIe设备在对接收到的读请求分配读请求标识后,基于读请求标识将读请求的请求类型信息存储至读响应缓存中,PCIe设备在读请求属于DMA类型的情况下,将读请求标识存储至DMA通道号对应的请求顺序队列中,激活模块基于请求顺序队列,配置DMA通道号对应的标识激活逻辑,并在PCIe设备接收到携带读响应标识的读响应数据时,从读响应缓存中获取与读响应标识匹配的目标读请求的目标请求类型信息,结合目标请求类型信息和标识激活逻辑,确定读响应标识的激活状态。本申请可以简化非DMA请求和多通道DMA请求同时存在的情况下的保序逻辑,通过按通道管理顺序,按ID进行激活的方法,在应对PCIe总线发过来的同时存在不保序的请求和多通道内DMA保序的请求时,能有效的节省硬件资源。
附图说明
图1为一个实施例中读响应保序方法的应用环境图;
图2为一个实施例中读响应保序方法的流程示意图;
图3为一个实施例中PCIe设备内部保序队列、激活模块和读响应缓存的结构示意图;
图4为一个实施例中确定读响应标识的激活状态的流程示意图;
图5为另一个实施例中PCIe设备内部保序队列、激活模块和读响应缓存的结示意图;
图6为一个实施例中读响应保序系统的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在对本申请实施例进行介绍说明之前,首先对本申请中涉及的相关名词进行解释说明。
PCIe(Peripheral Component Interconnect Express):是一种高速串行计算机扩展总线标准,用于连接扩展卡和主处理器之间的数据传输和通信。
PCIe设备:可以指使用PCIe接口连接到计算机主板的扩展卡或外部设备,其可以是不同类型的硬件,如PCIe显卡、PCIe存储卡、PCIe加速卡等。
先进先出队列(First In First Out,FIFO):遵循先进入的元素先被处理,后进入的元素后被处理的原则,新元素被添加到队列的末尾,而从队列中移除元素时,总是从队列的头部进行。
PCIe控制器一般会将总线上的数据转换成AXI或其他常用协议,用于访问片上内存空间。当PCIe控制器内部的DMA控制器发出读请求的时候,通常需要由用户实现读响应保序,即不同ID的读响应发出顺序,需要与接收到的读请求顺序保持一致。然而,面对拥有相互独立的多通道DMA控制器时,需要每个通道内实现读响应ID的保序,而通道间可以乱序发出,这样即保证了每个通道内响应数据的顺序,也保证了通道间的独立和PCIe总线的流水的高效。
另外,对于非DMA的请求,一般是不需要保序的,这样用户需要解决如下问题:(1)非DMA的读响应不需要保序;(2)DMA通道内的读响应需要保序;(3)DMA通道间互不影响;(4)对于DMA和非DMA的读请求ID是不固定的。
针对上述问题,当前同时处理多通道ID保序时,通常采用reorder buffer的方案,但有如下几个问题:
第一、由于reorder buffer中可能存在不需要保序的响应(非DMA请求),则不能按照reorder buffer的顺序来发送,这需要额外非常复杂的逻辑来实现,且占用硬件资源。
第二,对非DMA请求设置一个buffer,对每个DMA通道设置一个reorder buffer,由于ID对应的请求类型(DMA或非DMA)是不固定的,则每个buffer都需要按照最大ID个数来设置,但这又存在着极大的资源浪费。
现有技术的缺点和不足如上述,本申请意在简化非DMA请求和多通道DMA请求同时存在的情况下的保序逻辑,从而减小硬件开销。
下述将对本申请实施例提供方案的实施环境进行说明。
本申请实施例提供的读响应保序方法,可以应用于如图1所示的应用环境中。其中,PCIe设备102通过PCIe接口与主机(CPU)104通信,在PCIe总线上,主机104和PCIe设备102之间通过特定的协议来交换数据和控制信息。主机104可以访问PCIe设备102的寄存器和内存空间,例如,主机104根据特定的地址、命令和数据向PCIe设备102发送读写请求,PCIe设备102接收请求并返回相应的数据或状态信息。其中,PCIe设备可以配置有多个DMA通道。
下述为本申请方法实施例,通过该方法实施例对超声空化强度表征方法进行说明,对于本申请方法实施例中未披露的细节,请参照上述实施例。
在一个实施例中,如图2所示,提供了一种读响应保序方法,以该方法应用于图1中的PCIe设备为例进行说明,其中,请参见图3,本申请实施例的PCIe设备配置有读响应缓存、保序队列和激活模块,激活模块分别与读响应缓存和保序队列连接;保序队列包括多个DMA通道分别对应的请求顺序队列,该方法包括以下步骤:
步骤202,PCIe设备在对接收到的读请求分配读请求标识后,基于读请求标识将读请求的请求类型信息存储至读响应缓存中。
其中,请求类型信息用于指示读请求是否为DMA类型及DMA读请求的DMA通道号。
在本申请实施例中,PCIe设备可以预先配置标识集合,该标识集合中包括多个可用于分配的标识,在PCIe设备接收到读请求后,为该读请求分配读请求标识,并将该读请求标识、该读请求是否为DMA类型以及当该读请求为DMA类型时,其对应的DMA通道号存储至读响应缓存中。
在一种可能的实现方式中,读响应缓存可以包括多个存储单元,存储单元与预先配置的标识一一对应,PCIe设备在接收到读请求之后,可以从可用的标识集合中随机为该读请求分配读请求标识,并将该读请求标识和请求类型信息,存储至与读请求标识对应的存储单元中。
示例性地,请参考图3,PCIe设备内配置有n个DMA通道,预设最大的ID(标识)个数为m,读响应缓存中可以设置m个存储单元,m个存储单元与m个ID对应,可以用于存储每个ID的ID号,请求类型信息(包括是否是DMA类型,以及DMA类型对应DMA的通道号)及读响应数据。每当收到读请求时,可以将分配的ID号、请求类型信息写入对应的存储单元,每当收到读响应时,即可以根据读响应ID号,将读响应数据写入对应的存储单元。
步骤204,PCIe设备在读请求属于DMA类型的情况下,将读请求标识存储至DMA通道号对应的请求顺序队列中。
其中,请求顺序队列可以用于存储与之对应DMA通道号的读请求ID,并且用于记录每个通道内ID顺序。
在一种可能实现方式中,请求顺序队列可以采用FIFO的形式,即保序队列中设置有n个DMA的通道号分别对应的n个FIFO队列,每个FIFO队列用于存储与之对应DMA通道的读请求ID,并按照ID的先后顺序进行存储。由于FIFO天然的具有先进先出的特点,因此,FIFO的读指针总是指向当前最先进入的ID号,本申请实施例可以将当前最先进入的ID号作为当前指定标识。
本申请实施例在读请求属于DMA类型的情况下,PCIe设备将该读请求分配的读请求ID号,存储至该读请求的DMA通道号对应的请求顺序队列中。
步骤206,激活模块基于请求顺序队列,配置DMA通道号对应的标识激活逻辑,并在PCIe设备接收到携带读响应标识的读响应数据时,从读响应缓存中获取与读响应标识匹配的目标读请求的目标请求类型信息,结合目标请求类型信息和标识激活逻辑,确定读响应标识的激活状态。
请参见图3,本申请实施例的激活模块可以包括多个DMA通道对应的标识激活逻辑,其可以实时获取保序队列中各请求顺序队列中最先进入的ID号,即当前指定标识,基于各请求顺序队列的当前指定标识确定各DMA通道分别对应的标识激活逻辑。
可以理解,在接收到携带读响应标识的读响应数据时,PCIe设备可以根据读响应标识将读响应数据存入读响应缓存里与之匹配的存储单元中。例如,在接收到携带读响应ID为5的读响应数据时,与之匹配的目标读请求ID为5,将读响应数据保存至读请求ID为5对应的存储单元中。
本申请实施例的激活模块从读响应缓存中获取目标读请求对应的目标请求类型信息,并结合目标请求类型信息和标识激活逻辑,确定读响应标识的激活状态。其中,读响应标识处于激活状态用于表征该读响应数据满足保序条件,可以进行发送。
上述读响应保序方法中,PCIe设备在对接收到的读请求分配读请求标识后,基于读请求标识将读请求的请求类型信息存储至读响应缓存中,PCIe设备在读请求属于DMA类型的情况下,将读请求标识存储至DMA通道号对应的请求顺序队列中,激活模块基于请求顺序队列,配置DMA通道号对应的标识激活逻辑,并在PCIe设备接收到携带读响应标识的读响应数据时,从读响应缓存中获取与读响应标识匹配的目标读请求的目标请求类型信息,结合目标请求类型信息和标识激活逻辑,确定读响应标识的激活状态。本申请实施例可以简化非DMA请求和多通道DMA请求同时存在的情况下的保序逻辑,通过按通道管理顺序,按ID进行激活的方法,在应对PCIe总线发过来的同时存在不保序的请求和多通道内DMA保序的请求时,能有效的节省硬件资源。
在一个实施例中,如图4所示,步骤406中的结合目标请求类型信息和标识激活逻辑,确定读响应标识的激活状态,包括:
步骤402,激活模块在目标读请求属于DMA类型的情况下,根据所述目标读请求的目标DMA通道号,确定所述目标DMA通道号对应的标识激活逻辑。
步骤404,激活模块对读响应标识与目标DMA通道号对应的标识激活逻辑进行匹配,得到匹配结果。
步骤406,激活模块基于匹配结果,确定读响应标识的激活状态。
示例性地,本申请实施例在接收到读响应报文时,解析出读响应数据和读响应标识,然后将读响应数据存储在读响应缓存中该读响应标识对应的存储单元里;并且,每次来读响应数据时,激活模块从存储单元中获取该读响应标识匹配的目标读请求的请求类型信息,并判断其是否是DMA类型,如果是DMA类型的话,根据其对应的目标DMA通道,然后将该通道对应的标识激活逻辑与读响应或目标读请求ID号进行匹配。
可以理解,本申请实施例激活模块中的各个标识激活逻辑、DMA通道和请求顺序队列,三者是一一对应的,所以激活模块中各个标识激活逻辑知晓其所对应的DMA通道号。
本申请实施例的标识激活逻辑包括请求顺序队列中的当前指定标识,激活模块在读响应标识与目标DMA通道号对应的当前指定标识相同的情况下,激活读响应标识。激活模块在读响应标识与目标DMA通道号对应的当前指定标识不相同的情况下,确定读响应标识处于未激活状态,即不激活该读响应标识。
例如,DMA通道0先收到一个ID为5的读请求,则将5写入编号为0的FIFO中,DMA通道0又收到一个ID为6的读请求,再将6写入编号为0的FIFO,此时,编号为0的FIFO的当前指定标识为5,激活模块中DMA通道0对应的标识激活逻辑即当前指示标识5。当收到ID为6的读响应时,激活模块判断ID为6对应的目标请求类型属于DMA类型,并确定目标DMA通道号为0,则激活模块将DMA通道0对应的标识激活逻辑与读响应或读请求ID进行匹配,即将当前指示标识5和ID号6进行匹配,从而确定其不匹配即不符合发送顺序。
在一个实施例中,步骤206中的结合目标请求类型信息和标识激活逻辑,确定读响应标识的激活状态,包括:激活模块在目标读请求不属于DMA类型的情况下,直接激活该读响应标识。
在一个实施例中,在步骤406的过程中,激活模块在读响应标识与目标DMA通道号对应的当前指定标识相同的情况下,激活该读响应标识,在激活该读响应标识之后,保序队列可以更新目标DMA通道号对应的请求顺序队列中的当前指定标识;激活模块基于更新后的当前指定标识,更新目标DMA通道号对应的标识激活逻辑。
在一个实施例中,如图5所示,提供了一种读响应保序方法,该方法包括:
步骤A1,PCIe设备共有64个DMA通道,最大ID个数设置为128。
步骤A2,首先设置128个存储空间,对应每个ID,用于存储每个ID的ID号,请求类型(包括是否是DMA,以及DMA的通道号)和读响应数据。每当收到请求时,将ID号、请求类型写入对应的存储单元,每当收到读响应时,根据读响应的ID号,将响应数据写入对应的存储单元。
步骤A3,同时设置64个FIFO,用来记录每个通道内的ID顺序,如通道0收到一个ID为5的读请求,则将5写入编号为0的FIFO中,通道0又收到一个ID为6的读请求,再将6写入编号为0的FIFO。由于FIFO天然的具有先进先出的特点,因此FIFO的读指针总是指向当前最先进入的ID号。如此时收到ID为6的读响应,由于不符合发送顺序(先发5,再发6),因此ID为6的读响应悬挂;如此时收到ID为5的读响应,由于符合发送顺序,则激活该ID,同时拉高一次通道0的读使能,下一个时刻通道0最前面的ID号就由5更新为6。
步骤A4,激活逻辑同样有128个,对应每一个ID,每个ID被激活,则表明该ID的读响应满足发送条件,反之不满足。当每个ID收到对应的响应数据后,首先查看该ID是否是DMA类型,如果不是DMA类型,则直接激活;如果是DMA类型,则需要查看是否满足保序条件,如收到了ID为8的读响应且属于DMA类型,同时ID为8的通道号是3,但此时通道3的保序FIFO最前面的ID是9,则不满足发送条件,如通道3的保序FIFO最前面的ID是8,则激活该ID。由于有128个激活单元,因此同一时刻,可能会有多个被激活的ID,此时采用轮询仲裁的方式即可。
本实施例采用如上述的方法,既不需要额外的逻辑搜索被激活的ID的位置,也不需要过多的reorder buffer,能有效的节省硬件资源。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的读响应保序方法的读响应保序系统。该系统所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个读响应保序系统实施例中的具体限定可以参见上文中对于读响应保序方法的限定,在此不再赘述。
在一个实施例中,如图6所示,提供了一种读响应保序系统,包括设置于PCIe设备的读响应缓存602、保序队列604、激活模块606及处理单元608,所述激活模块606分别与所述读响应缓存602和所述保序队列604连接;所述保序队列604包括多个DMA通道分别对应的请求顺序队列,其中:
所述处理单元608,用于在对接收到的读请求分配读请求标识后,基于所述读请求标识将所述读请求的请求类型信息存储至所述读响应缓存中;所述请求类型信息用于指示所述读请求是否为DMA类型及DMA读请求的DMA通道号;
所述处理单元608,还用于在所述读请求属于DMA类型的情况下,将所述读请求标识存储至所述DMA通道号对应的所述请求顺序队列中;
所述激活模块604,用于基于所述请求顺序队列,配置所述DMA通道号对应的标识激活逻辑,并在所述PCIe设备接收到携带读响应标识的读响应数据时,从所述读响应缓存中获取与所述读响应标识匹配的目标读请求的目标请求类型信息,结合所述目标请求类型信息和所述标识激活逻辑,确定所述读响应标识的激活状态。
上述读响应保序系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种电子设备,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种读响应保序方法,其特征在于,应用于PCIe设备,所述PCIe设备配置有读响应缓存、保序队列和激活模块,所述激活模块分别与所述读响应缓存和所述保序队列连接;所述保序队列包括多个DMA通道分别对应的请求顺序队列;所述方法包括:
所述PCIe设备在对接收到的读请求分配读请求标识后,基于所述读请求标识将所述读请求的请求类型信息存储至所述读响应缓存中;所述请求类型信息用于指示所述读请求是否为DMA类型及DMA读请求的DMA通道号;
所述PCIe设备在所述读请求属于DMA类型的情况下,将所述读请求标识存储至所述DMA通道号对应的所述请求顺序队列中;
所述激活模块基于所述请求顺序队列,配置所述DMA通道号对应的标识激活逻辑,并在所述PCIe设备接收到携带读响应标识的读响应数据时,从所述读响应缓存中获取与所述读响应标识匹配的目标读请求的目标请求类型信息,结合所述目标请求类型信息和所述标识激活逻辑,确定所述读响应标识的激活状态。
2.根据权利要求1所述的方法,其特征在于,所述结合所述目标请求类型信息和所述标识激活逻辑,确定所述读响应标识的激活状态,包括:
所述激活模块在所述目标读请求属于DMA类型的情况下,根据所述目标请求类型信息中所述目标读请求的目标DMA通道号,确定所述目标DMA通道号对应的标识激活逻辑;
所述激活模块对所述读响应标识与所述目标DMA通道号对应的标识激活逻辑进行匹配,得到匹配结果;
所述激活模块基于所述匹配结果,确定所述读响应标识的激活状态。
3.根据权利要求2所述的方法,其特征在于,所述结合所述目标请求类型信息和所述标识激活逻辑,确定所述读响应标识的激活状态,还包括:
所述激活模块在所述目标读请求不属于DMA类型的情况下,激活所述读响应标识。
4.根据权利要求2所述的方法,其特征在于,所述标识激活逻辑包括所述请求顺序队列中的当前指定标识,所述激活模块基于所述匹配结果,确定所述读响应标识的激活状态,包括:
所述激活模块在所述读响应标识与所述目标DMA通道号对应的所述当前指定标识相同的情况下,激活所述读响应标识。
5.根据权利要求4所述的方法,其特征在于,所述激活模块基于所述匹配结果,确定所述读响应标识的激活状态,还包括:
所述激活模块在所述读响应标识与所述目标DMA通道号对应的所述当前指定标识不相同的情况下,确定所述读响应标识处于未激活状态。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
所述保序队列更新所述目标DMA通道号对应的所述请求顺序队列中的当前指定标识;
所述激活模块基于所述更新后的当前指定标识,更新所述目标DMA通道号对应的标识激活逻辑。
7.根据权利要求1所述的方法,其特征在于,所述读响应缓存包括多个存储单元,所述存储单元与预先配置的标识一一对应;所述基于所述读请求标识将所述读请求的请求类型信息存储至所述读响应缓存中,包括:
将所述读请求标识和所述请求类型信息,存储至与所述读请求标识对应的所述存储单元中。
8.一种读响应保序系统,其特征在于,所述系统包括设置于PCIe设备读响应缓存、保序队列、激活模块及处理单元,所述激活模块分别与所述读响应缓存和所述保序队列连接;所述保序队列包括多个DMA通道分别对应的请求顺序队列;
所述处理单元,用于在对接收到的读请求分配读请求标识后,基于所述读请求标识将所述读请求的请求类型信息存储至所述读响应缓存中;所述请求类型信息用于指示所述读请求是否为DMA类型及DMA读请求的DMA通道号;
所述处理单元,用于在所述读请求属于DMA类型的情况下,将所述读请求标识存储至所述DMA通道号对应的所述请求顺序队列中;
所述激活模块,用于基于所述请求顺序队列,配置所述DMA通道号对应的标识激活逻辑,并在所述PCIe设备接收到携带读响应标识的读响应数据时,从所述读响应缓存中获取与所述读响应标识匹配的目标读请求的目标请求类型信息,结合所述目标请求类型信息和所述标识激活逻辑,确定所述读响应标识的激活状态。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
10.一种电子设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410341565.XA CN118295943A (zh) | 2024-03-25 | 2024-03-25 | 读响应保序方法、系统、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410341565.XA CN118295943A (zh) | 2024-03-25 | 2024-03-25 | 读响应保序方法、系统、存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118295943A true CN118295943A (zh) | 2024-07-05 |
Family
ID=91673693
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410341565.XA Pending CN118295943A (zh) | 2024-03-25 | 2024-03-25 | 读响应保序方法、系统、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118295943A (zh) |
-
2024
- 2024-03-25 CN CN202410341565.XA patent/CN118295943A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109983449B (zh) | 数据处理的方法和存储系统 | |
US8683126B2 (en) | Optimal use of buffer space by a storage controller which writes retrieved data directly to a memory | |
US7287101B2 (en) | Direct memory access using memory descriptor list | |
CN102298561B (zh) | 一种对存储设备进行多通道数据处理的方法、系统和装置 | |
US8447897B2 (en) | Bandwidth control for a direct memory access unit within a data processing system | |
WO2019061270A1 (zh) | 数据缓存装置及控制方法、数据处理芯片、数据处理系统 | |
CN110119304B (zh) | 一种中断处理方法、装置及服务器 | |
US20200225862A1 (en) | Scalable architecture enabling large memory system for in-memory computations | |
US7386642B2 (en) | IO direct memory access system and method | |
US10216634B2 (en) | Cache directory processing method for multi-core processor system, and directory controller | |
US8543722B2 (en) | Message passing with queues and channels | |
CN114003168B (zh) | 用于处理命令的存储设备和方法 | |
CN109213423B (zh) | 基于地址屏障无锁处理并发io命令 | |
US9146693B2 (en) | Storage control device, storage system, and storage control method | |
CN116670661A (zh) | 图形处理器的缓存访问方法、图形处理器及电子设备 | |
CN112732176B (zh) | 基于fpga的ssd访问方法及装置、存储系统及存储介质 | |
CN118295943A (zh) | 读响应保序方法、系统、存储介质及电子设备 | |
CN116225991A (zh) | 固态硬盘控制器、命令调度方法、固态硬盘及存储介质 | |
US11789634B2 (en) | Systems and methods for processing copy commands | |
CN116996449A (zh) | 数据报文处理系统、方法、计算机设备、存储介质 | |
JP2014167818A (ja) | データ転送装置およびデータ転送方法 | |
US6810469B2 (en) | Storage system and method for data transfer between storage systems | |
CN112306927B (zh) | 一种io请求的处理方法、装置及系统 | |
US20030088750A1 (en) | Control chip with mutliple-layer defer queue | |
CN116745754A (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 |