CN117555836A - 一种数据处理装置、***及电子设备 - Google Patents
一种数据处理装置、***及电子设备 Download PDFInfo
- Publication number
- CN117555836A CN117555836A CN202311576289.7A CN202311576289A CN117555836A CN 117555836 A CN117555836 A CN 117555836A CN 202311576289 A CN202311576289 A CN 202311576289A CN 117555836 A CN117555836 A CN 117555836A
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- module
- request
- task request
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 98
- 230000005540 biological transmission Effects 0.000 claims abstract description 28
- 238000000034 method Methods 0.000 claims description 52
- 230000008569 process Effects 0.000 claims description 49
- 230000002776 aggregation Effects 0.000 claims description 21
- 238000004220 aggregation Methods 0.000 claims description 21
- 238000013507 mapping Methods 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000012546 transfer Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 101150071434 BAR1 gene Proteins 0.000 description 1
- 101100378536 Ovis aries ADRB1 gene Proteins 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000012634 fragment Substances 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
- 230000002093 peripheral effect Effects 0.000 description 1
- 229920002939 poly(N,N-dimethylacrylamides) Polymers 0.000 description 1
- 238000003672 processing method Methods 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/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- 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
- 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
-
- 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)
- Information Transfer Systems (AREA)
Abstract
本发明公开了一种数据处理装置、***及电子设备,涉及数据处理领域,为解决主机无法直接、高效地读写网卡设备的大容量内存的问题,该数据处理装置包括计算高速链路硬核模块,用于获取主机发送的任务请求,确定任务请求对应的目标内存访问模块,将任务请求下发至目标内存访问模块;支持计算高速链路协议的第一内存访问模块,用于直接对存储模块执行任务请求对应的操作;第二内存访问模块,用于根据任务请求从主机的内存中请求对应的数据帧,并基于接收到的数据帧对存储模块执行对应的操作。本发明能够使主机直接访问电子设备中的存储模块的传输层,无需映射到主机内存空间,降低对主机内存和带宽以及总线链路的带宽的占用。
Description
技术领域
本发明涉及数据处理领域,特别涉及一种数据处理装置、***及电子设备。
背景技术
目前,网卡设备在工作时需先申请主机内存,主机处理完成后,再通知网卡DMA(Direct Memory Access,直接内存访问)控制器从主机内存读取数据到网卡设备内,再通过光口发送出去。该过程中存在网卡设备占用主机内存资源及其带宽较高的问题,且现有方案中主机无法直接高效地读写网卡设备的大容量内存,只能通过DMA方式将主机内存的数据拷贝一份到网卡设备的内存中,既浪费主机的内存资源和内存带宽,又占用PCIe(Peripheral Component Interconnect Express,高速串行计算机扩展总线标准)链路带宽。
因此,如何提供一种解决上述技术问题的方案是本领域技术人员目前需要解决的问题。
发明内容
本发明提供了一种数据处理装置、***及电子设备,能够使主机直接访问电子设备中的存储模块的传输层,无需映射到主机内存空间,降低对主机内存和带宽以及总线链路的带宽的占用。
为解决上述技术问题,本发明提供了一种数据处理装置,应用于电子设备,所述电子设备包括存储模块,所述数据处理装置包括:
兼容高速串行计算机扩展总线标准的计算高速链路硬核模块,用于获取主机发送的任务请求,确定所述任务请求对应的目标内存访问模块,将所述任务请求下发至所述目标内存访问模块,所述目标内存访问模块为第一内存访问模块或第二内存访问模块;
支持计算高速链路协议的所述第一内存访问模块,用于直接对所述存储模块执行所述任务请求对应的操作;
所述第二内存访问模块,用于根据所述任务请求从所述主机的内存中请求对应的数据帧,并基于接收到的数据帧对所述存储模块执行对应的操作。
在一示例性实施例中,确定所述任务请求对应的目标内存访问模块的过程包括:
获取所述任务请求对应的数据帧的帧头信息;
基于所述帧头信息中的目标标识确定目标内存访问模块。
在一示例性实施例中,根据所述任务请求从所述主机的内存中请求对应的数据帧的过程包括:
根据所述任务请求从所述主机的内存中获取至少一个描述符信息;
判断所有所述描述符信息是否满足聚合条件;
若是,从所述主机的内存中获取所有所述描述符信息对应的数据帧。
在一示例性实施例中,判断所有所述描述符信息是否满足聚合条件的过程包括:
当所述描述符信息的数量为多个,确定每一所述描述符信息对应的数据的源地址和目的地址;
判断是否所有所述描述符信息对应的所述源地址不连续且所有所述描述符信息对应的所述目的地址连续;
若是,判定所有所述描述符信息满足聚合条件;
若否,判定所有所述描述符信息不满足所述聚合条件。
在一示例性实施例中,所述第二内存访问模块包括多个输出接口,多个所述输出接口的接口协议类型不同,基于接收到的数据帧对所述存储模块执行对应的操作的过程包括:
确定接收到的所述数据帧的帧头信息;
基于所述帧头信息在多个所述输出接口中确定目标输出接口;
根据所述帧头信息得到与所述目标输出接口的所述接口协议类型对应的目标任务请求;
通过所述目标输出接口输出所述目标任务请求。
在一示例性实施例中,所述存储模块包括寄存器,所述数据处理装置还包括数据帧处理模块,所述第二内存访问模块的多个所述输出接口中包括用于连接所述数据帧处理模块的第一输出接口;
所述数据帧处理模块,用于当接收到所述目标任务请求,基于所述目标任务请求对所述寄存器进行处理。
在一示例性实施例中,所述存储模块还包括存储器,多个所述输出接口中还包括用于连接所述存储器的第二输出接口;
基于所述帧头信息在多个所述输出接口中确定目标输出接口的过程包括:
基于所述帧头信息判断所述数据帧是否对应基地址寄存器空间请求;
当所述数据帧对应基地址寄存器空间请求,确定所述目标输出接口为所述第一输出接口;
当所述数据帧不对应所述基地址寄存器空间请求,基于所述帧头信息判断所述数据帧是否对应内存直接访问请求;
当所述数据帧对应内存直接访问请求,确定所述目标输出接口为所述第二输出接口;
当所述数据帧不对应内存直接访问请求,将所述数据帧丢弃。
在一示例性实施例中,所述第一输出接口对应的接口协议类型为轻量高级扩展寄存器接口协议,所述第二输出接口对应的接口协议类型为高级可扩展接口协议。
在一示例性实施例中,所述第一内存访问模块包括多个输出接口,多个所述输出接口的接口协议类型不同,所述直接对所述存储模块执行所述任务请求对应的操作的过程包括:
确定接收到的所述任务请求对应的数据帧的帧头信息;
基于所述帧头信息在多个所述输出接口中确定目标输出接口;
根据所述帧头信息得到与所述目标输出接口的所述接口协议类型对应的目标任务请求;
通过所述目标输出接口输出所述目标任务请求。
在一示例性实施例中,所述存储模块包括存储器,所述存储器的存储空间均匀划分为多个内存块,至少一个所述内存块作为接收内存区间,至少一个所述内存块作为发送内存区间;
所述主机还用于当完成对一个所述发送内存区间的写操作后,更新所述发送内存区间的描述符信息;
第一内存访问模块还用于在监测到所述主机更新的所述描述符信息后,读取所述描述符信息对应的所述发送内存区间的数据帧。
在一示例性实施例中,第一内存访问模块还用于将接收到的、所述主机发送的数据帧中的数据写入到所述数据帧对应的所述接收内存区间后,更新所述接收内存区间的描述符信息,以便通知所述主机从所述接收内存区间读取数据。
在一示例性实施例中,每个所述内存块对应的描述符信息包括起始地址、长度、占用权、读写状态、数据处理完成状态和保留位信息。
在一示例性实施例中,更新所述接收内存区间的描述符信息,以便通知所述主机从所述接收内存区间读取数据的过程包括:
更新所述接收内存区间的描述符信息,并向所述主机发送中断指令,以便通知所述主机从所述接收内存区间读取数据。
在一示例性实施例中,所述第一内存访问模块包括:
块存储单元,用于存储所述描述符信息。
在一示例性实施例中,所述块存储单元挂载在所述第一内存访问模块的寄存器空间上。
在一示例性实施例中,所述数据处理装置还包括:
仲裁模块,所述仲裁模块包括块存储单元,所述仲裁模块用于在接收到请求端发送的读任务请求,判断所述读任务请求对应的数据是否存储在所述块存储单元中;
若是,从所述块存储单元中获取所述读任务请求对应的数据,并将所述数据返回至所述请求端;
若否,从所述存储模块中获取所述读任务请求对应的数据,并将所述数据返回至所述请求端。
在一示例性实施例中,判断所述读任务请求对应的数据是否存储在所述块存储单元中的过程包括:
获取所述读任务请求对应的数据的起始地址和长度;
基于所述起始地址和所述长度判断所述读任务请求对应的数据是否存储在所述块存储单元中。
在一示例性实施例中,所述基于所述起始地址和所述长度判断所述读任务请求对应的数据是否存储在所述块存储单元中的过程包括:
基于所述起始地址和所述长度判断所述读任务请求对应的全部数据是否均存储在所述块存储单元中;
从所述块存储单元中获取所述读任务请求对应的数据,并将所述数据返回至所述请求端的过程包括:
若所述读任务请求对应的全部数据均存储在所述块存储单元中,将所述全部数据返回至所述请求端;
若所述读任务请求对应的部分数据存储在所述块存储单元中,将所述部分数据返回至所述请求端;
所述仲裁模块还用于在将所述部分数据返回至所述请求端的同时,向所述存储模块请求预设长度的数据,并将所述存储模块返回的所述预设长度的数据写入所述块存储单元,所述预设长度的数据中包括所述读任务请求对应的数据。
在一示例性实施例中,所述仲裁模块还用于在将所述全部数据返回至所述请求端的同时,向所述存储模块请求预设长度的数据,并将所述存储模块返回的所述预设长度的数据写入所述块存储单元。
在一示例性实施例中,从所述存储模块中获取所述读任务请求对应的数据,并将所述数据返回至所述请求端的过程包括:
向所述存储模块请求与所述起始地址和所述长度对应的数据,并将所述存储模块返回的数据发送至所述请求端。
在一示例性实施例中,所述仲裁模块还用于在将所述存储模块返回的数据发送至所述请求端的同时,向所述存储模块请求预设长度的数据,并将所述存储模块返回的所述预设长度的数据写入所述块存储单元。
为解决上述技术问题,本发明还提供了一种电子设备,包括存储模块还包括如上文任意一项所述的数据处理装置。
为解决上述技术问题,本发明还提供了一种数据处理***,包括主机、高速串行计算机扩展总线标准总线及上述所述电子设备,所述主机和所述电子设备通过所述高速串行计算机扩展总线标准总线连接。
本发明提供了一种数据处理装置,在电子设备中设置数据处理装置,数据处理装置包括兼容高速串行计算机扩展总线标准的计算高速链路硬核模块,用于接收主机发送的任务请求,将任务请求发送给对应的内存访问模块,该数据处理装置设有支持计算高速链路协议的第一内存访问模块,基于高速链路协议定义主机可通过直接访问电子设备中的存储模块的传输层,无需映射到主机内存空间,降低对主机内存和带宽以及PCIe链路的带宽的占用。本发明还提供了一种电子设备及数据处理***,具有和上述数据处理方法相同的有益效果。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明所提供的一种数据处理装置的结构示意图;
图2为本发明所提供的另一种数据处理装置的结构示意图;
图3为本发明所提供的一种数据帧搬移示意图;
图4为本发明所提供的一种内存访问流程图;
图5为本发明所提供的一种内存块归属状态图;
图6为本发明所提供的一种缓存处理流程图。
具体实施方式
本发明的核心是提供一种数据处理装置、***及电子设备,能够使主机直接访问电子设备中的存储模块的传输层,无需映射到主机内存空间,降低对主机内存和带宽以及总线链路的带宽的占用。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
第一方面,请参照图1,图1为本发明所提供的一种数据处理装置的结构示意图,该数据处理装置包括:
兼容高速串行计算机扩展总线标准的计算高速链路硬核模块1,用于获取主机发送的任务请求,确定任务请求对应的目标内存访问模块,将任务请求下发至目标内存访问模块,目标内存访问模块为第一内存访问模块2或第二内存访问模块3;
支持计算高速链路协议的第一内存访问模块2,用于直接对存储模块执行任务请求对应的操作;
第二内存访问模块3,用于根据任务请求从主机的内存中请求对应的数据帧,并基于接收到的数据帧对存储模块执行对应的操作。
可以理解,本实施例的数据处理装置设于电子设备中,主机可通过数据处理装置与电子设备中的存储模块进行交互。考虑到传统的基于DMA的数据传输方案,主机不能直接、高效地访问电子设备中的存储模块,以及高速计算链路技术CXL(Compute ExpressLink)是一种动态多协议技术,旨在支持加速器和内存设备,CXL提供了一组丰富的协议,其中包括类似PCIe的I/O语义(即CXL.io)、缓存协议语义(即CXL.cache)、直连和分布式的内存访问语义(即CXL.mem),基于此,本实施例中的数据处理装置包括基于CXL3.0标准中的Type3 mem(类型3存储)类型协议的第一内存访问模块2,主机可以通过第一内存访问模块2直接访问设备上的扩展内存而不用映射到主机的内存空间,降低了对主机内存地址的占用。
本实施例中,为了使数据处理装置能够以PCIe DMA方式工作以兼容传统网卡,还相应设置了兼容高速串行计算机扩展总线标准的计算高速链路硬核模块1以及用于实现传统DMA传输功能的第二内存访问模块3。其中,计算高速链路硬核模块1通过PCIe链路与主机侧连接,本实施例中,PCIe链路为PCIe Gen5标准以上物理链路,以兼容低于Gen5标准以下的传统PCIe DMA方案和基于CXL的数据处理方案。
计算高速链路硬核模块1在接收到主机发送的任务请求后,判断该任务请求需要第一内存访问模块2处理还是第二内存访问模块3处理,将任务请求发送至对应的目标内存访问模块,第一内存访问模块2接收到计算高速链路硬核模块1发送的任务请求,则直接响应该任务请求,完成对存储模块的写操作或读操作。第二内存访问模块3接收到计算高速链路硬核模块1发送的任务请求,先向主机请求描述符,根据主机请求的描述符信息,再向主机请求描述符信息对应的数据,接收到主机返回的数据帧后,基于该数据帧完成对存储模块的写操作或读操作。
可见,本实施例中,在电子设备中设置数据处理装置,数据处理装置包括兼容高速串行计算机扩展总线标准的计算高速链路硬核模块1,用于接收主机发送的任务请求,将任务请求发送给对应的内存访问模块,该数据处理装置设有支持计算高速链路协议的第一内存访问模块2,基于高速链路协议定义主机可通过直接访问电子设备中的存储模块的传输层,无需映射到主机内存空间,降低对主机内存和带宽以及PCIe链路的带宽的占用。
请参照图2,图2为本发明所提供的另一种数据处理装置的结构示意图,该数据处理装置在上述实施例的基础上:
在一示例性实施例中,确定任务请求对应的目标内存访问模块的过程包括:
获取任务请求对应的数据帧的帧头信息;
基于帧头信息中的目标标识确定目标内存访问模块。
可以理解,预先设置目标标识和内存访问模块的对应关系,如目标标识为a,该目标标识对应的是第一内存访问模块2,如目标标识为b,该目标标识对应的是第二内存访问模块3。计算高速链路硬核模块1接收到从PCIe链路传输的任务请求后,解析该任务请求对应的数据帧的帧头信息,获取帧头信息中的目标标识,如果目标标识为a,则确定目标内存访问模块为第一内存访问模块2,如果目标标识为b,则确定目标内存访问模块为第二内存访问模块3。
当然,以上目标标识仅做示例,也可设置多个目标标识对应第一内存访问模块2,设置多个目标标识对应第二内存访问模块3,根据实际工程需要设置即可,本实施例在此不作具体限定。
在一示例性实施例中,根据任务请求从主机的内存中请求对应的数据帧的过程包括:
根据任务请求从主机的内存中获取至少一个描述符信息;
判断所有描述符信息是否满足聚合条件;
若是,从主机的内存中获取所有描述符信息对应的数据帧。
当目标内存访问模块为第二内存访问模块3时,需要利用传统的DMA方案从主机的内存中搬移数据,当物理内存呈有规律的不连续状态时,第二内存访问模块3可以根据间隔地址大小,将多个片段数据搬移任务对应的描述符聚合成一个DMA描述符,以便第二内存访问模块3根据DMA描述符信息搬移数据帧。参照图3所示,图3中,0~0x17f_ffff是各个片段对应的地址。将数据从源地址搬移到目的地址时,传统方案中DMA需要两次DMA传输才能将数据帧搬移完毕,即第一次DMA传输搬移片段1和片段2的数据帧,第二次DMA传输搬移片段3和片段4的数据帧。本实施例中,为了提高DMA性能,根据任务请求向主机请求读取主机内存中的描述符信息,获取主机返回至少一个描述符信息后,若主机返回的描述符信息为多个,判断多个描述符信息是否满足聚合条件,当满足聚合条件,从主机的内存中一次性获取多个描述符信息对应的数据帧,即在一次DMA传输中搬移片段1、片段2、片段3和片段4的数据帧。
其中,源地址为数据帧在主机的内存中的地址,目的地址为该数据帧在电子设备的存储模块中的地址。
在一示例性实施例中,判断所有描述符信息是否满足聚合条件的过程包括:
当描述符信息的数量为多个,确定每一描述符信息对应的数据的源地址和目的地址;
判断是否所有描述符信息对应的源地址不连续且所有描述符信息对应的目的地址连续;
若是,判定所有描述符信息满足聚合条件;
若否,判定所有描述符信息不满足聚合条件。
本实施例中,对聚合条件进行限定,聚合条件包括但不限于,所有描述符信息对应的源地址不连续但所有描述符信息对应的目的地址连续,同理,目的地址不连续时,第二内存访问模块3可以将数据帧分别写入间隔地址的内存片段。
可以理解,第二内存访问模块3具备分散聚合功能,支持非连续、定间隔地址(包括源地址和目的地址不连续)的数据搬移,能够增加地址不连续时的DMA性能,降低对***内存连续性的要求。
在一示例性实施例中,第二内存访问模块3包括多个输出接口,多个输出接口的接口协议类型不同,基于接收到的数据帧对存储模块执行对应的操作的过程包括:
确定接收到的数据帧的帧头信息;
基于帧头信息在多个输出接口中确定目标输出接口;
根据帧头信息得到与目标输出接口的接口协议类型对应的目标任务请求;
通过目标输出接口输出目标任务请求。在一示例性实施例中,存储模块包括寄存器,数据处理装置还包括数据帧处理模块4,第二内存访问模块3的多个输出接口中包括用于连接数据帧处理模块4的第一输出接口;
数据帧处理模块4,用于当接收到目标任务请求,基于目标任务请求对寄存器进行处理。
在一示例性实施例中,存储模块还包括存储器5,多个输出接口中还包括用于连接存储器5的第二输出接口;
基于帧头信息在多个输出接口中确定目标输出接口的过程包括:
基于帧头信息判断数据帧是否对应基地址寄存器空间请求;
当数据帧对应基地址寄存器空间请求,确定目标输出接口为第一输出接口;
当数据帧不对应基地址寄存器空间请求,基于帧头信息判断数据帧是否对应内存直接访问请求;
当数据帧对应内存直接访问请求,确定目标输出接口为第二输出接口;
当数据帧不对应内存直接访问请求,将数据帧丢弃。
在一示例性实施例中,第一输出接口对应的接口协议类型为轻量高级扩展寄存器接口协议,第二输出接口对应的接口协议类型为高级可扩展接口协议。
本实施例中,第二内存访问模块3包括多个输出接口,不同的输出接口的接口协议类型不同,进一步的,存储模块包括寄存器和存储器5,存储器5具体可以为高带宽存储器5,主机访问寄存器空间时,需要通过数据帧处理模块4,第二内存访问模块3通过不同的总线与数据帧处理模块4及存储器5连接,示例性地,第二内存访问模块3通过AXI4-MM总线与存储器5连接,第二内存访问模块3通过AXI4-Lite总线与数据帧处理模块4连接,相应的,多个输出接口包括用于与数据帧处理模块4连接的第一输出接口,以及用于与存储器5连接的第二输出接口,其中,第一输出接口对应的接口协议类型为轻量高级扩展寄存器接口协议协议,第二输出接口对应的接口协议类型为高级可扩展接口协议协议。
可以理解,第二内存访问模块3的内存访问流程图参照图4所示,检测计算高速链路内核模块是否有内存请求的TLP数据帧输出,在接收到TLP(Transaction Layer Packet,事务层数据包)数据帧后,解析提取TLP数据帧的帧头信息,判断帧头信息是否对应AXI4-Lite(轻量高级可扩展)32位基地址寄存器空间请求,若是,根据帧头信息转换为AXI4-Lite总线读写请求,即目标任务请求,若否,判断帧头信息是否对应64位BAR(基地址寄存器)4内存直接访问请求,若否,过滤丢弃,若是,根据帧头信息转换为AXI4-MM(高级可扩展)总线读写请求,即目标任务请求,将目标任务请求发送至第二内存访问模块的对应的输出接口。
在一示例性实施例中,第一内存访问模块2包括多个输出接口,多个输出接口的接口协议类型不同,直接对存储模块执行任务请求对应的操作的过程包括:
确定接收到的任务请求对应的数据帧的帧头信息;
基于帧头信息在多个输出接口中确定目标输出接口;
根据帧头信息得到与目标输出接口的接口协议类型对应的目标任务请求;
通过目标输出接口输出目标任务请求。
可以理解,第一内存访问模块2中同样包括多个输出接口,确定用于输出目标任务请求的目标输出接口的方式,参照第二内存访问模块3,本实施例在此不再赘述。
在一示例性实施例中,存储模块包括存储器5,存储器5的存储空间均匀划分为多个内存块,至少一个内存块作为接收内存区间,至少一个内存块作为发送内存区间;
主机还用于当完成对一个发送内存区间的写操作后,更新发送内存区间的描述符信息;
第一内存访问模块2还用于在监测到主机更新的描述符信息后,读取描述符信息对应的发送内存区间的数据帧。
在一示例性实施例中,第一内存访问模块2还用于将接收到的、主机发送的数据帧中的数据写入到数据帧对应的接收内存区间后,更新接收内存区间的描述符信息,以便通知主机从接收内存区间读取数据。
在一示例性实施例中,每个内存块对应的描述符信息包括起始地址、长度、占用权、读写状态、数据处理完成状态和保留位信息。
在一示例性实施例中,更新接收内存区间的描述符信息,以便通知主机从接收内存区间读取数据的过程包括:
更新接收内存区间的描述符信息,并向主机发送中断指令,以便通知主机从接收内存区间读取数据。
在一示例性实施例中,第一内存访问模块2包括:
块存储单元,用于存储描述符信息。
在一示例性实施例中,块存储单元挂载在第一内存访问模块2的寄存器空间上。
本实施例中,将电子设备中的存储器5的内存空间分割成了多份,用于实现发送/接收内存区间,FPGA内采用BRAM实现具有描述这些buffer状态的描述符队列,状态信息包括每块内存的起始地址、长度、占用权(主机/设备)、读写状态、数据处理完成状态和保留位信息,实现内存块的循环利用。可以理解,第一内存访问模块2实现CXL.mem协议中定义的主机直接访问设备内存的传输层而不用映射到主机内存空间,主机应用可直接申请使用电子设备对的内存空间用作缓存数据帧的发送/接收缓存区间,缓存完成后,通知数据帧处理模块4处理该区域数据帧并发送出去。
示例性地,假设设备的内存空间为6GB,初始状态被平均分成了6等份内存块,初始状态发送和接收内存区间分别各用3个内存块实现,可以根据具体任务动态调整内存块实现两种内存区间:当发送任务多于接收任务时,可通过更改内存块的描述符信息调整为4个发送内存区间,2个接收内存区间,反之,同理,参照图5所示,图5中左侧为初始状态,右侧为动态调整后的状态,图5中0~0x3fff_ffff是第一个内存块的地址,0x4000_0000~0x_7fff_ffff是第二个内存块的地址,0x8000_0000~0xbfff_ffff是第三个内存块的地址,0xc000_0000~0xffff_ffff是第四个内存块的地址,0x1_0000_0000~0x1_3fff_ffff是第五个内存块的地址,0x1_4000_0000~0x1_7fff_ffff是第六个内存块的地址。
初始状态时,主机和电子设备各占用一半内存块,当主机完成一个内存区间的写任务,更新描述符信息,通知电子设备开始发送该内存区间内的数据帧,将占用权交给电子设备,电子设备开始读此内存区间所在内存块中的数据帧,并交由数据帧处理模块4处理发送;反之,当设备完成数据帧的接收处理,并写入到设备所占内存块后,更新该内存块描述符信息,将占用权交给主机,并发送中断通知主机读取内存区间。
上述内存块的描述符信息格式如表1所示,包括起始地址、长度、占用权(主机/设备)、读写状态、数据处理完成状态和保留位信息。这些描述符信息在FPGA内使用BRAM实现,该BRAM挂载在CMA模块内部的专属寄存器空间BAR1上,第一内存访问模块2自身和HOST主机可通过CXL通道访问更新。
表1设备内存块描述符信息表
bit位 | [127:98] | [97:90] | [89:89] | [88:88] | [87:80] | [79:64] | [63:0] |
说明 | 保留位 | 错误代码 | 完成状态 | 读写状态 | 占用权 | 长度 | 起始地址 |
在一示例性实施例中,数据处理装置还包括:
仲裁模块6,仲裁模块6包括块存储单元,仲裁模块6用于在接收到请求端发送的读任务请求,判断读任务请求对应的数据是否存储在块存储单元中;
若是,从块存储单元中获取读任务请求对应的数据,并将数据返回至请求端;
若否,从存储模块中获取读任务请求对应的数据,并将数据返回至请求端。
在一示例性实施例中,判断读任务请求对应的数据是否存储在块存储单元中的过程包括:
获取读任务请求对应的数据的起始地址和长度;
基于起始地址和长度判断读任务请求对应的数据是否存储在块存储单元中。
在一示例性实施例中,基于起始地址和长度判断读任务请求对应的数据是否存储在块存储单元中的过程包括:
基于起始地址和长度判断读任务请求对应的全部数据是否均存储在块存储单元中;
从块存储单元中获取读任务请求对应的数据,并将数据返回至请求端的过程包括:
若读任务请求对应的全部数据均存储在块存储单元中,将全部数据返回至请求端;
若读任务请求对应的部分数据存储在块存储单元中,将部分数据返回至请求端;
仲裁模块6还用于在将部分数据返回至请求端的同时,向存储模块请求预设长度的数据,并将存储模块返回的预设长度的数据写入块存储单元,预设长度的数据中包括读任务请求对应的数据。
在一示例性实施例中,仲裁模块6还用于在将全部数据返回至请求端的同时,向存储模块请求预设长度的数据,并将存储模块返回的预设长度的数据写入块存储单元。
在一示例性实施例中,从存储模块中获取读任务请求对应的数据,并将数据返回至请求端的过程包括:
向存储模块请求与起始地址和长度对应的数据,并将存储模块返回的数据发送至请求端。
在一示例性实施例中,仲裁模块6还用于在将存储模块返回的数据发送至请求端的同时,向存储模块请求预设长度的数据,并将存储模块返回的预设长度的数据写入块存储单元。
本实施例中的仲裁模块6主要加速主机通过PCIe或CXL.mem请求设备高带宽存储器5的内存数据的过程,该模块内部处理流程参照图6所示,判断是否接收到HBM(HighBandwidth Memory,高带宽存储器)读内存请求,当接收到HBM读内存请求,解析读内存请求的起始地址和长度,判断是否全部命中缓存,即判断HBM读内存请求所需数据是否均已缓存在仲裁模块6的BRAM(Block RAM,块存储单元)中,若是,读取块存储单元,返回已命中的数据,并向高带宽存储器请求缓存预设长度的数据,这里的预设长度具体指下一4K长度的数据;若否,判断是否部分命中缓存,即判断仲裁模块6的BRAM内缓存有HBM读内存请求所需的部分数据,若是,则先返回部分值,即返回BRAM内已命中的部分数据,同时请求下一4K的数据(包含未命中的2K的数据);若全部没有命中,则根据请求地址和长度,向AXI4-MM总线发起读请求,数据返回后直接发送至请求端,同时向高带宽存储器请求缓存预设长度的数据。
进一步的,本实施例中还包括100G媒体访问控制器7,用于通过数据帧处理模块4与设备内存进行交互。
可以理解,第二内存访问模块3设计了设备内存访问直通功能,电子设备的内存可通过该接口映射到PCIe IP固定的大容量BAR4上,主机可直接发起PCIe标准内存读写TLP请求、通过该接口访问设备内存,解决传统方案无法直接访问设备内存问题;同时,在同一NUMA节点的PCIe域下,设备内存同样也可以被其他PCIe设备利用上述接口实现点到点的设备间内存直接访问本实施例可减少传统方案设备间内存数据搬移路径,省略缓存到主机内存的步骤,降低对主机内存及带宽的占用率。
综上所述,本发明兼容传统的PCIe DMA数据传输方式,并提出一种高效分散聚合DMA传输方式,所述PDMA设计有挂载设备大内存的BAR空间,实现了主机和同节点其他PCIe设备的直接内存访问,降低了设备间内存访问延时,降低了对***内存带宽的占用,提高了设备间DMA传输效率;本发明设计了基于CXL.mem协议的CMA模块,该模块通过和驱动软件配合,实现了对设备内存的动态管理,切换占有权来实现主机和设备对同一设备内存区域的访问;本发明设计了一种在设备端实现的描述符队列来记录设备内存块的各种状态和应用数据帧的存储信息;本发明在主机通过PCIe/CXL访问设备内存的通道上设计了仲裁模块,实现对数据的缓存,达到降低读内存延迟、提高内存读请求效率的目的。
第二方面,本发明还提供了一种电子设备,包括存储模块,还包括如上文任意一项的数据处理装置。该数据处理装置包括:
兼容高速串行计算机扩展总线标准的计算高速链路硬核模块,用于获取主机发送的任务请求,确定任务请求对应的目标内存访问模块,将任务请求下发至目标内存访问模块,目标内存访问模块为第一内存访问模块或第二内存访问模块;
支持计算高速链路协议的第一内存访问模块,用于直接对存储模块执行任务请求对应的操作;
第二内存访问模块,用于根据任务请求从主机的内存中请求对应的数据帧,并基于接收到的数据帧对存储模块执行对应的操作。
在一示例性实施例中,确定任务请求对应的目标内存访问模块的过程包括:
获取任务请求对应的数据帧的帧头信息;
基于帧头信息中的目标标识确定目标内存访问模块。
在一示例性实施例中,根据任务请求从主机的内存中请求对应的数据帧的过程包括:
根据任务请求从主机的内存中获取至少一个描述符信息;
判断所有描述符信息是否满足聚合条件;
若是,从主机的内存中获取所有描述符信息对应的数据帧。
在一示例性实施例中,判断所有描述符信息是否满足聚合条件的过程包括:
当描述符信息的数量为多个,确定每一描述符信息对应的数据的源地址和目的地址;
判断是否所有描述符信息对应的源地址不连续且所有描述符信息对应的目的地址连续;
若是,判定所有描述符信息满足聚合条件;
若否,判定所有描述符信息不满足聚合条件。
在一示例性实施例中,第二内存访问模块包括多个输出接口,多个输出接口的接口协议类型不同,基于接收到的数据帧对存储模块执行对应的操作的过程包括:
确定接收到的数据帧的帧头信息;
基于帧头信息在多个输出接口中确定目标输出接口;
根据帧头信息得到与目标输出接口的接口协议类型对应的目标任务请求;
通过目标输出接口输出目标任务请求。
在一示例性实施例中,存储模块包括寄存器,数据处理装置还包括数据帧处理模块,第二内存访问模块的多个输出接口中包括用于连接数据帧处理模块的第一输出接口;
数据帧处理模块,用于当接收到目标任务请求,基于目标任务请求对寄存器进行处理。
在一示例性实施例中,存储模块还包括存储器,多个输出接口中还包括用于连接存储器的第二输出接口;
基于帧头信息在多个输出接口中确定目标输出接口的过程包括:
基于帧头信息判断数据帧是否对应基地址寄存器空间请求;
当数据帧对应基地址寄存器空间请求,确定目标输出接口为第一输出接口;
当数据帧不对应基地址寄存器空间请求,基于帧头信息判断数据帧是否对应内存直接访问请求;
当数据帧对应内存直接访问请求,确定目标输出接口为第二输出接口;
当数据帧不对应内存直接访问请求,将数据帧丢弃。
在一示例性实施例中,第一输出接口对应的接口协议类型为轻量高级扩展寄存器接口协议,第二输出接口对应的接口协议类型为高级可扩展接口协议。
在一示例性实施例中,第一内存访问模块包括多个输出接口,多个输出接口的接口协议类型不同,直接对存储模块执行任务请求对应的操作的过程包括:
确定接收到的任务请求对应的数据帧的帧头信息;
基于帧头信息在多个输出接口中确定目标输出接口;
根据帧头信息得到与目标输出接口的接口协议类型对应的目标任务请求;
通过目标输出接口输出目标任务请求。
在一示例性实施例中,存储模块包括存储器,存储器的存储空间均匀划分为多个内存块,至少一个内存块作为接收内存区间,至少一个内存块作为发送内存区间;
主机还用于当完成对一个发送内存区间的写操作后,更新发送内存区间的描述符信息;
第一内存访问模块还用于在监测到主机更新的描述符信息后,读取描述符信息对应的发送内存区间的数据帧。
在一示例性实施例中,第一内存访问模块还用于将接收到的、主机发送的数据帧中的数据写入到数据帧对应的接收内存区间后,更新接收内存区间的描述符信息,以便通知主机从接收内存区间读取数据。
在一示例性实施例中,每个内存块对应的描述符信息包括起始地址、长度、占用权、读写状态、数据处理完成状态和保留位信息。
在一示例性实施例中,更新接收内存区间的描述符信息,以便通知主机从接收内存区间读取数据的过程包括:
更新接收内存区间的描述符信息,并向主机发送中断指令,以便通知主机从接收内存区间读取数据。
在一示例性实施例中,第一内存访问模块包括:
块存储单元,用于存储描述符信息。
在一示例性实施例中,块存储单元挂载在第一内存访问模块的寄存器空间上。
在一示例性实施例中,数据处理装置还包括:
仲裁模块,仲裁模块包括块存储单元,仲裁模块用于在接收到请求端发送的读任务请求,判断读任务请求对应的数据是否存储在块存储单元中;
若是,从块存储单元中获取读任务请求对应的数据,并将数据返回至请求端;
若否,从存储模块中获取读任务请求对应的数据,并将数据返回至请求端。
在一示例性实施例中,判断读任务请求对应的数据是否存储在块存储单元中的过程包括:
获取读任务请求对应的数据的起始地址和长度;
基于起始地址和长度判断读任务请求对应的数据是否存储在块存储单元中。
在一示例性实施例中,基于起始地址和长度判断读任务请求对应的数据是否存储在块存储单元中的过程包括:
基于起始地址和长度判断读任务请求对应的全部数据是否均存储在块存储单元中;
从块存储单元中获取读任务请求对应的数据,并将数据返回至请求端的过程包括:
若读任务请求对应的全部数据均存储在块存储单元中,将全部数据返回至请求端;
若读任务请求对应的部分数据存储在块存储单元中,将部分数据返回至请求端;
仲裁模块还用于在将部分数据返回至请求端的同时,向存储模块请求预设长度的数据,并将存储模块返回的预设长度的数据写入块存储单元,预设长度的数据中包括读任务请求对应的数据。
在一示例性实施例中,仲裁模块还用于在将全部数据返回至请求端的同时,向存储模块请求预设长度的数据,并将存储模块返回的预设长度的数据写入块存储单元。
在一示例性实施例中,从存储模块中获取读任务请求对应的数据,并将数据返回至请求端的过程包括:
向存储模块请求与起始地址和长度对应的数据,并将存储模块返回的数据发送至请求端。
在一示例性实施例中,仲裁模块还用于在将存储模块返回的数据发送至请求端的同时,向存储模块请求预设长度的数据,并将存储模块返回的预设长度的数据写入块存储单元。
第三方面,本发明还提供了一种数据处理***,该数据处理***包括主机、高速串行计算机扩展总线标准总线及上述电子设备,主机和电子设备通过高速串行计算机扩展总线标准总线连接。
对于本发明所提供的一种数据处理***的介绍请参照上述实施例,本发明在此不再赘述。
本发明所提供的一种数据处理***具有和上述数据处理装置相同的有益效果。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (23)
1.一种数据处理装置,其特征在于,应用于电子设备,所述电子设备包括存储模块,所述数据处理装置包括:
兼容高速串行计算机扩展总线标准的计算高速链路硬核模块,用于获取主机发送的任务请求,确定所述任务请求对应的目标内存访问模块,将所述任务请求下发至所述目标内存访问模块,所述目标内存访问模块为第一内存访问模块或第二内存访问模块;
支持计算高速链路协议的所述第一内存访问模块,用于直接对所述存储模块执行所述任务请求对应的操作;
所述第二内存访问模块,用于根据所述任务请求从所述主机的内存中请求对应的数据帧,并基于接收到的数据帧对所述存储模块执行对应的操作。
2.根据权利要求1所述的数据处理装置,其特征在于,确定所述任务请求对应的目标内存访问模块的过程包括:
获取所述任务请求对应的数据帧的帧头信息;
基于所述帧头信息中的目标标识确定目标内存访问模块。
3.根据权利要求1所述的数据处理装置,其特征在于,根据所述任务请求从所述主机的内存中请求对应的数据帧的过程包括:
根据所述任务请求从所述主机的内存中获取至少一个描述符信息;
判断所有所述描述符信息是否满足聚合条件;
若是,从所述主机的内存中获取所有所述描述符信息对应的数据帧。
4.根据权利要求3所述的数据处理装置,其特征在于,判断所有所述描述符信息是否满足聚合条件的过程包括:
当所述描述符信息的数量为多个,确定每一所述描述符信息对应的数据的源地址和目的地址;
判断是否所有所述描述符信息对应的所述源地址不连续且所有所述描述符信息对应的所述目的地址连续;
若是,判定所有所述描述符信息满足聚合条件;
若否,判定所有所述描述符信息不满足所述聚合条件。
5.根据权利要求1所述的数据处理装置,其特征在于,所述第二内存访问模块包括多个输出接口,多个所述输出接口的接口协议类型不同,基于接收到的数据帧对所述存储模块执行对应的操作的过程包括:
确定接收到的所述数据帧的帧头信息;
基于所述帧头信息在多个所述输出接口中确定目标输出接口;
根据所述帧头信息得到与所述目标输出接口的所述接口协议类型对应的目标任务请求;
通过所述目标输出接口输出所述目标任务请求。
6.根据权利要求5所述的数据处理装置,其特征在于,所述存储模块包括寄存器,所述数据处理装置还包括数据帧处理模块,所述第二内存访问模块的多个所述输出接口中包括用于连接所述数据帧处理模块的第一输出接口;
所述数据帧处理模块,用于当接收到所述目标任务请求,基于所述目标任务请求对所述寄存器进行处理。
7.根据权利要求6所述的数据处理装置,其特征在于,所述存储模块还包括存储器,多个所述输出接口中还包括用于连接所述存储器的第二输出接口;
基于所述帧头信息在多个所述输出接口中确定目标输出接口的过程包括:
基于所述帧头信息判断所述数据帧是否对应基地址寄存器空间请求;
当所述数据帧对应基地址寄存器空间请求,确定所述目标输出接口为所述第一输出接口;
当所述数据帧不对应所述基地址寄存器空间请求,基于所述帧头信息判断所述数据帧是否对应内存直接访问请求;
当所述数据帧对应内存直接访问请求,确定所述目标输出接口为所述第二输出接口;
当所述数据帧不对应内存直接访问请求,将所述数据帧丢弃。
8.根据权利要求7所述的数据处理装置,其特征在于,所述第一输出接口对应的接口协议类型为轻量高级扩展寄存器接口协议,所述第二输出接口对应的接口协议类型为高级可扩展接口协议。
9.根据权利要求1所述的数据处理装置,其特征在于,所述第一内存访问模块包括多个输出接口,多个所述输出接口的接口协议类型不同,所述直接对所述存储模块执行所述任务请求对应的操作的过程包括:
确定接收到的所述任务请求对应的数据帧的帧头信息;
基于所述帧头信息在多个所述输出接口中确定目标输出接口;
根据所述帧头信息得到与所述目标输出接口的所述接口协议类型对应的目标任务请求;
通过所述目标输出接口输出所述目标任务请求。
10.根据权利要求9所述的数据处理装置,其特征在于,所述存储模块包括存储器,所述存储器的存储空间均匀划分为多个内存块,至少一个所述内存块作为接收内存区间,至少一个所述内存块作为发送内存区间;
所述主机还用于当完成对一个所述发送内存区间的写操作后,更新所述发送内存区间的描述符信息;
第一内存访问模块还用于在监测到所述主机更新的所述描述符信息后,读取所述描述符信息对应的所述发送内存区间的数据帧。
11.根据权利要求10所述的数据处理装置,其特征在于,第一内存访问模块还用于将接收到的、所述主机发送的数据帧中的数据写入到所述数据帧对应的所述接收内存区间后,更新所述接收内存区间的描述符信息,以便通知所述主机从所述接收内存区间读取数据。
12.根据权利要求11所述的数据处理装置,其特征在于,每个所述内存块对应的描述符信息包括起始地址、长度、占用权、读写状态、数据处理完成状态和保留位信息。
13.根据权利要求11所述的数据处理装置,其特征在于,更新所述接收内存区间的描述符信息,以便通知所述主机从所述接收内存区间读取数据的过程包括:
更新所述接收内存区间的描述符信息,并向所述主机发送中断指令,以便通知所述主机从所述接收内存区间读取数据。
14.根据权利要求10所述的数据处理装置,其特征在于,所述第一内存访问模块包括:
块存储单元,用于存储所述描述符信息。
15.根据权利要求14所述的数据处理装置,其特征在于,所述块存储单元挂载在所述第一内存访问模块的寄存器空间上。
16.根据权利要求1-15任意一项所述的数据处理装置,其特征在于,所述数据处理装置还包括:
仲裁模块,所述仲裁模块包括块存储单元,所述仲裁模块用于在接收到请求端发送的读任务请求,判断所述读任务请求对应的数据是否存储在所述块存储单元中;
若是,从所述块存储单元中获取所述读任务请求对应的数据,并将所述数据返回至所述请求端;
若否,从所述存储模块中获取所述读任务请求对应的数据,并将所述数据返回至所述请求端。
17.根据权利要求16所述的数据处理装置,其特征在于,判断所述读任务请求对应的数据是否存储在所述块存储单元中的过程包括:
获取所述读任务请求对应的数据的起始地址和长度;
基于所述起始地址和所述长度判断所述读任务请求对应的数据是否存储在所述块存储单元中。
18.根据权利要求17所述的数据处理装置,其特征在于,所述基于所述起始地址和所述长度判断所述读任务请求对应的数据是否存储在所述块存储单元中的过程包括:
基于所述起始地址和所述长度判断所述读任务请求对应的全部数据是否均存储在所述块存储单元中;
从所述块存储单元中获取所述读任务请求对应的数据,并将所述数据返回至所述请求端的过程包括:
若所述读任务请求对应的全部数据均存储在所述块存储单元中,将所述全部数据返回至所述请求端;
若所述读任务请求对应的部分数据存储在所述块存储单元中,将所述部分数据返回至所述请求端;
所述仲裁模块还用于在将所述部分数据返回至所述请求端的同时,向所述存储模块请求预设长度的数据,并将所述存储模块返回的所述预设长度的数据写入所述块存储单元,所述预设长度的数据中包括所述读任务请求对应的数据。
19.根据权利要求18所述的数据处理装置,其特征在于,所述仲裁模块还用于在将所述全部数据返回至所述请求端的同时,向所述存储模块请求预设长度的数据,并将所述存储模块返回的所述预设长度的数据写入所述块存储单元。
20.根据权利要求17所述的数据处理装置,其特征在于,从所述存储模块中获取所述读任务请求对应的数据,并将所述数据返回至所述请求端的过程包括:
向所述存储模块请求与所述起始地址和所述长度对应的数据,并将所述存储模块返回的数据发送至所述请求端。
21.根据权利要求20所述的数据处理装置,其特征在于,所述仲裁模块还用于在将所述存储模块返回的数据发送至所述请求端的同时,向所述存储模块请求预设长度的数据,并将所述存储模块返回的所述预设长度的数据写入所述块存储单元。
22.一种电子设备,其特征在于,包括存储模块还包括如权利要求1-21任意一项所述的数据处理装置。
23.一种数据处理***,其特征在于,包括主机、高速串行计算机扩展总线标准总线及如权利要求22所述的电子设备,所述主机和所述电子设备通过所述高速串行计算机扩展总线标准总线连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311576289.7A CN117555836A (zh) | 2023-11-23 | 2023-11-23 | 一种数据处理装置、***及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311576289.7A CN117555836A (zh) | 2023-11-23 | 2023-11-23 | 一种数据处理装置、***及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117555836A true CN117555836A (zh) | 2024-02-13 |
Family
ID=89816420
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311576289.7A Pending CN117555836A (zh) | 2023-11-23 | 2023-11-23 | 一种数据处理装置、***及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117555836A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117785755A (zh) * | 2024-02-23 | 2024-03-29 | 北京超弦存储器研究院 | Cxl内存模组及资源配置方法、控制芯片、介质和*** |
-
2023
- 2023-11-23 CN CN202311576289.7A patent/CN117555836A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117785755A (zh) * | 2024-02-23 | 2024-03-29 | 北京超弦存储器研究院 | Cxl内存模组及资源配置方法、控制芯片、介质和*** |
CN117785755B (zh) * | 2024-02-23 | 2024-05-28 | 北京超弦存储器研究院 | Cxl内存模组及资源配置方法、控制芯片、介质和*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9678918B2 (en) | Data processing system and data processing method | |
US6484225B2 (en) | Method and system for managing communications among computer devices | |
EP3214550A1 (en) | Control of persistent memory via a computer bus | |
WO2022007470A1 (zh) | 一种数据传输的方法、芯片和设备 | |
CN117555836A (zh) | 一种数据处理装置、***及电子设备 | |
US20120102245A1 (en) | Unified i/o adapter | |
US6128674A (en) | Method of minimizing host CPU utilization in driving an adapter by residing in system memory a command/status block a soft interrupt block and a status block queue | |
CN111309656B (zh) | 一种fpga通用dma ip核 | |
CN113742269B (zh) | 用于epa设备的数据传输方法、处理设备和介质 | |
WO2015027806A1 (zh) | 一种内存数据的读写处理方法和装置 | |
WO2021072721A1 (zh) | 一种地址翻译方法及装置 | |
CN110688333A (zh) | 一种基于pcie的dma数据传输***及方法 | |
WO2023040464A1 (zh) | 一种总线通信方法及相关设备 | |
CN109101439B (zh) | 一种报文处理的方法及装置 | |
CN115174673B (zh) | 具备低延迟处理器的数据处理装置、数据处理方法及设备 | |
CN110083548B (zh) | 数据处理方法及相关网元、设备、*** | |
US10789001B1 (en) | Posted operation data control | |
US20080244132A1 (en) | Data transmission methods | |
US20170147517A1 (en) | Direct memory access system using available descriptor mechanism and/or pre-fetch mechanism and associated direct memory access method | |
US20080005399A1 (en) | Method and Apparatus for Determining the Status of Bus Requests and Responses | |
CN111694777B (zh) | 基于PCIe接口的DMA传输方法 | |
KR20210152962A (ko) | 네트워크 온 칩(NoC)에서 트랜잭션 집계를 수행하기 위한 시스템 및 방법 | |
CN116601616A (zh) | 一种数据处理装置、方法及相关设备 | |
CN112559434A (zh) | 一种多核处理器及核间数据转发方法 | |
CN115529275B (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 |