DE60210416T2 - Speicherkarte - Google Patents
Speicherkarte Download PDFInfo
- Publication number
- DE60210416T2 DE60210416T2 DE60210416T DE60210416T DE60210416T2 DE 60210416 T2 DE60210416 T2 DE 60210416T2 DE 60210416 T DE60210416 T DE 60210416T DE 60210416 T DE60210416 T DE 60210416T DE 60210416 T2 DE60210416 T2 DE 60210416T2
- Authority
- DE
- Germany
- Prior art keywords
- program
- memory
- volatile memory
- data
- variables
- 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.)
- Expired - Lifetime
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/14—Protection against unauthorised use of memory or access to memory
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07F—COIN-FREED OR LIKE APPARATUS
- G07F7/00—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
- G07F7/08—Mechanisms 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/10—Mechanisms 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/1008—Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
- G06F12/1425—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
- G06F12/1433—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a module or a part of a module
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record 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/067—Record 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/07—Record 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/34—Payment 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/355—Personalisation of cards for use
- G06Q20/3552—Downloading or loading of personalisation data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Business, Economics & Management (AREA)
- Computer Networks & Wireless Communication (AREA)
- Accounting & Taxation (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
- Credit Cards Or The Like (AREA)
- Read Only Memory (AREA)
Description
- ALLGEMEINER STAND DER TECHNIK
- Die vorliegende Erfindung betrifft eine Speicherkarte und insbesondere eine Speicherkarte, auf die Programmdaten heruntergeladen und in einem nichtflüchtigen Speicher gespeichert werden.
- Speicherkarten werden zum Lesen/Schreiben von Informationen mit digitalen Vorrichtungen, wie beispielsweise Digitalkameras, PDAs, tragbaren Audio-Vorrichtungen, Handys und Arbeitsplatzrechnern verwendet. Zwei Typen von Chips, die ein Flash-Speicher und ein Controller sind, sind auf einer Speicherkarte angebracht. Für Flash-Speicher, die auf Speicherkarten angebracht sind, wurde in letzter Zeit die Kapazität in dem Ausmaß erhöht, dass sie in der Lage sein werden, große Datenmengen zu speichern. Zum gegenwärtigen Zeitpunkt können Speicherkarten jedoch nur Daten mit digitalen Vorrichtungen austauschen. In einigen IC-Karten können Anwendungsprogramme heruntergeladen und ausgeführt werden. Die Kapazität ihres nichtflüchtigen Speichers zum Speichern von Programmen ist jedoch viel kleiner als die Kapazität von Flash-Speichern, die auf Speicherkarten angebracht sind.
- KURZDARSTELLUNG DER ERFINDUNG
- Es ist eine Aufgabe der vorliegenden Erfindung, eine Speicherkarte bereitzustellen, deren Schaltungsumfang reduziert werden kann.
- Eine Speicherkarte gemäß der vorliegenden Erfindung wird in Anspruch 1 definiert. Sie umfasst einen ersten nichtflüchtigen Speicher, einen zweiten nichtflüchtigen Speicher und einen Trennungsabschnitt, welcher die auf die Speicherkarte heruntergeladenen Programmdaten-Datentypen voneinander trennt. Der erste nichtflüchtige Speicher weist eine vorgegebene Löscheinheit auf, welche die kleinste Datenmenge ist, die mit einen Löschvorgang gelöscht werden kann. Der zweite nichtflüchtige Speicher weist eine weitere Löscheinheit auf, welche die kleinste Datenmenge ist, die mit einem Löschvorgang gelöscht werden kann und die größer ist als die Löscheinheit des ersten nichtflüchtigen Speichers. Der Trennungsabschnitt trennt wenigstens den Teil der Programmdaten, die auf die Speicherkarte heruntergeladenen wurden, deren Überschreiben durch das Programm möglich ist, und speichert den getrennten Teil in dem ersten nichtflüchtigen Speicher und speichert den restlichen Teil in dem zweiten nichtflüchtigen Speicher.
- Gemäß dieser Speicherkarte werden beim Ausführen des heruntergeladenen Programms die Programmdaten nur in dem ersten nichtflüchtigen Speicher überschrieben und nicht in dem zweiten nichtflüchtigen Speicher überschrieben. Somit ist durch das Überschreiben von Variablen, die durch das Programm der Variablen, (d.h. Variablen, welche die gleichen für das Programm sind), oder Ähnlichem in dem ersten nichtflüchtigen Speicher überschrieben werden können, die erforderliche Puffergröße kleiner, als wenn der Prozess an denjenigen Variablen durchgeführt würde, welche die gleichen für das Programm sind und nicht von dem Programm der Variablen, (d.h. Variablen, welche die gleichen für alle Objekte der Klasse sind), in dem zweiten nichtflüchtigen Speicher überschrieben werden können, der eine große Löscheinheit aufweist, und die Schaltung kann in ihrem Umfang verkleinert werden.
- Des Weiteren ist die Größe der Daten, die zum Überschreiben temporär gepuffert werden, in dem ersten nichtflüchtigen Speicher kleiner als in dem zweiten nichtflüchtigen Speicher. Demzufolge kann die Pufferzeit zum Überschreiben kürzer gehalten werden, als wenn der Überschreibprozess in dem zweiten nichtflüchtigen Speicher durchgeführt würde, und die zum Überschreiben erforderliche Zeitdauer kann verkürzt werden.
- Außerdem wird die Datensicherheit verbessert, weil die heruntergeladenen Programmdaten getrennt und in dem ersten nichtflüchtigen Speicher und in dem zweiten nichtflüchtigen Speicher gespeichert werden.
- HAMANN U: "Chip cards – the application revolution" ELECTRON DEVICES MEETING, 1997. TECHNICAL DIGEST., INTERNATIONAL WASHINGTON, DC, USA, 7.–10. Dez. 1997, NEW YORK, NY, IEEE, US, 7. Dezember 1997 (12.7.1997), Seite 15–22, XP010265446 ISBN: 0-7803-4100-7 betrifft allgemein eine Übersicht über den aktuellen Stand der Chipkarten-Technologie und ihre Anwendung zusammen mit Prognosen, wie sich diese entwickeln könnten. Insbesondere werden gegenwärtige und geplante Aktivi täten der Halbleitersparte der Siemens-Gruppe in Verbindung mit ihrer Zusammenarbeit mit Sun Microsystems in Bezug auf die Erstellung einer optimalen Hardware-Lösung für Java-Chipkarten ausführlich dargelegt.
- WO 00/46666 beschreibt ein Befehls-Set in Verbindung mit den generierten Operationscodes und einer Befehlsspezifikation, das geeignet ist für die Ausführung von Java-Programmen auf Vorrichtungen mit eingeschränkten Ressourcen, wie beispielsweise einer Smart Card.
- US-A-5 491 827 betrifft die Bereitstellung eines tragbaren digitalen Systems, dessen Inhalt geschützt werden kann, wenn er aus dem tragbaren digitalen System entfernt wird, das heißt, eine sichere Anwendungskarte für die gemeinsame Nutzung von Anwendungsdaten und Prozeduren durch eine Vielzahl von Mikroprozessoren.
- KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 ist ein Blockschaltbild, das die gesamte Konfiguration des Speicherkartensystems gemäß einer Ausführungsform der vorliegenden Erfindung zeigt. -
2 und3 sind schematische Darstellungen, um den Prozess des Speicherns von Programmdaten zu beschreiben, die von einer digitalen Vorrichtung auf der Speicherkarte heruntergeladen werden. -
4 zeigt die Programmdaten, die in dem Flash-Speicher und dem EEPROM gespeichert sind. -
5A bis5C sind schematische Darstellungen, um die Prozedur zu beschreiben, von der das Programm ausgeführt wird. - AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
- Im Folgenden werden hierin Ausführungsformen der vorliegenden Erfindung ausführlich unter Bezugnahme auf die Zeichnungen beschrieben. Identischen oder entsprechenden Teilen in den Zeichnungen werden identische Bezugszeichen zugewiesen und doppelte Beschreibungen davon unterlassen.
- Gesamtkonfiguration des Speicherkartensystems
-
1 ist ein Blockschaltbild, das die Gesamtkonfiguration des Speicherkartensystems gemäß einer Ausführungsform der vorliegenden Erfindung zeigt. In dem in1 gezeigten System wird eine Speicherkarte1 in einen (nicht gezeigten) Schlitz einer digitalen Vorrichtung2 eingeschoben, (wie beispielsweise einer Digitalkamera, eines PDA, einer tragbaren Audio-Vorrichtung, eines Handys oder eines Einzelplatzrechners), und Programmdaten werden von der digitalen Vorrichtung2 auf die Speicherkarte1 heruntergeladen. Das heruntergeladene Programm wird in der Speicherkarte1 ausgeführt. - Digitale Vorrichtung
2 - Die digitale Vorrichtung
2 kompiliert einen in JavaTM geschriebenen Quellcode, der eine objektorientierte Programmiersprache ist, in Bytecodes und überträgt sie zu der Speicherkarte1 . - Speicherkarte
1 - Die Speicherkarte
1 enthält einen Controller-Chip100 und einen Flash-Speicher-Chip200 . - Der Controller-Chip
100 enthält die Schnittstellen110 ,140 und180 , eine CPU120 , eine virtuelle Maschine130 , einen EEPROM150 , die Puffer-RAMs145 und160 und einen Verschlüsselungsabschnitt170 . - Die Schnittstelle
110 ist eine Schnittstelle zwischen der digitalen Vorrichtung2 und dem Controller-Chip100 und überträgt Klassen-Dateien (Bytecodes), die von der digitalen Vorrichtung2 heruntergeladen worden sind, zu der virtuellen Maschine130 . - Die virtuelle Maschine
130 trennt statische Variablen von den Klassen-Dateien, die von der Schnittstelle110 übergeben werden, und leitet sie zu der Schnittstelle140 weiter und leitet den Rest (Applet-Codes und statische endgültige Variablen) an den Puffer-RAM160 weiter. Die virtuelle Maschine130 übersetzt auch die Programmdaten (Bytecodes), die aus dem EEPROM150 und dem Flash-Speicher-Chip200 ausgelesen worden sind, über ein Übersetzungssystem in ein Format, das von der CPU120 ausgeführt werden kann. - Die CPU
120 führt das von der virtuellen Maschine130 übersetzte Programm aus. Die CPU120 steuert auch den Betrieb des Controller-Chips100 . - Die Schnittstelle
140 ist eine Schnittstelle zwischen der virtuellen Maschine130 und der CPU120 auf der einen und dem EEPROM150 und dem Puffer-RAM145 auf der anderen Seite. Die Schnittstelle140 überträgt statische Variablen von der virtuellen Maschine130 zu dem EEPROM über den Puffer-RAM145 . - Der Puffer-RAM
145 puffert Daten, die an den EEPROM150 übertragen werden sollen, und die Datenausgabe von dem EEPROM150 . Der Puffer-RAM145 puffert temporär auch Daten, die in dem EEPROM150 gespeichert sind, wenn diese Daten überschrieben werden. - Der EEPROM
150 speichert statische Variablen von der Schnittstelle140 . Der EEPROM150 ist ein nichtflüchtiger Speicher, in dem Daten in Worteinheiten gelöscht werden. - Der Puffer-RAM
160 speichert temporär die Applet-Codes und die statischen endgültigen Variablen von der virtuellen Maschine130 . Der Puffer-RAM160 speichert temporär auch Programmdaten, die aus dem Flash-Speicher200 ausgelesen und von dem Verschlüsselungsabschnitt170 entschlüsselt worden sind. - Der Verschlüsselungsabschnitt
170 verschlüsselt Programmdaten, (Applet-Codes und statische endgültige Variablen), die in dem Puffer-RAM160 gespeichert sind und leitet sie an die Schnittstelle180 weiter. Der Verschlüsselungsabschnitt170 entschlüsselt auch Programmdaten, die aus dem Flash-Speicher-Chip200 ausgelesen worden sind. - Die Schnittstelle
180 ist eine Schnittstelle zwischen dem Controller-Chip100 und dem Flash-Speicher-Chip200 und überträgt Programmdaten, (Applet-Codes und statische endgültige Variablen), die von dem Verschlüsselungsabschnitt170 verschlüsselt worden sind, an den Flash-Speicher-Chip200 . Die Schnittstelle180 überträgt auch Programmdaten, die aus dem Flash-Speicher-Chip200 ausgelesen worden sind, an den Verschlüsselungsabschnitt170 . - Der Flash-Speicher-Chip
200 speichert verschlüsselte Programmdaten, (Applet-Codes und statische endgültige Variablen), von der Schnittstelle180 . Der Flash-Speicher-Chip200 ist ein nichtflüchtiger Speicher, in dem Daten in Einheiten von Blöcken oder Chips gelöscht werden. Das heißt, die in dem Flash-Speicher-Chip200 gelöschte Einheit ist größer als die Einheit, die in dem EEPROM gelöscht wird. - Herunterladen des Programms
- Programmdaten werden von der digitalen Vorrichtung
2 auf die Speicherkarte1 in dem in1 gezeigten Speicherkartensystem wie folgt heruntergeladen. - Hier werden Programmdaten mit einem Quellcode wie dem in
2 gezeigten heruntergeladen. Der in2 gezeigte Quellcode ist ein Anwendungsprogramm für die Verwendung der Speicherkarte1 als eine Punktekarte und ist in JavaTM geschrieben. Das Programm fügt verschiedene Punktanrechnungsquoten (point return rates) (die auch als "kangenritu" bezeichnet werden können), für jeden Artikel (Nahrung, Kleidung, Elektronik) hinzu, der gekauft wird. Der Punkte-Saldo wird für jeden gekauften Artikel aufgezeichnet. Da der Punkte-Saldo jedes Mal aktualisiert wird, wenn ein Artikel gekauft wird, wird er zur statischen Variablen erklärt. Andererseits bleibt die Punktanrechnungsquote ab dem ursprünglich eingestellten Wert unverändert, so dass sie zur statischen endgültigen Variablen erhoben wird. - Der in JavaTM geschriebene Quellcode wird in Bytecodes kompiliert und von der digitalen Vorrichtung auf die Speicherkarte
1 heruntergeladen. Bytecodes (Klassen-Dateien), die auf die Speicherkarte1 heruntergeladen werden, werden von der virtuellen Maschine130 in einen Teil mit statischer Variablen und einen Teil mit Applet-Code und statischer endgültiger Variablen getrennt. Der Teil mit Applet-Code und statischer endgülti ger Variablen wird in dem Flash-Speicher200 gespeichert, und der Teil mit statischer Variablen wird im EPROM150 gespeichert. Daher wird der Teil, der überschrieben werden kann, (der Teil mit statischer Variablen), in dem EEPROM150 gespeichert, und der Teil, der nicht überschrieben werden kann, (der Teil mit Applet-Code und statischer endgültiger Variablen), wird in dem Flash-Speicher200 gespeichert, nachdem er am Verschlüsselungsabschnitt170 verschlüsselt worden ist. Es sollte beachtet werden, dass eine IC-Karte, auf die ein Anwendungsprogramm heruntergeladen werden und auf ihr ausgeführt werden kann, alle heruntergeladenen Bytecodes (Klassendateien) in ihrem internen EEPROM gespeichert werden, ohne getrennt zu werden, wie in2 gezeigt. - Als Nächstes wird der Trennungsprozess, der durch die virtuelle Maschine
130 ausgeführt wird, ausführlicher unter Bezugnahme auf3 beschrieben. - Klassendateien, die von der digitalen Vorrichtung
2 auf die Speicherkarte1 heruntergeladen werden, umfassen einen Teil mit Applet-Code (Methode), eine statische endgültige Variable und eine statische Variable. Das Header-1-Byte des Teils mit Applet-Code ist 0 × 01, das Header-1-Byte der statischen endgültigen Variablen ist 0 × 002, und das Header-1-Byte der statischen Variablen ist 0 × 03. Daher können Klassendateien, die von der digitalen Vorrichtung2 kompiliert worden sind, als der Teil mit Applet-Code, die statische endgültige Variable und die statische Variable durch Bestimmen des Header-1-Bytes identifiziert werden. Dieses wird durch einen Adressenanalyse-Abschnitt131 in der virtuellen Maschine130 ermittelt. - Ein Speicherabschnitt
132 speichert Programmdaten in dem Flash-Speicher200 oder dem EEPROM150 in Übereinstimmung mit dem Ergebnis, das von dem Adressenanalyse-Abschnitt131 ermittelt worden ist. Wenn ermittelt worden ist, dass das Header-1-Byte 0 × 01 ist, werden die Programmdaten (Teil mit Applet-Code) in dem Flash-Speicher200 gespeichert. Wenn ermittelt wird, dass das Header-1-Byte 0 × 02 ist, werden die Programmdaten (statische endgültige Variable) in dem Flash-Speicher200 gespeichert, (nachdem sie von dem Verschlüsselungsabschnitt170 verschlüsselt worden sind). Wenn ermittelt wird, dass das Header-1-Byte 0 × 03 ist, werden die Programmdaten (statische Variable) in dem EEPROM150 gespeichert. - Das Ergebnis des oben genannten Prozesses ist, dass Applet-Codes und statische endgültige Variablen in dem Flash-Speicher
200 gespeichert werden und statische Variablen in dem EEPROM150 gespeichert werden, wie in4 gezeigt. - Ausführen des heruntergeladenen Programms
- Als Nächstes wird das Programm getrennt und in dem Flash-Speicher
200 gespeichert, und der EEPROM150 wird wie im Folgenden beschrieben ausgeführt. Der hier ausgeführte Prozess wird durch den Quellcode in5A gezeigt und wird im Folgenden unter Bezugnahme auf5B und5C beschrieben. - Wenn der Kaufpreis (Wert) und der Index (i) zeigen, dass die Artikelklassifizierung in die CPU
120 eingegeben worden ist, ruft die virtuelle Maschine130 den "Befehl" ab, der in dem Teil mit Applet-Code (addPoint) in dem Flash-Speicher200 gespeichert ist, und der Übersetzungsabschnitt übersetzt ihn durch ein Übersetzungssystem in ein Format, das von der CPU120 ausgeführt werden kann. Der übersetzte Befehl wird von der CPU120 ausgeführt, um die folgenden Prozessschritte durchzuführen. - Schritt ST51
-
- baload ... Die i-ten Daten der kangenritu-Anordnung (kangenritu[i])
auf dem Flash-Speicher
200 werden erhalten (X). - Schritt ST52
-
- mul... Der Wert und der kangenritu[i]) werden multipliziert.
- Schritt ST53
-
- baload ... Die i-ten Daten der Punkte-Anordnung (point[i])
auf dem EEPROM
150 werden erhalten (Y). - Schritt ST54
-
- add ... Das Ergebnis des Multiplikationsprozesses in Schritt ST52 und der in Schritt ST53 erhaltene point[i] werden addiert.
- Schritt ST55
-
- bastore ... Das Ergebnis des Additionsprozesses in Schritt
ST54 wird in point[i] auf dem EEPROM
150 (Z) gespeichert. Das heißt, die Daten von point[i] werden überschrieben. - Auswirkung
- Bei den gegenwärtigen Technologien ist die Speicherkapazität eines EEPROM viel kleiner als diejenige eines Flash-Speichers, so dass große Programme in einem Flash-Speicher gespeichert werden sollten.
- Normalerweise werden kleine Datenmengen, (wie beispielsweise Variablen), in dem Programm überschrieben, wenn ein Programm ausgeführt wird. Wenn ein in einem Flash-Speicher gespeichertes Programm ausgeführt wird, werden Daten in der Löscheinheit des Flash-Speichers überschrieben. Allerdings ist die Löscheinheit eines Flash-Speichers jedoch beträchtlich größer als die Löscheinheit eines EEPROM, so dass das Ausführen eines Programms, das in einem Flash-Speicher gespeichert ist, einen massiven Pufferspeicher für beispielsweise das Überschreiben von Variablen erfordert.
- Zum Beispiel ist für einen NAND-Flash-Speicher mit:
Speicherkapazität: 512 Mbit
Programmeinheit: 512 Bytes = 1 Seite
Löscheinheit: 32 Seiten
Ein Puffer-RAM von 16 kByte erforderlich. - Bei dem Speicherkartensystem gemäß einer Ausführungsform der vorliegenden Erfindung wird der Teil der Programmdaten (Klassendateien), die von der digitalen Vorrichtung
2 auf die Speicherkarte1 heruntergeladen werden und überschrieben werden können (statische Variablen), auf dem EEPROM150 gespeichert, und der Teil, der nicht überschrieben werden kann (Applet-Code und statische endgültige Variablen) wird auf dem Flash-Speicher200 gespeichert. Demzufolge erfolgt das Überschreiben von Daten während des Programms nicht in dem Flash-Speicher200 , sondern wird nur in dem EEPROM150 durchgeführt. Daher wird das Überschreiben von Variablen oder Ähnlichem in dem EEPROM150 durchgeführt, der eine kleine Löscheinheit besitzt, so dass die Kapazität des Pufferspeichers (Puffer-RAM145 ), die zum Überschreiben erforderlich ist, kleiner sein kann, als wenn das Überschreiben in dem Flash-Speicher200 durchgeführt würde, der eine große Löscheinheit besitzt, und der Schaltungsumfang kann reduziert werden. Des Weiteren ist die Größe der Daten, die zum Überschreiben temporär gepuffert werden, in dem EEPROM150 kleiner als in dem Flash-Speicher200 , und daher kann die Pufferzeit für das Überschreiben kürzer gehalten werden, als wenn der Überschreibungsprozess in dem Flash-Speicher200 durchgeführt würde, und die für das Überschreiben erforderliche Zeitdauer kann verkürzt werden. - Außerdem wird die Datensicherheit verbessert, weil die auf die Speicherkarte
1 heruntergeladenen Programmdaten getrennt und auf dem Flash-Speicher200 und dem EEPROM150 gespeichert werden. Die in dem Flash-Speicher-Chip200 gespeicherten Programmdaten werden durch den Verschlüsselungsabschnitt170 verschlüsselt, so dass die Sicherheit noch weiter erhöht wird. - Ein Verschlüsselungs-/Entschlüsselungs-Prozess ist nicht erforderlich, um auf die Programmdaten zuzugreifen, die auf dem EEPROM
150 gespeichert sind, so dass die Verarbeitungszeiten verbessert werden können. - Es sollte beachtet werden, dass, obwohl hier die statischen Variablen auf dem EEPROM
150 gespeichert wurden, und der Applet-Code und die statischen endgültigen Variablen auf dem Flash-Speicher200 gespeichert wurden, es ebenfalls möglich ist, die statischen Variablen und die statischen endgültigen Variablen auf dem EEPROM150 zu speichern und den Applet-Code auf dem Flash-Speicher200 zu speichern. - Des Weiteren können, wenn das Auslesen von Daten aus dem Flash-Speicher
200 und deren Entschlüsseln mit dem Verschlüsselungsabschnitt170 länger dauert als die Zeit, die zum Auslesen der Daten aus dem EEPROM150 erforderlich ist, Teile, auf die im Flash-Speicher200 häufig zugegriffen wird, unter der Steuerung der CPU120 in den EEPROM150 geschrieben werden. - Es ist auch möglich, den Puffer-RAM
145 und den Puffer-RAM160 als einen gemeinsamen RAM zu konfigurieren, der als der Puffer-RAM für den EEPROM150 betrieben werden kann, wenn der EEPROM150 arbeitet, und der als der Puffer-RAM für den Flash-Speicher200 betrieben werden kann, wenn der Flash-Speicher200 arbeitet. - Dementsprechend kann der Schaltungsbereich, der für den RAM erforderlich ist, reduziert werden, und die Schaltung kann verkleinert werden.
- Die in dieser Anmeldung offenbarten Ausführungsformen sind in jeder Hinsicht als veranschaulichend und als nicht einschränkend zu betrachten. Der Umfang der Erfindung wird durch die Ansprüche im Anhang und nicht durch die vorhergehende Beschreibung angegeben.
Claims (6)
- Speicherkarte, auf die Programmdaten heruntergeladen und in einem nichtflüchtigen Speicher gespeichert werden; gekennzeichnet durch einen ersten nichtflüchtigen Speicher (
150 ), der eine vorgegebene Löscheinheit hat, die die kleinste Menge an Daten ist, die mit einen Löschvorgang gelöscht werden kann; einen zweiten nichtflüchtigen Speicher (200 ), der eine andere Löscheinheit hat, die die kleinste Menge an Daten ist, die mit einem Löschvorgang gelöscht werden kann und die größer ist als die Löscheinheit des ersten nichtflüchtigen Speichers (150 ); und einen Abscheideabschnitt (130 ), der die auf die Speicherkarte heruntergeladenen Datentypen von Programmdaten abscheidet, wenigstens einen Teil der heruntergeladenen Programmdaten abscheidet, die durch das Programm überschrieben werden können, und den abgeschiedenen Teil in dem ersten nichtflüchtigen Speicher (150 ) speichert und einen verbleibenden Teil in dem zweiten nichtflüchtigen Speicher (200 ) speichert. - Speicherkarte nach Anspruch 1, wobei die Programmdaten Funktionen und Variablen enthalten und der Abscheideabschnitt (
130 ) so eingerichtet ist, dass er die Funktionen in dem zweiten nichtflüchtigen Speicher (200 ) speichert, Variablen, die durch das Pro gramm überschrieben werden können, in dem ersten nichtflüchtigen Speicher (150 ) speichert und Variablen, die durch das Programm nicht verändert werden und durch das Programm nicht überschrieben werden können, in dem zweiten nichtflüchtigen Speicher (200 ) speichert. - Speicherkarte nach Anspruch 1, wobei die Programmdaten eine Klasse sind, die in einer objektorientierten Programmiersprache geschrieben ist, und der Abscheideabschnitt (
130 ) so eingerichtet ist, dass er Variablen der Klasse in dem ersten nichtflüchtigen Speicher (15C ) speichert und ein Verfahren der Klasse in dem zweiten nichtflüchtigen Speicher (200 ) speichert. - Speicherkarte nach Anspruch 1, wobei die Programmdaten eine Klasse sind, die in einer objektorientierten Programmiersprache geschrieben ist, und der Abscheideabschnitt (
130 ) so eingerichtet ist, dass er Variablen der Klasse, die durch das Programm überschrieben werden können, in dem ersten nichtflüchtigen Speicher (150 ) speichert und Variablen der Klasse, die für alle Objekte der Klasse die gleichen sind und durch das Programm nicht überschrieben werden können, sowie ein Verfahren der Klasse in dem zweiten nichtflüchtigen Speicher (200 ) speichert. - Speicherkarte nach Anspruch 1, die des Weiteren einen Verschlüsselungsabschnitt (
170 ) zum Verschlüsseln des in dem zweiten nichtflüchtigen Speichers (200 ) zu speichernden verbleibenden Teils umfasst, und wobei der erste nichtflüchtige Speicher (150 ), der Abscheideabschnitt (130 ) und der Verschlüsselungsabschnitt (170 ) auf ein und demselben Chip ausgebildet sind. - Speicherkarte nach Anspruch 1, wobei der erste nichtflüchtige Speicher ein EEPROM (
150 ) ist und der zweite nichtflüchtige Speicher ein Flash-Speicher (200 ) ist.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002053099 | 2002-02-28 | ||
JP2002053099 | 2002-02-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE60210416D1 DE60210416D1 (de) | 2006-05-18 |
DE60210416T2 true DE60210416T2 (de) | 2006-09-07 |
Family
ID=27750907
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE60210416T Expired - Lifetime DE60210416T2 (de) | 2002-02-28 | 2002-07-05 | Speicherkarte |
Country Status (6)
Country | Link |
---|---|
US (1) | US6772955B2 (de) |
EP (1) | EP1355268B1 (de) |
KR (1) | KR100900627B1 (de) |
CN (1) | CN1221923C (de) |
DE (1) | DE60210416T2 (de) |
TW (1) | TWI231917B (de) |
Families Citing this family (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2815801B1 (fr) * | 2000-10-20 | 2004-10-29 | Trusted Logic | Protocole de transmission d'une pluralite de flux logiques d'echange multiple de couples de commande/reponse sur un canal physique unique d'echange entre maitre et esclave et systeme de suivi et de controle d'execution d'appliquettes |
JP2002229861A (ja) * | 2001-02-07 | 2002-08-16 | Hitachi Ltd | 著作権保護機能つき記録装置 |
US7059533B2 (en) * | 2002-05-08 | 2006-06-13 | Koninklijke Philips Electronics N.V. | Authentication using a read-once memory |
ATE373852T1 (de) | 2003-01-31 | 2007-10-15 | Matsushita Electric Ind Co Ltd | Halbleiterspeicherkarte und programm zu ihrer steuerung |
US7752380B2 (en) * | 2003-07-31 | 2010-07-06 | Sandisk Il Ltd | SDRAM memory device with an embedded NAND flash controller |
FR2862407B1 (fr) * | 2003-11-14 | 2006-02-17 | Iteon | Systeme de communication protocolaire entre une carte a puce et un terminal et son procede de communication. |
US7975926B2 (en) | 2003-12-26 | 2011-07-12 | Semiconductor Energy Laboratory Co., Ltd. | Paper money, coin, valuable instrument, certificates, tag, label, card, packing containers, documents, respectively installed with integrated circuit |
JP2005322109A (ja) | 2004-05-11 | 2005-11-17 | Renesas Technology Corp | Icカードモジュール |
US7877539B2 (en) * | 2005-02-16 | 2011-01-25 | Sandisk Corporation | Direct data file storage in flash memories |
US20060184718A1 (en) * | 2005-02-16 | 2006-08-17 | Sinclair Alan W | Direct file data programming and deletion in flash memories |
US9104315B2 (en) | 2005-02-04 | 2015-08-11 | Sandisk Technologies Inc. | Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage |
US20060184719A1 (en) | 2005-02-16 | 2006-08-17 | Sinclair Alan W | Direct data file storage implementation techniques in flash memories |
US7480766B2 (en) * | 2005-08-03 | 2009-01-20 | Sandisk Corporation | Interfacing systems operating through a logical address space and on a direct data file basis |
US7669003B2 (en) * | 2005-08-03 | 2010-02-23 | Sandisk Corporation | Reprogrammable non-volatile memory systems with indexing of directly stored data files |
US7558906B2 (en) | 2005-08-03 | 2009-07-07 | Sandisk Corporation | Methods of managing blocks in nonvolatile memory |
US7409489B2 (en) * | 2005-08-03 | 2008-08-05 | Sandisk Corporation | Scheduling of reclaim operations in non-volatile memory |
US7949845B2 (en) * | 2005-08-03 | 2011-05-24 | Sandisk Corporation | Indexing of file data in reprogrammable non-volatile memories that directly store data files |
US7552271B2 (en) | 2005-08-03 | 2009-06-23 | Sandisk Corporation | Nonvolatile memory with block management |
US7814262B2 (en) * | 2005-10-13 | 2010-10-12 | Sandisk Corporation | Memory system storing transformed units of data in fixed sized storage blocks |
US7529905B2 (en) * | 2005-10-13 | 2009-05-05 | Sandisk Corporation | Method of storing transformed units of data in a memory system having fixed sized storage blocks |
FR2893436B1 (fr) * | 2005-11-15 | 2008-02-15 | Oberthur Card Syst Sa | Securisation entre des composants electroniques d'une entite electronique securisee portable |
US7877540B2 (en) * | 2005-12-13 | 2011-01-25 | Sandisk Corporation | Logically-addressed file storage methods |
US7793068B2 (en) | 2005-12-21 | 2010-09-07 | Sandisk Corporation | Dual mode access for non-volatile storage devices |
US7769978B2 (en) | 2005-12-21 | 2010-08-03 | Sandisk Corporation | Method and system for accessing non-volatile storage devices |
US7747837B2 (en) | 2005-12-21 | 2010-06-29 | Sandisk Corporation | Method and system for accessing non-volatile storage devices |
EP1855453A1 (de) * | 2006-05-11 | 2007-11-14 | Axalto SA | Verwaltung des Stromverbrauchs einer Chipkarte in einem mobilen Endgerät |
US20070288752A1 (en) * | 2006-06-08 | 2007-12-13 | Weng Chong Chan | Secure removable memory element for mobile electronic device |
US7725614B2 (en) * | 2006-08-08 | 2010-05-25 | Sandisk Corporation | Portable mass storage device with virtual machine activation |
US20080126705A1 (en) * | 2006-08-08 | 2008-05-29 | Fabrice Jogand-Coulomb | Methods Used In A Portable Mass Storage Device With Virtual Machine Activation |
WO2008021682A2 (en) | 2006-08-08 | 2008-02-21 | Sandisk Corporation | Portable mass storage with virtual machine activation |
US7966355B2 (en) * | 2007-02-13 | 2011-06-21 | Modu Ltd. | Interface for extending functionality of memory cards |
CN102063384B (zh) * | 2009-11-13 | 2013-07-03 | 恒宝股份有限公司 | 一种java卡利用缓存对编程只读存储器进行读写操作的方法 |
KR101975027B1 (ko) | 2012-05-04 | 2019-05-03 | 삼성전자주식회사 | 시스템 온 칩, 이의 동작 방법, 이를 포함하는 장치들 |
US10108409B2 (en) | 2014-01-03 | 2018-10-23 | Visa International Service Association | Systems and methods for updatable applets |
EP3252651A1 (de) | 2016-05-30 | 2017-12-06 | Samsung Electronics Co., Ltd | Rechnersystem mit einem on-the-fly-verschlüsseler und betriebsverfahren dafür |
US10754579B2 (en) * | 2017-09-25 | 2020-08-25 | Silicon Laboratories Inc. | Reliable non-volatile memory programming interface and method therefor |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63244133A (ja) | 1987-03-30 | 1988-10-11 | Canon Inc | 制御プログラムの格納方式 |
JPH0259937A (ja) * | 1988-08-26 | 1990-02-28 | Hitachi Maxell Ltd | Icカード |
JPH05120501A (ja) * | 1991-10-24 | 1993-05-18 | Mitsubishi Electric Corp | Icカード及びicカード製造方法 |
US5504701A (en) | 1993-09-30 | 1996-04-02 | Toppan Printing Co., Ltd. | Memory card |
US5491827A (en) * | 1994-01-14 | 1996-02-13 | Bull Hn Information Systems Inc. | Secure application card for sharing application data and procedures among a plurality of microprocessors |
US5809558A (en) * | 1994-09-29 | 1998-09-15 | Intel Corporation | Method and data storage system for storing data in blocks without file reallocation before erasure |
DE19536169A1 (de) | 1995-09-29 | 1997-04-03 | Ibm | Multifunktionale Chipkarte |
US5923884A (en) * | 1996-08-30 | 1999-07-13 | Gemplus S.C.A. | System and method for loading applications onto a smart card |
PT932865E (pt) * | 1996-10-25 | 2002-12-31 | Schlumberger Systems & Service | Utilizacao de linguagem de programacao de nivel elevado com um microcontrolador |
US6488211B1 (en) * | 1997-05-15 | 2002-12-03 | Mondex International Limited | System and method for flexibly loading in IC card |
KR19990019426A (ko) * | 1997-08-29 | 1999-03-15 | 윤종용 | 플래쉬 메모리를 내장한 제어장치의 프로그램 관리방법 |
EP0914001A1 (de) * | 1997-10-28 | 1999-05-06 | CANAL+ Société Anonyme | Fernladen von Anwendungen in einen Decoder |
US6338435B1 (en) * | 1999-01-15 | 2002-01-15 | Todd Carper | Smart card patch manager |
US7200842B1 (en) * | 1999-02-02 | 2007-04-03 | Sun Microsystems, Inc. | Object-oriented instruction set for resource-constrained devices |
-
2002
- 2002-07-05 EP EP02015109A patent/EP1355268B1/de not_active Expired - Fee Related
- 2002-07-05 DE DE60210416T patent/DE60210416T2/de not_active Expired - Lifetime
- 2002-07-09 TW TW091115376A patent/TWI231917B/zh not_active IP Right Cessation
- 2002-07-12 KR KR1020020040541A patent/KR100900627B1/ko not_active IP Right Cessation
- 2002-07-12 US US10/193,283 patent/US6772955B2/en not_active Expired - Fee Related
- 2002-07-12 CN CNB021410593A patent/CN1221923C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1441384A (zh) | 2003-09-10 |
TWI231917B (en) | 2005-05-01 |
EP1355268B1 (de) | 2006-04-05 |
KR100900627B1 (ko) | 2009-06-02 |
EP1355268A2 (de) | 2003-10-22 |
US20030160102A1 (en) | 2003-08-28 |
US6772955B2 (en) | 2004-08-10 |
EP1355268A3 (de) | 2003-11-05 |
CN1221923C (zh) | 2005-10-05 |
KR20030071461A (ko) | 2003-09-03 |
DE60210416D1 (de) | 2006-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE60210416T2 (de) | Speicherkarte | |
DE69817333T2 (de) | Verfahren und Vorrichtung zum Laden von Befehlskodes in einen Speicher und zum Verbinden dieser Befehlskodes | |
DE19522527A1 (de) | Verfahren zur Vereinfachung der Kommunikation mit Chipkarten | |
EP1883906B1 (de) | Tragbarer datenträger mit sicherer datenverarbeitung | |
EP0766211A2 (de) | Multifunktionale Chipkarte | |
DE60308990T2 (de) | Schutz eines gerätes gegen unerwünschte verwendung in einem sicheren umfeld | |
DE102009041176B4 (de) | Compiler-System und Verfahren zum Kompilieren eines Quellencodes zu einem verschlüsselten Maschinensprachcode | |
DE19803218A1 (de) | Informationsspeichermedium und zugehöriges Schutzverfahren | |
DE19626337C2 (de) | Verarbeitung langer Nachrichten in einer Prozessorkarte | |
DE19633466A1 (de) | Nachinitialisierung von Chipkarten | |
DE602004004079T2 (de) | Befehl zur berechnung eines sicherheits-nachricht-authentifizierungskodes | |
DE10324337B4 (de) | Rechnersystem und zugehöriges Verfahren zum Durchführen eines Sicherheitsprogramms | |
DE602004010458T2 (de) | Halbleiterspeicherkarte und rechnerlesbares programm | |
DE60013518T2 (de) | Versicherte Personalisierung von Chipkarten | |
DE60224937T2 (de) | Verfahren und anordnung zum verknüpfen von verwandelten appletdateien | |
DE4234194A1 (de) | System und verfahren zur speichersegmentierung fuer einen mikroprozessor | |
EP1449091B1 (de) | Verfahren zum synchronisieren eines speichers mit dem hauptspeicher einer rechenanlage | |
DE10218795A1 (de) | Verfahren zum Herstellen eines elektronischen Sicherheitsmoduls | |
EP0461456B1 (de) | Datensichereitssystem für eine EDV-Einrichtung | |
DE19932149A1 (de) | System zur Ausführung von Transaktionen | |
DE10218835B4 (de) | Verfahren zum Herstellen einer Chipkarte und Chipkarte | |
DE102004011488B4 (de) | Schutz von Software gegen Angriffe | |
WO1998041880A2 (de) | Integrierte schaltung und verfahren zum testen der integrierten schaltung | |
EP1559111A1 (de) | Verfahren zum betreiben einer speicheranordnung | |
EP1927870B1 (de) | Tragbarer Datenträger |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: PANASONIC CORP., KADOMA, OSAKA, JP |