DE19723676A1 - Verfahren zum Nachladen von Programmen auf eine Chip-Karte - Google Patents
Verfahren zum Nachladen von Programmen auf eine Chip-KarteInfo
- 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
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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- 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
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- 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)
- 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.
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)
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)
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 |
-
1997
- 1997-06-05 DE DE19723676A patent/DE19723676A1/de not_active Withdrawn
Patent Citations (2)
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)
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 |