CN109002159A - 一种cpu的状态控制电路及方法 - Google Patents
一种cpu的状态控制电路及方法 Download PDFInfo
- Publication number
- CN109002159A CN109002159A CN201810687485.4A CN201810687485A CN109002159A CN 109002159 A CN109002159 A CN 109002159A CN 201810687485 A CN201810687485 A CN 201810687485A CN 109002159 A CN109002159 A CN 109002159A
- Authority
- CN
- China
- Prior art keywords
- cpu
- flag bit
- circuit
- register
- power
- 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.)
- Granted
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/3234—Power saving characterised by the action undertaken
- G06F1/3243—Power saving in microcontroller unit
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
- Microcomputers (AREA)
Abstract
本发明提供了一种CPU的状态控制电路及方法。其中,CPU的状态控制电路,包括寄存器和寄存器修改电路;所述寄存器存储空闲标志位;所述寄存器修改电路用于当所述空闲标志位有效时,按照设定顺序修改所述寄存器中的对应所述CPU的多个设定标志位。本状态控制电路控制CPU状态的响应速度比软件控制CPU状态的响应速度更快。
Description
技术领域
本发明涉及一种CPU的状态控制电路及方法。
背景技术
SOC系统中,功耗是系统的重要指标。为了降低功耗,在CPU低负载时会让其进入idle(空闲)状态。通常这个过程是由辅助CPU系统通过软件实现(执行一系列软件指令对寄存器中与CPU或CPU簇对应的设定标志位进行操作,CPU或CPU簇内部或SOC上的电路根据这些设定标志位执行相应地操作,从而使得CPU或CPU簇从正常工作状态进入空闲状态,或者从空闲状态回到正常工作状态),但这种方法需要软件编程,过程复杂,进入与退出idle状态的时间长,运行时使用较多的资源,效率低,且不利于系统的兼容和稳定。
例如,为了降低CPU功耗,从进出延迟和idle状态下的功耗考虑,设计三种idle级别,在这里以C0、C1、C2来描述。C0即某CPU内核(core)进入WFI(Wait for interrupt)状态,除了唤醒逻辑(是指CPU内部的与唤醒功能相关的逻辑电路或组件)外,其他部分时钟关闭,动态功耗降至最低,但漏电依然存在(CPU内核进入WFI过程:CPU判断当前自身负载是否满足进入WFI的设定条件,若满足,则执行进入WFI命令,结果是:寄存器的WFI状态位被置为有效,这个过程不需要协处理器参与);C1即某CPU内核处于power gating状态(电源门控断开),漏电消失;C2即整个CPU簇(cluster)掉电进入掉电(power off)状态。在不同的应用场景下,软件根据一定的策略选择出合适的idle级别。对延迟敏感的场景,选用低延迟,相对高功耗的C0,对延迟不敏感的场景,选用高延迟,更低功耗的C2。当然,选择的策略不仅限于考虑延迟,根据应用的不同,还会考虑功耗性能等其他要素。
发明内容
为了克服现有技术的不足,本发明提供了一种CPU的状态控制电路及方法,对CPU的状态进行控制,例如进入或退出空闲状态,从而可以使得CPU在不同状态之间切换更加迅速。
本发明提供了一种CPU的状态控制电路,包括寄存器和寄存器修改电路;所述寄存器存储空闲标志位;所述寄存器修改电路用于当所述空闲标志位有效时,按照设定顺序修改所述寄存器中的对应所述CPU的多个设定标志位。
本发明还提供了一种CPU的状态控制电路,包括寄存器和寄存器修改电路;所述寄存器存储中断标志位、CPU掉电标志位;所述寄存器修改电路用于当所述中断标志位和CPU掉电标志位都有效时,按照设定顺序修改所述寄存器中的对应所述CPU的多个设定标志位。
本发明还提供了一种CPU的状态控制方法,包括如下步骤:当所述空闲标志位有效时,所述寄存器修改电路按照设定顺序修改所述寄存器中的对应所述CPU的多个设定标志位。
本发明还提供了一种CPU的状态控制方法,包括如下步骤:当所述中断标志位和CPU掉电标志位都有效时,所述寄存器修改电路按照设定顺序修改所述寄存器中的对应所述CPU的多个设定标志位。
有益效果:
通过采用本状态控制电路以控制CPU状态,与利用软件控制CPU状态相比,可以减少资源的使用,简化流程,加快实现和响应时间,实时性好,效率高,适应不同场景的功耗管理要求。
在一些应用场景中,利用软件配置只能进入C1等级的状态,通过采用本状态控制电路,由于响应快,有机会直接进入C2等级,从而更大程度的降低功耗。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是包含本发明状态控制电路一种实施例的SOC系统示意图;
图2是本发明CPU的状态控制电路另一种实施例的示意图;
图3是本发明CPU的状态控制电路另一种实施例的示意图;
图4是本发明CPU的状态控制电路另一种实施例的示意图;
图5是本发明CPU的状态控制电路另一种实施例的示意图;
图6本发明CPU的状态控制方法一种实施例的流程图;
图7是本发明CPU的状态控制电路一种实施例的示意图;
图8本发明CPU的状态控制方法一种实施例的流程图;
图9是本发明CPU簇的状态控制电路一种实施例的示意图;
图10是本发明CPU簇的状态控制电路另一种实施例的示意图;
图11是图10状态控制电路中的时钟的时序图;
图12是本发明CPU簇的状态控制方法一种实施例的流程图;
图13是本发明CPU簇的状态控制电路另一种实施例的示意图;
图14是本发明CPU簇的状态控制方法另一种实施例的流程图。
具体实施方式
现结合附图,对本发明的较佳实施例作详细说明。
如图1所示,是本发明一种实施例的片上系统SOC,片上系统包括CPU簇(cluster)、CPU的状态控制电路(CPUIDLE)和通用中断控制器(Generic Interrupt Controller,缩写为GIC);其中,状态控制电路用于控制片上系统的CPU簇的状态,包括进入和退出空闲状态。电源管理单元(PMU)向CPU簇提供电源。通用中断控制器用于接收各种中断后,向状态控制电路转发中断信号IRQOUT,并向CPU簇转发中断信号IRQCPU。
CPU簇包括多个CPU(或者称为CPU核心(Core)),如图1所示CPU簇具有四个CPUCore0-Core3。每个CPU具有一一对应的电源门控开关(PowerSwitch),以实现对每个CPU的电源门控(power gating)。当某个电源门控开关断开时,电源管理单元向对应的CPU的供电被切断,静态消耗降至很低水平;当某个电源门控开关导通时,对应CPU的静态消耗较大。
如图2所示,是本发明CPU的状态控制电路的一种实施例,用于控制某个CPU进入第一空闲等级状态。
该CPU的状态控制电路包括寄存器和寄存器修改电路。寄存器存储了各种对应于CPU的标志位,包括空闲标志位,这里的寄存器可以是一个寄存器,也可以是多个寄存器。寄存器修改电路用于判断空闲标志位是否有效,当空闲标志位有效时,寄存器修改电路按照设定顺序修改寄存器中对应CPU的多个设定标志位。然后,CPU或SOC内的电路根据修改后的设定标志位,分别对与每个设定标志位对应的电路进行设置、触发或者控制等操作,从而完成对CPU状态的控制,这个过程是现有技术,在此不再赘述。
其中,空闲标志位包括等待中断标志位(WFI,Wait for interrupt)和/或空闲等级标志位。空闲等级标志位包括第一空闲等级标志位(C1)。
当WFI有效时表示CPU将要进入空闲状态的,当WFI无效时表示CPU不进入空闲状态。当C1有效时表示CPU将要进入第一空闲等级,当C1无效时表示CPU不进入第一空闲等级。
寄存器中对应于CPU的标志位还可以包括:外部调试通道标志位(external debugaccess),当外部调试通道标志位有效时表示外部调试通道打开,当外部调试通道标志位无效时表示外部调试通道关闭。电源钳位标志位(power clamp),当电源钳位标志位有效时表示进行电源钳位,当电源钳位标志位无效时表示关闭电源钳位。开关标志位(powerswitch),开关标志位无效时对应CPU的电源门控开关断开,开关标志位有效时对应CPU的电源门控开关导通。
如图3所示,是CPU的状态控制电路更为详细的实施例,该寄存器修改电路包括:判断电路10、外部调试通道标志位修改电路11、电源钳位标志位修改电路12、开关标志位修改电路13、空闲等级标志位修改电路14。
判断电路10用于判断空闲标志位是否有效,当空闲标志位有效时,触发外部调试通道标志位修改电路11将外部调试通道标志位修改为无效;然后触发电源钳位标志位修改电路12将电源钳位标志位修改为有效;然后触发开关标志位修改电路13将开关标志位修改为无效;然后触发空闲等级标志位修改电路14将空闲等级标志位修改为无效。
如图4所示,是CPU的状态控制电路更为具体的示意图。判断电路包括D触发器100和与门101。第一设定标志位修改电路包括D触发器102,第二设定标志位修改电路包括D触发器104。当空闲标志位有效时(高电平),在t0时刻CLK1上升沿到来时,D触发器100输出高电平,因此与门101输出高电平从而D触发器102和D触发器104的使能端EN为高电平(本D触发器高电平有效)。在t1时刻CLK2上升沿到来时,D触发器102将输出第一设定值,第一设定值被写入第一设定标志位中,从而完成了对第一设定标志位的修改。在t2时刻CLK3上升沿到来时,D触发器104将输出第二设定值,第二设定值被写入第二设定标志位中,从而完成了对第二设定标志位的修改。本领域技术人员知晓,还可以用其他逻辑器件的组合实现本CPU的状态控制电路。
如图5所示,是图4的状态控制电路的更为具体的实施例的示意图。在图4所示的状态控制电路的基础上,判断电路包括增加了D触发器105,D触发器100的D输入端与等待中断标志位的输出连接,D触发器105的D输入端与等待中断标志位的输出连接,与门101的两个输入端分别与D触发器100的输出端和D触发器105的输出端连接。当等待中断标志位和空闲等级标志位都为高电平(有效)时,在t0时刻CLK1上升沿到来时,D触发器100和D触发器105都输出高电平,从而与门101输出高电平,因此D触发器102和D触发器104的使能端EN均为高电平。在t1时刻CLK2上升沿到来时,D触发器102输出第一设定值,第一设定值被写入寄存器103的第一设定标志位。在t2时刻CLK3上升沿到来时,D触发器104输出第二设定值,第二设定值被写入寄存器103的第二设定标志位。
如图6所示,是使用图3的状态控制电路的控制方法的流程,具体而言是CPU从正常工作状态进入第一空闲等级的状态的控制方法。
步骤S100,CPU执行单个CPU进入空闲状态之前的设定软件指令,即执行软件关核流程,例如,清除L1缓存中缓存的数据;将CPU从对称多处理模式(SymmetricMultiprocessing Mode,SMP)切换到非对称多处理模式(Asymmetric MultiprocessingMode,AMP)等,现有技术中对此已有详细描述,在此不再赘述。
步骤S101,CPU通过执行软件指令的方式将寄存器的第一空闲等级标志位(C1)和等待中断标志位都置为有效,现有技术中对此已有详细描述,在此不再赘述。
步骤S102,判断电路判断第一空闲等级标志位和等待中断标志位是否都有效,若有效,则依次执行以下步骤,依次对以下寄存器中对应CPU的多个设定标志位进行修改。
步骤S103,外部调试通道标志位修改电路将外部调试通道标志位修改为无效(Prevent external debug access)(之后,CPU或SOC内的电路根据外部调试通道标志位对外部调试通道进行设置、触发或者控制等操作,从而使得外部调试通道失效)。
步骤S104,电源钳位标志位修改电路将电源钳位标志位修改为有效(Enablepower clamp)(之后,CPU或SOC内的电路根据电源钳位标志位对CPU的相关信号输出端(例如引脚)进行设置、触发或者控制等操作,从而使得对应信号输出端的电位钳位)。
步骤S105,开关标志位修改电路将开关标志位修改为无效(Close powerswitch)。(之后,CPU或SOC内的电路根据开关标志位对CPU的电源门控进行关断操作,从而使得该CPU掉电。)
步骤S106,第一空闲等级标志位修改电路将第一空闲等级标志位修改为无效(Disable C1),以防止触发CPU的状态控制电路重新开始执行上述步骤S102。
如图7所示,是CPU的状态控制电路的另一种实施例,用于控制某个CPU从第一空闲等级状态恢复到正常工作状态。
状态控制电路包括寄存器、寄存器修改电路;寄存器存储中断标志位、CPU掉电标志位;寄存器修改电路用于判断中断标志位和CPU掉电标志位是否都有效,当中断标志位和CPU掉电标志位都有效时,按照设定顺序修改寄存器中对应CPU的多个设定标志位。然后,CPU或SOC内的电路根据修改后的设定标志位,分别对与每个设定标志位对应的电路进行设置、触发或者控制等操作,从而完成对CPU状态的控制,这个过程是现有技术,在此不再赘述。
中断标志位有效表示CPU接收到中断信号,无效则表示CPU没有接收到中断信号;CPU掉电标志位无效对应CPU没有掉电(电源门控开关导通),有效则对应CPU掉电(电源门控开关断开)。CPU掉电标志位可以是一个标志位或者多个标志位,例如是以下标志位的一个或者几个:电源钳位标志位、外部调试通道标志位(0表示CPU掉电),或者专门的CPU掉电标志位,例如在上述实施例的步骤S106之后,将该CPU掉电标志位修改为有效。
寄存器修改电路包括:判断电路20、第一CPU复位标志位修改电路21、第一CPU电源复位标志位修改电路22、开关标志位修改电路23、电源钳位标志位修改电路24、第二CPU电源复位标志位修改电路25、第二CPU复位标志位修改电路26、外部调试通道标志位修改电路27。
第一CPU复位标志位修改电路21用于当中断标志位和CPU掉电标志位都有效时,将CPU复位标志位修改为无效;
第一CPU电源复位标志位修改电路22用于在CPU复位标志位被修改为无效后,将CPU电源复位标志位修改为无效;
开关标志位修改电路23用于在CPU电源复位标志位被修改为无效后,将开关标志位修改为有效;
电源钳位标志位修改电路24用于在开关标志位被修改为有效后,将电源钳位标志位修改为无效;
第二CPU电源复位标志位修改电路25用于在电源钳位标志位被修改为无效后,将CPU电源复位标志位修改为有效;
第二CPU复位标志位修改电路26用于在CPU电源复位标志位被修改为有效后,将CPU复位标志位修改为有效;
外部调试通道标志位修改电路27用于在CPU复位标志位被修改为有效后,将外部调试通道标志位修改为有效。
本CPU的状态控制电路更为具体的示意图可以采用与图5类似的框图,例如,将D触发器100的输入替换为中断标志位,将D触发器105的输入替换为CPU掉电标志位,即可以实现当中断标志位和CPU掉电标志位有效时,按照设定顺序修改寄存器中的多个设定标志位。
如图8所示,是状态控制电路的控制方法的一种实施例,具体而言是进入第一空闲等级的状态后的CPU恢复到工作正常状态的控制方法,包括如下步骤。
S300,判断电路判断中断标志位和CPU掉电标志位是否都有效,若是则执行步骤S301。
S301,第一CPU复位标志位修改电路将CPU复位标志位修改为无效(Assert CoreReset Low)。
S302,第一CPU电源复位标志位修改电路将CPU电源复位标志位修改为无效(Assert Core Power on Reset Low)。
S303,开关标志位修改电路将开关标志位修改为有效(Open power switch)。
S304,电源钳位标志位修改电路将电源钳位标志位修改为无效(Release powerclamp)。
S305,第二CPU电源复位标志位修改电路将CPU电源复位标志位修改为有效(Deassert Core Power on Reset High)。
S306,第二CPU复位标志位修改电路将CPU复位标志位修改为有效(Deassert CoreReset Low)。
S307,外部调试通道标志位修改电路将外部调试通道标志位修改为有效(Allowexternal debug access)。
如图9所示,是CPU簇的状态控制电路的一种实施例的示意图,用于控制CPU簇从正常工作状态进入第二空闲等级状态。其中,第二空闲等级状态是比第一空闲等级状态更加高等级的空闲状态,意味着SOC系统的能耗更小。
CPU簇的状态控制电路包括寄存器、寄存器修改电路;寄存器存储空闲标志位;寄存器修改电路用于判断CPU簇的所有CPU对应的空闲标志位是否都有效,当CPU簇的所有CPU对应的空闲标志位都有效时,按照设定顺序修改寄存器中的多个设定标志位。
其中,空闲标志位包括等待中断标志位(WFI,Wait for interrupt)和/或第二空闲等级标志位(C2)。
当某个WFI有效时表示CPU簇中对应的CPU将要进入空闲状态的,当WFI无效时表示该CPU不进入空闲状态。当C2有效时表示CPU簇中对应的CPU将要进入第二空闲等级,当C2无效时表示该CPU不进入第二空闲等级。
上述寄存器中的标志位包括了对应CPU的标志位以及对应CPU簇的标志位,对应CPU的标志位用于表示某个CPU的状态,而对应CPU簇的标志位则表示着整个CPU簇的状态,或者多个CPU共用电路的状态。CPU的标志位除了前述标志位以外还包括:CPU复位标志位(Core Reset Low),CPU复位标志位有效时表示CPU进行复位,CPU复位标志位无效时表示CPU没有进行复位;CPU复位是指CPU内的主要逻辑电路进行初始化。CPU电源复位标志位(Core Power on Reset Low),CPU电源复位标志位有效时表示CPU的电源进行复位,CPU电源复位标志位无效时表示CPU的电源没有进行复位。
CPU簇的标志位包括:监控界面标志位(Snoop interface inactive)(或者称为AXI接口标志位),监控界面标志位有效时表示监控界面有效,无效时表示监控界面无效,AXI接口空闲,不再接收任何请求。CPU簇复位标志位(Cluster reset Low),CPU簇复位标志位有效时表示CPU簇进行复位,CPU簇复位标志位无效时表示CPU簇没有进行复位。CPU簇电源复位标志位(Cluster power reset Low),CPU簇电源复位标志位有效时表示CPU簇的电源进行复位,CPU簇电源复位标志位无效时表示CPU簇的电源没有进行复位。二级缓存标志位(STANDBYWFIL2),当二级缓存标志位有效时表示L2存储系统为空闲,当二级缓存标志位无效时表示L2存储系统为非空闲或者忙状态。CPU簇电源钳位标志位(cluster powerclamp),当CPU簇电源钳位标志位有效时表示CPU簇接口信号将被钳制到固定的值,当CPU簇电源钳位标志位无效时表示不对CPU簇接口信号进行钳位。
CPU簇状态控制电路包括:多个分别与CPU簇中每个CPU对应的第一CPU标志位修改电路31、监控界面标志位修改电路32、多个分别与CPU簇中每个CPU对应的第二CPU标志位修改电路33、CPU簇复位标志位修改电路34、CPU簇电源钳位标志位修改电路35、命令生成电路36。
其中,第一CPU标志位修改电路31包括:外部调试通道标志位修改电路、电源钳位标志位修改电路、开关标志位修改电路、空闲等级标志位修改电路。外部调试通道标志位修改电路用于当CPU簇的所有CPU对应的空闲标志位都有效时,将对应CPU的外部调试通道标志位修改为无效;电源钳位标志位修改电路用于在外部调试通道标志位被修改为无效后,将对应CPU的电源钳位标志位修改为有效;开关标志位修改电路用于在电源钳位标志位被修改为有效后,将对应CPU的开关标志位修改为无效;空闲等级标志位修改电路用于在开关标志位被修改为无效后,将对应CPU的空闲等级标志位修改为无效。
监控界面标志位修改电路32用于在CPU簇的所有CPU的空闲等级标志位被修改为无效后,将监控界面标志位修改为无效。
第二CPU标志位修改电路33包括:CPU复位标志位修改电路和CPU电源复位标志位修改电路;CPU复位标志位修改电路用于在监控界面标志位被修改为无效后,判断二级缓存标志位是否有效,若是则将CPU复位标志位修改为无效;CPU电源复位标志位修改电路用于在CPU复位标志位被修改为无效后,将CPU电源复位标志位修改为无效。
CPU簇复位标志位修改电路34用于在CPU簇的所有CPU的CPU电源复位标志位被修改为无效后,将CPU簇复位标志位修改为无效。
CPU簇电源钳位标志位修改电路35用于在CPU簇复位标志位被修改为无效后,将CPU簇电源钳位标志位修改为有效。
命令生成电路36用于在CPU簇电源钳位标志位被修改为有效后,向电源管理单元发送停止对CPU簇供电的命令。
如图10所示,是CPU簇状态控制电路的更为具体的实施例。图11是图10的时钟信号的时序图。
寄存器修改电路包括:D触发器200、202、206、207、211、215,与门201、203、208、212、以及D触发器204、209、213。D触发器200的输入端连接第一CPU的第二空闲等级标志位C2(第一C2),D触发器206的输入端连接第二CPU的第二空闲等级标志位C2(第二C2)。D触发器202的D输入端连接第一CPU对应的第一WFI(等待中断标志位),D触发器207的D输入端连接第二WFI。D触发器211的D输入端连接共用缓存标志。D触发器204、209、213的D输入端连接设定值。
若第一C2和第二C2有效(高电平),在t0时刻CLK1的上升沿到来时,与门201对第一C2和第二C2进行与运算后输出高电平,D触发器202、207和211的使能端EN被使能。在t1时刻CLK2的上升沿到来时,D触发器202输出第一WFI,与门203经过与运算后输出第一WFI。若第一WFI有效,D触发器204的使能端EN被使能,在t2时刻CLK3上升沿到来时,输出设定值,从而对寄存器205的设定标志位进行修改,例如,完成了对第一CPU的设定标志位进行了修改。同理,CLK3上升沿到来时寄存器210的设定标志位被修改,例如,完成了对第二CPU的设定标志位的修改。在t3时刻CLK4的上升沿到来时,D触发器211输出共用缓存标志,与门212进行与运算后输出共用缓存标志。若共用缓存标志有效,D触发器213和215的使能端EN被使能,在t4时刻CLK5的上升沿到来时,寄存器214的设定标志位被修改,例如,完成对监控界面标志位的修改。在t5时刻CLK6的上升沿到来时,命令生成电路216被使能,(通过RSB接口、TWI或IIC等接口)向电源管理单元217发送停止对CPU簇供电的命令。电源管理单元217关闭供给CPU簇的VDD_CPU的DCDC电源,实现CPU簇的掉电。
如图12所示,是CPU簇的状态控制电路的控制方法的一种实施例,具体而言是进入第二空闲等级的状态的控制方法,包括如下步骤。
步骤S200,CPU执行CPU簇进入空闲状态之前的设定软件指令,即执行软件关核流程,例如,清除L1和L2缓存中缓存的数据;将CPU从对称多处理模式(SymmetricMultiprocessing Mode,SMP)切换到非对称多处理模式(Asymmetric MultiprocessingMode,AMP)等,现有技术中对此已有详细描述,在此不再赘述。
步骤S201,CPU通过执行软件指令的方式将寄存器的第二空闲等级标志位(C2)和并使CPU簇内相应的CPU的等待中断标志位都置为有效,现有技术中对此已有详细描述,在此不再赘述。
步骤S202,判断电路判断CPU簇的所有的第二空闲等级标志位是否有效,若是,则依次执行以下步骤。
步骤S203,每个第一CPU标志位修改电路针对对应的CPU的CPU标志位进行修改,针对CPU簇内的每个CPU,都执行上述实施例中的步骤S102-S106,所不同的是,在步骤S106中,将第二空闲等级标志位修改为无效。而针对每个CPU执行步骤S102的时候,可以只判断等待中断标志位是否有效,有效则执行步骤S103。
步骤S204,监控界面标志位修改电路将监控界面标志位修改为无效(ConfigureSnoop interface inactive)。
步骤S205,判断电路判断共用缓存标志位是否有效,若有效,则执行以下步骤。
步骤S206,针对CPU簇内的每个CPU,第二CPU标志位修改电路都依次执行步骤:
将CPU复位标志位修改为无效(Assert Core Reset Low);
将CPU电源复位标志位修改为无效(Assert Core Power on Reset Low)。
步骤S207,将CPU簇复位标志位修改为无效(Assert Cluster reset low)。
步骤S208,将CPU簇电源钳位标志位修改为无效(Enable cluster power clamp)。
步骤S209,命令生成电路向电源管理单元发送停止对CPU簇供电的命令。
如图13所示,是CPU簇的状态控制电路的一种实施例,用于控制CPU簇从第二空闲等级状态恢复到正常工作状态。
CPU簇的状态控制电路包括寄存器、寄存器修改电路、命令生成电路41;寄存器存储CPU簇掉电标志位和中断标志位;命令生成电路41用于判断CPU簇掉电标志位和中断标志位是否都有效,当CPU簇掉电标志位和中断标志位都有效时,向电源管理单元发送对CPU簇供电的命令;寄存器修改电路用于在向电源管理单元发送对CPU簇供电的命令后,按照设定顺序修改寄存器中的多个设定标志位。
CPU簇掉电标志位可以是一个标志位或者多个标志位,例如是以下标志位的一个或者几个:CPU簇电源钳位标志位、外部调试通道标志位(0表示CPU簇掉电),或者专门的CPU簇掉电标志位,例如在上述实施例的步骤S209之后,将该CPU簇掉电标志位修改为有效。
寄存器修改电路包括:CPU簇电源钳位标志位修改电路42、监控界面标志位修改电路43、多个分别与CPU簇的每个CPU对应的CPU标志位修改电路、
CPU簇电源钳位标志位修改电路42用于在向电源管理单元发送对CPU簇供电的命令之后,将CPU簇电源钳位标志位修改为无效。
监控界面标志位修改电路43用于在CPU簇电源钳位标志位被修改为无效后,将监控界面标志位修改为有效。
CPU标志位修改电路用于在监控界面标志位被修改为有效后,对于CPU簇中的每个CPU,按照设定顺序修改该CPU在寄存器中的多个设定标志位。CPU标志位修改电路包括:第一CPU复位标志位修改电路、第一CPU电源复位标志位修改电路、开关标志位修改电路、电源钳位标志位修改电路、第二CPU电源复位标志位修改电路、第二CPU复位标志位修改电路、外部调试通道标志位修改电路;第一CPU复位标志位修改电路用于当监控界面标志位被修改为有效后时,将CPU复位标志位修改为无效;第一CPU电源复位标志位修改电路用于在CPU复位标志位被修改为无效后,将CPU电源复位标志位修改为无效;开关标志位修改电路用于在CPU电源复位标志位被修改为无效后,将开关标志位修改为有效;电源钳位标志位修改电路用于在开关标志位被修改为有效后,将电源钳位标志位修改为无效;第二CPU电源复位标志位修改电路用于在电源钳位标志位被修改为无效后,将CPU电源复位标志位修改为有效;第二CPU复位标志位修改电路用于在CPU电源复位标志位被修改为有效后,将CPU复位标志位修改为有效;外部调试通道标志位修改电路用于在CPU复位标志位被修改为有效后,将外部调试通道标志位修改为有效。
本实施例的CPU簇的状态控制电路的更为具体的方案可以采用与图10类似的框图实现,例如,将D触发器200的输入替换为中断标志位,将D触发器206的输入替换为CPU簇掉电标志位,并且需要保证CLK4、CLK6的上升沿早于CLK2、CLK5等。
如图14所示,是状态控制电路的控制方法的一种实施例,具体而言是进入第二空闲等级的状态后的CPU簇恢复到工作正常状态的控制方法,包括如下步骤。
S400,命令生成电路的判断电路判断中断标志位和CPU簇掉电标志位是否有效,若是则执行步骤S401。
S401,命令生成电路向电源管理单元发送命令,以命令电源管理单元向CPU簇供电。将CPU复位标志位修改为无效(Assert Core Reset Low)。
S402,CPU簇电源钳位标志位修改电路将CPU簇电源钳位标志位修改为无效(Release cluster power clamp)。
S403,CPU簇复位标志位修改电路将CPU簇复位标志位修改为有效(Deassertcluster reset High)。
S404,监控界面标志位修改电路将监控界面标志位修改为有效(Configure snoopinterface active)。
S405,执行上述实施例中的步骤S300-S307,或者S301-S307。
如图1所示,SOC系统还可以保留辅助CPU(例如采用ARM Cortex-M4),从而在使用本SOC系统时,即可以选择通过辅助CPU来实现CPU状态的控制,也可以选择通过状态控制电路来实现CPU状态的控制。例如,当选择通过软件实现CPU状态的控制时,通过使状态控制电路的一使能端无效来实现。
应当理解的是,以上实施例仅用以说明本发明的技术方案,而非对其限制,对本领域技术人员来说,可以对上述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而所有这些修改和替换,都应属于本发明所附权利要求的保护范围。
Claims (21)
1.一种CPU的状态控制电路,其特征是,包括寄存器和寄存器修改电路;
所述寄存器存储空闲标志位;
所述寄存器修改电路用于当所述空闲标志位有效时,按照设定顺序修改所述寄存器中的对应所述CPU的多个设定标志位。
2.如权利要求1所述的状态控制电路,其特征是,
所述多个设定标志位包括外部调试通道标志位;
所述寄存器修改电路包括外部调试通道标志位修改电路;
所述外部调试通道标志位修改电路用于当所述空闲标志位有效时,将所述外部调试通道标志位修改为无效。
3.如权利要求2所述的状态控制电路,其特征是,
所述多个设定标志位还包括电源钳位标志位;
所述寄存器修改电路还包括电源钳位标志位修改电路;
所述电源钳位标志位修改电路用于在所述外部调试通道标志位被修改为无效后,将所述电源钳位标志位修改为有效。
4.如权利要求3所述的状态控制电路,其特征是,
所述多个所述设定标志位还包括开关标志位;
所述寄存器修改电路还包括开关标志位修改电路;
所述开关标志位修改电路用于在所述电源钳位标志位被修改为有效后,将所述开关标志位修改为无效。
5.如权利要求4所述的状态控制电路,其特征是,
所述多个所述设定标志位还包括空闲等级标志位;
所述寄存器修改电路还包括空闲等级标志位修改电路;
所述空闲等级标志位修改电路用于在所述开关标志位被修改为无效后,将所述空闲等级标志位修改为无效。
6.一种CPU的状态控制电路,其特征是,
包括寄存器和寄存器修改电路;
所述寄存器存储中断标志位、CPU掉电标志位;
所述寄存器修改电路用于当所述中断标志位和CPU掉电标志位都有效时,按照设定顺序修改所述寄存器中的对应所述CPU的多个设定标志位。
7.如权利要求6所述的状态控制电路,其特征是,
所述多个设定标志位包括CPU复位标志位;
所述寄存器修改电路包括第一CPU复位标志位修改电路;
所述第一CPU复位标志位修改电路用于当所述中断标志位和CPU掉电标志位都有效时,将所述CPU复位标志位修改为无效。
8.如权利要求7所述的状态控制电路,其特征是,
所述多个设定标志位还包括CPU电源复位标志位;
所述寄存器修改电路还包括第一CPU电源复位标志位修改电路;
所述第一CPU电源复位标志位修改电路用于在所述CPU复位标志位被修改为无效后,将所述CPU电源复位标志位修改为无效。
9.如权利要求8所述的状态控制电路,其特征是,
所述多个设定标志位还包括开关标志位;
所述寄存器修改电路还包括开关标志位修改电路;
所述开关标志位修改电路用于在所述CPU电源复位标志位被修改为无效后,将所述开关标志位修改为有效。
10.如权利要求9所述的状态控制电路,其特征是,
所述多个设定标志位还包括电源钳位标志位;
所述寄存器修改电路还包括电源钳位标志位修改电路;
所述电源钳位标志位修改电路用于在所述开关标志位被修改为有效后,将所述电源钳位标志位修改为无效。
11.如权利要求10所述的状态控制电路,其特征是,
所述寄存器修改电路还包括第二CPU电源复位标志位修改电路;
所述第二CPU电源复位标志位修改电路用于在所述电源钳位标志位被修改为无效后,将所述CPU电源复位标志位修改为有效。
12.如权利要求11所述的状态控制电路,其特征是,
所述寄存器修改电路还包括第二CPU复位标志位修改电路;
所述第二CPU复位标志位修改电路用于在所述CPU电源复位标志位被修改为有效后,将所述CPU复位标志位修改为有效。
13.如权利要求12所述的状态控制电路,其特征是,
所述多个设定标志位还包括外部调试通道标志位;
所述寄存器修改电路还包括外部调试通道标志位修改电路;
所述外部调试通道标志位修改电路用于在所述CPU复位标志位被修改为有效后,将外部调试通道标志位修改为有效。
14.一种CPU状态控制方法,其特征是,包括如下步骤:
当所述空闲标志位有效时,所述寄存器修改电路按照设定顺序修改所述寄存器中的对应所述CPU的多个设定标志位。
15.如权利要求14所述的控制方法,其特征是,所述多个所述设定标志位包括外部调试通道标志位、电源钳位标志位、开关标志位及空闲等级标志位。
16.如权利要求15所述的控制方法,其特征是,所述寄存器修改电路包括外部调试通道标志位修改电路、电源钳位标志位修改电路、开关标志位修改电路及空闲等级标志位修改电路。
17.如权利要求16所述的控制方法,其特征是,所述寄存器修改电路按照设定顺序修改所述寄存器中的对应所述CPU的多个设定标志位的步骤包括:
在所述空闲标志位有效时,所述外部调试通道标志位修改电路将所述外部调试通道标志位修改为无效;
在所述外部调试通道标志位被修改为无效后,所述电源钳位标志位修改电路将所述电源钳位标志位修改为有效;
在所述电源钳位标志位被修改为有效后,所述开关标志位修改电路将所述开关标志位修改为无效;
在所述开关标志位被修改为无效之后,将所述空闲等级标志位修改为无效。
18.一种CPU的状态控制方法,其特征是,包括如下步骤:
当所述中断标志位和CPU掉电标志位都有效时,所述寄存器修改电路按照设定顺序修改所述寄存器中的对应所述CPU的多个设定标志位。
19.如权利要求18所述的控制方法,其特征是,
所述多个所述设定标志位包括:CPU复位标志位、CPU电源复位标志位、开关标志位、电源钳位标志位、外部调试通道标志位。
20.如权利要求19所述的控制方法,其特征是,
所述寄存器修改电路包括:
第一CPU复位标志位修改电路、第一CPU电源复位标志位修改电路、开关标志位修改电路、电源钳位标志位修改电路、第二CPU电源复位标志位修改电路、第二CPU复位标志位修改电路及外部调试通道标志位修改电路。
21.如权利要求20所述的控制方法,其特征是,
当所述中断标志位和CPU掉电标志位有效时,所述第一CPU复位标志位修改电路将所述CPU复位标志位修改为无效;
在所述CPU复位标志位被修改为无效后,所述第一CPU电源复位标志位修改电路将所述CPU电源复位标志位修改为无效;
在所述CPU电源复位标志位被修改为无效后,所述开关标志位修改电路将所述开关标志位修改为有效;
在所述开关标志位被修改为有效后,所述电源钳位标志位修改电路将所述电源钳位标志位修改为无效;
在所述电源钳位标志位被修改为无效后,所述第二CPU电源复位标志位修改电路将所述CPU电源复位标志位修改为有效;
在所述CPU电源复位标志位被修改为有效后,所述第二CPU复位标志位修改电路将所述CPU复位标志位修改为有效;
在所述CPU复位标志位被修改为有效后,所述外部调试通道标志位修改电路将所述外部调试通道标志位修改为有效。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810687485.4A CN109002159B (zh) | 2018-06-28 | 2018-06-28 | 一种cpu的状态控制电路及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810687485.4A CN109002159B (zh) | 2018-06-28 | 2018-06-28 | 一种cpu的状态控制电路及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109002159A true CN109002159A (zh) | 2018-12-14 |
CN109002159B CN109002159B (zh) | 2020-12-25 |
Family
ID=64601067
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810687485.4A Active CN109002159B (zh) | 2018-06-28 | 2018-06-28 | 一种cpu的状态控制电路及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109002159B (zh) |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040139356A1 (en) * | 2003-01-10 | 2004-07-15 | Kenneth Ma | Method and apparatus for improving bus master performance |
CN1573657A (zh) * | 2003-06-09 | 2005-02-02 | Lg电子株式会社 | 计算机系统中用于管理电源的装置和方法 |
CN101122851A (zh) * | 2007-09-12 | 2008-02-13 | 华为技术有限公司 | 一种数据处理方法及处理器 |
US20080068238A1 (en) * | 2006-09-14 | 2008-03-20 | Texas Instruments Incorporated | Entry/Exit Control To/From a Low Power State in a CPU with an Unprotected Pipeline |
US20100218015A1 (en) * | 2009-02-26 | 2010-08-26 | Yarak Dennis A | Power management independent of cpu hardware support |
CN102073517A (zh) * | 2009-11-23 | 2011-05-25 | 中兴通讯股份有限公司 | 一种嵌入式系统的升级、备份方法和装置 |
CN102662452A (zh) * | 2012-03-30 | 2012-09-12 | 中兴通讯股份有限公司 | 一种控制i2c主器件复位的方法、装置及系统 |
CN202443462U (zh) * | 2012-02-13 | 2012-09-19 | 山东华芯半导体有限公司 | 辅助上位机检索页映射单元块中空闲块的装置 |
CN103116484A (zh) * | 2012-12-31 | 2013-05-22 | 华为技术有限公司 | 指令处理方法及设备 |
CN104008078A (zh) * | 2014-05-27 | 2014-08-27 | 安徽中兴继远信息技术股份有限公司 | 一种基于fpga的数据传输板之间进行高速传输的方法 |
CN104462011A (zh) * | 2013-09-24 | 2015-03-25 | 株式会社东芝 | 信息处理设备与半导体设备 |
CN104781756A (zh) * | 2012-12-21 | 2015-07-15 | 英特尔公司 | 管理处理器的功率状态 |
CN105183533A (zh) * | 2014-05-26 | 2015-12-23 | 华为技术有限公司 | 一种总线虚拟化的方法、装置及系统 |
-
2018
- 2018-06-28 CN CN201810687485.4A patent/CN109002159B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040139356A1 (en) * | 2003-01-10 | 2004-07-15 | Kenneth Ma | Method and apparatus for improving bus master performance |
CN1573657A (zh) * | 2003-06-09 | 2005-02-02 | Lg电子株式会社 | 计算机系统中用于管理电源的装置和方法 |
US20080068238A1 (en) * | 2006-09-14 | 2008-03-20 | Texas Instruments Incorporated | Entry/Exit Control To/From a Low Power State in a CPU with an Unprotected Pipeline |
CN101122851A (zh) * | 2007-09-12 | 2008-02-13 | 华为技术有限公司 | 一种数据处理方法及处理器 |
US20100218015A1 (en) * | 2009-02-26 | 2010-08-26 | Yarak Dennis A | Power management independent of cpu hardware support |
CN102073517A (zh) * | 2009-11-23 | 2011-05-25 | 中兴通讯股份有限公司 | 一种嵌入式系统的升级、备份方法和装置 |
CN202443462U (zh) * | 2012-02-13 | 2012-09-19 | 山东华芯半导体有限公司 | 辅助上位机检索页映射单元块中空闲块的装置 |
CN102662452A (zh) * | 2012-03-30 | 2012-09-12 | 中兴通讯股份有限公司 | 一种控制i2c主器件复位的方法、装置及系统 |
CN104781756A (zh) * | 2012-12-21 | 2015-07-15 | 英特尔公司 | 管理处理器的功率状态 |
CN103116484A (zh) * | 2012-12-31 | 2013-05-22 | 华为技术有限公司 | 指令处理方法及设备 |
CN104462011A (zh) * | 2013-09-24 | 2015-03-25 | 株式会社东芝 | 信息处理设备与半导体设备 |
CN105183533A (zh) * | 2014-05-26 | 2015-12-23 | 华为技术有限公司 | 一种总线虚拟化的方法、装置及系统 |
CN104008078A (zh) * | 2014-05-27 | 2014-08-27 | 安徽中兴继远信息技术股份有限公司 | 一种基于fpga的数据传输板之间进行高速传输的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109002159B (zh) | 2020-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8868941B2 (en) | Apparatus and methods for an interconnect power manager | |
TWI622874B (zh) | 省電處理器架構 | |
US6308279B1 (en) | Method and apparatus for power mode transition in a multi-thread processor | |
RU2308754C2 (ru) | Способ и устройство для приостановки исполнения потока до момента осуществления определенного доступа к памяти | |
CN105843362B (zh) | 用于异构多核心系统的动态核心选择 | |
CN103365627B (zh) | 执行单元内的数据转发系统和方法 | |
US8607177B2 (en) | Netlist cell identification and classification to reduce power consumption | |
CN106681472B (zh) | 异构多核处理器功耗控制装置及其功耗控制方法 | |
TW201211755A (en) | System and method for power optimization | |
CN102495756A (zh) | 操作系统在不同的中央处理器之间切换的方法及系统 | |
CN101853067B (zh) | 减少装置功率消耗的方法及具有嵌入式存储器模块的装置 | |
CN103440216A (zh) | 一种通过i2c从设备调试mcu的芯片及方法 | |
CN103477561B (zh) | 可配置逻辑单元 | |
KR20160146911A (ko) | 고속 재개를 이용하는 시스템 대기 에뮬레이션 | |
CN101206614A (zh) | 仿真特殊功能寄存器的仿真器 | |
JP4202754B2 (ja) | バス結合された回路ブロックのための電力管理の方法及び構成 | |
CN106372029A (zh) | 一种基于中断的点对点片内通信模块 | |
CN107783726B (zh) | 存储系统和存储系统中传输信号的方法 | |
WO2022063255A1 (zh) | 芯片系统 | |
CN101769988A (zh) | 芯片调试方法、系统和调试模块 | |
CN202494949U (zh) | 一种基于总线从单元接口的时钟管理模块 | |
CN109002159A (zh) | 一种cpu的状态控制电路及方法 | |
CN110399328A (zh) | 一种板载图形处理器控制方法与装置 | |
CN109062394A (zh) | 一种cpu簇的状态控制电路及方法 | |
CN116757132A (zh) | 异构多核fpga电路架构、构建方法及数据传输方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |