DE102004014885A1 - Verfahren zur Optimierung eines Programms eines tragbaren Datenträgers - Google Patents

Verfahren zur Optimierung eines Programms eines tragbaren Datenträgers Download PDF

Info

Publication number
DE102004014885A1
DE102004014885A1 DE200410014885 DE102004014885A DE102004014885A1 DE 102004014885 A1 DE102004014885 A1 DE 102004014885A1 DE 200410014885 DE200410014885 DE 200410014885 DE 102004014885 A DE102004014885 A DE 102004014885A DE 102004014885 A1 DE102004014885 A1 DE 102004014885A1
Authority
DE
Germany
Prior art keywords
program
statistical data
portable data
data carrier
portable
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.)
Granted
Application number
DE200410014885
Other languages
English (en)
Other versions
DE102004014885B4 (de
Inventor
Hagen Patzke
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.)
Giesecke and Devrient GmbH
Original Assignee
Giesecke and Devrient GmbH
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 Giesecke and Devrient GmbH filed Critical Giesecke and Devrient GmbH
Priority to DE102004014885.6A priority Critical patent/DE102004014885B4/de
Publication of DE102004014885A1 publication Critical patent/DE102004014885A1/de
Application granted granted Critical
Publication of DE102004014885B4 publication Critical patent/DE102004014885B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zur Optimierung eines in einem tragbaren Datenträger (1) implementierten Programms im Hinblick auf eine effiziente Nutzung der von einem integrierten Schaltkreis (3) des tragbaren Datenträgers (1) zur Verfügung gestellten Ressourcen. Das erfindungsgemäße Verfahren zeichnet sich dadurch aus, daß der tragbare Datenträger (1) an einen Benutzer herausgegeben wird und beim bestimmungsgemäßen Einsatz des tragbaren Datenträgers (1) durch den Benutzer vom tragbaren Datenträger (1) mit Hilfe wenigstens eines Diagnoseelements (16) statistische Daten bezüglich wenigstens eines Elements (15) des Programms, das für die Optimierung in Frage kommen könnte, erfaßt werden.

Description

  • Die Erfindung betrifft ein Verfahren zur Optimierung eines Programms eines tragbaren Datenträgers. Weiterhin betrifft die Erfindung einen tragbaren Datenträger und ein System zur Durchführung eines derartigen Verfahrens.
  • Tragbare Datenträger werden in vielen Bereichen eingesetzt, beispielsweise als Ausweisdokumente, zum Nachweis einer Zugangsberechtigung zu einem Mobilfunknetz oder zur Durchführung von Transaktionen des bargeldlosen Zahlungsverkehrs. Der Einsatz erfolgt dabei häufig im Zusammenspiel mit einem für die jeweilige Anwendung vorgesehenen Endgerät. Außer bei sehr einfach gelagerten Anwendungen ist es in der Regel erforderlich, daß der tragbare Datenträger über ein Programm zur Ausführung oder Unterstützung der Ausführung der Anwendung verfügt. Außerdem sind viele tragbare Datenträger mit einem Betriebssystem ausgestattet. Die Programme einschließlich des Programms, welches das Betriebssystem darstellt, sind in einem integrierten Schaltkreis des tragbaren Datenträgers gespeichert und werden von diesem ausgeführt. Angesichts des engen Kostenrahmens und auch aus Platzgründen werden tragbare Datenträger meist mit integrierten Schaltkreisen ausgestattet, die über sehr begrenzte Ressourcen im Hinblick auf die Rechenleistung und den Speicherplatz verfügen. Es besteht daher das Bedürfnis, diese begrenzten Ressourcen möglichst optimal zu nutzen. Das bedeutet, daß die eingesetzten Programme im Hinblick auf eine effiziente Nutzung der Rechenleistung und des verfügbaren Speicherplatzes zu optimieren ist. Dies ist insbesondere dann ein schwieriges Problem, wenn auf dem tragbaren Datenträger mehrere Anwendungen implementiert sind.
  • Es sind bereits diverse Vorgehensweisen zum Optimieren von Programmen bekannt, die sich jeweils allerdings nicht auf die Optimierung von Programmen bei tragbaren Datenträgern beziehen. So offenbart die DE 199 63 832 A1 ein Verfahren zur Profilierung von Programmen auf virtuellen Maschinen. Gemäß diesem Verfahren wird ein Programm, das einer virtuellen Maschine zugeführt wird, compiliert, um ein Zielprogramm zu erzeugen, das direkt beispielsweise auf einer standardisierten Hardware-Plattform laufen kann. Anschließend wird das Zielprogramm zum Erzeugen von Ausführungsstatistiken, die in einem Sprungspeicher gespeichert werden, ausgeführt. Danach erfolgt ein erneutes Compilieren des Zielprogramms unter Verwendung der im Sprungspeicher gespeicherten Ausführungsstatistiken als Compilierungsunterstützung.
  • Aus der DE 100 39 538 A1 sind eine Vorrichtung und eine Methode zum Analysieren der Leistung eines Computerprogramms bekannt. Die Vorrichtung weist einen Prozessor und einen Speicher auf, der mit dem Prozessor gekoppelt ist. Im Speicher sind ein Computerprogramm mit vielen Codesegmenten und ein Leistungsanalysator gespeichert. Während das Computerprogramm gemäß vorgegebenen Bedingungen abläuft, werden vom Leistungsanalysator Informationen für jedes Codesegment protokolliert, mit deren Hilfe eine graphische Darstellung des ausgeführten Computerprogramms erstellt wird. Ein Benutzer kann dann Abfragen formulieren, um jeden gewünschten Leistungsparameter für das Computerprogramm zu analysieren, wobei der Ablauf des Computerprogramms entsprechend der Abfrage wiederholt wird.
  • Die DE 101 24 414 A1 bezieht sich auf die Optimierung der Bedienoberfläche neuer Programme. Um die Programme über einen langen Zeitraum hinweg unter realen Einsatzbedingungen auf ihre Anwender-, insbesondere Bedienungsfreundlichkeit zu untersuchen, werden bei einer, vorzugsweise jeder Eingabe von dem durch das zu optimierende Programm gesteuerten Computer selbsttätig Informationen zu der jüngsten Bedienungshandlung listen förmig in einen Protokollspeicher eingetragen. Durch eine Auswertung des Protokollspeichers kann der Programmhersteller Schwachstellen oder Probleme der Bedienoberfläche ermitteln.
  • Die Bedienungshandlungen des Benutzers eines tragbaren Datenträgers sind in den meisten Fällen allerdings nicht sehr umfangreich, so daß eine Optimierung der Bedienoberfläche in der Regel nicht erforderlich ist. Hinzu kommt noch, daß tragbare Datenträge häufig in Zusammenwirkung mit Endgeräten eingesetzt werden, über die dann auch die Bedienung abgewikkelt wird.
  • Der Erfindung liegt die Aufgabe zugrunde, ein Programm eines tragbaren Datenträgers so zu optimieren, daß die vom tragbaren Datenträger für das Programm zur Verfügung gestellten Ressourcen möglichst optimal genutzt werden.
  • Diese Aufgabe wird durch ein Verfahren mit der Merkmalskombination des Anspruchs 1 gelöst.
  • Das erfindungsgemäße Verfahren bezieht sich auf die Optimierung eines in einem tragbaren Datenträger implementierten Programms im Hinblick auf eine effiziente Nutzung der von einem integrierten Schaltkreis des tragbaren Datenträgers zur Verfügung gestellten Ressourcen. Die Besonderheit des erfindungsgemäßen Verfahrens besteht darin, daß der tragbare Datenträger an einen Benutzer herausgegeben wird und beim bestimmungsgemäßen Einsatz des tragbaren Datenträgers durch den Benutzer vom tragbaren Datenträger mit Hilfe wenigstens eines Diagnoseelements statistische Daten bezüglich wenigstens eines Elements des Programms, das für die Optimierung in Frage kommen könnte, erfaßt werden.
  • Die Erfindung hat den Vorteil, daß mit einem relativ geringen Aufwand große Mengen statistischer Daten ermittelt werden können, die für eine Optimierung des im tragbaren Datenträger implementierten Programms benötigt werden. Dabei ist es besonders vorteilhaft, daß die statistischen Daten unter realen Bedingungen ermittelt werden und somit eine Optimierung des Programms im Hinblick auf die Verhältnisse ermöglichen, unter denen der tragbare Datenträger tatsächlich eingesetzt wird.
  • Das Diagnoseelement wird vorzugsweise als ein Bestandteil des Programmelements implementiert, für das es die statistischen Daten erfaßt. Dadurch können der Zusatzaufwand und der zusätzlich für das Diagnoseelement benötigte Speicherplatz gering gehalten werden. Die statistischen Daten können jeweils in einem Statistikdatenelement gespeichert werden, das in einem Speicher des tragbaren Datenträgers eingerichtet und dem Diagnoseelement zugeordnet ist. Dies ermöglicht eine einfache Zuordnung der statistischen Daten zu den einzelnen Programmelementen. Um den für das Statistikdatenelement benötigten Speicherplatz möglichst gering zu halten, kann der bisherige Inhalt des Statistikdatenelements beim Einschreiben der statistischen Daten jeweils überschrieben werden.
  • Mit den statistischen Daten kann beispielsweise die Nutzungshäufigkeit der Programmelemente erfaßt werden. Ebenso ist es möglich, mit den statistischen Daten den für die Ausführung des Programmelements jeweils benötigten minimalen und/oder maximalen Speicherplatz zu erfassen. Diese Informationen sind im Hinblick auf eine Optimierung des Programms jeweils von besonders hoher Relevanz.
  • Die statistischen Daten können unter vorgegebenen Bedingungen zur Weiterverarbeitung weitergegeben werden. Insbesondere können die statistischen Daten vom tragbaren Datenträger an ein Endgerät übermittelt werden, das für die Weitergabe der statistischen Daten ausgebildet ist. Die weitergegebenen statistischen Daten können zur Optimierung des im tragbaren Datenträger implementierten Programms ausgewertet werden. Durch diese Vorgehensweise entfällt die Notwendigkeit, die ausgegebenen tragbaren Datenträger zur Auswertung der statistischen Daten nach einer gewissen Zeit wieder einzusammeln.
  • Auf Basis der Auswertung werden häufig benutzte Programmelemente vorzugsweise im Hinblick auf ihre Ausführungsgeschwindigkeit optimiert. Bei selten benutzten Programmelementen ist es von Vorteil, wenn diese im Hinblick auf den für ihre Ausführung benötigten Speicherplatz optimiert werden. Insbesondere können auf Basis der Auswertung Instruktionen, auf denen die Programmelemente basieren und/oder Daten, die von den Programmelementen gehandhabt werden, optimiert werden.
  • Der erfindungsgemäße tragbaren Datenträger weist einen integrierten Schaltkreis auf, in dem ein Programm implementiert ist, das im Hinblick auf eine effiziente Nutzung der vom integrierten Schaltkreis zur Verfügung gestellten Ressourcen zu optimieren ist. Die Besonderheit des erfindungsgemäßen tragbaren Datenträgers besteht darin, daß im integrierten Schaltkreis wenigstens ein Diagnoseelement implementiert ist. Das Diagnoseelement dient einer beim bestimmungsgemäßen Einsatz des tragbaren Datenträgers durch einen Benutzer durchführbaren Erfassung statistischer Daten bezüglich wenigstens eines Elements des Programms, das für die Optimierung in Frage kommen könnte. Der erfindungsgemäße tragbarer Datenträger ist vorzugsweise als eine Chipkarte ausgebildet.
  • Das erfindungsgemäße System weist einen erfindungsgemäß ausgebildeten tragbaren Datenträger, ein Endgerät und einen Computer auf. Im tragbaren Datenträger ist ein Programm implementiert, das im Hinblick auf eine effiziente Nutzung der von einem integrierten Schaltkreis des tragbaren Datenträgers zur Verfügung gestellten Ressourcen zu optimieren ist. Der tragbare Datenträger steht wenigstens zeitweise mit dem Endgerät in Datenverbindung. Das Endgerät ist über ein Netzwerk wenigstens zeitweise mit dem Computer verbunden.
  • Die Erfindung wird nachstehend anhand der in der Zeichnung dargestellten Ausführungsbeispiele erläutert, bei denen der tragbare Datenträger als eine Chipkarte ausgebildet ist.
  • Es zeigen:
  • 1 eine schematische Darstellung eines Ausführungsbeispiels des erfindungsgemäßen Systems,
  • 2 ein stark vereinfachtes Blockschaltbild für die Architektur eines Ausführungsbeispiels des integrierten Schaltkreises der Chipkarte,
  • 3 ein Flußdiagramm für eine Variante der erfindungsgemäßen Vorgehensweise zur Optimierung eines Programms der Chipkarte und
  • 4 ein Flußsdiagramm für eine mögliche Vorgehensweise bei der Ermittlung der statistischen Daten mittels der Chipkarte.
  • 1 zeigt eine schematische Darstellung eines Ausführungsbeispiels des erfindungsgemäßen Systems. Das System weist unter anderem eine Chipkarte 1 und ein Endgerät 2 auf. Die Chipkarte 1 verfügt über einen integrierten Schaltkreis 3, der insbesondere als ein Mikroprozessor ausgebildet ist. Im integrierten Schaltkreis 3 ist wenigstens ein Programm implementiert, das gemäß der Erfindung zu optimieren ist. Das Endgerät 2 weist eine Elektronik 4 auf, die beispielsweise aus einem Mikroprozessor und weiteren elektronischen Bauteilen besteht. Weiterhin verfügt das Endgerät 2 über eine Tastatur 5 zur Eingabe von Daten und einen Bildschirm 6 zur Darstellung von Daten. Die Tastatur 5 und der Bildschirm 6 sind jeweils mit der Elektronik 4 verbunden. Außerdem besteht zu dem in 1 dargestellten Zeitpunkt eine Verbindung zwischen der Chipkarte 1 und dem Endgerät 2, über die der Chipkarte 1 beispielsweise eine Betriebsspannung und ein Taktsignal zugeführt werden und eine Datenübertragung zwischen der Chipkarte 1 und dem Endgerät 2 durchgeführt wird. Als eine weitere Systemkomponente ist in 1 ein Systemcomputer 7 dargestellt, der einem Systembetreiber zugeordnet ist. Der Systemcomputer 7 ist über ein erstes Netzwerk 8 mit dem Endgerät 2 verbunden. Schließlich ist noch ein Entwicklungscomputer 9 eines Programmentwicklers vorgesehen, der über ein zweites Netzwerk 10 mit dem Systemcomputer 7 verbunden ist.
  • Die in 1 dargestellten Komponenten werden nicht alle zwingend für das erfindungsgemäße System benötigt. Beispielsweise kann eines der beiden Netzwerke 8 oder 10 entfallen und die Daten über das verbleibende Netzwerk 8 bzw. 10 oder auf sonstige Weise übermittelt werden. Ebenso besteht die Möglichkeit, daß der Systembetreiber und der Programmentwickler identisch sind und somit der Entwicklungscomputer 9 und folglich auch das zweite Netzwerk 10 entfallen können.
  • Im Rahmen der Erfindung ist es vorgesehen, daß wenigstens ein Programm der Chipkarte 1 vom Programmentwickler optimiert wird. Für diese Optimierung werden Daten herangezogen, die im Rahmen des Feldeinsatzes der Chipkarte 1 ermittelt werden. Dies wird im Einzelnen anhand der 2, 3 und 4 erläutert.
  • 2 zeigt ein stark vereinfachtes Blockschaltbild für die Architektur eines Ausführungsbeispiels des integrierten Schaltkreises 3 der Chipkarte 1. Der integrierte Schaltkreis 3 weist eine Steuereinheit 11 und einen damit verbundenen Speicher 12 auf. Bei dem in 2 dargestellten Speicher 12 handelt es sich um einem nichtflüchtigen Schreib-/Lesespeicher. Weiterhin weist der integrierte Schaltkreis 3 einen nur lesbaren Permanentspeicher und einen flüchtigen Schreib-/Lesespeicher auf, die in 2 nicht eigens kenntlich gemacht sind. Der Speicher 12 ist logisch in einen Codebereich 13 und einen Datenbereich 14 unterteilt. Im Codebereich 13 des Speichers 12 sind diverse Programme zum Betrieb der Chipkarte 1 und zur Ausführung von Anwendungen abgelegt. Von diesen Programmen sind in 2 einige Programmelemente 15 dargestellt, die im Rahmen der Erfindung optimiert werden sollen. Die Programmelemente 15 können auch aus einem unveränderlichen ausführbaren Code und einem zugehörigen Parametrisierungsdatensatz, der bestimmte Verhaltensweisen des Programmelementes festlegt, aufgebaut sein. In diesem Fall kann sich der ausführbare Code der Programmelemente 15 in dem nicht gezeigten, nur lesbaren Permanentspeicher befinden, während nur der Parametrisierungsdatensatz in dem nichtflüchtigen Schreib-/Lesespeicher 12 liegt.
  • Die Programmelemente 15 weisen jeweils ein Diagnoseelement 16 auf, welches statistische Daten bezüglich des jeweiligen Programmelements 15 erfaßt. Die Diagnoseelemente 16 können, wie die Programmelemente 15, auch aus einem ausführbaren Code und einem Parametrisierungsdatensatz aufgebaut sein, wobei der ausführbare Code im Permanentspeicher liegt, der Parametrisierungsdatensatz im nichtflüchtigen Schreib-/Lesesepeicher 12.
  • Bei den statistischen Daten handelt es sich zum Beispiel um die Häufigkeit der Ausführung des jeweiligen Programmelements 15 und den im Rahmen der Ausführung jeweils benötigen Speicherplatz. Im Datenbereich 14 des Speichers 12 sind Statistikdatenelemente 17 vorgesehen, wobei je ein Statistikdatenelement 17 je einem Diagnoseelement 16 zugeordnet ist. Die Statistikdatenelemente 17 dienen der Speicherung der mit den Diagnoseelementen 16 ermittelten statistischen Daten. Beispielsweise kann jeweils ein Wert für die Gesamtzahl der Aufrufe des Programmelements 15, für welches das zugehörige Diagnoseelement 16 eingerichtet wurde, gespeichert werden. Dieser Wert wird bei jedem Aufruf des Programmelements 15 aktualisiert. Eine andere Anwendung kann darin bestehen, Bereichsangaben für den minimalen und maximalen Speicherplatzbedarf zu speichern, der jeweils für die Ausführung des Programmelements 15 benötigt wird. Hierzu wird bei jeder Ausführung des Programmelements 15 der tatsächlich benötigte Speicherplatz vom Diagnoseelement 16 ermittelt. Entsprechend den gefundenen Größenwerten werden die im Statistikdatenelement 17 gespeicherten Bereichsangaben gegebenenfalls angepaßt. Beispielsweise kann ein Programmelement 15 die Größe des beim Einschalten einer Chipkarte 1 zu reservierenden Pufferspeichers enthalten; das Programmelement 15 mitsamt zugehörigem Diagnoseelement 16 kann dabei im nur lesbaren Permanentspeicher angelegt sein. Das Diagnoseelement 16 enthält eine Statistikroutine, die die Menge des maximal tatsächlich benutzten Pufferspeichers erfaßt und in einem nichtflüchtigen Schreib-/Lesespeicher 12 eingerichteten Statistikdatenelement 17 ablegt. Überschreitet der Wert des maximal benutzten Pufferspeichers den in Programmelement 15 reservierten Startwert niemals, kann, unter der Voraussetzung, daß ein eventuell zu klein gewählter Puffer nicht zu einem generellen Nichtfunktionieren einer Chipkarte 1 führt, sondern nur z.B. zu einer langsameren Programmausführung, die Größe des Pufferspeichers im Programmelement 15 für neu ausgegebene Karten niedriger festgesetzt werden. Der dadurch gesparte Platz kann genutzt werden, um andere Programmteile schneller oder effizienter auszuführen oder dem Benutzer bei Anwendung der Chipkarte 1 mehr Speicherplatz zur Verfügung zu stellen.
  • Indem der Inhalt der Statistikdatenelemente 17 fortwährend mit aktuellen Angaben überschrieben wird, ist es ausreichend, für jedes Statistikdatenelemente 17 nur so viel Speicherplatz zu reservieren, daß genau ein Wert bzw. eine Bereichsangabe des zugehörigen Diagnoseelements 16 gespeichert werden kann. Die Vorgehensweise bei der Erzeugung und Auswertung der statistischen Daten wird im Folgenden näher erläutert.
  • 3 zeigt ein Flußdiagramm für eine Variante der erfindungsgemäßen Vorgehensweise zur Optimierung eines Programms der Chipkarte 1. Der Durchlauf des Flußdiagramms beginnt mit einem Schritt S1, bei dem in die Programmelemente 15, die bei der Optimierung berücksichtigt werden sollen, je ein Diagnoseelement 16 eingebaut wird und für jedes Diagnoseelement 16 im Speicher 12 des integrierten Schaltkreises 3 ein zugehöriges Statistikdatenelement 17 angelegt wird. Die so behandelte Chipkarte 1 ist entsprechend ihrer Bestimmung voll funktionsfähig und verfügt über eine für den Benutzer nicht sichtbare Zusatzfunktion zur Ermittlung statistischer Daten. Auf diese Weise werden mehrere Chipkarten 1 präpariert. Diese Chipkarten 1 werden in einem Schritt S2, der sich an Schritt S1 anschließt, an Benutzer herausgegeben.
  • In einem darauf folgenden Schritt S3 setzen die Benutzer die Chipkarten 1 jeweils gemäß ihrer vorgegebenen Bestimmung ein, z. B. zum Durchführen von Transaktionen oder als Sicherheitsmodul in einem Mobilfunktelefon usw. Im Rahmen dieses Einsatzes werden statistische Daten ermittelt und an den Systemcomputer 7 weitergeleitet. Näheres hierzu wird anhand von 4 ausgeführt. An Schritt S3 schließt sich ein Schritt S4 an, bei dem der Systemcomputer 7 die empfangenen Daten sammelt, indem er sie beispielsweise in geeigneter Weise abspeichert. Danach prüft der Systemcomputer 7 in einem Schritt S5, ob bereits genügend statistische Daten für die Weiterverarbeitung vorliegen. Trifft dies zu, so schließt sich an Schritt S5 ein Schritt S6 an. Andernfalls wird mit Schritt S3 fortgefahren. In Schritt S6 übermittelt der Systemcomputer 7 die statistischen Daten über das zweite Netzwerk 10 an den Entwicklungscomputer 9 des Programmentwicklers. Auf Schritt S6 folgt ein Schritt S7, bei dem der Programmentwickler die statistischen Daten auswertet.
  • Im Rahmen der Auswertung der statistischen Daten wird beispielsweise ermittelt, welche Programmelemente 15 besonders häufig und welche eher selten ausgeführt werden. Insbesondere bei den häufig ausgeführten Programmelementen 15 wird geprüft, ob das Laufzeitverhalten akzeptabel ist. Um eine möglichst kure Programmausführungszeit zu erreichen, sind insbesondere die häufig ausgeführten Programmelemente 15 im Hinblick auf eine möglichst kurze Laufzeit zu optimieren, da sich bei diesen jede Verbesserung im Gesamtergebnis vielfach multipliziert. Dabei kann für die Laufzeitreduzierung auch ein erhöhter Bedarf an Speicherplatz in Kauf genommen werden. Bei den weniger häufig ausgeführten Programmelementen 15 kommt dem Laufzeitverhalten dagegen keine so große Bedeutung zu. Bei diesen Programmelementen 15 liegt das Augenmerk eher auf der Größe des bei der Ausführung jeweils verwendeten Speicherplatzes. Hier wird der Speicher platzbedarf erforderlichenfalls auf Kosten einer höheren Laufzeit optimiert. Insgesamt wird somit jeweils geprüft, ob die Laufzeit und der benötigte Speicherplatz, die für die Ausführung der einzelnen Programmelemente 15 jeweils benötigt werden, bei Berücksichtigung der jeweiligen Ausführungshäufigkeit eine effiziente Nutzung der vom integrierten Schaltkreis 3 zur Verfügung gestellten Ressourcen ermöglichen.
  • Auf Schritt S7 folgt ein Schritt S8, bei dem geprüft wird, ob das Programm bereits ausreichend optimiert ist, d. h. es wird entschieden, ob die Auswertung der statistischen Daten in Schritt S7 bereits auf eine ausreichende Optimierung des Programms hindeutet. Wird in Schritt S8 festgestellt, daß das Programm bereits ausreichend optimiert ist, so ist der Durchlauf des Flußdiagramms beendet. Andernfalls schließt sich an Schritt S8 ein Schritt S9 an, bei dem der Programmentwickler auf Basis der in Schritt S7 gewonnenen Erkenntnisse eine Optimierung des Programms durchführt. Von der Optimierung können alle oder nur einige Programmelemente 15 betroffen sein, wobei sich die Optimierung jeweils auf die im Programmelement 15 enthaltenen Instruktionen oder auf die vom Programmelement 15 gehandhabten Daten beziehen kann. Nach der Optimierung in Schritt S9 wird das Flußdiagramm beginnend mit Schritt S1 erneut durchlaufen. Dies wird solange wiederholt, bis ein gewünschter Optimierungsgrad erreicht ist.
  • 4 zeigt ein Flußdiagramm für eine mögliche Vorgehensweise bei der Ermittlung der statistischen Daten mittels der Chipkarte 1. Der dargestellte Ablauf wird gemäß Schritt S3 der 3 von vielen Chipkarten 1 durchlaufen, so daß eine große Menge statistischer Daten für die Auswertung zur Verfügung steht. Der Durchlauf des Flußdiagramms beginnt mit einem Schritt S10, bei dem der Benutzer seine Chipkarte 1 zur Durchführung einer Anwendung in das Endgerät 2 einsteckt, wie dies in 1 dargestellt ist. An Schritt S10 schließt sich eine Schritt S11 an, bei dem die Anwendung ausgeführt wird. Dabei werden von den Diagnoseelementen 16 der für die Ausführung der Anwendung verwendeten Programmelemente 15 der Chipkarte 1 statistische Daten ermittelt. Auf Basis der statistischen Daten aktualisieren die Diagnoseelemente 16 die jeweils zugehörigen Statistikdatenelemente 17. Auf Schritt S11 folgt ein Schritt S12, bei dem geprüft wird, ob das Endgerät 2 über die Möglichkeit verfügt, den Inhalt der Statistikdatenelemente 17 an den Systemcomputer 7 zu übermitteln. Falls diese Möglichkeit besteht, schließt sich an Schritt S12 ein Schritt S13 an, bei dem die Statistikdatenelemente 17 vom Endgerät 2 ausgelesen werden. Auf Schritt S13 folgt ein Schritt S14, bei dem die statistischen Daten vom Endgerät 2 über das erste Netzwerk 8 an den Systemcomputer 7 übermittelt werden. Anschließend wird in einem Schritt S15 die Chipkarte 1 aus dem Endgerät 2 entnommen. Zu Schritt S15 gelangt man auch unmittelbar von Schritt S12, wenn die dortige Abfrage ergibt, daß das Endgerät 2 nicht in der Lage ist, die statistischen Daten an den Systemcomputer 7 zu übermitteln. In diesem Fall erfolgt die Übermittlung zu einem späteren Zeitpunkt, zu dem die Chipkarte 1 in ein Endgerät 2 mit einer Verbindung zum Systemcomputer 7 eingesteckt wird. Mit der Ausführung des Schrittes S15 ist der Durchlauf des Flußdiagramms beendet.
  • Je nachdem, für welche Anwendung die Chipkarte 1 vorgesehen ist, kann eine Modifikation des in 4 dargestellten Ablaufs erforderlich sein. Beispielsweise verbleibt eine Chipkarte 1, die als ein Sicherheitsmodul für ein Mobilfunktelefon ausgebildet ist, in der Regel über einen langen Zeitraum im selben Mobilfunktelefon, wobei eine vielfache Ausführung von Mobilfunkanwendungen erfolgt. Die statistischen Daten werden bei jeder Ausführung ermittelt und können jeweils über das Mobilfunknetz weitergeleitet werden. Dabei ist es ebenso möglich, die statistischen Daten jeweils nur nach einer vorgegebenen Zahl von Ausführungen oder in vorgegebenen Zeitintervallen weiterzuleiten.
  • Die Erfindung kann sowohl bei kontaktbehafteten als auch bei kontaktlosen Chipkarten 1 eingesetzt werden. Kontaktlose Chipkarten 1 werden in der Regel nicht in das Endgerät eingesteckt, sondern dem Endgerät 2 lediglich angenähert. Außerdem ist ein Einsatz der Erfindung auch bei andersartig ausgebildeten tragbaren Datenträgern möglich.

Claims (15)

  1. Verfahren zur Optimierung eines in einem tragbaren Datenträger (1) implementierten Programms im Hinblick auf eine effiziente Nutzung der von einem integrierten Schaltkreis (3) des tragbaren Datenträgers (1) zur Verfügung gestellten Ressourcen, dadurch gekennzeichnet, daß der tragbare Datenträger (1) an einen Benutzer herausgegeben wird und beim bestimmungsgemäßen Einsatz des tragbaren Datenträgers (1) durch den Benutzer vom tragbaren Datenträger (1) mit Hilfe wenigstens eines Diagnoseelements (16) statistische Daten bezüglich wenigstens eines Elements (15) des Programms, das für die Optimierung in Frage kommen könnte, erfaßt werden.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß das Diagnoseelement (16) als ein Bestandteil des Programmelements (15) implementiert wird, für das es die statistischen Daten erfaßt.
  3. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die statistischen Daten jeweils in einem Statistikdatenelement (17) gespeichert werden, das in einem Speicher (12) des tragbaren Datenträgers (1) eingerichtet und dem Diagnoseelement (16) zugeordnet ist.
  4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, daß der bisherige Inhalt des Statistikdatenelements (17) beim Einschreiben der statistischen Daten jeweils überschrieben wird.
  5. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß mit den statistischen Daten die Nutzungshäufigkeit der Programmelemente (15) erfaßt wird.
  6. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß mit den statistischen Daten der bei der Ausführung des Programmelements (15) jeweils benötigte minimale und/oder maximale Speicherplatz erfaßt wird.
  7. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die statistischen Daten unter vorgegebenen Bedingungen zur Weiterverarbeitung weitergegeben werden.
  8. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die statistischen Daten vom tragbaren Datenträger (1) an ein Endgerät (2) übermittelt werden, das für die Weitergabe der statistischen Daten ausgebildet ist.
  9. Verfahren nach einem der Ansprüche 7 oder 8, dadurch gekennzeichnet, daß die weitergegebenen statistischen Daten zur Optimierung des im tragbaren Datenträger (1) implementierten Programms ausgewertet werden.
  10. Verfahren nach Anspruch 9, dadurch gekennzeichnet, daß auf Basis der Auswertung häufig benutzte Programmelemente (15) im Hinblick auf ihre Ausführungsgeschwindigkeit optimiert werden.
  11. Verfahren nach einem der Ansprüche 9 oder 10, dadurch gekennzeichnet, daß auf Basis der Auswertung selten benutzte Programmelemente (15) im Hinblick auf den für ihre Ausführung benötigten Speicherplatz optimiert werden.
  12. Verfahren nach einem der Ansprüche 9 bis 11, dadurch gekennzeichnet, daß auf Basis der Auswertung Instruktionen, auf denen die Programmelemente (15) basieren und/oder Daten, die von den Programmelementen (15) gehandhabt werden, optimiert werden.
  13. Tragbarer Datenträger mit einem integrierten Schaltkreis (3), in dem ein Programm implementiert ist, das im Hinblick auf eine effiziente Nutzung der vom integrierten Schaltkreis (3) zur Verfügung gestellten Ressourcen zu optimieren ist, dadurch gekennzeichnet, daß im integrierten Schaltkreis (3) wenigstens ein Diagnoseelement (16) implementiert ist zu einer beim bestimmungsgemäßen Einsatz des tragbaren Datenträgers (1) durch einen Benutzer durchführbaren Erfassung statistischer Daten bezüglich wenigstens eines Elements (15) des Programms, das für die Optimierung in Frage kommen könnte.
  14. Tragbarer Datenträger nach Anspruch 13, dadurch gekennzeichnet, daß er als eine Chipkarte ausgebildet ist.
  15. System mit einem tragbaren Datenträger (1), einem Endgerät (2) und einem Computer (7), wobei im tragbaren Datenträger (1) ein Programmimplementiert ist, das im Hinblick auf eine effiziente Nutzung der von einem integrierten Schaltkreis (3) des tragbaren Datenträgers (1) zur Verfügung gestellten Ressourcen zu optimieren ist, der tragbare Datenträger (1) wenigstens zeitweise mit dem Endgerät (2) in Datenverbindung steht und das Endgerät (2) über ein Netzwerk (8) wenigstens zeitweise mit dem Computer (7) verbunden ist, dadurch gekennzeichnet, daß der tragbare Datenträger (1) gemäß einem der Ansprüche 13 oder 14 ausgebildet ist.
DE102004014885.6A 2004-03-26 2004-03-26 Verfahren zur Optimierung eines Programms eines tragbaren Datenträgers Expired - Fee Related DE102004014885B4 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102004014885.6A DE102004014885B4 (de) 2004-03-26 2004-03-26 Verfahren zur Optimierung eines Programms eines tragbaren Datenträgers

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102004014885.6A DE102004014885B4 (de) 2004-03-26 2004-03-26 Verfahren zur Optimierung eines Programms eines tragbaren Datenträgers

Publications (2)

Publication Number Publication Date
DE102004014885A1 true DE102004014885A1 (de) 2005-11-03
DE102004014885B4 DE102004014885B4 (de) 2016-04-14

Family

ID=35070336

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102004014885.6A Expired - Fee Related DE102004014885B4 (de) 2004-03-26 2004-03-26 Verfahren zur Optimierung eines Programms eines tragbaren Datenträgers

Country Status (1)

Country Link
DE (1) DE102004014885B4 (de)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10039538A1 (de) * 1999-09-03 2001-03-15 Ibm Vorrichtung und Methode zum Analysieren der Leistung eines Computerprogramms
DE19963832A1 (de) * 1999-12-30 2001-07-05 Ericsson Telefon Ab L M Programmprofilierung
DE10040974A1 (de) * 2000-08-22 2002-03-14 Giesecke & Devrient Gmbh Verfahren zur virtuellen Vergrößerung des Stacks eines tragbaren Datenträgers
DE10124414A1 (de) * 2001-04-02 2002-10-17 Siemens Ag Verfahren zur Gewinnung von Daten für die Optimierung von Programmstrukturen
DE10216602A1 (de) * 2002-04-15 2003-10-30 Giesecke & Devrient Gmbh Optimierung von compilergeneriertem Programmcode

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6363468B1 (en) * 1999-06-22 2002-03-26 Sun Microsystems, Inc. System and method for allocating memory by partitioning a memory
US6665819B1 (en) * 2000-04-24 2003-12-16 Microsoft Corporation Data capture and analysis for embedded systems
US7461204B2 (en) * 2001-11-30 2008-12-02 Hewlett-Packard Development Company, L.P. Method to store and retrieve memory card usage information
US7178002B2 (en) * 2002-07-24 2007-02-13 Sun Microsystems, Inc. Methods and systems for dynamically growing multiple stacks

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10039538A1 (de) * 1999-09-03 2001-03-15 Ibm Vorrichtung und Methode zum Analysieren der Leistung eines Computerprogramms
DE19963832A1 (de) * 1999-12-30 2001-07-05 Ericsson Telefon Ab L M Programmprofilierung
DE10040974A1 (de) * 2000-08-22 2002-03-14 Giesecke & Devrient Gmbh Verfahren zur virtuellen Vergrößerung des Stacks eines tragbaren Datenträgers
DE10124414A1 (de) * 2001-04-02 2002-10-17 Siemens Ag Verfahren zur Gewinnung von Daten für die Optimierung von Programmstrukturen
DE10216602A1 (de) * 2002-04-15 2003-10-30 Giesecke & Devrient Gmbh Optimierung von compilergeneriertem Programmcode

Also Published As

Publication number Publication date
DE102004014885B4 (de) 2016-04-14

Similar Documents

Publication Publication Date Title
DE4244266C2 (de) Verfahren und Schaltungseinrichtung zum dynamischen Konfigurieren von Gerätetreibern für Computersystem-Betriebsmittel
DE19522527A1 (de) Verfahren zur Vereinfachung der Kommunikation mit Chipkarten
EP2626824A1 (de) Management durch ein mobiles Endgerät bereitgestellter virtueller Brieftaschen
DE102005016561A1 (de) Verfahren und Vorrichtung zur strukturierten Erfassung und Bearbeitung von in einem System auftretenden Problemen
DE102005001723A1 (de) Anordnung und Verfahren zum Steuern einer Datenverarbeitungseinrichtung unter Verwendung eines graphischen Codes, computerlesbares Speichermedium und Computerprogramm-Element
DE602006000728T2 (de) Unterstützung dynamisch typisierter Sprachen in typisierten Assemblersprachen
DE102018003245A1 (de) Numerische Steuereinrichtung
DE102016004233B4 (de) Numerische Steuervorrichtung zum Klassifizieren und Anzeigen eines als Historie aufgezeichneten Bearbeitungsprogramms
DE10038499A1 (de) Verfahren und System für die verbesserte Entwicklungsprüfung mittels angepasster Ablaufverfolgung
WO2001075815A2 (de) Kartenterminal und verfahren zum betreiben eines kartenterminals
EP1005216A2 (de) Verfahren und Vorrichtung zur Validierung von Konfigurationsdaten für Telekommunikationssysteme
DE2726679A1 (de) Kanalsteuerung fuer datenverarbeitungsanlagen und verfahren zu ihrem betrieb
DE102004014885B4 (de) Verfahren zur Optimierung eines Programms eines tragbaren Datenträgers
DE102012210482A1 (de) Verfahren und System zum Migrieren von Geschäftsprozessinstanzen
EP1623394A1 (de) Speicherverwaltung bei einem tragbaren datentrager
DE10211426A1 (de) Verfahren zur Durchführung eines Updates von Software-Programmen oder Software-Programmteilen
DE19928939A1 (de) Datenträger sowie Verfahren zur Datenübertragung und zur Speicherverwaltung
EP1610218B1 (de) Tragbarer Datenträger, System mit einem solchen Datenträger und Verfahren zum Betreiben eines solchen Datenträgers
EP1709534A1 (de) Ausführung eines programms durch eine virtuelle maschine
DE10325513B4 (de) Verfahren und Vorrichtung zum Erstellen eines Verhaltensaspekts einer Schaltung zur formalen Verifikation
DE10139889C1 (de) Computersystem, Verfahren und digitales Speichermedium mit computerlesbaren Mitteln zum Ansprechen eines Chipkartenlesegeräts
DE10303452B4 (de) Verfahren zur Steuerung der Unterbrechung und/oder der Aufzeichnung von Ausführungsdaten eines Programms in einem Mikrocontroller und Mikrocontroller mit einer Anordnung zur Durchführung des Verfahrens
EP1739559A2 (de) Behandlung von Fehlerereignissen bei einem tragbarem Datenträger
EP3428802A1 (de) Verfahren zur optimierung mehrerer zumindest in bezug auf eine zugriffszeit unterschiedlicher datenspeicher und computerprogramm mit einer implementation des verfahrens
DE102018122920A1 (de) Verfahren zur Installation eines Programms auf einem eingebetteten System, ein eingebettetes System für ein derartiges Verfahren sowie ein Verfahren zur Erstellung einer Zusatzinformation

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R006 Appeal filed
R008 Case pending at federal patent court
R019 Grant decision by federal patent court
R020 Patent grant now final
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee