CN100445953C - 一种区分系统冷启动和热启动的方法及装置 - Google Patents
一种区分系统冷启动和热启动的方法及装置 Download PDFInfo
- Publication number
- CN100445953C CN100445953C CNB2007100029813A CN200710002981A CN100445953C CN 100445953 C CN100445953 C CN 100445953C CN B2007100029813 A CNB2007100029813 A CN B2007100029813A CN 200710002981 A CN200710002981 A CN 200710002981A CN 100445953 C CN100445953 C CN 100445953C
- Authority
- CN
- China
- Prior art keywords
- value
- module
- register
- cold start
- warm start
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种区分系统冷启动和热启动的方法及装置,属于系统设计领域。为了降低通信系统成本,提高系统稳定性,本发明提出了一种区分系统冷启动和热启动的方法:在复杂可编程逻辑器件中设置寄存器;系统复位,CPU读取寄存器的值,并将读取出的值保存到内存中;复杂可编程逻辑器件重置寄存器的值;CPU根据内存中的值来区分系统是冷启动还是热启动。本发明还提供了一种区分系统冷启动和热启动的装置,装置包括设置模块、读取模块、保存模块、重置模块和区分模块。采用本发明方法降低了系统成本,提高了系统的稳定性。
Description
技术领域
本发明涉及系统设计领域,特别涉及一种区分系统冷启动和热启动的方法及装置。
背景技术
在通信设备的设计中,我们常常需要区分系统是冷启动还是热启动,所谓冷启动是指系统从没有电源输入到输入电源启动的过程,所谓热启动是指系统处于上电状态,通过复位重新启动一次系统配置的过程。通信系统在冷启动的过程中,需要初始化大量的芯片配置和相关的路由管理等表项,这个过程对大型设备(比如路由器等)可能需要花费很长的时间(大型核心路由器可能需要几十分钟才能完成初始化的工作)。在通信系统正常运营时,长时间的业务中断可能是不被允许的。但是,网上正常运营的设备也不可避免的会遇到软件升级、故障重启等问题,那么我们如何解决这些设备因软件升级、故障重启而导致的长时间业务中断的问题呢?实际上,在软件升级或故障重启的时候,系统的相关配置是不需要重新设置的。为了解决快速启动的问题,人们引入了冷启动和热启动的概念,当系统冷启动的时候,系统需要完整的配置整个系统,而当热启动的时候,系统仅仅需要配置改变了的部分,这样,系统启动的速度就会很快,业务中断的时间也会很短。同时,区分系统是冷启动还是热启动也是系统监控的需要。系统的重新启动对正在运营的设备来说是一个很严重的问题,用户需要对这个问题进行监控,软件需要向后台监控平台发送冷启动和热启动的故障情况。
在目前现有技术中有两种方法可以用来区分系统的冷启动和热启动。第一种方法为:如图1所示,在系统启动的过程中,CPLD(Complex Programmable Logic Device-复杂可编程逻辑器件)将会通过编程采集A点的电平值,如果能够采集到A点的电平值有从0到1的跳变,则系统属于冷启动,否则系统属于热启动。CPLD采集到冷启动或热启动的状态后,CPU将这个状态位读出,上报管理控制系统。第二种方法为:在CPU系统启动前,系统在Flash中设置一些标志位,上电后系统清除一些标志位来区分系统是冷启动还是热启动。但是这两种方法都有一些缺点,第一种方法由于要采集A点的电平值,所以就要增加采集电路,而采集电路由电阻、电容及一些保护电路组成,这样就会增加系统的复杂程度,另外这种方法还对电源要求较高,要求电源上电的时候纹波要小,这样就大大地提高了系统的电源成本,同时CPLD编程复杂,需要使用时钟来采集A点的电平变化,由于上升沿是一个缓慢上升的过程,因此要求CPLD采用滤波等算法才能正确的识别A点的状态变化,这样就会占用CPLD的资源,提高了系统的成本;第二种方法需要依赖软件来实现,如果系统软件出现运行错误等严重故障的时候,CPU可能会对Flash进行误操作,使区分冷启动还是热启动的信息位失去意义,同时,如果CPU系统发生PCI挂死等严重故障而产生重新启动的时候,系统无法区分是冷启动还是热启动。
发明内容
为了降低通信系统的投入成本,提高通信系统的稳定性,本发明实施例提出了一种区分系统冷启动和热启动的方法,所述方法包括:
在复杂可编程逻辑器件中设置寄存器;
系统复位,CPU读取所述寄存器的值,并将读取出的值保存到内存中;
所述复杂可编程逻辑器件重置所述寄存器的值;
CPU根据内存中的值来区分系统是冷启动还是热启动。
本发明实施例还提供了一种区分系统冷启动和热启动的装置,所述装置包括设置模块、读取模块、保存模块、重置模块和区分模块;
所述设置模块用于在复杂可编程逻辑器件中设置寄存器;
所述读取模块用于在系统复位时,读取所述设置模块设置的寄存器中的值,并将读取出的值发送给所述保存模块;
所述保存模块用于接收所述读取模块发送的寄存器的值,并将该寄存器的值保存到内存中;
所述重置模块用于在所述保存模块将寄存器的值保存到内存中后,重置所述设置模块设置的寄存器中的值;
所述区分模块用于根据所述保存模块保存的寄存器的值来区分系统是冷启动还是热启动;
所述区分模块包括比较单元和识别单元;
所述比较单元用于将所述保存模块保存的寄存器的值分别与预先设置的系统冷启动和热启动的识别值进行比较,并将比较结果发送给所述识别单元;
所述识别单元用于接收所述比较单元发送的比较结果,并根据比较结果识别系统为冷启动还是热启动,如果比较结果与系统冷启动的识别值相同,则识别系统为冷启动,如果比较结果与系统热启动的识别值相同,则识别系统为热启动。
本发明实施例的有益效果:
1.由于本发明实施例在复杂可编程逻辑器件中设置了寄存器,这样就可以去掉一些电路,降低了系统的复杂度,也降低了系统的成本。
2.由于本发明实施例根据内存中的值来区分系统是冷启动还是热启动,大大地提高了系统可靠性,无论系统是否发生误操作,寄存器的值都能准确的定位系统是冷启动还是热启动。
附图说明
图1是现有技术中实现区分系统冷启动和热启动的原理示意图;
图2是本发明实施例实现区分系统冷启动和热启动的原理示意图;
图3是本发明实施例实现区分系统冷启动和热启动的方法流程图;
图4是本发明实施例区分系统冷启动和热启动的装置的结构图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,但不作为对本发明的限定。
实施例
本发明实施例采用CPLD和CPU来实现区分系统是冷启动还是热启动,参见图2。在CPLD中设置一个8位的寄存器,该寄存器上电不需要复位,且初始值为0,而且该寄存器只响应外部的读操作,不能写入。在系统启动的过程中,CPU读取该寄存器的值,并将读取出的值保存到内存中,CPLD程序将寄存器的值置为0xFF,CPU根据内存中的值来区分系统是冷启动还是热启动。
采用上述方案实现区分系统是冷启动还是热启动的方法,具体包括以下步骤,参见图3:
步骤101:系统复位。
系统复位包括上电复位和带电复位,上电复位时,CPLD中8位寄存器的值会清零,即值为0x00,带电复位时,CPLD中8位寄存器的值为上一次系统复位时,CPLD程序设置的值。
步骤102:CPU读取CPLD中8位寄存器的值,并将读取出的值保存到内存中。
8位寄存器的值如表1所示:
8位寄存器的值 | 系统状态 |
0x00 | 系统为冷启动 |
0xFF | 系统为热启动 |
表1
步骤103:CPLD程序将8位寄存器的值设置为0xFF。
CPLD程序设置的0xFF为系统热启动的识别值,但不限于0xFF,在实际的应用中,热启动的识别值还可以是0xAA等等。
步骤104:CPU检查内存中的值,如果内存中的值为0x00,则执行步骤105,如果内存中的值为0xFF,则执行步骤106。
步骤105:系统为冷启动,执行步骤107。
步骤106:系统为热启动,执行步骤107。
步骤107:等待系统下一次复位,执行步骤101。
本实施例CPLD中的寄存器是8位的寄存器,但不限于8位寄存器,在实际的应用中,还可以是4位的寄存器或12位的寄存器等等。另外,还可以通过编译软件实现对CPLD中设置的寄存器的初始值为0的设置,例如Quartus4.0软件。
本实施例由于CPU根据内存中的值来区分系统是冷启动还是热启动,这样降低了系统的投入成本及复杂度,同时也提高了系统的可靠性,无论系统是否发生误操作,寄存器的值都能准确的定位系统是冷启动还是热启动。
在实际的应用中,CPU通过读取内存中的值来区分系统是冷启动还是热启动的方法可以由以下的程序来实现:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity test is
--generic(maxtime:time:=60ms;
--mintime:time:=30ms);
port(
--3.时钟信号
RST_CPU_N:in std_logic;--GPIO1脚,该信号作为CPLD的复位信号
--3.时钟信号
CLK_CPLD_25M:in std_logic;--CPLD的时钟信号,系统25M的时钟
--5.数据地址
X_ROMDA:inout std_logic_vector(7 downto 0);--CPU的数据线
X_ROMWE_N:in std_logic;--CPU的写使能低有效
X_ROMOE_N:in std_logic;--CPU的读使能低有效
X_ROMADD:in std_logic_vector(6 downto O);--CPU的低位地址线
CPLD_CS_N:in std_logic;--PLD的片选寄存器
);
end test;
architecture testl of test is
signal REG POWERUP:std_logic_vector(7 downto 0);
begin
--cpu读操作
read:process(CLK_CPLD_25M,RST_CPLD,READ_RST_FLAG)
begin
if(RST_CPLD=’0’)then
X_ROMDA<=″ZZZZZZZZ″;
elsif(rising_edge(CLK_CPLD_25M))then
CPLD_LEDO<=’0’;
if(CPLD_CS_N=’0’and CPLD_OE_FLAG=’0’)then--CPLD和地址的片选选通
case X_ROMADD is
when″0001011″=>X_ROMDA<=
REG_POWERUP:
READ_RST_FLAG<=’1’;
when others=>X_ROMDA<=″ZZZZZZZZ″;
end case;
else
X_ROMDA<=″ZZZZZZZZ″;
READ_RST_FLAG<=’0’;
end if;
end if;
end process read;
--上电复位和CPU复位的区分电路
readCpuReset:process(READ_RST_FLAG)
begin
if(READ_RST_FLAG’event and READ_RST_FLAG=’0’)then
REG_POWERUP<=″10101010″;
end if;
end process readCpuReset;
end test1;
参见图4,本发明实施例还提供了一种区分系统冷启动和热启动的装置,装置包括设置模块、读取模块、保存模块、重置模块和区分模块;
设置模块用于在复杂可编程逻辑器件中设置寄存器;
读取模块用于在系统复位时,读取设置模块设置的寄存器中的值,并将读取出的值发送给保存模块;
保存模块用于接收读取模块发送的寄存器的值,并将该寄存器的值保存到内存中;
重置模块用于在保存模块将寄存器的值保存到内存中后,重置设置模块设置的寄存器中的值;
区分模块用于根据保存模块保存的寄存器的值来区分系统是冷启动还是热启动。
区分模块包括比较单元和识别单元;
比较单元用于将保存模块保存的寄存器的值分别与预先设置的系统冷启动和热启动的识别值进行比较,并将比较结果发送给识别单元;
识别单元用于接收比较单元发送的比较结果,并根据比较结果识别系统为冷启动还是热启动,如果比较结果与系统冷启动的识别值相同,则识别系统为冷启动,如果比较结果与系统热启动的识别值相同,则识别系统为热启动。
本实施例由于根据保存模块保存的寄存器的值来区分系统是冷启动还是热启动,这样降低了系统的投入成本及复杂度,同时也提高了系统的可靠性,无论系统是否发生误操作,设置模块设置的寄存器的值都能准确的定位系统是冷启动还是热启动。
以上所述的实施例只是本发明较优选的具体实施方式,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。
Claims (5)
1.一种区分系统冷启动和热启动的方法,其特征在于,所述方法包括:
在复杂可编程逻辑器件中设置寄存器;
系统复位,CPU读取所述寄存器的值,并将读取出的值保存到内存中;
所述复杂可编程逻辑器件重置所述寄存器的值;
CPU根据内存中的值来区分系统是冷启动还是热启动。
2.如权利要求1所述的区分系统冷启动和热启动的方法,其特征在于,所述CPU根据内存中的值来区分系统是冷启动还是热启动具体包括:CPU将内存中的值分别与预先设置的系统冷启动和热启动的识别值进行比较,如果所述内存中的值与系统冷启动的识别值相同,则系统为冷启动,如果所述内存中的值与系统热启动的识别值相同,则系统为热启动。
3.如权利要求1所述的区分系统冷启动和热启动的方法,其特征在于,所述寄存器为上电不需要复位,且初始值为0的寄存器。
4.如权利要求3所述的区分系统冷启动和热启动的方法,其特征在于,所述寄存器为只读型寄存器。
5.一种区分系统冷启动和热启动的装置,其特征在于,所述装置包括设置模块、读取模块、保存模块、重置模块和区分模块;
所述设置模块用于在复杂可编程逻辑器件中设置寄存器;
所述读取模块用于在系统复位时,读取所述设置模块设置的寄存器中的值,并将读取出的值发送给所述保存模块;
所述保存模块用于接收所述读取模块发送的寄存器的值,并将该寄存器的值保存到内存中;
所述重置模块用于在所述保存模块将寄存器的值保存到内存中后,重置所述设置模块设置的寄存器中的值;
所述区分模块用于根据所述保存模块保存的寄存器的值来区分系统是冷启动还是热启动;
所述区分模块包括比较单元和识别单元;
所述比较单元用于将所述保存模块保存的寄存器的值分别与预先设置的系统冷启动和热启动的识别值进行比较,并将比较结果发送给所述识别单元;
所述识别单元用于接收所述比较单元发送的比较结果,并根据比较结果识别系统为冷启动还是热启动,如果比较结果与系统冷启动的识别值相同,则识别系统为冷启动,如果比较结果与系统热启动的识别值相同,则识别系统为热启动。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007100029813A CN100445953C (zh) | 2007-01-31 | 2007-01-31 | 一种区分系统冷启动和热启动的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007100029813A CN100445953C (zh) | 2007-01-31 | 2007-01-31 | 一种区分系统冷启动和热启动的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101008900A CN101008900A (zh) | 2007-08-01 |
CN100445953C true CN100445953C (zh) | 2008-12-24 |
Family
ID=38697344
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007100029813A Expired - Fee Related CN100445953C (zh) | 2007-01-31 | 2007-01-31 | 一种区分系统冷启动和热启动的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100445953C (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109922014A (zh) * | 2019-02-01 | 2019-06-21 | 南京国电南自软件工程有限公司 | 一种交换机冷热启动判断方法及系统 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101776933B (zh) * | 2009-12-25 | 2012-05-30 | 福建星网锐捷网络有限公司 | 一种冷热启动的判定电路、装置及交换机 |
CN103299275B (zh) | 2010-11-29 | 2017-03-15 | 汤姆逊许可公司 | 用于区别冷启动和热启动的方法和设备 |
CN103793032B (zh) * | 2012-11-02 | 2017-09-29 | 华为技术有限公司 | 用于确定上电复位的方法和装置 |
CN104657173B (zh) * | 2015-02-03 | 2017-12-22 | 烽火通信科技股份有限公司 | 一种升级单板软件不中断业务的处理方法 |
KR20170139730A (ko) * | 2016-06-09 | 2017-12-20 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
CN108228217A (zh) * | 2018-01-18 | 2018-06-29 | 晶晨半导体(上海)股份有限公司 | 一种系统升级方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1540503A (zh) * | 2003-04-23 | 2004-10-27 | 华为技术有限公司 | 能识别冷热启动的系统及加快系统启动速度的方法 |
US20050055598A1 (en) * | 2003-09-04 | 2005-03-10 | Jen-De Chen | Booting method capable of executing a warm boot or a cold boot when a CPU crash occurs and computer system therefor |
CN1627269A (zh) * | 2003-12-12 | 2005-06-15 | 华为技术有限公司 | 一种识别系统冷启动热启动的方法 |
CN1776566A (zh) * | 2005-11-25 | 2006-05-24 | 港湾网络有限公司 | 区别系统上电复位和带电复位的方法 |
-
2007
- 2007-01-31 CN CNB2007100029813A patent/CN100445953C/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1540503A (zh) * | 2003-04-23 | 2004-10-27 | 华为技术有限公司 | 能识别冷热启动的系统及加快系统启动速度的方法 |
US20050055598A1 (en) * | 2003-09-04 | 2005-03-10 | Jen-De Chen | Booting method capable of executing a warm boot or a cold boot when a CPU crash occurs and computer system therefor |
CN1627269A (zh) * | 2003-12-12 | 2005-06-15 | 华为技术有限公司 | 一种识别系统冷启动热启动的方法 |
CN1776566A (zh) * | 2005-11-25 | 2006-05-24 | 港湾网络有限公司 | 区别系统上电复位和带电复位的方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109922014A (zh) * | 2019-02-01 | 2019-06-21 | 南京国电南自软件工程有限公司 | 一种交换机冷热启动判断方法及系统 |
CN109922014B (zh) * | 2019-02-01 | 2020-12-29 | 南京国电南自软件工程有限公司 | 一种交换机冷热启动判断方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101008900A (zh) | 2007-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100445953C (zh) | 一种区分系统冷启动和热启动的方法及装置 | |
CN109471770B (zh) | 一种系统管理方法和装置 | |
CN105404525B (zh) | 管理计算机系统中的基本输入输出系统配置的方法及装置 | |
CN1770707B (zh) | 计算机簇中基于法定成员数关无响应服务器的装置和方法 | |
US10846186B2 (en) | Central processing unit CPU hot-remove method and apparatus, and central processing unit CPU hot-add method and apparatus | |
CN106814826B (zh) | 控制服务器机柜中气流的系统及方法 | |
US7536604B2 (en) | Method and system for reconfiguring functional capabilities in a data processing system with dormant resources | |
CN104679619A (zh) | 服务器与服务器检测方法 | |
US8892805B2 (en) | High performance system that includes reconfigurable protocol tables within an ASIC wherein a first protocol block implements an inter-ASIC communications protocol and a second block implements an intra-ASIC function | |
CN104750510A (zh) | 一种芯片启动方法及多核处理器芯片 | |
US7971098B2 (en) | Bootstrap device and methods thereof | |
CN103164316B (zh) | 硬件监视器 | |
CN104657243A (zh) | 服务器与服务器检测方法 | |
CN110083491A (zh) | 一种bios初始化方法、装置、设备及存储介质 | |
CN105677373A (zh) | 一种节点热插拔的方法和numa节点 | |
CN102169442A (zh) | 使用usb设备进行系统引导的方法、设备、装置及系统 | |
CN110187994A (zh) | 一种故障隔离方法、设备和故障隔离系统 | |
US20200314172A1 (en) | Server system and management method thereto | |
CN104572561A (zh) | 实现clump整体热插拔的方法和系统 | |
US11347288B2 (en) | Power management in a blade enclosure | |
CN111475378A (zh) | 一种扩展器Expander的监控方法、装置及设备 | |
CN110633176A (zh) | 工作系统切换方法、立方星和切换装置 | |
CN105991608A (zh) | 分布式设备的业务处理方法、装置及分布式设备 | |
WO2023217186A1 (zh) | 一种片上系统及相关系统上电恢复方法 | |
CN117992270B (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20081224 Termination date: 20170131 |
|
CF01 | Termination of patent right due to non-payment of annual fee |