EP1468362A2 - Verfahren und anordnung zum beschreiben von nv-memories in einer controller-architektur sowie ein entsprechendes computerprogrammprodukt und ein entsprechendes computerlesbares speichermedium - Google Patents
Verfahren und anordnung zum beschreiben von nv-memories in einer controller-architektur sowie ein entsprechendes computerprogrammprodukt und ein entsprechendes computerlesbares speichermediumInfo
- Publication number
- EP1468362A2 EP1468362A2 EP02790592A EP02790592A EP1468362A2 EP 1468362 A2 EP1468362 A2 EP 1468362A2 EP 02790592 A EP02790592 A EP 02790592A EP 02790592 A EP02790592 A EP 02790592A EP 1468362 A2 EP1468362 A2 EP 1468362A2
- Authority
- EP
- European Patent Office
- Prior art keywords
- memory
- address
- controller
- written
- register
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- 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
- 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/341—Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
-
- 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
-
- 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/357—Cards having a plurality of specified features
- G06Q20/3576—Multiple memory zones on card
- G06Q20/35765—Access rights to memory zones
Definitions
- the invention relates to a method and an arrangement for writing NV memories in a controller architecture as well as a corresponding computer program product and a corresponding computer-readable storage medium, which can be used in particular to write or program processes in NV code memories of microcontrollers. such as smart card controllers.
- Smart cards In a smart card, data storage and arithmetic-logic units are integrated in a single chip with a size of a few square millimeters. Smart cards are used in particular as telephone cards, GSM SIM cards, in the banking sector and in healthcare. The smart card has thus become the ubiquitous computing platform. Smart cards are currently viewed primarily as a safe place for storing secret data and as a safe execution platform for cryptographic algorithms. The assumption of a relatively high level of security of the data and algorithms on the card is due to the hardware structure of the card and the external interfaces.
- the card From the outside, the card presents itself as a "black box", the functionality of which can only be used via a well-defined hardware and software interface, and which can enforce certain security policies.
- access to data can be linked to certain conditions.
- Critical data such as secret keys from a public key procedure, can even be completely removed from outside access.
- a smart card is able to execute algorithms without the execution of the individual operations being observed from the outside. The algorithms themselves can be protected on the card against changes and reading.
- the smart card can be understood as an abstract data type that has a well-defined interface, a specified behavior and is able to ensure compliance with certain integrity conditions with regard to its condition.
- the manufacturing and delivery process for chip cards is divided into the following phases:
- each phase is carried out by a company that specializes in the respective job.
- the complete memory must be freely accessible so that the manufacturer can carry out a correct final test.
- the chip is only secured by a transport code after the final test. After that, access to the card memory is only possible for authorized parties who know the transport code. Theft of brand new semiconductors is therefore without consequences.
- Authorized bodies can be personalizers or card issuers. No further security functions are required for embedding and printing. The companies concerned do not need to know the transport code.
- the issuing body e.g. bank, telephone company, health insurance company, etc.
- This process is called personalization.
- Knowledge of the transport code is necessary for them.
- Writing requires several write accesses to the memory interface register: writing the address register for page address and byte address, writing the data register and the control register.
- the previous method for writing NV memories is very slow compared to code fetch / read, since depending on the type of access it requires two to five register accesses per written data word, while code fetch and MOVC reading in the fast code fetch cycle of the Processor expire.
- the memory management unit which controls the mapping and the access rights of the code memory as a whole, has no influence when writing to the NV memory.
- the memory can therefore only be written under the control of the operating system of the controller and is only possible for application software using special calls to system routines.
- the invention is therefore based on the object of specifying a method, an arrangement and a corresponding computer program product and a corresponding computer-readable storage medium of the generic type, by means of which the disadvantages of the conventional procedures are avoided and by which it is possible to combine data in the shortest possible time Write NV memory without having to make any major changes to previously used procedures and ensure greater protection against programming errors.
- a particular advantage of the method for writing NV memories in a controller architecture is that (a) defined data value (s) or (a) defined data word (s) at (a) defined destination address ( n) are written within the NV memory by writing the data value (s) or the data word (s) to the specified position of the cache page register of the NV memory and the page address pointer registers of the NV memory are updated.
- An arrangement for writing to NV memories in a controller architecture is advantageously set up in such a way that it comprises a processor which is set up in such a way that writing to NV memories in a controller architecture can be carried out, with (a) defined ( r) Data value (s) or (a) defined data word (s) are (will) be written to (a) defined target address (s) within the NV memory by the data value (s) or the (The) data word (s) are (will) be written to the specified position of the cache page register of the NV memory and the page address pointer registers of the NV memory are updated.
- a computer program product for describing NV memories in a controller architecture comprises a computer-readable storage medium on which a program is stored which enables a computer or smart card controller to be loaded after it has been loaded into the memory of the computer or the smart card controller to perform a description of NV memories in a controller architecture, with (a) defined data value (s) or (a) defined data word (s) at (a) defined destination address (es) within the NV -Memories are (will be) written by the data value (s) or data word (s) to the specified position of the cache- Page registers of the NV memory are (will) be written and the page address pointer registers of the NV memory are updated.
- a computer-readable storage medium is advantageously used, on which a program is stored which enables a computer or smart card controller to enter the memory of the computer or the smart card controller has been loaded to write NV memories in a controller architecture, with (a) defined data value (s) or (a) defined data word (s) at (a) defined destination address (es) are written within the NV memory by writing the data value (s) or the data word (s) to the specified position of the cache page register of the NV memory and the page -Address- pointer register of the NV memory are updated.
- the command set of the controller core is advantageously expanded by additional move code write instructions (MOVCWR instructions) to write to the NV memory.
- MOVCWR instructions additional move code write instructions
- the additional instructions of the controller core transfer the parameters for the address pointer and for the data value to be written or the data word to be written and corresponding control signals for a so-called memory management unit ( MMU) and activate NV memory interfaces. It proves to be advantageous that in the presence of a memory
- MMU Management unit
- the address processing for the MOVCWR instructions takes place in the same way as the processing of code fetches or MOVC instructions.
- a preferred embodiment of the method according to the invention provides that if a memory management unit (MMU) of the controller is present, this MMU is expanded by a control signal path.
- MMU memory management unit
- the cache page register of the NV memory is deleted when changing to a new page address in a MOVCWR instruction.
- Another advantage of the method according to the invention is that an unwanted programming of old page register contents under the wrong address is prevented.
- the processor is part of a smart card controller and the arrangement is a smart card.
- the method according to the invention offers several advantages over the writing of the cache page register, which was previously supported solely by the register interface of the NV memory.
- Writing the NV memory with MOVCWR only requires one MOVCWR instruction per data word (byte) with transfer of the two parameters for the address pointer and the data word.
- an "autoincrement" of the address pointer can be used as with MOVC reading.
- This command call significantly accelerates the writing process compared to writing via the address / data register set of the NV memory.
- the invention is explained in more detail below in an exemplary embodiment.
- the method presented consists of expanding the command set of the controller with so-called MOVCWR (move code write) instructions which make it possible to write a defined data word (byte) to a defined destination address within an NV code memory.
- MOVCWR move code write
- the data word (byte) is written to the correct position of the cache page register of the respective NV memory and the page address pointer register of the memory is updated with the associated page address.
- this MOVCWR writing to the cache page register takes place under full control of this MMU, so that it only addresses areas of the memory that are generally approved for this by the MMU. Special mapping of the code memory within the address area of the controller is taken into account.
- Every change to a new page address for a MOVCWR instruction results in an immediate deletion of the cache page register of the NV memory in order to enable programming of data under the new page address and to prevent unwanted programming of old page register contents under the wrong address ,
- the instruction set of the controller core is expanded by additional MOVCWR instructions in order to carry out the writing of NV memories in the manner according to the invention.
- the additional MOVCWR instructions ensure that the parameters for the address pointer and the data value to be written are transferred and activate the corresponding control signals for MMU and memory interfaces.
- a possibly existing MMU (memory management unit) of the controller is expanded by a corresponding control signal path, which generates the corresponding chip select signals for the memory interfaces when the MOVCWR instruction is executed.
- the address processing for the MOVCWR instructions does not differ from the processing of code fetches or MOVC instructions.
- the memory interfaces of the NV memories support this function with a corresponding write mode for the cache page registers and one Update function of the address register after every MOVCWR process.
- a reset logic performs an address comparison between the old and new page address before each MOVCWR process and, if the address changes before the cache page register is written, triggers deletion of the old register content.
Abstract
Die Erfindung beschreibt ein Verfahren und eine Anordnung zum Beschreiben von NV-Memories in einer Controller-Architektur sowie ein entsprechendes Computerprogrammprodukt und ein entsprechendes computerlesbares Speichermedium, die insbesondere genutzt werden können, um Schreib- bzw. Programmiervorgänge in NV-Code-Memories von Mikrocontrollern, wie beispielsweise Smartcard-Controllern, zu beschleunigen. Das Verfahren besteht in einer Erweiterung des Befehlssatzes des Controllers um sog. MOVCWR (move code write)-Instruktionen, die es ermöglichen, ein definiertes Datenwort (Byte) an eine definierte Zieladresse innerhalb eines NV-Code-Memories zu schreiben. Das Datenwort (Byte) wird hierbei an die korrekte Position des Cache-Pageregisters des jeweiligen NV-Memories geschrieben und die Pageadress-Pointerregister des Memories mit der zugehörigen Pageadresse aktualisiert. Wenn eine MMU (Memory Management Unit) vorhanden ist, geschieht dieses MOVCWR-Schreiben in das Cache-Pageregister, wie das MOVC-Lesen bzw. der Code-Fetch, unter Kontrolle dieser MMU.
Description
Verfahren und Anordnung zum Beschreiben von NV-Memories in einer Controller- Architektur sowie ein entsprechendes Computerprogrammprodukt und ein entsprechendes computerlesbares Speichermedium
Die Erfindung betrifft ein Verfahren und eine Anordnung zum Beschreiben von NV-Memories in einer Controller- Architektur sowie ein entsprechendes Computerprogrammprodukt und ein entsprechendes computerlesbares Speichermedium, die insbesondere genutzt werden können, um Schreib- bzw. Programmiervorgänge in NV-Code- Memories von Mikrocontrollern, wie beispielsweise Smartcard-Controllern, zu beschleunigen.
Die Entwicklung der Mikroelektronik in den 70er- Jahren ermöglichte es, kleine Computer im Kreditkartenformat ohne Benutzungsschnittstelle herzustellen. Solche Computer werden als Smartcards bezeichnet. In einer Smartcard sind Datenspeicher und arithmetisch-logische Einheiten in einem einzigen Chip von wenigen Quadratmillimetern Größe integriert. Smartcards werden insbesondere als Telefonkarten, GSM-SIM-Karten, im Bankenbereich und im Gesundheitswesen eingesetzt. Die Smartcard ist damit zur allgegenwärtigen Rechenplattform geworden. Smartcards werden derzeit vornehmlich als sicherer Aufbewahrungsort für geheime Daten und als sichere Ausführungsplattform für kryptographische Algorithmen betrachtet. Die Annahme einer relativ hohen Sicherheit der Daten und Algorithmen auf der Karte liegt im Hardwareaufbau der Karte und den nach außen geführten Schnittstellen begründet. Die Karte stellt sich nach außen als "Black Box" dar, deren Funktionalität nur über eine wohldefmierte Hardware- und Softwareschnittstelle in Anspruch genommen werden kann, und die bestimmte Sicherheitspolicies erzwingen kann. Zum einen kann der Zugriff auf Daten an bestimmte Bedingungen geknüpft werden. Kritische Daten, wie zum Beispiel geheime Schlüssel eines Public-Key- Verfahrens, können dem Zugriff von außen sogar völlig entzogen werden. Zum anderen ist eine Smartcard in der Lage, Algorithmen auszuführen, ohne daß die Ausführung der einzelnen Operationen von außen beobachtet werden kann. Die Algorithmen selbst können auf der Karte vor Veränderung und Auslesen geschützt werden. Im objektorientierten Sinn läßt sich die Smartcard als abstrakter Datentyp auffassen, der über eine wohldefinierte Schnittstelle verfügt, ein spezifiziertes Verhalten
aufweist und selbst in der Lage ist, die Einhaltung bestimmter Integritätsbedingungen bezüglich seines Zustandes sicherzustellen.
Es gibt im Wesentlichen zwei verschiedene Typen von Smartcards. Speicherkarten besitzen lediglich eine serielle Schnittstelle, eine Adressierungs- und Sicherheitslogik und ROM- und EEPROM-Speicher. Diese Karten besitzen nur eingeschränkte Funktionalität und dienen einer spezifischen Anwendung. Dafür sind sie besonders billig herzustellen. Als Mikroprozessorkarten hergestellte Smartcards stellen im Prinzip einen vollständigen Universalrechner dar.
Der Herstellungs- und Auslieferungsprozeß für Chipkarten gliedert sich in folgende Phasen :
- Herstellen des Halbleiters,
- Einbetten des Halbleiters,
- Bedrucken der Karte,
- Personalisierung der Karte, - Ausgeben der Karte.
Im Allgemeinen wird jede Phase von einer auf die jeweilige Arbeit spezialisierten Firma durchgeführt. Beim Herstellen der Halbleiter ist insbesondere bei Karten mit festverdrahteter Sicherheitslogik auf eine gute betriebsinterne Sicherheit zu achten. Damit vom Hersteller ein korrekter Endtest durchgeführt werden kann, muß der komplette Speicher frei zugänglich sein. Erst nach dem Endtest wird der Chip durch einen Transportcode gesichert. Danach ist der Zugriff auf den Kartenspeicher nur für berechtigte Stellen, die den Transportcode kennen, möglich. Ein Diebstahl fabrikneuer Halbleiter bleibt damit ohne Folgen. Berechtigte Stellen können Personalisierer bzw. Kartenausgeber sein. Für das Einbetten und Bedrucken sind keine weiteren Sicherungsfunktionen notwendig. Die betreffenden Firmen brauchen den Transportcode nicht zu kennen.
Im allgemeinen überträgt nicht der Kartenhersteller, sondern die ausgebende Stelle (zum Beispiel Bank, Telefongesellschaft, Krankenkasse etc.) die personenspezifischen Daten in die Karte. Diesen Vorgang nennt man Personalisierung. Für sie ist die Kenntnis des Transportcodes notwendig.
Das Ausgeben der Karte, also der Transport von der ausgebenden Stelle zum Karteninhaber, stellt ein weiteres Sicherheitsproblem dar. Genau genommen ist nur die persönliche Ausgabe an den Karteninhaber gegen Unterschrift und Vorlage des Personalausweises sicher. Ein Versand per Post ist zwar oft wirtschaftlicher, aber auch
ziemlich unsicher. Ein Problem ist auch das Übermitteln der PIN an den Karteninhaber, hier muß die gleiche Sorgfalt wie für die Karte gelten.
Bedingt durch die brisanten, sicherheitsrelevanten Inhalte der auf Smartcard- Controllern befindlichen Speicher ist neben der Beachtung dieser Sicherungsmaßnahmen ein zusätzlicher Schutz gegen mögliche Aktivitäten von Hackern zu gewährleisten, die sich auf alle Phasen des Lebenslaufes einer Smartcard - beginnend von der Herstellung, über Transport, Nutzung der Karte bis zu Manipulationen unbrauchbar gewordener Karten - erstrecken.
Bei der Programmierung von größeren Mengen von Daten/Code in NV- Memories (zum Beispiel bei der Personalisierung in das EEPROM) entsteht ein relativ großer Zeitverlust einerseits durch den Datentransport via SFR-Bus, andererseits durch die notwendige Verifikation der geschriebenen EEPROM-Daten nach dem Programmieren jeder Page.
Zur Zeit bieten die Standard-Befehlssätze von Controllern für den Code- Memory-Bereich ausschließlich lesende Instruktionen. D.h., aus NV-Memories können Daten entweder als Instuction-Code abgerufen oder als Datenwort („Byte") durch eine sog. MOVC-Instruktion gelesen werden.
Ein Beschreiben/Programmieren von Daten in das NV-Memory erfolgte bisher ausschließlich über den Registersatz des jeweiligen Memory-Interfaces, d.h., der Datenweg beim Beschreiben des NV-Memories ist komplett getrennt vom Datenweg des Code-Fetch / MOVC-Lesens.
Das Beschreiben erfordert mehrere Schreibzugriffe auf Memory- Interface- Register: Beschreiben der Adreß-Register für Page- Adresse und Byte-Adresse, Beschreiben des Daten-Registers und des Kontroll-Registers. Das bisherige Verfahren zum Beschreiben von NV-Memories ist gegenüber dem Code-Fetch/Lesen sehr langsam, da es je nach Zugriffsart zwei bis fünf Registerzugriffe pro geschriebenem Datenwort erfordert, während Code-Fetch und MOVC -Lesen im schnellen Code-Fetch-Takt des Prozessors ablaufen.
Da das Schreiben hierbei ausschließlich über die Register-Schnittstelle des Memory-Interfaces läuft, hat die Memory-Management-Unit, die das Mapping und die Zugriffsrechte des Code-Memories insgesamt kontrolliert, beim Beschreiben des NV- Memories keinen Einfluß. Daher kann das Beschreiben des Memories nur unter Kontrolle des Operating-Systems des Controllers geschehen und ist für Applikations-SW nur durch spezielle Calls auf System-Routinen möglich.
Der Erfindung liegt deshalb die Aufgabe zugrunde, ein Verfahren, eine Anordnung sowie ein entsprechendes Compute rogrammprodukt und ein entsprechendes computerlesbares Speichermedium der gattungsgemäßen Art anzugeben, durch welche die Nachteile der herkömmlichen Vorgehensweisen vermieden werden und durch welche es ermöglicht wird, in kürzestmöglicher Zeit Daten in ein NV -Memory zu schreiben, ohne wesentliche Eingriffe in bisher benutzten Verfahren vornehmen zu müssen, sowie einen höheren Schutz vor Programmierfehlem zu gewährleisten.
Erfindungsgemäß wird diese Aufgabe gelöst durch die Merkmale im kennzeichnenden Teil der Ansprüche 1, 12, 14 und 15 im Zusammenwirken mit den
Merkmalen im Oberbegriff. Die Unteransprüche enthalten zweckmäßige Ausgestaltungen der Erfindung.
Ein besonderer Vorteil des Verfahrens zum Beschreiben von NV-Memories in einer Controller- Architektur besteht darin, daß (ein) defmierte(r) Datenwert(e) oder (ein) defmierte(s) Datenwort(e) an (eine) definierte Zieladresse(n) innerhalb des NV-Memories geschrieben werden (wird), indem die (der) Datenwert(e) bzw. die (das) Datenwort(e) an die vorgegebene Position des Cache-Pageregisters des NV-Memories geschrieben werden (wird) und die Page-Address-Pointerregister des NV-Memories aktualisiert werden.
Eine Anordnung zum Beschreiben von NV-Memories in einer Controller- Architektur ist vorteilhafterweise so eingerichtet, daß sie einen Prozessor umfaßt, der derart eingerichtet ist, daß ein Beschreiben von NV-Memories in einer Controller-Architektur durchführbar ist, wobei (ein) definierte(r) Datenwert(e) oder (ein) defιnierte(s) Datenwort(e) an (eine) definierte Zieladresse(n) innerhalb des NV-Memories geschrieben werden (wird), indem die (der) Datenwert(e) bzw. die (das) Datenwort(e) an die vorgegebene Position des Cache-Pageregisters des NV-Memories geschrieben werden (wird) und die Page-Address- Pointerregister des NV-Memories aktualisiert werden.
Ein Computerprogrammprodukt zum Beschreiben von NV-Memories in einer Controller- Architektur umfaßt ein computerlesbares Speichermedium, auf dem ein Programm gespeichert ist, das es einem Computer oder Smartcard-Controller ermöglicht, nachdem es in den Speicher des Computers oder des Smartcard-Controllers geladen worden ist, ein Beschreiben von NV-Memories in einer Controller- Architektur durchzuführen, wobei (ein) definierte(r) Datenwert(e) oder (ein) defιnierte(s) Datenwort(e) an (eine) definierte Zieladresse(n) innerhalb des NV-Memories geschrieben werden (wird), indem die (der) Datenwert(e) bzw. die (das) Datenwort(e) an die vorgegebene Position des Cache-
Pageregisters des NV-Memories geschrieben werden (wird) und die Page-Address-Pointerregister des NV-Memories aktualisiert werden.
Um ein Beschreiben von NV-Memories in einer Controller- Architektur durchzuführen, wird vorteilhaft ein computerlesbares Speichermedium eingesetzt, auf dem ein Programm gespeichert ist, das es einem Computer oder Smartcard-Controller ermöglicht, nachdem es in den Speicher des Computers oder des Smartcard-Controllers geladen worden ist, das Beschreiben von NV-Memories in einer Controller- Architektur durchzuführen, wobei (ein) definierte(r) Datenwert(e) oder (ein) defιnierte(s) Datenwort(e) an (eine) definierte Zieladresse(n) innerhalb des NV-Memories geschrieben werden (wird), indem die (der) Datenwert(e) bzw. die (das) Datenwort(e) an die vorgegebene Position des Cache- Pageregisters des NV-Memories geschrieben werden (wird) und die Page-Address- Pointerregister des NV-Memories aktualisiert werden.
Vorteilhaft wird ferner zum Beschreiben des NV-Memories der Befehlssatz des Controller-Cores um zusätzliche Move-Code-Write-Instruktionen (MOVCWR- Instruktionen) erweitert. In bevorzugter Ausgestaltung des erfindungsgemäßen Verfahrens ist vorgesehen, daß die zusätzlichen Instruktionen des Controller-Cores eine Übergabe der Parameter für Adreß-Pointer und für den zu schreibenden Datenwert oder das zu schreibende Datenwort durchführen und entsprechende Kontrollsignale für eine sog. Memory- Management-Unit (MMU) und NV-Memory-Interfaces aktivieren. Als vorteilhaft erweist es sich, daß bei Vorhandensein einer Memory-
Management-Unit (MMU) die Adreßverarbeitung für die MOVCWR-Instruktionen in gleicher Weise erfolgt wie die Verarbeitung von Code-Fetches oder MOVC-Instruktionen. Darüber hinaus ist in bevorzugter Ausgestaltung des erfindungsgemäßen Verfahrens vorgesehen, daß bei Vorhandensein einer Memory-Management-Unit (MMU) des Controllers diese MMU um einen Kontrollsignalpfad erweitert wird.
Vorteilhaft werden bei Vorhandensein einer MMU nur Adreßbereiche des NV-Memories beschrieben, die von der MMU freigegeben sind. Zum Beschreiben von NV- Memories in einer Controller- Architektur kann es sich als vorteilhaft erweisen, daß bei Vorhandensein einer MMU ein spezielles Mapping des Code Memories innerhalb des Adreßbereichs des Controllers berücksichtigt wird.
In weiterer bevorzugter Ausgestaltung des erfindungsgemäßen Verfahrens ist vorgesehen, daß nacheinander mehrere Datenwerte und/oder Datenworte mit derselben Pageadresse geschrieben werden.
Vorteilhaft wird durch Beschreiben des Control-Registers des NV-Memories der Inhalt des Cache-Page-Registers in das NV-Memory programmiert. Darüber hinaus ist in bevorzugter Ausgestaltung des erfindungsgemäßen Verfahrens vorgesehen, daß beim Wechsel auf eine neue Pageadresse bei einer MOVCWR-Instruktion das Cache-Page- Register des NV-Memories gelöscht wird.
Ein weiterer Vorteil des erfindungsgemäßen Verfahrens besteht darin, daß ein ungewolltes Programmieren alter Page-Register-Inhalte unter falscher Adresse verhindert wird. Darüber hinaus ist in bevorzugter Ausgestaltung der erfindungsgemäßen Anordnung vorgesehen, daß der Prozessor Teil eines Smartcard-Controllers und die Anordnung eine Smartcard ist.
Das erfindungsgemäße Verfahren bietet gegenüber dem bisher rein durch das Register-Interfaces des NV-Memories unterstützten Beschreiben des Cache-Pageregister mehrere Vorteile. Das Beschreiben des NV-Memories mit MOVCWR erfordert pro Datenwort (Byte) nur eine MOVCWR-Instruktion mit Übergabe der beiden Parameter für den Adreßpointer und das Datenwort. Bei mehreren aufeinander folgenden MOVCWR-Instruktionen kann wie beim MOVC-Lesen ein „Autoincrement" des Adreßpointers benutzt werden. Dieser Befehlsaufruf stellt eine erhebliche Beschleunigung des Schreibvorganges gegenüber dem Schreiben via Adreß/Daten-Registersatz des NV-Memories da. Spezielle Adreßbereichs-Mappings oder Zugriffs-Einschränkungen des Code-
Memories, die von einer eventuell vorhandenen MMU überwacht werden, sind für MOVCWR auf gleiche Weise gültig wie für Code-Fetch und MOVC, d.h., der Prozessor- Core sieht bei der Ausführung von MOVCWER das gleiche Memory-Mapping wie bei Code- Fetch / MOVC. Daher ist es auch einer Applikations-SW möglich, direkt die MOVCWR-
Instruktion zu verwenden, um das Cache-Pageregister eines NV-Memories zu beschreiben, ohne einen System-Call aufrufen zu müssen. Die Kontrolle über die Zugriffsrechte auf das Memory behält das OS des Controllers über die Konfiguration der MMU Kontroll-Register. Ein fehlerhaftes Programmieren alter Inhalte des Cache-Page-Registers eines NV-Memories an eine falsche Pageadresse ist nicht mehr möglich, da das Cache-Page- Register mit jedem MOVCWR, dessen Adreß-Pointer die Pageadresse ändert, zurückgesetzt wird.
Die Erfindung wird nachfolgend in einem Ausführungsbeispiel näher erläutert.
Das vorgestellte Verfahren besteht in einer Erweiterung des Befehlssatzes des Controllers um sog. MOVCWR (move code write) Instruktionen, die es ermöglichen, ein definiertes Datenwort (Byte) an eine definierte Zieladresse innerhalb eines NV-Code- Memories zu schreiben. Das Datenwort (Byte) wird hierbei an die koπekte Position des Cache-Pageregisters des jeweiligen NV-Memories geschrieben und die Pageadreß- Pointerregister des Memories mit der zugehörigen Pageadresse aktualisiert.
Wenn bei advanced Smartcard-Controllern eine MMU (Memory Management Unit) vorhanden ist, geschieht dieses MOVCWR-Schreiben in das Cache-Pageregister, wie das MOVC-Lesen bzw. der Code-Fetch, unter voller Kontrolle dieser MMU, so daß nur auf Adreßbereiche des Speichers geschrieben werden kann, die grundsätzlich von der MMU dafür freigegeben sind. Spezielles Mapping des Code Memories innerhalb des Adreßbereiches des Controllers wird hierbei berücksichtigt.
Auf diese Weise können nacheinander mehrere Bytes/Worte mit derselben Pageadresse geschrieben werden, um das Cache-Pageregister zu füllen. Durch Beschreiben des Control-Registers des jeweiligen NV-Memories kann dann der Inhalt des Cache-Page- Registers in das NV-Memory programmiert werden.
Jeder Wechsel auf einer neuen Pageadresse bei einer MOVCWR-Instruktion hat ein sofortiges Löschen des Cache-Pageregisters des NV-Memories zur Folge, um ein Programmieren von Daten unter der neuen Pageadresse zu ermöglichen und ein ungewolltes Programmieren alter Pageregister-Inhalte unter falscher Adresse zu verhindern.
In der beispielhaften Ausführungsform wird der Befehlssatz des Controller- Cores um zusätzliche MOVCWR-Instruktionen erweitert, um das Beschreiben von NV- Memories in erfindungsgemäßer Weise auszuführen. Die zusätzlichen MOVCWR- Instruktionen gewährleisten die eine Übergabe der Parameter für den Adreß-Pointer und den zu schreibenden Datenwert und aktivieren entsprechende Kontrollsignale für MMU und Memory-Interfaces.
Eine eventuell vorhandene MMU (Memory Management Unit) des Controllers wird erweitert um einen entsprechenden Kontrollsignal-Pfad, der bei der Ausführung der MOVCWR Instruktion die entsprechenden Chip-Select-Signale für die Memory-Interfaces generiert. Die Adreßverarbeitung für die MOVCWR Instruktionen (bez. Mapping und Access Rights) unterscheidet sich hierbei nicht von der Verarbeitung von Code-Fetches oder MOVC-Instruktionen.
Die Memory-Interfaces der NV-Memories unterstützen diese Funktion durch einen entsprechenden Write-Mode für die Cache-Pageregister und einer
Aktualisierungsfunktion der Adreß-Register nach jedem MOVCWR Vorgang. Außerdem führt eine Reset-Logik vor jedem MOVCWR- Vorgang einen Adreßvergleich zwischen alter und neuer Pageadresse durch und löst gegebenenfalls bei einem Adreßwechsel vor dem Beschreiben des Cache-Pageregisters ein Löschen des alten Registerinhaltes aus.
Die Erfindung ist nicht beschränkt auf die hier dargestellten Ausführungsbeispiele. Vielmehr ist es möglich, durch Kombination und Modifikation der genannten Mittel und Merkmale weitere Ausführungsvarianten zu realisieren, ohne den Rahmen der Erfindung zu verlassen.
Claims
1. Verfahren zum Beschreiben von NV-Memories in einer Controller- Architektur, dadurch gekennzeichnet, daß (ein) definierte(r) Datenwert(e) oder (ein) definierte(s) Datenwort(e) an (eine) definierte Zieladresse(n) innerhalb des NV-Memories geschrieben werden (wird), indem die (der) Datenwert(e) bzw. die (das) Datenwort(e) an die vorgegebene Position des Cache-Pageregisters des NV-Memories geschrieben werden (wird) und die Pageadreß-Pointerregister des NV-Memories aktualisiert werden.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß zum Beschreiben des NV-Memories der Befehlssatz des
Controller-Cores um zusätzliche Move-Code-Write-Instruktionen (MOVCWR-Instruktionen) erweitert wird.
3. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die zusätzlichen Instruktionen des Controller-Cores eine
Übergabe der Parameter für Adreß-Pointer und für den zu schreibenden Datenwert oder das zu schreibende Datenwort durchführen und entsprechende Kontrollsignale für eine Memory- Management-Unit (MMU) und NV-Memory-Interfaces aktivieren.
4. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß bei Vorhandensein einer Memory-Management-Unit (MMU) die Adreßverarbeitung für die MOVCWR-Instruktionen in gleicher Weise erfolgt wie die Verarbeitung von Code-Fetches oder MOVC-Instruktionen.
5. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß bei Vorhandensein einer Memory-Management-Unit (MMU) des Controllers diese MMU um einen Kontrollsignal-Pfad erweitert wird.
6. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß bei Vorhandensein einer MMU nur Adreßbereiche des NV- Memories beschrieben werden, die von der MMU freigegeben sind.
7. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß bei Vorhandensein einer MMU ein spezielles Mapping des Code Memories innerhalb des Adreßbereichs des Controllers berücksichtigt wird.
8. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß nacheinander mehrere Datenwerte und/oder Datenworte mit derselben Pageadresse geschrieben werden.
9. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß durch Beschreiben des Control-Registers des NV-Memories der Inhalt des Cache-Page-Registers in das NV-Memory programmiert wird.
10. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß beim Wechsel auf eine neue Pageadresse bei einer MOVCWR- Instruktion das Cache-Page-Register des NV-Memories gelöscht wird.
11. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß ein ungewolltes Programmieren alter Page-Register-Inhalte unter falscher Adresse verhindert wird.
12. Anordnung mit einem Prozessor, der derart eingerichtet ist, daß ein Beschreiben von NV-Memories in einer Controller-Architektur durchführbar ist, wobei (ein) definierte(r) Datenwert(e) oder (ein) defmierte(s) Datenwort(e) an (eine) definierte Zieladresse(n) innerhalb des NV-Memories geschrieben werden (wird), indem die (der) Datenwert(e) bzw. die (das) Datenwort(e) an die vorgegebene Position des Cache- Pageregisters des NV-Memories geschrieben werden (wird) und die Pageadreß- Pointerregister des NV-Memories aktualisiert werden.
13. Anordnung mit einem Prozessor nach Anspruch 12, dadurch gekennzeichnet, daß der Prozessor Teil eines Smartcard-Controllers und die Anordnung eine Smartcard ist.
14. Computeφrogrammprodukt, das ein computerlesbares Speichermedium umfaßt, auf dem ein Programm gespeichert ist, das es einem Computer oder Smartcard- Controller ermöglicht, nachdem es in den Speicher des Computers oder des Smartcard- Controllers geladen worden ist, ein Beschreiben von NV-Memories in einer Controller- Architektur durchzuführen, wobei (ein) definierte(r) Datenwert(e) oder (ein) defmierte(s) Datenwort(e) an (eine) definierte Zieladresse(n) innerhalb des NV-Memories geschrieben werden (wird), indem die (der) Datenwert(e) bzw. die (das) Datenwort(e) an die vorgegebene Position des Cache-Pageregisters des NV-Memories geschrieben werden (wird) und die Pageadreß-Pointerregister des NV-Memories aktualisiert werden.
15. Computerlesbares Speichermedium, auf dem ein Programm gespeichert ist, das es einem Computer oder Smartcard-Controller ermöglicht, nachdem es in den Speicher des Computers oder des Smartcard-Controllers geladen worden ist, ein Beschreiben von NV- Memories in einer Controller- Architektur durchzuführen, wobei (ein) definierte(r) Datenwert(e) oder (ein) definierte(s) Datenwort(e) an (eine) definierte Zieladresse(n) innerhalb des NV-Memories geschrieben werden (wird), indem die (der) Datenwert(e) bzw. die (das) Datenwort(e) an die vorgegebene Position des Cache-Pageregisters des NV- Memories geschrieben werden (wird) und die Pageadreß-Pointerregister des NV-Memories aktualisiert werden.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10164422A DE10164422A1 (de) | 2001-12-29 | 2001-12-29 | Verfahren und Anordnung zum Beschreiben von NV-Memories in einer Controller-Architektur sowie ein entsprechendes Computerprogrammprodukt und ein entsprechendes computerlesbares Speichermedium |
DE10164422 | 2001-12-29 | ||
PCT/IB2002/005481 WO2003060721A2 (de) | 2001-12-29 | 2002-12-12 | Verfahren und anordnung zum beschreiben von nv-memories in einer controller-architektur sowie ein entsprechendes computerprogrammprodukt und ein entsprechendes computerlesbares speichermedium |
Publications (1)
Publication Number | Publication Date |
---|---|
EP1468362A2 true EP1468362A2 (de) | 2004-10-20 |
Family
ID=7711113
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP02790592A Withdrawn EP1468362A2 (de) | 2001-12-29 | 2002-12-12 | Verfahren und anordnung zum beschreiben von nv-memories in einer controller-architektur sowie ein entsprechendes computerprogrammprodukt und ein entsprechendes computerlesbares speichermedium |
Country Status (7)
Country | Link |
---|---|
US (1) | US7409251B2 (de) |
EP (1) | EP1468362A2 (de) |
JP (1) | JP2005515542A (de) |
CN (1) | CN1288566C (de) |
AU (1) | AU2002367042A1 (de) |
DE (1) | DE10164422A1 (de) |
WO (1) | WO2003060721A2 (de) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060242066A1 (en) * | 2004-12-21 | 2006-10-26 | Fabrice Jogand-Coulomb | Versatile content control with partitioning |
US8051052B2 (en) * | 2004-12-21 | 2011-11-01 | Sandisk Technologies Inc. | Method for creating control structure for versatile content control |
US8601283B2 (en) * | 2004-12-21 | 2013-12-03 | Sandisk Technologies Inc. | Method for versatile content control with partitioning |
US20070168292A1 (en) * | 2004-12-21 | 2007-07-19 | Fabrice Jogand-Coulomb | Memory system with versatile content control |
US20060242067A1 (en) * | 2004-12-21 | 2006-10-26 | Fabrice Jogand-Coulomb | System for creating control structure for versatile content control |
US20060242151A1 (en) * | 2004-12-21 | 2006-10-26 | Fabrice Jogand-Coulomb | Control structure for versatile content control |
US8504849B2 (en) | 2004-12-21 | 2013-08-06 | Sandisk Technologies Inc. | Method for versatile content control |
US7743409B2 (en) | 2005-07-08 | 2010-06-22 | Sandisk Corporation | Methods used in a mass storage device with automated credentials loading |
US20070056042A1 (en) * | 2005-09-08 | 2007-03-08 | Bahman Qawami | Mobile memory system for secure storage and delivery of media content |
US20080010458A1 (en) * | 2006-07-07 | 2008-01-10 | Michael Holtzman | Control System Using Identity Objects |
US8639939B2 (en) * | 2006-07-07 | 2014-01-28 | Sandisk Technologies Inc. | Control method using identity objects |
US8266711B2 (en) * | 2006-07-07 | 2012-09-11 | Sandisk Technologies Inc. | Method for controlling information supplied from memory device |
US8613103B2 (en) | 2006-07-07 | 2013-12-17 | Sandisk Technologies Inc. | Content control method using versatile control structure |
US8140843B2 (en) * | 2006-07-07 | 2012-03-20 | Sandisk Technologies Inc. | Content control method using certificate chains |
US8245031B2 (en) | 2006-07-07 | 2012-08-14 | Sandisk Technologies Inc. | Content control method using certificate revocation lists |
US20080022395A1 (en) * | 2006-07-07 | 2008-01-24 | Michael Holtzman | System for Controlling Information Supplied From Memory Device |
EP2180408B1 (de) * | 2008-10-23 | 2018-08-29 | STMicroelectronics N.V. | Verfahren zum Schreiben und Lesen von Daten in einem elektrisch löschbarem und programmierbarem nicht flüchtigen Speicher |
US9104618B2 (en) | 2008-12-18 | 2015-08-11 | Sandisk Technologies Inc. | Managing access to an address range in a storage device |
US10079059B2 (en) * | 2014-07-28 | 2018-09-18 | Hewlett Packard Enterprise Development Lp | Memristor cell read margin enhancement |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4874935A (en) * | 1986-03-10 | 1989-10-17 | Data Card Coprporation | Smart card apparatus and method of programming same |
JPH0476749A (ja) * | 1990-07-19 | 1992-03-11 | Toshiba Corp | セキュリティ回路 |
US5586291A (en) * | 1994-12-23 | 1996-12-17 | Emc Corporation | Disk controller with volatile and non-volatile cache memories |
US6292874B1 (en) * | 1999-10-19 | 2001-09-18 | Advanced Technology Materials, Inc. | Memory management method and apparatus for partitioning homogeneous memory and restricting access of installed applications to predetermined memory ranges |
-
2001
- 2001-12-29 DE DE10164422A patent/DE10164422A1/de not_active Withdrawn
-
2002
- 2002-12-12 CN CNB028264630A patent/CN1288566C/zh not_active Expired - Fee Related
- 2002-12-12 WO PCT/IB2002/005481 patent/WO2003060721A2/de active Application Filing
- 2002-12-12 US US10/500,064 patent/US7409251B2/en not_active Expired - Lifetime
- 2002-12-12 EP EP02790592A patent/EP1468362A2/de not_active Withdrawn
- 2002-12-12 AU AU2002367042A patent/AU2002367042A1/en not_active Abandoned
- 2002-12-12 JP JP2003560749A patent/JP2005515542A/ja active Pending
Non-Patent Citations (1)
Title |
---|
See references of WO03060721A2 * |
Also Published As
Publication number | Publication date |
---|---|
CN1610885A (zh) | 2005-04-27 |
DE10164422A1 (de) | 2003-07-17 |
AU2002367042A1 (en) | 2003-07-30 |
US7409251B2 (en) | 2008-08-05 |
WO2003060721A2 (de) | 2003-07-24 |
WO2003060721A3 (de) | 2004-05-13 |
WO2003060721A8 (de) | 2004-09-10 |
US20050209716A1 (en) | 2005-09-22 |
CN1288566C (zh) | 2006-12-06 |
JP2005515542A (ja) | 2005-05-26 |
AU2002367042A8 (en) | 2003-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1468362A2 (de) | Verfahren und anordnung zum beschreiben von nv-memories in einer controller-architektur sowie ein entsprechendes computerprogrammprodukt und ein entsprechendes computerlesbares speichermedium | |
DE69823649T2 (de) | Multi-anwendungs ic-kartensystem | |
DE60224060T2 (de) | Verwendung von daten gespeichert in einem lese-zerstörenden speicher | |
EP1326256A2 (de) | Verfahren und Anordnung zur Programmierung und Verifizierung von EEPROM-Pages sowie ein entsprechendes Computerprogrammprodukt und ein entsprechendes computerlesbares Speichermedium | |
EP0766211A2 (de) | Multifunktionale Chipkarte | |
DE10162306A1 (de) | Verfahren und Anordnung zur Verifikation von NV-Fuses sowie ein entsprechendes Computerprogrammprodukt und ein entsprechendes computerlesbares Speichermedium | |
EP1358558B1 (de) | Mikroprozessorschaltung für datenträger und verfahren zum organisieren des zugriffs auf in einem speicher abgelegten daten | |
DE112004001605T5 (de) | Computersystem, in welchem eine abgesicherte Ausführungsumgebung angewendet wird und in dem eine Speichersteuerung enthalten ist, die zum Löschen des Speichers ausgebildet ist | |
DE112004002259T5 (de) | Zugriff auf private Daten zum Status einer datenverarbeitenden Maschine von einem öffentlich zugänglichen Speicher | |
WO2001001258A1 (de) | Verfahren zum zugriff auf einen speicher und speichereinrichtung hierfür | |
EP2807558A1 (de) | Speichercontroller zur bereitstellung mehrerer definierter bereiche eines massenspeichermediums als unabhängige massenspeicher an einen master-betriebssystem - kern zur exklusiven bereitstellung an virutelle maschinen | |
DE102014220616A1 (de) | Verfahren zum Laden von ausführbaren Programminstruktionen in eine Chipkarte im Wirkbetrieb | |
DE10324337B4 (de) | Rechnersystem und zugehöriges Verfahren zum Durchführen eines Sicherheitsprogramms | |
DE69911174T2 (de) | System und verfahren zur kontrolle des zugangs zu dem computercode in einer chipkarte | |
EP1352318B1 (de) | Mikroprozessorschaltung für tragbare datenträger | |
EP1338970B1 (de) | Verfahren und Anordnung zur Zugriffssteuerung auf EEPROMs sowie ein entsprechendes Computerprogrammprodukt und ein entsprechendes computerlesbares Speichermedium | |
DE3348320C2 (de) | ||
EP2284809A2 (de) | Chipkarte und Verfahren zur softwarebasierten Modifikation einer Chipkarte | |
EP1407348A2 (de) | Verfahren zum ansteuern einer zentralen verarbeitungseinheit für eine adressierung bezüglich eines speichers und controller | |
EP0966711B1 (de) | Mikrocomputer mit einer speicherverwaltungseinheit | |
EP1032871A2 (de) | Verfahren und anordnung zum laden von daten für grundlegende systemroutinen eines datenverarbeitungssystems | |
DE60116658T2 (de) | Datenträger mit zusatzvorrichtung | |
EP0890172B1 (de) | Halbleiterspeichervorrichtung | |
DE10224767A1 (de) | Personalisiertes digitales Datenverarbeitungssystem | |
DE112019007381T5 (de) | Controller für eine speicherkomponente |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
AK | Designated contracting states |
Kind code of ref document: A2 Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR IE IT LI LU MC NL PT SE SI SK TR |
|
AX | Request for extension of the european patent |
Extension state: AL LT LV MK RO |
|
17P | Request for examination filed |
Effective date: 20041115 |
|
RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: NXP B.V. |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION HAS BEEN WITHDRAWN |
|
18W | Application withdrawn |
Effective date: 20090930 |