一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种数据搬移方法、装置、设备及介质与流程

2023-01-15 05:51:04 来源:中国专利 TAG:


1.本技术涉及fpga数据搬移技术领域,特别涉及一种数据搬移方法、装置、设备及介质。


背景技术:

2.随着ai、大数据、5g、深度学习等技术的普及与应用发展,互联网服务器任务愈加严重,cpu性能已经不足以支撑各种视频、图像等业务需求,异构加速成为有效解决方案。异构加速通常是利用asic、fpga、gpu等处理器帮助cpu进行计算,分担cpu的工作压力,即将主机内存数据搬到fpga、gpu或专用芯片中加速计算,计算完将数据搬回到主机。然而,在intel fpga异构加速系统设计中,经常会面临fpga存储以及加速算法核心之间的数据流调度问题以及协议转化问题。
3.目前,fpga中需要算法模块直接控制ram原始接口读取ram中数据,或者算法模块直接利用avalon-mm总线主动读取ddr颗粒中的数据。但现有技术缺点如下:1、算法核心取数据时需要直接控制ram接口或者ddr控制器,这两种接口都有使能信号、读写选择信号、地址信号、数据等,协议较为复杂,重点是控制与计算不分离,耦合性极高,不利于算法模块的开发维护移植等。2、该方案较为简单,不规范,通用性极差,可满足部分小规模应用与开发,无法满足大规模集成电路系统级别的集成。


技术实现要素:

4.有鉴于此,本技术的目的在于提供一种数据搬移方法、装置、设备及介质,能够将读取数据的控制与算法模块解耦,提升算法模块的开发、维护以及移植的便利性,并且具有较好的通用性。其具体方案如下:第一方面,本技术公开了一种数据搬移方法,包括:将avalon-mm总线的读地址初始地址、读数据长度分别配置至预设协议转换模块中的读地址寄存器、读数据长度寄存器;利用所述预设协议转换模块中的控制器基于所述读地址初始地址、读数据长度计算avalon-mm总线每次突发的突发读地址以及突发长度,并将所述突发读地址以及突发长度传递给avalon-mm总线从模块,以便所述avalon-mm总线从模块读取存储器中的数据并传回至所述预设协议转换模块;利用所述预设协议转换模块中的封包器将所述数据放置至avalon-st总线,并通过avalon-st总线将所述数据送入fpga算法模块;所述fpga算法模块为基于fpga实现的采用预设算法对数据进行计算的模块。
5.可选的,所述将所述突发读地址以及突发长度传递给avalon-mm总线从模块,包括:将携带所述突发读地址的突发读地址信号、携带所述突发长度的突发长度信号以及读信号传递给avalon-mm总线从模块,以便所述avalon-mm总线从模块在所述读信号有效
时,基于所述突发读地址以及所述突发长度读取存储器中的数据。
6.可选的,还包括:利用所述预设协议转换模块中的控制器将所述avalon-mm总线从模块传回的数据存入暂存数据模块。
7.可选的,还包括:获取所述avalon-mm总线从模块返回的读数据信号以及读数据有效信号,并在所述读数据有效信号有效时将所述avalon-mm总线从模块传回的数据存入暂存数据模块;所述读数据信号携带从存储器中读取的数据。
8.可选的,还包括:若所述暂存数据模块的剩余存储量不足以存储一次突发读取的数据量,则暂停读取数据。
9.可选的,还包括:当所述avalon-mm总线从模块传回的数据达到所述读数据长度,则结束读取数据。
10.可选的,所述利用所述预设协议转换模块中的封包器将所述数据放置至avalon-st总线,包括:利用所述预设协议转换模块中的封包器从所述暂存数据模块中读取数据,并将所述数据放置至avalon-st总线。
11.可选的,还包括:配置预设协议转换模块的工作触发寄存器,以便所述预设协议转换模块启动控制器以及封包器进行工作;将工作状态表征寄存器置为正在工作状态。
12.可选的,还包括:将avalon-st总线通道号配置至预设协议转换模块中的通道号寄存器;所述通道号寄存器为用于存储avalon-st总线通道号的寄存器;相应的,所述利用所述预设协议转换模块中的封包器将所述数据放置至avalon-st总线上,包括:利用所述预设协议转换模块中的封包器将所述数据放置至avalon-st总线的所述avalon-st总线通道号对应的通道。
13.可选的,通过avalon-st总线将所述数据送入fpga算法模块,包括通过所述avalon-st总线通道号对应的通道将所述数据送入fpga算法模块,并在数据传输过程中基于valid-ready握手协议。
14.可选的,通过apb总线将avalon-mm总线的读地址初始地址、读数据长度分别配置至预设协议转换模块中的读地址寄存器、读数据长度寄存器,以及将avalon-st总线通道号配置至预设协议转换模块中的通道号寄存器。
15.可选的,所述通过apb总线将avalon-mm总线的读地址初始地址、读数据长度分别配置至预设协议转换模块中的读地址寄存器、读数据长度寄存器,以及将avalon-st总线通道号配置至预设协议转换模块中的通道号寄存器,包括:利用cpu执行所述通过apb总线将avalon-mm总线的读地址初始地址、读数据长度分别配置至预设协议转换模块中的读地址寄存器、读数据长度寄存器,以及将avalon-st总
线通道号配置至预设协议转换模块中的通道号寄存器的步骤。
16.第二方面,本技术公开了一种数据搬移装置,包括寄存器配置模块和预设协议转换模块,其中,所述寄存器配置模块,用于将avalon-mm总线的读地址初始地址、读数据长度分别配置至预设协议转换模块中的读地址寄存器、读数据长度寄存器;所述预设协议转换模块包括控制器和封包器;所述控制器用于基于所述读地址初始地址、读数据长度计算avalon-mm总线每次突发的突发读地址以及突发长度,并将所述突发读地址以及突发长度传递给avalon-mm总线从模块,以便所述avalon-mm总线从模块读取存储器中的数据并传回至所述预设协议转换模块;所述封包器用于将所述数据放置至avalon-st总线,并通过avalon-st总线将所述数据送入fpga算法模块。
17.第三方面,本技术公开了一种电子设备,包括存储单元和处理单元,其中:所述存储单元,用于保存计算机程序;所述处理单元,用于执行所述计算机程序,以实现前述的数据搬移方法。
18.第四方面,本技术公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述的数据搬移方法。
19.可见,本技术将avalon-mm总线的读地址初始地址、读数据长度分别配置至预设协议转换模块中的读地址寄存器、读数据长度寄存器,并利用所述预设协议转换模块中的控制器基于所述读地址初始地址、读数据长度计算avalon-mm总线每次突发的突发读地址以及突发长度,并将所述突发读地址以及突发长度传递给avalon-mm总线从模块,以便所述avalon-mm总线从模块读取存储器中的数据并传回至所述预设协议转换模块,以及利用所述预设协议转换模块中的封包器将所述数据放置至avalon-st总线,并通过avalon-st总线将所述数据送入fpga算法模块。也即,本技术配置预设协议转换模块中的寄存器,通过预设协议转换模块中的控制器基于寄存器中的读地址初始地址、读数据长度计算avalon-mm总线每次突发的突发读地址以及突发长度并传递给avalon-mm总线从模块,以便avalon-mm总线从模块读取存储器中的数据并传回至预设协议转换模块,利用预设协议转换模块中的封包器将数据放置至avalon-st总线,并通过avalon-st总线将数据送入fpga算法模块,这样,将avalon-mm总线协议转换为avalon-st总线协议,将数据主动送入算法模块,而不是让算法模块本身控制读取,能够将读取数据的控制与算法模块解耦,提升算法模块的开发、维护以及移植的便利性,并且,基于总线标准协议设计,方便系统级别的设计和集成,具有较好的通用性。
附图说明
20.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
21.图1为本技术实施例公开的一种数据搬移方法流程图;
图2为现有技术中的数据搬移示意图;图3为本技术实施例公开的一种数据搬移示意图;图4为本技术实施例公开的一种具体的avalon-mm转avalon-st模块示意图;图5为本技术实施例公开的一种数据搬移装置结构示意图;图6为本技术实施例公开的一种电子设备原理结构图。
具体实施方式
22.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
23.首先,对本技术涉及的术语进行解释说明:fpga:field programmable gate arrays,现场可编程门阵列;ic:integrated circuit,集成电路,俗称芯片;fifo:先入先出存储;ddr:双倍速率同步动态随机存储器,是内存的其中一种;ram:random access memory,随机存取存储器;axi总线:advanced extensible interface是一种总线协议,该协议是arm公司提出的amba(advanced microcontroller bus architecture)3.0协议中最重要的部分;pcie:peripheral component interconnect express是一种高速串行计算机扩展总线标准;asic(application specific integrated circuit)即专用集成电路;avalon总线:该总线由intel提出,intel fpga系统设计中常用于高速数据流传输、读写寄存器、存储器以及片外设备的控制;avalon-stream:又称avalon-st或者avst,avalon总线流模式,协议简单,支持单向数据流,没有地址线,一般用于高带宽低延迟场景;avalon-memory map:又称avalon-mm或avmm,具有地址线,一般用于状态寄存器和控制寄存器的读写操作;支持突发模式,在突发模式下主要用于大量数据搬移,协议复杂;apb(advanced peripheral bus):外围总线的意思,该总线协议是arm公司提出的amba总线结构之一,几乎已成为一种标准的片上总线结构。
24.目前,fpga中需要算法模块直接控制ram原始接口读取ram中数据,或者算法模块直接利用avalon-mm总线主动读取ddr颗粒中的数据。但现有技术缺点如下:1、算法核心取数据时需要直接控制ram接口或者ddr控制器,这两种接口都有使能信号、读写选择信号、地址信号、数据等,协议较为复杂,重点是控制与计算不分离,耦合性极高,不利于算法模块的开发维护移植等。2、该方案较为简单,不规范,通用性极差,可满足部分小规模应用与开发,无法满足大规模集成电路系统级别的集成。为此,本技术提供了一种数据搬移方案,能够将读取数据的控制与算法模块解耦,提升算法模块的开发、维护以及移植的便利性,并且具有较好的通用性。
25.参见图1所示,本技术实施例公开了一种数据搬移方法,包括:
步骤s11:将avalon-mm总线的读地址初始地址、读数据长度分别配置至预设协议转换模块中的读地址寄存器、读数据长度寄存器。
26.步骤s12:利用所述预设协议转换模块中的控制器基于所述读地址初始地址、读数据长度计算avalon-mm总线每次突发的突发读地址以及突发长度,并将所述突发读地址以及突发长度传递给avalon-mm总线从模块,以便所述avalon-mm总线从模块读取存储器中的数据并传回至所述预设协议转换模块。
27.在具体的实施方式中,可以将携带所述突发读地址的突发读地址信号、携带所述突发长度的突发长度信号以及读信号传递给avalon-mm总线从模块,以便所述avalon-mm总线从模块在所述读信号有效时,基于所述突发读地址以及所述突发长度读取存储器中的数据。
28.并且,本技术实施例可以利用所述预设协议转换模块中的控制器将所述avalon-mm总线从模块传回的数据存入暂存数据模块。其中,暂存数据模块可以为fifo。
29.进一步的,在具体的实施方式中,可以获取所述avalon-mm总线从模块返回的读数据信号以及读数据有效信号,并在所述读数据有效信号有效时将所述avalon-mm总线从模块传回的数据存入暂存数据模块;所述读数据信号携带从存储器中读取的数据。
30.并且,若所述暂存数据模块的剩余存储量不足以存储一次突发读取的数据量,则暂停读取数据。当所述avalon-mm总线从模块传回的数据达到所述读数据长度,则结束读取数据。
31.步骤s13:利用所述预设协议转换模块中的封包器将所述数据放置至avalon-st总线,并通过avalon-st总线将所述数据送入fpga算法模块。
32.可以理解的是,所述fpga算法模块为基于fpga实现的采用预设算法对数据进行计算的模块,所述预设算法对应于计算任务。比如,计算任务为加解密任务,预设算法为加解密算法,计算任务为图像处理任务,预设算法为图像处理算法。
33.在具体的实施方式中,可以利用所述预设协议转换模块中的封包器从所述暂存数据模块中读取数据,并将所述数据放置至avalon-st总线。
34.进一步的,本技术实施例可以将avalon-st总线通道号配置至预设协议转换模块中的通道号寄存器;相应的,所述利用所述预设协议转换模块中的封包器将所述数据放置至avalon-st总线上,包括:利用所述预设协议转换模块中的封包器将所述数据放置至avalon-st总线的所述avalon-st总线通道号对应的通道。
35.并且,通过所述avalon-st总线通道号对应的通道将所述数据送入fpga算法模块,并在数据传输过程中基于valid-ready握手协议。当开始传输所述数据时,通过avalon-st总线向fpga算法模块发送startofpacket信号;当结束传输所述数据时,通过avalon-st总线向fpga算法模块发送endofpacket信号。
36.另外,本技术实施例可以配置预设协议转换模块的工作触发寄存器,以便所述预设协议转换模块启动控制器以及封包器进行工作,并将工作状态表征寄存器置为正在工作状态。并且,在结束数据传输后,将工作状态表征寄存器置为空闲状态。
37.并且,本技术实施例可以通过apb总线将avalon-mm总线的读地址初始地址、读数据长度分别配置至预设协议转换模块中的读地址寄存器、读数据长度寄存器,将avalon-st总线通道号配置至预设协议转换模块中的通道号寄存器,配置预设协议转换模块的工作触
发寄存器以及工作状态表征寄存器。
38.进一步的,利用cpu并通过apb总线将avalon-mm总线的读地址初始地址、读数据长度分别配置至预设协议转换模块中的读地址寄存器、读数据长度寄存器,以及将avalon-st总线通道号配置至预设协议转换模块中的通道号寄存器配置预设协议转换模块的工作触发寄存器以及工作状态表征寄存器。
39.其中,cpu可以是fpga内部的cpu也可以是外部cpu,外部cpu通过pcie bar空间机制调度数据,内部的cpu可以为fpga内部嵌入的arm硬核,也可以是fpga用逻辑搭建的软核。也即,本技术实施例实现了avalon-mm协议转avalon-st协议的方法。利用fpga内部cpu或外部cpu调度数据,将ram或ddr中数据主动送入算法模块,而不是让算法模块本身控制读取。
40.其中,前述avalon-mm总线从模块即预设协议转换模块对应的从模块,为预设avalon-mm总线互联模块,预设avalon-mm总线互联模块通过ddr控制器或ram控制器读取ddr或ram中的数据。相对于预设avalon-mm总线互联模块,ddr控制器或ram控制器为从模块。
41.可见,本技术实施例将avalon-mm总线的读地址初始地址、读数据长度分别配置至预设协议转换模块中的读地址寄存器、读数据长度寄存器,并利用所述预设协议转换模块中的控制器基于所述读地址初始地址、读数据长度计算avalon-mm总线每次突发的突发读地址以及突发长度,并将所述突发读地址以及突发长度传递给avalon-mm总线从模块,以便所述avalon-mm总线从模块读取存储器中的数据并传回至所述预设协议转换模块,以及利用所述预设协议转换模块中的封包器将所述数据放置至avalon-st总线,并通过avalon-st总线将所述数据送入fpga算法模块。也即,本技术配置预设协议转换模块中的寄存器,通过预设协议转换模块中的控制器基于寄存器中的读地址初始地址、读数据长度计算avalon-mm总线每次突发的突发读地址以及突发长度并传递给avalon-mm总线从模块,以便avalon-mm总线从模块读取存储器中的数据并传回至预设协议转换模块,利用预设协议转换模块中的封包器将数据放置至avalon-st总线,并通过avalon-st总线将数据送入fpga算法模块,这样,将avalon-mm总线协议转换为avalon-st总线协议,将数据主动送入算法模块,而不是让算法模块本身控制读取,能够将读取数据的控制与算法模块解耦,提升算法模块的开发、维护以及移植的便利性,并且,基于总线标准协议设计,方便系统级别的设计和集成,具有较好的通用性。
42.进一步的,参见图2所示,图2为现有技术中的数据搬移示意图。目前fpga中需要算法模块直接控制ram原始接口读取ram中数据,或者算法模块直接利用avalon-mm总线主动读取ddr颗粒中的数据。参见图3所示,图3为本技术公开的一种数据搬移示意图。利用fpga内部cpu调度数据,将ram或ddr中数据主动送入算法模块,而不是让算法模块本身控制读取。主要由cpu、apb总线拆分仲裁模块、avalon-mm转avalon-st模块(即前述预设协议转换模块)、kernel(算法核心即前述fpga算法模块)、avalon-mm总线互联模块、ddr控制器、block ram(即块随机存储器)控制器等模块组成。其中cpu可以是fpga内部嵌入的arm硬核,也可以是fpga用逻辑搭建的软核,主要负责控制;avalon-mm总线互联模块,用于总线拆分仲裁,其中s代表总线slave(从),m代表总线master(主);ddr控制器与block ram控制器分别控制外部存储ddr与内部存储ram;kernel为算法核心,负责加速算法;avalon-mm转avalon-st模块负责将avalon-mm总线转化为avalon-st总线,将ddr或者ram中的数据搬移
到kernel中;apb总线速率带宽较低,用于寄存器读写配置等。参见图4所示,图4为本技术实施例公开的一种具体的avalon-mm转avalon-st模块示意图,avalon-mm转avalon-st模块包括寄存器、fifo、封包器以及apb总线、avalon-mm总线、avalon-st总线接口等模块。寄存器模块通过apb总线配置。
43.其中,寄存器列表如表一,r/w代表可读可写,wt代表写触发,ro代表只读。
44.表一控制器根据avalon-mm读地址初始地址、读数据长度计算每次avalon-mm总线的突发读地址(avmm_raddr)与突发长度(avmm_burstcount),当寄存器start触发后,控制器通过avmm_read信号(即前述读信号),将突发地址与突发长度传递给slave模块,slave模块通过avmm_readdata信号(即前述读数据信号)与avmm_readdatavalid信号(即前述读数据有效信号)将ram或者ddr中数据传回。avmm_waitrequest信号为高时代表slave模块忙碌,握手无效。暂存数据模块为fifo,将avalon-mm总线传回数据暂存。封包器将fifo中数据取出,将数据放到avalon-st总线上,当数据开始传输时使能avst_startofpacket信号,当数据传输结束时,使能avst_endofpacket信号,avst_channle代表第几个通道,根据寄存器channel配置即可。avst_valid与avst_ready为传输握手信号,avst_data代表数据。i_psel、i_paddr、i_penable、i_pwrite、i_pwdata、o_prdata、o_pready均为基于apb协议设计的信号,用于配置寄存器。
45.进一步的,该avalon-mm转avalon-st模块的运行步骤如下:1、通过apb总线配置read_addr、read_length、channel等三个寄存器,告知模块从avalon-mm总线哪个地址开始取数据,取多少数据以及将数据放到avalon-st哪个通道。2、apb总线写寄存器start,通知模块开始工作,模块工作后将寄存器status置高。3、控制器通过控制avalon-mm总线,读取ram或者ddr中数据,将读回数据放入fifo中,当读数据的量等于read_length时,结束取数据,如果读取数据过程中,当fifo不足以存储一次突发的数据量时,需要暂时停止取数据,当fifo剩余存储量大于avalon-mm总线一次突发取回的数据量时,则继续取数据。4、封包器在接收到start之后,等待fifo中的数据,当有数据以后,开始使能startofpacket信号以及数据,当数据传输结束时(发送的数据量等于read_legth),使能endofpacket信号,avst_channle代表第几个通道,根据寄存器channel配置即可。5、封包器传输结束后,将寄存器status置低,代表该模块处于空闲。
46.可见,本技术实施例全部模块均采用标准总线协议设计,极大的方便了系统级别的设计与集成;各个模块之间去耦合最大程度保证了各个模块的独立性、可移植性、可维护性;将avalon-mm总线协议转化为avalon-st总线协议,简化了kernel算法计算模块的接口
控制,方便算法模块专注于计算而不是控制。本技术实施例调度方法可以做到全流水,各个模块均可以同步进行。通过寄存器配置地址、长度、通道的方法,提高了系统的灵活性,将控制权限尽可能交给cpu,极大的方便cpu控制程序开发与设计。并且数字ic与fpga均为数字电路设计,本技术提供的方案于适用fpga设计与数字ic设计。
47.参见图5所示,本技术实施例公开了一种数据搬移装置,包括寄存器配置模块11和预设协议转换模块12,其中,所述寄存器配置模块11,用于将avalon-mm总线的读地址初始地址、读数据长度分别配置至预设协议转换模块12中的读地址寄存器、读数据长度寄存器;所述预设协议转换模块12包括控制器和封包器;所述控制器用于基于所述读地址初始地址、读数据长度计算avalon-mm总线每次突发的突发读地址以及突发长度,并将所述突发读地址以及突发长度传递给avalon-mm总线从模块,以便所述avalon-mm总线从模块读取存储器中的数据并传回至所述预设协议转换模块12;所述封包器用于将所述数据放置至avalon-st总线,并通过avalon-st总线将所述数据送入fpga算法模块。
48.可见,本技术实施例将avalon-mm总线的读地址初始地址、读数据长度分别配置至预设协议转换模块中的读地址寄存器、读数据长度寄存器,并利用所述预设协议转换模块中的控制器基于所述读地址初始地址、读数据长度计算avalon-mm总线每次突发的突发读地址以及突发长度,并将所述突发读地址以及突发长度传递给avalon-mm总线从模块,以便所述avalon-mm总线从模块读取存储器中的数据并传回至所述预设协议转换模块,以及利用所述预设协议转换模块中的封包器将所述数据放置至avalon-st总线,并通过avalon-st总线将所述数据送入fpga算法模块。也即,本技术实施例配置预设协议转换模块中的寄存器,通过预设协议转换模块中的控制器基于寄存器中的读地址初始地址、读数据长度计算avalon-mm总线每次突发的突发读地址以及突发长度并传递给avalon-mm总线从模块,以便avalon-mm总线从模块读取存储器中的数据并传回至预设协议转换模块,利用预设协议转换模块中的封包器将数据放置至avalon-st总线,并通过avalon-st总线将数据送入fpga算法模块,这样,将avalon-mm总线协议转换为avalon-st总线协议,将数据主动送入算法模块,而不是让算法模块本身控制读取,能够将读取数据的控制与算法模块解耦,提升算法模块的开发、维护以及移植的便利性,并且,基于总线标准协议设计,方便系统级别的设计和集成,具有较好的通用性。
49.进一步的,所述控制器具体用于将携带所述突发读地址的突发读地址信号、携带所述突发长度的突发长度信号以及读信号传递给avalon-mm总线从模块,以便所述avalon-mm总线从模块在所述读信号有效时,基于所述突发读地址以及所述突发长度读取存储器中的数据。
50.并且,所述控制器还用于将所述avalon-mm总线从模块传回的数据存入暂存数据模块。
51.预设协议转换模块12,还用于获取所述avalon-mm总线从模块返回的数据的读数据信号以及读数据有效信号,并在所述读数据有效信号有效时通过控制器将所述avalon-mm总线从模块传回的数据存入暂存数据模块;所述读数据信号携带从存储器中读取的数
据。
52.所述控制器还用于若所述暂存数据模块的剩余存储量不足以存储一次突发读取的数据量,则暂停读取数据;当所述avalon-mm总线从模块传回的数据达到所述读数据长度,则结束读取数据。
53.进一步的,封包器,具体用于从所述暂存数据模块中读取数据,并将所述数据放置至avalon-st总线。
54.进一步的,寄存器配置模块11,还用于配置预设协议转换模块的工作触发寄存器,以便所述预设协议转换模块启动控制器以及封包器进行工作;并且,寄存器配置模块11,还用于将工作状态表征寄存器置为正在工作状态。
55.进一步的,寄存器配置模块11,还用于将avalon-st总线通道号配置至预设协议转换模块中的通道号寄存器;相应的,封包器具体用于将所述数据放置至avalon-st总线的所述avalon-st总线通道号对应的通道,通过所述avalon-st总线通道号对应的通道将所述数据送入fpga算法模块,并在数据传输过程中基于valid-ready握手协议。
56.进一步的,寄存器配置模块11,具体用于通过apb总线将avalon-mm总线的读地址初始地址、读数据长度分别配置至预设协议转换模块中的读地址寄存器、读数据长度寄存器,以及将avalon-st总线通道号配置至预设协议转换模块中的通道号寄存器。
57.进一步的,寄存器配置模块11为cpu,所述装置利用cpu并通过apb总线将avalon-mm总线的读地址初始地址、读数据长度分别配置至预设协议转换模块中的读地址寄存器、读数据长度寄存器,以及将avalon-st总线通道号配置至预设协议转换模块中的通道号寄存器。
58.参见图6所示,本技术实施例公开了一种电子设备,包括处理单元21和存储单元22;其中,所述存储单元22,用于保存计算机程序;所述处理单元21,用于执行所述计算机程序,以实现以下步骤:将avalon-mm总线的读地址初始地址、读数据长度分别配置至预设协议转换模块中的读地址寄存器、读数据长度寄存器;利用所述预设协议转换模块中的控制器基于所述读地址初始地址、读数据长度计算avalon-mm总线每次突发的突发读地址以及突发长度,并将所述突发读地址以及突发长度传递给avalon-mm总线从模块,以便所述avalon-mm总线从模块读取存储器中的数据并传回至所述预设协议转换模块;利用所述预设协议转换模块中的封包器将所述数据放置至avalon-st总线,并通过avalon-st总线将所述数据送入fpga算法模块。
59.可见,本技术实施例将avalon-mm总线的读地址初始地址、读数据长度分别配置至预设协议转换模块中的读地址寄存器、读数据长度寄存器,并利用所述预设协议转换模块中的控制器基于所述读地址初始地址、读数据长度计算avalon-mm总线每次突发的突发读地址以及突发长度,并将所述突发读地址以及突发长度传递给avalon-mm总线从模块,以便所述avalon-mm总线从模块读取存储器中的数据并传回至所述预设协议转换模块,以及利用所述预设协议转换模块中的封包器将所述数据放置至avalon-st总线,并通过avalon-st总线将所述数据送入fpga算法模块。也即,本技术实施例配置预设协议转换模块中的寄存器,通过预设协议转换模块中的控制器基于寄存器中的读地址初始地址、读数据长度计算
avalon-mm总线每次突发的突发读地址以及突发长度并传递给avalon-mm总线从模块,以便avalon-mm总线从模块读取存储器中的数据并传回至预设协议转换模块,利用预设协议转换模块中的封包器将数据放置至avalon-st总线,并通过avalon-st总线将数据送入fpga算法模块,这样,将avalon-mm总线协议转换为avalon-st总线协议,将数据主动送入算法模块,而不是让算法模块本身控制读取,能够将读取数据的控制与算法模块解耦,提升算法模块的开发、维护以及移植的便利性,并且,基于总线标准协议设计,方便系统级别的设计和集成,具有较好的通用性。
60.本实施例中,所述处理单元21执行所述存储单元22中保存的计算机子程序时,可以具体实现以下步骤:将携带所述突发读地址的突发读地址信号、携带所述突发长度的突发长度信号以及读信号传递给avalon-mm总线从模块,以便所述avalon-mm总线从模块在所述读信号有效时,基于所述突发读地址以及所述突发长度读取存储器中的数据。
61.本实施例中,所述处理单元21执行所述存储单元22中保存的计算机子程序时,可以具体实现以下步骤:利用所述预设协议转换模块中的控制器将所述avalon-mm总线从模块传回的数据存入暂存数据模块。
62.本实施例中,所述处理单元21执行所述存储单元22中保存的计算机子程序时,可以具体实现以下步骤:获取所述avalon-mm总线从模块返回的读数据信号以及读数据有效信号,并在所述读数据有效信号有效时将所述avalon-mm总线从模块传回的数据存入暂存数据模块;所述读数据信号携带从存储器中读取的数据。
63.本实施例中,所述处理单元21执行所述存储单元22中保存的计算机子程序时,可以具体实现以下步骤:若所述暂存数据模块的剩余存储量不足以存储一次突发读取的数据量,则暂停读取数据。
64.本实施例中,所述处理单元21执行所述存储单元22中保存的计算机子程序时,可以具体实现以下步骤:当所述avalon-mm总线从模块传回的数据达到所述读数据长度,则结束读取数据。
65.本实施例中,所述处理单元21执行所述存储单元22中保存的计算机子程序时,可以具体实现以下步骤:利用所述预设协议转换模块中的封包器从所述暂存数据模块中读取数据,并将所述数据放置至avalon-st总线。
66.本实施例中,所述处理单元21执行所述存储单元22中保存的计算机子程序时,可以具体实现以下步骤:配置预设协议转换模块的工作触发寄存器,以便所述预设协议转换模块启动控制器以及封包器进行工作;将工作状态表征寄存器置为正在工作状态。
67.本实施例中,所述处理单元21执行所述存储单元22中保存的计算机子程序时,可以具体实现以下步骤:将avalon-st总线通道号配置至预设协议转换模块中的通道号寄存器;本实施例中,所述处理单元21执行所述存储单元22中保存的计算机子程序时,可以具体实现以下步骤:利用所述预设协议转换模块中的封包器将所述数据放置至avalon-st总线的所述avalon-st总线通道号对应的通道。
68.本实施例中,所述处理单元21执行所述存储单元22中保存的计算机子程序时,可以具体实现以下步骤:通过所述avalon-st总线通道号对应的通道将所述数据送入fpga算法模块,并在数据传输过程中基于valid-ready握手协议。
69.本实施例中,所述处理单元21执行所述存储单元22中保存的计算机子程序时,可以具体实现以下步骤:通过apb总线将avalon-mm总线的读地址初始地址、读数据长度分别配置至预设协议转换模块中的读地址寄存器、读数据长度寄存器,以及将avalon-st总线通道号配置至预设协议转换模块中的通道号寄存器。
70.本实施例中,所述处理单元21执行所述存储单元22中保存的计算机子程序时,可以具体实现以下步骤:利用cpu并通过apb总线将avalon-mm总线的读地址初始地址、读数据长度分别配置至预设协议转换模块中的读地址寄存器、读数据长度寄存器,以及将avalon-st总线通道号配置至预设协议转换模块中的通道号寄存器。
71.进一步的,本技术实施例公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现以下步骤:可见,本技术实施例将avalon-mm总线的读地址初始地址、读数据长度分别配置至预设协议转换模块中的读地址寄存器、读数据长度寄存器,并利用所述预设协议转换模块中的控制器基于所述读地址初始地址、读数据长度计算avalon-mm总线每次突发的突发读地址以及突发长度,并将所述突发读地址以及突发长度传递给avalon-mm总线从模块,以便所述avalon-mm总线从模块读取存储器中的数据并传回至所述预设协议转换模块,以及利用所述预设协议转换模块中的封包器将所述数据放置至avalon-st总线,并通过avalon-st总线将所述数据送入fpga算法模块。也即,本技术实施例配置预设协议转换模块中的寄存器,通过预设协议转换模块中的控制器基于寄存器中的读地址初始地址、读数据长度计算avalon-mm总线每次突发的突发读地址以及突发长度并传递给avalon-mm总线从模块,以便avalon-mm总线从模块读取存储器中的数据并传回至预设协议转换模块,利用预设协议转换模块中的封包器将数据放置至avalon-st总线,并通过avalon-st总线将数据送入fpga算法模块,这样,将avalon-mm总线协议转换为avalon-st总线协议,将数据主动送入算法模块,而不是让算法模块本身控制读取,能够将读取数据的控制与算法模块解耦,提升算法模块的开发、维护以及移植的便利性,并且,基于总线标准协议设计,方便系统级别的设计和集成,具有较好的通用性。
72.将avalon-mm总线的读地址初始地址、读数据长度分别配置至预设协议转换模块中的读地址寄存器、读数据长度寄存器;利用所述预设协议转换模块中的控制器基于所述读地址初始地址、读数据长度计算avalon-mm总线每次突发的突发读地址以及突发长度,并将所述突发读地址以及突发长度传递给avalon-mm总线从模块,以便所述avalon-mm总线从模块读取存储器中的数据并传回至所述预设协议转换模块;利用所述预设协议转换模块中的封包器将所述数据放置至avalon-st总线,并通过avalon-st总线将所述数据送入fpga算法模块。
73.可见,本技术实施例将avalon-mm总线的读地址初始地址、读数据长度分别配置至预设协议转换模块中的读地址寄存器、读数据长度寄存器,并利用所述预设协议转换模块中的控制器基于所述读地址初始地址、读数据长度计算avalon-mm总线每次突发的突发读地址以及突发长度,并将所述突发读地址以及突发长度传递给avalon-mm总线从模块,以便所述avalon-mm总线从模块读取存储器中的数据并传回至所述预设协议转换模块,以及利用所述预设协议转换模块中的封包器将所述数据放置至avalon-st总线,并通过avalon-st总线将所述数据送入fpga算法模块。也即,本技术实施例配置预设协议转换模块中的寄存
器,通过预设协议转换模块中的控制器基于寄存器中的读地址初始地址、读数据长度计算avalon-mm总线每次突发的突发读地址以及突发长度并传递给avalon-mm总线从模块,以便avalon-mm总线从模块读取存储器中的数据并传回至预设协议转换模块,利用预设协议转换模块中的封包器将数据放置至avalon-st总线,并通过avalon-st总线将数据送入fpga算法模块,这样,将avalon-mm总线协议转换为avalon-st总线协议,将数据主动送入算法模块,而不是让算法模块本身控制读取,能够将读取数据的控制与算法模块解耦,提升算法模块的开发、维护以及移植的便利性,并且,基于总线标准协议设计,方便系统级别的设计和集成,具有较好的通用性。
74.本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:将携带所述突发读地址的突发读地址信号、携带所述突发长度的突发长度信号以及读信号传递给avalon-mm总线从模块,以便所述avalon-mm总线从模块在所述读信号有效时,基于所述突发读地址以及所述突发长度读取存储器中的数据。
75.本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:利用所述预设协议转换模块中的控制器将所述avalon-mm总线从模块传回的数据存入暂存数据模块。
76.本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:获取所述avalon-mm总线从模块返回的读数据信号以及读数据有效信号,并在所述读数据有效信号有效时将所述avalon-mm总线从模块传回的数据存入暂存数据模块;所述读数据信号携带从存储器中读取的数据。
77.本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:若所述暂存数据模块的剩余存储量不足以存储一次突发读取的数据量,则暂停读取数据。
78.本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:当所述avalon-mm总线从模块传回的数据达到所述读数据长度,则结束读取数据。
79.本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:利用所述预设协议转换模块中的封包器从所述暂存数据模块中读取数据,并将所述数据放置至avalon-st总线。
80.本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:配置预设协议转换模块的工作触发寄存器,以便所述预设协议转换模块启动控制器以及封包器进行工作;将工作状态表征寄存器置为正在工作状态。
81.本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:将avalon-st总线通道号配置至预设协议转换模块中的通道号寄存器;本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:利用所述预设协议转换模块中的封包器将所述数据放置至avalon-st总线的所述avalon-st总线通道号对应的通道。
82.本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:通过所述avalon-st总线通道号对应的通道将所述数据送入fpga
算法模块,并在数据传输过程中基于valid-ready握手协议。
83.本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:通过apb总线将avalon-mm总线的读地址初始地址、读数据长度分别配置至预设协议转换模块中的读地址寄存器、读数据长度寄存器,以及将avalon-st总线通道号配置至预设协议转换模块中的通道号寄存器。
84.本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:利用cpu并通过apb总线将avalon-mm总线的读地址初始地址、读数据长度分别配置至预设协议转换模块中的读地址寄存器、读数据长度寄存器,以及将avalon-st总线通道号配置至预设协议转换模块中的通道号寄存器。
85.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
86.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
87.以上对本技术所提供的一种数据搬移方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献