CN1755661A - 信息处理装置以及方法和程序 - Google Patents
信息处理装置以及方法和程序 Download PDFInfo
- Publication number
- CN1755661A CN1755661A CNA2005101071575A CN200510107157A CN1755661A CN 1755661 A CN1755661 A CN 1755661A CN A2005101071575 A CNA2005101071575 A CN A2005101071575A CN 200510107157 A CN200510107157 A CN 200510107157A CN 1755661 A CN1755661 A CN 1755661A
- Authority
- CN
- China
- Prior art keywords
- module
- processor
- processing
- processing module
- profile information
- 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
Images
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/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4208—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
- G06F13/4217—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus with synchronous protocol
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Image Processing (AREA)
Abstract
一种信息处理装置,包括连接于系统总线的多个从处理器和控制多个从处理器的主处理器,所述信息处理装置包括:用于保持从处理器可执行的处理模块的简档信息的保持装置;用于依据简档信息选择要由从处理器执行的处理模块的选择装置;用于使从处理器执行选择装置所选择的处理模块的执行装置;用于响应于请求通过组合预定的单模块而产生复合模块以执行多个处理的产生装置;以及用于存储产生装置所产生的复合模块的存储装置。所述简档信息包括输入数据的相关信息,以及产生装置依据相关信息产生复合模块。
Description
技术领域
本发明涉及信息处理装置、信息处理方法以及程序,更具体地涉及用于在多个从处理器上分布预定处理以及使多个从处理器执行所分布的处理的信息处理装置、信息处理方法以及程序。
背景技术
相关申请的交叉参考
本发明包含于2004年9月28日向日本专利局提交的日本专利申请JP 2004-280817所涉及的主题,将其全部内容并入本文之中,以供参考。
用于在多个连接于系统总线的运算单元(下文中称为从处理器)上分布处理以及使多个从处理器高速执行所分布的处理的运算设备已经被提出。(例如,参见公开号为9-18593和2002-351850的日本未经审查的专利申请。)
对于这样的系统,作为用于顺序地执行包括诸如降噪、边缘增强和RGB图像转换之类的多个单处理的图像后处理的方法,一种用于将每个单处理分配给相应的从处理器并使相应的从处理器执行所分配的单处理(下文中相应地称为“单模块处理”)的方法,以及一种用于产生执行对象以一起执行多个单处理并使从处理器执行该执行对象(下文中相应地称为“复合模块处理”)的方法是可提供的。
对于单模块处理,由于诸如从处理器中的大存储容量之类的大量资源被用于一个处理(图像后处理),所以处理能够被高速地执行。然而,显然单模块处理使用了大量的资源。
对于复合模块处理,使用少量资源。然而,复合模块处理与单模块处理相比以较低的速度被执行。特别是,对于从处理器都被安装在一个芯片中的多芯处理器而言,复合模块处理的速度明显降低。由于从处理器具有小的存储容量,所以需要存入主存储器。因此,这样的处理需要一定量的时间。
通常,提前估计在某一时刻的可用资源(例如从处理器的数量和可用带宽)是困难的。因此,上述提前确定的方法之一已被使用。
发明内容
然而,在可用资源动态变化的情况下,会出现以下问题。当采用复合模块处理时,一些从处理器并不运行。另外,当采用单模块处理时,例如,由于单模块在执行过程中其他处理也在被执行而增加了系统总线的带宽的压力,或者,由于从处理器频繁的上下文切换而使资源受到限制。因此,整体性能被降低了。
理想的是,在连接于系统总线的多个从处理器上分布处理并使多个从处理器高效地执行所分布的处理。
根据本发明的实施例,包括连接于系统总线的多个从处理器以及控制多个从处理器的主处理器的信息处理装置包括:用于保持从处理器可执行的处理模块的简档信息(profile information)的保持装置,用于依据简档信息选择要由从处理器执行的处理模块的选择装置,用于使从处理器执行选择装置所选择的处理模块的执行装置,用于响应于请求通过组合预定的单模块而产生复合模块以执行多个处理的产生装置,以及用于存储产生装置所产生的复合模块的存储装置。简档信息包括输入数据的相关信息,而产生装置依据相关信息产生复合模块。
简档信息可以包括每个处理模块的处理速度、使用的存储量或系统总线使用率。
信息处理装置可以进一步包括用于获取与处理模块的执行相应的简档结果的获取装置,以及用于依据简档结果更新简档信息的更新装置。
信息处理装置可以进一步包括用于监视在执行处理模块期间资源的使用状态的监视装置。选择装置可以依据资源的使用状态来重新选择要由从处理器执行的处理模块。
资源可以包括系统总线的带宽、执行处理模块的从处理器数量或从处理器的使用率。
信息处理装置可以进一步包括保持先前的资源信息的先前数据保持装置。选择装置可以依据先前的资源信息来重新选择要由从处理器执行的处理模块。
根据本发明的实施例,用于包括连接于系统总线的多个从处理器以及控制多个从处理器的主处理器的信息处理装置的信息处理方法包括以下步骤:保持从处理器可执行的处理模块的简档信息,依据简档信息选择要由从处理器执行的处理模块,使从处理器执行选择步骤所选择的处理模块,响应于请求通过组合预定的单模块而产生复合模块以执行多个处理,以及存储产生步骤所产生的复合模块。简档信息包括输入数据的相关信息,而产生步骤依据相关信息产生复合模块。
根据本发明实施例的程序包括以下步骤:保持从处理器可执行的处理模块的简档信息,依据简档信息选择要由从处理器执行的处理模块,使从处理器执行选择步骤所选择的处理模块,响应于请求通过组合预定的单模块而产生复合模块以执行多个处理,以及存储产生步骤所产生的复合模块。简档信息包括输入数据的相关信息,而产生步骤依据相关信息产生复合模块。
因此,在上述信息处理装置、信息处理方法和程序中,保持能够由从处理器执行的处理模块的简档信息,依据简档信息选择要由从处理器执行的处理模块,并且从处理器执行所选择的处理模块。
因此,能够在连接于系统总线的多个从处理器上分布预定的处理,并且能够由多个从处理器高效地执行所分布的处理。
附图说明
图1是显示根据本发明实施例的图像处理装置的结构示例的框图;
图2是显示图1所示的每个从处理器的结构示例的框图;
图3是用于解释从处理器的操作的图示;
图4显示了数据流;
图5是用于解释从处理器处理每一帧的图示;
图6是用于解释从处理器的另一个操作的图示;
图7是显示图1所示的图像处理装置的功能结构的示例的框图;
图8显示了存储在图7所示的模块存储单元中的简档信息;
图9是图7所示的模块选择器所执行的过程的流程图;
图10A到10D是用于解释图7中所示的模块选择器的操作的示例的图示;
图11显示每个预定处理模块的简档;
图12A到12C是用于解释模块选择器的操作的示例的图示;
图13是显示图1所示图的像处理装置的功能结构的另一个示例的框图;
图14是由图13所示的资源监视器执行的过程的流程图;
图15是由图13所示的模块选择器执行的过程的流程图;
图16是显示图1所示的图像处理装置的功能结构的另一个示例的框图;
图17是由图16所示的模块选择器执行的过程的流程图;
图18是显示图1所示的图像处理装置的功能结构的另一个示例的框图;
图19是由图18所示的模块管理器执行的过程的流程图;
图20显示了存储在图18所示的单模块资源存储单元中的简档信息;
图21显示了每个预定处理模块的简档;
图22是显示图1所示的图像处理装置的功能结构的另一个示例的框图;
图23是简档更新过程的流程图。
具体实施方式
在描述本发明的实施例之前,下面将讨论在本说明书中描述的本发明与本发明的实施例之间的关系。提供该描述以确认在本说明书中描述了支持本说明书中所描述的本发明的实施例。因此,即使本发明实施例中描述的实施例未在此被描述为涉及本发明的一个方面,但这也不意味着该实施例不涉及本发明的那个方面。相反,即使实施例在此被描述为涉及本发明的一个方面,但这也不意味着该实施例不涉及本发明的其他方面。
而且,该描述不应该被解释为对下述的限制:本说明书中描述的本发明的所有方面被描述。换句话说,该描述不排除在本说明书中描述的而本申请没有要求保护的本发明的多个方面的存在,换句话说,不排除分案申请所要求保护的或将来修改所增加的本发明的多个方面的存在。
根据本发明实施例的信息处理装置包括用于保持从处理器可执行的处理模块的简档信息的保持装置(例如,图7中模块存储单元51),用于依据简档信息选择要由从处理器执行的处理模块的选择装置(例如,图7中模块选择器42),用于使从处理器执行选择装置所选择的处理模块的执行装置(例如,图7中模块控制器43),用于响应于请求通过组合预定的单模块而产生复合模块以执行多个处理的产生装置(例如,图18中复合模块产生单元102),以及用于存储产生装置所产生的复合模块的存储装置(例如,图18中模块存储单元104)。简档信息包括输入数据的相关信息(例如,图20中的相关数据),而产生装置依据相关信息产生复合模块。
信息处理装置可以进一步包括用于获取与处理模块的执行相应的简档结果的获取装置(例如,图22中的模块简档更新单元111),以及用于依据简档结果更新简档信息的更新装置(例如,图22中的模块管理器41)。
信息处理装置可以进一步包括用于监视在执行处理模块期间资源的使用状态的监视装置(例如,图13中的资源监视器61)。选择装置可以依据资源的使用状态重新选择要由从处理器执行的处理模块。
信息处理装置可以进一步包括保持先前的资源信息的先前数据保持装置(例如,图16中的资源统计数据存储单元81)。选择装置可以依据先前的资源信息重新选择要由从处理器执行的处理模块(例如,最佳模块计算单元82)。
根据本发明实施例的信息处理方法包括以下步骤:保持从处理器可执行的处理模块的简档信息(例如,图7中模块存储单元51的处理),依据简档信息选择要由从处理器执行的处理模块(例如,图9中的步骤S2),使从处理器执行选择步骤所选择的处理模块(例如,图9中的步骤S3和S4),响应于请求通过组合预定的单模块而产生复合模块以执行多个处理,以及存储产生步骤所产生的复合模块。简档信息包括输入数据的相关信息,而产生步骤依据相关信息产生复合模块。
根据本发明实施例的程序包括以下步骤:保持从处理器可执行的处理模块的简档信息(例如,图7中模块存储单元51的处理),依据简档信息选择要由从处理器执行的处理模块(例如,图9中的步骤S2),使从处理器执行选择步骤所选择的处理模块(例如,图9中的步骤S3和S4),响应于请求通过组合预定的单模块而产生复合模块以执行多个处理,以及存储产生步骤所产生的复合模块。简档信息包括输入数据的相关信息,而产生步骤依据相关信息产生复合模块。
图1显示了根据本发明实施例的图像处理装置1的结构。
图像处理装置1包括主处理器11、主存储器12和从处理器13-1、13-2、13-3及13-4(下文中,如果没有必要在从处理器13-1到13-4之间进行区分,则它们被简单地称为从处理器13)。主处理器11、主存储器12和从处理器13通过它们之间的系统总线15彼此连接。在图1中,只显示了用于运算处理所必要的部分,而诸如硬盘、网络接口、键盘和显示器之类的外部接口并没有示出。
主处理器11是标准的微处理单元(MPU),并控制整个装置。更具体而言,依据所需处理和“资源条件”对应要执行的“处理内容”,主处理器11向从处理器13提供由主处理器11管理的处理模块,并使从处理器13执行相应的处理。
例如,当所需图像后处理对应要执行的“处理内容”是降噪(块降噪(BNR))、图像质量改善(边缘增强滤波)以及格式转换(RGB转换),并且当“资源条件”是“三个从处理器”和“带宽为100Mbps或更小”时,主处理器11依据三个从处理器13和带宽为100Mbps或更小来确定将执行“BNR”、“边缘增强滤波”和“RGB转换”的处理模块(或多个处理模块的组合)。然后,主处理器11向从处理器13提供所确定的相应处理模块,并使从处理器13执行相应的处理模块。
例如,除了“BNR”、“边缘增强滤波”和“RGB转换”之外,“处理内容”还可以是“对比度调整”或“蚊状降噪”。例如,除了“从处理器的数量”和“带宽”之外,“资源条件”还可以是“存储器使用率”、“从处理器的使用率”、“处理模块的处理速度”或“系统总线使用率”。
每个从处理器13都具有图2所示的结构。换句话说,从处理器13通过系统总线接口21与主处理器11和主存储器12进行通信,以接收来自主处理器11的指令和从主存储器12加载的执行代码。本地存储器22存储了从主存储器12加载的执行代码和其他数据。运算单元23依据来自主处理器11的指令来执行存储在本地存储器22中的执行代码的运算操作,并执行预定处理。
现在将描述在降噪(块降噪(BNR))、图像质量改善(边缘增强滤波)以及格式转换(RGB转换)的处理模块作为图像后处理执行时从处理器13的操作。
如下所述,在处理的实际分配中,执行处理的处理模块被加载到相应的从处理器13。然而,在这个例子中,如图3所示,用于“BNR”的处理模块被加载到从处理器13-1,用于“边缘增强滤波”的处理模块被加载到从处理器13-2,以及用于“格式转换”的处理模块被加载到从处理器13-3。换句话说,图像后处理是基于单模块处理而顺序执行的。
加载到从处理器13-1的BNR处理模块从存储在主存储器12中并存储了原始YUV图像的图像数据Da读取数据,降低噪声,并将结果输出至图像数据Db。
加载到从处理器13-2的边缘增强滤波处理模块从存储在主存储器12中的图像数据Db读取数据,对所读取的数据执行边缘增强,并将结果输出至图像数据Dc。
加载到从处理器13-3的格式转换处理模块从图像数据Dc读取数据,并将RGB转换结果输出至图像数据Dd。
换句话说,如图4显示了这种情况下的数据流。如图5显示了每帧的处理流。例如,首先,从处理器13-1对帧F0的图像执行BNR处理,然后从处理器13-2对帧F’0的图像执行边缘增强处理。最后,从处理器13-3对帧F”0的图像执行格式转换。
如果由于从处理器13的本地存储器22的大小而难以由单操作读取所有的图像数据,则重复执行将图像数据部分地读取至本地存储器22并将处理结果输出到主存储器12的处理。
作为基于单模块处理来执行图像后处理的情况的示例,已参考图3描述了从处理器13的操作。现在将描述在基于复合模块处理来执行图像后处理时从处理器13的操作。
在这个例子中,复合模块以该顺序执行“BNR”、“边缘增强滤波”和“RGB转换”。在图6所示的示例中,复合模块被加载到从处理器13-1。换句话说,加载到从处理器13-1的处理模块读取存储在主存储器12中的图像数据Da中的原始YUV图像,顺序地执行BNR、边缘增强滤波和格式转换,并将处理结果输出至图像数据Db。
与单模块被加载到多个从处理器13的情况相比,在使用复合模块的方法中,对图像的处理可以以较低速度执行。单模块处理由于下列原因而能够以较高的速度执行:
·许多中间处理结果能够被存储。对于数据处理,中间结果是被暂时存储的。如果没有足够大的存储容量,则中间结果可能被除去并可能被重新计算。另外,中间结果的存储格式可以被转换为不消耗大量存储空间的格式。例如,使用整型向量的处理结果输出被转换为字符向量来存储,然后,字符向量被重新转换为整型向量来使用。如果具有足够的存储容量,就没有必要执行这种转换。因此,处理能够以较高的速度执行。
·能够获得大的目标代码。换句话说,诸如函数内联展开和循环展开之类的加速技术增加了执行代码的大小。如果能够由模块使用的本地存储器的容量很大,则能够执行更多的内联展开和循环展开。
·如果可用存储空间很大,则可以使用完全不同的算法。在这种情况下,处理速度能够被显著提高。
图7显示了在主处理器11上运行的软件模块的功能结构的示例,即图像处理装置1的功能结构。
系统控制器31将与所需的处理和可用资源(资源条件)相应的要执行的“处理内容”提供至图像处理器32,并要求图像处理器32执行处理。
例如,诸如“BNR”、“边缘增强滤波”和“RGB转换”之类的“处理内容”以及诸如“两个从处理器”和“10Mbps或更小的带宽”之类的“资源条件”被报告给图像处理器32。可替换的是,例如,诸如“BNR”、“边缘增强滤波”、“对比度调整”、“蚊状降噪”和“RGB转换”之类的“处理内容”以及诸如“四个从处理器”和“100Mbps或更小的带宽”之类的“资源条件”被报告给图像处理器32。
图像处理器32管理执行图像处理的处理模块。图像处理器32向从处理器管理器33提供与由系统控制器31提供的“处理内容”和“资源条件”相应的处理模块。
从处理器管理器33依据来自图像处理器32的指令,将所提供的处理模块的执行代码加载到从处理器13并启动处理模块。
接下来给出图像处理器32的细节。图像处理器32包括模块管理器41、模块选择器42以及模块控制器43。
图8中所示的在从处理器13上运行的处理模块的简档信息51A被存储在模块存储单元51中。模块管理器41依据简档信息51A管理处理模块。
在图8中所示的简档信息51A中,“id”表示处理模块的标识(ID),而“对象_名称”表示处理模块的名称。如果处理模块的实体存在于特定路径,则能够使用对象_名称来追溯该路径。
另外,在“算法”列中,由处理模块要执行的图像处理算法以逗号分隔值(CSV)的格式依序描述。
另外,“周期”表示对预定的参考图像执行处理模块所必需的周期数。另外,“数据流”表示在处理模块对参考图像执行处理时主存储器12和本地存储器22之间的数据流量。
模块选择器42依照简档信息51A来选择处理模块,所述处理模块与系统控制器31所报告的“处理内容”相对应,并与模块管理器41所管理的处理模块中的“资源条件”相对应。模块选择器42从模块管理器41获取所选择的处理模块,并将所获取的处理模块提供至模块控制器43。
模块控制器43从系统控制器31接收包括“处理内容”和“资源条件”的请求,并将该请求提供至模块选择器42。模块控制器43也响应来自系统控制器31的请求而向从处理器管理器33提供模块选择器42所提供的处理模块,并使预定的从处理器13执行处理模块。
接下来参考图9所示的流程图描述由图像处理器32执行的过程。
在步骤S1,图像处理器32的模块控制器43从系统控制器31接收有关“处理内容”和“资源条件”的报告,并将该“处理内容”和“资源条件”提供至模块选择器42。
在步骤S2,模块选择器42计算要使用的处理模块,并从模块管理器41获取处理模块。模块选择器42将所获取的处理模块提供至模块控制器43。
接下来对处理模块的计算方法进行描述。处理所必需的“周期数(周期)”和“数据流量(数据流)”都存储在简档信息51A中。处理所必需的“速度”能够由“周期数”而得知,以及处理所必需的“带宽”能够由“数据流量”和“周期数”得知。因此,模块选择器42从模块管理器41获取简档信息51A,并根据存储在简档信息51A中的“周期数”和“数据流量”来选择那些执行“处理内容”和满足“资源条件”的处理模块。
例如,当“处理内容”是“BNR”、“边缘增强滤波”和“RGB转换”时,处理模块的四种组合模式都是可能的。换句话说,下述这些模式都是可能的:在模式(参见图10A)中,使用用于执行“BNR”的处理模块bnr、用于执行“边缘增强滤波”的处理模块ee以及用于执行“RGB转换”的处理模块r gb;在模式(参见图10B)中,使用用于顺序执行“BNR”和“边缘增强滤波”的处理模块bnr_ee以及用于执行“RGB转换”的处理模块rgb;在模式(参见图10C)中,使用用于执行“BNR”的处理模块bnr以及用于顺序执行“边缘增强滤波”和“RGB转换”的处理模块ee_rgb;以及在模式(参见图10D)中,只使用用于顺序执行“BNR”、“边缘增强滤波”和“RGB转换”的处理模块bnr_ee_rgb。
在这种情况下,如图11所示,模块选择器42从简档信息51A中读取例如对于每种情况所必需的周期数。在图11中,“从处理器的数量”表示用于并行执行每个处理操作组合所必需的从处理器数量,并且“p1”、“p2”和“p3”表示各个从处理器13所必需的周期数。另外,“处理一幅图像所必需的周期数”表示等待时间,而“处理一幅图像的平均周期数”表示吞吐量。
例如,如果处理不具有帧之间的相关关系,则处理模块bnr_ee_rgb可以被加载到多个从处理器13(其ID是(E)的模式)以便对不同帧图像执行处理。另外,由于大的开销被用于对象加载,所以排除了用于顺序地将处理模块bnr、处理模块ee和处理模块rgb加载到从处理器13并使从处理器13执行处理的方法。
当“资源条件”是“两个从处理器”时,其ID是(B)、(C)和(E)的模式是可能的。由于能够由其ID是(C)的模式获得最好的性能,所以选择构成该模式的处理模块。
当“资源条件”是“10兆字节或更少的数据流”时,其ID是(D)的模式满足该条件。因此,选择构成该模式的处理模块。
如上所述,模块选择器42从模块管理器41选择处理模块,并将所获得的处理模块提供至模块控制器43。
回来参考图9,在步骤S3中,模块控制器43经由从处理器管理器33将从模块选择器42提供的处理模块加载到对应的从处理器13。
在步骤S4,模块控制器43以适当的顺序在适当的时间启动所加载的模块,并使从处理器13执行相应的处理。
在步骤S5,系统控制器31将从处理器13输出至主存储器12的处理模块的执行结果(例如图像)存储至主存储器12中的适当位置。
如上所述,选择与“处理内容”和“资源条件”相应的处理模块的组合,并由相应处理模块以分布式方式执行图像后处理。
如图11所示,由于每个处理具有相同的“数据流量”,所以当处理模块彼此连接时,总数据流量只依据连接的处理模块的数量(即从处理器13的数量)而减少。然而一般而言,即使使用相同数量的从处理器13,总数据流量也可以随处理模块的组合而变化。这是由于以下两个具体原因:
·对于其中模块的输出数据增多的情况
例如,当只对RGB输入图像执行图像质量改进时,如图12B所示形成的复合模块的数据流量比图12C所示形成的复合模块的数据流量小。
·对于其中处理过程中的数据被存储在主存储器12中的情况
当从处理器13的本地存储器22不具有足够大的容量时,处理过程中的数据被存储在主存储器12中。当这种处理模块通过连接至具有较小对象的处理模块而与别的处理模块相连时,用于在本地存储器22中存储处理过程中的数据的缓冲器会被增大。因此,本地存储器22和主存储器12之间的数据流量减少。
因此,当“数据流量”被提供为“资源条件”时,应该从具有相同数量的从处理器13的组合当中选择具有较小“数据流量”的组合。
图13显示了图像处理装置1的功能结构的另一个示例(在主处理器11上运行的软件模块的结构的另一个示例)。就该结构而言,图像处理装置1进一步包括连接于图7所示的图像处理器32的资源监视器61。
资源监视器61监视当前的资源使用率,并将当前的资源使用率报告给图像处理器32的模块控制器43。由于资源监视器61的存在,所以系统控制器31不必连续地报告动态变化的资源使用状态,例如系统总线15所使用的带宽,并且能够动态地设置最佳的模块排列。
在这种情况下,系统控制器31只需要提供诸如可用从处理器的最大数量之类的上限以作为“资源条件”。例如,当另一个处理单元开始使用许多从处理器13时,图像处理器32依照资源监视器61所报告的资源使用状态来改变处理模块的组合。
接下来参考图14所示的流程图描述由资源监视器61执行的过程。
在步骤S11,资源监视器61获取当前资源使用率(例如,正在使用的从处理器13的数量和带宽)。
在步骤S12,资源监视器61通过与上次获取的资源使用率进行比较来计算资源变化量。对每个资源都执行这种变化量的计算。
在步骤S13,资源监视器61确定资源变化量是否大于预定的阈值。该确定是基于每个资源的阈值而执行的。
如果在步骤S13中确定变化量大于阈值,则在步骤S14中,资源监视器61将当前资源使用状态报告给图像处理器32的模块控制器43。相反,如果在步骤S13确定变化量不大于阈值,则该过程结束。
在预定时间来重复上述处理。
接下来参考图15所示的流程图来描述当在步骤S14接收到报告时图像处理器32所执行的过程。
在步骤S21,图像处理器32的模块控制器43从资源监视器61接收当前资源使用状态,并将当前资源使用状态提供给模块选择器42。
在步骤S22,模块选择器42依照由模块控制器43提供的资源使用状态来计算最佳处理模块和处理模块的排列。在该处理中,基本上同图9中的步骤S2的处理一样,参考简档信息51A并选择处理模块。
在步骤S23,模块选择器42确定在步骤S22计算的处理模块是否不同于当前正在使用的处理模块。如果确定在步骤S22计算的处理模块不同于当前正在使用的处理模块,则在步骤S24中确定加速估计值是否大于预定的阈值。
如果在步骤S24确定加速估计值大于阈值,则在步骤S25中,模块选择器42从模块管理器41获取在步骤S22计算的处理模块,并将所获取的处理模块提供给模块控制器43。模块控制器43经由从处理器管理器33将所提供的处理模块重新加载到从处理器13。如果处理模块当前正在被执行,则从处理器管理器33发送终止命令,并在当前帧的处理结束之后加载处理模块。
由于根据处理模块的组合,从先前处理模块输出到主存储器12的结果可以用作输入,所以输入数据必须被适当地设置。
如上所述,依据当前资源使用状态来重新选择和重新加载处理模块。
如果经常重复地重新加载处理模块,则由于开销问题,加速会被抵消。为了解决该问题,在步骤S24中的加速估计值的阈值可以自适应地改变。更具体而言,例如,在对象被重新加载之后阈值立即被暂时提高,并且提高的阈值随时间流逝而返回至原始阈值。另外,可以存储最后加速估计值和当前加速估计值之间的差值,并且可以直到加速估计值的总和超过了开销(阈值被设置为无限大),才执行重新加载。
基于先前资源使用状态的统计信息,可以计算每个处理模块的实际速度(预测值),并且可以选择在步骤S22中计算的预测值最小的处理模块(最快的处理模块)。
利用这种方法,当由于状态A对于处理模块1是最佳的但导致处理模块2以较低的执行速度被执行,并由于状态B对于处理模块2是最佳的但导致处理模块1以较低执行速度被执行,所以处理模块1和2对于可用资源状态A和B不是最佳的时,如果在状态A和B中能够以预定速度或更快的速度被执行的处理模块3存在,则平均表现出高性能的处理模块3能够保持被选择。
为了执行这种方法,图像处理器32包括如图16所示的模块选择器71,而不是图13所示的模块选择器42。
模块选择器71的资源统计数据存储单元81存储先前资源使用状态下的周期数。
最佳模块计算单元82依据存储在资源统计数据存储单元81中的先前资源信息和存储在模块管理器41的模块存储单元51中的简档信息51A来计算预测值。
更具体而言,最佳模块计算单元82随机采样存储的先前资源信息,并为每个处理模块计算在该资源使用状态下的周期数。最佳模块计算单元82通过重复处理N次并计算总和来为每个处理模块计算周期数的预测值(或N倍预测值)。
图17显示了该过程的流程图。换句话说,在步骤S31中将计数采样次数的计数器i初始为0之后,在步骤S32中,从资源统计数据存储单元81中随机选择一个先前的资源使用状态。
在步骤S33中,选择一个现有的处理模块。在步骤S34,计算在步骤S32中所选择的资源使用状态下的处理模块的周期数。
在步骤S35,为每个处理模块添加在步骤S34中所计算的周期数。
在步骤S36,确定是否选择了所有的处理模块。如果在步骤S36确定没有选择处理模块,则在步骤S33中选择处理模块。然后,执行在步骤S34的处理之后的处理。换句话说,在步骤S32所选择的资源使用状态下,计算每个处理模块的周期数。
如果在步骤S36中确定选择了所有的处理模块,则在步骤S37确定计数器i是否小于N。如果在步骤S37确定计数器i小于N,则在步骤S38计数器i递增1。然后,在步骤S32,选择另一个使用状态,并执行步骤S33的处理之后的处理。换句话说,计算每个处理模块在N个资源使用状态下的周期总数。
如果在步骤S37确定计数器i等于N,则在步骤S39计算周期总数最小的处理模块。
图18显示了图像处理装置1的功能结构的另一个例子。就该结构而言,图像处理装置1包括模块管理器91,而不是图7所示的图像处理器32的模块管理器41。
模块管理器91动态地产生复合模块以执行多个滤波处理。接下来描述模块管理器91的结构。
当从模块选择器42接收到对用于执行多个滤波处理的复合模块的请求时,模块管理器91的控制单元101将关于请求的报告提供给复合模块产生单元102。
当从控制单元101接收到有关用于执行多个滤波处理的复合模块的请求的报告时,复合模块产生单元102响应于该请求而动态地产生复合模块。
例如,如果控制单元101请求用于执行“BNR”和“对比度改善”的复合模块时,复合模块产生单元102产生这种复合模块,并将产生的复合模块发送到控制单元101。例如,如果控制单元101请求用于执行“BNR”和“对比度改善”的具有“10兆字节或更少的数据流”的复合模块时,复合模块产生单元102产生满足“资源条件”的复合模块,并将产生的复合模块发送到控制单元101。
当复合模块产生单元102产生具有多个功能的复合模块(滤波器)时,单模块资源存储单元103将单模块的资源存储为原版。具体地,例如,单模块资源是用于执行图像处理操作的处理模块的预先链接对象文件或源代码。
模块存储单元104存储在从处理器13上运行的处理模块。存储于模块存储单元104中的处理模块如上述示例可以提前准备,或可以由复合模块产生单元102产生。
接下来将参考图19所示的流程图描述当接收到对复合模块的请求时由模块管理器91所执行的过程。
在步骤S51,模块管理器91的控制单元101需要复合模块产生单元102产生复合模块。将“处理内容”(例如,“BNR”和“对比度改善”)和“资源条件”(例如,10兆字节或更少的数据流)报告给复合模块产生单元102。
在步骤S52,复合模块产生单元102需要获取与存储在单模块资源存储单元103中的单模块有关的、如图20所示的简档信息103A。单模块资源存储单元103存储能够被提供的单模块和关于该单模块的简档信息103A。单模块资源存储单元103将简档信息103A提供给复合模块产生单元102。
在简档信息103A中,“名称”表示唯一标识单模块的标记,“处理”表示模块所执行的处理的名称,“对象大小”表示模块本身的大小,而“必需存储量”表示模块被分配的本地存储量。另外,“周期数”表示处理的周期数,“数据(输入)”表示输入数据量,“数据(输出)”表示输出数据量,以及“数据(中间)”表示将处理中间结果存储在主存储器12中所必需的数据量。
在步骤S53,复合模块产生单元102依据所获取的简档信息103A来确定要使用的单模块。这里,选择最能满足从控制单元101接收到的“资源条件”的组合。下面将描述该处理。
例如,如果接收到的“处理内容”是“BNR”和“边缘增强滤波”,则如图20所示,单模块bnr_1、bnr_2和bnr_3作为用于“BNR”的单模块存在,并且单模块ee_1、ee_2和ee_3作为用于“边缘增强滤波”的单模块存在。因此,存在九个组合。如图21所示为每个组合准备简档。
例如,如果接收的“资源条件”是“一个从处理器”和“600字节或更少的可用本地存储器”,则选择具有600字节或更少“必需存储量”并具有最小“周期数”的单模块bnr_1和单模块ee_3的组合。
如果“资源条件”是“一个从处理器”、“600字节或更少的可用本地存储器”和“30兆字节或更少的数据流”,则选择单模块bnr_1和单模块ee_1的组合。
回来参考图19,在步骤S54,复合模块产生单元102从单模块资源存储单元103获取在步骤S53所选择的单模块,并通过组合所获取的单模块产生复合模块。复合模块产生单元102将产生的复合模块提供给控制单元101。产生的复合模块是能够由从处理器13运行的执行对象。
在步骤S55,控制单元101将复合模块产生单元102提供的复合模块和复合模块的简档信息存储在模块存储单元104中。这时,存储的复合模块是动态产生的模块(由复合模块产生单元102产生的模块)的事实被记录在模块存储单元104中。这是因为当产生了许多复合模块并且模块存储单元104不具有足够大的存储容量时,可以删除复合模块。由于必要时动态产生的复合模块可以被重新产生,所以这种复合模块可以被删除。
如上所述,产生具有多个功能的复合模块。
这里,单模块资源存储单元103可以为一个算法存储多个编译的对象。可选择地,可以为一个算法存储一个源代码,从而在提出请求时能够通过改变编译选项来产生不同的对象。然而在这种情况下,单模块的简档信息103A的周期数是估计值。
另外,单模块不必是用于执行图像处理操作的模块,并且单模块可以执行多个处理操作。换句话说,术语“单模块”指的是能够通过将多个单模块组合在一起而构成复合模块的模块。
另外,尽管已经描述了其中处理过程是“BNR”、“边缘增强滤波”和“格式转换”的情况,但在使用可互换滤波器(即使顺序变化也展示相同结果的一对滤波器)的情况下,或在来自系统控制器31的请求不包括处理顺序的情况下,由于改变处理顺序不会引起大的差异,所以能够以任何顺序组合滤波器。
另外,当单模块(滤波器模块)处理图像数据的方向固定时,如果具有不同处理方向的滤波器被组合在一起,则中间结果必须被存储在主存储器12中,因此增大了开销。例如,当“BNR”滤波器需要对图像在水平方向上执行处理而“对比度改善”滤波器需要对图像在垂直方向上执行处理时,两个滤波器不应该被组合在一起。
如图20中“相关数据”列所示,通过存储有关滤波器模块的处理方向的信息,当选择模块时,模块管理器91的复合模块产生单元102能够考虑到这种信息而确定组合。在“相关数据”列中的“水平方向”表示应该在图像的水平方向上执行处理。在“相关数据”列中的“垂直方向”表示应该在图像的垂直方向上执行处理。在“相关数据”列中的“*”标记表示处理能够在所需方向上对图像执行处理。
下面将参考图20描述将用于“边缘增强滤波”和“RGB转换”的模块组合在一起的情况的示例。在这种情况下,由于单模块ee_2和ee_3能够在所需方向上执行处理,所以单模块ee_2和ee_3能够连接到每个单模块rgb_1、rgb_2和rgb_3。然而,如果单模块ee_1被使用,则由于单模块rgb_1不能被使用,所以必须选择单模块rgb_2或单模块rgb_3。因此,除了资源限制以外,其总周期数是850的单模块ee_2和单模块rgb_1的组合是最佳的。
图22显示了图像处理装置1的功能结构的另一个示例。对于该结构,图7所示的图像处理器32进一步包括模块简档更新单元111。
如果复合模块是动态产生的,特别是如果复合模块是由源代码动态更新的,则复合模块的性能是未知的。因此,模块简档更新单元111将由产生的复合模块的运算所得的结果反馈给模块管理器41。
下面参考图23显示的流程图描述简档更新过程。
在步骤S61,图像处理器32的模块控制器43在处理模块的处理结束时,将终止模块执行的通知发送至模块简档更新单元111。这时,诸如处理所需的时间和数据流量之类的简档结果也被发送至模块简档更新单元111。模块简档更新单元111能够使模块控制器43设置每隔多久通知一次模块终止。
在步骤S62,模块简档更新单元111将执行结果的简档信息发送到模块管理器41。在步骤S63,模块管理器41依据该信息更新处理模块的简档信息51A。更具体而言,如果模块简档不存在,则设置给定值。如果存在诸如现有值的平均值之类的值,则设置新值。
如上所述,简档信息51A被更新。
尽管已作为示例描述了图像处理,但是本发明也可应用于一般数据处理和信号处理,比如声音处理。
在本说明书中,记录介质所提供的程序的步骤不必依照所写的顺序以时间顺序执行。这些步骤可以并行执行或独立执行而无须以时间顺序执行。
本领域的技术人员应该理解的是,可以根据设计需要和其他因素而作出多种修改、组合、子组合和替换,因为它们都在所附的权利要求书或它们的等价物的范围之内。
Claims (9)
1.一种信息处理装置,包括连接于系统总线的多个从处理器和控制多个从处理器的主处理器,所述信息处理装置包括:
用于保持从处理器可执行的处理模块的简档信息的保持装置;
用于依据简档信息选择要由从处理器执行的处理模块的选择装置;
用于使从处理器执行选择装置所选择的处理模块的执行装置;
用于响应于请求通过组合预定的单模块而产生复合模块以执行多个处理的产生装置;以及
用于存储产生装置所产生的复合模块的存储装置,
其中简档信息包括输入数据的相关信息,以及
其中产生装置依据相关信息产生复合模块。
2.根据权利要求1所述的信息处理装置,其中简档信息包括每个处理模块的处理速度、使用的存储量或系统总线使用率。
3.根据权利要求1所述的信息处理装置,进一步包括:
用于获取与处理模块的执行相应的简档结果的获取装置;以及
用于依据简档结果更新简档信息的更新装置。
4.根据权利要求1所述的信息处理装置,进一步包括用于监视在执行处理模块期间资源的使用状态的监视装置,其中
选择装置依据资源的使用状态来重新选择要由从处理器执行的处理模块。
5.根据权利要求4所述的信息处理装置,其中资源包括系统总线的带宽、执行处理模块的从处理器数量或从处理器的使用率。
6.根据权利要求4所述的信息处理装置,进一步包括用于保持先前的资源信息的先前数据保持装置,其中
选择装置依据先前的资源信息来重新选择要由从处理器执行的处理模块。
7.一种用于信息处理装置的信息处理方法,所述信息处理装置包括连接于系统总线的多个从处理器以及控制多个从处理器的主处理器,所述方法包括以下步骤:
保持从处理器可执行的处理模块的简档信息;
依据简档信息选择要由从处理器执行的处理模块;
使从处理器执行选择步骤所选择的处理模块;
响应于请求通过组合预定的单模块而产生复合模块以执行多个处理;以及
存储产生步骤所产生的复合模块,
其中简档信息包括输入数据的相关信息,以及
其中产生步骤依据相关信息产生复合模块。
8.一种用于使信息处理装置中控制连接于系统总线的多个从处理器的主处理器执行处理的程序,包括以下步骤:
保持从处理器可执行的处理模块的简档信息;
依据简档信息选择要由从处理器执行的处理模块;
使从处理器执行选择步骤所选择的处理模块;
响应于请求通过组合预定的单模块而产生复合模块以执行多个处理;以及
存储产生步骤所产生的复合模块,
其中简档信息包括输入数据的相关信息,以及
其中产生步骤依据相关信息产生复合模块。
9.一种信息处理装置,包括连接于系统总线的多个从处理器和控制多个从处理器的主处理器,所述信息处理装置包括:
用于保持从处理器可执行的处理模块的简档信息的保持单元;
用于依据简档信息选择要由从处理器执行的处理模块的选择单元;
用于使从处理器执行选择单元所选择的处理模块的执行单元;
用于响应于请求通过组合预定的单模块而产生复合模块以执行多个处理的产生单元;以及
用于存储产生单元所产生的复合模块的存储单元,
其中简档信息包括输入数据的相关信息,以及
其中产生单元依据相关信息产生复合模块。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004280817A JP2006099156A (ja) | 2004-09-28 | 2004-09-28 | 情報処理装置および方法、並びにプログラム |
JP280817/04 | 2004-09-28 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1755661A true CN1755661A (zh) | 2006-04-05 |
Family
ID=36100527
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2005101071575A Pending CN1755661A (zh) | 2004-09-28 | 2005-09-28 | 信息处理装置以及方法和程序 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20060069832A1 (zh) |
JP (1) | JP2006099156A (zh) |
CN (1) | CN1755661A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107533811A (zh) * | 2015-05-19 | 2018-01-02 | 索尼公司 | 信息处理装置、信息处理方法和程序 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008276547A (ja) * | 2007-04-27 | 2008-11-13 | Toshiba Corp | プログラム処理方法及び情報処理装置 |
WO2012020478A1 (ja) | 2010-08-10 | 2012-02-16 | 富士通株式会社 | スケジューラ、マルチコアプロセッサシステムおよびスケジューリング方法 |
CN103080921B (zh) | 2010-08-30 | 2015-11-25 | 富士通株式会社 | 多核处理器系统、同步控制系统、同步控制装置、信息生成方法 |
JP2014115963A (ja) * | 2012-12-12 | 2014-06-26 | Canon Inc | 情報処理装置、情報処理方法、及びプログラム |
US11062047B2 (en) * | 2013-06-20 | 2021-07-13 | Tata Consultancy Services Ltd. | System and method for distributed computation using heterogeneous computing nodes |
JP6597324B2 (ja) * | 2016-01-13 | 2019-10-30 | 富士通株式会社 | オートスケール方法、オートスケールプログラム、情報処理装置及び情処理システム |
US11593156B2 (en) * | 2019-08-16 | 2023-02-28 | Red Hat, Inc. | Instruction offload to processor cores in attached memory |
US20230418416A1 (en) * | 2022-06-22 | 2023-12-28 | Microsoft Technology Licensing, Llc | Touchscreen sensor calibration using adaptive noise classification |
-
2004
- 2004-09-28 JP JP2004280817A patent/JP2006099156A/ja not_active Withdrawn
-
2005
- 2005-09-16 US US11/227,196 patent/US20060069832A1/en not_active Abandoned
- 2005-09-28 CN CNA2005101071575A patent/CN1755661A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107533811A (zh) * | 2015-05-19 | 2018-01-02 | 索尼公司 | 信息处理装置、信息处理方法和程序 |
CN107533811B (zh) * | 2015-05-19 | 2020-11-24 | 索尼公司 | 信息处理装置、信息处理方法和程序 |
Also Published As
Publication number | Publication date |
---|---|
JP2006099156A (ja) | 2006-04-13 |
US20060069832A1 (en) | 2006-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1755661A (zh) | 信息处理装置以及方法和程序 | |
CN1300693C (zh) | 用于调节系统资源的使用的装置及其方法 | |
CN1113289C (zh) | 能执行多异步运行任务中的异步事件任务的处理器 | |
CN1258154C (zh) | 多处理器系统、数据处理系统和数据处理方法 | |
CN1282552C (zh) | 电源管理装置、文件服务器、打印机及系统、计算机软件 | |
CN101035286A (zh) | 信号处理器 | |
CN1906583A (zh) | 信息处理设备、中断处理控制方法、以及计算机程序 | |
CN1162777C (zh) | 中断管理装置和中断管理方法 | |
CN1832344A (zh) | 图形均衡器的控制器 | |
CN1612614A (zh) | 帧内预测编码方法 | |
CN1873692A (zh) | 图像处理装置、方法以及存储程序的存储介质 | |
CN1230081A (zh) | 提高了处理效率的图象声音处理装置 | |
CN1517869A (zh) | 处理器、运算处理方法和优先度决定方法 | |
CN1873689A (zh) | 图像处理设备、方法和存储有程序的存储介质 | |
CN1873690A (zh) | 图像处理设备、方法和存储有程序的存储介质 | |
CN1873687A (zh) | 图像处理装置、方法以及存储程序的存储介质 | |
CN1784011A (zh) | 图像编码装置及图像编码方法 | |
CN1750631A (zh) | 信息处理装置和方法,记录介质及其使用的程序 | |
CN1532666A (zh) | 信息处理装置、该装置的时钟脉冲控制方法及控制程序 | |
CN1643498A (zh) | 任务管理装置和方法、操作判断装置和方法以及被判断的程序 | |
CN1734438A (zh) | 信息处理设备、信息处理方法和程序 | |
CN1809161A (zh) | 对编码视频数据选择编码类型和预测模式 | |
CN1262122C (zh) | 编码装置及方法 | |
CN1942854A (zh) | 屏幕转换控制装置 | |
CN1873691A (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 | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |