DE10006291A1 - Electronic structure for portable data support, comprises processor with instruction and program indicator controls also memory zones for applications, machine code, departure addresses and stacking - Google Patents
Electronic structure for portable data support, comprises processor with instruction and program indicator controls also memory zones for applications, machine code, departure addresses and stackingInfo
- Publication number
- DE10006291A1 DE10006291A1 DE2000106291 DE10006291A DE10006291A1 DE 10006291 A1 DE10006291 A1 DE 10006291A1 DE 2000106291 DE2000106291 DE 2000106291 DE 10006291 A DE10006291 A DE 10006291A DE 10006291 A1 DE10006291 A1 DE 10006291A1
- Authority
- DE
- Germany
- Prior art keywords
- program
- instruction
- unit
- pointer
- user
- 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.)
- Ceased
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
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/321—Program or instruction counter, e.g. incrementing
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45508—Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
-
- 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/357—Cards having a plurality of specified features
Abstract
Description
Die Erfindung betrifft die Ausgestaltung eines tragbaren Datenträgers zur Ausführung von zu interpretierendem Programmkode. Im einzelnen betrifft die Erfindung eine Computeranordnung nach der Gattung des Hauptan spruchs, ein Verfahren nach der Gattung des unabhängigen Anspruchs 5 sowie ein Programmerzeugnis nach der Gattung des unabhängigen An spruchs 11. Weiter betrifft die Erfindung einen tragbaren Datenträger gemäß dem unabhängigen Anspruch 16.The invention relates to the design of a portable data carrier for Execution of program code to be interpreted. In particular concerns the invention a computer arrangement according to the genus Hauptan claim, a method according to the preamble of independent claim 5 as well as a program product according to the genre of the independent An Proverb 11. The invention further relates to a portable data carrier independent claim 16.
Es ist gängige Praxis, datenverarbeitende Prozesse, in denen vorgegebene Nutzdaten verarbeitet werden, unter Verwendung von tragbaren Datenträ gern, insbesondere in Gestalt von Chipkarten zu realisieren. Eine Entwick lungstendenz geht dabei hin, die Flexibilität solcher intelligenter tragbaren Datenträger sowohl hinsichtlich der damit realisierbaren Funktionalitäten als auch hinsichtlich der Kompatibilität der beteiligten Komponenten zu verbes sern. Gemäß einem aus der Schrift EP 794 519 A1 bekannten Vorschlag soll dazu das Betriebssystem einer Chipkarte als Interpretersystem gestaltet sein, das abzuarbeitenden Programmkode in von dem Kartenprozessor ausführ baren, prozessorspezifischen Kode umsetzt. Das vorgeschlagene Interpreter system erlaubt das Nachladen von Programmkodes auf eine Chipkarte und ermöglicht die Ausführung eines Programmes durch unterschiedliche Pro zessoren. Das Interpretieren des abzuarbeitenden Programmkodes bedingt allerdings eine merkliche Herabsetzung der Abarbeitungsgeschwindigkeit beispielsweise gegenüber einem durch Kompilierung erhaltenen Programm kode.It is common practice to use data processing processes in which given User data are processed using portable data carriers gladly, especially in the form of chip cards. A development there is a tendency towards flexibility, such intelligent, wearable Data carriers both with regard to the functionalities that can be implemented as too verbes regarding the compatibility of the components involved ser. According to a proposal known from the document EP 794 519 A1 the operating system of a chip card can be designed as an interpreter system, execute the program code to be processed by the card processor implementable, processor-specific code. The proposed interpreter system allows the reloading of program codes onto a chip card and enables the execution of a program by different professionals cessors. The interpretation of the program code to be processed requires however, a noticeable reduction in processing speed for example compared to a program obtained by compilation code.
Um eine höhere Ausführungsgeschwindigkeit zu ermöglichen, schlägt US- 5,367,685 die Verwendung eines hybriden Compiler-Interpreter-Systems vor, das Compilierung und Interpretation hintereinanderschaltet. Der An wenderprogrammcode wird dabei zunächst durch Compilierung in ein ausführbares Zwischenformat überführt, das dann interpretiert wird. Im Zwi schenformatprogrammkode enthaltene symbolische Referenzen werden da bei in einer ersten Interpretationsschleife durch numerische Referenzen er setzt. Getrieben wird die Interpretation von einer Interpreterhauptroutine. Die Ausführung der Interpretation erfolgt dabei, indem die Interpreter hauptroutine eine abzuarbeitende Instruktion liest und daraufhin eine korre spondierende, in von der Prozessoreinheit unmittelbar ausführbarer Ma schinensprache abgefaßte Programmsequenz aufruft, welche die Prozes soreinheit sodann ausführt. Nach Abschuß der Ausführung fährt die Prozes soreinheit mit der Interpretation der nächsten Instruktion fort. Die Adresse der nachfolgend zu interpretierenden Instruktion wird während der Aus führung einer Maschinensprachen-Programmsequenz in einem Speicher, üblicherweise im Stapelspeicherbereich des der Prozessoreinheit zugeordne ten Arbeitsspeichers gehalten.To enable a higher execution speed, US 5,367,685 the use of a hybrid compiler interpreter system that compiles and interprets in series. The An User program code is first compiled into an executable Intermediate format transferred, which is then interpreted. In the middle symbolic references contained in the format program code will be there in a first loop of interpretation through numerical references puts. The interpretation is driven by a main interpreter routine. The interpretation is carried out by the interpreter main routine reads an instruction to be processed and then a correct one sponding, to the extent directly executable by the processor unit calls program language that calls the processes sor unit then executes. After the execution is finished, the process runs unit continues to interpret the next instruction. The address the instruction to be interpreted below is during the off maintenance of a machine language program sequence in a memory, usually assigned to the processor unit in the stack memory area memory.
Der Erfindung liegt die Aufgabe zugrunde, eine interpretierende Computer anordnung für einen tragbaren Datenträger so zu gestalten, daß die Ge schwindigkeit der Ausführung eines Anwendungsprogrammes weiter er höht wird.The invention has for its object an interpretive computer arrangement for a portable data carrier so that the Ge speed of execution of an application program is increased.
Diese Aufgabe wird gelöst durch eine Computeranordnung gemäß dem un abhängigen Anspruch 1. Die erfindungsgemäße Computeranordnung zeich net sich dadurch aus, daß es zur Einstellung des die nächste abzuarbeitende Anwendungsprogramminstruktion bezeichnenden Instruktionszeigers über eine speziell dafür vorgesehene Weiterschalteinheit verfügt. Sie macht die Speicherung einer Rücksprungadresse im Stapelspeicherbereich überflüssig. Entsprechend den eingesparten Sprung- und Rücksprungoperationen ver ringert sich die Zeit zur Bearbeitung einer Programminstruktion. Zweckmäßig ist die Weiterschalteinheit in Form eines unveränderbaren Program mes innerhalb der Prozessoreinheit realisiert.This object is achieved by a computer arrangement according to the un dependent claim 1. The computer arrangement according to the invention is characterized by the fact that it is the setting of the next to be processed Application program instruction designating instruction pointer via has a specially designed relay unit. She does that No need to store a return address in the stack area. According to the saved jump and return operations ver the time for processing a program instruction is reduced. Appropriately is the relay unit in the form of an unchangeable program mes realized within the processor unit.
Die angegebene Aufgabenstellung wird desweiteren durch ein Verfahren gemäß dem unabhängigen Anspruch 5 gelöst. Das erfindungsgemäße Ver fahren hat den Vorteil, daß, um die Abarbeitung eines Anwendungspro grammes weiterzubringen, kein treibendes Interpretationshauptprogramm erforderlich ist. Das Verstellen des Instruktionszeigers zur Bezeichnung der jeweils abzuarbeitenden Instruktion erfolgt aus der jeweils zuletzt ausge führten Instruktion heraus.The specified task is furthermore through a procedure solved according to independent claim 5. The Ver driving has the advantage that in order to process an application pro to advance grammes, not a main program of interpretation is required. Moving the instruction pointer to indicate the the instruction to be processed follows from the last one carried out instruction.
Die vorgenannte Aufgabenstellung wird desweiteren durch ein Program merzeugnis gemäß dem unabhängigen Anspruch 11 gelöst. Erfindungsge mäß beinhaltet eine den von der Prozessoreinheit ausführbaren Programm kode enthaltende Programmeinheit zumindest ein Schaltprogrammelement, welches die Einstellung des Instruktionszeigers auf die jeweils als nächstes auszuführende Instruktion bewirkt. Die Einrichtung einer die Abarbeitung des Anwendungsprogrammes vorantreibenden Hauptinterpreterroutine ist daher nicht erforderlich. Jedes aus von der Prozessoreinheit ausführbarem Programmkode aufgebaute Programmelement enthält eine Programmse quenz, welche auf ein Schaltprogrammelement verzweigt.The above task is also carried out by a program product solved according to independent claim 11. Invention Ge One contains the program that can be executed by the processor unit program unit containing code at least one circuit program element, which sets the instruction pointer to the next one respectively instruction to be executed. The establishment of a processing of the application program is the main interpreter routine therefore not necessary. Each of which can be executed by the processor unit Program code constructed program element contains a program sequence that branches to a circuit program element.
Ein Ausführungsbeispiel der Erfindung wird nachfolgend unter Bezugnah me auf die Zeichnung näher erläutert.An embodiment of the invention is below with reference me explained in more detail on the drawing.
Es zeigen:Show it:
Fig. 1 die Struktur einer vorgeschlagenen Computeranordnung, Fig. 1 shows the structure of a proposed computer arrangement,
Fig. 2 die Funktionsweise dieser Computeranordnung, FIG. 2, the operation of the computer arrangement,
Fig. 3 den Ablauf der Abarbeitung eines Anwenderprogrammes. Fig. 3 shows the execution of a user program.
Fig. 1 veranschaulicht die Struktur der vorgeschlagenen Computeranordnug mit den funktionellen Wirkverbindungen der beteiligten Elemente. Physika lische Realisierungsplattform für die dargestellte Struktur kann insbesondere das Computersystem eines tragbaren Datenträgers, vorzugsweise in Gestalt einer Chipkarte, d. h. ein hinsichtlich seiner physikalischen Ressourcen stark beschränktes System sein. Den Kern der in Fig. 1 gezeigten Struktur bildet eine zentrale Prozessoreinheit 10, welche in an sich üblicher Weise zur inter pretierenden Ausführung von in einer Maschinensprache vorliegendem Programmkode ausgebildet ist. In der zentralen Prozessoreinheit 10 sind eine erste Zeigerstelleinrichtung 20 zur Verstellung eines Instruktionszeigers 22 sowie eine zweite Zeigerstelleinrichtung 30 zur Verstellung eines Pro grammzeigers 32 realisiert. Der Instruktionszeiger 22 zeigt auf eine Adresse eines ersten Speicherbereiches 40, in dem sich ein aus einer Vielzahl von Ein zelinstruktionen aufgebautes Anwenderprogramm befindet. Der Pro grammzeiger 32 zeigt auf eine Startadresse in einem zweiten Speicherbereich 50, in dem sich von der zentralen Prozessoreinheit 10 ausführbarer, in Ma schinensprache abgefaßter Maschinenkode befindet. Fig. 1 illustrates the structure of the proposed Computeranordnug with the functional connections of the elements involved. Physical implementation platform for the structure shown can be, in particular, the computer system of a portable data carrier, preferably in the form of a chip card, ie a system that is very limited in terms of its physical resources. The core of the structure shown in FIG. 1 is formed by a central processor unit 10 , which is designed in a conventional manner to interpret program code present in a machine language. In the central processor unit 10 , a first pointer setting device 20 for adjusting an instruction pointer 22 and a second pointer setting device 30 for adjusting a program pointer 32 are implemented. The instruction pointer 22 points to an address of a first memory area 40 in which there is a user program constructed from a multiplicity of individual instructions. The program pointer 32 points to a start address in a second memory area 50 , in which the central processor unit 10 contains executable machine code written in machine language.
Über eine bidirektionale Signalverbindung 24 ist die Instruktionszeigerstel leinrichtung 20 mit einer Weiterschalteinheit 60 verbunden, welche im fol genden als innerer Interpreter bezeichnet wird. Diesem teilt die Instrukti onszeigerstelleinrichtung 20 über die Signalverbindung 24 die Position des Instruktionszeigers 22 mit. In der Gegenrichtung bewirkt der innere Inter preter 60 eine Verstellung des Instruktionszeigers 22. Via a bidirectional signal connection 24 , the instruction pointer setting device 20 is connected to a relay unit 60 , which is referred to below as the internal interpreter. This instructs the pointer pointer setting device 20 via the signal connection 24 of the position of the instruction pointer 22 . In the opposite direction, the inner interpreter 60 causes the instruction pointer 22 to be adjusted.
Mittels einer weiteren Signalverbindung 34 ist der innere Interpreter 60 mit der zweiten Zeigerstelleinrichtung 30 verbunden. Darüber veranlaßt er die Zeigerstelleinrichtung 30, den Programmzeiger 32 zu setzen.The inner interpreter 60 is connected to the second pointer setting device 30 by means of a further signal connection 34 . In addition, he causes the pointer setting device 30 to set the program pointer 32 .
Mittels einer weiteren Signalverbindung 62 ist der innere Interpreter 60 mit dem Anwenderprogrammspeicherbereich 40 verbunden. Die Signalverbin dung 62 dient dabei zum Auslesen des Inhaltes der durch den Instruktions zeiger 22 bezeichneten Adresse im Anwenderprogrammspeicherbereich 40.The inner interpreter 60 is connected to the user program memory area 40 by means of a further signal connection 62 . The signal connection 62 serves to read out the content of the address designated by the instruction pointer 22 in the user program memory area 40 .
Vom inneren Interpreter 60 ausgehend ist weiterhin ein Adreßzeiger 64 auf einen dritten Speicherbereich 70 gerichtet. Darin befindet sich eine Tabelle, welche jedem aus dem Anwenderprogrammspeicherbereich 40 ausgelesenen Befehl eine Startadresse zuordnet, die im zweiten Speicherbereich 50 ein in Maschinensprache ausgeführtes Programmelement 500, 520 bezeichnet. Auf die Startadresse ist der von der zentralen Prozessoreinheit 10 ausgehende Programmzeiger 32 gerichtet.Starting from the inner interpreter 60 , an address pointer 64 is also directed to a third memory area 70 . This contains a table which assigns a start address to each command read from the user program memory area 40 , which in the second memory area 50 denotes a program element 500 , 520 executed in machine language. The program pointer 32 emanating from the central processor unit 10 is directed to the start address.
Dem zweiten Speicherbereich 50 ist über eine bidirektionale Datenverbin dung 52 desweiteren ein vierter Speicherbereich 80 zugeordnet, welcher der Prozessoreinheit 10 als Stapelspeicher dient.The second memory area 50 is also assigned a fourth memory area 80 via a bidirectional data link 52 , which serves as a stack memory for the processor unit 10 .
Die technische Realisierung der in Fig. 1 dargestellten Struktur in einer Hardwarebasis erfolgt im Hinblick auf eine möglichst gute Zweckmäßigkeit angepaßt an die gegebenen Hardwareeinrichtungen. In einer zweckmäßigen Realisierungsform sind der erste, zweite und dritte Speicherbereich 40, 50, 70 in Gestalt eines EEPROMs realisiert, der Stapelspeicher 80 in einem RAM. Der innere Interpreter 60 ist zweckmäßig durch ein, in einem ROM abgeleg tes Mikroprogramm dargestellt, die Zeigerstelleinrichtungen 20, 30 als Regi ster der zentralen Prozessoreinheit 10. The technical implementation of the structure shown in FIG. 1 on a hardware basis takes place with a view to the best possible suitability, adapted to the given hardware devices. In an expedient implementation, the first, second and third memory areas 40 , 50 , 70 are realized in the form of an EEPROM, the stack memory 80 in a RAM. The inner interpreter 60 is expediently represented by a micro program stored in a ROM, the pointer setting devices 20 , 30 as registers of the central processor unit 10 .
Fig. 2 veranschaulicht die Funktionsweise des in Fig. 1 dargestellten Systems. Der erste Speicherbereich 40 sei dabei mit einem Anwenderprogramm be legt, dessen Instruktionen die Gestalt eines Bytekodes haben, der Instrukti onszeiger 22 zeige auf einen ersten Bytekode-Befehl 42 des Anwenderpro grammes. Fig. 2 illustrates the operation of the system shown in Fig. 1. The first memory area 40 is loaded with a user program, the instructions of which have the form of a byte code, the instruction pointer 22 shows a first byte code command 42 of the user program.
Den durch den Instruktionszeiger 22 bezeichneten Bytekode-Befehl 42 liest der innere Interpreter 60 aus und ermittelt ein den Bytekode-Befehl 42 um setzendes, in Maschinenkode abgefaßtes Programmelement 500, 520 im zweiten Speicherbereich 50. Hierfür benutzt er die im dritten Speicherbereich 70 abgelegte Tabelle, welche jedem in der Bytekode-Syntax enthaltenen Bytekode-Befehl 42, 44 die Startadresse 76, 78 eines den Befehl realisierenden Maschinenkodeprogrammelements 500, 520 im zweiten Speicherbereich 50 zuordnet.The inner interpreter 60 reads the byte code command 42 denoted by the instruction pointer 22 and ascertains a program element 500 , 520 which converts the byte code command 42 and is written in machine code in the second memory area 50 . For this purpose, he uses the table stored in the third memory area 70 , which assigns the start address 76 , 78 of a machine code program element 500 , 520 implementing the command in the second memory area 50 to each byte code command 42 , 44 contained in the byte code syntax.
Die Bytekode-Befehle 42, 44 sind in der Tabelle im dritten Speicherbereich 70 in fortlaufender Reihe durch einen auf den Anfang der Tabelle bezogenen Offset-Wert repräsentiert, der einen fortlaufenden Index 72, 74 bildet. Der Index 72, 74 wird zweckmäßig unmittelbar aus der Darstellung der Byte kode-Befehle 42, 44 im ersten Speicherbereich 40 unter Berücksichtigung der Wortlänge der Sartadressen 76, 78 abgeleitet. Im Falle einer üblichen Byte kode-Darstellung der Startadressen resultiert er, wie in Fig. 2 angedeutet, durch Multiplikation der Bytekode-Befehle 42, 44 im ersten Speicherbereich 40 mit der Zahl Zwei. Auf den jeweils einen Bytekode-Befehl 42, 44 entspre chenden Index 72, 74 im dritten Speicherbereich 70 richtet der innere Inter preter 60 den Adreßzeiger 64 und liest die zugeordnete Startadresse 78 aus. The byte code commands 42 , 44 are represented in the table in the third memory area 70 in a continuous row by an offset value which relates to the beginning of the table and which forms a continuous index 72 , 74 . The index 72 , 74 is expediently derived directly from the representation of the byte code commands 42 , 44 in the first memory area 40 , taking into account the word length of the type addresses 76 , 78 . In the case of a conventional byte code representation of the start addresses, it results, as indicated in FIG. 2, by multiplying the byte code commands 42 , 44 in the first memory area 40 by the number two. The inner interpreter 60 aligns the address pointer 64 and reads the assigned start address 78 from the respective index 72 , 74 in the third memory area 70 corresponding to a byte code command 42 , 44 .
Entsprechend der gefundenen Startadresse 78 übermittelt der innere Inter preter 60 der Zeigerstelleinrichtung 30 in der zentralen Prozessoreinheit 10 über die Signalverbindung 34 einen Setzbefehl, auf den hin die Zeigerstel leinrichtung 30 den Programmzeiger 32 auf die bezeichnete Startadresse im zweiten Speicherbereich 50 stellt. Das dort abgelegte, aus einer Folge von Maschinenkodesequenzen gebildete Programmelement 500, 520 wird von der zentralen Prozessoreinheit 10 ausgeführt. Jedes Programmelement 500, 520 umfaßt dabei Programmschritte, welche den zugrundeliegenden Byte kode-Befehl 42, 44 realisieren. Am Schluß jedes Programmelementes 500, 520 befindet sich desweiteren eine Befehlssequenz 540, 550, welche die zentrale Prozessoreinheit 10 veranlaßt, ein Schaltprogrammelement 600, 610, 620 aus zuführen.Corresponding to the starting address 78 found , the inner interpreter 60 of the pointer setting device 30 in the central processor unit 10 transmits a setting command via the signal connection 34 , to which the pointer setting device 30 sets the program pointer 32 to the designated starting address in the second memory area 50 . The program element 500 , 520 stored there and formed from a sequence of machine code sequences is executed by the central processor unit 10 . Each program element 500 , 520 comprises program steps which implement the underlying byte code command 42 , 44 . At the end of each program element 500 , 520 there is also an instruction sequence 540 , 550 which causes the central processor unit 10 to execute a circuit program element 600 , 610 , 620 .
Das Schaltprogrammelement 600, 610, 620 korrespondiert nicht zu einem Bytekode-Befehl eines Anwenderprogrammes, sondern wirkt als Teil des inneren Interpreters 60. Es befindet sich vorzugsweise gleichfalls im dritten Speicherbereich 70 und besteht wie die Programmelemente 500, 520 aus von der zentralen Prozessoreinheit 10 unmittelbar ausführbarem, in Maschinen sprache abgefaßtem Kode. Eine erste Befehlssequenz 612, 622 des Schaltpro grammelementes 610, 620 veranlaßt dabei die Zeigerstelleinrichtung 20 der zentralen Prozessoreinheit 10 dazu, den Instruktionszeiger 22 auf den näch sten Bytekode-Befehl 44 im ersten Speicherbereich 40 zu richten. Eine weitere Befehlssequenz 614, 624 bewirkt, daß der innere Interpreter 60 den auf den dritten Speicherbereich 70 gerichteten Adreßzeiger 64 verstellt, um die dem Bytekodebefehl 44 zugehörige Startadresse 76, 78 eines ausführbaren Pro grammelementes 500, 520 aufzufinden und damit dessen Ausführung zu veranlassen. The switching program element 600 , 610 , 620 does not correspond to a byte code command of a user program, but acts as part of the inner interpreter 60 . It is preferably also located in the third memory area 70 and, like the program elements 500 , 520, consists of code that can be executed directly by the central processor unit 10 and written in machine language. A first command sequence 612 , 622 of the circuit program element 610 , 620 causes the pointer setting device 20 of the central processor unit 10 to direct the instruction pointer 22 to the next byte code command 44 in the first memory area 40 . Another command sequence 614 , 624 causes the inner interpreter 60 to adjust the address pointer 64 directed to the third memory area 70 in order to find the start address 76 , 78 of an executable program element 500 , 520 associated with the byte code command 44 and thus cause its execution.
Häufig erfordern verschiedene Instruktionen eines Anwenderprogrammes unterschiedliche Stellschrittweiten des Instruktionszeigers. Sprungbefehle etwa definieren in der Regel bereits die Position des Instruktionszeigers, so daß eine Verstellung durch ein Schaltelement nicht erforderlich ist. In einem typischen in Bytekodeform vorliegenden Anwenderprogramms besitzen deweiteren die Bytekode-Befehle 42, 44 in der Regel Operanden mit ver schiedenen Bytezahlen. In solchen Fällen sind zweckmäßig mehrere Schalt programmelemente 600, 610, 620 vorgesehen, welche eine Verstellung des Instruktionszeigers 22 um unterschiedliche Schrittweiten bewirken.Different instructions of a user program often require different setting increments of the instruction pointer. Jump commands, for example, usually already define the position of the instruction pointer, so that adjustment by a switching element is not necessary. In a typical user program in byte code form, the byte code instructions 42 , 44 generally have operands with different numbers of bytes. In such cases, a plurality of switching program elements 600 , 610 , 620 are expediently provided, which cause the instruction pointer 22 to be adjusted by different increments.
Ein erstes Schaltelement 600 dient dabei zur Durchführung von Sprungbe fehlen. Es beinhaltet keine Verstellung des Instruktionszeigers 22, sondern umfaßt nur eine Befehlssequenz, die bewirkt, daß der innere Interpreter 60 den Adreßzeiger 64 zum Auffinden der einem vorgegebenen Bytekodebefehl 44 zugehörigen Startadresse 76, 78 eines ausführbaren Programmelementes 500, 520 verstellt, um damit dessen Ausführung zu veranlassen. Weitere Schaltprogrammelemente 610, 620 ergeben sich aus der Struktur der Byte kodesyntax. Weisen die Bytekode-Befehle Vorzugsglängen auf, überwiegen etwa Befehle mit entweder ein oder zwei Bytes, werden zweckmäßig auf die Vorzugslängen abgestimmte Schaltelemente 610, 610 angelegt. Ein Schalt programmelement 610 bewirkt etwa eine Verstellung des Instruktionszeigers 22 um ein Byte, ein anderes Schaltprogrammelement 620 um zwei Bytes. In ersterem besteht entsprechend die auf die Position des Instruktionszeigers 22 wirkende Befehlssequenz 612 aus einer Inkrementierung, im zweitem aus einer Addition der Zahl Zwei 622. Analog lassen sich weitere Schaltpro grammelemente zur Errzielung weiterer Schrittweiten einrichten.A first switching element 600 is used to perform jump commands. It does not include adjustment of the instruction pointer 22 , but only comprises an instruction sequence which causes the inner interpreter 60 to adjust the address pointer 64 to find the start address 76 , 78 of an executable program element 500 , 520 associated with a given byte code instruction 44 , in order to thereby execute it cause. Additional circuit program elements 610 , 620 result from the structure of the byte code syntax. If the byte code commands have preferred lengths, for example commands with either one or two bytes predominate, switching elements 610 , 610 matched to the preferred lengths are expediently created. A switching program element 610 causes an adjustment of the instruction pointer 22 by one byte, another switching program element 620 by two bytes. Correspondingly, in the former, the command sequence 612 acting on the position of the instruction pointer 22 consists of an increment, in the second an addition of the number two 622 . Analogously, further circuit program elements can be set up to achieve further step sizes.
Entsprechend den durch die verschiedenen Schaltprogrammelemente 600, 610, 620 bewirkten unterschiedlichen Sprungweiten werden die zu den Bytekode-Befehlen 42, 44 korrespondierenden Programmelemente 500, 520 durch verschiedene Programmsequenzen 540, 550 zum Aufrufen der Schalt programmelemente 600, 610, 620 abgeschlossen. Eine erste Programmse quenz 540 bewirkt etwa den Aufruf eines Schaltprogrammelements 610, das zu einer Inkrementierung des Instruktionszeigers 22 um ein Byte führt, wäh rend eine andere Programmsequenz 550 ein Schaltprogrammelement 620 aufruft das zu einer Verstellung des Instruktionszeigers 22 um zwei Bytes führt.Corresponding to the different jump sizes caused by the different switching program elements 600 , 610 , 620 , the program elements 500 , 520 corresponding to the byte code commands 42 , 44 are completed by different program sequences 540 , 550 for calling the switching program elements 600 , 610 , 620 . A first program sequence 540 , for example, calls up a circuit program element 610 which leads to an incrementation of the instruction pointer 22 by one byte, while another program sequence 550 calls up a circuit program element 620 which leads to an adjustment of the instruction pointer 22 by two bytes.
Fig. 3 veranschaulicht in einem Flußdiagramm die generelle Schrittfolge bei der Abarbeitung eines Anwenderprogrammes mit Hilfe des vorgeschlage nen inneren Interpreters. Sie startet, Schritt 100, mit der Einstellung des In struktionszeigers 22 auf die erste Instruktion, d. h. etwa auf den ersten Byte kode-Befehl, des Anwenderprogrammes durch die in der zentralen Prozes soreinheit 10 angeordnete Zeigerstelleinrichtung 20. Die danach erreichte Position des Instruktionszeigers 22 meldet die zentrale Prozessoreinheit 10 an den inneren Interpreter 60, Schritt 102, der darauf die Abarbeitung fort setzt. Fig. 3 illustrates in a flowchart the general sequence of steps in the execution of a user program with the help of the proposed inner interpreter. It starts, step 100 , with the setting of the instruction pointer 22 to the first instruction, that is to say to the first byte code command, of the user program by the pointer setting device 20 arranged in the central processor unit 10 . The central processor unit 10 reports the position of the instruction pointer 22 then reached to the inner interpreter 60 , step 102 , which then continues processing.
Der innere Interpreter 60 liest zunächst im ersten Speicherbereich 40 den durch den Instruktionszeiger 22 bezeichneten Bytekode-Befehl aus, Schritt 104, und ermittelt den zu dem Bytekode-Befehl korrespondierenden Index 72 in der Tabelle im dritten Speicherbereich 70. Gemäß dem ermittelten In dex entnimmt er aus der Tabelle im Speicherbereich 70 die Startadresse eines den Bytekode-Befehl realisierenden Maschinenkodeprogrammelementes im zweiten Speicherbereich 50, Schritt 106, und veranlaßt die Zeigerstelleinrich tung 30 in der zentralen Prozessoreinheit 10 zur Einstellung des Programm zeigers 32 auf die gefundene Startadresse, Schritt 108. Das durch die Star tadresse bezeichnete Maschinenkodeprogrammelement 500, 520 wird von der zentralen Prozessoreinheit 10 ausgeführt, Schritt 110. Veranlaßt durch die jeweils auf ein Schaltprogrammelement 600, 610, 620 verweisende Pro grammsequenz 540, 550 am Ende jedes Programmelementes 500, 520 ruft die zentrale Prozessoreinheit 10 mit Beendigung der Ausführung eines Pro grammelementes 500, 520 jeweils wieder den inneren Interpreter 60 auf, Schritt 112 und übergibt diesem die weitere Programmabarbeitung, Schritt 114. Der innere Interpreter 60 veranlaßt daraufhin gemäß der Vorgabe durch das zuletzt ausgeführte Schaltprogrammelement 540, 550 die Zeigerstellein richtung 20 zur Verstellung des Instruktionszeigers 22 und beginnt erneut die Ausführung der Schritte 100 ff.The inner interpreter 60 first reads in the first memory area 40 the byte code command designated by the instruction pointer 22 , step 104 , and determines the index 72 corresponding to the byte code command in the table in the third memory area 70 . According to the determined index, he takes from the table in the memory area 70 the start address of a machine code program element realizing the byte code command in the second memory area 50 , step 106 , and causes the pointer actuating device 30 in the central processor unit 10 to set the program pointer 32 to the found one Start address, step 108 . The machine code program element 500 , 520 designated by the start address is executed by the central processor unit 10 , step 110 . Caused by the program sequence 540 , 550 referring to a circuit program element 600 , 610 , 620 at the end of each program element 500 , 520 , the central processor unit 10 calls the inner interpreter 60 again at the end of the execution of a program element 500 , 520 , step 112 and transfers this to further program processing, step 114 . The inner interpreter 60 then causes the pointer pointer device 20 to adjust the instruction pointer 22 in accordance with the specification by the last executed circuit program element 540 , 550 and starts the execution of steps 100 ff again.
Claims (18)
einer ersten Programmeinheit (60), welche eine ausführende Prozessorein heit (10) des Computersystems dazu befähigt, die jeweils als nächste zu be arbeitende Instruktion (42, 44) des Anwenderprogrammes aufzufinden,
einer zweiten Programmeinheit (50), die von der Prozessoreinheit (10) un mittelbar ausführbare, in Maschinensprache dargestellte Programmelemente (500, 520) enthält, welche jeweils zu einer in einem Anwenderprogramm vorgegebenen Instruktion (42, 44) korrespondieren und deren Ausführung bewirken,
sowie einer dritten Programmeinheit (50), die mindestens ein in Maschinen sprache abgefaßtes Schaltprogrammelement (600, 610, 620) einschließt, wel che das Computersystem dazu veranlaßt, die Fortsetzung der Programmaus führung an die erste Programmeinheit (60) zu übergeben.11. Program product for setting up the computer system of a portable data carrier for an interpretive execution of a user program consisting of a sequence of instructions
a first program unit ( 60 ) which enables an executing processor unit ( 10 ) of the computer system to find the instruction ( 42 , 44 ) of the user program to be processed next,
a second program unit ( 50 ) which contains program elements ( 500 , 520 ) which can be directly executed by the processor unit ( 10 ) and which are represented in machine language and which each correspond to an instruction ( 42 , 44 ) specified in a user program and cause its execution,
and a third program unit ( 50 ) which includes at least one circuit program element ( 600 , 610 , 620 ) written in machine language, which causes the computer system to pass on the program execution to the first program unit ( 60 ).
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE2000106291 DE10006291A1 (en) | 2000-02-14 | 2000-02-14 | Electronic structure for portable data support, comprises processor with instruction and program indicator controls also memory zones for applications, machine code, departure addresses and stacking |
FR0101560A FR2805058B1 (en) | 2000-02-14 | 2001-02-06 | COMPUTER STRUCTURE FOR A PORTABLE DATA MEDIUM |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE2000106291 DE10006291A1 (en) | 2000-02-14 | 2000-02-14 | Electronic structure for portable data support, comprises processor with instruction and program indicator controls also memory zones for applications, machine code, departure addresses and stacking |
Publications (1)
Publication Number | Publication Date |
---|---|
DE10006291A1 true DE10006291A1 (en) | 2001-08-30 |
Family
ID=7630710
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2000106291 Ceased DE10006291A1 (en) | 2000-02-14 | 2000-02-14 | Electronic structure for portable data support, comprises processor with instruction and program indicator controls also memory zones for applications, machine code, departure addresses and stacking |
Country Status (2)
Country | Link |
---|---|
DE (1) | DE10006291A1 (en) |
FR (1) | FR2805058B1 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5920720A (en) * | 1997-02-25 | 1999-07-06 | Microsoft Corporation | Efficient computer based virtual machine object structure |
DE19810675A1 (en) * | 1998-03-12 | 1999-10-14 | Giesecke & Devrient Gmbh | Disk |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2667171B1 (en) * | 1990-09-25 | 1994-08-26 | Gemplus Card Int | PORTABLE MEDIUM WITH EASILY PROGRAMMABLE MICRO-CIRCUIT AND METHOD FOR PROGRAMMING THIS MICRO-CIRCUIT. |
FR2757970B1 (en) * | 1996-12-30 | 1999-03-26 | Gemplus Card Int | METHOD FOR LOADING A USER PROGRAM INTO A CHIP MEDIUM |
-
2000
- 2000-02-14 DE DE2000106291 patent/DE10006291A1/en not_active Ceased
-
2001
- 2001-02-06 FR FR0101560A patent/FR2805058B1/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5920720A (en) * | 1997-02-25 | 1999-07-06 | Microsoft Corporation | Efficient computer based virtual machine object structure |
DE19810675A1 (en) * | 1998-03-12 | 1999-10-14 | Giesecke & Devrient Gmbh | Disk |
Also Published As
Publication number | Publication date |
---|---|
FR2805058B1 (en) | 2007-11-09 |
FR2805058A1 (en) | 2001-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE1928202C3 (en) | Device for the creation of statistical data on the operational sequence of program-controlled data processing systems | |
DE4331703C2 (en) | Electronic device | |
DE3732808A1 (en) | METHOD AND DEVICE FOR GENERATING AND EDITING INTERRUPT POINTS IN A MONITOR PROGRAM | |
DE2801563A1 (en) | DIALOG PROCESSOR | |
DE2435691A1 (en) | METHOD AND DEVICE FOR ASSIGNING TEST SAMPLES AND DATA | |
EP0450116B1 (en) | Automation apparatus with single-step test | |
DE10041072A1 (en) | Automatic generation of program code involves forming symbol for component with interfaces in graphical editor, offering selection, generating code combining components | |
EP0838054B1 (en) | Graphic control process and device for controlling operations in a network management system | |
DE1180171B (en) | Number calculator | |
EP1709534B1 (en) | The running of a program by a virtual machine | |
DE1774421B1 (en) | MORE PROGRAM DATA PROCESSING SYSTEM | |
DE10006291A1 (en) | Electronic structure for portable data support, comprises processor with instruction and program indicator controls also memory zones for applications, machine code, departure addresses and stacking | |
EP0035772B1 (en) | Microprogramme control apparatus | |
DE69722584T2 (en) | MANUFACTURE OF MACROS IN A CONTROL SYSTEM BY RECORDING REACTIONS | |
DE2606295C3 (en) | Arrangement for the transmission of characters between peripheral units controllable via a multiplex channel and a main memory of a central processor | |
AT403220B (en) | DATA PROCESSING SYSTEM | |
DE1424756A1 (en) | Computing system memory circuit | |
EP1415206B1 (en) | Execution of instructions in an automation system | |
DE10228200A1 (en) | Computer control system for machine tool, has input terminal with keyboard and display module setting up several input parameters and receiving feedback from machine | |
DE1424756C (en) | Circuit arrangement for fail-safe imports or reintroduction of programs m the main memory of a data processing system | |
EP1055984B1 (en) | Method for a fault analysis in microprocessor-controlled installations | |
EP1249759A1 (en) | Program controlled unit | |
DE2835261C2 (en) | Data processing unit | |
DE1774421C (en) | Multi-program data processing system | |
DE3145080A1 (en) | Freely programmable open-loop, closed-loop control |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8131 | Rejection |