-
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
-