[发明专利]提升多通道DMA访问性能的动态缓存块管理方法和装置有效
申请号: | 201811140592.1 | 申请日: | 2018-09-28 |
公开(公告)号: | CN109388590B | 公开(公告)日: | 2021-02-26 |
发明(设计)人: | 闫华;吴道广;何晶晶;瞿崇晓 | 申请(专利权)人: | 中国电子科技集团公司第五十二研究所 |
主分类号: | G06F12/0877 | 分类号: | G06F12/0877;G06F9/54 |
代理公司: | 杭州君度专利代理事务所(特殊普通合伙) 33240 | 代理人: | 杨天娇 |
地址: | 311121*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 提升 通道 dma 访问 性能 动态 缓存 管理 方法 装置 | ||
本发明公开了一种提升多通道DMA访问性能的动态缓存块管理方法和装置,采用多通道DMA的方式传输数据,数据由通道直接到内存,不占用CPU资源;使用高效缓存块编号动态管理方法,提升了多个通道流量不均衡情况下缓存块资源的利用率;多个通道数据传递使用零拷贝FIFO队列技术,通过FIFO队列对缓存块编号进行记录,避免了对内存的实际申请和释放,使得通道每次数据传递减少一次内存拷贝过程,大大提升了数据读写效率。
技术领域
本发明涉及数据缓存技术领域,具体涉及一种提升多通道DMA访问性能的动态缓存块管理方法和装置。
背景技术
随着大数据技术的发展,数据产生的速度越来越快,数据规模呈现爆炸性增长。爆炸式的信息增长产生了海量的数据,信息领域(如数据中心、云计算、军事数据采集等应用)每天都在产生海量的数据。对这些海量数据进行快速访问、挖掘分析有着重要的现实意义。
目前高速读写大量数据典型的应用场景包括:高速接口到存储模块的数据写入过程、以及数据从存储模块读出到高速接口。但受限于接口带宽、缓存利用率、存储介质读写速率等因素,传统共享文件访问方式已经无法满足大量数据的快速访问需求。
目前传统的高速数据读写方法有两种:
一种方法是高速接口模块驱动提供单个缓存块,多个通道共同使用该缓存块,如果缓存块被使用,其他的通道需要等待直到该缓存块被释放。该方法受限于缓存块数量,需要耗费较多的等待时间,数据读写的效率较低。
另一种方法是高速接口模块驱动提供多个独立缓存块,应用程序固定分配给多个通道,每个通道的缓存块使用独立队列管理,该方法适用于通道数量较少的情况。通道数量较多时有一个明显的缺点,由于队列数量和队列长度固定,不能根据通道流量情况动态调整通道使用的缓存块数量,缓存块利用率低,数据读写性能不高。
发明内容
本发明的目的在于提供一种提升多通道DMA访问性能的动态缓存块管理方法和装置,提升了多个通道流量不均衡情况下缓存块资源的利用率,通道每次数据传递减少一次内存拷贝过程,大大提升了数据读写效率。
为实现上述目的,本发明所采取的技术方案如下:
一种提升多通道DMA访问性能的动态缓存块管理方法,所述提升多通道DMA访问性能的动态缓存块管理方法包括:
预先通过驱动提供多个缓存块,各缓存块进行唯一编号,并将编号构建形成缓存块编号表;
在数据操作时,随机选择写通道接收数据,通过hash算法从缓存块编号表中查询空闲的缓存块编号,将查询所得的缓存块编号写入FIFO队列,同时更新对应的缓存块编号的状态为已使用,其中每个写通道申请有独立的FIFO队列;
发起DMA操作,将写通道中的数据写入空闲的缓存块中;
随机选择读通道,从FIFO队列中读取缓存块编号;
发起DMA操作,将数据从已使用的缓存块写出至读通道,缓存块中的数据被读取后,将对应的缓存块编号移出FIFO队列,并更新对应的缓存块编号的状态为空闲;
所述查询空闲的缓存块编号之前,还包括:
判断写通道接收的数据量是否大于单个缓存块的大小,若数据量不大于单个缓存块的大小,则从缓存块编号表中申请1个空闲的缓存块编号;
若数据量大于单个缓存块的大小,则将写通道接收的数据根据缓存块的大小分成数据块,并根据数据块的数量申请相应数量的空闲的缓存块编号。
优选的,所述通过hash算法从缓存块编号表中查询空闲的缓存块编号,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国电子科技集团公司第五十二研究所,未经中国电子科技集团公司第五十二研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811140592.1/2.html,转载请声明来源钻瓜专利网。