CN118092628A - 控制方法、控制装置、芯片及计算机可读存储介质 - Google Patents
控制方法、控制装置、芯片及计算机可读存储介质 Download PDFInfo
- Publication number
- CN118092628A CN118092628A CN202211457754.0A CN202211457754A CN118092628A CN 118092628 A CN118092628 A CN 118092628A CN 202211457754 A CN202211457754 A CN 202211457754A CN 118092628 A CN118092628 A CN 118092628A
- Authority
- CN
- China
- Prior art keywords
- algorithm
- digital signal
- signal processor
- processed
- dsp
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 64
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 178
- 230000008569 process Effects 0.000 claims description 26
- 238000004590 computer program Methods 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 abstract description 24
- 230000008878 coupling Effects 0.000 abstract description 9
- 238000010168 coupling process Methods 0.000 abstract description 9
- 238000005859 coupling reaction Methods 0.000 abstract description 9
- 238000005457 optimization Methods 0.000 abstract description 7
- 230000001105 regulatory effect Effects 0.000 abstract description 4
- 235000019800 disodium phosphate Nutrition 0.000 description 116
- 238000012545 processing Methods 0.000 description 23
- 238000010586 diagram Methods 0.000 description 13
- 230000000694 effects Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 230000001276 controlling effect Effects 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 230000003068 static effect Effects 0.000 description 5
- 101150115013 DSP1 gene Proteins 0.000 description 3
- 101150052726 DSP2 gene Proteins 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 238000007667 floating Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000004069 differentiation Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000005484 gravity Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000000265 homogenisation Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Power Sources (AREA)
Abstract
提供了一种控制方法、控制装置、芯片及计算机可读存储介质。该控制方法包括:确定第一数字信号处理器的待处理算法的需求算力;根据待处理算法的需求算力,调整第一数字信号处理器的工作电压。本申请实施例根据算法的需求算力,调整第一数字信号处理器的工作电压,调整时钟频率,有助于减少数字信号处理器的性能和业务场景的耦合关系,使数字信号处理器性能的控制更加精细化,有助于满足需求性能及系统功耗优化。
Description
技术领域
本申请实施例涉及数字信号处理技术领域,并且更为具体地,涉及一种控制方法、控制装置、芯片及计算机可读存储介质。
背景技术
随着智能手机的快速发展,相机作为差异化的重心被各厂家重点布局,处理图像算力对于取得优异的图像效果十分关键。而数字信号处理器主要用于实时快速地实现各种数字信号处理算法,已成为手机处理图像算力的重要一环。
目前根据静态的业务场景,对数字信号处理器硬件进行动态电压与频率调节。但是手机中相机的业务场景非常复杂,而且不同场景之间的耦合也会增加整体调度的复杂度。根据业务场景进行DSP的动态电压与频率调节,往往会造成系统性能和功耗的优化效果不佳的问题。
发明内容
本申请实施例提供了一种控制方法、控制装置、芯片及计算机可读存储介质,下面对本申请实施例的各个方面进行介绍。
第一方面,提供一种控制方法,包括:确定第一数字信号处理器的待处理算法的需求算力;根据所述待处理算法的需求算力,调整所述第一数字信号处理器的工作电压。
第二方面,提供一种控制装置,包括:确定模块,用于确定第一数字信号处理器的待处理算法的需求算力;控制模块,用于执行以下操作:根据所述待处理算法的需求算力,调整所述第一数字信号处理器的工作电压。
第三方面,提供一种芯片,包括:存储器,用于存储代码;处理器,用于执行所述存储器中存储的代码,以执行如第一方面所述的控制方法。
第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序用于执行如第一方面所述的控制方法。
本申请实施例根据算法的需求算力,调整第一数字信号处理器的工作电压,调整时钟频率,有助于减少数字信号处理器的性能和业务场景的耦合关系,使数字信号处理器性能的控制更加精细化,有助于满足需求性能及系统功耗优化的要求。
附图说明
图1是根据业务场景对DSP的电压进行控制的示意图。
图2是本申请实施例提供的控制方法的流程示意图。
图3是图1方法的一种可能的实现方式的示意图。
图4是本申请实施例提供的DSP算法的构成示意图。
图5是本申请实施例提供的基于优先级的算法控制的示意图。
图6是图5的控制方法的流程示意图。
图7是本申请实施例提供的控制装置的结构示意图。
图8是本申请实施例提供的芯片的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请的一部分实施例,而不是全部的实施例。
随着智能手机的快速发展,手机的同质化日益严重,而相机(Camera)作为差异化的重心被各厂家重点布局。为提高相机的竞争力,采用更先进的图像处理技术,以达到最优的成像效果,而图像的处理对算法依赖性较高,需要不断持续优化。数字信号处理器(digital signal process,DSP)是一种特别适合于数字信号处理运算的微处理器,其主要应用是实时快速地实现各种数字信号处理算法,因此DSP已成为手机处理图像算力的重要一环。
DSP芯片一般具有如下主要特点:拥有专用的硬件乘法器,如在一个指令周期内可完成一次乘法和一次加法;程序和数据空间分开,可以同时访问指令和数据;特殊的DSP指令,如矢量化运算,并行化操作等;甚至有的DSP内置了神经网络处理模块。特殊的硬件结构,使得DSP在运行算法时具有运算时间稳定,功耗低等特点。
作为手机处理图像算力的重要一环,DSP的性能直接关系到图像处理效果的优劣。DSP的性能主要有两个影响因素:(1)指令集的能力;(2)每一条指令的平均执行时间。其中,每一条指令的平均执行时间又可以分为:每条指令所需的平均执行周期(cycles perinstruction,CPI),以及最大时钟频率。通常时钟频率越高,DSP的性能越高,能够提供的算力越大。
相机在拍摄时一般可以分为多个不同的业务场景,如普通预览、正常拍照、人像拍摄等。传统DSP硬件的动态电压与频率调节(dynamic voltage frequency scaling,DVFS)技术是根据静态的业务场景来整体对DSP的工作电压进行调整。
图1是根据业务场景对DSP的电压进行控制的示意图。如图1所示,场景可以分为普通预览、正常拍照、人像拍摄等。在相机的拍摄场景,DSP初始化时通常就设置好主时钟频率,同时预设好几个DSP频率档位,根据不同的场景来主动控制DSP的时钟频率。DSP的时钟频率通常受两个方面的限制:1)温度过高的情况对时钟频率的限制需求;2)算法对DSP频率的需求。通常时钟频率越快性能越好,算力越高,对应的工作电压也越高,同时系统功耗越大。DSP的性能与功耗通常是互相制约的。根据时钟频率,调整DSP的工作电压使其满足时钟频率档位的最低电压要求,以调节DSP的性能与功耗。
但是手机中相机的业务场景非常复杂,而且不同场景之间的耦合也会增加整体调度的复杂度,因此业务场景的划分是否精确,会导致DVFS调整的正确性及准确些性。有些业务场景的图像处理会包含多个算法,例如,在相机的正常拍摄过程中需要调用多种算法(如Grid、人脸识别、图像融合等),算法在DSP中执行后才输出视频帧,即视频帧经过多算法处理可以在线输出。因此根据业务场景的进行DSP的动态电压与频率调节,往往会造成系统性能和功耗的优化效果不佳的问题。如当前DSP频率无法满足算法的需求算力,从而影响DSP算法的效率;或者当前DSP的设置频率及电压相对算法的需求算力设置过高,存在功耗过大的问题。
需要说明的是,上文提及的相机模块根据业务场景的进行DSP的动态电压与频率调节,会造成DSP性能和功耗的优化效果不佳的问题仅是一个示例,本申请实施例可应用于DSP系统性能和功耗的优化效果不佳的任意类型的场景。
因此,如何开发一种合理优化DSP性能和功耗的控制方案是需要解决的问题。
基于此,本申请实施例提出一种控制方法,根据DSP的待处理算法的算力需求,调整其需要的工作电压及时钟频率。下面对本申请实施例进行详细描述。
图2是本申请实施例提供的一种控制方法的流程示意图。图2的方法可以包括步骤S210至步骤S220,下面对这些步骤进行详细描述。
在步骤S210中,确定第一数字信号处理器的待处理算法的需求算力。
其中,第一数字信号处理器是将处理待处理算法的数字信号处理器。在一些实施例中,图像处理系统只有一个数字信号处理器,则该数字信号处理器即为第一数字信号处理器。在一些实施例中,图像处理系统可以包括多个数字信号处理器,则第一数字信号处理器可以任一个将处理待处理算法的数字信号处理器。
在一些实现方式中,根据多个数字信号处理器的负载情况,将待处理算法调度至第一数字信号处理器。例如,控制侧可以判断不同DSP硬件负载的大小,动态的将新任务(待处理算法)分配给负载相对较低的DSP计算,即将待处理算法调度至第一数字信号处理器,以使多个DSP达到负载均衡的调度效果。
广义的算力是计算机设备或计算/数据中心处理信息的能力,是计算机硬件和软件配合共同执行某种计算需求的能力。狭义的算力是一个计算中心具备的理论上最大的每秒浮点运算次数(FLOPS)。但是,计算中心不光具有运算能力,还有数据存储与访问能力、与外界的数据交换能力、数据显示能力等。
硬件配置确定后,通常DSP硬件的性能指标也是确定的。DSP的性能指标包括但不限于算力,如每一条指令的平均执行时间、每秒钟浮点运算次数、时延(Latency)、功耗(Power)和存储空间等。由于DSP要运行的所有算法都是确定的,可以预知的,因此可以预先确定这些算法的需求算力。例如,根据DSP的硬件指标,确定这些算法的需求算力对应的每秒钟浮点运算次数等。
在一些实现方式中,算法的运行时间(或执行时间)也是可以预期的。例如,在仿真软件中设定好对紧耦合存储器(tightly coupled memory,TCM)和双倍速率同步动态随机存储器(double data rate SDRAM,简称为DDR)的访问延迟之后,利用算法在仿真软件中多次模拟,可以较为准确的确定不同算法的预期运行时间。例如可以利用多次循环(cycles)衡量运算的资源消耗,在DSP硬件时钟频率确定后,可以换算出算法的预期运行时间。
在步骤S220中,根据待处理算法的需求算力,调整第一数字信号处理器的工作电压。
DSP的性能主要影响有每一条指令的平均执行时间。而每一条指令的平均执行时间又主要取决于每条指令所需的平均执行周期,以及最大时钟频率。即时钟频率越高,DSP的性能越高,能够提供的算力越大。对于一个确定的DSP,当需求算力确定后,所需的DSP的时钟频率也是确定的。在一些实现方式中,可以预先建立并存储需求算力与DSP的时钟频率的映射关系,例如以表格的形式存储在DSP的控制侧。
DSP的时钟频率越高,对应的工作电压也越高。工作电压越高,系统的功耗越大,DSP的性能与功耗通常是互相制约的。根据时钟频率,调整DSP的工作电压使其满足时钟频率档位的最低电压要求,以调节DSP的性能与能耗,使DSP在满足性能要求的前提下,功耗较小。在调用DSP的算法时可以传入算法的需求算力,DSP调度侧根据需求算力进行时钟频率的调整。
在一些实现方式中,也可以预先建立并存储需求算力与DSP的工作电压的映射关系,例如以表格的形式存储在DSP的控制侧。在调用DSP的算法时传入算法的需求算力,DSP调度侧根据需求算力进行工作电压的调整。图3是图2控制方法的一种可能的实现方式的控制示意图。如图3所示,例如在DSP控制器310调用DSP1的算法1时,传入或查找算法1的需求算力,DSP控制器310根据需求算力进行DSP1的时钟频率及电压调整。又比如在DSP控制器310调用DSP2的算法n时,传入或查找算法n的需求算力,DSP控制器310根据需求算力进行DSP2相应的时钟频率及电压调整。
在一些实现方式中,当待处理算法的需求算力较低时,可以先降低时钟频率,再降低工作电压。又比如,当待处理算法A的需求算力较高时,可以先升高工作电压,再升高时钟频率。本申请实施例根据算法的需求算力,调整DSP的工作电压,以及调整时钟频率,有助于减少DSP的性能和业务场景的耦合关系,有助于DSP性能的控制更加精确细化,使整体系统的负载均衡优化,以达到满足需求性能及系统功耗优化的状态。
由于不同算法的调用时间、重要性不同,而硬件资源DSP的数量有限。因此,在DSP面对多个算法需要执行时,需要进行调度,选择一个算法将其送入DSP执行。但因为DSP硬件的特殊性,其通用性相比常规的图形处理器(graphics processing unit,GPU)、CPU等较差,使得常规的调度方式无法轻易移植到DSP平台中,对DSP的使用仅限于简单的任务调度,例如随用随开,单进单出的调度模式。
应用图像算法通常可以包括同步机制和异步机制。同步机制即算法调用方需要等待结果将其使用于后续的调用环境。异步机制即被调用的算法可以在当前帧时间内完成计算,计算结果可以用于后续帧的计算中使用。异步机制或者两种的结合机制提供了抢占式调用策略的可行性。
由于不同算法的调用时间不同、重要性不同,可以为算法设置不同的优先级,即采用最高优先级(highest priority first,HPF)调度方法。在最高优先级调度方法中,进程调度每次将CPU分配给就绪队列中具有最高优先级的进程。其核心是确定进程的优先级,一般可以分为静态优先级和动态优先级。
例如可以在算法创建的时候,预先设置一个静态优先级。静态优先级也称为初始优先级、预设优先级,是在创建时根据算法的初始特性和用户要求确定,确定后通常不再改变,即在整个运行期间不会变化。动态优先级是创建时确定初始优先级,在进程运行过程中做适当修改。如根据等待时间、或根据占有的CPU时间修改优先级,动态优先级是一种抢占式的调度方法,调度效果好。
在一些实现方式中,可以根据待处理算法的优先级,对待处理算法在第一数字信号处理器的执行过程进行调度。基于多个待处理算法的优先级,形成算法的执行请求序列,DSP从算法的执行请求序列中选择最高优先级的算法执行,即DSP根据执行请求序列依次运行算法。
在一些实现方式中,如果待调度算法的优先级高于第一数字信号处理器处理的当前算法,则控制第一数字信号处理器优先处理所述待调度算法;在待调度算法处理完毕之后,控制第一数字信号处理器继续处理当前算法。例如,如果算法A的优先级大于B的优先级,则先运行算法A,后运行算法B。
本申请实施例根据算法的需求算力,调整DSP的工作电压,调整时钟频率,有助于减少DSP的性能和业务场景的耦合关系,有助于DSP性能控制的精确细化,有助于满足需求性能及系统功耗优化的状态要求。
在一些实现方式中,DSP算法的镜像文件可以由基础镜像和程序镜像构成。其中基础镜像也称为系统镜像,主要包含DSP的操作系统、中断处理、算法调度过程等通用部分。程序镜像也称为算子镜像,本申请实施例对此叫法不作区分,程序镜像只包含不同算法的实现部分。即不同算法的基础镜像可以通用,不同算法的程序镜像则不同。例如同一DSP硬件的算法根据优先级进行抢占,支持抢占的算法编译时将实时操作系统(real timeoperation system,RTOS)作为硬件相关的基础镜像。即发生抢占时基础镜像的RTOS还是正常运行,这样可以在基础镜像不变的情况下动态的切换算法镜像。这样有助于减少算法数据的加载量及时间延迟,提高DSP的处理效率及性能。
图4是本申请实施例提供的DSP算法的构成示意图。如图4所示,基础镜像可以适用于不同算法,例如可以与算法1的程序镜像结合,以执行算法1;也可以与算法3的程序镜像结合,以执行算法3。
在编译阶段,为了兼容各个系统,在生成位置无关的代码的时候,通常使用-fPIC参数,即位置无关代码(position independent code,PIC)参数。算子镜像在编译的时候会添加-fPIC的编译选项,使得编译出来的可执行和可链接格式(executable and linkableformat,ELF)文件是地址无关的镜像。基础镜像则不需要添加-fPIC的编译选项,生成的是地址相关的ELF文件。
ELF格式是一种用于执行档、目的档、共享库和核心转储的标准文件格式。ELF文件由4部分组成,分别为ELF头(ELF header)、程序头(Program header)、节(Section)和节头(Section header)。
每个ELF文件都存在一个ELF header,用于存放描述整个文件的组织的信息,如:版本信息、入口信息、偏移信息等,程序执行也需要依靠其提供的信息。表1是ELF header的一种构成示意表。如表1所示,例如“Entry point address”为“0x2b0606c1”。
Program header描述的是一个段在文件中的位置、大小以及它被放进内存后所在的位置和大小。用于加载ELF文件,告诉系统如何在内存中创建映像。表2是Program header的一种构成示意表。如表2所示,Program header加载的偏移值(offset size)为“0x0003b4”时,程序对应的物理地址为“0x2a000400”。
下面对本申请实施例中算法镜像的加载过程进行介绍,可以包括以下几个主要步骤:
表1
表2
在步骤一,加载基础镜像。DSP运行的时候首先加载基础镜像,基础镜像加载完毕之后就可以使DSP开始运行了。不过此时因为没有加载算子镜像,内部处于空跑的状态。
在步骤二,加载算子镜像。在加载算子镜像的时候仅需要按照算子镜像的ELFheader的Program及Section的信息进行遍历,如表1所示。其中,ELF header结构中“Entrypoint address”即为跳转至算法镜像开始的起始地址。按照Program header和Sectionhead的信息获取Program和Section的偏移值(offset size)和物理地址,将Program部分直接复制到物理地址。如表2所示,Program header加载的偏移值(offset size)为“0x0003b4”,对应的物理地址为“0x2a000400”。
图5是本申请实施例提供的基于优先级的算法控制的示意图。如图5所示,该系统可以包括内核控制侧的通讯消息池510、DSP侧和调用侧。其中,DSP侧可以包括多个DSP,如DSP1、DSP2等,调用侧可以为MCU、GPU、神经网络处理器(neural-network processingunit,NPU)、或图像神经网络处理器(GNPU)等。
内核控制侧或称为DSP控制侧,简称为控制侧,例如可以为主控芯片。主控芯片获取当前数字信号处理器需要设置的时钟频率,通过通讯消息池(Mailbox)510发送给数字信号处理器。如可以通过通讯消息池510发出降频求或升频请求。通讯消息池是控制器主线上的一种通讯方式,通过调用通讯消息池作为获取信息的渠道及交互方式。
DSP算法优先级的控制侧接收来自不同调用方的调用指令,如MCU或GNPU的调用指令。其中调用指令可以包含算子名称,算子参数、算子算例及算子优先级等信息。如图5的左侧所示,任务序列中包括任务Task 1到Task k等k个算法任务。每个算法可以具有多个算子(Job)步骤。通常算法(algorithm)是为了达到某个目标,实施的一系列指令的过程,而指令包含算子和操作数。算子可以指进行某种“操作、动作或步骤”。多个算法可以具有不同的优先级,或有些算法具有相同的优先级。
控制侧需要完成基于优先级抢占的调度策略:即同等优先级任务按照先来先服务的原则调度,不同优先级的任务按照优先级高低的方式进行调度。控制侧不需要关注具体的业务逻辑,但需要完成算子调度的保序工作,即需要将DSP算法执行的结果和返回给业务层调用方的顺序匹配起来。图6是图5的控制方法的流程示意图。图6的方法可以包括步骤S610至步骤S670,下面对这些步骤进行详细描述。
在步骤S610,接收算法任务,加载算法的基础镜像。第一DSP运行的时候首先加载基础镜像,基础镜像加载完毕之后就可以使DSP开始运行了。
在步骤S620,加载算子镜像,执行具体的算法任务。
在步骤S630,判断待调度算法的优先级是否高于第一DSP运行的当前算法。如果否,则进入步骤S640;如果高于,则进入步骤S650。
在步骤S640,继续执行当前算法。高优先级算法在运行时,控制侧接收到同等优先级或低优先级的任务,将其放入到任务序列(Task queue)中等待前一个任务调度完成。
如果待处理算法中包括优先级相同的多个算法,在一些实现方式中,可以基于先进先出的方式调度多个算法。在一些实现方式中,也可以基于时间片轮转的方式调度多个算法。
在步骤S650,高优先级算法抢占DSP,保留低优先级算法的执行状态信息。低优先级算法在运行时,控制侧接收到高优先级任务时,需要完成DSP的抢占。
在常见的线程执行过程中,抢占方式的切换会带来上下文切换的代价。不同于线程的上下文切换,DSP接收到抢占中断时,需要将DSP的状态上下文保留至内存,如DDR上,保留的信息包括TCM、指令计数器(Program Counter,PC)指针、直接存储访问(direct memoryaccess,DMA)状态、矢量寄存器等状态,需要时恢复。这种上下文切换的时间延迟是远大于线程的上下文切换的。其中,TCM是一种高速缓存,直接集成在CPU的内部。
保留完毕后,控制侧按照算子镜像加载的步骤进行高优先级任务的加载,加载后运行高优先级的任务。
在一些实现方式中,同一硬件DSP的算法根据优先级进行抢占,即发生抢占时基础镜像的ROTS还是正常运行。算子镜像需要编译的选择地址无关编译,并将系统的通过全局偏移表(global offset table,GOT)、程序链接表(program link table,PLT)编译进去。其中,GOT用于访问所有常量地址,程序启动时动态加载程序解析GOT条目。PLT用于做映射关系,可以根据ELF文件的绝对地址进行重定向。
在发生抢占的时候,控制侧需要读取算子镜像的GOT和PLT表,进行算法的地址重定向,这样可以在基础镜像不变的情况下动态的切换算法镜像。
在步骤S660,高优先级任务运行完毕,需要恢复被抢占的低优先级算法任务。主要工作为将步骤S620中保留的算法的上、下文信息恢复到DSP相关的位置,继续执行被抢占的低优先级算法任务。
在步骤S670,控制侧可以根据不同DSP硬件具体负载,调度DSP处理的算法任务,使各DSP的负载均衡。控制侧可以实时判断不同硬件负载的大小,动态的将新任务分配给负载相对较低的硬件计算,即分配给第一数字信号处理器处理。在出现多算法并发的场景下,需要根据优先级的高低进行可抢占式的算法调度。
整个系统中无论有几个DSP的硬件实体,都可以按照步骤S620至步骤S660的调度方式进行调度。
拍照场景下的DSP算法通常为异步调用方式,可能出现低优先级的任务得不到调度的问题,这种问题可以通过时间片轮转的方式解决。在一些实现方式中,待处理算法中包括优先级相同的多个算法,则可以基于时间片轮转的方式调度多个算法。例如,如果算法A的优先级等于算法B的优先级,则轮转运行算法A和B。
时间片是分配给CPU或者处理机资源基本时间单元。时间片结束时,按照优先级算法切换到下一个就绪算法的执行。时间片轮转方法需要一个额外的系统开销,就是较为频繁的对上下文进行切换。如上文描述,算法的切换相比线程的切换会带来更大的系统开销。
有些情况下,由于在DSP上部署的算法不合理,导致低优先级任务得不到调度。在一些实现方式中,部署在DSP上的算法运行时间,可以小于DSP可运行时间的80%,其中20%用做保证软件调度的容错时间。这样有助于从算法部署的策略上避免出现低优先级任务得不到调度的问题。
通常状态下,镜像的编译只保留了原始bin信息且屏蔽(strip)相关的符号表,如通过GOT、PLT表,这样可以在保证程序正常运行且镜像占用内存最小。因此,本申请实施例中,可以检测到DSP的镜像包含符号表,如GOT、PLT表,且与地址无关,即只有地址偏移的方式。另外,在算法运行阶段,检查日志(log)的DMA可以发现有搬运数据紧耦合存储器(datatightly coupled memory,DTCM)的数据、矢量计算器等的记录。
本申请实施例在多DSP的系统中,可以根据不同DSP硬件的负载大小,动态的将新任务分配给负载相对较低的第一数字信号处理器计算,以使系统的负载均衡。根据算法的需求算力,调整第一数字信号处理器的工作电压。本申请实施例基于算法优先级抢占的策略解决了对于DSP硬件资源的抢占诉求,通过这种灵活的调度方式,有助于解决低优先级任务长时间占用硬件资源,导致高优先级任务无法快速得到调度的问题。进一步释放了DSP图像计算的灵活和算力,解决了同步和异步算法合理调度的问题,也有助于提高相机整体预览的容错性,从而减少所显即所见(see to display)的延迟。
上文结合图1-图6,详细描述了本申请的方法实施例,下面结合图7-图8,详细描述本申请的装置实施例。应理解,装置实施例的描述与方法实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。
图7是本申请实施例提供的控制装置的结构示意图。如图7所示,调度装置700可以包括确定模块710和控制模块720。
确定模块710用于确定第一数字信号处理器的待处理算法的需求算力。
控制模块720用于执行以下操作:根据待处理算法的需求算力,调整第一数字信号处理器的工作电压。
在一些实现方式中,第一数字信号处理器属于多个数字信号处理器之一,控制模块720还用于执行以下操作:根据多个数字信号处理器的负载情况,将待处理算法调度至第一数字信号处理器,以使多个数字信号处理器的负载均衡。
在一些实现方式中,控制模块720还用于执行以下操作:根据待处理算法的优先级,对待处理算法在第一数字信号处理器的执行过程进行调度。
在一些实现方式中,待处理算法包括优先级不同的多个算法,如果待调度算法的优先级高于第一数字信号处理器处理的当前算法,则控制第一数字信号处理器优先处理待调度算法;在待调度算法处理完毕之后,控制第一数字信号处理器继续处理当前算法。
本申请实施例提出了分布式动态电压调整的控制方法,即根据DSP运行的算法的需求算力,调整DSP需要的时钟频率。控制侧进行总体的信息接收和时钟频率设定即可,进而调整DSP对应的工作电压。
图8是本申请实施例提供的芯片的结构示意图。如图8所示,该芯片800可以包括存储器810和处理器820。
存储器810用于存储代码。
处理器820用于执行存储器810中存储的代码,以执行如前文任一描述的控制方法。
应理解,本申请实施例提及的芯片(chip)也称为微芯片(microchip)、集成电路(integrated circuit,IC),由大量的晶体管构成。芯片可以包括但不限于以下种类:中央处理器(central processing unit,CPU)、GPU、可编程逻辑阵列(field programmablegate array,FPGA)、DSP、专用集成电路(application specific integrated circuit,ASIC)、系统级芯片或片上系统(system on chip,SOC)等。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序用于执行如前文任一描述的控制方法。
应理解,本申请实施例提及的计算机可读存储介质可以是计算机能够读取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,数字通用光盘(digitalvideo disc,DVD))或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
应理解,在本申请的各种实施例中,“第一”、“第二”等是用于区别不同的对象,而不是用于描述特定顺序,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
在本申请所提供的几个实施例中,应该理解到,当称某一部分与另一部分“连接”或“相连”时,其意味着该部分不仅可以“直接连接”,而且也可以“电连接”,同时另一个元件介入其中。另外,术语“连接”也意指该部分“物理地连接”以及“无线地连接”。另外,当称某一部分“包含”某一元件时,除非另行加以陈述,否则,其意味着该某一部分可以包括另一元件,而不是排除所述另一个元件。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种控制方法,其特征在于,包括:
确定第一数字信号处理器的待处理算法的需求算力;
根据所述待处理算法的需求算力,调整所述第一数字信号处理器的工作电压。
2.根据权利要求1所述的控制方法,其特征在于,还包括:
根据所述待处理算法的优先级,对所述待处理算法在所述第一数字信号处理器的执行过程进行调度。
3.根据权利要求2所述的控制方法,其特征在于,所述根据所述待处理算法的优先级,对所述待处理算法在所述第一数字信号处理器的执行过程进行调度,包括:
如果待调度算法的优先级高于所述第一数字信号处理器处理的当前算法,则控制所述第一数字信号处理器优先处理所述待调度算法;
在所述待调度算法处理完毕之后,控制所述第一数字信号处理器继续处理所述当前算法。
4.根据权利要求1所述的控制方法,其特征在于,所述第一数字信号处理器属于多个数字信号处理器之一,所述方法还包括:
根据所述多个数字信号处理器的负载情况,将所述待处理算法调度至所述第一数字信号处理器。
5.一种控制装置,其特征在于,包括:
确定模块,用于确定第一数字信号处理器的待处理算法的需求算力;
控制模块,用于执行以下操作:
根据所述待处理算法的需求算力,调整所述第一数字信号处理器的工作电压。
6.根据权利要求5所述的控制装置,其特征在于,所述控制模块还用于执行以下操作:
根据所述待处理算法的优先级,对所述待处理算法在所述第一数字信号处理器的执行过程进行调度。
7.根据权利要求6所述的控制装置,其特征在于,所述根据所述待处理算法的优先级,对所述待处理算法在所述第一数字信号处理器的执行过程进行调度,包括:
如果待调度算法的优先级高于所述第一数字信号处理器处理的当前算法,则控制所述第一数字信号处理器优先处理所述待调度算法;
在所述待调度算法处理完毕之后,控制所述第一数字信号处理器继续处理所述当前算法。
8.根据权利要求5所述的控制装置,其特征在于,所述第一数字信号处理器属于多个数字信号处理器之一,所述控制模块还用于执行以下操作:
根据所述多个数字信号处理器的负载情况,将所述待处理算法调度至所述第一数字信号处理器。
9.一种芯片,其特征在于,包括:
存储器,用于存储代码;
处理器,用于执行所述存储器中存储的代码,以执行如权利要求1-6中任一所述的控制方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序用于执行如权利要求1-6中任一所述的控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211457754.0A CN118092628A (zh) | 2022-11-21 | 2022-11-21 | 控制方法、控制装置、芯片及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211457754.0A CN118092628A (zh) | 2022-11-21 | 2022-11-21 | 控制方法、控制装置、芯片及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118092628A true CN118092628A (zh) | 2024-05-28 |
Family
ID=91140922
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211457754.0A Pending CN118092628A (zh) | 2022-11-21 | 2022-11-21 | 控制方法、控制装置、芯片及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118092628A (zh) |
-
2022
- 2022-11-21 CN CN202211457754.0A patent/CN118092628A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101798369B1 (ko) | 휴대용 디바이스에서 동기적 태스크 디스패치를 위한 시스템 및 방법 | |
JP6199477B2 (ja) | ゲストオペレーティングシステムおよび仮想プロセッサとともにハイパーバイザを使用するシステムおよび方法 | |
EP2652615B1 (en) | Graphics compute process scheduling | |
US10242420B2 (en) | Preemptive context switching of processes on an accelerated processing device (APD) based on time quanta | |
US8963933B2 (en) | Method for urgency-based preemption of a process | |
EP2652614B1 (en) | Graphics processing dispatch from user mode | |
CN107577523B (zh) | 一种任务执行的方法及装置 | |
EP2652613A1 (en) | Accessibility of graphics processing compute resources | |
US10275558B2 (en) | Technologies for providing FPGA infrastructure-as-a-service computing capabilities | |
US9471387B2 (en) | Scheduling in job execution | |
US20110219373A1 (en) | Virtual machine management apparatus and virtualization method for virtualization-supporting terminal platform | |
CN114637536A (zh) | 任务处理方法、计算协处理器、芯片及计算机设备 | |
US20130141447A1 (en) | Method and Apparatus for Accommodating Multiple, Concurrent Work Inputs | |
US20130160017A1 (en) | Software Mechanisms for Managing Task Scheduling on an Accelerated Processing Device (APD) | |
CN112925616A (zh) | 任务分配方法、装置、存储介质及电子设备 | |
WO2012082777A1 (en) | Managed task scheduling on an accelerated processing device (apd) | |
EP4386554A1 (en) | Instruction distribution method and device for multithreaded processor, and storage medium | |
TW202107408A (zh) | 波槽管理之方法及裝置 | |
CN118092628A (zh) | 控制方法、控制装置、芯片及计算机可读存储介质 | |
CN114911538A (zh) | 一种运行系统的启动方法及计算设备 | |
US9632834B2 (en) | Assigning priorities to computational work streams by mapping desired execution priorities to device priorities | |
KR20040101260A (ko) | 가상 직접 메모리 액세스를 위한 방법 및 장치 | |
JP2005115620A (ja) | タスク管理方法及びタスク管理手段を有する電子機器 | |
US20130155079A1 (en) | Saving and Restoring Shader Context State | |
KR100821261B1 (ko) | 이동통신 단말기용 멀티 태스킹 구현 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |