DE10127194A1 - Verfahren und Vorrichtung zum Ausblenden von nicht funktionstüchtigen Speicherzellen - Google Patents

Verfahren und Vorrichtung zum Ausblenden von nicht funktionstüchtigen Speicherzellen

Info

Publication number
DE10127194A1
DE10127194A1 DE2001127194 DE10127194A DE10127194A1 DE 10127194 A1 DE10127194 A1 DE 10127194A1 DE 2001127194 DE2001127194 DE 2001127194 DE 10127194 A DE10127194 A DE 10127194A DE 10127194 A1 DE10127194 A1 DE 10127194A1
Authority
DE
Germany
Prior art keywords
physical
logical address
logical
address space
physical address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE2001127194
Other languages
English (en)
Other versions
DE10127194B4 (de
Inventor
Heimo Hartlieb
Christian May
Gerd Dirscherl
Ralph Ledwa
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technologies AG
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
Priority to DE2001127194 priority Critical patent/DE10127194B4/de
Priority to PCT/EP2002/006145 priority patent/WO2002099809A2/de
Priority to TW91112135A priority patent/TW559822B/zh
Publication of DE10127194A1 publication Critical patent/DE10127194A1/de
Application granted granted Critical
Publication of DE10127194B4 publication Critical patent/DE10127194B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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

Landscapes

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

Abstract

Ein erfindungsgemäßes Verfahren zum Steuern einer Abbildung einer logischen Adresse eines logischen Adreßraumes auf eine physikalische eines physikalischen Adreßraumes (20) umfaßt das Ermitteln einer ersten physikalischen Adresse und einer zugehörigen Speicherzelle, die über die Abbildung (30) einer logischen Adresse zugeordnet sind, das Überprüfen der Speicherzelle auf ihre Funktionstüchtigkeit hin und das Ändern der Abbildung (30), falls der Schritt des Überprüfens ergibt, daß die Speicherzelle nicht funktionstüchtig ist, so daß die logische Adresse auf eine zweite physikalische Adresse in dem physikalischen Adreßraum (20) abgebildet ist. Auf diese Weise wird der Zugriff auf einen physikalischen Speicher mittels logischer Adressen durchgeführt, die durch eine Abbildung auf die physikalischen Adressen des physikalischen Speichers abgebildet werden, d. h. die virtuelle Speicheradressierung, verwendet, um nicht funktionstüchtige Speicherzellen auf einfache und effektive Weise auszublenden.

Description

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- Speicher auszublenden. Insbesondere bezieht sich die vorlie­ genden Erfindung auf die Ausblendung von nicht funktionstüch­ tigen Speicherzellen eines nicht flüchtigen Speichers von Si­ cherheitsmodulen, wie z. B. Chipkarten, Multiapplikationschip­ karten, Smartcards usw.
Chipkarten finden heutzutage in fast allen Bereichen des All­ tags 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 Zahlungsver­ kehrs und der Identifikation besonders hohe Anforderungen an die Fähigkeiten einer Chipkarte gestellt. So müssen Chipkar­ ten heutzutage ein hohes Maß an Sicherheit, Rechenleistung und Miniaturisierung aufweisen. Verschärft werden diese An­ forderungen an die Chipkarten bei der Chipkartenherstellung dadurch, daß dieselben als Massenprodukt kostengünstig her­ stellbar und dieselben klein sein müssen, und daß bei mobilen Anwendungen der Leistungsverbrauch begrenzt ist.
Um eine hohe Sicherheit zu gewährleisten, so daß beispiels­ weise ein unbefugter Zugriff auf die auf der Chipkarte ge­ speicherten 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- Smartcard eine Smartcard-ID, eine Kunden-ID und sonstige kun­ denspezifische Informationen, zu verhindern, müssen in den Chipkarten heutzutage aufwendige Kryptographiealgorithmen im­ plementiert 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, sym­ metrische 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 Si­ cherheit eine beträchtliche Rechenleistung erforderlich ist.
Bei Verwendung des RSA-Algorithmus weisen die Operanden bei­ spielsweise meist eine Länge von 1024 oder 2048 Bits auf. Einer problemlosen Realisierung von sicheren Chipkarten ste­ hen vor allem die hohen Anforderungen an die Miniaturisierung und der niedrige maximale Leistungsbedarf bei mobilen Anwen­ dungen 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 Re­ chenleistung 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­ ler Rechenoperationen für die Kryptographiealgorithmen vorge­ sehen sind, wie z. B. zur Durchführen einer modularen oder a­ rithmetischen Rechenoperation, einer Hash-Wertbildung oder dergleichen.
Durch die zunehmende Entwicklung in der Halbleitertechnologie in Hinblick auf den Integrationsgrad und den Leistungsver­ brauch 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 Arbeits­ speicher und einen NVM (NVM = non-volatile memory = nicht- flüchtiger Speicher) zum Speichern der verschiedenen Programme für die verschiedenen auf der Chipkarte lauffähigen Appli­ kationen.
Ein Problem, das sich bei den neueren Chipkarten ergibt, be­ steht darin, daß die Speicherzellen der nicht flüchtigen Speicher, in denen die Programme der verschiedenen Applika­ tionen sowie die chipkartenspezifischen Informationen gespei­ chert sind, eine begrenzte Lebensdauer aufweisen und nach ei­ ner gewissen Zeitdauer ihre Funktionstüchtigkeit verlieren, wobei die Fehler über Prüfsummen erkannt werden. Der eintre­ tende Informationsverlust muß durch Software vom auf der Chipkarte laufenden Programm durch geeignete Maßnahmen ausge­ schlossen werden.
Die Aufgabe der vorliegenden Erfindung besteht darin, eine Vorrichtung und ein Verfahren zu schaffen, die einem auf ei­ nen Speicher zugreifenden Programm einen fehlerfreien, linea­ ren Adreßraum des Speichers anbietet, selbst wenn physikali­ sche Speicherzellen ausgefallen bzw. defekt sind.
Diese Aufgabe wird durch ein Verfahren gemäß Anspruch 1 und eine Vorrichtung gemäß Anspruch 12 gelöst.
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 Speicher­ adressierung, nicht funktionstüchtige Speicherzellen auf ein­ fache und effektive Weise ausgeblendet werden können. Das Problem des Ersetzens defekter physikalischer Speicherberei­ che 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-funktions­ fä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 physika­ lische 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 Pro­ gramme 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än­ dert werden.
Der physikalische Speicher ist vorzugsweise ein nicht flüch­ tiger Speicher, wie z. B. ein EEPROM oder ein Flash-Speicher, wie er bei Sicherheitsmodulen, wie z. B. Chipkarten oder Smartcards, häufig vorhanden ist, wobei bei diesen Speichern die Betriebszeit bzw. die Lebensdauer der Speicherzellen re­ lativ 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 ein­ getragen 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 die­ sem 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 Überset­ zungsnachschlagtabelle eingetragen bzw. der bestehende Ein­ trag der logischen Adresse verändert oder ersetzt. Bei einem Zugriff auf den physikalischen Speicher durch einen Lese-, Schreib- oder Ausführvorgang bezüglich einer logischen Adres­ se 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 Speicherzel­ len 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.
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 ent­ sprechende logische Adresse eine physikalische in die Tabelle einträgt. Logische Adressen, die auf "defekte" physikalische Adressen, d. h. physikalische Adressen, die defekten Speicher­ zellen zugeordnet sind, werden neuen physikalischen Adressen zugewiesen, die auf einen nicht defekten Speicher bezogen sind.
Bei beiden Ausführungsbeispielen wird, um einerseits die Ver­ waltung und den damit verbundenen Speicherplatz der Überset­ zungstabelle so gering wie möglich zu halten, und um anderer­ seits bei dem Ausblenden einer defekten bzw. nicht funktions­ tüchtigen Speicherzelle zusammen mit derselben möglichst we­ nige funktionstüchtige Speicherzellen verwerfen bzw. "ver­ schenken" 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 Speicherab­ schnitts wird deshalb eine physikalische Adresse derart zuge­ ordnet, 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 lo­ gischen Adreßraum in den physikalischen Adreßraum ergibt, bei der Seiten- bzw. Speicherabschnitte (page frames) des physi­ kalischen Adreßraumes einer vorbestimmten Größe auf Seiten (pages) des logischen Adreßraumes abgebildet werden.
Die Seitenabschnittgröße beträgt für einen möglichst günsti­ gen 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.
Die Überprüfung der Speicherzellen des physikalischen Spei­ chers kann beispielsweise entweder erst unmittelbar vor einem Zugriff, wie z. B. einen Lese-, Schreib- oder Ausführungsvor­ gang, 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.
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.
Gemäß einem speziellen Ausführungsbeispiel ist der physikali­ sche Speicher auf einer Chipkarte angeordnet, die für mehrere Applikationen vorgesehen ist. Jeder Applikation ist ein eige­ ner vorbestimmter Abschnitt des logischen Adreßraums zugeord­ net, 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 Spei­ cherzeilen eines Speicherabschnittes einer Applikation nicht durch das Ausblenden oder Ersetzen einer physikalischen Ad­ resse durch eine andere gestört.
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.
Die Erfindung ermöglicht folglich den Aufbau eines logischen Adreßraumes aus ausschließlich funktionierendem physikali­ schen 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.
Weitere Weiterbildungen und Variationen der vorliegenden Er­ findung sind in den beiliegenden Ansprüchen definiert, bei denen die angegebenen Verfahrensschritte bei einer erfin­ dungsgemäßen Vorrichtung durch entsprechende Einrichtungen durchgeführt werden können, die beispielsweise in Software oder Hardware implementiert sein können.
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend unter Bezugnahme auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
Fig. 1 eine schematische Skizze, die die Abbildung eines logischen Adreßraumes in einen physikalischen Adreßraum veranschaulicht;
Fig. 2 ein Flußdiagramm, das eine Überprüfung der Spei­ cherzellen eines nicht flüchtigen Speichers auf ei­ ne Initialisierung hin veranschaulicht;
Fig. 3 ein Flußdiagramm, das den Zugriff auf einen nicht flüchtigen Speicher auf einen Lese-, Schreib- oder Ausführ-Vorgang hin gemäß einem ersten Ausführungs­ beispiel darstellt;
Fig. 4 ein Flußdiagramm, das den Zugriff auf einen nicht flüchtigen Speicher auf einen Lese-, Schreib- oder Ausführ-Vorgang hin gemäß einem zweiten Ausfüh­ rungsbeispiel darstellt;
Fig. 5 ein Flußdiagramm, das eine Überprüfung der Spei­ cherzellen eines nicht flüchtigen Speichers auf ei­ ne Initialisierung hin gemäß einem speziellen Aus­ führungsbeispiel veranschaulicht; und
Fig. 6 ein Blockdiagramm, das die Anordnung einer Überset­ zungseinrichtung in einer Chipkarte gemäß einem Ausführungsbeispiel der vorliegenden Erfindung dar­ stellt.
Bevor bezugnehmend auf Fig. 2 bis 6 Ausführungsbeispiele der vorliegenden Erfindung beschriebenen werden, wird bezugneh­ mend 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 ver­ wendet wird, um Defekte bzw. nicht funktionstüchtige Spei­ cherzellen "auszublenden".
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 ei­ nen Speicher enthaltenden Vorrichtungen verwendet werden kann.
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 Seiten­ abschnitten, die als Rechtecke dargestellt und spaltenweise angeordnet sind. Durch Pfeile 30 soll veranschaulicht werden, welche Seiten des logischen Adreßraumes auf welchen Seitenab­ schnitt des physikalischen Adreßraumes 20 abgebildet werden. Jeder Pfeil fußt an einer unterschiedlichen Seite des logi­ schen Adreßraumes und zeigt auf einen im Regelfall unter­ schiedlichen Seitenabschnitt des physikalischen Adreßraumes 20.
Wie es in Fig. 1 dargestellt ist, wird nicht jede Seite des logischen Adreßraumes 10 auf einen Seitenabschnitt des physi­ kalischen Adreßraumes 20 abgebildet. Vielmehr werden nur die­ jenigen Seiten des logischen Adreßraumes 10 auf einen Seiten­ abschnitt des physikalischen Adreßraumes 20 abgebildet, die eine Adresse des logischen Adreßraumes bzw. Speichers enthal­ ten, 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äch­ lich physikalisch gespeichert.
Wie es aus Fig. 1 ersichtlich ist, weisen die logische Adres­ se und die dazugehörige physikalische Adresse bis auf die Abb. 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 Da­ ten 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.
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 er­ stellt werden kann. Der logische Adreßraum 10 ist in einzelne Teile unterteilt, die wiederum den unterschiedlichen Applika­ tionen zugewiesen sind. Ein in dem logischen Adreßraum 10 zu­ sammenhängender Teil einer Applikation kann aufgrund der Abb. 30 folglich in beliebiger Reihenfolge in dem physika­ lischen 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 physi­ kalischen Adreßraumes 20 in Seiten bzw. Seitenabschnitte er­ folgt, wie erwähnt, durch Unterteilung der beiden Adreßräume 10 und 20 in gleich große, überlappungsfreie Speicherberei­ che, wobei der einem Seitenabschnitt in dem physikalischen 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 Ad­ resse in dem zugehörigen Seitenabschnitt mit einem gleichen Abstand bzw. Versatz von der jeweiligen Startadresse zugeord­ net, so daß jede logische Adresse und jede zugeordnete physi­ kalische Adresse aus dem selben Versatzwert und einer Seiten bzw. Seitenabschnitt-Startadresse besteht.
Einem Seitenabschnitt in dem physikalischen Adreßraum 20 kön­ nen zusätzlich weitere Speicherbits, wie es durch die größere Breite der Rechtecke der physikalischen Seitenabschnitte an­ gezeigt ist, zugeordnet sein, die nicht über das normale Ad­ ressierungsverfahren für die Applikationen zugreifbar sind und auch nicht zur Erweiterung des physikalischen Adreßraumes 20 für Applikationsdaten führen. Diese zusätzlichen Speicher­ bits umfassen beispielsweise Fehlerkorrekturcode- (ECC = er­ ror correction code) Bits, die die Erfassung einer fehlerhaf­ ten 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 je­ weiligen Startadressen einer logischen Seite und eines zuge­ ordneten physikalischen Seitenabschnitts aufweist.
In dem Fall von Fig. 1 enthält ein Eintrag der Seitentabelle beispielsweise die Startadresse der ersten Seite 50 des logi­ schen Adreßraumes 10 sowie die Startadresse des sechsten Seitenabschnitts 60 des physikalischen Adreßraumes 20, wie es durch den Pfeil 70 und die Ziffer "6" in dem Rechteck 50 dar­ gestellt ist. Nicht zugeordnete logische Seiten sind in der Seitentabelle nicht enthalten.
Wie es in Fig. 1 exemplarisch bei der Seite 50 des logischen Adreßraumes 10 gezeigt ist, beträgt die Größe einer Seite ge­ mäß einem Ausführungsbeispiel zwischen 32 und 128 Bytes. Ob­ wohl 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 vorteil­ haft 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 auf­ grund lediglich einer defekten Speicherzelle durch Änderung der Abb. 30 ausgeblendet wird. Insbesondere hängt die Größe der Seiten bzw. Seitenabschnitte von den Betriebszeiten der Speicherzellen ab.
Weitere Vorteile der Verwendung der virtuellen Speicheradres­ sierung 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.
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 seitenwei­ se Abb. 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 Ände­ rung der Abbildung bei einem Zugriff auf die erste logische Seite auf einen anderen Seitenabschnitt des physikalischen Adreßraumes 20 zugreift.
Um es zu ermöglichen, daß sich nach der Umleitung "der Abbil­ dung" die korrekten Daten in dem Seitenabschnitt 90 befinden, sind den Seitenabschnitten des physikalischen Adreßraumes 20 beispielsweise redundante Informationen hinzugefügt, aus de­ nen der Speicherinhalt der defekten Speicherzelle rekonstru­ iert und der gesamte Speicherinhalt des alten Speicherin­ halts, d. h. 60, in den neuen Seitenabschnitt 90 kopiert wer­ den kann. Insbesondere vorteilhaft ist hierbei, daß für die Applikation die lineare Reihenfolge innerhalb des Adreßrau­ mes, 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 Be­ sitz 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ß.
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 an­ deren 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.
Nach einer Initialisierung 200 werden in einem Schritt 210 die physikalische Adresse bzw. die Startadresse des physika­ lischen 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 funktions­ tü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 Ausblendablauf, und es beginnt beispielsweise die Ausführung einer Ap­ plikation.
Bezüglich der vorhergehenden Beschreibung der Fig. 2 wird darauf hingewiesen, daß der Schritt 240 beispielsweise das Ändern oder Ersetzen eines entsprechenden Eintrags der logi­ schen 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 physikali­ schen Adresse umfassen kann.
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 ledig­ lich 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", wo­ durch die defekte Speicherzelle auf eine für die Applikation transparente Weise ausgeblendet wird.
Nachdem von einer Applikation in einem Schritt 300 ein Lese-, Schreib- oder Ausführ-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.
Falls der Schritt 310 ergibt 320, daß ein Eintrag mit der lo­ gischen Adresse vorhanden ist, wird in einem Schritt 330 die­ ser Eintrag gelesen, um die physikalische Adresse zu erhal­ ten. 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.
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, zuge­ griffen und der Lese-, Schreib- oder Ausführ-Vorgang durchge­ führt.
Es wird darauf hingewiesen, daß die Schritte 310 bis 340 für die Applikation quasi unmerklich stattfinden, und daß die Ap­ plikation auch nach dem Ereignis einer defekten Speicherzelle wie gewohnt auf den der Applikation zugewiesenen logischen Adreßraum zugreifen kann.
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 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 aus­ gelöst wird. Bei diesem Ausführungsbeispiel sind nicht nur die geänderten bzw. umgelenkten logischen Adressen in der Nachschlagtabelle gespeichert sondern darüber hinaus auch an­ dere. Die ausführende Hardware erwartet bei diesem Ausführungsbeispiel immer einen Eintrag in der Nachschlagtabelle. Findet sie keinen Eintrag für eine spezielle logische Adres­ se, so wird eine Ausnahmeroutine durch das Betriebssytem durchgeführt, die dann die gesuchte logische Adresse zusammen mit der zugehörigen physikalischen Adresse in die Nachschlag­ tabelle nachträgt.
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 vor­ handen ist, weshalb diese identischen Schritte mit den glei­ chen Bezugszeichen versehen sind und zur Vermeidung von Wie­ derholungen nicht noch mal erörtert werden.
Falls der Schritt 310 also ergibt 320, daß ein Eintrag mit der logischen Adresse vorhanden ist, wird wie bei dem vorher­ gehenden Ausführungsbeispiel in einem Schritt 330 dieser Ein­ trag 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 ei­ nem Schritt 340' von der Hardware anders als bei dem vorher­ gehenden Ausführungsbeispiel eine Ausnahmeroutine des Be­ triebssystems gestartet bzw. es erfolgt ein Trap ans Be­ triebssystem. Im Rahmen der Ausnahmeroutine ermittelt das Be­ triebsystem die fehlende physikalische Adresse, die der ange­ forderten logischen entspricht, und trägt dieselbe zusätzlich in die Nachschlagtabelle ein.
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 physi­ kalische Adresse oder die physikalische Adresse des Eintrags, zugegriffen und der Lese-, Schreib- oder Ausführ-Vorgang durchgeführt.
Bezugnehmend auf Fig. 5 wird im folgenden ein möglicher Ab­ lauf zum Ausblenden defekter Speicherzellen gemäß einem speziellen Ausführungsbeispiel beschrieben, wie er bei der er­ sten 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ß zumin­ dest 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, wo­ bei denselben noch gültige physikalische Seitenabschnitt­ adressen hinzugefügt werden, so daß in dem NVM eine vollstän­ dige Nachschlagtabelle mit logischen Defektadressen und zuge­ hörigen gültigen physikalischen Adressen von intakten Spei­ cherabschnitten entsteht. In dem Fall des Ausführungsbei­ spiels 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 Übersetzungsnach­ schlagtabelle nie eine defekte physikalische Adresse adres­ siert wird. Mit Abschluß von Schritt 372 ist die Initialisie­ rung beendet.
Bezugnehmend auf Fig. 6 wird im folgenden nun ein Blockdia­ gramm einer Schaltung einer Chipkarte gemäß einem Ausfüh­ rungsbeispiel der vorliegenden Erfindung beschrieben, bei dem die Abbildung eines logischen Adreßraumes in den physikali­ schen 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 einen Flash-Speicher, verwendet wird, und bei dem die Aus­ blendung defekter Speicherzellen gemäß dem bezüglich Fig. 4 beschriebenen Ausführungsbeispiel erfolgt.
Bei Fig. 4 sind ein ROM 400, ein RAM 410, ein EEPROM 420 und ein Prozessor 430 über einen Bus 440 miteinander verbunden, der aus einem ersten Teil 440a, an den die Speicher 400-420 angeschlossen sind, und einem zweiten Teil 440b besteht, an den der Prozessor 430 angeschlossen ist. Zwischen die Teile 440a und 440b des Busses 440 ist eine Übersetzungseinrichtung 450 geschaltet, deren Aufgaben darin bestehen, logische Adressen in Transaktionen in physikalische Adressen zu über­ setzen und die Abbildung hinsichtlich des EEPROM 420 zu än­ dern, falls Speicherzellen desselben ihre Funktionstüchtig­ keit verlieren. Mit der Übersetzungseinrichtung 450 sind eine Überprüfungseinrichtung 460 und eine Übersetzungsnachschlag­ tabelle 470 verbunden. Die Überprüfungseinrichtung 460 ist zur Überprüfung der Speicherzellen des EEPROM 420 über die Übersetzungseinrichtung 450 mit demselben verbunden bzw. dem­ selben vorgeschaltet.
Im folgenden wird nun die Funktionsweise des Schaltungsauf­ baus von Fig. 6 beschrieben. In der Übersetzungsnachschlagta­ belle 470 ist in paarweisen Einträgen bzw. Tupeln, die aus einer logischen und einer physikalischen Adresse bestehen, die Abbildung des logischen Adreßraums in den physikalischen Adreßraum gespeichert, wie es im vorhergehenden beschrieben wurde.
Da der EEPROM 420 anfälliger auf Speicherverlust ist als der ROM 400 und der RAM 410, wird bei dem vorliegenden Ausfüh­ rungsbeispiel lediglich der EEPROM 420 auf defekte Speicher­ zellen hin überprüft, weshalb die Überprüfungseinrichtung 460 lediglich mit dem EEPROM 420 verbunden ist. Um die Ausblen­ dung defekter Speicherzellen sicherzustellen, wird unmittel­ bar nachdem die Chipkarte mit einem Terminal in Wechselwir­ kung getreten und von demselben mit Energie versorgt wird, zur Initialisierung softwaremäßig der bezugnehmend auf Fig. 5 beschriebene Ablauf ausgeführt. Die Überprüfung einer Spei­ cherzelle wird unter softwaremäßiger Steuerung hardwaremäßig durch die Überprüfungseinrichtung 460 durchgeführt und umfaßt beispielsweise das Beschreiben der Speicherzelle und nachfol­ gendes Auslesen des Speicherinhaltes derselben, wobei die Speicherzelle funktionstüchtig ist, falls die ausgelesene Speicherinformation der auf dieselbe Gespeicherten ent­ spricht. Eine andere mögliche Überprüfung einer physikali­ schen Speicherbereichs bzw. Seitenabschnitts umfaßt das Ver­ gleichen eines Fehlerkorrekturcodes, der in einer Erweiterung desselben gespeichert ist, nicht auf normale Adressierungsme­ thode zugreifbar ist und nicht zur Erweiterung des physikali­ schen Adreßraumes dient, mit einem aus dem gelesenen Spei­ cherinhalt des physikalischen Speicherabschnittes ermittelten Wert.
Nach der anfänglichen softwaremäßigen Überprüfung befindet sich in dem EEPROM 420 zunächst eine Liste von Defektadres­ sen. Basierend auf der erzeugten Liste wird zur Laufzeit dann die Nachschlagtabelle 470 aufgebaut, in der Paare von logi­ schen und physikalischen Startadressen gespeichert sind, wo­ bei vermieden wird, daß logischen Adressen defekte physikali­ sche Speicherbereiche zugewiesen werden.
Bei der Ausführung einer Applikation, die in dem EEPROM 420 gespeichert ist, finden Transaktionen, wie z. B. ein Lese-, Schreib- oder Ausführ-Vorgang, bezüglich logischer Adresse statt. Um auf eine logische Adresse zuzugreifen, gibt die CPU 430 eine Transaktion bezüglich der logischen Adresse auf dem Bus 440b aus. Die Übersetzungsseinrichtung 470 spricht auf jeden Lese-Vorgang bezüglich des EEPROM 420 an, um unter Ver­ wendung der logischen Adresse als Index in der Nachschlagta­ belle 470 nach zugehörigen physikalischen Adressen zu der lo­ gischen Adresse des Lese-Vorgangs zu suchen. Ist ein Eintrag vorhanden, gibt die Übersetzungseinrichtung 470 die Transak­ tion mit der physikalischen Adresse auf dem Bus 440 auf. Andernfalls 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üfsum­ menvergleich die der logischen Adresse entsprechenden Spei­ cherzellen 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 phy­ sikalische Defektadresse für zukünftige Ausblendungen ver­ merkt und berücksichtigt wird.
Bezugnehmend auf die vorhergehende Beschreibung des Chipauf­ baus von Fig. 6 wird darauf hingewiesen, daß die Abspeiche­ rung der die Abbildung des logischen Adreßraumes in den phy­ sikalischen Adreßraum definierenden Einträge in der Überset­ zungsnachschlagtabelle 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 bei­ spielsweise 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 Hard­ warebeschleunigt. Befindet das Startadressenpaar für eine logische Seite jedoch nicht in dem TLB, so erfolgt bei einem speziellen Ausführungsbeispiel entweder ein Trap- bzw. Fehl­ schlag-Vorgang, der die Steuerung an das Betriebssystem ab­ gibt, 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 gespeicherten Übersetzungsnachschlagtabelle die benötigten Daten in den TLB automatisch nachgeladen werden.
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üchti­ gen Speicher, wie z. B. einem RAM, gespeichert und wird auf jede Initialisierung hin bei Erfassung der defekten Speicher­ zellen erneut verändert und aufgebaut.
Um die Übersetzungsnachschlagtabelle 470, die selbst in einem nicht flüchtigen Speicher gespeichert ist, vor einem Informa­ tionsverlust durch defekte Speicherzellen zu schützen, kann bei einem Speicherverlust in einer Zeile der Übersetzungs­ nachschlagtabelle das Rekonstruieren des entsprechenden Ein­ trags 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 be­ steht darin, daß es bei der Übersetzungsnachschlagtabelle nicht auf die Reihenfolge der Einträge ankommt.
Bezugnehmend auf Fig. 6 wird darauf hingewiesen, daß ein Teil des logischen Adreßraumes, wie z. B. derjenige, der dem RAM 410 zugeordnet ist, zu einer direkten, physikalischen Adres­ sierung unter Umgehung der Übersetzungseinrichtung verwendet werden kann.
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­ dung nicht auf Chipkarten begrenzt ist, sondern daß die vor­ liegenden Erfindung ferner auch auf andere Geräte anwendbar ist, bei denen anfällige Speicher verwendet werden, wie z. B. bei einem TPM.
Bezugszeichenliste
10
Logischer Adressraum
20
Physischer Adressraum
30
Abbildung
40
Seite
50
Seite
60
Seitenabschnitt
70
Abbildung
80
Abbildung
90
Seitenabschnitt
400
ROM
410
RAM
420
EEPROM
430
Prozessor
440
Bus
440
a Teil des Busses
440
b Teil des Busses
450
Übersetzungseinrichtung
460
Überprüfungseinrichtung
470
Übersetzungsnachschlagtabelle

Claims (12)

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:
Ermitteln (210) einer ersten physikalischen Adresse und einer zugehörigen Speicherzelle, die über die Abbildung (30) einer logischen Adresse zugeordnet sind;
Überprüfen (220) der Speicherzelle auf ihre Funktionstüchtig­ keit hin; und
falls der Schritt des Überprüfens ergibt, daß die Speicher­ zelle nicht funktionstüchtig ist, Ändern (240) der Abbildung (30), so daß die logische Adresse auf eine zweite physikali­ sche Adresse in dem physikalischen Adreßraum (20) abgebildet ist.
2. Verfahren gemäß Anspruch 1, bei dem der physikalische Adreßraum (20) in Seitenabschnitte und der logische Adreßraum (10) in Seiten unterteilt ist, wobei jede physikalische Ad­ resse einem Seitenabschnitt und jede logische Adresse einer Seite zugeordnet ist, wobei die Abbildung eine seitenweise Abbildung ist, die Seiten auf Seitenabschnitte abbildet, und wobei die Seitengröße gleich der Seitenabschnittgröße ist.
3. Verfahren gemäß Anspruch 2, bei dem die Seitenabschnitt­ größe zwischen 32 und 12 W Byte beträgt.
4. Verfahren gemäß einem der Ansprüche 1 bis 3, bei dem der Schritt des Änderns (240) der Abbildung das Eintragen der lo­ gischen Adresse zusammen mit der zweiten physikalischen Adresse in einer Übersetzungsnachschlagtabelle (470) auf­ weist.
5. Verfahren gemäß einem der Ansprüche 1 bis 4, bei dem die Abbildung für diejenigen logischen Adressen, für die die Ab­ bildung nicht geändert worden ist, eine Identitätsabbildung ist, so daß dieselben identisch zu den physikalischen Adres­ sen sind, auf die dieselben abgebildet werden.
6. Verfahren gemäß einem der Ansprüche 1 bis 5, bei dem die Schritt des Ermittelns (210) und des Überprüfens (220) bei einer Initialisierung für alle logischen Adressen in dem lo­ gischen Adreßraum (10) durchgeführt werden.
7. Verfahren gemäß einem der Ansprüche 1 bis 5, bei dem die Schritte des Ermittelns (210) und des Überprüfens (220) auf einen Lese-, Schreib- oder Ausführvorgang bezüglich der logi­ schen Adresse hin durchgeführt werden.
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.
9. Verfahren gemäß einem der Ansprüche 1 bis 8, bei dem der physikalische Speicher ein EEPROM oder ein Flash-Speicher ist.
10. Verfahren gemäß einem der Ansprüche 1 bis 9, bei dem den Seitenabschnitten ein Etikett zugeordnet ist, das die Funkti­ onstüchtigkeit der Speicherzellen des Seitenabschnitts, eine Gültigkeit von in den Speicherzellen gespeicherten Daten, ei­ nen Fehlerkorrekturcode und/oder Zugriffsrechte aufweist.
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 funktions­ tüchtig ist, und bei dem der Schritt des Änderns (240) zur Laufzeit durchgeführt wird.
12. Vorrichtung zum Steuern der Abbildung einer logischen Adresse eines logischen Adreßraumes (10) auf eine physikali­ sche Adresse in einem physikalischen Adreßraum (20), wobei die Vorrichtung folgende Merkmale aufweist:
eine Einrichtung zum Ermitteln einer ersten physikalischen Adresse und einer zugehörigen Speicherzelle, die über die Ab­ bildung (30) einer logischen Adresse zugeordnet sind;
eine Einrichtung zum Überprüfen (220) der Speicherzelle auf ihre Funktionstüchtigkeit hin; und
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.
DE2001127194 2001-06-05 2001-06-05 Verfahren und Vorrichtung zum Ausblenden von nicht funktionstüchtigen Speicherzellen Expired - Fee Related DE10127194B4 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE2001127194 DE10127194B4 (de) 2001-06-05 2001-06-05 Verfahren und Vorrichtung zum Ausblenden von nicht funktionstüchtigen Speicherzellen
PCT/EP2002/006145 WO2002099809A2 (de) 2001-06-05 2002-06-04 Verfahren und vorrichtung zum ausblenden von nicht funktionstüchtigen speicherzellen
TW91112135A TW559822B (en) 2001-06-05 2002-06-05 Method and apparatus for masking out non-operable memory cells

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE2001127194 DE10127194B4 (de) 2001-06-05 2001-06-05 Verfahren und Vorrichtung zum Ausblenden von nicht funktionstüchtigen Speicherzellen

Publications (2)

Publication Number Publication Date
DE10127194A1 true DE10127194A1 (de) 2002-12-19
DE10127194B4 DE10127194B4 (de) 2008-08-21

Family

ID=7687205

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2001127194 Expired - Fee Related DE10127194B4 (de) 2001-06-05 2001-06-05 Verfahren und Vorrichtung zum Ausblenden von nicht funktionstüchtigen Speicherzellen

Country Status (3)

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

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1577734A2 (de) * 2004-02-19 2005-09-21 Giesecke & Devrient GmbH Verfahren zum sicheren Betrieb eines tragbaren Datenträgers
DE102004059206A1 (de) * 2004-12-09 2006-06-22 Infineon Technologies Ag Speicherbauelement und Adressierung von Speicherzellen
US7660163B2 (en) 2004-08-24 2010-02-09 Samsung Electronics, Co., Ltd. Method and unit for verifying initial state of non-volatile memory device

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101011171B1 (ko) * 2005-12-28 2011-01-26 후지쯔 가부시끼가이샤 메모리 제어 방법, 기억 매체 및 장치와 정보 처리 장치
US7921263B2 (en) * 2006-12-22 2011-04-05 Broadcom Corporation System and method for performing masked store operations in a processor
CN113312206A (zh) * 2020-04-09 2021-08-27 阿里巴巴集团控股有限公司 数据存储故障处理方法、装置、存储介质、处理器
CN115292114B (zh) * 2022-10-09 2022-12-09 中科声龙科技发展(北京)有限公司 基于ethash算法的数据存储方法、装置、设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6163490A (en) * 1998-02-25 2000-12-19 Micron Technology, Inc. Semiconductor memory remapping

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9801373D0 (en) * 1998-01-22 1998-03-18 Memory Corp Plc Memory system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6163490A (en) * 1998-02-25 2000-12-19 Micron Technology, Inc. Semiconductor memory remapping

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1577734A2 (de) * 2004-02-19 2005-09-21 Giesecke & Devrient GmbH Verfahren zum sicheren Betrieb eines tragbaren Datenträgers
EP1577734A3 (de) * 2004-02-19 2009-10-07 Giesecke & Devrient GmbH Verfahren zum sicheren Betrieb eines tragbaren Datenträgers
US7660163B2 (en) 2004-08-24 2010-02-09 Samsung Electronics, Co., Ltd. Method and unit for verifying initial state of non-volatile memory device
DE102004059206A1 (de) * 2004-12-09 2006-06-22 Infineon Technologies Ag Speicherbauelement und Adressierung von Speicherzellen
US7349286B2 (en) 2004-12-09 2008-03-25 Infineon Technologies Ag Memory component and addressing of memory cells
DE102004059206B4 (de) * 2004-12-09 2016-03-31 Polaris Innovations Ltd. Speicherbauelement und Adressierung von Speicherzellen

Also Published As

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

Similar Documents

Publication Publication Date Title
DE2749850C3 (de) Hybrider Halbleiterspeicher mit assoziativer Seitenadressierung, Seitenaustausch und Steuerung auf dem Chip
DE69111635T2 (de) Gerät und Verfahren zur Background-Speicherprüfung während des Systemanlaufs.
DE68923863T2 (de) Ein-/Ausgabecachespeicherung.
DE69230211T2 (de) Integrierter Speicher, Verwaltungsverfahren und resultierendes Informationssystem
DE68915186T2 (de) Tragbarer elektronischer Apparat.
DE102013222321A1 (de) Elektronisches Gerät mit einer Vielzahl von Speicherzellen und mit physikalisch unklonbarer Funktion
EP1358558B1 (de) Mikroprozessorschaltung für datenträger und verfahren zum organisieren des zugriffs auf in einem speicher abgelegten daten
EP1183690B1 (de) Speicheranordnung mit adressverwürfelung
DE102009033961A1 (de) Emulation eines einmal programmierbaren Speichers
EP0128362A1 (de) Schaltungsanordnung mit einem Speicher und einer Zugriffskontrolleinheit
DE102005022019A1 (de) Sichere Verarbeitung von Daten
DE112019007421T5 (de) Speichergerät mit sicherer testmoduseingabe
DE4117672A1 (de) Verfahren und vorrichtung zur steuerung eines zwischen einer zentraleinheit und einem arbeitsspeicher angeordneten cache-speichers
DE4234695C2 (de) Computer-Speichersystem und Verfahren zur Aufrechterhaltung der Cache-Kohärenz zwischen einem Daten-Cache und einem Segmentdeskriptor-Cache
DE112004000694T5 (de) Ein Verfahren und eine Vorrichtung zur Verbesserung der Multi-CPU-Systemleistung für Speicherzugriffe
DE10127194A1 (de) Verfahren und Vorrichtung zum Ausblenden von nicht funktionstüchtigen Speicherzellen
EP1352318B1 (de) Mikroprozessorschaltung für tragbare datenträger
EP1661069B1 (de) Prozessorschaltung und verfahren zum zuordnen eines logikchips zu einem speicherchip
EP1978463A2 (de) Sicherheitsmodul für eine Frankiermaschine
DE102006036386A1 (de) Mikroprozessorsystem zur Steuerung bzw. Regelung von zumindest zum Teil sicherheitskritischen Prozessen
DE4302754C1 (de) Monolithisch integrierte Datenspeicheranordnung und Verfahren zu deren Betrieb
DE68924557T2 (de) Seitentabellen in einem virtuellen Speicher.
DE102017124805A1 (de) Speicheranordnung und verfahren zum zwischenspeichern von speicherinhalten
DE102005037226A1 (de) Verfahren und Vorrichtung zur Festlegung eines Startzustandes bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten durch markieren von Registern
DE102006036384A1 (de) Mikroprozessorsystem zur Steuerung bzw. Regelung von zumindest zum Teil sicherheitskritischen Prozessen

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8181 Inventor (new situation)

Inventor name: HARTLIEB, HEIMO, GRAZ, AT

Inventor name: SEDLAK, HOLGER, DIPL.-ING., 85658 EGMATING, DE

Inventor name: DIRSCHERL, GERD, 81543 MUENCHEN, DE

Inventor name: MAY, CHRISTIAN, 81677 MUENCHEN, DE

8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee