CN102866936A - X86平台上的双rtc/cmos ram数据备份方法 - Google Patents
X86平台上的双rtc/cmos ram数据备份方法 Download PDFInfo
- 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
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(实时时钟/互补金属氧化物半导体的随机访问存储器)、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]。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107591185A (zh) * | 2017-09-14 | 2018-01-16 | 郑州云海信息技术有限公司 | 一种mcs系统下检测bbu兼容性的测试方法和系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101000570A (zh) * | 2006-01-10 | 2007-07-18 | 英业达股份有限公司 | 计算机平台开机配置存储器备援处理方法及系统 |
-
2011
- 2011-07-05 CN CN2011101868624A patent/CN102866936A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101000570A (zh) * | 2006-01-10 | 2007-07-18 | 英业达股份有限公司 | 计算机平台开机配置存储器备援处理方法及系统 |
Cited By (1)
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 |