CN106294233B - 一种直接内存访问的传输控制方法及装置 - Google Patents

一种直接内存访问的传输控制方法及装置 Download PDF

Info

Publication number
CN106294233B
CN106294233B CN201510372004.7A CN201510372004A CN106294233B CN 106294233 B CN106294233 B CN 106294233B CN 201510372004 A CN201510372004 A CN 201510372004A CN 106294233 B CN106294233 B CN 106294233B
Authority
CN
China
Prior art keywords
dma
task
channel
target
priority
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510372004.7A
Other languages
English (en)
Other versions
CN106294233A (zh
Inventor
陈昊
许慧锋
郭海涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201510372004.7A priority Critical patent/CN106294233B/zh
Priority to PCT/CN2016/086758 priority patent/WO2017000822A1/zh
Priority to EP16817186.6A priority patent/EP3255553B1/en
Publication of CN106294233A publication Critical patent/CN106294233A/zh
Priority to US15/797,605 priority patent/US10120820B2/en
Application granted granted Critical
Publication of CN106294233B publication Critical patent/CN106294233B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/18Handling requests for interconnection or transfer for access to memory bus based on priority control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • G06F13/30Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal with priority control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/74Selecting or encoding within a word the position of one or more bits having a specified value, e.g. most or least significant one or zero detection, priority encoders
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/78Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data for changing the order of data flow, e.g. matrix transposition or LIFO buffers; Overflow or underflow handling therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/28DMA
    • G06F2213/2802DMA using DMA transfer descriptors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Bus Control (AREA)

Abstract

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

Description

一种直接内存访问的传输控制方法及装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种直接内存访问的传输控制方法及装置。
背景技术
直接内存访问(Direct Memory Access,DMA)是一种快速数据交换模式,它在不通过中央处理器(CPU,Central Processing Unit)且不需要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通道映射关系表中查询与所述目标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是本发明实施例提供的一种直接内存访问的传输控制装置的结构图;
图2是本发明实施例提供的一种直接内存访问的传输控制方法的流程示意图;
图3是本发明实施例提供的另一种直接内存访问的传输控制方法的流程示意图;
图4是本发明实施例提供的又一种直接内存访问的传输控制方法的流程示意图;
图5是本发明实施例提供的又一种直接内存访问的传输控制方法的流程示意图;
图6是本发明实施例提供的一种直接内存访问的传输控制装置的结构示意图;
图7是本发明实施例提供的另一种直接内存访问的传输控制装置的结构示意图;
图8是本发明实施例提供的又一种直接内存访问的传输控制装置的结构示意图;
图9是本发明实施例提供的又一种直接内存访问的传输控制装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参见图1,为本发明实施例提供了一种直接内存访问的传输控制装置的结构图。如图1所述,本实施例的直接内存访问的传输控制装置1的包括DMA通道11,所述DMA通道11中包括至少一个用于数据传输的DMA通道,每一个DMA通道均包括输入队列111和输出队列112。输入队列111和输出队列112均是由一系列参数寄存器组成,用于记录目标DMA任务的传输参数(例如,数据传输大小、目的地址、源地址、传输进度等)、传输数据等,在可行的方案中,数据传输的具体过程是:直接内存访问的传输控制装置1接收DMA传输请求,所述DMA传输请求携带目标DMA任务,所述直接内存访问的传输控制装置1查询所述目标DMA任务的优先级,并根据所述目标DMA任务的优先级,从DMA通道11中选择与所述目标DMA的优先级相对应的DMA通道作为目标通道,获取所述目标DMA任务的目标数据,将所述目标数据从目标通道的输入队列进行输入,再将所述目标数据从目标通道的输出队列进行输出,即完成了对所述DMA传输请求对应的数据传输。
下面将结合附图2-附图5,对本发明实施例提供的直接内存访问的传输控制方法进行详细介绍。
请参见图1,为本发明实施例提供了一种直接内存访问的传输控制方法的流程示意图。如图1所示,本发明实施例的所述方法可以包括以下步骤S201-步骤S208。
S201,接收DMA传输请求,所述DMA传输请求携带目标DMA任务。
具体的,直接内存访问的传输控制装置接收DMA传输请求,所述DMA传输请求携带目标DMA任务,从所述DMA传输请求中获取目标DMA任务。可以理解的是,外部设备如果想要通过总线直接向存储器传输数据时,外部设备先通过所述直接内存访问的传输控制装置向CPU发送DMA传输请求信号,即所述直接内存访问的传输控制装置向CPU提出接管总线控制权的请求,CPU收到请求并响应DMA传输请求时,会让出总线控制权,此时,所述直接内存访问的传输控制装置可对DMA传输请求进行处理,获取所述DMA传输请求中携带的目标DMA任务,用以进行数据传输。
S202,查询所述目标DMA任务的优先级,并根据所述目标DMA任务的优先级,从DMA通道中选择与所述目标DMA的优先级相对应的DMA通道作为目标通道。
具体的,所述直接内存访问的传输控制装置查询所述目标DMA任务的优先级,并根据所述目标DMA任务的优先级,从DMA通道中选择与所述目标DMA的优先级相对应的DMA通道作为目标通道。所述直接内存访问的传输控制装置可以预先对不同应用的不同DMA任务设定不同优先级,可选的方案中,传输数据量大的DMA任务设置的优先级较低,传输数据量小的DMA任务设置的优先级较高,这样可以及时完成传输数据量小的DMA任务,提高计算机系统的处理效率。所述直接内存访问的传输控制装置并根据所述目标DMA任务的优先级,从DMA通道中选择与所述目标DMA的优先级相对应的DMA通道作为目标通道,用以通过所述目标通道对所述目标DMA任务进行数据传输。
S203,判断所述DMA通道中是否存在已经被其他DMA任务占用的通道。
具体的,所述直接内存访问的传输控制装置判断所述DMA通道中是否存在已经被其他DMA任务占用的通道。所述DMA通道包括至少一个用于数据传输的DMA通道,所述直接内存访问的传输控制装置判断除了目标通道之外的通道中是否有其他DMA任务占用的通道。
S204,当所述DMA通道中存在已经被其他DMA任务占用的通道时,查询已占用通道的DMA任务的任务类型以及所述目标DMA任务的任务类型。
具体的,当所述DMA通道中存在已经被其他DMA任务占用的通道时,所述直接内存访问的传输控制装置查询已占用通道的DMA任务的任务类型以及所述目标DMA任务的任务类型。其中,所述任务类型可以划分为带宽型任务和延时型任务,带宽型任务注重单位时间处理的数据量,延时型任务注重单位任务的处理时间。可行的方案中,也可以将任务类型划分为联机事务处理(Online Transaction Processing,OLTP)和联机分析处理(OnlineAnalytical Processing,OLAP),其中,OLTP是以小的任务以及小的查询为主,衡量OLTP系统的性能参数是单任务的响应时间,例如在线系统的网上订票等,OLAP是以大任务为主,主要是对历史数据进行多维度的统计分析,任务的处理时间很长,衡量OLAP系统的性能参数是单位时间处理数据的总量。所述直接内存访问的传输控制装置对不同应用的不同DMA任务的任务类型都已进行了记录,可通过记录查询DMA任务对应的任务类型。
S205,判断在所述已占用通道的DMA任务中是否存在与所述目标DMA任务的任务类型不相同的DMA任务。
具体的,所述直接内存访问的传输控制装置根据所查询到的所述已占用通道的DMA任务的任务类型和目标DMA任务的任务类型,判断在所述已占用通道的DMA任务中是否存在与所述目标DMA任务的任务类型不相同的DMA任务。
S206,当在所述已占用通道的DMA任务中存在与所述目标DMA任务的任务类型不相同的DMA任务时,查询所述与所述目标DMA任务的任务类型不相同的DMA任务的优先级。
具体的,当在所述已占用通道的DMA任务中存在与所述目标DMA任务的任务类型不相同的DMA任务时,所述直接内存访问的传输控制装置查询所述与所述目标DMA任务的任务类型不相同的DMA任务的优先级。所述直接内存访问的传输控制装置根据任务类型和优先级确定DMA任务的优先处理顺序。
S207,判断在所述与所述目标DMA任务的任务类型不相同的DMA任务中是否存在低于所述目标DMA任务的优先级的DMA任务。
具体的,所述直接内存访问的传输控制装置判断在所述与所述目标DMA任务的任务类型不相同的DMA任务中是否存在低于所述目标DMA任务的优先级的DMA任务。
S208,当在所述与所述目标DMA任务的任务类型不相同的DMA任务中,存在低于所述目标DMA任务的优先级的DMA任务时,暂停所述低于所述目标DMA任务的优先级的DMA任务的数据传输,并获取目标DMA任务的目标数据,将所述目标数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过所述低于所述目标DMA任务的优先级的DMA任务对应的已占用通道的输出队列进行输出。
具体的,当在所述与所述目标DMA任务的任务类型不相同的DMA任务中,存在低于所述目标DMA任务的优先级的DMA任务时,所述直接内存访问的传输控制装置暂停所述低于所述目标DMA任务的优先级的DMA任务的数据传输。可行的方案中,当所述低于所述目标DMA任务的优先级的DMA任务被划分为多个小任务时,当前时刻即使所述低于所述目标DMA任务的优先级的DMA任务中有一些小任务已从输出队列输出,但仍有其他小任务仍未被传输时或者已从所述已占用通道的输入队列输入时,暂停所述其他小任务的处理,优先对所述目标DMA任务进行数据传输。所述直接内存访问的传输控制装置获取目标DMA任务的目标数据,将所述目标数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过所述低于所述目标DMA任务的优先级的DMA任务对应的已占用通道的输出队列进行输出。可以理解的是,在完成对所述目标DMA任务的输出后,向CPU发送输出目标DMA任务对应的数据传输完毕的信号,以使将总线控制权还给CPU。
需要说明的是,本发明实施例中所介绍的直接内存访问的传输控制方法可以应用于外部设备与所述直接内存访问的传输控制装置的其中的一个DMA通道进行连接的情况,即,若所述外部设备接收数据,只能从该DMA传输通道的输出队列接收数据,若所述外部设备发送数据,只能从该DMA通道的输入队列发送数据。例如:外部设备A连接于DMA通道1以及外部设备B连接于DMA通道1的情况,外部设备A发出DMA任务1的传输请求,DMA任务1是将存储器的数据传输至外部设备,根据DMA任务1的优先级分配目标通道(所述目标通道并不限定于DMA通道1,是因为所述数据是从存储器传输至DMA通道,因此不限定数据输入的通道),而外部设备B对应的DMA任务2正在DMA通道1中正在处理,并且DMA任务1的任务类型和DMA任务2的任务类型不同,DMA任务1的优先级高于DMA任务2的优先级,由于需要优先处理DMA任务1和两个任务的输出队列相同,因此暂停DMA任务2的数据传输,并获取DMA任务1的数据,将DMA任务1的数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过DMA通道1的输出队列进行输出。
在本发明实施例中,当接收到传输目标DMA任务的DMA传输请求时,根据目标DMA任务对应的优先级为其选择一目标通道,在DMA通道中存在其他DMA任务的情况下,通过查询已占用通道的其他DMA任务的任务类型、优先级以及目标DMA任务的任务类型,并对已占用通道的其他DMA任务的任务类型、优先级以及目标DMA任务的任务类型、优先级进行对比,根据对比结果对DMA通道的传输数据进行控制,可以实现根据DMA任务的优先级、任务类型合理规划数据传输,即使遇到紧急DMA任务也可以优先处理,提高了计算机系统处理效率和服务质量。
请参见图3,为本发明实施例提供了一种直接内存访问的传输控制方法的流程示意图。如图3所示,本发明实施例的所述方法可以包括以下步骤S301-步骤S310。
S301,预先保存DMA任务的优先级列表,以及DMA任务优先级与DMA通道映射关系表。
具体的,直接内存访问的传输控制装置预先保存DMA任务的优先级列表,以及DMA任务优先级与DMA通道映射关系表。所述直接内存访问的传输控制装置对不同DMA任务设定不同优先级,对不同的DMA通道设定不同优先级,并可以接收对DMA任务优先级和DMA通道优先级进行更改。所述DMA通道包括至少一个用于数据传输的通道。可选的方案中,所述直接内存访问的传输控制装置对各个通道设定优先级,DMA任务的优先级可根据传输的数据量大小确定优先级,数据量较小的优先级高,数据量大的优先级高,按照数据量大小分为各个不同的优先级,将数据量对应的优先级与DMA通道设定的优先级进行对应,并将DMA任务的优先级列表、DMA任务优先级与DMA通道映射关系表进行保存。
S302,接收DMA传输请求,所述DMA传输请求携带目标DMA任务。
具体的,所述直接内存访问的传输控制装置接收DMA传输请求,所述DMA传输请求携带目标DMA任务,从所述DMA传输请求中获取目标DMA任务。可以理解的是,外部设备如果想要通过总线直接向存储器传输数据时,外部设备先通过所述直接内存访问的传输控制装置向CPU发送DMA传输请求信号,即所述直接内存访问的传输控制装置向CPU提出接管总线控制权的请求,CPU收到请求并响应DMA传输请求时,会让出总线控制权,此时,所述直接内存访问的传输控制装置可对DMA传输请求进行处理,获取所述DMA传输请求中携带的目标DMA任务,用以进行数据传输。
S303,查询所述目标DMA任务的优先级,并根据所述目标DMA任务的优先级,从DMA通道中选择与所述目标DMA的优先级相对应的DMA通道作为目标通道。
具体的,所述直接内存访问的传输控制装置在所述DMA任务的优先级列表中查询所述目标DMA任务的优先级,从所述DMA任务优先级与DMA通道映射关系表中查询与所述目标DMA任务的优先级相对应的DMA通道,将与所述目标DMA任务的优先级相对应的DMA通道作为目标通道。
S304,判断所述DMA通道中是否存在已经被其他DMA任务占用的通道。
具体的,所述直接内存访问的传输控制装置判断所述DMA通道中是否存在已经被其他DMA任务占用的通道。所述DMA通道包括至少一个用于数据传输的DMA通道,所述直接内存访问的传输控制装置判断除了目标通道之外的通道中是否有其他DMA任务占用的通道。若所述DMA通道中存在已经被其他DMA任务占用的通道,则执行步骤S305,若所述DMA通道中不存在已经被其他DMA任务占用的通道,则执行步骤S310。
S305,查询已占用通道的DMA任务的任务类型以及所述目标DMA任务的任务类型。
具体的,当所述DMA通道中存在已经被其他DMA任务占用的通道时,所述直接内存访问的传输控制装置查询已占用通道的DMA任务的任务类型以及所述目标DMA任务的任务类型。其中,所述任务类型可以划分为带宽型任务和延时型任务,带宽型任务注重单位时间处理的数据量,延时型任务注重单位任务的处理时间。可行的方案中,也可以将任务类型划分为OLTP和OLAP,其中,OLTP是以小的任务以及小的查询为主,衡量OLTP系统的性能参数是单任务的响应时间,例如在线系统的网上订票等,OLAP是以大任务为主,主要是对历史数据进行多维度的统计分析,任务的处理时间很长,衡量OLAP系统的性能参数是单位时间处理数据的总量。所述直接内存访问的传输控制装置对不同应用的不同DMA任务的任务类型都已进行了记录,可通过记录查询DMA任务对应的任务类型。
S306,判断在所述已占用通道的DMA任务中是否存在与所述目标DMA任务的任务类型不相同的DMA任务。
具体的,所述直接内存访问的传输控制装置根据所查询到的所述已占用通道的DMA任务的任务类型和目标DMA任务的任务类型,判断在所述已占用通道的DMA任务中是否存在与所述目标DMA任务的任务类型不相同的DMA任务。若在所述已占用通道的DMA任务中存在与所述目标DMA任务的任务类型不相同的DMA任务,则执行步骤S307,若在所述已占用通道的DMA任务中是不存在与所述目标DMA任务的任务类型不相同的DMA任务,则执行步骤S310。
S307,查询所述与所述目标DMA任务的任务类型不相同的DMA任务的优先级。
具体的,当在所述已占用通道的DMA任务中存在与所述目标DMA任务的任务类型不相同的DMA任务时,所述直接内存访问的传输控制装置查询所述与所述目标DMA任务的任务类型不相同的DMA任务的优先级。所述直接内存访问的传输控制装置根据任务类型和优先级确定DMA任务的优先处理顺序。
S308,判断在所述与所述目标DMA任务的任务类型不相同的DMA任务中是否存在低于所述目标DMA任务的优先级的DMA任务。
具体的,所述直接内存访问的传输控制装置判断在所述与所述目标DMA任务的任务类型不相同的DMA任务中是否存在低于所述目标DMA任务的优先级的DMA任务。若在所述与所述目标DMA任务的任务类型不相同的DMA任务中存在低于所述目标DMA任务的优先级的DMA任务,则执行步骤S309,若不存在,则执行步骤S310。
S309,暂停所述低于所述目标DMA任务的优先级的DMA任务的数据传输,并获取目标DMA任务的目标数据,将所述目标数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过所述低于所述目标DMA任务的优先级的DMA任务对应的已占用通道的输出队列进行输出。
具体的,当在所述与所述目标DMA任务的任务类型不相同的DMA任务中,存在低于所述目标DMA任务的优先级的DMA任务时,所述直接内存访问的传输控制装置暂停所述低于所述目标DMA任务的优先级的DMA任务的数据传输。可行的方案中,当所述低于所述目标DMA任务的优先级的DMA任务被划分为多个小任务时,当前时刻即使所述低于所述目标DMA任务的优先级的DMA任务中有一些小任务已从输出队列输出,但仍有其他小任务仍未被传输时或者已从所述已占用通道的输入队列输入时,暂停所述其他小任务的处理,优先对所述目标DMA任务进行数据传输。所述直接内存访问的传输控制装置获取目标DMA任务的目标数据,将所述目标数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过所述低于所述目标DMA任务的优先级的DMA任务对应的已占用通道的输出队列进行输出。可以理解的是,在完成对所述目标DMA任务的输出后,向CPU发送输出目标DMA任务对应的数据传输完毕的信号,以使将总线控制权还给CPU。
需要说明的是,本发明实施例中所介绍的直接内存访问的传输控制方法可以应用于外部设备与所述直接内存访问的传输控制装置的其中的一个DMA通道进行连接的情况,即,若所述外部设备接收数据,只能从该DMA传输通道的输出队列接收数据,若所述外部设备发送数据,只能从该DMA通道的输入队列发送数据。例如:外部设备A连接于DMA通道1以及外部设备B连接于DMA通道1的情况,外部设备A发出DMA任务1的传输请求,DMA任务1是将存储器的数据传输至外部设备,根据DMA任务1的优先级分配目标通道(所述目标通道并不限定于DMA通道1,是因为所述数据是从存储器传输至DMA通道,因此不限定数据输入的通道),而外部设备B对应的DMA任务2正在DMA通道1中正在处理,并且DMA任务1的任务类型和DMA任务2的任务类型不同,DMA任务1的优先级高于DMA任务2的优先级,由于需要优先处理DMA任务1和两个任务的输出队列相同,因此暂停DMA任务2的数据传输,并获取DMA任务1的数据,将DMA任务1的数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过DMA通道1的输出队列进行输出。
S310,将所述目标数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过所述目标通道的输出队列进行输出。
具体的,所述直接内存访问的传输控制装置将所述目标数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过所述目标通道的输出队列进行输出。一种可行的方案中,当所述DMA通道中不存在已经被其他DMA任务占用的通道时,所述直接内存访问的传输控制装置获取目标DMA任务对应的目标数据,将所述目标数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过所述目标通道的输出队列进行输出。另一种可行的方案中,当在所述已占用通道的DMA任务中不存在与所述目标DMA任务的任务类型不相同的DMA任务时,所述直接内存访问的传输控制装置获取目标DMA任务对应的目标数据,将所述目标数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过所述目标通道的输出队列进行输出。又一种可行的方案中,当在所述与所述目标DMA任务的任务类型不相同的DMA任务中不存在低于所述目标DMA任务的优先级的DMA任务时,所述直接内存访问的传输控制装置获取目标DMA任务对应的目标数据,将所述目标数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过所述目标通道的输出队列进行输出。
在本发明实施例中,当接收到传输目标DMA任务的DMA传输请求时,根据目标DMA任务对应的优先级为其选择一目标通道,在DMA通道中存在其他DMA任务的情况下,通过查询已占用通道的其他DMA任务的任务类型、优先级以及目标DMA任务的任务类型,并对已占用通道的其他DMA任务的任务类型、优先级以及目标DMA任务的任务类型、优先级进行对比,根据对比结果对DMA通道的传输数据进行控制,可以实现根据DMA任务的优先级、任务类型合理规划数据传输,即使遇到紧急DMA任务也可以优先处理,提高了计算机系统处理效率和服务质量。
请参见图4,为本发明实施例提供了一种直接内存访问的传输控制方法的流程示意图。如图4所示,本发明实施例的所述方法可以包括以下步骤S401-步骤S406。
S401,接收DMA传输请求,所述DMA传输请求携带目标DMA任务。
具体的,直接内存访问的传输控制装置接收DMA传输请求,所述DMA传输请求携带目标DMA任务,从所述DMA传输请求中获取目标DMA任务。可以理解的是,外部设备如果想要通过总线直接向存储器传输数据时,外部设备先通过所述直接内存访问的传输控制装置向CPU发送DMA传输请求信号,即所述直接内存访问的传输控制装置向CPU提出接管总线控制权的请求,CPU收到请求并响应DMA传输请求时,会让出总线控制权,此时,所述直接内存访问的传输控制装置可对DMA传输请求进行处理,获取所述DMA传输请求中携带的目标DMA任务,用以进行数据传输。
S402,查询所述目标DMA任务的优先级,并根据所述目标DMA任务的优先级,从DMA通道中选择与所述目标DMA的优先级相对应的DMA通道作为目标通道。
具体的,所述直接内存访问的传输控制装置查询所述目标DMA任务的优先级,并根据所述目标DMA任务的优先级,从DMA通道中选择与所述目标DMA的优先级相对应的DMA通道作为目标通道。所述直接内存访问的传输控制装置可以预先对不同应用的不同DMA任务设定不同优先级,可选的方案中,传输数据量大的DMA任务设置的优先级较低,传输数据量小的DMA任务设置的优先级较高,这样可以及时完成传输数据量小的DMA任务,提高计算机系统的处理效率。所述直接内存访问的传输控制装置并根据所述目标DMA任务的优先级,从DMA通道中选择与所述目标DMA的优先级相对应的DMA通道作为目标通道,用以通过所述目标通道对所述目标DMA任务进行数据传输。
S403,判断所述DMA通道中是否存在已经被其他DMA任务占用的通道。
具体的,所述直接内存访问的传输控制装置判断所述DMA通道中是否存在已经被其他DMA任务占用的通道。所述DMA通道包括至少一个用于数据传输的DMA通道,所述直接内存访问的传输控制装置判断除了目标通道之外的通道中是否有其他DMA任务占用的通道。
S404,当DMA通道中存在已经被其他DMA任务占用的通道时,查询已占用通道的DMA任务的优先级。
具体的,当所述DMA通道中存在已经被其他DMA任务占用的通道时,所述直接内存访问的传输控制装置查询已占用通道的DMA任务的优先级。所述直接内存访问的传输控制装置根据优先级确定DMA任务的处理顺序。
S405,判断在所述已占用通道的DMA任务中是否存在低于所述目标DMA任务的优先级的DMA任务。
具体的,所述直接内存访问的传输控制装置判断在所述已占用通道的DMA任务中是否存在低于所述目标DMA任务的优先级的DMA任务。
S406,当在所述已占用通道的DMA任务中存在低于所述目标DMA任务的优先级的DMA任务时,暂停所述低于所述目标DMA任务的优先级的DMA任务的数据传输,并获取目标DMA任务的目标数据,将所述目标数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过所述低于所述目标DMA任务的优先级的DMA任务对应的已占用通道的输出队列进行输出。
具体的,当在所述已占用通道的DMA任务中存在低于所述目标DMA任务的优先级的DMA任务时,所述直接内存访问的传输控制装置暂停所述低于所述目标DMA任务的优先级的DMA任务的数据传输。可行的方案中,当所述低于所述目标DMA任务的优先级的DMA任务被划分为多个小任务时,当前时刻即使所述低于所述目标DMA任务的优先级的DMA任务中有一些小任务已从输出队列输出,但仍有其他小任务仍未被传输时或者已从所述已占用通道的输入队列输入时,暂停所述其他小任务的处理,优先对所述目标DMA任务进行数据传输。所述直接内存访问的传输控制装置获取目标DMA任务的目标数据,将所述目标数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过所述低于所述目标DMA任务的优先级的DMA任务对应的已占用通道的输出队列进行输出。可以理解的是,在完成对所述目标DMA任务的输出后,向CPU发送输出目标DMA任务对应的数据传输完毕的信号,以使将总线控制权还给CPU。
需要说明的是,本发明实施例中所介绍的直接内存访问的传输控制方法可以应用于外部设备与所述直接内存访问的传输控制装置的其中的一个DMA通道进行连接的情况,即,若所述外部设备接收数据,只能从该DMA传输通道的输出队列接收数据,若所述外部设备发送数据,只能从该DMA通道的输入队列发送数据。例如:外部设备A连接于DMA通道1以及外部设备B连接于DMA通道1的情况,外部设备A发出DMA任务1的传输请求,DMA任务1是将存储器的数据传输至外部设备,根据DMA任务1的优先级分配目标通道(所述目标通道并不限定于DMA通道1,是因为所述数据是从存储器传输至DMA通道,因此不限定数据输入的通道),而外部设备B对应的DMA任务2正在DMA通道1中正在处理,并且DMA任务1的优先级高于DMA任务2的优先级,由于需要优先处理DMA任务1和两个任务的输出队列相同,因此暂停DMA任务2的数据传输,并获取DMA任务1的数据,将DMA任务1的数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过DMA通道1的输出队列进行输出。
在本发明实施例中,当接收到传输目标DMA任务的DMA传输请求时,根据目标DMA任务对应的优先级为其选择一目标通道,在DMA通道中存在其他DMA任务的情况下,通过查询已占用通道的其他DMA任务的优先级,并对已占用通道的其他DMA任务的优先级以及目标DMA任务的优先级进行对比,根据对比结果对DMA通道的传输数据进行控制,可以实现根据DMA任务的优先级合理规划数据传输,即使遇到紧急DMA任务也可以优先处理,提高了计算机系统处理效率和服务质量。
请参见图5,为本发明实施例提供了一种直接内存访问的传输控制方法的流程示意图。如图5所示,本发明实施例的所述方法可以包括以下步骤S501-步骤S507。
S501,预先保存DMA任务的优先级列表,以及DMA任务优先级与DMA通道映射关系表。
具体的,直接内存访问的传输控制装置预先保存DMA任务的优先级列表,以及DMA任务优先级与DMA通道映射关系表。所述直接内存访问的传输控制装置对不同DMA任务设定不同优先级,对不同的DMA通道设定不同优先级,并可以接收对DMA任务优先级和DMA通道优先级进行更改。所述DMA通道包括至少一个用于数据传输的通道。可选的方案中,所述直接内存访问的传输控制装置对各个通道设定优先级,DMA任务的优先级可根据传输的数据量大小确定优先级,数据量较小的优先级高,数据量大的优先级高,按照数据量大小分为各个不同的优先级,将数据量对应的优先级与DMA通道设定的优先级进行对应,并将DMA任务的优先级列表、DMA任务优先级与DMA通道映射关系表进行保存。
S502,接收DMA传输请求,所述DMA传输请求携带目标DMA任务。
具体的,所述直接内存访问的传输控制装置接收DMA传输请求,所述DMA传输请求携带目标DMA任务,从所述DMA传输请求中获取目标DMA任务。可以理解的是,外部设备如果想要通过总线直接向存储器传输数据时,外部设备先通过所述直接内存访问的传输控制装置向CPU发送DMA传输请求信号,即所述直接内存访问的传输控制装置向CPU提出接管总线控制权的请求,CPU收到请求并响应DMA传输请求时,会让出总线控制权,此时,所述直接内存访问的传输控制装置可对DMA传输请求进行处理,获取所述DMA传输请求中携带的目标DMA任务,用以进行数据传输。
S503,查询所述目标DMA任务的优先级,并根据所述目标DMA任务的优先级,从DMA通道中选择与所述目标DMA的优先级相对应的DMA通道作为目标通道。
具体的,所述直接内存访问的传输控制装置在所述DMA任务的优先级列表中查询所述目标DMA任务的优先级,从所述DMA任务优先级与DMA通道映射关系表中查询与所述目标DMA任务的优先级相对应的DMA通道,将与所述目标DMA任务的优先级相对应的DMA通道作为目标通道。
S504,判断所述DMA通道中是否存在已经被其他DMA任务占用的通道。
具体的,所述直接内存访问的传输控制装置判断所述DMA通道中是否存在已经被其他DMA任务占用的通道。所述DMA通道包括至少一个用于数据传输的DMA通道,所述直接内存访问的传输控制装置判断除了目标通道之外的通道中是否有其他DMA任务占用的通道。
S505,当DMA通道中存在已经被其他DMA任务占用的通道时,查询已占用通道的DMA任务的优先级。
具体的,当所述DMA通道中存在已经被其他DMA任务占用的通道时,所述直接内存访问的传输控制装置查询已占用通道的DMA任务的优先级。所述直接内存访问的传输控制装置根据优先级确定DMA任务的处理顺序。
S506,判断在所述已占用通道的DMA任务中是否存在低于所述目标DMA任务的优先级的DMA任务。
具体的,所述直接内存访问的传输控制装置判断在所述已占用通道的DMA任务中是否存在低于所述目标DMA任务的优先级的DMA任务。
S507,当在所述已占用通道的DMA任务中存在低于所述目标DMA任务的优先级的DMA任务时,暂停所述低于所述目标DMA任务的优先级的DMA任务的数据传输,并获取目标DMA任务的目标数据,将所述目标数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过所述低于所述目标DMA任务的优先级的DMA任务对应的已占用通道的输出队列进行输出。
具体的,当在所述已占用通道的DMA任务中存在低于所述目标DMA任务的优先级的DMA任务时,所述直接内存访问的传输控制装置暂停所述低于所述目标DMA任务的优先级的DMA任务的数据传输。可行的方案中,当所述低于所述目标DMA任务的优先级的DMA任务被划分为多个小任务时,当前时刻即使所述低于所述目标DMA任务的优先级的DMA任务中有一些小任务已从输出队列输出,但仍有其他小任务仍未被传输时或者已从所述已占用通道的输入队列输入时,暂停所述其他小任务的处理,优先对所述目标DMA任务进行数据传输。所述直接内存访问的传输控制装置获取目标DMA任务的目标数据,将所述目标数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过所述低于所述目标DMA任务的优先级的DMA任务对应的已占用通道的输出队列进行输出。可以理解的是,在完成对所述目标DMA任务的输出后,向CPU发送输出目标DMA任务对应的数据传输完毕的信号,以使将总线控制权还给CPU。
进一步,一种可行的方案中,当DMA通道中不存在已经被其他DMA任务占用的通道时,获取目标DMA任务对应的目标数据,将所述目标数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过所述目标通道的输出队列进行输出。另一种可行的方案中,当在所述已占用通道的DMA任务中不存在低于所述目标DMA任务的优先级的DMA任务时,获取目标DMA任务对应的目标数据,将所述目标数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过所述目标通道的输出队列进行输出。
需要说明的是,本发明实施例中所介绍的直接内存访问的传输控制方法可以应用于外部设备与所述直接内存访问的传输控制装置的其中的一个DMA通道进行连接的情况,即,若所述外部设备接收数据,只能从该DMA传输通道的输出队列接收数据,若所述外部设备发送数据,只能从该DMA通道的输入队列发送数据。例如:外部设备A连接于DMA通道1以及外部设备B连接于DMA通道1的情况,外部设备A发出DMA任务1的传输请求,DMA任务1是将存储器的数据传输至外部设备,根据DMA任务1的优先级分配目标通道(所述目标通道并不限定于DMA通道1,是因为所述数据是从存储器传输至DMA通道,因此不限定数据输入的通道),而外部设备B对应的DMA任务2正在DMA通道1中正在处理,并且DMA任务1的优先级高于DMA任务2的优先级,由于需要优先处理DMA任务1和两个任务的输出队列相同,因此暂停DMA任务2的数据传输,并获取DMA任务1的数据,将DMA任务1的数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过DMA通道1的输出队列进行输出。
在本发明实施例中,当接收到传输目标DMA任务的DMA传输请求时,根据目标DMA任务对应的优先级为其选择一目标通道,在DMA通道中存在其他DMA任务的情况下,通过查询已占用通道的其他DMA任务的优先级,并对已占用通道的其他DMA任务的优先级以及目标DMA任务的优先级进行对比,根据对比结果对DMA通道的传输数据进行控制,可以实现根据DMA任务的优先级合理规划数据传输,即使遇到紧急DMA任务也可以优先处理,提高了计算机系统处理效率和服务质量。
下面将结合附图6-附图9,对本发明实施例提供的直接内存访问的传输控制装置进行详细介绍。需要说明的是,附图4-附图5所示的直接内存访问的传输控制装置,用于执行本发明图2-图5所示实施例的方法,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明图2-图5所示的实施例。
请参见图6,为本发明实施例提供了一种直接内存访问的传输控制装置的结构示意图。如图6所示,本发明实施例的所述直接内存访问的传输控制装置6可以包括:接收单元601、第一查询单元602、第一判断单元603、第二查询单元604、第二判断单元605、第三查询单元606、第三判断单元607、暂停单元608和第一传输单元609。
接收单元601,用于接收DMA传输请求,所述DMA传输请求携带目标DMA任务。
具体实现中,所述接收单元601接收DMA传输请求,所述DMA传输请求携带目标DMA任务,从所述DMA传输请求中获取目标DMA任务。可以理解的是,外部设备如果想要通过总线直接向存储器传输数据时,外部设备先通过所述直接内存访问的传输控制装置向CPU发送DMA传输请求信号,即向CPU提出接管总线控制权的请求,CPU收到请求并响应DMA传输请求时,会让出总线控制权,此时,所述直接内存访问的传输控制装置可对DMA传输请求进行处理,获取所述DMA传输请求中携带的目标DMA任务,用以进行数据传输。
第一查询单元602,用于查询所述目标DMA任务的优先级,并根据所述目标DMA任务的优先级,从DMA通道中选择与所述目标DMA的优先级相对应的DMA通道作为目标通道。
具体实现中,所述第一查询单元602查询所述目标DMA任务的优先级,并根据所述目标DMA任务的优先级,从DMA通道中选择与所述目标DMA的优先级相对应的DMA通道作为目标通道。所述第一查询单元602可以预先对不同应用的不同DMA任务设定不同优先级,可选的方案中,传输数据量大的DMA任务设置的优先级较低,传输数据量小的DMA任务设置的优先级较高,这样可以及时完成传输数据量小的DMA任务,提高计算机系统的处理效率。所述第一查询单元602并根据所述目标DMA任务的优先级,从DMA通道中选择与所述目标DMA的优先级相对应的DMA通道作为目标通道,用以通过所述目标通道对所述目标DMA任务进行数据传输。
第一判断单元603,用于判断所述DMA通道中是否存在已经被其他DMA任务占用的通道。
具体实现中,所述第一判断单元603判断所述DMA通道中是否存在已经被其他DMA任务占用的通道。所述DMA通道包括至少一个用于数据传输的DMA通道,所述直接内存访问的传输控制装置判断除了目标通道之外的通道中是否有其他DMA任务占用的通道。
第二查询单元604,用于当所述DMA通道中存在已经被其他DMA任务占用的通道时,查询已占用通道的DMA任务的任务类型以及所述目标DMA任务的任务类型。
具体实现中,当所述第一判断单元603判断所述DMA通道中存在已经被其他DMA任务占用的通道时,所述第二查询单元604查询已占用通道的DMA任务的任务类型以及所述目标DMA任务的任务类型。其中,所述任务类型可以划分为带宽型任务和延时型任务,带宽型任务注重单位时间处理的数据量,延时型任务注重单位任务的处理时间。可行的方案中,也可以将任务类型划分为OLTP和OLAP,其中,OLTP是以小的任务以及小的查询为主,衡量OLTP系统的性能参数是单任务的响应时间,例如在线系统的网上订票等,OLAP是以大任务为主,主要是对历史数据进行多维度的统计分析,任务的处理时间很长,衡量OLAP系统的性能参数是单位时间处理数据的总量。通过对不同应用的不同DMA任务的任务类型都已进行了记录,所述第二查询单元604可通过记录查询DMA任务对应的任务类型。
第二判断单元605,用于判断在所述已占用通道的DMA任务中是否存在与所述目标DMA任务的任务类型不相同的DMA任务。
具体实现中,根据所查询到的所述已占用通道的DMA任务的任务类型和目标DMA任务的任务类型,所述第二判断单元605判断在所述已占用通道的DMA任务中是否存在与所述目标DMA任务的任务类型不相同的DMA任务。
第三查询单元606,用于当在所述已占用通道的DMA任务中存在与所述目标DMA任务的任务类型不相同的DMA任务时,查询所述与所述目标DMA任务的任务类型不相同的DMA任务的优先级。
具体实现中,当所述第二判断单元605判断在所述已占用通道的DMA任务中存在与所述目标DMA任务的任务类型不相同的DMA任务时,所述第三查询单元606查询所述与所述目标DMA任务的任务类型不相同的DMA任务的优先级,用以根据任务类型和优先级确定DMA任务的优先处理顺序。
第三判断单元607,用于判断在所述与所述目标DMA任务的任务类型不相同的DMA任务中是否存在低于所述目标DMA任务的优先级的DMA任务。
具体实现中,所述第三判断单元607判断在所述与所述目标DMA任务的任务类型不相同的DMA任务中是否存在低于所述目标DMA任务的优先级的DMA任务。
暂停单元608,用于当在所述与所述目标DMA任务的任务类型不相同的DMA任务中,存在低于所述目标DMA任务的优先级的DMA任务时,暂停所述低于所述目标DMA任务的优先级的DMA任务的数据传输。
具体实现中,当所述第三判断单元607判断在所述与所述目标DMA任务的任务类型不相同的DMA任务中,存在低于所述目标DMA任务的优先级的DMA任务时,所述暂停单元608暂停所述低于所述目标DMA任务的优先级的DMA任务的数据传输。可行的方案中,当所述低于所述目标DMA任务的优先级的DMA任务被划分为多个小任务时,当前时刻即使所述低于所述目标DMA任务的优先级的DMA任务中有一些小任务已从输出队列输出,但仍有其他小任务仍未被传输时或者已从所述已占用通道的输入队列输入时,所述暂停单元608暂停所述其他小任务的处理,优先对所述目标DMA任务进行数据传输。
第一传输单元609,用于获取目标DMA任务的目标数据,将所述目标数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过所述低于所述目标DMA任务的优先级的DMA任务对应的已占用通道的输出队列进行输出。
具体实现中,在暂停所述低于所述目标DMA任务的优先级的DMA任务的数据传输之后,所述第一传输单元609获取目标DMA任务的目标数据,将所述目标数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过所述低于所述目标DMA任务的优先级的DMA任务对应的已占用通道的输出队列进行输出。可以理解的是,在完成对所述目标DMA任务的输出后,向CPU发送输出目标DMA任务对应的数据传输完毕的信号,以使将总线控制权还给CPU。
需要说明的是,本发明实施例中所介绍的直接内存访问的传输控制方法可以应用于外部设备与所述直接内存访问的传输控制装置的其中的一个DMA通道进行连接的情况,即,若所述外部设备接收数据,只能从该DMA传输通道的输出队列接收数据,若所述外部设备发送数据,只能从该DMA通道的输入队列发送数据。例如:外部设备A连接于DMA通道1以及外部设备B连接于DMA通道1的情况,外部设备A发出DMA任务1的传输请求,DMA任务1是将存储器的数据传输至外部设备,根据DMA任务1的优先级分配目标通道(所述目标通道并不限定于DMA通道1,是因为所述数据是从存储器传输至DMA通道,因此不限定数据输入的通道),而外部设备B对应的DMA任务2正在DMA通道1中正在处理,并且DMA任务1的任务类型和DMA任务2的任务类型不同,DMA任务1的优先级高于DMA任务2的优先级,由于需要优先处理DMA任务1和两个任务的输出队列相同,因此暂停DMA任务2的数据传输,并获取DMA任务1的数据,将DMA任务1的数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过DMA通道1的输出队列进行输出。
在本发明实施例中,当接收到传输目标DMA任务的DMA传输请求时,根据目标DMA任务对应的优先级为其选择一目标通道,在DMA通道中存在其他DMA任务的情况下,通过查询已占用通道的其他DMA任务的任务类型、优先级以及目标DMA任务的任务类型,并对已占用通道的其他DMA任务的任务类型、优先级以及目标DMA任务的任务类型、优先级进行对比,根据对比结果对DMA通道的传输数据进行控制,可以实现根据DMA任务的优先级、任务类型合理规划数据传输,即使遇到紧急DMA任务也可以优先处理,提高了计算机系统处理效率和服务质量。
请参见图7,为本发明实施例提供了一种直接内存访问的传输控制装置的结构示意图。如图7所示,本发明实施例的所述直接内存访问的传输控制装置7可以包括:预存单元701、接收单元702、第一查询单元703、第一判断单元704、第二传输单元705、第二查询单元706、第二判断单元707、第三传输单元708、第三查询单元709、第三判断单元710、第四传输单元711、暂停单元712和第一传输单元713。
预存单元701,用于预先保存DMA任务的优先级列表,以及DMA任务优先级与DMA通道映射关系表;
具体实现中,所述预存单元701预先保存DMA任务的优先级列表,以及DMA任务优先级与DMA通道映射关系表。所述直接内存访问的传输控制装置对不同DMA任务设定不同优先级,对不同的DMA通道设定不同优先级,并可以接收对DMA任务优先级和DMA通道优先级进行更改。所述DMA通道包括至少一个用于数据传输的通道。可选的方案中,所述直接内存访问的传输控制装置对各个通道设定优先级,DMA任务的优先级可根据传输的数据量大小确定优先级,数据量较小的优先级高,数据量大的优先级高,按照数据量大小分为各个不同的优先级,将数据量对应的优先级与DMA通道设定的优先级进行对应,并将DMA任务的优先级列表、DMA任务优先级与DMA通道映射关系表进行保存。
接收单元702,用于接收DMA传输请求,所述DMA传输请求携带目标DMA任务;
具体实现中,所述接收单元702接收DMA传输请求,所述DMA传输请求携带目标DMA任务,从所述DMA传输请求中获取目标DMA任务。可以理解的是,外部设备如果想要通过总线直接向存储器传输数据时,外部设备先通过所述直接内存访问的传输控制装置向CPU发送DMA传输请求信号,即所述直接内存访问的传输控制装置向CPU提出接管总线控制权的请求,CPU收到请求并响应DMA传输请求时,会让出总线控制权,此时,所述直接内存访问的传输控制装置可对DMA传输请求进行处理,获取所述DMA传输请求中携带的目标DMA任务,用以进行数据传输。
第一查询单元703,用于查询所述目标DMA任务的优先级,并根据所述目标DMA任务的优先级,从DMA通道中选择与所述目标DMA的优先级相对应的DMA通道作为目标通道;
具体实现中,所述第一查询单元703在所述DMA任务的优先级列表中查询所述目标DMA任务的优先级,从所述DMA任务优先级与DMA通道映射关系表中查询与所述目标DMA任务的优先级相对应的DMA通道,将与所述目标DMA任务的优先级相对应的DMA通道作为目标通道。
第一判断单元704,用于判断所述DMA通道中是否存在已经被其他DMA任务占用的通道;
具体实现中,所述第一判断单元704判断所述DMA通道中是否存在已经被其他DMA任务占用的通道。所述DMA通道包括至少一个用于数据传输的DMA通道,所述第一判断单元704判断除了目标通道之外的通道中是否有其他DMA任务占用的通道。若所述DMA通道中存在已经被其他DMA任务占用的通道,则执行第二传输单元705,若所述DMA通道中不存在已经被其他DMA任务占用的通道,则执行第二查询单元706。
第二传输单元705,用于当所述DMA通道中不存在已经被其他DMA任务占用的通道时,获取目标DMA任务对应的目标数据,将所述目标数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过所述目标通道的输出队列进行输出。
具体实现中,当所述第一判断单元704判断所述DMA通道中不存在已经被其他DMA任务占用的通道时,所述第二传输单元705获取目标DMA任务对应的目标数据,将所述目标数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过所述目标通道的输出队列进行输出。
第二查询单元706,用于当所述DMA通道中存在已经被其他DMA任务占用的通道时,查询已占用通道的DMA任务的任务类型以及所述目标DMA任务的任务类型;
具体实现中,当所述第一判断单元704判断所述DMA通道中存在已经被其他DMA任务占用的通道时,所述第二查询单元706查询已占用通道的DMA任务的任务类型以及所述目标DMA任务的任务类型。其中,所述任务类型可以划分为带宽型任务和延时型任务,带宽型任务注重单位时间处理的数据量,延时型任务注重单位任务的处理时间。可行的方案中,也可以将任务类型划分为OLTP和OLAP,其中,OLTP是以小的任务以及小的查询为主,衡量OLTP系统的性能参数是单任务的响应时间,例如在线系统的网上订票等,OLAP是以大任务为主,主要是对历史数据进行多维度的统计分析,任务的处理时间很长,衡量OLAP系统的性能参数是单位时间处理数据的总量。通过对不同应用的不同DMA任务的任务类型都已进行了记录,所述第二查询单元706可通过记录查询DMA任务对应的任务类型。
第二判断单元707,用于判断在所述已占用通道的DMA任务中是否存在与所述目标DMA任务的任务类型不相同的DMA任务;
具体实现中,所述第二判断单元707根据所查询到的所述已占用通道的DMA任务的任务类型和目标DMA任务的任务类型,判断在所述已占用通道的DMA任务中是否存在与所述目标DMA任务的任务类型不相同的DMA任务。若在所述已占用通道的DMA任务中存在与所述目标DMA任务的任务类型不相同的DMA任务,则执行第三传输单元708,若在所述已占用通道的DMA任务中是不存在与所述目标DMA任务的任务类型不相同的DMA任务,则执行第三查询单元709。
第三传输单元708,用于当在所述已占用通道的DMA任务中不存在与所述目标DMA任务的任务类型不相同的DMA任务时,获取目标DMA任务对应的目标数据,将所述目标数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过所述目标通道的输出队列进行输出。
具体实现中,当所述第二判断单元707判断在所述已占用通道的DMA任务中不存在与所述目标DMA任务的任务类型不相同的DMA任务时,第三传输单元708获取目标DMA任务对应的目标数据,将所述目标数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过所述目标通道的输出队列进行输出。
第三查询单元709,用于当在所述已占用通道的DMA任务中存在与所述目标DMA任务的任务类型不相同的DMA任务时,查询所述与所述目标DMA任务的任务类型不相同的DMA任务的优先级;
具体实现中,当所述第二判断单元707判断在所述已占用通道的DMA任务中存在与所述目标DMA任务的任务类型不相同的DMA任务时,所述第三查询单元709查询所述与所述目标DMA任务的任务类型不相同的DMA任务的优先级,用以根据任务类型和优先级确定DMA任务的优先处理顺序。
第三判断单元710,用于判断在所述与所述目标DMA任务的任务类型不相同的DMA任务中是否存在低于所述目标DMA任务的优先级的DMA任务;
具体实现中,所述第三判断单元710判断在所述与所述目标DMA任务的任务类型不相同的DMA任务中是否存在低于所述目标DMA任务的优先级的DMA任务。若在所述与所述目标DMA任务的任务类型不相同的DMA任务中存在低于所述目标DMA任务的优先级的DMA任务,则执行第四传输单元711,若不存在,则执行暂停单元712。
第四传输单元711,用于当在所述与所述目标DMA任务的任务类型不相同的DMA任务中不存在低于所述目标DMA任务的优先级的DMA任务时,获取目标DMA任务对应的目标数据,将所述目标数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过所述目标通道的输出队列进行输出。
具体实现中,当所述第三判断单元710判断在所述与所述目标DMA任务的任务类型不相同的DMA任务中不存在低于所述目标DMA任务的优先级的DMA任务时,所述第四传输单元711获取目标DMA任务对应的目标数据,将所述目标数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过所述目标通道的输出队列进行输出。
暂停单元712,用于当在所述与所述目标DMA任务的任务类型不相同的DMA任务中,存在低于所述目标DMA任务的优先级的DMA任务时,暂停所述低于所述目标DMA任务的优先级的DMA任务的数据传输;
具体实现中,当在所述与所述目标DMA任务的任务类型不相同的DMA任务中,存在低于所述目标DMA任务的优先级的DMA任务时,所述暂停单元712暂停所述低于所述目标DMA任务的优先级的DMA任务的数据传输。可行的方案中,当所述低于所述目标DMA任务的优先级的DMA任务被划分为多个小任务时,当前时刻即使所述低于所述目标DMA任务的优先级的DMA任务中有一些小任务已从输出队列输出,但仍有其他小任务仍未被传输时或者已从所述已占用通道的输入队列输入时,暂停所述其他小任务的处理,优先对所述目标DMA任务进行数据传输。
第一传输单元713,用于获取目标DMA任务的目标数据,将所述目标数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过所述低于所述目标DMA任务的优先级的DMA任务对应的已占用通道的输出队列进行输出。
具体实现中,在暂停所述低于所述目标DMA任务的优先级的DMA任务的数据传输之后,所述第一传输单元713获取目标DMA任务的目标数据,将所述目标数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过所述低于所述目标DMA任务的优先级的DMA任务对应的已占用通道的输出队列进行输出。可以理解的是,在完成对所述目标DMA任务的输出后,向CPU发送输出目标DMA任务对应的数据传输完毕的信号,以使将总线控制权还给CPU。
需要说明的是,本发明实施例中所介绍的直接内存访问的传输控制方法可以应用于外部设备与所述直接内存访问的传输控制装置的其中的一个DMA通道进行连接的情况,即,若所述外部设备接收数据,只能从该DMA传输通道的输出队列接收数据,若所述外部设备发送数据,只能从该DMA通道的输入队列发送数据。例如:外部设备A连接于DMA通道1以及外部设备B连接于DMA通道1的情况,外部设备A发出DMA任务1的传输请求,DMA任务1是将存储器的数据传输至外部设备,根据DMA任务1的优先级分配目标通道(所述目标通道并不限定于DMA通道1,是因为所述数据是从存储器传输至DMA通道,因此不限定数据输入的通道),而外部设备B对应的DMA任务2正在DMA通道1中正在处理,并且DMA任务1的任务类型和DMA任务2的任务类型不同,DMA任务1的优先级高于DMA任务2的优先级,由于需要优先处理DMA任务1和两个任务的输出队列相同,因此暂停DMA任务2的数据传输,并获取DMA任务1的数据,将DMA任务1的数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过DMA通道1的输出队列进行输出。
在本发明实施例中,当接收到传输目标DMA任务的DMA传输请求时,根据目标DMA任务对应的优先级为其选择一目标通道,在DMA通道中存在其他DMA任务的情况下,通过查询已占用通道的其他DMA任务的任务类型、优先级以及目标DMA任务的任务类型,并对已占用通道的其他DMA任务的任务类型、优先级以及目标DMA任务的任务类型、优先级进行对比,根据对比结果对DMA通道的传输数据进行控制,可以实现根据DMA任务的优先级、任务类型合理规划数据传输,即使遇到紧急DMA任务也可以优先处理,提高了计算机系统处理效率和服务质量。
请参见图8,为本发明实施例提供了一种直接内存访问的传输控制装置的结构示意图。如图8所示,本发明实施例的所述直接内存访问的传输控制装置8可以包括:接收单元801、第一查询单元802、第一判断单元803、第二查询单元804、第二判断单元805、暂停单元806和传输单元807。
接收单元801,用于接收DMA传输请求,所述DMA传输请求携带目标DMA任务。
具体实现中,所述接收单元801接收DMA传输请求,所述DMA传输请求携带目标DMA任务,从所述DMA传输请求中获取目标DMA任务。可以理解的是,外部设备如果想要通过总线直接向存储器传输数据时,外部设备先通过所述直接内存访问的传输控制装置向CPU发送DMA传输请求信号,即向CPU提出接管总线控制权的请求,CPU收到请求并响应DMA传输请求时,会让出总线控制权,此时,所述直接内存访问的传输控制装置可对DMA传输请求进行处理,获取所述DMA传输请求中携带的目标DMA任务,用以进行数据传输。
第一查询单元802,用于查询所述目标DMA任务的优先级,并根据所述目标DMA任务的优先级,从DMA通道中选择与所述目标DMA的优先级相对应的DMA通道作为目标通道。
具体实现中,所述第一查询单元802查询所述目标DMA任务的优先级,并根据所述目标DMA任务的优先级,从DMA通道中选择与所述目标DMA的优先级相对应的DMA通道作为目标通道。可以预先对不同应用的不同DMA任务设定不同优先级,可选的方案中,传输数据量大的DMA任务设置的优先级较低,传输数据量小的DMA任务设置的优先级较高,这样可以及时完成传输数据量小的DMA任务,提高计算机系统的处理效率。所述直接内存访问的传输控制装置并根据所述目标DMA任务的优先级,从DMA通道中选择与所述目标DMA的优先级相对应的DMA通道作为目标通道,用以通过所述目标通道对所述目标DMA任务进行数据传输。
第一判断单元803,用于判断所述DMA通道中是否存在已经被其他DMA任务占用的通道。
具体实现中,所述第一判断单元803判断所述DMA通道中是否存在已经被其他DMA任务占用的通道。所述DMA通道包括至少一个用于数据传输的DMA通道,所述直接内存访问的传输控制装置判断除了目标通道之外的通道中是否有其他DMA任务占用的通道。
第二查询单元804,用于当DMA通道中存在已经被其他DMA任务占用的通道时,查询已占用通道的DMA任务的优先级。
具体实现中,当所述第一判断单元803判断所述DMA通道中存在已经被其他DMA任务占用的通道时,所述第二查询单元804查询已占用通道的DMA任务的优先级,用以根据优先级确定DMA任务的处理顺序。
第二判断单元805,用于判断在所述已占用通道的DMA任务中是否存在低于所述目标DMA任务的优先级的DMA任务。
具体实现中,所述第二判断单元805判断在所述已占用通道的DMA任务中是否存在低于所述目标DMA任务的优先级的DMA任务。
暂停单元806,用于当在所述已占用通道的DMA任务中存在低于所述目标DMA任务的优先级的DMA任务时,暂停所述低于所述目标DMA任务的优先级的DMA任务的数据传输。
具体实现中,当所述第二判断单元805判断在所述已占用通道的DMA任务中存在低于所述目标DMA任务的优先级的DMA任务时,所述暂停单元806暂停所述低于所述目标DMA任务的优先级的DMA任务的数据传输。可行的方案中,当所述低于所述目标DMA任务的优先级的DMA任务被划分为多个小任务时,当前时刻即使所述低于所述目标DMA任务的优先级的DMA任务中有一些小任务已从输出队列输出,但仍有其他小任务仍未被传输时或者已从所述已占用通道的输入队列输入时,所述暂停单元806暂停所述其他小任务的处理,优先对所述目标DMA任务进行数据传输。
传输单元807,用于获取目标DMA任务的目标数据,将所述目标数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过所述低于所述目标DMA任务的优先级的DMA任务对应的已占用通道的输出队列进行输出。
具体实现中,所述传输单元807获取目标DMA任务的目标数据,将所述目标数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过所述低于所述目标DMA任务的优先级的DMA任务对应的已占用通道的输出队列进行输出。可以理解的是,在完成对所述目标DMA任务的输出后,向CPU发送输出目标DMA任务对应的数据传输完毕的信号,以使将总线控制权还给CPU。
需要说明的是,本发明实施例中所介绍的直接内存访问的传输控制方法可以应用于外部设备与所述直接内存访问的传输控制装置的其中的一个DMA通道进行连接的情况,即,若所述外部设备接收数据,只能从该DMA传输通道的输出队列接收数据,若所述外部设备发送数据,只能从该DMA通道的输入队列发送数据。例如:外部设备A连接于DMA通道1以及外部设备B连接于DMA通道1的情况,外部设备A发出DMA任务1的传输请求,DMA任务1是将存储器的数据传输至外部设备,根据DMA任务1的优先级分配目标通道(所述目标通道并不限定于DMA通道1,是因为所述数据是从存储器传输至DMA通道,因此不限定数据输入的通道),而外部设备B对应的DMA任务2正在DMA通道1中正在处理,并且DMA任务1的优先级高于DMA任务2的优先级,由于需要优先处理DMA任务1和两个任务的输出队列相同,因此暂停DMA任务2的数据传输,并获取DMA任务1的数据,将DMA任务1的数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过DMA通道1的输出队列进行输出。
在本发明实施例中,当接收到传输目标DMA任务的DMA传输请求时,根据目标DMA任务对应的优先级为其选择一目标通道,在DMA通道中存在其他DMA任务的情况下,通过查询已占用通道的其他DMA任务的优先级,并对已占用通道的其他DMA任务的优先级以及目标DMA任务的优先级进行对比,根据对比结果对DMA通道的传输数据进行控制,可以实现根据DMA任务的优先级合理规划数据传输,即使遇到紧急DMA任务也可以优先处理,提高了计算机系统处理效率和服务质量。
请参见图9,为本发明实施例提供了一种直接内存访问的传输控制装置的结构示意图。如图9所示,本发明实施例的所述直接内存访问的传输控制装置9可以包括:预存单元901、接收单元902、第一查询单元903、第一判断单元904、第二查询单元905、第二判断单元906、暂停单元907和第一传输单元908。
预存单元901,用于预先保存DMA任务的优先级列表,以及DMA任务优先级与DMA通道映射关系表。
具体实现中,所述预存单元901预先保存DMA任务的优先级列表,以及DMA任务优先级与DMA通道映射关系表。所述直接内存访问的传输控制装置对不同DMA任务设定不同优先级,对不同的DMA通道设定不同优先级,并可以接收对DMA任务优先级和DMA通道优先级进行更改。所述DMA通道包括至少一个用于数据传输的通道。可选的方案中,所述直接内存访问的传输控制装置对各个通道设定优先级,DMA任务的优先级可根据传输的数据量大小确定优先级,数据量较小的优先级高,数据量大的优先级高,按照数据量大小分为各个不同的优先级,将数据量对应的优先级与DMA通道设定的优先级进行对应,并将DMA任务的优先级列表、DMA任务优先级与DMA通道映射关系表进行保存。
接收单元902,用于接收DMA传输请求,所述DMA传输请求携带目标DMA任务。
具体实现中,所述接收单元902接收DMA传输请求,所述DMA传输请求携带目标DMA任务,从所述DMA传输请求中获取目标DMA任务。可以理解的是,外部设备如果想要通过总线直接向存储器传输数据时,外部设备先通过所述直接内存访问的传输控制装置向CPU发送DMA传输请求信号,即所述直接内存访问的传输控制装置向CPU提出接管总线控制权的请求,CPU收到请求并响应DMA传输请求时,会让出总线控制权,此时,所述直接内存访问的传输控制装置可对DMA传输请求进行处理,获取所述DMA传输请求中携带的目标DMA任务,用以进行数据传输。
第一查询单元903,用于查询所述目标DMA任务的优先级,并根据所述目标DMA任务的优先级,从DMA通道中选择与所述目标DMA的优先级相对应的DMA通道作为目标通道。
具体实现中,所述第一查询单元903在所述DMA任务的优先级列表中查询所述目标DMA任务的优先级,从所述DMA任务优先级与DMA通道映射关系表中查询与所述目标DMA任务的优先级相对应的DMA通道,将与所述目标DMA任务的优先级相对应的DMA通道作为目标通道。
第一判断单元904,用于判断所述DMA通道中是否存在已经被其他DMA任务占用的通道。
具体实现中,所述第一判断单元904判断所述DMA通道中是否存在已经被其他DMA任务占用的通道。所述DMA通道包括至少一个用于数据传输的DMA通道,所述第一判断单元904判断除了目标通道之外的通道中是否有其他DMA任务占用的通道。
第二查询单元905,用于当DMA通道中存在已经被其他DMA任务占用的通道时,查询已占用通道的DMA任务的优先级。
具体实现中,当所述第一判断单元904判断所述DMA通道中存在已经被其他DMA任务占用的通道时,所述第二查询单元905查询已占用通道的DMA任务的优先级,用以根据优先级确定DMA任务的处理顺序。
第二判断单元906,用于判断在所述已占用通道的DMA任务中是否存在低于所述目标DMA任务的优先级的DMA任务。
具体实现中,所述第二判断单元906判断在所述已占用通道的DMA任务中是否存在低于所述目标DMA任务的优先级的DMA任务。
暂停单元907,用于当在所述已占用通道的DMA任务中存在低于所述目标DMA任务的优先级的DMA任务时,暂停所述低于所述目标DMA任务的优先级的DMA任务的数据传输。
具体实现中,当所述第二判断单元906判断在所述已占用通道的DMA任务中存在低于所述目标DMA任务的优先级的DMA任务时,所述暂停单元907暂停所述低于所述目标DMA任务的优先级的DMA任务的数据传输。可行的方案中,当所述低于所述目标DMA任务的优先级的DMA任务被划分为多个小任务时,当前时刻即使所述低于所述目标DMA任务的优先级的DMA任务中有一些小任务已从输出队列输出,但仍有其他小任务仍未被传输时或者已从所述已占用通道的输入队列输入时,所述暂停单元907暂停所述其他小任务的处理,优先对所述目标DMA任务进行数据传输。
传输单元908,用于获取目标DMA任务的目标数据,将所述目标数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过所述低于所述目标DMA任务的优先级的DMA任务对应的已占用通道的输出队列进行输出。
具体实现中,所述传输单元908获取目标DMA任务的目标数据,将所述目标数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过所述低于所述目标DMA任务的优先级的DMA任务对应的已占用通道的输出队列进行输出。可以理解的是,在完成对所述目标DMA任务的输出后,向CPU发送输出目标DMA任务对应的数据传输完毕的信号,以使将总线控制权还给CPU。
进一步,一种可行的方案中,当所述第一判断单元904判断DMA通道中不存在已经被其他DMA任务占用的通道时,获取目标DMA任务对应的目标数据,将所述目标数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过所述目标通道的输出队列进行输出。另一种可行的方案中,当所述第二判断单元906判断在所述已占用通道的DMA任务中不存在低于所述目标DMA任务的优先级的DMA任务时,获取目标DMA任务对应的目标数据,将所述目标数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过所述目标通道的输出队列进行输出。
需要说明的是,本发明实施例中所介绍的直接内存访问的传输控制方法可以应用于外部设备与所述直接内存访问的传输控制装置的其中的一个DMA通道进行连接的情况,即,若所述外部设备接收数据,只能从该DMA传输通道的输出队列接收数据,若所述外部设备发送数据,只能从该DMA通道的输入队列发送数据。例如:外部设备A连接于DMA通道1以及外部设备B连接于DMA通道1的情况,外部设备A发出DMA任务1的传输请求,DMA任务1是将存储器的数据传输至外部设备,根据DMA任务1的优先级分配目标通道(所述目标通道并不限定于DMA通道1,是因为所述数据是从存储器传输至DMA通道,因此不限定数据输入的通道),而外部设备B对应的DMA任务2正在DMA通道1中正在处理,并且DMA任务1的优先级高于DMA任务2的优先级,由于需要优先处理DMA任务1和两个任务的输出队列相同,因此暂停DMA任务2的数据传输,并获取DMA任务1的数据,将DMA任务1的数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过DMA通道1的输出队列进行输出。
在本发明实施例中,当接收到传输目标DMA任务的DMA传输请求时,根据目标DMA任务对应的优先级为其选择一目标通道,在DMA通道中存在其他DMA任务的情况下,通过查询已占用通道的其他DMA任务的优先级,并对已占用通道的其他DMA任务的优先级以及目标DMA任务的优先级进行对比,根据对比结果对DMA通道的传输数据进行控制,可以实现根据DMA任务的优先级合理规划数据传输,即使遇到紧急DMA任务也可以优先处理,提高了计算机系统处理效率和服务质量。
本发明实施例还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时包括上述方法实施例中记载的任意一种直接内存访问的传输控制方法的部分或全部步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可能可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以为个人计算机、服务器或者网络设备等,具体可以是计算机设备中的处理器)执行本发明各个实施例上述方法的全部或部分步骤。其中,而前述的存储介质可包括:U盘、移动硬盘、磁碟、光盘、只读存储器(英文:Read-Only Memory,缩写:ROM)或者随机存取存储器(英文:Random Access Memory,缩写:RAM)等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (16)

1.一种直接内存访问的传输控制方法,其特征在于,该方法应用于直接内存访问DMA传输控制装置中,对DMA通道的数据传输进行控制,所述DMA通道传输的数据包括外部设备和存储器之间传输数据,包括:
接收DMA传输请求,所述DMA传输请求携带目标DMA任务;
查询所述目标DMA任务的优先级,并根据所述目标DMA任务的优先级,从DMA通道中选择与所述目标DMA的优先级相对应的DMA通道作为目标通道;
判断所述DMA通道中是否存在已经被其他DMA任务占用的通道;
当所述DMA通道中存在已经被其他DMA任务占用的通道时,查询已占用通道的DMA任务的任务类型以及所述目标DMA任务的任务类型;所述任务类型为带宽型任务或延时型任务,所述任务类型为OLTP或OLAP;
判断在所述已占用通道的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任务优先级与DMA通道映射关系表中查询与所述目标DMA任务的优先级相对应的DMA通道,将与所述目标DMA任务的优先级相对应的DMA通道作为目标通道。
8.一种直接内存访问传输控制装置,其特征在于,所述直接内存访问DMA传输控制装置是对DMA通道的数据传输进行控制,所述DMA通道传输的数据包括外部设备和存储器之间传输数据,包括:
接收单元,用于接收DMA传输请求,所述DMA传输请求携带目标DMA任务;
第一查询单元,用于查询所述目标DMA任务的优先级,并根据所述目标DMA任务的优先级,从DMA通道中选择与所述目标DMA的优先级相对应的DMA通道作为目标通道;
第一判断单元,用于判断所述DMA通道中是否存在已经被其他DMA任务占用的通道;
第二查询单元,用于当所述DMA通道中存在已经被其他DMA任务占用的通道时,查询已占用通道的DMA任务的任务类型以及所述目标DMA任务的任务类型;所述任务类型为带宽型任务或延时型任务,所述任务类型为OLTP或OLAP;
第二判断单元,用于判断在所述已占用通道的DMA任务中是否存在与所述目标DMA任务的任务类型不相同的DMA任务;
第三查询单元,用于当在所述已占用通道的DMA任务中存在与所述目标DMA任务的任务类型不相同的DMA任务时,查询所述与所述目标DMA任务的任务类型不相同的DMA任务的优先级;
第三判断单元,用于判断在所述与所述目标DMA任务的任务类型不相同的DMA任务中是否存在低于所述目标DMA任务的优先级的DMA任务;
暂停单元,用于当在所述与所述目标DMA任务的任务类型不相同的DMA任务中,存在低于所述目标DMA任务的优先级的DMA任务时,暂停所述低于所述目标DMA任务的优先级的DMA任务的数据传输;
第一传输单元,用于获取目标DMA任务的目标数据,将所述目标数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过所述低于所述目标DMA任务的优先级的DMA任务对应的已占用通道的输出队列进行输出。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
预存单元,用于预先保存DMA任务的优先级列表,以及DMA任务优先级与DMA通道映射关系表;
所述第一查询单元,具体用于在所述DMA任务的优先级列表中查询所述目标DMA任务的优先级,从所述DMA任务优先级与DMA通道映射关系表中查询与所述目标DMA任务的优先级相对应的DMA通道,将与所述目标DMA任务的优先级相对应的DMA通道作为目标通道。
10.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第二传输单元,用于当所述DMA通道中不存在已经被其他DMA任务占用的通道时,获取目标DMA任务对应的目标数据,将所述目标数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过所述目标通道的输出队列进行输出。
11.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第三传输单元,用于当在所述已占用通道的DMA任务中不存在与所述目标DMA任务的任务类型不相同的DMA任务时,获取目标DMA任务对应的目标数据,将所述目标数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过所述目标通道的输出队列进行输出。
12.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第四传输单元,用于当在所述与所述目标DMA任务的任务类型不相同的DMA任务中不存在低于所述目标DMA任务的优先级的DMA任务时,获取目标DMA任务对应的目标数据,将所述目标数据通过所述目标通道的输入队列进行输入,以及将所述目标数据通过所述目标通道的输出队列进行输出。
13.一种直接内存访问传输控制装置,其特征在于,所述直接内存访问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任务对应的已占用通道的输出队列进行输出。
14.根据权利要求13所述的装置,其特征在于,所述装置还包括:
预存单元,用于预先保存DMA任务的优先级列表,以及DMA任务优先级与DMA通道映射关系表;
所述第一查询单元具体用于在所述DMA任务的优先级列表中查询所述目标DMA任务的优先级,从所述DMA任务优先级与DMA通道映射关系表中查询与所述目标DMA任务的优先级相对应的DMA通道,将与所述目标DMA任务的优先级相对应的DMA通道作为目标通道。
15.一种计算机存储介质,其特征在于,
所述计算机存储介质存储有程序,所述程序执行时包括权利要求1至5任意一项所述的方法。
16.一种计算机存储介质,其特征在于,
所述计算机存储介质存储有程序,所述程序执行时包括权利要求6至7任意一项所述的方法。
CN201510372004.7A 2015-06-29 2015-06-29 一种直接内存访问的传输控制方法及装置 Active CN106294233B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201510372004.7A CN106294233B (zh) 2015-06-29 2015-06-29 一种直接内存访问的传输控制方法及装置
PCT/CN2016/086758 WO2017000822A1 (zh) 2015-06-29 2016-06-22 一种直接内存访问的传输控制方法及装置
EP16817186.6A EP3255553B1 (en) 2015-06-29 2016-06-22 Transmission control method and device for direct memory access
US15/797,605 US10120820B2 (en) 2015-06-29 2017-10-30 Direct memory access transmission control method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510372004.7A CN106294233B (zh) 2015-06-29 2015-06-29 一种直接内存访问的传输控制方法及装置

Publications (2)

Publication Number Publication Date
CN106294233A CN106294233A (zh) 2017-01-04
CN106294233B true CN106294233B (zh) 2019-05-03

Family

ID=57607860

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510372004.7A Active CN106294233B (zh) 2015-06-29 2015-06-29 一种直接内存访问的传输控制方法及装置

Country Status (4)

Country Link
US (1) US10120820B2 (zh)
EP (1) EP3255553B1 (zh)
CN (1) CN106294233B (zh)
WO (1) WO2017000822A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102447465B1 (ko) * 2017-09-08 2022-09-27 삼성전자주식회사 호스트로부터의 읽기 요청에 대한 짧은 읽기 응답 시간을 제공하기 위해 내부 동작을 일시적으로 중단하는 스토리지 장치
CN109727114A (zh) * 2018-05-14 2019-05-07 网联清算有限公司 业务处理方法及系统
CN109379296A (zh) * 2018-10-25 2019-02-22 盛科网络(苏州)有限公司 一种芯片实现上cpu协议报文层次化流量控制的方法及装置
CN111240813A (zh) * 2018-11-29 2020-06-05 杭州嘉楠耘智信息科技有限公司 一种dma调度方法、装置和计算机可读存储介质
CN109857686B (zh) * 2019-03-26 2020-12-29 北京简约纳电子有限公司 一种dma数据同步传输变异步传输的方法
CN110532205B (zh) * 2019-07-17 2021-04-06 浙江大华技术股份有限公司 数据传输方法、装置、计算机设备和计算机可读存储介质
US11099966B2 (en) * 2020-01-09 2021-08-24 International Business Machines Corporation Efficient generation of instrumentation data for direct memory access operations
CN112286856B (zh) * 2020-10-29 2023-03-14 维沃移动通信有限公司 控制方法和电子设备
CN113709056B (zh) * 2021-08-26 2022-09-09 无锡沐创集成电路设计有限公司 内存流量控制方法、装置、存储介质及电子设备
CN114124690A (zh) * 2021-08-30 2022-03-01 济南浪潮数据技术有限公司 一种数据中心的告警配置方法、系统及相关装置
CN115563038B (zh) * 2022-10-24 2023-11-07 苏州雄立科技有限公司 基于dma控制器的数据处理系统、方法和数据处理设备
CN116756066B (zh) * 2023-08-21 2024-01-02 北京紫光芯能科技有限公司 一种直接存储器访问控制方法及控制器

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5983301A (en) * 1996-04-30 1999-11-09 Texas Instruments Incorporated Method and system for assigning a direct memory access priority in a packetized data communications interface device
CN101149717A (zh) * 2007-11-16 2008-03-26 威盛电子股份有限公司 计算机系统及直接内存访问传输方法
CN103678199A (zh) * 2012-09-26 2014-03-26 深圳市中兴微电子技术有限公司 一种传输数据的方法和设备
CN103902467A (zh) * 2012-12-26 2014-07-02 华为技术有限公司 压缩内存访问控制方法、装置及系统
CN104123252A (zh) * 2013-04-26 2014-10-29 韩国科亚电子股份有限公司 多通道直接存储器存取控制器及其控制方法
CN104298628A (zh) * 2014-09-30 2015-01-21 中国电子科技集团公司第三十八研究所 一种用于并发访问的数据存储器仲裁电路及仲裁方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4901234A (en) * 1987-03-27 1990-02-13 International Business Machines Corporation Computer system having programmable DMA control
US5193196A (en) * 1988-04-04 1993-03-09 Hitachi, Ltd. Process request arbitration system which preferentially maintains previously selected process request upon receipt of a subsequent request of identical priority
GB2283596B (en) * 1993-11-01 1998-07-01 Ericsson Ge Mobile Communicat Multiprocessor data memory sharing
JP2003006003A (ja) * 2001-06-18 2003-01-10 Mitsubishi Electric Corp Dmaコントローラおよび半導体集積回路
US6775717B1 (en) * 2001-08-31 2004-08-10 Integrated Device Technology, Inc. Method and apparatus for reducing latency due to set up time between DMA transfers
DE102004046822A1 (de) * 2004-09-27 2006-03-30 Infineon Technologies Ag Verfahren zum Übertragen von Daten zwischen einem Speicher und mehreren peripheren Einheiten mit Hilfe einer Direct Memory Access-Steuerung sowie entsprechende Direct Memory Access-Steuervorrichtung
US7546391B2 (en) * 2005-05-13 2009-06-09 Texas Instruments Incorporated Direct memory access channel controller with quick channels, event queue and active channel memory protection
US20070162643A1 (en) * 2005-12-19 2007-07-12 Ivo Tousek Fixed offset scatter/gather dma controller and method thereof
US20080126600A1 (en) * 2006-08-31 2008-05-29 Freescale Semiconductor, Inc. Direct memory access device and methods
US8516163B2 (en) * 2007-02-27 2013-08-20 Integrated Device Technology, Inc. Hardware-based concurrent direct memory access (DMA) engines on serial rapid input/output SRIO interface
US8250253B2 (en) * 2010-06-23 2012-08-21 Intel Corporation Method, apparatus and system for reduced channel starvation in a DMA engine
US9092156B1 (en) * 2013-05-30 2015-07-28 Marvell International Ltd. Methods and apparatus for managing storage device commands
US9727502B2 (en) * 2013-07-26 2017-08-08 Infineon Technologies Ag System and method for direct memory access transfers
US10318457B2 (en) * 2015-06-01 2019-06-11 Microchip Technology Incorporated Method and apparatus for split burst bandwidth arbitration

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5983301A (en) * 1996-04-30 1999-11-09 Texas Instruments Incorporated Method and system for assigning a direct memory access priority in a packetized data communications interface device
CN101149717A (zh) * 2007-11-16 2008-03-26 威盛电子股份有限公司 计算机系统及直接内存访问传输方法
CN103678199A (zh) * 2012-09-26 2014-03-26 深圳市中兴微电子技术有限公司 一种传输数据的方法和设备
CN103902467A (zh) * 2012-12-26 2014-07-02 华为技术有限公司 压缩内存访问控制方法、装置及系统
CN104123252A (zh) * 2013-04-26 2014-10-29 韩国科亚电子股份有限公司 多通道直接存储器存取控制器及其控制方法
CN104298628A (zh) * 2014-09-30 2015-01-21 中国电子科技集团公司第三十八研究所 一种用于并发访问的数据存储器仲裁电路及仲裁方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"媒体多处理器系统芯片的设计研究";陈科明;《中国博士学位论文全文数据库信息科技辑》;20070615(第6期);I136-60 *

Also Published As

Publication number Publication date
CN106294233A (zh) 2017-01-04
EP3255553A4 (en) 2018-01-24
EP3255553B1 (en) 2019-02-06
EP3255553A1 (en) 2017-12-13
US20180052789A1 (en) 2018-02-22
WO2017000822A1 (zh) 2017-01-05
US10120820B2 (en) 2018-11-06

Similar Documents

Publication Publication Date Title
CN106294233B (zh) 一种直接内存访问的传输控制方法及装置
US10412021B2 (en) Optimizing placement of virtual machines
CN105729491B (zh) 机器人任务的执行方法、装置及系统
CN105701040B (zh) 一种激活内存的方法及装置
CN107690622A (zh) 实现硬件加速处理的方法、设备和系统
CN104166628B (zh) 管理内存的方法、装置和系统
CN105391648B (zh) 用于使网络流对准处理资源的方法、计算设备和网络控制器
CN109831524A (zh) 一种负载均衡处理方法及装置
US8903981B2 (en) Method and system for achieving better efficiency in a client grid using node resource usage and tracking
CN109074281B (zh) 图形处理器任务的分配方法和装置
CN105224246B (zh) 一种信息以及内存配置方法和装置
CN106503058A (zh) 一种数据加载方法、终端和计算集群
CN106489132B (zh) 读写数据的方法、装置、存储设备和计算机系统
CN105468546B (zh) 互连电路的数据处理装置和方法
CN103516763B (zh) 资源处理方法和系统以及装置
CN109561054A (zh) 一种数据传输方法、控制器及接入设备
CN109327511A (zh) 一种基于http协议的数据请求方法和服务器
CN107071036A (zh) 一种下载驱动文件的方法、网络服务器及系统
CN106790332A (zh) 一种资源调度方法、系统及主节点
CN104571934B (zh) 一种内存访问的方法、设备和系统
CN105786732B (zh) 数据访问方法及装置
CN108509256B (zh) 调度运行设备的方法、设备和运行设备
CN107025146A (zh) 一种文件生成方法、装置和系统
CN111309488A (zh) 无人机集群的计算资源共享方法与系统及计算机存储介质
CN110210982A (zh) 订单分配方法、装置、服务器及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant