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

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

Info

Publication number
CN102541246B
CN102541246B CN201110419255.8A CN201110419255A CN102541246B CN 102541246 B CN102541246 B CN 102541246B CN 201110419255 A CN201110419255 A CN 201110419255A CN 102541246 B CN102541246 B CN 102541246B
Authority
CN
China
Prior art keywords
stack frame
bios
general
registers
stack
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.)
Active
Application number
CN201110419255.8A
Other languages
English (en)
Other versions
CN102541246A (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

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 CN102541246A (zh) 2012-07-04
CN102541246B true 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)

Families Citing this family (5)

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

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1303035A (zh) * 1999-10-25 2001-07-11 三星电子株式会社 具有多个电源管理状态的计算机系统的电源控制电路
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及中断的实现方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100471056B1 (ko) * 2000-11-18 2005-03-07 삼성전자주식회사 컴퓨터시스템 및 컴퓨터시스템의 대기모드제어방법
TWI278780B (en) * 2005-07-26 2007-04-11 Mitac Technology Corp Method of instantly activating multimedia playback during a hot-key standby mode

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1303035A (zh) * 1999-10-25 2001-07-11 三星电子株式会社 具有多个电源管理状态的计算机系统的电源控制电路
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及中断的实现方法

Also Published As

Publication number Publication date
CN102541246A (zh) 2012-07-04

Similar Documents

Publication Publication Date Title
US7430673B2 (en) Power management system for computing platform
KR102082242B1 (ko) 전력 효율적 프로세서 아키텍처
US8156362B2 (en) Hardware monitoring and decision making for transitioning in and out of low-power state
US8112648B2 (en) Enhanced control of CPU parking and thread rescheduling for maximizing the benefits of low-power state
CN104024980B (zh) 连接的待机睡眠状态
CN102541246B (zh) 一种基于龙芯处理器平台的待机方法
KR20090069618A (ko) 전원관리 제어 장치 및 방법
TWI528284B (zh) 切換作業系統的方法及使用此方法的電子裝置
US8949638B2 (en) Embedded controller with an internal timer
CN101526845B (zh) 电源管理方法及其相关芯片组
WO2013101139A1 (en) Providing an asymmetric multicore processor system transparently to an operating system
RU2010139638A (ru) Энергосберегающее планирование потоков и динамическое использование процессоров
CN102520782A (zh) 基于处理器核数自动调节的电源管理方法
CN104081314A (zh) 实现计算设备中的关机状态
EP2972826B1 (en) Multi-core binary translation task processing
CN100561405C (zh) 计算机系统节电状态下的电源管理方法
CN111506351A (zh) 片上系统的深度休眠方法、唤醒方法和休眠与唤醒方法
CN101145036A (zh) 电源管理结构及管理机制
CN104111850A (zh) 一种降低微控制单元mcu功耗的方法及系统
US20080162976A1 (en) Method and apparatus of collecting timer ticks
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) 快速喚醒電腦系統方法與電腦系統
Cheng et al. Integrated device scheduling and processor voltage scaling for system-wide energy conservation
CN103218031A (zh) 电子装置以及休眠方法

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
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.