This non-provisional application claims priority under 35 U.S.C. §119(a) on Patent Application No(s) 96121190 filed in Taiwan, R.O.C. on Jun. 12, 2007, the entire contents of which are hereby incorporated by reference.
The present invention relates to a system data management method, particularly a data recovery method.
Conventionally, non-volatile memory (NVM) 100, such as flash memory, of a system is provided with four blocks (hereinafter referred to as first block 110, second block 120, third block 130 and fourth block 140, respectively), which are used respectively to store a default value 110a, a current configuration value 120a, a prior configuration value 130a, and a default-recovery value for 140a.
Referring to
Referring to
Referring to
Referring to
The conventional system data management structure needs two spaces to store the default value for initialization and the default value for recovery. However, conservation of memory and storage space has become a very important issue.
One of the objects of the present invention is to provide a data recovery method to save system space.
The present invention provides a data recovery method utilized in a system with storage of a default value and a prior configuration value, comprising the following steps: executing initialization of the system; loading the default value; detecting a status of a first flag to generate a first detection result; and determining whether a boot-up sequence in the system is complete according to the first detection result.
The present invention also provides a data recovery method for recovering at least one default value of a system, wherein the system comprises a first storage device and at least one second storage device, and a first block of the second storage device is stored with the default value, the method comprising: storing a prior configuration value in a second block of the second storage device, in which the prior configuration value is a configuration value executed by the system; loading the default value stored in the first block of the second storage device into an executing block of the first storage device; detecting a first flag in at least one specific block of one of the first storage device and the second storage device; and when the first flag is not detected, loading the prior configuration value stored in the second block of the second storage device into the executing block of the first storage device to overwrite the corresponding default value in the executing block of the first storage device.
The present invention also provides a data recovery method utilized in a system with storage of a default value and a prior configuration value, comprising: executing a system recovery process; re-booting the system; loading the default value; detecting the status of a first flag to generate a first detection result; and determining whether a boot-up sequence is complete according to the first detection result.
The features and practice of the present invention will be further described in reference to the embodiments and the attached drawings
The present invention is described in details by the following embodiments with reference to the figures appended hereto. The symbols referred in the description are referred to the symbols in the figures.
The data recovery method is used to recover at least one default value of a system. The system comprises a first storage device 400 and a second storage device 500. Herein, although only one first storage device 400 and one second storage device 500 are shown in the figures, more than one first storage devices and/or more than one second storage device 500 can be provided in the system in implementations.
A set of default values 510 and a set of prior configuration values 530 are stored respectively in a first block and a second block in the second storage device 500. Herein, the default values 510 may be various configuration values for the software/hardware. The prior configuration values 530 may be various configuration values for the software/hardware of the system before a previous shutdown, or may be various configuration values for the software/hardware of the system before a default recovery. In an embodiment, a program for a boot-up sequence includes the default values 510.
Referring to
When a system recovery, namely, a default recovery, is selected (step 312), the configuration values currently executed (hereinafter referred to as the prior configuration values 530) will be stored in the second block of the second storage device 500, and the first flag 600 will be stored in a specific block of the second storage device 500 (step 322), as shown in
Further, when only part of the configuration values are to be replaced with the default values, partial recovery of the default values of the system will be executed (step 312). The prior configuration values 530 in the second block of the second storage device 500 and the first flag 600 in the specific block of the first storage device 400 or the second storage device 500 (step 322) will be stored. And, a second flag 610 in the specific block of the first storage device 400 or the second storage device 500 (step 324) will also be stored, as shown in
In other words, the second flag 610 and the first flag 600 may be stored in the same specific block or different specific blocks of the same storage device, or simply stored in different storage devices.
In the above-mentioned embodiment, the second flag 610 includes a mark corresponding to a selected prior configuration values selected not to be recovered.
Similarly, the system initialization can be proceeded by re-booting the system or by directly performing the default recovery, (step 332) such that to load the default values 510 stored in the first block of the second storage device 500 into the executing block of the first storage device (step 340). Next, the status of the first flag 600 in the specific block of the first storage device 400 or in the specific block of the second storage device 500 is detected to generate a first detection result (step 350) and detection of the second flag 610 may be proceeded according to the first detection result. For example, when the first flag 600 is detected, the system will continue detecting the status of the second flag 610 in the specific block of the first storage device 400 or in the specific block of the second storage device 500 to generate a second detection result, and the subsequent process is determined according to the second detection result. For example, the system detects whether the specific block of the first storage device 400 or the specific block of the second storage device 500 is stored with the second flag 610 (step 370), and when the second flag 610 is detected, the prior configuration values selected not to be recovered among the prior configuration values stored in the second block of the second storage device 500 will be accessed and loaded into the executing block of the first storage device 400 to overwrite the corresponding default values 510 (step 380), as shown in
In another embodiment, when only part of the configuration values are selected to be replaced with the default values, the prior configuration values selected not to be recovered 612, like the second flag, can be directly stored in the specific block of the first storage device 400 or the second storage device 500. Thus, after the first flag 600 is detected, the specific block for storing the prior configuration values selected not to be recovered 612, is detected to confirm whether there are any prior configuration values selected not to be recovered 612. When the prior configuration values selected not to be recovered 612 is detected in the specific block, the prior configuration values selected not to be recovered 612 are directly accessed and the accessed the prior configuration values selected not to be recovered 612 are loaded into the executing block of the first storage device 400 to overwrite the corresponding default values 510, as shown in
In the present invention, the first storage device and the second storage device may include volatile memory and/or non-volatile memory, such as DDR (double data rate) memory, register and flash memory, but these devices are exemplary and the present invention is not limited thereto.
Therefore, by using the system of the present invention, repetitive saving of a lot of identical data can be avoided, and system space conserved.
Although the technical contents of the present invention have been disclosed in the embodiments as stated above, these embodiments are not intended to limit the scope of the present invention. Those proficient in the relevant fields can make a few changes and modifications without departing from the spirit of the present invention, and these changes and modifications should be all included in the scope of the present invention. Therefore, the protection scope of the present invention will be defined by the attached claims.
| Number | Date | Country | Kind |
|---|---|---|---|
| 96121190 A | Jun 2007 | TW | national |
| Number | Name | Date | Kind |
|---|---|---|---|
| 5805882 | Cooper et al. | Sep 1998 | A |
| 5918047 | Leavitt et al. | Jun 1999 | A |
| 6212631 | Springer et al. | Apr 2001 | B1 |
| 6292848 | Plyler et al. | Sep 2001 | B1 |
| 6651188 | Harding et al. | Nov 2003 | B2 |
| 6704840 | Nalawadi et al. | Mar 2004 | B2 |
| 6763457 | Aguilar et al. | Jul 2004 | B1 |
| 6972977 | Urabe | Dec 2005 | B1 |
| 7024550 | Collins et al. | Apr 2006 | B2 |
| 7069431 | Dayan et al. | Jun 2006 | B2 |
| 7139909 | Lee | Nov 2006 | B2 |
| 7234052 | Lee et al. | Jun 2007 | B2 |
| 20030233533 | Avraham | Dec 2003 | A1 |
| 20040025145 | Dawson | Feb 2004 | A1 |
| 20040044890 | Lim et al. | Mar 2004 | A1 |
| 20040103272 | Zimmer et al. | May 2004 | A1 |
| 20050160217 | Gonzalez et al. | Jul 2005 | A1 |
| 20060206701 | Hutton et al. | Sep 2006 | A1 |
| Number | Date | Country | |
|---|---|---|---|
| 20080313451 A1 | Dec 2008 | US |