一种直接内存访问的传输控制方法及装置制造方法及图纸

技术编号:14369226 阅读:98 留言:0更新日期:2017-01-09 14:55
本发明专利技术实施例公开一种直接内存访问的传输控制方法及装置。该直接内存访问的传输控制方法是当接收到传输目标DMA任务的DMA传输请求时,根据目标DMA任务对应的优先级为其选择一目标通道,在DMA通道中存在其他DMA任务的情况下,通过查询已占用通道的其他DMA任务的任务类型、优先级以及目标DMA任务的任务类型,并对已占用通道的其他DMA任务的任务类型、优先级以及目标DMA任务的任务类型、优先级进行对比,根据对比结果对DMA通道的传输数据进行控制。采用本发明专利技术,可以实现根据DMA任务的优先级、任务类型合理规划数据传输,即使遇到紧急DMA任务也可以优先处理,提高了计算机系统处理效率和服务质量。

【技术实现步骤摘要】

本专利技术涉及计算机
,尤其涉及一种直接内存访问的传输控制方法及装置
技术介绍
直接内存访问(DirectMemoryAccess,DMA)是一种快速数据交换模式,它在不通过中央处理器(CPU,CentralProcessingUnit)且不需要CPU干预的情况下,即可完成外部设备和存储器之间的直接数据传输。在DMA模式下,CPU只须向DMA传输控制装置下达指令,让DMA传输控制装置处理数据的传输,数据传输完毕再把传输结束信息反馈给CPU,这样就很大程度上减轻了CPU资源占有率,可以大大节省系统资源。其中,DMA传输控制装置是通过DMA通道进行数据传输的,DMA通道中设置有输入队列和输出队列,输入队列和输出队列均是由一系列参数寄存器组成,用于记录目标DMA任务的传输参数(例如,数据传输大小、目的地址、源地址、传输进度等)、传输数据等,例如:若将外部设备的数据块传输至存储器中时,DMA传输控制装置将所需传输的数据块从DMA通道的输入队列输入,再将数据块从DMA通道的输出队列输出至外部设备,已完成数据传输。由于在DMA传输控制装置进行数据传输的过程衡中,CPU可以执行其他任务,因此,也提高了计算机系统处理效率。但是,现有的DMA传输控制装置仅仅是作为一个负责数据传输的硬件单元,它是按照DMA任务的输入时间顺序执行任务的,对于传输过程中存在不同优先级的DMA任务,甚至于出现紧急DMA任务的情况,需要将排在前面的DMA任务处理完毕才能处理排在后面的优先级较高的DMA任务或者紧急DMA任务,因此,现有DMA技术不能根据实际任务的重要程度调整数据传输的先后顺序,从而导致降低了计算机系统处理效率和服务质量。
技术实现思路
本专利技术实施例提供一种直接内存访问的传输控制方法及装置,可提高计算机系统处理效率和服务质量。本专利技术实施例第一方面提供了一种直接内存访问的传输控制方法,包括:接收DMA传输请求,所述DMA传输请求携带目标DMA任务;查询所述目标DMA任务的优先级,并根据所述目标DMA任务的优先级,从DMA通道中选择与所述目标DMA的优先级相对应的DMA通道作为目标通道;判断所述DMA通道中是否存在已经被其他DMA任务占用的通道;当所述DMA通道中存在已经被其他DMA任务占用的通道时,查询已占用通道的DMA任务的任务类型以及所述目标DMA任务的任务类型;判断在所述已占用通道的DMA任务中是否存在与所述目标DMA任务的任务类型不相同的DMA任务;当在所述已占用通道的DMA任务中存在与所述目标DMA任务的任务类型不相同的DMA任务时,查询所述与所述目标DMA任务的任务类型不相同的DMA任务的优先级;判断在所述与所述目标DMA任务的任务类型不相同的DMA任务中是否存在低于所述目标DMA任务的优先级的DMA任务;当在所述与所述目标DMA任务的任务类型不相同的DMA任务中,存在低于所述目标DMA任务的优先级的DMA任务时,暂停所述低于所述目标DMA任务的优先级的DMA任务的数据传输,并获取目标DMA任务的目标数据,将所述目标数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过所述低于所述目标DMA任务的优先级的DMA任务对应的已占用通道的输出队列进行输出。在本专利技术实施例第一方面的第一种可能的实现方式中,所述接收DMA传输请求,所述DMA传输请求携带目标DMA任务之前,还包括:预先保存DMA任务的优先级列表,以及DMA任务优先级与DMA通道映射关系表;所述查询所述目标DMA任务的优先级,并根据所述目标DMA任务的优先级,从DMA通道中选择与所述目标DMA的优先级相对应的DMA通道作为目标通道,包括:在所述DMA任务的优先级列表中查询所述目标DMA任务的优先级,从所述DMA任务优先级与DMA通道映射关系表中查询与所述目标DMA任务的优先级相对应的DMA通道,将与所述目标DMA任务的优先级相对应的DMA通道作为目标通道。在本专利技术实施例第一方面的第二种可能的实现方式中,所述判断所述DMA通道中是否存在已经被其他DMA任务占用的通道之后,还包括:当所述DMA通道中不存在已经被其他DMA任务占用的通道时,获取目标DMA任务对应的目标数据,将所述目标数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过所述目标通道的输出队列进行输出。在本专利技术实施例第一方面的第三种可能的实现方式中,所述判断在所述已占用通道的DMA任务中是否存在与所述目标DMA任务的任务类型不相同的DMA任务之后,还包括:当在所述已占用通道的DMA任务中不存在与所述目标DMA任务的任务类型不相同的DMA任务时,获取目标DMA任务对应的目标数据,将所述目标数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过所述目标通道的输出队列进行输出。在本专利技术实施例第一方面的第四种可能的实现方式中,所述判断在所述与所述目标DMA任务的任务类型不相同的DMA任务中是否存在低于所述目标DMA任务的优先级的DMA任务之后,还包括:当在所述与所述目标DMA任务的任务类型不相同的DMA任务中不存在低于所述目标DMA任务的优先级的DMA任务时,获取目标DMA任务对应的目标数据,将所述目标数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过所述目标通道的输出队列进行输出。本专利技术实施例第二方面提供了一种直接内存访问的传输控制方法,包括:接收DMA传输请求,所述DMA传输请求携带目标DMA任务;查询所述目标DMA任务的优先级,并根据所述目标DMA任务的优先级,从DMA通道中选择与所述目标DMA的优先级相对应的DMA通道作为目标通道;判断所述DMA通道中是否存在已经被其他DMA任务占用的通道;当DMA通道中存在已经被其他DMA任务占用的通道时,查询已占用通道的DMA任务的优先级;判断在所述已占用通道的DMA任务中是否存在低于所述目标DMA任务的优先级的DMA任务;当在所述已占用通道的DMA任务中存在低于所述目标DMA任务的优先级的DMA任务时,暂停所述低于所述目标DMA任务的优先级的DMA任务的数据传输,并获取目标DMA任务的目标数据,将所述目标数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过所述低于所述目标DMA任务的优先级的DMA任务对应的已占用通道的输出队列进行输出。在本专利技术实施例第二方面的第一种可能的实现方式中,所述接收DMA传输请求,所述DMA传输请求携带目标DMA任务之前,还包括:预先保存DMA任务的优先级列表,以及DMA任务优先级与DMA通道映射关系表;所述查询所述目标DMA任务的优先级,并根据所述目标DMA任务的优先级,从DMA通道中选择与所述目标DMA的优先级相对应的DMA通道作为目标通道,包括:在所述DMA任务的优先级列表中查询所述目标DMA任务的优先级,从所述DMA任务优先级与DMA通道映射关系表中查询与所述目标DMA任务的优先级相对应的DMA通道,将与所述目标DMA任务的优先级相对应的DMA通道作为目标通道。本专利技术实施例第三方面提供了一种直接内存访问传输控制装置,包括:接收单元,用于接收DMA传输请求,所述DMA传输请求携带目标DMA任务;第一查询单元,用于查询所述目标DMA任务的优先级,并本文档来自技高网
...
一种直接内存访问的传输控制方法及装置

【技术保护点】
一种直接内存访问的传输控制方法。其特征在于,该方法应用于直接内存访问DMA传输控制装置中,对DMA通道的数据传输进行控制,所述DMA通道传输的数据包括外部设备和存储器之间传输数据,包括:接收DMA传输请求,所述DMA传输请求携带目标DMA任务;查询所述目标DMA任务的优先级,并根据所述目标DMA任务的优先级,从DMA通道中选择与所述目标DMA的优先级相对应的DMA通道作为目标通道;判断所述DMA通道中是否存在已经被其他DMA任务占用的通道;当所述DMA通道中存在已经被其他DMA任务占用的通道时,查询已占用通道的DMA任务的任务类型以及所述目标DMA任务的任务类型;判断在所述已占用通道的DMA任务中是否存在与所述目标DMA任务的任务类型不相同的DMA任务;当在所述已占用通道的DMA任务中存在与所述目标DMA任务的任务类型不相同的DMA任务时,查询所述与所述目标DMA任务的任务类型不相同的DMA任务的优先级;判断在所述与所述目标DMA任务的任务类型不相同的DMA任务中是否存在低于所述目标DMA任务的优先级的DMA任务;当在所述与所述目标DMA任务的任务类型不相同的DMA任务中,存在低于所述目标DMA任务的优先级的DMA任务时,暂停所述低于所述目标DMA任务的优先级的DMA任务的数据传输,并获取目标DMA任务的目标数据,将所述目标数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过所述低于所述目标DMA任务的优先级的DMA任务对应的已占用通道的输出队列进行输出。...

【技术特征摘要】
1.一种直接内存访问的传输控制方法。其特征在于,该方法应用于直接内存访问DMA传输控制装置中,对DMA通道的数据传输进行控制,所述DMA通道传输的数据包括外部设备和存储器之间传输数据,包括:接收DMA传输请求,所述DMA传输请求携带目标DMA任务;查询所述目标DMA任务的优先级,并根据所述目标DMA任务的优先级,从DMA通道中选择与所述目标DMA的优先级相对应的DMA通道作为目标通道;判断所述DMA通道中是否存在已经被其他DMA任务占用的通道;当所述DMA通道中存在已经被其他DMA任务占用的通道时,查询已占用通道的DMA任务的任务类型以及所述目标DMA任务的任务类型;判断在所述已占用通道的DMA任务中是否存在与所述目标DMA任务的任务类型不相同的DMA任务;当在所述已占用通道的DMA任务中存在与所述目标DMA任务的任务类型不相同的DMA任务时,查询所述与所述目标DMA任务的任务类型不相同的DMA任务的优先级;判断在所述与所述目标DMA任务的任务类型不相同的DMA任务中是否存在低于所述目标DMA任务的优先级的DMA任务;当在所述与所述目标DMA任务的任务类型不相同的DMA任务中,存在低于所述目标DMA任务的优先级的DMA任务时,暂停所述低于所述目标DMA任务的优先级的DMA任务的数据传输,并获取目标DMA任务的目标数据,将所述目标数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过所述低于所述目标DMA任务的优先级的DMA任务对应的已占用通道的输出队列进行输出。2.根据权利要求1所述的方法,其特征在于,所述接收DMA传输请求,所述DMA传输请求携带目标DMA任务之前,还包括:预先保存DMA任务的优先级列表,以及DMA任务优先级与DMA通道映射关系表;所述查询所述目标DMA任务的优先级,并根据所述目标DMA任务的优先级,从DMA通道中选择与所述目标DMA的优先级相对应的DMA通道作为目标通道,包括:在所述DMA任务的优先级列表中查询所述目标DMA任务的优先级,从所述DMA任务优先级与DMA通道映射关系表中查询与所述目标DMA任务的优先级相对应的DMA通道,将与所述目标DMA任务的优先级相对应的DMA通道作为目标通道。3.根据权利要求1所述的方法,其特征在于,所述判断所述DMA通道中是否存在已经被其他DMA任务占用的通道之后,还包括:当所述DMA通道中不存在已经被其他DMA任务占用的通道时,获取目标DMA任务对应的目标数据,将所述目标数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过所述目标通道的输出队列进行输出。4.根据权利要求1所述的方法,其特征在于,所述判断在所述已占用通道的DMA任务中是否存在与所述目标DMA任务的任务类型不相同的DMA任务之后,还包括:当在所述已占用通道的DMA任务中不存在与所述目标DMA任务的任务类型不相同的DMA任务时,获取目标DMA任务对应的目标数据,将所述目标数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过所述目标通道的输出队列进行输出。5.根据权利要求1所述的方法,其特征在于,所述判断在所述与所述目标DMA任务的任务类型不相同的DMA任务中是否存在低于所述目标DMA任务的优先级的DMA任务之后,还包括:当在所述与所述目标DMA任务的任务类型不相同的DMA任务中不存在低于所述目标DMA任务的优先级的DMA任务时,获取目标DMA任务对应的目标数据,将所述目标数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过所述目标通道的输出队列进行输出。6.一种直接内存访问的传输控制方法。其特征在于,该方法应用于直接内存访问DMA传输控制装置中,对DMA通道的数据传输进行控制,所述DMA通道传输的数据包括外部设备和存储器之间传输数据,包括:接收DMA传输请求,所述DMA传输请求携带目标DMA任务;查询所述目标DMA任务的优先级,并根据所述目标DMA任务的优先级,从DMA通道中选择与所述目标DMA的优先级相对应的DMA通道作为目标通道;判断所述DMA通道中是否存在已经被其他DMA任务占用的通道;当DMA通道中存在已经被其他DMA任务占用的通道时,查询已占用通道的DMA任务的优先级;判断在所述已占用通道的DMA任务中是否存在低于所述目标DMA任务的优先级的DMA任务;当在所述已占用通道的DMA任务中存在低于所述目标DMA任务的优先级的DMA任务时,暂停所述低于所述目标DMA任务的优先级的DMA任务的数据传输,并获取目标DMA任务的目标数据,将所述目标数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过所述低于所述目标DMA任务的优先级的DMA任务对应的已占用通道的输出队列进行输出。7.根据权利要求6所述的方法,其特征在于,所述接收DMA传输请求,所述DMA传输请求携带目标DMA任务之前,还包括:预先保存DMA任务的优先级列表,以及DMA任务优先级与DMA通道映射关系表;所述查询所述目标DMA任务的优先级,并根据所述目标DMA任务的优先级,从DMA通道中选择与所述目标DMA的优先级相对应的DMA通道作为目标通道,包括:在所述DMA任务的优先级列表中查询所述目标DMA任务的优先级,从所述DMA任务优...

【专利技术属性】
技术研发人员:陈昊许慧锋郭海涛
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1