CN102541246A - 一种基于龙芯处理器平台的待机方法 - Google Patents

一种基于龙芯处理器平台的待机方法 Download PDF

Info

Publication number
CN102541246A
CN102541246A CN2011104192558A CN201110419255A CN102541246A CN 102541246 A CN102541246 A CN 102541246A CN 2011104192558 A CN2011104192558 A CN 2011104192558A CN 201110419255 A CN201110419255 A CN 201110419255A CN 102541246 A CN102541246 A CN 102541246A
Authority
CN
China
Prior art keywords
stack frame
bios
general
recover
registers
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
Application number
CN2011104192558A
Other languages
English (en)
Other versions
CN102541246B (zh
Inventor
吴少刚
陈华才
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jiangsu Aerospace dragon dream Information Technology Co., Ltd.
Original Assignee
JIANGSU LEMOTE TECHNOLOGY Corp Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by JIANGSU LEMOTE TECHNOLOGY Corp Ltd filed Critical JIANGSU LEMOTE TECHNOLOGY Corp Ltd
Priority to CN201110419255.8A priority Critical patent/CN102541246B/zh
Publication of CN102541246A publication Critical patent/CN102541246A/zh
Application granted granted Critical
Publication of CN102541246B publication Critical patent/CN102541246B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Power Sources (AREA)

Abstract

本发明公开了一种基于龙芯处理器平台的待机方法,其过程包括以下步骤:1)冻结进程;2)外设停止工作;3)关闭外设电源;4)关闭辅核;5)保存主核执行上下文;6)主核执行操作进入待机状态;7)恢复主核执行上下文;8)开启辅核;9)开启外设电源;10)外设开始工作;11)恢复进程。本发明方法不需要ACPI表来动态维护大量的信息,BIOS和操作系统都变得易于实现,健壮性好,不易有隐含的各种缺陷;本发明待机功能只需要和BIOS进行一次交互,因此高效。

Description

一种基于龙芯处理器平台的待机方法
技术领域
本发明涉及一种待机方法,特别是一种基于龙芯处理器平台的待机方法。
背景技术
电源管理是计算机操作系统的一个重要组件,其根本目的是节能并且不影响性能。这在通过电池供电的笔记本电脑、平板电脑等设备上显得尤为重要。通常来说,电源管理的方法策略主要包括三个方面:运行时电源管理,待机管理,以及休眠管理。
ACPI(Advanced Configuration Power Interface,高级电源配置接口)是一个电源管理规范,其实现需要软件、硬件和固件的高度协作配合。图1是ACPI所定义的各种电源状态,详细解释如下:
1,睡眠状态与全局状态:睡眠状态中的计算机具有很低的功耗,可以接近于零。ACPI定义了6中睡眠状态,S0~S5,值越大睡眠越深,S0是正常运行,S5是软关机。另外还定义了G0~G3四种全局状态,其中G0对应S0,G1对应S1到S4,G2对应S5,G3是彻底的硬关机,切断一切电源。
2,CPU状态与设备状态:当CPU或者I/O设备空闲时,可以让它们单独进入某种程度的低功耗状态或者停止运行的电源状态。而这时整个系统还是处于S0。这些状态在ACPI里面称为C状态(也称Cx或C-State,用于CPU)或D状态(也称Dx或D-State,用于设备),从C0/D0直到Cn/Dn,n越大表示关闭的子部件越多,功耗越低。
3,性能状态:在系统的负载不是很高时,可以让CPU或设备处于低于峰值的某种较低性能状态,较低的性能也意味着较低的功耗。ACPI定义的性能状态称为P状态(也称Px或P-State),从P0直到Pn,n越大表示性能和功耗越低。所有的P状态都是C0/D0的子状态。
4,发热状态:当系统出现过热状态时,可以改变系统状态减少发热(被动散热),或者开启风扇等设备进行散热(主动散热)。被动散热可以通过调节P状态实现(这种方式叫TM2),如果到了功耗最低的P状态仍然不够,可以调节T状态(屏蔽部分时钟周期)进一步降低功耗(这种方式叫TM1),从T0到Tn,n值越大功耗越低。
待机是一种电源管理方法,它让系统在空闲时候进入一种可以快速唤醒的睡眠状态,功耗很低。待机也叫Suspend To RAM(挂起到内存,简称STR),对应ACPI S3。其特征如下:CPU和外设全部断电,内存供电但处于低耗能的自刷新状态(内容保持不变)。功耗为开机状态的1%左右,唤醒时间5~8秒。可以通过电源按键唤醒。
待机在基于X86处理器的平台早有实现。X86的待机功能严重依赖于ACPI,需要支持ACPI的硬件、ACPI感知的BIOS以及ACPI感知的操作系统。龙芯平台与X86平台有着较大的差异,其BIOS和操作系统不是ACPI感知的。因此,为了节省电能,延长笔记本电脑的电池续航时间,本发明具有十分重要的意义。
发明内容
本发明所要解决的技术问题是提供一种基于龙芯处理器平台精简而高效的待机方法。
为了解决上述的技术问题,本发明的技术方案是:一种基于龙芯处理器平台的待机方法,其包括以下步骤:
1)冻结进程;
2)外设停止工作;
3)关闭外设电源;
4)关闭辅核;
5)保存主核执行上下文;
i.调整堆栈指针,留出一个栈帧来保存上下文;
ii.将1~7号通用寄存器保存到栈帧;
iii.将16~23号通用寄存器保存到栈帧;
iv.将26~31号,除29号寄存器外的其他通用寄存器保存到栈帧;
v.将协处理0的寄存器保存到栈帧;
6)主核执行操作进入待机状态
i.将堆栈指针的当前值写入非易失性存储器;
ii.将唤醒入口地址写入非易失性存储器;
iii.刷回并无效化一级高速缓存;
iv.刷回并无效化二级高速缓存;
v.通过BIOS调用接口,将控制权转交给BIOS;
vi.BIOS将内存设置成自刷新模式;
vii.BIOS通知EC关闭除内存以外所有部件的电源;
7)恢复主核执行上下文
i.从栈帧恢复协处理0的部分寄存器;
ii.从栈帧恢复1~7号通用寄存器;
iii.从栈帧恢复16~23号通用寄存器;
iv.从栈帧恢复26~31号,除29号寄存器外的其他通用寄存器;
v.调整堆栈指针,丢弃没有用处的栈帧;
8)开启辅核;
9)开启外设电源;;
10)外设开始工作;
11)恢复进程。
这里主核是指编号为0的CPU核,也叫启动处理器(Bootstrap Processor,简称BP);辅核是指编号不为0的CPU核,也叫辅助处理器(Auxiliary Processor,简称AP)。
X86平台上的待机功能实现比较复杂,因为其BIOS和操作系统必须是ACPI感知的。
ACPI感知的BIOS包含若干个ACPI表,这些表里面有大量的ACPI代码,就待机功能来说,这些ACPI代码主要实现的功能有:定义电源管理寄存器、定义一些电源管理对象(如判断S3功能是否可用)、定义唤醒入口地址的保存场所、定义操作系统调用的BIOS接口。
ACPI感知的操作系统需要有解析ACPI表和执行BIOS调用接口的功能。
本发明采取的是一种精简而高效的方法:唤醒入口地址使用固定的保存场所,对操作系统只需要开放唯一一个BIOS调用接口,因此BIOS不需要冗长的ACPI代码,操作系统也不需要复杂的ACPI子系统。关键的技术点是如何保存唤醒入口地址、如何让操作系统内核与BIOS能够在内存中共存以及开放什么样的BIOS接口。
本发明具有以下优点:
1.精简而易于实现。
龙芯平台的待机功能使用固定的操作方式,因而不需要ACPI表来动态维护大量的信息。也正因为如此,BIOS和操作系统都变得易于实现,健壮性好,不易有隐含的各种缺陷。
2.高效而执行快捷。
如果是基于ACPI的待机实现,其执行过程中多数步骤(尤其是对设备的操作)都有操作系统和BIOS的交互,这些交互让执行过程变得缓慢。龙芯平台的待机功能只需要进行一次交互,因此高效。
附图说明
下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1是ACPI状态关系图;
图2是待机的执行流程图。
具体实施方式
本发明所采用的硬件平台(处理器)是龙芯3A,软件平台(操作系统)是Linux内核,版本为2.6.36,但本发明不限于龙芯3A的硬件平台。
本发明待机方法如图2所示,其具体步骤是:
1)冻结进程;
2)外设停止工作;
3)关闭外设电源;
4)关闭辅核;
5)保存主核执行上下文;
i.调整堆栈指针(SP寄存器),目的是留出一个栈帧来保存上下文;
ii.将1~7号通用寄存器(用于汇编器的AT寄存器、用于存放函数返回值的V系列寄存器以及用于存放函数参数的A系列寄存器)保存到栈帧;
iii.将16~23号通用寄存器(函数调用时需要调用者保存的S系列寄存器)保存到栈帧;
iv.将26~31号通用寄存器(内核专用的K系列寄存器、全局指针GP,帧指针FP和返回地址RA寄存器)保存到栈帧,但29号寄存器(堆栈指针SP)除外;
v.将协处理0的部分寄存器(状态寄存器、配置寄存器、上下文寄存器和页面掩码寄存器等)保存到栈帧;
6)主核执行操作进入待机状态
i.将堆栈指针的当前值写入非易失性存储器;
ii.将唤醒入口地址写入非易失性存储器;
iii.刷回并无效化一级高速缓存(L1 Cache);
iv.刷回并无效化二级高速缓存(L2 Cache);
v.通过BIOS调用接口,将控制权转交给BIOS;
vi.BIOS将内存设置成自刷新模式;
vii.BIOS通知EC(嵌入式控制器)关闭除内存以外所有部件的电源;
7)恢复主核执行上下文
i.从栈帧恢复协处理0的部分寄存器(状态寄存器、配置寄存器、上下文寄存器和页面掩码寄存器等);
ii.从栈帧恢复1~7号通用寄存器(用于汇编器的AT寄存器、用于存放函数返回值的V系列寄存器以及用于存放函数参数的A系列寄存器);
iii.从栈帧恢复16~23号通用寄存器(函数调用时需要调用者保存的S系列寄存器);
iv.从栈帧恢复26~31号通用寄存器(内核专用的K系列寄存器、全局指针GP,帧指针FP和返回地址RA寄存器),但29号寄存器(堆栈指针SP)除外;
v.调整堆栈指针(SP寄存器),目的是丢弃已经没有用处的栈帧;
8)开启辅核;
9)开启外设电源;;
10)外设开始工作;
11)恢复进程。
本发明方法中,步骤5)、6)、7)要解决如下几个关键问题:
1.唤醒入口地址:待机睡眠过程中,除了内存、实时钟(RTC)、嵌入式控制器(EC)以外,包括CPU在内的大多数部件都不供电。因此,唤醒的第一个阶段是BIOS在执行的,BIOS需要判断这次上电是普通的冷启动还是待机唤醒,如果是唤醒,需要把控制权转交给操作系统。睡眠过程虽然内存内容不变,但处于自刷新状态而不能直接访问,因此转交时操作系统的入口地址必须保存在一个不断电、可访问并且相对固定的地方。本发明采用的方法是将入口地址(以及内核堆栈指针)保存在实时钟的自带内存区里面。该入口地址同时也作为区别冷启动和待机唤醒的标记,如果值为0,表示普通冷启动。
2.BIOS与操作系统共存:BIOS代码保存在非易失性的只读存储器(ROM)芯片中,但是为了提高性能(执行效率)和灵活性(如动态分配内存),通常会解压到系统内存(RAM)中执行。待机睡眠和冷启动不同,内存里面的内容是有用的,不能让BIOS随意使用,否则就会破坏操作系统的数据。因此BIOS必须能够和操作系统共存而不互相干扰,这种共存是通过专用内存区实现的。龙芯电脑的最低物理内存配置是256MB,本发明将240~256MB之间的16MB范围划分给BIOS专用。假设系统有2GB内存,那么:
0MB~240MB范围:操作系统使用;
240MB~256MB范围:BIOS专用;
256MB~2GB范围:操作系统使用。
3.BIOS操作接口:BIOS和操作系统需要唯一的一个调用接口:断电进入待机。这个接口是必须的,无法由操作系统独立完成。其原因在于:进入待机之前必须先将内存置于自刷新状态,而一旦内存进入该状态,处于内存中的操作系统代码便无法运行。而BIOS在ROM芯片中有一个备份,可以不受此限制。真正的断电(以及上电)时序控制是由EC完成的,所以这个唯一的BIOS接口实现起来也很简单,只需要发送几个简单的EC控制命令即可完成。
上述实施例不以任何方式限制本发明,凡是采用等同替换或等效变换的方式获得的技术方案均落在本发明的保护范围内。

Claims (1)

1.一种基于龙芯处理器平台的待机方法,其特征在于包括以下步骤:
1)冻结进程;
2)外设停止工作;
3)关闭外设电源;
4)关闭辅核;
5)保存主核执行上下文;
i.调整堆栈指针,留出一个栈帧来保存上下文;
ii.将1~7号通用寄存器保存到栈帧;
iii.将16~23号通用寄存器保存到栈帧;
iv.将26~31号,除29号寄存器外的其他通用寄存器保存到栈帧;
v.将协处理0的寄存器保存到栈帧;
6)主核执行操作进入待机状态
i.将堆栈指针的当前值写入非易失性存储器;
ii.将唤醒入口地址写入非易失性存储器;
iii.刷回并无效化一级高速缓存;
iv.刷回并无效化二级高速缓存;
v.通过BIOS调用接口,将控制权转交给BIOS;
vi.BIOS将内存设置成自刷新模式;
vii.BIOS通知EC关闭除内存以外所有部件的电源;
7)恢复主核执行上下文
i.从栈帧恢复协处理0的部分寄存器;
ii.从栈帧恢复1~7号通用寄存器;
iii.从栈帧恢复16~23号通用寄存器;
iv.从栈帧恢复26~31号,除29号寄存器外的其他通用寄存器;
v.调整堆栈指针,丢弃没有用处的栈帧;
8)开启辅核;
9)开启外设电源;
10)外设开始工作;
11)恢复进程。
CN201110419255.8A 2011-12-15 2011-12-15 一种基于龙芯处理器平台的待机方法 Active CN102541246B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110419255.8A CN102541246B (zh) 2011-12-15 2011-12-15 一种基于龙芯处理器平台的待机方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110419255.8A CN102541246B (zh) 2011-12-15 2011-12-15 一种基于龙芯处理器平台的待机方法

Publications (2)

Publication Number Publication Date
CN102541246A true CN102541246A (zh) 2012-07-04
CN102541246B CN102541246B (zh) 2015-02-04

Family

ID=46348289

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110419255.8A Active CN102541246B (zh) 2011-12-15 2011-12-15 一种基于龙芯处理器平台的待机方法

Country Status (1)

Country Link
CN (1) CN102541246B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104460925A (zh) * 2014-12-18 2015-03-25 山东超越数控电子有限公司 一种基于申威平台的电源管理实现方法
CN104866377A (zh) * 2015-05-28 2015-08-26 江苏中科梦兰电子科技有限公司 一种基于无嵌入式控制器龙芯处理器平台的待机方法
CN104918310A (zh) * 2015-07-10 2015-09-16 四川长虹通信科技有限公司 一种快速省电移动终端及其快速省电方法
CN108984217A (zh) * 2018-07-06 2018-12-11 郑州云海信息技术有限公司 一种主机工作状态调整方法和系统
US10345890B2 (en) 2013-12-10 2019-07-09 Huawei Device Co., Ltd. Task management method and device

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1303035A (zh) * 1999-10-25 2001-07-11 三星电子株式会社 具有多个电源管理状态的计算机系统的电源控制电路
US20020062455A1 (en) * 2000-11-18 2002-05-23 Lee Yong-Hoon Computer system and method of controlling standby mode thereof
US20070028132A1 (en) * 2005-07-26 2007-02-01 Huai-Cheng Wang Method for booting computer multimedia systems with a hot key standby state
CN101539803A (zh) * 2009-04-30 2009-09-23 威盛电子股份有限公司 待机管理方法及其相关待机管理模块
CN101661404A (zh) * 2008-08-29 2010-03-03 佛山市顺德区汉达精密电子科技有限公司 电脑系统及其进入待机模式的方法
CN102184122A (zh) * 2011-05-16 2011-09-14 曙光信息产业股份有限公司 一种龙芯CPU主板bios及中断的实现方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1303035A (zh) * 1999-10-25 2001-07-11 三星电子株式会社 具有多个电源管理状态的计算机系统的电源控制电路
US20020062455A1 (en) * 2000-11-18 2002-05-23 Lee Yong-Hoon Computer system and method of controlling standby mode thereof
US20070028132A1 (en) * 2005-07-26 2007-02-01 Huai-Cheng Wang Method for booting computer multimedia systems with a hot key standby state
CN101661404A (zh) * 2008-08-29 2010-03-03 佛山市顺德区汉达精密电子科技有限公司 电脑系统及其进入待机模式的方法
CN101539803A (zh) * 2009-04-30 2009-09-23 威盛电子股份有限公司 待机管理方法及其相关待机管理模块
CN102184122A (zh) * 2011-05-16 2011-09-14 曙光信息产业股份有限公司 一种龙芯CPU主板bios及中断的实现方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10345890B2 (en) 2013-12-10 2019-07-09 Huawei Device Co., Ltd. Task management method and device
US11209894B2 (en) 2013-12-10 2021-12-28 Huawei Device Co., Ltd. Task management method and device
US11662802B2 (en) 2013-12-10 2023-05-30 Huawei Device Co., Ltd. Task management method and device
CN104460925A (zh) * 2014-12-18 2015-03-25 山东超越数控电子有限公司 一种基于申威平台的电源管理实现方法
CN104866377A (zh) * 2015-05-28 2015-08-26 江苏中科梦兰电子科技有限公司 一种基于无嵌入式控制器龙芯处理器平台的待机方法
CN104866377B (zh) * 2015-05-28 2018-01-16 江苏中科梦兰电子科技有限公司 一种基于无嵌入式控制器龙芯处理器平台的待机方法
CN104918310A (zh) * 2015-07-10 2015-09-16 四川长虹通信科技有限公司 一种快速省电移动终端及其快速省电方法
CN108984217A (zh) * 2018-07-06 2018-12-11 郑州云海信息技术有限公司 一种主机工作状态调整方法和系统

Also Published As

Publication number Publication date
CN102541246B (zh) 2015-02-04

Similar Documents

Publication Publication Date Title
US7430673B2 (en) Power management system for computing platform
US9600283B2 (en) Single instruction for specifying a subset of registers to save prior to entering low-power mode, and for specifying a pointer to a function executed after exiting low-power mode
JP3943665B2 (ja) スリープ制御方法、およびイベント通知方法
US8156362B2 (en) Hardware monitoring and decision making for transitioning in and out of low-power state
KR102082241B1 (ko) 전력 효율적 프로세서 아키텍처
KR101429674B1 (ko) 시스템 온 칩에서 전력 소모를 감소시키기 위한 장치 및방법
TWI528284B (zh) 切換作業系統的方法及使用此方法的電子裝置
US8949638B2 (en) Embedded controller with an internal timer
US20090235260A1 (en) Enhanced Control of CPU Parking and Thread Rescheduling for Maximizing the Benefits of Low-Power State
CN102541246B (zh) 一种基于龙芯处理器平台的待机方法
AU2011336388B2 (en) Modular gating of microprocessor low-power mode
RU2010139638A (ru) Энергосберегающее планирование потоков и динамическое использование процессоров
WO1999061991A1 (en) Method and apparatus for power mode transition in a multi-thread processor
CN102520782A (zh) 基于处理器核数自动调节的电源管理方法
CN104246655B (zh) 信息处理设备、信息处理方法及程序
EP2972826B1 (en) Multi-core binary translation task processing
CN100561405C (zh) 计算机系统节电状态下的电源管理方法
CN101145036A (zh) 电源管理结构及管理机制
Ito et al. An 8640 MIPS SoC with independent power-off control of 8 CPUs and 8 RAMs by an automatic parallelizing compiler
KR102060431B1 (ko) 멀티 코어 시스템의 전력 관리 장치 및 방법
TWI485623B (zh) 快速喚醒電腦系統方法與電腦系統
CN103218031A (zh) 电子装置以及休眠方法
CN112947738A (zh) 一种智能终端电源系统及智能终端待机、唤醒方法
CN104866377A (zh) 一种基于无嵌入式控制器龙芯处理器平台的待机方法
US7634672B2 (en) Power saving method of central processing unit

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: JIANGSU LONGXIN MENGLAN INFORMATION SECURITY TECHN

Free format text: FORMER OWNER: JIANGSU ZHONGKE MENGLAN TECHNOLOGY CO., LTD.

Effective date: 20150611

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150611

Address after: 215500 Jiangsu city of Suzhou province Changshou City Yushan Town Menglan Village

Patentee after: JIANGSU LONGXIN MENGLAN INFORMATION SAFETY TECHNOLOGY CO., LTD.

Address before: 215500 Jiangsu city of Suzhou province Changshou City Yushan Town Menglan Village

Patentee before: Jiangsu Lemote Technology Corporation Limited

CP03 Change of name, title or address

Address after: 215500 Changshou City, Jiangsu Province, Dream Road, No., No. 8

Patentee after: Jiangsu Aerospace dragon dream Information Technology Co., Ltd.

Address before: 215500 Jiangsu city of Suzhou province Changshou City Yushan Town Menglan Village

Patentee before: JIANGSU LONGXIN MENGLAN INFORMATION SAFETY TECHNOLOGY CO., LTD.

CP03 Change of name, title or address