DE19723676A1 - Verfahren zum Nachladen von Programmen auf eine Chip-Karte - Google Patents

Verfahren zum Nachladen von Programmen auf eine Chip-Karte

Info

Publication number
DE19723676A1
DE19723676A1 DE19723676A DE19723676A DE19723676A1 DE 19723676 A1 DE19723676 A1 DE 19723676A1 DE 19723676 A DE19723676 A DE 19723676A DE 19723676 A DE19723676 A DE 19723676A DE 19723676 A1 DE19723676 A1 DE 19723676A1
Authority
DE
Germany
Prior art keywords
addresses
physical
programs
address
program
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
DE19723676A
Other languages
English (en)
Inventor
Michael Baldischweiler
Holger Sedlak
Stefan Pfab
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.)
Siemens AG
Original Assignee
Siemens AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens AG filed Critical Siemens AG
Priority to DE19723676A priority Critical patent/DE19723676A1/de
Publication of DE19723676A1 publication Critical patent/DE19723676A1/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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • 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/355Personalisation of cards for use
    • G06Q20/3552Downloading or loading of personalisation data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Stored Programmes (AREA)

Description

Die Erfindung betrifft ein Verfahren zum Nachladen von Pro­ grammen auf eine Chip-Karte.
Neuere Entwicklungen auf dem Gebiet der Chip-Kartenanwendun­ gen erfordern die Nachladbarkeit von Programmen auf der Chip- Karte im Feldeinsatz. Es ist daran gedacht, dem Kunden die Möglichkeit zu geben, Programme seiner Wahl auf die Chip- Karte zu laden. Dies ist bislang aus folgendem Grund nicht möglich: Jedes Programm basiert auf Adressen, an deren Posi­ tion das Programm abgearbeitet wird. Ein sogenannter "Linker" legt diese Adressenzuordnung fest. Da für das nachzuladende Programm völlig unbekannt ist, welche Adressen in der Chip- Karte bereits belegt sind, muß die Möglichkeit geschaffen werden, nachzuladende Programme auf beliebigen Adressen ablaufen lassen zu können; d. h. die nachzuladenden Programme müssen auf der Chip-Karte relokatierbar sein.
Eine Aufgabe der vorliegenden Erfindung besteht demnach darin, ein Verfahren zu schaffen, durch das Programme auf Chip-Karte problemlos nachgeladen werden können.
Gelöst wird diese Aufgabe durch die Merkmale des Anspruchs 1 bzw. des Anspruchs 5.
Die Erfindung stellt demnach zwei Lösungsansätze für eine problemlose Relokatierbarkeit von nachladbaren Programmen auf einer Chip-Karte bereit, deren gemeinsame Idee darin besteht, die nachladbaren Programme durch das auf der Chip-Karte ent­ haltene Betriebssystem auf freie physikalische Adressen bzw. physikalische Segmente mit Hilfe von logischen Adressen bzw. logischen Segmenten zu verteilen. Der erste Aspekt der Erfin­ dung ist Gegenstand des Anspruchs 1 und der zweite Aspekt der Erfindung ist Gegenstand des Anspruchs 5.
Weiterbildungen der Erfindung sind Gegenstand der Unteransprüche.
Nachfolgend wird die Erfindung anhand der nachfolgenden Figuren beispielhaft näher erläutert. Es zeigen:
Fig. 1 schematisch das Prinzip des erfindungsgemäßen Verfah­ rens gemäß dem ersten Aspekt,
Fig. 2 schematisch ein Ausführungsbeispiel des Verfahrens ge­ mäß Fig. 1,
Fig. 3 schematisch das Prinzip des erfindungsgemäßen Verfah­ rens gemäß dem zweiten Aspekt,
Fig. 4 schematisch ein Ausführungsbeispiel des Verfahrens ge­ mäß Fig. 3.
Gemäß dem ersten Aspekt der Erfindung ist demnach mit anderen Worten vorgesehen, daß der Programm-Code stets mit einer fe­ sten Adresse, in der Regel mit der Adresse 0 startet, wobei eine Hardware-Einheit die Programme auf verschiedene Pro­ grammbänke verteilt. Dieser Lösungsansatz wird im folgenden in bezug auf eine 8051-CPU erläutert.
Die 8051-CPU enthält einen Programm- und einen Datenadreß­ raum. Die nachfolgende Erläuterung des ersten erfindungsge­ mäßen Aspekts erfolgt anhand der 8051-CPU lediglich beispiel­ haft aus Gründen der Verdeutlichung der Erfindung; d. h. der erste Aspekt der Erfindung ist ohne weitere auf andere Adreß­ bereiche grundsätzlich übertragbar. Neben dem Programm-Code gilt der Vorschlag zur Relokatierbarkeit gemäß dem ersten Aspekt der Erfindung (und auch gemäß dem zweiten Aspekt der Erfindung) auch für Datenbereiche.
Gemäß dem ersten Aspekt der Erfindung (vgl. hierzu die Fig. I und 2) werden also zunächst sämtliche nachladbaren Programme auf eine feste Start-Adresse, beispielsweise auf die Start-Adresse 0000, gelegt (Schritt 1). Das On-Chip- Betriebssystem lädt daraufhin die Programme an physikalische Startadressen (< 64k möglich) seiner Wahl. In der Speicherverwaltungseinheit bzw. Memory Management Unit wird daraufhin eine Tabelle angelegt, welche die physikalischen Startadressen dieser Programme verwaltet (Schritt 2).
Mit einem Addierer werden daraufhin die logischen Adressen (maximal 64k) der Programme (beginnend bei 0) auf die jeweils gültige Startadresse umgesetzt gelegt (Schritt 3). Dabei wird in dem logischen 64k-8051 Adressenraum genau ein Programm abgelegt. Durch die Auswahl einer anderen physikalischen Startadresse wird ein anderes Programm im 64k-Adreßraum abgelegt. Hier ist darauf zu achten, daß keine absoluten Befehle verwendet werden.
Der physikalische Speicher muß nicht notwendigerweise in 64k Programmbänke organisiert sein. Mit einer geeigneten Hardware-Einheit, die eine Programmlängenüberwachung vornimmt, können die physikalischen Programme vielmehr vorteilhafterweise an die tatsächliche Programmgröße angepaßt werden.
Im folgenden wird ebenfalls unter bezug auf die 8051-CPU der zweite Aspekt der vorliegenden Erfindung gemäß Anspruch 5 beispielhaft erläutert, der kurz gesagt darin besteht, daß eine Hardware-Einheit die Adreßlage der Programme innerhalb des logischen 64K-Adreßraums verändert.
Zunächst werden gemäß Fig. 3 und 4 sämtliche nachladbaren Programme auf beliebige Segmentgrenzen gelegt (beispielsweise 1k, 2k, 3k,. . .). Das On-Chip-Betriebssystem verteilt daraufhin die Programme auf die jeweils noch freien Segmente. In einer Tabelle erfolgt dann die Zuordnung von dem logischen Segment, auf das gelinkt wurde, zu dem physikalischen Segment, welches für das Programm noch frei war. Bei dieser Variante entfällt das Addieren von physikalischen Start- Adressen wie gemäß dem ersten Aspekt der vorliegenden Erfindung. Statt dessen werden die höchstwertigen, beispielsweise die beiden höchstwertigen Adreß-Bits geeignet modifiziert. Im in Fig. 3 und 4 gezeigten Beispiel sind vier Segmente dargestellt. Die notwendige Modifikation der beiden höchstwertigen Bits wird in einer Tabelle abgelegt.
Beim Nachladen des Programms erkennt das On-Chip-Betriebssy­ stem dessen logische Adreßlage und außerdem die noch freien Segmente.
Bei den in Fig. 3 und 4 gezeigten Beispielen wird das physi­ kalische Segment 0 mit der logischen Adresse 1 belegt. Deshalb müssen bei der Programmausführung dieses Segments die beiden höchstwertigen Bits der 8051-CPU von 01 auf 00 modifiziert werden. Obwohl das Programm logisch auf 01xxxxxx abläuft, liegt es physikalisch auf 00xxxxxx.
Beiden Aspekten der vorliegenden Erfindung ist gemeinsam, daß die Zuordnung von Programmen zu Adressen ausschließlich durch Befehle erfolgt, die absolute Adressen benötigen, hier z. B. Ljmp adr 16, Lcal adr 16. Das heißt, absolute Befehle werden zur Zuordnung der Programme zu Adressen vorteilhafterweise vermieden.
Wenn diese Befehle durch PC-relative Befehle ersetzt werden, können die Programme auch an beliebige Stellen verschoben werden. Die Adressierung wird immer relativ zum PC vorgenom­ men und ist damit unabhängig von der absoluten Adreßlage: Rjmp rel 16, Rcal rel 16.
Für die Erfindung gemäß beiden Aspekten gilt demnach, daß das Betriebssystem nur den Startpunkt der nachladbaren Programme kennen muß.

Claims (8)

1. Verfahren zum Nachladen von Programmen auf eine Chip- Karte, die eine CPU mit mehreren Adreßbereichen, insbe­ sondere mit einem Programm- und einem Datenadreßraum, eine Speicherverwaltungseinheit und einen Adreß-Addie­ rer aufweist, ein Betriebssystem zum Laden von Program­ men an physikalischen Adressen seiner Wahl enthält, und folgende Schritte umfaßt:
  • - Legen der nachladbaren Programme durch das Betriebs­ system auf physikalische Start-Adressen,
  • - Anlegen einer Tabelle der physikalischen Start-Adres­ sen und Verwalten dieser Adressen durch die Speicher­ verwaltungseinheit,
  • - Addieren der physikalischen Start-Adressen aus der Tabelle mit logischen Adressen in dem Adreß-Addierer zum Umsetzen in physikalische Adressen, und
  • - Ablegen der physikalischen Adressen in einem logi­ schen Adreßraum.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß der logische Adreßraum durch einen physikalischen Speicher auf der Chip-Karte festgelegt ist.
3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß der physikalische Speicher in Programmbänke organisiert ist.
4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, daß eine Hardware-Einheit zur Programmlängen-Überwachung vorgesehen ist, um die physikalischen Programmbänke an die tatsächliche Programmgröße anzupassen.
5. Verfahren zum Nachladen von Programmen auf eine Chip- Karte, die eine CPU mit mehreren Adreßbereichen, insbe­ sondere mit einem Programm- und einem Datenadreßraum, einen Speicher, und eine Speicherverwaltungseinheit aufweist, ein Betriebssystem zum Laden von Programmen an physikalischen Adressen seiner Wahl enthält, und folgende Schritte umfaßt:
  • - Legen bzw. Linken der nachladbaren Programme auf be­ liebige Segmentgrenzen bzw. logische Segmente des Speichers,
  • - Verteilen der nachladbaren Programme durch das Be­ triebssystem auf die jeweils noch freien physikali­ schen Segmente,
  • - Zuordnen der logischen Segmente auf die physikali­ schen Segmente in einer Tabelle unter Modifizieren der höchstwertigen Adreß-Bits durch die Speicherver­ waltungseinheit.
6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, daß die nachgeladenen Programme durch eine Rücknahme der Adreß- Bit-Modifikation ausgeführt werden.
7. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, daß die nachgeladenen Programme den Adressen bzw. Segmenten ausschließlich durch absolute Adressen benötigende Befehle (d. h. unter Vermeidung absoluter Befehle) zugeordnet werden.
8. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, daß die Programmzuordnung jeweils bei Ziffer 0 beginnt.
DE19723676A 1997-06-05 1997-06-05 Verfahren zum Nachladen von Programmen auf eine Chip-Karte Withdrawn DE19723676A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE19723676A DE19723676A1 (de) 1997-06-05 1997-06-05 Verfahren zum Nachladen von Programmen auf eine Chip-Karte

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19723676A DE19723676A1 (de) 1997-06-05 1997-06-05 Verfahren zum Nachladen von Programmen auf eine Chip-Karte

Publications (1)

Publication Number Publication Date
DE19723676A1 true DE19723676A1 (de) 1998-08-27

Family

ID=7831533

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19723676A Withdrawn DE19723676A1 (de) 1997-06-05 1997-06-05 Verfahren zum Nachladen von Programmen auf eine Chip-Karte

Country Status (1)

Country Link
DE (1) DE19723676A1 (de)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001001357A1 (de) * 1999-06-25 2001-01-04 Giesecke & Devrient Gmbh Verfahren zum betreiben eines zur ausführung von nachladbaren funktionsprogrammen ausgebildeten datenträgers
WO2002099650A2 (de) * 2001-06-05 2002-12-12 Infineon Technologies Ag Verfahren zur verwaltung eines speichers einer chipkarte
WO2005001780A1 (de) * 2003-06-27 2005-01-06 Giesecke & Devrient Gmbh Speicherverwaltung bei einem tragbaren datenträger
WO2006063270A1 (en) * 2004-12-10 2006-06-15 Intel Corporation Utilizing paging to support dynamic code updates

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3131204A1 (de) * 1980-08-07 1982-05-19 Tokyo Shibaura Denki K.K., Kawasaki, Kanagawa Adressumrechnungs- und generatoranordnung
DE3607889C2 (de) * 1985-03-11 1993-07-29 Hitachi, Ltd., Tokio/Tokyo, Jp

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3131204A1 (de) * 1980-08-07 1982-05-19 Tokyo Shibaura Denki K.K., Kawasaki, Kanagawa Adressumrechnungs- und generatoranordnung
DE3607889C2 (de) * 1985-03-11 1993-07-29 Hitachi, Ltd., Tokio/Tokyo, Jp

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001001357A1 (de) * 1999-06-25 2001-01-04 Giesecke & Devrient Gmbh Verfahren zum betreiben eines zur ausführung von nachladbaren funktionsprogrammen ausgebildeten datenträgers
US7117012B1 (en) 1999-06-25 2006-10-03 Giesecke & Devrient Gmbh Method for operating a portable data carrier configured for executing reloadable functional programs
WO2002099650A2 (de) * 2001-06-05 2002-12-12 Infineon Technologies Ag Verfahren zur verwaltung eines speichers einer chipkarte
WO2002099650A3 (de) * 2001-06-05 2003-11-27 Infineon Technologies Ag Verfahren zur verwaltung eines speichers einer chipkarte
WO2005001780A1 (de) * 2003-06-27 2005-01-06 Giesecke & Devrient Gmbh Speicherverwaltung bei einem tragbaren datenträger
WO2006063270A1 (en) * 2004-12-10 2006-06-15 Intel Corporation Utilizing paging to support dynamic code updates
GB2435592A (en) * 2004-12-10 2007-08-29 Intel Corp Utilizing paging to support dynamic code updates
US7398381B2 (en) 2004-12-10 2008-07-08 Intel Corporation Utilizing paging to support dynamic code updates
GB2435592B (en) * 2004-12-10 2008-09-24 Intel Corp Utilizing paging to support dynamic code updates

Similar Documents

Publication Publication Date Title
DE3940302C2 (de)
DE1524129A1 (de) Datenverarbeitungssystem mit gemeinsamem Zugang
DE2617408B2 (de) Speichermodul für ein Datenverarbeitungsgerät mit Speicherhierarchie
DE2339741A1 (de) Anordnung zur bildung einer relativen adresse fuer einen speicher
DE3900248C2 (de) Verfahren zur schnellen Ablaufsteuerung digitaler Testmuster und Vorrichtung zur Durchführung des Verfahrens
DE2339636A1 (de) Programmsteuereinrichtung
DE2758829C2 (de) Datenverarbeitungsanlage mit mehreren Prozessoren
EP1145118A2 (de) Verfahren zum linken von in einen arbeitsspeicher eines prozessors nachgeladenen programmodulen auf einer chipkarte
EP1079307B1 (de) Verfahren zum Betrieb eines Speichersystems sowie Speichersystem
DE19723676A1 (de) Verfahren zum Nachladen von Programmen auf eine Chip-Karte
DE19538448B4 (de) Datenbankmanagementsystem sowie Datenübertragungsverfahren
EP1145113B1 (de) Verfahren und anordnung zur erzeugung und ausführung von komprimierten programmen eines vliw-prozessors
DE69815656T2 (de) Rechnersystem mit einem mehrfach Sprungbefehlzeiger und -Verfahren
EP0057755A2 (de) Mikrorechnersystem zum raschen Auffinden von Kennzeichenblöcken
DE19709975C2 (de) Mikrocomputer
DE10134654A1 (de) Verfahren zur Fehleranalyse von Speichermodulen
DE10322837A1 (de) Verfahren zur Projektierung eines Automatisierungssystems
EP1204917A1 (de) Operandenstapelspeicher und verfahren zum betreiben eines operandenstapelspeichers
DE69909118T9 (de) Vorrichtung und verfahren zur sicherung einer integrierten schaltung
DE10137332B4 (de) Verfahren und Anordnung zur Ausgabe von Fehlerinformationen aus Halbleitereinrichtungen
DE4307413C2 (de) Verfahren zum Laden von für den Betrieb von elektrischen Einrichtungen erforderlichen Betriebsprogrammen
DE3013618C2 (de) Schaltungsanordnung zur Bildung zweier miteinander in Beziehung stehender reeller Adressen aus einer zweiteiligen virtuellen Adresse
DE4429905C1 (de) Verfahren zum Betrieb eines virtuellen Speichers
EP0480331A2 (de) Datenverarbeitungssystem mit Bildschirmeinheiten
WO2013127458A1 (de) Rfid-transponder mit mehreren speicherbereichen

Legal Events

Date Code Title Description
OAV Applicant agreed to the publication of the unexamined application as to paragraph 31 lit. 2 z1
OP8 Request for examination as to paragraph 44 patent law
8130 Withdrawal