DE3688763T2 - Mehrfachport-Übertragungsadaptiervorrichtung. - Google Patents

Mehrfachport-Übertragungsadaptiervorrichtung.

Info

Publication number
DE3688763T2
DE3688763T2 DE86107018T DE3688763T DE3688763T2 DE 3688763 T2 DE3688763 T2 DE 3688763T2 DE 86107018 T DE86107018 T DE 86107018T DE 3688763 T DE3688763 T DE 3688763T DE 3688763 T2 DE3688763 T2 DE 3688763T2
Authority
DE
Germany
Prior art keywords
interrupt
dma
data
processor
channel
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
DE86107018T
Other languages
English (en)
Other versions
DE3688763D1 (de
Inventor
Gilbert Stevens Burrus
Ronald Julius Cooper
Michael Raymond Marr
Mario Anthony Marsico
John Carmine Pescatore
Paul Douglas Sullivan
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE3688763D1 publication Critical patent/DE3688763D1/de
Application granted granted Critical
Publication of DE3688763T2 publication Critical patent/DE3688763T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/32Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
    • G06F13/34Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer with priority control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)
  • Computer And Data Communications (AREA)
  • Bus Control (AREA)

Description

    Bereich der Erfindung
  • Diese Erfindung betrifft allgemein Datenfernverarbeitungs-Steuereinheiten und -adapter und im besonderen Entwürfe für solche Steuereinheiten und Adapter auf der Grundlage von Mikrorechnern, bei denen verschiedene Datenfernverarbeitungs-Protokolle verwendet und Datenübertragungsmodi so angepaßt werden können, daß sie den optimalen Service eines gegebenen Datenfernverarbeitungs- Anschlusses gewährleisten.
  • Stand der Technik
  • Der bekannte Stand der Technik zeigt eine große Vielzahl von Datenfernverarbeitungs-Steuereinheiten. Die Datenfernverarbeitungs-Steuereinheiten IBM Modell 3705 und IBM Modell 3710 sind Beispiele dafür. Solche Geräte können eine große Zahl von angeschlossenen Datenfernverarbeitungs-Anschlüssen mit einem oder mehreren Standardprotokollen bedienen, aber sie benutzen für die Datenübertragung einheitlich über die zu bedienenden Anschlüsse hinweg entweder einen Unterbrechungsmodus oder einen Abtastmodus oder einen DMA-Modus. Obwohl diese Anordnung für einheitlich konfigurierte oder für Hochgeschwindigkeitsnetzwerke am effektivsten ist, eignet sie sich aber nicht für jede Anwendung auf ein Netzwerk, in dem verschiedene Arten von Datenstationen und Datenfernverarbeitungs-Protokollen verwendet werden, da der Servicemodus, der für eine gegebene Datenstation oder ein gegebenes Protokoll sehr effektiv sein kann, vollständig uneffektiv oder wenigstens weniger erwünscht sein kann, wenn er für den Service einer anderen Art von Kommunikationsverbindung benutzt wird, für die er weniger optimal geeignet ist.
  • Es gibt auch eine große Vielzahl von Protokollumsetzern oder Adaptern, die an der Schnittstelle zwischen der Datenfernverarbeitungs-Steuereinheit und einem angeschlossenen Datenfernverarbeitungs-Anschluß oder einer angeschlossenen Datenfernverarbeitungs-Leitung verwendet werden. Diese sind normalerweise für eine reine Übersetzungsfunktion von einem Protokoll und Format in ein anderes bestimmt, um das Kommunikationssystem für das spezielle Datenstationsprotokoll und die jeweilige Datenfernverarbeitungs-Technologie so weit transparent zu machen wie der Benutzer betroffen ist. Solche Geräte arbeiten gut, aber sie besitzen eine begrenzte Anwendbarkeit, da sie für eine einzelne Umsetzungsfunktion entworfen wurden, gewöhnlich zwischen einem Protokoll und einem anderen, und nicht die Aspekte berücksichtigen, wie eine Datenfernverarbeitungs-Steuereinheit auf vorteilhafte Art und Weise auf den Hauptspeicher zugreift, um für solche Übertragungen den Aufwand zu verringern und die Geschwindigkeit zu erhöhen.
  • Die unter der Nummer A3 079 698 veröffentlichte Europäische Patentanmeldung beschreibt eine Erfindung, die ein Datenverarbeitungssystem mit einer Vorrichtung zur Steuerung von Programmunterbrechungen betrifft. Das System enthält eine Reihe von Ein-/ Ausgabeeinheiten, die mit Hilfe eines Busses mit einer Zentraleinheit verbunden sind, die wenigstens eine Kategorie von Vektorunterbrechungen akzeptieren kann, die von den E/A-Einheiten angefordert werden, sowie eine Kategorie von Nichtvektorunterbrechungen. Das dargestellte System wird durch Mittel charakterisiert, die wenigstens eine der Unterbrechungskategorien in eine Vielzahl von Prioritätsniveaus unterteilen kann, wobei die Mittel durch eine Unterbrechung mit einem vorher festgelegten Niveau eingestellt werden, um Unterbrechungen mit einem niedrigeren Prioritätsniveau zu maskieren. Aber diese Erfindung muß angepaßt werden, damit sie in einer Umgebung benutzt werden kann, die mehrere Protokolle erfordert.
  • Der in Computer Design, Vol. 24, Nummer 2, im Februar 1985 auf den Seiten 151 bis 158 von J. MAGILL veröffentlichte Artikel "Controller IC contents with multiple protocols" zeigt ein Ein- Chip-VLSI-Bauelement, die Universelle Synchrone Zweikanal-Datenfernverarbeitungs-Steuereinheit (DUSCC) SEN 68562. Dieses Bauelement ermöglicht die Behandlung mehrerer Protokolle und stellt Schnittstellen zu fortgeschrittenen DMA-Steuereinheiten zur Verfügung und unterstützt Unterbrechungsstrukturen wie Vektoren, serielle Prioritätschaltungen, Prioritäten und Maskierung, unter Benutzung eines Minimums an externer Hardware. Das interne Unterbrechungssteuerregister bestimmt die relativen Unterbrechungsprioritäten eines Datenübertragungskanals bezüglich eines anderen. Die Verwendung eines zweiten Kanals ist eine Verbesserung, erhöht aber die Geschwindigkeit der Datenübertragungen nicht.
  • EP-A-0173809, das entsprechend den Anmeldungen 54(3) und (4) EPC zitiert wird, beschreibt eine Vorrichtung, in der Busleitungen entweder als Unterbrechungsleitungen oder als DMA-Anforderungsleitungen verwendet werden können, in Abhängigkeit davon, ob ein Unterbrechungszyklus von einem Steuerrechner realisiert wird oder nicht.
  • Gegenstand der Erfindung
  • Angesichts der erwähnten bekannten Schwierigkeiten mit vorhandenen Datenfernverarbeitungs-Steuereinheiten und -Adaptern ist es ein Gegenstand dieser Erfindung, eine verbesserte, hochflexible und konfigurierbare Mehrfachanschluß-Datenfernverarbeitungs- Adapter-Vorrichtung zur Verfügung zu stellen, die bei verschiedenen Datenfernverarbeitungs-Modi oder Protokollen auf mehreren Leitungen übertragen kann und die auch auf den Speicher in der Steuereinheit auf verschiedene Arten zugreifen kann, die am vorteilhaftesten an die Anforderungen eines gegebenen Anschlusses oder Protokolls angepaßt sein können.
  • Ein weiterer Gegenstand dieser Erfindung besteht darin, einen verbesserten Datenfernverarbeitungs-Adapter zur Verfügung zu stellen, dessen Datenserviceeigenschaften programmierbar angepaßt oder konfiguriert werden können, damit eine ideale Übereinstimmung zwischen den Erfordernissen des Anschlusses und dem Modus der verwendeten Datenübertragungsoperation bereitgestellt werden kann.
  • Zusammenfassung
  • Die genannten und noch weitere, nicht speziell aufgezählte Ziele der Erfindung werden erfüllt, indem eine Vorrichtung so wie beansprucht zur Verfügung gestellt wird. Bei dieser Anordnung ist der Modus des Datenservices an jedem Anschluß programmierbar einstellbar, damit entweder eine Hochgeschwindigkeitsblocks- oder Zeichen-Übertragung vom DMA-Typ vorliegt, bei der die Daten am Anschluß mit hoher Geschwindigkeit und minimalem Eingriff des Prozessors zum oder vom Speicher der Steuereinheit übertragen werden, oder ein Zeichenunterbrechungs-Servicemodus, in dem der Prozessor jedes Zeichen individuell empfangen und prüfen kann, bevor es zum Speicher gesendet oder von dort empfangen wird. Verschiedene Datenfernverarbeitungs-Protokolle und verschiedene Datenübertragungsmodi werden in einer einzelnen Anordnung untergebracht, indem ein spezieller Entscheidungs- und Verarbeitungsprozessor für den durch direkte Anforderungen und Unterbrechungen gesteuerten Speicherzugriff zur Verfügung gestellt wird, der einzelne Serviceanforderungen für einen Ein- und Ausgabeübertragungskanal bedient. Dieser Mechanismus wählt die konkurrierende Serviceanforderung mit der höchsten Priorität aus und konfiguriert den Steuerungsübertragungsweg entsprechend den im Benutzerprogramm gespeicherten Befehlen für den an einem gegebenen Anschluß zur Verfügung zu stellenden Servicemodus, um die optimale Art des Datenübertragungsservices zur Verfügung zu stellen, die für das Protokoll und die Anforderungen eines bestimmten, erfolgreich konkurrierenden Anschlusses geeignet ist. Die kombinierte Funktion einer Serviceanforderungsoperation und einer Auswahl des Datenübertragungsmodus wird in einem speziellen Entscheidungs- und Speicherzugriffs-Datenübertragungs-Prozessor ausgeführt, der seinen eigenen internen RAM-Speicher enthält, der über Steuerungs- und Datenbusse und einen Adreßbus mit einem RAM-Hauptspeicher und einem Mikroprozessor verbunden ist, der irgendwelche notwendigen Protokollumsetzungen, die Aufnahme von Daten in Warteschlangen oder Blockierungen und andere übertragungsbezogene Dienste ausführt, die nicht speziell mit dem Datenübertragungsmechanismus und der Entscheidung zwischen konkurrierenden Serviceanforderungen zusammenhängen. Die Bereitstellung des gesonderten Entscheidungs- und DMA/Unterbrechungsmodus- Prozessors entfernt die hier einbezogenen Aufgaben aus dem Mikroprozessor und dem Speicher des Hauptsystems und erlaubt das Festlegen oder die Pipeline-Verarbeitung von Steuerungsaufgaben, um die Verwendung des Hauptmikroprozessors bei der Daten- oder Protokollumsetzung und der Nachrichtenblockierung oder bei Warteschlangenoperationen zu maximieren, um den Gesamtdurchsatz zu erhöhen, indem seine Einbeziehung in die zugehörigen "Verwaltungsarbeiten" der Steuerung der verschiedenen Anschlußschnittstellen und ihrer Anforderungen beseitigt wird.
  • Bei dieser Anordnung behandelt die DMA/Unterbrechungssteuereinheit Serviceanforderungen für bis zu 20 Kanäle, wobei für jeden von 10 Anschlüssen ein Empfangs- und ein Sendekanal vorhanden ist. Die Treiber/Empfänger, die an jeder Anschlußschnittstelle verwendet werden, sind universelle synchrone/asynchrone Standard-Sender-Empfänger-Module (USART), die zwei Anschlüsse von vier Kanälen behandeln können. Die DMA/Unterbrechungssteuer- und entscheidungseinheit besitzt ein 24-Bit-Adreßregister und einen gesonderten 16-Bit-Bytezähler für jeden der 20 Kanäle, die in ihrem eigenen lokal vorhandenen RAM-Speicher realisiert sind. Jedes dieser Register bildet einen Teil eines Steuerblockes, in dem die Konfigurations- und Steuerparameter programmierbar gespeichert werden können, die zur Art des Services, der Geschwindigkeit und anderen zu jedem Kanal an einem einzelnen Anschluß gehörenden Funktionen gehören. Die Arbeit jedes Kanals geschieht deshalb unter der Steuerung der DMA/Unterbrechungssteuer- und -entscheidungseinheit, die Datenübertragungsoperationen von den Anschlüssen zum Hauptspeicher des Adapterprozessorsystems entweder im direkten Speicherzugriffsmodus (DMA) oder im unterbrechungsgesteuerten Zeichenservicemodus (Unterbrechungsmodus) behandeln kann. Der Unterschied ist ganz deutlich, weil im DMA-Modus die Übertragung von Zeichen zwischen den empfangenden und sendenden USARTs (UNIVERSAL SYNCHRONOUS/ASYNCHRO- NOUS RECEIVER TRANSMITTER) an der Anschlußschnittstelle und dem Hauptspeichersystem des Systems unter der Steuerung der DMA/Unterbrechungs-Entscheidungs- und Steuereinheit geschieht. Beim Zeichenservicemodus wird jedoch die Übertragung von Zeichen zwischen den USARTs und dem RAM-Hauptspeicher vom Hauptprozessor selbst gesteuert, der dann beispielsweise den korrekten Empfang der Information Zeichen für Zeichen prüfen kann. Die einmalige Einrichtung des gesonderten DMA/Unterbrechungs-Entscheidungs- und Steuerungsprozessors mit einem eigenen internen RAM-Speicher ist eine Eigenschaft, die den Entwurf von anderen Mehrfach-Anschlußsteuereinheiten und Adaptern unterscheidet, soweit die vorliegende Erfindung betroffen ist.
  • Kurze Beschreibung der Zeichnungen
  • Fig. 1 umfaßt Fig. 1A und 1B und veranschaulicht den architektonischen Aufbau der Komponenten und der Verbindungssteuer- und datenwege in einer bevorzugten Ausführungsform der Erfindung.
  • Fig. 2 veranschaulicht gewisse Steuerregister der Maschinenlogik, Taktgeber und die Adreß- und Datenvergleichsregister, die ein Teil der Vorrichtung in Fig. 1 sind und die über die Signalleitungen und Systembusse so wie dargestellt mit den Elementen in Fig. 1 verbunden sind.
  • Fig. 3 veranschaulicht in größerer Ausführlichkeit die Architektur der Anschluß-Schnittstellensteuereinheit und des USARTs für einen gegebenen Anschluß 1 in Fig. 1 und ist ein Teil von Fig. 1, der mit ihr über die verschiedenen Signalleitungen und Systembusse so wie dargestellt zu verbinden ist.
  • Fig. 4 umfaßt Fig. 4A und 4B und veranschaulicht den architektonischen Gesamtaufbau der verbesserten Adapter- und Schnittstellensteuereinheit der bevorzugten Ausführungsform der Erfindung mit einer Modifikation zum Anschluß an eine abtastfreie Datenfernverarbeitungs-Steuereinheit, um eine kombinierte Gesamtkonfiguration einer Datenfernverarbeitungs-Steuereinheit und einer programmierbaren Protokolladapter-Anschlußsteuereinheit einer bevorzugten Ausführungsform der Erfindung zu schaffen.
  • Fig. 5 veranschaulicht den Aufbau und die Datenfluß-Verbindungen für die Anschluß-Schnittstellensteuereinheit und die USART- Steuerungen, wie sie für die Anschlüsse von Fig. 1 benutzt werden, insbesondere für die Elemente von Fig. 1, die in dem durch Fig. 5 gekennzeichneten gestrichelten Kästchen enthalten sind.
  • Fig. 6 umfaßt Fig. 6A, 6B, 6C und 6D und zeigt ein ausführliches Logikschema und den architektonischen Datenfluß und ein Steuerungsverbindungsschema für die DMA/Unterbrechungssteuer- und - entscheidungseinheit, die als Element 3 in Fig. 1 enthalten ist.
  • Fig. 7 enthält Fig. 7A und 7B und stellt einen Teil von Fig. 6 detailliert dar, insbesondere den Teil von Fig. 6, der innerhalb des Blockes mit der Nummer 30 als dessen bevorzugte Ausführungsform enthalten ist.
  • Fig. 8 zeigt einen Teil des Schemas von Fig. 6, insbesondere den Teil, der in Fig. 6 als Steuereinheitsblock 33 für den internen Zyklus gekennzeichnet ist.
  • Fig. 9 zeigt die interne RAM-Aufteilung und RAM-Konfiguration in einer bevorzugten Ausführungsform der DMA/Unterbrechungssteuer- und Entscheidungseinheit in Fig. 6.
  • Fig. 10 veranschaulicht den Teil von Fig. 6 ausführlicher, der innerhalb von Block 34 enthalten ist und die DMA-Zyklussteuereinheit kennzeichnet.
  • Fig. 11 veranschaulicht den Block 35 von Fig. 6 ausführlicher, der als DMA-Unterbrechungssteuereinheit gekennzeichnet ist.
  • Fig. 12 veranschaulicht den Teil von Fig. 6 in den Blöcken 36 und 37 ausführlicher, der die Zeichenunterbrechungs-Steuer- und Entscheidungseinheit kennzeichnet.
  • Fig. 13 ist ein ausführlicher Steuer- und Datenflußpfad für den Block der Anschluß-Schnittstellensteuereinheit 10 in Fig. 5.
  • Fig. 14 ist ein vergrößertes Detail der Schnittstellen-Steuerlogik 15 aus Fig. 4.
  • Ausführliche Spezifikation
  • Der vorliegende Entwurfist ein System auf der Basis von Mikroprozessoren, ihm kann eine Vielzahl von programmgesteuerten Ausgaben zugeordnet werden, beispielsweise die Protokollumsetzung, die Blockung von Daten, die Fehlerbehandlung und Wiederherstellungs- und Systemübertragungs-Steuerfunktionen, um nur einige auf zuzählen. Die zu beschreibende Gesamtkonfiguration ist eine programmierbar anpaßbare Protokolladapter- und Anschlußschnittstellen-Datenfernverarbeitungs-Steuereinheit. Sie enthält zusätzlich zu ihrer eigenen neuen Architektur und dem Datenfluß und der Steuerung eine neue DMA/Unterbrechungssteuer- und -entscheidungseinheit, die hier gesondert beschrieben wird. Zusätzlich kann die Protokolladapter- und Schnittstellen-Datenfernverarbeitungs-Steuereinheit mit einer Schnittstellen-Steuerlogik ausgestattet sein, um als Datenfernverarbeitungs-Adapter für den Anschluß an eine abtastfreie Datenfernverarbeitungs-Steuereinheit zu wirken und einen Gesamtprotokolladapter zu bilden, der Buszugriff zum abtastfreien Datenfernverarbeitungs-Adapter hat, zur Konzentration von Nachrichten auf einer Hochgeschwindigkeitsverbindung von der abtastfreien Steuereinheit zu einem Zentralrechner. Diese neue Anordnung und ihre Architektur wird auch beschrieben.
  • Überblick über den Programmierbaren einstellbaren Protokolladapter und die Anschlußschnittstellen-Datenfernverarbeitungs-Steuereinheit
  • Es wird eine Schnittstelle für DMA- und Unterbrechungsanforderungen an zehn Anschlüssen zur Verfügung gestellt, wobei jeder einen Sende- und einen Empfangs-Kanal enthält, für insgesamt zwanzig Kanäle mit gesonderter Entscheidung für das Senden oder Empfangen von DMA- und Unterbrechungsanforderungen für jeden vorhandenen Anschluß. Zusätzlich ist für die gleichen zehn Anschlüsse und zwanzig Kanäle eine DMA/Unterbrechungssteuerung entweder im Empfangs- oder im Sendemodus vorhanden. Der Modus des Zeichenservices kann für jeden Kanal auch programmgesteuert ausgewählt werden. Er arbeitet über direkten Speicherzugriff, wobei das empfangene oder gesendete Zeichen vom Empfangspuffer eines empfangenden/sendenden USARTs zu einem oder von einem RAM- Speicher transportiert wird, der in dem programmierbar einstellbaren Protokolladapter und der Anschlußschnittstellen-Datenfernverarbeitungs-Steuereinheit vorhanden ist, ohne Unterbrechung des dort vorhandenen Prozessors. Alternativ dazu kann das empfangene oder gesendete Zeichen über DMA transportiert werden, wobei der Prozessor eine Unterbrechung erhält. Als weitere Alternative wird nicht die DMA benutzt, sondern dem Prozessor wird eine Unterbrechung vorgelegt, die eine Unterbrechungsserviceroutine aufruft, um den Prozessor zu veranlassen, die gegebene empfangende oder sendende USART mit einer auf den Speicher abgebildeten E/A-Operation für das Lesen oder Schreiben des USART-Puffers zu bedienen.
  • Die von der Architektur und dem Entwurf der Steuereinheit zur Verfügung gestellte Flexibilität erlaubt es einem Programmierer, die Operation für jeden Datenfernverarbeitungs-Kanal zu individualisieren, um maximale Hardwareleistung zu erreichen. Wenn ein gegebener Anschluß in einem Start/Stopp-Protokollmodus betrieben werden soll, kann der Programmierer die Wahl so treffen, daß der gegebene Anschluß im Empfangsmodus arbeitet, in dem der Prozessor der Steuereinheit beim Empfang jedes Zeichens unterbrochen wird. Der Sendekanal für den gleichen Anschluß könnte aber auch so programmiert werden, daß er im DMA-Modus und mit einem Start-/Stopp-Protokoll arbeitet. Dies erlaubt es dem Programm im Prozessor, jedes empfangene Zeichen auf Gültigkeit, Korrektheit, Parität usw. zu prüfen, aber bereits korrekt ausgegebene Nachrichten direkt zu übertragen, ohne den Prozessor zu unterbrechen, bis die vollständige Nachricht gesendet wurde.
  • Als weiteres Beispiel könnte ein Anschluß mit SDLC-Protokoll sowohl für den Empfangs- als auch für den Sendekanal im DMA-Modus bedient werden, da in diesem Protokoll für beide Kanäle Blockübertragungen mit höherer Geschwindigkeit benutzt werden.
  • Ganz allgemein können die Datenübertragungsmittel, d. h. das Protokoll und die Speicherzugriffsmethode, für jeden beliebigen der zwanzig Kanäle durch programmierte Befehle ausgewählt werden, und zwar entweder der speicherbezogene E/A-Zeichenservice-Unterbrechungsmodus oder der Modus des direkten Speicherzugriffs. Wenn der direkte Speicherzugriff ausgewählt wird, kann das Programm auch auswählen, ob für jedes über DMA übertragene Zeichen dem Prozessor eine Unterbrechung vorgelegt werden sollte oder nicht. Die DMA-Operationen werden durch die DMA-Unterbrechungssteuer- und -entscheidungseinheit gesteuert, welche die einzelne Übertragung eines Zeichens von einem USART (universeller synchroner/asynchroner Sender-Empfänger) zum RAM-Speicher oder vom Speicher zum USART steuert.
  • Setzt man voraus, daß der DMA-Modus für die Arbeit aufgerufen wird, dann aktiviert der USART eine DMA-Empfangsanforderung, wenn der USART ein Zeichen in seinem Empfangspuffer empfängt, und wenn der Sendepuffer leer ist, dann aktiviert er eine Sende- DMA-Anforderung. DMA-Anforderungen werden von der DMA/Unterbrechungssteuer- und -entscheidungseinheit (DIAC) entweder als DMA- Anforderungen, als Unterbrechungsanforderungen oder sowohl als DMA- als auch als Unterbrechungsanforderungen behandelt, in Abhängigkeit davon, wie das Programm die DMA/Unterbrechungssteuer- und -entscheidungseinheit (DIAC) konfiguriert.
  • Demzufolge kann jeder Empfangs- und Sendekanal eines Datenfernverarbeitungs-Anschlusses für seine Arbeit so konfiguriert werden, daß er DMA-Datenübertragungen oder Übertragungen im Unterbrechungsmodus benutzt, um dem Prozessor zu signalisieren, ein weiteres Zeichen oder einen Zeichenblock durch die Ausführung von speicherbezogenen E/A-Befehlen zu übertragen.
  • Wenn ein gegebener Kanal im DMA-Modus arbeitet, wird das Programm so konfiguriert, daß eine Startadresse und ein Bytezähler für diesen Kanal gesetzt werden. Die DIAC teilt dann dem Prozessor über eine Unterbrechung mit, wenn der Empfangs- oder der Sendebytezähler null wird. Bei Empfang des Zeichens für das Dateiende in einer Nachricht teilt ein in Vorwärtsrichtung vorhandener USART dem Prozessor über eine Unterbrechung mit, daß das Senden oder Empfangen einer Nachricht abgeschlossen ist. Wenn ein ganzer Datenblock von einem rückwärts gelegenen USART zusammengesetzt wurde, wird die DMA-Steuereinheit vom Prozessor in Kenntnis gesetzt und startet die Vorwärtsübertragung von einer durch den Prozessor festgelegten Pufferadresse im RAM-Speicher. Die DMA-Unterbrechungssteuer- und -entscheidungseinheit wird durch MM-E/A-Operationen vom Prozessor gesetzt.
  • Gesamtdatenfluß Initialisierung
  • Wir wenden uns nun Fig. 1 zu; die folgende Beschreibung bezieht sich auf eine Steuereinheit, die Serviceanforderungen von bis zu zwanzig Kanälen behandelt, die zehn Empfangs- und zehn Sendekanäle enthalten. Fig. 1 wird zur Veranschaulichung verwendet. Die DIAC-Steuereinheit 3 behandelt Serviceanforderungen von jedem der bis zu zwanzig Sende-/Empfangskanäle, die in Fig. 1 durch den Anschluß 1 dargestellt werden, in dem sich die EIA-Treiber- Empfänger-Schaltkreise befinden. Für jeden der zehn Anschlüsse 1, die durch die Treiber-Empfänger-Paare mit der Bezeichnung Anschluß 1, Anschluß 2 usw. identifiziert werden, gibt es einen Empfangskanal und einen Sendekanal. Eine Anzahl von USARTs (universelle synchrone/asynchrone Empfänger-Sender) ist mit den EIA- Treiber-Empfängern an den Anschlüssen 1 verbunden. Jeder USART 2 behandelt zwei Anschlüsse 1 und kann deshalb zwei Treiber-Empfänger-Paare behandeln. Die DIAC-Steuereinheit 3 besitzt für jeden der zwanzig Kanäle ein 24-Bit-Adreßregister und ein 16- Bit-Bytezählerregister, wie nachstehend ausführlicher beschrieben wird. Die Register sind im lokalen RAM-Speicher realisiert, der im DIAC-Modul 3 enthalten ist, wie auch noch beschrieben wird.
  • Jeder Kanal kann vom Steuerprogramm entweder im DMA-Modus oder im Zeichenservice-Unterbrechungsmodus betrieben werden. Im DMA- Modus geschieht die Übertragung eines Zeichens zwischen einem gegebenen USART 2 und dem Haupt-RAM 6 unter der Steuerung der DIAC-Steuereinheit 3. Im Zeichenservicemodus wird die Übertragung eines Zeichens zwischen einem USART und dem Haupt-RAM 6 vom Prozessor 5 gesteuert. Der Prozessor 5 kann irgendeine beliebige Form haben, aber in der bevorzugten Ausführungsform wurde ein Motorola MC 68000 Mikroprozessor verwendet, und er wird hier zu Demonstrationszwecken benutzt.
  • Die Initialisierung beginnt mit einer Systemrücksetzfunktion, nach der das im Mikroprozessor 5 laufende Steuerprogramm zur Initialisierung jeder Kanaloperation benutzt wird, entweder für den DMA-Modus oder für den Zeichenservice-Unterbrechungsmodus, entsprechend der Wahl des Programmierers. Für jeden Kanal, der für die Arbeit im DMA-Modus zu konfigurieren ist, muß ein Steuerprogramm erstellt werden, welches das Adreßregister des Kanals auf eine Startadresse setzt und dem Bytezählerregister dieses Kanals einen Bytezähler zur Verfügung stellt. Wie oben angemerkt, sind diese Register ein Teil des lokalen RAM-Speichers der DIAC-Steuereinheit 3, der in der DIAC 3 enthalten ist und später ausführlicher beschrieben wird.
  • Wenn das Bytezählerregister eines gegebenen Kanals bei der Empfangs- oder Sendeoperation auf 0 herabgezählt wurde, wird von der DIAC-Steuereinheit 3 eine Unterbrechung der Ebene 4 erzeugt, wie von der Unterbrechungsleitung der Ebene 4 in Fig. 1 gezeigt wird. Der Prozessor 5 führt dann den Unterbrechungsbestätigungs- Zyklus der Ebene 4 aus und veranlaßt die Unterbrechungssteuerlogik 4, das Unterbrechungsbestätigungs-Signal der Ebene 4 zu senden. Zur gleichen Zeit bringt die DIAC-Steuereinheit 3 in Beantwortung des Unterbrechungsbestätigungs-Signals die eindeutige Vektornummer auf den Systemdatenbus, um den speziellen Kanal zu identifizieren, dessen Bytezähler auf 0 herabgezählt wurde. Dies erlaubt es dem Steuerprogramm im Mikroprozessor 5, auf der Grundlage der von der DIAC-Steuereinheit 3 erzeugten Vektornummer einen speziellen Kanal zu bedienen. Da die Vektornummern Startadressen im Haupt-RAM 6 erzeugen, kann eine Vielzahl von vorher programmierten Steuer- und Serviceroutinen wahlweise für irgendeinen bestimmten Kanaloperationstyp an jedem Anschluß zur Verfügung gestellt werden. Dies erleichtert die Protokollumsetzung sehr stark, beispielsweise von Start/Stopp oder SDLC auf bisync (binär synchron) oder Start/Stopp und umgekehrt, durch Auswahl der geeigneten Verarbeitungsroutine für Ein- oder Ausgabezeichen.
  • Kanäle, die im Zeichenservice-Unterbrechungsmodus arbeiten, bewirken, daß jedesmal, wenn der USART 2 einen Zeichenservice für diesen Kanal fordert, von der DIAC-Steuereinheit 3 eine Unterbrechung der Ebene 3 erzeugt wird. Der Prozessor 5 führt dann den Unterbrechungsbestätigungs-Zyklus der Ebene 3 aus und veranlaßt, daß die Unterbrechungssteuerlogik 4 das Unterbrechungsbestätigungs-Signal der Ebene 3 sendet. Als Antwort hierauf bringt die DIAC-Steuereinheit 3 eine eindeutige Vektornummer auf den Systemdatenbus, um den jeweiligen Kanal zu identifizieren, für den dann der Zeichenservice gefordert wird. Dies erlaubt es dem Steuerprogramm im Prozessor 5, auf der Grundlage der von der DIAC-Steuereinheit 3 erzeugten Vektornummer diesen Kanal zu bedienen.
  • Datenfluß einer Empfangsoperation
  • Wie in Fig. 1 dargestellt, existiert für jeden Anschluß ein EIA- Empfänger- und Treiberpaar. Diese Schaltungen empfangen Datensignale entweder von Modems oder von direkt angeschlossenen Datenstationen, wobei Start/Stopp-Datenfernverarbeitungs-Leitungen oder dergl. benutzt werden, und konvertieren die Daten von den EIA-RS232C-Spannungspegeln auf TTL-Spannungspegel. Der USART-Modul 2 empfängt die seriellen Daten und sammelt 8 Datenbits in einem Byte. Der USART 2 aktiviert dann seine Anforderungsleitung für den gegebenen Empfangskanal, um der DIAC-Steuereinheit 3 anzuzeigen, daß ein Datenbyte fertig ist. Die DIAC-Steuereinheit 3 wurde bereits früher unter der Voraussetzung programmiert, daß sie eine Anforderung als DMA-Anforderung behandelt, oder sie wurde vorher so programmiert daß sie die Anforderung als Zeichenservice-Unterbrechungsanforderung behandelt.
  • Wir wollen zuerst den Fall betrachten, daß die DIAC-Steuereinheit 3 so programmiert wurde, daß sie die ankommende Anforderung eines bestimmten Kanals als DMA-Anforderung behandelt. Die in der DIAC-Steuereinheit 3 enthaltene Entscheidungslogik enthält Anforderungen für bis zu zwanzig Kanäle. Wenn irgendein Kanal eine aktive Anforderung für eine DMA-Datenübertragung aufweist, aktiviert die DIAC das DMA-Busanforderungssignal an den Prozessor 5. Prozessor 5 aktiviert das DMA-Bewilligungssignal, und die DIAC 3 antwortet mit dem DMA-Busbewilligungsbestätigungs-Signal, das anzeigt, daß die DIAC der Busmaster ist, und veranlaßt, daß der Mikroprozessor 5 keine Daten auf die Systembusse bringt. Das von der DIAC gelieferte DMA-Busbewilligungsbestätigungs-Signal wird bereitgestellt, wenn die Strobeimpulse vom vorhergehenden Maschinenzyklus während einer aktiven Busbewilligung inaktiv werden.
  • Wenn eine gegebene USART 2 eine Empfangsanforderung besitzt, die für die Anforderung mit der höchsten Priorität gehalten wird, dann wird die DIAC so konfiguriert, daß sie die Empfangsdatenübertragung der USART 2 in folgender Weise behandelt. Die DIAC- Steuereinheit lädt zuerst die DMA-Adresse aus ihrem lokal vorhandenen RAM-Speicher. Dies ist die Adresse des Startplatzes im Haupt-RAM 6, wo die Empfangszeichendaten der USART 2 zu speichern sind. Die DIAC aktiviert den Systemadreßbus mit dieser Adresse. Die DIAC stellt die Byteauswahllogik 9 so ein, daß der 1 Byte breite Datenbus der USART 1 mit dem hohen Bytebus des Systems verbunden wird, wenn die Adresse geradzahlig ist, oder mit dem Niedrigbyte-Adreßbus des Systems, wenn die Adresse ungerade ist. Da die Daten vom USART 2 zum Haupt-RAM 6 zu transportieren sind, wird die Richtungssteuerung für die Byteauswahl- Logikschaltung 9 so gesetzt, daß Daten vom USART 2 zum RAM 6 gesteuert werden. Die DIAC führt dann am USART 2 eine Leseoperation aus, die bewirkt, daß der USART den Inhalt seines Puffers als das empfangene Datenbyte auf den Datenbus steuert. Die DIAC führt dann einen Schreibzyklus in den Haupt-RAM 6 aus, der bewirkt, daß die Daten vom USART 2 an der ausgewählten, früher zur Verfügung gestellten Adresse in den RAM 6 geschrieben werden. Die DIAC erhöht dann die in ihrem internen RAM gespeicherte DMA- Adresse und verringert den in ihr für diesen Kanal gespeicherten Bytezähler. Diese Adreß- und Bytezählerfelder befinden sich im internen RAM der DIAC in einem Bereich, der als Steuerblock einem gegebenen Kanal zugeordnet ist, wie später noch ausführlicher diskutiert wird. Wenn die Übertragung der Daten vom USART 2 in den RAM 6 abgeschlossen ist, deaktiviert die DIAC-Steuereinheit das DMA-Busbewilligungsbestätigungs-Signal an den Mikroprozessor 5. Die Entscheidungslogik im DIAC setzt die Überwachung der Anforderungsleitungen von den USARTs 2 fort.
  • Es ist zu beachten, daß vorausgesetzt wurde, daß der behandelte USART die wartende Anforderung mit der höchsten Priorität hatte. Die Mittel zur Entscheidung der Priorität werden auch nachstehend ausführlicher beschrieben, sie beruht aber, kurz gesagt, auf dem physischen Platz des Anschlusses an die DIAC-Steuereinheit 3, die höchste Priorität wird der Anforderungsleitung mit einer vorhandenen Anforderung zugeordnet, die die höchste Nummer aufweist.
  • Der nächste betrachtete Fall ist der, bei dem die DIAC so programmiert wurde, daß sie die Empfangsanforderung des USARTs für den Kanal als Zeichenservice-Unterbrechungsanforderung behandelt. Die in der DIAC 3 vorhandene Unterbrechungsentscheidungslogik empfängt Anforderungen für bis zu 20 Kanäle, die als Unterbrechungsanforderungen programmiert sein könnten. Wenn irgendein Kanal eine aktive Unterbrechungsanforderung besitzt, aktiviert die DIAC das Unterbrechungsanforderungs-Signal der Ebene 3 an die Unterbrechungssteuerlogik 4. Wenn die Unterbrechungsanforderung der Ebene 3 die Unterbrechung des Prozessors 5 mit der höchsten aktiven Ebene ist, führt der Mikroprozessor 5 einen Unterbrechungsbestätigungs-Zyklus für eine Unterbrechung der Ebene 3 durch. Das Unterbrechungsbestätigungs-Signal der Ebene 3 wird von der Unterbrechungssteuerlogik 4 abgeschickt und der DIAC 3 zur Verfügung gestellt. Die DIAC bringt dann eine Vektornummer auf den Systemdatenbus, die eine direkte Anzeige des unterbrechenden Kanals mit der höchsten Priorität ist. Das im Prozessor 5 arbeitende Steuerprogramm wird dann auf den Startplatz im Haupt-RAM 6, im EPROM 8 oder im EEPROM 7 gerichtet, wo sich der Code für die Behandlung der Zeichenserviceanforderung für diesen USART befindet. Der Prozessor 5 führt dann eine Leseoperation am USART 2 aus und liest dann das Datenbyte aus dem Puffer des USARTs. Prozessor 5 speichert dann dieses Datenbyte im Haupt-RAM 6.
  • Nachdem der Datenfluß einer Empfangsoperation kurz beschrieben wurde, wird jetzt der Datenfluß während einer Sendeoperation angegeben.
  • Datenfluß einer Sendeoperation
  • Wenn der Sendepuffer einer gegebenen USART 2 leer ist, aktiviert die USART 2 ihre Anforderungsleitung für eine Sendeoperation des betroffenen Kanals. Die DIAC 3 wurde früher unter der Voraussetzung programmiert, daß sie eine Anforderung als DMA-Anforderung behandelt, oder sie konnte so programmiert sein, daß sie die Anforderung als Zeichenservice-Unterbrechungsanforderung behandelt.
  • Betrachten wir zuerst den Fall, daß die DIAC so programmiert war, daß die Kanalanforderung als DMA-Problem zu behandeln ist; die in der DIAC vorhandene Entscheidungslogik empfängt Anforderungen für bis zu zwanzig Kanäle und wählt den Kanal mit der höchsten Priorität aus. Wenn irgendein Kanal eine aktive Anforderung für eine DMA-Übertragung enthält, aktiviert die DIAC das DMA-Busanforderungssignal an den -Prozessor 5. Der Prozessor 5 aktiviert das DMA-Busbewilligungssignal zurück zur DIAC 3, und die DIAC 3 antwortet mit dem DMA-Busbewilligungsbestätigungs-Signal, wenn die Strobeimpulsperioden des vorhergehenden Maschinenzyklusses von Prozessor 5 inaktiv werden. Die Aktivierung des DMA-Busbewilligungsbestätigungs-Signals durch die DIAC zeigt, daß die DIAC Busmaster ist und bewirkt, daß der Prozessor 5 keine Daten auf die Systembusse bringen kann.
  • Wenn der Fall vorliegt, daß die Sendeanforderung der gegebenen USART 2 dann die höchste wartende Priorität besitzt, wird die DIAC zur Behandlung der Sendedaten-Datenfernverarbeitungs-Operation dieser USART konfiguriert. Die DIAC-Steuereinheit lädt die DMA-Adresse aus ihrem lokalen RAM-Speicher und aktiviert den Systemadreßbus mit dieser Adresse. Die DMA-Adresse ist die Adresse im Haupt-RAM 6, wohin die übertragenen Zeichen oder Daten der USART 2 zu laden sind. Die DIAC-Steuereinheit aktiviert auch die Byteauswahllogik 9, so daß der gegebene, ein Byte breite Datenbus der USART 2 mit dem hohen Byte des Systems verbunden wird, wenn die vorhandene Adresse geradzahlig ist, oder mit dem niedrigen Byte des Systems, wenn die Adresse ungerade ist. Da die Daten vom Haupt-RAM 6 zum USART 2 transportiert werden, wird die Richtungssteuerung für die Byteauswahllogik 9 so gesetzt, daß Daten vom RAM 6 zum USART 2 gesteuert werden. Die DIAC führt dann eine Leseoperation zum Haupt-RAM 6 aus, die bewirkt, daß er den Datenbus des USARTs 2 mit dem einen Datenbyte für das Senden steuert. Die DIAC führt dann einen Schreibzyklus zum USART 2 aus, der bewirkt, daß Daten vom RAM 6 in den Puffer des USARTs 2 geschrieben werden. Die DIAC erhöht dann die DMA-Adresse und verringert den DMA-Bytezähler für diesen Kanal und speichert für diesen Kanal die Steuerinformation in den Steuerblock, der sich im internen RAM der DIAC befindet. Wenn die Übertragung der Daten vom Haupt-RAM 6 in den USART 2 abgeschlossen ist, deaktiviert die DIAC das DMA-Busbewilligungsbestätigungs-Signal an den Prozessor 5. Die in der DIAC enthaltene Entscheidungslogik setzt die Überwachung der Anforderungsleitungen von den anderen USARTs fort, einschließlich der eben bedienten.
  • Als nächstes wird der Fall betrachtet, bei dem die DIAC so programmiert wurde, daß sie die gegebene Sendekanalanforderung des USARTs 2 als Zeichenservice-Unterbrechungsanforderung behandelt. Die Unterbrechungsentscheidungslogik in der DIAC empfängt Anforderungen für bis zu 20 Kanäle, die als Unterbrechungsanforderungen programmiert sein könnten. Wenn irgendein Kanal eine aktive Unterbrechungsanforderung besitzt, aktiviert die DIAC 3 das Unterbrechungsanforderungs-Signal der Ebene 3 an die Unterbrechungssteuerlogik 4. Wenn die Unterbrechungsanforderung der Ebene 3 die Unterbrechung des Prozessors 5 mit der höchsten aktiven Ebene wird, führt der Prozessor 5 einen Unterbrechungsbestätigungs-Zyklus für die Ebene 3 durch. Das Unterbrechungsbestätigungs-Signal der Ebene 3 wird dann von der Unterbrechungssteuerlogik 4 aktiviert und der DIAC 3 zur Verfügung gestellt. Die DIAC-Steuereinheit bringt eine Vektornummer auf den Systemdatenbus, um eine direkte Anzeige des unterbrechenden Kanals mit der höchsten Priorität zu geben. Das im Mikroprozessor 5 arbeitende Steuerprogramm geht dann direkt zu dem Speicherplatz, der durch die Adresse auf dem Bus definiert ist, um auf den Code zuzugreifen, der die Zeichenserviceanforderung des USARTs 2 behandelt. Der Mikroprozessor 5 führt eine Leseoperation im Haupt-RAM 6 aus, um das Datenbyte vom RAM zu erhalten. Der Prozessor 5 führt dann eine Schreiboperation aus, um das Datenbyte in den Sendepuffer des USARTs 2 zu übertragen.
  • Die vorangegangene Beschreibung ist die breiteste und allgemeinste des gesamten Datenflusses und der Architektur eines programmierbar anpaßbaren Protokolladapters und einer Anschlußschnittstellen-Datenfernverarbeitungs-Steuereinheit, die in Fig. 1 als eine bevorzugte Ausführungsform der Erfindung dargestellt ist. Es ist zu beobachten, daß die speziellen, an jedem Anschluß verwendeten Datenfernverarbeitungs-Konventionen oder Protokolle davon bestimmt werden, auf welche Coderoutine im Speicher (zum Beispiel im EPROM 8) als Antwort auf eine Anforderung von einem gegebenen Anschluß zugegriffen wird. Die Auswahl wird von dem auf dem Mikroprozessor 5 laufenden Steuerprogramm getroffen, auf der Grundlage von Auswahlen, die der Systemprogrammierer in einem Menu oder anderen geeigneten Darstellungsmitteln getroffen hat, als die Konfiguration für jeden Kanal festgelegt wurde. Die Umsetzung von einem Protokoll auf ein anderes wird in ähnlicher Weise behandelt, indem vom EPROM 8 oder vom RAM 6 aus die geeigneten Codefolgen zur Erzeugung von Kopfsätzen, zur Konvertierung von Byteformaten, zur Erzeugung von SDLC-Steuer- und Kennzeichenfeldern, von binären synchronen Steuerzeichen und Start/- Stopp-Steuerzeichen und zu ihrer Übergabe in der richtigen Reihenfolge, um das Senden oder Empfangen an irgendeinem Anschluß entsprechend dem für diesen Anschluß vorgeschriebenen Protokoll zu realisieren, aufgerufen werden. Deshalb gewährt die architektonische Struktur der Erfindung große Freiheiten für die Flexibilität und die Auswahl bei der Zuordnung einer speziellen Art des Zeichenservices und des Anschlußprotokolls für jeden Kanal. Wie früher angezeigt wurde, kann dies für den Sende- und Empfangskanal an jedem Anschluß unterschiedlich sein. Dies ergibt aus den angeführten Gründen sogar einen noch größeren Flexibilitätsgrad, und deshalb dient die Architektur tatsächlich als Protokolladapter und als Anschlußschnittstellen-Datenfernverarbeitungs-Steuereinheit mit universeller Anpaßbarkeit.
  • Wir wenden uns jetzt Fig. 2 zu; es werden zusätzliche Datenflußsteuerungen dargestellt, die einen Teil des in Fig. 1 dargestellten Systems bilden, was durch die Verbindungen dorthin gezeigt wird. Es wird ein Maschinenprüfregister 11 bereitgestellt, mit Bitfehlerleitungen 1 bis 6, die von verschiedenen Quellen kommen, wie noch beschrieben wird. Das Maschinenprüfregister 11 realisiert eine Maschinenprüfunterbrechung der Ebene 7 oder eine Busfehlerunterbrechung für die Unterbrechungssteuerlogik 4 in Fig. 1. Es wird ein Unterbrechungsbestätigungs-Signal der Ebene 7 von der Unterbrechungssteuerlogik 4 in Fig. 1 zurückgegeben. Das Maschinenprüfregister 11 ist mit dem Systemdatenbus verbunden und arbeitet so, wie nachstehend in der fortgesetzten Beschreibung von Fig. 2 beschrieben wird.
  • Das Adreß-/Datenvergleichs- und Funktionsregister 12 ist auch mit dem Systemdatenbus verbunden und erzeugt eine Adreß-/Datenvergleichsunterbrechung auf der Ebene 6, zur Übergabe an die Unterbrechungssteuerlogik 4 in Fig. 1, und erhält von dort ein Unterbrechungsbestätigungs-Signal der Ebene 6. Es werden Adreß- und Datenvergleichsfunktionen, die vom Programmierer zum Testen von Programmen gesetzt werden können, festgestellt und über diese Unterbrechungsebenen angezeigt.
  • Ein programmierbarer Zeitgeber 13 ist an den Systemdatenbus angeschlossen und kann mit Zeitsteuerungsparametern versehen werden, um periodisch eine Zeitunterbrechung der Ebene 4 zu erzeugen. Der programmierbare Zeitgeber enthält einen Zähler, der mit einem Startwert geladen wird und der durch einen internen Zähler mit einer festen Geschwindigkeit herabgezählt wird. Eine Vergleichsschaltung stellt fest, wenn der Zähler auf 0 herabgezählt wurde und liefert eine periodische Unterbrechung der Ebene 4, auf der Grundlage des Startwertes und der Geschwindigkeit des Abwärtszählens, wie für einen Fachmann ersichtlich ist. Ein fester Viertelsekunden-Zeitgeber 14 ist nützlich, um eine Viertelsekunden-Zeitüberlaufunterbrechung der Ebene 1 auszulösen. Der programmierbare Zeitgeber wird verwendet, um den Zustandswechsel an einem gegebenen Kanal als Maß der Leitungsgeschwindigkeit zu messen, wie später ausführlicher beschrieben wird.
  • Das Maschinenprüfregister 11, die Adreß- und Datenvergleichs- Funktionsregister 12 sowie der programmierbare Zeitgeber und die Zeitgeber 13 und 14 mit festem Inkrement sind jeweils allgemein verwendete Elemente in einem auf einem Mikroprozessor beruhenden System und werden aus diesem Grund hier nicht ausführlich beschrieben.
  • Beschreibung der grundlegenden Baugruppen
  • Der programmierbare anpaßbare Protokolladapter und die Anschlußschnittstellen-Datenfernverarbeitungs-Steuereinheit wurden so entworfen, daß immer, wenn möglich, kommerziell verfügbare Bauelemente benutzt werden. Die jetzt anzugebende Aufstellung ist keine Begrenzung, da viele Lieferanten ähnliche äquivalente Bauelemente liefern. In der in den Zeichnungen dargestellten bevorzugten Ausführungsform ist der Mikroprozessor 5 ein Mikroprozessor MC68000 der Motorola Corporation. Die Systemsteuerlogik und die Unterbrechungssteuerlogik 4 sind in einer VLSI-Schaltkreistechnologie hoher Dichte realisiert, ihre Funktionen werden später in größerer Ausführlichkeit beschrieben.
  • Die USARTs 2 sind Advanced Micro Device's 8530 Datenfernverarbeitungs-Steuereinheitsmodule mit zwei Anschlüssen und sind, wie ihr Name andeutet, jeweils imstande, zwei EIA-Treiber-Empfänger- Anschlüsse zu behandeln.
  • Der kommerziell verfügbare, elektrisch löschbare und programmierbare Speicher (EEPROM) ist ein 8K·8 - Modul.
  • Der elektrisch programmierbare Festwertspeicher (EPROM) wird von einem Lieferanten geliefert und ist ein programmierbarer, mit ultraviolettem Licht löschbarer 32K·8 - Festwertspeicher.
  • Der dynamische RAM 6 besteht aus 64K·1 - und 64K·4 - Modulen, die von einem Lieferanten geliefert werden. Die EIA-RS232C- Schnittstellentreiber und -empfänger sind bei einer Vielzahl von Lieferanten verfügbar, und EIA-RS422-Schnittstellentreiber und - empfänger können auch verwendet werden.
  • Die aufgezählten Baugruppen bilden einen Datenpfad von der Ausstattung eines Endbenutzers, die über eine direkte Verbindung oder Modems an die EIA-Treiber-Empfänger-Anschlüsse 1 eines Zentralrechners anschließbar ist, der über einen anderen der Anschlüsse 1 angeschlossen werden kann.
  • Wie früher angemerkt wurde, können die Datenfernverarbeitungs- Anschlüsse 1 für die Arbeit als SDLC-Protokoll, ASCII-Protokoll, binäres synchrones Protokoll oder Start/Stopp-Protokoll oder irgendein anderes geeignetes Protokoll konfiguriert werden und bis zu einer Maximalgeschwindigkeit von 19.200 Bits/s arbeiten. Interne Taktung, Modemtaktung oder datengesteuerte Taktung werden alle von den bereitgestellten Modulen unterstützt. Die maximale Leitungsgeschwindigkeit wird von der Möglichkeit der EIA-Treiber-Empfänger 1 bestimmt.
  • Eine ebene Schaltkarte wird verwendet, um den Mikroprozessor, die Steuerlogik, die USARTs und die dynamischen RAM-Module sowie den EEPROM auf zunehmen. Die UV-löschbaren EPROMs sind in einem steckbaren Kundeneinschubmodul enthalten, wie nachstehend ausführlicher beschrieben wird. Obwohl in den Abbildungen nicht dargestellt, ist auf der Schaltkarte auch eine Stromversorgung zur Bereitstellung der geeigneten Logikpegelspannungen und der Lese- und Schreibspannungen vorhanden. Die Architektur des Systems stellt Funktionen zur Verwaltung der Systemverfügbarkeit, zur Fehlererkennung, zur Fehlerisolation und zur Fehlerbehebung zur Verfügung, die jetzt diskutiert werden.
  • Mikroprozessor 5
  • Der Motorola MC 68000 Mikroprozessor ist ein Prozessor, der mit 8 Megahertz getaktet wird und einen bidirektionalen 16-Bit-Datenbus und einen 23-Bit-Adreßbus besitzt. Obere und untere Datenstrobe-Impulssignale liefern einen Speicheradreßbereich von mehr als 16 Megabytes. Der Mikroprozessor 5 stellt acht 32-Bit- Datenregister, sieben 32-Bit-Adreßregister, einen Benutzer-Stapelzeiger, einen Supervisor-Stapelzeiger und einen 32-Bit-Programmzähler sowie ein 16-Bit-Statusregister zur Verfügung. Die Datenregister werden für Datenoperationen mit 8-Bit-Bytes sowie 16 und 32 Bit breiten Worten benutzt. Die Adreßregister und die Systemstapelzeiger können als Software-Stapelzeiger und Basisadreßregister benutzt werden. Die Register können sowohl für Wort- als auch für Langwort-Adreßoperationen benutzt werden. Alle Register können als Indexregister benutzt werden. Vollständige Beschreibungen des MC 68000 können vom Lieferanten erhalten werden.
  • Systemsteuerlogik
  • Die Systemsteuerlogik führt alle die Funktionen aus, die erforderlich sind, um die Subsysteme und Module so miteinander zu verbinden, daß Schnittstellen zum Mikroprozessor 5, zu den EPROM-Modulen 8, dem EPROM-Modul 7 und den dynamischen RAM-Modulen 6 sowie den USARTs 2 entstehen.
  • Die Systemlogik umfaßt die folgenden Funktionen: Takterzeugung für die in der Logik benutzten Takte B und C, für einen Prozessorzyklustakt und einen USART-Takt. Ein Viertelsekundenzeitgeber ist ebenfalls enthalten, der ungefähr alle 1/4 Sekunden nach seiner Freigabe eine Unterbrechung für die Mikroprozessor-Unterbrechungssteuerlogik zur Verfügung stellt. Wenn die Zeitgeberunterbrechungen nicht innerhalb von zwei Sekunden bestätigt werden, wird eine Maschinenprüfunterbrechung der Ebene 7 gesetzt. Die Programmausführung des Mikroprozessors benutzt den ¼-Sekunden-Zeitgeber als Anzeige für eine abgelaufene Zeit mit einer Periode von 284,4 Millisekunden und einer Auflösung von 8,68 Mikrosekunden.
  • Es ist auch ein programmierbarer Zeitgeber vorhanden, der so programmiert werden kann, daß er der Unterbrechungssteuerlogik eine Unterbrechung zu einem ausgewählten Zeitpunkt, nachdem das Programm den Zeitgeber freigegeben hat, zur Verfügung stellt. Das im Mikroprozessor 5 laufende Programm kann 16 Bits von diesem Zeitgeber lesen.
  • Die Systeminitialisierungslogik besteht aus Steuerlogikschaltungen zum Rücksetzen und Zwischenspeichern für die Systeminitialisierung, für Maschine nicht bereit, für den EPROM-Basissicherheitstest und für die Schnittstellenfreigabe. Die Unterbrechungssteuerlogik in Block 4 enthält einen Codierer für die Unterbrechungsebene, einen Unterbrechungsbestätigungs-Decodierer und einen Zwischenspeicher für die Unterbrechungsverzögerung und besitzt wie die Systeminitialisierungslogik, der programmierbare Zeitgeber und der ¼-Sekunden-Zeitgeber sowie die Takterzeugungsschaltungen einen Standardentwurf, der bei einer Vielzahl von Quellen verfügbar ist. Sie besitzen alle einen Standardentwurf und sind demzufolge nicht ausführlich dargestellt; für Fachleute ist es offensichtlich, wie solche Elemente zu benutzen sind.
  • Ein Busfehler- und Maschinenprüfregister wird auch in der Systemsteuerlogik verwendet, ebenso wie die folgenden Bestandteile: Paritätserzeugung und -prüfung, der DIAC-Chip 3 selbst, die Schnittstellenlogik des dynamischen RAMs, die EPROM-Schnittstellenlogik und die EEPROM-Schnittstellenlogik, speicherbezogene E/A-Steuerungen, Schnittstellensteuerungen für die USART 2, die Steuerlogik für die Servicekonsole und Adreß- und Datenvergleichsregister. Von diesen sind die Paritätserzeugung und -prüfung, die Speicher-Schnittstellenlogik, die MM-E/A-Steuerungen und die USART-Schnittstellensteuerungen und die Logik der Servicekonsole alle Standard und im wesentlichen bestimmt durch die Logikpegel und Pinbezeichnungen der kommerziell verfügbaren Module, die für die Konstruktion des Systems benutzt wurden. Der DIAC-Chip ist jedoch einmalig und wird nachstehend in großer Ausführlichkeit diskutiert. Die Funktionen der Adreß- und Datenvergleichsregister (so wie in Fig. 2 mit dem Maschinenprüfregister 11 dargestellt), das Adreß- und Datenvergleichsregister 12, der programmierbare Zeitgeber 13 und der ¼-Sekunden-Zeitgeber 14 werden jetzt alle nachstehend diskutiert.
  • Die Basistakte für das System in der Takterzeugungslogik (in der Zeichnung nicht dargestellt) besteht aus einem quarzgesteuerten Oszillator mit 14,7456 Megahertz, der durch Zähler auf eine Frequenz von 7,3728 Megahertz geteilt wird, um den Basistakt für den Motorola 68000 Mikroprozessor 5 zur Verfügung zu stellen. Die Steuertakte des Logiksystems werden mit der gleichen Frequenz und mit einer weiter geteilten Frequenz von 3,6864 Megahertz erzeugt, um die Logiktakte C und B zur Verfügung zu stellen, die zur Steuerung der Arbeit der Zwischenspeicher innerhalb der Systemlogik benutzt werden. Die Takte C und B überlappen sich nicht und werden benutzt, um die verschiedenen Zwischenspeicher in den Logikschaltungen zu takten. Der B-Takt wird für Zwischenspeicherregister benutzt, die normalerweise mit der Taktung der Ausgangssignale der Logik verbunden sind. Der C-Takt speichert die Eingaben in Schieberegister-Zwischenspeichers und ist im allgemeinen mit der Taktung der Eingabebytesignale in die Logikschaltungen verbunden. Der Takt von 3,6864 Megahertz wird auch für die Taktung der USARTs erzeugt.
  • Systemzeitgeber: der ¼-Sekunden-Zeitgeber wird durch einen MM-E/A-Befehl vom Mikroprozessor 5 freigegeben oder gesperrt. Wenn der Zeitgeber abgelaufen ist, erzeugt er eine Unterbrechung der Ebene 1 der Unterbrechungssteuerlogik 4. Die Anfangszeitunterbrechung in allen nachfolgenden Unterbrechungen ist relativ zu dem Zeitpunkt, zu dem der Zeitgeber das erste Mal freigegeben wurde. Die Anfangsunterbrechung geschieht ungefähr eine ¼ Sekunde nach der Freigabe des Zeitgebers, und nachfolgende Unterbrechungen treten alle ¼ Sekunden auf, so lange wie der Zeitgeber freigegeben ist. Das System ist so entworfen, daß eine Maschinenprüfunterbrechung der Ebene 7 in den Block der Unterbrechungssteuerlogik 4 gesendet wird, wenn eine Unterbrechung nicht innerhalb von zwei Sekunden bestätigt wird. Ein Mikroprozessorsteuerprogramm ist dazu bestimmt, die Bits 5 bis 20 eines Zählers in der Zeitgeberschaltung mit einer MM-E/A-Schaltung zu lesen. Die Bits 5 bis 20 dieses Zählers werden als Bits 0 bis 15 auf einen Systemdatenbus gebracht, wenn der Zeitgeber mit dem MM-E/A-Befehl gelesen wird.
  • In Fig. 2 ist der ¼-Sekunden-Zeitgeber 14 nur als Logikblock dargestellt, da die Einzelheiten eines oszillatorgesteuerten Zählers und die notwendigen Schnittstellen-Zwischenspeicher und Steuerungen zum Lesen eines MM-E/A-Befehls und zum Plazieren der Daten auf dem Datenbus alle normaler Stand der Technik sind.
  • Der programmierbare Zeitgeber 13 besitzt einen ähnlichen Entwurf, mit der Ausnahme, daß das Zählmodul durch ein im Mikroprozessor 5 laufendes Steuerprogramm programmierbar gesetzt werden kann. Das Steuerprogramm kann 16 Bits dieses Zeitgebers lesen, indem ein MM-E/A-Befehl zur Verfügung gestellt und veranlaßt wird, daß 16 Bits vom programmierbaren Zeitgeber 13 auf den Systemdatenbus gebracht werden.
  • Nachstehend folgt eine kurze Beschreibung der Initialisierung des Gesamtsystems. Es wird auf verschiedene Zwischenspeicher und Register verwiesen, und es wird für Fachleute verständlich sein, daß sie Standardentwurf aufweisen und daß es unnötig ist, sie in der Zeichnung darzustellen, da ihre Funktion und ihr Anschluß an die verschiedenen Komponenten vollständig Standard ist und gut beherrscht wird.
  • Die Initialisierung des Systems beginnt mit einem Kaltstart, der den Mikroprozessor 5 veranlaßt, auf einem festen Speicherplatz im dynamischen RAM 6 oder den EPROM 8 zuzugreifen, um das Basissicherheits-Testprogramm auszuführen und das System durch eine schrittweise Folge in Betrieb zu nehmen. Zuerst tritt ein Rücksetzen des Systems auf, und danach werden alle DMA-Anforderungen, Unterbrechungsanforderungen, Registerinhalte und USARTs gesperrt, bis das Programm jede Schnittstelle freigegeben hat.
  • Der Kaltstart beginnt den Prozeß. Die Steuerlogik wird ein Rücksetz- und Haltsignal für den Mikroprozessor 5, das ihn für wenigstens 100 Millisekunden anhält, aktivieren. Die Stromversorgung selbst liefert das POR-Signal (Kaltstartsignal) wenigstens 100 Millisekunden lang. Die Steuerlogik aktiviert während des Kaltstarts ein Systemrücksetzsignal für wenigstens 100 Millisekunden.
  • Das steckbare, früher angesprochene EPROM-Kundeneinschubmodul kann nicht eingeschoben werden, wenn die Stromversorgung eingeschaltet ist, und falls nicht, wird die Maschine in ihrem Rücksetzzustand gehalten, bis ein solches Einschubmodul eingeschoben wird, wie später beschrieben wird. Wenn das Einschubmodul bei eingeschalteter Stromversorgung entfernt wird, wird die Maschine zurückgesetzt und bleibt zurückgesetzt, bis das Einschubmodul wieder eingesetzt wird.
  • Das Kaltstartsignal der Stromversorgung liefert auch ein kurzes Rücksetzsignal an die Steuerlogik des dynamischen RAMs, das es dem RAM erlaubt, Refresh-Operationen zu starten, während das längere Kaltstartsignal noch aktiv ist. Das kurze Rücksetzsignal ist wenigstens 500 Nanosekunden lang und wird im Fachgebiet als DRAM-Steuerrücksetzen bezeichnet. Die Quelle des Rücksetzzwischenspeichers für den RAM 6 ist die Systemsteuerlogik, die ein Setzen des Zwischenspeichers realisiert, wenn ein Kaltstart auftritt. Er wird zurückgesetzt, wenn die Maschine "nicht bereit" ist, was vom Basissicherheits-Testprogramm gesetzt wird.
  • Bit 7 des Statusregisters, das im Maschinenprüfregister-Block 11 in Fig. 2 vorhanden ist, zeigt diese Bedingung an. Es ist auch ein Zwischenspeicher "Maschine nicht bereit" implementiert (aber er ist nicht dargestellt), um anzuzeigen, daß die Maschine nicht betriebsbereit ist. Die Verwendung dieses Zwischenspeichers zeigt an, daß sich die Maschine im Basissicherheits-Testmodus befindet. Er wird durch das Kaltstartsignal, das Systemrücksetz- MM-E/A-Signal oder durch einen speziellen MM-E/A-Einschaltbefehl eingeschaltet. Das Basissicherheits-Testprogramm setzt den Zwischenspeicher mit einem MM-E/A-Befehl als letzte Operation im Basissicherheitstest zurück.
  • Ein Zwischenspeicher für den EPROM-Basissicherheitstest ist in der Logik ebenfalls implementiert und nicht dargestellt. Dieser Zwischenspeicher wird durch das Kaltstartsignal gesetzt und durch MM-E/A zum Rücksetzen des Systems oder durch den MM-E/A- Befehl zum Einschalten des EPROM-Basissicherheitstest-Zwischenspeichers zurückgesetzt. Er kann auch mit einem MM-E/A-Befehl zurückgesetzt werden. Das im Mikroprozessor 5 laufende Basissicherheits-Testprogramm setzt diesen Zwischenspeicher zurück, wenn die Funktion des EPROM-Einschubmoduls geprüft wurde.
  • Es ist auch ein Systeminitialisierungs-Zwischenspeicher implementiert und in der Zeichnung nicht dargestellt. Immer wenn die Maschine durch das Kaltstartsignal von der Stromversorgung oder durch einen MM-E/A vom Prozessor 5 zurückgesetzt wird, fängt der Prozessor an, auf seine erste Adresse, beginnend bei hex 000000, zuzugreifen. Es gibt eine zugeordnete Startadresse, die hex 000000 entspricht; das ist der Speicherplatz im EPROM 8, an dem der erste Befehl für die Systeminitialisierung vorhanden ist.
  • Die in Block 4 in Fig. 1 dargestellte Unterbrechungssteuerlogik implementiert einen Unterbrechungsverzögerungs-Zwischenspeicher, der nicht speziell dargestellt ist. Immer wenn ein Busfehler auftritt, wird dieser Zwischenspeicher durch ein Signal gesetzt, das vom Maschinenprüfregister 11 in Fig. 2 geliefert wird, und so wie dargestellt mit der DIAC-Steuereinheit 3, mit dem Mikroprozessor 5 und als Unterbrechung der Ebene 7 mit der Unterbrechungssteuerlogik 4 verbunden wird. Das Setzen des Unterbrechungsverzögerungs-Zwischenspeichers blockiert das Auftreten von Unterbrechungen am Mikroprozessor 5 nachdem ein Busfehler festgestellt wurde. Das ist notwendig, weil der Motorola 68000 die Verarbeitung von Busfehlern auf einer Unterbrechungsebene durchführt, die aktiv war, als der Fehler auftrat. Ohne die Unterbrechungsverzögerungs-Zwischenspeicherfunktion könnte eine Unterbrechung einer höheren Ebene die Verarbeitung der Busfehlerausnahme unterbrechen. Wenn die Unterbrechung behandelt wurde, wird der Unterbrechungsverzögerungs-Zwischenspeicher durch den Ausnahmeverarbeitungscode im Motorola 68000 zurückgesetzt, bevor die Übergabe von irgendwelchen neuen Unterbrechungen erlaubt ist.
  • Es sind die folgenden Unterbrechungsebenen vorhanden: Busfehler - der Busfehler ist die Unterbrechung der höchsten Ebene und wird am Mikroprozessor 5 anstelle einer Datenübertragungsbestätigung aktiviert, wenn ein Paritätsfehler oder ein Zeitüberlauf einer Datenübertragungsbestätigung auftritt, während der Prozessor der Busmaster ist. Im Busfehler-Maschinenprüfregister 11 wird ein Fehlerbit gesetzt, und das Fehlersignal wird an der DIAC 3 so wie dargestellt aktiviert. Dieses Fehlersignal trennt die DMA MM-E/A-Schnittstelle vom Block 3, so daß dem Mikroprozessor 5 eine Busanforderung erst übergeben wird, wenn das Busfehler-Maschinenprüfregister 11 auf 0 zurückgesetzt wird. Die Fehlerausnahmeverarbeitung im Mikroprozessor tritt demzufolge bei jeder Ebene auf, die aktiv war, wenn der Busfehler auftrat. Die Steuerlogik 4 blockiert das Auftreten irgendwelcher Unterbrechungen nach dem Auftreten eines Busfehlers, und der Unterbrechungsverzögerungs-Zwischenspeicher muß wieder durch die im Mikroprozessor laufende Ausnahmeverarbeitungsroutine zurückgesetzt werden, bevor irgendwelche neuen Unterbrechungen zugelassen werden.
  • Verschiedene Unterbrechungen treten auf Ebene 7 auf. Eine Maschinenprüfunterbrechung wird gesetzt, wenn die DIAC 3 Busmaster ist und ein Paritätsfehler festgestellt wird oder wenn eine Datenübertragungsbestätigungs-Zeitüberschreitung oder eine DMA- Zeitüberschreitung auftritt. Ebenso wird verfahren, wenn-entweder der Mikroprozessor 5 oder die DIAC 3 Busmaster ist und ein Fehler "Zeitgeberunterbrechung nicht zurückgesetzt" entweder vom programmierbaren Zeitgeber oder vom ¼-Sekunden-Zeitgeber 13 und 14 auftritt. Jede dieser Bedingungen bewirkt, daß eine Maschinenprüfunterbrechung im Maschinenprüfregister 11 gesetzt wird. Solche Unterbrechungen werden durch eine MM-E/A-Unterbrechung vom Prozessor 5 zurückgesetzt, indem der Wert 0 in das Maschinenprüfregister 11 geschrieben wird. Die DMA- und die MM- E/A-Schnittstelle wird gesperrt, bis das Maschinenprüfregister 11 zurückgesetzt wird, wie früher angemerkt wurde. Eine Testwerkzeugunterbrechung wird auch der Ebene 7 zugeordnet, falls der Benutzer extern eine Testfunktion zur Verfügung stellen möchte.
  • Die Unterbrechung der Ebene 6 ist die Adreßvergleichs-Datenvergleichs-Unterbrechung aus dem Adreß- und Datenvergleichs-Funktionsregister 12. Sie bewirkt, daß ein Autovektor zur Verarbeitung im Mikroprozessor 5 erzeugt wird, bei beliebiger Ebene, die zu der Zeit vorhanden war, als die Unterbrechung auftrat.
  • Die Unterbrechung der Ebene 5 ist die Datenzustandswechsel-Unterbrechung, und es werden von der Logik der Anschluß-Schnittstellensteuereinheit 10 eindeutige Vektornummern zur Verfügung gestellt, wie nachstehend für jeden Anschluß beschrieben wird.
  • Die Unterbrechung der Ebene 4 ist eine programmierbare Zeitgeberunterbrechung, die einen Autovektor für die Behandlung der Zeitgeberfunktionen setzt, und sie besitzt eine höhere Priorität als die DIAC-Unterbrechungen. Die Zeitgeberunterbrechung wird von der Hardware während des Zeitgeberunterbrechungsbestätigungs-Zyklusses zurückgesetzt. DIAC 3-Unterbrechungen treten auch auf Ebene 4 auf. Für jeden der 20 Kanäle, die unterbrechen können, werden von der DIAC eindeutige Vektornummern zur Verfügung gestellt. Die DIAC unterbricht immer, wenn der Bytezähler für einen der 20 Kanäle auf 0 herabgezählt wurde und Service angefordert wird.
  • Der USART 2-Zeichenserviceunterbrechung wird eine Unterbrechung der Ebene 3 zugeordnet. Für jeden der 20 Kanäle werden von der DIAC eindeutige Vektornummern zur Verfügung gestellt. Während eines Unterbrechungsbestätigungs-Zyklusses der Ebene 3 stellt die DIAC 3 eine eindeutige Vektornummer zur Verfügung, die dem Kanal der höchsten Priorität mit einer aktiven Unterbrechungsanforderung entspricht. Dies lenkt den Prozessor 5 zur geeigneten Serviceroutine, wo er die geeignete Datenübertragung für den speziellen Kanal realisieren kann.
  • Den USARTs 2 und den Anschluß-Schnittstellenregistern in der Anschlußsteuereinheit 10 wird eine Unterbrechung der Ebene 2 zugeordnet. Eine vom USART 2 oder von der Anschlußsteuereinheit 10 bereitgestellte Vektornummer zeigt die Ursache der Unterbrechung sowie den Anschluß an, dem Aufmerksamkeit gewidmet wird.
  • Eine Unterbrechung der Ebene 1 ist der ¼-Sekunden-Zeitgeber, der dem Mikroprozessor einen Autovektor zur Verfügung stellt, um das Rücksetzen des ¼-Sekunden-Zeitgebers und die Unterbrechungsbestätigung zu behandeln.
  • Die Ebene 0 ist die Anwendungstaskebene bei normalem Hintergrundzustand.
  • Die Erzeugung der Unterbrechungsvektornummer ist beliebig und dem Fachmann gut bekannt. Vektornummern sind Speicheradressen für den Mikroprozessor, die als Startadresse für die Behandlung jeder Unterbrechungsart entsprechend der ihm gelieferten Vektornummer zu benutzen sind.
  • Wir kehren nun zu Fig. 2 zurück; es wird das Busfehler-Maschinenprüfregister 11 etwas ausführlicher diskutiert.
  • Der dargestellte Entwurf realisiert dieses Register 11 in einer 1-Byte-Konfiguration. Immer wenn ein Fehler festgestellt wird, wird im Register 11 ein Bit gesetzt. Wenn der Mikroprozessor 5 der Busmaster ist und sich herausstellt, daß der Fehler ein Paritätsfehler oder ein Datenübertragungsbestätigungs-Zeitüberschreitungsfehler ist, dann wird dem Mikroprozessor 5 ein Busfehler übergeben, wie durch das Busfehler-Ausgangssignal von Register 11 dargestellt wird. Wenn eine DIAC 3 der Busmaster ist und der Fehler ist ein Paritätsfehler, ein Datenübertragungsbestätigungs-Zeitüberschreitungsfehler oder ein DMA-Zeitüberschreitungsfehler, dann wird eine Busprüfunterbrechung der Ebene 7 gesetzt, so wie durch das Ausgangssignal von Block 11 gezeigt wird. Wenn entweder der Mikroprozessor 5 oder die DIAC 3 der Busmaster ist und ein Fehler "Zeitgeberunterbrechung nicht zurückgesetzt" auftritt, wird auch eine Maschinenprüfunterbrechung der Ebene 7 gesetzt. Es werden Fehlersignale zur DIAC aktiviert, wenn die DIAC 3 Busmaster ist und ein Fehler festgestellt wird. Die DMA-Funktionen werden in diesem Entwurf immer blockiert, wenn ein Busfehler-Maschinenprüfregister-Bit gesetzt ist. Das im Mikroprozessor 5 arbeitende Fehlerbehebungsprogramm muß die Bits 0 bis 3 im Maschinenprüfregister 11 durch Schreiben aller Nullen zurücksetzen, bevor eine DMA-Operation ablaufen kann und bevor die Unterbrechungen der DIAC 3, des USARTs 2 oder die Zeichenservice- und Anschlußregister-Unterbrechungen akzeptiert werden können. Immer wenn ein Busfehler festgestellt wurde, wird ein Unterbrechungsverzögerungs-Zwischenspeicher gesetzt, der von einem MM-E/A-Befehl vom Prozessor 5 zurückgesetzt werden muß, bevor dem Mikroprozessor 5 wieder Unterbrechungen übergeben werden können. Durch Benutzung einer Byteleseoperation können die Bits 0 bis 5 von Register 11 gelesen werden, oder durch Benutzung einer Byteschreiboperation kann ein MM-E/A-Schreiben ausgeführt werden. Die Bits für das Busfehler-Maschinenprüfregister 11 sind wie folgt definiert.
  • Bit 0 ist das Paritätsfehlerbit. Die Paritätsprüfung bei Leseoperationen aus dem RAM 6 oder dem EPROM 8 setzen dieses Bit. Bit 4 wird gesetzt, um anzuzeigen, ob der Prozessor 5 oder die DIAC-Steuereinheit 3 der Busmaster war, als dieser Fehler auftrat.
  • Bit 1 zeigt einen Zugriffsfehler oder einen Datenübertragungsbestätigungs-Zeitüberschreitungsfehler an. Dieses Bit wird bei einer Vielzahl von Bedingungen gesetzt, beispielsweise bei einem versuchten Schreiben der DIAC 3 in einen geschützten Bereich des RAMs 6, bei einem Schreiben des Mikroprozessors 5 in den geschützten RAM-Bereich 6, während er sich nicht in seinem Supervisor-Datenmodus befindet, bei einem Zugriff der DIAC-Steuereinheit 3 zum MM-E/A-Bereich, bei einem Zugriff der DIAC oder des Mikroprozessors auf das EEPROM, während er sich nicht im Supervisor-Datenmodus befindet, bei einem Zugriff des Prozessors 5 zum MM-E/A-Bereich, während er sich nicht im Supervisor-Datenmodus befindet, bei einem Lesen oder Schreiben in einen nichtimplementierten Speicherbereich, beim Schreiben in den EPROM oder einer nicht innerhalb von 8 Mikrosekunden zum Mikroprozessor 5 zurückgegebenen Datenübertragungsbestätigung oder wenn die DIAC 3 Busmaster wird und ihre Strobeimpulse nicht innerhalb von 8 Mikrosekunden deaktiviert. Irgendeine dieser Bedingungen setzt das Bit 1 und bewirken die Initiierung der Fehlerbehandlungsroutine für diese Ebene.
  • Bit 2 ist das Bit für "Zeitgeberunterbrechung nicht zurückgesetzt". Es führt zur Erzeugung der Maschinenprüfunterbrechung auf Ebene 7.
  • Bit 3 ist das DMA-Zeitüberschreitungsbit. Es wird gesetzt, wenn die DIAC 3 eine Busbewilligung erhält und das Busbewilligungsbestätigungs-Signal innerhalb von 4 Mikrosekunden nicht zurückgibt. Es wird auch gesetzt, wenn die DIAC Busmaster wird und nicht innerhalb von 2 Mikrosekunden eine DMA-Operation ausführt.
  • Bit 4 ist, wie oben angemerkt, der Busmasteranzeiger. Dieses Bit wird immer gesetzt, wenn die DIAC Busmaster ist und ein Fehler festgestellt wird. Wenn das Bit beim Auftreten eines Busfehlers bereits gesetzt ist, bleibt es gesetzt, um so eine Anzeige zu liefern, daß der Busfehler aufgetreten ist, bevor die Maschinenprüfunterbrechung verarbeitet wurde.
  • Bit 5 ist das Anzeigebit für die Zugriffsart und zeigt an, daß die Operation eine Leseoperation war, wenn das Bit gesetzt ist oder daß eine Schreiboperation versucht wurde, wenn das Bit nicht gesetzt ist.
  • Bit 6 wird in diesem Entwurf nicht benutzt, und Bit 7 ist eine Testwerkzeugsunterbrechung, die nur für externe Testwerkzeuge in Laborumgebungen benutzt wird.
  • Das Adreß- und Datenvergleichs- und Funktionsregister 12 ist implementiert, um beim Testen der Software und der Fehlerbehandlung zu helfen. Es gibt einen Adreßfeststellungs-Adapter, der das Adreßvergleichsregister, das Datenvergleichsregister und ein Funktionsregister umfaßt, die alle im Block 12 enthalten sind. Es wird eine Unterbrechung der Ebene 6 bereitgestellt, wenn einer der gewählten Vergleiche auftritt. Die Funktionsregisterbits sind wie folgt definiert.
  • Wenn Bit 8 gesetzt und der untere Datenstrobeimpuls aktiv ist, dann wird die ausgewählte Vergleichsfunktion freigegeben. Bit 9: wenn dieses Bit gesetzt und der obere Datenstrobeimpuls aktiv ist, wird die ausgewählte Vergleichsfunktion freigegeben. Bit 10: wenn dieses Bit nicht gesetzt ist, ist die ausgewählte Vergleichsfunktion für den Hauptprozessor 5 oder für den DMA bestimmt. Wenn das Bit gesetzt ist, ist die ausgewählte Vergleichsfunktion nur für die DMA-Funktion bestimmt. Bit 11 ist das Vergleichen beim Befehlsladen. Bit 12 ist das Vergleichen beim Datenladen, und Bit 13 ist das Vergleichen für das Datenspeichern. Wenn Bit 14 gesetzt ist, initiiert es den Datenmustervergleich, in dem das Muster, das im Datenvergleichsregister enthalten ist, während der definierten Adreßvergleichsoperation mit dem Datenmuster verglichen wird. Eine Unterbrechung wird nur erzeugt, wenn der definierte Adreßvergleich und der definierte Datenvergleich auftreten.
  • Paritätserzeugung und Prüfung. Während die Paritätserzeuger und -prüfer Standard sind und an den Schnittstellen realisiert werden, die für den dynamischen RAM 6 und den EPROM 8 bereitgestellt werden, realisiert die Steuerlogik 4 einen Paritätserzeuger und -prüfer für diese Schnittstellen. Während der Schreiboperationen in den RAM 6 wird für jedes Byte eine ungerade Parität erzeugt, wenn entweder der Prozessor 5 oder die DIAC 3 der Busmaster ist. Die ungerade Parität wird für jedes Byte während einer Leseoperation vom RAM 6 und vom EPROM 8 geprüft, wenn entweder der Prozessor 5 oder die DIAC-Steuereinheit 3 der Busmaster ist.
  • Die Schnittstelle zwischen dem Prozessor 5 und dem RAM 6 ist eine 18 Bit breite Schnittstelle mit 16 Datenbits und 2 Paritätsbits. Während der Schreiboperationen können Daten vom Prozessor 5, entweder von einzelnen Bytes oder von zwei Bytes breiten Worten gespeichert werden. Die DIAC 3 speichert Daten aus den USART 2 als einzelne Bytes. Wenn ein Prozessorbefehl eine Byteoperation definiert, benutzt der Prozessor 5 das niedrigste interne Adreßbit, um zu bestimmen, welches Byte zu schreiben ist, und sendet dann für dieses Byte den hohen oder niedrigen Datenstrobeimpuls. Wenn das niedrigste Adreßbit gleich 0 ist, wird bei Byteoperationen der obere Datenstrobeimpuls gesendet, und der untere Datenstrobeimpuls wird gesendet, wenn dieses Bit gleich 1 ist. Wenn eine Schreiboperation eine DMA-Schreiboperation von der DIAC 3 ist, decodiert die Steuerlogik den Zustand des niedrigsten Adreßbits für die DMA-Operation und erzeugt den oberen Datenstrobeimpuls, wenn das niedrigste Bit gleich 0 ist, und den unteren Datenstrobeimpuls, wenn dieses Bit gleich 1 ist. Es kann somit für jede Art Schreiboperation einfach durch den Status des Busbewilligungsbestätigungs-Signals bestimmt werden, ob der Prozessor 5 oder die DIAC 3 der Busmaster war.
  • Wie früher angedeutet, kann der Prozessor 5 auf den MM-E/A-Bereich im Speicher nur dann zugreifen, wenn er sich im Supervisor-Datenmodus befindet. Die DIAC 3 kann nicht auf den MM-E/A- Bereich des Prozessors zugreifen, und ein versuchter Zugriff der DIAC 3 auf den MM-E/A-Bereich führt dazu, daß ein Bit im Maschinenprüfregister 11 auf 1 gesetzt wird. Wenn ein Versuch gemacht wird, in einen geschützten Bereich zu schreiben, wird die Schreiboperation blockiert, und die Daten im adressierten Speicherplatz werden nicht geändert.
  • Vom Prozessor 5 können die Daten entweder als einzelne Bytes oder als 2-Byte-Worte gelesen werden. Die DIAC 3 liest nur einzelne Bytes. Wieder wird das niedrigste interne Adreßbit benutzt, um zu bestimmen, welches Byte gelesen werden soll, und der Prozessor 5 sendet dann den Datenstrobeimpuls für dieses Byte. Wenn die Operation eine von der DIAC 3 gesteuerte DMA-Leseoperation ist, plaziert die Speichersteuerlogik 1 Datenbyte auf den Datenbus, und die DIAC wählt das hohe oder niedrige Datenbyte, auf der Grundlage des Zustandes des niedrigsten Adreßbits im DIAC-Empfangs-Adreßzähler.
  • Wenden wir uns jetzt Fig. 3 zu, in der eine USART-Schnittstelle für einen gegebenen Anschluß 1 dargestellt ist. Die EIA-Empfänger für den Anschluß 1 werden in zwei Bereiche zerlegt, in Abhängigkeit davon, welche Schnittstellen-Leitungssignale behandelt werden. Eine Anschluß-Schnittstellensteuereinheit 10 hilft dem USART 2 bei der Behandlung gewisser Empfangssignale, wie zum Beispiel Datenmenge bereit (DSR) und Rufanzeige oder Datenempfang (RD). Der USART 2 empfängt Empfangsdaten, den Datenfernverarbeitungs-Takt, den Empfangstakt, die Sendebereitschaft (CTS) und die Empfangsleitungs-Signalerkennung (RLSD). Es ist verständlich, daß die EIA-Empfängerschaltungen nur zum Zwecke der Anschaulichkeit in zwei Blöcke zerlegt werden, aber alle Standardempfangs-Signalanschlüsse in der EIA-Schnittstelle an jedem Anschluß 1 umfassen. In ähnlicher Weise stellt die Anschluß- Schnittstellensteuereinheit 10 den EIA-Treibern für die Übertragung oder die E/A-Treiber bestimmte Signale zur Verfügung, so wie in Fig. 3 dargestellt, während der USART die restlichen Signale als notwendig an die Treiber liefert. Schnittstellen zur Anschluß-Schnittstellensteuereinheit 10 und zum USART 2 von der Seite des Mikroprozessors 5 und der DIAC 3 aus laufen über den Systemdatenbus, den Systemadreßbus und die verschiedenen Anforderungs- und Steuerleitungen, so wie in Fig. 3 auf der linken Seite dargestellt. Dies wird jetzt in etwas größerer Ausführlichkeit beschrieben.
  • Die USART 2-Chipauswahlsignale enthalten die Chipfreigabeleitung, so wie in Fig. 3 dargestellt. Fünf USARTs werden so wie in Fig. 1 dargestellt benutzt, und somit werden fünf verschiedene Chipauswahlleitungen 1 bis 5 verwendet. Diese sind in Fig. 1 nicht dargestellt, und nur eine einzige von ihnen ist in Fig. 3 dargestellt, da nur eine einzige USART 2 notwendig ist, um zwei Anschlüsse zu behandeln. Die USART-Anschlüsse für den zweiten Anschluß sind in Fig. 3 der Einfachheit halber nicht dargestellt. Wenn der Prozessor 5 eine speicherbezogene E/A-Funktion mit dem USART 2 ausführen möchte, aktiviert die Steuerlogik die Chipfreigabeleitung dieses individuell ausgewählten USART 2, die den USART 2 für eine Lese- oder Schreiboperation auswählt. Wenn die DIAC-Steuereinheit 3 eine DMA-Operation ausführt, aktiviert die Steuerlogik auch die ausgewählte Freigabeleitung. Wenn das Busbewilligungsbestätigungs-Signal von der DIAC 3 zum Prozessor 5 in Fig. 1 aktiv ist, steuert die DIAC 3 die USART-Chipfreigabeleitung.
  • Die Kanal-A/B-Auswahlleitung ist das Anschlußfreigabesignal. Dies ist ein Mehrpunktsignal, das auswählt, welcher der zwei möglichen, vom USART 2 bedienten Kanäle mit einer Lese- oder Schreiboperation zu behandeln ist. Willkürlich wird, wenn das Signal positiv ist, von den zwei vom USART 2 bedienten Kanälen Kanal A ausgewählt. Kanal B wird ausgewählt, wenn das Signal negativ ist. Wie früher erwähnt, wird nur einer der Kanäle in Fig. 3 dargestellt. Das Systemadreßbit 2 wird zur A/B-Auswahlleitung in Fig. 3 durchgelassen, wenn der Prozessor 5 der Busmaster ist und eine MM-E/A-Funktion ausführen möchte, um den USART 2 auszuwählen. Für DMA-Operationen, wenn die DIAC 3 das Signal zur Verfügung stellt, das den auszuwählenden Kanal identifiziert, ist dieses Signal das DIAC A/B-Signal, das in Fig. 3 das Anschluß-A/B-Signal ist. Aus Gründen der Einfachheit werden die in Fig. 3 als am USART 2 angeschlossen dargestellten Steuerleitungen in Fig. 1 nicht dargestellt, sondern müssen so verstanden werden, daß sie von der DIAC 3 in Fig. 1 ausgehen, so wie in Fig. 3 dargestellt. Wiederum steuert die DIAC 3 die Kanalauswahl nur, wenn das Busbewilligungsbestätigungs-Signal von der DIAC 3 zum Prozessor 5 aktiv ist.
  • Es ist ein Daten-/Steuer-Auswahlsignal vorhanden, das auch dem USART 2 in Fig. 3 geliefert wird. Dies ist ein Mehrpunktsignal, das die Operationsart definiert, die mit dem ausgewählten USART 2 auftreten muß. Positive Signale zeigen Datenoperationen an, und negative Signale zeigen Steueroperationen an. Positive Signale zeigen an, daß der Empfangsdatenpuffer ausgewählt wird, wenn eine Leseoperation ausgeführt wird. Ein positives Signal zeigt an, daß der Datenfernverarbeitungs-Datenpuffer ausgewählt wird, wenn eine Schreiboperation auszuführen ist. Negative Signale zeigen Steueroperationen an. Wenn der Prozessor 5 Busmaster ist, wird das Systemadreßbit 1 zur Daten-/Steuerleitung durchgelassen. Wenn die DIAC 3 Busmaster ist, wird erkannt, daß die Operation entweder ein Lesen des Empfangsdatenpuffers oder ein Schreiben des Datenfernverarbeitungs-Datenpuffers in den US- ART 2 ist. Wenn die Busbewilligungsbestätigung nicht aktiv ist, ist der Prozessor 5 Busmaster, und die Daten-/Steuerungs-Auswahl wird direkt durch den Zustand des Systemadreßbits 1 während der USART-Auswahloperation gesteuert.
  • Für Leseoperationen zeigt das Mehrpunktsignal "Lesen", so wie in Fig. 3 dargestellt, eine Leseoperation an, wenn der USART 2 ausgewählt wird und er die USART-Bustreiber freigibt. Während des Unterbrechungsbestätigungs-Zyklusses der Ebene 2 läßt dieses Signal den Unterbrechungsvektor vom USART 2 zum Bus durch, wenn der USART 2 der USART mit der höchsten Priorität ist, was dann eine Unterbrechung anfordert. Die Priorität wird durch die US- ART-Position bestimmt. Das Zusammentreffen eines Lesens und eines Schreibens wird als ein Rücksetzen interpretiert.
  • Dieses Mehrpunktsignal "Schreiben", so wie in Fig. 3 dargestellt, zeigt eine Schreiboperation an, wenn der USART 2 ausgewählt wird. Die spezielle, früher beschriebene USART-Unterbrechungsanforderung der Ebene 2 ist so dargestellt, daß sie von der Anschluß-Schnittstellensteuereinheit 10 geliefert wird. Dieses Unterbrechungsanforderungs-Signal wird als Mehrpunktsignal an die Unterbrechungssteuerlogik 4 aktiviert, wenn ein USART 2 eine aktive Unterbrechungsanforderung der Ebene 2 besitzt. Es gibt auch eine USART-Unterbrechungsbestätigung IACK der Ebene 2, die an die Anschluß-Schnittstellensteuereinheit 10 und an den USART 2 geliefert wird, um einen Unterbrechungszyklus auf Ebene 2 zu bestätigen. Während des IACK-Zyklusses veranlaßt der USART 2 oder die Anschluß-Schnittstellensteuereinheit 10 mit der höchsten Priorität für den Anschluß mit einer wartenden Unterbrechung der Ebene 2 die Plazierung einer Vektornummer auf das niedrige Byte des Systemdatenbusses durch den USART 2 oder die Anschlußsteuereinheit 10, wenn die Steuerlogik das Lesesignal des USARTs 2 aktiviert. Der Unterbrechungs-Freigabeausgang von USART 2 ist mit dem Unterbrechungs-Freigabeeingang des nächsten USARTs mit niedrigerer Priorität verbunden. Diese Verbindung ist in Fig. 3 nicht dargestellt, aber sie wird benutzt, um eine serielle Prioritätsschaltung zu bilden, in der die Baugruppe höherer Priorität mit einer Unterbrechung die Unterbrechungen von Baugruppen mit niedrigerer Priorität hindert oder sie freigibt, wenn sie keine Unterbrechungen aufweist. Der USART mit der Nummer 5 erhielt willkürlich die höchste Priorität, und das Anschlußregister wird mit dem untersten Ende der Kette für Unterbrechungen der Ebene 2 verbunden. Die Unterbrechungs-Freigabe- oder Chipfreigabeleitung wird von der DIAC 3 zum USART 2 geliefert. Dieses Signal zeigt an, daß kein anderer USART 2 mit höherer Priorität eine gerade bediente oder angeforderte Unterbrechung aufweist. Das aktive Signal ist positiv und wird benutzt, um die oben angesprochene serielle Unterbrechungsprioritätsschaltung zu bilden. Beim USART 2 mit der höchsten Priorität ist sein Unterbrechungs-Freigabeeingang mit dem logischen Pegel von +5 Volt verbunden. Wenn der USART mit der höchsten Priorität eine wartende Unterbrechung aufweist, aktiviert er seinen Unterbrechungs-Freigabeausgang zur seriellen Prioritätsschaltung nicht, so wie oben erwähnt. Wenn er keine wartende Unterbrechung besitzt, aktiviert er diesen Anschluß, um den USART 2 mit der nächstniedrigen Priorität zur Übergabe von Unterbrechungen freizugeben.
  • Der Systemdatenbus, Bits 0 bis 7, ist ebenfalls mit den USARTs 2 und den Anschluß-Schnittstellensteuereinheiten 10 verbunden. Die Anschlußregister der Anschluß-Schnittstellensteuereinheit sind nicht dargestellt, aber in den Positionen des niedrigen Bytes direkt mit diesem Bus verbunden. Parität wird an der USART- Schnittstelle nicht benutzt. Der Datenbus ist jedoch ein 18 Bit breiter, bidirektionaler Mehrpunktbus mit 16 Daten- und 2 Paritätsbits. Das niedrige Byte wird benutzt, wenn eine ungerade Adresse adressiert wird, und enthält die Bits 0 bis 7 und niedrige Parität. Bit 0 besitzt den niedrigsten Wert und Bit 7 den höchsten Wert in dem niedrigen Byte. Das hohe Byte wird benutzt, wenn eine gerade Adresse adressiert wird, und enthält die Bits 8 bis 15 und hohe Parität für Daten. Bit 8 ist das niedrigste Bit und Bit 15 das höchste Bit im hohen Byte. Der Datenbus ist positiv aktiv. Während einer MM-E/A-Schreiboperation vom Prozessor 5 in den USART 2 wird der Datenbus vom Prozessor 5 gesteuert. Während einer MM-E/A-Leseoperation vom Prozessor 5 in den USART 2 wird das niedrige Byte des Datenbus vom USART 2 gesteuert. Während eines Unterbrechungsbestätigungs-Zyklusses für Unterbrechungen der Ebene 2 bringt der USART 2 oder das Datenregister der Anschlußsteuereinheit 10 die Unterbrechungsvektornummer in das niedrige Byte des Datenbusses. Während einer Unterbrechungsbestätigung für Unterbrechungen der Ebene 5 bringt die Anschlußsteuereinheit 10 ihre Unterbrechungsvektornummer in ein niedriges Byte eines Datenbusses.
  • Die Anschlußregister sind in der Steuerlogik für jeden der zehn Anschlüsse enthalten, um EIA-RS232-Schnittstellensignale und funktionen zur Verfügung zu stellen, beispielsweise Erkennung des Zustandswechsels der Datenleitungen, Erkennung des Zustandswechsels des "Datenmenge fertig"-Signals, Erkennung des Zustandswechsels des "Rufanzeige"-Signals und die Erzeugung zugeordneter Unterbrechungsvektornummern, die nicht von den USART 2 zur Verfügung gestellt werden. Diese werden in die Anschluß- Schnittstellensteuereinheiten 10 eingebaut, so wie in Fig. 3 dargestellt, und während die Register selbst nicht dargestellt sind, enthalten sie die folgende Bitbedeutung.
  • Bit 0 ist das aktive Signal Datenmenge bereit vom RS232C Schnittstellenempfänger. Das Bit kann nur gelesen werden. Bit 1 ist das Rufanzeigebit, das von der EIA-RS232-Schnittstelle empfangen wird, und es kann nur gelesen werden.
  • Bit 2 ist die Testanforderung, die zur EIA-RS232-Schnittstelle gesteuert wird. Der Prozessor kann dieses Bit schreiben oder lesen, und wenn es auf eine 1 gesetzt wird, wird die Testanforderung zur Schnittstelle aktiviert. Das Rücksetzen des Systems setzt dieses Bit auf 0.
  • Bit 3 ist das Auswahlsignal für die Datenrate. Das Signal wird durch die EIA-RS232-Schnittstelle gesteuert und kann vom Prozessor 5 gelesen oder geschrieben werden. Wenn das Bit auf 1 gesetzt wird, wird die Datenratenauswahl zur EIA-RS232-Schnittstelle aktiviert, und Systemrücksetzsignale setzen das Bit auf 0.
  • Bit 4 des Anschlußregisters ist die Anzeige für Datenendeinrichtung bereit. Dieses Signal wird zur EIA-RS232-Schnittstelle gesteuert und kann gelesen oder geschrieben werden. Wenn das Bit eine 1 ist, ist das "Datenendeinrichtung bereit"-Signal für die EIA-Schnittstelle aktiv. Ein Systemrücksetzen setzt auch dieses Bit zurück.
  • Bit 5 ist das externe Taktsteuerbit. Dieses Registerbit wird benutzt, um das Durchlassen des externen Taktsignals zur EIA- RS232C-Schnittstelle auszuwählen. Das Programm kann dieses Bit auch Lesen oder Schreiben. Wenn es auf 1 gesetzt wird, wird der Sendetakt vom Anschluß 15 einer EIA-RS232C-Schnittstelle zum - Eingang des Sendetaktanschlusses des USARTs 2 durchgelassen. Wenn das Bit 0 ist, wird der Sendetakt vom Anschluß 15 der EIA- RS232-Schnittstelle gesperrt, und der USART kann dann so programmiert werden, daß er einen Takt an seinem eigenen Sendetaktanschluß zur Verfügung stellt. Dies erlaubt den direkten Anschluß von Stationen, wenn die Gesamtsteuereinheit in dieser Erfindung den Takt an die EIA-RS232-Schnittstelle zur Verfügung stellt. Wieder wird ein Systemrücksetzen dieses Bit auf eine 0 setzen.
  • Bit 6 ist die Modemfreigabe-Steuerungszustandswechsel-Unterbrechung. Wenn dieses Bit gesetzt ist, wird eine Unterbrechung der Ebene 2 gesetzt, wenn ein Zustandswechsel am Anzeigebit für Datenmenge bereit auftritt oder wenn sich ein Rufanzeigebit von 0 auf 1 ändert. Das Programm im Prozessor 5 kann ein Schreiben oder Lesen dieses Bits veranlassen, und ein Rücksetzen des Systems setzt es auf 0.
  • Bit 7 ist für Unterbrechungen, die durch Zustandswechsel auf den Datenleitungen erzeugt werden, zuständig. Wenn dieses Bit auf eine 1 gesetzt ist, wird eine Unterbrechung der Ebene 5 gesetzt, wenn ein Zustandswechsel auf der EIA-RS232C-Empfangsdatenleitung auftritt. Das Programm kann dieses Bit schreiben oder lesen, und Rücksetzungen setzen es auf 0.
  • Es gibt auch ein Statusänderungs-Anschlußregister, das in der Anschluß-Schnittstellensteuereinheit 10 enthalten ist und das den Status von Unterbrechungen zur Verfügung stellt, die von Zustandswechseln der Empfangsdaten, Datenmenge bereit und dem Aus auf Ein der Rufanzeigesignale verursacht werden, die der Systemsteuerlogik zur Verfügung gestellt werden. Ein 1-Byte-Register liefert den Status für zwei Anschlüsse, die von einer Anschluß- Schnittstellensteuereinheit 10 zur Verfügung gestellt werden. Die Bits werden wie folgt realisiert.
  • Bit 0 ist ein "Datenmenge bereit"-(DSR)-Zustandswechsel von Aus auf Ein für Anschluß B. Bit 1 ist ein "Datenmenge bereit"- Zustandswechsel von Ein auf Aus für Anschluß B. Bit 2 ist ein Rufanzeige-Zustandswechsel von Aus auf Ein für Anschluß B, und Bit 3 ist der Zustandswechsel der Daten für Anschluß B. Bit 4 ist der "Datenmenge bereit"-Zustandswechsel von Aus auf Ein für Anschluß A, Bit 5 ist der "Datenmenge bereit"-Zustandswechsel von Ein auf Aus für Anschluß A. Der Zustandswechsel von Aus auf Ein des Rufanzeigesignals für Anschluß A ist das Bit 6, und Bit 7 ist der Zustandswechsel der Daten für Anschluß A.
  • Der Prozessor 5 kann die Register in der Anschluß-Schnittstellensteuereinheit 10 lesen und schreiben, und sie können unter Maskenoperationen zurückgesetzt werden, so daß ausgewählte Bits im Register einzeln zurückgesetzt werden können. Das Programm muß Unterbrechungen, die von diesen Zustandswechseln verursacht werden, zurücksetzen, indem die Bits unter einer Maske zurückgesetzt werden. Dies erlaubt das Zurücksetzen einer Unterbrechung, ohne andere asynchrone Unterbrechungen zu beeinflussen, die im Register vorhanden sein können oder die zu der Zeit auftreten können, wenn das Register tatsächlich zurückgesetzt wird.
  • Dies schließt die Einzelheiten und den Überblick über die Arbeit und die Steuerung in der bevorzugten Ausführungsform der Erfindung ab, wie sie in Fig. 1 bis 3 dargestellt wurde. Im Herzen des Entwurfs befindet sich die Systemsteuerlogik und die DIAC 3, welche die große Flexibilität des diskutierten Service und der Arbeitsweise erlauben. Wie in der Spezifikation angemerkt wird, können die Mittel der Datenübertragung über irgendeinen der zwanzig Kanäle, die so wie in Fig. 1 dargestellt realisiert sind, vom Programmierer individuell so ausgewählt werden, daß sie entweder der speicherbezogene E/A-Zeichenservice-Unterbrechungsmodus oder der Speicherdirektzugriffs-Modus sind. Wenn DMA ausgewählt wird, kann eine weitere Auswahlstufe ausgewählt werden, um zu bestimmen, ob die Unterbrechung dem Prozessor für jedes über DMA übertragene Zeichen dem Prozessor übergeben werden sollte. DMA-Operationen werden von der DIAC-Steuereinheit 3 gesteuert, und dies richtet die Übertragung von einem Zeichen von den USARTs 2 zum Haupt-RAM oder vom RAM 6 zum USART 2. USART 2 aktiviert eine Empfangs-DMA-Anforderung, wenn ihr Empfangspuffer ein Zeichen enthält. Der USART aktiviert eine Sende-DMA-Anforderung, wenn ihr Sendepuffer leer ist. DMA-Anforderungen werden von der DIAC-Steuereinheit entweder als DMA-Anforderungen, als Unterbrechungsanforderungen oder sowohl als DMA- als auch als Unterbrechungsanforderungen behandelt, in Abhängigkeit davon, wie der Programmierer über die Auswahl der Konfiguration entschied. Jeder Anschluß besitzt einen Empfangskanal und einen Sendekanal, die gesondert konfiguriert werden können, um entweder mit DMA-Übertragung oder im Unterbrechungsmodus zu arbeiten und dem Hauptprozessor die Übertragung eines Zeichens über MM- E/A-Operationen mitzuteilen. Wenn ein Kanal im DMA-Modus betrieben werden soll, initialisiert das Steuerprogramm eine Startadresse und einen Bytezähler für diesen Kanal. Die DIAC-Steuereinheit signalisiert dem Prozessor 5 über eine Unterbrechung, wenn der Empfangsbytezähler 0 wird oder wenn der Sendebytezähler 0 wird. Wenn eine Dateiende-Nachricht empfangen wird, signalisiert der USART oberhalb dem Prozessor 5 über eine Endeunterbrechung, daß die Nachricht abgeschlossen ist. Wenn der gesamte Datenblock von einem nachfolgenden USART zusammengesetzt wurde, steuert der Prozessor die DIAC so, daß das Rückwärtssenden von einer speziellen Pufferadresse in den RAM gestartet wird. Die DIAC-Steuereinheit 3 wird durch MM-E/A-Operationen vom Prozessor 5 gesteuert und gesetzt.
  • Wie angemerkt, verwalten die USARTs eine Protokollschnittstelle pro Leitung zu den angeschlossenen Modems oder den lokal angeschlossenen Stationen, während das Steuerprogramm, das im Prozessor 5 arbeitet, eine Protokollumsetzung, eine Leitungskonzentration und Datenmanipulationsfunktionen so wie gewünscht ausführt.
  • Realisierung des Mehrfachanschluß-Datenfernverarbeitungs- Adapters
  • Fig. 4 zeigt eine weitere bevorzugte Ausführungsform der Erfindung, in welche der Protokolladapter und die Anschluß-Schnittstellen-Datenfernverarbeitungs-Steuereinheit (in diesem Abschnitt der Deutlichkeit halber einfach "Adapter" genannt) mit einem zusätzlichen Busschnittstellen-Anschluß an die Systembusse einer abtastfreien Datenfernverarbeitungs-Steuereinheit (hier einfach "Datenfernverarbeitungs-Steuereinheit" genannt) versehen werden können. Dieser Zusatz zum Adapter und zur Datenfernverarbeitungs-Steuereinheit ermöglicht es, einen Mehrfachanschlußadapter an einen einfachen Anschluß der abtastlosen Datenfernverarbeitungs-Steuereinheit anzuschließen. Er benutzt die Grundarchitektur und -struktur des Protokolladapters und der Anschluß-Schnittstellensteuereinheit, so wie in Fig. 1 dargestellt, und ein zusätzliches Schnittstellen-Steuerlogikmodul 15 als Schnittstelle zu den Systemadreß- und Datenbussen der abtastfreien Datenfernverarbeitungs-Steuereinheit, so wie in Fig. 4 dargestellt. Das Steuerprogramm für die Adapterfunktion wird in den Festwertspeicher 8 bzw. in den Adapter-RAM 6 gebracht.
  • Die abtastfreie Datenfernverarbeitungs-Steuereinheit besitzt bis zu 16 Anschlußschnittstellen; somit kann, indem 8 zusätzliche Anschlüsse über die Baugruppe des 10-Anschlußprotokolladapters und der Anschluß-Schnittstellensteuereinheit der vorliegenden Erfindung an jeden Anschluß angeschlossen werden, ein Gesamtsystem von 128 Anschlüssen von einem zentralen System über eine abtastfreie Datenfernverarbeitungs-Steuereinheit bedient werden, die an 8 Konfigurationen der Anschluß-Schnittstellensteuereinheit angeschlossen wird, so wie in Fig. 1 dargestellt.
  • Die Kombination stellt die Grundlage dar für eine neue Gesamtarchitektur von Kommunikationssteuerheiten, bei denen die Protokollumsetzung und einige Konzentrationsfunktionen in den Protokolladapter und die Anschlußschnittstellen-Datenfernverarbeitungs-Steuereinheiten der vorliegenden Erfindung ausgelagert wurden.
  • In einer solchen neuen Architektur können die Entscheidung zwischen konkurrierenden DMA- und Unterbrechungsanforderungen, die DMA- und Unterbrechungssteuerung des Zugriffs zu und von den Anschlüssen und der wählbare Modus des Zeichenservices für jeden Kanal alle vom Protokolladapter und der Anschlußschnittstellen- Datenfernverarbeitungs-Steuereinheit der vorliegenden Erfindung behandelt werden. Die DIAC kann jedoch so gesteuert werden, daß sie entweder vom RAM des Protokolladapters oder vom Haupt-RAM der Datenfernverarbeitungs-Steuereinheit liest oder schreibt, und jede Funktion kann ausgeführt werden mit oder ohne Unterbrechung entweder des Prozessors 5 oder des Hauptprozessors, der sich in der Datenfernverarbeitungs-Steuereinheit befindet. Somit können unter Programmsteuerung wenigstens fünf Zeichenservicemodi für jeden Empfangskanal und jeden Sendekanal ausgewählt werden. Das Programm befindet sich in dem anpaßbaren Protokolladapter und der Anschlußschnittstellen-Datenfernverarbeitungs-Steuereinheit der vorliegenden Erfindung, die mit der notwendigen Schnittstellen-Steuerlogik 15 zum Anschluß an die abtastfreie Datenfernverarbeitungs-Steuereinheit ausgestattet ist, so wie in Fig. 4 dargestellt.
  • Diese Zeichenservicemodi sind kurz wie folgt definiert:
  • DMA von empfangenen Zeichen, die aus einem Empfangspuffer eines USARTs über direkten DMA ohne Unterbrechung des Prozessors 5 in den RAM 6 des Adapters zu holen sind. DMA des empfangenen Zeichens aus dem Empfangspuffer des USARTs in den Haupt-RAM der Datenfernverarbeitungs-Steuereinheit ohne Unterbrechung entweder des Prozessors 5 oder des Hauptprozessors in der Datenfernverarbeitungs-Steuereinheit. Oder direkter Speicherzugriff, wobei das empfangene Zeichen aus dem Empfangspuffer des USARTs über DMA in den RAM 6 gebracht wird, wobei eine Unterbrechungsanzeige an den Prozessor 5 gegeben werden kann. Alternativ hierzu kann eine DMA-Übertragung des empfangenen Zeichens aus dem Empfangspuffer des USARTs in den Haupt-RAM des Systems in der Datenfernverarbeitungs-Steuereinheit über DMA vorgenommen werden, wobei eine Unterbrechung an den Hauptprozessor der Datenfernverarbeitungs-Steuereinheit gegeben wird. Schließlich muß überhaupt kein DMA verwendet werden, und statt dessen kann eine Unterbrechung an den Prozessor 5 gegeben werden, um eine Unterbrechungsserviceroutine auf zurufen, die den Prozessor 5 so steuert, daß er den USART mit einer MM-E/A-Operation bedient, um den USART-Empfangspuffer zu lesen. Zeichenservice für jeden Datenfernverarbeitungs-Kanal kann auch unter Programmsteuerung symmetrisch für die Servicemodi ausgewählt werden, der für den Empfang so wie oben aufgeführt bereitgestellt werden.
  • Die von der DIAC-Steuereinheit 3 realisierte große Flexibilität erlaubt es dem Programmierer, die Operation von jedem der 128 Datenfernverarbeitungs-Kanäle anzupassen, um maximale Leistung von der Hardware zu erreichen. Wenn beispielsweise ein gegebener Anschluß im Start/Stopp-Modus zu betreiben ist, dann kann der Programmierer auswählen, diesen Empfangskanal des Anschlusses in einem Modus zu betreiben, in dem der Prozessor 5 unterbrochen wird, wenn jedes Zeichen empfangen wird. Dies erlaubt dem Prozessor eine Überwachung auf Empfangsfehler und, falls gewünscht, eine Konvertierung von Zeichen in neue Formate oder von jeweils einem Protokoll. Der Datenfernverarbeitungs-Kanal für den gleichen Anschluß könnte so programmiert werden, daß er im DMA-Modus arbeitet, was es dem Programm erlauben würde, Ausgabenachrichten direkt zu übertragen, ohne den Prozessor 5 zu unterbrechen, bis eine vollständige Nachricht übertragen ist, wodurch es einem Prozessor ermöglicht wird, die Ausgabe zykluseffektiv und als Hochgeschwindigkeitsoperation auszuführen. Mit Hilfe dieser Mittel kann die Datenübertragung über irgendeinen der insgesamt 20 Kanäle individuell ausgewählt und vom Programm so gesteuert werden, daß es sich entweder um MM-E/A oder DMA handelt, mit oder ohne Vorlage der Unterbrechung an jedem Prozessor.
  • Konfiguration des Datenflusses mit der Datenfernverarbeitungs-Steuereinheit
  • Der Datenfluß des anpaßbaren Protokolladapters und der Anschlußschnittstellen-Datenfernverarbeitungs-Steuereinheit mit dem abtastfreien Anschluß der Datenfernverarbeitungs-Steuereinheit ist im wesentlichen der gleiche wie der früher für den Adapter beschriebene, aber mit der zusätzlichen Möglichkeit, Daten vom Adapter zum Hauptspeicher zu übertragen, der sich in der abtastfreien Datenfernverarbeitungs-Steuereinheit befindet. Entweder die DIAC 3 oder der Prozessor 5 kann seinen lokalen RAM 6 oder den Haupt-RAM in der Datenfernverarbeitungs-Steuereinheit adressieren. Das Adreßbit 23 wird benutzt, um die Adressierung des einen oder des anderen RAM auszuwählen. Wenn das Adreßbit 23 während eines Adaptermaschinenzyklusses aktiviert wird, aktiviert die Adapter-Schnittstellensteuereinheit 15 eine DMA-Anforderung an die Entscheidungsschaltung der Datenfernverarbeitungs-Steuereinheit. Der Hauptprozessor der Datenfernverarbeitungs-Steuereinheit bewilligt der Reihe nach dem Adapter den Bus, in der Reihenfolge ihrer Priorität, und die Schnittstellenlogik 15 steuert die Übertragung zum oder vom System-Haupt-RAM in der Datenfernverarbeitungs-Steuereinheit. Es existiert die Möglichkeit, Daten direkt von den USARTs 2 zum oder vom lokalen RAM 6 im Adapter oder zum oder vom Haupt-RAM in der Datenfernverarbeitungs-Steuereinheit zu transportieren. Die Datenübertragung kann auch unter der Steuerung der DIAC 3 oder des Adapterprozessors 5 ausgeführt werden.
  • Beginn des Systemdatenflusses
  • Jeder Adapter besitzt einen Datenfernverarbeitungs-Bereich, der sich im Haupt-RAM der Datenfernverarbeitungs-Steuereinheit befindet. Der Datenfernverarbeitungs-Bereich enthält für jeden Adapter ein Gerätestatuswort (DSW) und ein Gerätesteuerwort (DCW). Der Platz des DCW und des DSW im Haupt-RAM wird durch die physische Position in der Anschlußhierarchie der abtastfreien Datenfernverarbeitungs-Steuereinheit bestimmt. Wenn die Datenfernverarbeitungs-Steuereinheit zurückgesetzt wird, initialisiert das Steuerprogramm, das sie bedient, das DSW und das DCW für jeden installierten Adapter. Das DCW wird vom Mikrocode des Hauptprozessors der Steuereinheit konstruiert und vom Prozessor 5 des Adapters gelesen. Das DCW enthält ein Befehlsbyte und eine Ausgabe- oder Eingabepufferadresse und andere Felder, die in Abhängigkeit vom Befehl variieren. Während des Betriebes wird das DSW durch den Mikroprozessorcode des Adapters bestimmt, der im Prozessor 5 läuft. Felder, die den Status des Adapterprozessors 5, die Qualität des Datenempfanges, die aktuelle Ausführungsfolge und die Adresse des letzten Puffers, der für die Datenübertragung benutzt wurde, aufzeichnen, werden vom Prozessor 5 konstruiert. Wenn der Adapterprozessor 5 eine Unterbrechung von der Haupt-Datenfernverarbeitungs-Steuereinheit feststellt, überträgt er das DCW aus seinem zugewiesenen Datenfernverarbeitungs-Bereich im Haupt-RAM der Steuereinheit über DMA in seinen eigenen Speicher oder die Register und fragt dann das Befehlsbyte ab.
  • Eines der vielen möglichen Befehle ist der Befehl zum einleitenden Programmladen IPL. Dieser Befehl veranlaßt den Adapter zum IPL seines Operationscodes, wobei eine DMA-Übertragung vom Haupt-RAM in die Datenfernverarbeitungs-Steuereinheit benutzt wird. Die Startadresse des Haupt-RAMs für den IPL-Code ist in dem DSW enthalten, das vom Prozessor der Datenfernverarbeitungssteuereinheit bei der Initialisierung konstruiert wird.
  • Wenn ein Befehl ausgeführt wurde, schreibt der Adapter-Prozessor 5 einen Endestatus über DMA-Übertragung in sein zugehöriges DSW im Haupt-RAM der Datenfernverarbeitungs-Steuereinheit. Der Adapter-Prozessor 5 teilt dies dann dem Prozessor der Steuereinheit über eine Adapter-Steuereinheitsunterbrechung mit.
  • Insgesamt erzeugt die Abarbeitung des Mikrocodes im Hauptprozessor der Steuereinheit das DCW und unterbricht dann den Prozessor 5 des Adapters. Der Mikrocode des Adapter-Prozessors 5 erzeugt ein DSW im Haupt-RAM, indem eine DMA-Schreiboperation benutzt wird, und unterbricht dann den Hauptprozessor der Steuereinheit. Der Prozessor der Steuereinheit liest das DSW aus seinem eigenen Haupt-RAM. Deshalb können der Adapter-Prozessor 5 und der Prozessor der Steuereinheit über die Kommunikationsbereiche miteinander kommunizieren, die jedem einzelnen Adapter zugewiesen sind.
  • Datenpuffer
  • Datenpuffer werden im DCW adressiert und befinden sich im Haupt- RAM der Datenfernverarbeitungs-Steuereinheit. Auf sie wird vom Adapterprozessor 5 unter Benutzung von DMA-Übertragungen zugegriffen. Die Puffergröße ist in diesem Entwurf, der ein Steuerpräfix enthält, auf 288 Datenbytes festgelegt. Wenn größere Blöcke zu senden oder zu empfangen sind, können dem Adapterprozessor auf Anforderung an den Haupt-Datenfernverarbeitungs- Steuerungsprozessor mehrere Puffer bereitgestellt werden. Ein Präfixfeld am Anfang jedes Puffers enthält Identifikation des besitzenden Tasks, einen Vorwärtszeiger, eine Datenanfangsverschiebung und einen Bytezähler. Wenn der Inhalt des Vorwärtszeigers positiv ist, liefert er die Adresse des nächsten Puffers in der Kette, von der der Prozessor 5 des Adapters senden muß oder in die er empfangen kann. Die Datenanfangsverschiebung erlaubt, daß die Daten nicht an der Anfangs- oder Spitzenadresse des Puffers beginnen müssen, was einen Bereich für die Bildung eines Präfix mit unterschiedlichen Leitungsprotokoll-Steuerzeichen zurückläßt, wie sie für die Protokollumsetzung notwendig sein können.
  • Die DCW-Befehle
  • Wenn ein Adapter-Prozessor 5 eine Unterbrechung von der Hauptsteuereinheit feststellt, muß er das DCW vom zugeordneten Datenfernverarbeitungs-Bereich über DMA übertragen und das Befehlsbyte abfragen. Wir betrachten die folgenden Beispiel für Befehle, die ausgeführt werden können:
  • Schreiben. Der Inhalt des Puffers, dessen erste Adresse im DCW erscheint, wird auf die Datenfernverarbeitungs-Leitung übertragen. Die Anzahl der Bytes wird im Bytedatenzähler definiert.
  • Lesen. Der Adapter wird auf Empfang eingestellt, und die entstehenden Daten werden in den vom DCW identifizierten Puffer gespeichert. Die Zahl der gespeicherten Bytes wird durch den Datenzähler oder die Feststellung des Blockendes begrenzt, je nachdem was zuerst auftritt.
  • Schnittstellen-Steuerlogik für den direkten Speicherzugriff
  • Dieser Abschnitt beschreibt mit Hilfe von Fig. 4 den direkten Speicherzugriff/Speicherorientierte E/A-Schnittstelle und die Schnittstellensteuereinheit 15, die sich im Adapter befinden, um den Anschluß des Adapters an die abtastfreien Datenfernverarbeitungs-Steuereinheitsbusse zur Verfügung zu stellen.
  • Der Datenfernverarbeitungs-Steuereinheits-DMA-Bus ist ein bidirektionaler 18-Bit-Datenbus (16 Datenbits und 2 Paritätsbits) zwischen ihrem Speicher und den angeschlossenen Adaptern. Die Schnittstelle unterstützt Byte- oder Wort- (2 Bytes) Übertragungen.
  • Die Integrität des DMA-Datenbusses wird durch die Verwendung eines Paritätsbits gesichert, das jedem Byte des Datenbusses zugeordnet ist. Die korrekte Parität ist immer ungerade (d. h. die Anzahl der Paritäts- und Datenbits mit dem Wert > 1< muß für jedes Byte ungerade sein). Die Paritätserzeugung und -prüfung ist in der Schnittstellen-Steuerlogik 15 enthalten.
  • Schnittstellen-Steuerlogik und Signalbeschreibungen
  • Die Schnittstellen-Steuerlogik (15) stellt das Zeitverhalten und die Steuerung für das Durchlassen von Signalen zur bzw. von der Steuereinheits-Schnittstelle zur Verfügung. Die in Fig. 14 dargestellte Schnittstellen-Steuerlogik (90) stellt das Zeitverhalten und die Richtungssteuerung zu den Tri-State-Treibern und Empfängern (91) zur Verfügung, um die folgenden Schnittstellensignale während der Datenübertragungen zum oder vom Haupt-RAM in der Datenfernverarbeitungs-Steuereinheit zu steuern.
  • Datenbus
  • Der Datenbus ist ein bidirektionaler 18-Bit-Mehrpunktbus (16 Datenbits und 2 Paritätsbits). Das niedrige Byte wird benutzt, wenn eine ungerade Adresse adressiert wird und enthält die Bits 0 bis 7 und PL (niedrige Parität) der Daten. Bit 0 ist das niedrigste Bit und Bit 7 ist das höchste Bit im niedrigen Byte. Das hohe Byte wird benutzt, wenn eine gerade Adresse adressiert wird (die gleiche Adresse wie eine Wortadresse) und enthält die Bits 8 bis 15 und PH (Parität hoch) der Daten. Bit 8 ist das niedrigste Bit und Bit 15 das höchste Bit in dem hohen Byte. Der Datenbus ist positiv aktiv. Während einer DMA-Leseoperation oder während einer MM-E/A-Schreiboperation von der Datenfernverarbeitungs-Steuereinheit zu einem Adapter wird der Datenbus von der Datenfernverarbeitungs-Steuereinheit gesteuert. Auch wenn keine DMA-Operation bearbeitet wird, wird der Datenbus von der Datenfernverarbeitungs-Steuereinheit gesteuert, um die Überwachung durch einen Testwerkzeug-Adapter zu erlauben.
  • Adreßbus
  • Der DMA-Adreßbus ist ein Mehrpunktbus, der vom Busmaster für alle DMA-Operationen gesteuert wird. Der Adreßbus enthält die Adresse des Speicherplatzes im Speicherraum, auf den zugegriffen werden soll. Der Adreßbus ist ein 23-Bit-Bus, wobei A1 das niedrigste Bit und A23 das höchste Bit ist. Der Adreßbus ist positiv aktiv. Der 23-Bit-Adreßbus wird in Verbindung mit dem oberen und dem unteren Datenstrobeimpuls benutzt, um entweder eine Einzelbyteadresse oder eine Wortadresse auszuwählen. Wenn nur ein Datenstrobeimpuls aktiv ist, ist die Operation eine Byteoperation. Wenn beide Datenstrobeimpulse aktiv sind, dann ist die Operation eine Wortoperation (2 Bytes). Wenn keine DMA-Operation abläuft, wird der Adreßbus von der Datenfernverarbeitungs-Steuereinheit gesteuert, um die Überwachung durch das Testwerkzeug zu erlauben. Dieser Bus wird auch während der MM-E/A-Steueroperationen von der Datenfernverarbeitungs-Steuereinheit zu den Adaptern durch die Datenfernverarbeitungs-Steuereinheit gesteuert.
  • Steuerbus Schreiben
  • Dieses Mehrpunktsignal wird vom Busmaster gesteuert, um die Datenfernverarbeitungs-Richtung auf dem Datenbus für alle Ein- Ausgabeoperationen anzuzeigen. Während einer DMA-Operation zeigt die Aktivierung dieses Signals eine Datenübertragung vom Busmaster zum Speicher an. Während einer DMA-Operation zeigt die Nichtaktivierung dieses Signals eine Datenübertragung vom Speicher zum Busmaster an, die als Leseoperation bezeichnet wird. Wenn keine DMA-Operation abläuft, steht dieses Signal unter der Steuerung der Datenfernverarbeitungs-Steuereinheit. Die Datenfernverarbeitungs-Steuereinheit aktiviert dieses Signal, wenn eine Schreiboperation ausgeführt wird. Schreiben ist ein negativ aktives Signal.
  • Unterbrechung der Ebene 1
  • Eine Unterbrechung der Ebene 1 ist ein Mehrpunktsignal, das von irgendeinem Adapter gesteuert wird, der eine wartende Unterbrechung der Ebene 1 für die Datenfernverarbeitungs-Steuereinheit aufweist. Ein Adapter aktiviert dieses Signal, wenn er eine Datenunterbrechung oder eine Adapter-Maschinenprüfunterbrechung aufweist. Eine Unterbrechung der Ebene 1 ist ein negativ aktives Signal.
  • Unterbrechung der Ebene 6
  • Eine Unterbrechung der Ebene 6 ist ein Mehrpunktsignal, das von irgendeinem Adapter gesteuert wird, der eine wartende Unterbrechung der Ebene 6 für die Datenfernverarbeitungs-Steuereinheit aufweist. Ein Adapter aktiviert dieses Signal, wenn er eine Steuerunterbrechung aufweist. Eine Unterbrechung der Ebene 6 ist ein negativ aktives Signal.
  • Unterbrechungsbestätigung (L1IACK) der Ebene 1
  • L1IACK ist ein Mehrpunktsignal, das von der Hauptverarbeitungseinheit in der Datenfernverarbeitungs-Steuereinheit aktiviert wird, wenn der Prozessor 5 einen Unterbrechungsbestätigungs-Zyklus für Unterbrechungen der Ebene 1 von Adaptern ausführt. L1IACK ist ein negativ aktives Signal.
  • Unterbrechungsbestätigung (L6IACK) der Ebene 6
  • L6IACK ist ein Mehrpunktsignal, das von der Hauptverarbeitungseinheit in der Datenfernverarbeitungs-Steuereinheit aktiviert wird, wenn der Prozessor 5 einen Unterbrechungsbestätigungs-Zyklus für Unterbrechungen der Ebene 6 von Adaptern ausführt. L6IACK ist ein negativ aktives Signal.
  • Busanforderungs-/Unterbrechungsanforderungs-Bus
  • Dies ist ein Bus für 18 Signale, wobei jeder Adapterposition eine Leitung zugeordnet ist. Dieser Bus arbeitet im Multiplexbetrieb, um Busanforderungen und Adapterunterbrechungen zu behandeln. Wenn die Hauptverarbeitungseinheit in der Datenfernverarbeitungs-Steuereinheit einen Unterbrechungsbestätigungs-Zyklus für Unterbrechungen der Ebene 1 durchführt, aktiviert die Systemlogik in der Datenfernverarbeitungs-Steuereinheit das Unterbrechungsbestätigungs-Signal der Ebene 1 (L1IACK) an die Adapter. Wenn der Prozessor in der Datenfernverarbeitungs-Steuereinheit einen Unterbrechungsbestätigungs-Zyklus für Unterbrechungen der Ebene 6 durchführt, aktiviert die Systemlogik in der Datenfernverarbeitungs-Steuereinheit das Unterbrechungsbestätigungs- Signal der Ebene 6 (L6IACK) an die Adapter. Wenn L2IACK aktiv ist, aktiviert der Adapter seine Busanforderungs-/Unterbrechungsbestätigungs-Leitung, wenn der Adapter eine Unterbrechung der Ebene 6 aufweist, die der Datenfernverarbeitungs-Steuereinheit übergeben wurde. Wenn L1IACK und L6IACK nicht aktiv sind, aktiviert der Adapter seine Busanforderungs-/Unterbrechungsbestätigungs-Leitung, wenn er eine DMA-Anforderung aufweist. Busanforderung/Unterbrechungsbestätigung ist ein negativ aktives Signal.
  • Busanforderungsoperation - Wenn L1IACK und L6IACK nicht aktiv sind, aktiviert ein Adapter mit einer DMA-Anforderung seine Busanforderungs-/Unterbrechungsbestätigungs-Leitung. Die Busanforderungs-/Unterbrechungsbestätigungs-Leitung wird von irgendeiner Einheit gesteuert, welche die Steuerung des Busses für Ein-/Ausgabeoperationen anfordert. Wenn ein Adapter seine Busanforderungs-/Unterbrechungsbestätigungs-Leitung für eine Busanforderung aktiviert, muß er sie aktiv halten, bis ihm der Bus zugesprochen wurde. Die Busanforderung muß entfernt werden, wenn L1IACK oder L6IACK aktiv wird oder wenn der Adapter abgeschaltet wird. Die Busanforderung muß nur vorzeitig zurückgezogen werden, wenn die Einheit abgeschaltet ist. Wenn einem Busmaster der Bus zugesprochen wurde und er bereit ist, seine letzte oder einzige Übertragung auszuführen, muß sein Busanforderungssignal vor seinem aktivierenden Adreßstrobeimpuls deaktiviert werden und konstant sein. Wenn der Busmaster seine letzte Übertragung ausführt, muß er seine Busanforderung nicht reaktivieren, bis er den Adreßstrobeimpuls für die laufende Übertragung deaktiviert.
  • Unterbrechungsbestätigungs-Operation - Wenn der Prozessor in der Datenfernverarbeitungs-Steuereinheit einen Unterbrechungsbestätigungs-Zyklus für Unterbrechungen der Ebene 1 ausführt, wird die L1IACK-Leitung zu den Adaptern aktiviert. Wenn der Prozessor in der Datenfernverarbeitungs-Steuereinheit einen Unterbrechungsbestätigungs-Zyklus für Unterbrechungen der Ebene 6 ausführt, wird die L6IACK-Leitung zu den Adaptern aktiviert. Die Aktivierung von L1IACK oder L6IACK signalisiert den Adaptern, ihre Busanforderungen vom Busanforderungs-/Unterbrechungsbestätigungs-Bus zu entfernen. Wenn L1IACK aktiv ist, sollte ein Adapter, welcher der Datenfernverarbeitungs-Steuereinheit eine Unterbrechung der Ebene 1 übergeben hat, seine Busanforderungs/Unterbrechungsbestätigungs-Leitung aktivieren. Wenn L6IACK aktiv ist, sollte ein Adapter, welcher der Datenfernverarbeitungssteuereinheit eine Unterbrechung der Ebene 6 übergeben hat, seine Busanforderungs-/Unterbrechungsbestätigungs-Leitung aktivieren. Die Unterbrechungen werden in der Entscheidungslogik in der Datenfernverarbeitungs-Steuereinheit codiert und dem Prozessor in der Datenfernverarbeitungs-Steuereinheit als eine priorisierte Unterbrechungsvektornummer übergeben werden. Die erzeugte Vektornummer hängt von dem Code ab, den der Adapter auf die drei codierten Unterbrechungstypleitungen bringt, wenn der Adapter sein Busbewilligungs-/Unterbrechungsannahmesignal während L1IACK oder L6IACK als aktiv erkennt.
  • Busbewilligungs-/Unterbrechungsbewilligungsbus
  • Dies ist ein Bus für 18 Signale, wobei jeder Adapterposition eine Leitung zugeordnet ist. Dieser Bus arbeitet im Multiplexbetrieb, um Busbewilligungen zu behandeln und um einem unterbrechenden Adapter mitzuteilen, daß seine Unterbrechung von der Datenfernverarbeitungs-Steuereinheit angenommen wird. Wenn ein Adapter sein Busbewilligungs-/Unterbrechungsannahmesignal während L1IACK oder L6IACK als aktiv erkennt, aktiviert der Adapter die codierten Unterbrechungstypleitungen, um dem Unterbrechungstyp zu entsprechen, welcher der Datenfernverarbeitungssteuereinheit übergeben wird (Daten, Adapter-Maschinenprüfung oder Steuerung). Der Adapter muß auch die Unterbrechung zurücksetzen, die auf der Unterbrechungsleitung übergeben wurde. Busbewilligung/Unterbrechungsannahme ist ein negativ aktives Signal.
  • Busbewilligungsoperation - Dieses Signal wird von der Busentscheidungslogik in der Datenfernverarbeitungs-Steuereinheit zu dem Gerät übertragen, dem der Bus zugesprochen werden soll. Da es mehr als eine Einheit gibt, die den Besitz des Busses anfordern kann, stellt das System eine Entscheidungslogik zur Verfügung, die entscheidet, welcher Einheit die Bussteuerung erlaubt wird. Für die Entscheidung wird eine Sternmethode realisiert, die eine Priorisierung auf positioneller Grundlage zur Verfügung stellt. Der an der Position 1 installierte Adapter ist der Adapter mit der höchsten Priorität, und der an letzter Stelle installierte Adapter besitzt die niedrigste Priorität. Eine einmal aktivierte Busbewilligung wird erst nach einer Aktivierung des Busbewilligungssignals und bei einem Adreßstrobeimpuls deaktiviert oder bei Feststellung, daß die Busbewilligung nicht akzeptiert wurde. Die Busbewilligung deaktiviert unmittelbar nach der Aktivierung des Adreßstrobeimpulses, um eine maximale Periode für die Entscheidungsauflösung und die maximale Nutzung des Busses zu ermöglichen. Adapter müssen in der Eigenschaft von Busmastern keine Signale auf dem Bus aktivieren, außer wenn sie die Aktivierung einer Busbewilligung festgestellt haben, für die sie eine aktive Busanforderung haben. Zusätzlich müssen Adreßstrobeimpuls, Datenübertragungsbestätigung und Busbewilligungsbestätigung vom vorhergehenden Busmaster deaktiviert werden, bevor der nächste Busmaster irgendwelche Signale auf der Schnittstelle aktiviert.
  • Unterbrechungsannahmeoperation - Wenn L1IACK oder L6IACK aktiv ist, aktiviert die Steuerlogik in der Datenfernverarbeitungs- Steuereinheit das Signal Busbewilligung/Unterbrechungsannahme an den Adapter, dessen Unterbrechung bestätigt wird. Wenn ein Adapter seine Busbewilligungs-/Unterbrechungsbestätigungs-Leitung als aktiv erkennt, während L1IACK oder L6IACK aktiv ist, aktiviert der Adapter die codierten Unterbrechungstypleitungen, um dem Unterbrechungstyp zu entsprechen, welcher der Datenfernverarbeitungs-Steuereinheit (Daten, Adapter-Maschinenprüfung oder Steuerung) übergeben wurde. In der Datenfernverarbeitungs-Steuereinheit wird eine eindeutige Unterbrechungsvektornummer erzeugt, um den drei Unterbrechungsarten von jedem Adapter zu entsprechen. Der Adapter muß auch die Unterbrechung zurücksetzen, die auf der Unterbrechungsleitung übergeben wurde.
  • Codierter Unterbrechungstyp Bits 0, 1 und 2
  • Diese negativ aktiven Mehrpunktsignale werden codiert, um den Unterbrechungstyp anzuzeigen, welcher der Datenfernverarbeitungs-Steuereinheit von dem Adapter übergeben wird, dessen Unterbrechung bestätigt wird. Wenn ein Adapter seine Busbewilligungs-/Unterbrechungsannahmeleitung als aktiv erkennt, während L1IACK oder L6IACK aktiv sind, aktiviert der Adapter die codierten Unterbrechungstypleitungen, um dem Unterbrechungstyp zu entsprechen, welcher der Datenfernverarbeitungs-Steuereinheit übergeben wird (Daten, Adapter-Maschinenprüfung oder Steuerung). In der Datenfernverarbeitungs-Steuereinheit wird eine eindeutige Unterbrechungsvektornummer erzeugt, um den drei Unterbrechungsarten von jedem Adapter zu entsprechen. Der Adapter muß auch die Unterbrechung zurücksetzen, die auf der Unterbrechungsleitung übergeben wurde.
  • Codierter Unterbrechungstyp Bits 0, 1 und 2
  • Diese negativ aktiven Mehrpunktsignale werden codiert, um den Unterbrechungstyp anzuzeigen, welcher der Datenfernverarbeitungs-Steuereinheit von dem Adapter übergeben wird, dessen Unterbrechung bestätigt wird. Der Adapter, der während L1IACK oder L6IACK Busbewilligung-Unterbrechungsannahme erhält, bringt seinen codierten Unterbrechungstyp in die Bits 0, 1 und 2 des codierten Unterbrechungstyps. Die Unterbrechungstypen sind Datenunterbrechungen, Adapter-Maschinenprüfunterbrechungen und Adapter-Steuereinheitsunterbrechungen. Die Systemlogik in der Datenfernverarbeitungs-Steuereinheit erzeugt eine eindeutige Unterbrechungsvektornummer, die darauf beruht, welche Adapterunterbrechung bestätigt wird und von welchem Typ die bestätigte Unterbrechung ist. Die Codierung des Unterbrechungstyps geschieht wie folgt: Bit 2 Bit 1 Bit 0 Unterbrechungsart inaktiv reserviert (ungült. Code) Daten Steuerung aktiv Adapter-Maschinenprüfung
  • Busbewilligungsbestätigung
  • > Busbewilligungsbestätigung< (BGACK) ist ein Mehrpunktsignal, das benutzt wird, um während der DMA-Operationen die Busbeherrschung zu erhalten. > Busbewilligungsbestätigung< ist ein negativ aktives Signal.
  • DMA-Operation - > Busbewilligungsbestätigung< ist ein Signal, das von dem Adapter aktiviert wird, der eine aktive > Busanforderung< hat und > Busbewilligung< erhält. Nach dem Erhalt von > Busbewilligung< muß der Adapter warten, bis > Adreßstrobeimpuls< , > DTACK< und > BGACK< vom vorherigen Busmaster deaktiviert sind, bevor er sein eigenes > BGACK< aktiviert. > Busbewilligungsbestätigung< muß bis zum Abschluß der Ein-/Ausgabeoperation aktiv gehalten werden. Die Busbeherrschung wird bei der Deaktivierung von > Busbewilligungsbestätigung< beendet.
  • Adreßstrobeimpuls
  • Adreßstrobeimpuls ist ein Mehrpunktsignal, das von einem Busmaster gesteuert wird, wenn er eine DMA-Operation ausführt. Für eine DMA-Operation muß das Adreßstrobeimpuls-Signal so gesteuert werden, daß die Adreßbussignale zu dem Zeitpunkt gültig und konstant sind, wenn der Adreßstrobeimpuls aktiviert wird, bis zu dem Zeitpunkt, wenn der Adreßstrobeimpuls deaktiviert wird. Wenn keine DMA-Operation abläuft, steht der Adreßstrobeimpuls unter der Steuerung der Datenfernverarbeitungs-Steuereinheit und wird während der Speicherzyklen der Datenfernverarbeitungs-Steuereinheit aktiviert. Der Adreßstrobeimpuls ist ein negativ aktives Signal.
  • Oberer Datenstrobeimpuls
  • Der obere Datenstrobeimpuls wird von einem Busmaster gesteuert, wenn eine Einzelbyteoperation ausgeführt wird und das Byte das hohe Byte ist (gerade Adresse). Sowohl der obere als auch der untere Datenstrobeimpuls werden für Wortoperationen aktiviert. Wenn keine DMA-Operation abläuft, steht der obere Datenstrobeimpuls unter der Steuerung der Datenfernverarbeitungs-Steuereinheit und wird während der Speicherzyklen der Datenfernverarbeitungs-steuereinheit durch die Datenfernverarbeitungs-Steuereinheit aktiviert, die das obere Datenbyte lesen oder schreiben. Der obere Datenstrobeimpuls ist ein negativ aktives Signal.
  • Unterer Datenstrobeimpuls
  • Der untere Datenstrobeimpuls wird von einem Busmaster gesteuert, wenn eine Einzelbyteoperation ausgeführt wird und das Byte das niedrige Byte ist (ungerade Adresse). Sowohl der obere als auch der untere Datenstrobeimpuls werden für Wortoperationen aktiviert. Wenn keine DMA-Operation abläuft, steht der untere Datenstrobeimpuls unter der Steuerung der Datenfernverarbeitungssteuereinheit und wird während der Speicherzyklen der Datenfernverarbeitungs-Steuereinheit durch die Datenfernverarbeitungssteuereinheit aktiviert, die das untere Datenbyte lesen oder schreiben. Der untere Datenstrobeimpuls ist ein negativ aktives Signal.
  • Datenübertragungsbestätigung
  • Datenübertragungsbestätigung ist ein Mehrpunktsignal, das während einer Ein-/Ausgabeoperation vom Slave-Gerät (Speichersteuerung, System-MM-E/A-Logik oder ein Adreßadapter) gesteuert wird. Es erlaubt im Verlauf von DMA-Operationen asynchronen Betrieb zwischen den Adaptern und dem Speichersystem der Datenfernverarbeitungs-Steuereinheit und im Verlauf von MM-E/A-Operationen des Prozessors der Datenfernverarbeitungs-Steuereinheit asynchronen Betrieb zwischen dem Prozessor der Haupt-Datenfernverarbeitungs-Steuereinheit und den -Adaptern. Für eine Schreiboperation ist die Datenübertragungsbestätigung eine Anzeige, daß das Slave-Gerät die Information auf der Schnittstelle erfaßt hat und die Operation weitergehen kann. Für eine Schreiboperation ist die Datenübertragungsbestätigung eine Anzeige, daß durch das Slave-Gerät Daten auf den Datenbus gebracht wurden und die Operation weitergehen kann. Während einer DMA-Operation ist die Speichersteuerung der Datenfernverarbeitungs-Steuereinheit das Slave-Gerät, und die Datenübertragungsbestätigung wird von der Speichersteuerung der Datenfernverarbeitungs-Steuereinheit zur Verfügung gestellt. Während eines MM-E/A-Lese- oder Schreibzyklusses von der Datenfernverarbeitungs-Steuereinheit zu einem Adapter ist der adressierte Adapter das Slave-Gerät und muß das Datenübertragungs-Bestätigungssignal an die Datenfernverarbeitungs-Steuereinheit liefern. Wenn die Datenübertragungsbestätigung einmal aktiviert ist, muß sie solange aktiv bleiben wie der Adreßstrobeimpuls aktiv ist und dann nach der Deaktivierung des Adreßstrobeimpulses deaktiviert werden. Datenübertragungsbestätigung ist ein negativ aktives Signal.
  • Fehler
  • Es gibt ein Mehrpunkt-Fehler-Signal, das von der Speichersteuersystem-Logik gesteuert wird. Das Fehler-Signal ist eine Anzeige für eine der folgenden Bedingungen:
  • Falsche Parität für vom Adapter empfangene Daten. Lesen oder Schreiben auf nichtvorhandenem Speicher. Schreiben in den ROS.
  • Zeitüberlaufbedingung, die von einem Adapter stammt, der die Busbewilligung erhalten, aber nicht innerhalb von zwei Mikrosekunden mit Busbewilligungsbestätigung geantwortet hat.
  • Zeitüberlaufbedingung, die von einem Adapter stammt, der seine Strobeimpulse nicht innerhalb einer Zeitüberlaufperiode deaktiviert.
  • Doppelbitfehler, der bei einer Leseoperation festgestellt wurde, oder ein Doppelbitfehler, der während des Leseteils des Zyklusses Lesen-Modifizieren-Schreiben für eine Byte-Schreiboperation festgestellt wurde.
  • Verletzung des Speicherschutzes, die auftritt, wenn ein Adapter versucht, in den geschützten Bereich des PAMs zu schreiben, oder wenn er versucht, auf den MM-E/A-Bereich der Datenfernverarbeitungs-Steuereinheit zuzugreifen.
  • Das Fehlersignal muß nur vom aktiven Busmaster als eine Eingabe festgestellt werden. Der Busmaster, der das Fehlersignal feststellt, muß irgendwelche Signale abschalten, die er auf der Schnittstelle zur Datenfernverarbeitungs-Steuereinheit aktiviert hat. Das Fehlersignal wird vor der Aktivierung des Datenübertragungs-Bestätigungssignals oder gleichzeitig dazu aktiviert. Das Fehlersignal ist ein negativ aktives Signal.
  • Systemrücksetzen
  • Systemrücksetzen ist ein negativ aktives Signal, das von der Datenfernverarbeitungs-Steuereinheit aktiviert wird, wenn eine der folgenden Arten des Rücksetzens auftritt:
  • Kaltstart
  • Rücksetzen von MM-E/A ausgeführt
  • Rücksetzen vom Serviceadapter
  • Plattenspeicherabzug-Rücksetzen vom Servicepult
  • Ausführung des Rücksetzbefehls des Prozessors
  • Ein Systemrücksetzen setzt nicht den Adapter in der Serviceadapterposition zurück, wenn dieser Adapter die Quelle des Rücksetzens ist.
  • MM-E/A-Auswahl
  • Dies ist ein negativ aktives Signal, das während einer MM-E/A- Operation zu einem Adapter von der Verarbeitungseinheit der Haupt-Datenfernverarbeitungs-Steuereinheit aktiviert wird. Der Adapter decodiert die 8 niedrigen Bits des Adreßbusses, während Adapterauswahl aktiv ist, um zu bestimmen, welcher Adapter ausgewählt wird und welche Funktion auszuführen ist.
  • Schnittstellensteuerung für Empfangsoperation
  • Das vom System-RAM gelesene DCW enthält die Adreßinformation, die vom Adapter benutzt wird, um den RAM während der DMA-Datenübertragung zu adressieren. Die Datenpuffer werden so in den RAM abgebildet, daß der Adapter den RAN während der DMA-Operationen direkt adressieren kann. Der RAM ist im Adreßraum so angeordnet, daß das Bit 23 der Systemadresse während der RAM-Zugriffe nicht aktiviert wird. Wenn ein Adapter eine DMA-Schreiboperation ausführt, führt der Adapter eine Schreiboperation aus, bei der Bit 23 aktiv ist. Eine Operation mit aktivem Bit 23 setzt einen DMA- Anforderungszwischenspeicher in der Schnittstellen-Steuerlogik 15. Dies aktiviert eine DMA-Busanforderung an die Datenfernverarbeitungs-Steuereinheit. Die Entscheidungslogik in der Datenfernverarbeitungs-Steuereinheit aktiviert ein Busbewilligungssignal an den Adapter, wenn der Adapter der Adapter der höchsten Priorität mit einer aktiven DMA-Busanforderung wird. Während der Zeit zwischen Busanforderung und Busbewilligung wird der Adapter im Schreibzyklus gehalten, wobei sein Adreßbus, der Datenbus und seine Steuersignale aktiv sind. Wenn der Adapter die Busbewilligung empfängt, aktiviert die Schnittstellen-Steuerlogik 15 das Signal für die Bestätigung der Busbewilligung, und führt dann der Reihe nach folgende Schritte aus:
  • Der Adapteradreßbus wird zum DMA-Adreßbus durchgelassen, außer wenn Bit 23 in den inaktiven Zustand gesteuert wird, um die richtige Abbildung in den System-RAM zu erreichen.
  • Die Steuersignale des Adapters werden zu den DMA-Steuersignalen durchgelassen und zeitlich so gesteuert, daß sie die zeitlichen Festlegungen des Prozessors erfüllen.
  • Da dies eine Schreiboperation ist, wird der Datenbus des Adapters zum DMA-Datenbus durchgelassen.
  • Die Speichersteuerlogik in der Datenfernverarbeitungs-Steuereinheit führt die Schreiboperation in den System-RAN aus und aktiviert das Datenübertragungs-Bestätigungssignal an den Adapter, wenn die Daten in den RAN geschrieben werden.
  • Wenn der Adapter das Datenübertragungs-Bestätigungssignal empfängt, deaktiviert die Schnittstellen-Steuerlogik sequentiell die Signale zur DMA-Schnittstelle, und der Adapterprozessor vollendet den Zyklus der Schreiboperation.
  • Diese Folge wird für jedes von der Datenfernverarbeitungs-Leitung empfangene Byte wiederholt, bis das Blockende empfangen wird.
  • Schnittstellensteuerung für Sendebetrieb
  • Wenn ein Adapter eine DMA-Leseoperation ausführt, führt der Adapter eine Leseoperation aus, bei der Bit 23 aktiv ist. Eine Operation mit aktivem Bit 23 setzt einen DMA-Anforderungszwischenspeicher in der Schnittstellen-Steuerlogik 15. Dies aktiviert eine DMA-Busanforderung an die Datenfernverarbeitungssteuereinheit. Die Entscheidungslogik in der Datenfernverarbeitungs-Steuereinheit aktiviert ein Busbewilligungssignal an den Adapter, wenn der Adapter der Adapter der höchsten Priorität mit einer aktiven DMA-Busanforderung wird. Während der Zeit zwischen Busanforderung und Busbewilligung wird der Adapter im Lesezyklus gehalten, wobei sein Adreßbus, sein Datenbus und seine Steuersignale aktiv sind. Wenn der Adapter die Busbewilligung empfängt, aktiviert die Schnittstellen-Steuerlogik 15 das Busbewilligungsbestätigungs-Signal und führt dann der Reihe nach folgendes aus:
  • Der Adapteradreßbus wird zum DMA-Adreßbus durchgelassen, außer wenn Bit 23 in den inaktiven Zustand gesteuert wird, um die richtige Abbildung in den System-RAN zu erreichen.
  • Die Steuersignale des Adapters werden zu den DMA-Steuersignalen durchgelassen und zeitlich so gesteuert, daß sie die zeitlichen Festlegungen des Prozessors erfüllen.
  • Da dies eine Schreiboperation ist, wird die Schnittstellen-Steuerlogik 15 des Adapters so eingestellt, daß sie Daten von der DMA-Schnittstelle empfängt.
  • Die Speichersteuerlogik in der Datenfernverarbeitungs-Steuereinheit führt die Leseoperation in den System-RAN aus und aktiviert das Datenübertragungs-Bestätigungssignal an den Adapter, wenn die Daten auf der DMA-Schnittstelle aktiv sind.
  • Wenn der Adapter das Datenübertragungs-Bestätigungssignal empfängt, deaktiviert die Schnittstellen-Steuerlogik 15 sequentiell die Signale zur DMA-Schnittstelle, wenn der Adapterprozessor den Zyklus der Leseoperation beendet.
  • Diese Folge wird für jedes zur Datenfernverarbeitungs-Leitung zu sendende Byte wiederholt, bis der DMA-Sendezähler null wird.
  • Auf Grund der vorhergehenden Beschreibung kann eingeschätzt werden, daß sowohl der programmierbar anpaßbare Protokolladapter und die Anschlußschnittstellen-Datenfernverarbeitungs-Steuereinheit als auch ihre kombinierte Konfiguration mit der abtastfreien Datenfernverarbeitungs-Steuereinheit beide stark auf der einzigartigen Struktur, Architektur und Steuerlogik der DIAC 3 beruhen. Die DIAC 3 ist einzigartig in der Weise, daß sie sowohl die Entscheidung für direkten Speicherzugriffals auch die Unterbrechungsentscheidung für eine relativ große Zahl von Kanälen behandelt. Es sind keine früheren Architekturen oder Strukturen bekannt, die diese Funktion sowohl für DMA als auch für unterbrechungsgesteuerte Mehrfachanschluß-Datenfernverarbeitungs-Vorrichtungen durchführen. Diese Erfindung stellt ein verbessertes Mittel zur Übertragung von Daten dar, zu oder von zahlreichen Datenfernverarbeitungs-Kanalgeräten, wie zum Beispiel USARTs 2 innerhalb eines auf einem Prozessor beruhenden Datenfernverarbeitungs-Systems, auf eine Art und Weise, daß der optimale Datenübertragungsmodus für jeden Kanal individuell so programmiert werden kann, wie es die Systemumgebungsbedingungen erfordern. Die Erfindung stellt weiterhin eine hardwareeffektive Architektur zur Realisierung von Datenübertragungen mit minimalen Anforderungen an die aktuell bedienten Geräte zur Verfügung.
  • Überblick über die DIAC-Steuereinheit
  • Die DMA-/Unterbrechungssteuereinheit oder DIAC-Steuereinheit 3, wie sie hier genannt wurde, ist der Schlüssel zu der über ihr konstruierten Datenfernverarbeitungs-Steuereinheit. Eine primäre System-Hardware-Architektur-Betrachtung im Datenfernverarbeitungs-Bereich ist der Mechanismus, der für die Übertragung von Daten zwischen Empfängern und Sendern verwendet wurde. Wenn die Empfänger der Speicher des Prozessors und die Sender die Eingabepuffer sind oder umgekehrt für die entgegengesetzte Datenübertragungs-Richtung, dann sind die zeichengesteuerte Unterbrechungsmethode und die direkte Speicherzugriffs-Datenbewegungs- Methode zwei übliche und unterschiedliche Vorgehensweisen für den Datenservice.
  • Bei der unterbrechungsgesteuerten Zeichenservicemethode unterbricht ein Datenfernverarbeitungs-Gerät, typischerweise ein US- ART, einen Prozessor, wenn er bereit ist, das Datenzeichen zu senden oder zu empfangen. Nachdem der Prozessor das unterbrechende Gerät über einen eindeutigen Unterbrechungsvektor identifiziert hat, der vom Gerät übergeben wurde, lädt er üblicherweise eine Unterbrechungsserviceroutine, die ihn eventuell veranlaßt, die Datenübertragungsoperation auszuführen. Es ist gewöhnlich üblich, die Daten zu oder von einem Pufferbereich in einem RAN zu übertragen. Wenn das unterbrechende Gerät ein Empfänger ist, dann wird der Hauptprozessor demzufolge auf seine Empfangsdaten zugreifen und sie in seinen geeigneten RAN-Bereich schreiben. Wenn das Gerät ein Sender ist, dann wird der Hauptprozessor umgekehrt auf den geeigneten RAN-Bereich zugreifen und Daten für das Senden in den Sender übertragen. Dieser Mechanismus erlaubt einen relativ einfachen Systementwurf, ist aber bezüglich der Anzahl der Prozessorzyklen, die für die Durchführung der Übertragung erforderlich sind, sehr aufwendig.
  • Ein weiterer, zur Realisierung der Datenübertragung weithin benutzter Mechanismus ist die Methode des direkten Speicherzugriffs. Im allgemeinen verwendet diese Methode einen speziellen Prozessor, der als DMA-Steuereinheit bezeichnet wird. Dieser führt die Übertragung aus, indem die Steuerung der angeforderten Busse übernommen wird und die Daten zwischen dem Empfänger oder dem Sender und dem Haupt-RAN des Systems ohne ständige Einbeziehung des Prozessors bewegt werden. Eine DMA-Steuereinheit bewegt einen Datenblock, bevor der Hauptprozessor unterbrochen wird. Obwohl diese Methode für die Behandlung von Kommunikationskanälen mit Blockdatenbewegungen effektiv ist, fügt sie dem Gesamtsystementwurf einen bedeutenden Grad an Komplexität und Nichtflexibilität hinzu. Weiterhin behandeln verfügbare DMA-Steuereinheitsgeräte typischerweise relativ wenige Kanäle, in der Größenordnung von zwei bis vier, und die Nachteile werden signifikant, wenn das System viele Kanäle im DMA-Modus behandeln muß, wie beispielsweise in der vorliegenden Erfindung.
  • Aus dem bereits Gesagten ist einzuschätzen, daß die optimale Datenübertragungsmethode für einen gegebenen Kanal von der Art der Übertragung abhängt, die für diesen Kanal zu irgendeinem gegebenen Zeitpunkt beabsichtigt ist. Wenn beispielsweise ein Kanal 1 Daten unter Benutzung eines synchronen Datenverbindungssteuerungs- (SDLC) Protokolls senden soll, üblicherweise bei einer hohen Baudrate, dann ist die DMA-Betriebsart vorzuziehen. Wenn umgekehrt ein anderer Kanal, Kanal 5, die Daten mit einer relativ niedrigen Baudrate in einem Start/Stopp-Format empfangen soll, ist es vorteilhaft, diesen Kanal in einem unterbrechungsgesteuerten Zeichenmodus zu bedienen. Unglücklicherweise bestimmt gewöhnlich der für die Datenübertragung in einem bestimmten Kanal ausgewählte Mechanismus die Hardware der gesamten Systemarchitektur. Dies erlegt den Systemen, die zur Behandlung einer Vielzahl von Datenfernverarbeitungs-Kanalkonfigurationen entworfen sind, strenge Beschränkungen auf. Beispielsweise müssen Datenfernverarbeitungs-Anschlüsse, die für die Behandlung von Start/Stopp-Geräten geringer Geschwindigkeit in einer Anwendung entworfen wurden, nicht alle geeignet sein, Informationsübertragungen bei Geräten hoher Geschwindigkeit vom SDLC-Typ zu behandeln. Weiterhin kann die dynamische Rekonfiguration von Datenübertragungsmechanismen für einen gegebenen Kanal ohne außergewöhnliche Hardwaremodifikationen ganz unmöglich sein.
  • Für dieses spezielle und schwierige Problem wurde die Entscheidungs- und Steuereinheits-Architektur für direkten Speicherzugriff/Unterbrechungen entwickelt, wie sie beispielhaft von der bevorzugten Ausführungsform der DIAC 3 dargestellt wird. Das Ergebnis der Architektur wurde in einen einzelnen NMOS-VLSI-Chip mit den folgenden allgemeinen Eigenschaften eingebaut:
  • Die DIAC 3 stellt einen Hochleistungs-Datenübertragungs-Mechanismus zur Verfügung und kann eine Vielzahl von Datenfernverarbeitungs-Kanälen gleichzeitig behandeln. Bei der in dieser Anwendung dargestellten bevorzugten Ausführungsform werden zwanzig Kanäle implementiert, aber eigentlich gibt es keine architektonische Grenze für die Zahl der Kanäle, die bedient werden könnten. Die Architektur stellt auch für jeden Kanal eine optimale Datenübertragungsmenge zur Verfügung, die selektiv modifiziert werden kann. Weiterhin kann der Datenfernverarbeitungs-Modus zu beliebiger Zeit dynamisch rekonfiguriert werden. Zusätzlich ist die Schnittstelle einfach genug, so daß die DIAC-Architektur in einer Vielzahl von auf Prozessoren beruhenden Systemen angewendet werden kann, die anders beschaffen sind als das aktuell ins Auge gefaßte und in der bevorzugten Ausführungsform erklärte. Die Architektur ermöglicht, daß eine große Zahl von Datenfernverarbeitungs-Kanälen mit einer Minimalmenge von Hardware und Zwischenverbindungen bedient wird. Von Fachleuten kann eingeschätzt werden, daß bedeutende Kosteneinsparungen entstehen. Fig. 1 zeigt eine DIAC 3, die sich innerhalb des programmierbar anpaßbaren Protokolladapters und der Erfindung der Anschlußschnittstellen-Datenfernverarbeitungs-Steuereinheit befindet.
  • Die Schnittstelle zur DIAC besteht aus folgendem:
  • Individuelle Anforderungseingänge von jedem Datenfernverarbeitungs-Kanal sind mit der DIAC 3 verbunden. Im dargestellten Fall sind die Datenfernverarbeitungs-Vorrichtungen universelle Asynchron-Synchron-Sender-Empfänger, die als USARTs 2 bekannt sind. Jeder USART bedient zwei Empfangs- und zwei Sendekanäle, wenn die vom Hersteller gelieferten Standard-USARTs vom früher erwähnten Typ verwendet werden. Von den USARTs wird immer dann eine Anforderung aktiviert, wenn ein Kanal ein Datenzeichen empfangen oder senden möchte. Die anderen Schnittstellen sind Buszugriffssteuerungen, die benutzt werden, um während der DMA-Operationen die Steuerung der Systembusse zu übernehmen. Diese Steuerleitungen bestehen aus der DMA-Busanforderung, der DMA- Busbewilligung und den DMA-Busbewilligungsbestätigungs-Signalen. In dem dargestellten System kommunizieren diese Signale direkt mit dem Hauptprozessor 5 in Fig. 1. Zusätzliche Schnittstellensignale sind die Unterbrechungssteuerungen, um den Status zum Prozessor 5 zu übertragen, sowie die Adreß-, Daten- und Steuerbusse für Datenübertragungsoperationen. Diese Schnittstellen sind ganz einfach und können leicht an eine Vielzahl von Prozessoren und USARTs mit minimalen Anforderungen angepaßt werden, mit Hilfe spezieller Steuerlogik-Schnittstellen, wie noch einzuschätzen sein wird.
  • In dem in Fig. 1 dargestellten Aufbau hat jede der fünf im System verwendeten USARTs 2 zwei Empfänger und zwei Sender mit individuellen Anforderungsleitungen für jeden Kanal. Wie in Fig. 1 dargestellt, sind die Anforderungsleitungen mit DIAC 3 verdrahtet und mit Anforderung 0 bis Anforderung 19 gekennzeichnet. Vereinbarungsgemäß werden in diesem Aufbau ungerade numerierte Anforderungsleitungen als von den Empfangskanälen kommend bezeichnet, während gerade numerierte Anforderungsleitungen von den Sendekanälen kommen. Die DIAC 3 erleichtert die Datenübertragung zwischen den USART-2-Kanälen und dem Systemspeicher (entweder Haupt-RAN, EPROM oder EEPROM oder der Hauptprozessor 5) entweder mit Hilfe der DMA-Methode oder der unterbrechungsgesteuerten Zeichenmethode. Die DIAC 3 kann so gesteuert werden, daß jeder der 20 Kanäle in jedem Datenübertragungsmodus bedient werden kann. Die Hauptoperation besteht aus der Übergabe einer Anforderung, wenn ein bestimmter Kanal einen Datenübertragungsservice anfordert. Die DIAC 3 bedient dann die Anforderung entsprechend dem für diesen Kanal bezeichneten Datenübertragungsmodus.
  • Einzelheiten der DIAC 3
  • Fig. 6 zeigt ein Blockdiagramm der bevorzugten Ausführungsform der DIAC 3, wie sie in dieser Erfindung realisiert wurde. Die DIAC kann so betrachtet werden, als hätte sie zwei verschiedene und unabhängige Funktionen. Die erste Funktion ist die Ausführung der Datenübertragung über den DMA-Betriebsmodus. Die andere Funktion ist dem unterbrechungsgesteuerten Zeichen-Datenübertragungsmodus gewidmet. Wie in Fig. 6 dargestellt, bilden die Blöcke 30 bis 35 einen speziellen DMA-Datenfernverarbeitungs- Prozessor. Die Blöcke 36 und 37 bilden einen speziellen unterbrechungsgesteuerten Datenfernverarbeitungs-Prozessor. Die DIAC 3 besitzt eine MM-E/A-Decodier- und Steuereinheit 38, einen Datenbus und die System-Schnittstellenlogik, die zwischen den zwei Basisübertragungsprozessoren geteilt werden.
  • Ankommende Anforderungen können gleichzeitig vom DMA-Anforderungsinterpreter und -entscheider 30 und vom Unterbrechungsanforderungs-Interpreter und -entscheider 36 empfangen werden. Diese beiden Einheiten enthalten programmierbare Register. Das DMA-Freigaberegister 50 in Fig. 6 und das Zeichenunterbrechungs- Freigaberegister 68 in Fig. 11 zeigen an, welche Kanäle in welchem Datenübertragungsmodus zu bedienen sind. Wenn ein Kanal eine Anforderung aktiviert hat und die DIAC 3 so programmiert wurde, daß dieser Kanal im DMA-Modus bedient wird, führt der DMA-Prozessor in den Blöcken 30 bis 35 von Fig. 6 die Übertragung aus. Wenn dieser Kanal seine Anforderungsleitung aktiviert hat und an der DIAC so programmiert wurde, daß in einem unterbrechungsgesteuerten Zeichenmodus bedient wird, bedienen die Unterbrechungsprozessor-Vorrichtungen der Blöcke 36 und 37 in Fig. 6 die Übertragung.
  • Die Auswahl, welcher Kanal zu bedienen ist und in welchem Datenfernverarbeitungs-Modus, ist eine anwendungsspezifische Entscheidung auf der Grundlage der Auswahl der am Anfang im EEPROM Nr. 7 in Fig. 1 gespeicherten Konfiguration.
  • Die Programmierung der Steuerregister der DIAC 3 wird vom Hauptprozessor 5 in Fig. 1 bei der Initialisierung ausgeführt. Der Prozessor 5 lädt die Konfigurationsdaten vom EPROM und schreibt sie in die Freigaberegister, wobei die geeigneten speicherbezogenen E/A-Adressen benutzt werden, die diesen Registern in der MM-E/A-Abbildung des Hauptprozessors 5 zugeordnet wurden. Jedes Bit in den Freigaberegistern ist auf einen einzigen Datenfernverarbeitungs-Kanal 0 bis 19 bezogen. Wenn ein Bit im DMA- Freigaberegister gesetzt ist, gibt es den entsprechenden Kanal frei, der im DMA-Modus zu bedienen ist. Ein im Zeichenunterbrechungs-Freigaberegister gesetztes Bit gibt in ähnlicher Weise den entsprechenden Kanal frei, der im Unterbrechungsmodus zu bedienen ist.
  • Wenn beispielsweise die Bits 1, 5 und 7 im DMA-Freigaberegister 50 gesetzt sind, dann werden die Kanäle 1, 5 und 7 im DMA-Modus bedient. Wenn in ähnlicher Weise die Bits 0, 9 und 15 im Unterbrechungs-Freigaberegister 68 gesetzt sind, dann werden diese Kanäle im Unterbrechungsmodus bedient. Wenn für einen bestimmten Kanal keines seiner zugeordneten Bits gesetzt ist, dann wird er überhaupt nicht bedient. Dieser Aspekt ergibt eine Vielzahl von Anwendungen, die wichtigste ist die für die Fehlerisolationsroutinen.
  • Beispiel für den unterbrechungsgesteuerten Zeichenmodus der Datenübertragung
  • Der unterbrechungsgesteuerte Zeichenmodus der Datenübertragung enthält drei verschiedene Operationen: Entscheidung zwischen gleichzeitigen Anforderungen des Unterbrechungsmodus für die Datenübertragung, die eine einzelne Unterbrechung an den Prozessor 5 liefern und eine eindeutige Vektornummer für den anfordernden Kanal mit der höchsten Priorität zur Verfügung stellen, um den Prozessor 5 an den geeigneten Platz im Haupt-RAN zur Serviceroutine der gegebenen Übertragung am gegebenen Kanal zu steuern. Diese Operationen werden in der bevorzugten Ausführungsform, die in Fig. 6 und Fig. 12 dargestellt ist, wie folgt bereitgestellt.
  • Die Anforderungen werden vom Zeichenunterbrechungs-Anforderungsregister 68 in Fig. 12 während jedes Taktes abgefragt. Kanäle, die eine aktive Anforderung haben und bei denen ihre entsprechenden Bits im Zeichenunterbrechungs-Freigaberegister 69 gesetzt sind, werden so interpretiert, als ob sie wartende Zeichenunterbrechungs-Serviceanforderungen hätten. Diese Anforderungen können durch das Zeichenunterbrechungs-Anforderungsgatter 71 laufen, vorausgesetzt, das Zeichenunterbrechungsmaster-Freigaberegister 70 ist gesetzt. Es können keine Anforderungen durch das Gatter 71 laufen, wenn das Zeichenunterbrechungsmaster-Freigaberegisterbit im Register 70 zurückgesetzt ist.
  • Für Illustrationszwecke sei angenommen, daß sowohl der Kanal 5 als auch der Kanal 14 willkürlich so konfiguriert wurden, daß sie im Zeichenunterbrechungsmodus bedient werden. Dies bedeutet, daß die Bits 5 und 14 im Unterbrechungs-Freigaberegister 69 gesetzt und die Bits 5 und 14 im DMA-Freigaberegister 50 von Fig. 7A zurückgesetzt wurden. Wir wollen weiterhin annehmen, daß ungerade Kanäle Empfangskanäle sind, wie früher angemerkt wurde. Kanal 5 ist deshalb ein Empfangskanal vom USART 2, und Kanal 14 ist ein Sendekanal vom USART 4. Wir wollen weiter annehmen, daß beide Kanäle ihre Anforderungen zur gleichen Zeit aktiviert haben und daß das Zeichenunterbrechungsmaster-Freigabebit im Register 70 gesetzt wurde. Die Anforderungen werden deshalb im Zeichenunterbrechungs-Anforderungsregister 68 in der nächsten sich anschließenden Taktperiode nach der Übergabe der Anforderungen zwischengespeichert. Da beide Kanäle für den Unterbrechungsservice freigegeben sind, wird der Unterbrechungszwischenspeicher 73 über einen Ausgang des ODER-Gatters 72 gesetzt, so wie in Fig. 12 dargestellt. Dies aktiviert die Zeichenunterbrechungs-Leitung zur System-Unterbrechungssteuerlogik 4 in Fig. 1, die die Unterbrechung zum Hauptprozessor 5 überträgt.
  • Die im Zeichenunterbrechungs-Anforderungsregister 68 in Fig. 12 gespeicherten Anforderungen laufen durch das Anforderungsgatter 71 zur Prioritätscodierungslogik 74. Die Prioritätscodierungslogik empfängt alle 20 Eingangsleitungen und erzeugt einen eindeutigen 5-Bit-Code, der den Kanal mit der höchsten Priorität mit einer aktiven freigegebenen Anforderung darstellt. Der Code ist eine binäre Darstellung einer Anforderungsnummer. Beispielsweise würde der mit der Anforderung 0 verbundene Kanal einen Code 00000 haben, und die Anforderung, die mit Kanal 1 verbunden ist, würde gleich 00001 sein usw. Dies wird als Identifikationsnummer des Kanals bezeichnet. Das Prioritätscodierungs-Schema beruht auf der physikalischen Verbindung der Anforderungsleitungen mit dem DIAC-Chip 3. Je höher die der Anforderung zugeordnete Zahl ist, desto höher ist ihre Priorität. In diesem Beispiel wäre der erzeugte Code eine binäre 14, die darstellt, daß Kanal 14 die höchste wartende Anforderung hat. Wenn der Hauptprozessor 5 einen Unterbrechungsbestätigungs-Zyklus für die übergebene Zeichenunterbrechung durchführt, aktiviert die System-Unterbrechungssteuerlogik 4 in Fig. 1 das Zeichenunterbrechungsbestätigungs-Signal an den Unterbrechungsprozessor von Fig. 6 und an die System-Schnittstellenlogik 39 in Fig. 6. Ein Zeichen-IACK-Signal wird auch zum Zeichenunterbrechungs-Anforderungsregister 68 in Fig. 12 geführt, so wie dargestellt.
  • Dieses Signal hat verschiedene Auswirkungen. Das Signal bewirkt, daß die fünf Bits der Identifikationszahl der Prioritätscodierungslogik 74 in Fig. 12 zu den unteren 5 Bits des Datenbusses durchgelassen werden. Es bewirkt auch, daß die drei im Zeichenunterbrechungs-Vektornummernregister 75 gespeicherten Bits zu den oberen drei Bits der unteren Hälfte des Systemdatenbusses (Bits 5, 6 und 7) durchgelassen werden. Dies ergibt die Unterbrechungsvektornummer für Kanal 14.
  • Zusätzlich wird das Unterbrechungsanforderungs-Register 68 bei Aktivierung des Zeichenunterbrechungsbestätigungs-Signals eingefroren, d. h. in seinem aktuellen Zustand gesperrt.
  • Die Anforderungen werden erst in das Anforderungsgatter 71 geladen, wenn der Unterbrechungsbestätigungs-Zyklus abgeschlossen ist. Dies verhindert, daß die Vektornummer auf dem Datenbus verändert wird, während sie vom Prozessor 5 gelesen wird. Wenn beispielsweise Kanal 15 seine Anforderungsleitung während dieses Zyklusses aktivieren würde, würden sich die auf den Datenbus durchgelassenen fünf Bits der Identifikationsnummer ändern, weil Kanal 15 eine höhere Priorität hat als Kanal 14. Wenn demzufolge die Vektornummer auf dem Bus stabil ist, informiert die System- Schnittstellenlogik 39 in Fig. 6 den Prozessor 5, indem das Signal Datenübertragungsbestätigung aktiviert wird. Der Prozessor 5 liest die Vektornummer und verzweigt dann zur Serviceroutine im Haupt-RAN, die in diesem Servicemodus Kanal 14 bedient.
  • Innerhalb der Serviceroutine führt Prozessor 5 die angeforderte Datenübertragung aus. Da Kanal 14 der sendende Kanal ist, muß er Daten senden und Daten empfangen, um sie auf seiner Datenfernverarbeitungs-Leitung abzusenden. Deshalb lädt der Prozessor 5 ein Datenbyte aus dem RAN 6 oder dem EPROM 8, wo sich die Sendedaten von Kanal 14 befinden können, und schreibt sie in den Sendepuffer von USART 4, der Kanal 14 bedient. Wenn die Daten einmal in den Sendepuffer geschrieben sind, entfernt Kanal 14 seine Unterbrechungsanforderung. Da die Anforderungen während jedes Taktes außer während des IAC-Zyklusses abgefragt werden, setzt dies seinerseits das entsprechende Bit im Zeichenunterbrechungs- Anforderungsregister 68 in Fig. 12 zurück.
  • Da jedoch Kanal 5 noch nicht bedient wurde, bleibt seine Anforderung aktiv, und dies hält die Zeichenunterbrechungs-Leitung über das ODER-Gatter 72 und den Unterbrechungszwischenspeicher 73 aktiv, um der System-Unterbrechungssteuerlogik 4 in Fig. 1 kontinuierlich eine Anforderung zu präsentieren. Da im Prozessor 5 noch eine Unterbrechung wartet, führt der Prozessor 5 eventuell einen weiteren IAC-Zyklus aus. Unter der Voraussetzung, daß keine Unterbrechung mit höherer Priorität vor dem IAC-Zyklus aktiviert wurde, ist die nächste in unserem Beispiel erzeugte Vektornummer die für Kanal 5. Da Kanal 5 ein Empfangskanal ist, zeigt seine Anforderung an, daß er ein Datenbyte von seiner Datenfernverarbeitungs-Leitung empfangen hat. Prozessor 5 führt dann eine MM-E/A-Operation aus, um den Empfangspuffer des USARTs 2, der Kanal 5 behandelt, zu lesen und ihn in den Pufferbereich des Kanals im RAN 6 zu schreiben. Kanal 5 entfernt dann seine Anforderung, wenn sein Empfangspuffer gelesen wurde, und da in diesem Beispiel keine weiteren aktiven Anforderungen vorhanden sind, wird die wartende Unterbrechung am Hauptprozessor 5 deaktiviert. Alle im Unterbrechungsmodus konfigurierten Kanäle werden auf diese Art behandelt.
  • DMA-Datenfernverarbeitungs-Modus - Allgemeiner Überblick
  • Im DMA-Modus kann entweder ein Empfangs- oder ein Sendeservice existieren. Bei einer Empfangsoperation hat der Empfangskanal des USARTs 2 in der DIAC selbst konfiguriert, daß er im DMA-Modus bedient wird. Eine Anforderung von solch einem Kanal zeigt der DIAC 3 an, daß er ein Datenbyte von der Datenfernverarbeitungs-Leitung angesammelt hat und im DMA-Modus bedient werden muß. Der DMA-Prozessor bedient die Anforderung durch Übertragung des Inhaltes des geeigneten USART-Kanalempfangspuffers auf einen speziellen Platz im RAN 6. Während einer Sendeoperation zeigt der USART-Sendekanal, der so konfiguriert wurde, daß er im DMA- Modus bedient wird, daß sein Puffer leer ist, indem er seine Anforderungsleitung aktiviert. Der DMA-Prozessor überträgt dann die Daten von einer speziellen Stelle im RAN 6 in den geeigneten Sendepuffer des USART-2-Kanals.
  • Da es gewöhnlich am wünschenswertesten ist, für einen gegebenen Kanal einen vollen Datenblock zu übertragen, können die obigen Operationen für eine bestimmte Zahl von Übertragungen ohne Eingriff des Hauptprozessors 5 fortgesetzt werden. Bevor jedoch irgendeine Übertragung stattfinden kann, muß der DMA-Prozessor wissen, welcher Kanal bedient wird, er muß die Quell- und Zieladresse im RAN 6 und die Anzahl der so zu übertragenden Datenbytes kennen. Kanalidentifikationsnummer werden aus einer Einszu-Eins-Abbildung zwischen den Anforderungsleitungen und den USART-Kanälen abgeleitet.
  • Die Quell- und die Zieladresse und die Bytezählinformation wird im internen RAN 31 in Fig. 6 des Chips der DIAC 3 gespeichert. Der interne RAN ist ein einzigartiger Aspekt der Architektur und der physikalischen Struktur und ist selbst logisch in Steuerblöcke unterteilt. Jeder Kanal besitzt einen zugeordneten Steuerblock im RAN 31, unabhängig von seinem Datenübertragungsmodus in der Konfiguration. Da der Chip der DIAC 3 20 Kanäle unterstützt, gibt es in seinem internen RAN 31 20 Steuerblöcke. Jeder Steuerblock enthält zwei Informationsfelder, das Feld für die Quell-/Zieladresse und das Bytezählerfeld.
  • Fig. 9 zeigt die Organisation des Steuerblocks innerhalb des internen RANs 31 und seine Zuordnung zu den verschiedenen Datenfernverarbeitungs-Kanälen. Für jeden im DMA-Modus zu bedienenden Kanal muß sein entsprechender Steuerblock initialisiert sein. Wenn der Kanal als Empfänger bezeichnet ist, muß sein Adreßfeld die Startadresse im Systemspeicher 6 enthalten, wo die ankommenden Daten gespeichert werden sollen. Das Zählfeld muß die Anzahl der in den Speicher 6 zu übertragenden Bytes enthalten, bevor der Prozessor 5 informiert wird. Wenn der Kanal ein Sender ist, muß das Adreßfeld die Startadresse im Systemspeicher 6 enthalten, wo die Daten zu lesen und zum Sender zu bringen sind. Ein Zählfeld zeigt an, wie viele Daten in dem Block zu übertragen sind. Beide Felder enthalten vier Bytes, es werden jedoch nur drei für die DMA-Adresse benutzt, und zwei werden für den Bytezähler verwendet. Der freie Platz wird nicht benutzt, aber die Organisation wurde von der Technologie der Implementierung bestimmt.
  • Die Quelle für diese Anfangsinformationsfelder ist im benutzerprogrammierten EPROM 8 in Fig. 1, und sie werden von dem Steuerprogramm, das im Prozessor 5 arbeitet, von dort geladen und verwaltet. Der Prozessor 5 lädt die Information vom Speicher 8 und schreibt sie in den IRAN 31 der DIAC 3, wobei die geeigneten MM-E/A-Adressen für den Zugriff auf den IRAN verwendet werden. Die MM-E/A-Decodiersteuereinheit 38 der DIAC 3 in Fig. 6 stellt die Steuersignale zur Verfügung, die es erlauben, daß der interne RAN dem Systemprozessor 5 für Lesen und Schreiben zugänglich ist.
  • Wenn der Systemprozessor 5 den geforderten Steuerblock des internen RANs 31 initialisiert hat, kann er die entsprechenden Kanäle für die DMA-Übertragung freigeben. Der Prozessor 5 erhält die Daten vom EPROM 8 in Fig. 1 oder vom RAN 6 in Fig. 1 und schreibt sie in das DMA-Freigaberegister 50 von Fig. 7, wobei die geeigneten MM-E/A-Adressen für die Adressierung von Register 50 benutzt werden. Dann kann der Prozessor das DMA-Masterfreigaberegister 51 setzen, und die DIAC 3 wird für diesen Kanal für die DMA-Übertragung freigegeben.
  • Der DMA-Datenübertragungsmodus besteht aus vier verschiedenen Operationen. Zuerst muß eine Entscheidung zwischen gleichzeitig auftretenden DMA-Datenfernverarbeitungs-Anforderungen getroffen werden. Als zweites gibt es einen Zugriff auf den Steuerblock eines Kanals und dessen Aktualisierung. Dann wird die Steuerung der Systembusse angefordert und schließlich der DMA-Zyklus ausgeführt. Der DMA-Anforderungsinterpreter und -entscheider 30 in Fig. 6 empfängt die Anforderung von den USART-Kanälen. Er bestimmt, welche Kanäle im DMA-Modus zu bedienen sind, priorisiert sie im Fall von mehreren Anforderungen und zeigt der internen Zyklussteuereinheit 33 und der DMA-Zyklussteuereinheit 34, welcher Kanal zuerst zu bedienen ist.
  • Die interne Zyklussteuereinheit 33 (ICC) ist in Fig. 8 dargestellt und besteht aus der Zustandssteuerlogik 53, einem Fensterzeitgeber 54, einem internen RAN-Datenpuffer 55 und einer Inkrementier/Dekrementier-Logiksteuerschaltung 56. Die interne Zyklussteuereinheit 33 ist verantwortlich dafür, die Anf orderungsabfrage und -entscheidung in eine Reihenfolge zu bringen, den internen RAN-Steuerblock des Kanals zu laden und zu aktualisieren, den Zugriff auf die Systembusse anzufordern und der DMA- Zyklussteuereinheit 34 anzuzeigen, wenn ein DMA-Zyklus beginnt.
  • Die DMA-Zyklussteuereinheit 34 (DCC) ist in Fig. 10 dargestellt und besteht aus einer Zustandssteuerlogik 57, einem DMA-Adreßregister 58, einem Busmasterregister 59, einem Busmasterdecodierer 60 und einem USART-Schnittstellendecodierer 61. Die DMA-Zyklussteuereinheit 34 ist für die tatsächliche Ausführung des DMA-Zyklus verantwortlich.
  • DMA-Datenübertragungsmodus - Allgemeine Beschreibung des Daten- und Steuerflusses
  • Der DMA-Anforderungsinterpreter und -entscheider 30 in Fig. 6 erhält Anforderungen von den USART-Kanälen. Er generiert einen eindeutigen Code, der den anfordernden Kanal mit der höchsten Priorität identifiziert, der im DMA-Modus zu bedienen ist. Er überträgt diesen Code, den Identifizierungscode für die Kanalanforderung, zur internen Zyklussteuereinheit 33. Als nächstes tritt eine Folge paralleler Operationen auf, die den Anforderungsinterpreter und -entscheider 30, die interne Zyklussteuereinheit 33 und die DMA-Zyklussteuereinheit 34 betreffen. Als erstes benutzt die interne Zyklussteuereinheit 33 den vom Entscheider 30 generierten Identifizierungscode, um auf den Steuerblock des Kanals im internen RAN 31 innerhalb der DIAC 3 zuzugreifen. Sie lädt von dort die Quell- oder Zieladresse. Die interne Zyklussteuereinheit 34 überträgt diese Adresse eventuell zu einem geeigneten Zeitpunkt zur DMA-Zyklussteuereinheit und dekrementiert diese Adresse auch um 1 und speichert sie an ihren ursprünglichen Platz zurück. Die interne Zyklussteuereinheit 33 fordert dann den Zugriff auf die Systembusse an, indem das DMA- Busanforderungssignal aktiviert wird.
  • Gleichzeitig überprüft der Entscheider 30, daß der anfordernde Kanal noch den Service fordert und daß dies nicht etwa ein Rauschimpuls ist. Der Hauptprozessor 5 in Fig. 1 bewilligt eventuell den Zugriff auf die Systembusse, indem das DMA-Busbewilligungssignal aktiviert wird. Wenn die Anforderung als gültig anerkannt wurde, speichert die DMA-Zyklussteuereinheit 34 die Adresse und den Identifizierungscode zwischenzeitlich in ihre Register und leitet den DMA-Zyklus ein. In der Zwischenzeit hat die interne Zyklussteuereinheit 33 im Steuerblock im internen RAN 31 auf den Bytezähler des Kanals zugegriffen, ihn um 1 dekrementiert und wieder in den Steuerblock zurückgespeichert. Wenn festgestellt wurde, daß der Bytezähler auf 0 dekrementiert wurde, übergibt die DMA-Unterbrechungssteuerlogik 35 eine Unterbrechung an die System-Unterbrechungssteuerlogik in Fig. 1 und schaltet einen weiteren Service des Kanals ab, bis die Unterbrechung vom Prozessor 5 behandelt wurde.
  • Wenn mehr als eine DMA-Anforderung vom Entscheider 30 abgefragt worden wäre, würde vom Entscheider 30 ein weiterer Identifizierungscode erzeugt und an die interne Zyklussteuereinheit 33 übergeben. Die interne Zyklussteuereinheit 33 und der Entscheider 30 arbeiten wieder wie oben angemerkt, während der DMA-Zyklus ausgeführt wird. Die ICC und der Entscheider laden neue Quell- und Zieladressen und prüfen, ob die Anforderung, die bedient wird, gültig ist, in Vorbereitung des nächsten, sich anschließenden DMA-Zyklusses.
  • Es gibt also einen Pipeline-Betrieb der Vorbereitungs- und der Ausführungsschritte zwischen dem Entscheider 30, der ICC 33 und der DCC 34, so daß die DCC unverzüglich ohne Verzögerung zum nächsten Schritt übergehen kann, wenn die DCC den laufenden Zyklus beendet; demzufolge können alle Kanäle, die zu diesem Zeitpunkt aktive Anforderungen haben, ohne die Verzögerung bedient werden, die beim Zugriff auf den RAN zur erforderlichen Information auftritt.
  • Dies ist ein einzigartiger Aspekt der vorliegenden Erfindung, da anzunehmen ist, daß DMA-Zugriffssteuereinheiten bisher keine im RAN enthaltene Information benutzt haben, sondern Tabellen auf der Grundlage von Registern, die bezüglich der Chipfläche extrem aufwendig und teurer in der Herstellung sind.
  • Wenn der Bytezähler eines gegebenen Kanals auf 0 dekrementiert wurde, informiert die interne Zyklussteuereinheit 33 die DMA- Unterbrechungssteuereinheit von diesem Ereignis. Die Unterbrechungssteuereinheit 35 übergibt auch dem Hauptprozessor 5 eine Unterbrechung und verzögert einen weiteren Service des jeweiligen Kanals, bis der Prozessor 35 das Unterbrechungsbit des Kanals explizit zurücksetzt. Wenn der Prozessor 5 die Unterbrechung bestätigt, liefert die Unterbrechungssteuereinheit 35 eine eindeutige Vektornummer für den Kanal mit der höchsten Priorität, dessen Bytezähler auf 0 dekrementiert wurde. Dies steuert den Hauptprozessor 5 zur geeigneten Serviceroutine im Hauptspeicher 6, wo er irgendeine notwendige Verarbeitung ausführen kann. Beispielsweise kann vom Programmierer gewünscht werden, daß die Programmumsetzung beim Empfang eines Datenblocks für diesen Kanal ausgeführt werden muß. Wenn mehr als ein Bytezähler eines Kanals auf 0 dekrementiert wurde, hält die Unterbrechungssteuereinheit 35 die Unterbrechung aktiv und setzt die Übergabe von Vektornummern fort, bis alle individuellen Unterbrechungsbits zurückgesetzt wurden.
  • DMA-Datenübertragung - Spezielles Beispiel
  • Wir betrachten das folgende Beispiel für DMA-Übertragungen über zwei Kanäle, für die willkürlich die Kanäle 6 und 17 gewählt wurden. Wir rufen in Erinnerung zurück, daß in dieser Anordnung geradzahlig numerierte Kanäle gemäß Übereinkunft als Sendekanäle bezeichnet werden und daß ungerade Kanäle Empfangskanäle sind; Kanal 6 ist ein Sendekanal, der vom USART 2 bedient wird, während Kanal 17 ein Empfangskanal ist, der vom USART 5 bedient wird.
  • Bevor eine DMA-Operation beginnen kann, muß die DIAC 3 richtig initialisiert sein. Prozessor 5 lädt die Quelladresse für den Speicherplatz der Informationsübertragung von Kanal 6 und schreibt sie in die MM-E/A-Adresse im internen RAN 31, die für den Kanal 6 definiert ist. Diese Information wird in deren Quell/Ziel-Adreßfeld geschrieben. Die MM-E/A-Decodiersteuereinheit 38 der DIAC 3 in Fig. 6 bestimmt, daß die MM-E/A-Adresse den IRAN 31 der DIAC 3 darstellt. Sie aktiviert das Steuersignal Freigabe MM-E/A-Adresse, Daten und Lesen/Schreiben zum Datenselektor 32 des internen RANs. Dies erlaubt die Übergabe der Systemdaten, der Systemadreßbits 2 bis 5 und der Lese/Schreib-Leitung, die sich im Schreibmodus befindet, an den internen RAN 31. Wenn die Daten stabil und am internen RAN-Eingang gültig sind, aktiviert die Decodiersteuereinheit 38 das Signal Freigabe MM-- E/A-Auswahl. Dies überträgt ein Auswahlsignal in den internen RAN 31 und schreibt die Daten an den definierten Platz.
  • Die Steuereinheit aktiviert dann das Signal Datenübertragungsbestätigung, das anzeigt, daß die Übertragung stattgefunden hat. Der Prozessor 5 empfängt dieses Signal und beendet den Zyklus. Der Prozessor 5 lädt dann den Bytezähler für Kanal 6 und schreibt ihn in das Bytezählerfeld des Steuerblockes des internen RANs 31, der zum Kanal 6 gehört.
  • Ähnliche Operationen werden für Kanal 17 ausgeführt, mit Ausnahme dessen, daß das Adreßfeld ein Zeiger zu dem Ziel der Daten ist, da er ein Empfänger ist. Das Ziel befindet sich im Hauptspeicher 6.
  • Es soll vorausgesetzt werden, daß die Quelladresse von Kanal 6 eine dezimale 2000 und sein Bytezähler als willkürliches Beispiel gleich 20 ist. Für den Kanal 17 wird eine Zieladresse von dezimal 1000 und ein Bytezähler von 1 vorausgesetzt.
  • Als nächstes gibt der Prozessor 5 selektiv die Kanäle 6 und 17 für DMA-Übertragungen frei, indem die Bits 6 und 17 im DMA-Freigaberegister 50 von Fig. 7 gesetzt werden. Dies wird durch eine MM-E/A-Operation mit der Adresse erreicht, die dem DMA-Freigaberegister 50 der DIAC 3 zugeordnet ist. Die Steuerung der Operation geschieht durch die MM-E/A-Decodiersteuereinheit 38 der DIAC 3. Der Hauptprozessor 5 setzt dann das DMA-Masterfreigabebit 51 in Fig. 7, das die DIAC 3 für die DMA-Ausführung freigibt.
  • Bevor jedoch irgendein Kanal tatsächlich für die DMA-Operation freigegeben wurde, ist der DMA-Prozessor unter der Steuerung der internen Zyklussteuereinheit 33 von Fig. 6 in einen Anforderungs- und Abfragemodus eingetreten. Die ICC 33 erlaubt, daß der Zustand der Kanalanforderungen direkt über den Leitungsselektor 42 in Fig. 7 läuft, um vom DMA-Anforderungsregister 43 zwischengespeichert zu werden. Dies wird dadurch erreicht, daß die ICC 33 das Signal Abfragen der DMA-Anforderungen aktiviert. Das DMA- Anforderungsregister 43 wird dann mit jeder Taktperiode mit dem Status der Anforderungsleitung geladen, solange das Signal Abfrage der DMA-Anforderungen aktiv ist. Die Ausgänge des DMA-Anforderungsregisters 43 gehen dann zum DMA-Anforderungsgatter 44. Das Anforderungsgatter 44 erlaubt, daß die Anforderung eines bestimmten Kanals durchläuft, wenn sein entsprechendes Bit im DMA-Freigaberegister Nr. 50 in Fig. 7 gesetzt und das entsprechende Bit im DMA-Unterbrechungsregister 62 in Fig. 11 nicht gesetzt ist. Wenn das DMA-Masterfreigabebit 51 nicht gesetzt ist, darf keine Anforderung durchlaufen.
  • Aktive Signale am Ausgang des Anforderungsgatters 44 werden als wartende DMA-Anforderungen interpretiert. Wartende DMA-Anforderungen werden individuell entsprechend der Priorität ausgewählt und zu den drei Funktionsblöcken geschickt, die aus einem Vergleicher 49, einem ODER-Gatter 48 mit 20 Eingängen und einem 20- zu-5-Leitungscodierer 45 bestehen. Der Vergleicher 49 wird während der speziellen, nachfolgend zu diskutierenden Prüfoperation benutzt. Das ODER-Gatter wird benutzt, um die interne Zyklussteuereinheit über das Signal Beliebige-DMA-Anforderung zu informieren, ob eine oder mehrere aktive DMA-Anforderungen vorhanden sind. Der Codierer 45 arbeitet in der gleichen Weise, wie sie früher für den Unterbrechungsanforderungs-Codierer beschrieben wurde, d. h. die höchste Priorität wird der Anforderung zugeordnet, welche die höchste physikalische Position besitzt. Einem 5-Bit-Identifikationscode, der, wie früher diskutiert, der physikalische Positionscode ist, wird der aktive Anforderungsstatus mit der höchsten Priorität gegeben.
  • Die interne Zyklussteuereinheit 33 benutzt das Signal Beliebige-DMA-Anforderung, um zu bestimmen, ob ein oder mehrere Kanäle eine DMA-Übertragung fordern. Er fragt dieses Signal jedoch nicht in jeder Taktperiode ab, weil mehrere DMA-Anforderungen effektiver bedient werden können als einzelne DMA-Anforderungen, wie später diskutiert werden wird. Um die Wahrscheinlichkeit zu erhöhen, daß mehrere DMA-Anforderungen vorhanden sind, fragt die interne Zyklussteuereinheit 33 das Signal nicht in jeder Taktperiode ab, sondern wartet auf ein Zeitfenster. Für diesen Zweck wird der DMA-Fensterzeitgeber 54 in Fig. 6 benutzt. Der Zeitgeber erzeugt ein Zeitsegment, in dem Anforderungen abgefragt werden, aber keine Handlung vorgenommen wird, bis das Zeitfenster abgelaufen ist. Deshalb hat die Zustandssteuerlogik 53 der internen Zyklussteuereinheit im Anforderungsabfragemodus den DMA- Fensterzeitgeber gestartet und hält die Abfrage-DMA-Anforderungen aktiv. Wenn die Zeitgrenze des DMA-Fensterzeitgebers überschritten wird, deaktiviert die interne Zyklussteuereinheit 33 das Abfrage-DMA-Anforderungssignal, und der vorhandene Zustand des DMA-Anforderungsregisters 43 wird zeitweilig eingefroren. Die interne Zyklussteuereinheit 33 überwacht dann den Zustand des vom ODER-Gatter 48 erzeugten Signals Beliebige-DMA-Anforderung. Wenn dieses Signal inaktiv ist, kehrt die interne Zyklussteuereinheit 33 zum Anforderungs- und Abfragemodus zurück, wobei der Fensterzeitgeber 54 erneut freigegeben und das DMA-Anforderungsregister 43 kontinuierlich geladen wird. Wenn das Signal Beliebige-DMA-Anforderung jedoch aktiv ist, bereitet die interne Zyklussteuereinheit 33 einen DMA-Zyklus vor. Da in diesem einleitenden Beispiel noch keine Kanäle für DMA freigegeben wurden, bleibt das Signal Beliebige-DMA-Anforderung nichtaktiv, und dies verzögert die DMA-Übertragung ungeachtet des Zustandes irgendwelcher Anforderungsleitungen.
  • Wenn jedoch einmal die oben für MM-E/A-Initialisierungen beschriebene vorbereitende Aktion stattgefunden hat, werden DMA- Anforderungen freigegeben und können bedient werden.
  • Wir kehren zu der Annahme zurück, daß die beiden Kanäle 6 und 17 aktivierte Anforderungen haben und daß diese im DMA-Anforderungsregister 43 zwischengespeichert wurden und nehmen die Operation wieder auf. Eine kurze Zeit nach der Zwischenspeicherung der DMA-Anforderung im Register 43 läuft die Periode für den DMA-Fensterzeitgeber 54 ab, und der Zustand des Anforderungsregisters 43 wird eingefroren. Da beide Kanäle 6 und 17 für DMA- Übertragungen freigegeben sind, laufen ihre Anforderungen durch das DMA-Anforderungsgatter 44. Es wird ein 5-Bit-Code erzeugt, um den Kanal 17 darzustellen, da er die höchste physikalische Priorität besitzt. Er wird erzeugt durch den 20-zu-5-Leitungscodierer 45, und als Antwort darauf wird das Signal Beliebige-DMA-Anforderung durch das ODER-Gatter 48 aktiviert. Die Aktivierung dieses Signals bringt die interne Zyklussteuereinheit 33 in den DMA-Verarbeitungsmodus. In diesem Modus laufen mehrere verschiedene Operationen gleichzeitig ab. Die Operationen umfassen den Zugriff auf den Steuerblock des internen RANs des Kanals, die Prüfung der Anforderung des Kanals und die Anforderung der Steuerung der Systembusse vom Prozessor 5.
  • Die interne Zyklussteuereinheit 33 erzeugt das Signal Zwischenspeichern der DMA-Anforderungsidentifikation, das den Identifizierungscode des Kanals 17 in das 5-Bit-Register 46 für den Identifizierungscode speichert. Die Ausgabe dieses Registers wird als Zeiger in den internen RAN 31 benutzt, um den Steuerblockbereich von Kanal 17 zu identifizieren. Die 5 Bits der Adreßinformation laufen durch den MM-E/A-Datenselektor 32 des internen RANs 31 zu einem 5-aus-6-Adreßeingangsdecodierer des internen RANs. Die interne Zyklussteuereinheit 33 erzeugt das niedrigste oder sechste Bit des Adreßbits 0. Die interne Zyklussteuereinheit 33 aktiviert auch die Lese/Schreib-Leitung und die Auswahlleitung zum internen RAN 31. Das niedrigste Adreßbit wird zurückgesetzt, um auf das Quell/Ziel-Adreßfeld zu zeigen.
  • Vereinbarungsgemäß wurden Adreßfelder so entworfen, daß sie auf geradzahligen Grenzen liegen, wie in Fig. 9 dargestellt, und die Lese/Schreib-Leitung wird in den Lesemodus gebracht, und die Auswahlleitung wird aktiviert. Dies führt zum Laden der Kanaladresse von Kanal 17 aus dem internen RAN 31. Wenn die Zieladresse von Kanal 17 auf dem internen Datenbus stabil ist, wird sie in den Datenpuffern 55 des internen RANs zwischengespeichert.
  • Gleichzeitig veranlaßt die interne Zyklussteuereinheit 33, daß der Entscheider 30 eine Prüfoperation ausführt, die in der Abbildung als Prüfen bezeichnet ist, um die Prüfung zu duplizieren, daß Kanal 17 noch eine aktuelle wartende Anforderung hat. Diese Operation wird auf die folgende Art und Weise ausgeführt: wenn die interne Zyklussteuereinheit 33 das Signal Prüfe-DMA- Anforderung aktiviert, läuft die Ausgabe des Prüfgatters 40 in Fig. 7 durch den 60-zu-20-Leitungsdatenselektor 42 und wird im Anforderungsregister 43 gespeichert. Das Prüfgatter vergleicht die Kanalanforderungen mit dem gespeicherten Zustand des Anforderungsregisters 43. Es prüft nur die Bits im Anforderungsregister 43, die aktiv sind. Die Bits im Register 43, die während der Prüfoperation nicht aktiv sind, bleiben nichtaktiv. Wenn eine Kanalanforderung aktiv ist und ihr entsprechendes, im Anforderungsregister gespeicherte Bit ist bereits im aktiven Zustand, dann ist die Anforderung als gültig bestätigt, und der aktive Zustand des Bits wird in das Anforderungsregister zurückgespeichert. Dies führt in dieser Bitposition zu keiner Veränderung. Wenn jedoch zur Prüfzeit eine Kanalanforderung nichtaktiv ist, das entsprechende Bit im Anforderungsregister 43 aber gesetzt war, dann wird angenommen, daß die Anforderung ungültig ist, und das Bit im Anforderungsregister 43 wird zurückgesetzt.
  • Die geprüfte Ausgabe des Anforderungsregisters 43 läuft durch das DMA-Anforderungsgatter 44 zu den Eingängen des ODER-Gatters 48 und zum Vergleicher 49. Wenn im Ergebnis der Prüfoperation keine aktiven Anforderungen existieren, dann wird das Signal Beliebige-DMA-Anforderung deaktiviert. Die interne Zyklussteuereinheit 33, die dieses Signal kontinuierlich überwacht, bricht dann die Vorverarbeitungs-DMA-Schritte ab und kehrt zum Anforderungsabfragemodus zurück. Der Vergleicher 49 wird benutzt, um der internen Zyklussteuereinheit 33 den Prüfzustand des Kanals, der gerade bedient wird, anzuzeigen. Dies geschieht auf die folgende Weise: der Identifizierungscode des bedienten Kanals wurde vorher im 5-Bit-Register 46 für den Identifizierungscode gespeichert. Die ID-Leitungen gingen zum 5-zu-20-Leitungsdecodierer 47, der eine seiner 20 Leitungen auf der Grundlage der Identifizierungscodes aktiviert. Jede Leitung entspricht, wie früher angemerkt, einem der 20 Kanäle. Wenn die DMA-Anforderung, die der aktiven decodierten Leitung entspricht, noch aktiv ist, dann zeigt dies an, daß die Anforderung des gerade bedienten Kanals gültig ist. Als Ergebnis aktiviert der Vergleicher 49 das Signal Gültige-DMA-Anforderung. Wie oben angemerkt, kann es weitere Anforderungen geben, die auf Grund der Prüfoperation zurückgesetzt wurden, aber es ist nur notwendig, den wartenden DMA-Zyklus zu verzögern und neu zu entscheiden, wenn der zum Service angezeigte Kanal jetzt eine ungültige Anforderung aufweist. Setzt man voraus, daß die Anforderung von Kanal 17 während der Prüfoperation aktiv bleibt, dann wird das Signal Gültige-DMA- Anforderung aktiviert.
  • Während dieses gleichen Zeitintervalls hat die interne Zyklussteuereinheit 33 die Steuerung der Systembusse angefordert, indem sie das Signal DMA-Busanforderung aktiviert hat, das zum Prozessor 5 läuft. Diese Anforderung nach Busbeherrschung wird jedoch erst gemacht, wenn auf das Quell/Ziel-Adreßfeld des Kanals zugegriffen wird. Dies sichert, daß die Zugriffszeit des internen RANs 31 den DMA-Zyklus nicht verzögert, wenn die DIAC 3 die Steuerung der Systembusse erhält. Während die interne Zyklussteuereinheit 33 die Übernahme der Steuerung der Systembusse erwartet, überwacht sie die Leitungen für eine DMA-Anforderung und für eine gültige DMA-Anforderung. Wenn die Leitung für eine DMA- Anforderung deaktiviert wurde, als Ergebnis einer Prüfoperation, einer vom Prozessor 5 ausgeführten MM-E/A-Operation, wie zum Beispiel Abschalten des Masterfreigaberegisters 51 oder Rücksetzen der entsprechenden Bits im DMA-Freigaberegister 50, oder einer vom System festgestellten Fehlerbedingung, dann bricht die interne Zyklussteuereinheit 33 ihre laufende Aktivität ab, gibt den Fensterzeitgeber 54 wieder frei und kehrt zur Anforderungsabfrageoperation zurück. Wenn das Signal Beliebige-DMA-Anforderung aktiv ist, das Signal Gültige-DMA-Anforderung aber nicht, dann gibt es noch einen oder mehrere Kanäle, die einen Service fordern, aber der spezielle Kanal, dessen ID im Register 46 zwischengespeichert wurde, hat nicht länger eine gültige Anforderung. Statt den Prozeß abzubrechen und die gesamte aufgewendete DMA-Vorverarbeitung zu vergeuden, ist die interne Zyklussteuereinheit so aufgebaut, daß das ID-Register 46 mit dem Identifizierungscode des nächsten anfordernden Kanals mit der höchsten Priorität aktualisiert und ein weiterer Prüfzyklus ausgeführt wird. Wenn die obigen Anforderungssignale beide aktiv sind, was eine gültige Anforderung anzeigt, und der Hauptprozessor das DMA-Busbewilligungssignal zurück zur DIAC 3 aktiviert hat und die Systemstrobeimpulse nichtaktiv sind, dann kann der DMA-Zyklus ausgeführt werden.
  • Wenn die obigen Bedingungen alle erfüllt sind, dann informiert die interne Zyklussteuereinheit 33 die DMA-Zyklussteuereinheit 34, indem das Signal Start-DMA aktiviert wird. Dies ist der erste DMA-Zyklus, und da dies der Fall ist, ist die DMA-Zyklussteuereinheit aktuell untätig. Dies wird durch Aktivierung des Signals DMA-Gestoppt angezeigt. Wenn die interne Zyklussteuereinheit 33 der DMA-Zyklussteuereinheit 34 anzeigt, daß ein DMA- Zyklus gestartet werden sollte, veranlaßt die interne Zustandssteuerlogik 57 der DMA-Zyklussteuereinheit in Fig. 7, daß die im Datenpuffer 55 des internen RANs gespeicherte Quell/Ziel-Adresse in das DMA-Adreßregister 58 von Fig. 10 geladen wird. Die DMA- Zyklussteuereinheit veranlaßt auch, daß das Busmasterregister 59 mit dem Inhalt des Kanalidentifizierungsregisters 46 geladen wird, in diesem Falle mit der Identifikation für den Kanal 17. Der Inhalt dieser Register wird für die Dauer des DMA-Zyklusses benutzt.
  • Die DMA-Zyklussteuereinheit aktiviert dann das Signal DMA-Busbewilligungsbestätigung (BGACK), um anzuzeigen, daß sie die Busbeherrschung zurück zum Prozessor 5 übernommen hat. Als nächstes zeigt die DMA-Zyklussteuereinheit der internen Zyklussteuereinheit 33 an, daß sie den DMA-Zyklus gestartet hat. Dies wird dadurch angezeigt, daß die DCC 34 das Signal DMA-Gestoppt deaktiviert. Die DMA-Zyklussteuereinheit 34 setzt auch die Anforderung von Kanal 17 zurück, so daß der nächste Kanal, in unserem Beispiel Kanal 6, für den DMA-Service in die Warteschlange aufgenommen werden kann, indem das Signal Maskiere-Busmaster aktiviert wird. Das Signal Maskiere-Busmaster wird benutzt, um die Anforderung von Kanal 17 zurückzusetzen. Die Anforderung von Kanal 17 muß selektiv am entsprechenden Bit im DMA-Anforderungsregister 43 zurückgesetzt werden. Dies wird wie folgt erreicht:
  • Das Busmasterregister 59 von Fig. 10 enthält den Identifizierungscode für Kanal 17, da er gegenwärtig von der DMA-Zyklussteuereinheit 34 bedient wird. Dieses Register versorgt den 5-zu- 20-Leitungsdecodierer 60 des Busmasters, der an seinem Ausgang eine einzelne, dem Kanal 17 entsprechende Leitung aktiviert. Die Ausgänge des Decodierers gehen zum Gatter 62 des DMA-Unterbrechungsregisters und dem Maskierungsgatter 41 des Busmasters in Fig. 8. Die eine aktive Leitung von 20 möglichen Ausgangsleitungen des Decodierers 60 wirkt als Zeiger für das entsprechende Bit des Kanals im DMA-Unterbrechungsregister 64 in Fig. 12 bzw. im DMA-Anforderungsregister 43 in Fig. 7. Wenn die DMA-Zyklussteuereinheit das Signal Maskiere-Busmaster aktiviert, dann erlaubt der Bitzeiger vom Decodierer 60, daß das Bit von Kanal 17 im DMA-Anforderungsregister zurückgesetzt wird. Im Ergebnis dessen wird die Anforderung von Kanal 17, die jetzt bedient wird, aus der Warteschlange der Anforderungen, die auf Service warten, herausgenommen.
  • Gleichzeitig zur oben diskutierten Operation Maskiere Busmaster läßt die Zustandsmaschine 57 der DMA-Zyklussteuereinheit in Fig. 11 die Zieladresse von Kanal 17, die im DMA-Adreßregister 58 gespeichert war, auf den Systemadreßbus durch, wobei der Empfangspuffer des USARTs von Kanal 17 ausgewählt wird und die geeigneten Steuersignale aktiviert werden, so daß der Inhalt des Empfangspuffers in den Speicherplatz 1000 des Hauptspeichers 6 geschrieben werden kann. (Man erinnere sich, daß die im Hauptspeicher zugeordnete Adresse am Anfang dieses Beispiels als 1000 vorausgesetzt wurde.) Zwei Operationen treten immer in einem DMA-Zyklus auf. Wenn der Kanal ein Empfänger ist, dann liest die DMA-Zyklussteuereinheit die empfangenen Pufferinhalte des Kanals und steuert die Daten in den RAN 6. Wenn der Kanal ein Sendekanal ist, liest die DMA-Zyklussteuereinheit ein Byte aus dem RAN 6 oder einem anderen Hauptspeicherbereich und steuert es in den Sendepuffer des Kanals. Die Übertragung wird erreicht, indem veranlaßt wird, daß die Daten direkt zwischen dem USART-Kanal und dem Hauptspeicher 6, 7 oder 8 über die Systemdatenbusse laufen, so wie in Fig. 1 dargestellt. Deshalb tritt im gleichen Zyklus sowohl eine Lese- als auch eine Schreiboperation auf, entweder vom Speicher zum Puffer oder vom Puffer zum Speicher. Da ungerade Kanäle willkürlich als Empfänger und gerade Kanäle als Sender bezeichnet sind, kennt die DMA-Zyklussteuereinheit 34 den Typ der DMA-Operation, die auf der Grundlage des niedrigsten Bits im Busmasterregister 59 von Fig. 11 auszuführen ist.
  • Während der DMA-Zyklus arbeitet, wird die Quell/Ziel-Adresse im Datenpuffer 55 von Fig. 8 von der Inkrementier/Dekrementier-Logik 56 inkrementiert und in das Steuerblockadreßfeld von Kanal 17 im IRAN zurückgeschrieben. Die interne Zyklussteuereinheit zeigt dann auf das Bytezählerfeld von Kanal 17 im internen RAN 31, indem das Bit 0 der internen RAN-Adresse gesetzt wird. Sie wandelt auch die Inkrementfunktion der Inkrementier/Dekrementier-Logik in eine Dekrementfunktion, indem ein Signal Dekrement aktiviert wird, so wie in Fig. 8 bei 53 dargestellt. Auf diesen Bytezähler wird zugegriffen, er wird in den Datenpuffern zwischengespeichert, um 1 dekrementiert und an die ursprüngliche Stelle im RAN 31 zurückgespeichert. Da der Bytezähler auf 0 dekrementiert und am Anfang als 1 vorausgesetzt war, wird das diesem Kanal entsprechende DMA-Unterbrechungsbit gesetzt. Das bedeutet, daß es für den Prozessor 5 Zeit ist, diesem Empfangskanal zu bedienen. Das Setzen dieses Bits wird ausgeführt, indem der Bitzeiger des Busmasterdecodierers am Ausgang des Decodierers 60 in Fig. 11 benutzt wird, so wie das bei der Busmaster- Maskierungsoperation der Fall war. Wenn der Bytezähler auf 0 dekrementiert wurde, aktiviert die Inkrementier/Dekrementier- Logik 56 das Signal Zähler-gleich-0, so wie in Fig. 8 bei 56 dargestellt. Die Zustandsmaschine 53 der internen Zyklussteuereinheit bestätigt dieses Signal, indem der Signalstrobeimpuls Zähler-gleich-0 aktiviert wird, wenn genügend Zeit verstrichen ist, um die Dekrementieroperation zu beenden. Da der Zähler zu diesem Zeitpunkt 0 ist, erlaubt der Bitzeiger von Kanal 17, die aktive decodierte Leitung im Codierer 60, daß sein Unterbrechungsbit durch das Gatter 62 des DMA-Unterbrechungsregisters in Fig. 12 läuft, um im DMA-Unterbrechungsregister 64 gesetzt zu werden. Dies aktiviert über den Ausgang des ODER-Gatters 65 ein Unterbrechungssignal an den Hauptprozessor, um anzuzeigen, daß der entsprechende Datenblock übertragen wurde. Der Prozessor 5 erkennt die Unterbrechung erst, wenn er die Steuerung der Busse durch Deaktivierung des DMA-Busbewilligungsbestätigungs-Signals durch die DIAC 3 zurückgegeben hat. Die Ausgänge des DMA-Unterbrechungsregisters 62 und die wartenden DMA-Unterbrechungen gehen zum DMA-Anforderungsgatter 44, und dies verhindert den Service irgendeiner nachfolgende DMA-Anforderung vom Kanal 17 solange, bis das Bit zurückgesetzt wird. Dies gibt dem Hauptprozessor 5 die Gelegenheit, die Unterbrechung des Kanals zu verarbeiten, bevor der Kanal einen weiteren DMA-Zyklus erlangen kann. Dies verhindert die Verwendung einer ungültigen Quell/Ziel-Adresse und eines ungültigen Bytezählers für die nächste Übertragung.
  • Wenn die interne Zyklussteuereinheit 33 den Steuerblock von Kanal 17 im IRAN 31 aktualisiert hat, entscheidet sie in Vorbereitung des nächsten DMA-Zyklusses erneut über eine wartende Anforderung. Da die Anforderung von Kanal 17 im Anforderungsregister 43 durch die Maskierungsoperation für den Busmaster so wie oben diskutiert zurückgesetzt wurde, wird für den anfordernden Kanal mit der nächsthohen Priorität, der für DMA freigegeben ist, vom 20-zu-5-Leitungsdecodierer ein Code erzeugt. In unserem Beispiel ist Kanal 6 der einzige andere Kanal mit einer DMA-Anforderung, und sein ID-Code wird erzeugt. Die interne Zyklussteuereinheit 33 bewirkt dann, daß der Identifizierungscode von Kanal 6 in das Identifizierungscoderegister 46 geladen wird. Dies wird benutzt, um das Quelladreßfeld zu laden, unter Beachtung dessen, daß Kanal 6 geradzahlig numeriert ist und deshalb ein Sender vom Steuerblock des internen RANs 31 ist. Dieser wird in die Datenpuffer 55 von Fig. 8 gespeichert. Gleichzeitig wird eine weitere Prüfoperation ausgeführt. Die interne Zyklussteuereinheit 33 wartet dann darauf, daß die DMA-Zyklussteuereinheit eine DMA-Übertragung für Kanal 17 beendet hat. Die Neuentscheidung wird gewöhnlich abgeschlossen, bevor irgendein gerade ablaufender DMA-Zyklus zu Ende ist. Wenn die DMA-Zyklussteuereinheit einen DMA- Zyklus für Kanal 17 abschließt, dann kann sie demzufolge mit der DMA-Übertragung von Kanal 6 fortfahren, da ihre Quelladresse von der internen Zyklussteuereinheit bereits erfaßt wurde und auf die Verwendung in der DMA-Zyklussteuereinheit wartet. Die DMA- Zyklussteuereinheit 34 führt die gleichen Ereignisarten aus, die oben bei der Verarbeitung der Anforderung von Kanal 6 beschrieben wurden. Das Busbewilligungsbestätigungs-Signal bleibt aktiv. Die Quelladresse von Kanal 6 wird in das DMA-Adreßregister 58 von Fig. 6 geladen, und sein Identifizierungscode wird im DMA- Busmasterregister 59 zwischengespeichert. Die Anforderung von Kanal 6 in einem DMA-Busmasterregister 43 wird während der Maskierungsoperation für den Busmaster zurückgesetzt, so wie früher diskutiert. Die tatsächliche DMA-Übertragung ist jedoch unterschiedlich, da Kanal 6 ein Sendekanal ist. In diesem Fall führt die DMA-Zyklussteuereinheit 34 ein Lesen vom Speicherplatz 2000 im RAN 6 durch und schreibt die Daten in den Sendepuffer von Kanal 6.
  • In der Zwischenzeit aktualisiert die interne Zyklussteuereinheit 33 den Steuerblock von Kanal 6, indem seine Quelladresse inkrementiert und sein Bytezähler dekrementiert wird. Da der Bytezähler nicht auf 0 dekrementiert wurde (man erinnere sich, daß die Voraussetzung 20 über DMA zu übertragende Datenbytes waren), wird für diesen Kanal kein Unterbrechungsbit gesetzt. Als nächstes entscheidet die interne Zyklussteuereinheit 33 erneut unter den wartenden Anforderungen. Da die Anforderung von Kanal 6 durch die Maskierungsoperation des Busmasters zurückgesetzt wurde und in unserem Beispiel keine anderen Anforderungen im DMA- Anforderungsregister warten, wird das Signal Beliebige-DMA-Anforderung in Fig. 7 deaktiviert. Die interne Zyklussteuereinheit 33 wartet dann für den Abschluß auf den laufenden DMA-Zyklus, danach gibt sie die Busherrschaft auf, indem das Busbewilligungsbestätigungs-Signal deaktiviert und der Fensterzeitgeber 54 wieder gestartet wird und die Anforderungsleitungen nach irgendwelchen neuen Anforderungen abgefragt werden.
  • Wenn der Prozessor 5 die Steuerung der Systembusse wieder zurückerhält, erkennt er das aktive DMA-Unterbrechungssignal, das von der System-Unterbrechungssteuerlogik 4 in Fig. 1 vorgelegt wird. Er führt eventuell einen Unterbrechungsbestätigungs-Zyklus durch, um die Unterbrechung zu bedienen, und die System-Unterbrechungssteuerung 4 aktiviert das DMA-Unterbrechungsbestätigungs-Signal zum Chip der DIAC 3. Die DMA-Unterbrechungssteuerlogik 35 von Fig. 6 erzeugt eine Vektornummer für den Kanal mit der höchsten Priorität, dessen Bytezähler auf 0 dekrementiert wurde. Da Kanal 17 in diesem Fall der einzige Kanal mit einer solchen Bedingung war, wird sein Identifizierungscode in den Datenbus geladen, zusammen mit drei Bits des DMA-Unterbrechungsvektorregisters 67 in Fig. 11. Der Unterbrechungsidentifizierungscode ist in diesem Fall eine codierte Version des Inhaltes des DMA-Unterbrechungsregisters 64. Er wird von der 5-zu-20- Prioritätscodierungslogik 66 in ähnlicher Art und Weise wie für den Inhalt des DMA-Anforderungsregisters erzeugt. Der Unterbrechungsidentifizierungscode repräsentiert gemeinsam mit den drei Vektorregisterbits von Register 67 eine 8-Bit-Vektornummer. Dies benutzt der Hauptprozessor 5 als Zeiger für die Unterbrechungsserviceroutine von Kanal 17 im RAN 6. Alternativ hierzu könnte der Zeiger auf den EPROM oder den EEPROM 7 oder 8 zeigen. Der Prozessor 5 führt irgendeine gewünschte Verarbeitung aus, auf der Grundlage des Inhaltes des Speicherplatzes, auf den der Zeiger orientiert ist, und er führt-diese Funktionen mit den Empfangsdaten aus, er reinitialisiert den Steuerblock von Kanal 17 im internen RAN 31 und setzt das Unterbrechungsbit im DMA-Unterbrechungsregister zurück, wodurch der Kanal 17 für weitere DMA- Übertragungen freigegeben wird.
  • DIAC-Operation, wenn ein Busfehler festgestellt wurde
  • Die vorhergehende Diskussion beschäftigte sich mit DMA-Operationen, die ohne Fehler abliefen. Die DIAC verfügt über Mittel, DMA-Zyklen zu behandeln, wenn von der Systemsteuerlogik ein Fehler festgestellt wird. Das Signal "Busfehler" (BERR) wird von der Systemsteuerlogik gesteuert und von der DCC 34 empfangen. Wenn die Systemsteuerlogik einen Fehler feststellt, während eine DMA-Operation ausgeführt wird, dann aktiviert sie BERR und verursacht eine Unterbrechung der Ebene 7. Da der Hauptprozessor 5 nicht Busmaster ist, sieht er BERR nicht. Weiterhin erkennt er die Unterbrechung der Ebene 7 erst, wenn die DIAC 3 die Steuerung der Busse durch Deaktivierung von BGACK aufgibt. Unter diesen Umständen überwacht jedoch die DCC 34 das BERR-Signal, und ihre Reaktion hängt von der Art des DMA-Zyklusses ab und von dem Zeitpunkt, zu dem BERR auftritt.
  • Wenn die DCC eine Sendeoperation ausführt und BERR festgestellt wird, wenn sie den RAN 6 liest, aber noch nicht in den Sendepuffer des Kanals des USARTs 2 schreibt, wird die DCC die Wahl des RANs 6 rückgängig machen und die Daten nicht in den Kanal schreiben. Wenn BERR während der Schreiboperation in den Sendepuffer des Kanals des USARTs 2 festgestellt wird, dann beendet die DCC 34 den Zyklus auf normale Art und Weise.
  • Wenn die DCC 34 eine Empfangsoperation ausführt und BERR festgestellt wird, bevor die Schreiboperation in den RAN 6 abläuft, dann unterbricht die DCC 34 das Lesen des Empfangspuffers des Kanals des USARTs 2 und beendet den Zyklus, ohne Daten in den RAN-Pufferbereich zu schreiben. Wenn die RAN-Schreiboperation ausgeführt wird, wenn BERR festgestellt wird, wird der Zyklus auf normale Art und Weise beendet.
  • In jedem Fall kehrt die DCC 34 erst in ihren Zustand "DMA GESTOPPT" zurück, wenn BERR deaktiviert ist, was die nachfolgende Ausführung von wartenden DMA-Zyklen verhindert. Wenn BERR einmal deaktiviert ist, kann der normale Betrieb weitergehen. In der bevorzugten Realisierung wird bei der Feststellung eines Fehlers gefordert, daß ein Versuch gemacht wird, die Ursache zu identifizieren und ihn, falls möglich, zu beseitigen. Um bei der Diagnose zu helfen, wird ein Versuch gemacht, den Zustand der Maschine so weit wie möglich zu konservieren, wenn der Fehler auftrat. Die DIAC 3 verfügt über Mittel, ihren Zustand zu konservieren, wenn das Signal "DMA abschalten" aktiviert wird. Dieses Signal wird von der Systemsteuerlogik gesteuert, wenn ein Fehler festgestellt wird, und es bleibt aktiv, bis das System wiederhergestellt wird. Es wird vom DMA-Anforderungsinterpreter und -entscheider 30 empfangen und maskiert effektiv alle DMA- Anforderungen. Dies deaktiviert alle wartenden DMA-Anforderungen und verhindert die Ausführung nachfolgender DMA-Zyklen, indem die DIAC 3 im Anforderungs/Abfrage-Modus gehalten wird. Wenn der Fehler während eines DMA-Zyklusses festgestellt wurde, kann der Hauptprozessor 5 den Kanal bestimmen, der zur Zeit des Fehlers bedient wurde, indem das DMA-Busmasterregister 59 mit der geeigneten MM-E/A-Operation abgefragt wird. Weiterhin kann der Hauptprozessor 5, nachdem die Kanal-ID bestimmt wurde, die Quell/Ziel-Adresse und den Bytezähler zur weiteren Analyse bestimmen. Wenn das Signal "DMA abschalten" von der Systemsteuerlogik einmal deaktiviert ist, kann der DMA-Service weitergehen.
  • Zusammenfassung der Arbeitsweise
  • Die DIAC-Architektur stellt eine universelle Schnittstelle zur Verfügung, mit der Datenfernverarbeitungs-Kanäle auf optimale Weise bedient werden können, so wie von der Systemumgebung vorgeschrieben wird und mit Parametern, die von einem Systemprogrammierer ausgewählt werden. Die Anforderungen an die Datenfernverarbeitungs-Kanalgeräte selbst zur Anpassung an eine solche Schnittstelle sind minimal. Jeder Kanal ist mit einer zugeordneten Anforderungsleitung ausgestattet, die aktiviert wird, wenn er eine Datenübertragung anfordert, und die deaktiviert wird, wenn die Übertragung ausgeführt wurde. Die DIAC 3, die durch einen kundenprogrammierbaren EPROM-Code, der vom Prozessor 5 in die DIAC 3 geladen wird, geeignet programmiert ist, liefert die notwendigen Steuerungen, um die Datenübertragung im Unterbrechungs- oder DMA-Betriebsmodus so zu erleichtern, daß sie für die USART-Geräte des Datenfernverarbeitungs-Kanals vollständig transparent ist. Wenn ein Kanal so programmiert wurde, daß er im Unterbrechungsmodus bedient wird, dann hat die DIAC 3 einen Unterbrechungsprozessor, um die Entscheidung, das Unterbrechungssignal, den Unterbrechungsvektor und die Datenübertragungsbestätigung zu liefern und dem Prozessor 5 zu erlauben, die Datenübertragung für den anfordernden Kanal mit der höchsten Priorität auszuführen. Wenn der Kanal so programmiert ist, daß er im DMA-Modus bedient wird, dann liefert der DMA-Prozessorbereich der DIAC 3 die Entscheidung, die Zuteilung des Systembusses, die Ausführung der richtigen DMA-Datenfernverarbeitungs-Art, und, falls zutreffend, präsentiert er auch eine Unterbrechung, erzeugt einen Unterbrechungsvektor und liefert die Datenübertragungsbestätigung an den Hauptprozessor 5.
  • Eine wichtige Eigenschaft der Architektur der DIAC 3 ist seine Mehrkanal-DMA-Datenfernverarbeitungs-Fähigkeit und seine Pipeline-Architektur in der internen Zyklussteuereinheit, welche die Verwaltungsarbeiten für die DMA-Zyklussteuereinheit ausführt. Bei dieser Architektur und mit einem internen RAN zur Speicherung einer großen Zahl von Kanalsteuerblock-Bereichen hat der programmierbar anpaßbare Protokolladapter und die Anschlußschnittstellen-Datenfernverarbeitungs-Steuereinheit der vorliegenden Erfindung die Fähigkeit, im angeführten Beispiel 20 Kanäle zu bedienen, aber dies ist nur durch die Größe des internen RANs begrenzt. Damit ist die Fähigkeit für eine mehrfache DMA- Steuereinheit auf einem einzelnen Chip mit einer hohen Anzahl von Kanälen, beispielsweise 20 und mehr, deutlich verfügbar. Typischerweise wird der Quell/Ziel-Adreßzeiger für den Haupt-RAN und ein Datenbyte-Datenfernverarbeitungs-Zähler für jeden Kanal in einem zugeordneten Register in herkömmlichen Maschinen gespeichert. Da diese Register einen beträchtlichen Betrag der realen Chipfläche belegen, können für einen gegebenen DMA-Steuereinheitschip nur wenige Kanäle im DMA-Modus bedient werden. Ein Beispiel wäre der Motorola 6844, der vier Kanäle bedienen kann. Ein RAN ist bezüglich der realen Chipfläche ein viel effektiveres Mittel zur Speicherung von Information, aber er ist bezüglich der Datenzugriffszeit viel weniger effektiv. Die Pipeline-Architektur des DMA-Prozessors der DIAC mit interner Zyklussteuereinheit eliminiert virtuell die Auswirkungen der Zugriffsverzögerungszeit des internen RANs 31 auf die Systemleistung, so wie oben angemerkt.
  • Eine weitere wichtige Eigenschaft dieses Entwurfes ist die Art und Weise, in der der DMA-Prozessor für die Maximierung der Systemleistung aufgebaut ist. Als erstes wird eine Anforderung auf Steuerung der Systembusse erst dann präsentiert, wenn eine Entscheidung getroffen wurde und die interne Zyklussteuereinheit bereits auf die Quell- und Zieladreß-Felder des zu bedienenden Kanals zugegriffen hat. Deshalb kann der DMA-Zyklus unverzüglich ablaufen, wenn die Steuerung der Systembusse der DMA-Steuereinheit überlassen wurde, und die interne RAN-Zugriffszeit wurde soweit eliminiert wie der DMA-Prozeß betroffen ist. Zum zweiten ermöglicht die parallele Arbeit der internen Zyklussteuereinheit und der DMA-Zyklussteuereinheit, daß die erforderliche interne Verarbeitung während der DMA-Datenfernverarbeitungs-Zeiten ausgeführt wird. Die Aktualisierung des Kanalsteuerblockes, die Neuentscheidung für den Kanal mit der nächsthohen Priorität und der Zugriff zum Steuerblock des Kanals - all das geschieht während der DMA-Übertragung, die von der internen Zyklussteuereinheit behandelt wird. Wenn die Operationen auf serielle Art und Weise ablaufen würden, würde der Gesamtdurchsatz der DMA-Einrichtung der DIAC 3 stark reduziert, wie leicht eingeschätzt werden kann.
  • Ein weiterer Neuheitsaspekt, mit dem der Entwurf der DIAC 3 versucht, die Systemleistung zu maximieren, ist die Verwendung des Fensterzeitgebers 54. Die DIAC 3 kann mehrere DMA-Übertragungen innerhalb der gleichen Busbeherrschungsperiode, d. h. während der Zeit, in der das DMA-Busbewilligungsbestätigungs-Signal aktiv ist, viel effektiver als eine einzelne isolierte Übertragung durchführen. Das ist deshalb so, weil nachfolgende Übertragungen ausgeführt werden können ohne Ausführung des Buszuordnungsprotokolls, das notwendig ist, um die Anfangssteuerung der Busse zu erhalten. Da die DIAC 3 bereits die Steuerung der Systembusse erhalten hat, kann sie die Steuerung behalten, bis die DMA-Busbewilligungsbestätigung deaktiviert wird. Dies kann geschehen, ohne auf Neuentscheidung und Steuerblockzugriffe zu warten, auf Grund des Pipeline-Betriebes der internen Zyklussteuereinheit. Der Fensterzeitgeber erhöht die Wahrscheinlichkeit, daß während der Anforderungsabfrageperiode mehrere DMA-Anforderungen warten, wodurch die Gesamteffektivität der DMA-Datenfernverarbeitungs- Operationen erhöht wird.
  • Leitungsgeschwindigkeit und Paritätserkennung
  • Der in den Abbildungen gezeigte Entwurf realisiert eine Baudrate oder Leitungsgeschwindigkeit und die Erkennung der Paritätskonvention für mehrere ankommende asynchrone oder synchrone digitale Datenströme.
  • Jede Anschluß-Schnittstellensteuereinheit und USART-2-Kombination enthält ein Erkennungsnetzwerk für Zustandswechsel 80 für jeden Anschluß 1. Das Erkennungsnetzwerk für Zustandswechsel 80 überwacht die ankommende Empfangsdatenleitung auf Änderungen des binären Zustandes, entweder von 0 nach 1 oder von 1 nach 0, und zeigt immer dann eine Veränderung an, wenn eine Änderung des binären Zustandes auftritt. Dies ist die Quelle der Unterbrechungsanforderungs-Leitungen der Ebene 5 in Fig. 3, die von der Anschluß-Schnittstellensteuereinheit 10 zur Unterbrechungssteuerlogik 4 laufen. Innerhalb der Anschluß-Schnittstellensteuereinheit 10 gibt es Unterbrechungsregister zum Aufbewahren des aktuellen Zustandes und des vorherigen Zustandes der Unterbrechungen von jedem Anschluß. Dieses Unterbrechungsstatusregister 81 ist ein Teil der Anschlußsteuereinheit 10, so wie in Fig. 13 gesondert dargestellt ist.
  • Ein Unterbrechungsbit wird im Unterbrechungsregister 81 in der Steuereinheit 10 gesetzt. Ein Bit wird in diesem Register immer dann gesetzt, wenn ein Zustandswechsel festgestellt wird oder wenn eine MM-E/A-Operation vom Prozessor 5 angestoßen wird. Die Bits können durch Systemrücksetzen, durch eine MM-E/A-Schreiboperation oder durch ein MM-E/A-Rücksetzen unter Maske gesetzt werden, wie oben diskutiert. Die Vektorerzeugungs- und -entscheidungseinheit 82 enthält vektorerzeugende Komponenten, die für jeden Kanal eindeutige Vektornummern bereitstellen, um den Prozessor 5 zum geeigneten Speicherplatz zu steuern, um den Zustandswechsel des Datenkanals mit der höchsten Unterbrechungspriorität zu bedienen. Diese Vektornummern werden auf den Datenbus gebracht. Eine Unterbrechung der Ebene 5 bei Zustandswechsel der Datenleitungen wird, wie in Fig. 3 dargestellt, der Unterbrechungssteuerlogik 4 von Fig. 1 und dem Systemprozessor 5 übergeben, die in Fig. 13 zusammen in einem Block dargestellt sind. Im System ist ein frei laufender Zeitgeber, der programmierbare Zeitgeber 13, vorhanden, um die verstrichene Zeit zwischen dem Zustandswechsel der Datenleitungen an einem gegebenen Anschluß zu bestimmen. Der Zeitgeber läuft kontinuierlich und wird vom Prozessor 5 gelesen, wenn ein Zustandswechsel von Datenleitungen eine Unterbrechung der Ebene 5 auslöst. Da eine Unterbrechung jedesmal geliefert wird, wenn an einem gegebenen Anschluß ein Zustandswechsel der Datenleitungen auftritt, dann wird der Anschluß mit der Aktivität der höchsten Priorität erfolgreich eine Folge von Unterbrechungen sequentiell an den Prozessor 5 liefern. Jede Unterbrechung verursacht ein Lesen und Speichern des Zählerstandes des programmierbaren Zeitgebers. Wenn ein vollständiges Zeichen empfangen wurde, geben die zeitlichen Intervalle zwischen den Zustandswechseln der Datenleitungen eine Anzeige der Baudrate und der an diesem Anschluß verwendeten Paritätskonventionen.
  • Diese Vorrichtung ist erforderlich, damit Modemunterstützung für verschiedene Baudraten erreicht werden kann. Modems mit mehreren Geschwindigkeiten sind jetzt üblich, und da entfernte Modems mit unterschiedlichen Baudraten ein lokal an einem gegebenen Anschluß 1 angeschlossenes Modem anwählen können, müssen einige Mittel vorhanden sein, um die Baudrate und die an dem entfernten Modem implementierten Paritätskonventionen zu bestimmen. Dies kann aus dem empfangenen Signal bestimmt werden, wie das seit einiger Zeit konventionell für einzelne Anschlüsse geschieht. Wenn einmal eine Verbindung hergestellt wurde, wird von einem entfernten Benutzer ein vorher festgelegtes Zeichen gesendet. Dieses Zeichen ist für die Baudrate und die Identifikation der Paritätskonvention bestimmt. Die Gesamtzahl der Zustandswechsel wird benutzt, um die Parität anzuzeigen. Die zeitlichen Abstände zwischen den Zustandswechseln zeigen die Geschwindigkeit an. Sind die Messungen gegeben, dann existieren geeignete Verarbeitungsalgorithmen, um die tatsächliche Leitungsgeschwindigkeit zu bestimmen. Ein vorher festgelegtes Zeichen wird verwendet, weil es mit einer festen Zahl von Zustandswechseln verbunden ist, wenn es seriell über eine Datenfernverarbeitungs-Verbindung übertragen wird. Beim Empfang wird jeder Zustandswechsel mit der aktuellen Zeit im frei laufenden Zeitgeber 13 zeitlich markiert und gespeichert. Nachdem das gesamte Zeichen empfangen wurde, kann der Prozessor 5 die effektive Baudrate und die Paritätskonventionen unter Benutzung bekannter Algorithmen bestimmen.
  • Wie oben diskutiert, verursacht das Auftreten irgendeines Zustandswechsels, daß auf einer der 10 (nur Empfang) Unterbrechungsanforderungs-Leitungen eine Unterbrechung erzeugt wird. Wenn die Unterbrechung bedient wird, dann wird dem Systemprozessor ein eindeutiger Vektor präsentiert, der den Kanal mit der höchsten Priorität identifiziert und dann eine Unterbrechung anfordert, wie früher ausführlich erklärt wurde. Während des Services der Unterbrechung werden die Unterbrechungen durch Anschlußidentifizierung sortiert, zeitlich markiert und im Speicher zur Off-Line-Verarbeitung gespeichert. Die Unterbrechungen werden dann zurückgesetzt, damit sie die Feststellung weiterer Zustandswechsel nicht beeinflussen. Wenn für einen gegebenen Anschluß alle Zustandswechsel empfangen wurden, bestimmt der Systemprozessor die effektive Baudrate und die an dem Anschluß benutzte Paritätskonvention. Wenn ein Kanal auf diese Art identifiziert wurde, wird die Feststellungsvorrichtung für die Zustandswechsel abgeschaltet, um mit normalem Datenverkehr fortzusetzen.
  • In Fig. 13 wird die Feststellung gültiger Zustandswechsel durch den Empfangsdateneingang für Zustandswechsel an jedem Kanal vollzogen. Dies wird dargestellt durch das Feststellungsnetzwerk für die Zustandswechsel, das in jede der Anschluß-Schnittstellensteuereinheiten 10 eingebaut werden kann, so wie in Fig. 3 dargestellt und früher beschrieben. Jedes Netzwerk überwacht den Zustand des einfachen Empfangsdateneinganges, um das Auftreten eines Zustandswechsels zu bestimmen. Ein Zustandswechsel ist, wie oben definiert, eine Änderung des Zustandes der Empfangsdaten von einer logischen 1 auf eine logische 0 oder umgekehrt. Das Signal "Setze Unterbrechung" wird als augenblicklicher Impuls gesetzt, wenn ein solcher Zustandswechsel festgestellt wird. Das Unterbrechungszustandsregister 81 und das Unterbrechungshalteregister 83 sind in Fig. 13 dargestellt. Das aktuelle Zustandsregister 81 sammelt die Zustandswechsel von allen ankommenden Kanälen, so wie sie auftreten. Die Eingänge "Setze Unterbrechung" werden benutzt, um einzelne Bitpositionen innerhalb dieser Register so wie früher beschrieben zu steuern, wobei die Priorität durch die höchste vorhandene Kanalnummer dargestellt wird. Ein Bit wird immer dann gesetzt, wenn das Signal "Setze Unterbrechung" aktiviert ist. Jedes Bit wird dann individuell unter einer Maske oder während eines allgemeinen Systemrücksetzens, so wie früher diskutiert, zurückgesetzt. Das Rücksetzen unter Maske wird, wie früher beschrieben, erreicht, indem der zugeordnete Adreßraum für das gewünschte Unterbrechungszustandsregister ausgewählt wird, bei gleichzeitiger Aktivierung der entsprechenden Steuerungen und Daten. Auf Grund des asynchronen Verhaltens mehrerer ankommender Kanäle ist es notwendig, Mittel zur Auswahl und zum Rücksetzen einzelner Bitpositionen bereitzustellen, ohne die restlichen zu beeinflussen. Dies wurde, wie oben gezeigt, durch die Fähigkeit realisiert, einen einzelnen Kanal simultan zurückzusetzen, während das Auftreten neuer Zustandswechsel bei den übrigen Kanälen, unter Benutzung der Vorrichtung zum Rücksetzen unter einer Maske, festgestellt wird.
  • Das Unterbrechungszustandsregister 81 wird vom Unterbrechungszustands-Eingaberegister ständig aktualisiert, außer während eines MM-E/A-Lesezyklusses oder eines Unterbrechungsbestätigungs- Zyklusses. Während dieser Zyklen ist es erforderlich, daß diese Daten innerhalb des Registers 81 stabil sind, um eine genaue Datenübertragung zum Systemprozessor 5 zu sichern. Beim Abschluß eines Lese- oder eines Bestätigungszyklusses setzt das Unterbrechungszustandsregister 81 den Aktualisierungsprozeß fort. Dies sichert, daß die Feststellung asynchron auftretender Unterbrechungen an den übrigen Kanälen beachtet wird, wobei gleichzeitig die Durchführung entweder eines Lese- oder eines Bestätigungszyklusses für bereits festgestellte Unterbrechungen geleitet wird. Das Zustandshalteregister 68 kann mit einer MM-E/A-Operation für funktionale Testzwecke beschrieben werden.
  • Wie oben in der Beschreibung der Arbeit der Anschluß-Schnittstellensteuereinheit 10 ausführlich dargestellt wurde, wird die Vorlage von Unterbrechungen durch die Vektorerzeugungs- und Unterbrechungssteuerungsfunktionen vom Generator 82 gesteuert. Wenn Kanäle freigegeben werden, werden die Zustandswechsel im Unterbrechungszustandsregister 81 zwischengespeichert, und demzufolge dem Systemprozessor 5 vorgelegt, indem die Signalunterbrechung der Ebene 5 aktiviert wird. Dieses Signal ist das logische ODER des Ergebnisses aller Kanalfreigaben, die einen Zustandswechsel feststellen. Ein eindeutiger Vektor wird, wie früher beschrieben, für den sich bewerbenden Anschluß erzeugt, der die aktuell vorhandene höchste Priorität bei vorhandener Aktivierung des Unterbrechungssignals besitzt. Wenn das Unterbrechungsbestätigungs-Signal vom Prozessor 5 dem Unterbrechungssteuerungsnetzwerk 82 vorgelegt wird, präsentiert der Vektorgenerator 82 dem Prozessor 5 auf dem Datenbus einen Vektor. Der Vektor stellt den Kanal mit der höchsten Priorität dar, der einen Zustandswechsel der Datenleitungen feststellt. Wenn der unterbrechende Anschluß einmal identifiziert wurde, liest der Systemprozessor 5 den frei laufenden Zeitgeber 13, um die jeweiligen Zustandswechselzeiten zwischen der vorhergehenden Unterbrechung am gleichen Anschluß festzustellen usw. Der Prozessor 5 startet dann den Befehl "Rücksetzen unter Maske", um das jeweilige Unterbrechungszustandsbit im Register 81 zurückzusetzen. Die gesamte Prozedur wird für die nachfolgenden Unterbrechungen wiederholt, die auf irgendeinem Kanal auftreten, wobei die Ergebnisse gesondert gespeichert werden, entsprechend den jeweiligen Vektoridentifizierungen Wenn die vollständige Menge von Zustandswechseln empfangen wurde, die für das erste vollständig bekannte Zeichen ausreicht, kann der Prozessor 5 die Parität und die Baudratenangaben für diesen Anschluß erfassen.

Claims (6)

1. Vorrichtung, die als Mehrfachanschluß-Übertragungsadapter zu verwenden ist, enthaltend:
- einen Prozessor (5) mit einem Datenbus und einem dort angeschlossenen Adreßbus;
- Steuer- und Entscheidungsmittel, die an die Adreß- und Datenbusse angeschlossene Entscheidungs- und Steuereinheits-DIAC-Mittel (3) für DMA- und Unterbrechungsdatenübertragungs-Anforderungen enthalten;
- wenigstens ein Anschlußinterface-Übertragungsmittel (2), wobei jedes mit einer Nachrichtenverbindung (1) verbunden ist, um darüber Signale zu übertragen oder zu empfangen;
- ein Unterbrechungssteuerlogikmittel (4), das an den Prozessor (5) und die DIAC-Mittel (3) angeschlossen ist;
- und ein Speichermittel (6), das an die Busse angeschlossen ist;
- wobei jedes Anschlußinterface-Übertragungsmittel (2) ein Mittel zur Übergabe von Datenübertragungs-Serviceanforderungs-Signalen an die DIAC (3) enthält;
- wobei die DIAC-Mittel (3) angeschlossen sind, um die Datenübertragungs-Serviceanforderungs-Signale zu empfangen, und über die Busse an die Prozessormittel angeschlossen sind, um darüber Daten und Adressen zu empfangen;
- wobei die DIAC-Mittel (3) erste und zweite Entscheidungsmittel (30, 36) enthalten, von denen jedes unter den Datenübertragungs-Serviceanforderungen entscheidet, die Anforderungen der Anschlüsse identifiziert und die Serviceanforderung des Anschlusses mit der höchsten gegenwärtig fordernden Priorität auswählt sowie in Antwort darauf eine Unterbrechung oder eine DMA-Anforderung an den Prozessor (5) übergibt, dabei enthält jedes erste und zweite Entscheidungsmittel (30, 36) programmierbare Freigabemittel (50, 69), um jeweils eine Anforderung im ersten Entscheidungsmittel (30) als DMA-Anforderung oder im zweiten Entscheidungsmittel (36) als Unterbrechungsanforderung freizugeben.
2. Vorrichtung gemäß Anspruch 1, dadurch gekennzeichnet, daß
- das Anschlußinterface-Übertragungsmittel (2) eine universelle synchrone/asynchrone Treiber/Empfänger-Anschlußinterfaceschaltung USART enthält, die mit den Adreß- und Datenbussen verbunden ist, um Daten zwischen den Interfaceschaltungen USART, dem Prozessor (5) und dem Speicher (6) entsprechend den DIAC-Prioritätsauswahlen und den Unterbrechungs- oder DMA-Steuersignalen zu übertragen.
3. Vorrichtung entsprechend den Ansprüchen 1 oder 2, die als Mehrfachanschluß-Übertragungsumsetzer zu benutzen ist, dadurch gekennzeichnet, daß
- der Mikroprozessor (5) eine Übertragungsprotokoll-Umsetzung durchführt;
- der Speicher (6) die Umsetzungsbefehle speichert;
- die Anschlußinterface-Übertragungsmittel (2) Signale mit logischem Pegel an die Interfacesignalpegel des Übertragungsgerätes anpassen, und
- das DIAC-Mittel das Serviceanforderungssignal mit der höchsten individuellen Priorität und geeignete Speicherplatzzeiger an den Prozessor (5) übergibt, um dem Prozessor zu ermöglichen, die ausgewählten Befehle für das ausgewählte Anschlußinterface-Übertragungsmittel (2) mit der höchsten Priorität auszuführen.
4. Vorrichtung entsprechend den Ansprüchen 1 oder 2, die als ein Mehrfachanschluß-Übertragungssteuersystem zu verwenden ist, dadurch gekennzeichnet, daß
- der Prozessor (5) den DIAC-Mitteln (3) Anfangssteuerparameter zur Verfügung stellt, entsprechend dem Befehl im Speicher (6), um zu definieren, daß der Servicemodus durch die DIAC-Mittel (3) an jedes Anschlußinterface-Übertragungsmittel (2) angepaßt wird.
5. Vorrichtung entsprechend den Ansprüchen 1 bis 4, dadurch gekennzeichnet, daß es Leitungsgeschwindigkeitsanzeigemittel enthält, die enthalten:
- einen programmierbaren Zeitgeber (13), der an den Datenbus angeschlossen ist; und
- Mittel (5), die mit dem Zeitgeber in Verbindung stehen und den Zeitraum zwischen wenigstens zwei aufeinanderfolgenden Serviceanforderungen von irgendeinem aus der Vielzahl von Anschlußinterface-Übertragungsmitteln (2) ablesen, wobei der Zeitraum eine Anzeige der Übertragungsleitungsgeschwindigkeit an diesem Interface liefert.
6. Vorrichtung entsprechend den Ansprüchen 1 bis 5, dadurch gekennzeichnet, daß
- das DIAC-Mittel (3) einen Prozessor für den DMA-Modus und einen Prozessor für den Unterbrechungsmodus sowie Mittel zur Steuerung enthält, welcher Prozessor verwendet wird, um eine Serviceanforderung von jedem Anschlußinterface-Übertragungsmittel (2) zu behandeln.
DE86107018T 1985-06-14 1986-05-23 Mehrfachport-Übertragungsadaptiervorrichtung. Expired - Fee Related DE3688763T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/744,851 US4751634A (en) 1985-06-14 1985-06-14 Multiple port communications adapter apparatus

Publications (2)

Publication Number Publication Date
DE3688763D1 DE3688763D1 (de) 1993-09-02
DE3688763T2 true DE3688763T2 (de) 1994-02-24

Family

ID=24994214

Family Applications (1)

Application Number Title Priority Date Filing Date
DE86107018T Expired - Fee Related DE3688763T2 (de) 1985-06-14 1986-05-23 Mehrfachport-Übertragungsadaptiervorrichtung.

Country Status (5)

Country Link
US (1) US4751634A (de)
EP (1) EP0205010B1 (de)
JP (1) JPS61288247A (de)
CA (1) CA1244556A (de)
DE (1) DE3688763T2 (de)

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4780814A (en) * 1987-02-09 1988-10-25 Intel Corporation Global serial channel for microcontroller
US4868783A (en) * 1987-06-15 1989-09-19 International Business Machines Corporation Dynamic port reconfiguration
JPH0831074B2 (ja) * 1987-11-25 1996-03-27 株式会社日立製作所 チャネル制御方式
JP2504512B2 (ja) * 1988-03-09 1996-06-05 富士通株式会社 Dmaコントロ―ラ
JPH0731613B2 (ja) * 1988-07-16 1995-04-10 日本電気株式会社 診断制御装置
US5276845A (en) * 1988-08-25 1994-01-04 Yamaha Corporation Apparatus with multiple buses for permitting concurrent access to a first memory by a processor while a DMA transfer is occurring between a second memory and a communications buffer
US5140679A (en) * 1988-09-14 1992-08-18 National Semiconductor Corporation Universal asynchronous receiver/transmitter
US5228130A (en) * 1988-09-14 1993-07-13 National Semiconductor Corporation Multi-channel peripheral interface using selectively flaggable channel register sets for concurrent write in response to any selected channel register write instruction
US5097410A (en) * 1988-12-30 1992-03-17 International Business Machines Corporation Multimode data system for transferring control and data information in an i/o subsystem
GB2226666B (en) * 1988-12-30 1993-07-07 Intel Corp Request/response protocol
EP0378398B1 (de) * 1989-01-13 1996-07-24 International Business Machines Corporation Datenverarbeitungssystem mit Mitteln zur Zustandserkennung der Befehle empfangenden Datenverarbeitungseinrichtung
HU210098B (en) * 1989-12-27 1995-02-28 Chinoin Gyogyszer Es Vegyeszet Process for producing isomeric mixtures of cypermethrin and stabilised insecticidal compositions and concentrates containing the mixtures
GEP20002025B (en) 1989-01-17 2000-04-10 Chinoin Diodser Esh Bidieceti Diara Rt Hu The Stable Arthropodicidal Composition
US5165036A (en) * 1989-01-31 1992-11-17 Sharp Kabushiki Kaisha Parallel processing development system with debugging device includes facilities for schematically displaying execution state of data driven type processor
JP2539058B2 (ja) * 1989-03-30 1996-10-02 三菱電機株式会社 デ―タプロセッサ
JPH077955B2 (ja) * 1989-05-13 1995-01-30 株式会社東芝 データ通信制御装置
EP0398523A3 (de) * 1989-05-19 1991-08-21 Hitachi, Ltd. Dateneingabe-/-ausgabevorrichtung und Ausführungsunterstützung in digitalen Prozessoren
US5185865A (en) * 1989-08-04 1993-02-09 Apple Computer, Inc. System for simulating block transfer with slave module incapable of block transfer by locking bus for multiple individual transfers
DK0426948T3 (da) 1989-08-11 1996-05-28 American Cyanamid Co Arylpyrroler som insekticide, acaricide og nematodicide midler samt fremgangsmåder til deres fremstilling
US5287486A (en) * 1989-10-05 1994-02-15 Mitsubishi Denki Kabushiki Kaisha DMA controller using a programmable timer, a transfer counter and an or logic gate to control data transfer interrupts
US5239629A (en) * 1989-12-29 1993-08-24 Supercomputer Systems Limited Partnership Dedicated centralized signaling mechanism for selectively signaling devices in a multiprocessor system
US5485590A (en) * 1990-01-08 1996-01-16 Allen-Bradley Company, Inc. Programmable controller communication interface module which is configurable by a removable memory cartridge
US5247671A (en) * 1990-02-14 1993-09-21 International Business Machines Corporation Scalable schedules for serial communications controller in data processing systems
US5377356A (en) * 1990-09-19 1994-12-27 Aeg Transportation Systems, Inc. Propulsion control system central processing unit board
US5471639A (en) * 1990-10-24 1995-11-28 At&T Global Information Solutions Company Apparatus for arbitrating for a high speed direct memory access bus
EP0486312B1 (de) * 1990-11-16 1997-04-23 Canon Kabushiki Kaisha Bildschnittstellenanordnung
JP2744865B2 (ja) * 1991-04-30 1998-04-28 インターナショナル・ビジネス・マシーンズ・コーポレイション シリアルチャネルアダプタ
US5291609A (en) * 1991-06-13 1994-03-01 Sony Electronics Inc. Computer interface circuit
JPH0561951A (ja) * 1991-08-30 1993-03-12 Fujitsu Ltd イメージ処理装置
US5280586A (en) * 1991-10-03 1994-01-18 Compaq Computer Corp. Expandable communication system using data concentration
US5386514A (en) * 1992-04-16 1995-01-31 Digital Equipment Corporation Queue apparatus and mechanics for a communications interface architecture
US5613141A (en) * 1992-10-19 1997-03-18 International Business Machines Corporation Data storage subsystem having dedicated links connecting a host adapter, controller and direct access storage devices
JPH07319810A (ja) * 1994-04-01 1995-12-08 Fujitsu Ltd ネットワークサービスシステム及びネットワークサービスシステムを利用可能なゲーム機用通信装置並びにゲーム機
JP2601187B2 (ja) * 1994-05-19 1997-04-16 日本電気株式会社 データリンク制御回路
DE69520706T2 (de) * 1994-06-03 2001-08-02 Hyundai Electronics America Herstellungsverfahren für einen elektrischen Vorrichtungs-Adapter
CA2135505C (en) * 1994-11-09 1999-11-09 Patrick K. Kam Dma emulation for non-dma capable interface cards
US5634099A (en) * 1994-12-09 1997-05-27 International Business Machines Corporation Direct memory access unit for transferring data between processor memories in multiprocessing systems
US5553293A (en) * 1994-12-09 1996-09-03 International Business Machines Corporation Interprocessor interrupt processing system
US5630140A (en) * 1995-01-23 1997-05-13 Tandem Computers Incorporated Ordered and reliable signal delivery in a distributed multiprocessor
FR2730835B1 (fr) * 1995-02-21 1997-03-14 Sgs Thomson Microelectronics Procede d'adaptation automatique des parametres d'une interface
US6546442B1 (en) * 1995-10-30 2003-04-08 International Business Machines Corporation Communications adapter having analog and digital interfaces for communications with remote systems
US5774680A (en) * 1995-12-11 1998-06-30 Compaq Computer Corporation Interfacing direct memory access devices to a non-ISA bus
US5768620A (en) * 1996-04-09 1998-06-16 International Business Machines Corporation Variable timeout method in a missing-interrupt-handler for I/O requests issued by the same operating system
US5944800A (en) * 1997-09-12 1999-08-31 Infineon Technologies Corporation Direct memory access unit having a definable plurality of transfer channels
US6098142A (en) * 1998-08-25 2000-08-01 Leggett; John D. Apparatus and method for using a communications port in polling mode and without interrupts
US6338111B1 (en) * 1999-02-22 2002-01-08 International Business Machines Corporation Method and apparatus for reducing I/O interrupts
US6256700B1 (en) * 1999-03-30 2001-07-03 Dell Usa, L.P. Bus/port switching system and method for a computer
US6680951B1 (en) * 1999-10-21 2004-01-20 International Business Machines Corporation System and method for selecting multi-rate ports in a data transmission network
US6553489B1 (en) * 2000-01-12 2003-04-22 Cisco Technology, Inc. System and method for secure and efficient universal port configuration
US6671764B2 (en) * 2000-12-20 2003-12-30 Intel Corporation PC adapter card with an interchangeable connector set
GB2372115A (en) * 2001-02-08 2002-08-14 Mitel Semiconductor Ltd Direct memory access controller
US6687767B2 (en) * 2001-10-25 2004-02-03 Sun Microsystems, Inc. Efficient direct memory access transfer of data and check information to and from a data storage device
US7353362B2 (en) * 2003-07-25 2008-04-01 International Business Machines Corporation Multiprocessor subsystem in SoC with bridge between processor clusters interconnetion and SoC system bus
US7412588B2 (en) 2003-07-25 2008-08-12 International Business Machines Corporation Network processor system on chip with bridge coupling protocol converting multiprocessor macro core local bus to peripheral interfaces coupled system bus
US7386642B2 (en) 2005-01-28 2008-06-10 Sony Computer Entertainment Inc. IO direct memory access system and method
JP2006216042A (ja) * 2005-02-04 2006-08-17 Sony Computer Entertainment Inc 割り込み処理のためのシステムおよび方法
US7680972B2 (en) * 2005-02-04 2010-03-16 Sony Computer Entertainment Inc. Micro interrupt handler
US8626951B2 (en) * 2007-04-23 2014-01-07 4Dk Technologies, Inc. Interoperability of network applications in a communications environment
EP2003556A1 (de) * 2007-05-25 2008-12-17 Axalto SA Verfahren zur Verarbeitung von Anwendungsbefehlen, die von physischen Kanälen ausgegeben wurden, mittels einer tragbaren elektronischen Vorrichtung sowie entsprechende Vorrichtung und entsprechendes System
US9672186B2 (en) * 2014-06-20 2017-06-06 Nxp Usa, Inc. Electronic monitoring device having wake-up for daisy chain
US9606856B2 (en) * 2014-12-03 2017-03-28 International Business Machines Corporation Event logging and error recovery

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4177511A (en) * 1974-09-04 1979-12-04 Burroughs Corporation Port select unit for a programmable serial-bit microprocessor
US4271466A (en) * 1975-02-20 1981-06-02 Panafacom Limited Direct memory access control system with byte/word control of data bus
US4075691A (en) * 1975-11-06 1978-02-21 Bunker Ramo Corporation Communication control unit
US4014005A (en) * 1976-01-05 1977-03-22 International Business Machines Corporation Configuration and control unit for a heterogeneous multi-system
US4200930A (en) * 1977-05-23 1980-04-29 Burroughs Corporation Adapter cluster module for data communications subsystem
US4168469A (en) * 1977-10-04 1979-09-18 Ncr Corporation Digital data communication adapter
US4403282A (en) * 1978-01-23 1983-09-06 Data General Corporation Data processing system using a high speed data channel for providing direct memory access for block data transfers
US4246637A (en) * 1978-06-26 1981-01-20 International Business Machines Corporation Data processor input/output controller
US4275440A (en) * 1978-10-02 1981-06-23 International Business Machines Corporation I/O Interrupt sequencing for real time and burst mode devices
US4449183A (en) * 1979-07-09 1984-05-15 Digital Equipment Corporation Arbitration scheme for a multiported shared functional device for use in multiprocessing systems
US4393464A (en) * 1980-12-12 1983-07-12 Ncr Corporation Chip topography for integrated circuit communication controller
US4424565A (en) * 1981-06-22 1984-01-03 Bell Telephone Laboratories, Incorporated Channel interface circuit with high speed data message header field translation and direct memory access
US4495564A (en) * 1981-08-10 1985-01-22 International Business Machines Corporation Multi sub-channel adapter with single status/address register
IT1145730B (it) * 1981-11-13 1986-11-05 Olivetti & Co Spa Sistema di elaborazione di dati con dispositivo di controllo delle interruzioni di programma
US4481578A (en) * 1982-05-21 1984-11-06 Pitney Bowes Inc. Direct memory access data transfer system for use with plural processors
US4513373A (en) * 1982-12-28 1985-04-23 Electronic Data Systems Corporation Local area network
US4571671A (en) * 1983-05-13 1986-02-18 International Business Machines Corporation Data processor having multiple-buffer adapter between a system channel and an input/output bus
US4654788A (en) * 1983-06-15 1987-03-31 Honeywell Information Systems Inc. Asynchronous multiport parallel access memory system for use in a single board computer system
US4648029A (en) * 1984-08-27 1987-03-03 International Business Machines Corporation Multiplexed interrupt/DMA request arbitration apparatus and method

Also Published As

Publication number Publication date
DE3688763D1 (de) 1993-09-02
CA1244556A (en) 1988-11-08
EP0205010B1 (de) 1993-07-28
EP0205010A2 (de) 1986-12-17
JPS61288247A (ja) 1986-12-18
JPH0450622B2 (de) 1992-08-14
US4751634A (en) 1988-06-14
EP0205010A3 (en) 1989-08-23

Similar Documents

Publication Publication Date Title
DE3688763T2 (de) Mehrfachport-Übertragungsadaptiervorrichtung.
DE3650036T2 (de) Mehrfachport-Diensterweiterungsadapter für Übertragungssteuerung.
DE3688810T2 (de) Mehrfachport-integrierter Steuerer und Arbitrierer für DMA und Unterbrechungen.
DE3587378T2 (de) Abtastloser Nachrichtenkonzentrator und Multiplexer.
DE69108434T2 (de) Mehrgruppen-Signalprozessor.
DE3650092T2 (de) E/a-steuerung mit zwei funktionen.
DE68922784T2 (de) Mehrfachbus-Mikrorechnersystem mit Busarbitrierung.
DE69030861T2 (de) Bus-Master-Steuerprotokoll
DE69030640T2 (de) Multiprozessorarbitrierung in für Einzelprozessor bestimmten Arbitrierungsschemas
DE3788539T2 (de) Gegenseitige Verriegelung zwischen mehreren zentralen Verarbeitungseinheiten.
DE3789104T2 (de) Netzwerkübertragungsadapter.
DE602004012106T2 (de) Multikanal-DMA mit gemeinsamem FIFO-Puffer
DE3689226T2 (de) Multiprozessorsystem mit multihierarchischen Ebenen.
DE3810231C2 (de)
DE3300262C2 (de)
DE3788805T2 (de) Prioritaetstechnik für einen zerteilten transaktionsbus in einem multiprozessorrechnersystem.
DE3586352T2 (de) Busarbiter fuer datenverarbeitungssystem mit einem ein-/ausgabekanal.
DE69027515T2 (de) Vorrichtung für Prioritätsarbitrierungskonditionierung bei gepufferter Direktspeicheradressierung
DE4121446C2 (de) Terminal-Server-Architektur
DE3704056A1 (de) Peripherer dma-controller fuer datenerfassungssysteme
DE69735575T2 (de) Verfahren und Vorrichtung zur Unterbrechungsverteilung in einem skalierbaren symmetrischen Mehrprozessorsystem ohne die Busbreite oder das Busprotokoll zu verändern
DE69031547T2 (de) Befehlsausgabe für ein Rechnersystem
DE3689198T2 (de) Systembus für Kommunikation zwischen Prozessoren.
EP0006164B1 (de) Multiprozessorsystem mit gemeinsam benutzbaren Speichern
DE69114961T2 (de) Vorrichtung für Zusammenschaltungskanäle.

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee