首页> 中国专利> 多处理器控制装置、多处理器控制方法以及多处理器控制电路

多处理器控制装置、多处理器控制方法以及多处理器控制电路

摘要

减少由于临时启动多个处理器中耗电大的处理器而产生的电力消耗。多处理器系统(1)包括:执行第一指令代码的第一处理器(141);执行第二指令代码的第二处理器(151);将第二指令代码转换为第一处理器(141)能够执行的指令代码的虚拟操作平台(130);以及控制第一处理器(141)以及第二处理器(151)的至少其中之一处理器的工作电源控制电路(170);虚拟操作平台(130)在电源控制电路(170)抑制第二处理器(151)的工作时,将第二指令代码转换为第一处理器(141)能够执行的指令代码,第一处理器(141)执行转换的指令代码。

著录项

  • 公开/公告号CN101689106A

    专利类型发明专利

  • 公开/公告日2010-03-31

    原文格式PDF

  • 申请/专利权人 松下电器产业株式会社;

    申请/专利号CN200880019654.1

  • 发明设计人 齐藤雅彦;水山正重;

    申请日2008-06-05

  • 分类号G06F9/318(20060101);G06F1/32(20060101);G06F9/38(20060101);G06F12/08(20060101);

  • 代理机构11021 中科专利商标代理有限责任公司;

  • 代理人汪惠民

  • 地址 日本大阪府

  • 入库时间 2023-12-17 23:48:38

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-06-17

    专利权的转移 IPC(主分类):G06F9/318 变更前: 变更后: 登记生效日:20150527 申请日:20080605

    专利申请权、专利权的转移

  • 2013-10-09

    授权

    授权

  • 2010-05-05

    实质审查的生效 IPC(主分类):G06F9/318 申请日:20080605

    实质审查的生效

  • 2010-03-31

    公开

    公开

说明书

技术领域

本发明涉及控制共享存储器以及内部总线的多个处理器的多处理器控制装置、多处理器控制方法以及多处理器控制电路,尤其是涉及包括共享存储器的多个处理器的多处理器系统、具有共享内部总线的多个处理器中枢(processor cores)的系统LSI(Large ScaleIntegration,大规模集成电路)以及在这些系统中控制向多个处理器提供的电力的多处理器控制装置、多处理器控制方法以及多处理器控制电路。

背景技术

多个处理器共享存储器的多处理器系统在各种产业领域中已经得到大量应用。此外,作为近年的系统LSI的技术潮流,装载多个处理器中枢的多中枢结构(multi-corearchitecture)已经流行。尤其是在面向嵌入的系统LSI中,从成本以及耗电等的观点出发,与安装一个超处理器中枢相比,装载多个中等规模程度以下的处理器中枢往往更有利。

作为这种装载多个处理器(以下将“处理器”以及“处理器中枢”总称为“处理器”)的多处理器系统以及多中枢LSI中的低耗电化技术,有一种装载多个相同的处理器,根据必要的程序的负载或发热量来确定进行工作的处理器的个数的方法已被日本专利公开公报特开2001-92661号(第4至11页、图1至12)(以下称作“专利文献1”)以及特开2006-11548号(第6至13页、图1至12)(以下称作“专利文献2”)等公开。

在专利文献1中作了如下描述,即解读读入的指令,在应并行执行的运算处理少于处理器的数目的情况下,停止不工作的处理器的工作时钟信号。由此,能够随时抑制不希望的电力消耗。

另一方面,在专利文献2中,与之相反,说明了根据温度来改变多处理器系统以及多中枢LSI内部设置的多个处理器的并行利用度的方法。在专利文献2中,确定应工作的处理器数目,以使发热量在确定的发热量以下。另外,发热量可以用耗电来表示。由此,能够使程序总是在被确定的耗电的范围内并行工作。

此外,日本专利公开公报特开平7-13787号(第3至4页、图1至图3)(以下称作“专利文献3”)中公开了如下方法,即准备不同的处理器(主处理器和子处理器),按功能分散地分配程序,在省电工作时仅使子处理器工作。只有在必须让的错误处理等没有被分配给子处理器的程序工作的情况下,才对主处理器进行电力供给以执行处理。由此,能够缩短主处理器工作的时间,从而削减耗电。

在以移动电话机以及移动终端等为代表的移动型嵌入计算机系统中,随着高功能化以及高性能化,低耗电化也占据重要的位置。尤其是,如前所述,在面向嵌入的系统LSI中,从成本以及耗电等的观点出发,与安装一个超处理器中枢相比,逐渐开始选择装载多个中等规模程度以下的处理器中枢的多中枢结构。

在专利文献1以及专利文献2中,通常,在称作VLIW(Very Long Instruction Word,超长指令字)或者SMP(Symmetric Multi Processor,对称多处理器)的多处理器系统或多中枢LSI中,准备多个相同的处理器,根据程序的并行性决定应工作的处理器的数目。此时,准备多个(10个以上)低性能的处理器,会使开销增大,而从性能方面出发,对装载多个(2至4个)中等规模程度以上的处理器的需求较大。因此,即使应执行的程序的负载变轻,留下一个处理器而停止其他处理器的电源,也由于剩下来的处理器的耗电比较高,因此所需要的耗电在一定程度上会增大。

此外,在像VLIW以及SMP这样的同质的结构中,由于无论哪个程序在任一处理器中都可以工作,因此在多个处理器之间不能有指令集(instruction set)以及存储映射(memory map)等的差异,从而难以使例如保留着工作状态的处理器为低耗电的处理器结构。相反,如果在处理器之间存在差异,则必须预先决定各个程序在哪个处理器工作。这种在处理器不均的情况下实现低耗电的技术在专利文献3中被加以记载。

若使用专利文献3中记载的技术,会在省电工作时仅使子处理器工作。因此,如果为该子处理器选择性能较低并且低耗电的处理器结构,则与专利文献1以及专利文献2中记载的技术相比,能够削减省电工作时的耗电。通过将主要在省电工作时应执行的程序分配给子处理器,而将应工作的程序分配给高性能的主处理器,能够削减省电工作时的耗电。

但是,有时会由于外部事件等的影响,在省电工作时也需要执行分配给主处理器的程序。此时,需要执行对高性能的主处理器的电力供给、稳定化等待、程序执行以及电力切断这样的流程,有时不能实现所期待的低耗电。尤其是,不得不将在省电工作时也必须工作且在工作时必须在短时间内工作的程序装载到高性能的主处理器中,从而成为低耗电化的问题。

例如,考察一下移动电话机等的时钟显示处理。在近年的移动电话机中,伴随着Java(注册商标)以及浏览器等的装载以及发展,需要的画面绘图处理。如果采用上述这种处理器不均的结构,则一般会将画面绘图处理分配给高性能的主处理器。但是,时钟显示处理在移动电话机的待机时(不进行任何操作的状态)也必须定期地(每隔1秒或1分钟)进行画面绘图。即,在待机状态长时间持续的情况下也必须定期地启动高性能的主处理器,这一部分会导致耗电削减效果的降低。

发明内容

本发明是为了解决上述的问题,其目的在于提供一种能够减少因临时启动多个处理器中耗电大的处理器而产生的电力消耗的多处理器控制装置、多处理器控制方法以及多处理器控制电路。

本发明所提供的多处理器控制装置包括:执行第一指令代码的第一处理器;执行与所述第一指令代码不同的第二指令代码的第二处理器;将所述第二指令代码转换为所述第一处理器能够执行的指令代码的指令转换部;以及控制所述第一处理器以及第二处理器的至少其中之一处理器的工作的控制部,所述指令转换部在所述第二处理器的工作被所述控制部抑制时,将所述第二指令代码转换为所述第一处理器能够执行的指令代码,所述第一处理器执行所述转换的指令代码。

本发明还提供一种多处理器控制方法,该多处理器控制方法用于控制执行第一指令代码的第一处理器和执行与所述第一指令代码不同的第二指令代码的第二处理器,包括:控制所述第一处理器和第二处理器的至少其中之一处理器的工作的控制步骤;在所述控制步骤中所述第二处理器的工作受到抑制时,将所述第二指令代码转换为所述第一处理器能够执行的指令代码的指令转换步骤;以及由所述第一处理器执行在所述指令转换步骤中被转换的指令代码的执行步骤。

本发明还提供一种多处理器控制电路,该多处理器控制电路控制执行第一指令代码的第一处理器和执行与所述第一指令代码不同的第二指令代码的第二处理器,包括:将所述第二指令代码转换为所述第一处理器能够执行的指令代码的指令转换电路;以及控制所述第一处理器和第二处理器的至少其中之一处理器的工作的控制电路,所述指令转换电路在所述第二处理器的工作受到所述控制电路的抑制时,将所述第二指令代码转换为所述第一处理器能够执行的指令代码,所述第一处理器执行所述转换的指令代码。

根据这些结构,在抑制第二处理器的工作的期间,即使产生应在第二处理器工作的第二指令代码,也无须启动第二处理器,而是将第二指令代码转换为第一处理器能够执行的指令代码,使转换的指令代码在第一处理器工作。

根据本发明,在抑制第二处理器的工作的期间,能够减少临时启动第二处理器的机会,从而能够减少由于临时启动多个处理器中耗电大的处理器而产生的电力消耗。

本发明的目的、特征及优点通过以下的详细说明和附图将更为明显。

附图说明

图1是表示本第一实施例的多处理器系统的具体结构的一个例子的图。

图2是用于说明本第一实施例中的多处理器系统的省电工作模式时的软件层与硬件层的关系的图。

图3是用于说明本第一实施例中的多处理器系统的高速工作模式时的软件层与硬件层的关系的图。

图4是用于说明虚拟操作平台的工作的一个例子的流程图。

图5是用于说明本第一实施例的虚拟操作平台所使用的转换表的一个例子的图。

图6是表示本第一实施例的多处理器系统的结构的其他例子的图。

图7是表示本第二实施例的多处理器系统的结构的一个例子的图。

图8是表示对应表的一个例子的图,该对应表表示与电源模式寄存器能够取得的电源模式相适应的工作对象和虚拟操作平台的工作内容。

图9是用于说明本第二实施例中的电源控制电路的工作的一个例子的流程图。

图10是表示本第三实施例的多处理器系统的结构的一个例子的图。

图11是表示在本第三实施例中使用的中断对应表的一个例子的图。

图12是表示工作对应表的一个例子的图,该工作对应表表示基于电源模式寄存器以及中断对应表的工作内容。

图13是用于说明本第三实施例的电源控制电路的工作的一个例子的第一流程图。

图14是用于说明本第三实施例的电源控制电路的工作的一个例子的第二流程图。

图15是表示本第四实施例的多处理器系统的结构的一个例子的图。

图16是用于说明本第四实施例的监视控制电路的工作的一个例子的第一流程图。

图17是用于说明本第四实施例的监视控制电路的工作的一个例子的第二流程图。

图18是表示本第五实施例的多处理器系统的结构的一个例子的图。

图19是表示本第五实施例的全相联缓冲存储器的具体结构的一个例子的图。

具体实施方式

以下参照附图对本发明的实施例进行说明。此外,以下的实施例是将本发明具体化的一个例子,不具有限定本发明的技术范围的特性。

(第一实施例)

图1是表示本第一实施例的多处理器控制装置(以下称作多处理器系统)的具体结构的一个例子的图。

在图1中,本实施例的多处理器系统1包括内部总线180、与内部总线180连接的存储器110、执行存储器110中存储的指令代码的第一处理器141、执行存储器110中存储的指令代码的第二处理器151、电源控制电路170,以及与内部总线180连接的周边模块群(peripheral modules)160。

在本实施例中,第一处理器141是与第二处理器151相比性能较低并且电力消耗较少的处理器(以下称作“低耗电处理器”)。第二处理器151是与第一处理器141相比性能较高并且电力消耗较多的处理器(以下称作“高性能处理器”)。即,低耗电处理器141消耗的电力低于高性能处理器151消耗的电力。

另外,例如,第一处理器151(应为141)是主要执行与通信有关的处理的处理器,第二处理器151是主要执行与用户界面等应用(application)有关的处理的处理器。此外,本实施例的多处理器系统1被装载在例如移动电话机、数码摄像机、数码静止照相机以及PDA(Personal Digital Assistant,个人数字助理)等中。

电源控制电路170相当于控制部以及电力控制部的一个例子,控制低耗电处理器141以及高性能处理器151的至少其中之一的处理器的动作。具体而言,电源控制电路170控制从电源向低耗电处理器141以及高性能处理器151提供的电力。电源控制电路170是根据来自低耗电处理器141或高性能处理器151的请求,控制从电源(未图示)向后述的第一电源块140和/或第二电源块150的电力供给的硬件模块。

电源控制电路170在抑制向高性能处理器151提供的电力时,停止向高性能处理器151提供的电力。

电源控制电路170具有电源模式寄存器171,作为用于存储表示当前的来自电源的电力供给状态的信息(电源模式)的寄存器。电源模式中,有向第一电源块140以及第二电源块150提供电力的高速工作模式,和向第一电源块140提供电力、停止对第二电源块150的电力供给的省电工作模式。在电源模式寄存器171中存储有与高速工作模式以及省电工作模式这样的电源模式对应的值。

在此,对向省电工作模式以及高速工作模式的转移进行说明。电源控制电路170接收从低耗电处理器141经由控制信号线20向电源控制电路170发送的信号,例如指示从省电工作模式向高速工作模式的变更的信号;或者接收从高性能处理器151经由控制信号线21向电源控制电路170发送的信号,例如指示从高速工作模式向省电工作模式的变更的信号。电源控制电路170根据从低耗电处理器141或者高性能处理器151接收到的信号,变更存储在电源模式寄存器171内的电源模式。接着,电源控制电路170向第一电源块140和/或第二电源块150提供与变更的电源模式相适应的电力。

在此,所谓电源块,是以块为单位表示从电源控制电路170提供的电力的控制所涉及到的范围。第一电源块140包含第一处理器141,第二电源块150包含第二处理器151。在图1所示的例子中,当电源控制电路170改变了经由电力供给线30向第一电源块140提供的电力,向低耗电处理器141提供的电力发生变化,当改变了经由电力供给线31向第二电源块150提供的电力,则向高性能处理器151提供的电力发生变化。

另外,在此补充说明,作为用于向省电工作模式或者高速工作模式的工作转移的控制方法,并不仅限于切换电源电压的开/关的方法。作为其他实施例,电源控制电路170在省电工作模式时,仅对低耗电处理器141提供时钟信号,而停止对高性能处理器151提供时钟信号,在高速工作模式时,对低耗电处理器141以及高性能处理器151这两者提供时钟信号。由此,能够在不使电源电压发生变化的情况下,进行向省电工作模式或者高速工作模式的工作的转移。

此外,作为其他实施例,电源控制电路170不使电源电压以及时钟信号的供给发生变化,在省电工作模式时,使高性能处理器151转移到中断发生等待状态,在高速工作模式时,使高性能处理器151恢复到正常工作状态。由此,能够在不使电源电压以及时钟信号的供给发生变化的情况下,进行向省电工作模式或者高速工作模式的工作的转移。

通常,在实施电源电压的开/关时,作为其状态迁移期间,在电源电压稳定之前必须等待处理执行。同样,在控制时钟信号的提供/停止时,也必须在时钟信号稳定之前等待处理执行。一般而言,低耗电化的效果按电源电压的开/关、时钟信号的提供/停止以及向中断发生等待状态的转移/取消的顺序升高。相反,状态迁移期间按向中断发生等待状态的转移/取消、时钟信号的提供/停止以及电源电压的开/关的顺序缩短。必须考虑它们的权衡取舍(trade-off)来选择哪种方法。

另外,在下面关于电力供给的控制的说明中,电源控制电路170可以使用上述三种方法的任一种方法。

任务111至115包含单个或者多个指令代码。任务111至112包含能够由低耗电处理器141执行的第一指令代码,任务113至115包含能够由高性能处理器151执行的第二指令代码。任务111至112在第一OS(操作系统,以下记为OS)上工作,任务113至115在第二OS上工作。

低耗电处理器141以及高性能处理器151读出并执行例如储存在存储器110中的应用程序中所包含的任务。任务111至115参照存储器110上的数据、来自周边模块群160的输入输出数据来工作。在图1所示的实施例中,任务111至112被编译成本应在低耗电处理器141上工作,任务113至115被编译成本应在高性能处理器151上工作。

此外,存储器110上的第一OS120管理任务111至112的执行状态,第二OS121管理任务113至115的执行状态。另外,任务数目、OS数目、以及任务与OS的关系也可以与图1所示的例子不一致。例如,可以根据低耗电处理器141以及高性能处理器151的数目来变更进行工作的OS的数目,也可以与处理器的数目无关地将OS设为一个或固定数目。

此外,在从电源控制电路170提供电力以使低耗电处理器141以及高性能处理器151发挥作用的状态下,在第一OS120上工作的任务111至112中所包含的第一指令代码由低耗电处理器141执行,在第二OS121上工作的任务113至115中所包含的第二指令代码由高性能处理器151执行

虚拟操作平台(hypervisor)130相当于指令转换部的一个例子,在电源控制电路170停止对第二电源块150的电力供给的情况下,即在高性能处理器151不发挥作用的情况下,将任务113至115中包含的第二指令代码转换为低耗电处理器141能够执行的指令代码。

虚拟操作平台130,在低耗电处理器141上工作,当高性能处理器151中的工作通过电源控制电路170而受到抑制时,将本来由高性能处理器151执行的任务113至115以及第二OS121中包含的第二指令代码转换为低耗电处理器141能够执行的指令代码,使被转换的指令代码在低耗电处理器141上执行。

由此,低耗电处理器141模拟(仿真(emulate))高性能处理器151的工作。如前所述,第二OS121以及任务113至115是包含本来在高性能处理器151上工作的第二指令代码的程序。但是,在省电时抑制对高性能处理器151的电力供给,停止高性能处理器151的工作的期间,由虚拟操作平台130将高性能处理器151应执行的任务中所包含的第二指令代码群转换为能够在低耗电处理器141执行的指令代码群,因此在低耗电处理器141上也能工作。

在此,所谓指令代码的转换,不仅仅限于所谓的指令的操作字段(operation field)的转换。例如,在低耗电处理器141与高性能处理器151之间,有时指令集本身相同,只有周边模块群160的地址映射(address map)不同(低耗电处理器141能够利用的地址映像较小)。在本实施例中,将这些“地址转换”也认为是“指令代码转换”的一个例子,在以后的实施例中,不做特别区分地进行说明。

虚拟操作平台130除了指令代码的转换之外,还具有在省电工作模式时让第一OS120和第二OS121在低耗电处理器141中共存(以分时方式并行执行)的作用。关于虚拟操作平台130的这些详细工作,用图4进行详细地说明。

通过采用以上这种结构,在不让高性能处理器151工作的省电工作模式的期间,当存储器110中存在包含应由高性能处理器151执行的第二指令代码的任务时,虚拟操作平台130将该任务中包含的第二指令代码转换为低耗电处理器141能够执行的指令代码,低耗电处理器141执行由虚拟操作平台130转换的指令代码。由此,在省电工作模式期间,不用临时启动高性能处理器151,能够进一步抑制省电工作模式时的多处理器系统的电力消耗。

例如,在使移动电话机的显示画面上的时刻的绘图显示在高性能处理器151上工作的情况下,由于在待机等时,用户不会特别注视画面,因此可以说没有必要一定地进行时钟显示。因此,在待机时这样的省电工作模式时,程序没有必要一定工作。因此,可以通过虚拟操作平台130使低耗电处理器141模拟高性能处理器151的工作。由此,与让时刻显示等处理原封不动地在高性能处理器151上工作相比,虽然性能上大幅劣化,但是由于由虚拟操作平台130造成的性能劣化并不会成为问题,因此,与临时使高性能处理器151工作相比,能够减少电力的消耗。

另外,在图1的说明中,是以在低耗电处理器141上工作的第一OS120以及在高性能处理器151上工作的第二OS121分别不同的情况为例进行了说明,但在低耗电处理器141以及高性能处理器151上工作的OS也可以是同一OS。在此情况下,虚拟操作平台130无须具有让两个OS共存的功能,可以采用以下结构,即在多处理器系统内具备将本来在高性能处理器151上执行的第二指令代码转换为在低耗电处理器141上执行的指令代码的指令转换部,在该高性能处理器151不工作的期间使指令转换部发挥作用。

这样,存储器110存储第一指令代码和第二指令代码,低耗电处理器141执行存储器110中存储的第一指令代码,高性能处理器151执行存储器110中存储的第二指令代码。并且,虚拟操作平台130在对高性能处理器151提供的电力通过电源控制电路170而被抑制时,将第二指令代码转换为低耗电处理器141能够执行的指令代码。

另外,虚拟操作平台130可以将转换的指令代码存储在存储器110中,低耗电处理器141可以执行存储器110中存储的转换的指令代码。此外,低耗电处理器141可以将通过执行第一指令代码和转换的指令代码的其中之一而生成的第一数据存储到存储器110中,高性能处理器151可以将通过执行第二指令代码而生成的第二数据存储到存储器110中。

此外,虚拟操作平台130在对高性能处理器151提供的时钟信号通过电源控制电路170而被停止时,将第二指令代码转换为低耗电处理器141能够执行的指令代码。

此外,虚拟操作平台130在通过电源控制电路170使高性能处理器151待机时,将第二指令代码转换为低耗电处理器141能够执行的指令代码。

图2是用于说明本第一实施例中的多处理器系统的省电工作模式时的软件层与硬件层的关系的图,图3是用于说明本第一实施例中的多处理器系统的高速工作模式时的软件层与硬件层的关系的图。

如前所述,在省电工作模式时,由于对高性能处理器151的电力供给被停止,因此,如图2所示,高性能处理器151不工作。此时,使虚拟操作平台130工作,在低耗电处理器141上,将第二OS121以及任务113至115中包含的数据(例如第二指令代码、第二指令代码所参照的数据以及通过第二指令代码的执行而被输出的数据等)转换为低耗电处理器141能够处理的数据。这样,没有必要为了由低耗电处理器141处理转换的数据而追加或变更低耗电处理器141的接口。

通过构成图2的软件结构,在省电工作模式时,也能尽量减少使高性能处理器151工作的机会,从而使低耗电处理器141能够执行任务113至115中包含的指令代码。

在高速工作模式时,如图3所示,在第二OS121上工作的任务113至115在高性能处理器151上被加以执行。即,高性能处理器151执行在第二OS121上工作的任务113至115中包含的第二指令代码。

另一方面,低耗电处理器141执行在第一OS120上工作的任务111、112中包含的第一指令代码。

在高速工作模式时,通过构成图3的软件结构,能够提供共享存储器并且多个处理器并行工作的多处理器系统。通过使低耗电处理器141以及高性能处理器151并行工作,能够期待更的处理性能以及应答性能。

此外,如果利用根据电源模式替换第一OS120所利用的对硬件资源(未图示)的接口部(未图示)的方法,或者利用虚拟操作平台130对第一OS120提供与低耗电处理器141完全相同的接口的方法等,则在高速工作模式时,无须启动虚拟操作平台130。此时,能够直接在低耗电处理器141上使第一OS120工作。

即,在图3中虽然表示了在高速工作模式时启动虚拟操作平台130的结构,但如果采用根据省电工作模式时或高速工作模式时切换第一OS120所利用的对硬件资源的接口的结构,或者采用在高速工作模式时对第一OS120提供与省电工作模式时完全相同的对硬件资源的接口的结构,则在高速工作模式时,无须启动虚拟操作平台130。

图4是用于说明虚拟操作平台130的工作的一个例子的流程图。

在此,必须注意,像图2中说明的那样,虚拟操作平台130在省电工作模式时具有让两个OS在低耗电处理器141上工作的作用。因此,除了实现模拟高性能处理器151的工作的仿真工作(emulation operation)之外,还必须使多个OS以分时方式共存并执行。

虚拟操作平台130在启动后对第一OS120以及第二OS121中的其中之一给与用于使任务工作的控制权,被给与了控制权的OS控制应执行的任务的工作。此时,虚拟操作平台130暂且转移到处理请求等待状态,如果接收处理请求,则进入步骤S1(步骤S1)。

接着,当接收到中断、必须中断未定义指令例外(undefined instruction exception)或者保护区域不当访问等当前处理的例外,或者来自第一OS120或第二OS121的函数调用(function call)等明确的处理请求,虚拟操作平台130调查其原因。在本实施例中,虚拟操作平台130首先检查是否发生了例外(步骤S2)。如果判断为发生了例外(步骤S2中为“是”),进入步骤S8的处理,如果判断为没有发生例外(步骤S2中为“否”),进入步骤S3的处理。

在本实施例中,如上所述,由于必须分时执行多个OS,所以在例外之外为原因的情况下,即在步骤S2中判断为没有发生例外的情况下,虚拟操作平台130认为接收到的处理请求是切换当前工作的OS的请求。虚拟操作平台130决定接下来应让第一OS120以及第二OS121中的哪个OS优先执行(步骤S3)。

关于决定优先执行的OS的方法,例如,特开平5-197577号公报、美国专利5995745号公报以及特开2000-242512号公报等中所揭示的方法是代表性的方法。例如,在特开平5-197577号公报中揭示了预先给各个OS分配确定的时间片(time slice),在该时间片使用完毕时使其他OS执行的方法。此外,在美国专利5995745号公报中揭示了使一个OS完全优先,当该OS变为空闲状态时使另一个OS执行的方法。此外,在特开2000-242512号公报中还揭示了扩展性高的方法,揭示了一种比较各个OS执行的任务的优先级,使执行优先级较高的任务的OS工作的方法。

作为在步骤S3的处理中所使用的方法,可以利用特开平5-197577号公报、美国专利5995745号公报以及特开2000-242512号公报的任一种方法。此外,还可以使用这些方法以外的方法。在本实施例的虚拟操作平台130中,只要能确切地分时执行多个OS便可,OS选择的算法(algorithm)的内容可以是任意的。

接着,虚拟操作平台130判断在步骤S3中选择的OS是否与当前执行的OS相同(步骤S4)。如果判断为选择了相同OS(步骤S4中为“否”),进入步骤S7的处理,如果判断为选择了不同OS(步骤S4中为“是”),进入步骤S5的处理。

在判断为选择不同OS的情况下,虚拟操作平台130将当前执行的OS的工作环境撤退到存储器110上(步骤S5)。然后,虚拟操作平台130将接着应执行的OS的工作环境从存储器110中复原(步骤S6)。在此,所谓OS的工作环境,例如是指与处理器的寄存器值以及高速工作模式等有关的信息。

随后,虚拟操作平台130将用于使任务工作的控制权转移给选择的OS(步骤S7),并返回步骤S1的处理。

另一方面,在步骤S2中,如果判断为接收的处理请求的原因是例外发生,虚拟操作平台130首先判断发生的例外是否是由于由低耗电处理器141执行了高性能处理器151应执行的第二指令代码而引起的例外(步骤S8)。另外,在步骤S8中所判断的例外,是由于例如虽然是高性能处理器151能够执行的指令代码,但却是在低耗电处理器141中没有被定义的指令代码而产生的例外,这种例外称作未定义指令例外,以下对未定义指令例外进行说明。如果判断为不是未定义指令例外(步骤S8中为“否”),进入步骤S9的处理,如果判断为是未定义指令例外(步骤S8中为“是”),进入步骤S10的处理。

在步骤S8中,当判断出发生的例外不是未定义指令例外时,由于发生的是伴随着当前执行的OS或者在当前执行的OS上工作的任务群中包含的指令代码的执行的例外,所以虚拟操作平台130决定不切换当前执行的OS,而是原封不动地继续执行(步骤S9),进入步骤S7的处理。

在步骤S8中,当判断出发生的例外是未定义指令例外时,虚拟操作平台130将判断为未定义指令的指令代码转换为低耗电处理器141能够执行的指令代码(步骤S10)。随后,虚拟操作平台130使转换的指令代码在低耗电处理器141上执行。低耗电处理器141执行由虚拟操作平台130转换的指令代码(步骤S11)。随后,返回步骤S1的处理。

通过以图4所示的方式使虚拟操作平台130工作,能够使多个OS在低耗电处理器141工作。并且,即使低耗电处理器141执行了仅在高性能处理器151上安装的指令代码,虚拟操作平台130也检测由于该指令代码的执行而产生的未定义指令例外。随后,虚拟操作平台130使用转换表等将与未定义指令例外对应的指令代码转换为低耗电处理器141能够解释执行的指令代码(群)之后,使转换的指令代码(群)在低耗电处理器141上被加以执行。通过以这种形式继续执行处理,能够进一步减少省电时临时启动高性能处理器151的机会,从而能够进一步实现省电化。

另外,在使用图4说明的例子中,说明了使低耗电处理器141执行仅在高性能处理器151上安装的指令代码,判断发生的例外是否是未定义指令例外的结构,但不必限定于此,也可以通过事先解析该指令代码的地址,将其存储到虚拟操作平台130内来进行判断,或者通过将高性能处理器151利用的地址空间设为低耗电处理器141参照禁止状态,使参照禁止状态发生来进行判断。

图5是用于说明在虚拟操作平台130中,将与未定义指令例外对应的指令代码转换为低耗电处理器141上能够解释执行的指令代码(群)时使用的转换表的一个例子的图。

本实施例的多处理器系统将图5所示的转换表200例如存储在存储器110中。转换表200如图5所示,将用于在高性能处理器(第二处理器)151上执行的第二指令代码201,以及用于使与该指令代码相当的功能在低耗电处理器141上被加以执行的第一指令代码(群)202保存在表内。

存储器110保存用于将第二指令代码转换为低耗电处理器141能够执行的指令代码的转换表200。另外,存储器110相当于转换表保存部的一个例子。虚拟操作平台130基于由存储器110保存的转换表200,将第二指令代码转换为低耗电处理器141能够执行的指令代码。

例如,在低耗电处理器141具有32比特(bit)运算功能,高性能处理器151具有64比特运算功能的情况下,由于高性能处理器151能够解释执行与64比特运算对应的指令代码,而低耗电处理器141仅具有32比特运算功能,因此会发生无法直接执行与64比特运算对应的指令代码201的未定义指令例外。对此,转换表200保存将与64比特运算对应的指令代码置换为32比特运算的指令代码(群)202。并且,在发生了未定义指令例外时,虚拟操作平台130参照图5所示的转换表200,将与未定义指令例外对应的64比特运算的指令代码置换为32比特运算的指令代码。

在图5所示的例子中,转换表200将与加法、减法以及乘法对应的64比特指令代码与各自对应的32比特指令代码群对应起来加以保存。

例如,对于64比特的加减法以如下方式进行转换,即将64比特分别分为高位位数32比特和低位位数32比特,进行考虑进位和退位的32比特的加减法。

同样,在乘法中,用三个32比特的乘法(结果为64比特)、两个32比特的加法以及工作寄存器的撤退复原处理来代行64比特的乘法。另外,指令转换规则并不限定于这种64比特运算功能。此外,不仅考虑指令代码的转换,还考虑用由低耗电处理器141执行的软件(未图示)来模拟只有高性能处理器151能够访问的周边模块群160的工作等的应用例。

这样,通过虚拟操作平台130进行指令代码的转换,在检测到只有高性能处理器151能够执行的指令代码的情况下,也能参照图5所示的转换表200,将其转换为低耗电处理器141能够执行的指令代码(群),使其在低耗电处理器141工作。

另外,在图5中,说明的是虚拟操作平台130通过参照转换表200实现指令代码的转换的例子,但不必限定于此,也有通过列表形式等实现的方法。此外,也可以通过以发生例外的指令代码以及例外代码或它们的标识符为偏移量的子程序调用(subroutine call)的集合等来实现。

另外,在由低耗电处理器141执行的情况下,伴随着指令转换的开销以及指令数的增加,与由高性能处理器151执行的情况相比,性能会大幅劣化。但是,在上述的移动电话机中像待机状态(省电工作模式时)的主画面绘图处理那样用户几乎不注视画面的状态下,可以认为,在省电工作模式时,由于用低耗电处理器141执行本来应由高性能处理器151执行的指令代码而产生的性能劣化是可以允许的。

如前所述,对于本实施例中说明的各个硬件部件是共存于一个LSI(Large ScaleIntegration,大规模集成电路)内还是被分开配置在各个LSI内,不作限定。可以用一个集成电路构成图1所示的虚拟操作平台130以及电源控制电路170,此外,也可以用一个集成电路构成图1所示的第一处理器141、第二处理器151、虚拟操作平台130以及电源控制电路170。

图6是表示本第一实施例中的多处理器系统的结构的其他例子的图。

图6中,标注了与图1所示的对象相同符号的对象是相同或与之相当的结构要素,因此这里省略其详细说明。

在图6中,多处理器系统2包括存储器110和相当于系统LSI的多中枢LSI芯片(chip)190。

多中枢LSI芯片190包含:内部总线180、低耗电处理器141、高性能处理器151、周边模块群160、电源控制电路170、低耗电处理器141所利用的第一缓冲存储器(cashememory)142、高性能处理器151所利用的第二缓冲存储器152、控制信号线20、21、电力供给线30、31以及内置存储器191。电源控制电路170具备电源模式寄存器171。

第一电源块140中除了低耗电处理器141外还包含有低耗电处理器141所利用的第一缓冲存储器142。第二电源块150中除了高性能处理器151外还包含有高性能处理器151利用的第二缓冲存储器152。

多中枢LSI芯片190还装载内置存储器191。内置存储器191中存储实现虚拟操作平台130的工作的程序。由此,与在存储器110内存储实现虚拟操作平台130的工作的程序的情况相比,能够地进行仿真工作。通常,虚拟操作平台130仅进行多个OS的共存以及切换、高性能处理器151的指令代码的仿真等有限的并且固定化的处理。因此,能够通过安装与存储器110相比小容量的内置存储器191,使虚拟操作平台130工作。此外,由于一旦决定了系统LSI的结构,很少进行实现虚拟操作平台130的工作的程序的变更,因此也能将虚拟操作平台130的程序存储在掩模ROM(read only memory,只读存储器)或者闪存(flash memory)等中。

根据如上结构,能够尽可能地减少多中枢LSI芯片190的内部的耗电。此外,由于以包含电源控制电路170的形式构成LSI,所以不需要图1所示的系统LSI之间的布线,仅仅通过连接多中枢LSI芯片190和存储器110,便可构建低耗电系统。

由于图6所示的多处理器系统2采用如上结构,所以在省电工作模式时,能够仅由以比较低的性能和低耗电进行工作的低耗电处理器141来执行程序,从而能够尽可能地减少省电工作模式时的耗电。尤其是在嵌入计算机系统中的应用效果较高。

另外,在上述实施例中,说明的是低耗电处理器141、高性能处理器151以及周边模块群160等分别仅存在一个的例子,但并不是说,如果处理器的数目不是两个就无法得到本实施例的效果。即使处理器的数目为三个以上,如果采用在省电时,将电力供给被停止的处理器本来应执行的指令代码转换为省电时可工作的其他处理器能够解释执行的指令代码,由其他处理器执行转换的指令代码的结构,则在具有三个以上处理器的多中枢系统中也能应用。

(第二实施例)

图7是表示本第二实施例的多处理器系统的结构的一个例子的图。图7中,标注了与图1及图6相同符号的对象是相同或与之相当的结构要素,因此这里省略其详细说明。

在图7中,本第二实施例的多处理器系统3包括:内部总线180、存储器110、第一处理器141、第一缓冲存储器142、第二处理器151、第二缓冲存储器152、电源控制电路170以及周边模块群160。

本实施例的多处理器系统3的特征在于具有以下结构,即电源控制电路170能够控制向低耗电处理器141、高性能处理器151、第一缓冲存储器142以及第二缓冲存储器152各自提供的电力。

在图7所示的第二实施例中,与第一实施例相比,将电源块的划分进行了详细化。

在图7所示的多处理器系统3中,新引入了处理器电源块以及缓存电源块。第一处理器电源块140a是包含低耗电处理器141的电源块,第二处理器电源块150a是包含高性能处理器151的电源块。电源控制电路170能够独立操作对这些处理器的电力供给。另一方面,第一缓存电源块140b是包含第一缓冲存储器142的电源块,第二缓存电源块150b是包含第二缓冲存储器152的电源块。第一处理器电源块140a、第二处理器电源块150a、第一缓存电源块140b以及第二缓存电源块150b分别通过电力供给线30至33进行电力供给。

通过使处理器的电源块与缓冲存储器的电源块各自独立,例如,在切断对处理器的电力供给的状态下,能够对缓冲存储器提供电力。在同时进行对处理器的电力供给切断和对缓冲存储器的电力供给切断,然后再次进行对缓冲存储器以及处理器的电力供给时,必须进行缓冲存储器内存储的数据(与工作环境有关的信息、指令代码、以及指令代码所参照的数据等)的更新、以及由处理器进行的加载到缓冲存储器中的指令代码的执行这样的处理。如果能够在切断对处理器的电力供给时向被切断的处理器所利用的缓冲存储器提供电力,则能够消除与这种电源模式的切换相伴随的缓冲存储器内的数据更新引起的时间延迟。

另外,在本实施例中,通过使处理器的电源块与缓冲存储器的电源块各自独立,能够实现更详细的电力控制,因此,除了省电工作模式以及高速工作模式之外,还设置了关机模式(shutdown mode)、待机模式(standby mode)以及高速待机模式(high-speed standbymode)等工作状态(电源模式)。电源控制电路170进行的控制与前述相同,能够进行电力供给的开/关、时钟信号的供给/停止、或者向中断等待状态的迁移等。在本实施例中,尤其是,将电力供给的开/关和时钟信号的供给/停止这两种联合起来进行控制,以下对其进行说明。

图8是表示对应表的一个例子的图,该对应表表示与电源模式寄存器171能够取得的电源模式对应的工作对象和虚拟操作平台130的工作内容。

电源控制电路170预先存储将多个电源模式、各电源模式时的电力供给对象、时钟信号供给对象以及虚拟操作平台的工作内容相对应的对应表210。电源控制电路170例如基于对应表210来判断是否进行从电源对各电源块的电力供给、对各电源块的时钟信号供给以及虚拟操作平台130的执行。

在图8中,对应表210包含电源模式211、表示被提供有与电源模式211对应的电源电力的对象的电力供给对象212、表示被提供有与电源模式211对应的时钟信号的对象的时钟信号供给对象213,以及有关是否使与电源模式211对应的虚拟操作平台130的仿真功能有效的信息214。

在电源模式211为关机模式的情况下,多处理器系统3本身不工作。关机模式时,对低耗电处理器141、高性能处理器151、第一缓冲存储器142以及第二缓冲存储器152中的任一个均不进行电力的供给以及时钟信号的供给。由于任一处理器均不工作,所以虚拟操作平台130本身也不工作。

在电源模式211为待机模式的情况下,以系统的复原为目的,保存第一缓冲存储器142中存储的数据。在待机模式中,电源控制电路170仅对第一缓冲存储器142(第一缓存电源块140b)提供电力,以保存第一缓冲存储器142中存储的数据。但是,由于电源控制电路170对除此之外的电源块不进行电力供给,因此基于第一缓冲存储器142中存储的信息的处理不会被执行。因此,电源控制电路170可以不用进行时钟信号的供给。此外,在待机模式中,低耗电处理器141以及高性能处理器151不工作,因此虚拟操作平台130不工作。

在电源模式211为省电工作模式的情况下,意味着上述的省电工作模式。在省电工作模式时,利用低耗电处理器141,使多处理器系统3中存在的全部任务工作。由此,电源控制电路170对低耗电处理器141以及第一缓冲存储器142提供电力并提供时钟信号。另外,电源控制电路170不对第二处理器151以及第二缓冲存储器152提供电力及时钟信号。此外,同时使虚拟操作平台130工作,转换高性能处理器151使用的第二指令代码,使得本来在高性能处理器151上工作的任务以及第二OS121在低耗电处理器141上也工作。

在电源模式211为高速待机模式的情况下,以高性能处理器151的复原为目的,保存第二缓冲存储器152中存储的数据。在高速待机模式时,低耗电处理器141、第一缓冲存储器142以及虚拟操作平台130的工作内容与省电工作模式相同。此外,在高速待机模式时,电源控制电路170对第二缓冲存储器152提供电力,以保存第二缓冲存储器152中存储的数据。另外,电源控制电路170不对第二处理器151提供电力,不对第二处理器151以及第二缓冲存储器152提供时钟信号。由此,高性能处理器151一旦启动就能够立即使用第二缓冲存储器152中存储的信息进行处理。

另外,在高速待机模式时,由于仅保存数据,因此可以不对第二缓冲存储器152进行时钟信号的供给。但应当注意的是,在进行后述的监视控制(snoop control)的情况下,必须对第二缓冲存储器152进行无效处理,且需要进行时钟信号的供给。

最后,在电源模式211为高速工作模式的情况下,意味着上述的高速工作模式。在高速工作模式时,电源控制电路170对低耗电处理器141、高性能处理器151、第一缓冲存储器142以及第二缓冲存储器152的全部均提供电力并提供时钟信号。本来在高性能处理器151上工作的任务以及第二OS121原封不动地由高性能处理器151来执行,因此没有必要转换第二指令代码以由低耗电处理器141执行。因此,无须让虚拟操作平台130工作。

如上所述,电源控制电路170通过根据电源模式寄存器171的各个值(电源模式)变更电力的供给工作、时钟信号的供给工作以及虚拟操作平台130的工作,能够进行细致的省电控制。此外,在省电工作模式以及高速待机模式中,通过使虚拟操作平台130进行仿真工作,本来应在高性能处理器151上工作的任务以及OS能够在低耗电处理器141上工作。另外,所谓仿真工作(emulation operation)表示将高性能处理器151使用的第二指令代码转换为低耗电处理器141能够执行的指令代码,使低耗电处理器141执行转换的指令代码的工作。

由此,能够尽可能地抑制省电时对高性能处理器151的电力供给,从而能够进行进一步的省电化。同时,通过设置待机模式以及高速待机模式,能够进一步降低在重新开始对低耗电处理器141或高性能处理器151提供电力时因缓冲存储错误(cache miss)造成的延迟,还具有进一步的化以及应答时间缩短等效果。

图9是用于说明本第二实施例中的电源控制电路170的工作的一个例子的流程图。

另外,在本实施例中,假设电源控制电路170内部存在电源控制用微处理器,描述通过处理流程而实现的例子,但也可以通过逻辑电路或时序电路等硬件来实现。

首先,电源控制电路170监视电源模式寄存器171的设定值(在该例子中为电源模式)的改变,如果检测到设定值的改变,则进入步骤S22的处理(步骤S21)。

在检测到电源模式寄存器171的设定值的改变的情况下,电源控制电路170使用图8所示的对应表210确定与被改变的设定值(电源模式)对应的控制对象,对确定的控制对象(电源块)提供电力(步骤S22)。

随后,如果被新提供有电力的电源块中包含的硬件(处理器以及缓冲存储器等)的工作稳定,电源控制电路170对相同的对应表210中存储的被确定的电源块提供时钟信号(步骤S23)。

另外,通常,电力供给以及时钟信号供给的稳定等待时间是硬件固有的常数。因此,为了使工作稳定,可以利用时钟/看门狗定时器(未图示)等,等待在中断等待或轮询(polling)中被确定的时间的经过。

随后,如果被新提供有时钟信号的电源块中包含的硬件(处理器以及缓冲存储器等)的工作稳定,电源控制电路170按照对应表210,判断改变前的电源模式和改变后的电源模式的虚拟操作平台130的仿真工作是否有改变(步骤S24)。如果判断为有改变(步骤S24中为“是”),进入步骤S25的处理,如果判断为没有改变(步骤S24为“否”),返回步骤S21的处理。

图8所示的对应表210为每个电源模式211保存有关是否使虚拟操作平台130的仿真功能有效的信息214。例如,与“关机模式”或“待机模式”对应的虚拟操作平台130的信息214是“不工作”。这意味着在电源模式为关机模式或待机模式的情况下,虚拟操作平台130不工作。在此情况下,当然,虚拟操作平台130的仿真工作不是有效的(即无效)。

此外,与“省电工作模式”或“高速待机模式”对应的虚拟操作平台130的信息214是“仿真工作”。这意味着在电源模式为“省电工作模式”或“高速待机模式”的情况下,使虚拟操作平台130工作,并使虚拟操作平台130的仿真功能有效。

此外,与“高速工作模式”对应的虚拟操作平台130的信息214是“不工作,或者工作(但是,不进行仿真)”。这意味着在电源模式为“高速工作模式”的情况下,虽然有可能使虚拟操作平台130工作,但是使虚拟操作平台130的仿真功能无效。

在步骤S24中,所谓判断仿真工作是否有改变,是指判断改变前的电源模式和改变后的电源模式的虚拟操作平台130的仿真工作是否从无效变更为有效或者从有效变更为无效。

例如,在电源模式从高速工作模式变更为省电工作模式的情况下,由于仿真功能从无效变更为有效,因此电源控制电路170判断为仿真工作有改变。另一方面,在电源模式从高速待机模式变更为省电工作模式的情况下,由于仿真功能无变化,因此电源控制电路170判断为仿真工作无改变。

在步骤S24中判断为仿真工作有改变的情况下,电源控制电路170对低耗电处理器141发出用于使仿真工作有效或无效的通知(步骤S25)。在收到用于使仿真工作有效的通知时,低耗电处理器141执行存储器110内存储的用于使虚拟操作平台130内的仿真工作起作用的程序。此外,在收到用于使仿真工作无效的通知时,低耗电处理器141停止执行用于使仿真工作起作用的程序。

作为在步骤S25中对低耗电处理器141进行通知的具体方法例如考虑通过中断进行的通知。此外,除了通过中断对低耗电处理器141进行通知之外,还可以采用虚拟操作平台130轮询电源模式寄存器171的值加以确认的方法。

步骤S25的处理结束之后,返回步骤S21的处理。

通过基于图9所示的处理流程使电源控制电路170工作,能够根据电源模式寄存器171的各个值进行电力的供给、时钟信号的供给以及仿真工作的变更。

另外,在本实施例中,低耗电处理器141可以将通过执行第一指令代码以及转换的指令代码的其中之一而生成的第一数据存储到存储器110中,高性能处理器151可以将通过执行第二指令代码而生成的第二数据存储到存储器110中。

此外,低耗电处理器141可以将通过使用存储器110中存储的第一数据执行第一指令代码而生成的新数据存储到第一缓冲存储器142中,将通过使用存储器110中存储的第二数据执行转换的指令代码而生成的新数据存储到第一缓冲存储器142中,高性能处理器151可以将通过使用存储器110中存储的第二数据执行第二指令代码而生成的新数据存储到第二缓冲存储器152中。

此外,低耗电处理器141可以将通过使用存储器110中存储的第一数据执行第一指令代码而生成的新数据存储到存储器110以及第一缓冲存储器142中,将通过使用存储器110中存储的第二数据执行转换的指令代码而生成的新数据存储到存储器110以及第一缓冲存储器142中,高性能处理器151可以将通过使用存储器110中存储的第二数据执行第二指令代码而生成的新数据存储到存储器110以及第二缓冲存储器152中。

(第三实施例)

在本发明的上述的实施例中,说明了以处理器为中心的低耗电化技术。但是,一般而言,低耗电化技术必须包含存储器以及周边模块来实现。例如,在通常的多处理器系统以及多中枢LSI中,周边模块群通常在硬件上或者初始化时与各个处理器一对一地对应,或者对请求处理的处理器进行中断等的结果通知。

但是,在上述的实施例中,如果进行中断等的处理器与周边模块群存在有关系,则不希望的处理器有时会在中断等时机工作,从而无法实现所期望的低耗电化。

如前所述,在以往的多处理器系统中,各个中断往往根据该中断的种类而被分配给各个处理器。然而,本第三实施例的多处理器系统设置用于一旦接收到来自周边模块群的中断信号,根据电源模式将中断通知给哪个处理器的结构。

图10是表示本第三实施例的多处理器系统的结构的一个例子的图。图10中,标注了与图1或图6相同符号的结构要素是相同或与之相当的结构要素,因此这里省略其详细说明。

在图10中,本第三实施例的多处理器系统4包括内部总线180、存储器110、第一处理器141、第一缓冲存储器142、第二处理器151、第二缓冲存储器152、电源控制电路170a以及周边模块群160a。

另外,在图10中,示意的是周边模块群160a包含中断控制器161的结构,但也可以采用中断控制器161与周边模块群160a分别独立的结构。

中断控制器161在周边模块群160a内,在来自用户或外部环境的事件发生,或者处理器请求的处理结束的时刻,对处理器产生中断,进行必要的处理。

信号线25传输包含周边模块群160a中发生的事件的中断信号。

电源控制电路170a除了电源模式寄存器171之外,还包含中断时间控制电路172、中断对应表173以及多路分离器(demultiplexer)174。

多路分离器174是用于决定将通过中断信号线25接收到的中断信号通知给低耗电处理器141或高性能处理器151的哪个处理器的电路。多路分离器174通过信号线22与低耗电处理器141连接,通过信号线23与高性能处理器151连接。多路分离器174在对低耗电处理器141通知中断信号的情况下通过信号线22传输中断信号,在对高性能处理器151通知中断信号的情况下通过信号线23传输中断信号。

中断对应表173是用于根据各个中断原因确定中断通知对象处理器的表数据。中断对应表173内设有既定(default)的中断通知对象处理器,但多路分离器174并不只利用该表数据,还参照电源模式寄存器171中存储的电源模式的值来确定中断对象处理器。具体而言,多路分离器174采用的基本方法是,在省电工作模式时对低耗电处理器141通知中断,在高速工作模式时对使用中断对应表173选择的处理器通知中断。

另外,作为电源模式的种类,以设置与图8所示的模式相同的关机模式、待机模式、省电工作模式、高速待机模式以及高速工作模式这五个工作模式(电源模式)的情况为例进行说明。关于与图10对应的中断对象处理器的确定方法,为了容易理解,使用图11至图14所示的表以及处理流程进行说明。

中断时间控制电路172是用于控制将由中断控制器161接收到的中断信号通知给对应的处理器的时机的电路。例如,在应被通知中断的处理器的电源模式为待机模式或关机模式的情况下,需要进行等待直到对应的处理器变成能够受理中断的状态为止。另一方面,中断与处理器是否处于能受理中断的状态无关而独立发生。因此,中断时间控制电路172例如由延迟电路等构成,具有延迟向对应的处理器传输中断信号的功能,以便在接收到中断信号的情况下,能够在等待对应的处理器变成能受理中断的状态后进行通知。

另外,在需要对待机模式或关机模式的处理器通知中断的情况下,启动对应的处理器,在处理器稳定的时候通知中断的功能通常被装载在一般的处理器中。但是,在本实施例中,需要虚拟操作平台130的启动、以及使用第一缓冲存储器142以及第二缓冲存储器152等的工作环境的设定。本实施例的特征在于,使延迟中断时间控制电路172传输中断信号的延迟时间在虚拟操作平台130的启动处理结束所需要的时间以上。由此,不会出现由于在启动虚拟操作平台130之前向对应的处理器通知中断,使得在中断处理执行过程中发生未定义指令例外,而无法捕获该例外的情况,从而能够安全地继续处理。

在本实施例中,说明了将中断时间控制电路172作为硬件(电路)来实现的例子,但也可以采用包括实现上述功能的软件(程序)的结构。

通过采用如上所述的结构,能够在省电工作模式时向低耗电处理器141通知中断,在高速工作模式时向对应的处理器通知中断,在省电工作模式时,可以不进行对高性能处理器151的中断通知。

图11是表示本第三实施例中使用的中断对应表的一个例子的图。中断对应表在以既定将中断请求对象处理器分配给低耗电处理器141或高性能处理器151时使用。

在图11中,中断对应表173包含后述的中断请求源信息221以及中断对象信息222。中断请求源信息221是用于确定从中断控制器161接收到的中断信号的请求源的信息。中断对象信息222是表示使低耗电处理器141以及高性能处理器151中的哪一个执行来自请求源的请求的信息。

电源控制电路170a存储将从中断控制器161接收到的中断信号的请求源与执行来自请求源的请求的处理器对应起来的中断对应表173。

图11示出的是如下的例子,即在中断请求源是在省电工作模式时也工作的串行通信或网络设备的情况下,以既定将对应的处理分配给低耗电处理器141,在中断请求源是图像处理或显示器显示等需要处理的设备的情况下,以既定将对应的处理分配给高性能处理器151。

电源控制电路170a在接收到来自中断控制器161的中断通知的情况下,确定请求源,基于被确定的请求源来确定以既定值分配的处理器。请求源的确定,例如可以通过在传输中断请求时将请求源的信息与中断请求对应起来一起传输来实现。即,中断控制器161将包含中断请求、用于确定请求源的请求源确定信息的中断信号向电源控制电路170a传输。

图12是表示工作对应表的一个例子的图,该工作对应表表示基于电源模式寄存器171以及中断对应表173的工作内容。另外,关于本实施例的电源控制,可以由电源控制电路170a通过在其内部装载电源控制用微处理器,并用持有作为表数据的工作对应表230的程序构成来进行电源控制,也可以通过用时序电路或逻辑电路构成工作对应表230来进行电源控制。

电源控制电路170a在使用图11所示的中断对应表173确定了既定分配的处理器后,使用图12所示的工作对应表230,根据电源模式确定实际分配的处理器,并且决定让中断时间控制电路172以及多路分离器174如何工作。

在图12所示的工作对应表230中,由电源控制电路170a控制的电源模式231、使用图11所示的中断对应表173所确定的既定的处理器232、多路分离器174实际通知中断的处理器233、以及中断时间控制电路172的工作内容234相对应。

电源控制电路170a存储将电源模式、使用中断对应表173确定的处理器、多路分离器174实际通知中断的处理器、和中断时间控制电路172的工作内容对应起来的工作对应表230。

电源控制电路170a保存图12所示的工作对应表230,使用电源模式寄存器171以及中断对应表173,控制多路分离器174的工作以及中断时间控制电路172的工作。

在图12中,例如,在电源模式231为关机模式或待机模式,参照中断对应表173而被确定的既定的处理器232为低耗电处理器141的情况下,多路分离器174通知中断的处理器233为低耗电处理器141,中断时间控制电路172的工作234是等待低耗电处理器141的稳定。这意味着在电源控制电路170a对第一电源块140(低耗电处理器141以及第一缓冲存储器142)开始电力供给后,利用中断时间控制电路172让从多路分离器174向低耗电处理器141的中断通知延迟低耗电处理器141达到稳定为止的时间。此时,假设第一缓冲存储器142稳定所需要的时间比低耗电处理器141稳定所需要的时间短。

此外,在电源模式231为关机模式或待机模式,参照中断对应表173而被确定的既定的处理器232为高性能处理器151的情况下,多路分离器174通知中断的处理器233为低耗电处理器141,中断时间控制电路172的工作234是等待低耗电处理器141的稳定以及等待虚拟操作平台130的启动。这意味着在电源控制电路170a对第一电源块140(低耗电处理器141以及第一缓冲存储器142)开始电力供给后,利用中断时间控制电路172让从多路分离器174向低耗电处理器141的中断通知延迟将低耗电处理器141达到稳定为止的时间与启动虚拟操作平台130且仿真工作变为有效为止的时间相加所得到的时间。

此外,在电源模式231为省电工作模式或高速待机模式,参照中断对应表173而被确定的既定的处理器232为低耗电处理器141的情况下,多路分离器174通知中断的处理器233为低耗电处理器141,中断时间控制电路172的工作234是即刻通知中断。这意味着不进行中断时间控制电路172的延迟处理,而进行从多路分离器174向低耗电处理器141的中断通知。

此外,在电源模式231为省电工作模式,参照中断对应表173而被确定的既定的处理器232为高性能处理器151的情况下,多路分离器174通知中断的处理器233为低耗电处理器141,中断时间控制电路172的工作234是等待虚拟操作平台130的启动。这意味着利用中断时间控制电路172让从多路分离器174向低耗电处理器141的中断通知延迟虚拟操作平台130的启动结束为止的时间,以便由低耗电处理器141执行本来应由高性能处理器151执行的内容。

此外,在电源模式231为高速待机模式,参照中断对应表173而被确定的既定的处理器232为高性能处理器151的情况下,多路分离器174通知中断的处理器233为高性能处理器151,中断时间控制电路172的工作234是等待高性能处理器151的稳定以及等待缓冲存储器间的数据移动。这意味着在电源控制电路170a对第二电源块150(高性能处理器151以及第二缓冲存储器152)开始电力供给后,利用中断时间控制电路172让从多路分离器174向高性能处理器151的中断通知延迟将高性能处理器151达到稳定为止的时间与更新由高性能处理器151使用的第二缓冲存储器152的数据(第二OS121的工作环境以及指令代码所参照的数据等)所需要的时间相加所得到的时间。

此时,假设第二缓冲存储器152的稳定所需要的时间比高性能处理器151的稳定所需要的时间短。此外,所谓更新第二缓冲存储器152的数据例如第二OS121的工作环境以及指令代码所参照的数据等所需要的时间,是指将高性能处理器151所需要的数据进行从第一缓冲存储器142到第二缓冲存储器152的数据传输,直到数据传输结束为止所需要的时间。

在电源模式231为省电工作模式以及高速待机模式的情况下,由于在低耗电处理器141上仿真运行高性能处理器151的程序,因此在第一缓冲存储器142上有时存在本来应该由高性能处理器151使用的指令代码以及数据。如果能够利用由地址信息代表的识别信息来确定第一缓冲存储器142上存在的高性能处理器151的指令代码以及数据,则通过将这些存储内容传输到第二缓冲存储器152,能够将利用仿真工作在低耗电处理器141执行的任务交接给高性能处理器151,并且能够期待的处理。另外,还有一种假设利用后述的监视控制电路的工作,在缓冲存储器之间不进行数据传输的方法。

此外,在电源模式231为高速工作模式,参照中断对应表173而被确定的既定的处理器232为低耗电处理器141以及高性能处理器151中的任一个的情况下,多路分离器174通知中断的处理器233与既定的处理器相同,中断时间控制电路172的工作234是即刻通知中断。这意味着不进行中断时间控制电路172的延迟处理,而进行从多路分离器174向既定的处理器的中断通知。

另外,在图12中,在电源模式231为关机模式、待机模式或省电工作模式的情况下,即使从中断控制器161接收到的中断是对高性能处理器151发出的,多路分离器174也将实际的中断通知从高性能处理器151切换为低耗电处理器141。这是为了降低耗电。

图13以及图14是用于说明本第三实施例的电源控制电路170a的工作的一个例子的流程图。

图13以及图14所示的工作可以通过在存在于电源控制电路170a中的电源控制用微处理器操作的程序来实现,也可以通过由实现图12所示的工作的时序电路或逻辑电路构成的硬件来实现。

当中断从中断控制器161经由信号线25而被通知后,电源控制电路170a参照图11所示的表信息(中断对应表173),确定既定设定的应通知中断的处理器(步骤S31)。

接着,电源控制电路170a检查电源模式寄存器171的状态(步骤S32)。

随后,电源控制电路170a参照图12说明的工作对应表230,基于既定设定的处理器和当前的电源模式寄存器171的电源模式,确定实际应被通知中断的处理器(步骤S33)。

接着,电源控制电路170a判断在步骤S33确定的应实际通知的处理器是否处于停止状态(步骤S34)。在此,如果判断为处于停止状态(步骤S34中为“是”),进入步骤S35的处理,如果判断为不处于停止状态(步骤S34中为“否”),进入步骤S40的处理。

在步骤S34中,如果确定的处理器处于停止状态,则电源控制电路170a向包含确定的处理器的电源块提供电力以及时钟信号(步骤S35)。接着,电源控制电路170a判断确定的处理器是否成为稳定工作状态(步骤S36)。在此,如果判断为确定的处理器已成为稳定工作状态(步骤S36中为“是”),转至步骤S37的处理,如果判断为确定的处理器未成为稳定工作状态(步骤S36中为“否”),反复执行步骤S36的判断,直到确定的处理器达到稳定工作状态为止。

接着,电源控制电路170a判断转移到稳定工作状态的处理器是否为高性能处理器151(步骤S37)。如果判断为稳定了的处理器是高性能处理器151(步骤S37中为“是”),进入步骤S38的处理,如果判断为稳定了的处理器不是高性能处理器151(步骤S37中为“否”),进入步骤S40的处理。

在步骤S37中,如果判断为转移到稳定工作状态的处理器是高性能处理器151,则在成为稳定工作状态以前,有可能会使本来应在高性能处理器151上工作的程序(指令代码)在低耗电处理器141上仿真工作。因此,作为提高性能措施的一个环节,电源控制电路170a将高性能处理器151所需要的指令代码、指令代码所参照的数据、在低耗电处理器141上工作的第二OS121的工作环境从第一缓冲存储器142移动到第二缓冲存储器152。

接着,电源控制电路170a判断从第一缓冲存储器142到第二缓冲存储器152的数据移动是否完成(步骤S39)。在此,如果判断为数据移动已完成(步骤S39中为“是”),进入步骤S40的处理,如果判断为数据移动未完成(步骤S39中为“否”),反复执行步骤S39的判断,直到数据移动完成为止。

由此,将高性能处理器151所需要的指令代码以及数据预先存储到第二缓冲存储器152中,能够使高性能处理器151的工作更有效率。此外,高性能处理器151在产生缓冲存储错误的情况下,也不再需要利用监听工作等对第一缓冲存储器142上存在的指令代码以及数据进行无效处理或更新的麻烦。

接着,电源控制电路170a判断在步骤S31中确定的既定设定的处理器和在步骤S33中确定的应实际通知中断的处理器是否为相同的处理器(步骤S40)。如果判断为既定的处理器和中断对象处理器为相同(步骤S40中为“是”),进入步骤S43的处理。另一方面,如果判断为既定的处理器和中断对象处理器为不同(步骤S40中为“否”),进入步骤S41的处理。

在步骤S40中,当判断出为不同处理器时,既定分配给高性能处理器151的中断处理实际上被分配给低耗电处理器141。在此情况下,需要使虚拟操作平台130的特别是仿真工作起作用。因此,如果虚拟操作平台130未启动,则电源控制电路170a使虚拟操作平台130启动(步骤S41)。

接着,电源控制电路170a判断虚拟操作平台130的启动是否完成(步骤S42)。在此,在判断为虚拟操作平台130的启动已完成的情况下(步骤S42中“是”),进入步骤S43的处理。另一方面,在判断为虚拟操作平台130的启动未完成的情况下(步骤S42中“否”),反复执行步骤S42的判断,直到虚拟操作平台130的启动完成为止。

在虚拟操作平台130的启动完成,虚拟操作平台130开始起作用时,电源控制电路170a向应通知的处理器通知中断(步骤S43)。

通过以图13以及图14所示的工作通知中断,能够在省电工作模式时向低耗电处理器141通知中断,在高速工作模式时向与中断请求对应的处理器通知中断。即,能够在省电工作模式时不进行对高性能处理器151的中断通知。此外,在待机模式中,能够延迟对处理器的中断通知,还能保证虚拟操作平台130、第一缓冲存储器142以及第二缓冲存储器152的更可靠和更有效率的工作。

(第四实施例)

在上述的第三实施例中,描述了第一缓冲存储器142以及第二缓冲存储器152的有效的利用方法。但是,在多个处理器共享存储器进行工作的情况下,通常要在缓冲存储器之间进行监视控制(snoop control)。所谓监视控制,是指保证在多个处理器之间共享的指令代码或数据的连贯性的控制方法。

在监视控制中,监视从各个处理器向共享存储器的写入工作,当一方的处理器进行写入后,将另一方的处理器所利用的缓冲存储器的相应条目(entry)进行无效处理或更新。由此,与多个处理器对应的缓冲存储器之间的指令代码以及数据的连贯性得以保证,不会发生逻辑上的矛盾。

图15是表示本第四实施例的多处理器系统的结构的一个例子的图。图15中,与对图1、图6以及图7标注的符号相同的结构要素是相同或与之相当的结构要素,因此这里省略其详细说明。

在图15中,本第四实施例的多处理器系统5包括:内部总线180、存储器110、第一处理器141、第一缓冲存储器142、第一监视控制电路143、第二处理器151、第二缓冲存储器152、第二监视控制电路153、电源控制电路170以及周边模块群160。

第一处理器电源块140a中包含有低耗电处理器141,第一缓存电源块140c中包含有第一缓冲存储器142以及第一监视控制电路143。第二处理器电源块150a中包含有第二处理器151,第二缓存电源块150c中包含有第二缓冲存储器152以及第二监视控制电路153。

在图15中,第一监视控制电路143监视从低耗电处理器141向第一缓冲存储器142的数据写入工作,进行写入后,请求第二缓冲存储器152的相应条目的无效处理或更新。

此外,第二监视控制电路153监视从高性能处理器151向第二缓冲存储器152的数据写入工作,进行写入后,请求第一缓冲存储器142的相应条目的无效处理或更新。

另外,监视控制电路的一般控制方法例如在特开平4-191946号公报等中公开。

在本第四实施例中,第一监视控制电路143包括有效计数器1431,第二监视控制电路153包括有效计数器1531。另外,有效计数器1431、1531相当于有效数据数目保存部的一个例子。

有效计数器1431是表示第一缓冲存储器142中存储的有效的数据条目数的计数器,有效计数器1531是表示第二缓冲存储器152中存储的有效的数据条目数的计数器。

例如,当相应的缓冲存储器中不存在数据等缓冲存储错误发生时,从存储器110访问该数据,并在对应的缓冲存储器中写入(加载)访问的数据,在以后的处理中使用写入到缓冲存储器中的数据进行处理,因此能够缩短与数据访问有关的处理。此时,有效计数器1431、1531使计数值增加相当于在缓冲存储器中新写入的有效数据的数目的值。

在本第四实施例中,说明在任务113中包含的多个指令代码的执行过程中,电源模式从高速工作模式经过高速待机模式变化为省电工作模式时,有效计数器1431、1531的计数值如何变化。

首先,在电源模式为高速工作模式的情况下,任务113中包含的指令代码以及第二OS121由高性能处理器151执行。此时由于任务113中包含的指令代码的执行,高性能处理器151通过内部总线180从存储器110中读入数据。在此情况下,从存储器110读入的数据也被写入第二缓冲存储器152中。此时,有效计数器1531的计数值增加相当于新读入的数据的数目的值。

接着,假设电源模式切换为高速待机模式。在高性能处理器151完成了当前执行的指令代码的执行之后,停止对高性能处理器151的电力供给。在本来应由高性能处理器151执行的任务113中包含的多个指令代码中,后续于让高性能处理器151完成了处理的指令代码的指令代码,通过虚拟操作平台130的仿真工作而由低耗电处理器141执行。此时,假设低耗电处理器141通过内部总线180在存储器110中写入数据。此时,写入存储器110之前的数据有可能被存储到第二缓冲存储器152中。这种情况下,不能保证新写入的数据与第二缓冲存储器152中存储的数据的连贯性。

因此,第一监视控制电路143监视向第一缓冲存储器142的写入,在进行了写入的情况下,经由第二监视控制电路153,对第二缓冲存储器152请求相同数据的无效处理或更新。由此,第二缓冲存储器152的有效的数据条目数减少,因此第二监视控制电路153使有效计数器1531的值减少相当于减少的数据的数目的值。

如果高性能处理器151所需要的有效的数据条目数为一定值以下,即使停止向对应的第二缓冲存储器152的电力供给,再次提供电力时的缓冲存储错误造成的性能劣化往往也不大。因此,通过上述的第一监视控制电路143以及第二监视控制电路153的工作,在有效计数器1531的值为一定值以下时,能够将电源模式设定为省电工作模式,停止向第二缓冲存储器152的电力供给。

通过以此方式构成,能够利用有效计数器1531得到保证第二缓冲存储器152与存储器110的连贯性的有效数据的数目。利用有效计数器1431得到保证第一缓冲存储器142与存储器110的连贯性的有效数据的数目的方法也与此相同。

在本第四实施例中,第一监视控制电路143定期检查有效计数器1431的值,第二监视控制电路153定期检查有效计数器1531的值。第一监视控制电路143或第二监视控制电路153根据需要,经由控制信号线26或27向电源控制电路170传输停止对相应的缓存电源块的电力供给的指令信号。收到指令信号的电源控制电路170经由电力供给线32或33停止对该缓存电源块(在此例子中是第一缓存电源块140c或第二缓存电源块150c)的电力供给。

有效计数器1531保存在第二缓冲存储器152中存储的数据与存储器110中存储的数据之间连贯性得以保证的数据的数目,电源控制电路170在抑制向高性能处理器151提供的电力的期间,如果由有效计数器1531保存的连贯性得以保证的数据的数目成为指定值以下,则抑制向第二缓冲存储器152的电力供给。

此外,在电源控制电路170抑制向高性能处理器151提供的电力的期间,如果由于低耗电处理器141将通过执行转换的指令代码而生成的新数据存储到存储器110中,而使在第二缓冲存储器152中存储的数据与存储器110中存储的数据之间连贯性得不到保证,则第二监视控制电路153使第二缓冲存储器152中存储的连贯性不再能保证的数据无效。

图15所示的多处理器系统5,即使在电力仅被提供给包含缓冲存储器的电源块的情况下,也能在该缓冲存储器内的有效的数据减少的时刻自动停止电力供给,能够进一步减少没有必要的电力消耗。

图16以及图17是用于说明本第四实施例的监视控制电路(第一监视控制电路143以及第二监视控制电路153)的工作的一个例子的流程图。图16以及图17所示的工作可以通过程序来实现,也可以通过由时序电路或逻辑电路构成的硬件来实现。

当对包含监视控制电路所监视的缓冲存储器的缓存电源块进行电力供给,第一监视控制电路143或第二监视控制电路153对自身监视的缓冲存储器进行初始化处理(步骤S51)。即,当对第一缓存电源块140c进行电力供给时,第一监视控制电路143对自身监视的第一缓冲存储器142进行初始化处理。此外,当对第二缓存电源块150c进行电力供给时,第二监视控制电路153对自身监视的第二缓冲存储器152进行初始化处理。在初始化处理中,对缓冲存储器内的全部的条目进行无效处理、以及将有效计数器1431(在第二监视控制电路153的情况下是有效计数器1531)清零(重置)等。

随后,第一监视控制电路143或第二监视控制电路153转移到通过内部总线180对存储器110内的数据的处理监视(transaction monitoring)、以及由于缓冲存储错误引起的对缓冲存储器内的数据加载(data loading)的监视等待状态。即,第一监视控制电路143或第二监视控制电路153转移到既监视从另一个处理器对存储器110的数据写入、又监视由缓冲存储错误引起的对缓冲存储器内的数据写入的事件监视等待状态(步骤S52)。

第一监视控制电路143或第二监视控制电路153在发生了监视对象事件的情况下,判断发生的事件是否是使用其他监视控制电路所监视的缓冲存储器的处理器(以下称作其他处理器)通过内部总线180对存储器110进行了写入(步骤S53)。即,第一监视控制电路143或第二监视控制电路153判断其他处理器是否将数据写入了存储器110。

例如,假设作为对象的处理器是高性能处理器151。此时,在作为其他处理器的低耗电处理器141对存储器110进行了写入的情况下,监视该处理的、作为其他监视控制电路的第一监视控制电路143经由第二监视控制电路153请求第二缓冲存储器152内的相同数据的无效处理或更新。因此,第二监视控制电路153能够通过判断是否是第二缓冲存储器152内的相同数据的无效处理或更新的请求,来检查低耗电处理器141是否对存储器110写入了数据。在此,如果判断为是其他处理器对存储器110的写入(步骤S53中为“是”),进入步骤S57的处理,如果判断为不是其他处理器对存储器110的写入(步骤S53中为“否”),进入步骤S54的处理。

当在步骤S53中判断为不是其他处理器对存储器110的写入,即,是本处理器对缓冲存储器的数据加载时,第一监视控制电路143或第二监视控制电路153判断是否发生了自身所监视的缓冲存储器内的缓冲存储错误(步骤S54)。在此,如果判断为发生了缓冲存储错误(步骤S54中为“是”),进入步骤S55的处理,如果判断为未发生缓冲存储错误(步骤S54中为“否”),则返回步骤S52的处理。

当在步骤S54中判断为发生了缓冲存储错误时,第一监视控制电路143或第二监视控制电路153将该地址的缓冲存储数据从存储器110中加载到自身监视的缓冲存储器(以下称作本缓冲存储器)(步骤S55)。

接着,第一监视控制电路143或第二监视控制电路153使有效计数器1431(在第二监视控制电路153的情况下是有效计数器1531)的值增加相当于通过向本缓冲存储器加载而增加的有效条目数的数(步骤S56)。

由此,作为本缓冲存储器中存在的数据,并且与存储器110的数据保证连贯性的数据的条目数被存储到有效计数器1431(在第二监视控制电路153的情况下是有效计数器1531)内。接着,步骤S56的处理完成之后,返回步骤S52的处理。

此外,当在步骤S53中判断为是其他处理器对存储器110的写入时,第一监视控制电路143或第二监视控制电路153为了保证本缓冲存储器上的数据的连贯性,判断其他处理器写入存储器110中的数据是否存在于本缓冲存储器内(步骤S57)。在此,如果判断为本缓冲存储器中存在该数据(步骤S57中为“是”),进入步骤S58的处理,如果判断为本缓冲存储器中不存在该数据(步骤S57中为“否”),返回步骤S52的处理。

当在步骤S57中判断为本缓冲存储器中存在该数据时,第一监视控制电路143或第二监视控制电路153对该数据的缓冲存储条目(cache entry)进行无效处理或更新(步骤S58)。

另外,在步骤S58中,第一监视控制电路143或第二监视控制电路153是执行数据的无效处理还是更新,通常依赖于多个处理器间的数据共享方式。例如,在多个处理器并行处理共享数据的情况下,采用更新方式较好。如果采用无效处理方式,则会发生相互进行无效处理的颠簸现象(thrashing phenomenon)。相反,在一个处理器工作的程序移动(迁移)到其他处理器的情况下,应当采用无效处理方式。如果采用更新方式,则不需要的数据一直残留在移动前的缓冲存储器中。在本第四实施例中,假设在低耗电处理器141上经由虚拟操作平台130工作的任务在与高性能处理器151之间迁移的可能性。因此,作为在处理流程中采用无效处理方式的情况进行了说明。

即,在相当于由其他处理器向存储器110写入的数据的数据存在于本缓冲存储器中的情况下,第一监视控制电路143或第二监视控制电路153对与该数据对应的缓冲存储条目进行无效处理(步骤S58)。

接着,第一监视控制电路143或第二监视控制电路153使相应的有效计数器的值减少相当于经过无效处理的条目数的数(步骤S59)。另外,虽然未图示,但有时也存在与其他处理器向存储器110的写入无关、通过缓冲无效处理指令等而使缓冲存储条目无效的情况。在此情况下,第一监视控制电路143或第二监视控制电路153也需要使相应的有效计数器的值减少相当于经过无效处理的条目数的数。

接着,第一监视控制电路143或第二监视控制电路153判断有效计数器的值是否在预先决定的指定值以下(步骤S60)。在此,如果判断为有效计数器的值在指定值以下(步骤S60中为“是”),进入步骤S61的处理,如果判断为有效计数器的值大于指定值(步骤S60中为“否”),返回步骤S52的处理。

当在步骤S60中判断为有效计数器的值在预先决定的指定值以下时,第一监视控制电路143或第二监视控制电路153判断对本处理器的电力供给是否停止(步骤S61)。在此,如果判断为对本处理器的电力供给停止(步骤S61中为“是”),进入步骤S62的处理,如果判断为对本处理器的电力供给未停止(步骤S61中为“否”),返回步骤S52的处理。

当在步骤S61中判断为对本处理器的电力供给停止时,第一监视控制电路143或第二监视控制电路153清理(清除)本缓冲存储器内的数据(步骤S62)。

接着,第一监视控制电路143或第二监视控制电路153向电源控制电路170发送停止对包含本缓冲存储器的缓存电源块的电力供给的指令。接收到此指令的电源控制电路170停止对该缓存电源块的电力供给(步骤S63)。

由于本第四实施例的多处理器系统采用上述的结构,所以,如果本缓冲存储器内的有效数据的数目低于预先决定的数,则能够自动停止对包含本缓冲存储器的缓存电源块的电力供给,从而能够进一步减少不需要的电力消耗。

此外,由于在缓冲存储器内的有效数据条目数开始变为指定值以下后停止电力供给,因此,即使在利用停止了电力供给的缓冲存储器的处理器再次被启动的情况下,也能减少由于停止对缓冲存储器的电力供给而产生的影响。

(第五实施例)

在上述的第一至四实施例中,假设为低耗电处理器141配备通常的缓冲存储器。一般而言,缓冲存储器往往采用2路至8路的组相联缓冲存储方式(set-associative cachesystem)。由于同时比较地址的对象被限定为2至8个,所以能够抑制依赖于比较器个数的耗电以及电路规模。

但是,相反,在只有处理器以及缓冲存储器工作的状态下,与发生缓冲存储错误并访问存储器110上的数据的状态相比,一般而言耗电较少。

本第五实施例的特征在于,提供一种抑制因缓冲存储错误造成的耗电增加的结构。

图18是表示本第五实施例的多处理器系统的结构的一个例子的图。图18中,与图1及图6中标注的符号相同的结构要素是相同或与之相当的结构要素,因此这里省略其详细说明。

在图18中,本第五实施例的多处理器系统6包括:内部总线180、存储器110、第一处理器141、第一缓冲存储器142、全相联缓冲存储器(full-associative cachememory)144、第二处理器151、第二缓冲存储器152、电源控制电路170以及周边模块群160。

在图18中,第一电源块140d中包含低耗电处理器141、第一缓冲存储器142以及后述的全相联缓冲存储器144。

全相联缓冲存储器144具有吸收第一缓冲存储器142的缓冲存储错误的功能。在第一缓冲存储器142中,随着第一缓冲存储器142内的数据更新,废弃不再被利用的数据时,全相联缓冲存储器144存储不再被利用的数据。即,第一缓冲存储器142内的数据和全相联缓冲存储器144内的数据相互不重复。

全相联缓冲存储器144存储与存储到第一缓冲存储器142的数据不重复的数据。在存储到第一缓冲存储器142的数据通过低耗电处理器141而被更新,并且通过低耗电处理器141将不被利用的数据从第一缓冲存储器142中废除时,全相联缓冲存储器144存储从第一缓冲存储器142中废除的数据。

全相联缓冲存储器144具有将进行访问请求的地址和该全相联缓冲存储器144内的全部的行进行比较的功能。

另外,在此,与全部的条目进行比较的功能并不是通过具备有相当于第一缓冲存储器142内的条目数的数目的比较器来实现的。由于低耗电处理器141即使低速也可以以低耗电工作,因此一个比较器可以构成依次检查与第一缓冲存储器142内的条目的一致的结构。在图19中说明全相联缓冲存储器144的详细情况。

通过采用图18所示的第五实施例,对就在之前废除的数据,由于能够用全相联缓冲存储器144吸收在第一缓冲存储器142中发生的错误访问,从而能够减少对存储器110的访问次数。由此,能够进一步减少省电工作模式时的耗电。

图19是表示本第五实施例的全相联缓冲存储器144的具体结构的一个例子的图。图19示意性地表示从对全相联缓冲存储器144输入包括索引(Index)值301以及标志(Tag)值302的地址信号,到输出与输入的地址信号对应的数据303的电路结构的一个例子。

另外,在图19中,省略了在全相联缓冲存储器144上数据不存在时与存储器110之间的加载/存储电路(load-store circuit)的图示。与全相联缓冲存储器144的主体对应的数据存储器330存储数据。数据存储器330中存储的数据具有索引值331、有效位332以及数据主体333。

此外,除了图示的数据之外,还可以设置脏位(修改标志位,dirty bits)(表示在第一缓冲存储器142上是否进行了更新的位,即,表示最终必须写回到存储器110上的位)以及共享位(sharing bits)(表示与其他处理器以及周边模块群等共享数据的位)。

哈希表(hash table)310对应于用于表示由标志值302对缓冲存储器内的数据存储器330内的数据的地址的提示的转换表。哈希表310具体来说是用阵列构成的。

图19所示的全相联缓冲存储器144首先通过将标志值302作为关键(key)参照哈希表310,得到数据存储器330的地址311。即,全相联缓冲存储器144通过从哈希表310中取出由标志值302表示的编号的数据,得到数据存储器330的地址311。然而,与组相联方式不同,地址311并不一定是指对应的缓冲存储条目(cache entry)。因此,全相联缓冲存储器144具备以0为初始值的计数器321。全相联缓冲存储器144通过增量器(incrementer)320使该计数器321的计数值增加,并检查用加法器322将计数器321与地址311相加所得到的结果所表示的条目。全相联缓冲存储器144在有效的条目不存在的时刻结束递增,被认为是缓冲存储错误。

当缓冲存储器的数据存储器330内的该条目的索引值331与地址信号内的索引值301一致,并且有效位332表示“Valid(有效)”时,判断为缓冲命中(cache hit)。在电路上,由比较器340实施索引值的比较,由逻辑积电路350实施有效位的判断。另外,在附图的说明上,将比较器340的输出输入到逻辑积电路350,但在进行有效位332的判断之后让比较器340进行工作,有时会避免比较器340的不必要的工作,从而减少耗电。如果判断为缓冲命中,则门(gate)360将数据存储器330中存储的该数据主体333作为输出数据值303输出。

然后,使用输出数据值303,进行基于低耗电处理器141的处理,或者进行对第一缓冲存储器142的输出数据值303的写入等。此时,将为了对第一缓冲存储器142写入而使用的全相联缓冲存储器144内的数据从数据存储器330中删除。通过采用如上方式,能够避免在第一缓冲存储器142以及全相联缓冲存储器144(具体而言是数据存储器330)中存储重复的数据,从而能够更有效地利用第一缓冲存储器142以及全相联缓冲存储器144的有限容量。

在本第五实施例中,通过设置图19所示的具有一个比较器340的全相联缓冲存储器144,不会大幅增加耗电,可实现装载能够将缓冲存储错误抑制到最低限度的缓冲存储器。通过减少缓冲存储错误,能够抑制由于对存储器110的访问造成的耗电的增加,从而能够作为整体进一步降低多处理器系统6的耗电。

另外,上述的具体实施例中主要包含具有以下结构的发明。

本发明所提供的多处理器控制装置包括:执行第一指令代码的第一处理器;执行与所述第一指令代码不同的第二指令代码的第二处理器;将所述第二指令代码转换为所述第一处理器能够执行的指令代码的指令转换部;以及控制所述第一处理器以及第二处理器的至少其中之一处理器的工作的控制部,所述指令转换部在所述第二处理器的工作被所述控制部抑制时,将所述第二指令代码转换为所述第一处理器能够执行的指令代码,所述第一处理器执行所述转换的指令代码。

本发明所提供的多处理器控制方法是用于控制执行第一指令代码的第一处理器,和执行与所述第一指令代码不同的第二指令代码的第二处理器的多处理器控制方法,包括控制所述第一处理器以及第二处理器的至少其中之一处理器的工作的控制步骤;在所述控制步骤中所述第二处理器的工作受到抑制时,将所述第二指令代码转换为所述第一处理器能够执行的指令代码的指令转换步骤;以及由所述第一处理器执行在所述指令转换步骤中被转换的指令代码的执行步骤。

本发明所提供的多处理器控制电路是控制执行第一指令代码的第一处理器,和执行与所述第一指令代码不同的第二指令代码的第二处理器的多处理器控制电路,包括:将所述第二指令代码转换为所述第一处理器能够执行的指令代码的指令转换电路;以及控制所述第一处理器以及第二处理器至少其中之一处理器的工作的控制电路;所述指令转换电路在所述第二处理器的工作通过所述控制电路而被抑制时,将所述第二指令代码转换为所述第一处理器能够执行的指令代码,所述第一处理器执行所述转换的指令代码。

根据这些结构,在抑制第二处理器的工作的期间,即使产生了应在第二处理器运行的第二指令代码,也不用启动第二处理器,而将第二指令代码转换为第一处理器能够执行的指令代码,使转换的指令代码在第一处理器运行。

因此,在抑制第二处理器的工作的期间,能够减少临时启动第二处理器的机会,从而能够减少由于临时启动多个处理器中耗电大的处理器而产生的电力的消耗。

此外,在上述多处理器控制装置中,较为理想的是所述控制部包含控制对第二处理器提供的电力的电力控制部,所述指令转换部在对所述第二处理器提供的电力通过所述电力控制部而被抑制时,将所述第二指令代码转换为所述第一处理器能够执行的指令代码,所述第一处理器执行所述转换的指令代码。

根据该结构,在抑制对第二处理器提供的电力的期间,即使产生了应在第二处理器运行的第二指令代码,也不用启动第二处理器,将第二指令代码转换为第一处理器能够执行的指令代码,使转换的指令代码在第一处理器运行。

因此,在抑制对第二处理器提供的电力的期间,能够减少临时启动第二处理器的机会,从而能够减少由于临时启动多个处理器中耗电大的处理器而产生的电力消耗。

此外,在上述多处理器控制装置中,较为理想的是所述第一处理器消耗的电力低于所述第二处理器消耗的电力。

根据该结构,由于在抑制对第二处理器提供的电力的期间,由第一处理器执行转换的指令代码,因此与第二处理器执行第二指令代码的情况相比能够减少耗电。

此外,在上述多处理器控制装置中,较为理想的是,所述电力控制部停止对所述第二处理器提供的电力,所述指令转换部在对所述第二处理器提供的电力通过所述电力控制部而被停止时,将所述第二指令代码转换为所述第一处理器能够执行的指令代码。

根据该结构,由于对第二处理器提应的电力被停止,因此能够进一步减少耗电。

此外,在上述多处理器控制装置中,较为理想的是,在所述电力控制部抑制对所述第二处理器提供的电力的期间,一接收到对所述第二处理器请求中断处理的通知,向所述第一处理器通知所述中断处理的请求,所述指令转换部转换与所述电力控制部通知的所述中断处理对应的第二指令代码。

根据该结构,由于在对第二处理器提供的电力受到抑制的期间,即使接收到对第二处理器请求中断处理的通知,也能减少临时启动第二处理器的机会,与由第二处理器进行中断处理的情况相比,能够减少耗电。

此外,较为理想的是,上述多处理器控制装置还包括存储所述第一指令代码与所述第二指令代码的存储器,所述第一处理器执行所述存储器中存储的所述第一指令代码,所述第二处理器执行所述存储器中存储的所述第二指令代码。

根据该结构,由于在对第二处理器提供的电力受到抑制的期间,存储器中存储的第二指令代码被转换为第一处理器能够执行的指令代码,因此第一处理器能够执行转换的指令代码。

此外,较为理想的是,上述多处理器控制装置还包括保存用于将所述第二指令代码转换为所述第一处理器能够执行的指令代码的转换表的转换表保存部,所述指令转换部基于由所述转换表保存部保存的所述转换表,将所述第二指令代码转换为所述第一处理器能够执行的指令代码。

根据该结构,由于基于转换表将第二指令代码转换为第一处理器能够执行的指令代码,因此能够容易地将第二指令代码转换为第一处理器能够执行的指令代码。

另外,在上述多处理器控制装置中,较为理想的是,所述第一处理器将通过执行所述第一指令代码以及所述转换的指令代码的其中之一而生成的第一数据存储到所述存储器中,所述第二处理器将通过执行所述第二指令代码而生成的第二数据存储到所述存储器中。

根据该结构,通过由第一处理器执行第一指令代码以及转换的指令代码的其中之一而生成的第一数据被存储到存储器中,通过由第二处理器执行第二指令代码生成的第二数据被存储到存储器中,因此,伴随着第一处理器或第二处理器的指令代码的执行而生成的数据能够被用于后续的指令代码的执行。

此外,较为理想的是,上述多处理器控制装置还包括第一缓冲存储器和第二缓冲存储器,所述第一处理器将通过使用所述存储器中存储的所述第一数据执行所述第一指令代码而生成的新数据存储到第一缓冲存储器中,将通过使用所述存储器中存储的所述第二数据执行所述转换的指令代码而生成的新数据存储到第一缓冲存储器中,所述第二处理器将通过使用所述存储器中存储的第二数据执行所述第二指令代码而生成的新数据存储到第二缓冲存储器中。

根据该结构,通过执行第一指令代码而生成的新数据被存储到第一缓冲存储器中,通过使用第二数据执行转换的指令代码而生成的新数据被存储到第一缓冲存储器中,通过执行第二指令代码而生成的新数据被存储到第二缓冲存储器中。因此,由于第一处理器访问第一缓冲存储器,第二处理器访问第二缓冲存储器,所以与访问存储器的情况相比,能够地进行访问。

此外,较为理想的是,上述多处理器控制装置还包括有效数据数目保存部,该有效数据数目保存部保存在所述第二缓冲存储器中存储的数据与所述存储器中存储的数据之间连贯性得以保证的数据的数目,所述电力控制部在抑制对所述第二处理器提供的电力的期间,当由所述有效数据数目保存部保存的所述连贯性得以保证的数据数目成为指定值以下时,抑制向所述第二缓冲存储器的电力供给。

根据该结构,即使在利用电力供给被抑制的第二缓冲存储器的第二处理器再次被启动的情况下,也能减少由于抑制对第二缓冲存储器的电力供给而造成的影响。

此外,在上述多处理器控制装置中,较为理想的是,在向所述第二处理器提供的电力通过所述电力控制部而被抑制的期间,由于所述第一处理器将通过执行所述转换的指令代码而生成的新数据存储到所述存储器中,使得所述第二缓冲存储器中存储的数据与所述存储器中存储的数据之间连贯性不再被保证时,所述第二处理器使所述第二缓冲存储器中存储的所述连贯性不再被保证的所述数据无效。

根据该结构,即使在电力供给被抑制的第二处理器再次被启动的情况下,在第二缓冲存储器中存储的数据中,也只有与存储器中存储的数据保证连贯性的数据能够被第二处理器所利用,因此可以不需要由再次启动后的第二处理器进行的第二缓冲存储器的无效化处理。

此外,较为理想的是,上述多处理器控制装置还包括存储与所述第一缓冲存储器中存储的数据不重复的数据的全相联缓冲存储器,在通过所述第一处理器更新存储到所述第一缓冲存储器的数据,并且,通过所述第一处理器从所述第一缓冲存储器中废除不被利用的数据时,所述全相联缓冲存储器存储从所述第一缓冲存储器中废除的数据。

根据该结构,即使第一缓冲存储器发生了缓冲存储错误,对于在就要发生缓冲存储错误之前废除的数据,也能从全相联缓冲存储器中取出该数据,从而能够补充第一缓冲存储器的缓冲存储错误。即,只要在第一缓冲存储器以及全相联缓冲存储器的容量以内,可以不对存储器进行访问,能够进一步减少耗电。

此外,在上述多处理器控制装置中,较为理想的是,所述控制部控制是否对所述第二处理器提供时钟信号,所述指令转换部在通过所述控制部停止对所述第二处理器提供的时钟信号时,将所述第二指令代码转换为所述第一处理器能够执行的指令代码。

根据该结构,在停止对第二处理器提供的时钟信号的期间,即使产生了应在第二处理器运行的第二指令代码,也不用启动第二处理器,将第二指令代码转换为第一处理器能够执行的指令代码,使转换的指令代码在第一处理器运行。

因此,在停止对第二处理器提供的时钟信号的期间,能够减少临时启动第二处理器的机会,能够减少由于临时启动多个处理器中耗电大的处理器而产生的电力消耗。

此外,在上述多处理器控制装置中,较为理想的是,所述控制部控制是让所述第二处理器工作还是待机,所述指令转换部在通过所述控制部使所述第二处理器待机时,将所述第二指令代码转换为所述第一处理器能够执行的指令代码。

根据该结构,在使第二处理器待机的期间,即使产生了应在第二处理器运行的第二指令代码,也能够通过让第二处理器保持着待机,将第二指令代码转换为第一处理器能够执行的指令代码,使转换的指令代码在第一处理器被运行。

因此,在使第二处理器待机的期间,能够减少临时启动第二处理器的机会,能够减少由于临时启动多个处理器中耗电大的处理器而产生的电力消耗。

产业上的利用可能性

本发明涉及的多处理器控制装置、多处理器控制方法以及多处理器控制电路,例如能够应用于根据用户的使用状态控制第一处理器以及第二处理器中的至少其中之一的工作的设备,例如移动电话机等移动设备以及信息家电等嵌入设备等。

更具体而言,在移动电话机的待机状态或信息家电的待机状态时,执行来自用户的操作等待以及电波状态的监视等,并仅使耗电小的处理器工作,抑制耗电大的处理器的电力。另一方面,在用户操作移动电话机或信息家电的状态时,由于需要浏览器以及动画显示等高性能处理器的执行,所以使耗电小的处理器以及耗电大的处理器并行工作。本发明所涉及的多处理器控制装置、多处理器控制方法以及多处理器控制电路非常适合进行这种电力控制的移动电话机以及嵌入设备。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号