DE69835872T2 - System zur Emulation einer elektronischen Vorrichtung - Google Patents

System zur Emulation einer elektronischen Vorrichtung Download PDF

Info

Publication number
DE69835872T2
DE69835872T2 DE69835872T DE69835872T DE69835872T2 DE 69835872 T2 DE69835872 T2 DE 69835872T2 DE 69835872 T DE69835872 T DE 69835872T DE 69835872 T DE69835872 T DE 69835872T DE 69835872 T2 DE69835872 T2 DE 69835872T2
Authority
DE
Germany
Prior art keywords
data
electronic device
unit
results
emulating
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.)
Expired - Lifetime
Application number
DE69835872T
Other languages
English (en)
Other versions
DE69835872D1 (de
Inventor
Giuseppe 20099 Sesto San Giovanni Bosisio
Ferruccio 20010 Cornaredo Zulian
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bull SA
Original Assignee
Bull SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Bull SA filed Critical Bull SA
Application granted granted Critical
Publication of DE69835872D1 publication Critical patent/DE69835872D1/de
Publication of DE69835872T2 publication Critical patent/DE69835872T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2268Logging of test results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/331Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

  • Die vorliegende Erfindung bezieht sich auf ein System zum Emulieren einer elektronischen Vorrichtung und insbesondere auf ein System gemäß dem Vorcharakterisierungssatz des ersten Anspruchs.
  • Eine elektronische Vorrichtung besteht aus einem Satz von Schaltungen (Hardware), die konzipiert und hergestellt sind, um eine spezifische Aufgabe zu erfüllen. Die elektronische Vorrichtung ist im Allgemeinen in ein geeignetes System so eingegliedert, dass dieselbe mit externen Elementen verbunden werden kann, um Eingangssignale (Daten) zu empfangen; Operationen verschiedener Typen (gemäß spezifischer Anforderungen) werden bei den Eingangsdaten so ausgeführt, dass Ausgangssignale (Ergebnisse) erhalten werden, die an die externen Elemente geliefert werden.
  • Eine elektronische Vorrichtung besteht im Allgemeinen aus einer integrierten Schaltung, die für eine gegebene Anwendung spezifisch ist (anwendungsspezifische integrierte Schaltung oder ASIC). Die integrierte Schaltung ist geeignet aufgebaut (kundenspezifisch), dieselbe wird unter Verwendung einer kanallosen Gate-Schaltung hergestellt, bei der die Verbindungen zwischen den verschiedenen Komponenten nur durch eine Endmetallisierungsmaske kundenspezifisch gemacht werden (halb-kundenspezifisch), oder unter Verwendung eines feldprogrammierbaren Gatter-Arrays (oder FPGA), das durch ein Aktivieren geeigneter interner Verbindungen kundenspezifisch gemacht werden kann; alternativ dazu wird die elektronische Vorrichtung unter Verwendung von geeignet verbundenen Komponenten mit einem größeren oder kleineren Maß an Integration hergestellt (festverdrahtete Logik). Diese elektronischen Vorrichtungen unterscheiden sich von programmierten Logiksystemen, bei denen eine Integrationskomponente sehr großen Maßstabs (Prozessor), die in der Lage ist, Anweisungen eines geeigneten Programms auszufüh ren, bereitgestellt ist; durch ein Variieren dieser Anweisungen ist es dann möglich, den Prozessor zu programmieren, um zu unterschiedlichen Zeiten unterschiedliche Aufgaben auszuführen.
  • Eine elektronische Vorrichtung, wie z. B. eine ASIC, die dazu vorgesehen ist, ein Element eines Computersystems zu bilden, wird im Allgemeinen durch ein Beschreiben der elektronischen Vorrichtung mittels geeigneter Sprachen hoher Ebene (Hardwareentwurfssprache oder HDL) konzipiert, die in der Lage sind, die Schaltungsstruktur der elektronischen Vorrichtung automatisch zu erzeugen.
  • Bevor die echte elektronische Vorrichtung physisch hergestellt wird, wird ihr Betrieb durch ein Verwenden von Softwaresimulatoren getestet. Auf einer ersten Stufe der Softwaresimulation wird der Betrieb der elektronischen Vorrichtung in dem isolierten (alleinstehenden) Zustand geprüft. Zu diesem Zweck werden geeignete Softwareanwendungen (Simulatoren) verwendet, die es ermöglichen, den Betrieb der elektronischen Vorrichtung (die in HDL beschrieben ist) zu simulieren, indem spezifische Werte an den Eingang (Reizvorrichtung) angelegt werden und die Ergebnisse an dem Ausgang und gegebenenfalls die Werte von internen Signalen (Zwischenergebnisse) geprüft werden. Auf einer zweiten Stufe der Softwaresimulation wird die Wechselwirkung der elektronischen Vorrichtung mit den externen Elementen, die mit derselben verbunden sind, geprüft; dies erfordert jedoch die Beschreibung in HDL auch der externen Elemente (oder nur einer Schnittstelle derselben). In jedem Fall liegt die Ausführungsgeschwindigkeit des Softwaresimulators in der Größenordnung von 50.000 bis 100.000 Mal unter derjenigen der echten elektronischen Vorrichtung. Zum Beispiel wird ein Computersystem mit einer Betriebsgeschwindigkeit von 100 MHz mit einer Frequenz von 1-2 kHz simuliert, und deshalb ist es nur möglich, eine sehr geringe Anzahl von Anweisungen des Computersystems und nicht ein ganzes Programm zu simulieren.
  • Aus diesem Grund werden im Allgemeinen Hardwareemulatoren verwendet, um den Betrieb der elektronischen Vorrichtung gründlicher zu testen. Hardwareemulatoren basieren auf der Verwendung eines Prototyps der elektronischen Vorrichtung, der z. B. unter Verwendung eines FPGA hergestellt wird. Der Prototyp wird physisch mit den externen Elementen des echten Systems mittels geeigneter Anschlüsse verbunden, von denen jeder mit einem Kabel zur Verbindung mit dem Prototyp ausgestattet ist. In dem Fall von ziemlich komplexen elektronischen Vorrichtungen erfordert diese Lösung jedoch die Verwendung einer Anzahl von FPAGs, die geeignet miteinander verbunden sind. Die verschiedenen FPAGs können mittels geeigneter programmierbarer Schalter verbunden werden; diese Lösung ist bezüglich der Ausführungsgeschwindigkeit (in der Größenordnung von 10 bis 20 Mal unter derjenigen der echten elektronischen Vorrichtung, wobei die Betriebsfrequenz des Computersystems z. B. 5-10 MHz beträgt) ziemlich effizient, wirft jedoch aufgrund der beschränkten Möglichkeiten der Verbindung praktische Schwierigkeiten auf. Alternativ dazu wird ein System von FPAGs verwendet, bei dem bereits bestehende Verbindungen durch eine Software durch einen eigens vorgesehenen Arbeitsplatzrechner gesteuert werden; diese Lösung ist außerordentlich teuer und verringert die Ausführungsgeschwindigkeit erheblich (in der Größenordnung von 100 bis 200 Mal unter derjenigen der echten elektronischen Vorrichtung, wobei die Betriebsfrequenz des Computersystems z. B. 0,5-1 MHz beträgt). In jedem Fall zieht das Herstellen der Prototypen hohe Kosten nach sich, und jegliche Modifizierung derselben erfordert sehr lange Zeitperioden; außerdem ist die Ausführungsgeschwindigkeit des Computersystems durch die Betriebsfrequenz des Prototypen begrenzt und ist immer erheblich geringer als die echte Betriebsgeschwindigkeit.
  • Ein Beispiel des Hardwareemulationslösungsansatzes ist durch Barroso L. u. a. in „RPM: a rapid prototyping engine for multiprocessor systems"; Computer, Bd. 28, Nr. 2, 1. Februar 1995, S. 26-34, XP000502736 beschrieben.
  • Es sei auch darauf hingewiesen, dass beide Lösungen (Softwaresimulation und Hardwareemulation) die vollständige Beschreibung der elektronischen Vorrichtung in HDL zum Prüfen ihres Betriebs erfordern.
  • Die Aufgabe der vorliegenden Erfindung besteht darin, die im Vorhergehenden genannten Nachteile zu beseitigen. Um diese Aufgabe zu erreichen, wird ein System zum Emulieren einer elektronischen Vorrichtung vorgeschlagen, wie es in dem ersten Anspruch beschrieben ist.
  • Die vorliegende Erfindung schlägt auch eine Leiteinheit und eine programmierbare Einheit zur Verwendung bei diesem System und ein entsprechendes Verfahren zum Emulieren einer elektronischen Vorrichtung vor.
  • Weitere Charakteristika und die Vorteile des Verfahrens zum Emulieren einer elektronischen Vorrichtung gemäß der vorliegenden Erfindung werden aus der folgenden Beschreibung eines bevorzugten Ausführungsbeispiels der Erfindung, die zur Orientierung und ohne Einschränkung bereitgestellt ist, unter Bezugnahme auf die angehängten Figuren verstanden. Es zeigen:
  • 1 ein schematisches Blockdiagramm eines Computersystems, bei dem die vorliegende Erfindung verwendet werden kann;
  • 2 ein Ausführungsbeispiel des Systems zum Emulieren einer elektronischen Vorrichtung gemäß der vorliegenden Erfindung;
  • 3 im Detail die Pufferstruktur der Leiteinheit;
  • 4 ein schematisches Blockdiagramm eines Verfahrens, das verwendet wird, um den Dialog mit der Leiteinheit zu steuern;
  • 5a bis 5b in Zeitdiagrammen zwei Beispiele von Transaktio nen, die durch das Emulationssystem ausgeführt werden.
  • Insbesondere unter Bezugnahme auf 1 ist ein Computersystem 100 des cc-NUMA-Typs – cache-kohärenter uneinheitlicher Speicherzugriff – gezeigt. Das Computersystem 100 umfasst zwei oder mehr Knoten N1, N2, N3 und N4 (bei dem gezeigten Beispiel vier), die mittels eines entfernten Kommunikationskanals in Form einer Schleife 105 (REM LINK) verbunden sind.
  • Der Knoten N1 (ähnliche Überlegungen gelten für die anderen Knoten N2 bis N4) besteht aus einem Systembus 110 (SYS BUS), der unterschiedliche Abschnitte aufweist, wobei einer für die Übertragung von Adressen verwendet wird (der Adressbus), einer für die Übertragung von Daten (der Datenbus) und einer für die Übertragung von Befehlen (Steuerbus). Ein oder mehr Prozessoren (μP) C1, C2, C3, C4 (bei dem gezeigten Beispiel vier), von denen jeder normalerweise mit einem internen Speicher des Cache-Typs ausgestattet ist (im Allgemeinen mit zwei Ebenen), sind parallel mit dem Systembus 110 verbunden. Der Systembus 110 ist auch mit einer Lokalbrückeneinheit 115 (LOC BDG) verbunden, die die Verbindung mit einem lokalen Bus (in der Figur nicht gezeigt) steuert, mit dem eine Gruppe (Cluster) von Eingangs-/Ausgangs- (oder I/O-) Steuereinheiten verbunden ist. Der Knoten N1 umfasst einen lokalen Speicher 120 (LOC MEM), normalerweise von dem Dynamischer-Direktzugriff- (oder DRAM-) Typ, der mit dem Systembus 110 durch eine geeignete Steuereinheit (in der Figur nicht gezeigt) verbunden ist.
  • Eine Fernbrückeneinheit (REM BDG) 125 verbindet den Knoten N1 mit der entfernten Schleife 105 und steuert die Verbin dung des Knotens N1 mit den anderen Knoten N2 bis N4 des Computersystems 100. Insbesondere steuert die Fernbrückeneinheit 125 die verschiedenen Kommunikationsprotokolle des Systembusses 110 und der entfernten Schleife 105, ihre verschiedenen Zeitgebungen, die Übersetzung der Adressen, die bei dem Systembus 110 und bei der entfernten Schleife 105 verwendet werden, und Ähnliches.
  • Die Agenten C1-C4, 115, 120 und 125 sind gleichzeitig (im sogenannten Slave-Modus) mit dem Systembus 110 verbunden, so dass dieselben den Wert empfangen, der auf demselben übertragen wird; ein gegenseitig exklusiver Zugriff (im sogenannten Master-Modus) auf den Systembus 110 durch diese Agenten zum Senden eines gegebenen Werts wird durch eine geeignete Entscheidungseinheit (ARB) 130 gesteuert. Insbesondere ist die Entscheidungseinheit 130 mit den Agenten C1-C4, 115, 120 und 125 durch eigens vorgesehene Leitungen (des Steuerbusses) zum Austausch von Steuersignalen verbunden, die verwendet werden, um die Zugriffsanforderungen, das Gewähren eines Zugriffs und, falls nötig, die Belegung (falls dies keine feste Dauer hat) der verschiedenen Abschnitte (Adressen und Daten) des Systems 110 zu steuern.
  • Bei dem im Vorhergehenden beschriebenen Computersystem 100 kann jeder Prozessor C1-C4 sowohl auf Daten, die in dem lokalen Speicher 120 enthalten sind, als auch auf Daten, die in den lokalen Speichern der anderen Knoten N2-N4 enthalten sind, die als Ganzes durch den Begriff „entfernter Speicher" angezeigt sind, zugreifen. Es ist klar, dass die Zugriffszeit nicht einheitlich ist (daher der Name NUMA), da die Fernspeicherzugriffszeit viel länger als die Lokalspeicherzugriffszeit ist. Um die Fernspeicherzugriffszeit zu verringern, umfasst die Fernbrückeneinheit 125 im Allgemeinen einen Cache-Speicher 135, der entfernter Cache (RC) genannt wird, in dem entsprechende Daten des entfernten Speichers reproduziert sind.
  • Da die Daten sowohl in dem lokalen Speicher als auch in dem entfernten Speicher in den verschiedenen Cache-Speichern reproduziert werden können (interne Cache-Speicher in den Prozessoren oder entfernter Cache-Speicher), ist es nötig, ihre Kohärenz sicherzustellen (daher der Name „cc"). Bei dem Knoten N1 wird dies normalerweise mittels eines Nachprüfprozesses erreicht, bei dem die Agenten, die mit dem Systembus 110 verbunden sind, kontinuierlich die kohärenten Datenlese-/-schreibanforderungen überwachen, die auf demselben gesendet werden, um zu prüfen, ob diese Daten in ihren internen Cache-Speichern vorhanden sind.
  • Die Kohärenz der Daten in dem lokalen Speicher 120, die in den Cache-Speichern der anderen Knoten N2-N4 reproduziert sind, wird durch die Fernbrückeneinheit 125 gesteuert. Um die Anzahl von Zugriffen auf die anderen Knoten N2-N4 zu verringern, umfasst die Fernbrückeneinheit 125 im Allgemeinen einen Speicher 140, der ein Lokalspeicherverzeichnis (LMD) enthält, das für jeden Datenblock (Cache-Leitung) des lokalen Speichers spezifiziert, ob dieser in anderen Knoten reproduziert ist oder nicht, in welchem Knoten sich eine derartige Kopie befindet, und ob die Kopie modifiziert worden ist oder nicht.
  • Jede vollständige Logikoperation, die auf dem Systembus 110 durch die Agenten C1-C4, 115, 120 und 125 ausgeführt wird, wird im Allgemeinen als eine Transaktion beschrieben. Insbesondere wird ein Wert (ADR), der z. B. 64 Bits aufweist, der eine Adresse (die z. B. 40 Bits aufweist) eines Datenblocks (in dem lokalen Speicher, in einem internen Register eines Agenten, in dem entfernten Speicher oder dergleichen) anzeigt und von Attributen, die sich auf diese Adresse beziehen, auf dem Systembus 100 übertragen. Zum Beispiel zeigt ein Abschnitt des Werts ADR den Typ von Operation an, der benötigt wird (Lesen, Schreiben, Lesen mit der Absicht eines Modifizierens des Datenelements oder dergleichen); normalerweise werden die Datenblöcke nicht in einem geordneten Fluss gesteuert und können zu einem anfor dernden Prozessor in einer anderen Reihenfolge als derjenigen, in der dieselben angefordert wurden (außer der Reihe) geliefert werden, und deshalb umfasst der Wert ADR auch ein Tag bzw. eine Kennung (DTag), das bzw. die den anfordernden Prozessor und die Transaktion, die sich darauf bezieht, identifiziert. Die Übertragung eines Datenblocks (gelesen oder zu schreiben), der z. B. 512 Bits aufweist, wird im Allgemeinen durch ein Serialisieren der Operation in eine Anzahl von aufeinanderfolgenden Phasen ausgeführt, im Laufe von jeder von denen ein Abschnitt des Datenblocks, der z. B. 64 Bits aufweist, und das zugeordnete Identifizierungstag DTag übertragen werden. Andererseits werden Informationspakete (Adressen, Daten, Befehle), von denen jedes z. B. 768 Bits aufweist, auf der entfernten Schleife 105 übertragen.
  • Jede Transaktion, die auf dem Systembus 110 gesendet wird, bewirkt die Erzeugung (in spezifizierten aufeinanderfolgenden Momenten) von geeigneten Steuersignalen. Insbesondere sind die Agenten C1-C4, 115, 120 und 125 durch eigens vorgesehene Kanäle (des Steuerbusses) mit der Entscheidungseinheit 130 zum Senden eines Transaktionszustandssignals (AStatOut) verbunden; die Entscheidungseinheit 130 ist mit allen Agenten durch einen Mehrpunktkanal (des Steuerbusses) zum Senden eines kollektiven Transaktionszustandssignals (AStatIn) verbunden, das von dem Wert der verschiedenen AStatOut-Signale abhängig ist. Auf ähnliche Weise sind die Agenten C1-C4, 115, 120 und 125 durch eigens vorgesehene Kanäle (des Steuerbusses) mit der Entscheidungseinheit 130 zum Senden eines Nachprüfergebnissignals (ARespOut) verbunden; die Entscheidungseinheit 130 ist durch einen Mehrpunktkanal (des Steuerbusses) mit allen Agenten zum Senden eines kollektiven Nachprüfergebnissignals (ARespIn) verbunden, das von dem Wert der verschiedenen ARespOut-Signale abhängig ist.
  • Die vorliegende Erfindung ist jedoch auch zur Anwendung bei anderen Computersystemen geeignet, z. B. denjenigen mit einem Kommunikationskanal zwischen Knoten, der aus zwei oder mehr Schleifen besteht, einem Netzwerk (Maschen-Router), einem Bus oder einer anderen äquivalenten Kommunikationseinrichtung, mit einer anderen Anzahl von Knoten, einer anderen Anzahl von Prozessoren für jeden Knoten, wobei die I/O-Einheiten direkt mit dem Systembus verbunden sind, oder wobei die Entscheidungseinheit in der Fernbrückeneinheit bereitgestellt ist; alternativ dazu ist es möglich, ein Computersystem mit symmetrischen Prozessoren, ein Computersystem mit einem einzigen Prozessor, ein Industriesteuersystem, eine numerisch gesteuerte Maschine oder dergleichen zu verwenden. Allgemeiner kann die vorliegende Erfindung verwendet werden, um eine beliebige elektronische Vorrichtung zu emulieren, die mit externen Elementen verbunden ist, zum Empfangen von Eingangsdaten, zum Erzeugen von entsprechenden Ergebnissen und zum Liefern der Ergebnisse an dem Ausgang an die externen Elemente.
  • Unter jetziger Bezugnahme auf 2 (die Elemente, die im Vorhergehenden in 1 gezeigt wurden, sind durch die gleichen Bezugszeichen oder Symbole identifiziert) ist ein System 200 zum Emulieren der Fernbrückeneinheit (in 1 durch 125 angezeigt) des im Vorhergehenden beschriebenen Computersystems gezeigt; ähnliche Überlegungen gelten in dem Fall einer Emulation einer anderen Komponente des Computersystems, wie z. B. der Lokalspeichersteuereinheit, der Entscheidungseinheit, eines Prozessors oder dergleichen.
  • Die Fernbrückeneinheit ist durch eine Leiteinheit (Transponder oder TSP) 205 ersetzt, die auf eine ähnliche Weise mit der entfernten Schleife 105 und mit dem Systembus 110 verbunden ist. Insbesondere umfasst die Leiteinheit 205 eine Schnittstelleneinheit (SBInt) 210 zum Empfangen und Senden von Werten auf dem Systembus 110 und eine Schnittstelleneinheit (RLInt) 215 zum Empfangen und Senden von Werten auf der entfernten Schleife 105. Bevorzugt steuern die Schnittstellen 210, 215 auch direkt die Erkennung (und möglicherweise die Korrektur) von Fehlern bei dem empfangenen Wert und dergleichen.
  • Die Leiteinheit 205 umfasst auch eine Pufferstruktur 220, die verwendet wird, um die Werte, die von dem Systembus 110 und von der entfernten Schleife 105 empfangen werden, und die Werte, die auf denselben gesendet werden sollen, zu speichern. Insbesondere werden ein Eingangspuffer für den Systembus SBI und ein Ausgangspuffer für den Systembus SBO jeweils verwendet, um die empfangenen Werte zu schreiben und die Werte, die auf dem Systembus 110 gesendet werden sollen, zu lesen; auf ähnliche Weise werden ein Eingangspuffer für die entfernte Schleife RLI und ein Ausgangspuffer für die entfernte Schleife RLO jeweils verwendet, um die empfangenen Werte zu schreiben und die Werte, die auf der entfernten Schleife 105 gesendet werden sollen, zu lesen. Die Schnittstelle 210 ist mit den Puffern SBI, RLI und SBO, RLO verbunden, um die Werte, die von dem Systembus 110 und von der entfernten Schleife 105 empfangen werden, zu lesen und die Werte, die auf dem Systembus 110 und auf der entfernten Schleife 105 gesendet werden sollen, zu schreiben.
  • Die Pufferstruktur 220 besteht aus einer einzigen Speichereinheit, die logisch geeignet unterteilt ist; alternativ dazu sind zwei oder mehr Einheiten, eine Mehrzahl von Registern oder äquivalente Speichereinrichtungen zum Speichern der Daten und der Ergebnisse bereitgestellt. Die Leiteinheit 205 umfasst zwei getrennte Schnittstellen 210 und 215; alternativ dazu sind eine einzige Schnittstelle, zwei, drei oder mehr getrennte Schnittstellen oder eine äquivalente Schnittstelleneinrichtung bereitgestellt, um die Daten an dem Eingang von den externen Elementen zu empfangen und dieselben in die Speichereinrichtung zu schreiben und die Ergebnisse von der Speichereinrichtung zu lesen und dieselben an dem Ausgang an die externen Elemente zu liefern.
  • Ein Emulationsprozessor, z. B. der Prozessor C1, liest durch die Schnittstelle 210 (wie es im Folgenden im Detail beschrieben ist) die Werte, die in der Pufferstruktur 220 gespeichert sind, oder nur einige derselben. Der Emulationsprozessor C1 führt mittels eines geeigneten Programms die Operationen aus, die durch die Fernbrückeneinheit ausgeführt werden müssten. Zu diesem Zweck werden die Daten in dem entfernten Cache-Speicher und in dem Lokalspeicherverzeichnis der Fernbrückeneinheit (in 1 durch 135 bzw. 140 angezeigt) in einem Bereich des lokalen Speichers 120 gespeichert, der eigens für den Emulationsprozessor C1 vorgesehen ist. Die Ergebnisse, die von dem Emulationsprozessor C1 erhalten werden, werden dann durch die Schnittstelle 210 (wie es im Folgenden genauer beschrieben ist) in die Pufferstruktur 220 geschrieben, um nachfolgend durch die Schnittstelle 210 und durch die Schnittstelle 215 auf dem Systembus 110 bzw. auf der entfernten Schleife 105 gesendet zu werden. Bevorzugt ist der Emulationsprozessor C1 eigens für die Emulation der Fernbrückeneinheit vorgesehen, um eine höhere Ausführungsgeschwindigkeit sicherzustellen.
  • Diese Struktur weist den Vorteil auf, die Verwendung einer bereits bestehenden Komponente (des Prozessors C1) zum Emulieren des Verhaltens der elektronischen Vorrichtung zu gestatten, ohne zusätzliche Elemente zu erfordern; außerdem wird der Dialog zwischen der Leiteinheit 205 und dem Emulationsprozessor C1 durch den Systembus 110 unter Verwendung einer bereits bestehenden Funktionalität gesteuert. Alternativ dazu kann der Prozessor C1 auch andere Aufgaben in gleichzeitigem Modus ausführen, oder ein externer Prozessor oder ein Personalcomputer (PC), die mit der Leiteinheit durch eine zusätzliche Schnittstelle verbunden sind, oder allgemein eine beliebige programmierbare Einheit, die mit der Leiteinheit verbunden ist, können verwendet werden, um die Daten von der Speichereinrichtung zu erhalten, um die entsprechenden Ergebnisse zu bestimmen und um die Ergebnisse in die Speichereinrichtung zu schreiben.
  • Bei dem im Vorhergehenden beschriebenen System wird die zu emulierende elektronische Vorrichtung durch eine Leiteinheit ersetzt, die nur ihre Schnittstellen (unter Hinzufügung einiger Puffer zum Speichern der Daten und der Ergebnisse) behält, während die Datenverarbeitung durch eine andere programmierbare Einheit ausgeführt wird. Die Leiteinheit weist nur die Funktion eines Empfangens der Daten und eines Weiterleitens derselben zu der programmierbaren Einheit und die Funktion eines Empfangens der entsprechenden Ergebnisse von der programmierbaren Einheit und eines Weiterleitens derselben an die externen Bestimmungselemente auf.
  • Das Emulationssystem gemäß der vorliegenden Erfindung ermöglicht, dass die elektronische Vorrichtung direkt in dem realen System geprüft wird; gleichzeitig macht die programmierbare Einheit das Emulationssystem außerordentlich flexibel, wobei die Möglichkeit besteht, Modifizierungen sehr rasch vorzunehmen. Diese Lösung erleichtert deshalb das Testen der Funktionen der elektronischen Vorrichtung und vereinfacht den Prozess eines Fehleraufspürens (Fehlerbeseitigung) erheblich.
  • Die Leiteinheit kann direkt aus ähnlichen bereits bestehenden elektronischen Vorrichtungen abgeleitet werden. Die Leiteinheit und die programmierbare Einheit (insbesondere das Programm, das durch letztere ausgeführt wird) können auch zum Prüfen verschiedener ähnlicher elektronischer Vorrichtungen wiederverwendet werden, was dieses System außerordentlich wirtschaftlich macht.
  • Die Lösung gemäß der vorliegenden Erfindung ermöglicht, dass die Logikoperation der elektronischen Vorrichtung (Funktionscharakteristika) und die Korrektheit ihres Aufbaus (in HDL beschrieben) unabhängig geprüft werden.
  • Diese Lösung ermöglicht es, die Funktionscharakteristika der elektronischen Vorrichtung vor oder während der Phase der Herstellung der elektronischen Vorrichtung, in anderen Worten vor oder während ihrer Beschreibung in HDL zu prüfen. Somit wird das Prüfen der logischen Korrektheit der elektronischen Vorrichtung im Voraus ausgeführt, was insbesondere in dem Fall von hochkomplexen elektronischen Vorrichtungen vorteilhaft ist. Dies ermöglicht es auch, (vollständig geprüfte) Schaltungselemente allmählich während der Entwicklungsphasen der elektronischen Vorrichtung zu der Leiteinheit hinzuzufügen.
  • Die Leiteinheit weist eine sehr einfache Struktur auf, so dass dieselbe z. B. aus einem einzigen FPGA hergestellt werden kann, und ist folglich außerordentlich schnell. Die Leiteinheit kann deshalb mit einer Geschwindigkeit wirksam sein, die nahe bei der des realen Systems liegt. Es ist klar, dass die einzelnen Operationen, die durch die programmierbare Einheit ausgeführt werden, langsamer sind. Da jedoch bei vielen Anwendungen die Operationen, die durch die elektronische Vorrichtung ausgeführt werden sollen, nur einen kleinen Prozentsatz (in der Größenordnung von 5 %) der Gesamtanzahl von Operationen des Gesamtsystems ausmachen, ermöglicht es diese Lösung, eine Gesamtsystemgeschwindigkeit zu erhalten, die noch höher als diejenige von bekannten Hardwareemulationssystemen ist (mit einer Mehrzahl von verbundenen FPGAs).
  • Es ist somit möglich, die Operation des Gesamtsystems mit einer Geschwindigkeit zu prüfen, die der realen Geschwindigkeit nahe kommt (z. B. etwa 2-5 Mal langsamer als die reale Geschwindigkeit bei einer Betriebsfrequenz von 20-50 MHz). Dies ermöglicht, dass das gesamte System bei seiner realen Operation getestet wird, wobei seine tatsächlichen dynamischen Probleme berücksichtigt werden; z. B. ist es in dem Fall eines Computersystems möglich, ein komplettes Programm mit einer Geschwindigkeit auszuführen, die der realen Geschwindigkeit nahe kommt, wodurch eine vollständigere Abdeckung des Prüfprozesses erhalten wird, während auch Grenzbetriebsbedingungen und seltene Ereignisse getestet werden.
  • Diese Struktur ermöglicht, dass das System im Voraus modifiziert wird, um dasselbe an die neue elektronische Vorrichtung anzupassen, z. B. um seine Leistung zu optimieren (Abstimmung); somit kann die Betriebsumgebung der neuen elektronischen Vorrichtung parallel zu der Herstellung der Vorrichtung vorbereitet werden, ohne dass die Notwendigkeit besteht, auf die tatsächliche Verfügbarkeit der elektronischen Vorrichtung zu warten.
  • Unter jetziger Bezugnahme auf 3 (die Elemente, die im Vorhergehenden in 2 gezeigt wurden, sind durch die gleichen Bezugszeichen oder Symbole identifiziert) ist die Pufferstruktur der Leiteinheit genauer gezeigt.
  • Der Puffer SBI, der verwendet wird, wenn die Leiteinheit im Slave-Modus wirksam ist, umfasst einen Systembuseingangsadresspuffer (SBIA), der verwendet wird, um die Adresse eines Datenblocks und die entsprechenden Attribute (Typ von benötigter Operation, zugeordnetes Identifikationstag usw.) zu speichern, die von dem Systemadressbus empfangen werden; auf ähnliche Weise wird ein Systembuseingangsdatenpuffer (SBID) verwendet, um einen Datenblock zu speichern, der von dem Systemdatenbus empfangen wird. Die Puffer SBIA und SBID sind einem entsprechenden Indikatorregister (Flag) SBI_Busy zugeordnet, das den Zustand dieser Puffer anzeigt.
  • Der Puffer SBI ist auch einem Register RO_SBI zugeordnet, das verwendet wird, um das ARespOut-Signal zu speichern, das das Ergebnis der Nachprüfung für die Transaktion anzeigt, die in dem Puffer SBI gespeichert ist (an die Entscheidungseinheit zu senden); das Register RO_SBI ist einem entsprechenden Flag FRO_SBI zugeordnet, das den Zustand dieses Registers anzeigt. Auf ähnliche Weise wird ein Register RI_SBI verwendet, um das kollektive Nachprüfergeb nissignal ARespIn für die Transaktion zu speichern, die in dem Puffer SBI gespeichert ist (von der Entscheidungseinheit empfangen); das Register RI_SBI ist einem entsprechenden Flag FRI_SBI zugeordnet, das den Zustand dieses Registers anzeigt. Ein weiteres Flag FRIC_SBI wird verwendet, um anzuzeigen, dass die Transaktion, die in dem Puffer SBI gespeichert ist, gelöscht werden soll.
  • Der Puffer SBO, der verwendet wird, wenn die Leiteinheit im Master-Modus wirksam ist, umfasst einen Systembusausgangsadresspuffer (SBOA), der bei einer Lese- oder Schreibtransaktion verwendet wird, um die Adresse eines Datenblocks und die entsprechenden Attribute, die auf dem Systemadressbus gesendet werden sollen, zu speichern; ein Systembusausgangsdatenpuffer (SBOD) wird verwendet, um den entsprechenden Datenblock (der geschrieben werden soll) zu speichern. Die Puffer SBOA und SBOD sind einem entsprechenden Flag SBO_Busy zugeordnet, das den Zustand dieser Puffer anzeigt.
  • Der Puffer SBO umfasst auch einen Nur-Systembusausgangsdaten-Tagpuffer (SBDOT), der verwendet wird, um das Identifikationstag (das auf dem Systemadressbus gesendet werden soll) zu speichern, das einem Datenblock bei einer Eingriffstransaktion zugeordnet wird, bei der der Datenblock, der durch einen Prozessor angefordert wird, durch einen Eingriffsprozessor (eines anderen Knotens) geliefert wird, der diesen Datenblock in modifizierter Form in seinem eigenen Cache-Speicher aufweist; auf ähnliche Weise wird ein Nur-Systembusausgangsdaten-Puffer (SBDO) verwendet, um diesen Datenblock (der auf dem Systemdatenbus gesendet werden soll) zu speichern. Die Puffer SBDOT und SBDO sind einem entsprechenden Flag SBDO_Busy zugeordnet, das den Zustand dieser Puffer anzeigt.
  • Der Puffer SBO ist auch einem Register RI_SBO zugeordnet, das verwendet wird, um das Signal ARespIn zu speichern, das das kollektive Ergebnis des Nachprüfens für die Transaktion anzeigt, die in dem Puffer SBOA gespeichert ist (von der Entscheidungseinheit empfangen).
  • Der Fernschleifeneingangspuffer RLI wird verwendet, wenn die Leiteinheit im Slave-Modus wirksam ist, um ein Paket zu speichern, das von der entfernten Schleife empfangen wird; der Puffer RLI ist einem entsprechenden Flag RLI_Busy zugeordnet, das den Zustand dieses Puffers anzeigt. Auf ähnliche Weise wird der Fernschleifenausgangspuffer RLO verwendet, wenn die Leiteinheit im Master-Modus wirksam ist, um ein Paket zu speichern, das auf der entfernten Schleife gesendet werden soll; der Puffer RLO ist einem entsprechenden Flag RLO_Busy zugeordnet, das den Zustand dieses Puffers anzeigt.
  • Wenn die 2 und 3 nun gemeinsam betrachtet werden, empfängt die Schnittstelle 215 alle Transaktionen, die auf der entfernten Schleife 105 übertragen werden; wenn eine Transaktion an den Knoten N1 adressiert ist, speichert die Schnittstelle 215 das entsprechende Paket in dem Puffer RLI (falls dieser nicht besetzt ist); wenn das Paket in dem Puffer RLI vollständig verfügbar ist, setzt die Schnittstelle 215 automatisch das Flag RLI_Busy. Dieses Flag wird automatisch durch die Schnittstelle 215 rückgesetzt, sobald der Emulationsprozessor C1 den Inhalt des Puffers RLI vollständig gelesen hat.
  • Auf ähnliche Weise empfängt die Schnittstelle 210 alle Transaktionen, die auf dem Systembus 110 übertragen werden. Die Schnittstelle 210 prüft (mittels des Werts des Identifikationstags DTag) den Prozessor, der die Transaktion emittiert hat. Falls der anfordernde Prozessor sich von dem Emulationsprozessor C1 unterscheidet, wird die Transaktion in dem Puffer SBI gespeichert (falls derselbe nicht besetzt ist); gleichzeitig setzt die Schnittstelle 215 automatisch das Flag SBI_Busy und sendet an die Entscheidungseinheit 130 ein Transaktionszustandssignal AStatOut, das anzeigt, dass die Transaktion durch den anfordernden Prozessor wiederholt werden muss (AStatOut = Neuversuch). Bis das Flag SBI_Busy gesetzt wird, ist die Leiteinheit besetzt, und deshalb werden andere Transaktionen gelöscht und wiederholt (erneut versucht).
  • Die Transaktionen, die durch den Prozessor C1 emittiert werden und nicht an die Leiteinheit 205 adressiert sind, werden nicht beachtet, da dieselben direkt durch den Emulationsprozessor C1 geprüft werden. Wenn die Transaktion, die durch den Prozessor C1 emittiert wird, an die Leiteinheit 205 adressiert ist, führt die Schnittstelle 210 die angeforderten Operationen aus, die in dem Lesen oder Beschreiben der Pufferstruktur 220 bestehen (wie es im Folgenden genau beschrieben ist).
  • Wenn der Emulationsprozessor C1 (aus dem Inhalt des Flags SBI_Busy) feststellt, dass eine neue Transaktion in dem Puffer SBI gespeichert worden ist, führt derselbe alle angeforderten Operationen aus und bestimmt den Wert des entsprechenden Nachprüfergebnissignals ARespOut. An diesem Punkt speichert der Emulationsprozessor C1 diesen Wert in dem Register RO_SBI; gleichzeitig wird das entsprechende Flag FRO_SBI automatisch gesetzt (die Flags FRI_SBI und FRIC_SBI werden gleichzeitig rückgesetzt).
  • Die Schnittstelle 210 vergleicht alle Transaktionen, die von dem Systembus 110 empfangen werden, mit der Transaktion, die in dem Puffer SBI gespeichert ist (Adresse und Identifikationstag). Falls die empfangene Transaktion mit derjenigen übereinstimmt, die in dem Puffer SBI gespeichert ist, und das Flag FRO_SBI gesetzt ist, sendet die Schnittstelle 210 an die Entscheidungseinheit 130 ein Transaktionszustandssignal AStatOut, das anzeigt, dass die Transaktion geprüft werden kann (AStatOut = Null), und nachfolgend das Signal ARespOut, das das Ergebnis des Nachprüfens anzeigt, das in dem Register RO_SBI gespeichert ist. Gleichzeitig setzt die Schnittstelle 210 die Flags SBI_Busy und FRO_SBI zurück, so dass eine neue Transaktion in dem Puffer SBI gespeichert werden kann. Die Schnittstelle 210 empfängt dann von der Entscheidungseinheit 130 das entsprechende kollektive Nachprüfergebnissignal ARespIn für die vorhergehende Transaktion und speichert dasselbe in dem Register RI_SBI, wobei gleichzeitig das entsprechende Flag FRI_SBI gesetzt wird, derart, dass dieses Signal verfügbar ist, um nachfolgend durch den Emulationsprozessor C1 gelesen zu werden; es sei darauf hingewiesen, dass diese Operationen notwendig sind, da dieses Signal ARespIn, das auch durch den Emulationsprozessor C1 empfangen wird, durch diesen Prozessor nicht beachtet wird, da dasselbe nicht einer Transaktion entspricht, die durch denselben emittiert wird.
  • Bei einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung wird die Transaktion, die in dem Puffer SBI gespeichert ist, nach einem maximalen Zeitintervall gelöscht (Zeitablauf). Eine besonders einfache Lösung besteht in dem Setzen (durch die Schnittstelle 210) des Flags FRIC_SBI nach einer vorbestimmten Anzahl (z. B. 32) von Transaktionen, die von dem Systembus 110 empfangen werden, die nicht mit derjenigen übereinstimmen, die in dem Puffer SBI gespeichert ist; alternativ dazu kann das Flag FRIC_SBI nach einer vorbestimmten Anzahl von Taktsignalen gesetzt werden, die verwendet werden, um die Operation des Computersystems zu synchronisieren, z. B. 96 oder dergleichen. Dies bewirkt das automatische Rücksetzen des Flags SBI_Busy und folglich das Löschen der Transaktion, die in dem Puffer SBI gespeichert ist. Auf diese Weise ist es möglich, das Phänomen einer Blockade des Emulationssystems 200 zu vermeiden, die durch gelöschte Transaktionen bewirkt wird, die nachfolgend nicht erneut emittiert werden.
  • Wenn die Leiteinheit 205 eine Transaktion auf der entfernten Schleife 105 senden muss, speichert der Emulationsprozessor C1 das zu sendende Paket in dem Register RLO; wenn das Paket vollständig in dem Puffer RLO verfügbar ist, setzt die Schnittstelle 215 automatisch das Flag RLO_Busy.
  • Die Schnittstelle 215 steuert dann eigenständig die Übertragung dieses Pakets auf der entfernten Schleife 105; sobald der gesamte Inhalt des Puffers RLO auf der entfernten Schleife 105 gesendet worden ist, setzt die Schnittstelle 215 automatisch das Flag RLO_Busy zurück.
  • Auf ähnliche Weise speichert, wenn die Leiteinheit 205 eine Transaktion auf den Systembus 110 senden muss, der Emulationsprozessor C1 die entsprechende Information in dem Puffer SBO.
  • Insbesondere speichert der Emulationsprozessor C1 in dem Fall einer Lesetransaktion in dem Register SBOA die Adresse des zu lesenden Datenblocks mit den entsprechenden Attributen, und in dem Fall einer Schreibtransaktion speichert der Emulationsprozessor C1 in dem Register SBOA die Adresse des zu schreibenden Datenblocks mit den entsprechenden Attributen und speichert den entsprechenden Datenblock in dem Register SBOD. Wenn diese Informationen vollständig in dem Puffer SBO verfügbar sind, setzt die Schnittstelle 210 automatisch das Flag SBO_Busy.
  • Die Schnittstelle 215 steuert dann automatisch den Zugriff auf den Systembus 110. Das kollektive Nachprüfergebnissignal ARespIn, das dieser Transaktion entspricht, das durch die Entscheidungseinheit 130 erzeugt wird, wird in dem Register RI_SBO gespeichert, derart, dass dasselbe nachfolgend durch den Emulationsprozessor C1 gelesen werden kann.
  • Das Flag SBO_Busy wird automatisch durch die Schnittstelle 210 am Ende der Transaktion rückgesetzt. Insbesondere wird in dem Fall einer Transaktion, die nicht das Lesen oder Schreiben von Daten aufweist, das SBO_Busy rückgesetzt, sobald die Leiteinheit 205 das entsprechende Signal ARespIn empfangen hat und dasselbe in dem Register RI_SBO gespeichert hat. In anderen Fällen empfängt die Leiteinheit 205 das entsprechende Signal ARespIn und speichert dasselbe in dem Register RI_SBO. Falls dieses Signal einen Wert auf weist, der anzeigt, dass die Transaktion wiederholt (ARespIn = Neuversuch) oder gelöscht (ARespIn = Neuausführung) werden muss, setzt die Schnittstelle 210 sofort das Flag SBO_Busy zurück; umgekehrt wird das Flag SBO_Busy rückgesetzt, wenn der Datenblock in dem Fall einer Lesetransaktion vollständig durch den Systembus 110 empfangen worden ist, oder wenn derselbe im Fall einer Schreibtransaktion vollständig auf dem Systembus 110 gesendet worden ist.
  • In dem Fall einer Eingriffstransaktion speichert der Emulationsprozessor C1 jedoch das Identifikationstag des benötigten Datenblocks in dem Register SBDOT und speichert den Datenblock, der durch den eingreifenden Prozessor gesendet wird, in dem Register SBDO. Wenn diese Informationen vollständig in dem Puffer SBO verfügbar sind, setzt die Schnittstelle 210 automatisch das Flag SBDO_Busy. Die Schnittstelle 210 steuert dann eigenständig die Übertragung dieses Datenblocks auf dem Systembus 110; sobald der Inhalt des Puffers SBDO vollständig auf dem Systembus 110 gesendet worden ist, setzt die Schnittstelle 210 automatisch das Flag SBDO_Busy zurück.
  • Ähnliche Überlegungen gelten in Fällen, bei denen andere Werte in der Pufferstruktur gespeichert werden, andere Kommunikationsprotokolle verwendet werden, Pufferwarteschlangen für die Steuerung einer Mehrzahl von Werten des gleichen Typs bereitgestellt sind, u. a.; im Allgemeinen umfassen die Ergebnisse, die durch die zu emulierende elektronische Vorrichtung erzeugt werden, Zustandssignale für Operationen, die entsprechenden Daten zugeordnet sind, und die Leiteinheit erzeugt ein Zustandssignal, das anzeigt, dass die Operationen nicht ausgeführt worden sind, wenn die entsprechenden Daten in die Speichereinrichtung geschrieben worden sind.
  • Somit bleiben, während eine Transaktion durch den Emulationsprozessor ausgeführt wird, die Systemressourcen nicht besetzt, während auf ihren Abschluss gewartet wird; dies ermöglicht, dass die Operation des Systems von der tatsächlichen Ausführungsgeschwindigkeit der Transaktion durch den Emulationsprozessor getrennt wird. Die vorliegende Erfindung ist deshalb auch zur Anwendung geeignet, wenn die Systemressourcen für die gesamte Transaktion besetzt gehalten werden, die durch den Emulationsprozessor ausgeführt wird, bei elektronischen Vorrichtungen, bei denen keine Zustandssignale geliefert werden, und dergleichen.
  • Falls nun der Emulationsprozessor C1 betrachtet wird, fragt dieser Prozessor bei einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung periodisch die Leiteinheit 205 durch einen Prozess, der als Abrufen bekannt ist, ab, um zu prüfen, ob der Inhalt der Pufferstruktur 220 gelesen werden muss (da derselbe neue Werte enthält, die von dem Systembus 110 oder von der entfernten Schleife 105 empfangen worden sind); auf ähnliche Weise fragt der Emulationsprozessor C1 periodisch die Leiteinheit 205 ab, um zu prüfen, ob die Pufferstruktur 220 frei ist, um neue Werte zu empfangen.
  • Unter Bezugnahme insbesondere auf 4 ist ein schematisches Blockdiagramm eines Verfahrens 400 gezeigt, das verwendet wird, um den Dialog mit der Leiteinheit gemäß den obigen Ausführungen zu steuern; dieses Verfahren 400 wird mittels eines geeigneten Überwachungsprogramms implementiert, in Software oder Firmware implementiert und durch den Emulationsprozessor ausgeführt. Das Verfahren 400 beginnt bei Block 405 und geht dann über zu Block 410, bei dem der Emulationsprozessor (mittels einer geeigneten Transaktion, die auf dem Systembus gesendet wird) den Inhalt der Pufferstruktur der Leiteinheit liest.
  • Wird zu Block 415 übergegangen, prüft der Emulationsprozessor den Inhalt des Flags SBI_Busy. Falls dieses Flag gesetzt ist und der Inhalt des Puffers SBI noch nicht gelesen worden ist, geht das Verfahren zu Block 420 über, bei dem die Operationen, die der Transaktion zugeordnet sind, die in dem Puffer SBI gespeichert ist, ausgeführt werden; im Allgemeinen kehrt, wenn diese Operationen gestartet worden sind, das Verfahren direkt zu Block 415 zurück, ohne auf ihren Abschluss zu warten, um das Überwachen des Eingangsflags der Pufferstruktur der Leiteinheit wiederaufzunehmen.
  • Im gegensätzlichen Fall fährt das Verfahren mit Block 425 fort, bei dem der Emulationsprozessor den Inhalt des Flags FRI_SBI prüft. Falls dieses Flag gesetzt ist und der Inhalt des Registers RI_SBI noch nicht gelesen worden ist, geht das Verfahren zu Block 430 über, bei dem das kollektive Nachprüfergebnissignal ARespIn für die laufende Transaktion aus dem Register RI_SBI gelesen wird, und kehrt dann zu Block 415 zurück.
  • Im gegensätzlichen Fall geht das Verfahren zu Block 435 über, bei dem der Inhalt des Flags RLI_Busy geprüft wird. Falls dieses Flag gesetzt ist und der Inhalt des Puffers RLI noch nicht gelesen worden ist, fährt das Verfahren mit Block 440 fort, bei dem der Inhalt des Pakets, das aus dem Puffer RLI gelesen wird, interpretiert wird und die zugeordneten Operationen gestartet werden (ohne auf ihren Abschluss zu warten); das Verfahren kehrt dann zu Block 415 zurück. Im gegensätzlichen Fall geht das Verfahren direkt zu Block 445 über (im Folgenden beschrieben).
  • Somit werden die Operationen im Slave-Modus, der allen Eingangspuffern zugeordnet ist, ausgeführt, wobei die Priorität durch die Reihenfolge bestimmt wird, in der die entsprechenden Flags überwacht werden. Erst wenn alle Eingangspuffer gelesen worden sind, fährt das Verfahren fort, die Operationen im Master-Modus auszuführen, der den Ausgangspuffern der Pufferstruktur der Leiteinheit zugeordnet ist. Dies hat den Vorteil, dass ermöglicht wird, dass der Ausführung neuer Transaktionen Priorität gegenüber dem Abschluss von bereits laufenden Transaktionen gegeben wird.
  • Falls nun Block 445 betrachtet wird, prüft das Verfahren den Inhalt des Flags SBO_Busy. Falls dieses Flag nicht gesetzt ist und der Emulationsprozessor Informationen (bei einer Lese- oder Schreibtransaktion) auf dem Systembus senden muss, geht das Verfahren zu Block 450 über, bei dem diese Informationen (durch eine geeignete Transaktion) in die Puffer SBOA und SBOD geschrieben werden; das Verfahren kehrt dann zu Block 445 zurück, um das Überwachen des Ausgangsflags zu wiederholen.
  • In dem gegensätzlichen Fall fährt das Verfahren mit Block 455 fort, bei dem der Emulationsprozessor den Inhalt des Registers RI_SBO liest, falls auf das kollektive Nachprüfergebnissignal ARespIn für eine Transaktion gewartet wird (die in dem Puffer SBOA gespeichert ist), die auf dem Systembus durch die Leiteinheit gesendet wird.
  • Unter jetziger Bezugnahme auf Block 460 prüft der Emulationsprozessor den Inhalt des Flags SBDO_Busy. Falls dieses Flag nicht gesetzt ist und der Emulationsprozessor Informationen (bei einer Eingriffstransaktion) auf dem Systembus senden muss, geht das Verfahren zu Block 465 über, bei dem diese Informationen (mittels einer geeigneten Transaktion) in die Puffer SBDOT und SBDO geschrieben werden, und kehrt dann zu Block 445 zurück.
  • In dem gegensätzlichen Fall geht das Verfahren zu Block 470 über, bei dem der Emulationsprozessor den Inhalt des Flags RLO_Busy prüft. Falls dieses Flag nicht gesetzt ist und der Emulationsprozessor ein Paket auf der entfernten Schleife senden muss, wird dieses Paket (mittels einer geeigneten Transaktion) in den Puffer RLO geschrieben; das Verfahren kehrt dann zu Block 445 zurück.
  • In dem gegensätzlichen Fall prüft das Verfahren bei Block 480, ob die Unterbrechung des Überwachungsprogramms, das in dem Emulationsprozessor ausgeführt wird, angefordert wurde. Ist dies der Fall, endet das Verfahren am Endblock 485, wohingegen, wenn dies nicht der Fall ist, das Verfahren zu Block 410 zurückkehrt, so dass die im Vorhergehenden beschriebenen Operationen kontinuierlich wiederholt werden können.
  • Alternativ dazu können die verschiedenen Flags mit unterschiedlichen Prioritäten (z. B. gemäß geschätzten Zeitplanungstaktiken) überwacht werden, die verschiedenen Puffer, Flags und Register, die aus der Leiteinheit gelesen werden, können mittels entsprechender gleichzeitiger Prozesse gesteuert werden, der Emulationsprozessor kann die Werte, die in die Pufferstruktur geschrieben werden sollen, in jedem Fall zu der Leiteinheit senden (wobei ein Zustandsignal für die Transaktion AStatOut = Neuversuch empfangen wird, falls der entsprechende Puffer nicht frei ist), die Leiteinheit kann ein Unterbrechungssignal an den Emulationsprozessor senden, wenn der Inhalt der Pufferstruktur durch die Schnittstellen mit dem Systembus und mit der entfernten Schleife modifiziert worden ist (wobei dieses Signal maskiert ist, bis seine Bedienung abgeschlossen ist), oder andere Unterbrechungssignale können verwendet werden, um bestimmte Situationen anzuzeigen, die so behandelt werden sollen, dass dieselben eine hohe Priorität aufweisen, wie z. B. das Setzen des Flags SBI_Busy, des Flags RLI_Busy und des Flags SBO_Busy, die Leiteinheit kann die Daten direkt an den Emulationsprozessor senden oder dergleichen.
  • Ein Beispiel für eine Transaktion, die durch das im Vorhergehenden beschriebene Emulationssystem ausgeführt wird, ist in dem Zeitdiagramm in 5a gezeigt. Wie gewöhnlich wird ein Signal (ein Bit) durch eine einzelne Linie dargestellt, während Werte, die eine Mehrzahl von Bits aufweisen, durch ein Band dargestellt werden (die Kreuzungspunkte sind die Momente des Schaltens).
  • Es wird angenommen, dass ein allgemeiner Prozessor (z. B. der Prozessor, der in 3 durch C3 angezeigt ist) eine Transaktion TR1 auf dem Systembus (SYS BUS) sendet, um das Lesen eines Datenblocks in dem lokalen Speicher anzufordern. Die Transaktion TR1 wird von der entsprechenden Schnittstelle empfangen und in dem Puffer SBI gespeichert (wobei das Flag SBI_Busy automatisch gesetzt wird). Die Schnittstelle mit dem Systembus sendet dann an die Entscheidungseinheit ein Transaktionszustandssignal AStatOut = Neuversuch, so dass die Transaktion TR1 gelöscht wird.
  • Der Emulationsprozessor liest dann den Inhalt des Puffers SBI und prüft dann die Transaktion TR1, die in demselben gespeichert ist. Es wird angenommen, dass der Emulationsprozessor C1 (durch ein Untersuchen des Inhalts des Verzeichnisses, das in dem lokalen Speicher gespeichert ist) feststellt, dass das angeforderte Datenelement sich nicht in modifizierter Form in irgendeinem der anderen Knoten des Systems befindet. In diesem Fall schreibt der Emulationsprozessor den AStatOut-Wert des entsprechenden Nachprüfergebnisses (AStatOut = sauber bzw. clean) in das RO_SBI-Register (wobei das Flag FRO_SBI automatisch gesetzt wird).
  • Wenn der anfordernde Prozessor C3 erneut die Transaktion TR1 auf dem Systembus sendet, wird diese Transaktion durch die entsprechende Schnittstelle empfangen, die prüft, dass dieselbe mit der Transaktion übereinstimmt, die in dem Puffer SBI gespeichert ist (und dass das Flag FRO_SBI gesetzt ist). An diesem Punkt sendet die Schnittstelle mit dem Systembus an die Entscheidungseinheit ein Transaktionszustandssignal AStatOut = Null und dann das ARespOut-Signal des Ergebnisses des Nachprüfens, das in dem Register RO_SBI gespeichert ist (ARespOut = sauber), während die Flags SBI_Busy und FRO_SBI automatisch rückgesetzt werden.
  • Unter jetziger Bezugnahme auf 5b sendet der Prozessor C3 eine weitere Transaktion TR2 auf dem Systembus, um das Lesen eines Datenblocks in dem lokalen Speicher anzufordern, die in dem Puffer SBI gespeichert wird und nachfol gend durch den Emulationsprozessor auf die gleiche Weise wie bei dem vorhergehenden Fall gelesen wird.
  • Es sei nun angenommen, dass der Emulationsprozessor (durch ein Untersuchen des Inhalts des Verzeichnisses, das in dem lokalen Speicher gespeichert ist) feststellt, dass das Anforderungsdatenelement in modifizierter Form in einem anderen Knoten vorhanden ist (z. B. dem Knoten, der in 2 durch N2 angezeigt ist). In diesem Fall schreibt der Emulationsprozessor in das Register RO_SBI einen Wert AStatOut des Ergebnisses des Nachprüfens, der anzeigt, dass die Transaktion gelöscht und für eine nachfolgende Neuaktivierung ausgesetzt werden muss (ARespOut = Neuausführung), wobei das Flag FRO_SBI automatisch gesetzt wird.
  • Wenn der anfordernde Prozessor C3 die Transaktion TR2 erneut auf dem Systembus sendet, wird diese Transaktion durch die entsprechende Schnittstelle empfangen, die prüft, dass dieselbe mit der Transaktion übereinstimmt, die in dem Puffer SBI gespeichert ist (und dass das Flag FRO_SBI gesetzt ist). An diesem Punkt sendet die Schnittstelle mit dem Systembus an die Entscheidung ein Transaktionszustandssignal AStatOut = Null und nachfolgend das ARespOut-Signal des Ergebnisses des Nachprüfens, das in dem Register RO_SBI gespeichert ist (ARespOut = Neuausführung), während die Flags SBI_Busy und FRO_SBI automatisch rückgesetzt werden.
  • Gleichzeitig schreibt der Emulationsprozessor in den Puffer RLO ein Paket PCK1, das der Transaktion TR2 entspricht (wobei das Flag RLO_Busy automatisch gesetzt wird), das dann an den Knoten N2 gesendet wird (wobei das Flag RLO_Busy automatisch rückgesetzt wird). Der Knoten N2 sendet dann an die Leiteinheit ein Antwortpaket PCK2 für diese Transaktion, das durch die Schnittstelle mit der entfernten Schleife empfangen wird und in dem Puffer RLI gespeichert wird (wobei das Flag RLI_Busy automatisch gesetzt wird).
  • Der Emulationsprozessor liest dann den Inhalt des Puffers RLI (wobei das Flag RLI_Busy automatisch rückgesetzt wird) und erhält von dem Paket PCK2 den Wert ARespOut des Ergebnisses des Nachprüfens der Transaktion TR2 (ARespOut = RespN2).
  • Der Emulationsprozessor schreibt in den Puffer SBO (wobei das Flag SBO_Busy automatisch gesetzt wird) eine Transaktion, um die Transaktion TR2 erneut zu aktivieren, die vorhergehend ausgesetzt wurde (ReRun TR2), die dann auf dem Systembus gesendet wird (während das Flag SBO_Busy automatisch rückgesetzt wird). Wenn der anfordernde Prozessor C3 die Transaktion TR2 erneut auf dem Systembus sendet, wird diese Transaktion wie zuvor durch die entsprechende Schnittstelle empfangen und in dem Puffer SBI gespeichert, während das Flag SBI_Busy automatisch gesetzt wird (durch das Senden eines Transaktionszustandssignals AStatOut = Neuversuch an die Entscheidungseinheit). Der Emulationsprozessor liest dann den Inhalt des Puffers SBI, und da derselbe bereits Zugriff auf das entsprechende Nachprüfergebnissignal hat (das vorhergehend von dem Knoten N2 empfangen wurde), schreibt derselbe diesen Wert ARespOut = RespN2 in das Register RO_SBI, während das Flag FRO_SBI automatisch gesetzt wird.
  • Wenn der anfordernde Prozessor C3 die Transaktion TR2 erneut auf dem Systembus sendet, wird diese Transaktion durch die entsprechende Schnittstelle empfangen, die prüft, dass dieselbe mit der Transaktion übereinstimmt, die in dem Puffer SBI gespeichert ist (und dass das Flag FRO_SBI gesetzt ist). An diesem Punkt sendet die Schnittstelle mit dem Systembus an die Entscheidungseinheit ein Transaktionszustandssignal AStatOut = Null und dann das Signal ARespOut des Ergebnisses des Nachprüfens, das in dem Register RO_SBI gespeichert ist (ARespOut = RespN2), während die Flags SBI_Busy und FRO_SBI automatisch rückgesetzt werden.
  • Der Knoten N2 sendet dann (falls derselbe die Transaktion TR2 nicht gelöscht hat) an die entfernte Schleife ein Paket PCKD, das den angeforderten Datenblock enthält, das durch die entsprechende Schnittstelle empfangen wird und in dem Puffer RLI gespeichert wird (wobei das Flag RLI_Busy automatisch gesetzt wird).
  • Der Emulationsprozessor liest dann den Inhalt des Puffers RLI (wobei das Flag RLI_Busy automatisch rückgesetzt wird) und erhält von dem Paket PCKD den angeforderten Datenblock (Daten). Der Emulationsprozessor schreibt in den Puffer SBO (während das Flag SBDO_Busy automatisch gesetzt wird) den angeforderten Datenblock (mit dem Identifikationstag, das der Transaktion TR2 zugeordnet ist), der dann auf dem Systembus zu dem anfordernden Prozessor C3 gesendet wird (während das Flag SBDO_Busy automatisch rückgesetzt wird).
  • Ähnliche Überlegungen gelten für andere Typen von Transaktion, wie z. B. eine Anforderung zum Lesen eines Datenblocks von dem entfernten Speicher, eine Anforderung zum Schreiben eines Datenblocks in den lokalen Speicher, eine Anforderung zum Schreiben eines Datenblocks in den entfernten Speicher und dergleichen.
  • Es ist klar, dass ein Fachmann zahlreiche Modifizierungen und Veränderungen an dem System zum Emulieren einer elektronischen Vorrichtung, das im Vorhergehenden beschrieben ist, vornehmen kann, um eventuelle und spezifische Anforderungen zu erfüllen, wobei alle diese Modifizierungen und Veränderungen in dem Schutzbereich der Erfindung enthalten sind, wie derselbe in den folgenden Ansprüchen definiert ist.

Claims (14)

  1. System (200) zum Emulieren einer elektronischen Vorrichtung (125), die mit externen Elementen (C1-C4, 115, 120, 130) verbindbar ist, zum Empfangen von Eingangsdaten, zum Bestimmen entsprechender Ergebnisse und zum Liefern der Ergebnisse an dem Ausgang an die externen Elemente (C1-C4, 115, 120, 130), dadurch gekennzeichnet, dass dasselbe eine Leiteinheit (205) umfasst, die eine Speichereinrichtung (220) zum Speichern der Daten und der Ergebnisse, eine Schnittstelleneinrichtung (210) zum Empfangen der Daten an dem Eingang von den externen Elementen (C1-C4, 115, 120, 130) und zum Schreiben derselben in die Speichereinrichtung (220) und zum Lesen der Ergebnisse von der Speichereinrichtung (220) und zum Liefern derselben an dem Ausgang an die externen Elemente (C1-C4, 115, 120, 130) aufweist, und eine programmierbare Einheit (C1) zum Emulieren des Verhaltens der elektronischen Vorrichtung, die mit der Leiteinheit (205) verbunden ist, zum Erhalten der Daten von der Speichereinrichtung (220), zum Bestimmen der entsprechenden Ergebnisse und zum Schreiben der Ergebnisse in die Speichereinrichtung (220).
  2. System (200) zum Emulieren einer elektronischen Vorrichtung (125) gemäß Anspruch 1, bei dem die Ergebnisse Zustandssignale für Operationen umfassen, die den Daten zugeordnet sind, wobei die Leiteinheit (205) ein Zustandssignal erzeugt, das anzeigt, dass die Operationen nicht ausgeführt worden sind, wenn die entspre chenden Daten in die Speichereinrichtung (220) geschrieben worden sind.
  3. System (200) zum Emulieren einer elektronischen Vorrichtung (125) gemäß Anspruch 2, bei dem die Leiteinheit (205) die Operationen löscht, wenn die entsprechenden Daten nicht innerhalb eines spezifizierten Zeitintervalls erneut durch die Leiteinheit (205) empfangen worden sind.
  4. System (200) zum Emulieren einer elektronischen Vorrichtung (125) gemäß einem der Ansprüche 1 bis 3, bei dem die elektronische Vorrichtung (125) ein Element eines Computersystems (100) ist, das zumindest einen Prozessor (C1-C4) aufweist, wobei die programmierbare Einheit in einem Emulationsprozessor (C1) enthalten ist.
  5. System (200) zum Emulieren einer elektronischen Vorrichtung (125) gemäß Anspruch 4, bei dem der Emulationsprozessor (C1) ein eigens vorgesehener Prozessor ist.
  6. System (200) zum Emulieren einer elektronischen Vorrichtung (205) gemäß Anspruch 4 oder 5, das einen Kommunikationsbus (110) aufweist, mit dem die Leiteinheit (205) und der zumindest eine Prozessor (C1-C4) verbunden sind, wobei der Emulationsprozessor (C1) durch den Kommunikationsbus (110) die Daten von der Speichereinrichtung (220) erhält und die Ergebnisse in die Speichereinrichtung (220) schreibt.
  7. System (200) zum Emulieren einer elektronischen Vorrichtung (125) gemäß einem der Ansprüche 4 bis 6, bei dem das Computersystem (100) von dem cc-NUMA-Typ ist, der eine Mehrzahl von Knoten (N1-N4) aufweist, die durch eine entfernte Kommunikationseinrichtung (105) verbunden sind, und bei dem die elektronische Vorrich tung eine Brückeneinheit (125) zum Verbinden eines ersten Knotens (N1) mit den anderen Knoten (N2-N4) des Computersystems (100) ist, wobei der Emulationsprozessor (C1) und der Kommunikationsbus (110) in dem ersten Knoten (N1) enthalten sind.
  8. System (200) zum Emulieren einer elektronischen Vorrichtung (125) gemäß Anspruch 7, bei dem jeder Knoten (N1-N4) einen lokalen Speicher (120) umfasst, wobei die Brückeneinheit (125) einen Speicher des Cache-Typs (135) zum Speichern entsprechender Daten von den lokalen Speichern der anderen Knoten (N2-N4) und einen zusätzlichen Speicher (140) zum Speichern von Zustandsinformationen bezüglich Daten in dem lokalen Speicher (120) des ersten Knotens (N1), die in den anderen Knoten (N2-N4) reproduziert sind, aufweist, wobei die Daten in dem Speicher des Cache-Typs (135) und in dem zusätzlichen Speicher (140) in einem Abschnitt des lokalen Speichers (120) des ersten Knotens (N1) gespeichert sind, der dem Emulationsprozessor (C1) zugeordnet ist.
  9. System (200) zum Emulieren einer elektronischen Vorrichtung (125) gemäß Anspruch 7 oder 8, bei dem die Leiteinheit eine erste (210) und eine zweite (215) Schnittstelleneinrichtung umfasst, die mit dem Kommunikationsbus (110) beziehungsweise mit der entfernten Kommunikationseinrichtung (105) verbunden sind.
  10. System (200) gemäß Anspruch 9, bei dem der Emulationsprozessor (C1) durch die erste Schnittstelle (210) die Daten von der Speichereinrichtung (220) erhält und die Ergebnisse in die Speichereinrichtung (220) schreibt.
  11. System (200) gemäß Anspruch 10, bei dem der Emulationsprozessor (C1) die Daten periodisch durch einen Abrufprozess von der Speichereinrichtung (220) liest.
  12. Leiteinheit (205) zur Verwendung bei dem Emulationssystem (200) gemäß einem der Ansprüche 1 bis 11.
  13. Programmierbare Einheit (C1) zur Verwendung bei dem Emulationssystem (200) gemäß einem der Ansprüche 1 bis 11.
  14. Verfahren zum Emulieren einer elektronischen Vorrichtung (125), die mit externen Elementen (C1-C4, 115, 120, 130) verbindbar ist, zum Empfangen von Eingangsdaten, zum Bestimmen entsprechender Ergebnisse und zum Liefern der Ergebnisse an dem Ausgang an die externen Elemente (C1-C4, 115, 120, 130), gekennzeichnet durch folgende Schritte: Empfangen der Daten von den externen Elementen (C1-C4, 115, 120, 130) durch eine Schnittstelleneinrichtung (210) an dem Eingang bei einer Leiteinheit (205) und Schreiben derselben in eine Speichereinrichtung (220), Erhalten (410) der Daten von der Speichereinrichtung (220) in einer programmierbaren Einheit (C1), die das Verhalten der elektronischen Vorrichtung emuliert und mit der Leiteinheit (205) verbunden ist, Bestimmen (415-440) der entsprechenden Ergebnisse durch die programmierbare Einheit (C1), Schreiben (445-475) der Ergebnisse, die durch die programmierbare Einheit (C1) bestimmt werden, in die Speichereinrichtung (220), Lesen der Ergebnisse von der Speichereinrichtung (220) durch die Schnittstelleneinrichtung (210) und Liefern derselben an dem Ausgang an die externen Elemente (C1-C4, 115, 120, 130).
DE69835872T 1998-04-02 1998-04-02 System zur Emulation einer elektronischen Vorrichtung Expired - Lifetime DE69835872T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP98830204A EP0947938B1 (de) 1998-04-02 1998-04-02 System zur Emulation einer elektronischen Vorrichtung

Publications (2)

Publication Number Publication Date
DE69835872D1 DE69835872D1 (de) 2006-10-26
DE69835872T2 true DE69835872T2 (de) 2007-04-26

Family

ID=8236606

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69835872T Expired - Lifetime DE69835872T2 (de) 1998-04-02 1998-04-02 System zur Emulation einer elektronischen Vorrichtung

Country Status (2)

Country Link
EP (1) EP0947938B1 (de)
DE (1) DE69835872T2 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0121990D0 (en) * 2001-09-11 2001-10-31 Beach Solutions Ltd Emulation system & method

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5715433A (en) * 1995-04-20 1998-02-03 Raghavan; Rajan Dynamic software model for emulating hardware

Also Published As

Publication number Publication date
EP0947938B1 (de) 2006-09-13
EP0947938A1 (de) 1999-10-06
DE69835872D1 (de) 2006-10-26

Similar Documents

Publication Publication Date Title
DE3508291C2 (de) Datenverarbeitungssystem
DE69913553T2 (de) Konfigurierung von systemeinheiten
DE10333817B4 (de) Emulationsschnittstellensystem
DE112017001959T5 (de) Cachespeicher-Zugriff
DE69837130T2 (de) Vorrichtung und Verfahren zum Simulieren mehrerer Knoten auf einer einzelnen Maschine
EP1720100B1 (de) Verfahren und Vorrichtung zur Emulation einer programmierbaren Einheit
DE112013000758B4 (de) Erzeugen von Taktsignalen für einen zyklusgenauen, zyklusreproduzierbaren FPGA-gestützten Hardware-Beschleuniger
DE3338333A1 (de) Logiksimulatorgeraet zur gueltigkeitspruefung einer logikstruktur
DE69825915T2 (de) Verfahren und vorrichtung zur umschaltung zwischen quellen-synchron-takt/- und gemeinsam-takt-datenübertragungs-modi in einem mehragent-übertragungs-system
DE112010004187T5 (de) Verfahren und System zum Verarbeiten von Netzwerkereignissen
EP2765528B1 (de) Wahlfreier Zugriff auf Signalwerte eines FPGA zur Laufzeit
DE602004012492T2 (de) DMA-Steuerung mit Busbesetzungszeit-Beschränkung sowie DMA-Parametersätze für mehrere logische Prozessoren
DE4208924A1 (de) Verfahren zur kommunikation zwischen prozessoren und parallelverarbeitungscomputer hierfuer
DE19747396A1 (de) Verfahren und Anordnung zur Schaffung einer Ferndiagnose für ein elektronisches System über ein Netz
DE04028359T1 (de) Verfahren und einrichtung zum aufrechterhalten der konsistenz von in einer gruppe von gespiegelten einrichtungen gespeicherten daten
DE3508640A1 (de) Computersystem zur implementierung eines ereignisgesteuerten simulationsalgorithmus
DE3933849A1 (de) Prozessorgesteuerte schnittstelle
DE112005002420T5 (de) Verfahren und Vorrichtung zum Pushen von Daten in den Cache eines Prozessors
DE10253137A1 (de) Verfahren zur Auswertung von skalierbaren, symmetrischen Kohärenz-Protokollen und Algorithmen eines Mehrprozessor-Cache-Speichers
DE102007009909A1 (de) Zeitmarkentransaktionen zum Validisieren von automaren Operationen in Multiprozessor-Systemen
DE69822866T2 (de) System und verfahren zum beenden von lock-step-sequenzen in einem multiprozessorsystem
DE60311302T2 (de) Verfahren und vorrichtung zur verriegelung von mehreren clustern
DE19814415A1 (de) Logikanalyse-Untersystem in einem Zeitscheibenemulator
DE69816714T2 (de) Instrumentationsanordnung für eine Maschine mit nichtuniformen Speicherzugriffen
DE60318337T2 (de) Speicherkontrollervorichtung versehen mit einem Trennungsbefehl von Volumenpaaren und Verfahren dazu

Legal Events

Date Code Title Description
8364 No opposition during term of opposition