首页 / 专利库 / 电脑零配件 / 协处理器 / 一种电源切换方法及系统

一种电源切换方法及系统

阅读:337发布:2020-05-13

专利汇可以提供一种电源切换方法及系统专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种电源切换方法及系统,采用CPLD复杂可编程逻辑处理器作为 协处理器 进行电源检测,实现主电源和备用电源的切换。本发明采用CPLD 硬件 平台执行掉电监测,能够通过并行流 水 的优化方式控制各个功能硬件模 块 的电源,从而改善功能模块上电掉电实时性,与通用处理器CPU硬件控制电源模块相比,本发明采用C语言开发并与CPLD协处理器协同工作,能够有效的改善电源控制实现效率,减少电源控制实现的开发周期。,下面是一种电源切换方法及系统专利的具体信息内容。

1.一种电源切换方法,其特征在于,采用CPLD复杂可编程逻辑处理器作为协处理器进行电源检测,实现主电源和备用电源的切换,所述方法包括:
所述主电源正常工作状态下,上电启动所述CPLD,将所述CPLD从关闭状态启动到全功能状态;
检测主电源侧的掉电信号
当检测所述主电源侧的掉电信号为有效信号时,所述CPLD将电源从所述主电源切换至所述备用电源;
从所述主电源切换至所述备用电源的同时,将当前内存中所有的数据存储至磁盘上的存储区域;
其中,所述主电源正常工作状态下,上电启动所述CPLD,将所述CPLD从关闭状态启动到全功能状态,包括:
所述主电源正常工作状态下,所述CPLD上电初始化管脚状态,当检测到所述主电源的PSU掉电管脚和PSU在位管脚为有效信号时,则所述CPLD从所述关闭状态启动到标准预处理状态;
所述CPLD进入所述标准预处理状态,检测PCH上电管脚的状态,当所述PCH上电管脚为有效信号时,则所述CPLD从所述标准预处理状态启动到标准状态;
所述CPLD进入所述标准状态,检测所述PSU上电管脚的状态,当所述PSU上电管脚为无效信号时,则所述CPLD进入所述关闭状态,检测延时管脚和系统上电管脚,当所述延时管脚和所述系统上电管脚均为有效信号时,则所述CPLD从所述标准状态启动到全功能预处理状态;
所述CPLD进入所述全功能预处理状态,检测所述PSU上电管脚的状态,当所述PSU上电管脚为无效信号时,则所述CPLD进入所述关闭状态,检测系统上电转储失败管脚和系统所有PSU上电管脚,当所述系统上电转储失败管脚和所述系统所有PSU上电管脚均为无效信号时,则所述CPLD从所述全功能预处理状态启动到全功能状态;
所述CPLD进入所述全功能状态,检测所述PSU上电管脚的状态,当所述PSU上电管脚为无效信号时,则所述CPLD进入所述关闭状态,检测所述延时管脚的状态,当所述延时管脚为无效信号时,则所述CPLD从所述全功能状态进入到标准状态。
2.根据权利要求1所述的电源切换方法,其特征在于,所述当检测所述主电源侧的掉电信号为有效信号时,所述CPLD将电源从所述主电源切换至所述备用电源,包括:
将所述CPLD的转储初始化管脚设置为有效信号,所述CPLD从全功能状态进入到转储初始化状态;
所述CPLD进入所述转储初始化状态,检测所述系统上电转储失败管脚和所述PSU上电管脚的状态,当所述系统上电转储失败管脚为有效信号,且所述PSU上电管脚为无效信号时,则所述CPLD从所述转储初始化状态进入到转储预处理状态;
当检测到所述延时管脚和所述系统所有PSU上电管脚均为无效信号,则所述CPLD从所述转储预处理状态进入到备用电池测试延时状态;
所述CPLD进入所述备用电池测试延时状态,则系统根据第一预设时间延时后进入备用电池测试状态,当检测到电池测试延时管脚为有效信号,所述PSU上电管脚为无效信号、所述系统上电转储失败管脚为有效信号且备电测试管脚为有效信号时,延迟第二预设时间后返回到所述转储初始化状态;
所述存储系统进入所述转储初始化状态,则所述存储系统进行IO预处理操作,所述CPLD将电源从所述主电源切换至所述备用电源。
3.根据权利要求2所述的电源切换方法,其特征在于,所述从所述主电源切换至所述备用电源的同时,将当前内存中所有的数据存储至磁盘上的存储区域,包括:
所述存储系统进入所述转储初始化状态,按照预设时间间隔进行IO掉电循环监测,当所述PSU上电管脚为有效信号时,则存储系统进入转储初始化延时状态并重新进入初始化所述CPLD进入所述转储初始化状态;
所述CPLD进入所述转储初始化状态,则检测所述系统掉电确认管脚的状态,当所述系统掉电确认管脚为有效信号时,所述CPLD进入转储状态;
当所述存储系统进入所述转储状态时,则所述存储系统进行数据安全保护状态,所述CPLD切换到所述备用电源,将当前内存中所有的数据存储至磁盘上的存储区域磁盘上的所述存储区域。
4.一种电源切换系统,其特征在于,采用CPLD复杂可编程逻辑处理器作为协处理器进行电源检测,实现主电源和备用电源的切换,所述系统包括:
CPLD启动单元,用于所述主电源正常工作状态下,上电启动所述CPLD,将所述CPLD从关闭状态启动到全功能状态;
检测单元,用于检测主电源侧的掉电信号;
切换单元,用于当检测所述主电源侧的掉电信号为有效信号时,所述CPLD将电源从所述主电源切换至所述备用电源;
存储单元,用于从所述主电源切换至所述备用电源的同时,将当前内存中所有的数据存储至磁盘上的存储区域;
其中,所述CPLD启动单元包括:
第一启动单元,用于所述主电源正常工作状态下,所述CPLD上电初始化管脚状态,当检测到所述主电源的PSU掉电管脚和PSU在位管脚为有效信号时,则所述CPLD从所述关闭状态启动到标准预处理状态;
第二启动单元,用于所述CPLD进入所述标准预处理状态,检测PCH上电管脚的状态,当所述PCH上电管脚为有效信号时,则所述CPLD从所述标准预处理状态启动到标准状态;
第三启动单元,用于所述CPLD进入所述标准状态,检测所述PSU上电管脚的状态,当所述PSU上电管脚为无效信号时,则所述CPLD进入所述关闭状态,检测延时管脚和系统上电管脚,当所述延时管脚和所述系统上电管脚均为有效信号时,则所述CPLD从所述标准状态启动到全功能预处理状态;
第四启动单元,用于所述CPLD进入所述全功能预处理状态,检测所述PSU上电管脚的状态,当所述PSU上电管脚为无效信号时,则所述CPLD进入所述关闭状态,检测系统上电转储失败管脚和系统所有PSU上电管脚,当所述系统上电转储失败管脚和所述系统所有PSU上电管脚均为无效信号时,则所述CPLD从所述全功能预处理状态启动到全功能状态;
第五启动单元,用于所述CPLD进入所述全功能状态,检测所述PSU上电管脚的状态,当所述PSU上电管脚为无效信号时,则所述CPLD进入所述关闭状态,检测所述延时管脚的状态,当所述延时管脚为无效信号时,则所述CPLD从所述全功能状态进入到标准状态。
5.根据权利要求4所述的电源切换系统,其特征在于,所述切换单元包括:
第一切换单元,用于将所述CPLD的转储初始化管脚设置为有效信号,所述CPLD从全功能状态进入到转储初始化状态;
第二切换单元,用于所述CPLD进入所述转储初始化状态,检测所述系统上电转储失败管脚和所述PSU上电管脚的状态,当所述系统上电转储失败管脚为有效信号,且所述PSU上电管脚为无效信号时,则所述CPLD从所述转储初始化状态进入到转储预处理状态;
第三切换单元,用于当检测到所述延时管脚和所述系统所有PSU上电管脚均为无效信号,则所述CPLD从所述转储预处理状态进入到备用电池测试延时状态;
第四切换单元,用于所述CPLD进入所述备用电池测试延时状态,则系统根据第一预设时间延时后进入备用电池测试状态,当检测到电池测试延时管脚为有效信号,所述PSU上电管脚为无效信号、所述系统上电转储失败管脚为有效信号且备电测试管脚为有效信号时,延迟第二预设时间后返回到所述转储初始化状态;
第五切换单元,用于所述存储系统进入所述转储初始化状态,则所述存储系统进行IO预处理操作,所述CPLD将电源从所述主电源切换至所述备用电源。
6.根据权利要求5所述的电源切换系统,其特征在于,所述存储单元包括:
第一转换单元,用于所述存储系统进入所述转储初始化状态,按照预设时间间隔进行IO掉电循环监测,当所述PSU上电管脚为有效信号时,则存储系统进入转储初始化延时状态并重新进入初始化所述CPLD进入所述转储初始化状态;
第二转换单元,用于所述CPLD进入所述转储初始化状态,则检测所述系统掉电确认管脚的状态,当所述系统掉电确认管脚为有效信号时,所述CPLD进入转储状态;
存储子单元,用于当所述存储系统进入所述转储状态时,则所述存储系统进行数据安全保护状态,所述CPLD切换到所述备用电源,将当前内存中所有的数据存储至磁盘上的存储区域磁盘上的所述存储区域。

说明书全文

一种电源切换方法及系统

技术领域

[0001] 本发明涉及存储系统技术领域,特别是涉及一种电源切换方法及系统。

背景技术

[0002] 在计算时代,存储系统在技术领域中占据的地位愈加的明显,存储系统在运行过程中,确保数据的有效性,实时性以及稳定性。而对于存储系统最主要的方面一是主程序的可靠性,另外就是存储系统硬件电源的可靠性。而电源是存储系统最基础的保证,如果在存储系统中电源供电出现异常,而运行过程中未对该异常进行监测或监测到未进行有效的处理,存储系统会停止处理当前业务,丢失客户的数据资料,给客户造成重大损失。

发明内容

[0003] 本发明的目的在于提出一种电源切换方法及系统。
[0004] 基于上述问题,本发明提出了一种存储系统电源掉电监测的机制,通过采用硬件CPLD进行初级电源掉电监测,切换备用电源供电,缩短电源掉电处理流程的时间,从而有效确保存储系统对掉电异常实时处理的有效性。
[0005] 为达到上述目的,本发明提供了以下技术方案:
[0006] 一种电源切换方法,采用CPLD复杂可编程逻辑处理器作为协处理器进行电源检测,实现主电源和备用电源的切换,所述方法包括:
[0007] 检测主电源侧的掉电信号
[0008] 当检测所述主电源侧的掉电信号为有效信号时,所述CPLD将电源从所述主电源切换至所述备用电源;
[0009] 从所述主电源切换至所述备用电源的同时,将当前内存中所有的数据存储至磁盘上的存储区域。
[0010] 优选的,在所述检测主电源侧的掉电信号之前,还包括:
[0011] 所述主电源正常工作状态下,上电启动所述CPLD,将所述CPLD从关闭状态启动到全功能状态。
[0012] 其中,所述主电源正常工作状态下,上电启动所述CPLD,将所述CPLD从关闭状态启动到全功能状态,包括:
[0013] 所述主电源正常工作状态下,所述CPLD上电初始化管脚状态,当检测到所述主电源的PSU掉电管脚和PSU在位管脚为有效信号时,则所述CPLD从所述关闭状态启动到标准预处理状态;
[0014] 所述CPLD进入所述标准预处理状态,检测PCH上电管脚的状态,当所述PCH上电管脚为有效信号时,则所述CPLD从所述标准预处理状态启动到标准状态;
[0015] 所述CPLD进入所述标准状态,检测所述PSU上电管脚的状态,当所述PSU上电管脚为无效信号时,则所述CPLD进入所述关闭状态,检测延时管脚和系统上电管脚,当所述延时管脚和所述系统上电管脚均为有效信号时,则所述CPLD从所述标准状态启动到全功能预处理状态;
[0016] 所述CPLD进入所述全功能预处理状态,检测所述PSU上电管脚的状态,当所述PSU上电管脚为无效信号时,则所述CPLD进入所述关闭状态,检测系统所有PSU上电管脚和系统上电转储失败管脚,当所有PSU上电管脚和所述系统上电转储失败管脚均为无效信号时,则所述CPLD从所述全功能预处理状态启动到全功能状态;
[0017] 所述CPLD进入所述全功能状态,检测所述PSU上电管脚的状态,当所述PSU上电管脚为无效信号时,则所述CPLD进入所述关闭状态,检测所述延时管脚的状态,当所述延时管脚为无效信号时,则所述CPLD从所述全功能状态进入到标准状态。
[0018] 其中,所述当检测所述主电源侧的掉电信号为有效信号时,所述CPLD将电源从所述主电源切换至所述备用电源,包括:
[0019] 将所述CPLD的转储初始化管脚设置为有效信号,所述CPLD从全功能状态进入到转储初始化状态;
[0020] 所述CPLD进入所述转储初始化状态,检测所述系统上电转储失败管脚和所述PSU上电管脚的状态,当所述系统上电转储失败管脚为有效信号,且所述PSU上电管脚为无效信号时,则所述CPLD从所述转储初始化状态进入到转储预处理状态;
[0021] 当检测到所述系统所有上电管脚和所述延时管脚均为无效信号,则所述CPLD从所述转储预处理状态进入到备用电池测试延时状态;
[0022] 所述CPLD进入所述备用电池测试延时状态,则系统根据第一预设时间延时后进入备用电池测试状态,当检测到电池测试延时管脚为有效信号,所述PSU上电管脚为无效信号、所述系统上电转储失败管脚为有效信号且所述备电测试管脚为有效信号时,延迟第二预设时间后返回到所述转储初始化状态;
[0023] 所述存储系统进入所述转储初始化状态,则所述存储系统进行IO预处理操作,所述CPLD将电源从所述主电源切换至所述备用电源。
[0024] 其中,所述从所述主电源切换至所述备用电源的同时,将当前内存中所有的数据存储至磁盘上的存储区域,包括:
[0025] 所述存储系统进入所述转储初始化状态,按照预设时间间隔进行IO掉电循环监测,当所述PSU上电管脚为有效信号时,则存储系统进入转储初始化延时状态并重新进入初始化所述CPLD进入所述转储初始化状态;
[0026] 所述CPLD进入所述转储初始化状态,则检测所述系统掉电确认管脚的状态,当所述系统掉电确认管脚为有效信号时,所述CPLD进入转储状态;
[0027] 当所述存储系统进入所述转储状态时,则所述存储系统进行数据安全保护状态,所述CPLD切换到所述备用电源,将当前内存中所有的数据存储至磁盘上的存储区域磁盘上的所述存储区域。
[0028] 一种电源切换系统,采用CPLD复杂可编程逻辑处理器作为协处理器进行电源检测,实现主电源和备用电源的切换,所述系统包括:
[0029] 检测单元,用于检测主电源侧的掉电信号;
[0030] 切换单元,用于当检测所述主电源侧的掉电信号为有效信号时,所述CPLD将电源从所述主电源切换至所述备用电源;
[0031] 存储单元,用于从所述主电源切换至所述备用电源的同时,将当前内存中所有的数据存储至磁盘上的存储区域。
[0032] 优选的,还包括:
[0033] CPLD启动单元,用于所述主电源正常工作状态下,上电启动所述CPLD,将所述CPLD从关闭状态启动到全功能状态。
[0034] 其中,所述CPLD启动单元包括:
[0035] 第一启动单元,用于所述主电源正常工作状态下,所述CPLD上电初始化管脚状态,当检测到所述主电源的PSU掉电管脚和PSU在位管脚为有效信号时,则所述CPLD从所述关闭状态启动到标准预处理状态;
[0036] 第二启动单元,用于所述CPLD进入所述标准预处理状态,检测PCH上电管脚的状态,当所述PCH上电管脚为有效信号时,则所述CPLD从所述标准预处理状态启动到标准状态;
[0037] 第三启动单元,用于所述CPLD进入所述标准状态,检测所述PSU上电管脚的状态,当所述PSU上电管脚为无效信号时,则所述CPLD进入所述关闭状态,检测延时管脚和系统上电管脚,当所述延时管脚和所述系统上电管脚均为有效信号时,则所述CPLD从所述标准状态启动到全功能预处理状态;
[0038] 第四启动单元,用于所述CPLD进入所述全功能预处理状态,检测所述PSU上电管脚的状态,当所述PSU上电管脚为无效信号时,则所述CPLD进入所述关闭状态,检测系统所有PSU上电管脚和系统上电转储失败管脚,当所有PSU上电管脚和所述系统上电转储失败管脚均为无效信号时,则所述CPLD从所述全功能预处理状态启动到全功能状态;
[0039] 第五启动单元,用于所述CPLD进入所述全功能状态,检测所述PSU上电管脚的状态,当所述PSU上电管脚为无效信号时,则所述CPLD进入所述关闭状态,检测所述延时管脚的状态,当所述延时管脚为无效信号时,则所述CPLD从所述全功能状态进入到标准状态。
[0040] 其中,所述切换单元包括:
[0041] 第一切换单元,用于将所述CPLD的转储初始化管脚设置为有效信号,所述CPLD从全功能状态进入到转储初始化状态;
[0042] 第二切换单元,用于所述CPLD进入所述转储初始化状态,检测所述系统上电转储失败管脚和所述PSU上电管脚的状态,当所述系统上电转储失败管脚为有效信号,且所述PSU上电管脚为无效信号时,则所述CPLD从所述转储初始化状态进入到转储预处理状态;
[0043] 第三切换单元,用于当检测到所述系统所有上电管脚和所述延时管脚均为无效信号,则所述CPLD从所述转储预处理状态进入到备用电池测试延时状态;
[0044] 第四切换单元,用于所述CPLD进入所述备用电池测试延时状态,则系统根据第一预设时间延时后进入备用电池测试状态,当检测到电池测试延时管脚为有效信号,所述PSU上电管脚为无效信号、所述系统上电转储失败管脚为有效信号且所述备电测试管脚为有效信号时,延迟第二预设时间后返回到所述转储初始化状态;
[0045] 第五切换单元,用于所述存储系统进入所述转储初始化状态,则所述存储系统进行IO预处理操作,所述CPLD将电源从所述主电源切换至所述备用电源。
[0046] 其中,所述存储单元包括:
[0047] 第一转换单元,用于所述存储系统进入所述转储初始化状态,按照预设时间间隔进行IO掉电循环监测,当所述PSU上电管脚为有效信号时,则存储系统进入转储初始化延时状态并重新进入初始化所述CPLD进入所述转储初始化状态;
[0048] 第二转换单元,用于所述CPLD进入所述转储初始化状态,则检测所述系统掉电确认管脚的状态,当所述系统掉电确认管脚为有效信号时,所述CPLD进入转储状态;
[0049] 存储子单元,用于当所述存储系统进入所述转储状态时,则所述存储系统进行数据安全保护状态,所述CPLD切换到所述备用电源,将当前内存中所有的数据存储至磁盘上的存储区域磁盘上的所述存储区域。
[0050] 经由上述的技术方案可知,与现有技术相比,本发明公开了一种电源切换方法及系统,采用CPLD复杂可编程逻辑处理器作为协处理器进行电源检测,实现主电源和备用电源的切换,本发明采用CPLD硬件平台执行掉电监测,能够通过并行流的优化方式控制各个功能硬件模的电源,从而改善功能模块上电掉电实时性,与通用处理器CPU硬件控制电源模块相比,本发明采用C语言开发并与CPLD协处理器协同工作,能够有效的改善电源控制实现效率,减少电源控制实现的开发周期。附图说明
[0051] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0052] 图1为本发明实施例提供的一种电源切换方法的流程示意图;
[0053] 图2为本发明实施例面向存储系统电源掉电检测方法实现过程示意图;
[0054] 图3为本发明实施例提供的一种电源切换系统的结构示意图。

具体实施方式

[0055] 缩略词解释:
[0056] PSU(Power Supply Unit,电源供电设备);
[0057] CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件);
[0058] GPIO(General-Purpose Input/Output Ports,通用I/O端口)。
[0059] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0060] 本发明采用C高级语言进行硬件电源掉电监测的描述,使用通用处理器CPU进行主机端运行主程序,CPLD作为协处理器进行电源监测的硬件加速单元,通过Linux内核驱动对硬件进行实施有效的监测,并确保软件上层进行掉电保护机制处理的有效性。使用CPLD作为协处理器,能够有效的提升硬件监测的执行性能,同时这种实现方式能够有效缩短硬件掉电信号到基于CPLD的切换备电及CPU处理的时间,提高存储系统异常处理的能
[0061] 具体实施过程如下:采用C高级语言完成监测机制的描述,分别生成在通用处理器CPU上运行的主机端程序,以及监测CPLD信号的内核Kernel驱动程序。然后采用GCC编译器对主机端程序及驱动进行编译,生成可在通用处理器上执行的可执行程序文件和驱动程序文件;采用Quartus工具对CPLD上程序进行编译,生成可以运行POF文件。最后,烧写CPLD的程序并在通用处理器CPU上插入内核驱动模块,运行主机端的程序,CPU与CPLD之间采用通用GPIO连接,进行信号传递。
[0062] 请参阅附图1,图1为本发明实施例提供的一种电源切换方法的流程示意图。如图1所示,本实施例提供了一种电源切换方法,采用CPLD复杂可编程逻辑处理器作为协处理器进行电源检测,实现主电源和备用电源的切换,所述方法具体包括如下步骤:
[0063] S101、检测主电源侧的掉电信号。
[0064] 需要说明的是,在该步骤之前还包括:
[0065] 主电源正常工作状态下,上电启动CPLD,将CPLD从关闭状态启动到全功能状态。
[0066] 具体的,主电源正常工作状态下,上电启动CPLD,将CPLD从关闭状态启动到全功能状态,具体包括:
[0067] 主电源正常工作状态下,CPLD上电初始化管脚状态,当检测到主电源的PSU掉电管脚和PSU在位管脚为有效信号时,则CPLD从所述关闭状态启动到标准预处理状态;
[0068] CPLD进入标准预处理状态,检测PCH上电管脚的状态,当PCH上电管脚为有效信号时,则CPLD从标准预处理状态启动到标准状态;
[0069] CPLD进入标准状态,检测PSU上电管脚的状态,当PSU上电管脚为无效信号时,则CPLD进入所述关闭状态,检测延时管脚和系统上电管脚,当延时管脚和系统上电管脚均为有效信号时,则CPLD从标准状态启动到全功能预处理状态;
[0070] CPLD进入全功能预处理状态,检测PSU上电管脚的状态,当PSU上电管脚为无效信号时,则CPLD进入关闭状态,检测系统所有PSU上电管脚和系统上电转储失败管脚,当所有PSU上电管脚和系统上电转储失败管脚均为无效信号时,则CPLD从全功能预处理状态启动到全功能状态;
[0071] CPLD进入全功能状态,检测PSU上电管脚的状态,当PSU上电管脚为无效信号时,则CPLD进入关闭状态,检测延时管脚的状态,当延时管脚为无效信号时,则CPLD从全功能状态进入到标准状态。
[0072] S102、当检测主电源侧的掉电信号为有效信号时,CPLD将电源从主电源切换至备用电源。
[0073] 需要说明的是,当检测主电源侧的掉电信号为有效信号时,CPLD将电源从主电源切换至备用电源,具体包括:
[0074] 将CPLD的转储初始化管脚设置为有效信号,CPLD从全功能状态进入到转储初始化状态;
[0075] CPLD进入转储初始化状态,检测系统上电转储失败管脚和PSU上电管脚的状态,当系统上电转储失败管脚为有效信号,且PSU上电管脚为无效信号时,则CPLD从转储初始化状态进入到转储预处理状态;
[0076] 当检测到系统所有上电管脚和延时管脚均为无效信号,则CPLD从转储预处理状态进入到备用电池测试延时状态;
[0077] CPLD进入备用电池测试延时状态,则系统根据第一预设时间延时后进入备用电池测试状态,当检测到电池测试延时管脚为有效信号,PSU上电管脚为无效信号、系统上电转储失败管脚为有效信号且备电测试管脚为有效信号时,延迟第二预设时间后返回到转储初始化状态;
[0078] 存储系统进入转储初始化状态,则存储系统进行IO预处理操作,CPLD将电源从主电源切换至所述备用电源。
[0079] S103、从主电源切换至备用电源的同时,将当前内存中所有的数据存储至磁盘上的存储区域。
[0080] 需要说明的是,从主电源切换至备用电源的同时,将当前内存中所有的数据存储至磁盘上的存储区域,具体包括:
[0081] 存储系统进入转储初始化状态,按照预设时间间隔进行IO掉电循环监测,当PSU上电管脚为有效信号时,则存储系统进入转储初始化延时状态并重新进入初始化CPLD进入转储初始化状态;
[0082] CPLD进入转储初始化状态,则检测系统掉电确认管脚的状态,当系统掉电确认管脚为有效信号时,CPLD进入转储状态;
[0083] 当存储系统进入转储状态时,则存储系统进行数据安全保护状态,CPLD切换到备用电源,将当前内存中所有的数据存储至磁盘上的存储区域磁盘上的存储区域。
[0084] 具体的,请参阅附图2,图2为本发明实施例面向存储系统电源掉电检测方法实现过程示意图。
[0085] 主机端内核驱动模块及程序实现时主要包括以下步骤:
[0086] 需要说明的是,以下描述的内容中有效信号对应图2中的管脚为1则表明为有效信号,管脚为0则表明为无效信号。
[0087] 1、CPLD上电初始化管脚状态,监测AC上电PSU掉电管脚(ac_good_n)有效和PSU在位PSU在位管脚(psu_presnet_n)有效时,CPLD从关机阶段进入标准预处理阶段;
[0088] 2、CPLD进入标准预处理阶段后,检测PCH上电管脚(pwrgd_pch_apwrok_pld)的状态,如果PCH上电管脚(pwrgd_pch_apwrok_pld)为有效时,CPLD从标准预处理阶段进入标准阶段,否则持续等待;
[0089] 3、CPLD进入标准阶段后,.检测PSU掉电管脚(ac_good_n)的状态,如过PSU掉电管脚(ac_good_n)的状态为无效时,CPLD进入关机阶段;检测硬件延时管脚(fm_slps3_n_flt)和系统上电管脚(sys_pwrup),两个管脚均为有效时,CPLD从标准阶段进入全功能预处理阶段,否则等待;
[0090] 4、CPLD进入全功能预处理阶段后,检测PSU掉电管脚(ac_good_n)的状态,如过PSU掉电管脚(ac_good_n)的状态为无效时,CPLD进入关机阶段;检测系统全部上电管脚(pwrgd_all)和系统上电转储失败管脚(pwrgd_undumped_fail)均为有效时,CPLD进入全功能阶段;
[0091] 5、CPLD进入全功能阶段后,检测PSU掉电管脚(ac_good_n)的状态,如过PSU掉电管脚(ac_good_n)的状态为无效时,CPLD进入关机阶段;如果硬件延时管脚(fm_slps3_n_flt)为无效,则进入标准阶段;
[0092] 6、内核驱动模块,初始化IO定时器,把IO定时器添加到内核定时器处理队列中,创建IO定时器设备文件/dev/module_name;
[0093] 7、主机端程序打开设备文件/dev/module_name,创建电源掉电监测队列,主机端程序创建掉电监测线程,并初始化IO管脚,等待电源掉电监测队列事件;
[0094] 8、主机端程序把转储初始化管脚(dump_armed_n_flt)设置为有效,促使CPLD从全功能阶段进入转储初始化阶段。当CPLD进入此阶段时,主机程序已经全速运行,并实时检测掉电信号;
[0095] 9、CPLD进入转储初始化阶段后,此阶段为最终阶段,也就是掉电监测最后一个重要环节。在此环节中,当系统上电转储失败管脚(pwrgd_undumped_fail)为有效时,PSU掉电管脚(ac_good_n)为无效时,存储系统进入转储预处理阶段;如果系统掉电确认管脚(ok_redunce_pwr_flt)为有效,则存储系统进入转储阶段;如果系统全部上电管脚(pwrgd_all)为无效,硬件延时管脚(fm_slps3_n_flt)为无效则进入标准阶段;如果备电测试管脚(bbu_test_n_flt)为无效,则进入备用电池测试延时阶段;
[0096] 10、如果存储系统进入电池测试延时阶段,则系统根据延时10s后进入正式备用电池测试阶段。该阶段会测试备用电池的可靠性,并根据电池测试延时管脚(bat_test_timeout)有效,PSU掉电管脚(ac_good_n)无效,系统上电转储失败管脚(pwrgd_undumped_fail)有效,bbu_test_n_flt有效,延迟55s后重新回到转储初始化阶段;
[0097] 11、如果存储系统进入转储预处理阶段,则存储系统进行IO预处理操作,CPLD切换备用电源。该阶段在5S内每个50ms进行IO掉电循环监测,当PSU掉电管脚(ac_good_n)为有效时,则系统进入转储初始化延时阶段并重新进入初始化CPLD进入转储初始化阶段;如果此时系统掉电确认管脚(ok_redunce_pwr_flt)为有效,则进入转储阶段;
[0098] 12、存储系统如果进入转储阶段,则存储系统进行数据安全保护阶段,CPLD切换备用电源,主程序对数据进行现场保护,把当前内存中所有的数据写入到磁盘中,写入完毕后系统进入重启,进入关闭阶段。
[0099] 本发明提供了一种电源切换方法,该方法采用CPLD复杂可编程逻辑处理器作为协处理器进行电源检测,实现主电源和备用电源的切换,本发明采用CPLD硬件平台执行掉电监测,能够通过并行流水的优化方式控制各个功能硬件模块的电源,从而改善功能模块上电掉电实时性,与通用处理器CPU硬件控制电源模块相比,本发明采用C语言开发并与CPLD协处理器协同工作,能够有效的改善电源控制实现效率,减少电源控制实现的开发周期。
[0100] 本发明在上述公开的方法的基础上,还公开了对应的系统。
[0101] 下面对本发明实施例提供的内存垃圾回收系统进行介绍,需要说明的是,有关该内存垃圾回收系统的说明可参照上文提供的内存垃圾回收方法,以下并不做赘述。
[0102] 请参阅附图3,图3为本发明实施例提供的一种电源切换系统的结构示意图。如图3所示,本实施例提供了一种电源切换系统,采用CPLD复杂可编程逻辑处理器作为协处理器进行电源检测,实现主电源和备用电源的切换,所述系统结构具体包括如下:
[0103] 检测单元301,用于检测主电源侧的掉电信号;
[0104] 切换单元302,用于当检测所述主电源侧的掉电信号为有效信号时,所述CPLD将电源从所述主电源切换至所述备用电源;
[0105] 存储单元303,用于从所述主电源切换至所述备用电源的同时,将当前内存中所有的数据存储至磁盘上的存储区域。
[0106] 具体的,该系统还包括:
[0107] CPLD启动单元,用于所述主电源正常工作状态下,上电启动所述CPLD,将所述CPLD从关闭状态启动到全功能状态。
[0108] 具体的,所述CPLD启动单元包括:
[0109] 第一启动单元,用于所述主电源正常工作状态下,所述CPLD上电初始化管脚状态,当检测到所述主电源的PSU掉电管脚和PSU在位管脚为有效信号时,则所述CPLD从所述关闭状态启动到标准预处理状态;
[0110] 第二启动单元,用于所述CPLD进入所述标准预处理状态,检测PCH上电管脚的状态,当所述PCH上电管脚为有效信号时,则所述CPLD从所述标准预处理状态启动到标准状态;
[0111] 第三启动单元,用于所述CPLD进入所述标准状态,检测所述PSU上电管脚的状态,当所述PSU上电管脚为无效信号时,则所述CPLD进入所述关闭状态,检测延时管脚和系统上电管脚,当所述延时管脚和所述系统上电管脚均为有效信号时,则所述CPLD从所述标准状态启动到全功能预处理状态;
[0112] 第四启动单元,用于所述CPLD进入所述全功能预处理状态,检测所述PSU上电管脚的状态,当所述PSU上电管脚为无效信号时,则所述CPLD进入所述关闭状态,检测系统所有PSU上电管脚和系统上电转储失败管脚,当所有PSU上电管脚和所述系统上电转储失败管脚均为无效信号时,则所述CPLD从所述全功能预处理状态启动到全功能状态;
[0113] 第五启动单元,用于所述CPLD进入所述全功能状态,检测所述PSU上电管脚的状态,当所述PSU上电管脚为无效信号时,则所述CPLD进入所述关闭状态,检测所述延时管脚的状态,当所述延时管脚为无效信号时,则所述CPLD从所述全功能状态进入到标准状态。
[0114] 具体的,所述切换单元302包括:
[0115] 第一切换单元,用于将所述CPLD的转储初始化管脚设置为有效信号,所述CPLD从全功能状态进入到转储初始化状态;
[0116] 第二切换单元,用于所述CPLD进入所述转储初始化状态,检测所述系统上电转储失败管脚和所述PSU上电管脚的状态,当所述系统上电转储失败管脚为有效信号,且所述PSU上电管脚为无效信号时,则所述CPLD从所述转储初始化状态进入到转储预处理状态;
[0117] 第三切换单元,用于当检测到所述系统所有上电管脚和所述延时管脚均为无效信号,则所述CPLD从所述转储预处理状态进入到备用电池测试延时状态;
[0118] 第四切换单元,用于所述CPLD进入所述备用电池测试延时状态,则系统根据第一预设时间延时后进入备用电池测试状态,当检测到电池测试延时管脚为有效信号,所述PSU上电管脚为无效信号、所述系统上电转储失败管脚为有效信号且所述备电测试管脚为有效信号时,延迟第二预设时间后返回到所述转储初始化状态;
[0119] 第五切换单元,用于所述存储系统进入所述转储初始化状态,则所述存储系统进行IO预处理操作,所述CPLD将电源从所述主电源切换至所述备用电源。
[0120] 具体的,所述存储单元303包括:
[0121] 第一转换单元,用于所述存储系统进入所述转储初始化状态,按照预设时间间隔进行IO掉电循环监测,当所述PSU上电管脚为有效信号时,则存储系统进入转储初始化延时状态并重新进入初始化所述CPLD进入所述转储初始化状态;
[0122] 第二转换单元,用于所述CPLD进入所述转储初始化状态,则检测所述系统掉电确认管脚的状态,当所述系统掉电确认管脚为有效信号时,所述CPLD进入转储状态;
[0123] 存储子单元,用于当所述存储系统进入所述转储状态时,则所述存储系统进行数据安全保护状态,所述CPLD切换到所述备用电源,将当前内存中所有的数据存储至磁盘上的存储区域磁盘上的所述存储区域。
[0124] 本发明提供了一种电源切换系统,该系统采用CPLD复杂可编程逻辑处理器作为协处理器进行电源检测,实现主电源和备用电源的切换,本发明采用CPLD硬件平台执行掉电监测,能够通过并行流水的优化方式控制各个功能硬件模块的电源,从而改善功能模块上电掉电实时性,与通用处理器CPU硬件控制电源模块相比,本发明采用C语言开发并与CPLD协处理器协同工作,能够有效的改善电源控制实现效率,减少电源控制实现的开发周期。
[0125] 需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0126] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括上述要素的物品或者设备中还存在另外的相同要素。
[0127] 对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和特点相一致的最宽的范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈