DE112017008061T5 - Simulationsvorrichtung, simulationsverfahren und simulationsprogramm - Google Patents

Simulationsvorrichtung, simulationsverfahren und simulationsprogramm Download PDF

Info

Publication number
DE112017008061T5
DE112017008061T5 DE112017008061.4T DE112017008061T DE112017008061T5 DE 112017008061 T5 DE112017008061 T5 DE 112017008061T5 DE 112017008061 T DE112017008061 T DE 112017008061T DE 112017008061 T5 DE112017008061 T5 DE 112017008061T5
Authority
DE
Germany
Prior art keywords
simulation
section
execution
change
processing unit
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.)
Pending
Application number
DE112017008061.4T
Other languages
English (en)
Inventor
Daisuke Ogawa
Masakatsu TOYAMA
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of DE112017008061T5 publication Critical patent/DE112017008061T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2117/00Details relating to the type or aim of the circuit design
    • G06F2117/08HW-SW co-design, e.g. HW-SW partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Debugging And Monitoring (AREA)

Abstract

In einer Simulationsvorrichtung (100) berechnet ein Rechenabschnitt (113) eine Ausführungsverarbeitungszeit, die nötig ist, um die einzelnen Befehlscodes (221) von einer Vielzahl von Befehlscodes auszuführen. Ein Speicherabschnitt (140) speichert Änderungseinstellungsinformationen (230), in denen eine Änderungsregel, die Ausführungsverarbeitungszeiten für die mehreren in der Verarbeitungseinheit enthaltenen Befehlscodes ändert, eingestellt ist. Ein Änderungsabschnitt (115) ändert die Ausführungsverarbeitungszeit in eine geänderte Verarbeitungszeit gemäß der Änderungsregel, die in den Änderungseinstellungsinformationen (230) eingestellt ist. Der Änderungsabschnitt (115) bezieht außerdem die geänderte Verarbeitungszeit für jeden Befehlscode von der Vielzahl von Befehlscodes in einen Gesamtzeitpunkt (240) ein. Ein Simulationsausführungsabschnitt (116) führt eine Simulation eines Zielprogramms (210) unter Verwendung des Gesamtzeitpunkts (240) durch. Ein Überwachungsabschnitt (120) überwacht einen Status des Zielmodells während der Ausführung der Simulation.

Description

  • Gebiet der Technik
  • Die vorliegende Erfindung betrifft eine Simulationsvorrichtung, ein Simulationsverfahren und ein Simulationsprogramm.
  • Stand der Technik
  • Einen Simulator, mit dem eine Simulation durchgeführt wird, für die ein Zielmodell einschließlich einer Zentraleinheit (CPU), die ein Simulationsziel ist, in einem Host-Computer gebaut wird, gibt es bereits. Dieser Simulator ist mit einem Prüfszenario, das Zeitinformationen einschließt, einem Szenarioanalyseabschnitt, der das Prüfszenario analysiert, und einem Szenarioausführungsabschnitt, der das Szenario ausführt, ausgestattet. Auf Basis eines Analyseergebnisses und zu einer Zeit, die in dem Szenario beschrieben wird, bewirkt der Szenarioausführungsabschnitt ein in dem Szenario beschriebenes Signal. Bei dieser Konfiguration kann der Simulator eine Systemprüfung auch ohne einen Simulator für reale Maschinen oder Hardware durchführen.
  • Das Patentdokument 1 offenbart ein Verfahren, das eine Verifizierung eines Verhaltens von Software durch eine Simulation durchführt, die mit einer Verknüpfung mehrerer Hardware-Modelle durchgeführt wird. Das Verfahren des Patentdokuments 1 verkürzt eine Zeit, die für die Verifizierung des Verhaltens der Software nötig ist, durch Beschleunigen eines Zeitablaufs in den Hardware-Modellen.
  • Liste der Entgegenhaltungen
  • Patentdokumente
  • Patentdokument 1: JP 2000-267889 A
  • Kurzfassung der Erfindung
  • Technisches Problem
  • Die Technik des Patentdokuments 1 kann keine Verhaltensverifikation hinsichtlich einer Zeitverhaltensdifferenz, wie etwa einer CPU-Lastschwankung und eines Wartens auf Hardware, das heißt hinsichtlich eines robusten Zeitverhaltens, durchführen.
  • Es ist ein Ziel der vorliegenden Erfindung, eine Verhaltensverifikation hinsichtlich eines robusten Zeitverhaltens zu ermöglichen, wodurch die Verifikationsqualität verbessert wird.
  • Lösung des Problems
  • Eine Simulationsvorrichtung gemäß der vorliegenden Erfindung, die eine Simulation der Durchführung eines Zielprogramms in einem Zielmodell ausführt, das in eine virtuelle Umgebung eingebaut ist, wobei das Zielprogramm eine Verarbeitungseinheit aufweist, die mehrere Befehlscodes umfasst, weist auf:
    • einen Rechenabschnitt zum Berechnen einer Ausführungsverarbeitungszeit, die nötig ist, um die einzelnen Befehlscodes der Vielzahl von Befehlscodes auszuführen;
    • einen Speicherabschnitt, um Änderungseinstellungsinformationen zu speichern, in denen die Verarbeitungseinheit und eine Änderungsregel, die Ausführungsverarbeitungszeiten für die mehreren in der Verarbeitungseinheit enthaltenen Befehlscodes ändert, eingestellt sind;
    • einen Änderungsabschnitt, um die Ausführungsverarbeitungszeit gemäß der Änderungsregel, die in den Änderungseinstellungsinformationen eingestellt ist, in eine geänderte Verarbeitungszeit zu ändern, und um die geänderte Verarbeitungszeit für jeden Befehlscode von der Vielzahl von Befehlscodes in einen Gesamtzeitpunkt einzubeziehen, der die Zeitpunkteinstellung der Simulation angibt;
    • einen Simulationsausführungsabschnitt, um die Simulation des Zielprogramms unter Verwendung des Gesamtzeitpunkts auszuführen; und
    • einen Überwachungsabschnitt, um einen Status des Zielmodells während der Ausführung der Simulation zu überwachen.
  • Vorteilhafte Wirkungen der Erfindung
  • In einer Simulationsvorrichtung gemäß der vorliegenden Erfindung ändert ein Änderungsabschnitt eine Ausführungsverarbeitungszeit in eine geänderte Verarbeitungszeit gemäß einer Änderungsregel. Dann bezieht der Änderungsabschnitt die geänderte Verarbeitungszeit für jeden Befehlscode von einer Vielzahl von Befehlscodes in einen Gesamtzeitpunkt einer Simulation ein. Außerdem führt ein Simulationsausführungsabschnitt eine Simulation des Zielprogramms unter Verwendung des Gesamtzeitpunkts durch. Dann überwacht ein Überwachungsabschnitt einen Status eines Zielmodells während der Ausführung der Simulation. Mit der Simulationsvorrichtung gemäß der vorliegenden Erfindung wird somit eine Zeitverhaltensdifferenz bei der Ausführung eines Befehlscodes durch eine einfache Konfiguration erzeugt, und eine Verhaltensverifikation hinsichtlich eines robusten Zeitverhaltens wird ermöglicht, wodurch eine Verifikationsqualität verbessert wird.
  • Figurenliste
  • 1 ist ein Konfigurationsdiagramm einer Simulationsvorrichtung 100 gemäß einer Ausführungsform 1.
    • 2 ist ein Ablaufschema eines Simulationsprozesses S100 durch die Simulationsvorrichtung 100 gemäß Ausführungsform 1.
    • 3 ist ein Diagramm zur Erklärung des Simulationsprozesses S100 gemäß Ausführungsform 1.
    • 4 ist ein Diagramm, das ein Beispiel für
    • Änderungseinstellungsinformationen 230 gemäß Ausführungsform 1 darstellt.
    • 5 ist ein Diagramm, das ein Beispiel für Überwachungszielinformationen 250 gemäß Ausführungsform 1 darstellt.
    • 6 ist ein schematisches Diagramm eines Falles in Ausführungsform 1, wo eine Simulation durchgeführt wird, ohne eine Ausführungsverarbeitungszeit zu ändern.
    • 7 ist ein schematisches Diagramm eines Falles in Ausführungsform 1, wo eine Simulation durchgeführt wird und dafür eine Ausführungsverarbeitungszeit geändert wird.
    • 8 ist ein Konfigurationsdiagramm einer Simulationsvorrichtung 100 gemäß einer Modifikation der Ausführungsform 1.
  • Beschreibung von Ausführungsformen
  • Im Folgenden wird eine Ausführungsform der vorliegenden Erfindung unter Bezugnahme auf Zeichnungen beschrieben. In den Zeichnungen werden gleiche oder gleichwertige Abschnitte mit den gleichen Bezugszahlen bezeichnet. In der Beschreibung der Ausführungsform wird eine Beschreibung gleicher oder gleichwertiger Abschnitte gegebenenfalls weggelassen oder vereinfacht.
  • Ausführungsform 1.
  • *** Konfigurationsbeschreibung ***
  • Eine Konfiguration einer Simulationsvorrichtung 100 gemäß dieser Ausführungsform wird nun unter Bezugnahme auf 1 beschrieben.
  • Die Simulationsvorrichtung 100 ist ein Computer. Die Simulationsvorrichtung 100 ist mit einem Prozessor 910 ebenso wie mit anderen Hardware-Vorrichtungen, wie etwa einem Speicher 921, einer Hilfsspeichervorrichtung 922, einer Eingabeschnittstelle 930 und einer Ausgabeschnittstelle 940, ausgestattet. Der Prozessor 910 ist über eine Signalleitung mit anderen Hardware-Vorrichtungen verbunden und steuert diese anderen Hardware-Vorrichtungen.
  • Die Simulationsvorrichtung 100 ist mit einem CPU-Modell 110, einem Überwachungsabschnitt 120, einem Hardware(HW)-Modell 130 und einem Speicherabschnitt 140 als Funktionselemente ausgestattet. Das CPU-Modell 110 ist mit einem Befehlsabrufabschnitt 111, einem Befehlsausführungsabschnitt 112, einem Rechenabschnitt 113, einem Bestimmungsabschnitt 114, einem Änderungsabschnitt 115 und einem Simulationsausführungsabschnitt 116 ausgestattet. Das HW-Modell 130 ist mit einem Speichermodell 131, einem Extern-IO-Modell 132, einem Peripherievorrichtungsmodell 133 und einem CPU-Busmodell 134 ausgestattet. Änderungseinstellungsinformationen 230, ein Gesamtzeitpunkt 240 und Überwachungszielinformationen 250 werden in dem Speicherabschnitt 140 gespeichert.
  • Die Simulationsvorrichtung 100 nimmt ein virtuelles Modell, das von dem CPU-Modell 110 und dem HW-Modell 130 gebildet wird, als Zielmodell für eine Simulation. Das Zielmodell, das von dem CPU-Modell 110 und dem HW-Modell 130 gebildet wird, ist ein virtuelles Modell, das in eine virtuelle Umgebung der Simulationsvorrichtung 100 eingebaut ist.
  • Funktionen des CPU-Modells 110 und des Überwachungsabschnitts 120 werden durch Software implementiert.
  • Der Speicherabschnitt 140 ist am Speicher 921 bereitgestellt. Ein Zielprogramm 210 zum Aktivieren des Zielmodells wird außer im Speicherabschnitt 140 auch im Speicher 921 gespeichert. Der Speicher 921 ist mit einem Befehlsspeicher 220 ausgestattet, der Befehlscodes 221 des Zielprogramms 210 speichert.
  • Auch wenn das HW-Modell 130 in 1 außerhalb des Prozessors 910 platziert ist, wird das HW-Modell 130 vom Prozessor 910 und den Hardware-Vorrichtungen virtuell aufgebaut.
  • Der Prozessor 910 ist eine Vorrichtung, die ein Simulationsprogramm ausführt. Das Simulationsprogramm ist ein Programm, das die Funktionen des CPU-Modells 110 und des Überwachungsabschnitts 120 implementiert.
  • Der Prozessor 910 ist ein integrierter Schaltkreis (IC), der eine arithmetische Verarbeitung durchführt. Konkrete Beispiele für den Prozessor 910 schließen eine CPU, einen Digitalsignalprozessor (DSP) und eine Grafikverarbeitungseinheit (GPU) ein.
  • Der Speicher 921 ist eine Speichervorrichtung, in der Daten vorübergehend gespeichert werden. Konkrete Beispiele für den Speicher 921 schließen einen statischen Random-Access Memory (SRAM) und einen dynamischen Random-Access Memory (DRAM) ein.
  • Die Hilfsspeichervorrichtung 922 ist eine Speichervorrichtung, in der Daten gespeichert werden. Konkrete Beispiele für die Hilfsspeichervorrichtung 922 schließen ein HDD ein. Alternativ dazu kann die Hilfsspeichervorrichtung 922 ein tragbares Speichermedium sein, wie etwa ein SD (eingetragene Marke), eine Speicherkarte, ein CF, ein NAND-Flash, eine flexible Scheibe, eine optische Scheibe, eine Compact Disk, eine Blu-ray-Disk (eingetragene Marke) und eine DVD. HDD ist eine Kurzbezeichnung für Festplattenlaufwerk. SD (eingetragene Marke) ist eine Kurzbezeichnung für Secure Digital. CF ist eine Kurzbezeichnung für Compact Flash. DVD ist eine Kurzbezeichnung für Digital Versatile Disk.
  • Die Eingabeschnittstelle 930 ist ein Anschluss, der mit einer Eingabevorrichtung, wie etwa einer Maus, einer Tastatur und einem Touchpanel, verbunden ist. Die Eingabeschnittstelle 930 ist konkret eine Universal-Serial-Bus(USB)-Klemme. Die Eingabeschnittstelle 930 kann ein Anschluss sein, der mit einem Local Area Network (LAN) verbunden ist. Die Simulationsvorrichtung 100 erfasst Informationen, wie etwa die Änderungseinstellungsinformationen 230 und Überwachungszielinformationen 250, über die Eingabeschnittstelle 930 und speichert die abgerufenen Informationen im Speicherabschnitt 140.
  • Die Ausgabeschnittstelle 940 ist ein Anschluss, der mit einem Kabel einer Ausgabevorrichtung, wie etwa einer Anzeige, verbunden ist. Die Ausgabeschnittstelle 940 ist konkret eine USB-Klemme oder eine High-Definition-Multimedia-Interface-Klemme (HDMI; eingetragene Marke). Die Anzeige ist konkret eine Flüssigkristallanzeige (LCD). Die Simulationsvorrichtung 100 zeigt über die Ausgabeschnittstelle 940 Informationen wie etwa ein Überwachungsergebnis der Überwachungsvorrichtung 120 auf der Anzeige an.
  • Das Simulationsprogramm wird vom Prozessor 910 gelesen und vom Prozessor 910 ausgeführt. Nicht nur das Simulationsprogramm, sondern auch ein Betriebssystem (OS) wird im Speicher 921 gespeichert. Der Prozessor 910 führt das Simulationsprogramm aus, während er das OS ausführt. Das Simulationsprogramm und das OS können in der Hilfsspeichervorrichtung 922 gespeichert sein. Das Simulationsprogramm und das OS, die in der Hilfsspeichervorrichtung 922 gespeichert sind, werden in den Speicher 921 geladen und vom Prozessor 910 ausgeführt. Das Simulationsprogramm kann ganz oder teilweise in das OS eingebaut werden.
  • Die Simulationsvorrichtung 100 kann mit mehreren Prozessoren ausgestattet sein, die den Prozessor 910 ersetzen. Die mehreren Prozessoren führen das Simulationsprogramm gemeinsam aus. Jeder Prozessor ist eine Vorrichtung, die das Simulationsprogramm ausführt, wie dies der Prozessor 910 tun würde.
  • Daten, Informationen, Signalwerte und Variablenwerte, die vom Simulationsprogramm verwendet, verarbeitet oder ausgegeben werden, werden im Speicher 921, in der Hilfsspeichervorrichtung 922 oder in einem Register oder einem Cache-Speicher im Prozessor 910 gespeichert.
  • Das Simulationsprogramm bewirkt, dass der Computer Prozesse, Abläufe oder Stadien, die einzelnen Abschnitten des CPU-Modells 110 und des Überwachungsabschnitts 120 entsprechen, ausführt, wobei bei ihnen „abschnitt“ durch „-prozess“, „-ablauf“ oder „-stadium“ ersetzt ist. Die einzelnen Abschnitte im CPU-Modell 110 und im Überwachungsabschnitt 120 sind der Befehlsabrufabschnitt 111, der Befehlsausführungsabschnitt 112, der Rechenabschnitt 113, der Bestimmungsabschnitt 114, der Änderungsabschnitt 115, der Simulationsausführungsabschnitt 116 und der Überwachungsabschnitt 120. Ein Simulationsverfahren ist ein Verfahren, das von der Simulationsvorrichtung 100 mittels der Ausführung des Simulationsprogramms ausgeführt wird.
  • Das Simulationsprogramm kann in einem computerlesbaren Aufzeichnungsmedium gespeichert werden und in Form des Mediums bereitgestellt werden. Alternativ dazu kann das Simulationsprogramm in Form eines Programmprodukts bereitgestellt werden.
  • *** Verhaltensbeschreibung***
  • Ein Simulationsprozess S100 durch die Simulationsvorrichtung 100 gemäß dieser Ausführungsform wird nun unter Bezugnahme auf 2 beschrieben. 3 ist ein Diagramm zur Erklärung des Simulationsprozesses S100 gemäß dieser Ausführungsform. Um die Beschreibung des Verhaltens des Simulationsprozesses S100 zu vereinfachen, führt 3 Beispiele für eine Adresse und den Befehlscode 221 des Befehlsspeichers 220, bei denen es sich um Verarbeitungsziele handelt, und Beispiele für eine Ausführungsverarbeitungszeit des Prozesses und eine geänderte Verarbeitungszeit, die nach der Änderung erhalten wird, durch deren gegenseitige Assoziation an.
  • Die Simulationsvorrichtung 100 führt eine Simulation der Ausführung des Zielprogramms 210 in dem in die virtuelle Umgebung eingebauten Zielmodell durch, wobei das Zielprogramm 210 eine Verarbeitungseinheit aufweist, die mehrere Befehlscodes umfasst. Das Zielprogramm 210 weist mehrere Verarbeitungseinheiten auf. Jede von den mehreren Verarbeitungseinheiten umfasst mehrere Befehlscodes. Die Simulationsvorrichtung 100 führt die Simulation auf Basis des Gesamtzeitpunkts 240 durch, der eine Zeitpunkteinstellung der Simulation angibt.
  • In Schritt S101 ruft der Befehlsabrufabschnitt 111 den Befehlscode 221 aus dem Befehlsspeicher 220 ab. Im Falle von 3 ruft der Befehlsabrufabschnitt 111 ADR als den Befehlscode 221 von einer Adresse 0x0005 des Befehlsspeichers 220 ab.
  • Im Schritt S102 führt der Befehlsausführungsabschnitt 112 den abgerufenen Befehlscode 221 aus. Im Falle von 3 führt der Befehlsausführungsabschnitt 112 ADR aus, der aus dem Befehlsspeicher 220 abgerufen wurde.
  • Im Schritt S103 berechnet der Rechenabschnitt 113 eine Ausführungsverarbeitungszeit, die nötig ist, um die einzelnen Befehlscodes der Vielzahl von Befehlscodes auszuführen. Konkret berechnet der Rechenabschnitt 113 in Bezug auf den Befehlscode 221, der in Schritt S102 ausgeführt wird, eine Ausführungsverarbeitungszeit, die für die Ausführung des Befehlscodes 221 notwendig ist. Im Falle von 3 berechnet der Rechenabschnitt 113 die Ausführungsverarbeitungszeit von ADR und ermittelt 3 Zyklen.
  • Im Schritt S104 bestimmt der Bestimmungsabschnitt 114, ob der vom Befehlsabrufabschnitt 111 abgerufene Befehlscode 221 in der Verarbeitungseinheit enthalten ist, die in den Änderungseinstellungsinformationen 230 eingestellt ist. Das heißt, der Bestimmungsabschnitt 114 bestimmt, ob der vom Befehlsabrufabschnitt 111 abgerufene Befehlscode 221 ein Befehlscode ist, der in der Verarbeitungseinheit enthalten ist, deren Ausführungsverarbeitungszeit geändert werden soll. Eine Verarbeitungseinheit ist eine Einheit eines Ablaufs, wie etwa eine Funktion und eine Aufgabe.
  • Die Änderungseinstellungsinformationen 230 gemäß dieser Ausführungsform werden nun unter Bezugnahme auf 4 beschrieben.
  • In den Änderungseinstellungsinformationen 230 sind eine Verarbeitungseinheit und eine Änderungsregel, die Ausführungsverarbeitungszeiten für die mehreren in der Verarbeitungseinheit enthaltenen Befehlscodes ändert, eingestellt. Das Zielprogramm 210 weist mehrere Verarbeitungseinheiten auf. Von den mehreren Verarbeitungseinheiten ist eine Verarbeitungseinheit, deren Ausführungsverarbeitungszeit geändert werden soll, in den Änderungseinstellungsinformationen 230 eingestellt. Das heißt, die Verarbeitungseinheit, die in den Änderungseinstellungsinformationen 230 eingestellt ist, ist eine Verarbeitungseinheit, deren Ausführungsverarbeitungszeit für einen Befehlscode, der die Verarbeitungseinheit des Zielprogramms 210 bildet, geändert werden soll.
  • Die Änderungseinstellungsinformationen 230 schließen einen Namen der Verarbeitungseinheit, eine Startadresse der Verarbeitungseinheit im Befehlsspeicher 220 und eine Endadresse der Verarbeitungseinheit im Befehlsspeicher 220 ein. Genauer sind ein Verarbeitungseinheitsname 231, eine Startadresse 232, eine Endadresse 233, eine Größe 234 und eine Änderungsregel 235 in den Änderungseinstellungsinformationen 230 eingestellt. Der Verarbeitungseinheitsname 231 ist der Name der Verarbeitungseinheit, die von mehreren Befehlscodes gebildet wird. Die Startadresse 232 ist eine Startadresse der Verarbeitungseinheit im Befehlsspeicher 220. Die Endadresse 233 ist eine Endadresse der Verarbeitungseinheit im Befehlsspeicher 220. Die Größe 234 ist eine Größe der Verarbeitungseinheit. Die Änderungsregel 235 ist ein Änderungsverfahren zum Ändern der Ausführungsverarbeitungszeiten der Befehlscodes. Die Änderungsregel 235 wird beispielsweise von einem positiven/negativen Multiplikationsfaktor oder einem positiven/negativen festen Wert spezifiziert. Es reicht aus, wenn zumindest entweder die Endadresse 233 oder die Größe 234 in den Änderungseinstellungsinformationen 230 eingestellt wird. Das heißt, es reicht aus, wenn Informationen, die angeben, wo die Verarbeitungseinheit endet, enthalten sind. Diese Informationen sind nicht auf eine Adresse oder eine Größe beschränkt, sondern können beliebige andere Informationen sein, solange sie angeben, wo die Verarbeitungseinheit endet.
  • In 4 ist für eine Verarbeitungseinheit funcA eine Änderungsregel 235 eingestellt, welche die Ausführungsverarbeitungszeit um eine Verlängerung von 30 % ändert. Für eine Verarbeitungseinheit funcB ist eine Änderungsregel 235 eingestellt, welche die Ausführungsverarbeitungszeit um eine Verkürzung von 10 % ändert.
  • Wenn die Adresse des Befehlscodes 221 im Befehlsspeicher 220 zwischen der Startadresse 232 und der Endadresse 233 enthalten ist, bestimmt der Bestimmungsabschnitt 114, dass dieser Befehlscode 221 in der Verarbeitungseinheit enthalten ist, die in den Änderungseinstellungsinformationen 230 eingestellt ist. Das heißt, der Bestimmungsabschnitt 114 bestimmt, ob unter den Verarbeitungseinheiten, die in den Änderungseinstellungsinformationen 230 eingestellt sind, eine Verarbeitungseinheit vorhanden ist, die eine Adresse eines Befehlscodes enthält, der aus dem Befehlsspeicher 220 abgerufen worden ist. Falls eine Verarbeitungseinheit vorhanden ist, welche die Adresse des Befehlscodes enthält, geht der Prozess zu Schritt S105 weiter. Falls keine Verarbeitungseinheit vorhanden ist, welche die Adresse des Befehlscodes enthält, geht der Prozess zu Schritt S106 weiter.
  • Sowohl die Startadresse 232 als auch die Endadresse 233 können entweder eine virtuelle Adresse oder eine physische Adresse sein. Eine virtuelle Adresse, die in einem Prozessor verwaltet wird, und eine physische Adresse eines Speichers können gleich oder verschieden sein. Falls sie verschieden sind, wird ein Prozess zum Umwandeln einer virtuellen Adresse in eine physische Adresse durchgeführt. Diese Ausführungsform kann auch einen solchen Prozess bewältigen.
  • In 2 bestimmt der Bestimmungsabschnitt 114, ob ein Befehlscode, dessen Ausführungsverarbeitungszeit vom Rechenabschnitt 113 berechnet worden ist, in der Verarbeitungseinheit des Änderungsziels enthalten ist. Alternativ dazu kann der Bestimmungsabschnitt 114 die Ausführung eines Befehlscodes während der Ausführung der Simulation überwachen und dem Änderungsabschnitt 115 mitteilen, dass ein gerade ausgeführter Befehl ein Befehlscode für die Änderung der Ausführungsverarbeitungszeit ist.
  • Im Schritt S105 ändert der Änderungsabschnitt 115 die Ausführungsverarbeitungszeit in eine geänderte Verarbeitungszeit gemäß der Änderungsregel, die in den Änderungseinstellungsinformationen 230 eingestellt ist. Genauer ist dann, wenn die Adresse 0x0005 eines Befehlscodes ADR von 3 zwischen einer Adresse 0xXXX und einer Adresse 0xYYY von funcA in 4 enthalten ist, ADR ein Befehlscode für die Änderung der Ausführungsverarbeitungszeit. Die Änderungsregel lautet „+30 %“. Somit ändert der Änderungsabschnitt 115 die Ausführungsverarbeitungszeit von 3 Zyklen ADR in 3,9 Zyklen mit einem Inkrement von 30 %. Die 3,9 Zyklen nach der Änderung werden auch als geänderte Verarbeitungszeit bezeichnet.
  • In Schritt S106 bezieht der Änderungsabschnitt 115 die geänderte Verarbeitungszeit für jeden Befehlscode von der Vielzahl von Befehlscodes in den Gesamtzeitpunkt 240 ein, der eine Zeitpunkteinstellung der gesamten Simulation angibt. Konkret bezieht der Änderungsabschnitt 115 die Ausführungsverarbeitungszeit des Befehlscodes in den im Speicherabschnitt 140 gespeicherten Gesamtzeitpunkt 240 ein. Falls der Befehlscode in der Verarbeitungseinheit enthalten ist, deren Ausführungsverarbeitungszeit geändert werden soll, ist die Zeit, die in den Gesamtzeitpunkt 240 einbezogen werden muss, eine nach einer Änderung geltende Ausführungsverarbeitungszeit, die in Schritt S105 geändert wurde, das heißt eine geänderte Verarbeitungszeit. Falls der Befehlscode nicht in der Verarbeitungseinheit enthalten ist, deren Ausführungsverarbeitungszeit geändert werden soll, ist die Zeit, die in den Gesamtzeitpunkt 240 aufgenommen werden muss, die in Schritt S103 berechnete Ausführungsverarbeitungszeit.
  • Im Schritt S107 bestimmt der Änderungsabschnitt 115 für alle Verarbeitungseinheiten, die in dem die Simulation ausführenden Zielprogramm 210 enthalten sind, ob der Prozess für alle Befehlscodes abgeschlossen wurde. Falls der Prozess für alle Verarbeitungseinheiten abgeschlossen wurde, geht der Prozess zu Schritt S108 weiter. Falls eine Verarbeitungseinheit vorhanden ist, für die der Prozess noch nicht abgeschlossen wurde, kehrt der Prozess zu Schritt S101 zurück.
  • Im Schritt S108 führt der Simulationsausführungsabschnitt 116 die Simulation unter Verwendung des Gesamtzeitpunkts 240 aus. Genauer führt der Simulationsausführungsabschnitt 116 auf Basis des Gesamtzeitpunkts 240 das Zielprogramm 210 unter Verwendung des CPU-Modells 110 aus, um eine Simulation des HW-Modells 130 durchzuführen.
  • In Schritt S109 überwacht der Überwachungsabschnitt 120 einen Status des Zielmodells während der Ausführung der Simulation. Die Überwachungszielinformationen 250, in denen ein Überwachungszielmodell, das ein Überwachungsziel in dem Zielmodell ist, Statusinformationen, die einen Status des Überwachungszielmodells angeben, und ein Erwartungswert der Statusinformationen eingestellt sind, sind im Speicherabschnitt 140 gespeichert. Der Überwachungsabschnitt 120 überwacht eine Zeitpunktänderungssituation der Statusinformationen des Überwachungszielmodells auf Basis der Überwachungszielinformationen 250 und gibt ein Überwachungsergebnis aus. Konkret überwacht der Überwachungsabschnitt 120 einen arbiträren internen Status eines arbiträren Modells in der Simulationsvorrichtung 100. Der Überwachungsabschnitt 120 meldet eine Zeitpunktänderungssituation der Statusinformationen des Überwachungszielmodells, das in den Überwachungszielinformationen 250 eingestellt ist, nach außen, beispielsweise durch Anzeigen der Zeitpunktänderungssituation auf der Anzeige.
  • Die Überwachungszielinformationen 250 gemäß dieser Ausführungsform werden nun unter Bezugnahme auf 5 beschrieben.
  • Von dem Zielmodell, das von dem CPU-Modell und dem HW-Modell 130 gebildet wird, wird ein Überwachungszielmodell 251 als Ziel, das vom Überwachungsabschnitt 120 überwacht werden soll, in den Überwachungszielinformationen 250 eingestellt. In 5 ist ein Zeitgeber als Beispiel für das Überwachungszielmodell 251 aufgeführt. Ebenso werden Statusinformationen 252, die einen Status des Überwachungszielmodells 251 angegeben, in den Überwachungszielinformationen 250 eingestellt. Als die Statusinformationen 252 des Überwachungszielmodells 251 werden Informationen wie etwa ein Name einer internen Variablen der Software, ein Registername, ein Signalname und eine Adresse in den Überwachungszielinformationen 250 eingestellt. Ebenso wird ein Erwartungswert 253 der Statusinformationen 252 in den Überwachungszielinformationen 250 eingestellt. Der Erwartungswert 253 wird auch als Überwachungsbedingung bezeichnet. Informationen wie etwa, dass etwas gleich groß ist wie ein Wert zu einem früheren Zeitpunkt, größer ist als ein Wert zu einem früheren Zeitpunkt, um einen bestimmten Wert größer ist als ein Wert zu einem früheren Zeitpunkt, kleiner ist als ein Wert zu einem früheren Zeitpunkt und um einen bestimmten Wert kleiner ist als ein Wert zu einem früheren Zeitpunkt, werden als der Erwartungswert 253 eingestellt.
  • Während der Ausführung der Simulation überwacht der Überwachungsabschnitt 120 eine Zeitpunktänderungssituation eines Zielsignals oder einer Zielvariablen eines Modells, das ein Überwachungsziel ist, mit Bezug auf das CPU-Modell und das HW-Modell 130. Der Überwachungsabschnitt 120 meldet ein Überwachungsergebnis nach außen. Wenn beispielsweise das Zielsignal oder die Zielvariable einen anderen Wert als den Erwartungswert annimmt, kann der Überwachungsabschnitt 120 Alarminformationen, die das Auftreten einer Fehlfunktion angeben, nach außen melden.
  • Andere konkrete Beispiele für das Überwachungszielmodell 251 werden nachstehend beschrieben.
  • Ein konkretes Beispiel für das Überwachungszielmodell 251 ist ein Speicher. Andere konkrete Beispiele sind ein Peripherievorrichtungsmodell wie etwa ein direkter Speicherzugriff (DMA), ein Interrupt-Controller, ein Motor, ein FPGA und ein ASIC. Man beachte, dass FPGA eine Kurzbezeichnung für im Feld programmierbare Gatteranordnung ist und dass ASIC eine Kurzbezeichnung für anwendungsspezifischer integrierter Schaltkreis ist. Ein weiteres konkretes Beispiel ist ein externes IO-Modell, wie etwa ein Universal Asynchronous Receiver/Transmitter (UART) und PCIe. Das CPU-Modell ist auch ein Beispiel für das Überwachungszielmodell 251.
  • Innerhalb des Speichers werden Daten, die an einer spezifischen Adresse gespeichert sind, oder ein Eingabe/Ausgabe-Pin (ein Adress-Pin, ein Chipauswahl-Pin, ein Schreibfreigabe-Pin oder dergleichen) des Speichers überwacht. Eine Variable des Zielprogramms wird grundsätzlich im Speicher gespeichert und unter Spezifizierung einer Adresse überwacht.
  • Im DMA oder Interrupt-Controller werden ein Register, in dem Einstellungen und Status gespeichert sind, ein Interrupt-Pin oder dergleichen überwacht.
  • Im Motor wird hauptsächlich ein Pin überwacht. Es wird ein Status überwacht, wie etwa, ob ein Ausgabe-Pin des Motors einen vorausgesagten Wert ausgibt.
  • Im FPGA oder in der ASIC wird ein internes Register, ein Eingabe/Ausgabe-Pin oder dergleichen überwacht, wie im DMA.
  • Im UART oder PCIe wird ein internes Register oder dergleichen überwacht, wie im DMA. Kommunikationsdaten werden zwingend in einem Empfangsregister oder Senderegister gespeichert, und somit werden die Kommunikationsdaten im Empfangsregister oder Senderegister überwacht. Ein Status, wie etwa, dass etwas empfangen wird, oder Fehler, wird ebenfalls im Register gespeichert, und demgemäß wird ein solcher Status überwacht. Im UART oder PCIe wird auch ein externer Pin überwacht, wie beim DMA oder dergleichen.
  • Im CPU-Modell wird ein internes Register, das charakteristisch ist für die CPU, überwacht. Genauer werden Informationen wie etwa ein Wert eines Programmzählers (PC), ein Wert eines Statusregisters und ein Wert eines versatilen Registers, überwacht.
  • 6 ist ein schematisches Diagramm eines Falles wo eine Simulation durchgeführt wird, ohne die Ausführungsverarbeitungszeit zu ändern. 7 ist ein schematisches Diagramm eines Falles, wo eine Simulation durchgeführt wird und dafür eine Ausführungsverarbeitungszeit geändert wird.
  • Ein Simulationsprozess gemäß dieser Ausführungsform wird ferner unter Bezugnahme auf 6 und 7 beschrieben.
  • In 6 wird der Prozess in der Reihenfolge Aufgabe A, Aufgabe C und Aufgabe B ausgeführt. Ein Dateneinstellungsprozess für Aufgabe A wird auf halbem Wege durch Aufgabe B durchgeführt. Nachdem der Prozess der Aufgabe B abgeschlossen ist, wird die Aufgabe A durch eine Zeitgeberunterbrechung aktiviert. Das heißt, die Aufgabe A und die Aufgabe B werden synchronisiert.
  • 7 stellt dar, wie ein robustes Zeitverhalten in die Simulation von 6 eingeführt wird, um eine Verifikation eines robusten Zeitverhaltens durchzuführen.
  • (1) In 7 wird angenommen, dass die voreingestellte Regel für die Aufgabe B die Verlängerung der Ausführungsverarbeitungszeit um 30 % ist. Durch den oben beschriebenen Prozess von Schritt S101 bis Schritt S107 wird die Ausführungsverarbeitungszeit für jeden Befehlscode der Aufgabe B um 30 % verlängert. Somit wird das Zeitverhalten in Bezug auf die Ausführung für jeden Befehlscode der Aufgabe B geändert.
  • (2) Der Prozess wird in der Reihenfolge Aufgabe A, Aufgabe C und Aufgabe B ausgeführt, wie in 6.
  • (3) Die Ausführungsverarbeitungszeit für jeden Befehlscode der Aufgabe B wird verlängert, so dass eine Zeitgeberunterbrechung während des Dateneinstellungsprozesses für die Aufgabe A stattfindet. Somit findet eine Zeitgeberunterbrechung während des Dateneinstellungsprozesses für die Aufgabe A statt.
  • (4) Die Aufgabe A wird durch eine Zeitgeberunterbrechung aktiviert. Da der Dateneinstellungsprozess für die Aufgabe A noch nicht abgeschlossen ist, wird jedoch die Berechnung der Aufgabe A unter Verwendung ungewollter Daten ausgeführt, was zum Auftreten einer Fehlfunktion führt.
  • (5) Während die Simulation ausgeführt wird, überwacht der Überwachungsabschnitt 120 die Statusinformationen eines Überwachungszielmodells, das in den Überwachungszielinformationen 250 eingestellt ist, und meldet ein Überwachungsergebnis nach außen. Auf diese Weise kann im Simulationsprozess von 7 eine Verifikation eines robusten Zeitverhaltens auf einfache Weise durch Einführen eines robusten Zeitverhaltens durchgeführt werden, so dass die Verifikationsleistung der Simulationsvorrichtung 100 verbessert werden kann.
  • *** Andere Konfigurationen ***
  • < Modifikation 1 >
  • Eine Simulationsvorrichtung 100 kann mit einer Kommunikationsanlage ausgestattet werden, die mit anderen Vorrichtungen über ein Netz kommuniziert. Die Kommunikationsanlage weist einen Empfänger und einen Sender auf. Die Kommunikationsanlage ist über eine drahtgebundene oder drahtlose Verbindung mit einem Kommunikationsnetz wie etwa einem LAN, dem Internet und einer Telefonleitung verbunden. Konkret ist die Kommunikationsanlage ein Kommunikations-Chip oder eine Netzschnittstellenkarte (NIC). Die Simulationsvorrichtung 100 kann Änderungseinstellungsinformationen 230 oder Überwachungszielinformationen 250 von einer externen Vorrichtung über die Kommunikationsanlage empfangen und die empfangenen Informationen in einem Speicherabschnitt 140 speichern. Alternativ dazu kann die Simulationsvorrichtung 100 ein Überwachungsergebnis, das von einem Überwachungsabschnitt 120 erhalten wird, an eine externe Vorrichtung senden.
  • < Modifikation 2 >
  • In der Ausführungsform 1 werden der Name der Verarbeitungseinheit und die Startadresse und die Endadresse der Verarbeitungseinheit in den Änderungseinstellungsinformationen eingestellt. Der Bestimmungsabschnitt bestimmt, ob ein Befehlscode in der Verarbeitungseinheit enthalten ist, unter Verwendung des Befehlscodes und der Startadresse und der Endadresse der Verarbeitungseinheit.
  • Als Modifikation 2 können der Name der Verarbeitungseinheit und ein Bereich des Änderungszeitpunkts in den Änderungseinstellungsinformationen eingestellt werden. Wenn ein Zeitpunkt für die Ausführung des Befehlscodes, der vom Befehlsabrufabschnitt abgerufen worden ist, im Bereich des Änderungszeitpunkts der Änderungseinstellungsinformationen enthalten ist, bestimmt in diesem Fall der Bestimmungsabschnitt, dass der Befehlscode in der Verarbeitungseinheit enthalten ist, die in den Änderungseinstellungsinformationen eingestellt ist. Dann ändert ein Änderungsabschnitt eine Ausführungsverarbeitungszeit des Befehlscodes, von dem bestimmt worden ist, dass er in der Verarbeitungseinheit eines Änderungsziels enthalten ist, gemäß einer Änderungsregel. Abgesehen davon ist der Prozess der gleiche wie der von Ausführungsform 1.
  • < Modifikation 3 >
  • In der Ausführungsform 1 werden die Funktionen des Befehlsabrufabschnitts 111, des Befehlsausführungsabschnitts 112, des Verarbeitungszeitberechnungsabschnitts 113, des Bestimmungsabschnitts 114, des Verarbeitungszeitpunktänderungsabschnitts 115, des Verarbeitungszeitsimulationsausführungsabschnitts 116 und des Überwachungsabschnitts 120 durch Software implementiert. Im Folgenden gibt es einen Fall, wo Funktionen eines Befehlsabrufabschnitts 111, eines Befehlsausführungsabschnitts 112, eines Verarbeitungszeitberechnungsabschnitts 113, eines Bestimmungsabschnitts 114, eines Verarbeitungszeitpunktänderungsabschnitts 115, eines Simulationsausführungsabschnitts 116 und eines Überwachungsabschnitts 120 als Funktion eines CPU-Modells 110 und als Funktion des Überwachungsabschnitts 120 bezeichnet werden. Als Modifikation können die Funktionen des CPU-Modells 110 und des Überwachungsabschnitts 120 durch Hardware implementiert werden.
  • 8 ist ein Konfigurationsdiagramm einer Simulationsvorrichtung 100 gemäß einer Modifikation der Ausführungsform 1.
  • Die Simulationsvorrichtung 100 ist mit einem elektronischen Schaltkreis 909, einem Speicher 921, einer Hilfsspeichervorrichtung 922, einer Eingabeschnittstelle 930 und einer Ausgabeschnittstelle 940 ausgestattet.
  • Der elektronische Schaltkreis 909 ist ein zweckgebundener elektronischer Schaltkreis, der die Funktionen des CPU-Modells 110 und des Überwachungsabschnitts 120 implementiert.
  • Der elektronische Schaltkreis 909 ist konkret ein einzelner Schaltkreis, ein zusammengesetzter Schaltkreis, ein programmierter Prozessor, ein parallelerprogrammierter Prozessor, eine logische IC, eine GA, ein ASIC oder eine FPGA. Man beachte, dass GA eine Kurzbezeichnung für eine Gatteranordnung ist.
  • Die Funktionen des CPU-Modells 110 und des Überwachungsabschnitts 120 können von einem einzigen elektronischen Schaltkreis oder von mehreren elektronischen Schaltkreisen durch Verteilung implementiert werden.
  • Gemäß einer anderen Modifikation können manche Funktionen eines CPU-Modells 110 und eines Überwachungsabschnitts 120 von dem elektronischen Schaltkreis implementiert werden, und die übrigen Funktionen können durch Software implementiert werden.
  • Der Prozessor und der elektronische Schaltkreis werden als Verarbeitungsschaltung bezeichnet. Das heißt, die Simulationsvorrichtung 100, die Funktionen des CPU-Modells 110 und des Überwachungsabschnitts 120 werden von der Verarbeitungsschaltung implementiert.
  • In der Simulationsvorrichtung 100 kann „-abschnitt“ in Befehlsabrufabschnitt, Befehlsausführungsabschnitt, Verarbeitungszeitberechnungsabschnitt, Bestimmungsabschnitt, Verarbeitungszeitänderungsabschnitt, Simulationsausführungsabschnitt und Überwachungsabschnitt jeweils durch „-stadium“ oder „-prozess“ ersetzt werden. Außerdem kann „-prozess“ in Befehlsabrufprozess, Befehlsausführungsprozess, Verarbeitungszeitberechnungsprozess, Bestimmungsprozess, Verarbeitungszeitänderungsprozess, Simulationsausführungsprozess und Überwachungsprozess jeweils durch „-programm“, „-programmprodukt“ oder „computerlesbares Speichermedium, in dem ein Programm aufgezeichnet ist“ ersetzt werden.
  • *** Beschreibung der Wirkungen der Ausführungsform ***
  • In der Simulationsvorrichtung 100 gemäß Ausführungsform 1 ändert der Änderungsabschnitt die Ausführungsverarbeitungszeit des Änderungszielbefehlscodes auf Basis der Änderungseinstellungsinformationen. Der Änderungsabschnitt bezieht dann die Ausführungsverarbeitungszeit, die geändert worden ist, in den Gesamtzeitpunkt der Simulation ein. Somit kann mit der Simulationsvorrichtung 100 eine Differenz des Zeitverhaltens in Bezug auf die Ausführung eines Befehls simuliert werden. In der Simulationsvorrichtung 100 überwacht der Überwachungsabschnitt eine Zeitpunktänderungssituation des internen Status des Zielmodells, das die Differenz des Zeitverhaltens in Bezug auf die Ausführung des Befehls simuliert. Daher wird mit der Simulationsvorrichtung 100 eine Verifikation eines robusten Zeitverhaltens ermöglicht, wodurch eine Prüfqualität unter Berücksichtigung eines Störungselements, wie etwa einer CPU-Lastschwankung und eines Wartens auf Hardware, sichergestellt wird.
  • In der Simulationsvorrichtung 100 gemäß dieser Ausführungsform wird eine arbiträre Verarbeitungseinheit des Zielprogramms der Simulation spezifiziert, und die Ausführungsverarbeitungszeit wird nur für die spezifizierte Verarbeitungseinheit geändert. Da die Simulationsvorrichtung 100 die Einstellungsänderungsinformationen verwendet, ist es möglich, eine Änderung der Ausführungsverarbeitungszeit des Befehls durch eine Verarbeitungseinheit, wie etwa eine Funktion oder Aufgabe einer Software, zu spezifizieren. Ebenso kann in der Simulationsvorrichtung 100 der Simulationszeitpunkt für jede Verarbeitungszeiteinheit gemäß einer arbiträren Änderungsregel geändert werden. Das heißt, in der Simulationsvorrichtung 100 kann eine Verarbeitungszeit von nur einem Teil der Software gemäß einer arbiträren Änderungsregel geändert werden. In der Simulationsvorrichtung 100 verhält sich das gesamte Zielmodell, das ein Simulationsziel ist, synchron entlang der geänderten virtuellen Zeitachse. Auf diese Weise ermöglicht die Simulationsvorrichtung 100 eine Simulation und Verifikation eines Ereignisses wie einer Überlappung in Bezug auf das Zeitverhalten hinsichtlich einer Verarbeitung zwischen Aufgaben und zwischen Software und Hardware. Mit der Simulationsvorrichtung 100 kann somit eine Verifikation eines robusten Zeitverhaltens mit einer einfachen Konfiguration implementiert werden.
  • In der Simulationsvorrichtung 100 gemäß dieser Ausführungsform führt der Überwachungsabschnitt eine Überwachung von Informationen, wie etwa eines Registers, eines Signals und einer internen Variablen einer Software, die von dem Zielmodell simuliert werden, zusätzlich zur Überwachung einer Adresse eines gerade ausgeführten Befehls durch. Ebenso kann in der Simulationsvorrichtung 100 das Überwachungsziel des Zielmodells unter Verwendung von Überwachungszielinformationen im Speicherabschnitt verwaltet werden. Daher kann mit der Simulationsvorrichtung 100 das Überwachungsziel flexibel gemäß einer Anforderung der Simulation eingestellt werden.
  • In dieser Ausführungsform werden die einzelnen Abschnitte der Simulationsvorrichtung als unabhängige Funktionsblöcke beschrieben. Jedoch muss die Konfiguration der Simulationsvorrichtung keine Konfiguration sein wie in der oben beschriebenen Ausführungsform. Die Funktionsblöcke der Simulationsvorrichtung können jede beliebige Konfiguration bilden, solange die in der obigen Ausführungsform beschriebenen Funktionen implementiert werden können.
  • Aus dieser Ausführungsform können mehrere Teile durch Kombination in die Praxis umgesetzt werden. Alternativ dazu kann aus dieser Ausführungsform nur ein Teil in die Praxis umgesetzt werden. Ferner kann diese Ausführungsform ganz oder teilweise durch eine beliebige Kombination in die Praxis umgesetzt werden.
  • Die oben beschriebene Ausführungsform ist ein Beispiel für das, was im Wesentlichen bevorzugt ist, und soll den Bereich der vorliegenden Erfindung, den Bereich eines Anwendungsprodukts der vorliegenden Erfindung und den Bereich der Nutzung der vorliegenden Erfindung nicht beschränken. Verschiedene Änderungen können an der oben beschriebenen Ausführungsform je nach Bedarf durchgeführt werden.
  • Liste der Bezugszeichen
  • 100: Simulationsvorrichtung; 110: CPU-Modell; 111: Befehlsabrufabschnitt; 112: Befehlsausführungsabschnitt; 113: Rechenabschnitt; 114: Bestimmungsabschnitt; 115: Änderungsabschnitt; 116: Simulationsausführungsabschnitt; 120: Überwachungsabschnitt; 130: HW-Modell; 131: Speichermodell; 132: externes IO-Modell; 133: Peripherievorrichtungsmodell; 134: CPU-Busmodell; 140: Speicherabschnitt; 210: Zielprogramm; 220: Befehlsspeicher; 221: Befehlscode; 230: Änderungseinstellungsinformationen; 231: Verarbeitungseinheitsname; 232: Startadresse; 233: Endadresse; 234: Größe; 235: Änderungsregel; 240: Gesamtzeitpunkt; 250: Überwachungszielinformationen; 251: Überwachungszielmodell; 252: Statusinformationen; 253: Erwartungswert; 909: elektronischer Schaltkreis; 910: Prozessor; 921: Speicher; 922: Hilfsspeichervorrichtung; 930: Eingabeschnittstelle; 940: Ausgabeschnittstelle; S100: Simulationsprozess.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • 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.
  • Zitierte Patentliteratur
    • JP 2000267889 A [0004]

Claims (9)

  1. Simulationsvorrichtung, die eine Simulation einer Ausführung eines Zielprogramms in einem Zielmodell ausführt, das in eine virtuelle Umgebung eingebaut ist, wobei das Zielprogramm eine Verarbeitungseinheit einschließt, die mehrere Befehlscodes umfasst, wobei die Simulationsvorrichtung umfasst: einen Rechenabschnitt zum Berechnen einer Ausführungsverarbeitungszeit, die nötig ist, um die einzelnen Befehlscodes der Vielzahl von Befehlscodes auszuführen; einen Speicherabschnitt, um Änderungseinstellungsinformationen zu speichern, in denen die Verarbeitungseinheit und eine Änderungsregel, die Ausführungsverarbeitungszeiten für die mehreren in der Verarbeitungseinheit enthaltenen Befehlscodes ändert, eingestellt sind, einen Änderungsabschnitt, um die Ausführungsverarbeitungszeit gemäß der Änderungsregel, die in den Änderungseinstellungsinformationen eingestellt ist, in eine geänderte Verarbeitungszeit zu ändern, und um die geänderte Verarbeitungszeit für jeden Befehlscode von der Vielzahl von Befehlscodes in einen Gesamtzeitpunkt einzubeziehen, der die Zeitpunkteinstellung der Simulation angibt; einen Simulationsausführungsabschnitt, um die Simulation des Zielprogramms unter Verwendung des Gesamtzeitpunkts auszuführen; und einen Überwachungsabschnitt, um einen Status des Zielmodells während der Ausführung der Simulation zu überwachen.
  2. Simulationsvorrichtung nach Anspruch 1, wobei das Zielprogramm mehrere Verarbeitungseinheiten aufweist, wobei von den mehreren Verarbeitungseinheiten eine Verarbeitungseinheit, deren Ausführungsverarbeitungszeit geändert werden soll, in den Änderungseinstellungsinformationen eingestellt wird, wobei die Simulationsvorrichtung umfasst: einen Befehlsabrufabschnitt, um einen Befehlscode aus einem Befehlsspeicher abzurufen, der die Vielzahl von Befehlscodes speichert, aus denen die mehreren Verarbeitungseinheiten jeweils gebildet sind; und einen Bestimmungsabschnitt zum Bestimmen, ob der vom Befehlsabrufabschnitt abgerufene Befehlscode in der Verarbeitungseinheit enthalten ist, die in den Änderungseinstellungsinformationen eingestellt ist, und wobei dann, wenn der vom Befehlsabrufabschnitt abgerufene Befehlscode in der Verarbeitungseinheit enthalten ist, die in den Änderungseinstellungsinformationen eingestellt ist, der Änderungsabschnitt die Ausführungsverarbeitungszeit gemäß der Änderungsregel ändert, die in den Änderungseinstellungsinformationen eingestellt ist.
  3. Simulationsvorrichtung nach Anspruch 2, wobei die Änderungseinstellungsinformationen einen Namen der Verarbeitungseinheit, eine Startadresse der Verarbeitungseinheit im Befehlsspeicher und eine Endadresse der Verarbeitungseinheit im Befehlsspeicher einschließen, und wobei dann, wenn die Adresse des Befehlscodes im Befehlsspeicher zwischen der Startadresse und der Endadresse enthalten ist, und der Befehlscode vom Befehlsabrufabschnitt abgerufen wird, der Bestimmungsabschnitt bestimmt, dass dieser Befehlscode in der Verarbeitungseinheit enthalten ist, die in den Änderungseinstellungsinformationen eingestellt ist.
  4. Simulationsvorrichtung nach Anspruch 2, wobei in den Änderungseinstellungsinformationen ein Name der Verarbeitungseinheit und ein Bereich eines Änderungszeitpunkts eingestellt werden, und wobei dann, wenn ein Zeitpunkt für die Ausführung des Befehlscodes, der vom Befehlsabrufabschnitt abgerufen worden ist, im Bereich des Änderungszeitpunkts der Änderungseinstellungsinformationen enthalten ist, der Bestimmungsabschnitt bestimmt, dass der Befehlscode in der Verarbeitungseinheit enthalten ist, die in den Änderungseinstellungsinformationen eingestellt ist.
  5. Simulationsvorrichtung nach einem der Ansprüche 1 bis 4, wobei die Änderungseinstellungsinformationen die Änderungsregel durch einen positiven/negativen Multiplikationsfaktor oder einen positiven/negativen festen Wert spezifizieren.
  6. Simulationsvorrichtung nach einem der Ansprüche 1 bis 5, wobei der Speicherabschnitt Überwachungszielinformationen speichert, in denen ein Überwachungszielmodell, das ein Überwachungsziel in dem Zielmodell, Statusinformationen, die einen Status des Überwachungszielmodells angeben, und ein Erwartungswert der Statusinformationen ist, eingestellt sind, und wobei der Überwachungsabschnitt Zeitpunktänderungssituation der Statusinformationen des Überwachungszielmodells auf Basis der Überwachungszielinformationen überwacht und ein Überwachungsergebnis ausgibt.
  7. Simulationsvorrichtung nach Anspruch 6, wobei als die Statusinformationen des Überwachungszielmodells ein Name einer internen Variablen einer Software, ein Registername, ein Signalname oder eine Adresse in den Überwachungszielinformationen eingestellt wird/werden.
  8. Simulationsverfahren einer Simulationsvorrichtung, die eine Simulation einer Ausführung eines Zielprogramms in einem Zielmodell, das in eine virtuelle Umgebung eingebaut ist, durchführt, wobei das Zielprogramm eine Verarbeitungseinheit aufweist, die mehrere Befehlscodes umfasst, wobei die Simulationsvorrichtung einen Speicherabschnitt umfasst, um Änderungseinstellungsinformationen zu speichern, in denen die Verarbeitungseinheit und eine Änderungsregel, die Ausführungsverarbeitungszeiten für die mehreren in der Verarbeitungseinheit enthaltenen Befehlscodes ändert, eingestellt sind, wobei das Simulationsverfahren umfasst: Berechnen einer Ausführungsverarbeitungszeit, die nötig ist, um die einzelnen Befehlscodes der Vielzahl von Befehlscodes auszuführen; Ändern der Ausführungsverarbeitungszeit in eine geänderte Verarbeitungszeit gemäß der Änderungsregel, die in den Änderungseinstellungsinformationen eingestellt ist, und Einbeziehen der geänderten Verarbeitungszeit für jeden Befehlscode von der Vielzahl von Befehlscodes in einen Gesamtzeitpunkt, der die Zeitpunkteinstellung der Simulation angibt; Ausführen der Simulation des Zielprogramms unter Verwendung des Gesamtzeitpunkts; und Überwachen eines Status des Zielmodells während der Ausführung der Simulation.
  9. Simulationsprogramm einer Simulationsvorrichtung, die eine Simulation einer Ausführung eines Zielprogramms in einem Zielmodell ausführt, das in eine virtuelle Umgebung eingebaut ist, wobei das Zielprogramm eine Verarbeitungseinheit aufweist, die mehrere Befehlscodes umfasst, wobei die Simulationsvorrichtung einen Speicherabschnitt umfasst, um Änderungseinstellungsinformationen zu speichern, in denen die Verarbeitungseinheit und eine Änderungsregel, die Ausführungsverarbeitungszeiten für die mehreren in der Verarbeitungseinheit enthaltenen Befehlscodes ändert, eingestellt sind, wobei das Simulationsprogramm die Simulationsvorrichtung, die ein Computer ist, dazu veranlasst, folgendes auszuführen: einen Rechenprozess zum Berechnen einer Ausführungsverarbeitungszeit, die nötig ist, um die einzelnen Befehlscodes der Vielzahl von Befehlscodes auszuführen; einen Änderungsprozess, um die Ausführungsverarbeitungszeit gemäß der Änderungsregel, die in den Änderungseinstellungsinformationen eingestellt ist, in eine geänderte Verarbeitungszeit zu ändern, und um die geänderte Verarbeitungszeit für jeden Befehlscode von der Vielzahl von Befehlscodes in einen Gesamtzeitpunkt einzubeziehen, der die Zeitpunkteinstellung der Simulation angibt; einen Simulationsausführungsprozess, um die Simulation des Zielprogramms unter Verwendung des Gesamtzeitpunkts auszuführen; und einen Überwachungsprozess, um einen Status des Zielmodells während der Ausführung der Simulation zu überwachen.
DE112017008061.4T 2017-11-10 2017-11-10 Simulationsvorrichtung, simulationsverfahren und simulationsprogramm Pending DE112017008061T5 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/040605 WO2019092849A1 (ja) 2017-11-10 2017-11-10 シミュレーション装置、シミュレーション方法およびシミュレーションプログラム

Publications (1)

Publication Number Publication Date
DE112017008061T5 true DE112017008061T5 (de) 2020-06-18

Family

ID=66439099

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112017008061.4T Pending DE112017008061T5 (de) 2017-11-10 2017-11-10 Simulationsvorrichtung, simulationsverfahren und simulationsprogramm

Country Status (6)

Country Link
US (1) US11106478B2 (de)
JP (1) JP6667733B2 (de)
CN (1) CN111295658B (de)
AU (1) AU2017438670B2 (de)
DE (1) DE112017008061T5 (de)
WO (1) WO2019092849A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11025544B2 (en) * 2019-06-07 2021-06-01 Intel Corporation Network interface for data transport in heterogeneous computing environments
CN113238491B (zh) * 2021-04-12 2023-05-05 湖南三一智能控制设备有限公司 执行机构的仿真测试方法、装置、智能臂架及工程车辆

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000267889A (ja) 1999-03-15 2000-09-29 Hitachi Ltd ソフトウェアのシミュレーション検証方式

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02118848A (ja) 1988-10-28 1990-05-07 Nec Corp 計算機装置
JP2929259B2 (ja) * 1993-12-27 1999-08-03 株式会社山武 コントローラ
JPH09198282A (ja) * 1996-01-19 1997-07-31 Matsushita Electric Works Ltd コンピュータ性能評価システム及び評価方法
JPH10161906A (ja) 1996-11-29 1998-06-19 Toshiba Corp ソフトウェア実行装置及びソフトウェア実行方法
JPH10221410A (ja) 1997-02-07 1998-08-21 Mitsubishi Electric Corp Lsiの自動論理検証方式
JPH10240582A (ja) * 1997-03-03 1998-09-11 Toshiba Corp 計算機システムの性能評価方法及び装置
US6067604A (en) 1997-08-11 2000-05-23 Compaq Computer Corporation Space-time memory
JPH11232136A (ja) 1998-02-17 1999-08-27 Ricoh Co Ltd オブジェクト指向ソフトウエア開発支援装置
JP2001282327A (ja) 2000-03-31 2001-10-12 Omron Corp シミュレーションシステム及びシミュレータ並びに管理サーバ及び記録媒体
JP2007011720A (ja) 2005-06-30 2007-01-18 Sharp Corp システムシミュレータ、システムシミュレート方法、制御プログラムおよび可読記録媒体
DE102006059829A1 (de) 2006-12-15 2008-06-19 Slawomir Suchy Universalcomputer
JP2008262318A (ja) 2007-04-11 2008-10-30 Fujitsu Ten Ltd ソフトウェア評価装置及びその信号モニタ方法
US8560985B1 (en) * 2007-06-07 2013-10-15 Cadence Design Systems, Inc. Configuration-based merging of coverage data results for functional verification of integrated circuits
US8494832B2 (en) * 2007-06-20 2013-07-23 Sanjeev Krishnan Method and apparatus for software simulation
JP2009157456A (ja) 2007-12-25 2009-07-16 Toshiba Corp プログラム検証装置、プログラム検証方法、検証プログラム
JP2010128722A (ja) 2008-11-26 2010-06-10 Canon Inc シミュレーションシステム、シミュレーション方法及びプログラム
JP2010244183A (ja) 2009-04-02 2010-10-28 Nec Corp 装置検査システム、装置検査方法、装置検査プログラム
JP5114623B2 (ja) * 2009-12-17 2013-01-09 京楽産業.株式会社 遊技機、中間部、周辺基板、認証方法及び認証プログラム
JP5454349B2 (ja) 2010-05-12 2014-03-26 富士通セミコンダクター株式会社 性能推定装置
CN103109491B (zh) * 2010-09-15 2015-07-15 三菱电机株式会社 通信装置及延迟检测方法
JP5278624B2 (ja) * 2010-10-12 2013-09-04 富士通株式会社 シミュレーション装置,方法,およびプログラム
JP6051546B2 (ja) * 2012-03-15 2016-12-27 オムロン株式会社 情報処理装置、シミュレーション方法、およびプログラム
DE102013100799A1 (de) * 2012-12-21 2014-06-26 Endress + Hauser Flowtec Ag Umformerschaltung mit einer Stromschnittstelle sowie Meßgerät mit einer solchen Umformerschaltung
US9201989B2 (en) * 2013-01-25 2015-12-01 Globalfoundries Inc. Interpolation techniques used for time alignment of multiple simulation models
US10733331B2 (en) 2015-03-11 2020-08-04 Nec Corporation Information processing apparatus, information processing method, and recording medium
JP2017084082A (ja) 2015-10-27 2017-05-18 富士電機株式会社 シミュレーション装置、試験シナリオファイル作成方法、及び試験シナリオファイルを用いた試験方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000267889A (ja) 1999-03-15 2000-09-29 Hitachi Ltd ソフトウェアのシミュレーション検証方式

Also Published As

Publication number Publication date
JP6667733B2 (ja) 2020-03-18
CN111295658A (zh) 2020-06-16
AU2017438670B2 (en) 2020-07-23
US11106478B2 (en) 2021-08-31
US20200257545A1 (en) 2020-08-13
CN111295658B (zh) 2023-05-09
AU2017438670A1 (en) 2020-05-07
JPWO2019092849A1 (ja) 2020-04-02
WO2019092849A1 (ja) 2019-05-16

Similar Documents

Publication Publication Date Title
EP1720100B1 (de) Verfahren und Vorrichtung zur Emulation einer programmierbaren Einheit
DE102010028259A1 (de) Mikrocontroller mit einer Recheneinheit und einer Logikschaltung sowie Verfahrung zur Durchführung von Rechnungen durch einen Mikrocontroller für eine Regelung oder eine Steuerung in einem Fahrzeug
DE102007006190A1 (de) Techniken zur Verwendung von Speicher-Attributen
DE102017123054A1 (de) Verfahren und System zur System-On-Chip-Integritätsverifizierung
DE112016006297T5 (de) Testfall-Erzeugungsvorrichtung und Testfall-Erzeugungsprogramm
DE102006019292A1 (de) Modellieren programmierbarer Einrichtungen
DE112014000340T5 (de) Vorablesezugriff auf Daten für einen Chip mit einem übergeordneten Kern und einem Scout-Kern
DE112017004837T5 (de) Systeme und Verfahren zum Differenzieren von Funktionsleistung nach Eingabeparametern
DE102018104070A1 (de) System und verfahren zur auswahl einer computerplattform
DE112015007179T5 (de) Informationsverarbeitungsvorrichtung, Informationsverarbeitungsverfahren und Informationsverarbeitungsprogramm
DE112017008061T5 (de) Simulationsvorrichtung, simulationsverfahren und simulationsprogramm
DE19960574B4 (de) Peripheral Component Interconnection-(PCI) Debuggingvorrichtung und -verfahren
DE112005003216T5 (de) System und Verfahren für Steuerregister, auf die über private Rechenoperationen zugegriffen wird
WO2015086357A1 (de) Verfahren zur beeinflussung eines steuerprogramms eines steuergeräts
DE102012221253A1 (de) Gleitkomma-Ereigniszähler mit automatischer Vorteilung
EP2899652A1 (de) Verfahren zur Einsatzoptimierung programmierbarer Logikbausteine in Steuerungsgeräten für Fahrzeuge
DE112017003822T5 (de) Automatische hardware-zlw-einführung für ipu-bildströme
DE112017006932T5 (de) Simulationseinrichtung, Simulationsverfahren und Simulationsprogramm
DE112011104859T5 (de) Log-Aufzeichnungsvorrichtung
EP3848763B1 (de) Qualifizierung eines gerätetreibers für ein gerät
DE112017006454T5 (de) Computervorrichtung, Aufgabeneinleitungsverfahren und Aufgabeneinleitungsprogramm
DE102015114721B4 (de) Verfahren, Gerät und System zur Datenverarbeitung
DE102017108216A1 (de) Steuersystem und Verfahren des Speicherzugriffs
DE102017108219A1 (de) Steuersystem und Verfahren des Speicherzugriffs
DE112018006331B4 (de) Testfallgenerierungsvorrichtung, Testfallgenerierungsverfahren und Testfallgenerierungsprogramm

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0017500000

Ipc: G06F0030330000

R016 Response to examination communication
R084 Declaration of willingness to licence