GB2412194A - Reprogramming a non-volatile memory system - Google Patents

Reprogramming a non-volatile memory system Download PDF

Info

Publication number
GB2412194A
GB2412194A GB0406238A GB0406238A GB2412194A GB 2412194 A GB2412194 A GB 2412194A GB 0406238 A GB0406238 A GB 0406238A GB 0406238 A GB0406238 A GB 0406238A GB 2412194 A GB2412194 A GB 2412194A
Authority
GB
United Kingdom
Prior art keywords
segment
address
ram
reprogrammed
unused
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.)
Withdrawn
Application number
GB0406238A
Other versions
GB0406238D0 (en
Inventor
David Gordon
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to GB0406238A priority Critical patent/GB2412194A/en
Publication of GB0406238D0 publication Critical patent/GB0406238D0/en
Priority to PCT/GB2005/000786 priority patent/WO2005091302A1/en
Publication of GB2412194A publication Critical patent/GB2412194A/en
Withdrawn 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
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

A non-volatile memory system is provided. The system comprises non-volatile memory divided into a plurality of segments each segment having an address in an address space and wherein at least one of the segments is unused. The system further comprises means for copying any one segment to be reprogrammed into a RAM, the RAM having a size at least equal to the segment size, means for reprogramming the contents of the RAM, means for erasing the unused segment, writing means for writing the reprogrammed code into the at least one unused memory segment, and control means arranged to amend the address space to show the same address of the reprogrammed segment.

Description

REPROGRAMMING A NON-VOLATILE SOLID STATE MEMORY SYSTEM
The present invention relates to the reprogramming of a part of a memory system that uses non-volatile memory and, particularly, to reprogramming a segmented memory system within an embedded processor system, for example Flash memory.
In the past non-volatile Flash memory has been treated as contiguous and, possibly continuous, area of storage. Larger systems are known that comprise several Flash memory chips which may not be adjoining in the memory space. When a change is required, therefore, the entire memory is reprogrammed. This is undesirable for a number of reasons. Firstly, as the amount of data to be transferred to an electronic device increases so the time taken for reprogramming also increases. During this, increasingly lengthy, reprogramming process the electronic device is not in a usable state.
One approach that has been used to attempt to overcome these problems is that of segmenting the memory. US-A-6295603 discloses a system incorporating a segmented control memory. This invention seeks to overcome the problem of overwriting programme code vital to the system boot-up process.
The segmentation of the memory, along with the provision of segment pointers, results in the memory area containing the programme to be executed not being mapped onto a specific location within the memory. Manipulation of the address pointers is then used to minimise the chance of an inadvertent overwriting of the boot up code.
It is evident from this document that the segmentation of a solid state memory is a powerful tool. However, the system disclosed in US-A-6295603 makes only passive, rather than active use of segmentation to prevent unwanted overwriting of certain sections of a memory.
There are existing techniques that provide multiple "banks" of program memory. The concept behind such systems is as follows: there are two banks of memory A and B. Whilst bank A is executing the current version of the software software A, bank B can be reprogrammed with new software, software B. When the reprogramming is complete, the system is instructed using a soft reset to use the new software. Although this does facilitate reverting to software A in the event of a problem with software B. there is a requirement for double the memory required for bank A alone. Furthermore, the redirection of the system to read from the other memory bank requires a soft reset and this causes an interruption in service.
In other systems known in the art the new version of the programme directly overwrites the old version. It is therefore not possible to regress to the earlier version of the programme if, for some reason, the reprogramming is unsuccessful and the new version of the programme fails to operate correctly.
This is a very unsatisfactory state of affairs as it renders functional, if out of date, data and programmed, entirely unusable.
The present invention has been developed to overcome these problems.
According to the present invention there is provided a non-volatile memory system comprising: non-volatile memory divided into a plurality of segments each segment having an address in an address space and wherein at least one of the segments is unused, means for copying any one segment to be reprogrammed into a RAM, the RAM having a size at least equal to the segment size, means for modifying the contents of the RAM, means for erasing the unused segment, writing means for writing the reprogrammed code into the at least one unused memory segment, and control means arranged to amend the address space to show the same address of the reprogrammed segment.
The segments are all of equal size so that any segment of non-volatile memory can occupy any segment in the address space. The RAM is at least equal in size to a single memory segment and therefore any segment of the non-volatile memory can be reprogrammed using the RAM and can subsequently be copied to any available segment of non-volatile memory.
At least one segment of the non-volatile memory is unused. This means that there is always an available segment to write the reprogrammed segment to, other than the segment from which it was originally copied. This enables the regression discussed above.
Preferably each segment contains some unused space. This space is preferably a small proportion of the segment. This space allows for the reprogrammed version being of a larger size than the original version.
The control means may comprise either a custom logic design or appropriate internal logic components.
The area of RAM to be used in this technique is equal in size to a single memory segment. This facilitates a 1:1 transfer between any non-volatile memory segment and the RAM and then subsequent 1:1 transfer of the modified segment in the RAM to any available memory segment.
Furthermore, according to the present invention there is provided a method of reprogramming a non-volatile solid state memory system comprising a plurality of equal size segments each segment having an address in an address space, a RAM at least equal in size to a single memory segment, and control means capable of altering the address of any one of the address corresponding to the individual segments in the address space, whilst the system is active, the method comprising the steps of: copying at least one segment to be reprogrammed into RAM, modifying the contents of the RAM, erasing the contents of the at least one unused memory segment, writing the reprogrammed code into the at least one unused memory segment, and amending the address space to show the same address of the reprogrammed segment.
Preferably, the segment containing the earlier version is designated as unused. This "unused" segment can subsequently be written to during a later upgrade. However, the fact that the contents of the unused segment are not automatically deleted allows the regression to an earlier version if, for some reason, the reprogramming is unsuccessful and the amended version is not fully functional.
Preferably the amendment to the address space is synchronized with the S processor execution so that no code is executed from the segment to be modified while the non-volatile segment and the RAM segment are being exchanged. This avoids any interruption to the use of the device of which the embedded processor forms a part.
Preferably there is furthermore provided a user interface for managing the method of reprogramming according to the present invention. The user interface is designed to guide the user through the reprogramming a non volatile solid state memory system comprising a plurality of segments each segment having an address in an address space, a RAM at least equal in size to a single memory segment, and control means capable of altering the address of any one of the address corresponding to the individual segments in the address space, whilst the system is active, the user interface comprising: a graphical representation of the embedded processor showing the contents of each segment, means for selecting the segment to be reprogrammed, and means of initiating the method of reprogramming described above.
An example of the present invention will now be described with reference to the following figures in which: Figures 1, 2 and 3 show affected parts of a processor system according to the present invention undergoing reprogramming.
Figure 4 is a schematic showing the connectivity of the embedded system of which the processor system of the present invention forms a part; Figures 5a, b and c show the graphical user interface of the present invention during the reprogramming.
Each of Figures 1 to 3 shows affected parts of a processor system 10 according to the present invention. The processor system 10 comprises a non volatile memory 1 1 which, in this example, is divided into a number of segments S' to Sg. In this example Segment SO is empty. It will be appreciated that the invention can be applied to a memory with other numbers of segments. Each of these segments S' to SO has a corresponding address in address space A1- A9. The processor system 10 also contains an area of RAM that is the same size as one of the segments 11 and a memory management unit (MMU) or other logic to control the switching of segments within the address space.
The process of reprogramming one segment, in this case segment S4, is shown in Figures 1, 2 and 3. Figure 1 represents the initial situation with each segment residing at an address having the same subscript as the segment number. The segment S4 is to be modified. It is therefore copied into the RAM and the version residing in the RAM is modified with the required changes. The reprogrammed version is called S'4, and is shown in Figure 2. The amended segment S'4 is reprogrammed into the empty segment previously called SO and the memory management unit MMU amends the address information so that the amended segment S'4 is at address A4 and the address Ag is applied to the segment containing the original version of segment S4, as shown in Figure 3.
This segment, containing the original version of S4 is now construed to be available as a target for further reprogramming steps.
Figure 4 shows the processor system 10 within the context of a computer system 1. The volatile memory 11 and RAM communicate with the processor via a system bus15 and address control logic 14 that processes the change of address information required during the reprogramming. The graphical user interface appears on a display 16 to enable the user to instruct the reprogramming operation. This is convenient as the user must be able to control the process despite the fact that it is embedded deep within the computer system 1. Information from the processor 10 and address control logic 14 is supplied to the display 16 via the system bus 15 and display control logic 17. The user can use a mouse, touch screen or other suitable pointer to input commands which are subsequently fed back to the processor 10 via screen control logic 18. Alternatively the user can input commands through a keypad 19 that is connected, via keypad control logic 20, to the system bus 15.
Figures 5a, b and c show the graphical user interface at various stages during the reprogramming process. The first step is to download the package to the system. This will result in the window shown in Figure 5a asking "Which Flash segment to update?" The user must then select a segment number "n" and proceed by either clicking the "OK" icon within the window, or giving a suitable command via the keyboard. The processor 10 then begins the reprogramming process and the user is informed of the progress of the reprogramming by a window that progresses from that shown in Figure 5b to that shown in Figure 5c as the process proceeds. This window is for information only as the user cannot interrupt the process once it has been initiated.

Claims (8)

1. A non-volatile memory system comprising: non-volatile memory divided into a plurality of segments each segment having an address in an address space and wherein at least one of the segments is unused, means for copying any one segment to be reprogrammed into a RAM, the RAM having a size at least equal to the segment size, means for modifying the contents of the RAM, means for erasing the unused segment, writing means for writing the reprogrammed code into the at least one unused memory segment, and control means arranged to amend the address space to show the same address of the reprogrammed segment.
2. The system according to claim 1, wherein the segments are substantially equal In size.
3. The system according to claim 1 or claim 2, wherein each segment contains some unused space.
4. The system according to any of claims 1 to 3, wherein the control means comprises internal logic components.
5. A method of reprogramming a non-volatile solid state memory system comprising a plurality of equal size segments each segment having an address in an address space, a RAM at least equal in size to a single memory segment, and control means capable of altering the address of any one of the address corresponding to the individual segments in the address space, whilst the system is active, the method comprising the steps of: copying at least one segment to be reprogrammed into RAM, modifying the contents of the RAM, erasing the contents of the at least one unused memory segment, writing the reprogrammed code into the at least one unused memory segment, and amending the address space to show the name address of the reprogrammed segment.
6. The method according to claim 5, wherein the segment containing the earlier version is designated as unused.
7. The method according to claim S or claim 6, wherein the amendment to the address space is synchronized with the processor execution.
8. A user interface for guiding a user through a reprogramming a non volatile solid state memory system comprising a plurality of equal size segments each segment having an address in an address space, a RAM at least equal in size to a single memory segment, and control means capable of altering the address of any one of the address corresponding to the individual segments in the address space, whilst the system is active,, the user interface comprising: a graphical representation of the embedded processor showing the contents of each segment, means for selecting the segment to be reprogrammed, and means of initiating the method of reprogramming according to any of the claims 5 to 7.
GB0406238A 2004-03-19 2004-03-19 Reprogramming a non-volatile memory system Withdrawn GB2412194A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
GB0406238A GB2412194A (en) 2004-03-19 2004-03-19 Reprogramming a non-volatile memory system
PCT/GB2005/000786 WO2005091302A1 (en) 2004-03-19 2005-03-02 Reprogramming a non-volatile solid state memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB0406238A GB2412194A (en) 2004-03-19 2004-03-19 Reprogramming a non-volatile memory system

Publications (2)

Publication Number Publication Date
GB0406238D0 GB0406238D0 (en) 2004-04-21
GB2412194A true GB2412194A (en) 2005-09-21

Family

ID=32118046

Family Applications (1)

Application Number Title Priority Date Filing Date
GB0406238A Withdrawn GB2412194A (en) 2004-03-19 2004-03-19 Reprogramming a non-volatile memory system

Country Status (2)

Country Link
GB (1) GB2412194A (en)
WO (1) WO2005091302A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5940850A (en) * 1996-10-31 1999-08-17 International Business Machines Corporation System and method for selectively enabling load-on-write of dynamic ROM data to RAM
US6324411B1 (en) * 1997-05-20 2001-11-27 Telefonaktiebolaget Lm Ericsson (Publ) Background software loading in cellular telecommunication systems
EP1260907A1 (en) * 2001-10-16 2002-11-27 Siemens Schweiz AG Method of persistent storing of data
US6581133B1 (en) * 1999-03-30 2003-06-17 International Business Machines Corporation Reclaiming memory from deleted applications

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3485938B2 (en) * 1992-03-31 2004-01-13 株式会社東芝 Nonvolatile semiconductor memory device
GB2361783B (en) * 2000-04-27 2004-11-10 Ubinetics Ltd Non-volatile storage method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5940850A (en) * 1996-10-31 1999-08-17 International Business Machines Corporation System and method for selectively enabling load-on-write of dynamic ROM data to RAM
US6324411B1 (en) * 1997-05-20 2001-11-27 Telefonaktiebolaget Lm Ericsson (Publ) Background software loading in cellular telecommunication systems
US6581133B1 (en) * 1999-03-30 2003-06-17 International Business Machines Corporation Reclaiming memory from deleted applications
EP1260907A1 (en) * 2001-10-16 2002-11-27 Siemens Schweiz AG Method of persistent storing of data

Also Published As

Publication number Publication date
WO2005091302A1 (en) 2005-09-29
GB0406238D0 (en) 2004-04-21

Similar Documents

Publication Publication Date Title
US20110131364A1 (en) Reprogramming a non-volatile solid state memory system
US7886287B1 (en) Method and apparatus for hot updating of running processes
US8533677B1 (en) Graphical user interface for dynamically reconfiguring a programmable device
US7313684B2 (en) Method and apparatus for booting a computer system
EP2652599B1 (en) System reset
US8561049B2 (en) Method and system for updating content stored in a storage device
US6745278B2 (en) Computer capable of rewriting an area of a non-volatile memory with a boot program during self mode operation of the computer
WO2005029325A1 (en) Method and apparatus for booting a computer system
CN110908932B (en) Data processing apparatus and data protection method thereof
CN103988181A (en) Method and system for patching a virtual image
EP2329368B1 (en) Updating content without using a mini operating system
JP3764405B2 (en) Debugging apparatus and debugging method
CN101025711A (en) Apparatus and method for controlling flash memory
CN103339603B (en) Computer reprograms method, data storage medium and motor vehicles computer
EP1685482A1 (en) Method and apparatus for booting a computer system
EP1025489B1 (en) System to associate control with applications using drag and drop interface
GB2412194A (en) Reprogramming a non-volatile memory system
WO2005124540A1 (en) Method and apparatus for booting a computer system
US8826267B2 (en) Association of object elements to operational modes
JP2004013536A (en) Flash memory rewrite control system and method, program for operating processe in flash memory rewrite control method, and information storage medium
JP5158883B2 (en) Firmware update method and firmware update apparatus
US20030028868A1 (en) Information processor, method for processing information and computer-readable recording medium recorded with program code for controlling a computer to process information
US8108645B2 (en) Optimized memory allocation via feature extraction
JP7446537B1 (en) Programmable logic controller, control method and program
WO2005038663A1 (en) Method for providing extended usb functions using standard ums communication

Legal Events

Date Code Title Description
WAP Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1)