CIRCUIT FOR CONTROLLING THE BIDIRECTIONAL DATA TRANSMISSION BETWEEN A COMPUTER AND TRANSMISSION LINES CONNECTED VIA INPUT/OUTPUT UNITS

Abstract: Each direction of transmission has an intermediate memory (ZP1, ZP2) which is connected to a processing unit (RE) via an address/data bus (ADB) and to transmission lines via input/output units (EE, AE). A programmable threshold logic unit (SL1, SL2) is associated with each of the intermediate memories (ZP1, ZP2); these units are connected to the processing unit (RE) on the one hand via the address/data bus (ADB) and on the other hand via an interrupt request logic circuit (IRL). <IMAGE>

Description: Schaltungsanordnung zur Steuerung der bidirektionalen Datenubertragung zwischen einer Rechnereinheit und über Ein-/Ausgabeeinheiten angeschLossenen übertragungsleitungen Die Erfindung betrifft eine Schaltungsanordnung zur Steuerung der bidirektionalen Datenübertragung zwischen einer Rechnereinheit und über Ein-/Ausgabeeinheiten angeschlossene übertragungsleitungen, wobei für die erste übertragungsrichtung - Eingabeeinheit, Rechnereinheit - ein erster Zwischenspeicher und für die zweite übertragungsrichtung - Rechnereinheit, Augabeeinheit - ein zweiter Zwischenspeicher vorgesehen ist, die einerseits über einen Adressen-/Datenbus mit der Rechnereinheit und andererseits mit der Ein- bzw. Ausgabeeinheit verbunden sind. Zwischen Systemen mit unterschiedlichem Echtzeitverhalten, wie zum Beispiel zwischen schnell arbeitenden Rechnereinheiten und langsamen peripheren Geräten werden zur Anpassung der Arbeitsgeschwindigkeiten Zwischenspeicher verwendet. Zum Steuern der bidirektionalen Datenübertragung zwischen soLchen Systemen ist bereits eine Schaltungsanordnung bekannt CEP 0 013 347) in der Schwellenwerte vorgegeben werden, die einer vorgebbaren Speicherkapazität der Zwischenspeicher entsprechen. Diese Schaltungsanordnung hat jedoch den Nachteil, dass beim Erreichen dieser Schwellenwerte in der ersten übertragungsrichtung - Eingabeeinheit, Rechnereinheit - die über die übertragungsleitung ankommenden Daten solange nicht in den Zwischenspeicher aufgenommen werden können, bis durch Aktivitäten von seiten der Rechnereinheit der Zwischenspeicher soweit geleert ist, dass der Schwellenwert wieder unterschritten ist. Somit ist für diesen Zeitraum ein weiterer Zwischenspeicher notwendig, damit die ankommenden Daten nicht verloren gehen. Weiterhin wird in der zweiten übertragungsrichtung - Rechnereinheit, Ausgabeeinheit - beim Erreichen der Schwellenwerte das Auslesen des Zwischenspeichers veran lasst, wobei die Rechnereinheit mit dem Einschreiben neuer Daten solange warten muss, bis der Schwellenwert in dem Zwischenspeicher unterschritten ist. Dies bedeutet, dass als sinnvolle Schwellenwerte die maximale Kapazität der Zwischenspeicher zu setzen ist, womit sich aber eine durch Schwellenwerte abhängige Steuerung erübrigt. Die technische Aufgabe der Schaltungsanordnung nach der Erfindung besteht darin, eine Steuerung zur bidirektionalen Datenübertragung zwischen einer Rechnereinheit und über Ein-/Ausgabeeinheiten angeschlossene übertragungsleitungen so zu realisieren, dass eine minimale Belastung der Rechnereinheit durch Unterbrechungsbearbeitungszeiten erreicht wird. Eine erfindungsmässige Schaltungsanordnung der eingangs genannten Art ist dadurch gekennzeichnet, dass eine erste programmierbare Schwellenlogikeinheit an den ersten Zwischenspeicher angeschlossen ist, dass eine zweite programmierbare Schwellenlogikeinheit an den zweiten Zwischenspeicher angeschlossen ist, dass die erste und die zweite programmierbare Schwellenlogikeinheit über den Adressen-/Datenbus mit der Rechnereinheit verbunden sind, dass eine Unterbrechungsanforderungslogik zwischen die erste und die zweite programmierbare Schwellenlogikeinheit geschaltet und über den Adressen-/Datenbus sowie eine Unterbrechungsanforderungsleitung an die Rechnereinheit geführt ist und dass die erste und die zweite programmierbare Schwellenlogikeinheit einerseits durch die Rechnereinheit vorgebbare Schwellenwerte speichern und andererseits die Anzahl der in die Zwischenspeicher eingeschriebenen bzw. ausgelesenen Datenworte zählen und beim Erreichen der vorgegebenen Schwellenwerte ein Signal über die Unterbrechungsanforderungslogik und die Unterbrechungsanforderungsleitung an die Rechnereinheit senden. Ein Vorteil der Erfindung liegt insbesondere darin, dass durch die programmierbaren Schwellenlogikeinheiten eine optimale Anpassung an den Datenfluss der übertragungsleitungen ermöglicht wird, da die Zwischenspeicher zu jedem Zeitpunkt die von den Eingabeeinheiten ankommenden Daten einschreiben oder Daten an die Ausgabeeinheiten auslesen. Ausserdem wird die Rechnereinheit durch die zwischen die programmierbaren Schwellenlogikeinheiten geschaltete Unterbrechungsanforderungslogik nur beim Erreichen der vorgegebenen Schwellenwerte in den Zwischenspeichern zum schnellen Auslesen und Einschreiben von Daten in die Zwischenspeicher unterbrochen. Weitere vorteilhafte Ausbildungen des Gegenstandes der Erfindung sind den Unteransprüchen zu entnenmen. Ein Austünrungsbeispiel wird im folgenden anhand der Zeichnungen er Läutern. Es zeigen: Figur 1 ein Blockschaltbild für eine erfingungsemäne Schaltungsanordnung, und Figur 2 eine Schwellenlogikeinheit und eine Unter brechungsanforderungslogik der erfindungsgemässen Schaltungsanordnung nach Figur 1. Für eine Steuerung der bidirektionalen Datenübertragung zwischen einer Rechnereinheit RE und über Ein-/Ausgabeeinheiten EE, AE angeschlossene übertragungsleitungen ist, wie in Figur 1 gezeigt, für die erste übertragungsrichtung - Rechnereinheit RE, Ausgabeeinheit AE - ein erster Zwischenspeicher ZP1 und für die zweite übertragungsrichtung - Rechnereinheit RE, Ausgabeeinheit AE - ein zweiter Zwischenspeicher ZP2 vorgesehen. Dabei wird bei den übertragungsleitungen hier von den Kanälen eines PCM 30 Systems ausgegangen, welches 32 Kanäle aufweist. über die übertragungsleitungen wird ein serieller Bitstrom von 4,096 MBit/sec d.h. 16 Bit/Kanal übertragen. Der serielle Bitstrom eines Kanals wird wortorientiert in den ersten Zwischenspeicher ZP1 eingeschrieben und aus dem zweiten Zwischenspeicher ZP2 ausgelesen. Zur besseren übersicht wurde nur 1 PCM Kanal in gehender und kommender übertragungsrichtung näher betrachtet, da alle anderen Kanäle entsprechend gesteuert werden. Die Zwischenspeicher ZP1, ZP2 sind einerseits über einen Adressen-/Datenbus ADB mit der Rechnereinheit RE ud andererseits über die Ein-/Ausgabeeinheiten EE, AE an die PCM-Leitungen angeschlossen. Von einem PCM Kanal eines PCM 30 Systems wird in jedem Rahmen, d.h. alle 125 #sec ein Datenwort übertragen. Dabei wird in der ersten übertragungsrichtung ein ausgeblendetes 16 Bit Datenwort in der Eingabeeinheit EE aufgenommen, die oberen 8 Bit abgetrennt sowie die unteren 8 Nutzbits in den ersten Zwischenspeicher ZP1 eingeschrieben. Ebenso verlässt in der zweiten übertragungsrichtung alle 125 usec ein Datenwort den zweiten Zwischenspeicher ZP2. Dabei werden in einer hier nicht näher gezeigten Formatisierungslogik zunächst die oberen 8 Bit zwischengespeichert und beim Beschreiten der unteren 8 Bit das so entstandene 16 Bit Datenwort in den zweiten Zwischenspeicher ZP2 eingeschrieben und über die Ausgabeeinheit AE in einen Kanal des PCM 30 System eingeblendet. Für die Zwischenspeicher ZP1, ZP2 wird von einer Kapazität von 12 Datenworten ausgegangen. Eine erste und eine zweite programmierbare Schwellenlogikeinheit SL1, SL2 ist an den ersten bzw. zweiten Zwischenspeicher ZP1, ZP2 angeschlossen, sowie über den Adressen-/ Datenbus ADB mit der Rechnereinheit RE verbunden. Zwischen die erste und zweite programmierbare Schwellen Logikeinheit SL1, SL2 ist eine Unterbrechungsanforderungslogik IRL geschaltet, die über den Adressen-/Datenbus ADB sowie eine Unterbrechungsanforderungsleitung UL mit der Rechnereinheit RE in Verbindung steht. Da alte programmierbaren Schwellenlogikeinheiten SL1, SL2 prinzipiell gleich aufgebaut sind, wird in Figur 2 nur die erste programmierbare Schwellenlogikeinheit SL1 gezeigt. Sie enthäLt eine erste Zähler-Registereinheit ZR1, die mit dem ersten Zwischenspeicher ZP1, über den Adressen-/Datenbus ADB mit der Rechnereinheit RE und mit einer ersten Vergleichseinheit VE1 verbunden ist. Die Unterorechungsanforderungslogik IRL weist, wie aus Figur 2 ersichtLich, ein Unterbrechungsmaskierungsregister IMAR, ein UnterDrechungsausführurgsreaister IAUSR und ein Unterbrechungsanforderungsregister IAKR auf. as Unter brechungsanforderungsregister IANR ist mit den Ver# Lei chs- einheiten V El, VE 2, mit dem Unterbrechurigsmaskierunas- register IMAR und über den Adressen-iDatenbus ADB mit der Rechnereinheit RE verbunden. Ferner ist das Unterbrechungsmaskierungsregister IMAR an das Unterbrechungs ausführungsregister IAUSR und über den Adressen-/Datenbus ADB an die Rechnereinheit RE geführt. Das Unterbrechungs ausführungsregister IAUSR ist an eine logische ODER Schalteinheit OR angeschlossen und über die Unterbrechungsanforderungsleitung UL mit der Rechnereinheit RE verbunden. Die Rechnereinheit RE gibt nun über den Adressen-/Datenbus ADB der ersten und zweiten programmierbaren Schwellenlogikeinheit SL1, SL2 Schwellenwerte vor, die einer Anzahl im ersten Zwischenspeicher ZP1 durch eingeschriebene Datenworte besetzter Speicherplätze und im zweiten Zwischenspeicher ZP2 durch das Auslesen der Datenworte freigewordener Speicherplätze, im folgenden Leerplätze genannt, entsprechen. Diese Schwellenwerte werden in der ersten bzw. einer zweiten Zähler-Registereinheit ZR1, ZR2 abgespeichert. Dabei wird im folgenden für die erste programmierbare Schwellenlogikeinheit SL1 von einem Schwellenwert 9, d.h. 9 Datenworte eingeschrieben und für die zweite programmierbare Schwellenlogikeinheit SL2 von einem Schwellenwert 8, d.h. 8 Leerplätzen, ausgegangen. Die erste und zweite Zählerregistereinheit ZR1, ZR2 zählen wieviele Datenworte in den jeweiligen Zwischenspeicher ZP1, ZP2 eingeschrieben und ausgelesen worden sind. Somit enthalten die Zählerregistereinheiten ZR1, ZR2 einerseits die vorgegebenen Schwellenwerte und andererseits die Anzahl der zu jedem Zeitpunkt eingeschriebenen Datenworte des ersten Zwischenspeichers ZP1 bzw. die entsprechende Anzahl der Leerplätze des zweiten Zwischenspeichers ZP2. Die erste und eine zweite Vergleichseinheit VE1, VE2 vergleichen nun die abgespeicherten Schwellenwerte mit dem Inhalt der die Anzahl der eingeschriebenen Datenworte bzw. Leerplätze enthaltenden Register. Solange die Registerin halte gleich oder grösser als der entsprechende Schwellenwert sind, wird ein SignaL an das Unterbrechungsanforderungsregister IANR der Unterbrechungsanforderungslogik IRL abgegeben. Die Unterbrechungsregister IANR, IAUSR, IMAR der Unterbrechungsanforderungslogik IRL weisen für alle ersten Zwischenspeicher ZP1 ein gemeinsames Bit, für alle zweiten Zwischenspeicher ZP2 ein gemeinsames Bit und für eine mögliche übertragung von Daten in Paketform (wird später noch beschrieben) ein weiteres gemeinsames Bit auf. Enthält das System mehr als zwei Zwischenspeicher ZP1, ZP2 so werden zur Auffindung der ein Signal aussendenden Vergleichseinheit VE1, VE2 die folgenden nicht näher dargestellten Register benötigt. Ein erstes Unterbrechungs-Identifizierungsregister, das pro erstem Zwischenspeicher ZP1 ein dit aufweist, welches durch die zugehörige Vergleichseinheit VE1 beim Erreichen des Schwellenwertes auf logisch "1" gesetzt wird. Ein entsprechendes zweites Unterbrechungs-Identifizierungsregister für die zweiten Zwischenspeicher ZP2 und ein entsprechendes drittes Unterbrechungs-Identifizierungsregister für eine jedem ersten Zwischenspeicher ZP1 zugeordnete (wird später beschrieben) Logikeinheit LE. Durch ein z.B. von der ersten VergLeichseinheit VE1 abgegebenes Signal an das Unterbrechungsanforderungsregister IANR wird dort das für den ersten wischenspeicher ZP1 vorgesenene Bit auf einen logischen "1"-Pegel gesetzt. Entsprechend tier n dem Unterbrechungsmaskierungsregister IMAR vor#iegercen Maske, die üDer den #oressen-/Datenbu# ADS von der Steuereinheit SE aufgelegt wird, wird nun das von dem Unterb rechungsanfo IANR vor Liegende "1"-Pegelsignal zum Unterbrechungsausführungs- register IAUSR durchgeschaltet oder gesperrt. Jeder logische "1"-Pegel im Unterbrechungsausführungsregister IAUSR wird durch die ODER-Schalteinheit OR als Unterbrechungssignal über die Unterbrechungsanforderungsleitung UL zur Rechnereinheit RE gemeldet. Die Rechnereinheit RE registriert das Unterbrechungssignal, beendet seine gerade laufende Arbeit und legt über den Adressen-/Datenbus ADB im Unterbrechungsmaskierungsregister IMAR eine neue Maske auf, so dass keine weiteren von der Rechnereinheit RE ungewollten Unterbrechungssignale an die Rechnereinheit RE durchgeschaltet werden können. Jetzt liest die Rechnereinheit RE über den Adressen-/Datenbus ADB den Inhalt des Unterbrechungsanforderungsregister IANR aus, wodurch sie mitgeteilt bekommt, dass die Schwelle im ersten Zwischenspeicher ZP1 erreicht wurde. Wird von einem System mit mehreren Zwischenspeichern ZP1, ZP2 ausgegangen, so erhält die Rechnereinheit RE durch den Inhalt des Unterbrechungsanforderungsregisters IANR zunächst die Information, ob ein Schwellenwert in einem ersten oder einem zweiten Zwischenspeicher ZP1, ZP2 erreicht wurde. Sodann greift die Rechnereinheit RE auf das erste Unterbrechungs-Identifizierungsregister oder auf das zweite Unterbrechungs-Identifizierungsregister zu, wodurch die Rechnereinheit RE erkennt, welchen Zwischenspeicher ZP1, ZP2 sie zu bedienen hat. Unter der Annahme, dass die beiden vorgegebenen Schwellenwerte im ersten und im zweiten Zwischenspeicher ZP1, ZP2 gleichzeitig erreicht werden, wird entsprechend der Bear beitungspriorität, die im Programm der Rechnereinheit RE vorgebbar ist, vorgegangen. Im vorliegenden Fall legt nun die Rechnereinheit RE über den Adressen-/Datenbus ADB die Adresse der ersten Zähler- Registereinheit ZR1 an und der Inhalt des Register, der inzwischen 10 sei, wird ausgelesen und in der Rechnereinheit RE abgespeichert. Aufgrund dieses Registerinhaltes liest nun die Rechnereinheit RE über den Adressen-/Datenbus ADB 10 Datenworter aus dem ersten Zwischenspeicher ZP1 aus und speichert sie zur weiteren Verarbeitung ab. Dadurch wird der Inhalt des Registers der ersten Zähler Registereinheit ZR1 entsprechend dekrementiert. Sobald die erste Vergleichseinheit VE1 erkennt, dass der vorgegebene Schwellenwert unterschritten wurde, wird auch das Signal an das Unterbrechungsanforderungsregister IANR aufgehoben und das entsprechende Bit im Unterbrechungsanforderungsregister IANR auf den logischen "O"-Pegel gesetzt. Falls inzwischen ein weiteres Unterbrechungssignal nach geänderter Maske, da der vorliegende Vorgang durch die Rechnereinheit RE abgeschlossen war, aufgrund des Erreichens des Schwellenwertes des zweiten Zwischenspeichers ZP2 der Rechnereinheit RE vorliegt, wiederholt sich analog zum vorher beschriebenen Vorgang der gleiche Ablauf. Die Rechnereinheit RE liest dabei den Inhalt der zweiten Zähler-Registereinheit ZR2, der inzwischen 11 sei, aus und speichert ihn ab. Nun überträgt die Rechnereinheit RE 11 Datenwörter zum zweiten Zwischenspeicher ZP2. Dabei wird die zweite Zähler-Registereinheit ZR2 dekrementiert und das zugehörige Bit im Unterbrechungsanforderungsregister IANR nach Unterschreiten des Schwellenwertes auf den "O"-Pegel gesetzt. Die Rechnereinheit RE kann nun wieder solange andere Aufgaben bearbeiten, bis erneut die für die Zwischenspeicher ZP1, ZP2 vorgegebenen Schwellenwerte uberschritten werden. Durch die von der Rechnereinheit RE vorgebbaren Schwellenwerte, d.h. das Programmieren der Schwellenlogikeinheiten SL1, SL2, wird eine optimale Anpassung der verschiedenen Geschwindigkeiten der Signale der jeweils angeschlossenen übertragungsleitungen und der jeweils benutzten Rechnereinheit RE ermöglicht. Dabei können durch die vorgebbaren Schwellenwerte die Geschwindigkeit der Rechnereinheit RE zum Auslesen und Einschreiben eines Datenwortes in einen Zwischenspeicher ZP1, ZP2, die verschiedenen Prioritäten eines Unterbrechungssignals sowie besondere Gegebenheiten der Zwischenspeicher ZP1, ZP2 mühelos berücksichtigt werden. Dies hat eine minimale Belastung der Rechnereinheit RE durch Unterbrechungsbearbeitungszeiten zur Folge. Sollte während des Betriebes eine Verkehrslaständerung von seiten der übertragungsleitungen auftreten, kann die Rechnereinheit RE durch das Abändern der Schwellenwerte auch solche Betriebsfälle entsprechend leicht steuern. Für den Fall, dass die von den PCM-Leitungen kommenden Daten in Paketform gesendet werden, ist gemäss der Erfindung zwischen jede Eingabeeinheit EE und jedem ersten Zwischenspeicher ZP1 eine Logikeinheit LE geschaltet, die je über eine Verbindungsleitung VL mit dem Unterbrechungsanforderungsregister IANR verbunden ist. Die Logikeinheit LE decodiert das Ende-Wort einer Nachricht und beschreibt über die Verbindungsleitung VL ein zugehöriges Bit im Unterbrechungsanforderungsregister IANR. Bei einem System mit mehreren ersten Zwischenspeichern ZP1, sind die Logikeinheiten LE mit dem dritten Unterbrechungs-Identifizierungsregister verbunden. Somit wird der Rechnereinheit RE bei entsprechender Maske im Unterbrechungsmaskierungsregister IMAR über das Unterbrechungsausfünrungsregister IAUSR ein Unterbrechungssignal gesendet, wenn das Ende einer Nachricht im ersten Zwischenspeicher ZP1 eingeschrieben ist. Anderenfalls wurde das Ende einer Nachricht solange im ersten Zwischenspeicher ZP1 stehen bleiben, bis eine nachfolgende Nachricht den ersten Zwischenspeicher ZP1 bis zum vorgegebenen Schwellenwert aufgefüllt hätte.

Claims: Circuit arrangement for controlling bidirectional data transfer between a computer unit (RE) and transmission lines connected via input/output units (EE, AE) by monitoring the occupancy levels of buffers, characterized in that a first buffer (ZP1) is provided for the first direction of transfer - input unit (EE), computer unit (RE) - and a second buffer (ZP2) is provided for the second direction of transfer - computer unit (RE), output unit (AE) said buffers (ZP1, ZP2) being connected, on the one hand, to the computer unit (RE) via an address/data bus (ADB) and, on the other hand, to the input unit (EE) and the output unit (AE), respectively, that a first programmable threshold logic unit (SL1) is attached to the first buffer (ZP1), that a second programmable threshold logic unit (SL2) is attached to the second buffer (ZP2), that the first and second programmable threshold logic units (SL1, SL2) are connected via the address/data bus (ADB) to the computer unit (RE), that an interrupt request logic (IRL) is provided between the first and second programmable threshold logic units (SL1, SL2) and connected via the address/data bus (ADB) and an interrupt request line (UL) to the computer unit (RE), and that the first and second programmable threshold logic units (SL1, SL2), on the one hand, store threshold values presettable by the computer unit (RE) and, on the other hand, count the number of data words written into the first buffer (ZP1) and read from the second buffer (ZP2), respectively, and, when the preset threshold values are reached, send a signal via the interrupt request logic (IRL) and the interrupt request line (UL) to the computer unit (RE). A circuit arrangement as claimed in claim 1, characterized in that the first and second programmable threshold logic units (SL1, SL2) contain a first counter-register unit (ZR1) and a second counter-register unit (ZR2), respectively, which are connected to the first and second buffers (ZP1, ZP2), respectively, to the computer unit (RE) via the address/data bus (ADB),and to the interrupt request logic (IRL) via a first comparing unit (VE1) and a second comparing unit (VE2), respectively. A circuit arrangement as claimed in claim 1 or 2, characterized in that the interrupt request logic (IRL) includes an interrupt request register (IANR), an interrupt mask register (IMAR), and an interrupt execution register (IAUSR), that the interrupt request register (IANR) is connected to the comparing units (VE1, VE2), to the interrupt mask register (IMAR), and via the address/data bus (ADB), to the computer unit (RE), that the interrupt mask register (IMAR) is also connected to the interrupt execution register (IAUSR) and, via the address/data bus (ADB), to the computer unit (RE), and that the interrupt execution register (IAUSR) is connected to a logic OR unit (OR) coupled to the computer unit (RE) via the interrupt request line (UL). A circuit arrangement as claimed in any one of the preceding claims, characterized in that a logic unit (LE) provided between each input unit (EE) and each first buffer (ZP1) is connected via a connecting line (VL) to the interrupt request register (IANR), so that, if data is transmitted over the transmission lines in packet form, an end data word of a message is decoded in the logic unit (LE) and a bit in the interrupt request register (IANR) is set on/off by the logic unit (LE) via the connecting line (VL).

Inventors: GASSER, FRANZ
Applicants: ALCATEL N.V., STANDARD ELEKTRIK LORENZ AKTIENGESELLSCHAFT
Application year: 1985
Main classification: G06F13
IPC codes: G06F13