一种安全复位存储设备的方法和装置制造方法

文档序号:6630055阅读:468来源:国知局
一种安全复位存储设备的方法和装置制造方法
【专利摘要】本发明公开了一种安全复位存储设备的方法和装置,用以解决现有技术下,电路板在复位前没有对涉及存储设备的相关数据进行保护,从而造成复位后系统整体运行错误的问题。该方法包括:可编程器件接收复位信号后向中央处理器CPU发送中断信号;CPU执行中断处理操作,并在完成中断处理操作后通知可编程器件,所述中断处理操作用于对当前未执行完毕的系统任务进行紧急处理;可编程器件接收到所述通知后,执行所述复位信号完成复位。
【专利说明】一种安全复位存储设备的方法和装置

【技术领域】
[0001]本申请涉及电子设备领域,特别是涉及一种安全复位存储设备的方法和装置。

【背景技术】
[0002]随着信息技术的日益发展,要求通信设备能够处理和保存越来越多的数据,所以通信设备中的电路板一般都设计了相关存储设备,如硬盘、电子盘、CF卡等。在电路板的运行过程中,必不可少要进行一些电路板复位操作,如软件版本升级的复位、看门狗复位、按键复位等。这样就带来一个问题,电路板在运行过程中的这些“异常”复位,特别是系统或用户访问存储设备的同时被复位,经常出现系统重新启动后,系统不能正常访问存储设备,表现为磁盘坏道、访问超时、文件系统破坏等现象。上述所指的“异常复位”,也可以理解为硬复位,不同于Linux操作系统自带的reboot系统命令,它没有进行任何复位前保护处理,它会引起存储设备内部电路单元的工作异常,或者磁盘坏道或者文件系统破坏,且容易数据丢失;而reboot命令在复位处理器前会进行一些软件预处理,如执行复位前的系统脚本、杀掉进程以及保存数据等,可以安全复位系统,本文所指的复位均指这些异常复位。
[0003]现有技术下,电路板的复位逻辑如图1所示。一般电路板都会通过现场可编程门阵列(Field Programmable Gate Array, FPGA)/复杂可编程逻辑器件(ComplexProgrammable Logic Device,CPLD)来控制处理复位信号。首先,复位信号进入FPGA/CPLD,然后由它来控制处理器、内存以及外设(包含存储设备)的复位。像按键复位、看门狗复位、逻辑复位(如由软件控制FPGA/CPLD控制整板复位)等,无法进行类似Linux系统自带的reboot命令所执行的保护动作,这样,就会导致上述磁盘坏道、访问超时、文件系统破坏等现象。现有的电路板复位技术,其关注点集中在硬件电路复位信号的处理,没有考虑复位前对存储设备的保护,因而存在以下缺点:
[0004]首先,若执行上述复位操作,特别在访问存储设备的同时进行复位,会导致上述磁盘坏道、访问超时、文件系统破坏等现象。
[0005]其次,若在访问存储设备的时候执行上述复位操作,也可能造成系统运行错误。
[0006]例如Linux操作系统有一种称之为后台写(write-back)的机制,即数据并没有直接写(write-through)入到硬盘中,而是先写到缓存里,在内核满足一定的条件后再通过后台写入硬盘。后台写入比直接写入硬盘更有效,但也容易出错,如果数据未写入硬盘之前突然执行上述复位操作,则缓存中的数据就会丢失,如果丢失的数据含有重要的信息,则可能意味着文件系统(如果有的话)已不完整,从而造成系统整体运行错误。


【发明内容】

[0007]本发明实施例提供一种安全复位存储设备的方法和装置,用以解决现有技术下,电路板在复位前没有对涉及存储设备的相关数据进行保护,从而造成复位后系统整体运行错误的问题。
[0008]本发明实施例提供的具体技术方案如下:
[0009]一方面,本发明通过本申请中的一个实施例,提供如下技术方案:
[0010]一种安全复位存储设备的方法,所述方法包括:
[0011]可编程器件接收复位信号后向中央处理器CPU发送中断信号;
[0012]CPU执行中断处理操作,并在完成中断处理操作后通知可编程器件,所述中断处理操作用于对当前未执行完毕的系统任务进行紧急处理;
[0013]可编程器件接收到所述通知后,执行所述复位信号完成复位。
[0014]所述中断处理操作具体包括:
[0015]对所有进程发送停止运行信号;
[0016]将缓存中的数据写入存储设备;
[0017]执行中断处理操作过程中,在对所有进程发送停止运行信号,并将缓存中的数据写入存储设备之后,再次向所有进程发送强制停止运行信号,以及再次将缓存中的数据写入存储设备。
[0018]在中断处理操作中,在对所述所有进程发送停止运行信号之前,还包括对中断处理操作进行加锁操作。
[0019]可选地,在中断处理操作中,在对所述所有进程发送停止运行信号之前,还包括:
[0020]向指定进程发送通知,指示所述指定进程执行复位前的紧急处理操作。
[0021]另一方面,本发明通过本申请中的一个实施例,提供如下技术方案:
[0022]一种安全复位存储设备的装置,其特征在于,包括可编程器件和中央处理器CPU,其中,
[0023]可编程器件,用于接收复位信号后向CPU发送中断信号,以及在CPU完成中断处理操作后执行复位信号完成复位;
[0024]CPU,用于接收由可编程器件发送的中断信号后执行中断处理操作,并在完成中断处理操作后通知可编程器件,所述中断处理操作用于对当前未执行完毕的系统任务进行紧急处理。
[0025]在执行中断处理操作时,所述CPU具体用于:
[0026]对所有进程发送停止运行信号;
[0027]将缓存中的数据写入存储设备;
[0028]对所述所有进程发送停止运行信号之前,向指定进程发送通知,指示所述指定进程执行复位前紧急处理操作。
[0029]CPU进一步用于:
[0030]在对所有进程发送停止运行信号,并将缓存中的数据写入存储设备之后,向所有进程发送强制停止运行信号,再次将缓存中的数据写入存储设备。
[0031]在对所有进程发送停止运行信号之前,对所述中断处理操作执行加锁操作。
[0032]可编程器件为现场可编程门阵列FPGA或是复杂可编程逻辑器件CPLD。
[0033]本发明有益效果如下:
[0034]首先,在电路板复位前,将系统中的缓存数据写入存储设备,避免了复位后缓存数据丢失造成的存储设备数据不同步、进一步造成系统整体运行异常的问题。
[0035]其次,应用中断处理操作对涉及存储设备的相关数据进行复位前的保护,无需人为干预。

【专利附图】

【附图说明】
[0036]图1为现有技术下电路板的复位逻辑图;
[0037]图2为本申请实施例中的电路板的复位逻辑图;
[0038]图3为本申请实施例中的安全复位存储设备方法的流程图;
[0039]图4为本申请实施例中的安全复位存储设备方法的一个具体应用场景流程图;
[0040]图5为本申请实施例中用于安全复位存储设备的装置结构示意图。

【具体实施方式】
[0041]为了使本申请所属【技术领域】中的技术人员更清楚地理解本申请,下面结合附图,通过具体实施例对本申请技术方案做详细描述。
[0042]本申请中的电路板的复位逻辑如图2所示,其中,可编程器件FPGA/CPLD与CPU、存储设备和其它外设的复位引脚相连接,并且还与CPU的中断引脚相连。复位逻辑包括:
[0043]当FPGA/CPLD接收到复位信号后,并不直接对与其相连的设备发送复位信号,而是将CPU的中断引脚相连产生中断信号;
[0044]CPU接收中断信号后由CPU执行中断处理操作,中断处理操作将系统中的缓存数据写入存储设备,从而保持存储设备的数据同步;
[0045]CPU完成中断处理操作后通知FPGA/CPLD,FPGA/CPLD向与其相连的设备发送复位信号完成复位。
[0046]参阅图3所示,本发明实施例中,安全复位存储设备的具体流程如下:
[0047]步骤300:可编程器件接收复位信号后向CPU发送中断信号;
[0048]步骤310:CPU执行中断处理操作,并在完成中断处理操作后通知可编程器件,其中,中断处理操作用于对当前未执行完毕的系统任务进行紧急处理;中断处理操作。
[0049]具体包括:
[0050]本实施例中,在执行步骤310时,首先对中断处理操作执行加锁操作,并清除中断处理标志,这样处理是为了避免中断处理操作在执行过程中不受其他中断的干扰,使中断处理操作正常执行。
[0051]在对中断处理操作进行加锁操作后,就开始执行对涉及到存储设备的数据进行保护的关键操作,具体的,CPU可以对所有进程发送停止运行信号,从而确保所有进程停止对存数设备进行读写,再将缓存中的数据写入存储设备,这样处理是为了确保在复位时刻,存在于缓存当中的即将要写入存储设备的数据真正地写入了存储设备,而不是仅仅标识数据存储位置的数据结构已更新,但数据并未在复位前真正写入,从而有效保证了数据的同步。
[0052]经过上述操作,在完成复位操作后,当进程再次访问存储设备时,可以根据标识数据存储位置的数据结构正确地访问存储设备。
[0053]实际应用中的某些应用场景下,会存在部分有能力忽略系统“停止运行信号”的进程,为了避免复位操作对此类进程造成不可回退的影响,会在执行复位操作之前,向所有进程发送“强制停止运行信号”,忽略系统“停止运行信号”的进程也会被强制停止运行。
[0054]向所有进程发送“强制停止运行信号”后,CPU会再次执行将相应的缓存数据写入存储设备的操作,这样,可以在执行复位操作之前,再次确保数据的同步,而不被任何进程所干扰,所有缓存中的数据均安全写入存储设备,从而避免发生存储设备上的数据不同步,进一步导致复位后进程访问存储设备出错的问题,进而保障了存储设备的使用安全。
[0055]在上述过程中,若某些进程不能够被强制禁止,为了保障此类进程不因强制停止而未完成其必须完成的关键操作,较佳的,在向上述进程发送“强制停止运行信号”之前,还需要向此类进程发送“通知”,指示所述进程执行复位前紧急处理操作,并在接收到指定进程反馈紧急处理操作成功的消息时,再开始对上述所有进程发送停止运行信号,从而确保重要进程不会因强制中断而出错,有效避免了因强制停止而出现的异常情况。
[0056]步骤320:可编程器件接收到上述通知后,执行复位信号完成复位。
[0057]下面采用一个具体的应用场景对上述流程作出进一步详细阐释,参阅图4所示,具体复位流程如下:
[0058]步骤400:可编程器件(如,FPGA/CPLD)接收到复位信号后,由可编程器件中的中断产生单元将与FPGA/CPLD连接的CPU的相应中断引脚电位置低触发中断。
[0059]步骤401:CPU对中断处理操作进行加锁操作。
[0060]步骤402 =CPU对所有进程发送停止运行信号即SIGTERM信号。
[0061]较佳的,这一操作可通过调用内核函数sys_kill函数,将SIGTERM信号作为参数传入sys_kill函数实现。
[0062]步骤403 =CPU将缓存中的数据写入存储设备。
[0063]较佳的,这一操作可通过调用内核函数SyS_Sync()函数实现。
[0064]步骤404 =CPU向所有进程发送SIGKILL信号。
[0065]较佳的,这一操作可通过调用内核函数sys_kill函数实现,将SIGKILL信号作为参数传入sys_kill函数实现。
[0066]步骤405 =CPU将缓存中的数据写入存储设备。
[0067]较佳的,这一操作可通过调用内核函数sys_sync()实现。
[0068]步骤406:可编程器件接收到中断处理操作结束的通知后,执行复位信号完成复位。
[0069]本申请实话例中,较佳的,操作系统为Linux操作系统,因此本实施例中提及的(PU执行的中断处理操作具体为Linux操作系统中的中断服务处理程序,上述步骤402至步骤405都属于中断处理程序,同样地,在上述步骤中提及的信号也均为Linux内核信号。
[0070]Linux操作系统中的中断服务处理操作分为中断顶半部和中断底半部两部分执行,其中顶半部用来处理尽快且能够快速完成的工作,否则会阻塞其他中断的到来以及释放CPU资源给用户或进程;而底半部用来处理耗时的任务,在系统更安全的时间内执行,避免造成系统阻塞或CPU得不到释放。
[0071]基于Linux中断机制的特点,本实施例中的中断处理操作中,对中断处理操作进行加锁操作在中断处理处理操作的顶半部执行,涉及到对存储设备的相关数据进行保护的关键操作402至步骤405在中断中断处理处理操作的底半部执行。
[0072]参阅图5所示,本发明实施例中,用于安全复位存储设备的装置包括可编程器件和CPU,其中,
[0073]可编程器件50,用于接收复位信号后向CPU发送中断信号,以及在CPU完成中断处理操作后执行复位信号完成复位;
[0074]CPU51,用于接收由可编程器件50发送的中断信号后执行中断处理操作,并在完成中断处理操作后通知可编程器件50,其中,中断处理操作用于对当前未执行完毕的系统任务进行紧急处理。
[0075]在执行中断处理操作时,CPU51具体用于:
[0076]对所有进程发送停止运行信号;
[0077]将缓存中的数据写入存储设备。
[0078]对所有进程发送停止运行信号之前,向指定进程发送通知,指示指定进程执行复位前紧急处理操作。
[0079]CPU51 进一步用于:
[0080]在对所有进程发送停止运行信号,并将缓存中的数据写入存储设备之后,再次向所有进程发送强制停止运行信号,以及再次将缓存中的数据写入存储设备。
[0081]CPU51 进一步用于:
[0082]在对所有进程发送停止运行信号之前,对中断处理操作执行加锁操作。
[0083]本发明实话例中,可编程器件为FPGA或是CPLD。
[0084]综上所述,本发明实施例中,由于在电路板的复位操作中,针对涉及电路板上的存储设备的相关数据进行了保护,因此得到电路板复位后确保存储设备正常工作,进一步确保整个系统正常工作的技术效果。
[0085]本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0086]本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0087]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0088]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0089]尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
[0090]显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
【权利要求】
1.一种安全复位存储设备的方法,其特征在于,所述方法包括: 可编程器件接收复位信号后向中央处理器CPU发送中断信号; CPU执行中断处理操作,并在完成中断处理操作后通知可编程器件,所述中断处理操作用于对当前未执行完毕的系统任务进行紧急处理; 可编程器件接收到所述通知后,执行所述复位信号完成复位。
2.如权利要求1所述的方法,其特征在于,所述中断处理操作包括: 对所有进程发送停止运行信号; 将缓存中的数据写入存储设备。
3.如权利要求2所述的方法,其特征在于,所述中断处理操作还包括: 对所述所有进程发送停止运行信号之前,向指定进程发送通知,指示所述指定进程执行复位前紧急处理操作。
4.如权利要求2或3所述的方法,其特征在于,进一步包括: 执行中断处理操作过程中,在对所有进程发送停止运行信号,并将缓存中的数据写入存储设备之后,向所有进程发送强制停止运行信号,将缓存中的数据写入存储设备。
5.如权利要求2或3所述的方法,其特征在于,所述中断处理操作还包括: 在对所有进程发送停止运行信号之前,对所述中断处理操作执行加锁操作。
6.一种安全复位存储设备的装置,其特征在于,包括可编程器件和中央处理器CPU,其中, 可编程器件,用于接收复位信号后向CPU发送中断信号,以及在CPU完成中断处理操作后执行复位信号完成复位; CPU,用于接收由可编程器件发送的中断信号后执行中断处理操作,并在完成中断处理操作后通知可编程器件,所述中断处理操作用于对当前未执行完毕的系统任务进行紧急处理。
7.如权利要求6所述的装置,其特征在于,在执行中断处理操作时,所述CPU具体用于: 对所有进程发送停止运行信号; 将缓存中的数据写入存储设备; 对所述所有进程发送停止运行信号之前,向指定进程发送通知,指示所述指定进程执行复位前紧急处理操作。
8.如权利要求6或7所述的装置,其特征在于,所述CPU进一步用于: 在对所有进程发送停止运行信号,并将缓存中的数据写入存储设备之后,再次向所有进程发送强制停止运行信号,以及再次将缓存中的数据写入存储设备。
9.如权利要求6或7所述的装置,其特征在于,所述CPU进一步用于: 在对所有进程发送停止运行信号之前,对所述中断处理操作执行加锁操作。
10.如权利要求6或7所述的装置,其特征在于,所述可编程器件为现场可编程门阵列FPGA或是复杂可编程逻辑器件CPLD。
【文档编号】G06F12/02GK104317728SQ201410539190
【公开日】2015年1月28日 申请日期:2014年10月13日 优先权日:2014年10月13日
【发明者】韩毅宏, 王宇博, 张义 申请人:大唐移动通信设备有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1