DE10127179A1 - Verfahren zur Verwaltung eines Speichers einer Chipkarte - Google Patents
Verfahren zur Verwaltung eines Speichers einer ChipkarteInfo
- Publication number
- DE10127179A1 DE10127179A1 DE10127179A DE10127179A DE10127179A1 DE 10127179 A1 DE10127179 A1 DE 10127179A1 DE 10127179 A DE10127179 A DE 10127179A DE 10127179 A DE10127179 A DE 10127179A DE 10127179 A1 DE10127179 A1 DE 10127179A1
- Authority
- DE
- Germany
- Prior art keywords
- memory
- virtual
- addresses
- address
- virtual 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0638—Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
Abstract
Bei einem Verfahren zur Verwaltung eines Speichers (100) einer Chipkarte, wobei der Speicher (100) eine Mehrzahl von Speicherplätzen aufweist, wird zunächst ein virtueller Adressbereich für eine Adressierung des Speichers (100) festgelegt. Anschließend werden virtuelle Adressen (VA) des virtuellen Adressbereichs zu den physikalischen Adressen (PA) der Speicherplätze (102) zugeordnet, und ein Zugriff auf den Speicher (100) wird unter Verwendung der virtuellen Adresse (VA) des virtuellen Adressbereichs gesteuert.
Description
Die vorliegende Erfindung bezieht sich auf ein Verfahren zur
Verwaltung eines Speichers einer Chipkarte, und insbesondere
auf die Verwaltung eines Speichers, der eine Mehrzahl von
Speicherplätzen und eine Mehrzahl von Speicherseiten auf
weist, die jeweils die gleiche Anzahl von Speicherplätzen um
fassen.
Im Stand der Technik bekannte Verfahren zur Verwaltung von
Speichern in einem Mikroprozessorsystem, wie beispielsweise
Mikroprozessoren für Chipkartenanwendungen, sind sehr aufwen
dig und erfordern einen hohen Rechenaufwand, um einer Anwen
dung einen Zugriff auf den Speicher zu ermöglichen.
Ein besonderes Problem tritt bei solchen Speichern auf, wenn
beispielsweise in dem Nur-Lese-Speicher (ROM = Read Only Me
mory) eine fehlerhafte Software abgelegt ist, die eine Kor
rektur erfordert. Der Stand der Technik löst dieses Problem
dadurch, dass in der ROM-Software an den kritischen Stellen
sogenannte Aussprünge in einen nicht-flüchtigen Speicher (NVM
= Non Volatile Memory), z. B. ein EEPROM, vorgesehen sind.
Diese Vorgehensweise ist aufgrund dieser Aussprünge sehr auf
wendig.
Ein weiterer Nachteil der im Stand der Technik bekannten An
sätze zur Verwaltung eines Speichers einer Chipkarte besteht
darin, dass der Zugriff auf den nicht-flüchtigen Speicher, z. B.
das EEPROM, im Regelfall etwa 5 Millisekunden in Anspruch
nimmt, was zum einen recht lang ist und zum anderen den Nach
teil mit sich bringt, dass gerade während dieser Zeit keine
anderen Operationen ausgeführt werden können, also das gesam
te System für diese Zeitdauer steht. Im Zusammenhang mit Mik
roprozessorsystemen in Chipkarten, sind keine Ansätze bekannt,
auf welche Art und Weise dieses Problem gelöst werden
könnte.
Ein weiterer Nachteil der im Stand der Technik bekannten
Speichersysteme für ein Mikroprozessorsystem einer Chipkarte
besteht darin, dass der Speicher dort statisch allokiert (zu
gewiesen) wurde, was den Nachteil einer mangelnden Flexibili
tät bei der Zuweisung des Speichers zu bestimmten Anwendungen
mit sich bringt.
Ausgehend von diesem Stand der Technik liegt der vorliegenden
Erfindung die Aufgabe zugrunde, ein verbessertes Verfahren
zum Verwalten eines Speichers einer Chipkarte zu schaffen.
Diese Aufgabe wird durch ein Verfahren nach Anspruch 1 ge
löst.
Die vorliegende Erfindung schafft ein Verfahren zur Verwal
tung eines Speichers einer Chipkarte, wobei der Speicher eine
Mehrzahl von Speicherplätzen aufweist, mit folgenden Schrit
ten:
- a) Festlegen eines virtuellen Adressbereichs für eine Adres sierung des Speichers;
- b) Zuordnen der virtuellen Adressen des virtuellen Adressbe reichs zu den physikalischen Adressen der Speicherplätze; und
- c) Zusteuern von Zugriffen auf den Speicher unter Verwen dung der virtuellen Adressen des virtuellen Adressbereichs.
Anders als die im Stand der Technik bekannten Verfahren zur
Verwaltung eines Speichers in einem Mikroprozessorsystem ei
ner Chipkarte lehrt die vorliegende Erfindung die Verwendung
eines virtuellen Adressbereichs, über den virtuelle Adressen
zu physikalischen Adressen eines Speichers zugeordnet werden,
und entsprechende Zugriffe auf den Speicher unter Verwendung
der virtuellen Adressen gespeichert werden, wodurch sich ge
genüber dem Stand der Technik, eine erhöhte Flexibilität bei
den Zugriffen auf den Speicher ergeben. Ferner besteht ein
Vorteil der vorliegenden Erfindung darin, dass zum einen Feh
ler in der ROM-Software des Speichers auf einfache Art und
Weise und ohne großen Rechenaufwand gelöst werden können, und
auch das Verhalten der nicht-flüchtigen Speicherabschnitte
des Speichers verbessert werden kann. Ferner wurde der infle
xible Ansatz der statischen Allokierung (Zuweisung) von Spei
cher aufgegeben.
Vorzugsweise sind die virtuellen Adressen des virtuellen
Speicherbereichs den physikalischen Adressen der einzelnen
Speicherseiten des Speichers zugeordnet, und die Speichersei
ten umfassen die gleiche Anzahl von Speicherplätzen.
Gemäß einem ersten bevorzugten Ausführungsbeispiel der vor
liegenden Erfindung umfasst der Speicher einen ersten Spei
cherabschnitt, aus dem lediglich Daten gelesen werden können,
einen ROM (ROM = Read Only Memory), und einen zweiten Ab
schnitt, in den Daten eingeschrieben und aus dem Daten gele
sen werden können. Wird nun festgestellt, dass in dem Nur-
Lese-Speicherabschnitt einen Speicherplatz bzw. eine Spei
cherseite enthalten ist, die einen fehlerhaften Inhalt (Bug)
enthält, so wird die virtuelle Adresse, die diesem Speicher
platz bzw. dieser Speicherseite in dem ersten Speicherab
schnitt zugeordnet ist, einer physikalischen Adresse eines
Speicherplatzes bzw. einer Speicherseite in dem zweiten Spei
cherabschnitt zugeordnet, wobei an dieser Speicherseite dann
der korrekte Inhalt abgelegt wird.
Diese Vorgehensweise hat den Vorteil, dass keine Tabellen be
reitgestellt werden müssen, über die Aussprünge aus dem ROM
gesteuert würden, sondern durch die alleinige Zuordnung der
virtuellen Adresse zu der neuen physikalischen Adresse wird
die entsprechende Korrektur durchgeführt, so dass eine ROM-
Software an beliebigen Stellen nicht nur korrigiert, sondern
auch modifiziert werden kann. Letzteres ist insbesondere dann
von Interesse, wenn die Software bereits in dem ROM enthalten
ist und festgestellt wird, dass eine Modifikation erforder
lich ist. In diesem Fall wird ein der ROM-Software zugeordne
ter Speicherplatz (bzw. eine zugeordnete Speicherseite) in
dem ersten Speicherabschnitt "ausgeblendet" und ein entspre
chend geänderter Speicherplatz (bzw. eine geänderte Speicher
seite) in dem EEPROM bereitgestellt.
Ein weiterer Vorteil dieses Ausführungsbeispiels besteht dar
in, dass Software-Module an beliebige Stellen nachgeladen
werden können.
Gemäß einem zweiten bevorzugten Ausführungsbeispiel ist dem
Speicher ein Cache-Speicher zugeordnet, wobei der Cache-
Speicher ebenfalls eine Mehrzahl von Speicherseiten umfasst.
Beim Übertragen von Daten von dem Speicher an den Cache-
Speicher wird die virtuelle Adresse des Speicherplatzes bzw.
der Speicherseite mit den zu übertragenden Daten in dem Spei
cher einer physikalischen Adresse eines Speicherplatzes bzw.
einer Speicherseite in dem Cache-Speicher zugeordnet, und
gleichzeitig wird, um eine Konsistenz der Daten sicherzustel
len, der physikalischen Adresse des bisherigen Speicherplat
zes bzw. der bisherigen Speicherseite in dem Speicher deren
Inhalt in den Cache-Speicher übertragen wurde, eine neue vir
tuelle Adresse außerhalb des adressierbaren Adressbereichs
zugeordnet.
Der Vorteil dieser Ausgestaltung besteht darin, dass für
langsame Speicher, wie z. B. nicht-flüchtige Speicher, der
Cache-Speicher bereitgestellt wird, um die Geschwindigkeit
der Verarbeitung zu erhöhen, wobei diese Konfiguration für
einen Anwender bzw. ein Anwendungsprogramm jedoch vollständig
transparent arbeitet.
Bei einem weiteren bevorzugten Ausführungsbeispiel der vor
liegenden Erfindung wird vor dem Zuordnen der virtuellen Adressen
zu den physikalischen Adressen eine Überprüfung des
Speichers durchgeführt, um festzustellen, inwieweit einzelne
oder mehrere Speicherplätze bzw. Speicherseiten in dem Spei
cher fehlerhaft sind, also z. B. aufgrund von Hardwaredefek
ten, weder beschrieben noch gelesen werden können. Im Schritt
(b) erfolgt die Zuordnung der virtuellen Adressen dann nur zu
den fehlerfreien Speicherplätzen bzw. Speicherseiten, die
fehlerhaften Speicherplätze bzw. Speicherseiten werden also
übersprungen bzw. "ausgeblendet".
Das oben beschriebene Überspringen der fehlerhaften Speicher
zellen, also das Defragmentieren der Speicher ist dahingehend
vorteilhaft, dass, anders als im Stand der Technik, nun kein
Umkopieren der fehlerfreien Speicherseiten erforderlich ist,
um diese in einem zusammenhängenden Speicherblock abzulegen.
Grundsätzlich besteht der Vorteil der vorliegenden Erfindung
darin, dass durch die erfindungsgemäßen Ausführungsbeispiele
leistungsfähige Speicherverwaltungskonzepte für Mikroprozes
sorsysteme für Chipkarten realisiert werden können, die die
von Haus aus knappen Betriebsmittel bzw. Ressourcen einer
Chipkarte vorteilhaft und effizient nutzen.
Bevorzugte Weiterbildungen der vorliegenden Anmeldung sind in
den Unteransprüchen definiert.
Nachfolgend werden anhand der beiliegenden Zeichnungen bevor
zugte Ausführungsbeispiele der vorliegenden Erfindung näher
erläutert. Es zeigen:
Fig. 1 eine schematische Darstellung eines Speichers, die die
erfindungsgemäße Zuordnung von virtuellen Adressen zu physi
kalischen Adressen zeigt;
Fig. 2 ein erstes Ausführungsbeispiel der vorliegenden Erfin
dung, bei dem eine fehlerhafte ROM-Software korrigiert wird,
wobei Fig. 2A einen aus dem Stand der Technik bekannten An
satz zeigt, und Fig. 2B die erfindungsgemäße Lösung zeigt;
Fig. 3 ein zweites Ausführungsbeispiel der vorliegenden Er
findung, bei dem einem nicht-flüchtigen Speicher ein Cache-
Speicher zugeordnet ist; und
Fig. 4 ein drittes Ausführungsbeispiel der vorliegenden Er
findung, bei dem fehlerhafte Speicherzellen in einem nicht-
flüchtigen Speicher ausgeblendet werden.
Die nachfolgende Beschreibung der bevorzugten Ausführungsbei
spiele erfolgt anhand eines Speichers, bei dem die virtuellen
Adressen den Speicherseiten des Speichers zugeordnet werden.
Die nachfolgend beschriebenen Prinzipien sind jedoch eben
falls auf Speicherorganisationen anwendbar, bei denen die
virtuellen Adressen einzelnen Speicherplätzen zugeordnet wer
den.
Fig. 1 zeigt eine schematische Darstellung eines Speichers
100, der eine Mehrzahl von Speicherplätzen bzw. Speichersei
ten 102 umfasst. Abhängig von der Konfiguration des Systems
werden die Speicherplätze entweder einzeln adressiert, oder
eine vorbestimmte Anzahl von Speicherplätzen sind zu Spei
cherseiten zusammengefasst, denen dann jeweils eine Adresse
zugeordnet ist.
Den Speicherplätzen/Speicherseiten 102 des Speichers 100 sind
sogenannte physikalische Adressen "PA" zugeordnet, und Fig. 1
zeigt einen Ausschnitt des Speichers 100 sowie schematisch
die zugeordneten physikalischen Adressen 500 bis 1500.
Um die Vorteile der vorliegenden Erfindung zu erreichen, die
oben näher erläutert wurden, lehrt die Erfindung zur Adres
sierung und zur Verwaltung des Speichers anstelle der gerade
erwähnten physikalischen Adressen einen virtuellen Adressbe
reich vorzusehen. In Fig. 1 ist ein virtueller Speicherbereich
mit den virtuellen Adressen "VA" von 0 bis 1000 ge
zeigt, wobei zu erkennen ist, dass die virtuelle Adresse 0
der physikalischen Adresse 500, die virtuelle Adresse 1 der
physikalischen 501 usw. und die virtuelle Adresse 1000 der
physikalischen Adresse 1500 zugeordnet ist. Diese Zuordnung
ist in der entsprechenden Ansteuerungssoftware des Speichers
100 abgelegt. Der angegebene virtuelle Adressbereich ist rein
beispielhaft, und es können auch größere oder kleinere virtu
elle Adressbereiche gewählt werden.
Anstelle des anhand von Fig. 1 beschriebenen einen virtuellen
Adressbereichs können selbstverständlich auch eine Mehrzahl
von virtuellen Adressbereichen festgelegt werden, so dass
beispielsweise ein erstes Anwendungsprogramm den virtuellen
Adressbereich von 0 bis 1000 belegt, und ein zweites Anwen
dungsprogramm den virtuellen Adressbereich von 2000 bis 3000
belegt, so dass eine Trennung der von den einzelnen Anwendun
gen verwendeten Speicherbereichen in dem Speicher 100 sicher
gestellt ist.
Die durch die vorliegende Erfindung, wie sie anhand der Fig.
1 allgemein erläutert wurde, erreichbaren Vorteile werden in
Anbetracht der nachfolgenden Beschreibung bevorzugter Ausfüh
rungsbeispiele der vorliegenden Erfindung weiter verdeut
licht.
Anhand der Fig. 2 wird nun ein erstes Ausführungsbeispiel der
vorliegenden Erfindung näher erläutert, welches die flexible
Adressierung unter Verwendung der virtuellen Adressbereich
vorteilhaft ausnutzt, um einen fehlerhafte ROM-Software zu
korrigieren oder eine in einem ROM abgelegte Software zu mo
difizieren.
Bevor näher auf die erfindungsgemäße Lösung eingegangen wird,
sei anhand der Fig. 2A eine aus dem Stand der Technik bekann
te Lösung zur Korrektur einer fehlerhaften ROM-Software er
läutert.
In Fig. 2A ist der Speicher 100 gezeigt, der als ersten Spei
cherabschnitt 104 ein ROM aufweist, als zweiten Speicherab
schnitt 106 ein EEPROM aufweist, und als dritten Speicherab
schnitt 108 einen RAM (Arbeitsspeicher) aufweist (RAM = Ran
dom Access Memory = Speicher mit wahlfreiem Zugriff). In dem
ROM 104 wird beispielsweise eine Betriebssystemsoftware für
die Ansteuerung des Mikroprozessorsystems einer Chipkarte ab
gelegt. Die darin abgelegten Daten können lediglich aus dem
ROM ausgelesen werden, eine Modifikation derselben ist nicht
möglich. Wird nun festgestellt, dass die in dem ROM 104 abge
legte ROM-Software fehlerhaft ist, also einen sogenannten
"Bug" aufweist, wie dies bei der physikalischen Adresse 300
durch den Eintrag "BUG SW" dargestellt ist (SW = Software),
so ist es erforderlich, diesen Fehler zu korrigieren, da
sonst die Funktionsfähigkeit der Chipkarte als Ganzes nicht
gewährleistet ist bzw. die Zuverlässigkeit nicht gewährleis
tet ist.
Im Stand der Technik, wie er anhand der Fig. 2A schematisch
dargestellt ist, wird der nicht-flüchtige Speicher 106 ver
wendet, um dort eine Tabelle abzulegen. Wird nun während des
Betriebs auf die physikalische Adresse 300 zugegriffen, so
erfolgt anstelle eines Auslesens der Daten aus dieser Adresse
ein Sprung zu der Tabelle im nicht-flüchtigen Speicher 106.
Aus der Tabelle wird ausgelesen, an welcher Stelle des nicht-
flüchtigen Speichers 106 sich die fehlerfreie Software befin
det, und ein entsprechender Sprung an die Adresse wird durch
geführt, wie dies in Fig. 2A durch die Pfeile dargestellt
ist. Auf der Speicherseite mit dem Eintrag <300< ist die kor
rigierte Version der Speicherseite mit der physikalischen Ad
resse 300 abgelegt.
Die obige Beschreibung verdeutlicht den Aufwand, der erfor
derlich ist, um einen Fehler in der ROM-Software zu korrigie
ren und/oder um die ROM-Software zu modifizieren.
Die vorliegende Erfindung bietet, aufgrund des erfindungsge
mäßen Konzepts der Verwendung von virtuellen Adressen eine
wesentlich elegantere und zugleich einfachere, ressourcen
schonende Lösung der Problematik. Diese Lösung wird nun an
hand der Fig. 2B erläutert. Es sei erneut angenommen, dass
bei der Hardwareadresse 300 im ROM ein fehlerhafter Inhalt
der ROM-Software geschrieben ist, ähnlich wie in Fig. 2A.
Dieser fehlerhafte Eintrag ist im ROM selbst nicht zu korri
gieren. Statt dessen wird in den nicht-flüchtigen Speicher
108, beispielsweise an die physikalische Adresse 2000 der In
halt der Speicheradresse 300 ohne den Fehler geschrieben,
ähnlich wie im Stand der Technik. Die vorliegende Erfindung
lehrt jedoch den einzelnen physikalischen Adressen des Spei
chers virtuelle Adressen zuzuordnen, und in Fig. 2B ist bei
spielhaft gezeigt, dass der physikalischen Adresse 300 im ROM
104 die virtuelle Adresse 3000 zugeordnet ist. Wird nun die
oben erwähnte Situation angetroffen, dass nämlich an dieser
Stelle die ROM-Software fehlerhaft ist, so bedarf es keiner
Tabelle im nicht-flüchtigen Speicher, sondern lediglich einer
Neuzuordnung der virtuellen Adresse 3000 zu der physikali
schen Adresse 2000 anstelle der physikalischen Adresse 3000.
Durch diese einfache Umadressierung der virtuellen Adresse
wird der Fehler in der ROM-Software behoben.
Auf die gleiche Art und Weise ist es natürlich auch möglich,
die im ROM 104 abgelegte ROM-Software zu modifizieren, sofern
dies die Anwendung erfordert. Zu diesem Zweck wird dann eine
oder mehrere Speicherseiten im ROM 104 ausgeblendet, indem
deren virtuelle Adressen nicht auf die physikalischen Adres
sen im ROM 104 zeigen würden, sondern auf entsprechende Spei
cherseiten mit zugeordneten physikalischen Adressen im nicht-
flüchtigen Speicher 108, wobei an diesen Speicherseiten die
modifizierten Inhalte der ROM-Software abgelegt wären.
Anhand der Fig. 3 wird nachfolgend ein weiteres Ausführungs
beispiel der vorliegenden Erfindung erläutert, mittels dem
das Verhalten eines nicht-flüchtigen Speichers eines Speichersystems
einer Chipkarte verbessert werden kann, indem die
Zugriffszeiten auf den Speicher der Chipkarte reduziert wer
den.
In Fig. 3 ist der Speicher 100 ein nicht-flüchtiger Speicher,
ein EEPROM, mit einer Mehrzahl von Speicherseiten 102 mit
physikalischen Adressen "PA". Den Speicherseiten 102 sind e
benfalls virtuelle Adressen VA zugeordnet, und für die nach
folgende Beschreibung sei beispielhaft die schraffierte Spei
cherseite mit der physikalischen Adresse 300 und der virtuel
len Adresse 1000 betrachtet.
Das Speichersystem umfasst ferner einen Cachespeicher 110,
der ebenfalls eine Mehrzahl von Speicherseiten 112 mit physi
kalischen Adressen PA umfasst.
Der Zugriff auf das EEPROM dauert herkömmlicherweise etwa 5
Millisekunden, und während dieser Zeit sind keine anderen
Zugriffe auf das EEPROM möglich, und auch keine anderen Akti
vitäten, so dass das Mikroprozessorsystem während dieser Zeit
steht. Um das System zu beschleunigen, ist der Cache-Speicher
110 vorgesehen, welcher, verglichen mit dem EEPROM, wesent
lich schneller beschrieben/gelesen werden kann.
Entsprechend den üblichen Cache-Funktionalitäten, wird bei
spielsweise der Inhalt der schraffierten Speicherseite mit
der physikalischen Adresse 300 und der virtuellen Adresse
1000 in den Cache-Speicher an der physikalischen Adresse 100
des Cache-Speichers abgelegt, wie dies durch die schraffierte
Speicherseite im Cache-Speicher 110 gezeigt ist. Diese Seite
wird z. B. deshalb ausgewählt, weil festgestellt wurde, dass
auf die dort abgelegten Daten besonders häufig zugegriffen
wird, so dass die Auslagerung derselben in den Cache-Speicher
110 eine erhebliche Beschleunigung des Datenaustausches be
wirkt.
Nachdem die Inhalte von der Speicherseite in dem EEPROM 100
in den Cache-Speicher 110 übertragen wurde, wird der virtuel
len Adresse 1000 die physikalische Adresse in dem Cache-
Speicher 110 zugeordnet, die der Speicherseite entspricht, in
der die Inhalte abgelegt wurden. Bei dem dargestellten Bei
spiel ist dies die physikalische Adresse 100 des Cache-
Speichers.
Um eine Konsistenz in dem System beizubehalten muss nun, da
jetzt ja zweimal die virtuelle Adresse 1000 existiert, einmal
im Cache-Speicher und einmal im EEPROM, sichergestellt werden
dass bei einem Zugriff auf die virtuelle Adresse 1000 tat
sächlich auf den Cache-Speicher zugegriffen wird. Aus diesem
Grund wird der Speicherseite an der physikalischen Adresse
300 vorübergehend die virtuelle Adresse 3000 zugeordnet, die
außerhalb des adressierbaren virtuellen Adressbereichs liegt.
Wird nun festgestellt, dass die in dem Cache-Speicher 110 ab
gelegten Daten in den nicht-flüchtigen Speicher 100 zurückge
speichert werden können, so werden die Inhalte der Speicher
seite mit der physikalischen Adresse 100 von dem Cache-
Speicher 110 an die Speicherseite mit der physikalischen Ad
resse 300 in den Speicher 100 zurückgespeichert, und der phy
sikalischen Adresse 300 in dem Speicher 100 wird wieder die
ursprüngliche virtuelle Adresse 1000 zugeordnet.
Der Vorteil das anhand der Fig. 3 beschriebenen Verfahrens
besteht darin, dass hierdurch eine Beschleunigung des Spei
cherzugriffs realisiert werden kann, welche für ein Anwen
dungsprogramm vollständig transparent ist, d. h., ein Anwen
dungsprogramm adressiert, unabhängig davon, wo die Daten
sind, im Cache-Speicher oder im EEPROM mit den gleichen vir
tuellen Adressen die interessierenden Speicherseiten, und das
erfindungsgemäße Speicherverwaltungsverfahren übernimmt die
entsprechende Zuordnung.
Anhand der Fig. 4 wird nachfolgend ein weiteres Ausführungs
beispiel der vorliegenden Erfindung näher beschrieben, gemäß
dem fehlerhafte Speicherseiten in einem nicht-flüchtigen
Speicher ausgeblendet werden.
In Fig. 4 ist der nicht-flüchtige Speicher 100 mit einer
Mehrzahl von Speicherseiten 102 gezeigt, denen jeweils eine
physikalische Adresse zugeordnet ist, wobei das Beispiel eine
Speicherzelle mit zugeordnete physikalischer Adresse 100 so
wie eine Speicherzelle mit zugeordneter physikalischer Adres
se y gezeigt ist.
Bei der Herstellung von Speicherelementen kann es vorkommen,
dass bestimmte Speicherbereiche während der Herstellung feh
lerhaft erzeugt wurden, so dass diese weder beschrieben noch
gelesen werden können. Diese Speicherbereiche werden in einem
anfänglichen Test des Speicherelements erfasst und in einer
sogenannten Defekt-Liste abgelegt.
In der Defekt-Liste ist nun beispielsweise abgelegt, dass die
Speicherseite mit der physikalischen Adresse 100 fehlerhaft
ist. Die vorliegenden Erfindung bietet nun eine elegante und
einfache Lösung, um mit dieser fehlerhaften Speicherseite um
zugehen. Anders als im Stand der Technik, bei dem aufgrund
der kontinuierlichen Adressierung die Adresse 100 schlichtweg
nicht verwendet werden konnte, wird gemäß der vorliegenden
Erfindung aufgrund der Verwendung des virtuellen Adressbe
reichs und der Zuordnung zu den physikalischen Adressen es
ermöglicht, die Speicherseite mit der physikalischen Adresse
100 einfach auszublenden. Dies erfolgt derart, dass die feh
lerhafte Speicherseite bei der Zuordnung der virtuellen Ad
ressen des virtuellen Adressbereichs einfach ausgeblendet
bzw. übersprungen werden, so dass, wie in Fig. 4 gezeigt, die
der defekten Speicherseite vorhergehende Speicherseite die
virtuelle Adresse 1000 zugeordnet wird, und der nachfolgende
nicht defekten Speicherseite die virtuelle Adresse 1001, so
dass sich ein kontinuierlich adressierter virtueller Adress
raum ergibt.
Der Vorteil dieser Vorgehensweise besteht darin, dass es zum
Defragmentieren des Speichers, bei dem zusammenhängende Daten
in einen zusammenhängenden Adressbereich umkopiert werden,
eben auf dieses Umkopieren verzichtet werden kann, da durch
die erfindungsgemäße Adressierung die zusammengehörenden Da
ten in einem zusammengehörenden virtuellen Adressbereich ab
gelegt sind.
Eine weitere Anwendung für das gerade beschriebene Ausblenden
von Speicherseiten besteht darin, dass Speicherseiten, auf
die während des Betriebs häufig zugegriffen wird, und die
nach einer bestimmten Anzahl von Zugriffen fehlerhaft sind,
durch eine Neuzuordnung der virtuellen Adressen ausgeblendet
werden. Dies ist in Fig. 4 schematisch in Zusammenhang mit
der Speicherseite y gezeigt. Es sei angenommen, dass an die
ser Speicherseite ein Zählwert abgelegt wird, der regelmäßig
neu geschrieben wird. Erfahrungsgemäß ist davon auszugehen,
dass nach etwa 500.000 Schreibzyklen die Speicherzellen feh
lerhaft sind, also nicht mehr korrekt beschrieben bzw. gele
sen werden können, so dass in diesem Fall die ursprüngliche
virtuelle Adressierung um die Speicherseite y herum, wie sie
durch die virtuellen Adressen x - 1, x und x + 1 angedeutet
ist, verschoben wird indem die virtuelle Adresse x und die
nachfolgenden virtuellen Adressen beispielsweise um eine
physikalische Adresse nach oben verschoben werden, so dass
die Speicherseite mit der physikalischen Adresse y aus dem
virtuellen Speicherbereich ausgeblendet ist. Die Erfassung,
ob eine Speicherzelle fehlerhaft ist, kann entweder aufgrund
eines Zählwertes erfolgen, der jeden Zugriff auf die Spei
cherseite y erfasst, oder durch andere, geeignete Untersu
chungsmaßnahmen, welche die Zuverlässigkeit der Speicherseite
y überprüfen.
Gemäß der vorliegenden Erfindung ist es ohne weiteres mög
lich, einen ursprünglich allokierten (zugewiesenen) virtuel
len Speicherbereich ohne weiteres zu vergrößern, ohne die für
eine solche Operation im Stand der Technik erforderlichen Um
kopierungen vornehmen zu müssen. Es sei angenommen, dass an
fänglich ein virtueller Speicherbereich von 0 bis 1000 fest
gelegt sei, dem entsprechende physikalische Adressen zugeord
net sind. Ist nun eine Vergrößerung des Speicherbereichs um
beispielsweise 500 Adressen erwünscht, so wird der virtuelle
Speicherbereich einfach um 500 Adressen erweitert, so dass
dieser von 0 bis 1500 läuft, und den neu hinzugetretenen vir
tuellen Adressen werden physikalische Adressen in dem Spei
cher zugeordnet, so dass sich für eine Anwendung, die aus
schließlich auf der Grundlage des virtuellen Adressbereichs
arbeitet, ein zusammenhängender, vergrößerter Adressbereich
darstellt.
Im Zusammenhang mit der Beschreibung der obigen Ausführungs
beispiele wird darauf hingewiesen, dass die Speicherseiten
üblicherweise eine Größe von 74 Byte aufweisen, und die
EEPROMs eine Größe zwischen 64 KByte und 72 KByte haben. Die
vorliegende Erfindung ist selbstverständlich nicht auf diese
Werte beschränkt, sondern auch auf andere Speicherkonfigura
tionen anwendbar.
100
Speicher
102
Speicherplatz/Speicherseite
104
erster Speicherabschnitt/ROM
106
zweiter Speicherabschnitt/RAM
108
dritter Speicherabschnitt/EEPROM
110
Cache-Speicher
112
Speicherplatz/Speicherseite
VA virtuelle Adresse
PA physikalische Adresse
VA virtuelle Adresse
PA physikalische Adresse
Claims (17)
1. Verfahren zur Verwaltung eines Speichers (100) einer Chip
karte, wobei der Speicher (100) eine Mehrzahl von Speicher
plätzen aufweist, mit folgenden Schritten:
- a) Festlegen eines virtuellen Adressbereichs für eine Adres sierung des Speichers (100);
- b) Zuordnen der virtuellen Adressen (VA) des virtuellen Ad ressbereichs zu den physikalischen Adressen (PA) der Spei cherplätze (102); und
- c) Steuern von Zugriffen auf den Speicher (100) unter Ver wendung der virtuellen Adressen (VA) des virtuellen Adressbe reichs.
2. Verfahren nach Anspruch 1, bei dem der Speicher eine Mehr
zahl von Speicherseiten umfasst, und bei dem im Schritt (b)
die virtuellen Adressen den physikalischen Adressen der Spei
cherseiten des Speichers zugeordnet werden.
3. Verfahren nach Anspruch 2, bei dem die Speicherseiten je
weils die gleiche Anzahl von Speicherplätzen umfassen.
4. Verfahren nach einem der Ansprüche 1 bis 3, bei dem der
Speicher (100) einen ersten Nur-Lese-Speicherabschnitt (104)
mit einer Mehrzahl von Speicherplätzen und einen zweiten
Speicherabschnitt (108) mit einer Mehrzahl von Speicherplät
zen umfasst, wobei das Verfahren folgende Schritte umfasst:
Überprüfen ob ein Speicherplatz (102) in dem ersten Speicher abschnitt (104) fehlerhafte oder zu ändernde Inhalte auf weist; und
Zuordnen der virtuellen Adresse (VA) des fehlerhaften Spei cherplatzes (102) zu einer physikalischen Adresse eines Spei cherplatzes in dem zweiten Speicherbereich (108).
Überprüfen ob ein Speicherplatz (102) in dem ersten Speicher abschnitt (104) fehlerhafte oder zu ändernde Inhalte auf weist; und
Zuordnen der virtuellen Adresse (VA) des fehlerhaften Spei cherplatzes (102) zu einer physikalischen Adresse eines Spei cherplatzes in dem zweiten Speicherbereich (108).
5. Verfahren nach Anspruch 4, bei dem der Fehler ein Fehler
der in dem Speicherplatz abgelegten Software ist.
6. Verfahren nach Anspruch 4 oder 5, bei dem der erste Spei
cherabschnitt (104) ein ROM ist, und bei dem der zweite Spei
cherabschnitt ein EEPROM ist.
7. Verfahren nach einem der Ansprüche 4 bis 6, bei dem der
erste Nur-Lese-Speicherabschnitt (104) eine Mehrzahl von
Speicherseiten umfasst, und der zweite Speicherabschnitt
(108) eine Mehrzahl von Speicherseiten umfasst, wobei das Ü
berprüfen und das Zuordnen bezüglich einer Speicherseite oder
mehrerer Speicherseiten erfolgt.
8. Verfahren nach einem der Ansprüche 1 bis 3, bei dem dem
Speicher (100) ein Cache-Speicher (110) zugeordnet ist, wobei
der Cache-Speicher (110) eine Mehrzahl von Speicherplätzen
umfasst, wobei das Verfahren beim Übertragen von Daten von
dem Speicher an den Cache-Speicher (110) folgende Schritte
umfasst:
Zuordnen der virtuellen Adresse (VA) eines Speicherplatzes in dem Speicher (100) zu einer physikalischen Adresse eines Speicherplatzes in dem Cache-Speicher (110); und
Zuordnen einer neuen virtuellen Adresse (VA), die außerhalb des adressierbaren Adressbereichs liegt, zu der physikali schen Adresse (PA) des Speicherplatzes in dem Speicher, des sen Inhalt in den Cache-Speicher (110) übertragen wurde.
Zuordnen der virtuellen Adresse (VA) eines Speicherplatzes in dem Speicher (100) zu einer physikalischen Adresse eines Speicherplatzes in dem Cache-Speicher (110); und
Zuordnen einer neuen virtuellen Adresse (VA), die außerhalb des adressierbaren Adressbereichs liegt, zu der physikali schen Adresse (PA) des Speicherplatzes in dem Speicher, des sen Inhalt in den Cache-Speicher (110) übertragen wurde.
9. Verfahren nach Anspruch 8, das bei einer Übertragung der
Daten zurück von dem Cache-Speicher (110) an den Speicher
(100) folgende Schritte umfasst:
Übertragen des Inhalts des Speicherplatzes in dem Cache- Speicher (110) an den Speicherplatz in dem Speicher (100), der die neue virtuelle Adresse zugeordnet ist; und
Zuordnen der virtuellen Adresse des Speicherplatzes in dem Cache-Speicher (110) zu der physikalischen Adresse des Spei cherplatzes in dem Speicher (100), die den Inhalt von dem Ca che-Speicher (110) empfangen hat.
Übertragen des Inhalts des Speicherplatzes in dem Cache- Speicher (110) an den Speicherplatz in dem Speicher (100), der die neue virtuelle Adresse zugeordnet ist; und
Zuordnen der virtuellen Adresse des Speicherplatzes in dem Cache-Speicher (110) zu der physikalischen Adresse des Spei cherplatzes in dem Speicher (100), die den Inhalt von dem Ca che-Speicher (110) empfangen hat.
10. Verfahren nach Anspruch 8 oder 9, bei dem der Speicher
(100) ein EEPROM ist.
11. Verfahren nach einem der Ansprüche 8 bis 10, bei dem der
Speicher eine Mehrzahl von Speicherseiten umfasst, und bei
dem der Cache-Speicher (110) eine Mehrzahl von Speicherseiten
umfasst, wobei der Inhalt einer Speicherseite in dem Speicher
zwischen dem Speicher und dem Cache-Speicher übertragen wird,
und wobei über die virtuelle Adresse auf die Speicherseite
zugegriffen wird.
12. Verfahren nach einem der Ansprüche 1 bis 3, bei dem vor
dem Schritt (b) bestimmt wird, ob ein Speicherplatz oder meh
rere Speicherplätze in dem Speicher (100) fehlerhaft sind,
und bei dem im Schritt (b) eine Zuordnung der virtuellen Ad
ressen (VA) nur zu fehlerfreien Speicherplätzen erfolgt, und
fehlerhafte Speicherplätze übersprungen werden.
13. Verfahren nach Anspruch 12, bei dem der Schritt des
Bestimmens, ob ein Speicherplatz fehlerhaft ist, das Zählen
der Zugriffe auf den Speicherplatz umfasst, wobei die dem
Speicherplatz zugeordnete Speicherzelle nach einer vorbe
stimmten Anzahl von Zugriffen als fehlerhaft klassifiziert
wird.
14. Verfahren nach Anspruch 12 oder 13, bei dem der Speicher
(100) ein EEPROM ist.
15. Verfahren nach einem der Ansprüche 12 bis 14, der Spei
cher eine Mehrzahl von Speicherseiten umfasst, wobei das
Bestimmen, das Zuordnen und das Überspringen bezüglich einer
Speicherseite oder mehrerer Speicherseiten in dem Speicher
erfolgt.
16. Verfahren nach einem der Ansprüche 1 bis 15, mit folgen
den Schritten nach dem Schritt (c):
Festlegen eines zusätzlichen Adressbereichs für eine Adres sierung des Speichers (100);
Hinzufügen von weiteren virtuellen Adressen für den zusätzli chen Adressbereich zu dem bereits existierenden virtuellen Adressen; und
Zuordnen der weiteren virtuellen Adressen zu den physikali schen Adressen der Speicherplätze.
Festlegen eines zusätzlichen Adressbereichs für eine Adres sierung des Speichers (100);
Hinzufügen von weiteren virtuellen Adressen für den zusätzli chen Adressbereich zu dem bereits existierenden virtuellen Adressen; und
Zuordnen der weiteren virtuellen Adressen zu den physikali schen Adressen der Speicherplätze.
17. Verfahren nach Anspruch 16, bei dem die weiteren virtuel
len Adressen derart den existierenden virtuellen Adressen zu
geordnet werden, dass sich ein kontinuierlicher virtueller
Adressbereich ergibt.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10127179A DE10127179A1 (de) | 2001-06-05 | 2001-06-05 | Verfahren zur Verwaltung eines Speichers einer Chipkarte |
AU2002316963A AU2002316963A1 (en) | 2001-06-05 | 2002-06-04 | Method for managing a chip card memory |
PCT/EP2002/006143 WO2002099650A2 (de) | 2001-06-05 | 2002-06-04 | Verfahren zur verwaltung eines speichers einer chipkarte |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10127179A DE10127179A1 (de) | 2001-06-05 | 2001-06-05 | Verfahren zur Verwaltung eines Speichers einer Chipkarte |
Publications (1)
Publication Number | Publication Date |
---|---|
DE10127179A1 true DE10127179A1 (de) | 2002-12-19 |
Family
ID=7687196
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10127179A Withdrawn DE10127179A1 (de) | 2001-06-05 | 2001-06-05 | Verfahren zur Verwaltung eines Speichers einer Chipkarte |
Country Status (3)
Country | Link |
---|---|
AU (1) | AU2002316963A1 (de) |
DE (1) | DE10127179A1 (de) |
WO (1) | WO2002099650A2 (de) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004066153A1 (de) * | 2003-01-20 | 2004-08-05 | Giesecke & Devrient Gmbh | Speicherdefragmentierung, insbesondere bei einem tragbaren datenträger |
WO2005036486A1 (de) * | 2003-10-10 | 2005-04-21 | Giesecke & Devrient Gmbh | Zugreifen auf datenelemente in einem tragbaren datenträger |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7243206B2 (en) | 2003-04-14 | 2007-07-10 | Arm Limited | Method and apparatus for using a RAM memory block to remap ROM access requests |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE4429905C1 (de) * | 1994-08-23 | 1995-09-07 | Siemens Ag | Verfahren zum Betrieb eines virtuellen Speichers |
WO2000014641A1 (de) * | 1998-09-04 | 2000-03-16 | Mueller Otto | Zugriffssteuerung eines speichers beschränkter löschhäufigkeit |
JP2000269284A (ja) * | 1999-03-15 | 2000-09-29 | Iwate Toshiba Electronics Kk | 半導体記憶素子の不良パターン解析方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5940850A (en) * | 1996-10-31 | 1999-08-17 | International Business Machines Corporation | System and method for selectively enabling load-on-write of dynamic ROM data to RAM |
DE19723676A1 (de) * | 1997-06-05 | 1998-08-27 | Siemens Ag | Verfahren zum Nachladen von Programmen auf eine Chip-Karte |
US6292874B1 (en) * | 1999-10-19 | 2001-09-18 | Advanced Technology Materials, Inc. | Memory management method and apparatus for partitioning homogeneous memory and restricting access of installed applications to predetermined memory ranges |
-
2001
- 2001-06-05 DE DE10127179A patent/DE10127179A1/de not_active Withdrawn
-
2002
- 2002-06-04 WO PCT/EP2002/006143 patent/WO2002099650A2/de not_active Application Discontinuation
- 2002-06-04 AU AU2002316963A patent/AU2002316963A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE4429905C1 (de) * | 1994-08-23 | 1995-09-07 | Siemens Ag | Verfahren zum Betrieb eines virtuellen Speichers |
WO2000014641A1 (de) * | 1998-09-04 | 2000-03-16 | Mueller Otto | Zugriffssteuerung eines speichers beschränkter löschhäufigkeit |
JP2000269284A (ja) * | 1999-03-15 | 2000-09-29 | Iwate Toshiba Electronics Kk | 半導体記憶素子の不良パターン解析方法 |
Non-Patent Citations (1)
Title |
---|
ANDREW, H., TANENBAUM, T.: Moderne Betriebs- systeme, Carl Hanser Verlag München Wien 1994, S. 110-112 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004066153A1 (de) * | 2003-01-20 | 2004-08-05 | Giesecke & Devrient Gmbh | Speicherdefragmentierung, insbesondere bei einem tragbaren datenträger |
WO2005036486A1 (de) * | 2003-10-10 | 2005-04-21 | Giesecke & Devrient Gmbh | Zugreifen auf datenelemente in einem tragbaren datenträger |
Also Published As
Publication number | Publication date |
---|---|
AU2002316963A1 (en) | 2002-12-16 |
WO2002099650A2 (de) | 2002-12-12 |
WO2002099650A3 (de) | 2003-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE60030876T2 (de) | Bereichsverwaltung eines nichtflüchtigen Speichers mit hoher Kapazität | |
DE60006779T2 (de) | Verfahren zum schreiben eines geänderten bios codes in den rompeicherchip einer hostschnittstelle | |
DE19615948C2 (de) | Flash-Festkörper-Plattenspeicher-Karte | |
DE102005019842B4 (de) | System und Verfahren zum sequentiellen Schreiben von Daten in einen Flash-Speicher | |
DE112008001126B4 (de) | Verschleißausgleich | |
DE69737709T2 (de) | Verfahren und Vorrichtung für Informationsverarbeitung und Speicherzuordnungsanordnung | |
DE60130593T2 (de) | Flash-Speicherarchitektur mit gleichzeitig programmierbaren mehrfachen hostfähigen Flash-Speicherbanken | |
DE10238566A1 (de) | Fenster-basierendes Flashspeicher-Speichersystem und Management und Zugriffsverfahren darauf | |
DE102005031525A1 (de) | Verfahren und System zur Steuerung eines Flashspeichers und Speichersystem | |
DE102006005877A1 (de) | Adresszuordnungstabelle und Verfahren zum Erzeugen einer Adresszuordnungstabelle | |
EP1183690B1 (de) | Speicheranordnung mit adressverwürfelung | |
DE10344625A1 (de) | Halbleiterspeichervorrichtung mit einer Verhinderungsfunktion betreffend eine Datenänderung aufgrund sich aufsummierender Störungen | |
DE602004008240T2 (de) | Verfahren zum Verwalten von defekten Speicherblöcken in einem nicht-flüchtigen Speicher und nicht-flüchtiger Speicher zur Ausführung des Verfahrens | |
DE102019102861A1 (de) | Verfahren und Vorrichtung zur Abschätzung der Abnutzung eines nicht-flüchtigen Informationsspeichers | |
DE102012101405B4 (de) | Steuervorrichtung zum Steuern eines Datenlesens und - schreibens von und zu einem Flash-Speicher | |
DE10127179A1 (de) | Verfahren zur Verwaltung eines Speichers einer Chipkarte | |
DE102004013493B4 (de) | Zugriffs-Verfahren für einen NAND-Flash-Speicherbaustein und ein entsprechender NAND-Flash-Speicherbaustein | |
DE10127194B4 (de) | Verfahren und Vorrichtung zum Ausblenden von nicht funktionstüchtigen Speicherzellen | |
DE102018132385A1 (de) | Verfahren zur Implementierung eines virtuellen Adressraumes auf einem eingebetteten System | |
DE10134654A1 (de) | Verfahren zur Fehleranalyse von Speichermodulen | |
EP1559111B1 (de) | Verfahren zum betreiben einer speicheranordnung | |
DE102004057178A1 (de) | Siliziumspeichermedium, Steuer- und Zugangsmethode | |
DE10227256C1 (de) | Verfahren zum Adressieren von blockweise löschbaren Speichern | |
DE102004005290B3 (de) | Verfahren und Vorrichtung zur Absicherung von Daten in einem nichtflüchtigen Datenspeicher | |
EP1600855B1 (de) | Erzeugen und Verwenden von Speicherbelegungsinformationen bei einem tragbaren Datenträger |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8127 | New person/name/address of the applicant |
Owner name: QIMONDA AG, 81739 MUENCHEN, DE |
|
8130 | Withdrawal |