Movatterモバイル変換


[0]ホーム

URL:


GB2231419A - Program-updating PROM - Google Patents

Program-updating PROM
Download PDF

Info

Publication number
GB2231419A
GB2231419AGB8910294AGB8910294AGB2231419AGB 2231419 AGB2231419 AGB 2231419AGB 8910294 AGB8910294 AGB 8910294AGB 8910294 AGB8910294 AGB 8910294AGB 2231419 AGB2231419 AGB 2231419A
Authority
GB
United Kingdom
Prior art keywords
sub
routine
information
prom
instructional information
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
GB8910294A
Other versions
GB8910294D0 (en
GB2231419B (en
Inventor
Christopher Michael Harrison
Mark Powell
Anthony John Whitley
Michael Overy
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.)
Nokia Mobile Phones UK Ltd
Original Assignee
Technophone 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 Technophone LtdfiledCriticalTechnophone Ltd
Priority to GB8910294ApriorityCriticalpatent/GB2231419B/en
Publication of GB8910294D0publicationCriticalpatent/GB8910294D0/en
Publication of GB2231419ApublicationCriticalpatent/GB2231419A/en
Application grantedgrantedCritical
Publication of GB2231419BpublicationCriticalpatent/GB2231419B/en
Anticipated expirationlegal-statusCritical
Expired - Fee Relatedlegal-statusCriticalCurrent

Links

Classifications

Landscapes

Abstract

A PROM (10) has a pre-programmed portion (10a) comprising one or more sub-routines (1-3) of instructional information, a look-up table (4), and an unprogrammed portion (10b). If a sub-routine (2) is found to contain a programming error, i.e. a bug (6), the whole of that sub-routine is re-written as a new sub-routine (2A) in the unprogrammed portion of the PROM. The addresses of the original and new sub-routines are entered into the look-up table in correlated relationship. An instruction is provided at the start of the defective sub-routine (2) which causes the look-up table to be consulted before executing the rest of the instructions in that sub-routine. The new sub-routine is executed in place of the original sub-routine if the look-up table contains information correlating an original sub-routine and a new sub-routine. If the look-up table does not contain correlation information the original sub-routine is executed. <IMAGE>

Description

UPDATING PROM INFORMATIONThis invention relates to a method of updating information stored in a programmable read only memory (PROM), and further relates to a PROM conditioned for use in such a method.
The term programmable read only memory (PROM) is used herein to refer to a memory device intended primarily for storing information to be read, but which can be programmed - at least once - by the user to alter the stored information.
Thus, the term PROM specifically includes a one time programmable read only memory which, as the name implies, may be written on only once, as well as erasable devices known asEPROMs which may be written on several times.
It is known to store instructional information for execution by a computer (or microprocessor), especially information which is intended not to be changed or changed only infrequently, as so-called 'firmware' in a PROM. This contrasts with 'software' which is the type of instructional information which can be changed relatively easily, e.g.
information stored on magnetic disk. PROM is a more secure vehicle for storing instructional information, for example an operating system, which the user is not ordinarily expected to change. However, problems arise when a programming error, or so-called bug, is found to exist in firmware because it has hitherto not always been easy or even possible to update information stored on PROM. REPROS require physical access to the device itself to erase the information stored therein, whereas one time programmable read only memories cannot by definition have their information freely changed. It is not unusual, therefore, to discard the original PROM and to replace it with a new one, but this is obviously a costly and wasteful exercise.
According to a first aspect of the present invention there is provided a method of updating information stored in a programmable read only memory (PROM), the PROM having a portion comprising at least one pre-existing set of instructional information, an unprogrammed portion, and means for correlating information, the method including the steps of::(a) storing in the unprogrammed portion a new set of instructional information, and(b) entering into the correlating means information correlating the new set of instructional information with the pre-existing set,an instruction being provided at the start of the pre-existing set of instructional information which causes the correlating means to be consulted before executing the remainder of the instructions in said pre-existing set whereby the new set of instructional information is executed instead of the pre-existing set when the correlating means comprises information correlating the new set with the pre-existing set of instructional information.
A method in accordance with the first aspect of the invention has the advantage that it enables instructional information, i.e. the firmware, stored in a PROM to be updated relatively easily without requiring physical access to the PROM device itself and without the need for discarding the original PROM.
When a bug is found in a particular set of instructions, the whole of that set is re-written correctly in an empty part of the memory and thereafter the new set of instructions is executed instead of the original set. The original set of instructions is left unaltered, and is simply superseded by the new set.
In a particular embodiment, the method additionally includes the step of providing at the start of the pre-existing set of instructional information the instruction which causes the correlating means to be consulted. Suitably, this instruction may be provided by altering an existing instruction at the start of the pre-existing set of instructional information. The said existing instruction may either be a dummy instruction functionally independent of the remainder of the pre-existing set of instructional information, or it may form a functionally dependant part of the remainder of the pre-existing set of instructional information.
According to a further aspect of the invention there is provided a PROM conditioned for use in the method in accordance with the first aspect, the PROM comprising a pre-programmed set of instructional information, an unprogrammed portion into which the new set of instructional information may be written, means for correlating information about the preprogrammed set of instructional information with the new set, means for including an instruction at the start of the pre-programmed set of instructional information for causing the correlating means to be consulted before execution of the remainder of the instructions of the pre-programmed set, and a further set of instructional information for controlling the consultation of the correlating means whereby the new set of instructional information is executed instead of the pre-programmed set when the correlating means comprises information correlating the new set with the pre-programmed set of instructional information.
Embodiments of the invention will now be described, by way of example, with reference to the accompanying drawings in which: Figure 1 is a schematic flowchart-style diagram illustrating a first method of updating information storedin a PROM in accordance with the present invention,Figure 2 is a schematic flowchart-style diagramillustrating a second method in accordance with invention, andFigure 3 is a schematic flowchart-style diagram illustrating a further method in accordance with the invention.
In Figure 1 there is shown a PROM or EPROM 10 having a portion 10a which is pre-programmed and a portion 10b (shown cross hatched) which is initially empty, i.e. unprogrammed.
The pre-programmed portion 10a is shown as comprising three distinct sets of instructional information in the form of respective sub-routines 1,2,3 of a complete program. It will be evident to those skilled in the art that the complete program may perform any desired function, and as the specific function is not important to understanding the present invention no further details will be given here. Also, the skilled practitioner will realise that the complete program may - and usually will - comprise more (or less) than three subroutines.
Also, in the pre-programmed portion 10a there is provided a look-up table 4 shown schematically as comprising two columns A and B. In the first column A there is stored address information identifying the location in the PROM of each of the sub-routines 1 to 3. Column B of the look-up table 4 is originally empty. A special sub-routine 5 controls the periodic consultation of the look-up table 4 in the manner described in more detail below.
Tn the event of a programming error, or so-called bug, being found in one of the sub-routines 1-3, here represented by the asterisk 6 in sub-routine 2, a new corrected version 2A of the whole of that sub-routine is written into the empty part 10b of the PROM in known manner. Also, the address of the new sub-routine is entered into the look-up table 4 in columnB in correlated relationship to the address of the original sub-routine 2. The rest of column B is left empty.
As shown schematically, each of the subroutines 1-3 has a first instruction which calls up the sub-routine 5 for controlling the look-up table consultation procedure, as follows.
At the outset the first instruction of sub-routine 1 is executed which calls up sub-routine 5. This in turn causes the look-up table 4 to be consulted. On finding that there is no correlation information in the look-up table corresponding to sub-routine 1, sub-routine 5 proceeds back to sub-routine 1 for the whole of sub-routine 1 to be executed. Subsequently, the first instruction of sub-routine 2 is executed which again calls up sub-routine 5 causing the look-up table 4 to be consulted. This time the look-up table does contain information correlating the address of sub-routine 2 with that of newly-entered sub-routine 2A.
Thus sub-routine 5 causes sub-routine 2A to be executed next instead of the remainder of original sub-routine 2. Hence the bug 6 in sub-routine 2 is bypassed. Sub-routine 2A proceeds to sub-routine 3. The first instruction of sub-routine 3 calls up the common sub-routine 5 which once again causes the look-up table to be consulted. As was the case for sub-routine 1, there is no correlation information held in the look-up table for sub-routine 3 and hence sub-routine 5 proceeds back to sub-routine 3 for the whole of sub-routine 3 to be executed and so terminate the whole program stored in the PROM.
In this example the common sub-routine 5 is executed at the start of each separate sub-routine 1-3, regardless of whether or not the sub-routine contains a bug.
Figure 2 shows a variation of the scheme described with reference to Figure 1. In this case the first instruction of each sub-routine originally forms a functionally dependant and integral part of the remainder of that sub-routine. In other words the first instruction of the sub-routines 1-3 does not ordinarily call up the look-up table consultation routine 5, which was the situation in the previous embodiment. However, if a sub-routine, such as sub-routine 2, does contain a bug 6, the first instruction of that sub-routine is converted to a particular code, specifically all zeros (e.g. 0000 0000 in 8-bit form) in the case of a one time programmable read only memory which interrupts sub-routine 2 and causes sub-routine 5 to be initiated.
Sub-routine 5 operates exactly as described previously so that when the look-up table 4 is consulted and found to contain correlation information for sub-routine 2, namely the address of new sub-routine 2A, the new sub-routine is executed instead of original sub-routine 2. Thereafter, the sub-routine 3 is executed in its entirety.
In this example the look-up table consultation routine 5 is called up only at the start of a sub-routine containing a bug, i.e. in response to an interrupt command programmed specifically to bypass the defective sub-routine.
This scheme relies on the fact that it is possible (and relatively straightforward) to change the binary 'ones' of aPROM to binary 'zeros' although it is not possible to change the zeros to ones, except in the case of an electrically erasable programmable read only memory (REPRO).
The scheme shown in Figure 3 is similar to that in Figure 2, except that the first instruction(s) [GO TO SUBROUTINE 7] of each sub-routine 1-3 ordinarily calls up an empty (or null) sub-routine 7 which simply returns to the original sub-routine for the remainder of that sub-routine to be executed in full. Here, the first instruction(s) of the sub-routines 1-3 are effectively dummy instructions. Again it is sub-routine 2 which contains the bug 6 and the first instruction of that sub-routine is converted to a new code [GO TO SUBROUTINE 5 ] by converting some or all of the existing binary ones of the original code to zeros, the new code initiating the look-up table consultation routine 5 instead of the empty sub-routine 7. Hence, newly written sub-routine 2A is executed instead of original sub-routine 2 and subsequently sub-routine 3 will be executed in its entirety, as before. This scheme also relies on the fact that it is possible (and relatively straightforward) to change the binary ones of a PROM to binary zeros.
Alternatively, with an EEPROM the first instruction of a defective sub-routine may be changed to any suitable new code since not only can ones be changed selectively to zeros, but also the zeros can be changed selectively to ones.
In view of the foregoing description, it will be evident to a person skilled in the art that various modifications may be made within the scope of the present invention

Claims (9)

  1. CLAIMS 1. A method of updating information stored in a programmable read only memory (PROM), the PROM having a portion comprising at least one pre-existing set of instructional information, an unprogrammed portion, and means for correlating information, the method including the steps of:(a) storing in the unprogrammed portion a new set of instructional information, and(b) entering into the correlating means information correlating the new set of instructional information with the pre-existing set,an instruction being provided at the start of the pre-existing set of instructional information which causes the correlating means to be consulted before executing the remainder of the instructions in said pre-existing set whereby the new set of instructional information is executed instead of the pre-existing set when the correlating means comprises information correlating the new set with the pre-existing set of instructional information.
  2. 5. A PROM conditioned for use in the method according to any one of claims 1 to 4, comprising a pre-programmed set of instructional information, an unprogrammed portion into which the new set of instructional information may be written, means for correlating information about the pre-programmed set of instructional information with the new set, means for including an instruction at the start of the pre-programmed set of instructional information for causing the correlating means to be consulted before execution of the remainder of the instructions of the pre-programmed set, and a further set of instructional information for controlling the consultation of the correlating means whereby the new set of instructional information is executed instead of the pre-programmed set when the correlating means comprises information correlating the new set with the pre-programmed set of instructional information.
GB8910294A1989-05-051989-05-05Updating prom information.Expired - Fee RelatedGB2231419B (en)

Priority Applications (1)

Application NumberPriority DateFiling DateTitle
GB8910294AGB2231419B (en)1989-05-051989-05-05Updating prom information.

Applications Claiming Priority (1)

Application NumberPriority DateFiling DateTitle
GB8910294AGB2231419B (en)1989-05-051989-05-05Updating prom information.

Publications (3)

Publication NumberPublication Date
GB8910294D0 GB8910294D0 (en)1989-06-21
GB2231419Atrue GB2231419A (en)1990-11-14
GB2231419B GB2231419B (en)1993-09-22

Family

ID=10656239

Family Applications (1)

Application NumberTitlePriority DateFiling Date
GB8910294AExpired - Fee RelatedGB2231419B (en)1989-05-051989-05-05Updating prom information.

Country Status (1)

CountryLink
GB (1)GB2231419B (en)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
GB2250838A (en)*1990-12-111992-06-17Honda Motor Co LtdPatching a program stored in ROM
GB2295908A (en)*1994-12-091996-06-12Plessey TelecommUpdating EPROMs
WO2000036498A3 (en)*1998-12-152000-09-28Infineon Technologies AgMethod for changing the flow of a program stored in a read-only memory
GB2348986A (en)*1999-04-152000-10-18Mitel CorpUpdating program components stored on one-time-programmable memory
EP1331548A3 (en)*2002-01-182006-05-10Lexar Media, Inc.File management of one-time-programmable non volatile memory devices
WO2008137806A1 (en)2007-05-032008-11-13Tego Inc.Multiple radio frequency network node rfid tag utilizing otp memory systems
US8242911B2 (en)2006-12-112012-08-14Tego Inc.Composite multiple RFID tag facility
US8242907B2 (en)2005-12-092012-08-14Tego, Inc.Multiple radio frequency network node RFID tag
US8242908B2 (en)2005-12-092012-08-14Tego Inc.Methods and systems of a multiple radio frequency network node RFID tag
US8269630B2 (en)2005-12-092012-09-18Tego Inc.Methods and systems of a multiple radio frequency network node RFID tag
US8279065B2 (en)2005-12-092012-10-02Tego Inc.Methods and systems of a multiple radio frequency network node RFID tag
US8390456B2 (en)2008-12-032013-03-05Tego Inc.RFID tag facility with access to external devices
US8947233B2 (en)2005-12-092015-02-03Tego Inc.Methods and systems of a multiple radio frequency network node RFID tag
US9710682B2 (en)2005-12-092017-07-18Tego, Inc.Operating systems for an RFID tag
US9842290B2 (en)2005-12-092017-12-12Tego, Inc.Flight-cycle sensor monitoring of aviation component
US9858452B2 (en)2005-12-092018-01-02Tego, Inc.Information RFID tagging facilities
DE102017102147A1 (en)*2016-10-112018-04-12Elmos Semiconductor Aktiengesellschaft Subsequent patchable memory (OTP) with bit memory cells and method of patching same
US9953193B2 (en)2014-09-302018-04-24Tego, Inc.Operating systems for an RFID tag

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US9430732B2 (en)2014-05-082016-08-30Tego, Inc.Three-dimension RFID tag with opening through structure
US8988223B2 (en)2005-12-092015-03-24Tego Inc.RFID drive management facility
US9117128B2 (en)2005-12-092015-08-25Tego, Inc.External access to memory on an RFID tag

Citations (5)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
GB1346219A (en)*1970-10-161974-02-06Honeywell Bull SaMemory arrangements for digital electronic computers
GB1488271A (en)*1973-12-271977-10-12CiiControl store unit addressing device
US4095278A (en)*1975-10-081978-06-13Hitachi, Ltd.Instruction altering system
GB2043308A (en)*1978-08-171980-10-01Xerox CorpMicrocomputer controller having field programmable memory
GB2122780A (en)*1982-04-261984-01-18Sharp KkProgram modification system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
GB1346219A (en)*1970-10-161974-02-06Honeywell Bull SaMemory arrangements for digital electronic computers
GB1488271A (en)*1973-12-271977-10-12CiiControl store unit addressing device
US4095278A (en)*1975-10-081978-06-13Hitachi, Ltd.Instruction altering system
GB2043308A (en)*1978-08-171980-10-01Xerox CorpMicrocomputer controller having field programmable memory
GB2122780A (en)*1982-04-261984-01-18Sharp KkProgram modification system

Cited By (32)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
GB2250838A (en)*1990-12-111992-06-17Honda Motor Co LtdPatching a program stored in ROM
GB2295908A (en)*1994-12-091996-06-12Plessey TelecommUpdating EPROMs
WO2000036498A3 (en)*1998-12-152000-09-28Infineon Technologies AgMethod for changing the flow of a program stored in a read-only memory
GB2348986A (en)*1999-04-152000-10-18Mitel CorpUpdating program components stored on one-time-programmable memory
EP1331548A3 (en)*2002-01-182006-05-10Lexar Media, Inc.File management of one-time-programmable non volatile memory devices
US8294579B2 (en)2005-12-092012-10-23Tego Inc.Multiple radio frequency network node RFID tag
US8279065B2 (en)2005-12-092012-10-02Tego Inc.Methods and systems of a multiple radio frequency network node RFID tag
US10691992B2 (en)2005-12-092020-06-23Tego, Inc.RF tag with memory management
US8242907B2 (en)2005-12-092012-08-14Tego, Inc.Multiple radio frequency network node RFID tag
US8242908B2 (en)2005-12-092012-08-14Tego Inc.Methods and systems of a multiple radio frequency network node RFID tag
US8248238B2 (en)2005-12-092012-08-21Tego Inc.Multiple radio frequency network node RFID tag
US8248239B2 (en)2005-12-092012-08-21Tego Inc.Multiple radio frequency network node RFID tag
US8253567B2 (en)2005-12-092012-08-28Tego Inc.Multiple radio frequency network node RFID tag
US8269630B2 (en)2005-12-092012-09-18Tego Inc.Methods and systems of a multiple radio frequency network node RFID tag
US10430702B2 (en)2005-12-092019-10-01Tego, Inc.RF tag network connectivity through gateway facility
US8284055B2 (en)2005-12-092012-10-09Tego Inc.Multiple radio frequency network node RFID tag
US9858452B2 (en)2005-12-092018-01-02Tego, Inc.Information RFID tagging facilities
US8325011B2 (en)2005-12-092012-12-04Tego Inc.Multiple radio frequency network node RFID tag
US9842290B2 (en)2005-12-092017-12-12Tego, Inc.Flight-cycle sensor monitoring of aviation component
US8558699B2 (en)2005-12-092013-10-15Tego Inc.Multiple radio frequency network node RFID tag
US8947233B2 (en)2005-12-092015-02-03Tego Inc.Methods and systems of a multiple radio frequency network node RFID tag
US9710682B2 (en)2005-12-092017-07-18Tego, Inc.Operating systems for an RFID tag
US8242911B2 (en)2006-12-112012-08-14Tego Inc.Composite multiple RFID tag facility
EP2147399A4 (en)*2007-05-032011-05-11Tego Inc HIGH FREQUENCY NETWORK MULTIPLE N UDS RFID LABEL USING SINGLE PROGRAMMED MEMORY SYSTEMS
WO2008137806A1 (en)2007-05-032008-11-13Tego Inc.Multiple radio frequency network node rfid tag utilizing otp memory systems
US8390456B2 (en)2008-12-032013-03-05Tego Inc.RFID tag facility with access to external devices
US10204244B2 (en)2014-09-302019-02-12Tego, Inc.Data aggregating radio frequency tag
US9953193B2 (en)2014-09-302018-04-24Tego, Inc.Operating systems for an RFID tag
US10445536B2 (en)2014-09-302019-10-15Tego, Inc.Operating system for an RF tag
US10891449B2 (en)2014-09-302021-01-12Tego, Inc.Self-monitoring wireless computing device
DE102017102147B4 (en)2016-10-112018-09-20Elmos Semiconductor Aktiengesellschaft Subsequent patchable memory (OTP) with bit memory cells and method of patching same
DE102017102147A1 (en)*2016-10-112018-04-12Elmos Semiconductor Aktiengesellschaft Subsequent patchable memory (OTP) with bit memory cells and method of patching same

Also Published As

Publication numberPublication date
GB8910294D0 (en)1989-06-21
GB2231419B (en)1993-09-22

Similar Documents

PublicationPublication DateTitle
GB2231419A (en)Program-updating PROM
US5930504A (en)Dynamic nonvolatile memory update in a computer system
US6505279B1 (en)Microcontroller system having security circuitry to selectively lock portions of a program memory address space
US5526523A (en)Interface between operating system and operating system extension
US5210854A (en)System for updating program stored in eeprom by storing new version into new location and updating second transfer vector to contain starting address of new version
EP0554917B1 (en)Digital signal processing system having two instruction memories accessed by a processor under control of host
US6578094B1 (en)Method for preventing buffer overflow attacks
US5870520A (en)Flash disaster recovery ROM and utility to reprogram multiple ROMS
EP0524719A2 (en)Computer system with alterable bootstrapping software
US7627851B2 (en)Modification method for modifying a source code
EP0575127A2 (en)A method of providing a resident program part of a terminate and stay resident program
KR19980042796A (en) Microcomputer comprising flash EEPROM and method of erasing flash EEPROM
US20040111719A1 (en)Method for safely instrumenting large binary code
US6738887B2 (en)Method and system for concurrent updating of a microcontroller&#39;s program memory
KR100310486B1 (en)Microcumputer
CA2186862A1 (en)Apparatus and method for updating information in a writable microcode control store
JPH11110224A (en)Language processing device, its method and information storage medium
JPH06314190A (en)Electronic device
US20070169086A1 (en)System and method for updating in-system program
JPS60169906A (en) programmable controller
JPH0381185B2 (en)
JPH02208702A (en) User-defined instruction registration device for programmable controllers
JP2005063311A (en) Processor system patch method and patch application program
JPS595931B2 (en) Address stop method for arithmetic processing system
KR19980051321A (en) How to Load Device Drivers

Legal Events

DateCodeTitleDescription
PCNPPatent ceased through non-payment of renewal fee

Effective date:20030505


[8]ページ先頭

©2009-2025 Movatter.jp