一种保存数据的方法及装置的制作方法

文档序号:6580416阅读:179来源:国知局
专利名称:一种保存数据的方法及装置的制作方法
技术领域
本发明涉及计算机领域,特别是涉及保存数据的方法及装置。
技术背景
随着计算机技术的发展,各行各业都在利用计算机来提高办公效率。各种应用软 件也层出不穷。然而不能保证所有的软件都百分百的运行正常,时而出现大大小小的问题。
其中,有些问题可能只要重启软件即可,有些问题可能导致系统重启。当因故障而 重启系统时,内存中的数据无法保留,也就是说故障现场的相关信息无法被记录和分析,给 后续的故障跟踪、定位和排除带来很大的难度。以及,可能造成重要数据的丢失。
现有技术通过采用内存自刷新方式来解决该问题。这需要芯片组在硬件上支持内 存自刷新,当需要系统重启时,触发内存条进入自刷新模式。在重启后,基本输入输出系统 (Basic Input Output System,BIOS)不初始化保留段内的内存空间。这样,可以将重要的 数据存储在保留段内,则不会因系统重启而丢失数据,并且可以对这部分数据进行分析从 而定位故障。该技术需要芯片组、BIOS和内存条在硬件上的支持。
然而,目前只有少量的芯片组、BIOS和内存条可支持该技术,对于不支持该技术的 设备,因故障而重启系统后,仍然无法保存内存中的数据。发明内容
本发明实施例提供一种保存数据的方法及装置,用于实现在系统重启后,内存中 的数据不丢失。
—种保存数据的方法,该方法由系统单板、转换模块、内存和永久性存储器实现, 其中系统单板包括CPU ;所述方法包括以下步骤
CPU运行应用软件程序;
在出现异常后,CPU将内存中的数据写入转换模块,由转换模块将数据写入永久性 存储器;
CPU执行重启命令,触发系统单板重启;
在重启后,CPU向转换模块发送读命令;
转换模块依据读指令从存储器中读出原属于内存的数据;CPU从转换模块中读出 该数据并写入内存。
一种计算机设备,包括
存储器,用于保存数据;
内存模块,用于保存数据;
系统单板中的CPU,用于运行应用软件程序,在出现异常后,将内存中的数据写入 转换模块;执行重启命令,触发系统单板重启,在重启后,向转换模块发送读命令,以及从转 换模块中读出数据并写入内存;
转换模块,用于将数据写入永久性存储器;以及依据读指令从存储器中读出原属于内存的数据。
本发明实施例中,应用软件出现异常,在系统单板重启前,将内存中的重要数据写 入外挂的永久性存储器,在系统单板重启后,再将存储器中的数据读到内存。避免了因重启 而导致的内存中的数据丢失。


图1为本发明实施例中计算机设备的结构图2为本发明实施例中转换模块的结构图3A为本发明实施例中保存数据的主要方法流程图;3B为本发明实施例中保存数据的详细方法流程图4为本发明实施例中从内存中读出数据的方法流程图5为本发明实施例中LPC的存储模式写时序图6为本发明实施例中fireware的存储模式写时序图7为本发明实施例中将数据写回内存的方法流程图8为本发明实施例中LPC的存储模式读时序图9为本发明实施例中fireware的存储模式读时序图。
具体实施方式
本发明实施例中,应用软件出现异常,在系统单板重启前,将内存中的重要数据写 入外挂的永久性存储器,在系统单板重启后,再将存储器中的数据读到内存。避免了因重启 而导致的内存中的数据丢失。
参见图1,本实施例中的计算机设备包括应用软件模块101、检测模块102、写模块 103、转换模块104、系统单板105、读模块106、存储器107和内存模块108。其中,系统单 板105与转换模块104连接,转换模块104与存储器107连接。系统单板105包括CPU和 芯片组。应用软件模块101、检测模块102、写模块103和读模块106是运行在CPU内且由 软件实现的模块。转换模块104可具体为现场可编程门阵列(Field-Programmable Gate Array,FPGA)或复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)等。存 储器107可以是同步静态随机存取存储器(Synchronous static random access memory, SSRAM)等。内存模块108由内存条实现。
应用软件模块101包括应用软件程序,在应用软件程序出现异常后,生成并发送异常信号。
检测模块102用于在检测到异常信号后,触发写模块103。
写模块103用于将内存108中的数据写入转换模块104。具体的,写模块103依 据系统单板105的时序和总线的数量将内存108中的数据写入转换模块。其中通过系统单 板105产生的LPC时钟信号,使转换模块104与写模块103保持时序一致。写模块103在 完成写操作后,触发应用软件模块101,使应用软件模块101触发CPU执行重启命令。
转换模块104用于将数据写入永久性存储器107 ;以及依据读指令从存储器107 中读出原属于内存108的数据。具体的,转换模块104依据永久性存储器107的地址线和 数据线的数量将数据写入永久性存储器。并且,转换模块104依据来自系统单板105的LPC时钟信号,生成并向存储器107发送时钟信号,使存储器107与转换模块104保持时序一 致。在系统单板105重启后,转换模块104通过与存储器107之间的控制信号将读指令发 送给存储器107,然后从存储器107中读出原属于内存108的数据。
系统单板105用于在应用软件程序出现异常后重启。系统单板105重启后产生复 位信号,触发转换模块复位。
读模块106用于在系统单板105重启后自动启动,并向转换模块104发送读命令; 以及从转换模块104中读出数据并写入内存108。其中,读模块106通过系统单板105与转 换模块104之间的帧信号向转换模块104发送读命令。
存储器107用于保存数据。
内存模块108用于保存数据。
系统单板105通过地址数据复用总线与其它模块传递地址和数据,该地址数据复 用总线通常是4位。而存储器107通过地址线与其它模块传递地址,通过数据线与其它模 块传递数据,即地址和数据通过不同的线路传输。并且通常情况下,存储器107的地址线和 数据线的位数高于4位。这需要转换模块104在系统单板105与存储器107之间进行时序 转换。下面对转换模块104的结构等进行介绍。
参见图2,本实施例中转换模块104包括总线接口 201、地址单元202、写数据单元 203、读数据单元204、时钟单元205、控制单元206和复位接口 207。
总线接口 201与系统单板105的地址数据复用总线连接,传输地址和数据。
地址单元202用于接收来自总线接口 201的地址并保存,当收到的地址满足地址 线的宽度时,通过地址线将地址发送给存储器107。
写数据单元203用于接收来自总线接口 201的数据并保存,当收到的数据满足数 据线的宽度时,通过数据线将数据写入存储器107。
读数据单元204用于通过数据线从存储器107中读出数据并保存,依据地址数据 复用总线的宽度将数据发送给总线接口 201。
时钟单元205用于接收系统单板105产生的时钟信号,并依据该时钟信号控制地 址单元202、写数据单元203和读数据单元204的时序,以及向存储器107发送时钟信号,使 存储器107保持时序一致。
控制单元206用于接收系统单板105产生的帧信号,帧信号包括写命令和读命令 等。控制单元206依据帧信号生成相应的控制信号并发送给存储器107。
复位接口 207用于接收系统单板105产生的复位信号,并受该复位信号的触发,复 位转换模块104。
以上介绍了计算机设备的内部结构和功能,下面对保存数据的过程进行详细介绍。
参见图3A,本实施例中保存数据的主要方法流程如下
步骤31 CPU运行应用软件程序。
步骤32 在应用软件程序出现异常后,CPU将内存中的数据写入转换模块,由转换 模块将数据写入永久性存储器。
步骤33 :CPU因应用软件程序出现异常而执行重启命令,触发系统单板重启。
步骤34 在重启后,CPU向转换模块发送读命令。
步骤35 转换模块依据读指令从存储器中读出原属于内存的数据。
步骤36 =CPU从转换模块中读出该数据并写入内存。
由于CPU是通过运行程序来实现功能,这些程序可划分为多个模块,下面通过这 些模块来描述保存数据的过程。
参见图3B,本实施例中保存数据的详细方法流程如下
步骤301 应用软件程序出现异常后,生成并发送异常信号。
步骤302 检测模块在检测到异常信号后,触发写模块。
步骤303 写模块将内存中的数据写入转换模块,由转换模块将数据写入永久性 存储器。
步骤304:应用软件程序的异常引起系统单板重启,并在重启后,自动启动读模 块。
步骤305 读模块向转换模块发送读命令。
步骤306 转换模块依据读指令从存储器中读出原属于内存的数据;读模块从转 换模块中读出该数据并写入内存。
参见图4,本实施例中从内存中读出数据的方法流程如下
步骤401 应用软件程序出现异常,应用软件模块101生成异常信号并发送。
步骤402 检测模块102检测到异常信号并触发写模块103。
步骤403 写模块103通过系统单板105向转换模块104发送写命令。
步骤404 转换模块104向存储器107发送写命令。
步骤405 写模块103依据系统单板的时序通过系统单板105向转换模块104发 送地址和内存模块108中的数据。例如地址数据复用总线的宽度是4位。存储器107的地 址线宽度是20位,数据线宽度是8位。
步骤406 转换模块104依据存储器107的地址线和数据线的宽度缓存多帧地址 和数据,直到满足存储器107的地址线宽度和数据线宽度。例如,转换模块104缓存5帧地 址和2帧数据。
步骤407 转换模块104向存储器107发送地址和数据。
步骤408 应用软件模块101触发系统单板105重启。
在步骤405中,系统单板105有多种工作模式,如低脚位数(Low Pin Count, LPC) 的存储(memory)模式和硬件(fireware)的存储模式等。不同的工作模式有不同的时序。 参见图5和图6所示的LPC的存储模式写时序图和fireware的存储模式写时序图,在LPC 的存储模式中,在起始信号(Mart)后,先传输32位地址(A[31] A
),再传输8位数据 (D[7] D
),然后经过2个时钟周期(TAR)和一个同步周期(Sync),再传下一个地址和 数据,重复这个过程直到所有重要数据传输完毕。在firmware的存储模式中,Preamble部 分包括了起始位和地址位,然后先传低位数据(Data Lo)再传高位数据(Data Hi),经过1 个时钟周期再传下一个地址和数据。LCK表示LPC总线时钟;LFRAME表示LPC总线的帧信 号;LAD表示LPC总线的数据地址复用总线;start表示起始标志;CYCTYPE表示周期类型; TAR表示转向(Turn-Around),即LPC总线的控制权会在这段时间里转交;sync表示同步, 即可在该时段加入等待周期达到外设和主机的同步。其中,重要数据可以是内存模块108 中的所有数据,也可以是内存模块108中预设存储空间内的数据。在步骤406中,转换模块6104缓存多帧地址和数据。例如地址数据复用总线的宽度是4位,存储器107的地址线宽度 是20位,一个地址的长度是32位。则转换模块104每缓存5帧地址向存储器107发送一 次,但是一个地址只占8帧,缓存5帧后还剩3帧,不足5帧,此时缓存3帧后便可向存储器 107发送地址。例如,一个数据的长度是8位,数据线的宽度也是8位,则转换模块104每缓 存2帧数据向存储器107发送一次。由于写模块103是先向转换模块104发送32位地址, 再发送8位数据,所以转换模块104也是先向存储器107发送地址,再发送数据。
可以预先规定存储器107中的一段存储空间用于存储内存中的数据,写模块103 发送的地址就是这段存储空间的地址。读模块106向转换模块104发送的地址也是这段存 储空间的地址。然后转换模决104从存储器107的这段存储空间中读出数据并返回给读模 块106,由读模块106将数据写入内存模块108。下面对重启后将数据写回内存的过程进行 介绍。
参见图7,本实施例中将数据写回内存的方法流程如下
步骤701 系统单板105重启,并自动启动读模块106。
步骤702 系统单板105产生复位信号,触发转换模块104复位。产生复位信号的 过程可以与启动读模块106的过程同时进行。
步骤703 读模块106通过系统单板105与转换模块104之间的帧信号向转换模 块104发送读命令。
步骤704 转换模块104通过与存储器107之间的控制信号将读指令发送给存储 器 107。
步骤705 读模块106通过系统单板105将地址发送给转换模块104。
步骤706 转换模块104依据收到的地址从存储器107中读出原属于内存的数据。
步骤707 转换模块104依据地址数据复用总线的宽度将数据通过系统单板105 发送给读模块106。
步骤708 读模块106通过系统单板105将收到的数据写入内存。
在步骤705-707中,参见图8和图9所示的LPC的存储模式读时序图和fireware 的存储模式读时序图,在LPC的存储模式中,在起始信号(Mart)后,读模块106先传输32 位地址(A[31] A
),经过2个时钟周期(TAR)和一个同步周期(Sync),转换模块104 传输8位数据(D[7] DW])给读模块106,经过1个时钟周期再传下一个地址和数据,重 复这个过程直到所有重要数据传输完毕。在frmware的存储模式中,Preamble部分包括了 起始位和地址位,读模块106先传输32位地址(A[31] AW])给转换模块104,经过1个 时钟周期(TAR)和一个同步周期(Sync),转换模块104传输8位数据(D[7] D W])给读 模块106,经过1个时钟周期再传下一个地址和数据,重复这个过程直到所有重要数据传输 完毕。转换模块104接收来自读模块106的地址的过程同写时序中的描述。关于读数据的 过程,例如,地址数据复用总线的宽度是4位,数据线的宽度是8位,一个数据的长度也是8 位,则转换模块104从存储器107中读出一个8位数据后,依据地址数据复用总线的宽度, 将该数据分为两帧发送给读模块106,先发送低4位后发送高4位。
用于实现本发明实施例的软件可以存储于软盘、硬盘、光盘和闪存等存储介质。
本发明实施例中,应用软件出现异常,在系统单板重启前,将内存中的重要数据写 入外挂的永久性存储器,在系统单板重启后,再将存储器中的数据读到内存。避免了因重启7而导致的内存中的数据丢失,并且便于对故障发生原因进行定位。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精 神和范围。这样,倘若对本发明的这些修改和变型属于本发明权利要求及其等同技术的范 围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.一种保存数据的方法,其特征在于,该方法由系统单板、转换模块、内存和永久性存 储器实现,其中系统单板包括CPU ;所述方法包括以下步骤CPU运行应用软件程序;在应用软件程序出现异常后,CPU将内存中的数据写入转换模块,由转换模块将数据写 入永久性存储器;CPU因应用软件程序出现异常而执行重启命令,触发系统单板重启;在重启后,CPU向转换模块发送读命令;转换模块依据读指令从存储器中读出原属于内存的数据;CPU从转换模块中读出该数 据并写入内存。
2.如权利要求1所述的方法,其特征在于,CPU将内存中的数据写入转换模块的步骤包 括CPU依据系统单板的时序将内存中的数据写入转换模块。
3.如权利要求1所述的方法,其特征在于,转换模块将数据写入永久性存储器的步骤 包括转换模块依据永久性存储器的地址线和数据线的宽度将数据写入永久性存储器。
4.如权利要求1所述的方法,其特征在于,CPU向转换模块发送读命令之前,系统单板 重启后产生复位信号,触发转换模块复位。
5.如权利要求1所述的方法,其特征在于,CPU向转换模块发送读命令的步骤包括CPU 通过系统单板与转换模块之间的帧信号向转换模块发送读命令;转换模块依据读指令从存储器中读出原属于内存的数据之前,通过与存储器之间的控 制信号将读指令发送给存储器。
6.一种计算机设备,其特征在于,包括存储器,用于保存数据;内存模块,用于保存数据;系统单板中的CPU,用于运行应用软件程序,在出现异常后,将内存中的数据写入转换 模块;执行重启命令,触发系统单板重启,在重启后,向转换模块发送读命令,以及从转换模 块中读出数据并写入内存;转换模块,用于将数据写入永久性存储器;以及依据读指令从存储器中读出原属于内 存的数据。
7.如权利要求6所述的计算机设备,其特征在于,CPU依据系统单板的时序和总线的数 量将内存中的数据写入转换模块。
8.如权利要求6所述的计算机设备,其特征在于,转换模块依据永久性存储器的地址 线和数据线的数量将数据写入永久性存储器。
9.如权利要求6所述的计算机设备,其特征在于,系统单板重启后产生复位信号,触发 转换模块复位。
10.如权利要求6所述的计算机设备,其特征在于,CPU通过系统单板与转换模块之间 的帧信号向转换模块发送读命令;转换模块通过与存储器之间的控制信号将读指令发送给存储器。
全文摘要
本发明公开了一种保存数据的方法,用于实现在系统重启后,内存中的数据不丢失。该方法由系统单板、转换模块、内存和永久性存储器实现,其中系统单板包括CPU;所述方法包括以下步骤CPU运行应用软件程序;在出现异常后,CPU将内存中的数据写入转换模块,由转换模块将数据写入永久性存储器;CPU执行重启命令,触发系统单板重启;在重启后,CPU向转换模块发送读命令;转换模块依据读指令从存储器中读出原属于内存的数据;CPU从转换模块中读出该数据并写入内存。本发明还公开了用于实现所述方法的装置。
文档编号G06F12/16GK102033823SQ200910173969
公开日2011年4月27日 申请日期2009年9月27日 优先权日2009年9月27日
发明者吴清政, 朱宝旺, 金铁军 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1