DE10213837A1 - Systemsimulator, Simulationsverfahren und Simulationsprogramm - Google Patents
Systemsimulator, Simulationsverfahren und SimulationsprogrammInfo
- Publication number
- DE10213837A1 DE10213837A1 DE10213837A DE10213837A DE10213837A1 DE 10213837 A1 DE10213837 A1 DE 10213837A1 DE 10213837 A DE10213837 A DE 10213837A DE 10213837 A DE10213837 A DE 10213837A DE 10213837 A1 DE10213837 A1 DE 10213837A1
- Authority
- DE
- Germany
- Prior art keywords
- master
- manager
- slave
- simulator
- path
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Der Systemsimulator umfasst Mastersimulatoren (1f, 1s, 2f und 2s) zum Simulieren eines Bus-Masters, einen Slave-Simulator (L) zum Simulieren eines Bus-Slave, einen Funktionsmanager (F) zum aufeinanderfolgenden Betätigen des Mastersimulators (1f, 1s, 2f und 2s) und des Slave-Simulators (L) durch Verwendung eines Funktionsaufrufs und einen Pfadmanager (S) zum Betätigen des Mastersimulators (1f, 1s, 2f und 2s) durch Verwendung von Pfadumschaltung. Wenn der durch Verwendung des Funktionsaufrufs von dem Funktionsmanager (F) aktivierte Mastersimulator (1f, 1s, 2f und 2s) auf den Slave-Simulator (L) zugreift und eine Zugriffsblockierung verursacht wird, steuert der Mastersimulator (1f, 1s, 2f und 2s) den Pfadmanager (S) derart, dass der Mastersimulator (1f, 1s, 2f und 2s) durch Verwendung der Pfadumschaltung aktiviert wird, die durch den Pfadmanager (S) ausgeführt wird. Auf diese Weise ist es möglich, die Simulation bei einer hohen Geschwindigkeit auszuführen, ohne in einen Verklemmungszustand [Deadlock] zu geraten, der durch Zugriffsblockierung verursacht wird, und ohne Änderung des Simulators zum Simulieren eines konventionellen Bus-Masters.
Description
Die vorliegende Erfindung betrifft einen Systemsimulator, ein Simulationsverfahren und
ein Simulationsprogramm. Genauer ausgedrückt, betrifft die vorliegende Erfindung eine
Technik zum Simulieren eines solchen Systems, bei dem ein Bus-Master und ein Bus-
Slave miteinander durch einen Bus verbunden sind.
Konventionell ist als ein Gerät, an das ein Mikroprozessor angelegt wird, ein solches Sys
tem bekannt, bei dem ein Bus-Master (im folgenden lediglich als "Master" bezeichnet) und
ein Bus-Slave (im folgenden lediglich als "Slave" bezeichnet) miteinander durch einen Bus
verbunden sind. Die für dieses System angewendete Software wird typischerweise durch
Verwendung der Hardware entwickelt, nachdem die Hardwareumgebung zum Bedienen
der Software hergestellt ist, mit anderen Worten, nach Abschluss der Entwicklung der
Hardware.
Bei dem oben genannten konventionellen Entwicklungsverfahren wird jedoch eine lange
Zeit zum Entwickeln des Systems benötigt. Deshalb wird seit kurzem zum Verringern der
Entwicklungszeitspanne ein solches Entwicklungsverfahren verwendet, dass die Entwick
lung der Software auf einem Systemsimulator durchgeführt wird. Durch Verwendung die
ses Verfahrens kann die Entwicklung der Software parallel mit der Entwicklung der Hard
ware durchgeführt werden. Als Ergebnis kann die Entwicklungszeitspanne verkürzt wer
den.
Fig. 1 zeigt eine Konfiguration eines konventionellen Systemsimulators (im folgenden als
"Systemsimulator gemäß einer ersten konventionellen Technik" bezeichnet), der für die
Entwicklung der Software verwendet wird. Dieser Systemsimulator umfasst einen ersten
Master, einen zweiten Master, einen Slave und einen Manager.
Der erste Master ist ein Simulator, der aus einem Programm zum Simulieren einer Opera
tion einer als ein Master verwendeten Einrichtung so wie einer CPU und DMA besteht.
Der zweite Master ist ein anderer Simulator, der aus einem Programm zum Simulieren
einer als der Master verwendeten anderen Einrichtung besteht. Der Slave ist ein Simulator,
der aus einem Programm zum Simulieren einer als ein Slave verwendeten Peripherie
schaltung so wie ein Zeitglied, ein serieller Eingangausgangsanschluss, ein gewöhnlicher
Eingangsausgangsanschluss und ein Speicher besteht. Der Manager ist das Steuerpro
gramm zum Bedienen des ersten Masters, des zweiten Masters und des Slave synchron
miteinander.
Der Systemsimulator gemäß der ersten konventionellen Technik mit der oben genannten
Konfiguration wird verwendet, um die Korrektheit des Programm nachzuprüfen, das in
jedem des ersten Masters, des zweiten Masters und des Slave enthalten ist.
Bei dem Systemsimulator gemäß dieser ersten konventionellen Technik schreitet die Si
mulation fort, während der Manager nacheinander einen Funktionsaufruf an den ersten
Master, den zweiten Master und den Slave durchführt. Genau ausgedrückt, führt der Ma
nager zuerst den Funktionsaufruf an den ersten Master durch. Dementsprechend führt der
ersten Master einen Prozess entsprechend einem Takt aus. Wenn zum Beispiel das Ziel des
Funktionsaufrufs eine in einem Takt abzuschließende Anweisung ist, wird die Ausführung
der Anweisung durchgeführt. Danach wird die Steuerung zu dem Manager zurückgeführt.
Wenn das Ziel des Funktionsaufrufs eine Anweisung ist, die eine Mehrzahl von Takten
erfordert, wird die Steuerung nach Abschluss eines dem einen Takt entsprechenden Pro
zesses zu dem Manager zurückgeführt.
Als nächstes führt der Manager den Funktionsaufruf an den zweiten Master durch, ähnlich
zu dem oben genannten Fall. Anschließend führt der Manager den Funktionsaufruf an den
Slave durch. Danach wird die Simulation dadurch vorgerückt, dass dieser Funktionsaufruf
an den ersten Master → den zweiten Master → den Slave → den ersten Master →. . . . zy
klisch durchgeführt wird. Es soll festgestellt werden, dass, wenn das Ziel des Funktions
aufrufs die Anweisung ist, die die Mehrzahl von Takten benötigt, die Ausführung der An
weisung durch Ausführung der Mehrzahl von Funktionsaufrufen bis zu dem Ziel vervoll
ständigt wird.
Wie oben beschrieben, führen der erste Master, der zweite Master und der Slave nachei
nander den Prozess aus, der dem einen Takt für jede Ausführung des Funktionsaufrufs von
dem Manager entspricht. Daher werden der erste Master, der zweite Master und der Slave
bedient, als wenn sie synchron mit dem Takt sind. Das heißt, es kann angenommen wer
den, dass der erste Master, der zweite Master und der Slave derart bedient werden, dass die
Betriebszeitabläufe von dem Manager gegeben werden. Folglich ist es möglich, die Simu
lation durchzuführen, in der die Betriebszeitabläufe berücksichtigt werden.
Fig. 2 zeigt eine Konfiguration eines anderen konventionellen Systemsimulators (im fol
genden als "Systemsimulator gemäß einer zweiten konventionellen Technik" bezeichnet),
der ein Semaphor als einen Synchronisiermechanismus zum Synchronisieren einer Mehr
zahl von Simulatoren miteinander verwendet. Der Systemsimulator gemäß der zweiten
konventionellen Technik führt immer einen Mehrpfadbetrieb aus.
Der Systemsimulator gemäß dieser zweiten konventionellen Technik umfasst einen ersten
Master, einen zweiten Master, einen Slave, einen Manager und einen Bus. Der erste Mas
ter, der zweite Master, der Slave und der Manager weisen jeweils ähnliche Funktionen wie
diejenigen des oben genannten konventionellen Systemsimulators gemäß der ersten kon
ventionellen Technik auf. Der Bus ist der Simulator zum Simulieren der Operation des
Busses, wenn der erste Master und der zweite Master auf den Slave zugreifen.
In Fig. 2 kennzeichnen Symbole "o" in dem ersten Master, dem zweiten Master, dem Ma
nager und dem Bus die Semaphore. Ein Symbol "P" kennzeichnet eine Ausführung einer
Eingabe, ein Symbol "W" kennzeichnet eine Ausführung eines Wartevorgangs, und eine
Symbol "T" kennzeichnet eine Ausführung eines Warteversuchs. Der Warteversuch ist
eine Funktion der Durchführung einer Anfrage an den Bus. Der Systemsimulator gemäß
dieser zweiten konventionellen Technik wird so gesteuert, um nur einen des ersten Mas
ters, des zweiten Masters und des Managers gleichzeitig zu aktivieren.
Grundlegend führt der Manager die Eingabe "P" an das Semaphor des ersten Masters und
des zweiten Masters aus (im folgenden können sie lediglich gemeinsam als "Master" be
zeichnet werden) und aktiviert dadurch den Pfad des Masters, und der Manager tritt in den
Warte-Zustand "W" ein. Ferner führt der Master die Eingabe "P" an das Semaphor des
Managers aus, und führt dadurch die Steuerung zurück zum Manager, und der Master
selbst tritt in den Warte-Zustand "W" ein. Der Slave wird aktiviert, wenn der Manager den
Funktionsaufruf an den Slave ausführt, ähnlich zu dem Systemsimulator gemäß der ersten
konventionellen Technik.
Die tatsächlichen Operationen des Systemsimulators gemäß dieser zweiten konventionel
len Technik sollen im folgenden unter Bezugnahme auf die Fig. 3 bis 5 beschrieben
werden.
Fig. 3 ist ein Erklärungsdiagramm, das die Übertragungsoperation zwischen dem Manager
und dem ersten Master zeigt. Gestrichelte Linien zeigen den Fluss der Steuerung an. Der
Manager führt zuerst die Eingabe an das Semaphor des ersten Masters durch, und der Ma
nager selbst tritt in den Wartezustand ein. Diese Eingabeoperation aktiviert den Pfad des
ersten Masters, der sich im Wartezustand befindet, und der Warteversuch wird am Sema
phor des Busses durchgeführt. Dann, wenn dieser Warteversuch nicht erfolgreich ist, führt
der ersten Master die Eingabe an das Semaphor des Managers aus, und der erste Master
tritt in den Wartezustand ein.
Fig. 4 ist ein Erklärungsdiagramm, das die Übertragungsoperation zwischen dem Manager
und dem zweiten Master zeigt. Gestrichelte Linien zeigen die Fluss der Steuerung an.
Wenn die Steuerung wie oben erwähnt dadurch an den Manager übertragen wird, dass der
erste Master die Eingabe an das Semaphor des Managers ausführt, führt der Manager dann
die Eingabe an das Semaphor des zweiten Masters durch, und der Master selbst tritt in den
Wartezustand ein. Diese Eingabeoperation aktiviert den Pfad des zweiten Masters, der sich
im Wartezustand befindet, und der Warteversuch wird an dem Semaphor des Busses
durchgeführt. Wenn dieser Versuch nicht erfolgreich ist, führt der zweite Manager die Ein
gabe an das Semaphor des Managers aus, und der zweite Master tritt in den Wartezustand
ein.
Fig. 5 ist ein Erklärungsdiagramm, das die Übertragungsoperation zwischen dem Manager
und dem Slave zeigt. Gestrichelte Linien geben den Fluss der Steuerung an. Wenn die
Steuerung wie oben erwähnt dadurch zu dem Manager übertragen wird, dass der zweite
Master die Eingabe an das Semaphor des Managers ausführt, führt der Manager dann den
Funktionsaufruf an den Slave durch. Wenn der Slave bei einem Zustand reaktionsfähig auf
eine Zugriffsanfrage von dem ersten Master und dem zweiten Master wird, führt der Slave
die Eingabe an das Semaphor des Busses durch. Dies impliziert, dass die durch den ersten
und zweiten Master durchgeführten nächsten Warteversuche erfolgreich sind. Danach wird
die Steuerung vom Slave zum Manager zurückgeführt. Anschließend werden die oben ge
nannten Operationen wiederholt.
Wie oben erwähnt, führen der erste und zweite Master, während der Durchführung der
Pfadumschaltung, nacheinander den Prozess durch, der dem einen Takt in jedem Pfad ent
spricht, und der Slave führt den Prozess aus, der dem einen Takt für jede Durchführung des
Funktionsaufrufs von dem Manager entspricht. Daher werden der erste Master, der zweite
Master und der Slave betätigt, als wenn sie mit dem Takt synchron sind. Folglich ist es
möglich, die Simulation auszuführen, bei der die Betriebszeitabläufe berücksichtigt wer
den.
In diesen System gemäß der zweiten konventionellen Technik gibt es, wenn der Master
auf den Slave zugreift, selbst wenn eine Zugriffsblockierung erfolgt, nämlich selbst dann,
wenn der Master in dem Warteversuch des Busses versagt, keinen Fall, dass der Master
fortfährt, auf die Reaktion zu warten. Daher gibt es keinen Fall, dass dieser Systemsimu
lator in einen Verklemmungszustand [Deadlock] gerät.
Als eine verwandte Technik offenbart die japanische offengelegte Patentanmeldung (JP-A-
Heisei 11-296408) einen Softwarelogiksimulator für ein zusammengebautes Gerät. Dieser
Softwarelogiksimulator kann eine Simulation für Hardware durch eine Vielzahl von An
wendungen erreichen und eine Verkettungsoperation zwischen ihnen durchführen und da
durch die Beschreibung der Hardwareoperationen vereinfachen und ferner eine Fehler
sucheffizienz von Software verbessern. Diesem Simulator zufolge ist es möglich, wenn die
Fehlersuchoperation in Verkettung zwischen Hardwaresimulator und der Software durch
geführt wird, die Probleme zu lösen, dass die Geschwindigkeit der Simulation der Hard
wareoperation sehr langsam ist und dass die Beschreibung der Hardware einen Defekt
aufweist.
Der Systemsimulator gemäß der ersten konventionellen Technik birgt jedoch das folgende
Problem. Das heißt, das Programm des Masters enthält die Anweisung, auf den Slave zu
zugreifen. Wenn der Master diese Anweisung ausführt, wenn der Slave auf diese innerhalb
einer dem einen Takt entsprechenden Zeit antworten kann, tritt kein Problem auf. Die
meisten der Slaves benötigen jedoch mehrere Takte für die Antwort. Das oben genannte
Phänomen, dass der Slave nicht sofort auf den Zugriff von dem Master antworten kann,
wird als "Zugriffsblockierung" bezeichnet. Die Zugriffsblockierung umfasst eine Lesern
griffsblockierung und eine Schreibzugriffsblockierung.
Wenn die Zugriffsblockierung auftritt, tritt der Master in den Wartezustand zum Warten
auf die Antwort von dem Slave ein, und die Steuerung wird nicht zum Manager zurückge
führt. Folglich wird der Takt nicht dem Slave zugeführt. Daher setzt der Master weiter den
Wartezustand fort, und der Systemsimulator gerät in den Verklemmungszustand.
Dieses Problem kann durch derartiges Ändern der Spezifikation des Slave auf dem Sys
temsimulator gelöst werden, dass die Antwort in einem Takt zurückgeführt wird. Da bei
diesem Ansatz jedoch die Spezifikation des Slave auf dem Systemsimulator sich von der
jenigen des tatsächlichen Slave unterscheidet, ist es unmöglich, die Simulation durch Be
rücksichtigen des Betriebszeitablaufs durchzuführen. Das oben genannte Problem kann
auch durch derartige Auslegung des Programms des Masters gelöst werden, dass der sich
im Warte zustand zum Warten auf die Antwort von dem Slave befindende Master gezwun
genermaßen die Steuerung zum Manager zurückführt. Bei diesem Ansatz ist es jedoch er
forderlich, das konventionelle Programm des Masters neu auszulegen. Wenn es neu aus
gelegt ist, wird außerdem die Struktur des Programms komplex. Daher erfordert die Ent
wicklung des Programms des Masters eine große Anzahl von Schritten.
Der Systemsimulator gemäß der zweiten konventionellen Technik gerät nicht in den Ver
klemmungszustand. Er birgt jedoch das folgende Problem. Dies besteht darin, dass bei
diesem Systemsimulator das Pfadumschalten immer unter der Steuerung eines Pfadkon
trollers durchgeführt wird. Daher verursacht diese Pfadumschaltung das Auftreten einer
Verlustzeit. Die Größe der Verlustzeit wird abhängig von dem im Master installierten Pro
gramm bestimmt. Der Messung durch die Ertmder der vorliegenden Erfindung zufolge; ist
die Simulationszeit des Systemsimulators gemäß der zweiten konventionellen Technik
gleich etwa dem 20- bis 40-fachen der Simulationszeit des Systemsimulators gemäß der
ersten konventionellen Technik.
Deshalb besteht eine Aufgabe der vorliegenden Erfindung in der Schaffung eines System
simulators, eines Simulationsverfahrens und eines Simulationsprogramms, die eine Simu
lation bei einer hohen Geschwindigkeit ausführen können, ohne in einen Verklemmungs
zustand zu geraten und ohne einen Simulator zum Simulieren eines konventionellen Bus-
Masters zu ändern.
Mittel zum Lösen der Aufgabe sollen im folgenden unter Verwendung von Bezugsziffern
und Symbolen beschrieben werden, die in "Ausführungsformen der Erfindung" verwendet
werden. Diese Bezugsziffern und Symbole werden hinzugefügt, so dass der Bezug zwi
schen der Beschreibung von "Umfang des zu beanspruchenden Patents" und der Beschrei
bung von "Ausführungsformen der Erfindung" verdeutlicht wird. Es ist jedoch nie erlaubt,
die Bezugsziffern und Symbole für die Interpretation der technischen Umfänge der in
"Umfang des zu beanspruchenden Patent" beschriebenen Erfindungen und der Beschrei
bung von "Ausführungsformen der Erfindung" zu verwenden.
Zum Lösen der oben genannten Aufgabe umfasst ein Systemsimulator gemäß einem ersten
Aspekt der vorliegenden Erfindung einen Mastersimulator (1f, 1s, 2f und 2s), einen Slave-
Simulator (F), einen Funktionsmanager (F) und einen Pfadmanager (S). Der Mastersimu
lator (1f, 1s, 2f und 2s) simuliert einen Bus-Master. Der Slave-Simulator (L) simuliert ei
nen Bus-Slave. Der Funktionsmanager (F) aktiviert nacheinander den Mastersimulator (1f,
1s, 2f und 2s) und den Slave-Simulator (L) durch Verwendung eines Funktionsaufrufs. Der
Pfadmanager (S) aktiviert den Mastersimulator (1f, 1s, 2f und 2s) durch Verwendung einer
Pfadumschaltung. Wenn der durch Verwendung des Funktionsaufrufs von dem Funkti
onsmanager (F) aktivierte Mastersimulator (1f, 1s, 2f und 2s) bei diesem Systemsimulator
auf den Slave-Simulator (L) zugreift und eine Zugriffsblockierung verursacht wird, steuert
der Mastersimulator (1f, 1s, 2f und 2s) den Pfadmanager (S) derart, dass der Mastersimu
lator (1f, 1s, 2f und 2s) durch Verwendung der durch den Pfadmanager (S) durchgeführten
Pfadumschaltung aktiviert wird.
Dieser Systemsimulator kann derart ausgelegt sein, dass der Pfadmanager (S) weiter den
Slave-Simulator (L) durch Verwendung des Funktionsaufrufs aktiviert. Ferner steuert der
Pfadmanager (S) nach Aufhebung der Zugriffsblockierung den Funktionsmanager (F) der
art, dass der Mastersimulator (1f, 1s, 2f und 2s) durch Verwendung des Funktionsaufrufs
aktiviert wird.
Zum Lösen der oben genannten Aufgabe, umfasst ein Simulationsverfahren gemäß einem
zweiten Aspekt der vorliegenden Erfindung die folgenden Schritte: (1) Vorsehen eines
Mastersimulators (1f, 1s, 2f und 2s) zum Simulieren eines Bus-Masters und eines Slave-
Simulators (L) zum Simulieren eines Bus-Slave, (2) nacheinander Aktivieren des Master
simulators (1f, 1s, 2f und 2s) und des Slave-Simulators (L) durch Verwendung eines
Funktionsaufrufs und (3) Betätigen des Mastersimulators (1f, 1s, 2f und 2s) durch Ver
wendung einer Pfadumschaltung, wenn der durch Verwendung des Funktionsaufrufs akti
vierte Mastersimulator (1f, 1s, 2f und 2s) auf den Slave-Simulator (L) zugreift und eine
Zugriffsblockierung verursacht.
Dieses Simulationsverfahren kann derart ausgelegt werden, dass der Schritt (3) ferner den
Slave-Simulator (L) durch Verwendung des Funktionsaufrufs aktiviert. Weiter umfasst das
Simulationsverfahren die Betätigung des Mastersimulators (1f, 1s, 2f und 2s) durch Ver
wendung des Funktionsaufrufs nach Aufhebung der Zugriffsblockierung.
Zum Lösen der oben genannten Aufgabe umfasst ein Systemsimulationsprogramm gemäß
einem dritten Aspekt der vorliegenden Erfindung ein Mastersimulationsprogramm (1f, 1s,
2f und 2s), ein Slave-Simulationsprogramm (L), ein Funktionsmanagerprogramm (F) und
ein Pfadmanagerprogramm (S). Das Mastersimulationsprogramm (1f, 1s, 2f und 2s) simu
liert einen Bus-Master. Das Slave-Simulationsprogramm (L) simuliert einen Bus-Slave.
Das Funktionsmanagerprogramm (F) aktiviert nacheinander das Mastersimulationspro
gramm (1f, 1s, 2f und 2s) und das Slave-Simulationsprogramm (L) durch Verwendung
eines Funktionsaufrufs. Das Pfadmanagerprogramm (S) aktiviert das Mastersimulations
programm (1f, 1s, 2f und 2s) durch Verwendung einer Pfadumschaltung. Wenn in diesem
Systemssmulationsprogramm das durch Verwendung des Funktionsaufrufs von dem Funk
tionsmanagerprogramm (F) aktivierte Mastersimulationsprogramm (1f, 1s, 2f und 2s) auf
das Slave-Simulationsprogramm (L) zugreift und eine Zugriffsblockierung verursacht
wird, steuert das Mastersimulationsprogramm (1f, 1s, 2f und 2s) das Pfadmanagerpro
gramm (S) derart, dass das Mastersimulationsprogramm (1f, 1s, 2f und 2s) durch Verwen
dung der durch das Pfadmanagerprogramm (S) durchgeführten Pfadumschaltung aktiviert
wird.
Dieses Systemsimulationsprogramm kann derart ausgelegt sein, dass das Pfadmanagerpro
gramm (S) weiter das Slave-Simulationsprogramm (L) durch Verwendung des Funktions
aufrufs aktiviert. Ferner steuert das Pfadmanagerprogramm (S) nach Aufhebung der Zu
griffsblockierung das Funktionsmanagerprogramm (F) derart, dass das Mastersimulations
programm (1f, 1s, 2f und 2s) durch Verwendung des Funktionsaufrufs aktiviert wird.
Fig. 1 zeigt eine Konfiguration eines Systemsimulators gemäß einer ersten konventio
nellen Technik;
Fig. 2 zeigt eine Konfiguration eines anderen Systemsimulators gemäß einer zweiten
konventionellen Technik;
Fig. 3 ist ein Erklärungsdiagramm, das die Übertragungsoperation zwischen einem
ersten Master und einem Manager in dem in Fig. 2 gezeigten Systemsimulator
zeigt;
Fig. 4 ist ein Erklärungsdiagramm, das die Übertragungsoperation zwischen einem
zweiten Master und dem Manager in dem in Fig. 2 gezeigten Systemsimulator
zeigt;
Fig. 5 ist ein Erklärungsdiagramm, das die Übertragungsoperation zwischen einem
Slave und dem Manager des in Fig. 2 gezeigten Systemsimulators zeigt;
Fig. 6 ist ein Funktionsblockdiagramm, das eine Konfiguration eines Systemsimulators
gemäß einer Ausführungsform der vorliegenden Erfindung zeigt;
Fig. 7 ist ein Erklärungsdiagramm, das eine Operation zeigt, wenn keine Zugriffsblo
ckierung auftritt, in dem Systemsimulator gemäß der Ausführungsform der vor
liegenden Erfindung;
Fig. 8 ist ein Erklärungsdiagramm, das eine Operation (Nr. 1) zeigt, wenn Zugriffs
blockierung auftritt, in dem Systemsimulator gemäß der Ausführungsform der
vorliegenden Erfindung;
Fig. 9 ist ein Erklärungsdiagramm, das eine Operation (Nr. 2) zeigt, wenn die Zugriffs
blockierung auftritt, in dem Systemsimulator gemäß der Ausführungsform der
vorliegenden Erfindung;
Fig. 10 ist ein Erklärungsdiagramm, das eine Operation (Nr. 3) zeigt, wenn die Zugriffs
blockierung auftritt, in dem Systemsimulator gemäß der Ausführungsform der
vorliegenden Erfindung;
Fig. 11 ist ein Erklärungsdiagramm, das eine Operation (Nr. 4) zeigt, wenn die Zugriffs
blockierung auftritt, in dem Systemsimulator gemäß der Ausführungsform der
vorliegenden Erfindung;
Fig. 12 ist ein Ablaufdiagramm, das einen Hauptprozess in dem Systemsimulator gemäß
der Ausführungsform der vorliegenden Erfindung zeigt;
Fig. 13 ist ein Ablaufdiagramm, das detailliert einen Prozess zum Erzeugen eines Pfads
eines Masters S in Fig. 12 zeigt;
Fig. 14 ist ein Ablaufdiagramm, das detailliert einen Prozess zum Vorrücken der Sys
temzeit eines Managers F um einen Takt in Fig. 12 zeigt;
Fig. 15 ist ein Ablaufdiagramm, das detailliert einen Prozess zum Vorrücken der Sys
temzeit eines Managers S um einen Takt in Fig. 12 zeigt;
Fig. 16 ist ein Ablaufdiagramm, das detailliert einen Prozess eines Schritts S27 in Fig.
14 zeigt;
Fig. 17 ist ein Ablaufdiagramm, das detailliert einen Prozess eines Schritts S64 in Fig.
16 zeigt;
Fig. 18 ist ein Ablaufdiagramm, das detailliert einen Prozess eines Schritts S71 in Fig.
17 zeigt;
Fig. 19 ist ein Ablaufdiagramm, das detailliert einen Prozess eines Schritts S75 in Fig.
17 zeigt;
Fig. 20 ist ein Ablaufdiagramm, das detailliert einen Prozess eines Schritts S42 in Fig.
15 zeigt; und
Fig. 21 ist ein Ablaufdiagramm, das detailliert einen Prozess eines Schritts S95 in Fig.
20 zeigt.
Eine Ausführungsform der vorliegenden Erfindung soll im folgenden ausführlich unter
Bezugnahme auf die beigefügten Zeichnungen beschrieben werden.
Fig. 6 ist ein Funktionsblockdiagramm, dass die Konfiguration eines Systemsimulators
gemäß einer Ausführungsform der vorliegenden Erfindung zeigt. Dieser Simulator wird an
einem Informationsverarbeitungsgerät, so wie einem Personalcomputer, einer Workstation
oder einem Mehrzweckcomputer durch Installierung von Software eingesetzt. Die Konfi
guration und der Betrieb des Informationsverarbeitungsgeräts sind gut bekannt. Deshalb
sind ihre Erklärungen weggelassen worden.
Dieser Systemsimulator besteht aus einem ersten Master 1f für eine Funktion (im folgen
den als "erster Funktionsmaster 1f" bezeichnet), einem ersten Master 1s für einen Pfad (im
folgenden als "erster Pfadmaster 1s" bezeichnet), einem zweiten Master 2f für eine Funk
tion (im folgenden als "zweiter Funktionsmaster 2f" bezeichnet), einem zweiten Master 2s
für einen Pfad (im folgenden als "zweiter Pfadmaster 2s" bezeichnet), einem Funktionsma
nager F, einem Pfadmanager S. einem Slave L und einem Bus B.
Fig. 6 zeigt auch die Übertragung der Steuerung in diesem Systemsimulator. Das heißt, in
dem ersten Pfadmaster 1s, dem zweiten Pfadmaster 2s, dem Funktionsmanager F, dem
Pfadmanager S und dem Bus B enthaltene Symbole "o" kennzeichnen Semaphore. Ferner
kennzeichnet ein Symbol "P" die Ausführung einer Eingabe, ein Symbol "W" kennzeich
net die Ausführung eines Wartevorgangs, und ein Symbol "T" kennzeichnet die Ausfüh
rung eines Warteversuchs. In Fig. 6 kennzeichnet ein Pfeil einer Linie aus abwechselnd
langen und kurzen Strichen die Übertragung der Steuerung, die aus dem Funktionsaufruf
resultiert, ein Pfeil einer durchgezogenen Linie kennzeichnet die aus der Eingabe resultie
rende Übertragung der Steuerung, ein Pfeil einer gestrichelten Linie kennzeichnet die aus
dem Wartevorgang resultierende Übertragung der Steuerung, und ein Pfeil einer Linie aus
abwechselnden langen und zwei kurzen Strichen kennzeichnet die aus dem Warteversuch
resultierende Übertragung der Steuerung. Außerdem kennzeichnet ein Pfeil aus einer dop
pelten Linie eine Ausführung des Pfads.
Der erste Funktionsmaster 1f ist ein Simulator, der aus einem Programm zum Simulieren
einer Operation einer als ein Master verwendeten Einrichtung so wie CPU und DMA be
steht. Dieser erste Funktionsmaster 1f führt einen Lesezugriff und einen Schreibzugriff auf
den Slave L durch den Bus B aus. Dieser erste Funktionsmaster 1f ist der gleiche Pfad wie
der Funktionsmanager F und beginnt eine Operation in Übereinstimmung mit dem Funkti
onsaufruf für jeden einen Takt von dem Funktionsmanager F. Nach der Ausführung der
Simulation entsprechend dem einen Takt, wird die Steuerung zu dem Funktionsmanager F
zurückgeführt.
Der ersten Pfadmaster 1s ist ein Simulator, der aus einem Programm zum Simulieren der
Operation der als der Master verwendeten Einrichtung besteht, ähnlich dem oben genann
ten ersten Funktionsmaster 1f. Dieser erste Pfadmaster 1s führt den Lesezugriff und den
Schreibzugriff auf den Slave L durch den Bus B aus. Dieser erste Pfadmaster 1s ist ein
anderer Pfad als der des Funktionsmanagers F. Der erste Pfadmaster 1s beginnt die Aus
führung, wenn der Pfadmanager S, der auch ein anderer Pfad als der des Funktionsmana
gers F ist, die Eingabe an das Semaphor des ersten Pfadmasters 1s durchführt. Nach Ab
schluss der Ausführung wird die Steuerung zu dem Pfadmanager S durch Durchführung
des Wartevorgangs an dem Semaphor übertragen.
Der erste Funktionsmaster 1f und der erste Pfadmaster 1s werden als ein Modul gebildet,
und sie sind unterschiedliche Pfade, obwohl sie den gleichen Text aufweisen. Tatsächlich
unterscheiden sich der erste Funktionsmaster 1f und der erste Pfadmaster 1s nur durch eine
Ausführungsstartposition in dem Modul.
Der zweite Funktionsmaster 2f ist ein Simulator, der aus einem Programm zum Simulieren
einer Operation einer als ein Master verwendeten Einrichtung besteht, ähnlich wie der
oben genannte erste Funktionsmaster 1f. Dieser zweite Funktionsmaster 2f führt einen Le
sezugriff und den Schreibzugriff auf den Slave L durch den Bus B durch. Dieser zweite
Funktionsmaster 2f ist der gleiche Pfad wie der Funktionsmanager F und beginnt eine Ope
ration in Übereinstimmung mit dem Funktionsaufruf für jeden einen Takt von dem Funk
tionsmanager F. Nach der Ausführung der Simulation entsprechend dem einen Takt wird
die Steuerung zum Funktionsmanager F zurückgeführt.
Der zweite Pfadmaster 2s ist ein Simulator, der aus einem Programm zum Simulieren der
Operation der als der Master verwendeten Einrichtung besteht, ähnlich dem oben genann
ten zweiten Funktionsmaster 2f. Dieser zweite Pfadmaster 2s führt den Lesezugriff und
den Schreibzugriff auf den Slave L durch den Bus B aus. Dieser zweite Pfadmaster 2s ist
ein anderer Pfad als der Funktionsmanager F. Der zweite Pfadmaster 2s beginnt die Aus
führung, wenn der Pfadmaster S, der auch ein anderer Pfad als derjenige des Funktionsma
nagers F ist, die Eingabe an das Semaphor des zweiten Pfadmasters 2s durchführt. Nach
dem Abschluss der Ausführung wird die Steuerung durch Ausführung des Wartevorgangs
zu dem Semaphor an den Pfadmaster S übertragen.
Der zweite Funktionsmaster 2f und der zweite Pfadmaster 2s werden als ein Modul gebil
det, und sie sind unterschiedliche Pfade, obwohl sie den gleichen Text aufweisen. Tatsäch
lich unterscheiden sich der zweite Funktionsmaster 2f und der zweite Pfadmaster 2s nur
durch eine Ausführungsstartposition in dem Modul.
Der Slave L ist ein Simulator, der aus einem Programm zum Simulieren einer als ein Slave
verwendeten Peripherieschaltung besteht, so wie einem Zeitglied, einem seriellen An
schluss oder einem allgemeinen Eingangsausgangsanschluss. Dieser Slave L führt eine
vorbestimmte Operation als Reaktion auf den Lesezugriff und den Schreibzugriff aus, der
durch dem Bus B von dem ersten Funktionsmaster 1f, dem ersten Funktionsmaster 1s, dem
zweiten Funktionsmaster 2f und dem zweiten Pfadmaster 2s durchgeführt wird. Dieser
Slave L beginnt eine Ausführung in Übereinstimmung mit dem Funktionsaufruf von dem
Funktionsmanager F und dem Pfadmanager S.
Der Bus B ist ein Simulator, der aus einem Programm zum Simulieren eines Busses be
steht, durch den der Slave L und jeder des ersten Funktionsmaster If, des ersten Pfadmas
ters 1s, des zweiten Funktionsmasters 2f und des zweiten Pfadmasters 2s verbunden sind.
Dieser Bus B führt die Informationen zurück, die anzeigen, ob der Slave L sofort reagieren
kann, nämlich, ob die Zugriffsblockierung auftritt oder nicht, als Reaktion auf eine An
frage durch Verwendung des Warteversuchs von dem ersten Funktionsmaster 1f, dem ers
ten Pfadmaster 1s, dem zweiten Funktionsmaster 2f und dem zweiten Pfadmaster 2s.
Der Funktionsmanager F ist ein Steuerprogramm zum Durchführen des Funktionsaufrufs
der Reihe nach an dem ersten Funktionsmaster 1f, dem ersten Pfadmaster 1s und dem
Slave L, und ermöglicht ihnen synchron miteinander zu arbeiten.
Der Pfadmanager S ist ein Steuerprogramm zum Ausführen der Pfadumschaltung, um dem
ersten Pfadmaster 1s und dem zweiten Pfadmaster 2s zu erlauben, zu arbeiten und zum
Ausführen des Funktionsaufrufs an den Slave, damit diesem Arbeit erlaubt wird.
Eine Operation des Systemsimulators gemäß der Ausführungsform der vorliegenden Er
findung mit der oben genannten Konfiguration soll im folgenden beschrieben werden. Die
ser Systemsimulator wird so gesteuert, um nur einen des ersten Funktionsmasters 1f, des
ersten Pfadmasters 1s, des zweiten Funktionsmasters 2f, des zweiten Pfadmasters 2s, des
Funktionsmanagers F und des Pfadmanagers S gleichzeitig zu aktivieren.
Zuerst ist die Operation, wenn keine Zugriffsblockierung auftritt, unter Bezugnahme auf
Fig. 7 beschrieben. In diesem Fall wird der Systemsimulator ähnlich dem Simulator gemäß
der ersten konventionellen Technik betätigt. Das heißt, die Simulation schreitet fort, wäh
rend der Funktionsmanager F den Funktionsaufruf der Reihe nach an den ersten Funkti
onsmaster 1f, den zweiten Funktionsmaster 2f und den Slave L durchführt.
Genau ausgedrückt, führt der Funktionsmanager F zuerst den Funktionsaufruf an den ers
ten Funktionsmaster 1f durch. Dementsprechend führt der erste Funktionsmaster 1f einen
einem Takt entsprechenden Prozess durch. Wenn zum Beispiel das Ziel des Funktionsauf
rufs eine in einem Takt abzuschließende Anweisung darstellt, wird die Steuerung zu dem
Funktionsmanager F nach Abschluss der Ausführung der Anweisung zurückgeführt. In
diesem Prozess wird angenommen, dass die Zugriffsblockierung nicht auftritt. Selbst in
einem Fall eines Prozesses für Zugriff auf den Bus B, wird der Prozess daher in einem
Takt abgeschlossen. Es sollte festgestellt werden, dass, wenn das Ziel des Funktionsaufrufs
eine Anweisung darstellt, die eine Mehrzahl von Takten erfordert, die Steuerung zu dem
Funktionsmanager F nach Abschluss eines dem einen Takt entsprechenden Prozesses zu
rückgeführt wird.
Als nächstes, ähnlich dem oben genannten konventionellen Fall, führt der Funktionsmana
ger F den Funktionsaufruf an den zweiten Funktionsmaster 2f durch und führt dann den
Funktionsaufruf an den Slave L durch. Danach wird die Simulation durch die zyklische
Ausführung des Funktionsaufrufs an den ersten Funktionsmaster 1f → den zweiten Funk
tionsmaster 2f → den Slave L → den ersten Funktionsmaster 1f →. . . vorgerückt. Es soll
festgestellt werden, dass, wenn das Ziel des Funktionsaufrufs die Anweisung ist, die eine
Mehrzahl von Takten erfordert, die Anweisung durch Ausführung der Mehrzahl von
Funktionsaufrufen bis zum Ziel abgeschlossen wird.
Wenn keine Zugriffsblockierung auftritt, führen der erste Funktionsmaster 1, der zweite
Funktionsmaster 2f und der Slave L wie oben erwähnt nacheinander den Prozess durch, der
dem einen Takt für jede Ausführung des Funktionsaufrufs von dem Funktionsmanager F
entspricht. Daher werden sie betätigt, als wenn sie synchron mit dem Takt sind. Folglich ist
es möglich, die Simulation auszuführen, in der die Betriebszeitabläufe berücksichtigt wer
den.
Als nächstens sollen die Operationen in den Fall des Auftretens der Zugriffsblockierung
unter Bezugnahme auf die Fig. 8 bis 11 beschrieben werden. In diesem Fall wird der
Systemsimulator gemäß dieser Ausführungsform in ähnlicher Weise wie der Simulator
gemäß der zweiten konventionellen Technik betätigt.
Fig. 8 ist ein Erklärungsdiagramm, das eine Operation zeigt, wenn die Zugriffsblockierung
in dem Prozess des ersten Funktionsmasters 1f auftritt, an dem der Funktionsmanager F
den Funktionsaufruf durchführt und die Steuerung zu dem Pfadmanager S übertragen wird.
Gestrichelte Linie zeigen den Fluss der Steuerung an.
Der Funktionsmanager F führt zuerst den Funktionsaufruf an den ersten Funktionsmaster
1f aus. Dementsprechend führt der erste Funktionsmaster 1f den dem einen Takt entspre
chenden Prozess aus. In diesem Prozess führt der erste Funktionsmaster 1f den Wartever
such an dem Semaphor des Busses B durch. Wenn der Warteversuch erfolgreich ist, näm
lich wenn die Zugriffsblockierung nicht auftritt, schließt der erste Funktionsmaster 1f den
dem einen Takt entsprechenden Prozess ab, wie oben ausgeführt, und die Steuerung wird
zurück zu dem Funktionsmanager F geführt.
Wenn andererseits der Warteversuch nicht erfolgreich ist, nämlich, wenn die Zugriffsblo
ckierung auftritt, wie durch einen Pfeil aus gestrichelten Linien gezeigt ist, führt der erste
Funktionsmaster 1f die Eingabe an das Semaphor des Pfadmasters S durch und führt den
Wartevorgang an dem Semaphor des Funktionsmanagers F durch. Daher wird die Steue
rung von dem Funktionsmanager F zu dem Pfadmanager S übertragen. Das heißt, der
Pfadmanager S wird aktiviert, und der Funktionsmanager F tritt in einen Ruhezustand ein.
Danach wird die Simulation basierend auf der Pfadumschaltung unter der Steuerung des
Pfadmanagers S begonnen.
Fig. 9 ist ein Erklärungsdiagramm, das eine Operation zeigt, wenn die Zugriffsblockierung
in dem Prozess des zweiten Pfadmasters 2s auftritt, in dem der Pfad durch den Pfadmana
ger S aktiviert wird und die Steuerung zu dem Pfadmanager S übertragen wird. Die gestri
chelte Linie zeigt den Fluss der Steuerung an.
Nach der in Fig. 8 gezeigten Operation führt der Pfadmanager S die Eingabe an das Sema
phor des zweiten Pfadmasters 2s durch und aktiviert dadurch den Pfad des zweiten Pfad
masters 2s. Dann tritt der Pfadmanager S selbst in den Wartezustand ein. Der Pfad des
zweiten Pfadmasters 2s führt den Warteversuch an dem Semaphor des Busses B durch.
Wenn der Warteversuch erfolgreich ist, nämlich wenn keine Zugriffsblockierung auftritt,
führt der zweite Pfadmaster 2s, wie durch einen Pfeil einer gestrichelten Linie in Fig. 9
gezeigt, nach Abschluss des dem einen Takt entsprechenden Prozesses die Eingabe an das
Semaphor des Pfadmanagers S durch und tritt in den Wartezustand ein. Wenn andererseits
der Warteversuch nicht erfolgreich ist, nämlich wenn die Zugriffsblockierung auftritt, führt
der zweite Pfadmaster 2s sofort die Eingabe an das Semaphor des Pfadmanagers 5 durch
und tritt in den Wartezustand ein.
Fig. 10 ist ein Erklärungsdiagramm, das eine Operation zeigt, wenn der Slave L, an den der
Pfadmanager S den Funktionsaufruf durchführt, den Prozess abschließt und die Steuerung
dann zu dem Pfadmanager S übertragen wird. Die gestrichelte Linie zeigt den Fluss der
Steuerung an.
Nach der in Fig. 9 gezeigten Operation führt der Pfadmanager S den Funktionsaufruf an
den Slave L durch. Dementsprechend führt der Slave L den Prozess entsprechend dem ei
nem Takt durch. Wenn in dem Slave L Daten als Reaktion auf eine Leseanforderung von
dem ersten Funktionsmaster 1f, dem ersten Pfadmaster 1s, dem zweiten Funktionsmaster
2f und dem zweiten Pfadmaster 2s erzeugt werden, führt der Slave L die Eingabe an das
Semaphor des Busses B aus. Dementsprechend wird der Zugriffsblockierzustand in dem
Bus B aufgehoben. Danach wird die Steuerung zu dem Pfadmanager S zurückgeführt.
Fig. 11 ist ein Erklärungsdiagramm, das eine Operation zeigt, wenn Zugriffsblockierung
nicht in dem Prozess des ersten Pfadmasters 1s auftritt, an den der Pfadmanager S den
Funktionsaufruf durchführt, und die Steuerung zu dem Funktionsmanager F übertragen
wird. Die gestrichelte Linie zeigt den Fluss der Steuerung an.
Nach den in Fig. 10 gezeigten Operationen führt der Pfadmanager S die Eingabe an das
Semaphor des Funktionsmanagers F durch. Dementsprechend wird der erste Funktions
master 1f aktiviert, der aufgrund des Versagens des Warteversuchs in dem Wartezustand
ist, und der ersten Funktionsmaster 1f führt erneut den Warteversuch zu dem Semaphor des
Busses B durch. Wenn der Warteversuch erfolgreich ist, nämlich wenn die Zugriffsblo
ckierung nicht auftritt, schließt der erste Funktionsmaster 1f den dem einen Takt entspre
chenden Prozess ab, und die Steuerung wird zu dem Funktionsmanager F zurückgeführt.
Wenn andererseits der Warteversuch nicht erfolgreich ist, nämlich wenn die Zugriffsblo
ckierung nicht aufgehoben ist, wie unter Bezugnahme auf Fig. 8 beschrieben ist, führt der
erste Funktionsmaster 1f die Eingabe an das Semaphor des Pfadmanagers S durch. Danach
werden die Operationen ähnlich denjenigen des oben genannten Falls wiederholt. Wenn
die Zugriffsblockierung aufgehoben wird, werden alle die Master entsprechend dem Funk
tionsaufruf ausgeführt.
Bei dem Systemsimulator gemäß der Ausführungsform der vorliegenden Erfindung mit der
oben genannten Konfiguration kann der bereits entwickelte, hinsichtlich der Anweisungen
eingestellte Simulator zum Simulieren einer einzigen CPU als der Simulator des Masters in
seinem Originalzustand verwendet werden. Daher ist es nicht erforderlich, den Simulator
neu auszulegen.
Auch wenn die Zugriffsblockierung auftritt, wird er von der Simulation basierend auf dem
Funktionsaufruf zu der Simulation basierend auf der Pfadumschaltung umgeschaltet. An
ders als bei den konventionellen Techniken, verursacht das Auftreten der Zugriffsblockie
rung daher nie, dass der Systemsimulator in den Verklemmungszustand gerät.
Außerdem wird die Simulation, außer wenn die Zugriffsblockierung auftritt, in Überein
stimmung mit dem Funktionsaufruf durchgeführt, und die auf Pfadumschaltung basierende
Operation wird nicht durchgeführt. Als Ergebnis ist es möglich, den durch die Pfad
umschaltung verursachten Zeitverlust auf ein Minimum zu reduzieren, und es ist dadurch
möglich, die Simulation bei einer hohen Geschwindigkeit zu erreichen.
Zum besseren Verständnis der vorliegenden Erfindung sollen die Prozesse zum Erreichen
der oben aufgeführten Operationen im folgenden weiter unter Bezugnahme auf die Ab
laufdiagramme beschrieben werden, hauptsächlich bei der Umschaltoperation zwischen
dem Funktionsmanager F und dem Pfadmanager S.
Fig. 12 ist ein Ablaufdiagramm, das den Hauptprozess in dem Systemsimulator gemäß
dieser Ausführungsform zeigt.
In diesem Systemsimulator werden der Funktionsmanager F (im folgenden lediglich als
"Manager F" bezeichnet) und der Pfadmanager S (im folgenden lediglich als "Manager S"
bezeichnet), der erste Funktionsmaster 1f, der erste Pfadmaster 1s, der zweite Funktions
master 2f und der zweite Pfadmaster 2s (im folgenden können sie gemeinsam lediglich als
"Master" bezeichnet werden) durch eine Tabelle verwaltet. Es soll festgestellt werden, dass
im folgenden der erste Funktionsmaster 1f und der zweite Funktionsmaster 2f manchmal
lediglich als "Master f" bezeichnet werden können und der erste Pfadmaster 1s und der
zweite Pfadmaster 2s manchmal lediglich als "Master s" bezeichnet werden können.
Ein aktueller Mastertabellenindex "current_master_table_index" ist ein Tabellenindex ei
nes Masters zum Vorrücken eines Taktes, welcher durch einen Manager F und einen Ma
nager S gemeinsam genutzt wird.
Wenn die Simulation in dem Systemsimulator begonnen wird, werden zuerst ein aktueller
Mastertabellenindex "current_master_table_index" und ein aktueller Slave-Tabellenindex
"current_slave_table_index" zunächst auf null gesetzt (Schritt S10, S11). Dann wird der in
der Simulation zu verwendende Pfad des Managers S erzeugt (Schritt S12).
Als nächstes wird nach der Ausführung des Pfaderzeugungsprozesses des Masters s
(Schritt S13), wie später ausführlich in bezug zu dem Manager F beschrieben ist, ein Pro
zess zum Vorrücken von Systemzeit des Managers F um einen Takt wiederholt, bis ein
Ende der Simulation angezeigt wird (Schritte S14, S15). Andererseits wird in bezug zu
dem Manager S der Wartevorgang an dem Semaphor des Managers S durchgeführt (Schritt
S16). Dann wird ein Prozess zum Vorrücken von Systemzeit des Managers S um einen
Takt wiederholt, bis das Ende der Simulation angezeigt wird (Schritt S17, S18).
Daher wird die Simulation begonnen, wenn der Funktionsmanager F den Funktionsaufruf
(Schritt S14 und S15) am Ausgangszustand ausführt. Danach werden die Prozesse an den
Schritten S14 und S17 geeignet abhängig von dem Vorliegen oder Nichtvorliegen der Zu
griffsblockierung durchgeführt.
Der bei dem Schritt S13 durchgeführte Pfaderzeugungsprozess des Masters s soll im fol
genden detailliert unter Bezugnahme auf das in Fig. 13 gezeigte Ablaufdiagramm be
schrieben werden.
Ein aktueller Masterindex "current_master_index" ist ein Index eines Masters s, der den
Takt durch den Manager S vorzurücken ist.
In dem Pfaderzeugungsprozess des Masters s wird zuerst ein aktueller Masterindex "cur
rent_master_index" zu Beginn auf null gesetzt (Schritt S20). Als nächstes wird geprüft, ob
der aktuelle Masterindex kleiner als eine Mastertabellengröße "master_table_size" ist
(Schritt S21). Wenn er als kleiner beurteilt wird, wird der Pfad des Masters s entsprechend
dem aktuellen Masterindex "current_master_index" erzeugt (Schritt S22).
Während als nächstes der Prozess zum Vorrücken der Systemzeit des Masters s um einen
Takt durchgeführt wird (Schritt S24), wird, wie später ausführlich beschrieben ist, ein Wert
des aktuellen Masterindex "current_master_index" um eins erhöht (Schritt S23). Dann
kehrt die Abfolge zum Erzeugen eines Pfads eines nächsten Masters s zurück zum Schritt
S21, und die oben genannten Operationen werden wiederholt. Beim Schritt S21 wird der
Pfaderzeugungsprozess des Masters s beendet, wenn der aktuelle Masterindex als gleich
oder größer als die Mastertabellengröße beurteilt wird.
Der beim Schritt S14 durchgeführte Prozess zum Vorrücken der Systemzeit des Managers
F um einen Takt soll im folgenden ausführlich unter Bezugnahme auf das in Fig. 14 ge
zeigte Ablaufdiagramm wiederholt werden.
In diesem Prozess wird zuerst geprüft, ob der aktuelle Mastertabellenindex "current_mas
ter_table_index" kleiner als die Mastertabellengröße "master_table_size" ist oder nicht
(Schritt S25). Wenn er als kleiner beurteilt wird, wird ein Prozess "cur_index = cur
rent_master_table_index++" ausgeführt zum Einsetzen eines Werts des aktuellen Master
tabellenindex "current_master_table_index" in einen aktuellen Index "cur_index" und an
schließenden Erhöhen des Werts des aktuellen Mastertabellenindex "current_master_ta
ble_index" um eins (Schritt S26).
Als nächstes wird ein Prozess zum Vorrücken einer Zeit um einen Takt durchgeführt, wenn
der Tabellenindex des Masters den Funktionsaufruf an den Master des aktuellen Index
"cur-index" durchführt (Schritt S27). Dieser Prozess soll später ausführlich beschrieben
werden. Dann wird geprüft, ob ein Assoziationsarray, in dem die Information des Masters
gespeichert wird, in dem Zugriffsblockierung auftritt, leer ist oder nicht (Schritt S28).
Wenn das Assoziationsarray als leer beurteilt wird, wird erkannt, dass die Zugriffsblockie
rung nicht auftritt. Dann kehrt die Abfolge zurück zum Schritt S25 und die oben genannten
Operationen werden für einen nächsten Master wiederholt.
Wenn andererseits das Assoziationsarray nicht als leer beurteilt wird, wird erkannt, dass
die Zugriffsblockierung auftritt, und die Eingabe wird an das Semaphor des Managers S
ausgeführt (Schritt S29), und der Wartevorgang wird an dem Semaphor des Managers F
durchgeführt (Schritt S30). Dementsprechend wird die Steuerung von dem Manager F zu
dem Manager S übertragen. Dann wird die Simulation basierend auf der Pfadumschaltung
unter der Steuerung des Managers S begonnen. Danach kehrt die Abfolge zurück zum
Schritt S25, und die oben genannten Operationen werden für einen nächsten Master wie
derholt.
Wenn beim Schritt S25 der aktuelle Mastertabellenindex "current_master_table_ index" als
gleich oder größer als die Mastertabellengröße "master_table_size" beurteilt wird, wird der
aktuelle Mastertabellenindex "current_master_table_index" auf null zurückgestellt (Schritt
S31).
Als nächstes wird geprüft, ob der aktuelle Slave-Tabellenindex ""current_slave_table_in
dex" kleiner als eine Slave-Tabellengröße "slave_table_size" ist oder nicht (Schritt S32).
Wenn er als kleiner beurteilt wird, wird ein Prozess "cur_index = current_slave_table_in
dex++" zum Einsetzen eines Werts des aktuellen Slave-Tabellenindex "current_slave_ta
ble_index" in den aktuellen Index "cur_index" durchgeführt und anschließend wird der
Wert des aktuellen Slave-Tabellenindex "current_slave_table_index" um eins erhöht
(Schritt S33).
Als nächstes wird ein Prozess zum Vorrücken einer Zeit um einen Takt ausgeführt, wenn
der Tabellenindex des Slave den Funktionsaufruf an den Slave des aktuellen Index
"cur_index" durchführt (Schritt S34). Danach kehrt die Abfolge zurück zum Schritt S25,
und die oben genannten Operationen werden für einen nächsten Slave wiederholt.
Wenn beim Schritt S32 der aktuelle Slave-Tabellenindex "current_slave_table_index" als
gleich oder größer als die Slave-Tabellengröße "slave_table_size" beurteilt wird, wird der
aktuelle Slave-Tabellenindex "current_slave_table_index" auf null zurückgesetzt (Schritt
S35). Nach Ausführung dieses Schritts wird der Prozess zum Vorrücken der Systemzeit
des Managers F um einen Takt beendet, und die Abfolge kehrt zum Hauptprozess zurück.
Der am Schritt S17 ausgeführte Prozess zum Vorrücken der Systemzeit des Managers S
um einen Takt soll im folgenden ausführlich unter Bezugnahme auf das in Fig. 15 gezeigte
Ablaufdiagramm beschrieben werden.
In diesem Prozess wird zuerst geprüft, ob der aktuelle Mastertabellenindex "current_mas
ter_table_index" kleiner als die Mastertabellengröße "master_table_size" ist oder nicht
(Schritt S40). Wenn er als kleiner beurteilt wird, wird ein Prozess "cur_index = cur
rent_master_table_index++" zum Einsetzen des Werts des aktuellen Mastertabellenindex
"current_master_table_index" in den aktuellen Index "cur_index" und anschließenden
Erhöhen des Werts des aktuellen Mastertabellenindex "current_master_table_index" um
eins (Schritt S41) durchgeführt.
Als nächstes wird ein Prozess durchgeführt, in dem der Tabellenindex des Masters die Zeit
des Masters s des aktuellen Index "cur_index" um einen Takt vorrückt (Schritt S42). Die
ser Prozess soll später ausführlich beschrieben werden. Wenn hier festgelegt wird, dass die
Eingabe an das Semaphor des Managers F in Übereinstimmung mit einer ein Auftreten der
Zugriffsblockierung anzeigenden Meldung ausgeführt wird, wird die Eingabe an das Se
maphor des Managers F ausgeführt. Ansonsten wird die Eingabe an den entsprechenden
Master s ausgeführt.
Als nächstes wird der Wartevorgang an dem Semaphor des Managers S durchgeführt
(Schritt S43). Dann wird geprüft, ob das Assoziationsarray leer ist oder nicht (Schritt S44).
Wenn das Assoziationsarray als leer beurteilt wird, wird erkannt, dass die Zugriffsblockie
rung nicht auftritt. Dann kehrt die Abfolge zurück zum Schritt S40, und die oben genann
ten Operationen werden für einen nächsten Master wiederholt.
Wenn andererseits das Assoziationsarray als nicht leer beurteilt wird, wird erkannt, dass
die Zugriffsblockierung auftritt, und die Eingabe wird an das Semaphor des Managers F
(Schritt S45) ausgeführt, und der Wartevorgang wird an dem Semaphor des Managers S
durchgeführt (Schritt S46). Dementsprechend wird die Steuerung von dem Manager S zu
dem Manager F übertragen. Dann wird die Simulation basierend auf dem Funktionsaufruf
unter der Steuerung des Managers F durchgeführt. Danach kehrt die Abfolge zurück zum
Schritt S40 und die oben genannten Operationen werden für einen nächsten Master wie
derholt.
Wenn beim Schritt S40 der aktuelle Mastertabellenindex "current_master_table_index" als
gleich oder größer als die Mastertabellengröße "master_table_size" beurteilt wird, wird der
aktuelle Mastertabellenindex "current_master_table_index" auf null zurückgesetzt (Schritt
S47).
Als nächstes wird geprüft, ob der aktuelle Slave-Tabellenindex "current_slave_table_in
dex" kleiner als die Slave-Tabellengröße "slave_table_size" ist oder nicht (Schritt S48).
Wenn er als kleiner beurteilt wird, wird der Prozess "cur_index = current_slave_table_in
dex++" zum Einsetzen des Werts des aktuellen Slave-Tabellenindex "current_slave_ta
ble_index" in den aktuellen Index "cur_index" und anschließenden Erhöhen des Werts des
aktuellen Slave-Tabellenindex "current_slave_table_index" um eins durchgeführt (Schritt
S49).
Als nächstes wird ein Prozess zum Vorrücken einer Zeit um einen Takt durchgeführt, wenn
der Tabellenindex des Slave den Funktionsaufruf an den Slave des aktuellen Index
"cur_index" durchführt (Schritt S50). Danach kehrt die Abfolge zurück zum Schritt S48
und die oben genannten Operationen werden für einen nächsten Slave wiederholt.
Wenn andererseits am Schritt S48 der aktuelle Slave-Tabellenindex "current_slave_ta
ble_index" als gleich oder größer als die Slave-Tabellengröße "slave_table_size" beurteilt
wird, wird der aktuelle Slave-Tabellenindex "current_slave_table_index" auf null zurück
gesetzt (Schritt S51). Nach Durchführung dieses Schritts wird der Prozess zum Vorrücken
der Systemzeit des Managers S um einen Takt beendet, und die Abfolge kehrt zu dem
Hauptprozess zurück.
Der bei dem in Fig. 14 gezeigten Schritt S27 durchgeführte Prozess zum Vorrücken der
Zeit des Masters um einen Takt soll im folgenden ausführlich unter Bezugnahme auf das in
Fig. 16 gezeigte Ablaufdiagramm beschrieben werden. Es soll festgestellt werden, dass ein
Fall, in dem eine CPU als der Master verwendet wird, in der folgenden Erklärung als Bei
spiel genommen wird.
In diesem Prozess wird zuerst eine Anweisung abgerufen (Schritt S60). Als nächstes wird
die abgerufene Anweisung dekodiert (Schritt S61). Eine jegliche einer NOP-Anweisung
(Schritt S62), einer ADD-Anweisung (Schritt S63), einer LOAD-Anweisung (Schritt S64)
wird auf der Basis des dekodierten Ergebnisses ausgeführt. Wenn die entsprechende An
weisung nicht als das dekodierte Ergebnis vorhanden ist, wird ein Fehlerprozess ausgeführt
(Schritt S65).
Eine Operation der in Übereinstimmung mit dem Funktionsaufruf von dem Manager F aus
geführten LOAD-Anweisung soll im folgenden unter Bezugnahme auf das in Fig. 17 ge
zeigte Ablaufdiagramm beschrieben werden.
Wenn diese LOAD-Anweisung ausgeführt wird, wird zuerst geprüft, ob Ladedaten durch
den Bus von dem Slave erhalten werden können oder nicht (Schritt S70). Wenn in diesem
Schritt S70 beurteilt wird, dass die Ladedaten nicht erhalten werden können, wird ein Pro
zess zum Melden eines Auftretens von Zugriffsblockierung gemeinsam für den Master f
und den Master s ausgeführt (Schritt S71). Dieser Prozess zum Melden des Auftretens von
Zugriffsblockierung ist detailliert in dem Ablaufdiagramm von Fig. 18 gezeigt.
In diesem Prozess zum Melden des Auftretens von Zugriffsblockierung wird zuerst ge
prüft, ob ein Assoziationsarray, in dem die Information über Blockierung des Masters ge
speichert ist, leer ist oder nicht (Schritt S80). Wenn es als leer beurteilt wird, wenn der Ma
nager S die Zeit des Masters vorrückt, wird er derart eingestellt, dass die Eingabe an das
Semaphor des Managers F durchgeführt wird (Schritt S81). Wenn es andererseits als nicht
leer beurteilt wird, wird der Prozess am Schritt S81 übersprungen. Als nächstes wird der
Master in dem Assoziationsarray zum Speichern der Information aufgezeichnet, dass der
Master blockiert ist (Schritt S82). Danach kehrt die Abfolge zum Schritt S72 in Fig. 17 zu
rück.
Beim Schritt S72 wird die Eingabe an das Semaphor des Managers S ausgeführt. Als
nächstes wird der Wartevorgang an dem Semaphor des Managers F durchgeführt (Schritt
S73). Anschließend kehrt die Abfolge zurück zum Schritt S70, und die oben genannten
Operationen werden wiederholt. Dementsprechend wird geprüft, ob die Ladedaten von
dem Slave für jeden einen Takt erhalten werden oder nicht.
Wenn am Schritt S70 beurteilt wird, dass die Ladedaten durch den Bus von dem Slave er
halten werden können, wird dann geprüft, ob der Prozess zum Melden des Auftretens von
Zugriffsblockierung gemeinsam für den Master f und den Master s aufgerufen wird oder
nicht, nämlich, ob der Prozess am Schritt S71 ausgeführt wird (Schritt S74). Wenn beur
teilt wird, dass der Prozess zum Melden des Auftretens von Zugriffsblockierung gemein
sam für den Master f und den Master s aufgerufen ist, wird ein Prozess zum Melden des
Endes der Zugriffsblockierung gemeinsam für den Master f und den Master s ausgeführt
(Schritt S75). Dieser Prozess zum Melden des Endes der Zugriffsblockierung ist ausführ
lich in dem Ablaufdiagramm von Fig. 19 gezeigt.
Dieser Prozess zum Melden des Endes der Zugriffsblockierung löscht den Master aus dem
Assoziationsarray zum Speichern der Information, dass der Master blockiert ist (Schritt
S85). Wenn dann der Manager S die Zeit des Masters vorrückt, wird eingestellt, dass die
Eingabe an das Semaphor des Masters s durchgeführt wird (Schritt S86). Danach kehrt die
Abfolge zurück zum Schritt S76 von Fig. 17.
Am Schritt S76 werden die durch den Bus von dem Slave erhaltenen Ladedaten in ein Re
gister (nicht gezeigt) eingeschrieben, das durch die LOAD-Anweisung angewiesen wird.
Dementsprechend wird die Ausführung der LOAD-Anweisung abgeschlossen.
Der beim Schritt S42 durchgeführte Prozess zum Vorrücken der Zeit des Masters um einen
Takt soll im folgenden ausführlich unter Bezugnahme auf das in Fig. 20 gezeigte Ablauf
diagramm beschrieben werden. Es soll festgestellt werden, dass ein Fall, in dem eine CPU
als der Master verwendet wird, in der folgenden Erklärung als Beispiel aufgeführt ist.
In diesem Prozess wird der Wartevorgang zuerst an dem Semaphor des Masters s durchge
führt (Schritt S90). Als nächstes wird die Anweisung abgerufen (Schritt S91). Dann wird
die abgerufene Anweisung dekodiert (Schritt S92). Eine jegliche der NOP-Anweisung
(Schritt S93), der ADD-Anweisung (Schritt S94), der LOAD-Anweisung (Schritt S95),. . .
wird auf der Basis des dekodierten Ergebnisses durchgeführt. Wenn die entsprechende An
weisung nicht als das dekodierte Ergebnis existiert, wird der Fehlerprozess durchgeführt
(Schritt S96). Dann wird die Eingabe an das Semaphor des Managers S ausgeführt (Schritt
S97).
Eine Operation der durch den Master s aktivierten LOAD-Anweisung soll im folgenden
unter Bezugnahme auf das in Fig. 21 gezeigte Ablaufdiagramm beschrieben werden.
Wenn diese LOAD-Anweisung ausgeführt wird, wird zuerst geprüft, ob die Ladedaten
durch den Bus vom Slave erhalten werden können oder nicht (Schritt S100). Wenn in die
sem Schritt S100 beurteilt wird, dass die Ladedaten nicht erhalten werden können, wird ein
Prozess zum Melden eines Auftretens von Zugriffsblockierung gemeinsam für den Master
f und den Master s ausgeführt (Schritt S101). Dieser Prozess zum Melden des Auftretens
von Zugriffsblockierung wurde bereits ausführlich unter Bezugnahme auf das Ablaufdia
gramm von Fig. 18 beschrieben.
Als nächstes wird die Eingabe an das Semaphor des Managers S ausgeführt (Schritt S102).
Dann wird der Wartevorgang an dem Semaphor des Masters s durchgeführt (Schritt S103).
Danach kehrt die Abfolge zurück zum Schritt S 100, und die oben genannten Operationen
werden wiederholt. Dementsprechend wird geprüft, ob die Ladedaten von dem Slave für
jeden einen Takt erhalten werden oder nicht.
Wenn beim Schritt S100 beurteilt wird, dass die Ladedaten durch den Bus vom Slave er
halten werden können, wird anschließend geprüft, ob der Prozess zum Melden des Auftre
tens der Zugriffsblockierung gemeinsam für den Master f und den Master s aufgerufen
wird oder nicht, nämlich, ob der Prozess am Schritt S101 ausgeführt wird oder nicht
(Schritt S104). Wenn beurteilt wird, dass der Prozess zum Melden des Auftretens von Zu
griffsblockierung gemeinsam für den Master f und den Master s aufgerufen ist, wird ein
Prozess zum Melden des Endes der Zugriffsblockierung gemeinsam für den Master f und
den Master s ausgeführt (Schritt S105). Dieser Prozess zum Melden des Endes der Zu
griffsblockierung wurde bereits ausführlich in dem Ablaufdiagramm von Fig. 19 beschrie
ben.
Als nächstes werden die durch den Bus von dem Slave erhaltenen Ladedaten angewiesen
durch die LOAD-Anweisung in das Register (nicht gezeigt) eingeschrieben (Schritt S106).
Dementsprechend wird die Ausführung der LOAD-Anweisung abgeschlossen.
Die unter Bezugnahme auf die Fig. 7 bis 11 beschriebenen Operationen werden durch
die oben ausgeführten Prozesse erreicht.
Es soll festgestellt werden, dass in der oben genannten Ausführungsform der Fall in der Si
mulation des Geräts, das zwei Master und einen Slave enthält, als das Beispiel beschrieben
ist. Bei der vorliegenden Erfindung ist die Anzahl der Master und die Anzahl der Slaves
nicht auf diese begrenzt. Die Anzahl kann beliebig sein.
Wie oben ausgeführt, ist es gemäß der vorliegenden Erfindung möglich, den Systemsimu
lator, das Simulationsverfahren und das Simulationsprogramm zu schaffen, die die Simula
tion bei der hohen Geschwindigkeit ausführen können, ohne in den durch Zugriffsblockie
rung verursachten Verklemmungszustand zu geraten und ohne den Simulator zum Simulie
ren des konventionellen Bus-Masters zu ändern.
Claims (12)
1. Systemsimulator mit:
einem Mastersimulator (1f, 1s, 2f und 2s), der einen Bus-Master simuliert;
einem Slave-Simulator (L), der einen Bus-Slave simuliert;
einem Funktionsmanager (F), der nacheinander den Mastersimulator (1f, 1s, 2f und 2s) und den Slave-Simulator (L) durch Verwendung eines Funktionsaufrufs aktiviert; und
einem Pfadmanager (S), der den Mastersimulator (1f, 1s, 2f und 2s) durch Verwen dung einer Pfadumschaltung aktiviert,
wobei, wenn der durch Verwendung des Funktionsaufrufs von dem Funktionsma nager (F) aktivierte Mastersimulator (1f, 1s, 2f und 2s) auf den Slave-Simulator (L) zu greift und eine Zugriffsblockierung verursacht wird, der Mastersimulator (1f, 1s, 2f und 2s) den Pfadmanager (S) derart steuert, dass der Mastersimulator (1f, 1s, 2f und 2s) durch Verwendung der Pfadumschaltung aktiviert wird, welche durch den Pfadmanager (S) durchgeführt wird.
einem Mastersimulator (1f, 1s, 2f und 2s), der einen Bus-Master simuliert;
einem Slave-Simulator (L), der einen Bus-Slave simuliert;
einem Funktionsmanager (F), der nacheinander den Mastersimulator (1f, 1s, 2f und 2s) und den Slave-Simulator (L) durch Verwendung eines Funktionsaufrufs aktiviert; und
einem Pfadmanager (S), der den Mastersimulator (1f, 1s, 2f und 2s) durch Verwen dung einer Pfadumschaltung aktiviert,
wobei, wenn der durch Verwendung des Funktionsaufrufs von dem Funktionsma nager (F) aktivierte Mastersimulator (1f, 1s, 2f und 2s) auf den Slave-Simulator (L) zu greift und eine Zugriffsblockierung verursacht wird, der Mastersimulator (1f, 1s, 2f und 2s) den Pfadmanager (S) derart steuert, dass der Mastersimulator (1f, 1s, 2f und 2s) durch Verwendung der Pfadumschaltung aktiviert wird, welche durch den Pfadmanager (S) durchgeführt wird.
2. Systemsimulator nach Anspruch 1, bei dem der Pfadmanager (S) ferner den Slave-Si
mulator (L) durch Verwendung des Funktionsaufrufs aktiviert.
3. Systemsimulator nach Anspruch 2,
bei dem nach Aufhebung der Zugriffsblockierung der Pfadmanager (S) den Funkti
onsmanager (F) derart steuert, dass der Mastersimulator (1f, 1s, 2f und 2s) durch Verwen
dung des genannten Funktionsaufrufs aktiviert wird.
4. Systemsimulator nach Anspruch 1, bei dem nach Aufhebung der Zugriffsblockierung
der Pfadmanager (S) den Funktionsmanager (F) derart steuert, dass der Mastersimulator
(1f, 1s, 2f und 2s) durch Verwendung des Funktionsaufrufs aktiviert wird.
5. Simulationsverfahren, mit:
- 1. (1) Vorsehen eines Mastersimulators (1f, 1s, 2f und 2s) zum Simulieren eines Bus- Masters und eines Slave-Simulators (L) zum Simulieren eines Bus-Slave;
- 2. (2) nacheinander Betätigen des Mastersimulators (1f, 1s, 2f und 2s) und des Slave- Simulators (L) durch Verwendung eines Funktionsaufrufs; und
- 3. (3) Betätigen des Mastersimulators (1f, 1s, 2f und 2s) durch Verwendung einer Pfadumschaltung, wenn der durch Verwendung des Funktionsaufrufs aktivierte Mastersi mulator (1f, 1s, 2f und 2s) auf den Slave-Simulator (L) zugreift und eine Zugriffsblockie rung verursacht.
6. Simulationsverfahren nach Anspruch 5, bei dem der Schritt (3) ferner den Slave-Simu
lator (L) durch Verwendung des Funktionsaufrufs aktiviert.
7. Simulationsverfahren nach Anspruch 6, mit ferner:
Betätigung des Mastersimulators (1f, 1s, 2f und 2s) durch Verwendung des Funkti onsaufrufs, nachdem die Zugriffsblockierung aufgehoben ist.
Betätigung des Mastersimulators (1f, 1s, 2f und 2s) durch Verwendung des Funkti onsaufrufs, nachdem die Zugriffsblockierung aufgehoben ist.
8. Simulationsverfahren nach Anspruch 5, mit ferner:
Betätigung des Mastersimulators (1f, 1s, 2f und 2s) durch Verwendung des Funkti onsaufrufs, nachdem die Zugriffsblockierung aufgehoben ist.
Betätigung des Mastersimulators (1f, 1s, 2f und 2s) durch Verwendung des Funkti onsaufrufs, nachdem die Zugriffsblockierung aufgehoben ist.
9. Simulationsprogramm betrieben auf einem Computer, mit:
einem Mastersimulationsprogramm (1f, 1s, 2f und 2s), das einen Bus-Master simu liert;
einem Slave-Simulationsprogramm (L), das einen Bus-Slave simuliert;
einem Funktionsmanagerprogramm (F), das nacheinander das Mastersimulations programm (1f, 1s, 2f und 2s) und das Slave-Simulationsprogramm (L) durch Verwendung eines Funktionsaufrufs aktiviert; und
einem Pfadmanagerprogramm (S), das das Mastersimulationsprogramm (1f, 1s, 2f und 2s) durch Verwendung einer Pfadumschaltung aktiviert,
wobei, wenn das durch Verwendung des Funktionsaufrufs von dem Funktionsma nagerprogramm (F) aktivierte Mastersimulationsprogramm (1f, 1s, 2f und 2s) auf das Slave-Simulationsprogramm (L) zugreift und eine Zugriffsblockierung verursacht wird, das Mastersimulationsprogramm (1f, 1s, 2f und 2s) das Pfadmanagerprogramm (S) derart steuert, dass das Mastersimulationsprogramm (1f, 1d, 2f und 2s) durch Verwendung der Pfadumschaltung aktiviert wird, die durch das Pfadmanagerprogramm (S) durchgeführt wird.
einem Mastersimulationsprogramm (1f, 1s, 2f und 2s), das einen Bus-Master simu liert;
einem Slave-Simulationsprogramm (L), das einen Bus-Slave simuliert;
einem Funktionsmanagerprogramm (F), das nacheinander das Mastersimulations programm (1f, 1s, 2f und 2s) und das Slave-Simulationsprogramm (L) durch Verwendung eines Funktionsaufrufs aktiviert; und
einem Pfadmanagerprogramm (S), das das Mastersimulationsprogramm (1f, 1s, 2f und 2s) durch Verwendung einer Pfadumschaltung aktiviert,
wobei, wenn das durch Verwendung des Funktionsaufrufs von dem Funktionsma nagerprogramm (F) aktivierte Mastersimulationsprogramm (1f, 1s, 2f und 2s) auf das Slave-Simulationsprogramm (L) zugreift und eine Zugriffsblockierung verursacht wird, das Mastersimulationsprogramm (1f, 1s, 2f und 2s) das Pfadmanagerprogramm (S) derart steuert, dass das Mastersimulationsprogramm (1f, 1d, 2f und 2s) durch Verwendung der Pfadumschaltung aktiviert wird, die durch das Pfadmanagerprogramm (S) durchgeführt wird.
10. Simulationsprogramm nach Anspruch 9, bei dem das Pfadmanagerprogramm (S) ferner
das Slave-Simulationsprogramm (L) durch Verwendung des Funktionsaufrufs aktiviert.
11. Simulationsprogramm nach Anspruch 10, bei dem nach Aufhebung der Zugriffsblo
ckierung das Pfadmanagerprogramm (S) das Funktionsmanagerprogramm (F) derart steu
ert, dass das Mastersimulationsprogramm (1f, 1s, 2f und 2s) durch Verwendung des Funk
tionsaufrufs aktiviert wird.
12. Simulationsprogramm nach Anspruch 9, bei dem nach Aufhebung der Zugriffsblockie
rung das Pfadmanagerprogramm (S) das Funktionsmanagerprogramm (F) derart steuert,
dass das Mastersimulationsprogramm (1f, 1s, 2f und 2s) unter Verwendung des Funktions
aufrufs aktiviert wird.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001098738A JP4529063B2 (ja) | 2001-03-30 | 2001-03-30 | システムシミュレータ、シミュレーション方法及びシミュレーションプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
DE10213837A1 true DE10213837A1 (de) | 2002-12-12 |
Family
ID=18952360
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10213837A Withdrawn DE10213837A1 (de) | 2001-03-30 | 2002-03-27 | Systemsimulator, Simulationsverfahren und Simulationsprogramm |
Country Status (3)
Country | Link |
---|---|
US (1) | US7246052B2 (de) |
JP (1) | JP4529063B2 (de) |
DE (1) | DE10213837A1 (de) |
Families Citing this family (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7366708B2 (en) | 1999-02-18 | 2008-04-29 | Oracle Corporation | Mechanism to efficiently index structured data that provides hierarchical access in a relational database system |
US7321900B1 (en) | 2001-06-15 | 2008-01-22 | Oracle International Corporation | Reducing memory requirements needed to represent XML entities |
US7092967B1 (en) * | 2001-09-28 | 2006-08-15 | Oracle International Corporation | Loadable units for lazy manifestation of XML documents |
US7047250B1 (en) | 2001-09-28 | 2006-05-16 | Oracle International Corporation | Indexing to efficiently manage versioned data in a database system |
AU2002334721B2 (en) | 2001-09-28 | 2008-10-23 | Oracle International Corporation | An index structure to access hierarchical data in a relational database system |
US7308474B2 (en) * | 2002-11-06 | 2007-12-11 | Oracle International Corporation | Techniques for scalably accessing data in an arbitrarily large document by a device with limited resources |
JP2004334410A (ja) | 2003-05-06 | 2004-11-25 | Hitachi Ltd | 情報処理装置及びプロセッサ |
US8229932B2 (en) | 2003-09-04 | 2012-07-24 | Oracle International Corporation | Storing XML documents efficiently in an RDBMS |
US8694510B2 (en) | 2003-09-04 | 2014-04-08 | Oracle International Corporation | Indexing XML documents efficiently |
US7493305B2 (en) | 2004-04-09 | 2009-02-17 | Oracle International Corporation | Efficient queribility and manageability of an XML index with path subsetting |
US7499915B2 (en) * | 2004-04-09 | 2009-03-03 | Oracle International Corporation | Index for accessing XML data |
US7398265B2 (en) | 2004-04-09 | 2008-07-08 | Oracle International Corporation | Efficient query processing of XML data using XML index |
US7366735B2 (en) | 2004-04-09 | 2008-04-29 | Oracle International Corporation | Efficient extraction of XML content stored in a LOB |
US7440954B2 (en) | 2004-04-09 | 2008-10-21 | Oracle International Corporation | Index maintenance for operations involving indexed XML data |
US7930277B2 (en) | 2004-04-21 | 2011-04-19 | Oracle International Corporation | Cost-based optimizer for an XML data repository within a database |
US20050289175A1 (en) * | 2004-06-23 | 2005-12-29 | Oracle International Corporation | Providing XML node identity based operations in a value based SQL system |
EP1759315B1 (de) | 2004-06-23 | 2010-06-30 | Oracle International Corporation | Effiziente auswertung von abfragen mittels übersetzung |
US8566300B2 (en) | 2004-07-02 | 2013-10-22 | Oracle International Corporation | Mechanism for efficient maintenance of XML index structures in a database system |
US7885980B2 (en) | 2004-07-02 | 2011-02-08 | Oracle International Corporation | Mechanism for improving performance on XML over XML data using path subsetting |
US7523131B2 (en) | 2005-02-10 | 2009-04-21 | Oracle International Corporation | Techniques for efficiently storing and querying in a relational database, XML documents conforming to schemas that contain cyclic constructs |
US20060212450A1 (en) * | 2005-03-18 | 2006-09-21 | Microsoft Corporation | Temporary master thread |
JP2006343942A (ja) * | 2005-06-08 | 2006-12-21 | Nec Electronics Corp | バスシステム設計方法と装置 |
US7406478B2 (en) * | 2005-08-11 | 2008-07-29 | Oracle International Corporation | Flexible handling of datetime XML datatype in a database system |
US9367642B2 (en) | 2005-10-07 | 2016-06-14 | Oracle International Corporation | Flexible storage of XML collections within an object-relational database |
US8554789B2 (en) * | 2005-10-07 | 2013-10-08 | Oracle International Corporation | Managing cyclic constructs of XML schema in a rdbms |
US8024368B2 (en) * | 2005-10-07 | 2011-09-20 | Oracle International Corporation | Generating XML instances from flat files |
US8073841B2 (en) | 2005-10-07 | 2011-12-06 | Oracle International Corporation | Optimizing correlated XML extracts |
US8949455B2 (en) | 2005-11-21 | 2015-02-03 | Oracle International Corporation | Path-caching mechanism to improve performance of path-related operations in a repository |
US7933928B2 (en) | 2005-12-22 | 2011-04-26 | Oracle International Corporation | Method and mechanism for loading XML documents into memory |
US7730032B2 (en) | 2006-01-12 | 2010-06-01 | Oracle International Corporation | Efficient queriability of version histories in a repository |
US9229967B2 (en) * | 2006-02-22 | 2016-01-05 | Oracle International Corporation | Efficient processing of path related operations on data organized hierarchically in an RDBMS |
US8510292B2 (en) | 2006-05-25 | 2013-08-13 | Oracle International Coporation | Isolation for applications working on shared XML data |
US7933935B2 (en) * | 2006-10-16 | 2011-04-26 | Oracle International Corporation | Efficient partitioning technique while managing large XML documents |
US7797310B2 (en) | 2006-10-16 | 2010-09-14 | Oracle International Corporation | Technique to estimate the cost of streaming evaluation of XPaths |
US7836098B2 (en) * | 2007-07-13 | 2010-11-16 | Oracle International Corporation | Accelerating value-based lookup of XML document in XQuery |
JP4888272B2 (ja) * | 2007-07-30 | 2012-02-29 | 富士通セミコンダクター株式会社 | ソフトウェアのシミュレーション方法、ソフトウェアのシミュレーションのためのプログラム、及びソフトウェアのシミュレーション装置 |
US7840609B2 (en) * | 2007-07-31 | 2010-11-23 | Oracle International Corporation | Using sibling-count in XML indexes to optimize single-path queries |
US7991768B2 (en) | 2007-11-08 | 2011-08-02 | Oracle International Corporation | Global query normalization to improve XML index based rewrites for path subsetted index |
US8543898B2 (en) | 2007-11-09 | 2013-09-24 | Oracle International Corporation | Techniques for more efficient generation of XML events from XML data sources |
US8250062B2 (en) | 2007-11-09 | 2012-08-21 | Oracle International Corporation | Optimized streaming evaluation of XML queries |
US9842090B2 (en) | 2007-12-05 | 2017-12-12 | Oracle International Corporation | Efficient streaming evaluation of XPaths on binary-encoded XML schema-based documents |
US8429196B2 (en) | 2008-06-06 | 2013-04-23 | Oracle International Corporation | Fast extraction of scalar values from binary encoded XML |
CN101645057B (zh) * | 2008-08-06 | 2012-07-18 | 中兴通讯股份有限公司 | 一种防止cpu局域总线挂死的方法及装置 |
US7958112B2 (en) | 2008-08-08 | 2011-06-07 | Oracle International Corporation | Interleaving query transformations for XML indexes |
US8219563B2 (en) * | 2008-12-30 | 2012-07-10 | Oracle International Corporation | Indexing mechanism for efficient node-aware full-text search over XML |
US8126932B2 (en) * | 2008-12-30 | 2012-02-28 | Oracle International Corporation | Indexing strategy with improved DML performance and space usage for node-aware full-text search over XML |
Family Cites Families (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4506324A (en) * | 1982-03-08 | 1985-03-19 | The United States Of America As Represented By The Secretary Of The Navy | Simulator interface system |
US4868741A (en) * | 1983-07-22 | 1989-09-19 | Texas Instruments Incorporated | Computer bus deadlock prevention |
EP0357075A3 (de) * | 1988-09-02 | 1991-12-11 | Fujitsu Limited | Datensteuerungsvorrichtung und System mit Anwendung dieser Vorrichtung |
JPH0561951A (ja) * | 1991-08-30 | 1993-03-12 | Fujitsu Ltd | イメージ処理装置 |
JP3466212B2 (ja) * | 1991-09-17 | 2003-11-10 | インテル・コーポレーション | コンピュータシステム |
DE69230428T2 (de) * | 1991-09-27 | 2000-08-03 | Sun Microsystems, Inc. | Verklemmungserkennung und Maskierung enthaltende Busarbitrierungsarchitektur |
US5355455A (en) * | 1991-11-19 | 1994-10-11 | International Business Machines Corporation | Method and apparatus for avoiding deadlock in a computer system with two or more protocol-controlled buses interconnected by a bus adaptor |
US5448709A (en) * | 1992-10-13 | 1995-09-05 | Compaq Computer Corporation | Disk array controller having command descriptor blocks utilized by bus master and bus slave for respectively performing data transfer operations |
US5717873A (en) * | 1993-09-30 | 1998-02-10 | Intel Corporation | Deadlock avoidance mechanism and method for multiple bus topology |
US5469435A (en) * | 1994-01-25 | 1995-11-21 | Apple Computer, Inc. | Bus deadlock avoidance during master split-transactions |
JPH07281925A (ja) * | 1994-04-06 | 1995-10-27 | Fujitsu Ltd | マルチプロセッサシミュレーション装置 |
US5493672A (en) * | 1994-05-16 | 1996-02-20 | Sun Microsystems, Inc. | Concurrent simulation of host system at instruction level and input/output system at logic level with two-way communication deadlock resolution |
US6279124B1 (en) * | 1996-06-17 | 2001-08-21 | Qwest Communications International Inc. | Method and system for testing hardware and/or software applications |
JP3175757B2 (ja) * | 1996-08-13 | 2001-06-11 | 日本電気株式会社 | デバッグシステム |
US6058465A (en) * | 1996-08-19 | 2000-05-02 | Nguyen; Le Trong | Single-instruction-multiple-data processing in a multimedia signal processor |
JP2830857B2 (ja) * | 1996-09-09 | 1998-12-02 | 三菱電機株式会社 | データストレージシステム及びデータストレージ管理方法 |
US5832276A (en) * | 1996-10-07 | 1998-11-03 | International Business Machines Corporation | Resolving processor and system bus address collision in a high-level cache |
JP3424548B2 (ja) * | 1998-04-08 | 2003-07-07 | 松下電器産業株式会社 | 組み込み機器用ソフトウエア論理シミュレータ |
HUP0301274A2 (en) * | 1998-09-30 | 2003-08-28 | Cadence Design Systems | Block based design methodology |
US6826749B2 (en) * | 1998-12-08 | 2004-11-30 | Nazomi Communications, Inc. | Java hardware accelerator using thread manager |
US6466898B1 (en) * | 1999-01-12 | 2002-10-15 | Terence Chan | Multithreaded, mixed hardware description languages logic simulation on engineering workstations |
JP2000276359A (ja) * | 1999-03-23 | 2000-10-06 | Sony Corp | 情報処理装置、プログラム初期化方法及びプログラム提供媒体 |
US6507808B1 (en) * | 1999-06-23 | 2003-01-14 | International Business Machines Corporation | Hardware logic verification data transfer checking apparatus and method therefor |
US6714958B1 (en) * | 1999-07-28 | 2004-03-30 | International Business Machines Corporation | Detecting and causing latent deadlocks in multi-threaded programs |
US6490642B1 (en) * | 1999-08-12 | 2002-12-03 | Mips Technologies, Inc. | Locked read/write on separate address/data bus using write barrier |
JP2001160080A (ja) * | 1999-12-02 | 2001-06-12 | Nec Corp | オブジェクト指向言語によるシステムのシミュレーション方法、装置及びそのプログラムを記録した記録媒体 |
GB2362729B (en) * | 1999-12-23 | 2004-02-11 | St Microelectronics Sa | Memory access debug facility |
KR100392569B1 (ko) * | 2000-10-28 | 2003-07-23 | (주)다이나릿시스템 | 반도체 칩의 논리 기능 검증용 에뮬레이터 장치 및 방법 |
US6981077B2 (en) * | 2000-12-22 | 2005-12-27 | Nortel Networks Limited | Global access bus architecture |
US7069422B2 (en) * | 2000-12-22 | 2006-06-27 | Modelski Richard P | Load-shift carry instruction |
US20020124085A1 (en) * | 2000-12-28 | 2002-09-05 | Fujitsu Limited | Method of simulating operation of logical unit, and computer-readable recording medium retaining program for simulating operation of logical unit |
US7165094B2 (en) * | 2001-03-09 | 2007-01-16 | Sonics, Inc. | Communications system and method with non-blocking shared interface |
US7103887B2 (en) * | 2001-06-27 | 2006-09-05 | Sun Microsystems, Inc. | Load-balancing queues employing LIFO/FIFO work stealing |
US6834365B2 (en) * | 2001-07-17 | 2004-12-21 | International Business Machines Corporation | Integrated real-time data tracing with low pin count output |
US7076416B2 (en) * | 2001-08-20 | 2006-07-11 | Sun Microsystems, Inc. | Method and apparatus for evaluating logic states of design nodes for cycle-based simulation |
US7054910B1 (en) * | 2001-12-20 | 2006-05-30 | Emc Corporation | Data replication facility for distributed computing environments |
US6981081B2 (en) * | 2002-12-19 | 2005-12-27 | Intel Corporation | Method for SMI arbitration timeliness in a cooperative SMI/driver use mechanism |
US7089340B2 (en) * | 2002-12-31 | 2006-08-08 | Intel Corporation | Hardware management of java threads utilizing a thread processor to manage a plurality of active threads with synchronization primitives |
US7000047B2 (en) * | 2003-04-23 | 2006-02-14 | International Business Machines Corporation | Mechanism for effectively handling livelocks in a simultaneous multithreading processor |
-
2001
- 2001-03-30 JP JP2001098738A patent/JP4529063B2/ja not_active Expired - Fee Related
-
2002
- 2002-03-27 DE DE10213837A patent/DE10213837A1/de not_active Withdrawn
- 2002-03-28 US US10/107,056 patent/US7246052B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP4529063B2 (ja) | 2010-08-25 |
JP2002297414A (ja) | 2002-10-11 |
US7246052B2 (en) | 2007-07-17 |
US20020143512A1 (en) | 2002-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE10213837A1 (de) | Systemsimulator, Simulationsverfahren und Simulationsprogramm | |
DE69330294T2 (de) | Inter-hierarchisches Synchronisationssystem und LSI, das dieses System verwendet | |
DE3903835C2 (de) | ||
DE19747396C2 (de) | Verfahren und Anordnung zur Schaffung einer Ferndiagnose für ein elektronisches System über ein Netz | |
DE69714472T2 (de) | Verfahren zum überprüfen eines integrierten speichers mit hilfe einer integrierten dma-schaltung | |
DE60318959T2 (de) | Einrichtung und verfahren zur prüfung von logischen eisenbahn-software-engines für kommandoanlagen insbesondere stationsanlagen | |
DE19742577C1 (de) | Schaltungsanordnung zur In-Circuit-Emulation eines Mikrocontrollers | |
DE2648229C2 (de) | ||
DE3852604T2 (de) | Mikrokomputersystem mit einem Masterprozessor und einem Sklavenprozessor. | |
DE3338333A1 (de) | Logiksimulatorgeraet zur gueltigkeitspruefung einer logikstruktur | |
DE3606650A1 (de) | Hardware logik-simulator | |
DE3508291A1 (de) | Realzeit-datenverarbeitungssystem | |
DE10333817A1 (de) | Emulationsschnittstellensystem | |
DE4437272C2 (de) | Automatisch betriebene Datenverarbeitungsanlage | |
DE3702408C2 (de) | ||
DE112018004577T5 (de) | Multiprozessorkern-vorrichtung mit mbist | |
DE112020004065T5 (de) | Komplexe Daisy-Chain-Befehle | |
DE69914568T2 (de) | Vorrichtung, Verfahren und System zur Dateisynchronisierung in einem Fehlertoleranten Netzwerk | |
EP0048991B1 (de) | Verfahren und Anordnung zur Behandlung von Unterbrechungsbedingungen während des Arbeitsablaufes in Datenverarbeitungsanlagen mit Mikroprogrammsteuerung | |
EP0104490A2 (de) | Verfahren und Vorrichtung zur Synchronisation von Datenverarbeitungsanlagen | |
DE3037475A1 (de) | Schnittstellenschaltungsanordnung fuer eine datenverarbeitungsanlage | |
EP1449083B1 (de) | Verfahren zum debuggen rekonfigurierbarer architekturen | |
DE69122001T2 (de) | Integrierte Schaltung mit einer Standardzelle, einer Anwendungszelle und einer Prüfzelle | |
DE69315364T2 (de) | Verfahren zum Testen einer integrierten Schaltung und eine integrierte Schaltung mit einer Vielzahl von Funktionskomponenten und Verbindungs- und Schalter-Testkomponenten in verbindenden Kanälen zwischen Funktionskomponenten | |
DE102008046397A1 (de) | Verifizierung auf Basis von Transaktionen eines Systems auf einem Chip auf Systemebene durch Übersetzen von Transaktionen in Maschinencodierung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8127 | New person/name/address of the applicant |
Owner name: NEC ELECTRONICS CORP., KAWASAKI, KANAGAWA, JP |
|
8130 | Withdrawal |