发明内容
本发明所要解决的问题
然而,在专利文献1所述的常规技术中,每个CPU直接连接到由其控制的外围装置,这样就固定了用于控制外围装置处理的CPU。因此,取决于该装置的状态,不能灵活有效地利用两个CPU资源。同样,每次硬件结构改变时,需要重新设计CPU和外围装置之间的连接。
因此,本发明的一个目的是提供一种信息处理装置,其实现低功耗并且其中用于执行来自外围装置的请求的CPU不被固定到主CPU或者副CPU。
解决方案
为了实现上面的目的,本发明具有以下方面。本发明的第一方面致力于一种用于控制一个以上的内部或者外部外围装置的信息处理装置,包括:主CPU,其能够采用至少两种状态,即操作状态和休眠状态;副CPU,其功耗低于所述主CPU的功耗并且能够采用至少两种状态,即操作状态和休眠状态;以及处理请求确定部分,用于确定使所述主CPU和所述副CPU中的哪一个来执行涉及来自所述外围装置中的一个的请求的处理。所述处理请求确定部分确定所述主CPU是处于休眠状态还是处于操作状态,并且当所述主CPU处于休眠状态时,确定是否使所述副CPU执行所述处理,并且当所述主CPU处于操作状态时,确定是否能够使所述主CPU执行所述处理,并且根据所述确定的结果,使所述主CPU或者所述副CPU执行所述处理。
根据本发明的第一方面,当主CPU处于休眠状态时,确定是否可以使副CPU执行该处理。因此,当可以使副CPU执行该处理时,副CPU执行该处理。因此,可以使主CPU长时间处于休眠状态,从而可以减少功耗。另一方面,当主CPU处于操作状态时,确定是否可以使主CPU执行该处理。因此,当可以使主CPU执行该处理时,主CPU执行该处理。因此,提高了响应速度。于是,提供了一种这样的信息处理装置,其具有低功耗并且其中执行来自外围装置的处理请求的CPU没有固定到主CPU或者副CPU。
优选地,当主CPU处于休眠状态时,处理请求确定部分可以使副CPU执行该处理。当主CPU处于操作状态时,该处理请求确定部分可以使主CPU执行该处理。
因此,当主CPU处于休眠状态时,副CPU总是执行处理,而当主CPU处于操作状态时,主CPU总是执行处理。
优选地,当主CPU处于休眠状态时,处理请求确定部分可以确定副CPU是否可以接受该处理,并且当副CPU可以接受该处理时,使副CPU执行该处理,并且当副CPU不能接受该处理时,使主CPU执行该处理。当主CPU处于操作状态时,处理请求确定部分可以使主CPU执行该处理。
因此,当副CPU不能接受该处理时,使主CPU执行该处理,使得响应速度提高。
优选地,当主CPU处于休眠状态时,处理请求确定部分可以确定副CPU是否能够接受该处理,并且当副CPU可以接受该处理时,使副CPU执行该处理,并且当副CPU不能接受该处理时,使主CPU执行该处理。当主CPU处于操作状态时,处理请求确定部分可以确定主CPU是否能够接受该处理,并且当主CPU可以接受该处理时,使主CPU执行该处理,并且当该主CPU不能接受该处理时,确定是否可以使副CPU执行该处理。
因此,当主CPU处于操作状态时,确定主CPU是否能够接受该处理。当主CPU不能接受该处理时,确定是否使副CPU执行该处理。因此,由于主CPU和副CPU可以并行执行处理,从而可以降低功耗并且提高响应速度。
优选地,信息处理装置可以还包括处理请求目的地指定部分,其与所述外围装置中的一个中的处理相关联地将期望执行所述处理的期望CPU预先定义为指定CPU信息。当所述处理请求目的地指定部分的所述指定CPU信息所指定的CPU是所述主CPU时,所述处理请求确定部分确定所述主CPU是处于休眠状态还是处于操作状态。
因此,当指定主CPU中的处理时,确定主CPU是处于休眠状态还是操作状态。
优选地,所述处理请求目的地指定部分还将是否允许使用除了所述指定CPU信息中所定义的所述CPU之外的CPU来执行所述处理定义为其它CPU可用性信息,并且当所述主CPU处于休眠状态时,所述处理请求确定部分参考所述其它CPU可用性信息来确定是否允许所述副CPU执行所述处理。当允许所述副CPU执行所述处理时,所述处理请求确定部分确定使所述副CPU执行所述处理。当不允许所述副CPU执行所述处理时,所述处理请求确定部分确定使所述主CPU执行所述处理。
因此,当主CPU处于休眠状态时,可以根据情况使副CPU执行该处理,从而可以降低功耗。
优选地,当主CPU处于操作状态时,处理请求确定部分可以确定主CPU是否可以接受该处理。当主CPU可以接受该处理时,处理请求确定部分可以确定使主CPU执行该处理。当主CPU不能接受该处理时,处理请求确定部分可以参考其它CPU可用性信息来确定是否允许副CPU执行该处理。当允许副CPU执行该处理时,处理请求确定部分可以确定使副CPU执行该处理。当不允许副CPU执行该处理时,处理请求确定部分可以确定使主CPU执行该处理。
因此,即使在主CPU处于操作状态时,也可以根据情况使副CPU操作,从而可以降低功耗。
优选地,当处理请求目的地指定部分的指定CPU信息所指定的CPU是副CPU时,处理请求确定部分可以确定副CPU是处于休眠状态还是操作状态,以确定使主CPU和副CPU中的哪一个来执行该处理。
因此,在指定使用副CPU的情况下,当副CPU处于休眠状态时,选择使用副CPU还是主CPU。
优选地,处理请求目的地指定部分还可以将是否允许使用除了指定CPU信息中所定义的CPU之外的CPU来执行该处理定义为其它CPU可用性信息。当副CPU处于休眠状态时,处理请求确定部分可以参考其它CPU可用性信息以确定是否允许主CPU来执行该处理。当允许主CPU执行该处理时,处理请求确定部分可以确定使主CPU执行该处理。当不允许主CPU执行该处理时,处理请求确定部分可以确定使副CPU执行该处理。
因此,当副CPU处于休眠状态时,可以根据情况使用主CPU,从而提高响应速度。
优选地,当副CPU处于操作状态时,处理请求确定部分可以确定副CPU是否可以接受该处理。当副CPU可以接受该处理时,处理请求确定部分可以确定使副CPU执行该处理。当副CPU不能接受该处理时,处理请求确定部分可以参考其它CPU可用性信息以确定是否允许主CPU执行该处理。当允许该主CPU执行该处理时,处理请求确定部分可以确定使主CPU执行该处理。当不允许主CPU执行该处理时,处理请求确定部分可以确定使副CPU执行该处理。
因此,当副CPU不能接受该处理时,可以根据情况使用主CPU,使得可以进行并行处理,从而提高响应速度。
优选地,信息处理装置还可以包括处理请求目的地指定部分,其与所述外围装置中的一个中的处理相关联地将期望执行所述处理的期望CPU预先定义为指定CPU信息。当所述主CPU处于休眠状态时,所述处理请求确定部分参考所述指定CPU信息来确定是否允许所述副CPU执行所述处理。当允许所述副CPU执行所述处理时,所述处理请求确定部分使所述副CPU执行所述处理。当不允许所述副CPU执行所述处理时,所述处理请求确定部分使所述主CPU执行所述处理。。
因此,当主CPU处于休眠状态时,确定是否允许副CPU执行该处理。
优选地,当主CPU处于操作状态时,处理请求确定部分可以确定主CPU是否可以接受该处理。当主CPU不能接受该处理时,处理请求确定部分可以参考指定CPU信息以确定是否允许主CPU执行该处理。当允许主CPU执行该处理时,处理请求确定部分可以使主CPU执行该处理。当不允许主CPU执行该处理时,处理请求确定部分可以使副CPU执行该处理。当主CPU可以接受该处理时,处理请求确定部分可以使副CPU执行该处理。
因此,当主CPU处于操作状态时,确定是否允许主CPU执行该处理。
优选地,如果在使副CPU执行该处理时存在唤醒主CPU的请求,则副CPU和主CPU可以执行用于使主CPU接管副CPU中执行的处理的处理。
因此,主CPU可以接管副CPU中的处理。
本发明的第二方面致力于一种应用在用于控制一个以上的内部或者外部外围装置的信息处理装置中的处理方法,所述信息处理装置包括:主CPU,其能够采用至少两种状态,即操作状态和休眠状态,以及副CPU,其功耗低于所述主CPU的功耗并且能够采用至少两种状态,即操作状态和休眠状态。所述方法包括:确定所述主CPU是处于休眠状态还是处于操作状态;当所述主CPU处于休眠状态时,确定是否可以使所述副CPU执行来自所述外围装置中的一个的处理;当所述主CPU处于操作状态时,确定是否可以使所述主CPU执行所述处理;以及根据所述确定的结果,使所述主CPU或者所述副CPU执行所述处理。
本发明的第三方面致力于一种用于使用主CPU和副CPU控制一个以上的内部或者外部外围装置的集成电路,其中所述主CPU能够采用至少两种状态,即操作状态和休眠状态,而所述副CPU的功耗低于所述主CPU的功耗并且能够采用至少两种状态,即操作状态和休眠状态。所述集成电路确定所述主CPU是处于休眠状态还是处于操作状态。当所述主CPU处于休眠状态时,所述集成电路确定是否可以使所述副CPU执行来自所述外围装置中的一个的处理。当所述主CPU处于操作状态时,所述集成电路确定是否可以使所述主CPU执行所述处理。所述集成电路根据所述确定的结果使所述主CPU或者所述副CPU执行所述处理。
本发明的第四方面致力于一种在计算机设备中执行的程序,所述计算机设备用于使主CPU和副CPU控制一个以上的内部或者外部外围装置,所述主CPU能够采用至少两种状态,即操作状态和休眠状态,所述副CPU的功耗低于所述主CPU的功耗并且能够采用至少两种状态,即操作状态和休眠状态。所述程序使所述计算机设备确定所述主CPU是处于休眠状态还是处于操作状态。当所述主CPU处于休眠状态时,所述程序使所述计算机设备确定是否可以使所述副CPU执行来自所述外围装置中的一个的处理。当所述主CPU处于操作状态时,所述程序使所述计算机设备确定是否可以使所述主CPU执行所述处理。所述程序根据所述确定的结果,使用所述计算机设备使所述主CPU或者所述副CPU执行所述处理。
发明效果
根据本发明的信息处理装置,在多数情况下,整个系统中具有比较小的处理负载的处理可以由使用具有低功耗的副CPU的低频操作来执行,由此可以使具有高功耗的主CPU长时间处于休眠状态。同样,当主CPU处于操作状态时,副CPU可以用作辅助的CPU,由此可以有效地使用信息处理装置的CPU并降低功耗。因此,根据本发明,提供了一种信息处理装置,其具有低功耗并且用于执行来自外围装置的处理请求的CPU未被固定到主CPU或者副CPU。
利用结合附图时对本发明进行的下列具体说明,本发明的这些和其它目的、特点、方面以及优点将变得更加显而易见。
具体实施方式
(第一实施例)
图1是说明根据本发明的第一实施例的信息处理装置100的硬件结构的框图。在图1中,信息处理装置100包括主CPU(M1)、副CPU(M2)、访问仲裁电路(M3)、中断控制器(M4)、外围装置(M5到M7)以及RAM(M8和M9)。外围装置(M5到M7)和RAM(M8和M9)的数量不限于图1的这些实例。
主CPU(M1)是可以采用两种状态,即操作状态和休眠状态的CPU。副CPU(M2)是具有低于主CPU(M1)的功耗并且可以采用两种状态,即操作状态和休眠状态的CPU。当同时发生来自主CPU(M1)和副CPU(M2)对总线的访问时,访问仲裁电路(M3)管理竞争仲裁。RAM(M8和M9)可以根据设置来限制来自主CPU(M1)和副CPU(M2)的访问。外围装置(M5到M7)例如是HDD、定时器、键盘、按钮开关、液晶显示器、MPEG解码器等,并且经由总线连接到主CPU(M1)和副CPU(M2)。在图1中,外围装置(M5到M7)显示为设置在信息处理装置100的内部,但是其也可以设置在信息处理装置100的外部。
主CPU(M1)和副CPU(M2)都可以访问外围装置(M5到M7)。当期望执行处理时,外围装置(M5到M7)传送中断信号到中断控制器(M4)。当接收到来自外围装置(M5到M7)的中断信号时,中断控制器(M4)根据主CPU(M1)的状态将中断信号发送到主CPU(M1)或者副CPU(M2),即,当主CPU(M1)处于休眠状态时,将中断信号发送到副CPU(M2),并且当主CPU(M1)处于操作状态时,将中断信号发送到主CPU(M1)。注意:如上所述,主CPU(M1)具有操作状态和休眠状态。每当主CPU(M1)的状态改变时,中断控制器(M4)将该状态写入中断控制器(M4)中的寄存器(主CPU状态寄存器)。
图2是说明本发明的第一实施例的信息处理装置100的功能结构的框图。在图2中,信息处理装置100包括主CPU 1、副CPU 2、处理请求确定部分3以及外围装置41到43。主CPU 1对应于图1的主CPU(M1)。副CPU 2对应于图1的副CPU(M2)。处理请求确定部分3对应于图1的中断控制器(M4)。外围装置41到43对应于图1的外围装置(M5到M7)。
主CPU 1包括中断确定部分11。副CPU 2包括中断确定部分21。处理请求确定部分3包括主CPU状态寄存器31、中断请求寄存器32和副CPU状态寄存器33。
主CPU 1可以采用两种状态,即操作状态和休眠状态。主CPU 1将主CPU 1是处于休眠状态还是操作状态的通知发送到主CPU状态寄存器31。主CPU状态寄存器31存储该主CPU 1是处于休眠状态还是操作状态。主CPU状态寄存器31通过从主CPU 1的写入处理改变标志值,并且当主CPU 1进入休眠状态时写入休眠标志,而当主CPU 1进入操作状态时写入操作标志。
副CPU 2可以采用两种状态,即操作状态和休眠状态。副CPU 2将副CPU 2是处于休眠状态还是操作状态的通知发送到副CPU状态寄存器33。副CPU状态寄存器33存储该副CPU 2是处于休眠状态还是操作状态。副CPU状态寄存器33通过从副CPU 2的写入处理改变标志值,并且当副CPU 2进入休眠状态时写入休眠标志,而当副CPU 2进入操作状态时写入操作标志。
主CPU 1和副CPU 2每个都能够控制外围装置41至43。
主CPU 1和副CPU 2在完成所需处理时自动进入休眠状态。当中断信号从处理请求确定部分3发送到中断确定部分11时,主CPU 1执行进入操作状态的处理,并且当进入操作状态时,将操作标志写入主CPU状态寄存器31。
中断请求寄存器32接收来自外围装置41到43的中断信号并且存储该中断信号。当接收到来自外围装置41到43的中断信号时,处理请求确定部分3确定是否使主CPU 1或者副CPU 2执行处理,并且将该中断信号发送到主CPU 1的中断确定部分11或者副CPU 2的中断确定部分21。中断确定部分11检测来自处理请求确定部分3的中断信号。中断确定部分21检测来自处理请求确定部分3的中断信号。
图3是第一实施例的信息处理装置100的操作流程图。在下文中,将参照图3说明第一实施例的信息处理装置100的操作。
当外围装置41、42和43中的任意一个发送中断信号时,通过在中断请求寄存器32的对应于外围装置41、42或者43的部分设定标志,该处理请求确定部分3存储已经出现了中断信号(步骤S1)。
接下来,处理请求确定部分3通过参考主CPU状态寄存器31来确定主CPU 1是否处于休眠状态(步骤S2)。
当主CPU 1处于休眠状态时,该处理请求确定部分3参考副CPU状态寄存器33以确定副CPU 2是否处于休眠状态(步骤S3)。当副CPU2处于休眠状态时,处理请求确定部分3使副CPU 2进入操作状态,使副CPU状态寄存器33存储该副CPU 2处于操作状态(步骤S4),并且进入步骤S5的操作。另一方面,当副CPU 2处于操作状态时,处理请求确定部分3进入步骤S5的操作。
在步骤S5中,处理请求确定部分3发送中断信号到副CPU 2的中断确定部分21(步骤S5)。响应于此,副CPU 2执行对应于所发送中断信号的中断处理(步骤S6),并且进入步骤S7的操作。
在步骤S7中,副CPU 2缺人在步骤S6执行期间是否有针对副CPU 2的新中断请求。当存在新的中断请求时,副CPU 2返回步骤S6的操作,并且执行新的中断处理。另一方面,当没有新的中断请求时,副CPU 2进入休眠状态(步骤S8)。副CPU 2通知主CPU状态寄存器31该副CPU 2进入了休眠状态。响应于此,主CPU状态寄存器31存储该主CPU 1处于休眠状态。
在步骤S2中,当确定主CPU 1没有处于休眠状态,即处于操作状态时,处理请求确定部分3发送中断信号到主CPU 1的中断确定部分11(步骤S9)。主CPU 1执行对应于所发送中断信号的中断处理(步骤S10),并且进入步骤S11的操作。
在步骤S11中,主CPU 1确认在步骤S10执行期间是否有针对主CPU 1的新中断请求。当存在新的中断请求时,主CPU 1返回步骤S10的操作,并且执行新的中断处理。另一方面,当没有新的中断请求时,主CPU 1进入休眠状态(步骤S12)。主CPU 1通知主CPU状态寄存器31该主CPU 1进入了休眠状态。响应于此,主CPU状态寄存器31存储该主CPU 1处于休眠状态。
于是,根据第一实施例,当外围装置发送中断信号时,信息处理装置100确定该主CPU 1是否处于休眠状态。当主CPU 1处于休眠状态时,信息处理装置100确定可以使该副CPU 2执行中断处理,并且使副CPU 2执行中断处理。因此,如果主CPU 1处于休眠状态,则信息处理装置100可以执行中断处理而不唤醒主CPU 1,使得可以使主CPU 1长时间处于休眠状态,从而可以降低功耗。另一方面,当主CPU 1处于操作状态时,信息处理装置100确定可以使主CPU 1执行中断处理,并且使主CPU 1执行该中断处理。由此,可以提高中断处理的响应速度。于是,在该实施例中,由于根据主CPU 1的操作状态选择了要使用的CPU,所以提供了一种这样的信息处理装置100,其实现了低功耗并且其中用于处理来自外围设备的请求的CPU不是固定分配的。在该实施例中,根据CPU的操作状态,确定使用哪个CPU来处理来自外围装置的处理请求。因此,与常规技术不同,其不需要在CPU和外围装置之间进行直接连接或者提供其间的清楚对应关系。因此,即使当信息处理装置具有不同的硬件结构时,如果使用该实施例的处理请求确定部分3,就提供了这样一种信息处理装置,其实现了低功耗,并且其中用于执行来自外围装置的处理请求的CPU不被固定到主CPU或者副CPU。
注意:在第一实施例中,中断确定部分11和21可以设置在CPU内或者处理请求确定部分3内。同样,主CPU状态寄存器31和副CPU状态寄存器33可以设置在CPU内或者处理请求确定部分3内。
注意:将中断信号记录在中断请求寄存器32中的方法可以是除上述形式以外的其它形式。
(第二实施例)
在本发明的第二实施例中,信息处理装置具有类似于第一实施例的硬件结构,并由此参照图1。图4是说明根据本发明的第二实施例的信息处理装置200的功能结构的框图。在图4中,信息处理装置200包括主CPU 1、副CPU 2a、处理请求确定部分3a以及外围装置41到43。在图4中,具有类似于第一实施例的功能的部件将由相同的参考标记表示并不再说明。处理请求确定部分3a包括主CPU状态寄存器31、中断请求寄存器32、副CPU状态寄存器33和副CPU处理请求完成寄存器34。
副CPU处理请求完成寄存器34存储是否禁止该副CPU 2a发生中断。当接收到中断请求时,副CPU 2a将指示副CPU 2a正在执行中断处理的标志写入副CPU处理请求完成寄存器34。当完成中断处理时,副CPU 2a将指示该副CPU 2a没有在执行中断处理的标志写入副CPU处理请求完成寄存器34。
图5是本发明的第二实施例的信息处理装置200的操作流程图。在下文中,将参照图5介绍本发明的第二实施例的信息处理装置200的操作。
当外围装置41、42和43中的任意一个发送中断信号时,处理请求确定部分3a通过在对应于中断请求寄存器32的外围装置41、42和43的部分设定标志来存储已经出现了中断信号(步骤S21)。
接下来,处理请求确定部分3a参照主CPU状态寄存器31来确定主CPU 1是否处于休眠状态(步骤S22)。
当主CPU 1处于操作状态时,处理请求确定部分3a进入步骤S32的操作。另一方面,当主CPU 1处于休眠状态时,处理请求确定部分3a参考副CPU状态寄存器33以确定副CPU 2a是否处于休眠状态(步骤S23)。当副CPU 2a处于休眠状态时,处理请求确定部分3a使副CPU 2a进入操作状态、重写副CPU状态寄存器33(步骤S24),并且进入步骤S25的操作。另一方面,当副CPU 2a处于操作状态时,处理请求确定部分3a进入步骤S25的操作。
在步骤S25中,处理请求确定部分3a参考副CPU处理请求完成寄存器34以确定该副CPU 2a是否可以接受中断请求。当副CPU 2a不能接受中断请求时,即,当副CPU 2a正在执行中断请求时,处理请求确定部分3a进入步骤S26的操作。另一方面,当副CPU 2a可以接受中断请求时,即,当副CPU 2a没有在执行中断请求时,处理请求确定部分3a进入步骤S27的操作。
在步骤S26中,处理请求确定部分3a确定主CPU 1是否处于休眠状态。当主CPU 1处于休眠状态时,处理请求确定部分3a使主CPU1进入操作状态、重写主CPU状态寄存器(步骤S31),并且进入步骤S32的操作。另一方面,当主CPU 1处于操作状态时,处理请求确定部分3a进入步骤S32的操作。
在步骤S27中,处理请求确定部分3a发送中断信号到中断确定部分21,并且进入步骤S28的操作。
在步骤S28中,副CPU 2a执行中断处理。在步骤S28中的中断处理开始期间,副CPU 2a将指示副CPU 2a正在执行中断处理的标志写入副CPU处理请求完成寄存器34中。在步骤S28的中断处理结束期间,副CPU 2a将指示副CPU 2a没有在执行中断处理的标志写入副CPU处理请求完成寄存器34中。在完成该中断处理后,确认在步骤S28期间是否在副CPU 2a中又发生中断(步骤S29)。当中断确定部分21又检测到中断信号时,处理流返回步骤S28,或者当没有检测到中断信号时,副CPU 2a进入休眠状态(步骤S30)。副CPU 2a通知副CPU状态寄存器33其进入了休眠状态。响应于此,副CPU状态寄存器33存储副CPU 2a处于休眠状态。
在步骤S32中,处理请求确定部分3a发送中断信号到主CPU 1的中断确定部分11。接下来,主CPU 1执行对应于所发送中断信号的中断处理(步骤S33),并且进入步骤S34的操作。在步骤S33中,主CPU 1确定在步骤S33执行期间是否存在针对主CPU 1的新中断请求。当存在新的中断请求时,主CPU 1返回步骤S33的操作,并执行新的中断处理。另一方面,当不存在新的中断请求时,主CPU 1进入休眠状态(步骤S35)。主CPU 1通知主CPU状态寄存器31其进入了休眠状态。响应于此,主CPU状态寄存器31存储该主CPU 1处于休眠状态。
于是,根据第二实施例,当从外围装置发送中断信号时,信息处理装置200确定主CPU 1是否处于休眠状态。当主CPU 1处于休眠状态时,信息处理装置200确定是否可以使副CPU 2a执行中断处理。当可以使副CPU 2a执行中断处理时,信息处理装置200使副CPU 2a执行中断处理。因此,如果主CPU 1处于休眠状态并且副CPU 2a可以执行中断处理,则中断处理可以执行而不唤醒主CPU 1,使得可以使主CPU 1长时间处于休眠状态,从而可以降低功耗。另一方面,当主CPU 1处于休眠状态并且副CPU 2a不能执行中断处理时,信息处理装置200使主CPU 1进入操作状态并且使主CPU 1执行中断处理。同样,如果主CPU 1处于操作状态,则信息处理装置200确定可以使主CPU 1执行中断处理,于是就使主CPU 1执行中断处理。因此,可以提高中断处理的响应速度。于是,在该实施例中,由于根据主CPU 1和副CPU 2a的操作状态选择了要被使用的CPU,所以提供了一种这样的信息处理装置200,其实现了低功耗并且其中用于处理来自外围装置的请求的CPU不是固定分配的。在该实施例中,根据CPU的操作状态,确定使用哪个CPU来处理来自外围装置的处理请求。因此,与常规技术不同,其不需要在CPU和外围装置之间进行直接连接或者提供其间的清楚对应关系。因此,即使当信息处理装置具有不同的硬件结构时,如果使用该实施例的处理请求确定部分3a,就提供了这样一种信息处理装置,其实现了低功耗,并且其中用于执行来自外围装置的处理请求的CPU也不用固定到主CPU或者副CPU。
注意:在第二实施例中,中断确定部分11和21可以设置在CPU内或者处理请求确定部分3a内。同样,主CPU状态寄存器31和副CPU状态寄存器33可以设置在CPU内或者处理请求确定部分3a内。副CPU处理请求完成寄存器34也可以设置在CPU内或者处理请求确定部分3a内。
注意:将中断信号记录在中断请求寄存器32中的方法可以是除图2的形式以外的其它形式。
(第三实施例)
在本发明的第三实施例中,信息处理装置具有类似于第一实施例的硬件结构,并由此参照图1。图6是说明根据本发明的第三实施例的信息处理装置300的功能结构的框图。在图6中,信息处理装置300包括主CPU 1b、副CPU 2b、处理请求确定部分3b、外围装置41到43、主CPU唤醒请求发送部分44、存储区确定部分51以及存储区61。在图6中,具有类似于第一实施例和第二实施例的功能的部件将由相同的参考标记表示并不再说明。
存储区61是主CPU 1和副CPU 2可以参考的存储区。存储区61对应于图1的RAM(M8和M9)。
存储区确定部分51存储存储区61是否正被副CPU 2b使用。存储区确定部分51使用Lock(锁)变量来管理副CPU 2b所使用的存储区61的状态。存储区确定部分51对应于图1的RAM(M8和M9)。存储区确定部分51在存储器61正被副CPU 2参考时将指示存储区61正被参考的标志存储在Lock变量中。注意:当副CPU 2参考存储区61时,该标志由副CPU 2b设定。当设定标志时,认为该Lock变量被锁定。当该标志没有被设定时,认为该Lock变量被释放。
主CPU唤醒请求发送部分44发送用于使主CPU 1b进入操作状态的中断信号。
除了主CPU 1b和副CPU 2b可以访问存储区确定部分51和存储区61之外,主CPU 1b和副CPU 2b具有类似于第一和第二实施例的主CPU 1和副CPU 2和2b的功能。
尽管图6只说明了一对相对应的存储区61和存储区确定部分51,但是可以提供任意对。
图7A到7D是本发明的第三实施例的信息处理装置300的操作流程图。在下文中,将参照图7A到7D说明本发明的第三实施例的信息处理装置300的操作。
当外围装置41、42和43中的任意一个发送中断信号时,处理请求确定部分3b通过在中断请求寄存器32的对应于外围装置41、42或者43的部分设定标志来存储已经出现了中断信号(步骤S41)。
接着,处理请求确定部分3b参考主CPU状态寄存器31以确定主CPU 1b是否处于休眠状态(步骤S42)。
当主CPU 1处于操作状态时,处理请求确定部分3b进入步骤S49的操作。另一方面,当主CPU 1b处于休眠状态时,处理请求确定部分3b参考副CPU状态寄存器33以确定副CPU 2b是否处于休眠状态(步骤S43)。当副CPU 2b处于休眠状态时,处理请求确定部分3b使副CPU 2b进入操作状态、重写副CPU状态寄存器33(步骤S44),并且进入步骤S45的操作。另一方面,当副CPU 2b处于操作状态时,处理请求确定部分3b进入步骤S45的操作。
在步骤S45中,处理请求确定部分3b参考副CPU处理请求完成寄存器34以确定副CPU 2b是否可以接受中断请求。当副CPU 2b不能接受中断请求时,处理请求确定部分3b进入步骤S47的操作。另一方面,当副CPU 2b可以接受中断请求时,处理请求确定部分3b进入步骤S46的操作。
在步骤S47中,处理请求确定部分3b确定主CPU 1b是否处于休眠状态。当主CPU 1处于休眠状态时,处理请求确定部分3b使主CPU 1b进入操作状态、重写主CPU状态寄存器(步骤S48),并且进入步骤S49的操作。另一方面,当主CPU 1b处于操作状态时,处理请求确定部分3b进入步骤S49的操作。
在步骤S46中,处理请求确定部分3b发送中断信号到副CPU 2b的中断确定部分21,并且进入步骤S100的操作。
在步骤S49中,处理请求确定部分3b发送中断信号到主CPU 1b的中断确定部分11,并且进入步骤S200的操作。
图7B是信息处理装置300在图7A的步骤S100中的操作的流程图。在下文中,将参照图7B说明信息处理装置300在图7A的步骤S100中的操作。
当检测到中断信号时,副CPU 2b开始副CPU中断例程(步骤S101)、将中断禁止标志写入副CPU处理请求完成寄存器34(步骤S102),并且执行中断处理(步骤S103)。接着,处理请求确定部分3b确定在副CPU 2b的中断处理执行期间是否存在唤醒主CPU 1b的请求(步骤S104)。当存在唤醒主CPU 1b的请求时,处理请求确定部分3b执行处理交换例程(步骤S300),并且进入步骤S106的操作。另一方面,当不存在唤醒主CPU 1b的请求时,在中断处理完成后处理请求确定部分3b将中断允许标志写入副CPU处理请求完成寄存器34(步骤S105),并进入步骤S106的操作。
在步骤S106中,处理请求确定部分3b确定在中断处理期间是否出现了针对副CPU 2的新中断请求。当已经出现新中断请求时,处理请求确定部分3b返回步骤S102的操作。另一方面,当没有出现新中断请求时,处理请求确定部分3b使副CPU 2b进入休眠状态(步骤S107),并且结束副CPU中断例程(步骤S108)。
图17C是信息处理装置300在步骤S200中的操作的流程图。当中断确定部分11检测到中断信号时,主CPU 1b开始主CPU中断例程(步骤S201)。接着,主CPU 1b执行对应于该中断信号的中断处理(步骤S202)。主CPU 1b确定在步骤S202期间是否出现了针对主CPU1b的新中断请求(步骤S203)。当已经出现了新中断请求时,主CPU 1b返回步骤S202并且处理新中断请求。另一方面,当没有出现新中断请求时,主CPU 1b进入休眠状态、将该事件通知主CPU状态寄存器(步骤S204),并且结束主CPU状态寄存器中断例程(步骤S205)。
图17D是信息处理装置300在步骤S300中的操作的流程图。最初,当开始处理交换例程时(步骤S301),副CPU 2b将当前副CPU 2b已经接受的中断处理的号(下文称为中断号)传送到主CPU唤醒请求发送部分44(步骤S302)。接着,主CPU唤醒请求发送部分44发送包括该中断号的中断信号到处理请求确定部分3b(步骤S303)。接着,处理请求确定部分3b发送该中断信号到主CPU 1b(步骤S304)。根据该中断信号,主CPU 1b执行忙循环直到从存储区确定部分51获得Lock变量(步骤S305),并且当获得Lock变量时,开始继续进行副CPU 2b的处理(步骤S306),并且结束中断交换例程(步骤S307)。
图8是具体说明使主CPU 1b接管副CPU 2b中的处理的示例性方法的顺序图。最初,假设主CPU 1b处于休眠状态(步骤S401)。根据发送到副CPU 2b的中断信号(步骤S501),副CPU 2b执行中断处理(步骤S502),并且从存储区确定部分51获得Lock变量(步骤S503)。接着,副CPU 2b将用于唤醒主CPU 1b的请求发送到主CPU唤醒请求发送部分44(步骤S504)。响应于此,主CPU唤醒请求发送部分44发送中断信号到主CPU 1b,使得执行用于唤醒主CPU 1b的中断(步骤S505)。
根据中断信号,主CPU 1b执行用于进入操作状态的唤醒处理(步骤S402)。在完成唤醒处理后,主CPU 1b将主CPU状态寄存器31设置为操作状态。当主CPU状态寄存器31进入操作状态时,处理请求确定部分3b发送中断信号到主CPU 1b(步骤S601),并且将作为唤醒完成触发的主CPU唤醒完成中断信号发送到副CPU 2b(步骤S403)。
根据唤醒完成触发,副CPU 2b闪存存储区61中存储的高速缓存数据(步骤S506),并且将寄存器信息存储到存储区61中(步骤S507)。
主CPU 1b执行忙循环以获得Lock变量,直到Lock变量被释放(步骤S404)。当副CPU 2b释放该Lock变量(步骤S508)时,主CPU 1b走出忙循环并且获得该Lock变量(步骤S405),从存储区61获得副CPU 2b所存储的寄存器信息(步骤S406),并且开始继续已经在副CPU 2b中执行的中断处理(步骤S407)。这里,上述实例中所述的主CPU 1b的唤醒完成触发通过改变主CPU状态寄存器31来实现。然而,唤醒完成触发的事件可以由专门用于通知副CPU 2b该事件的外围装置来执行。
于是,根据第三实施例,当外围装置发送中断信号时,信息处理装置300确定主CPU 1b是否处于休眠状态。当主CPU 1b处于休眠状态时,信息处理装置300确定是否可以使副CPU 2b执行中断处理。当可以使副CPU 2b执行中断处理时,信息处理装置300使副CPU 2b执行该中断处理。因此,如果主CPU 1b处于休眠状态并且副CPU 2b可以执行中断处理,则中断处理可以在不唤醒主CPU 1b的情况下执行,使得主CPU 1b可以长时间处于休眠状态,从而可以降低功耗。另一方面,当主CPU 1b处于休眠状态并且副CPU 2b不能执行中断处理时,信息处理装置300使主CPU 1b进入操作状态并且使主CPU1b执行中断处理。同样,如果主CPU 1b处于操作状态,则信息处理装置300使主CPU 1b执行该中断处理。从而,可以提高中断处理的响应速度。此外,如果在副CPU 2b执行中断处理期间存在唤醒主CPU1b的请求,则信息处理装置300如此操作,使得主CPU 1b继续执行副CPU 2b中的处理。因此,可以进一步提高中断处理的响应速度。于是,在该实施例中,由于根据主CPU 1b和副CPU 2b的操作状态来选择将要使用的CPU,所以提供了一种这样的信息处理装置300,其实现了低功耗并且其中用于处理来自外围设备的请求的CPU不是固定分配的。在该实施例中,根据CPU的操作状态确定使用哪个CPU来处理来自外围装置的处理请求。因此,这与常规技术不同,其不需要在CPU和外围装置之间进行直接连接或者提供其间的清楚对应关系。因此,即使当信息处理装置具有不同的硬件结构时,如果使用该实施例的处理请求确定部分3b,就提供了这样一种信息处理装置,其实现了低功耗,并且其中用于执行来自外围装置的处理请求的CPU也不用固定到主CPU或者副CPU。
注意:在第三实施例中,中断确定部分11和21可以设置在CPU内或者处理请求确定部分3b内。同样,主CPU状态寄存器31和副CPU状态寄存器33可以设置在CPU内或者处理请求确定部分3b内。副CPU处理请求完成寄存器34也可以设置在CPU内或者处理请求确定部分3b内。
注意:将中断信号记录在中断请求寄存器32中的方法可以是除图6的形式以外的其它形式。
(第四实施例)
在本发明的第四实施例中,信息处理装置具有类似于第一实施例的硬件结构,并由此参照图1。图9是说明根据本发明的第四实施例的信息处理装置400的功能结构的框图。在图9中,信息处理装置400包括主CPU 1c、副CPU 2a、处理请求确定部分3c以及外围装置41到43。在图9中,具有类似于第二实施例的功能的部件将由相同的参考标记表示并不再说明。处理请求确定部分3c包括主CPU状态寄存器31、主CPU处理请求完成寄存器35、中断请求寄存器32、副CPU状态寄存器33和副CPU处理请求完成寄存器34。
主CPU处理请求完成寄存器35存储是否禁止主CPU 1c被中断。当接收到中断请求时,主CPU 1c将指示主CPU 1c正在执行中断处理的标志写入主CPU处理请求完成寄存器35。当结束该中断处理时,主CPU 1c将指示主CPU 1c没有在执行中断的标志写入主CPU处理请求完成寄存器35。于是,第四实施例的信息处理装置400具有通过将主CPU处理请求完成寄存器35添加到第二实施例的信息处理装置200所获得的结构。
图10是本发明的第四实施例的信息处理装置400的操作流程图。在下文中,将参照图10说明本发明的第四实施例的信息处理装置400的操作。
信息处理装置400的操作与第二实施例的信息处理装置200的操作具有许多共同点。在图10的流程图的步骤中,具有类似于第二实施例的信息处理装置200的操作的步骤将由类似于图5的步骤号来表示并且不对其进行描述。
图10的流程图与图5的第二实施例的流程图的不同之处在于:在从步骤S22转换到步骤S32的某个中点处增加了步骤S51的操作。在步骤S22中,当确定主CPU 1c处于操作状态时,处理请求确定部分3c执行步骤S51的操作。在步骤S51中,处理请求确定部分3c参考存储在主CPU处理请求完成寄存器35中的寄存器来确定主CPU1c是否可以接受中断。当主CPU 1c不能接受中断时,信息处理装置400进入步骤S23的操作。另一方面,当主CPU 1c可以接受中断时,信息处理装置400进入步骤S32的操作。随后的处理步骤类似于第二实施例。
于是,根据第四实施例,当主CPU 1c处于休眠状态时,副CPU2a执行中断处理,从而可以使主CPU 1长时间处于休眠状态。另一方面,当主CPU 1c处于操作状态时,副CPU 2a也可以并行处理中断处理。与第二实施例相比,提高了信息处理装置400的响应速度。从而提供了一种实现低功耗并且其中响应速度提高的信息处理装置。
(第五实施例)
在本发明的第五实施例中,信息处理装置具有类似于第一实施例的硬件结构,并由此参照图1。图11是说明本发明的第五实施例的信息处理装置500的功能结构的框图。在图11中,信息处理装置500包括主CPU 1c、副CPU 2a、处理请求确定部分3d以及外围装置41到43。在图11中,具有类似于第四实施例的功能的部件将由相同的参考标记表示并不再说明。处理请求确定部分3d包括主CPU状态寄存器31、主CPU处理请求完成寄存器35、中断请求寄存器32、副CPU状态寄存器33、副CPU处理请求完成寄存器34以及处理请求目的地指定部分36。
处理请求目的地指定部分36与中断号相关联地存储关于处理请求确定部分3d应该将中断信号发送到主CPU 1c还是副CPU 2a的信息(以下称为指定CPU信息),和关于除了指定CPU之外的其它CPU是否可以使用的信息(其它CPU可用性信息)。
图12是说明存储在处理请求目的地指定部分36中的示例性信息的图。在图12中,例如,作为中断号,当分配了来自外围装置41的中断处理时,定义了:处理请求确定部分3d应该将中断信号发送到主CPU 1c,并且可以将中断信号发送到副CPU 2a。同样,例如,作为中断号,当分配了来自外围装置42(或者43)的中断处理时,定义了:处理请求确定部分3d应该将中断发送到副CPU 2a,并且不允许将中断信号发送到主CPU 1c。
例如,在信息处理装置500的初始化期间,限定处理请求目的地指定部分36的限定内容。
图13A到13D是本发明的第五实施例的信息处理装置500的操作流程图。在下文中,将参照图13A到13D说明本发明的第五实施例的信息处理装置500的操作。
当外围装置41、42和43中的任意一个发送中断信号时,处理请求确定部分3d通过在中断请求寄存器32的对应于外围装置41、42或者43的部分设定标志来存储已经出现了中断信号(步骤S61)。
接着,处理请求确定部分3d执行处理请求目的地确定功能以确定应该执行中断处理的CPU(步骤S700)。
在步骤S700中,当将副CPU 2a指定为应该执行中断处理的CPU时,处理请求确定部分3d参考副CPU状态寄存器33以确定副CPU 2a是否处于休眠状态(步骤S62)。当副CPU 2a处于休眠状态时,处理请求确定部分3d使副CPU 2a进入操作状态(步骤S63),并且进入步骤S64的操作。另一方面,当副CPU 2a处于操作状态时,处理请求确定部分3d进入步骤S64的操作。在步骤S64中,处理请求确定部分3d参考副CPU处理请求完成寄存器34以确定副CPU 2a是否可以接受中断处理。当副CPU 2a不能接受中断处理时,处理请求确定部分3d返回步骤S64的操作。另一方面,当副CPU 2a可以接受中断处理时,处理请求确定部分3d发送中断信号到中断确定部分21(步骤S65),并且执行副CPU中断处理例程(步骤S900)。
在步骤S700中,当指定主CPU 1c为应该执行中断处理的CPU时,处理请求确定部分3d参考主CPU状态寄存器31以确定主CPU 1c是否处于休眠状态(步骤S66)。当主CPU 1c处于休眠状态时,处理请求确定部分3d使主CPU 1c进入操作状态(步骤S67),并且进入步骤S68的操作。另一方面,当主CPU 1c处于操作状态时,处理请求确定部分3d进入步骤S68的操作。在步骤S68中,处理请求确定部分3d参考主CPU处理请求完成寄存器35以确定主CPU 1c是否可以接受中断处理。当主CPU 1c不能接受中断处理时,该处理请求确定部分3d返回步骤S68的操作。另一方面,当主CPU 1c可以接受中断处理时,处理请求确定部分3d发送中断信号到中断确定部分11(步骤S69),并且执行主CPU中断处理例程(步骤S800)。
图13B是图13A的步骤S700的处理的流程图。在下文,将参考图13B详细介绍图13A的步骤S700的处理。
当处理请求功能开始时(步骤S701),处理请求确定部分3d参考处理请求目的地指定部分36的指定CPU信息来确认针对该中断信号指定哪一个CPU(步骤S702)。
当指定的CPU是主CPU 1c时,处理请求确定部分3d参考主CPU状态寄存器31以确定主CPU 1c是否处于休眠状态(步骤S707)。当主CPU 1c处于操作状态时,处理请求确定部分3d进入步骤S709的操作。另一方面,当主CPU 1c处于休眠状态时,处理请求确定部分3d参考处理请求目的地指定部分36的其它CPU可用性信息来确定是否允许将中断信号发送到副CPU 2a(步骤S708)。当允许将中断信号发送到副CPU 2a时,处理请求确定部分3d选择副CPU 2a作为处理请求目的地CPU,并且结束处理请求目的地确定功能(步骤S711)。另一方面,当不允许将中断信号发送到副CPU 2a时,处理请求确定部分3d进入步骤S709的操作。
在步骤S709中,处理请求确定部分3d参考主CPU处理请求完成寄存器35以确定主CPU 1c是否可以接受中断。当主CPU 1c可以接受中断时,处理请求确定部分3d选择主CPU 1c作为处理请求目的地CPU,并且结束处理请求目的地确定功能(步骤S712)。另一方面,当主CPU 1c不能接受中断时,处理请求确定部分3d确定是否允许将中断信号发送到副CPU 2a,这与步骤S708类似(步骤S710)。当允许将中断信号发送到副CPU 2a时,处理请求确定部分3d选择副CPU 2a作为处理请求目的地CPU,并且结束处理请求目的地确定功能(步骤S711)。另一方面,当不允许将中断信号发送到副CPU 2a时,处理请求确定部分3d选择主CPU 1c作为处理请求目的地CPU,并且结束处理请求目的地确定功能(步骤S712)。
在步骤S702中,当指定的CPU是副CPU 2a时,处理请求确定部分3d参考副CPU状态寄存器33以确定副CPU 2a是否处于休眠状态(步骤S703)。当副CPU 2a处于操作状态时,处理请求确定部分3d进入步骤S705的操作。另一方面,当副CPU 2a处于休眠状态时,处理请求确定部分3d参考处理请求目的地指定部分36的其它CPU可用性信息来确定是否允许将中断信号发送到主CPU 1c(步骤S704)。当允许将中断信号发送到主CPU 1c时,处理请求确定部分3d选择主CPU 1c作为处理请求目的地CPU,并且结束处理请求目的地确定功能(步骤S712)。另一方面,当不允许将中断信号发送到主CPU 1c时,处理请求确定部分3d进入步骤S705的操作。
在步骤S705中,处理请求确定部分3d参考副CPU处理请求完成寄存器34以确定副CPU 2a是否可以接受中断。当副CPU 2a可以接受中断时,处理请求确定部分3d选择副CPU 2a作为处理请求目的地CPU,并且结束处理请求目的地确定功能(步骤S711)。另一方面,当副CPU 2a不能接受中断时,处理请求确定部分3d确定是否允许将中断信号发送到主CPU 1c,这与步骤S704类似(步骤S706)。当允许将中断信号发送到主CPU 1c时,处理请求确定部分3d选择主CPU 1c作为处理请求目的地CPU,并且结束处理请求目的地确定功能(步骤S712)。另一方面,当不允许将中断信号发送到主CPU 1c时,处理请求确定部分3d选择副CPU 2a作为处理请求目的地CPU,并且结束处理请求目的地确定功能(步骤S711)。
图13C是图13A的步骤S800中的主CPU中断处理例程的具体流程图。在下文,将参考图13C详细介绍图13A的步骤S800中的主CPU中断处理例程。
当主CPU中断处理例程开始并且中断确定部分11检测到中断信号时(步骤S801),主CPU 1c将中断禁止标志写入主CPU处理请求完成寄存器35(步骤S802),并且执行对应于中断号的中断处理(步骤S803)。当中断处理完成时,主CPU 1c将中断允许标志写入主CPU处理请求完成寄存器35(步骤S804)。接着,主CPU 1c参考中断确定部分11以确定是否存在中断请求(步骤S805)。当存在中断请求时,主CPU 1c返回步骤S802的操作。另一方面,当不存在中断请求时,主CPU 1c进入休眠状态(步骤S806),并且结束主CPU中断处理例程(步骤S807)。
图13D是图13A的步骤S900中的副CPU中断处理例程的具体流程图。在下文,将参考图13D详细介绍图13A的步骤S900中的副CPU中断处理例程。
当副CPU中断处理例程开始并且中断确定部分21检测到中断信号时(步骤S901),副CPU 2a将中断禁止标志写入副CPU处理请求完成寄存器34(步骤S902),并且执行对应于中断号的中断处理(步骤S903)。当中断处理完成时,副CPU 2a将中断允许标志写入副CPU处理请求完成寄存器34(步骤S904)。接着,副CPU 2a参考中断确定部分21以确定是否存在中断请求(步骤S905)。当存在中断请求时,副CPU 2a返回步骤S902的操作。另一方面,当不存在中断请求时,副CPU 2a进入休眠状态(步骤S906),并且结束副CPU中断处理例程(步骤S907)。
于是,根据第五实施例,可以灵活地确定使哪个CPU来执行针对每个中断的处理,使得例如将具有相对小处理负载并且在短周期内执行的事件分配给副CPU 2a,而将其它事件分配给主CPU 1c,从而可以降低功耗。同样,在第五实施例中,当通过处理请求目的地指定部分36指定主CPU 1c时,信息处理装置500最初确定主CPU 1c是否处于休眠状态(见图13B的步骤S707)。当主CPU 1c处于休眠状态时,信息处理装置500确定中断处理是否可以由副CPU 2a执行(见图13B的步骤S708)。当中断处理可以由副CPU 2a执行时,信息处理装置500使副CPU 2a执行中断处理。于是,如果主CPU 1c处于休眠状态并且副CPU 2a可以执行中断处理,则中断处理可以在不唤醒主CPU 1c的情况下进行,使得主CPU 1c可以长时间处于休眠状态,从而可以降低功耗。另一方面,当主CPU 1c处于操作状态时,处理请求确定部分3d确定中断处理是否可以由主CPU 1c执行。当中断处理可以由主CPU 1c执行时,主CPU 1c执行该中断处理,使得响应速度提高。
注意:在第五实施例中,中断确定部分11和21可以设置在CPU内或者处理请求确定部分3d内。同样,主CPU状态寄存器31和副CPU状态寄存器33可以设置在CPU内或者处理请求确定部分3d内。副CPU处理请求完成寄存器34也可以设置在CPU内或者处理请求确定部分3d内。
注意:将中断信号记录在中断请求寄存器32中的方法可以是除图11的形式以外的其它形式。
注意:在第五实施例中,作为接受中断前的处理,使用如图13A的步骤S64和S68所示的忙循环。然而,处理请求确定部分3d可以在诸如队列的数据结构中按时间序列积累中断处理,并且发送其后的中断信号,同时监控中断确定部分11和21。
注意:在第五实施例中,如同在第三实施例中,可以引入用于使主CPU 1c接管副CPU 2a中的处理的机制。这可以通过透彻理解第三实施例的图7B到7D和图8所得来的方法来实现。
注意:在第五实施例中,步骤S709、S703和S705中的至少一个是非必需的。
(第六实施例)
根据本发明的第六实施例的信息处理装置具有类似于第五实施例的部件,并由此参照图1、11和12。
图14是本发明的第六实施例的信息处理装置的操作流程图。在下文中,将参照图14来介绍本发明的第六实施例的信息处理装置的操作。
当外围装置41、42和43中的任意一个发送中断信号时,处理请求确定部分3d通过在中断请求寄存器32的对应于外围装置41、42或者43的部分设定标志来存储已经出现了中断信号(步骤S71)。
接着,处理请求确定部分3b参考主CPU状态寄存器31以确定主CPU 1是否处于休眠状态(步骤S72)。
在步骤S72中,当确定主CPU 1处于操作状态时,处理请求确定部分3d参考主CPU处理请求完成寄存器35来确定主CPU 1c是否可以接受中断(步骤S73)。当主CPU 1c可以接受中断时,处理请求确定部分3d参考处理请求目的地指定部分36中所定义的表中的指定CPU信息,根据是否将主CPU 1c指定为指定CPU来确定是否允许将中断信号发送到主CPU 1c(步骤S74)。这里,作为处理请求目的地指定部分36中所定义的表的实例,可以使用如图15以及图12所示出的表,其中指定CPU信息只与中断号相关联地定义。
在步骤S74中,当不允许将中断信号发送到主CPU 1c时,处理请求确定部分3d进入步骤S75的操作。另一方面,当允许将中断信号发送到主CPU 1c时,处理请求确定部分3d进入步骤S81的操作。
在步骤S75中,处理请求确定部分3d参考副CPU状态寄存器33来确定副CPU 2a是否处于休眠状态。
当副CPU 2a处于休眠状态时,处理请求确定部分3d使副CPU 2a进入操作状态(步骤S76),并且进入步骤S77的操作。另一方面,当副CPU 2a没有处于休眠状态时,处理请求确定部分3d进入步骤S77的操作。
在步骤S77中,处理请求确定部分3d参考副CPU处理请求完成寄存器34来确定副CPU 2a是否可以接受中断信号。
当副CPU 2a不能接受中断时,处理请求确定部分3d返回步骤S77的操作,并且当确定副CPU 2a不能接受中断时,处理请求确定部分3d执行忙循环来等待,直到副CPU 2a可以接受中断。当副CPU2a可以接受中断信号时,处理请求确定部分3d发送中断信号到中断确定部分21(步骤S78),并且执行副CPU中断处理例程(步骤S900)。该副CPU中断处理例程类似于第五实施例的副CPU中断处理例程,并由此参照图13D,并且不再对该副CPU中断处理例程进行说明。
在步骤S72中,当确定主CPU 1c处于休眠状态时,处理请求确定部分3d参考处理请求目的地指定部分36中所定义的表上的指定CPU信息来确定是否允许将中断信号发送到副CPU 2a(步骤S79)。当允许将中断信号发送到副CPU 2a时,处理请求确定部分3d进入步骤S75的操作。另一方面,当确定不允许将中断信号发送到副CPU 2a时,处理请求确定部分3d使主CPU 1c进入操作状态(步骤S80),并且进入步骤S81的操作。
在步骤S81中,处理请求确定部分3d参考主CPU处理请求完成寄存器35来确定主CPU 1c是否可以接受中断。当主CPU 1c不能接受中断时,处理请求确定部分3d返回步骤S81的操作,并且在主CPU1c可以接受中断前一直执行忙等待。当主CPU 1c可以接受中断时,处理请求确定部分3d发送中断信号到中断确定部分11(步骤S82),并且执行主CPU中断处理例程(步骤S900)。该主CPU中断处理例程类似于第五实施例的主CPU中断处理例程,并由此可以参考图13C,并且不再对主CPU中断处理例程进行说明。
于是,根据第六实施例,例如可以灵活地确定使哪个CPU来执行针对每个中断的处理,使得例如将具有较小的处理负载并且在短周期内执行的事件分配给副CPU 2,而将其它事件分配给主CPU 1,从而可以降低功耗。同样,在第六实施例中,信息处理装置最初确定主CPU 1c是否处于休眠状态(见图14的步骤S72)。当主CPU 1c处于休眠状态时,信息处理装置确定中断处理是否可以由副CPU 2a执行(见图14的步骤S79)。当中断处理可以由副CPU 2a执行时,信息处理装置使副CPU 2a执行中断处理。因此,如果主CPU 1c处于休眠状态并且副CPU 2a可以执行中断处理,则中断处理可以在不唤醒主CPU 1c的情况下进行,使得主CPU 1c可以长时间处于休眠状态,从而可以降低功耗。另一方面,当主CPU 1c处于操作状态时,处理请求确定部分3d确定中断处理是否可以由主CPU 1c执行(图14的步骤S74)。当中断处理可以由主CPU 1c执行时,该信息处理装置使主CPU1c执行中断处理。从而提高了响应速度。
注意:在第六实施例中,中断确定部分11和21可以设置在CPU内或者处理请求确定部分3d内。同样,主CPU状态寄存器31和副CPU状态寄存器33可以设置在CPU内或者处理请求确定部分3d内。副CPU处理请求完成寄存器34也可以设置在CPU内或者处理请求确定部分3d内。
注意:将中断信号记录在中断请求寄存器32中的方法可以是除图11的形式以外的其它形式。
注意:在第六实施例中,作为接受中断前的处理,使用如图14的步骤S77和S81所示的忙循环。然而,处理请求确定部分3d可以在诸如队列的数据结构中按时间序列积累中断处理,并且发送其后的中断信号,同时监控中断确定部分11和21。
注意:在第六实施例中,如同在第三实施例中,可以引入用于使主CPU 1c接管副CPU 2a中的处理的机制。这可以通过透彻理解第三实施例的图7B到7D所得到的方法来实现。
注意:中断控制器(M4)可以是通用计算机装置(例如,微型计算机等),存储在存储器装置中的程序可以读入该计算机装置中,并且实施例中所述的操作可以由该计算机装置执行,从而实现处理请求确定部分。该程序可以预先并入信息处理装置中,或者可以后来装入信息处理装置中。
注意:用于实现本发明的信息处理装置的功能块(例如,处理请求确定部分)一般可以实现为集成电路(LSI)。可以将每个功能块分别安装在一个芯片上,或者可以将所有功能块的一部分或者全部安装在一个芯片上。这里,使用术语LSI。LSI也可称为IC、系统LSI、超级LSI或者超LSI,这取决于封装密度。同样,集成电路不限于LSI。集成电路可以通过专用电路或者通用处理器来实现。此外,可以使用现场可编程门阵列(FPGA)或者可重配置的处理器,其中FPGA可以在LSI生产后重新编程,可重配置的处理器中,LSI中的电路单元的连接或者设置可以被重新配置。而且,如果代替LSI的集成电路技术随着半导体技术的进步或者来源于半导体技术的其它技术的出现而发展,则可以使用这种技术来封装功能块。生物工艺学同样可以适用。
尽管已经详细介绍了本发明,但是前述说明在所有方面都是示例性的而非限制性的。应该理解,在不脱离本发明范围的情况下,可以设计许多其它的改进和变化。