【技术实现步骤摘要】
一种DMA调度方法、装置和计算机可读存储介质
本专利技术属于计算机领域,具体涉及一种DMA调度方法、装置和计算机可读存储介质。
技术介绍
处理器或者数字信号处理器主要用于数据处理。处理器可以包括一个处理器核心,一个存储器,一个DMA(DirectMemoryAccess,直接存储器存取)控制器,一个外部总线接口,以及一个或者多个外部接口用于实现芯片与外部的数据交互。处理器核心用于完成数据的处理操作,而数据的处理必然涉及数据源的读取和数据操作结果的储存操作。在数据的读写中,存在批量数据读写操作,即将大块数据从一个存储区域传输到另一个存储区域。处理器中,DMA控制器实现了上述的大块数据传输操作,从而将处理器核心从繁重的数据传输操作中解放出来,处理器核心可以直接利用DMA传输的数据进行数据处理,也可以将处理完成的数据由DMA控制器传输到指定的地址空间。在现有的DMA控制器实现方法中,当多个外设同时需要利用DMA控制器进行数据传输时,DMA控制器的读写都采用固定的优先级或者优先级轮循的模式进行。上述两种方法导致数据的传输具有很大延时 ...
【技术保护点】
1.一种DMA调度方法,其特征在于,所述方法包括:/n根据DMA通道的数量初始化DMA调度环境,以分别为各DMA通道创建至少一个任务队列和至少一个工作线程;其中,所述任务队列和工作线程一一对应;/n响应于用户线程发起的多个DMA调度请求,将所述多个DMA调度请求逐个分配至多个任务队列中,并触发与所述多个任务队列分别对应的工作线程;基于被触发的工作线程调用DMA控制器,以处理所述多个DMA调度请求。/n
【技术特征摘要】
1.一种DMA调度方法,其特征在于,所述方法包括:
根据DMA通道的数量初始化DMA调度环境,以分别为各DMA通道创建至少一个任务队列和至少一个工作线程;其中,所述任务队列和工作线程一一对应;
响应于用户线程发起的多个DMA调度请求,将所述多个DMA调度请求逐个分配至多个任务队列中,并触发与所述多个任务队列分别对应的工作线程;基于被触发的工作线程调用DMA控制器,以处理所述多个DMA调度请求。
2.如权利要求1所述的方法,其特征在于,所述响应于用户线程发起的多个DMA调度请求,将所述多个DMA调度请求逐个分配至多个任务队列中,并触发与所述多个任务队列分别对应的工作线程;基于被触发的工作线程调用DMA控制器,以处理所述多个DMA调度请求,包括:
响应于用户线程发起任意一个DMA调度请求,获取所述DMA调度请求;
将所述DMA调度请求放入排队数量最少的任务队列中,并触发与所述排队数量最少的任务队列相对应的工作线程;
基于与所述排队数量最少的任务队列相对应的工作线程调用DMA控制器,以处理所述DMA调度请求;
返回执行响应于用户线程发起任意一个DMA调度请求,获取所述DMA调度请求的步骤,直至所述多个DMA调度请求被全部处理完毕。
3.如权利要求2所述的方法,其特征在于,基于与所述排队数量最少的任务队列相对应的工作线程调用DMA控制器,以处理DMA调度请求之后,包括:
通过DMA控制器触发中断服务程序中的任务结束事件,以通知所述RISC-V处理器所述DMA调度请求任务结束。
4.如权利要求2所述的方法,其特征在于,在将DMA调度请求放入排队数量最少的任务队列中,并触发与排队数量最少的任务队列相对应的工作线程之前,所述方法还包括:
获取各个任务队列中的排队数量;其中,所述排队数量用于表示任务队列中处于等待状态的任务数量;
对各个任务队列的排队数量进行排序,得到排序结果;
根据排序结果将排队数量最小的任务队列作为用于处理DMA调度请求的任务队列。
5.如权利要求1所述的方法,其特征在于:
所述DMA控制器,用于传输数据和内存/外存之间的数据交互。
6.如权利要求1-5所述的方法,其特征在于,所述DMA调度请求以队列的形式排列。
<...
【专利技术属性】
技术研发人员:郭晖,张楠赓,
申请(专利权)人:杭州嘉楠耘智信息科技有限公司,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。