WO1994024673A1 - Data writing to non-volatile memory - Google Patents

Data writing to non-volatile memory Download PDF

Info

Publication number
WO1994024673A1
WO1994024673A1 PCT/GB1994/000775 GB9400775W WO9424673A1 WO 1994024673 A1 WO1994024673 A1 WO 1994024673A1 GB 9400775 W GB9400775 W GB 9400775W WO 9424673 A1 WO9424673 A1 WO 9424673A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
register
volatile memory
region
memory
Prior art date
Application number
PCT/GB1994/000775
Other languages
French (fr)
Inventor
David B. Everett
Keith M. Jackson
Ian Miller
Original Assignee
Jonhig Limited
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
Priority to MD96-0344A priority Critical patent/MD960344A/en
Priority to US08/351,451 priority patent/US5715431A/en
Priority to AT94912602T priority patent/ATE219857T1/en
Priority to EP94912602A priority patent/EP0645046B1/en
Priority to PL94306763A priority patent/PL173398B1/en
Priority to RU94046277A priority patent/RU2146399C1/en
Priority to KR1019940704545A priority patent/KR100343377B1/en
Priority to DE69430859T priority patent/DE69430859D1/en
Application filed by Jonhig Limited filed Critical Jonhig Limited
Priority to AU65077/94A priority patent/AU676731B2/en
Priority to JP52289394A priority patent/JP3918195B2/en
Priority to BR9404989A priority patent/BR9404989A/en
Priority to TW083109389A priority patent/TW388029B/en
Publication of WO1994024673A1 publication Critical patent/WO1994024673A1/en
Priority to NO19944720A priority patent/NO317927B1/en

Links

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7821Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/0806Details of the card
    • G07F7/0813Specific details related to card security
    • G07F7/082Features insuring the integrity of the data on or in the card
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/0866Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means by active credit-cards adapted therefor
    • 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
    • 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
    • G11C16/105Circuits or methods for updating contents of nonvolatile memory, especially with 'security' features to ensure reliable replacement, i.e. preventing that old data is lost before new data is reliably written

Definitions

  • the invention relates to the writing of data to non-volatile memory.
  • Non-volatile memory is memory which retains data without electrical power being maintained.
  • the invention relates to the writing of data to memory in transportable integrated circuit devices which are used in conjunction with terminal devices with which they are temporarily coupled for data input and output.
  • An example of such a transportable device is the integrated circuit card (ICC), otherwise known as a "smart card” .
  • Smart cards are coupled by means of an interface to a terminal device whereby power, clock signals, a reset signal and serial data signals may be applied to the card.
  • the interface incorporates a set of electrical contacts for direct temporary electrical connection.
  • contactless interfaces employing electromagnetic induction techniques for the application of power have been proposed.
  • clock, reset and data signals may be coupled electromagnetically or by infra-red or ultra ⁇ sonic techniques.
  • Transportable integrated circuit devices may be embodied in tokens of other than card shape. Regardless of shape, such devices will be referred to herein as integrated circuit cards (ICCs) .
  • ICCs integrated circuit cards
  • a smart card application to which the invention is particularly applicable is in a financial value or "electronic cash" transfer system.
  • data in smart cards represents value which can be transferred on-line with banks and off-line between cards.
  • Such a system is described in patent applications Nos. W091/16691 and WO93/08545. It is clearly important in such applications to avoid the effects of erroneous data writing, either accidental or perhaps deliberate ⁇ ly instigated by manipulation of power or data lines.
  • the present invention provides a solution.
  • a method of writing data to non-volatile memory in an integrated circuit device the device having an interface for temporary connection to a terminal unit; a microprocessor; random access memory and non ⁇ volatile memory, the method consisting in allocating a first region of the non-volatile memory for data to be written, allocating a second region of non-volatile memory for write status information to be written, performing a data write operation to write data to said first region, and writing information to said second region signifying a valid data write if, and only if, the data write operation is performed satis ⁇ factorily.
  • EEPROM electrically erasable program ⁇ mable read-only memory
  • the invention is applicable particularly, but not exclusively to this.
  • reading and writing procedures are concerned EEPROM is generally divided into pages and reading or writing is carried out on one page only at a time. It can be expected that a transient writing error may corrupt the contents of one page but not others . Accordingly, it is preferred that the said first and second regions are on different pages.
  • the invention allows the non-volatile memory to record whether there is an outstanding write error on the device and to take action accordingly when the device is used again, on application of a reset sig- nal .
  • a reset sig- nal Generally the protocol ISO 7816 is used, which governs the nature of reset, answer-to-reset, power and clock signals etc. If the fault is transient, the reset signal may be applied immediately so that an interrupted transaction may be resumed. If not, the reset signal is applied next time an attempt is made to use the device.
  • a method of utilisation of an integrated circuit device to which data has been written as described above the device including in the non-volatile memory an application program which controls the microprocessor to run a particular application under normal circumstances, the utilisation method including the step of initially reading the said second portion of the non-volatile memory to derive write status information therefrom and, if the write status information indicates an incomplete write operation, by-passing said applica ⁇ tion program.
  • the action effective when an outstanding write error is present on a smart card may be to render the card useless by continued failure to run the application program.
  • This is software invalidation of the card.
  • a hardware invalidation is possible by providing an overload current to a fuse link in the card, thus blowing the fuse and rendering the card invalid.
  • card invalidation is wasteful and preferably the method of utilisation includes, on detection of an incomplete write operation, a procedure of data recovery effective to restore the device to a condition in which the last data write is correct and the status information in the second region of memory reflects this. Should the data recovery procedure fail, then the above-mentioned software or hardware steps of invalidating the card may be taken.
  • respective and separate regions of the non ⁇ volatile memory are allocated as:- (a) a sequence register which is said second region of memory;
  • the recovery procedure when the register (a) indicates recovery is necessary, consists in copying the original (unamended) data from buffer (b) to said first region of memory. This restores the situation to the position before the faulty write operation.
  • the recovery procedure comprises repetition of the last two steps (4 and 5), since an error would indicate that the data pointer register had not been properly written.
  • (k) a state flag register which is said second region of memory; (1) a size register;
  • Figure 1 is a schematic diagram of a smart card having EEPROM organised to effect a first method of data writing and recovery in accordance with the invention
  • Figure 2 is a flow diagram in respect of the method used in the card of Figure 1 ;
  • Figure 3 is a schematic diagram similar to Figure 1 but in respect of a second method of data writing and recovery in accordance with the invention;
  • Figure 4 is a flow diagram in respect of the second method
  • Figure 5 is a schematic diagram similar to Figures 1 and 3 but in respect of a third method of data writing and recovery in accordance with the invention.
  • Figure 6 is a flow diagram in respect of the third method.
  • a smart card 1 which has an interface 2 comprising a set of contacts 3 for making contact with a terminal unit 4.
  • the terminal unit provides power, clock signals, a reset signal and serial data signals to the card.
  • the card is an ICC device which includes a microprocessor 5, RAM 6, and EEPROM 7.
  • Tn e EEPROM 7 is divided into a set of pages 8 and is loaded with an operating system program OS, an application program AP and has a data region DR which holds data which may be read and rewritten.
  • a first example of the present invention is designated METHOD 1, which is for incremental updating of data in EEPROM.
  • METHOD 1 is for incremental updating of data in EEPROM.
  • respective and separate regions of the data region DR of EEPROM are allocated as:-
  • EEPROM is such that its stored data can be corrupted if, whilst the content of the EEPROM is being changed, the power line, or the clock signal are interrupted.
  • data security is provided by the use of the data copy buffer in conjunction with the sequence register.
  • the sequence register is checked at 16 to determine whether a write failure is indicated. If not then the application program AP ( Figure 1) is executed at 17. If failure is indicated then the original data before the last attempted write operation, which is held in data copy buffer (b) is copied to the original data address (c) , (d) . This step is shown at 18. The situation before the attempted write operation is thus restored.
  • This method is adapted to a multi-stage operation procedure and in practice data will be fed back and forth to the terminal by a serial interface in multiple stages.
  • the sequence register holds information as to the stage in the sequence where interruption takes place. If the original interconnection to the terminal pertains and the operation sequence can be resumed then a re- synchronisation procedure takes place and at 19 there is a check to determine whether copying/re- synchronisation has succeeded. If so then the application program AP is run. If not the software must decide from the state of the sequence register how to re-synchronise the on-card application software and the software communicating with the smart card via the serial line. If data cannot be retrieved from the data copy buffer, and the sequence register indicates that this data should be available, then the smart card is unusable, as indicated at 20.
  • FIG. 3 there is shown the EEPROM configuration for a smart card (otherwise similar to that of Figure 1 ) to use a METHOD 2 in accordance with the invention.
  • respective and separate regions of EEPROM are allocated as : -
  • FIG. 4(a) A flow chart for the writing procedure in METHOD 2 is shown in Figure 4(a) . This includes the steps of :-
  • the Write in Progress flag is only set for the time required to update a pointer in EEPROM. This is the minimum possible theoretical update time, which should help to ensure that the recovery mechanism is invoked only very rarely. This minimises the number of attempted writes to EEPROM, and thus extends the life of the smart card.
  • Each data structure written to EEPROM using this method will be extended by two bytes, as a pointer to the data must be continuously maintained. There is a small overhead on each EEPROM read as all data which uses this method must be accessed via a pointer.
  • the data structure is only written to EEPROM once, but three pointers have to be updated (the New Data Pointer, the Workspace Pointer and the Data Pointer - in that order) .
  • the Size, Address and Sequence Register information must also be written to EEPROM.
  • FIG. 5 there is shown EEPROM allocation for a METHOD 3 of implementing the invention. It is to be understood that the EEPROM of Figure 5 is incorporated in a smart card otherwise similar to that of Figure 1. In Figure 5, separate regions of EEPROM (on separate pages 8) are allocated as : -
  • Error detection usually comprises calculating a checksum whenever the data is updated, storing this checksum, and verifying that it is correct during every subsequent data read.
  • the actual method used to calculate the error detection checksum is irrelevant for the purposes of this document, indeed some smart cards have error detection processes built into the EEPROM hardware, and their particular method of operation may well not be known.
  • An EEPROM write is deemed to be complete only when the error detection system has been appropriately updated, and has been verified correctly.
  • Each byte of EEPROM can only be changed a finite number of times before it ceases to function correctly. This is typically 10 to 10 write cycles. Therefore there is a finite chance of data being altered whilst it resides in EEPROM, and an EEPROM read must only be accepted as valid if the error detection system verifies that the data has not been altered. If an error is detected during an EEPROM read, it probably means that one or more bytes in the smart card's EEPROM have reached the end of their active life.
  • Method Number 1 One of the three methods of writing data to EEPROM described above (Method Number 1 ) explicitly keeps a counter (Sequence Register) which stores knowledge of the last successful operation in the series of operations performed during writing to EEPROM. Methods 2 and 3 may have, but do not explicitly require a counter of this type as they reply upon flags which hold information showing whether or not writing to EEPROM has successfully completed.
  • a counter Sequence Register

Abstract

A method of writing data to non-volatile memory such as electrically erasable programmable read only memory (EEPROM) in a smart card provides a write status region of EEPROM which is examined on each reset of the card. If the preceding write operation was unsuccessful, perhaps because of deliberate manipulation of the card, a recovery procedure is implemented. If recovery is successful the card application can be run. Otherwise the card is unusable.

Description

DATA WRITING TO NON-VOLATILE MEMORY
The invention relates to the writing of data to non-volatile memory. Non-volatile memory is memory which retains data without electrical power being maintained. In particular, the invention relates to the writing of data to memory in transportable integrated circuit devices which are used in conjunction with terminal devices with which they are temporarily coupled for data input and output. An example of such a transportable device is the integrated circuit card (ICC), otherwise known as a "smart card" .
Smart cards are coupled by means of an interface to a terminal device whereby power, clock signals, a reset signal and serial data signals may be applied to the card. Generally the interface incorporates a set of electrical contacts for direct temporary electrical connection. However, contactless interfaces employing electromagnetic induction techniques for the application of power have been proposed. In such an arrangement clock, reset and data signals may be coupled electromagnetically or by infra-red or ultra¬ sonic techniques. Transportable integrated circuit devices may be embodied in tokens of other than card shape. Regardless of shape, such devices will be referred to herein as integrated circuit cards (ICCs) . A difficulty with ICCs is that the writing of data to the ICC may be interfered with by disturbing the interface during writing whereby transients or failure in power, reset or clock signals may result in an erroneous write.
A smart card application to which the invention is particularly applicable is in a financial value or "electronic cash" transfer system. Here, data in smart cards represents value which can be transferred on-line with banks and off-line between cards. Such a system is described in patent applications Nos. W091/16691 and WO93/08545. It is clearly important in such applications to avoid the effects of erroneous data writing, either accidental or perhaps deliberate¬ ly instigated by manipulation of power or data lines. The present invention provides a solution.
According to the invention there is provided a method of writing data to non-volatile memory in an integrated circuit device, the device having an interface for temporary connection to a terminal unit; a microprocessor; random access memory and non¬ volatile memory, the method consisting in allocating a first region of the non-volatile memory for data to be written, allocating a second region of non-volatile memory for write status information to be written, performing a data write operation to write data to said first region, and writing information to said second region signifying a valid data write if, and only if, the data write operation is performed satis¬ factorily.
In a microprocessor environment there are many copy and write procedures for transferring data and program information between regions of RAM and from RAM to EEPROM, for example, and vice versa. At the operating system level or higher there are usually verification techniques available for verifying the validity of a copy or write operation. This may involve an automatic comparison of the copied or written material with the original or, more usually, the provision of a checksum routine which adds one or more checksum bits to the data which, in accordance with a particular algorithm, provide a link to the data which can be verified to ensure that no write or copy computation has taken place. If corruption is detected the operation can be repeated until satisfactory. The present invention is not concerned with such techniques and is additional to them, where provided. However, such inbuilt techniques can be used as the basis for determining whether the write operation has been performed satisfactorily in order to write the appropriate information into the said second region of memory. Thus, for example, if data is successfully written to an ICC with inbuilt write verification techniques present then the conclusion of the write process can be taken as indication of a satisfactory write to allow appropriate data to be written to the second region of memory. The type of non-volatile memory currently used in most smart cards is electrically erasable program¬ mable read-only memory (EEPROM) and the invention is applicable particularly, but not exclusively to this. As far as reading and writing procedures are concerned EEPROM is generally divided into pages and reading or writing is carried out on one page only at a time. It can be expected that a transient writing error may corrupt the contents of one page but not others . Accordingly, it is preferred that the said first and second regions are on different pages.
The invention allows the non-volatile memory to record whether there is an outstanding write error on the device and to take action accordingly when the device is used again, on application of a reset sig- nal . Generally the protocol ISO 7816 is used, which governs the nature of reset, answer-to-reset, power and clock signals etc. If the fault is transient, the reset signal may be applied immediately so that an interrupted transaction may be resumed. If not, the reset signal is applied next time an attempt is made to use the device. Preferably, in accordance with an aspect of the invention there is provided a method of utilisation of an integrated circuit device to which data has been written as described above, the device including in the non-volatile memory an application program which controls the microprocessor to run a particular application under normal circumstances, the utilisation method including the step of initially reading the said second portion of the non-volatile memory to derive write status information therefrom and, if the write status information indicates an incomplete write operation, by-passing said applica¬ tion program.
Thus, the action effective when an outstanding write error is present on a smart card (for example) may be to render the card useless by continued failure to run the application program. This is software invalidation of the card. Alternatively, a hardware invalidation is possible by providing an overload current to a fuse link in the card, thus blowing the fuse and rendering the card invalid. However, card invalidation is wasteful and preferably the method of utilisation includes, on detection of an incomplete write operation, a procedure of data recovery effective to restore the device to a condition in which the last data write is correct and the status information in the second region of memory reflects this. Should the data recovery procedure fail, then the above-mentioned software or hardware steps of invalidating the card may be taken.
As non-exhaustive examples of the way in which the invention may be used, three specific methods are proposed. METHOD 1
In accordance with this method it is provided that respective and separate regions of the non¬ volatile memory are allocated as:- (a) a sequence register which is said second region of memory;
(b) a data copy buffer;
(c) a size register; and
(d) an address register and allocating a region of RAM or non-volatile memory as (e) a data incremental buffer, the said first region of non-volatile memory being identified in size and address by data written in memory regions (c) and (d) , the said method of writing consisting in:-
1. ensuring that the buffer (e) contains a valid data increment;
2. placing a copy of data to be updated in the buffer (b) ; 3. incrementing the register (a) ;
4. incrementing the data at the first region of memory by the amount in buffer (e) and writing the incremental amount to the first region of memory; and 5. incrementing the sequence register (a) .
With this method the recovery procedure, when the register (a) indicates recovery is necessary, consists in copying the original (unamended) data from buffer (b) to said first region of memory. This restores the situation to the position before the faulty write operation.
METHOD 2
In thi s method it is provided that respective and s epara te reg i on s of the non - vol a ti l e memory are allocated as : -
(f) a write in progress flag register, which is said second region of memory;
(g) a workspace pointer register; (h) a size register; and
(i) a data pointer register and allocating a region of RAM or non-volatile memory as (j) a new data pointer register, the said first region of non-volatile memory being identified in size and position by data written in memory regions (g) and (h) , the said method of writing consisting in:-
1. setting a workspace pointer in register
(g) to the address of non-volatile memory workspace sufficient to hold a contiguous data set corresponding to a size set in register (h) ;
2. copying to the workspace a copy of new data identified in address by the new data pointer at (j) and in size by the size data at (h);
3. setting the write in progress flag at
(f);
4. setting an address in data pointer register (i) to the address of the work¬ space; and
5. clearing the write in progress flag in register (f) .
Here, the recovery procedure comprises repetition of the last two steps (4 and 5), since an error would indicate that the data pointer register had not been properly written.
METHOD 3 In this method it is provided that respective and separate regions of the non-volatile memory are allocated as : -
(k) a state flag register which is said second region of memory; (1) a size register;
(m) an address register; and (n) an update copy buffer the said first region of non-volatile memory being identified in size and position by data written in registers (1) and (m) , the said method of writing consisting in:-
1. copying new data to be written into buffer (n) ;
2. setting the state flat in register (k); 3. writing said new data to be written to said first region of non-volatile memory; and
4. clearing the state flag in register (k) . Here, new data is typically written directly from RAM and a copy is taken for the update copy buffer (n) . If recovery is required, since it is the new data which is held in reserve in (n) , the recovery procedure copies this to the required address in EEPROM (for example) .
The invention will further be described with reference to the accompanying drawings, of whic :-
Figure 1 is a schematic diagram of a smart card having EEPROM organised to effect a first method of data writing and recovery in accordance with the invention;
Figure 2 is a flow diagram in respect of the method used in the card of Figure 1 ; Figure 3 is a schematic diagram similar to Figure 1 but in respect of a second method of data writing and recovery in accordance with the invention;
Figure 4 is a flow diagram in respect of the second method; Figure 5 is a schematic diagram similar to Figures 1 and 3 but in respect of a third method of data writing and recovery in accordance with the invention; and
Figure 6 is a flow diagram in respect of the third method.
Referring to Figure 1 there is shown a smart card 1 which has an interface 2 comprising a set of contacts 3 for making contact with a terminal unit 4. In accordance with the protocol of ISO 7816 the terminal unit provides power, clock signals, a reset signal and serial data signals to the card. The card is an ICC device which includes a microprocessor 5, RAM 6, and EEPROM 7. Tne EEPROM 7 is divided into a set of pages 8 and is loaded with an operating system program OS, an application program AP and has a data region DR which holds data which may be read and rewritten.
A first example of the present invention is designated METHOD 1, which is for incremental updating of data in EEPROM. In accordance with this method respective and separate regions of the data region DR of EEPROM are allocated as:-
(a) a sequence register; (b) a data copy buffer;
(c) a size register; and
(d) an address register.
A r e g i o n o f RAM i s a l l o c a t e d a s ( e ) a d a t a incremental buffer , al though thi s could alternatively be in EEPROM also . Referring now to Figure 2(a) there is shown a flow diagram for the writing of data in accordance with METHOD 1. The steps include:
1. ensuring that the buffer (e) contains a valid data increment (at 9);
2. identifying the EEPROM data to be updated (original data) by reference to the size and address registers (c), (d) , giving the original location (at 10);
3. copying the original data to buffer (b) (at
11);
4. incrementing the sequence register (a) (at 12); 5. calculating the new data in RAM by reference to the original data and the data in the data increment buffer (e) and write the new data back to the original location in EEPROM (at 13); and 6. incrementing the register (a) (at 14) .
EEPROM is such that its stored data can be corrupted if, whilst the content of the EEPROM is being changed, the power line, or the clock signal are interrupted. With the arrangement described above, data security is provided by the use of the data copy buffer in conjunction with the sequence register. By virtue of internal write verification procedures it can be assumed that if the operating system indicates completion of the write procedure 13 then the written information is in order and the sequence register (a) can be updated appropriately. If the write operation is interrupted by power line or clock signal disruption, for example, then the sequence register remains in its former state which is not appropriate to the attempted write. In accordance with an aspect of the invention there is a check and recovery procedure available when the card receives the reset signal at any time. Figure 2(b) illustrates this. On reset at 15 the sequence register is checked at 16 to determine whether a write failure is indicated. If not then the application program AP (Figure 1) is executed at 17. If failure is indicated then the original data before the last attempted write operation, which is held in data copy buffer (b) is copied to the original data address (c) , (d) . This step is shown at 18. The situation before the attempted write operation is thus restored.
This method is adapted to a multi-stage operation procedure and in practice data will be fed back and forth to the terminal by a serial interface in multiple stages. The sequence register holds information as to the stage in the sequence where interruption takes place. If the original interconnection to the terminal pertains and the operation sequence can be resumed then a re- synchronisation procedure takes place and at 19 there is a check to determine whether copying/re- synchronisation has succeeded. If so then the application program AP is run. If not the software must decide from the state of the sequence register how to re-synchronise the on-card application software and the software communicating with the smart card via the serial line. If data cannot be retrieved from the data copy buffer, and the sequence register indicates that this data should be available, then the smart card is unusable, as indicated at 20.
This may be by virtue of continued failure to implement the application program or positive steps may be taken to invalidate the card as, for example, by blowing an inbuilt fuse.
The data copy buffer (b) and the data increment buffer (e) must both be large enough to hold the largest possible data block that will be written to EEPROM using this method. An extra 5 bytes of storage are also required (size = 2 bytes, address = 2 bytes, sequence register = 1 byte [at least]) . If size can never be greater than 255, then it can be stored in a single byte. Since the card operates on only one page 8 (Figure 1 ) at a time in writing, security is enhanced by ensuring that separate EEPROM pages (3 in total) are used for the data copy buffer, the data increment buffer and for the rest of the additional data.
Using this method of writing to EEPROM, the number of bytes actually written to EEPROM is doubled even if a recovery is not invoked (because a copy of the original data must be stored in the data copy buffer before the EEPROM write commences) . The total overhead is actually slightly more than this as size, address, and sequence register information must also be written to EEPROM.
Referring now to Figure 3 there is shown the EEPROM configuration for a smart card (otherwise similar to that of Figure 1 ) to use a METHOD 2 in accordance with the invention. Here respective and separate regions of EEPROM (on respective pages 8) are allocated as : -
(f) a write in progress flag register,-
(g) a workspace pointer register; (h) a size register; and
(i) a data pointer register. In RAM there is allocated a region (j) as a new data pointer register. Alternatively this may also be in EEPROM.
A flow chart for the writing procedure in METHOD 2 is shown in Figure 4(a) . This includes the steps of :-
1. setting a workspace pointer in register (a) to the address of a workspace in EEPROM sufficient in size to hold a contiguous data set corresponding to a size set in register (h) (at
21);
2. copying to the workspace a copy of new data in a region in RAM or EEPROM identified in size by register (h) and in position by register (i) (at 22) ;
3. setting the write in progress flat (f) (at 23);
4. setting the address in register (i) to the workspace address (at 24); and
5. clearing the write in progress flag in register (f) .
The check and recovery procedure for METHOD 2 is shown in Figure 4(b) . On reset at 25 the write in progress flag is checked at 26. If cleared the application program AP is run at 27. If not then the last two steps (4 and 5) of the write procedure are repeated. Thus, the data pointer (i) is set equal to the workspace pointer (g) at 28 and the write in progress flag (f) is cleared at 29. If this write procedure succeeds (check at 30) the program AP is executed. If not, then the smart card is unusable (at
31) . If an area of EEPROM is found where an EEPROM write cannot be completed, then this method readily allows the smart card application software to mark this area as unusable (permanently) , and choose another area for data storage. This can greatly extend the life of the smart card (which will very probably be limited by the maximum possible number of EEPROM writes that the smart card is capable of performing) , however this is at the expense of maintaining a pointer (a 2 byte overhead) to each data structure stored in EEPROM.
Under normal conditions, the Write in Progress flag is only set for the time required to update a pointer in EEPROM. This is the minimum possible theoretical update time, which should help to ensure that the recovery mechanism is invoked only very rarely. This minimises the number of attempted writes to EEPROM, and thus extends the life of the smart card.
Each data structure written to EEPROM using this method will be extended by two bytes, as a pointer to the data must be continuously maintained. There is a small overhead on each EEPROM read as all data which uses this method must be accessed via a pointer.
The EEPROM pointed to by the Workspace Pointer must be large enough to hold the largest possible data structure that will be written to EEPROM using this method. This space is only required until the EEPROM write has been successfully completed, at which point an equivalent length of EEPROM storage (which used to contain the original data) is released. An extra 7 bytes of storage are also required (Write in Progress flag = 1 byte, New Data Pointer = 2 bytes, Workspace Pointer = 2 bytes, Size = 2 bytes) . If Size can never be greater than 255, then it can be stored in a single byte. Using this method of writing to EEPROM, the data structure is only written to EEPROM once, but three pointers have to be updated (the New Data Pointer, the Workspace Pointer and the Data Pointer - in that order) . The Size, Address and Sequence Register information must also be written to EEPROM.
Referring now to Figure 5 there is shown EEPROM allocation for a METHOD 3 of implementing the invention. It is to be understood that the EEPROM of Figure 5 is incorporated in a smart card otherwise similar to that of Figure 1. In Figure 5, separate regions of EEPROM (on separate pages 8) are allocated as : -
(k) a state flag register; (1) a size register;
(m) an address register; and
(n) an update copy buffer.
The writing procedure in METHOD 3 is illustrated in Figure 6(a) . The following steps are implemented: -
1. Copy new data into buffer (n) (at 32);
2. Set state flag (k) (at 33);
3. Copy the new data to EEPROM region identified by size (1) and address (m) (at 34); and
4. Clear state flag (k) (at 35).
The check and recovery procedure illustrated in Figure 6(b) has reset at 36, and a check for the setting of state flag (k) at 37. If the flag is not set then application program AP is run at 38. Otherwise the new data residing in buffer (n) is copied to the region (1), (m) at 39 and the state flag (k) is cleared at 40. If successful, the application program is run. If not, the card is useless (41). An additional Data area (buffer n) must be large enough to store the largest amount of data which will be written to EEPROM, plus 5 bytes (Size = 2 bytes, Address = 2 bytes, State Flag - 1 byte) . If Size can never be greater than 255, then it can be stored in a single byte.
Using this method of writing to EEPROM, the number of bytes actually written to EEPROM is doubled even if a Recovery is not invoked (because a copy of the data must be written to EEPROM) . The total overhead is actually slightly more than this as Size, Address must also be written to EEPROM.
To be able to tell that data has not been altered, error detection techniques must be implemented. Error detection usually comprises calculating a checksum whenever the data is updated, storing this checksum, and verifying that it is correct during every subsequent data read. The actual method used to calculate the error detection checksum is irrelevant for the purposes of this document, indeed some smart cards have error detection processes built into the EEPROM hardware, and their particular method of operation may well not be known.
An EEPROM write is deemed to be complete only when the error detection system has been appropriately updated, and has been verified correctly.
Each byte of EEPROM can only be changed a finite number of times before it ceases to function correctly. This is typically 10 to 10 write cycles. Therefore there is a finite chance of data being altered whilst it resides in EEPROM, and an EEPROM read must only be accepted as valid if the error detection system verifies that the data has not been altered. If an error is detected during an EEPROM read, it probably means that one or more bytes in the smart card's EEPROM have reached the end of their active life.
Using one of the methods of writing to EEPROM described above ensures that error correction (as opposed to error detection) is not required. Either the EEPROM operation takes place successfully, or the smart card is unusable. There are no circumstances in which an error needs to be corrected. This simplifies the software and reduces the data storage requirements, as error correction is computationally intensive and requires more dedicated bytes of storage than error detection.
One of the three methods of writing data to EEPROM described above (Method Number 1 ) explicitly keeps a counter (Sequence Register) which stores knowledge of the last successful operation in the series of operations performed during writing to EEPROM. Methods 2 and 3 may have, but do not explicitly require a counter of this type as they reply upon flags which hold information showing whether or not writing to EEPROM has successfully completed.
Even though a method of writing to EEPROM does not always explicitly require a numeric counter, it should be clearly noted that in many systems it will be necessary to maintain such a counter so that interrupted processes of any kind can be restarted. It is of course vitally important for this counter to be written to EEFROM in a secure manner, as if it is not correct it cannot be relied upon by smart card application software attempting to restart an interrupted process.

Claims

1. A method of writing data to non-volatile memory in an integrated circuit device, the device having an interface for temporary connection to a terminal unit; a microprocessor; random access memory and non¬ volatile memory, the method consisting in allocating a first region of the non-volatile memory for data to be written, allocating a second region of non-volatile memory for write status information, performing a data write operation to write data to said first region, and writing information to said second region signifying a valid data write if, and only if, the data write operation is performed satisfactorily. 2. A method of writing data to non-volatile memory as claimed in Claim 1 wherein the non-volatile memory is divided into pages and write operations are performed on only one page at a time, the said first and second regions of memory being on different pages. 3- A method of writing data to non-volatile memory as claimed in Claim 1 or Claim 2 wherein the non¬ volatile memory is electrically erasable programmable read-only memory (EEPROM) . 4. A method of utilisation of an integrated circuit device to which data has been written in accordance with the method of any of Claims 1 to 3 , the device including in the non-volatile memory an application program which controls the microprocessor to run a particular application under normal circumstances, the utilisation method including the step of initially reading the said second portion of the non-volatile memory to derive write status information therefrom and, if the write status information indicates an incomplete write operation, by-passing said application program. 5. A method of utilisation of an integrated circuit device as claimed in Claim 4 including on detection of an incomplete write operation, a procedure of data recovery effective to restore the device to a condition in which the last data write is correct and the status information in the second region of memory reflects this.
6. A method of utilisation of an integrated circuit device as claimed in Claim 5 which includes the step of monitoring the procedure of data recovery and rendering running of the application program impossible if the data recovery procedure fails.
7. - A method of utilisation of an integrated circuit device as claimed in Claim 6 which includes the step of permanently disabling the device if the data recovery step fails.
8. A method of utilisation of an integrated circuit device as claimed in any of Claims 5 to 7 wherein said second region of memory is a status register, said status information is indicative of the last satisfactorily performed stage of a multi-stage operation sequence and said data recovery procedure is effective to recover the multi-stage operation sequence from the stage at which it failed., as indicated by the status register.
9. A method of utilisation of an integrated circuit device as claimed in Claim 8 wherein respective and separate regions of the non-volatile memory are allocated as:- (a) a sequence register which is said second region of memory;
(b) a data copy buffer;
(c) a size register; and
(d) an address register and allocating a region of RAM or non-volatile memory as (e) a data incremental buffer, the said first region of non-volatile memory being identi¬ fied in size and address by data written in memory regions (c) and (d) , the said method of writing consisting in.--
1. ensuring that the buffer (e) contains a valid data increment;
2. placing a copy of data to be updated in the buffer (b) ; 3. incrementing the register (a) ;
4. incrementing the data at the first region of memory by the amount in buffer (e) and writing the incremental amount to the first region of memory; and 5. incrementing the sequence register (a) .
10. A method of utilisation of an integrated circuit device as claimed in Claim 9 wherein the recovery procedure includes copying the data from the data buffer (b) to said first region of memory. 11- A method of utilisation of an integrated circuit device as claimed in any of Claims 5 to 7 wherein said second region of memory is a flag region and said status information is a flag which is set if the said write operation is verified as satisfactory and which is otherwise not set.
12. A method of utilisation of an integrated circuit device as claimed in Claim 11 wherein respective and separate regions of the non-volatile memory are allocated as:- (f) a write in progress flag register, which is said second region of memory; (g) a workspace pointer register; (h) a size register; and (i) a data pointer register and allocating a region of RAM or non-volatile memory as (j) a new data pointer register, the said first region of non-volatile memory being identified in size and position by data written in memory regions (g) and (h) , the said method of writing consisting in:-
1. setting a workspace pointer in register (g) to the address of non-volatile memory workspace sufficient to hold a contiguous data set corresponding to a size set in register (h) -
2. copying to the workspace a copy of new data identified in address by the new data pointer at (j) and in size by the size data at (h); 3. setting the write in progress flag at
(f);
4. setting an address in data pointer register (i) to the address of the workspace; and 5. clearing the write in progress flag in register (f ) .
13. A method of utilisation of an integrated circuit device as claimed in Claim 12 wherein the recovery procedure comprises the steps of setting the address in data pointer register (i) to the address of the workspace and clearing the write in progress flag in register (f) .
14. A method of utilisation of an integrated circuit device as claimed in Claim 11 wherein respective and separate regions of the non-volatile memory are allocated as:-
(k) a state flag register which is said second region of memory;
(1) a size register; (m) an address register; and (n) an update copy buffer the said first region of non-volatile memory being identified in size and position by data written in registers (1) and (m) , the said method of writing consisting in:-
1. copying new data to be written into buffer (n) ;
2. setting the state flat in register (k) ;
3. writing said new data to be written to said first region of non-volatile memory; and
4. clearing the state flag in register (k) . 15. A method of utilisation of an integrated circuit device as claimed in Claim 14 wherein the recovery procedure comprises the steps of copying the contents of the update copy buffer (n) to the said first region of non-volatile memory identified by the contents of registers (1) and (m) and clearing the flag in register (k) . 6- An integrated circuit device having an interface for temporary connection to a terminal unit; a microprocessor; random access memory and non-volatile memory, the non-volatile memory including a program for controlling the microprocessor to effect any of the data writing or utilisation methods as claimed in any of the preceding claims .
PCT/GB1994/000775 1993-04-13 1994-04-13 Data writing to non-volatile memory WO1994024673A1 (en)

Priority Applications (13)

Application Number Priority Date Filing Date Title
KR1019940704545A KR100343377B1 (en) 1993-04-13 1994-04-13 Data writing to non-volatile memory
AT94912602T ATE219857T1 (en) 1993-04-13 1994-04-13 ENROLLING DATA INTO NON-VOLATILE MEMORY
EP94912602A EP0645046B1 (en) 1993-04-13 1994-04-13 Data writing to non-volatile memory
PL94306763A PL173398B1 (en) 1993-04-13 1994-04-13 Method of writing data in non-volatile memory
RU94046277A RU2146399C1 (en) 1993-04-13 1994-04-13 Method for data storage in non-volatile memory unit, method for using integral circuit device, and integral circuit device
MD96-0344A MD960344A (en) 1993-04-13 1994-04-13 Data writing to non- volatile memory
DE69430859T DE69430859D1 (en) 1993-04-13 1994-04-13 ENROLL DATA IN NON-VOLATILE STORAGE
US08/351,451 US5715431A (en) 1993-04-13 1994-04-13 Tamper proof security measure in data writing to non-volatile memory
AU65077/94A AU676731B2 (en) 1993-04-13 1994-04-13 Data writing to non-volatile memory
JP52289394A JP3918195B2 (en) 1993-04-13 1994-04-13 Write data to non-volatile memory
BR9404989A BR9404989A (en) 1993-04-13 1994-04-13 Data recording in non-volatile memory
TW083109389A TW388029B (en) 1994-04-13 1994-10-11 Method of utilisation of an integrated circuit device and integrated circuit card device
NO19944720A NO317927B1 (en) 1993-04-13 1994-12-07 Procedure for entering data into non-volatile storage

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB939307623A GB9307623D0 (en) 1993-04-13 1993-04-13 Data writing to eeprom
GB9307623.0 1993-04-13

Publications (1)

Publication Number Publication Date
WO1994024673A1 true WO1994024673A1 (en) 1994-10-27

Family

ID=10733749

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/GB1994/000775 WO1994024673A1 (en) 1993-04-13 1994-04-13 Data writing to non-volatile memory

Country Status (17)

Country Link
US (1) US5715431A (en)
EP (1) EP0645046B1 (en)
JP (1) JP3918195B2 (en)
KR (1) KR100343377B1 (en)
CN (1) CN1049516C (en)
AT (1) ATE219857T1 (en)
AU (1) AU676731B2 (en)
BR (1) BR9404989A (en)
CA (1) CA2137683C (en)
CR (1) CR5712A (en)
DE (1) DE69430859D1 (en)
GB (1) GB9307623D0 (en)
MD (1) MD960344A (en)
PL (1) PL173398B1 (en)
RU (1) RU2146399C1 (en)
WO (1) WO1994024673A1 (en)
ZA (1) ZA942553B (en)

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0674290A2 (en) * 1994-02-25 1995-09-27 Fujitsu Limited Card type storage medium and card type storage medium issuing apparatus
WO1996025743A1 (en) * 1995-02-16 1996-08-22 Gemplus Method for the secure updating of an eeprom memory
WO1996034336A1 (en) * 1995-04-25 1996-10-31 Honeywell, Inc. Methods and apparatus for protecting the integrity of process data stored on a removable storage medium
WO1996036947A1 (en) * 1995-05-15 1996-11-21 Mondex International Limited Transaction recovery in a value transfer system
EP0745934A2 (en) * 1995-05-31 1996-12-04 AT&T Corp. File system for a data storage device having a power fail recovery mechanism for write/replace operations
EP0769742A1 (en) * 1995-10-18 1997-04-23 Schlumberger Industries Electronic component with electrically erasable non-volatile memory
GB2314663A (en) * 1995-05-15 1998-01-07 Mondex Int Ltd Transaction recovery in a value transfer system
EP0831433A1 (en) * 1996-09-24 1998-03-25 Koninklijke KPN N.V. Method of making recoverable smart card transactions, a method of recovering such a transaction, as well as a smart card allowing recoverable transactions
FR2757978A1 (en) * 1996-12-27 1998-07-03 Schlumberger Ind Sa METHOD FOR SECURING DATA IN A REWRITE MEMORY
WO1999042960A1 (en) * 1998-02-23 1999-08-26 Schlumberger Systemes Loading block computer programmes
WO1999064996A1 (en) 1998-06-05 1999-12-16 Landis & Gyr Communications S.A.R.L. Preloaded ic-card and method for authenticating the same
EP1011080A1 (en) * 1998-12-19 2000-06-21 Orga Kartensysteme GmbH Method for bidirectional datatransfer between a terminal and an ic-card and ic-card therefor
FR2833093A1 (en) * 2001-12-03 2003-06-06 Schlumberger Systems & Service Method for passing data between memory of portable tool and reader terminal, comprises creation of single file containing all data blocks their modification in terminal in one operation and return
WO2003065319A1 (en) * 2002-02-01 2003-08-07 Axalto Sa Update management for encoded data in memory
WO2003081544A2 (en) * 2002-03-18 2003-10-02 Sun Microsystems, Inc. Enhanced memory management for portable devices
EP0886240A3 (en) * 1997-06-17 2004-01-07 Fujitsu Limited A card-type storage medium
US6996802B2 (en) 2002-03-18 2006-02-07 Sun Microsystems, Inc. Method and apparatus for deployment of high integrity software using initialization order and calling order constraints
US7010783B2 (en) 2002-03-18 2006-03-07 Sun Microsystems, Inc. Method and apparatus for deployment of high integrity software using reduced dynamic memory allocation
US7181737B2 (en) 2002-03-18 2007-02-20 Sun Microsystems, Inc. Method and apparatus for deployment of high integrity software using static procedure return addresses
US10095440B2 (en) 2015-04-08 2018-10-09 Huawei Technologies Co., Ltd. Redo-logging for partitioned in-memory datasets

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3667920B2 (en) * 1997-02-21 2005-07-06 ローム株式会社 IC card
ATE281680T1 (en) * 1997-03-24 2004-11-15 Visa Int Service Ass SYSTEM AND METHOD FOR A MULTIPURPOSE CHIP CARD WHICH ALLOWS SUBSEQUENT STORAGE OF AN APPLICATION ON THIS CARD
JP3056131B2 (en) * 1997-06-25 2000-06-26 日本電気アイシーマイコンシステム株式会社 System reset method
JP4029234B2 (en) * 1998-07-16 2008-01-09 ソニー株式会社 Information processing apparatus and information processing method
JP4146006B2 (en) * 1998-09-28 2008-09-03 富士通株式会社 Electronic device having flash memory
FR2784483B1 (en) * 1998-10-13 2000-12-29 Innovatron Electronique METHOD FOR EXCHANGING DATA BETWEEN AN AUTOMATON AND A HANDHELD OBJECT, IN PARTICULAR A MICROCIRCUIT CARD, LIKELY TO BE DEBIT BY THE AUTOMATON IN REPLACEMENT OF THE DELIVERY OF GOODS OR SERVICES
JP4314702B2 (en) * 1998-11-26 2009-08-19 セイコーエプソン株式会社 Printing apparatus, writing method, and printer
FR2790324B1 (en) * 1999-02-25 2001-12-28 St Microelectronics Sa SECURE ACCESS DEVICE TO APPLICATIONS FROM A CHIP CARD
US7549056B2 (en) 1999-03-19 2009-06-16 Broadcom Corporation System and method for processing and protecting content
US6789159B1 (en) * 2002-05-08 2004-09-07 Broadcom Corporation System and method for programming non-volatile memory
US7810152B2 (en) * 2002-05-08 2010-10-05 Broadcom Corporation System and method for securely controlling access to device functions
DE19928939A1 (en) * 1999-06-24 2001-01-11 Giesecke & Devrient Gmbh Data carriers and methods for data transmission and memory management
FR2795835B1 (en) * 1999-07-01 2001-10-05 Bull Cp8 METHOD FOR VERIFYING CODE TRANSFORMERS FOR AN ON-BOARD SYSTEM, ESPECIALLY ON A CHIP CARD
DE19931184A1 (en) * 1999-07-07 2001-01-11 Bosch Gmbh Robert Altering controller memory contents involves writing new data that is worthy of security into different memory area before transferring to original memory area contg. replaced data
JP3822768B2 (en) * 1999-12-03 2006-09-20 株式会社ルネサステクノロジ IC card manufacturing method
JP2002123806A (en) * 2000-10-17 2002-04-26 Fujitsu Ltd Ic card, data update control method, data/message restoration control method, and storage medium with control program recorded thereon
DE10060912A1 (en) * 2000-12-07 2002-06-27 Infineon Technologies Ag Data carriers and methods for their cancellation
DE10143142A1 (en) * 2001-09-04 2003-01-30 Bosch Gmbh Robert Microprocessor-controlled operation of vehicular EEPROM memory, employs two memory areas with data pointers and cyclic validation strategy
US7043493B2 (en) * 2001-09-17 2006-05-09 Fujitsu Limited Hierarchical file system and anti-tearing algorithm for a limited-resource computer such as a smart card
EP1331600B1 (en) * 2002-01-24 2006-06-07 Matsushita Electric Industrial Co., Ltd. Memory card
EP1392052A1 (en) * 2002-05-08 2004-02-25 Broadcom Corporation System and method for secure controlling the configuration of device functions
EP1435576B1 (en) * 2003-01-03 2013-03-20 Austria Card Plastikkarten und Ausweissysteme GmbH Method and apparatus for block-oriented memory management provided in smart card controllers
DE10322723B3 (en) * 2003-05-20 2004-10-14 Infineon Technologies Ag Memory incomplete write-in or erasure condition handling device using write-in of data read from further page in memory page identified with inconsistency
WO2005103975A1 (en) * 2004-04-27 2005-11-03 Bitwallet, Inc. Money terminal processing server, money terminal processing method, money terminal, calculation instruction input device, and price modification information input device
JP2006024012A (en) 2004-07-08 2006-01-26 Fujitsu Ltd Non-contact ic storage medium, storage medium management program, and storage medium management method
US7366436B2 (en) * 2004-07-12 2008-04-29 Kyocera Mita Corporation Processing unit having a panel supported movably with respect to a unit main body
FR2875080B1 (en) * 2004-09-09 2006-10-27 Gemplus Sa OPTIMIZED UPDATING OF A DETERMINISTIC VALUE IN A COMMUNICATION DEVICE
EP1670000A1 (en) * 2004-12-13 2006-06-14 Axalto S.A. Method for securing writing in memory against attacks by rays or other methods
KR100649882B1 (en) * 2005-07-19 2006-11-27 삼성전자주식회사 Abnormal condition detection circuit, integrated circuit card having the circuit, and method for operating cpu
WO2007042533A1 (en) * 2005-10-14 2007-04-19 Gemplus Smart card customizing
FR2924262B1 (en) * 2007-11-26 2009-12-11 Sagem Securite METHOD OF MASKING A PASSAGE AT THE END OF LIFE OF AN ELECTRONIC DEVICE AND DEVICE COMPRISING A CORRESPONDING CONTROL MODULE
JP2009211870A (en) * 2008-03-03 2009-09-17 Ushio Inc Light source for ultraviolet ray irradiation
US8055936B2 (en) * 2008-12-31 2011-11-08 Pitney Bowes Inc. System and method for data recovery in a disabled integrated circuit
US8060453B2 (en) * 2008-12-31 2011-11-15 Pitney Bowes Inc. System and method for funds recovery from an integrated postal security device
US9230259B1 (en) 2009-03-20 2016-01-05 Jpmorgan Chase Bank, N.A. Systems and methods for mobile ordering and payment
FR2959586B1 (en) * 2010-04-30 2012-06-22 Proton World Int Nv METHOD OF WRITING AND READING IN AN ATOMICITY MEMORY
EP2386958A1 (en) 2010-05-13 2011-11-16 Assa Abloy AB Method for incremental anti-tear garbage collection
EP2495690B1 (en) * 2011-03-01 2015-05-13 Nxp B.V. Transponder and method for monitoring access to application data in the transponder
US9135970B2 (en) 2013-02-08 2015-09-15 Everspin Technologies, Inc. Tamper detection and response in a memory device
US9218509B2 (en) 2013-02-08 2015-12-22 Everspin Technologies, Inc. Response to tamper detection in a memory device
US10146644B2 (en) 2016-06-16 2018-12-04 Oracle International Corporation Integrity of transactional memory of card computing devices in case of card tear events
US11099949B2 (en) * 2018-08-03 2021-08-24 Cirrus Logic, Inc. Method apparatus for resuming and recovery checking from interrupted programming of one-time programmable memory device
JP6871411B2 (en) 2019-03-29 2021-05-12 アドバンスド ニュー テクノロジーズ カンパニー リミテッド Secure execution of cryptographic operations
CN114115755B (en) * 2022-01-28 2022-04-01 北京紫光青藤微系统有限公司 Method and device for data writing and storage medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0026980A1 (en) * 1979-09-04 1981-04-15 Fanuc Ltd. Method of rewriting data in a magnetic bubble memory having a major-minor loop organisation
WO1989010618A1 (en) * 1988-04-29 1989-11-02 Scientific Atlanta, Inc. Dynamic double buffer
EP0398545A1 (en) * 1989-05-19 1990-11-22 Delco Electronics Corporation Method and apparatus for storing data in a non-volatile memory
WO1992004716A1 (en) * 1990-08-31 1992-03-19 Gemplus Card International Method and device for updating information in a memory and use thereof in memory cards

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63226752A (en) * 1987-03-16 1988-09-21 Omron Tateisi Electronics Co Data writing system for id system
US5200600A (en) * 1988-08-29 1993-04-06 Hitachi Maxell, Ltd. IC card and method for writing information therein
US5195100A (en) * 1990-03-02 1993-03-16 Micro Technology, Inc. Non-volatile memory storage of write operation identifier in data sotrage device
JP2941361B2 (en) * 1990-06-07 1999-08-25 株式会社東芝 Portable electronic devices
JPH04137081A (en) * 1990-09-28 1992-05-12 Fuji Photo Film Co Ltd Ic memory card with eeprom
EP0489204B1 (en) * 1990-12-04 1995-08-16 Hewlett-Packard Limited Reprogrammable data storage device
JPH05233464A (en) * 1992-02-25 1993-09-10 Fuji Photo Film Co Ltd Method for rewriting data in eeprom and eeprom card

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0026980A1 (en) * 1979-09-04 1981-04-15 Fanuc Ltd. Method of rewriting data in a magnetic bubble memory having a major-minor loop organisation
WO1989010618A1 (en) * 1988-04-29 1989-11-02 Scientific Atlanta, Inc. Dynamic double buffer
EP0398545A1 (en) * 1989-05-19 1990-11-22 Delco Electronics Corporation Method and apparatus for storing data in a non-volatile memory
WO1992004716A1 (en) * 1990-08-31 1992-03-19 Gemplus Card International Method and device for updating information in a memory and use thereof in memory cards

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ROHR, JOHN A: "STAREX self-repair routines: software recovery in the JPL-STAR computer", IEEE DIGEST INT. SYMPOSIUM ON FAULT TOLERANT COMPUTING, 20 June 1973 (1973-06-20), NEW YORK, US, pages 11 - 16 *

Cited By (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0674290A3 (en) * 1994-02-25 2000-10-04 Fujitsu Limited Card type storage medium and card type storage medium issuing apparatus
EP0674290A2 (en) * 1994-02-25 1995-09-27 Fujitsu Limited Card type storage medium and card type storage medium issuing apparatus
AU691406B2 (en) * 1995-02-16 1998-05-14 Gemplus Method for the secure updating of an eeprom memory
WO1996025743A1 (en) * 1995-02-16 1996-08-22 Gemplus Method for the secure updating of an eeprom memory
FR2730833A1 (en) * 1995-02-16 1996-08-23 Gemplus Card Int SECURE UPDATE OF EEPROM MEMORY
WO1996034336A1 (en) * 1995-04-25 1996-10-31 Honeywell, Inc. Methods and apparatus for protecting the integrity of process data stored on a removable storage medium
WO1996036947A1 (en) * 1995-05-15 1996-11-21 Mondex International Limited Transaction recovery in a value transfer system
US5982293A (en) * 1995-05-15 1999-11-09 Mondex International Limited Transaction recovery in a value transfer system
GB2314663A (en) * 1995-05-15 1998-01-07 Mondex Int Ltd Transaction recovery in a value transfer system
GB2314663B (en) * 1995-05-15 1998-10-07 Mondex Int Ltd Transaction recovery in a value transfer system
EP0745934A2 (en) * 1995-05-31 1996-12-04 AT&T Corp. File system for a data storage device having a power fail recovery mechanism for write/replace operations
EP0745934A3 (en) * 1995-05-31 1999-02-24 AT&T Corp. File system for a data storage device having a power fail recovery mechanism for write/replace operations
US5765211A (en) * 1995-10-18 1998-06-09 Schlumberger Industries Segmenting non-volatile memory into logical pages sized to fit groups of commonly erasable data
FR2740237A1 (en) * 1995-10-18 1997-04-25 Schlumberger Ind Sa ELECTRONIC COMPONENT WITH SYNCHRONIZED MEMORY
EP0769742A1 (en) * 1995-10-18 1997-04-23 Schlumberger Industries Electronic component with electrically erasable non-volatile memory
WO1998013793A1 (en) * 1996-09-24 1998-04-02 Koninklijke Kpn N.V. Method of making recoverable smart card transactions
EP0831433A1 (en) * 1996-09-24 1998-03-25 Koninklijke KPN N.V. Method of making recoverable smart card transactions, a method of recovering such a transaction, as well as a smart card allowing recoverable transactions
US6070795A (en) * 1996-09-24 2000-06-06 Koninklijke Kpn N.V. Method of making recoverable smart card transactions, a method of recovering such a transaction, as well as a smart card allowing recoverable transactions
AU719987B2 (en) * 1996-09-24 2000-05-18 Koninklijke Kpn N.V. Method of making recoverable smart card transactions
FR2757978A1 (en) * 1996-12-27 1998-07-03 Schlumberger Ind Sa METHOD FOR SECURING DATA IN A REWRITE MEMORY
WO1998029844A1 (en) * 1996-12-27 1998-07-09 Schlumberger Systemes Method for ensuring the security of an information in a rewritable memory
EP0886240A3 (en) * 1997-06-17 2004-01-07 Fujitsu Limited A card-type storage medium
FR2775375A1 (en) * 1998-02-23 1999-08-27 Solaic Sa Loading processing programs by blocks into memory of portable devices and avoiding loss of time when contact with an emitter is lost. Particularly applicable to contactless devices
WO1999042960A1 (en) * 1998-02-23 1999-08-26 Schlumberger Systemes Loading block computer programmes
US7017824B1 (en) 1998-02-23 2006-03-28 Axalto Sa Loading computer programs in blocks
WO1999064996A1 (en) 1998-06-05 1999-12-16 Landis & Gyr Communications S.A.R.L. Preloaded ic-card and method for authenticating the same
EP1011080A1 (en) * 1998-12-19 2000-06-21 Orga Kartensysteme GmbH Method for bidirectional datatransfer between a terminal and an ic-card and ic-card therefor
FR2833093A1 (en) * 2001-12-03 2003-06-06 Schlumberger Systems & Service Method for passing data between memory of portable tool and reader terminal, comprises creation of single file containing all data blocks their modification in terminal in one operation and return
WO2003065319A1 (en) * 2002-02-01 2003-08-07 Axalto Sa Update management for encoded data in memory
FR2835628A1 (en) * 2002-02-01 2003-08-08 Schlumberger Systems & Service MANAGEMENT OF THE UPDATE OF INFORMATION ENCODED IN MEMORY
WO2003081544A2 (en) * 2002-03-18 2003-10-02 Sun Microsystems, Inc. Enhanced memory management for portable devices
WO2003081544A3 (en) * 2002-03-18 2004-05-06 Sun Microsystems Inc Enhanced memory management for portable devices
US6912633B2 (en) 2002-03-18 2005-06-28 Sun Microsystems, Inc. Enhanced memory management for portable devices
US6996802B2 (en) 2002-03-18 2006-02-07 Sun Microsystems, Inc. Method and apparatus for deployment of high integrity software using initialization order and calling order constraints
US7010783B2 (en) 2002-03-18 2006-03-07 Sun Microsystems, Inc. Method and apparatus for deployment of high integrity software using reduced dynamic memory allocation
US7181737B2 (en) 2002-03-18 2007-02-20 Sun Microsystems, Inc. Method and apparatus for deployment of high integrity software using static procedure return addresses
US10095440B2 (en) 2015-04-08 2018-10-09 Huawei Technologies Co., Ltd. Redo-logging for partitioned in-memory datasets

Also Published As

Publication number Publication date
CR5712A (en) 1998-08-31
AU6507794A (en) 1994-11-08
JPH07508120A (en) 1995-09-07
RU2146399C1 (en) 2000-03-10
CA2137683A1 (en) 1994-10-27
ATE219857T1 (en) 2002-07-15
CN1110488A (en) 1995-10-18
BR9404989A (en) 1999-06-15
ZA942553B (en) 1995-06-05
PL306763A1 (en) 1995-04-18
EP0645046B1 (en) 2002-06-26
DE69430859D1 (en) 2002-08-01
EP0645046A1 (en) 1995-03-29
GB9307623D0 (en) 1993-06-02
MD960344A (en) 1997-06-30
AU676731B2 (en) 1997-03-20
KR100343377B1 (en) 2002-12-18
KR950702061A (en) 1995-05-17
CN1049516C (en) 2000-02-16
JP3918195B2 (en) 2007-05-23
US5715431A (en) 1998-02-03
PL173398B1 (en) 1998-02-27
CA2137683C (en) 1999-02-23

Similar Documents

Publication Publication Date Title
US5715431A (en) Tamper proof security measure in data writing to non-volatile memory
US6535997B1 (en) Data integrity in smartcard transactions
CN100380529C (en) Nonvolatile memory
US6336174B1 (en) Hardware assisted memory backup system and method
JP2846739B2 (en) Method for safely updating EEPROM memory
EP0990989A2 (en) Microcomputer provided with flash memory and method of storing program into flash memory
RU2269814C2 (en) Method for reliable recording of pointer for circular memory
EP0762282A1 (en) Atomic update of EDC protected data
US5532463A (en) Process for making secure the writing of sensitive data into the EEPROM data storage memory of a memory card and a memory card for use in the process
JP3667920B2 (en) IC card
US7849279B2 (en) Method for the secure updating data areas in non volatile memory, device to perform such a method
JPH03147086A (en) Ic card
JP2000357216A (en) Ic card
JP2910745B2 (en) Storage device and data processing method
US20070274302A1 (en) Data Storage Device, Memory Managing Method, and Program
JPH0784894A (en) Method for writing nonvolatile memory
JP4596602B2 (en) Nonvolatile memory data management method
EP1301929B1 (en) Secure writing of data
NO317927B1 (en) Procedure for entering data into non-volatile storage
JP3555847B2 (en) Cache memory failure processing apparatus, cache memory failure processing method, and multiprocessor system
JPH0690683B2 (en) Fault handling method for multiprocessor system
JPH0341538A (en) Main storage device
TW388029B (en) Method of utilisation of an integrated circuit device and integrated circuit card device
JPH0820933B2 (en) Data writing method and device
JPS62298856A (en) Storing method for set data

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AT AU BB BG BR BY CA CH CN CZ DE DK ES FI GB HU JP KP KR KZ LK LU LV MG MN MW NL NO NZ PL PT RO RU SD SE SK UA US UZ VN

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN ML MR NE SN TD TG

WWE Wipo information: entry into national phase

Ref document number: 2137683

Country of ref document: CA

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWP Wipo information: published in national office

Ref document number: 1994912602

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 1994912602

Country of ref document: EP

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

EX32 Extension under rule 32 effected after completion of technical preparation for international publication

Free format text: AM,KG,MD,TJ,TM

WWE Wipo information: entry into national phase

Ref document number: 96-0344

Country of ref document: MD

WWG Wipo information: grant in national office

Ref document number: 1994912602

Country of ref document: EP