CN121326805A - 一种用于多维数据传输的dma数据传输方法、装置和设备 - Google Patents
一种用于多维数据传输的dma数据传输方法、装置和设备Info
- Publication number
- CN121326805A CN121326805A CN202511315861.3A CN202511315861A CN121326805A CN 121326805 A CN121326805 A CN 121326805A CN 202511315861 A CN202511315861 A CN 202511315861A CN 121326805 A CN121326805 A CN 121326805A
- Authority
- CN
- China
- Prior art keywords
- data
- data transmission
- address
- transmission
- dma
- 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
Landscapes
- Bus Control (AREA)
Abstract
本发明提供了一种用于多维数据传输的DMA数据传输方法、装置和设备,所述方法包括以下步骤:S1、配置source部分的参数,包括源首地址、源类型、大小,以及地址计算公式的相关参数;S2、配置destination部分的参数;S3、配置完成后开始DMA传输。本发明可以实现仅需少量配置,在无需CPU中途干预的情况下,对多维张量数据的直接搬运,且通过数学地址计算公式的参数配置,可实现对张量数据的旋转,翻转等操作。
Description
技术领域
本发明属于芯片数据传输技术领域,具体涉及一种用于多维数据传输的DMA数据传输方法、装置和设备。
背景技术
DMA(Direct Memory Access),即直接内存访问,是一种计算机系统功能,允许设备绕过CPU直接与系统内存交换数据。DMA能显著提高数据传输效率,减少CPU负担,使CPU能专注于处理其他任务。DMA控制器管理内存和设备之间的数据传输,通常用于大数据量的传输。
在AI领域,DMA的重要性尤为突出。AI处理通常需要处理大量数据和复杂计算,尤其是在神经网络训练和推理过程中。通过使用DMA技术,AI加速器可以快速读取和写入内存,提高数据吞吐量和计算效率,从而加速模型训练和推理速度。这对于实时AI应用和大规模数据处理至关重要,有助于实现更高效、更快速的AI系统。
但是目前的DMA,普遍是为了普通数据传输而设计,只能配置简单的source、destination、数量等,进行直接大块的数据搬运。但是随着AI的快速发展,对二维矩阵、三维、四维乃至更多维的数据搬运愈加迫切,这种数据的特点是单个数据量小,但是数量大,源地址不完全连续,目的地址不完全连续,无法直接连续大块搬运。普通的DMA普遍没有针对此做相关适配,或适配程度较低,导致搬运效率很低,需要CPU深度参与,浪费CPU性能,效率很低,且浪费大量总线带宽。同时,有时需要DMA可以在搬运的同时,对数据做一定操作,比如转置,旋转,翻转等操作,一般DMA均无法完成这些功能。
发明内容
为解决现有技术问题,为本发明的目的之一在于提供一种用于多维数据传输的DMA数据传输方法,包括以下步骤:
S1、配置source部分的参数,包括源首地址、源类型、大小,以及地址计算公式的相关参数;
S2、配置destination部分的参数;
S3、配置完成后开始DMA传输。
优选的,其中数据的传输通过集成在DMA中的多个地址计算单元协作完成,这些单元协同运作以优化源地址和目标地址不连续情况下的传输路径,并辅助以可选配置的缓存模块来执行数据的实时处理,以确保在复杂数据条件下总线的高效使用和优化资源分配。
优选的,进一步包括在目标地址配置过程中,当目标数据的空间容量不同于源数据的原始体积时,自动执行数据区域的补全操作,这包括但不限于在目标地址的扩展部分自动填充零或其他用户预设的固定值,以确保传输后数据的一致性、完整性和应用的准确性。
优选的,进一步包括初始化张量地址空间的步骤,通过计算公式直接识别并写入固定值到目标地址空间的相应位置。
本发明的用于多维数据传输的DMA数据传输方法方法与现有技术相比,具有以下有益效果:
本发明可以实现仅需少量配置,在无需CPU中途干预的情况下,对多维张量数据的直接搬运,且通过数学地址计算公式的参数配置,可实现对张量数据的旋转,翻转等操作。
本发明另一方面提供了一种用于多维数据传输的DMA数据传输装置,该装置包括:
地址计算模块,其专用于根据配置阶段提供的多个复杂公式和动态参数,精确计算多维数据的源地址与目标地址,并确保所有计算操作透明且可追溯,以支持数据的准确传输和适时变换;
控制模块,负责整体传输流程的调节与管理,确保数据从源到目标的高效转移,同时能够根据配置提供的公式和参数对数据进行必要的旋转、翻转及扩展等操作,以适应不同应用场景。
优选的,还包括总线缓存模块,其主要用于数据传输过程中对不连续地址的数据进行智能缓存处理,并在可能的情况下将非连续的数据传输请求合并成连续数据块进行输送,以减少总线占用频次和提高数据传输的稳健性和效率。
优选的,所述总线缓存模块具有增强功能,在数据传输过程中通过对非连续地址的数据请求进行缓存等待,从而期望匹配出现地址连续或相近数据,当条件满足时将数据合并成批量传输,以降低总线占用率并减少出现瓶颈的可能性,提升系统整体效率。
优选的,其设计支持多通道架构,各通道可以按照独立的配置进行操作和参数设定,每个通道有能力进行单独的数据处理和传输,所有通道共用总线接口以实现并行高效的数据传输,这种设计大大增强了DMA装置在处理复杂多维数据传输时的响应速度和吞吐能力。
本发明的用于多维数据传输的DMA数据传输装置与现有技术相比,具有以下有益效果:
针对多维张量的搬运及处理问题,内置若干种数学计算公式,基于不同种类数据搬运灵活选择,可以通过数学关系描述source和destination端地址,通过较少参数描述清楚相关对应关系,在无需CPU中间参与的情况下,完成大块多维张量数据的快速搬运,通过不同公式配置,同时可以实现对多维张量的旋转/翻转/补值等操作。可选内置总线数据缓存模块,当读取/写入总线数据地址不连续时,汇总不连续数据,配合多通道处理,可以大幅提高传输效率。
本发明另一方面还提供了一种DMA设备,其集成有所述用于多维数据传输的DMA数据传输装置。
优选的,其中预设多个不同类型和组合的地址计算公式,以及相应的参数配置,这些配置能够适应各类不同的多维数据传输和处理需求。
附图说明
图1为本发明实施例的DMA传输的整体结构示意图;
图2为本发明实施例的DMA配置及搬运流程示意图;
图3为本发明实施例的总线缓存模块示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是在于限制本发明。
实施例1
如图1所示,为本实施例的DMA传输的整体结构图,包括中心互联总线、CPU、DMA、内存和其他部件,CPU、DMA、内存和其他部件都与中心互联总线互联。
如图2所示,本实施例的DMA传输,包括以下步骤:
S1、配置source部分的参数,包括源首地址、源类型(一维,二维,三维,四维等)、大小,以及地址计算公式的相关参数。
维数越高,需要配置的地址计算参数就越多。目的是通过若干公式和若干参数,描述清楚源数据的所有地址,以便DMA可以完全自动读取所有数据。
S2、配置destination部分的参数。
Destination的地址计算,与源地址、目的首地址和对数据做的操作有关。比如对数据在三维空间上面做了旋转操作,目的首地址增加了0x20000,那么根据数据大小和相关空间关系,可以计算出目的地址与源地址的相关数学关系,形成一一对应,并且可以对数据分组,某些数据对应某些地址计算公式,最终形成一整套公式和对应关系,以较少的参数和较高的效率实现目的地址配置。
S3、配置完成后开始DMA传输。
因为上述传输,当地址不连续时,读取写入时仍会浪费很多总线带宽,可选增加一个数据缓存模块,缓存模块包含较大容量的sram缓存,当数据通过总线写入DRAM时,通过缓存模块把数据缓存到缓存模块中,等待若干周期(与等待时间和缓存容量有关),若等到连续地址或相近地址的数据,可以拼成一包数据发出,在一定程度上增加单次传输的数据量;等待周期内若等不到,则直接发送,以此方法增加单包数据增加的概率,如图3所示。
本发明实施例通过增加若干地址计算公式,可以通过数学计算方式,通过较少的参数,一次性描述好source端单个多维张量的所有地址,可以一次性读取,降低CPU占用;通过增加若干地址计算公式,可以通过数学计算方式,通过destination和source之间的位置和空间联系,以较少的参数一次性描述完所有destination的数据地址,方便DMA一次性搬运;CPU可以通过预设张量大小,搬运后处理方式(旋转,翻转,补0)等操作,预定义若干组参数,在进行相关操作时,可以一次性读取配置,减小CPU负载;或者可以直接在DMA中,直接预设多种数据处理方式的计算方法,CPU仅需传输处理方式指令即可。通过以上方式,可以高效的实现多维情况下的数据搬运。
需要说明的是内置若干地址计算公式,是指针对张量搬运处理的各种情况,可能用到的所有数学计算公式,用硬件实现相关公式,并且参数可配置,且固化到芯片中。在使用时,软件根据处理模式,数据大小,选择使用的公式类型。搬运时同时对张量数据进行处理,一般包含以下几种:翻转,旋转(x轴,y轴,对角线,三维时,包括各个边,中心线等);dst比source大,对扩展部分补0或其他固定值;直接初始化张量地址空间(等效为不读,直接通过相关公式计算dst的各个数据地址,写固定值)
可选的,DMA可以包含多个通道,每个通道有单独的参数,独立运行。多通道间共享总线接口,提高总线利用率。
可选的,DMA可以支持对搬运后数据补0操作,当dst的体积比source大时,可以通过对应计算,计算出dst对应添加的位置,直接写0或其他固定值,一次性完成张量的体积扩大。
可选的,DMA可以支持数据初始化操作,直接对某片区域初始化为某固定值。
实施例2
本实施例对配置source部分的参数,包括源首地址、源类型(一维,二维,三维,四维等)、大小,以及地址计算公式的相关参数进行说明。
假设实现二维张量数据的数据搬运:
假设二维张量大小8*8(记为m*n),source首地址为0x10000(记为A),destination首地址为0x20000(记为B),那么计算方式如下:
Source部分数据地址描述:第一个点地址为0x10000(记为A),地址计算方式为y=A+x%m+x/m*(t+m),x是基于位置的变量,传输的张量大小为m*n,那么x取值范围为(0-m*n-1)。t为上一行结束和下一行开始的间隔,若t为0则说明此张量连续存储,行与行之间没有间隔。
Destination部分地址计算:首地址为B,且做基于x轴的轴对称翻转,那么第一行变为最后一行,第二行变为倒数第二行,以此类推。
地址计算:
首先计算一个参数,表明当前行数,是上一半,还是后一半。若是上一半,向下翻转;若是后一半,向上翻转。认为张量一般是偶数行,若是奇数行,判断会多一个是否中间行的步骤。
当x/n<n/2时,E=0;否则,E=1。其中,E=0,代表当前是上半部分,1代表在下半部分。
Source_line=x/n(向下取整),代表输入的行。
Source_line_cont=x%m,代表当前行第几个,因为基于x轴翻转,所以此值不变。
Dst_line=n-Source_line代表翻转后在第几行。
最终的计算结果为y=B+Source_line_cont+Dst_line*(t+m)
这样就根据几个公式,计算出了source,destination所有的地址,通过配置少数几个参数,在无需CPU中间参与的情况下,完成整个张量的数据搬运。可选的,可以设计总线缓存模块,缓存模块包含若干memory缓存,当DMA处理完写回时,对地址不连续的数据进行缓存,期待匹配地址连续或相近的数据,打包成一包写回,降低带宽占用。
实施例3
基于实施例1,扩展到三维张量。这里不做具体推导,仅作原理说明。三维张量可以理解为一个矩形体,大小为m*n*p。同样的,可以用类似的公式计算出source端的所有数据地址,但是公式数量,参数和复杂性会比二维略多。Dst端地址计算参照二维,考虑是直接搬运还是做某种变化,通过计算公式组合完成整个dst端的地址描述。
同样的,可选总线缓存模块,降低总线占用。
实施例4
扩展到四维乃至多维,情况是类似的。通过更多数量的地址计算公式,完成对source,dst端数据的地址描述。
实施例5
本实施例提供了一种用于多维数据传输的DMA数据传输装置,该装置包括:
地址计算模块,其专用于根据配置阶段提供的多个复杂公式和动态参数,精确计算多维数据的源地址与目标地址,并确保所有计算操作透明且可追溯,以支持数据的准确传输和适时变换;
控制模块,负责整体传输流程的调节与管理,确保数据从源到目标的高效转移,同时能够根据配置提供的公式和参数对数据进行必要的旋转、翻转及扩展等操作,以适应不同应用场景。
所述装置还可以包括总线缓存模块,其主要用于数据传输过程中对不连续地址的数据进行智能缓存处理,并在可能的情况下将非连续的数据传输请求合并成连续数据块进行输送,以减少总线占用频次和提高数据传输的稳健性和效率。
所述总线缓存模块具有增强功能,在数据传输过程中通过对非连续地址的数据请求进行缓存等待,从而期望匹配出现地址连续或相近数据,当条件满足时将数据合并成批量传输,以降低总线占用率并减少出现瓶颈的可能性,提升系统整体效率。
所述装置还设计支持多通道架构,各通道可以按照独立的配置进行操作和参数设定,每个通道有能力进行单独的数据处理和传输,所有通道共用总线接口以实现并行高效的数据传输,这种设计大大增强了DMA装置在处理复杂多维数据传输时的响应速度和吞吐能力。
实施例6
本实施例还提供了一种DMA设备,其集成有所述的用于多维数据传输的DMA数据传输装置。
所述DMA设备中预设多个不同类型和组合的地址计算公式,以及相应的参数配置,这些配置能够适应各类不同的多维数据传输和处理需求。
Claims (10)
1.一种用于多维数据传输的DMA数据传输方法,其特征在于,包括以下步骤:
S1、配置source部分的参数,包括源首地址、源类型、大小,以及地址计算公式的相关参数;
S2、配置destination部分的参数;
S3、配置完成后开始DMA传输。
2.如权利要求1所述的方法,其特征在于,其中数据的传输通过集成在DMA中的多个地址计算单元协作完成,这些单元协同运作以优化源地址和目标地址不连续情况下的传输路径,并辅助以可选配置的缓存模块来执行数据的实时处理,以确保在复杂数据条件下总线的高效使用和优化资源分配。
3.如权利要求1所述的方法,其特征在于,进一步包括在目标地址配置过程中,当目标数据的空间容量不同于源数据的原始体积时,自动执行数据区域的补全操作,这包括但不限于在目标地址的扩展部分自动填充零或其他用户预设的固定值,以确保传输后数据的一致性、完整性和应用的准确性。
4.如权利要求1至3任一项所述的方法,其特征在于,进一步包括初始化张量地址空间的步骤,通过计算公式直接识别并写入固定值到目标地址空间的相应位置。
5.一种用于多维数据传输的DMA数据传输装置,其特征在于,该装置包括:
地址计算模块,其专用于根据配置阶段提供的多个复杂公式和动态参数,精确计算多维数据的源地址与目标地址,并确保所有计算操作透明且可追溯,以支持数据的准确传输和适时变换;
控制模块,负责整体传输流程的调节与管理,确保数据从源到目标的高效转移,同时能够根据配置提供的公式和参数对数据进行必要的旋转、翻转及扩展等操作,以适应不同应用场景。
6.如权利要求5所述的装置,其特征在于,还包括总线缓存模块,其主要用于数据传输过程中对不连续地址的数据进行智能缓存处理,并在可能的情况下将非连续的数据传输请求合并成连续数据块进行输送,以减少总线占用频次和提高数据传输的稳健性和效率。
7.如权利要求6所述的装置,其特征在于,所述总线缓存模块具有增强功能,在数据传输过程中通过对非连续地址的数据请求进行缓存等待,从而期望匹配出现地址连续或相近数据,当条件满足时将数据合并成批量传输,以降低总线占用率并减少出现瓶颈的可能性,提升系统整体效率。
8.如权利要求5所述的装置,其特征在于,其设计支持多通道架构,各通道可以按照独立的配置进行操作和参数设定,每个通道有能力进行单独的数据处理和传输,所有通道共用总线接口以实现并行高效的数据传输,这种设计大大增强了DMA装置在处理复杂多维数据传输时的响应速度和吞吐能力。
9.一种DMA设备,其特征在于,其集成有如权利要求4至7任一项所述的装置。
10.如权利要求9所述的设备,其特征在于,其中预设多个不同类型和组合的地址计算公式,以及相应的参数配置,这些配置能够适应各类不同的多维数据传输和处理需求。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202511315861.3A CN121326805A (zh) | 2025-09-15 | 2025-09-15 | 一种用于多维数据传输的dma数据传输方法、装置和设备 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202511315861.3A CN121326805A (zh) | 2025-09-15 | 2025-09-15 | 一种用于多维数据传输的dma数据传输方法、装置和设备 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN121326805A true CN121326805A (zh) | 2026-01-13 |
Family
ID=98335618
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202511315861.3A Pending CN121326805A (zh) | 2025-09-15 | 2025-09-15 | 一种用于多维数据传输的dma数据传输方法、装置和设备 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN121326805A (zh) |
-
2025
- 2025-09-15 CN CN202511315861.3A patent/CN121326805A/zh active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN115390788A (zh) | 基于fpga的图卷积神经网络稀疏矩阵乘法分配系统 | |
| CN115860080B (zh) | 计算核、加速器、计算方法、装置、设备、介质及系统 | |
| CN114092338B (zh) | 图像缩放快速计算方法 | |
| CN112905530A (zh) | 片上架构、池化计算加速器阵列、单元以及控制方法 | |
| CN116402102A (zh) | 神经网络处理器和电子设备 | |
| CN112235579A (zh) | 视频处理方法、计算机可读存储介质及电子设备 | |
| WO2025222786A1 (zh) | 直接存储器访问装置及操作方法、数据处理装置 | |
| CN116737107A (zh) | 一种基于外积的矩阵乘法运算处理器、方法及介质 | |
| CN116775505A (zh) | 面向非易失性存内计算ai芯片架构的缓存复用方法及系统 | |
| US7451182B2 (en) | Coordinating operations of network and host processors | |
| WO2023115529A1 (zh) | 芯片内的数据处理方法及芯片 | |
| CN112486402A (zh) | 一种存储节点及系统 | |
| CN120912416A (zh) | 基于fpga的低资源、低能耗遥感图像类脑计算系统 | |
| CN110633233A (zh) | 一种基于流水线的dma数据传输处理方法 | |
| CN110377874A (zh) | 卷积运算方法及系统 | |
| CN114492729A (zh) | 卷积神经网络处理器、实现方法、电子设备及存储介质 | |
| CN106909320B (zh) | 一种多维数据扩充传输的方法、装置以及系统 | |
| CN121326805A (zh) | 一种用于多维数据传输的dma数据传输方法、装置和设备 | |
| CN120320932A (zh) | 基于龙芯软核的simon加解密硬件加速系统及方法 | |
| CN101741727B (zh) | 使用三重缓冲来处理数据的方法 | |
| CN117435251B (zh) | 一种后量子密码算法处理器及其片上系统 | |
| EP1532582B1 (en) | Method and apparatus for image data processing using image strips and circular addressing arrangement | |
| CN119718716A (zh) | 零拷贝的ai芯片通信系统、方法、设备、介质及产品 | |
| CN111814675B (zh) | 基于fpga支持动态分辨率的卷积神经网络特征图组装系统 | |
| CN117408318A (zh) | 一种基于fpga卷积神经网络的数据高效存取方法 |
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 |