降低动态功耗的方法和电子设备的制作方法

文档序号:6359129阅读:202来源:国知局
专利名称:降低动态功耗的方法和电子设备的制作方法
技术领域
本发明涉及一种芯片内设备模块的节能技术,尤其涉及一种降低动态功耗的方法和电子设备。
背景技术
随着无线芯片的应用和发展,降低芯片功耗也成为当前越来越迫切的要求。其中,芯片的功耗包括静态功耗和动态功耗。例如,基于AMBA2.0 AHB的总线架构包括总线(AHB Local Bus)、主设备模块和从设备模块三部分。主设备模块和从设备模块可为IP核、芯片、或功能模块等设备,都连接到 AMBA总线上。主设备模块和从设备模块的动态功耗能否节省取决于能否在不工作时使这些设备的内部逻辑电路都停止工作。一种降低主从设备功耗的方法在系统设计时,在系统控制设计中加入时钟门控的模块,来控制系统中连接的设备的工作参考时钟;或者系统中的设备内部带有时钟门控等节省功耗的功能。在系统工作过程中,通过软件检测判断相应的设备是否可以进入节省功耗的状态;如果在某时刻相应的设备可以进入节省功耗的状态,则由软件配置相应设备对应的节省功耗的寄存器,使得该相应设备进入节省动态功耗状态。这种降低动态功耗的方法由软件实施检测和配置进入节省功耗状态,不仅给软件运行带来额外开销,而且通过软件控制进入节省功耗状态,实时性差,节省功耗效果不够好。另外,该方法对设备本身或者系统设计有限制和依赖,即该设备必须自身带有节省功耗的功能,对于某些设备本身不具备节省功耗的功能,则只能通过总线系统控制其关闭工作时钟来实现。另一种降低主从设备功耗的方法在芯片或可编程器件设计实现过程中,通过综合工具根据逻辑功能自动插入门控单元,这些被插入的门控单元的信号驱动的模块在芯片或可编程器件的工作中,就会由门控单元控制电路打开或者关闭,以达到降低功耗的目的。这种降低动态功耗的方法通过综合工具根据逻辑功能自动出入门控单元,在实际实现过程中,只能对芯片或可编程器件中的小部分电路进行优化门控,没有办法针对大的逻辑电路进行优化门控,因此整体门控效果不明显,功耗节省收益也不明显。

发明内容
本发明实施例提出一种降低动态功耗的方法和电子设备,以通过硬件的方式降低芯片内设备模块的动态功耗,提高动态功耗节省的实时性及效果。本发明实施例提供了一种降低动态功耗的方法,用于降低从设备的动态功耗,其中,包括接收总线信号;当所述总线信号中存在对所述从设备的访问信息时,向所述从设备输入时钟信号,并检测所述从设备发送的状态信号;
当所述从设备的状态信号显示所述从设备处于空闲状态时,停止向所述从设备输入时钟信号。本发明实施例还提供了一种电子设备,包括从设备,用于通过总线接收和处理其他设备发送的访问信息,其中,所述电子设备还包括检测模块,用于检测总线信号以及所述从设备的状态信号;时钟模块,用于当所述检测电路检测到所述总线信号中存在对所述从设备的访问信息时,向所述从设备输入时钟信号,以及当所述检测电路检测到所述从设备的状态信号显示所述从设备处于空闲状态时,停止向所述从设备输入时钟信号。本发明实施例提供的用于降低动态功耗的方法和电子设备,通过检测总线信号及从设备的状态信号来控制芯片内设备模块的工作时钟,避免了从设备即芯片内设备模块在非工作状态下发生不必要的电路翻转,达到了降低芯片内设备模块的动态功耗的目的。并且,根据检测总线信号及从设备的状态信号的结果为从设备输入或者停止输入时钟信号, 避免了现有技术由软件实施检测和配置进入节省功耗状态给软件运行带来的额外负担,以及通过软件控制进入节省功耗状态带来的实时性及节省功耗效果差的问题。


为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例提供的降低动态功耗的方法的流程图;图2为本发明实施例提供的降低动态功耗的方法中Smart_gt电路的一种连接示意图;图3为基于AMBA2. 0 AHB总线架构的应用场景示意图;图4为本发明实施例提供的降低动态功耗的方法中Smart_gt电路的另一种连接示意图;图5为本发明实施例提供的降低动态功耗的方法中Smart_gt电路的再一种连接示意图;图6为本发明实施例提供的降低动态功耗的方法中Smart_gt电路的又一种连接示意图;图7本发明实施例提供的降低动态功耗的方法中Smart_gt电路的工作时序关系图;图8为本发明实施例提供的电子设备的结构示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的降低动态功耗的方法的流程图。如图1所示,降低动态功耗的方法包括步骤11、接收总线信号。其中总线信号(bus-signal)是多个总线信号组合的统称,可包括AMBA2. 0总线的 HADDR[31:0]和HTRANS [1],使用HADDR[31:0]和HTRANS [1]信号的状态来判断系统中是否有主设备需要访问从设备(slave),如果系统中有主设备需要访问从设备,则为从设备提供时钟信号。由于系统中从设备slavel的地址是唯一的,所以当总线地址HADDR[31 0]的值等于某一从设备的地址,而且同时HTRANS[1] = l’bl,就表示系统中有主设备需要访问该从设备。此方法在其他总线中也适用,通过判断总线地址等于从设备,且同时总线访问为有效操作,以作为系统中主设备访问从设备的标志,将此标志作为为该从设备输入时钟信号的条件。步骤12、当所述总线信号中存在对所述从设备的访问信息时,向所述从设备输入时钟信号,并检测所述从设备发送的状态信号。其中,所述总线信号中是否存在对所述从设备的访问信息,以及检测从设备发送的状态信号可由检测模块执行;时钟信号可由时钟模块产生,也可为时钟模块接收的时钟信号。所述总线信号中存在对所述从设备的访问信息时,说明满足了时钟模块打开的条件,则时钟模块向从设备输入时钟信号。当时钟信号为时钟模块接收的时钟信号时,该时钟信号可为现有技术中访问从设备的其他设备向从设备提供的时钟信号,在系统工作中此时钟常开不关闭。从设备发送的状态信号如slstate是某一从设备的工作状态信号的组合统称, 此组合信号由该从设备提供,可以是一个或者多个信号。本发明中,通过判断状态信号来判断从设备是否已停止工作。例如该从设备内部有一个位宽2位(bit)的状态寄存器sl_ state[1:0],当slstate[1:0] = 2,b00时,表示该从设备处于空闲或称为非工作的状态, 将此状态作为停止为该从设备提供时钟信号的条件。如当sl_state[l:0] =2’b00时,则关闭时钟模块,此时输入到从设备的输出时钟为一个不翻转的固定值。由于每个从设备停止工作的表示方法都不相同,故同一个系统中或不同系统中每个不同的从设备的状态信号需要根据不同的从设备进行单独特定的设定。如,检测所述从设备发送的状态信号可包括检测所述从设备发送的接口状态信号,或者可包括检测所述从设备发送的内部电路的状态信号。步骤13、当所述从设备的状态信号显示所述从设备处于空闲状态时,停止向所述从设备输入时钟信号。所述从设备的状态信号是否显示所述从设备处于空闲状态可由上述检测模块执行,输入的可由上述时钟模块提供,停止向所述从设备输入时钟信号时,关闭上述时钟模块即可。这里,检测模块和时钟模块可通过一个电路实现,为便于描述将该电路称为智能门控功能电路,简称为Smart_gt电路。SMART_GT内部门控时钟电路可由时钟信号(sl_clk)、总线信号(bus-signal)、从设备的状态信号(Sl_state)和向从设备输入的门控时钟信号(sl_clk_gt)逻辑组合实现。具体包括当bus-signal的组合信号表示总线需要访问某一从设备,则门控时钟信号sl_ clk_gt直接由输入时钟sl_clk驱动;当bus-signal的组合信号表示总线不需要访问该从设备,且Sl_state的组合信号表示该从设备已停止工作,则输出的门控时钟信号sl_clk_ gt为1,b0或1,bl即不翻转的固定值。Smart_gt电路的位置设置可视实现成本而定。比如在从设备模块与总线附近增加 Smart_gt电路,即Smart_gt电路的位置可以在从设备模块和总线之间,Smart_gt电路也可以位于从设备模块内部,还可以位于总线内部。在有些系统中,当出现以下情况时,从设备Slave的工作状态无法通过Slave的内部状态直接获取系统中的从设备Slave模块接口信号无法提供Slave的工作状态;系统中的从设备Slave模块过于复杂无法读懂;系统中的从设备Slave模块未获得提供者授权而无法修改;系统中的从设备Slave模块是无法读取的网表或其他格式的文件;系统中的从设备Slave模块是的不可编辑的芯片或者可编程器件。此时,可以通过总线或者系统级别的工作状态来生成Slave的工作状态。如图2 所示,Smart_gt电路通过Bus_signal和系统状态(System_state)来判断Slave的工作状态,进而控制Slave的工作时钟Sl_clk_gt。System_state可以通过的方法有很多种比如,可以通过Bus_signal行为获取 Slave的开始工作状态后,根据Slave的工作时间来判断Slave的工作结束时间;还比如, 可以通过系统中其他与Slave相关的模块的状态来获取Slave的工作状态。本实施例中,通过检测总线信号及从设备的状态信号来控制芯片内设备模块如从设备模块的工作时钟,避免了芯片内设备模块在非工作状态下发生不必要的电路翻转,达到了降低芯片内设备模块的动态功耗的目的。并且,采用检测总线信号及从设备的状态信号的方式避免了现有技术由软件实施检测和配置进入节省功耗状态给软件运行带来的额外负担,以及通过软件控制进入节省功耗状态带来的实时性及节省功耗效果差的问题。上述实施例中,总线架构中的主设备模块及从设备模块,都可以用同样的方法来降低自身的动态功耗。每个设备模块都有对应的检测模块来进行检测,并根据检测结果控制各设备模块的工作时钟的开关。这是因为总线中各个设备模块对应的开始工作(S1_ start)的BuS_Signal的行为不同;总线中每个设备模块对应的工作状态如空闲状态(Sl_ idle)等的表示方法不同。上述实施例提供的降低功耗的方法也可只对总线中功耗贡献较大的设备模块进行设置Smart_gt电路,以有效地降低动态功耗。上述实施例可应用到如下场景主从设备模块都在同一个ASIC芯片内部的场景总线类别可以为AMBA2.0的 APB, ASB ;AMBA3. 0 的 AXI、AHB、APB、ASB ;Wishbone ;Avalon ;Coreconnect ;OCP 总线;主从设备模块都在同一个可编程逻辑器件(FPGA、CPLD, PAL、GAL、EPLD等)内部的场景总线类别可以为 AMBA2. O 的 APB、ASB ;AMBA3. O 的 AXI、AHB、APB、ASB ;Wishbone ; Avalon ;Coreconnect ;OCP 总线;
主设备模块在ASIC芯片内部,从设备在ASIC芯片的场景主从设备模块通过一定的总线或者接口协议对接的时候,Smart_gt电路可以设置在任何一个芯片中,也可以在外部电路板级通过可编程逻辑器件(FPGA、CPLD, PAL、GAL、EPLD等)实现;主设备模块在可编程逻辑器件(FPGA、CPLD、PAL、GAL、EPLD等)内部,从设备模块在ASIC芯片内部的场景主从设备模块通过一定的总线或者接口协议对接的时候,Smart, gt电路可以设置在任何一个主设备模块的可编程逻辑器件中实现,也可以在从设备模块的 ASIC芯片中实现,也可以在外部电路板级通过可编程逻辑器件(FPGA、CPLD、PAL、GAL、EPLD 等)实现;主设备模块在ASIC芯片内部,从设备模块在可编程逻辑器件(FPGA、CPLD, PAL、 GAL、EPLD等)的场景主从设备模块通过一定的总线或者接口协议对接的时候,智能门控模块可以设置在任何一个主设备模块的ASIC芯片中实现,也可以在从设备模块的编程逻辑器件中实现,也可以在外部电路板级通过可编程逻辑器件(FPGA、CPLD、PAL、GAL、EPLD 等)实现。下面以图3所示的基于AMBA2. 0 AHB总线架构为应用场景,对降低动态功耗的方
法做进一步详细说明。如图3所示,基于AMBA2. 0 AHB的总线架构中,有总线(AHB Local Bus)、主设备模块(Masterl)和从设备模块(Slavel Slave3)三部分组成,主从设备模块为IP核、芯片、 电路模块等设备,Masterl和Slavel Slave3都连接到AMBA总线上,Masterl和Slavel Slave3的工作功耗能否节省取决于能否在它们不工作的时候将这些模块的内部逻辑电路都停止工作,最直接方法就是在它们不工作的时候通过Smart_gt电路将这些设备模块的工作时钟关闭。以降低Slavel的动态功耗为例,基于AMBA2. 0 AHB的总线架构中的Smart_gt电路的设置,如图4所示,Smart_gt电路可以位于Slavel和总线之间,也可以如图5所示,位于Slavel内部,还可以如图6所示位于总线内部。以图6所示的Smart_gt电路设置为例,在Slavel的外部设置Smart_gt电路, Smart_gt电路和Slavel —起连接到总线上,二者之间的接口信号描述如下Smart_gt电路的输入信号包括Bus_signal (总线信号)、Sl_clk (Slavel的工作时钟)和Sl_state (Slavel工作状态)。Smart_gt电路的输出信号Sl_clk_gt是经过Smart_gt电路后输出到Slavel的工作时钟。Smart_gt电路通过Bus_signal检测判断Slavel是否开始工作,通过Sl_state检测判断Slavel是否结束工作。当Smart_gt电路检测到Slavel开始工作,则打开Sl_clk_gt ;若检测到Slavel结束工作,则关闭Sl_clk_gt。Smart_gt电路通过精准的检测Slavel的工作需求开关工作时钟,避免了 Slavel 在空闲状态下发生不必要的翻转,有效节省了 Slavel的动态功耗。Smart_gt电路的工作时序关系如图7所示。Slave 的状态信号(sl_state)的状态包括sl_idle (空闲)、sl_start (启动)、 sl_work(工作)。Sl_idle说明Slave处于空闲状态,此时不需工作;sl_start和sl_work说明Slave处于工作状态;Sl_state可以是Smart_gt电路通过判断Slave模块的接口信号状态来生成,也可以是通过判断Slave模块内部电路的状态信号来生成,只要能够正确反映Slave的工作状态即可。Smart_gt电路通过Bus_signal检测总线的行为,当检测到Sl_start时,则说明 Slave开始工作状态。Sl_start是Smart_gt电路通过解析Bus_signal得到的。比如在系统中,如果需要Slave工作,则系统必须通过总线来配置Slave的寄存器来启动Slave的工作,此时只要检测到BuS_Signal有总线访问Slave的寄存器的行为,就认为系统要求Slave 进行工作状态,这时Smart_gt就认为Slave要工作,必须为Slave打开工作时钟sl_clk_
gto当Smart_gt电路为Slave打开工作时钟之后,Smart_gt电路开始检测Slave的工作状态Sl_state。Slave的工作状态是Smart_gt电路通过分析Slave内部工作电路特点获取的。例如Slave内部工作电路一般有逻辑状态机,如果状态机处于IDLE状态就表示非工作状态,如果是其他状态就表示工作。不同设备模块的工作状态表达方式不同,例如2 个IP核,如12C和SPI,其内部逻辑实现方法不一样,所以其工作状态表达逻辑信号也不同。 当检测到Sl_state = sl_idle时,表示Slave已完成工作进行idle状态,此时Smart_gt 电路关闭门控时钟sl_clk_gt,停止为Slave提供工作时钟。从图7中也可以看到,Smart_gt电路通过检测总线行为和Slave的工作状态,实现了对Slave工作时钟的精确控制,从而最大程度地节省了 Slave不必要的电路翻转,达到了节省Slave动态功耗的目的。本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。图8为本发明实施例提供的电子设备的结构示意图。如图8所示,电子设备用于实现上述图1所示实施例的方法,包括从设备81、检测模块82及时钟模块83。从设备81、 检测模块82及时钟模块83详见上述方法实施例中的说明。从设备81用于通过总线接收和处理其他设备发送的访问信息。检测模块82用于检测总线信号以及所述从设备81的状态信号,如所述检测模块82可具体用于检测所述从设备发81送的接口状态信号,或者具体用于检测所述从设备81发送的内部电路的状态信号。时钟模块83用于当所述检测电路82检测到所述总线信号中存在对所述从设备81 的访问信息时,向所述从设备81输入时钟信号,以及当所述检测电路82检测到所述从设备 81的状态信号显示所述从设备81处于空闲状态时,停止向所述从设备81输入时钟信号。可选地,所述时钟模块83还用于接收时钟信号,所述时钟模块具体用于当所述检测电路检测到所述总线信号中存在对所述从设备的访问信息时,向所述从设备输入接收的时钟信号。上述设备实施例中,电子设备通过在总线架构中增加检测模块和时钟模块,来实现对主设备模块或者从设备模块的工作时钟控制,Smart_gt电路可以通过检测总线状态和待降低动态功耗的设备模块的工作状态,控制系统输入到待降低动态功耗的设备模块的工作时钟的开关,来实现主设备模块或从设备模块的动态功耗的降低。上述方法及系统实施例,由于不需要软件检测和配置,因而不增加软件开销,避免了通常由软件实施检测和配置进入节省功耗状态,给软件运行带来额外负担,要节省越多功耗,就要求软件控制越精确,软件开销越大的问题;并且无论芯片内设备模块本身是否存在节省动态功耗的功能没有限制和依赖,都可以实现对芯片内设备模块的工作功耗节省; 能够做到实时监控,控制精度高,节省功耗效果明显优于通过软件控制节省功耗的传统方法。具体节省功耗的收益多少,取决于实际系统中芯片内设备模块工作繁忙程度,比如实际系统某一段时间内,芯片内设备模块实际有20%的时间在工作,80%的时间处于空闲,则通过此发明,可以将保证80%的时间内芯片内设备模块处于空闲的状态下关闭芯片内设备模块工作时钟,实现芯片内设备模块在空闲的状态下100%节省动态功耗,实现芯片内设备模块全部逻辑功耗的节省。最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
权利要求
1.一种降低动态功耗的方法,用于降低从设备的动态功耗,其特征在于,包括 接收总线信号;当所述总线信号中存在对所述从设备的访问信息时,向所述从设备输入时钟信号,并检测所述从设备发送的状态信号;当所述从设备的状态信号显示所述从设备处于空闲状态时,停止向所述从设备输入时钟信号。
2.根据权利要求1所述的降低动态功耗的方法,其特征在于,检测所述从设备发送的状态信号,包括检测所述从设备发送的接口状态信号,或者包括检测所述从设备发送的内部电路的状态信号。
3.根据权利要求1或2所述的降低动态功耗的方法,其特征在于,当所述从设备的状态信号显示所述从设备处于空闲状态时,停止向所述从设备输入时钟信号,之前还包括判断所述总线信号中是否还存在对所述从设备的访问信息,若不存在,则当所述从设备的状态信号显示所述从设备处于空闲状态时,停止向所述从设备输入时钟信号。
4.根据权利要求1或2所述的降低动态功耗的方法,其特征在于,还包括接收时钟信号;所述通过时钟电路向所述从设备输入时钟信号,包括通过时钟电路向所述从设备输入接收的时钟信号。
5.一种电子设备,包括从设备,用于通过总线接收和处理其他设备发送的访问信息,其特征在于,所述电子设备还包括检测模块,用于检测总线信号以及所述从设备的状态信号;时钟模块,用于当所述检测电路检测到所述总线信号中存在对所述从设备的访问信息时,向所述从设备输入时钟信号,以及当所述检测电路检测到所述从设备的状态信号显示所述从设备处于空闲状态时,停止向所述从设备输入时钟信号。
6.根据权利要求5所述的电子设备,其特征在于,所述检测模块具体用于检测所述从设备发送的接口状态信号,或者具体用于检测所述从设备发送的内部电路的状态信号。
7.根据权利要求5或6所述的电子设备,其特征在于,所述时钟模块还用于接收时钟信号,所述时钟模块具体用于当所述检测电路检测到所述总线信号中存在对所述从设备的访问信息时,向所述从设备输入接收的时钟信号。
全文摘要
本发明涉及一种用于降低动态功耗的方法和电子设备,方法用于降低从设备的动态功耗,包括接收总线信号;当所述总线信号中存在对所述从设备的访问信息时,向所述从设备输入时钟信号,并检测所述从设备发送的状态信号;当所述从设备的状态信号显示所述从设备处于空闲状态时,停止向所述从设备输入时钟信号。通过总线信号及从设备的状态信号来控制从设备等芯片内设备模块的工作时钟,避免了芯片内设备模块在非工作状态下发生不必要的电路翻转,达到了降低芯片内设备模块的动态功耗的目的。
文档编号G06F1/32GK102439535SQ201180002757
公开日2012年5月2日 申请日期2011年10月25日 优先权日2011年10月25日
发明者余剑锋, 周勇辉 申请人:深圳市海思半导体有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1