WO2004015575A2 - Verfahren zur erfassung von programmlaufzeiten in einem datenverarbeitungsgerät - Google Patents
Verfahren zur erfassung von programmlaufzeiten in einem datenverarbeitungsgerät Download PDFInfo
- Publication number
- WO2004015575A2 WO2004015575A2 PCT/DE2003/002547 DE0302547W WO2004015575A2 WO 2004015575 A2 WO2004015575 A2 WO 2004015575A2 DE 0302547 W DE0302547 W DE 0302547W WO 2004015575 A2 WO2004015575 A2 WO 2004015575A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- time
- processor
- measurement
- data processing
- processing device
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3419—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/88—Monitoring involving counting
Abstract
Die Erfindung betrifft ein Verfahren zur Erfassung von Programmlaufzeiten in einem Datenverarbeitungsgerät, zum Beispiel einer speicherprogrammierbaren Steuerung, bei dem die Messung der Laufzeiten eines Programms oder einer Programmsequenz durch eine Auswertung der Zeittakte des Datenverarbeitungsgeräts parallel zur Abarbeitung der eigentlichen Programmbefehle mit einem das Datenverarbeitungsgerät steuernden Prozessor erfolgt. Bei einer vorgegebenen Anzahl von wiederholten Messungen eines Laufzeitintervalls kann dabei während der Messung jeweils ein Minimal-, ein Maximal- und/oder ein Mittelwert errechnet und im Prozessor zur weiteren Auswertung gespeichert werden.
Description
Beschreibung
Verfahren zur Erfassung von Programmlaufzeiten in einem Datenverarbeitungsgerät
Die Erfindung betrifft ein Verfahren zur Erfassung von Programmlaufzeiten in einem Datenverarbeitungsgerät, insbesondere im Zusammenhang mit Programmsequenzen, die in speicherprogrammierbaren Steuerungen ausgeführt werden, nach den gattungsgemäßen Merkmalen des Hauptanspruchs .
Es ist bisher üblich, dass die Programmlaufzeiten mit unterschiedlichen zusätzlichen Verfahren gemessen werden, die ein besonderes Ablaufprogramm benötigen. Zum Beispiel können Messfunktionen implementiert werden, die am Anfang und am Ende einer Programmsequenz jeweils aufgerufen werden.
Eine solche LaufZeitmessung durch das Einfügen von besonderen Funktionen in den Programmablauf hat dabei insbesondere den Nachteil, dass hiermit keine interaktive Messung beliebiger
Programmsequenzen möglich ist, da zunächst die Messfunktionen in den Code eingefügt werden müssen. Darüber hinaus ist ein solches Verfahren nicht rückwirkungsfrei, da der Aufruf der Messfunktionen das eigentliche Programm vergrößert und die Laufzeit der Messfunktionen das Messergebnis außerdem verfälscht .
Der Erfindung liegt daher die Aufgabe zugrunde, ein Verfahren zur Erfassung von Programmlaufzeiten in einem Datenverarbei- tungsgerät derart zu verbessern, dass auf einfache Weise ein interaktives und/oder rückwirkungsfreies Messen von Programmlaufzeiten ohne externe Messgeräte möglich ist.
Gemäß der Erfindung ist ein Verfahren und ein Software- oder Firmware-Baustein zur Erfassung von Programmlaufzeiten in einem Datenverarbeitungsgerät in vorteilhafter Weise dadurch weitergebildet, dass die Messung der Laufzeiten eines Pro-
gramms oder einer Programmsequenz durch eine Auswertung der Zeittakte des Datenverarbeitungsgeräts parallel zur Abarbeitung der eigentlichen Programmbefehle mit einem das Datenverarbeitungsgerät steuernden Prozessor erfolgt . Hierdurch wird auf einfache Weise die Messung in den Prozessor verlagert, auf dem das Programm abläuft, so dass die Messung keine zusätzliche Zeit kostet.
Besonders vorteilhaft kann bei einer vorgegebenen Anzahl von wiederholten Messungen eines Laufzeitintervalls während der Messung jeweils ein Minimal-, ein Maximal- und/oder ein Mittelwert errechnet und im Prozessor zur weiteren Auswertung gespeichert werden. Andererseits kann auch bei einer vorgegebenen Anzahl von wiederholten Messungen eines Laufzeitin- tervalls die jeweils gemessene Zeit in einem Pufferspeicher gespeichert und zur beliebigen Auswertung dem Prozessor zugeführt werden. Die Messung kann auch innerhalb eines, vorzugsweise für speicherprogrammierbare Steuerungen als Datenverarbeitungsgerät vorgesehenen Debuggers durchgeführt wer- den.
Zur Messung der Programmlaufzeit kann der Start- und der Endzeitpunkt jeweils einer Messung durch einen Vergleich der Adresse des jeweils aktuellen Befehls mit dem Inhalt zweier programmierbarer Register (start_address, stop_address) erfolgen, wobei beim Startpunkt der Prozessor den Startzeitpunkt in einem Register (start_time) und beim Endpunkt der Prozessor den Stopzeitpunkt in einem Register (stop_time) speichert und dass daraus die aktuelle Laufzeit (duration) berechnet wird. Hierbei wird zur Messung der Zeit ein Register (clock) als Uhr benutzt, welches unabhängig vom Prozessor mit einem festen Takt hochgezählt wird. Nach jeder Messung werden dabei die Ergebnisse eines in einer vorherigen Messung durchgeführten gleichen Schrittes überschrieben.
Vorteilhaft ist es außerdem, wenn die minimale und maximale Laufzeit (min duration, max duration) sowie die Summe der
Laufzeiten (total_duration) zur Berechnung der mittleren Laufzeit ermittelt wird, wobei sobald die vorgegebene Anzahl von Messungen (end_count) erreicht ist, der Minimal- und der Maximalwert ausgelesen und der Mittelwert berechnet wird.
Zusammenfassend ist festzustellen, dass mit dem erfindungsgemäßen Verfahren die Messungen der Programmlaufzeit jederzeit und ohne zusätzliche Messgeräte für beliebige Programmsequenzen durchgeführt werden können und die Messung das Messergeb- nis nicht verfälscht. Beispielsweise zur Wartung von speicherprogrammierbaren Steuerungen können die LaufZeitmessungen auch vor Ort beim Kunden durchgeführt werden, wobei der Hersteller einer speicherprogrammierbaren Steuerung mit dem erfindungsgemäßen Verfahren LaufZeitmessungen in der Steue- rung des Kunden durchführen kann, während diese eine Anlage unterbrechungsfrei steuert .
Bisher übliche LaufZeitmessungen im Labor des Herstellers sind oftmals nicht aussagekräftig genug, weil die Kundenan- läge im Labor nicht zur Verfügung steht. Da die erfindungsgemäße Messung rückwirkungsfrei ist, kann sie insbesondere in kritischen Anlagen benutzt werden, die ständig im Betrieb sein müssen. Die Messungen können allerdings auch ferngesteuert, z. B. über Kommunikationsnetze, durchgeführt werden.
Die Erfindung wird anhand des in der Zeichnung dargestellten Ausführungsbeispiels zur Ausführung des Verfahrens erläutert.
Es zeigen:
Figur 1 ein prinzipielles Ablaufdiagramm der Messung einer
Programmlaufzeit , Figur 2 eine sofortige LaufZeitmessung mit einer Berechnung der Minimal- Maximal- und Mittelwerte und Figur 3 eine Anwandlung des Ausführungsbeispiels mit einer
Ablage des Messwerts in einem Pufferspeicher.
Beim in Figur 1 dargestellten Verfahren zur Erfassung von Programmlaufzeiten in einem Datenverarbeitungsgerät, zum Beispiel bei einer speicherprogrammierbaren Steuerung, werden eine Anzahl von Messungen durchgeführt und wenn eine vorgege- bene Anzahl von Messungen noch nicht erreicht ist, die Messung beispielsweise entsprechend der Anweisung „ if (count < end_count) " beim Anfangspunkt „instruction_add- ress = start_address" gestartet.
Beim Start der LaufZeitmessung speichert der Prozessor der
Steuerung den StartZeitpunkt in einem Register „start_time = clock" und beim Endpunkt speichert der Prozessor den Stop- zeitpunkt in einem Register „stop_time = clock". Hieraus kann dann die aktuelle Laufzeit „duration = stop_time - start__time" berechnet werden.
Im folgenden Bearbeitungsblock zur Verarbeitung der Messergebnisse können die Alternativen nach Figur 2 oder Figur 3 durchgeführt werden. Nach einer vorgegebenen Anzahl von wie- derholten Messungen eines Laufzeitintervalls kann dann z. B. gemäß der Figur 2 während der Messung jeweils ein Minimalwert „if (duration < min_duration) (min_duration = duration) " und ein Maximalwert „if (duration > max_duration) (max_duration = duration) " gespeichert werden.
Gemäß einer Alternative nach der Figur 3 kann auch bei einer vorgegebenen Anzahl von wiederholten Messungen eines Lauf- zeitintervalls die jeweils gemessene Zeit in einem Pufferspeicher gespeichert „ bu fer (count) = duration" und zur be- liebigen Auswertung dem Prozessor zugeführt werden.
Anschließend kann die Anzahl der Messungen erhöht werden „count = count +1". Sobald die vorgegebene Anzahl von Messungen (end_count) erreicht ist, kann dann die mittlere Laufzeit aus der Summe der Laufzeiten „total_duration = total duration + duration" errechnet werden.
Beispielsweise sind bei einer Durchführung des Verfahrens mit 50 Messungen eine Minimalwert von 34 μs, eine Maximalwert von 567 μs und ein Mittelwert von 55 μs errechnet worden.
Claims
1. Verfahren zur Erfassung von Programmlaufzeiten in einem Datenverarbeitungsgerät, dadurch geke nn z e i c hne t , dass die Messung der Laufzeiten eines Programms oder einer Programmsequenz durch eine Auswertung der Zeittakte des Datenverarbeitungsgeräts parallel zur Abarbeitung der eigentlichen Programmbefehle mit einem das Daten- Verarbeitungsgerät steuernden Prozessor erfolgt.
2. Verfahren nach Anspruch 1, dadurc h gekenn z e i c hne t , dass bei einer vorgegebenen Anzahl von wiederholten Messungen eines Laufzeitintervalls während der Mes- sung jeweils ein Minimal-, ein Maximal- und/oder ein Mittelwert errechnet und im Prozessor zur weiteren Auswertung gespeichert wird.
3. Verfahren nach Anspruch 1, dadur ch gekenn - z e i c hne t , dass bei einer vorgegebenen Anzahl von wiederholten Messungen eines Laufzeitintervalls die jeweils gemessene Zeit in einem Pufferspeicher gespeichert und zur beliebigen Auswertung dem Prozessor zugeführt wird.
4. Verfahren nach Anspruch 2, d a d u r c h g e k e n n z e i c hne t , dass der Start und der Endzeitpunkt jeweils einer Messung durch einen Vergleich der Adresse des jeweils aktuellen Befehls mit dem Inhalt zweier programmierbarer Register (start_address, stop_address) erfolgt, wobei beim Startpunkt der Prozessor den StartZeitpunkt in einem Register
(start_time) und beim Endpunkt der Prozessor den Stopzeit- punkt in einem Register (stop_time) speichert und dass daraus die aktuelle Laufzeit (duration) berechnet wird.
5. Verfahren nach Anspruch 4, dadurch g e kenn z e i c hne t , dass zur Messung der Zeit ein Register (clock) als Uhr fungiert, welches unabhängig vom Prozessor mit einem festen Takt hochgezählt wird.
6. Verfahren nach einem der Ansprüche 2 bis 5, d a du r c h g e ke nn z e i c hne t , dass nach jeder Messung die Ergebnisse eines in einer vorherigen Messung durchgeführten gleichen Schrittes überschrieben werden.
7. Verfahren nach einem der Ansprüche 2 bis 5, d a dur c h g e k e n n z e i c hne t , dass die minimale und maximale
Laufzeit (min_duration, max_duration) sowie die Summe der Laufzeiten (total_duration) zur Berechnung der mittleren Laufzeit ermittelt wird, wobei sobald die vorgegebene Anzahl von Messungen (end_count) erreicht ist, der Minimal- und der Maximalwert ausgelesen und der Mittelwert berechnet wird.
8. Verfahren nach einem der Ansprüche 1 bis 8, d a du r c h g e k e n n z e i c hn e t , dass Zur Auswertung die Anzahl der Prozessortakte vorgesehen ist .
9. Software- oder Firmware-Baustein zur Durchführung eines Verfahrens nach einem der vorhergehenden Ansprüche, d a du r c h g e k e nn z e i c hn e t , dass die Messung innerhalb eines, vorzugsweise für speicherprogrammierbare Steuerungen als Datenverarbeitungsgerät, vorgesehenen Debuggers durchgeführt wird.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE2002134469 DE10234469A1 (de) | 2002-07-29 | 2002-07-29 | Verfahren zur Erfassung von Programmlaufzeiten in einem Datenverarbeitungsgerät |
DE10234469.8 | 2002-07-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
WO2004015575A2 true WO2004015575A2 (de) | 2004-02-19 |
WO2004015575A3 WO2004015575A3 (de) | 2004-04-29 |
Family
ID=30128484
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/DE2003/002547 WO2004015575A2 (de) | 2002-07-29 | 2003-07-29 | Verfahren zur erfassung von programmlaufzeiten in einem datenverarbeitungsgerät |
Country Status (2)
Country | Link |
---|---|
DE (1) | DE10234469A1 (de) |
WO (1) | WO2004015575A2 (de) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102007039020B4 (de) * | 2007-08-17 | 2019-10-31 | Robert Bosch Gmbh | Verfahren und Vorrichtung zur Überwachung und/oder Optimierung von Prozessabläufen einer Steuerung einer Maschine |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5467463A (en) * | 1992-02-27 | 1995-11-14 | Tandy Corporation | System independent timing reference for computer |
US6154857A (en) * | 1997-04-08 | 2000-11-28 | Advanced Micro Devices, Inc. | Microprocessor-based device incorporating a cache for capturing software performance profiling data |
EP1072979A2 (de) * | 1999-07-27 | 2001-01-31 | Lucent Technologies Inc. | Verfahren zur Überwachung der Gebrauchslaufzeit von Erprobungssoftware |
WO2001080012A2 (en) * | 2000-04-11 | 2001-10-25 | Analog Devices, Inc. | Non-intrusive application code profiling method and apparatus |
US20020087291A1 (en) * | 2000-12-29 | 2002-07-04 | Barnes Cooper | Operating system-independent method and system of determining CPU utilization |
-
2002
- 2002-07-29 DE DE2002134469 patent/DE10234469A1/de not_active Withdrawn
-
2003
- 2003-07-29 WO PCT/DE2003/002547 patent/WO2004015575A2/de active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5467463A (en) * | 1992-02-27 | 1995-11-14 | Tandy Corporation | System independent timing reference for computer |
US6154857A (en) * | 1997-04-08 | 2000-11-28 | Advanced Micro Devices, Inc. | Microprocessor-based device incorporating a cache for capturing software performance profiling data |
EP1072979A2 (de) * | 1999-07-27 | 2001-01-31 | Lucent Technologies Inc. | Verfahren zur Überwachung der Gebrauchslaufzeit von Erprobungssoftware |
WO2001080012A2 (en) * | 2000-04-11 | 2001-10-25 | Analog Devices, Inc. | Non-intrusive application code profiling method and apparatus |
US20020087291A1 (en) * | 2000-12-29 | 2002-07-04 | Barnes Cooper | Operating system-independent method and system of determining CPU utilization |
Non-Patent Citations (1)
Title |
---|
ANONYMOUS: "Accurate elapse time program for personal computers" RESEARCH DISCLOSURE, KENNETH MASON PUBLICATIONS, HAMPSHIRE, GB, Bd. 349, Nr. 8, Mai 1993 (1993-05), XP007118968 ISSN: 0374-4353 * |
Also Published As
Publication number | Publication date |
---|---|
DE10234469A1 (de) | 2004-02-12 |
WO2004015575A3 (de) | 2004-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0687363B1 (de) | Verfahren zur prüfung von elektronischen steuergeräten | |
DE19834191C2 (de) | Integrierte Schaltungsvorrichtung und ihr Steuerverfahren | |
DE3633113A1 (de) | Verfahren und vorrichtung zur automatischen erfassung der ansprechspannung eines elektromagnetischen bauteils, insbesondere eines magnetventils | |
DD296763A5 (de) | Vorrichtung und verfahren zum testen von an einer gleichstromquelle angeschlossenen elektischen verbrauchern eines kraftfahrzeuges | |
EP1303809B1 (de) | Verfahren und vorrichtung zur messung der laufzeit einer task in einem echtzeitsystem | |
DE19539353A1 (de) | Programmierbarer Kontroller, der ermöglicht, daß eine externe periphere Vorrichtung einen internen Betriebszustand einer CPU-Einheit überwacht | |
DE3336977A1 (de) | Ausfallsicheres verfahren fuer einen fahrzeugcomputer | |
DE3820534A1 (de) | Einrichtung zur fehlererkennung bei einem regler | |
DE3227292A1 (de) | Elektronische steuereinrichtung | |
WO2004015575A2 (de) | Verfahren zur erfassung von programmlaufzeiten in einem datenverarbeitungsgerät | |
EP1528447B1 (de) | Diagnoseeinrichtung und- verfahren zur Überwachung des Betriebs eines Regelkreises | |
DE3709524A1 (de) | Verfahren zur ueberpruefung der speicherzelleninhalte eines programmspeichers | |
DE102008022302A1 (de) | Elektronische Rechenvorrichtung zur Bestimmung einer Ausführzeit einer Aufgabe und Programm | |
DE102011083655A1 (de) | Überwachungsvorrichtung zur Überwachung eines Betriebs einer Steuerverarbeitungsvorrichtung | |
DE102015221892A1 (de) | Bestimmung einer maximalen Latenzzeit | |
DE102016111294A1 (de) | Diagnoseverfahren zur Fehlererkennung in einem Abgassystem eines Kraftfahrzeugs | |
DE3546127A1 (de) | Verfahren zur automatischen ueberpruefung von steuergeraeten | |
DE102012203252A1 (de) | Vorrichtung und Verfahren zum Testen von elektronischen Geräten mit einer räumlich getrennten Steuereinrichtung | |
DE2142711A1 (de) | Signalpruefschaltung | |
DE10131317A1 (de) | Steuergerät und Verfahren zum Testen eines Steuergerätes | |
DE4314127C2 (de) | System zur Simulation eines realen, elektrischen Verbrauchers und Handgerät als Systemkomponente | |
DE102018201710A1 (de) | Verfahren und Vorrichtung zum Überprüfen einer Funktion eines neuronalen Netzes | |
DE3535787C2 (de) | ||
DE102017123248A1 (de) | Verfahren zur Funktionsüberwachung eines Sensors | |
DE2432024A1 (de) | Verfahren zum betrieb einer datenverarbeitungsanlage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A2 Designated state(s): US |
|
AL | Designated countries for regional patents |
Kind code of ref document: A2 Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
122 | Ep: pct application non-entry in european phase |