DE3889962T2 - Vorrichtung und Verfahren zur Durchführung der Datenübertragung als Folge von Betriebszuständen in einem Kommunikationssystem. - Google Patents

Vorrichtung und Verfahren zur Durchführung der Datenübertragung als Folge von Betriebszuständen in einem Kommunikationssystem.

Info

Publication number
DE3889962T2
DE3889962T2 DE3889962T DE3889962T DE3889962T2 DE 3889962 T2 DE3889962 T2 DE 3889962T2 DE 3889962 T DE3889962 T DE 3889962T DE 3889962 T DE3889962 T DE 3889962T DE 3889962 T2 DE3889962 T2 DE 3889962T2
Authority
DE
Germany
Prior art keywords
data
state
memory
processor
instruction
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 - Fee Related
Application number
DE3889962T
Other languages
English (en)
Other versions
DE3889962D1 (de
Inventor
Thomas O Holtey
Thomas L Murray Jr
Wayne A Perzan
Scott W Smith
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 HN Information Systems Inc
Original Assignee
Bull HN Information Systems Inc
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 HN Information Systems Inc filed Critical Bull HN Information Systems Inc
Publication of DE3889962D1 publication Critical patent/DE3889962D1/de
Application granted granted Critical
Publication of DE3889962T2 publication Critical patent/DE3889962T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q3/00Selecting arrangements
    • H04Q3/42Circuit arrangements for indirect selecting controlled by common circuits, e.g. register controller, marker
    • H04Q3/54Circuit arrangements for indirect selecting controlled by common circuits, e.g. register controller, marker in which the logic circuitry controlling the exchange is centralised
    • H04Q3/545Circuit arrangements for indirect selecting controlled by common circuits, e.g. register controller, marker in which the logic circuitry controlling the exchange is centralised using a stored programme
    • H04Q3/54575Software application
    • H04Q3/54583Software development, e.g. procedural, object oriented, software generation, software testing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Computer And Data Communications (AREA)
  • Telephonic Communication Services (AREA)

Description

  • Die folgende US-Patentanmeldung, die am gleichen Datum mit der vorliegenden Anmeldung eingereicht worden ist und die dem gleichen Anmelder wie die vorliegende Anmeldung zugewiesen ist, ist mit der vorliegenden Anmeldung verwandt.
  • "Dual Microprocessor Control System" von Thomas Holtey, et al, US- Seriennr. 032,902, eingereicht am 31. März 1987. Dies entspricht der veröffentlichten EP-Anmeldung Nr. 289,771.
  • Die vorliegende Erfindung bezieht sich allgemein auf ein Datenkommunikationssystem und betrifft insbesondere ein Datenkommunikationssystem, das den Transfer von Dateninformation, Steuerinformation und Information zur Nachrichtenübermittlung zwischen einem Telefonsystem und einem Computersystem bereitstellt.
  • Bei einem elektronisch gesteuerten Telekommunikations-Schaltsystem ist eine verteilte verarbeitende Telex-Vermittlung in dem US-Patent 4,425,616 offenbart, wobei die Erfordernisse zur Systemverarbeitung auf verschiedene Niveaus der Prozessorsteuerung verteilt worden sind, und wobei jeder Prozessor auf jedem Steuerungsniveau einen redundanten parallelen Prozessor als eine Ersatzeinheit hat, um dadurch die Systemzuverlässigkeit zu erhöhen. Um ein Verarbeiten mit hoher Geschwindigkeit zu erlauben während ein Software-Overhead verringert wird, werden zwei Cache- Speicher für Daten von zwei unterschiedlichen Dateien verwendet. Daten für den nächsten Abbruch, der im Teilnehmerbetrieb verarbeitet werden soll, werden in die Cache-Speicher ein Time-Share-Intervall bevor er benutzt wird, geladen, so daß die Programmausführung ununterbrochen am Ende jedes Time-Sharing-Intervalles fortgesetzt werden kann.
  • Bei Datenkommunikationssystemen ist die Abwicklung von Unterbrechungen unvermeidbar. Jedesmal, wenn ein Ereignis auftritt, das die Aufmerksamkeit der Firmware oder der Software erfordert, wird eine Unterbrechung erzeugt, um so die Aufmerksamkeit des Mikroprozessors auf das bestimmte Bedürfnis für diese Leitung zu richten. Ein Problem bei solch einem unterbrechungsbetriebenen System ist, daß wenn Unterbrechungen auftreten, sie typischerweise zu willkürlichen Zeiten auftreten. Es gibt auch sehr viel Kontext innerhalb des Mikroprozessors, der "gerettet" werden muß. Das heißt, wenn eine Unterbrechung auftritt, müssen alle diese Register in dem Speicher abgespeichert werden und dann wiedergeholt werden, da es keine frühere Kenntnis darüber gibt, ob es signifikante Daten gibt oder nicht, die zurückgehalten und zurück in die Register plaziert werden müssen, wenn die unterbrochene Aufgabe wieder aufgenommen wird. Dieses Kontext-Swapping verbraucht sehr viel Zeit und kann viele Maschinenzyklen benötigen, um den Kontext abzuspeichern. Typischerweise kann es beispielsweise 20 bis 30 Mikrosekunden benötigen, um eine Unterbrechung vorzunehmen und zurückzukehren.
  • In der Umgebung der vorliegenden Erfindung ist es erwünscht, das Verarbeiten von jedem Zeichen innerhalb eines Maximums von 60 Mikrosekunden zu beenden. Dies ist die Zeit, die pro Zeichen zugeteilt wird, wenn jemand 16 Zeilen, die eine Rate von jeweils 960 Zeichen pro Sekunde haben, ausführt. Das unterbrechungsbetriebene Schema mit Kontext-Swapping erfordert typischerweise einen sehr großen Verarbeitungs-Overhead.
  • Ein Betriebssystem in einem Computer dient typischerweise dazu, die Aufmerksamkeit des Prozessors unter einer Vielzahl von Aufgaben zu organisieren und zuzuweisen, und ist typischerweise ein Multi-Tasking- System, das in der Lage ist, eine Anzahl von Aufgaben gleichzeitig zu steuern. Bei einem normalen Betriebssystem sind viele dieser Aufgaben Dinge, die nicht per se Realzeitanforderungen haben. Zeitzuweisung kann notwendig sein, um ein ordentliches Zugreifen auf alle Leitungen zu gewährleisten. Es ist typisch für das Betriebssystem, daß es so strukturiert ist, daß es für eine Zeitperiode Aufgaben mit hoher Priorität bearbeitet und dann zu einer Aufgabe mit niedrigerer Priorität zurückkehrt. Jetzt ist einer der ernsthaften Nachteile, die mit einer Steuerung vom Typ eines unterbrechungsbetriebenen Betriebssystemes verbunden ist, die Betriebseffizienz. Es ist nicht untypisch, 10 bis 40% der Prozessorleistung dazu zu benutzen, um das Betriebssystem zu speisen, so daß es Entscheidungen treffen kann, wie die Arbeit zuzuweisen ist. Dies erzeugt demgemäß Probleme, insbesondere in einer Umgebung, wo es nicht genügend Zeit gibt, die für beide zugewiesen ist, um die Arbeit auszuführen und Entscheidungen bezüglich der Arbeit zu treffen.
  • Eine andere Technik des Standes der Technik ist es, eine zyklisch abfragende Schleife anzuwenden, in der die Firmware von Leitung zu Leitung sequentiell ordnet und nach besonderen Aktivitäten ausschaut und dann der Leitung Aufmerksamkeit schenkt, die eine Aktivität fordert. Dieses Schema ist sehr ineffizient beim Betrieb, da sehr viel Zeit dem Suchen durch die Schleifen gewidmet wird und diese von der Zeit zum Ausführen der notwendigen Arbeitsaufgaben weggenommen wird.
  • Demgemäß ist es ein Ziel der vorliegenden Erfindung, ein verbessertes Datenkommunikationssystem bereitzustellen, das eine Firmware-Zustandsvorrichtung anwendet.
  • Ein anderes Ziel der vorliegenden Erfindung ist es, eine Firmware-Zustandsvorrichtung in Übereinstimmung mit dem vorhergehenden Ziel bereitzustellen, die durch einen reduzierten Prozessor-Overhead gekennzeichnet ist.
  • Noch ein anderes Ziel der vorliegenden Erfindung ist es, eine Firmware- Zustandsvorrichtung zur Verwendung zum Steuern von Datentransfers zwischen einem Telefonkommunkationssystem und einem Computersystem bereitzustellen und bei dem die Maschine nicht notwendigerweise die Verwendung eines Betriebssystemes erfordert, wodurch demgemäß wesentlich die Möglichkeiten zur Abwicklung von Aufgaben vereinfacht werden.
  • Ein weiteres Ziel der vorliegenden Erfindung ist es, eine Firmware- Zustandsvorrichtung in Übereinstimmung mit den vorhergehenden Zielen bereitzustellen, die die Probleme eliminiert, die mit unterbrechungsbetriebenen und Anfrageschema-Systemen verbunden sind.
  • Die vorhergehenden und andere Ziele, Merkmale und Vorteile der Erfindung werden durch eine Vorrichtung und ein Verfahren, wie es in den Ansprüchen 1 und 6 jeweils gekennzeichnet ist, ausgeführt. Es ist eine Firmware-Zustandsvorrichtung zum Steuern von Datentransfer auf vielfachen, unabhängigen Datenleitungen zwischen einem Telefonkommunikationssystem und einem Computersystem bereitgestellt. Die Vorrichtung der Erfindung weist zumindest einen einem Prozessor zugeordneten Prozessorspeicher auf. Der Prozessorspeicher hat eine Vielzahl von Firmware-Anweisungen, die in ihm gespeichert sind, wobei diese Anweisungen in Gruppen unterteilt sind basierend auf der Anzahl von vordefinierten Zuständen, die zum Bereitstellen von Datentransfer zwischen dem Telefonkommunkationssystem und dem Computersystem erforderlich sind. Die Programmanweisungen, die in dem Prozessorspeicher gespeichert sind, werden hierin mit "Firmware" bezeichnet. Bestimmte Gruppen von Anweisungen umfassen eine Anweisung, die eine Testoperation zum Auswerten von Bedingungen definiert, die sich auf die Leitung beziehen, um das Sequenzieren zu einem nächsten von vordefinierten Zuständen zu steuern. Ein gemeinsam benutzter Speicher ist bereitgestellt, der eine Vielzahl von Stellen für Leitungs-Tabelleninformation für zumindest eine Leitung hat. Zumindest eine Stelle davon enthält eine Adresse, vorzugsweise eine Programmzähleradresse, die eine Startanweisung einer entsprechenden der Gruppe von Anweisungen spezifiziert, die durch den Prozessor für diese Leitung ausgeführt werden soll. Der Prozessor führt in Antwort auf die Gruppe von Anweisungen eine bestimmte Operation für diese Leitung durch und in Antwort auf die Testanweisung als eine Funktion der Bedingung lädt er einen neuen Wert entsprechend der Startanweisung der Gruppe von Anweisungen des nächsten der Zustände. Der Prozessor weist vorzugsweise einen Programmzähler auf und die Stelle des gemeinsam benutzten Speichers enthält eine entsprechende Programmzähleradresse. Der Prozessor in dem offenbarten Ausführungsbeispiel weist erste und zweite Mikroprozessoren auf, die einen Übertragungs-Mikroprozessor und einen Empfangs- Mikroprozessor umfassen. Die Gruppe von Anweisungen weist weiter zumindest eine Anweisung auf, die eine Anhalte-Operation definiert. Dies steuert das Anhalten der Operation auf einer Leitung, um dem Prozessor zu ermöglichen, eine andere Leitung zu bedienen, oder alternativ zu der gleichen Leitung zu einem späteren Zeitpunkt zurückzukehren. Die Anhalte-Operation kann durch mehrere Anweisungen definiert sein. Zusätzliche Anweisungen in bestimmten Gruppen sind auch bereitgestellt, um Arbeitsaufgaben auszuführen, um eine Datenübertragung zwischen Telefonkommunkations- und Computersystemen zu ermöglichen. In dem bevorzugten Ausführungsbeispiel hat der gemeinsam benutzte Speicher eine Leitungstabelleninformation für alle Datenleitungen getrennt auf einer Leitung-für-Leitung-Basis gespeichert. Einrichtungen sind bereitgestellt, um den Prozessor so zu steuern, daß er nur auf eine Leitungstabelle zu einem Zeitpunkt in einer vorbestimmten Sequenz zugreift, in der alle Leitungstabellen Zugriff erhalten. Jede Leitungstabelle enthält eine Adresse, die als eine Anhalte-Adresse identifiziert ist, die repräsentativ für den vordefinierten Zustand ist, zu dem nach erhaltenem Zugriff zu dieser Datenleitung wieder zurückgekehrt werden soll. Bestimmte Gruppen von Anweisungen umfassen auch zumindest eine Anweisung zum Festlegen einer Anhalte-Adresse, um so einen neuen Wert in den Programmzähler entsprechend der Start-Anweisung der Gruppe von Anweisungen des nächsten der Zustände zu laden. Zusätzlich zu dem Festlegen einer Anhalte-Adresse gibt es auch die zuvor genannte Anweisung, die eine Anhalte-Operation definiert, um so das Anhalten der Operation auf einer Leitung auszuführen, um dem Prozessor zu ermöglichen, entweder zu der gleichen Leitung zu einem späteren Zeitpunkt zurückzukehren oder eine andere Leitung zu einem späteren Zeitpunkt zu bedienen.
  • Wie zuvor angezeigt, betrifft einer der Gesichtspunkte der Firmware- Zustandsvorrichtung der vorliegenden Erfindung die Verwendung des Anhalte-Merkmales, das eine Einrichtung ist, durch die die Steuerung sich von Leitung zu Leitung beim Steuern von Datenübertragungen bewegen kann. Ein wichtiger Gesichtspunkt der Anhalte-Operation ist der, daß es keinen Register-Kontext gibt, der gesichert werden muß, wenn von einer Aufgabe zu einer anderen gewechselt wird. Der gesamte Kontext ist in dem Leitungstabellenspeicher selbst gespeichert. Es gibt eine Leitungstabelle, die jeder Leitung zugeordnet ist. Es gibt nichts abzuspeichern, außer möglicherweise die Programmzählerposition selbst, so daß das System weiß, wo es das Verarbeiten auf der Leitung aufgreifen und wieder aufnehmen soll, wenn es günstig ist, dies zu einem späteren Zeitpunkt zu tun.
  • Ein anderer Gesichtspunkt der Firmware-Zustandsvorrichtung der vorliegenden Erfindung ist der, daß der Firmware-Code so entworfen ist, daß ein minimaler Zeitbetrag in einem bestimmten Zustand verbraucht wird, insbesondere wenn sie in einem "Warte"-Zustand ist. In solch seinem Zustand wird ein Test durchgeführt, um zu bestimmen, ob eine Aufgabe ausgeführt werden soll, und, wenn nicht, schreitet das System zu dem nächsten Zustand fort. Wenn der Test anzeigt, daß ein Anhalten durchgeführt werden soll, dann schaltet das System die Steuerung zu der nächsten Leitung, um weiteres Arbeiten und Tests auszuführen. Daher wird minimale Zeit zum Testen von Nichtarbeit-, Warte-Bedingungen verbraucht.
  • Noch ein anderer Gesichtspunkt der vorliegenden Firmware-Zustandsvorrichtung ist die Tatsache, daß, wenn die Arbeitsbelastung anwächst, ein größerer Prozentteil des Maschinenzyklus für nützliche Arbeit ausgedehnt wird, da die Tests weniger häufig werden. Daher wird, wenn die Maschine beschäftigter wird, die Overhead-Menge (der Overhead ist die Zeit, die es benötigt, um tatsächlich das Anhalten bei jedem Zustand zu verarbeiten) ein kleinerer Prozentteil der gesamten Maschinenverarbeitungszeit. Daher ist in Übereinstimmung mit den Konzepten der Erfindung eine Vorrichtung bereitgestellt, die, wenn sie beschäftigter wird, Overhead eher wegfallen läßt als in einem unterbrechungsbetriebenen System, das, wenn es beschäftigter wird, zusätzlichen Overhead aufnimmt.
  • Zahlreiche andere Ziele, Merkmale und Vorteile der Erfindung werden jetzt nach dem Lesen der folgenden detaillierten Beschreibung offensichtlich werden, die in Verbindung mit den begleitenden Zeichnungen genommen wird, in denen:
  • Fig. 1 ein Blockdiagramm eines Datenkommunikationssystemes ist, das die Hardware zeigt, die in Verbindung mit den Firmware-Konzepten der Erfindung angewandt wird;
  • Fig. 2 ein Hauptblockdiagramm der Firmware-Zustände ist;
  • Fig. 3A bis 3H weitere detailliertere Blockdiagramme der Zustände sind, die in Fig. 2 veranschaulicht sind;
  • Fig. 4 ein Leitungstabellendiagramm für eine der 16 gespeicherten Leitungstabellen ist;
  • Fig. 5A und 5B zwei unterschiedliche repräsentative Firmware-Listings bereitstellen;
  • Fig. 6 ein weiteres Firmware-Zustandsdiagramm ist, das das Anhalten der Funktion veranschaulicht, wie es sich auf eine fortgesetzte Arbeit auf einer bestimmten Leitung bezieht;
  • Fig. 7 die Sequenz von sowohl Übertragungs- als auch Empfangs-Mikroprozessoren veranschaulicht, die das Sequenzieren von Kanalnummern veranschaulicht;
  • Fig. 8 ein Zeitdiagramm ist, das Verschachteln von Zyklen für die Übertragungs- und Empfangs-Mikroprozessoren veranschaulicht;
  • Fig. 9 ebenfalls ein Zeitdiagramm ist, das die Anhalte-Funktion in einer Kanalnummer-Konfliktsituation veranschaulicht;
  • Fig. 10 ein schematisches Blockdiagramm ist, das den Anweisungsfluß in Verbindung mit einem bestimmten Firmware-Zustand veranschaulicht;
  • Fig. 11 ein sehr allgemeines Blockdiagramm ist, das das Datenkommumkationssystem veranschaulicht, wie es mit dem Telefonkommumkationssystem und dem Computersystem in Beziehung steht; und
  • Fig. 12 ein weiteres schematisches Block- und Flußdiagramm ist, das eine Sequenz von Übergängen von Zustand zu Zustand veranschaulicht, ohne die Verwendung eines Anhaltens zwischen ihnen.
  • Es wird nun Bezug genommen auf Fig. 1, die ein Blockdiagramm eines Ausführungsbeispieles der Hardware ist, das in Übereinstimmung mit den Konzepten der Firmware-Zustandsmaschine der vorliegenden Erfindung angewandt werden kann. Es wird nun auch auf Fig. 2 Bezug genommen, die ein sehr allgemeines Blockdiagramm von weitdefinierten Firmware-Zuständen für sowohl Übertragungs- als auch Empfangs-Betriebszeiten ist. Es wird auch Bezug auf das Blockdiagramm von Fig. 11 für einen sehr allgemeinen Überblick des Systems zum Steuern einer Datenübertragung zwischen einem Telefonsystem 3 und einem Computersystem 4 genommen. Zwischen ihnen ist ein Datenkommunikationssystem 5 und eine Vielleitungs-Steuereinrichtung 6 verbunden. Die Details der Vielleitungs-Steuereinrichtung 6 werden hier nicht beschrieben werden. Die Konzepte der vorliegenden Erfindung beziehen sich primär auf das Datenkommunikationssystem 5 zum Steuern der Datenübertragung zwischen dem Telefonkommunikationssystem 3 und dem Computersystem 4. Das Telefonsystem 3 kann eine Anzahl von Endstellenvorrichtungen aufweisen, die über Telefonleitungen, wie z. B. PBX-Leitungen, gekoppelt sind. Das Computersystem 4 kann vom Typ des Honeywell DPS-6 sein.
  • Vor dem Eingehen auf die Konzepte der Firmware-Zustandsvorrichtung wird sich auf das Hardware-Blockdiagramm von Fig. 1 bezogen. Fig. 1 veranschaulicht ein digitales asynchrones Multiplex-Adaptersystem, das für die Übertragung von Daten-, Steuerinformation und Information zur Nachrichtenübermittlung bereitgestellt ist, wie erforderlich, um Operationen zwischen einer Anzahl von Endstellenvorrichtungen zu unterstützen, die über eine Telefonleitung auf der linken Seite in dem Diagramm gekoppelt sind, und ein Computersystem und eine zugeordnete Steuereinrichtung, die von der rechten Seite des Diagramms von Fig. 1 gekoppelt werden. Insbesondere können die Endstellenvorrichtungen über AT≥-Endstellenadapter; ein AT≥-System 85 PBX und die PBX-Digital-Multiplex-Interface-Leitung und Anwendungen verbunden sein, die auf einem Computersystem, wie z. B. einem Honeywell DPS-6 laufen, das über das asynchrone Multiplex-Adaptersystem und eine Vielleitungs-Kommunikationssteuereinrichtung unterstützt ist. Der Einfachheit halber werden die Endstellenvorrichtungen und die Vielleitungs-Kommunikationssteuereinrichtungen hier nicht im Detail beschrieben.
  • Die Mikroprozessoren sind in Fig. 1 als ein Empfangs-Mikroprozessor 10 und ein Übertragungs-Mikroprozessor 12 veranschaulicht. Beide Mikroprozessoren können vom konventionellen Typ 68008 sein. Dem Empfangs-Mikroprozessor 10 ist der Empfangs-Datenbus 14 und auch der Empfangs-Adreßbus 16 zugeordnet. Dem Übertragungs-Mikroprozessor 12 ist der Übertragungs-Datenbus 18 und der Übertragungs-Adreßbus 20 zugeordnet.
  • Fig. 1 veranschaulicht auch den XRAM 22, dem ein Datenbus 24 und ein Adreßbus 26 zugeordnet sind. In dem Blockdiagramm von Fig. 1 ist der IRAM benachbart zu dem XRAM 22 angeordnet. Dem IRAM 28 ist ähnlich ein Datenbus 30 und ein Adreßbus 32 zugeordnet. Der Datenbus 30 ist über einen Transceiver 31 mit dem Ausgabe-Datenbus 33 gekoppelt, der angepaßt ist, mit einer Vielleitungs-Kommunikationssteuereinrichtung zu koppeln, die hier nicht veranschaulicht ist. Ähnlich ist der Adreßbus 32 angepaßt, über einen Transceiver 35 mit dem Adreßbus 36 zu koppeln. Der Adreßbus 36 ist angepaßt, um ähnlich mit einer Vielleitungs-Kommunikationssteuereinrichtung zu koppeln, was hier nicht veranschaulicht ist.
  • Es wird sich hier auf die Verwendung von Transceivern bezogen, die in Zusammenhang mit Adreß- und Datenbussen verwendet werden, wie z. B. der zuvor genannte Transceiver 35. In einigen Beispiel könnten diese Vorrichtungen jedoch durch 3-Zustands-Puffer ersetzt werden.
  • Wie zuvor angegeben, ist das in dem Blockdiagramm von Fig. 1 veranschaulichte System angepaßt, mit bis zu 16 Endstellenvorrichtungen jederzeit über eine digitale Multiplex-Schnittstellenleitung verbunden zu werden. In diesem Zusammenhang auf der linken Seite in dem Blockdiagramm von Fig. 1 sei der Kopplungsumwandler X1 für die Übertragung von Signalen von dem Übertrager 40 bemerkt. Auch sei der Kopplungsumwandler X2 für den Empfang von Signalen durch den Empfänger 42 bemerkt. Zwischen dem Übertrager und dem Empfänger ist ein Rahmenbilder 41. Der Übertrager 40, der Empfänger 42 und der Rahmenbilder 41 sind Standardschaltungen von AT≥. Der Übertrager ist vom Typ 606 HM. Die Rahmenbilder-Schaltung ist vom Typ 229GB. Der Empfänger ist vom Typ 630AG.
  • Das Blockdiagramm von Fig. 1 zeigt auch die Kommunikation zwischen sowohl dem Übertrager 40 und dem Empfänger 42 zu den Datenschaltungen 44. Die Schaltungen 44 werden gemeinhin als DUSCC-Chips bezeichnet. Jeder von ihnen ist ein Dual Universal Serial Communication Controller (DUSCC). Diese Schaltungschips sind herkömmliche und durch eine Signetics-Teile-Nr. 68562 identifiziert. Wie in Fig. 1 veranschaulicht gibt es acht von diesen Datenschaltungen 44. Jede Schaltung 44 weist zwei Kommunikations-Kanalprozessoren auf. In Fig. 1 sei auch der Adreßbus 46 bemerkt. Da jede der Datenschaltungen 44 zwei Kommunikationskanäle aufweist, gibt es insgesamt 16 Leitungen, die mit dem DUSCC-Datenbus 48 gekoppelt sind. Was die Kommunikation an den Datenschaltungen 44 betrifft, ist in Fig. 1 auch bemerkt, daß ein Multiplexer 50 bereitgestellt ist, der Kommunikation zwischen den Datenschaltungen 44 und dem Übertrager 40 bereitstellt, wie es in größerem Detail hiernach beschrieben werden soll. In dem Blockdiagramm von Fig. 1 ist auch ein Empfänger-Taktumschalter 52 veranschaulicht, der die Übertragung von Daten von den Datenschaltungen 44 zu dem Empfänger 42 steuert. Diese Operation wird auch in größerem Detail hiernach beschrieben werden.
  • Grundsätzlich werden die Ausgaben von den Datenschaltungen 44 durch den Multiplexer 50 gemultiplext und zu dem Übertrager 40 auf eine Zeitteilungs-gemultiplexte Weise gekoppelt. Die Empfängereingaben von jeder der Datenschaltungen 44 sind gemeinsam verbunden, wie in dem Diagramm veranschaulicht und es ist ein Taktschema bereitgestellt (siehe Umschalter 52), das acht Taktimpulse zu jeder der Datenschaltungen 44 in Folge liefert. Die Taktsignale von dem Empfänger 42 werden demultiplext und decodiert und zu jedem der 16 Kanäle der Datenschaltungen 44 auf einer Zeitteilungs-Multiplexbasis geliefert.
  • Wie zuvor angezeigt, haben die Datenschaltungen 44 einen gemeinsamen Adreßbus 46. Dieser Adreßbus weist sechs Adreßleitungen auf, die semidirekt von dem Übertragungs-Mikroprozessor 12 getrieben werden können. In Fig. 1 sei bemerkt, daß der Übertragungs-Adreßbus 20 über den Puffer 47 mit dem Adreßbus 46 der Datenschaltungen gekoppelt ist.
  • Wie zuvor angegeben, ist der Übertragungs-Mikroprozessor 12 vom Typ 68008. Der Übertragungs-Mikroprozessor 12 stellt an seinem Adreßbus im wesentlichen direktes Adressieren der Datenschaltungen 44 bereit. Es sei auch bemerkt, daß der Adreßbus 46 für die Datenschaltungen 44 von der Steuerlogik eines Direktspeicherzugriffs (DMA) gesteuert werden kann. In dieser Hinsicht sei die Kopplung an dem Puffer 45 in Fig. 1 bemerkt. Diese besondere DMA-Adreßsteuerung wird verwendet, um auf die Datenschaltungen 44 zum Empfangen von Daten zuzugreifen. Der Übertragungs-Mikroprozessor 12 auf der anderen Seite greift direkt auf den gleichen Bus 46 zum Übertragen von Daten und auch zum Aufbau zu.
  • Die Datenschaltungen 44 haben alle einen gemeinsamen Datenbus 48, der als der DUSCC-Datenbus bezeichnet wird. Es sei bemerkt, daß dieser Datenbus 48 von dem Empfangs-FIFO-Datenbus 54 durch einen Transceiver 55 getrennt ist. Ahnlich ist der Datenbus 48 der Datenschaltungen 44 von dem Übertragungs-Datenbus 18 durch einen weiteren Transceiver 56 getrennt. Bezüglich dem Zugriff auf den Adreßbus 46 ist eine konventionelle Steuerlogik bereitgestellt, um zu gewahrleisten, daß der Übertragungs-Mikroprozessor 12 nicht gleichzeitig mit der DMA- Steuereinrichtung auf dem Bus 46 ist.
  • Wie zuvor angegeben koppelt der DUSCC-Datenbus 48 über einen Transceiver 55 mit dem Empfangs-FIFO-Datenbus 54. An den Bus 54 ist ein FIFO mit großer Kapazität gekoppelt, das in dem Blockdiagramm von Fig. 1 in zwei Teilen veranschaulicht ist, die einen Empfangs-Daten- FIFO 60A und ein Empfangs-Zustands-FIFO 60B umfassen. Dies wird hiernach zeitweise als FIFO 60 bezeichnet werden. Das Empfangs- Daten-FIFO 60A ist mit dem FIFO-Datenbus 54 über den Transceiver 62 gekoppelt. Ahnlich ist das Empfangs-Zustands-FIFO 60B mit dem FIFO-Datenbus 54 über den Transceiver 63 gekoppelt. In Fig. 1 ist auch die Empfangs-Daten-DMA-Steuereinrichtung 64 veranschaulicht, die eine Steuerung für das FIFO 60 bereitstellt. In Fig. 1 sei auch die Leitung 65 bemerkt, die den DUSCC-Datenbus 48 mit der Steuereinrichtung 64 koppelt.
  • In zwei Buszyklen werden Daten aus den Datenschaltungen 44 über die Transceiver 55, 62 und 63 ausgelesen, einschließlich sowohl Zustand als auch Daten, wobei diese Information in dem FIFO unter der Steuerung der Empfangs-Daten-DMA-Steuereinrichtung 64 gespeichert wird. Diese Daten- und Zustandsinformation wird in dem FIFO 60 gespeichert und auf sie wird durch den Empfangs-Mikroprozessor 10 zugegriffen. In dieser Hinsicht sei bemerkt, daß der Datenbus 14, der dem Empfangs- Mikroprozessor 10 zugeordnet ist, mit dem FIFO-Datenbus 54 über den Transceiver 66 gekoppelt ist. Der Empfangs-Mikroprozessor 10 greift auf den FIFO 60 zu, wann immer er eine Möglichkeit hat und tut dies mittels eines Abrufschemas. Insbesondere fragt der Empfangs-Mikroprozessor 10 den FIFO 60 ab und prüft die Zustandsanzeige darin, um herauszufinden, ob irgendetwas in dem Datenabschnitt des FIFO 60 gespeichert ist. Wenn dies der Fall ist, liest er die Zustands- und Dateninformation in den XRAM 22 ein wo sie gespeichert wird. Tatsächlich speichert er die Daten in dem XRAM 22, kontrolliert den Zustand und nimmt eine geeignete Handlung vor, wenn notwendig. In diesem Zusammenhang sei bemerkt, daß die Kommunikation von dem Empfangs-Mikroprozessor 10 mit Hilfe des Empfangs-Datenbusses 14 und dem Transceiver 68 zu dem X-Datenbus 24 geschieht. Es gibt auch einen weiteren Transceiver 69, der zwischen dem X-Datenbus 24 und dem I-Datenbus 30 koppelt. An den Empfangs-Datenbus 14 ist zusätzlich zu dem Empfangs-Mikroprozessor 10 der Firmware-PROM gekoppelt. Dieser PROM 70 ist vorzugsweise ein 16 K · 8 Bit PROM oder EPROM.
  • Wie zuvor angegeben ist der X-Datenbus 24 mit dem R-Datenbus 14 über den Transceiver 68 gekoppelt. Ahnlich gibt es auch einen Transceiver 71, der den X-Datenbus 24 mit dem Übertragungs-Datenbus 18 koppelt. Eine Steuerlogik-Schaltung gewährleistet, daß der Empfangs- Mikroprozessor 10 und der Übertragungs-Mikroprozessor 12 niemals beide gleichzeitig auf den X-Datenbus 24 gekoppelt sind.
  • Wie zuvor angegeben, ist der X-Datenbus 24 mit dem I-Datenbus über den Transceiver 69 gekoppelt. Der I-Datenbus 30 wiederum ist mit dem Ausgabebus 33 der Steuereinrichtung über den Transceiver 31 gekoppelt. Ähnlich ist der I-Adreßbus 32 zwischen dem X-Adreßbus 26 und dem Adreßbus 36 der Steuereinrichtung gekoppelt. Das Koppeln wird mit Hilfe der Transceiver 29 und 35 bereitgestellt. Der Mikroprozessor, der den X-Bus in diesem Zeitpunkt steuert, ist der einzige, der auf den I- Bus zugreifen kann. In dieser Hinsicht wird eine X-Bus-Konkurrenzlogik zum Steuern des Zugriffs auf den X-Bus verwendet. Die X-Bus-Konkurrenzlogik ist in Fig. 1 bei 73 veranschaulicht. Es sei außerdem bemerkt daß entweder der Empfangs-Mikroprozessor 10 oder der Übertragungs-Mikroprozessor 12 auf den X-Datenbus 24 zugreifen kann.
  • Zusätzlich zu dem Empfangs-Datenbus 14, der dem Empfangs-Mikroprozessor 10 zugeordnet ist, gibt es auch einen Empfangs-Adreßbus 16, der dem Empfangs-Mikroprozessor 10 zugeordnet ist. Der Empfangs- Adreßbus 16 koppelt auch mit dem Firmware-PROM 70. Ein Decodieren des Adreßbusses 16 tritt auch auf und in dieser Hinsicht sei in Fig. 1 auf den Empfangs-Adreßdecoder 76 verwiesen. Der Decoder 46 decodiert Bits höherer Ordnung des Adreßbusses 16.
  • An dem Ausgang des Decoders 76 sind drei getrennte Leitungen veranschaulicht, die Decodierungen zur Kommunikation mit unterschiedlichen Systemkomponenten anzeigen. Zum Beispiel zeigt eine Decodierung an der Ausgabeleitung 77 einen Datenzugriff auf den PROM 70 des Empfangs-Mikroprozessors an. Eine andere Decodierung bei Leitung 78 zeigt einen Datenzugriff auf den XRAM 22 an. Noch eine weitere Decodierung bei Leitung 79 zeigt eine Datenübertragung von dem FIFO 60 an.
  • In dem Blockdiagramm von Fig. 1 ist auch auf den Übertragungs-Adreßbus 20 verwiesen. Es sei bemerkt, daß es auch einen Übertragungs- Adreßdecoder 80 gibt, der an diesen Adreßbus gekoppelt ist. An diesen Decoder 80 sind auch drei Ausgabeleitungen gekoppelt. Eine erste Decodierung bei Leitung 81 zeigt eine Datenübertragung von dem PROM 84 des Übertragungs-Mikroprozessors an. In dieser Hinsicht sei bemerkt, daß der Firmware-PROM 84 ein 16 K · 8 Bit-PROM ist, der sowohl mit dem Übertragungs-Datenbus 18 als auch dem Übertragungs- Adreßbus 20 gekoppelt ist. Der Adreßdecoder 80 hat einen zweiten Decodierungsausgang bei Leitung 82, der einen Zugriff zu dem XRAM 22 decodiert. Es gibt auch eine dritte Decodierung bei Leitung 83 von dem Übertragungs-Adreßdecoder 80, die eine Datenübertragung zu dem DUSCC-Bus 48 anzeigt.
  • Da der Übertragungs-Mikroprozessor 12 nicht hardwaremäßig auf den FIFO 60 zugreifen kann, wird der gleiche Adreßraum für die Datenschaltung 44 auf dem Übertragungs-Mikroprozessor verwendet. Ähnlich kann der Empfangs-Mikroprozessor 10 nicht physikalisch die Datenschaltung 44 adressieren, da weder der Adreß- noch der Datenbus direkt damit gekoppelt sind. Daher wird dieser Adreßraum für den Empfangs- Daten-FIFO 60 verwendet.
  • Jeder der Mikroprozessoren 10 oder 12 kann auf einen Adreßraum zugreifen, der auf den IRAM 28 zeigt. In dem offenbarten Ausführungsbeispiel ist dies eine Adressenbasis zwischen hexadezimal 16,000 und hexadezimal 18,000. Ein Zugriff auf den IRAM 28 geschieht über den X-Bus (Datenbus 24 und Adreßbus 26).
  • In Fig. 1 ist auch die X-Bus-Konkurrenzlogik 73 veranschaulicht, auf die sich schon bezogen worden ist. Die Eingaben dazu sind zwei getrennte Signale, die anzeigen, daß der Empfangs-Mikroprozessor zu dem XRAM 22 gehen will oder daß der Übertragungs-Mikroprozessor zu dem XRAM 22 gehen will. Diese Signale sind auf den Leitungen 85 und 86 mit der Logik 73 gekoppelt. Ähnlich gibt es Ausgaben auf Leitung 87 und 88, die in Fig. 1 als jeweilige Signale R2XBUS und T2XBUS identifiziert sind. Die Bus-Konkurrenzlogik 73 erlaubt grundsätzlich einem, aber nicht beiden Prozessoren auf den XRAM zuzugreifen. Wieder sind die jeweiligen Signale die Signale R2XBUS bei Leitung 87 und T2XBUS bei Leitung 88. Es sei bemerkt, daß diese Signale jeweils mit den Adreßmultiplexern 90 und 92 gekoppelt sind, um Eingaben dazu zu ermöglichen. Die XBUS-Konkurrenzlogik 73 wird als wohlbekannter konventioneller Entwurf betrachtet.
  • Es wird auch Bezug auf weitere Schaltungsdetails von Abschnitten des Blockdiagramms der Fig. 1, wie in der oben angegebenen ebenfalls anhängigen Anmeldung ausgeführt, genommen.
  • Angenommen, daß einer der Mikroprozessoren 10 und 12 tatsächlich den X-Bus angefordert und ihn empfangen hat, werden die Adressen von dem Mikroprozessor entweder über den Empfangs-Adreßbus 16 oder den Übertragungs-Adreßbus 20 mit den jeweiligen Multiplexern 90 und 92 gekoppelt, die in Fig. 1 veranschaulicht sind. Der Multiplexer 90 empfängt die Empfangs-Mikroprozessor-Adressen und der Multiplexer 92 empfängt die Übertragungs-Mikroprozessor-Adressen. Diese Adressen sind über die Multiplexer abhängig davon gekoppelt, welcher durch die Signale freigegeben worden ist, die an ihre Freigabeeingänge gekoppelt sind. Diese sind die jeweiligen Signale R2XBUS und T2XBUS. Die Ausgabe des Multiplexers wird gemeinsam an den X-Adreßbus 26 gekoppelt.
  • Weiter sich auf Fig. 1 beziehend wird bemerkt, daß weiteres Decodieren weg von dem X-Adreßbus 26 auftritt. In diesem Zusammenhang sei das Koppeln der Adreßleitung 96 mit dem Adreßdecoder 97 des X-Adreßbus bemerkt. Eine weitere Leitung 98 ist zusammen mit einer Leitung 99 von dem Decoder 97 mit einem weiteren Decoder 100 gekoppelt. Die Adressen, die an die Decoder 97 und 100 gekoppelt sind, sind Bits höherer Ordnung des Adreßbusses 26. Diese werden bei Anwesenheit eines X-Bus-Zyklus (XB5CYC) decodiert, um zu bestimmen, ob Signale zu den XRAM, IRAM, SRAM oder Hardware-Hinweissignalen gekoppelt sind. In Fig. 1 sind diese unterschiedlichen Signale an der Ausgabe des Adreßdecoders 27 des X-Busses angezeigt. Fig. 1 veranschaulicht auch rechts von diesen Signalen die bestimmten betroffenen Adressen. Die Hardware-Hinweissignale sind bei einer Adresse von hexadezimal 12XXX, der XRAM-Zugriff wird bei einer Adresse von hexadezimal 10XXX decodiert, der S-Bus-Zugriff ist bei der Adresse hexadezimal 14XXX und die I-Bus-Adresse ist bei hexadezimal 16XXX.
  • In Fig. 1 kann der Decoder 100 tatsächlich aus einem Paar von Decodern bestehen, von denen jeder vom Typ 74LS138 ist. Diese Decoder stellen Hardware-Decoder-Hinweissignale bereit. Ein erster Decoder kann Nur-Lese-Hinweissignale bereitstellen. Der andere Decoder kann Nur-Schreib-Hinweissignale bereitstellen und insbesondere gibt es zwei Signale, die von Interesse sind, die daran gekoppelt sind. Dies sind die Signale zum Takten der jeweiligen Empfangs- und Übertragungs-Kanalnummern. Diese Signale können als Signale POPCRN- und POPTCN- entsprechend den physikalischen Hardware-Adressen von hexadezimal 12,004 und hexadezimal 12,005 bezeichnet werden, wie in Fig. 1 veranschaulicht. Die Adresse 12,004 ist das Signal POPRCN- (und POP die Empfangs-Kanalnummer), das die Empfangs-Kanalnummer ändert. Die Adresse 12,005 ist das Signal POPTCN- (POP ist die Übertragungs- Mikroprozessor-Kanalnummer).
  • Es wird sich wiederum für den Abschnitt des Systems auf das Blockdiagramm von Fig. 1 bezogen, der eindeutig die Übertragungs- und Empfangs-Kanalnummern steuert. In diesem Zusammenhang wird sich auf den Steuer-PROM 104 bezogen. Die Kapazität des PROM 104 muß mindestens 1 K · 4 Bit sein. In Fig. 1 ist auch das Register 106 für die Empfangs-Kanalnummer und das Register 108 für die Übertragungs- Kanalnummer veranschaulicht. Es sei bemerkt, daß jedes dieser Register 106 und 108 ein Vier-Bit-Register ist. Die vier Bits identifizieren bis zu 16 getrennte Kanäle oder Tabellen. Daher sind vier Bits über die Leitung 107 von dem Register 106 mit dem Eingang des PROM 104 gekoppelt. Ähnlich gibt es vier Bits, die auf Leitung 109 von dem Register 108 auch zu dem Eingang des PROM 104 gekoppelt sind. Die Ausgaben der Register 106 und 108 an den jeweiligen Leitungen 111 und 112 sind mit den Multiplexern 90 und 92 des X-Bus des Empfangs- und Übertragungs-Mikroprozessors gekoppelt. Die Multiplexer stellen eine alternative Weise des Adressierens des X-Busses 26 bereit. Wie in Fig. 1 gezeigt, sind auf einer Seite der Multiplexer die Adressen von den Registern 106 und 108 zusammen mit anderen Adressen entweder von dem Empfangs-Adreßbus 16 oder von dem Übertragungs-Adreßbus 20 gekoppelt. Die vier Bits von diesen Registern ändern einige der Adreßbits mittlerer Gewichtung. Sie tun dies auf solch eine Weise, daß, wenn der X-Bus adressiert wird, sie die X-Bus-Adressen in 256 Byte Stücke brechen. Es gibt acht Adreßbits unter diesen vier und dann gibt es Bits höherer Ordnung, die verwendet werden, um tatsächlich die X-Adresse zu decodieren.
  • Es sei angenommen, daß der Übertragungs-Mikroprozessor 12 auf den in Seiten aufgeteilten XRAM 22 bei Kanalnummer 4 zugreift. Zugriff muß für die Leitungstabelle für die Kanalnummer 4 bereitgestellt werden. In dieser Hinsicht sei auf das schematische Diagramm von Fig. 6 verwiesen, das den XRAM 22 zeigt, der in mehrere Leitungstabellen getrennt ist. Es gibt tatsächlich 16 Leitungstabellen. Der Einfachheit halber sind in Fig. 6 jedoch nur Leitungstabellen 0 bis 7 veranschaulicht. Fig. 6 veranschaulicht auch die zugeordneten Adressen auf der linken Seite der Leitungstabellen-Kennzeichnung. Die physikalische Adresse für die Leitungstabellennummer 4 ist 10,400. Die beiden Ziffern niedriger Ordnung sind der tatsächliche Ort in der Leitungstabelle für 256 Stellen. Die nächste Ziffer ausgehend davon ist die vierziffrige Leitungsnummer, so daß die Adresse 104 für die Leitungsnummer 4 sein würde.
  • Bezüglich den Tabellen mit getrennten Leitungen sei jetzt auf das detaillierte Diagramm von Fig. 4 verwiesen, das eine der Leitungstabellen, nämlich die Leitungstabelle Nr. 1 mit einer Adresse von 10,100 zeigt. Es sei bemerkt, daß diese Leitungstabelle 256 Byte aufweist, die in einer tabellarischen Weise durch Orte 0-9 und A-F gekennzeichnet sind. Jedes dieser Byte weist 8 Bit auf. Damit der XRAM 22 alle diese Leitungstabellendaten speichern kann, wird eine Kapazität von 256 Orten multipliziert mit den 16 Leitungstabellen oder; in anderen Worten, eine Kapazität von 4 K · 8 Bit benötigt. In der besonderen Implementierung, die in Fig. 1 veranschaulicht ist, ist die angewandte Kapazität tatsächlich zweimal diese Menge, der verbleibende Bereich wird auf eine nicht in Seiten unterteilte Weise verwendet.
  • Wie zuvor angezeigt ist die Adresse für Kanal 4 10,4XX. Wenn es der 10 gleiche Ort, aber auf Kanalnummer 5 wäre, dann wäre die Adresse 10,5XX. Ahnlich, wenn das System den IRAM in Seiten aufteilt, der auch von dem gleichen Bus betrieben wird, wird dieser auf die gleiche Weise durch den gleichen Mechanismus in Seiten aufgeteilt. Man würde zur Adresse 16,4XX für ein Ereignis auf Leitung 4 oder 16,5XX für ein Ereignis auf Leitung 5 gehen. Die gleichen Nummern sind gültig für den Empfangs-Mikroprozessor und dadurch können der Empfangs- und Übertragungs-Mikroprozessor Information zwischeneinander sehr einfach austauschen.
  • Wenn jetzt jeder der Mikroprozessoren 10 oder 12 den XRAM 22 unter Verwendung dieses Seitenwechsel-Schemas adressieren will, dann tritt das Adressieren, anstelle eines Adressierens über Leitung 4, Adresse XX (104XX), über ein Schema auf, das ein einzelnes Bit höherer Ordnung verwendet. Die Adresse statt dessen ist 50,0XX. Dies zieht die Nummer der Empfangs- oder Übertragungsleitung ein, abhängig davon, welcher Mikroprozessor unter Steuerung ist. Abhängig davon, ob man im Übertragungs- oder Empfangsmodus ist, wird die Adresse in die mittleren Bits dieses Byte in der gleichen physikalischen Adreßposition gemultiplext. Bei dieser Technik müssen der Empfangs-Mikroprozessor und der Übertragungs-Mikroprozessor niemals wissen, auf welche Leitung derzeit zugegriffen wird, um auf die geeignete Leitungstabelle zuzugreifen. Der Prozessor adressiert einfach 50,OXX und bekommt seine Leitungsnummer, erzwungen durch Hardware zu der korrekten physikalischen Adresse für welches Byte auch immer man sich interessiert. Dies ist die Weise, auf die dieser Seitenwechsel-Algorithmus arbeitet.
  • Als nächstes folgt eine Diskussion der eigentlichen Hardware und Firmware zum Ändern der Zeilennummer entweder auf dem Empfangs-Mikroprozessor 10 oder dem Übertragungs-Mikroprozessor 12. Das Folgende ist eine Diskussion, wie die Logik arbeitet und auf welche Weise sie in Firmware implementiert ist. Die Kanalnummerauswahl zum Auswählen spezifischer Leitungstabellen des XRAM 22 betrifft den PROM 104, der in Fig. 1 veranschaulicht ist, zusammen mit den Registern 106 und 108 und den Multiplexern 90 und 92. Der PROM 104 kann eine Schaltung vom Typ 82S185 sein. Die Kanalregister 106 und 108 können vom Schaltungstyp 74S175 sein. Die Multiplexer 90 und 92 können vom Schaltungstyp 74LS257 sein. Es sei bemerkt, daß beide Multiplexer Freigabeeingänge haben, die eine negative logische Eingabe zur Freigabe benötigen. Demgemäß wird der Seitenwechsel-Multiplexer zum Empfangen durch das Signal R2XBUS- freigegeben, während der Seitenwechsel- Multiplexer für den Übertragungsmodus durch das Signal R2XBUS+ freigegeben wird. Kurz, wenn im Empfangsmodus das Signal R2XBUS+ positiv ist, und demgemäß das Signal R2XBUS- negativ ist, wird demgemäß nur der Multiplexer 90 freigegeben, der die Empfangs-Mikroprozessoradressen zu dem XBUS treibt.
  • Der Kanalauswähler PROM 104 kann ein 1 K oder 2 K · 4 Bit PROM sein. Der PROM 104 empfängt neun Adreßbits. Vier dieser Bits sind von dem Empfangsleitungs-Register und vier Bits sind von dem Übertragungsleitungs-Register. Ein Bit bestimmt, ob der Übertragungs- oder Empfangs-Mikroprozessor die Tabellennummer wechselt. Dies ist das Signal XADR19+, das an dem mittleren Eingang des PROM 104 gekoppelt ist.
  • Die vier Ausgänge von dem PROM 104 des Kanalauswählers sind an die beiden Register 106 und 108 gekoppelt. Dies sind jeweils das Empfangskanalnummer-Register und das Übertragungskanalnummer-Register. Beide diese Register sind Vier-Bit-Register.
  • Multiplexer 90 und 92 treiben entweder die direkten Mikroprozessor- Adressen oder die Mikroprozessor-Adressen mit der Leitungsnummer; die die mittleren Bits ersetzt. Auch treibt der Übertragungs-Multiplexer die direkten Übertragungs-Mikroprozessor-Adressen oder den Mikroprozessor bei dem die Leitungsnummer die mittleren Bits ersetzt.
  • Wie zuvor bemerkt kann der X-Bus und das XRAM entweder in einem direkten Modus oder in einem Zeilen-Seiten-Modus durch irgendeinen Mikroprozessor adressiert werden. In dieser Hinsicht ist in Fig. 1 beispielsweise bemerkt, daß der Empfangs-Adreßbus 16 direkt ohne irgendwelche Bitersetzungen an eine Seite des Multiplexers 90 gekoppelt ist. Ähnlich ist der Übertragungs-Adreßbus 20 auch direkt an eine Seite des Multiplexers 92 gekoppelt. Diese andere Form des Adressierens des X-Adreßbusses 26 tritt auf, da es einige Beispiele gibt, bei denen eine Steuerung in einem Nicht-Zeilennummer-Kontext ist, wie z. B. in einem Unterbrechungsmodus, wenn jemand ein Ereignis für eine Leitung handhaben muß, ist es nicht bekannt, welche Leitung es ist und tatsächlich kann es eine andere Leitung sein als die Leitung, auf der gerade gearbeitet wird.
  • Wie zuvor bemerkt hat der PROM 104 des Kanalauswählers vier Bits, die an ihn von dem Empfangsleitungs-Register 106 gekoppelt sind. In diesem Zusammenhang sei die Rücklaufleitung 107 in Fig. 1 bemerkt. Dort sind auch vier Bits an den PROM 104 von dem Übertragungsleitungs-Register 108 gekoppelt. Man bemerke die Rücklaufleitung 109 in Fig. 1. Es gibt auch zwei andere Bits, die an den PROM 104 gekoppelt sind, was eine Gesamtheit von 10 Bits macht, wodurch er effektiv zu einem 1 K PROM wird, obwohl er tatsächlich durch ein 2-K- PROM implementiert worden ist. Von den anderen beiden Bits wird eines für einen QLT-Modus benutzt, der sich auf Qualitätslogiktesten bezieht. Dies ist hier nicht detailliert beschrieben, da nicht geglaubt wird, daß es direkt die vorliegende Erfindung betrifft. Das andere Signal zu dem PROM des Kanalauswählers ist das Signal XADR19 + 00. Die Adresse XADR19 ist das Bit niedrigster Ordnung des X-Adreßbusses.
  • Bezüglich dem Blockdiagramm von Fig. 1 wird sich wieder auf den Decoder 97 und den Decoder 100 bezogen. Bezüglich dem Decoder 97 wurde die niedrigste Leitungskopplung davon als die Hardware-Hinweissignale, Adresse 12,XXX, bezeichnet. Dieser Ausgang ist über die Leitung 99 mit dem Decoder 100 gekoppelt, um Hardware-decodierte Hinweissignale bereitzustellen. Es gibt ein Schreib-Hinweissignal und zwei Leitungen sind gezeigt, die aus dem Decoder 100 gezeichnet sind. Dies sind die Signale POPRCN- und POPTCN-, wie zuvor beschrieben. Die Empfangs-Kanalnummer hat eine physikalische Adresse von 12,004, während die Übertragungs-Kanalnummer eine physikalische Adresse von 12,005 hat. Wenn irgendein Mikroprozessor ein physikalisches Schreiben auf Adresse 12,004 macht, dann geht das Signal POPRCN- auf niedrig und dann auf hoch. Die Zeitperiode dieses Signals ist ungefähr zwei Buszyklen oder 250 ns. Die Zyklen des PROM 104 sind ungefähr 85 ns und daher sind die Ausgänge an dem Ende freigegeben.
  • Von dem Decoder 100 unter dem Ausgangssignal der Empfangskanalnummer gibt es das Signal der Übertragungskanal-Nummer, das eine Adresse von 12,005 ist. Wenn irgendein Mikroprozessor auf eine physikalische Adresse von 12,005 schreibt, wird diese Leitung auf niedrig übergehen und dann nach ungefähr zwei Zyklen oder 250 ns wieder zurück auf hoch gehen.
  • Mit Bezug auf Fig. 1 und insbesondere die Empfangs- und Übertragungskanal-Register 106 und 108 ist bemerkt, daß das Signal POPRCN-00 in das Register 106 taktet, während das Signal POPTCN-00 das Register 108 taktet. Dies sind die Signale, die von dem Ausgang des Decoders 100 in Fig. 1 genommen werden. Es muß bemerkt werden, daß irgendein Mikroprozessor 10 oder 12 den anderen oder sein eigenes Leitungsregister takten kann. Man muß daher jedoch strikt die Ordnung auferlegen, daß nur der Empfangs-Mikroprozessor immer auf die physikalische Adresse 12,004 schreibt und daß nur der Übertragungs-Mikroprozessor immer auf die Adresse 12,005 schreibt. Wenn diese Ordnung einmal aufgebaut ist, ist das am wenigsten signifikante Adreßbit immer eine "1", wenn der Übertragungs-Mikroprozessor versucht seine Kanalnummer zu ändern, und es ist immer "0", wenn der Empfangs-Mikroprozessor versucht seine Kanalnummer zu ändern. Demgemäß kann der PROM mit einem Bit niedriger Ordnung, nämlich dem Signal XADR19 + 00, das zu dem PROM 104 gebracht worden ist, dann bestimmen, welche der beiden Kanalnummer geändert werden soll.
  • Es wird sich jetzt auf die Weise bezogen, in der der PROM 104 programmiert ist, um die Weise zu bestimmen, in der die Register 106 und 108 geändert werden. Nur ein Mikroprozessor kann eine Kanalnummer zu einem Zeitpunkt ändern, da nur ein Mikroprozessor Zugriff auf den X-Bus während einem Buszyklus haben kann. Die beiden Register 106 und 108, die gesteuert werden, haben getrennte Takte, so daß die Mikroprozessoren ihre Kanäle unabhängig ändern können. Außerdem, wie zuvor angezeigt, wird das Takten dieser Register durch Hardware-Decodierungen der Speicheradressen verursacht, die sich nur durch ein Adreßbit unterscheiden. Dann wird durch Übereinkunft nur der Empfangs- Mikroprozessor auf sein Hinweissignal zugreifen und nur der Übertragungs-Mikroprozessor auf sein Hinweissignal. Die Bestimmung, was der nächste Kanal für irgendeinen Prozessor sein wird, wird durch den PROM 104 gemacht. Der PROM kennt den derzeitigen Kanal für jeden Mikroprozessor, mit dem einer der Mikroprozessoren seine Kanalnummer zu wechseln wünscht.
  • Der PROM 104 ist programmiert, wobei die folgenden Betrachtungen gemacht werden. Der Empfangs-Mikroprozessor 10 läuft durch die Kanalnummern in einer umgekehrten Richtung zurück. Von den hexadezimal identifizierten Kanälen 0 - 9 und A - F bedient der Empfangs- Mikroprozessor den Kanal F und dann die Kanäle E, D, C, B, A, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, F. Der Übertragungs-Mikroprozessor schreitet in der normalen Vorwärtsrichtung wie folgt fort: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, 0. Es wurde herausgefunden, daß durch Verwendung dieses aufsteigenden, absteigenden Schemas auf alle Kanäle zugegriffen wird, ohne daß einer ausgeschlossen ist. Auf jeden übersprungenen Kanal wird in einem darauffolgenden Zyklus zugegriffen.
  • Die vorhergehende Sequenz nimmt an, daß es niemals einen Konflikt gibt. Bei diesem Schema ist es jedoch möglich, daß ein Konflikt einmal in der Sequenz auftritt. Dies wird durch den PROM 104 gehandhabt.
  • Die Übertragungs- und Empfangs-Mikroprozessoren wirken zusammen, um die kombinierte Aufgabe des Sendens und Empfangens von Daten über vielfache (in dem offenbarten Ausführungsbeispiel 16) Datenkanäle zu handhaben. Wenn ein Mikroprozessor seinem Betriebsprozeß Zugriff auf irgendeine spezifische Leitungstabelle gewinnen läßt, indem er anhält, ist es garantiert, daß er virtuell ausschließlichen Zugriff auf diese Leitungstabelle und alle Information in ihr hat. Die einzigen Ausnahmen sind die Informationsteile, die durch Unterbrechungen auf jedem Mikroprozessor gehandhabt werden. Diese Ausnahmen, auf die sich die Erfindung nicht richtet, werden hier nicht detailliert beschrieben. Diese Annahme bedeutet, daß ein Mikroprozessor nicht überprüfen muß, um zu sehen, ob der andere Mikroprozessor Zugriff hat, da durch Hardware-/Firmware-Definition der andere Mikroprozessor nicht diese Information zur gleichen Zeit benutzen oder ändern kann.
  • Wenn es einen Konflikt gibt, wenn der Übertragungs-Mikroprozessor versucht, von "0" zu "1" zum gleichen Zeitpunkt zu gehen, zu dem der Empfangs-Mikroprozessor auf Leitung "1" ist, ist die Adresse, die freigegeben wird, da es ein Übertragungs-Mikroprozessor ist, die Adresse 12,005. Das am wenigsten signifikante Bit dieser Adresse ist eine "1", daher wird das Signal XADR19 in dem PROM eine "1" sein. Zu diesem Zeitpunkt, in dem Augenblick, in dem das Signal auf "1" geht, schaltet der PROM seine Adressen um. Es wird gesehen werden, daß der Übertragungs-Mikroprozessor auf Kanal 0 ist, und versucht zu Kanal 1 zu gehen. Wenn der Empfangs-Mikroprozessor jedoch schon auf Kanal 1 ist, wird die Nummer; die in diesem PROM an dieser Stelle codiert ist, eine 2 sein, so daß der Übertragungs-Mikroprozessor einfach den Kanal 1 überspringen wird und anstelle dessen zu Kanal 2 geht. Wenn der Takt auf hoch geht, wird die Adresse des Kanals 2 in die Übertragungs-Kanalnummer getaktet.
  • Es sei bemerkt, daß der PROM 104 kontinuierlich die Kanalnummer überwacht. Der einzige Zeitpunkt jedoch, zu dem sich jemand darum kümmert, was von dem PROM 104 ausgegeben wird, ist dann, wenn tatsächlich entweder das Signal POPRCN- auf niedrig geht, oder; wenn das Signal POPTCN- auf niedrig geht.
  • Als nächstes in der Folge ist eine Diskussion der Firmware, die den Konzepten der Erfindung zugeordnet ist. In dieser Hinsicht wird bemerkt, daß das vorliegende System auf der Basis von der Einstellung von Aufgaben bei Kommunikation zwischen Mikroprozessoren arbeitet, anstelle der Verwendung von Unterbrechungen. In dieser Hinsicht, wenn einer der Mikroprozessoren Steuerungen der Leitungstabelle durch Anhalten gewinnt, setzt sich der schon begonnene Prozeß bezüglich dieses Kanales fort, indem er an dem "Anhaltepunkt" startet, der in der Leitungstabelle angezeigt ist, und indem er fortfährt, dieses Arbeitsstück zu verarbeiten, bis er wieder von dieser Leitungstabelle zu einer anderen angehalten wird. Während dieser Zeitperiode hat der Mikroprozessor eine ausschließliche Benutzung dieser Leitungstabelle, die er aufgibt, wenn er diese Leitungstabelle fallenläßt.
  • Dieses Konzept wird in Übereinstimmung mit dem zuvor genannten Schema ausgeführt, bei dem einer der Mikroprozessoren Aufgaben für Kanäle in ansteigender Reihenfolge bearbeitet, während der andere nach unten zählt. Die Anhalte-Konzepte bedingen das Sichern der Anhalteadresse zur Verwendung beim Wiederaufnehmen. Dem folgt das Indexieren des geeigneten Kanalnummer-Registers. Als nächstes wird die Wiederaufnahmeadresse aufgegriffen und zu ihr verzweigt.
  • Es wird sich jetzt auf weitere Zeitdiagramme bezogen, die hilfreich beim Veranschaulichen der Steuerkonzepte der vorliegenden Erfindung sind, wenn sie auf Doppel-Mikroprozessoren für Übertragungs- und Empfangsfunktion angewandt werden. Kurz, Fig. 7 veranschaulicht die Sequenz von sowohl Übertragungs- als auch Empfangs-Mikroprozessoren, wobei das Sequenzieren von Kanalnummern veranschaulicht wird. Fig. 8 ist ein Zeitdiagramm, das die Verschachtelung von Zyklen für die Übertragungs- und Empfangs-Mikroprozessoren veranschaulicht. Fig. 9 ist auch ein Zeitdiagramm, das die Anhalte-Funktion in einer Kanalnummer-Konfliktsituation veranschaulicht. Das Zeitdiagramm von Fig. 7 veranschaulicht die Tatsache, daß jeder der zwei Mikroprozessoren mit Bezug auf einen Kanal zu einem Zeitpunkt arbeitet. Fig. 7 veranschaulicht auch, daß jeder Mikroprozessor zum Arbeiten auf einem Kanal ausgeschlossen ist, wenn der andere Mikroprozessor schon auf "diesem" Kanal arbeitet. Insbesondere sei in Fig. 7 der Punkt bemerkt, bei dem der Übertragungs-Mikroprozessor von Kanal 4 zu Kanal 6 geht. Dies ist ein Beispiel eines erfaßten Konfliktes, da der Empfangs-Mikroprozessor schon auf Kanal 5 zu dem Zeitpunkt arbeitete, zu dem der Übertragungs- Mikroprozessor anhält. Demgemäß wird, von der hierin beschriebenen Hardware, der Übertragungs-Mikroprozessor anstelle zu Kanal 6 gesandt, wodurch vermieden wird, daß beide Mikroprozessoren auf die gleiche Leitungstabelle zum gleichen Zeitpunkt zugreifen.
  • Nebenbei bemerkt kennzeichnen in Fig. 7 die Markierungen M im allgemeinen X Buszyklen. Typischerweise beträgt die Dauer eines Kanales mehrere Mikrosekunden. In Fig. 7 sei bemerkt, daß der Kanal 0 eine Dauer von beispielsweise 20 Mikrosekunden hat.
  • Fig. 8 ist auch ein Zeitdiagramm, das einen kleinen Ausschnitt des Diagramms von Fig. 7 in dem Bereich des Übertragungskanales 1 und des Empfangskanales 9 darstellt. Fig. 8 veranschaulicht das Verschachteln von Zyklen für die Übertragungs- und Empfangs-Mikroprozessoren auf dem X-Bus, was zeigt, daß nur ein Mikroprozessor Zugriff während einem Buszyklus hat. Wenn es einen Konkurrenzkonflikt auf diesem Niveau gibt, wird der verlierende Mikroprozessor verzögert, bis der andere Mikroprozessor diesen Buszyklus beendet. Da die Signale POPTCN und POPRCN Signale sind, die von dem X-Bus weg decodiert werden, können sie nicht gleichzeitig auftreten.
  • In Fig. 8 sei bemerkt, daß der Empfangs-Mikroprozessor Zugriff hat, wobei er zuerst auf die Leitungstabelle zugreift, die Kanal 9 entspricht. Es gibt dann eine Anforderung nach Zugriff durch den Übertragungs- Mikroprozessor und während dem nächsten Buszyklus hat der Übertragungs-Mikroprozessor Zugriff und dieser Zugriff geschieht auf die Leitungstabelle, die dem Kanal 1 entspricht. Es sei in Fig. 8 bemerkt, daß die Periode jedes Buszyklus in der Größenordnung von 250 ns sein kann.
  • Fig. 9 ist auch ein Zeitdiagramm, das den Übertragungs-Mikroprozessor veranschaulicht, der von Kanal 4 zu Kanal 6 anhält. In Fig. 9 sei bemerkt daß es dort anfänglich zwei Buszyklen gibt, die sich auf den Übertragungs-Mikroprozessor beziehen, um einen neuen Anhaltepunkt aufzubauen, den Ort, an dem wieder aufgegriffen werden soll, wenn einer zu dieser Leitungstabelle zurückkehrt. Es sei auch das Signal POPTCN an der physikalischen Adresse 12005 bemerkt, das die Wirkung hat, das Übertragungsregister zu takten. In diesem besonderen Beispiel taktet demgemäß, da der Empfänger schon auf Kanal 5 ist, die Logik, die den PROM 104 betrifft, von Kanal 4 zu Kanal 6 für das Übertragungsregister.
  • In Fig. 9 stellt das Signal TC# den Inhalt des Übertragungskanales oder des Leitungsnummer-Registers dar. Das Signal RC# stellt den Inhalt des Empfangskanals oder Leitungsnummer-Registers dar.
  • Es sei auch in Verbindung mit Fig. 9 bemerkt, daß obwohl Kanal 5 übersprungen worden ist, was den Übertragungs-Mikroprozessor betrifft, dieser Kanal zu einem späteren Zeitpunkt bei dem Sequenzieren aufgegriffen werden wird. Demgemäß wird keiner der Mikroprozessoren vom Zugreifen auf irgendeine der Leitungstabellen ausgeschlossen, nur vom Zugreifen auf die gleiche Leitungstabelle wie der andere Mikroprozessor zum gleichen Zeitpunkt.
  • Wie zuvor gezeigt, können sowohl der Empfangs-Mikroprozessor als auch der Übertragungs-Mikroprozessor vom Typ 68008 sein. Diese Mikroprozessoren haben typischerweise acht Adreßregister und acht Datenregister. Die Adreßregister werden typischerweise als Register A0 bis A7 bezeichnet. In jedem Mikroprozessor ist ein Adreßregister dazu bestimmt, auf die geeignete Anhalteadresse in der Leitungstabelle zu zeigen. Das Register A0 ist angepaßt, um auf die physikalische Adresse 50,000 zu zeigen, die der Ort 0 zu Beginn der Leitungstabelle ist. Das Adreßregister A4 zeigt auf die physikalische Adresse 50,002. Dies zeigt auf die Anhalteadresse des Empfangs-Mikroprozessors in der Leitungstabelle. Wieder sei auf Fig. 4 verwiesen. Das Adreßregister A4 zeigt immer auf die physikalische Adresse 50,002, um das Auslesen einfacher zu machen. Das Auslesen tritt in zwei Bytemengen auf.
  • Zusammenfassend ist Fig. 1 ein Hardware-Diagramm, das ein System veranschaulicht, bei dem die Firmware-Zustandskonzepte der vorliegenden Erfindung ausgeführt sein können. Es soll jedoch verstanden werden, daß diese Konzepte auch in anderen Typen von Systemen praktiziert werden können, die weniger oder eine größere Anzahl von Prozessoren aufweisen. Die Firmware-Konzepte der vorliegenden Erfindung dienen als Werkzeug, um eine saubere Übertragung von Daten auf optimierte Weise zu ermöglichen, insbesondere, wenn es einen Datentransfer gibt, der auf einer willkürlichen Basis auf vielfachen Datenleitungen auftritt. Innerhalb der Firmware-Zustandskonzepte ist das Anhalte-Merkmal, das hier zuvor beschrieben worden ist, eine Einrichtung, durch die die Aufmerksamkeit des Systems von Leitung zu Leitung gerichtet wird. Wie zuvor angezeigt ist ein Gesichtspunkt des Anhalte-Merkmales der; daß es keinen Kontext gibt, der zu irgendeinem Zeitpunkt gesichert werden muß, wenn von einer Aufgabe zur anderen umgewechselt wird. In dem bevorzugten Ausführungsbeispiel ist alles, was weggespeichert wird, die Programmzählerposition, so daß das System weiß, wo es das Verarbeiten auf einer bestimmten Leitung zu einem geeigneten Zeitpunkt aufgreifen und wiederaufnehmen muß. Das Anhalte-Merkmal macht von einem Hardware-Gesichtspunkt des in Seiten aufgeteilten Speichers Verwendung, indem es einen Speicherbereich gibt, der jeder Leitung zugeordnet ist.
  • In Übereinstimmung mit den Firmware-Zustandskonzepten der vorliegenden Erfindung ist ein bestimmter Firmware-Zustand zu jedem bestimmten Zeitpunkt definiert, und zwar für Verarbeitungszwecke, einfach als die Programmzählerposition, bei der dieser Zustand darauffolgend starten wird, um den Code auszuführen, wenn wieder darauf zugegriffen wird.
  • Mit Bezug auf die Firmware-Zustandskonzepte der Erfindung wird sich jetzt auf Fig. 6 bezogen, die ein Blockdiagramm ist, das auf der linken Seite eine Reihe von Firmware-Zuständen S1-S6 zeigt. Verbindende Linien zeigen das Sequenzieren von Firmware-Zustand zu Firmware- Zustand. Auf der Rechten ist in dem Diagramm von Fig. 6 eine Darstellung der Datenleitungsnummern gezeigt. Die Pfeile, die die linke und rechte Seite des Diagramms von Fig. 6 verbinden, zeigen auf Leitungsnummer 5. Dieses Diagramm veranschaulicht klar; daß ein Verarbeiten auf der Leitungsnummer 5 in getrennten Segmenten jedesmal auftritt, wenn diese Leitungsnummer 5 Zugriff erhält. Eine größere Anzahl von Programmschritten in diesen verschiedenen Zuständen stellen das Warten dar; daß irgendein Ereignis auftritt. Es gibt typischerweise drei Hauptwarteereignisse. Auf der Empfangsseite wird der Empfang von Daten erwartet. Es wird auf eine Quittung gewartet, daß die Daten zu dem Computer durchgelaufen sind. Drittens gibt es ein Warten, daß bestimmte Zeiten verstreichen. Der Computer; auf den sich bezogen wird, ist mit einer Vielleitungs-Steuereinrichtung gekoppelt, die jeweils mit den Adreß- und Datenbussen 33 und 36 in Fig. 1 verbunden ist. Wie zuvor angezeigt, kann der Computer ein Honeywell DPS6 sein.
  • Indem wieder zu dem Diagramm von Fig. 6 zurückgekehrt wird, wird bemerkt, daß beispielsweise anfänglich eine Arbeit für Leitung 3 ausgeführt wird und als nächstes für Leitung 4 usw. Jede dieser Leitungen arbeitet auf verschiedenen Aufgaben und es wird nur auf eine Leitung gleichzeitig zugegriffen. Wie zuvor angezeigt ist eine wesentliche Zeitmenge tatsächlich dem einfachen Warten gewidmet; z. B. kann darauf gewartet werden, daß das Telefon "klingelt". Fig. 6 veranschaulicht das Überlappen aller dieser Zustände und die Pfeile zeigen an, daß wenn diese Zustände zusammengefügt werden, sagen wir für Leitung 5, es dann eine vollständige Folge von Zuständen gibt.
  • Fig. 6 veranschaulicht auch in jedem Firmware-Zustand ein "Anhalten", das an dem Ende des Zustandes durch s veranschaulicht ist. Tatsächlich kann es abhängig von dem bestimmten Zustand eine Folge von Anhalten geben das in einem Zustand auftritt und bevor der Zustand beendet ist. Zum Beispiel kann, wenn man in dem Firmware-Zustand S3 ist, für Leitung 5 nach einem bestimmten Verarbeiten von Arbeit ein Anhalten auftreten. Die Anhalteadresse für diesen Zustand wird gesichert und das nächste Mal, daß auf Leitung 5 zugegriffen wird, wird das Verarbeiten in diesem Zustand gestartet. Wenn ein Test anzeigt, daß der Zustand beendet ist, dann kann eine neue Anhalteadresse festgelegt werden, die dem nächsten Zustand entspricht. Wenn der Prozessor jetzt zu dieser Leitung wieder zurückkehrt, dann wird die Adresse, die erfaßt wird, die Anhalteadresse für den nächsten Zustand sein.
  • Es wird sich jetzt auf das Firmware-Zustands-Gesamtblockdiagramm von Fig. 2 bezogen werden, das die Übertragungszustände auf der linken und die Empfangszustände auf der rechten Seite veranschaulicht. Auf jeder Seite veranschaulichen die Zustände den Fortschritt einer Sequenz. Jeder dieser einzelnen Zustände ist durch eine Anzahl kleinerer Unterzustände implementiert, die hiernach in Verbindung mit den Fig. 3A bis 3H beschrieben werden.
  • Auf jeder Seite in Fig. 2 ist ein "down" oder ein "tear down" Zustand. Dies ist einfach ein Zustand, der veranlaßt, daß das Telefon aufgehängt wird, und daß die Verbindung fallengelassen wird. Diese Zustände sind in Fig. 2 als der Zustand TXDWN und der Zustand RXDWN veranschaulicht. Diese Zustände sind verantwortlich für das Aufhängen des Telefons, das Unterbrechen der Leitung zu dem Computer; das Löschen aller Zustände des vorhergehenden Anrufs und des Neuinitialisierens des Systems, damit es vorbereitet ist, einen anderen Anruf auf der gleichen Leitung anzunehmen.
  • Der nächste Zustand, der in Fig. 2 veranschaulicht ist, ist der Zustand TXEST und der Zustand RXEST. Diese werden als "Aufbau"-Zustände bezeichnet. Dies erlaubt einem einen neuen Anruf auf der gleichen Leitung aufzubauen. Typischerweise ist der "Aufbau"-Zustand ein Wartezustand. In dem "Aufbau"-Zustand wartet man einfach darauf, "daß das Telefon läutet". Wenn irgendeine Seite versucht, einen Anruf zu initiieren, kontrolliert sie, daß die korrekten Bedingungen existieren, und daß die bestimmte Leitung eine ist, die entweder Anrufe aufnehmen oder initiieren kann und bestimmte Bedingungen festlegt, die vorhanden sein müssen, um weiter fortzufahren. Auf der Übertragungsseite, nach dem "Aufbau"-Zustand, bewegt sich der Übertrager dann in einen Handshake-Zustand, der als der Zustand TXHSK bezeichnet wird. Ähnlich bewegt sich auf der Empfängerseite der Empfänger zu dem Zustand RXOFF.
  • Auf der Empfängerseite zieht der Zustand RXOFF die Aufmerksamkeit des Empfängers auf die Kommunikations-/Telefon-Leitung, ist aber ein Zustand, in dem der Computer nicht wünscht, daß Daten geliefert werden. In dem Zustand RXOFF werden alle Daten, die hereinkommen, verworfen, aber das periodische Verarbeiten von Aktualisierungs- Nachrichten wird kontinuierlich durchgeführt.
  • Der dazugehörige Zustand RXOFF, wie in Fig. 2 veranschaulicht, ist der Zustand RXDAT. In diesem Zustand kommen Daten herein und werden tatsächlich zu dem Computer geliefert, wenn die Daten empfangen werden. Die Zustände RXOFF und RXDAT sind ähnlich, mit der Ausnahme, daß in einem Zustand (RXOFF) Daten von der Kommunikationsleitung verworfen werden und daß in dem anderen Zustand (RXDAT) sie zu dem Computer durchgegeben werden, der mit den Daten- und Adreßbussen 33 und 36 über eine Vielleitungs-Steuereinrichtung verbunden ist, die hier nicht veranschaulicht ist.
  • In dem Zustand RXOFF gibt es einige spezielle Schritte, die ausgeführt werden, um den Empfang von Daten an dem Computer zu synchronisieren.
  • Der letzte Zustand auf der Empfangsseite ist der Zustand RXBRK. Dies ist der Zustand, in den eingetreten wird, wenn über Aktualisierungs- Nachrichten ein "Pause"-Signal von der Kommunikationsleitung empfangen wird. Die "Pause" ist ein Konzept, bei dem ein Aufschalt-Signal gesandt werden kann, das die Aufmerksamkeit auf den Empfänger zieht, ohne daß die Dateneinrichtungen selbst verwendet werden. Der Zustand RXBRK ist ähnlich dem Zustand RXOFF. Wenn einer in den Zustand RXBRK eintritt, wird eine Anforderung zu dem Computer gesandt, um über die "Pause"-Bedingung zu informieren. Dann wird fortgefahren, Daten zu verwerfen, bis die Aktualisierungsnachricht, die ein Ende der Unterbrechung anzeigt, empfangen ist. Dann fährt man zu dem Zustand RXDAT zurück.
  • Auf der Übertragungsseite in Fig. 2, wenn die Leitung zuerst aufgebaut ist, wenn das Telefon geläutet hat und geantwortet worden ist, dann gibt es eine Anzahl von Handshake-Nachrichten, die zwischen der Steuervorrichtung und der Telefonausrüstung an dem entfernten Ende der Leitung ausgetauscht werden. Diese Handshake-Nachrichten werden durchgegeben, um sicherzustellen, daß die beiden Vorrichtungen tatsächlich miteinander kommunizieren können und um eine Datensignalrate, die zu der Endstelle verwendet werden wird, und andere Gesichtspunkte der Endstellenverbindung selbst auszuhandeln und darüber zu entscheiden. Während der Übertrager in dem "Handshake"-Modus ist, ist der Empfänger in dem "Aus"-Zustand, und während er in dem "Aus"-Zustand ist, verwirft er Daten. Der Computer; wie z. B. ein Honeywell DPS6, will noch keine Daten und so stellt er die Handshake-Nachrichten von der Leitung wieder her und informiert einfach den Übertragungs-Mikroprozessor 12 über die Existenz dieser Nachrichten. Dies erlaubt ihm, sie zu verarbeiten und der Übertrager fährt dann fort, der Firmware, die in dem "Aus"-Zustand des Empfängers arbeitet, zu sagen, wann sie losgehen soll und die nächste Nachricht von der Leitung gewinnen soll. Wenn der Handshake fehlschlägt, dann kehrt das System zu dem "down"-Zstand zurück. Wenn aus irgendeinem Grund gefunden wird, daß es inkompatible Datenraten oder ansonsten inkompatible Vorrichtungen gibt, wird die Verbindung abgebrochen.
  • Wenn der Handshake auf der Übertragungsseite erfolgreich ist, dann fährt das System zu dem Zustand TXOFF fort. Wie in Fig. 2 veranschaulicht gibt es sowohl einen Zustand TXOFF als auch einen Zustand TXDAT. Diese Zustände entsprechen dem DPS6-Computer; der wünscht, entweder Daten zu übertragen oder sie nicht zu übertragen. Wenn er wünscht Daten zu übertragen schaltet er seinen Übertrager ein und das System geht in den Zustand TXDAT. Wenn er keine Daten zu übertragen hat und seinen Übertrager ausschaltet, dann tritt das System in den Zustand TXOFF ein. In dem Zustand TXOFF ist im Grunde das Einzige, was getestet wird, ob der Übertrager eingeschaltet ist oder nicht. Wenn es keine Daten zu senden gibt, dann werden weitere Tests gemacht, um herauszufinden, ob der DPS6 Computer wünscht, die Verbindung fallenzulassen oder auf andere Weise die Natur der Verbindung zu ändern und so wird die Arbeitslast des Verarbeitens zwischen den Zuständen TXDAT und TXOFF geteilt. Von einem zeitlichen Gesichtspunkt aus ist der Übertrager meistens im Zustand TXOFF.
  • Es wird sich jetzt auf die Fig. 3A-3H für eine weitere Erklärung der Unterzustände bezogen, die an jedem der Hauptzustände, die in Fig. 3 veranschaulicht sind, beteiligt sind. Es wird sich insbesondere auf Fig. 3G für eine Erklärung der Definitionen bezogen, die den Unterzuständen und den Übergängen zwischen den Unterzuständen zugeordnet sind. Fig. 3G veranschaulicht die Ereignisse eines Zustandsübergangs des Empfangs- Mikroprozessors genauso wie die Ereignisse eines Zustandsübergangs des Übertragungs-Mikroprozessors. In Fig. 3A ist der Zustand RXDAT und die verschiedenen Unterzustände wie veranschaulicht veranschaulicht. Diese umfassen die Unterzustände RXDA00-RXDA10 genauso wie die Zustände RXDAD1, RXDAD2, RXDAH1, und RXDAE1-RXDAE3. Nach Eintreten in diesen Zustand tritt man in den Unterzustand RXDA00 ein und dies ist der Zustand, bei dem das erste Byte für jeden Rahmen erfaßt wird. Der Datenrahmen ist mit einem Kopf-Byte und einem bis neun Datenbytes aufgebaut. Der Zustand RXDA00 ist ein Wartezustand für das Kopf-Byte, das empfangen werden soll, und kommt über das Mikroprozessorende des Empfangs-FIFO. Dieser Zustand wird solange aufrechterhalten, solange kein Byte empfangen wird. Dieser Zustand bleibt, wie durch die Pfeile, die davon ausgehen, angezeigt. Das Ereignis auf der Linken zeigt Fehler an. Man bemerke in Fig. 3A, daß dies durch die Ereignisse A oder B veranschaulicht ist. Wieder sei auf Fig. 3G verwiesen.
  • Das Ereignis B zeigt an, daß man einen Zustand empfängt, der anzeigt, daß es irgendeinen Fehler gibt. Das Ereignis A tritt auf, wenn es eine Anzeige für ein Ende des Rahmens auf diesem Byte gibt. Er ist nicht geeignet, um ein Ende eines Rahmens des ersten Bytes zu sehen, da jede Nachricht durch Definition zumindest zwei Bytes lang ist. In solchen Fällen verläßt man ihn zu dem Fehlerprozeß.
  • Die Bytes, die in dem Zustand RXDA00 empfangen werden, werden in der Kopfposition eines Zusammenbau-Puffers in der Leitungstabelle gespeichert. In dem Zustand RXDA01 tritt die gleiche Sequenz auf, mit der Ausnahme, daß das erste Datenbyte jetzt erfaßt wird. Wieder können Fehler zu einer fehlerverarbeitenden Routine führen.
  • Dem Zustand RXDA00 folgend sind die Zustände RXDA01-RXDA09. Diese entsprechen dem Empfang des ersten bis zu dem neunten Datenbyte der Nachricht.
  • Ein Gesichtspunkt der Firmware-Zustandsmaschine ist der; daß ein Zähler oder ein Adreßzeiger nicht gehalten werden muß, oder irgendetwas anderes, um anzuzeigen, welches Byte empfangen wird. Diese Anzeige ist dem Code selbst bekannt. Wenn ein Datenbyte empfangen wird und es der Fall ist, daß man in dem Zustand RXDA02 ist, wird es in das zweite Byte des Zusammenbau-Puffers in der Leitungstabelle gegeben.
  • Ähnlich, wenn man nach rechts von diesen Zuständen geht, ist es bekannt, daß eine gesamte Nachricht zusammengefügt worden ist. Die Anzahl von Bytes ist bekannt von dem Zustand, in dem man ist. Wenn, z. B. der Zustand RXDA03 links ist, wird ein Zeiger gesetzt, der besagt, daß es eine Nachricht mit drei Bytes gibt. Eine Abkehr vom Zustand RXDA07 zeigt an, daß es eine Nachricht mit sieben Bytes ist. All dies spart Zeit beim Zählen und Indexieren durch den Puffer; wenn die Information gespeichert wird.
  • Eine andere Anzeige, wenn der Zustand RXDA09 erreicht wird, ist die, wenn eine Endbedingung nicht empfangen worden ist, was einen Fehler anzeigt. Der Rahmen ist zu lang. Nach dem Eintreten in den Zustand RXDA10 werden Daten kontinuierlich von dem FIFO genommen, bis ein gültiges Ende-der-Nachricht empfangen wird. Wenn es nicht innerhalb einer bestimmten Zeit empfangen wird, dann wird die Leitung abgebrochen. Wenn es erfaßt wird, dann wird in die fehlerverarbeitende Routine eingetreten, worin zu dem DPS6-Computer angezeigt wird, daß eine Nachricht mit einem Fehler empfangen worden ist. Ein Fehler führt in die Zustände RXDAE1, RXDAE2 und RXDAE3, die Fehlerbehandlungs- Zustände sind.
  • Der Zustand RXDAE1 ist ein Wartezustand für eine frühere CRI-Vollendung. Der Zustand RXDAE2 wartet für die geeignete Zeit und gibt den CRI ein. Der Zustand RXDAE3 wartet auf diesen CRI mit dem Fehler; um zu beenden, und wenn beendet ist, fährt man in das Ereignis U ein.
  • Im normalen Falle, wenn 1 bis 9 Bytes von Daten eingegeben werden, tritt man in den Zustand RXDAD1 ein, was der Datenliefer-Zustand ist. In allen Fällen ist der CRI die Unterbrechung, die man bei dem Prozessor verursacht. Man muß warten, um zu sehen, daß die frühere Unterbrechung beendet worden ist, bevor man die neue eingeben kann, und wenn sie beendet worden ist, muß man eine Zeit überprüfen, bevor versucht wird die Daten zu zählen, wie sie zu dem Computer gegeben werden, um sicherzustellen, daß keine Unterbrechungen auftreten, die zu eng zueinander sind. Es wird eine Zeitperiode gewartet und der CRI eingegeben und dann gibt es einen Tests des Anzeigers, der auf die Anzahl der Bytes in der Nachricht gesetzt worden war. Dies benötigt einen Zähler der nach unten gezählt wird.
  • Wenn das Ende der Daten geliefert worden ist, dann wird zu dem Ereignis L in Fig. 3A zurückgekehrt, was einen dann zurückbringt, um den nächsten Datenrahmen zu holen. Es gibt ein Ereignis aus dem Zustand RXDAD1, wie in Fig. 3A veranschaulicht, zu dem Zustand RXOFF. Dies deckt die Bedingung ab, bei der der Empfänger ausgeschaltet worden ist. Wenn er ausgeschaltet worden ist, wird aus dem Zustand herausgegangen und man tritt in den Zustand RXOFF ein. Wenn der Empfänger nicht ausgeschaltet worden ist, tritt das Ereignis M auf und ein Austausch zwischen den Zuständen RXDAD1 und RXDAD2 tritt für eine geeignete Anzahl auf.
  • Es gibt auch einen anderen Test, der in Verbindung mit Fig. 3A auftritt. Wenn die linke Menge der Zustände in Fig. 3A in Richtung der rechten Menge von Zuständen verlassen wird, gibt es im wesentlichen drei unterschiedliche Zweige, die genommen werden können. Einer ist zur Datenlieferung, ein anderer ist ein Aktualisierungs-Rahmen und dann gibt es schließlich das Ereignis H. Dies ist, wo in den Zustand RXBRK eingetreten wird, und es gibt auch Bedingungen, unten denen in den Zustand RXOFF eingetreten werden kann. Normalerweise verarbeitet man die Aktualisierungs-Nachricht, die den Datenmengen-Zustandszeiger geändert haben könnte, und dann kehrt man zu dem Daten-Hol-Zustand zurück.
  • Ein dritter Zustand auf der rechten Seite der Fig. 3A ist der Zustand RXDAH1. Dies ist der Zustand, in dem der Empfänger ist, wenn eine Handshake-Nachricht auftritt. Die Handshake-Nachricht geschieht typischerweise zu Beginn eines Anrufs. Es gibt bestimmte Bedingungen, wo dies auch in der Mitte eines Anrufes geschehen kann. Wenn man in dem Handshake ist, wird der Datenblock, der wiederhergestellt wird, in dem Puffer gehalten und der Übertragungs-Mikroprozessor wird in seinen Handshake-Zustand gezwungen. Die Nachrichten, die empfangen werden, werden durch den Übertragungs-Mikroprozessor zum Verarbeiten durchgegeben bis der Übertragungs-Mikroprozessor schließlich den Empfangs- Mikroprozessor freigibt und dann geht man zurück zu der normalen Rückgewinnung von Daten.
  • Demgemäß zeigt Fig. 3A den grundsätzlichen internen Fluß von Daten in dem Zustand RXDAT. Die am meisten aktiven Zustände sind diejenigen, die auf der linken Seite in Fig. 3A veranschaulicht sind. Allgemein gesagt werden nur einige Mikroprozessor-Anweisungen für jeden Zustand ausgeführt und demgemäß wird die Zeit zum Verarbeiten dieser Zeichen auf einem Minimum gehalten.
  • Es wird sich jetzt auf Fig. 3B für eine Veranschaulichung des Zustandes RXOFF des Empfangs-Mikroprozessors bezogen. Es sei bemerkt, daß dieser Zustand die Unterzustände RXOF00 bis RXOF10 zusammen mit einem Zustand RXOFH1 umfaßt. Es sei bemerkt, daß die Zustände RXOF00 bis RXOF10 die zuvor genannten Zustände RXDA00 bis RXDA10, die in Fig. 3A veranschaulicht sind, kopieren. Wieder hat der Zustand RXOF00 die Aufgabe nach einem Kopf-Byte zu schauen. Außerdem überwacht er den Puffer für eine Anzeige, die in den Puffer eingefügt worden war; um anzuzeigen, wenn der Empfänger eingeschaltet ist. Jede Zeit, bei der der Empfänger diese Bedingung geändert hat, wird erfaßt und es wird in den Zustand RXDAT eingetreten, um zu verursachen, daß der folgende Datenrahmen tatsächlich zu dem DPS6- Computer geliefert wird. Ansonsten führen die Zustände RXOF0O- RXOF10 exakt das gleiche wie die entsprechenden Zustände RXDA00 bis RXDA10 aus.
  • In dem Zustand RXOFF ist viel von dem Code identisch zu dem Code, der in dem Zustand RXDAT verwendet wird. Unter dem Konzept der Firmware-Zustandsmaschine wird das Verarbeiten von Unterzustand zu Unterzustand durch einen sehr einfachen Test ausgeführt. Der Code ist virtuell identisch zwischen diesen zwei Zuständen, wie zuvor erwähnt.
  • Der andere Zustand, der in Fig. 3B veranschaulicht ist, ist der Zustand RXOFH1. Es sei bemerkt, daß dieser Abschnitt von Fig. 3B unterschiedlich zu dem entsprechenden Abschnitt von Fig. 3A ist, da die Datenliefer-Zustände in dem Zustand RXOFF fehlen. Wenn es eine Datennachricht beim Ereignis G gibt, wird sie durchgegeben und die Nachricht wird verworfen. Die Aktualisierungs- und Handshake-Nachrichten sind die gleichen, wie in dem Zustand RXDAT. Wie zuvor angezeigt, sind die Datenliefer-Zustände nicht da, da es kein Bedürfnis danach gibt, Fehler zu dem DPS6-Computer anzuzeigen, da der Computer nicht nach Daten sucht. Alle Fehler verursachen nur; daß der Block verworfen wird, bis einer zu dem kommt.
  • Es wird sich jetzt auf die weitere Menge von Unterzuständen bezogen, die in Fig. 3C veranschaulicht ist. Dies sind die Unterzustände für den Haupt-Zustand RXBRK. Der "Pause"-Zustand bei dem Datenfluß ist sehr ähnlich dem "Aus"-Zustand. Wieder werden die Daten verworfen.
  • Es sei in Fig. 3C bemerkt, daß der Dateneintrittspunkt am unteren Teil des Diagrammes ist. In diesem Zustand wird an der unteren rechten Position in Fig. 3C eingetreten. Hier tritt man in die Zustände RXBRK1-RXBRK3 ein. Zuerst wird darauf gewartet, daß alle vorherigen CRI beendet sind. Dann wartet man einen festen Zeitbetrag, um das Unterbrechungs-Signal dem Prozessor anzuzeigen, wobei man auch darauf wartet, daß die CRI beendet worden ist. Dann werden wieder Daten verarbeitet. Jeder Datenblock, der auftritt, und typischerweise treten sie nicht in dem "Pause"-Zustand auf, aber wenn sie es tun, wird verworfen. Beim Empfang einer Aktualisierungs-Nachricht erfaßt man den Rücklauf zu dem Zustand RXDAT. In dem Zustand RXBRK wird immer von dem Zustand RXDAT eingetreten und man verläßt immer den Zustand RXBRK zurück zu dem Zustand RXDAT.
  • Soweit der Code betroffen ist sei bemerkt, daß alle Anweisungen, die z. B. in Unterzuständen RXBR00-RXBR10 ausgeführt werden, identisch zu den entsprechenden Unterzuständen in den Hauptzuständen RXOFF und RXDAT sind.
  • Es wird sich jetzt auf Fig. 3D bezogen. Darin ist ein Zustandsdiagramm des Übertragungs-Mikroprozessors für den Zustand TXDAT veranschaulicht. Ähnlich veranschaulicht Fig. 3E das Zustandsdiagramm des Übertragungs-Mikroprozessors für den Zustand TXOFF. In dem Zustand TXDAT tritt im wesentlichen die umgekehrte Operation der Empfängerseite auf. Zeichen werden von dem DPS6-Computer empfangen. Nachrichten werden zusammengefügt. Datenblöcke werden bis zu neun Bytes empfangen, aber aus verschiedenen Hardware-Gründen werden nur drei Datenbytes in einem Rahmen zusammen mit einem Kopf-Byte gesandt. Demgemäß ist der längste Rahmen, der in dem Zustand TXDAT übertragen wird, ein Vier-Byte-Rahmen. In dieser Hinsicht sei auf die Zustände TXDAT1, TXDAT2 und TXDAT4 in Fig. 3D verwiesen. Wenn man in dem Zustand TXDAT1 ist, wird der erste CRI erwartet. Dies kann zu jedem Zeitpunkt von einer Millisekunde bis zu 100 Millisekunden geschehen, nachdem in den Zustand eingetreten worden ist. Zwei getrennte Ereignisse sind außerhalb dieses Zustandes angezeigt, einschließlich dem Ereignis B. Es gibt tatsächlich drei Ereignisse B außerhalb den drei getrennten Zuständen, wie in Fig. 3D veranschaulicht. Der andere Ausgang von diesen Zuständen geschieht durch das Ereignis A, das das Fortschreiten ist, wenn man tatsächlich Daten hat. Wieder werden in dem Zustand TXDAT1 die empfangenen Daten in dem ersten Byte des Nachrichtenpuffers plaziert. Als nächstes ist der Zustand TXDAT2, wo auf die nächsten zu liefernden Daten gewartet wird. Wenn sie geliefert werden, werden sie in das zweite Byte des Puffers eingegeben und das System fährt dann weiter zu Zustand TXDAT4 fort, wo es auf das dritte Byte wartet und dieses wird in der dritten Byteposition des Datenpuffers eingefügt. Dies ist ein normaler Fluß, wenn drei Bytes in einer Reihe empfangen worden sind. Wenn dies endet, geht die Steuerung dann über zu dem Zustand TXDAT6. Dies ist ein Wartezustand.
  • Das System der vorliegenden Erfindung hat die Fähigkeit Daten schneller zu übertragen als die meisten Endstellen die Daten empfangen können. Es gibt ein Warten während einer Zeitperiode, die zu einem Handshake- Zeitpunkt aufgebaut ist, und die eine Zeichenzeit pro Zeichen ist, die Datenrate, bei der die Empfangsendstelle arbeitet. Es gibt ein Warten, daß die Zeit für im wesentlichen drei Zeichen abläuft, ausgehend von der Zeit, zu der jemand die Nachricht sendet. Von dem Zustand TXDAT6 gibt es einen weiteren Test und dann einen Schritt zu Zustand TXDAT7. Es ist jetzt auf das Ereignis C in Fig. 3D verwiesen. Es wird der Unterzustand TXDDAT7 angenommen, wenn es Zeit ist, eine Aktualisierungs-Nachricht zu senden. Diese Nachrichten müssen periodisch, typischerweise alle 1,5 Sekunden gesandt werden. Im Zustand TXDAT6, während man auf eine Übertragungszeit wartet, der nicht nur anzeigt, daß die Empfangsendstelle es empfangen kann, sondern, daß die Sendevorrichtung gelöscht worden ist, dann kann jemand eine neue Nachricht geben, wenn der vorherige Rahmen geschlossen worden ist. Wenn es eine Aktualisierungszeit ist, dann wird die Aktualisierungsnachricht zuerst übertragen und dann gibt es eine Warteperiode danach, damit die Übertragungszeit verstreichen kann, so daß die Datennachricht gesandt werden kann. Wenn dies beendet ist, gibt es einen Ausstieg und es ist in den Fig. 3D angezeigt, und die Drei-Byte-Nachricht wird gesandt. Wieder werden in dem Wartezustand für eine Aktualisierungs- Nachricht Bedingungen erfaßt, die das System veranlassen werden, zu dem Zustand TXDWN zu gehen. Es gibt zwei Bedingungen, bei denen dies auftreten kann. Eine tritt auf, wenn der Anruf fallengelassen worden ist. Man erfaßt die PBX-Leitung, die aufgegeben worden ist. Die andere Bedingung ist die, daß Nachrichten nicht während einer Periode empfangen worden sind.
  • Im Zusammenhang mit Aktualisierungs-Nachrichten koordinieren der Empfangs-Mikroprozessor und der Übertragungs-Mikroprozessor mit einem Zähler und, wenn eine bestimmte Anzahl von Aktualisierungs-Nachrichten gesendet worden sind, ohne daß man sie empfangen hat, dann weiß man, daß der Endstellen-Adapter an dem anderen Ende aus irgendeinem Grund unterbrochen oder entfernt worden ist, und daß demgemäß die Leitung unterbrochen ist. Wenn diese Bedingung nicht vorliegt, werden entweder der Zustand TXDAT6 oder der Zustand TXDAT7 verlassen und die Drei-Byte-Nachricht wird übertragen. Danach geht der Fluß zurück zu dem Zustand TXDAT1, wo das System dann beginnt die darauffolgende Nachricht von dem DPS6-Computer aufzunehmen.
  • Hierzuvor ist sich auf das Ereignis B von den Unterzuständen TXDAT1, TXDAT2 und TXDAT4 bezogen worden. Diese Ereignisse zeigen an, daß gefunden worden ist, daß der Übertrager aus ist. Von dem Zustand TXDAT1, wenn der Übertrager aus ist, dann gibt es keine Daten zu senden und demgemäß geht der Betrieb unmittelbar zu dem Zustand TXOFF zurück. Von dem Zustand TXDAT2, wo man schon ein Datenbyte akkumuliert hat, kehrt das System dann zu dem Zustand TXDAT3 zurück, wo es für die Übertragungszeit wartet und dann diese Nachricht mit einem Datenbyte darin sendet.
  • Ähnlich, wenn ein Ausstieg bei Ereignis B von dem Zustand TXDAT4 auftritt, erfaßt der Übertrager "aus" und demgemäß sind zwei Datenbytes akkumuliert worden. Es wird in den Zustand TXDATS eingetreten, was ein Warten veranlaßt, das für die Übertragungszeit auftritt. Dies veranlaßt, daß eine Nachricht von zwei Byte gesandt wird, und dann schreitet das System zu dem Zustand TXOFF fort.
  • Wieder sei bemerkt, daß diese Zustände, die in Verbindung mit Fig. 3D beschrieben sind, von Zustand zu Zustand auftreten, ohne daß es erforderlich ist, den Kontext zu sichern. Man muß sich nicht daran erinnern, ob Bytes angesammelt worden sind, wie viele Datenbytes oder wie viele Datenbytes gesandt werden müssen, bevor man zu dem Zustand TXOFF geht. Mit den Firmware-Zustandskonzepten der vorliegenden Erfindung, wenn man in dem Zustand TXDATS ist und weiß, daß es zwei Zeichen zu übertragen gibt, wartet man einfach auf die richtige Zeit, um in der Lage zu sein, diese Nachrichten wegzusenden. Außerdem weiß man, daß sobald die Nachricht übertragen worden ist, man zu dem Zustand TXOFF weiterschreitet.
  • Die Steuerung in dem Zustand TXDAT, wie in Fig. 3D veranschaulicht, ist wichtig, da dies der Zustand ist, in dem der Computer 16 unterschiedliche Leitungen, die volle Datenübertragungsströme für bis zu 16 Endstellen bei hoher Geschwindigkeit geben, handhaben kann. Es ist demgemäß in diesem Zustand, daß man das gesamte Verarbeiten pro Zeichen so gering wie möglich halten möchte. Diese Zeit ist zwischen ungefähr 45 und 50 Mikrosekunden pro Zeichen, was wohl unter der Grenze von 60 Mikrosekunden für 9600 Bit pro Sekunde liegt.
  • Als nächstes wird sich auf Fig. 3E für das Zustandsdiagramm des Übertragungs-Mikroprozessors für den Zustand TXOFF bezogen. Es sei bemerkt, daß dieser bestimmte Zustand in zwei Unterzustände getrennt ist, die die Zustände TXOFF0 und TXOFMV umfassen. Im Zustand TXOFF wartet man auf eine Übertragungszeit, um Zeitressourcen zu bewahren. Es ist notwendig, periodisch verschiedene Gesichtspunkte der DPS6-Computerschnittstelle zu überwachen. Der Zustand TXOFF wird periodisch verwendet, um Bedingungen zu überwachen. Wenn die Übertragungszeit aus ist, schaut man nach dem Zustand oder der Schnittstelle, und wenn sich nichts geändert hat, verbleibt das System in dem Zustand TXOFF und wartet eine weitere Zeichenzeit.
  • Tatsächlich kommt während diesen Warteperioden das Anhalte-Merkmal ins Spiel. Das System testet nur lange genug, um zu bestimmen, ob es Zeit ist, eine bestimmte Aktion vorzunehmen. Wenn dies nicht ist, dann hält das System unmittelbar an. Das System verbraucht nur ungefähr 10 bis 12 Mikrosekunden in diesem Zustand und dies bewahrt eine Menge an Verarbeitungszeit. In anderen Fällen schaut das System periodisch nach einer Aktualisierungszeit und sendet eine Aktualisierungs-Nachricht gerade, wie es in dem dort bezogenen Zustand TXDAT ausgeführt worden war.
  • Ein anderes Beispiel tritt auf wenn man vom Zustand TXOFF0 zu TXOFMV übergeht. Dies tritt auf, wenn der Computer wünscht, mehr Daten zu übertragen. Es wird erfaßt, daß der Übertrager zurück auf "ein" schaltet. Man geht dann durch einen Zustand der TXOFMV genannt ist, der ein Setzzustand für einen Meßvektor ist. Zeitweise wird insbesondere auf das Ändern der Empfangszählrate geantwortet. Sie wird an einem Punkt erfaßt, so daß man sie nicht bei jedem Zeichen testen muß. Man kann eine unterschiedliche Meßzeit einstellen und dann immer zu Zustand TXDAT fortfahren, wie an dem Ausgang von dem Unterzustand TXOFMV in Fig. 3E angezeigt.
  • Es wird sich jetzt auf Fig. 3H für eine Veranschaulichung der Unterzustände bezogen, die sowohl dem Hauptzustand TXDWN als auch dem Hauptzustand RXDWN zugeordnet sind. In diese Zustände wird grundsätzlich nach der Initialisierung oder alternativ zu jedem Zeitpunkt gegangen, zu dem die Leitung abgebrochen werden wird. Auf der Empfängerseite sind die Unterzustände RXDWF und RXDWN1- RXDWN5. Auf der Übertragerseite sind die Zustände die Zustände TXDWN1-TXDWN6.
  • Auf der Empfangsseite hat der Zustand RXDWNF als einzige Aufgabe, den Übertrager dazu zu zwingen, in den Abbruch einzutreten. Wenn der Empfänger die Abbruchsituation findet, tritt er in seinen Zustand RXDWNF ein, der gerade ein Sackgassen-Zustand ist. Was er jedoch tut ist, daß er durch Ändern der Anhalteadresse für den Übertrager sich selbst in dem Zustand TXDWN zu Beginn der Sequenz wiederfinden wird.
  • Der Übertrager zwingt den Empfänger in den Zustand RXDWN. Dies ist in Fig. 3H durch den Eintritt in den Zustand RXDWN1 veranschaulicht. In jedem Falle sind die Zustandsmaschinenkonzepte in jedem Mikroprozessor verwendet worden, um den anderen Mikroprozessor in einen bestimmten Zustand zu zwingen.
  • Es gibt ein Flag, das verwendet wird, um die Folge der Zustände zu synchronieren. Dies wird als das Down-Flag bezeichnet und ist in Fig. 3H als das Signal DWNFLG identifiziert. Wenn der Übertrager in seinen "Down"-Zustand eintritt, gibt er einen hexadezimalen Wert des F0 in das Flag und tritt dann in den Zustand TXDWN1 ein. Er erwartet dort, daß das Signal DWNFLG gleich dem Wert "FF" wird. Wenn der Empfänger sich selbst in dem "Down"-Zustand befindet, initialisiert er bestimmte Gesichtspunkte der Maschine und setzt dann das Flag auf "FF". Jetzt verlassen sowohl der Übertrager als auch der Empfänger diesen Zustand.
  • Der nächste Schritt in der Sequenz ist der; daß der Übertrager in einem Wartezustand ist, und darauf wartet, daß die PBX-Leitung aufgehängt wird. Dies stellt sicher; daß die Verbindung vollständig fallengelassen worden ist, bevor jemand durch den "Down"-Zustand schreitet.
  • Während der Übertrager erfaßt, ob die Leitungsverbindung vollständig abgebrochen ist, wartet der Empfänger im Zustand RXDWN1 zuerst darauf, daß eine ausstehende CRI beendet wird und wenn sie beendet worden ist, fährt er fort die Leitungstabelle zu initialisieren. Er wartet auf die Vollendung und intialisiert dann die Leitungstabelle, er setzt die 256 Speicherbytes in der Leitungstabelle. Der Empfänger setzt die meisten davon auf Null, setzt einige auf einige Anfangswerte, und läßt bestimmte Werte in Ruhe, die von Anruf zu Anruf gehalten werden müssen. Der Empfänger fährt dann fort, auf das Signal DWNFLG zu warten, um den Wert von 33 zu initiieren der ein willkurlicher Wert ist.
  • Auf der Übertragerseite, wenn es eine Gewißheit gibt, daß die Verbindung fallengelassen worden ist, sei der Unterzustand RXDWN3 bemerkt, bei dem das Signal DWNFLG gleich "33" ist. Die Signifikanz dieser Sequenz ist die, daß, wenn die Verbindung garantiert fallengelassen worden ist, es keine neuen Daten gibt, die in den Empfangs-FIFO kommen. Wenn der Empfänger das Flag auf "33" sieht, dann geht er in den Zustand RXDWN4. Dies ist der Zustand, in dem man jetzt damit fortfährt, den FIFO zu löschen. Er führt dies schrittweise 1025 Mal aus, wobei vier Bytes jedesmal gelöscht werden. Der FIFO hat eine Kapazität von 4096 Bytes. Wenn der Empfangs-FIFO vollständig gelöscht ist, dann gibt es eine letzte Stufe des Leitungseinstellens. Auf der Empfangsseite gibt es einige Tests, die mit Selbsttestgesichtspunkten zu tun haben. Das System schreitet dann zu dem aufgebauten Zustand, nämlich dem Zustand RXEST. Wenn der Selbsttest beendet ist und versagt, dann kehrt man zu dem Zustand RXDWNS zurück. Das System hat sich im wesentlichen in diesem Zustand aufgehängt und kann nicht diesen Zustand verlassen, bevor die Maschine mit einem Hauptlöschen initialisiert worden ist.
  • In Fig. 3H gibt es auf der Übertragungsseite eine Reihe von Zeitüberschreitungen, die auftreten. Eine Regel ist aufgestellt worden, daß, wenn die Leitung fallengelassen worden ist, man sie nicht für zumindest sechs Sekunden wieder verbinden wird. Dies garantiert, daß alte Verbindungen für eine ausreichende Zeitperiode beendet worden sind. Wenn es keine Verbindung zu dem Zeitpunkt gibt, umgeht man die beiden Verzögerungen, wie durch die Umgehungsleitung in Fig. 3H angezeigt. Das Letzte, das geschieht, ist, daß es auf der Übertragungsseite eine Kontrolle danach gibt, ob das Signal DWNFLG gleich 0 ist. Von dort steigt man zu dem Übertragungsaufbau-Zustand, nämlich dem Zustand TXEST aus. Es ist garantiert, daß der Empfänger seine "Down"-Zustände zuerst löscht und dann den Übertrager freigibt, um zu beenden. Er gibt dann wieder die DPS6-Schnittstelle für einen neuen Anruf frei und kehrt zu einem Übertragungsaufbau-Zustand zurück oder wartet darauf, daß das Telefon läutet.
  • Ein anderer Gesichtspunkt der Firmware-Zustandsmaschine ist der Handshake-Zustand. Dies ist in Fig. 3F veranschaulicht, was die Zustände TXHSK1-TXHSK9 und auch die Zustände TXHFS0-TXHFS2 umfaßt. Handshake ist ein Prozeß, der zwischen dem Übertrager und dem Endstellenadapter ausgeführt wird, der an der Endstelle am anderen Ende der PBX angebracht ist. Die Verbindung ist durch die PBX hergestellt worden und man stellt nun einen Dialog zwischen der Steuervorrichtung und dem Endstellenadapter bereit, um zu bestimmen, ob einer in einen Dialog geht und fortfährt zu verarbeiten. In dem anfänglichen Handshake-Unterzustand TXHSK1 setzt man eine anfängliche Handshake- Nachricht fest und wartet dann während einer Zeitperiode, um eine Anzeige einer Aktion zu erfassen, bevor eine Übertragung auftritt. Der anfängliche Zustand ist da, um sicherzustellen, daß man nicht zu früh mit dem Übertragen beginnt, da die erste Nachricht dann verstümmelt sein könnte. Der nächste Zustand ist der Handshake TXHSK2. In diesem Zustand wird sich jetzt auf das Senden von Nachrichten zu vorgeschriebenen Intervallen, wie z. B. 15 Millisekunden voneinander; bezogen. In diesem Zustand wartet das System auf den Empfänger; um etwas zu empfangen, das dem Basisformat einer Handshake-Nachricht folgt. Dies ist eine Nachricht von acht oder neun Byte Länge, die vollständig die Bedienung der Maschine beschreibt. Wenn jemand die erste Handshake-Nachricht von dem Empfänger empfangen hat, werden verhandelbare Datenraten gesetzt. Grundsätzlich gibt es in der langen Handshake-Nachricht eine Anzahl von Datenraten, bei denen man arbeiten kann. Typischerweise bekommt man auf der Empfangsseite eine Anzeige einer Datenrate, die Datenrate, auf die die Endstelle eingestellt ist. Es gibt einen Vergleichsprozeß, der abläuft, um die höchste Rate aufzugreifen, zu der beide Enden der Leitung arbeiten können. Im wesentlichen ist in dem zweiten Handshake-Zustand eine gemeinsame Datenrate verhandelt worden, und es wird jetzt zu dem dritten Handshake-Zustand, nämlich dem Zustand TXHSK3 eingetreten. Ein Quittungsbit in der Handshake-Nachricht wird gesandt, um der anderen Seite anzuzeigen, daß man die Nachricht empfangen hat.
  • Die Regeln des Protokolls zeigen an, daß wenn man eine kurze Handshake-Nachricht sendet, man sie dreimal in einer Reihe senden muß, um zu garantieren, daß sie auf der anderen Seite empfangen wird. Man fährt durch drei Zustände fort, von denen jeder während einem 15 Millisekunden-Intervall wartet, um durchzugehen, und sendet dann die kurze Handshake-Nachricht aus. Wenn dies beendet worden ist, sendet man die erste Aktualisierungs-Nachricht aus, die den Daten-gesendet- Zustand anzeigt. In diesem Zusammenhang seien in Fig. 3H die darauffolgenden Schritte TXHSK4-TXHSK7 bemerkt.
  • Das System geht dann in den Zustand TXHSK8, wo es fortfährt, die Aktualisierungs-Nachricht zu senden, während es auf eine Aktualisierungs- Nachricht wartet. Der nächste Zustand zu dem gegangen wird, ist der Zustand TXHSK8 und von dort zu dem Zustand TXHSK9. Im Zustand TXHSK9 werden kontinuierlich Aktualiserungs-Nachrichten gesandt und man wartet darauf, daß der DPS6 quittiert, daß er die Verbindung gesehen hat. Wenn dies auftritt, verläßt man den Handshake-Modus und geht in den Zustand TXOFE
  • In der Reihe von zuvor genannten Zuständen erscheint es, daß das System durch die gleichen Bedingungen hindurchgeht, aber daß die Ausgangs-Bedingungen unterschiedlich sind, und daher unterschiedliche Bedingungen getestet werden. Zuerst für die Beendung des Handshake- Protokolls im Zustand TXHSK7, für den Empfang der ersten Aktualisierungs-Nachricht im Zustand TXHSK8 und für die Quittierung der Verbindung durch den DPS6.
  • Jetzt gibt es in allen Fällen ein Fehlerereignis und das Fehlerereignis wird entweder als H oder I aufgelistet. Das Ereignis H zeigt an, daß man erfaßt hat, daß die PBX aufgelegt worden ist, d. h., daß irgendwo in der Mitte des Betriebes jemand aufgehängt hat. Das Ereignis i zeigt an, daß jemand einen Zeitüberlauf hatte, wenn die Nachrichten bei 15 Millisekunden Intervallen gesandt worden sind.
  • In jedem Falle bewegt man sich längs durch die Zustände, so wie das Handshake-Protokoll fortschreitet, beim Aufbauen und Sicherstellen einer Beziehung. Zu jedem gegebenen Zeitpunkt gibt es ein anderes Ausstiegs-Ereignis, bei dem ein Fehler-Bit empfangen werden kann. Dies bedeutet, daß der andere Endstellenadapter nicht unsere Charakteristiken trifft. Dies bedeutet die Zustände TXHSF0-TXXHS2 in Fig. 3F. Wenn man einen Ausfall empfängt, dann muß man wieder eine Handshake- Nachricht senden, die quittiert, daß ein Ausfall empfangen worden ist. Dies muß dreimal geschehen. Das Ausfall-Bit wird gesandt. Es wird auf eine Quittierung gewartet und dann wird es noch einmal dreimal gesandt, bevor man zu dem Zustand TXDWN fortschreitet, der der "Down"-Übertragungszustand ist.
  • Es wird sich jetzt auf Fig. 5A für ein Listing eines Beispieles von Firmware-Anweisungen in dem System der vorliegenden Erfindung bezogen, das repräsentativ für die Firmware-Zustandskonzepte der Erfindung ist. In diesem Zusammenhang ist auch auf Fig. 3H und insbesondere auf den Zustand RXDWN4 verwiesen, der bei dem Löschen des FIFO betroffen ist. In dieser Hinsicht sei auch auf Fig. 1 und den FIFO 60 verwiesen. Es ist in diesem Zustand RXDWN4, daß der FIFO gelöscht wird, ein Teil pro Zeitpunkt. Der FIFO wird vier Bits auf einmal gelöscht. Wenn jemand versuchen würde, den gesamten FIFO gleichzeitig zu löschen, würde es bis zu 16 Millisekunden brauchen, angenommen 4000 Datenbytes und 4000 Statusbytes. Dies ist zu lange für eine Zeitperiode. Diese Zeitperiode beträgt 16 Zeichenzeiten für jede der anderen Datenleitungen. Demgemäß kann man nicht erlauben, daß das System die Prozessorzeit für 16 Millisekunden bindet.
  • Das Löschen des FIFO tritt unter Firmware-Steuerung auf, wie in Fig. 5A in dem darin dargestellten Listing ausgeführt. Fig. 5A beschreibt die tatsächlichen Anweisungen, die in dem Zustand RXDWN4 ausgeführt werden.
  • In Verbindung mit dem Firmware-Listing von Fig. 5A sei auch auf das schematische Block- und Flußdiagramm von Fig. 10 verwiesen. Dies veranschaulicht die Folge von Anweisungen in Verbindung mit einem bestimmten Zustand, der den Eintrittspunkt E veranschaulicht. Nachdem in einen Zustand eingetreten worden ist, kann eine Arbeit ausgeführt werden, wie durch den Block W angezeigt ist. Dies ist durch eine gepunktete Linie gezeigt worden, um anzuzeigen, daß in Übereinstimmung mit dem bestimmten vordefinierten Zustand es anfängliche Arbeit geben kann oder nicht. Demgemäß sind in Fig. 10 die Blöcke W in einer gepunkteten Linie gezeigt, um anzuzeigen, daß sie optional für einen bestimmten Zustand sind.
  • In Fig. 10 ist auch der rautenförmige Block 10 veranschaulicht, der anzeigt, daß ein Test ausgeführt wird. Dieser Test, der sich auf das Listing von Fig. 5A bezieht, kann der Test sein, um zu bestimmen, ob der FIFO vollständig gelöscht ist oder nicht. Wenn er nicht vollständig gelöscht ist, dann kann eine zusätzliche Arbeit ausgeführt werden, wie durch den Block W unter dem Testblock T angezeigt. Diese zusätzliche Arbeit würde ein Löschen von vier weiteren Bits des FIFO sein. Danach geht man zu einem Anhalte-Zustand, wie durch das Symbol SP in Fig. 10 angezeigt.
  • Es sei auch bemerkt, daß von dem Testblock T es einen anderen Weg über den Block W zu dem SS gibt, was anzeigt, daß ein Anhalten besetzt ist. Dies ist auch in Fig. 5A bei dem Zustand RXDWN3 veranschaulicht.
  • In Fig. 10 soll das Diagramm ein allgemeines Diagramm sein, das die verschiedenen Optionen anzeigt, die bei den Firmware-Zustandskonzepten der vorliegenden Erfindung auftreten. Demgemäß zeigt der Zweig rechts von dem Testblock an, daß man eine Anhalteadresse setzen kann und danach anhalten kann. Tatsächlich tritt dies in Fig. 5A auf, worin am oberen Ende ein Anhalten gesetzt wird und am unteren Ende ein Anhalten auftritt. Demgemäß kann Arbeit zwischen dem Setzen eines Anhaltens und dem Ausführen eines Anhaltens ausgeführt werden, und wird normalerweise.
  • In Verbindung mit dem Diagramm von Fig. 10 wird das Setzen eines Anhaltens mit Setzen einer neuen Programmzähleradresse in der bestimmten Leitungstabelle ausgeführt. Dies bedeutet jetzt, daß, wenn der Prozessor wieder zu dieser bestimmten Leitungstabelle zurückkehrt, daß das Verarbeiten an der Anhalteadresse wieder aufgenommen wird. Das Symbol SP in Fig. 10 zeigt das tatsächliche Ausführen eines Anhaltens an, wie es durch die letzten drei Anweisungen in Fig. 5A veranschaulicht ist, was in größerem Detail hiernach beschrieben werden soll. Tatsächlich ist in Fig. 5A die erste Anweisung, die gezeigt ist, die Anweisung, die sich auf den Ausstieg von dem Zustand RXDWN3 bezieht. Diese Anweisung bewegt die Adresse von RXDWN4 zu einer Adresse durch das Register A4. Dies setzt den Anhaltepunkt. Diese Anhalte-Adresse ist in der Leitungstabelle in einer bestimmten Speicherposition gespeichert. Dies setzt einen Rückkehrpunkt für eine darauffolgende Aktion in dieser besonderen Leitung.
  • Jetzt wird, wenn darauffolgend in dem Zustand RXDWN4 eingetreten wird, ein Fehler in der Leitungstabelle zuerst initialisiert, um vier Stellen des FIFO gleichzeitig zu löschen. Auf diese Weise werden nur 16 Mikrosekunden der Maschinenzeit benutzt, anstelle von 16 Millisekunden. Die Löschaufgabe wird in 1000 oder mehr Iterationen ausgeführt.
  • Daher ist das was auftritt, daß vier Stellen gleichzeitig gelöscht werden und ein Zähler dekrementiert wird. Dann tritt ein Test auf, um zu bestimmen, ob die Aktion beendet ist. Wenn die Aktion beendet ist, dann wird verzweigt, wobei der Betrieb aus diesem Zustand herausgenommen wird und in den nächsten Zustand bewegt wird. Dies tritt auf, nachdem der FIFO vollständig gelöscht worden ist. Wenn nicht verzweigt wird, weil die Aufgabe nicht beendet worden ist, in anderen Worten, der FIFO nicht gelöscht worden ist, zu irgendeinem bestimmten Zeitpunkt, dann kehrt man zu den drei Anweisungen zurück, die unten in Fig. 5A gezeigt sind, die das Anhalte-Merkmal bereitstellen. Dies ist der Mikroprozessor-Anweisungssatz, der tatsächlich das Anhalten implementiert.
  • Es gibt drei Schritte, die durchgeführt werden. Der erste ist als das Bewegen von D0 in RXCHN(A3) bezeichnet. Dies ist ein Hardware- Hinweissignal, Adresse 12005. Dies taktet das Leitungsnummerregister. Daher; was diese Anweisung tut, ist, das Inkrementieren der Leitungsnummer zu verursachen, die normalerweise, wie es zuvor beschrieben worden ist, auf der Empfangsseite um Eins inkrementiert und auf der Übertragungsseite um Eins dekrementiert wird. Wie zuvor erklärt, in jedem Falle, wenn es eine Kollision gibt, wird über einen Zähler gesprungen, wenn der andere Mikroprozessor auf einer bestimmten Leitung zu irgendeinem Zeitpunkt ist.
  • Die zweite der letzten Reihe von drei Anweisungen bewegt das Wort, das durch das Register A4 adressiert ist. Dies ist ein Indexregister; das auf die Stelle in der Leitungstabelle zeigt, wo man die Adresse speichert. Wenn man zurück zu der ersten Anweisung geht, verwendet man das gleiche Indexregister; um sie zu speichern. Was dies tut ist, zu veranlassen, daß der Inhalt der Speicherstelle, die durch dieses Register adressiert ist, in das Register As getan wird, und dann ist die letzte Anweisung eine Sprung-Anweisung. Ein Sprung zu dem Programmzähler; der geeignet für den Zustand ist, wo die nächste Leitung ist. Diese Serie von drei Anweisungen führt die gesamte Aufgabe sehr einfach durch. Bei den bestimmten Mikroprozessoren, die angewandt werden, benötigt diese Serie von drei Anweisungen nur sechs oder sieben Mikrosekunden zur Ausführung. Dies ist daher der einzige Overhead, den es beim Umschalten von Kanal zu Kanal und demgemäß von Leitung zu Leitung gibt. Dies ist im wesentlichen eine kleinere Menge von Overhead als 40 Mikrosekunden, die beim Nehmen einer Unterbrechung auftreten würde, bei einem Swapping-Zustand und dann beim Treffen weitere Entscheidungen.
  • Demgemäß wird bei dem Betrieb, der in dem Firmware-Diagramm von Fig. 5A veranschaulicht ist, gesehen, daß ein Test auf irgendeine Weise bereitgestellt ist, und daß die Entscheidung getroffen wird, ob in diesem bestimmten Zustand geblieben werden soll. Man kann anhalten, ohne die Anhalteadresse zu ändern. In dem gegebenen Beispiel, um vollständig den FIFO zu löschen, wo nur vier Bytes gleichzeitig gelöscht werden wird es viele Anhalte geben, aber man wird immer zurück zu der gleichen Anhalteadresse für diesen bestimmten Zustand gehen, der der Zustand RXDWN4 in dem gegebenen Beispiel ist. Die andere Alternative ist die, daß, wenn ein Zustand beendet worden ist, dann die nächste Anhalteadresse gesetzt wird, und daß die Adresse, die gesichert worden ist, dann die Anhalteadresse des nächsten Zustandes ist.
  • Wenn man die Maschine zu irgendeinem gegebenen Zeitpunkt anhält, z. B. für eine logische Analyse, kann man die 16 Leitungstabellen beobachten und präzise herausfinden, welche Leitung zu diesem Zeitpunkt arbeitet, zu dem die Beobachtung gemacht wurde. Dies kann einfach durch Anschauen der Anhalteadresse bestimmt werden, die jeder separaten Leitungstabelle zugeordnet ist. Demgemäß, in Übereinstimmung mit den Konzepten der Erfindung, kann gedacht werden, daß sie zwei grundlegende Eigenschaften betrifft. Eine ist es die Arbeitslast so aufzuteilen, daß es so effizient wie möglich ist, das Kriterium der 60 Mikrosekunden pro Leitung zu erfüllen. Der andere Gesichtspunkt ist sie in Stücke aufzuteilen, die klein genug sind, so daß keine Leitung das System monopolisieren kann, soweit ein Zugriff betroffen ist.
  • Es wird sich jetzt auf Fig. 5B für ein anderes Beispiel der Firmware- Steuerung in Übereinstimmung mit der vorliegenden Erfindung bezogen. Dieses Beispiel bezieht sich auf den Empfangsdatenzustand und in dieser Hinsicht ist auf Fig. 3A verwiesen.
  • In Zusammenhang mit diesem Zustand ist auch auf das Flußdiagramm von Fig. 12 verwiesen. Dies ist ein Zustand, bei dem es eine Datenübertragung gibt, die von einem bis neun Bytes von Daten in jedem Block aufweist. Da, wenn einmal ein Byte empfangen worden ist, es eine Wahrscheinlichkeit gibt, daß darauffolgende Bytes kommen werden, wurde eine Entscheidung getroffen, daß Anhalten nicht auftreten wird, solange Daten in sauberer Form hereinkommen. Dies ist in Fig. 12 veranschaulicht, wo es den Einstieg in einen Zustand gibt, gefolgt von einem Test und dann gefolgt von einer bestimmten Arbeit. Wenn Bedingungen erfüllt sind, dann kehrt das System zu dem nächsten Zustand zurück, wo es eingetreten ist, Tests treten auf und eine weitere Arbeit tritt auf, wie z. B. Speichern des Datenbyte.
  • Wie zuvor angezeigt, gibt es eine Datenübertragung, die von einem bis neun Bytes von Daten in jedem Block aufweisen kann. Jeder Block hat einen Kopf, der ihm zugeordnet ist, und zu Beginn jedes Blockes gibt es ein Warten, daß der Block ankommt. Der anfängliche Zustand ist Zustand RXDA00, wie in Fig. 3A angezeigt. Dies ist ein Wartezustand, bei dem darauf gewartet wird, daß der Kopf ankommt. Typischerweise ist dieser Zustand, in dem ein Test durchgeführt wird, der fragt, ob irgendetwas noch in dem FIFO ist. Wenn dort nichts ist, dann tritt ein Anhalten auf. Wenn dort etwas ist, wird dieses Byte aus dem FIFO genommen und in einen Puffer in dem Empfangs-Mikroprozessor gegeben. Die bestimmte Nachricht kann ein Kopf-Byte und bis zu neun Datenbytes haben. Demgemäß sind 10 Bytestellen in der Leitungstabelle bereitgestellt.
  • Demgemäß, im Zustand RXDA00, wenn das erste Byte hereinkommt, wird es in die erste Position dieses Puffers gegeben, was dort ist, wo das Kopf-Byte immer auftritt. Die Tests werden durchgeführt, um zu bestimmen, ob man aus einem bestimmten Zustand austritt, wenn ein Endeder-Nachricht-Signal empfangen worden ist. In der ersten Position ist dies illegal, da eine Nachricht mit einem einzelnen Byte illegal ist, und demgemäß wird in diesem Beispiel die Steuerung einer Fehlerverarbeitungsroutine überlassen.
  • Wenn auf der anderen Seite ein Fehler nicht angezeigt ist, dies das erste Datenbyte ist, und es kein Ende-der-Nachricht gibt, dann wird in den nächsten Zustand eingetreten, nämlich den Zustand RXDA01. Aber in diesem Zustand gibt es wieder einen Test, der danach fragt, ob es ein anderes Byte in dem FIFO gibt. Wenn es dies gibt, ist es das erste Datenbyte dieser Nachricht. Wenn es dies nicht ist, dann gibt es ein Anhalten und es wird wieder in die Folge eingetreten. Wenn es das erste Datenbyte ist, wird es in die entsprechende Stelle des Puffers getan. Demgemäß können die Datenbytes in aufeinanderfolgenden Stellen in einem Speicherpuffer in der Leitungstabelle herausgenommen und eingefügt werden. Als nächstes wird sich besonders auf Fig. 5B und die Menge von Anweisungen in der Mitte des Listing bezogen. Dies sind die Anweisungen für den zweiten Datenzustand, nämlich den Zustand RXDA02. Wenn man in diesen zweiten Zustand eintritt, gibt es eine Anweisung, die besagt move GKARS(A3), D0. Dies liest den Status. Es gibt einen Test, um zu sehen, ob dies der normale Status dieses Zustandes ist. Der normale Status dieses Zustandes würde ein Ende-der-Nachricht sein, da die meisten Nachrichten kurz sind. Man testet, um zu sehen, ob es ein Ende-der-Nachricht ist. Wenn es dies nicht ist, dann verzweigt man. Wenn es dies ist, dann liest man das Datenbyte. Dies ist die vierte Anweisung. Es ist die Anweisung (As), RXMSG2(A0). Das Indexregister As zeigt auf die Stelle, die man liest, um die Daten zu bekommen. Man bewegt sie in RXMSG2 und dies ist die zweite Stelle des Puffers (siehe Fig. 4). Wenn man über den Zustand RXDA03 spricht, dann bewegt man sich zu (As), RXMSG3(A0). Dies ist das Konzept des Einbettens der bekannten Nummer; an deren Stelle man ist innerhalb der Anweisung. Demgemäß weiß man, wo genau man das Byte hintun muß und man löscht dann den Status und dann legt man in der nächsten Anweisung die Nummer 2 in eine Stelle, die in dem Listing als RXMSG2(A0) bezeichnet ist, da an deren Ende man wissen muß, wie lang sie war. Man muß nicht wissen, wie lang sie ist während der Operation. Man muß sich merken, wie lang ein Block ist, wenn er beendet ist.
  • Jetzt hat das System alle Daten genommen, sie überprüft und ein normales Ende-der-Nachricht erfaßt und demgemäß tritt man in den normalen Lieferzustand ein, um die Nachricht wegzusenden. Wenn jemand den Zweig genommen hat, der anzeigt, daß es kein Ende-der-Nachricht gab, dann würde man herunter zu einer Stelle kommen, wo man einen normalen Datenstatus testet. Wenn es dem nicht gleich ist, dann verzweigt man heraus. Man bewegt dann die Daten zu dem zweiten Byte, löscht den Status und geht in den Zustand RXDA03, den dritten Datenzustand.
  • In diesem gerade gegebenen Falle, hat man nicht zwischen diesen Zuständen angehalten und dies geschieht aus Effizienzgründen. Es stellt sich heraus, daß die Daten in den FIFO bei 125 Mikrosekunden kommen, mit einem Byte Abstand. Man findet statistisch heraus, daß, wenn das erste Byte dort ist, es den Rest davon möglicherweise auch dort gibt. Daher hält man nicht zwischen jedem dieser an, mit Ausnahme des Falles, bei dem man entweder keine normalen Daten oder keinen normalen Ende-der-Nachricht-Status gesehen hat. Demgemäß verzweigt man in eine Serviceroutine, wo man weder normale Daten noch ein Ende-der-Nachricht sieht, da noch nichts dort ist. Dieser Zustand führt ein Anhalten für uns aus, und dies da zu Beginn oder an dem Punkt, wo jemand darin eingetreten ist, es keine Daten dort gibt. Zu diesem Zeitpunkt sichert man die Anhalteadresse, springt in RXGKE, was das Ausnahmebehandlungsprogramm ist.
  • Mit besonderem Bezug zu Fig. 5B in dem Zustand RXDA02 sei bemerkt, daß nach dem Lesen des FIFO-Status es einen Test nach einem normalen Ende-der-Nachricht gibt. Wenn es kein normales Ende-der- Nachricht gibt, dann wird zu dem Unterzustand RXDA02 verzweigt. Als nächstes gibt es einen Test nach normalen Daten. Wenn es normale Daten gibt, dann wird das Byte gespeichert. Unter dem Unterzustand RXDA02C in Fig. 5B sei die Anweisung (As), RXMSG2(A0) bemerkt.
  • Dieser folgt ein Löschen des FIFO, eine Inkrementierung und ein sofortiger Übergang in den nächsten Zustand RXDA03. Es sei bemerkt, daß dies ohne irgendein Anhalten geschah.
  • Im Zustand RXDA02A, wenn es ein normales Ende-der-Nachricht gibt, dann wird das Datenbyte gespeichert, wie wieder durch die Anweisung (A3), RXMSG2(A0) angezeigt ist, Daten sind dann geliefert.
  • In dem Falle, daß es kein normales Ende-der-Nachricht ist und daß außerdem es keine normalen Daten sind, vielleicht weil die Daten nicht vollständig zu diesem Zeitpunkt eingegeben worden sind, dann gibt es eine Verzweigung zu dem Unterzustand RXDA02B. Es sei bemerkt, daß in diesem Unterzustand die erste Anweisung ein Setzen des Anhaltens bei RXDA02 ist. Dies gewährleistet, daß folgend dem Wiedereintreten in diese Leitung es bei diesem bestimmten Zustand, nämlich RXDA02- Zustand geschehen wird. Die richtige Anhalteadresse wird in der Leitungstabelle entsprechend der Programmzähleradresse gesetzt. Die nächste Anweisung nach der Anhalte-Setzanweisung ist die Anweisung RXGKE(PC). Diese geht zu einer Ausnahmebehandlungsroutine, die nicht im Detail hier beschrieben ist. In dieser Routine jedoch gibt es eventuell ein Anhalten, so daß das Bedienen einer anderen Leitung auftreten kann. Wieder wird, wenn man zu dieser Leitung wieder zurückkehrt, die Anhalteadresse auf den Zustand RXDA02 für weiteres Testen gesetzt.
  • Zusammenfassend ist demgemäß in Fig. 5A eine Routine gezeigt worden, in der das Anhalte-Merkmal verwendet wird, um Segmente von Daten zu übertragen, denen ein Anhalten folgt. In Fig. 5B ist der Übergang von einem Zustand zu einem darauffolgenden Zustand ohne ein Anhalten zu benötigen gezeigt worden.

Claims (9)

1. In einem Datenkommunikationssystem eine Vorrichtung zum Steuern der Datenübertragung auf vielfachen unabhängigen Datenkanälen zwischen einer Vielzahl von Vorrichtungen und einem Computersystem, die aufweist:
- einen ersten Speicher (22), der eine Tabelle für jeden Kanal enthält, wobei jede solche Tabelle Kommunikationsinformation für den jeweiligen Kanal enthält;
- einen Datenprozessor (10, 12), der mit dem ersten Speicher (22) gekoppelt ist zum Steuern der Übertragung von Daten zu oder von den Vorrichtungen über die Kanäle durch aufeinanderfolgendes Zugreifen auf die Tabellen in dem ersten Speicher:
- einen zweiten Speicher (70, 84), der eine Vielzahl von Firmware-Anweisungssequenzen zum Steuern des Prozessors (10, 12) enthält, um jeweilige Operationen beim Steuern der Übertragung von Daten zu oder von den Vorrichtungen über jeden der Kanäle auszuführen;
- eine vorbestimmte Zelle in jeder Tabelle des ersten Speichers (22), die eine Adresse enthält die eine Startanweisung in dem zweiten Speicher (70 84) spezifiziert, die durch den Prozessor (10, 12) für diesen Kanal ausgeführt werden soll;
wobei die Vorrichtung dadurch gekennzeichnet ist, daß:
- jede der Firmware-Anweisungssequenzen aus einer Vielzahl von Anweisungsuntersequenzen gebildet ist, wobei jede Anweisungsuntersequenz einen von einer Vielzahl von vorbestimmten Operationszuständen darstellt, die zum Durchführen eines Datentransfers zwischen dem Computersystem und der Vielzahl von Vorrichtungen erforderlich sind;
- jede der Firmware-Anweisungsuntersequenzen eine bestimmte Testanweisung aufweist zum Auswerten von Bedingungen, die mit dem jeweiligen Kanal zusammenhängen, was den Prozessor (10, 12) dazu veranlassen kann, die Ausführung der jeweiligen Sequenz für den Kanal, der gerade Daten überträgt, anzuhalten, um zu einem nächsten der Zustände überzugehen;
nach der Ausführung der bestimmten Testanweisung, die den Prozessor (10, 12) dazu veranlaßt, die Ausführung der jeweiligen Sequenz aufzuhalten,
- eine neue zweite Speicheradresse entsprechend zu der Startanweisung der Anweisungsuntersequenz des nächsten der Zustände wird in die vorbestimmte Zelle der Tabelle geladen, die dem Kanal entspricht, der gerade Daten überträgt;
- woraufhin Umschalten von einem Kanal zum anderen unter Steuerung einer bestimmten Suspendierungs-Firmware-Anweisung stattfindet.
2. Vorrichtung gemäß Anspruch 1, dadurch gekennzeichnet, daß der Prozessor (10, 12), nachdem er so gesteuert worden ist, daß er Daten über einen der Kanäle überträgt,
- die zweite Speicheradresse liest, die in der vorbestimmten Zeile der Tabelle entsprechend dem einen Kanal gehalten wird, und
- die Ausführung einer Folge von der Anweisung veranlaßt, die an der Stelle in dem zweiten Speicher (70, 84) gehalten wird, die durch die Adresse identifiziert ist.
3. Vorrichtung gemäß Anspruch 1 oder Anspruch 2, dadurch gekennzeichnet, daß das Datenkommunikationssystem einen zusätzlichen Datenprozessor aufweist,
- wobei ein erster der Prozessoren (10) den Empfang von Daten von den Vorrichtungen über die Kanäle steuert, und
- wobei einer zweiter der Prozessoren (12) die Übertragung von Daten zu den Vorrichtungen über die Kanäle steuert, worin der erste Speicher (22) für beide der Prozessoren (10, 12) verfügbar ist, um einen Zugriff auf die Tabelle in dem ersten Speicher bereitzustellen.
4. Vorrichtung gemäß Anspruch 3, dadurch gekennzeichnet, daß ein dritter Speicher (84) bereitgestellt ist, der so angeordnet ist, daß er eine Vielzahl von Firmware-Anweisungssequenzen zum Steuern des zweiten Prozessors (12) speichert, um jeweils unterschiedliche Operationen beim Übertragen von Daten zu den Vorrichtungen über jeden der Kanäle auszuführen, wobei die Firmware-Anweisungssequenzen in dem dritten Speicher (84) aus einer Vielzahl von den Anweisungsuntersequenzen gebildet ist, wobei jede der Untersequenzen den zweiten Prozessor (12) dazu veranlaßt, in einem jeweiligen Zustand zu arbeiten.
5. Vorrichtung gemäß Anspruch 4, dadurch gekennzeichnet, daß der zweite Prozessor (12) nach der Ausführung der bestimmten Suspendierungs-Firmware-Anweisung, die den zweiten Prozessor (12) dazu veranlaßt, die Ausführung einer jeweiligen Sequenz anzuhalten, die dritte Speicheradresse des Punktes in der Sequenz lädt, an dem die Ausführung in eine andere vorbestimmte Zelle der Tabelle entsprechend dem Kanal, der gerade Daten überträgt, angehalten wird.
6. In einem Datenkommunikationssystem zum Steuern von Datenübertragungen auf vielfachen unabhängigen Datenkanälen zwischen einer Vielzahl von Vorrichtungen und einem Computersystem
- worin ein erster Speicher (22) eine Tabelle für jeden Kanal enthält, wobei jede solcher Tabellen Kommunikationsinformation für den jeweiligen Kanal enthält;
- worin ein Datenprozessor (10, 12) mit dem ersten Speicher (22) gekoppelt ist zum Steuern der Übertragung von Daten zu oder von den Vorrichtungen über die Kanäle durch aufeinanderfolgendes Zugreifen auf die Tabellen in dem ersten Speicher;
- worin ein zweiter Speicher (70, 84) eine Vielzahl von Firmware- Anweisungssequenzen enthält zum Steuern des Prozessors (10, 12), um jeweilige Operationen beim Steuern der Übertragung von Daten zu oder von den Vorrichtungen über jeden der Kanäle durchzuführen;
- worin eine vorbestimmte Zelle in jeder Tabelle des ersten Speichers (22) eine Adresse enthält, die eine Startanweisung in dem zweiten Speicher (70, 84) spezifiziert, die von dem Prozessor (10, 12) für diesen Kanal ausgeführt werden soll; ein Verfahren zum Veranlassen, daß die Firmware-Anweisungssequenzen den Prozessor (10, 12) steuern damit er in einer Serie von Operationszuständen arbeitet;
wobei das Verfahren dadurch gekennzeichnet ist, daß:
- jede der Firmware-Anweisungssequenzen aus einer Vielzahl von Anweisungsuntersequenzen gebildet ist, wobei jede Anweisungsuntersequenz einen von einer Vielzahl von vorbestimmten Operationszuständen darstellt, die zum Durchführen eines Datentransfers zwischen dem Computersystem und der Vielzahl von Vorrichtungen erforderlich sind;
- jede der Firmware-Anweisungsuntersequenzen eine bestimmte Testanweisung aufweist zum Bewerten von Bedingungen, die sich auf den jeweiligen Kanal beziehen, was den Prozessor (10, 12) dazu veranlassen kann, die Ausführung der jeweiligen Sequenz für den Kanal, der gerade Daten überträgt, anzuhalten, um zu einem nächsten der Zustände überzugehen;
nach der Ausführung der bestimmten Testanweisung, die den Prozessor (10, 12) dazu veranlaßt, die Ausführung der jeweiligen Sequenz so anzuhalten,
- Laden einer neuen zweiten Speicheradresse entsprechend der Startanweisung der Anweisungsuntersequenz des nächsten der Zustände in die vorbestimmte Zelle der Tabelle entsprechend dem Kanal, der gerade Daten überträgt; und Umschalten von einem Kanal zu einem anderen unter Steuerung einer bestimmten Suspendierungs-Firmware-Anweisung.
7. Verfahren gemäß Anspruch 6, gekennzeichnet durch den Prozessor (10, 12), der, nachdem er gesteuert worden ist, um Daten über einen der Kanäle zu übertragen, die zweite Speicheradresse liest, die in der vorbestimmten Zelle der Tabelle entsprechend dem einen Kanal gehalten wird, und die Ausführung einer Sequenz von der Anweisung verursacht, die in der Steile in dem zweiten Speicher (70, 84) gehalten wird, die durch die Adresse identifiziert ist.
8. Verfahren gemäß Anspruch 7, gekennzeichnet durch Steuern des Empfangs von Daten von den Vorrichtungen über die Kanäle durch einen ersten Datenprozessor (10) und Steuern der Übertragung von Daten zu den Vorrichtungen über die Kanäle durch einen zweiten Datenprozessor (12), worin der erste Speicher (22) für beide Prozessoren (10, 12) verfügbar ist, um Zugriff auf die Tabelle in dem ersten Speicher (22) bereitzustellen, und worin ein dritter Speicher (84) eine Vielzahl von Firmware-Anweisungssequenzen enthält zum Steuern des zweiten Prozessors (12), um jeweils unterschiedliche Operationen beim Übertragen von Daten zu den Vorrichtungen über jeden der Kanäle durchzuführen, wobei die Firmware-Anweisungssequenzen in dem dritten Speicher (84) aus einer Vielzahl von Anweisungsuntersequenzen gebildet sind, von denen jede den zweiten Prozessor (12) dazu veranlaßt, in einem jeweiligen Zustand zu arbeiten.
9. Verfahren gemäß Anspruch 8, dadurch gekennzeichnet, daß der zweite Prozessor (12) nach der Ausführung der bestimmten Suspendierungs-Firmware-Anweisung, die den zweiten Prozessor (12) dazu veranlaßt, die Ausführung einer jeweiligen Sequenz anzuhalten, die dritte Speicheradresse des Punktes in der Sequenz, an dem die Ausführung angehalten worden ist, in eine andere vorbestimmte Zelle der Tabelle entsprechend dem Kanal, der gerade Daten überträgt lädt.
DE3889962T 1987-03-31 1988-03-24 Vorrichtung und Verfahren zur Durchführung der Datenübertragung als Folge von Betriebszuständen in einem Kommunikationssystem. Expired - Fee Related DE3889962T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/032,896 US4965721A (en) 1987-03-31 1987-03-31 Firmware state apparatus for controlling sequencing of processing including test operation in multiple data lines of communication

Publications (2)

Publication Number Publication Date
DE3889962D1 DE3889962D1 (de) 1994-07-14
DE3889962T2 true DE3889962T2 (de) 1995-03-09

Family

ID=21867436

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3889962T Expired - Fee Related DE3889962T2 (de) 1987-03-31 1988-03-24 Vorrichtung und Verfahren zur Durchführung der Datenübertragung als Folge von Betriebszuständen in einem Kommunikationssystem.

Country Status (7)

Country Link
US (1) US4965721A (de)
EP (1) EP0285003B1 (de)
JP (1) JPS63271559A (de)
KR (1) KR930004949B1 (de)
AU (1) AU595697B2 (de)
CA (1) CA1287932C (de)
DE (1) DE3889962T2 (de)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2664950B2 (ja) * 1988-08-31 1997-10-22 日本電気株式会社 入出力処理装置
US5202964A (en) * 1990-10-26 1993-04-13 Rolm Systems Interface controller including messaging scanner accessing state action table
US5317757A (en) * 1992-02-06 1994-05-31 International Business Machines Corporation System and method for finite state machine processing using action vectors
US5325401A (en) * 1992-03-13 1994-06-28 Comstream Corporation L-band tuner with quadrature downconverter for PSK data applications
JP3236720B2 (ja) * 1993-02-10 2001-12-10 三菱電機株式会社 半導体記憶装置およびその製造方法
US6072781A (en) 1996-10-22 2000-06-06 International Business Machines Corporation Multi-tasking adapter for parallel network applications
US5805849A (en) * 1997-03-31 1998-09-08 International Business Machines Corporation Data processing system and method for using an unique identifier to maintain an age relationship between executing instructions
US6098167A (en) * 1997-03-31 2000-08-01 International Business Machines Corporation Apparatus and method for fast unified interrupt recovery and branch recovery in processors supporting out-of-order execution
US5887161A (en) * 1997-03-31 1999-03-23 International Business Machines Corporation Issuing instructions in a processor supporting out-of-order execution
US5913048A (en) * 1997-03-31 1999-06-15 International Business Machines Corporation Dispatching instructions in a processor supporting out-of-order execution
US5870582A (en) * 1997-03-31 1999-02-09 International Business Machines Corporation Method and apparatus for completion of non-interruptible instructions before the instruction is dispatched
US6122709A (en) * 1997-12-19 2000-09-19 Sun Microsystems, Inc. Cache with reduced tag information storage
CN106817280B (zh) * 2017-01-20 2021-10-26 山东大学 一种物联网设备的控制端计时方法及系统
CN114490461B (zh) * 2020-10-27 2024-03-29 Oppo广东移动通信有限公司 一种数据转移控制方法、存储介质及设备

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3651482A (en) * 1968-04-03 1972-03-21 Honeywell Inc Interlocking data subprocessors
US3670306A (en) * 1971-03-01 1972-06-13 Honeywell Inf Systems Process for data communication between data processing systems
US4133030A (en) * 1977-01-19 1979-01-02 Honeywell Information Systems Inc. Control system providing for the transfer of data in a communications processing system employing channel dedicated control blocks
JPS53136449A (en) * 1977-05-04 1978-11-29 Hitachi Ltd Address control system of communication controller
DE2817567C2 (de) * 1978-04-21 1983-12-29 Siemens AG, 1000 Berlin und 8000 München Verfahren für die Abwicklung von Vermittlungsvorgängen in Fernsprechanlagen, insbesondere Fernsprechnebenstellenanlagen
US4201887A (en) * 1978-05-11 1980-05-06 Cordura Marketing, Inc. Data telecommunications terminal
US4254462A (en) * 1978-06-01 1981-03-03 Honeywell Information Systems Inc. Hardware/firmware communication line adapter
JPS5633731A (en) * 1979-08-27 1981-04-04 Nippon Telegr & Teleph Corp <Ntt> Connecting circuit
US4425616A (en) * 1979-11-06 1984-01-10 Frederick Electronic Corporation High-speed time share processor
US4488231A (en) * 1980-09-29 1984-12-11 Honeywell Information Systems Inc. Communication multiplexer having dual microprocessors
US4482982A (en) * 1980-09-29 1984-11-13 Honeywell Information Systems Inc. Communication multiplexer sharing a free running timer among multiple communication lines
US4481574A (en) * 1982-02-18 1984-11-06 Pinetree Systems, Inc. Programmable interface between remote terminals and a computer
US4484306A (en) * 1982-03-22 1984-11-20 Exide Electronics Corporation Method and apparatus for controlling access in a data transmission system
US4748656A (en) * 1986-03-21 1988-05-31 American Telephone And Telegraph Company Personal computer--as an interface between a telephone station set and a business communication system
US4831520A (en) * 1987-02-24 1989-05-16 Digital Equipment Corporation Bus interface circuit for digital data processor
US4851991A (en) * 1987-02-24 1989-07-25 Digital Equipment Corporation Central processor unit for digital data processing system including write buffer management mechanism
US4881230A (en) * 1987-10-05 1989-11-14 Ibm Corporation Expert system for processing errors in a multiplex communications system

Also Published As

Publication number Publication date
DE3889962D1 (de) 1994-07-14
AU595697B2 (en) 1990-04-05
KR930004949B1 (ko) 1993-06-10
EP0285003B1 (de) 1994-06-08
JPS63271559A (ja) 1988-11-09
US4965721A (en) 1990-10-23
AU1380088A (en) 1988-09-29
KR880012050A (ko) 1988-10-31
CA1287932C (en) 1991-08-20
EP0285003A3 (en) 1990-07-18
JPH0564818B2 (de) 1993-09-16
EP0285003A2 (de) 1988-10-05

Similar Documents

Publication Publication Date Title
DE3889962T2 (de) Vorrichtung und Verfahren zur Durchführung der Datenübertragung als Folge von Betriebszuständen in einem Kommunikationssystem.
DE2831261C3 (de) Verfahren fur die gegenseitige Verbindung von Datenverarbeitungsprozessoren mittels Kanaladapter und Anordnung zur Durchführung dieses Verfahrens
DE3751091T2 (de) Übertragungsprotokoll zwischen Prozessoren.
DE69228960T2 (de) Vermittlungsnetz für Prozessoren
DE69229716T2 (de) Schaltungsarchitektur zum mehrkanaligen DMA-Betrieb
DE3785855T2 (de) Vermittlungsanordnung und -verfahren.
DE2913288A1 (de) Multiprozessorsystem
DE2751106C2 (de)
CH634671A5 (de) Kanalspeicher-adapter.
DE2406195C3 (de) Modulare programmgesteuerte Vermittlungsanlage
EP0184706B1 (de) Schnittstelleneinrichtung
DE2838142C2 (de) Rechnergesteuertes Fernmeldevermittlungssystem mit Zeitvielfach-Durchschaltung
EP0141247B1 (de) Multiprozessor-Rechner, insbesondere Multiprozessor-Zentralsteuereinheit eines Fernsprech-Vermittlungssystems
EP0291789B1 (de) Schaltungsanordnung für zentralgesteuerte Zeitmultiplex-Fernmeldevermittlungsanlagen, insbesondere PCM-Fernsprechvermittlungsanlagen, mit an ein Koppelfeld angeschlossenen Anschlussgruppen
DE60016430T2 (de) Verfahren und system zur übertragung einer meldungskette für datenbanken
DE2327669A1 (de) Schaltungsanordnung fuer den datenaustausch zwischen zentralen und peripheren einrichtungen
DE2252282A1 (de) Verfahren zur folgesteuerung von datenuebertragungsleitungen
DE3850903T2 (de) Steuerungssystem mit zwei Mikroprozessoren.
CH656276A5 (de) Verfahren und schaltungsanordnung zum uebertragen von datensignalen zwischen datenvermittlungseinrichtungen einer datenvermittlungsanlage.
EP0187945B1 (de) Verfahren zur Zeichenübertragung zwischen einer Datenverarbeitungsanlage und einer Fernsprechvermittlungsanlage, insbesondere einer Fernsprechnebenstellenanlage
DE19501674A1 (de) Verwaltung der Datenübertragung zwischen Prozessoren
EP0562353A2 (de) Verfahren zum Übertragen hochpriorer Programme und Daten in einem Kommunikationssystem
DE2503825C2 (de)
DE69022050T2 (de) Hybrides datenkommunikationssystem.
DE2900380C2 (de)

Legal Events

Date Code Title Description
8332 No legal effect for de
8370 Indication related to discontinuation of the patent is to be deleted
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: BULL HN INFORMATION SYSTEMS INC., BILLERICA, MASS.

8339 Ceased/non-payment of the annual fee