DE10127179A1 - Verfahren zur Verwaltung eines Speichers einer Chipkarte - Google Patents

Verfahren zur Verwaltung eines Speichers einer Chipkarte

Info

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
Application number
DE10127179A
Other languages
English (en)
Inventor
Robin Boch
Stefan Erdmenger
Stephan Ondrusch
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qimonda AG
Original Assignee
Infineon Technologies AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infineon Technologies AG filed Critical Infineon Technologies AG
Priority to DE10127179A priority Critical patent/DE10127179A1/de
Priority to AU2002316963A priority patent/AU2002316963A1/en
Priority to PCT/EP2002/006143 priority patent/WO2002099650A2/de
Publication of DE10127179A1 publication Critical patent/DE10127179A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination 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.
Bezugszeichenliste
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

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).
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.
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.
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.
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.
DE10127179A 2001-06-05 2001-06-05 Verfahren zur Verwaltung eines Speichers einer Chipkarte Withdrawn DE10127179A1 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
ANDREW, H., TANENBAUM, T.: Moderne Betriebs- systeme, Carl Hanser Verlag München Wien 1994, S. 110-112 *

Cited By (2)

* Cited by examiner, † Cited by third party
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