超过损益平衡点就会进入深度休眠
设备是怎样进入深度休眠的呢?当Linux OS没有任务、进入空闲状态后,要进行两项判断:(1)SoC上的输入输出电路是否在工作,(2)等待时间是否长到可以抵消进入深度休眠的损失。如果两个条件同时满足,则进入深度休眠(图2)。
图2 还考虑了进入深度休眠的损失
进入深度休眠状态后,耗电量会降低,但进入这种状态和恢复的处理会临时消耗多余的电力。新技术可根据定时器的设定值来推测空闲时间,如果空闲时间长于损益平衡点(约13ms),就会选择深度休眠。而且,还通过优化程序,缩短了进入深度休眠和恢复到工作模式的处理时间。(该图由《日经电子》根据东芝的资料绘制)
要进行第一项判断的原因是,如果SoC在存储器或显示器的控制器等的输入输出电路正在工作时进入深度休眠,就会发生严重的错误。对此,东芝采用了一种机制,那就是在要求输入输出电路进行处理时,将标志位设为True,当接收到用来通知处理完成的中断时,再将标志位设为False。这样,OS便可以立即判断出输入输出电路是否正在工作。
进行第二项判断是为了只在比浅度休眠更有利的情况下进入深度休眠。进入深度休眠以及从深度休眠恢复时均会额外消耗电力,因此,如果空闲时间短于一定时间,则浅度休眠更合适。
关于空闲时间,该技术会忽略用户输入造成的中断,只根据OS的定时器设定值来推断。原因是准确预测用户的输入非常困难。木村表示,“尽管有时会在超过损益平衡点之前发生用户输入,但用户的输入间隔很长,因此我们认为,从总体考虑,忽略这种输入更为合理。”
从深度休眠恢复所需时间为1.8ms,用户的操作感几乎不会下降。从此次的试制品来看,在输入输出电路全部停止工作时,如果距离定时器设定的下次中断的时间长于损益平衡点——约13ms,终端就会进入深度休眠。
东芝将这项技术与电子纸显示屏结合起来的原因是,可以轻松使显示控制器停止工作。普通液晶显示屏需要按帧发送影像信号,显示器控制器会一直工作,因此设备很难进入深度休眠。此次的技术比较适合配备电子纸及内置内存的液晶屏等非易失性显示屏的设备,以及不配备显示器的M2M(machine to machine)终端。