WO2002099809A2 - Method and device for masking out non-serviceable memory cells - Google Patents

Method and device for masking out non-serviceable memory cells Download PDF

Info

Publication number
WO2002099809A2
WO2002099809A2 PCT/EP2002/006145 EP0206145W WO02099809A2 WO 2002099809 A2 WO2002099809 A2 WO 2002099809A2 EP 0206145 W EP0206145 W EP 0206145W WO 02099809 A2 WO02099809 A2 WO 02099809A2
Authority
WO
WIPO (PCT)
Prior art keywords
physical
logical address
page
physical address
logical
Prior art date
Application number
PCT/EP2002/006145
Other languages
German (de)
French (fr)
Other versions
WO2002099809A3 (en
Inventor
Gerd Dirscherl
Heimo Hartlieb
Christian May
Holger Sedlak
Original Assignee
Infineon Technologies Ag
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 Infineon Technologies Ag filed Critical Infineon Technologies Ag
Publication of WO2002099809A2 publication Critical patent/WO2002099809A2/en
Publication of WO2002099809A3 publication Critical patent/WO2002099809A3/en

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/20Address safety or protection circuits, i.e. arrangements for preventing unauthorized or accidental access

Definitions

  • the present invention relates to a method and an apparatus for controlling a mapping of a logical address of a logical address space to a physical address of a physical address space in order to store non-functional memory cells of, for example, an EEPROM
  • the present invention relates to the masking of non-functional memory cells of a non-volatile memory of security modules, such as e.g. Chip cards, multi-application chip cards, smart cards etc.
  • Chip cards are used today in almost all areas of everyday life, e.g. as a telephone card, as a smart card for pay-TV applications or cell phones, as electronic ID cards, credit cards etc. Particularly high demands are placed on the capabilities of a chip card, particularly when using chip cards in the area of cashless payment transactions and identification.
  • smart cards today have to have a high level of security, computing power and miniaturization. These requirements for chip cards in chip card production are exacerbated by the fact that they have to be mass-produced inexpensively and have to be small and that the power consumption in mobile applications is limited.
  • the chip card e.g. a secret key and in the case of a credit card the credit card number, the account number and the credit and in the case of a pay TV
  • chip cards In order to prevent a smart card from entering a smart card ID, a customer ID and other customer specific information
  • chip cards have to be implemented with complex cryptography algorithms in order to be able to carry out digital signatures, authentication and encryption and decryption tasks.
  • Known cryptography algorithms include asymmetrical encryption algorithms, such as the RSA algorithm, symmetrical encryption methods, such as the DES method, and methods based on elliptic curves. All these methods have in common that the security of the cryptography algorithms increases with the length of the underlying crypto operands, so that considerable computing power is required to achieve high security.
  • the operands When using the RSA algorithm, the operands usually have a length of 1024 or 2048 bits, for example.
  • chip cards Due to the increasing development in semiconductor technology with regard to the degree of integration and the power consumption, chip cards have recently been made possible which can be used for several applications.
  • the object of the present invention is a
  • the present invention is based on the finding that by accessing a physical memory using logical addresses which are mapped to the physical addresses of the physical memory, i. by means of virtual memory addressing, non-functional memory cells can be hidden in a simple and effective way.
  • the problem of replacing defective physical memory areas does not arise for workstations in which virtual memory addressing is used, since only RAM that has very low failure rates can be considered as the underlying physical memory.
  • the suppression of non-functional memory cells of a physical memory is achieved in that, after a check of a memory cell has shown that it is not functional, the mapping from the logical address space into the physical address space is changed such that the logical address is changed to which the physical address to which the memory cell belongs, which has been mapped so far by the mapping, is mapped to another physical address in the physical address space.
  • the physical memory is preferably a non-volatile memory, e.g. an EEPROM or a flash memory, as used in security modules, e.g. Smart cards or
  • mapping of the logical addresses to the physical addresses can be stored, for example, in the form of a translation look-up table in which pairs of a logical address and a physical address are entered.
  • all the logical addresses are entered in the look-up table together with a physical address which have been mapped to another physical address on the basis of a determined non-functional memory cell. "
  • all logical addresses are the are not in the translation look-up table, mapped to an identical physical address to the logical address by an identity map.
  • the translation look-up table is first checked to determine whether there is an entry for the logical address or not, and if this is the case, the memory cells of the physical memory are accessed during the process, which are assigned to the physical address in the translation look-up table entry and, if there is no entry with the logical address in the translation look-up table, the logical address is used as the physical address and the physical memory is accessed on the basis of this identical physical address.
  • the principle of identity mapping does not exist, and a translation look-up table is always looked up to convert a logical address into a physical address. If a logical address is not in the table, an operating system routine is called up by the hardware, which performs an exception handling and enters a physical one for the corresponding logical address in the table. Logical addresses which are assigned to "defective" physical addresses, ie physical addresses which are assigned to defective memory cells, are assigned new physical addresses which are related to a non-defective memory.
  • an address entry in the table corresponds to the beginning of a section of memory with a certain length in the logical and physical address space.
  • Each logical address within such a section of memory a physical address is therefore assigned in such a way that the distances to the respective beginning of the memory section are identical, which results in a page-by-page and not a word-by-page mapping for the mapping from the logical address space to the physical address space results in which page or memory sections (page frames) of the physical address space of a predetermined size are mapped onto pages of the logical address space.
  • the page section size is preferably between 32 and 128 bytes, such as 64 bytes, for the best possible balance between the amount of memory required to manage the translation look-up table and the size of the "wasted" memory in the case of a defective memory cell being hidden.
  • This area results in an optimal adaptation the page size to the operating times or lifetimes of the memory cells of a non-volatile memory and, in particular, to the available storage space, as is customary, for example, with chip cards.
  • the check of the memory cells of the physical memory can, for example, either be carried out immediately before an access, such as a read, write or execution process, with regard to a physical address, or the check can be carried out for all logical addresses Addresses when the system using the physical memory is initialized.
  • the physical memory is arranged on a chip card which is intended for a number of applications.
  • Each application is assigned its own predetermined section of the logical address space, which does not change even if a memory cell of a physical address to which a logical address of the address space is mapped does not become functional.
  • the sequence of the individual memory lines of a memory section of an application is not disturbed by the fact that one physical address is hidden or replaced by another.
  • the invention consequently enables the construction of a logical address space from exclusively functioning physical memory at runtime and the replacement of a defective memory occurring during the runtime with correctly working memory without changing the logical address space.
  • Figure 1 is a schematic sketch illustrating the mapping of a logical address space into a physical address space.
  • FIG. 2 is a flowchart illustrating a check of the memory cells of a non-volatile memory for an initialization
  • FIG. 3 is a flowchart illustrating access to a non-volatile memory upon a read, write, or export operation according to a first embodiment
  • FIG. 4 is a flowchart illustrating access to non-volatile memory upon a read, write, or export operation according to a second embodiment
  • FIG. 5 shows a flowchart which illustrates a check of the memory cells of a non-volatile memory for initialization in accordance with a specific exemplary embodiment
  • Fig. 6 is a block diagram illustrating the arrangement of a translation device in a chip card according to an embodiment of the present invention.
  • mapping of a logical address space into a physical address space for virtual addressing is used according to the present invention, in order to detect defects or "to hide" non-functional memory cells.
  • the logical address space 10 is divided into a plurality of non-overlapping, equally large pages which are represented as rectangles and arranged in columns.
  • the physical address space 20 similarly consists of a plurality of non-overlapping, equally large side sections, which are represented as rectangles and are arranged in columns.
  • Arrows 30 are intended to illustrate which pages of the logical address space are mapped to which side section of the physical address space 20. Each arrow is based on a different side of the logical address space and generally points to a different side section of the physical address space 20.
  • the logical address and the associated physical address have no relation to one another apart from FIG. 30.
  • the logical address space 10 can be substantially larger than the physical address space 20, in the case of FIG. 1 the size of the logical address space 10 being for example in the gigabyte range and that of the physical address space 20 in the megabyte range. Pages with no readable or writable data or executable code, such as the page 40 are usually not mapped to the physical address space 20. Conversely, physical page sections can also remain unused, e.g. the side section 45.
  • the mapping of the logical address space 10 into the physical address space 20 represented by the arrows 30 is completely transparent for the applications executable on the chip card, so that an application code can be created on the basis of a corresponding specification of the logical address space.
  • the logical address space 10 is divided into individual parts, which in turn are assigned to the different applications. A part of an application that is connected in the logical address space 10 can consequently be stored in the physical address space 20 in any order based on the illustration 30.
  • the individual pages of the logical address space 10 can be mapped as desired to other page sections of the physical address space 20 if, for example, a memory cell of a page section loses its functionality.
  • the logical address space 10 and the physical address space 20 are subdivided into pages or page sections by subdividing the two address spaces 10 and 20 into equally large, overlap-free memory areas, the one page section in the physical
  • Address space 20 covered memory area is exactly as large as that of a page in the logical address space 10.
  • a logical address within a page is assigned to a physical address in the associated page section with an equal distance or offset from the respective start address, so that each logical address and each assigned physical address consists of the same offset value and a page or section start address.
  • a page section in the physical address space 20 can also be assigned additional memory bits, as indicated by the larger width of the rectangles of the physical page sections, which are not accessible to the applications via the normal addressing method and also not to expand the physical address space 20 for Keep application data.
  • additional memory bits include, for example, error correction code (ECC) bits which enable the detection of an incorrect function of the physical data memory of the page section or even a reconstruction of the memory content thereof, valid flags which indicate the validity of those in the corresponding page specify data, and / or access rights to the corresponding side of the logical address space.
  • ECC error correction code
  • the pages and the page sections are assigned using a page table or translation table which has address pairs or tuples of respective start addresses of a logical page and an assigned physical page section.
  • an entry in the page table contains, for example, the start address of the first page 50 of the logical address space 10 and the start address of the sixth page section 60 of the physical address space 20, as represented by the arrow 70 and the number “6” in the rectangle 50.
  • Logical pages that are not assigned are not contained in the page table.
  • the size of a page is between 32 and 128 bytes.
  • other address space division sizes are also possible, e.g. a word size of 1 byte
  • the size of between 32 and 128 bytes has been found to be particularly advantageous in that it represents a favorable compromise between on the one hand the least possible effort for storing and managing the page table and on the other hand the least possible memory cell loss if a section of the physical address space 20 is hidden due to only a defective memory cell by changing the figure 30.
  • the size of the pages or page sections depends on the operating times of the memory cells.
  • redundant information is added to the page sections of the physical address space 20, for example, from which the memory content of the defective memory cell is reconstructed and the entire memory content of the old memory content, ie 60, can be copied into the new page section 90.
  • the application maintains the linear order within the address space in which it operates - a positive side effect on the side of the physical storage of the data consists in the fact that the data arranged linearly within the logical address space are scrambled or chopped up by the mapping or the change of the mapping, so that an additional advantage, particularly for chip cards, is that a potential attacker who owns a Chip card et, in the event of an attack on the chip card, the scrambling of the stored data, such as of an application's algorithm code.
  • FIG. 2 the change in the page-by-page illustration explained with reference to FIG. 1 is described below when defective memory cells are detected or the hiding of such memory cells is explained according to an exemplary embodiment of the present invention.
  • 1 relates to an exemplary embodiment in which, after initialization, all the logical addresses are first checked to determine whether the memory cells of the physical addresses to which the logical addresses are mapped are functioning or not. In another exemplary embodiment, however, the checking of the memory cells can also be postponed to a later point in time at which a reading, writing, executing or other process takes place with respect to a specific logical address and thus an assigned physical address.
  • the physical address or the start address of the physical page section and the associated memory cells are determined in a step 210, which are assigned via the mapping of the logical address or the start address of the logical page.
  • the memory cell is checked for its functionality. If the check in step 220 shows 230 that the memory cells are functional, the mapping is left unchanged. However, if the check 220 determines 230 that one of the memory cells is not functional, the mapping of the logical address space to the physical address space is changed in a step 240 such that the logical address is mapped to a different physical address, as previously referred to Fig. 1 has been described.
  • step 260 it is checked in a step 260 whether there are further logical addresses which have not yet been checked. If this is the case, the skip sequence jumps back to step 210, steps 210-240 being carried out with respect to a next logical address. If no further logical addresses are found during the check 260, the stripping end ends. run and, for example, the execution of an application begins.
  • step 240 changes or replaces a corresponding entry of the logical address in a page table or, in the event that an entry with the logical address is not yet in the page table , which may include entering a corresponding entry with the logical address and the other physical address.
  • a flow will be described as it takes place according to an embodiment of the present invention to perform the access to the physical memory, which is carried out by a corresponding process or a corresponding transaction, e.g. a read, write or execute transaction triggered by an application.
  • a page translation look-up table which defines the mapping between the logical and the physical address space
  • the basic state of the mapping rule between the logical and the physical addresses consists of an identity mapping which maps logical addresses to identical physical addresses. Only in the case of a defective memory cell is that logical address which is mapped to the physical address associated with the defective memory cell "redirected" to another physical address, as a result of which the defective memory cell is hidden in a manner which is transparent to the application.
  • a step 310 is looked up in a translation look-up table or a page table in order to check whether there is an entry for the logical address therein.
  • step 310 determines 320 that there is an entry with the logical address, this entry is read in step 330 to obtain the physical address. However, if step 310 results 320 that there is no corresponding entry with the logical address, the logical address is mapped to the physical address so that the physical address is identical to the logical address.
  • a step 350 the specific physical address, i.e. the physical address identical to the logical address or the physical address of the entry is accessed and the reading, writing or exporting process is carried out.
  • steps 310 to 340 take place virtually imperceptibly for the application and that the application can access the logical address space assigned to the application as usual even after the event of a defective memory cell.
  • a process is described with reference to FIG. 4, as takes place according to a further exemplary embodiment of the present invention, in order to access the physical
  • Look-up table saved but also " other.
  • the executing hardware expects this execution example, always an entry in the lookup table. If it does not find an entry for a special logical address, an exception routine is carried out by the operating system, which then adds the searched logical address together with the associated physical address to the look-up table.
  • step 310 thus results 320 that an entry with the logical address is present, this entry is read in a step 330 as in the previous exemplary embodiment in order to obtain the physical address. If, however, step 310 results in 320 that there is no corresponding entry with the logical address, the hardware starts an exception routine of the operating system in a step 340 ′, unlike in the previous exemplary embodiment, or a trap to the operating system takes place. As part of the exception routine, the operating system determines the missing physical address that corresponds to the requested logical address and also enters it in the lookup table.
  • step 350 After one of the two steps 330 or 340 'has been carried out, the determined physical one is carried out in a step 350
  • Address i.e. the physical address identical to the logical address or the physical address of the entry is accessed and the reading, writing or exporting process is carried out.
  • a possible sequence for hiding defective memory cells according to a specific Example embodiment described how it can be done by software when initializing a chip with a non-volatile memory.
  • the first page is searched for in the NVM.
  • the physical side is then checked for a defect. If it is determined 364 that at least one of the memory cells of the physical page is defective, the associated physical address of the defective physical page section is stored in a list in the RAM in a step 366. After step 364 or 366, the next NVM page is selected in step 368. If it is determined 370 here that such a next, not yet checked memory cell exists, control loops back to step 362. Otherwise, in a step 372 in the case of the embodiment of FIG.
  • the "defect" addresses stored in the RAM are stored as logical addresses from the list in the RAM in the NVM, with the still valid physical page section addresses being added so that in a complete look-up table with logical defect addresses and associated valid physical addresses of intact memory sections is created for the NVM
  • initialization is complete.
  • FIG. 6 a block diagram of a circuit of a chip card according to an embodiment of the present invention will now be described, in which the mapping of a logical address space into the physical address space for access to both a read-only and a. eg a ROM, a working memory, such as a RAM, as well as a non-volatile memory, such as an EEPROM or TJ
  • the storage of the entries in the translation look-up table 470 defining the mapping of the logical address space into the physical address space merely represents an exemplary embodiment and can also be carried out differently.
  • a trap or failure process is carried out, which the controller passes on to the operating system in order to add the desired address tuple in the TLB, or on an additional hardware (not shown) designed by the chip card manufacturer to calculate the physical one based on a logical address, or a loading process in which a memory stored in a non-volatile memory secured translation look-up table, the required data is automatically reloaded into the TLB.
  • the translation lookup table 470 can either be in non-volatile memory, e.g. EEPROM or a flash memory, or is in volatile memory, e.g. a RAM, is saved and is changed and rebuilt upon each initialization upon detection of the defective memory cells.
  • non-volatile memory e.g. EEPROM or a flash memory
  • volatile memory e.g. a RAM
  • the translation look-up table 470 which is itself stored in non-volatile memory, from a loss of information due to defective memory cells, in the event of a memory loss in a row of the translation look-up table, the corresponding entry in the row can be reconstructed, the entry copied into a row other line of the translation look-up table and marking the defective line as inoperable.
  • the reason for the simple handling in the case of defective memory cells in the translation look-up table is that the order of the entries does not matter in the translation look-up table.
  • part of the logical address space e.g. the one who got the RAM
  • 410 is assigned, can be used for direct, physical addressing bypassing the translation device.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

The invention relates to a method for controlling the mapping of a logical address of a logical address space to a physical address of a physical address space (20). Said method involves the following steps: a first physical address and a corresponding memory cell, which are associated by the mapping (30) of a logical address, are determined; the memory cell is checked for serviceability; and the mapping (30) is modified if the check reveals that the memory cell is not serviceable, in such a way that the logical address is mapped to a second physical address in the physical address space (20). In this way, access to a physical memory is carried out by means of logical addresses which are mapped to the physical addresses of the physical memory, i.e. virtual memory addressing is used in order to mask out non-serviceable memory cells in a simple and effective manner.

Description

Beschreibungdescription
Verfahren und Vorrichtung zum Ausblenden von nicht funktionstüchtigen SpeicherzellenMethod and device for hiding non-functional memory cells
Die vorliegenden Erfindung bezieht sich auf ein Verfahren und eine Vorrichtung zum Steuern einer Abbildung einer logischen Adresse eines logischen Adreßraumes auf eine physikalische Adresse eines physikalischen Adreßraumes, um nicht funktions- tüchtige Speicherzellen von beispielsweise einem EEPROM-The present invention relates to a method and an apparatus for controlling a mapping of a logical address of a logical address space to a physical address of a physical address space in order to store non-functional memory cells of, for example, an EEPROM
Speicher auszublenden. Insbesondere bezieht sich die vorliegenden Erfindung auf die Ausblendung von nicht funktionstüchtigen Speicherzellen eines nicht flüchtigen Speichers von Sicherheitsmodulen, wie z.B. Chipkarten, Multiapplikationschip- karten, Smartcards usw.Hide memory. In particular, the present invention relates to the masking of non-functional memory cells of a non-volatile memory of security modules, such as e.g. Chip cards, multi-application chip cards, smart cards etc.
Chipkarten finden heutzutage in fast allen Bereichen des Alltags Anwendung, wie z.B. als Telephonkarte, als Smartcard bei Pay-TV-Anwendungen oder Handys, als elektronische Ausweise, Kreditkarten usw. Hierbei werden besonders bei der Anwendung der Chipkarten in dem Bereich des bargeldlosen Zahlungsverkehrs und der Identifikation besonders hohe Anforderungen an die Fähigkeiten einer Chipkarte gestellt. So müssen Chipkarten heutzutage ein hohes Maß an Sicherheit, Rechenleistung und Miniaturisierung aufweisen. Verschärft werden diese Anforderungen an die Chipkarten bei der Chipkartenherstellung dadurch, daß dieselben als Massenprodukt kostengünstig herstellbar und dieselben klein sein müssen, und daß bei mobilen Anwendungen der Leistungsverbrauch begrenzt ist.Chip cards are used today in almost all areas of everyday life, e.g. as a telephone card, as a smart card for pay-TV applications or cell phones, as electronic ID cards, credit cards etc. Particularly high demands are placed on the capabilities of a chip card, particularly when using chip cards in the area of cashless payment transactions and identification. For example, smart cards today have to have a high level of security, computing power and miniaturization. These requirements for chip cards in chip card production are exacerbated by the fact that they have to be mass-produced inexpensively and have to be small and that the power consumption in mobile applications is limited.
Um eine hohe Sicherheit zu gewährleisten, so daß beispielsweise ein unbefugter Zugriff auf die auf der Chipkarte gespeicherten Informationen, wie z.B. einen geheimen Schlüssel und in dem Fall einer Kreditkarte die Kreditkartennummer, die Kontonummer und das Guthaben und in dem Fall einer Pay-TV-To ensure high security, so that, for example, unauthorized access to the information stored on the chip card, e.g. a secret key and in the case of a credit card the credit card number, the account number and the credit and in the case of a pay TV
Smartcard eine Smartcard-ID, eine Kunden-ID und sonstige kundenspezifische Informationen, zu verhindern, müssen in den Chipkarten heutzutage aufwendige Kryptographiealgorithmen implementiert sein, um digitale Signaturen, Authentifikationen und Ver- und Entschlüsselungsaufgaben durchführen zu können. Bekannte Kryptographiealgorithmen umfassen asymmetrische Ver- schlüsselungsalgorithmen, wie z.B. den RSA-Algorithmus, symmetrische Verschlüsselungsverfahren, wie z.B. das DES- Verfahren, und auf elliptischen Kurven basierende Verfahren. All diesen Verfahren ist gemeinsam, daß die Sicherheit der Kryptographiealgorithmen mit der Länge der zugrundeliegenden Kryptooperanden zunimmt, so daß zum Erzielen einer hohen Sicherheit eine beträchtliche Rechenleistung erforderlich ist. Bei Verwendung des RSA-Algorithmus weisen die Operanden beispielsweise meist eine Länge von 1024 oder 2048 Bits auf.In order to prevent a smart card from entering a smart card ID, a customer ID and other customer specific information Nowadays, chip cards have to be implemented with complex cryptography algorithms in order to be able to carry out digital signatures, authentication and encryption and decryption tasks. Known cryptography algorithms include asymmetrical encryption algorithms, such as the RSA algorithm, symmetrical encryption methods, such as the DES method, and methods based on elliptic curves. All these methods have in common that the security of the cryptography algorithms increases with the length of the underlying crypto operands, so that considerable computing power is required to achieve high security. When using the RSA algorithm, the operands usually have a length of 1024 or 2048 bits, for example.
Einer problemlosen Realisierung von sicheren Chipkarten stehen vor allem die hohen Anforderungen an die Miniaturisierung und der niedrige maximale Leistungsbedarf bei mobilen Anwendungen entgegen. Während durch die geringe Chipfläche der zur Verfügung stehende Speicherplatz auf der Chipkarte begrenzt wird, wird durch die Leistungsaufnahmebeschränkung die Rechenleistung und die Taktrate beschränkt. Heutige Chipkarten verwenden deshalb Mikroprozessoren für Chipkartenanwendungen, die neben einer CPU schnelle und leistungsoptimierte Krypto- coprozessoren verwenden, die eigens zur Durchführung speziel- 1er Rechenoperationen für die Kryptographiealgorithmen vorgesehen sind, wie z.B. zur Durchführen einer modularen oder a- rithmetischen Rechenoperation, einer Hash-Wertbildung oder dergleichen.A problem-free implementation of secure chip cards is opposed above all by the high demands on miniaturization and the low maximum power requirement in mobile applications. While the small chip area limits the available memory space on the chip card, the power consumption limitation limits the computing power and the clock rate. Today's chip cards therefore use microprocessors for chip card applications that, in addition to a CPU, use fast and performance-optimized crypto coprocessors that are specifically designed to perform specific computing operations for the cryptography algorithms, such as for performing a modular or arithmetic arithmetic operation, hashing or the like.
Durch die zunehmende Entwicklung in der Halbleitertechnologie in Hinblick auf den Integrationsgrad und den Leistungsverbrauch sind in neuerer Zeit Chipkarten ermöglicht worden, die für mehrere Applikationen bzw. Anwendungen verwendbar sind. Diese Chipkarten umfassen neben dem Mikroprozessor einen ROM zum Speichern eines Betriebssystems, einen RAM als Arbeitsspeicher und einen NVM (NVM = non-volatile memory = nicht- flüchtiger Speicher) zum Speichern der verschiedenen Program- me für die verschiedenen auf der Chipkarte lauffähigen Applikationen.Due to the increasing development in semiconductor technology with regard to the degree of integration and the power consumption, chip cards have recently been made possible which can be used for several applications. In addition to the microprocessor, these chip cards include a ROM for storing an operating system, a RAM as working memory and an NVM (NVM = non-volatile memory) for storing the various programs. me for the various applications that can run on the chip card.
Ein Problem, das sich bei den neueren Chipkarten ergibt, be- steht darin, daß die Speicherzellen der nicht flüchtigenA problem that arises with the newer chip cards is that the memory cells of the non-volatile ones
Speicher, in denen die Programme der verschiedenen Applikationen sowie die chipkartenspezifischen Informationen gespeichert sind, eine begrenzte Lebensdauer aufweisen und nach einer gewissen Zeitdauer ihre Funktionstüchtigkeit verlieren, wobei die Fehler über Prüfsummen erkannt werden. Der eintretende Informationsverlust muß durch Software vom auf der Chipkarte laufenden Programm durch geeignete Maßnahmen ausgeschlossen werden.Memory in which the programs of the various applications as well as the chip card-specific information are stored, have a limited lifespan and lose their functionality after a certain period of time, the errors being identified via checksums. The loss of information must be prevented by software from the program running on the chip card using suitable measures.
Die Aufgabe der vorliegenden Erfindung besteht darin, eineThe object of the present invention is a
Vorrichtung und ein Verfahren zu schaffen, die einem auf einen Speicher zugreifenden Programm einen fehlerfreien, linearen Adreßraum des Speichers anbietet, selbst wenn physikalische Speicherzellen ausgefallen bzw. defekt sind.To provide an apparatus and a method which offers a program accessing a memory an error-free, linear address space of the memory, even if physical memory cells have failed or are defective.
Diese Aufgabe wird durch ein Verfahren gemäß Anspruch 1 und eine Vorrichtung gemäß Anspruch 12 gelöst.This object is achieved by a method according to claim 1 and an apparatus according to claim 12.
Der vorliegenden Erfindung liegt die Erkenntnis zugrunde, daß dadurch, daß der Zugriff auf einen physikalischen Speicher mittels logischer Adressen durchgeführt wird, die durch eine Abbildung auf die physikalischen Adressen des physikalischen Speichers abgebildet werden, d.h. durch virtuelle Speicheradressierung, nicht funktionstüchtige Speicherzellen auf ein- fache und effektive Weise ausgeblendet werden können. DasThe present invention is based on the finding that by accessing a physical memory using logical addresses which are mapped to the physical addresses of the physical memory, i. by means of virtual memory addressing, non-functional memory cells can be hidden in a simple and effective way. The
Problem des Ersetzens defekter physikalischer Speicherbereiche stellt sich für Workstations, bei denen die virtuelle Speicheradressierung verwendet wird, nicht, da als zugrundeliegender physikalischer Speicher dort nur ein RAM in Betracht kommt, der sehr geringe Ausfallraten hat. Erfindungsgemäß wird die Ausblendung von nicht-funktionsfähigen Speicherzellen eines physikalischen Speichers dadurch erzielt, daß, nachdem eine Überprüfung einer Speicherzelle ergab, daß dieselbe nicht funktionstüchtig ist, die Abbildung von dem logischen Adreßraum in den physikalischen Adreßraum derart geändert wird, daß die logische Adresse, auf die die physikalische Adresse, zu der die Speicherzelle gehört, durch die Abbildung bisher abgebildet ist, auf eine andere physikalische Adresse in dem physikalischen Adreßraum abgebildet ist. Eine Anwendung, die in dem logischen Adreßraum abläuft und über logische Adressen auf den physikalischen Speicher zugreift, „sieht" aufgrund des logischen Adreßraums folglich nur funktionstüchtige Speicherzellen, da die Abbildung derart gesteuert bzw. „umgelenkt" wird, daß keine logische Adresse auf eine physikalische Adresse abgebildet wird, zu der eine nicht funktionstüchtige Speicherzelle gehört. Zusätzlich kann der Programmentwurf der auf der Chipkarte lauffähigen Programme aufgrund der Invarianz des logischen Adreßraumes, d.h. des für den Programmablauf relevanten Adreßraumes, erhalten bleiben und muß nicht wegen der Änderung der Abbildung geändert werden.The problem of replacing defective physical memory areas does not arise for workstations in which virtual memory addressing is used, since only RAM that has very low failure rates can be considered as the underlying physical memory. According to the invention, the suppression of non-functional memory cells of a physical memory is achieved in that, after a check of a memory cell has shown that it is not functional, the mapping from the logical address space into the physical address space is changed such that the logical address is changed to which the physical address to which the memory cell belongs, which has been mapped so far by the mapping, is mapped to another physical address in the physical address space. An application that runs in the logical address space and accesses the physical memory via logical addresses consequently “sees” only functional memory cells because of the logical address space, since the mapping is controlled or “redirected” in such a way that no logical address is assigned to a physical one Address is mapped to which a non-functioning memory cell belongs. In addition, the program design of the programs executable on the chip card can be retained due to the invariance of the logical address space, that is to say the address space relevant for the program flow, and need not be changed because of the change in the mapping.
Der physikalische Speicher ist vorzugsweise ein nicht flüchtiger Speicher, wie z.B. ein EEPROM oder ein Flash-Speicher, wie er bei Sicherheitsmodulen, wie z.B. Chipkarten oderThe physical memory is preferably a non-volatile memory, e.g. an EEPROM or a flash memory, as used in security modules, e.g. Smart cards or
Smartcards, häufig vorhanden ist, wobei bei diesen Speichern die Betriebszeit bzw. die Lebensdauer der Speicherzellen relativ kurz ist. Die Abbildung der logischen Adressen auf die physikalischen Adressen kann beispielsweise in Form einer Übersetzungsnachschlagtabelle gespeichert sein, in der Paare einer logischen Adresse und einer physikalischen Adresse eingetragen sind. Bei einem ersten Ausführungsbeispiel sind in der Nachschlagtabelle alle logischen Adressen zusammen mit einer physikalischen Adresse eingetragen, die aufgrund einer ermittelten nicht funktionstüchtigen Speicherzelle auf eine andere physikalische Adresse abgebildet worden sind. "Bei diesem Ausführungsbeispiel sind alle logischen Adressen, die sich nicht in der Übersetzungsnachschlagtabelle befinden, durch eine Identitätsabbildung auf eine zu der logischen Adresse identischen physikalische Adresse abgebildet. Falls eine Überprüfung einer Speicherzelle ergibt, daß dieselbe nicht funktionstüchtig ist, und aufgrund dessen die Abbildung geändert werden soll, wird die logische Adresse zusammen mit einer anderen, neuen physikalischen Adresse in der Übersetzungsnachschlagtabelle eingetragen bzw. der bestehende Eintrag der logischen Adresse verändert oder ersetzt. Bei einem Zugriff auf den physikalischen Speicher durch einen Lese-,Smart cards, is often available, with these memories the operating time or the life of the memory cells is relatively short. The mapping of the logical addresses to the physical addresses can be stored, for example, in the form of a translation look-up table in which pairs of a logical address and a physical address are entered. In a first exemplary embodiment, all the logical addresses are entered in the look-up table together with a physical address which have been mapped to another physical address on the basis of a determined non-functional memory cell. " In this embodiment, all logical addresses are the are not in the translation look-up table, mapped to an identical physical address to the logical address by an identity map. If a check of a memory cell reveals that it is not functional and the image is to be changed on the basis of this, the logical address is entered together with another, new physical address in the translation look-up table or the existing entry of the logical address is changed or replaced. When the physical memory is accessed by a read,
Schreib- oder Ausführvorgang bezüglich einer logischen Adresse durch beispielsweise eine Applikation wird zunächst die Übersetzungsnachschlagtabelle daraufhin überprüft, ob für die logische Adresse ein Eintrag existiert oder nicht, wobei, falls dies der Fall ist, bei dem Vorgang auf die Speicherzellen des physikalischen Speichers zugegriffen wird, die der physikalischen Adresse in dem Übersetzungsnachschlagtabellen- eintrag zugeordnet sind, und, falls sich kein Eintrag mit der logischen Adresse in der Übersetzungsnachschlagtabelle befin- det, die logische Adresse als physikalische Adresse verwendet und anhand dieser identischen physikalischen Adresse auf den physikalischen Speicher zugegriffen wird.Writing or executing a logical address by an application, for example, the translation look-up table is first checked to determine whether there is an entry for the logical address or not, and if this is the case, the memory cells of the physical memory are accessed during the process, which are assigned to the physical address in the translation look-up table entry and, if there is no entry with the logical address in the translation look-up table, the logical address is used as the physical address and the physical memory is accessed on the basis of this identical physical address.
Bei einem zweiten Ausführungsbeispiel besteht nicht der Grundsatz der Identitätsabbildung und es wird grundsätzlich in einer Übersetzungsnachschlagtabelle nachgesehen, um eine logische Adresse in eine physikalische Adresse umzurechnen. Befindet sich eine logische Adresse nicht in der Tabelle, so wird eine Betriebssystemroutine durch die Hardware aufgeru- fen, die eine Ausnahmebehandlung durchführt und für die entsprechende logische Adresse eine physikalische in die Tabelle einträgt. Logische Adressen, die auf „defekte" physikalische Adressen, d.h. physikalische Adressen, die defekten Speicherzellen zugeordnet sind, werden neuen physikalischen Adressen zugewiesen, die auf einen nicht defekten Speicher bezogen sind. Bei beiden Ausführungsbeispielen wird, um einerseits die Verwaltung und den damit verbundenen Speicherplatz der Übersetzungstabelle so gering wie möglich zu halten, und um andererseits bei dem Ausblenden einer defekten bzw. nicht funktions- tüchtigen Speicherzelle zusammen mit derselben möglichst wenige funktionstüchtige Speicherzellen verwerfen bzw. „verschenken" zu müssen, nicht einen Eintrag für jede einzelne Adresse in der Tabelle sondern für bestimmte Abschnitte des Speichers geliefert. Tatsächlich entspricht ein Adreßeintrag in der Tabelle dem Anfang eines Speicherabschnitts mit einer bestimmten Länge im logischen und physikalischen Adreßraum. Jeder logischen Adresse innerhalb eines solchen Speicherabschnitts wird deshalb eine physikalische Adresse derart zugeordnet, daß die Abstände zum jeweiligen Anfang des Speicher- abschnitts identisch sind, wodurch sich eine seitenweise und nicht eine wortweise Abbildung für die Abbildung von dem logischen Adreßraum in den physikalischen Adreßraum ergibt, bei der Seiten- bzw. Speicherabschnitte (page frames) des physikalischen Adreßraumes einer vorbestimmten Größe auf Seiten (pages) des logischen Adreßraumes abgebildet werden.In a second embodiment, the principle of identity mapping does not exist, and a translation look-up table is always looked up to convert a logical address into a physical address. If a logical address is not in the table, an operating system routine is called up by the hardware, which performs an exception handling and enters a physical one for the corresponding logical address in the table. Logical addresses which are assigned to "defective" physical addresses, ie physical addresses which are assigned to defective memory cells, are assigned new physical addresses which are related to a non-defective memory. In both exemplary embodiments, in order on the one hand to keep the administration and the associated storage space of the translation table as small as possible and on the other hand, when a defective or non-functional memory cell is hidden, as few functional memory cells as possible are discarded or “given away” ", not an entry for each individual address in the table but for certain sections of the memory. In fact, an address entry in the table corresponds to the beginning of a section of memory with a certain length in the logical and physical address space. Each logical address within such a section of memory a physical address is therefore assigned in such a way that the distances to the respective beginning of the memory section are identical, which results in a page-by-page and not a word-by-page mapping for the mapping from the logical address space to the physical address space results in which page or memory sections (page frames) of the physical address space of a predetermined size are mapped onto pages of the logical address space.
Die Seitenabschnittgröße beträgt für einen möglichst günstigen Ausgleich zwischen Speicheraufwand zur Verwaltung der Übersetzungsnachschlagtabelle und der Größe des „verschenk- ten" Speichers in dem Fall des Ausblendens einer defekten Speicherzelle vorzugsweise zwischen 32 und 128 Bytes, wie z.B. 64 Bytes. Dieser Bereich ergibt eine optimale Anpassung der Seitengröße an die Betriebszeiten bzw. Lebensdauern der Speicherzellen eines nicht flüchtigen Speichers sowie insbe- sondere an den zur Verfügung stehenden Speicherplatz, wie er beispielsweise bei Chipkarten üblich ist.The page section size is preferably between 32 and 128 bytes, such as 64 bytes, for the best possible balance between the amount of memory required to manage the translation look-up table and the size of the "wasted" memory in the case of a defective memory cell being hidden. This area results in an optimal adaptation the page size to the operating times or lifetimes of the memory cells of a non-volatile memory and, in particular, to the available storage space, as is customary, for example, with chip cards.
Die Überprüfung der Speicherzellen des physikalischen Speichers kann beispielsweise entweder erst unmittelbar vor einem Zugriff, wie z.B. einen Lese-, Schreib- oder Ausführungsvorgang, bezüglich einer physikalischen Adresse hin durchgeführt werden, oder aber die Überprüfung findet für alle logischen Adressen bei einer Initialisierung des den physikalischen Speicher verwendenden Systems statt.The check of the memory cells of the physical memory can, for example, either be carried out immediately before an access, such as a read, write or execution process, with regard to a physical address, or the check can be carried out for all logical addresses Addresses when the system using the physical memory is initialized.
In dem Fall, daß bei einer Überprüfung festgestellt wird, daß eine Speicherzelle nicht funktionstüchtig ist, wird die ihr zugeordnete logische Adresse auf eine neue physikalische Adresse abgebildet, wodurch der der alten physikalischen Adresse zugeordnete Speicherbereich ausgeblendet ist.In the event that a check determines that a memory cell is not functional, the logical address assigned to it is mapped to a new physical address, as a result of which the memory area assigned to the old physical address is hidden.
Gemäß einem speziellen Ausführungsbeispiel ist der physikalische Speicher auf einer Chipkarte angeordnet, die für mehrere Applikationen vorgesehen ist. Jeder Applikation ist ein eigener vorbestimmter Abschnitt des logischen Adreßraums zugeordnet, der sich auch dann nicht ändert, wenn eine Speicherzelle einer physikalischen Adresse, auf die eine logische Adresse des Adreßraumes abgebildet ist, nicht funktionstüchtig wird. Insbesondere wird die Aufeinanderfolge der einzelnen Speicherzeilen eines Speicherabschnittes einer Applikation nicht durch das Ausblenden oder Ersetzen einer physikalischen Ad- resse durch eine andere gestört.According to a special exemplary embodiment, the physical memory is arranged on a chip card which is intended for a number of applications. Each application is assigned its own predetermined section of the logical address space, which does not change even if a memory cell of a physical address to which a logical address of the address space is mapped does not become functional. In particular, the sequence of the individual memory lines of a memory section of an application is not disturbed by the fact that one physical address is hidden or replaced by another.
Bei einer Multiapplikationschipkarte ergibt sich zusätzlich der Vorteil, daß der den einzelnen Applikationen zugewiesene logische Adreßraum auch bei Ausfall einzelner Speicherzellen erhalten bleibt. Auch die Linearität des Adreßraumes einer bestimmten Applikation bleibt bezüglich des logischen Adreßraumes erhalten.With a multi-application chip card, there is the additional advantage that the logical address space assigned to the individual applications is retained even if individual memory cells fail. The linearity of the address space of a specific application is also retained with regard to the logical address space.
Die Erfindung ermöglicht folglich den Aufbau eines logischen Adreßraumes aus ausschließlich funktionierendem physikalischen Speicher zur Laufzeit und das Ersetzen eines während der Laufzeit auftretenden defekten Speichers durch korrekt arbeitenden Speicher, ohne dabei den logischen Adreßraum zu verändern.The invention consequently enables the construction of a logical address space from exclusively functioning physical memory at runtime and the replacement of a defective memory occurring during the runtime with correctly working memory without changing the logical address space.
Weitere Weiterbildungen und Variationen der vorliegenden Erfindung sind in den beiliegenden Ansprüchen definiert, bei denen die angegebenen Verfahrensschritte bei einer erfindungsgemäßen Vorrichtung durch entsprechende Einrichtungen durchgeführt werden können, die beispielsweise in Software oder Hardware implementiert sein können.Further developments and variations of the present invention are defined in the accompanying claims, at which the specified method steps in a device according to the invention can be carried out by appropriate devices, which can be implemented, for example, in software or hardware.
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend unter Bezugnahme auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:Preferred exemplary embodiments of the present invention are explained in more detail below with reference to the accompanying drawings. Show it:
Fig. 1 eine schematische Skizze, die die Abbildung eines logischen Adreßraumes in einen physikalischen Adreßraum veranschaulicht;Figure 1 is a schematic sketch illustrating the mapping of a logical address space into a physical address space.
Fig. 2 ein Flußdiagramm, das eine Überprüfung der Spei- cherzellen eines nicht flüchtigen Speichers auf eine Initialisierung hin veranschaulicht;FIG. 2 is a flowchart illustrating a check of the memory cells of a non-volatile memory for an initialization;
Fig. 3 ein Flußdiagramm, das den Zugriff auf einen nicht flüchtigen Speicher auf einen Lese-, Schreib- oder Ausfuhr-Vorgang hin gemäß einem ersten Ausführungsbeispiel darstellt;3 is a flowchart illustrating access to a non-volatile memory upon a read, write, or export operation according to a first embodiment;
Fig. 4 ein Flußdiagramm, das den Zugriff auf einen nicht flüchtigen Speicher auf einen Lese-, Schreib- oder Ausfuhr-Vorgang hin gemäß einem zweiten Ausführungsbeispiel darstellt;4 is a flowchart illustrating access to non-volatile memory upon a read, write, or export operation according to a second embodiment;
Fig. 5 ein Flußdiagramm, das eine Überprüfung der Speicherzellen eines nicht flüchtigen Speichers auf ei- ne Initialisierung hin gemäß einem speziellen Ausführungsbeispiel veranschaulicht; und5 shows a flowchart which illustrates a check of the memory cells of a non-volatile memory for initialization in accordance with a specific exemplary embodiment; and
Fig. 6 ein Blockdiagramm, das die Anordnung einer Übersetzungseinrichtung in einer Chipkarte gemäß einem Ausführungsbeispiel der vorliegenden Erfindung darstellt. Bevor bezugnehmend auf Fig. 2 bis 6 Ausführungsbeispiele der vorliegenden Erfindung beschriebenen werden, wird bezugnehmend auf Fig. 1 die Abbildung eines logischen Adreßraumes in einen physikalischen Adreßraum bei einer virtuellen Adressie- rung erläutert, wie sie gemäß der vorliegenden Erfindung verwendet wird, um Defekte bzw. nicht funktionstüchtige Speicherzellen „auszublenden".Fig. 6 is a block diagram illustrating the arrangement of a translation device in a chip card according to an embodiment of the present invention. Before exemplary embodiments of the present invention are described with reference to FIGS. 2 to 6, the mapping of a logical address space into a physical address space for virtual addressing, as is used according to the present invention, in order to detect defects or "to hide" non-functional memory cells.
Bevor auf Fig. 1 Bezug genommen wird, wird darauf hingewie- sen, daß sich die nachfolgende Beschreibung auf die Anwendung der vorliegenden Erfindung auf nicht flüchtige Speicher bei Chipkarten bezieht, wie z.B. solche des Multiapplikations- typs, daß aber die vorliegende Erfindung auch bei anderen einen Speicher enthaltenden Vorrichtungen verwendet werden kann.Before referring to Fig. 1, it should be noted that the following description refers to the application of the present invention to non-volatile memories in smart cards, such as e.g. those of the multi-application type, but the present invention can also be used with other memory-containing devices.
Fig. 1 zeigt schematisch die Abbildung eines logischen Adreßraumes in einen physikalischen Adreßraum in dem Fall einer Multiapplikationschipkarte. Der logische Adreßraum 10 ist in mehrere überlappungsfreie, gleich große Seiten unterteilt, die als Rechtecke dargestellt und spaltenweise angeordnet sind. Der physikalische Adreßraum 20 besteht auf ähnliche Weise aus mehreren überlappungsfreien, gleich großen Seitenabschnitten, die als Rechtecke dargestellt und spaltenweise angeordnet sind. Durch Pfeile 30 soll veranschaulicht werden, welche Seiten des logischen Adreßraumes auf welchen Seitenabschnitt des physikalischen Adreßraumes 20 abgebildet werden. Jeder Pfeil fußt an einer unterschiedlichen Seite des logischen Adreßraumes und zeigt auf einen im Regelfall unter- schiedlichen Seitenabschnitt des physikalischen Adreßraumes 20.1 schematically shows the mapping of a logical address space into a physical address space in the case of a multi-application chip card. The logical address space 10 is divided into a plurality of non-overlapping, equally large pages which are represented as rectangles and arranged in columns. The physical address space 20 similarly consists of a plurality of non-overlapping, equally large side sections, which are represented as rectangles and are arranged in columns. Arrows 30 are intended to illustrate which pages of the logical address space are mapped to which side section of the physical address space 20. Each arrow is based on a different side of the logical address space and generally points to a different side section of the physical address space 20.
Wie es in Fig. 1 dargestellt ist, wird nicht jede Seite des logischen Adreßraumes 10 auf einen Seitenabschnitt des physi- kaiischen Adreßraumes 20 abgebildet. Vielmehr werden nur diejenigen Seiten des logischen Adreßraumes 10 auf einen" Seitenabschnitt des physikalischen Adreßraumes 20 abgebildet, die eine Adresse des logischen Adreßraumes bzw. Speichers enthalten, an der sich von einer der auf der Chipkarte lauffähigen Applikationen les- oder schreibbare Daten oder ausführbarer Code befinden. In den Seitenabschnitten des physikalischen Adreßraumes 20, auf die die Seiten des logischen Adreßraumes 10 abgebildet werden, sind die Daten bzw. der Code tatsächlich physikalisch gespeichert.As shown in FIG. 1, not every page of the logical address space 10 is mapped to a side section of the physical address space 20. Rather, only those pages of the logical address space 10 are mapped onto a " page section of the physical address space 20 that contain an address of the logical address space or memory at which there is readable or writable data or executable code from one of the applications executable on the chip card. In the page sections of the physical address space 20, on which the pages of the logical address space 10 are mapped, the data or the code are actually physically stored.
Wie es aus Fig. 1 ersichtlich ist, weisen die logische Adres- se und die dazugehörige physikalische Adresse bis auf die Abbildung 30 keinerlei Bezug zueinander auf. Der logische Adreßraum 10 kann wesentlich größer als der physikalische Adreßraum 20 sein, wobei in dem Fall von Fig. 1 die Größe des logische Adreßraums 10 beispielsweise im Gigabyte-Bereich und die des physikalischen Adreßraums 20 im Megabyte-Bereich liegt. Seiten, an denen sich keine les- bzw. schreibbaren Daten oder ein ausführbarer Code befinden, wie z.B. die Seite 40 werden in der Regel nicht in den physikalischen Adreßraum 20 abgebildet. Umgekehrt können auch physikalische Seitenab- schnitte unbenutzt bleiben, wie z.B. der Seitenabschnitt 45.As can be seen from FIG. 1, the logical address and the associated physical address have no relation to one another apart from FIG. 30. The logical address space 10 can be substantially larger than the physical address space 20, in the case of FIG. 1 the size of the logical address space 10 being for example in the gigabyte range and that of the physical address space 20 in the megabyte range. Pages with no readable or writable data or executable code, such as the page 40 are usually not mapped to the physical address space 20. Conversely, physical page sections can also remain unused, e.g. the side section 45.
Die durch die Pfeile 30 dargestellte Abbildung des logischen Adreßraumes 10 in den physikalischen Adreßraum 20 ist für die auf der Chipkarte ausführbaren Applikationen völlig transpa- rent, so daß ein Applikationscode auf der Grundlage einer entsprechenden Spezifikation des logischen Adreßraumes erstellt werden kann. Der logische Adreßraum 10 ist in einzelne Teile unterteilt, die wiederum den unterschiedlichen Applikationen zugewiesen sind. Ein in dem logischen Adreßraum 10 zu- sammenhängender Teil einer Applikation kann aufgrund der Abbildung 30 folglich in beliebiger Reihenfolge in dem physikalischen Adreßraum 20 gespeichert werden. Insbesondere können die einzelnen Seiten des logischen Adreßraumes 10 beliebig auf andere Seitenabschnitte des physikalischen Adreßraumes 20 abgebildet werden, falls beispielsweise eine Speicherzelle eines Seitenabschnittes ihre Funktionstüchtigkeit verliert. Die Unterteilung des logischen Adreßraumes 10 und des physikalischen Adreßraumes 20 in Seiten bzw. Seitenabschnitte erfolgt, wie erwähnt, durch Unterteilung der beiden Adreßräume 10 und 20 in gleich große, überlappungsfreie Speicherberei- ehe, wobei der einem Seitenabschnitt in dem physikalischenThe mapping of the logical address space 10 into the physical address space 20 represented by the arrows 30 is completely transparent for the applications executable on the chip card, so that an application code can be created on the basis of a corresponding specification of the logical address space. The logical address space 10 is divided into individual parts, which in turn are assigned to the different applications. A part of an application that is connected in the logical address space 10 can consequently be stored in the physical address space 20 in any order based on the illustration 30. In particular, the individual pages of the logical address space 10 can be mapped as desired to other page sections of the physical address space 20 if, for example, a memory cell of a page section loses its functionality. As mentioned, the logical address space 10 and the physical address space 20 are subdivided into pages or page sections by subdividing the two address spaces 10 and 20 into equally large, overlap-free memory areas, the one page section in the physical
Adreßraum 20 überdeckte Speicherbereich genau so groß ist wie der einer Seite in dem logischen Adreßraum 10. Eine logische Adresse innerhalb einer Seite wird einer physikalischen Adresse in dem zugehörigen Seitenabschnitt mit einem gleichen Abstand bzw. Versatz von der jeweiligen Startadresse zugeordnet, so daß jede logische Adresse und jede zugeordnete physikalische Adresse aus dem selben Versatzwert und einer Seiten bzw. Seitenabschnitt-Startadresse besteht.Address space 20 covered memory area is exactly as large as that of a page in the logical address space 10. A logical address within a page is assigned to a physical address in the associated page section with an equal distance or offset from the respective start address, so that each logical address and each assigned physical address consists of the same offset value and a page or section start address.
Einem Seitenabschnitt in dem physikalischen Adreßraum 20 können zusätzlich weitere Speicherbits, wie es durch die größere Breite der Rechtecke der physikalischen Seitenabschnitte angezeigt ist, zugeordnet sein, die nicht über das normale Adressierungsverfahren für die Applikationen zugreifbar sind und auch nicht zur Erweiterung des physikalischen Adreßraumes 20 für Applikationsdaten führen. Diese zusätzlichen Speicherbits umfassen beispielsweise Fehlerkorrekturcode- (ECC = er- ror correction code) Bits, die die Erfassung einer fehlerhaften Funktion des physikalischen Datenspeichers des Seitenab- Schnitts oder sogar eine Rekonstruktion des Speicherinhalts desselben ermöglichen, Gültigkeitsflags, die die Gültigkeit der in der korrespondieren Seite befindlichen Daten angeben, und/oder Zugriffsrechte auf die korrespondierende Seite des logischen Adreßraumes. Die Zuordnung der Seiten und der Sei- tenabschnitte erfolgt unter Verwendung einer Seitentabelle bzw. Übersetzungstabelle, die Adreßpaare bzw. Tupel von jeweiligen Startadressen einer logischen Seite und eines zugeordneten physikalischen Seitenabschnitts aufweist.A page section in the physical address space 20 can also be assigned additional memory bits, as indicated by the larger width of the rectangles of the physical page sections, which are not accessible to the applications via the normal addressing method and also not to expand the physical address space 20 for Keep application data. These additional memory bits include, for example, error correction code (ECC) bits which enable the detection of an incorrect function of the physical data memory of the page section or even a reconstruction of the memory content thereof, valid flags which indicate the validity of those in the corresponding page specify data, and / or access rights to the corresponding side of the logical address space. The pages and the page sections are assigned using a page table or translation table which has address pairs or tuples of respective start addresses of a logical page and an assigned physical page section.
In dem Fall von Fig. 1 enthält ein Eintrag der Seitentabelle beispielsweise die Startadresse der ersten Seite 50 des logischen Adreßraumes 10 sowie die Startadresse des sechsten Sei- tenabschnitts 60 des physikalischen Adreßraumes 20, wie es durch den Pfeil 70 und die Ziffer „6" in dem Rechteck 50 dargestellt ist. Nicht zugeordnete logische Seiten sind in der Seitentabelle nicht enthalten.In the case of FIG. 1, an entry in the page table contains, for example, the start address of the first page 50 of the logical address space 10 and the start address of the sixth page section 60 of the physical address space 20, as represented by the arrow 70 and the number “6” in the rectangle 50. Logical pages that are not assigned are not contained in the page table.
Wie es in Fig. 1 exemplarisch bei der Seite 50 des logischen Adreßraumes 10 gezeigt ist, beträgt die Größe einer Seite gemäß einem Ausführungsbeispiel zwischen 32 und 128 Bytes. Obwohl andere Adreßraumunterteilungsgrößen ebenfalls möglich sind, wie z.B. eine wortgröße von 1 Byte, hat sich die Größe von zwischen 32 und 128 Bytes insofern als besonders vorteilhaft herausgestellt, daß dieselbe einen günstigen Kompromiß zwischen einerseits einem möglichst geringen Aufwand zur Speicherung und Verwaltung der Seitentabelle und andererseits einen möglichst geringen Speicherzellenverlust darstellt, falls ein Abschnitt des physikalischen Adreßraumes 20 aufgrund lediglich einer defekten Speicherzelle durch Änderung der Abbildung 30 ausgeblendet wird. Insbesondere hängt die Größe der Seiten bzw. Seitenabschnitte von den Betriebszeiten der Speicherzellen ab.As shown by way of example in FIG. 1 for the page 50 of the logical address space 10, the size of a page according to one exemplary embodiment is between 32 and 128 bytes. Although other address space division sizes are also possible, e.g. a word size of 1 byte, the size of between 32 and 128 bytes has been found to be particularly advantageous in that it represents a favorable compromise between on the one hand the least possible effort for storing and managing the page table and on the other hand the least possible memory cell loss if a section of the physical address space 20 is hidden due to only a defective memory cell by changing the figure 30. In particular, the size of the pages or page sections depends on the operating times of the memory cells.
Weitere Vorteile der Verwendung der virtuellen Speicheradressierung bei Chipkarten sind in dem Artikel Stephan Ondrusch, „Protected Virtual Memory - 32-Bit-Power ohne angezogene Handbremse", 10. GMD-SmartCard-Workshop Darmstadt, 9. Feb. 2000, beschrieben, der hiermit unter Bezugnahme aufgenommen wird.Further advantages of using the virtual memory addressing for chip cards are described in the article Stephan Ondrusch, "Protected Virtual Memory - 32-bit power without the handbrake on", 10th GMD SmartCard Workshop Darmstadt, 9 February 2000, which is hereby is incorporated by reference.
Nachdem im vorhergehenden anhand von Fig. 1 die Abbildung von logischen Adressen auf physikalische Adressen beschrieben worden ist, wird im folgenden anhand von Fig. 1 exemplarisch ein Beispielfall beschrieben, anhand dessen das unaufwendige „Ausblenden" von defekten Speicherzellen durch die seitenweise Abbildung 30 veranschaulicht wird. Hierzu sei im folgenden angenommen, daß die Speicherzellen des logischen Adreßraumes 10 einer einzigen Applikation angehören. Es sei ferner angenommen, daß eine der Speicherzellen des Seitenabschnitts 60, auf die momentan die logische Seite 50 abgebildet ist, ihre Funktionstüchtigkeit verliert. In diesem Fall kann, wie es durch einen gestrichelten Pfeil 80 darge- stellt ist, der Eintrag in der Seitentabelle und damit die Abbildung selbst derart geändert werden, daß der logischen Seite 50 ein freier Seitenabschnitt 90 des physikalischen Adreßraumes 20 zugewiesen wird. Die Applikation, die an der logischen Seite 50 spezifische Daten bzw. einen spezifischen Code „erwartet", „merkt" nichts davon, daß sie nach der Änderung der Abbildung bei einem Zugriff auf die erste logische Seite auf einen anderen Seitenabschnitt des physikalischen Adreßraumes 20 zugreift.After the mapping of logical addresses to physical addresses has been described above with reference to FIG. 1, an example case is described below with reference to FIG. 1, by means of which the uncomplicated “masking out” of defective memory cells is illustrated by the page 30 illustration For this purpose, it is assumed below that the memory cells of the logical address space 10 belong to a single application. It is further assumed that one of the memory cells of the page section 60, on which the logical page 50 is currently mapped, loses its functionality. In this case, as shown by a dashed arrow 80, the entry in the page table and thus the mapping itself can be changed such that a free page section 90 of the physical address space 20 is assigned to the logical page 50. The application which "expects" specific data or a specific code on the logical page 50 does not "notice" that after changing the mapping when accessing the first logical page, it accesses another page section of the physical address space 20 ,
Um es zu ermöglichen, daß sich nach der Umleitung „der Abbildung" die korrekten Daten in dem Seitenabschnitt 90 befinden, sind den Seitenabschnitten des physikalischen Adreßraumes 20 beispielsweise redundante Informationen hinzugefügt, aus denen der Speicherinhalt der defekten Speicherzelle rekonstru- iert und der gesamte Speicherinhalt des alten Speicherinhalts, d.h. 60, in den neuen Seitenabschnitt 90 kopiert werden kann. Insbesondere vorteilhaft ist hierbei, daß für die Applikation die lineare Reihenfolge innerhalb des Adreßraumes, in dem dieselbe agiert, erhalten bleibt. Ein positiver Nebeneffekt auf der Seite der physikalischen Speicherung der Daten besteht darin, daß die innerhalb des logischen Adreßraumes linear angeordneten Daten durch die Abbildung bzw. die Änderung der Abbildung verwürfelt bzw. zerhackt werden, so daß ein insbesondere für Chipkarten zusätzlicher Vorteil dar- in besteht, daß ein potentieller Angreifer, der sich in Besitz einer Chipkarte befindet, bei einem Angriff auf die Chipkarte zunächst die Verwürfelung der gespeicherten Daten, wie z.B. eines Algorithmuscodes einer Applikation, überwinden muß .In order to make it possible for the correct data to be located in the page section 90 after the redirection of “the figure”, redundant information is added to the page sections of the physical address space 20, for example, from which the memory content of the defective memory cell is reconstructed and the entire memory content of the old memory content, ie 60, can be copied into the new page section 90. It is particularly advantageous here that the application maintains the linear order within the address space in which it operates - a positive side effect on the side of the physical storage of the data consists in the fact that the data arranged linearly within the logical address space are scrambled or chopped up by the mapping or the change of the mapping, so that an additional advantage, particularly for chip cards, is that a potential attacker who owns a Chip card et, in the event of an attack on the chip card, the scrambling of the stored data, such as of an application's algorithm code.
Bezugnehmend auf Fig. 2 wird im folgenden die Änderung der bezugnehmend auf Fig. 1 erläuterten seitenweisen Abbildung bei Erfassung defekter Speicherzellen bzw. das Ausblenden solcher Speicherzellen gemäß einem Ausführungsbeispiel der vorliegenden Erfindung erläutert. Fig. 1 bezieht sich auf ein Ausführungsbeispiel, bei dem auf eine Initialisierung hin zu- nächst alle logischen Adressen daraufhin überprüft werden, ob die Speicherzellen der physikalischen Adressen, auf die die logischen abgebildet sind, funktionstüchtig sind oder nicht. Die Überprüfung der Speicherzellen kann jedoch bei einem anderen Ausführungsbeispiel auch auf einen späteren Zeitpunkt verschoben werden, an dem ein Lese-, Schreib-, Ausführ- oder ein sonstiger Vorgang bezüglich einer bestimmten logischen Adresse und damit einer zugeordneten physikalischen Adresse stattfindet.Referring to FIG. 2, the change in the page-by-page illustration explained with reference to FIG. 1 is described below when defective memory cells are detected or the hiding of such memory cells is explained according to an exemplary embodiment of the present invention. 1 relates to an exemplary embodiment in which, after initialization, all the logical addresses are first checked to determine whether the memory cells of the physical addresses to which the logical addresses are mapped are functioning or not. In another exemplary embodiment, however, the checking of the memory cells can also be postponed to a later point in time at which a reading, writing, executing or other process takes place with respect to a specific logical address and thus an assigned physical address.
Nach einer Initialisierung 200 werden in einem Schritt 210 die physikalische Adresse bzw. die Startadresse des physikalischen Seitenabschnitts und die zugehörige Speicherzellen ermittelt, die über die Abbildung der logischen Adresse bzw. der Startadresse der logischen Seite, zugeordnet sind. Dar- aufhin wird in einem Schritt 220 die Speicherzelle auf ihre Funktionstüchtigkeit hin überprüft. Falls die Überprüfung in dem Schritt 220 ergibt 230, daß die Speicherzellen funktionstüchtig sind, wird die Abbildung unverändert beibehalten. Falls die Überprüfung 220 jedoch ergibt 230, daß eine der Speicherzellen nicht funktionstüchtig ist, wird in einem Schritt 240 die Abbildung des logischen Adreßraumes in den physikalischen Adreßraum derart geändert, daß die logische Adresse auf eine andere physikalischen Adresse abgebildet ist, wie es zuvor bezugnehmend auf Fig. 1 beschrieben worden ist. Nach den Schritten 230 und 240 wird in einem Schritt 260 überprüft, ob weitere logische Adressen existieren, die noch nicht überprüft wurden. Falls dies der Fall ist, springt der Ausblendablauf zu dem Schritt 210 zurück, wobei die Schritte 210-240 bezüglich einer nächsten logischen Adresse durchge- führt werden. Falls bei der Überprüfung 260 keine weiteren logischen Adressen festgestellt werden, endet der Aus lendab- lauf, und es beginnt beispielsweise die Ausführung einer Applikation.After an initialization 200, the physical address or the start address of the physical page section and the associated memory cells are determined in a step 210, which are assigned via the mapping of the logical address or the start address of the logical page. Thereupon, in a step 220, the memory cell is checked for its functionality. If the check in step 220 shows 230 that the memory cells are functional, the mapping is left unchanged. However, if the check 220 determines 230 that one of the memory cells is not functional, the mapping of the logical address space to the physical address space is changed in a step 240 such that the logical address is mapped to a different physical address, as previously referred to Fig. 1 has been described. After steps 230 and 240, it is checked in a step 260 whether there are further logical addresses which have not yet been checked. If this is the case, the skip sequence jumps back to step 210, steps 210-240 being carried out with respect to a next logical address. If no further logical addresses are found during the check 260, the stripping end ends. run and, for example, the execution of an application begins.
Bezüglich der vorhergehenden Beschreibung der Fig. 2 wird darauf hingewiesen, daß der Schritt 240 beispielsweise das Ändern oder Ersetzen eines entsprechenden Eintrags der logischen Adresse in einer Seitentabelle oder, in dem Fall, daß sich ein Eintrag mit der logischen Adresse noch nicht in der Seitentabelle befindet, das Eintragen eines entsprechenden Eintrags mit der logischen Adresse und der anderen physikalischen Adresse umfassen kann.With regard to the preceding description of FIG. 2, it is pointed out that step 240, for example, changes or replaces a corresponding entry of the logical address in a page table or, in the event that an entry with the logical address is not yet in the page table , which may include entering a corresponding entry with the logical address and the other physical address.
Bezugnehmend auf Fig. 3 wird ein Ablauf beschrieben, wie er gemäß einem Ausführungsbeispiel der vorliegenden Erfindung stattfindet, um den Zugriff auf den physikalischen Speicher auszuführen, der durch einen entsprechenden Vorgang bzw. eine entsprechende Transaktion, wie z.B. eine Lese-, Schreib- oder Ausführtransaktion, durch eine Applikation ausgelöst wird. Bei diesem Ausführungsbeispiel befinden sich in einer die Ab- bildung zwischen dem logischen und dem physikalischen Adreßraum definierenden Seitenübersetzungsnachschlagtabelle lediglich Einträge mit derartigen logischen Adressen, die von der physikalischen Adresse, an der die Daten bzw. der Code der logischen Adresse tatsächlich gespeichert ist, abweichen. An- ders ausgedrückt, besteht bei diesem Ausführungsbeispiel der Grundzustand der Abbildungsvorschrift zwischen den logischen und den physikalische Adressen in einer Identitätsabbildung, die logische Adressen auf identische physikalischen Adressen abbildet. Lediglich in dem Fall einer defekten Speicherzelle wird diejenige logische Adresse, die auf die der defekten Speicherzelle zugehörige physikalische Adresse abgebildet ist, auf eine andere physikalischen Adresse „umgelenkt", wodurch die defekte Speicherzelle auf eine für die Applikation transparente Weise ausgeblendet wird.Referring to Fig. 3, a flow will be described as it takes place according to an embodiment of the present invention to perform the access to the physical memory, which is carried out by a corresponding process or a corresponding transaction, e.g. a read, write or execute transaction triggered by an application. In this exemplary embodiment, in a page translation look-up table which defines the mapping between the logical and the physical address space, there are only entries with such logical addresses which differ from the physical address at which the data or code of the logical address is actually stored. In other words, in this exemplary embodiment the basic state of the mapping rule between the logical and the physical addresses consists of an identity mapping which maps logical addresses to identical physical addresses. Only in the case of a defective memory cell is that logical address which is mapped to the physical address associated with the defective memory cell "redirected" to another physical address, as a result of which the defective memory cell is hidden in a manner which is transparent to the application.
Nachdem von einer Applikation in einem Schritt 300 ein Lese-, Schreib- oder Ausfuhr-Vorgang bezüglich einer logischen Adresse gestartet worden ist, wird in einem Schritt 310 in einer Übersetzungsnachschlagtabelle bzw. einer Seitentabelle nachgeschlagen, um zu überprüfen, ob sich ein Eintrag für die logische Adresse in derselben befindet.After an application has read, written or exported a logical step in a step 300 Address has been started, a step 310 is looked up in a translation look-up table or a page table in order to check whether there is an entry for the logical address therein.
Falls der Schritt 310 ergibt 320, daß ein Eintrag mit der logischen Adresse vorhanden ist, wird in einem Schritt 330 dieser Eintrag gelesen, um die physikalische Adresse zu erhalten. Falls jedoch der Schritt 310 ergibt 320, daß kein ent- sprechender Eintrag mit der logischen Adresse vorhanden ist, findet eine Identitätsabbildung der logischen Adresse auf die physikalische Adresse statt, so daß die physikalische Adresse identisch zu der logischen ist.If step 310 determines 320 that there is an entry with the logical address, this entry is read in step 330 to obtain the physical address. However, if step 310 results 320 that there is no corresponding entry with the logical address, the logical address is mapped to the physical address so that the physical address is identical to the logical address.
Nach Durchführung einer der beiden Schritte 330 oder 340 wird in einem Schritt 350 auf die bestimmte physikalische Adresse, d.h. die zu der logischen Adresse identische physikalische Adresse oder die physikalische Adresse des Eintrags, zugegriffen und der Lese-, Schreib- oder Ausfuhr-Vorgang durchge- führt.After one of the two steps 330 or 340 has been carried out, in a step 350 the specific physical address, i.e. the physical address identical to the logical address or the physical address of the entry is accessed and the reading, writing or exporting process is carried out.
Es wird darauf hingewiesen, daß die Schritte 310 bis 340 für die Applikation quasi unmerklich stattfinden, und daß die Applikation auch nach dem Ereignis einer defekten Speicherzelle wie gewohnt auf den der Applikation zugewiesenen logischen Adreßraum zugreifen kann.It is pointed out that steps 310 to 340 take place virtually imperceptibly for the application and that the application can access the logical address space assigned to the application as usual even after the event of a defective memory cell.
Bezugnehmend auf Fig. 4 wird ein Ablauf beschrieben, wie er gemäß einem weiteren Ausführungsbeispiel der vorliegenden Er- findung stattfindet, um den Zugriff auf den physikalischenA process is described with reference to FIG. 4, as takes place according to a further exemplary embodiment of the present invention, in order to access the physical
Speicher auszuführen, der durch einen entsprechenden Vorgang bzw. eine entsprechende Transaktion, wie z.B. eine Lese-, Schreib- oder Ausführtransaktion, durch eine Applikation aus¬ gelöst wird. Bei diesem Ausführungsbeispiel sind nicht nur die geänderten bzw. umgelenkten logischen Adressen in derExecute memory by a corresponding process and a corresponding transaction, for example, is dissolved a read, write or Ausführtransaktion by an application from ¬. In this embodiment, not only the changed or redirected logical addresses are in the
Nachschlagtabelle gespeichert sondern darüber hinaus "auch andere. Die ausführende Hardware erwartet bei diesem Ausfüh- rungsbeispiel immer einen Eintrag in der Nachschlagtabelle. Findet sie keinen Eintrag für eine spezielle logische Adresse, so wird eine Ausnahmeroutine durch das Betriebssytem durchgeführt, die dann die gesuchte logische Adresse zusammen mit der zugehörigen physikalischen Adresse in die Nachschlagtabelle nachträgt.Look-up table saved but also " other. The executing hardware expects this execution example, always an entry in the lookup table. If it does not find an entry for a special logical address, an exception routine is carried out by the operating system, which then adds the searched logical address together with the associated physical address to the look-up table.
Die in Fig. 4 gezeigten Schritte entsprechen denjenigen von Fig. 3 bis zu der Stelle, an der festgestellt wird, daß die gesuchte logische Adresse nicht in der Nachschlagtabelle vorhanden ist, weshalb diese identischen Schritte mit den gleichen Bezugszeichen versehen sind und zur Vermeidung von Wiederholungen nicht noch mal erörtert werden.The steps shown in FIG. 4 correspond to those of FIG. 3 up to the point at which it is determined that the logical address sought is not present in the look-up table, for which reason these identical steps are provided with the same reference symbols and to avoid repetitions not be discussed again.
Falls der Schritt 310 also ergibt 320, daß ein Eintrag mit der logischen Adresse vorhanden ist, wird wie bei dem vorhergehenden Ausführungsbeispiel in einem Schritt 330 dieser Eintrag gelesen, um die physikalische Adresse zu erhalten. Falls jedoch der Schritt 310 ergibt 320, daß kein entsprechender Eintrag mit der logischen Adresse vorhanden ist, wird in einem Schritt 340' von der Hardware anders als bei dem vorhergehenden Ausführungsbeispiel eine Ausnahmeroutine des Betriebssystems gestartet bzw. es erfolgt ein Trap ans Betriebssystem. Im Rahmen der Ausnahmeroutine ermittelt das Be- triebsystem die fehlende physikalische Adresse, die der angeforderten logischen entspricht, und trägt dieselbe zusätzlich in die Nachschlagtabelle ein.If step 310 thus results 320 that an entry with the logical address is present, this entry is read in a step 330 as in the previous exemplary embodiment in order to obtain the physical address. If, however, step 310 results in 320 that there is no corresponding entry with the logical address, the hardware starts an exception routine of the operating system in a step 340 ′, unlike in the previous exemplary embodiment, or a trap to the operating system takes place. As part of the exception routine, the operating system determines the missing physical address that corresponds to the requested logical address and also enters it in the lookup table.
Nach Durchführung einer der beiden Schritte 330 oder 340' wird in einem Schritt 350 auf die bestimmte physikalischeAfter one of the two steps 330 or 340 'has been carried out, the determined physical one is carried out in a step 350
Adresse, d.h. die zu der logischen Adresse identische physikalische Adresse oder die physikalische Adresse des Eintrags, zugegriffen und der Lese-, Schreib- oder Ausfuhr-Vorgang durchgeführt.Address, i.e. the physical address identical to the logical address or the physical address of the entry is accessed and the reading, writing or exporting process is carried out.
Bezugnehmend auf Fig. 5 wird im folgenden ein möglicher Ablauf zum Ausblenden defekter Speicherzellen gemäß einem spe- ziellen Ausführungsbeispiel beschrieben, wie er bei der ersten Initialisierung eines Chips mit einem nicht-flüchtigen Speicher durch Software erfolgen kann. In einem Schritt 360 wird zunächst die erste Seite in dem NVM gesucht. In einem Schritt 362 wird daraufhin die physikalische Seite auf einen Defekt hin überprüft. Falls festgestellt wird 364, daß zumindest eine der Speicherzellen der physikalischen Seite defekt ist, wird in einem Schritt 366 die zugehörige physikalische Adresse des defekten physikalischen Seitenabschnitts in einer Liste in dem RAM gespeichert. Nach dem Schritt 364 oder 366 wird in einem Schritt 368 die nächste NVM-Seite ausgewählt. Falls hierbei festgestellt wird 370, daß eine solche nächste, noch nicht überprüfte Speicherzelle existiert, springt die Steuerung zu Schritt 362 zurück. Andernfalls werden in einem Schritt 372 in dem Fall des Ausführungsbeispiels von Fig. 3 die im RAM gespeicherten „Defekt"-Adressen als logische Adressen aus der Liste in dem RAM in den NVM gespeichert, wobei denselben noch gültige physikalische Seitenabschnittadressen hinzugefügt werden, so daß in dem NVM eine vollstän- dige Nachschlagtabelle mit logischen Defektadressen und zugehörigen gültigen physikalischen Adressen von intakten Speicherabschnitten entsteht. In dem Fall des Ausführungsbeispiels von Fig. 4 werden in dem Schritt 372 die gespeicherten Defektadressen in den NVM kopiert, wo sie zur weiteren Lauf- zeit oder nach jedem Reset des Controllers verwendet werden, um sicherzustellen, daß bei dem Aufbau der Übersetzungsnachschlagtabelle nie eine defekte physikalische Adresse adressiert wird. Mit Abschluß von Schritt 372 ist die Initialisierung beendet.5, a possible sequence for hiding defective memory cells according to a specific Example embodiment described how it can be done by software when initializing a chip with a non-volatile memory. In a step 360, the first page is searched for in the NVM. In a step 362, the physical side is then checked for a defect. If it is determined 364 that at least one of the memory cells of the physical page is defective, the associated physical address of the defective physical page section is stored in a list in the RAM in a step 366. After step 364 or 366, the next NVM page is selected in step 368. If it is determined 370 here that such a next, not yet checked memory cell exists, control loops back to step 362. Otherwise, in a step 372 in the case of the embodiment of FIG. 3, the "defect" addresses stored in the RAM are stored as logical addresses from the list in the RAM in the NVM, with the still valid physical page section addresses being added so that in a complete look-up table with logical defect addresses and associated valid physical addresses of intact memory sections is created for the NVM In the case of the exemplary embodiment of FIG be used after each reset of the controller to ensure that a defective physical address is never addressed when the translation lookup table is built in. Upon completion of step 372, initialization is complete.
Bezugnehmend auf Fig. 6 wird im folgenden nun ein Blockdiagramm einer Schaltung einer Chipkarte gemäß einem Ausführungsbeispiel der vorliegenden Erfindung beschrieben, bei dem die Abbildung eines logischen Adreßraumes in den physikali- sehen Adreßraum für Zugriffe auf sowohl einen Nur-Lese-, wie. z.B. einen ROM, einen Arbeits-, wie z.B. einen RAM, als auch einen nicht-flüchtigen Speicher, wie z.B. einen EEPROM oder TJWith reference to FIG. 6, a block diagram of a circuit of a chip card according to an embodiment of the present invention will now be described, in which the mapping of a logical address space into the physical address space for access to both a read-only and a. eg a ROM, a working memory, such as a RAM, as well as a non-volatile memory, such as an EEPROM or TJ
PP
© H© H
4 o 3 α. ω 4J4 o 3 α. ω 4J
00
H P U α. 0H P U α. 0
COCO
PP
ΦΦ
>>
ΦΦ
H H
P φ ßP φ ß
CdCD
4->4->
H ε H ε
XX
•-• -
Φ O εΦ O ε
ΦΦ
TJTJ
>>
4-4
4- o4- o
9090
©©
44
O
Figure imgf000021_0001
m σ U0 o o uo rH rH CM cn ro
O
Figure imgf000021_0001
m σ U0 oo uo rH rH CM cn ro
4-> 1 0ι 1 1 ß ß 1 CO 1 14-> 1 0ι 1 1 ß ß 1 CO 1 1
0ι CG 1 ß Φ •H Φ ß 1 •H C , ε P 1 O 0ι 1 10ι CG 1 ß Φ • H Φ ß 1 • H C, ε P 1 O 0ι 1 1
• 1 •H ro O P 3 ε 1 ro 1 0 o J φ φ ro ro t ß• 1 • H ro O P 3 ε 1 ro 1 0 o J φ φ ro ro t ß
01 -H cG 4H 4-1 1 φ P co ro 1 4-1 o τs •H 3 ro CM v Φ TJ 4H > 4-) P ro <01 -H cG 4H 4-1 1 φ P co ro 1 4-1 o τs • H 3 ro CM v Φ TJ 4H> 4- ) P ro <
•H Φ :ro ε φ Φ •H > φ 0ι -* •H φ Φ φ 01 ^r 1 CO φ 3 0ι P 4-) cn• H Φ: ro ε φ Φ • H> φ 0ι - * • H φ Φ φ 01 ^ r 1 CO φ 3 0ι P 4- ) cn
C*4 α, ε 3 CJ •H ß 4-> ß •H Φ X TJ P X O -H Φ CO •H 4H ro P ro φ ß ß • © O φ ro TJ Φ 1 ro co H 3 CO OH 4-J ß TJ •H TJ CO 2 O φ TJ 3 φ TJ -H ro 4HC * 4 α, ε 3 CJ • H ß 4-> ß • H Φ X TJ PXO -H Φ CO • H 4H ro P ro φ ß ß • © O φ ro TJ Φ 1 ro co H 3 CO OH 4 -J ß TJ • H TJ CO 2 O φ TJ 3 φ TJ -H ro 4H
< 4-1 P 73 ß CO -P Λ; ro Φ P O •H H ro Φ ß o φ P ro 4-> 4-1 Xi Cd P 3<4-1 P 73 ß CO -P Λ; ro Φ PO • H H ro Φ ß o φ P ro 4-> 4-1 Xi Cd P 3
© 3 P ro ß •H Φ ß •H 73 3 Φ X ε 4-1 4-J N ß •H Xi CC - 73 4-J X ß o EH ro© 3 P ro ß • H Φ ß • H 73 3 Φ X ε 4-1 4-J N ß • H Xi CC - 73 4-J X ß o EH ro
Q- ro Φ 3 3 TJ Φ φ co P •H α ß P Φ M 4-4 O CO C cu < X Φ u 3 co ßQ- ro Φ 3 3 TJ Φ φ co P • H α ß P Φ M 4-4 O CO C cu <X Φ u 3 co ß
W ß τs ß X φ -P Cd O φ Φ X Φ 3 > Cd ß •H O •H X •H φ oW ß τs ß X φ -P Cd O φ Φ X Φ 3> Cd ß • H O • H X • H φ o
H 73 •H P 4-> 3 0 01 ß X cG CO co ß 4-4 ro 4-1 φ Cd -H P 01 co P ε υ ß Φ H «rH 73 • HP 4-> 3 0 01 ß X cG CO co ß 4-4 ro 4-1 φ Cd -HP 01 co P ε υ ß Φ H «r
U ß Φ ro P 3 to φ ft ro P Φ φ φ CO 0ι φ 4-3 Φ P 4-J Φ φ φ α 3 ro Φ TJ «3" α. Φ Xi Xi φ 3 4-J 4-1 φ P 73 o Φ ß Q P Φ Λ. ε X P O 2 CO 4-> ε 01 :3 ro P P ε ß τs φ X 3 P ro X Φ φ . u ß TJ CO CO o O x ß 01 4-1 ß φ φ 3 H < 01 4-1 4-1 ß 3 ro Ü 4-4 TJ CQ o Φ < o ß P φ r~ 3U ß Φ ro P 3 to φ ft ro P Φ φ φ CO 0ι φ 4-3 Φ P 4-J Φ φ φ α 3 ro Φ TJ «3" α. Φ Xi Xi φ 3 4-J 4-1 φ P 73 o Φ ß QP Φ Λ. Ε XPO 2 CO 4-> ε 01: 3 ro PP ε ß τs φ X 3 P ro X Φ φ. U ß TJ CO CO o O x ß 0 1 4-1 ß φ φ 3 H <01 4-1 4-1 ß 3 ro Ü 4-4 TJ CQ o Φ <o ß P φ r ~ 3
Φ 3 ß Φ φ φ Φ X ß Φ ß Φ •H =3 O N Oι -H Φ • H 4H r- ro Φ P "^ CQ ß 4-1 3 01 N X •H υ •H co Φ 3 0« ß P > Φ 73 ß N 01 •H ß *r τs TJ •Φ 3 ß Φ φ φ Φ X ß Φ ß Φ • H = 3 ON Oι -H Φ • H 4H r- ro Φ P "^ CQ ß 4-1 3 01 NX • H υ • H co Φ 3 0 «Ss P> Φ 73 ß N 01 • H ß * r τs TJ •
0ι α P x P 73 •H φ 4-1 ß P X α TJ P , •H 0 Φ φ o : ß 010ι α P x P 73 • H φ 4-1 ß P X α TJ P, • H 0 Φ φ o: ß 01
3 P Φ υ Φ Φ Φ 4-1 -H ro Φ ε ε υ P Φ P Φ co ß Φ P X 0ι CM ß Φ ß Φ3 P Φ υ Φ Φ Φ 4-1 -H ro Φ ε ε υ P Φ P Φ co ß Φ P X 0ι CM ß Φ ß Φ
N α 3 P X O α, 01 -H ε 4-> CO Φ 4-J H 73 φ Φ Φ H 01 υ ß ^ H ß X 3 73N α 3 PXO α, 0 1 -H ε 4-> CO Φ 4-J H 73 φ Φ Φ H 01 υ ß ^ H ß X 3 73
Φ P Φ 3 O P co ß ß P P -H 73 X X O 3 01 CO • -H 3 X 3 CO 3 φ u 4-JΦ P Φ 3 O P co ß ß P P -H 73 X X O 3 01 CO • -H 3 X 3 CO 3 φ u 4-J
X Φ 4-J 73 Φ φ 3 X Φ o Φ ro o -H ß co ß 73 υ N -H 4-J s X X 3 X 4-1X Φ 4-J 73 Φ φ 3 X Φ o Φ ro o -H ß co ß 73 υ N -H 4-J s X X 3 X 4-1
X CO φ TJ ro CJ) 4-1 υ 73 ß 3 CO P Φ •H ß φ Φ H 3 01 X o φ υ CO CJ 3X CO φ TJ ro CJ) 4-1 υ 73 ß 3 CO P Φ • H ß φ Φ H 3 01 X o φ υ CO CJ 3
P o o (X 4-1 :3 CO P 3 Φ ß 4-J Φ P 73 «. ß N O υ OS 73 CO -H roP o o (X 4-1: 3 CO P 3 Φ ß 4-J Φ P 73 «. Ss N O υ OS 73 CO -H ro
Φ P 4 4 CΛ o φ P X 4-1 Cd ro X Φ φ O τs P ß φ 01 -H C H 3 PΦ P 4 4 CΛ o φ PX 4-1 Cd ro X Φ φ O τs P ß φ 01 -HC H 3 P
73 Φ Φ •^ φ X Q. ro CO 3 υ 0ι ß 4J CO Φ 0 ß α Φ P Cd N ß Φ73 Φ Φ • ^ φ X Q. ro CO 3 υ 0ι ß 4J CO Φ 0 ß α Φ P Cd N ß Φ
-H 01 P 4-> P ß Φ ro P ε H •H •H 3 φ 3 •H o N CO P ß Cd ro H O-H 01 P 4-> P ß Φ ro P ε H • H • H 3 φ 3 • H o N CO P ß Cd ro HO
01 Q •H 01 Φ CO Φ φ Φ TJ 3 Φ cG Φ ro P ß 4-J H Φ O φ -H St CO Φ CO01 Q • H 01 Φ CO Φ φ Φ TJ 3 Φ cG Φ ro P ß 4-J H Φ O φ -H St CO Φ CO
H c2 ß J ro H O X -P o 4-J N , ß X 73 Φ ß ro 4-J X Φ 73 Φ CO •H O Φ cG • :ro 3 X φ O H o X •H cn g 4-J Φ Φ ro X Φ ** -* P CO Φ ro CO ß 01 P H c2 ß J ro HOX -P o 4-JN, ß X 73 Φ ß ro 4-JX Φ 73 Φ CO • HO Φ cG •: ro 3 X φ O H o X • H cn g 4-J Φ Φ ro X Φ ** - * P CO Φ ro CO ß 01 P
;ro 4 ε 4-> ß ß 0ι •H Φ P υ 4-1 Φ Φ CO 4-1 01 4-J ü CO • ro J X CO 73 ro ß TJ ε P Φ Xi Φ •H H TJ Φ CO 3 •H X ß P X 01 4H P co φ CO 0ι ü 01 Φ X 0ι 3 < ; ro 4 ε 4-> ß ß 0ι • H Φ P υ 4-1 Φ Φ CO 4-1 01 4-J ü CO • ro JX CO 73 ro ß TJ ε P Φ Xi Φ • H H TJ Φ CO 3 • HX ß PX 01 4H P co φ CO 0ι ü 0 1 Φ X 0ι 3 <
© φ x P υ X P 4-1 X 4-J ß u 4J Φ ro 0 3 3 ro H •H CU ß ß •H ß X co P© φ x P υ XP 4-1 X 4-J ß u 4J Φ ro 0 3 3 ro H • H CU ß ß • H ß X co P
• α N• α N
4 P •3 rO •H •H Φ X υ M -H •H X 3 :ro Φ ro X 01 3 α ro ro φ 3 ü co o 4-1 ß ro 4-1 3 P Φ υ 3 •H 3 Φ ß ε u 4-> ß N o 0 Φ < P 01 X 01 N •H φ ß > Φ Φ4 P • 3 rO • H • H Φ X υ M -H • HX 3: ro Φ ro X 01 3 α ro ro φ 3 ü co o 4-1 ß ro 4-1 3 P Φ υ 3 • H 3 Φ ß ε u 4-> ß N o 0 Φ <P 01 X 01 N • H φ ß> Φ Φ
3 Φ 4-> ß P υ :3 ro N P 4-1 CO 4-4 3 P o 0ι EH P u •3 X P φ 1 CO X3 Φ 4-> ß P υ: 3 ro NP 4-1 CO 4-4 3 P o 0ι EH P u • 3 XP φ 1 CO X
4-> 0ι 4-1 •H X •H -P 01 X P CO τs «. H O N Φ r- ß 3 P o co N φ τ> 01 φ P o4-> 0ι 4-1 • HX • H -P 01 XP CO τs «. HON Φ r- ß 3 P o co N φ τ> 01 φ P o
4-1 o O Φ O Φ CO P :0 o H ß 4-> CO •=r Φ cG N φ ß > •H Φ O :3 < H co φ co4-1 o O Φ O Φ CO P: 0 o H ß 4-> CO • = r Φ cG N φ ß> • H Φ O: 3 < H co φ co
O 3 CO CO co α ß Φ ε CO Λ, 3 ß ro O P X ro ß Φ 1 0ι X P N P φ X •H O ro 01 φ co 0 TJ X P 4-J Φ Λ; ß CM Φ Φ υ τs Φ •H TJ P O φ Φ ß :0O 3 CO CO co α ß Φ ε CO Λ, 3 ß ro O P X ro ß Φ 1 0ι X P N P φ X • H O ro 01 φ co 0 TJ X P 4-J Φ Λ; ß CM Φ Φ υ τs Φ • H TJ P O φ Φ ß: 0
P ß CQ •H Φ υ Φ P 4-1 •H -H Φ r TJ CO X Φ ß X ß X X Φ X roP ß CQ • H Φ υ Φ P 4-1 • H -H Φ r TJ CO X Φ ß X ß X X Φ X ro
0ι 4-1 Φ 3 o 4-1 ß P •H Φ CO 73 CO X -H .. υ H •3 0 o X Φ φ st ß 3 4-1 4-1 CO φ ΛJ o Φ Φ Xi X •H O S 4-4 Φ 73 •H 01 4-1 44 Φ H 01 υ 01 φ •H •H0ι 4-1 Φ 3 o 4-1 ß P • H Φ CO 73 CO X -H .. υ H • 3 0 o X Φ φ st ß 3 4-1 4-1 CO φ ΛJ o Φ Φ Xi X • HOS 4-4 Φ 73 • H 0 1 4-1 44 Φ H 01 υ 01 φ • H • H
3 ro ß :3 ro 73 ß •H TJ P φ υ CO X H o 3 X ro P Φ ß CO ß 4-J φ ß CO 3 τs TJ O3 ro ß: 3 ro 73 ß • H TJ P φ υ CO X H o 3 X ro P Φ ß CO ß 4-J φ ß CO 3 τs TJ O
P 3 P 73 3 4-1 ß Φ D-4 •H P Φ α CC ro ro M H P 3 ^ 3 •H H ro H NP 3 P 73 3 4-1 ß Φ D-4 • HP Φ α CC ro ro M HP 3 ^ 3 • H H ro HN
Φ X α ß 4-1 ro ro X φ ro g Cn a> 4-1 •H 3 Φ P 4-J < Φ ro Q 01 01 Φ -P XΦ X α ß 4-1 ro ro X φ ro g Cn a> 4-1 • H 3 Φ P 4-J <Φ ro Q 01 01 Φ -P X
H 73 P Φ Φ ε P co α X 3 CO ß Cd TJ 01 co X X CO co P 0 X CO X α H 73 P Φ Φ ε P co α X 3 CO ß Cd TJ 01 co XX CO co P 0 X CO X α
CO P Φ co CO Φ P Φ φ φ co 4-1 ro Φ -ro Cd ß ro ß P :3 H P 4-1 ß • O u CO •HCO P Φ co CO Φ P Φ φ φ co 4-1 ro Φ -ro Cd ß ro ß P: 3 HP 4-1 ß • O u CO • H
H φ •H X5 •H Φ 0 ß X ß φ •H P τs 4-1 Φ Xi Φ Φ 44 Φ 3 ro CO > ro Φ 0ι P ß 3 O φ 4-1 •H υ •H 01 Φ cG ß ε P X α 73 X CO 4-J 73 ro P 3 1 P ß P φ ro φ 3 CO Φ ß Cd H φ P Φ 4-> ro φ Φ υ Φ υ 3 P 0 H ro φ φ 73 TJ H φ • H X5 • H Φ 0 ß X ß φ • HP τs 4-1 Φ Xi Φ Φ 44 Φ 3 ro CO> ro Φ 0ι P ß 3 O φ 4-1 • H υ • H 01 Φ cG ß ε PX α 73 X CO 4-J 73 ro P 3 1 P ß P φ ro φ 3 CO Φ ß Cd H φ P Φ 4-> ro φ Φ υ Φ υ 3 P 0 H ro φ φ 73 TJ
H X Φ Φ co 3 N •H Φ ß 01 P 73 •H CO J H •H Φ ε co 73 o < ß HX Φ Φ co 3 N • H Φ ß 01 P 73 • H CO J H • H Φ ε co 73 o <ß
4-> Φ •H < P P . Q, ß Φ 3 TJ ro P O X ß ε Φ X 1 CD Φ X φ r~ Φ 4->4-> Φ • H <P P. Q, ß Φ 3 TJ ro P O X ß ε Φ X 1 CD Φ X φ r ~ Φ 4->
© •H •H τs Φ φ Φ 4-1 O φ X N < X Φ ß ro υ 3 P 0-, P u X ß o 4-J 0ι T ß TJ •H© • H • H τs Φ φ Φ 4-1 O φ X N <X Φ ß ro υ 3 P 0-, P u X ß o 4-J 0ι T ß TJ • H
90 ß P Φ •H co X X X X ß TJ H CQ ro φ o Φ •H •H • -H •^ ß Φ ß ε90 ß P Φ • H co XXXX ß TJ H CQ ro φ o Φ • H • H • -H • ^ ß Φ ß ε
Xi N X α φ υ u υ ß υ Φ Φ ß •H 2 ß > TJ Φ Φ X φ ^ ß 3 Φ X roXi NX α φ υ u υ ß υ Φ Φ ß • H 2 ß> TJ Φ Φ X φ ^ ß 3 Φ X ro
© υ P u CO 73 •H •H •H φ •H O 73 Φ P 4-> X X . Φ φ α P 4-J φ τs υ X ß© υ P u CO 73 • H • H • H φ • H O 73 Φ P 4-> X X. Φ φ α P 4-J φ τs υ X ß
4 P CO φ P •H ß Φ Φ P X Φ CO 0 X φ P u υ ß Φ X -H X •H co X ro σ co τs ß <H CO P 04 P CO φ P • H ß Φ Φ P X Φ CO 0 X φ P u υ ß Φ X -H X • H co X ro σ co τs ß <H CO P 0
© 3 Φ Xi 3 Φ φ α α CU υ Φ X υ X Φ ro •H Φ •H 0 Φ υ Φ φ u +J oo 3 Φ Φ Φ H o •H o N X υ TJ X 01 o O CO co 01 73 4J CO υ ≥ 2 CO co 73 co X CO CQ 01 o co CQ 3 X 0ι > X© 3 Φ Xi 3 Φ φ α α CU υ Φ X υ X Φ ro • H Φ • H 0 Φ υ Φ φ u + J oo 3 Φ Φ Φ H o • H o NX υ TJ X 01 o O CO co 01 73 4J CO υ ≥ 2 CO co 73 co X CO CQ 01 o co CQ 3 X 0ι> X
Figure imgf000022_0001
Figure imgf000022_0001
dernfalls wird die Steuerung an das Betriebssystem abgegeben, das daraufhin eine Ausnahmebehandlung durchführt und unter Berücksichtigung der Liste in dem EEPROM 420 für die logische Adresse eine physikalische in die Nachschlagtabelle 470 ein- trägt. Bei jedem Zugriff auf den EEPROM 420 wird die Überprüfungseinrichtung 460 aktiv, die dann mittels einem Prüfsummenvergleich die der logischen Adresse entsprechenden Speicherzellen auf ihre Funktionstüchtigkeit untersucht, wobei, falls ein Fehler festgestellt wird, die physikalische Defekt- adresse vermerkt wird, der logischen Adresse in der Tabelle 470 eine andere gültige Adresse zugewiesen wird, und die physikalische Defektadresse für zukünftige Ausblendungen vermerkt und berücksichtigt wird.otherwise control is given to the operating system, which then executes an exception handling and, taking into account the list in the EEPROM 420, enters a physical address table 470 for the logical address. Each time the EEPROM 420 is accessed, the checking device 460 becomes active, which then checks the functionality of the memory cells corresponding to the logical address by means of a checksum comparison, and if an error is found, the physical defect address is noted, the logical address in the Another valid address is assigned to table 470, and the physical defect address is noted and taken into account for future blanking.
Bezugnehmend auf die vorhergehende Beschreibung des Chipaufbaus von Fig. 6 wird darauf hingewiesen, daß die Abspeicherung der die Abbildung des logischen Adreßraumes in den physikalischen Adreßraum definierenden Einträge in der Übersetzungsnachschlagtabelle 470 lediglich ein exemplarisches Aus- führungsbeispiel darstellt und ferner anders ausgeführt sein kann. Ein Teil der Übersetzungsnachschlagtabelle kann sich beispielsweise in einem Cache-Speicher befinden, der beispielsweise als TLB (TLB = translation look-aside buffer = Übersetzungsvorgriffpuffer) bezeichnet wird. Befindet sich ein Startadressenpaar für eine Seite und den zugeordneten Seitenabschnitt in dem TLB, so erfolgt die Berechnung der Adreßabbildung aufgrund des schnellen Cache-Zugriffes Hardware-beschleunigt. Befindet das Startadressenpaar für eine logische Seite jedoch nicht in dem TLB, so erfolgt bei einem speziellen Ausführungsbeispiel entweder ein Trap- bzw. Fehlschlag-Vorgang, der die Steuerung an das Betriebssystem abgibt, um das gesuchte Adreßtupel in dem TLB nachzutragen, o- der an eine zusätzliche Hardware (nicht gezeigt) , die vom Chipkartenhersteller entworfen ist, um anhand einer logischen Adresse die physikalische zu berechnen, oder ein Ladevorgang, bei dem von einer in einem nicht flüchtigen Speicher gespei- cherten Übersetzungsnachschlagtabelle die benötigten Daten in den TLB automatisch nachgeladen werden.6, it is pointed out that the storage of the entries in the translation look-up table 470 defining the mapping of the logical address space into the physical address space merely represents an exemplary embodiment and can also be carried out differently. Part of the translation look-up table can, for example, be located in a cache memory, which is referred to, for example, as a TLB (TLB = translation look-aside buffer). If there is a start address pair for a page and the assigned page section in the TLB, the calculation of the address mapping is hardware-accelerated due to the fast cache access. However, if the pair of start addresses for a logical page is not in the TLB, then in a special exemplary embodiment either a trap or failure process is carried out, which the controller passes on to the operating system in order to add the desired address tuple in the TLB, or on an additional hardware (not shown) designed by the chip card manufacturer to calculate the physical one based on a logical address, or a loading process in which a memory stored in a non-volatile memory secured translation look-up table, the required data is automatically reloaded into the TLB.
Die Übersetzungsnachschlagtabelle 470 kann entweder selbst in einem nicht flüchtigen Speicher, wie z.B. EEPROM oder einem Flash-Speicher, gespeichert sein, oder ist in einem flüchtigen Speicher, wie z.B. einem RAM, gespeichert und wird auf jede Initialisierung hin bei Erfassung der defekten Speicherzellen erneut verändert und aufgebaut.The translation lookup table 470 can either be in non-volatile memory, e.g. EEPROM or a flash memory, or is in volatile memory, e.g. a RAM, is saved and is changed and rebuilt upon each initialization upon detection of the defective memory cells.
Um die Übersetzungsnachschlagtabelle 470, die selbst in einem nicht flüchtigen Speicher gespeichert ist, vor einem Informationsverlust durch defekte Speicherzellen zu schützen, kann bei einem Speicherverlust in einer Zeile der Übersetzungs- nachschlagtabelle das Rekonstruieren des entsprechenden Eintrags in der Zeile, das Kopieren des Eintrags in eine andere Zeile der Übersetzungsnachschlagtabelle und das Markieren der defekten Zeile als nicht funktionstüchtig vorgesehen sein. Der Grund für die einfache Handhabung in dem Fall von defek- ten Speicherzellen in der Übersetzungsnachschlagtabelle besteht darin, daß es bei der Übersetzungsnachschlagtabelle nicht auf die Reihenfolge der Einträge ankommt.In order to protect the translation look-up table 470, which is itself stored in non-volatile memory, from a loss of information due to defective memory cells, in the event of a memory loss in a row of the translation look-up table, the corresponding entry in the row can be reconstructed, the entry copied into a row other line of the translation look-up table and marking the defective line as inoperable. The reason for the simple handling in the case of defective memory cells in the translation look-up table is that the order of the entries does not matter in the translation look-up table.
Bezugnehmend auf Fig. 6 wird darauf hingewiesen, daß ein Teil des logischen Adreßraumes, wie z.B. derjenige, der dem RAMReferring to Figure 6, it is noted that part of the logical address space, e.g. the one who got the RAM
410 zugeordnet ist, zu einer direkten, physikalischen Adressierung unter Umgehung der Übersetzungseinrichtung verwendet werden kann.410 is assigned, can be used for direct, physical addressing bypassing the translation device.
Bezugnehmend auf die vorhergehende Beschreibung wird darauf hingewiesen, daß die im vorhergehenden beschriebenen Schritte entweder durch Hardware oder durch eine auf der Chipkarte lauffähige Software implementiert sein können. Ferner wird darauf hingewiesen, daß die Anwendung der vorliegenden Erfin- düng nicht auf Chipkarten begrenzt ist, sondern daß die vorliegenden Erfindung ferner auch auf andere Geräte anwendbar ist, bei denen anfällige Speicher verwendet werden, wie z.B. bei einem TPM. With reference to the preceding description, it is pointed out that the steps described above can be implemented either by hardware or by software that can be run on the chip card. Furthermore, it is pointed out that the application of the present invention is not limited to chip cards, but that the present invention is also applicable to other devices that use vulnerable storage, such as a TPM.

Claims

Patentansprüche claims
1. Verfahren zum Steuern einer Abbildung einer logischen Adresse eines logischen Adreßraumes auf eine physikalische eines physikalischen Adreßraumes (20) , wobei das Verfahren folgende Schritte aufweist:1. A method for controlling a mapping of a logical address of a logical address space to a physical one of a physical address space (20), the method comprising the following steps:
Ermitteln (210) einer ersten physikalischen Adresse und einer zugehörigen Speicherzelle, die über die Abbildung (30) einer logischen Adresse zugeordnet sind;Determining (210) a first physical address and an associated memory cell which are assigned to a logical address via the mapping (30);
Überprüfen (220) der Speicherzelle auf ihre Funktionstüchtigkeit hin; undChecking (220) the memory cell for functionality; and
falls der Schritt des Überprüfens ergibt, daß die Speicherzelle nicht funktionstüchtig ist, Ändern (240) der Abbildung (30), so daß die logische Adresse auf eine zweite physikalische Adresse in dem physikalischen Adreßraum (20) abgebildet ist.if the step of checking reveals that the memory cell is not functional, changing (240) the map (30) so that the logical address is mapped to a second physical address in the physical address space (20).
2. Verfahren gemäß Anspruch 1, bei dem der physikalische Adreßraum (20) in Seitenabschnitte und der logische Adreßraum2. The method of claim 1, wherein the physical address space (20) in page sections and the logical address space
(10) in Seiten unterteilt ist, wobei jede physikalische Adresse einem Seitenabschnitt und jede logische Adresse einer Seite zugeordnet ist, wobei die Abbildung eine seitenweise(10) is divided into pages, each physical address being assigned to a section of a page and each logical address being assigned to a page, the mapping being a page by page
Abbildung ist, die Seiten auf Seitenabschnitte abbildet, und wobei die Seitengröße gleich der Seitenabschnittgröße ist.Figure is that maps pages to page sections and the page size is equal to the page section size.
3. Verfahren gemäß Anspruch 2, bei dem die Seitenabschnitt- große zwischen 32 und 128 Byte beträgt.3. The method of claim 2, wherein the page section size is between 32 and 128 bytes.
4. Verfahren gemäß einem der Ansprüche 1 bis 3, bei dem der Schritt des Änderns (240) der Abbildung das Eintragen der logischen Adresse zusammen mit der zweiten physikalischen Adresse in einer Übersetzungsnachschlagtabelle (470) aufweist . 4. The method according to any one of claims 1 to 3, wherein the step of changing (240) the mapping comprises entering the logical address together with the second physical address in a translation look-up table (470).
5. Verfahren gemäß einem der Ansprüche 1 bis 4, bei dem die Abbildung für diejenigen logischen Adressen, für die die Abbildung nicht geändert worden ist, eine Identitätsabbildung ist, so daß dieselben identisch zu den physikalischen Adres- sen sind, auf die dieselben abgebildet werden.5. The method according to any one of claims 1 to 4, wherein the mapping for those logical addresses for which the mapping has not been changed is an identity mapping so that they are identical to the physical addresses to which they are mapped ,
6. Verfahren gemäß einem der Ansprüche 1 bis 5, bei dem die Schritt des Ermitteins (210) und des Überprüfens (220) bei einer Initialisierung für alle logischen Adressen in dem lo- gischen Adreßraum (10) durchgeführt werden.6. The method according to any one of claims 1 to 5, in which the steps of determining (210) and checking (220) are carried out during initialization for all logical addresses in the logical address space (10).
7. Verfahren gemäß einem der Ansprüche 1 bis 5, bei dem die Schritte des Ermitteins (210) und des Überprüfens (220) auf einen Lese-, Schreib- oder Ausführvorgang bezüglich der logi- sehen Adresse hin durchgeführt werden.7. The method as claimed in one of claims 1 to 5, in which the steps of determining (210) and checking (220) are carried out in response to a read, write or execute operation with regard to the logical address.
8. Verfahren gemäß einem der Ansprüche 1 bis 7, bei dem der Schritt des Überprüfens (220) das Vergleichen des Inhalts der Speicherzelle mit einem Fehlerkorrekturcode aufweist.8. The method according to any one of claims 1 to 7, wherein the step of checking (220) comprises comparing the content of the memory cell with an error correction code.
9. Verfahren gemäß einem der Ansprüche 1 bis 8, bei dem der physikalische Speicher ein EEPROM oder ein Flash-Speicher ist.9. The method according to any one of claims 1 to 8, wherein the physical memory is an EEPROM or a flash memory.
10. Verfahren gemäß einem der Ansprüche 1 bis 9, bei dem den Seitenabschnitten ein Etikett zugeordnet ist, das die Funktionstüchtigkeit der Speicherzellen des Seitenabschnitts, eine Gültigkeit von in den Speicherzellen gespeicherten Daten, einen Fehlerkorrekturcode und/oder Zugriffsrechte aufweist.10. The method according to any one of claims 1 to 9, wherein the page sections are assigned a label which has the functionality of the memory cells of the page section, a validity of data stored in the memory cells, an error correction code and / or access rights.
11. Verfahren gemäß einem der Ansprüche 1 bis 10, bei dem nach dem Schritt (220) des Überprüfens der Speicherzelle das Speichern der physikalischen Adresse in einer Liste von phy¬ sikalischen Adressen, die defekten Speicherzellen zugeordnet sind, stattfindet, falls die Speicherzelle nicht funktionstüchtig ist, und bei dem der Schritt des Änderns (240t zur Laufzeit durchgeführt wird. 11. The method according to any one of claims 1 to 10, wherein after the step (220) of verifying the memory cell associated with the storage of the physical address ical in a list of phy ¬ addresses the defective memory cells, takes place, if the memory cell non-functional and in which the step of changing (240t is carried out at runtime.
12. Vorrichtung zum Steuern der Abbildung einer logischen Adresse eines logischen Adreßraumes (10) auf eine physikalische Adresse in einem physikalischen Adreßraum (20) , wobei die Vorrichtung folgende Merkmale aufweist:12. Device for controlling the mapping of a logical address of a logical address space (10) to a physical address in a physical address space (20), the device having the following features:
eine Einrichtung zum Ermitteln einer ersten physikalischen Adresse und einer zugehörigen Speicherzelle, die über die Abbildung (30) einer logischen Adresse zugeordnet sind;means for determining a first physical address and an associated memory cell which are assigned to a logical address via the mapping (30);
eine Einrichtung zum Überprüfen (220) der Speicherzelle auf ihre Funktionstüchtigkeit hin; undmeans for checking (220) the memory cell for proper functioning; and
eine Einrichtung zum Ändern (240) der Abbildung (30), so daß die logische Adresse auf eine zweite physikalische Adresse in dem physikalischen Adreßraum (20) abgebildet ist, falls die Einrichtung zum Überprüfen feststellt, daß die Speicherzelle nicht funktionstüchtig ist. means for changing (240) the map (30) so that the logical address is mapped to a second physical address in the physical address space (20) if the means for checking determines that the memory cell is not functional.
PCT/EP2002/006145 2001-06-05 2002-06-04 Method and device for masking out non-serviceable memory cells WO2002099809A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE2001127194 DE10127194B4 (en) 2001-06-05 2001-06-05 Method and device for hiding non-functional memory cells
DE10127194.8 2001-06-05

Publications (2)

Publication Number Publication Date
WO2002099809A2 true WO2002099809A2 (en) 2002-12-12
WO2002099809A3 WO2002099809A3 (en) 2003-10-23

Family

ID=7687205

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2002/006145 WO2002099809A2 (en) 2001-06-05 2002-06-04 Method and device for masking out non-serviceable memory cells

Country Status (3)

Country Link
DE (1) DE10127194B4 (en)
TW (1) TW559822B (en)
WO (1) WO2002099809A2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101292229B (en) * 2005-12-28 2012-05-30 富士通株式会社 Method and apparatus for controlling storage
CN113312206A (en) * 2020-04-09 2021-08-27 阿里巴巴集团控股有限公司 Data storage fault processing method and device, storage medium and processor
WO2024077825A1 (en) * 2022-10-09 2024-04-18 声龙(新加坡)私人有限公司 Data storage method and apparatus based on ethash algorithm, device, and storage medium

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004008180A1 (en) * 2004-02-19 2005-09-01 Giesecke & Devrient Gmbh Secure operating method for a portable data carrier, especially a chip card, in which operating parameter values are checked during a memory access or data output process to see if their values have been changed
KR100606173B1 (en) 2004-08-24 2006-08-01 삼성전자주식회사 Method and apparatus for verifying an initial state of non-volatile memory device
DE102004059206B4 (en) * 2004-12-09 2016-03-31 Polaris Innovations Ltd. Memory device and addressing of memory cells
US7921263B2 (en) * 2006-12-22 2011-04-05 Broadcom Corporation System and method for performing masked store operations in a processor

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999038066A1 (en) * 1998-01-22 1999-07-29 Memory Corporation Plc Flash memory system
US6163490A (en) * 1998-02-25 2000-12-19 Micron Technology, Inc. Semiconductor memory remapping

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999038066A1 (en) * 1998-01-22 1999-07-29 Memory Corporation Plc Flash memory system
US6163490A (en) * 1998-02-25 2000-12-19 Micron Technology, Inc. Semiconductor memory remapping

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101292229B (en) * 2005-12-28 2012-05-30 富士通株式会社 Method and apparatus for controlling storage
CN113312206A (en) * 2020-04-09 2021-08-27 阿里巴巴集团控股有限公司 Data storage fault processing method and device, storage medium and processor
WO2024077825A1 (en) * 2022-10-09 2024-04-18 声龙(新加坡)私人有限公司 Data storage method and apparatus based on ethash algorithm, device, and storage medium

Also Published As

Publication number Publication date
DE10127194A1 (en) 2002-12-19
DE10127194B4 (en) 2008-08-21
TW559822B (en) 2003-11-01
WO2002099809A3 (en) 2003-10-23

Similar Documents

Publication Publication Date Title
DE102005022893B3 (en) Memory card e.g. multi media card, for data storage, has memory management unit providing open and safe interface to access memory blocks and protocol adapter accessing contents of card from host system connected with adapter by interface
EP0128362B1 (en) Circuit arrangement comprising a memory and an access control unit
DE69230211T2 (en) Integrated memory, administrative procedures and resulting information system
WO2010009789A1 (en) Loading and updating an application requiring personalization
DE102009033961A1 (en) Emulation of a once programmable memory
EP1358558B1 (en) Microprocessor circuit for data carriers and a method for organising access to data stored in a memory
EP1611510B1 (en) Controlled execution of a program used for a virtual machine on a portable data carrier
WO2002099809A2 (en) Method and device for masking out non-serviceable memory cells
EP0127809B1 (en) Circuit arrangement comprising a memory and an access control unit
EP1352318B1 (en) Microprocessor circuit for portable data carriers
DE60224937T2 (en) METHOD AND ARRANGEMENT FOR ASSOCIATING APPROVED APPLET FILES
DE102007016170A1 (en) Security module for a franking machine
DE19939280A1 (en) Secure personalization of chip cards
EP1771788B1 (en) Method and device for storing consistent memory contents in redundant memory units
DE19716015A1 (en) Introducing information on a chip card
EP1591864A2 (en) Method for protecting data on a data carrier against DFA - attacks
DE112017008201B4 (en) Information processing apparatus, information processing method and information processing program
DE102007041873A1 (en) Patch installing method for e.g. object oriented programming language card in mobile phone, involves forming class hierarchy using classes in program package, and including patch in class hierarchy as subclass of one of classes
DE60216106T2 (en) PROTECTED READING OF COMPUTER COMMANDS IN A DATA PROCESSING SYSTEM
DE102023102579A1 (en) DATA PROCESSING DEVICE AND METHOD FOR STORING DATA
EP1639466B1 (en) Failure detection method and device for a cache memory, and corresponding cache memory
EP3876123B1 (en) Arrangement and operating method for a secure start-up of an electronic device
DE19925195A1 (en) Memory management method for monitoring access to data or programs e.g. for chip card, by allocating attributes to memory addresses to permit or deny access
DE102017011957A1 (en) PROCESS AND SYSTEM FOR RELIABLE SOFTWARE UPDATES IN EMBEDDED SYSTEMS INVOLVED IN ELECTRICAL INTERRUPTIONS
DE10247794A1 (en) Management of false try counter in portable data medium involves writing entry into security buffer corresponding to new counter state after false try, so value written to counter during restoration

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SD SE SG SI SK SL TJ TM TN TR TT TZ UA UG US UZ VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
WA Withdrawal of international application
WWW Wipo information: withdrawn in national office

Ref document number: 2002314138

Country of ref document: AU

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642