CN118860922A - 数据传输方法及装置 - Google Patents
数据传输方法及装置 Download PDFInfo
- Publication number
- CN118860922A CN118860922A CN202310477797.3A CN202310477797A CN118860922A CN 118860922 A CN118860922 A CN 118860922A CN 202310477797 A CN202310477797 A CN 202310477797A CN 118860922 A CN118860922 A CN 118860922A
- Authority
- CN
- China
- Prior art keywords
- data
- dma
- arm
- target data
- indication information
- 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
- 230000005540 biological transmission Effects 0.000 title claims abstract description 111
- 238000000034 method Methods 0.000 title claims abstract description 73
- 230000015654 memory Effects 0.000 claims abstract description 121
- 238000004891 communication Methods 0.000 claims abstract description 52
- 238000012546 transfer Methods 0.000 claims description 46
- 238000012545 processing Methods 0.000 claims description 30
- 238000004590 computer program Methods 0.000 claims description 17
- 238000013507 mapping Methods 0.000 claims description 15
- 230000004044 response Effects 0.000 claims description 12
- 230000002159 abnormal effect Effects 0.000 claims description 9
- 230000006870 function Effects 0.000 description 21
- 238000010586 diagram Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 8
- 238000012795 verification Methods 0.000 description 8
- 238000007726 management method Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000012549 training Methods 0.000 description 4
- 230000001427 coherent effect Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000006073 displacement reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000013524 data verification Methods 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Landscapes
- Bus Control (AREA)
- Communication Control (AREA)
- Computer And Data Communications (AREA)
Abstract
一种数据传输方法及装置,涉及计算机技术领域。该方法包括:ARM建立与DMA之间的通信通道,并通过该通信通道向DMA发送用于指示对位于用户态的虚拟内存中的目标数据执行数据传输操作的指示信息,以使得DMA可以根据该指示信息传输虚拟内存中的目标数据。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种数据传输方法及装置。
背景技术
在计算机技术中,为了降低中央处理器(Central Processing Unit,CPU)的消耗,可以基于零拷贝技术实现数据的传输。零拷贝技术是一种不需要使用CPU就可以将数据从一个存储区域复制到另一个存储区域,节约了CPU资源。同时,零拷贝技术减少了用户态的地址空间和内核态的地址空间之间因为上下文切换而带来的开销。
发明内容
一方面,提供一种数据传输方法,该方法包括:高级精简指令集计算机(advancedrisc machine,ARM)建立与直接内存访问(direct memory access,DMA)之间的通信通道,并通过该通信通道向DMA发送用于指示ARM对虚拟内存中的目标数据执行数据传输操作的第一指示信息。其中,该虚拟内存位于用户态。
在一些实施例中,该方法还包括:ARM将DMA使用的物理内存映射为虚拟内存,并将目标数据存储至虚拟内存中。
在一些实施例中,该方法还包括:ARM向DMA发送用于指示目标数据的数据长度的第二指示信息。
在一些实施例中,该方法还包括:获取DMA的执行结果,该执行结果包括DMA传输目标数据是否超时、是否完成目标数据的传输、是否成功传输目标数据中的一个或多个。ARM根据该执行结果,确定DMA执行数据传输的操作是否异常。
在一些实施例中,该方法还包括:ARM向DMA发送多个递增数,并从接收端获取该接收端接收到的递增数。其中,该多个递增数包括多个依次增大的数字。ARM根据发送的多个递增数以及接收端接收到的递增数,确认DMA传输的数据是否一致。
在一些实施例中,该方法还包括:ARM与FPGA连接,FPGA用于通过逻辑分析仪获取与DMA传输相关的数据并根据与DMA传输相关的数据,确定DMA传输的递增数是否一致,其中,与DMA传输相关的数据包括与DMA连接的FIFO模块发送的数据以及接收的数据、DMA的传输总线上的数据以及DMA发送的数据
另一方面,提供一种数据传输方法,该方法包括:DMA建立与ARM之间的通信通道,并通过该通信通道接收来自ARM的用于指示ARM对目标数据执行数据传输操作的第一指示信息。其中,对目标数据和执行数据传输操作包括根据目标数据的内存地址,获取目标数据,或者,向目标数据的内存地址发送目标数据。DMA根据第一指示信息,对目标数据进行传输操作。
在一些实施例中,该方法还包括:DMA接收来自ARM的用于指示所述目标数据的数据长度的第二指示信息。
在一些实施例中,DMA传输目标数据的执行结果包括DMA传输目标数据是否超时、是否完成目标数据的传输、是否成功传输目标数据中的一个或多个。该执行结果用于反映DMA执行数据传输的操作是否异常。
在一些实施例中,该方法还包括:DMA接收来自ARM的多个递增数,该多个递增数包括多个依次增大的数字。DMA向接收端发送所述多个递增数。该接收端用于接收DMA发送的数据。
另一方面,提供一种数据传输装置。应用于ARM,该装置包括:建立单元和发送单元。
其中,建立单元,被配置为:建立与DMA之间的通信通道。
发送单元,被配置为:通过该通信通道向DMA发送用于指示ARM对虚拟内存中的目标数据执行数据传输操作的第一指示信息。其中,该虚拟内存位于用户态。
在一些实施例中,该装置还包括映射单元。映射单元,被配置为:将DMA使用的物理内存映射为用户态的虚拟内存,并将目标数据存储至虚拟内存中。
在一些实施例中,发送单元,还被配置为:向DMA发送用于指示目标数据的数据长度的第二指示信息。
在一些实施例中,该装置还包括获取单元。获取单元,被配置为:获取DMA的执行结果,该执行结果包括DMA传输目标数据是否超时、是否完成目标数据的传输、是否成功传输目标数据中的一个或多个。ARM根据该执行结果,确定DMA执行数据传输的操作是否异常。
在一些实施例中,发送单元,还被配置为:向DMA发送多个递增数,并从接收端获取该接收端接收到的递增数。其中,该多个递增数包括多个依次增大的数字。ARM根据发送的多个递增数以及接收端接收到的递增数,确认DMA传输的数据是否一致。
在一些实施例中,ARM与FPGA连接,FPGA用于通过逻辑分析仪获取与DMA传输相关的数据并根据与DMA传输相关的数据,确定DMA传输的递增数是否一致,其中,与DMA传输相关的数据包括与DMA连接的FIFO模块发送的数据以及接收的数据、DMA的传输总线上的数据以及DMA发送的数据。
另一方面,提供一种数据传输装置,该装置包括:建立单元和接收单元、处理单元。建立单元,被配置为:响应于配置操作,建立与ARM之间的通信通道。接收单元,被配置为:通过通信通道,接收来自ARM的用于指示对虚拟内存中的目标数据执行数据传输操作的第一指示信息。其中,虚拟内存位于用户态。处理单元,被配置为:根据第一指示信息,传输虚拟内存中的目标数据。
在一些实施例中,接收单元,还被配置为:接收来自ARM的用于指示目标数据的数据长度的第二指示信息。处理单元,还被配置为:根据第二指示信息,确定传输的目标数据的数据长度。
在一些实施例中,DMA传输目标数据的执行结果包括DMA传输目标数据是否超时、是否完成目标数据的传输、是否成功传输目标数据中的一个或多个。
在一些实施例中,接收单元,还被配置为:接收来自ARM的多个递增数,该多个递增数包括多个依次增大的数字。发送单元,还被配置为:向接收端发送多个递增数。
又一方面,提供一种数据传输装置,包括处理器和通信接口。通信接口和处理器耦合。处理器用于运行计算机程序或指令,以实现上述任一实施例的数据传输方法。
又一方面,提供一种计算机可读存储介质。所述计算机可读存储介质存储有计算机程序指令,所述计算机程序指令在计算机(例如,服务器)上运行时,使得所述计算机执行如上述任一实施例所述的数据传输方法。
又一方面,提供一种计算机程序产品。所述计算机程序产品包括计算机程序指令,在计算机(例如,服务器)上执行所述计算机程序指令时,所述计算机程序指令使计算机执行如上述任一实施例所述的数据传输方法。
又一方面,提供一种计算机程序。当所述计算机程序在计算机(例如,服务器)上执行时,所述计算机程序使计算机执行如上述任一实施例所述的数据传输方法。
附图说明
为了更清楚地说明本公开中的技术方案,下面将对本公开一些实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例的附图,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。此外,以下描述中的附图可以视作示意图,并非对本公开实施例所涉及的产品的实际尺寸、方法的实际流程、信号的实际时序等的限制。
图1为根据一些实施例的DMA客户端的驱动流程的示意图;
图2为根据一些实施例的硬件装置的示意图;
图3为根据一些实施例的信号发送端和信号接收端的结构图;
图4为根据一些实施例的数据处理装置的示意图;
图5为根据一些实施例的数据传输方法的流程图;
图6为根据一些实施例的DMA的方式的流程图;
图7为根据一些实施例的数据传输装置的示意图;
图8为根据一些实施例的数据传输装置的示意图;
图9为根据一些实施例的数据传输装置的结构图。
具体实施方式
下面将结合附图,对本公开一些实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开所提供的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本公开保护的范围。
除非上下文另有要求,否则,在整个说明书和权利要求书中,术语“包括(comprise)”及其其他形式例如第三人称单数形式“包括(comprises)”和现在分词形式“包括(comprising)”被解释为开放、包含的意思,即为“包含,但不限于”。在说明书的描述中,术语“一个实施例(one embodiment)”、“一些实施例(some embodiments)”、“示例性实施例(exemplary embodiments)”、“示例(example)”、“特定示例(specific example)”或“一些示例(some examples)”等旨在表明与该实施例或示例相关的特定特征或特性包括在本公开的至少一个实施例或示例中。上述术语的示意性表示不一定是指同一实施例或示例。此外,所述的特定特征或特点可以以任何适当方式包括在任何一个或多个实施例或示例中。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本公开实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在描述一些实施例时,可能使用了“耦接”和“连接”及其衍伸的表达。例如,描述一些实施例时可能使用了术语“连接”以表明两个或两个以上部件彼此间有直接物理接触或电接触。又如,描述一些实施例时可能使用了术语“耦接”以表明两个或两个以上部件有直接物理接触或电接触。然而,术语“耦接”或“通信耦合(communicatively coupled)”也可能指两个或两个以上部件彼此间并无直接接触,但仍彼此协作或相互作用。这里所公开的实施例并不必然限制于本文内容。
“A、B和C中的至少一个”与“A、B或C中的至少一个”具有相同含义,均包括以下A、B和C的组合:仅A,仅B,仅C,A和B的组合,A和C的组合,B和C的组合,及A、B和C的组合。
“A和/或B”,包括以下三种组合:仅A,仅B,及A和B的组合。
如本文中所使用,根据上下文,术语“如果”任选地被解释为意思是“当……时”或“在……时”或“响应于确定”或“响应于检测到”。类似地,根据上下文,短语“如果确定……”或“如果检测到[所陈述的条件或事件]”任选地被解释为是指“在确定……时”或“响应于确定……”或“在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。
本文中“适用于”或“被配置为”的使用意味着开放和包容性的语言,其不排除适用于或被配置为执行额外任务或步骤的设备。
另外,“基于”的使用意味着开放和包容性,因为“基于”一个或多个所述条件或值的过程、步骤、计算或其他动作在实践中可以基于额外条件或超出所述的值。
在一些场景中,为了实现零拷贝,可以通过高级可扩展接口直接内存访问(advanced extensible interface direct memory access,AXIDMA)核的数据搬运功能实现。例如,在配置有LINUX操作系统的设备中,可以通过系统中的驱动层的客户端(CLIENT)-驱动,并结合系统的DMA引擎框架应用程序编程接口(application programminginterface,API)的方式、及系统的底层驱动代码,来实现AXIDMA核的功能。
一种示例中,如图1所示,为一种DMA客户端的驱动流程。该驱动流程可以包括S1~S6。
S1、用户层调用收发接口。
其中,用户层调用收发接口可以包括:打开虚拟硬件设备、ARM侧程序将DMA使用物理内存映射为虚拟内存、操作发送/接收接口。
S2、用户接口触发操作系统软中断。
S3、操作系统通过ARM的用户态应用程序,调用驱动程序接口。
其中,操作系统可以调用接口实现从用户态的应用程序通过软件中断方式,跳转到内核态的驱动程序,执行驱动的程序工作(如运行内核对应的注册函数)。在驱动程序工作结束之后,操作系统再跳转回用户态的应用程序,并反馈内核态驱动程序的执行结果。
S4、内核态通过DMA的client驱动,完成DMA使用的物理内存到用户态的虚拟内存的映射,或者完成响应用户态应用程序的各自接口调用。
其中,内核态的驱动程序通过与用户态的应用程序之间可以建立有通信通道。如此,内核态可以通过通信通道,完成对DMA的配置操作(如内存映射、函数回调等)。
S5、内核态由DMA的client驱动,通过API接口跳转到DMA的引擎(engine)驱动,并由DMA的engine驱动完成对底层DMA的控制器(controller)驱动,完成DMA通道申请、用于发送和接收数据的通道管理、状态监控、队列控制等操作。
S6、DMA的controller驱动对DMA的硬件进行配置、访问等,用于实现对DMA硬件的实际驱动。
基于上述驱动流程,还提供了一种硬件装置的框图。如图2所示,该硬件装置可以包括多个模块。例如,该多个模块可以包括xlconstant模块、axcache_coherent模块、核心模块、互联模块(ps8_0_axi_periph)、tready_high模块、axi_smc模块、DMA、axi_gpio模块、FIFO模块、逻辑模块(util_reduced_logic)、Xlconcat模块0、重置模块(rst_ps8_0_99M)。上述多个模块中的接口以及连接方式可以参照图2所示,不予赘述。
具体的,结合上述硬件装置,DMA搬运数据的过程可以包括:DMA模块通过axi_smc模块的S01_AXI接口,从ARM侧获取需要传递的数据,并通过DMA的M_AXI_MM2S接口,将数据输入到DMA的IP核中,并通过M_AXIS_MM2S接口将数据传递给FIFO模块的S_AXIS接口,并通过FIFO模块的M_AXIS端口传递给DMA的S_AXIS_S2MM端口,并最终通过M_AXI_S2MM端口传递给axi_smc模块的S02_AXI端口,并通过axi_smc模块中的M00_AXI端口回传给核心模块。
上述通过硬件的方式,通过配置高速缓存一致互连(cache coherentinterconnect,CCI)配置,以及bootgen工具实现在内核切断前,实现硬件上的相干系统(coherent system)。
本申请实施例中,为了避免操作系统和关键数据被用户程序所破坏,将处理器的执行状态分为内核态和用户态。用户程序运行在用户态,操作系统内核运行在内核态。内核态是操作系统管理程序执行时所出的状态,能够执行包含特权指令在内的一切指令,能够访问系统所有的存储空间。用户态是用户程序执行时所处的状态,不能执行特权指令,只能访问用户地址空间。
又一种示例中,还提供了一段驱动代码,用于验证数据传输是否一致。例如,该驱动代码可以如下所述:
基于上述驱动代码,可以基于上述硬件装置实现DMA的数据传输,但出现数据不一致问题。其中,通过ARM侧的数据校验以及现场可编程逻辑门阵列(field programmablegate array,FPGA)侧的数据验证,校验数据均存在跳变的现象。
鉴于此,本申请实施例提供了一种技术方案,通过直接寄存器驱动的方式,而不使用DMA引擎的方式,解决了数据不一致的问题。同时DMA数据传输过程中,不会受到操作系统的内核驱动DMA引擎框架的影响(如参数不匹配)的影响,也不需要DMA控制器的驱动以及DMA引擎驱动等。如此,直接驱动DMA去配置读写操作,并分配硬件地址内存给DMA,这样就可以不使用LINUX操作系统的DMA引擎驱动,从而可以避免对于DMA引擎接口的适配以及DMA控制器驱动的调用等。
本申请实施例中,可以验证用户端的内存中的数据与内核端的内存中的数据一致性,并对ARM进行回环测试,对本申请实施例提供的技术方案进行了验证,确定本申请实施例中的技术方案,既能传输数据,又能保持数据一致性。
需要指出的是,本申请实施例涉及多个技术领域,例如,可以涉及UNIX-C编程、LINUX用户态和内核态的架构、LINUX用户态和内核态的跳转的技术实现、AXIDMA-网际互连协议(internet protocol,IP)核的控制、DMA引擎、DMA控制器驱动、DMA-客户端驱动中的一个或多个技术领域。
其中,UNIX-C编程可以包括:如何实现用户端程序调用内核驱动进行数据的发送和接收,以及如何打开DMA通道的硬件设备文件,如何通过对DMA的物理地址内存进行映射操作等。
LINUX用户态和内核态中,用户态如何通过对应的接口与内核态中对应的接口交互,以及如何实现用户态和内核态的无缝跳转。
LINUX用户态和内核态软中断实现方式包括:如何通过底层的中断映射跳转到对应的驱动接口,如何绑定对应的文件操作之间的跳转关系。
AXIDMA-IP核的控制包括:如何实现软核的控制,包括数据开启发送,数据传输是否结束标志,数据传送字节对齐方式,数据传送完成清理,软件核如何初始化等等工序。
一种应用场景中,本申请实施例的技术方案可以应用于毫米波卫星通信系统。其中,毫米波卫星通信系统可以包括信号发送端和信号接收端。信号发送端与信号接收端通信连接。例如,信号发送端可以为卫星、或者其他具有发送数据功能的设备(如无人机等设备)。信号接收端可以为移动设备、网络设备、地面接收设备等。
其中,信号发送端可以向信号发送端发送数据,例如,数据可以包括视频数据、音频数据、和/或其他类型的数据(如第五代(5th generation,5G)数据)。
一种示例中,以信号发送端向信号接收端发送视频数据为例,信号发送端可以设置有多个器件,该多个器件可以实现视频数据的发送。例如,如图3所示,该多个器件可以包括摄像头(如高清多媒体接口(high definition multimedia interface,HDMI)摄像头)、视频编码器、FPGA核心板、射频板、天线(也可以称为发射天线、射频信号天线)等。其中,该多个器件可以通过数据链路串联。
其中,摄像头可以用于拍摄视频数据,并将拍摄的视频数据传输给视频编码器。视频数据的分辨率根据摄像头的硬件配置相关。例如,可以为1920/1280的分辨率或1280/720的分辨率。
视频编码器在接收到来自摄像头的视频数据之后,可以对接收到的视频数据进行编码处理,得到对应的码流数据,并向FPGA核心板发送码流数据。FPGA核心板在接收到来自视频编码器的码流数据之后,可以联动射频板工作。如此,射频板可以通过天线发送码流数据。例如,射频板可以将码流数据转换为微波信号进行传输。
对于信号接收端,信号接收端在接收到来自信号发送端的码流数据之后,可以对码流数据进行解码,并显示视频数据。
一种示例中,如图3所示,为本申请实施例提供的一种信号接收端。该信号接收端可以包括多个器件,例如,可以包括天线(也可以称为接收天线、射频信号天线)、FPGA核心板、射频板、视频解码器、显示器(如可以为HDMI显示屏)等。其中,该多个器件可以通过网线、交换机、射频器件等连接。
其中,天线可以用于发射或接收微波信号,并将微波信号转换为模拟电信号。在接收到的微波信号转换为模拟电信号之后,天线还可以将模拟电信号传输给射频板。
射频板可以用于将模拟电信号通过DAC转换为数字信号并向FPGA核心板传输数字信号。该数字信号可以包括符号信息,也即,正交频分复用技术(orthogonal frequencydivision multiplexing,OFDM)技术中的正交向量和同相向量。
FPGA核心板在接收到来自射频板的数字信号之后,可以通过算法解析接收到的数字信号,并将解析后的数据传输给ARM。其中,解析后的数据为码流数据。
ARM可以用于向视频解码器传输码流数据。
视频解码器可以用于对码流数据进行解码,得到对应的视频数据,并向显示器传输视频数据。例如,视频解码器可以通过HDMI接口向显示器传输视频数据。显示器可以用于显示接收到的视频数据。
其中,视频解码器可以使用解码算法对码流数据进行解码,得到视频数据。解码算法可以根据需要设置,例如可以为H265算法,不予限制。
由上述描述可知,在信号发送端,当数据通过视频编码器到达FPGA核心板的ARM端之后,FPGA核心板的ARM的程序,需要实现将码流数据发送给FPGA核心板的PL侧(也即FPGA端),用于FPGA端获得处理的数据。
同时,在信号接收端,当FPGA核心板通过射频板,成功接收到数据,并且使用算法解析出对应的码流数据后,需要将码流数据从FPGA端传输至ARM端。
一种示例中,信号接收端可以通过DMA的方式,实现FPGA端和ARM端之间的数据传输。DMA可以利用DMA器件的硬件功能,在不需要耗费CPU的情况下,快速的将大量数据从ARM端传输至FPGA端,或者从FPGA端传输至ARM端。
例如,信号接收端可以通过DMA的方式,搬运给ARM侧,随后ARM侧的程序调用AXIDMA核的驱动方式,获取来自FPGA的数据,并将码流数据传递给视屏编码器。
又例如,可以通过编写DMA的硬件模块的驱动方式,以使得ARM端的程序可以调用驱动,实现硬件驱动DMA工作的功能。如此,可以将ARM端收到的码流数据,传输到FPGA端,建立数据链路通道。
本申请实施例中,为了实现将FPGA的PS侧内存上的数据能够传输到PL侧的内存中,可以通过网线,将与信号节点端的主板连接的数据源中的数据,传输至PS侧的内存中,然后,通过DMA的方式将该数据搬运至PL侧的内存中。如此,FPGA可以将数据调制成微波信号,并通过天线发送。信号接收端的天线在接收到微波信号之后,可以对接收到的微波信号进行解调数据之后,可以将数据存储至FPGA核心板的PL侧内存中。信号接收端的主板可以通过DMA的方式将PL侧内存的数据传输给PS侧的内存中,并通过网线的方式,继续传输数据,形成数据传输的闭环。
基于本申请实施例的技术方案,通过在内核侧,实现基于DMA的硬件驱动配置,将与硬件相关的操作,都设置在内核侧的驱动工作中。由驱动层直接为用户层的程序提供驱动,以使得用户层可以直接调用DMA的读写操作。
一种可能的实现方式中,如图4所示,为本申请实施例提供的一种处理装置,该处理装置可以应用于图3所示的信号发送端中的FPGA和/或信号接收端中的FPGA。
该处理装置可以包括时钟管理模块(rst_clk_wiz_100M)、通道内联模块(axi_interconnect_0)、数据移位通道模块(xlconcat_0)、DMA(axi_dma_0)、系统数据获取模块(system_ila_0)、FIFO模块(axi_data_fifo_0)、AXI内联模块(ps7_0_axi_periph)、处理系统模块(processing_system)。该多个模块的端口以及连接方式可以参照图4所示,不予赘述。
下面分别对上述模块的功能进行说明。
1、时钟管理模块。
其中,时钟管理模块可以用于通过标准时钟生成多种应用时钟。本申请实施例中,可以通过时钟管理模块,实现所有模块的时钟同频,保证了各个模块之间的同步。
2、通道内联模块。
其中,通道内联模块可以提供一个输入、多个输出,或者提供一个输出、多个输入。本申请实施例中,通过ARM端的一个数据通道,在输出端生成两个数据通道。其中,一个数据通道可以用于向DMA发送数据,另一个数据通道可以用于通过DMA将回环的数据传输给ARM。
3、数据位移通道模块。
其中,数据位移通道模块可以用于将输入的数据移动到高位,使得多路输入的数据可以通过高低位的方式,合并成一个通道的数据进行输出。本申请实施例中,基于该数据位移通道模块,DMA可以通过一个数据通道向ARM端发送接收完成中断信号,或者发送完成中断信号。
4、DMA。
其中,DMA也可以为DMA的IP核。DMA可以实现DMA的数据搬运。本申请实施例中,基于DMA以及对应的驱动,可以实现ARM端到FPGA端的数据发送以及FPGA端到ARM端的数据读取。
5、系统数据获取模块。
其中,系统数据获取模块可以为FPGA的软核。本申请实施例中,系统数据获取模块可以用于抓取FIFO模块的数据、数据通道中的数据以及验证发送的数据和接收的数据是否一致等。
6、FIFO模块。
其中,FIFO模块可以用于控制FPGA的流输入和输出。本申请实施例中,DMA在接收到数据之后,可以传输给FIFO模块。FIFO模块可以以先入先出的方式将数据传输给DMA,并通过DMA的输出驱动,实现数据的回环。
7、处理系统模块。
其中,处理系统模块可以为FPGA核心板。处理系统模块可以调用DMA实现数据的发送及接收。本申请实施例中,处理系统模块可以用于对DMA进行配置,实现ARM端与FPGA端之间的数据传输。
需要说明的是,上述多个模块均可以为FPGA的IP核。另外,本申请实施例中,处理装置还可以包括其他模块,不予限制。
下面将结合说明书附图,对本申请实施例的实施方式进行详细描述。
如图5所示,“本申请实施例提供的技术方案可以包括:S501~S503。
S501、ARM建立与DMA之间的通信通道。
其中,通信通道也可以称为通讯通道、通信路由。通信通道可以用于ARM与DMA之间的数据/信息的传输。
一种示例中,ARM可以配置有应用程序。该应用程序可以响应于构建操作,打开驱动层提供的驱动设备文件,并基于该驱动设备文件,建立与DMA之间的通信通道。
其中,驱动设备文件也可以称为字符设备文件。本申请实施例中,基于DMA的方式,可以在驱动层实现DMA的工作,并配置用于生成通信通道的驱动设备文件、注册字符设备以及对应的驱动框架窗口,并将驱动设备文件对应的调用接口注册到内核的文件操作接口中。
需要说明的是,本申请实施例中,DMA可以配置有多个驱动。例如,可以包括DMA的客户(client)驱动、引擎(engine)驱动、控制(controller)驱动。其中,DMA的client驱动与engine驱动可以通过接口实现相互调用。controller驱动与engine驱动也可以通过接口实现相互调用。
其中,client驱动可以用于对通信通道的创建和管理、对通信通道的数据缓存区进行管理、为应用层服务的设备文件提供调用接口和驱动接口。engine驱动可以用于将DMA的驱动抽象化。这样一来,对于不同类型的DMA硬件控制器驱动,客户端的驱动程序都不需要更改。对应任一类型的DMA硬件控制器驱动,通过编写控制器的驱动,就可以关联LINUX内核。
进一步的,本申请实施例中,可以通过字符设备以及对应的驱动框架窗口,实现对驱动设备文件的注册、确定驱动设备文件对应的调用接口的注册,以及/sys/class和/proc/devices设备的自动创建等。
本申请实施例中,ARM与D MA之间可以建立多个通信通道。每个通信通道可以具有对应的调用接口以及物理内存。
S502、ARM通过通信通道向DMA发送第一指示信息。相应的,DMA接收来自ARM的第一指示信息。
其中,第一指示信息用于指示对虚拟内存中的目标数据进行数据传输操作。虚拟内存位于用户态,且该虚拟内存与DMA的物理内存之间存在映射关系。例如,第一指示信息可以包括目标数据对应的虚拟内存的地址信息,以及第一指示符。第一指示符可以用于指示根据传输虚拟内存中的目标数据。第一指示符可以为数字和/或字符。
一种示例中,ARM可以通过操作系统向内核驱动程序下发第一指示信息。内核驱动程序在接收到该第一指示信息之后,可以根据该第一指示信息确定数据对应的虚拟内存,并根据第一指示符确定执行的数据传输操作。内核态的驱动程序可以通过该第一指示信息对应的配置信息,并向DMA发送该配置信息。如此,DMA可以基于该配置信息,确定需要执行的数据传输操作。
进一步的,本申请实施例中,为了便于DMA更加准确的进行数据传输,ARM还可以向DMA发送第二指示信息。第二指示信息可以用于指示目标数据的数据长度。例如,第二指示信息可以包括目标数据的字节数或者字符数量等。DMA可以根据第二指示信息,确定需要获取或发送的目标数据的数据长度。后续,DMA可以根据目标数据的数据长度,准确的确定需要传输的目标数据的大小。
S503、DMA根据第一指示信息,传输目标数据。
其中,DMA根据第一指示信息,传输目标数据可以包括DMA根据第一指示信息,将从ARM端的虚拟内存中获取目标数据,并将目标数据传输给FPGA端,或者从FPAG端的虚拟内存中获取目标数据,并将目标数据传输给ARM端。
一种示例中,结合上述图4,DMA接收到第一指示信息之后,可以向FIFO发送数据,或者从FIFO模块中获取数据,以实现数据的闭环。
又一种示例中,结合上述视频数据的传输场景,在图4所示的装置应用于上述信号发送端的FPGA的情况下,第一指示信息可以用于指示将解析后的数据从FPGA端传输至ARM端。
又一种示例中,结合上述视频数据的传输场景,在图4所示的装置应用于上述信号接收端的FPGA的情况下,第一指示信息可以用于指示将码流数据从FPGA端传输至ARM端。
基于图5的技术方案,ARM在与DMA建立通信通道之后,可以通过DMA,实现数据传输。例如,ARM可以通过建立的通信通道向DMA指示信息,以使得DMA可以根据指示信息,执行相应的数据传输操作。如此,不需要CPU的参与便可以实现数据的传输。
一些实施例中,本申请实施例中,ARM还可以将DMA使用的物理内存映射为用户态的虚拟内存,并将目标数据存储至虚拟内存中。
其中,DMA使用的物理内存可以是连接到ARM侧的外置DDR4存储器。
一种示例中,ARM可以通过内存映射的方式,将DMA所使用的物理内存映射成用户态的虚拟内存,以便于用户态的应用程序可以根据地址访问方式直接管理DMA的物理内存。
本申请实施例中,操作系统可以包括用户空间和内核空间。例如,对于32位的操作系统,可以将0-3G作为用户空间,将3-4G作为内核空间。用户空间或用户侧的应用程序无法直接访问内核空间的物理地址。
一种可能的实现方式中,ARM可以通过预留内存的方式,从物理内存中,分配两块一定大小的内存,作为DMA的物理内存使用。ARM可以通过虚拟内存重映射的方式,将预留物理内存重映射到用户态虚拟内存。如此,用户态的应用程序可以通过地址访问方式,直接以虚拟内存的方法来控制DMA的物理内存。
本申请实施例中,还可以将DMA的物理内存经由驱动映射到用户态,如此,可以通过用户态直接管理DMA的物理内存。在数据传输过程中,不需要将用户态中的数据搬运至内核态的物理内存,而是直接搬运至用户态的虚拟内存中。从而可以实现数据的零拷贝,提高了数据的传输速度。
一些实施例中,DMA在执行完成数据传输操作之后,本申请实施例提供的方法还可以包括:ARM获取DMA的数据传输的执行结果。
其中,DMA的数据传输的执行结果可以用于指示DMA执行数据传输的情况。例如,执行结果可以包括执行数据传输是否超时、是否能够传输数据、是否成功传输数据中的一个或多个。
一种可能的实现方式中,DMA的硬件驱动可以将DMA的执行结果,返回给ARM的内核态驱动程序。相应的,ARM用户态应用程序可以通过DMA的硬件驱动,获取DMA的执行结果。
一种示例中,上述指示信息还可以包括执行数据传输的时长。如此,DMA在执行完成数据传输之后,可以根据执行数据传输的时长,确定执行数据传输是否超时。
又一种示例中,DMA在执行完成数据传输操作之后,可以根据响应信息,确定是否成功传输数据。例如,若DMA接收到数据接收端的响应信息,则确定成功传输数据。若DMA未接收到数据接收端的响应信息,则确定数据传输失败。
基于该实施例,ARM可以根据DMA反馈的执行结果,确定DMA执行数据传输情况。如此,ARM可以根据DMA的数据传输情况,确定DMA执行数据传输的过程是否存在异常。
一些实施例中,为了检测DMA执行数据传输过程中数据是否一致,本申请实施例提供的方法还可以包括:对DMA的数据传输进行验证。
一种示例中,对DMA的数据传输验证可以包括软件层面的验证和硬件层面的验证。下面分别对软件层面的验证和硬件层面的验证进行说明。
一、软件层面的验证。
其中,软件层面的验证可以包括:通过一组递增数,验证数据传输是否一致。一组递增数可以包括多个依次递增的数值。例如,一组递增数可以包括11、12、13等。
一种可能的实现方式中,对于信号发送端,信号发送端可以通过ARM发送一组递增数。ARM可以通过通信通道向DMA发送该组递增数。DMA在接收到来自ARM发送的递增数之后,可以向FPGA发送接收到的递增数。如此,信号发送端可以比较FPGA接收到的递增数与ARM发送的递增数,确定DMA传输的数据是否一致。例如,ARM发送的递增数为11、12、13,FPGA接收到的递增数为11、12、13,则说明DMA传输的数据一致。又例如,ARM发送的递增数为11、12、13,FPGA接收到的递增数为11、12、14,则说明DMA传输的数据存在数据跳变,也即,DMA传输的数据不一致。
进一步的,DMA可以循环验证,对DMA的数据传输过程进行验证。例如,DMA可以不断增加递增数中的数据的数量,直至出现数据跳变。
又一种可能的实现方式中,对于信号接收端,信号接收端可以将一组递增数存储至ARM的内存中,并指示ARM将内存中的数据传输至FPGA。ARM在接收到指示信息之后,可以从ARM的内存中读取存储的递增数,并向FPGA传输获取到的递增数。如此,信号接收端可以比较ARM内存中的递增数与FPGA接收到的递增数,确定DMA传输的数据是否一致。
二、硬件层面的验证。
其中,硬件层面的验证可以是是指通过逻辑分析仪验证上述多个模块中的传输的数据是否一致。结合上述图4所示的处理装置,逻辑分析仪可以用于验证该处理装置中模块传输的数据是否一致。
一种示例中,信号接收端和/信号发送端可以通过逻辑分析仪,检测FIFO模块发送的数据和接收到的数据是否一致。
又一种示例中,信号接收端和.信号发送端可以检测DMA的传输总线上的数据与当前传输的数据是否一致。
基于上述技术方案,通过对DAM传输数据的一致性进行验证,可以检测DMA传输是否异常。
一些实施例中,如图6所示,本申请实施例中,DMA的方式可以包括S601~S604。
S601、用户层调用收发接口。
其中,S601可以参照上述图1中的S1,不予赘述。
S602、用户接口触发系统中断。
S603、ARM侧的应用程序发起跳转请求,触发操作系统的软中断,以使得操作系统跳转到内核态。
其中,内核态根据软中断编号,以及用户程序请求函数对应的程序列表,找到对应注册的内核态程序接口,从而继续内核态操作。
S604、操作系统在跳转到内核态之后,根据与用户态的软中断匹配的指令,打开驱动设备文件绑定的注册驱动函数,并通过注册驱动函数对应的调用接口,实现驱动设备文件的功能。
其中,ARM端的应用程序会触发多次软中断跳转,在内核启动时,内核态的驱动程序会将所有接口都注册到对应的系统调用列表中,内核驱动同时创建设备驱动文件,并注册设备驱动文件等。当应用程序打开设备驱动文件时,可以将内核态驱动中的对应函数接口与用户态应用程序中的调用接口绑定。后续应用程序可以使用对应的操作接口,进行硬件设备操作控制。
例如,调用接口的功能可以包括内存映射或收发功能等。
其中,在内核态中,不再使用DMA引擎的三层模型,而将DMA硬件的操作,通过直接寄存器驱动实现。对应于DMA驱动的数据传输方向,将接收通道和发送通道分离为不同驱动,并实现DMA的通道管理。
基于该技术方案,通过编写对应的设备树文件,同时通过驱动,获取对应设备树节点的属性和特征值,例如,寄存器地址、物理内存地址和长度映射等。如此,通过该设备驱动和对应的设备树联动,实现不同启动固件的匹配性。
一些实施例中,本申请实施例中,通过软件开发工具包(software developmentkit,SDK)去完成驱动的调试,验证DMA的功能。例如,可以将ARM端的读写功能映射成对应的调用指令,以使得用户态的应用程序可以通过调用指令指示ARM端在执行读写操作。
又一些实施例中,本申请实施例中,还可以通过用户态的应用程序控制DMA的读写操作。例如,可以将通过用户态的应用程序控制整个处理装置的读写流程。如此,可以绕过内核态的内存申请和接口调用。
又一些实施例中,直接通过FPGA端实现数据的传输和处理。如此,可以不需要ARM端进行数据的读取。
一些实施例中,结合上述设备驱动文件,本申请实施例中,针对不同的设备驱动文件,可以生成对应的设备描述文本。设备描述文件可以包括设备驱动文件的名称、功能等。
针对于不同的设备驱动文件,其client驱动端的设备驱动文件只需要对其映射名称做修改,然后匹配其对应的client驱动,即可让软件层通过平台驱动找到对应的通信通道,并映射对应的硬件接口,实现驱动层面的便捷访问。
本申请实施例可以根据上述方法示例对数据传输装置进行功能模块或者功能单元的划分,例如,可以对应各个功能划分各个功能模块或者功能单元,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块或者功能单元的形式实现。其中,本申请实施例中对模块或者单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
如图7所示,为本申请实施例提供的一种数据传输装置的结构示意图,该装置包括:建立单元701和发送单元702。
其中,建立单元701,被配置为:建立与DMA之间的通信通道。
发送单元702,被配置为:通过该通信通道向DMA发送用于指示ARM对虚拟内存中的目标数据执行数据传输操作的第一指示信息。其中,虚拟内存位于用户态。
在一些实施例中,该装置还包括映射单元703。映射单元703,被配置为:将DMA使用的物理内存映射为用户态的虚拟内存。
在一些实施例中,发送单元702,还被配置为:向DMA发送用于指示目标数据的数据长度的第二指示信息。
在一些实施例中,该装置还包括获取单元704。获取单元704,被配置为:获取来自DMA的执行结果,该执行结果包括DMA传输目标数据是否超时、是否完成目标数据的传输、是否成功传输目标数据中的一个或多个。ARM根据该执行结果,确定DMA执行数据传输的操作是否异常。
在一些实施例中,发送单元702,还被配置为:向DMA发送多个递增数,并从接收端获取该接收端接收到的递增数。其中,该多个递增数包括多个依次增大的数字。ARM根据发送的多个递增数以及接收端接收到的递增数,确认DMA传输的数据是否一致。
在一些实施例中,ARM与FPGA连接,FPGA用于通过逻辑分析仪获取与DMA传输相关的数据并根据与DMA传输相关的数据,确定DMA传输的递增数是否一致,其中,与DMA传输相关的数据包括与DMA连接的FIFO模块发送的数据以及接收的数据、DMA的传输总线上的数据以及DMA发送的数据。
如图8所示,为本申请实施例提供的一种数据传输装置的结构示意图,该装置包括:建立单元801和接收单元802、处理单元803。
建立单元801,被配置为:响应于配置操作,建立与ARM之间的通信通道。
接收单元802,被配置为:通过通信通道,接收来自ARM的用于指示对虚拟内存中的目标数据执行数据传输操作的第一指示信息。其中,虚拟内存位于用户态。
处理单元803,被配置为:根据第一指示信息,传输虚拟内存中的目标数据。
在一些实施例中,接收单元802,还被配置为:接收来自ARM的用于指示目标数据的数据长度的第二指示信息。处理单元,还被配置为:根据第二指示信息,传输目标数据。
在一些实施例中,DMA传输数据的执行结果,用于反映DMA执行数据传输的操作是否异常的执行结果。该执行结果包括DMA传输目标数据是否超时、是否完成目标数据的传输、是否成功传输目标数据中的一个或多个。
在一些实施例中,接收单元802,还被配置为:接收来自ARM的多个递增数,该多个递增数包括多个依次增大的数字。发送单元804,还被配置为:向接收端发送多个递增数。
在通过硬件实现时,本申请实施例中的获取单元可以集成在通信接口上,处理单元可以集成在处理器上。具体实现方式如图9所示。
图9示出了上述实施例中所涉及的处理装置,可以为或应用于上述数据处理装置。处理器902和通信接口903。处理器902用于对装置的动作进行控制管理,例如,执行上述处理单元803执行的步骤,和/或用于执行本文所描述的技术的其它过程。通信接口903用于支持装置与其他网络实体的通信,例如,执行上述发送单元702或接收单元802执行的步骤。该装置还可以包括存储器901和总线904,存储器901用于存储装置的程序代码和数据。
其中,存储器901可以是该装置中的存储器等,该存储器可以包括易失性存储器,例如随机存取存储器;该存储器也可以包括非易失性存储器,例如只读存储器,快闪存储器,硬盘或固态硬盘;该存储器还可以包括上述种类的存储器的组合。
上述处理器902可以是实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。该处理器可以是中央处理器,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。该处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线904可以是扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。总线904可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
图9中的装置还可以为芯片。该芯片包括一个或两个以上(包括两个)处理器902和通信接口903。
可选的,该芯片还包括存储器905,存储器905可以包括只读存储器和随机存取存储器,并向处理器902提供操作指令和数据。存储器905的一部分还可以包括非易失性随机存取存储器(non-volatile random access memory,NVRAM)。
在一些实施方式中,存储器905存储了如下的元素,执行模块或者数据结构,或者他们的子集,或者他们的扩展集。
在本申请实施例中,通过调用存储器905存储的操作指令(该操作指令可存储在操作系统中),执行相应的操作。
本公开的一些实施例提供了一种计算机可读存储介质(例如,非暂态计算机可读存储介质),该计算机可读存储介质中存储有计算机程序指令,计算机程序指令在计算机(例如,服务器)上运行时,使得计算机执行如上述实施例中任一实施例所述的模型训练方法及人脸识别方法。
示例性的,上述计算机可读存储介质可以包括,但不限于:磁存储器件(例如,硬盘、软盘或磁带等),光盘(例如,CD(Compact Disk,压缩盘)、DVD(Digital VersatileDisk,数字通用盘)等),智能卡和闪存器件(例如,EPROM(Erasable Programmable Read-Only Memory,可擦写可编程只读存储器)、卡、棒或钥匙驱动器等)。本公开描述的各种计算机可读存储介质可代表用于存储信息的一个或多个设备和/或其它机器可读存储介质。术语“机器可读存储介质”可包括但不限于,无线信道和能够存储、包含和/或承载指令和/或数据的各种其它介质。
本公开的一些实施例还提供了一种计算机程序产品,例如,该计算机程序产品存储在非瞬时性的计算机可读存储介质上。该计算机程序产品包括计算机程序指令,在计算机(例如,服务器)上执行该计算机程序指令时,该计算机程序指令使计算机执行如上述实施例所述的模型训练方法及人脸识别方法。
本公开的一些实施例还提供了一种计算机程序。当该计算机程序在计算机(例如,服务器)上执行时,该计算机程序使计算机执行如上述实施例所述的模型训练方法及人脸识别方法。
上述计算机可读存储介质、计算机程序产品及计算机程序的有益效果和上述一些实施例所述的模型训练方法及人脸识别方法的有益效果相同,此处不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以所述权利要求的保护范围为准。
Claims (15)
1.一种数据传输方法,其特征在于,应用于高级精简指令集计算机ARM,所述方法包括:
建立与直接内存访问DMA之间的通信通道;
通过所述通信通道向所述DMA发送第一指示信息,所述第一指示信息用于指示对虚拟内存中的目标数据执行数据传输操作,所述虚拟内存位于用户态。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述DMA使用的物理内存映射为用户态的虚拟内存,并将所述目标数据存储至所述虚拟内存中。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
向所述DMA发送第二指示信息,所述第二指示信息用于指示所述目标数据的数据长度。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
获取所述DMA的执行结果,所述执行结果包括所述DMA传输所述目标数据是否超时、是否完成所述目标数据的传输、是否成功传输所述目标数据中的一个或多个;
根据所述执行结果,确定所述DMA执行数据传输的操作是否异常。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
向所述DMA发送多个递增数,并从接收端获取所述接收端接收到的递增数;其中,所述多个递增数包括多个依次增大的数字,所述接收端用于接收所述DMA发送的数据;
根据发送的多个递增数与所述接收端接收到的递增数,确定所述DMA传输的数据是否一致。
6.根据权利要求5所述的方法,其特征在于,所述ARM与现场可编程逻辑门阵列FPGA连接,所述FPGA用于通过逻辑分析仪获取与DMA传输相关的数据,并根据所述与DMA传输相关的数据,确定所述DMA传输的递增数是否一致,其中,所述与DMA传输相关的数据包括与所述DMA连接的FIFO模块发送的数据及接收的数据、所述DMA的传输总线上的数据及所述DMA发送的数据。
7.一种数据传输方法,其特征在于,应用于DMA,所述方法包括:
响应于配置操作,建立与ARM之间的通信通道;
通过所述通信通道,接收来自所述ARM的第一指示信息,所述第一指示信息用于指示对虚拟内存中的目标数据执行数据传输操作,所述虚拟内存位于用户态;
根据所述第一指示信息,传输所述虚拟内存中的所述目标数据。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
接收来自所述ARM的第二指示信息,所述第二指示信息用于指示所述目标数据的数据长度;
根据所述第二指示信息,确定传输的所述目标数据的数据长度。
9.根据权利要求7或8所述的方法,其特征在于,所述DMA传输目标数据的执行结果包括所述DMA传输所述目标数据是否超时、是否完成所述目标数据的传输、是否成功传输所述目标数据中的一个或多个;所述执行结果用于反映所述DMA执行数据传输的操作是否异常。
10.根据权利要求7-9任一项所述的方法,其特征在于,所述方法还包括:
接收来自所述ARM的多个递增数,所述多个递增数包括多个依次增大的数字;
向接收端发送所述多个递增数。
11.一种数据传输装置,其特征在于,应用于ARM,所述装置包括:
建立单元,被配置为:建立与DMA之间的通信通道;
发送单元,被配置为:通过所述通信通道向所述DMA发送第一指示信息,所述第一指示信息用于指示对虚拟内存中的目标数据执行数据传输操作,所述目标内存位于用户态。
12.一种数据传输装置,其特征在于,应用于DMA,所述装置包括:
建立单元,被配置为:响应于配置操作,建立与ARM之间的通信通道;
接收单元,被配置为:通过所述通信通道,接收来自所述ARM的第一指示信息,所述第一指示信息用于指示对目标数据执行数据传输操作,所述数据传输操作包括传输虚拟内存中的目标数据,所述虚拟内存位于用户态;
处理单元,被配置为:根据所述第一指示信息,传输所述虚拟内存中的所述目标数据。
13.一种数据传输装置,其特征在于,包括:处理器和存储器;所述存储器存储计算机指令,所述处理器用于运行所述计算机程序,以实现如权利要求1-6任一项所述的数据传输方法。
14.一种数据传输装置,其特征在于,包括:处理器和存储器;所述存储器存储计算机指令,所述处理器用于运行所述计算机程序,以实现如权利要求7-10任一项所述的数据传输方法。
15.一种非瞬态计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当计算机执行所述指令时,所述计算机执行上述权利要求1-6任一项所述的数据传输方法,或执行上述权利要求7-10任一项所述的数据传输方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310477797.3A CN118860922A (zh) | 2023-04-27 | 2023-04-27 | 数据传输方法及装置 |
PCT/CN2024/081539 WO2024222280A1 (zh) | 2023-04-27 | 2024-03-13 | 数据传输方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310477797.3A CN118860922A (zh) | 2023-04-27 | 2023-04-27 | 数据传输方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118860922A true CN118860922A (zh) | 2024-10-29 |
Family
ID=93173495
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310477797.3A Pending CN118860922A (zh) | 2023-04-27 | 2023-04-27 | 数据传输方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN118860922A (zh) |
WO (1) | WO2024222280A1 (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0973412A (ja) * | 1995-06-30 | 1997-03-18 | Toshiba Corp | データ転送方法及びメモリ管理装置 |
JP2000276434A (ja) * | 1999-03-26 | 2000-10-06 | Nec Corp | Dma転送制御装置およびdma転送制御方式 |
CN105404597B (zh) * | 2015-10-21 | 2018-10-12 | 华为技术有限公司 | 数据传输的方法、设备及系统 |
CN114911568A (zh) * | 2021-02-07 | 2022-08-16 | 大唐移动通信设备有限公司 | 基于Linux操作系统的数据传输方法、装置及设备 |
CN113835831B (zh) * | 2021-09-01 | 2024-08-20 | 南京南瑞继保电气有限公司 | 一种数据内存映射方法、装置、电子设备和存储介质 |
CN115718707A (zh) * | 2022-11-29 | 2023-02-28 | 成都赛力斯科技有限公司 | 一种数据传输的方法、装置、计算机设备和存储介质 |
-
2023
- 2023-04-27 CN CN202310477797.3A patent/CN118860922A/zh active Pending
-
2024
- 2024-03-13 WO PCT/CN2024/081539 patent/WO2024222280A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024222280A1 (zh) | 2024-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6987961B1 (en) | Ethernet emulation using a shared mailbox between two processors in a feature phone | |
US9998558B2 (en) | Method to implement RDMA NVME device | |
CN109743293B (zh) | 网络靶场的访问方法及网络靶场系统、计算机存储介质 | |
CN109964215B (zh) | 具有环形缓冲区镜像的远程直接存储器访问数据通信中的流控制 | |
US20080151058A1 (en) | Method for Acquiring Video Data by Using Camera Mobile Phone as Computer Camera | |
CN109739786B (zh) | 一种dma控制器和异构加速系统 | |
CN110389711B (zh) | 帮助端点设备实现sr-iov功能的方法、设备和非瞬态计算机可读介质 | |
CN110493028A (zh) | 一种集群部署方法、系统、装置及计算机可读存储介质 | |
US20190140888A1 (en) | Computer readable media, methods, and computer apparatuses for network service continuity management | |
CN112764877B (zh) | 一种用于硬件加速设备与docker内进程通信的方法与系统 | |
CN113498595B (zh) | 一种基于PCIe的数据传输方法及装置 | |
CN106815128A (zh) | 日志输出方法及装置、电子设备 | |
US11868819B2 (en) | System and method for constructing filter graph-based media processing pipelines in a browser | |
CN114579258A (zh) | 虚拟机的音频处理方法、装置、系统以及电子设备 | |
CN118860922A (zh) | 数据传输方法及装置 | |
US20170192838A1 (en) | Cpu system including debug logic for gathering debug information, computing system including the cpu system, and debugging method of the computing system | |
CN112073488A (zh) | 处理请求的方法及装置 | |
CN113422669A (zh) | 数据传输方法、装置和系统、电子设备以及计算机可读存储介质 | |
US9317300B1 (en) | Assisting a Basic Input/Output System | |
CN115604070A (zh) | 基于mctp协议的消息传输方法、装置、设备及介质 | |
CN111090535B (zh) | 通信方法、装置、电子设备和存储介质 | |
US10754661B1 (en) | Network packet filtering in network layer of firmware network stack | |
CN114444423B (zh) | 基于验证平台的数据处理方法、系统及电子设备 | |
CN117097814B (zh) | 仿真模型与终端间的异步通信方法 | |
CN117376229B (zh) | 基于嵌入式设备的ftp文件系统软件交叉调试方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |