DE69231082T2 - Multiplexverfahren und -anordnung - Google Patents
Multiplexverfahren und -anordnungInfo
- Publication number
- DE69231082T2 DE69231082T2 DE69231082T DE69231082T DE69231082T2 DE 69231082 T2 DE69231082 T2 DE 69231082T2 DE 69231082 T DE69231082 T DE 69231082T DE 69231082 T DE69231082 T DE 69231082T DE 69231082 T2 DE69231082 T2 DE 69231082T2
- Authority
- DE
- Germany
- Prior art keywords
- channel
- time
- buffer
- uart
- channels
- 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
Links
- 238000000034 method Methods 0.000 title claims description 22
- 239000000872 buffer Substances 0.000 claims description 22
- 230000015654 memory Effects 0.000 claims description 19
- 238000012545 processing Methods 0.000 description 16
- 230000005540 biological transmission Effects 0.000 description 8
- 238000012546 transfer Methods 0.000 description 7
- 238000007796 conventional method Methods 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/16—Time-division multiplex systems in which the time allocation to individual channels within a transmission cycle is variable, e.g. to accommodate varying complexity of signals, to vary number of channels transmitted
- H04J3/1682—Allocation of channels according to the instantaneous demands of the users, e.g. concentrated multiplexers, statistical multiplexers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Time-Division Multiplex Systems (AREA)
- Communication Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
- Die vorliegende Erfindung bezieht sich auf Multiplexer, die in Computersystemen verwendet werden, und insbesondere auf einen Multiplexer, der eine Anzahl von asynchronen Kanälen aufweist, die mit unterschiedlichen Übertragungsgeschwindigkeiten funktionieren können.
- Fig. 1 zeigt ein vereinfachtes schematisches Diagramm eines Multiplexers in einem Computersystem. Die Elemente des Multiplexers sind zwischen zwei vertikal gestrichelten Linien umfaßt. Der Multiplexer weist eine Mehrzahl von UARTs (= Universal Asynchronous Receiver/Transmitters = Universelle Asynchrone Empfänger/Sender) 10 auf, die durch serielle Kommunikationsleitungen, wie z. B. RS232-Leitungen, mit äußeren Elementen 12 verbunden sind, wie z. B. Terminals (Endgeräten), Peripheriegeräten oder anderen Computersystemen. Ein Zuerst-Hinein-Zuerst-Hinaus- (FIFO-) Puffer 14 ist jedem der UARTs zugeordnet. Im folgenden wird eine Gruppe, die eine Serienverbindung, einen UART und einen FIFO umfaßt, ein Kanal C genannt, und es wird lediglich der Fall, bei dem äußere Elemente 12 Daten übertragen, untersucht.
- Ein Daten- und Adreß-Bus B verbindet jeden Kanal mit einem Mikroprozessor (CPU) 16, einem Speicher (RAM) 18 und einer Schnittstellenschaltung (BIC) 20 zwischen dem Bus B und einem äußeren Bus des Computersystems.
- Es kann in Betracht gezogen werden, daß in den FIFOs Daten in einer Ankunftsreihenfolge aufgestapelt werden, wobei die unteren Daten (die ersten) zuerst aus dem Stapel gezogen werden, und in dem Datenbus dargestellt werden, wenn der FIFO durch eine Adresse lese-ausgewählt wird. Die Lesedaten werden dann zu dem RAM 18 übertragen, bevor dieselben zu dem äußeren Bus übertragen werden. Es wird im folgenden angenom men, daß die Daten Zeichen sind.
- Das Kommunikationsprotokoll jedes der Kanäle, insbesondere die Übertragungsgeschwindigkeit, ist durch ein Register (nicht gezeigt) des zugeordneten UART bestimmt, das durch den Bus B programmiert werden kann. Die Übertragungsgeschwindigkeit ist durch ein Signal F gegeben, das zu jedem UART durch eine Taktschaltung (CK) 22 geliefert wird, die schließlich ein zusätzliches Signal 12 einer programmierbaren Frequenz liefern kann. Es ist üblich, daß eine Übertragungsgeschwindigkeit vorhanden ist, die zwischen 300 Baud und 38,4 Kilobaud liegt. Diese Übertragungsgeschwindigkeit, im folgenden die Kanalgeschwindigkeit, kann die Frequenz des Signals F erreichen. Die langsameren Übertragungsgeschwindigkeiten werden in den UARTs aus dem Signal F durch Teilen der Frequenz desselben mit Potenzen von 2 erhalten.
- Derzeit wird versucht, die Anzahl der Kanäle und/oder die maximale Übertragungsgeschwindigkeit, ohne die Leistung des Mikroprozessors zu erhöhen, d. h. die Frequenz, mit der der Mikroprozessor funktioniert, zu erhöhen, oder einen weniger leistungsvollen Mikroprozessor für eine gegebene Anzahl von Kanälen auszuwählen. Dies wird mit der Kenntnis versucht, daß der Multiplexer nicht alle Kanäle verwalten kann, wenn die Letzteren gesamt Zeichen mit einer maximalen Geschwindigkeit empfangen, jedoch ferner mit der Kenntnis, daß es wahrscheinlicher ist, daß lediglich eine begrenzte Anzahl von Kanälen mit einer hohen Geschwindigkeit betrieben wird. Es wird im folgenden angenommen, daß der Multiplexer sich in dieser realistischeren Situation befindet.
- Die Unfähigkeit, die Kanäle zu verwalten, führt zu einem Überlaufen der FIFOs aufgrund der Tatsache, daß der Mikroprozessor nicht die Zeit besitzt, die Zeichen in den RAM zu übertragen, oder führt zu einem Überlaufen des RAM aufgrund der Tatsache, daß der Mikroprozessor nicht die Zeit besitzt, die Zeichen zu dem äußeren Bus zu übertragen. Wenn ein FIFO-Überlaufen auftritt, überträgt der entsprechende UART ein Signal Xoff zu der zugeordneten Schaltung 12, das der Letzteren anzeigt, daß dieselbe das Übertragen beenden muß. Allgemein wird das Signal Xoff sobald gesendet, wie ein vorbestimmter Bruchteil des FIFO gefüllt ist, um einen Sicherheitsspielraum zu belassen, da die Schaltung 12 dennoch ein paar Zeichen nach dem Empfangen der Signale Xoff übertragen könnte, oder sogar dieses Signal ignorieren könnte, wenn die Schaltung entworfen ist, dieses Signal nicht zu verwenden. Die FIFOs besitzen allgemein eine kleine Größe, beispielsweise 16 Zeichen, und das Signal Xoff wird sobald gesendet, wie ein FIFO halb voll ist.
- Der Multiplexer von Fig. 1 kann herkömmlicherweise gemäß einer der drei Betriebsarten gemäß der Programmierung der UARTs und des Taktes CK (für die dritte Betriebsart) betrieben werden.
- Eine erste Betriebsart ist eine Unterbrechung (Interrupt) pro Zeichenbetriebsart. Bei dieser Betriebsart aktiviert der UART, sobald ein Zeichen, das in einem Kanal eintrifft, in den entsprechenden FIFO geschrieben wird, eine Unterbrechungsanfrage 11, die zu einem Unterbrechungseingang IRQ des Mikroprozessors durch ein ODER-Gatter 24 geliefert wird. Zu dem gleichen Zeitpunkt schreibt der UART nicht-gezeigte Registerdaten hinein, die der Anzahl der Kanäle entsprechen. Dann unterbricht der Mikroprozessor seine Aufgabe, liest in das obige Register die Anzahl der zu verarbeitenden Kanäle ein, und fragt den entsprechenden Kanal ab. Es ist offensichtlich, daß durch Abfragen eines Kanals derselbe danach überprüft wird, ob der entsprechende FIFO leer ist, und wenn dies nicht der Fall ist, wird der Inhalt desselben zu dem RAM übertragen.
- Fig. 2 zeigt symbolisch die Verarbeitungsdauern gemäß dieser ersten Betriebsart. Zeichen treffen zu zufälligen Zeitpunkten t ein. Von einem Zeitpunkt t wird eine Unterbrechung erzeugt und ein Unterbrechungsverarbeitungszeitintervall Tf wird gestartet. An dem Ende des Intervalls Tf beginnt ein Zeichenverarbeitungsintervall Tc. Wenn ein Zeichen ankommt, wenn das vorhergehende Zeichen bis jetzt noch nicht verarbeitet wurde, wird die Unterbrechung gespeichert und an dem Ende des Intervalls Tc des vorhergehenden Zeichens verarbeitet.
- Dieser erste Betriebsmodus ist sehr nachteilhaft. Tatsächlich ist die Unterbrechungsverarbeitungszeit Tf wesentlich länger als die Zeichenverarbeitungszeit Tc. Wenn beispielsweise der Mikroprozessor ein MOTOROLA-Prozessor der Serie 68000 ist, der bei einer Frequenz von 16 MHz betrieben wird, ist die Zeit Tf etwa gleich 4 Tc. Außerdem ist die Ankunft eines Zeichens in dem FIFO eines Kanals, der mit einer maximalen Frequenz von 38,4 Kilobaud betrieben wird, größer als Tf + Tc; daher kann für eine gleiche Unterbrechung lediglich ein Zeichen zu einem Zeitpunkt verarbeitet werden. Folglich ist unter der Annahme, daß ein ununterbrochener Fluß von Zeichen in den Kanälen ankommt, die Verarbeitungseffizienz der Zeichen
- Tc / (Tf + Tc) 1/5.
- Ein zweiter möglicher Betriebmodus ist der ununterbrochene Betriebsmodus. Bei diesem Betriebsmodus senden die UARTs keine Unterbrechungen und der Mikroprozessor führt in einer Endlosschleife ein Hauptprogramm aus, das ein Teilprogramm zum Abfragen aller Kanäle aufweist. Es wird entweder durch Einfügen von Verzögerungen in dem Hauptprogramm, wenn die Ausführungszeit des Letzteren zu kurz ist, oder durch Multiplizieren der Anzahl von abfragenden Teilprogrammen in dem Hauptprogramm, wenn die Ausführungszeit des Letzteren zu lang ist, entscheiden, daß die mittlere Zeit Te, die zwischen zwei Abfragen verstrichen ist, im wesentlichen gleich der Zeit eingestellt wird, die benötigt wird, um einen FIFO mit der maximalen Übertragungsgeschwindigkeit bis zu dem Punkt zu füllen, bei dem ein Xoff-Signal gesendet wird. Im folgenden wird diese Zeit die "minimale Zeit zum teilweise Füllen" genannt. Diese Zeit Te variiert folglich von einer Abfrage zu einer weiteren als eine Funktion der Aufgabenmenge, die durch den Mikroprozessor in dem Hauptprogramm und in dem (den) Teilprogramm(en) durchgeführt werden müssen.
- Fig. 3 zeigt symbolisch die Zeit, die während der Ausführung der Schleifen des Hauptprogramms verstrichen ist. Es wird in dieser Figur angenommen, daß das Hauptprogramm ein abfragendes Teilprogramm aufweist, das zu Beginn des Hauptprogramms ausgeführt wird. Die Zeitpunkte t0, t1 und t2 sind den Anfang jeder Hauptprogrammausführung zeigend gezeigt.
- Zu dem Zeitpunkt t0 ist der Zeichenfluß in den Kanälen niedrig, und sowohl die Ausführungszeit ΣT des Teilprogramms als auch die Gesamtzeit Te = t1 - t0 zum Ausführen der Schleife sind niedrig, da das Hauptprogramm dann lediglich im wesentlichen zum Übertragen einer niedrigen Anzahl von Zeichen, die in dem RAM gespeichert sind, zu dem äußeren Bus verantwortlich ist.
- Zu dem Zeitpunkt t1 wird angenommen, daß der Zeichenfluß wichtiger ist. Es nimmt nicht nur die Zeit ΣT sondern ferner die Übertragungszeit der Zeichen von dem RAM zu dem äußeren Bus zu. Folglich ist die Zeitzunahme des Intervalls Te = t2 - t1 größer als die einzige Zeitzunahme des Intervalls ΣT.
- Dieser zweite Betriebsmodus ist wesentlich zweckmäßiger als der vorhergehende, da der Mikroprozessor keine Unterbrechungen verarbeiten muß. Wenn jedoch der Zeichenfluß groß ist, kann die Zeit Te größer als die minimale Zeit eines teilweisen oder sogar vollständigen Füllens werden. Bei diesem Fall läuft ein FIFO eines Kanals mit maximaler Geschwindigkeit über, oder erreicht zumindest den Füllzustand, der bewirkt, daß ein Signal Xoff gesendet wird, was vermieden werden soll.
- Ein dritter Betriebsmodus ist ein periodischer Unterbrechungsmodus. Dieser Betriebsmodus ist gleich dem vorher gehenden mit der Ausnahme, daß die abfragenden Teilprogramme periodisch ausgeführt werden. Um dies zu erreichen, wird ein Unterbrechungssignal I2 zu dem Mikroprozessor geliefert, wobei die Periode desselben gleich der minimalen Zeit des teilweisen Füllens eines FIFO ist. Dieses Unterbrechungssignal I2, wie in Fig. 1 gezeigt, wird durch einen Taktgeber CK zu der Eingangs-IRQ des Mikroprozessors durch das ODER- Gatter 24 geliefert. Die Frequenz des Unterbrechungssignals 12 wird durch Teilen der Frequenz des Signals F durch einen Faktor, der in der Taktschaltung durch den Bus B programmiert werden kann, erhalten.
- Fig. 4 zeigt symbolisch eine Periode TI des Unterbrechungssignals I2. Diese Periode wird in eine Mehrzahl von Zeitintervallen unterteilt. Zu Beginn der Periode beginnt ein konstantes Zeitintervall Tf. Dieses Zeitintervall entspricht der Unterbrechungsverarbeitungszeit durch den Mikroprozessor. Diesem Zeitintervall folgen Zeitintervalle T1, T2 ... Tn, die jeweils dem Abfragen jedes der Kanäle C1 bis Cn entsprechen. Die Intervalle T1 bis Tn, deren Summe gleich ΣT ist, werden jeweils in ein konstantes Zeitintervall Ts, das der Zeit entspricht, die zum Auswählen eines Kanals notwendig ist, und in ein Zeitintervall ΣTc unterteilt, das gleich der Summe der Zeiten Tc zum Behandeln der Zeichen ist, die in dem FIFO des Kanals gespeichert sind. Ein variables Zeitintervall Tr, das die verbleibende Periode TI einnimmt, ist die Zeit, die dem Mikroprozessor übrig bleibt, um die anderen Aufgaben desselben durchzuführen, insbesondere das Übertragen der Zeichen von dem RAM zu dem äußeren Bus. Wenn das Intervall Tr ausreichend groß ist, kann der Mikroprozessor in jeder Periode den gesamten Inhalt des RAM zu dem äußeren Bus übertragen. Wenn dasselbe jedoch zu klein ist, kann diese Übertragung in eine Mehrzahl von Perioden verteilt werden, in der Hoffnung, daß sich der RAM nicht zu schnell weiter auffüllt.
- Bezüglich des vorhergehenden Modus besitzt dieser Betriebsmodus für jede Periode TI eine zusätzliche Inaktivitätszeit Tf, die dem Verarbeiten einer Unterbrechung entspricht. Dieser Betriebsmodus ist folglich leicht weniger effizient als der vorhergehende, ist jedoch zuverlässiger, da die Periode TI nicht variiert. Die mittlere Zeichenverarbeitungseffizienz bezüglich einer Periode TI wird durch folgende Gleichung ausgedrückt:
- n bezeichnet die Anzahl der Kanäle und m die mittlere Anzahl der Zeichen, die pro Periode ankommen. Es sei bemerkt, daß diese Effizienz mit m zunimmt, und daß folglich der Wert derselben am größten ist, wenn alle Kanäle Zeichen mit einer maximalen Geschwindigkeit empfangen. Dieser Modus ist der effizienteste, wenn alle Kanäle mit der maximalen Geschwindigkeit betrieben werden.
- Wie im vorhergehenden erwähnt, ist es jedoch wesentlich wahrscheinlicher, daß eine begrenzte Anzahl (möglicherweise Null) der Kanäle mit einer maximalen Geschwindigkeit betrieben werden, und die anderen Kanäle mit niedrigeren Geschwindigkeiten betrieben werden. Dann nimmt die obige Effizienz im wesentlichen ab und stellt ein Hindernis dar, wenn es gewünscht wird, die Anzahl der Kanäle zu erhöhen. Wenn beispielsweise angenommen wird, daß der Kanal C1, der dem Intervall T1 entspricht, mit einer maximalen Frequenz betrieben wird, daß diese Periode TI der Ankunft von 8 Zeichen mit dieser Frequenz in dem FIFO entspricht, und daß der Kanal C2, der dem Intervall T2 entspricht, mit einer Geschwindigkeit betrieben wird, die 8 mal kleiner als die maximale Geschwindigkeit ist, werden in jeder Periode TI 8 Zeichen während des Intervalls T1 und lediglich 1 während des Intervalls T2 verarbeitet. Tatsächlich wird ein Intervall Ts für 8 Zeichen und ein zusätzliches Intervall Ts für ein Zeichen verbraucht werden. Wenn andere Kanäle mit noch einer kleineren Geschwindigkeit betrieben werden, werden zusätzliche In tervalle Ts für keine Zeichen verbraucht. Es sei bemerkt, daß in einem derartigen Fall der Ausdruck n·Ts in dem Ausdruck für die Effizienz r bezüglich des Ausdrucks m·Tc zunimmt, was eine Verringerung der Effizient bewirkt.
- Folglich nimmt, je mehr Kanäle vorhanden sind, die mit niedrigeren Geschwindigkeiten bezüglich der Kanäle betrieben werden, die mit höheren Geschwindigkeiten betrieben werden, desto mehr die Zeichenverarbeitungseffizienz ab, und desto mehr wird die Möglichkeit des Verwaltens von zusätzlichen Kanälen vermindert.
- Synchrone Multiplexer sind aus der WO-A-8703762 und der EP- A-0228629 bekannt. Ein stauungsgesteuerter asynchroner Multiplexer ist aus der EP-A-0406925 bekannt.
- Ein Ziel der vorliegenden Erfindung besteht darin, ein Verfahren vorzusehen, das es ermöglicht, eine erhöhte Zeichenverarbeitungsgeschwindigkeit in einem Multiplexer mit Kanälen, die mit unterschiedlichen Geschwindigkeiten betrieben werden, zu erhalten.
- Ein weiteres Ziel der Erfindung besteht darin, einen Multiplexer vorzusehen, der eine erhöhte Anzahl von Kanälen besitzen kann, die mit unterschiedlichen Geschwindigkeiten mit einem Mikroprozessor einer gegebenen Leistung betrieben werden.
- Ein weiteres Ziel der Erfindung besteht darin, einen Multiplexer vorzusehen, der einen Mikroprozessor mit reduzierter Leistung für eine gegebene Anzahl von Kanälen, die bei unterschiedlichen Geschwindigkeiten betrieben werden, aufweist.
- Ein weiteres Ziel der Erfindung besteht darin, einen Multi plexer vorzusehen, der Kanäle mit einer größeren maximalen Geschwindigkeit mit einem Mikroprozessor einer gegebenen Leistung aufweist.
- Diese Ziele werden aufgrund eines Verfahrens zum Übertragen von Daten von einer Mehrzahl von asynchronen seriellen Kanälen, die bei jeweiligen Geschwindigkeiten betrieben werden, in einen parallelen Kanal, wobei ein Pufferspeicher jedem seriellen Kanal zugeordnet ist, in dem Daten gespeichert werden, die in dem seriellen Kanal ankommen, erreicht, wobei das Verfahren den Schritt des Abfragens jedes Kanals einmal pro vorbestimmter Anzahl von Zeitintervallen einer Folge von Zeitintervallen und dann des Übertragens der Daten, die in dem zugeordneten Puffer gespeichert sind, zu dem parallelen Kanal, aufweist, wobei die vorbestimmte Anzahl gleich dem Verhältnis der Geschwindigkeit eines schnellsten Kanals und der Geschwindigkeit des abgefragten Kanals ist; wobei die Zeitlängen der Zeitintervalle kleiner oder gleich der Zeit sind, die zum Füllen des Puffers benötigt wird, der dem schnellsten Kanal zugeordnet ist.
- Gemäß einem Ausführungsbeispiel der Erfindung besitzen alle Zeitintervalle die gleiche Länge, die gleich der Zeit zum Füllen des Puffers ist, der dem schnellsten Kanal zugeordnet ist, um zu bewirken, daß ein Überlaufen auftritt.
- Gemäß einem Ausführungsbeispiel der Erfindung sind die Verhältnisse der Kanalgeschwindigkeiten Potenzen von 2.
- Gemäß einem Ausführungsbeispiel der Erfindung werden die folgenden Schritte ausgeführt: Speichern von Daten in einem zweiten Speicher, die zu dem parallelen Kanal durch Pakete übertragen werden, die den Daten entsprechen, die in den Puffern gespeichert sind; sobald der zweite Speicher nicht mehr leer ist, Verifizieren für die folgenden Pakete, ob der zweite Speicher ausreichend Raum zum Speichern eines zusätzlichen Pakets besitzt; und sobald der zweite Speicher keinen ausreichenden Raum zum Speichern eines zusätzlichen Pakets besitzt, Speichern der Daten des Pakets datenweise und Verifizieren, ob der zweite Speicher genügend Raum zum Speichern von zusätzlichen Daten besitzt.
- Die Erfindung sieht ferner einen Multiplexer mit folgenden Merkmalen vor: einer Mehrzahl von universellen asynchronen Sendern/Empfängern (UARTs), die bei jeweiligen Geschwindigkeiten betrieben werden; einem Pufferspeicher, der jedem der UARTs zugeordnet ist; einem Mikroprozessor, der mit den UARTs und mit den Puffern durch einen Bus verbunden ist; und einer Einrichtung zum Abfragen jedes UART einmal pro vorbestimmter Anzahl von Zeitintervallen in einer Folge von Zeitintervallen und dann zum Übertragen der Daten, die in dem zugeordneten Speicher gespeichert sind, zu dem Datenbus, wobei die vorbestimmte Anzahl gleich dem Verhältnis der Geschwindigkeit eines schnellsten UART und der Geschwindigkeit des abgefragten UART ist; wobei die Zeitlängen der Zeitintervalle kleiner gleich oder gleich der Zeit sind, die zum Füllen des Puffers notwendig ist, der dem schnellsten UART zugeordnet ist.
- Gemäß einem weiteren Ausführungsbeispiel der Erfindung weist die Einrichtung zum Abfragen eine Taktschaltung auf, die eine Frequenz aufweist, die durch den Bus programmierbar ist, wobei der Mikroprozessor durch ein Ausgangssignal dieser Taktschaltung unterbrechbar ist, wobei die Periode des Ausgangssignals mit einer Zeitlänge zum Füllen des Puffers programmiert ist, der dem schnellsten UART zugeordnet ist, um zu bewirken, daß ein Überlaufen auftritt.
- Gemäß einem weiteren Ausführungsbeispiel der Erfindung sind die Verhältnisse zwischen den UART-Geschwindigkeiten Potenzen von z.
- Die vorhergehenden und weitere Ziele, Merkmale und Vorteile der Erfindung sind detailliert in der folgenden Beschreibung von bevorzugten Ausführungsbeispielen unter Bezugnahme auf die beigefügten Zeichnungen dargestellt, in denen:
- Fig. 1 die vorher beschrieben wurde, einen herkömmlichen Multiplexer zeigt, in dem die Erfindung ausgeführt werden kann;
- Fig. 2 die vorher beschrieben wurden, Verarbeitungszeiten bis 4 bei herkömmlichen Multiplexern zeigen; und
- Fig. 5 Verarbeitungszeiten während einer Mehrzahl von Perioden eines Unterbrechungssignals in einem Ausführungsbeispiel eines Multiplexers gemäß der Erfindung darstellt.
- Um klarer das Verfahren der Erfindung zu verstehen, basiert die folgende Beschreibung auf einem praktischen Beispiel, das anschließend verallgemeinert wird.
- Es wird das Beispiel eines Multiplexers betrachtet, wie z. B. derselbe von Fig. 1, mit:
- - 2 Kanälen C1 und C2 mit 38,4 Kilobaud;
- - 1 Kanal C3 mit 19,2 Kilobaud;
- - 1 Kanal C4 mit 9,6 Kilobaud; und
- - 2 Kanälen C5 und C6 mit 4,8 Kilobaud.
- Es wird ferner angenommen, daß die Periode TI der Ankunft von 8 Zeichen in einem Kanal von 38,4 Kilobaud entspricht;
- Folglich empfangen in jeder Periode TI die FIFOs der Kanäle C1 und C2 8 Zeichen, derselbe des Kanals C3 empfängt 4 Zeichen, derselbe des Kanals C4 empfängt 2 Zeichen und dieselben der Kanäle C5 und C6 empfangen 1 Zeichen.
- Gemäß dem herkömmlichen dritten Betriebsmodus, der im vorhergehenden beschrieben ist, werden die Kanäle C1 bis C6 zu jeder Periode TI abgefragt, und für 24 Zeichen werden sechs Kanal-Schalt-Zeitintervalle Ts und ein Unterbrechungsverarbeitungszeitintervall Tf verbraucht.
- Gemäß der Erfindung wird lediglich entschieden, einen Kanal abzufragen, wenn es eine Möglichkeit gibt, daß der FIFO desselben eine vorbestimmte Anzahl (8) von Zeichen empfangen hat. Es wird daher wie folgt fortgeschritten:
- - in jeder Periode TI werden die Kanäle C1 und C2 abgefragt;
- - einmal alle zwei Perioden wird der Kanal C3 abgefragt;
- - einmal alle vier Perioden wird der Kanal C4 abgefragt; und
- - einmal alle acht Perioden werden die Kanäle C5 und C6 abgefragt.
- Wenn folglich alle Kanäle einen ununterbrochenen Fluß von Zeichen empfangen, wird jeder der Kanäle zu einem optimalen Zeitpunkt abgefragt, wenn der FIFO desselben mit der gleichen Menge voll ist, wie die anderen FIFOs. Die Menge ist bei einem bevorzugten Ausführungsbeispiel eine Menge, die geringfügig kleiner als dieselbe ist, die bewirkt, daß das Signal Xoff gesendet wird.
- Es wird der vorher erwähnte Ausdruck der Zeichenverarbeitungseffizienz des herkömmlichen dritten Betriebsmodus in Erinnerung gerufen:
- Gemäß der Erfindung in diesem Beispiel verbleibt die Anzahl m gleich, da die gleiche mittlere Anzahl von Zeichen, die pro Periode verarbeitet werden soll, gleich derselben des herkömmlichen Verfahrens ist, die Anzahl n, die der Anzahl der Kanäle entspricht, ist jedoch anstelle 6 (sechs Kanäle) gemäß dem herkömmlichen Verfahren lediglich 2 + 1/2 + 1/4 + 2/8 = 3. Tatsächlich werden, wenn das Verfahren, wie es in einer Periode sichtbar ist, betrachtet wird, die Kanäle C1 und C2 einmal verarbeitet, der Kanal C3 wird eine halbe Zeit verarbeitet, der Kanal C4 wird eine viertel Zeit verarbeitet und die Kanäle C5 und C6 werden eine achtel Zeit verarbeitet.
- Bei diesem Beispiel werden tatsächlich halb so viele Intervalle Ts als bei dem herkömmlichen Verfahren verbraucht. Folglich können die gewonnenen Intervalle Ts zum Verarbeiten von Zeichen verwendet werden, die in zusätzlichen Kanälen ankommen.
- Eine Mehrzahl von Fällen können bei der Implementation des oben beschriebenen Verfahrens auftauchen. Die folgende Tabelle und die Fig. 5 zeigen den einfachsten Fall.
- Die erste Spalte der Tabelle zeigt die Auftrittsanzahl der betrachteten Perioden TI. Die vier folgenden Spalten entsprechen jeweils den Kanälen C1 und C2, C3, C4, C5 und C6. Ein Kreuz in der Spalte zeigt an, daß der Kanal in der entsprechenden Periode TI der linken Spalte abgefragt wird.
- Fig. 5 zeigt mit den gleichen Bezeichnungen und symbolischen Darstellungen, wie in den vorhergehenden Figuren, acht aufeinanderfolgende Perioden TI, die den acht ersten Zeilen der Tabelle entsprechen.
- Diese Tabelle zeigt den Fall, bei dem für jeden der Kanäle von der ersten Periode TI gezählt wird, um die Periode zu kennen, bei der der Kanal abgefragt werden muß. Mit anderen Worten ist der Zählursprung für jeden Kanal gleich. Durch Verschieben der ursprünglichen einen Zeile nach oben für den Kanal C3 ist es lediglich erforderlich, drei Kanäle in der Periode 4 anstatt vier Kanäle und lediglich fünf Kanäle in der Periode 8 anstatt sechs Kanäle abzufragen.
- Wenn der Ursprung für den Kanal 4 ferner zwei Zeilen nach oben verschoben wird, wird es lediglich notwendig sein, vier Kanäle in der Periode 8 und drei Kanäle in den anderen Perioden abzufragen. Folglich ist das Verfahren dann weniger bezüglich der Gesamtanzahl von Kanälen begrenzt, die in einer Periode behandelt werden können.
- Gemäß der Erfindung wird die Periode TI bezüglich des schnellsten Kanals ausgewählt, wobei sich die Geschwindigkeit desselben von der maximalen Geschwindigkeit (hier 38,4 Kilobaud) unterscheiden kann. Das heißt die Periode TI, die herkömmlicherweise in dem Taktgeber CK programmiert werden kann, wird gleich der minimalen Zeit des teilweise Füllens eines schnellsten Kanals ausgewählt. Bei dem vorhergehenden Beispiel ist die schnellste Geschwindigkeit 38,4 Kilobaud, die für acht Zeichen einer Füllzeit von etwa 2,1 Millisekunden entspricht. Wenn der schnellste Kanal 19,6 Kilobaud schnell ist, wird die Füllzeit und folglich die Periode TI mit 2 multipliziert. Wenn die Periode TI mit 2 multipliziert wird, wird die Summe der "nutzlosen" Zeiten, d. h. die Intervalle Tf und Ts, halb so wichtig, und es verbleibt mehr Zeit, die Zeichen zu verarbeiten.
- Gemäß der Erfindung ist es ferner vorgesehen, das Übertragungsverfahren der Zeichen in den RAM zu optimieren, und folglich die Zeit Tc zu optimieren. Um dies zu erreichen, führt der Mikroprozessor die folgenden Schritte aus:
- - wenn der RAM leer ist, wird der Inhalt eines FIFO-Speichers ohne eine Verifikation in den RAM übertragen, und es wird zu dem folgenden Schritt für die kommenden Zeichen umgeschaltet;
- - der Inhalt eines FIFO wird in den RAM übertragen und es wird verifiziert, ob es genügend Raum in dem RAM gibt, um den Inhalt eines weiteren FIFO zu empfangen;
- - wenn der Raum, der in dem RAM übrig ist, für das Empfangen des Inhalts eines FIFO unzureichend ist, werden die Zeichen des FIFO in den RAM eines nach dem anderen geschrieben, und es wird für jedes Zeichen geprüft, ob es genügend Raum in dem RAM zum Empfangen eines weiteren Zeichens gibt;
- - wenn der RAM voll ist, wird das Abfragen der Kanäle ange halten und der Inhalt des RAM wird zu dem äußeren Bus bis zu dem nächsten Beginn einer Periode TI übertragen.
- Wenn folglich der RAM voll ist, wenn noch nicht alle Kanäle jetzt verarbeitet wurden, erreichen die FIFOs der verbleibenden Kanäle den Füllzustand, der bewirkt, daß das Signal Xoff gesendet wird, und die zugeordneten Sendeschaltungen 12 werden in einen Wartezustand eingestellt. Die Tatsache, daß der RAM voll ist, bedeutet, daß die vorher erwähnten verbleibenden Zeitintervalle Tr zu klein sind, damit der Mikroprozessor den Inhalt des RAM zu dem äußeren Bus übertragen kann.
- Es ist in der Technik bekannt, gemäß dem zweiten obigen Schritt fortzuschreiten und zu dem vierten Schritt zu schalten, wenn es nicht genügend Raum bzw. Platz in dem RAM für den Inhalt eines FIFO gibt. Die Verifikationszeit des verbleibenden Raums in dem RAM, die mit der Zeit Ts gezählt wird, ist wichtig. Tatsächlich ist der erste Schritt in dem zitierten Beispiel des 68000-Mikroprozessors dreimal kürzer.
- Außerdem vermindert die Tatsache, daß der verbleibende Raum des RAM bei dem dritten Schritt genutzt wird, was bis jetzt in der Technik noch nicht durchgeführt wurde, die Wahrscheinlichkeit, das Xoff-Signale gesendet werden.
- Das Verfahren gemäß der Erfindung kann auf eine beliebige Anzahl von Kanälen, die mit unterschiedlichen Geschwindigkeiten betrieben werden, verallgemeinert werden. Die Periode TI wird gleich der Dauer des Füllens eines FIFO eines schnellsten Kanals, bevor ein Signal Xoff gesendet wird, gewählt. Jeder beliebige Kanal, der mit einer Geschwindigkeit, die k mal kleiner als die Geschwindigkeit der schnellsten Kanäle ist, wird einmal alle k Perioden abgefragt.
- Viele Alternativen und Modifikationen der vorliegenden Erfindung werden Fachleuten offensichtlich sein. Das Verfahren kann durch ein Programm ausgeführt werden, das durch den Mikroprozessor ausgeführt wird, oder kann durch logische Schaltungen ausgeführt werden. Die Größen der FIFOs und des RAM können einen beliebigen Wert besitzen, und je größer sie sind, desto effizienter wird das Verfahren sein.
- Obwohl das Verfahren mit periodischen Unterbrechungen beschrieben wurde, kann dasselbe ferner ohne Unterbrechungen durch ein Programm implementiert sein, das in einer Endlosschleife ausgeführt wird, wie z. B. bei dem herkömmlichen zweiten Multiplexverfahren.
Claims (7)
1. Verfahren zum Übertragen von Daten von einer Mehrzahl
von asynchronen seriellen Kanälen, die mit jeweiligen
Geschwindigkeiten betrieben werden, in einen
parallelen Kanal (B), wobei ein Pufferspeicher (14) jedem
seriellen Kanal zugeordnet ist, in dem Daten
gespeichert werden, die in dem seriellen Kanal ankommen,
wobei das Verfahren den Schritt des Abfragens jedes
Kanals einmal pro vorbestimmter Anzahl von
Zeitintervallen von einer Folge von Zeitintervallen (TI) und
dann des Übertragens der Daten, die in dem
zugeordneten Puffer (14) gespeichert sind, zu dem parallelen
Kanal (B) aufweist, wobei die vorbestimmte Anzahl
gleich dem Verhältnis der Geschwindigkeit eines
schnellsten Kanals und der Geschwindigkeit des
abgefragten Kanals ist; wobei die Zeitlängen der
Zeitintervalle kleiner oder gleich der Zeit sind, die zum
Füllen des Puffers notwendig ist, der dem schnellsten
Kanal zugeordnet ist.
2. Verfahren gemäß Anspruch 1, bei dem alle
Zeitintervalle die gleiche Länge aufweisen, die gleich der Zeit
zum Füllen des Puffers ist, der dem schnellsten Kanal
zugeordnet ist, um zu bewirken, daß ein Überlaufen
auftritt.
3. Verfahren gemäß Anspruch 1 oder 2, bei dem die
Verhältnisse der Kanalgeschwindigkeiten Potenzen von 2
sind.
4. Verfahren gemäß Anspruch 1, das folgende Schritte
aufweist:
- Speichern in einem zweiten Speicher (18) der Daten,
die zu dem parallelen Kanal von den Pufferspeichern
übertragen werden, durch Pakete, die der Kapazität
der Puffer (14) entsprechen;
- sobald der zweite Speicher nicht leer ist,
Verifizieren für die folgenden Pakete, die von den
Pufferspeichern übertragen werden sollen, ob der
zweite Speicher ausreichend Raum zum Speichern eines
zusätzlichen Pakets aufweist; und
- sobald der zweite Speicher keinen ausreichenden
Raum zum Speichern eines zusätzlichen Pakets
aufweist, Speichern der Daten des zusätzlichen Pakets
Date um Date und, nach der Speicherung jeder Date,
Verifizieren, ob der zweite Speicher ausreichend
Raum zum Speichern einer zusätzlichen Date
aufweist.
5. Multiplexer mit folgenden Merkmalen:
- einer Mehrzahl von universellen asynchronen
Sendern/Empfängern (UARTs) (10), die mit jeweiligen
Geschwindigkeiten betrieben werden;
- einem Pufferspeicher (14), der jedem der UARTs
zugeordnet ist;
- einem Mikroprozessor (16), der mit den UARTs und
mit den Puffern durch einen Bus (B) verbunden ist;
und
- einer Einrichtung zum Abfragen jedes UART (10)
einmal pro vorbestimmter Anzahl von Zeitintervallen in
einer Folge von Zeitintervallen (TI) und dann zum
Übertragen der Daten, die in dem zugeordneten
Puffer gespeichert sind, zu dem Datenbus, wobei die
vorbestimmte Anzahl gleich dem Verhältnis der
Geschwindigkeit eines schnellsten UART und der
Ge
schwindigkeit des abgefragten UART ist;
wobei die Zeitlängen der Zeitintervalle kleiner oder
gleich der Zeit sind, die zum Füllen des Puffers
notwendig ist, der dem schnellsten UART zugeordnet ist.
6. Multiplexer gemäß Anspruch 5, bei dem die Einrichtung
zum Abfragen eine Taktschaltung (22) mit einer
Frequenz aufweist, die durch den Bus programmierbar ist,
wobei der Prozessor durch ein Ausgangssignal dieser
Taktschaltung (22) unterbrechbar ist, wobei die
Periode des Ausgangssignals mit einer Zeitlänge zum Füllen
des Puffers programmiert ist, der dem schnellsten UART
zugeordnet ist, um zu bewirken, daß ein Überlaufen
auftritt.
7. Multiplexer gemäß Anspruch 5 oder 6, bei dem die
Verhältnisse zwischen den UART-Geschwindigkeiten Potenzen
von 2 sind.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9111396A FR2681205B1 (fr) | 1991-09-09 | 1991-09-09 | Procede et dispositif de multiplexage. |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69231082D1 DE69231082D1 (de) | 2000-06-29 |
DE69231082T2 true DE69231082T2 (de) | 2001-02-15 |
Family
ID=9416981
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69231082T Expired - Fee Related DE69231082T2 (de) | 1991-09-09 | 1992-09-07 | Multiplexverfahren und -anordnung |
Country Status (5)
Country | Link |
---|---|
US (1) | US5311505A (de) |
EP (1) | EP0532431B1 (de) |
JP (1) | JPH05233512A (de) |
DE (1) | DE69231082T2 (de) |
FR (1) | FR2681205B1 (de) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5425027A (en) * | 1993-01-04 | 1995-06-13 | Com21, Inc. | Wide area fiber and TV cable fast packet cell network |
US6012110A (en) * | 1997-12-26 | 2000-01-04 | Digi International | Apparatus and method for input data loss prevention with a buffered UART |
JP3824118B2 (ja) * | 1998-03-03 | 2006-09-20 | Kddi株式会社 | ポーリング周期制御装置 |
US6522671B1 (en) * | 1999-05-10 | 2003-02-18 | Nortel Networks Limited | Protocol independent sub-rate device |
IL141800A0 (en) * | 1999-07-06 | 2002-03-10 | Samsung Electronics Co Ltd | Rate matching device and method for a data communication system |
US7000136B1 (en) * | 2002-06-21 | 2006-02-14 | Pmc-Sierra, Inc. | Efficient variably-channelized SONET multiplexer and payload mapper |
US7124222B2 (en) * | 2003-12-16 | 2006-10-17 | 1X1 Mobile, Ltd. | Control system and method for a communications interface |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4380065A (en) * | 1980-09-29 | 1983-04-12 | Honeywell Information Systems Inc. | Communication multiplexer variable priority scheme |
USH696H (en) * | 1984-07-03 | 1989-10-03 | Cpt Corporation | System for accessing shared resource device by intelligent user devices |
US4658152A (en) * | 1985-12-04 | 1987-04-14 | Bell Communications Research, Inc. | Adaptive rate multiplexer-demultiplexer |
JPH0771097B2 (ja) * | 1985-12-20 | 1995-07-31 | 株式会社日立製作所 | 時分割多重通信方式 |
US4937815A (en) * | 1988-11-21 | 1990-06-26 | Systech Corporation | Interrupt prioritization system and method for a demand shared bus |
NL8901171A (nl) * | 1989-05-10 | 1990-12-03 | At & T & Philips Telecomm | Werkwijze voor het samenvoegen van twee datacelstromen tot een datacelstroom, en atd-multiplexer voor toepassing van deze werkwijze. |
-
1991
- 1991-09-09 FR FR9111396A patent/FR2681205B1/fr not_active Expired - Fee Related
-
1992
- 1992-09-07 EP EP92420295A patent/EP0532431B1/de not_active Expired - Lifetime
- 1992-09-07 DE DE69231082T patent/DE69231082T2/de not_active Expired - Fee Related
- 1992-09-08 JP JP4239340A patent/JPH05233512A/ja active Pending
- 1992-09-08 US US07/940,215 patent/US5311505A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0532431B1 (de) | 2000-05-24 |
JPH05233512A (ja) | 1993-09-10 |
EP0532431A1 (de) | 1993-03-17 |
US5311505A (en) | 1994-05-10 |
DE69231082D1 (de) | 2000-06-29 |
FR2681205B1 (fr) | 1994-05-06 |
FR2681205A1 (fr) | 1993-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3300261C2 (de) | ||
DE3300260C2 (de) | ||
DE3586280T2 (de) | Gesteuertes sternnetz. | |
DE69413740T2 (de) | Arbitrierungsverfahren zur Datenflusssteuerung durch ein E/A-Steuergerät | |
DE3300262C2 (de) | ||
DE69331311T2 (de) | Datenkommunikationssystem und Verfahren | |
DE69635379T2 (de) | Atm-drosselung | |
DE2503111A1 (de) | Vermittlungs-verfahren zur multiplexen uebertragung von informationen und schaltungsanordnung zur durchfuehrung dieses verfahrens | |
DE68918077T2 (de) | Verfahren und System zur Übertragung von gepufferten Datenpaketen auf einem Übertragungsnetz. | |
DE2901762A1 (de) | Datenuebertragungs- und verarbeitungsanlage | |
DE69520886T2 (de) | System und verfahren zur verarbeitung von signaldaten und kommunikationssystem mit system zur verarbeitung von signaldaten | |
DE2856483A1 (de) | Verbindungseinheit fuer datenverarbeitungssysteme | |
DE19531749A1 (de) | Verkehrsgestaltungseinrichtung und Paket-Kommunikationsgerät | |
DE69318773T2 (de) | Testzellengenerator für asynchrone Transfermodus-(ATM)-Übertragung | |
DE4219918A1 (de) | Datenkommunikationssystem | |
DE69033655T2 (de) | Verfahren und System zur Überwachung der Datenraten von asynchronen Zeitmultiplex-Übertragungen | |
DE3103786A1 (de) | Datenuebertragungssystem | |
DE68922984T2 (de) | Programmierbare Zeitsteuerung der Datenübertragung. | |
DE3586919T2 (de) | Verfahren zur steuerung von informationsuebertragung. | |
DE69231082T2 (de) | Multiplexverfahren und -anordnung | |
EP0184706B1 (de) | Schnittstelleneinrichtung | |
DE3042105C2 (de) | ||
DE69232167T2 (de) | Datenzuführverfahren und vorrichtung für einen gepufferten uart | |
DE60013023T2 (de) | Methode und Einheit zum Steuern der Ausgabe-Ordnung von temporär gespeicherten Daten oder Objekten | |
DE3604966C1 (de) | Schaltungsanordnung zum Vermitteln von Binaersignalen,insbesondere PCM-Signalen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: HEWLETT-PACKARD CO. (N.D.GES.D.STAATES DELAWARE), |
|
8327 | Change in the person/name/address of the patent owner |
Owner name: HEWLETT-PACKARD DEVELOPMENT CO., L.P., HOUSTON, TE |
|
8339 | Ceased/non-payment of the annual fee |