DE102008030163A1 - Embedded system i.e. computer system, simulating method, involves simulating dynamic characteristics reacting with events by simulator core, and determining actually required execution times of program sequence on target system - Google Patents

Embedded system i.e. computer system, simulating method, involves simulating dynamic characteristics reacting with events by simulator core, and determining actually required execution times of program sequence on target system Download PDF

Info

Publication number
DE102008030163A1
DE102008030163A1 DE102008030163A DE102008030163A DE102008030163A1 DE 102008030163 A1 DE102008030163 A1 DE 102008030163A1 DE 102008030163 A DE102008030163 A DE 102008030163A DE 102008030163 A DE102008030163 A DE 102008030163A DE 102008030163 A1 DE102008030163 A1 DE 102008030163A1
Authority
DE
Germany
Prior art keywords
hardware
simulation model
application program
target system
simulation
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
Application number
DE102008030163A
Other languages
German (de)
Inventor
Ralf Dr. Münzenberger
Matthias DÖRFEL
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.)
INCHRON GMBH, 14482 POTSDAM, DE
Original Assignee
Inchron 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 Inchron GmbH filed Critical Inchron GmbH
Priority to DE102008030163A priority Critical patent/DE102008030163A1/en
Publication of DE102008030163A1 publication Critical patent/DE102008030163A1/en
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23445Real time simulation

Abstract

The method involves forming a simulation model (8), and simulating temporal and functional characteristics of processes. Characteristics and operations of an application program are realistically simulated on a special hardware by the model. Information about execution times of all partial operations of the special hardware and about the application program is provided to a hardware component (5). Dynamic characteristics reacting with events are simulated by a simulator core (10). Actually required execution times of a program sequence on a target system (1) are determined.

Description

Beschreibung der AusgangssituationDescription of the initial situation

Die ständig wachsende Komplexität von Embedded Systemen, sowie die zunehmende Integrationsdichte moderner, integrierter Schaltungen (IC's), wie z. B. System-on-Chip (SoC) Lösungen, erfordern neue, verbesserte Methoden der Systemanalyse, insbesondere im Hinblick auf die Vorhersagbarkeit des Echtzeitverhaltens dieser Systeme. Oft geht es dabei um die Erfüllung spezifischer Anforderungen bei der Entwicklung hochkomplexer Anwendungen einschließlich der speziell dafür zugeschnittenen, kundenspezifischen IC's.The ever-increasing complexity of embedded systems, as well as the increasing integration density of modern, integrated circuits (IC's), such as. System-on-Chip (SoC) solutions require new, improved methods of system analysis, especially with regard to on the predictability of the real-time behavior of these systems. Often it is about the fulfillment of specific requirements including the development of highly complex applications the specially tailored, customized IC's.

Wünschenswert wäre eine so detaillierte funktionale und zeitliche Voranalyse, dass nicht nur prinzipielle Aussagen über die Realisierbarkeit eines Systems ableitbar sind, sondern sich daraus auch wichtige Anhaltspunkte für die Wahl des besten Hard- und Software-Designs ergeben. Eine bewährte Methode ist die Simulation eines Embedded Systems, in diesem Zusammenhang auch oft als Zielsystem oder englisch Target System bezeichnet, auf einem Hostcomputer.Desirable would be such a detailed functional and temporal preliminary analysis, that not only basic statements about the feasibility of a system, but also important ones Clues for choosing the best hardware and software design result. A proven method is the simulation of a Embedded Systems, in this context often as a target system or english target system, on a host computer.

Stand der TechnikState of the art

Die einfachste Möglichkeit, ein Embedded System zu simulieren, ist eine Software-Simulation, bei der der Quellcode einfach für den Hostprozessor übersetzt und dann auf diesem ausgeführt wird. Dabei können eventuell noch Umgebungsparameter Beachtung finden, indem z. B. die Speicherkonfiguration oder die Ein/Ausgabe mittels Schreiben bzw. Lesen auf virtuelle Ports nachgebildet wird.The easiest way to simulate an embedded system, is a software simulation where the source code is easy for translates the host processor and then runs on it becomes. In doing so environmental parameters may possibly be considered find by z. For example, the memory configuration or I / O is simulated by writing or reading on virtual ports.

Meist ist es aber erforderlich, auch die Hardware des Zielsystems auf dem Hostrechner nachzubilden. Dazu bedient man sich heute üblicherweise sogenannter Instruction Set Simulatoren (ISS), welche reale Hardware, z. B. Prozessoren, Controller oder andere aktive Bearbeitungseinheiten nachahmen, indem sie auf einem Hostrechner den Maschinencode, der für die entsprechende Hardware erzeugt wurde, abarbeiten. Solche Simulatoren werden heute oft schon mit sog. Cross-Entwicklungsumgebungen geliefert, taugen dann aber vor allem dazu, die Funktionalität und Korrektheit der entwickelten Programme zu überprüfen.Most of time But it is also necessary to include the hardware of the target system emulate the host computer. For this one uses today usually so-called Instruction Set Simulators (ISS), which real hardware, eg. B. Processors, controllers or other active processing units mimic the machine code on a host machine for which the corresponding hardware was created. Such simulators are often already today with so-called. Cross-development environments supplied, but then especially to the functionality and correctness of the programs developed.

Bessere Simulations-Werkzeuge verfügen über Eigenschaften, die eine detailliertere Analyse der zeitlichen Abläufe ermöglichen.better Simulation tools have properties a more detailed analysis of the timings enable.

Wichtige zusätzliche Ziele aus Sicht der Anwendbarkeit; sind

  • • die Verringerung der Übersetzungs- bzw. Umsetzungszeiten (TargetCode → HostCode)
  • • die Erhöhung der Simulationsgeschwindigkeit (wünschenswert wäre eine Simulation in Echtzeit!)
  • • die Möglichkeit einer genauen Ablaufverfolgung (Traceability, z. B. mit Protokollierung)
  • • Übertragbarkeit des fertigen Simulationsprogramms auf andere Hostsysteme (z. B. mit höherer Leistungsfähigkeit)
  • • Flexibilität der Simulation bzgl. dynamischer Vorgänge im Programmablauf (ermöglicht z. B. oft genauere Echtzeit-Abschätzungen)
  • • Anpassbarkeit an die Hard- und Software-Gegebenheiten des Zielsystems (z. B. Verwendung anderer Zielprozessoren, anderer Bibliotheken etc.)
Important additional goals from the point of view of applicability; are
  • • the reduction of the translation or conversion times (TargetCode → HostCode)
  • • Increasing the simulation speed (a real-time simulation would be desirable!)
  • • the possibility of accurate tracing (traceability, eg with logging)
  • • Transferability of the finished simulation program to other host systems (eg with higher performance)
  • • Flexibility of the simulation regarding dynamic processes in the program flow (eg often enables more accurate real-time estimations)
  • • Adaptability to the hardware and software conditions of the target system (eg use of other target processors, other libraries, etc.)

Diese Ziele stehen sich teilweise diametral entgegen, sodass immer wieder nach Verbesserungen und neuen Ansätzen zur Vermeidung der Nachteile gesucht wird.These Goals are sometimes diametrically opposed, so again and again for improvements and new approaches to avoiding Disadvantages are sought.

So werden heute noch am häufigsten interpretativ arbeitende ISSs eingesetzt, weil sie die größte Flexibilität und die beste Handhabbarkeit versprechen, obwohl static-compiled ISSs in ihrer Simulationsgeschwindigkeit unbestritten überlegen sind. Einen Mittelweg versucht man mit verschiedenen Vorschlägen für dynamic-compiled ISSs, die auf der einen Seite eine verbesserte Simulationsgeschwindigkeit erwarten lassen, auf der anderen Seite aber höhere Flexibilität und damit eine größere Detailtreue der Simulation versprechen.So are still the most frequently interpretive working today ISSs used because they have the greatest flexibility and promise the best manageability, though static-compiled ISSs are indisputably superior in their simulation speed are. A middle ground is tried with different proposals for dynamic-compiled ISSs that have one on one side expect improved simulation speed on the other side but higher flexibility and thus promise a greater detail of the simulation.

[1] beschreibt einen Ansatz, der durch die Verwendung von Ob ject- statt Binary-Format als Simulatoreingabe und den Einsatz von dynamischen Sprung-Handlern eine Verringerung der Übersetzungszeiten bei gleichzeitiger Verbesserung der Flexibilität erreicht. So kann der dynamische Teil des Codes, dessen Inhalt aufgrund von dynamischen Daten erst zur Laufzeit bestimmt werden kann, viel genauer simuliert und abgeschätzt werden.[1] describes an approach that takes place through the use of ob ject instead Binary format as simulator input and the use of dynamic jump handlers a reduction in translation times while at the same time Improved flexibility. So can the dynamic Part of the code whose content is due to dynamic data only can be determined at run time, simulated much more accurately and estimated become.

[2] beschreibt die Simulation eines Anwendungsprogramms auf einem simulierten Hardware-System, wobei das Anwendungspro gramm zuerst instrumentiert wird, indem es in Programmsegmente zerlegt und mit Tags versehen wird. Bei der folgenden Analyse des Target-Assemblercodes wird eine Tabelle mit Beschreibungsdaten für die einzelnen Programmsegmente aufgebaut. Die Simulation auf dem Hostsystem errechnet jeweils bei Erreichen eines Tags aus den Information des zugehörigen Funktionsdatenblocks der Tabelle und Hardware-Parametern aus einer Hardware-Konfigurationsdatei eine Abschätzung der Ausführungszeit für das entsprechende Segment und addiert diese zu der Gesamtausführungszeit für das Anwendungsprogramm.[2] describes the simulation of an application program on a simulated Hardware system, with the application program instrumented first is broken down into program segments and tagged becomes. The following analysis of the target assembler code becomes a Table with description data for the individual program segments built up. The simulation on the host system calculates each time one is reached Tags from the information of the associated function data block the table and hardware parameters from a hardware configuration file Estimate the execution time for the corresponding segment and adds this to the total execution time for the application program.

[3] beschäftigt sich mit neuen Techniken, um die Simulation deutlich zu beschleunigen. Auf der Basis einer statisch-übersetzten Instruction Set Architektur (ISA) wird anstatt C-Code zu generieren, eine spezielle low-level Codegenerierungsschnittstelle definiert. Für den Zwischencode der virtuellen Maschine wird eine RISC-Struktur vorgeschlagen, die über einen vordefinierten, minimalen Befehlssatz, aber eine unbegrenzte Zahl virtueller Register verfügt. Im Vergleich zu dynamisch-compilierten Lösungen unterstützt die Verwendung eines Zwischencodes die Portabilität auf andere Hostsysteme und im Gegensatz zu herkömmlichen Ansätze mit statisch-compilierter ISA ist hier eine direkte Manipulation der Resourcen der Hostmaschine möglich.[3] deals with new techniques to accelerate the simulation significantly. On the Ba In the case of a statically-translated instruction set architecture (ISA), instead of generating C code, a special low-level code generation interface is defined. For the virtual machine's intermediate code, a RISC structure is proposed which has a predefined, minimal instruction set but an unlimited number of virtual registers. Compared to dynamically compiled solutions, the use of intermediate code supports portability to other host systems, and unlike traditional approaches using statically-compiled ISA, direct manipulation of host machine resources is possible.

[4] untersucht Strategien zur Abschätzung der Ausführungszeit auf der Ebene eines System Design Tools. Zwei Methoden, um zu Aufwands- und Ausführungszeit-Abschätzungen für ein Embedded System zu kommen, werden vorgestellt, teilweise verbessert und miteinander verglichen. Bei der ersten Methode wird der Quellcode eines Anwendungsprogramms für einen virtuellen Befehlssatz übersetzt. Im zweiten Fall wird mit der Assembler-Option des Zielsystem-Compilers ein Assemblerlisting des Anwendungsprogramms erstellt, das in funktional zu ”assemblerlevel” equivalentes C für den Host umgesetzt wird. In beiden Varianten wird der Code mit Informationen über die Ausführungszeit und anderen zeitrelevanten Einträgen versehen und als genaues und hinreichend schnelles Simulationsmodell benutzt. Diese Ansätze werden bezüglich Genauigkeit und Simula tionsgeschwindigkeit in Relation zu herkömmlichen zyklusbasierten Prozessormodellen gesetzt.[4] examines strategies for estimating execution time at the level of a system design tool. Two methods to reduce costs and execution time estimates for an embedded system are introduced, partially improved and compared with each other. The first method is the source code an application program for a virtual instruction set. In the second case, using the Assembler option of the target system compiler An assembler listing of the application program created that is functional to "assemblerlevel" equivalent C for the host is implemented. In both variants, the code is containing information about the execution time and other time-relevant entries provided as an accurate and sufficiently fast simulation model used. These approaches are regarding accuracy and Simula tion speed in relation to conventional cycle-based processor models set.

Für die eigentliche Abschätzung der Ausführungszeit werden vier Techniken unterschieden:

  • • Filtern von Information, die zwischen einer zyklusgenauen ISS und einem Hardware-Simulator ausgetauscht werden. D. h. die Zugriffszeiten, die der Hardware-Simulator zum Beschaffen von Befehlen und Daten benötigt, werden herausgerechnet. Diese Technik ist zwar sehr präzise, aber vergleichsweise langsam und erfordert ein detailliertes, fertiges Hard- und Softwaremodell. Nachträgliche Änderungen an der Systemarchitektur sind nur mit hohem Aufwand nachzuvollziehen.
  • • Analyse des Codes von Basisblöcken des Programmablaufgraphen. Bei gleichzeitiger Verwendung eines zyklus-genauen Hardware-Modells können Pipelining und Cache-Benutzungsstrategien berücksichtigt werden, während durch die detaillierte Codeanalyse Compileroptimierungen, Registerbelegung, Befehlsauswahl, Scheduling u. ä. Eingang in die Abschätzung finden. Diese Technik ist zweifellos aufwendig, liefert aber sehr gute Ergebnisse. Die oben als zweites beschriebene Methode erlaubt bei entsprechend sorgfältiger Ausgestaltung diese Art von hochgenauer Abschätzung.
  • • Abschätzung der Ausführungszeit auf der Basis von Hochsprachen-Anweisungen, die mit Zeitinformationen versehen sind, welche unter Berücksichtigung von Compileroptimierungen abgeschätzt wurden. Die Technik ist relativ einfach, hat aber den Vorteil, dass keine vollständige Design-Umgebung des gewählten Prozessors bzw. Systems verfügbar sein muss. Andererseits können keine compiler-spezifischen Eigenschaften oder komplexeren Systemarchitekturen beachtet werden, sodass die Abschätzung i. a. eher grob ausfallen wird. Der quellcode-basierte Ansatz der ersten oben beschriebenen Methode kann nur dadurch bessere Ergebnisse liefern, dass der vom Simulator verwendete C-Code von Hand geschrieben und optimiert wird und nicht durch automatische Generierung aus dem Assemblerlistung entsteht.
  • • Verwendung von linearen Gleichungen zur impliziten Beschreibung der ausgeführten Programmpfade und deren Ausführungszeitabschätzungen. Diese Technik hat den Vorteil, dass gar kein Simulationsprogramm benötigt wird. Sie ist durchaus für Worst-Case-Abschätzungen bei einzelnen Programmen geeignet. Eine Abschätzung komplexerer Embedded Systeme ist aber kaum möglich, da die hohe Dynamik der Systeme nicht abgebildet werden kann und die Berechnung dann mit unkalkulierbaren Fehlern behaftet ist.
For the actual estimation of the execution time, four techniques are distinguished:
  • • Filter information exchanged between a cycle-accurate ISS and a hardware simulator. Ie. The access times required by the hardware simulator to obtain commands and data are eliminated. Although very precise, this technique is relatively slow and requires a detailed, finished hardware and software model. Subsequent changes to the system architecture can only be reconstructed with great effort.
  • • Analysis of the code of basic blocks of the program flow graph. Using a cycle-accurate hardware model, pipelining and cache usage strategies can be considered, while detailed code analysis includes compiler optimizations, register mapping, command selection, scheduling, and the like. Ä. Find entry in the estimate. This technique is undoubtedly expensive, but gives very good results. The method described above as second allows this type of highly accurate estimation, with due diligence.
  • Estimation of the execution time on the basis of high-level language instructions, which are provided with time information, which was estimated under consideration of compiler optimizations. The technique is relatively simple, but has the advantage that no complete design environment of the selected processor or system needs to be available. On the other hand, no compiler-specific properties or more complex system architectures can be considered, so that the estimate will generally be rather crude. The source code-based approach of the first method described above can only provide better results by manually writing and optimizing the C code used by the simulator and not by automatically generating it from the assembler listing.
  • • Using linear equations to implicitly describe the executed program paths and their execution time estimates. This technique has the advantage that no simulation program is needed at all. It is quite suitable for worst-case estimates in individual programs. An estimation of complex embedded systems is hardly possible, since the high dynamics of the systems can not be mapped and the calculation is then subject to incalculable errors.

Handelt es sich bei dem Zielsystem um ein Embedded System, das mehrere evtl. sogar unterschiedliche Prozessoren und/oder weitere Hardware-Komponenten für Interaktionen untereinander oder mit der Außenwelt (z. B. mit Sensoren oder Aktoren) enthält, so sind die oben beschriebenen Ansätze überfordert.These it is the target system to an embedded system, which may have several. even different processors and / or other hardware components for interactions with each other or with the outside world (eg with sensors or actuators), so are the overwhelmed by the approaches described above.

[5] schlägt ein Co-Simulations-Design-System vor, wobei auf einem Hostsystem ein modellbasierter Prozessorsimulator mit einem modellbasierten Hardware-Simulator, der eine zusätzliche digitale Schaltung nachahmt, über einen Schnittstellenmechanismus verbunden wird, der die Kommunikation zwischen beiden kontrolliert. Während der simulativen Ausführung des Anwendungsprogrammes, das in einer Voranalyse in lineare Blöcke zerlegt und mit Zeitverzögerungsinformationen versehen wird, kann in dieser Simulationsanordnung die Ausführungszeit sehr genau berechnet werden.[5] proposes a co-simulation design system, wherein a host-based model-based processor simulator with a model-based hardware simulator that adds an extra imitates digital circuitry via an interface mechanism which controls communication between the two. During the simulative execution of the application program, this decomposes into linear blocks in a preliminary analysis and with time delay information is provided, the execution time can be very in this simulation arrangement be calculated exactly.

LiteraturlisteBibliography

  • [1] Moo-Kyong Chung, Chong-Min Kyung, ”Improvement of Compiled Instruction Set Simulator by Increasing Flexibility and Reducing Compile Time”, Proceedings of the 15th IEEE International Workshop on Rapid System Prototyping (RSP'04), 1074–6005/0©2004 IEEE [1] Moo-Kyong Chung, Chong-Min Kyung, "Improvement of Compiled Instruction Set Simulator by Increasing Flexibility and Reducing Compile Time", Proceedings of the 15th IEEE International Workshop on Rapid System Prototyping (RSP'04), 1074-6005 / 0 © 2004 IEEE
  • [2] Patent WO 01/35223 A1 , ”Method and System for Simulating Execution of a Target Program in a simulated Target System”[2] Patent WO 01/35223 A1 , "Method and System for Simulating Execution of a Target Program in a Simulated Target System "
  • [3] Jianwen Zhu, Daniel D. Gajski, ”An Ultra-Fast Instruction Set Simulator”, IEEE Transactions an very large scale Integration (VLSI) Systems, Vol. 10, No. 3, June 2002, 1063–8210/02©2002 IEEE [3] Jianwen Zhu, Daniel D. Gajski, "An Ultra-Fast Instruction Set Simulator", IEEE Transactions on Very Large Scale Integration (VLSI) Systems, Vol. 3, June 2002, 1063-8210 / 02 © 2002 IEEE
  • [4] Jwahar R. Bammi, Edwin Harcourt, Wido Kruijtzer, Luciano Lavagno, Mihai T. Lazarescu, ”Software Performance Estimation Strategies in a System-Level Design Tool”, CODES 2000, San Diego, CA USA ©ACM2000 1-58113-268-9/00/05 [4] Jwahar R. Bammi, Edwin Harcourt, Wido Kruijtzer, Luciano Lavagno, Mihai T. Lazarescu, Software Performance Estimation Strategies in a System-Level Design Tool, CODES 2000, San Diego, CA USA © ACM2000 1-58113-268-9 / 00/05
  • [5] Patent US 6,230,114 B1 , ”Hardware and Software Co-Simulation including executing an analyzed User Program”[5] Patent US 6,230,114 B1 , "Hardware and Software Co-Simulation including executing an Analyzed User Program"

Allen behandelten Ausführungen ist gemeinsam, dass sie sehr schnell an ihre Grenzen stoßen, wenn es sich bei dem zu simulierenden System um ein komplexeres System handelt, das sich z. B. aus mehreren kooperierenden Prozessoren, sowie zustzlichen Hardware-Komponenten zusammensetzt. So erfordert die Simulation mittels ISSs oder ähnlicher modellbasierter Einzelsimulatoren, nicht nur die (quasi-)parallele Ausführung mehrerer solcher Simulatoren, sondern auch eine zeitinvariante Nachbildung der Kooperations- und Kommunikationsmechanismen, sowie die Synchronisation der verschiedenen Zeitbasen der einzelnen Teilsysteme.all Treated designs is common that they are very fast reach their limits when it comes to the simulated System is a more complex system that z. B. from several cooperating processors, as well as additional hardware components composed. So the simulation requires using ISSs or similar model-based Single simulators, not just the (quasi) parallel design several such simulators, but also a time-invariant replica the cooperation and communication mechanisms, as well as the synchronization the different time bases of the individual subsystems.

Insgesamt muss festgestellt werden, dass herkömmliche Simulationsverfahren trotz aller Versuche, die Performance zu verbessern, insbesondere für komplexere Systeme, noch erhebliche Ausführungszeiten auf dem Hostrechner erfordern, während Aussagen bzgl. der Funktionalität und insbesondere des Echtzeitverhaltens oft schwer ableitbar sind, weil die zeitlichen Bedingungen bei dieser Art von Simulation nicht ermittelt, sondern nur mehr oder weniger grob abgeschätzt werden können.All in all must be found that conventional simulation methods despite all attempts to improve performance, especially for more complex systems, still considerable execution times on require the host computer while statements regarding the functionality and in particular the real-time behavior are often difficult to derive, because the temporal conditions in this type of simulation are not determined, but only estimated more or less roughly can be.

Aufgabenstellungtask

Aufgabe der vorliegenden Erfindung ist es, ein Embedded System so zu simulieren, dass ein Anwendungsprogramm funktional getestet und auf seine Echtzeitfähigkeit hin analysiert und optimiert werden kann. Nach einem weiteren Ziel soll das Anwendungsprogramm auch optimal ausgeführt sowie die Auswahl, Konfigurierung und eventuell sogar die Entwicklung kundenspezifischer Ziel-Hardware unterstützt werden können.task the present invention is to simulate an embedded system so that an application program is functionally tested and based on its real-time capability analyzed and optimized. After another goal the application program should also run optimally as well the selection, configuration and possibly even the development customer-specific target hardware can be supported.

Das Konzept soll dabei von Grund auf für die Simulation von komplexeren Systemen ausgelegt sein, d. h. auch für inhomogene Mehrprozessorsysteme mit zusätzlichen Hardware-Komponenten.The Concept is intended from the ground up for the simulation of be designed more complex systems, d. H. also for inhomogeneous ones Multiprocessor systems with additional hardware components.

Das beschriebene Simulationsverfahren soll es außerdem ermöglichen, mit vertretbarem Aufwand verschiedene Varianten von Systemarchitekturen und -konfigurationen zu untersuchen und zu vergleichen, bevor die Hardware gegenständlich verfügbar ist. Besondere Bedeutung kommt dabei der Genauigkeit der Aussagen über das Echtzeitverhalten zu.The In addition, the simulation method described should make it possible to with reasonable effort different variants of system architectures and to examine and compare configurations before the Hardware is physically available. Special Significance comes thereby over the accuracy of the statements the real-time behavior too.

Erfindungsgemäße Lösung der AufgabeInventive solution the task

Diese Aufgabe wird durch die Merkmale des Anspruchs 1 gelöst. Zweckmäßige Ausgestaltungen ergeben sich aus den abhängigen Ansprüchen.These The object is solved by the features of claim 1. Advantageous embodiments will be apparent from the dependent claims.

Nachfolgend wird ein bevorzugtes Ausführungsbeispiel der Erfindung näher erläutert.following is a preferred embodiment of the invention explained in more detail.

Bild 1 zeigt einen Überblick über die Architektur dieser integrierten Simulationsmethode.image 1 shows an overview of the architecture of these integrated simulation method.

Ein Targetsystem (1) kann auf einem Hostsystem (2) simuliert werden, indem z. B. aus dem Assembler-Listing der vorgesehenen Anwendung (3), den Parameterdateien der beteiligten PEs (4), den Verhaltensmodellen weiterer, im System enthaltener HW-Komponenten (5), sowie einer das Zielsystem beschreibenden Projektdatei (6) in einer Voranalyse (7) ein Simulationsmodell (8) gebildet wird, das dann mit Hilfe eines spezifisch konfigurierten Simulators (9) ausgeführt und analysiert wird.A target system ( 1 ) can be used on a host system ( 2 ) are simulated by z. From assembler listing of the intended application ( 3 ), the parameter files of the participating PEs ( 4 ), the behavioral models of other HW components in the system ( 5 ), and a project file describing the target system ( 6 ) in a preliminary analysis ( 7 ) a simulation model ( 8th ), which is then calculated using a specifically configured simulator ( 9 ) is executed and analyzed.

Ein besonderes Verfahren ermöglicht es, während des Simulatorlaufs die für die einzelnen Prozesse benötigten Zeiten zu berechnen und anschließend weiterführende Analysen der Zeitabläufe durchzuführen.One special procedure makes it possible during the Simulator run needed for each process Calculating times and then continuing To carry out analyzes of the timelines.

Das Simulationsmodell (8) besteht seinerseits aus einer Menge von Informationen, Beschreibungsblöcken und Konfigurationsdaten, die vorteilhaft in einer Vorbereitungsphase als Listen oder Datenstrukturen von Objekten im Speicher des Hostsystems aufgebaut werden, wobei sich Eigenschaften und Fähigkeiten dieser Objekte als Attribute und Methoden dieser Objekte abbilden lassen. Mit entsprechenden Verlusten beim Zugriff ist aber auch eine Realisierung des Simulationsmodells in Form von Dateien, als Datenbank-Einträge o. ä. denkbar.The simulation model ( 8th ) consists in turn of a set of information, description blocks and configuration data, which are advantageously built up in a preparation phase as lists or data structures of objects in the memory of the host system, and properties and capabilities of these objects can be mapped as attributes and methods of these objects. With corresponding losses on access but also a realization of the simulation model in the form of files, as database entries o. Ä. Conceivable.

Begriffe im Sinne des Simulationsmodells Processing Element (PE) ist ein Oberbegriff für aktive Hardware/Software-Komponenten, die einen oder mehrere Prozesse verwalten und ausführen können. Beispiele sind Prozessoren, evtl. mit Betriebssystem versehen, Kontroller, ”kleinere” aktive HW-Komponenten, wie UARTs, aktive Schnittstellen, Router, Bus-Switches u. ä.terms in the sense of the simulation model Processing Element (PE) is a Generic term for active hardware / software components that manage and execute one or more processes. Examples are processors, possibly equipped with operating system, controller, "smaller" active HW components, such as UARTs, active interfaces, routers, bus switches u. ä.

Ein Prozess im Sinne des Simulationsmodells kann einer Task, einem Thread, einem Betriebssystemprozess oder einer Interruptserviceroutine (ISR) entsprechen, d. h. er simuliert die Ausführung einer Task, eines Threads, eines Betriebssystemprozesses oder einer. Interruptserviceroutine (ISR) auf dem entsprechenden Prozessor des realen Systems.A process in the sense of the simulation model can correspond to a task, a thread, an operating system process or an interrupt service routine (ISR), ie it simulates the execution a task, a thread, an operating system process or a. Interrupt service routine (ISR) on the corresponding processor of the real system.

Ein BasisBlock (BB) ist ein Teil der Befehlsabfolge eines Programmes, dadurch gekennzeichnet, dass er eine maximale Sequenz aufeinander folgender Instruktionen zusammenfasst. Eine Sequenz ist so definiert, dass der Ausführung der ersten Instruktion die (unbedingte) Ausführung aller anderen Instruktionen folgen muss.One BasicBlock (BB) is part of the command sequence of a program, characterized in that it has a maximum sequence on each other following instructions. A sequence is defined as that the execution of the first instruction the (unconditional) Execution of all other instructions must follow.

Ein IPC-Objekt ist ein Synchronisationsobjekt, das der Interprozesskommunikation (englisch InterProcess Communication (IPC)) dient. Jedes IPC-Objekt verwaltet eine Menge von Prozessen, die auf einen Zustandswechsel eben dieses IPC-Objekts warten. Beispiele sind Semaphore, Mutexe u. ä.One IPC object is a synchronization object, that of interprocess communication (English InterProcess Communication (IPC)) is used. Each IPC object manages a lot of processes that point to a state change just wait for this IPC object. Examples are semaphores, mutexes u. ä.

Im Einzelnen enthält das Simulationsmodell folgende Elemente (s. Bild 1):

  • • Die PE-Liste (12) enthält alle Processing Elemente des Zielsystems. Sie wird z. B. aus der Beschreibung des Target systems in einer Projektdatei bzw. den Parameterblöcken der PEs (4) und evtl. den Verhaltensmodellen aktiver HW-Komponenten (5) aufgebaut.
  • • Für jede PE wird eine Prozessliste (13) aufgebaut, die alle auf dieser PE verwalteten Prozesse enthält. Weitere Prozesse können aus den Verhaltensmodellen von HW-Komponenten (5) abgeleitet oder zur Simulation externer Stimulatoren, die in der Projektdatei (6) beschrieben sind, ergänzt werden.
  • • Für jeden Prozess einzeln oder für alle Prozesse einer PE gemeinsam wird ein gerichteter Graph, der sog. Basisblock(BB)-Graph (14) erstellt, der durch Analyse der Assemblercode-Abfolge so entsteht, dass die Basisblöcke als Knoten und die funktionalen Übergänge zwischen den Basisblöcken als Kanten dargestellt werden. Bedingte Anweisungen beispielsweise beenden zwar die Sequenz, die einen Basisblock definiert (s. o.), bestimmen aber über welche Kante der nächste auszuführende Block erreicht wird.
In detail, the simulation model contains the following elements (see Figure 1):
  • • The PE list ( 12 ) contains all processing elements of the target system. It is z. From the description of the target system in a project file or the parameter blocks of the PEs ( 4 ) and possibly the behavioral models of active HW components ( 5 ) built up.
  • • For each PE, a process list ( 13 ), which contains all the processes managed by this PE. Other processes can be derived from the behavioral models of HW components ( 5 ) or to simulate external stimulators contained in the project file ( 6 ) are supplemented.
  • • For each process individually or for all processes of a PE together, a directed graph, the so-called basic block (BB) graph ( 14 ), which is created by analyzing the assembly code sequence so that the basic blocks are represented as nodes and the functional transitions between the basic blocks as edges. For example, conditional statements terminate the sequence that defines a basic block (see above), but determine which edge will be used to reach the next block to be executed.

Der Basisblock-Graph zerlegt damit einen Prozess in Abschnitte, die Basisblöcke in den Knoten, deren Zeitbedarf statisch bestimmbar ist, und Abschnitte, die Kanten, welche dem Simulator erlauben, das dynamische Verhalten eines Prozessen nachzuvollziehen.

  • • Bei der Erstellung des BBGraphen wird daher gleichzeitig eine Liste mit den statischen Anteilen der Ausführungszeit eines Prozesses (15) angelegt.
  • • Aus dem analysierten Target-Quell- oder -Assemblercode eines Prozesses wird gleichzeitig ein funktional identischer, aber in Basisblöcke unterteilter Host-Quellcode erstellt, der per Host-Compiler in Objectcode übersetzt den funktionalen Teil des Simulationsmodells stellt.
  • • Schließlich werden noch Informationen benötigt, die den Simulator entsprechend dem Zielsystem konfigurieren (16). Dies bezieht sich auf die Art des Scheduling, z. B. Auswahl des Schedulingverfahrens, wie ”First Come, First Serve” ”Preemptive” oder ”Round Robin” u. ä. oder die Art der Speicherstrukturierung und -verwaltung, die aufgrund dieser Angaben im Speicher des Hostsystems nachgebildet und bei der folgenden Simulation verwendet wird.
The basic block graph thus breaks a process into sections, the basic blocks in the nodes whose time requirement is statically determinable, and sections, the edges, which allow the simulator to track the dynamic behavior of a process.
  • • When creating the BBGraph, therefore, a list of the static portions of the execution time of a process ( 15 ).
  • • From the analyzed target source or assembler code of a process, a functionally identical, but subdivided in basic blocks host source code is created, which is translated by the host compiler in object code is the functional part of the simulation model.
  • • Finally, information is needed to configure the simulator according to the target system ( 16 ). This refers to the type of scheduling, eg. B. Selection of scheduling method such as "First Come, First Serve""Preemptive" or "Round Robin" u. or the type of memory structuring and management, which, based on this information, is reproduced in the memory of the host system and used in the following simulation.

Bild 2 zeigt die Vorgehensweise des Simulators anhand eines Ausführungs-Zyklus. Der Scheduler (1. Stufe) des Simulators wählt aus der Liste der PE (1) einen Eintrag aus. Ein Scheduler (2. Stufe) dieses PEs wählt (2) den nächsten auf dieser PE abzuarbeitenden Prozess aus. Das Verhaltens des Schedulers oder das Schedulingverfahren (kooperativ, preemptiv, etc.) des PE ist durch den Benutzer auswählbar.Figure 2 shows the procedure of the simulator based on an execution cycle. The scheduler (1st stage) of the simulator selects from the list of PE ( 1 ) make an entry. A scheduler (2nd stage) of this PE chooses ( 2 ) the next process to be performed on this PE. The behavior of the scheduler or the scheduling method (cooperative, preemptive, etc.) of the PE is selectable by the user.

Zur Abarbeitung wird der ausgewählte Prozess aus der Menge der rechenbereiten Prozesse entnommen und die Abarbeitung des nächsten Basisblocks (3) der Basisblockgraphen dieses Prozesses findet statt. Nach der Abarbeitung jedes Blocks wird geprüft, ob durch den geänderten Systemzustand des simulierten System ein erneuter Schedulingvorgang notwendig ist (4 + 5 + 6). Ist das der Fall, wird der gerade abgearbeitete Prozesse in die Menge der aktiven Prozesse der PE zurückgelegt (7). Anderenfalls wird der nächste Basisblock abgearbeitet.For execution, the selected process is taken from the set of ready-to-process and the processing of the next basic block ( 3 ) of the basic block graphs of this process takes place. After the processing of each block, it is checked whether a new scheduling process is necessary due to the changed system state of the simulated system ( 4 + 5 + 6 ). If this is the case, the process that has just been processed is returned to the set of active processes of the PE ( 7 ). Otherwise the next basic block will be processed.

Ein Schedulingvorgang wird notwendig, wenn gemäß dem Schedulingverfahren auf einer PE (dergleichen oder einer anderen) ein anderer aktiver Prozess ausgeführt werden muss. Insbesondere ist dies der Fall, wenn der gerade abgearbeitete Prozess endet oder aufgrund eines Zustandswechsels nicht mehr rechenbereit ist.One Scheduling process becomes necessary when according to the Scheduling procedure on one PE (like or another) another active process must be performed. Especially this is the case when the process just finished ends or is no longer ready to report due to a change of state.

Bild 3 zeigt den simulierten Ablauf einer Interprozesskommunikation über Synchronisationsmechanismen. Ein Prozess kann zum Beispiel nicht mehr rechenbereit sein, wenn er einem Betriebssystemprozess eines RTOS auf dem simulierten PE entspricht und dieses Betriebssystem ein blockierendes Warten enthält. Dies kann bei der Verwendung von Semaphoren und Mutexen geschehen ebenso wie bei Kommunikationswarteschlangen. Diese Elemente heissen IPC-Objekte. Jedes IPC-Objekt verwaltet eine Menge von Prozessen, die auf einen Zustandswechsel eben dieses IPC-Objekts warten. Blockiert der gerade abgearbeitete Prozess an einem IPC-Objekt, so wird er nicht in die Menge der Prozesse des PE zurückgelegt, sondern in die Menge der Prozesse des IPC-Objekts eingefügt (12). Wird durch einen Zustandswechsel (14) des IPC-Objekts ein Prozess in der Menge der Prozesse des IPC-Objekts wieder rechenbereit, so wird er aus der Menge des IPC-Objekts entfernt und wieder in die Menge der aktiven Prozesse eines PE eingefügt (15).Figure 3 shows the simulated process of interprocess communication via synchronization mechanisms. For example, a process may no longer be ready to compute if it corresponds to an operating system process of an RTOS on the simulated PE and that operating system contains a blocking wait. This can be done using semaphores and mutexes as well as communication queues. These elements are called IPC objects. Each IPC object manages a set of processes waiting for a state change of that IPC object. If the process currently being processed is blocking an IPC object, it is not included in the set of processes of the PE, but is inserted into the set of processes of the IPC object ( 12 ). Is replaced by a state change ( 14 ) of the IPC object a process in The number of processes of the IPC object is ready for calculation again, so it is removed from the set of the IPC object and reinserted into the set of active processes of a PE ( 15 ).

Die simulierte Interaktion zwischen den Softwarekomponenten und den Hardwarekomponenten des realen Systems erfolgt durch simulierte Zugriffe auf die Register der Hardwarekomponente, wie es auch im realen System erfolgt. Diese Zugriffe verändern den internen Zustand der Hardwarekomponente und können auch den einer Hardwarekomponente entsprechenden Prozess in die Menge der aktiven Prozesse des zugeordneten PE einfügen. Das weitere funktionale und zeitliche Verhalten der Hardwarekomponente wird dann unabhängig vom zeitlichen und funktionalen Verhalten der Softwarekomponente abgearbeitet.The simulated interaction between the software components and the Hardware components of the real system is done by simulated Accesses to the registers of the hardware component, as it is also in the real system takes place. These accesses change the internal one State of the hardware component and can also be the one Hardware component corresponding process in the set of active processes insert the assigned PE. The more functional and temporal behavior of the hardware component then becomes independent processed by the temporal and functional behavior of the software component.

Die Interaktion der Hardwarekomponenten des realen Systems untereinander erfolgt durch den Austausch elektrischer Signale auf den Anschlüssen der realen Komponenten. Im Simulator wird zur Erhöhung der Simulationsgeschwindigkeit von den elektrischen Pegeln abstrahiert und komplexe Datenpakete anstelle einzelner Pegel übertragen. In der Erfindung werden zu diesem Zweck Daten von den Hardwarekomponenten an einen Verbindungsmechanismus weitergegeben, der die Daten an die im realen System mit den ausgebenden Hardwarekomponenten verbundenen Hardwarekomponenten weiterleitet. Dort erfolgt entsprechend dem Verhalten der Hardwarekomponente eine Änderung des interne Zustands der Hardwarekomponente. Dabei kann auch der der Hardwarekomponente entsprechende Prozess in die Menge der aktiven Prozesse der zu der Hardwarekomponente gehörenden PE eingefügt werden.The Interaction of the hardware components of the real system with each other takes place by the exchange of electrical signals on the terminals of the real components. In the simulator will increase the Simulation speed abstracted from the electrical levels and transmit complex data packets instead of individual levels. In the invention for this purpose data from the hardware components passed on to a link mechanism that attaches the data which in the real system associated with the issuing hardware components Forwarding hardware components. There is done according to the Behavior of the hardware component a change of the internal State of the hardware component. It can also be the hardware component corresponding process in the set of active processes to the hardware component be included in the PE.

Das zeitliche Verhalten der zu einer PE gehörenden Prozesse hängt von der lokalen Uhr des PE ab. Beispielsweise kann jeder Quarz, der den Arbeitstakt für eine PE erzeugt, als lokale Uhr modelliert werden. Besonders vorteilhaft ist hier die Ausgestaltung der Uhren gemäß der WO 02/21261 . Für die Schedulingvorgänge der 1. und der 2. Stufe werden die lokalen Zeiten der PE und der zugehörigen Prozesse in eine gemeinsame globale Zeitbasis umgerechnet.The temporal behavior of the processes belonging to a PE depends on the local clock of the PE. For example, any crystal that generates the power stroke for a PE may be modeled as a local clock. Particularly advantageous here is the design of the watches according to the WO 02/21261 , For the scheduling operations of the 1st and the 2nd stage, the local times of the PE and the associated processes are converted into a common global time base.

Die Anregung des simulierten Systems erfolgt über die Aktivierung von Prozessen. Für ISR-Eingänge werden beispielsweise die zugehörigen Prozesse in die Menge der aktiven Prozesse einer PE eingetragen. Eingänge von Hardwarekomponenten (UART-Eingänge, Pegel an digitalen Inputs, etc.) werden mit demselben Verfahren aktiviert wie bei der Kommunikation zwischen simulierten Hardwarekomponenten.The Stimulation of the simulated system takes place via activation of processes. For example, for ISR inputs the associated processes in the set of active processes registered a PE. Inputs of hardware components (UART inputs, levels of digital inputs, etc.) activated with the same procedure as in the communication between simulated hardware components.

ZITATE ENTHALTEN IN DER BESCHREIBUNGQUOTES INCLUDE IN THE DESCRIPTION

Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list The documents listed by the applicant have been automated generated and is solely for better information recorded by the reader. The list is not part of the German Patent or utility model application. The DPMA takes over no liability for any errors or omissions.

Zitierte PatentliteraturCited patent literature

  • - WO 02/21261 [0039] WO 02/21261 [0039]

Claims (20)

Verfahren zur Simulation eines Embedded Systems, d. h. eines Computersystems, das in einer größeren Umgebung integriert dedizierte Funktionen innerhalb eines Gesamtsystems ausführt und zum Betrieb, Steuerung, Regelung oder ähnlichem des Gesamtsystems benötigt wird, dadurch gekennzeichnet, dass ein für Hardware- und Software-Komponenten integriertes Simulationsmodell gebildet wird, wobei – eine Menge von Processing Elements (PE) verwaltet wird, – jedes PE eine Menge von Prozessen verwaltet, – ein Scheduler (1. Stufe) aus der Menge der Processing Elements das nächste zu simulierende Processing Element auswählt, – der nächste auf dieser PE zu simulierende Prozess von einem weiteren Scheduler (2. Stufe) ausgewählt wird, – das zeitliche und funktionale Verhalten des ausgewählten Prozesses durch die Abarbeitung eines Basisblock-Graphen simuliert wird, – jede PE mindestens eine lokale Uhr hat, – das zeitliche Verhalten der zu einer PE gehörenden Prozesse von dieser lokalen Uhr abhängt, derart ausgestaltet, dass das Simulationsmodell die Eigenschaften und Abläufe des Anwendungsprogramms auf der speziellen Hardware, wie auch die Eigenschaften und Abläufe in der Hardware selbst realistisch nachbildet und dabei Angaben über die Ausführungszeiten aller Teilabläufe der speziellen Hardware und des Anwendungsprogramms auf dieser Hardware bereitstellt, während der Simulatorkern die dynamischen Eigenschaften nachahmt, auf nicht vorhersehbare Ereignisse in derselben Weise reagiert, wie das simulierte Zielsystem und dabei die tatsächlich benötigten Ausführungszeiten eines Programmablaufs auf dem Zielsystem ermittelt.Method for simulating an embedded system, ie a computer system that performs integrated functions in an overall environment within an overall system and is required for operation, control, regulation or the like of the overall system, characterized in that one integrated for hardware and software components Simulation model is formed, where - a set of processing elements (PE) is managed, - each PE manages a set of processes, - a scheduler (1st stage) from the set of processing elements selects the next to be simulated processing element, - next process simulated on this PE is selected by another scheduler (2nd stage), - the temporal and functional behavior of the selected process is simulated by the execution of a basic block graph, - each PE has at least one local clock, - the temporal Behavior of processes belonging to a PE from this lok This simulation model realistically simulates the properties and processes of the application program on the special hardware, as well as the properties and processes in the hardware itself, and information about the execution times of all sub-processes of the specific hardware and the application program on this hardware while the simulator core mimics the dynamic properties, responds to unpredictable events in the same way as the simulated target system determines the actual execution times of a program run on the target system. Verfahren nach Anspruch 1, wobei in der einfachsten Version das Zielsystem von einem ähnlichen Prozessortyp ist, wie das zur Simulation verwendete Hostsystem, so dass das Simulationsmodell einfach durch Übersetzung des Anwendungsprogramms auf dem Hostrechner entsteht.The method of claim 1, wherein in the simplest Version the target system of a similar processor type is like the host system used for simulation, so the simulation model is simple by translating the application program on the host computer arises. Verfahren nach Anspruch 1 und 2, wobei Variationen des Zielsystems in Form einer Auflistung von Umgebungsparametern in das Simulationsmodell einfließen.Method according to claims 1 and 2, wherein variations of the target system in the form of a list of environmental parameters into the simulation model. Verfahren nach Anspruch 1 bis 3, wobei das Simulationsmodell durch eine Datei mit Ausführungszeiten für einzelne oder alle Teilabläufe der speziellen Hardware und des Anwendungsprogramms auf dieser Hardware ergänzt wird, aus der bei der Simulation das Zeitverhalten des Zielsystems rekonstruiert und berechnet werden kann.The method of claim 1 to 3, wherein the simulation model through a file with execution times for individual or all sub-processes of the special hardware and the application program on this hardware is added from the simulation the time behavior of the target system is reconstructed and calculated can. Verfahren nach Anspruch 1, wobei in einer anderen Version das Simulationsmodell dadurch entsteht, dass das Anwendungsprogramm als Assemblercode für das Zielsystem mit einem com pilierten Instruction Set Simulator (ISS) des Zielsystems ausgeführt wird.The method of claim 1, wherein in another Version the simulation model arises because the application program piloted as assembler code for the target system with a com Instruction Set Simulator (ISS) of the target system becomes. Verfahren nach Anspruch 1 und 5, wobei Variationen des Zielsystems in Form einer Auflistung von Umgebungsparametern in das Simulationsmodell einfließen.Method according to claims 1 and 5, wherein variations of the target system in the form of a list of environmental parameters into the simulation model. Verfahren nach Anspruch 1 und den Ansprüchen 5 und 6, wobei das Simulationsmodell durch eine Datei mit Ausführungszeiten für einzelne oder alle Teilabläufe der speziellen Hardware und des Anwendungsprogramms auf dieser Hardware ergänzt wird, aus der bei der Simulation das Zeitverhalten des Zielsystems rekonstruiert und berechnet werden kann.The method of claim 1 and the claims 5 and 6, where the simulation model by a file with execution times for individual or all partial processes of the special Hardware and the application program is supplemented on this hardware, from which the simulation reconstructs the time behavior of the target system and can be calculated. Verfahren nach Anspruch 1 und den Ansprüchen 5 bis 7, wobei der ISS durch einen virtuellen ISS ersetzt wird, der auf technischen Informationen aus dem Datenblatt des Zielsystems, aus dessen Hardware-Spezifikation oder VHDL-Code oder ähnlichen Unterlagen generiert wurde.The method of claim 1 and the claims 5 to 7, where the ISS is replaced by a virtual ISS, the technical information from the datasheet of the target system, from its hardware specification or VHDL code or similar documentation was generated. Verfahren nach Anspruch 1 und den Ansprüchen 5 bis 8, wobei für das Simulationsmodell das Anwendungsprogramm aufgrund von Informationen aus dem Datenblatt des Zielsystems, aus dessen Hardware-Spezifikation oder VHDL-Code oder ähnlichen Unterlagen manuell als Host-Quellcode programmiert wird.The method of claim 1 and the claims 5 to 8, wherein for the simulation model the application program based on information from the datasheet of the target system its hardware specification or VHDL code or similar Documentation is programmed manually as host source code. Verfahren nach Anspruch 1, wobei in einer weiteren Version, bei der das Anwendungsprogramm auf mehreren kooperierenden Zielsystemen abläuft, das Simulationsmodell dadurch entsteht, dass mittels eines komplexeren Vorverarbeitungsprogramms die verschiedenen Anwendungsprogramm-Module auf den dem jeweiligen Zielsystem entsprechenden compilierten ISSs ausgeführt werden.The method of claim 1, wherein in another Version where the application program cooperates on several Target systems, the simulation model is created, that by means of a more complex preprocessing program the various Application program modules corresponding to the respective target system compiled ISSs are executed. Verfahren nach Anspruch 1 und 10, wobei Variationen der Zielsysteme sowie der sie verbindenden Kommunikationssysteme in Form einer Auflistung von Umgebungsparametern in das Simulationsmodell einfließen.Method according to claims 1 and 10, wherein variations the target systems and the communication systems connecting them in the form of a list of environmental parameters in the simulation model incorporated. Verfahren nach Anspruch 1 und den Ansprüchen 10 und 11, wobei das Simulationsmodell durch eine Datei mit Ausführungszeiten für einzelne oder alle Teilabläufe der speziellen Hardware und des Anwendungsprogramms auf dieser Hardware ergänzt wird, aus der bei der Simulation das Zeitverhalten der Ziel- und Kommunikationssysteme rekonstruiert und berechnet werden kann.The method of claim 1 and the claims 10 and 11, where the simulation model by a file with execution times for individual or all partial processes of the special Hardware and the application program is supplemented on this hardware, from the simulation of the time behavior of the target and communication systems can be reconstructed and calculated. Verfahren nach Anspruch 1 und den Ansprüchen 10 bis 12, wobei die ISSs teilweise oder alle durch virtuelle ISSs ersetzt werden, die auf technischen Informationen aus dem Datenblatt der jeweiligen Zielsysteme, aus deren Hardware-Spezifikation oder VHDL-Code oder ähnlichen Unterlagen generiert wurden.The method of claim 1 and the claims 10 to 12, with the ISSs partially or all through virtual ISSs to be replaced, based on technical information from the data sheet the respective target systems, from their hardware specification or VHDL code or similar documents were generated. Verfahren nach Anspruch 1 und den Ansprüchen 10 bis 13, wobei für das Simulationsmodell das Anwendungsprogramm aufgrund von Informationen aus dem Datenblatt einiger oder aller Zielsysteme, aus deren Hardware-Spezifikation oder VHDL-Code oder ähnlichen Unterlagen manuell als Host-Quellcode programmiert wird.The method of claim 1 and the claims 10 to 13, wherein for the simulation model the application program based on information from the datasheet of some or all Target systems, from their hardware specification or VHDL code or similar Documentation is programmed manually as host source code. Verfahren nach Anspruch 1, wobei das zeitliche und funktionale Verhalten des ausgewählten Prozesses durch die Abarbeitung eines compilierten Basisblock-Graphen simuliert wird.The method of claim 1, wherein the temporal and functional behavior of the selected process through simulates the execution of a compiled basic block graph becomes. Verfahren nach Anspruch 1 und 15, wobei Variationen des Zielsystems in Form einer Auflistung von Umgebungsparametern in das Simulationsmodell einfließen.Method according to claims 1 and 15, wherein variations of the target system in the form of a list of environmental parameters into the simulation model. Verfahren nach Anspruch 1 und den Ansprüchen 15 und 16, wobei das Simulationsmodell durch eine Datei mit Ausführungszeiten für einzelne oder alle Teilabläufe der speziellen Hardware und des Anwendungsprogramms auf dieser Hardware ergänzt wird, aus der bei der Simulation das Zeitverhalten des Zielsystems rekonstruiert und berechnet werden kann.The method of claim 1 and the claims 15 and 16, where the simulation model by a file with execution times for individual or all partial processes of the special Hardware and the application program is supplemented on this hardware, from which the simulation reconstructs the time behavior of the target system and can be calculated. Verfahren nach Anspruch 1 und den Ansprüchen 15 bis 17, wobei der ISS durch einen virtuellen ISS ersetzt wird, der auf technischen Informationen aus dem Datenblatt des Zielsystems, aus dessen Hardware-Spezifikation oder VHDL-Code oder ähnlichen Unterlagen generiert wurde.The method of claim 1 and the claims 15 to 17, where the ISS is replaced by a virtual ISS, the technical information from the datasheet of the target system, from its hardware specification or VHDL code or similar Documentation was generated. Verfahren nach Anspruch 1 und den Ansprüchen 15 bis 18, wobei für das Simulationsmodell das Anwendungsprogramm aufgrund von Informationen aus dem Datenblatt des Zielsystems, aus dessen Hardware-Spezifikation oder VHDL-Code oder ähnlichen Unterlagen manuell als Host-Quellcode programmiert wird, bevor die Ziel-Hardware samt Tools verfügbar ist.The method of claim 1 and the claims 15 to 18, wherein for the simulation model the application program based on information from the datasheet of the target system its hardware specification or VHDL code or similar Documentation is manually programmed as host source code before the Target hardware including tools is available. Verfahren nach Anspruch 1 bis 4 oder 1 und den Ansprüchen 5 bis 9 oder 1 und den Ansprüchen 10 bis 14 oder Anspruch 1 und den Ansprüchen 15 bis 19, wobei der Simulationskern die im Simulationsmodell abgelegten Informationen, wie Umgebungsparameter und Zeitstempelfolgen nutzt, um das Anwendungsprogramm auf dem Hostsystem optimal nachzubilden.The method of claim 1 to 4 or 1 and the claims 5 to 9 or 1 and claims 10 to 14 or claim 1 and claims 15 to 19, wherein the simulation core the information stored in the simulation model, such as environmental parameters and uses timestamp sequences to the application program on the host system to replicate optimally.
DE102008030163A 2008-06-27 2008-06-27 Embedded system i.e. computer system, simulating method, involves simulating dynamic characteristics reacting with events by simulator core, and determining actually required execution times of program sequence on target system Ceased DE102008030163A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102008030163A DE102008030163A1 (en) 2008-06-27 2008-06-27 Embedded system i.e. computer system, simulating method, involves simulating dynamic characteristics reacting with events by simulator core, and determining actually required execution times of program sequence on target system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102008030163A DE102008030163A1 (en) 2008-06-27 2008-06-27 Embedded system i.e. computer system, simulating method, involves simulating dynamic characteristics reacting with events by simulator core, and determining actually required execution times of program sequence on target system

Publications (1)

Publication Number Publication Date
DE102008030163A1 true DE102008030163A1 (en) 2009-12-31

Family

ID=41360569

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102008030163A Ceased DE102008030163A1 (en) 2008-06-27 2008-06-27 Embedded system i.e. computer system, simulating method, involves simulating dynamic characteristics reacting with events by simulator core, and determining actually required execution times of program sequence on target system

Country Status (1)

Country Link
DE (1) DE102008030163A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012146406A1 (en) 2011-04-23 2012-11-01 Deubzer Michael Method for the design evaluation of a system
CN103345419A (en) * 2013-07-25 2013-10-09 南京邮电大学 Dynamic evidence obtaining method based on Android platform
EP3196717A1 (en) * 2016-01-20 2017-07-26 Rockwell Automation Technologies, Inc. Emulated industrial control execution rate scaling
EP4220314A1 (en) * 2022-01-26 2023-08-02 Siemens Aktiengesellschaft Method and arrangement for configuring and / or programming an industrial automation component

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6230114B1 (en) 1999-10-29 2001-05-08 Vast Systems Technology Corporation Hardware and software co-simulation including executing an analyzed user program
WO2001035223A1 (en) 1999-11-05 2001-05-17 Applied Microsystems Corporation Method and system for simulating execution of a target program in a simulated target system
WO2002021261A2 (en) 2000-09-06 2002-03-14 Friedrich-Alexander-Universität Erlangen-Nurnberg Method for producing computer-assisted real-time systems

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6230114B1 (en) 1999-10-29 2001-05-08 Vast Systems Technology Corporation Hardware and software co-simulation including executing an analyzed user program
WO2001035223A1 (en) 1999-11-05 2001-05-17 Applied Microsystems Corporation Method and system for simulating execution of a target program in a simulated target system
WO2002021261A2 (en) 2000-09-06 2002-03-14 Friedrich-Alexander-Universität Erlangen-Nurnberg Method for producing computer-assisted real-time systems

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Jianwen Zhu, Daniel D. Gajski, "An Ultra-Fast Instruction Set Simulator", IEEE Transactions an very large scale Integration (VLSI) Systems, Vol. 10, No. 3, June 2002, 1063-8210/02©2002 IEEE
Jwahar R. Bammi, Edwin Harcourt, Wido Kruijtzer, Luciano Lavagno, Mihai T. Lazarescu, "Software Performance Estimation Strategies in a System-Level Design Tool", CODES 2000, San Diego, CA USA ©ACM2000 1-58113-268-9/00/05
Moo-Kyong Chung, Chong-Min Kyung, "Improvement of Compiled Instruction Set Simulator by Increasing Flexibility and Reducing Compile Time", Proceedings of the 15th IEEE International Workshop on Rapid System Prototyping (RSP'04), 1074-6005/0©2004 IEEE

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012146406A1 (en) 2011-04-23 2012-11-01 Deubzer Michael Method for the design evaluation of a system
US9405864B2 (en) 2011-04-23 2016-08-02 Michael Deubzer Method for a design evaluation of a system
CN103345419A (en) * 2013-07-25 2013-10-09 南京邮电大学 Dynamic evidence obtaining method based on Android platform
EP3196717A1 (en) * 2016-01-20 2017-07-26 Rockwell Automation Technologies, Inc. Emulated industrial control execution rate scaling
US10012979B2 (en) 2016-01-20 2018-07-03 Rockwell Automation Technologies, Inc. Emulated industrial control execution rate scaling
EP4220314A1 (en) * 2022-01-26 2023-08-02 Siemens Aktiengesellschaft Method and arrangement for configuring and / or programming an industrial automation component
WO2023143832A1 (en) 2022-01-26 2023-08-03 Siemens Aktiengesellschaft Method and assembly for configuring and/or programming an industrial automation component

Similar Documents

Publication Publication Date Title
DE102014110096A1 (en) Test device for real-time test of a virtual control device
EP2897011B1 (en) Method and simulation assembly for the simulation of an automated industrial plant
EP3001313A1 (en) Methods for simulating an application program of an electronic control device on a computer
EP2366146B2 (en) Method and data processing system for simulating an embedded system
DE102009027627B3 (en) Simulation of real-time software components based on the logical execution time
DE112010004037T5 (en) Simulation method, system and program
DE102018110020A1 (en) A method for generating a model of a technical system executable on a test device and test device
DE102008030163A1 (en) Embedded system i.e. computer system, simulating method, involves simulating dynamic characteristics reacting with events by simulator core, and determining actually required execution times of program sequence on target system
EP3285165A1 (en) Modification and simulation of the operating software of a technical system
EP3306295A1 (en) Method and device for testing electronic controls, in particular for testing of automobile control systems
DE102014219711A1 (en) Method for power plant simulation
DE102011076821A1 (en) Simulation of real-time systems using call points (access points)
DE10324594A1 (en) Method for providing improved simulation capabilities of a dynamic system outside of the original modeling environment
EP2899652B1 (en) Method for optimising the operation of programmable logic modules in control devices for vehicles
DE112019002778T5 (en) SIMULATION DEVICE, SIMULATION METHOD AND ELECTRONIC CONTROL UNIT DEVICE
Jifeng et al. An operational semantics of a simulator algorithm
DE112018002316T5 (en) CODE COVERAGE TRACKING FOR A MICROCONTROLLER PROGRAM
EP1449083B1 (en) Method for debugging reconfigurable architectures
Soininen et al. Cosimulation of real-time control systems
DE202016008563U1 (en) Configuration system for configuring a test device set up to test a controller
EP3702922A1 (en) Method for the computer-assisted validation of embedded software
WO2006035038A2 (en) Method for testing control device software for a control device
WO2019223970A1 (en) Creating of an interdisciplinary simulation model
EP2653850B1 (en) Method and IT system for testing entire vehicles
Gilles et al. Applying WCET analysis at architectural level

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8127 New person/name/address of the applicant

Owner name: INCHRON GMBH, 14482 POTSDAM, DE

R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final