一种dma链表模式的lli动态写入方法与流程

未命名 09-22 阅读:88 评论:0


1.本发明涉及数据传输及存储技术领域,具体为一种dma链表模式的lli动态写入方法。


背景技术:

2.dma(direct memory access,即直接存储器访问)模块用于数据搬运,即将数据从一个地址空间复制到另一个地址空间,实现在外设和存储器间的高速数据传输,dma的优势在于,cpu配置好dma的传输参数(比如传输数据量、数据源地址、数据目的地址以及传输模式等)后,传输过程由dma控制,在传输完设定的数据量之前,传输过程完全不需要cpu参与,cpu可以去做别的操作,可大大提高cpu的效率。
3.dma一般有四种传输模式,其中一种传输模式是链表模式,这种模式基于图1的数据结构,这样的一种数据结构称为一个链表元素(linked list item,缩写为lli),可以看到包含了传输所必须的所有信息,例如传输的源地址、目的地址、传输数据量、传输的其他配置以及下个lli的取指地址,这样的一块数据一般放在连续的内存空间供dma读取,dma获得到传输的所有信息后便开始传输工作,将源地址的数据按照配置有序地搬运至目的地址。
4.图1中可以看到,lli的0xc地址存放的是下个lli的取指地址,0x8地址存放的是本次传输的数据量,dma处理完本次要求的数据量后,会自动去下个lli地址取得下一个lli信息,这样数据传输可以不需要cpu的参与一直进行下去,虽然一个lli块的存储一般放在连续的物理地址,但各个lli的存放地址不必连续,即下一个lli块的取指地址不必接着前一个lli块的结束地址,这是因为链表元素中记录了下个lli的取值地址,dma会跳转到对应地址读取下个lli信息。
5.在实际应用中,链表模式工作过程如下:cpu配置dma接下来的工作模式为链表模式,配置dma获取首个lli的地址;cpu在内存写入所有lli的内容确定传输的配置;cpu配置外设以便外设可以经过一定等待时间,满足相应条件后发起搬运数据请求信号给dma;dma收到传输请求信号后自动读取首个lli开始传输,比如从per1搬运数据到mem1;本次传输完成后取得下个lli信息并按照配置继续传输,比如从per1搬运数据到mem,直到传输完所有数据,本次传输是否为最后一次传输的信息保存在lli的ctrl域中,若ctrl.last标志位为1代表这是最后一次传输,本次传输完就关闭dma通道,不再传输。
6.可以看到,上述现有链表模式中,一次传输完成后,dma会自动取得下个lli信息继续搬运数据直到最后一次搬运结束,而每次搬运数据的源地址、目的地址和数据量等存在lli中,这可以对应非连续的物理地址搬运数据的应用场景,cpu只需提前配置好lli,剩下的搬运工作都交给dma,cpu不再参与,dma此时相当于一个cpu,控制传输流程,但当搬运数据较多的时候,lli占用的存储空间非常庞大,一个lli就占用32字节空间(每个dma控制器的lli占用空间不一定都是这么大,具体依dmalli设计代码确定),考虑节省lli空间的方法,就是几个lli存储空间循环写,这样cpu需要不断写lli,这又与使用dma而解放cpu的初
衷相悖,基于此,本技术提出一种dma链表模式的lli动态写入方法以解决上述问题。


技术实现要素:

7.(一)解决的技术问题
8.针对现有技术的不足,本发明提供了一种dma链表模式的lli动态写入方法以解决上述问题,该dma链表模式的lli动态写入方法可循环利用较少的内存空间,数据搬运的同时由外设更新lli,不需要cpu更新lli,可有效的提高cpu的效率。
9.(二)技术方案
10.为实现上述目的,本发明提供如下技术方案:一种dma链表模式的lli动态写入方法,包括以下步骤:
11.1)cpu配置dma为链表传输模式,配置dma中首个lli的地址;
12.2)cpu配置多个lli,具体通过cpu口发出axi写指令,经协议转换模块1路由写指令到mem的axi口,在多个lli地址分别写入lli信息;
13.3)cpu配置外设per1发出传输请求信号req的条件,具体通过cpu发出axi写指令,经协议转换模块1转换为apb信号配置per1;
14.4)等待per1发出传输请求信号req给dma,dma确认目前已准备好搬运数据,会回一个ack信号给per1,然后,dma开始数据搬运,识别到传输配置为链表模式,会去取得首个lli的信息,依此信息开始传输,从源地址取16字节数据进行复制,当last=0时,表明后续还有传输,因此去取得第二个lli的信息,依此信息开始传输,从源地址取16字节数据进行复制,同样的情况,dma会开始第三次搬运数据,以此类推;
15.5)在步骤4)中,第一个lli的数据量传输完成后,valid信号会被dma改写为0表明此lli已经无效,此时dma会综合各方信号产生一个lli_req中断,这个中断不会上报cpu,dma中某个寄存器可以查询该中断状态,per1可以通过协议转换模块1发出读指令轮询此中断寄存器并获知空lli的地址,per1看到lli_req为1表明允许更新一个lli内容以备下次传输使用;
16.6)紧接步骤5),per1此时需要给首个地址的lli写入新的传输配置,per1会向与之相连的slave1请求lli待写入的内容,用户通过slave1传输新的配置内容给per1,然后由per1的ahb接口发出,经协议转换模块2将lli信息给dma,dma将此lli信息经协议转换模块2写入到mem,供后续使用;
17.7)当lli中ctrl域的last=1,表明这是最后一次传输,传完这一笔数据后dma会停止搬运且不会再取或写lli的内容,并发出finish信号给per1告知传输结束,如果要再次开始数据搬运,per1再拉起req信号发给dma。
18.优选的,所述步骤1)中的两个配置均通过dma的apb接口,所述cpu发出的命令是axi信号,经协议转换模块1转换为apb信号配置dma。
19.优选的,所述步骤2)中首次写入lli的具体配置内容如下:
20.a)write_back_stat是由dma传输完此lli定义的数据量后写回的,表明此次传输的结果,cpu可以读此地址了解传输的状态;
21.b)ctrl域包含dma传输的所有配置信息,此处只关注两个信号,last为1表示当前传输为最后一笔,为0表示当前传输完后还有传输,需要去llp域获取下个lli的取指地址,
进而取得链表信息开始下次传输,valid为1表示此lli是有效的;
22.c)llp是下一个lli取指地址;
23.d)block transfer size都为0xf,表示本次数据传输的数据量。
24.优选的,所述步骤6)和步骤5)是伴随步骤4)同时进行的,步骤4)不间断的搬运数据,步骤6)和步骤5)随时监控lli_req并更新lli,以便传输一直进行下去,一旦步骤4)传完一笔数据,就会产生lli_req中断,紧接着执行步骤5)和步骤6),依此流程,lli1、lli2和lli3都会被二次写。
25.优选的,所述协议转换模块1主要是接收cpu发出的指令,经解码后写内存、配置dma和外设,所述协议转换模块1输出端口的协议类型没有限制,所述协议转换模块1可接受外设per1或per2的读写访问命令,并将外设的apb/ahb指令信号经译码后传给dma的apb接口,实现写或读dma寄存器。
26.优选的,所述dma模块支持链表传输模式,所述dma接收到外设写lli的指令后可将lli信息经axi接口发送到协议转换模块2,经协议转换模块2路由写入到对应的内存单元。
27.优选的,所述协议转换模块2主要是dma搬运数据的通道,输出接口的协议类型没有限制,其可完成外设到外设、存储单元到存储单元、外设到存储、存储到外设等各种情况的数据搬运。
28.优选的,所述外设到外设的数据搬运过程如下:
29.所述dma的axi接口发起读命令经协议转换模块2转成ahb/apb指令发送给源外设,收到回读数据后,数据暂存在dma的fifo,同时dma会按照配置由dma的axi接口发起写命令经协议转换模块2转成ahb/apb指令发送给目的外设,将数据搬运至目的外设;
30.所述存储单元到存储单元的数据搬运过程如下:
31.所述dma的axi接口读命令经协议转换模块2打包再解包发送给源mem的axi接口,收到回读数据后,数据暂存在dma的fifo,同时dma会按照配置由dma的axi接口发起写命令经协议转换模块2打包再解包发送给目的mem的axi接口,将数据搬运至目的mem。
32.优选的,所述外设到存储单元的数据搬运过程如下:
33.所述dma的axi接口发起读命令经协议转换模块2转成ahb/apb指令发送给源外设,收到回读数据后,数据暂存在dma的fifo,同时dma会按照配置由dma的axi接口发起写命令经协议转换模块2打包再解包发送给目的mem的axi接口,将数据搬运至目的mem;
34.所述存储单元到外设的数据搬运过程如下:
35.所述dma的axi接口读命令经协议转换模块2打包再解包发送给源mem的axi接口,收到回读数据后,数据暂存在dma的fifo,同时dma会按照配置由dma的axi接口发起写命令经协议转换模块2转成ahb/apb指令发送给目的外设,将数据搬运至目的外设。
36.(三)有益效果
37.与现有技术相比,本发明提供了一种dma链表模式的lli动态写入方法,具备以下有益效果:
38.传统dma链表传输模式下,更新dma的链表信息只能由cpu读写,并且需要在传输开始前配置好全部的lli,如果传输数据量比较大,存放lli信息的内存单元也会非常可观,本发明可以解决以上问题,不需要很大的内存存放lli信息,在dma搬运数据过程中由外设经总线模块对dma发起写或读操作,dma更新lli信息,不需要cpu参与,从而释放cpu提高cpu效
率。
附图说明
39.图1为本发明中现有链表传输模式的数据结构示意图;
40.图2为本发明中dma模块的芯片应用框图;
41.图3为本发明中首次写入时lli的具体配置内容图;
42.图4为本发明中二次写入且最后一次传输的lli的具体配置内容图;
43.图5为本发明中dma取lli的流程图。
具体实施方式
44.下面将结合本发明的实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
45.请参考图1-2,dma一般有四种传输模式,其中有一种传输模式为链表模式,这种模式基于图1的数据结构,链表模式需要写lli信息,当传输数据量大的情况下,lli占用的内存空间很大,为了解决循环使用lli存储空间时,需要cpu不断参与更新lli的问题,本发明提供一种dma链表模式的lli动态写入方法,通过协议转换模块2,增加了外设读/写信号访问dma的译码功能,实现任何一个外设都可以发出写lli的命令,此命令经协议转换模块2给到dma,dma再将lli信息写到某块内存中,这一过程由外设更新lli信息从而解放了cpu,实现循环利用较少的内存空间,数据搬运的同时由外设更新lli,不需要cpu更新lli,可有效的提高cpu的效率,具体操作如下:
46.首选,cpu配置dma为链表传输模式,配置dma中首个lli的地址,上述两个配置均通过dma的apb接口,cpu发出的命令是axi信号,经协议转换模块1转换为apb信号配置dma。
47.对于cpu配置多个lli,具体通过cpu口发出axi写指令,经协议转换模块1路由写指令到mem的axi口,在多个lli地址分别写入lli信息,步骤2)中首次写入lli的具体配置内容可参考图3。
48.其中,a)write_back_stat是由dma传输完此lli定义的数据量后写回的,表明此次传输的结果,cpu可以读此地址了解传输的状态;b)ctrl域包含dma传输的所有配置信息,此处只关注两个信号,last为1表示当前传输为最后一笔,为0表示当前传输完后还有传输,需要去llp域获取下个lli的取指地址,进而取得链表信息开始下次传输,valid为1表示此lli是有效的;c)llp是下一个lli取指地址;d)block transfer size都为0xf,表示本次数据传输的数据量,需传输总共16个数据单位,(为简化场景,这里的单位可以按照byte理解),如前述此处不关注这个参数,简单起见,都配置为最大16字节。
49.对于cpu配置外设per1发出传输请求信号req的条件,具体通过cpu发出axi写指令,经协议转换模块1转换为apb信号配置per1。
50.然后等待per1发出传输请求信号req给dma,dma确认目前已准备好搬运数据,会回一个ack信号给per1,然后,dma开始数据搬运,识别到传输配置为链表模式,会去取得首个lli的信息,依此信息开始传输,从源地址取16字节数据进行复制,需要说明的是,per1得到
数据后就开始消化数据,当last=0时,表明后续还有传输,因此去取得第二个lli的信息,依此信息开始传输,从源地址取16字节数据进行复制,应当理解的是,假设上次搬运的16字节数据已经消化完成,再次搬运数据到per1不会存在数据丢失的问题,同样的情况,dma会开始第三次搬运数据,以此类推,需要说明的是,多次搬运的源地址source_addr是非连续的,链表模式正是有可灵活的配置传输参数的优势,在上述过程中,第一个lli的数据量传输完成后,valid信号会被dma改写为0表明此lli已经无效,此时dma会综合各方信号(主要依此次传输写回的状态,valid信号,下一个lli的ctrl域的valid信号,per1请求继续搬运数据的信号req_contiguous)产生一个lli_req中断,这个中断不会上报cpu,dma中某个寄存器可以查询该中断状态,per1可以通过协议转换模块1发出读指令轮询此中断寄存器并获知空lli的地址,per1看到lli_req为1表明允许更新一个lli内容以备下次传输使用,紧接着,per1此时需要给首个地址的lli写入新的传输配置,per1会向与之相连的slave1请求lli待写入的内容,用户通过slave1传输新的配置内容给per1,然后由per1的ahb接口发出,经协议转换模块2将lli信息给dma,dma将此lli信息经协议转换模块2写入到mem,供后续使用。
51.需要说明的是,上述过程是同步进行的,dma在不间断的搬运数据的同时,lli_req实时被监控并更新lli,以便传输一直进行下去,一旦dma传完一笔数据,就会产生lli_req中断,紧接着执行上述后续操作,依此流程,lli1、lli2和lli3都会被二次写,请参阅图4,当lli中ctrl域的last=1,表明这是最后一次传输,传完这一笔数据后dma会停止搬运且不会再取或写lli的内容,并发出finish信号给per1告知传输结束,如果要再次开始数据搬运,per1再拉起req信号发给dma。
52.整个过程实现了从非连续的mem存储空间搬运数据到per1,用较少的lli存储空间实现dma自动工作,搬运数据过程中不需要cpu参与。
53.在本方法中,协议转换模块1主要是接收cpu发出的指令,经解码后写内存、配置dma和外设,协议转换模块1输出端口的协议类型没有限制,可以灵活的操作axi接口、ahb接口、apb接口等,协议转换模块1还有一个适用于所有外设的功能,可以接受外设(例如图2中per1&per2)的读写访问命令,并将外设的apb/ahb指令信号经译码后传给dma的apb接口,实现写或读dma寄存器。
54.dma模块支持链表传输模式,且dma有如下功能:接收到外设写lli的指令后,可以将lli信息经axi接口发送到协议转换模块2,经协议转换模块2路由写入到对应的内存单元(例如图2中的mem&mem1),协议转换模块2主要是dma搬运数据的通道,输出接口的协议类型没有限制,可以兼容axi接口、ahb接口、apb接口等,可以完成外设到外设、存储单元到存储单元、外设到存储、存储到外设等各种情况的数据搬运。
55.其中,数据搬运过程如下:
56.a)对于外设到外设的数据搬运,dma的axi接口发起读命令经协议转换模块2转成ahb/apb指令发送给源外设,收到回读数据后,数据暂存在dma的fifo,同时dma会按照配置由dma的axi接口发起写命令经协议转换模块2转成ahb/apb指令发送给目的外设,将数据搬运至目的外设;
57.b)对于存储单元到存储单元的数据搬运,dma的axi接口读命令经协议转换模块2打包再解包发送给源mem的axi接口,收到回读数据后,数据暂存在dma的fifo,同时dma会按
照配置由dma的axi接口发起写命令经协议转换模块2打包再解包发送给目的mem的axi接口,将数据搬运至目的mem;
58.c)外设到存储单元的数据搬运,dma的axi接口发起读命令经协议转换模块2转成ahb/apb指令发送给源外设,收到回读数据后,数据暂存在dma的fifo,同时dma会按照配置由dma的axi接口发起写命令经协议转换模块2打包再解包发送给目的mem的axi接口,将数据搬运至目的mem;
59.d)存储单元到外设的数据搬运,dma的axi接口读命令经协议转换模块2打包再解包发送给源mem的axi接口,收到回读数据后,数据暂存在dma的fifo,同时dma会按照配置由dma的axi接口发起写命令经协议转换模块2转成ahb/apb指令发送给目的外设,将数据搬运至目的外设。
60.下述举例一个应用场景,以具体的应用场景说明详细方案:
61.需要从图2中的mem1搬运共计96字节的数据至per1,mem1待搬运的数据存放在几个非连续的地址空间,只有三块不连续的空间供存储lli信息使用,要传输的总数据量为96字节,而lli中的block_ts可以配置本次传输的最大数据量为16字节(block_ts可以有更丰富的配置,这不是此处关注的重点,此处按照最大16字节来简化应用场景),那么需要6个lli来告知dma搬运数据的源/目的地址和配置信息,这样三个lli存储空间分别循环利用两遍来提供给dma相应的传输配置信息,首个lli的取指地址为0x0000,第二块lli取指地址为0x0100,第三块lli取指地址为0x0200。
62.具体操作过程如下:
63.1)cpu配置dma为链表传输模式,配置dma中首个lli的取指地址为0x0000,这两个配置都是通过dma的apb接口,cpu发出的命令是axi信号,经协议转换模块1转换为apb信号配置dma;
64.2)cpu配置三个lli,具体是cpu口发出axi写指令,经协议转换模块1路由写指令到mem的axi口,在三个lli地址分别写入lli信息,lli的具体配置内容如图3;
65.4)等待per1发出传输请求信号req给dma,dma确认目前已准备好搬运数据,会回一个ack信号给per1,然后,dma开始数据搬运,识别到传输配置为链表模式,会去地址0x0取得第一个lli的信息,依此信息开始传输,从源地址0x8000取16字节数据,复制到0x9000地址(per1得到数据后就开始消化数据),因为last=0表明后续还有传输,因此去llp=0x0100取得第二个lli的信息,依此信息开始传输,从源地址0x8400取16字节数据,复制到0x9000地址(假设上次搬运的16字节数据已经消化完成,再次搬运数据到per1不会存在数据丢失的问题),同样的情况,dma会开始第三次搬运数据;
66.5)在步骤4)中,第一个lli的数据量传输完成后,valid信号会被dma改写为0表明此lli已经无效,此时dma会综合各方信号(主要依此次传输写回的状态,valid信号,下一个lli的ctrl域的valid信号,per1请求继续搬运数据的信号req_contiguous)产生一个lli_req中断,这个中断不会上报cpu,dma中某个寄存器可以查询该中断状态,per1可以通过协议转换模块1发出读指令轮询此中断寄存器并获知空lli的地址,per1看到lli_req为1表明允许更新一个lli内容以备下次传输使用;
67.6)紧接步骤5),per1此时需要给0x0地址的lli写入新的传输配置,per1会向与之相连的slave1请求lli待写入的内容,用户通过slave1传输新的配置内容给per1,然后由
per1的ahb接口发出,经协议转换模块2将lli信息给dma,dma将此lli信息经协议转换模块2写入到mem的0x0地址,供后续使用,步骤5)和步骤6)是伴随步骤4)同时进行的,步骤4)不间断的搬运数据,步骤5)和步骤6)随时监控lli_req并更新lli,以便传输一直进行下去,一旦步骤4)传完一笔数据,就会产生lli_req中断,紧接着执行步骤5)和步骤6),依此流程,lli1、lli2和lli3都会被二次写,二次写入的值如图4,可以看到第三个lli中ctrl域的last=1,表明这是最后一次传输,传完这一笔数据后dma会停止搬运且不会再取或写lli的内容,并发出finish信号给per1告知传输结束,如果要再次开始数据搬运,per1再拉起req信号发给dma。
68.请参阅图5,dma取lli的顺序如图5所示,实现了从非连续的mem存储空间搬运数据到per1,用较少的lli存储空间实现dma自动工作,搬运数据过程中不需要cpu参与。
69.尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

技术特征:
1.一种dma链表模式的lli动态写入方法,其特征在于,包括以下步骤:1)cpu配置dma为链表传输模式,配置dma中首个lli的地址;2)cpu配置多个lli,具体通过cpu口发出axi写指令,经协议转换模块1路由写指令到mem的axi口,在多个lli地址分别写入lli信息;3)cpu配置外设per1发出传输请求信号req的条件,具体通过cpu发出axi写指令,经协议转换模块1转换为apb信号配置per1;4)等待per1发出传输请求信号req给dma,dma确认目前已准备好搬运数据,会回一个ack信号给per1,然后,dma开始数据搬运,识别到传输配置为链表模式,会去取得首个lli的信息,依此信息开始传输,从源地址取16字节数据进行复制,当last=0时,表明后续还有传输,因此去取得第二个lli的信息,依此信息开始传输,从源地址取16字节数据进行复制,同样的情况,dma会开始第三次搬运数据,以此类推;5)在步骤4)中,第一个lli的数据量传输完成后,valid信号会被dma改写为0表明此lli已经无效,此时dma会综合各方信号产生一个lli_req中断,这个中断不会上报cpu,dma中某个寄存器可以查询该中断状态,per1可以通过协议转换模块1发出读指令轮询此中断寄存器并获知空lli的地址,per1看到lli_req为1表明允许更新一个lli内容以备下次传输使用;6)紧接步骤5),per1此时需要给首个地址的lli写入新的传输配置,per1会向与之相连的slave1请求lli待写入的内容,用户通过slave1传输新的配置内容给per1,然后由per1的ahb接口发出,经协议转换模块2将lli信息给dma,dma将此lli信息经协议转换模块2写入到mem,供后续使用;7)当lli中ctrl域的last=1,表明这是最后一次传输,传完这一笔数据后dma会停止搬运且不会再取或写lli的内容,并发出finish信号给per1告知传输结束,如果要再次开始数据搬运,per1再拉起req信号发给dma。2.根据权利要求1所述的一种dma链表模式的lli动态写入方法,其特征在于,所述步骤1)中的两个配置均通过dma的apb接口,所述cpu发出的命令是axi信号,经协议转换模块1转换为apb信号配置dma。3.根据权利要求2所述的一种dma链表模式的lli动态写入方法,其特征在于,所述步骤2)中首次写入lli的具体配置内容如下:a)write_back_stat是由dma传输完此lli定义的数据量后写回的,表明此次传输的结果,cpu可以读此地址了解传输的状态;b)ctrl域包含dma传输的所有配置信息,此处只关注两个信号,last为1表示当前传输为最后一笔,为0表示当前传输完后还有传输,需要去llp域获取下个lli的取指地址,进而取得链表信息开始下次传输,valid为1表示此lli是有效的;c)llp是下一个lli取指地址;d)blocktransfersize都为0xf,表示本次数据传输的数据量。4.根据权利要求3所述的一种dma链表模式的lli动态写入方法,其特征在于,所述步骤6)和步骤5)是伴随步骤4)同时进行的,步骤4)不间断的搬运数据,步骤6)和步骤5)随时监控lli_req并更新lli,以便传输一直进行下去,一旦步骤4)传完一笔数据,就会产生lli_req中断,紧接着执行步骤5)和步骤6),依此流程,lli1、lli2和lli3都会被二次写。
5.根据权利要求1-4任一项所述的一种dma链表模式的lli动态写入方法,其特征在于,所述协议转换模块1主要是接收cpu发出的指令,经解码后写内存、配置dma和外设,所述协议转换模块1输出端口的协议类型没有限制,所述协议转换模块1可接受外设per1或per2的读写访问命令,并将外设的apb/ahb指令信号经译码后传给dma的apb接口,实现写或读dma寄存器。6.根据权利要求1-4任一项所述的一种dma链表模式的lli动态写入方法,其特征在于,所述dma模块支持链表传输模式,所述dma接收到外设写lli的指令后可将lli信息经axi接口发送到协议转换模块2,经协议转换模块2路由写入到对应的内存单元。7.根据权利要求1-4任一项所述的一种dma链表模式的lli动态写入方法,其特征在于,所述协议转换模块2主要是dma搬运数据的通道,输出接口的协议类型没有限制,其可完成外设到外设、存储单元到存储单元、外设到存储、存储到外设等各种情况的数据搬运。8.根据权利要求7所述的一种dma链表模式的lli动态写入方法,其特征在于,所述外设到外设的数据搬运过程如下:所述dma的axi接口发起读命令经协议转换模块2转成ahb/apb指令发送给源外设,收到回读数据后,数据暂存在dma的fifo,同时dma会按照配置由dma的axi接口发起写命令经协议转换模块2转成ahb/apb指令发送给目的外设,将数据搬运至目的外设;所述存储单元到存储单元的数据搬运过程如下:所述dma的axi接口读命令经协议转换模块2打包再解包发送给源mem的axi接口,收到回读数据后,数据暂存在dma的fifo,同时dma会按照配置由dma的axi接口发起写命令经协议转换模块2打包再解包发送给目的mem的axi接口,将数据搬运至目的mem。9.根据权利要求7所述的一种dma链表模式的lli动态写入方法,其特征在于,所述外设到存储单元的数据搬运过程如下:所述dma的axi接口发起读命令经协议转换模块2转成ahb/apb指令发送给源外设,收到回读数据后,数据暂存在dma的fifo,同时dma会按照配置由dma的axi接口发起写命令经协议转换模块2打包再解包发送给目的mem的axi接口,将数据搬运至目的mem;所述存储单元到外设的数据搬运过程如下:所述dma的axi接口读命令经协议转换模块2打包再解包发送给源mem的axi接口,收到回读数据后,数据暂存在dma的fifo,同时dma会按照配置由dma的axi接口发起写命令经协议转换模块2转成ahb/apb指令发送给目的外设,将数据搬运至目的外设。

技术总结
本发明涉及数据传输及存储技术领域,且公开了一种dma链表模式的lli动态写入方法,通过协议转换模块2,增加了外设读/写信号访问dma的译码功能,实现任何一个外设都可以发出写lli的命令,此命令经协议转换模块2给到dma,dma再将lli信息写到某块内存中,这一过程由外设更新lli信息从而解放了cpu。传统dma链表传输模式下,更新dma的链表信息只能由cpu读写,并且需要在传输开始前配置好全部的lli,如果传输数据量比较大,存放lli信息的内存单元也会非常可观,本发明可以解决以上问题,不需要很大的内存存放lli信息,在dma搬运数据过程中由外设经总线模块对dma发起写或读操作,dma更新lli信息,不需要cpu参与,从而释放cpu提高cpu效率。cpu效率。cpu效率。


技术研发人员:王婷
受保护的技术使用者:无锡摩芯半导体有限公司
技术研发日:2023.06.19
技术公布日:2023/9/20
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

航空商城 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

评论

相关推荐