CN115098426B - Pcie设备管理方法、接口管理模块、pcie***、设备和介质 - Google Patents
Pcie设备管理方法、接口管理模块、pcie***、设备和介质 Download PDFInfo
- Publication number
- CN115098426B CN115098426B CN202210711516.1A CN202210711516A CN115098426B CN 115098426 B CN115098426 B CN 115098426B CN 202210711516 A CN202210711516 A CN 202210711516A CN 115098426 B CN115098426 B CN 115098426B
- Authority
- CN
- China
- Prior art keywords
- access command
- response data
- pcie
- command
- access
- 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
- 238000007726 management method Methods 0.000 title claims abstract description 106
- 230000004044 response Effects 0.000 claims abstract description 129
- 230000015654 memory Effects 0.000 claims abstract description 123
- 238000000034 method Methods 0.000 claims abstract description 20
- 230000001133 acceleration Effects 0.000 claims description 24
- 238000012545 processing Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 14
- 238000010586 diagram Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000000977 initiatory effect 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
- 230000001413 cellular effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000013507 mapping Methods 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
- 230000011218 segmentation Effects 0.000 description 1
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/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
-
- 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
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请涉及一种PCIE设备管理方法、接口管理模块、PCIE***、计算机设备和存储介质,其中至少一PCIE设备通过接口管理模块访问处理器内存。该方法包括:通过接口管理模块接收并解析访问命令,得到PCIE设备的设备标识、内存访问地址以及读命令标识;根据访问命令的设备标识和读命令标识确定存放访问命令对应的响应数据的共享存储地址,以及向处理器发送访问命令;接收处理器基于内存访问地址返回的响应数据;将响应数据保存在共享存储地址对应的共享缓存中;向PCIE设备发送响应数据。本申请通过PCIE设备侧来读命令标识,将应答数据存储入共享缓存,从而提高了内存访问的性能。
Description
技术领域
本申请涉及数据处理技术领域,特别是涉及一种PCIE设备管理方法、接口管理模块、PCIE***、计算机设备和存储介质。
背景技术
随着数据处理技术的发展,出现了PCIE设备读取内存数据的技术,PCIE设备对内存进行读操作时,可以携带用于标识PCIE设备的设备号与访问的内存地址外,同时还设置有一个读命令标识,用来识别内存返回数据与读操作的对应关系,且未返回数据时,PCIE设备不能使用重复的读命令标识,这样才能保证读操作的访问成功。
传统技术中,多个PCIE设备进行内存访问时通常需要通过一个公共的接口管理模块进行访问,并且该接口管理模块可以对所有连接的PCIE设备的读命令标识进行统一管理。在PCIE设备发起内存读取操作时,可以由接口管理模块统一分配读命令标识,并且可以根据发起内存读取操作的PCIE设备的设备号,以及访问的内存地址,向内存发送访问命令,来实现数据的读取。然而,上述读命令标识的最大支持数量有限,在内存返回数据延时增加时,则可能导致访问命令数不足,从而导致访问数据断流,降低了内存访问的性能。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高内存访问的性能的PCIE设备管理方法、接口管理模块、PCIE***、计算机设备和存储介质。
第一方面,本申请提供了一种PCIE设备管理方法,应用于接口管理模块,其中至少一PCIE设备通过所述接口管理模块访问处理器内存,所述方法包括:
接收并解析访问命令,得到所述PCIE设备的设备标识、内存访问地址以及读命令标识;
根据所述访问命令的设备标识和读命令标识确定存放所述访问命令对应的响应数据的共享存储地址,以及向所述处理器发送所述访问命令;
接收所述处理器基于所述内存访问地址返回的响应数据;
将所述响应数据保存在所述共享存储地址对应的共享缓存中;
向所述PCIE设备发送所述响应数据。
在其中一个实施例中,所述向所述PCIE设备发送所述响应数据包括:将属于同一访问命令的多个响应数据进行拼接,得到拼接后的响应数据;将所述拼接后的响应数据发送给所述PCIE设备。
在其中一个实施例中,所述将所述拼接后的响应数据发送给所述PCIE设备还包括:将保存所述多个响应数据的所述共享缓存地址进行释放。
在其中一个实施例中,所述接收并解析访问命令之前包括:接收并解析所述PCIE设备发送的访问命令请求,获得所述访问命令对应的带宽;判断所述访问命令对应的带宽与当前可使用带宽的大小关系,在所述访问命令对应的带宽小于或者等于所述当前可使用带宽的情况下,调度所述访问命令,否则不调度所述访问命令。
在其中一个实施例中,所述判断所述访问命令对应的带宽与当前可使用带宽的大小关系,在所述访问命令对应的带宽小于或者等于所述当前可使用带宽的情况下,则调度所述访问命令,否则不调度所述访问命令具体包括:判断所述访问命令对应的带宽与第一当前可使用带宽的大小关系,以及判断所述访问命令对应的带宽与第二当前可使用带宽的大小关系,其中所述第一当前可使用带宽为所述PCIE设备设置的独立带宽中当前可使用的带宽,所述第二当前可使用带宽为预先设置的共享带宽中当前可使用的带宽;在所述访问命令对应的带宽小于或者等于所述第一当前可使用带宽,或者所述访问命令带宽小于或者等于所述第二当前可使用带宽的情况下,调度所述访问命令,否则不调度所述访问命令。
第二方面,本申请提供了一种接口管理模块,至少一PCIE设备通过所述接口管理模块访问处理器内存,所述接口管理模块包括:接收模块、发送模块、处理模块以及共享缓存模块;其中,
所述接收模块,用于接收访问命令;
所述处理模块,用于解析所述访问命令,得到PCIE设备的设备标识、内存访问地址以及读命令标识,根据所述访问命令的设备标识和读命令标识确定所述访问命令对应的响应数据的共享存储地址;
所述发送模块,用于向处理器发送所述访问命令;
所述接收模块,还用于接收所述处理器基于所述内存访问地址返回的响应数据;
所述共享缓存模块,用于保存所述响应数据;
所述发送模块还用于向所述PCIE设备发送所述响应数据。
在其中一个实施例中,所述处理模块还用于从所述共享缓存中读取所述响应数据,并将属于同一访问命令的多个响应数据进行拼接,得到拼接后的响应数据;所述发送模块还用于将所述拼接后的响应数据发送给所述PCIE设备。
第三方面,本申请提供了一种PCIE***,包括:处理器、至少一PCIE设备、至少一PCIE设备加速模块以及如第二方面任一项实施例所述的接口管理模块,
所述PCIE设备基于自身的设备标识、要访问的内存地址生成读数据命令;
所述PCIE设备加速模块接收并解析所述读数据命令,获得所述PCIE设备的设备标识、内存地址,并确定读命令标识,根据所述PCIE设备的设备标识、内存地址以及读命令标识生成访问命令,发送所述访问命令;
所述处理器用于接收并解析所述访问命令,获得所述内存地址,从所述内存地址中读取响应数据,并将所述响应数据发送给所述接口管理模块。
第四方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
接收并解析访问命令,得到所述PCIE设备的设备标识、内存访问地址以及读命令标识;
根据所述访问命令的设备标识和读命令标识确定存放所述访问命令对应的响应数据的共享存储地址,以及向所述处理器发送所述访问命令;
接收所述处理器基于所述内存访问地址返回的响应数据;
将所述响应数据保存在所述共享存储地址对应的共享缓存中;
向所述PCIE设备发送所述响应数据。
第五方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
接收并解析访问命令,得到所述PCIE设备的设备标识、内存访问地址以及读命令标识;
根据所述访问命令的设备标识和读命令标识确定存放所述访问命令对应的响应数据的共享存储地址,以及向所述处理器发送所述访问命令;
接收所述处理器基于所述内存访问地址返回的响应数据;
将所述响应数据保存在所述共享存储地址对应的共享缓存中;
向所述PCIE设备发送所述响应数据。
上述PCIE设备管理方法、接口管理模块、PCIE***、计算机设备和存储介质,其中至少一PCIE设备通过接口管理模块访问处理器内存,通过接口管理模块接收并解析访问命令,得到PCIE设备的设备标识、内存访问地址以及读命令标识;根据访问命令的设备标识和读命令标识确定存放访问命令对应的响应数据的共享存储地址,以及向处理器发送访问命令;接收处理器基于内存访问地址返回的响应数据;将响应数据保存在共享存储地址对应的共享缓存中;向PCIE设备发送响应数据。本申请提供的接口管理模块可以从PCIE设备的加速模块接收并解析的访问命令,从而得到设备标识和读命令标识,并将响应数据存储入与设备标识和读命令标识匹配的共享缓存,从而可以从共享缓存中将存储的响应数据返回至PCIE设备,本申请可以通过PCIE设备侧来实现读命令标识管理,从而解决了由接口管理模块实现读命令标识的统一管理,而造成的读命令标识的最大支持数量有限,同时,还可以将响应数据存储入共享缓存,通过共享缓存统一管理响应数据,避免了需要各个PCIE设备单独进行缓存管理,从而提高了内存访问的性能。
附图说明
图1为一个实施例中PCIE设备管理方法的架构示意图;
图2为一个实施例中PCIE设备管理方法的流程示意图;
图3为一个实施例中向PCIE设备发送响应数据的流程示意图;
图4为一个实施例中调度访问命令的流程示意图;
图5为一个实施例中接口管理模块的结构框图;
图6为一个实施例中PCIE***的结构示意图;
图7为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的PCIE设备管理方法,可以应用于如图1所示的应用环境中。其中,接口管理模块通过与多个PCIE设备的加速模块,即PCIE设备1加速模块、PCIE设备2加速模块、……、PCIE设备n加速模块进行通信。具体来说,上述PCIE设备可以通过其加速模块向接口管理模块发起用于访问处理器内存的访问命令,该访问命令中可以携带有PCIE设备的设备标识,访问的内存地址,即内存访问地址,以及用于表征为内存读取命令的读命令标识。之后接口管理模块接收到访问命令后,则可以对其进行解析,从中得到上述设备标识、内存访问地址以及读命令标识,并且可以基于设备标识以及读命令标识,来确定响应数据的共享存储地址,并且向处理器发送访问命令。处理器则可以基于访问命令中包含的内存访问地址,得到相应的响应数据返回接口管理模块,从而接口管理模块则可以将返回的响应数据保存在共享存储地址对应的共享缓存中,并将其发送至发起访问命令的PCIE设备。
在一个实施例中,如图2所示,提供了一种PCIE设备管理方法,以该方法应用于图1中的接口管理模块为例进行说明,PCIE设备可以通过上述接口管理模块来访问处理器内存,具体包括以下步骤:
步骤S201,接收并解析访问命令,得到PCIE设备的设备标识、内存访问地址以及读命令标识。
其中访问命令指的是由PCIE设备的加速模块发起的,用于访问处理器内存的命令,该PCIE设备可以是与接口管理模块连接的任意一个PCIE设备,而设备标识则指的是发起上述访问命令对应的PCIE设备的标识,该标识可以是bdf标识用16位id号来表征,其构成为8位bus id,5位device id和3位function id,而内存访问地址则是内存读取命令读取的处理器内存的内存地址,读命令标识则是用于表征处理器返回数据与读操作的对应关系的标识,该读命令标识可以是PCIE设备的加速模块产生,并在发送访问命令时,将该读命令标识一并发送至接口管理模块。
具体来说,PCIE设备在通过其加速模块触发用于访问处理器内存的访问命令时,可以获取该PCIE设备的设备标识、读取的处理器内存的内存访问地址,以及生成用于表征处理器返回数据与读操作的对应关系的读命令标识,并基于上述设备标识、内存访问地址以及读命令标识构建相应的访问命令,发送至与其连接的接口管理模块中,而接口管理模块则可以接收该PCIE设备发送的访问命令,并且从中解析得到相应的设备标识、内存访问地址以及读命令标识。
步骤S202,根据访问命令的设备标识和读命令标识确定存放访问命令对应的响应数据的共享存储地址,以及向处理器发送访问命令。
共享存储地址指的是响应数据在共享缓存中的存储地址,本实施例中,为了保证不同访问命令的响应数据可以存储于共享缓存中不同的共享缓存地址,在接口管理模块完成PCIE设备的设备标识、内存访问地址以及读命令标识的获取后,还可以利用上述设备标识和读命令标识,确定出一个对应的共享存储地址,并建立设备标识和读命令标识,与共享存储地址的对应关系。
而假如访问命令是多个时,例如可以是由不同PCIE设备通过对应的加速模块发起的访问命令,也可以是由同一个PCIE设备通过其加速模块发起的多个访问命令,那么也可以在得到每一个访问命令的设备标识和读命令标识后,接口管理模块还可以得到每一个访问命令的共享缓存地址,从而构建出每一个访问命令的设备标识和读命令标识,与每一个访问命令的共享缓存地址之间的对应关系,从而形成设备标识以及读命令标识,与共享缓存地址之间的映射关系表。
而在确定出响应数据的共享缓存地址后,接口管理模块则可以向处理器发送接收到的访问命令,以使得处理器可以返回与该访问命令相适应的响应数据。
步骤S203,接收处理器基于内存访问地址返回的响应数据;
步骤S204,将响应数据保存在共享存储地址对应的共享缓存中;
步骤S205,向PCIE设备发送响应数据。
而在接口管理模块向处理器发送访问命令后,处理器则可以基于访问命令中的内存访问地址,从相应地址的处理器内存中得到响应数据返回至接口管理模块,该响应数据也可以携带有对应访问命令中包含的设备标识以及读命令标识。同时,接口管理模块接收到响应数据后,则可以利用该设备标识以及读命令标识,将响应数据存入步骤S202确定出的共享存储地址所对应的共享缓存中,并从共享缓存中将存储的响应数据返回至发起相应的响应命令的PCIE设备中。
上述PCIE设备管理方法中,至少一PCIE设备通过接口管理模块访问处理器内存,通过接口管理模块接收并解析访问命令,得到PCIE设备的设备标识、内存访问地址以及读命令标识;根据访问命令的设备标识和读命令标识确定存放访问命令对应的响应数据的共享存储地址,以及向处理器发送访问命令;接收处理器基于内存访问地址返回的响应数据;将响应数据保存在共享存储地址对应的共享缓存中;向PCIE设备发送响应数据。本申请提供的接口管理模块可以通过PCIE设备侧来实现读命令标识管理,从而解决了由接口管理模块实现读命令标识的统一管理,而造成的读命令标识的最大支持数量有限,同时,还可以将响应数据存储入共享缓存,通过共享缓存统一管理响应数据,避免了需要各个PCIE设备单独进行缓存管理,从而提高了内存访问的性能。
进一步地,如图3所示,步骤S205可以进一步包括:
步骤S301,将属于同一访问命令的多个响应数据进行拼接,得到拼接后的响应数据。
本实施例中,同一个访问命令对应的响应数据可以是多个,在访问命令的响应数据的数据长度大于地址边界对齐参数,即rcb时,该数据的返回则会被切分为多个响应数据,从而处理器内存可以按照一定的数据顺序将上述多个响应数据返回至接口管理模块。同时,由于上述多个响应数据都来源于同一个访问命令,那么接口管理模块在将上述多个响应数据存入相同共享存储地址对应的共享缓存中,并且可以对存储在共享缓存中的多个响应数据进行拼接,从而得到拼接后的响应数据。
步骤S302,将拼接后的响应数据发送给所述PCIE设备。
在步骤S301完成多个响应数据的拼接处理,得到拼接后的响应数据后,则可以将拼接后的响应数据,返回至相应的PCIE设备中,以响应PCIE设备发起的访问命令。
本实施例中,在同一访问命令包括多个响应数据的情况下,接口管理模块也可以将存入共享缓存的属于同一访问命令的多个响应数据进行拼接处理,从而得到拼接后的响应数据后,返回至相应的PCIE设备,以解决PCIE设备发起访问命令而造成的响应数据切分乱序的问题。
另外,步骤S302,还可以包括:将保存多个响应数据的共享缓存地址进行释放。
同时,在将拼接后的响应数据发送给PCIE设备之后,为了节省共享缓存地址的数量,还可以将存储该多个响应数据的共享缓存地址进行释放,例如可以是取消共享缓存地址与设备标识以及读命令标识的对应关系,从而实现对该共享缓存地址的解放。
本实施例中,在将拼接后的响应数据发送给PCIE设备后,接口管理模块还可以将该共享缓存进行释放,从而可以节省共享缓存地址的数量,进一步增加共享缓存的利用率。
在一个实施例中,如图4所示,步骤S201之前可以包括:
步骤S401,接收并解析访问命令请求,获得访问命令对应的带宽。
其中,接口管理模块可以将访问命令发送至处理器内存,以实现处理器内存的访问,而访问命令对应的带宽则指的是发起的访问命令所需占用的带宽。本实施例中,通过访问命令从处理器内存中获取相应的响应数据需要占用一部分的数据带宽,因此并非PCIE设备通过其加速模块发起的所有访问命令,都可以直接被接口管理模块接收,还需要判断当前的可用带宽是否支持上述访问命令对应的带宽,该访问命令请求即可以携带有访问命令对应的带宽。具体来说,接口管理模块接收到PCIE设备发送的访问命令请求后,还可以对该接收到的访问命令请求进行解析,从而得到访问命令对应的带宽。
步骤S402,判断访问命令对应的带宽与当前可使用带宽的大小关系,在访问命令对应的带宽小于或者等于当前可使用带宽的情况下,调度访问命令,否则不调度访问命令。
而当前可使用带宽则指的是针对上述访问命令当前可以使用的带宽,之后,接口管理模块则可以判断访问命令对应的带宽与当前可使用带宽的大小关系,本实施例中,只有访问命令对应的带宽要小于或者等于当前可使用带宽的情况下,接口管理模块才会将步骤S401中得到的访问命令请求对应的访问命令进行调度处理,从而使得接口管理模块获取上述访问命令,来执行从处理器内存中获取相应响应数据的过程,而如果访问命令对应的带宽大于上述当前可使用带宽,则不进行访问命令的调度而是对上述访问命令的调度进行等待操作,直到满足访问命令对应的带宽要小于或者等于当前可使用带宽,才将上述访问命令进行调度处理,以保证内存数据的读取效率。
本实施例中,PCIE设备侧发起访问命令后,接口管理模块可以基于该访问命令所对应的带宽,以及当前可使用带宽的大小关系,来判断是否将上述访问命令进行调度处理,从而可以通过上述方式提高带宽利用率,以保证内存数据的读取效率。
进一步地,步骤S402可以进一步包括:判断访问命令对应的带宽与第一当前可使用带宽的大小关系,以及判断访问命令对应的带宽与第二当前可使用带宽的大小关系,其中第一当前可使用带宽为PCIE设备设置的独立带宽中当前可使用的带宽,第二当前可使用带宽为预先设置的共享带宽中当前可使用的带宽;在访问命令对应的带宽小于或者等于第一当前可使用带宽,或者访问命令带宽小于或者等于第二当前可使用带宽的情况下,调度访问命令,否则不调度访问命令。
其中,独立带宽指的是预先为各个PCIE设备配置的带宽,该独立带宽不可被其他PCIE设备占用,而共享带宽则是预先设置的,可供各个PCIE设备共同使用的带宽,第一当前可使用带宽指的是独立带宽中,当前未被占用的部分,而第二当前可使用带宽则指的是共享带宽中,当前未被占用的部分。
具体来说,接口管理模块可以从针对该PCIE设备设置的独立带宽中,获取当前未被占用的部分,作为第一当前可使用带宽,以及从预先设置的共享带宽中,获取当前未被占用的部分,作为第二当前可使用带宽,并分别比对访问命令对应的带宽与第一当前可使用带宽的大小关系,以及比对访问命令对应的带宽与第二当前可使用带宽的大小关系。
如果访问命令对应的带宽小于或者等于第一当前可使用带宽,或者访问命令带宽小于或者等于第二当前可使用带宽,即访问命令对应的带宽小于或者等于第一当前可使用带宽或者第二当前可使用带宽之中的一个时,接口管理模块则可以调度访问命令,否则不调度访问命令。
本实施例中,接口管理模块可以确定出针对于PCIE设备设置的独立带宽中第一当前可使用带宽,以及确定出共享带宽中的第二当前可使用带宽,从而分别比对访问命令对应的带宽与第一当前可使用带宽以及第二当前可使用带宽的大小关系,通过上述方式,可以进一步提高带宽控制的智能性,来进一步保证响应数据的获取效率。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的PCIE设备管理方法的接口管理模块。该接口管理模块所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个接口管理模块实施例中的具体限定可以参见上文中对于数据读取方法的限定,在此不再赘述。
在一示例性实施例中,如图5所示,还提供了一种接口管理模块,至少一PCIE设备通过接口管理模块访问处理器内存,接口管理模块包括:接收模块501、发送模块502、处理模块503以及共享缓存模块504;其中,
接收模块501,用于接收访问命令;
处理模块503,用于解析访问命令,得到PCIE设备的设备标识、内存访问地址以及读命令标识,根据访问命令的设备标识和读命令标识确定访问命令对应的响应数据的共享存储地址;
发送模块502,用于向处理器发送所述访问命令;
接收模块501,还用于接收处理器基于内存访问地址返回的响应数据;
共享缓存模块504,用于保存响应数据;
发送模块502,还用于向PCIE设备发送响应数据。
在一示例性实施例中,处理模块503还用于从共享缓存中读取响应数据,并将属于同一访问命令的多个响应数据进行拼接,得到拼接后的响应数据;发送模块502,还用于将拼接后的响应数据发送给PCIE设备。
在一示例性实施例中,处理模块503还用于将保存多个响应数据的共享缓存地址进行释放。
在一示例性实施例中,接收模块501,还用于接收访问命令请求;处理模块503还用于解析访问命令请求,获得访问命令对应的带宽;判断访问命令对应的带宽与当前可使用带宽的大小关系,在访问命令对应的带宽小于或者等于当前可使用带宽的情况下,调度访问命令,否则不调度访问命令。
在一示例性实施例中,处理模块503还用于判断访问命令对应的带宽与第一当前可使用带宽的大小关系,以及判断访问命令对应的带宽与第二当前可使用带宽的大小关系,其中第一当前可使用带宽为PCIE设备设置的独立带宽中当前可使用的带宽,第二当前可使用带宽为预先设置的共享带宽中当前可使用的带宽;在访问命令对应的带宽小于或者等于第一当前可使用带宽,或者访问命令带宽小于或者等于第二当前可使用带宽的情况下,调度访问命令,否则不调度访问命令。
上述接口管理模块中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,还提供了一种PCIE***,如图6所示,该***包括:处理器、至少一个PCIE设备,即PCIE设备1、PCIE设备2、……、PCIE设备n、至少一个PCIE设备的设备加速模块,即设备加速模块1、设备加速模块2、……、设备加速模块n,以及如上任一项实施例所述的接口管理模块。
其中,各个PCIE设备,可以基于自身的设备标识、要访问的内存地址生成读数据命令。具体来说,上述PCIE设备在构建读数据命令时,可以得到各个设备相应的设备标识,以及需要读取的内存访问地址,从而生成读数据命令。
各个PCIE设备的设备加速模块则可以接收并解析上述读数据命令,从而得到相应的PCIE设备的设备标识、要访问的内存地址,同时由于该命令为读数据命令,还可以确定该命令对应的命令标识,即读命令标识,从而生成访问命令,发送至接口管理模块。
接口管理模块则可以接收并解析PCIE设备加速模块发送的访问命令,从而得到该访问命令中的设备标识、内存访问地址以及读命令标识,并且可以利用上述接收的设备标识和读命令标识,确定存放访问命令对应的响应数据的共享存储地址,以及向处理器发送访问命令;
处理器则可以接收并解析接口管理模块的访问命令,从而得到访问命令中包含的内存地址,从该内存地址中读取响应数据,并将响应数据发送给接口管理模块。
接口管理模块还可以将处理器返回的响应数据存入共享存储地址对应的共享缓存中,并且将响应数据返回至PCIE设备。
上述***中,包括:处理器、至少一PCIE设备、至少一PCIE设备加速模块以及如上任一项实施例所述的接口管理模块;其中,PCIE设备基于自身的设备标识、要访问的内存地址生成读数据命令;PCIE设备加速模块接收并解析读数据命令,获得PCIE设备的设备标识、内存地址,并确定读命令标识,根据PCIE设备的设备标识、内存地址以及读命令标识生成访问命令,发送访问命令;处理器用于接收并解析访问命令,获得内存地址,从内存地址中读取响应数据,并将响应数据发送给所述接口管理模块。本申请提供的PCIE***,接口管理模块可以通过PCIE设备侧来实现读命令标识管理,从而解决了由接口管理模块实现读命令标识的统一管理,而造成的读命令标识的最大支持数量有限,同时,还可以将响应数据存储入共享缓存,通过共享缓存统一管理响应数据,避免了需要各个PCIE设备单独进行缓存管理,从而提高了内存访问的性能。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是连接有至少一个PCIE设备的接口管理模块,其内部结构图可以如图7所示。该计算机设备包括通过***总线连接的处理器、存储器和通信接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***和计算机程序。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种数据读取方法。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(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设备通过所述接口管理模块访问处理器内存,所述方法包括:
接收并解析访问命令,得到所述PCIE设备的设备标识、内存访问地址以及读命令标识;
根据所述访问命令的设备标识和读命令标识确定存放所述访问命令对应的响应数据的共享存储地址,以及向所述处理器发送所述访问命令;
接收所述处理器基于所述内存访问地址返回的响应数据;
将所述响应数据保存在所述共享存储地址对应的共享缓存中;
向所述PCIE设备发送所述响应数据。
2.根据权利要求1所述的方法,其特征在于,所述向所述PCIE设备发送所述响应数据包括:
将属于同一访问命令的多个响应数据进行拼接,得到拼接后的响应数据;
将所述拼接后的响应数据发送给所述PCIE设备。
3.根据权利要求2所述的方法,其特征在于,所述将所述拼接后的响应数据发送给所述PCIE设备还包括:
将保存所述多个响应数据的所述共享缓存地址进行释放。
4.根据权利要求1所述的方法,其特征在于,所述接收并解析访问命令之前包括:
接收并解析所述访问命令请求,获得所述访问命令对应的带宽;
判断所述访问命令对应的带宽与当前可使用带宽的大小关系,在所述访问命令对应的带宽小于或者等于所述当前可使用带宽的情况下,调度所述访问命令,否则不调度所述访问命令。
5.根据权利要求4所述的方法,其特征在于,所述判断所述访问命令对应的带宽与当前可使用带宽的大小关系,在所述访问命令对应的带宽小于或者等于所述当前可使用带宽的情况下,则调度所述访问命令,否则不调度所述访问命令具体包括:
判断所述访问命令对应的带宽与第一当前可使用带宽的大小关系,以及判断所述访问命令对应的带宽与第二当前可使用带宽的大小关系,其中所述第一当前可使用带宽为所述PCIE设备设置的独立带宽中当前可使用的带宽,所述第二当前可使用带宽为预先设置的共享带宽中当前可使用的带宽;
在所述访问命令对应的带宽小于或者等于所述第一当前可使用带宽,或者所述访问命令带宽小于或者等于所述第二当前可使用带宽的情况下,调度所述访问命令,否则不调度所述访问命令。
6.一种接口管理模块,其特征在于,至少一PCIE设备通过所述接口管理模块访问处理器内存,所述接口管理模块包括:接收模块、发送模块、处理模块以及共享缓存模块;其中,
所述接收模块,用于接收访问命令;
所述处理模块,用于解析所述访问命令,得到PCIE设备的设备标识、内存访问地址以及读命令标识,根据所述访问命令的设备标识和读命令标识确定所述访问命令对应的响应数据的共享存储地址;
所述发送模块,用于向处理器发送所述访问命令;
所述接收模块,还用于接收所述处理器基于所述内存访问地址返回的响应数据;
所述共享缓存模块,用于保存所述响应数据;
所述发送模块还用于向所述PCIE设备发送所述响应数据。
7.根据权利要求6所述的接口管理模块,其特征在于,
所述处理模块还用于从所述共享缓存中读取所述响应数据,并将属于同一访问命令的多个响应数据进行拼接,得到拼接后的响应数据;
所述发送模块还用于将所述拼接后的响应数据发送给所述PCIE设备。
8.一种PCIE***,其特征在于,包括:处理器、至少一PCIE设备、至少一PCIE设备加速模块以及如权利要求6-7任一项所述的接口管理模块,
所述PCIE设备基于自身的设备标识、要访问的内存地址生成读数据命令;
所述PCIE设备加速模块接收并解析所述读数据命令,获得所述PCIE设备的设备标识、内存地址,并确定读命令标识,根据所述PCIE设备的设备标识、内存地址以及读命令标识生成访问命令,发送所述访问命令;
所述处理器用于接收并解析所述接口管理模块发送的所述访问命令,获得所述内存地址,从所述内存地址中读取响应数据,并将所述响应数据发送给所述接口管理模块。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210711516.1A CN115098426B (zh) | 2022-06-22 | 2022-06-22 | Pcie设备管理方法、接口管理模块、pcie***、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210711516.1A CN115098426B (zh) | 2022-06-22 | 2022-06-22 | Pcie设备管理方法、接口管理模块、pcie***、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115098426A CN115098426A (zh) | 2022-09-23 |
CN115098426B true CN115098426B (zh) | 2023-09-12 |
Family
ID=83292580
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210711516.1A Active CN115098426B (zh) | 2022-06-22 | 2022-06-22 | Pcie设备管理方法、接口管理模块、pcie***、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115098426B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116028394B (zh) * | 2023-03-29 | 2023-06-16 | 苏州浪潮智能科技有限公司 | 设备信息获取方法、装置、***、通信设备及存储介质 |
CN117519955B (zh) * | 2024-01-08 | 2024-03-29 | 浪潮电子信息产业股份有限公司 | 一种加速设备的控制方法、***、装置及加速设备 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101089829A (zh) * | 2007-08-01 | 2007-12-19 | 杭州华三通信技术有限公司 | 一种共享缓存***及实现方法 |
CN101299757A (zh) * | 2008-05-23 | 2008-11-05 | 华为技术有限公司 | 一种数据共享方法及通讯***以及相关设备 |
CN102722458A (zh) * | 2012-05-29 | 2012-10-10 | 中国科学院计算技术研究所 | 一种用于多根共享***的i/o重映射方法和装置 |
CN102891894A (zh) * | 2012-10-17 | 2013-01-23 | 中国工商银行股份有限公司 | 应用于服务器集群的缓存方法、缓存服务器及缓存*** |
CN103746933A (zh) * | 2013-12-24 | 2014-04-23 | 乐视网信息技术(北京)股份有限公司 | 一种节点分配方法和控制中心 |
CN104111907A (zh) * | 2014-06-27 | 2014-10-22 | 华为技术有限公司 | 一种访问NVMe存储设备的方法和NVMe存储设备 |
CN104246742A (zh) * | 2012-01-17 | 2014-12-24 | 英特尔公司 | 用于远程客户端访问存储设备的命令验证的技术 |
CN111090557A (zh) * | 2019-12-22 | 2020-05-01 | 苏州浪潮智能科技有限公司 | 一种pcie设备异常降带宽的管理方法、装置及设备 |
CN111212141A (zh) * | 2020-01-02 | 2020-05-29 | 中国科学院计算技术研究所 | 一种共享存储*** |
CN114003538A (zh) * | 2021-10-22 | 2022-02-01 | 苏州浪潮智能科技有限公司 | 一种智能网卡的识别方法及智能网卡 |
CN114389995A (zh) * | 2021-12-03 | 2022-04-22 | 阿里巴巴(中国)有限公司 | 资源共享的方法、装置以及电子设备 |
-
2022
- 2022-06-22 CN CN202210711516.1A patent/CN115098426B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101089829A (zh) * | 2007-08-01 | 2007-12-19 | 杭州华三通信技术有限公司 | 一种共享缓存***及实现方法 |
CN101299757A (zh) * | 2008-05-23 | 2008-11-05 | 华为技术有限公司 | 一种数据共享方法及通讯***以及相关设备 |
CN104246742A (zh) * | 2012-01-17 | 2014-12-24 | 英特尔公司 | 用于远程客户端访问存储设备的命令验证的技术 |
CN102722458A (zh) * | 2012-05-29 | 2012-10-10 | 中国科学院计算技术研究所 | 一种用于多根共享***的i/o重映射方法和装置 |
CN102891894A (zh) * | 2012-10-17 | 2013-01-23 | 中国工商银行股份有限公司 | 应用于服务器集群的缓存方法、缓存服务器及缓存*** |
CN103746933A (zh) * | 2013-12-24 | 2014-04-23 | 乐视网信息技术(北京)股份有限公司 | 一种节点分配方法和控制中心 |
CN104111907A (zh) * | 2014-06-27 | 2014-10-22 | 华为技术有限公司 | 一种访问NVMe存储设备的方法和NVMe存储设备 |
CN111090557A (zh) * | 2019-12-22 | 2020-05-01 | 苏州浪潮智能科技有限公司 | 一种pcie设备异常降带宽的管理方法、装置及设备 |
CN111212141A (zh) * | 2020-01-02 | 2020-05-29 | 中国科学院计算技术研究所 | 一种共享存储*** |
CN114003538A (zh) * | 2021-10-22 | 2022-02-01 | 苏州浪潮智能科技有限公司 | 一种智能网卡的识别方法及智能网卡 |
CN114389995A (zh) * | 2021-12-03 | 2022-04-22 | 阿里巴巴(中国)有限公司 | 资源共享的方法、装置以及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN115098426A (zh) | 2022-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115098426B (zh) | Pcie设备管理方法、接口管理模块、pcie***、设备和介质 | |
US20220075661A1 (en) | Technologies for scheduling acceleration of functions in a pool of accelerator devices | |
US20230259468A1 (en) | Multi-core processing system and inter-core communication method therefor, and storage medium | |
CN103607428B (zh) | 一种访问共享内存的方法和装置 | |
CN109388590B (zh) | 提升多通道dma访问性能的动态缓存块管理方法和装置 | |
CN111400246B (zh) | 异步导入文件方法、装置、计算机设备和存储介质 | |
CN108141471B (zh) | 压缩数据的方法、装置和设备 | |
CN112486913B (zh) | 一种基于集群环境下的日志异步存储方法和设备 | |
CN114327280B (zh) | 一种基于冷热分离存储的消息存储方法及*** | |
CN110069557B (zh) | 数据传输方法、装置、设备及存储介质 | |
CN112685148A (zh) | 海量终端的异步通信方法、装置、计算机设备和存储介质 | |
CN115470156A (zh) | 基于rdma的内存使用方法、***、电子设备和存储介质 | |
CN112860412B (zh) | 业务数据处理方法、装置、电子设备及存储介质 | |
CN115249057A (zh) | 用于图形节点采样的***和由计算机实现的方法 | |
CN116578410A (zh) | 资源管理方法、装置、计算机设备和存储介质 | |
CN112202862A (zh) | 一种基于kafka的集群数据以及文件的同步方法及装置 | |
CN116225314A (zh) | 数据写入方法、装置、计算机设备和存储介质 | |
CN114089912B (zh) | 基于消息中间件的数据处理方法及装置、存储介质 | |
US12019909B2 (en) | IO request pipeline processing device, method and system, and storage medium | |
CN112491956B (zh) | 物联网设备中通讯模组的升级方法、装置和计算机设备 | |
CN115712581A (zh) | 数据访问方法、存储***及存储节点 | |
CN113253944A (zh) | 一种磁盘阵列访问方法、***及存储介质 | |
CN111767330B (zh) | 一种数据交互方法、装置、电子设备及存储介质 | |
CN112292660A (zh) | 一种调度存储器中数据的方法、数据调度设备及*** | |
CN114390107B (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 |