DE10127194A1 - Verfahren und Vorrichtung zum Ausblenden von nicht funktionstüchtigen Speicherzellen - Google Patents
Verfahren und Vorrichtung zum Ausblenden von nicht funktionstüchtigen SpeicherzellenInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/20—Address 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.
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.
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.
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.
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)
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)
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9801373D0 (en) * | 1998-01-22 | 1998-03-18 | Memory Corp Plc | Memory system |
-
2001
- 2001-06-05 DE DE2001127194 patent/DE10127194B4/de not_active Expired - Fee Related
-
2002
- 2002-06-04 WO PCT/EP2002/006145 patent/WO2002099809A2/de not_active Application Discontinuation
- 2002-06-05 TW TW91112135A patent/TW559822B/zh active
Patent Citations (1)
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)
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 |