DE10317147A1 - Sicheres Speichersystem mit Flash-Speichern und Cache-Speicher - Google Patents

Sicheres Speichersystem mit Flash-Speichern und Cache-Speicher Download PDF

Info

Publication number
DE10317147A1
DE10317147A1 DE10317147A DE10317147A DE10317147A1 DE 10317147 A1 DE10317147 A1 DE 10317147A1 DE 10317147 A DE10317147 A DE 10317147A DE 10317147 A DE10317147 A DE 10317147A DE 10317147 A1 DE10317147 A1 DE 10317147A1
Authority
DE
Germany
Prior art keywords
memory
cache
smart card
flash
volatile
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
DE10317147A
Other languages
English (en)
Inventor
Fabrice Poulard
Van-Lam Nguyen
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.)
Renesas Electronics Europe GmbH
Original Assignee
Renesas Electronics Europe GmbH
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 Renesas Electronics Europe GmbH filed Critical Renesas Electronics Europe GmbH
Priority to DE10317147A priority Critical patent/DE10317147A1/de
Priority to PCT/EP2004/003923 priority patent/WO2004090725A2/de
Publication of DE10317147A1 publication Critical patent/DE10317147A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • 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
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/357Cards having a plurality of specified features
    • G06Q20/3576Multiple memory zones on card
    • G06Q20/35765Access rights to memory zones
    • 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
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Strategic Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Accounting & Taxation (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Die Erfindung schlägt eine datensichere Smart-Card-Vorrichtung vor, die neben einer Steuereinheit (1001) und einem Flasch-Speicher (1003) einen nichtflüchtigen Cache-Speicher (1002) aufweist, beispielsweise in Form eines FeRAM oder eines MRAM.

Description

  • Die vorliegende Erfindung bezieht sich auf ein sicheres Speichersystem mit einem Flash-Speicher und einem Cache-Speicher und insbesondere auch ein sicheres Speichersystem mit Flash-Speicher und Cache-Speicher in Smart-Cards oder Smart-Card-ICs (integrierte Schaltungen).
  • Ein permanenter nichtflüchtiger Speicher ist ein Schlüsselelement in der Entwicklung eines weiten Bereiches von Anwendungen und Märkten.
  • Seit der Einführung des ersten PROM bis hin zu dem neu verfügbaren FeRAM (ferroelektrisches RAM) und dem MRAM (magnetisches RAM) ermöglicht jede Art von programmierbaren nichtflüchtigem Speicher unübertroffene Lösungen für Schlüsselanforderungen der Benutzer. Es sei hier zum Beispiel die Ersetzung von ROM für eine höhere Flexibilität und einer schnelleren Markteinführung sowie die Anwendung von entfernbaren Speichergeräten hoher Kapazität in Verbrauchermärkten (z.B. digitale Kameras, PDAs) genannt.
  • Die für jede Anwendungsumgebung vorgegebenen Erfordernisse und Begrenzungen bestimmen die Art des progammierbaren nichtflüchtigen Speichers, der in ein gegebenes Gerät zu implementieren ist. In den meisten Fällen besteht eine exakte Übereinstimmung zwischen den Spezifikationen des Gerätes und der Charakteristik einer Speicherart. Allerdings gibt es spezifische Anwendungen, die spezifische Erfordernisse und Begrenzungen haben, die manchmal eine Kombination von einigen Speichercharakteristiken erfordern, die nicht durch eine Art des nichtflüchtigen Speichers abgedeckt sind. Smart-Cards finden sich unter diesen. Eine typische Smart-Card-Vorrichtung hat eine kleine Mikrosteuereinheit (mit z.B. 5 bis 8 Eingabe-/Ausgabeanschlußstiften), die um ihren CPU-Kern zweckbestimmte Ein gabe- und Ausgabegeräte für bestimmte Anwendungen und Speicher aufweist, der ROM in der Größe von einigen hundert Kilobyte, teilpermanenten, nichtflüchtigen Speicher in der Größe von einigen zehn Kilobyte und SRAM in der Größe von einigen Kilobyte mischt. Eine Smart-Card-Vorrichtung vereinigt die am meisten begrenzenden Anforderungen für programmierbare, nichtflüchtige Speicher, indem es ihn für Daten und Anwendungen im Native-Interpreted-Modus benutzt.
  • Da die elektrische Stromzufuhr nicht in der Smart-Card integriert ist, stammt eine Begrenzung von der Anwendungsumgebung. Der Strom wird durch ein zweckbestimmtes Lesegerät zugeführt (Die Integration einer dünnen Batterie in die Karte ist technisch möglich, aber nicht ökonomisch sinnvoll). Dies erfordert es, dass, wenn das Smart-Card-Gerät seine Anwendungsdaten behandelt, es die Behandlung zu sichern hat, um die Datenintegrität selbst in de Fall einer Stromunterbrechung zu gewährleisten.
  • Die Art des nichtflüchtigen Speichers, die am besten diese Anforderung erfüllt, sollte erlauben, dass die Daten auf einer Wort-zu-Wort-Basis reprogrammiert werden können. Diese Eigenschaft erleichtert die Durchführung von Sicherungsmechanismen und verringert den Umfang von Integritätsverlusten, falls welche auftreten. Um den Einschluss des Leistungsverlustes auf der Anwendungsebene zu minimieren, die durch die Verwaltung des nichtflüchtigen Speichers eingeführt wird (das auch die Sicherungsverwaltung einschließt), sind auch schnelle Lösch- und Programmierzüge erforderlich. Eine Begrenzung bezieht sich auf die Betriebslebensdauer. Die Beanspruchung, die durch aufeinanderfolgende Vorgänge von Neuprogrammierungen auf den teilpermanenten, nichtflüchtigen Speicher eingeführt werden, verändern seine Lebensdauer. Da es schwierig ist, die Anzahl von Datenaktualisierungen, die innerhalb der Lebensdauer einer Smart-Card durchgeführt werden, vorherzusagen, ist nichtflüchtiger Speicher hoher Lebensdauer erforderlich (mindestens hunderttausend Programmierzyklen). Eine andere Begrenzung bezieht sich auf die physikalischen Abgrenzungen. Um die mechanische Beanspruchung zu minimieren und um es in ein Smart-Card-Mikromodulgehäuse einupassen, ist die physikalische Größe des Halbleiterplättchens einer Smart-Card-Vorrichtung begrenzt (der maximale Platzbedarf, der üblicherweise in der Industrie akzeptiert wird, beträgt 25 mm2). Diese Begrenzung hat einen direkten Einfluß auf die gesamte Speicherkapazität des nichtflüchtigen Speichers, der in das Gerät integriert werden kann, da dem nichtflüchtigen Speicher im allgemeinen mehr als 60% der gesamten Größe des Halbleiterplättchens zukommt. In Abhängigkeit von der Anwendung (z.B. GSM oder Bankgeschäfte) beeinflusst schließlich die Begrenzung des Stromverbrauchs die Strategie der Neuprogrammierung, die normalerweise hohe Spannungen erfordert.
  • Unter den programmierbaren, nichtflüchtigen Speichern sind EEPROMs, Flash-Speicher und FeRAMs die besten Kanditaten, die sich für eine Smart-Card-Vorrichtung eignen.
  • EEPROM ist eine robuste und erprobte Technologie, die seit dem Anfang in Smart-Card-Geräten verwendet wird und die den meisten Anforderungen entspricht: Wortlöschzugriff und Wortprogrammzugriff mit ausreichenden Zeiten (einige Millisekunden) bei Nativanwendungen, hohe Lebensdauer, ein annehmbarer Platzbedarf für Speicherkapazität bis zu 64 KB und einen akzeptablen Stromverbrauch. EEPROM erreicht die Grenzen, wenn es zusammen mit der Java-Card-Technologie verwendet wird (die einen schnellen Wortaktualisierungszugriff erfordert, um entsprechende Anwendungsleistungen zu erbringen) und für Speicherkapazitäten von 128 und mehr KB. Das Verkleinern der EEPROM-Technologie unter 0,25 mm ist aufgrund der Hochspannungserfordernis für Lösch- und Programmiervorgänge auch ein Problem.
  • Ein Flash-Speicher ist so robust wie EEPROMs. Er hat das beste Verhältnis von Speicherkapazität gegenüber dem Platzbedarf und hat mit EEPROM vergleichbare Programmierungszeiten, Lebensdauer und Strombedarf. Flash-Speicher sind in einer Technologie kleiner als 0,25 μm verfügbar.
  • Obwohl der Flash-Speicher die ideale Lösung zum Speichern von Anwendungen ist, ist er dies nicht für den Fall von Anwendungsdaten. In seinem üblichen Aufbau (d.h. Aufbau in großen (größer als 1 KB) programmierbaren Sektoren) erlaubt der Flash-Speicher keinen Wortlöschzugriff Das Emulieren dieser Funktion hat größere Auswirkungen auf Seiten des Platzbedarfs, wodurch der Flash-Speicher seinen großen Vorteil verliert.
  • Der FeRAM ist eine sehr neue Technologie, die noch nicht in der Massenproduktion erprobt ist. Seine großen Vorteile sind Wortzugriff und Sofortaktualisierungszugriff (wenige hundert Nanosekunden), was eine Verwaltung des nichtflüchtigen Speichers wie RAM ermöglicht. FeRAM steht in einer Technologie kleiner als 0,25 μm zur Verfügung. Er erfordert keine hohen Spannungen zum Neuprogrammieren, wodurch er sich als nichtflüchtiger Speicher geringen Stromverbauches auszeichnet. Neueste technologische Entwicklungen zeigen eine sehr hohe Lebensdauer.
  • Da die Dichte des FeRAMs (2T/2C-Struktur) näher zu der des EEPROM ist, ist er nicht für Speicherkapazitäten von 128 und mehr KB bei sehr begrenzten Größen des Halbleiterplättchens geeignet. EEPROM ist der beste Kompromiß, um bis zu einem bestimmten Niveau von Speicherfähigkeiten für Anwendungen von Daten all die Anforderungen bei Smart-Card-Vorrichtungen abzudecken. Es zeigen sich klare Grenzen, die schnell anwachsenden Anforderungen der Benutzer anzusprechen. Es ist kein teilpermanenter, nichtflüchtigen Speicher verfügbar, der selber alle Anforderungen bei der Ersetzung von EEPROM erfüllt.
  • Das Mischen von Flash-Speicher, um Anwendungen zu speichern, und EEPROM oder FeRAM, um Daten zu speichern, ist durchführbar. Allerdings ist diese Art des Mischens ökonomisch nicht sinnvoll und erfordert Trennung von Programmcode und Daten mit den entsprechenden Begrenzungen der Größe und geringerer Flexibilität bei Gebrauch des nichtflüchtigen Speichers.
  • Die Aufgabe der Erfindung ist es, ein teilpermanentes Speichersystem mit nichtflüchtigem Speicher bereitzustellen, das große Speicherkapazitäten innerhalb desselben Platzbedarfes wie Standard-Flash-Speicher mit der Fähigkeit der sofortigen Wort-für-Wort-Neuprogrammierung des gesamten Speichers auf eine sichere Art vereinigt.
  • Diese Erfindung soll für Smart-Card-Vorrichtungen als ein Ersatz des EEPROMs benutzt werden, um große Speicherkapazitäten (bis zu einigen MB) mit einem schnellen Direktzugriff anzusprechen, um die effektive Betriebsbandbreite des Systems zu erhöhen.
  • Diese und weitere Aufgaben der Erfindung werden durch eine miniaturisierte Datenverarbeitungs- und Speichereinheit nach Anspruch 1 gelöst. Die abhängigen Ansprüche betreffen vorteilhafte Weiterentwicklungen der Erfindung.
  • Bei einem herkömmlichen Speichersystem mit Cache-Speicher und Flash-Speicher wird auf den Flash-Speicher codeunabhängig über den Cache-Speicher zugegriffen, der aus einem kleinen SRAM-Puffer gebildet wird, um die effektive Betriebsbandbreite des Systems zu erhöhen. Die vorgeschlagene Verbesserung des herkömmlichen Speichersystems mit Cache-Speicher und Flash-Speicher sichert selbst für den Fall einer Stromunterbrechung die Erhaltung der programmierten Daten. In dem man anstelle von SRAM FeRAM verwendet, wird der Cache-Speicher selbst nichtflüchtig . Da der Cache-Speicher auch frei in wenigen hundert Nanosekunden neu programmiert werden kann, arbeitet das Gesamtsystem (Flash-Speicher + FeRAM) als ein nichtflüchtiger RAM. Weiterhin kann jeder schnelle und teilpermanente nichtflüchtige Speicher mit Wortzugriff (wie herkömmliche nichtflüchtige RAMs oder auch MRAMs) anstelle von FeRAM verwendet werden.
  • 1 ist ein Blockdiagramm, das schematisch den Aufbau des sicheren Speichersystems mit Cache-Speicher und Flash-Speicher zeigt;
  • 2A ist eine schematische Darstellung, die das dynamische Spiegeln von Sektoren darstellt;
  • 2B ist eine schematische Darstellung, die das dynamische Spiegeln von Worten darstellt;
  • 3A ist ein Flußdiagramm für das Auslesen eines Wortes nach 2A;
  • 3B ist in Flußdiagramm für das Auslesen eines Wortes nach 2B;
  • 4A ist ein Flußdiagramm für das Aktualisieren von Adressen und Worten nach 2A;
  • 4B ist ein Flußdiagramm für das Aktualisieren von Worten und Adressen nach 2B.
  • 1 stellt die Anordnung der Datenflüsse des sicheren Speichersystems mit Cache-Speicher und Flash-Speicher dar. Das System wird von einer Steuereinheit 1001 gebildet, die als die Schnittstelle zwischen dem nicht dargestellten CPU-Kern und dem Flash-Speicher dient. Die Steureinheit verbindet einerseits einen teilpermanenten, nichtflüchtigen Cache-Speicher 1002, der aus einer geringen Menge von zum Beispiel FeRAM-Bereich gebildet wird, und andererseits eine große Menge von teilpermanentem Flash-Bereich 1003.
  • Die CPU, die mit dem Speichersystem verbunden ist, sieht es als einen großen zusammenhängenden Direktzugriffsspeicherbereich, dessen Größe dem Flash-Speicher entspricht. Der Speicheraufbau innerhalb des Speichersystems wird im folgenden beschrieben. Der Flash-Speicher 1003 ist ein zusammenhängender Bereich von Flash-Speicher, der physikalisch in zusammenhängende Sektoren geteilt ist. Die Größe des Flash-Speichers beträgt einige hundert KB. Die Größe eines Sektors beträgt wenige KB, wobei eine übliche Sektorgröße 2 KB ist. Mögliche Vorgänge in den Flash-Speichern sind: Lesen eines Wortes (in wenigen hundert Nanosekunden), Programmieren eines Wortes (in wenigen Mikrosekunden) und das Löschen eines Sektors (in wenigen Mikrosekunden).
  • Der nichtflüchtige Cache-Speicher 1002 weist zum Beispiel einen zusammenhängenden Bereich von FeRAM-Speicher auf. Die Größe des Caches beträgt wenige KB. Mögliche Vorgänge in dem Cache-Speicher sind: Lesen eines Wortes (in wenigen hundert Nanosekunden) und das Aktualisieren eines Wortes (in wenigen hundert Nanosekunden).
  • Es gibt zwei Möglichkeiten, den nichtflüchtigen Cache-Speicher 1002 zu organisieren. Bei der ersten Möglichkeit (im folgenden als Möglichkeit 1 bezeichnet) wird der Cache-Speicher (zum Beispiel FeRAM) in Cache-Sektoren unterteilt, wobei die Größe eines Cache-Sektors der Größe eines Sektors des Flash-Speichers 1003 angepasst ist. Bei dieser Möglichkeit ist ein Cache-Sektor ein Abbild von einem Flash-Sektor. Wie in 2A ge zeigt, führt die Steuereinheit einen Spiegelmechanismus von Sektoren zwischen den Cache-Sektoren und den Flash-Sektoren durch.
  • Bei der zweiten Möglichkeit (im folgenden als Möglichkeit 2 bezeichnet) wird der Cache-Speicher logisch in differenzierte Bereiche unterteilt, wobei ein Bereich die Adressen der Worte speichert, die im Flash-Speicher 1003 abgeändert wurden, und ein Bereich (derselben Größe) die Werte der abgeänderten Worte speichert. Wie in 2B gezeigt, führt die Steuereinheit einen Spiegelmechanismus zwischen den Worten im Cache-Speicher 1002 und den Worten im Flash-Speicher 1003 durch. Ein letzter Bereich des Cache-Speichers wird als ein Datenpuffer benutzt, um auf eine sichere Art im Flash zu programmieren und zu aktualisieren.
  • Bei beiden Möglichkeiten weist ein nichtflüchtiger Systembereich, der mit dem Cache-Speicher verbunden ist, die notwendigen Informationen für das System auf, um den Speichermechanismus zu verwalten. Der Vorteil von Möglichkeit 1 ist die Ausführung einer einfachen Steuereinheit. Der Vorteil von Möglichkeit 2 ist der Anstieg der Betriebslebensdauer des Flashs 1003.
  • Ein Lesevorgang nach Möglichkeit 1 wird im folgenden beschrieben. Um ein Wort aus dem sicheren Speichersystem mit Cache-Speicher und Flash-Speicher auszulesen, wird die Adresse auf der Adressenleitung 1020 eingestellt und der Lesevorgang über die Vorgangsleitung 122 ausgelöst. 3A ist ein Flußdiagramm zur Steuerlogik der Sequenzen zum Auslesen aus dem sicheren Speichersystem mit Cache-Speicher und Flash-Speicher, wenn der nichtflüchtige Cache-Speicher 1002 nach Möglichkeit 1 aufgebaut ist.
  • Wenn durch die Vorgangsleitung 1022 ein Lesevorgang ausgelöst wird, erfasst die Steuereinheit 1001 die Adresse auf der Adressenleitung 1020 und prüft, ob sie von einem der Cache-Sektoren abgebildet wird (d.h. einer der logischen Sektoren in dem nichtflüchtigen Cache-Speicher 1002 spiegelt den Sektor im Flash-Speicher 1003, die die Adresse enthält).
  • Wenn die Adressen nicht von dem nichtflüchtigen Cache-Speicher 1002 abgebildet wird, setzt die Steuereinheit 1001 die Adresse auf der Adressenleitung 1013 und löst einen Lesevorgang auf der Steuerleitung 1015 aus. Daraufhin gibt der Flash-Speicher 1003 das Wort aus, der an der Adresse auf der Datenleitung 1014 gelesen wird.
  • Wenn die Adresse durch den nichtflüchtigen Flash-Speicher 1002 abgebildet wird, berechnet die Steuereinheit mittels der Informationen, die in dem nichtflüchtigen Systembereich verfügbar sind, die Adresse (Versatz) in dem Cache-Sektor, der der Adresse im Flash-Speicher entspricht. Sie setzt die berechnete Adresse (Versatz) auf der Adressenleitung 1010 und löst einen Lesevorgang auf der Steuereleitung 1012 aus. Daraufhin gibt der nichtflüchtige Cache-Speicher 1002 das Wort auf der Datenleitung 1011 aus, das an der berechneten Adresse (Versatz) gelesen wird.
  • Sobald das Zielwort erfasst wird, gibt die Steuereinheit 1001 es auf der Datenleitung 1023 aus, zeigt den Betriebszustand auf der Zustandsleitung 1023 an und beendet den Vorgang (und wartet auf den nächsten Vorgang).
  • Hinsichtlich des Lesevorgangs nach der zweiten Möglichkeit wird auf das Flußdiagramm der 3B verwiesen.
  • Um ein Wort in dem sicheren Speichersystem mit Cache-Speicher und Flash-Speicher zu aktualisieren, wird die Adresse auf der Adressenleitung 1020 eingestellt, wird das Wort auf der Datenleitung 1021 eingestellt und der Aktualisierungsvorgang über die Vorgangsleitung 1022 ausgelöst. 4A ist ein Flußdiagramm der Steuerlogik zum Aktualisieren des sicheren Speichersystems mit Cache-Speicher und Flash-Speicher, wenn der nichtflüchtige Cache-Speicher 1002 nach Möglichkeit 1 aufgebaut ist.
  • Sobald durch die Vorgangsleitung 1022 ein Aktualisierungsvorgang ausgelöst wird, erfasst die Steuereinheit 1001 die Adresse auf der Adressenleitung 1020 und erfasst die Daten auf der Datenleitung 1021. Die Steuereinheit prüft dann, ob die Adresse durch einen der Cache-Sektoren abgebildet wird (Das heißt einer der logischen Sektoren in dem nicht flüchtigen Cache-Speicher 1002 spiegelt den Sektor im Flash-Speicher 1003, der die Adresse ADDR enthält).
  • Wenn die Adresse von dem nichtflüchtigen Cache-Speicher 1002 abgebildet wird, berechnet die Steuereinheit 1001 die Adresse (Versatz) in dem Cache-Sektor, der der Adresse in dem Flash-Speicher entspricht. Sie setzt die Daten auf die Datenleitung 1011, setzt die berechnete Adresse (Versatz) auf die Adressenleitung 1010 und löst einen Aktualisierungsvorgang auf der Steuerleitung 1012 aus.
  • Wenn die Adresse nicht durch den nichtflüchtigen Cache-Speicher 1002 abgebildet wird, überprüft die Steuereinheit 1001 die Verfügbarkeit eines Cache-Sektors, um den Flash-Sektor zu spiegeln, der die Adresse enthält.
  • Wenn eine odere mehrere Cache-Sektoren frei sind (d.h. sie spiegeln keinen Flash-Sektor), wählt die Steuereinheit 1001 einen Sektor aus (Schritt 4001 beliebige Auswahl), um den Flash-Sektor zu spiegeln, der die Adresse ADDR enthält.
  • Wenn kein Cache-Sektor frei ist, wählt die Steuereinheit 1001 vor dem Spiegeln des Flash-Sektors, der die Adresse ADDR enthält, einen zu löschenden Sektor aus. Diese Auswahl (Schritt 1002) kann auf verschiedenen Strategien beruhen. Die zu beschreibenden Sektoren können zum Beispiel zufällig, nacheinander oder dem Alter nach ausgewählt werden.
  • Der Löschvorgang des Cache-Sektors wird wie folgt durchgeführt. Die Steuereinheit 1001 setzt die Startadresse des Flash-Sektors auf der Adressenleitung 1013, die durch den ausgewählten Sektor gespiegelt wird, den letzten Löschvorgang auf der Vorgangsleitung 1015, um den gesamten Flash-Sektor zu löschen, sie wartet auf das Ende des Löschvorgangs, der durch die Zustandsleitung 1016 angezeigt wird, und kopiert dann den gesamten ausgewählten Cache-Sektor zu seinem entsprechenden Flash-Sektor.
  • Das Kopieren eines Wortes von einem Cache-Sektor zu seinem entsprechenden Flash-Sektor wird wie folgt durchgeführt. Die Steuereinheit 1001 setzt die Cache-Sektor-Adresse auf der Adressenleitung 1010, sie setzt den Lesevorgang auf der Steuerleitung 1012, sie erfasst das auf der Datenleitung 1011 gelesene Wort, sie setzt dieses Wort auf die Datenleitung 1014, sie setzt auf der Adressleitung 1013 die Flash-Adresse, die der Cache-Sektor-Adresse entspricht, sie setzt auf der Steuerleitung 1015 den Programmvorgang und wartet auf das Ende des Programmvorgangs, der durch die Zustandsleitung 1016 angezeigt wird. Um einen gesamten Cache-Sektor zu kopieren, wird der Vorgang für jede Adresse des gegebenen Sektors wiederholt.
  • Sobald ein Cache-Sektor (frei oder gelöscht) ausgewählt ist, wird diesem Sektor der Flash-Sektor kopiert, der die Adresse ADDR enthält. Das Spiegeln des Flash-Sektors in dem nichtflüchtigen Cache-Speicher 1002 ist vollendet, sobald der nichtflüchtige Systembereich mit der Sektoridentifikation aktualisiert ist.
  • Das Kopieren eines Wortes von einem Flash-Sektor zu seinem entsprechenden Cache-Sektor wird wie folgt durchgeführt. Die Steuereinheit 1001 setzt auf der Adressenleitung 1013 die Flash-Adresse, die der Cache-Sektoren-Adresse entspricht, sie setzt den Lesevorgang auf der Steuerleitung 1015, sie erfasst das auf der Datenleitung 1014 gelesene Wort, sie setzt dieses Wort auf die Datenleitung 1011, sie setzt auf der Adressenleitung 1010 die Cache-Sektor-Adresse und setzt auf der Steuerleitung 1012 den Aktualisierungsvorgang. Um einen gesamten Flash-Sektor zu kopieren, wird der Vorgang für jede Adresse in dem gegebenen Sektor wiederholt.
  • Sobald der Flash-Sektor gespiegelt ist, berechnet die Steuereinheit 1001 mittels der Informationen, die in dem nichtflüchtigen Systembereich zur Verfügung stehen, die Adresse (Versatz) in dem Cache-Sektor, der der Adresse im Flash entspricht, setzt sie die berechnete Adresse (Versatz) auf die Adressleitung 1010, setzt sie die Daten WORD auf die Datenleitung 1011 und löst einen Aktualisierungsvorgang auf der Steuerleitung 1012 aus.
  • Während der Kopiervorgänge, die vor dem Aktualisieren des Caches durchgeführt werden können, wird der nichtflüchtige Systembereich benutzt, um die vollständige Wiederherstellung der Speicherkonfiguration im Fall einer Stromunterbrechung zu gewährleisten.
  • Die Fortschritte der Lösch- und Kopiervorgänge werden automatisch in dem Systembereich aufgezeichnet, um eine Wiederherstellung im Falle jeglicher unerwarteter Unterbrechungen während der Ausführung der Schritte 4003, 4004, 4005 und 4006 zu ermöglichen.
  • Hinsichtlich der Aktualisierungsvorgänge nach Möglichkeit 2 wird auf das Flußdiagramm der 4B verwiesen.

Claims (10)

  1. Miniaturisierte Datenverarbeitungs- und Speichereinheit (Smart-Card-IC) mit einer Steuervorrichtung (1001), einem Flash-Speicher (1003) und einem Cache-Speicher (1002), dadurch gekennzeichnet, daß der Cache-Speicher nichtflüchtig ist.
  2. Smart-Card-IC nach Anspruch 1, wobei der Cache-Speicher (1002) ein nichtflüchtiger, schneller Direktzugriffsspeicher ist.
  3. Smart-Card-IC nach Anspruch 2, bei dem der Cache-Speicher (1002) ein ferroelektrisches RAM (FeRAM) oder magnetisches RAM (MRAM) umfasst.
  4. Smart-Card-IC nach Ansprüchen 1 bis 3, bei dem logisch der Cache-Speicher (1002) in Cache-Sektoren und der Flash-Speicher in Flash-Sektoren unterteilt ist, wobei die Größe eines Cache-Sektors der Größe eines Flash-Sektors entspricht.
  5. Smart-Card-IC nach Ansprüchen 1 bis 3, bei der der Cache-Speicher (1002) logisch in verschiedene Bereiche unterteilt ist, wobei ein Bereich zum Speichern der Adressen von Worten dient, die in dem Flash-Speicher (1003) geändert wurden, und ein anderer Bereich zum Speichern der Werte der abgeänderten Worte dient und ein weiterer Bereich als Ersatzbereich zum Wiederherstellen des Speicheraufbaus dient.
  6. Smart-Card-IC nach Ansprüchen 1 bis 5 mit einem Speicherverwaltungssystem, das automatisch die Flash-Sektoren in Cache-Sektoren spiegelt, wobei Aktualisierungsvorgänge in den Cache-Sektoren vor dem Kopieren in die entsprechenden Flash-Sektoren durchgeführt werden.
  7. Smart-Card-IC nach den Ansprüchen 1 bis 6, wobei große Kapazitäten von nichtflüchtigem Speicher als zusammenhängender nichtflüchtiger RAM mit einem schnellen Wortaktualisierungszugriff innerhalb weniger 100 ns gesehen werden.
  8. Smart-Card-IC nach Anspruch 7, bei dem große Kapazitäten des schnellen, nichtflüchtigen Direktzugriffsspeichers mit einem verringerten Platzbedarf des Halbleiterchips umgesetzt werden können.
  9. Smart-Card-IC nach Anspruch 7, bei dem das Aktualisieren eines Datenwortes in dem nichtflüchtigen Speicher benachbarte Worte in einem gegebenen Speicherbereich nicht verändert.
  10. Smart-Card-IC nach Anspruch 7, bei dem die Gegenmaßnahme bei Stromausfällen während der Verwaltung von nichtflüchtigen Speichern durch ein Softwaresystem im Gegensatz zu der herkömmlichen Verwaltung von EEPROM oder Flash-Speicher einfacher und nahezu unbemerkbar wird.
DE10317147A 2003-04-14 2003-04-14 Sicheres Speichersystem mit Flash-Speichern und Cache-Speicher Withdrawn DE10317147A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE10317147A DE10317147A1 (de) 2003-04-14 2003-04-14 Sicheres Speichersystem mit Flash-Speichern und Cache-Speicher
PCT/EP2004/003923 WO2004090725A2 (de) 2003-04-14 2004-04-14 Sicheres speichersystem mit flash-speichern und cache-speicher

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10317147A DE10317147A1 (de) 2003-04-14 2003-04-14 Sicheres Speichersystem mit Flash-Speichern und Cache-Speicher

Publications (1)

Publication Number Publication Date
DE10317147A1 true DE10317147A1 (de) 2004-10-28

Family

ID=33039083

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10317147A Withdrawn DE10317147A1 (de) 2003-04-14 2003-04-14 Sicheres Speichersystem mit Flash-Speichern und Cache-Speicher

Country Status (2)

Country Link
DE (1) DE10317147A1 (de)
WO (1) WO2004090725A2 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102007055653A1 (de) 2007-11-21 2009-05-28 Giesecke & Devrient Gmbh Portabler Datenträger mit Web-Server

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9378793B2 (en) 2012-12-20 2016-06-28 Qualcomm Incorporated Integrated MRAM module

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19928733A1 (de) * 1999-06-23 2001-01-04 Giesecke & Devrient Gmbh Halbleiterspeicher-Chipmodul
DE10127181A1 (de) * 2001-06-05 2002-12-19 Infineon Technologies Ag Sicherheitsmodul, Verfahren zum Konfigurieren desselben und Verfahren und Vorrichtung zum Herstellen desselben

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6078520A (en) * 1993-04-08 2000-06-20 Hitachi, Ltd. Flash memory control method and information processing system therewith
US6263398B1 (en) * 1998-02-10 2001-07-17 Ramtron International Corporation Integrated circuit memory device incorporating a non-volatile memory array and a relatively faster access time memory cache
JP2000057039A (ja) * 1998-08-03 2000-02-25 Canon Inc アクセス制御方法及び装置及びファイルシステム及び情報処理装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19928733A1 (de) * 1999-06-23 2001-01-04 Giesecke & Devrient Gmbh Halbleiterspeicher-Chipmodul
DE10127181A1 (de) * 2001-06-05 2002-12-19 Infineon Technologies Ag Sicherheitsmodul, Verfahren zum Konfigurieren desselben und Verfahren und Vorrichtung zum Herstellen desselben

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
LOBRY, Olivier: MMU-based software cache and swap mechanisms for smart card operating systems. In: Gemplus Conference Singapore, S.1-7 *
LOBRY, Olivier: MMU-based software cache and swap mechanisms for smart card operating systems. In: Gemplus Conference Singapore, S.1-7;
TSUDA,Kenji: NEC Integrates FeRAM on MPU with Multilayer Wiring. In: NEA - News from Asia Pacific: July 1998, Japan, S.3 *
TSUDA,Kenji: NEC Integrates FeRAM on MPU with Multilayer Wiring. In: NEA - News from Asia Pacific: July 1998, Japan, S.3;

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102007055653A1 (de) 2007-11-21 2009-05-28 Giesecke & Devrient Gmbh Portabler Datenträger mit Web-Server
US8595318B2 (en) 2007-11-21 2013-11-26 Giesecke & Devrient Gmbh Portable data carrier comprising a web server

Also Published As

Publication number Publication date
WO2004090725A3 (de) 2005-09-15
WO2004090725A2 (de) 2004-10-21

Similar Documents

Publication Publication Date Title
DE69034191T2 (de) EEPROM-System mit aus mehreren Chips bestehender Blocklöschung
DE69227499T2 (de) Einen Flashspeicher verwendendes Speichergerät
DE69635663T2 (de) vERFAHREN FÜR DAS EINSPEICHERN VON DATEN IN EINEM FLASH-EEPROM-HAUPTSPEICHER IN EINEM RECHNERSYSTEM
DE19882933B4 (de) Flash-Speicher-Unterteilung für Lese-während-Schreiboperationen
DE69431795T2 (de) Massenspeicherarchitektur mit flash-speicher
DE60211653T2 (de) Teildatenprogrammier- und leseoperationen in einem nichtflüchtigen speicher
DE69527594T2 (de) Flashspeicherkarte
DE112019005369T5 (de) Verfahren zum umschalten zwischen herkömmlicher ssd und open-channel-ssd ohne datenverlust
DE102005013683A1 (de) Speicherkarte und zugehöriges Betriebsverfahren
DE69325741T2 (de) Speicherkartengerät
DE102009033961A1 (de) Emulation eines einmal programmierbaren Speichers
DE102009046444A1 (de) An die Software angepasste Abnutzungsausgleichung
DE102007061406A1 (de) Verfahren zum Betreiben eines nichtflüchtigen Speicherelements, nichtflüchtiges Speicherelement und Speicherkarte
EP1314135B1 (de) Verfahren zur virtuellen vergrösserung des stacks eines tragbaren datenträgers
DE10192507B4 (de) Verfahren und Vorrichtung für die Vorhersage von Lösch- und Schreibzeiten von Flash-Speichern
DE69700379T2 (de) Elektrisch modifizierbarer nichtflüchtiger Mehrpegelspeicher mit internen Auffrischungsmitteln
DE69119101T2 (de) Nichtflüchtiges Halbleiterspeichersystem
DE60317801T2 (de) Verfahren und vorrichtung zur erkennung von fehlern während des schreibens in einen nichtflüchtigen speicher
DE102017104698A1 (de) Elektroniksteuervorrichtung und Informationsspeicherverfahren dafür
DE102005023057B4 (de) Nichtflüchtiger Speicher
DE10317147A1 (de) Sicheres Speichersystem mit Flash-Speichern und Cache-Speicher
EP1625592B1 (de) Vorrichtung und verfahren zum behandeln eines zustands eines speichers
EP1559111B1 (de) Verfahren zum betreiben einer speicheranordnung
DE10321104B4 (de) Verfahren zur Ablage von veränderlichen Daten
DE10040241A1 (de) Speicheranordnung für einen Datenträger und Verfahren zur Speicherverwaltung

Legal Events

Date Code Title Description
OM8 Search report available as to paragraph 43 lit. 1 sentence 1 patent law
8141 Disposal/no request for examination