-
Die hierin beschriebene Erfindung kann einige Lehren
einsetzen, die in den im gemeinschaftlichen Besitz
befindlichen, ebenfalls anhängigen Anmeldungen offenbart und
beansprucht sind, welche hiermit am gleichen Tag durch UNITED
TECHNOLOGIES CORPORATION unter dem Titel INTERFACE-VORRICH-
TUNG ZWISCHEN MINDESTENS EINEM KANAL UND MINDESTENS EINEM
BUS, EP-A-0 184 976, bzw. KOHÄRENTES INTERFACE MIT ZURÜCK-
GESCHLEIFTEM EMPFANGSSPEICHER, EP-A-0 188 990, eingereicht
wurden.
-
Die Erfindung bezieht sich auf eine
Fernterminalschnittstelle, welche die Kohärenz von Datenübertragungen zwischen
einem asynchronen Bus und einem damit verbundenen
Untersystem garantiert.
-
In einem System, das eine Vielzahl von Untersystemen
aufweist, die über einen asynchron arbeitenden Bus funktionell
integriert sind, ergibt sich eine Notwendigkeit für
Datenkohärenz. In solch einem System kommuniziert ein
Buscontroller normalerweise mit bis zu einer bestimmten Anzahl
von Fernterminalschnittstellen, die den Bus einzeln mit
einem zugehörenden Untersystem verbinden. Der Buscontroller
kann z. B. im Rahmen von MIL-STD 1553 mit bis zu 31
Fernterminalschnittstellen kommunizieren. Die gesamten
Fernterminalschnittstellen (RTI's) können auf Veranlassung des
Buscontrollers miteinander kommunizieren. Es gibt ein
potentielles Problem in solch einem System, wenn die CPUs der
Untersysteme inkohärente Datenblöcke oder Nachrichten
erhalten. Eine kohärente Nachricht ist eine Nachricht, in der
sich die Daten oder Parameter auf eine einzige Berechnung
beziehen, die anhand eines einzigen Datensatzes ausgeführt
wird und zu einem einzigen Zeitrahmen gehört. Inkohärenz
betrifft die Übertragung und/oder Anwendung von partiellen,
d. h. inkohärenten Nachrichten, die sich aus Daten
zusammensetzen,
welche zu verschiedenen Zeitrahmen, Berechnungen
oder Datensätzen gehören. Eine RTI kann z. B. eine aus
vielen Wörtern bestehende Nachricht vom Bus empfangen, kann
diese Nachricht speichern und kann damit beginnen, die
gespeicherte Information zu überschreiben oder zu
aktualisieren, während die Host-CPU noch damit beschäftigt ist, die
zuvor geschriebene Nachricht zu lesen. Die RTI wird, in
anderen Worten, mittendrin mit neuen Informationen
aktualisiert, bevor die alte Information vollständig zur CPU
übertragen werden kann. So kann die CPU z. B. die erste Hälfte
der Nachricht aus einem Zeitrahmen empfangen, während die
zweite Hälfte der Nachricht aus einem unterschiedlichen
Zeitrahmen stammt. Wenn der Bus zum Verbinden von
kritischen flugelektronischen Untersystemen verwendet wird, bei
denen hochgenaue und kohärente Information kritisch ist,
können solche Inkohärenzen katastrophale Konsequenzen
haben.
-
Eine der Methoden im stand der Technik, dieses Problem
anzugreifen, ist, eine Art Doppelpufferung zu schaffen, in
der die empfangenen Nachrichten abwechselnd in einen von
zwei Speicherpuffern eingebracht werden. Während eine erste
Nachricht den ersten Speicherpuffer besetzt, kann eine
zweite Nachricht im zweiten Speicherpuffer empfangen
werden. Auf diese Weise wird einwenig zeit geopfert, um
Kohärenz sicherzustellen. Allerdings kann es sein, daß die
Doppelpufferungslösung, wenn ein Informationsbündel auf dem
asynchronen Bus zur speziellen RTI gesendet wird, nicht
erfolgreich ist, die gesamte gesendete Information zu
behalten. Wenn die CPU rechtzeitig antworten kann, kann diese
Methode Kohärenz sicherstellen. Allerdings ist die CPU beim
Großteil von Hochleistungsuntersystemen, die mit einem Bus
kommunizieren, ganz damit beschäftigt, andere Prozesse
auszuführen, und kann nicht auf ein Nachrichtenbündel oder
Blockübertragungen, die den gleichen Nachrichtenkennsatz
verwenden, ansprechen. Somit werden einige Daten
verlorengehen, wenn die Übertragungsgeschwindigkeit größer als die
Übernahmegeschwindigkeit der Doppelpufferungsarchitektur
ist. Natürlich ist es denkbar, daß ein Systemdesigner eine
dreifache, vierfache, fünffache oder irgendeine andere Zahl
von Pufferungsarchitekturen aufbaut. Dies würde jedoch
extrem teuer sein wegen: (a) der Notwendigkeit, jeden Puffer
derart zu konstruieren, daß er einen vollen Block (es gibt
32 Wörter im MIL-STD 1553 B-Block) übernehmen kann, so daß
sich eine beträchtliche Verschwendung von Speichern für
Nachrichten, die weniger als die volle Anzahl von Wörtern
für einen Block enthalten, ergibt; (b) der Notwendigkeit,
in schneller und geordneter Weise die "Adressen" der
letzten "Inhalte" des ersten Puffers jedesmal zu aktualisieren,
wenn eine neue Nachricht im ersten Puffer empfangen wird;
(c) des großen Ausmaßes an Hardware und CPU-Durchlauf, das
die Pufferungslösung erfordert, und (d) der Notwendigkeit,
die CPU jedesmal zu unterbrechen, wenn neue Information in
den letzten verfügbaren Puffer geschoben wird.
-
Eine zweite Stufe von Kohärenzproblemen existiert im Stand
der Technik. Jedes Datenwort innerhalb einer Nachricht
gehört zu einem einzigen Zeitrahmen. Wenn allerdings zwei
oder mehr Nachrichten von der RTI zu unterschiedlichen
Zeiten empfangen, aber zur gleichen Zeit von der Host-CPU
gepuffert und ausgelesen werden, stellt sich das Problem der
zeitlichen Übereinstimmung zwischen solchen kritischen
Nachrichten.
-
Somit sind billige und einfache Mittel wünschenswert, um
Datenkohärenz und zeitliche Übereinstimmung zu sichern.
Darstellung der Erfindung
-
Aufgabe der vorliegenden Erfindung ist es, eine
Asynchronbus-Fernterminalschnittstelle zu schaffen, die sowohl
Empfangs- als auch Sende-Umlaufspeicher hat und Datenkohärenz
und zeitliche Übereinstimmung mit einem Minimum an
zusätzlicher Hardware und Software in dem Host-Untersystem
gewährleistet.
-
Diese Aufgabe wird durch eine Busschnittstellenschaltung,
wie sie im Anspruch 1 beansprucht ist, gelöst. Eine
Ausführungsform der Erfindung ist in dem abhängigen Anspruch
beansprucht.
-
Gemäß der vorliegenden Erfindung speichert ein
Speicherpuffer zum Speichern empfangener Nachrichtenblöcke, der eine
viel größere Speicherkapazität aufweist, als das, was
vorstellbar durch den Host während einer Folge von empfangenen
Nachrichtenblöcken effektiv benutzt werden könnte, jedes
empfangene Wort in der nächst folgenden freien
Speicherstelle in einem "Stapel" von Speicherstellen, die nach
"Kreispuffer-", "Umlauf-" oder "Pseudo-FIFO (first-in,
first-out)"-Art organisiert sind. Wenn nachfolgende
Nachrichtenwörter empfangen werden, werden sie ungeachtet der
Unteradresse (Nachrichtennummer) seriell eingeschrieben
oder gestapelt, wobei, ohne Platz zu verschwenden, mit der
allernächsten freien Speicherzelle begonnen wird. In
anderen Worten, wenn ein Befehlswort aus dem Buscontroller
empfangen wird, das anzeigt, daß die folgende Nachricht zwei
Datenwörter enthält, dann wird diese Nachricht insgesamt
nur drei Wortstellen im Stapel besetzen (das Befehlswort
und die beiden Datenwörter). Das unmittelbar nächste
empfangene Befehlswort wird in die unmittelbar nächste freie
benachbarte, d. h. die vierte Stelle geladen, und dessen
Datenwörter werden sofort danach gespeichert. Jedesmal, wenn
ein Nachrichtenblock komplett in den Stapel eingeschrieben
worden ist, wird eine Stopmarke an der Speicheradresse des
Stapels gesetzt, die durch das letzte Datenwort im
Nachrichtenblock gefüllt wurde. Die Host-CPU ist über
irgendwelche unvollständig gespeicherten Nachrichtenblöcke hinter
der Stopmarke algorithmisch nicht unterrichtet. Somit
empfängt die RTI der Reihe nach Nachrichtenblöcke und
schreibt diese Blöcke der Reihe nach in die Stapel, bis der
Speicher komplett aufgefüllt ist. An diesem Punkt "läuft"
die RTI wieder an den Anfang des Speichers zurück, wobei
der allererste Nachrichtenblock, der in den Stapel
geschrieben wurde, überschrieben wird. Allerdings wird die
Host-CPU zu dieser Zeit schon auf die überschriebenen Daten
zugegriffen haben. Parallel dazu ist es der Host-CPU
erlaubt, eine beliebige Anzahl von korrekt empfangenen
Nachrichten auszulesen, beginnend mit der durch einen
Startzeiger bezeichneten ersten Nachricht und endend mit
irgendeinem Block bis zum RTI-kontrollierten Stopzeiger. Jede
gespeicherte Nachricht bleibt an der gleichen Stelle, bis sie
überschrieben wird. Kohärenz der empfangenen Nachricht wird
somit wegen der dynamischen Trennung des
Nachrichten-"Schreib"-Bereichs für die RTI vom " Lese" -Bereich für die
CPU erzielt, ohne Rücksicht auf die
Nachrichtenunteradresse. Die Ringspeichertechnik erlaubt auch das Speichern von
Kettennachrichten oder Blockdatenübertragungen in
sequentielle Slots. Die Notwendigkeit für ein schnelles Ansprechen
der CPU, um ein Überschreiben zu verhindern, wird
ausgeschlossen, solange die Größe des Speichers viel größer ist
als das, was vorstellbar zu einer beliebigen Zeit von der
Host-CPU effektiv benutzt werden könnte. Im Zusammenhang
mit MIL-STD 1553 ergeben 1K Speicherwörter eine Speicherung
für über 20 Millisekunden von empfangenen Daten bei
ungünstigster Bündelübertragung. Dies stellt genügend
Speicherung für 20 Millisekunden von kontinuierlicher 1553-
Übertragung oder 32 Blöcken mit jeweils 32 Wörtern dar.
-
In weiterer Übereinstimmung mit der vorliegenden Erfindung
wird ein Speicherpuffer zum Speichern von
Nachrichtenblöcken für die Übertragung auf dem asynchronen Bus durch die
Host-CPU benutzt, um jedes Wort zur Übertragung in einem
vorgegebenen Nachrichtenblockbereich zu speichern. Jeder
Nachrichtenblock hat die Kapazität, eine ausgewählte Anzahl
von Wörtern zu speichern. Die ausgewählte Anzahl ist groß
genug, um wenigstens mehrere Nachrichten zu enthalten.
Jeder Nachrichtenblock ist nach Umlaufart ähnlich dem
Empfangsspeicherpuffer organisiert, mit der Ausnahme, daß
jeder Block eine kleinere Version des
Empfangsspeicherpuffers ist. Kohärenz der Sendedaten wird dadurch
sichergestellt, z. B., daß es der Host-CPU ermöglicht wird, das
RTI-Statusregister zu lesen, um festzustellen, ob die RTI
mit Übertragen beschäftigt ist, und, falls ja, um die
Unteradresse des übertragenen Nachrichtenblockes zu
bestimmen. Die Host-CPU wird die Übertragung der Daten zur RTI
neu planen, wenn ein Konflikt angezeigt wird. Ein
Semaphorflag wird gesetzt, wenn die CPU diesen Status
liest, das ein Datenlesen durch die RT-Schnittstelle
sperrt. Das Semaphorflag wird gelöscht, wenn die CPU die
ersten Datenwörter in den Sende-RAM schreibt. Die CPU fährt
dann durch den Block fort, mühelos vor der RTI bleibend,
die mit nur 20 Mikrosekunden pro Wort liest. Diese Technik
eliminiert die Notwendigkeit, das MIL-STD-1553 "Besetzt-
Bit" zu verwenden, das eine verheerende Auswirkung auf den
Busdurchsatz haben kann. Die CPU liefert einen neuen
Startzeiger für die RTI, nachdem ein erstes Datenwort für eine
neue Nachricht geschrieben worden ist, so daß jede neue
RTI-Anforderung neue Daten lesen wird. Die RTI liest den
Startzeiger nur einmal pro Busanforderung zum Senden. Sie
speichert den Startzeiger in einem separaten internen
Zähler und adressiert alle anschließenden Wörter in der
Nachricht in Relation zu den Inhalten des Zählers. Nachdem die
RTI den RTI-Startzeiger für die Nachricht in ihren Zähler
kopiert hat, kann nun der RTI-Startzeiger durch die CPU
nach Bedarf aktualisiert werden, ohne das zu beeinflussen,
was die RTI sendet. Das heißt, die letzte vorherige
Nachricht, auf die durch den vorherigen Wert des
RTI-Startzeigers gezeigt worden ist, wird durch die RTI übertragen.
Wenn es einen Konflikt gibt, d. h., wenn die RTI liest und
die CPU gleichzeitig schreibt, dann wird in Abhängigkeit
von den gewählten Prioritäten entweder die alte Nachricht
(die RTI gewinnt) oder eine neue Nachricht (die CPU
gewinnt) übertragen.
-
Gemäß einem zweiten Gesichtspunkt der vorliegenden
Erfindung wird jede sowohl in Empfangs- als auch
Sendespeicherpuffern gespeicherten Nachricht vor der Plazierung im
Stapel wahlweise zeitetikettiert. Ein Zeitetikettakt wird
verwendet, um ein Zeitetikett auf jede Empfangs- oder
Sendenachricht zu setzen. Das Zeitetikett wird durch die Host-
CPU oder die Destinations-CPU verwendet, um die
verschiedenen Empfangszeiten von beliebigen zwei empfangenen
Nachrichten zu vergleichen. Bei Verwendung von anderer
Information, die für die besondere CPU verfügbar ist, können die
Parameter dann interpoliert oder extrapoliert werden, um
einen Zeitunterschied zu beseitigen und Zeitkohärenz sowie
erhöhte Leistung hinsichtlich der Parametergenauigkeit und
Integrität über viele Nachrichten hinweg zu erreichen.
-
Kohärenz der Empfangs- und Sendedaten wird durch die
vorliegende Erfindung sichergestellt, in dem jeder einzelne
über einen asynchronen Bus empfangene und übertragene Block
auf einer Block-Zu-Block-Basis in einem Umlaufspeicher
verwaltet und aufgenommen wird. Diese Technik vermeidet viele
der Unzulänglichkeiten, die mit im Stand der Technik
verwendeten Pufferungsarchitekturen und auch
FIFO-Architekturen verbunden sind, die ähnliche
Zugriffsunzulänglichkeiten haben. Zeitliche Übereinstimmung von empfangenen und
gesendeten Nachrichtenblöcken wird durch Zeitetikettieren
der Blöcke sichergestellt. So kann die vorliegende
Erfindung dazu benutzt werden, kritische Untersystemintegration
durch Gewährleisten von Datenkohärenz zu verbessern, ohne
der Host-CPU bedeutende Software- oder Hardwarenachteile
aufzuerlegen.
-
Diese und andere Ziele, Merkmale und Vorteile der
vorliegenden Erfindung werden angesichts der detaillierten
Beschreibung ihrer besten Ausführungsform deutlicher werden,
wie sie in der beigefügten Zeichnung dargestellt ist.
Kurze Beschreibung der Zeichnung
-
Fig. 1 ist ein vereinfachtes Funktionsblockschaltbild der
gattungsgemäßen Fernterminalschnittstelle gemäß der
vorliegenden Erfindung;
-
Fig. 2 ist eine Darstellung der Speicherorganisation des
Empfangsdaten-RAM von Fig. 1;
-
Fig. 3 ist eine Flußdiagrammdarstellung einer
Empfangsdatenroutine;
-
Fig. 4 ist eine Darstellung des Befehlswortformates;
-
Fig. 5A ist eine Flußdiagrammdarstellung einer
RTI-Senderoutine für die Nachricht Nr. N;
-
Fig. 5B ist eine Flußdiagrammdarstellung einer CPU-Sende-
RAM-Aktualisiersequenz für die Nachricht Nr. N;
-
Fig. 6 ist eine Darstellung der Speicherorganisation des
Sendedaten-RAM;
-
Fig. 7 ist eine Darstellung eines Gate-Arrays, in das RTI-
und TC-Funktionen eingebaut sind und das an verschiedene
externe Vorrichtungen gekoppelt gezeigt ist;
-
Fig. 8 ist eine vereinfachte Darstellung eines
schematischen Funktionsblockschaltbildes der Steuer- und
Datenabschnitte des RTI- und TC-Gate-Arrays von Fig. 7;
-
Fig. 9 ist ähnlich wie Fig. 7, außer daß die einzelnen
Signale außerhalb des Gate-Arrays detaillierter gezeigt sind;
und
-
Fig. 10 zeigt die Beziehung zwischen vielen der
Funktionsblöcke von Fig. 8 und den externen Vorrichtungen von Fig. 9.
Beste Ausführungsart der Erfindung
-
In Fig. 1, auf die Bezug benommen wird, ist ein
Funktionsblockschaltbild einer gattungsgemäßen MIL-STD 1553
Fernterminalschnittstelle 10 (RTI) nach der vorliegenden Erfindung
gezeigt. Die gattungsgemaße RTI 10 ist mit einer
Busschnittstelleneinheit 12 und einer Host-CPU 14 verbunden
gezeigt. Es versteht sich, daß die Busschnittstelleneinheit
in die gattungsgemäße RTI 10 eingebaut sein könnte, statt
separat vorgesehen zu sein. Die Busschnittstelleneinheit 12
steht mit einem Paar zweifach redundanten MIL-STD
1553-Bussen in Verbindung, die mit Bus A 16 und Bus B 18 bezeichnet
sind. Die Busschnittstelleneinheit 12 enthält einen
Übertrager A 20 und einen Sende-Empfänger A 22, die zusammen
der Funktion des Verbindens der RTI-Digitallogik mit dem
Datenbus dienen. Der Kopplungsübertrager 20 kann, wo es zur
Verbindung an den Datenbus erforderlich ist,
Störtrennwiderstände enthalten. Der Sende-Empfänger 22 hat einen
Empfänger, der eine Niederpegelgeräuschunterdrückung bewirkt
und einen digitalen Ausgang aufweist, der mit der digitalen
Logik kompatibel ist. Der Sende-Empfänger 22 enthält auch
einen Sender, der das zweiphasenmodulierte Signal steuert,
um im militärischen Standard definierte Datenwortformate zu
bilden. Sowohl der Übertrager- als auch der
Sende-Empfängerteil sind entweder separat aufgebaut oder
zusammengebaut ohne weiteres verfügbar.
-
Die Busschnittstelleneinheit 12 enthält auch einen
Übertrager B 24 und eine Sende-Empfänger B 26, die den gleichen
Funktionen für den Bus B 18 dienen wie es der Übertrager A
20 und der Sende-Empfänger A 22 für den Bus A 16 tun.
Zweifach redundante Busschnittstelleneinheiten 12 sind auch
kommerziell verfügbar. Obwohl die Erfindung in fig. 1 im
Zusammenhang mit einem zweifach redundanten MIL-STD 1553
Bus gezeigt ist, versteht sich, daß die Erfindung im
Zusammenhang mit jedem asynchronen Bussystem, einfach, zweifach,
usw., ausgeführt werden kann.
-
Die gattungsgemäße RTI 10 enthält ein
Fernterminalschnittstelle (RTI)-Gate-Array 28, einen Datenempfangs-RAM 30,
einen Datensende-RAM 32, einen Abbildungs-RAM 34, einen
Zeitetikettzähler 36, ein Terminalcontroller (TC)-Gate-Array
38, einen E/A- Teil 40, einen Taktgeber 42 und E/A- und
Steuerbusse 44. Es versteht sich, daß das RTI-Gate-Array 28
und das TC-Gate-Array 38, obwohl getrennt gezeigt, genauso
gut zu einem einzigen Gate-Array zusammengebaut sein
könnten. Ebenso können viele der anderen einzelnen Blöcke, die
in der gattungsgemäßen RTI 10 von Fig. 1 gezeigt sind,
getrennt oder in der gattungsgemäßen RTI 10 von Fig. 1
enthaltend vorgesehen werden.
-
Das RTI-Gate-Array 28 kann als CMOS-Vorrichtung ausgebildet
sein. Wie in der auch anhängigen Anmeldung USSN 635,944,
mit dem Titel DUAL REDUNDANT BUS INTERFACE CIRCUIT ARCHI-
TECTURE, Erfinder G. Howland, abgetreten auf den
Abtretungsempfänger dieser Anmeldung und hiermit ausdrücklich
durch Bezugnahme eingeführt, offenbart ist, wickelt das
RTI-Gate-Array 28, wie hier betrachtet, das komplette MIL-
STD-1553-Protokoll ab und erfordert keinen CPU-Eingriff für
normale Übertragungen von Blöcken zwischen dem Betriebsbus
und der Host-CPU. Die wesentlichen Merkmale des 1553-RTI-
Gate-Arrays, wie sie in der Beschreibung von Howland
offenbart sind, enthalten:
-
- Einzelgeräteaustattung für zweifach redundante 1553-
Busse;
-
- minimale Steckkartenplatz- und Leistungsanforderungen;
-
- minimale Hardware- und
Softwareausstattungsanforderungen;
-
- die Fähigkeit, den Betriebszustand zu melden und zu
programmieren; und
-
- umfassende Selbsttestfähigkeit.
-
Der 2K Wortdaten-RAM ist in einen 1K Wortempfangsdaten-RAM
30 und einen 1K Wortsendedaten-RAM 32 unterteilt. Das RTI-
Gate-Array 28 legt Befehlswörter, Moduswörter und
Datenwörter in Blöcken im Empfangsdaten-RAM ab und ruft abgelegte
Blöcke aus dem Sende-RAM 32 zum Übertragen auf dem aktiven
Bus ab. Der Empfangsdaten-RAM 30 ist mittels Steuersignalen
aus dem TC-Gate-Array 38 als ein "Umlauf"-RAM-Speicher
organisiert. Diese in Fig. 2 gezeigte Umlauforganisation
besteht aus Blöcken in der Reihenfolge, in der sie empfangen
werden. Wenn jede Nachricht vom RTI-Gate-Array 28 empfangen
wird, wird sie durch das TC-Gate-Array 38 paketiert und
zeitmarkiert. Es gibt keine Nachrichtenzwischenräume für
Nachrichten, selbst nicht für Nachrichten mit weniger als
einer Länge von 32 Worten. Die Organisation des Sendedaten-
RAM hat 32 Blöcke zu jeweils 256 Wörtern. Jeder Block ist
nach Umlaufart ähnlich der Einrichtung des Empfangs-RAN
eingerichtet, mit der Ausnahme, daß es 32 separate Umlauf-
RAMs (vgl. Fig. 6) gibt.
-
Der Abbildungs-RAM 34 von Fig. 1 wird durch die Host-CPU 14
initialisiert und durch das RTI-Gate-Array 28 und das TC-
Gate-Array 38 benutzt, um ankommende Sendungen für gültig
zu erklären und die geeignete Antwort (z. B. Interrupts) an
die Host-CPU 14 oder den Buscontroller (nicht gezeigt)
festzulegen.
-
Der Zeitetikettzähler 36 ist ein freilautender Zeitzähler,
der durch das TC-Gate-Array 38 bei Empfang der
Synchronisiermoduscodes aus dem Buscontroller gelöscht oder
voreingestellt wird. Der Zeitzähler wird vom TC-Gate-Array 38
benutzt, um alle ankommenden und abgehenden Blöcke
zeitzuetikettieren.
-
Das TC-Gate-Array 38 ist das zentrale Element der
gattungsgemäßen RTI-Schnittstelle 10. Die Funktionen des TC-Gate-
Arrays 38 sind folgende:
-
- Datenkohärenzmanagement
-
- Formatierung und Paketierung
-
- CPU-Schnittstelle
-
- Moduscodeansprechen
-
- CPU-Interrupts.
-
Das TC-Gate-Array 38 erzeugt gemeinsam mit dem
RTI-Gate-Array 28 sämtliche notwendigen Signale, um die obigen
Funktionen, wie im einzelnen unten beschrieben, zu
mechanisieren.
-
Um Datenkohärenz sicherzustellen, sieht das TC-Gate-Array
38 eine Logik vor, welche ankommende Blöcke testet. Die
Übereinstimmung von ankommenden Blöcken wird leicht
bestimmt und der Host-CPU wird es verwehrt, auf unvollständig
empfangene Nachrichtenblöcke zuzugreifen. Für abgehende,
für den aktiven Bus bestimmte Daten vermittelt das TC-Gate-
Array 38 einen Zugriff auf den Sendedaten-RAM 32 zwischen
dem RTI-Gatearray 28 und der Host-CPU 14. Das
RTI-Gate-Array 28 hat auf den Sendedaten-RAM 32 eine höhere
Zugriffspriorität als die CPU 14. Ausgangskohärenz wird
mittels-eines Blockschreibsperrsignales, das durch das TC-Gate-Array
(nicht gezeigt) generiert wird, und durch anfängliches
Verwehren eines RTI-Lese-Zugriffs auf einen Block, der
eingeschrieben wird, garantiert.
-
Das TC-Gate-Array 38 liefert die Steuersignale und hat die
Fähigkeiten zur Hochgeschwindigkeitsverarbeitung einer
Statusmaschine, die notwendig sind, um ankommende Blöcke in
Echtzeit zu paketieren und zeitzumarkieren. Das Formatieren
von kompletten empfangenen Blöcken und die Verwendung des
Umlaufspeichers bringt folgende wichtige Vorteile:
-
- wirksames Ausnutzen des Daten-RAM
-
- erhöhte Datendurchsatzfähigkeit
-
- Flexibilität für variable oder
Mehrraten-Nachrichtenblöcke
-
- reduzierte Softwarekomplexität.
-
Das TC-Gate-Array 38 liefert die notwendigen Signale und
bewirkt E/A-Port-Decodierungen zum Verbinden mit der Host-
CPU 14 mit einem minimalen Aufwand an Software. Das
TC-Gate-Array 38 generiert auch die Adressen von Wörtern
innerhalb jedes Blockes, um die Echtzeitanforderungen der CPU 14
zu minimieren.
-
Das TC-Gate-Array 38 spricht auf alle MIL-STD
1553B-Moduscodes an, ohne daß die CPU 14 eingreift, außer für die
folgenden zwei Moduscodes, für die CPU-Aktionen wesentlich
sind:
-
- RTI-Schnittstellenreset
-
- Selbsttest.
-
Es versteht sich von selbst, daß diese Codes implementiert
sein können.
-
Jedesmal, wenn ein neuer vollständiger Block durch die RTI-
Schnittstelle empfangen wird, benutzt das TC-Gate-Array den
Abbildungs-RAM 34, um die Gültigkeit und den
Interrupt-Status des Blockes zu bestimmen. Wenn ein gültiger Interrupt-
Nachrichtenblock empfangen wird, wird die CPU unterbrochen.
Die CPU kann dann auf diesen Block über einen speziellen
E/A-Port im TC-Gate-Array zugreifen.
-
Der Betrieb des MIL-STD-1553B Fernterminalschnittstellen-
Gate-Arrays 28 beinhaltet die Beteiligung sowohl der
Schnittstellenhardwareelemente als auch der Host-CPU. Die
funktionellen Merkmale der verschiedenen beteiligten
Elemente wurden oben beschrieben. Einfache und wirkungsvolle
Softwarealgorithmen und -verfahren können in der Host-CPU
für die Akquisition, Übertragung und Aufnahme der aktiven
Busdaten und für die Verwaltung der 1553B-RTI entwickelt
werden.
-
Die durch die 1553B-RTI verrichteten Aufgaben bestehen aus
den folgenden Operationen:
-
- Busdatenempfang
-
- CPU-Datensendung
-
- Initialisierung
-
- Selbsttest.
-
Empfang und Bearbeitung von Datenübertragungen durch das
RTI-Gate-Array 28 hat den folgenden Ablauf von Operationen
zur Folge (eine gleichwertige Flußdiagrammbeschreibung ist
in Fig. 3 gezeigt):
-
a.) Das RTI-Gatearray fordert Schreibzugriff auf den
Datenempfangs-RAM 30 an. (Siehe Schritt 10
in Fig. 3);
-
b.) das TC-Gate-Array 38 überprüft die Blockgültigkeit
unter Verwendung des Abbildungs-RAM 34. (Siehe
Schritt 102 in Fig. 3);
-
c.) das TC-Gate-Array 38 überprüft die Verfügbarkeit des
Datenempfangs-RAM 30 (siehe Schritt 104 in Fig. 3)
mit garantiertem, vor dem Empfang (alle zwanzig
Mikrosekunden) des nächsten Wortes sichergestelltem
Zugriff;
-
d.) wenn ein neuer Block in den Datenempfangs-RAM 30
geschrieben worden ist (siehe Schritt 106 in Fig. 3),
schreibt das TC-Gate-Array 38 das Befehlswort in das
Befehls/Statusregister (nicht gezeigt) und in den
Empfangsdaten-RAM. (Siehe Schritt 108 in Fig. 3);
wenn nicht, wird ein Datenwort geschrieben (siehe
Schritt 109 in Fig. 3);
-
e.) wenn das Zeitetikettmerkmal freigegeben wird, lädt
das TC-Gate-Array 38 das Zeitetikettwort nach dem
Block und aktualisiert zum Umlaufspeicher gehörende
Zeiger, die auf bestimmte Datenstücke zeigen, was
unten detaillierter beschrieben wird. (Siehe
Schritte 110 und 112 in Fig. 3). Wenn das Zeitetikett
nicht freigegeben wird, oder nach dem Schreiben
eines Zeitetiketts, wird die Nachricht geprüft, um
festzustellen, ob das Ende des Blockes erreicht
worden ist. (Siehe Schritt 114 in Fig. 3);
-
f.) die Schritte (c.) und (d.) werden, bis der Block
komplett empfangen ist, alle zwanzig Mikrosekunden
wiederholt. Der Nachrichtenblock ist nun, falls
gültig, für die CPU verfügbar. (Siehe Schritte 114,
115, und 100 bis 112 in Fig. 3);
-
g.) das TC-Gate-Array 38 erzeugt den Interrupt für die
Host-CPU 14, falls durch den Abbildungs-RAM 34
angegeben, und aktualisiert spezielle Zeiger zum
Unterbrechungsblock (zu den Unterbrechungsblöcken). (Siehe
Schritte 116 und 118 in Fig. 3).
-
Zurück zu Fig. 2, die eine Darstellung einer
Speicherorganisation des Datenempfangs-RAM 30 zeigt. Unter der
willkürlichen
Annahme eines 1K-Speichers sind die Adressen 50 in
einer Spalte neben dem Umlaufdatenempfangsspeicher 30
gezeigt. Jede Speicheradresse ist im Digitalformat
bezeichnet, d. h., im ungünstigsten Fall Speicherung von über 20
Millisekunden. Nur ein kleiner Teil des gesamten Speichers ist
in Fig. 2 dargestellt. Der Teil des Speichers 30, der aktiv
zu der in Fig. 2 dargestellten Zeit benutzt wird, ist durch
eine Klammer 52 gezeigt, die angibt, daß in
Speicheradreßstellen 4 bis 27 abgelegte Wörter für CPU-Benutzung zur
Verfügung stehen. Die Host-CPU kann dies durch Überprüfen
eines Startzeigers 54 und eines Stopzeigers 56 feststellen,
die auf den Beginn bzw. das Ende der verfügbaren
Nachrichtenblöcke zeigen. Nur diejenigen Blöcke 57, die noch nicht
gelesen worden sind und die komplett geschrieben worden
sind, werden für CPU-Benutzung zur Verfügung gestellt.
-
Das Befehlswortformat ist in Fig. 4 dargestellt. Jedem RT
im 1553-System ist eine eindeutige 5-Bit-Adresse
zugeordnet, für die es verantwortlich ist zu antworten, wenn die
Adresse als Teil eines Befehlswortes auf dem Datenbus durch
den Buscontroller gesendet wird. Das nächste Bit zeigt die
vom RT angeforderte Aktion an, d. h. Senden (T) oder
Empfangen (R). Die nächsten 5 Bits zeigen entweder die
Unteradreßkennung von speziellen Nachrichtenblöcken oder eine
Anzeige an, daß gerade ein Modusbefehl gesendet wird. Die
nächsten 5 Bits zeigen die Menge an Datenwörtern, die vom
RT ausgesendet oder empfangen werden soll, oder einen
wahlweisen Moduscode an.
-
Zurück zu Fig. 2, der nächste Block, der aufgefüllt wird,
ist durch eine Klammer 58 angezeigt und enthält, in der
augenblicklichen Zeitdarstellung, die Speicherstellenadressen
28 bis 30. Ein Nächstes-Wort-Zeiger 60 wird von dem
TC-Gate-Array 38 von Fig. 1 verwendet, um zu bestimmen, wohin im
Block das nächste Wort zu schreiben ist. In diesem Fall
wird das nächste Wort in eine Speicherstellenadreßnummer 31
geschrieben werden, die ein altes oder "verbrauchtes"
Informationsstück enthält, das früher in einem Block
enthalten war, der bereits von der Host-CPU, wie durch eine
Klammer 62 gezeigt, gelesen ist. Das TC-Gate-Array 38 wird
fortfahren, in den nächsten verfügbaren Teil des Speichers
gemäß dem nächsten Wortzeiger 60 Blöcke zu schreiben, und
die Host-CPU 14 wird fortfahren, diese Blöcke nach ihrem
Belieben entweder einzeln oder in Gruppen zu lesen. Das TC-
Gate-Array 38 wird so immer etwas vor der Host-CPU bleiben
und immer das Schreiben eines Blockes vervollständigen,
somit dessen Kohärenz sicherstellen, bevor er von der Host-
CPU gelesen wird. Auf diese Weise wird der Speicher in
einer Umlaufart, wie durch einen Pfeil 64 gezeigt,
beschrieben, bis die physikalischen Grenzen des Speichers erschöpft
sind, wie durch einen Pfeil 66 gezeigt. An diesem Punkt ist
die 1K-Kapazität des Speichers im Begriff erschöpft zu
sein.
-
Nach einem Schreiben in die Speicherstelle bei Adresse 1023
springt der Nächstes-Wort-Zeiger 60 einfach wieder zur
Speicheradreßnummer 0. Und der gerade geschriebene Block
"umläuft" die physikalischen Grenzen des 1K-Speichers. Da
die Speicherkapazität viel größer ist als das, was zu einer
beliebigen Zeit beabsichtigt sein könnte, benutzt zu
werden, tritt nie irgendein Kohärenzproblem auf.
-
Somit wird eine "Kreis-", "Umlauf" "Stapel-" oder
"Pseudo-FIFO"-Art eines Speichers, der viel größer ist als
das, was vorstellbar zu einer beliebigen Zeit effektiv
benutzt werden könnte, verwendet, Nachrichtenkohärenz auf
einer Block-zu-Block-Basis sicherzustellen. Dadurch, daß
Blöcke sequentiell in ein paketiertes Format geschrieben
werden und jedes Wort an seiner ursprünglichen Stelle
bleibt, werden sehr wirksame Zugriffstechniken zur
Verwendung verfügbar gemacht. Somit werden die alten Techniken
der zweifachen, dreifachen, etc. Pufferung oder Speicherung
nach Art eines FIFO-Speichers, bei dem Nachrichten durch
den Stapel "rieseln", vermieden. Somit wird Datenkohärenz
in einer sehr stabilen Weise sichergestellt, welche einen
Zugriff mit minimalen Hardware- und Softwareanforderungen
sicherstellt. Die CPU kann einen oder mehrere Blöcke
entladen und die Blöcke entsprechend ihren Befehlswörtern
aussortieren.
-
Die zweite Stufe von Kohärenzproblemen, die (aufgrund des
Datenempfangs aus zwei verschiedenen Untersystemen) in
einer Gruppe von empfangenen Nachrichten existieren, wird
durch Zeitetikettieren jeder Nachricht gelöst. Somit kann
die CPU präzise bestimmen, wann jede empfangen wurde. Somit
können, wenn ein Flugregelcomputer ein
Fluggeschwindigkeitssignal zu einer Zeit t = t&sub1; sendet und ein
Kreiselcomputer Nick-, Roll- und Giersignale zu einer t = t&sub2; sendet,
diese beiden Signale in einen Stapel geladen und so
zeitmarkiert werden, daß es der CPU ermöglicht wird, diese
zeitmäßig zu unterscheiden und diese nicht zu verwenden,
als ob sie alle zur gleichen Zeit generiert worden wären.
Da sie zeitmarkiert sind, werden potentielle katastrophale
Zeitsteuerungsprobleme, die den Zeitrahmen, in welchem ein
Datenwort empfangen wird, betreffen, vermieden. Die CPU
vergleicht die verschiedenen Empfangszeiten von
irgendwelchen zwei empfangenen Blöcken unter Verwendung anderer ihr
bezüglich des Arbeitens des Flugzeugs verfügbarer
Information und extrapoliert dann irgendein verzögertes Datenstück
auf die aktualisierte Zeit des letzten Informationsstückes.
-
Fig. 5A ist eine Darstellung einer RTI-Sendesequenz für die
Nachricht NR. N. Ab einem Startblock 200 geht diese Sequenz
weiter zu einem Schritt 201, in welchem restgestellt wird,
ob eine Busanforderung zum Senden der Nachricht N existiert
oder nicht. Wenn nicht, erfolgt ein Austritt in einem
Schritt 202. Wenn ja, wird ein Statuswort in einem Schritt
203 gesendet, und der RTI-Startzeiger wird in einem Schritt
204 in einen J-Zähler kopiert. Ein Wort wird dann an der
Adresse J aus dem Sendebereich für die Nachricht N
gesendet. In einem Schritt 206 wird J dann gleich J-1 gesetzt.
-
Dann wird in einem Schritt 207 eine Entscheidung getroffen,
ob die verlangte Zahl von Wörtern in der Nachricht N
gesendet worden ist. Wenn nicht, erfolgt eine Rückkehr zum
Schritt 205 zum weiteren Senden von zusätzlichen Wörtern.
Wenn ja, erfolgt ein Austritt in dem Schritt 202.
-
Kohärenz wird in der obigen Sequenz aufrechterhalten, weil
die RTI den RTI-Startzeiger für eine Nachricht in einen
Zähler kopiert. Der RTI-Startzeiger kann dann durch die CPU
nach Bedarf aktualisiert werden, ohne das nachteilig zu
beeinflussen, was die RTI sendet, d. h. die letzte vorherige
Nachricht, auf die durch den vorherigen Wert des
RTI-Startzeigers gezeigt worden ist. Wenn es einen Konflikt gibt,
d. h., wenn die RTI liest und die CPU gleichzeitig schreibt,
dann wird in Abhängigkeit davon, wer gewinnt (auf der Basis
der gewählten Priorität), entweder die alte Nachricht (die
RTI gewinnt) oder eine neue Nachricht (die CPU gewinnt)
übertragen.
-
Fig. 5B ist eine Darstellung einer
CPU-Sende-RAM-Aktualisiersequenz für die Nachricht Nr. N. Ab einem Startblock
208 wird eine Entscheidung in einem Schritt 209 darüber
getroffen, ob neue Daten für die Nachricht Nr. & verfügbar
sind. Wenn nicht, erfolgt ein Austritt in einem Schritt
210. Wenn ja, wird eine Variable K gleich dem
CPU-Startzeiger für die Nachricht N in einem Schritt 211 gesetzt. Ein
Nachrichtenwort wird dann an der Adresse K in dem
Sende-Umlauf-RAM für die Nachricht N in einem Schritt 212
geschrieben. Ein Schritt 213 wird dann ausgeführt, n welchem die
Variable K gleich K+1 gesetzt wird. Es wird dann in einem
Schritt 214 bestimmt, ob alle Wörter in der Nachricht
geschrieben worden sind. Wenn nicht, erfolgt eine Rückkehr zu
den Schritten 211-213, bis alle Wörter geschrieben worden
sind. Wenn ja, wird der RTI-Startzeiger mit dem
CPU-Startzeiger in einem Schritt 215 aktualisiert. Der
CPU-Startzeiger wird dann in einem Schritt 216 auf den Wert K+1
aktualisiert. Es erfolgt dann ein Austritt in dem Schritt 210.
-
Kohärenz wird in der obigen Sequenz, die in Fig. 5B
dargestellt ist, aufrechterhalten, weil:
-
(a) der RTI-Startzeiger aktualisiert, nachdem die Daten
geschrieben worden sind, so daß jede neue
Anforderung neue Daten bedeuten wird;
-
(b) die RTI liest den Startzeiger nur einmal pro
Busanforderung zum Senden und speichert diesen Wert in
einem separaten internen Zähler. Sie liest dann
alle Wörter in der Nachricht unter Verwendung
dieses Zeigers als Referenz. Irgendwelche neuen
Startzeiger werden bis zur nächsten Busanforderung
ignoriert.
-
Fig. 6 ist eine Darstellung des Sende-RAM-Aufbaus.
Üblicherweise wird es 30 Nachrichtenblöcke (im Zusammenhang mit
MIL-STD-1553) geben, wobei jeder der Blöcke 256 Wörter
enthalten könnte und wobei jeder Block einen separaten
Umlaufspeicher Nr. 1 211 hat gemäß der Darstellung M&sub1; Wörter. Die
neueste Nachricht innerhalb des Nachricht Nr.
1-Speicherbereiches beginnt an einer Adresse a&sub1;. Die CPU wird den
Bereich 211 mit den letzten Daten aktualisiert halten, und
der letzte Startzeiger wird auf die letzten Daten zur
Übertragung zeigen. Auf ähnliche Weise wird die Nachricht Nr.
2, 3, 4, . . . , N Nachrichtenbereiche haben, die wie
dargestellt begrenzt sind und von denen jede eine laufende
Nachrichtenstartadresse hat, wie es in der Tabelle 215 in Fig. 6
gezeigt ist.
-
Fig. 7 ist eine Darstellung eines Gate-Arrays 300, in das
sowohl die RTI. als auch die Funktionen eingebaut sind.
Die physikalische Ausrichtung und Hauptverbindungen des
Gate-Arrays sind gezeigt. Es versteht sich, daß die gezeigte
Ausrichtung lediglich eine von einer großen Vielzahl von
Ausrichtungen ist, die gewählt werden könnte. Es versteht
sich auch, daß die Vorrichtungen und Hauptverbindungen, die
durch das Gate-Array hergestellt sind, nicht alle
notwendigerweise erforderlich sind, um die hierin offenbarten
erfindungsgemäßen
Konzepte auszuführen. Die Erfindung sollte
auch nicht durch die physikalischen Beschränkungen der
einzelnen Vorrichtungen beschränkt sein.
-
Fig. 7 zeigt einen 800-Mikrosekunden-Zeitgeber 302, der
über drei Leitungen 303 mit dem Gate-Array 300 verbunden
ist, einen Abbildungs-PROM 304, der über vierzehn Leitungen
305 mit dem Gate-Array 300 verbunden ist, einen Adreßbus
306, der über fünfzehn Leitungen 307 mit dem Gate-Array
verbunden ist, einen Daten-RAM 308, einen
Paritätsprüfungsteil 310 und einen Datenbus 312, die alle drei über
sechzehn gemeinsame Leitungen 314 mit dem Gate-Array 300
verbunden sind, ein Schreib-Gate 316, das über drei Leitungen
318 mit dem Gate-Array 300 verbunden ist und
Sende-Empfänger 320, die über acht Leitungen 322 mit dem Gate-Array 300
verbunden sind.
-
Der 800-Mikrosekunden-Zeitgeber 302 dient der Funktion, den
Bus vor einer "gaunerhaften"-RTI zu schützen, die
fortfährt, Signale auf dem Bus zu senden, nachdem ihre maximal
zugewiesene Zeit schon abgelaufen ist. Deswegen kann die
längste Übertragung nicht mehr als 800 Mikrosekunden je
MIL-STD 1553 andauern, wenn diese Zeitgrenze gewählt war.
Der Zeitgeber wird jedesmal gestartet, wenn der Bus die RTI
"anspricht", und erlaubt der RTI, für maximal 800
Mikrosekunden auf dem Bus zu "sprechen", nachdem die
Sende-Empfänger 320 abgeschaltet sind. Somit begrenzt der Zeitgeber 302
die maximale Übertragungszeit auf dem Bus auf 800
Mikrosekunden.
-
Der Abbildungs-PROM 304 dient der gleichen Funktion wie das
Abbildungs-RAM 34 in Fig. 1. Zum Erfüllen dieser Funktion
kann entweder ein RAM oder ein ROM verwendet werden. Bei
einer Anwendung, in der der Host-Prozessor wünschen kann,
eine Nachricht während des Betriebes als zulässig oder
nicht zulässig, gültig zum Empfangen oder nicht gültig,
gültig zum Unterbrechen oder nicht gültig und gültig zum
Zeitmarkieren oder nicht neu zu definieren, sollte folglich
ein RAM mit seinem zugehörigen Host-Prozessorzugriffspfad
verwendet werden. In einem mehr typischen System, das keine
Neudefinition dieser Parameter während des Betriebes
erfordert, kann die einfachere PROM-Ausführung verwendet werden.
-
Der Adreßbus 306 dient der Funktion, die Adresse des Daten-
RAMs zwischen dem RTI- und TC-Array und dem Host-Prozessor
gemeinsam zu benutzen und auch die Adresse des
Host-Prozessors zu decodieren, um ihm Zugriff auf die internen
Register des RTI- und TC-Arrays zu ermöglichen.
-
Der Daten-RAM 308 dient einer ähnlichen Funktion wie der
Datenempfangs-RAM 30 und der Datensende-RAM 32 in Fig. 1.
-
Der Paritätsprüfungsteil 310 ist vorgesehen, um das mit
jedem Wort verbundene Paritätsbit im Daten-RAM während eines
Daten-RAM-Schreibens zu generieren und erzeugen. Parität
wird wieder während eines Daten-RAM-Lesens generiert und
mit der während des Schreibens dieses gleichen Wortes
gespeicherten verglichen. Eine Diskrepanz zwischen diesen
beiden zeigt einen RAM-Fehler an und wird als solcher dem
Host-Prozessor angezeigt. Die Paritätsprüfung verbessert
eine Zuverlässigkeitsfehlererfassung, ohne die die
Schnittstelle, allerdings mit niedrigerer Zuverlässigkeit,
funktionieren wird.
-
Der Datenbus 312 dient der Funktion, einen
Datenübertragungsweg zwischen dem Gate-Array 300 und einer daran
angeschlossenen Host-CPU und auch zwischen jeder dieser
Vorrichtungen und dem Daten-RAM 308 zu schaffen.
-
Das Schreib-Gate 316 ist vorgesehen, um die Zugriffe des
RTI- und TC-Gate-Arrays auf den Daten-RAM mit denen des
Host-Prozessors zu synchronisieren, wodurch eine
transparente DMA-Betriebsart erzielt wird. Dies macht die
gemeinsam genutzte Funktion des Daten-RAMs leistungsfähig wie
einen Dual-Port-RAM.
-
Die Sende-Empfänger 320 erfüllen eine ähnliche Funktion wie
die Sende-Empfänger 22, 26 in Fig. 1.
-
Fig. 8 ist eine vereinfachte
Funktionsblockschaltbilddarstellung der Steuerungs- und Datenteile des RTI- und
TC-Gate-Arrays 300 in Fig. 7. Jeder der in Fig. 8 gezeigten
Blöcke zeigt in allgemeiner Form die Hardware, die im Gate-
Array 300 eingebaut sein kann. Der Großteil der in Fig. 8
offenbarten Funktionen ist bereits in der auch anhängigen
Anmeldung von Howland, die zuvor durch Bezugnahme
engeführt wurde, beschrieben worden. Die Änderungen, die
gemacht worden sind, sind Änderungen, welche die
Leistungsfähigkeiten der RTI von Howland durch Einbau eines TC
vergrößern, der hilft, die Datenkohärenz sicherzustellen, was
das Hauptziel der vorliegenden Erfindung ist.
-
Fig. 8 ist durch eine gestrichelte Linie 330, welche die
Funktionsblöcke in einen oberen Steuerteil und einen
unteren "Daten"-Teil trennt, geteilt. Der obere Steuerteil
zeigt sechs Funktionsblöcke, die Steuerlogik enthalten,
welche die Gesamtsteuerung des im unteren Datenteil in Fig.
8 gezeigten Datenflusses hat. Ein CPU-Zugriffsteil 332
enthält Logik, die es der CPU erlaubt, mit dem Gate-Array zu
kommunizieren. Diese Logik decodiert das geeignete
Eingangssignal, das für die "Intentionen" der CPU bezeichnend
ist, d. h., Adressen, Lesen/Schreiben, Chipauswahl und
interne Auswahlen 1 und 2, und erlaubt der CPU, auf Register
innerhalb des RTI- und TC-Gate-Arrays zuzugreifen, wie
Zeitetikett-, Steuerungs- und Stopzeigerregister.
-
Ein Statusmaschinenteil 334 enthält die allerwichtigste
Steuerlogik, die den Betrieb der gattungsgemäßen
Schnittstelle verknüpft. Sie ist in ihrer Funktion ähnlich der
Statusmaschine, die von Gary Howland in der oben in Bezug
genommenen Offenbarung DUAL REDUNDANT BUS INTERFACE CIRCUIT
ARCHITECTURE offenbart ist. Die Statusmaschine
interpretiert die Aktion, die stattfinden muß, d. h., schreibe
Befehlswort, schreibe Datenwort, lies Datenwort, schreibe
Zeitetikett, etc., und bildet die notwendigen
Steuersignale, die erforderlich sind, damit diese Aktion erfolgt.
-
Ein Abschaltlogikteil 336 ist vorgesehen, um
Abschaltbefehle vom Bus zu erfassen und geeignete Aktionen zu ergreifen.
Immer dann, wenn ein Abschaltbefehl erfaßt wird, wird der
mit der gegenüberliegenden Hälfte des zweifach-redundanten
1553-Busses verbundene Sender gemäß der militärischen
Spezifikation gesperrt.
-
Ein DMA-Teil 338 vermittelt auf Busebene den Zugriff auf
den lokalen RAM zwischen der Host-CPU und der RTI, wobei
die von der externen Schreib-Gate-Schaltung vorgesehenen
Synchronisationssignale verwendet werden. Der DMA-Teil
vermittelt den Zugriff auf die Daten-RAM-Adreß- und
Datenleitungen und schafft dabei etwas, was für beide Anwender als
ein Dual-Port-RAM erscheint.
-
Ein Fehlerlogikteil 340 ist zum Erfassen von Fehlern im
1553-Serienstrom enthalten. Alle die vom MIL-STD-1553
verlangten Überprüfungen werden verrichtet. Diese beinhalten
Wortparität, fortlaufende Daten, Blocklückenzeiten,
Wortzahlwerte, ungültige Moden, Synchronmuster, etc.
-
Ein Modusdecodierteil 342 ist vorgesehen, um Modusbefehle,
die zur Ausführung in der besonderen Ausführungsform
geeignet sind, zu erkennen. Alle 1553-definierten Moduscodes
werden decodiert und im Inneren des Gate-Arrays realisiert,
außer Fernterminal-Rücksetzen und Selbsttestausführen, die
zur Ausführung zur CPU weitergeleitet werden müssen.
-
Der Datenteil in Fig. 8 unterhalb der gestrichelten Linie
330 enthält eine konzeptmäßige Darstellung des Datenflusses
innerhalb des Gate-Arrays 300 in Fig. 7 gemaß der
vorliegenden Erfindung.
-
Ein Frontende-Teil 344 umfaßt Pegelübersetzung, einen
Entprellteil und sieht auch einen Testpfad vor, ähnlich zum
Selbsttestaspekt, der in der zuvor durch Bezugnahme
eingeführten Offenbarung von Howland offenbart ist. Der
Frontende-Teil 344 empfängt auf Leitungen 322
Manchester-codierte Daten und liefert auch Manchester-codierte
Ausgangssignale.
-
Nach Pegelübersetzung, Entprellung und anderen geeigneten
Tests, werden die zweiphasigen Signale auf Leitungen 348 zu
einem Decodierteil 350 gesendet, das das ankommende
Manchester-Signal decodiert. Die Decodierer können
Zweifachdecodierer in einer zweifach redundanten Ausführung sein.
Die decodierten Signale werden auf Leitungen 352 zu einem
Befehlsschiebe- und Multiplexer-Teil 354 gesendet. Der
Schiebeteil formt die ankommenden seriellen Daten in eine
parallele vorm um, und der Multiplexerteil wird in zweifach
redundanter Ausführungen verwendet, um den geeigneten
Eingangskanal auszuwählen.
-
Das multiplexierte parallele Befehlswort wird auf Leitungen
356 zu einem Befehls-Latch-Teil 358 gesendet, wo es für
eine spätere Übertragung zwischengespeichert wird.
-
Das zwischengespeicherte Befehlswort wird auf Leitungen 360
zu einem Adressenausgangsteil 362 gesendet, das eine
Adresse auf Leitungen 307 an den Adreßbus 306 in Fig. 7
liefert. Das Adressenausgangsteil 362 ist ein Multiplexer,
der zwischen dem Befehls-Latch 358 und einem von einem
Lade/Stop-Teil 364 bereitgestellten Ladezeiger auswählt. Wenn
die Schnittstelle Daten sendet, werden die Daten im Daten-
RAM 308 (siehe fig. 7) so formatiert, aß die Adresse zum
RAM die niedrigsten elf Bits des Befehlswortes ist, welches
im Befehls-Latch (vgl. Fig. 4) gespeichert worden ist. Die
niedrigsten fünf Bit des Befehls-Latch bilden einen Zähler,
der für jedes gesendete Wort um Eins verringert wird,
wodurch das Datenformat von fig. 6 gebildet wird. Wenn die
Schnittstelle Daten empfängt, wird der RAM durch den
Ladezeiger auf den Leitungen 366 und 307 adressiert, wodurch
das Empfangsdatenformat von Fig. 2 gebildet wird. Durch den
Lade/Stop-Teil 364 wird auch ein Stopzeiger oder ein
nächster Wortzeiger 60 in Fig. 2 geliefert. Nachdem ein Block
empfangen worden ist und alle Gültigkeitsüberprüfungen
passiert hat, wird der Ladezeiger in den Stopzeiger kopiert,
wodurch der neue Block im gültigen Datenbereich 57 (siehe
Fig. 2) der CPU aufgenommen wird. Wenn zu irgendeiner Zeit
ein Fehler detektiert wird, wird der Stopzeiger in den
Ladungszeiger kopiert, was den Ladungszeiger wirksam sichert
und die ungültigen Daten aus dem zugreifbaren Bereich der
CPU aussondert. Es ist nicht notwendig, die ungültigen
Daten tatsächlich aus dem RAM zu löschen. Sie werden in der
Tat durch den nächsten ankommenden Block überschrieben, und
die CPU sieht nie die ungültigen Daten.
-
Alle Befehlswörter auf dem 1553-Bus werden, ungeachtet
ihrer Bestimmung, in das Befehlsschieberegister 354
geschoben. Von hier aus wird ein Adressenvergleich durch eine
RT/M-Erkennungslogik 368 durchgeführt. Dies ist einfach ein
Vergleich der fünf höchstwertigen Bits (vgl. Fig. 4) des
Befehlswortes mit Adressen, die die CPU in die
RT/M-Erkennungslogik über Leitungen 370 geschrieben hat. Denn eine
Adresse mit der RT-Adresse übereinstimmt, antwortet die
Schnittstelle als ein Fernterminal. Wenn eine Adresse mit
einer Monitoradresse übereinstimmt, empfängt die
Schnittstelle Daten, antwortet aber nicht auf dem 1553-Bus. Somit
wird sie sich als ein Bus-Monitor gemäß der militärischen
Spezifikation verhalten. Wenn überhaupt keine
Übereinstimmung hergestellt ist, macht die Schnittstelle nichts. Die
CPU kann auch eine "Gesamtüberwachung" programmieren, wobei
in diesem Fall die Schnittstelle beliebige und alle
Busdaten ohne Rücksicht auf die Adresse empfangen wird.
-
Ein Steuerregister 372 ist innerhalb des Gate-Arrays
vorgesehen, das es der CPU erlaubt, solche Funktionen wie
Zurücksetzen, Freigeben eines Kanales A und/oder B, Freigeben
eines Selbsttests, Freigeben eines Zeitetiketts, etc. durch
Setzen der geeigneten Steuerregisterbits auszuführen.
-
Ein Neubefehlslogikteil 380 antwortet auf decodierte
Befehle, Zustände und Datenwörter auf Leitungen 382 vom
Decodiererteil 350. Ankommende serielle Daten werden von dem
Neubefehlslogikteil 380 auf Leitungen 384 zu einem
Eingangs/Ausgangs-Schieberegister 386 übertragen, wo sie in
parallele Form zur Übertragung auf Leitungen 388 zu einem
Empfangs-Multiplexer/Latch 390 zusammengesetzt werden. Das
Empfangs-Multiplexer/Latch 390 reagiert auch auf
zwischengespeicherte Befehlswörter, die aus dem Befehls-Latch 358
auf Leitungen 392 empfangen werden. Somit empfängt das
Empfangs-Multiplexer/Latch 390 sowohl zwischengespeicherte
Befehlswörter als auch Datenwörter in paralleler Form zur
Übertragung auf Leitungen 394 zu einem
Daten-Eingangs/Ausgangsteil 396, das eine bidirektionale
Dreizustandsdatenbusschnittstelle sein kann, um über Leitungen
314 den Datenbus 312, den Paritätsprüfungsteil 310 und den
Daten-RAM 308 von Fig. 7 anzukoppeln. Ein
Zeitetikett/Synchronisier-Teil 398 liefert Zeitetikettwörter für
jeden Nachrichtenblock zum Übertragen zu dem Empfangsteil
des Daten-RAMs 308 in Fig. 7.
-
Der Zeitetikett/Synchronisierer enthält einen freilaufenden
16-Bit-Zähler, der alle 64 Mikrosekunden inkrementiert
wird. Wenn das Zeitetikett freigegeben ist. Wird diese 16-
Bit-Zählung in der in Fig. 2 gezeigten Position in den
Daten-RAM geschrieben. Es ist natürlich notwendig, das
Inkrementieren des Zeitetiketts mit dem Schreibzyklus so zu
synchronisieren, daß ein stabiles Wort geschrieben wird. Dies
wird durch Zurückstellen des Inkrementierens erreicht, bis
das Schreiben vorüber ist. Der Zeitetikettzähler ist auch
voreinstellbar und wird durch die CPU (aus Datenleitungen
314) oder bei Empfang eines "Synchronisiere mit
Arbeit"-Moduscodes aus dem 1553-Bus (aus Leitungen J94) geladen. Oder
der Zeitetikettzähler wird gelöscht, wenn die
Modusdecodierlogik 342 einen "Synchronisier"-Moduscode vom 1553-Bus
erkennt.
-
Somit werden im Empfangsmodus Nachrichtenblöcke, die ein
Befehlswort haben, dem ein Zeitetikett mit einer Anzahl von
Datenwörtern folgt, auf den Leitungen 314 zum
Empfangs-Daten-RAM gesendet.
-
Als Reaktion auf einen Sendebefehl vom angekoppelten Bus
werden die Decodierer 350, Befehlsschieber und Multiplexer
354, Befehls-Latch 358 und Adreßausgangsteil 362 alle in
einer ähnlichen Weise funktionieren, um den passenden
Befehl zur angekoppelten Hardware zu liefern. In diesem Fall
werden Nachrichten, die im Sendeteil des Daten-RAMs 308
(siehe Fig. 7) gespeichert sind, auf Leitungen 314 zum
Daten-Eingangs/Ausgangsteil 396 gesendet, um auf Leitungen
410 zu einem Sende-Multiplexer/Latch 412 übertragen zu
werden. Das Sende-Multiplexer/Latch 412 spricht auch auf
Statuswörter an, die von einem Sende-Multiplexer-Pegel-1 414
auf Leitungen 416 gesendet werden. Der Sende-Multiplexer-
Pegel-1 414 empfängt auf Leitungen 418 Statuswörter, welche
aus verschiedenen Quellen innerhalb des Gate-Arrays
zusammengesetzt sind.
-
Ein Letzter-Befehl-Teil 420 liefert auf Leitungen 422 ein
letztes Befehlssignal zum Sende-Multiplexer-Pegel-1 414.
-
Der Sende-Multiplexer-Pegel-1 414 multiplexiert die Inhalte
der Information des Betzter-Befehl-Teils oder des
Statuswortes in das Sende-Latch. Dies erbringt die Datenpfade zum
Unterstützen der Moduscodes "sende letzten Befehl" und
"sende Status" des militärischen Standards.
-
Nachdem ein Statuswort und die anschließenden Datenwörter
durch das Sende-Multiplexer/Latch 412 empfangen worden
sind, werden sie auf Leitungen 424 an das
Eingangs/Ausgangs-Schieberegister 386 abgegeben zur seriellen
Übertragung auf einer Leitung 426 zu einem Codierer 428.
Der Codierer liefert Manchester-Zweiphasen-Signaie zur
Übertragung auf Leitungen 430 zu dem Frontende 344. Vom
Frontende 344 werden die Manchester-codierten Signale auf
Leitungen 322 zum Sende-Empfänger 320 in Fig. 7 zur
Übertragung
auf dem zugeordneten asynchronen Datenbus
geliefert.
-
Eine detailliertere Darstellung der die verschiedenen Teile
der gattungsgemäßen Schnittstelle in Fig. 7 verbindenden
Signale, einschließlich der Signale, die mit der Host-CPU
in Verbindung stehen, ist in den Fig. 9 und 10 gezeigt. Es
sind auch einige zusätzliche Signale, die für das hier
vorgestellte erfinderische Konzept nicht wesentlich sind,
gezeigt und werden einigermaßen detailliert beschrieben.
-
Fig. 10 dient dazu, die Beziehung zwischen vielen der
Funktionsblöcke, die in Fig. 8 vorgestellt sind, und einer
tatsächlichen Hardware-Ausführung, wie in Fig. 9 und 10
gezeigt, zu zeigen. Das Gate-Array 300 von Fig. 9 ist in Fig.
10 in einer Weise dargestellt, die mehrere der
Funktionsblöcke von Fig. 8 an externe Signale von Fig. 9
angeschlossen darstellt. Nicht gezeigt sind in Fig. 10 diejenigen
Blöcke von Fig. 8, welche allein ausschließlich einer
internen Signalverarbeitung im Gate-Array zugeordnet sind.
-
Im einzelnen sind in den Fig. 9 und 10 die Signale auf den
Leitungen 322 der beiden Fig. 7 und 8, welche an die Sende-
Empfänger 320 von Fig. 7 angeschlossen sind, an das
Frontende 344 über Klemmen 13-23 des Gate-Arrays 300
angeschlossen gezeigt. Der Adreßausgangsteil 362 von Fig. 8 ist in
Fig. 10 mit Adreßausgangsleitungen an Klemmen 60-72 des
Gate-Arrays 300 verbunden gezeigt. Der
Daten-Eingangs/Ausgangsteil 396 von Fig. 8 ist in Fig. 10 zum
Liefern und Empfangen von Daten an Klemmen 33-50 des
Gate-Arrays 300 gezeigt.
-
In Fig. 10 sind verschiedene andere in Fig. 8 dargestellte
Steuerungs- und Datenteile gezeigt. Obwohl in Fig. 8 nicht
mit irgendwelchen Geräten extern an das Gate-Array
angeschlossen gezeigt, kann aus Fig. 10 ersehen werden, daß
diese verschiedenen in Fig. 8 dargestellten anderen
internen Funktionsblöcke tatsächlich sowohl mit externen
Einrichtungen als auch intern miteinander verbunden sind.
Somit ist ersichtlich, daß das Modusdecodierteil 342, das
Befehls-Latch-Teil 358, das RT/M-Erkennungsteil 368 und die
Steuerregisterteile 372 alle externe Signale auf Leitungen
305 beitragen, welche an den Abbildungs-PROM 304 in den
Fig. 7 und 9 abgegeben werden.
-
Der Modusdecodierteil 342 liefert MC/SA 0-4 und
MC/SA-Signale zu dem Abbildungs-PROM 304 zum Zwecke der
Identifizierung des einzelnen Moduscodes oder der Unteradresse, auf
die eingewirkt wird. Dies erlaubt diesem Abbildungs-PROM
304, jeden einzelnen Befehl richtig zu klassifizieren.
-
Das Steuerregister 372 liefert ein PROM SEL 1 Signal und
bin PROM SEL 2 Signal zum Abbildungs-PROM-Teil 304. Die
Funktion dieser Signale liegt darin, der Host-CPU zu
erlauben, den Abbildunas-PROM neu zu konfigurieren, um in
irgendeinem von vier verschiedenen Quadranten zu
funktionieren.
-
Der RT/M-Erkennungsteil 368 liefert ein RT/M-Signal an
einem Anschluß 81 des Gate-Arrays, der der Funktion zur
Identifizierung des Abbildungs-PROM 304 dient, ob der gerade
getätigte Befehl das Ergebnis einer
Fernterminaiadreßerkennung oder einer Monitoradreßerkennung war.
-
Sowohl der Modusdecodierer 342 als auch der DMA-Teil 338
sprechen auf ein DO RCV-Signal an, das am Anschluß 80 des
Gate-Arrays vom Abbildungs-PROM 304 in den Fig. und 9
empfangen wird. Wenn der Befehl angezeigt hat, daß DO R-CV
aktiv ist, wird die Schnittstelle den Befehl (und
gegebenenfalls Daten) in den RAM schreiben. Wenn DO RCV inaktiv
ist, wird die Schnittstelle die Nachricht nicht in den RAM
schreiben.
-
Das Gate-Array spricht auch am Anschluß 79 auf ein DO INT-
Signal an, welches innerhalb des Gate-Arrav zum LADE/STOP-
Teil 364 geliefert wird. DO INT erteilt dem Gate-Array die
Anweisung, die Host-CPU zu unterbrechen, wenn die Nachricht
verarbeitet und in das RAM geschrieben worden ist. Dies
gestattet eine sofortige Bedienung von Daten hoher Priorität.
-
Das Gate-Array spricht am Anschluß 78 auf ein DO T-T-Signal
an, das zum Steuerregisterteil 372 geliefert wird. Die
Funktion dieses Signales liegt darin, Nachrichten zu
identifizieren, die eine einzufügende Zeitmarke erfordern, wenn
sie in den RAM geschrieben werden.
-
Das Gate-Array 300 spricht auch am Anschluß 77 auf ein ILL
CMD-Signal aus dem Abbildungs-PROM an. Das ILL CMD-Signal
identifiziert Befehle, die im System als unzulässig
definiert worden sind. Die Schnittstelle wird durch Setzen des
geeigneten Fehlers in ihr Statuswort antworten. Das stellt
einen Busfehler dar.
-
Das Gate-Array 300 liefert am Anschluß 74 ein DMA
REQ-Signal aus dem DMA-Teil 338. Dieses Signal ist zur Verwendung
als Testsignal vorgesehen und hat im Betriebssystem keine
Funktion.
-
Ein ILL OUT-Signal ist am Anschluß 73 des Gate-Arrays als
ein Ausgangssignal vom Modusdecodierteil 342 vorgesehen.
Dieses Signal ist provisorisch und kann entweder dazu
verwendet werden, die Host-CPU zu kennzeichnen oder zu
unterbrechen, wenn die Host-CPU wissen muß, ob ein Busfehler
aufgetreten war.
-
Der CPU-Zugriffsteil 332 spricht an Gate-Array-Anschlüssen
55-58 auf vier Signale vom Adreßbus und letztlich von der
Host-CPU an. Ein PA 1- und ein PA 2-Signal werden an
Anschlüssen 55 und 56 geliefert. Diese stammen vom Host-CPU-
Adreßbus und erlauben der Host-CPU, auf die verschiedenen
Register innerhalb des Gate-Arrays zuzugreifen.
-
Die INT SEL 1- und INT SEL 2-Signale werden an Anschlüssen
57 und 58 geliefert.
-
Ein PARITÄTSTEST-Signal wird am Anschluß 54 aus dem
Steuerregister als ein Gate-Array-Ausgangssignal an den
Paritätsprüfungsteil 310 in den Fig. 7 und 9 abgegeben. Die
Host-CPU kann dieses Signal in dem Steuerregister setzen.
Die Host-CPU kann den gesamten RAM beschreiben und dann den
gesamten RAM lesen und überprüfen, daß keine Paritätsfehler
aufgetreten sind. Die Host-CPU kann dann das
Paritätstestbit ändern, das in die Parität-Erzeugungs/Überprüfungs-
Schaltung geht. Wenn die Host-CPU dann den RAM liest,
sollte sie feststellen, daß Parität bei jedem Wort fehlt.
Dieser Test würde normalerweise beim Einschalten des Stroms
durchgeführt werden.
-
Der CPU-Zugriffsteil 332 liefert drei Ausgangssignale an
Gate-Array-Anschlüssen 51-53. Diese enthalten ein
RWR-Signal, das sowohl zum Paritätsprüfungsteil 310 als auch zum
Daten-RAM-Teil 308 in den Fig. 7 und 9 geliefert wird. Dies
ist das Schreibsignal für den Daten-RAM 308.
-
Ein RRD-Signal wird am Anschluß 52 zum Paritätsprüfungsteil
310 als auch zum Daten-RAM-Teil 308 geliefert. Dies ist das
Lesesignal für den Daten-RAM.
-
Zusätzlich wird ein RCS-Signal am Anschluß 53 sowohl zum
Paritätsprüfungsteil 310 als auch zum Daten-RAM 308
geliefest. Dies ist das Chip-Auswahlsignal für den Daten-RAM.
-
Das Gate-Array 300 spricht am Anschluß 32 auf ein RESET-
Signal aus der Host-CPU an. Dieses Signal wird in vielen
verschiedenen Teilen überall im Gate-Array verwendet, um
die internen Gate-Array-Speicherelemente zu initialisieren.
RESET wird normalerweise beim Einschalten des Stroms
ausgegeben.
-
Wie aus Fig. 9 ersehen werden kann, wird das RESET-Signal
vom Schreib-Gate-Teil 316, vom Gate-Array 300 und vom
Paritätsprüfungsteil 310 verwendet. Der Schreib-Gate-Teil 316
verwendet den Reset zur Initialisierung beim Einschalten
des Stroms. Der Paritätsprüfungsteil 310 nutzt ebenfalls
das Reset-Signal zur Initialisierung beim Einschalten des
Stroms.
-
Ein W/R-Signal der Host-CPU ist am Anschluß 31 des
Gate-Arrays vorgesehen und wird im CPU-Zugriffsteil 332 dazu
benutzt, zu identifizieren, ob die CPU einen Lese- oder einen
Schreibzyklus durchführt.
-
Von der Host-CPU wird ein CS-Signal am Anschluß 30 des
Gate-Arrays geliefert und sowohl zum DMA-Teil 338 als auch
zum CPU-Zugriffsteil 332 geleitet. Das CS-Signal wird im
DMA-Teil 338 verwendet, um DMA-Zyklen mit den
Host-CPU-Zyklen zum Zwecke des Ausführens von für die CPU
transparenten DMA-Zyklen zu synchronisieren.
-
Das CS-Signal wird im CPU-Zugriffsteil 332 benutzt, um
anzuzeigen, daß die CPU gerade entweder auf das Gate-Array
oder auf den Daten-RAM zugreift.
-
Das Gate-Array liefert am Anschluß 29 ein MUX BUS
INT-Signal aus dem Lade/Stop-Teil 364. Dieses Signal unterbricht
die Host-CPU bei der Vollendung der
Nachrichtenverarbeitung, wenn die Nachricht als eine Nachricht hoher Priorität
durch den Abbildungs-PROM, wie durch das DO INT-Signal
angezeigt, abgebildet worden ist.
-
Ein negiertes 800-Mikrosekunden-Ausgangssignal wird am
Anschluß 28 aus dem 800-Mikrosekundenzeitgeber 302 von Fig. 7
bereitgestellt. Das negierte
800-Mikrosekunden-Ausgangssignal gelangt in das Gate-Array, wo es durch die Host-CPU
gelesen werden kann. Die Host-CPU kann den
800-Mikrosekundenzeitgeber 302 triggern und dann das negierte
800-Mikrosekunden-Ausgangssignal aufrufen, um zu überprüfen, ob der
Zeitgeber in Funktion ist. Dies wird normalerweise beim
Einschalten des Stroms getan.
-
Der 12 MHz-Takt liefert den Grundsynchrontakt für das Gate-
Array. Eine beste Ausführungsart der gattungsgemäßen
asynchronen Busfernterminalschnittstelle nach der vorliegenden
Erfindung ist in Verbindung mit den Fig. 7 bis 10
beschrieben worden, und zwar realisiert unter Verwendung eines
kombinierten RTI- und TC-Gate-Arrays, das mit einer Vielfalt
von externen Einrichtungen, die die Schnittstellenfunktion
unterstützen, gekoppelt ist. Die gattungsgemäße RTI sorgt
für eine garantierte Kohärenz von Nachrichten, die zwischen
einem asynchronen seriellen Datenbus und einer Host-CPU
übertragen werden. Es versteht sich, daß das RTI- und TC-
Gate-Array, wie in Fig. 1 gezeigt, mit separaten
Gate-Arrays realisiert werden könnte. Ihre Funktionen könnten auch
mit diskreten Bauelementen realisiert werden.
-
Obwohl die Erfindung im sehr speziellen Zusammenhang eines
MIL-STD-1553-Busses beschrieben worden ist, versteht es
sich, daß die Erfindung genausogut in irgendeinem
asynchronen Buszusammenhang in die Praxis umgesetzt werden kann.