CN117112465A - Dma调度器及方法、片上系统、电子组件及设备 - Google Patents
Dma调度器及方法、片上系统、电子组件及设备 Download PDFInfo
- Publication number
- CN117112465A CN117112465A CN202311330695.5A CN202311330695A CN117112465A CN 117112465 A CN117112465 A CN 117112465A CN 202311330695 A CN202311330695 A CN 202311330695A CN 117112465 A CN117112465 A CN 117112465A
- Authority
- CN
- China
- Prior art keywords
- target
- data
- dma
- dma controller
- transmission path
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 230000005540 biological transmission Effects 0.000 claims abstract description 332
- 230000004044 response Effects 0.000 claims abstract description 7
- 238000012546 transfer Methods 0.000 claims description 77
- 238000012545 processing Methods 0.000 description 20
- 230000008569 process Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 230000004075 alteration Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 239000002674 ointment Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Bus Control (AREA)
Abstract
本公开提供一种DMA调度器、DMA调度方法、片上系统、电子组件及电子设备。其DMA调度器被配置为:响应于数据传输请求,从预先配置的多条传输路径中选择至少一条目标传输路径,至少一条目标传输路径构成从待传输数据在片上系统的源地址到目标地址的数据传输通路;为每条目标传输路径分配目标DMA控制器,目标DMA控制器的可用源地址包括对应的目标传输路径的源地址,目标DMA控制器的可用目标地址包括对应的目标传输路径的目标地址;向目标DMA控制器发送数据传输指令,以便目标DMA控制器按照对应的目标传输路径搬运待传输数据。本公开实施例可提升数据传输效率。
Description
技术领域
本公开涉及数据传输技术领域,尤其涉及一种DMA调度器、片上系统、电子组件、电子设备及DMA调度方法。
背景技术
为提高数据传输效率,SOC(System on Chip,片上系统)芯片上的数据传输往往通过DMA(Direct Memory Access,直接存储器访问)实现。为实现DMA传输,需要由软件为DMA传输进行配置。
片外设备无法直接访问片内模块,反之,片内模块也无法直接访问片外设备。因此,当SOC芯片的片内模块需要对片外数据进行处理时,片外数据需要先暂存在SOC芯片自有的外部存储器,再从该外部存储器搬运至片内模块。这一数据传输过程需要两次DMA传输,需要软件分别进行配置。
目前的DMA传输技术至少在数据传输效率上还存在可优化空间。
发明内容
本公开的目的是提供一种DMA调度器、片上系统、电子组件、电子设备、及DMA调度方法,实现数据传输效率的优化。
根据本公开的一个方面,提供一种DMA调度器,应用于片上系统,该DMA调度器被配置为:
响应于数据传输请求,从预先配置的多条传输路径中选择至少一条目标传输路径,至少一条目标传输路径构成从待传输数据在片上系统的源地址到待传输数据在片上系统的目标地址的数据传输通路;
为每条目标传输路径分配目标DMA控制器,目标DMA控制器的可用源地址包括对应的目标传输路径的源地址,目标DMA控制器的可用目标地址包括对应的目标传输路径的目标地址;
向目标DMA控制器发送数据传输指令,以便目标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主板。
根据本公开的另一方面,还提供一种电子设备,该电子设备包括上述的电子组件。在一些使用场景下,该电子设备的产品形式是便携式电子设备,例如智能手机、平板电脑、VR设备等;在一些使用场景下,该电子设备的产品形式是个人电脑、游戏主机等。
根据本公开的另一方面,还提供一种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为本公开一个实施例提供的SOC芯片结构示意图;
图2为本公开一个实施例提供的图形处理芯片结构示意图;
图3为本公开一个实施例提供的DMA调度方法流程示意图。
具体实施方式
在介绍本公开实施例之前,应当说明的是:
本公开部分实施例被描述为处理流程,虽然流程的各个操作步骤可能被冠以顺序的步骤编号,但是其中的操作步骤可以被并行地、并发地或者同时实施。
本公开实施例中可能使用了术语“第一”、“第二”等等来描述各个特征,但是这些特征不应当受这些术语限制。使用这些术语仅仅是为了将一个特征与另一个特征进行区分。
本公开实施例中可能使用了术语“和/或”,“和/或”包括其中一个或更多所列出的相关联特征的任意和所有组合。
应当理解的是,当描述两个部件的连接关系或通信关系时,除非明确指明两个部件之间直接连接或直接通信,否则,两个部件的连接或通信可以理解为直接连接或通信,也可以理解为通过中间部件间接连接或通信。
为了使本公开实施例中的技术方案及优点更加清楚明白,以下结合附图对本公开的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本公开的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
以数据在SOC芯片上的传输为例,数据传输可以分为数据输入和数据输出。其中,数据输入是指数据从片外输入(为便于表述,称之为Input),并存入SOC芯片自有的外部存储器(通常为DDR设备),为提高系统效率,片外输入的数据通常先被存放在DDR设备的临时存储区域(DDR-T),待需要使用数据时,将数据从临时存储区域搬移至专用区域(DDR-S)。其中,数据输出是指数据从DDR-S经由数据发送模块被发送至片外(为便于表述,称之为Output)。
上述数据传输过程,通过两次DMA传输将数据搬移至SOC芯片的DDR设备,对应的数据传输路径为:Input—>DDR-T,DDR-T—>DDR-S;并通过一次DMA传输将数据输出至片外,对应的数据传输路径为:DDR-S—>Output。
以数据输入为例,当有数据输入需求(Input—>DDR-S),按照现有技术,由片外软件先配置Input—>DDR-T的DMA传输操作,具体包括确定DMA控制器,配置Input—>DDR-T的源地址和目标地址,以及待传输数据的数据长度,并向确定的DMA控制器发送数据传输请求;待该DMA控制器完成数据传输后,向片外软件返回传输完成指示,片外软件再配置DDR-T—>DDR-S的DMA传输操作,并向第二次DMA传输对应的DMA控制器发送数据传输请求。
SOC芯片上往往设置有多个DMA控制器,片外软件难以实时获知这些DMA控制器的状态,因此,在进行DMA传输配置时,可能遇到以下情况:为DMA传输选择的DMA控制器处于忙碌状态,无法及时响应数据传输请求,而SOC芯片上的其他DMA控制器可能处于空闲状态。这种情况不仅会影响数据传输效率,还造成了DMA资源的浪费。另外,若数据传输需要多次DMA传输实现(如上述数据输入过程),需要片外软件分别进行DMA传输配置;由于片外软件难以获取片内数据传输的实时状态,需要通过DMA控制器返回的传输完成指示确定一次DMA传输完成,因此,片外软件需要待上级DMA传输完成后,再进行下级DMA传输配置,并启动下级DMA传输,这也影响了数据传输效率。
有鉴于此,本公开实施例提供一种DMA调度器,旨在一定程度上优化DMA传输,提高数据传输效率。本公开实施例提供的DMA调度器应用于片上系统,下面以应用于图1所示的SOC芯片为例,对DMA调度器的具体工作方式进行说明。
如图1所示,SOC芯片包括输入数据接收模块,设置于输入数据接收模块中的DMA-I(内置于输入数据接收模块的DMA控制器),输出数据发送模块,设置于输出数据发送模块中的DMA-O(内置于输出数据发送模块的DMA控制器),功能模块A,设置于功能模块A中的DMA-A(内置于功能模块A的DMA控制器),核心模块,设置于核心模块的DMA-C(内置于核心模块的DMA控制器),DMA-BUS(总线DMA控制器),DMA调度器。另外,SOC芯片自有的外部存储器为DDR设备,包括DDR-T和DDR-S。应当指出的是,图1所示的SOC芯片是为了便于描述技术方案而给出的示例性结构,实际上,SOC芯片还会包括图中未示出的其他模块,也会有多个功能模块,甚至多个核心模块。另外,除了总线结构,基于片上网络的SOC芯片也适用于本公开。
其中,DMA调度器既可以是独立模块,也可以是与其他功能模块集成的模块。DMA调度器上电后进入初始化阶段,软件会在DMA调度器初始化过程中进行相应的配置,作为举例而非限定,可以包括如下配置:
SOC芯片上各个DMA控制器的可用源地址和可用目标地址,一个DMA控制器的可用源地址可能是连续或不连续的地址段,本文中也将DMA控制器的可用源地址称为可用源地址空间,同理,DMA的可用目标地址也可称为可用目标地址空间;其中,可用源地址(目标地址)是指DMA控制器可以访问的地址;
SOC芯片上各个DMA控制器的数据传输性能;本公开实施例中,数据传输性能可以但不仅限于包括数据传输带宽,除此之外,数据传输性能还可以包括数据处理时延等等参数,本公开对此不做限定;如果数据传输性能包括数据传输带宽;配置数据传输性能的目的是对DMA资源进行调度,因此,该配置信息既可以使用实际数值,也可以使用相对值;
SOC芯片上可用的DMA传输路径(为便于描述,以下简称传输路径);以图1所示的SOC芯片为例,传输路径包括:Input—>DDR-T,DDR-T—>DDR-S,DDR-S—>核心模块,DDR-S—>Output,核心模块—>DDR-S,核心模块—>Output;
各个传输路径的优先级;实际应用中,可以将SOC芯片上的所有传输路径作为一组来配置优先级,以图1所示的SOC芯片为例,可以将核心模块—>Output的优先级设置为最高,其余传输路径具有相同的优先级,且优先级低于核心模块—>Output;也可以以目标地址分组,为具有相同目的地址的多个传输路径配置优先级,仍以图1所示SOC芯片为例,DDR-T—>DDR-S和核心模块—>DDR-S具有相同目标地址,配置核心模块—>DDR-S的优先级高于DDR-T—>DDR-S的优先级,DDR-S—>Output和核心模块—>Output具有相同目标地址,配置核心模块—>Output的优先级高于DDR-S—>Output的优先级;实际应用中,还可以将上述两种优先级配置方式进行结合,或者根据实际需求确定优先级设置规则,本公开对此不作限定;应当指出的是,优先级配置为可选配置;
下级DMA传输启动的最小数据量需求;以图1所示的SOC芯片为例,如果核心模块需要处理存入DDR设备的输入数据,那么,在DDR-T—>DDR-S传输的数据量满足核心模块启动所需要的最小数据量,即可启动DDR-S—>核心模块的DMA传输,因此,可以根据核心模块启动所需要的最小数据量确定DDR-S—>核心模块的DMA传输启动的最小数据量需求(例如,将核心模块启动所需要的最小数据量作为DDR-S—>核心模块的DMA传输启动的最小数据量需求);实际应用中,该项配置为可选配置;
数据拆分参数,包括数据拆分信息,该数据拆分信息指示拆分数据大小,例如,将待传输数据拆分为1M字节的多份拆分数据,可选的,该参数还可以包括拆分有效指示信息,用于指示是否支持数据拆分;实际应用中,该项配置为可选配置;实际应用中,该项配置也可以在对应的DMA传输启动前配置。
上述各项初始化配置信息可以但不仅限于保存在相关寄存器中,以便DMA调度器查询,本公开不对配置信息的具体数据结构进行限定。
基于上述初始化配置,本公开实施例提供的DMA调度器被配置为:响应于数据传输请求,从预先配置的多条传输路径中选择至少一条目标传输路径,至少一条目标传输路径构成从待传输数据在片上系统的源地址到待传输数据在片上系统的目标地址的数据传输通路;为每条目标传输路径分配目标DMA控制器,目标DMA控制器的可用源地址包括对应的目标传输路径的源地址,目标DMA控制器的可用目标地址包括对应的目标传输路径的目标地址;向目标DMA控制器发送数据传输指令,以便目标DMA控制器按照对应的目标传输路径搬运待传输数据。
上述数据传输请求可以是数据需求方发起的,作为举例而非限定,由片外软件发送数据传输请求。数据传输请求中可以携带DMA传输的配置信息,该DMA传输的配置信息包括待传输数据在片上系统(如图1所示的SOC芯片)的源地址和目标地址,还可以包括待传输数据的数据长度。上述DMA传输的配置信息也可以不随数据传输请求一并发送,例如可以单独发送。若同一数据需求方每次请求传输的数据在片上系统的源地址和目标地址均相同(还可能是数据长度也相同),该部分配置信息也可以仅配置一次,后续均按照该配置信息执行,直至该部分配置信息更新。可见,本公开实施例通过在SOC芯片上设置DMA调度器,在进行数据传输时,仅需要对DMA调度器进行DMA传输配置,DMA调度器获取待传输数据的DMA传输的配置信息,根据该配置信息进行后续的DMA传输调度。即使数据传输需要多段DMA传输实现,也仅需要针对该数据传输进行一次DMA传输配置并发送给DMA调度器即可,而不需要分别对各段DMA传输进行配置,从而在一定程度上提高数据传输效率。
本公开不对选择目标传输路径的具体实现方式进行限定。在一种可能的实现方式中,预先配置的传输路径以源地址-目标地址对的形式存储(更具体的,可以以查找表形式存储),将待传输数据在片上系统的源地址和目标地址作为源地址-目标地址对索引,与预先配置的源地址-目标地址对进行匹配,如果匹配成功,表示有直达路径,匹配成功的传输路径作为模板传输路径;如果匹配成功的传输路径不止一条,可以按照预定的策略选择其中一条作为模板传输路径,本公开不对选择策略进行限定,可以根据实际需求/实际情况制定选择策略;如果匹配不成功,表示没有直达路径,那么,可以按照预定的路由策略选择两个甚至更多的传输路径作为目标传输路径,本公开不对路由策略进行限定,可以根据实际需求/实际情况制定路由策略。本公开实施例中,如果待传输数据在片上系统的源地址与目标地址之间需要两条甚至更多目标传输路径,那么,对于相邻的两条目标传输路径而言,在前的目标传输路径称为上级目标传输路径,在后的目标传输路径称为下级目标传输路径。
本公开不对为目标传输路径分配目标DMA控制器的具体实现方式进行限定。在一种可能的实现方式中,分别以各个目标传输路径的源地址-目标地址对作为索引,与片上系统的各个DMA控制器的可用源地址-可用目标地址对进行匹配,匹配成功的DMA控制器分配给对应的目标传输路径。一旦匹配成功,不再进行查找;也可以以遍历的方式进行匹配,如果有两个甚至更多的匹配结果,则按照预定的选择策略选择一个DMA控制器作为该目标传输路径对应的目标DMA控制器,本公开不对选择策略的具体内容进行限定。优选的,在分配目标DMA控制器时,可以考虑DMA控制器的数据传输性能,相应的,在制定上述选择策略时,可以将DMA控制器的数据传输性能作为选择依据。如果根据DMA控制器的数据传输性能分配目标DMA控制器,还可以先根据数据传输性能筛选候选DMA控制器,然后通过地址索引从候选DMA控制器中匹配目标DMA控制器。根据数据传输性能分配目标DMA控制器的目的是使得分配的目标DMA控制器的数据传输性能满足对应的目标传输路径的数据传输性能要求,至于具体如何匹配,本公开对此不做限定。作为举例而非限定,将目标传输路径按照数据传输性能要求降序排序,并将DMA控制器按照数据传输性能降序排序,首先为数据传输性能要求最高的目标传输路径分配目标DMA控制器,具体的,从数据传输性能最高的DMA控制器开始进行地址匹配,直至匹配成功,将匹配成功的DMA控制器作为该目标传输路径的DMA控制器,再为数据传输性能要求次高的目标传输路径分配目标DMA控制器,直至为所有目标传输路径分配目标DMA控制器。其中,目标传输路径的数据传输性能要求根据目标传输路径源地址所在模块的数据传输性能和/或目标地址所在模块的数据传输性能确定;作为举例而非限定,将其中的最优数据传输性能确定为目标传输路径的数据传输性能要求。优选的,在分配目标DMA控制器时,还可以考虑DMA控制器的负载,相应的,在制定上述选择策略时,可以将DMA控制器的负载作为选择依据。如果根据DMA控制器的负载分配目标DMA控制器,还可以先根据负载筛选候选DMA控制器,然后通过地址索引从候选DMA控制器中匹配目标DMA控制器。根据负载分配目标DMA控制器的目的是充分利用片上系统的DMA资源,提高数据传输效率,至于具体如何匹配,本公开对此不做限定。作为举例而非限定,可以分配空闲DMA控制器作为目标DMA控制器,也可以分配负载率小于设定值的DMA控制器作为目标DMA控制器。
上述实施例中,如果有两条甚至更多的目标传输路径,则对应有两个甚至更多的目标DMA控制器,需要分别向每个目标DMA控制器发送数据传输指令。其中一种实现方式中,上级目标传输路径完成待传输数据的搬运,向为下级目标传输路径分配的DMA控制器发送数据传输指令。在另一种实现方式中,待上述待传输数据在上级目标传输路径上的搬运进度达到预设条件,向为下级目标传输路径分配的目标DMA控制器发送数据传输指令。以图形处理芯片为例,现有技术中,需要等待传输数据从DDR-T全部搬运至DDR-S,才会启动DDR-S到GPU Core(Graphics Processing Unit Core,图形处理器核)的DMA传输。而实际上,GPUCore并不需要接收到全部数据即可开始工作,因此,存入DDR-S的数据只要满足GPU Core工作要求,即可开始DDR-S到GPU Core的DMA传输。也就是说,下级目标传输路径上的DMA传输不需要等待上级目标传输路径上的传输完成即可启动,从而进一步提高DMA传输效率。本公开不对搬运进度的预设条件的具体内容和形式进行限定,可以根据实际需求进行条件设置。
本公开实施例中,如果针对同一目标地址有两个或更多的数据传输任务,可能会导致任务冲突,为避免这一情况发生,可以为传输路径设置优先级。那么,当相同目标地址上存在传输冲突时(体现在有至少两个目标地址相同且未完成传输任务的目标传输路径(称为第一目标传输路径)),优先保证高优先级传输路径的DMA传输,即优先级高的第一目标传输路径分配的DMA控制器先于为优先级低的第一目标传输路径分配的DMA控制器收到数据传输指令;如果优先级相同,则按照传输需求的先后确定DMA传输的先后;如果优先级相同且同时接收到的传输需求,则按照轮询的方式进行DMA传输。
在上述任一DMA调度器的实施例基础上,数据传输指令中可以携带数据拆分信息,数据拆分信息用于指示单次搬运的拆分数据,拆分数据为待传输数据的一部分。
本公开实施例提供的DMA调度器适用于各类片上系统芯片,下面以图形处理芯片为例,对本公开实施例提供的DMA调度器及其工作过程进行详细说明。
图2所示为单die(晶片)图形处理芯片,包括多个GPU核、通用DMA控制器、DMA调度器、PCIE控制器、应用处理器、内存控制器、显示控制器、视频编码器、视频解码器和片上网络。
其中,GPU核、PCIE控制器、应用处理器、内存控制器、显示控制器、视频编码器和视频解码器中分别内置有DMA控制器。
上述GPU核用于处理绘图的指令,根据绘图指令,执行图像渲染的Pipeline,还可以用于执行其他运算指令;
上述通用DMA控制器以及各个模块内部的DMA控制器,用于执行主机端到图形处理系统内存(例如显卡内存)之间的数据搬移,例如,通过DMA将3D画图的顶点(vertex)数据从主机端搬到图形处理系统内存;
上述DMA调度器用于根据本公开实施例提供的方法进行DMA传输调度;
上述PCIe控制器是和主机通信的接口,实现PCIe协议,使图形处理芯片通过PCIe接口连接到主机上,主机上运行了图形API以及显卡的驱动等程序;
上述应用处理器用于图形处理芯片上各个模块任务的调度,例如GPU核渲染完一帧图后通知应用处理器,应用处理器再启动显示控制器将GPU核渲染完的图显示到屏幕上;
上述内存控制器用于连接图形处理系统内存,以便将图形处理芯片上的数据保存到图形处理系统内存;
上述显示控制器用于将图形处理系统内存里的frame buffer通过显示接口(HDMI, DP等)输出到显示器上;
上述视频解码器可以将主机硬盘上的编码的视频解码成能显示的画面;
上述视频编码器可以将主机硬盘上原始的视频码流编码成指定的格式返回给主机;
上述片上网络用于图形处理系统上各个主(master)和从(salve)之间的数据交换,本实施例中,片上网络包括配置总线、数据通信网络、通信总线等等。
图2所示的图形处理芯片上电后,各个模块进行初始化。其中,主机端软件(或片上软件)在DMA调度器初始化过程中进行如下配置:
各个DMA控制器的可用源地址和可用目标地址;
各个DMA控制器的数据传输带宽,本实施例中,该项配置信息为数据传输带宽的相对值,具体的,通用DMA控制器:10,DMA-D:5,DMA-D:4,DMA-G:2,DMA-VD:1,DMA-VC:1,DMA-M:1,DMA-C:1;
可用的传输路径,本实施例中,可用的传输路径至少包括:PCIe控制器—>内存中的DDR-T区域(以下简称DDR-T),DDR-T—>内存中的DDR-S区域(以下简称DDR-S),DDR-S—>GPU核,DDR-S—>显示控制器,GPU核—>DDR-S,GPU核—>显示控制器;
各个传输路径的优先级,本实施例中,GPU核—>显示控制器的优先级设置为最高,其余传输路径具有相同的较低优先级;
下级DMA传输启动的最小数据量需求,本实施例中,以GPU核作为目标地址的传输路径为例,假设GPU核启动所需要的最小数据量为1024字节,那么,可以将所有下级DMA传输是以GPU核作为目标地址的传输路径的最小数据量需求配置为1024字节;应当指出的是,考虑到传输延迟,下级DMA传输启动的最小数据量需求也可以略小于对应模块启动所需要的最小数据量;
数据拆分参数,包括拆分有效指示信息(本实施例中设置为“有效”)和数据拆分信息(本实施例中设置为1024字节)。
本实施例中,上述各项初始化配置信息保存在配置寄存器中,以便DMA调度器查询。
当主机的图形API向图形处理芯片发送绘图指令,要求对图像帧进行渲染,该绘图指令包含数据传输请求,数据传输请求中携带待传输数据在图形处理芯片上的源地址和目标地址,以及数据长度。待传输数据例如包括图像帧中各个物体的顶点坐标信息,需要从主机端搬运至图形处理系统内存。
本公开实施例中,DMA调度器响应绘图指令,获取待传输数据的源地址(PCIe控制器)和目标地址(DDR-S),将该源地址作为索引遍历配置寄存器中的各个传输路径的源地址,每得到一个匹配结果,将匹配得到的传输路径的目标地址与DDR-S进行比较;本实施例中,没有匹配结果的目标地址与DDR-S相同,接下来,以匹配结果中的各个目标地址为索引遍历配置寄存器中的各个传输路径的源地址,每得到一个匹配结果,将匹配得到的传输路径的目标地址与DDR-S进行比较;至此,确定出目标传输路径为:PCIe控制器—>DDR-T,以及DDR-T—>DDR-S。
DMA调度器分别为上述两个目标传输路径分配目标DMA控制器,具体过程如下:
首先根据各个DMA控制器的可用源地址和可用目标地址,分别确定两个目标传输路径的第一候选DMA控制器,候选DMA控制器的可用源地址包括目标传输路径的源地址,候选DMA控制器的可用目标地址包括目标传输路径的目标地址;
如果只有一个第一候选DMA控制器,则将该第一候选DMA控制器分配给对应的目标传输路径;
如果有两个甚至更多第一候选DMA控制器,从目标传输路径的第一候选DMA控制器中选择数据传输带宽不小于目标传输路径数据传输带宽需求的DMA控制器作为第二候选DMA控制器,本实施例中,目标传输路径的数据传输带宽需求为目标传输路径的源地址、目标地址所在模块的接口带宽的最小值;以PCIe控制器—>DDR-T为例,PCIe控制器的接口带宽为10Gbps,DDR-T的接口带宽为40Gbps,那么,该目标传输路径的数据传输需求为10Gbps;
如果只有一个第二候选DMA控制器,则将该第二候选DMA控制器分配给对应的目标传输路径;
如果有两个甚至更多第二候选DMA控制器,按照数据传输带宽升序,依次判断各个第二候选DMA控制器是否空闲,当有空闲的第二候选DMA控制器,将其分配给对应的目标传输路径,本实施例中,为PCIe控制器—>DDR-T分配的目标DMA控制器为DMA-P,为DDR-T—>DDR-S分配的目标DMA控制器为通用DMA控制器;如果没有空闲的第二候选DMA控制器,则将数据传输带宽最大或者负载最轻的第二候选DMA控制器分配给对应的目标传输路径。
DMA调度器向DMA-P发送数据传输指令,其中携带PCIe控制器—>DDR-T的源地址和目标地址,以及数据拆分信息。DMA-P根据该数据传输指令将待传输数据拆分为多个1024字节大小的数据包,从PCIe控制器搬运至DDR-T。DMA-P每完成一个数据包的搬运,向DMA调度器发送一次信号,DMA调度器根据接收到的信号计数,从而判断搬运至DDR-T的数据量。
DMA调度器检测搬运至DDR-T的数据量,待数据量达到1024字节,向通用DMA控制器发送发送数据传输指令,其中携带DDR-T—>DDR-S的源地址和目标地址,以及数据拆分信息。通用DMA控制器根据该数据传输指令将待传输数据拆分为多个1024字节大小的数据包,从DDR-T搬运至DDR-S。通用DMA控制器每完成一个数据包的搬运,向DMA调度器发送一次信号,DMA调度器根据接收到的信号计数,从而判断搬运至DDR-S的数据量。待搬运数据全部搬运至DDR-S,DMA调度器向主机端反馈DMA传输完成。
以PCIe控制器—>DDR-T的数据搬运为例,上述实施例中,如果向DMA-P发送数据传输指令之前,有到DDR-T的数据搬运未完成,那么,DMA调度器进行传输路径的优先级比较,如果本次需要搬运的PCIe控制器—>DDR-T的优先级较高,则向DMA-P发送数据传输指令,如果优先级相同,可以采用轮询的方式进行数据搬运,如果本次需要搬运的PCIe控制器—>DDR-T的优先级较低,则待在前的数据搬运完成后,再向DMA-P发送数据传输指令。
本公开实施例还提供一种片上系统芯片,包括上述任一实施例所述的DMA调度器。
本公开实施例还提供一种电子组件,该电子组件包括上述任一实施例中所述的片上系统芯片。在一些使用场景下,该电子组件的产品形式体现为显卡;在另一些使用场景下,该电子组件的产品形式体现为CPU主板。
本公开实施例还提供一种电子设备,该电子设备包括上述的电子组件。在一些使用场景下,该电子设备的产品形式是便携式电子设备,例如智能手机、平板电脑、VR设备等;在一些使用场景下,该电子设备的产品形式是个人电脑、游戏主机、工作站、服务器等。
基于相同的发明构思,本公开实施例还提供根据本公开的另一方面,还提供一种DMA调度方法,应用于片上系统中的DMA调度器,如图3所示,该DMA调度方法至少包括如下操作:
步骤301、响应于数据传输请求,从预先配置的多条传输路径中选择至少一条目标传输路径,至少一条目标传输路径构成从待传输数据在片上系统的源地址到待传输数据在片上系统的目标地址的数据传输通路;
步骤302、为每条目标传输路径分配目标DMA控制器,目标DMA控制器的可用源地址包括对应的目标传输路径的源地址,目标DMA控制器的可用目标地址包括对应的目标传输路径的目标地址;
步骤303、向目标DMA控制器发送数据传输指令,以便目标DMA控制器按照对应的目标传输路径搬运待传输数据。
其中,若目标传输路径有两条或者两条以上,那么,分别向各个目标DMA控制器发送数据传输指令。其中一种实现方式中,上级目标传输路径完成待传输数据的搬运,向为下级目标传输路径分配的DMA控制器发送数据传输指令。在另一种实现方式中,待上述待传输数据在上级目标传输路径上的搬运进度达到预设条件,向为下级目标传输路径分配的目标DMA控制器发送数据传输指令。
在上述任一方法实施例的基础上,为每条目标传输路径分配目标DMA控制器,其实现方式可以包括:至少根据DMA控制器的数据传输性能,为每条目标传输路径分配目标DMA控制器,目标DMA控制器的数据传输性能满足对应的目标传输路径的数据传输性能要求。
其中,数据传输性能可以但不仅限于包括数据传输带宽。
在上述任一方法实施例的基础上,为每条目标传输路径分配目标DMA控制器的具体实现方式可以包括:根据DMA控制器的数据传输性能和负载,为每条目标传输路径分配目标DMA控制器。
在此基础上,可选地,目标DMA控制器为空闲的DMA控制器。
在上述任一方法实施例的基础上,为优先级高的第一目标传输路径分配的DMA控制器先于为优先级低的第一目标传输路径分配的DMA控制器收到数据传输指令,第一目标传输路径包括目标地址相同且未完成传输任务的目标传输路径。
在此基础上,可选地,对应的第一目标传输路径优先级相同的情况下,对应在先传输请求的DMA控制器先于对应在后传输请求的DMA控制器收到数据传输指令。
在上述任一方法实施例的基础上,可选地,数据传输指令中携带数据拆分信息,数据拆分信息用于指示单次搬运的拆分数据,拆分数据为待传输数据的一部分。
应当指出的是,上述图形处理方法与上述图形处理器基于同样的发明构思。因此,方法中各个步骤的具体实现方式及涉及到的名词解释可以参照上述实施例的描述,此处不再赘述。
尽管已描述了本公开的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本公开范围的所有变更和修改。
显然,本领域的技术人员可以对本公开进行各种改动和变型而不脱离本公开的精神和范围。这样,倘若本公开的这些修改和变型属于本公开权利要求及其等同技术的范围之内,则本公开也意图包含这些改动和变型在内。
Claims (21)
1.一种DMA调度器,应用于片上系统,其中,所述DMA调度器被配置为:
响应于数据传输请求,从预先配置的多条传输路径中选择至少一条目标传输路径,所述至少一条目标传输路径构成从待传输数据在所述片上系统的源地址到所述待传输数据在所述片上系统的目标地址的数据传输通路;
为每条目标传输路径分配目标DMA控制器,所述目标DMA控制器的可用源地址包括对应的目标传输路径的源地址,所述目标DMA控制器的可用目标地址包括对应的目标传输路径的目标地址;
向所述目标DMA控制器发送数据传输指令,以便所述目标DMA控制器按照对应的目标传输路径搬运所述待传输数据。
2.根据权利要求1所述的DMA调度器,其中,为了实现为每条目标传输路径分配目标DMA控制器,所述DMA调度器被配置为:
至少根据DMA控制器的数据传输性能,为每条目标传输路径分配目标DMA控制器,目标DMA控制器的数据传输性能满足对应的目标传输路径的数据传输性能要求。
3.根据权利要求2所述的DMA调度器,其中,数据传输性能包括数据传输带宽。
4.根据权利要求2所述的DMA调度器,其中,为了实现为每条目标传输路径分配目标DMA控制器,所述DMA调度器被配置为:
根据DMA控制器的数据传输性能和负载,为每条目标传输路径分配目标DMA控制器。
5.根据权利要求4所述的DMA调度器,其中,所述目标DMA控制器为空闲的DMA控制器。
6.根据权利要求1所述的DMA调度器,其中,为优先级高的第一目标传输路径分配的DMA控制器先于为优先级低的第一目标传输路径分配的DMA控制器收到数据传输指令,所述第一目标传输路径包括目标地址相同且未完成传输任务的目标传输路径。
7.根据权利要求6所述的DMA调度器,其中,对应的第一目标传输路径优先级相同的情况下,对应在先传输请求的DMA控制器先于对应在后传输请求的DMA控制器收到数据传输指令。
8.根据权利要求1所述的DMA调度器,其中,为了实现向为下级目标传输路径分配的目标DMA控制器发送数据传输指令,所述DMA调度器被配置为:
待所述待传输数据在上级目标传输路径上的搬运进度达到预设条件,向为下级目标传输路径分配的目标DMA控制器发送数据传输指令。
9.根据权利要求1所述的DMA调度器,其中,所述数据传输指令中携带数据拆分信息,所述数据拆分信息用于指示单次搬运的拆分数据,所述拆分数据为所述待传输数据的一部分。
10.一种片上系统,其中,包括权利要求1至9任一项所述的DMA调度器。
11.一种电子组件,其中,包括权利要求10所述的片上系统。
12.一种电子设备,其中,包括权利要求11所述的电子组件。
13.一种DMA调度方法,其中,应用于片上系统中的DMA调度器,所述DMA调度方法至少包括:
响应于数据传输请求,从预先配置的多条传输路径中选择至少一条目标传输路径,所述至少一条目标传输路径构成从待传输数据在所述片上系统的源地址到所述待传输数据在所述片上系统的目标地址的数据传输通路;
为每条目标传输路径分配目标DMA控制器,所述目标DMA控制器的可用源地址包括对应的目标传输路径的源地址,所述目标DMA控制器的可用目标地址包括对应的目标传输路径的目标地址;
向所述目标DMA控制器发送数据传输指令,以便所述目标DMA控制器按照对应的目标传输路径搬运所述待传输数据。
14.根据权利要求13所述的方法,其中,所述为每条目标传输路径分配目标DMA控制器,包括:
至少根据DMA控制器的数据传输性能,为每条目标传输路径分配目标DMA控制器,目标DMA控制器的数据传输性能满足对应的目标传输路径的数据传输性能要求。
15.根据权利要求14所述的方法,其中,数据传输性能包括数据传输带宽。
16.根据权利要求14所述的方法,其中,所述为每条目标传输路径分配目标DMA控制器,包括:
根据DMA控制器的数据传输性能和负载,为每条目标传输路径分配目标DMA控制器。
17.根据权利要求16所述的方法,其中,所述目标DMA控制器为空闲的DMA控制器。
18.根据权利要求13所述的方法,其中,为优先级高的第一目标传输路径分配的DMA控制器先于为优先级低的第一目标传输路径分配的DMA控制器收到数据传输指令,所述第一目标传输路径包括目标地址相同且未完成传输任务的目标传输路径。
19.根据权利要求18所述的方法,其中,对应的第一目标传输路径优先级相同的情况下,对应在先传输请求的DMA控制器先于对应在后传输请求的DMA控制器收到数据传输指令。
20.根据权利要求13所述的方法,其中,所述向所述目标DMA控制器发送数据传输指令,进一步包括:
待所述待传输数据在上级目标传输路径上的搬运进度达到预设条件,向为下级目标传输路径分配的目标DMA控制器发送数据传输指令。
21.根据权利要求13所述的方法,其中,所述数据传输指令中携带数据拆分信息,所述数据拆分信息用于指示单次搬运的拆分数据,所述拆分数据为所述待传输数据的一部分。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311330695.5A CN117112465B (zh) | 2023-10-16 | 2023-10-16 | Dma调度器及方法、片上系统、电子组件及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311330695.5A CN117112465B (zh) | 2023-10-16 | 2023-10-16 | Dma调度器及方法、片上系统、电子组件及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117112465A true CN117112465A (zh) | 2023-11-24 |
CN117112465B CN117112465B (zh) | 2024-10-15 |
Family
ID=88796719
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311330695.5A Active CN117112465B (zh) | 2023-10-16 | 2023-10-16 | Dma调度器及方法、片上系统、电子组件及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117112465B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118175111A (zh) * | 2024-04-16 | 2024-06-11 | 中昊芯英(杭州)科技有限公司 | 一种数据传输方法、dma控制器、设备及存储介质 |
CN118447108A (zh) * | 2023-12-28 | 2024-08-06 | 荣耀终端有限公司 | 一种数据处理方法及电子设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1117318A (zh) * | 1993-11-01 | 1996-02-21 | 艾利森.Ge.流动通讯有限公司 | 多处理器数据存储器共享 |
US20060161694A1 (en) * | 2005-01-14 | 2006-07-20 | Fujitsu Limited | DMA apparatus |
US20140281335A1 (en) * | 2013-03-15 | 2014-09-18 | Kun Xu | System and method for assigning memory access transfers between communication channels |
US9684615B1 (en) * | 2015-01-08 | 2017-06-20 | Altera Corporation | Apparatus and methods for multiple-channel direct memory access |
CN110008156A (zh) * | 2019-03-27 | 2019-07-12 | 无锡海斯凯尔医学技术有限公司 | 数据传输的装置、方法及可读存储介质 |
CN111683008A (zh) * | 2020-05-28 | 2020-09-18 | 南京信息职业技术学院 | 基于sdn的传输网业务路径调度、保护方法及系统 |
CN112256605A (zh) * | 2020-11-03 | 2021-01-22 | 蔺建琪 | 安全dma控制器及数据搬运方法 |
CN112559405A (zh) * | 2020-12-11 | 2021-03-26 | 中国电子科技集团公司第四十七研究所 | 一种具有令牌桶结构的多通道dma的控制方法和装置 |
-
2023
- 2023-10-16 CN CN202311330695.5A patent/CN117112465B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1117318A (zh) * | 1993-11-01 | 1996-02-21 | 艾利森.Ge.流动通讯有限公司 | 多处理器数据存储器共享 |
US20060161694A1 (en) * | 2005-01-14 | 2006-07-20 | Fujitsu Limited | DMA apparatus |
US20140281335A1 (en) * | 2013-03-15 | 2014-09-18 | Kun Xu | System and method for assigning memory access transfers between communication channels |
US9684615B1 (en) * | 2015-01-08 | 2017-06-20 | Altera Corporation | Apparatus and methods for multiple-channel direct memory access |
CN110008156A (zh) * | 2019-03-27 | 2019-07-12 | 无锡海斯凯尔医学技术有限公司 | 数据传输的装置、方法及可读存储介质 |
CN111683008A (zh) * | 2020-05-28 | 2020-09-18 | 南京信息职业技术学院 | 基于sdn的传输网业务路径调度、保护方法及系统 |
CN112256605A (zh) * | 2020-11-03 | 2021-01-22 | 蔺建琪 | 安全dma控制器及数据搬运方法 |
CN112559405A (zh) * | 2020-12-11 | 2021-03-26 | 中国电子科技集团公司第四十七研究所 | 一种具有令牌桶结构的多通道dma的控制方法和装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118447108A (zh) * | 2023-12-28 | 2024-08-06 | 荣耀终端有限公司 | 一种数据处理方法及电子设备 |
CN118175111A (zh) * | 2024-04-16 | 2024-06-11 | 中昊芯英(杭州)科技有限公司 | 一种数据传输方法、dma控制器、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117112465B (zh) | 2024-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN117112465B (zh) | Dma调度器及方法、片上系统、电子组件及设备 | |
US8532098B2 (en) | System and method for virtual channel communication | |
US7640374B2 (en) | Data transfer apparatus by direct memory access controller | |
EP3255553B1 (en) | Transmission control method and device for direct memory access | |
CN114553635B (zh) | Dpu网络设备中的数据处理方法、数据交互方法及产品 | |
CN101937412B (zh) | 一种片上系统及其访问方法 | |
US5931936A (en) | Multiple interrupt controller and control method using an intelligent priority-decision mechanism | |
WO2022247105A1 (zh) | 一种任务调度方法、装置、计算机设备和存储介质 | |
US20100077193A1 (en) | Method and apparatus for assigning a memory to multi-processing unit | |
CN112711550B (zh) | Dma自动配置模块和片上系统soc | |
US7827343B2 (en) | Method and apparatus for providing accelerator support in a bus protocol | |
CN114020662B (zh) | 桥接模块、数据传输系统和数据传输方法 | |
CN111190842A (zh) | 直接存储器访问、处理器、电子设备和数据搬移方法 | |
CN112181887B (zh) | 数据传输方法及装置 | |
CN115658586A (zh) | 资源管理芯片、方法、电子设备及可读存储介质 | |
CN115994115B (zh) | 芯片控制方法、芯片组及电子设备 | |
CN115114042A (zh) | 存储数据访问方法、装置、电子设备和存储介质 | |
US20230153153A1 (en) | Task processing method and apparatus | |
CN113886310B (zh) | 桥接模块、数据传输系统和数据传输方法 | |
JP4856413B2 (ja) | 演算処理装置、情報処理装置、及び演算処理装置の制御方法 | |
CN115878333A (zh) | 进程组间的一致性判断方法、装置及设备 | |
CN115114192B (zh) | 存储器接口、功能核、众核系统和存储数据访问方法 | |
CN115658625A (zh) | 数据解压系统、图形处理系统、装置、设备及解压方法 | |
KR102326892B1 (ko) | 적응형 트랜잭션 처리 방법 및 이를 위한 장치 | |
CN113434441A (zh) | 一种dma传输方法、装置、控制器及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |