一种基于ddr
缓存的发送端与接收端dma同步搬运
数据方法
技术领域
1.本发明属于数据通信技术领域,具体涉及一种基于ddr缓存的发送端与接收端dma同步搬运数据方法。
背景技术:
2.基于ddr缓存的发送端通过dma发送数据至ddr缓存,接收端通过dma从ddr缓存中接收数据。当一包数据通过分组传输时,分组数据到达ddr缓存时的先后顺序决定了整体数据搬运的效率。
3.如图1所示,如果分组数据通过发送端通路能够按照组号顺序到达ddr缓存,那么发送端dma发送分组0新数据至ddr缓存,接收端dma就可以从ddr缓存读取分组0新数据,以此类推完成所有分组数据搬运。
4.如图2所示,如果分组数据通过发送端通路时存在传输延迟,不能够按照组号顺序到达ddr缓存,由于接收端dma只能通过顺序分组从ddr缓存读取分组新数据,所以整体数据搬运就要等发送端所有分组新数据都传输至ddr缓存,接收端dma才能开始从ddr缓存中搬运数据分组0。这样整体数据搬运效率会非常低。
技术实现要素:
5.(一)要解决的技术问题
6.本发明要解决的技术问题是如何提供一种基于ddr缓存的发送端与接收端dma同步搬运数据方法,以解决现有的基于ddr缓存和dma的
数据传输方法整体数据搬运效率会非常低的问题。
7.(二)技术方案
8.为了解决上述技术问题,本发明提出一种基于ddr缓存的发送端与接收端dma同步搬运数据方法,该方法包括:
9.发送端连接ddr缓存,ddr缓存连接数据传输
控制器,数据传输控制器连接接收端,在发送端加入新数据分组到达统计表和数据传输仲裁器,数据传输仲裁器连接数据传输控制器,
10.当发送端传输分组新数据时在新数据分组到达统计表上标记当前新数据分组号到达状态,发送端控制数据传输仲裁器向数据传输控制器输出顺序分组号是否到达的输出结果;
11.当接收端dma读取当前分组数据时,数据传输控制器根据分组号是否到达的输出结果对ddr缓存中当前分组数据的新旧进行判断,判断为旧数据,则数据传输控制器不发生数据传输,判断为新数据到达,则数据传输控制器完成当前分组数据传输。
12.(三)有益效果
13.本发明提出一种基于ddr缓存的发送端与接收端dma同步搬运数据方法,本发明的基于ddr缓存的发送端与接收端dma同步搬运数据方法通过在接收端与ddr缓存之间传输通
道加入数据传输控制器,在发送端加入新数据分组到达统计表和数据传输仲裁器,使得数据搬运效率大幅提高。
附图说明
14.图1为分组数据通过发送端通路按照组号顺序到达ddr缓存;
15.图2为分组数据通过发送端通路按照组号乱序到达ddr缓存;
16.图3为本发明基于ddr缓存的发送端与接收端dma同步搬运数据方法;
17.图4为发送端分组2号新数据到达ddr缓存时具体实施方式;
18.图5为发送端分组0号新数据到达ddr缓存时具体实施方式;
19.图6为发送端分组6号新数据到达ddr缓存时具体实施方式;
20.图7为发送端分组1号新数据到达ddr缓存时具体实施方式;
21.图8为发送端分组5号新数据到达ddr缓存时具体实施方式。
具体实施方式
22.为使本发明的目的、内容和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
23.本发明提出一种基于ddr缓存的发送端与接收端dma同步搬运数据方法。
24.发送端连接ddr缓存,ddr缓存连接数据传输控制器,数据传输控制器连接接收端,在发送端加入新数据分组到达统计表和数据传输仲裁器,数据传输仲裁器连接数据传输控制器;
25.如图3所示,在接收端与ddr缓存之间传输通道加入数据传输控制器。
26.当发送端传输分组新数据时在新数据分组到达统计表上标记当前新数据分组号到达状态,发送端控制数据传输仲裁器向数据传输控制器输出顺序分组号是否到达的输出结果。由于接收端dma从ddr缓存中搬运数据从分组0号开始顺序执行,所以发送端也从分组0号开始控制数据传输仲裁器输出选择分组号输出结果。
27.当接收端dma读取当前分组数据时,数据传输控制器根据分组号是否到达的输出结果对ddr缓存中当前分组数据的新旧进行判断。判断为旧数据,则数据传输控制器不发生数据传输,判断为新数据到达,则数据传输控制器完成当前分组数据传输。
28.进一步地,发送端根据dma写操作的状态获知当前新数据分组号到达状态。
29.进一步地,发送端与ddr缓存之间,ddr缓存与数据传输控制器之间,数据传输控制器与接收端之间,通过axi总线通信。
30.进一步地,数据传输仲裁器根据新数据分组到达统计表向数据传输控制器发送分组号是否到达的结果。
31.实施例1:
32.步骤一、如图4所示,接收端开启dma读操作向数据传输控制器发送分组0数据请求,从分组0号开始等待ddr缓存中数据到达后再读取,由于ddr缓存中有旧数据,所以ddr缓存会一直输出读分组0数据有效,发送端也是从分组号0选通统计结果输出通道。当发送端分组2号新数据到达时,发送端在新数据分组到达统计表中标记新数据分组2已到达,由于发送端选通分组号0统计结果输出通道,通过数据传输仲裁器输出分组号0未到达结果至数
据传输控制器,数据传输控制器不向ddr缓存发送分组0数据请求同时向接收端发送读分组0新数据无效,接收端继续等待分组0新数据。
33.步骤二、如图5所示,当发送端分组0号新数据到达时,发送端在新数据分组到达统计表中标记新数据分组0已到达,由于发送端选通分组号0统计结果输出通道,通过数据传输仲裁器输出分组号0已到达结果至数据传输控制器,数据传输控制器向ddr发送分组0数据请求同时向接收端发送读分组0新数据有效,接收端从ddr缓存中读取分组0新数据后,接收端发送分组1数据请求,从分组1号开始等待ddr缓存中数据到达后再读取,ddr缓存会一直输出读分组1数据有效,发送端从分组号1选通统计结果输出通道。以此类推,直至完成所有分组数据传输。
34.步骤三、如图6所示,当发送端分组6号新数据到达时,发送端在新数据分组到达统计表中标记新数据分组6已到达,由于发送端选通分组号1统计结果输出通道,通过数据传输仲裁器输出分组号1未到达结果至数据传输控制器,数据传输控制器不向ddr发送分组1数据请求同时向接收端发送读分组1新数据无效,接收端继续等待分组1新数据。
35.步骤四、如图7所示,当发送端分组1号新数据到达时,发送端在新数据分组到达统计表中标记新数据分组1已到达,由于发送端选通分组号1统计结果输出通道,通过数据传输仲裁器输出分组号1已到达结果至数据传输控制器,数据传输控制器向ddr发送分组1数据请求同时向接收端发送读分组1新数据有效,接收端从ddr缓存中读取分组1新数据后,接收端发送分组2数据请求,从分组2号开始等待ddr缓存中数据到达后再读取,ddr缓存会一直输出读分组2数据有效,发送端从分组号2选通统计结果输出通道。
36.步骤五、如图8所示,当发送端分组5号新数据到达时,发送端在新数据分组到达统计表中标记新数据分组5已到达,由于发送端选通分组号2统计结果输出通道,通过数据传输仲裁器输出分组号2已到达结果至数据传输控制器,数据传输控制器向ddr发送分组2数据请求同时向接收端发送读分组2新数据有效,接收端从ddr缓存中读取分组2新数据后,接收端发送分组3数据请求,从分组3号开始等待ddr缓存中数据到达后再读取,ddr缓存会一直输出读分组3数据有效,发送端从分组号3选通统计结果输出通道。
37.上述实施步骤以此类推,直至完成所有分组数据传输。
38.本发明的基于ddr缓存的发送端与接收端dma同步搬运数据方法通过在接收端与ddr缓存之间传输通道加入数据传输控制器,在发送端加入新数据分组到达统计表和数据传输仲裁器,使得数据搬运效率大幅提高。
39.以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
技术特征:
1.一种基于ddr缓存的发送端与接收端dma同步搬运数据方法,其特征在于,该方法包括:发送端连接ddr缓存,ddr缓存连接数据传输控制器,数据传输控制器连接接收端,在发送端加入新数据分组到达统计表和数据传输仲裁器,数据传输仲裁器连接数据传输控制器,当发送端传输分组新数据时在新数据分组到达统计表上标记当前新数据分组号到达状态,发送端控制数据传输仲裁器向数据传输控制器输出顺序分组号是否到达的输出结果;当接收端dma读取当前分组数据时,数据传输控制器根据分组号是否到达的输出结果对ddr缓存中当前分组数据的新旧进行判断,判断为旧数据,则数据传输控制器不发生数据传输,判断为新数据到达,则数据传输控制器完成当前分组数据传输。2.如权利要求1所述的基于ddr缓存的发送端与接收端dma同步搬运数据方法,其特征在于,发送端通过dma写将数据发送到ddr缓存。3.如权利要求1所述的基于ddr缓存的发送端与接收端dma同步搬运数据方法,其特征在于,接收端通过dma读从ddr缓存中搬运数据。4.如权利要求3所述的基于ddr缓存的发送端与接收端dma同步搬运数据方法,其特征在于,接收端dma从ddr缓存中搬运数据从分组0号开始顺序执行。5.如权利要求4所述的基于ddr缓存的发送端与接收端dma同步搬运数据方法,其特征在于,发送端从分组0号开始控制数据传输仲裁器输出选择分组号输出结果。6.如权利要求1所述的基于ddr缓存的发送端与接收端dma同步搬运数据方法,其特征在于,发送端与ddr缓存之间,ddr缓存与数据传输控制器之间,数据传输控制器与接收端之间,通过axi总线通信。7.如权利要求1所述的基于ddr缓存的发送端与接收端dma同步搬运数据方法,其特征在于,发送端根据dma写操作的状态获知当前新数据分组号到达状态。8.如权利要求1所述的基于ddr缓存的发送端与接收端dma同步搬运数据方法,其特征在于,数据传输仲裁器根据新数据分组到达统计表向数据传输控制器发送分组号是否到达的结果。9.如权利要求1-8任一项所述的基于ddr缓存的发送端与接收端dma同步搬运数据方法,其特征在于,接收端开启dma读操作向数据传输控制器发送分组0数据请求,从分组0号开始等待ddr缓存中数据到达后再读取;发送端也是从分组号0选通统计结果输出通道;当发送端分组n号新数据到达时,n不等于0,发送端在新数据分组到达统计表中标记新数据分组n已到达;由于发送端选通分组号0统计结果输出通道,通过数据传输仲裁器输出分组号0未到达结果至数据传输控制器,数据传输控制器不向ddr缓存发送分组0数据请求同时向接收端发送读分组0新数据无效,接收端继续等待分组0新数据。10.如权利要求9所述的基于ddr缓存的发送端与接收端dma同步搬运数据方法,其特征在于,当发送端分组0号新数据到达时,发送端在新数据分组到达统计表中标记新数据分组0已到达,由于发送端选通分组号0统计结果输出通道,通过数据传输仲裁器输出分组号0已到达结果至数据传输控制器,数据传输控制器向ddr缓存发送分组0数据请求同时向接收端发送读分组0新数据有效,接收端从ddr缓存中读取分组0新数据后,接收端发送分组1数据
请求,从分组1号开始等待ddr缓存中数据到达后再读取,ddr缓存会一直输出读分组1数据有效,发送端从分组号1选通统计结果输出通道,以此类推,直至完成所有分组数据传输。
技术总结
本发明涉及一种基于DDR缓存的发送端与接收端DMA同步搬运数据方法,属于数据通信领域。本发明发送端连接DDR缓存,DDR缓存连接数据传输控制器,数据传输控制器连接接收端,在发送端加入新数据分组到达统计表和数据传输仲裁器,数据传输仲裁器连接数据传输控制器,当发送端传输分组新数据时在新数据分组到达统计表上标记当前新数据分组号到达状态,发送端控制数据传输仲裁器向数据传输控制器输出顺序分组号是否到达的输出结果;当接收端DMA读取当前分组数据时,数据传输控制器根据分组号是否到达的输出结果对DDR缓存中当前分组数据的新旧进行判断,判断为新数据到达,则数据传输控制器完成当前分组数据传输。本发明使得数据搬运效率大幅提高。搬运效率大幅提高。搬运效率大幅提高。
技术研发人员:
杨硕 曾永红 周津 何全 仇旭东 杨阳 王晓璐 赵斌 单诚
受保护的技术使用者:
天津津航计算技术研究所
技术研发日:
2022.11.25
技术公布日:
2023/2/23