本发明涉及信息电子芯片设计领域,尤其涉及一种基于扫描链的cpu低功耗实现方法。
背景技术:
基于节能环保的要求,电子设备一般都设计有待机模式或低功耗模式,因此对应cpu也都要求有低功耗模式来满足该要求。现有技术中为了降低cpu在低功耗模式时cpu的功耗,大多采用关闭cpu时钟的方法来作为实现降低cpu在低功耗模式下的能耗的方法之一,但是采用关闭cpu时钟的方法,虽然可以一定程度上减小cpu的动态功耗,但是无法解决静态漏电电流。另一种广泛使用的方法是将cpu彻底关闭,但是此种方法在cpu上电恢复的时候,需要耗费毫秒级的时间,对于处理一些实时性要求比较高情况又无法满足时间上的要求。因此现有技术还无法找到一种很好同时解决功耗和恢复时间问题的方法。
技术实现要素:
针对以上缺陷,本发明目的在于如何在可实现快速唤醒的同时可将cpu进行整体断电,整体上实现低待机功耗。
为了实现上述目的,本发明提供了一种基于扫描链的cpu低功耗实现方法,其特征在于将cpu中需要保存状态的普通寄存器替换为带扫描输入寄存器,所述cpu接收到待机指令后,启动扫描链数据保存操作,将带扫描输入寄存器的数据串行扫描并输出存储到cpu待机是不会关闭的sram中,再触发cpu进入待机模式;当cpu接收到唤醒中断输入时将存储在sram中的带扫描输入寄存器的反向数据串行输出到对应的带扫描输入寄存器。
所述的基于扫描链的cpu低功耗实现方法,其特征在于所述的带扫描输入寄存器在普通寄存器的数据输入端口前增设了数据选择器,所述数据选择器包括数据输入端口、扫描输入端口和扫描使能控制端口;带扫描输入寄存器还包括时钟输入端口和扫描输出端口。
所述的基于扫描链的cpu低功耗实现方法,其特征在于所述带扫描输入寄存器进行串行连接,前一个带扫描输入寄存器的扫描输出端口与后一个带扫描输入寄存器的扫描输入端口相连,所有带扫描输入寄存器的时钟输入端口连接在一起;所有带扫描输入寄存器的扫描使能控制端口连接在一起。
本发明通过增加扫描链机制的方法可实现在微秒级的短时间内实现对cpu状态的保存,并可实现在同样短时间内的cpu状态的恢复,同时实现大大降低cpu的静态功耗,可在各类cpu设计中广泛应用,具有较高的应用价值。
附图说明
图1是带扫描输入寄存器示意图;
图2是cpu中扫描链连接示意图;
图3是低功耗控制状态转换图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是带扫描输入寄存器示意图;带扫描输入寄存器在普通寄存器ff的数据输入端口前增设了数据选择器mux,数据选择器mux包括数据输入端口data、扫描输入端口scanin和扫描使能控制端口scanenable;带扫描输入寄存器还包括时钟输入端口clk、数据输出端口q和扫描输出端口scanout。
图2是cpu中扫描链连接示意图;包括7个带扫描输入寄存器1、2、3、4、5、6、7,将cpu中需要保存状态的普通寄存器替换为带扫描输入寄存器,8个带扫描输入寄存器进行串行连接,前一个带扫描输入寄存器的扫描输出端口与后一个带扫描输入寄存器的扫描输入端口相连,所有带扫描输入寄存器的时钟输入端口连接在一起;所有带扫描输入寄存器的扫描使能控制端口连接在一起。
图3是低功耗控制状态转换图。整个扫描链设置为8个状态:空闲状态idle、获取cpu时钟状态ch_cpu_clk、串行存储数据状态store_cpu、切断电源状态shutdown_cpu、低功耗待机状态wait_intr、上电状态powerup_cpu、加载数据状态restore和释放时钟状态ch_cpu_clk_bk;具体各个状态按如下步骤进行控制和切换:
空闲状态idle实现后台cpu监控是否收到待机指令,当收到待机指令后切换到获取cpu时钟状态;
获取cpu时钟状态ch_cpu_clk实现获取cpu的时钟控制权,获取完成cpu的时钟控制权后切换到串行存储数据状态;
串行存储数据状态store_cpu实现控制时钟和扫描链的长度,控制带扫描输入寄存器的数据串行存入sram中,一般通过控制电路的总线,通过移位的方式将数据移入sram中,完成所有数据存入后切换到切断电源状态;
切断电源状态shutdown_cpu完成将cpu各个输出端口的隔离态控制端口打开,再将cpu进行断电操作,进入低功耗待机状态;
进入低功耗待机状态wait_intr后,后台监控是否有唤醒中断输入,也可以是定时查询的方式检测是否有唤醒指令输入,如果存在则进入上电状态;
上电状态控制powerup_cpu将cpu的供电打开,同时释放cpu各个输出端口后进入加载数据状态。
加载数据状态restore实现通过精确控制时钟翻转数和扫描链的长度,控制读出sram中的数据,并将其恢复到扫描链中对应的带扫描输入寄存器中,完成所有数据恢复后,进入释放时钟状态;
释放时钟状态ch_cpu_clk_bk完成释放cpu的时钟控制权,cpu正常工作后重新进入空闲状态。
以上所揭露的仅为本发明一种实施例而已,当然不能以此来限定本之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于本发明所涵盖的范围。