GB2329045A - Control of flash memory devices - Google Patents

Control of flash memory devices Download PDF

Info

Publication number
GB2329045A
GB2329045A GB9718812A GB9718812A GB2329045A GB 2329045 A GB2329045 A GB 2329045A GB 9718812 A GB9718812 A GB 9718812A GB 9718812 A GB9718812 A GB 9718812A GB 2329045 A GB2329045 A GB 2329045A
Authority
GB
United Kingdom
Prior art keywords
flash memory
memory device
validation
software image
bits
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
GB9718812A
Other versions
GB9718812D0 (en
GB2329045B (en
Inventor
David Michael Bush
Stephen Joseph Peter Mckinley
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.)
Ericsson OMC Ltd
Original Assignee
Ericsson OMC 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 Ericsson OMC Ltd filed Critical Ericsson OMC Ltd
Priority to GB9718812A priority Critical patent/GB2329045B/en
Publication of GB9718812D0 publication Critical patent/GB9718812D0/en
Publication of GB2329045A publication Critical patent/GB2329045A/en
Application granted granted Critical
Publication of GB2329045B publication Critical patent/GB2329045B/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

A number of data bits in a flash memory device 5 are allocated as validation bits 51, initially set at a high logic level, for a software image stored in the flash memory device and each time the stored software image experiences an error during execution one of the validation bits is set to a low logic level; execution of the stored software image is prevented if all the validation bits are at a low level. Preferably a device may store a plurality of software images, each with its own validation bits. If all the validation bits of the software image which it is desired to run are at a low level, a default software image stored in a default memory 7 may be executed instead.

Description

CONTROL OF FLASH MEMORY DEVICES The present invention relates to control of flash memory devices.
DESCRIPTION OF THE RELATED ART Flash memory devices are being increasingly used in telecommunications systems because they give the advantage of in-system reprogrammability which increases functionality and reduces the price of handsets. Flash memory devices allow system software updates to be stored in the handset. This enables hardware changes to be kept to a minimum, but allows development of system functionality.
However, with current flash memory devices and controllers, the system can suffer from repeated crashrun-crash cycles if the new software update is faulty.
SUMMARY OF THE PRESENT INVENTION It is therefore an object of the present invention to provide a flash memory device controller which enables reliable return to a default or original software version if the updated software version is faulty.
According a first aspect of the present invention there is provided a method of operating a flash memory device comprising allocating a predetermined number of data bite in the flash memory device to be validation bits, the number of validation bits which are at a high logic level equalling the number of execution attempts remaining for a software image stored in the flash memory device, setting one of the validation bits to a low logic level whenever the stored software image experiences an error, and preventing execution of the stored software image if all the validation bits are at a low logic level.
According to a second aspect of the present invention there is provided a flash memory device controller for controlling a flash memory device having a predetermined number of data bits therein allocated as validation bits, the number of validation bits which are at a high logic level equalling the number of execution attempts remaining for a software image stored in the flash memory device, the controller comprising validation means for setting one of the validation bits in the flash memory device to a low logic level whenever the stored software image experiences an error, and control means for preventing execution of the stored software image if all the validation bits are at a low logic level.
BRIEF DESCRIPTION OF THE DRAWINGS Figure 1 shows schematically a system employing an embodiment of the present invention; Figure 2 is a flowchart illustrating steps in a method embodying the present invention; Figure 3 is a chart showing validation bit updates in a method embodying the present invention; and Figure 4 shows schematically a practical system employing an embodiment of the present invention suitable for use in a mobile telephone.
DETAILED DESCRIPTION OF THE DRAWINGS A system employing an embodiment of the present invention is shown in Figure 1 and comprises a memory controller 3, a flash memory device 5, and a default memory device 7. The memory controller communicates with the flash memory device 5 by way of a control link 6, and with the default memory device 7 by way of a control link 8.
The default memory device 7 is used to store a default software image, and the flash memory device 5 is used to store an update software image.
The flash memory 5 includes a validation area 51 and a software image area 52. The validation area 51 is used to store information concerning the number of execution attempts remaining for a software image stored in the software image area 52, as will be explained in more detail below.
The memory controller 3 includes validation means 31 and control means 32.
When the flash memory device 5 is reset, all of the data storage bits are set to a high logic level ("1"). A software image is written into the software image area 52 by causing selected data bits to be set to a low logic level ("0"). A predetermined number of bits in the flash memory device 5 are allocated as validation bits and define the validation area 51.
These validation bits indicate the number of execution attempts available for the software image stored in the device.
When the software image stored in the image area 52 is executed and experiences an error, the validation means 31 of the memory controller 3 sets one of the high logic level validation bits in the flash memory device 5 to zero. If all of the validation bits in the validation area 51 are equal to zero then the control means of the memory controller 3 operates to prevent the update software image stored in the flash memory device 5 from being executed. In that case, the default software image is executed.
The number of bits allocated for the validation area 51 can be adjusted as necessary.
Operation of the system will now be explained in more detail with reference to Figure 2. The process starts at step 101 and proceeds to step 102 where the validation bits stored in the validation area 51 of the flash memory device 52 are checked. If all of these validation bits are logical zero, then the software image stored in the flash memory device 5 has no remaining execution attempts, and so the default eoftware image stored in the default memory device 7 is executed (step 106).
However, if one or more of the validation bits is logical 1, then the process proceeds to step 103 where the update software image stored in the flash memory device 5 is executed.
At step 104 execution of the update software image is checked for the occurrence of errors. While no errors occur, execution of the update software image continues.
However, if an error occurs, a validation bit which is at logical 1 (a high logic level) is reset to logical zero (a low logic level) at step 105. This effectively decrements the number of execution attempts remaining for the update software image. The process returns to step 102 where a check of the validation bits is carried out.
It will be readily appreciated that the number of attempts available for execution of the update software image is defined by the number of allocated validation bits. When the predetermined attempts have been made, then the default software image is executed in place of the update software image stored in the flash memory device 5, thereby enabling the system to continue operation.
Figure 3 illustrates the cycle of steps, together with the validation bit values. In Figure 3, only four validation bits are used, although naturally any number of bits could be specified.
The default memory device 7 can be provided by any suitable device. For example, it could be a read only memory device (ROM), or another flash memory device.
The default memory device and the flash memory device 5 could be provided by different respective areas of a single flash memory device. Alternatively, the default memory device could be provided by a memory area of the memory controller 3. The illustrations shown in Figures 1 and 2 are merely schematic and are intended only to show the functional capability of embodiments of the invention.
Figure 4 shows a practical system employing an embodiment of the present invention which is suitable for use in a mobile telephone. The Figure 4 system includes a memory controller 3, a flash memory device 5, a default memory device 7, as before, and a function software image storage device 9. The device 9 is preferably a flash memory device, although could be provided by any appropriate memory storage device. As before, the memory devices 5 and 7 could be provided separately, or by a single flash device.
The device 9 stores a number of function software images 91, 92 ... 9n, which can provide the system with different functions. For example, different functions could be provided for different countries, such as various language options etc.. Alternatively, different revisions of a software version could be stored in the device 9, to provide a back up capability.
Each of the storage areas 91...9n includes a software image storage area and a validation storage area. As in the previous system, each software image has a validation area associated with it, the bits in the validation area setting the number of execution attempts remaining for the software image concerned.
In use, the memory controller 3 searches the memory store 9 to find the correct new software image.
The validation bits for that particular software image can then be checked, and if a non-zero result is achieved the new software image can be loaded into the flash memory device 5 for execution. If the new software image then experiences an error, the validation bits relating to that software image are adjusted as in the previous system, and the results stored in the memory device 9.
When a software image stored in the memory device 9 has all zero-value validation bits, then a different new software image could be found in the storage device 9 and executed. Alternatively, a default software image could be executed from the default memory device 7.
Thus, it will be readily appreciated that embodiments of the present invention can avoid crashrun-crash cycles associated with faulty new software images. By adjusting the validation bits on each occasion that the update software image experiences an error.

Claims (8)

CLANS
1. A method of operating a flash memory device comprising: allocating a predetermined number of data bits in the flash memory device to be validation bits, the number of validation bits which are at a high logic level equalling the number of execution attempts remaining for a software image stored in the flash memory device; setting one of the validation bits to a low logic level whenever the stored software image experiences an error during execution; and preventing execution of the stored software image if all the validation bits are at a low logic level.
2. A method as claimed in claim 1, wherein the flash memory device is operable to store a plurality of software images, each such software image having a predetermined number of validation bits allocated to it.
3. A method as claimed in claim 1 or 2, wherein a default software image is executed if all the validation bits are at a low logic level.
4. A flash memory controller for controlling a flash memory device having a predetermined number of data bits therein allocated as validation bits, the number of validation bits which are at a high logic level equalling the number of execution attempts remaining for a software image stored in the flash memory device, the controller comprising: validation means for setting a validation bit in the flash memory device to a low logic level whenever the stored software image experiences an error; and control means for preventing execution of the stored software image if all the validation bits are at a low logic level.
5. A controller as claimed in claim 4, wherein the control means is operable to executed a default software image if all the validation bits for the stored software image are at a low logic level.
6. A controller as claimed in claim 4 or 5, wherein the flash memory device is operable to store a plurality of software images, each of which stored software images has a corresponding predetermined number of validation bits allocated to it.
7. A software storage device comprising a flash memory device controller as claimed in any one of claims 4 to 6, a flash memory device connected to the memory controller and operable to store a software image and validation bits associated therewith; and a default memory device for storing a default software image.
8. A system as claimed in claim 7, further comprising an update software storage device which is operable to store a plurality of software images, each of which has an associated validation area, the stored software images being selectively transferable to the flash memory device and executable therein.
GB9718812A 1997-09-04 1997-09-04 Control of flash memory devices Expired - Fee Related GB2329045B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GB9718812A GB2329045B (en) 1997-09-04 1997-09-04 Control of flash memory devices

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB9718812A GB2329045B (en) 1997-09-04 1997-09-04 Control of flash memory devices

Publications (3)

Publication Number Publication Date
GB9718812D0 GB9718812D0 (en) 1997-11-12
GB2329045A true GB2329045A (en) 1999-03-10
GB2329045B GB2329045B (en) 2002-03-13

Family

ID=10818559

Family Applications (1)

Application Number Title Priority Date Filing Date
GB9718812A Expired - Fee Related GB2329045B (en) 1997-09-04 1997-09-04 Control of flash memory devices

Country Status (1)

Country Link
GB (1) GB2329045B (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5327531A (en) * 1992-09-21 1994-07-05 International Business Machines Corp. Data processing system including corrupt flash ROM recovery

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5327531A (en) * 1992-09-21 1994-07-05 International Business Machines Corp. Data processing system including corrupt flash ROM recovery

Also Published As

Publication number Publication date
GB9718812D0 (en) 1997-11-12
GB2329045B (en) 2002-03-13

Similar Documents

Publication Publication Date Title
EP1569102B1 (en) Flash memory programming
US7774382B2 (en) Method and apparatus for configuring a control device, and corresponding control device
US6629259B2 (en) Method for automatically duplicating a BIOS
US20100325622A1 (en) Updating Firmware of an Electronic Device
US20020065958A1 (en) System and method for implementing a self-activating embedded application
JPH086796A (en) Down-loading method, network system therefor and data file updating method
US11914871B2 (en) Electronic control device and program-update method
US5828911A (en) One chip microcomputer built-in system
JPS6192053A (en) Selective calling-dialing device for radio transmission system moving radio station
JPH0348959A (en) Selector of memory and peripheral chip
EP1244285B1 (en) Nonvolatile memory life prolonging circuit and image forming apparatus
EP3923139B1 (en) Electronic control device and method for using non-volatile memory
JPH07219780A (en) System of dowm-loading processing program of terminal equipment
US6438606B1 (en) Router image support device
GB2329045A (en) Control of flash memory devices
US6633405B1 (en) Method and apparatus for interfacing generic and device-specific control codes
CN113613954A (en) Electronic control device and method for setting control data
US5426766A (en) Microprocessor which holds selected data for continuous operation
US6604194B1 (en) Program updating method and apparatus for communication terminal system
EP0878765A2 (en) Microcontroller utilizing internal and external memory
CN106033366A (en) Browser core management method, device and system
EP3584697B1 (en) Information processing device
US7761679B2 (en) Method for recovering from download failure of program and portable terminal employing the method
JP2000259538A (en) Network control unit, network setting method and storage medium storing computer readable program
AU2007233803B2 (en) Control and communication system including at least one automation unit

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: 20060904