CN104462011A - 信息处理设备与半导体设备 - Google Patents
信息处理设备与半导体设备 Download PDFInfo
- Publication number
- CN104462011A CN104462011A CN201410426402.8A CN201410426402A CN104462011A CN 104462011 A CN104462011 A CN 104462011A CN 201410426402 A CN201410426402 A CN 201410426402A CN 104462011 A CN104462011 A CN 104462011A
- Authority
- CN
- China
- Prior art keywords
- state
- equipment
- controller
- storage facilities
- processor
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3215—Monitoring of peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3237—Power saving characterised by the action undertaken by disabling clock generation or distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/324—Power saving characterised by the action undertaken by lowering clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
Abstract
本发明公开了根据一种实施例的信息处理设备,包含存储设备、一个或多个外围设备、处理器和状态控制器。该处理器能够在第一状态与第二状态之间转变,其中在第一状态下执行命令,在第二状态下等待中断。当处理器进入第二状态时并且如果在至少一个外围设备与储存设备之间正在执行数据传输操作,则状态控制器使信息处理设备切换为与第一状态相比功耗较低的第三状态。如果在任一外围设备与储存设备之间没有正在执行数据传输操作,则状态控制器使信息处理设备切换为与第三状态相比功耗较低的第四状态。
Description
相关申请的交叉引用
本申请基于在2013年9月24日提交的日本专利申请No.2013-197394并要求其优先权;该专利申请No.2013-197394全文并入本文,以作参考。
技术领域
本文所描述的实施例总体地涉及信息处理设备和半导体设备。
背景技术
对于具有内置的计算机系统的信息处理设备,例如,移动信息设备(例如,平板电脑、智能电话、眼镜型可穿戴终端或手表型可穿戴终端)、车载信息系统或传感器系统,实现省电是待解决的重要技术问题之一。在这样的信息处理设备中,通过将计算机系统集成于大规模集成(LSI)芯片上来配置的片上系统(SoC)充当主要构成元件(构件)。在SoC中,处理器内核(有时也称为处理器、中央处理单元(CPU)或微处理单元(MPU))通过执行计算机程序(软件)来实现各种功能。
在使用中的信息处理设备内,处理器内核具有两种主要状态,即,运行状态(也称为活动状态)和空闲状态(在这两种状态之间变化)。在运行状态中,处理器内核保持执行计算机程序(命令)。相比之下,在空闲状态中,处理器内核不执行计算机程序,并且保持等待作为关于事件发生(例如,由I/O设备(外围设备)执行的操作完成)的通知而发出的中断。
在常规的信息处理设备中,当处理器内核进入空闲状态时,SoC切换至等待(WAIT)模式(也称睡眠(SLEEP)模式)。在SoC的等待模式中,尽管处理器内核停止执行计算机程序,但是必要的I/O设备继续执行操作。因而,例如,响应于诸如I/O操作的完成、用户输入、通信数据到达或定时器之类的事件的发生,处理器内核立即切换至能够恢复计算机程序的执行的状态,并且持续地消耗为了保持当前状态所需的电力。
在这方面,许多类型的SoC都具有深度睡眠(DEEP SLEEP)模式(也称为停止(STOP)模式)。因而,当具有安装于其内的SoC的信息处理设备不是正由用户使用时,SoC切换至深度睡眠模式并且在较低的功耗下待机。当SoC切换至深度睡眠模式时,不仅处理器停止,而且不需要执行操作的I/O设备也停止。而且,如果可能,对那些构成元件的供电也停止;或者所供给的电源电压被降低到使得状态能够保持的范围之内;或者时钟停止。结果,有可能会降低功耗。
按照常规,如果检测到用户没有操作设备的状态已经持续了很长一段时间,或者如果检测到剩余电池电量已经降低,或者如果从用户接收到将信息处理设备切换为省电状态的请求;则信息处理设备执行挂起(suspend)操作(也称为待机操作),使得SoC(或者整个信息处理设备或处理器内核)被切换至具有低功耗的深度睡眠模式。于是,功耗降低得以实现。
在常规的挂起操作中,SoC(或整个信息处理设备)在切换为深度睡眠模式之前被设定为稳定状态。因此,在挂起操作结束之后,有可能从在执行挂起操作之前的状态继续进行操作。也就是,在挂起操作中,在处理器内核中正执行的计算机程序(即,由操作系统管理的进程或任务)被停止,并且不允许对I/O设备(外围设备)发出新的处理请求。另外,如果在被配置用于在深度睡眠模式中停止执行操作的I/O设备内正在执行操作(即,如果I/O设备不是能够将SoC从深度睡眠模式中激活过来的激活允许式设备);则等待操作的完成,并且SoC在切换为深度睡眠模式之前被设定为稳定状态。由于该原因,SoC没有在挂起操作开始之后立即切换至深度睡眠模式,并且需要时间来将SoC设定于稳定状态。
一般地,与等待模式相比,在深度睡眠模式中的功耗是较小的。因此,虽然处理器内核处于空闲状态中,但如果SoC能够切换至深度睡眠模式,而不是等待模式,则有可能进一步降低信息处理设备的平均功耗。
但是,例如,当处理器内核处于空闲状态时,如果尝试使用常规的挂起操作的方法将SoC切换至深度睡眠模式,则挂起操作的开销达到不可忽略的长度。因此,信息处理设备的性能被严重地消弱。
附图说明
图1是示出根据第一实施例的信息处理设备的示例性硬件配置的示意图;
图2是示出根据第一实施例的电源管理集成电路(PMIC)的示例性配置的示意图;
图3是示出根据第一实施例的片上系统(SoC)的电源域的示意图;
图4是用于解释根据第一实施例的高频振荡器的激活/停止的示意图;
图5是示出根据一个改进实例的信息处理设备的示例的示意图;
图6是示出根据一个改进实例的信息处理设备的示例的示意图;
图7是示出根据一个改进实例的信息处理设备的示例的示意图;
图8是示出根据第一实施例的时钟控制模块的示例的示意图;
图9是示出根据一个改进实例的时钟控制模块的示例性配置的示意图;
图10是示出根据第一实施例的微计算机的示例性配置的示意图;
图11是示出根据第一实施例的操作系统(OS)的示例性功能配置的示意图;
图12是示出根据第一实施例的设备状态管理信息的实例的示意图;
图13是用于解释根据第一实施例的由设备启动器执行的操作的实例的流程图;
图14是用于解释根据由第一实施例的进程切换器执行的操作的实例的流程图;
图15是用于解释由根据第一实施例的SoC执行的操作的实例的流程图;
图16是用于解释根据第一实施例的在SoC与PMIC之间的合作的示意图;
图17是用于解释由根据第一实施例的SoC执行的操作的实例的流程图;
图18是示出根据第五实施例的I/O设备的状态转换的示意图;
图19是用于解释由根据第七实施例的进程切换器执行的操作的实例的流程图;
图20是示出根据第八实施例的信息处理设备的外观的示意图;
图21是示出根据第八实施例的信息处理设备的示例性配置的示意图;
图22是示出根据第八实施例的信息处理设备的示例性配置的示意图;
图23是示出根据一个改进实例的信息处理设备的示例性硬件配置的示意图;
图24是示出根据第八实施例的SoC的状态转换的实例的示意图;
图25是示出根据第八实施例的操作系统(OS)的示例性功能配置的示意图;
图26是用于解释由根据第八实施例的设备启动器执行的操作的实例的流程图;
图27是用于解释由根据第八实施例的进程切换器执行的操作的实例的流程图;
图28是示出根据第八实施例的在微计算机与SoC之间的连接的实例的示意图;
图29是用于解释根据第八实施例的由微计算机执行的电源管理的示意图;
图30是用于解释由根据第八实施例的微计算机执行的操作的实例的流程图;
图31是用于解释由根据第八实施例的SoC执行的操作的实例的流程图;
图32是示出根据第九实施例的管理程序的示例性功能配置的示意图;
图33是用于解释由根据第九实施例的WFI处理器执行的操作的实例的流程图;
图34是用于解释由根据第九实施例的I/O设备控制器执行的操作的实例的流程图;以及
图35是用于解释根据第九实施例的在中断处理中执行的操作的实例的流程图。
具体实施方式
根据一种实施例,信息处理设备包含储存设备、一个或多个外围设备、处理器和状态控制器。该处理器能够在第一状态与第二状态之间转变,其中在该第一状态下执行命令,在该第二状态下等待中断。当处理器进入第二状态时并且如果在至少一个外围设备与储存设备之间正在执行数据传输操作,则状态控制器将信息处理设备切换为第三状态。第三状态是在该状态下相比所述第一状态功耗较小的状态。如果在任一外围设备与储存设备之间没有正在执行数据传输操作,状态控制器将信息处理设备切换为第四状态。第四状态是在该状态下相比第三状态功耗较低的状态。
下面将参照附图详细地描述各种实施例。
第一实施例
图1是示出根据第一实施例的信息处理设备1的示例性硬件配置的示意图。如图1所示,信息处理设备1包含电源设备10、电源管理集成电路(PMIC)20、主存储器30、片上系统(SoC)100、显示设备200、储存设备210、网络设备220和人机接口(human interface)设备(HID)230。在下面的解释中,在显示设备200、储存设备210、网络设备220和HID230不需要相互区分时;它们有时共同简称为“I/O设备”。因而,I/O设备通过与SoC100连接来使用(即,I/O设备与安装于信息处理设备1内的计算机系统(处理器内核)结合来使用),并且能够认为其对应于权利要求所提及的“外围设备”。
电源设备10的实例包括下列各种类型:交流(AC)电源,例如,AC适配器;原电池,例如,碱锰电池;二次电池,例如,镍金属氢化物电池;以及发电装置与蓄电设备的结合,例如,能量采集设备。例如,用于由光能生成电力的光伏电池或者用于由热能或振动能生成电力的其他采集设备能够用作能量采集设备。在由能量采集设备生成的电力不足以应付在由信息处理设备1执行的操作的高峰期的功耗的情况下,则在功耗较少的时段内的过剩电力能够存储于蓄电设备内,并且能够用来应付在高峰时段所需的电力。这样的用法称为高峰辅助(peakassist)。蓄电设备的实例包括大容量电容器(例如,双电层电容器(electrical double layer capacitor)或锂离子电容器)以及电池(例如,锂离子电池)。作为选择,蓄电设备能够使用大容量电容器和电池的组合来配置。
PMIC20将由电源设备10供应的电力转换成SoC100、主存储器30和I/O设备所需的电压;并且将电压供应给构成元件。在图2中示出了PMIC20的示例性配置。在此,PMIC20具有一个或多个不同类型的内置稳压器,例如,多个开关稳压器或多个线性稳压器。从而,PMIC20将由电源设备10供应的输入电压转换为与每个电源线对应的电压。而且,PMIC20具有内置的控制寄存器以用来存储指示待为每个电源线设定的输出电压的信息。因而,每个电源线的稳压器的电压输出能够基于相应的控制寄存器来设定。另外,控制寄存器还能够用来存储指示每个电源线的稳压器的输出电压以及指示在接收到STBY信号(在后面描述)时电源的开/关控制的信息。因而,当接收到STBY信号(在后面描述)时,PMIC20能够设定每个电源线的稳压器的输出电压,并且能够基于相应的控制寄存器来设定电源的开/关控制。因而,例如,如果PMIC20是使用关于SoC100已经切换为深度睡眠模式的STBY信号来通知的,则PMIC20能够将每个电源线的输出电压改变为指定的电压,或者能够停止电源。
通常,SoC100和PMIC20通过串行总线(未示出)(例如,I2C或SPI)来相互连接。因而,在PMIC20中的控制寄存器内,值能够经由串行总线由SoC100来设定。同时,作为使用集成于单个芯片内的构件来配置PMIC20的替代,还可以使用多个DC/DC转换器(芯片或模块)的组合。而且,有时候SoC100配备有PMIC20的部分或全部功能。也就是,SoC100能够具有作为内置构件的DC/DC转换器和稳压器,以使得电源的开/关控制以及电压的改变能够在SoC100内部完成。
返回参照图1的解释,主存储器30能够使用易失性存储器或者使用非易失性存储器来配置。易失性存储器的实例包括动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM)。非易失性存储器的实例包括磁阻式随机存取存储器(MRAM)、相变存储器(PCM)、电阻式随机存取存储器(ReRAM)、铁电式(ferroelectric)随机存取存储器(FeRAM)和NOR闪存。作为选择,例如,主存储器30的类型能够通过按照计算机程序存储于NOR闪存内并且数据存储于DRAM内的方式来结合多个存储器而配置。用作主存储器30的存储器经由安装于SoC100内的存储器控制器102与SoC100的计算机系统连接。在此,主存储器30对应于权利要求所提及的“储存设备”。
存在某些类型的存储器,这些存储器在不被处理器内核或设备控制器访问时,能够切换为在其中功耗较低的省电模式。例如,在使用较新版本的DRAM(例如,DDR3或LPDDR2)的情形中,能够通过切换为自刷新模式(自刷新状态)来缩减功耗,在该自刷新模式(自刷新状态)中有可能保留存储于存储器内的数据但不可能执行对数据的读取和写入。另一方面,对于非易失性存储器,即使对非易失性存储器的供电停止了,存储于其内的数据也不会丢失。因此,功耗能够通过停止对非易失性存储器的供电来缩减。同时,为了针对已经切换为自刷新模式的DRAM(作为易失性存储器的一个实例)或者针对已经停止对其供电的非易失性存储器再次执行存储器访问,有必要使存储器复位为正常模式,例如,使DRAM从自刷新模式复位为正常模式或者恢复对非易失性存储器的供电。在此,正常模式表示这样的状态,在该状态下不仅可以保留存储于存储器内的数据而且可以执行对数据的读取和写入。
下文给出的是关于SoC100的解释。在此,SoC100对应于权利要求所提及的“半导体设备”。如图1所示,作为内部模块,SoC100包含:处理器内核101;用于控制主存储器30的存储器控制器102;用于控制显示设备200的显示设备控制器103;用于控制储存设备210的存储控制器104;用于控制网络设备220的网络控制器105;用于控制HID230的HID控制器106;用于在内部模块当中传输数据的总线107;用于生成高频时钟的高频振荡器108;用于生成低频时钟的低频振荡器109;用于将时钟转换成各种频率并且控制是否供应时钟(执行时钟供应的开/关控制)的时钟控制模块110;用于接收来自I/O设备的中断并且将该中断发送给处理器内核101的中断控制器120;作为在SoC100内的存储区的内部存储器125(也称为本地存储器或便笺式存储器(scratch-pad memory));以及具有时钟功能的实时时钟(RTC)130。作为处理器内核101,可以使用包括ARM处理器在内的各种体系结构的处理器。同时,在图1所示的实例中,处理器内核101包含高速缓冲存储器140。在下面的解释中,当显示设备控制器103、存储控制器104、网络控制器105和HID控制器106不需要彼此区分时,它们有时共同简称为“设备控制器”。而且,设备控制器对应于权利要求所提及的“设备控制器”。
如图3所示,SoC100被划分成多个电源域(power-supplydomain),并且SoC100的每个内部模块都属于所述多个电源域中的一个电源域。电力从独立的电源线供应到每个电源域。因而,对于每个电源线,电压值的改变或者电源的开/关控制能够以独立的方式来进行。在图2所示的实例中,在处理器内核101中,与高速缓冲存储器140不同的部分属于与高速缓冲存储器140所属的电源域不同的电源域。因而,对于每个电源线,供电电压的改变或者电源的开/关控制能够以独立的方式来进行。因此,例如,即使对处理器内核101中除了高速缓冲存储器140以外的部分的供电停止了,只要对高速缓冲存储器140的供电继续进行,存储于高速缓冲存储器140内的数据就不会丢失。
如果高速缓冲存储器140使用易失性存储器来配置,则当对高速缓冲存储器140的供电被切断时,高速缓冲存储器140会丢失数据。因此,在切断对高速缓冲存储器140的供电之前,有必要执行清理操作,在该清理操作中,存储于高速缓冲存储器140内的脏数据(dirty data)(即,仅存储于处理器内核101的高速缓冲存储器140内但是没有存储于主存储器30内的数据)被写入主存储器30。而且,如果在处理器内核101处于空闲状态时切断对高速缓冲存储器140的供电,则在处理器内核101返回至运行状态时,有必要执行无效(invalidation)操作,以便使在高速缓冲存储器140内的、由于断电而具有未定义的值的数据无效。但是,如果高速缓冲存储器140使用非易失性存储器来配置,则即使电源被切断,在高速缓冲存储器140内的数据也不会丢失。因此,不需要清理操作和无效操作。
在此,处理器内核101能够运行状态与空闲状态之间切换,其中在运行状态中执行计算机程序(指令),在空闲状态中处理器内核101正在等待来自I/O设备或定时器的作为对事件发生的通知的中断。当处理器内核101由运行状态进入空闲状态时,根据SoC100的控制寄存器(也称为专用寄存器)的设定,如果给处理器内核101供应的时钟停止或者如果电压降低到允许保留寄存器的值的范围之内,则有可能会降低处理器内核101的功耗。当处于空闲状态的处理器内核101接收到中断时,它进入运行状态并且恢复计算机程序的执行。在此,运行状态对应于权利要求所提及的“第一状态”,而空闲状态对应于权利要求所提及的“第二状态”。
图1和3所示的SoC100是具有内置于其内的单个处理器内核101的单核SoC的实例。但是,作为选择,同样可以将SoC100配置为具有多个处理器内核的多核SoC。本发明能够实现于单核SoC内,以及实现于多核SoC内。在以多核SoC来实现本发明的情形中,在处理器内核内的高速缓冲存储器能够具有如以下所解释的各种配置。
(a)其中每个处理器内核包含L1高速缓冲存储器和L2高速缓冲存储器的情形
(b)其中每个处理器内核包含L1高速缓冲存储器,并且L2高速缓冲存储器在多个处理器内核的分组中共享的情形
(c)其中每个处理器内核包含L1高速缓冲存储器,并且L2高速缓冲存储器在全部处理器内核当中共享的情形
本发明能够按照这些多内核配置中的任一种来实现。而且,配置并不限定于以上给出的配置。作为选择,还可以使用更多级别的高速缓冲存储器,例如,L3高速缓冲存储器。
返回参照图1的解释,高频振荡器108是用于生成充当用于生成为SoC100的每个模块所需的各种时钟的源的主时钟的振荡电路。也就是,高频振荡器108生成代表在处理内核101和其他模块的运行状态中使用的时钟的主时钟(在下面的解释中,有时称为“高频时钟”)。例如,高频时钟的频率为24MHz。与低频振荡器109相比,高频振荡器108在生成时钟时消耗较高的功耗。由于该原因,在不需要主时钟的状态(例如,深度睡眠模式)中,停止高频振荡器108能够降低整个信息处理设备1的功耗。
图4示出了开启/停止高频振荡器108的方法。有可能实现通过使用与SoC100连接的使能信号(指示振荡器108是否生成时钟)来设定开/关(活动/非活动)控制的方法,或者有可能实现用于执行从PMIC20对高频振荡器108的供电的开/关控制的方法。
返回参照图1的解释,低频振荡器109是一种振荡电路,该振荡电路用于:生成即使在深度睡眠模式中也执行操作的模块(即,能够激活SoC100的I/O设备)所需的子时钟(在下面的解释中,有时称为“低频时钟”)的;生成中断控制器120所需的子时钟;以及生成RTC130所需的子时钟。由低频振荡器109生成的子时钟具有例如32KHz的频率,该频率低于主时钟的频率。因而,低频振荡器109生成具有低频率和低功耗的时钟。因此,即使低频振荡器109为了生成时钟而永久振荡,功耗也仍然是低的。
在图1所示的实例中,SoC100具有作为内置构件的高频振荡器108和低频振荡器109。在此,内置于SoC100之内的高频振荡器108和低频振荡器109能够使用各种类型的振荡器(例如,晶体振荡器电路、CR振荡电路、硅振荡电路和MEMS振荡电路)来实现。特别地,晶体振荡电路是更常用的。在使用晶体振荡电路的情形中,例如,如图5所示,晶体振荡器131能够外接于SoC100,以便确定振荡器的频率。作为选择,例如,如图6所示,作为将高频振荡器108和低频振荡器109嵌入SoC100内的替代,能够这样地配置:SoC100接收来自外接于SoC100的高频振荡器108和低频振荡器109的时钟信号。在这样的配置中,振荡电路(例如,晶体振荡电路或硅振荡电路)是外部连接的,并且SoC100根据由那些振荡电路生成的时钟来操作。仍然作为选择,例如,如图7所示,能够这样地配置:时钟信号使用选择器132来选择。在这样的配置中,不仅有可能使用由内置于SoC100内的高频振荡器108和低频振荡器109(图1和5)生成的时钟,而且还有可能输入由外接于SoC100高频振荡器108和低频振荡器109生成的时钟,然后使用那些时钟(图6)。因而,有可能根据预期的目的来选择任意方法。
一般地,对于由振荡器从停止状态(即,从在该状态中对振荡器的供电已停止的状态、或者从在该状态中尽管仍对振荡器供电但是使能信号已关闭(非活动的)从而停止振荡的状态)到开始振荡并变为稳定所耗用的启动时间,晶体振荡器耗用几毫秒(ms),而硅振荡器耗用几百微秒(μs)。因而,考虑其中高频振荡器108的开/关控制频繁重复的用法。例如,考虑如下情形:一旦处理器内核101由运行状态进入空闲状态,SoC100就被切换至深度睡眠模式,并且高频振荡器108停止,以便达到省电的目的。在这样的情形中,如果将硅振荡器用作高频振荡器108,则有可能会降低在处理器内核101从空闲状态切换为运行状态的过程中的时间开销(temporal overhead)。因此,期待的是将硅振荡器用作高频振荡器108。
由高频振荡器108或低频振荡器109生成的时钟信号然后在分发到SoC100内的模块之前由SoC100的时钟控制模块110转换成多种不同频率的时钟信号。图8是示出时钟控制模块110的示例性配置的示意图。如图8所示,时钟控制模块110包含锁相环路(PLL)111、频率调节器112和时钟门113。
PLL111将从高频振荡器108输入的时钟信号(主时钟)改变为具有稳定的高频率的时钟信号。在SoC100中,由于需要具有多种不同频率的时钟信号,因而能够布置多个频率调节器112,以使得每个频率调节器112能够进一步倍乘或划分从PLL111供应的时钟信号并且将该时钟信号改变为期望频率的时钟信号。同时,尽管图8所示的时钟控制模块110仅包含单个PLL111,但是这并不是唯一的可能情形。作为选择,例如,如图9所示,时钟控制模块110能够被配置为包含多个PLL111。当时钟控制模块110被配置为包含多个PLL111时,每个PLL111都能够生成不同频率的时钟信号,并且每个时钟选择器114都能够选择合适的时钟信号并将其输入到相应的频率调节器112。时钟门113执行由各个频率调节器112发送给SoC100的内部模块的控制信号的开/关控制。在此,通过设定时钟控制模块110的控制寄存器115(即,通过在控制寄存器115中设定多种控制信息),能够控制下列因素:由频率调节器112用来进行乘法或除法的值;由时钟门113针对时钟信号的输出而执行的开/关控制;以及,在存在多个PLL111时,PLL111(输入PLL111)针对每个频率调节器112而进行的选择。同时,作为选择,时钟控制模块110能够在不使用PLL111的情况下将时钟信号直接输出到内部模块。例如,由低频时钟发生设备生成的时钟能够被直接发送给中断控制器120和RTC130。
在图8和9所示的实例中,当时钟控制模块110的任意时钟门113关闭(停止)时钟信号的输出时,有可能执行称为时钟门控(clockgating)的操作,在该时钟门控中,继该时钟门113之后所连接的内部模块的操作被停止,由此实现功耗的降低。作为选择,时钟门控也能够按照以下方式来执行:作为执行由时钟控制模块110输出的时钟信号的开/关控制的替代,每个内部模块都能够包含用于执行时钟输入的开/关控制的寄存器,并且通过设定寄存器而将时钟输入设定为关闭。
返回参照图1的解释,信息处理设备1包含显示设备200、储存设备210、网络设备220以及人机接口设备(以下,有时称为“HID”)230,作为I/O设备。但是,I/O设备的类型并不限定于这些设备。另外,本发明被实现于其中的SoC同样能够包含具有各种用途的通用串行接口,例如,I2C、SPI、UART、USB和SDIO。而且,SoC还能够包含用于接收来自图像采集设备(例如,相机)的图像数据的输入的接口。实际上,各种类型的设备(例如,储存设备、通信设备、显示设备和图像采集设备)都能够用作I/O设备。
I/O设备经由用于控制有关的I/O设备的设备控制器与SoC100内的计算机系统(例如,处理器内核101)连接。在此,设备控制器执行控制,例如,发出开始/停止相应的I/O设备的操作的指令,以及在相应的设备与主存储器30之间传输数据。常见的情形是:设备控制器为图1所示的SoC100的内部模块。但是,这并不是唯一的可能情形。作为选择,例如,设备控制器的电路(芯片或LSI)能够外接于SoC100。同时,例如,如同无线通信设备的情形那样,除了最小的外部构件(例如,天线)外,I/O设备自身通常内置于SoC100内。在该情形中,I/O设备和相应的设备控制器按照集成的方式来布置,并且整个集成配置有时称为I/O设备。同时,作为用于将SoC100连接至外部设备的通用通信接口的设备控制器(例如,I2C、SPI、USB、SATA和SDIO)有时称为接口。
显示设备200的实例包括液晶显示器、面板自刷新(PSR)兼容的液晶显示器和电泳(electrophoretic)显示器(EPD:电子纸)。但是,这并不是唯一的可能情形。液晶显示器按照以每秒数十次(例如,每秒30次或60次)的频率进行重复的方式执行刷新操作,在该刷新操作中,即使显示内容没有改变,存储于主存储器30内的显示数据或者存储于显示控制器(作为显示设备控制器103的一个实例)中的存储器的帧缓存器(frame buffer)内的显示数据也被发送给液晶显示器。在刷新操作期间,由于数据传输是从帧缓存器到液晶显示器地进行的,因而显示设备控制器103以及用于数据传输的总线107需要连续地被供应时钟,以使得数据传输不被中断。而且,用作帧缓存器的存储器也需要保持于可访问的状态。
PSR兼容的液晶显示器具有用于存储待显示的显示数据的缓存。当显示内容没有改变时,PSR兼容的液晶显示器使用存储于显示器的缓存器内的显示数据在显示器中执行刷新操作。由于该原因,当显示内容没有改变时,SoC100不需要将存储于主存储器30内的或者存储于显示控制器的存储器内的显示数据发送给显示器。因此,与液晶显示器不同,当显示内容没有改变时,可以停止给显示设备控制器103以及用于数据传输的总线107提供的时钟。而且,用作帧缓存器的存储器能够切换为在其中它无法被访问的省电状态。这能够实现功耗的降低。
EPD能够在没有电源的情况下保持显示内容。由于该原因,在显示内容没有改变的时间段内,可以停止对EPD的供电或者停止对EPD控制器(显示设备控制器103的一个实例)的时钟供应。这能够实现功耗的降低。在改变显示内容的情形中,为了将显示内容的数据(主存储器30的帧缓存器的数据)传输给EPD控制器或者为了基于显示内容的数据来生成用于重写EPD的信号,自然有必要给EPD或EPD控制器供电或供应时钟。此外,显示内容的数据存储于其内的主存储器30需要被切换为可访问的状态。
为了存储数据和计算机程序,储存设备210被用作信息处理设备1的二级存储。储存设备210的实例包括:各种存储卡,例如,NAND闪存(芯片)、NOR闪存(芯片)和SD卡;硬盘、SSD和DVD-RAM。但是,储存设备210并不限定于这些设备,并且能够以任意方式来配置。储存设备210经由存储控制器104与SoC100的计算机系统连接。例如,当SD卡被用作储存设备210时,与储存设备210连接的存储控制器104是SD控制器或SDIO控制器。作为选择,当SATA接口的HDD或SSD被用作储存设备210时,与储存设备210连接的存储控制器104是SATA控制器。仍然作为选择,当NAND闪存的芯片被用作储存设备210时,与储存设备210连接的存储控制器104是NAND控制器。仍然作为选择,当具有SPI接口的NOR闪存(芯片)被用作储存设备210时,与储存设备210连接的存储控制器104是SPI控制器。
存储控制器104接收来自应用程序或操作系统(OS)的指令,并且执行诸如针对储存设备210的数据读取和写入之类的操作。在从储存设备210中读取数据的情形中,存储控制器104指示储存设备210读出数据并将其发送回来。然后,已经被发送回来的数据由DMA控制器存储于主存储器30中的应用程序提供的缓存区内或者存储于由OS作为页面高速缓存(也称为高速缓冲缓存(buffer cache)或磁盘高速缓存)来管理的主存储器30中的区域内,该DMA控制器与存储控制器104分离地布置于SoC100内。在应用程序将数据由高速缓冲缓存写入储存设备210之内的情形中,或者在页面高速缓存内的已改变数据(脏数据)由OS周期性地写回到储存设备210之内的情形中,存储控制器104将已经由DMA控制器读出的数据发送给储存设备210以进行写入。然后,存储控制器104通过经由中断控制器120发出中断来通知处理器内核101数据的写入或读出已完成。在存储控制器104正在执行数据的读出或写入的同时,需要给存储控制器104供电以及供应时钟。此外,还需要对储存设备210供电。而且,主存储器30需要切换为可访问的状态。
对于网络设备(通信设备)220,可以使用用于实现各种通信方法的设备。例如,可以使用有线LAN设备,例如,以太网(Ethernet(注册商标));具有传输标准802.11a/802.11b/802.11g/802.11n/802.11ac的无线LAN设备;或者用于近场传输的设备,例如,蓝牙(Bluetooth)、ZigBee(注册商标)和TransferJet。
在SoC100的外部网络设备220与内置于SoC100内的网络控制器105之间,功能的共享具有不同的变型。例如,在使用以太网的情形中,许多必要的通信功能实现于内置于SoC100中的网络控制器(以太网控制器)105内。作为SoC100的外部网络设备220,通常连接物理层(PHY)的驱动器IC(芯片)。在使用无线LAN或ZigBee的情形中,具有诸如SPI、SDIO、USB或UART之类的接口的通信模块通常用作网络设备220。在该情形中,许多必要的通信功能实现于用作网络设备220的通信模块内。作为网络控制器105,使用的是SPI控制器、SDIO控制器、USB控制器或UART控制器。
网络控制器105控制网络设备220,并且发送和接收数据。在给网络发送数据时,内置于网络控制器105内的DMA控制器或者网络控制器105的外部DMA控制器读取待从主存储器30发送的数据;网络控制器105将所读取的数据传输给网络设备220;并且网络设备220还将所接收的数据发送给网络。在接收来自网络的数据时,网络设备220将所接收的数据传输给网络控制器105;并且内置于网络控制器105内的DMA控制器或者网络控制器105的外部DMA控制器将所接收的数据存储于主存储器30内。然后,网络控制器105经由中断控制器120发出中断,并且通知处理器内核101发送或接收数据已完成。
在诸如具有SDIO接口的无线LAN通信模块之类的I/O设备中,下列构件内置于通信模块内:无线(RF)电路或控制处理器;存储器;SDIO控制器;用于使构件互连的总线;以及时钟振荡器。在将这样的通信模块用作网络设备220的情形中,不管与通信模块连接的网络控制器(SDIO控制器)105是否已停止,只要给通信模块供电,都可以将数据从无线LAN通信模块内的存储器发送到网络,并且将来自网络的数据接收到无线LAN通信模块中的存储器之内。当在无线LAN通信模块与SoC100之间发送和接收数据时,充当网络控制器105的SDIO控制器必须处于工作中。
HID230是由用户用来执行输入的设备(例如,键盘、触摸屏和鼠标)的通用术语。在将具有USB接口的键盘或鼠标用作HID230的情形中,与HID230连接的设备控制器(HID控制器106)是USB控制器。在使用具有USB接口的键盘的情形中,与所按下的键对应的代码(键码)从键盘经由USB总线发送给SoC100。在此,例如,SoC100具有按矩阵形状的方式布置的按键开关(即,键区(key pad))能够直接连接的键区控制器。当所连接的按键开关中的任一个被按下时,键区控制器经由中断控制器120给处理器内核101发出中断。在接收到中断时,处理器内核101从键区控制器中读出用于使所按下的按键开关能够被识别的信息;将信息转换成与该按键开关对应的键码,若必要的话;并且将所按下的按键开关通知给OS或应用。
在具有I2C接口的触敏面板被用作HID230的情形中,I2C控制器被用作HID控制器106。在被触摸时,触敏面板经由I2C接口将坐标数据发送给SoC100。处理器内核101通过中断来通知坐标数据。然后,处理器内核101校正坐标数据(即,执行噪声消除或坐标变换),若必要的话;并且然后将坐标数据通知给OS或应用。如果SoC100具有内置于其内的模拟-数字(A/D)转换器,则触敏面板有时经由A/D转换器来连接。在该情形中,SoC100的处理器内核101在适当的时间操作A/D转换器,并检测坐标数据;校正坐标数据,若必要的话;并且将坐标数据通知给OS或应用。
同时,作为将HID230直接连接至SoC100的替代,还可以经由例如图10所示的微计算机300来连接HID230。在此,微计算机是具有集成于单个半导体芯片内的计算机系统的LSI产品。尽管微计算机300在性能方面低于SoC100的处理器内核101,但是它具有低功耗。因此,在I/O设备的I/O操作期间,能够将需要频繁执行但在短时间内完成的操作分派给(转存给)微计算机300。于是,有可能会降低整个信息处理设备1的功耗。例如,在键区(按键开关的矩阵)被用作HID230并且经由微计算机300被连接到SoC100的情形中,能够将诸如颤振防止、重复处理以及键码转换之类的操作转存给微计算机300。在使用触敏面板的情形中,基于由内置于微计算机300内的A/D转换器输入的数据,能够将诸如坐标变换、噪声消除和拖拽之类的操作转存给微计算机300。另外,常见的情形是微计算机300配备有按照SoC100在触敏面板或键盘被按下时被供电以能够恢复操作的方式来控制HID230以及管理电源的功能。此外,同样常见的情形是:不仅是HID230,还有各种传感设备也都连接至微计算机300,并且针对由传感设备输入的数据进行的噪声消除的计算被转存给微计算机300。同时,微计算机300和SoC100通过串行总线(例如,I2C或SPI)、通过GPIO或者通过SoC100的外部存储器总线来相互连接;并且经由这样的连接执行彼此间的数据通信。
图10是示出微计算机300的配置实例的示意图。如图10所示,微计算机300具有下列内置于其内的构件:处理器内核301;存储器302;总线303;振荡器304;串行总线控制器305(例如,在与SoC100间传输数据时使用的I2C或SPI、或者UART);以及中断控制器306。而且,尽管在图10中没有示出,但是微计算机300有时还具有内置于其内的I/O设备(例如,GPIO、A/D转换器、D/A转换器以及PWM电路)。而且,微计算机300具有内置于其内的振荡器。因此,即使SoC100处于低功耗状态,或者甚至高频振荡器108停止或者主存储器30切换至省电模式从而使其变为不可访问,微计算机300仍然可以执行操作。为了经由串行总线执行与SoC100间的数据通信,微计算机300的串行总线控制器305需要切换为可操作的状态。当接收到来自HID230的中断请求时,中断控制器306在被包含于其内的寄存器(未示出)中登记中断向量,该中断向量使得中断的类型能够识别,并且将中断信号发送给处理器内核301(即,将中断通知给处理器内核301)。在接收到中断信号时,处理器内核301能够引用登记于中断控制器306的寄存器内的中断向量,并从而能够识别出中断的原因。
返回参照图1的解释,中断控制器120接收来自设备控制器或I/O设备的中断请求;将中断向量登记于被包含于其内的寄存器,该中断向量使得中断的类型能够被识别;并且将中断信号发送给处理器内核(即,将中断通知给处理器内核101)。在接收到中断信号时,处理器内核101引用登记于中断控制器120的寄存器内的中断向量并且识别出中断的原因;清除登记于中断控制器120的寄存器内的中断向量;并且执行与所识别的中断原因对应的中断处理程序(interrupt handler)。在接收到中断信号时,处理器内核101能够处于计算机程序被执行的运行状态中,或者处于等待中断的空闲状态中。如果在运行状态下接收到中断信号,则处理器内核101中止正在执行的计算机程序的执行,并执行中断处理程序。另一方面,如果在空闲状态下接收到中断信号,则处理器内核101进入运行状态,并然后执行中断处理程序。即使SoC100处于深度睡眠模式,中断控制器120保持基于对由低频振荡器109生成的子时钟的操作。因而,当中断由激活允许式(activation-enabled)设备接收到时(即,设备能够将SoC100从深度睡眠模式中激活过来),低频振荡器109能够将处理器内核101切换为运行状态,并且将中断信号通知给它。
同时,在SoC100中的各种控制器经由总线107连接至处理器内核101,该总线107可以是各种类型的。例如,当处理器内核101为ARM类型时,AMBA AXI总线被广泛使用。在此,为了增强整个SoC100的数据传输能力,还可以结合多种类型的总线。而且,存储器控制器102和内部存储器125能够通过专用总线来连接,以使得处理器内核101能够对它们进行高速访问。
就SoC100的内部存储器125而言,可以使用高速的SRAM。一般地,主存储器30同样能够高速访问内部存储器125。内部存储器125也称为便笺式存储器。与除非存储器控制器102的初始化已完成否则无法被访问的主存储器30不同,内部存储器125能够在启动(boot)之后立即访问。因此,内部存储器125也能够用于启动过程。而且,内部存储器125还包含如下代码,该代码用于:执行从运行(RUN)模式(即,在处理器内核101处于运行状态时的信息处理设备1的SoC100的状态)到深度睡眠模式的切换操作,或者执行在主存储器30切换至自刷新模式之后从深度睡眠模式返回至运行模式的返回操作。因此,内部存储器125还能够完全或部分地使用于用来执行切换操作和返回操作的代码。
至此,已经给出了关于信息处理设备1的硬件配置的解释。虽然信息处理设备1正在使用,但是用于构成信息处理设备1的各种I/O设备以及在SoC100内的模块并非总是执行有效的操作。而且,由于等待经由HID230进行的用户输入或者等待数据到达通信设备(网络设备220),或者由于等待由定时器设定的目标时间,因而存在着处理器内核101不执行计算机程序而处于空闲状态的很长一段时间。因此,如果在空闲状态期间小心地且主动地停止设备或模块,则可以降低整个信息处理设备1的功耗。
但是,与处理器内核101的空闲状态无关,总是存在着执行输入-输出操作的I/O设备,并且存在着不执行操作的I/O设备。也就是,每个I/O设备都处于不同的状态。在处理器内核101进入空闲状态并等待中断时,有必要在不中断信息处理设备1的正常操作的情况下通过执行下列任务来实现适当的功率节省:确定是否每个I/O设备都在执行操作,从而确定是否将SoC100切换为等待模式或深度睡眠模式,决定是继续进行时钟供给还是停止时钟供给,并且决定是否将主存储器30切换至省电模式。根据本发明的功耗降低方法使得有可能执行这些任务。在此,等待模式能够被认为是这样的状态(整个信息处理设备1的状态或者SoC100的状态),在该状态中,与处理器内核101的运行状态相比功耗较低,并且该状态与权利要求所提及的“第三状态”对应。深度睡眠模式能够被认为是这样的状态,在该状态中与等待模式相比功耗较低,并且该状态与权利要求所提及的“第四状态”对应。
当由SoC100的处理器内核101执行的操作系统(OS)控制信息处理设备1内的各种I/O设备的以及SoC100内的各种模块的操作状态时,根据本发明的功耗降低方法被实现。操作系统是存储于二级存储设备(例如,NAND闪存或SD卡)内的计算机程序。在信息处理设备1被供电之后,操作系统的内核(即,操作系统的核心部分)立即被读入到主存储器30内并且由处理器内核101执行。同样常见的情形是:操作系统的某些功能没有被读入到主存储器30内,而是在被执行之前被读入到SoC100的内部存储器125内。例如,考虑这样的情形:为了释放处理器内核101的空闲状态而发出中断。在该情形中,如果在开始时待由处理器内核101执行的计算机程序存储于在空闲状态下已经切换为省电模式的主存储器30内,则处理器内核101无法迅速地执行有关的计算机程序。就这点而言,用于将主存储器30从省电模式切换为正常模式的计算机程序存储于内部存储器125内,在从空闲状态返回时该内部存储器125可迅速由处理器内核101访问。因而,首先,处理器内核101执行该计算机程序,然后执行存储于主存储器30内的计算机程序。
在信息处理设备1中,可以安装各种操作系统(OS),例如,Linux(注册商标)、Android、Windows、iOS和iTron。图11是示出安装于根据第一实施例的信息处理设备1内的OS的示例性功能配置的框图。在此,作为主要功能,安装于信息处理设备1内的OS包含进程管理器410、设备管理器420、文件管理器430和存储器管理器440。
进程管理器410以被称为进程(或者计算机程序的可执行单元,例如,任务或线程)的单元来管理由处理器内核101执行的应用程序。用于实现能够由信息处理设备1提供的各种功能的每个应用程序通过一个或多个进程来执行。进程管理器410通过在待由处理器内核101执行的多个进程之间及时地切换(调度)来执行多重处理。这种在进程之间切换(也称为上下文切换)的功能被称为进程切换器(或调度器)411。当进程对OS发出输入-输出(I/O)请求并等待结果时,或者当通过定时器检测到处理器内核101已经执行该进程达特定时长时,或者当具有高优先级的进程由于I/O设备的中断操作而变为可执行时,进程之间的切换被执行。因此,进程管理器410也执行中断管理。
在第一实施例中,当处理器内核101切换至空闲状态时,如果在至少一个I/O设备与主存储器30之间正在执行数据传输操作,则进程切换器411执行控制以将信息处理设备1(SoC100)切换为等待模式。但是,当处理器内核101进入空闲状态时,如果在任意I/O设备与主存储器30之间没有正在执行数据传输操作,则进程切换器411执行控制以将信息处理设备1(SoC100)切换为深度睡眠模式。关于此类控制的细节将在后面给出。在此,进程切换器411能够被认为是对应于权利要求所提及的“状态控制器”。
如图11所示,进程切换器411包含设备状态确定器412。在处理器内核101停止当前正在执行的进程并且试图切换(调度)至另一个进程,但是由于在该时间点缺少可执行的进程而自行切换至空闲状态的情形中,设备状态确定器412基于由设备状态管理器421(在后面描述)管理的设备状态管理信息来确定是否将SoC100(信息处理设备1)切换为等待模式或深度睡眠模式。
图11所示的设备管理器420管理各种设备,例如,各种I/O设备和定时器。对于各种类型的设备,设备管理器420包含称为设备驱动器的软件模块。当从应用程序或OS针对设备发出输入-输出操作请求(I/O请求)时,设备管理器420指示与相关设备对应的设备驱动器执行输入-输出操作。此外,设备管理器420还执行允许经由网络进行的通信所需的协议处理。
设备管理器420包含用于基于接收自每个设备驱动器的通知来管理设备状态管理信息的设备状态管理器421。设备状态管理信息至少保持进行以下判定所需的信息:因为一个或多个设备正在执行输入-输出操作或者正在等待输入事件,SoC100不应切换为深度睡眠模式。图12是示出由设备状态管理器421管理的设备状态管理信息的实例的示意图。根据第一实施例,设备状态管理信息采用表格的形式,在该表格中,用于识别I/O设备的类型的设备标识符按照指示I/O设备的状态的状态信息对应的方式来保存(在图12中,状态信息“执行中”指示I/O设备正在执行输入-输出操作,而状态信息“停止”指示I/O设备没有正在执行任何操作)。
每个设备驱动器都通知设备状态管理器421:相应的I/O设备正在执行输入-输出操作或者正在等待输入事件(即,SoC100不应切换为深度睡眠模式)。结果,可以防止这样的情况:SoC100被切换至深度睡眠模式,以使得无法进行输入-输出操作或者无法等待输入事件。在第一实施例中,当I/O设备正在执行输入-输出操作或者正在等待输入事件时,相应的设备驱动器操作I/O设备,并且登记输入-输出操作的起始和结束,或者将等待输入事件的起始和结束直接登记于设备状态管理信息中;并且将状态通知给设备状态管理器421。
图11所示的文件管理器430以被称为文件的单位来管理数据,该数据存储于由设备管理器420管理的第二存储设备(例如,NAND闪存、SD卡、SSD或HDD)的存储区内。图11所示的存储器管理器440将主存储器30的空间划分成小的区域,并且以高效利用信息处理设备1的主存储器30为目标来管理那些区域;以及响应于来自OS或单个计算机程序的请求而分配/释放主存储器30内的区域。而且,存储器管理器440也管理虚拟存储器。
下文给出的是关于由在其中实现根据本发明的功耗降低方法的操作系统(OS)及信息处理设备1执行的操作的详细解释。
首先,以下参照图13来解释的是由根据第一实施例的设备驱动器执行的操作的实例。图13是用于解释由根据第一实施例的设备驱动器执行的操作的实例的流程图。如图13所示,当从OS或应用程序接收到输入-输出请求(步骤S1)时,设备驱动器从包含于设备状态管理信息内的状态信息片段当中将“执行中”设定为与用于识别相应的I/O设备的设备标识符对应的状态信息(步骤S2)。然后,设备驱动器执行操作以激活为执行所请求的输入-输出操作所需的硬件配置(步骤S3)。随后,设备驱动器执行为执行所请求的输入-输出操作所需的操作(例如,管理在使用DMA的数据传输中使用的存储器内的缓存区)(步骤S4)。然后,设备驱动器等待所激活的输入-输出操作完成(通过用于指示完成状态通过轮询(polling)被检测到的中断或图表的方式将完成状态通知给设备驱动器)(步骤S5);并且执行操作以停止硬件功能,若必要的话(步骤S6)。随后,在设备驱动器管理信息中,设备驱动器将“停止”设定为与用于识别相应的I/O设备的设备标识符对应的状态信息(步骤S7),并且将输入-输出操作的结果发送回到输入-输出请求源(步骤S8)。
因而,在第一实施例中,设备状态管理器421管理表格形式的设备状态管理信息,并且每个设备驱动器将状态信息直接写入表格内。但是,这并不是唯一的可能情形。作为选择,例如,设备状态管理器421能够提供用于登记状态信息的函数,并且每个设备驱动器能够调用该函数并以间接的方式更新表格。
在使用诸如NAND闪存或SD卡之类的储存设备的情形中,或者在使用利用串行接口(例如,I2C或SPI)来通信的I/O设备的情形中,设备驱动器的操作按照图13所示的顺序来执行。但是,在使用诸如无线LAN之类的网络设备的情形中,如果I/O设备的操作响应于每个输入-输出请求而开始/停止,如图13所示,则会导致开销增大。因此,在较短的一段时间内多次发出输入-输出请求的情形中,即使在响应于单个输入-输出请求的操作完成之后,硬件功能也不停止,并且在设备状态管理信息中的相应的状态信息被设定为“执行中”。如果没有发出输入-输出请求的状态继续下去,则能够停止硬件的功能,并且能够将在设备状态管理信息中的相应的状态信息改为“停止”。
在使用诸如键区(键盘)之类的激活允许式设备的情形中,即使是在SoC100的深度睡眠模式中也能够监测输入,并且SoC100能够响应于输入而激活。因此,激活允许式设备不需要通过设备状态管理器421来管理。
一般地,OS在使用进程切换器411来切换多个进程的同时执行操作。由OS管理的进程能够宽泛地采取两种状态,即,可执行状态与事件等待状态。而且,进程根据它们的优先级以队列(进程队列)来管理。处理器内核101执行基于其优先级从处于可执行状态的进程当中选出的进程。当进程对I/O设备发出输入-输出请求并等待请求处理的完成时,或者当进程在等待来自另一进程的通信数据到达时,该进程切换至事件等待状态。对于进程切换器411切换正由处理器内核101执行的进程的情形,可以考虑下列三种情形。在第一情形中,正在被执行的进程发出输入-输出请求,并且切换至事件等待状态,直到请求处理完成。在第二情形中,从I/O设备接收到关于输入-输出的完成的中断,并且处于事件等待状态的相应进程切换为可执行状态,并且具有比正在执行的进程高的优先级。在第三情形中,中断由定时器发出,该定时器由OS设定以按固定的时间间隔发出中断,从而使得没有特定的进程长时间占用处理器内核101。在这些情形的每种情形中,当对OS发出输入-输出请求并且模式为内核模式时,或者当接收到中断信号并且中断处理程序在内核模式中正在运行时,操作在OS的内核中执行。
下面参照图14来解释的是由根据第一实施例的进程切换器411执行的操作的实例。图14是用于解释由进程切换器411执行的操作的实例的流程图。当响应于以上所提及的三种情形中的任一种情形的出现而在进程之间进行切换时,首先,进程切换器411停止正在执行的进程(并且存储执行状态,以使得执行能够在以后恢复),并且将该进程插入进程队列中。此后,图14所示的操作开始。如图14所示,首先,进程切换器411参考进程队列并且检查处于可执行状态的进程是否存在于进程队列中(步骤S11)。如果处于可执行状态的进程存在于进程队列中(步骤S11的“是”),则进程切换器411从进程队列中的处于可执行状态的进程当中选择具有最高优先级的进程,并且恢复所选进程的执行(步骤S12)。但是,如果在进程队列中不存在处于可执行状态的进程(步骤S11的“否”),则进程切换器411的设备状态确定器412参考设备状态管理信息,并且确定SoC100在处理器内核101进入空闲状态时是否能够切换为深度睡眠模式(步骤S13)。在第一实施例中,如果在设备状态管理信息中指定的一个或多个设备标识符具有被设定为“执行中”的相应的状态信息,则设备状态确定器412确定SoC100不应切换为深度睡眠模式。
如果确定SoC100不应切换为深度睡眠模式(步骤S13的“否”),则设备状态确定器412设定SoC100的控制寄存器以将SoC100切换为等待模式,该控制寄存器在等待中断(WFI)命令被发出并且处理器内核101进入空闲状态时执行关于是否将SoC100切换为等待模式或深度睡眠模式的设定,以便等待中断(步骤S14)。例如,在控制寄存器中,进程切换器411能够写入用于指定等待模式的信息。实际上,在处理器内核101进入空闲状态(中断等待状态)时,如果在至少一个I/O设备与主存储器30之间正在执行数据传输操作(包括数据传输的预处理),则可以认为进程切换器411执行控制以将SoC100切换为等待模式(第三状态),在该等待模式中,与处理器内核101的运行状态(命令执行状态)相比功耗较低。
继在步骤S14处所执行的操作之后,进程切换器411发出WFI命令并且将处理器内核101切换为空闲状态以便等待中断(步骤S15)。当处理器内核101由于来自I/O设备的中断信号而从空闲状态切换为运行状态时,仅在中断处理程序执行了中断处理之后,进程切换器411才重复从步骤S11开始的操作。
同时,在步骤S13,如果确定SoC100能够切换为深度睡眠模式(步骤S13的“是”),则进程切换器411将处理器内核101设定为中断禁用(步骤S16),并然后设定SoC100的控制寄存器以将SoC100切换为深度睡眠模式,该控制寄存器在等待中断(WFI)命令被发出并且处理器内核101进入空闲状态时执行关于是否将SoC100切换为等待模式或深度睡眠模式的设定(步骤S17)。例如,在控制寄存器中,进程切换器411能够写入用于指定深度睡眠模式的信息。实际上,当处理器内核101进入空闲状态时,如果在任意一个I/O设备与主存储器30之间没有正在执行数据传输操作,则可以认为进程切换器411执行控制以将SoC100切换为其中功耗低于等待模式的深度睡眠模式(第四状态)。
继在步骤S17执行的操作之后,进程切换器411设定时钟控制模块110的控制寄存器以停止处于深度睡眠模式的高频振荡器108和PLL111的操作(步骤S18)。也就是,在深度睡眠模式中,可以认为进程切换器411执行控制以停止高频振荡器108的振荡,该高频振荡器108生成在处理器内核101的运行状态中使用的高频时钟(主时钟)。但是,这并不是唯一的可能情形。作为选择,继在步骤S17执行的操作之后,进程切换器411能够设定PMIC20的控制寄存器以停止由PMIC20对处于深度睡眠模式的高频振荡器108的供电。也就是,在深度睡眠模式中,进程切换器411能够执行控制以停止对高频振荡器108的供电,该高频振荡器108生成在处理器内核101的运行状态中使用的高频时钟(主时钟)。
同时,对于在步骤S18设定的控制寄存器的设定值,根据SoC,常见的情形是在开始时设定过一次的设定值保持为有效,直到设定再次改变。因此,在这样的情形中,如果设定值在OS的初始化期间被设定,则能够跳过步骤S18的操作。
继在步骤S18执行的操作之后,作为停止对处于深度睡眠模式的高速缓冲存储器140的供电的准备,进程切换器411停止处理器内核101的高速缓冲存储器140的操作(步骤S19);将此类存储于高速缓冲存储器140内的其脏标记被设定为有效电平的数据(即,由处理器内核101仅写入高速缓冲存储器140内而未写入主存储器30内的数据)转存于主存储器30;并且设定PMIC20的控制寄存器以停止由PMIC20对处于深度睡眠模式的高速缓冲存储器140的供电。也就是,在切换为深度睡眠模式时,可以认为进程切换器411将此类存储于高速缓冲存储器140内的未写入主存储器30内(即,写入脏数据)的数据写入主存储器30内,并且然后执行控制以停止对高速缓冲存储器140的供电。同时,作为选择,能够这样地配置:即使在深度睡眠模式中,对高速缓冲存储器140的供电也不停止以便确保数据不被擦除。在该情形中,能够跳过在步骤S19的操作。相反,进程切换器411能够按以下方式来设定PMIC20的控制寄存器:在深度睡眠模式中,给高速缓冲存储器140供给的电源电压的值等于在处理器内核101的运行状态中供给的电源电压的值(或者大于在深度睡眠模式中供给的值)。也就是,在第四状态中,进程切换器411能够执行控制以将给高速缓冲存储器140供应的电源电压设定为与在处理器内核101的运行状态中供给的电源电压的值相同的值。
随后,进程切换器411将主存储器30切换为省电模式(步骤S20)。当将DRAM(例如,LPDDR2)用作主存储器30时,存储器控制器102的控制寄存器被设定并且控制命令由存储器控制器102发送给DRAM,以使得DRAM切换为自刷新模式。也就是,如果将易失性存储器用作主存储器30,则可以认为:在深度睡眠模式中,进程切换器411执行控制以将主存储器30切换为自刷新状态。但是,如果将非易失性存储器用作主存储器30,则进程切换器411能够按照使得由PMIC20对主存储器30的供电停止的方式来设定PMIC20的控制寄存器。因而,如果将非易失性存储器用作主存储器30,则可以认为:在深度睡眠模式中,进程切换器411停止对主存储器30的供电。
然后,进程切换器411发出WFI命令并且处理器内核101进入空闲状态以便等待中断(步骤S21)。随后,当处理器内核101由于来自I/O设备的中断信号而从空闲状态进入运行状态时,首先,执行无效操作,在该无效操作中针对在高速缓冲存储器140内的所有高速缓存行来设定用于指示数据的无效性的无效标记,并且高速缓冲存储器140被初始化并被执行(步骤S22)。然后,主存储器30由省电模式切换为正常操作模式(步骤S23)。如果DRAM被用作主存储器30,则存储器控制器102的控制寄存器被设定并且控制命令由存储器控制器102发送给DRAM,以使得DRAM从自刷新模式中释放出并切换为正常模式。另一方面,如果将非易失性存储器用作主存储器30,则PMIC20的控制寄存器按照对由PMIC20对主存储器30的供电进行恢复的方式来设定。随后,处理器内核101被设定为中断允许的(步骤S24)。在中断处理程序执行了中断处理之后,进程切换器411才重复从步骤S11开始的操作。
同时,在进程切换器411的计算机程序当中,与在主存储器30的省电模式中应当执行的操作对应的计算机程序需要装载于SoC100的内部存储器125中或者装载于没有切换为省电模式的第二主存储器中,该内部存储器125即使在主存储器30的省电模式中也可访问。即使在图14所示的步骤S13的确定结果不是肯定的(步骤S13的“否”)并且SoC100切换为等待模式的情形中,可以按照与将SoC100切换为深度睡眠模式的情形相同的方式来停止高速缓冲存储器140,或者如果用于访问主存储器30的I/O设备没有在操作中,则可以将主存储器30切换为省电模式。
如上所述,在处理器内核101响应于WFI命令的发出而进入空闲状态时,SoC100按照图15所示的顺序来执行操作以切换为等待模式或深度睡眠模式。首先,时钟控制模块110停止处理器内核101的时钟(即,执行时钟门控)(步骤S31)。然后,时钟控制模块110参考时钟控制模块110的控制寄存器并且确定是否将SoC100切换为等待模式或深度睡眠模式(步骤S32)。在本例中,在时钟控制模块110的控制寄存器中设定是否将SoC100切换为等待模式或深度睡眠模式。而且,在深度睡眠模式中的高频振荡器108的状态以及PLL111的状态同样被设定于时钟控制模块110的控制寄存器中。但是,这并不是唯一的可能情形。实际上,只要配置包含用于控制在SoC100切换为等待模式或深度睡眠模式时的时钟的时钟控制器,该配置就适用。在本例中,针对时钟控制模块110起着时钟控制器的作用的情形给出了解释。但是,这并不是唯一的可能情形。
在步骤S32,如果确定将SoC100切换为深度睡眠模式(步骤S32的“是”),则时钟控制模块110检查它的控制寄存器是否被设定为停止在深度睡眠模式中的高频振荡器108和PLL111(步骤S33)。如果控制寄存器被设定为停止那些构件(步骤S33的“是”),则时钟控制模块110停止高频振荡器108和PLL111(步骤S34)。随后,时钟控制模块110将输出信号设定为高电平(或使能)(步骤S35),该输出信号被用来向外部通知:SoC100已经切换为深度睡眠模式。这标记着为了将SoC100切换为深度睡眠模式而执行的操作的结束。同时,如果确定不将SoC100切换为深度睡眠模式(步骤S32的“否”),则在该时间点,它标记着为了将SoC100切换为等待模式而执行的操作的结束。
如图16所示,SoC100给PMIC20供应用于指示SoC100是否处于深度睡眠模式模式中的STBY信号(例如,如果SoC100处于深度睡眠模式,则STBY信号被设定为高电平(HIGH))。当SoC100和PMIC20相互合作以执行操作时,可以控制电源。例如,对于内置于其内的DC/DC转换器,PMIC20设定将要在STBY信号被设定为高电平时输出的电压,并且设定将要在STBY信号被设定为低电平(LOW)时输出的电压。
在STBY信号由于SoC100的深度睡眠模式而处于高电平时,如果由PMIC20供应给处理器内核101的电压被设定为“0”,则可以在深度睡眠模式中停止电源。用于对不是激活允许的设备供电以及对SoC100内的非易失性的主存储器供电的DC/DC转换器根据该设定来供应电压。结果,可以降低在深度睡眠模式中的功耗。而且,在STBY信号由于SoC100的深度睡眠模式而处于高电平时,如果由PMIC20供应给处理器内核101的电压被设定为用于使电路中的寄存器内的值能够被保留的最小电压,则可以在保留电路的状态的同时降低功耗。当用于给处理器内核101供电的DC/DC转换器根据该设定来供应电压时,则可以在保留该状态的同时降低在深度睡眠模式中的功耗。实际上,在深度睡眠模式中,只要给处理器内核101供应的电源电压被设定为比在处理器内核101的运行状态中供给的电源电压低的值(例如,比在等待模式中的值低的值),则该电源电压就适用。从另一个角度来看,如上所述,当处理器内核101进入空闲状态时,如果在任意I/O设备与主存储器30之间没有正在执行数据传输操作,则可以认为进程切换器411执行用于设定SoC100的控制寄存器以使其切换为深度睡眠模式的控制,并且执行用于降低给处理器内核101供应的电压的控制。当STBY信号被设定为高电平时,如果存储于高速缓冲存储器140内的脏数据将要在SoC100切换为深度睡眠模式之前被写入主存储器30内,则用于给高速缓冲存储器140供电的DC/DC转换器的电压被设定为“0”,或者如果数据将会被保留且即使是在深度睡眠模式中也不会丢失,则该电压被设定为用于使数据能够被保留的最小电压。
以下参照图17来解释的是响应于处理器内核101由于中断信号而从空闲状态返回运行状态的情形而在SoC100中执行的操作的实例。在本例中,解释针对其中时钟控制模块110起着用于管理SoC100的状态的状态管理器的作用的实例来给出。但是,这并不是唯一的可能情形。作为选择,例如,有可能具有其中状态管理器与时钟控制模块110分开布置的配置。
如图17所示,首先,在正等待中断事件的SoC100中,当中断控制器120检测到来自I/O设备或定时器的中断信号(步骤S41)时,时钟控制模块110参考控制寄存器并且检查SoC100是处于深度睡眠模式中还是处于等待模式中(步骤S42)。如果SoC100处于深度睡眠模式中(步骤S42的“是”),则时钟控制模块110将STBY信号设定为低电平(步骤S43)。因此,PMIC20使DC/DC转换器的输出电压的值从低于正常的值复位为正常值。
随后,时钟控制模块110检查控制寄存器是否已经被设定为停止处于深度睡眠模式中的高频振荡器108和PLL111的操作(步骤S44)。如果控制寄存器已经被设定为停止处于深度睡眠模式中的高频振荡器108和PLL111的操作(步骤S44的“是”),则时钟控制模块110恢复高频振荡器108和PLL111的操作(步骤S45)。然后,不管SoC100是处于深度睡眠模式中还是处于等待模式,时钟控制模块110都恢复对处理器内核101的时钟供给(步骤S46),并且处理器内核101由空闲状态进入运行状态(步骤S47)。在进入运行状态时,处理器内核101恢复操作。如果SoC100在处理器内核101处于空闲状态的时段内处于等待模式中,则中断处理程序立即开始执行中断处理。另一方面,如果SoC100在处理器内核101处于空闲状态的时段内处于深度睡眠模式,则存储于内部存储器125中的计算机程序初始化高速缓冲存储器140并恢复主存储器30的操作,并且然后SoC100变为中断允许。直到那时,中断处理程序才开始执行中断处理。
如上所述,在第一实施例中,当处理器内核101进入空闲状态时,如果在至少一个I/O设备与主存储器30之间正在执行数据传输操作,则信息处理设备1切换为等待模式。但是,如果在任意I/O设备与主存储器30之间没有正在执行数据传输操作,则信息处理设备1切换为深度睡眠模式。结果,可以防止为了切换为深度睡眠模式而执行的挂起操作的开销。因此,能够在不损害信息处理设备1的性能的情况下以适当的方式来实现省电。
第二实施例
在第二实施例中,时钟控制模块110的控制寄存器115被用作设备状态管理信息。如图8所示,通过控制时钟门113,时钟控制模块110能够执行对给后续连接的设备控制器的时钟供给的开/关控制。因此,通过参考时钟控制模块110的控制寄存器115,可以确定是否给每个设备控制器供应时钟。也就是,能够确定与每个设备控制器对应的I/O设备是否正在执行操作。
在此,用于使时钟供给的开/关确定能够进行且被设定于时钟控制模块110的控制寄存器115内的信息被用作设备状态管理信息。在这种情况下,时钟控制模块110起到了设备状态管理器421的作用。参照图13,在步骤S2,在由I/O设备执行的操作开始之前,每个设备驱动器都设定控制寄存器以确保来自时钟控制模块110的时钟供给。然后,在步骤S7,在由I/O设备执行的操作结束之后,每个设备驱动器都设定控制寄存器,以确保停止时钟控制模块110的时钟供给。在这样的配置下,通过参考时钟控制模块110的控制寄存器115,可以确定I/O设备是否正在执行操作。如果设备状态确定器412参考时钟控制模块110的控制寄存器115,并且如果控制寄存器115被设定为供给时钟,则可以确定I/O设备为“执行中”。另一方面,如果控制寄存器被设定为停止时钟供给,则可以确定I/O设备为“停止”。
第三实施例
在第三实施例中,设备控制器或设备的状态寄存器被用作设备状态管理信息。某些设备控制器或设备具有用于指示是否各个I/O设备正在执行操作的状态寄存器。例如,当相应的I/O设备正在执行操作时,状态寄存器被设定为“1”,并且当相应的I/O设备没有执行操作时,被设定为“0”。因此,通过参考设备控制器或设备的状态寄存器,设备状态确定器412能够确定是否相应的I/O设备正在执行操作。因而,在第三实施例中,每个设备控制器或每个设备都折叠起来(double up),如果以上所描述的设备状态管理器421那样。
第四实施例
在第四实施例中,PMIC20的控制寄存器的设定信息被用作设备状态管理信息。PMIC20具有控制寄存器,以便设定各种电源线的DC/DC转换器。因而,通过参考控制寄存器,有可能识别出与电源线连接的哪个I/O设备正被供电。在此,设备驱动器在相应的I/O设备执行操作之前操作PMIC20的控制寄存器,并且设定PMIC20的控制寄存器以确保对该I/O设备供电。在设备结束操作的时间点,设备操作员操作设定寄存器并且设定PMIC20的控制寄存器以确保停止对I/O设备的供电。因而,通过参考PMIC20的设定控制寄存器,设备状态确定器412能够确定哪些I/O设备正在执行操作。
第五实施例
在第五实施例中,Linux被用作操作系统,并且设备驱动器基于运行时间(Runtime)PM的框架来实现。因而,在基于运行时间PM的框架来实现的设备驱动器中,需要在通过相应的I/O设备进行的输入-输出操作开始之前执行的操作(例如,硬件启动(booting)和初始化)被实现为预操作回调(callback)函数(runtime_resume()回调)。而且,需要在通过相应的I/O设备进行的输入-输出操作结束之后执行的操作(例如,硬件停止)被实现为后操作回调函数(runtime_suspend()回调)。因而,在通过I/O设备进行的输入-输出操作的执行之前和之后,在适当的时间调用相应的回调功能。需要在通过I/O设备进行的输入-输出操作开始之前执行的操作的实例包括:开始对与I/O设备对应的设备控制器的时钟供给的操作、以及为了开始对I/O设备的供电而设定在PMIC20的控制寄存器中的值的操作。需要在通过I/O设备进行的输入-输出操作结束之后执行的操作的实例包括停止对相应的设备控制器的时钟供给和供电的操作。
如图18所示,在运行时间PM内,I/O设备的状态被表示为下列四种状态之一:活动(ACTIVE)、正在挂起(SUSPENDING)、已挂起(SUSPENDED)和正在恢复(RESUMING)。活动状态指示出I/O设备正在执行操作。正在挂起状态指示出I/O设备处于从执行操作到停止操作的转换阶段。已挂起状态指示出I/O设备已经停止执行操作。正在恢复状态指示出I/O设备处于从不执行操作到执行操作的转换阶段。
一旦设备驱动器完成了初始化操作,它就将相应的I/O设备切换为已挂起状态。然后,在开始操作之前,设备驱动器调用预操作回调函数。一旦预操作回调函数被调用,I/O设备被切换为正在恢复状态。在预操作回调函数正在实施的同时,I/O设备保持为正在恢复状态。当预操作回调函数的执行完成时,I/O设备切换为活动状态。然后,一旦I/O设备完成了操作,设备驱动器就调用后操作回调函数。当后操作回调函数被调用时,I/O设备从活动状态切换为正在挂起状态。在后操作回调函数正在实施的同时,I/O设备保持为正在挂起状态。一旦后操作回调函数的执行完成了,I/O设备就切换为已挂起状态。在运行时间PM内,I/O设备的上述状态使用存在于用于管理I/O设备的结构中的称为runtime_status的变量来管理。
在第五实施例中,预操作回调函数被调用的定时与图13所示的步骤S2(针对设备状态管理信息来登记操作的开始)的定时相同,而后操作回调函数被调用的定时与图13所示的步骤S7(针对设备状态管理信息来登记操作的结束)的定时相同。因而,例如,在预操作回调函数中,操作能够被执行以针对设备状态管理信息来登记操作的开始(即,能够执行操作以将相应的I/O设备的设备信息能够改为“执行中”)。同样地,例如,在后操作回调函数中,能够执行操作以针对设备状态管理信息来登记操作的结束(即,能够执行操作以将相应的I/O设备的设备信息改为“停止”)。于是,即使是在按照图13所示的步骤S2和S7被跳过的顺序来操作的I/O设备中,也可以在适当的时间更新设备状态管理信息。
第六实施例
在第六实施例中,当Linux被用作操作系统时,并且当设备驱动器基于运行时间PM的框架来实现时,通过运行时间PM来管理的I/O设备的状态(即,记录在存在于用于管理每个I/O设备的结构中的变量runtime_status中的状态)被用作在图12所示的设备状态管理信息中的状态信息。在这种情况下,活动状态、正在挂起状态和正在恢复状态指示出I/O设备正在执行输入-输出操作;而已挂起状态指示出I/O设备没有正在执行任何操作。也就是,活动状态、正在挂起状态和正在恢复状态对应于图12所示的“执行中”;而已挂起状态对应于图12所示的“停止”。
在第六实施例中,基于运行时间PM的框架,只要设备驱动器使用用于硬件激活和初始化的预操作回调函数,并且使用用于硬件停止的后操作回调函数,该设备驱动器就适用。因而,用于更新设备状态管理信息的操作(例如,在图13所示的步骤S2和S7中执行的操作)并不是必须的。
在第六实施例中,设备状态确定器412参考与运行时间PM兼容的设备驱动器所保持的I/O设备的状态(runtime_status)。然后,如果状态为已挂起状态,则I/O设备被确定为已停止。但是,如果状态指示出除已挂起状态外的任何其他状态,则I/O设备被确定为正在执行操作。在内核初始化时,设备状态确定器412预先登记用于确定的目标设备驱动器。然后,在图14所示的步骤S13中,如果用于确定的所有目标I/O设备都具有已挂起状态来作为通过运行时间PM来管理的状态,则设备状态确定器412确定SoC100能够切换为深度睡眠模式(步骤S13的“是”)。但是,如果用于确定的全部目标I/O设备并非都具有已挂起状态来作为由运行时间PM来管理的状态,则设备状态确定器412确定SoC100不应切换为深度睡眠模式(步骤S13的“否”)。
第七实施例
在第七实施例中,在电源设备10中的蓄电设备正保存着足够的电能的情形中,SoC100被切换为等待模式,即使可以将SoC100切换为深度睡眠模式。结果,可以增强响应时间。在第七实施例中,额外布置有电能检测设备(未示出),以用于检测存储于蓄电设备中的电能。
在第七实施例中,如图19所示,在用于切换(调度)至进程的操作序列中,在图14所示的步骤S13执行的操作(即,确定是将SoC100切换为等待模式还是深度睡眠模式的操作)之前是确定由电能检测设置检测出的电能(即,存储于蓄电设备内的电能)是否等于或大于预定值(阈值)的附加操作(步骤S25)。如果确定由电能检测设备检测出的电能等于或大于阈值(步骤S25的“是”),则进程切换器411执行设定以便总是将SoC100切换为等待模式。
电能检测设备检测出存储于在电源设备中使用的原电池或二次电池内的电能,并且检测出存储于与能量采集设备结合在一起使用的蓄电设备内的电能。例如,对于原电池,或者对于二次电池,或者对于与能量采集设备结合在一起用作蓄电设备的电容器(例如,双电层电容器或锂离子电容器),存储于其内的电能能够通过测量其输出电压而获知。因此,A/D转换器能够用作电能检测设备。如果将电池(例如,锂离子电池)用作蓄电设备,则能够将电荷计数器(coulomb counter)能够用作电能检测设备。也就是,如果电池的充电-放电使用电荷计数器来测量,则能够知道存储于电池内的电能。
电能检测设备能够利用I2C、SPI或GPIO的连接从SoC100中读出数据。同时,电能检测设备能够连接至以上所述的微计算机,并且能够周期性地将从微计算机中读出的电能发送给SoC100。作为选择,只有当电能下降到阈值以下时,电能检测设备才能够将来自微计算机的电能发送给SoC100。仍然作为选择,SoC100能够周期性地读出存储于微计算机内的电能。
第八实施例
下文给出的是关于第八实施例的解释。在下面的解释中,与以上所述的实施例相同的部分将不再解释。在第八实施例中,本发明所要实现的信息处理设备是平板型信息处理设备,该信息处理设备靠使用光伏电池生成的电力来操作。图20是示出根据第八实施例的信息处理设备1的外观的示意图。平板型信息处理设备在终端的前表面上包含形式为具有低功耗的反射型液晶显示器或者电子纸的显示设备500;并且在除布置于终端前表面上的显示设备500之外的部分包含光伏电池501。而且,起着定位设备的作用的触敏面板502设置于显示设备500的表面上;而键盘503设置于终端前表面上的没有与显示设备500重叠的部分内。在此,键盘503能够通过将触敏面板502叠加于光伏电池501的表面上来实现,该触敏面板502是天然透明的;或者能够被实现为使用透明材料的或者使用只有一小部分具有光屏蔽性的材料的机械键盘。
图21和22是示出根据第八实施例的信息处理设备1的示例性配置的示意图。在图21中示出的是在用于构成信息处理设备1的构件(模块)当中的电源线的连接关系。在图22中示出的是在用于构成信息处理设备1的构件(模块)当中的信号线的连接关系。
如图21和22所示,信息处理设备1包含光伏电池501、蓄电控制设备511、电容器(蓄电设备)512、PMIC20、DC/DC转换器513和514、硅振荡器515、DRAM516、SoC517、微计算机300、NAND闪存518、无线LAN模块519、电子纸(EPD)520、触敏面板502和键盘503。在此,光伏电池501、蓄电控制设备511和电容器512的结合能够被认为是以上所述的电源设备10的一个实例。而且,硅振荡器515能够被认为是以上所述的高频振荡器108的一个实例。此外,DRAM516能够被认为是以上所述的主存储器30的一个实例。而且,NAND闪存518能够被认为是以上所述的储存设备210的一个实例。而且,无线LAN模块519能够被认为是网络设备220的一个实例。而且,电子纸520能够被认为是以上所述的显示设备200的一个实例。此外,触敏面板502和键盘503能够被认为是以上所述的HID230的一个实例。
对于内部模块,SoC517包含:处理器内核101、DRAM控制器530、EPD控制器540、NAND控制器550、SDIO控制器560、I2C控制器570、GPIO控制器580、时钟控制模块110、中断控制器120、RAM590和总线107。而且,尽管图中未示出,按照与第一实施例相同的方式,作为内部模块,SoC517包含具有时钟功能的实时时钟(RTC)。在本例中,DRAM控制器530能够被认为是以上所述的存储器控制器102的一个实例。而且,EPD控制器540能够被认为是显示设备控制器103的一个实例。此外,NAND控制器550能够被认为是存储控制器104的一个实例。而且,SDIO控制器560能够被认为是网络控制器105的一个实例。此外,RAM590能够被认为是内部存储器125的一个实例。
同时,尽管图中没有详细示出,但是按照与第一实施例相同的方式,中断控制器120通过与总线107不同的专用线路而与下列构件中的每个构件连接:时钟控制模块110、处理器内核101、DRAM控制器530、EPD控制器540、NAND控制器550、SDIO控制器560、I2C控制器570、GPIO控制器580、RAM590和RTC(未示出)。按照相同的方式,时钟控制模块110通过与总线107不同的专用线路而与下列构件中的每个构件连接:中断控制器120、处理器内核101、DRAM控制器530、EPD控制器540、NAND控制器550、SDIO控制器560、I2C控制器570、GPIO控制器580、RAM590和RTC(未示出)。
首先,以下参照图21来解释的是根据第八实施例的信息处理设备1的电源系统。根据第八实施例的信息处理设备1靠由光伏电池501产生的电力来运行。但是,仅由光伏电池501生成的电力不足以应付在由整个信息处理设备1执行的操作的高峰期的功耗。因此,蓄电控制设备511使用电容器(蓄电设备)512来执行高峰辅助控制。如图21所示,光伏电池501的输出与蓄电控制设备511连接。而且,蓄电控制设备511还与电容器512连接。因而,蓄电控制设备511是使用光伏电池501和电容器512来执行高峰辅助的电源电路,并且转换与PMIC20或DC/DC转换器513和514的输入电压一致的输出电压(若必要的话)。在SoC517切换为具有低功耗的等候模式(例如,等待模式或深度睡眠模式)并且仅由光伏电池501生成的电力足以应付整个信息处理设备1的功耗的情形中,蓄电控制设备511以过剩电力给电容器512充电。但是,当仅由光伏电池501生成的电力不足以应付整个信息处理设备1的功耗时,蓄电控制设备511使用存储于电容器512内的电力来弥补不足并且输出所需的电力。
用作蓄电设备的电容器512的实例包括大容量电容器,例如,双电层电容器或锂离子电容器。作为选择,作为使用电容器的替代,还能将电池(例如,锂离子电池)用作蓄电设备。仍然作为选择,蓄电设备能够使用电池和电容器的组合来配置。
如图21所示,蓄电控制设备511的输出与DC/DC转换器513以及DC/DC转换器514连接。PMIC20包含多个DC/DC转换器和LDO稳压器,并且将所输入的电力转换成各种电压,然后输出电压。根据包含于其内的控制寄存器,PMIC20针对每个DC/DC转换器和每个LDO稳压器来配置,以在正常时间内改变输出电压或者在待机模式中改变输出电压。PMIC20的输出与硅振荡器515、DRAM516、SoC517、NAND闪存518及无线LAN模块519连接。因而,PMIC20为那些构件的操作供给必要的电力。
当SoC517切换为待机状态(深度睡眠模式)时,PMIC20停止对硅振荡器515的供电。一旦SoC517从待机状态(深度睡眠模式)中退出,PMIC20就恢复对硅振荡器515的供电。结果,可以会降低硅振荡器515的功耗。DRAM516需要用于存储器阵列和接口电路的不同电压的电力。因此,对于该要求,两种类型的电压的输出从PMIC20连接出来。同样,对于SoC517,需要多种(在图21所示的实例中为四种)电压的电力。因此,与此一致地,多种电压的电力从PMIC20中连接出来。同时,如果多个不同的构件(模块)需要相同电压的电力,则来自PMIC20的用于单个DC/DC转换器或单个LDO稳压器的输出可以连接至有关的构件(模块)。
与蓄电控制设备511的输出连接的DC/DC转换器514(在下面的解释中,有时称为“第二DC/DC转换器514”)给微计算机300供应电力。由于微计算机300控制着PMIC20,并从而执行整个信息处理设备1的电源的开/关控制,因而微计算机300的操作所需的电力从独立于PMIC20的DC/DC转换器514供给。
与蓄电控制设备511的输出连接的DC/DC转换器513(在下面的解释中,有时称为“第一DC/DC转换器513”)给电子纸520供应电力。但是,如果电子纸520的操作所需的电力能够从PMIC20供应,则能够这样地配置:给电子纸520的电力从PMIC20供给,而不使用第一DC/DC转换器513。
同时,在第八实施例中,尽管将光伏电池501用作电源,但是同样可以使用其中利用了热能或振动能的能量采集的发电装置。作为选择,例如,还能够将无线电力馈电用作电源。仍然作为选择,例如,干电池能够被用作电源,并且能够被配置成与电容器结合在一起来执行高峰辅助。
以下参照图22来解释的是根据第八实施例的信息处理设备1的构件(模块)、以及那些构件当中的连接。作为信息处理设备1的主要构成元件的SoC517是具有集成于其内的计算机系统的半导体芯片。就操作SoC517所需的时钟信号而言,24MHz的主时钟(即,以上所述的高频时钟)以及32KHz的子时钟(即,以上所述的低频时钟)连接至时钟控制模块110的输入。在此,32KHz的子时钟同样为PMIC20所需。因此,在图22所示的配置中,由内置于PMIC20内的32KHz的振荡器的振荡生成的时钟信号作为子时钟连接至SoC517的时钟控制模块110。同时,尽管在图22中没有清楚示出,但是32KHz的晶体振荡器从外面附接至内置于PMIC20内的振荡器。就主时钟而言,由硅振荡器515生成的24MHz的时钟信号作为主时钟连接至SoC517的时钟控制模块110。SoC517的时钟控制模块110的配置与第一实施例相同。因而,在时钟控制模块110中,多种频率的时钟信号由多个PLL、乘法器和除法器生成;并且被分发给SoC517的构件。同时,在第八实施例以及以上所述的实施例中,主时钟的频率以及子时钟的频率只是示例性的。也就是,频率并不限定于那些频率。
在SoC517内的中断控制器120接收来自SoC517中的每个设备(例如,I2C控制器570、GPIO控制器580、EPD控制器540、NAND控制器550、SDIO控制器560和定时器(未示出))的中断请求;将中断向量登记于包含于其内的寄存器中,该中断向量使得中断的类型能够被识别;并且将中断信号发送给处理器内核101(即,将中断通知给处理器内核101)。在接收到中断信号时,处理器内核101能够参考登记于中断控制器120的寄存器内的中断向量,并从而能够确定发出中断的设备。而且,根据寄存器设定,还可以设定是否允许来自每个设备的中断。同时,中断控制器120具有用以在接收到来自SoC517的处于深度睡眠模式的设备的中断请求时激活SoC517并引导其退出深度睡眠模式的功能。
处理器内核101执行应用程序和操作系统(OS)。在图22中示出的是作为具有内置于其内的单个处理器内核101的单核SoC的SoC517的配置。但是,这并不是唯一的可能情形。作为选择,例如,还可以将SoC517配置为多核SoC,例如,具有内置的两个处理器内核的双核SoC或者具有四个内置的处理器内核的四核SoC。
内置于SoC517内的RAM590是能够被高速访问的SRAM。RAM590能够用作便笺式存储器,充当临时工作区。此外,由于RAM590在任何时候都可用,甚至是在主存储器(在本例中,DRAM516)无法使用时也可用,因而RAM590能够在操作系统的启动中使用或者在用于从待机状态中的激活的操作中使用。
在根据第八实施例的信息处理设备1中,DRAM516被用作主存储器。而且,DRAM516与SoC517的DRAM控制器530连接。DRAM516能够由处理器内核101和各种设备访问。在图23中示出的是在MRAM被用作主存储器的情形中的信息处理设备1的配置实例。与图22所示的配置相比,图23所示的配置在以下方面有所不同:将MRAM600代替DRAM516来用作主存储器,并且将MRAM控制器601代替DRAM控制器530来用作与主存储器连接的SoC517的存储器控制器。作为将非易失性存储器用作主存储器的结果,虽然在休眠模式(在后面描述)下停止对主存储器的供电,存储于主存储器内的数据也不需要转存到非易失性的二级存储设备(例如,NAND闪存)之内。
返回参照图22进行的解释,SoC517的I2C控制器570是具有I2C接口的各种设备能够连接到的通用通信设备。PMIC20同样使用I2C接口来连接至SoC517。因而,SoC517的处理器内核101能够执行针对PMIC20的控制寄存器的读取和写入。作为选择,作为使用I2C接口的替代,SPI接口同样能够用于建立在SoC517与PMIC20之间的连接。而且,除了I2C接口之外,SoC517和PMIC20还经由信号线相互连接,以便提供STBY信号,该STBY信号指示出SoC517(或处理器内核101)是否处于深度睡眠模式。例如,当STBY信号切换为有效电平(active level)(例如,高电平)时,PMIC20将每个DC/DC转换器和每个LDO稳压器的输出改变为针对深度睡眠模式的设定。这会导致在深度睡眠模式中的功耗降低。
GPIO控制器580是通用数字I/O端口。在根据第八实施例的信息处理设备1中,GPIO控制器580用于在SoC517与微计算机300之间的通信,并且用于控制用于给电子纸520供电的DC/DC转换器514。在此,电子纸520只有重写显示内容时才消耗电力。因此,按照给电子纸520的电力仅在重写期间才供应的方式来执行控制。为了实现该控制,对DC/DC转换器514的使能信号的开/关控制由处理器内核101经由GPIO控制器580来执行。作为根据第八实施例的情形,在靠由光伏电池生成的电力来运行的信息处理设备中,期待的是使用具有低功耗的I/O设备。因此,仅在重写显示内容时消耗电力的电子纸特别适合作为靠由光伏电池生成的电力来运行的信息处理设备的显示设备。
同时,微计算机300经由GPIO控制器580与SoC517连接。而且,触敏面板502和键盘503与微计算机300连接。在这种情况下,微计算机300检测触敏面板502被触摸的位置;并且在键盘503被按下时执行颤振(chattering)消除以及按键确定。然后,微计算机300经由GPIO控制器580将触摸位置或者所按下的键的代码发送给SoC517的处理器内核101。同时,微计算机300还与蓄电控制设备511连接,并且被配置为能够检测出由蓄电控制设备511管理的电容器(蓄电设备)512的储存电能。更特别地,在将双电层电容器用作电容器512时,在电容器512的输出电压与电容器512的储存电能之间存在着相对关系。因此,能够这样地配置:内置于微计算机300内的A/D转换器读取双电层电容器的输出电压。在此,微计算机300同样连接至PMIC20。因而,如果PMIC20的开/关控制由微计算机300指示,则可以执行对整个信息处理设备1的电源的开/关控制。如同后面所描述的,微计算机300接收来自用户的输入并且将电容器(蓄电设备)512的储存电能当作是输入,并因此起着用于执行PMIC20的开/关控制的系统控制器的作用。
EPD控制器540针对与其连接的电子纸520来执行绘图操作。EPD控制器540读出存储于DRAM(主存储器)516和/或RAM590内的图像数据;若必要的话,执行数据转换以便重写电子纸520的数据;并且输出用于指示电子纸520的重写的信号。
NAND控制器550针对与其连接的NAND闪存508的芯片来执行数据读取和/或数据写入。在根据第八实施例的信息处理设备1中,NAND闪存508被用作二级存储,并且它的存储区由操作系统使用文件系统来管理。
同时,根据第八实施例,信息处理设备1包含经由SDIO控制器560与SoC517连接的无线LAN模块509。但是,这并不是唯一的可能情形。作为选择,例如,作为使用SDIO接口的替代,无线LAN模块509和SoC517能够通过诸如USB、PCI-express、SPI或UART之类的接口来连接。同时,同样可以具有内置于SoC517内的无线LAN电路。
在根据第八实施例的信息处理设备1中,有可能将由飞思卡尔半导体(Freescale Semiconductor)公司制造的i.MX508用作SoC517。但是,这并不是唯一的可能情形。也就是,有可能使用各种类型的SoC。而且,在根据第八实施例的信息处理设备1中,有可能将由飞思卡尔半导体公司制造的MC34708用作PMIC20。但是,这并不是唯一的可能情形。也就是,有可能使用各种类型的PMIC。作为选择,例如,作为使用PMIC20的替代,还可以使用多个DC/DC转换器与LDO稳压器的组合。
图24是示出在根据第八实施例的信息处理设备1中的SoC517的状态转换的实例的示意图。由于SoC517表示以处理器内核101为中心的计算机系统,因而内置于SoC517内的处理器内核101同样能够被认为具有与图24所示的状态转换相同的状态转换。在本例中,当处理器内核101正在执行命令时(即,当处理器内核101处于运行状态中时),SoC517的状态称为活动模式。当处理器内核101没有在执行任何命令并且在等待中断时(即,在处理器内核101处于空闲状态时),SoC517的状态为等待模式或深度睡眠模式(对于SoC,例如i.MX508,深度睡眠模式也称为停止模式)。按照与以上所述的实施例相同的方式,当有任何I/O设备(或任何控制器)正在执行I/O操作时,SoC517切换为等待模式。但是,如果没有任何一个I/O设备(没有任何一个控制器)正在执行I/O操作,则SoC517切换为深度睡眠模式。在等待模式和深度睡眠模式中,处理器内核101处于其中命令执行停止的等待状态(空闲状态)。但是,如前面所描述的,在深度睡眠模式中,在SoC中的主时钟同样被停止,由此导致与等待模式相比功耗进一步降低。当用户正在使用信息处理设备1、即处于信息处理设备1的操作状态时,在信息处理设备1内的SoC(或处理器内核101)在活动模式、等待模式和深度睡眠模式之间切换。
如果用户关闭信息处理设备1的电源,或者如果只有少量的电能存储于电容器(蓄电设备)512内,并且光伏电池501仅生成少量的电力,使得信息处理设备1无法维持在操作状态中,则SoC517的内部状态转存到DRAM(主存储器)516内,并且在DRAM516中的数据然后转存到用作二级存储的NAND闪存508内。随后,对信息处理设备1的供电停止(电源关闭)。这种状态称为休眠模式。因而,在用户看来,在休眠模式中的信息处理设备1看起来处于停止状态。而且,当非易失性存储器(例如,MRAM)被用作主存储器时,能够在将SoC517的内部状态转存到主存储器之内后关闭电源。也就是,存储于主存储器内的数据不需要转存到用作二级存储的NAND闪存508内。
图25是示出安装于根据第八实施例的信息处理设备1内的操作系统(OS)的示例性功能配置的框图。在此,例如,Linux能够用作操作系统。但是,这并不是唯一的可能情形,而是可以使用各种操作系统。操作系统存储于用作二级存储的NAND闪存508的文件系统内。在信息处理设备1的操作状态中,处理器内核101将操作系统读入主存储器(DRAM516)内并执行它。安装于信息处理设备1内的操作系统包含进程管理器410、设备管理器4200、文件管理器430及存储器管理器440的主要功能。
设备管理器4200包含每个I/O设备的设备驱动器(即,包括EPD设备驱动器、NAND设备驱动器、I2C设备驱动器、SDIO/WLAN设备驱动器、键盘驱动器(未示出)和触敏面板驱动器(未示出))。另外,作为第八实施例所特有的特征,设备管理器4200管理用于指示存储于电能电容器(蓄电设备)512内的电能的电能存储信息,并且管理着操作中设备计数器(作为以上所述的设备状态管理信息的一个实例)。在第八实施例中,充当系统控制器的微计算机300在适当的时间检测电容器(蓄电设备)512的储存电能,并且将检测值通知给SoC517的处理器内核101。处理器内核101将所通知的值登记为电能存储信息。操作中设备计数器表示用来登记当前在执行I/O操作的I/O设备(或控制器)的数量并且由设备状态管理器4210管理的区域。
按照与第一实施例相同的方式,当处理器内核101进入空闲状态时,进程切换器411的设备状态确定器412参考操作中设备计数器的值。如果该值等于“0”,则意味着没有I/O设备(或控制器)正在执行I/O操作。因此,设备状态确定器412确定SoC517能够切换为深度睡眠模式。但是,如果操作中设备计数器的值不等于“0”,则设备状态确定器412确定SoC517不应切换为深度睡眠模式。
下文给出的是关于根据第八实施例的信息处理设备1和操作系统(OS)的操作的详细解释。
在图26中示出的是由设备管理器4200管理的设备驱动器所执行的操作的典型操作流程图。如图26所示,当设备驱动器接收到来自OS或应用程序的输入-输出请求(步骤S51)时,设备驱动器使设备状态管理器4210的操作中设备计数器的值加1(步骤S52)。例如,如果接收到针对NAND设备驱动器的输入-输出请求,则该请求是出于数据读取或数据写入的目的而发出的。同样地,如果接收到针对EPD设备驱动器的输入-输出请求,则该请求是为了在屏幕上显示而发出的。而且,如果接收到针对SDIO/WLAN设备驱动器的输入-输出请求,则该请求是为了将数据发送到网络上或者接收来自网络的数据而发出的。
然后,为了执行所请求的输入-输出操作,有关的设备驱动器通过将预定值写入相应设备的控制寄存器中来激活硬件功能(步骤S53)。随后,如果输入-输出操作包括需要设备驱动器参与的操作(例如,用于在数据传输所使用的多个缓存区之间进行切换的指令,或者在输入-输出操作期间的异常处理),则设备驱动器执行该操作(步骤S54)并且等待开始要完成的输入-输出操作(步骤S55)。一旦输入-输出操作完成了,设备驱动器就通过将预定值写入该设备的控制寄存器内来停止相应设备的硬件功能(步骤S56);使操作中设备计数器的值减1(步骤S57);并且将输入-输出操作的结果(即,输入-输出操作或输入数据的成功或失败)往回发送给输入-输出请求源(步骤S58)。同时,由于操作系统基于多道程序设计(multiprogramming)来运行,因而在设备的硬件正在执行输入-输出操作(从步骤S53至步骤S55)的同时,处理器内核101执行另一个可执行进程(或者可执行线程或可执行任务)(若存在)。
在图26所示的设备驱动器的操作流程中,每当输入-输出请求被执行时,硬件就被激活,以使得输入-输出操作被执行并且硬件停止。但是,在硬件的激活耗费时间的设备(例如,无线LAN)的情形中,控制按某种方式执行,使得硬件在输入-输出操作完成之后没有立即停止,而是只有在一定时间内没有接收到输入-输出请求才停止。结果,有可能降低激活/停止硬件的频率并降低功耗。因而,图26所示的操作流程能够被扩充以执行此类操作。
以下参照图27来解释的是由根据第八实施例的进程切换器411执行的操作的实例。图27是用于解释由进程切换器411执行的操作的实例的流程图。在此,例如当正由处理器内核101执行的进程发出输入-输出请求、或者调用OS的功能(例如,进程间通信或存储器管理)、或者响应于由I/O设备(控制器)或定时器发出的中断而进入OS的内核时,进程之间的切换被执行。
当在进程之间切换时,首先,进程切换器411停止正在执行的进程并将其插入进程队列中(步骤S61)。进程队列具有两种类型,即,可执行进程被插入其内的可执行进程队列、以及等待事件(例如,输入-输出完成)的进程被插入其内的事件-等待进程队列。在可执行进程队列中,进程基于优先级来管理。在步骤S61,当正在执行的进程开始等待事件时,进程切换器411停止该进程并将其插入事件-等待队列。但是,作为开始等待事件的替代,如果正在执行的进程由于具有较高的优先级的另一进程而改变,则进程切换器411停止有关的进程并将其插入可执行进程队列。
随后,进程切换器411检查在可执行进程队列中是否存在进程(步骤S62)。如果在可执行进程队列中存在进程(步骤S62的“是”),则进程切换器411从存在于可执行进程队列中的进程当中选择具有最高优先级的进程,并且指示处理器内核101开始执行所选进程(步骤S63)。另一方面,如果没有进程存在于可执行进程队列中(步骤S62的“否”),则进程切换器411的设备状态确定器412参考由设备状态管理器4210管理的操作中设备计数器的值,并且确定操作中设备计数器的值是否等于“0”(步骤S64)。也就是,当处理器内核101切换为空闲状态时,设备状态确定器412确定SoC517是否能够切换为深度睡眠模式。
在步骤S64,如果操作中设备计数器的值不等于“0”(步骤S64的“否”),则意味着某些I/O设备(控制器)正在执行I/O操作。因此,设备状态确定器412能够确定SoC517不应切换为深度睡眠模式。在这种情况下,进程切换器411按照某种方式来设定SoC517的控制寄存器,使得SoC517响应于WFI命令而切换为等待模式(步骤S65)。随后,进程切换器411发出WFI命令,将处理器内核101切换为空闲状态,并且等待来自I/O设备(控制器)的中断(步骤S66)。当中断由I/O设备(控制器)发出时,SoC517退出等待模式。然后,系统控制返回步骤S62。
同时,在步骤S64,如果操作中设备计数器的值等于“0”(步骤S64的“是”),则意味着没有I/O设备(控制器)正在执行I/O操作。因此,设备状态确定器412能够确定SoC517能够切换为深度睡眠模式。在这种情况下,进程切换器411将处理器内核101设定为中断禁用(步骤S67),并且按照某种方式来设定SoC517的控制寄存器,使得SoC517响应于WFI命令而切换为深度睡眠模式(步骤S68)。然后,进程切换器411按照某种方式来设定SoC517的控制寄存器(例如,时钟控制模块110的控制寄存器115),使得PLL111在深度睡眠模式中停止(步骤S69)。随后,进程切换器411将脏数据从处理器内核的高速缓冲存储器140写入充当主存储器的DRAM516之内,并且然后停止高速缓冲存储器140(步骤S70)。然后,进程切换器411给DRAM516发送命令,并且将DRAM516切换为自刷新模式(步骤S71)。随后,进程切换器411发出WFI命令并且将处理器内核101切换为空闲状态,以等待中断(即,将SoC517切换为深度睡眠模式)。因而,处理器内核101等待来自I/O设备(控制器)的中断(步骤S72)。
当激活允许式中断由I/O设备(控制器)发出时,SoC517退出深度睡眠模式。因此,进程切换器411给DRAM516发送命令,以使DRAM516从自刷新模式释放出,并且将其切换为正常操作模式(步骤S73)。然后,进程切换器411初始化高速缓冲存储器140并将其设定为操作状态(步骤S74)。随后,进程切换器411将处理器内核101设定为中断允许的(步骤S75)。然后,系统控制返回步骤S62。由于中断处理例程存储于DRAM516内,并且一旦被激活,DRAM516就需要在允许中断之前变为可访问的事实,因而从步骤S67到步骤S75,处理器内核101被设定为中断禁用的。
同时,在存储于处理器内核101的高速缓冲存储器140内的数据在深度睡眠模式中被保留的情形中,步骤S70和S74不需要执行。例如,在i.MX508中,关于高速缓冲存储器在停止模式(深度睡眠模式)中是否将会受到电源门控,能够根据控制寄存器的设定来选择。因此,依据该设定,能够跳过步骤S70和S74。
图28是示出在作为系统控制器来操作的微计算机300与SoC517的GPIO控制器之间的连接的实例的示意图。在图28所示的实例中,微计算机300和SoC517通过三种主要类型的信号线来连接。参照图28,一类信号线表示用于握手用途的两个信号线,并且称为CTL。这两个信号线包括用于在将数据从微计算机300发送给SoC517时对SoC517发出中断的信号线(即,用于发送中断信号的信号线);以及用于将来自SoC517的确认(ACK:应答信号)往回发送给微计算机300的信号线。但是,这并非是唯一的可能方法。而且,参照图28,二类信号线表示用于识别数据类型的三个线路并且被称为CMD。这三个信号线被用来通知用于使得如下识别能够进行的代码:在将数据从微计算机300发送给SoC517时,数据主体是指示键盘503的键码,指示开始触摸触敏面板502,指示当前触摸位置,指示触摸结束,指示电容器(蓄电设备)512内的剩余电能,还是指示切换为休眠模式的指令。而且,参照图28,三类信号线表示用于发送数据主体的多个信号线并且被称为DATA。
图29是用于解释由作为系统控制器来操作的微计算机300执行的电源管理的示意图。在图29所示的图表中,纵轴表示电容器(蓄电设备)512的储存电能,而横轴表示时间的流逝。从电容器512无储存电能的状态开始,当由光伏电池501生成的电力被存储于电容器512内并且在时间T1等于第三电能时,信息处理设备1的微计算机300首先开始操作。在该时间点,没有给PMIC20供电,并且SoC517停止于休眠模式。在晚于时间T1的、电容器512的储存电能在此时变为等于第一电能的时间T2之后,当微计算机300检测到来自键盘503或触敏面板502的用户输入时,它发出指令以开始对PMIC20的供电并且使SoC517恢复操作(即,使SoC517退出休眠模式)。然后,一旦由光伏电池501生成的电力变得不足以应付信息处理设备1的功耗,电容器512的储存电能就继续减少。在晚于时间T2的时间T3,当微计算机300检测到储存电能已变为等于第二电能时,它指示SoC517切换为休眠模式。而且,即使电容器512的储存电能变为等于0,但当由光伏电池501生成的电力被存储于电容器512内并且在时间T4再次变为等于第三电能时,微计算机300就恢复操作。然后,在电容器512的储存电能变为等于第一电能的时间T5之后,当微计算机300检测到用户输入时,它发出指令以再次开始对PMIC20的供电并且使SoC517恢复操作。在恢复操作时,SoC517从在时间T3获得的状态起继续进行操作。
在此,第一电能表示让SoC517执行从退出休眠模式开始,执行一些操作并且再次切换为休眠模式的操作所需的电能。第二电能表示让SoC517切换为休眠模式所需的电能。因而,第二电能小于第一电能。
图30是用于解释用于执行图29所示的电源管理的并且用于控制键盘503和触敏面板502的微计算机300的操作的实例的流程图。微计算机300的计算机程序被写入以响应于来自各种I/O设备(例如,外部设备,例如,键盘503和触敏面板502,以及设备,例如,内置于微计算机300内的比较器)或者包含于微计算机300内的定时器的中断事件而在事件驱动的基础上操作。因而,在图30中示出的是由微计算机300响应于由I/O设备或定时器发出的中断而执行的中断处理例程的流程图。
当接收到来自I/O设备或定时器的中断请求时,内置于微计算机300内的中断控制器306将中断向量登记于包含于其内的寄存器(未示出)中,并且将中断信号发送给内置于微计算机300内的处理器内核301(即,将中断通知给处理器内核301),该中断向量使得所请求的中断的类型能够被识别。在接收到中断信号时,处理器内核301能够引用登记于中断控制器306的寄存器内的中断向量,并从而能够识别中断的原因。也就是,在接收到来自中断控制器306的中断信号时,处理器内核301首先检查中断的原因并且确定该中断是否是由键盘503发出的(步骤S81)。如果中断是由键盘503发出的(步骤S81的“是”),则处理器内核301接收来自键盘503的数据输入(步骤S82)。在此时,处理器内核301还执行诸如键盘颤振防止之类的操作,若有必要的话。
但是,如果中断不是由键盘503发出的(步骤S81的“否”),则处理器内核301确定该中断是否是由触敏面板502发出的(步骤S83)。如果中断是由触敏面板502发出的(步骤S83的“是”),则处理器内核301接收来自触敏面板502的数据输入(步骤S84)。来自触敏面板502的中断响应于触摸开始、触摸期间的触摸位置变化、以及触摸结束而发出。当接收到来自键盘503(在步骤S82)的或者来自触敏面板(在步骤S84)的数据输入时,处理器内核301检查SoC517是否处于操作状态(即,没有处于休眠模式)(步骤S85)。如果SoC517未处于操作状态(步骤S85的“否”),则处理器内核101检查处于操作状态的SoC517的操作所需的电力是否存储于蓄电设备内(即,检查电容器512的储存电能是否大于以上所述的第一电能)(步骤S86)。如果处于操作状态的操作SoC517所需的电力存储于蓄电设备内(步骤S86的“是”),则处理器内核301指示PMIC20开始供电并使SoC517恢复操作(步骤S87),并且将输入数据发送给SoC517(步骤S88)。然后,处理器内核301从中断控制器306的寄存器中删除(清除)在识别中断的类型中使用的中断向量,该中断的类型对应于发送给SoC517的数据(步骤S90)。这标志着中断处理的结束。
同时,在步骤S85,如果确定SoC517处于操作状态(步骤S85的“是”),则系统控制进行到步骤S88。而且,在步骤S86,如果操作SoC517所需的电力不可用(步骤S86的“否”),则输入数据被丢弃(步骤S89)并且系统控制进行到步骤S90。然后,中断被清除(步骤S90)。这标志着中断处理的结束。
在步骤S87,当指示PMIC20开始供电并且使SoC157恢复操作时,在给PMIC20发出指令之后,微计算机300需要知道SoC517已经恢复操作。作为实现该效果的一种方法,SoC517能够被配置以使用预定的GPIO信号线并且将操作的恢复通知给微计算机300。作为另一种方法,从给PMIC20发出指令起由SoC517进行的操作恢复所耗费的时间能够预先测定;并且如果从给PMIC20发出指令起已至少经过了该段时长,则微计算机300能够认为SoC517已经恢复操作并且能够继续进行操作。作为再一种方法,SoC517和微计算机300能够通过通信线或者I2C或SPI来连接,并且能够使用该通信线将由SoC517进行的操作的恢复通知给微计算机300。仍然作为选择,指示SoC517的状态的信号线能够连接至微计算机300,使得微计算机300能够经由信号线了解由SoC517进行的操作的恢复。仍然作为选择,微计算机300能够被配置用于使用响应于由SoC517进行的操作的恢复而改变状态的各种信号线来执行确定。
同时,在步骤S83,如果中断不是由触敏面板502发出的(步骤S83的“否”),则微计算机300的处理器内核301检查中断是否是由定时器发出的(步骤S91)。如果中断是由定时器发出的(步骤S91的“是”),则处理器内核301检查SoC517是否处于操作状态(步骤S92)。如果SoC517处于操作状态(步骤S92的“是”),则微计算机300的处理器内核301接收电容器512内的储存电能的输入(步骤S93),并且将该储存电能发送给SoC517(步骤S94)。然后,系统控制进行到步骤S90,并且中断被清除。这标志着中断处理的结束。
但是,在步骤S92,如果SoC517不处于操作状态(步骤S92的“否”),则处理器内核301不执行任何操作,并且系统控制返回步骤S90以使得中断被清除。这标志着中断处理的结束。同时,来自定时器的中断被发出,以从微计算机300将电容器512的储存电能通知给SoC517。在此,设定按照使得中断以固定的时间间隔发出的方式来完成。
同时,在步骤S91,如果中断不是由定时器发出的(步骤S91的“否”),则微计算机300的处理器内核301检查中断是否是由比较器发出的(步骤S95)。比较器是内置于微计算机300内的设备之一,并且能够在控制寄存器设定信号超过预先设定的电压或下降到预先设定的电压以下时发出中断。在本例中,配置是这样的:比较器被用来检测出电容器512的储存电能降低至第二电能以下。在步骤S95,如果中断是由比较器发出的(步骤S95的“是”),则暗示着电容器512的储存电能已经降低。因此,微计算机300的处理器内核301指示SoC517切换为休眠模式(步骤S96)。然后,系统控制返回到步骤S90以使得中断被清除。这标志着中断处理的结束。但是,如果中断不是由比较器发出的(步骤S95的“否”),则微计算机300的处理器内核301不执行任何操作,并且系统控制返回到步骤S90以使得中断被清除。这标志着中断处理的结束。
同时,在图30中示出的是在如下情形中执行的操作的流程图:每当来自I/O设备(或控制器)的中断事件发生(即,每当接收到中断请求)时,微计算机300的中断控制器306就将中断信号发送给微计算机300的处理器内核301。也就是,在这种情况下,来自I/O设备(控制器)的中断事件发生的次数等于由处理器内核接收到的中断的数量。相比之下,存在着一些中断控制器,这些中断控制器响应于来自多个I/O设备(控制器)的中断事件的发生而给处理器内核发出共同的中断。在该情形中,即使中断是由于多种中断原因而发出的,在图30所示的流程图中的操作能够仅针对单个中断原因来执行。在该情形中,在与在步骤S89中处理的中断原因相应地执行了中断清除之后,微计算机300的处理器内核301能够参考微计算机300的中断控制器306的控制寄存器,并且能够检查是否还剩余任何未处理的中断。如果还剩余任何未处理的中断,则系统控制能够返回到步骤S81并且该中断能够被处理。
图31是用于解释响应于从根据图30所示的操作的流程图来操作的微计算机300接收到的中断而由SoC517执行的操作的实例的流程图。在接收到来自微计算机300的中断时,SoC517的处理器内核101参考第二信号线(在图28中示为CMD),并且确定从微计算机300接收到的数据是表示从键盘503发送的数据(步骤S101),或是表示从触敏面板502发送的数据(步骤S103),或是表示电容器(蓄电设备)512的储存电能的通知(步骤S105),还是表示切换为休眠模式的指令(步骤S107)。
在步骤S101,如果从微计算机300接收到的数据表示从键盘503发送的数据(步骤S101的“是”),则处理器内核101将已经使用三类信号线(由图28中的DATA所示出)发送了的数据发送给键盘驱动器(步骤S102)。同样地,在步骤S103,如果从微计算机300接收到的数据表示从触敏面板502发送的数据(步骤S103的“是”),则处理器内核101将已经使用三类信号线(由图28中的DATA示出)发送了的数据发送给触敏面板驱动器(步骤S104)。而且,在步骤S105,如果从微计算机300接收到的数据表示电容器(蓄电设备)512的储存电能的通知(步骤S105的“是”),则处理器内核101将该数据记录为蓄电设备的电能存储信息(步骤S106),该数据已经使用三类信号线来发送(由图28中的DATA示出)。而且,在步骤S107,如果从微计算机300接收到的数据表示切换为休眠模式的指令(步骤S107的“是”),则处理器内核101执行用于切换为休眠模式的操作(步骤S108)。
同时,系统控制器能够如同根据第八实施例的情形那样使用微计算机300来实现,或者能够使用专用硬件来实现,或者能够使用专用硬件和处理器的组合来实现。而且,系统控制器能够内置于SoC内,或者能够内置于PMIC内。而且,除了控制键盘和触敏面板之外,系统控制器还能够连接至通信设备,例如,无线LAN、蓝牙(Bluetooth)或ZigBee,以便控制通信设备。此外,系统控制器能够执行电源控制以响应于接收到数据而激活SoC。作为选择,系统控制器的功能能够以分散的方式实现于多个微计算机和处理器当中。例如,键盘和触敏面板能够通过充当系统控制器的微计算机来管理,而无线LAN能够通过充当无线LAN模块内的系统控制器的处理器来管理。而且,能够使这两个系统控制器以协调的方式来操作。
第九实施例
在以上所述的实施例中,针对根据本发明的功耗降低方法通过信息处理设备1的处理器内核101所执行的操作系统来实现的情形给出了解释。相比之下,在第九实施例中,针对根据本发明的功耗降低方法使用管理程序来实现的情形给出了解释,该管理程序是用于实现多个OS并行执行的软件并且有时也称为虚拟机或虚拟机监视器。
图32是用于示出根据第九实施例的管理程序的示例性功能配置并且用于解释管理程序与操作系统之间的关系的示意图。众所周知的事实是:管理程序表示在操作系统之下的层中运行的且用于虚拟化硬件平台的系统软件,并且该操作系统将虚拟化的硬件平台用作真实硬件平台。因而,操作系统在由管理程序虚拟化的硬件中执行。在由管理程序虚拟化的硬件上运行的操作系统有时称为“客户OS”。参照图32,单个操作系统(单个客户OS)正运行于管理程序上。但是,这并不是唯一的可能情形。作为选择,还可以按照并发的方式在管理程序上运行多个操作系统。
如图32所示,管理程序具有三个主要的资源管理功能,即,使用CPU管理器700进行的CPU虚拟化、使用I/O设备管理器710进行的I/O设备的虚拟化、以及使用存储器管理器720进行的存储器的虚拟化。CPU管理器700包含WFI处理器701和中断处理程序702。I/O设备管理器710包含I/O设备控制器711和设备状态管理器712。
在第九实施例中,是I/O设备管理器710配备有管理信息(设备状态管理信息)的功能(设备状态管理器712),该信息使得如下确定能够进行:是否存在当前正在执行输入-输出操作(I/O操作)的I/O设备。作为管理设备状态管理信息的方法,例如,I/O设备管理器710能够被配置以对当前在执行输入-输出操作的I/O设备的数量进行计数。作为选择,I/O设备管理器710能够被配置为:针对用于使I/O设备能够被识别的每个信息块,来管理表格形式的与指示I/O设备是否正在执行输入-输出操作的信息(例如,能够表示为预定值)对应的信息。
同时,在第九实施例中,由设备状态管理器712管理的更新信息的功能在适当的时间被指派给I/O设备控制器711,该I/O设备控制器711根据来自客户OS的指令来控制实际的I/O设备,并且被指派给用于接收来自I/O设备的中断事件并将中断事件路由至适当的客户OS的中断处理程序702。而且,WFI处理器701配备有用于在切换为空闲状态时基于由设备状态管理器712管理的信息来确定是设定等待模式还是设定深度睡眠模式的功能。在本例中,能够认为WFI处理器701对应于根据以上所述的实施例的进程切换器411并且对应于权利要求所提及的“状态控制器”。
图33是用于解释由CPU管理器700的WFI处理器701执行的操作的实例的流程图。在捕获到由客户OS进行的WFI命令的发出时,管理程序执行图33所示的操作。就捕获由客户OS进行的WFI命令的发出的方法而言,如果平台硬件配备有虚拟机助手,则硬件能够检测到WFI命令的发出。作为另一种方法,在客户OS中用于发出WFI命令的部分被重写,以便将控制权移交给管理程序的WFI处理器701。
当检测到由客户OS进行的WFI命令的发出时,WFI处理器701根据图33所示的流程图执行操作。首先,WFI处理器701将当前正在运行的客户OS切换为中断等待状态(步骤S111)。然后,WFI处理器701检查是否存在任何其他可执行的客户OS(步骤S112)。如果存在任何其他可执行的客户OS(步骤S112的“是”),则WFI处理器701切换为具有最高优先级的客户OS并且使其恢复操作(步骤S113)。但是,如果没有其他可执行客户OS存在(步骤S112的“否”),则WFI处理器701参考由设备状态管理器712管理的信息(即,参考设备状态管理信息)并且确定是否存在当前在执行输入-输出操作的任何I/O设备(任何控制器)(步骤S114)。如果存在当前在执行输入-输出操作的任何I/O设备(步骤S114的“是”),则WFI处理器701确定SoC不应在处理器内核101切换为空闲状态时被切换为深度睡眠模式,并且按照使SoC响应于WFI命令的发出而切换为等待模式的方式来设定SoC的控制寄存器(步骤S115)。随后,当发出WFI命令时,WFI处理器701将处理器内核101切换为空闲状态以便等待来自I/O设备的中断(步骤S116)。当中断由I/O设备(控制器)发出时,SoC退出等待模式。然后,系统控制返回步骤S112。
同时,在步骤S114,如果当前没有I/O设备正在执行输入-输出操作(步骤S114的“否”),则WFI处理器701确定SoC能够在处理器内核101进入空闲状态时被切换为深度睡眠模式,并首先将处理器内核101设定为中断禁用的(步骤S117);并且按照使SoC响应于WFI命令的发出而切换为深度睡眠模式的方式设定SoC的控制寄存器(步骤S118)。而且,WFI处理器701按照使PLL111在深度睡眠模式中停止的方式来设定控制寄存器(步骤S119)。然后,WFI处理器701将存储于处理器内核101的高速缓冲存储器140内的脏数据写入主存储器(在本例中,假定为DRAM)中,并然后停止主存储器(步骤S120)。随后,WFI处理器701给DRAM发送命令,使得DRAM切换为自刷新模式(步骤S121)。当WFI命令发出时,WFI处理器701将处理器内核101改变为空闲状态,以便等待来自I/O设备(控制器)的中断(步骤S122)。
当激活允许式中断从I/O设备(控制器)发出时,SoC退出深度睡眠模式。因此,WFI处理器701给DRAM发送命令,并且使DRAM从自刷新模式中释放出来,并将其切换为正常操作模式(步骤S123)。然后,WFI处理器701初始化高速缓冲存储器140并将其设定为操作状态(步骤S124)。随后,WFI处理器701将处理器内核101设定为中断允许的(步骤S125)。然后,系统控制返回步骤S112。
同时,在存储于处理器内核101的高速缓冲存储器140内的数据在深度睡眠模式中被保留的情形中,步骤S120和S124不需要执行。例如,在i.MX508中,关于高速缓冲存储器在停止模式(深度睡眠模式)中是否将受到电源门控,能够根据控制寄存器的设定来选择。因此,依据该设定,步骤S120和S124能够被跳过。
图34是用于解释在管理程序的I/O设备控制器711捕获到由客户OS对I/O设备的控制寄存器的访问并且访问实际硬件的I/O设备的控制寄存器的情形中的操作的实例的流程图。就用于捕获由客户OS进行的对I/O设备的控制寄存器的访问的方法而言,如果平台硬件配备有虚拟机助手,则硬件能够检测到WFI命令的发出。作为另一种方法,在客户OS中的用于访问I/O设备的控制寄存器的部分被重写,以便将控制移交给管理程序的I/O设备控制器711。
当由客户OS的对I/O设备的控制寄存器的访问被检测到时,则如图34所示,I/O设备控制器711确定:与将要被访问的控制寄存器对应的I/O设备在输入-输出操作期间是否不应切换为深度睡眠模式,以及所检测到的访问是否是为了开始该I/O设备的输入-输出操作而进行的(步骤S131)。如果是的话(步骤S131的“是”),则I/O设备控制器711在设备状态管理器712中登记有关的I/O设备正在执行输入-输出操作的事实(步骤S132)。然后,作为客户OS的代表,I/O设备控制器711访问实际I/O设备的控制寄存器(步骤S133)。
图35是用于解释在管理程序的中断处理程序702接收到来自实际硬件的I/O设备的中断并且将该中断路由至适当的客户OS的情形中执行的操作的实例的流程图。在检测到中断时,中断处理程序702首先确定发出中断的I/O设备是否是针对其确定了SoC在I/O设备正在执行输入-输出操作时不应切换为深度睡眠模式的设备,并且确定所检测到的中断是否通知正由有关设备执行的输入-输出操作的完成(步骤S141)。如果是的话(步骤S141的“是”),则中断处理程序702在设备状态管理器712中登记有关的I/O设备的输入-输出操作已完成的事实(步骤S142)。然后,中断处理程序702将中断发送给应该要接收中断的客户OS(步骤S143)。
以此方式,在使用管理程序来实现根据本发明的功耗降低方法的情形中,为了防止对管理程序的非授权访问(借助于逆向工程(reverseengineering)或篡改(tampering)),期待的是使用SoC的安全启动函数来启动管理程序;并且还期待的是将管理程序的全部代码或者管理程序的某部分代码装载到内置于SoC内的RAM中,并且从RAM中执行它。在SoC的安全启动函数中,计算机程序使用唯一的密钥来加密,并对其分配签名(哈希值)。在启动时,解密被执行并且确认签名(哈希值)是否正确。结果,有可能防止以非授权的计算机程序进行的启动。而且,被解密并被装载到存储器内的计算机程序被存储到内置于SoC内的RAM中。因此,有可能变得难以借助于可从SoC的外部观察到的信号线(例如,用于连接主存储器的总线)的探针来执行非授权访问。此外,当SoC切换为休眠模式时,对内置RAM的供电也被停止,由此导致存储于其内的数据丢失。因此,可以降低暴露于非授权访问的风险。
改进实例
尽管本发明出于公开内容的全面和清晰起见而针对具体的实施例进行了描述,但是所附权利要求不应受此限制,而应当被理解为实现本领域技术人员所能想到的完全符合本文所阐明的基本教导的所有修改和可替换的构造。
对于在信息处理设备1中的每个I/O设备(或每个设备控制器)是否正在执行操作,在以上所述的实施例中使用设备状态管理信息来管理。但是,不是必须使用设备状态管理信息来管理信息处理设备1中的全部I/O设备的状态。也就是,只要至少是针对其已确定SoC在设备正在操作(例如,执行输入-输出操作或者等待外部数据到达)时不应切换为深度睡眠模式的那些设备的状态在设备状态管理信息中进行管理,就适用。相比之下,即使是在深度睡眠模式中也能够检测到输入并且能够激活SoC的设备(例如,键区)总是可被切换为深度睡眠模式的。因此,没有必要使用设备状态管理信息来管理此类激活允许式设备的状态。
以上在实施例中所描述的设备状态管理信息能够以各种形式来实现。例如,在单个信息处理设备1中,能够使用多种形式的设备状态管理信息。例如,对于具有基于运行时间PM的框架来实现的设备驱动器的I/O设备,通过运行时间PM来管理的信息(runtime_status)被用作设备状态管理信息。同样地,对于具有不是基于运行时间PM的框架来实现的常规的设备驱动器的设备,能够这样地配置:使图12所示的设备状态管理信息按照图13所示的操作序列来更新。在这些情形中,上述设备状态确定器参考每一块设备状态管理信息。然后,如果没有一块设备状态管理信息指示出相应的I/O设备正在操作,则设备状态确定器以综合的方式来确定将SoC切换为深度睡眠模式。
在以上所述的实施例中,设备状态确定器(412)参考设备状态管理信息并且确定是否将SoC切换为深度睡眠模式。在这方面,同样可以通过在设备状态管理信息之外还考虑其他信息的方式来执行该确定。例如,即使设备状态管理信息指示出SoC能够切换为深度睡眠模式,但如果根据定时器管理信息了解到定时器中断将在短时间内发出,则SoC可以切换为等待模式。与将SoC切换为等待模式相比,将SoC切换为深度睡眠模式需要较高的功耗以及较长的时间段。因此,如果能够预知定时器中断不久将会发生,则将SoC切换为等待模式使得能够实现功耗的总体降低,即使有可能会使SoC切换为深度睡眠模式。
在以上所述的实施例中,设备状态确定器确定是将SoC切换为等待模式还是深度睡眠模式。作为选择,例如,作为在两种模式之间进行确定的替代,设备状态确定器能够被配置用于确定SoC应当从三种或更多种模式当中被切换到的模式。在以上所述的实施例中,在深度睡眠模式中,主时钟的生成(或供给)被停止,并且主存储器切换为自刷新模式,以便实现功耗的降低。相比之下,在等待模式中,一个或多个I/O设备正在操作并且可以访问总线或主存储器。因此,总线和主存储器同样保持于操作中。但是,并不是所有I/O设备都访问总线或主存储器。因此,还可以具有新的模式(在此,称为WAIT2模式),该模式是在等待模式与深度睡眠模式之间的中间模式。尽管与等待模式相当,但是在WAIT2模式中,总线被停止并且主存储器被切换为自刷新模式。例如,当一个或多个操作中I/O设备访问总线或主存储器时,设备状态确定器确定将SoC切换为等待模式。但是,当操作中I/O设备不访问总线或主存储器时,设备状态确定器确定将SoC切换为WAIT2模式。而且,当没有一个I/O设备正在操作时,设备状态确定器确定将SoC切换为深度睡眠模式。在这样的配置中,在WAIT2模式中的功耗低于等待模式中的功耗但高于深度睡眠模式中的功耗。因此,还可以增强省电的效果。在此,尽管给出了对从三种模式当中选择模式的实例的解释,但是很容易扩大范围并且提供SOC的模式能够选自其中的各种其他模式。例如,可以提供其中主存储器切换为自刷新模式但总线不停止的模式。
以此方式,在决定了SoC将要从多个模式当中切换成的单个模式时,设备状态确定器需要考虑每个I/O设备在执行操作时是否利用总线或主存储器。为了实现这点,例如,设备状态确定器在其内存储了对应信息表,在该表中,针对用于使I/O设备能被识别的每个信息块,用于指示由有关的I/O设备在操作期间使用的其他设备的信息被按照相应的方式保持。然后,设备状态确定器参考对应信息和设备状态管理信息,并因此选择SoC应当切换成的模式。
作为另一种方法,设备状态管理器(421、4210或712)将对应信息存储于其内;参考该对应信息;并且在登记特定的I/O设备的操作的开始时,登记有关的I/O设备在其操作期间所需的其他设备的操作的开始。同样地,在登记特定的I/O设备的操作的结束时,设备状态管理器登记有关的I/O设备在其操作期间所需的其他设备的操作的结束。同时,对于诸如总线和主存储器之类的设备,多个I/O设备以共用的方式来使用此类设备。因此,这些设备需要按照使得它们的操作在没有I/O设备使用它们时被结束的方式来管理。
同时,以上所述的实施例和改进实例能够以任意方式来结合。
虽然已经描述了某些实施例,但是这些实施例仅通过实例的方式来给出,并且并非旨在对本发明的范围进行限定。当然,本文所描述的新型实施例可以按照各种其他形式来实现;而且,在不脱离本发明的精神的情况下,可以在本文所描述的实施例的形式方面进行各种省略、替代和改变。所附的权利要求以及它们的等效项旨在涵盖此类符合本发明的范围和精神的形式或修改。
Claims (26)
1.一种信息处理设备,包含:
储存设备;
一个或多个外围设备;
处理器,被配置为能够在第一状态与第二状态之间转变,在所述第一状态下执行命令,在所述第二状态下等待中断;以及
状态控制器,被配置用于:
在所述处理器进入所述第二状态时并且如果在所述外围设备中的至少一个与所述储存设备之间正在执行数据传输操作,则将所述信息处理设备切换为第三状态,所述第三状态为相比所述第一状态功耗较低的状态;并且
如果在所述外围设备中的任一个与所述储存设备之间没有正在执行所述数据传输操作,则将所述信息处理设备切换为第四状态,所述第四状态为相比所述第三状态功耗较低的状态。
2.根据权利要求1所述的设备,其中,在所述第四状态中,所述状态控制器被配置用于执行控制以降低待供应给所述处理器的电压。
3.根据权利要求1所述的设备,其中,在所述第四状态中,所述状态控制器被配置用于执行控制,以停止高频振荡器的振荡,所述高频振荡器生成表示由所述处理器在所述第一状态中使用的时钟的高频时钟。
4.根据权利要求1所述的设备,其中,在所述第四状态中,所述状态控制器被配置用于执行控制,以停止对高频振荡器供电,所述高频振荡器生成表示由所述处理器在所述第一状态中使用的时钟的高频时钟。
5.根据权利要求3所述的设备,其中所述高频振荡器是硅振荡器。
6.根据权利要求4所述的设备,其中所述高频振荡器是硅振荡器。
7.根据权利要求1所述的设备,其中
所述储存设备是易失性存储器,并且
在所述第四状态中,所述状态控制器被配置用于执行控制,以将所述储存设备切换为自刷新状态,在所述自刷新状态中,有可能保留存储于所述储存设备内的数据但不可能执行数据读取或数据写入。
8.根据权利要求1所述的设备,其中
所述储存设备是非易失性存储器,并且
在所述第四状态中,所述状态控制器被配置用于执行控制,以停止对所述储存设备供电。
9.根据权利要求1所述的设备,其中
所述处理器包含高速缓冲存储器,并且
当将所述信息处理设备切换为所述第四状态时,所述状态控制器被配置用于将存储于所述高速缓冲存储器内但是尚未被写入所述储存设备内的数据写入所述储存设备内,并且然后执行控制以停止对所述高速缓冲存储器供电。
10.根据权利要求1所述的设备,其中
所述处理器包含高速缓冲存储器,并且
在所述第四状态中,所述状态控制器被配置用于执行控制,以与在所述处理器处于所述第一状态时所供应的电压相比降低待供应给所述高速缓冲存储器的电压。
11.根据权利要求1所述的设备,其中所述外围设备是储存设备、通信设备、显示设备及图像采集设备中的任一种。
12.根据权利要求1所述的设备,针对每个所述外围设备,还包含被配置用于控制相应的外围设备的设备控制器,其中
在接收到来自所述处理器的输入-输出请求时,所述设备控制器被配置用于开始所述数据传输操作,并且
当所述数据传输操作完成时,所述设备控制器被配置用于发出中断,作为对所述处理器的通知。
13.一种连接到一个或多个外围设备的半导体设备,该设备包括:
处理器,被配置为能够在第一状态与第二状态之间转变,在所述第一状态下执行命令,在所述第二状态下等待中断;以及
状态控制器,被配置用于:
当所述处理器进入所述第二状态时并且如果在所述外围设备中的至少一个与所述储存设备之间正在执行数据传输操作,则将信息处理设备切换为第三状态,所述第三状态为相比所述第一状态功耗较低的状态;并且
如果在所述外围设备中的任一个与所述储存设备之间没有正在执行数据传输操作,则将所述信息处理设备切换为第四状态,所述第四状态为相比所述第三状态功耗较低的状态。
14.一种信息处理设备,包含:
储存设备;
一个或多个外围设备;
处理器,被配置为能够在第一状态与第二状态之间转变,在所述第一状态下执行命令,在所述第二状态下等待中断;以及
状态控制器,被配置用于:在所述处理器进入所述第二状态时,如果在所述外围设备中的任一个与所述储存设备之间没有正在执行数据传输操作,则执行控制以降低所述信息处理设备的功耗。
15.根据权利要求14所述的设备,其中,当所述处理器进入所述第二状态时,如果在所述外围设备中的任一个与所述储存设备之间没有正在执行数据传输操作,则所述状态控制器被配置用于执行控制以降低待供应给所述处理器的电压。
16.根据权利要求14所述的设备,其中,当所述处理器进入所述第二状态时,如果在所述外围设备中的任一个与所述储存设备之间没有正在执行数据传输操作,则所述状态控制器被配置用于执行控制,以停止高频振荡器的振荡,所述高频振荡器生成表示由所述处理器在所述第一状态中使用的时钟的高频时钟。
17.根据权利要求14所述的设备,其中,当所述处理器进入所述第二状态时,如果在所述外围设备中的任一个与所述储存设备之间没有正在执行数据传输操作,则所述状态控制器被配置用于执行控制,以停止对高频振荡器供电,所述高频振荡器生成表示由所述处理器在所述第一状态中使用的时钟的高频时钟。
18.根据权利要求16所述的设备,其中所述高频振荡器是硅振荡器。
19.根据权利要求17所述的设备,其中所述高频振荡器是硅振荡器。
20.根据权利要求14所述的设备,其中
所述储存设备是易失性存储器,并且
当所述处理器进入所述第二状态时,如果在所述外围设备中的任一个与所述储存设备之间没有正在执行数据传输操作,则所述状态控制器执行控制以将所述储存设备切换为自刷新状态,在所述自刷新状态中,有可能保留存储于所述储存设备内的数据但不可能执行数据读取或数据写入。
21.根据权利要求14所述的设备,其中
所述储存设备是非易失性存储器,并且
当所述处理器进入所述第二状态时,如果在所述外围设备中的任一个与所述储存设备之间没有正在执行数据传输操作,则所述状态控制器被配置用于执行控制以停止对所述储存设备供电。
22.根据权利要求14所述的设备,其中
所述处理器包含高速缓冲存储器,并且
当所述处理器进入所述第二状态时,如果在所述外围设备中的任一个与所述储存设备之间没有正在执行数据传输操作,则所述状态控制器被配置用于将存储于所述高速缓冲存储器内但是尚未被写入所述储存设备内的数据写入所述储存设备内,并且然后执行控制以停止对所述高速缓冲存储器供电。
23.根据权利要求14所述的设备,其中
所述处理器包含高速缓冲存储器,并且
当所述处理器进入所述第二状态时,如果在所述外围设备中的任一个与所述储存设备之间没有正在执行数据传输操作,则所述状态控制器被配置用于执行控制,以与在所述处理器处于所述第一状态时所供应的电压相比降低待供应给所述高速缓冲存储器的电压。
24.根据权利要求14所述的设备,其中所述外围设备是储存设备、通信设备、显示设备及图像采集设备中的任一种。
25.根据权利要求14所述的设备,针对每个所述外围设备,还包含被配置用于控制相应的所述外围设备的设备控制器,其中
在接收到来自所述处理器的输入-输出请求时,所述设备控制器被配置用于开始所述数据传输操作,并且
当所述数据传输操作完成时,所述设备控制器发出中断作为对所述处理器的通知。
26.一种连接到一个或多个外围设备的半导体设备,该设备包括:
处理器,被配置为能够在第一状态与第二状态之间转变,在所述第一状态下执行命令,在所述第二状态下等待中断;以及
状态控制器,被配置用于:当所述处理器进入所述第二状态时,如果在所述外围设备中的任一个与所述半导体设备之间没有正在执行数据传输操作,则执行控制以降低所述半导体设备的功耗。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013197394A JP2015064676A (ja) | 2013-09-24 | 2013-09-24 | 情報処理装置、半導体装置、情報処理方法およびプログラム |
JP2013-197394 | 2013-09-24 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104462011A true CN104462011A (zh) | 2015-03-25 |
Family
ID=52692114
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410426402.8A Withdrawn CN104462011A (zh) | 2013-09-24 | 2014-08-27 | 信息处理设备与半导体设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10203740B2 (zh) |
JP (1) | JP2015064676A (zh) |
CN (1) | CN104462011A (zh) |
TW (1) | TW201518931A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106814840A (zh) * | 2015-12-02 | 2017-06-09 | 飞思卡尔半导体公司 | 用于处理器的低电力状态保持模式 |
CN107391232A (zh) * | 2017-08-03 | 2017-11-24 | 致象尔微电子科技(上海)有限公司 | 一种系统级芯片soc及soc系统 |
CN108139791A (zh) * | 2015-09-28 | 2018-06-08 | 高通股份有限公司 | 功率监控的cpu功率网设计 |
CN109002159A (zh) * | 2018-06-28 | 2018-12-14 | 珠海全志科技股份有限公司 | 一种cpu的状态控制电路及方法 |
WO2019129026A1 (zh) * | 2017-12-29 | 2019-07-04 | 华为技术有限公司 | 一种噪声屏蔽电路及芯片 |
CN111026441A (zh) * | 2018-10-09 | 2020-04-17 | 卡西欧计算机株式会社 | 电子设备、信息处理方法以及存储有信息处理程序的存储介质 |
CN112133251A (zh) * | 2020-10-30 | 2020-12-25 | 歌尔科技有限公司 | 穿戴设备显示控制方法以及穿戴设备 |
CN113312284A (zh) * | 2021-06-03 | 2021-08-27 | 杭州华橙软件技术有限公司 | 数据传输方法、装置、系统、存储介质及电子装置 |
CN113360016A (zh) * | 2020-03-06 | 2021-09-07 | 北京小米移动软件有限公司 | 信息控制方法及装置、存储介质 |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6184891B2 (ja) | 2014-03-12 | 2017-08-23 | 東芝メモリ株式会社 | 情報処理装置、半導体チップ、情報処理方法およびプログラム |
JP6341832B2 (ja) * | 2014-10-21 | 2018-06-13 | キヤノン株式会社 | 半導体集積回路、半導体集積回路における電源の供給を制御する方法、及びプログラム |
US9696782B2 (en) | 2015-02-09 | 2017-07-04 | Microsoft Technology Licensing, Llc | Battery parameter-based power management for suppressing power spikes |
US10158148B2 (en) | 2015-02-18 | 2018-12-18 | Microsoft Technology Licensing, Llc | Dynamically changing internal state of a battery |
US20160248125A1 (en) * | 2015-02-19 | 2016-08-25 | Microsoft Technology Licensing, Llc | Heterogeneous Battery Cell Switching |
US9748765B2 (en) | 2015-02-26 | 2017-08-29 | Microsoft Technology Licensing, Llc | Load allocation for multi-battery devices |
CN104808739A (zh) * | 2015-04-24 | 2015-07-29 | 京东方科技集团股份有限公司 | 电源管理集成电路和显示装置 |
US9823730B2 (en) * | 2015-07-08 | 2017-11-21 | Apple Inc. | Power management of cache duplicate tags |
US9939862B2 (en) | 2015-11-13 | 2018-04-10 | Microsoft Technology Licensing, Llc | Latency-based energy storage device selection |
US10061366B2 (en) | 2015-11-17 | 2018-08-28 | Microsoft Technology Licensing, Llc | Schedule-based energy storage device selection |
US10447461B2 (en) * | 2015-12-01 | 2019-10-15 | Infineon Technologies Austria Ag | Accessing data via different clocks |
US9793570B2 (en) | 2015-12-04 | 2017-10-17 | Microsoft Technology Licensing, Llc | Shared electrode battery |
US20170177068A1 (en) * | 2015-12-17 | 2017-06-22 | Intel Corporation | Systems, methods and devices for standby power savings |
US20170262208A1 (en) * | 2016-03-08 | 2017-09-14 | Kabushiki Kaisha Toshiba | Memory device, host device, and information processing device |
CN107239319B (zh) * | 2016-03-29 | 2021-05-28 | 阿里巴巴集团控股有限公司 | 一种虚拟机的数据存储方法和装置 |
US10411717B2 (en) * | 2016-04-05 | 2019-09-10 | Samsung Electronics Co., Ltd | Device and method for multiple reference system timer |
US20170371627A1 (en) * | 2016-06-28 | 2017-12-28 | International Business Machines Corporation | Object-oriented container class callbacks |
KR101805462B1 (ko) * | 2017-06-29 | 2018-01-10 | 주식회사 티맥스소프트 | 스레드에서 처리되는 서비스 처리량을 증가시키기 위한 방법 및 컴퓨팅 장치 |
CN107810488A (zh) * | 2017-08-11 | 2018-03-16 | 深圳前海达闼云端智能科技有限公司 | 一种虚拟机的状态管理方法、装置和智能终端 |
US10248558B2 (en) * | 2017-08-29 | 2019-04-02 | Qualcomm Incorporated | Memory leakage power savings |
US10866900B2 (en) | 2017-10-17 | 2020-12-15 | Samsung Electronics Co., Ltd. | ISA extension for high-bandwidth memory |
TWI639921B (zh) | 2017-11-22 | 2018-11-01 | 大陸商深圳大心電子科技有限公司 | 指令處理方法及使用所述方法的儲存控制器 |
JP6467078B1 (ja) | 2018-01-30 | 2019-02-06 | ウィンボンド エレクトロニクス コーポレーション | 半導体記憶装置 |
US10838636B2 (en) * | 2018-05-18 | 2020-11-17 | Western Digital Technologies, Inc. | Hierarchical clock scaling in a data storage controller |
US11112849B2 (en) * | 2018-10-26 | 2021-09-07 | Silicon Laboratories Inc. | Method and apparatus for selectable high performance or low power processor system |
JP7187267B2 (ja) * | 2018-10-31 | 2022-12-12 | キヤノン株式会社 | 情報処理装置及びその制御方法 |
US10847198B2 (en) * | 2018-11-01 | 2020-11-24 | Spin Memory, Inc. | Memory system utilizing heterogeneous magnetic tunnel junction types in a single chip |
US10971681B2 (en) | 2018-12-05 | 2021-04-06 | Spin Memory, Inc. | Method for manufacturing a data recording system utilizing heterogeneous magnetic tunnel junction types in a single chip |
JP7262046B2 (ja) * | 2019-05-28 | 2023-04-21 | パナソニックIpマネジメント株式会社 | 負荷制御装置、負荷制御方法及びプログラム |
TWI710889B (zh) * | 2019-09-12 | 2020-11-21 | 宏碁股份有限公司 | 電腦系統及其電源管理方法 |
JP2021111670A (ja) | 2020-01-08 | 2021-08-02 | ローム株式会社 | 半導体装置、半導体装置システム、および車載システム |
KR20210110071A (ko) | 2020-02-28 | 2021-09-07 | 삼성전자주식회사 | 스토리지 장치 및 상기 스토리지 장치의 동작 방법 |
US11307641B1 (en) * | 2020-10-19 | 2022-04-19 | Dyna Image Corporation | Low power operation method for apparatus having data transmission rate |
CN112579182B (zh) * | 2020-11-26 | 2022-01-14 | 北京智芯微电子科技有限公司 | 芯片的唤醒控制系统和方法、及休眠控制系统和方法 |
CN112462926B (zh) * | 2020-12-09 | 2021-07-30 | 北京元心科技有限公司 | 移动终端中的电源管理方法、装置、电子设备及计算机存储介质 |
KR20230022345A (ko) * | 2021-08-06 | 2023-02-15 | 삼성전자주식회사 | 메모리 장치 및 그것의 동작 방법 |
CN115686252B (zh) * | 2021-09-24 | 2023-10-20 | 荣耀终端有限公司 | 触控屏中的位置信息计算方法和电子设备 |
US20230152989A1 (en) * | 2021-11-15 | 2023-05-18 | Samsung Electronics Co., Ltd. | Memory controller adjusting power, memory system including same, and operating method for memory system |
CN116189730A (zh) * | 2021-11-26 | 2023-05-30 | 华为技术有限公司 | 为存储器提供备电的方法和相关设备 |
CN114859868B (zh) * | 2022-05-11 | 2024-04-16 | 中国第一汽车股份有限公司 | 一种乘用车组合仪表系统下线配置防错处理方法 |
Family Cites Families (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6574739B1 (en) * | 2000-04-14 | 2003-06-03 | Compal Electronics, Inc. | Dynamic power saving by monitoring CPU utilization |
JP3758477B2 (ja) | 2000-08-02 | 2006-03-22 | 株式会社デンソー | マイクロコンピュータ |
JP2002082743A (ja) * | 2000-09-06 | 2002-03-22 | Casio Comput Co Ltd | 電子機器及び電子機器制御プログラムを記憶した記憶媒体 |
US6934870B1 (en) * | 2002-02-21 | 2005-08-23 | Cisco Technology, Inc. | Clock management scheme for PCI and cardbus cards for power reduction |
JP2004152176A (ja) * | 2002-10-31 | 2004-05-27 | Sanyo Electric Co Ltd | 集積回路装置 |
JP2005078493A (ja) * | 2003-09-02 | 2005-03-24 | Renesas Technology Corp | マイクロコンピュータ |
JP4316399B2 (ja) * | 2004-02-18 | 2009-08-19 | インターナショナル・ビジネス・マシーンズ・コーポレーション | プログラム、記録媒体、制御方法、及び情報処理装置 |
US7254667B2 (en) * | 2004-04-02 | 2007-08-07 | Arm Limited | Data transfer between an external data source and a memory associated with a data processor |
JP2006023803A (ja) | 2004-07-06 | 2006-01-26 | Konica Minolta Business Technologies Inc | Cpuの消費電力削減方法およびコンピュータシステム |
US7360106B2 (en) | 2004-08-05 | 2008-04-15 | Matsushita Electric Industrial Co., Ltd. | Power-saving processing unit, power-saving processing method and program record medium |
JP4749793B2 (ja) | 2004-08-05 | 2011-08-17 | パナソニック株式会社 | 省電力処理装置、省電力処理方法、及び省電力処理プログラム |
US7739517B2 (en) * | 2005-03-31 | 2010-06-15 | Intel Corporation | Hardware-based authentication of a software program |
US7412570B2 (en) * | 2005-11-15 | 2008-08-12 | Sun Microsystems, Inc. | Small and power-efficient cache that can provide data for background DNA devices while the processor is in a low-power state |
JP2008217209A (ja) * | 2007-03-01 | 2008-09-18 | Hitachi Ltd | 差分スナップショット管理方法、計算機システム及びnas計算機 |
US20090132839A1 (en) * | 2007-11-15 | 2009-05-21 | Rothman Michael A | Method and device to handle denial of service attacks on wake events |
US7719876B2 (en) * | 2008-07-31 | 2010-05-18 | Unity Semiconductor Corporation | Preservation circuit and methods to maintain values representing data in one or more layers of memory |
TW201017393A (en) * | 2008-10-27 | 2010-05-01 | Zyxel Communications Corp | Embedded system with power-saving function and power-saving method thereof |
US8601302B2 (en) * | 2009-06-22 | 2013-12-03 | Amazon Technologies, Inc. | Processor system in low power state retention mode with linear regulator off and switch regulator low in power management IC |
US8589650B2 (en) * | 2010-05-17 | 2013-11-19 | Texas Instruments Incorporated | Dynamically configurable memory system |
US8489906B2 (en) * | 2010-05-25 | 2013-07-16 | Freescale Semiconductor, Inc. | Data processor having multiple low power modes |
CN102629861A (zh) | 2011-02-02 | 2012-08-08 | 精工爱普生株式会社 | 振动片、振子、振荡器以及电子设备 |
JP2013062643A (ja) * | 2011-09-13 | 2013-04-04 | Seiko Epson Corp | 振動片、振動子、発振器及び電子機器 |
JP5340335B2 (ja) | 2011-03-24 | 2013-11-13 | 株式会社東芝 | 情報処理装置 |
JP5318139B2 (ja) | 2011-03-24 | 2013-10-16 | 株式会社東芝 | 制御装置およびプログラム |
JP5284401B2 (ja) | 2011-03-24 | 2013-09-11 | 株式会社東芝 | 動作切替装置およびプログラム |
JP2012203583A (ja) | 2011-03-24 | 2012-10-22 | Toshiba Corp | 情報処理装置およびプログラム |
JP2013020297A (ja) * | 2011-07-07 | 2013-01-31 | Panasonic Corp | 集積回路装置及びその制御方法 |
JP5674613B2 (ja) | 2011-09-22 | 2015-02-25 | 株式会社東芝 | 制御システム、制御方法およびプログラム |
JP5674611B2 (ja) | 2011-09-22 | 2015-02-25 | 株式会社東芝 | 制御システム、制御方法およびプログラム |
JP5777467B2 (ja) | 2011-09-22 | 2015-09-09 | 株式会社東芝 | 制御装置およびプログラム |
JP2013149093A (ja) | 2012-01-19 | 2013-08-01 | Toshiba Corp | 制御装置、制御方法、プログラムおよび電子機器 |
JP5665777B2 (ja) | 2012-01-20 | 2015-02-04 | 株式会社東芝 | 制御装置、システムおよびプログラム |
JP2013218672A (ja) | 2012-03-14 | 2013-10-24 | Toshiba Corp | 状態制御装置、情報処理装置、プログラム、および半導体装置 |
JP6113538B2 (ja) | 2012-03-23 | 2017-04-12 | 株式会社東芝 | 制御装置、制御方法、プログラムおよび半導体装置 |
JP5677376B2 (ja) | 2012-07-06 | 2015-02-25 | 株式会社東芝 | メモリ制御装置、半導体装置、およびシステムボード |
JP2014016782A (ja) | 2012-07-09 | 2014-01-30 | Toshiba Corp | 情報処理装置およびプログラム |
JP5787852B2 (ja) | 2012-09-07 | 2015-09-30 | 株式会社東芝 | 制御装置、情報処理装置、制御方法およびプログラム |
JP5696110B2 (ja) | 2012-09-19 | 2015-04-08 | 株式会社東芝 | 電源システム、電源制御装置およびプログラム |
JP5802637B2 (ja) | 2012-09-21 | 2015-10-28 | 株式会社東芝 | 情報処理装置、情報処理方法およびプログラム |
JP2014102401A (ja) | 2012-11-20 | 2014-06-05 | Toshiba Corp | 制御装置、及び情報処理装置 |
JP6087662B2 (ja) | 2013-02-28 | 2017-03-01 | 株式会社東芝 | 制御装置、制御プログラム及び情報処理システム |
JP6054203B2 (ja) | 2013-02-28 | 2016-12-27 | 株式会社東芝 | 情報処理装置、デバイス制御方法及びプログラム |
JP6071647B2 (ja) | 2013-02-28 | 2017-02-01 | 株式会社東芝 | 情報処理装置、動作状態制御方法及びプログラム |
JP6116941B2 (ja) | 2013-02-28 | 2017-04-19 | 株式会社東芝 | 情報処理装置 |
TWM485281U (zh) | 2013-12-20 | 2014-09-01 | Nat Chung Shan Inst Of Science & Technology | 一種光觸媒水面去污消波輪結構 |
-
2013
- 2013-09-24 JP JP2013197394A patent/JP2015064676A/ja active Pending
-
2014
- 2014-08-25 TW TW103129230A patent/TW201518931A/zh unknown
- 2014-08-27 US US14/469,697 patent/US10203740B2/en not_active Expired - Fee Related
- 2014-08-27 CN CN201410426402.8A patent/CN104462011A/zh not_active Withdrawn
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108139791A (zh) * | 2015-09-28 | 2018-06-08 | 高通股份有限公司 | 功率监控的cpu功率网设计 |
CN108139791B (zh) * | 2015-09-28 | 2020-07-03 | 高通股份有限公司 | 功率监控的cpu功率网设计 |
CN106814840A (zh) * | 2015-12-02 | 2017-06-09 | 飞思卡尔半导体公司 | 用于处理器的低电力状态保持模式 |
CN107391232A (zh) * | 2017-08-03 | 2017-11-24 | 致象尔微电子科技(上海)有限公司 | 一种系统级芯片soc及soc系统 |
US11508423B2 (en) | 2017-12-29 | 2022-11-22 | Huawei Technologies Co., Ltd. | Noise shielding circuit and chip |
WO2019129026A1 (zh) * | 2017-12-29 | 2019-07-04 | 华为技术有限公司 | 一种噪声屏蔽电路及芯片 |
CN110007739A (zh) * | 2017-12-29 | 2019-07-12 | 华为技术有限公司 | 一种噪声屏蔽电路及芯片 |
CN110007739B (zh) * | 2017-12-29 | 2023-09-12 | 华为技术有限公司 | 一种噪声屏蔽电路及芯片 |
CN109002159A (zh) * | 2018-06-28 | 2018-12-14 | 珠海全志科技股份有限公司 | 一种cpu的状态控制电路及方法 |
CN111026441A (zh) * | 2018-10-09 | 2020-04-17 | 卡西欧计算机株式会社 | 电子设备、信息处理方法以及存储有信息处理程序的存储介质 |
CN111026441B (zh) * | 2018-10-09 | 2023-09-29 | 卡西欧计算机株式会社 | 电子设备、信息处理方法以及存储有信息处理程序的存储介质 |
CN113360016A (zh) * | 2020-03-06 | 2021-09-07 | 北京小米移动软件有限公司 | 信息控制方法及装置、存储介质 |
CN112133251A (zh) * | 2020-10-30 | 2020-12-25 | 歌尔科技有限公司 | 穿戴设备显示控制方法以及穿戴设备 |
CN113312284A (zh) * | 2021-06-03 | 2021-08-27 | 杭州华橙软件技术有限公司 | 数据传输方法、装置、系统、存储介质及电子装置 |
Also Published As
Publication number | Publication date |
---|---|
US20150089261A1 (en) | 2015-03-26 |
TW201518931A (zh) | 2015-05-16 |
JP2015064676A (ja) | 2015-04-09 |
US10203740B2 (en) | 2019-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104462011A (zh) | 信息处理设备与半导体设备 | |
US7117377B2 (en) | Computer apparatus, power supply control method and program for reducing the standby power requirement in a computer supporting a wake-up function | |
CN104583900B (zh) | 在处理器的异质核之间动态切换工作载荷 | |
EP2513751B1 (en) | System and method for controlling central processing unit power in a virtualized system | |
EP3146408B1 (en) | System on a chip with always-on processor | |
CN102789305B (zh) | 推迟挂起 | |
CN107430424B (zh) | 针对改进的混合睡眠功率管理的技术 | |
KR101029414B1 (ko) | 프로세서 상태 천이를 검출하기 위해 제공되는 장치 및방법과 머신 액세스 가능 매체와 컴퓨팅 시스템 | |
US20140218078A1 (en) | Enhanced recovery mechanisms | |
KR101920980B1 (ko) | 멀티-운영 체제 디바이스들에 대한 액세스 격리 | |
EP2169514B1 (en) | Methods and systems to perform a computer task in a reduced power consumption state | |
CN103530064A (zh) | 存储器控制设备、半导体设备与系统板 | |
KR101813480B1 (ko) | 하드웨어 기반 디바이스간 리소스 공유 | |
KR101825561B1 (ko) | 다중 운영 체제 디바이스에 대한 동적 재할당 | |
KR20160091065A (ko) | SoC(System-on Chip), 그의 전력 관리 방법 및 전자 장치 | |
JPWO2013125160A1 (ja) | 仮想計算機制御装置、及び仮想計算機制御方法 | |
US10572667B2 (en) | Coordinating power management between virtual machines | |
US9304789B2 (en) | Virtual machine control device, virtual machine control method, computer-readable recording medium, and integrated circuit | |
US10275007B2 (en) | Performance management for a multiple-CPU platform | |
WO2009074977A1 (en) | System and method for notifying a host of a service required by a slave storage device | |
CN102141920B (zh) | 一种动态配置C-State方法和通信设备 | |
CN105468549A (zh) | 芯片装置及其电子系统 | |
CN101281416A (zh) | 确保系统关机完成的方法 | |
WO2017166207A1 (en) | Cooperative scheduling of virtual machines | |
JP2000172386A (ja) | コンピュータシステムおよびメモリ電源管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
C04 | Withdrawal of patent application after publication (patent law 2001) | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20150325 |