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 PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0426—Programming the control sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/23—Pc programming
- G05B2219/23445—Real time simulation
Abstract
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.)
- • 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.
- • 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 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 WO 01/35223 A1 -
[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 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 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 US 6,230,114 B1
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 (
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 (
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.
- • 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.
- • 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 (
Zur
Abarbeitung wird der ausgewählte Prozess aus der Menge
der rechenbereiten Prozesse entnommen und die Abarbeitung des nächsten
Basisblocks (
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
(
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
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)
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)
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)
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 |
-
2008
- 2008-06-27 DE DE102008030163A patent/DE102008030163A1/en not_active Ceased
Patent Citations (3)
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)
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)
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 |