CN100527119C - 信息处理设备和信息处理方法 - Google Patents

信息处理设备和信息处理方法 Download PDF

Info

Publication number
CN100527119C
CN100527119C CNB2005101038172A CN200510103817A CN100527119C CN 100527119 C CN100527119 C CN 100527119C CN B2005101038172 A CNB2005101038172 A CN B2005101038172A CN 200510103817 A CN200510103817 A CN 200510103817A CN 100527119 C CN100527119 C CN 100527119C
Authority
CN
China
Prior art keywords
processor
sub
scpu
processors
processing
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.)
Expired - Fee Related
Application number
CNB2005101038172A
Other languages
English (en)
Other versions
CN1734438A (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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Publication of CN1734438A publication Critical patent/CN1734438A/zh
Application granted granted Critical
Publication of CN100527119C publication Critical patent/CN100527119C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/483Multiproc

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Multi Processors (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)

Abstract

一种包括第一处理器和第二处理器的信息处理设备。第一处理器包括:应用程序执行控制器,用于控制应用程序的执行;工作信息获取单元,用于获取关于第二处理器工作的工作信息;分布式处理控制器,用于控制分布式处理分配给多个第二处理器,从而将与应用程序处理有关的多个处理任务集成为一个提供单一功能的处理单元;和时钟速度比率设定单元,用于相对于最大工作时钟速度来设定当前工作时钟的时钟速度比率。工作信息包括最大工作时钟速度、当前工作时钟速度和在预先指定的时间中执行分配给这些第二处理器的处理所需要的周期数量。分布式处理控制器基于工作信息控制对应于处理单元的分布式处理。

Description

信息处理设备和信息处理方法
技术领域
本发明涉及信息处理设备、信息处理方法和程序。本发明特别涉及适合于由多个处理器执行的分布式处理情况的信息处理设备、信息处理方法和程序。
背景技术
最近,分布式处理开始引起注意,其中,采用多个处理器或者计算机按照分布式方式进行处理。能够采用通过通信网络相互连接的多个计算机,或者采用由单个计算机提供的多个处理器,或者采用这些方法的组合来执行分布式处理。
要求(命令)执行分布式处理的设备或者处理器将用于执行分布式处理的数据和程序发送到其它执行分布式处理的设备或者处理器。接收到用于执行分布式处理的数据和程序的设备或者处理器执行所要求的处理,并且将结果数据发送到位于要求进行分布式处理的源头端设备或者处理器。
位于要求进行分布式处理的源头端的设备或者处理器接收从其它执行分布式处理的设备或者处理器处所发出的数据,并且基于所接收的数据执行特定的处理,或者记录所接收的数据。
已经提出了用于实现高速处理的计算机体系结构的技术,这种计算机体系结构通过使用统一的模块结构、公共的计算模块和统一的软件单元执行分布式处理,从而实现高速处理。例如,在未审查的日本专利申请JP2002-342165,未审查的日本专利申请JP 2002-351850,未审查的日本专利申请JP 2002-358289,未审查的日本专利申请JP 2002-366533和未审查的日本专利申请JP 2002-366534中描述了该技术。
根据上述文件,基本的处理模块是处理器元件(PE)。每个PE包括处理单元(PU)、直接存贮器存取控制器(DMAC)和多个加法处理处理单元(APU),即,用于主处理器的多个子处理器。
发明内容
最近,随着信息处理设备的时钟速度和元件密度的增加,处理所需要的功率消耗也大大增加。然而,在现有的分布式处理系统中,并没有考虑到对分配进行分布式处理任务的处理器进行选择,以便在执行所要求的处理时降低一个处理器或者一组处理器的功率消耗。
希望的是合理地确定分布式处理任务的分配,将作为逻辑线程执行的功能保持在通常状态下,并且可靠的执行信息处理,使得在执行所要求的处理时,能够降低一个处理器或者一组处理器的功率消耗。
根据本发明的一个实施例的信息处理设备包括一个第一处理器和多个第二个处理器。第一处理器包括应用程序执行控制装置,用于控制应用程序的执行;工作信息获取装置,用于获取关于多个第二处理器运行情况的工作信息;分布式处理控制装置,用于在使用应用程序执行控制装置对应用程序的执行进行控制时,控制分布式处理,该分布式处理将处理任务分配给所述多个第二处理器,从而将与应用程序处理有关的多个处理任务集成为一个提供单一功能的处理单元,并从而提供了对应于该处理单元的功能;和时钟速度比率设定装置,用于相对于这些第二处理器可以进行工作的最大工作时钟速度,设定当前工作时钟的时钟速度比率。工作信息包括最大工作时钟速度,当前工作时钟速度,和在预先指定的时间中执行分配给所述多个第二处理器的处理所需要的周期数量。分布式处理控制装置基于工作信息,控制对应于处理单元的分布式处理。
时钟速度比率设定装置可以设定时钟速度比率,使得在所有的第二处理器中时钟速度速度比例为一个统一值。
时钟速度比率设定装置可以独立地设定所有第二处理器的时钟速度比率。
分布式处理控制装置可以基于当前工作时钟速度和在预先指定的时间中执行分配给这些第二处理器的处理任务所需要的周期数量,计算处理器的使用率并且进行控制,从而将优先权给那些在分配对应于该处理单元的分布式处理任务中处理器使用率和时钟速度比率之间的比值较低的第二处理器。
时钟速度比率设定装置可以基于处理器使用率更新时钟速度比率。
根据本发明的另一个实施例的信息处理方法是一种用于包括一个第一处理器和多个第二个处理器的信息处理设备的信息处理方法。该信息处理方法包括以下步骤:请求开始分布式处理任务,其中,控制应用程序执行的第一处理器将处理任务分配给多个第二处理器,从而将分配给多个第二处理器的多个处理任务集成为一个提供单一功能的处理单元,并从而提供了对应于该处理单元的功能;获取关于多个第二处理器运行情况的工作信息,该工作信息包括这些第二处理器可以进行工作的最大工作时钟速度,这些第二处理器的当前工作时钟速度,和在预先指定的时间中执行分配给这些第二处理器的处理任务所需要的周期数量;基于关于多个第二处理器的工作信息,控制对应于处理单元的分布式处理任务的分配;和相对于这些第二处理器可以进行工作的最大工作时钟速度,设定当前工作时钟的时钟速度比率。
根据本发明的一个实施例的一种程序允许计算机执行用于控制使用一个第一处理器和多个第二处理器的分布式处理任务的处理。该处理包括以下步骤:请求开始分布式处理任务,其中,执行应用程序的第一处理器将处理任务分配给多个第二处理器,从而将分配给多个第二处理器的多个处理任务集成为一个提供单一功能的处理单元,并从而提供了对应于该处理单元的功能;获取关于第二处理器运行情况的工作信息,工作信息包括这些第二处理器可以进行工作的最大工作时钟速度,这些第二处理器的当前工作时钟速度,和在预先指定的时间中执行分配给这些第二处理器的处理任务所需要的周期数量;基于关于多个第二处理器的工作的工作信息,控制对应处理单元的分布式处理任务的分配;和根据这些第二处理器可以进行工作的最大工作时钟速度,设定当前工作时钟的时钟速度比率。
采用根据本发明实施例的该信息处理设备、该信息处理方法和该程序,通过使用第一处理器执行应用程序,执行了分布式处理任务。基于关于第一处理器和第二处理器的工作信息,对对应处理单元的分布式处理任务的分配进行控制,从而使第一处理器和第二处理器所使用的处理能力与全部的处理能力的比率不超过1。
根据本发明的实施例,能够执行分布式处理任务。特别是,由于对对应处理单元的分布式处理任务的分配进行控制,从而第一处理器和第二处理器所使用的处理能力与全部的处理能力的比率不超过1,因此在可靠地执行信息处理的同时,将作为逻辑线程执行的功能保持在通常状态下。
附图说明
图1是一个示出了根据本发明的一种实施例的通信系统的图;
图2是一个用于解释主存储器的图;
图3是一个用于解释子处理器的本地存储器的图;
图4是一个用于解释密钥管理表的图;
图5是一个示出了软件单元的一种示例结构的图;
图6是一个示出了在包括一个状态返回命令并将其作为一个DMA命令的情况下软件单元数据区结构的图;
图7是一个示出了存储在图1所示信息处理控制器的主存储器中的软件配置的图;
图8是一个用于解释信息处理控制器所能够执行的功能的功能方框图;
图9是一个用于解释REQUEST_information(应用程序所需要的条件)的图;
图10是一个示出了功率消耗PT和工作时钟速度之间关系的图;
图11是一个用于解释第一分布处理分配过程的流程图;
图12是一个用于解释第一分布处理分配过程的流程图;
图13是一个用于解释在进行新处理分配之前处理器的状态的图;
图14是一个用于解释在进行处理分配之后处理器的状态的图;
图15是一个用于解释第二分布处理分配过程的流程图;
图16是一个用于解释处理器分配确定过程的流程图;
图17是一个用于解释处理器分配确定过程的流程图;
图18是一个用于解释在进行处理分配之后处理器状态的图;
图19是一个用于解释在进行新处理分配之前处理器状态的图;和
图20是一个用于解释在进行处理分配之后处理器状态的图。
具体实施方式
现在,参考附图描述本发明的实施例。
图1是一个示出了根据本发明的一种实施例的通信系统的图,该系统能够执行分布式处理任务。在该通信系统中,信息处理设备1-1到1-n通过网络2相互连接,网络2可以是本地网络、局域网络(LAN)、广域网络(WAN)或者因特网。
在接收到采用多个信息处理设备执行分布式处理任务的指令后,信息处理设备1-1生成一个软件单元,该软件单元包括执行所要求的处理所必须的数据和程序,然后通过网络2将软件单元发送到信息处理设备1-2到1-n中的一个。
信息处理设备1-2到1-n中的每一个从信息处理设备1-1接收软件单元,并基于接收到的软件单元执行要求的处理。在执行所要求的处理时,信息处理设备1-2到1-n中的每一个通过网络2,将在要求的处理中所获得的数据发送到信息处理设备1-1。以下,在信息处理设备1-1到1-n不需要相互区分时,会将信息处理设备1-1到1-n简称为信息处理设备1。
信息处理设备1-1从信息处理设备1-2到1-n接收数据,然后基于接收到的数据执行特定的处理或者记录所接收的数据。
信息处理设备1-1至少包括信息处理控制器11,主存储器12,记录单元13-1,记录单元13-2,总线14,操作输入单元15,通信单元16,显示器17和驱动器18。
信息处理控制器11执行记录在主存储器12中的各种程序,并且对信息处理设备1-1进行全面的控制。信息处理控制器11生成一个软件单元,并且将该软件单元通过总线14发送到通信单元16。信息处理控制器11将从通信单元16得到的数据发送到记录单元13-1或者记录单元13-2。信息处理控制器11基于从操作输入单元15输入的用户指令,从主存储器12、记录单元13-1或者记录单元13-2中获取特定的数据,并且将数据通过总线14发送到通信单元16。
此外,信息处理控制器11还指定信息处理设备ID,该ID使信息处理设备1-1在整个网络2中有唯一的标识。
信息处理控制器11包括总线41、主处理器42、子处理器43-1到43-m、直接存贮器存取控制器(DMAC)44、密钥管理表记录单元45和磁盘控制器(DC)46。
主处理器42、子处理器43-1到43-m、直接存贮器存取控制器(DMAC)44、密钥管理表记录单元45和磁盘控制器(DC)46通过总线41相互连接。主处理器42还指定一个主处理器ID,用于标识主处理器42。类似地,子处理器43-1到43-m也分别指定了它们的子处理器ID,用于识别子处理器43-1到43-m。
当使通过网络2相互连接的信息处理设备1-2到1-n执行分布式处理任务时,主处理器42产生一个软件单元,并且将该软件单元通过总线41和14发送到通信单元16。可以对主处理器42进行配置,从而使其执行管理程序之外的其它程序。在该情况下,主处理器42用作一个子处理器。
主处理器42能够使子处理器43-1到43-m中的每一个执行一个独立程序,以便生成具有逻辑单一性的功能(逻辑线程)的结果。即,主处理器42对子处理器43-1到43-m的程序执行进行调度管理,并且对信息处理控制器11(信息处理设备1-1)进行全面的控制。
主处理器42包括本地存储器51-1,并且将从主存储器12装载的数据和程序暂时存储在本地存储器51-1中。主处理器42从本地存储器51-1中读取数据和程序,并且基于这些数据和程序执行各种类型的处理。
在主处理器42的控制下,子处理器43-1到43-m通过独立和并行地执行程序,对数据进行处理。此外,在需要时,可以这样进行安排,使得主处理器42所执行的程序与子处理器43-1到43-m所分别执行的程序相联合。
子处理器43-1到43-m各自包括本地存储器51-2到51-(m+1)。子处理器43-1到43-m各自将所需要的数据和程序暂时存储在本地存储器51-2到51-(m+1)中。子处理器43-1到43-m各自从本地存储器51-2到51-(m+1)中读出数据和程序,并且基于这些数据和程序执行各种类型的处理。
以下,在子处理器43-1到43-m不需要相互区分时,会将子处理器43-1到43-m简称为子处理器43。类似地,以下,在本地存储器51-1到51-(m+1)不需要相互区分时,会将本地存储器51-1到51-(m+1)简称为本地存储器51。
DMAC 44基于主处理器密钥、子处理器密钥和存取密钥,管理主处理器42和子处理器43对主存储器12中的程序和数据的存取。
密钥管理表记录单元45中记录了主处理器密钥、子处理器密钥和存取密钥。后面会对主处理器密钥、子处理器密钥和存取密钥进行详细描述。
磁盘控制器(DC)46管理主处理器42和子处理器43对记录单元13-1和记录单元13-2的存取。
尽管这里假设信息处理设备1-1仅仅包括一个信息处理控制器11,作为替换,信息处理设备1-1可以包括多个信息处理控制器11。
主存储器12可以用例如一个RAM实现。主存储器12暂时存储主处理器42和子处理器43所执行的各种类型的数据和程序。
记录单元13-1和记录单元13-2中的每一个可以用例如一个硬盘实现。记录单元13-1和记录单元13-2存储由主处理器42和子处理器43所执行的各种类型的数据和程序。此外,记录单元13-1和记录单元13-2中记录从信息处理控制器11得到的数据。以下,在记录单元13-1和记录单元13-2不需要相互区分时,会将记录单元13-1和记录单元13-2简称为记录单元13。
此外,信息处理控制器11通过总线14与操作输入单元15、通信单元16、显示器17和驱动器18相连。操作输入单元15例如包括键、按钮、触摸板、鼠标等等。响应用户的一个操作输入,操作输入单元15通过总线14将对应于该操作输入的信息发送到信息处理控制器11。
通信单元16通过网络2,将从信息处理控制器11得到的软件单元发送到信息处理设备1-2到1-n。此外,通信单元16通过总线14将信息处理设备1-2到1-n所发送的数据发送到信息处理控制器11。
显示器17可以用例如阴极射线管(CRT)显示器或者液晶显示器(LCD)实现。显示器17显示通过总线14提供的、信息处理控制器11处理所生成的信息(包括执行应用程序所生成的数据,例如用于执行应用程序的用户提示之类的信息等等)。
在安装磁盘61、光盘62、磁性光盘63、半导体存储器64或者类似设备时,驱动器18驱动这些设备,并获得记录在其中的程序、数据或者类似内容。在需要时,通过总线14将程序或者数据传输到信息处理控制器11,并且通过信息处理控制器11记录在记录单元13上。
此外,信息处理设备1包括供电单元19,用于为整个信息处理设备1提供电力。
由于信息处理设备1-2到1-n的结构与信息处理设备1-1类似,因此省略了其结构的描述。然而,并不局限与上述结构,可以根据需要,通过添加或者删除对应的元件,为信息处理设备1-2到1-n添加或者删除功能。
下一步,参考图2到4,描述在子处理器43访问主存储器12时所执行的处理。
如图2所示,主存储器12有多个采用特定地址的存储器区域。每个存储器区域中指定了一个用于存储表示数据状态的信息的附加段。附加段包括一个F/E位,一个子处理器ID和一个LS地址(本地存储器)。此外,每个存储器区域中指定了存取密钥,下面会描述该密钥。
当F/E位的值为“0”时,表示相关的数据是已经被子处理器43读取并且正在进行处理的数据,或者表示该相关存储器区域为空并且相关数据是已经过时的无效数据,从而不允许从该存储器区域读取数据。此外,当F/E位的值为“0”时,表示能够将数据写入该相关存储器区域,并且在将数据写入后,将F/E位值置为“1”。
当F/E位的值为“1”时,表示在该存储器区域中的数据没有被子处理器43读取,并且该数据是未被处理的当前数据。带有值为“1”的F/E位的存储器区域中的数据能够被读取,而当子处理器43读取该数据后,将F/E位值置为“0”。此外,当F/E位的值为“1”时,表示不允许将数据写入相关存储器区域。
此外,当F/E位的值为“0”(不允许读取,允许写入)时,可以为相关存储器设定读取保留。要将带有值为“0”的F/E位的存储器区域设定读取保留,子处理器43将其子处理器ID和LS地址写入与读取保留相关的存储器区域的附加段中。然后,子处理器43将数据写入与读取保留相关的存储器区域中。当F/E位的值为“1”(允许读取,不允许写入)时,将数据读出到由子处理器ID和LS地址所标识的本地存储器51中,子处理器ID和LS地址作为读取保留信息预先写入了附加段。
当要采用多个子处理器43对数据进行多阶段处理时,通过按照以上方式来控制每个存储器区域的数据读写,紧随在一个执行较前阶段处理的子处理器43将处理后的数据写入主处理器12的一个特定地址之后,另一个执行较后阶段处理的子处理器43可以读取在较前阶段所处理的数据。
此外,如图3所示,子处理器43的本地存储器51有多个采用特定地址的存储器区域。类似地,每个存储器区域中指定了一个附加段。附加段包括一个占用位(busy bit)。
当子处理器43将存储在主存储器12中的数据读取到子处理器43的本地存储器51的一个存储器区域中时,通过将相关的占用位设置为“1”形成一个保留。在占用位设置为“1”的存储器区域中,不允许存储其它数据。当数据已经读取到本地存储器51的存储器区域中后,将占用位设置为“0”,从而可以存储其它数据。
此外,如图2所示,与信息处理控制器11相连接的主存储器12包括多个沙箱。沙箱定义主存储器12的区域,并且被分配给各个子处理器43,由各个子处理器独占使用。即,各个子处理器43允许使用所指定的沙箱,但是不能对该沙箱之外的数据进行存取。
主存储器12有多个存储器区域,每个沙箱是一组存储器区域。
此外,为了实现主存储器12的独占控制,使用了图4所示的密钥管理表。密钥管理表记录在密钥管理表记录单元45中,并且与DMAC 44相关联。密钥管理表的每项包括一个子处理器的ID,一个子处理器密钥和一个密钥掩码。
当子处理器43读取主存储器12时,子处理器43输出一个读出命令或者一个写入命令到DMAC 44。该命令包括标识子处理器43的子处理器ID,和在存取请求的目标位置上的主存储器12的地址。
当DMAC 44执行从子处理器43送入的命令时,DMAC 44参考密钥管理表检查在存取请求源位置的子处理器43的子处理器密钥。然后,DMAC44将在存取请求源位置的子处理器密钥与为在存取请求目标位置的主存储器12的存储器区域所指定的存取密钥进行比较。仅当两个密钥相互吻合时,DMAC 44才执行从子处理器43送入的命令。
图4所示的密钥管理表中所记录的、带有比特位被置为“1”的每个密钥掩码,可以将与该掩码相关联的子处理器密钥的比特位设置为“0”或者“1”。
例如,假设子处理器密钥为“1010”。通常,子处理器密钥仅仅允许存取存取密钥为“1010”的沙箱。然而,当将一个密钥掩码“0001”与该子处理器密钥相关联时,在子处理器密钥和存取密钥之间的匹配确定在密钥掩码比特位为“1”的位置被数字掩盖(即,省略在密钥掩码比特位为“1”的位置的检查)。因此,子处理器密钥为“1010”允许存取存取密钥为“1010”或者“1011”的沙箱。
通过上述方法实现主存储器12的沙箱的独占性。即,当要采用多个子处理器43对数据进行多阶段处理时,通过采用以上方案,仅仅允许一个执行较前阶段处理的子处理器43和另一个执行较后阶段处理的子处理器43对主存储器12中的一个特定地址进行存取,从而能够保护数据。
例如,可以如下改变密钥掩码的值。首先,紧接在信息处理设备1-1被起动之后,密钥掩码的值都为“0”。假设,装载在主处理器42中的程序与装载在子处理器43中的程序相联合。当将子处理器43-1的处理结果数据存储在主存储器12中,并且将存储在主存储器12中的数据输入子处理器43-2中时,主存储器12中存储从子处理器43-1的处理结果输出数据的区域对于子处理器43-1和子处理器43-2来说必须是可以存取的。在该情况下,主处理器42改变密钥掩码的值,以适合提供能够被多个子处理器43所存取的一个主存储器区域,从而允许采用子处理器43对数据进行多阶段处理。
更确切地说,例如,子处理器43-1基于信息处理设备1-2到1-n所发送地数据执行特定的处理,并且将处理过的数据存储在主存储器12中的第一区域中。然后,子处理器43-2从主存储器12中的该第一区域中读取数据,基于该数据执行特定的处理,并且将处理过的数据存储在主存储器12中与第一区域不同的第二区域中。
当子处理器43-1的子处理器密钥为“0100”时,主存储器12的第一区域的存取密钥为“0100”,子处理器43-2的子处理器密钥为“0101”,主存储器12的第二区域的存取密钥为“0101”,不允许子处理器43-2对主存储器12的第一区域进行存取。因此,将子处理器43-2的密钥掩码设为“0001”,从而就允许子处理器43-2对主存储器12的第一区域进行存取。
下面,参考图5和6描述在信息处理设备1-1生成软件单元,并且信息处理设备1-2到1-n基于该软件单元执行分布式处理任务时,所执行的处理。
信息处理设备1-1的主处理器42生成用于执行处理的软件单元,该软件单元包括命令、程序和数据,并且将软件单元通过网络2发送到信息处理设备1-2到1-n。
图5是一个示出了软件单元的一种示例结构的图。
软件单元包括源ID、目标ID、接受者ID、单元接口、DMA命令、程序和数据。
源ID包括软件单元的源位置处的信息处理设备1-1的网络地址、信息处理设备1-1的信息处理控制器11的信息处理设备ID、和信息处理设备1-1的信息处理控制器11中的主处理器42和子处理器43的标识符(主处理器ID和子处理器ID)。
目标ID包括软件单元的源位置处的信息处理设备1-2到1-n的网络地址、信息处理设备1-2到1-n之中一个的信息处理控制器的信息处理设备ID、和信息处理设备1-2到1-n之中一个的信息处理控制器中的主处理器和子处理器的标识符。
接受者ID包括作为软件单元执行结果的接受者的信息处理设备1-1的网络地址、信息处理设备1-1的信息处理控制器11的信息处理设备ID、和信息处理控制器11中的主处理器42和子处理器43的标识符。
单元接口是关于使用软件单元的信息,它包括全局ID、所需子处理器的信息、沙箱大小和先前软件单元的ID。
全局ID使软件单元在整个网络2中有唯一的标识,基于源ID和生成或者发送软件单元的日期和时间生成该标识。
所需子处理器的信息包括例如用于执行该软件单元所需的子处理器的数量。沙箱大小包括用于执行该软件单元所需的子处理器的的主存储器和本地存储器的存储量。
先前软件单元的ID是在一组用于请求包括流数据或者类似数据的连续执行的软件单元中的一个先前软件单元的标识符。
软件单元的执行部分包括DMA命令、程序和数据。DMA命令包括用于起动程序的一系列DMA命令。程序包括一个由子处理器执行的子处理器程序。这里数据指由包括子处理器程序在内的程序所处理的数据。
此外,DMA命令包括装载命令、踢出命令、功能程序执行命令、状态请求命令和状态返回命令。
装载命令是用于将主存储器12中存储的信息装载到子处理器的本地存储器中的命令。装载命令包括主存储器地址、子处理器ID和LS地址。主存储器地址是要装载的信息所在的主存储器中的特定区域的地址。子处理器ID和LS地址代表子处理器的标识符和要装载信息的本地存储器的地址。
踢出命令是用于开始执行一个程序的命令,它包括子处理器ID和程序计数器。子处理器ID标识与踢出相关的子处理器,程序计数器代表用于程序执行的程序计数器的地址。
功能程序执行命令是由一个设备(例如,信息处理设备1-1)发出的命令,用于请求另一个设备(例如,信息处理设备1-2到1-n中的一个)执行一个功能程序。接收功能程序执行命令的设备(例如,信息处理设备1-2到1-n中的一个)的信息处理控制器基于功能程序ID识别要被起动的功能程序。
状态请求命令是用于请求关于信息处理设备1-2到1-n之中的一个的当前工作状态的设备信息的命令,该信息处理设备由被发送到接受者ID所标识的信息处理设备1-1的目标ID所标识。
状态返回命令是这样一个命令,信息处理设备1-2到1-n之中接收到状态请求命令的那一个,使用该命令将设备信息返回到状态请求命令中的接受者ID所标识的信息处理设备1-1。状态返回命令将设备信息存储到执行部分的一个数据区域中。
图6是一个示出了在DMA命令是状态返回命令的情况下软件单元的数据区的结构的图。
信息处理设备ID是一个标识符,用于标识包含信息处理控制器的信息处理设备1,并且它表示信息处理设备1-2到1-n之中发送状态返回命令的那一个的ID。例如,在接通信息处理设备1-2到1-n之中一个的电源时,由信息处理设备1-2到1-n之中的一个的信息处理控制器11的主处理器42,基于例如接通电源的日期和时间、信息处理设备1-2到1-n之中的一个的网络地址和信息处理设备1-2到1-n之中一个的子处理器43的数量,生成信息处理设备ID。
信息处理设备类型ID包括表示信息处理设备1-2到1-n之中的一个的特征的值。信息处理设备1-2到1-n之中的一个的特征指的是,表示信息处理设备1-2到1-n之中一个的类型的信息,例如,表示信息处理设备1-2到1-n之中一个是,例如硬盘记录器、个人数字助理(PDA)或者便携式光盘(CD)播放器的信息。可以替换地是,信息处理设备类型ID可以表示信息处理设备1-2到1-n之中一个的一种功能,例如视频/音频录制或者视频/音频回放。表示信息处理设备1-2到1-n之中一个的特征或者功能的值是预先定义的,从而接收到该状态返回命令的信息处理设备1-1能够通过读取信息处理设备类型ID,获得信息处理设备1-2到1-n之中一个的特征或者功能。
MS(主/从)状态表示信息处理设备1-2到1-n之中一个是否作为主设备或者从属设备进行工作,当它的值为“0”时表示该设备作为主设备进行工作,而当它的值为“1”时表示该设备作为从属设备进行工作。
主处理器工作频率表示信息处理控制器11的主处理器42的工作频率。主处理器使用率表示,对于主处理器42当前正在执行的所有程序来说,主处理器42的使用率。主处理器使用率是表示主处理器42正在使用中的处理能力和全部处理能力之间比值的一个值。例如,通过MIPS单元计算主处理器使用率,或者基于每个单位时间内的处理器使用时间计算主处理器使用率,其中MIPS是一个用于评估处理器处理能力的单元,。
子处理器的数量表示在信息处理控制器11中的子处理器43的数量。子处理器ID是信息处理控制器11中的子处理器43的标识符。
子处理器状态表示子处理器43的状态,例如“未使用”,“保留”或者“占有”。“未使用”表示子处理器43当前没有被使用或者保留用于使用。“保留”表示子处理器43当前没有被使用,但是被保留。“占有”表示子处理器43当前正在使用。
子处理使用率表示子处理器43用于当前正在被子处理器43执行的程序或者保留用于该子处理器43执行的程序的使用率。即,当子处理器状态为“占有”时,子处理使用率表示当前使用率,而当子处理器状态为“保留”时,子处理使用率表示用于安排使用的一个估计使用率。
将一组子处理器ID、子处理器状态和子处理器使用率设定给每个子处理器43,从而设定对应于在信息处理控制器11中子处理器43数量的组的数量。
主存储器总容量和正在使用的主存储器量分别描述与信息处理控制器11相连接的主存储器12的全部容量和正在使用的量。
记录单元的数量表示与信息处理控制器11相连接的记录单元13的数量。记录单元ID是用于唯一标识与信息处理控制器11相连接的记录单元13的信息。记录单元类型ID是表示记录单元13类型(例如,硬盘、CD±RW、DVD±RW、存储器盘、SRAM或者ROM)的信息。
记录单元的总容量和在记录单元中所使用的数量分别表示由记录单元ID所确定的记录单元13的总的容量和正在使用的数量。
将一组记录单元ID、记录单元类型ID、记录单元总容量和正在使用的记录单元数量设定给每个记录单元13,从而设定对应与信息处理控制器11相连接的记录单元数量的组的数量。即,当将多个记录单元13连接在一个单个的信息处理控制器11上时,将不同的记录单元ID分配给各个记录单元13,同样将记录单元类型ID、记录单元总容量和正在使用的记录单元数量分别进行管理。
当使信息处理设备1-2到1-n执行分布式处理任务时,信息处理设备1-1生成软件单元,然后将软件单元通过网络2发送到信息处理设备1-2到1-n。
从信息处理设备1-1发送信息处理设备1-2到1-n的数据的各种类型包含在软件单元中进行发送,因此这里不再进行重复描述。
信息处理设备1-2到1-n之中一个的信息处理控制器11的主处理器42生成具有上述结构的软件单元,然后通过网络2将该软件单元发送给其它信息处理设备1的信息处理控制器11。基于上述的源ID、目标ID和接受者ID,对在源位置的信息处理设备1、在目标位置的信息处理设备1、在接受者位置的信息处理设备以及这些信息处理设备1的信息处理控制器11进行识别。
接收到软件单元的信息处理设备1的信息处理控制器11中的主处理器42,将软件单元存储在主存储器12中。此外,在目标位置的主处理器42读取软件单元并且处理其中包含的DMA命令。
更确切地说,在目标位置的主处理器42首先执行一个装载命令。然后,将信息从主存储器12中由该装载命令指定的地址中装载到子处理器43的本地存储器51的一个特定区域,该子处理器由装载命令中包含的子处理器ID和LS地址确定。这里,所装载的信息是包含在所接收的软件单元中的子处理器程序、用于执行该程序的数据或者其它特定数据。
然后,主处理器42将一个踢出命令输出到由踢出命令中包含的子处理器ID所确定的子处理器43,在该踢出命令中还包含了一个程序计数器。
指定的子处理器根据踢出命令和程序计数器,执行子处理器程序。然后,子处理器将执行结果存储到主存储器12中,并且通知主处理器42处理完毕。
在目标位置的信息处理设备的信息处理控制器11中,执行软件单元的处理器不需要一定是子处理器43,也可以将主处理器42指定为执行软件单元中功能程序的处理器。
在该情况下,在源位置的信息处理设备1将一个软件单元发送到目标位置的信息处理设备,该软件单元包含替代子处理器程序的主存储器程序,和由该主存储器程序所处理的数据,并且包括作为DMA命令的一个装载命令,从而将主存储器程序和由主存储器程序所处理的数据存储在主存储器12中。然后,在源位置的信息处理设备1将一个软件单元发送到目标位置的信息处理设备,该软件单元包含在源位置的信息处理设备1的信息处理控制器11的主处理器ID,主存储器地址,用于确认主存储器程序的标识符,例如功能程序标识符和程序计数器,还包含踢出命令或者作为DMA命令的功能程序执行命令,从而使用主处理器42执行主存储器程序。
如上所述,在根据本实施例的网络系统中,在源位置的信息处理设备1将一个包含子处理器程序或者主存储器程序的软件单元发送到目标位置的信息处理设备1,并且使子处理器程序装载到目标位置的信息处理设备1的信息处理控制器11的子处理器43中,从而可以通过目标位置的信息处理设备1执行子处理器程序或者主存储器程序。
当接收到的软件单元中所包含的程序是子处理器程序时,目标位置的信息处理设备1的信息处理控制器11将该子处理器程序装载到指定的子处理器43中。然后,指定的子处理器43执行包含在软件单元中的子处理器程序或者主存储器程序。
因此,没有在软件单元目标位置处的信息处理设备1的用户操作,也可以自动地将子处理器程序或者主存储器程序从软件单元源位置处的信息处理设备1分配到目标位置的信息处理设备1,并且通过该软件单元目标位置的信息处理设备1执行子处理器程序或者主存储器程序。此外,在多个子处理器43之中,通过DMA并采用上述的沙箱传输数据,即使是必须在一个单一信息处理控制器11中对数据进行多阶段处理,也能快速安全地处理数据。
图7示出了存储在信息处理控制器11的主存储器12中的软件的一个栈。这些软件程序在信息处理设备1接通电源之前,记录在与信息处理控制器11相连接的记录单元13中。
驱动器81-1到81-p是用于允许硬件操作的特殊软件。驱动器81-1到81-p例如包括:使与操作输入单元15相连接的鼠标工作的鼠标驱动,使用于在显示器17上显示图像的显卡工作的显示驱动,和使与通信单元16相连接的打印机(未示出)工作的打印驱动。
核(OS)82控制信息处理控制器11的基本操作。核82管理各种资源;例如,它将应用程序87发出的指令传输到驱动器81-1到81-p。此外,核82管理软件资源,例如应用程序87的执行环境(应用程序87所用到的寄存器组,主存储器图像,文件句柄等等)或者GUI部分。
设备驱动器83是用于执行信息处理控制器11或者信息处理设备1的数据输入/输出(发送/接收)功能的驱动器。设备驱动器83对应于信息处理设备1的功能而用于每个信息处理控制器11,例如广播接收,显示器输出,比特流输入/输出以及网络输入/输出。
库84也称为一个DLL(动态链接库),它是一个通常在程序执行中使用的功能的档案的独立文件,通常该文件本身称为一个DLL。子程序嵌入在程序中,而库84的不同在于它是在程序执行时独立于程序进行装载。由于以库84的形式提供的功能不需要重新开发,因此就提高了应用程序87的开发效率。此外,由于在多个应用程序87之间可以共享相同的程序组成部分,因此能够节省磁盘和存储器的容量。
电源管理器85检查由设备驱动器83所管理的主处理器42和子处理器43的工作状态,和根据请求所执行程序的执行状态,从而它管理每个处理器的功率消耗。电源管理器85确定分布式处理任务的分配,或者在不允许进行分布式处理任务的分配时,通知系统服务/框架86取消所请求处理的执行。即,电源管理器85控制信息处理控制器11的主处理器42和子处理器43的分布式处理。更确切地说,电源管理器85管理主处理器42和子处理器43的工作状态,确定执行由应用程序87请求执行的逻辑线程的分布式处理任务的分配,并且将程序和数据装载到相关的用于处理的主处理器42和子处理器43。
更确切地说,电源管理器85控制主处理器42和子处理器43的工作时钟速度,使其为最优值,从而能够执行由应用程序87所请求的处理,并且使信息处理控制器11的功率消耗降低。将每个处理器当前设置工作时钟速度与该处理器的最大工作速度之间的比率称之为处理器工作速度。处理器工作速度可以独立地进行控制,或者对主处理器42和子处理器43进行统一控制。即,主处理器42和子处理器43潜在地能够在最大时钟速度下工作,但是实际上,是工作在基于电源管理器85设定的处理器工作速度的最高工作速度上。
也就是说,处理器工作速度SCPU_RATE[k](其中k是一个用于识别电源管理器85所控制的处理器的指定数字)表示为最高工作时钟速度/最大工作时钟速度SCPU_CK[k]。当对主处理器42和子处理器43的处理器工作速度进行统一控制时,处理器工作速度SCPU_RATE[k]=SYSTEM_RATE。
每个处理器的处理器使用速度SCPU_STAT[k]表示为在一个预定时间段内用于执行一个应用程序的时钟周期数量(一个周期的时间是指CPU最大时钟周期的倒数)/预定时间//最大工作时钟速度SCPU_CK[k]。
例如,当主处理器42和子处理器43潜在地能够在1.2MHz的最大工作时钟速度下工作,当将1.0,0.5和0.25设定为一个处理器工作速度时,最高工作时钟速度可以是1.2MHz,600Hz和300Hz。更确切地说,当将处理器工作速度设定为0.5时,最高工作时钟速度为1.2MHz×0.5=600Hz。当它在1秒的预定时间内,花费300个时钟周期执行一个特定应用程序时,处理器使用速度SCPU_STAT[k]为300时钟周期/1秒/1.2MHz=0.25。
即,处理器使用速度和处理器工作速度满足下面表达式(1)所表示的关系:
0≤处理器使用速度(SCPU_STAT[k])≤处理器工作速度(SCPU_RATE[k])≤1.0     (1)
此外,电源管理器85为没有分配处理的子处理器43设定一个挂起状态,从而能够降低信息处理控制器11的功率消耗。
系统/服务框架86是一组软件模块,这些软件模块将由应用程序87所执行的处理分配给信息处理设备1的多个子处理器43,从而执行分布式处理,或者提供一种使多个信息处理设备1执行分布式处理的系统服务。
应用程序87是用于实现特定目的的软件程序,例如,使用信息处理控制器11控制广播的接收、记录或者播放内容、进行与三维图形有关的处理、交换电子邮件以及浏览网页。例如,当执行用于处理三维图形的应用程序87时,将用于一个屏幕的处理按照逐个像素进行分割,然后基于相同的程序和模板数据采用多个处理器并行地执行处理。即,当使用信息处理控制器11执行用于处理三维图形的应用程序87时,系统/服务框架86将基于逐个像素而分割地处理分别分配给多个子处理器43,从而并行地处理。
图8是一个用于解释信息处理控制器11管理每个处理器功率消耗并对分布式处理任务分配进行控制的功能的功能方框图。
参考图8,应用程序执行控制器101、逻辑线程执行控制器102、工作速度设定单元103、工作信息获取单元104和工作信息存储器105都是信息处理设备1的主处理器42所实现的基本功能。
用于实现这些功能的硬件并不是一定如上所述。例如,由主处理器42所实现的一些功能可以由使用另外的硬件实现。此外,还可以完全在一个单一芯片中或者多个独立芯片中实现这些功能。
应用程序执行控制器101执行用于执行应用程序的处理。此外,当使子处理器43中的一个执行分布式处理时,应用程序执行控制器101将图9所示的REQUEST_information(应用程序请求状态)作为逻辑线程设定信息发送到逻辑线程执行控制器102,从而请求生成一个逻辑线程。逻辑线程是指一个处理单元,该处理单元能够通过集成在需要时分配给各个子处理器43的多个程序(这些程序可能与相同的应用程序或者不同的应用程序有关)而提供单一功能。即,在需要时分配给各个子处理器43的多个程序就是存储在主存储器12的特定存储区域的程序。这些程序从主存储器12中装载到有关子处理器43的本地存储器51中,子处理器43响应于应用程序执行控制器101控制下所执行的应用程序的请求而执行这些程序。
在从应用程序执行控制器101发送到逻辑线程执行控制器102的REQUEST_information(应用程序请求状态)中,在开始部分提供了:用于确认一个应用程序的16字节ID(应用程序ID),用于指明是否需要在一个预定时间内完成处理的1字节的REQ_REAL消息,表示在确定子处理器分配时一个有优先权分子处理器的子处理器ID的1字节的PRIORITY_ID,和代表进行所要求的处理所需的子处理器数量的REQ_MUM。然后,存储了:REQ_MEM信息,指明在分配处理任务的子处理进行所要求的处理时占有的存储器量;以及REQ_PC信息,代表在预定时间内所要求的处理将要占有的处理周期数量。存储了对应处理所需子处理器数量的多组REQ_NUM信息和REQ_PC信息。更确切地说,作为REQ_MEM 0和REQ_PC 0,存储了主处理器42所需的存储器的数量和时钟周期的数量。然后,作为REQ_MEM 1和REQ_PC 1,REQ_MEM 2和REQ_PC 2...,存储了各个子处理器所需的存储器的数量和时钟周期的数量。对应各个子处理器的各组REQ_MUM和REQ_PC信息的存储顺序,在所需时钟周期的数量相同时,按照所需存储器的数量的降序排列。
在该例子中,REQ_REAL=1指明需要进行实时处理,并且处理周期的数量是对应于执行一个处理程序所需的处理数量的值。执行应用程序的请求和REQUEST_information还可以通过网络2,从另外一个从信息处理设备1的信息处理控制器11送入。
现在,返回图8进行描述。
逻辑线程执行控制器102包括寄存器和存储器,并且它生成和删除对应于应用程序执行控制器101所执行的应用程序的逻辑线程。更确切地说,逻辑线程执行控制器102基于图9所示的REQUEST_information和存储在工作信息存储器105中的子处理器43的工作状态,将分布式处理任务适当的分配给子处理器43,从而监控所生成的逻辑线程的状态,并且进而在功率消耗压力增加时对其工作进行控制。逻辑线程执行控制器102生成一个表,该表描述信息处理控制器11全部的管理信息,和另外一个表,该表描述执行每个逻辑线程所需要的信息,并且逻辑线程执行控制器102通过查询和更新表中的信息,控制逻辑线程的执行。
除了上述REQUEST_information之外,逻辑线程执行控制器102所管理的信息还包括:NUM_SCPU,表示信息处理控制器11的子处理器43数量;TIME_DEF,代表作为确定分布式处理任务分配的参考时间的一个预定时间,例如1秒;MEM_MARGIN,表示针对存储器使用率的裕度;THREAD_OVERHEAD[k],表示在第k个处理器进行线程切换时的系统开销量;SCPU_RATE[k],表示作为第k个处理器的处理器工作速度进行设定的一个值(0到1);RATE_MARGIN,表示与第k个处理器相关的处理器工作速度的裕度;以及N_GIVEUP,表示在没有超过指定要求时,用来结束指定处理循环的循环数量。
作为第k个处理器,第0个处理器指的是主处理器42,第1个和以后顺序的处理器指的是子处理器43。作为MEM_MARGIN,例如可以使用诸如10K字节之类的值。作为RATE_MARGIN,例如可以使用诸如0.1之类的值。这些值用于确定分布式处理任务的分配。在进行线程切换时的系统开销量指的是,保存本地存储器51中处理器正在执行的上下文信息并且恢复以前的上下文信息所需要的时钟周期数量。
当控制处理器工作速度,使其在所有处理器中都相同的时,设定为处理器工作速度的值有SYSTEM_RATE表示,并且遵循以下表达式:
处理器最高工作时钟速度=最大工作时钟速度×处理器工作速度(2)
在逻辑线程执行控制器102的控制下,工作速度设定单元103设定主处理器42和子处理器43的处理器工作速度SCPU_RATE[k]或者SYSTEM_RATE,并且在工作信息存储器105中寄存处理器工作速度SCPU_RATE[k]或者SYSTEM_RATE的值。
工作信息获取单元104获取子处理器43的工作信息,并且将工作信息发送到工作信息存储器105。
工作信息存储器105存储通过工作信息获取单元104关于本地存储器51-1的至少部分存储区域进行的处理而获取的子处理器43的工作信息和主处理器42的工作信息,以及存储由工作速度设定单元103所设定的主处理器42与子处理器43的处理器工作速度SCPU_RATE[k]或者SYSTEM_RATE。
记录在工作信息存储器105中的信息例如包括:MEM_CPU[k](K字节),表示主处理器42或子处理器43所能使用的存储器量;SCPU_CK[k]表示信息处理控制器11的第k个主处理器42或者子处理器43的最大工作时钟速度;SCPU_STAT[k],表示第k个主处理器42或者子处理器43的处理器使用率;SCPU_APPNUM[k],表示第k个主处理器42或者子处理器43当前执行的应用程序数量;SCPU_SUSPEND[k],作为一个标识指明是否能够将一个程序分配给第k个主处理器42或者子处理器43,等等信息。当SCPU_SUSPEND[k]=0时,能够将一个程序分配给第k个主处理器42或者子处理器43。当SCPU_SUSPEND[k]=1时,则禁止将一个程序分配给第k个主处理器42或者子处理器43。
第k个主处理器42或者子处理器43当前时钟速度表示为SCPU_CK[k]×SCPU_RATE[k]。此外,处理器工作速度和处理器使用率满足以下表达式(3)的关系。即,当控制处理器工作速度,使其在所有处理器中都相同的时,处理器工作速度和处理器使用率满足以下表达式(4)的关系。
0≤SCPU_STAT[k]≤SCPU_RATE[k]≤1     (3)
0≤SCPU_STAT[k]≤SYSTEM_RATE≤1      (4)
此外,在使用应用程序执行分布式处理任务时,表示第k个主处理器42或者子处理器43的处理器使用率的SCPU_STAT[k]增加。例如,在第一个应用程序的情况中,以下的表达式(5)表示了SCPU_STAT[k]的增加,在第二个应用程序或者后续的应用程序的情况中,以下的表达式(6)表示了SCPU_STAT[k]的增加。
SCPU_STAT[k]的增加=(REQ_PC/TIME_DEF)/SCPU_CK[k]     (5)
SCPU_STAT[k]的增加=((REQ_PC+THREAD_OVERHEAD[k])/TIME_DEF)/SCPU_CK[k]                                   (6)
下面,描述信息处理控制器11中的主处理器42和子处理器43的功率消耗。
信息处理控制器11中的单个主处理器42和子处理器43的功率消耗由与当前处理器工作速度成正比增加的功率消耗和当前处理器使用率成正比增加的功率消耗所确定。与当前处理器工作速度成正比增加的功率消耗PT-A是即使在主处理器42或者子处理器43没有用于进行分布式处理任务时仍然进行消耗的功率消耗,并且由以下表达式(7)表示。PA表示预先由硬件配置确定的工作时钟数量的比例系数。与当前处理器工作使用率成正比增加的功率消耗PT-B由以下表达式(8)表示。K表示预先由硬件配置确定的、所使用的时钟周期数量的比例系数。
PT-A=PA(W/Cycle)×SCPU_RATE[k]×SCPU_CK[k]      (7)
PT-B=K(W/Cycle)×SCPU_STAT[k]×SCPU_CK[k]       (8)
因此,信息处理控制器11中的主处理器42和子处理器43的总功率消耗∑PT由以下表达式(9)表示。当没有为单个处理器单独地设定处理器工作速度SCPU_RATE[k]而是使用一个公共值(SYSTEM_RATE)时,信息处理控制器11中的主处理器42和子处理器43的总功率消耗∑PT由以下表达式(10)表示。
∑PT=∑(PA×SCPU_RATE[k]×SCPU_CK[k]+K×SCPU_STAT[k]×SCPU_CK[k])                        (9)
∑PT=∑(PA×SYSTEM_RATE×SCPU_CK[k]+K×SCPU_STAT[k]×SCPU_CK[k])                        (10)
图10是一个示出了信息处理控制器11中的主处理器42和子处理器43的功率消耗PT和工作时钟速度之间的关系的图。
如图10所示,功率消耗PT随着处理器工作速度的增加而增加。然而,即使是当处理器工作速度为0时,只要有时钟信号输入到处理器,就会有不依赖于应用程序处理的恒定功率消耗,例如用于控制处理器和总线消耗的功率。提供给主处理器42和子处理器43的时钟信号表示为SYSTEM_RATE×SCPU_CK。即,即使是在处理器工作速度相同(SCPU_STAT)时,随着处理器工作速度(SYSTEM_RATE或者SCPU_RATE[k])增加时,功率消耗对应地相对于恒定功率消耗增加。
下面,参考图11和12示出的流程图,描述在本实施例中,信息处理设备所执行的第一个分布式处理任务分配确定过程。
在步骤S1,逻辑线程执行控制器102从应用程序执行控制器101接收REQUEST_information,并且确定是否已经命令分配新的分布式处理任务。当在步骤S1中,确定还没有命令分配新的分布式处理任务时,则重复步骤S1直到确定已经命令分配新的分布式处理任务。
当在步骤S1中确定已经命令分配新的分布式处理任务时,在步骤S2,逻辑线程执行控制器102根据得到的REQUEST_information中所包含信息中的请求,获取执行所分配的分布式处理任务所需要的子处理器数量j。
在步骤S3,逻辑线程执行控制器102对应在内部寄存器中的值,定义处理器使用率TEMP_STAT[k]和处理器工作速度TEMP_RATE[k],内部寄存器中存储了在为每个处理器分配分布式处理任务期间的暂定值。
在步骤S4,逻辑线程执行控制器102在从工作信息存储器105中分配分布式处理任务之前,获得每个处理器的处理器使用率SCPU_STAT[k]和处理器工作速度SCPU_RATE[k]的值,并且将这些值分配给处理器使用率TEMP_STAT[k]和处理器工作速度TEMP_RATE[k]。
这里假设在信息处理控制器11自己中包含多个子处理器43,已经执行了一个特定应用程序,并且已经通过网络2从另外一个信息处理设备1接到了执行另外一个应用程序的新请求。此外,这里假设当前由逻辑线程执行控制器102或者工作信息存储器105所管理的值为:REQ_REAL=1(需要实时处理),NUM_SCPU=3,TIME_DEF=1(1秒),RATE_MARGIN=0.1和MEM_MARGIN=10。
参考图13描述在已经执行完一个特定应用程序时,主处理器42和子处理器43-1到43-3的处理器工作速度SYSTEM_RATE(这里假设在所有的处理器中处理器的工作速度都相同)和处理器使用率SCPU_STAT[k]之间的关系。为了描述简单,假设THREAD_OVERHEAD为0。
这里,主处理器42和子处理器43-1到43-3的处理器工作速度SYSTEM_RATE为0.5,并且由k=0表示的主处理器42的处理器使用率SCPU_STAT[0]为0.3。因此,处理器使用率SCPU_STAT[0]/处理器工作速度SYSTEM_RATE为0.3/0.5。表示主处理器42所能够使用的存储器量的MEM_CPU[0]为5,000(K字节)。当前主处理器42使用的存储数量为1,000(K字节)。表示最大工作时钟速度的SCPU_CK[0]为1,000。由k=1所表示的子处理器43-1的处理器使用率SCPU_STAT[1]为0.4,因此处理器使用率SCPU_STAT[1]/处理器工作速度SYSTEM_RATE为0.4/0.5。表示子处理器43-1所能够使用的存储器量的MEM_CPU[1]为100(K字节)。当前子处理器43-1所使用的存储器量为20(K字节)。表示子处理器43-1最大工作时钟速度的SCPU_CK[1]为1,000。由k=2所表示的子处理器43-2的处理器使用率SCPU_STAT[2]为0.2,因此处理器使用率SCPU_STAT[2]/处理器工作速度SYSTEM_RATE为0.2/0.5。表示子处理器43-2所能够使用的存储器量的MEM_CPU[2]为100(K字节)。当前子处理器43-2使用的存储容量为10(K字节。)。表示子处理器43-2最大工作时钟速度的SCPU_CK[2]为1,000。由k=3所表示的子处理器43-3的处理器使用率SCPU_STAT[3]为0.1,因此处理器使用率SCPU_STAT[3]/处理器工作速度SYSTEM_RATE为0.1/0.5。表示子处理器43-3所能够使用的存储器量的MEM_CPU[3]为100(K字节)。当前子处理器43-3所使用的存储器量为5(K字节)。表示子处理器43-3最大工作时钟速度的SCPU_CK[3]为1,000。
最近根据请求而执行的应用程序的工作状态例如为:表示所需子处理器数量的REQ_NUM为2,表示主处理器42所需要的处理周期数的REQ_PC[0]为100,表示主处理器42所需要的存储器量的REQ_MEM[0]为100(K字节),表示第一个子处理器43所需要的处理周期数的REQ_PC[1]为400,表示第一个子处理器43所需要的存储器量的REQ_MEM[1]为50(K字节),表示第二个子处理器43所需要的处理周期数的REQ_PC[2]为200,表示第二个子处理器43所需要的存储器量的REQ_MEM[2]为30(K字节)。
基于这些状态,在以下描述的过程中,对分布式处理任务进行分配从而满足这些状态。
在步骤S5中,逻辑线程执行控制器102设定表示当前将处理任务分配给哪个处理器的寄存器的一个值t,该决定与表示所要求进行的处理需要的子处理器数量的REQ_NUM有关。由t=0所表示的处理器为主处理器42,由t≥1所表示的处理器为子处理器43中的一个。
在步骤S6中,逻辑线程执行控制器102设定寄存器值s=0,值s表示在信息处理控制器11的处理器中,能够指定哪个处理器。
在步骤S7中,逻辑线程执行控制器102确定第s个处理器是否能够执行REQ_NUM(t)的处理任务。
更具体地是,逻辑线程执行控制器102由于对REQ_NUM(t)的处理任务将处理器使用率SCPU_STAT[s]提高一些,并且确定在处理器使用率SCPU_STAT[s]+RATE_MARGIN不超过1以及处理器使用率SCPU_STAT[s]所需存储器量满足(REQ_MEM[s]+MEM_MARGIN)<(MEM[s]_CPU-当前正在使用的存储器量)的情况下,第s个处理器是否能够执行REQ_NUM(t)的处理任务。
当在步骤S7中确定第s个处理器不能够执行REQ_NUM(t)的处理任务时,在步骤S8中,逻辑线程执行控制器102改变寄存器值s,使s=s+1。
在步骤S9中,逻辑线程执行控制器102确定是否s>信息处理控制器11中的子处理器43的数量。当在步骤S9中确定s>信息处理控制器11所提供的子处理器43的数量不成立时,过程返回步骤S7,并且重复后续的步骤。当在步骤S9中确定s>信息处理控制器11的子处理器43的数量时,过程转到随后将描述的步骤S19。
当在步骤S7中确定第s个处理器能够执行REQ_NUM(t)的处理任务时,在步骤S10中,逻辑线程执行控制器102将第s个处理器的处理器ID(主处理器ID或者子处理器ID)写入SET_CPUID[t]中,SET_CPUID[t]对应一个内部寄存器,表示满足必要条件的一个处理器的识别数字。
在步骤S11中,逻辑线程执行控制器102更新与内部寄存器的值相关的TEMP_STAT[k],以便在进行用于分配的计算期间存储一个暂时值,从而增加对应第s个处理器处理的处理器使用率。
在步骤S12中,逻辑线程执行控制器102改变寄存器的值t,使t=t+1。
在步骤S13中,逻辑线程执行控制器102参考寄存器的值t,确定是否t>j(j为分布式处理所需要的子处理器数量)。当在步骤S13中,确定t>j不成立时,则还没有完成所请求的处理任务的分配。因此,过程返回到步骤S6,并且重复后续的步骤。
当在步骤S13中,确定t>j时,则所请求的处理任务的分配已经完成。然后,在步骤S14中,逻辑线程执行控制器102设定一个表示分配成功的标识,即,SET_NG=0。
在步骤S15中,逻辑线程执行控制器102将所有处理器的处理器工作速度TEMP_RATE[k]与最新的处理器使用率TEMP_STAT[k]进行比较,以确定是否必须根据所分配的新分布式处理任务改变处理器工作速度设定。
当在步骤S15中确定必须改变处理器工作速度设定时,即,对于处理器之一来说,当处理器工作速度TEMP_RATE[k]<处理器使用率TEMP_STAT[k]时,在步骤S16,逻辑线程执行控制器102计算一个新的处理器工作速度并将结果发送到工作速度设定单元103。工作速度设定单元103改变相关的处理器42或者子处理器43的处理器工作速度设定。
在步骤S17中,逻辑线程执行控制器102将存储在工作信息存储器105中的每个处理器的处理器使用率SCPU_STAT[k]和处理器工作速度SCPU_RATE[k],更新为分配计算所确定的处理器使用率TEMP_STAT[k]和处理器工作速度TEMP_RATE[k]。
以下根据图14描述新分布式处理任务的分配结果和处理器工作速度设定的结果。
在根据图13所描述的状态中,当对于要求进行分配的分布式处理任务中,表示所需子处理器数量的REQ_NUM为2,表示主处理器42所需处理周期数量的REQ_PC[0]为100,表示主处理器42所需存储器量的REQ_MEM[0]为100(K字节),表示第一个子处理器43所需处理周期数量的REQ_PC[1]为400,表示第一个子处理器43所需存储器量的REQ_MEM[1]为50(K字节),表示第二个子处理器43所需处理周期数量的REQ_PC[2]为200,表示第二个子处理器43所需存储器量的REQ_MEM[2]为30(K字节)的时候,如图14所示,由k=0所表示的主处理器42的处理器使用率SCPU_STAT[0]变为0.4,由k=1所表示的子处理器43-1的处理器使用率SCPU_STAT[1]变为0.8,由k=2所表示的子处理器43-2的处理器使用率SCPU_STAT[2]变为0.4,由k=3所表示的子处理器43-3的处理器使用率SCPU_STAT[3]保持为0.1。
由于RATE_MARGIN=0.1,当在完成新分布式处理任务的分配后,分别单独地控制处理器工作速度时,仅仅子处理器43-1的处理器使用率SCPU_STAT[1]变为0.9。另一方面,当在完成新分布式处理任务的分配后,统一控制处理器工作速度时,由于所有处理器的处理器工作速度都为RATE_MARGIN=0.1,则SYSTEM_RATE变为0.9。此外,在新分布式处理任务的分配的每个处理中,主处理器42所能够使用的存储器量(即,MEM_CPU[0]-当前正在使用的存储器量)变为3,900(K字节),子处理器43-1所能够使用的存储器量(即,MEM_CPU[1]-当前正在使用的存储器量)变为30(K字节),子处理器43-2所能够使用的存储器量(即,MEM_CPU[2]-当前正在使用的存储器量)变为60(K字节),子处理器43-3所能够使用的存储器量(即,MEM_CPU[3]-当前正在使用的存储器量)保持为95(K字节)。
当在步骤S15中确定不需要改变处理器工作速度时,或者在步骤S17中的处理之后,在步骤S18中,逻辑线程执行控制器102基于所确定的分配情况,将程序和数据装载到相关处理器中,并且控制逻辑线程的处理。主处理器42和子处理器43执行所分配的线程处理任务。然后过程结束。
当在步骤S9中确定s>信息处理控制器11所提供的子处理器43的数量时,在步骤S19中,逻辑线程执行控制器102设定SET_NG=1,以通知在请求源位置的用户和信息处理设备1不允许进行分布式处理任务的分配。然后过程结束。
通过上述过程,在本实施例的信息处理设备1中,能够合理地进行分布式处理任务的分配,从而降低一个处理器或者一组处理器的功率消耗。
图14示出了已经通过上述过程完成分布式处理任务的分配后的状态。以下的表达式(11)可以表示在对处理器工作速度进行统一控制的情况下的功率消耗:
∑PT=∑(PA×SYSTEM_RATE[k]+K×SCPU_STAT[k]×SCPU_CK[k])
=(0.9×4×PA+(0.4+0.8+0.4+0.1)×K)×1,000
=(3.6×PA+1.7×K)×1,000                    (11)
当对处理器工作速度进行统一控制时,在图14所示的子处理器43-3中,处理器工作速度变的很高,即使是在处理器使用率低的情况下也如此。即,从功率消耗角度来讲该分配是效率低的。
因此,为了进一步降低功率消耗,在对新分布式处理任务进行分配之前,可以基于处理器工作速度SCPU_RATE[k]或者SYSTEM_RATE和处理器使用率SCPU_STAT[k],确定新分布式处理任务的分配。
下面,参考图15中示出的流程图描述第二个分布式处理过程,在该过程中,在对新分布式处理任务进行分配之前,基于处理器工作速度和处理器使用率,确定新分布式处理任务的分配。
在步骤S31,逻辑线程执行控制器102从应用程序执行控制器101接收REQUEST_information,并且确定是否已经命令分配新的分布式处理任务。当在步骤S31中,确定还没有命令分配新的分布式处理任务时,则重复步骤S31直到确定已经命令分配新的分布式处理任务。
这里假设信息处理控制器11包含多个子处理器43,已经执行了一个特定应用程序后的主处理器42和子处理器43-1到43-3的状态与参考图13描述的状态相同。
即,由于处理器工作速度SYSTEM_RATE为0.5,并且由k=0所表示的处理器使用率SCPU_STAT[k]为0.3,处理器使用率SCPU_STAT[0]/处理器工作速度SYSTEM_RATE[0]为0.3/0.5。表示主处理器42所能够使用的存储器量的MEM_CPU[0]为5,000(K字节)。表示主处理器42最大工作时钟速度的SCPU_CK[0]为1,000。由k=1所表示的子处理器43-1处理器使用率SCPU_STAT[1]为0.4,因此处理器使用率SCPU_STAT[1]/处理器工作速度SYSTEM_RATE[1]为0.4/0.5。表示子处理器43-1所能够使用的存储器量的MEM_CPU[1]为100(K字节)。表示子处理器43-1最大工作时钟速度的SCPU_CK[1]为1,000。由k=2所表示的子处理器43-2的处理器使用率SCPU_STAT[2]为0.2,因此处理器使用率SCPU_STAT[2]/处理器工作速度SYSTEM_RATE[2]为0.2/0.5。表示子处理器43-2所能够使用的存储器量的MEM_CPU[2]为100(K字节)。表示子处理器43-2的最大工作时钟速度的SCPU_CK[2]为1,000。由k=3所表示的子处理器43-3的处理器使用率SCPU_STAT[3]为0.1,因此处理器使用率SCPU_STAT[3]/处理器工作速度SYSTEM_RATE[3]为0.1/0.5。表示子处理器43-3所能够使用的存储器量的MEM_CPU[3]为100(K字节)。表示子处理器43-3最大工作时钟速度的SCPU_CK[3]为1,000。为了描述简单,假设THREAD_OVERHEAD为0。
以下的描述将会集中于在上述状态下,另外一个信息处理系统1通过网络2新近要求执行另外一个应用程序的情况。此外,假设由逻辑线程执行控制器102或者工作信息存储器105当前所管理的值为:REQ_REAL=1(需要实时处理),NUM_CPU=3,TIME_DEF=1(1秒),RATE_MARGIN=0和MEM_MARGIN=10。
写在REQUEST_information中的新近的根据需要执行的应用程序的工作状态例如为:表示所需子处理器数量的REQ_NUM为2,表示主处理器42所需处理周期数量的REQ_PC[0]为100,表示主处理器42所需存储器量的REQ_MEM[0]为100(K字节),表示第一个子处理器43所需处理周期数量的REQ_PC[1]为400,表示第一个子处理器43所需存储器量的REQ_MEM[1]为50(K字节),表示第二个子处理器43所需处理周期数量的REQ_PC[2]为200,表示第二个子处理器43所需存储器量的REQ_MEM[2]为30(K字节)。
当在步骤S31中,确定已经命令分配新的分布式处理任务时,在步骤S32中,逻辑线程执行控制器102初始化指示是否满足分配状态的标识SET_NG,即SET_NG=0。
在步骤S33中,逻辑线程执行控制器102获得每个处理器的当前处理器使用率SCPU_STAT[k],并将其分配给TEMP_STAT[k]。
在步骤S34中,逻辑线程执行控制器102获得每个处理器的当前处理器工作速度SCPU_RATE[k],并将其分配给TEMP_RATE[k]。
在步骤S35中,逻辑线程执行控制器102初始化表示是否已经确认分配了处理任务的处理器的标识SET_CPUID[t],即SET_CPUID[t]=0。
在步骤S36中,执行一个处理器分配确认过程,后面将参考图16和图17的流程图描述该过程。
在步骤S37中,逻辑线程执行控制器102基于标识SET_NG的值,确定新分布式处理任务的分配是否已经成功,标识SET_NG表示处理器分配过程的结果,该过程在后面将参考图16和图17的流程图进行描述。
当在步骤S37中确定新分布式处理任务的分配已经成功时,在步骤S38中,逻辑线程执行控制器102将所有处理器的处理器工作速度TEMP_RATE[k]和当前处理器使用率TEMP_STAT[k]进行比较,从而确认是否需要根据新分布式处理任务改变处理器工作速度设定。
当在步骤S38中确认需要改变改变处理器工作速度时,即,当对于一个处理来说处理器工作速度TEMP_RATE[k]<处理器使用率TEMP_STAT[k]时,在步骤S39中,逻辑线程执行控制器102计算一个新的处理器工作速度并将结果发送到工作速度设定单元103。工作速度设定单元103为处理器42和子处理器43中相关的一个设定处理器工作速度。
在步骤S40中,逻辑线程执行控制器102将记录在工作信息存储器105中的每个处理器的处理器使用率SCPU_STAT[k]和处理器工作速度SCPU_RATE[k],更新为分配计算所获得的处理器使用率TEMP_STAT[k]和处理器工作速度TEMP_RATE[k]。新分布式处理任务的分配结果和工作速度的设定结果将参考图18至20进行描述。
当在步骤S38中确定不需要改变处理器工作速度设定时,或者在步骤S39中的处理之后,在步骤S41中,逻辑线程执行控制器102基于所确定的分配情况,将程序和数据装载到相关处理器中,并且控制逻辑线程的处理。主处理器42和子处理器43执行所分配的线程处理任务。然后过程结束。
当在步骤S37中确定新分布式处理任务的分配没有成功时,在步骤S42中,逻辑线程执行控制器102通知在请求源位置的用户和信息处理设备1不允许进行分布式处理任务的分配。然后过程结束。
通过上述在本实施例中的信息处理设备1中的过程,将其与参考图11和12描述的第一个分布式处理分配过程执行的情况相比,可以适当的确定分布式处理任务的分配,从而进一步降低一个处理器或者一组处理器的功率消耗。
下面,参考图16和图17的流程图,描述在图15中所示的步骤S36中执行的处理器分配确定过程。
在步骤S61中,逻辑线程执行控制器102获取执行分布式处理所需的子处理器数量j,该分布式处理任务根据从所获取的REQUEST_information中的请求进行分配。
在步骤S62中,逻辑线程执行控制器102对应一个内部寄存器的值,定义SCPU_NB,用来区别每个处理器以便确定是否允许进行分布式处理任务的分配。
在步骤S63中,逻辑线程执行控制器102将SCPU_NB[0]选为主处理器42。
在步骤S64中,逻辑线程执行控制器102根据所获取的REQUEST_information中包含的信息,确定是否已经为根据请求所执行的处理指定了PRIORITY_ID。当在步骤S64中确定没有指定PRIORITY_ID时,过程进入步骤S67中,该步骤在后面描述。
当在步骤S64中确定已经指定了PRIORITY_ID时,在步骤S65中,逻辑线程执行控制器102将SCPU_NB[1]选为由PRIORITY_ID所指定的子处理器43。
在步骤S66中,逻辑线程执行控制器102参考所获取的REQUEST_information中包含的信息,将按照处理器使用率SCPU_STAT[k]的当前裕度的降序进行排列的子处理器的子处理器ID联系起来,处理器使用率SCPU_STAT[k]与SCPU_NB[i]中处理器工作速度SCPU_RATE[k]或者SYSTEM_RATE相关,其中2≤i≤信息处理控制器11中所包含的子处理器43(除了已经暂停的子处理器43之外)的数量。过程接着进入到步骤S68中,该步骤在后面描述。
当在步骤S64中确定没有指定PRIORITY_ID时,在步骤S67中,逻辑线程执行控制器102参考所获取的REQUEST_information中包含的信息,将按照处理器使用率SCPU_STAT[k]的当前裕度的降序进行排列的子处理器的子处理器ID联系起来,处理器使用率SCPU_STAT[k]与SCPU_NB[i]中处理器工作速度SCPU_RATE[k]或者SYSTEM_RATE相关,其中1≤i≤信息处理控制器11中所包含的子处理器43(除了已经暂停的子处理器43之外)的数量。
即,通过步骤S63到步骤S67中的处理,将主处理器42与SCPU_NB[0]联系起来,并且当为SCPU_NB[1],SCPU_NB[2],SCPU_NB[3],...或者SCPU_NB[k]指定了PRIORITY_ID时,则将优先权给了所指定的子处理器43,并且除了已经暂停的子处理器43之外,连续地将按照处理器使用率SCPU_STAT[k]的当前裕度的降序顺序排列的子处理器43联系起来,处理器使用率SCPU_STAT[k]的与处理器工作速度SCPU_RATE[k]或者SYSTEM_RATE相关。
即,在参考图13所描述的情况下,当没有指定PRIORITY_ID或者暂停时,将主处理器42与SCPU_NB[0]联系起来,将子处理器43-3与SCPU_NB[1]联系起来,将子处理器43-2与SCPU_NB[2]联系起来,将子处理器43-1与SCPU_NB[3]联系起来。
在步骤S66或者步骤S67的处理之后,在步骤S68中,逻辑线程执行控制器102设定t=0,其中t为一个寄存器值,表示在REQ_NUM中,确定将任务分配给了哪个处理器,REQ_NUM表示对于根据请求执行处理所需要的处理器数量。t=0表示的处理器是主处理器42,t≥1表示的处理器是子处理器43中的一个。
在步骤S69中,逻辑线程执行控制器102设定i=0,其中i为在SCPU_NB[i]中的变量。
在步骤S70中,逻辑线程执行控制器102参考所获取的REQUEST_information中包含的信息,确定在REQ_NUM(t)的处理任务将要根据请求按照分布式方式分配给子处理器43中的一个时,REQ_NUM(t)的处理任务是否可以被由SCPU_NB[i]所表示的处理器43执行。
更确切地说,逻辑线程执行控制器102根据REQ_NUM(t)的处理任务,提高由SCPU_NB[i]所表示的处理器的处理器使用率SCPU_STAT[k],然后根据处理器使用率SCPU_STAT[k]+RATE_MARGIN是否超过1和根据由SCPU_NB[i]所表示的处理器对于REQ_NUM(t)的处理任务所需要的存储器量是否满足(REQ_MEM(k)+MEM_MARGIN)<(MEM_CPU[k]-当前正在使用的存储器量),确定REQ_NUM(t)处理任务是否可以被由SCPU_NNB[i]所表示的处理器执行。
当在步骤S70中确定REQ_NUM(t)的处理任务不能够被由SCPU_NB[i]所表示的处理器执行时,在步骤S71中,逻辑线程执行控制器102增加SCPU_NB[i]中的变量i使i=i+1。
在步骤S72中,逻辑线程执行控制器102确定是否i>(除了已经暂停的子处理器43等之外,能够对其进行有效地分配处理任务的子处理器43的数量)。当在步骤S72中确定i>(除了已经暂停的子处理器43等之外,能够对其进行有效地分配处理任务的子处理器43的数量)不成立时,过程返回到步骤S70,并且重复随后的步骤。当在步骤S72中确定i>(除了已经暂停的子处理器43等之外,能够对其进行有效地分配处理任务的子处理器43的数量)时,过程进入到步骤S78,该步骤在后面描述。
当确认REQ_NUM(t)的处理任务可以被由SCPU_NB[i]所表示的处理器执行时,在步骤S73中,逻辑线程执行控制器102将由SCPU_NB[i]所表示的处理器的处理器ID设定为寄存器值SET_CPUID[t],SET_CPUID[t]表示已经被分配了处理任务的一个处理器。
在步骤S74中,逻辑线程执行控制器102通过增加对应新分配的处理任务的处理器使用率,更新由SCPU_NB[i]所表示的处理器的TEMP_STAT[k]。
在步骤S75中,逻辑线程执行控制器102设定t=t+1,其中,t是表示哪个处理器被分配了处理任务的寄存器值。
即,当要求与参考图13所描述的相同状态下的主处理器42和子处理器43-1到43-3进行的分布式处理任务中,在i=0的情况下,表示所需要的子处理器数量的REQ_NUM为2,表示主处理器42所需要的处理周期数的REQ_PC[0]为100,表示主处理器42所需要的存储器量的REQ_MEM[0]为100(K字节),当将新分布式处理任务分配给主处理器42时,如以下表达式(12)所示,SCPU_STAT[0]+RATE_MARGIN不超过1,如以下表达式(13)所示,满足(REQ_MEM[0]+MEM_MARGIN)<(MEM_CPU[0]-当前正在使用的存储器)。因此,逻辑线程执行控制器102确定SCPU_NUM[0]的处理任务可以被由SCPU_NB[0]所表示的主处理器42执行。
Temp_STAT[0](分配后)
=(REQ_PC[0]/TIME_DEF)/SCPU_CK[0]+TEMP_STAT[0](分配前)+RATE_MARGIN
=(100/1)/1,000+0.3+0.1
=0.5                               (12)
MEM_CPU[0]-当前正在使用的存储器量-MEM_MARGIN(=4,890)>REQ_MEM[0](=100)              (13)
因此,逻辑线程执行控制器102将主处理器42的处理器ID写入SET_CPUID[0],设定TEMP_STAT[0]=0.4,更新当前正在使用的存储器量为1,000+100=1,100,并且设定t=1,其中t为一个表示确定被分配处理任务的处理器的寄存器值。
在步骤S76中,逻辑线程执行控制器102确定是否t>j(j为分配新处理任务所需要的子处理器数量)。当在步骤S76中,确定t>j不成立时,过程返回到步骤S69,并且重复后续的步骤。
例如,当t=1时,确定t>j不成立。因此,与上面描述的情形类似,当在i=1的情况下,对于由SCPU_NB[1]所表示的子处理器43-3来说,表示所需子处理器数量的REQ_NUM为2,表示第一个子处理器43所需处理周期数量的REQ_PC[1]为400,表示第一个子处理器43所需存储器量的REQ_MEM[1]为50(K字节)时,如以下表达式(14)所示,处理器使用率SCPU_STAT[3]+RATE_MARGIN不超过1,并且如以下表达式(15)所示,满足(REQ_MEM[1]+MEM_MARGIN)<(MEM_CPU[3]-当前正在使用的存储器)。因此,逻辑线程执行控制器102确定SCPU_NUM[1]的处理任务可以被由SCPU_NB[1]所表示的子处理器43-3执行。
TEMP_STAT[3](分配后)
=(REQ_PC[1]/TIME_DEF)/SCPU_CK[3]+TEMP_STAT[3](分配前)+RATE_MARGIN
=(400/1)/1,000+0.1+0.1
=0.6                            (14)
MEM_CPU[3]-当前正在使用的存储器量-MEM_MARGIN(=85)>REQ_MEM[1](=50)                   (15)
因此,逻辑线程执行控制器102将子处理器43-3的处理器ID写入SET_CPUID[1],设定TEMP_STAT[1]=0.5,更新当前正在使用的存储器量为55(K字节),并且设定t=2,其中t为一个表示确定被分配处理任务的处理器的寄存器值。
类似地,在i=2的情况下,对于由SCPU_NB[2]所表示的子处理器43-2来说,当表示第二个子处理器43所需处理周期数量的REQ_PC[2]为200,表示第二个子处理器43所需存储器量的REQ_MEM[2]为30(K字节)时,如以下表达式(16)所示,处理器使用率SCPU_STAT[2]+RATE_MARGIN不超过1,并且如以下表达式(17)所示,满足(REQ_MEM[2]+MEM_MARGIN)<(MEM_CPU[2]-当前正在使用的存储器)。因此,逻辑线程执行控制器102确定REQ_NUM[2]的处理任务可以被由SCPU_NB[2]所表示的子处理器43-2执行。
TEMP_STAT[2](分配后)
=(REQ_PC[2]/TIME_DEF)/SCPU_CK[2]+TEMP_STAT[2](分配前)+RATE_MARGIN
=(200/1)/1,000+0.2+0.1
=0.5                              (16)
MEM_CPU[2]-当前正在使用的存储器量-MEM_MARGIN(=80)>REQ_MEM[2](=30)                     (17)
因此,逻辑线程执行控制器102将子处理器43-2的处理器ID写入SET_CPUID[2],设定TEMP_STAT[2]=0.4,更新当前正在使用的存储器量为40(K字节),并且设定t=3,其中t为一个表示确定被分配处理任务的处理器的寄存器值。
当在步骤S76中,确定t>j时,在步骤S77中,逻辑线程执行控制器102设定一个表示分配成功的标识,即,SET_NG=0。然后过程返回图15所示的步骤S36,并进入到步骤S37。
当在步骤S72中确定i>(除了已经暂停的子处理器43等之外,能够对其进行有效地分配处理任务的子处理器43的数量)时,在步骤S78中,逻辑线程执行控制器102关闭该标识,以表示分配失败,即,SET_NG=1。然后过程返回图15所示的步骤S36,并进入到步骤S37。
通过上述在本实施例中的信息处理设备1中的过程,将其与参考图11和12描述的第一个分布式处理分配过程执行的情况相比,可以适当的确定分布式处理任务的分配,从而可以进一步降低一个处理器或者一组处理器的功率消耗。
图18示出了在对主处理器42和子处理器43-1到43-3的SYSTEM_RATE进行统一控制的情况下分配结果,其中主处理器42和子处理器43-1到43-3全部处于参考图13所描述的状态下。
由k=0所表示的主处理器42的处理器使用率SCPU_STAT[0]变为0.4,由k=1所表示的子处理器43-1的处理器使用率SCPU_STAT[1]保持在0.4,由k=2所表示的子处理器43-2的处理器使用率SCPU_STAT[2]变为0.4,由k=3所表示的子处理器43-3的处理器使用率SCPU_STAT[3]变为0.5。由于RATE_MARGIN为0.1,处理器工作速度SYSTEM_RATE被控制为0.6。
图18示出的状态为上述过程中分布式处理任务已经被分配的状态。在对处理器工作速度进行统一控制的情况下,可以使用以下表达式(18)计算功率消耗:
∑PT=∑(PA×SYSTEM_RATE+K×SCPU_STAT[k])×SCPU_CK[k]
=(0.6×4×PA+(0.4+0.4+0.4+0.5)×K)×1,000
=(2.4×PA+1.7×K)×1,000                     (18)
即,与参考图14所描述的分配过程相比,功率消耗降低了1,200×PA。
图18示出了在对处理器工作速度SYSTEM_RATE进行统一控制的情况下的分配结果。然而,在处理器工作速度SCPU_RATE[k]是分别进行单独设定时,参考图15到17中的流程图所描述的过程对于降低功率消耗特别有效。
作为一个例子,考虑这样一种情况,其中,已经执行完一个特定应用程序的主处理器42和子处理器43-1到43-3的处理器工作速度SCPU_RATE[k]和处理器使用率SCPU_STAT[k]之间的关系为:如图19所示,k=0所表示的主处理器42的处理器使用率SCPU_STAT[0]为0.3,处理器使用率SCPU_STAT[0]/处理器工作速度SCPU_RATE[0]为0.3/0.5,k=1所表示的子处理器43-1的处理器使用率SCPU_STAT[1]为0.4,处理器使用率SCPU_STAT[1]/处理器工作速度SCPU_RATE[1]为0.4/0.9,k=2所表示的子处理器43-2的处理器使用率SCPU_STAT[2]为0.2,处理器使用率SCPU_STAT[2]/处理器工作速度SCPU_RATE[2]为0.2/0.3,k=3所表示的子处理器43-3的处理器使用率SCPU_STAT[3]为0.1,处理器使用率SCPU_STAT[3]/处理器工作速度SCPU_RATE[3]为0.1/0.5。类似上述情况,所请求的分布式处理任务的分配考虑为以下情况:根据该请求所要求执行的一个应用程序的写入REQUEST_information的工作状态为,表示所需子处理器数量的REQ_NUM为2,表示主处理器42所需处理周期数量的REQ_PC[0]为100,表示第一个子处理器43所需处理周期数量的REQ_PC[1]为400,表示第二个子处理器43所需处理周期数量的REQ_PC[2]为200。
对于由SCPU_NB[0]所表示的主处理器42的处理任务的分配与根据表达式(12)所描述的情况相同。然而,将子处理器43-1分配给SCPU_NB[1],子处理器43-1相对于处理器工作速度SCPU_RATE[k]或者SYSTEM_RATE有着处理器使用率SCPU_STAT[k]的最大的当前裕度,将子处理器43-3分配给SCPU_NB[2],子处理器43-3相对于处理器工作速度SCPU_RATE[k]或者SYSTEM_RATE有着处理器使用率SCPU_STAT[k]的第二大的当前裕度。即,将REQ_NUM[1]的处理任务分配给对应SCPU_NB[1]的子处理器43-1,将REQ_NUM[2]的处理任务分配给对应SCPU_NB[2]的子处理器43-3。
即,如图20所示,分配结果为:k=0所表示的主处理器42的处理器使用率SCPU_STAT[0]变为0.4,k=1所表示的子处理器43-1的处理器使用率SCPU_STAT[1]变为0.8,k=2所表示的子处理器43-2的处理器使用率SCPU_STAT[2]保持为0.2,k=3所表示的子处理器43-3的处理器使用率SCPU_STAT[3]变为0.3。由于RATE_MARGIN为0.1,不需要对处理器工作速度SCPU_RATE[i]的参考图19所述的处理任务分配前的状态进行改变。因此,能够很大程度上抑制新处理任务分配造成的功率消耗。
对于对应一个REQ_REAL设为0(即不需要进行实时处理)的应用程序的一个逻辑线程,执行调度从而使执行该应用程序的任务的优先权低于需要进行实时处理的任务的优先权,在剩余期间执行具有较低优先权的任务。例如,对于对应一个REQ_REAL设为0(即不需要进行实时处理)的应用程序的一个逻辑线程,可以采用以下方法。首先由与需要进行实时处理的逻辑线程相同的条件执行分配任务。当分配失败时,将处理所需的处理周期数量改为1/M(即,预定义时间乘以M),并再次执行分配。
通过上述处理,信息处理设备可以在降低功率消耗的同时提供所要求的功能。特别是在消费电子(CE)设备中,功率消耗的降低对于产品的竞争力来说是一种力量。因此,本实施例的优点是很重要的。
上述一系列处理可以通过软件执行。将软件程序从一个记录媒介中安装到嵌入在一个特殊硬件的计算机中,或者安装到可以使用所安装的各种程序执行各种功能的一个通用个人计算机中。
如图1所示,记录媒介例如为分组媒介,发布该媒介从而可以独立于计算机而为用户提供程序,诸如磁盘61(例如,软盘),光盘62(例如,只读光盘(CD-ROM)或者数字化视频光盘(DVD)),磁性光盘63(例如缩微盘(MD)
Figure C200510103817D0040153655QIETU
),或者半导体存储器64。
记录媒介中的程序的执行步骤并不一定要按照该说明书中所述的顺序,也可以并行地或者分别地执行程序步骤。
在该说明书中,系统指的是多个设备的总称。
本领域技术人员应该了解到,基于设计需要和其它因素,可以在所附的权利要求或者类似物的范围内,对本发明进行各种修改,组合,子组合和替换。
本发明包含的主题内容与日本专利申请JP 2004-211420相关,该申请在2004年7月20日在日本专利局提交,其全部内容引用在此作为参考。

Claims (5)

1.一种信息处理设备,包括:
第一处理器;和
多个第二处理器;
其中,第一处理器包括:
应用程序执行控制装置,用于控制应用程序的执行,
工作信息获取装置,用于获取关于所述多个第二处理器运行情况的工作信息,
分布式处理控制装置,用于在由所述应用程序执行控制装置对应用程序的执行进行控制时,控制分布式处理,该分布式处理将处理任务分配给所述多个第二处理器,从而将与应用程序处理有关的多个处理任务集成为一个提供单一功能的处理单元,并且从而提供了对应于该处理单元的功能,和
时钟速度比率设定装置,用于相对于所述多个第二处理器可以进行工作的最大工作时钟速度来设定当前工作时钟的时钟速度比率,
其中,工作信息包括最大工作时钟速度,当前工作时钟速度,和在预先指定的时间中执行分配给所述多个第二处理器的处理所需要的周期数量,
其中,所述分布式处理控制装置基于该工作信息控制对应于所述处理单元的分布式处理,以及
其中,分布式处理控制装置基于当前工作时钟速度和在预先指定的时间中执行分配给所述多个第二处理器的处理任务所需要的周期数量,计算处理器使用率,并且进行控制,使得将优先权赋予在分配对应于该处理单元的分布式处理任务中其处理器使用率与时钟速度比率的比值较低的第二处理器。
2.根据权利要求1的信息处理设备,
其中,时钟速度比率设定装置这样设定时钟速度比率,使得在所有的多个第二处理器中时钟速度比率为一个公共值。
3.根据权利要求1的信息处理设备,
其中,时钟速度比率设定装置在所述多个第二处理器中独立地设定时钟速度比率。
4.根据权利要求1的信息处理设备,
其中,所述时钟速度比率设定装置基于处理器使用率而更新时钟速度比率。
5.一种用于包括一个第一处理器和多个第二个处理器的信息处理设备的信息处理方法,该信息处理方法包括以下步骤:
请求开始分布式处理任务,其中,控制应用程序执行的所述第一处理器将处理任务分配给所述多个第二处理器,从而将分配给该多个第二处理器的多个处理任务集成为一个提供单一功能的处理单元,并且从而提供了对应于该处理单元的功能;
获取关于所述多个第二处理器运行情况的工作信息,该工作信息包括该多个第二处理器可以进行工作的最大工作时钟速度,该多个第二处理器的当前工作时钟速度,和在预先指定的时间中执行分配给该多个第二处理器的处理任务所需要的周期数量;
基于关于所述多个第二处理器的工作信息而控制对应于所述处理单元的分布式处理任务的分配;和
相对于所述多个第二处理器可以进行工作的最大工作时钟速度来设定当前工作时钟的时钟速度比率,
其中,控制对应于所述处理单元的分布式处理任务的分配的步骤包括:
基于当前工作时钟速度和在预先指定的时间中执行分配给所述多个第二处理器的处理任务所需要的周期数量,计算处理器使用率,和
进行控制,使得将优先权赋予在分配对应于该处理单元的分布式处理任务中其处理器使用率与时钟速度比率的比值较低的第二处理器。
CNB2005101038172A 2004-07-20 2005-07-20 信息处理设备和信息处理方法 Expired - Fee Related CN100527119C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004211420A JP2006031525A (ja) 2004-07-20 2004-07-20 情報処理装置および情報処理方法、並びに、プログラム
JP211420/04 2004-07-20

Publications (2)

Publication Number Publication Date
CN1734438A CN1734438A (zh) 2006-02-15
CN100527119C true CN100527119C (zh) 2009-08-12

Family

ID=35262068

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005101038172A Expired - Fee Related CN100527119C (zh) 2004-07-20 2005-07-20 信息处理设备和信息处理方法

Country Status (6)

Country Link
US (1) US20060031695A1 (zh)
EP (1) EP1630672A3 (zh)
JP (1) JP2006031525A (zh)
KR (1) KR20060053929A (zh)
CN (1) CN100527119C (zh)
TW (1) TWI289766B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7694107B2 (en) * 2005-08-18 2010-04-06 Hewlett-Packard Development Company, L.P. Dynamic performance ratio proportionate distribution of threads with evenly divided workload by homogeneous algorithm to heterogeneous computing units
JP5088365B2 (ja) 2007-03-23 2012-12-05 富士通株式会社 電子機器および負荷分散プログラム
US8789052B2 (en) * 2007-03-28 2014-07-22 BlackBery Limited System and method for controlling processor usage according to user input
US20080320088A1 (en) * 2007-06-19 2008-12-25 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Helping valuable message content pass apparent message filtering
US8635316B2 (en) * 2007-10-12 2014-01-21 Pie Digital, Inc. System and method for automatic configuration and management of home network devices
WO2009057208A1 (ja) * 2007-10-31 2009-05-07 Fujitsu Limited 資源割当プログラム、管理ノード、資源割当方法、および並列計算機システム
US20090193230A1 (en) * 2008-01-30 2009-07-30 Ralf Findeisen Computer system including a main processor and a bound security coprocessor
JP5268434B2 (ja) * 2008-06-03 2013-08-21 キヤノン株式会社 ジョブ処理方法及び画像処理システム並びに画像処理装置
JP5264297B2 (ja) * 2008-06-03 2013-08-14 キヤノン株式会社 ジョブ処理方法及び画像処理システム並びに画像処理装置
US8137074B2 (en) * 2008-08-21 2012-03-20 General Electric Company Wind turbine lightning protection system
JP5880962B2 (ja) * 2012-06-12 2016-03-09 ソニー株式会社 電子装置、計算方法、プログラム、および情報処理装置
EP3898373A4 (en) * 2018-12-19 2023-01-11 Zoox, Inc. SAFE SYSTEM OPERATION USING LATENCY DETERMINATIONS AND CPU UTILIZATION DETERMINATIONS
CN109739797B (zh) * 2018-12-28 2021-07-16 联想(北京)有限公司 一种电子设备
CN111324197B (zh) * 2020-02-07 2023-03-07 华侨大学 一种基于三速度周期任务的降低系统能耗的方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1159021A (zh) * 1996-03-06 1997-09-10 三菱电机株式会社 系统时钟确定装置
US6141762A (en) * 1998-08-03 2000-10-31 Nicol; Christopher J. Power reduction in a multiprocessor digital signal processor based on processor load
JP2002215599A (ja) * 2001-01-18 2002-08-02 Mitsubishi Electric Corp マルチプロセッサシステムおよびその制御方法
US6826662B2 (en) 2001-03-22 2004-11-30 Sony Computer Entertainment Inc. System and method for data synchronization for a computer architecture for broadband networks
US7233998B2 (en) 2001-03-22 2007-06-19 Sony Computer Entertainment Inc. Computer architecture and software cells for broadband networks
US7093104B2 (en) 2001-03-22 2006-08-15 Sony Computer Entertainment Inc. Processing modules for computer architecture for broadband networks
US6809734B2 (en) 2001-03-22 2004-10-26 Sony Computer Entertainment Inc. Resource dedication system and method for a computer architecture for broadband networks
US6526491B2 (en) 2001-03-22 2003-02-25 Sony Corporation Entertainment Inc. Memory protection system and method for computer architecture for broadband networks

Also Published As

Publication number Publication date
CN1734438A (zh) 2006-02-15
KR20060053929A (ko) 2006-05-22
EP1630672A2 (en) 2006-03-01
TWI289766B (en) 2007-11-11
US20060031695A1 (en) 2006-02-09
JP2006031525A (ja) 2006-02-02
EP1630672A3 (en) 2006-05-03
TW200606654A (en) 2006-02-16

Similar Documents

Publication Publication Date Title
CN100527119C (zh) 信息处理设备和信息处理方法
US7647590B2 (en) Parallel computing system using coordinator and master nodes for load balancing and distributing work
Fohler Joint scheduling of distributed complex periodic and hard aperiodic tasks in statically scheduled systems
US7945913B2 (en) Method, system and computer program product for optimizing allocation of resources on partitions of a data processing system
EP1089173B1 (en) Dynamic adjustment of the number of logical processors assigned to a logical partition
CN103069390B (zh) 在混合计算环境中重新调度工作量的方法和系统
WO2016078008A1 (zh) 调度数据流任务的方法和装置
CN100561514C (zh) 管理过程执行的方法及其系统
CN101727357B (zh) 用于分配计算中心中资源的方法和装置
JP2000194674A (ja) 分散ジョブ統合管理システム
US20030135615A1 (en) Method for rebalancing resources within a global resource namespace
CN103793272A (zh) 一种周期性任务调度方法及系统
CN111464659A (zh) 节点的调度、节点的预选处理方法、装置、设备及介质
US20140068625A1 (en) Data processing systems
US7243354B1 (en) System and method for efficiently processing information in a multithread environment
CN104598304B (zh) 用于作业执行中的调度的方法和装置
CN114968566A (zh) 一种面向共享式gpu集群下的容器调度方法及装置
CN111459622A (zh) 调度虚拟cpu的方法、装置、计算机设备和存储介质
CN111352735A (zh) 数据加速方法、装置、存储介质及设备
JPH10301604A (ja) 資材所要量計算装置および資材所要量計算方法
US4591971A (en) Method and apparatus for parallel processing of digital signals using multiple independent signal processors
JP2638065B2 (ja) 計算機システム
CN103440113A (zh) 一种磁盘io资源分配方法和装置
CN115629854A (zh) 分布式任务调度方法、系统、电子设备和存储介质
CN115061811A (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
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090812

Termination date: 20100720