CN102866936A - X86平台上的双rtc/cmos ram数据备份方法 - Google Patents

X86平台上的双rtc/cmos ram数据备份方法 Download PDF

Info

Publication number
CN102866936A
CN102866936A CN2011101868624A CN201110186862A CN102866936A CN 102866936 A CN102866936 A CN 102866936A CN 2011101868624 A CN2011101868624 A CN 2011101868624A CN 201110186862 A CN201110186862 A CN 201110186862A CN 102866936 A CN102866936 A CN 102866936A
Authority
CN
China
Prior art keywords
rtc
cmos ram
cmos
ram
platform
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.)
Pending
Application number
CN2011101868624A
Other languages
English (en)
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to CN2011101868624A priority Critical patent/CN102866936A/zh
Publication of CN102866936A publication Critical patent/CN102866936A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Power Sources (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明的X86平台上的双RTC/CMOS RAM数据备份方法,由硬件和固件结合实现,可大大延长RTC/CMOS RAM数据的有效保持时间;无需驱动程序支持,对运行在X86平台上的软件,都能保证完全的兼容性。本发明的硬件结构包括内部RTC/CMOS RAM、外部RTC/CMOS RAM、串行通讯接口、后备电池以及后备供电电路。系统上电后,初始化固件程序完成从外部RTC/CMOS RAM到内部RTC/CMOS RAM的数据复制;此后当系统睡眠状态将要发生转移时,执行或被触发执行SMI固件程序,完成从内部RTC/CMOS RAM到外部RTC/CMOS RAM的数据备份。本发明硬件成本低、软件兼容性好,实用性强,适合高可用性X86计算机系统的要求。

Description

X86平台上的双RTC/CMOS RAM数据备份方法
技术领域
本发明涉及X86计算机系统结构中的RTC/CMOS RAM(实时时钟/互补金属氧化物半导体的随机访问存储器)、SMI(系统管理中断)、ACPI(高级配置和电源接口规范)以及Bios(基本输入输出系统)等技术领域,具体是一种由硬件和固件(固化软件,firmware)结合实现的、X86平台上的双RTC/CMOS RAM数据备份方法。
背景技术
RTC/CMOS RAM是X86计算机系统中传统的、标准的和必须的功能电路,用于保持实时时钟、存储配置信息和定时唤醒系统等。这一部分的功能电路,现在都已经被集成到X86平台CPU/芯片组的内部,在本说明书中,称之为内部RTC/CMOS RAM。
由于X86计算机系统的开放性和兼容性的要求,内部RTC/CMOS RAM中各寄存器的功能和作用、访问它们的地址和方式等,都有明确的、标准的行业技术规范,要求与PC/AT最初所采用的MC146818芯片兼容。因此,所有运行在X86平台上的系统软件(如操作系统、中间件)和应用软件,都是依照PC/AT的标准规范,来访问内部RTC/CMOS RAM。
为了保证内部RTC/CMOS RAM能够持续工作,一般采用图2所示的电路,在系统完全断电的情况下,由后备电池对内部RTC/CMOS RAM供电,提供的电流一般小于10μA。但是实际上,由于芯片内部设计和制造工艺方面的原因,有些X86平台CPU/芯片组需要较大的电流来维持内部RTC/CMOS RAM工作,例如,Intel于2010年发布的新款嵌入式X86 CPU Atom E6xx系列(代号Tunnel Creek),需要消耗高达33~36μA的电流。
以上述CPU为例,选取常用的Panasonic CR2032钮扣型锂电池(尺寸Φ20.0mm×3.2mm,标称容量225mAH)作为后备电池,RTC/CMOS RAM数据的有效保持时间,可通过计算系统完全断电情况下的电池使用寿命来评估:
电池使用寿命(年)=[电池标称容量(mAH)×1000]/[输出电流(μA)×24×365]
=[225×1000]/[33×24×365]=0.78(年)
显然,对于需要免维护长期使用的、要求高可用性(High Availability)的场合,尤其是对于嵌入式应用(比如车载电脑、医疗仪器、工业现场控制等),这样的电池使用寿命是不能令人满意的:在较短时间内后备电池将耗尽,造成实时时钟紊乱、配置信息丢失,必须更换电池和重新配置系统(在某些情况下这甚至是做不到的),对产品存储、产品维护和服务、系统可用性和用户体验都是很不利的。
发明内容
在X86计算机系统中,为了获得较长的RTC/CMOS RAM数据的有效保持时间,通常采用的方法有如下几种:
1.最直接的方法是采用较大容量的板载后备电池。这种方法增加成本;需要占用较大的PCB面积;电池使用寿命延长的时间比较有限。如在上例中选取Panasonic CR2450钮扣型锂电池,尺寸增加到Φ24.5mm×5.0mm,标称容量增加到620mAH,电池使用寿命只增加到2.14年。
2.配备超大容量的外接后备电池(如干电池),但明显需要占用更大的系统空间。
3.采用充电电路和可充电电池作为后备电池。这种方法增加较多的成本;在系统完全断电的情况下,也不能保证RTC/CMOS RAM数据的长期有效性。
4.采用低电流的外部RTC/CMOS RAM取代内部RTC/CMOS RAM。如前文所述,所有运行在X86平台上的软件,都是依照PC/AT的标准规范,来访问内部RTC/CMOS RAM。也就是说,采用这种方法时,需要为各种操作系统提供相应的驱动程序;同时,不排除存在兼容性问题的可能。
为了解决现有方法的不足,本发明提供一种X86平台上的双RTC/CMOS RAM互相复制/备份数据的方法,由硬件和固件结合实现,在X86计算机系统中,以低的硬件成本,大大延长RTC/CMOS RAM数据的有效保持时间,提高系统的可用性;本发明提供的方法,无需驱动程序的支持,对所有运行在X86平台上的系统软件(如操作系统、中间件)和应用软件,都能保证完全的兼容性。
本发明的技术方案详述如下:
硬件结构包括内部RTC/CMOS RAM[101](存在于在X86平台CPU/芯片组[100]的内部)、外部RTC/CMOS RAM[102](存在于在X86平台CPU/芯片组[100]的外部)、串行通讯接口[103]、后备电池[104],以及后备供电电路[105]。内部RTC/CMOS RAM[101]由系统电源Vcc1供电;后备供电电路[105]综合后备电池[104]的Vbat输入和系统电源Vcc2输入,产生Vbackup电源输出,为外部RTC/CMOS RAM[102]供电;串行通讯接口[103]将外部RTC/CMOS RAM[102]和X86平台CPU/芯片组[100]连接,固件程序通过串行通讯接口[103]访问外部RTC/CMOS RAM[102]。
外部RTC/CMOS RAM[102]采用低电流的RTC/CMOS RAM芯片(电流消耗一般小于1μA),它需要一直被供电;内部RTC/CMOS RAM[101]在系统完全断电的情况下不被供电,即此时内部RTC/CMOSRAM[101]是不工作的。
固件程序包括初始化固件程序和SMI固件程序,它们被嵌入到系统的Bios(基本输入输出系统)/Bootloader(启动引导装载程序)的代码中。固件程序在以下时间,完成外部RTC/CMOS RAM[102]与内部RTC/CMOS RAM[101]之间相互的数据复制/备份:
1.当系统开机(Power on)或恢复(Resume)后,执行到嵌入的初始化固件程序时,完成从外部RTC/CMOS RAM[102]到内部RTC/CMOS RAM[101]的数据复制。
2.此后,当系统睡眠状态(Sleep state,包括S0,S3和S4/S5等)将要发生转移(比如从S0向S3或S4/S5转移)时,执行或被触发执行嵌入的SMI固件程序,完成从内部RTC/CMOS RAM[101]到外部RTC/CMOS RAM[102]的数据备份。
上述第2点的实现机制是:当系统处于非ACPI模式(non-ACPI mode)时,系统睡眠状态的转移(如S0到S5,即从运行状态到关机状态),最终是由电源管理SMI中断服务程序,对ACPI寄存器组中的PM1控制寄存器(PM1 Control Register)实施写操作来实现的。所谓“执行嵌入的SMI固件程序”,指的是在对PM1控制寄存器实施写操作之前,执行嵌入到电源管理SMI中断服务程序中的SMI固件程序,完成从内部RTC/CMOS RAM[101]到外部RTC/CMOS RAM[102]的数据复制。
当系统处于ACPI模式(ACPI mode)时,系统睡眠状态的转移(如S0到S3或S4,即从运行状态到等待或休眠状态),最终是由软件(AML程序、操作系统或应用程序)对ACPI寄存器组中的PM1控制寄存器实施写操作来实现的。设置X86平台CPU/芯片组的SMI触发功能,使得软件对PM1控制寄存器实施写操作的时刻,一个SMI(在本说明书中,称为Sleep SMI)能够被触发。所谓“被触发执行嵌入的SMI固件程序”,指的是在软件对PM1控制寄存器实施写操作的时刻,Sleep SMI被触发,转而执行SleepSMI中断服务程序,执行到嵌入其中的SMI固件程序,完成从内部RTC/CMOS RAM[101]到外部RTC/CMOSRAM[102]的数据备份。
综上所述,本发明的硬件成本低,结构简单;外部RTC/CMOS RAM[102]与内部RTC/CMOS RAM[101]互相复制/备份数据的机制新颖独特,既保证了工作状态时内部RTC/CMOS RAM[101]数据的有效性(即保证了软件的全面兼容性,无需驱动程序的支持),又利用外部RTC/CMOS RAM[102]大大延长了保持有效数据的时间(与X86平台CPU/芯片组要求的维持电流的大小无关);嵌入到Bios/Bootloader中的固件程序,使得外部RTC/CMOS RAM[102]对软件来说是透明的(存在但看不见),不占用软件运行的时间和资源,不影响系统的工作效率。
附图说明
图1为本发明所述X86平台上的双RTC/CMOS RAM数据备份方法的硬件结构框图。
图2为一般X86计算机系统所采用的内部RTC/CMOS RAM供电电路示意图。
图3为本发明所述X86平台上的双RTC/CMOS RAM数据备份方法的初始化固件程序流程框图。
图4为本发明所述X86平台上的双RTC/CMOS RAM数据备份方法的的SMI固件程序流程框图。
具体实施方式
以下结合附图1,对本发明的典型实施例进行说明。
硬件结构包括内部RTC/CMOS RAM[101]、外部RTC/CMOS RAM[102]、串行通讯接口[103]、后备电池[104],以及后备供电电路[105]。X86平台CPU/芯片组[100]为Intel嵌入式X86 CPU Atom E6xx系列,内部RTC/CMOS RAM[101]存在其中;外部RTC/CMOS RAM[102]采用NXP PCF8563低电流实时时钟/日历芯片;串行通讯接口采用SMBus或I2C总线,后备电池采用Panasonic CR2032钮扣型锂电池。系统电源Vcc1在系统完全断电的情况下为0V,在工作状态下为为3.3V,为内部RTC/CMOS RAM[101]供电;系统电源Vcc2可以采用系统电源Vcc1或其它系统电源,通过后备供电电路[105],在工作状态下节省后备电池[104]的消耗,也可以不采用任何电源。
固件程序包括初始化固件程序和SMI固件程序,它们被嵌入到系统的Bios/Bootloader的代码中,它们各自的流程框图如附图3和附图4所示。
系统开机或恢复(如按下Power button或Sleep button等电源管理按键)后,Bios/Bootloader开始执行,执行到嵌入的初始化固件程序时,外部RTC/CMOS RAM[102]的当前数据,被复制到内部RTC/CMOSRAM[101],如附图3所示。
此后,内部RTC/CMOS RAM[101]中的数据是可以被正常改变的,如用户进入Bios Setup更改系统时间和配置、在DOS下用Date/Time命令更改系统时间、在Windows XP下更改系统时间或者设置系统唤醒等。
如果系统处于非ACPI模式(如上电自检POST阶段或DOS操作系统下),按下电源管理按键后,将执行电源管理SMI中断服务程序,其最终操作是对ACPI寄存器组中的PM1控制寄存器实施写操作。在此操作之前,执行嵌入到电源管理SMI中断服务程序中的SMI固件程序,内部RTC/CMOS RAM[101]的当前数据,被备份到外部RTC/CMOS RAM[102],如附图4所示。
如果系统处于ACPI模式(如Windows XP操作系统下),系统进入关机/休眠/等待状态——无论是电源管理按键、软关机操作或者应用程序所引起——最终是由软件(AML程序、操作系统或应用程序)对ACPI寄存器组中的PM1控制寄存器实施写操作来实现的。在Intel Atom E6xx系列CPU中,SMI使能寄存器的第2位设置为使能,可在软件对PM1控制寄存器实施写操作的时刻,Sleep SMI被触发,转而执行Sleep SMI中断服务程序,嵌入其中的SMI固件程序也就被执行,内部RTC/CMOS RAM[101]的当前数据,被备份到外部RTC/CMOS RAM[102],如附图4所示。
现在的X86平台CPU/芯片组(包括Intel、AMD、Nvidia和Via等公司的芯片)的设计都是符合APCI规范的,也都有相应的SMI使能寄存器,能够使能本说明书中所述的Sleep SMI,因此本发明的方法是具有普遍适用性的。
本典型实施例中,NXP PCF8563芯片的电流消耗为250nA(0.25μA),Panasonic CR2032钮扣型锂电池的标称容量为225mAH,RTC/CMOS RAM数据的有效保持时间,可通过计算系统完全断电情况下的电池使用寿命来评估:
电池使用寿命(年)=[电池标称容量(mAH)×1000]/[输出电流(μA)×24×365]
=[225×1000]/[0.25×24×365]=102.7(年)
为进一步降低成本和减小PCB面积占用,换用更小的后备电池如Panasonic CR1025钮扣型锂电池(尺寸Φ10.0mm×2.5mm,标称容量30mAH),也可获得13.7年的电池使用寿命。
综上所述,采用本发明的X86平台上的双RTC/CMOS RAM数据备份方法,实现了在系统工作的情况下,内部RTC/CMOS RAM数据有效和可访问,在完全断电的情况下,外部RTC/CMOS RAM长期保持当前数据;无需驱动程序的支持,不影响系统运行效率,对软件提供了完全的兼容性;硬件成本低,器件易获得;在各种X86平台CPU/芯片组上易于实施,具有通用性。
应当说明的是,以上仅是对本发明的一个典型实施例的详细说明,而非对本发明的限制。相关领域的技术人员,在不脱离本发明的精神和范围的情况下,还可以作出各种变换或变化(包括对程序流程),因此所有等同的技术方案也应该属于本发明专利申请书的保护范围,此范围以本发明所附权利要求书为准。

Claims (3)

1.X86平台上的双RTC/CMOS RAM数据备份方法,其特征在于:采用外部RTC/CMOS RAM[102],与内部RTC/CMOS RAM[101]互相复制/备份数据(前者存在于在X86平台CPU/芯片组[100]的外部,后者存在于X86平台CPU/芯片组[100]的内部);外部RTC/CMOS RAM[102]需要一直被供电,内部RTC/CMOS RAM[101]在系统完全断电的情况下不被供电。
2.X86平台上的双RTC/CMOS RAM数据备份方法,其特征在于:固件程序包括初始化固件程序和SMI固件程序,它们被嵌入到系统的Bios(基本输入输出系统)/Bootloader(启动引导装载程序)的代码中;当系统开机(Power on)或恢复(Resume)后,执行嵌入的初始化固件程序,完成从外部RTC/CMOSRAM[102]到内部RTC/CMOS RAM[101]的数据复制,此后当系统睡眠状态(Sleep State,包括S0,S3和S4/S5等)将要发生转移时,执行或被触发执行嵌入的SMI固件程序,完成从内部RTC/CMOSRAM[101]到外部RTC/CMOS RAM[102]的数据备份。
3.根据权利要求1和2所述的X86平台上的双RTC/CMOS RAM数据备份方法,其特征在于:硬件结构包括内部RTC/CMOS RAM[101]、外部RTC/CMOS RAM[102]、串行通讯接口[103]、后备电池[104],以及后备供电电路[105];内部RTC/CMOS RAM[101]由系统电源Vcc1供电,后备供电电路[105]综合后备电池[104]的Vbat输入和系统电源Vcc2输入,产生Vbackup电源输出,为外部RTC/CMOSRAM[102]供电;串行通讯接口[103]将外部RTC/CMOS RAM[102]和X86平台CPU/芯片组[100]连接,固件程序通过串行通讯接口[103]访问外部RTC/CMOS RAM[102]。
CN2011101868624A 2011-07-05 2011-07-05 X86平台上的双rtc/cmos ram数据备份方法 Pending CN102866936A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011101868624A CN102866936A (zh) 2011-07-05 2011-07-05 X86平台上的双rtc/cmos ram数据备份方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011101868624A CN102866936A (zh) 2011-07-05 2011-07-05 X86平台上的双rtc/cmos ram数据备份方法

Publications (1)

Publication Number Publication Date
CN102866936A true CN102866936A (zh) 2013-01-09

Family

ID=47445815

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011101868624A Pending CN102866936A (zh) 2011-07-05 2011-07-05 X86平台上的双rtc/cmos ram数据备份方法

Country Status (1)

Country Link
CN (1) CN102866936A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107591185A (zh) * 2017-09-14 2018-01-16 郑州云海信息技术有限公司 一种mcs系统下检测bbu兼容性的测试方法和系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101000570A (zh) * 2006-01-10 2007-07-18 英业达股份有限公司 计算机平台开机配置存储器备援处理方法及系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101000570A (zh) * 2006-01-10 2007-07-18 英业达股份有限公司 计算机平台开机配置存储器备援处理方法及系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107591185A (zh) * 2017-09-14 2018-01-16 郑州云海信息技术有限公司 一种mcs系统下检测bbu兼容性的测试方法和系统

Similar Documents

Publication Publication Date Title
CN104620234B (zh) 减小外围部件快速互连链路中的延迟
US9042197B2 (en) Power fail protection and recovery using low power states in a data storage device/system
CN101859173B (zh) 待机休眠状态下的计算机主机板的节电装置及其主机板
JP3943665B2 (ja) スリープ制御方法、およびイベント通知方法
KR101512493B1 (ko) 저전력 시스템온칩
US7437575B2 (en) Low power mode for device power management
CN102193765B (zh) 显示信息更新的装置及方法
JP3974510B2 (ja) コンピュータ装置、電力管理方法、およびプログラム
US9568983B1 (en) Power cut off mode for conserving power in electronic devices
CN101930279A (zh) 用于计算机主机板的节电电子装置及其计算机主机板
CN201867678U (zh) 在休眠下可降低耗电量的计算机主机板
CN1415085A (zh) 睡眠状态转换
US20090271644A1 (en) Energy efficient method to wake host system for charging battery powered portable devices via bus powered external i/o ports
CN103765409A (zh) 有功率效率的处理器体系结构
TWI670602B (zh) 電子器件及省電快取記憶體使用之方法
CN102057344A (zh) 睡眠处理器
KR20110021927A (ko) 전력 소모를 감소시키기 위해 슬립 상태를 제공하는 제 2 메모리 컨트롤러를 구비한 집적 회로 및 그 방법
ATE421119T1 (de) Verhinderung von datenverlust aufgrund von stromausfall
CN102692948B (zh) 片上系统实现的实时时钟低功耗控制电路
KR20120030763A (ko) 계층적 전력 제어 회로, 이를 이용한 전력 제어 방법, 및 이를 포함하는 SoC 장치
CN101145036A (zh) 电源管理结构及管理机制
CN104460925A (zh) 一种基于申威平台的电源管理实现方法
CN100561405C (zh) 计算机系统节电状态下的电源管理方法
US20040250147A1 (en) Uninterrupted system operation
CN101051242A (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
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20130109