GB2361783A - Non-volatile storage method - Google Patents

Non-volatile storage method Download PDF

Info

Publication number
GB2361783A
GB2361783A GB0010285A GB0010285A GB2361783A GB 2361783 A GB2361783 A GB 2361783A GB 0010285 A GB0010285 A GB 0010285A GB 0010285 A GB0010285 A GB 0010285A GB 2361783 A GB2361783 A GB 2361783A
Authority
GB
United Kingdom
Prior art keywords
data
sector
sectors
ram
reading
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.)
Granted
Application number
GB0010285A
Other versions
GB2361783B (en
GB0010285D0 (en
Inventor
Ian Kenneth Appleton
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Aeroflex Cambridge Ltd
Original Assignee
Ubinetics Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ubinetics Ltd filed Critical Ubinetics Ltd
Priority to GB0010285A priority Critical patent/GB2361783B/en
Publication of GB0010285D0 publication Critical patent/GB0010285D0/en
Priority to AU52359/01A priority patent/AU5235901A/en
Priority to PCT/GB2001/001846 priority patent/WO2001082305A1/en
Publication of GB2361783A publication Critical patent/GB2361783A/en
Application granted granted Critical
Publication of GB2361783B publication Critical patent/GB2361783B/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/22Safety or protection circuits preventing unauthorised or accidental access to memory cells

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

A non-volatile memory has first and second data storage sectors (A and B), one of which contains an updated version of the data stored in the other sector. The validity of the data in the first and second sectors is checked, and the sector having the more recent valid data is selected. The data is then read from the selected sector and that data is written into an associated RAM. The data stored in the RAM is updated, and data from the sector not selected is erased. Data is then read from the RAM, and that data is written into the non-selected sector.

Description

2361783 P500125GB Non-volatile Storage Method This invention relates to a
non-volatile storage method, and in particular to a method of updating data stored in a non-volatile memory such as a memory chip of a. mobile 5 telephone.
In many products, it is necessary to store data in a non-volatile memory. There are two main types of non-volatile memory devices, namely an electrically erasable programmable read only memory (EEPROM) and a flash ROM. The first of these consists of a series of small data units that can be written to independently, each unit being sized to store only one or two bytes. A flash ROM, on the other hand, consists of a set of sectors, each of which can be erased or written to independently, but each sector can contain several thousand bytes. The disadvantage of an EEPROM is that it is very limited in its storage capacity, and the disadvantage of a flash ROM is that it is generally not possible to re-programme data in a given sector without first erasing that sector. Because of its superior storage capability, a flash ROM is generally used in a mobile telephone and in a digital tx. set-top decoder.
A mobile telephone incorporates a product (a flash ROM) for storing calibration data such as transmit power requirements and other radio parameters, together with personal data, such as personal telephone numbers and ringing options. From time to time, it is necessary to update part of the data stored by such a memory chip, whilst preserving the rest of the data in its original form.
When a flash ROM is used in such a product, frequent updating is required. As mentioned above, however, it is necessary to erase an entire sector of a flash ROM before updated data can be saved to that sector. As it can take up to half a second to erase a sector of a flash ROM, problems can arise if there is a power interruption during the erase procedure. In particular, all the user data can be lost if such a power interruption occurs.
2 The present invention provides a method of updating data stored in a non- volatile memory having first and second data storage sectors, one of which contains an updated version of the data stored in the other sector, the method comprising the steps of.- a) checking the validity of the data in the first and second sectors; b) selecting the sector having the more recent valid data; c) reading the data from the selected sector and writing that data into an associated RAM; d) updating the data stored in the RAM e) erasing data from the sector not selected in step b); and f) reading data from the RAM and writing that data into said non-selected sector.
Preferably, steps a) to c) are carried out on power up of apparatus associated with the non-volatile memory, and steps d) to f) are carried out on power down of said apparatus.
In a preferred embodiment, the data stored in each of the sectors is constituted by user data, checksums and a sequence number; the step of checking the validity of the data in the sectors is carried out using the checksums, the sector selection step is carried out by reading the sequence numbers associated with the data in the first and second sectors, and by selecting the sector having the larger sequence number unless only one sector contains valid data, in which case that sector is selected; and the erasing step is carried out by reading the sequence numbers associated with the data in the first and second sectors, and selecting the sector having the smaller sequence number unless only one sector contains valid data, in which case the other sector is selected.
Preferably, the method further comprises an initial step of storing a valid version of the data in one of the sectors prior to the first power up of the apparatus associated with the non-volatile memory. Advantageously, the initial storage step is an initial programming step.
3 The invention further provides a computer readable storage medium having a computer programme recorded thereon, the programme carrying out a method of updating data stored in a non-volatile memory having first and second data storage sectors, one of which contains an updated version of the data stored in the other, the method comprising the steps of.
a) checking the validity of the data in the first and second sectors; b) selecting the sector having the more recent valid data; c) reading the data from the selected sector and writing that data into an associated RAM; d) updating the data stored in the RAM; e) erasing data from the sector not selected in step b); and f) reading data from the RAM and writing that data into said non-selected sector.
Preferably, a flash ROM constitutes said medium.
The invention will now be described in greater detail, by way of example, with reference to the drawings, in which:
Figure 1 is a schematic diagram showing the arrangement of sectors in a flash ROM; Figure 2 is a flow diagram showing two sectors of a flash ROM, and illustrating the sector validation and selection process on power up; Figure 3 is a flow diagram similar to that of Figure 2, but illustrating the updating process carried out on power down; and Figure 4 is a diagram showing the data organisation in the flash ROM and in an associated RAM device.
Referring to the drawings, Figure 1 is a schematic diagram showing a flash ROM having N + 1 sectors, labelled sector 0, sector 1 sector N. Each of the sectors can be configured to store up to 64 kilobytes of data. The flash ROM forms part of a mobile telephone handset (not shown), and the method of the invention utilises top two A and B of these sectors, both of which have a storage capacity of 64 kilobytes. The 4 remaining sectors of the flash ROM contain programme data including the programme for updating and controlling the data stored in the first and second sectors.
Prior to the mobile telephone being first used, default calibration data such as transmit power requirements, and default user options such as ringing options are programmed into the sector A of the flash ROM, at the same time as the programming data is input into the remaining sectors of the flash ROM. When the mobile telephone is turned off, all this data is written to the sector B of the flash ROM. Of course, this data may have been amended by the user while the telephone was powered up, in which case the data stored in the sector B would be an updated version of that stored in the sector A. For example, user data such as 'phone book information (that is to say telephone numbers input by the user of the mobile telephone) may have been added. Consequently, the flash ROM contains two versions of the calibration and user data, one of which is later than the other. Subsequently, therefore, in the event of data in a given sector being corrupted, or completely lost, there will be a previous version of this data available in the other sector.
The process of updating the calibration and user data in the two sectors A and B will now be described with reference to Figures 2 and 3. When the mobile telephone is turned on, the validity of the data in the two sectors A and B (see Figure 2) is checked using the associated checksums, in parallel steps I a and I b. The results of the validity checks are then output to a sector selection step 2 which selects that set of valid data from steps la and lb which has the higher sequence number, the sequence numbers having been ascertained directly from the sectors A and B in steps 3a and 3b.
Obviously, if there is only one valid set of data, that set is selected. Following the sector selection step, the output 5 is used to control a memory copy operation 4, to read data from the selected sector A or B (step 6a or 6b), and to write that data directly into the RAM of the mobile telephone (step 7).
During the use of the mobile telephone, the RAM copy of the data is updated as required. At the end of a session of use, when the mobile telephone is about to be powered down, the RAM data has to be written to the flash ROM. Referring to Figure 3, the first step in this process is to check the validity of the data in the first and second sectors A and B using the associated checksums, in parallel steps 11 a and 1 lb. The results of the validity checks are then output to a sector selection step 12 which selects that set of valid data from the steps 11 a and 11 b which has the lower sequence number, the sequence numbers having been ascertained directly from the sectors A and B in steps 13a and 13b. Obviously, if there is only one valid set of data, the other set is selected. The data in the chosen sector is then erased, and the output 15 is used to control a memory copy operation 14 to read data from the RAM (step 16) and to write that data to that sector (step 17a or 17b).
Figure 4 is a diagram illustrating the correspondence between data storage areas in the flash ROM and in the RAM of the mobile telephone. Thus, as shown at the left-hand side of Figure 4, the flash ROM has an array of file names and indexes stored in the sectors containing programme data. The indexes give the off-set of the start of each file within the sectors A and B used for non-volatile storage, and point to RAM copies of this data shown on the right-hand side of the figure. The programme data includes access functions provided to read a file from the flash ROM and to write it to the RAM copy, and to read data from the flash ROM sectors on power up and to write data to the flash ROM sectors on power down.
The method of the invention allows a flash ROM to be used for nonvolatile data storage in applications where it is important to preserve the integrity of the data stored. The use of a flash ROM in this way removes the need for a separate EEPROM for such applications. Moreover, as mentioned above, the technique protects against loss of all the non-volatile data if the power supply is interrupted during the sector erase phase or the re-programming phase.
It will be apparent that use of the invention is not limited to flash ROM for mobile telephones, and can be used in any application where it is necessary to store data in a non-volatile memory.
6

Claims (9)

Claims
1. A method of updating data stored in a non-volatile memory having first and second data storage sectors, one of which contains an updated version of the data stored in the other sector, the method comprising the steps of.-- a) checking the validity of the data in the first and second sectors; b) selecting the sector having the more recent valid data; c) reading the data from the selected sector and writing that data into an associated RAM; d) updating the data stored in the RAM e) erasing data from the sector not selected in step b); and f) reading data from the RAM and writing that data into said non-selected sector.
2. A method as claimed in claim 1, wherein steps a) to c) are carried out on power up of apparatus associated with the non-volatile memory, and steps d) to f) are carried out on power down of said apparatus.
3. A method as claimed in claim 1 or claim 2, wherein the data stored in each of the sectors is constituted by user data, checksums and a sequence number, and wherein the step of checking the validity of the data in the sectors is carried out using the checksums.
4. A method as claimed in claim 3, wherein the sector selection step is carried out by reading the sequence numbers associated with the data in the first and second sectors, and by selecting the sector having the larger sequence number unless only one sector contains valid data, in which case that sector is selected.
5. A method as claimed in claim 3 or claim 4, wherein the erasing step is carried out by reading the sequence numbers associated with the data in the first and second sectors, and selecting the sector having the smaller sequence number unless only one sector contains valid data, in which case the other sector is selected.
7
6. A method as claimed in any one of claims I to 5, further comprising an initial step of storing a valid version of the data in one of the sectors prior to the first power up of the apparatus associated with the non- volatile memory.
7. A method as claimed in claim 6, wherein the initial storage step is an initial programming step.
8. A computer readable storage medium having a computer programme recorded thereon, the programme carrying out a method of updating data stored in a non-volatile memory having first and second data storage sectors, one of which contains an updated version of the data stored in the other, the method comprising the steps of.a) checking the validity of the data in the first and second sectors; b) selecting the sector having the more recent valid data; I C) reading the data from the selected sector and writing that data into an 15 associated RAM; d) updating the data stored in the RAM; e) erasing data from the sector not selected in step b); and f) reading data from the RAM and writing that data into said non-selected sector.
9. A computer readable storage medium as claimed in claim 8, wherein a flash ROM constitutes said medium.
GB0010285A 2000-04-27 2000-04-27 Non-volatile storage method Expired - Fee Related GB2361783B (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
GB0010285A GB2361783B (en) 2000-04-27 2000-04-27 Non-volatile storage method
AU52359/01A AU5235901A (en) 2000-04-27 2001-04-25 Non-volatile storage method
PCT/GB2001/001846 WO2001082305A1 (en) 2000-04-27 2001-04-25 Non-volatile storage method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB0010285A GB2361783B (en) 2000-04-27 2000-04-27 Non-volatile storage method

Publications (3)

Publication Number Publication Date
GB0010285D0 GB0010285D0 (en) 2000-06-14
GB2361783A true GB2361783A (en) 2001-10-31
GB2361783B GB2361783B (en) 2004-11-10

Family

ID=9890625

Family Applications (1)

Application Number Title Priority Date Filing Date
GB0010285A Expired - Fee Related GB2361783B (en) 2000-04-27 2000-04-27 Non-volatile storage method

Country Status (3)

Country Link
AU (1) AU5235901A (en)
GB (1) GB2361783B (en)
WO (1) WO2001082305A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2374441A (en) * 2000-11-22 2002-10-16 Nec Corp Flash memory backup method and system suitable for a portable telephone
WO2005091302A1 (en) * 2004-03-19 2005-09-29 Matsushita Electric Industrial Co., Ltd. Reprogramming a non-volatile solid state memory system

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100533683B1 (en) 2004-02-03 2005-12-05 삼성전자주식회사 Data managing device and method for flash memory

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4710888A (en) * 1984-10-01 1987-12-01 Ford Motor Company Electronic odometer

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5745425A (en) * 1996-08-29 1998-04-28 Lucent Technologies Inc. Reliable backup memory
US5818755A (en) * 1996-10-16 1998-10-06 Fujitsu Limited Storage apparatus having a nonvolatile storage device capable of retaining data after an incomplete write operation and method of accessing same
JPH11184760A (en) * 1997-12-24 1999-07-09 Konica Corp Picture forming device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4710888A (en) * 1984-10-01 1987-12-01 Ford Motor Company Electronic odometer

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2374441A (en) * 2000-11-22 2002-10-16 Nec Corp Flash memory backup method and system suitable for a portable telephone
GB2374441B (en) * 2000-11-22 2005-02-02 Nec Corp Information management method and system suitable for a portable telephone
WO2005091302A1 (en) * 2004-03-19 2005-09-29 Matsushita Electric Industrial Co., Ltd. Reprogramming a non-volatile solid state memory system

Also Published As

Publication number Publication date
AU5235901A (en) 2001-11-07
GB2361783B (en) 2004-11-10
GB0010285D0 (en) 2000-06-14
WO2001082305A1 (en) 2001-11-01

Similar Documents

Publication Publication Date Title
TW455911B (en) Flash memory partitioning for read-while-write operation
US8364887B2 (en) Managing memory data recovery upon power loss
US7774382B2 (en) Method and apparatus for configuring a control device, and corresponding control device
EP1739683B1 (en) Space management for managing high capacity nonvolatile memory
KR101002978B1 (en) Method for flash­memory management
US7594087B2 (en) System and method for writing data to and erasing data from non-volatile memory
KR100393619B1 (en) Memory apparatus and therefor controling method for mobile station
JP5005171B2 (en) Method and apparatus for splitting logical blocks
EP0712067B1 (en) Flash disk card
KR100870392B1 (en) Improved error correction scheme for use in flash memory allowing bit alterability
EP1729304A1 (en) Space management for managing high capacity nonvolatile memory
US8060684B2 (en) Memory control apparatus, memory control method and program
WO2003067605A1 (en) Non-volatile storage device and control method thereof
US20090083475A1 (en) Apparatus and method for updating firmware stored in a memory
US20050278480A1 (en) Method of writing data into flash memory
US20070136510A1 (en) Storage device, memory managing device, memory managing method, and program
KR20030036133A (en) A method and apparatus for reducing ram size while maintaining fast data access
US6684288B1 (en) Method and apparatus for predictive flash memory erase and write times
GB2361783A (en) Non-volatile storage method
US20050010913A1 (en) Computer code upgrading method and system
US20100088462A1 (en) Methods for handling data updating of flash memory and related memory cards
US20060282626A1 (en) Memory device and method of controlling operation of the memory device
JP3978720B2 (en) Data storage method
KR100521155B1 (en) Apparatus and method for writing data in flash memory
JP2000330850A (en) Control of flash memory

Legal Events

Date Code Title Description
732E Amendments to the register in respect of changes of name or changes affecting rights (sect. 32/1977)
PCNP Patent ceased through non-payment of renewal fee

Effective date: 20190427