DE69123769T2 - Integrierte Datenübertragungsstreckensteuerung mit dynamischer Hyperchannelzuteilung - Google Patents
Integrierte Datenübertragungsstreckensteuerung mit dynamischer HyperchannelzuteilungInfo
- Publication number
- DE69123769T2 DE69123769T2 DE69123769T DE69123769T DE69123769T2 DE 69123769 T2 DE69123769 T2 DE 69123769T2 DE 69123769 T DE69123769 T DE 69123769T DE 69123769 T DE69123769 T DE 69123769T DE 69123769 T2 DE69123769 T2 DE 69123769T2
- Authority
- DE
- Germany
- Prior art keywords
- data
- channel
- state
- channels
- rsm
- 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
- 238000012545 processing Methods 0.000 claims description 286
- 238000012546 transfer Methods 0.000 claims description 174
- 230000006870 function Effects 0.000 claims description 148
- 230000015654 memory Effects 0.000 claims description 139
- 230000005540 biological transmission Effects 0.000 claims description 103
- 230000004913 activation Effects 0.000 claims description 16
- 230000003936 working memory Effects 0.000 claims 1
- 108091006146 Channels Proteins 0.000 description 874
- 238000005192 partition Methods 0.000 description 230
- 239000013598 vector Substances 0.000 description 165
- 230000000875 corresponding effect Effects 0.000 description 149
- 239000000872 buffer Substances 0.000 description 115
- 238000000034 method Methods 0.000 description 109
- 230000008569 process Effects 0.000 description 100
- 230000008859 change Effects 0.000 description 85
- 230000009471 action Effects 0.000 description 79
- 230000001360 synchronised effect Effects 0.000 description 76
- 239000011159 matrix material Substances 0.000 description 75
- 239000000470 constituent Substances 0.000 description 43
- 230000000694 effects Effects 0.000 description 33
- 230000004044 response Effects 0.000 description 32
- 238000001514 detection method Methods 0.000 description 29
- 230000007704 transition Effects 0.000 description 29
- 230000015572 biosynthetic process Effects 0.000 description 28
- 238000013507 mapping Methods 0.000 description 25
- 238000010586 diagram Methods 0.000 description 23
- 238000011068 loading method Methods 0.000 description 23
- 230000004224 protection Effects 0.000 description 19
- 238000012790 confirmation Methods 0.000 description 18
- 230000001419 dependent effect Effects 0.000 description 15
- 239000003550 marker Substances 0.000 description 13
- 230000011664 signaling Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 12
- 238000007726 management method Methods 0.000 description 12
- 101100334377 Xenopus laevis fscn gene Proteins 0.000 description 10
- 238000010200 validation analysis Methods 0.000 description 10
- 230000003213 activating effect Effects 0.000 description 8
- 230000001276 controlling effect Effects 0.000 description 8
- 230000008520 organization Effects 0.000 description 7
- 230000002829 reductive effect Effects 0.000 description 7
- 230000003111 delayed effect Effects 0.000 description 6
- 238000012217 deletion Methods 0.000 description 6
- 230000037430 deletion Effects 0.000 description 6
- 238000013461 design Methods 0.000 description 6
- 230000002441 reversible effect Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 5
- 238000012423 maintenance Methods 0.000 description 5
- 230000036961 partial effect Effects 0.000 description 5
- PXXLQQDIFVPNMP-UHFFFAOYSA-N 3-(diethylcarbamoyl)benzoic acid Chemical compound CCN(CC)C(=O)C1=CC=CC(C(O)=O)=C1 PXXLQQDIFVPNMP-UHFFFAOYSA-N 0.000 description 4
- 125000004122 cyclic group Chemical group 0.000 description 4
- 238000003780 insertion Methods 0.000 description 4
- 230000037431 insertion Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 238000002360 preparation method Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000001143 conditioned effect Effects 0.000 description 3
- 230000003862 health status Effects 0.000 description 3
- 230000008054 signal transmission Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- VHYFNPMBLIVWCW-UHFFFAOYSA-N 4-Dimethylaminopyridine Chemical compound CN(C)C1=CC=NC=C1 VHYFNPMBLIVWCW-UHFFFAOYSA-N 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 2
- 206010000210 abortion Diseases 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 230000009849 deactivation Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000011049 filling Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000001105 regulatory effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000009131 signaling function Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- IYZMXHQDXZKNCY-UHFFFAOYSA-N 1-n,1-n-diphenyl-4-n,4-n-bis[4-(n-phenylanilino)phenyl]benzene-1,4-diamine Chemical compound C1=CC=CC=C1N(C=1C=CC(=CC=1)N(C=1C=CC(=CC=1)N(C=1C=CC=CC=1)C=1C=CC=CC=1)C=1C=CC(=CC=1)N(C=1C=CC=CC=1)C=1C=CC=CC=1)C1=CC=CC=C1 IYZMXHQDXZKNCY-UHFFFAOYSA-N 0.000 description 1
- ATTRMYMZQWIZOR-RRKCRQDMSA-N 4-amino-1-[(2r,4s,5r)-4-hydroxy-5-(hydroxymethyl)oxolan-2-yl]-6-methyl-1,3,5-triazin-2-one Chemical group CC1=NC(N)=NC(=O)N1[C@@H]1O[C@H](CO)[C@@H](O)C1 ATTRMYMZQWIZOR-RRKCRQDMSA-N 0.000 description 1
- 229960000549 4-dimethylaminophenol Drugs 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000013075 data extraction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- -1 digitized voice) Proteins 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000005283 ground state Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- PWPJGUXAGUPAHP-UHFFFAOYSA-N lufenuron Chemical compound C1=C(Cl)C(OC(F)(F)C(C(F)(F)F)F)=CC(Cl)=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F PWPJGUXAGUPAHP-UHFFFAOYSA-N 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000001343 mnemonic effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000011295 pitch Substances 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000002028 premature Effects 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000004117 rotating field mass spectrometry Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000036962 time dependent Effects 0.000 description 1
- 101150009136 tlcA gene Proteins 0.000 description 1
- 230000007306 turnover Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/14—Multichannel or multilink protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/324—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Time-Division Multiplex Systems (AREA)
- Communication Control (AREA)
Description
- Die vorliegende Erfindung betrifft Datenübertragungssteuerungen, in denen mehrere Kanäle als ein erweiterter Kanal fungieren können.
- Hyperchannels, die auch unter der Bezeichnung H-Kanäle bekannt sind und in der vorliegenden Patentschrift an anderer Stelle als "erweiterte Kanäle" bezeichnet werden, werden gebildet, indem kleinere Kanäle so kombiniert werden, daß eine größere Bandbreite erreicht wird [Siehe: CCITT Red Book, Bd. III, Faszikel III.5, "Integrated Services Digital Network (ISDN), Recommendations of the Series 1, Genf 1985]. In den CCITT- Empfehlungen für Hyperchannels in ISDN-Umgebungen werden drei Arten von Hyperchannels mit jeweils fester Bandbreite für nationale schnelle Datenübertragungsstrecken unterschieden. Dabei handelt es sich um Hyperchannels des Typs H0 mit 384 Kbps, Hyperchannels des Typs H11 mit 1536 Mbps (vierfache Übertragungsgeschwindigkeit gegenüber H0) und Hyperchannels des Typs H12 mit 1920 Mbps (fünffache Übertragungsgeschwindigkeit gegenüber H0).
- In den genannten CCITT-Empfehlungen wird eine Umgebung für die integrierte Unterstützung digitalisierter Sprach- und Datenübertragung definiert, auf die sich nationale und übernationale Fernübertragungsnetze in den USA und anderen Ländern derzeit anscheinend zubewegen. Ein einfacher Simplex-Sprachübertragungskanal überträgt 64 Kbps, und ein Vollduplex-Sprachüber tragungskanal überträgt 128 Kbps (zur Sprachübertragung auf einem kommerziell als akzeptabel beurteilten Qualitätsniveau). Es ist klar, daß die Übertragungsgeschwindigkeiten für die definierten Hyperchannels bestimmte Vielfache der Grundgeschwindigkeiten für Einzel-Sprachübertragungskanäle im Simplex- oder im Vollduplexbetrieb sind.
- Ein erweiterter Kanal wird in der US-Patentschrift 4852089 beschrieben, die ein Übertragungsnetzwerk betrifft, in dem die verfügbare Bandbreite für jede Übertragungsleitung in "Zeitschlitze" oder "Fragmente" unterteilt ist. Die Datenbandbreite wird selektiv bestimmten Zeitschlitzen zugewiesen, so daß nicht alle Zeitschlitze benutzt werden müssen. Einer Bitmap ist zu entnehmen, welche Zeitschlitze gerade benutzt werden, und welche für andere Zwecke verfügbar sind. Die Zeitschlitze müssen nicht zusammenhängend zugewiesen werden.
- Der Gegenstand der vorliegenden Beschreibung ist auch Gegenstand der Patentbeschreibungen unserer Europapatentanmeldungen EP-A 0 449 420, EP-A 0 447 054 und EP-A 0 448 232.
- Wie bereits erwähnt beträgt die Grundgeschwindigkeit für die Aufrechterhaltung einer kommerziell akzeptablen Sprachübertragung (Wechselsprechen) 32 Kbps. Von einer Vorrichtung zur Datenübertragungsstreckensteuerung in einer ISDN-Umgebung ist daher zu erwarten, daß sie mindestens einige Sprach- und Datenübertragungskanäle gleichzeitig aufrechterhält und deshalb mit einer Übertragungsgeschwindigkeit arbeitet, die ein ganzzahliges Vielfaches der Grundgeschwindigkeit ist.
- Die oben genannten Übertragungsgeschwindigkeiten von Hyperchannels gemäß der Definition in den CCITT-Empfehlungen sind vorgegebene Vielfache der für eine Sprachübertragungsstrecke im Simplexbetrieb erforderlichen Grundgeschwindigkeit.
- Die vorliegende Erfindung will ein Gerät zur Datenübertragungsstreckensteuerung liefern, das einfache Sprach- und Datenübertragungskanäle sowie Hyperchannels unterstützt, wobei die Kapazitätszuteilung flexibler gehandhabt werden kann als bisher.
- Die vorliegende Erfindung liefert eine Datenübertragungssteuereinheit mit mehreren Kanälen, die selektiv zugeordnet werden können, um die Datenübertragung zwischen einem Datenübertragungsnetz und einem Datenverarbeitungssystem durchzuführen, wobei eine ausgewählte Gruppe der Kanäle als einzelner erweiterter Kanal mit größerer Bandbreite verwendet werden kann. Die Datenübertragungssteuereinheit besitzt ferner ein erstes Mittel zur Bezeichnung der ausgewählten Kanäle, die einen solchen erweiterten Kanal bilden, und ist dadurch gekennzeichnet, daß sie außerdem ein zweites Mittel zur Bezeichnung eines ausgewählten Kanals, der Bestandteil des erweiterten Kanals ist, als Referenzkanal besitzt, und ferner über ein Mittel zur Speicherung von Steuerdaten in Verbindung mit dem Referenzkanal zur Steuerung der Operationen bezüglich der einzelnen Kanäle, die den erweiterten Kanal bilden, sowie über ein an das erste und zweite Bezeichnungsmittel gekoppeltes Mittel verfügt, das während der Datenübertragungsoperationen über einen der Einzelkanäle auf die Steuerdaten verweist.
- Die vorliegende Erfindung zielt darauf ab, eine Vorrichtung zur Datenübertragungsstreckensteuerung anzubieten, die für den Einsatz in einer ISDN-Umgebung geeignet ist. Die Vorrichtung besitzt eine Zeitmultiplex-Datenübertragungsschnittstelle, bei der elementare Zeitschlitze zyklisch in Rahmen mit n Kanälen wiederkehren. Diese elementaren Zeitschutze können n "elementaren" Übertragungskanälen, die n verschiedene Übertragungsprozesse mit unterschiedlichen Formen und Protokollen (im beschriebenen Ausführungsbeispiel 32) unterstützen, dynamisch zugeordnet werden. Ein elementarer Kanal in der hier beschriebenen Umgebung besitzt eine ausreichende Bandbreite für ein Vollduplex-Gespräch (64 Kbps) oder jede andere Datenübertragungsoperation, die innerhalb dieser Bandbreite stattfinden kann.
- Ein zu diesem Zeitpunkt interessantes Merkmal dieser Vorrichtung ist die Tatsache, daß es eine Logik enthält, die ermöglicht, daß Gruppen von Zeitschlitzen an der Schnittstelle den sogenannten "erweiterten Kanälen" oder "Hyperchannels" zugeteilt werden können. Bei einer solchen Zuteilung wird eine Gruppe von m Zeitschutzen innerhalb des zyklisch wiederkehrenden Rahmens einer Kanaleinheit zugeteilt, die hier entweder als "erweiterter Kanal" oder als "Hyperchannel" bezeichnet wird. Auf diese Weise kann die betreffende Kanaleinheit effektiv mit m mal der maximalen Übertragungsgeschwindigkeit eines elementaren Kanals arbeiten.
- Ein weiteres Merkmal der vorliegenden Erfindung ist variable Gruppierung der zugeteilten Zeitfenster, um Gruppen vieler un terschiedlicher Größen (unterschiedliche Anzahl von Fenstern) zu ermöglichen, und auch um Fenster auszuwählen, die im elementaren Rahmen nicht zusammenhängend angeordnet sind.
- Die vorliegende Erfindung betrifft also eine Vorrichtung mit einer Flexibilität bezüglich der Bildung von Hyperchannels, die die anscheinend in den CCITT-Empfehlungen angenommenen Beschränkungen überwindet (z.B. erweiterte Kanäle mit effektiven Bandbreiten, die zwischen denen der Elementarkanäle, H0-Hyperchannels und H1-Hyperchannels gemäß der CCITT-Definition liegen)
- Ein weiteres Merkmal besteht darin, daß die gruppenweise Zuteilung von Zeitschlitzkapazitäten auf einer Ebene stattfinden kann, die für Schaltungen, welche Funktionen der OSI-Schicht 1 zwischen der untergeordneten Vorrichtung und dem Übertragungsmedium ausführen, transparent ist. Ein anderes Merkmal ist, daß die Zuteilung durch Zusammenfassung nicht aufeinanderfolgender Zeitschutze in einem elementaren zyklisch wiederkehrenden Rahmen erfolgen kann, wodurch beispielsweise selbst dann H0- oder H1-Hyperchannels konfiguriert werden können, wenn die Anzahl aufeinanderfolgender Zeitschlitze an sich nicht ausreichend ist.
- Die Vorrichtung umfaßt logische Schaltungen und eine Anzahl lokal zugänglicher RAM-Speichermatrizen (Direktzugriffsspeichermatrizen). Die logischen Schaltungen sind in synchrone und asynchrone Abschnitte gegliedert, die jeweils ein Mehrkanal- Übertragungsnetzwerk und ein höherrangiges Verarbeitungssystem (z.B. einen Zentralrechner) miteinander verbinden. Die in aktiven Netzwerkkanälen empfangenen Daten werden im synchronen Abschnitt empfangen, in einem der lokalen RAMs gespeichert und von diesem RAM aus über den asynchronen Abschnitt an einen dem höherrangigen System zugeordneten externen Arbeitsspeicher übertragen. In umgekehrter Richtung werden die Daten von dem asynchronen Abschnitt aus dem externen Speicher in den lokalen RAM ausgelesen, anschließend im synchronen Abschnitt verarbeitet und schließlich über die Netzwerkschnittstelle übertragen.
- An der Netzwerkschnittstelle werden die Daten über elementare Zeitschutze, die den internen Kanälen und/oder Hyperchannels in der Vorrichtung zugeteilt sind, übertragen. Die elementaren Zeitschlitze wiederholen sich zyklisch in Rahmen mit n Zeitschlitzen (derzeit ist n=32). Während ein Zeitschlitz einem aktiven Kanal zugeteilt ist, werden die Daten bitseriell an und/oder von einem internen Kanal (oder Hyperchannel) in der Vorrichtung übertragen. Jede solche Übertragung umfaßt einen Block von 0 bis m Bit (derzeit ist m=8), die in einen Teil des betreffenden Zeitschlitzintervalls komprimiert sind.
- An der Schnittstelle zum Datenverarbeitungssystem werden die Daten in bitparallelen Gruppen (derzeit in Gruppen von bis zu 4 Byte) zwischen internen Kanälen der Vorrichtung oder Hyperchannels und vorher zugewiesenen Kanal- oder Hyperchannel-Speicherbereichen in einem externen Arbeitsspeicher des externen Datenverarbeitungssystems übertragen
- Innerhalb der einzelnen Teile durchlaufen die Daten mehrere logische Partitionen. Die Partitionen im synchronen Teil bilden diskrete Multitasking-Stufen in Empfangs- und Sende-Pipelines, in denen die von der Netzwerkschnittstelle gesendeten und empfangenen Daten verarbeitet werden. Die Partitionen arbeiten bei der Verarbeitung der Daten bezüglich der Kanäle oder Hyperchannels, denen die Zeitschutze zugeteilt sind, synchron mit den Zeitfenstern an der Netzwerkschnittstelle. Innerhalb jeder Station der Pipeline werden die Daten in jedem Kanal in bitparallelen Byte-Einheiten verarbeitet.
- Eine Stufe, die der Netzwerkschnittstelle in der Empfangspipeline am nächsten ist, dezentralisiert die empfangenen Daten für jeden Kanal (gruppiert sie zu Bytes) und führt mit den in einer bestimmten Protokollform, z.B. HDLC, empfangenen Daten verschiedene protokollspezifische Funktionen aus. Von dieser Stufe werden die Daten zur weiteren Verarbeitung in bitparallelen Byte-Einheiten an die nächste Stufe der Empfangspipeline weitergeleitet. Auf der nächsten Stufe werden die in Protokollkanälen empfangenen Daten einer Gültigkeitsprüfung unterzogen (z.B. einer zyklischen Blockprüfung) und in eine entsprechende Kanalwarteschlangen-Speicherstelle im erwähnten lokalen RAM geschrieben (derzeit kann jede solche Warteschlange bis zu 4 Byte für jeden Kanal und/oder Hyperchannel enthalten).
- In der Übertragungspipeline führt eine am weitesten von der Netzwerkschnittstelle entfernte Stufe eine Gültigkeitsprüfung der nach einem Protokoll formatierten Kanäle durch und übergibt die Bytes für jeden aktiven Kanal an eine nächste Stufe, die der Netzwerkschnittstelle am nächsten ist. Diese Stufe führt mit den Daten, die von den nach dem Protokoll formatierten Kanälen empfangen wurden, bestimmte protokollspezifische Aufgaben aus und überträgt die Daten als Antwort auf Anforderungsimpulse an der Schnittstelle bitseriell an die Netzwerkschnittstelle. Auf jeder Stufe erfolgt eine Verarbeitung für den einzelnen Kanal oder den Hyperchannel synchron mit den Zeitschlitzen, die dem betreffenden Kanal oder Hyperchannel an der Schnittstelle zugewiesen wurden.
- Gemäß der vorliegenden Erfindung ist ein Hyperchannel oder erweiterter Kanal eine Kanaleinheit, die dadurch gebildet wird, daß dieser Einheit eine Gruppe von m (m> 1) ausgewählten Zeitschlitzen im elementaren Rahmen des Schnittstellen-Zeitschlitzzyklus zugewiesen wird, so daß die besagte Einheit Daten mit einer Geschwindigkeit von m mal der für einen einzelnen Zeitschlitz zulässigen Grundgeschwindigkeit übertragen kann. Außerdem wird in einer solchen Zuweisung derzeit eine Viele-zu-eins- Zuordnung zwischen der zugewiesenen Zeitschlitzgruppe und einem "Referenzzeitschlitz" in der Gruppe (derzeit der erste Zeitschlitz in jedem Rahmen) hergestellt.
- Ein Merkmal dieser Zuordnung besteht darin, daß mit einer kleinen Ausnahme alle Steuerungs-, Konfigurations- und Verarbeitungsstatusparameter für die Einheit sowie alle gerade übertragenen Daten der Einheit dann nur an Speicherstellen, die dem Referenzzeitschlitz zugeordnet sind, gespeichert werden müssen. Die für die Programmierung der Vorrichtung bezüglich einer solchen Einheit benötigte.Zeit wird auf diese Weise reduziert (durch Vereinfachung der programmierten Operationen des höheren Datenverarbeitungssystems in dieser Hinsicht und auch durch geringeren Bandbreiteneinsatz an der Schnittstelle der Vorrichtung bzw. des Datenverarbeitungssystems, um die Funktion auszuführen). Die erwähnte kleine Ausnahme besteht darin, daß die Speicherstellen, die den nicht als Referenz dienenden Zeitschlitzen einer Hyperchannel-Gruppe zugeordnet sind, Konfigurationsdaten enthalten, die den Hyperchannel-Typ (H1, H01, H02, H03, H04, H05) angeben, und daß diese Daten zur Bestimmung der betreffenden Referenzzeitschlitz-Zuordnung benötigt werden.
- In der hier beschriebenen Anordnung werden Hyperchannels oder erweiterte Kanäle durch eine programmierte Aktion externer Datenverarbeitungssysteme gebildet und aktiviert. Solche Systeme haben Zugriff auf die genannten lokalen RAM-Gruppen und auf bestimmte gemeinsame Register zur Konfigurationsdefinition in den Gerätepartitionen, um die für die Bildung und Aktivierung benötigten Anfangsparameter festzulegen. Ein derzeitiges Merkmal besteht darin, daß eines der Register, das sogenannte HCR- Register (Hyperchannel-Konfigurationsregister) extern gesetzt werden kann, um die Referenzzeitschlitz-Zuordnung jeder konfigurierten Gruppe und den aktiven bzw. inaktiven Status des betreffenden Hyperchannels zu definieren.
- Das Gerät enthält eine logische Pärtition für die Ressourcenverwaltung (RSM), die synchron mit den Netzwerkzeitschlitzen arbeitet, und generiert numerische Zeitschlitzangaben (RSM_TSI), die im Normalfall die Zeitposition des betreffenden Zeitschlitzes innerhalb des elementaren Rahmens bezeichnet. Diese Angaben dienen zur Berechnung von Adressen relativ zu einer der lokalen Speichergruppen und zur Steuerung bestimmter Anforderungswarteschlangenoperationen, auf die weiter unten näher eingegangen wird. Ein aktuelles Merkmal der Erfindung besteht darin, daß beim Auftreten eines der Hyperchannelgruppe zugeordneten Zeitschlitzes an der Netzwerkschnittstelle die RSM Daten im HCR-Register zur Umwandlung ihrer Zeitschlitzangabe in einen Wert, der die Zeitposition des Referenzzeitschlitzes der betreffenden Gruppe angibt, verwendet. Ein weiteres Merkmal ist, daß beim Auftreten eines Zeitschlitzes in einer zugeordneten Gruppe die RSM eine weitere Angabe in Bezug auf die Gruppe erzeugt, die für die weiter unten beschriebene Anforderungswarteschlangensteuerung nützlich ist.
- Im Hinblick auf die erwähnte Anforderungswarteschlangensteuerung ist das Gerät in synchrone und asynchrone Teile gegliedert, und die Datenübertragung zwischen diesen Teilen erfolgt über Datenwarteschlangen in einem der lokalen RAMs. Die Speicherbereiche für die Datenwarteschlangen enthalten für jeden Schnittstellenzeitschlitz einen Bereich für die Sendedatenwarteschlange und einen Bereich für die Empfangsdatenwarteschlange. Eine DMA-Steuerpartition (DMAC) im asynchronen Teil überträgt Daten zwischen diesen Datenwarteschlangen und dem externen Arbeitsspeicher über einen externen Bus, der zu einem externen höheren Datenverarbeitungssystem gehört. Eine DMA- Anforderungswarteschlange (DMARQ) bildet das steuernde Bindeglied für die Datenbehandlung zwischen den synchronen und den asynchronen Teilen.
- Die Logik im synchronen Teil überwacht den Status aller aktiven Datenwarteschlangen und sendet bei Bedarf eine Anforderung an DMARQ, die in ein zugeordnetes Bitregister in DMARQ gestellt wird. DMARQ enthält für jedes verwendbare elementare Zeitschlitze zwei Bitregister, eines für Anforderungen, die die jeweilige Sendedatenwarteschlangen betreffen, und eines für Anforderungen, die die jeweilige Empfangsdatenwarteschlange betreffen. Anforderungen für Empfangs- und Sendedatewarteschlangen werden so an unterschiedliche zugeordnete Bitregister in DMARQ gestellt. Anforderungen in diesen Bitregistern werden der DMAC auf asynchroner Basis übergeben, damit diese sie in einer vorgegebenen Prioritätsreihenfolge bearbeitet. Wenn die DMAC eine zu bearbeitende Anforderung auswählt, führt sie über den externen Bus eine Operation zur Übertragung der Daten zwischen der betreffenden Datenwarteschlange und dem externen Arbeitsspeicher aus. Gleichzeitig sendet die DMAC der DMARQ ein Rücksetzungs-Eingangssignal, das an das Bitregister gerichtet ist, in dem die ausgewählte Anforderung gespeichert ist, so daß dieses Bit zurückgesetzt wird.
- Ein Merkmal der vorliegenden Erfindung ist, daß DMARQ separate Bitregister für Anforderungen in Bezug auf Hyperchannel-Datenwarteschlangen und für Anforderungen, die an die betreffenden Bitregister gerichtet werden, wenn eine Hyperchannel-Datenwarteschlange bearbeitet werden muß, enthält. Solche Anforderungen werden während eines beliebigen der Hyperchannel-Gruppe zugeordneten Zeitschlitzes erteilt. Entsprechend ist auch die von der DMAC vergebene Priorität und die Aktion der DMAC bei Hyperchannel-Anforderungen anders als bei Anforderungen für die Elementarkanäle (wie für die erforderliche höhere Geschwindigkeit von Hyperchannels nötig). Die Übersendung von Hyperchannel-Anforderungen an entsprechende Bitregister in DMARQ ist durch verschiedene von der RSM an DMARQ gesendete Steuerinfornationen geregelt. Zu diesen Steuerinformationen zählen die oben erwähnte Zeitschlitzangabe (die von der RSM anhand der Daten im HCR in eine auf den Referenzzeitschlitz der Hyperchannelgruppe bezogene Angabe umgewandelt wurde) und eine weitere von der RSM stammende Angabe, in der der Hyperchanneltyp definiert ist. In einem beschriebenen Ausführungsbeispiel, in dem die einfachen Hyperchanneltypen H0, H11 und H12 unterstützt werden, enthält die DMARQ drei verschiedene Gruppen von Registern; eine für die Elenentarkanäle, eine für Hyperchannels des Typs H0 und eine für Hyperchannels des Typs H1. Innerhalb jeder Gruppe gibt es für jeden Kanal oder jeden im Gerät möglichen Hyperchannel zwei Bitregister: eins für die Sendedatenwarteschlange und eins für die Empfangsdatenwarteschlange. In diesem Ausführungsbeispiel gibt es also 64 Bitregister für Elementarkanäle, 10 für Hyperchannels des Typs H0 und 2 für Hyperchannels des Typs H1. Ein verwandtes Merkmal der vorliegenden Erfindung besteht darin, daß die Bearbeitung der in diese Bitregister gestellten Anforderungen durch die DMAC nach Priorität geordnet erfolgt, wobei Hyperchannels des Typs H1 die höchste Priorität, Hyperchannels des Typs H0 mittlere Priorität und Elementarkanäle die niedrigste Priorität besitzen. Auf diese Weise werden die zusammengesetzten Kanaleinheiten mit einer Geschwindigkeit bedient, die zu ihrer durchschnittlichen Übertragungsgeschwindigkeit paßt.
- Bei der Abarbeitung der einzelnen Anforderungen durch die DMAC sendet diese Signale an DMARQ, die an die entsprechenden Bitregister gerichtet sind und dort eine Rücksetzung bewirken. Angaben, ob ein DMARQ-Register gesetzt ist oder nicht, werden dem synchronen Teil in Zeitmultiplex-Synchronsiation mit den elementaren Zeitschlitzzyklen an der Netzwerkschnittstelle des Geräts, wodurch der synchrone Teil feststellen kann, wann von ihm erteilte Anforderungen in Bezug auf elementare Kanalzeitschlitze und auf Zeitschlitze für Hyperchannels verarbeitet worden sind.
- Ein Merkmal der vorliegenden Erfindung ist auch, daß die Konfiguration und Aktivierung von erweiterten Kanälen oder Hyperchannels so über HCR erfolgt, daß alle Zeitschlitze der betreffenden Gruppe gleichzeitig aktiv werden. Würden die Zeitschlitze einer Gruppe zu unterschiedlichen Zeitpunkten aktiviert, wäre es möglich, daß Daten, die gerade über einen inaktiven Zeitschlitz übertragen werden, falsch behandelt werden. Durch die vorliegende Anordnung wird dies verhindert.
- Das Gerät enthält eine logische Partition INT für die Interrupt-Verarbeitung. INT bedient den synchronen und den asynchronen Teil wie DMARQ. INT überwacht die im Gerät herrschenden und die einzelnen Übertragungskanäle betreffenden Bedingungen und sendet bei bestimmten Bedingungen Anforderungssignale und zugehörige Ein-Byte-Vektoren, die an die externe Busschnittstelle übermittelt werden, um eine Überwachung durch externe Systeme zu ermöglichen. Für Interrupt-Anforderungen im Zusammenhang mit Ereignissen in Übertragungskanälen (z.B. Ende des empfangenen HDLC-Rahmens) speichern andere Partitionen im synchronen Teil die zugehörigen Statusinformationen in entsprechenden Kanalwarteschlangen in einem der lokalen RAM-Bereiche; dabei kann jede Warteschlange Daten zu mehreren Ereignissen im betreffenden Kanal speichern.
- Das externe System verwendet von INT verschiedene interne Gerätepfade zum Abrufen der Statusinformationen aus der betreffenden Warteschlange, und INT aktualisiert die Steuerparameter für das Hineinstellen und Entnehmen von Daten in die bzw. aus diesen Warteschlangen. Die Operationen dieser Warteschlangen helfen also, die für die Behebung des Kanalereignisstatus geltenden zeitlichen Einschränkungen im externen System zu verringern, und Operationen von INT entlasten das externe System von der Warteschlangenverwaltungsaufgaben, die dieses sonst erledigen müßte.
- Wenn die Statusinformation in diesen Warteschlangen gespeichert ist, wird die Adresse teilweise durch die Zeitschlitzangabe von der RSM ermittelt. Ein Merkmal der vorliegenden Erfindung ist derzeit, daß wenn in einem Zeitschlitz einer Hyperchannelgruppe oder einer Gruppe von Kanälen ein Kanalereignis oder eine Bedingung eintritt, die umgewandelte Zeitschlitzangabe dazu verwendet wird, die entsprechende Statusinformation in der Warteschlange zu speichern, die dem betreffenden Referenzzeitschlitz der Gruppe zugeordnet ist.
- Fig. 1 ist ein Blockdiagramm eines Datenverarbeitungssystems mit der erfindungsgemäßen Vorrichtung zur Datenübertragungsstreckensteuerung an einem Knoten in einem Datenübertragungsnetzwerk und illustriert die Konfiguration der Vorrichtung in Bezug auf andere Verarbeitungselemente im Knoten.
- Fig. 2 ist ein Blockdiagramm, in dem die interne logische Organisation der erfindungsgemäßen Vorrichtung zur Datenübertragungsstreckensteuerung auf hoher Ebene dargestellt ist; es zeigt die wichtigsten logischen Partitionen und die zugeordneten RAM-Speichereinheiten einschließlich TS RAM.
- Fig. 3 ist ein Zeitdiagramm der Funktionen, die im synchronen Teil der erfindungsgemäßen Vorrichtung von einem Ressourcenverwalungs-Logikelement in der Vorrichtung ausgeführt werden, um den Status anderer autonomer Logikelemente in diesem Teil synchron mit externen Signalprozessen der Stufe 1 zu konfigurieren.
- Fig. 4 ist ein Blockdiagramm des IDLC auf mittlerer Ebene, in dem der synchrone und der asynchrone Teil, die lokalen RAM- Bereiche, die logischen Partitionen und die wichtigsten Register in diesen Partitionen dargestellt werden.
- Fig. 5 ist ein Blockdiagramm einer dezentralen Schaltung in der Vorrichtung, die zur Konfiguration und Verwendung von Hyperchannels oder erweiterten Kanälen gemäß der vorliegenden Beschreibung dient.
- Fig. 6 ist ein Blockdiagramm des TS RAM, eines der lokalen RAM- Blocks in der Vorrichtung, in dem dessen Größe und die Speicherplatzzuweisungen für die einzelnen Kanäle dargestellt sind.
- Fig. 7 ist ein Blockdiagramm des FIFO RAM, eines anderen lokalen RAM-Blocks, in dem dessen Größe und die Speicherplatzzuweisungen für die einzelnen Kanäle dargestellt sind.
- Fig. 8 ist ein Blockdiagramm des DMA RAM, eines anderen lokalen RAM-Blocks, in dem dessen Größe und die Speicherplatzzuweisungen für die einzelnen Kanäle dargestellt sind
- Fig. 9 ist ein Blockdiagramm, in dem die logische und physische Organisation des TS RAM dargestellt ist.
- Fig. 10 ist ein Blockdiagramm der Ressourcenverwaltungspartition.
- In Fig. 11 und Fig. 12 sind die Bitzuordnungen in Wörtern für das Kanalkonfigurationsregister (CCR) und das HDLC-Protokollkonfigurationsregister (HPCR) dargestellt, die besonderen Registern in der RSM-Partition zugeordnet und in speziellen Bereichen für Kanalwörter im TS RAM gespeichert sind.
- Fig. 13 bis 15 enthalten Zeitdiagramme zur Erläuterung der BTDM-Schnittstelle zwischen der untergeordneten IDLC-Vorrichtung und L1-Schaltungen.
- Fig. 16 ist ein Blockdiagramm des FIFO RAM-Teils des IDLC.
- Fig. 17 ist ein Blockdiagramm des FIFO-Verwaltungselements für den Empfang (RFM) in IDLC.
- In Fig. 18 und Fig. 19 sind die Formate der beiden Zeitwechselstatuswörter RFM_TS01 und RFM_TS02, die über die Ressourcenverwaltung RSM zwischen RFM und RS RAM ausgetauscht werden.
- Fig. 20 ist ein Blockdiagramm des FIFO-Verwaltungselements für das Senden (TFM) im IDLC.
- In Fig. 21 ist das Format des zwischen TFM und RS RAM ausgetauschten Zeitwechselstatuswortes TFM_TS01.
- In Fig. 22 und Fig. 23 ist der Aufbau der Wortspeicherstellen im FIFO-RAM dargestellt, die für die zwei für den Empfang bestimmten DMA-Konfigurationsregister RDCR1 und RDCR2 für jeden Kanal reserviert sind.
- In Fig. 24 und Fig. 25 ist der Aufbau der Wortspeicherstellen im FIFO-RAM dargestellt, die für die zwei für das Senden bestimmten DMA-Konfigurationsregister TDCR1 und TDCR2 für jeden Kanal reserviert sind.
- Fig. 26 ist ein Blockdiagramm der Interrupt-Partition INT im IDLC.
- In Fig. 27 ist die Form der in INT generierten Statusfunktion IHEISR (Statusregister für IDLC-Hardwarefehler-Interrupt) dargestellt.
- Fig. 28 und Fig. 29 zeigen die Form der Statuswörter CEISR (Statusregister für Interrupt bei kanalisiertem Fehler) bzw. EOPISR (Statusregister für Prozeßende-Interrupt), die von INT generiert und für jeden aktiven Übertragungskanal im TS RAM gespeichert werden.
- In Fig. 30 ist die Warteschlange im TS RAM mit (bis zu 16) Statuswörtern EOPISR für jeden Übertragungskanal dargestellt.
- Fig. 31 ist ein Diagramm der IDLC-Interruptvektorebenen und - prioritäten in Bezug auf IOP.
- Fig. 32 ist ein Blockdiagramm der untergeordneten E/A-Partition SIO im IDLC.
- In Fig. 33 und Fig. 34 ist die Form der in SIO gespeicherten Konfigurationsdefinitionsfunktionen ICR (IDLC-Konfigurationsregister) und HCR (Hyperchannel-Konfigurationsregister) dargestellt.
- In Fig. 35 wird die Form der in SIO gespeicherten Statusfunktion VHR (Vektorhalteregister) gezeigt.
- Fig. 36 ist ein Blockdiagramm der DMARQ-Partition (Partition für die DMA-Anforderungswarteschlange) im IDLC.
- Fig. 37 ist ein Blockdiagramm der DMAR-Partition (DMA RAM- Partition) im IDLC.
- Fig. 38 ist ein Blockdiagramm der DMAC-Partition (DMA- Steuerpartition) im IDLC.
- In Fig. 39 und Fig. 40 ist die Form der Wörter RDCR3 und RDCR4, die für jeden aktiven Kanal im DMAR gespeichert sind und von DMAC zur Steuerung der Übertragungsoperationen mit von den entsprechenden Übertragungskanälen empfangenen Daten verwendet werden, dargestellt.
- In Fig. 41 und Fig. 42 ist die Form der Wörter TDCR3 und TDCR4, die für jeden aktiven Kanal im DMAR gespeichert sind und von DMAC zur Steuerung der Übertragungsoperationen mit von den entsprechenden Übertragungskanälen gesendeten Daten verwendet werden, dargestellt.
- Fig. 43 zeigt die Schaltungen in der untergeordneten IDLC- Vorrichtung, die für die Definition der Konfiguration und Verwendung von Hyperchannels zuständig sind.
- Die in dieser Beschreibung verwendeten Begriffe sind folgendermaßen zu verstehen:
- Bezeichnet in diesem Zusammenhang eine für einen speziellen Zweck bestimmte logische Schaltungsanordnung mit Dateneingängen und Datenausgängen sowie einer endlichen Anzahl logischer Zustände. Dabei handelt es sich typischerweise um eine Gruppe logischer Schaltungen, die eine oder mehrere Maschinen mit finiten Zuständen umfassen, und die beim Aktivieren eines Zustands in Abhängigkeit von externen Bedingungen oder Ereignissen in einen anderen Zustand übergehen und dabei logische Funktionen mit den Datenein- und -ausgängen so ausführen, daß die Operationen in Bezug auf andere angeschlossene Elemente zum Austauschen von Daten oder zum Empfangen externer Zustandskontrollsignale parallel und gleichzeitig mit Operationen solcher anderer Elemente ausgeführt werden können.
- Das International Telegraph and Telephone Consultative Committee; eine Organisation, die ursprünglich unter dem ITU- Abkommen (Abkommen der International Telecommunications Union) von 1865 gegründet wurde und jetzt eine spezialisierte Behörde der Vereinten Nationen ist. Die Organisation verfaßt Veröffentlichungen, auf die in der vorliegenden Beschreibung an anderer Stelle verwiesen wird, und in denen internationale Standards für Telekommunikationsprotokolle definiert werden. Zu den Teilnehmern zählen Telekommunikationsunternehmen wie beispielsweise AT&T oder GTE Telenet.
- Komplementär-Metalloxidhalbleiter, wie er in derzeitigen integrierten Halbleitergeräten verwendet wird.
- Eine bestimmte Form der CMOS-Technologie, mit Leitungsabständen von 1 µm und einer Schaltgeschwindigkeit von 1 ns bei einem UND-Glied mit zwei Eingängen [siehe: (1) IEEE J. Solid State Circuits, Bd. 23, Nr. 5, Okt. 1988, S. 1095-11, Wong, D. T. et al, "11-ns 8K x 18 CMOS Static RAM with 0.5- mu m Devices"; (2) Proc. Of The Custom Integrated Circuits Conf. 1987, IEEE, S. 248-252, Aldridge, A. W. et al., "40K Equivalent Gate CMOS Standard Cell Chip"; (3) Proc. Of The Custom Integrated Circuits Conf. 1987, IEEE, S. 245-247, Hornung, F. et al., "A Versatile VLSI Design System For Combining Gate Array And Standard Cell Circuits On The Same Chip"].
- Ein Begriff, der hier als Oberbegriff für Hyperchannels und andere Kanalkombinationen mit einem Vielfachen einer vorgegebenen Elementarkanalbandbreite verwendet wird.
- Eine zentrale Datenverarbeitungseinheit oder ein zentrales Datenverarbeitungssystem in einem Datenverarbeitungsnetzwerk.
- (Im folgenden als Hyperchannel bezeichnet). Eine Form eines schnellen Zeitmultiplexkanals gemäß der CCITT-Definition 1412 [siehe: CCITT Red Book, Bd, III, Faszikel III.5, "Integrated Services Digital Network (ISDN), Recommendations of the Series I, Genf 1985].
- Sammelbezeichnung für die hier definierten Protokolle LapB, LapD und SDLC.
- Siehe H-Channel.
- Ein-/Ausgabeprozessor, der von einem Zentral- oder Hostprozessor gesteuert betrieben wird.
- Dienstintegrierendes digitales Netzwerk gemäß der CCITT- Definition [Siehe: CCITT Red Book, VIII, Faszikel III.5 oben].
- Die physische Ebene und die Verbindungssteuerungsebene der logischen Signalbehandlung in ISDN-Netzen; die physische Ebene umfaßt das Senden und Empfangen von Signalen auf Netzleitungen und die Aktivierung und Deaktivierung von Netzverbindungen auf solchen Leitungen; die Verbindungssteuerungsebene übernimmt die Fehlerprüfung und andere Funktionen auf einer höheren als der physischen Ebene [siehe: CCITT Red Book, VIII, Faszikel III.5 oben, Teil IV, Abschnitte 3 und 4].
- Ein besonderes Verbindungsprotokoll für X.25-Netzwerke, definiert in der CCITT X.25-Empfehlung [siehe: CCITT Faszikel VIII.3 - Recommendation X.25, "Interface Between Data Terminal Equipment (DTE) And Data Circuit-Terminating Equipment (DCE) For Terminals Operating In The Packet Mode And Connected To Public Data Networks By Dedicated Circuit, Genf 1976, überarbeitet 1980 und 1984].
- Ein besonderes Verbindungsprotokoll für D-Kanäle gemäß der Definition in der CCITT-Empfehlung Q.920 [siehe: CCITT Faszikel III.5 oben, Teil IV, Abschnitt 4.]
- Ein von Prozessoren des Typs Motorola 68000 verwendeter Bus zur Verbindung des Arbeitsspeichers mit anderen Peripherie- Einheiten [siehe: M68000 8-/16-/32 Bit Microprocessors User's Manual, 6. Auflage, Prentice Hall, 1989, Abschnitt 5 (Signal And Bus Operation Description)]
- Punkte, an denen Terminaleinrichtungen an ein Netzwerk angeschlossen sind.
- Schnittstelle der Ebene 1 [siehe oben, ISDN-Ebenen 1 und 2].
- Direktzugriffsspeicher.
- Synchrone Datenübertragungssteuerung; das in SNA verwendete Verbindungssteuerungsprotokoll [siehe: IBM Veröffentlichung GA27-3093-3, "Synchronous Data Link Control - Concepts", 1979, 1986].
- Systemnetzwerkarchitektur [siehe: IBM Veröffentlichung GC30-3072-3, "Systems Network Architekture - Concepts And Products", 1981, 1986].
- Eine logische Schaltung mit einem finiten Repertoire möglicher stabiler Verarbeitungspositionen oder -zuständen, die jeweils eine charakteristische Aktion oder Ausgabe herbeiführen, wobei Übergänge zwischen diesen Positionen als Funktion externer Stimuli stattfinden.
- In Fig. 1 ist ein Datenaustauschknoten 1 eines Zeitmultiplex- Datenübertragungsnetzwerks und ein Datenbearbeitungssystem dargestellt, wobei letzteres ein IDLC-Gerät 2 enthält, in dem die vorliegende Erfindung nutzbringend zur Anwendung gelangt. Das Gerät 2, das in den oben genannten gleichzeitig anhängigen Patentanmeldungen mit dem Text "Autonomous Elements" und "Synchronous Link Interface" im Titel ausführlich beschrieben wird, führt mit den zwischen dem Netzwerkknoten und einem Host- Rechnersystem 3 übertragenen Daten einige Prozesse der OSI- Ebene 2 durch.
- Solche Daten werden zwischen dem Gerät 2 und den Zeitmultiplexkanälen am Netzwerkknoten 1 über eine spezielle Impulsbündel Zeitmultiplex-Schnittstelle (BTDM-Schnittstelle) 4 und die Schaltungen 5 übertragen (die BTDM-Schnittstelle wird in der gleichzeitig anhängigen Patentanmeldung mit dem entsprechenden Titel beschrieben). Die Schaltungen 5, die sogenannten Schaltungen der Ebene 1 oder L1, führen mit den Daten in aktiven Kanälen einige Funktionen der OSI-Ebene 1 aus, und die Schnittstelle 4 befreit Gerät 2 von einigen der an Knoten 1 auferlegten Zeitabhängigkeitsbedingungen aufgrund der relativen Verschiebung zwischen der lokalen und der fernen Uhr.
- Gerät 1 enthält einen Zeitwechsel-RAM (TS RAM) 6, der Bereiche enthält, die einzelnen Zeitmultiplexkanälen ausschließlich zugeteilt sind. Wenn ein Kanal aktiv ist, enthält der ihm zugeteilte Bereich im RAM 6 Konfigurationsteuerungsdaten, Prozeßstatusdaten und Ereignisstatusdaten für den betreffenden Kanal.
- Die Konfigurationssteuerdaten definieren die Kanalkonfiguration (Übertragungsprotokoll usw.). Die Prozeßstatusdaten werden für eine Anzahl logischer Partitionen im Gerät gespeichert, für die zyklisch Bedingungen für die Verarbeitung von Daten für die verschieden konfigurierten Kanäle, die einzelnen BTDM-Zeitschlitzen zugeordnet sind, festgelegt sind. Beim Auftreten eines Kanalzeitschlitzes im Verlauf aufeinanderfolgender Zeitmultiplexrahmen übernimmt also jede Partition die logische Verarbeitung für den betreffenden Kanal in genau dem Zustand, in dem sie sich im vorhergehenden Rahmen für diesen Kanal befand. Die Ereignisstatusdaten sind Teil der Daten, die dem Hostsystem 3 über weiter unten beschriebene Interrupt-Aktionen übergeben werden.
- Gerät 2 ist an das Hostsystem 3 und einen externen Arbeitsspeicher, der über den "IOP"-Bus 7 mit diesem System verbunden ist, angeschlossen. Über Bus 7 können weitere Steuergeräte an das Hostsystem 3 angeschlossen sein. In der dargestellten Umgebung umfaßt System 3 ein Hostrechnersystem 8 und ein Ein-/Ausgabeverarbeitungs-Subsystem 9. In dieser Anordnung besteht System 8 aus einer CPU 10 und dem zugehörigen RAM-Speicher 11 und das IOP-Subsystem 9 aus einem Ein-/Ausgabeprozessor 12 und dem zugehörigen RAM-Speicher 13. Das Subsystem 9 ist über den Bus 7 mit dem Gerät 2 und über den Bus 15 mit dem System 8 verbunden, wobei die letztere Verbindung den Anschluß anderer E/A-Subsysteme an dasselbe System ermöglicht.
- In dem aus den Schaltungen 5, dem Gerät 2 und dem System 3 bestehenden System werden Daten in mehreren Zeitmultiplexkanälen über das Gerät 2, die Schaltungen 5 und das sich von Knoten 1 erstreckende Netzwerk zwischen System 3 und fernen Terminals übertragen. Wie bereits erwähnt, können solche Daten über das Netzwerk in verschiedenen Formaten und unter Verwendung verschiedener Übertragungsprotokolle (z.B. codierte Sprachübertragung, HDLC-Daten, bisynchrone Daten) übermittelt werden.
- Die Datenverarbeitungsfunktionen an Knoten 1 können auch sogenannte Funktionen für "gesprochene Mitteilungen" (zentrale Speicherung und Versendung von gesprochenen Mitteilungen für Telefonbenutzer) und den Zugang zu öffentlichen oder privaten Datenbanken (z.B. juristische Bibliotheken, Patentbibliotheken) umfassen. In der hier beschriebenen Umgebung ist die Netzwerkverbindung an Knoten 1 eine schnelle Standleitung mit üblichem Träger des Typs T1 oder T3, die mehrere Zeitmultiplexkanäle unterhält. Das Netzwerk kann nach den ISDN-Anforderungen strukturiert sein, auch wenn dies für den effektiven Einsatz von Verbindungsstrecken-Steuereinheiten wie Gerät 2 nicht unbedingt erforderlich ist, und jeder Zeitschlitz des an Knoten 1 angeschlossenen Netzwerks kann dynamisch den digitalisierten Sprach- und Datensignalverkehr zugeteilt sein.
- Hier sind der Einsatz untergeordneter Vorrichtungen zur variablen Zusammenfassung von Zeitschlitzen zu "erweiterten Kanälen" oder Hyperchannels sowie Besonderheiten der dafür verwendeten Mittel und Verfahren von Interesse.
- In solchen Netzwerken kann die Signalübertragungsgeschwindigkeit bei Vollduplexbetrieb auf Tl-Leitungen 4.096 Megabit pro Sekunde erreichen. Auf T3-Leitungen sind noch wesentlich höhere Geschwindigkeiten möglich Eine für solche Leitungen geeignete Übertragungsstrecken-Steuereinheit muß deshalb in der Lage sein, im Vollduplexbetrieb Übertragungsgeschwindigkeiten über 5 Megabit pro Sekunde zu erreichen. Die derzeitige IDLC-Architektur, wie sie mit der 1-Mikron-CMOS-Technologie nach dem Stand der Technik implementiert ist, kann die höchsten hier behandelten Vollduplexgeschwindigkeiten für voll belegte T1- oder T3- Leitungen innerhalb einer einzigen LSI-Chip-Struktur unterstützen.
- Eine vergleichbare Einheit nach dem Stand der Technik -- siehe Spalte 6 in der oben genannten Patentschrift 4,493,051 -- besitzt eine maximale Signalübertragungsgeschwindigkeit von 350,000 empfangenen oder gesendeten Bit pro Sekunde (bei vorgeschlagenem Halbduplexbetrieb) und könnte in der beschriebenen Ausführung keine volle T1-Leitung und keine Mischung von Sprach- und Datenkanälen unterstützen. Solche Einheiten wären also insbesondere für ISDN-Anwendungen oder schnellere Nur- Daten-Anwendungen nicht geeignet, so daß ein Bedarf an Einheiten der hier beschriebenen Form besteht.
- Fig. 2, ein Blockdiagramm des logischen Aufbaus der hier beschriebenen IDLC-Vorrichtung, zeigt die Positionierung der Vorrichtung zwischen IOP-Bus 7 und der oben erwähnten BTDM- Schnittstelle 4 sowie die Aufteilung der Schaltung in einen synchronen Teil 50 und einen asynchronen Teil 51. Außerdem sind die wichtigsten logischen Partitionen der beiden Teile dargestellt, wobei jede Partition ein oder mehrere autonome Elemente enthält, auf die weiter unten ausführlicher eingegangen wird.
- Teil 50 arbeitet bei der Ausführung von Operationen für die jeweiligen Übertragungskanäle synchron mit dem Auftreten der Kanalzeitschlitze an der Schnittstelle (IF) 4. In Teil 51 werden Operationen für einen Kanal asynchron bezüglich der Zeitschlitze an IF 4 ausgeführt. Auf die RAM-Speichereinheiten 52 und 53 können Partitionen in beiden Teilen zugreifen, die RAM-Einheit 54 hingegen steht nur Partitionen im asynchronen Teil zur Verfügung. Der synchrone Teil enthält die logischen Partitionen 60-64 und der asynchrone Teil die Partitionen 65-67.
- Alle Partitionen und RAM-Einheiten können auf einem einzigen LSI-Chip enthalten sein. Bei bestimmten Anwendungen, auf die weiter unten ausführlicher eingegangen wird, kann es jedoch wünschenswert sein, die TS RAM-Einheit 53 in einem separaten Modul in der Nähe des IDLC-Chips auf einer gemeinsamen Karte oder Platine unterzubringen. Die RAM-Einheiten besitzen vorgegebene Zugriffsmerkmale, Speicherkapazitäten, Adreßzuweisungen und Funktionsverwendungen, die weiter unten beschrieben werden.
- Die Partitionen 60 und 62 und der RAM 52 bilden eine mehrstufige "Empfangs-Pipeline" für die von IF 4 empfangenen Übertragungsdaten ("Empfangsdaten"). Die Partitionen 61 und 62 und der RAM 52 bilden entsprechend eine Sende-Pipeline für die an IF 4 gesendeten Daten ("Sendedaten"). Daten, die an IF 4 in die Empfangs-Pipeline aufgenommen werden, werden beim Durchgang durch Partition 60 selektiv abgewandelt und durch Partition 62 in den RAM 52 geschrieben. Die Daten werden durch Partition aus dem RAM 52 in die Sende-Pipeline geholt, an Partition 61 übergeben, dort selektiv abgewandelt und an IF 4 übermittelt. Operationen dieser Partitionen und der entsprechenden Pipelines für jeden Kanal an IF 4 werden synchron mit dem Auftreten der betreffenden Zeitmultiplexfenster an IF 4 ausgeführt, wobei die Steuerung durch den Ressourcenmanager (RSM) 63 erfolgt.
- Der RSM reagiert auf von den L1-Schaltungen an IF 4 empfangene Signale, die den Wechsel von Kanalzeitschlitzen anzeigen, um Statuswechseloperationen zwischen TSR 53 und anderen Partitionen 60 bis 62 und 64 zu steuern, wodurch Operationen der letzteren Partition für die einzelnen Kanäle richtig programmiert und koordiniert werden. Diese Statuswechselübermittlungen kön- nen in beide Richtungen erfolgen, so daß Verarbeitungsstatus der Partitionen auf einen aktiven Kanal bezogen gespeichert werden, dessen Zeitschlitz gerade endet, und daß der Verarbeitungsstatus der gleichen Partitionen für einen aktiven Kanal wiederhergestellt wird, dessen Zeitschlitz soeben beginnt. Entsprechend sind die Verarbeitungsaktivitäten in diesen Partitionen für aufeinanderfolgendes Auftreten eines einem aktiven Kanal zugeordneten Zeitschlitzes für den betreffenden Kanal fortlaufend.
- INT ist für die Überwachung der Bedingungen und Kanalereignisse in den IDLC- und L1-Schaltungen und für die Generierung von Interrupt-Signalen und zugehörigen Vektorzeigern auf solche Bedingungen und Ereignisse zuständig. Außerdem hat INT den Überblick über die Sammlung von Statusinformationen für solche Bedingungen und Ereignisse und deren Speicherung im RAM 53 und verschiedenen Geräteregistern. INT arbeitet mit abhängigen E/A- Partitionen 67 (SIO) zusammen, um Interrupt-Anforderungen und die zugehörigen Interrupt-Vektoren an den Host-/IOP-Komplex zu übergeben.
- SIO stellt einen eindeutigen Zugriffspfad vom Host-/IOP-Komplex zu den RAM-Speicherbereichen und Registern in der IDLC-Partition zur Verfügung, so daß die darin gespeicherten Statusdaten für die zugehörigen Interrupt-Anforderungen vom Host-/IOP- Komplex asynchron zur Behandlung der entsprechenden Anforderungen abgerufen werden können. Der gleiche Pfad wird vom Host- /IOP-Komplex in umgekehrter Richtung benutzt, um Daten in die IDLC-RAM-Bereiche und kegister zu schreiben, z.B. für die dynamische Aktivierung und Konfigurierung von Kanälen und Hyperchannels und für die Programmierung von entsprechenden Operationen der IDLC-Partitionen.
- Der Pfad zwischen Verarbeitungselementen im Host-/IOP-Konplex (Bezugszahlen 10 und 12 in Fig. 1) und internen Elementen des IDLC über SIO ist so weit wie nur möglich vom Datenübertragungspfad zwischen dem Host-/IOP-Speicher (Bezugszahl 13 in Fig. 1) und dem IDLC über die Partitionen 65 und 66 getrennt; dadurch werden gegenseitige Beeinflussungen der über diese Pfade ausgeführten Operationen minimiert.
- Autonome Elemente in jeder IDLC-Partition, die in der gleichzeitig anhängigen Anmeldung mit den Worten "Autonomous Elements" dem Titel ausführlich beschrieben werden, umfassen Register und diskrete Logikschaltungung für spezielle Zwecke (im Gegensatz zu Programmlogikschaltungen, Mikroprozessoren usw.), wobei letztere derzeit als Maschine mit finiten Zuständen implementiert ist. Der Begriff "autonom" bezeichnet hier einen Grad funktionaler Autonomie zwischen Elementen, besonders zwischen den Partitionen in den oben genannten Empfangs- und Sende-Pipelines, so daß die Ausführung einer Funktion durch eines der Elemente in Bezug auf die anderen daran angeschlossenen Elemente eine weniger kritische zeitliche Abhängigkeit von Aktionen anderer solcher Elemente aufweist als dies ohne Autonomie der Fall wäre.
- Die Emspfangspartition 60 ist für den Empfang von Datensignalen (und/oder Sprachsignalen) von IF 4 in dem gerade auf dem betreffenden Netzwerkdatenkanal aktiven Übertragungsprotokoll (SDLC, HDLC, LAP-B, LAP-D usw.) zuständig. Sprachkanäle sind "frei" (d.h. es gibt keine protokollspezifischen Begrenzungssignale usw.). Partition 60 ist bei jedem Datenkanal für das Abtrennen protokollspezifischer Daten (z.B. Entfernen von HDLC- Stopfbits), das Erkennen von Adressen, das Erkennen protokollspezifischer Steuerfunktionen (z.B. Abbruch-/Freizeichen in HDLC, Rahmenbegrenzungsangaben usw.) und die Erzeugung von Interrupt-Statusangaben für Empfangsereignisse (z.B. CRC-Fehler, FIFO-Puffer- und IOP-Puffer-Überlaufsituationen, Rahmenende usw.) verantwortlich.
- Die Sendepartition 61 führt die bitserielle Übertragung von Daten und Steuerbits an IF4 im derzeit auf dem Kanal aktiven Protokoll (SDLC, LAP-B, LAP-D, usw.; die Sprachübertragung erfolgt protokollfrei) durch. Sie erzeugt auch protokollspezifische Informationen, die zusammen mit den Daten übermittelt werden (z.B. HDLC-Stopfbits, Abbruch-/Freizeichen in HDLC, Rahmenbegrenzungen usw.) sowie Interrupt-Statusangaben für Sendeereignisse (z.B. FIFO-Pufferunterlauf, Steuerblockende-Zeichenkette für Sendeoperationen, usw.)
- Die FIFO-Verwaltungspartition 62 bildet die Schnittstelle zwischen dem FIFO RAM 52 (weiter unten mit FIFOR abgekürzt) und den Empfangs- und Sendepartitionen; sie überträgt Empfangs- und Sendedaten zwischen den Kanalwarteschlangen im RAM und diesen Partitionen nach dem FIFO-Prinzip (Abarbeitung in der Reihenfolge ihres Eingangs) und verwaltet die Verwendung dieser Warteschlangen. Partition 62 überwacht die Belegung der einzelnen Kanalwarteschlangen im RAM 52 und erteilt Anforderungen an die DMA-Partition (Direktzugriffsspeicher-Partition) 65 im asynchronen Teil, die Aktionen in der Haupt-E/A-Partition (MIO- Partition) 66 auslösen, welche bewirken, daß Daten zwischen den betreffenden Warteschlangen und den Speichern des Hostsystems über den Bus 35 übertragen werden. Die Anforderungen von Partition 62 sind tatsächlich in einer in Fig&sub4; 2 nicht dargestellten separate DMA-Anforderungswarteschlangenpartition (DMARQ-Partition) zwischengespeichert und werden von dieser asynchron abgearbeitet.
- Die Empfangsdatenwarteschlangen werden also auf FIFO-Basis abgearbeitet, bevor sie als Ergebnis der Aktivität an IF 4 überlaufen, und die Sendedatenwarteschlangen werden mit neuen Daten aufgefüllt, bevor sie bezüglich IF 4 leer sind.
- Die Interrupt-Partition-(INT-Partition) 64, die im synchronen Teil 50 und im asynchronen Teil 51 arbeitende Schaltungsabschnitte besitzt, hat folgende Funktionen: den Empfang von Signalen, die mitteilbare Hardware- und Kanalprozeßereignisse und -bedingungen signalisieren, von allen anderen IDLC-Elementen und den L1-Schaltungen; die Weitergabe zugehöriger Markierungsanforderungen an die untergeordnete E/A-Partition (SIO-Partition) 67; sowie das Sammeln von Statusinformationen über solche Ereignisse und Bedingungen für den asynchronen Abruf durch das IOP/Host-System. Zu diesen Ereignissen und Bedingungen zählen Hardware-Fehler, Kanalfehler, Kanalverarbeitungsereignisse (Überschreiten von Rahmenbegrenzungen, Ende der Übertragung usw.) In Bezug auf solche Anforderungen tritt Partition 67 über Bus 35 in Interrupt-Verbindung mit dem Hostsystem, um die betreffenden Statusinformationen zu übertragen.
- Wie bereits erwähnt enthält jedes autonome Element (und/oder Teilelement) in jeder Partition eine Logik, die in der Regel als eine oder mehrere "Maschinen mit finiten Zuständen"s implementiert ist. Diese durchlaufen aufeinanderfolgender Zustände zur Ausführung entsprechend zugeteilter Funktionen für jeden aktiven Netzwerkkanal. Da alle Kanäle in der Netzwerkverbindung für den Betrieb unter einem ausgewählten Sprach- oder Datenübertragungsprotokoll konfiguriert sind, wird von der Host- Schnittstelle 35 (über die SIO-Partition 67) eine Gruppe von Statusvariablenparametern in den TSR 53 eingefügt, um die Anfangszustände für die autonomen Elemente in den Partitionen 60 bis 64 für die jeweilige Konfiguration festzulegen.
- Bei nachfolgendem Auftreten in jedem Rahmen an der Schnittstelle 4 eines einem bestimmten Kanal zugewiesenen Zeitschlitzes übermittelt RSM 63 Statuswechsel zwischen RAM 53 und autonomen Elementen in den Partitionen 60 bis 62 sowie zwischen RAM 53 und einem synchronen Teil der Partition 64, die bewirken, daß diese Partitionen schrittweise die zugeordneten logischen Verarbeitungsaufgaben für den betreffenden Kanal ausführen.
- In Fig. 1 bis 3 erzwingt das Auftreten von Einschaltsignalen an der Hostschnittstelle 7 (durch die Host-Verarbeitungselemente 10 und 12) den Rücksetzungsmodus der IDLC- und L1-Schaltungen. In diesem Modus werden logische Elemente in allen IDLC-Partitionen von nichtrelevanten Statusinformationen befreit und in den Ruhezustand versetzt. Dann werden die L1- und IDLC-Schaltungen, wiederum durch Host-Signale über IF 4, initialisiert. Diese Signale enthalten Daten, die die kritischen Anfangsparameter für die Kanalaktivierung und den IDLC- und L1-Betrieb definieren. Die Initialisierungsdaten für die L1-Schaltungen werden über die Leitung 69 an nicht dargestellte Register im L1- Abschnitt übertragen. Die Initialisierungsdaten für den asynchronen IDLC-Teil 51 werden über den Bus 35, die MIO-Partition 66 und die DMA-Partition 65 an die RAMs 52 und 54 übertragen. Die Initialisierungsdaten für den synchronen Teil 50 werden dem RAM 53 über den Bus 35 und die SIO-Partition 67 übermittelt.
- Nach der Initialisierung wird das IDLC in einen aktiven Modus versetzt, und die Verarbeitungsoperationen für die Aktivierung der Netzwerkkanalfunktionen beginnt. Bevor ein Kanal aktiviert werden kann, müssen nicht nur bei der IDLC-Initialisierung die kritischen Anfangsparameter für die einzelnen Kanäle geladen werden, sondern es müssen auch Steuerparameter in die RAMs 52 und 54 und bestimmte weiter unten beschriebene Register gelanden werden, damit alle Verarbeitungspartitionen für die Ausführung der für die betreffenden Kanalarten erforderlichen Funktionen vorbereitet sind. Bei der Aktivierung werden Signale, die das Auftreten der betreffenden Kanalzeitschlitze anzeigen, von L1 über BTDM IF 4 an das IDLC gesendet und die Verarbeitung für den Kanal gestartet. Bei dieser Verarbeitung werden Vollduplexverbindungsstrecken über Netzwerksignalisierungskanäle zwischen dem lokalen Knoten und fernen Knoten aufgebaut. Daten werden über solche Verbindungsstrecken übertragen, und Statusinformationen für solche Kanäle werden im RAM 53 gesammelt und dem Hostsystem über SIO 67 zur Verfügung gestellt.
- In Fig. 3 ist an den von RSM durchgeführten Statuswechselprozessen für Übertragungskanäle, die den Zeitschlitzen an der BTDM-Schnittstelle zugeteilt sind (in dieser Zeichnung die aufeinanderfolgenden Zeitschlitze N und N+1), die Übertragung von vier Variablentypen beteiligt: sendespezifische Variablen, empfangsspezifische Variablen, interruptspezifische Variablen und globale Variablen. Statuswechsel (Speichern von elementspezifischen Verarbeitungsstatus für einen Kanal, dessen Zeitschlitz jetzt endet, und Laden zuvor gespeicherter Verarbeitungsstatus für einen Kanal, dessen Zeitschlitz jetzt beginnt) werden nur für aktive Kanäle durchgeführt. Globale Variablen sind für Sende-, Empfangs- und Interrupt-Verarbeitung gleichermaßen gültig. Ein kleiner Teil einer globalen Variablen, der die Kanalart bezeichnet, wird für aktive und inaktive im voraus abgerufen, um aktive Kanäle von inaktiven zu unterscheiden.
- Sendespezifische Variablen werden für Elemente in den Sendepipeline-Partitionen 61 und 62 übertragen. Empfangsspezifische Variablen werden für Elemente in den Empfangspipeline-Partitionenen 60 und 62 übertragen. Wie weiter unten dargestellt enthalten die Partitionen 60, 61 und 62 autonome Unterpartitionen zur Durchführung verschiedener Verarbeitungsfunktionen mit Daten, die vom und zum Netzwerk übertragen werden. Interruptspezifische Variablen werden für die INT-Partition 64 übertragen.
- In Fig. 3 und Fig. 4 werden globale Variablen, die Konfigurations- und Protokollzuordnungen für einzelne Kanäle definieren, für die Konfigurationsregister CCR (Konfigurationssteuerungsregister) und HPCR (HDLC-Protokollkonfigurationsregister) in RSM 63 synchron mit der Kanalverarbeitung übertragen (der RSM wird weiter unten ausführlicher beschrieben). Diese im RSM in Registern abgelegten Variablen werden effektiv von allen Partitionen gemeinsam benutzt.
- Andere transiente Variablen für die Verarbeitung von Interruptereignis-Status werden in Fig. 3 und Fig. 4 in den Registern CEISR (Kanalereignis-Interruptstatusregister) in INT, EOPISR (Prozeßende-Interruptstatusregister) in INT, IHEISR (IDLC- Hardwarefehler-Interruptereignis-Statusregister) in INT und VHR (Vektorhalteregister) in SIO gespeichert. Der Inhalt von CEISR und EOPISR wird bezüglich TSR synchron mit dem Auftreten der Kanalzeitschlitze ein- bzw. ausgelesen. Der Inhalt von IHEISR und VHR wird statisch gespeichert, bis er von IOP abgerufen wird.
- Eine weitere globale Variable, die Hyperchannel-Zuordnungen definiert, wird im Register HCR (Hyperchannel-Konfigurationsregister) in SIO gespeichert. Da diese Variable sich nicht mit dem Auftreten von Kanalzeitschlitzen an der BTDM-Schnittstelle ändert, wird sie statisch im HCR gespeichert (d.h. sie wird nicht synchron gespeichert und wieder geladen; siehe spätere Beschreibung von Hyperchannels). Andere globale Variablen, die nicht kanalspezifische Gerätekonfigurationsparameter definieren werden statisch im Register ICR (IDLC-Konfigurationsregister) in SIO gespeichert.
- Übertragungen von Empfangs-, Sende- und Interruptvariablen sind echte Ein-/Auslagerungen, Übertragungen kanalspezifischer globaler Variablen in die Register CCR und HPCR in RSM 63 hingegen erfolgen nur in eine Richtung (diese Variablen sind zwar von Kanal zu Kanal verschieden, ändern sich aber nicht in Abhängigkeit von IDLC-Verarbeitungsoperationen für einen Kanal und müssen deshalb nicht am Ende eines Kanalzeitschlitzes gespeichert werden).
- Die Statuswechselaktionen (S) sind innerhalb der einzelnen Kanalzeitschlitze in Phase gestaffelt; zuerst kommen die globalen und Interrupt-spezifischen, dann die sendespezifischen und zuletzt die empfangsspezifischen Variablen. Während die globalen Variablen geladen werden, werden die Partitionen in beiden Pipelines angehalten (H). Selbstverständlich entfallen diese Aktionen bei Zeitschlitzen, die inaktiven Kanälen zugeordnet sind.
- Die Zeitfenster an IF4 wiederholen sich periodisch in Rahmen. Der Anfang der einzelnen Zeitschlitze und Rahmen wird durch Steuerimpulssignale von speziellen Taktgeberschaltungen in den L1-Schaltungen 5 signalisiert. Diese Taktgeberschaltungen liefern am Anfang jedes Zeitschlitzes mit Ausnahme des letzten Zeitschutzes im Rahmen Zeitschlitzanfangsimpulse BOS und am Anfang des letzten Zeitschlitzes jedes Rahmens LSOF-Impulse, die den letzten Zeitschlitz des Rahmens kennzeichnen. Diese Signale werden von RSM zum Ordnen der Operationen für IDLC- Kanäle, die Zeitschlitzen an Rahmenpositionen mit einer bestimmten Nummer zugeordnet sind, verwendet und bilden die Grundlage dafür, daß die L1-Schaltungen so angepaßt werden können, daß die Rahmendauer und/oder Zeitschlitzdauer und/oder die Anzahl der Zeitschlitze in einem Rahmen variabel ist.
- Als Antwort auf jedes BOS- und LSOF-Signal nach einem Zeitschlitz, der einem aktiven Kanal zugeordnet ist (BOS/N+1 in Fig. 3, d.h. Anfang des Zeitschlitzs N+1 nach dem Zeitschlitz N) gibt RSM den synchronen Partitionen in der Sendepipeline das Signal, sich auf die sendespezifische Ein-/Auslagerung vorzubereiten. Ist sowohl Kanal N als auch Kanal N+1 aktiv, so signalisieren Elemente in der Sendepipeline, deren Statusmaschinen sich in stabilen Zuständen befinden, von denen aus sie beim nächsten Aufteten des Zeitschlitzes für Kanal N an vorigen Punkt wiederansetzen können, unmittelbar an RSM, daß sie fertig sind, und veranlassen, daß ihre Sendeprozeßstatus in Bezug auf Statusspeicherbereiche im TS RAM ein-/ausgelagert werden (wenn N inaktiv ist, werden keine Statusdaten an den TS RAM übertragen, und wenn N+1 inaktiv ist, werden keine Statusdaten aus RS RAM geladen). Die für den Kanal N (unter der Annahme, daß dieser aktiv ist) gespeicherten Statusdaten reichen aus, um den betreffenden Elementen die Wiederaufnahme der Verarbeitung für den betreffenden Kanal im nächsten Zeitschlitzrahmen zu ermöglichen, ohne daß die Kontinuität verlorengeht. Entsprechende Aktionen finden in der Phase der empfangsspezifischen Ein/Auslagerung statt.
- Elemente, die sich zum Zeitpunkt der Verarbeitung für einen aktiven Kanal N nicht in einem stabilen Zustand befinden und die von RSM das Signal für den nächsten Statuswechsel empfangen, gehen in den nächsten stabilen Zustand über, bevor der "FERTIG"-Status signalisiert wird ("DONE"-Signal) und die Ein/Auslagerung stattfindet. Wie später noch zu sehen sein wird, führen die Staffelung der Ein-/Auslagerungsaktionen für Sende- und Empfangsprozesse und die Unterteilung derselben in richtungsabhängige spezielle und globale Ebenen in Koordination mit spezifischen aktuellen Phaseneinteilungen von Signalübertragungen zu und von IF4 zu einer sehr effizienten Ausnutzung von RAM 53 und den Sende- und Empfangspartitionen (ohne die ein größerer RAM und mehr Schaltungen in den Pipeline-Partitionen erforderlich wären).
- Ein für die vorliegende Erfindung der Hyperchannelbildung und - verwendung interessanter Aspekt des obigen Statuswechselprozesses besteht darin, daß jeder Hyperchannel einer Gruppe von mehreren Zeitschlitzen an IF 4 (nicht notwendigerweise in aufeinanderfolgenden Positionen im Rahmen) zugeordnet ist und daß alle Statuswechselprozesse in Bezug auf einen Bereich im TSR durchgeführt werden, der dem zuerst im Rahmen erscheinenden Zeitschlitz in der Gruppe zugewiesen ist; dieser Zeitschlitz wird als Referenzzeitschlitz bezeichnet.
- Für seine Rolle beim Statuswechsel und anderen Operationen entwickelt RSM eine Zeitschlitzangabe (RSM_TSI), die in der Regel auf dem Wert eines internen Zeitschlitzzählers basiert, der am Anfang jedes Rahmens zurückgesetzt wird und mit jedem empfangenen BOS-Impuls (Zeitschlitzanfang) weitergezählt wird. Wie nachstehend ausführlich beschrieben wird werden diese TSI- Angaben als Adreß-Offsetwerte beim Zeitwechsel und als Zeitpositionsreferenz für die Zuordnung von Kanalanforderungen in DMARQ zu den betreffenden Zeitschlitzpositionen verwendet. Die TSI-Angaben für Zeitschlitze, die einem Hyperchannel zugeteilt sind, werden jedoch auf andere Weise entwickelt.
- Im allgemeinen besitzt jeder Hyperchannel eine Gruppe aus mehreren Zeitschlitzen in jedem ihm zugeordneten Zeitschlitzrahmen. In der vorliegenden Beschreibung besitzen alle Zeitschlitze einer solchen Gruppe eine Viele-zu-Eins-zuordnung zu einem Referenzzeitschlitz, der den zuerst erscheinenden Zeitschlitz der betreffenden Gruppe ist. Wenn irgend ein Zeitschlitz in einer Hyperchannelgruppe erscheint, wird seine Zuordnung von RSM durch die Decodierung der von TSR ausgelesenen und in RSM eingelesenen Kanalkonfigurationsdaten (CCR) erkannt. Zu einem solchen Zeitpunkt verwendet RSM die Informationen im Hyperchannel- Konfigurationsregister HCR (in SIO; siehe Fig. 4) zur Entwicklung einer TSI-Angabe, die die Zeitposition des zugeordneten Referenzzeitschlitzes bezeichnet.
- Alle zeitschlitzabhängigen Kanaladressierungsfunktionen für die Zeitschutze in einer Hyperchannel-Gruppe sind somit auf Adressen (in TSR, FIFOR, DMAR und DMARQ) für die jeweiligen Zeitschlitze bezogen. Dies vereinfacht die Programmierung des IDLC- Geräts in Bezug auf Hyperchannels (da dann nur Prozeßstatusund Kanalstatusparameter für den Referenzzeitschlitz vom Hostsystem in die lokalen RAMs 52 bis 54 geschrieben werden müssen). Wie später noch zu sehen sein wird, vereinfacht es auch die logische Struktur von DMARQ.
- In diesem Abschnitt und den nachfolgenden Unterabschnitten werden die logische Organisation und die Operationen der IDLC unter besonderer Bezugnahme auf Fig. 4 beschrieben.
- Dieser Abschnitt umfaßt eine alphabetisch geordnete Liste der in Fig. 4 verwendeten Abkürzungen von Element- und Registernamen mit Erklärungen der Funktion aller aufgeführten Elemente. Mit einem Stern (*) gekennzeichnete Elemente gelten für alle Kanäle.
- Soweit möglich wurden in Fig. 4 die bereits in Fig. 2 verwendeten Partitionsnummern beibehalten und Elemente in diesen Partitionen durch gleiche Zahlen in Verbindung mit einem oder mehreren Buchstaben gekennzeichnet (z.B. 61L).
- In Fig. 4 sind die wichtigsten Datenverarbeitungspfade in und durch IDLC dargestellt. Zu diesen zählen Pfade für die Behandlung von Sendedaten (Daten, die vom Host über Bus 7 ankommen und in Kanalzeitschutzen an IF4 nach sofortiger Verarbeitung in IDLC-Partitionen gesendet werden), Pfade für die Behandlung von Empfangsdaten (Daten, die an IF 4 empfangen und in IDLC für die Übertragung an die Hostschnittstelle 7 verarbeitet werden), Pfade für das Senden von Initialisierungs- und Steuerdaten vom Hostsystem an die IDLC RAMs, Pfade für das Sammeln von Daten, die dem Host über Interrupts mitgeteilt werden können (Daten, die Ereignisse und Bedingungen anzeigen sowie die dafür spezifischen Statusdaten), Pfade für die Durchführung von Statuswechseln (zwischen IDLC-Elementen und TSR 53) und Host-Zugriffspfade zu IDLC RAMs (die dem Hostsystem die dynamische Programmierung von IDLC-Operationen für einzelne BDTM-Zeitschlitze und das Abrufen von IDLC-Daten und IDLC-Statusinformationen ermöglichen). In diesem Abschnitt werden die Datenpfade für Senden und Empfang beschrieben.
- Die in Kanalzeitschutzen an IF 4 zu übertragenden Daten ("Sendedaten") erreichen IDLC über Bus 7, Multiplexerschaltungen 80 und MIO-Partition 66. Multiplexer 80 dient als Schalter für die Weiterleitung von Übertragungsdaten und anderen Informationssignalen vom externen Speicher des Hostsystems (13, Fig. 2) zu MIO 66 sowie von den Verarbeitungseinheiten des Hostsystems (10, 12, Fig. 2) zu SIO 67. Die Sendedaten werden von einem DMA-Prozeß, der von einem DMA-Steuerelement (DMAC) 65C als Antwort auf DCB-Befehlsvektoren (Datensteuerblock-Befehlsvektoren) gesteuert wird, welche in DMAR 54 vom Hostsystem vorbereitet wurden, in bitparallelen Wortgruppen aus dem Host-Speicher abgerufen.
- Das DMAC kann so angepaßt werden, daß es zur Auslösung des Abrufs zusätzlicher DCBs aus dem IOP bzw. Hostspeicher auf Kettungsanzeiger in solchen DCBs reagiert und so die Verarbeitungsaktivitäten von IOP bzw. Host in Bezug auf solche zusätzlichen DCBs vermindert. Eine solche Aktion ermöglicht es dem IDLC-Gerät auch, sowohl zusätzliche DCBs als auch Sendedaten, die diesen DCBs zugeordnet sind, aus verstreuten Bereichen im IOP/Hostspeicher abzurufen.
- Nach dem Durchlaufen von MIO und DMAC werden die Sendedaten in kanalspezifischen Warteschlangenbereichen in FIFOR 52 abgelegt. Für einzelne Kanäle wird der IDLC-Prozeß zum Abrufen solcher Daten aus dem Hostspeicher als Antwort auf Anforderungen, die vom Sende-FIFO-Manager-Element (TFM) 62T an das DMA-Anforderungswarteschlangenelement (DMARQ) 65Q gesendet werden, aufgerufen, wenn RFM die betreffenden Kanalwarteschlangen in FIFOR abarbeitet.
- TFM entnimmt die Sendedaten Byte für Byte aus den kanalspezifischen Warteschlangenbereichen in FIFOR und leitet jedes Byte an das Sende-Gültigkeitsprüfungselement (TV) 61T. Die Daten in jedem Warteschlangenbereich werden in FIFO-Reihenfolge (in der Reihenfolge ihres Eingangs) abgerufen. TV unterzieht die Daten bestimmten Prozessen zur Gültigkeitsprüfung und übergibt die daraus resultierenden Bytes an das Element 61L der Sendeebene 1. TL1 führt eine weitere Verarbeitung der Ebene 2 durch und übergibt die daraus resultierenden Daten bitseriell an IF 4. Jede Bitübertragung an IF 4 erfolgt als Antwort auf einen speziellen Sendedatenbit-Anforderungsimpuls, der TL1 von L1-Schaltungen (5, Fig. 1), die IF 4 steuern, präsentiert wird. Jede Bitübertragung erfolgt synchron (das heißt, sie muß innerhalb von 50 Nanosekunden nach dem betreffenden Anforderungsimpuls stattfinden).
- Die Verarbeitung in TV (61V) für einzelne Datenkanäle umfaßt auch das selektive Einfügen protokollspezifischer Rahmenmerkmale oder Kennzeichen (bei Kanälen, die unter einem Protokoll benutzt werden, das solche Symbole verwendet). Dies und die erwähnte DCB-Kettungsfunktion in DMAC ermöglichen der IDLC die Übertragung großer Datenblöcke aus verstreuten Bereichen des Hostspeichers und das Einfügen von Protokollrahmeninformationen unterschiedlicher Form und mit unterschiedlichem Abstand in solche I)aten wie es der jeweiligen Kanalkonfiguration entspricht. Dadurch werden IOP und Hostsystem von einem Großteil der Verarbeitungsaufgaben entlastet.
- Bei den oben genannten Elementen 61V, 61L, 62T, 65C und 65Q ist zu beachten, daß die Partitionen, die in Fig. 2 als Einzelblökke 61, 62 und 65 dargestellt sind, eigentlich aus mehreren Elementen und/oder Unterpartitionen bestehen. Die Sendepartition 61 enthält die Elemente 61T und 61L, die unterschiedliche Verarbeitungsfunktionen mit den Sendedaten ausführen. Die FIFO- Partition 62 ist eigentlich in eine Sendepartition 62T (TFM) und eine Empfangspartition (62R (RFM) unterteilt, in denen die FIFO-Warteschlangenfunktionen für Sendedaten und Empfangsdaten getrennt ausgeführt werden. Die DMA-Partition 65 enthält die funktional autonomen Elemente 65C (DMAC) für die gesamte DMA- Steuerung und 65Q (DMARQ) für den Empfang kanalbezogener Anforderungen von den Partitionen 62T und 62R sowie für die Einreihung solcher Anforderungen für DMAC in die Warteschlangen.
- Bei den Sendedaten zeigen Anforderungen, die von TFM an 65Q gesendet und von dort an 65C übergeben werden, an, daß die betreffenden Kanaldatenwarteschlangen abgearbeitet sind. Als Antwort auf solche Anforderungen und asynchron zum Auftreten der entsprechenden Kanalzeitschlitze in IF 27, beginnen die Elemente 65C und MIO, über Bus 35 auf den IOP-Speicher (oder den Speicher des Hostsystems, falls dieser anstelle des IOP-Speichers an den Bus 35 angeschlossen ist) zuzugreifen und daraus die Sendedaten abzurufen, die an die betreffenden Kanalwarteschlangen in FIFOR gesendet werden.
- Die obigen Operationen von DMAC und TFM werden über die Register TDCR (Sendedatenkonfigurationsregister) 1 bis 4 in DMAC und die zugehörigen Register TDCR 1-2 in TFM gesteuert. Diese Register dienen als Zwischenspeicher für die Daten, die aus DMA- und FIFOR-Bereichen für die einzelnen Kanäle abgerufen werden.
- Während Sendedaten für einen Kanal abgerufen werden, stellt TFM (anhand der zugehörigen TDCR1-Daten) fest, ob der betreffende Warteschlangenbereich in FIFOR (der zugeordnete TDCR2-Bereich in FIFOR) leer ist. Ist dies der Fall, stellt TFM eine Anforderung an DMARQ, die diese asynchron an DMAC übergibt. Später greift DMAC in Verbindung mit MIO auf den externen Speicher des Hostsystems zu und ruft daraus weitere Sendedaten ab, die dann an FIFOR/TDCR2 übergeben werden. Die Operationen von DMAC, die den externen Speicher betreffen, sind durch die Daten festgelegt, die in den für den betreffenden Kanal in DMAR 54 reservierten Bereichen von TDCR 3-4 gespeichert sind. Während der DMAC-Aktion für einen Kanal werden die Register TDCR3 und TDCR4 in DMAC mit den Kanalsteuerdaten geladen, die zum Zugriff auf den externen Speicher benötigt werden (d.h. mit den Steuerdaten, die aus den zugehörigen Bereichen von TDCR3, 4 in DMAR abgerufen wurden). Diese Steuerdaten dienen zur Definition der Speicherposition, an der sich die Daten befinden, die (in parallelen Gruppen von maximal 4 Byte) abgerufen und an FIFOR/TDCR2 gesendet werden sollen. Die Kanalbereiche TDCR2 in FIFOR sind vier Byte große Puffer, in denen die Sendedaten für TFM zwischengespeichert werden. Die Register TDCR1, TDCR3 und TDCR4 in DMAC werden mit den Informationen aus DMAR geladen, wenn eine nicht in der Zeichnung dargestellte "Sende-DMA- Statusmaschine" in DMAC (die weiter unten dargestellt und beschrieben wird) für eine Kanalwarteschlange initialisiert wird, die abgearbeitet werden muß.
- Die Prozesse zur Übertragung von Sendedaten vom IOP-/Hostspeicher an FIFOR werden asynchron zum Auftreten der entsprechenden Kanalzeitschutze an der (BTDM-) Schnittstelle (IF) 4 ausgeführt. Die Behandlung der Sendedaten durch die Elemente 62T, 61V und 61L erfolgt jedoch synchron mit dem Auftreten dieser Zeitschutze, und der Status dieser Elemente in Bezug auf Sendeprozesse in aktiven Kanälen werden synchron mit den betreffenden Zeitschlitzen zyklisch ein-/ausgelagert. Wie bereits erwähnt, werden die Statuswechsel zwischen diesen Elementen und TSR 53 von RSM 63 gesteuert.
- Das Sende-Gültigkeitsprüfungselement für 61V (TV) verarbeitet die Sendedaten gemäß den Kanalerfordernissen und übergibt sie an das Element 61L (TL1) der Sendeebene 1, wo sie serialisiert und an die Schnittstelle 4 übertragen werden. Obwohl Übertragungen von Sendedaten an dieser Schnittstelle bitseriell erfolgen, kann in einen Zeitschlitz eine variable Anzahl von 0 bis 8 Bit übertragen werden. Jedes Bit wird synchron mit (d.h. innerhalb von 50 ns nach) einem entsprechenden Bitanforderungsimpuls gesendet, der von den L1-Schaltungen, welche die BTDM-Schnittstelle steuern, empfangen wird.
- Aus Gründen, auf die später noch eingegangen wird, erfolgen alle Datenbitübertragungen in einem Zeitschlitz innerhalb eines kleinen Zeitfensters in diesem Zeitschlitz. Während dieses Zeitfensters im Zeitschlitz eines aktiven Kanals präsentieren die L1-Schaltungen eine variable Anzahl von Bitanforderungsimpulsen (0 bis 8), und TL1 beantwortet jeden Impuls durch Präsentieren eines Sendedatenbits.
- Bei aktiven Datenkanälen umfaßt die zweite Verarbeitungsstufe (Gültigkeitsprüfungsebene) durch TV das Einfügen protokollspezifischer Rahmendaten sowie das Einfügen von Adreß- und Prüfreferenzdaten (z.B. CRC-Prüfbits). Wie bereits erwähnt werden digitalisierte Sprachsignale protokollfrei übertragen; sie benötigen keine expliziten Zieladressen, da ihre Ziele beim Aufbau der betreffenden Kanalverbindungsstrecken festgelegt werden.
- Bei aktiven Datenkanälen umfaßt die Verarbeitung in TL1 eine parallel-seriell-Umwandlung (TL1 empfängt Daten von TV in bitparallelen Bytes und sendet Daten bitseriell an IF 4) sowie eine selektive Einfügung protokollspezifischer Bits (z.B. HDLC- Transparenzbits, die verhindern sollen, daß Meldungsdaten fälschlicherweise als Steuerzeichen interpretiert werden).
- Datenbytes, die TV und TL1 für einen Kanal durchlaufen, werden parallel und simultan verarbeitet, wobei diese Verarbeitung in Form einer Pipeline und synchron mit dem Auftreten des betreffenden Kanalzeitschlitzes an der BTDM-Schnittstelle 4 ist. Bei dieser Pipeline-Verarbeitung ist zu beachten, daß der Status von TV und TL1 für einzelne Kanäle synchron mit dem Wechsel der betreffenden Kanalzeitschlitze an IF 4 aus- bzw. eingelagert wird, und daß während des Zeitschlitzes, der TV und TL1 für einen aktiven Kanal zugeordnet ist, gleichzeitig separate Bytes für den gleichen Kanal parallel verarbeiten kann. Hingegen wird jedes Byte bitseriell und nur als Antwort auf die Bitanforderungen, die TL1 von der Schnittstelle erhält, von TL1 an IF 4 übergeben. Selbstverständlich kann die Verarbeitung, die in diesen Elementen erforderlich ist, um ein Byte oder eine andere Dateneinheit an IF 4 zu übertragen, einen oder mehrere Rahmen mit wiederkehrenden Kanalzeitschlitzen an IF 4 umfassen; aber teilweise aufgrund der erwähnten Pipeline-Verarbeitung (und teilweise aufgrund der Warteschlangenbehandlung im asynchronen Teil 51) werden solche Daten an IF 4 in Form eines "Fließbandes" verfügbar gemacht, wobei die Geschwindigkeit in der Regel zu der Geschwindigkeit des Nennsignals im Kanal paßt.
- In IDLC-Abschnitt 50 wird der Status der Elemente 61L, 61V und 62T für Netzwerkkanäle synchron mit dem Auftreten der betreffenden Kanalzeitschutze an IF 4 ein- bzw. ausgelagert, und die Verarbeitung der Empfangsdaten für einen Kanal erfolgt ebenfalls synchron mit dem Autreten der betreffenden Zeitschlitze. Diese Statuswechselprozesse werden zwischen den betreffenden Elementen und Bereichen im Zeitwechsel-RAM (TSR) 53, der den Zeitschlitzen für die Elementarkanäle zugeordnet ist, durchgeführt. Teile jedes Kanalbereichs sind separat für die einzelnen Elemente reserviert. Die Übertragung der Statusdaten zwischen den Elementen und TSR wird vom Ressourcenmanager (RSM) 63 geleitet. Im IDLC-Abschnitt 51 erfolgen alle Operationen in Bezug auf Sendedaten asynchron zum Auftreten der betreffenden Kanalzeitschlitze.
- Empfangsdaten von IF 4 werden vom Element 60L (RL1) bitseriell empfangen und in Bytes deserialisiert, wobei Daten in protokoliformatierten Kanälen bestimmten weiteren Verarbeitungsoperationen unterzogen werden. Dann werden die Bytes zur selektiven Verarbeitung der Ebene 2 dem Gültigkeitsprüfungselement 60V (RV) übergeben, und die daraus resultierenden Bytes werden von RV an das Empfangs-FIFO-Managerelement (RFM) 62R übertragen und vom RFM in die Empfangspufferwarteschlangen (je eine pro Kanal) in FIFO RAM (FIFOR) 52 gestellt.
- Der Empfang an IF 4 während eines Kanalzeitschlitzes findet bitseriell und nur in einem kurzen Zeitabschnitt des Kanalzeitschlitzes statt. Während dieses Zeitabschnitts kann eine variable Anzahl von 0 bis m Bits empfangen werden (hier ist m=8).
- Zu den in RL1 ausgeführten selektive Verarbeitungsaufgaben zählen das Abtrennen protokollspezifischer Informationen (z.B. Transparenzbits und Rahmenkennzeichen in HDLC-formatierten Daten) von den empfangenen Daten. Zur Verarbeitung in RV gehört die Gültigkeitsprüfung der Daten in protokollforMatierten Kanälen (z.B. CRC-Prüfung von HDLC-Daten) und die Prüfung der Zieladressen in bestimmten Datenkanälen (für das Entfernen von Daten, die nicht an den lokalen Knoten gerichtet sind). Von RV verarbeitete und nicht entfernte Datenbytes werden an das RFM- Element 62R übertragen, wo sie in die Empfangsdaten-Warteschlangenbereiche im FIFO RAM (FIFOR) 52 für die betreffenden Kanäle geladen werden. Ob die Empfangswarteschlangen in RAM 52 voll sind, wird vom Element 62 überwacht, und im Bedarfsfall werden DMARQ 65Q Anforderungen übergeben, die bewirken, daß DMAC 65C die in der Warteschlange enthaltenen Empfangsdaten in FIFO-Reihenfolge aus FIFOR in kanalbezogene "Kreispuffer" im Host-IOP-Speicher weiterleitet
- In IDLC-Abschnitt 50 wird der Status der Elemente 60L, 60V und 62R für Netzwerkkanäle synchron mit dem Auftreten der betreffenden Kanalzeitschlitze an IF 4 ein- bzw. ausgelagert, und die Verarbeitung der Empfangsdaten für einen Kanal erfolgt ebenfalls synchron mit dem Autreten der betreffenden Zeitschlitze. Diese Statuswechseiprozesse werden zwischen den betreffenden Elementen und Bereichen im Zeitwechsel-RAM (TSR) 53, der den Zeitschlitzen für die Elementarkanäle zugeordnet ist, durchgeführt. Teile jedes Kanalbereichs sind separat für die einzelnen Elemente reserviert. Die Übertragung der Statusdaten zwischen den Elementen und TSR wird vom Ressourcenmanager (RSM) 63 geleitet. Im IDLC-Abschnitt 51 erfolgen alle Operationen in Bezug auf Empfangsdaten asynchron zum Auftreten der betreffenden Kanalzeitschutze.
- Wie beim Sendepfad besteht das Empfangselement 60 in Fig. 2 eigentlich aus den autonomen Unterelementen 60L (RL1) und 60V (RV), die für die Behandlung der an IF 4 empfangenen Daten auf der ersten bzw. zweiten Ebene zuständig sind. Ebenfalls wie beim Sendepfad wird der Status dieser Elemente synchron mit dem Auftreten der Kanalzeitschlitze an IF 4 ein- bzw. ausgelagert. In diesen Elementen erfolgt die Datenverarbeitung für einen Kanal oder Hyperchannel in jedem Fall synchron mit dem Auftreten der betreffenden Zeitschutze. Obwohl die für die Übertragung eines Empfangsdatenbytes durch RL1 RV und RFM erforderliche Verarbeitung in der Regel wenigstens drei Rahmen wiederkehrender Zeitschlitze umfaßt, ermöglichen die kanalbezogene Pufferung für jedes Element im RSR 53 und die Pufferwarteschlangenkapazität für jeden Kanal in FIFOR (hier 4 Bytes) eine Pipeline-Verarbeitung dieser Daten in einer Weise, daß ein mit maximaler Übertragungsgeschwindigkeit arbeitender Kanal keinen Überlauf im Gerät verursacht.
- Ein Merkmal der Schnittstelle 4 (siehe als Referenzliteratur aufgeführte Patentanmeldung mit den Worten "Burst Time Division" im Titel) ist ihr Betrieb in einem Modus "positiver Schlupf", wodurch die Anzahl der in einem einzelnen Zeitschlitz in RL1 empfangenen Bits in jedem Fall größer oder gleich der Anzahl der von den L1-Schaltungen (Bezugszahl 5 in Fig. 1) empfangenen Bits seit dem letzten vorausgegangenen Auftreten des gleichen Zeitschlitzes ist. Dadurch wird sichergestellt, daß die in einem Kanal oder Hyperchannel empfangenen Daten während der Übertragung an das untergeordnete Gerät unabhängig von der Driftrate zwischen dem empfangenden Taktgeber der L1-Schaltung und dem der fernen Datenguelle im Netzwerk nie einen Überlauf in den L1-Schaltungen verursachen.
- RL1 führt die Empfangsdatenverarbeitungsoperationen der Ebene 1 (Deserialisierung, Entfernen von HDLC-Eröffnungs- und Schlußkennzeichen usw.) durch, während RV für die Verarbeitung der von RL1 übergebenen Daten auf Ebene 2 (Gültigkeitsprüfung) verantwortlich ist (z.B. für Adreßerkennung, Abtrennen protokollspezifischer Daten, CRC-Prüfung usw.). Sobald die Daten für die Übergabe von RV verfügbar werden, bewirken von diesem Element erteilte Anforderungen, daß RFM 62R solche Daten an die betreffenden Kanalwarteschlangen in FIFOR 52 überträgt. Wenn eine Kanalwarteschlange einen bestimmten Füllungsgrad (deutlich vor dem Überlaufpunkt) erreicht, fordert RFM über DMARQ 65Q eine Aktion von DMAC 65C an, die schließlich zu einer (asynchronen) Aktion von DMAC führt, durch die die betreffende Warteschlange geleert wird (in FIFO-Reihenfolge).
- Das Interrupt-Verwaltungselement (INT) 64 ist für das Sammeln und die lokalisierte Speicherung von Statusinformationen (Hardwarestatus md IDLC- und L1-Schaltungen und Kanalprozeßstatus), die dem Hostsystem mitgeteilt werden müssen, zuständig. Das abhängige E/A-Element (SIO) 67 bildet über Bus 7 die Schnittstelle zum Hostsystem, um Interruptanforderungsangaben an den Host zu übergeben, wenn die Statusinformation lokal verfügbar ist, und um direkte Zugriffspfade 89 vom Hostsystem zu den RANS 52-54 und Register in INT und SIO, mittels derer der Host direkt auf lokal gespeicherte Statusinformationen zugreifen kann, bereitzustellen.
- Die Pfade 89 sind in beide Richtungen verwendbar, so daß das Hostsystem auch direkt IDLC-Operationen programmieren kann, indem er den Anfangszustand des Elements und die Steuerdaten in die RAMs 53-54 schreibt (siehe unten im Abschnitt über die Pfade 89 unter Hoststeuerpfaden). INT 64 ist an alle anderen IDLC- Elemente angeschlossen, um Ereignismarkierungssignale und die zugehörigen Ereignisstatusdaten über den mit "ALLE" markierten Pfad 90 sowie entsprechende Pfade 91 zu den L1-Schaltungen zu empfangen. Pfad 90 funktioniert in beide Richtungen, so daß Signale über diesen Pfad an logische Schaltungen in den anderen IDLC-Partitionen verteilt werden können. Die oben erwähnte Leitung 69 wird für die Übergabe von Initialisierungsdaten direkt von der Hostschnittstelle 7 an die L1-Schaltungen verwendet.
- Die Register ICR, HCR und VHR in SIO 67 und das Register IHEISR in INT 64 (siehe obige Definition) werden vom gesamten IDLC- Chip oder -Gerät benutzt. Die Ausgabedaten von ICR und HCR können über Element 64 und Pfad 90 in der gesamten IDLC-Logik verbreitet werden, um die Betriebsbedingungen in IDLC auf Hardware-Ebene zu schaffen; dabei dient ICR zur Bildung des Ruhemodus im Chip und HCR zum Aufbauen der Hyperchannel-Konfigurationen (siehe unter Referenzliteratur aufgeführte gleichzeitig anhängige Patentanmeldung über Hyperchannels). VHR speichert Statusvektorinformationen für die Übermittlung von Chip- und Kanalstatus, die über Pfad 64, 90 in IDLC gesammelt werden. In Register IHEISR in INT 64 laufen die in IDLC über Pfad 90 und von L1-Schaltungen über Pfad 91 gesammelten Hardwarefehlerinformationen zusammen.
- Die beiden anderen Register in INT 64, nämlich CEISR und EOPISR, werden so verwendet, als wären sie allen Kanälen gemeinsam; sie sind aber im Grunde "kanalbezogen" (d.h. für jeden Kanal im Netzwerk extra vorhanden). Innerhalb des jedem Kanal zugewiesenen Bereichs in TSR 53 existieren "Abbilder" dieser Register. Während des oben beschriebenen Prozesses, in dem der Status synchron mit den Zeitschlitzen ein- bzw. ausgelagert wird, lädt RSM 63 Register CEISR in INT (wobei die CEISR- Abbilddaten aus TSR ausgelesen werden), so daß dessen Inhalt synchron dem Inhalt des Kanals entspricht, dessen Zeitschlitz gerade an IF 4 erscheint. Register EOPISR in INT ist eine Sammelstelle für Prozeßende-Kanalstatusinformationen; wenn sein Inhalt sich während eines Zeitschlitzes ändert, wird die Information von RSM in einen der 16 EOPISR-Puffer in dem TSR-Bereich für den betreffenden Kanal übertragen. Der ausgewählte Puffer wird durch die Zeigerinformaton im Register CEISR während dieses Zeitschlitzes ausgewählt. Siehe auch nachstehende Erläuterungen der Zeitwechselpfade und des TSR. Der Inhalt der 16 EOPISR-Puffer für einen Kanal bilden eine Statuswarteschlange der Tiefe 16 für den betreffenden Kanal.
- Das Register CEISR ist die Sammelstelle für die Übermittlung kanalbezogener Fehlerinterrupt-Statusinformationen an den Host, und Register EOPISR ist die Sammelstelle für die Übergabe kanalbezogener Prozeßende-Statusinformationen an den Host. Solche Statusinformationen unterscheiden sich von den allgemeineren Daten, die von VHR übergeben werden, und müssen diese ergänzen. Kanalbezogene Prozeßende-Statusinformationen umfassen kanalbezogene Rahmenende-Statusinformationen, die mit der gleichen Geschwindigkeit wie die Zeitschlitzrahmen wiederkehren (daher die Notwendigkeit einer Warteschlange der Tiefe 16 für diese Art von Informationen).
- Die logische Konfiguration von INT 64 ermöglicht diesem, die relative Dringlichkeit anstehender Interrupt-Bedingungen oder Interrupt-Ereignisse zu bestimmen und die Reihenfolge der Übergabe zugehöriger Interrupt-Anforderungen und Statusinformationen in Übereinstimmung damit festzulegen, so daß Bus 7 und das Hostsystem nicht zuvor für unwichtige Ereignisübertragungen eingesetzt werden müssen.
- RSM 63 leitet mit den Zeitschlitzen synchrone Statuswechselaktivitäten zwischen TSR 53 und den Elementen, welche Sende- und Empfangsdaten verarbeiten, sowie zwischen TSR 53 und Statusregistern in RSM und INT. Übertragungen zwischen einigen dieser Statusregister und TSR sind bezüglich TSR richtungsgebunden (nur Lesen oder nur Schreiben), wie im folgenden näher erläutert wird.
- Die Register CCR und HPCR in RSM empfangen Nur-Lese-Übertragungen von TSR. Diese Register enthalten Informationen, die sich während der Verarbeitung für einzelne Kanäle nicht ändern (In TSR gespeicherte Informationen werden bei der Kanalkonfiguration aus dem IOP-/Host-System geladen und bis zur Rekonfiguration nicht mehr geändert); die an diese Register gesendeten Daten müssen daher nicht an TSR zurückgesendet werden.
- Das Register EOPISR in INT dient bei Nur-Schreib-Übertragungen an TSR als Quelle für Statusinformationen. Dieses Register enthält Statusinformationen, die Ereignisse bezeichnen, welche während der Kanalverarbeitung auftreten, und sein Inhalt wird in eine von 16 Pufferpositionen in TSR geschrieben, die dem betreffenden Kanal nach den Zeigerinformationen im Register CEISR zugewiesen sind. Die Behandlung der Zeiger und die Statusinformationen in den Speicherpositionen sowie die Art der Datenfelder in EOPISR erfolgt so, daß das Laden dieses Registers aus TSR niemals erforderlich ist.
- Andere Statuswechselaktivitäten zwischen TSR und den Verarbeitungselementen von IDLC können in beide Richtungen verlaufen. Selbstverständlich werden an TSR gerichtete Statusspeicherungsaktionen für Verarbeitungselemente von IDLC nur ausgeführt, wenn der zu Ende gehende Zeitschlitz einem aktiven Kanal oder Hyperchannel zugeordnet ist, und das Wiedereinlagern des Status aus TSR in diese Elemente findet nur statt, wenn der nächste Zeitschlitz einem aktiven Kanal oder Hyperchannel zugeordnet ist. Entsprechend wird bei der nachfolgenden Beschreibung von Fg. 3 die Erläuterung der Statuswechselaktivitäten für aufeinanderfolgende Zeitschlitze N und N+1 selbstverständlich der Status für Zeitschlitz N nur gespeichert, wenn dieser einem aktiven Kanal oder Hyperchannel zugeordnet ist, und der Status für Zeitschlitz N+1 nur eingelagert, wenn dieser Zeitschlitz einem aktiven Kanal oder Hyperchannel zugeordnet ist.
- Statuswechsel-Übertragungen werden von RSM in Bezug auf Sendeoperationen, Empfangsoperationen, synchrone Aspekte der Interrupt-Verarbeitung sowie Laden der globalen Konfigurationssteuervariablen zeitlich gestaffelt. RSM ermöglicht unterschiedlich lange Zeiträume für die Ausführung dieser Funktionen, bevor zugehörige Aktivitäten bezüglich RSR und die betroffenen Elemente eingeleitet werden.
- Wie bereits erwähnt empfängt RSM Impulse, die den Anfang des Zeitschlitzes signalisieren (BOS) und Impulse, die den letzten Zeitschlitz im Rahmen kennzeichnen (LSOF), über die Leitungen 94, die es RSM ermöglichen, sich und andere IDLC-Elemente auf die Statuswechselaktion vorzubereiten, von IF 4. Die Zeittoleranz für diese Vorbereitung macht es möglich, daß Elemente, deren Status gespeichert werden muß, in einen stabilen Zustand überwechseln können, so daß beim nächsten Erscheinen des gerade zu Ende gehenden Zeitschutzes eine eindeutige Kontinuität der Verarbeitung gewährleistet ist.
- In Fig. 3 ruft RSM im Rahmen solcher Vorbereitungsaktivitäten einen "Kanaltyp"-Teil der globalen Variablen CCR (Konfigurationssteuerungsregister) aus TSR ab (während der Phase P auf der in Fig. 3 mit "GLOBAL" bezeichneten Leitung). Dieser Teil definiert den Kanal- oder Hyperchanneltyp, der dem gerade beginnenden Zeitschlitz zugeordnet ist (Zeitschlitz N+1 in Fig. 3), und ermöglicht RSN bei einem Hyperchannel die Vorbereitung auf die Umwandlung einer Zeitschlitzangabefunktion RSM_TSI (auf die weiter unten noch näher eingegangen wird), die die Grundlage für die Zuordnung von Hyperchannels zu einem Referenzzeitschlitz dient, wie weiter unten noch zu sehen sein wird.
- Bei der konsekutiven Verarbeitung der Zeitschlitze N und N+1 gewährt RSM den an Sende-, Empfangs- und Interrupt-Verarbeitungsoperationen beteiligten Elementen gestaffelte Zeitspannen für die Durchführung ihrer Operationen für N, bevor die betrefenden Statuswechselaktivitäten eingeleitet werden (siehe mit "N" bezeichnete Teile der Sende-, Empangs- und Interruptleitungen in Fig. 3). Als Übergangssignal übergibt RSM den für die synchronen Aspekte von Sende-, Empfangs- und Interrupt-Verarbeitungsoperationen gestaffelte Zeitschlitzende-Impulse (EOS), wie im folgenden zu sehen sein wird.
- Die erste Verarbeitungsfunktion, die für Zeitschlitz N abgeschlossen wird, ist die Sendeverarbeitung (vergleiche Ende der Phase "N" auf der Sendeleitung in Fig. 3 mit Ende der Phase "N" auf anderen Leitungen). Entsprechend übergibt RSM die ersten EOS-Impulse an die Sende-Verarbeitungselemente TL1, TV und TFM. Nach Empfang des EOS-Signals gehen diese Elemente in einen stabilen Betriebszustand für den dem Zeitschlitz N zugeordneten Kanal über und senden "DONE"-Signale an RSM (ein Element, das bei Empfang von EOS unmittelbar einen stabilen Betriebszustand erreicht hat, sendet sein "DONE"-Signal sofort)
- Beim Empfang jedes "DONE"-Signals veranlaßt RSM TSR, die betreffende Elementverarbeitungsstatus-Information in einen Bereich in TSR, der dem Zeitschlitz N zugeordnet ist (einen Bereich, dessen Adresse direkt mit der Zeitposition von Zeitschlitz H im Zeitschlitzrahmen verknüpft ist, falls N als Referenzzeitschlitz eines Hyperchannels zugeteilt ist oder falls N einem Elementarkanal zugeordnet ist, und dessen Adresse anderweitig mit der Position des zugeordneten Referenzzeitschlitzes verknüpft ist, falls N einem Nicht-Referenzzeitschlitz eines Hyperchannels zugeordnet ist.)
- Anschließend werden die Sendeprozeßelemente (TL1, TV und TFM) in die Status für Kanal N+1 gesetzt, wenn der nächste Zeitschlitz N+1 einem aktiven Kanal oder Hyperchannel zugeordnet ist, und gehen in einen Haltestatus (Phase "H" der Sendeleitung in Fig. 3) über. Die Informationen, mit denen die Sendeprozeßstatus für Zeitschlitz N+1 von RSM aus einer Position in TSR ausgelesen wird, die entweder direkt diesem Zeitschlitz (wenn der Zeitschlitz als Referenzkanal eines Hyperchannels oder einen Elementarkanal zugeordnet ist) oder indirekt einem Referenzzeitschlitz (wenn N+1 ein Nicht-Referenzzeitschlitz eines Hyperchannels ist) zugeordnet ist. Nach kurzer Zeit im Haltestatus erhalten die Sendeverarbeitungselemente ein Startimpulssignal von RSM und beginnen mit der Verarbeitung für Zeitschlitz N+1 (Phase "N+1" auf der Sendeleitung)
- Die nächste Funktion, die die Verarbeitung für Zeitschlitz N beendet, ist der in den Elementen RL1, RV und RFM durchgeführte Empfangsprozeß. Diese Elemente erhalten gegen Ende ihrer "N"- Verarbeitungsphase EOS-Signale und bekommen etwas Zeit, um in den nächsten stabilen Verarbeitungsstatus überzugehen. Dann senden sie RSM die entsprechenden "DONE"-Signale (falls sie sich beim Empfang von EOS in einem stabilen Status befinden, senden sie das "DONE"-Signal sofort). Bei dieser Funktion gehen die Elemente jedoch in einen Haltestatus über, bevor ihr Status ein-/ausgelagert wird (so daß RSM mehr Zeit hat, Statuswechsel für Interruptprozesse zu steuern und globale Variablen für Zeitschlitz N+1 zu laden; siehe unten).
- Nach der Haltephase wird der Status der Empfangsverarbeitungselemente für die Zeitschlitze N und N+1 ein- bzw. Ausgelagert (Phase "S" der Empfangsleitung in Fig. 3). Dann erhalten diese Elemente Startsignal von RSM und beginnen mit der Verarbeitung für Zeitschlitz N+1. Wie beim Statuswechsel für die Sendeverarbeitung werden auch die Status der Empfangselemente für Zeitschlitz N (Zeitschlitz N+1) in einem TSR-Bereich abgespeichert (aus einem TSR-Bereich ausgelesen), der entweder direkt der Zeitposition des betreffenden Zeitschlitzes zugeordnet ist, falls dieser einem Elementarkanal oder als Referenzkanal eines Hyperchannels zugeordnet ist, oder der mit der Zeitposition eines Referenzzeitschlitzes verknüpft ist, falls der betreffende Zeitschlitz als Nicht-Referenzzeitschlitz eines Hyperchannels zugeordnet ist.
- Als nächstes beendet die Interrupt-Partition 64 (INT) ihre Verarbeitung für Zeitschlitz N; siehe Interrupt-Leitung in Fig. 3. Wie zu erkennen ist, arbeiten einige Logikteile von INT synchron und andere asynchron; an dieser Stelle wird nur auf synchron ablaufende zeitschutzbezogene Aktivitäten eingegangen. Zu einem geeigneten Zeitpunkt in Bezug auf den synchronen Interrupt-Prozeß für Zeitschlitz N übergibt RSM INT das EOS- Signal, woraufhin INT in einen stabilen Status überwechselt und das "DONE"-Signal sendet (falls INT sich bereit in einem stabilen Status befindet, wird das "DONE"-Signal sofort gesendet) An dieser Stelle wird der Status von INT (synchroner Teil) für den Zeitschlitz N gespeichert und der letzte Status von INT (synchroner Teil) für den Zeitschlitz N+1 geladen. Wie bei Sende- und Empfangselementen wird der gespeicherte Status für Zeitschlitz N (der geladene Status für den Zeitschlitz N+1) an eine Position in TSR geschrieben (von einer Position in TSR ausgelesen), die entweder dem Zeitschlitz N (N+1) oder einem Referenzzeitschlitz zugeordnet ist( falls Zeitschlitz N (N+1) einem Nicht-Referenzzeitschlitz eines Hyperchannels zugeordnet ist. Darin durchläuft der synchrone Teil von INT einen Haltestatus, empfängt ein Startsignal von RSM und beginnt mit der Verarbeitung für Zeitschlitz N+1.
- Die zuletzt endende Statusverarbeitungsaktivität für Zeitschlitz N ist das Auslesen (Nur-Lesen) der globalen Konfigurationssteuervariablen durch RSM und das Laden dieser Variablen in die Register CCR und HPCR (Phase "R" auf der globalen Leitung). Es ist zu beachten, daß kurz nach Abschluß dieser Aktion die Statuswechselübertragungen für die Empfangsverarbeitungselemente gestartet werden.
- Die Pfade 89 von SIO zu INT und den RAMs 52-54 werden in beide Richtungen benutzt. In der Richtung zu SIO (und über SIO zu Bus 7) ermöglichen diese Pfade es dem IOP-/Host-System, Statusinformationen von TSR und Registern in SIO und INT (speziell dem Register VHR in SIO und dem Register IHEISR in INT) zu sammeln. In umgekehrter Richtung (der sogenannten Host-Steuerungsschnittstelle) ermöglichen diese Pfade dem IOP-/Host-System, die Anfangsstatusregister und Steuerdaten in die RAMs 52-54 und in Register in den IDLC-Logikelementen zu schreiben .
- So kann der Host-/IOP-Komplex beispielsweise Statusinformationen in TSR einfügen, um für ausgewählte Kanäle einen Anfangsbetriebsstatus in Elementen des synchronen Teils von IDLC zu herzustellen. Der Vorteil dieses separaten Pfades besteht darin, daß er an der MIO-Schnittstelle nicht mit dem üblichen Übertragungspfad zusammentrifft, und daß jeder Kanal unabhängig von allen anderen Kanälen aktiviert und deaktiviert werden kann. Die Verarbeitungslogik im Host-/IOP-Komplex kann über diesen Pfad einzelne Elementregister und Speichermatrixfunktionen (zur Konfigurierung und/oder Steuerung von IDLC-Operationen) festlegen, während die Datenübertragung zwischen DMAC und Host-/IOP- Speicher gleichzeitig abläuft. So können zum Beispiel die Host/IOP-Prozessoren die Register ICR und HCR in SIO ändern, um IDLC für bestimmte Betriebsmodi (z.B. Rücksetzung in den Grundzustand) zu konfigurieren, und Register wie HPCR in RSM ändern, um Elemente wie INT dynamisch über Aktionen in Bezug auf bestimmte Interruptstatus-Warteschlangen in TSR zu informieren (siehe Beschreibung der Interrupt-Verarbeitungsoperationen in Abschnitt 5.6 und in den ausführlichen Beschreibungen der Partitionen INT und RSM weiter unten).
- Die oben erwähnte Verwendung von Pfad 89, um Elementstatusinformationen für ausgewählte Kanäle in TSR zu laden, wird im Zusammenhang mit Fig. 6 ausführlicher beschrieben. Es ist zu beachten, daß TSR 53 einen Block von Bereichen für die einzelnen Kanäle enthält, und daß es in dem einem Kanal zugeordneten Block mehrere Wortspeicherstellen gibt, die für "Zeitwechselwörter" "ABC--_TSON" reserviert sind, wobei ABC synchrone Verarbeitungselemente (z.B. RV, TV usw.) und TS das "Zeitwechselwort" bezeichnet und N den Wert 0 oder 1 besitzt. Ferner ist zu beachten, daß jeder Kanalblock Bereiche enthält, die für Steuerdaten (CCR, HPCR) zur Anpassung der Konfiguration und des Übertragungsprotokolls im betreffenden Kanal und für Statusinformationen (CEISR, EOPISR) zur Bezeichnung von Ereignissen, die dem Host-/IOP-System über Interrupts mitgeteilt werden können, reserviert sind.
- In Fig. 7 und 8 verwenden IOP/Host Pfad 89 zum Zugriff auf FI- FOR 52 und DMAR 54 und können so die DMA-Steuerparameter TDCR und RDCR initialisieren, die die Verarbeitung von IDLC stammender DMA-Datenübertragungen über Schnittstelle 35 bestimmen. Zu diesen Parametern zählen Steuerwörter, die zur Definition von Datenblocklängen und Byteabfolgen (TDCR1 und RDCR1) verwendet werden können, sowie Steuerwörter (TDCR3 und TDCR4, RDCR3 und RDCR4), die zur Definition von Operationen der DMAC-Partition für einzelne Kanäle benutzt werden können.
- TDCR3 enthält Adreßdaten, die die Speicherstelle im IOP-/Host- Speicher angeben, von bzw. zu der die Sendedaten übertragen werden. TDCR4 enthält eine DCB-Befehlsmatrix, in der die Sendeoperation definiert wird (mit möglichen Zwischenkettungangaben, um Operationen auf zusätzliche DCBs auszuweiten, die mittels IDLC DMAC-Aktionen verfügbar sind). RDCR3 und RDCR4 enthalten Adreßparameter, die die Grenzen eines kreisförmigen Pufferbereichs im IOP-/Host-Speicher, an den die empfangenen Daten übertragen werden, definieren.
- Im folgenden wird die mittlere Ebene der IDLC-Funktionen, die nicht an der Bildung und Verwendung von Hyperchannels oder erweiterten Kanälen beteiligt sind, beschrieben. Die mittlere Ebene der Bildung und Verwendung von Hyperchannels und erweiterten Kanälen folgt in Abschnitt 5.7.
- In einer ISDN-Umgebung mit primärer Übertragungsrate unterstützt IDLC 32 Kanäle mit einer maximalen Datenübertragungsrate von 64 000 Bit/Sekunde (64 kbps) pro Kanal im Vollduplexbetrieb oder mit einer Gesamtrate von 128 kbps in einer Richtung. Dies ist für eine Vollduplexübertragung von Daten oder digitalisierter Sprache in einem beliebigen Kanal ausreichend, und für höhere Datenübertragungsraten können Kanäle variabel zu Hyperchannels zusammengefaßt werden.
- Nach dem Einschalten setzt das IOP-/Host-System alle Register in IDLC- und L1-Schaltungen sowie alle Speicherpositionen in den RAMs 52-54 auf die Anfangswerte und aktiviert dann IDLC, indem ein Wert in das IDLC-Konfigurationsregister ICR in SIO geschrieben wird (auf dieses Register wird in der detaillierten Beschreibung von SIO weiter unten ausführlicher eingegangen). Alle diese Aktionen verlaufen über Bus 7 und SIO. Auf die Register in jeder logischen IDLC-Partition kann über nicht abgebildete Erweiterungen der Pfade 89 zugegriffen werden. SIO decodiert die Adressen der einzelnen RAM-Einheiten und Partitionsregister und übergibt geeignete Anforderungssignale an die Einheiten und Partitionen. Die Partitionen und RAM-Einheiten unterziehen diese Anforderungen zusammen mit Anforderungen von anderen Partitionen einer Arbitration senden nach Beendigung eine Bestätigung an SIO; daraufhin finden die relevanten Datentransfers (von IOP zu RAM-Einheitenadressen oder einzelnen Partitionsregistern) statt.
- IOP initialisiert dann die L1-Logik über Pfad 69 und führen Operationen über diesen Pfad aus, um zu überprüfen, ob die L1- Schaltungen Daten erfolgreich durch das Netzwerk übertragen können.
- An dieser Stelle empfängt RSM von L1-Schaltungen über BTDM IF 4 und Anschluß 94 Signale, die Kanalzeitschlitz-Übergänge signalisieren (sie oben erwähnten Signale BOS und LSOF), und steuert Statuswechseltransfers zwischen den anderen Elementen im synchronen IDLC-Teil und TSR. Außerdem wurden die anderen Elemente aktiviert und sind jetzt zur Verarbeitung der Daten bereit. Danach können einzelne Kanäle in IDLC aktiviert werden, indem geeignete Werte in die zugehörigen Register geschrieben werden (von IOP über SIO). Nach der Aktivierung eines Kanals beginnt IOP den Datentransfer in den L1-Schaltungen, indem diese veranlaßt werden, die Datenübertragung in den Kanal von IDLC anzufordern und die empfangenen Daten an IDLC weiterzuleiten. Alle Datentransfers an BTDM IF 4 erfolgen in bitseriellen Blöcken variabler Länge (wie oben erläutert) im Zeitschlitz des betreffenden Kanals, und die gesamte Verarbeitung der empfangenen und gesendeten Daten im synchronen Teil von IDLC findet nur während des jeweiligen Zeitschutzes statt.
- Die Datenübertragung erfolgt durch Abrufen der Daten aus dem IOP-Speicher mittels DMAC-Operationen, die durch in dem zugeordneten Kanalbereich in DMAR gespeicherte DCBs definiert sind, Transfer solcher Daten zu den betreffenden Kanalbereichen in FIFOR, weiteren Transfer der Daten durch TFM an TV und Verarbeitung der Daten in TV und T1 zur Erzeugung der erforderlichen Formate. Die Daten werden von TFM, TV und TL1 in Byte-Einheiten verarbeitet und als Antwort auf von L1-Schaltungen ausgehende individuelle Bittransfer-Anforderungen bitseriell über IF 4 übergeben. In einem Kanalzeitfenster kann bis zu 1 Byte (8 Bit) übertragen werden. An der IOP-Busschnittstelle 7 werden Sendedaten in 4-Byte-Einheiten übertragen, und in FIFOR besitzt jeder Kanal einen Pufferspeicherbereich, der 4 Byte aufnehmen kann.
- Der Empfang von Daten erfolgt durch umgekehrte Verarbeitung der Daten in RL1 und RV, den Transfer der resultierenden Daten an RFM und über RFM an die betreffenden Kanalempfangsbereiche in FIFOR sowie Weiterleitung der Daten von FIFOR an kreisförmige Pufferbereiche im IOP-Speicher durch Operationen von DMAC als Antwort auf in DMAR vorgegebene Steuerdaten. An IF 4 werden die Daten bitseriell als Antwort auf individuelle Anforderungen, die während des Kanalzeitschlitzes von L1-Schaltungen übergeben werden, empfangen. In einem Zeitschlitz kann maximal ein Byte übertragen werden. In RL1, RV und RFM werden die Daten in Byte- Einheiten verarbeitet. An der IOP-Busschnittstelle 7 werden die Empfangsdaten in 4-Byte-Einheiten übertragen.
- Bei Sendedaten im HDLC-Format beispielsweise generiert TV CRCS für abgehende Rahmen und übergibt die Daten an TL1. TL1 generiert Eröffnungs- und Schlußmarkierungen für jeden Rahmen, fügt Stopfbits ein, soweit diese zur Erhaltung der Transparenz (der Daten in Bezug auf Steuerzeichen) erforderlich sind und übergibt die Daten mit CRC und Markierungszeichen bitseriell an IF 4. Bei Empfangsdaten im HDLC-Format beispielsweise sucht RL1 nach Rahmeneröffnungs- und Schlußmarkierungen und löscht sie, erkennt und löscht Stopfbits in den Daten und sendet die Daten an RV. RV führt eine Adreßerkennung und CRC-Prüfungen durch, bevor die Daten an TFM weitergeleitet werden.
- Alle Transfers zwischen DMAC und Bus 7 erfolgen über MIO. MIO bearbeitet Transferanforderungen von DMAC durch Arbitration für den Bus und Festlegung der Reihenfolge von Bussteuersignalen, Adreßsignalen und Datensignalen für die Durchführung des Transfers.
- Interrupt -Anforderungen für kritische Kanalprozeßbedingungen werden von INT an RSM, RFM, TFM und TL1 übergeben. RSM meldet TS RAM-Paritätsfehler an INT. RFM und TFM sind Sammelstellen für Meldungen kanalbezogener Hardwarefehler (Busfehler, FIFO- Paritätsfehler usw.) an INT, die Ereignisse in den betreffenden Partitionen und in der DMAC-Partition betreffen. RFM fungiert auch als Sammelstelle für Interrupt-Anforderungen, die RL1 und RV betreffen, und TFM hat die entsprechende Funktion in Bezug auf TV. Anforderungen von RFM decken also alle "mitteilbaren" Kanalprozeßbedingungen ab, die innerhalb der Empfangs-Pipeline (DMAC, RFM, RV, RL1) festgestellt werden können, und Anforderungen von TFM und TL1 umfassen alle derartigen Bedingungen in der Sende-Pipeline (DMAC, TFM, TV, TL1)..
- Als Antwort auf solche Anforderungen assembliert INT während eines oder mehrerer Zeitschlitze des betreffenden Kanals die CEIS- und EOPIS-Wörter (Kanalfehler-Interruptstatus- und Prozeßende-Interruptstatuswörter). Die CEIS-Wörter beschreiben Kanalfehlerbedingungen, die EOPIS-Wörter hingegen Kanalübertragungsrahmen-Übergangsereignisse. Die CEIS-Wörter enthalten außerdem Adreßinformationen für das Auffinden von EOPIS-Wörtern.
- Diese Wörter werden durch den Statuswechselmechanismus in RSM von INT in TSR geschrieben. In TSR werden diese Statuswörter in Bereichen gespeichert, die den betreffenden Kanälen ausschließlich zugeteilt sind; dabei wird jedes EOPIS-Wort in einem von 16 Bereichen gespeichert, die als Warteschlange für EOPIS-Parameter zugeordnet sind. Der spezielle Bereich in der EOPIS-Warteschlange, in den das Wort geschrieben werden soll, wird bei jedem Zugriff durch Zeigerinformationen definiert, welche RSM von INT erhält. Die Warteschlange wird "kreisförmig" benutzt, d.h. der Zeiger rückt in Einheitenschritten bis zu einem letzten Bereich vor und springt von diesem wieder zum ersten Bereich. Die Zeigerinformationen werden auch von INT in dem CEIS- Statuswort gespeichert, das von RSM in TSR geschrieben wird, und steht so der IOP für Überwachungszwecke zur Verfügung. Das CEIS-Wort enthält außerdem Informationen, die die Anzahl der ausstehenden Wörter in der Warteschlange angeben, die von INT mit jedem neuen Eintrag aktualisiert wird.
- Für jedes solche Statuswort, das in TSR geschrieben wird, assembliert INT einen Vektor, der den zugeordneten Kanal bezeichnet, und sendet diesen zusammen mit einer Anforderung an SIO. SIO speichert den Vektor im Register VHR, aktiviert ein Interrupt-Signal an Bus 7 und stellt den Vektor nach Bestätigung von IOP in den Bus.
- Später decodiert IOP den Vektor, ermittelt den beteiligten Kanal und ruft über SIO das zugehörige CEIS-Wort ab. Anhand dieses Wortes stellt IOP fest, ob die EOPIS-Warteschlange noch ausstehende Einträge enthält. Ist dies der Fall, wenn IOP bereit ist, diese Parameter zu verarbeiten, ruft IOP über SIO einen oder mehrere Warteschlangeneinträge ab; dabei werden Adreßinformationen an SIO übergeben, die aus der Zeigerinformation im zuvor abgerufenen CEIS abgeleitet sind, und die CEIS-Information in TSR wird so geändert, daß die Anzahl der noch ausstehenden Einträge in der betreffenden EOPIS-Warteschlange richtig wiedergegeben wird.
- Zu einem solchen Zeitpunkt greift IOP ferner über SIO und den Programmsteuerpfad 89 auf das Register HPCR in RSM zu und ändert die Daten dort so, daß sie erkennen lassen, daß der Inhalt der zugehörigen EOPIS-Warteschiange des Kanals geändert wurde und daß außerdem die Anzahl der entnommenen Warteschlangeneinträge angegeben wird. INT stellt mit Hilfe dieser HPCR-Information fest, ob die Warteschlange nicht leer ist, d.h. ob ein weiterer Interrupt für die Warteschlange generiert werden muß.
- Wenn INT EOPIS-Wörter in die Kanalwarteschlangen schreibt und das zugehörige CEIS-Wort so aktualisiert, daß es die Anzahl der noch ausstehenden Einträge angibt, so seetzt INT bei Erreichen von 16 Einträgen im 16. Eintrag ein Bit, das signalisiert, daß die Warteschlange voll ist. Beim Abrufen dieses Eintrags erkennt IOP dieses Bit als Signal dafür, daß nachfolgende Einträge überschrieben worden sein können, d.h. daß die Daten über die Übertragungsrahmenereignisse im betreffenden Kanal unter Umständen unvollständig sein können.
- Die IOP kann einen Kanal deaktivieren, indem sie zuerst den Datentransfer auf diesem Kanal in der L1-Logik anhält und anschließend den Kanal in IDLC anhält, indem die Kanaltypbits im betreffenden Kanalsteuerungsregister (CCR) so gesetzt werden, daß der Wert einen inaktiven Kanal bezeichnet. Die IOP kann IDLC komplett deaktivieren, indem ein vorgegebener Wert in ein Modusfeld im ICR-Register geschrieben wird (ausführliche Informationen sind der detaillierten Beschreibung des SIO-Elementes weiter unten zu entnehmen).
- Mit einigen Ausnahmen, die an dieser Stelle erläutert werden, erfolgen Informationstransfers zwischen IDLC und externen Schnittstellen sowie zwischen Elementen innerhalb von IDLC durch Austausch von Anforderungs- und Bestätigungssignalen. Ausnahmen in Bezug auf das Senden und Empfangen von Daten gibt es an der BTDM-Schnittstelle und an der Schnittstelle zwischen RL1 und RV.
- An der BTDM-Schnittstelle muß TL1 ein Bit der Sendedaten innerhalb einer vorgegebenen Zeit nach dem Eintreffen einer Bittransferanforderung von L1-Schaltungen übergeben, und RL1 muß ein Empfangsbit innerhalb einer vorgegebenen Zeit, nachdem L1 signalisiert hat, daß sie dieses sendet, akzeptieren. Wenn beim Eintreffen einer Bittransferanforderung an IF 4 beide Datenbytepuffer in TL1 leer sind, wird TV eine Unterlaufbedingung gemeldet. Daraufhin sendet IV eine Interrupt-Angabe an INT. Entsprechend erzeugt RL1, wenn der (einzige) Datenpuffer in RL1 bei der Signalisierung eines Empfangsbits an IF 4 voll ist, eine Überlaufangabe, die dann über RV und RFM an INT übergeben wird. INT sammelt und speichert dann die betreffende Statusinformationen und generiert eine entsprechende Interrupt-Anforderung über SIO an IOP.
- An der Schnittstelle zwischen RL1 und RV gelten ähnliche synchrone Beschränkungen für den Datentransfer. RV muß nämlich ein von RL1 übergebenes Empfangsdatenbyte innerhalb einer bestimmten Zeit, nachdem RL1 die Übergabe dieses Bytes signalisiert hat, akzeptieren. Diese Zeit kann je nach Zeitschlitzphase an der BTDM-Schnittstelle unterschiedlich lang sein. Allgemein ist die zur Verfügung stehende Zeit entweder die früheste Zeit, in der ein weiteres Bit an der BTDM-Schnittstelle empfangen werden kann, oder die Zeit, zu der der RV-Status gespeichert wird, wobei die jeweils kürzere Zeit gilt (siehe Beschreibung der "DONE"-Meldungen in der nachstehenden Beschreibung von RSM).
- Alle anderen IDLC-Transfers erfolgen durch vollständige Handshake-Zyklen von Anforderung und Bestätigung. TFM überträgt Sendekanaldaten bitweise von einem entsprechenden 4-Byte-Puffer in FIFOR an TV. Jeder Transfer wird durch eine Anforderung von TV eingeleitet und mit einer Bestätigung von TFM abgeschlossen. Sobald in einer Operation, die nach den 4 Bytes nicht abgeschlqssen ist, das letzte von 4 Bytes aus dem FIFOR-Puffer übertragen ist, übergibt TFM eine Anforderung weiterer Daten an DMARQ. Auf asynchroner Basis werden Anforderungen in DMARQ von DMAC abgearbeitet, wobei DMAC in Zusammenarbeit mit MIO eine Arbitration für Bus 7 durchführt. Die Anforderungen greifen direkt auf den IOP-Speicher zu und übertragen 4 Byte weiterer Sendedaten an FIFOR. Je nach Größe von Bus 7 kann der 4-Byte- Transfer auf einmal oder in mehreren Etappen erfolgen; für DMAC erscheint der Transfer jedoch als eine einzige Operation. Nach Abschluß der Verarbeitung jedes Sendedatenbytes sendet TV eine Transferanforderung an TL1, die dann, wenn sie fertig ist, das Byte akzeptiert und eine Bestätigung schickt.
- Entsprechend fordert RV bei der Verarbeitung der Empfangsdaten eine Transferaktion von RFM an, wenn die Verarbeitung eines empfangenen Bytes beendet ist, und wenn RFM fertig ist, akzeptiert er das Byte und sendet eine Bestätigung. Das Byte wird in FIFOR in einem dem Kanal zugewiesenen 4 Byte großen Speicherbereich für Empfangsdaten gespeichert, und wenn dieser Bereich mit dem letzten von 4 Bytes voll ist, sendet RFM eine Anforderung an DMARQ. DMAC verarbeitet diese Anforderung asynchron und überträgt nach einer zwischengeschalteten Arbitration durch MIO für Bus 7 vier Byte aus FIFOR in einen festgelegten kreisförmigen Pufferbereich mit Direktzugriff in IOP.
- Es ist zu beachten, daß der IDLC-Aufbau so abgewandelt werden kann, daß mehrere verschiedene Schnittstellen für Bus 7 untergebracht werden können. Dazu muß nur der Aufbau von MIO und SIO geändert werden; eine Änderung der anderen Partitionen oder eine wesentliche Änderung der Gesamtanzahl der Schaltungen im Gerät ist nicht erforderlich.
- Nun folgt anhand von Fig. 5 eine Beschreibung der mittleren Ebene der Mittel, die in der IDLC zur Unterstützung der Bildung und Verwendung von Hyperchannels und erweiterten Kanälen eingesetzt werden. Weitere Details folgen weiter unten in ausführlichen Beschreibungen einzelner IDLC-Partitionen, die an der Bildung und Verwendung von Hyperchannels und erweiterten Kanälen beteiligt sind, und in einem späteren Abschnitt, in dem die Bildung und Verwendung von Hyperchannels ausführlicher beschrieben wird.
- Um die Bildung und Verwendung von Hyperchannels in IDLC zu verstehen, sollte man wissen, wie der Speicherplatz in den RAMs 52-54 (Fig. 4) benutzt wird. Dies ist in Fig. 6-8 allgemein dargestellt. Die Speicherplatzzuteilung für die einzelnen Kanäle ist in Fig. 6 für TSR 53, in Fig. 7 für FIFOR 52 und in Fig. 8 für DMAR 54 dargestellt. Wie diesen Abbildungen zu entnehmen ist, ist der adressierbare Speicherbereich in jeder RAM-Matrix in 32 Blöcke unterteilt, die 32 Tlelementaren Zeitmultiplexkanälen" (Kanal 0 bis 31) zugeteilt sind. Diese entsprechen in der Reihenfolge ihrer Nummern den 32 elementaren Zeitschlitzen, die in jedem Zeitmultiplexrahmen an BTDM IF 4 zyklisch wiederkehren. Diese Zuteilung ist fix; sie ist nicht vom Aktivitätszustand in den betreffenden Zeitschlitzen abhängig, solange diese nicht einem Hyperchannel zugeteilt sind.
- Innerhalb des für jeden Elementarkanal reservierten Blocks besitzt TSR die folgenden dedizierten Teilbereiche, die in Fig. 6 von oben nach unten erscheinen (die Erläuterung erfolgt exemplarisch anhand der speziellen Zuteilung innerhalb des Bereichs von Kanal 0): ein Teilbereich für die Speicherung eines Konfigurationssteuerungsregister-Parameters CCR für den betreffenden Kanal; Teilbereiche für die Speicherung von Zeitwechselstatuswort-Funktionen für die synchronen Pipeline-Partitionen TFM, TV, TL1, RV, RL1 und RFM (z.B. Statuswort TFM_TS1 für Partition TFM); einen Teilbereich für die Speicherung eines betreffenden Kanalereignisinterrupt-Statusregisterwortes CEISR; und 16 Teilbereiche, die eine Warteschlange zur Speicherung von Prozeßende-Interruptstatuswörtern (EOPISR01 bis EOPISR16) bilden. Details und Verwendung dieser Teilbereiche werden weiter unten in den ausführlichen Beschreibungen der logischen IDLC-Partitionen erläutert. Hier ist von Interesse, daß der CCR-Teilbereich ein CT-Feld enthält, in dem der betreffende Kanaltype definiert wird. Darauf wird unten bei der Beschreibung der Hyperchannel- Verwendung noch eingegangen.
- Innerhalb des (aus 4 Wörtern bestehenden) Blocks, der jedem Elementarkanal bzw. -Zeitschlitz zugeteilt ist, besitzt FIFOR folgende Teilbereiche (die Darstellung in Fig. 7 erfolgt exemplarisch anhand der speziellen Zuteilung für Kanal/Zeitschlitz 0): zwei Wortbereiche, die für die Speicherung der Sendedaten- Steuerungsregisterwörter TDCR1 und TDCR2 reserviert sind, sowie zwei Wortbereiche, die für die Speicherung der Empfangsdaten- Steuerungsregisterwörter RDCR1 und RDCR2 reserviert sind. Die Bereiche für TDCR2 und RDCR2 sind jeweils als Datenwarteschlangen für die Verarbeitung von Übertragungsdaten für die IDLC- Partitionen TFM und RFM reserviert; TDCR2 kann bis zu 4 Byte Sendedaten auf dem Weg vom externen IOP-Speicher (über DMAC) zu TFM aufnehmen, und RDCR2 faßt bis zu 4 Byte Empfangsdaten auf dem Weg von RFM zum externen IOP-Speicher (über DMAC). Die Wortbereiche für TDCR1 und RDCR1 dienen der Speicherung von Informationen, die von den betreffenden Speicherverwaltungspartitionen TFM und RFM zur Steuerung ihres Zugriffs auf die betrefenden Datenwarteschlangenbereiche (TDCR2 und TDCR2) benutzt werden.
- Innerhalb des für jeden elementaren Kanal bzw. Zeitschlitz reservierten Bereichs enthält DMAR 54 (Fig. 8) folgende Teilbereiche (vier Wörter) (exemplarisch für Kanal 0 dargestellt) zwei Wortbereiche für Sendedaten-Steuerregisterwörter (TDCR3, TDCR4) und zwei Wortbereiche für Empfangsdaten-Steuerregisterwörter (RDCR3, RDCR4). Die TDCR-Bereiche sind für Informationen zur Steuerung von DMAC-Operationen zum Abrufen von Sendedaten für den Kanal aus dem IOP-Speicher bzw. externen Speicher reserviert, die RDCR-Bereiche für Informationen zur Steuerung von DMAC-Operationen zum Schreiben der Empfangsdaten für den betreffenden Kanal in den IOP-Speicher bzw. externen Speicher.
- In Anbetracht der obigen Erläuterung ist zu bedenken, daß wenn ein Elementarkanal aktiv und nicht Teil eines Hyperchannels oder erweiterten Kanals ist (diese beiden Begriffe werden im folgenden austauschbar verwendet, so daß die Nennung eines dieser Begriffe für beide gilt), die dem betreffenden Kanal zugeteilten Unterbereiche in den RAMs 52-54 im Zusammenhang mit den Zeitpositionen der betreffenden BTDM-Zeitschlitze adressierbar sind. Mit anderen Worten, ein Faktor beim Auffinden jedes Bereichs in diesem Fall ist die Zeitposition des betreffenden BTDM-Zeitschlitzes; und wie bereits erwähnt wird diese Zeitposition durch eine synchron von RSM generierte Zeitschlitzangabe (RSM_TSI) gekennzeichnet.
- Gemäß der vorliegenden Erfindung wird ein Hyperchannel gebildet, indem mehrere Elementarkanäle bzw. -zeitschutze kombiniert werden und eine Viele-zu-Eins-Zuordnung zwischen einem Referenzzeitschlitz (dem zuerst auftretenden Zeitschlitz dieser Kombination) und den anderen Zeitschlitzen der Kombination hergestellt wird. Dabei müssen alle Speicherzugriffe (sowohl Zugriffe auf die internen RAMs 53-54 als auch von DMAC gesteuerte Zugriffe auf den IOP-Speicher) für die kombinierten Elementarkanäle bzw. -zeitschlitze in Zugriffe auf die für den Referenzkanal bzw. -zeitschlitz reservierten Bereiche umgewandelt werden.
- In Fig. 5 sind die an der Bildung und Verwendung der genannten Viele-zu-Eins-Hyperchannelzuordnung beteiligten IDLC-Elemente allgemein dargestellt. Das Register HCR in SIO mit der Bezugs- zahl 67h enthält Bereiche, die an bis zu 5 Hyperchannels in numerischer Reihenfolge vergeben werden können (diese werden weiter unten in der ausführlichen Erläuterung der Bildung und Verwendung von Hyperchannels näher erörtert). Jeder Bereich enthält ein 1 Bit umfassendes Feld, in dem angegeben ist, ob der betreffende Hyperchannel aktiv oder inaktiv ist, und ein 5 Bit umfassendes Feld, das die Zeitposition eines betreffenden Referenzzeitschlitzes des Hyperchannels angibt.
- Bei der Bildung und Aktivierung eines Hyperchannels werden Informationen in einen der HCR-Bereiche geschrieben (vom Host/IOP-Komplex), um die numerische Reihenfolge und den Referenzkanal bzw. den Referenzzeitschlitz des betreffenden Hyperchannels zu definieren. Diese Informationen steht anderen Partitionen einschließlich RSM und DMAC sofort zur Verfügung.
- Bei der Bildung und Aktivierung eines Hyperchannels werden auch Informationen in die CCR-Typfelder der konstituierenden Zeitschlitze geschrieben (der Begriff "konstituierende Zeitschlitze bezeichnet im folgenden die elementaren Zeitschlitze, die zum Hyperchannel kombiniert werden), um deren Zuordnung zu einem aktiven Hyperchannel anzuzeigen und die Numerierung des Hyperchannels zu bezeichnen. Diese Informationen werden vom Host/IOP-Verarbeitungskomplex über SIO in die TSR-Bereiche der konstituierenden Zeitschlitze geschrieben.
- Am Anfang jedes BTDM-Zeitschlitzes (gekennzeichnet durch BOS- und LSOF-Impulse auf Leitung 4b und 4f in Fig. 5) entnimmt RSM 63 dem CCR-Typfeld im betreffenden TSR-Bereich, ob der Zeitschlitz ein konstituierender Zeitschlitz eines aktiven Hyperchannels ist. Ist dies der Fall, benutzt RSM die Information in HCR 67h zur Umwandlung seines internen Zeitschlitzzählerwertes in eine extern manifestierte Zeitschlitzangabe (RSM_TSI), die der Zeitposition des zugeordneten Referenzzeitschlitzes entspricht. Da die RSM-Zeitschlitzangabe als Grund-Offset für die Adressierung der RAMs 52 und 53 bei Operationen des synchronen IDLC-Teils 50 (Fig. 4) verwendet wird, ist klar, daß bei der Verarbeitung von konstituierenden Zeitschlitzen eines Hyperchannels eine solche Adressierung sich auf den dem Referenzzeitschlitz zugeordneten Bereich bezieht.
- Operationen von DMAC 65C zum Transfer von Informationen zwischen dem IOP-Speicher bzw. externen Speicher und RAM 52 (bei bestimmten Kettungsoperationen, auf die später noch eingegangen wird, auch RAM 53) werden durch Anforderungen aufgerufen, die DMAC statisch von DMARQ 65Q übergeben werden. Diese Anforderungen entsprechen den Anforderungen, die RFM 62R und TFM 62T DMARQ während der synchronen Verarbeitung übergeben. DMARQ enthält diskrete Gruppen nach Positionen geordneter Register, die für Hyperchannels und Elementarkanäle reserviert sind, und Anforderungen von RFM und TFM werden von logischen Elementen von DMARQ an diese Register weitergeleitet und dort statistisch verarbeitet.
- der synchronen Verarbeitung für einen elementaren Zeitschlitz übergibt RSM DMARQ seine Zeitschlitzangabe (RSM_TSI). Bei konstituierenden Zeitschutzen eines Hyperchannels generiert RSM auch eine Angabe der Hyperchannel-Folgenummer, die DMARQ übergeben wird. Wenn eine Anforderung von TFM und/oder RFM an DMARQ übergeben wird, ermöglichen die Zeitschlitzangabe und die Hyperchannel-Folgenummer von RSM, die DMARQ über Leitungen übergeben werden, welche die an 63Q (Fig. 5) in allgemeiner Form dargestellt sind, es der DMARQ-Logik, die Anforderung(en) an die entsprechenden Registerpositionen zu leiten, von wo aus sie an DMAC übergeben werden. Anders ausgedrückt werden die Anforderungen für konstituierende Zeitschlitze eines Hyperchannels an Anforderungsregisterpositionen geleitet, die dem betreffenden Hyperchannel zugeordnet sind, und andere Anforderungen werden an Anforderungsregisterpositionen für Elementarkanäle geleitet.
- DMAC wählt die statistisch bearbeiteten DMARQ-Anforderungen nacheinander in einer vorgegebenen Prioritätsreihenfolge aus und verarbeitet sie, wobei Hyperchannels gegenüber anderen Anforderungen bevorzugt werden. Dabei entwickelt DMAC logische Zeigerfunktionen, bei der gerade verarbeiteten Anforderung zwischen Kanalzuordnung und Hyperchannelzuordnung unterscheidet.
- Eine dieser Funktionen, DMAC H-B_SEL, zeigt an, ob die aktuelle Anforderung einem Hyperchannel (H) oder einem Elementarkanal (B) zugeordnet ist. Bei Anforderungen für B-Kanäle wird ein zugehöriger 5 Bit langer B-Zeiger (DMAC_B_PTR) generiert, der die numerische Position des betreffenden Kanals (die der Zeitposition des zugeordneten BTDM-Zeitschlitzes entspricht) definiert. Bei Anforderungen für H-Kanäle (Hyperchannels) generiert DMAC einen zugehörigen 5 Bit langen Zeiger (DMAC_H_PTR), der die numenschen Abfolgen dieser Kanäle definiert.
- Bei der Ausführung der Transferoperationen greift DMAC auf die RAMs DMAR und FIFOR zu (FIFOR zum Lesen und Schreiben von Übertragungsdaten, DMAR für Steuerinformationen, die für den Zugriff auf IOP- bzw. externen Speicher benutzt werden). Bei diesen Zugriffen verwendet DMAC die oben genannten Zeiger und die Informationen in HCR zur Ermittlung des zu adressierenden Bereichs. Entsprechend verwendet DMAC bei Operationen in Bezug auf eine B-Kanalanforderung den entsprechenden B-Zähler zum Zugriff auf die Bereiche in FIFOR und DMAR, die dem betreffenden Elementarkanal bzw. -zeitschlitz zugeteilt sind. Bei Operationen für einen Hyperchannel verwendet DMAC den betreffenden H- Zeiger, um auf die Bereiche in FIFOR und DMAR zuzugreifen, die dem betreffenden Referenzzeitschlitz zugeteilt sind.
- Die Anforderungen für RFM und TFM werden in DMARQ separat statistisch bearbeitet und von DMAC separat verarbeitet. Eine Angabe, die zwischen den betreffenden mit dem Empfang zusammenhängenden Anforderungen und den mit dem Senden zusammenhängenden Anforderungen unterscheiden, wird von DMAC an DMAC_RCV_REQ (Wert 1 für Empfangsanforderungen und 0 für Sendeanforderungen) erzeugt und für DMAR als zusätzlicher Adressierungsfaktor verwendet.
- Bei Beendigung der Verarbeitung einer Anforderung übergibt DMAC DMARQ eine Rücksetzungsanforderung (DMAC_DMARQ_RCV_RESET oder DMAC_DMARQ_XMIT_RESET), die DMARQ an die entsprechende Statistikverarbeitungs-Registerposition leiten muß, die die entsprechende Anforderungsangabe enthält, mit der DMAC gerade arbeitet. Für diesen Zweck liefert DMAC DMARQ auch die zugehörige Hoder B-Zeigerauswahl und H- und B-Zeigerangabefunktionen, die zusammen mit der Rücksetzungsangabe effektiv auf die richtige Registerposition zeigt.
- Als Schlußbemerkung sei gesagt, daß DMAC bei der Berarbeitung einer B-Kanalanforderung eine Adressierungsausgabe DMAC_CHN_NBR generiert, die die betreffende Kanalnummer zur Verwendung als Adressierungsfaktor für FIFOR und DMAR bezeichnet. Andere von DMAC und DMARQ ausgeführte Operationen werden in der detaillierten Beschreibung der Bildung und Verwendung von Hyperchannels weiter unten erläutert.
- Wie bereits festgestellt enthält der Zeitwechsel-RAM TSR (Fig. 6) Blöcke von Speicherbereichen, die Elementarkanälen den in BTDM-Rahmen wiederkehrenden Zeitmultiplexschlitzen entsprechend zugeordnet sind. Im vorliegenden Ausführungsbeispiel gibt es 32 solche Kanäle/Zeitschlitze (Kanäle 0 bis 31) und 32 Bereichszuteilungen in TSR.
- Innerhalb jedes Kanalbereichs gibt es Teilbereiche, die für die Speicherung von Prozeßstatuswörtern für die Partitionen in den oben beschriebenen Verarbeitungs-Pipelines (für Senden und Empfangen) in synchronen IDLC-Teil 50 (Fig. 4) reserviert sind, d.h. für Prozeßstatuswörter für RL1, RV, RFM, TFM, TV und TL1. Diese Statuswörter sind z.B. mit TFM_TSL bezeichnet (wobei TFM die Partition und TSL ein Zeitwechselstatuswort bezeichnet). RV und RFM besitzen in jedem TSR-Kanalbereich zwei solche Teilbereiche für Zeitwechselstatuswörter, die anderen Partitionen jeweils einen.
- Bei aktiven Kanälen definieren diese Statuswörter den Verarbeitungsstatus der betreffenden Partitionen am Ende der letzten Wiederkehr des zugeteilten BTDM-Zeitschlitzes. Durch Aktionen, auf die weiter unten noch eingegangen wird, werden Statusinformationen zwischen den Statuswortbereichen und den betreffenden Partitionen übertragen, um die Kontinuität der Verarbeitung für jeden aktiven Kanal zu gewährleisten (siehe Beschreibung der RSM-Partition weiter unten).
- Jeder Elementarkanalbereich enthält auch Wort-Teilbereiche für die Parameter CCR (Konfigurationssteuerungsregister) und HPCR (HDLC-Protokollkonfigurationsregister), die die Betriebskonfiguration, den Aktivitätszustand und das Übertragungsprotokoll des betreffenden Kanals definieren.
- Schließlich enthält jeder Elementarkanalbereich 17 Wortbereiche für die Speicherung von Interrupt-Statusangaben für Übertragungsereignisse in den betreffenden Kanälen. Durch Aktionen, auf die weiter unten noch näher eingegangen wird, können solche Angaben vom IOP/Host-Komplex in Verbindung mit Interrupt-Anforderungen, die von IDLC übergeben werden, abgerufen werden (siehe ausführliche Beschreibungen von INT und SIO weiter unten) Ein solcher Bereich ist für eine Fehlerstatus-Wortfunktion CEISR (kanalbezogenes Fehlerinterrupt-Statusregister) reserviert, die in der Regel mit der Erkennung eines Paritätsfehlers bei der Übertragung von Informationen zwischen TSR oder FIFOR und den synchronen Verarbeitungspartitionen in Zusammenhang steht, und die übrigen 16 Bereiche sind als zyklische Pufferwarteschlangen für Ereignisstatuswörter EOPISR (Prozeßendeinterrupt-Statusregister) reserviert.
- Kanalereignis- und Fehlerstatusinformationen werden unter der Leitung der Interrupt-Partition INT gesammelt und gespeichert. Die für die Ereignisstatusinformationen zugeteilten TSR-Bereiche reichen für eine Warteschlange der Statusinformationen für bis zu 16 separat auftretende Ereignisse im betreffenden Kanal, wodurch die am IOP/Host-Komplex herrschenden zeitlichen Beschränkungen für das Abrufen solcher Informationen verringert werden. Für die Verwaltung dieser Statuswarteschlangen ist INT zuständig.
- Verarbeitungskanäle, die aktiv und gerade für die Übertragung bestimmt sind, werden von den IDLC-Verarbeitungselementen synchron mit dem Erscheinen der betreffenden Zeitschlitze an der BTDM-Schnittstelle bedient. Am Ende jedes Zeitschlitzes für einen aktiven Kanal arbeiten die betreffenden Verarbeitungselemente mit dem Ressourcenmanager RSM zusammen, um den letzten Verarbeitungsstatus in dem TSR-Bereich zu speichern, der diesem Kanal und dem betreffenden Element zugeordnet ist, und am Anfang eines Zeitschlitzes, der dem nächsten aktiven Kanal zugeordnet ist, arbeiten die Elemente mit RSM zusammen, um den Status, den der nächste Kanal bei seiner letzten Bearbeitung bzw. in seinem letzten Zeitfenster innehatte, wieder zu laden.
- Während jedes BTDM-Zeitschlitzes, der einem aktiven Kanal zugeteilt ist, und wenn ein Signal von RSM kommt, führen die IDLC- Elemente gemeinsam die Verarbeitungs- und Pufferoperationen für die Daten aus, die durch die Elemente in dem zugehörigen Kanal empfangen und gesendet werden. Die Daten werden an der BTDM- Schnittstelle bitseriell (in einem Zeitschlitz können mehrere Bits übertragen werden) und zwischen den synchronen Verarbeitungselementen bitparallel und byteseriell übertragen.
- Die Elemente, die eine direkte Schnittstelle zu BTDM bilden (TL1, RL1), führen mit den zu und von der Schnittstelle übertragenen Daten Serialisierungs- und Deserialisierungsfunktionen aus. Außerdem fungieren die an BTDM angeschlossenen synchronen Verarbeitungselemente (TV, TL1 in Senderichtung; RL1, RV in Empfangsrichtung) als Multitasking-Einheit zur Durchführung verschiedener Verarbeitungsfunktionen mit den in rahmengebundenen Formaten übertragenen Daten (z.B. für Kanäle, die für HDLC- Protokollübertragungen konfiguriert werden). Zu diesen Funktionen zählen derzeit das Einfügen und Löschen von Begrenzungszeichen und Füllmustern für formatierte Kanäle, das Einfügen und Löschen von Stopfbits in Daten, die in protokollgebundenen Kanälen übertragen werden (für die Aufrechterhaltung der Transparenz in Bezug auf Steuerzeichen), die Adreßerkennung beim Empfang zur selektiven Beschränkung der Verarbeitung auf Daten, die für den lokalen IDLC/IOP-Knoten geeignet adressiert sind, das Einfügen und Prüfen von CRC-Daten (zyklische Blockprüfung), usw.
- TSR ist über die abhängige E/A-Partition SIO auch für die IOP zugänglich, damit diese programmierbare Inititalisierungskonfigurations- und Prozeßstatusinformationen für die Elementarkanäle eingeben und Interrupt-Statusinformationen für die Kanäle abrufen kann.
- In Fig. 9 ist der physische und logische Aufbau von TSR dargestellt. TSR enthält einen 2048 x 36 Positionen großen statischen RAM 101 (siehe Erläuterungen zu Fig. 6 weiter oben und Erläuterung der Bereiche, die einzelnen Kanalparametern zugeteilt sind, sowie der nicht benutzten bzw. reservierten Bereiche weiter unten). Wenn die RAM-Fehlertoleranz von Bedeutung ist, sollten zwei 2048 x 36 RAMs vorhanden sein und der eine oder der andere benutzt werden, je nachdem, welcher absolut fehlerfrei ist. Als Minimum benötigt TSR eine Kapazität von 1024 x 36, wenn kein Reservebereich benötigt wird).
- Die Zugriffskontrollen umfassen die Logik 102, die Multiplexerschaltung 103 und das Register 104. Die Adressierung von Speicherbereichen innerhalb des RAM wird durch die Adreßmultiplexerschaltung 105 und das Adreßregister 106 kontrolliert. Daten werden über die Datenmultiplexerschaltung 107 und das Pufferregister 108 in TSR eingegeben und über das Pufferregister 109 aus TSR ausgegeben. Ausgaben von Register 109 gehen zusammen mit Bestätigungssignalen (TSR_RSM_ACK oder TSR_SIO_ACK), die die gewählte Partition bezeichnen, an Eingänge von RSM und SIO.
- Es ist zu erkennen, daß die Eingänge der Schaltungen 102, 103, 105 und 107 sowie die Ausgänge von Schaltung 102 in der Notation "A_B_C" dargestellt sind, wobei A und B abgekürzte Partitionsnamen sind und C eine Funktion bezeichnet. In dieser Notation, von der in den nachfolgenden Beschreibungen aller Partitionen ausgiebig Gebrauch gemacht wird, ist die zuerst aufgeführte Partition die Quelle eines Signals und die als zweite angegebene Partition der Bestimmungsort dieses Signals innerhalb der dargestellten Schaltung. In manchen Fällen ist die Zielpartition nicht explizit angegeben, es versteht sich aber von selbst, daß mindestens die der dargestellten Partition gemeint ist.
- "RSM_ADDRESS" in Fig. 9 ist also als "RSM_TSR_ADDRESS" und als Angabe einer Gruppe von Adreßsignalen von RSM , die über Multiplexer 105 an Register 106 zu übertragen ist, zu verstehen. Entsprechend sind alle Eingänge in Fig. 9, für die RSM als Quelle angegeben ist, als exklusiv an TSR gerichtet zu verstehen. Eine Ausnahme von dieser Regel bilden die TSR-Eingänge von SIO, da SIO auf alle der RAM-Partition TSR, FIFOR und DMAR zugreifen kann. Bei SIO-Eingängen in Fig. 9 sind alle RAM-Partitionen in IDLC Bestimmungsorte von Adreß-, Daten- und Paritätsfunktionen. Die Funktion, die TSR als exklusiven Bestimmungsort auswählt, ist entweder "SIO_TSR_RD" oder WVSIO_TSR_WR", je nachdem, welche der beiden aktiv ist (dies sind die einzigen Signale von SIO, bei denen der Bestimmungsort explizit angegeben ist).
- Die Multiplexerschaltungen 103, 105 und 107 wählen zwischen den betreffenden Einganssignalen an RSM und SIO. Multiplexer 105 wählt zwischen Adreßeingangssignalen von diesen Partitionen, und Multiplexer 107 wählt zwischen den von diesen Partitionen kommenden Paritätseingangssignalen. Die ausgewählten Eingangsdaten werden zusammen mit der entsprechenden Eingangspriorität in die durch das Eingangssignal bezeichnete Adreßposition von TSR geschrieben. Eingabedaten werden in 32 bitparallelen Gruppen "aktueller Daten" zusammen mit 4 bitparallelen Gruppen von Eingangsparitäten für jeweils 8 Bit (1 Byte) große Teilgruppen der aktuellen Daten übergeben. Daraus folgt, daß die Ausgänge zu Puffer 109 aus 4 Ausgangsdatenbytes mit den entsprechenden 4 Paritätsbits bestehen.
- Die Steuerlogik 102 ist eine Maschine mit finiten Zuständen, die die dargestellten Steuereingänge, die dargestellten Bestätigungsausgänge zu RSM und SIO sowie einen RAM-Steuerausgang 102A zur Steuerung der Zugriffsmöglichkeit auf den RAM und der Zugriffsrichtung (Lesen oder Schreiben) besitzt. Lese- und Schreibzugriffe werden im folgenden auch als Abruf- bzw. Speicheroperationen bezeichnet. Die Schaltungen der Maschine mit finiten Zuständen besitzen folgende möglichen Zustände und folgen den nachstehend aufgeführten Regeln über die Abfolge der Zustände.
- 1. Grundzustand - wird nur dann eingenommen, wenn "SIO_RESET" aktiv ist; der nächste Zustand (wenn "SIO_RESET" inaktiv wird) ist Zustand 0.
- 2. Zustand 0 (RSM-Eignerstatus) - bewirkt folgende Aktionen: Wenn "RSM_LOCK_UP" aktiv ist, wird "TSR_RSM_ACK" ausgegeben, damit RSM-Eingangssignale gegenüber SIO-Eingangssignalen bevorzugt werden. Letztere Funktion erfordert die Aktivierung der RSM-Eingangsauswahl an den Multiplexern 103, 105 und 107 sowie an nicht dargestellten Auswahlschaltungen innerhalb der Logik 102, die zwischen "RSM_RD_WR" und "RSM_REQ" auswählt (wobei "RSM_RD_WR" je nachdem, ob es sich um eine Schreib- oder eine Leseoperation handelt, entweder den einen oder den anderen Wert hat, und "RSM_REQ" sowohl für Lese- als auch für Schreiboperationen übergeben wird). War der letzte Zugriff ein Lesezugriff und fordert RSM einen Schreibzugriff an, wird eine Chipauswahlfunktion in der Steuerlogik 102 für RAM 101 verzögert (siehe Zustand 3 weiter unten). Dieser zusätzliche Zyklus ist notwendig, damit ausreichend Zeit für das Umdrehen von chipexternen Treibern zur Verfügung steht. Ist der aktuelle Zugriff ein Lesezugriff, wird der interne LAST_ACCESS_READ-Schalter 102L gesetzt, andernfalls wird er zurückgesetzt. Diese letzte Aktion ist erforderlich, um die Art des vorausgegangenen Zugriffs aufzuzeichnen (siehe Zustand 3 weiter unten). Ist RSM_LOCK_UP inaktiv, wird die SIO-Anforderung geprüft. Ist SIO_TSR_WR aktiv, werden die SIO-Daten und die Parität in RAM 101 übertragen (an die durch SIO_ADDRESS bezeichnete Adresse) und der Schalter 102L zurückgesetzt. Ist SIO_TSR_RD aktiv, werden alle Steuersignale erzeugt, aber der Zugriff auf RAM 101 verzögert (siehe Zustand 1 weiter unten).
- Nun wird zu Zustand 0, 1 oder 3 weitergerückt, wobei folgende Regeln gelten: Zustand 0 folgt, wenn RSM_LOCK_UP aktiv ist und andere Bedingungen für das Weiterrücken in Zustand 3 nicht gegeben sind, oder wenn keine Anforderungen anhängig sind. Zustand 1 wird eingenommen, wenn die einzige anhängige Anforderung eine SIO-Leseanforderung ist (SIO _-TSR_RD aktiv und RSM_LOCK_UP inaktiv). Zustand 3 wird eingenommen, wenn RSM_LOCK_UP und LAST_ACCESS_READ aktiv sind und RSM_RD_WR eine Schreibanforderung signalisiert.
- 3. Zustand 1 (SIO-Lese-Eignerstatus) - Wenn SIO_TSR_RD aktiv ist, wird der Lesezugriff auf die durch SIO_ADDRESS bezeichnete Position ermöglicht. Der nächste Zustand ist immer Zustand 2.
- 4. Zustand 2 (SIO-Bestätigung) - Für die SIO-Anforderung wird TSR SIO ACK erzeugt. TSR DATA ist dann, und nur dann, gültig, wenn SIO_TSR_RD aktiv war. Der nächste Zustand ist immer Zustand 0.
- 5. Zustand 3 (RSM-Überwachungsstatus) - Dieser Zustand verhindert gegensinnige Lese- und Schreibzugriffe durch RSM ohne daß genügend Zeit für die Stabilisierung von RAM-Eingaben und -Ausgaben dazwischen liegt. Dieser Zustand wird eingenommen, wenn RSM versucht, einen Schreibzugriff durchzuführen, während LAST_ACCESS_READ aktiv ist (siehe oben, Zustand 0). Wenn die zweite angeforderte Operation ein Schreibzugriff ist, kann dieser ohne Verzögerung in diesem Zustand durchgeführt werden. Der nächste Zustand ist Zustand 0. Die Ausgabe von RAM 101 bei Lesezugriffen, TSR_DATA, wird zusammen mit einer Bestätigung, in der eine der Partitionen ausgewählt wird, an RSM und SIO übergeben. Wenn RSN auf TSR zugreift, erzeugt er das Signal RSM_LOCK _-UP, wodurch er einen SIO-Zugriff abblockt und selber den Vorzug erhält. Versucht RSM einen Lesezugriff, wird automatisch der Empfang von TSR_DATA am betreffenden RSM-Eingang ermöglicht; andernfalls wird dieser Eingang ignoriert. Versuchen SIO und RSM gleichzeitig einen Lesezugriff, ignoriert SIO seinen TSR-Dateneingang, da TSR_SIO_ACK inaktiv ist. Als nächster Zustand folgt Zustand 0.
- In Fig. 6, in der ISDN-Umgebung mit Primärrate, sind die 2048 36-Bit-"Wort"-Bereiche in TSR (wie erwähnt beträgt die bevorzugte TSR-Größe 2048 x 36) gleichmäßig auf 32 Kanäle verteilt, so daß jedem Kanal 64 Wortbereiche zugeteilt sind. Jeder dieser Bereiche kann für die Speicherung von vier Datenbytes (ein Byte besteht aus 8 Bit) zusammen mit vier zugehörigen Paritätsbits benutzt werden. Die speziellen Wortbereichszuweisungen für Kanal 0 werden repräsentativ für alle Kanäle beschrieben. Adreßgrenzen sind in Hexadezimaldarstellung angegeben; die Grenzen für Kanalbereiche stehen links, die für Wortbereiche innerhalb des repräsentativ beschriebenen Kanals 0 stehen rechts.
- Jeder Kanalbereich enthält 27 Wortbereiche für spezielle Wortparameter und 37 reservierte Bereiche (die für Erweiterungen und abgewandelte Anwendungen zur Verfügung stehen). Zu den speziellen Wortparametern für jeden Kanal zählen: zwei Wörter, die die allgemeine Kanalkonfigurationen und die speziellen HDLC- Protokollkonfigurationen (CCR, HPCR) definieren; drei Wörter zum Speichern des Sendeelementstatus bei Zeitwechseln (TX-TS1), fünf Wörter zum Speichern des Empangselementstatus bei Zeitwechseln (3 RX_TS1, 2 RX_TS2), sowie 17 Kanalstatuswörter (CEISR und EOPISR01 - EOPISR16). Spezielle Bits und Funktionen jedes dieser Wörter werden weiter unten erläutert (Konfigurationswörter CCR und HPCR in der Beschreibung des RSM-Elements, Zeitwechselwörter in den Beschreibungen der einzelnen Sendeund Empfangselemente und Statuswörter in den Beschreibungen von INT- und SIO-Elementen).
- Die Ressourcenmanager-Partition RSM verwaltet die beim Zeitwechsel vorgenommenen Ein- und Auslagerungen der Statusinformationen sowie bestimmte andere Funktionen, auf die im folgenden eingegangen wird. Die zeitwechselbedingten Statuswechsel erfolgen zwischen RSR und den synchronen Verarbeitungselementen der Pipeline (RL1, RV, RFM, TFM, TV, TL1). RSM verwaltet auch die Kanalereignisstatus-Warteschlangen (EOPISR) in TSR und den Austausch bestimmter Steuerdaten mit INT, damit diese synchrone Verarbeitungsaspekte ihrer Funktion durchführen kann. RSM dient auch als logische Sammelstelle für die Erkennung und Protokollierung von Hardwarefehlerbedingungen für alle Teile der IDLC- Chipschaltungen und der L1-Schaltungen.
- RSM ist auch ein Schlüsselelement bei der dezentralen Steuerung der Hyperchannel-Verwendung, die hier von Interesse ist. In dieser Hinsicht liefert RSM (mit Hilfe der Informationen im HCR-Register in SIO) Zeitschutzangaben und andere bereits erwähnte Angaben, die effektiv die Viele-zu-Eins-Zuordnung zwischen konstituierenden Zeitschlitzen und Referenzzeitschlitzen eines Hyperchannels definieren. RSM überwacht die BTDM-Schnittstelle auf BOS- und LSOF-Impulse (Zeitschlitzanfangsimpulse bzw. Impulse für den letzten Zeitschlitz im Rahmen), die Referenzpunkte für jeden BTDM-Zeitschlitz zur Durchführung synchroner IDLC-Verarbeitungsoperationen bezeichnen (LSOF-Impulse bezeichnen den Anfang des letzten Zeitschutzes in einem Rahmen an der BTDM-Schnittstelle, und BOS bezeichnet den Anfang aller anderen Zeitschutze). Als Antwort auf einen Impuls bereitet sich RSM auf seine Rolle bei der Beendigung der den Operationen für den zu Ende gehenden Zeitschlitz und bei der Aufnahme der Operationen für den beginnenden Zeitschlitz vor.
- Diese Operationen werden selektiv nur für aktive Kanäle ausgeführt.
- Am Anfang jedes Zeitschlitzes führt RSM eine CCR-Vorprüfung für einen Teil des dem Zeitschlitz zugeordneten CCR-Wortbereichs durch (Fig. 6). Dies ermöglicht RSM die Unterscheidung zwischen aktiven und inaktiven Kanälen und bei aktiven Kanälen zwischen konstituierenden Zeitschlitzen von Hyperchannels und Zeitschlitzen, die individuell einem Elementarkanal zugeteilt sind.
- Ein Grund dafür, daß für inaktive Kanäle keine TSR-Austauschperationen stattfinden, ist (neben der Sinnlosigkeit solcher Aktionen), daß Host/IOP/SIO unabhängig voneinander die Möglichkeit zum Schreibzugriff auf die betreffenden Kanalstatusspeicherbereiche in TSR besitzen und deshalb die Unterlassung von RSM-Aktivitäten in Bezug auf TSR effektiv die Zeit, in der TSR dem Host bzw. der IOP zur Verfügung steht, verlängert und die Unterlassung solcher Aktivitäten für inaktive Kanäle die Möglichkeiten, daß Aktionen von RSM neu eingegangene gültige Informationen in TSR durch ungültige Statusfunktionen ersetzt, verringert. Ein weiterer Grund dafür, daß RSM nicht in TSR- Bereiche für inaktive Zeitschlitze schreiben darf, besteht darin, daß die so geschriebene Information in RSM einer Paritätsprüfung unterzogen wird; wenn RSM Statusinformationen für inaktive Kanäle, die ja Informationen nicht definierter Form wären, so könnte dies zu unnötigen Paritätsfehlerereignissen und unnötigen Interrupt-Aktionen dafür führen.
- Als Teil seiner Vorbereitung auf die Statusspeicherung überprüft RSM am Ende der Verarbeitung für einen aktiven Kanal, ob diese Verarbeitung für den betreffenden Kanal in jedem synchronen Verarbeitungselement einen stabilen Endzustand erreicht hat, der für die Speicherung geeignet ist. Dies geschieht durch Senden eines EOS-Impulses (Zeitschutzimpulses) an die synchronen Verarbeitungselemente und Überprüfen, ob die "DONE"-Signale von allen Elementen innerhalb einer vorgegebenen Zeitspanne nach dem EOS-Impuls angekommen sind. Diese "DONE"-Signale zeigen, daß die betreffenden Elemente innerhalb der vorgegebenen Zeit einen stabilen Betriebszustand erreicht haben.
- Synchrone Verarbeitungselemente, die dem Statuswechsel unterliegen (RL1, RV, RFM, TL1, TV, TFM und INT) übergeben während der Verarbeitung für einen aktiven Kanal ständig Statussignale an RSN. Nachdem EOS an ein Element gesendet wurde, verzögert RSM die Statusspeicherungsübertragung für das betreffende Element um die genannte vorgegebene Zeit. EOS wird selbstverständlich nicht gesendet, wenn der zu Ende gehende Zeitschlitz keinem aktiven Kanal oder Hyperchannel zugeteilt ist (so daß nur gültige stabile Zustandsdaten für die Speicherung in TSR verwendet werden). Am Ende dieser vorgegebenen Zeit schreibt RSM den betreffenden Elementstatus in TSR (speichert ihn in TSR), prüft aber auch, ob das entsprechende "DONE"-Signal gesendet wurde. Wurde ein "DONE"-Signal nicht rechtzeitig übergeben, generiert RSM intern ein logisches Zeitüberschreitungssignal, das von INT als Hardwarefehlerbedingung erkannt wird, die eine entsprechende Statusaufzeichnung und Interruptaktion für SIO/IOP erforderlich macht.
- RSM überwacht auch die Signaltransferaktivität an der BTDM- Schnittstelle, um sicherzustellen, daß diese richtig in Phase mit den Statuswechselaktivitäten in IDLC ablaufen. Wenn RSM eine Transferaktion erkennt, während der Status geladen oder gespeichert wird, generiert er ein Zeitfehlersignal RSM_L1L2_ERROR, das er an INT übergibt, und setzt die Verarbeitung fort. Die dadurch signalisierte Möglichkeit, daß Daten beschädigt wurden, wird schließlich an das IOP/Hostsystem gemeldet, das bei Bedarf Maßnahmen ergreift, um die Operationen der L1-Schaltungen so anzupassen, daß eine bessere Synchronität erreicht wird (siehe Beschreibung der BTDM-Schnittstelle weiter unten, und dort vor allem die Definition des Zeitfensters, während dessen blockweise Datentransfers zwischen L1 und IDLC erlaubt sind).
- Beim Laden der synchronen Elementstatusinformationen aus TSR synchronisiert RSM den Verarbeitungsbeginn für einen aktiven Kanal durch Übergabe von "START"-Signalen an die Elemente zu einem angemessenen Zeitpunkt nach EOS, um diese Elemente auf die Verarbeitung für einen erscheinenden oder wiederkehrenden Zeitschlitz des Kanals vorzubereiten. Diese Startsignale werden erst übergeben, wenn der Status für alle am Datenaustausch beteiligten Elemente geladen ist.
- In der exemplarischen ISDN-Umgebung mit Primärrate haben die Zeitschutze eine Mindestdauer von 3,8 Mikrosekunden, und die IDLC arbeitet mit einem 20 MHz-Takt, in Bezug auf den die Mindestdauer eines Zeitschutzes durch 76 Taktzyklen gemessen wird. In RSM wird die Zuteilung von Takten zu den verschiedenen Funktionen ermittelt, indem die Gesantzeit (die für alle TSR- Speicherungs- und Abrufaktionen benötigte Zeit) von der Mindestdauer des Zeitschlitzes subtrahiert wird und die verbleibenden Taktzyklen gleichmäßig unter allen anderen Zeitwechselfunktionen aufgeteilt werden. Da die Gesantzeit von der Verfügbarkeit von TSR abhängig ist, können SIO- oder Hostzugriffe auf TSR (für Interruptstatusabruf und/oder Kanalstatusinitialisierung) die Zeit verkürzen, die in einem Zeitschlitz für andere Funktionen übrig bleibt. Die Aufzeichnung der Gesamtzeit erfolgt über den Zykluszähler 121, wie weiter unten noch zu sehen sein wird.
- Wie in Fig. 10 zu sehen ist, besteht RSM aus folgenden Komponenten: Konfigurationsregister 115 und 116, Multiplexerschaltungen 117 und 118, Paritätsgenerierungsschaltung 119, Paritätsprüfungsschaltung 120, Zykluszähler 121, Zeitschlitzgenerierungsschaltungen 122 und Maschine mit finiten Zuständen 123. Die Maschine mit finiten Zuständen 123, auf die weiter unten ausführlicher eingegangen wird, enthält eine Adreßgenerierungslogik zur Ermittlung der Adressierung von TSR-Kanalbereichen und zur Unterstützung der Adressierung derselben für dynamisch variierende Hyperchannel-Zuteilungen.
- Die Register 115 und 116 sind 32-Bit-Register, die als Puffer für Konfigurationsdefinitionswörter dienen. Register 115, das Konfigurationssteuerungsregister (CCR), empfängt Konfigurationssteuerwörter, die die individuellen Kanalkonfigurationen in den Verarbeitungszeitschlitzen auf Zeitmultiplexbasis für die einzelnen Kanäle definieren. Register 116, das HDLC-Protokollkonfigurationsregister (HPCR) empfängt Steuerwörter, die Protokollkonfigurationen in den Verarbeitungszeitschlitzen, die den Kanälen zugeordnet sind, auf denen protokollformatierte Datenübertragungen stattfinden, definieren.
- Konfigurationswörter, die in diese Register übertragen werden können, werden in TSR gespeichert bzw. können dort gespeichert werden (siehe Fig. 6), und spezielle Bitfeldzuweisungen innerhalb jedes Wortes werden in Fig. 11 (für CCR) und Fig. 12 (für HPCR) dargestellt. Die Ausgänge der Register 115 und 116 bilden 32 bitparallele Kabelbahnen (als einzelne Leitungen dargestellt) zu den entsprechenden Eingängen von Multiplexer 117 und allen anderen autonomen Elementen im synchronen IDLC-Teil. Die in Fig. 11 und Fig. 12 dargestellten Bitfelder in diesen Registern haben folgende Definitionen und Verwendungen:
- - 13 nicht benutzte bzw. reservierte Bits (10 links und 3 rechts) - reserviert für Erweiterungen oder zukünftige Anwendungen.
- - 3 Bit - zur Unterscheidung zwischen folgenden Kanaltypen: B/D (bis zu 64 kbps, von Ebene 1 abhängig), H0 Nummer 1, 2, 3, 4 oder 5, H11 oder H12).
- - 4 Bit - besitzt 16 definierbare Werte, von denen 12 reserviert sind und 4 die folgenden Protokolle bezeichnen: SDLC, LapB, LapD, klar (ohne Protokoll; z.B. für Sprachkanäle).
- TDE (DMA für Senden aktivieren) - 1 Bit - aktiviert oder deaktiviert DMA-Sendesteueroperationen durch DMAC. Das Bit darf nur auf "aktiviert" gesetzt werden, nachdem TDCR1 - TDCR4 ordnungsgemäß iniitalisiert sind (siehe Beschreibung der DMAC-Partition weiter unten).
- - 1 Bit - aktiviert oder deaktiviert DMA-Empfangssteueroperationen durch DMAC. Das Bit darf nur auf "aktiviert" gesetzt werden, nachdem RDCR1 - RDCR4 ordnungsgemäß inutalisiert sind (siehe Beschreibung der DMAC- Partition weiter unten).
- - 1 Bit - aktiviert oder deaktiviert die Verarbeitung der empfangenen Daten gemäß dem angegebenen Protokoll. Bei Datenkanälen (z.B. SDLC/Lapb/Lapd) handelt es sich dabei um die Erkennung von Markierungszeichen, Abbrüche, Ruhezustände, Entfernen von Stopfbits, Zusammenfügen von Bits zu Bytes, Byte-Warteschlangenbildung in FIFOR, Zieladressenerkennung, CRC-Prüfung und den wortweisen Transfer (4 Byte auf einmal) in den IOP-Speicher. Bei protokollfreien Kanäle umfaßt diese Verarbeitung das Zusammenfügen von Bits zu Bytes, die Byte-Speicherung in FIFOR und den wortweisen Transfer (4 Byte auf einmal) in den IOP-Speicher. Die Verarbeitung der Daten erfolgt unter der Annahme, daß das höchstwertige Bit zuerst eintrifft.
- - 2 Bit - bewirkt eine der folgenden Aktionen: Abbruch nur bei Datenüberlauf (Empfang), Abbruchdatenmuster senden (sieben Einsen, gefolgt vom vorgegebenen Muster), Ruhemuster senden (15 aufeinanderfolgende Einsen), inverses Ruhemuster senden (15 aufeinanderfolgende Nullen). Das Feld ist nur gültig, wenn der Protokollcode eines der Protokolle SDLC, LapB oder LapD bezeichnet. Wenn AR eine der drei letztgenannten Aktionen bezeichnet, muß das TDE-Bit den Wert 0 (deaktiviert) und das TE-Bit den Wert 1 (aktiviert) haben.
- - 1 Bit - bei Abbrüchen zwischen Rahmen; bewirkt je nach Bitwert entweder die Erzeugung von Interrupts oder löst keine Aktion aus.
- - 1 Bit - betrifft DMAC-Operationen während der DBC-Kettung beim Senden. Je nach Bitwert wird DMAC veranlaßt, entweder eine Reihe von "Füllzeichen" ('01111110') zwischen die geketteten Daten oder ein "Ruhemuster" ('111...111'; mindestens 15 Einsen) zwischen Endmarkierung und Anfang der neuen verketteten Daten einzufügen. Die Bitfunktion ist nur gültig, wenn PC eines der Protokolle SDLC, LapB oder LapD bezeichnet.
- - 1 Bit - zur Auswahl des Füllmusters (Füllzeichen oder Ruhemuster), das zwischen Datenprotokollrahmen eingefügt werden soll (siehe Definition von ICS).
- - 2 Bit - bewirkt die selektive Weiterleitung von Empfangsdatenrahmen je nach Feldwert. Folgende Möglichkeiten stehen zur Verfügung: deaktiviert (alle Rahmen werden weitergeleitet), Weiterleitung 1 (nur Rundspruchrahmen und Rahmen mit einer aus einem einzigen Byte bestehenden Zieladresse werden weitergeleitet), Weiterleitung 2 (nur Rundspruchrahmen und Rahmen mit einer aus zwei Byte bestehenden Zieladresse werden weitergeleitet), Weiterleitung 3 (nur Rahmen mit Rundspruchadressen für SDLC und Lapd werden weitergeleitet [da für LapB und protokollfreie Kanäle keine Rundspruchadressen existieren, werden in solchen Kanälen alle Rahmen weitergeleitet]). Die Optionsfeldwerte wind nur gültig, wenn der PC-Wert eines der Protokolle SDLC, LapB oder LapD bezeichnet. Rundspruchadressen werden anerkannt, wenn sie folgende Merkmale aufweisen: das erste Byte nach dem Eröffnungskennzeichen ist Hex "FF" (für SDLC), das zweite Byte nach dem Eröffnungskennzeichen ist Hex "FF" (für LapD), keines (für LapB).
- - 1 Bit - aktiviert oder deaktiviert den Transfer von Sendedaten aus FIFOR. Wenn TE deaktiviert ist, werden an BTDM IF keine Markierungen, Abbrüche, Ruhezeichen oder CRC-Prüfsymbole übertragen. Ist TE aktiviert, so werden Daten- und Rahmensymbole an BTDM IF auf Anforderung der L1- Hardware übertragen.
- - 1 Bit - wenn dieses Bit aktiv ist, werden Daten an der BTDM-Schnittstelle in inverser Form gesendet und empfangen (andernfalls in ihrer wahren Form). Die Aktivierung dieses Bits soll den eingeschrnkten 64kbps-Betrieb unterstützen. Wenn dieses Bit aktiv ist, müssen sowohl ICS als auch IFS deaktiviert sein, um Übertragungen von mehr als 7 aufeinanderfolgenden Nullen auf der Übertragungsstrecke zu vermeiden.
- - 1 Bit - signalisiert, daß der SWRC-Wert gültig ist. IOP schaltet den Wert dieses Bits jedesmal um, wenn sie das SWRC-Feld im Zusammenhang mit dem Abrufen von Interruptstatusinformationen aus TSR aktualisiert. Dieses Bit ist nur gültig, wenn das QM-Bit in ICR (siehe Beschreibung von SIO weiter unten) aktiviert ist.
- - 5 Bit - wird von IOP verwendet, um der INT-Partition die Anzahl der Statuswörter mitzuteilen, die nach einem Interrupt aus der 16-Wörter-Warteschlange EOPISR für den Kanal in TSR ausgelesen wurden. INT stellt mit Hilfe dieses Zählerwertes fest, ob weitere Interrupts für den aktuellen Warteschlangeninhalt generiert werden müssen. Das Feld ist nur gültig, wenn das QM-Bit in ICR auf "aktiv" gesetzt ist.
- - 16 Bit - dient zur Programmierung der speziellen Adresse, die erkannt werden soll, wenn das ARO-Feld in CCR einen Wert besitzt, der eine 1- oder 2- Byte-Adreßerkennung verlangt. Bei der 1-Byte-Adreßerkennung müssen die oberen 8 Bits in diesem Feld den Stationsadreßwert angeben und die unteren 8 Bits den Wert 0 haben. Bei der 2- Byte-Adreßerkennung umfaßt der Stationsadreßwert das gesamte Feld. Dieses Feld ist nur gültig, wenn der PC-Parameter in CCR eines der Protokolle SDLC, LapB oder LapD bezeichnet. Beim Empfang von LapD wird das Befehls-/Antwortbit (das unmittelbar nach dem niedrigstwertigen Bit im ersten Byte des Rahmens kommt) von den Empfangspartitionselementen automatisch maskiert, und der Rahmen wird nur weitergeleitet, wenn die übrigen sieben Bits in diesem Byte (bei der 1-Byte-Adreßerkennung) oder diese Bits und die Bits im nächsten Byte (bei der 2-Byte- Adreßerkennung) mit dem LSA-Wert übereinstimmen, oder wenn ein Rundspruchmuster erkannt wird.
- Zusätzlich zu den Eingängen aus den Registern 115 und 116 besitzt Multiplexer 117 zehn weitere Eingänge, an denen 32 Bit parallel übertragen werden, insgesamt also 12 Eingänge. Der Multiplexer 117 in Übereinstimmung mit nichtdargestellten Auswahlsteuereingängen von Logik 123 so betrieben, daß immer nur ein Eingang mit dem Ausgang 125 verbunden ist. Die anderen zehn Eingänge dienen zum Transfer von Zeitwechselwörtern, die gespeichert (in TSR geschrieben) werden sollen; drei davon kommen von Sendeverarbeitungselementen (TL1, TV, TFM), fünf von Empfangsverarbeitungselementen (einer von RL1 und jeweils zwei von RV und RFM), und zwei von INT (CEISR und INT_EOP).
- Der Multiplexerausgang 125 ist an den RSM_DATA-Eingang von TSR, den Paritätsgenerator 119 und SIO angeschlossen. Der Ausgang von Paritätsgenerator 119 ist mit den RSM_PARITY-Eingängen von TSR und SIO verbunden. Wenn RSM Schreibauswahleingangssignale an TSR gesendet hat (RSM_TSR_DR_WR und RSN_LOCK_UP aktiv, während TSM_TSR_REQ inaktiv ist), wird der zusammengesetzte 36 Bit lange Ausdruck, der von RSM_DATA und RSM_PARITY gebildet wird, an eine Stelle in TSR geschrieben, die durch einen zugehörigen RSM_ADDRESS-Ausgang der Logik 123 bezeichnet wird. So kann die Logik 123 im Verlauf eines Zeitschlitzes mehrmals den Multiplexer 117 und die Zugriffskontrollen von TSR benutzen, um einige oder alle Parameter, die dem Multiplexer übergeben werden können, sequentiell zu speichern und dadurch die verschiedenen Statusspeicherungsoperationen für den Elementstatuswechsel ausführen.
- RSM selbst ist keinem Statuswechsel in TSR ausgesetzt, sondern ruft bei der Vobereitung auf den Zeitschutzübergang nur CCR und HPCR in einer Nur-Lese-Operation ab. Die in den zugehörigen Registern gespeicherten Werte werden nicht wieder in TSR zurückgeschrieben, da sie sich im Verlauf eines Zeitschutzes nicht ändern. Sie sind jedoch zu bestimmten Zeiten für den Host/IOP-Komplex von Interesse und werden deshalb über Multiplexer 117 und Bus 125 der SIO-Partition zugänglich gemacht.
- Multiplexer 118 empfängt TSR_DATA-Ausgaben, die das Ergebnis von RSM-Lesezugriffen auf TSR sind, und verbindet sie selektiv mit dem Zeitwechselstatus-Ladebus (RSM_TS_BUS) 126, der an Eingänge aller vom Zeitwechsel betroffenen Elemente angeschlossen ist. Spezielle Elemente zum Empfangen einzelner Ausgaben werden durch die RSM_XXX_LOAD-Ausgänge (wobei XXX für die Abkürzung des Zielelements steht) der Logik 123 angegeben. So können die aus TSR ausgelesenen Statuswörter an die betroffenen Elemente verteilt werden.
- Eingangssignale von TSR an den Multiplexer 118 gehen auch den Paritätsprüfungsschaltungen 120, wo sie geprüft werden. Wird ein Paritätsfehler erkannt, aktivieren die Schaltungen 120 einen von zwei Fehlermeldungsausgängen (TSR_PARITY_ODD oder TSR_PARITY_EVEN), je nachdem, ob der Zahlenwert, der dem vom Fehler betroffenen Kanal zugeordnet ist, gerade oder ungerade ist; dieser Zahlenwert wird über die Schaltungen 122 und 123 ermittelt. Diese Paritätsfehlermeldungen werden an die INT- Partition gesendet, um eine Fehlerinterrupt-Aktion auszulösen, und da Aktivitäten von INT sich über aufeinanderfolgende Zeitschlitze für Aktivitäten der Empfangs- und Sendeelemente erstrecken, wird die von den beiden Ausgängen ermöglichte Unterscheidung zwischen gerade und ungerade benötigt, damit INT den Fehler dem richtigen Kanal zuordnen kann.
- Multiplexer 118 empfängt auch Eingangssignale vom SIO_DATA- Ausgang von SIO, um diese Ausgangssignale an die vom Zeitwechsel betroffenen Elemente zu verteilen. Diese Funktion steht nur für Diagnosezwecke zur Verfügung, da ja als normale Quelle für Statusladeoperationen TSR verwendet wird. Im Zusammenhang mit der Aktivierung von SIO_DATA sendet SIO Statussteuerungs- Eingangssignale SIO_RESET an die Logik 123, um RSM auf die richtigen Anfangszustände zu konditionieren, und Eingangssignale SIO_RSM_RD, SIO_ADDRESS und SIO_RSM_WR, um die Verteilung von SIO_DATA an die vom Zeitwechsel betroffenen Elemente über RSM-Multiplexer 118 zu steuern. Als Antwort auf diese RD- und WR-Eingangssignale decodiert RSM die Adresse und sendet die entsprechenden Steuerungs-Eingangssignale an den Multiplexer 117 und das Zielelement (an das letztere wird RSM_XXX_LOAD gesendet). Dies ist nur zulässig, wenn RSM keinen echten Zeitkanalstatuswechsel zwischen TSR und den Elementen durchführt.
- Zykluszähler 121 wird zur Ermittlung des aktuellen Status in jedem Zeitschlitz verwendet. Er unterteilt die verfügbare Zeit in jedem Zeitschlitz (mindestens 3,8 Mikrosekunden) in Intervale für die Nachverarbeitung des vorausgehenden Zeitschutzes, variable TSR-Zugriffszeiten, Vorverarbeitung für den folgenden Zeitschlitz und Datentransferzeiten. Ein Überwachungsmechanismus in der Maschine mit finiten Zuständen stellt sicher, daß Datentransfers nur stattfinden, wenn die betreffenden Partitionen darauf vorbereitet sind. Zähler 121 wird bei Empfang von L1_LSOF (letzter Zeitschlitz im Rahmen) oder L1-BOS (Zeitschlitzanfang) von der BTDM-Schnittstelle zurückgesetzt; letzteres Signal weist darauf hin, daß das Ende des aktuellen Zeitschlitzes bevorsteht und bald das nächste beginnt. Um einen Bereich verschiedener Zeitschlitzdauern (in anderen Anwendungsumgebungen von IDLC) zu ermöglichen, wird Zeiger 121 innerhalb dieses Bereichs von Überlaufen abgehalten.
- Die Zeitschlitzgenerierungslogik 122, die zwei Register und einen 6-Bit-Zähler umfaßt, bestimmt die Zuordnungen zwischen Zeitschutzen, die an der BTDM-Schnittstelle und den IDLC- Verarbeitungskanälen erscheinen. Wegen der variablen Hyperchannel-Abbildung in IDLC können individuelle Zeitschlitze an der BTDM-Schnittstelle nicht identisch auf einzelne Kanäle abgebildet werden (d.h. für einige Kanäle erfolgt eine Viele-zu-Eins- Zeitschutzabbudung). Die Logik 122 empfängt die L1_LSOF- und L1-BOS-signale von der BTDM-Schnittstelle zusammen mit den Abbildungssteuerungs-Eingangssignalen von der Logik 123 und sendet Ausgangssignale an die Logik 123, die die aktuellen Kanal/Zeitschlitzzuordnungen angeben. Eine Erhöhung des Zeigers in der Logik 122 und die entsprechenden Hyperchannel-Abbildungen werden durch die Adreßgenerierungsfunktionen innerhalb der Logik 123 bestimmt, die zumindest teilweise durch das CT-Feld (Kanaltyp) in CCR 115 bedingt sind.
- Der Zeitschlitzgenerator 122 sendet auch drei Angaben an die DMARQ-Partition. Dabei handelt es sich um eine 5 Bit lange Zeitschutzangabe RSM_TSI, eine 5 Bit lange H0-Angabe RSM_DMARQ_H0 und eine 1 Bit lange H1-Angabe RSM_DMARQ_H1. Die TSI-Angabe bezeichnet den BTDM-Zeitschlitz, der dem gerade im synchronen Teil verarbeiteten Kanal zugeteilt ist. Die H0- und H1-Angaben, die von der Logik 123 über Verbindungen der letzteren mit den Ausgängen des Kanaltypfeldes CT in CCR 115 (Fig. 11) abgeleitet werden, dienen zur Identifikation von H0- und H1-Hyperchannelzuweisungen aktueller Zeitschlitze (siehe Beschreibung des CCR-Feldes weiter oben und Beschreibungen von DMARQ und Hyperchannels weiter unten).
- Die Maschine mit finiten Zuständen 123 durchläuft die folgenden Zustände mit den entsprechenden Ausgangseffekten wie nachstehend beschrieben. In Bezug auf TSR-Abrufoperationen ist zu beachten, daß die abgerufenen Daten zwei Zustände nach dem Zustand, in dem die Abrufoperation eingeleitet wurde, verfügbar sind.
- In diesem Zustand wird ein Zeitschlitzübergangssignal von BTDM IF (L1_BOS oder L1_LSOF) abgewartet und festgestellt, ob der interne Moduswert (der Wert, der den aktuellen Betriebsmodus von RSM definiert) aktualisiert werden muß. Der Moduswert wird nur erfaßt und aktualisiert, wenn der Zähler, der den nächsten Zeitschlitz angibt, den Wert Null hat, so daß RSM den (von SIO/Host gesetzten) Rücksetzungsmodus nicht innerhalb eines ISDN-Rahmens verläßt. In diesem Zustand wird Zykluszähler 121 zurückgesetzt, und ein SIO-Zugriff auf RSM-Register und TSR ist zulässig. Nach dem L1-Signal ist der nächste Zustandsübergang von aktuellen Modus abhängig. Im "Rücksetzungsmodus" findet kein Übergang statt. Im "Diagnosemodus" folgt Zustand 2, und im "Normalmodus" (weder Rücksetzungs- noch Diagnosemodus) folgt Zustand 0.
- Zugriffskontrollen auf TSR werden aktiviert, um CCR für den Kanal, der dem nächsten Zeitschlitz zugeordnet ist, abzurufen. Dies ist in der Regel eine Vorausleseoperation, in der nur ein kleiner Teil von CCR, speziell das 3 Bit lange Kanaltypfeld CT, tatsächlich von RSM abgerufen und verwendet wird. Diese Information wird nur dafür verwendet, daß die Logik feststellen kann, ob der nächste Kanal aktiv ist. Wie bereits erwähnt sind die abgerufenen Informationen bei dieser und anderen Abrufoperationen erst an RSM verfügbar, wenn zwei Zustände oder interne Taktzyklen nach dem Einleiten des Abrufs verstrichen sind. Bei diesem und anderen RSM-Zugriffen auf TSR wird RSM_LOCK_UP erzeugt, um bevorzugten Zugriff auf TSR zu erhalten. Nach der Rücksendung von TSR_ACK hat RSM effektiv die totale Kontrolle über die Schnittstelle zu TSR und kann alle erforderlichen Zu- griffsoperationen ohne Zwischenschaltung von SIO durchführen. Bei diesem und anderen Lesezugriffen auf TSR werden RSM_TSR_RD_WR und RSM_REQ ausgegeben, wobei letzteres die Operation als Abruf-/Leseoperation ausweist. Dieser Zustand wird beibehalten, bis TSR_ACK aktiv ist; dann wird der nächste Zustand, nämlich Zustand 23, eingenommen.
- In diesem Zustand wird auf einen einzelnen Abruf aus TSR gewartet, in dessen Verlauf das CCR für den nächsten zu bearbeitenden Kanal aus TSR in den TSR_DATA-Bus ausgelesen wird (auch hier sei darauf hingewiesen, daß die abgerufenen Daten vom Beginn der Abrufoperation an erst mit einer Verzögerung von zwei Zustandszyklen verfügbar werden). Es folgt Zustand 31.
- Das CT-Feld des CCR-Wortes, das bei TSR_DATA erscheint, steht in einem internen "vor-CCR-Register" in der Logik der Maschine mit finiten Zuständen. Wie bei allen Datenabrufoperationen von TSR nehmen die Paritätsprüfungsschaltungen 120 eine Paritätsprüfung vor. Paritätsfehlerausgaben dieser Schaltungen bilden Eingangssignale der INT-Partition und sind haben eine Kennzeichnung, die angibt, ob sie in einem Zeitschlitz mit gerader Nummer oder in einem Zeitschlitz mit ungerader Nummer aufgetreten sind (TSR_PARITY_ERROR_ODD oder TSR_PARITY_ERROR_EVEN). Da Aktivitäten von INT sich über Teile aufeinanderfolgender Zeitschlitze in Bezug auf die entsprechenden Aktivitäten anderer Partitionen erstrecken, ist diese Unterscheidung wichtig, damit INT den Fehler dem richtigen Kanal/Zeitschlitz zuordnen kann. Es folgt Zustand 25.
- Die Vor-CCR-Schalterbits werden geprüft, und RSM konditioniert sich für die Adressierung von TSR in Abhängigkeit von den Kanaltyp-Bits (CT) im Vor-CCR. Einige Kanäle werden beispielsweise in einzelnen BTDM-Zeitschlitzen verarbeitet (gewöhnliche B- und D-Kanäle sowie Sprachkanäle), andere (Hyperchannels) hingegen umfassen mehrere Zeitschlitze. Die Vor-CCR-Prüfung ermöglicht es RSM alsoffestzustellen, auf welchen Kanaladreßblock in TSR er jetzt zugreifen muß. Dies wird weiter unten bei der Erläuterung des HCR-Registers in der Beschreibung von SIO noch deutlicher Außerdem unterscheiden die Aktivierungsbits im Vor- CCR zwischen aktiven und inaktiven Kanälen, und bei inaktiven Kanälen werden Operationen zum Speichern und Laden von Statusparametern unterdrückt, so daß TSR für andere Zwecke verfügbar ist (z.B. für SIO-Datentransfers zum oder vom IOP/Host- Komplex. In diesem Zustand wartet die Logik mit Hilfe der Daten im Zykluszähler 121 ab, bis 29 interne Taktzyklen seit dem Empfang von L1_BOS oder L1_LSOF verstrichen sind, und geht dann in Zustand 2 über.
- Wenn der vorherige Kanal (der Kanal, dem der Zeitschlitz vor der BTDM-Angabe) aktiv ist, werden Kontrollen für den Schreibzugriff auf TSR aktiviert (RSM_LOCK_UP und RSM_TSR_RD_WR) und ein erstes Statuswort von TFM übergeben, um den Kanaladreßbereich in TSR für den vorherigen Kanal zu speichern. Im Zusammenhang mit diesem anderen Statuswörtern für von Zeitwechsel betroffene Elemente sei auf die nachstehenden Beschreibungen der betreffenden Elemente verwiesen; dort werden Details der Felder in den einzelnen Wörtern und ihre Verwendung in Bezug auf die betreffenden Elemente und INT erläutert. Die Logik mit finiten Zuständen wartet das Auftreten und die Bestätigung von TSR (TSR_RSM_ACK) ab und prüft, ob die DONE-Signale von TFM, TV und TL1 zu diesem Zeitpunkt alle vorliegen. Ist dies nicht der Fall, wird für INT das Fehlersignal RSM_LOGIC_TM erzeugt. Die Speicherung von Elementstatuswörtern erfolgt dynamisch in verschiedenen Phasen des aktuellen BTDM IF-Zeitschlitzes, vorausgesetzt, dieser Zeitschlitz ist einem aktiven Kanal zugeordnet und das entsprechende TDE-Bit im zugehörigen CCR ist aktiv. Im Hinblick auf die Speicherung des TFM-Statuswortes gelten außerdem die Bedingungen, daß keine DCB-Kettenende-Bedingung und kein FIFO-Paritätsfehler in TFM aufgetreten sein darf. Es folgt Zustand 4.
- In diesem und den folgenden Zuständen, die einen Schreibzugriff auf TSR beinhalten, wird RSM_LOCK_UP aufrechterhalten, so daß RSM gegenüber SIO absoluten Vorzug erhält. Wenn der vorige Kanal aktiv ist und das zugehörige CCR-Bit TE aktiviert ist, wird die erste Zustandsvariable des Sendeelements TV gespeichert. Die CCR-Bits TE und TDE sind speziell dazu da, daß SIO unter IOP-Steuerung die Werte an den betreffenden TSR-Positionen aktualisieren kann, ohne daß RSM die aktualisierten Werte durch nicht mehr aktuelle Statusinformationen von den Sende- und Empfangselementen überschreiben kann. Es folgt Zustand 6.
- Die dritte Sendevariable, TL1_TS01, wird gespeichert, sofern das TE-Bit im zugehörigen CCR aktiviert ist. Es folgt Zustand 7.
- Wenn der nächste Kanal aktiv ist, werden RSM_LOCK_UP und RSM_REQ mit der entsprechenden TSR-Adressierung erzeugt und der Prozeß zum Abrufen der ersten für den Kanal geltenden Zustandsvariablen für TL1 (TL_TS01) wird für TSR aufgerufen. Wegen der zur Zeit zulässigen Verzögerung in TSR wird der Abrufprozeß in diesem Zustand eingeleitet, die abgerufenen Daten werden jedoch erst darin am TSR_DATA-Bus gültig, wenn der übernächste Zustand erreicht ist. Es folgt Zustand 5.
- Dieser Zustand startet den Prozeß, der die Zustandsvariable von TV für den nächsten Kanal aus TSR abruft, vorausgesetzt dieser ist aktiv. Es folgt Zustand 3.
- Wenn der nächste Kanal aktiv ist, beginnt in diesem Zustand das Abrufen der ersten Zustandsvariablen für diesen Kanal aus TFM, während die Ladesignale für TL1 zum Laden der zwei Zustandszyklen zuvor abgerufenen Zustandsvariablen erzeugt werden. Die geladenen Daten erscheinen an Bus 126, und die Paritätsprüfung der Daten findet in der RSM-Logik 120 statt. Bei einem Paritätsfehler wird, wie weiter oben beschrieben, ein entsprechendes Signal an INT übergeben. Es folgt Zustand 9.
- Der HDLC-Konfigurationsterm für den nächsten Kanal wird in das HPCR-Register geholt, und TV wird mit der in Zustand 5 abgerufenen Zustandsvariablen geladen (RSM_TV_LOAD wird ausgegeben). Die Parität von TV_TS01 wird geprüft, und empfangsseitige DONE- Signale (RFM, RV, RL1) werden überprüft. Es ist daran zu denken, daß INT früher gestartet wird und länger laufen darf ale die Sende- oder Empfangselemente in jedem Zeitfenster, damit sichergestellt ist, daß alle generierten Ausnahmebedingungen synchron von INT protokolliert werden. Es folgt Zustand 1.
- CCR wird aus zwei Gründen erneut gelesen (siehe Zustand 0). Erstens, um eine eventuell notwendige neue Hyperchannel-Abbildung zu berücksichtigen, und zweitens, um die Bits abzurufen, die im Vor-CCR-Register nicht zur Verfügung stehen (wie bereits erwähnt, beinhaltet der frühere Vor-CCR-Abruf nur das Auslesen und die Verwendung des Kanaltypfeldes, da aus Gründen der Effizienz die internen Schaltvorrichtungen, aus denen das Vor-CCR- Register besteht, auf das Kanaltypfeld und nicht auf den gesamten CCR-Ausdruck, zugeschnitten sind). Was eine neue Hyperchannel-Abbildung betrifft, sei darauf hingewiesen, daß Hyperchannels mehrere BTDM-Zeitschlitze umfassen und die CCRS für solche Kanäle nicht unbedingt diejenigen sind, die beim ersten Zeitschlitz abgerufen wurden. Wenn der vorige Kanal aktiv ist, wird das Signal RSM_TFM_LOAD erzeugt und die Parität der zu ladenden Variablen geprüft. Es folgt Zustand 28.
- Dieser Zustand ist ein Wartezustand, der Zeit zum Umdrehen von chipexternen Treibern gewährt. Das Signal zum Laden der allgemeinen Variablen HPCR in das RAM-Register 116 wird erzeugt, und die Parität dieses Parameters wird geprüft. Es folgt Zustand 22.
- In diesem Zustand muß INT sein DONE-Signal (INT_DONE) übermittelt haben und den neuen EOPIS-Status (Prozeßende-Interruptstatus) übergeben, sofern es einen solchen für die Speicherung in der zugehörigen Warteschlange der Tiefe 16 für den betreffenden Kanal besitzt (siehe Fig. 6), wo er über SIO für einen IOP-Zugriff verfügbar wird. Blieb das DONE-Signal aus, wird ein Logik-Zeitüberschreitungsfehler gemeldet und die Verarbeitung fortgesetzt. EOPIS wird erzeugt, wenn der vorige Kanal (der jetzt zu Ende gehende Kanal) aktiv war und das zugehörige EOP- Gültigkeitsbit gesetzt ist (siehe Beschreibung von INT weiter unten). Es ist zu beachten, daß in jedem der vorherigen Zustände, in dem eine Paritätsprüfung stattfindet, das Auftreten eines Paritätsfehlers bei dessen Erkennung an INT gemeldet wird; dieser Zeitpunkt kann entweder vor dem Verarbeitungsintervall für den betreffenden Kanal im Zielelement liegen oder mit diesem zusammenfallen, und diese zeitliche Beziehung wird INT durch ein entsprechendes PARITY_ERROR_ODD- oder PARITY_ERROR _-EVEN-Signal mitgeteilt. Die Übergabe von EOPISR auf diese Weise ist erforderlich, um sicherzustellen, daß jeder Interruptstatusvektor CEISR (kanalbezogener Fehlerinterrupt-Statusvektor) für einen Hardwarefehler genau einmal für jeden Kanal übergeben wird (um eine redundante Fehlermeldung an das Hostsystem zu vermeiden). Das Signal, das besagt, daß CCR in das Register 115 in RSM geladen werden soll, wird ausgegeben, und die Parität der CCR-Variablen wird geprüft. Es folgt Zustand 12.
- Die Zustandsvariable für INT wird gespeichert, wenn der vorige (endende) Kanal aktiv war, oder wenn ein Paritätsfehlersignal für den Kanal generiert wurde. Dies ist notwendig, damit gewährleistet ist, daß Interrupts für Hardwarefehler in einem Element, die nicht wiederholt durch Paritätsfehler signalisiert werden, genau einmal für das Hostsystem generiert werden (siehe Zustand 22). Es folgt Zustand 13.
- Die zugehörige Zustandsvariable für INT wird abgerufen, wenn der neue Kanal aktiv ist, oder wenn zuvor in der Vor-CCR- Abrufsequenz für diesen Kanal ein Paritätsfehler aufgetreten ist. Auch dies gewährleistet, daß INT bei Fehlern, die sich während des Zeitschlitzes wiederholen, nur einen einzigen Interrupt verzeichnet. Es folgt Zustand 29.
- Ein Wartezustand zum Umkehren der chipexternen Treiber. Es folgt Zustand 14.
- Dies ist der erste Zustand zur Speicherung des Empfangselementstatus für den vorherigen Kanal. Wenn dieser Kanal aktiv war und der Empfang im betreffenden CCR aktiviert war (RE-Bit hat den Wert 1), wird die entsprechende Statusinformation von RV zusammen mit den betreffenden Adreß- und Auswahlfunktionen an TSR gesendet. Diese Statusinformation (siehe Beschreibung von RV weiter unten) enthält Bits, die den Zustand der von RV für den vorigen Kanal gespeicherten CCR-Bits RE und RDE angeben (dies ist erforderlich, weil das CCR des nächsten Kanals geladen wurde). Das Signal zum Laden des INT-Statuswortes wird ausgegeben, und die Parität dieses Wortes wird geprüft. Es folgt Zustand 16.
- In diesem Zustand wird der START-Impuls für die INT-Partition erzeugt, sofern der nächste Kanal aktiv ist oder in einem vorausgehenden Zustand der laufenden Zustandsabfolge ein Paritätsfehler aufgetreten ist. Das für den letzten Kanal geltende Statuswort für RL1 wird in TSR gespeichert, falls der Kanal aktiv war und ein aktivierendes Empfangsbit RE in seinem CCW hatte. Es folgt Zustand 18.
- Der RFM-Status für den vorigen Kanal wird gespeichert, wenn dieser aktiv ist und sein CCR RDE-Bit aktiviert war. Es folgt Zustand 20.
- Das zweite Statuswort für RFM wird gespeichert, wenn der vorige Kanal aktiv ist und sein RDE-Bit aktiviert war. Es folgt Zustand 10.
- Das zweite Statuswort für RV wird gespeichert, falls der vorige Kanal aktiv ist und sein RE-Bit aktiviert war. Wenn der nächste Kanal aktiv ist und kein Paritätsfehler aufgetreten ist, wird ein START-Impuls (RSM_XMIT_START) an die Sendeelemente übergeben. Es folgt Zustand 11.
- Der nächste Status für RV wird abgerufen, falls der nächste Kanal aktiv ist. Es folgt Zustand 21.
- Das erste Statuswort für RFM wird abgerufen, falls der nächste Kanal aktiv ist. Es folgt Zustand 19.
- Das zweite Statuswort für RFM wird abgerufen, falls der nächste Kanal aktiv ist, und das zweite Statuswort wird in RV geladen und einer Paritätsprüfung unterzogen, falls der Kanal aktiv ist. Es folgt Zustand 17.
- Wenn der nächste Kanal aktiv ist, wird das Statuswort für RL1 abgerufen und das erste Statuswort für RFM in RSM geladen und einer Paritätsprüfung unterzogen. Es folgt Zustand 15.
- Wenn der nächste Kanal aktiv ist, wird das erste Statuswort für RV (TSR_RV_TS01) abgerufen und das zweite Statuswort in RFM geladen und einer Paritätsprüfung unterzogen. Es folgt Zustand 26.
- Wenn der nächste Kanal aktiv ist, wird das erste Statuswort für RL1 geladen und einer Paritätsprüfung unterzogen. Es folgt Zustand 27.
- Wenn der Kanal aktiv ist, wird das erste Statuswort (TRS_RV _-TS01) in RV geladen und einer Paritätsprüfung unterzogen. Es folgt Zustand 24.
- Dies ist der letzte Zustand der Abfolge. Da der nächste Zeitschlitz nach Empfang von L1_LSOF oder L1_BOS zu vorigen Zeitschlitz wird, wird die Zeitschlitzgenerierungslogik so konditioniert, daß ihre Register beim Erscheinen eines dieser Signale aktualisiert werden. Das Signal zum Starten des Empfangs (RSM_RCV_START) wird gesendet, wenn der aktuelle Kanal aktiv ist und bei den Abrufoperationen kein Paritätsfehler aufgetreten ist. Es folgt der Anfangszustand 30.
- Dies ist ein verbotener Zustand, der nur im Fall eines Hardwarefehlers in der Zustandslogik auftreten kann. Wenn dieser Status erreicht wird, wird das Hardwarefehlersignal RSM_ERROR _-STATE für INT erzeugt, und es wird ein Wiederherstellungsversuch unternommen, indem ein Übergang zu Zustand 30 erfolgt. 8. BTDM-Schnittsteile Leitungen, Signalaustausch und Methodologie der Funktionsweise der BTDM-Schnittstelle (Stoß-Zeitmultiplex-Schnittstelle) werden im folgenden unter Bezugnahme auf die Zeitdiagramme in Fig. 13 bis Fig. 15 beschrieben. Details spezielle L1-Schaltungen, die im Zusammenhang mit dieser Schnittstelle von Bedeutung sein können, aber nicht als relevant für das hier beanspruchte Thema erachtet werden, sind der eingangs genannten gleichzeitig anhängigen Patentanmeldung mit dem Titel "Burst Time Division Multiplex Interface For Integrated Data Link Controller" zu entnehmen. Diese Anmeldung und die relevanten Beschreibungsdetails sind durch diesen Verweis in der vorliegenden Anmeldung inbegriffen. Im folgenden wird die BTDM-Schnittstelle der Einfachheit halber einfach als "BTDM" oder "Schnittstelle" bezeichnet.
- Die BTDM stellt eine exakte funktionale und logische Grenze zwischen Prozessen der Ebene 1 und Prozessen der Ebene 2 dar, die der Definition in der OSI-Spezifikation (Spezifikation über die Kommunikation offener Systeme) der International Standards Organisation (ISO) entspricht. Die Prozesse der Ebene 2 können ganz oder teilweise im hier beschriebenen IDLC-Gerät ausgeführt werden (im hier beschriebenen Ausführungsbeispiel für eine ISDN-Umgebung mit Primärrate werden zahlreiche, aber nicht alle Funktionen der Ebene 2 im IDLC durchgeführt; andere funktionale Zuständigkeiten der Ebene 2 sind in der IOP und/oder im Hostsystem anzusiedeln).
- Die BTDM-Schnittstelle selber ist in der OSI-Spezifikation weder definiert noch beschrieben. Sie stellt eher das dar, was in der vorliegenden Beschreibung als einmaliger Ansatz zur Organisation der zeitlichen Abstimmung von Transferfunktionen zwischen der Hardware der Ebene 1 und der Hardware der Ebene 2 betrachtet wird, so daß der hier gewünschte Durchsatz des IDLC in und jenseits der repräsentativen ISDN-Umgebung mit Primärrate erreicht werden kann.
- Die BTDM besitzt nur relativ wenige Leitungen (6) zur Übertragung von Daten mit hoher Geschwindigkeit (bis zu 2.048 Megabits pro Sekunde im Vollduplexbetrieb) zwischen dem IDLC und den L1- Schaltungen. Sie besitzt die Flexibilität, die erforderlich ist, um solche Übertragungen in der exemplarischen ISDN-Umgebung mit Primärrate zu erreichen, z.B. für 32 Vollduplex-B- Kanäle mit Datenübertragungsgeschwindigkeiten von bis zu 64 kpbs pro Kanal in jeder Richtung. Selbstverständlich können solche Schaltungen, je nach Netzwerk und Medien, an die die L1- Schaltungen angeschlossen sind, verschiedene Formen annehmen. Hier ist der allgemeine Aufbau dieser Schaltungen zur Aufrechterhaltung der speziellen Signale, Signalzeiten und Signalphasenmerkmale der BTDM relevant. Der allgemeine Aufbau wird in der erwähnten gleichzeitig anhängigen Patentanmeldung beschrieben und ist für den Gegenstand der vorliegenden Ansprüche nicht relevant. Aus diesem Grund werden hier nur die entsprechenden Schaltungsfunktionen beschrieben.
- Die Schnittstelle ermöglicht es der L1-Hardware, die Datenübertragungsgeschwindigkeit in einem Zeitschlitz über einen Bereich von 0 bis 64 kbps pro Kanal im Vollduplexbetrieb zu steuern und so Sprachkanäle bzw. protokollfrei Kanäle, B-Kanäle und langsamere D-Kanäle (16 kbps pro Kanal bei Vollduplex), M-Kanäle und S-Kanäle sowie Hyperchannels, die durch Zusammenfassen von Zeitschlitzkapazitäten mehrerer B-Kanäle gebildet werden (siehe Beschreibung von Hyperchannels weiter unten) zu unterstützen. Außerdem erlaubt die zeitliche Flexibilität der Schnittstelle bei der Übertragung eine Variation der Zeitschlitz- und Rahmendauer auf dynamischer Basis, so daß verschiedene Anforderungen im Übertragungsverkehr unterstützt werden können.
- Die Schnittstelle ist so implementiert, daß sie sowohl die ISDN-Primärrate als auch die ISDN-Grundrate als L1-Protokolle und HDLC als wichtigstes L2-Protokoll unterstützt; sie ist aber nicht auf diese Protokolle beschränkt. Sie kann daher auch zur Unterstützung anderer von OSI oder IBM definierter L1,L2- Protokolle (z.B. Async oder Bisync) verwendet werden und besitzt die geeignete Geschwindigkeit und Merkmale für die Übertragung codierter Sprache auf einem beliebigen Kanal.
- Die Signalisierung des Datentransfers an der Schnittstelle erfolgt in zeitlich stark komprimierten Blöcken, die ein kurzes Zeitfenster innerhalb jedes Kanalzeitschlitzes belegen. Sendeund Empfangstransfers erfolgen gleichzeitig Die "Totzeit" zwischen den Blöcken, die auch als Aufbauzeit bezeichnet wird, ist so gewählt, daß die Effizienz der in IDLC ausgeführten Kanalverarbeitungs- und Statuswechselfunktionen optimiert ist, und daß nach unserem Erachten der für die Mehrkanalkommunikation erfoderliche LSI-Schaltungszellenzähler inhärent minimiert und die pro Kanal benötigte Pufferspeicherkapazität in IDLC ebenfalls minimiert wird.
- Die Schnittstelle unterstützt eine hohe Flexibilität bei den Verfahren, die zur Übertragung von Daten unter Protokollen mit mehreren Ebenen (OSI, SNA) zwischen lokalen und fernen Chipmodulen verwendet werden, und erleichtert den Transfer von kanalbezogenen Zeitmultiplex-Daten (TDM-Daten) im HDLC-Format zwischen Geräten der Ebene 2 wie beispielsweise IDLC und einer Vielzahl von L1-Schaltungen.
- Die Schnittstelle unterstützt 'X' TDM-Datenkanäle, von denen jeder 'Y' Bits Vollduplexdaten in Kanal-TDM-Zeitschlitzen der Dauer 'Z' übertragen kann; dabei ist 'X' eine Zahl von 1 bis 32, 'Y' eine Zahl von 0 bis 3 und 'Z' mindestens 3,8 Mikrosekunden, und 'X' mal 'Z' beträgt nicht mehr als 125 Mikrosekunden. Diese Zahlen sind auf europäische ISDN-Verhältnisse zugeschnitten; in Implementierungen für Nordamerika sollte 'X' eine Zahl von 1 bis 25, 'Y' eine Zahl von 0 bis 8 für B- und D- Kanäle und 'Z' ebenfalls mindestens 3,8 Mikrosekunden sein.
- Bei den genannten Parametern ist zu beachten, daß sie auf die hier betrachteten ISDN-Umgebungen zugeschnitten sind. In anderen Umgebungen könnte der Bereich von Y (Anzahl der pro Zeitschlitzfenster übertragbaren Bits) für die angegebenen X- und Z-Grenzwerte vermutlich problemlos auf 16 erweitert werden. Ferner ist zu beachten, daß die vorliegende BTDM-Implementierung zwar speziell für die Kopplung einer L1-Schaltungseinheit mit einem einzigen IDLC-Gerät konzipiert ist, daß ein ähnlicher Schnittstellenaufbau aber wohl auch für die Kopplung mehrerer L1-Schaltungsmodule mit einem oder sogar mehreren IDLC-Geräten verwendet werden könnte.
- Ein Merkmal der Schnittstelle, das in der erwähnten Patentanmeldung ausführlicher beschrieben wird, ist der "positive Schlupf" in allen Kanälen. Die Schnittstelle ist im vorliegenden Fall durch spezielle Elemente in den L1-Schaltungen so getaktet, daß unter normalen Betriebsbedingungen die Möglichkeit eines Über- oder Unterlaufs (Überlauf in bezug auf Transfers von Empfangsdaten von L1 an IDLC und Unterlauf in bezug auf Transfers von Sendedaten von IDLC an L1) aufgrund der Taktverschiebung zwischen dem internen L1-Taktgeber und den Taktgebern an fernen Netzwerkknoten effektiv ausgeschaltet oder zumindest auf ein Minimum reduziert ist. Bei anderen taktabhängigen Schnittstellen gilt es als normal, daß die Taktverschiebung intermittierende Schlupfeffekte verursacht, so daß gelegentlich ein Über- oder Unterlauf zu erwarten ist, denen durch Fehlermeldungen und vom Host ausgehende Rahmenübertragungswiederholungen begegnet wird. Solche Fehlermeldungen und Übertragungswiederholungen, die offensichtlich die Verarbeitungszeit des Hosts verschwenden und außerdem dazu neigen, die genutzte Bandbreite der Schnittstelle aufzubrauchen oder zu beschränken, werden durch positiven Schlupf effektiv vermieden oder minimiert.
- Die BTDN-Schnittstelle enthält Daten- und Steuerleitungen mit relativen Signaltakten, wie in Fig. 13 und Fig. 14 zu sehen ist. Einzelleitungen RDATA und TDATA leiten empfangene bzw. gesendete Daten (empfangene Daten von L1 an IDLC, gesendete Daten in umgekehrter Richtung). Sie Steuerleitungen LSOF und BOS übertragen Referenztaktimpulse von L1 an IDLC, die den letzten Zeitschlitz im Rahmen beziehungsweise den Anfang eines Zeitschlitzes für TDM-Zeitrahmen und Zeitschutze anzeigen. Die Dauer der Impulse an LSOF und BOS beträgt 50 Nanosekunden oder einen Maschinentaktzyklus (IDLC, L1). Jeder Zeitschlitz im Rahmen kann einem Übertragungskanal zugewiesen werden, und jedem Übertragungskanal können dynamisch ein oder mehrere Zeitschlitze pro Rahmen zugeteilt werden. Aktiven B-, D- und protokollfreien/Sprachkanälen ist jeweils ein Zeitschlitz pro Rahmen zugeteilt, und mehrere (nicht unbedingt zeitlich aufeinanderfolgende) Zeitschutze können kollektiv einem einzigen Hyperchannel zugeteilt werden (siehe Beschreibung von Hyperchannels weiter unten).
- Während jedes Zeitschlitzes erfolgen Transfers von Empfangsund Sendedaten bitseriell innerhalb eines 800-Nanosekunden- "Fensters". Das Fenster für Empfangsdaten beginnt 800 Nanosekunden vor dem BOS-Impuls, der den Anfang des nächsten Zeitschlitzes anzeigt, und endet 50 Nanosekunden vor diesem Impuls. Das Fenster für Sendedaten beginnt zur gleichen Zeit wie das Empfangsfenster, endet aber aufgrund der Phase von Sendeanforderungen und den entsprechenden Sendebittransfers nahezu gleichzeitig mit dem nächsten BOS-Signal.
- Jedes Bit wird in einem 100-Nanosekunden-Intervall übertragen, das durch einen entsprechenden Impuls von der L1-Seite (RDATA_VALID-Impuls, der jedes von L1 gesendete Empfangsbit begleitet, und TDATA_REQ-Impuls, der für jedes Sendebit erzeugt wird, das vom IDLC-Element TL1 gesendet werden soll) definiert ist. Innerhalb eines Zeitschlitzes ist die Anzahl der in jede Richtung übertragenen Bits (d.h. die Anzahl von RDATA_ VALID- und TDATA_REQ-Impulsen von den L1-Schaltungen) variabel (in den hier betrachteten ISDN-Umgebungen zwischen 0 und 8); dies ermöglicht es L1, den Füllungszustand der Sende- und Empfangspuffer so zu regulieren, daß der erwähnte positive Schlupf erzielt wird.
- Der übrige Teil des Zeitschlitzintervalls, mindestens 2,95 Mikrosekunden, ist die "Aufbauzeit", in der IDLC alle unbedingt erforderlichen Verarbeitungsoperationen mit den im vorausgehenden Zeitschlitz (dem Zeitschlitz vor dem BOS-Impuls, der auf den Empfangstransfer folgt) empfangenen Daten beenden, einen Kanalstatuswechsel für den nächsten Zeitschlitz (den Zeitschlitz, der mit dem nächsten BOS nach dem Übertragungsfenster beginnt) durchführen und alle unbedingt erforderlichen Verarbeitungsoperationen mit den Sendedaten für den Kanal und das Übertragungsfenster des nächsten Zeitschutzes beenden kann.
- Die theoretische (nominale) Zeitschlitzdauer beträgt bei der europäischen ISDN-Übertragungsgeschwindigkeit (2048 Megabit pro Sekunde) 3,91 Mikrosekunden; die Dauer an der hier beschriebenen Schnittstelle ist jedoch etwas kürzer (mindestens 3,8 Mikrosekunden); d.h. die Zeitschlitzrate an der BTDM ist geringfügig höher als die nominale an der Netzwerkschnittstelle zu erwartende Zeitschlitzrate, um die "ungünstigste Drift" zwischen lokalen L1-Taktgebern und fernen Taktgebern zu berücksichtigen. Die Aufrechterhaltung dieser "vorauseilenden Zeitschlitzrate" und die Regulierung der pro Zeitschlitz übertragenen Bits auf L1-Ebene bewirkt einen positiven Schlupf; d.h., sie stellen sicher, daß die Empfangs- und Sendepuffer auf der L1-Seite (mit einer Mindestkapazität von jeweils zwei Byte pro Kanal) nicht aufgrund der Taktdrift zwischen dem internen L1- Taktgeber und den Taktgebern auf Seiten des Netzwerks überbzw. unterlaufen. Auf der IDLC-Seite sind die Verarbeitungsgeschwindigkeit innerhalb der Sende- und Empfangspipelines und die ungünstigste Rate beim Zugriff von DMAC auf den IOP-Speicher so gewählt, daß eine mehr als ausreichende Fähigkeit, jede von L1 für die Steuerung des positiven Schlupfs vorgegebene Schrittgeschwindigkeit mitzuhalten.
- In Fig. 15 ist die zeitliche Abstimmung von internen L1- Taktsignalen (C1_CLOCK und B2_CLOCK) bei der Generierung der BTDM-Datenbit-Taktfunktionen TDATA_REQ und RDATA_VALID dargestellt. C1 ist ein Haupttaktgeber und B2 ein Nebentaktgeber (von C1 abgeleitet). Jeder interne Taktimpuls dauert 20 Nanosekunden (ns). Aufeinanderfolgende C1- und B2-Impulse überlappen sich nicht, und der Anfang von B2 folgt dem Ende des unmittelbar vorausgehenden C1 unter Einhaltung eines "Sicherheitsabstands" von ca. 5 ns. Jeder Maschinenzyklus in L1 (50 ns) beginnt mit dem Anstieg eines B2-Impulses und besteht aus 4 Taktphasen, von denen eine der Dauer des B2-Impulses, eine andere dem Intervall zwischen dem Ende dieses B2-Impulses und dem Anstieg des darauffolgenden C1-Tmpulses, eine dritte der Dauer dieses C1-Impulses und eine vierte dem Sicherheitsabstand vom Ende des C1-Impulses bis zum Anstieg des nächsten B2-Impulses zugeteilt ist.
- Transfers von Empfangs- und Sendebits werden nicht bestätigt. IDLC muß die Empfangsdatenbits in einer vorgegebenen Phase von RDATA_VALID, die mit '****' gekennzeichnet ist, schalten, und die L1-Anforderungen eines Bittransfers müssen in einer vorgegebenen Phase von TDATA_REQ, gekennzeichnet durch '####', erfolgen.
- Neben den erwähnten Daten- und Steuerleitungen sind mehrere Leitungen so dargestellt, als seien sie der BTDM zugeordnet; eigentlich handelt es dabei jedoch um Leitungen, die die L1- Schaltungen mit dem IOP/Host-System verbinden, wobei einige direkt und andere indirekt über das SIO-Element von IDLC an den IOP-Bus angeschlossen sind.
- Diese Leitungen ermöglichen es der IOP, die Initialisierung der L1-Schaltungen direkt zu steuern und Interruptstatusinformationen direkt aus diesen Schaltungen zu beziehen. Namen und Funktionen dieser Leitungen werden im folgenden beschrieben.
- Empfangselemente sind die Elemente RL1, RV und RFM. In diesem Abschnitt werden Aufbau und Logik von RL1 und RV auf Funktionsebene behandelt. Die Operationen dieser Elemente in Bezug auf konstituierende Zeitschutze von Hyperchannels sind mit denen für Elementarkanalzeitschlitze identisch.
- Das Element RL1 vermittelt zwischen der BTDM-Schnittstelle und RV, indem es Datensignale von der BTDM empfängt und teilweise verarbeitet und die Ergebnisse an RV übergibt.
- R1 führt folgende Funktionen aus:
- 1) Deserialisierung der Empfangsdaten. Daten in aktiven Kanälen werden an der BTDM bitseriell in Blöcken von 0 bis 8 Bit pro Kanalzeitschlitz empfangen. Die Daten werden in Bytes (jeweils 8 Bit) deserialisiert, in RL1 teilweise verarbeitet und anschließend an RV übergeben, wo sie weiter verarbeitet werden.
- 2) Erkennen und Löschen protokollspezifischer Steuerzeichen und Signalmuster. In Kanälen mit protokollorientierten Daten (z.B. HDLC) werden Rahmenmarkierungen sowie Ruhe- und Abbruchsignalmuster erkannt und gelöscht (nicht an RV weitergegeben). Ein Empfangsbytezähler in RL1 wird so manipuliert, daß diese Löschung berücksichtigt wird.
- 3) Erkennen und Löschen von Transparenzbits. Bits, die an einer fernen Stelle in die Daten eingefügt (gestopft) werden, um eine Fehlinterpretation bestimmter Datenbytes als Steuerzeichen oder als Muster zwischen zwei Meldungen zu verhindern, werden erkannt und gelöscht (nicht an RV weitergegeben). Ein Empfangsbytezähler in RL1 wird so manipuliert, daß diese Löschung berücksichtigt wird.
- 4) Setzen von Hinweiszeichen, um das INT-Element über den Rahmenempfangsstatus und den Empfang protokolispezifischer Informationen wie HDLC-Rahmenmarkierungen sowie Abbruch- und Ruhemuster zu informieren.
- 5) Abbruchmaskierung. RL1 kann (von Host/IOP über SIO, RMS und TSR) dynamisch so konditioniert werden, daß die Erkennung von Abbruchmustern außerhalb eines Rahmens selektiv ausgeblendet wird, so daß Hostprogramme die Flexibilität zur Eliminierung unerwünschter Interrupts für eine solche Erkennung erhalten.
- 6) Oktett-Ausrichtungsprüfung. Bei Erkennung einer Rahmenendemarkierung führt RL1 eine Oktett-Ausrichtungsprüfung durch; d.h. es wird geprüft, ob die Gesamtanzahl der empfangenen Bits nach Berücksichtigung der entfernten Bits ein Vielfaches von 8 ist.
- 7) Erkennen/Löschen gemeinsamer Symbole in protokollspezifischen Mustern. Bei HDLC-Quellen, die eine gemeinsame Null zwischen aufeinanderfolgenden Markierungen verwenden, um die Gesamtzahl der übertragenen Bits zu reduzieren, ist RL1 für die Erkennung und das Löschen solcher Markierungen und für das Seten der entsprechenden Rahmenstatusangaben verantwortlich. Bei HDLC-Quellen, die zur Kennzeichnung des Rahmenendes und des Anfangs des nächsten Rahmens mit einer einzigen gemeinsamen Markierung zwischen den Rahmen arbeiten, ist RL1 auch für die Unterscheidung solcher Markierungen und das Setzen der entsprechenden Rahmenstatusangaben zuständig.
- 8) Dateninversion. RL1 unterstützt den Empfang invertierter Datenprotokolle (z.B. invertiertes HDLC) und ist für die Erkennung, das Löschen und die Angabe der in invertierter Form empfangenen Markierungszeichen, Ruhemuster und Abbruchmuster zuständig
- Details der Elementlogik und der speziellen Zustände dieser Logik werden in der als Referenzliteratur aufgeführten gleichzeitig anhängigen Patentanmeldung für autonome logische Elemente erläutert. Auf solche Details wird in der vorliegenden Beschreibung nicht eingegangen, da sie für den hier behandelten Sachverhalt nicht relevant sind. Insofern solche Details ergänzend von Bedeutung sein könnten, ist der entsprechende Abschnitt der gleichzeitig anhängigen Anmeldung durch diesen Verweis Teil des vorliegenden Dokuments.
- Das Zeitwechselstatuswort dieses Elementes, RL1_TS01 (Fig. 6), besteht aus zwei 8-Bit-Feldern RLCR und RLDR, einem 4-Bit-Feld RLTC, einem 3-Bit-Feld RLDC, einem 2-Bit-Feld RLFS und einem 7- Bit-Feld RLSTAT. Diese Felder haben die nachstehend aufgeführten Funktionen und Bedeutungen:
- RLCR RL1-Prüfregisterzustand; Zustand von Register 152.
- RLDR RL1-Datenregisterzustand; momentaner Inhalt des Datenregisters 153.
- RLTC RL1-Transparenzzählerzustand; der Wert des Transparenzzählers (Anzahl der nacheinander empfangenen Bits), der für die Erkennung von als Stopfbits eingefügten 0-Bits in protokoliformatierten Daten und für die Erkennung von Markierungszeichen und Steuersignalmuster in solchen Daten verwendet wird.
- RLDC RL1-Datenzählerwert; die Anzahl der empfangenen gültigen Datenbits (Modub 8). Dieser Wert wird nach der Erkennung einer gültigen Rahmenendemarkierung zur Oktett- Ausrichtungsprüfung benutzt. Er wird beim Löschen eines Stopfbits um 1 verringert und beim Löschen einer Markierung oder Steuersequenz zurückgesetzt.
- RLFS Rahmenstatuszähler, der Phasen des HDLC-Protokollrahmenempfangs bezeichnet. Mit Hilfe dieses Wertes wird festgestellt, wann die empfangenen Signale Meldungsdaten darstellen, die an RV übergeben werden sollen. RLSTAT Zustand des RL1-Statusregisters 154 in Fig. 17. Die Bits dieses Wertes (Bit 0 bis 6) bezeichnen den neuesten Empfangsstatus im betreffenden Kanal. Dabei gilt:
- Bit 0 - Ruhemuster wurde empfangen
- Bit 1 - Rahmenendemuster wurde empfangen
- Bit 2 - Abbruchmuster wurde empfangen
- Bit 3 - reserviert
- Bit 4 - Oktettausrichtungsfehler wurde erkannt
- Bit 5 - reserviert
- Bit 6 - reserviert
- Die an BTDM erscheinenden Datenbits (BTDM_DATA mit BTDM_DATA _-VALID) werden von RL1 innerhalb eines Taktzyklus (50 ns) nach ihrer Übergabe geschaltet. Solche Daten werden in Abhängigkeit vom Kanalprotokoll selektiv in ein internes Datenregister von RL1 geschrieben, und es folgen verschiedene Aktionen.
- Bei protokollfreien Kanälen werden Bits ohne spezielle Musterprüfung eingelagert, und nach Empfang des achten Bits einer Folge wird das resultierende Byte parallel an RV übergeben. Solche Transfers gesammelter Daten erfolgen synchron ohne Bestätigung. Jedes Byte wird mit einem Fertig-Signal übergeben, wonach RV das Datenbyte innerhalb eines Taktzyklus (50 ns) schalten muß.
- Bei Datenkanälen, die für HDLC oder andere spezielle rahmengebundene Übertragungsprotokolle konfiguriert sind, bei denen eine selektive Erkennung vorgegebener Bitmuster, das selektive Löschen solcher Bitmuster und der Transfer von Angaben über die Erkennung solcher Muster erforderlich sind, führt RL1 die nachstehend beschriebenen Operationen durch:
- Bei der seriellen Anhäufung der Bits stellt RL1 fest, ob 8 aufeinanderfolgende empfangene Bits ein Steuermarkierungszeichen (01111110) bilden. Ist dies der Fall, werden sie übergangen (nicht an RV übertragen), sobald weiter die Bedeutung des Markierungszeichens (Rahmenanfang, Rahmenende usw.) festgestellt wurde, und es wird gegebenenfalls ein entsprechender Hinweis darüber an RV übermittelt.
- Beim Empfang der einzelnen Bits stellt RL1 auch fest, ob dieses und die sechs vorhergehenden Bits zu einem Ruhe- oder Abbruchmuster (einem Muster mit mehr als sechs aufeinanderfolgenden Einsen) gehören. Wird dies festgestellt, wird das Datenregister ohne Transfer an RV gelöscht, und es wird ein Ruhe- oder Abbruchstatushinweis für RV gesetzt. Nach Erkennung eines Abbruch- oder Ruhemusters (das eigentlich alle darauffolgenden Daten ungültig macht, bis eine neue Eröffnungsmarkierung kommt), prüft RL1 die ankommenden Bits weiter auf eine Rahmeneröffnungsmarkierung und verwirft die empfangenen 8-Bit- Gruppen durch Löschen des Datenregisters ohne Transfer an RV solange, bis eine derartige Markierung erkannt wird.
- Nach der Erkennung einer Eröffungsmarkierung prüft RL1 die ankommenden Bits wie oben auf weitere Markierungen, Ruhe- und Abbruchmuster, unterzieht aber auch jedes empfangene Bit zusammen mit seinen Vorgängern einer Prüfung, ob es sich um ein sogenanntes Stopfbit (ein 0-Bit, das auf 5 aufeinanderfolgende Einsen nach einer Null folgt) handelt. Stopfbits werden gelöscht, und jede danach verbleibende Gruppe aus 8 Bits wird in einem synchronen Transfer an RV übertragen (siehe Beschreibung von protokolifreien Kanälen weiter oben).
- Bei der Erkennung von Eröffnungs- und Schlußmarkierungen, Ruhemustern und Abbruchmustern, übergibt RL1 die entsprechenden Ereignisangaben an RV. RL1 kann auch an inverse HDLC-Übertragungen angepaßt werden, wobei alle empfangenen Bits invertiert werden.
- RV empfängt Daten und Statussignale von RL1, führt CRC-Berechnungen (Berechnungen im Zusammenhang mit der zyklischen Blockprüfung) durch, prüft, ob eine Überlaufbedingung vorliegt, und übergibt die Daten zusammen mit zusätzlichen Statusangaben an RFM. Beim Empfang eines Rahmenendesignals von RL1 (bei Daten, die in einem rahmengebundenen Nachrichtenprotokoll wie HDLC empfangen werden), übergibt RV das Ergebnis der CRC-Prüfung zusammen mit dem Status von RL1 und RV für den betreffenden Kanal an RFM. RV führt bei den empfangenen Datenrahmen außerdem eine Adreßerkennung durch, die auf den Adreßerkennungsoptionsbits ARO im CCR basiert (siehe Beschreibung des RSM weiter oben), und kann anhand dieser Erkennung selektiv Rahmen löschen. Folgende Optionen sind zulässig: alle Rahmen empfangen, nur Rahmen mit einem bestimmten Zieladreßbyte oder einer bestimmten Rundspruchadresse empfangen, nur Rahmen mit einer vorgegebenen 2- Byte-Zieladresse oder einer bestimmten Rundspruchadresse anerkennen/übertragen, und nur Rahmen mit Rundspruchadresse anerkennen.
- Details des logischen Aufbaus von RV und der speziellen Zustände seiner Maschine mit finiten Zuständen werden in der als Referenzliteratur aufgeführten gleichzeitig anhängigen Patentanmeldung für autonome logische Elemente erläutert. Auf solche Details wird in der vorliegenden Beschreibung nicht eingegangen, da sie für den hier behandelten Sachverhalt nicht relevant sind. Insofern solche Details ergänzend von Bedeutung sein könnten, ist der entsprechende Abschnitt der gleichzeitig anhängigen Anmeldung durch diesen Verweis Teil des vorliegenden Dokuments.
- RV besitzt zwei interne Register für den abwechselnden Empfang von Datenbytes von RL1, so daß RV während eines aktiven BTDM- Zeitschlitzes 2 Bytes der Empfangsdaten für den betreffenden Kanal (oder Hyperchannel) verarbeiten kann. RV besitzt außerdem zwei interne Register für die von RL1 kommenden Statusangaben.
- Diese zusätzliche Registerkapazität ermöglicht es RV und RFM, die maximal mögliche Blockgeschwindigkeit an der BTDM für einen Kanalzeitschlitz oder einen konstituierenden Hyperchannel- Zeitschlitz zu unterstützen. Da RL1 im Verlauf eines Kanalzeitschlitzes bis zu 1 Byte empfangen kann, besteht die Möglichkeit, 2 Datenbytes für diesen Zeitschlitz zu empfangen, bevor die Daten an RFM übergeben werden.
- Wie bereits beschrieben unterzieht RV Daten, für die eine CRC- Prüfung erforderlich ist, einer solchen. Die Ergebnisse dieser Prüfung werden an RFM übergeben, wenn RV einen gültigen Rahmenendemarkierungshinweis von RL1 empfängt.
- RV arbeitet auf synchroner Zeitmultiplexbasis; sein Status in Bezug auf die einzelnen aktiven Kanäle wird am Ende des betreffenden Kanalzeitschlitzes über RSM in TSR gespeichert und beim nächsten Erscheinen dieses Zeitschutzes wieder über RSM zurückgeladen. Die Verarbeitung für jeden Kanal beginnt, wenn ein Startsignal, RSM_RCV START, von RSM empfangen wird (siehe Beschreibung des RSM weiter oben), und endet, wenn ein Zeitschlitzendesignal, RSM_RCV_EOS, von RSM empfangen wird. Während der Status für einen aktiven Kanal gespeichert und der für einen anderen aktiven Kanal zurückgeladen wird, wird RV in einen Haltezustand versetzt.
- Beim Empfang des Startsignals wird die RV-Verarbeitung bei dem Status wiederaufgenommen, der am Ende der Verarbeitung für den gleichen Kanalzeitschlitz herrschte. Beim Empfang des Zeitschlitzendesignals von RSM geht RV innerhalb einer bestimmten Zeit in einen stabilen Zustand über, sofern er sich nicht bereits in diesem Zustand befindet (z.B. werden in einem Zustand, in dem Daten von RL1 zu empfangen sind, die Daten in Register 170 geschrieben, bevor der Haltezustand eingenommen wird). Nach Erreichen eines solchen Zustands sendet RV ein Fertig-Signal, RV_DONE, an RSM.
- Aufgrund der internen Registerkapazität für 2 Datenbytes und 2 Bytes RL1-Statusinformationen besteht die Zeitwechselstatusinformation für RV aus zwei Zeitwechselstatuswörtern, nämlich RV_TS01 und RV_TS02. RV_TS01 enthält folgende Felder:
- RVD0,1 RV-Datenregister 0 und 1 (jeweils 8 Bit). Diese Register entsprechen dem Inhalt der zwei internen Datenregister in RV.
- RVD0P,1P RV-Datenparität 0 bzw. 1 (jeweils 1 Bit). Ungerade Parität bei Daten RVD0,1.
- RVARS RV-Adreßerkennungszustand (2 Bit); gilt für Datenrahmen, die der Adreßerkennungsoption unterworfen sind, und kann folgende Zustände bezeichnen: 1. Warten auf Daten, an denen die Adreßerkennung durchgeführt werden soll; 2. Adresse wurde erkannt oder die Erkennung wurde deaktiviert (alle Daten im Rahmen werden an RFM weitergeleitet, und beim Empfang eines Rahmenendesignals wird ein Interrupt generiert); 3. oder 4. Keine Adresse erkannt; dieser Rahmen wird ignoriert.
- RVDF RV-Datenregister voll (2 Bit). Dieses Feld kann folgende Zustände bezeichnen: 1. RVD0 und RVD1 sind beide leer; 2. nur RVD1 enthält gültige Daten; 3. nur RVD0 enthält gültige Daten; 4. RVD0 und RVD1 enthalten gültige Daten.
- RVLBF Letztes Byte der Rahmenangabe (2 Bit). Dieses Feld kann folgende Zustände bezeichnen: 1. Weder RVD0 noch RVD1 enthalten das letzte Byte des aktuellen Rahmens; 2. RVD1 enthält das letzte Byte des aktuellen Rahmens; 3. RVD0 enthält das letzte Byte des aktuellen Rahmens; 4. RVD1 und RVD0 enthalten das letzte Byte des aktuellen Rahmens (d.h., sowohl Register 170 als auch Register 171 enthalten Rahmenendeangaben). RVI RV initialisiert (1 Bit). Dieses Bit wird von IOP/SIO gesetzt, um die Initialisierung von Statuswechselvariablen für RV für den aktuellen Kanalzeitschlitz anzuzeigen, und von RV als Bestätigung, daß dies erkannt und ein normaler Verarbeitungszustand für den Kanal eingenommen wurde, zurückgesetzt.
- RVLAR Erkennung der letzten Adresse durch RV (2 Bit). Der letzte Wert im ARO-Feld des CCR für den Kanal. In jedem zugeteilten Prozeßzeitschlitz vergleicht RV dieses Feld mit dem aktuellen ARO-Wert, um festzustellen, ob dieser geändert wurde (durch IOP/SIO). Wird eine Änderung festgestellt, wird der neue ARO-Wert in dieses Feld geschrieben. Bei Erkennung eines nächsten Rahmenanfangs nimmt RV die Adreßerkennungsverarbeitung gemäß dem neuen ARO-Wert in diesem Feld auf.
- RV-TS02 enthält folgende Felder:
- RVCRC RV CRC-Rest (16 Bit). Wenn für einen protokollkonfigurierten Kanal ein Rahmenendesignal von RL1 empfangen wird, so wird anhand dieses Feldes festgestellt, ob der Rahmen richtig empfangen wurde. Anschließend erfolgt eine Rücksetzung auf lauter Einsen.
- RVS0,1 RV-Statusregister 0 und 1 (jeweils 8 Bit). RVS0 enthält den von RL1 empfangenen Status und RVS1 den aus RVS0 in dieses Feld eingelesenen Status. Dazu zählen Angaben des RL1-Rahmenverarbeitungsstatus für HDLC- Kanäle (EOF, Ruhemuster erkannt, Abbruch festgestellt, Oktettausrichtungsstatus usw.)
- RVIO Internes Überlaufsignal in RV (1 Bit). In diesem Feld wird eine interne Überlaufbedingung von Registern in RV angezeigt. Wenn dieses Bit gesetzt ist, werden keine Daten an RFM weitergeleitet.
- Die logische Steuerung von RV erfolgt durch zwei Maschinen mit finiten Zuständen, MOVE und PROCESS. MOVE steuert die internen Daten- und Statustransfers zwischen den Registern in RV, und PROCESS steuert die Verarbeitung der Daten (CRC-Prüfung, Adreßerkennung usw.) und die Schnittstellenfunktionen zu RFM. Die einzelnen Zustände dieser Maschinen mit finiten Zuständen werden in einem entsprechenden Abschnitt der als Referenzliteratur aufgeführten gleichzeitig anhängigen Anmeldung über autonome Elemente beschrieben. Sie werden als nicht relevant für den Gegenstand der vorliegenden Anmeldung erachtet. Insofern solche Details ergänzend von Bedeutung sein könnten, ist der entsprechende Abschnitt der gleichzeitig anhängigen Anmeldung durch diesen Verweis Teil des vorliegenden Dokuments.
- Die synchronen Verarbeitungselemente für Sendedaten (Daten auf dem Weg von FIFOR zur BTDM) sind TFM, TV und TL1. In diesem Abschnitt werden TL1 und TV beschrieben. Diese Elemente machen keinen Unterschied zwischen konstituierenden Zeitschlitzen eines Hyperchannels und Zeitschlitzen für Einzelkanäle.
- TL1 vermittelt bei der Übertragung von Sendedaten an das Netzwerk zwischen dem Sende-Gültigkeitsprüfungselement TV und der BTDM. TV empfängt Sendedaten vom TFM (Sende-FIFO-Manager), der die Daten byteweise aus FIFOR ausliest. Diese Daten werden durch asynchrone Aktion von DMAC als Antwort auf Anforderungen von TFM an DMARQ (DMA-Anforderungswarteschlangenelement) aus dem externen IOP-Speicher in FIFOR geladen.
- TL1 führt Funktionen aus, die die Umkehrung der Funktionen in RL1 sind. Dazu zählen:
- - Serialisierung von Datenbytes
- - Generierung von Markierungen, Abbruch- und Ruhemustern
- - Transparenz - Stopfen mit 0-Bits
- - Erkennung von Unterlaufbedingungen
- - Gemeinsame Markierungen
- - Dateninvertierung
- - Abwechselnder Registergebrauch für Ausgangsdaten
- TL1 empfängt die Daten byteweise von TV und überträgt sie als Antwort auf Bitanforderungen TDATA_REQ, die von den L1-Schaltungen an BTDM übergeben werden, bitseriell an BTDM. In TL1 werden die Daten durch zwei Byte-Register geschleust, so daß TL1 in einem Zeitschlitz bis zu zwei Datenbytes für den gerade aktuellen Kanal speichern kann. TL1 kann sich so auf jede beliebige Rate von L1-Anforderungen innerhalb der für die BTDM geltenden Grenzen von maximal 8 Blöcken innerhalb eines Zeitschlitzes einstellen (so daß in einem Zeitschlitz Bits zweier aufeinanderfolgender Bytes über die Schnittstelle übertragen werden können, da die Übertragung in der Regel ohne Oktettausrichtung erfolgt).
- Falls dennoch ein Unterlauf stattfindet, generiert TL1 ein entsprechendes Unterlaufsignal für die Interrupt-Verarbeitung und sendet dann (bei protokollorientierten Kanälen) ein Abbruchmuster, gefolgt von einem Ruhe- oder Füllmuster. Nachdem das Abbruchmuster gesendet wurde, generiert TL1 ein entsprechendes Signal, das dieses Ereignis anzeigt. Ferner kann TL1 schnell auf Änderungen in den Abbruchsteuerbits (AR und AIM) im CCR reagieren und mit dem Senden eines Abbruchmusters beginnen. So kann TL1 vom IOP/Host über SIO und TSR jederzeit effektiv gesteuert werden, um eine Übertragung, die gerade im Gange ist, abzubrechen und dadurch beispielsweise den unnötigen Einsatz von Netzwerkkanälen für bekanntermaßen fehlerhafte Übertragungen reduzieren.
- Bei Kanälen, auf denen eine Kommunikation in HDLC-Protokollen stattfindet, erkennt TL1 die Übertragung von 5 aufeinanderfolgenden Einsen, die keine Begrenzungsdaten (keine Markierung, kein Ruhemuster und kein Abbruchmuster) darstellen, und ein 0- Bit einfügen (stopfen), um den Empfang solcher Daten als Begrenzungszeichen zu verhindern. Außerdem unterscheidet TL1 Protokollanfangs- und Protokollende-Meldungsrahmen und fügt in den entsprechenden Phasen der Übertragung Eröffnungs- und Schlußmarkierungen ein. Falls das Protokoll eine Bitinvertierung verlangt, wird auch diese von TL1 durchgeführt.
- TL1 arbeitet im synchronen Zeitmultiplexbetrieb, wodurch sein Status für einen aktiven Kanal während des zugehörigen BTDM- Zeitschutzes geladen (über RSM aus TSR) und am Ende des Zeitschlitzes (über RSM in TSR) gespeichert wird. Der Zeitwechselstatus von TL1 besteht aus einem einzigen Wort, TL1_TS01, das weiter unten unter Bezugnahme auf Fig. 24 erläutert wird. TL1 enthält ein 9-Bit-Statusangabenregister, das im Zusammenhang mit Fig. 23 beschrieben wird, und dessen Inhalt beim Zeitwechsel als Teil von TSL_TS01 gespeichert wird.
- TL1 verfügt über eine Reihe von Statusangaben, von denen einige zur Mitteilung von Fehler- und Ereignisbedingungen, die einen IOP-Interrupt erfordern, an die Interruptpartition INT und andere zur Steuerung der Verarbeitungsfortsetzung in TL1 über BTDM-Zeitschlitzrahmen hinweg verwendet werden. Auf einige dieser Angaben wird im folgenden kurz eingegangen.
- Ein "Verarbeitungsabbruch"-Bit weist darauf hin, daß ein Abbruchmuster (bzw. bei invertiertem HDLC ein invertiertes Abbruchmuster) gesendet wird. Dieses Bit wird beim Zeitwechsel gespeichert, damit ein Abbruchmuster, das gerade übertragen wird, am Ende des BTDM-Rahmens nicht verlorengeht.
- Ein Rahmenendebit wird gesetzt, wenn ein aus TV angefordertes Byte von diesem Element als letztes Datenbyte eines Protokollrahmens gekennzeichnet ist. Wenn dieses Bit gesetzt ist, sendet TL1 nach dem letzen Datenbyte automatisch eine Schlußmarkierung, auf die bei Bedarf ein Füllmuster folgt. Ein Füllmuster ist erforderlich, wenn TV entweder TV_ENDFRAME oder TV_ENDCHAIN übergibt. Die Form des Musters wird durch ein Bit im CCR festgelegt, nämlich durch das IFS-Bit (Auswahl des Füllmusters zwischen den Rahmen), falls ENDFRAME signalisiert wird, oder durch das ICS-Bit (Auswahl des Füllmusters zwischen Ketten), wenn ENDCHAIN signalisiert wird.
- Ein Datenregisterabfolgebit in Verbindung mit zwei Bits, die signalisieren, daß die betreffenden TL1-Datenpufferregister leer sind, legt die Abfolge des Datentransfers in Bezug auf die Datenpufferregister fest. Wenn eines dieser beiden Bits gesetzt ist, wird eine Datenabrufaktion für TV aufgerufen. Sind beide Bits nicht gesetzt (d.h. beide Datenpuffer voll), so werden die Daten aus den Registern ausgelesen, damit sie in der vom Abfolgebit festgelegten Reihenfolge an BTDM gesendet werden können. Sind beide Bits gesetzt, bestimmt das Abfolgebit die Reihenfolge, in der Daten in das Register geladen werden.
- Ein Unterlaufanzeigebit erinnert daran, daß ein Datenunterlauf erfolgt ist. In einem solchen Fall wird das Abbruchverarbeitungsbit gesetzt. Wenn TV nach dem letzten Byte eines Protokollmeldungsrahmens keinen weiteren Datenrahmen zu senden hat und das Schlußzeichen gesendet wurde, wird das Unterlaufanzeigebit gesetzt. Dies veranlaßt TL1, ein Füllmuster zu generieren. Der Wert des IFS-Bits in RSM_CCR (Auswahl des Füllmusters zwischen Rahmen) bestimmt die Form des Musters; ist es gesetzt, wird ein Ruhemuster gesendet, andernfalls Markierungszeichen.
- Ein Abbruchbit teilt INT mit, daß TFM eine Abbruchanforderung an INT übergeben hat. Dieses Bit, das von TFM über TV an TL übergeben wird, wird zurückgesetzt, wenn die betreffende Anforderung in TFM abgearbeitet und zurückgesetzt worden ist.
- Ein TFM-Rücksetzungsbit gibt an, daß TFM zurückgesetzt (deaktiviert, neu initialisiert und wieder aktiviert) wurde. Dieses Bit wird zum Zurücksetzen der Abbruchbedingung verwendet.
- Details der Elementlogik von TL1 und der speziellen Zustände dieser Logik werden in der als Referenzliteratur aufgeführten gleichzeitig anhängigen Patentanmeldung für autonome logische Elemente erläutert. Auf solche Details wird in der vorliegenden Beschreibung nicht eingegangen, da sie für den hier behandelten Sachverhalt nicht relevant sind. Insofern solche Details ergänzend von Bedeutung sein könnten, ist der entsprechende Abschnitt der gleichzeitig anhängigen Anmeldung durch diesen Verweis Teil des vorliegenden Dokuments.
- Das Zeitwechselstatuswort von TL1, TL1_TS01, besteht aus zwei 8-Bit-Feldern TLC1 und TLD2, einem 4-Bit-Feld TLDBP, einem 3- Bit-Feld TLTC und einem 9-Bit-Feld TLSI. Diese Felder haben die nachstehend aufgeführten Funktionen und Bedeutungen:
- Diese Felder zeigen den Inhalt der beiden Datenpufferregister von TL1 an, die abwechselnd Daten von TV empfangen.
- Zeigt auf das nächste Bit, das aus der aktuellen Datenpufferregisterquelle an BTDM gesendet werden soll. Die aktuelle Quelle wird durch TLDSS angegeben und kann Datenregister 1, Datenregister 2 oder ein interner Generator von Abbruch-, Ruhe- oder Markierungszeichen sein.
- Ein fortlaufender Zähler, der aufeinanderfolgende 1-Datenbits zählt, die in Zeitschlitzen für protokollorientierte Kanäle gesendet werden. Wenn der Zähler den Wert 5 erreicht, wird ein Stopfbit eingefügt. Der Zählerwert wird mit jedem gesendeten 1- Datenbit erhöht und nach dem Senden eines Stopfbits oder eines 0-Datenbits zurückgesetzt
- Gibt den neuesten Status von TL1-Statusangaben wieder.
- Das Sende-Gültigkeitsprüfungselement (TV) vermittelt bei der Übertragung von Sendedaten zwischen dem Sende-FIFO-Manager (TFM) und TL1. TV arbeitet im Zeitmultiplexbetrieb, synchron mit den von RSM definierten BTDM-Zeitschlitzen, und unterliegt in Bezug auf aktive Kanalzeitschlitze einem Statuswechsel mittels RSM und TSI. Die wichtigsten Funktionen von TV sind:
- - Sendedatenbytes werden nacheinander aus TFM in ein internes Datenregister geschrieben, verarbeitet wie oben beschrieben und an TL1 übertragen. Die Abrufanforderungen werden von TFM erteilt, wenn das interne Register leer ist.
- - In protokollorientierten Kanälen wird jedes abgerufene Byte der Sendedaten bitseriell der Rechenlogik übergeben, die eine CRC-Restkalkulation und eine Paritätsprüfung durchführt. Wenn das letzte Datenbyte eines Protokollrahmens an TL1 übergeben worden ist, wird der zwei Byte lange CRC-Rest invertiert und mit dem höchstwertigen Bit voran an TL1 übermittelt.
- - Bei Daten in protokollfreien Kanälen (z.B. digitalisierte Sprache) werden CRC-Generierung und Paritätsprüfung umgangen; d.h., die Anwendung dieser Funktionen wird in Abhängigkeit vom Wert im Kanaltypfeld CT des CCR ausgewählt.
- Details des logischen Aufbaus von TV und der speziellen Zustände seiner Maschine mit finiten Zuständen werden in der als Referenzilteratur aufgeführten gleichzeitig anhängigen Patentanmeldung für autonome logische Elemente erläutert. Auf solche Details wird in der vorliegenden Beschreibung nicht eingegangen, da sie für den hier behandelten Sachverhalt nicht relevant sind. Insofern solche Details ergänzend von Bedeutung sein könnten, ist der entsprechende Abschnitt der gleichzeitig anhängigen Anmeldung durch diesen Verweis Teil des vorliegenden Dokuments.
- Am Ende der Zeitschutzangabe von RSM, RSM_XMIT_EOS, bereitet sich TV auf die Speicherung seines Zeitwechselstatus vor. Dieser Status wird kontinuierlich an RSM übergeben und wird innerhalb einer vorgegebenen Zeitspanne nach dem Zeitschlitzendesignal gespeichert. Falls TV jedoch zu diesem Zeitpunkt kein Fertig-Signal TV_DONE an RSM übergeben hat, generiert RSM einen Zeitüberschreitungsfehler und den entsprechenden Interrupt.
- Das Statuswechselwort von TV besteht aus einem 8-Bit-Feld TVDR, einem 16-Bit-Feld TVCR, einem 1-Bit-Feld TVDV, einem 2-Bit-Feld TVDS, einem 1-Bit-Feld TVOE, einem 1-Bit-Feld TVEC, einem 1- Bit-Feld TVDP und einem 2-Bit-Feld TLDSS. Verwendung und Bedeutung dieser Felder werden im folgenden beschrieben.
- - Inhalt des TV-Datenpufferregisters
- - Status der kumulativen CRC-Restberechnung für den aktuellen Rahmen. Am Ende des Rahmens wird dieses Feld an die zu TL1 abgehenden Daten angehängt.
- - Der Wert dieses Bits gibt an, ob das Datenregister gültige Daten enthält (wenn das Bit gesetzt ist, bedeutet dies, daß gültige Daten weitergeleitet werden; wenn es nicht gesetzt ist, bedeutet dies, daß das Datenregister leer ist).
- - Zeiger auf die Quelle des nächsten an TL1 zu sendenden Bytes (als Quelle kommen in Frage: TV-Datenregister, obere 8 Bit des TV-CRC-Registers oder untere 8 Bits des TV-CRC- Registers).
- - Wenn dieses Bit aktiv ist, bedeutet das, daß ein Funktionsfehler (Z.B. ein ungültiger Zustand) festgestellt wurde. In diesem Fall werden alle TV-Verarbeitungsoperationen angehalten.
- - Kettenendesignal von TFM. Verlangt, daß das letzte Byte des CRC-Transfers an TL1 von einem Kettenendesignal begleitet ist, das letztere auf die Übertragung von Füllmustern vorbereitet.
- - Ungerade Parität für den Inhalt von TVDR.
- - Wird eigentlich von TL1 zu Beginn der Kanalverarbeitung TL1 zugeordnet; um die Anzahl der vom Zeitwechsel betroffenen Wörter, die für TSI benötigt werden, zu minimieren, werden diese 2 Bits durch TV gespeichert. Diese Bits dienen als Zeiger auf eine von vier Quellen für das nächste in TL1 auszusendende Datenbyte: Datenregister 1 und 2 in TL1, Quelle des Markierungssignals in TL1 oder Quelle von Ruhebzw. Abbruchmustern in TL1.
- FIFO RAM (FIFOR) und die FIFO-Manager (RFM und TFM) arbeiten zusammen, um die Übertragungsdaten auf dem Weg durch den asynchronen Teil 51 (Fig. 4) des IDLC-Geräts in Warteschlangen einzureihen. In diesem asynchronen Teil werden die Daten von der DMA-Steuerpartition DMAC und der MIO-Partition verarbeitet, und von diesen Partitionen zwischen dem externen IOP-Speicher und FIFOR übertragen. Wie der Zeitwechsel-RAM (TSR) enthält auch FIFOR eine Logik zur Steuerung seines Datenflusses von und zu anderen Partitionen.
- Wie in Fig. 16 zu sehen ist enthält FIFOR eine statische RAM- Matrix 200 mit 128 x 36 Stellen, die Eingangssignale über Busauswahlschaltungen 201 (von SIO, RSM, RFM, TFM und DMAC) empfängt und an 202 Ausgangssignale an einen mit 203 bezeichneten Datenbus (FIFOR_DATA) liefert. Bus 203 führt zu SIO, RFM, TFM und DMAC. Die Logik 204, eine Maschine mit finiten Zuständen, die mit Anforderungsschaltern 205 zusammenarbeitet, steuert die Operationen der Auswahlschaltung 201 und der RAM-Matrix 200.
- Matrix 200 enthält 128 Datenwort-Speicherbereiche, die jeweils aus 36 Bitspeicherstellen bestehen (32 Datenbit- und 4 Paritätsbitstellen pro Wortbereich). In Fig. 7 ist in der exemplarischen Primärraten-ISDN-Umgebung die Hälfte des Bereichs, der einem Kanal zugeteilt ist, für die Sende-DMA-Konfigurationsregisterwörter TDCR1, TDCR2 und die andere Hälfte für die Empfangs-DMA-Konfigurationsregisterwörter RDCR1, RDCR2 reserviert. Die RDCR1,2- und TDRC1,2-Bereiche für jeden aktiven Kanal enthalten Status- und Übertragungsdateninformationen für den betreffenden Kanal. Die Bitverwendung in den einzelnen Wortbereichen wird weiter unten mit Bezug auf Fig. 33 bis Fig. 36 beschrieben.
- Eingangsdaten von SIO, RFM, TFM und DMAC in der Matrix 200 werden über die Auswahlschaltungen 201 übergeben. Ausgangsdaten gehen über Bus 203 an diese Partitionen, wobei die genauen Adressen durch Bestätigungsausgänge der Logik 204 an 206 bezeichnet werden. Die Adressierung dieser Matrix erfolgt in einigen Fällen direkt und in anderen indirekt. Auf jeden Fall sendet die zugreifende Partition ein Signal an die Anforderungsschalter 205, das angibt, ob der gewünschte Zugriff ein Schreib- oder ein Lesezugriff ist (z.B. SIO_FIFOR_RD oder SIO_FIFOR_WR). Für solche Lese-/Schreibanforderungen besitzen TFM und DMAC separate Eingänge für das Lesen oder Schreiben eines einzigen Wortes oder zweier aufeinanderfolgender Wörter (RFM und SIO senden immer 1-Wort-Anforderungen).
- Wenn SIO auf die Matrix zugreift, liefert sie über SIO _-ADDRESS_BUS ein explizites Adreßeingangssignal, das die Auswahlschaltung 201 an den Adreßeingang der Matrix 200 übermittelt. Beim Schreiben von Daten wird ein an SIO_DATA übergebenes Datenwort vom Auswahlschalter 201 an den Dateneingang der Matrix übermittelt. Die Daten, die in SIO (oder die anderen Partitionen) geholt werden, erscheinen an Bus 203. FIFOR_SIO_ACK an 206 gibt SIO als Bestimmungsort an.
- Beim Schreiben von Daten aus TFM oder RFM in die Matrix oder beim Auslesen von Daten aus der Matrix in diese Partitionen wird das Adreßeingangssignal am Auswahlschalter 201 indirekt als Kombination der Zeitschlitzangabe von RSM, RSM_TSI, und Auswahlfunktionen am Ausgang 207 der Logik mit finiten Zuständen 204 zur Verfügung gestellt. RSM_TSI adressiert effektiv den Block aus (4 Wort-)Positionen, der jedem Kanal zugeteilt ist, und die Auswahlfunktionen an 207 liefern den Adreßoffset für eine bestimmte Wortspeicherstelle im Block. Bei Empfangsdatentransfers von RFM, die je byteweise erfolgen, liefert RFM ein weiteres Adreßeingangssignal RFM_FIFOR_BPP (wobei "BPP" für den Bytepositionszeiger steht), das die Adreßauswahl in eine Byteposition innerhalb eines ausgewählten Wortbereichs auflöst.
- Wenn RSM in die Matrix schreibt, übergibt er ein Byte der Empfangsdaten an RFM_FIFOR_DATA zusammen mit dem Bytepositionszeiger RFM_FIFOR_BPP; dieser bezeichnet eine bestimmte Byteposition innerhalb des Blocks, der durch RSM_TSI und das an 207 ausgewählte Wort adressiert wird. Wenn TFM in die Matrix schreibt, werden nur Statuswortinformationen geschrieben, die an TFM_TDFSW_DATA übergeben werden. Beim Abrufen von Daten durch RFM oder TFM wird ein ganzes Wort an Bus 203 zusammen mit einem zugehörigen Bestätigungssignal FIFOR_RFM_ACK oder FTFOR_TFM_ACK zur Angabe der Zielpartition an 206 ausgegeben.
- Wenn DMAC auf die Matrix zugreift, werden die Adressierungseingangssignale als Kombination aus Kanalnummereingangssignalen von DMAC, DMAC_CHN_NBR, und den Auswahlausgangssignalen an 207 gebildet. Die Daten werden an DMAC_FIFOR_DATA zum Schreiben übergeben, und die ausgelesenen Daten werden zusammen mit FIFOR_DMAC_ACK an 206 über Bus 203 an DMAC übermittelt.
- Ausgangssignale von Matrix 200 an Bus 203 werden parallel an die Paritätsprüfungsschaltung 202a übergeben, die die Daten einer Paritätsprüfung unterzieht. Wenn ein Paritätgfehler erkannt wird, liefert diese Schaltung ein Fehlersignal, FIFOR_PARITY _-ERROR, an 202b. Dieses Fehlersignal wird der anfordernden Partition übergeben und von dieser zur Erzeugung eines Interrupt- Signals an die INT-Partition verwendet (zur Protokollierung des zugehörigen Status in CEISR/TSR und zur Übermittlung an IOP als kanalbezogene Fehlerbedingung; siehe Beschreibung von INT weiter unten).
- Schreib-/Lesezugriffe und Taktfunktionen der Matrix werden über die Ausgänge der Logik 204 an 208 gesteuert (sie werden von Eingangssignalen an die Anforderungsschalter 205 abgeleitet) Einzelne Lese- oder Schreibanforderungen benötigen 3 Maschinentaktzykien (Zustandszyklen). Im ersten Zyklus werden die Anforderungsauswahlfunktionen definiert und die Schreib-/Lese-Eingänge sowie die nicht abgebildeten Taktaktivierungseingänge der Matrix aktiviert. Im nächsten Zyklus werden die Taktaktivierung und die Auswahlfunktionen für eine gleichmäßige Taktung der Matrix geschaltet. Im dritten Zyklus schließlich werden die Bestätigungsausgänge aktiviert und die Takt- und Auswahlsignale deaktiviert. Aufeinanderfolgende Zugriffe (Doppelwortzugriffe) erfolgen in 5 Zyklen, wobei er erste Zyklus des zweiten Zugriffs mit dem letzten Zyklus des ersten Zugriffs zusammenfällt.
- In FIFOR sind den Elementarkanälen, die den Zeitschlitzen eines elementaren BTDM-Zeitschlitzwiederholungsrahmens zugeordnet sind, jeweils 4 Wortbereiche zugeteilt (Fig. 7). Zwei dieser Bereiche (RDCR1, TDCR1) enthalten DMA-Steuerdaten für den betreffenden Kanal, die beiden anderen (RDCR2, TDCR2) dienen als Puffer, in denen die gerade empfangenen und gesendeten Daten in Form einer Warteschlange zwischengespeichert sind.
- Details der Bitverwendung in den Wortbereichen RDCR1,2 und TDCR1,2 im DMA-Konfigurationsregister von Matrix 200 sind in Fig. 22 bis Fig. 25 dargestellt. RDCR1 und TDCR1 dienen zur Speicherung bestimmter Status- und Steuerparameter für die betreffenden (aktiven) Kanäle, und die Bereiche RDCR2 und TDCR2 fungieren als 4-Byte-Warteschlangen für Empfangs- und Sendedaten, die die betreffenden (aktiven) Kanäle durchlaufen.
- In jedem aktiven Kanal mit einem Empfangspfad werden die Empfangsdaten byteweise von RV über RFM in (individuell adressierte) Bytepositionen des betreffenden RDCR2-Bereichs in Matrix 200 übertragen. Für jeden aktiv sendenden Kanal werden Sendedaten byteweise von TDCR2/FIFOR an TFM übertragen, und von dort aus an TV. Beim Transfer an TFM wird das ganze Wort TDCR2 abgerufen und eine Byteauswahl durch TFM vorgenommen. Transfers von RFM zur Matrix 200 und von der Matrix zu TFM finden während der betreffenden synchronen (dem Zeitwechsel unterliegenden) Operationen von RFM und TFM statt, auf die im folgenden noch näher eingegangen wird.
- Wenn ein RDCR2-Bereich mit 4 Bytes aufgefüllt wird, sendet RFM eine Anforderung an DMARQ (die DMA-Anforderungswarteschlange), die die DMAC-Partition veranlaßt, in Zusammenarbeit mit der MIO-Partition die 4 Bytes (asynchron) in einen Bereich im externen Speicher (von IOP/Host) zu übertragen, der durch die Adreßinformation im betreffenden RDCR1-Feld festgelegt wird. Diese Adresse wird als RDCA (aktuelle DMA-Empfangsadresse; 22 Bits) bezeichnet. Der externe Speicher wird als Kreispuffer adressiert (siehe ausführliche Beschreibung von DMAC weiter unten). Die übrigen 10 Bitpositionen in RDCR1 setzen sich aus 8 reservierten Bitpositionen (RES), einem 1-Bit-Feld RPE (Paritätsfehler beim Empfang) zur Signalisierung eines in der FIFOR-Ausgabe an DMAC erkannten Paritätsfehlers und einem 1- Bit-Feld RBC (Grenzfehler beim Empfang) zur Signalisierung von Grenzfehlerbedingungen beim Transfer zusammen (siehe Beschreibung von DMAC).
- Entsprechend sendet TFM, wenn ein TDCR2-Wortbereich für einen aktiven Kanal in FIFOR leer wird, eine Anforderung an DMARQ, die DMAC veranlaßt, unter Verwendung von Steuerinformationen, die im entsprechenden TDCRL-Bereich gespeichert sind, Daten (asynchron) aus dem externen Speicher (von IOP/Host) abzurufen (eine ausführliche Erläuterung der TDCR1-Felder folgt weiter unten bei der Beschreibung von DMAC). Kurz ausgedrückt bestehen die Felder in jeden TDCR1-Wort aus 7 reservierten Bits (RES), einem 16-Bit-TDBC-Feld (DMA-Bytezähler für Senden), in dem die Länge des aktuellen externen Datenpufferbereichs in Byte festgelegt wird, drei 2-Bit-Feldern und drei 1-Bit-Feldern. Die 2- Bit-Felder sind: TBC (Sendepufferzähler) als Zeiger auf das nächste an TV zu übertragende Byte in TDCR2, TOPQ (Obergrenze der Warteschlange) als Zeiger auf die erste zulässige Byteposition in TCR2 (dieser Wert ist besonders wichtig, wenn weniger als 4 Bytes in TCR2 geladen worden sind) und PE (DMA-Paritätsfehler beim Senden) zur Mitteilung, ob beim DMAC-Transfer für den externen Speicher und/oder FIFOR ein Paritätsfehler aufgetreten ist. Die 1-Bit-Felder, die Angaben über externe Zugriffsbedingungen enthalten, die von DMAC gesetzt werden können (Details siehe Beschreibung von DMAC) sind ECD (Kettenende erkannt), EFD (Rahmenende erkannt) und NDI (Keine Daten).
- Um die folgende Beschreibung zu vereinfachen, werden die für FIFOR relevanten 1-Bit- und 2-Bit-Zustandsfunktionen von TDCR1 kollektiv als Sende-DMA FIFO-Statuswort (TDFSW), das DMAC- Kanalnummeradreß-Eingangssignal in FIFOR als DMAC-Adresse, und die Zeitschlitzadreßangabe von RSM an FIFOR als RFM- bzw. TFM- Adresse (je nachdem, welche der beiden Partitionen gerade auf FIFOR zugreift) bezeichnet.
- - Alle FIFOR-Zugriffsanforderungen werden ständig geschaltet (an den Anforderungsschaltern 205). In diesem Zustand wird den Anforderungen nach den vorgegebenen Arbitrationsregeln eine Prionät zugewiesen, und die Daten für die maßgebliche Anforderung werden in FBS (FIFOR-Busauswahlschalter) 201 geladen.
- - Folgende Prioritäten (in absteigender Reihenfolge) können vergeben werden: TDFSW-Aktualisierungen von TFM, Doppelwort-Leseanforderungen von DMAC, Einzelwort-Schreibanforderung von DMAC, Einzelwort-Leseanforderung von DMAC, Doppelwort-Schreibanforderungen von DMAC, DMAC-Paritätsfehler beim Schreiben, RFM-Leseanforderung, RFM-Schreibanforderung, Einzelwort-Leseanforderung von TFM, Doppelwort-Leseanforderung von TFM, SIO-Leseanforderung, SIO-Schreibanforderung.
- - Wenn die ausgewählte Anforderung eine TDFSW-Aktualisierungsanforderung für TFM ist (TFM_FIFOR_WR1), werden die Adresse und die aktualisierten TDFSW-Daten (TFM_TDFSW_DATA) von FBS (FIFO-Busauswahlschalter) 201 ausgewählt. Die Eingänge für die erste Byteauswahl, Schreiben und Taktaktivierung werden aktiviert. In diesem Fall folgt Zustand 11.
- - Wenn es sich um eine Anforderung zum Lesen eines Doppelwortes aus FIFOR nach DMAC handelt (DMAC_FIFOR_RD2), wird angenommen, daß FIFOR sowohl die aktuelle externe Adresse, die im RDCA-Feld des durch die DMAC-Adresse angesprochenen RDCR1-Wortbereichs gespeichert ist, als auch die im zugehörigen RDCR2-Bereich gespeicherten Empfangsdaten anfordert (beide Bereiche werden zum Teil durch DMAC_CH_NBR bezeichnet). Die zugeordneten Wortbereiche werden nacheinander adressiert, und die Steuersignale für eine Leseoperation werden aktiviert. Es folgt Zustand 1.
- - Wenn es sich um eine Anforderung zum Lesen eines Einzelwortes in DMAC (DMAC_FIFOR_RD1) handelt, wird angenommen, daß DMAC die TDBC-Information im TDCR1-Bereich des zugeordneten Kanals anfordert. Die betreffende Adresse wird von FBS ausgewählt, und die Matrixsignale für das Schreiben werden aktiviert. Es folgt Zustand 2.
- - Wenn es sich um eine Anforderung zum Schreiben eines Doppeiwortes aus DMAC (DMAC_FIFOR_WR2) handelt, speichert DMAC TDBC und Sendedaten. FBS wählt die entsprechenden Wortadressen nacheinander aus, und die Matrixsteuersignale für aufeinanderfolgende Schreibzugriffe werden aktiviert. Es folgt Zustand 12.
- - Wenn es sich um eine Schreibanforderung mit Paritätsfehlermeldung handelt, hat DMAC als Ergebnis von DMAC-Anforderungen zum Lesen eines Einzel- oder Doppelwortes aus FIFOR einen Paritätsfehler festgestellt. Das betreffende TDCR1 oder RDCR1 wird durch Kombination von DMAC_CHN_NBR, DMAC_RCV_REQ und FBS-Auswahl ausgewählt. Es folgt Zustand 14.
- - Wenn es sich um eine RFM-Schreibanforderung handelt (RFM_FIFOR_RD aktiv), fordert RFM Statusinformationen aus dem zugeordneten RDCR1 an. Es wird eine entsprechende Adreßauswahl getroffen (in Abhängigkeit von RSM_TSI und den Wortpositionsauswahlsignalen der Maschine mit finiten Zuständen), und die Steuersignale für eine Leseoperation werden aktiviert. Es folgt Zustand 4.
- - Wenn es sich um die Anforderung einer Ein-Byte-Schreiboperation von RFM (RFM_FIFOR_WRI aktiv) zum Transfer eines Empfangsdatenbytes handelt, wird die Byteadresse von FBS als Antwort auf RFM_FIFOR_BPP ausgewählt, und die Steuersignale für eine Schreiboperation werden aktiviert. Es folgt Zustand 15.
- - Wenn es sich um eine Anforderung zum Lesen von Sendedaten aus TFM handelt (TFM_FIFOR_RD1 aktiv) handelt, wird die erforderliche TDCR2-Adresse von FBS ausgewählt (in Abhängigkeit von RSM_TSI und intern generierten Wortpositionsangaben), und die Steuersignale für eine Leseoperation werden aktiviert. Es folgt Zustand 5.
- -Wenn es sich um eine Anforderung zum Lesen eines Doppelwortes aus TFM (TFM_FIFOR_RD2) handelt, will TFM sowohl auf den TDCR1-Bereich als auch auf den TDCR2-Bereich des betreffenden Kanals zugreifen. Diese Bereiche werden nacheinander adressiert (in Abhängigkeit von RSM_TSI und intern generierten Wortpositions-Auswahlsignalen), und die Steuersignale für Leseoperationen werden aktiviert. Es folgt Zustand 6.
- - Wenn es sich um eine Einzelwort-Leseanforderung für SIO handelt (SIO_FIFOR RD aktiv), wird die von SIO gelieferte Adresse (SIO_ADDRESS) ausgewählt, und die Steuersignale für eine Leseoperation werden aktiviert. Es folgt Zustand 7.
- - Wenn es sich um eine Anforderung zum Schreiben eines Wortes aus SIO in den FIFOR handelt (SIO_FIFOR_WR aktiv), wird die SIO-Adresse ausgewählt, und die Steuersignale für eine Schreiboperation werden aktiviert. Es folgt Zustand 8.
- - Die Matrixsteuersignale für den Natrixzugriff zum Lesen der RDCR1-Position der DMAC-Adresse (DMAC_CH_NBR) werden aktiviert. Es folgt Zustand 8.
- - Die Matrixsteuersignale für den Matrixzugriff zum Lesen der TDCR1-Position der DMAC-Adresse werden aktiviert. Es folgt Zustand 20.
- - FIFOR_DMAC_ACK wird erzeugt, um DMAC mitzuteilen, daß Sendedaten geschrieben wurden und aktualisierte TDBC und TDFSW für die nächste Schreiboperation übergeben werden müssen. Das Matrixaktivierungssignal wird danach deaktiviert, die Auswahl- und Schreibzugriffs-Steuersignale bleiben aber aktiv. Es folgt Zustand 13.
- - Die Matrixsignale für das Lesen des RDCR1 für den Kanal werden zuerst aktiviert, dann deaktiviert. Es folgt Zustand 21.
- - Die Matrixsignale für das Lesen des TDCR2 für den Kanal werden zuerst aktiviert, dann deaktiviert. Es folgt Zustand 23.
- - Die Matrixsignale für das Lesen des TDCR1 für den Kanal werden zuerst aktiviert, dann deaktiviert. Es folgt Zustand 10.
- - Die Matrixsignale für das Lesen des Wortes an SIO_ADDRESS wird zuerst aktiviert, dann deaktiviert. Es folgt Zustand 22.
- - FIFOR_DMAC_ACK wird an DMAC übergeben. Die DMAC-Adresse wird auf die zweite Wortposition (RDCR2) des gleichen Kanals gesetzt. Das Taktsignal für den zweiten Lesezugriff wird aktiviert. Es folgt Zustand 9.
- - Die Matrixsignale für das zweite Lesen wird zuerst aktiviert, dann deaktiviert. Es folgt Zustand 20.
- - FIFOR_TFM_RD_ACK wird ausgegeben, damit TFM die TDFSW- Informationen an Bus 203 akzeptiert und sich als nächstes auf das Akzeptieren von Sendedaten vorbereitet. Das Taktsignal für den nächsten Lesezugriff wird aktiviert, und die TFM-Adresse wird auf die nächste Wortposition (TDCR2) gesetzt. Es folgt Zustand 16.
- - Das Matrixtaktsignal für das Schreiben in den entsprechenden TDFSW/TDCR1-Bereich wird aktiviert. Das Taktsignal wird deaktiviert. Es folgt Zustand 19.
- - Das Matrixtaktsignal für das Schreiben der Sendedaten von DMAC in den TDCR2-Bereich des betreffenden Kanals wird aktiviert. Die Adresse wird auf den nächsten Wortbereich (den von TDCR1) gesetzt. Das Taktsignal wird deaktiviert. Es folgt Zustand 3.
- - Das Taktsignal für den Matrixzugriff zum Schreiben in den TDCR1-Bereich wird aktiviert, dann deaktiviert. Es folgt Zustand 20.
- - Das Taktsignal für den Matrixzugriff zum Schreiben in den TDCR1 PE-Bereich wird aktiviert, dann deaktiviert. Es folgt Zustand 20.
- - Matrixzugriff zum Schreiben von eines Datenbyte aus RFM in den RDCR2-Bereich des betreffenden Kanals/Zeitschlitzes. Das Taktsignal wird deaktiviert. Es folgt Zustand 21.
- - Matrixzugriff zum Schreiben von Sendedaten aus dem TDCR2- Bereich des betreffenden Kanals in TFM (TFM wählt das richtige Byte aus). Das Taktsignal wird deaktiviert. Es folgt Zustand 23.
- - Wenn keine Markierung erkannt wird, wird das Prüfregister auf Ruhe- oder Füllmuster (7 oder mehr aufeinänderfolgende Einsen) untersucht. Wird ein solches festgestellt, wird die entsprechende Ruhe- oder Abbruchangabe für INT gesetzt, das Datenregister gelöscht und der Bitzähler zurückgesetzt.
- Wenn RDATA_VAILD inaktiv ist, folgt Zustand 1, sonst Zustand 3.
- - Es wird auf die Matrix zugegriffen, und das SIO_DATA-Wort wird an die durch SIO_ADDRESS bezeichnete Position geschrieben. Das Taktsignal wird deaktiviert. Es folgt Zustand 22.
- - Matrixzugriff zum Schreiben in den RDCR1-Bereich der von DMAC angegebenen Kanalnummer. Das Taktsignal wird deaktiviert. Es folgt Zustand 20.
- - FIFOR_TFM_ACK wird ausgegeben. Die Matrixsteuersignale werden deaktiviert. Es folgt Zustand 0.
- - FIFOR_DMAC_ACK wird ausgegeben. Die Matrixsteuersignale werden deaktiviert. Es folgt Zustand 0.
- - FIFOR_ACK_RFM wird ausgegeben. Die Matrixsteuersignale werden deaktiviert. Es folgt Zustand 0.
- - FIFOR_SIO_ACK wird ausgegeben. Die Matrixsteuersignale werden deaktiviert. Es folgt Zustand 0.
- - FIFOR_TFM_RD_ACK wird ausgegeben. Die Matrixsteuersignale werden deaktiviert. Es folgt Zustand 0.
- Der RFM (Empfangs-FIFO-Manager) überträgt Empfangsdatenbytes zwischen RV und individuell adressierten Bytepositionen in den RDCR2-Wortbereichen von FIFOR und leitet auf Anforderung von DMARQ Transfers von Empfangsdaten aus FIFOR in den Host/IOP- Speicher ein (von DMAC gesteuert). RFM kann auch auf Statusinformationen in den RDCR1-Bereichen von FIFOR zugreifen (z.B. um festzustellen, ob bei den betreffenden DMAC-Transfers von FIFOR in den Host/IOP-Speicher ein Paritätsfehler aufgetreten ist).
- RFM arbeitet synchron mit RV und RL1 im Zeitmultiplexbetrieb zusammen, um aktive Kanäle synchron mit dem Erscheinen des dem Kanal zugeteilten Zeitschutzes an BTDM zu bedienen. Wie die anderen synchronen Elemente wird RFM von RSM in regelmäßigen Zeitabständen, die mit dem Erscheinen der Zeitfenster zusammenhängen, gestartet und angehalten. Wenn RSM das Signal zum Anhalten (RSM_RCV_EOS) erhält, geht er in einen Ruhezustand über und sendet RSM_DONE als Hinweis, daß er sich in einem stabilen Zustand befindet, der für den zeitwechselbedingten Austausch von Statuswörtern (RFM_TS01 und RFM_TS02) für Ende und Anfang von Kanalzeitschlitzen geeignet ist. Die neuen Statuswörter werden als Antwort auf Ladesteuersignale von RSM (RSM RFM_LOAD1 und RSM_RFM_LOAD2) geladen. Nach dem Laden des neuen Kanalstatus erhält RFM das Startsignal RSM_RCV START.
- Bei Operationen für einen aktiven Kanal akzeptiert RFM Datenbytes von RV und speichert sie an bestimmten Bytepositionen der zugeordneten Kanalwortbereiche RDCR2 in FIFOR. Wenn diese Bereiche voll werden, schreibt RFM eine Anforderung in DMARQ, die DMAC veranlaßt, den Inhalt dieses Bereichs (asynchron) an den externen IOP-Speicher zu übertragen. RFM verarbeitet auch Statusinformationen von RV, zählt die in jedem Rahmen empfangenen Bytes und signalisiert der INT-Partition das Rahmenende. Außerdem verarbeitet der Statusbedingungen, die von DMAC in die RDCR1-Bereiche von FIFOR geschrieben wurden, und informiert die INT-Partition über gespeicherte Grenzfehler- und Paritätsfehlerbedingungen.
- Die Zeitwechselwörter, die von RSM gesteuert zwischen RFM und TSR übertragen werden (RFM_TS01 und RFM_TS02), sind in Fig. 18 und Fig. 19 dargestellt.
- RFM_TS01 besteht aus folgenden Feldern: einem 8-Bit-Feld RFMD, das alle von RV empfangenen und noch nicht an FIFOR übertragenen Daten enthält; einem 1-Bit-Feld RFMDP, das die Parität der in RFMD gespeicherten Daten angibt; einem 2-Bit-Feld RFMBP, das einen Bytezeiger auf die nächste Byteposition in FIFOR/RDCR2, an die Empfangsdaten für den aktuellen Kanal zu senden sind, enthält; ein 3-Bit-Feld RFMS, in dem der aktuelle Status von RFM in Bezug auf den betreffenden Kanal angegeben wird, wobei folgende Angaben möglich sind: Ruhestatus (es werden keine gültigen Daten empfangen), aktiver Status (Empfang gültiger Daten, die in FIFOR zu schreiben sind) oder "zwischen Rahmen" (es wurde ein Ruhe-, Abbruch- oder Rahmenendesignal von RV empfangen, das eine entsprechende Statusschreiboperation durch RFM in die INT-Partition erfordert, sobald der betreffende FIFOR-Inhalt von DMA an IOP übergeben wurde); einem 8-Bit-Feld RFMIS, das den Interruptstatus von RFM angibt, wobei folgende Angaben möglich sind: Ruhemuster empfangen, Rahmenende festgestellt, Abbruchmuster festgestellt, Oktettausrichtungsfehler festgestellt, CRC-Fehler festgestellt, Pufferüberlaufbedingung in Bezug auf FIFOR/RDCR2 festgestellt; und 8 reservierten Bitpositionen (die derzeit nicht verwendet werden, aber für andere Angaben zur Verfügung stehen).
- RFM_TS02 enthält ein 16-Bit-Feld RFMBC, das die Anzahl der Bytes angibt, die im aktuellen Rahmen von RFM für den betreffenden Kanal empfangen wurden, sowie 16 reservierte bzw. nicht benutzt Bits. Bei Erkennung eines Rahmenendes oder einer Ruheoder Abbruchbedingung paßt RFM den Wert in RFMFBC an (damit gewährleistet ist, daß CRC-Bytes nicht mitgezählt werden), und der angepaßte Wert wird zusammen mit dem Wert von RFMIS in RFM_TS01 an die INT-Partition übergeben (und von dieser übernommen), während diese die Interruptverarbeitung durchführt.
- Der logische Aufbau von RFM ist in Fig. 17 dargestellt. RFM besteht aus einer Logik mit finiten Zuständen 220, einer Busauswahlschaltung 221 für die Übertragung der von RV übergebenen Empfangsdaten und Statusinformationen (als Antwort auf Auswahlfunktionen von der Logik 220), den Datenregistern 222 für den Empfang der von der Auswahlschaltung 221 ausgewählten Informationen (als Antwort auf Steuersignale von der Logik 220), und den Zeitwechsel-Statusregistern 223 für die Speicherung der aktuellen Zeitwechsel-Statuswörter von RFM (diese Partition verfügt über zwei solche Wörter und zwei Register für ihre Speicherung).
- In normalen Betrieb von RFM kann die Logik 220 folgende Zustandsübergänge vornehmen: Start im Ruhezustand (Zustand 0); Übergang zu Zustand 4 bei Empfang von RSM_RCV_START, wo ein Signal abgewartet/geprüft wird, das besagt, ob der FIFOR-Puffer noch nicht voll ist (falls der Puffer voll ist, wird in Zustand 4 gewartet, bis er nicht mehr voll ist; erst dann wird der nächste Zustand eingenommen); Übergang zu Zustand 10, wo geprüft wird, ob ein FIFOR-Paritätsfehler aufgetreten ist, und wo auch anhand des von DMAC gesetzten RDCR1-Status festgestellt wird, ob eine Grenzfehlerbedingung vorliegt. Ist keiner dieser Fehler festgestellt worden, erfolgt wird zu Zustand 1 übergewechselt, wo auf eine Datentransferanforderung von RV gewartet wird; anschließend erfolgt ein Übergang zu Zustand 5, wo die Daten in FIFOR gespeichert werden; und nach Empfang des Zeitschlitzendesignals RSM_RCV_EOS wird schließlich wieder der Ruhezustand 0 eingenommen. Im folgenden werden die Zustände der Logik 220 ausführlich beschrieben.
- - In diesem Zustand kann RFM seine Zeitwechsel-Statuswörter sicher ein- und auslagern. Das RFM_DONE-Signal kann erzeugt werden (nach Empfang von RSM_RCV_EOS), das es RSM ermöglicht, TSR zur Speicherung des aktuellen RFM Status, der von den Registern 223 an die Ausgänge RFM_TS01 und RFM_TS02 übergeben wird, zu veranlassen. Ferner können in diesem Zustand als Antwort auf Ladesteuersignale von RSM (RSM_RFM - LOAD1, RSM_RFM_LOAD2) neue Statusinformationen von RFM_TS _-BUS in die Register 223 geladen werden. Nach dem Laden des Status startet RSM die RFM-Verarbeitung mittels RSM_RCV _-START.
- - In diesem Zustand wartet RFM auf RSM_RCV_START. Wenn dieses Signal aktiv ist, wird der Zustand des Empfangs-DMA-Freigabebits (RDE) in RSM_CCR abgefragt. Ist dieses Bit nicht gesetzt (aktueller Kanal nicht für den Empfang freigegeben), folgt Zustand 8. Ist das Bit gesetzt und weisen RFM- Statusfelder (RFM- und RFMIS-Felder in RFM_TS01) auf einen vorausgegangenen Fehler in diesem Kanal hin, wird Zustand 8 eingenommen, andernfalls Zustand 4.
- - Der Statuswert wird abgefragt, um die für den aktuellen Zustand notwendigen Tasks zu starten. Wird RFM in diesem Zustand von RSM angehalten, wird Zustand 0 eingenommen. Wenn der Statuswert darauf hinweist, daß zuvor Ruhemuster festgestellt wurden, folgt Zustand 2. Wenn der Statuswert zu erkennen gibt, daß zuvor Daten empfangen, aber noch nicht in FIFOR geschrieben wurden, wird eine FIFOR-Schreibanforderung RFM_FIFOR_WR_REQ gestellt und Zustand 5 eingenommen. Weist der Statuswert auf einen vorausgegangenen Empfang eines Rahmenendesignals von RV hin, wird Zustand 9 eingenommen und dies INT mitgeteilt. Gibt der Statuswert die vorausgegangene Erkennung eines Paritätsfehlers oder einer Grenzfehlerbedingung an, wird Zustand 8 eingenommen. Wenn der Statuswert darauf hinweist, daß ein schwerer Logikfehler festgestellt wurde, erfolgt eine Rückkehr zu Zustand 0.
- - In diesem Zustand werden von RV übergebene Daten und Statusinformationen (Rahmenende, Abbruch oder Ruhezustand) verarbeitet. Wenn RV_RFM_REQ aktiv ist, bedeutet dies, daß die Daten am RV_RFM_DATA-Eingang der Auswahlschaltung 221 gültig sind. RV_RFM_REQ_STATUS signalisiert, daß der Status am RV_RFM_STATUS-Eingang der Auswahlschaltung 221 gültig ist. Je nachdem, ob der Dateneingang oder der Statuseingang aktiv ist, wird das entsprechende Bestätigungssignal RFM_RV_D_ACK oder RFM_RV_S_ACK aktiviert.
- - Wenn Rahmenendestatus und Daten gleichzeitig von RV empfangen werden, wird ein Zustandsstatus gesetzt, der den Empfang des Rahmenendes signalisiert, und mittels RFM_RV_D_ACK wird eine Datenempfangsbestätigung an RV übergeben. Der Status der FIFOR-Datenpuffer in RDCR2 wird darauf geprüft, ob sie zwei oder mehr gültige Datenbytes enthalten. Ist dies der Fall, wird RFM_DMARRQ_SET aktiviert, um DMAC- Verarbeitungsfunktionen anzufordern, und es wird zu Zustand 11 übergewechselt. Ist die Anzahl der Bytes in FIFOR zu diesem Zeitpunkt kleiner als 2, wird RFM_DMARQ SET nicht aktiviert, und es wird Zustand 6 eingenommen.
- - Wenn nur Daten von RV empfangen werden, wird der Zustandsstatus so geändert, daß er den Empfang eines Datenbytes zu erkennen gibt. Mittels RFM_RV_ACK wird eine Bestätigung an RV übergeben, der Empfangsdatenbyte-Zählerwert (RFMBC in RFM_TS02) wird um 1 erhöht, und es wird Zustand 5 eingenommen.
- - Wenn nur ein Rahmenendestatus empfangen wird, wird der Zustandsstatus so geändert, daß er darauf hinweist, daß der Rahmenbytezähler um 1 verringert wird, falls er größer als Null ist (als Anpassung an die Übertragung von CRC). Mit- tels RFM_RV_S_ACK wird ein Bestätigungssignal an RV übergeben, und die Anzahl gültiger Bytes im FIFOR-Datenpuffer wird geprüft. Enthält dieser Puffer mindestens 3 gültige Bytes, wird das Anforderungsbit für DMARQ (RFM_DMARQ_SET) aktiviert und Zustand 11 eingenommen. Enthält er weniger als 3 gültige Bytes, wird ohne Aktivierung der DMARQ-Anforderung Zustand 6 eingenommen. Die Anzahl gültiger Bytes, die sich beim Empfang eines Rahmenendesignals in FIFOR befinden, ist wichtig, weil diese Bedingung nur in Kanälen mit HDLC-Protokoll vorkommt, in denen die letzten beiden von RV übertragenen Bytes CRC-Restbytes sind, die nicht Teil des Rahmendatenzählerwertes sind; der Zählerwert muß deshalb sofort so angepaßt werden, daß er die wahre Anzahl der Enpfangsdatenbytes widerspiegelt.
- - Wird ein Abbruch- oder Ruherahmenstatus von RV empfangen, so wird die Anzahl gültiger Datenbytes in FIFOR geprüft. Enthält FIFOR keine gültigen Datenbytes, folgt Zustand 9. Enthält er ein Byte, wird Zustand 6 eingenommen. Enthält er zwei Bytes, wird der Rahmenbytezählerwert um eins verringert und Zustand 6 eingenommen. Bei 3 Bytes wird der Rahmenbytezählerwert um eins verringert und Zustand 3 eingenommen.
- - Der Rahmenbytezählerwert wird um eins verringert, dann wird Zustand 6 eingenommen.
- - Wird RFM in diesem Zustand von RSM angehalten, wird in Zustand 0 übergewechselt. Im vorliegenden Zustand wird das Anforderungssignal von DMARQ (DMARQ_RFM_REQ), das, wenn es gesetzt ist, darauf hinweist, daß die DMAC-Verarbeitung eine Anforderung für den FIFOR-Datenpuffer gestellt hat (wenn eine solche Verarbeitung beendet ist, deaktiviert DMAC dieses Signal), mehrmals daraufhin geprüft, ob die Beendigung der DMAC-Verarbeitung für den FIFOR-Datenpuffer signalisiert wurde. Bei Empfang eines entsprechenden Signals wird zu Zustand 10 übergewechselt.
- - In diesem Zustand wird eine FIFOR-Schreibanforderung RFM_FIFOR_WR_REQ ausgegeben. Wenn FIFOR (durch FIFOR_RFM_ACK) bestätigt, wird der Bytepositionszähler RFM_FIFOR_BPP auf eine Byteposition im FIFOR-Datenpuffer gesetzt, an die das empfangene Datenbyte geschrieben werden soll. Der Zeiger wird aktualisiert, so daß er die nächste Position angibt, und der Zustandsstatus wird so gesetzt, daß er darauf hinweist, daß Daten in FIFOR geschrieben wurden. Der Status des FIFOR-Datenpuffers wird abgefragt. Ist der Datenpuffer voll, wird RFM_DMARQ_SET aktiviert, um eine Verarbeitung durch DMAC anzufordern, und Zustand 4 eingenommen. Ist der Puffer nicht voll, wird zu Zustand 2 übergewechselt, ohne daß eine Aktion in Bezug auf DMARQ stattfindet. Wird RFM von RSM angehalten, bevor die beschriebenen Aktionen abgeschlossen sind, erfolgt eine Rückkehr zu Zustand 0.
- - Der Rahmenbytezählerwert wird um eins verringert, dann wird Zustand 9 eingenommen.
- - Der Wert im Rahmenbytezähler wird gelöscht und der Zustandsstatus wird so gesetzt, daß er den Anfang eines neuen Rahmens bezeichnet. Es folgt Zustand 4.
- - Dieser Zustand wird eingenommen, wenn das RDE-Bit (DMA für Empfang freigeben) in RSM_CCR nicht gesetzt ist. In diesem Zustand werden alle von RV empfangenen Rahmen durch Aktivierung von RFM_INT_REQ an INT übergeben, wo acuh der an RFM_TS01,02 übergebene RFM-Status verarbeitet wird. Wenn RSM_RCV_EOS aktiviert ist, erfolgt eine Rückkehr zu Zustand 0. Der Host/IOP-Komplex muß sicherstellen, daß das RDE-Bit im CCR eines Kanals aktiviert wird, wenn in diesem Kanal Daten mit normaler DMA-Aktion empfangen werden sollen.
- - Es wird eine Interruptanforderung an INT, RFM_INT_REQ, ausgegeben, um einen Fehler oder den Rahmenstatus mitzuteilen. Folgende Interrupts kommen in Frage: FIFOR-Paritätsfehler (siehe Zustand 10), Grenzfehlerbedingung oder Empfang eines Rahmenendesignals. Bei einem Paritätsfehler oder einer Grenzfehlerbedingung wird Zustand 8 eingenommen, beim Empfang eines normalen Rahmenendesignals folgt Zustand 7.
- - Für den RDCR1-Bereich des aktuellen Kanals wird RFM_FIFOR _-RD_REQ ausgegeben. Wenn FIFOR diese Anforderung bestätigt, wird geprüft, ob ein FIFOR-Paritätsfehler vorliegt (d.h. ob FIFOR_PARITY_ERROR aktiv ist). Ist dies der Fall, wird Zustand 9 eingenommen und ein Statuswert gesetzt, der darauf hinweist. Weist RDCR1 darauf hin, daß beim entsprechenden DMAC-Transfer ein Grenzfehler aufgetreten ist, wird der Zustandsstatus so gesetzt, daß er diese Bedingung widerspiegelt, und Zustand 9 eingenommen. Ist weder ein FIFOR- Paritätsfehler noch eine Grenzfehlerbedingung aufgetreten, wird Zustand 1 eingenommen. Wurde RFM durch RSM angehalten, folgt Zustand 0.
- - Der Wert im Rahmenbytezähler wird um eins verringert, und es erfolgt ein Wechsel zu Zustand 4.
- Der Sende-FIFO-Manager TFM ist ein synchrones Element, das im Zeitmultiplexbetrieb arbeitet. Es wird von RSM synchron mit dem Erscheinen von Kanalzeitschlitzen an der BTDM gestartet und gestoppt. TFM verwaltet die Transfers von Sendedaten (für aktive Kanäle) von FIFOR nach TV. Die Daten werden (in Gruppen von maximal 4 Bytes) in TDCR-Bereichen (Sende-DMA-Konfigurationsregister) in FIFOR, und speziell in den TDCR2-Bereichen (Fig. 7 und Fig. 25) in Form einer Warteschlange zwischengespeichert. Die Daten werden von DMAC aus dem externen IOP-Speicher in FIFOR übertragen (in Gruppen von maximal 4 Bytes) und von TFM byteweise aus FIFOR entnommen. Steuerinformationen für die einzelnen Kanalwarteschlangen werden im entsprechenden TDCR1- Bereich in FIFOR gespeichert.
- Form und Inhalt der in den TDCR1- und TDCR2-Bereichen in FIFOR gespeicherten Informationen sind in Fig. 24 und Fig 25 dargestellt und werden an dieser Stelle und in der Beschreibung von DMAC weiter unten kurz erläutert.
- TDCR1 (Fig. 24) enthält folgende Felder: drei 1-Bit-Felder, drei 2-Bit-Felder, ein 16-Bit-Feld und 7 reservierte bzw. nicht benutzte Bitpositionen. Die 1-Bit-Felder sind: ECD (Kettenende erkannt), EFD (Rahmenende erkannt) und NDI (keine Daten; d.h., eine DMAC-Funktion ist auf eine Pufferendebedingung gestoßen, nach der keine weiteren Daten zu übertragen sind). Die 2-Bit- Felder sind: TBC (Sendepufferzähler, der auf das nächste an TV zu übertragende Byte in FIFOR/TDCR2 hinweist), TOPQ (Obergrenze der Warteschlange; bei allen Warteschlangenfunktionen kann DMAC 4 oder weniger Datenbytes übertragen, und der Wert in diesem Feld bezeichnet die Position des ersten "gültigen" Bytes, und PE (die Angabe einer der folgenden DMA-Paritätsfehlerbedingungen: kein Fehler, FIFOR-Paritätsfehler, DMAC-Steuer-RAM- Paritätsfehler, Paritätsfehler sowohl in FIFOR als auch im DMAC-Steuer-RAM). Das 16-Bit-Feld TDBC (Sende-DMA-Bytezähler) gibt die Länge des aktuellen externen Datenpuffers an, aus dem DMAC Daten abruft, und bezeichnet indirekt die Befehlskettungspunkte für DMAC (Details sind der Beschreibung von DMAC weiter unten zu entnehmen)
- TDCR2 (Fig. 25) enthält eine aus vier Sendedaten-Bytepositionen TDB1 bis TDB4 bestehende Warteschlange, in der die von DMAC abgerufenen Sendedaten zwischengespeichert werden. Wie bereits erwähnt werden von DMAC-Funktionen in jedem Fall 4 oder weniger Bytes abgerufen und in die Warteschlange gestellt, und die Position des ersten gültigen Bytes, das in die Warteschlange gestellt wird, ist durch den Wert im TOPQ-Feld von TDCR1 definiert.
- TFM ist auch für die rechtzeitige Auffüllung der Sendedaten- Warteschlangen in FIFOR, koordiniert mit Echüzeitanforderungen von Kanalübertragungsprozessen, zuständig. TFM überwacht den Status der Sendedaten-Warteschlange in FIFOR für alle aktiven Kanäle, und wenn die Warteschlange leer wird, sendet TFM eine Anforderung an DMARQ, durch die DMAC veranlaßt wird, die Warteschlange (asynchron) aus dem externen IOP-Speicher wieder aufzufüllen.
- Steuerinformationen, die den Status von DMAC in Bezug auf die einzelnen aktiven Kanäle angeben, werden im TDCR1-Wortbereich für den betreffenden Kanal in FIFOR (Fig. 7) gespeichert. TFM überwacht die Steuerinformation TDFSW (Sendedaten-FIFO-Statuswort) im ersten Byte von TDCR1, um Rahmenendpunkte im Sendedatenstrom zu erkennen und um über TV entsprechende Signale an TL1 zu übergeben, die letztere in die Lage versetzen, die CRC durchzuführen und bei Kanälen, die für bitorientierte Protokolle konfiguriert sind (z.B. HDLC), Markierungen einzufügen. Dabei erhöht TFM einen Rahmenzählerwert in seinem Zeitwechselwort um eins und sendet eine Interruptanforderung an INT, die zusammen mit der Rahmenübergangsinformation an das Hostsystem übergeben wird (Details über die tatsächliche Übergabe der Information sind der Beschreibung von INT weiter unten zu entnehmen).
- Der DMAC-Prozeß für das Abrufen von Sendedaten erlaubt die Verkettung von Abrufbefehlen für (verstreute) Datenblöcke im IOP- Speicher (Details siehe Beschreibung von DMAC weiter unten) mit einer gewissen Autonomie gegenüber dem IOP/Host-System. TFM überwacht auch, ob die TDCR1/TDFSW-Information einen Hinweis darauf enthält, daß ein Kettenende festgestellt wurde (ECD). Bei Erkennung eines Kettenendes übermittelt TFM die entsprechenden Informationen über TV an TL1, damit TL1 bei Bedarf Füllmuster einfügen kann, bis die DMAC-Verarbeitung für den verketteten Block wirksam ist. Die Kettenübergangsbedingung wird auch an INT gemeldet (siehe Beschreibung von INT weiter unten). An diesem Punkt wird TFM für den zugeordneten Kanal inaktiv, und eine explizite Aktion von SIO/IOP (siehe Beschreibung von SIO weiter unten) ist erforderlich, um den Kanal neu zu initialisieren und TFM wieder zu aktivieren; dadurch wird sichergestellt, daß eine erforderliche Koordination zwischen IOP/Host-System und DMAC für die Durchführung der Verkettung stattfindet, bevor die Übertragung auf dem Kanal wiederaufgenommen wird.
- Wenn TFM durch ein Zeitschlitzendesignal RSM_XMIT_EOS von RSM angehalten wird, während eine Operation für einen aktiven Kanal ausgeführt wird, wird ein Zeitwechselwort TFM_TS01, das den Status von TFM für den betreffenden Kanal angibt, von RSM in TSR gespeichert. Wenn der nächste Kanal aktiv ist, wird ein anderes Wort TFM_TS01, das den Status von TFM für diesen Kanal angibt, in TFM geladen (durch RSM aus TSR), und TFM wird durch das Signal RSM_XMIT_START von RSM neu gestartet, um die Verarbeitung für den neuen Kanal aufzunehmen.
- Im TFM-Statuswort, das von RSM beim Wechsel gespeichert wird, ist das Sendedatenbyte, falls ein solches vorhanden ist, das von TFM aus FIFOR abgerufen worden sein kann und noch nicht an TV übergeben worden ist, wenn RSM die aktuelle Kanalzeitschlitzoperation anhält, nicht enthalten. Dies kommt daher, daß jeder Sendedatenabruf durch TFM durch eine Anforderung von TV eingeleitet wird und normalerweise (ohne zwischenzeitliches Anhalten) mit einem Bytetransfer an TV in Verbindung mit einer TFM-Bestätigung endet. Die Logik von TV ist so aufgebaut, daß wenn TFM angehalten wird, solange noch eine ausstehende (nicht bestätigte) Datenabrufanforderung vorhanden ist, diese Anforderung zurückgenommen und der Status gespeichert wird, so daß die gleiche Anforderung noch einmal an TFM übergeben wird, wenn er das nächste Mal für den aktiven Kanal gestartet wird. Die Logik von TFM ist so aufgebaut, daß er, wenn er angehalten wird, bevor ein Abruf von Sendedaten aus FIFOR abgeschlossen ist, die Anforderung zurückzieht, so daß TV bei der nächsten Verarbeitung des gleichen Kanals die Anforderung erneut an TFM übergibt. Da der Zeiger TBC, der die nächste Byteposition angibt, von der TFM Daten aus der FIFOR-Sendepufferwarteschlange abruft, von TFM erst dann geändert wird, wenn das abgerufene Byte an TV übergeben worden ist, ist für den Fall, daß TFM angehalten wird, bevor ein Abruf abgeschlossen ist, keine spezielle Aktion erforderlich ist, um sicherzustellen, daß TFM bei der Wiederholung der Anforderung durch TV das richtige Byte aus FIFOR abruft.
- Form und Inhalt des Zeitwechselwortes von TFM, TFM_TS01, ist in Fig. 21 dargestellt. Das Wort besteht aus 6 derzeit benutzten Bits und 26 reservierten bzw. nicht benutzten Bits. Aus den oben genannten Gründen, auf die in den Beschreibungen der Zustände 0 und 6 unten noch einmal eingegange wird, enthält dieses Wort keine Sendedaten für einen unvollständigen Abruf (einen Abruf, der nicht abgeschlossen ist, wenn TFM von RSM angehalten wird). Die 6 benutzten Bits umfassen ein 4-Bit-Feld TFMFC (TFM-Rahmenzähler), das die Anzahl der für den betreffenden Kanal übertragenen Sendedatenrahmen angibt, und ein 2-Bit- Feld TFMS (TFM-Status), das den Status von TFM für den betreffenden Kanal angibt. Folgende Statusangaben sind möglich: initialisiert (durch externe Aktion von SIO/IOP; siehe Beschreibung von SIO weiter unten), normale Verarbeitung, angehalten wegen Paritäts- oder Logikfehler, oder angehalten wegen Kettenendebedingung.
- Der logische Aufbau von TFM ist in Fig. 20 dargestellt. TFM besteht aus der Logik mit finiten Zuständen 240, dem Register 241 zur Speicherung der aus FIFOR/TDCR1 abgerufenen Informationen, dem Register 242 zur Speicherung des TFM-Zeitwechselwortes TFM_TS01 für den gerade in TFM verarbeiteten Kanal, und der Multiplexer-/Auswahlschaltung 243 zur Auswahl der Datenbyteteile von Sendedtaenwörtern, die an 245 erscheinen, sowie zur Übertragung der ausgewählten Bytes an Ausgang 246.
- Register 241 empfängt TDCR1-Statusinformationen aus FIFOR über den FIFOR_DATA-Bus 245 und übergibt die Ausgangsstatusdaten an seinen Ausgang RFM_TDFSW_DATA, z.B. für den Schreibtransfer zurück zu FIFOR, wenn das Steuerausgangssignal TFM_FIFOR_WR1 von der Logik 240 erteilt wird. Das Zeitwechselwortregister 242 wird während der von RSM durchgeführten Zeitwechselaktion von RSM_TS_BUS geladen und übergibt seinen aktuellen Inhalt am Ausgang TFM_TS01, wo er von RSM in TSR gespeichert wird, wenn TFM angehalten wird und Logik 240 das TFM_DONE-Signal übergibt (das angibt, daß sie sich im stabilen Zustand 0 befindet, der für das Speichern des Zeitwechselwortes richtig ist).
- Multiplexer-/Auswahlschaltung 243 wird von der Logik 240 so gesteuert, daß sie die Sendedatenbyte-Auswahl für den Eingang 245 von FIFOR durchführt. Als Antwort auf Abrufanforderungen TV_TFM_REQ von TV werden Sendedaten in paralleler Form aus FIFOR an den Ausgang 245 der Auswahlschaltung ausgelesen. Die Logik 240 wählt anhand des Pufferzähler-Zeigerwertes TVC im TDFSW-Register 241 das Byte aus, daß an Ausgang 246, TFM_TV _-DATA, an TV übergeben werden soll. Wenn die Daten am Ausgang 246 für den Transfer an TV gültig sind, sendet Logik 240 ein TFM_TV_ACK-Signal an TV, und die Daten werden sofort (innerhalb von 50 Nanosekunden) von TV akzeptiert.
- Logik 240 sendet bei der Übergabe des ECD-Teils (Kettenende festgestellt) des TDFSW-Wortes aus Register 241 an TV das Signal TFM_TV_EOC und bei der Übergabe des EFD-Teils (Rahmenende festgestellt) des TDFSW-Wortes an TV das Signal TFM_TV_EOF. Die Logik erzeugt bei der Übergabe des Prozeßendestatus an INT das Signal TFM_EOP_STATUS in Verbindung mit TFM_INT_REQ (Einzelheiten der Prozeßende-Interruptstatusverarbeitung sind der Beschreibung von INT weiter unten zu entnehmen). Andere Ausgänge und Eingänge der Logik werden weiter unten bei der Beschreibung der einzelnen Zustände erläutert. Die Logik 240 kann folgende Zustände annehmen:
- - In diesem Zustand kann RSM die zeitwechselbedingte Ein/Auslagerung von TFM-TS01-Informationen sicher durchführen (ohne daß aufgrund transienter Interaktion zwischen TFM und TV, FIFOR oder DMARQ Daten verloren gehen oder ihre Eindeutigkeit verlieren können). In diesem Zustand kann TFM sein Fertig-Signal TFM_DONE an RMF übergeben, das anzeigt, daß TFM sich in einem stabilen Zustand befindet, in dem eine sichere Durchführung des Statuszeitwechseis durch RSM möglich ist. Wird dieser Zustand nach Empfang eines Zeitschlitzende-/Haltsignals RSM_XMIT_EOS eingenommen, speichert RSM den Inhalt von Register 242 im entsprechenden Kanalbereich von TSR. Ist der nächste Kanal einem aktiven Zeitschlitz zugeordnet, übergibt RSM an RSM_TS_BUS ein entsprechendes zuvor gespeichertes Statuswort und sendet RSM_TF_LOAD, durch das die Logik 240 veranlaßt wird, das Wort in Register 242 zu laden. Nach Aktivierung von RSM_TFM_LOAD setzt Logik 240 außerdem ein internes Statusbit NEW_TDFSW (nicht dargestellt) zurück, das, wenn es gesetzt ist, anzeigt, daß sich der Status von TDFSW/TDCR1 geändert hat und eventuell eine spezielle Aktion von TFM notwendig ist, um die zugehörigen Informationen in FIFOR zu aktualisieren (siehe Beschreibung der Zustände 2 und 6).
- - Nach Abschluß des Statuszeitwechsels startet RSM TFM mittels RSM_XMIT_START neu. Zu diesem Zeitpunkt wechselt die Logik in Zustand 1 über, falls das Sende-DMA-Freigabebit TDE in RSM_CCR gesetzt ist, andernfalls wird Zustand 9 eingenommen.
- - In diesem Zustand wird der in Zustand 0 neu in Register 242 geladene Statuswert (TFM_TS01 für den gerade verarbeiteten Kanal) abgefragt. Ist dem Statuswert zu entnehmen, daß eine DMAC-Aktion zum Auffüllen der Sendedaten-Warteschlange in FIFOR erforderlich ist (wenn das Feld TFMS eine neue Initialisierung ausweist), wird eine Anforderung TFM_DMARQ _-REQUEST an DMARQ gesendet und die Logik nimmt Zustand 2 ein. Die Anforderung an DMARQ bewirkt sofort (innerhalb von 50 Nanosekunden), daß ein Anforderungsschalter in DMARQ gesetzt (siehe Beschreibung von DMARQ weiter unten) und eine Bestätigung DMARQ_TFM_REQ an Logik 240 zurückgesendet wird. Die Anforderung an DMARQ löst eine asynchrone Aktion von DMAC zum Auslesen von Sendedaten aus dem externen IOP- Speicher an FIFOR aus, und das Signal DMARQ_TFM_REQ wird erst deaktiviert, wenn DMAC diese Aktion beendet hat (dies kann mehr als einen TFM-Verarbeitungszyklus für den betreffenden Kanal in Anspruch nehmen). In Bezug auf die DMARQ _-TFM_REQ-signalisierungsfunktionen arbeitet DMARQ jedoch synchron mit TFM, so daß das Signal bei der Verarbeitung des betreffenden Kanals durch TFM aktiv bleibt, sofern es nicht durch eine Aktion von DMAC deaktiviert wird.
- - Wenn das Zustandsstatusregister 242 einen normalen Verarbeitungsstatus signalisiert, nimmt die Logik 240 entweder Zustand 2 oder Zustand 3 ein, je nachdem, ob DMARQ_TFM_REQ aktiv oder inaktiv ist. Wie bereits erwähnt arbeitet DMAC zwar bei der Verarbeitung einer TFM-Anforderung zum Auffüllen von FIFOR asynchron, aber in Bezug auf die Bestätigungsfunktion DMARQ_TFM_REQ synchron mit RSM und TFM (siehe auch Beschreibung von DMAC weiter unten), und die Funktion wird nur dann für einen Kanal deaktiviert, wenn DMAC die angeforderte Aktion abgeschlossen hat. Der aktive Status dieses Signals gilt deshalb in jedem Fall für den gerade von TFM verarbeiteten Kanal und zeigt an, daß die angeforderte DMAC-Funktion (Auffüllen der FIFOR-Warteschlange) nicht abgeschlossen ist.
- - In diesem Zustand (der von Zustand 1 oder Zustand 6 aus erreicht werden kann), wartet die Logik darauf, daß der Sendedatenpuffer in FIFOR durch eine vorher durch TFM_DMARQ_- SET für den gerade verarbeiteten Kanal angeforderte DMAC- Aktion aufgefüllt wird.
- - Der Abschluß dieser Aktion wird signalisiert, wenn DMARQ_- TFM_REQ für den gerade verarbeiteten Kanal deaktiviert wird (siehe Beschreibung von Zustand 1). Wird die Aktion innerhalb des aktuellen Zeitschlitzes abgeschlossen, geht die Logik zu Zustand 3 über.
- - Wenn vor Abschluß der Aktion ein Zeitschlitzendesignal (RSM_XMIT_EOS) empfangen wird, nimmt die Logik 12 oder den Zustand 0 ein, je nachdem, ob der interne Schalter NEW_TDFSW gesetzt wurde, was bedeutet, daß TDFSW geändert wurde. Wenn der Schalter gesetzt ist, gibt die Logik TFM_FIFOR_WR1 aus, bevor sie Zustand 12 einnimmt (um das Schreiben des geänderten TDFSW von Ausgang TFM_TDFSW_DATA an FIFOR/TDCR1 einzuleiten). Wie bereits erwähnt wird dieser Schalter nur gesetzt, wenn TDFSW aufgrund der Beendigung einer angeforderten Aktion geändert wird, und am Anfang jedes neuen Zeitschutzes in jedem Fall zurückgesetzt; wenn er in einem Zeitschlitz gesetzt ist, bedeutet dies also, daß eine angeforderte Aktion für den gerade verarbeiteten Kanal abgeschlossen ist und die neue TDFSW-Information in FIFOR gespeichert werden muß.
- - Wenn TV_TFM_REQ aktiv ist (d.h. wenn TV den Abruf von Daten anfordert), gibt die Logik TFM_FIFOR_RD2 aus, um das gegensinnige Abrufen von Statuswörtern (TDCR1) und Sendedatenwörtern (TDCR2) aus FIFOR einzuleiten, und nimmt dann Zustand 4 ein. Der Datenabruf liefert alle 4 Bytes der TDCR2- Warteschlange; die Logik läßt Multiplexer-/Auswahlschaltung 243 jedoch anhand des Pufferzähler-Zeigers TBC im abgerufenen TDFSW nur ein einziges Byte auswählen, das an TFM_TV _-DATA erscheint. Bei seiner Ankunft wird das Statuswort in Register 241 geschrieben und das ausgewählte Datenbyte wird sofort über Auswahlschaltung 243 und TFM_TV_DATA an TV übergeben. Wenn diese Aktionen abgeschlossen sind, wird der Wert von TBC so angepaßt, daß er auf das nächste abzurufende Datenbyte zeigt, und der NEW TDFSW-Schalter wird gesetzt.
- - Wenn in diesem Zustand ein Zeitschutzendesignal (Haltesignal) RSM_XMIT_EOS empfangen wird, nimmt die Logik entweder Zustand 12 oder Zustand 0 ein, je nachdem, in welchem Zustand sich NEW_TDFSW befindet. Wenn dieser Schalter gesetzt ist, gibt die Logik TFM_FIFOR_WR1 aus (um die neue TDFSW-Information in FIFOR zurückzuschreiben) und nimmt Zustand 12 ein. Ist der Schalter nicht gesetzt, wird Zustand 0 eingenommen.
- - Wenn FIFOR die erste Leseanforderung durch Aktivierung von FIFOR_TFM_RD_ACK bestätigt, werd die TDFSW-Information in Register 241 geschrieben und die FIFOR-Paritätsangabe (FIFOR_PARITY_ERROR) abgefragt. Wenn ein Paritätsfehler signalisiert wird, wird der Status entsprechend gesetzt und Zustand 11 eingenommen. Anderfalis wechselt die Logik zu Zustand 13 über, um sich auf die Ankunft der Sendedaten aus der zweiten Leseanforderung (die in Zustand 3 erteilt wurde) vorzubereiten.
- - Wird TFM in diesem Zustand angehalten, gibt die Logik TFM_FIFOR_WR1 aus und nimmt Zustand 12 ein, wenn der Schalter NEW_TDFSW gesetzt ist. Ist der Schalter nicht gesetzt, wird Zustand 0 eingenommen.
- - In diesem Zustand kommt der Datenteil der in Zustand 3 erteilten zweiteiligen Leseanforderung an FIFOR_DATA an und wird dort ohne explizite Bestätigung von FIFOR empfangen. Die empfangenen Daten bilden ein Vollwort (TDCR2), und die Auswahl eines Byte aus diesem Wort wird von der Logik in Abhängigkeit vom TDFSW-Pufferzählerwert (TBC), der in Zustand 4 in Register 241 gespeichert wurde, getroffen. Das ausgewählte Byte wird an TFM_TV_DATA übergeben, und wenn es an dieser Position gültig ist, wird TFM_TV_ACK ausgegeben, und außerdem wird das NDI-Bit in TDFSW als TFM_TV_NDI an TV übergeben. Wenn der TBC-Wert signalisiert, daß das ausgewählte Byte das letzte in der TDCR2-Warteschlange ist, werden das Kettenendesignal (ECD) und das Rahmenendesignal (EFD) in TDFSW (am Ausgang von Register 241) über TFM_TV _-EOC bzw. TFM_TV_EOF ebenfalls an TV übergeben. Nach Abschluß dieser Aktionen nimmt die Logik Zustand 10 ein.
- - Wird TFM von RSM angehalten und ist NEW_TDFSW gesetzt, gibt die Logik TFM_FIFOR_WR1 aus und nimmt Zustand 12 ein. Wird TFM angehalten und ist der Schalter nicht gesetzt, folgt Zustand 0.
- - Dieser Zustand wird von Zustand 5 über Zustand 10 erreicht.
- - Wenn im gerade in Register 241 befindlichen TDFSW sowohl Kettenende- als auch Rahmenendebits gesetzt sind, wird der Zähler, der die gesendeten Rahmen zählt (TFMFC in TFM_TS01, Register 242), um eins erhöht, der Zustandsstatus (TFMS in Register 241) so gesetzt, daß er das Erreichen einer Kettenendebedingung widerspiegelt, und Zustand 11 eingenommen. Wird nur das Kettenende angezeigt, wird nur Zustandsstatus TFMS so geändert, daß er das Erreichen einer Kettenendebedingung widerspiegelt, und Zustand 11 eingenommen. Wird nur das Rahmenende angezeigt, wird der Rahmenzählerwert um eins erhöht, TFM_DMARQ_SET ausgegeben und Zustand 2 eingenommen.
- Wird weder Kettenende noch Rahmenende angezeigt, wird TFM_DMARQ_SET ausgegeben und Zustand 2 eingenommen.
- - Dieser Zustand unterscheidet sich von Zustand 3 dadurch, daß TDFSW gerade in Register 241 verfügbar ist. Entsprechend gibt die Logik nur ein einziges Lesesignal TFM _-FIFOR_RD1 für FIFOR/TDCR2 aus, wenn TV in diesem Zustand Daten anfordert, und geht zu Zustand 8 über.
- - Wird TFM von RSM angehalten und ist NEW_TDFSW gesetzt, gibt die Logik RFM_FIFOR_WR1 aus (um das geänderte TDFSW in FIFOR zu schreiben) und nimmt Zustand 12 ein. Wird TFM angehalten und wurde TDFSW nicht geändert, folgt Zustand 0.
- - Wenn Daten aus FIFOR ankommen, werden die TBC-Bits in TDFSW zur Auswahl des entsprechenden Bytes benutzt, und es wird festgestellt, ob der TBC-Wert signalisiert, daß das ausgewählte Byte sich an der letzten Warteschlangenposition befindet (d.h., daß die Warteschlange durch den Transfer dieses Bytes leer wird). Ist das ausgewählte Byte das letzte in der Warteschlange, werden ECD und EFD in TDFSW zusammen mit dem ausgewählten Datenbyte an TV übergeben, und die Logik wechselt zu Zustand 6 über. Ist das ausgewählte Datenbyte nicht das letzte in der Warteschlange, wird der TBC- Wert so aktualisiert, daß er auf das nächste Byte in der Warteschlange weist, NEW_TDFSW ausgegeben und Zustand 7 eingenommen.
- - Wird TFM von RSM angehalten und ist NEW_TDFSW gesetzt, gibt die Logik RFM_FIFOR_WR1 aus (um das geänderte TDFSW in FIFOR zu schreiben) und nimmt Zustand 12 ein. Wird TFM angehalten und wurde TDFSW nicht geändert, folgt Zustand 0.
- - In diesem Zustand (der von Zustand 1 oder Zustand 11 aus erreicht wird), prüft die Logik, ob TDFSW aktualisiert werden muß. Ist dies der Fall, nimmt die Logik Zustand 12 ein, andernfalls Zustand 0.
- - Das in Zustand 4 von FIFOR empfangene TDFSW wird einer Gültigkeitsprüfung unterzogen, bei der der TOPQ-Zeiger (Warteschlangen-Obergrenze) und der TBC-Zeiger (TBC) ausgewertet werden.
- - Wenn TOPQ auf die erste Byteposition in der TDCR2- Wartschlange und TBC auf die letzte Byteposition in der Warteschlange weist, geht die Logik zu Zustand 6 über. Wenn TOPQ auf die erste und TBC nicht auf die letzte Position zeigt, wird Zustand 7 eingenommen.
- - Wenn TOPQ auf die zweite Byteposition und TBC auf die erste Byteposition zeigt, ist TDFSW ungültig. In diesem Fall wird Zustandsstatus TDFSW so gesetzt, daß der Fehler angezeigt wird, und die Logik nimmt Zustand 11 ein. Wenn TOPQ auf die zweite Byteposition und TBC auf die letzte Position zeigt, folgt Zustand 6. Wenn TOPQ auf die zweite und TBC nicht auf die er ste oder letzte Position zeigt, erfolgt ein Wechsel zu Zustand 7.
- - Wenn TOPQ auf die dritte Byteposition und TBC entweder auf die erste oder auf die zweite Position zeigt, ist TDFSW ungültig. Der Zustandsstatus wird so gesetzt, daß der Fehler angezeigt wird, und die Logik nimmt Zustand 11 ein. Wenn TOPQ auf die dritte und TBC auf die letzte Position zeigt, wird Zustand 6 eingenommen. Zeigen sowohl TOPQ als auch TBC auf die dritte Position, folgt Zustand 7.
- - Wenn TOPQ auf die letzte Byteposition und TBC auf die gleiche Position zeigt, nimmt die Logik Zustand 6 ein. Weist TOPQ auf die letzte und TBC auf eine andere Position, wird ein Fehlerzustandsstatus gesetzt, und die Logik fährt mit Zustand 11 fort.
- - Vor Verlassen dieses Zustands wird der Wert im TBC- Sendedatenbyte-Puffer so angepaßt, daß er auf das nächste Byte weist, das aus FIFOR abgerufen werden soll, wenn die nächste Anforderung von TV empfangen wird (sofern der Zeiger nicht auf die letzte Byteposition verweist). Dieser Zustand wird von Zustand 5 aus erreicht, vorausgesetzt, die Sendedatenabrufaktion des letzteren Zustands für TV ist abgeschlossen. Wenn der Zeiger TBC zu diesem Zeitpunkt auf die letzte Position zeigt, wird eine DMAC-Aktion angefordert worden sein, die zur Aktivierung von DMARQ_TFM_REQ führt (wodurch TFM mitgeteilt wird, daß die Warteschlange verarbeitet wird), und nach Deaktivierung dieses Signals (durch DMAC nach Abschluß dieser Verarbeitung) muß die Logik die neue von DMAC gelieferte TDFSW-Information, die neue TBC- und TOPQ-Werte enthält, abrufen.
- - Interruptanforderungen an INT werden über TFM_PARITY_ERROR übermittelt, wenn der Zustandsstatus einen Paritätsfehler bezeichnet, oder andernfalls über TFM_INT_REQ, und es wird Zustand 9 eingenommen. Durch letzteres Signal wird INT mitgeteilt, daß das gerade von der Logik ausgegebene TFM_EOP _-STATUS-Signal gültig ist (Einzelheiten zur Verarbeitung dieser Information sind der Beschreibung von INT weiter unten zu entnehmen).
- - Es wird gewartet, bis FIFOR die in einem anderen Zustand erteilte Schreibanforderung TFM_FIFOR_WR1 (zum Aktualisieren von TDFSW) bestätigt. Wenn FIFOR_TFM_WR_ACK aktiv wird, wird die Schreibanforderung nicht mehr aufrechterhalten und Zustand 0 eingenommen.
- - In diesem Zustand wird die Taktung von FIFOR für die zweite im Rahmen einer von TFM_FIFOR_RD2 eingeleitete Leseoperation eines Paares aufeinanderfolgender Leseanforderungen ausgerichtet. Es folgt Zustand 5.
- Die Interrupt-Verarbeitung für IOP/Host wird von der INT- Partition (Interruptverarbeitungspartition) und den SIO- Partitionen (abhängigen E/A-Partitionen) durchgeführt. INT überwacht Anforderungen im IDLC-Gerät und von den L1- Schaltungen, sowohl für Übertragungskanalereignisse als auch für Hardwarefehler, und sendet entsprechende Interruptanforderungen zusammen mit den zugehörigen Vektorinformationen, die auf die Quelle des Interrupts verweisen, an SIO, und verwaltet die Speicherung der betreffenden Statusinformation in TSR und einem der allgemeinen INT-Register, auf das weiter unten noch eingegangen wird (IHEISR).
- SIO übergibt die Interruptanforderungen und Vektoren an das IOP/Host-System und stellt Zugriffspfade von IOP zu TSR sowie Register in IDLC und L1-Schaltungen bereit, um IOP das asynchrone Abrufen des gespeicherten Status für Interruptanforderungen zu ermöglichen (siehe beispielsweise Pfad 89 in Fig. 5; ebenso Beschreibung von SIO weiter unten). SIO ist auch an anderen Prozessen beteiligt, die nicht mit der Interruptverarbeitung in Verbindung stehen (Initialisierungs-/Rücksetzungsfunktionen, dynamische Programmierung des Zeitwechselstatus usw.).
- INT überwacht Anforderungen für mitteilbare Ereignisse im IDLC und von den L1-Schaltungen, assembuert einen Vektor (1 Byte), der die Quelle der betreffenden Bedingung oder des Ereignisses angibt, überwacht die Speicherung von Statusinformationen für das Ereignis bzw. die Bedingung und übergibt den Vektor zusammen mit einer Anforderung an SIO. SIO sendet entsprechende Anforderungen über SIO _INT (Fig. 32) an INT. Diese Leitung wird von der IOP ständig überwacht. Wenn sie aktiv ist und IOP für ihre Verarbeitung zur Verfügung steht, bestätigt IOP die Anforderung und ruft den betreffenden Vektor aus SIO ab. Wenn SIO bereit ist, den angeforderten Interruptverarbeitungsprozeß aus- zuführen, verwendet sie den Vektor dazu, eine Tabellensuchoperation zur Identifizierung von IDLC oder L1 als Interruptquelle durchzuführen, und ruft mittels SIO die betreffenden Statusinformationen ab.
- Die Ereignisse in IDLC, die INT mitgeteilt werden können, können in drei Hauptkategorien eingeteilt werden: Prozeßende- Kanalinterrupts (EOP-Interrupts), kanalbezogene Fehlerinterrupt und Hardwarefehlerinterrupts. EOP-Interrupts und kanalbezogene Interrupts haben jeweils 32 Unterkategorien, die den einzelnen Kanälen entsprechen. EOP-Interrupts weisen auf erwartete Ereignisse in den einzelnen Kanälen hin (z.B. Erkennung des Rahmenendes). Kanalbezogene Fehlerinterrupts weisen auf Hardwarefehlerbedingungen hin, die bestimmte Kanäle betreffen (z.B. Paritätsfehler beim Abrufen der Daten oder Statusinformation eines bestimmten Kanals aus einem der IDLC RAMs). Hardwarefehler- Interrupts weisen auf katastrophale Hardwarefehlerbedingungen hin, von denen möglicherweise alle Kanäle betroffen sind.
- Zwei Vektorkategorien sind für Anforderungen von den L1- Schaltungen zugeteilt. Diese unterscheiden L1-Anforderungen, sich auf Hardwarefehler beziehen, von solchen, die sich auf Kanalbedingungen bzw. Kanalfehler beziehen. L1-Anforderungen oder -Vektoren werden gegenüber kanalbezogenen IDLC-Anforderungen bevorzugt behandelt, nicht aber gegenüber nicht kanalbezogenen IDLC-Anforderungen. Für jede Interrupt-Kategorie wird von INT ein entsprechender Vektor gebildet und in Verbindung mit einer zugehörigen Anforderung an SIO/IOP übergeben. Statusinformationen für Anforderungen von L1 und IDLC werden in den L1-Schaltungen bzw. in IDLC gespeichert und durch asynchrone Aktion von IOP/SIO abgerufen. Statusinformationen für IDLC-Hardwarefehler werden in einem INT-Register (IHEISR) gespeichert, während Statusinformationen für kanalbezogene IDLC-Ereignisse und Fehlerbedingungen in TSR gespeichert werden (siehe Erläuterung der EOPISR-Warteschlangen und der CEISR-Registerbereiche weiter unten).
- Der von INT generierte und an SIO/IOP übergebene Vektor gibt die Kategorie bzw. Quelle des Interrupts an. Die Bildung und Verwendung der Vektoren wird in Abschnitt 12.2.6 beschrieben. Formate und funktionale Behandlung von IDLC-Statusparametern folgt nachstehend.
- Diese Interrupts weisen auf bestimmte erwartete Ereignisse in Übertragungskanälen hin (z.B. auf die Erkennung von Empfangsrahmenende- und Sendekettenende-Ereignisse für Empfangs- und Sendeprozesse in HDLC-Kanälen usw.). Die entsprechenden Prozeßende-Interruptstatuswörter (EOPIS-Wörter) (jeweils 32 Bit) werden von den einzelnen Empfangs- und Sendeelementen geschaltet und von RSM unter der Steuerung durch INT in Prozeßendeinterrupt-Kanalregisterbereichen (EOPISR-Bereichen) in TSR gespeichert (Fig. 6).
- Jedem Kanal ist eine Warteschlange mit 16 solchen Bereichen (EOPISR01 bis EOPISR16; Fig. 6 und Fig. 30) in TSR zugeteilt, die von INT und IOP als Kreispuffer verwaltet wird. Jeder Kanal besitzt außerdem einen einzelnen Registerbereich (CEISR) in TSR für die Speicherung eines kanalbezogenen Fehlerinterruptstatus- Wortes (CEISR-Wortes), auf das später noch näher eingegangen wird. Informationen im CEISR eines Kanals bezeichnen den Status der EOPISR-Warteschlange dieses Kanals und enthalten einen Zeiger auf die nächste Statusposition (NSL-Zeiger), der die nächste für die Speicherung neuer EOPIS-Informationen verfügbare Warteschiangenposition angibt (siehe Abschnitt 12.2.2). Der NSL-Zeigerwert wird von INT geändert, wenn ein Eintrag an die durch den aktuellen Zeigerwert bezeichnete Warteschlangenposition geschrieben wird.
- Für jeden IDLC-Vektor, der eine EOP-Bedingung signalisiert, muß die IOP ein einziges EOPIS-Wort aus der Warteschlange auslesen (über SIO). Eine Angabe (NOV) der Anzahl der Vektoren, die zur Zeit in der Warteschlange jedes Kanals anhängig sind, wird im betreffenden CEISR/TSR-Bereich gespeichert. Dieser Wert wird von INT beim Schreiben der Statuseinträge in die Warteschlange erhöht und beim Empfang eines Signals, daß ein oder mehrere Statuswörter von IOP aus der Warteschlange entnommen wurden, verringert (siehe Erläuterung von Einzelstatus- und Mehrstatusmodi weiter unten). Er gibt also an, wie voll die Warteschlange ist. INT erkennt einen bevorstehenden Warteschlangenüberlauf, wenn eine bestimmte Anzahl von Vektoren für diese Warteschlange anhängig ist (die genaue Anzahl ist für Einzelstatus- und Mehrstatusmodi verschieden).
- Es gibt keine explizite Angabe, wann ein Wort aus der Warteschlange entnommen wurde, und auch keine Notwendigkeit, eine solche Entnahme in der gleichen Reihenfolge vorzunehmen, in der die Einträge in die Warteschlange gestellt wurden. Die IOP muß bei Einträgen im Mehrstatusmodus, wie weiter unten zu sehen sein wird, solche Einträge auch nicht lesen, während sie die zugehörigen Vektoren verarbeitet (Möglichkeit der Vereinfachung solcher Routinen); und sie muß die Verarbeitung solcher Einträge im Zusammenhang mit der Statusabrufverarbeitung auch nicht bestätigen, auch wenn sie über Aktualisierungen von HPCR-Schaltern und SWRC-Parametern Angaben zu deren Verarbeitung macht, wie weiter unten noch näher erläutert wird. Dies vermindert Echtzeitbeschränkungen, die dem IOP-tatusabrufprozeß andernfalls auferlegt wären.
- Die genannten HPCR-Schalterfunktionen und SWRC-Funktionen (Statuswort-Lesezählerfunktionen) werden von INT überwacht, um festzustellen, wann die CEISR-Funktionen NOV und NSL aktualisiert werden müssen, wobei letztere Funktion angibt, wann und wo neue EOPIS-Eintragungen stattfinden. Das HPCR-Register, in dem der Schalter und SWRC gespeichert werden, befindet sich im RSM (siehe Beschreibung des RSM weiter oben).
- Es gibt auch keine Einschränkung bezüglich der Anzahl der Warteschlangeneinträge, die von IOP auf einmal abgerufen werden können (im Mehrstatusmodus). Wenn eine Warteschlange zu einem bestimmten Zeitpunkt zehn EOPIS-Wörter enthält, kann IOP/SIO also alle zehn (oder weniger) in einem einzigen Abrufprozeß auslesen. Da die Aktualisierung der Schalter- und SWRC-Parameter durch die IOP nicht eng mit deren Warteschlangenabrufoperationen verbunden sein muß, können von INT/RSM weitere Einträge in eine Warteschlange gestellt werden, nachdem IOP auf frühere Einträge zugegriffen hat, und solche späteren Einträge können abgerufen werden, bevor die HPCR-Parameter aktualisiert werden. Die IOP kann also bei ihrer Aktualisierung des HPCR auch Einträge berücksichtigen, die in separat durchgeführten Warteschlangenzugriffen abgerufen wurden.
- Für den Fachmann ist es selbstverständlich, daß von einem fernen Ort ausgehende Übertragungen Informationen über die Anzahl der an fernen Knoten empfangenen Rahmen mitliefern. Die IOP kann so die Anzahl der tatsächlich von IDLC gesendeten Rahmen mit der Anzahl der vermutlich an fernen Knoten empfangenen Knoten vergleichen. Da die IOP also jederzeit weiß, wie viele Senderahmen IDLC/DMAC zur verketteten Verarbeitung zur Verfügung gestellt wurden, kann sie die Anzahl der zur Verfügung gestellten Rahmen für die Verarbeitung des Abrufs des Empfangsrahmenende-Interruptstatus (Einträge in der EOPISR-Wartschlange) regulieren, falls dies gewünscht wird, so daß sichergestellt werden kann, daß ein Überlauf der IDLC-Warteschlange nur bei abnormalen Bedingungen auftreten kann.
- Der wesentliche Punkt in diesem Zusammenhang besteht darin, daß die günstigste Verteilung von Übertragungsbelastungen und Interruptstatus-Abrufaktivitäten zur Vermeidung ineffizienter Kanal-Verbindungsstreckennutzung im Netzwerk bei gleichzeitiger Überbeanspruchung der IOP vom Aufbau der IOP abhängig ist. Es sollte aber auch klar sein, daß diese Verteilung hier erleichtert wird, da die Abrufverarbeitung von IDLC EOPISR-Mehrstatusmodus-Warteschlangeneinträgen (die Empfangsrahmenende-Ereignisse darstellen) durch IOP separat von der Verarbeitung der zugehörigen Interruptvektoren und auch getrennt von der Aktualisierung von Schalter- und SWRC-Parametern erfolgen kann (daß diese Funktionen also in der IOP effizient auf Multitasking- Basis ausgeführt werden können). Ferner sollte klar sein, daß in der IDLC-Vektorübergabe die Einreihung von Statusinformationen in Warteschlangen und die Warteschlangenverwaltung auf einer effizienten Multitasking-Basis separat durchgeführt werden können.
- Ein weiterer wichtiger Punkt besteht darin, daß die EOPIS- Eintragungen nur für Kanäle mit protokollorientierter Übertragung (z.B. HDLC) vorgenommen werden, nicht aber für protokollfreie Kanäle, auf denen z.B. Sprachsignale wie im Telefonverkehr übertragen werden (in letzteren werden Daten in kontinuierlichen Strömen ohne besondere Rahmenbegrenzungsmarkierungen usw. übertragen, und die betreffenden Verbindungsstrecken werden durch Austausch von Steuerzeichen, die über separate Kanäle übertragen werden, aufgebaut).
- Die Form des EOPIS-Wortes ist in Fig. 29 dargestellt. Die Anzahl der Bits in den einzelnen Feldern ist in Klammern unter dem Feldkürzel angegeben. Das "A" unter IQO (Interruptstatus- Überlaufbit) besagt, daß dieser Parameter immer als gültig betrachtet wird und deshalb von der IOP-Routine immer geprüft werden muß, wenn der betreffende Eintrag aus der Warteschlange entnommen wird. Wenn IQO einen Überlauf der Warteschlange anzeigt, sind keine weiteren Eintragungen erlaubt, bis der CEISR- Parameter für den betreffenden Kanal neu initialisiert wurde (durch IOP/SIO)
- Die Felder "T" und "R" sind mit Sende- bzw. Empfangsprozeßbedingungen verbunden. Die T-Felder bestehen aus fünf 1-Bit- Angaben: XMIT ABT/IDL (Sendeabbruch / Ruhemuster gesendet oder nicht; gesendet infolge einer Unterlauferkennung im Kanal), XMIT UNDR (Sendeunterlauffestgestellt oder nicht festgestellt)
- Die R-Felder bestehen aus vier 1-Bit-"Quellenangaben" und sechs Statusangaben; bei letzteren handelt es sich um vier 1-Bit- Parameter, einen 4-Bit-Parameter und einen 16-Bit-Ausdruck. Die Quellenangaben sind: SRC EOF (gibt an, ob die Quelle ein erkanntes Rahmenende ist), SRC ABC (gibt an, ob die Quelle ein erkannter Adreßgrenzfehler ist), ARC ABT (gibt an, ob die Quelle eine empfangene Abbruchmeldung ist) und SRC IDL (gibt an, ob die Quelle ein empfangener Ruhehinweis ist). Die möglichen Statusangaben sind: RDD (DMA nicht für Empfang freigegeben; gibt an, ob der DMA-Empfang im CCR des betreffenden Kanals freigegeben ist), TX CNT (Zähler der Rahmenanzahl, die in der aktuellen Kette bis zum Zeitpunkt, an dem die betreffende Interruptanforderung ausgegeben wurde, gesendet wurde), RCV OAS (Oktettausrichtungsstatus für Empfang zum Zeitpunkt der Interrupt-Übergabe aktiv), RCV CRC (gibt an, ob zum Zeitpunkt der Interrupt- Übergabe ein CRC-Fehler festgestellt worden war), RCV OVF (gibt an, ob auf der Empfangsseite von FIFOR ein Überlauf erfolgt ist) und RDV DBC (DMA-Bytezähler der Empfangsseite; gibt die Anzahl der Datenbytes an, die von DMA während des gerade empfangenen Rahmens in den IOP-Speicher geschrieben wurden; bei HDLC-Protokollen umfaßt diese Angabe die Gesamtanzahl von Daten- und CRC-Bytes, und sie ist nur dann gültig, wenn RCV OVF keinen Überlauf bezeichnet und eine der Quellenangaben SRC ABT, SRC IDL oder SRC EOF aktiv ist). Im Zusammenhang mit den genannten R-Feldern ist folgendes zu beachten:
- Wenn EOF aktiv ist, ist der Sendezählerwert TX CNT gültig, und IOP muß die Statusparameter abfragen, um die Länge der von DMA in den IOP-Speicher geschriebenen Daten zu ermitteln (RCV DBC) und festzustellen, ob beim Empfang des Rahmens OAS-, CRC- oder OVF-Fehlerbedingungen erkannt wurden
- Wenn SRC ABC aktiv ist, ist der Status RCV DBC gültig. Sende- Interrupts werden weiterhin verarbeitet, Empfangs-Interrupts werden aber unterdrückt. IOP kann diese Bedingung beheben, indem sie den Empfang im betreffenden Kanal unterdrückt, eine neue Grenzadresse programmiert und den Empfang wieder freigibt.
- Wenn SRC ABT aktiv ist, hat der Kanal implizit einen Rahmen empfangen, als das von der fernen Quelle gesendete Abbruchsignal erkannt wurde. In diesem Fall ist in den Statusfeldern nur RCV DBC gültig. Das RCV CRC-Statusbit wird aktiviert, sollte aber ignoriert werden.
- Wenn CRC IDL aktiv ist und der betreffende Kanal im Halbduplexbetrieb arbeitet, wird der IOP effektiv mitgeteilt, daß die Richtung der Kanalleitung umgekehrt werden soll, um die Übertragung in diesem Kanal zu ermöglichen. In diesem Fall wird nur der Status RCV DBC gültig. Das RCV CRC-Statusbit wird aktiviert, sollte aber ignoriert werden.
- Wenn RDD signalisiert, daß DMA für den Empfang nicht freigegeben ist, und SRC ABC inaktiv ist, sollte RCV DBC ignoriert werden (dieser Fall impliziert, daß DMAC zuvor deaktiviert wurde und aus diesem Grund keine gültigen Daten in den IOP-Speicher geschrieben wurden).
- TX CNT ist ein kumulativer Zähler, der die Anzahl der von IDLC gesendeten Rahmen angibt. Dieser Wert wird aus verschiedenen Gründen von IDLC für jedes EOPIS-Wort im Zusammenhang mit dem Empfang eines Rahmens (d.h. in R-Feldern) eingefügt. Da IDLC über die Möglichkeit der Sende-DMA-Kettung verfügt (siehe Beschreibung von DMAC weiter unten), wurde beschlossen, die Bandbreite des IOP-Busses und die Verarbeitungszeit beizubehalten, indem auf IDLC-Interrupts der IOP, in denen Übertragungen der einzelnen Rahmen gemeldet werden, verzichtet wird. Trotzdem muß zur Erhaltung der Integrität auf der Empfangsseite jeder Vollduplexkanal-Verbindungsstrecke die Anzahl der gesendeten Rahmen auf aktueller Basis an die IOP übermittelt werden, da ja die empfangenen Rahmen einen Empfangszählerwert enthalten, der von den Quellen der betreffenden Rahmen gesendet wird und die Anzahl der von der Quelle empfangenen Rahmen angibt. Die Anzahl der gesendeten Rahmen wird deshalb von der IOP zur Unterscheidnung fehlerhafter Empfangszählerwerte und zur Aufrechterhaltung der Integrität beim Senden (z.B. durch erneutes Senden der nicht empfangenen Rahmen benötigt.
- Ein anderer Vorteil oder eine Verwendungsmöglichkeit der Übermittlung aktuellen Senderahmenzählerwerte an die IOP besteht bei Geräten wie dem IDLC, die über die Möglichkeit der Sende- DMA-Kettung verfügen, darin, daß dieser Zählerwert es der IOP ermöglicht, Pufferbereiche zeitabhängig für die dynamische Aufrechterhaltung verketteter Sendeaktivitäten frei zu machen. Wenn mit Hilfe von TX CNT festgestellt wird, daß zumindest bestimmte Rahmen vom IDLC gesendet und am fernen Bestimmungsort empfangen wurden, kann die IOP zumindest in diejenigen Teile ihres Pufferspeichers, die die bereits gesendeten Daten dieser Rahmen enthalten, neue Sendedaten einfügen. Der für die verkettete IDLC-Übertragung benötigte IOP-Pufferspeicherbedarf kann auf diese Weise gegenüber dem Bedarf im dem Fall, daß die IOP vor der Freigabe des Pufferspeicherplatzes ein Sendekettenende- Signal vom IDLC abwarten muß, reduziert werden.
- Wenn RCV OAS einen Oktettausrichtungsfehler anzeigt oder wenn RCV CRC einen CRC-Fehler anzeigt, enthält der betreffende Rahmen offensichtlich einen Fehler und muß von der IOP gelöscht werden.
- Wenn RCV OVF einen FIFOR-Überlauf anzeigt, gibt der Wert von RCV DBC, sofern er nicht 0 ist, indirekt die Position des letzten Bytes an, das von DMA in den IOP-Speicher geschrieben wurde. Dieser Wert kann bei der Ermittlung der Position im IOP- Speicher, an der der DMA-Transfer des nächsten Empfangsrahmens beginnen sollte, nützlich sein. Wenn der DBC-Wert 0 ist, ist für die Ermittlung der nächsten Position keine Berechnung erforderlich.
- Diese Interrupts stehen im Zusammenhang mit Hardwarefehlern, von denen nur ein bestimmter Kanal betroffen ist, d.h. mit FIFOR-Paritätsfehlern oder TSR-Paritätsfehlern in einem Kanalbereich. Wie bereits erwähnt enthält die Statusinformation zu diesen Interrupts Parameter für die Verwaltung der EOPIS- Warteschlange des betreffenden Kanals. Für kanalbezogene Fehlerinterrupts der einzelnen Kanäle können eindeutige Vektoren generiert werden. Nach einem solchen Interrupt muß der Kanal deaktiviert und vor der nächsten Verwendung wieder aktiviert werden.
- Die Form der CEISR-Information ist in Fig. 28 dargestellt. Sie besteht aus 15 reservierten bzw. zur Zeit nicht benutzten Positionen und 17 aktiv benutzten Feldern. Zu den letzteren zählen die vier 1-Bit-Parameter WVA, PTV, IQO und SWA, die beiden 2- Bit-Parameter PE und IM, ein 4-Bit-Parameter NSL und ein 5-Bit- Parameter NOV. Die aktiven Felder werden in Abschnitt 12.2.9 einzeln beschrieben.
- Diese Interrupts bezeichnen katastrophale Hardwarefehler, von denen möglicherweise alle Kanäle betroffen sind. Die entsprechende Statusinformation besteht aus einem IDLC-Hardware- Interruptstatuswort (IHEIS-Wort), das in einem speziell dafür vorgesehenen Register in INT (dem IHEISR-Register) gespeichert wird. Das Wort besteht aus 14 aktiv benutzten 1-Bit-Parametern, deren Form und mnemonische Kürzel in Fig. 27 dargestellt sind. Die übrigen 18 Positionen im IHEISR-Register sind reserviert bzw. werden nicht benutzt. Bei den 14 aktiv benutztenen Parametern handelt es sich um 10 "Statusangaben" und 4 "Quellenangaben".
- Statusangaben werden von der IOP ohne formalen Interrupt von IDLC aktiviert. Die entsprechenden Statusbedingungen treten auf, wenn das IDLC beim Versuch der Kommunikation mit der IOP einen Fehler infolge eines IOP/SIO-Direktzugriffs oder einer DMAC-Operation feststellt. Wenn ein solcher Fehler festgestellt wird, sendet IDLC keine Bestätigungssignale an IOP, wodurch diese veranlaßt wird, einen Zeitüberschreitungsfehler zu generieren (was dazu führt, daß die IHEISR-Statusangaben ohne formale Interruptverarbeitung gesetzt werden). Quellenangaben werden als Folge einer katastrophalen Fehlerbedingung aktiviert. Solche Fehlerbedingungen können in der Regel nicht behoben werden und weisen gewöhnlich darauf hin, daß das IDLC nicht funktionsfähig ist. Die Quellenbits sind für Diagnosezwecke nützlich.
- Die Sende- und Empfangsverarbeitungsfunktionen von IDLC, die zu Signalen führen, die INT zur Erzeugung von Interrupts veranlassen, werden in den gleichzeitig anhängigen Anmeldungen, in deren Titel "Autonomous Elements" bzw. "synchronous Link Interface" erscheint, ausführlich beschrieben. Da diese Funktionen bei Elementarkanälen und bei Hyperchannels identisch sind, werden sie für die vorliegende Anmeldung als nicht relevant erachtet und deshalb nicht beschrieben. Insofern das Verständnis dieser Funktionen ergänzend von Bedeutung sein könnte, sind die entsprechenden Abschnitte der gleichzeitig anhängigen Anmeldungen durch diesen Verweis Teil des vorliegenden Dokuments.
- Von INT generierte Interruptvektoren sind 1 Byte lange numerische Werte, die der Quelle des Interrupts entsprechen. Als Quellen kommen in Frage: Hardwarefehler auf IDLC-Chipebene, Hardwarefehler auf L1-Chipebene, kanalbezogenes Ereignis oder kanalbezogener Fehler in L1, kanalbezogener Fehler oder Kanalprozeßereignis in IDLC. Bei kanalbezogenen Fehlern und Prozeßereignissen in IDLC wird die Quelle genauer aufgelöst, so daß derjenigen der 32 Kanäle bezeichnet wird, der gerade verarbeitet wurde, als der (Paritäts-)Fehler oder das Prozeßereignis festgestellt wurde. Es gibt also effektiv 67 Vektornummemwerte (2 für Hardwarefehler auf IDLC- und L1-Chipebene, 1 für kanalbezogene Ereignisse oder Fehler in L1, 32 für kanalbezogene IDLC-Fehler und 32 für IDLC-Kanalprozeßereignisse).
- IOP verwendet den Vektor, um auf einen von 67 Einträgen einer Tabelle im IOP-Speicher zuzugreifen. Die Tabelleneinträge geben die Identität der betreffenden Interruptquelle, wie oben erwähnt, zusammen mit zusätzlichen Informationen an, die von der IOP zur Durchführung der Interruptverarbeitung benötigt werden. Wegen der Art und Weise, wie der Vektor von INT gebildet wird, können die Tabelle und Teile davon von IOP innerhalb von verschiedenen Abschnitten aus 256 Wortsegmenten des Speichers, d.h. innerhalb des mit 8 Bit und (dem INT-Vektor und) einem von IOP festgelegten Basiswert adressierbaren Bereichs, verschoben werden.
- Wenn die Interruptquelle kein kanalbezogenes Ereignis und kein kanalbezogener Fehler in IDLC ist (d.h. wenn sich der Interrupt auf einen IDLC-Hardwarefehler, einen L1-Hardwarefehler oder ein L1-Kanalereignis bezieht), bildet INT den Vektor mit Hilfe der 6 Bit langen IIVO-Nummer (IDLC-Interruptvektor-Offset) im ICR- Register (IDLC-Konfigurationsregister) in SIO (Fig. 4 und Fig. 32) und einem 2 Bit langen Wert für die Quelle. Der 2-Bit-Wert wird von der INT_CHP-Komponente der Maschine mit finiten Zuständen in INT generiert (siehe Abschnitt 12.2.7) und dort mit dem von SIO/ICR übertragenen IIVO-Offsetwert zum vollständigen Vektor (INT_CHP_VECTOR) verkettet. Der Offsetwert, der programmierbar von IOP ausgewäht und bei der IDLC-Initialisierung von IOP/SIO in ICR gesetzt wird, wird von IOP zur Auswahl einer von 64 Offsetpositionen (bezogen auf eine von IOP festgelegte Grundposition), verwendet. Jede Offsetposition stellt eine Grenze einer aus 4 Wörtern bestehenden Gruppe von Positionen dar. Der von der Maschine mit finiten Zuständen verkettete 2- Bit-Wert wird von IOP zur Auswahl einer von vier Positionen innerhalb der durch den Offsetwert bezeichneten Positionsgruppe verwendet.
- Ist die Interruptquelle ein kanalbezogener IDLC-Fehler, so wird der Vektor aus einem 2-Bit-Offsetwert aus dem CIVO-Feld (Kanalinterruptvektor-Offset) im ICR-Register und einem 6-Bit-Wert, der intern von der INT_CHN-Maschine in INT bestimmt wird, gebildet. Der Offsetwert und der intern festgelegte Wert werden in der Maschine mit finiten Zuständen miteinander zu dem vollständigen Vektor (INT_CHN_VECTOR) verkettet, der an SIO/IOP übergeben wird. Der Offsetwert kann programmierbar von IOP bestimmt und bei der IDLC-Initialisierung in ICR geschrieben werden. IOP verwendet den 2-Bit-Offset zur Ermittlung einer von 4 Offsetpositionen, an Grenzen von 4 5eparaten 64-Wort-Positionsgruppen im IOP-Speicher, bezogen auf eine von IOP festgelegte Grundposition. Den 6-Bit-Wert verwendet IOP zur Adressierung einer von 64 Positionen innerhalb des durch den Offsetwert bezeichneten Bereichs. Die adressierte Position enthält die Informationen, die IOP benötigt, um den Vektor zu interpretieren und ihn mit dem erforderlichen Interruptverarbeitungsprozeß zu verbinden.
- In Fig. 26 sind die wichtigsten logischen Komponenten der INT- Partition (Maschinen mit finiten Zuständen usw.) sowie ihre Register, externen Schnittstellen und Steuersignale dargestellt. Die Partition enthält die Maschinen mit finiten Zuständen 260 (INT_CHN) und 261 (INT_CHP), das CEIS-Register 262, die EOPIS- Schalter 263 und das IHEISR-Register 264.
- Die Maschinen mit finiten Zuständen 260 und 261 arbeiten als diskret separate logische Einheiten; Einheit 260 führt kanalbezogene Aufgaben für Prozeßereignisse und kanalbezogene Paritätsfehler aus, und Einheit 261 führt asynchron Aufgaben für Hardwarefehlerereignisse in IDLC- und L1-Schaltungen und für Kanalereignisse in L1-Schaltungen aus.
- Register 262 wird zum Schalten von CEIS-Informationen für den gerade verarbeiteten Kanal verwendet. Die Schalter 263 dienen zum Schalten der EOPIS-Informationen für den Kanal. Register 264 enthält Statusinformationen für Hardwarefehler.
- Die wichtigsten Funktionen der INT-Partition sind die Reaktion auf Interruptsignale einschließlich interner IDLC-Anforderungen und extener Anforderungen von den L1-Schaltungen, das Sammeln und Speichern von entsprechenden Interruptstatusinformationen, die Verwaltung der (kanalbezogenen) EOPISR-Warteschlangen (in TSR), die Erzeugung von Vektoren für Signale von den anderen Partitionen und die Übergabe dieser Vektoren in Verbindung mit den zugehörigen Interruptanforderungen an die SIO-Partition, die sie an die IOP weitergibt. IOP verwendet die Vektoren in Tabellensuchoperationen zum Auffinden der Informationen, die die betreffenden Interruptquellen (L1-Kanal, L1-Chiphardware, IDLC-Chiphardware, Prozeßereignis in einem bestimmten der 32 IDLC-Kanäle) bezeichnen, und benutzt diese Tabellendaten zur Verbindung mit einer entsprechenden Interruptverarbeitungsroutine, die dann wiederum zum Abrufen des zugehörigen Interruptstatus über SIO aus IDLC verwendet wird.
- Die INT_CHN-Maschine 260 verarbeitet kanalbezogene IDLC-Prozeßereignisse, während die INT_CHP-Maschine 261 Fehlerbedingungen, die sich auf IDLC-Hardwarefehler beziehen, sowie L1-Bedingungen (Fehler auf Chipebene und/oder kanalbezogene Ereignisse) verarbeitet.
- INT_CHN arbeitet in der Zeitwechselumgebung. In Zeitschlitzen, die aktiven Kanälen zugeteilt sind, lädt RSM den kanalbezogenen Zeitwechselstatus aus TSR mittels RSM_TSR_BUS in Register 262 und startet die Verarbeitung durch die INT_CHN-Maschine mittels eines RSM_INT_START-Impulses. Die Bitzuordnungen in CEISR sind in Fig. 39 dargestellt und werden in Abschnitt 12.2.8 beschrieben. Während der Verarbeitung empfängt INT_CHN Kanalereignis- Eingangssignale von TL1, TFM und RFM in den EOPISR-Statusschaltern 263 als Antwort auf entsprechende Anforderungssignale (TL1_INT_REQ, TFM_INT_REQ, RFM_INT_REQ). Diese Schalterbit werden vor Beginn eines Empfangs- oder Sendeprozesses gelöscht. Ihre Werte während der INT-Verarbeitung werden von INT_CHN nicht speziell interpretiert.
- INT_CHN verwendet ein 2 Bit großes internes Register zur Speicherung eines temporären EOP-Wartestatusschalterwertes, der nicht über Zeitschlitzgrenzen hinaus gespeichert wird, um die Aktion zu bestimmten, die INT_CHN in ihren 7 Zuständen ausführt. Folgende Aktionen kommen in Frage: EOPISR-Status speichern, EOPISR-Status ignorieren oder EOPISR-Status löschen. Sollen EOPIS- oder CEIS-Status gespeichert werden, sendet INT_CHN am Ende des Zeitschutzes das Signal INT_EOP an RSM und überträgt den Inhalt des CEISR-Registers 262 an RSM. RSM fragt das SWA-Bit (das angibt, ob ein Statuswort verfügbar ist) in der übertragenen CEIS-Information ab, um festzustellen, ob der EOPIS-Status während des Zeitschutzes geschaltet war (an TL1, TFM oder RFM). War dies der Fall, so ist RSM dafür zuständig, daß der Status aus der entsprechenden Schalterposition in die EOPISR-Warteschlange in TSR geladen wird. Dabei werden die NSL- Bits (die die nächste Statusposition angeben) in der übertragenen CEIS-Information zum Auffinden des Warteschlangenbereichs, in den geschrieben werden soll, herangezogen. RSM generiert die tatsächliche TSR-Adreßposition, an die das EOPISR geschrieben wird, durch Verkettung des NSL mit einer Basisadresse (in TSR), die eine vorbestimmte Funktion der Kanalnummer ist.
- Obwohl RSM die EOPISR-Transfers in und aus TSR durchführt, ist die INT_CHN-Maschine für die Verwaltung der EOPISR-Warteschlange verantwortlich. INT_CHN ist außerdem für das 'Schließen' der EOPISR-Statuswarteschlange zuständig, wenn diese vor dem Überlaufen steht oder wenn ein Paritätsfehler in TSR, FIFOR oder DMAR erkannt wurde. Paritätsfehler in TSR und DMAR werden durch TSR_PARITY_ERROR bzw. DMAR_PARITY_ERROR signalisiert. Paritätsfehler in FIFOR werden durch RFM_PARITY_ERROR bzw. TFM_PARITY _-ERROR signalisiert.
- Bei TSR-Paritätsfehlern, die von RSM durch TSR_PARITY_ERROR signalisiert werden, ist in Fig. 26 zu beachten, daß das eigentliche Signal an einer von zwei Leitungen (für gerade bzw. ungerade Parität) anliegt, wie aus der Notation "TSR_PARITY_ERROR (ODD/EVEN)" zu erkennen ist. Wenn RSM während eines Zugriffs auf TSR einen Paritätsfehler erkennt, stellt er fest, ob die verwendete Adresse zu einem Kanal mit ungerader Nummer oder zu einem Kanal mit gerader Nummer gehört, und sendet über die entsprechende ungerade oder gerade TSR_PARITY_ERROR-Leitung ein Fehlersignal an INT. Dadurch wird verhindert, daß INT und RSM den Fehlerstatus dem falschen Elementarkanalbereich in TSR zuordnen.
- In Fig. 3 ist die synchrone Interruptverarbeitung (der CEISR- und EOPISR-Statusparameter durch INT) die IDLC-Funktion, die bei Zeitschutzübergängen als letzte endet. So würde beispielsweise, wenn INT gerade eine Zeitschlitzangabe (RSM_TSI) verarbeitet, die auf einen Elementarkanal mit gerader Nummer verweist, während RSM den Vor-CCR-Parameter eines nächsten Elementarkanais mit ungerader Nummer abruft, ein Paritätsfehlersignal zu diesem Zeitpunkt mehrdeutige Effekte hervorrufen. Wenn INT sofort auf das Signal reagieren und den Fehlerstatus in das interne CEISR-Register (das weiter unten beschrieben wird) schreiben würde, so würde dieser Status von RSM in den Bereich des Kanals mit der geraden Nummer geschrieben werden. Deshalb ist dem Signal zu entnehmen, ob es sich auf eine gerade oder eine ungerade Kanalnummer bezieht, so daß INT feststellen kann, ob die Generierung der entsprechenden Statusinformation verzögert werden muß, bis die Zeitschlitzangabe wechselt.
- Natürlich könnte die RSM-Logik gezwungen werden, ihr TSR- Paritätsfehlersignal an INT so lange zu verzögern, bis es nicht mehr zweideutig ist. Aus praktischen Gründen wurde hier aber beschlossen, daß einer solchen Situation begegnet werden kann, indem eine Unterscheidung zwischen gerade und ungerade an die INT-Partition übergeben wird und diese dann anhand dieser Unterscheidung feststellt, ob die Generierung des CEISR-Fehlerstatus für das Paritätsfehlerereignis verzögert werden muß. Wenn TSR-Paritätsfehler auf diese Weise behandelt werden, muß INT die Behandlung der entsprechenden Unterscheidung bestätigen, indem sie ein Rücksetzungssignal für gerade/ungerade Nummern (in der Figur durch INT_PE_RST (ODD/EVEN) bezeichnet) an RSM zurücksendet, so daß RSM sein Signal deaktivieren kann.
- Die beschriebene Paritätsfehlerbehandlung in INT wird noch komplizierter, wenn Hyperchannels aktiv sind, da dann die RSM- Zeitschlitzangabe auf einen Referenzkanal mit ungerader Nummer verweisen kann, während gerade ein konstituierender Zeitschlitz mit gerader Nummer zu Ende geht. Wenn RSM auf einen TSR-Paritätsfehler für den Zeitschlitz mit ungerader Nummer stößt, der auf den konstituierenden Zeitschlitz folgt, und eine Fehlermeldung an INT sendet, wäre die resultierende Aktion deshalb nicht eindeutig (INT würde feststellen, daß es sich um ungerade Parität und einen ungeraden Zeitschlitz handelt und sofort einen Fehlerstatus generieren, der dann von RSM nicht in den TSR- Bereich für den Zeitschlitz, der auf den konstituierenden Zeitschlitz folgt, sondern in den TSR-Bereich für den ungeraden Referenzzeitschlitz geschrieben würde). Diese Möglichkeit wird im hier beschriebenen Fall ausgeschlossen, indem INT ein Signal RSM_LSBS (das das niedrigstwertige Bit des gerade an der BTDM erscheinenden Zeitschlitzes angibt) empfängt, das in dieser Situation die gerade Nummer des konstituierenden Zeitschlitzes signalisieren würde. INT würde dann eine Nichtübereinstimmung zwischen dem niedrigstwertigen Bit der Zeitschlitzangabe und dem LSBS erkennen und die Generierung des TSR-Fehlerstatus entsprechend verzögern.
- Bei den in Fig. 26 dargestellten Paritätsfehlerquellen (TSR, RFM, TFM, DMKR) wird ein eindeutiger Hardwarefehlerinterrupt für den vom Fehler betroffenen Kanal generiert. Bei einem Fehler im Zusammenhang mit einem bevorstehenden Überlauf einer EOPISR-Wartschlange wird ein IQO-Bit im letzten (zuletzt eingegangenen) EOPISR-Statuswort in der Warteschlange gesetzt (so daß die IOP beim Abrufen dieses Wortes über den Überlauffehler informiert wird).
- Die INT_CHN-Maschine empfängt Eingangssignale aus zwei Registern, nämlich dem ICR (IDLC-Konfigurationsregister) in SIO und dem HPCR (HDLC-Protokollkonfigurationsregister) in RSM. Der Inhalt von ICR wird bei der IDLC-Initialisierung von IOP programmiert und ist nicht kanalbezogen (gilt also unverändert für alle Kanalprozesse). HPCR ist kanalbezogen (für jeden Kanal anders) und wird beim Zeitwechsel aus dem TSR-Bereich des Kanals geladen (siehe Fig. 6). Der Inhalt der HPCR-Wörter für die einzelnen Kanäle werden von IOP/SIO programmierbar gesetzt. Die hier relevanten Felder in diesen Registern werden weiter unten beschrieben.
- Die INT_CHN-Maschine verwaltet die EOPISR-Warteschlange in einem von zwei programmierbaren Modi, die auf dem Wert des QM- Bits im ICR-Register basieren, nämlich dem Einzelstatusmodus und dem Mehrstatusmodus. Der Wert des ICR/QM-Bits wird bei der IDLC-Initialisierung von IOP programmiert. INT empfängt dieses Bit an ICR_QM (Fig. 26) und unterstützt je nach Wert des QM- Bits entweder die Bildung von Einzelstatuswörtern oder die Bildung von Mehrstatuswörtern. Im Einzelstatusmodus wird für jeden Ereigniseintrag in der EOPISR-Warteschlange ein einziger Interruptvektor generiert und an die IOP übergeben. Im Mehrstatusmodus kann ein einziger Vektor für mehrere Statusereigniseinträge in der EOPISR-Warteschlange generiert werden.
- Der Mehrstatusmodus besitzt gewisse Leistungsvorteile in Form geringerer Interruptpfadlänge in den IOP-Interruptverarbeitungsroutinen, andererseits aber auch den Nachteil einer höheren Komplexität der Routine in Bezug auf die Verwaltung von IOP-Zugriffen auf die Warteschlange. Im Mehrstatusmodus bestätigt IOP die Anzahl der aus der Warteschlange entnommenen Statuswörter, indem sie einen entsprechenden Wert in das (kanalbezogene) HPCR-Register schreibt und die Polarität des Schalterbits in diesem Register umkehrt; siehe Beschreibungen der HPCR-Felder SWRC (Statuswort-Lesezähler) und TOGGLE. Der Inhalt dieser Felder erreicht INT über HPCR_EOP_TOGGLE und HPCR_MIC _-ACK (Fig. 26).
- Der PTV-Wert (vorheriger Schalterbitwert) im CEISR-Register 262 wird mit HPCR_EOP_TOGGLE verglichen, um eine eventuelle Nichtübereinstimmung festzustellen, die darauf hinweist, daß IOP auf die Warteschlange des betreffenden Kanals zugegriffen und einen oder mehrere Einträge daraus entnommen hat. Dieser Mechanismus wird von INT zum Schutz vor dem Überschreiben nicht entnommener bzw. gerade anstehender Warteschlangeneinträge verwendet. NOV (Anzahl aussstehender Vektoren) bezeichnet tatsächlich die Anzahl der Statuswörter in der EOPISR-Warteschlange, wenn INT im Mehrstatusmodus arbeitet. NOV wird von INT um den Wert in HPCR_MIC_ACK verringert, nachdem IOP die Anzahl der aus der Warteschlange entnommenen Wörter bestätigt hat. Dadurch werden die entsprechenden Positionen in TSR frei, so daß der Kreis- Charakter der Warteschlange erhalten bleibt.
- Der Zugriff von IOP auf die EOPISR-Warteschlange umfaßt folgende Operationsfolge: (1) CEISR (über SIO aus TSR) lesen, um die Anzahl anhängiger Statuswörter (NOV) und die nächste Statusposition (NSL) der Warteschlangen-Offsetadresse für den Anfang der anhängigen Einträge abzufragen; (2) das EOPISR-Statuswort bzw. die EOPISR-Statuswörter aus der Warteschlange auslesen (im Einzelstatusmodus ein Wort, im Mehrstatusmodus eins bis 16 Wörter); (3) HPCR (aus TSR) lesen; und (4) die aktuelle (umgekehrte) Schalterbitpolarität sowie gegebenenfalls den SWRC-Wert und den LSA-Wert (Verbindungsstationsadresse) in HPCR/TSR schreiben (wie bereits erwähnt überwacht INT das HPCR-Schalterbit und die SWRC-Funktionen und aktualisiert die entsprechenden CEISR-Parameter PTV und NOV bei Bedarf.
- Das Lesen der Warteschlangeneinträge im Einzelstatusmodus erfordert keine explizite Bestätigung von der IOP (da jeder Vektor genau einem Statuswort zugeordnet ist), und die TOGGLE- und SWRC-Bits werden in diesem Modus nicht benutzt oder geändert. Nachteile des Einzelstatusmodus sind weiter unten im Zusammenhang mit der Anzahl der Statuswörter, die in der EOPISR-Warteschlange gespeichert werden können (14), und mit der größeren Pfadlänge der IOP-Interruptverarbeitungsroutine aufgeführt. In diesem Modus werden für jeden Warteschlangeneintrag eine Interruptanforderung und ein Vektor an IOP übergeben, und INT stellt einen Überlauf fest (der bewirkt, daß das IQO-Bit im letzten Warteschlangeneintrag gesetzt wird), wenn die Anzahl der ausstehenden Einträge in der Warteschlange bzw. im Vektor 14 erreicht (die Warteschlange besitzt zwar Kapazität für 16 Einträge; diese Vorsichtsmaßnahm ist aber wegen der Vektorwarteschlange in SIO und dem Fehlen einer speziellen Bestätigung der Entnahme von Warteschlangeneinträgen durch IOP erforderlich). Die IOP bestätigt die Entnahme von Warteschlangeneinträgen in diesem Modus zwar nicht explizit, muß diese Entnahme aber innerhalb der Interruptverarbeitungsroutine durchführen (d.h. sie kann die Routine nicht unterbrechen und auf die Taskebene zurückkehren, bis dies geschehen ist, wenn das Überschreiben des Status in der Warteschlange vermieden werden muß).
- Im Mehrstatusmodus muß die IOP die Anzahl der für jeden Vektor ausgelesenen Statuswörter explizit bestätigen, indem sie einen entsprechenden Wert in das SWRC-Feld von HPCR schreibt. INT erkennt das IQO-Signal (Überlauf der Interruptwarteschlange), wenn in der Warteschlange 16 Vektoren ausstehen (und setzt dann das IQO-Bit im letzten Eintrag auf 1). In diesem Modus kann die Ausführung des Warteschlangenzugriffs durch IOP durch die Rückkehr auf die Taskebene verzögert werden, da mehrere Einträge in einer TSR-Zugriffsserie entnommen werden können.
- Wenn ein Vektor für eine IDLC-Kanalbedingung für die Übergabe an SIO bereit ist, stellt die INT_CHN-Maschine die Verbindung zur SIO-Partition mittels der Signale SIO_CHN_BSY, INT_CHN _-VECTOR und INT_CHN_REQ her. INT CHN überwacht das SIO_CHN_BSY _-Signal, um festzustellen, ob der Kanalvektorschalter von SIO frei oder belegt ist. Ist er frei, wird der Vektor (INT_CHN _-VECTOR) in die SIO-Partition geschaltet, wo SIO die Übergabe von Vektoren am IOP-Prozessorbus verwaltet.
- Der von INT_CHN für SIO generierte 8-Bit-Vektorwert für IDLC- Kanalbedingungen (Prozeßendeereignisse und Paritätsfehler) verwendet einen 2 Bit langen Kanalinterruptvektor-Offset (CIVO) im ICR-Register, um den IOP-Speicheradressen-Offset eines Bereichs anzugeben, der die entsprechenden Tabelleneinträge für alle Kanäle enthält. Die 5 Bit lange Kanalzeitschlitzangabe von RSM_TSI wird zur weiteren Unterscheidung der Positionen von Einträgen für den IDLC-Quellenkanal verwendet, und ein von INT_CHN generiertes Einzelbit wird zur Bestimmung der Position des Eintrags für den Interrupt herangezogen (dieses Bit hat den Wert 1, wenn der zugehörige Interrupt sich auf ein Prozeßendeereignis bezieht, und den Wert 0, wenn der Interrupt einen kanalbezogenen Paritätsfehler bezeichnet).
- Ist SIO_CHN_BSY aktiv, wenn INT den Transfer eines Vektors veranlaßt, so fragt INT_CHN die gleiche Angabe in aufeinanderfolgenden Zeitschlitzen, in denen der betreffende Kanal verarbeitet wird, wieder ab. Auf diese Weise konkurriert INT_CHN bei seiner Verarbeitung aller IDLC-Kanäle kanaiweise um den Zugriff auf SIO und deren einzigen Kanalvektorschalter. Der Zugriff auf den Kanalvektorschalter folgt keinem Algorithmus und erfolgt in zufälliger Manier, in Abhängigkeit von vielen Variablen (z.B. Länge der IOP-Interruptroutinenpfade, IDLC-Kanalrahmengröße usw.). Die EOPISR-Warteschlangentiefe von 16 Einträgen pro Kanal sorgt dafür, daß die Wahrscheinlichkeit eines Warteschlangenüberlaufs auf einem Kanal sehr gering ist.
- Die INT_CHN-Maschine signalisiert das Ende der Ausführung, indem sie das INT_DONE-Signal aktiviert, das RSM mitteilt, daß das CEISR stabil ist und für die Ein-/Auslagerung zur Verfügung steht. Dies sollte vor dem Abklingen des Zeitschlitzende-Signals (RSM_INT_EOS) von RSM geschehen. Ist INT_DONE zu diesem Zeitpunkt nicht aktiv, stellt RSM fest, daß ein Hardwarefehler aufgetreten ist, und setzt das LTO-Bit (Logik-Zeitüberschreitung) in IHEISR (siehe Beschreibung der IHEISR-Bits weiter unten). Die INT_CHN-Maschine überwacht IHEISR und generiert die entsprechende Interruptanforderung bzw. den entsprechenden Interruptvektor.
- Die INT_CHN-Maschine arbeitet stetig und zeitschlitzübergreifend und verwaltet Interruptvektoren, die sich auf Ereignisse auf Chipebene beziehen, für alle drei möglichen Quellen: L1- Hardware, L1-Kanal und IDLC-Hardware. L1-Hardwarefehler und L1- Kanalbedingungen werden INT_CHN durch L1_CHP_VRQ bzw. L1_CHN _-VRQ mitgeteilt (Fig. 26). Die Quelle für IDLC-Hardwarefehler wird durch die Werte der Bits im Quellenfeldabschnitt des IHEISR-Registers bezeichnet (Fig. 27); das ITE-Bit (Schnittstellen-Taktfehler) weist auf eine mangelnde Synchronisation zwischen IDLC und L1-Schaltungen hin, das LTO-Bit (Logik- Zeitüberschreitung) sagt aus, daß die IDLC-Logik eine Operation (z.B. Aktivierung von INT_DONE vor RSM_EOS, siehe oben) nicht innerhalb der dafür vorgeschriebenen Zeit ausgeführt hat; das ESD-Bit (Fehlerstatus) zeigt an, daß eine Maschine mit finiten Zuständen in einer IDLC-Partition einen verbotenen Zustand eingenommen hat; und das DTO-Bit (DMA-Zeitüberschreitung) weist auf einen mißlungenen Buszugriff zwischen DMA und IOP-Bus hin. Wenn eines dieser Bits gesetzt ist, ist die Signalleitung IDLC_CHP_VRQ vom IHEISR-Register zu INT_CHP aktiv (d.h., IDLC_CHP_VRQ stellt eine logische ODER-Verknüpfung der Bits ITE, LTO, ESD und DTO dar).
- INT_CHP kommuniziert mit SIO über die Signale SIO_CHP_BSY, INT_CHP_VECTOR und INT_CHP_REQ (Fig. 26). SIO_CHP_BSY wird von einem Chipvektorschalter in SIO, der durch INT_CHP_REQ, das von INT in Verbindung mit INT_CHP_VECTOR an SIO übergeben wird, an INT zurückgegeben. Dieses Vektorausgangssignal wird in SIO geschaltet, wenn SIO_CHP_BSY inaktiv ist, und gibt an, um welche der drei genannten Interruptquellen es sich handelt. Ist SIO_CHP_BSY aktiv, so bedeutet dies, daß ein Vektor bzw. eine Anforderung von INT empfangen wurde, aber noch nicht von SIO an IOP übertragen wurde.
- Der INT_CHP_VECTOR besteht aus dem 6 Bit langen Interruptvektor-Offsetwert (IIVO) und einem 2 Bit langen Wert, der von INT_CHP generiert wird. Der Offsetwert wird von INT aus dem ICR-Register in SIO entnommen und gibt den Offset einer Gruppe von Tabelleneinträgen für Interruptbedingungen, die INT mitgeteilt werden können, bezogen auf eine Basisposition im IOP- Speicherbereich an. Der von INT generierte 2-Bit-Wert gibt an, an welcher Position ein bestimmter Eintrag für die mitzuteilende Bedingung steht. Zusammen werden die 8 Bits von IOP zum Zugriff auf den betreffenden Tabelleneintrag und zur Verbindung dieses Eintrags mit einer IOP-Interruptverarbeitungsroutine für das Abrufen der entsprechenden Statusinformation aus dem IHEISR-Register in INT oder aus Registern in den L1-Schaltungen verwendet.
- Bei SIO_RESET wird Zustand 0 eingenommen.
- - Wenn der RSM-Startimpuls (RSM INT START) inaktiv ist, wird Zustand 0 beibehalten.
- - Wenn der RSM-Startimpuls aktiv ist und IM (Interruptmodus) im CEISR den Wert '00' besitzt (was bedeutet, daß INT erstmals für diesen Kanal aktiviert wurde), wird der FIFOR- Paritätsfehlerhinweis (PE in CEISR) zurückgesetzt, SWA (Statuswort verfügbar) in CEISR ebenfalls zurückgesetzt, und IM auf '11 - Normalmodus' gesetzt; es folgt Zustand 1.
- - Wenn RSM_INT_START aktiv ist und IM den Wert '10 - deaktviert' (Hinweis auf FIFOR-Paritätsfehler) oder den Wert '01 - deaktiviert' (Hinweis auf TSR-Paritätsfehler) besitzt, wurde die Warteschlange für diesen Kanal geschlossen; der EOP-Wartezustandschalter wird auf 'EOPISR-Status löschen' gesetzt; es folgt Zustand 7.
- - Ein TSR-Paritätsfehler wird ignoriert, wenn LSBS und das niedrigstwertige Bit von RSM_TSI nicht identisch sind (siehe Erläuterung der Entstehung einer solchen Bedingung weiter oben).
- - Wenn RSM_INT_START aktiv ist und IM den Wert '11 - normal' besitzt, werden die üblichen Statusbewegungen für die EOPISR-Warteschlangenverarbeitung ausgeführt; Wenn SWA/CEISR aktiv ist (Statusinformation von vorigem Zeitschlitzprozeß dieses Kanals verfügbar), wird NSL (nächste Statuswortposition) in CEISR erhöht und SWA zurückgesetzt; es folgt Zustand 1.
- - Prüfung, ob ein kanalbezogener Paritätsfehler vorliegt. Wenn die PE-Bits in CEISR auf einen Paritätsfehler hinweisen (was das Auftreten eines noch nicht gemeldeten TSR- oder FIFOR-Paritätsfehlers bei der vorangegangenen Verarbeitung dieses Kanals impliziert), oder wenn TSR_PARITY _-ERROR oder RFM_PARITY_ERROR ODER TFM_PARITY_ERROR aktiv ist, wird SIO_CHN_BSY abgefragt, um festzustellen, ob der Kanalvektorschalter in SIO den Empfang eines weiteren kanalbezogenen Vektors ermöglicht (siehe Beschreibung von SIO und Bezugszahl 297 in Fig. 43).
- - Wenn SIO_CHN_BSY aktiv ist, wird der EOP-Wartezustandsschalter auf 'EOPISR-Status löschen' gesetzt; es folgt Zustand 7.
- - Wenn SIO_CHN_BSY nicht aktiv ist, wird ein Vektor für einen kanalbezogenen Hardwarefehlerinterrupt generiert und im SIO-Kanalvektorschalter geschaltet und die nächste Aktion zur Identifizierung der Fehlerursache ausgeführt.
- - Wenn die Ursache ein RFM_PARITY_ERROR- oder TFM_PARITY _-ERROR-Signal war, wird IM auf '10 - deaktiviert, FIFO- Paritätsfehler' gesetzt; es folgt Zustand 2.
- - Wenn die Ursache ein TSR_PARITY_ERROR_Signal war, wird IM auf 'deaktiviert, TSR-Paritätsfehler' gesetzt; es folgt Zustand 2.
- - Wenn kein Paritätsfehler signalisiert wird und der Status "auf Vektorbestätigung warten" lautet (WVA-Bit im CEISR- Register 262 gesetzt), wird der PTV-Wert (Voriger Wert des Schalterbits) im CEISR-Register mit dem von der IOP (durch ein HPCR_TOGGLE-Eingangssignal) aktivierbaren Schalterbit verglichen.
- - Wenn PTV- und HPCR_TOGGLE-Bit nicht übereinstimmen, hat die IOP den Abruf des Status aus der EOPISR-Warteschlange bestätigt. Die durch SWRC in HPCR angegebene Anzahl der ausgelesenen Wörter (gekennzeichnet durch den Eingang HPCR _-MIC_ACK dieser Maschine mit finiten Zuständen) ist gültig. Es folgt Zustand 4.
- - Wenn PTV- und HPCR_TOGGLE-Bit übereinstimmen, hat IOP den Abruf des Status aus der EOPISR-Warteschlangen nicht bestätigt, und EOPISR für den letzten für die Warteschlange generierten Vektor steht noch aus; es werden keine weiteren Vektoren für diesen Kanal generiert. Die nächste Operation zur Feststellung eines eventuellen Warteschlangenüberlaufs wird ausgeführt.
- - Wenn die EOPISR-Warteschlange für diesen Kanal übergelaufen ist (wenn IQO in CEISR gesetzt ist), wird der EOP-Wartezustandsschalter auf 'EOPISR-Status löschen' gesetzt; es folgt Zustand 7.
- - Wenn kein Überlauf der EOPISR-Warteschlange für diesen Kanal bevorsteht, wird der EOP-Wartezustandsschalter auf 'EOPISR-Status speichern' gesetzt; es folgt Zustand 7.
- - Wenn kein TSR- oder FIFO-Paritätsfehler aufgetreten ist und nicht auf eine Vektorbestätigung von IOP gewartet wird (WVA inaktiv), folgt Zustand 6.
- - Wenn SIO _CHN_BSY frei ist, wird INT_CHN_REQ aktiviert und der Zustand beibehalten.
- - Wenn SIO_CHN-BSY belegt ist und der Vektor einem kanalbezogenen Hardwarefehlerinterrupt zugeordnet war, wird der EOP- Wartezustandsschalter auf 'EOPISR-Status löschen' gesetzt; es folgt Zustand 7.
- - Wenn SIO_CHN_BSY belegt ist und der Vektor einem EOPISR- Status zugeordnet war, wird geprüft, ob ein Überlauf der EOPIS-Warteschlange vorliegt.
- - Wenn die EOPISR-Warteschlange übergelaufen ist (IQO in CEISR gesetzt), wird der EOP-Wartezustandsschalter auf -EOPISR-Status löschen- gesetzt; es folgt Zustand 7.
- - Wenn die EOPISR-Warteschlange nicht übergelaufen ist (IQO in CEISR nicht gesetzt), wird der EOP-Wartezustandsschalter auf 'EOPISR-Status speichern' gesetzt; es folgt Zustand 7.
- - Ob an diesem Kanal ein Überlauf der EOPISR-Warteschlange aufgetreten ist wird festgestellt, indem NOV mit der maximalen Anzahl der EOPISR-Statuswörter, die durch das ICR_QM- Modusbit festgelegt ist, verglichen wird. Hat das QM-Bit den Wert 1 (Mehrstatusmodus), beträgt die maximale Anzahl der EOPISR-Statuswörter 16. Hat das QM-Bit den Wert (Einzelstatusmodus), beträgt die maximale Anzahl der EOPISR-Statuswörter 14.
- - Wenn das QM-Bit gesetzt ist und NOV den Wert 16 hat, wird das Warteschlangenüberlaufbit (IQO in EOPISR) gesetzt, um auf einen Überlauf hinzuweisen.
- - Wenn das QM-Bit nicht gesetzt ist und NOV den Wert 14 hat, wird das Warteschlangenüberlaufbit (IQO in EOPISR) gesetzt, um auf einen Überlauf hinzuweisen.
- - Der EOP-Wartezustandsschalter wird auf 'EOPISR-Status speichern' gesetzt; es folgt Zustand 7.
- - Wenn die von IOP bestätigte Anzahl der Statuswörter (HPCR_MIC_ACK) größer ist als die Anzahl der momentan gespeicherten Statuswörter (NOV), wird angenommen, daß entweder ein IOP-Programmierfehler vorliegt, oder ein nicht erkannter TSR-Paritätsfehler aufgetreten ist. In beiden Fällen wird ein kanalbezogener Hardwarefehler generiert, und PE auf '11 - Paritätsfehler beim Lesen aus TSR festgestellt' gesetzt. Es folgt Zustand 1.
- - Wenn die von IOP bestätigte Anzahl der Statuswörter (HPCR_MIC_ACK) größer als 0 ist, werden die Werte von HPCR_MIC_ACK und NOV verringert und Zustand 4 beibehalten. Es ist zu beachten, daß für jede Verringerung des Zählerwertes und der zugehörige Vergleich ein Zustandsübergang erforderlich ist.
- - Wenn HPCR_MIC_ACK gleich 0 ist, wird WVA (Warten auf Bestätigung) zurückgesetzt; es folgt Zustand 7.
- - Wenn der aktuelle Vektorzählerwert NOV größer als 0 ist, muß für diesen Kanal ein Vektor generiert werden.
- - Wenn das SIO_CHN_BSY-Signal belegt (aktiv) ist, wird die Vektorgenerierung in diesem Zeitschlitz ausgelassen und im nächsten Zeitschlitz noch einmal versucht; es wird jedoch mit der normalen Verarbeitung des EOPISR-Status fortgefahren.
- - Wenn die EOPISR-Warteschlange übergelaufen ist (IQO in CEISR aktiv), wird der EOP-Wartezustandsschalter auf 'EOPISR-Status löschen' gesetzt; es folgt Zustand 7.
- - Wenn das SIO_CHN_BSY-Signal frei ist, wird ein EOPISR- Vektor für diesen Kanal generiert. Im Mehrstatusmodus wird das aktuelle Schalterbit (HPCR_TOGGLE) aus dem HPCR- Register ausgelesen (für einen späteren Vergleich) und WVA (Warten auf Vektorbestätigung) gesetzt. Im Einzelstatusmodus wird der Wert im Vektorzählerregister (NOV) verringert. Es folgt Zustand 2.
- - Wenn der aktuelle Vektorzählerwert NOV gleich 0 ist, muß kein Vektor generiert werden; es folgt Zustand 7.
- - Es wird auf ein aktives SWA-Signal (Status verfügbar) vom Sende- oder Empfangselement gewartet.
- - Wenn ein Zeitschlitzendesignal (RSM INT EOS) von RSM empfangen wird, folgt Zustand 0.
- - Wenn TSR_PARITY_ERROR aktiv ist, wird PE auf '11 - Paritätsfehler beim Lesen aus TSR' gesetzt. Der EOP-Wartezustandsschalter wird auf 'EOPISR-Status löschen' gesetzt; Zustand 7 wird beibehalten.
- - Wenn das SWA-Bit aktiv ist (was besagt, daß entweder die Empfänger- oder die Senderpartition einen Status im EOPISR- Statusschalter geschaltet hat), und der EOP-Wartezustandsschalter auf 'EOPISR-Status speichern' steht, wird NOV erhöht und der EOP-Wartezustandsschalter wird auf 'EOPISR- Status ignorieren' gesetzt; es folgt Zustand 3.
- - Wenn SWA aktiv ist und der EOP-Wartezustandsschalter auf 'EOPTSR-Status ignorieren' steht, wird Zustand 7 beibehalten.
- - Wenn SWA aktiv ist und der EOP-Wartezustandsschalter auf 'EOPISR-Status löschen' steht, wird das SWA-Bit zurückgesetzt und Zustand 7 beibehalten.
- - Wenn SWA aktiv ist und der EOP-Wartezustandsschalter mit dem aktuellen Wartezustand übereinstimmt, wird Zustand 7 beibehalten.
- Bei SIO_RESET wird Zustand 0 eingenommen.
- - Wenn L1_CHP_VRQ aktiv ist, wird der zugehörige Vektor an SIO übergeben; es folgt Zustand 4.
- - Wenn L1_CHN_VRQ aktiv ist, wird der zugehörige Vektor an SIO übergeben; es folgt Zustand 2.
- - Wenn IDLC_CHP_VRQ aktiv ist, wird der zugehörige Vektor an SIO übergeben; es folgt Zustand 1.
- - Wenn L1_CHP_VRQ aktiv ist, wird der zugehörige Vektor an SIO übergeben; es folgt Zustand 5.
- - Wenn L1_CHN_VRQ aktiv ist, wird der zugehörige Vektor an SIO übergeben; es folgt Zustand 3.
- - Wenn IDLC_CHP_VRQ inaktiv ist, folgt Zustand 0.
- - Wenn L1_CHP_VRQ aktiv ist, wird der zugehörige Vektor an SIO übergeben; es folgt Zustand 6.
- - Wenn L1_CHN_VRQ inaktiv ist folgt Zustand 3.
- - Wenn IDLC_CHP_VRQ aktiv ist, wird der zugehörige Vektor an SIO übergeben, es folgt Zustand 0.
- - Wenn L1_CHP_VRQ aktiv ist, wird der zugehörige Vektor an SIO übergeben; es folgt Zustand 7.
- - Wenn L1_CHN_VRQ inaktiv ist, folgt Zustand 1.
- - Wenn IDLC CHP VRQ inaktiv ist, folgt Zustand 2.
- - Wenn L1_CHP_VRQ inaktiv ist, folgt Zustand 0.
- - Wenn L1_CHN_VRQ aktiv ist, wird der zugehörige Vektor an SIO übergeben; es folgt Zustand 6.
- - Wenn IDLC_CHP_VRQ aktiv ist, wird der zugehörige Vektor an SIO übergeben; es folgt Zustand 5.
- - Wenn L1_CHP_VRQ inaktiv ist, folgt Zustand 1.
- - Wenn L1_CHN_VRQ aktiv ist, wird der zugehörige Vektor an SIO übergeben; es folgt Zustand 7.
- - Wenn IDLC CHP VRQ inaktiv ist, folgt Zustand 4.
- - Wenn L1_CHP_VRQ inaktiv ist, folgt Zustand 2.
- - Wenn L1_CHN_VRQ inaktiv ist, folgt Zustand 4.
- - Wenn IDLC_CHP_VRQ aktiv ist, wird der zugehörige Vektor an SIO übergeben; es folgt Zustand 7.
- Zustand 7: Warten, bis L1_CHP_VRQ inaktiv, L1_CHN_VRQ inaktiv oder IDLC_CHP_VRQ aktiv ist.
- - Wenn L1_CHP_VRQ inaktiv ist, folgt Zustand 3.
- - Wenn L1_CHN_VRQ inaktiv ist, es folgt Zustand 5.
- - Wenn IDLC CHP VRQ inaktiv ist, folgt Zustand 6.
- Details der Statusparameter CEIS und EOPIS wurden weiter oben erläutert. Nachstehend folgen Hinweise zur Verwendung von CEISR, Detailinformationen über die Statusfunktion IHEISR sowie Detailsinformationen über die Konfigurationsbezeichnungsfunktionen ICR und HPCR.
- Die einzelnen Feldnamen und -funktionen werden allgemein oben aufgeführt. Spezielle Einschränkungen bei den Funktionen und besondere Hinweise stehen unten.
- - Gibt an, ob eine Vektorbestätigung von IOP aussteht.
- - Wenn eine Bestätigung aussteht, kann INT keine weiteren Interruptvektoren generieren.
- - Gibt an, wie viele gültige Vektoren in der Warteschlange ausstehen. Wenn IOP den Interrupt bestätigt, kann sie anhand dieses Wertes die Anzahl der gültigen Einträge in EOPISR, die noch aus der Warteschlange auszulesen sind, feststellen. Mit Hilfe dieses Wertes kann INT feststellen, ob ein Warteschlangenüberlauf erfolgt.
- - Gibt den vorigen Wert des HPCR-Schalterbits an; durch Vergleich dieses Bits mit dem HPCR-Schalterbit kann INT im Mehrstatusmodus feststellen, wenn IOP auf die EOPISR-Warteschlange zugegriffen hat.
- - Zeigt an, ob die EOPISR-Warteschlange übergelaufen ist.
- - Bezeichnet einen der folgenden Zustände der IDLC RAMs: kein Paritätsfehler; Paritätsfehler beim Lesen aus TSR; Paritätsfehler beim Lesen aus FIFOR.
- - Dieses Feld muß von IOP jedesmal ausgelesen werden, wenn INT einen Interrupt für einen kanalbezogenen Hardwarefehler generiert.
- - Diese Bits bezeichnen einen der folgenden Betriebsmodi von IDLC für den zugehörigen Kanal: initialisiert (Aktivierung durch RSM steht aus); deaktiviert wegen TSR-Paritätsfehler; deaktiviert wegen FIFOR-Paritätsfehler; aktiviert (für normalen Betrieb).
- - Gibt an, ob ein Statuswort für die Speicherung in der EOPISR-Warteschlange verfügbar ist (durch RSM).
- - Zeigt auf die Offsetposition innerhalb des dem Kanal zugeordneten EOPISR-Warteschlangensegments in TSR, an der das nächste EOPIS-Statuswort gespeichert werden soll; wenn ein Statuswort verfügbar ist (wenn SWA aktiv ist), benutzt RSM den Inhalt dieses Feldes als untere 4 Bits der TSR-Adresse für den Zugriff auf die Warteschlangen (die anderen Bits werden durch die Kanalnummer festgelegt).
- - Neue CEIS-Werte von INT werden von RSM innerhalb eines Zeitraums von höchstens 3,8 Mikrosekunden nach der Genenerung eines zugehörigen Vektors in TSR geschrieben; ein Versuch, CEISR/TSR vor Ablauf der Verzögerung um 3,8 Mikrosekunden abzurufen, kann daher zur Folge haben, daß alte CEIS-Informationen gelesen werden. Der Zugriff von IOP/SIO auf diesen Parameter muß deshalb nach dem Empfang des Vektors durch IOP um mindestens 3,8 Mikrosekunden verzögert werden (normalerweise beträgt die Zeit, die IOP benötigt, um den Taskmodus zu verlassen und eine Verbindung zu der Interruptverarbeitungsroutine herzustellen, mehr als 3,8 Mikrosekunden; eine spezielle Verzögerungsaktion durch IOP ist dafür also nicht erforderlich).
- Wie in Fig. 38 zu sehen ist besitzt dieses Register 10 aktiv genutzte "Statusangabebits" (WPE, APE, LID, PWE, PIA, DPE, NDS, WSE, PPE, DBE) und vier aktiv genutzte "quellenangabebits" (ITE, LTO, ESD, DTO). Diese Bits werden wie folgt verwendet:
- - Weist auf einen Versuch von IDLC hin, einen unerlaubten Schreibzugriff auf einen geschützten Teil des ihm zugeteilten Adreßbereichs zu unternehmen (die Schreibaktion wird verhindert).
- - IDLC/SIO hat einen Paritätsfehler in der Adresse festgestellt, die während einer programmierten Operation von IOP über SIO benutzt wurde (falls es sich um eine Schreiboperation handelte, wird diese unterdrückt).
- - IDLC (SIO) hat einen Interruptbestätigungszyklus (LACK) festgestellt, besitzt aber keinen ausstehenden Vektor, der an TOP übergeben werden kann.
- - Weist auf einen ungültigen Versuch von IOP/SIO, gegensinnige Schreiboperationen für eine 32-Bit-Registerposition in IDLC auszuführen, hin.
- - Weist auf einen ungültigen Versuch von IOP/SIO, auf einen reservierten Teil des IDLC zugeteilten Systemadreßbereichs zuzugreifen, hin.
- - Weist auf die Erkennung eines Datenparitätsfehlers während der programmierten E/A-Schreiboperation durch IOP/SIO in einen IDLC RAM hin. Wenn dieser Fehler festgestellt wird, wird die adressierte Position nicht aktualisiert.
- - Während der Operation war keiner der beiden während einer Lese- oder Schreiboperation an einer IDLC-Adresse erwarteten Datenimpulse (oberer oder unterer Impuls) aktiv.
- - Bei einer Schreibsequenz (mit einer definierten Breite von 32 Bit) in interne IDLC-Register war sowohl der obere als auch der untere Datenimpuls inaktiv.
- - Während eines programmierten Lesezugriffs auf eine IDLC- Adresse (durch IOP/SIO) wurde ein Datenparitätsfehler festgestellt.
- - Während einer DMAC/MIO-Operation am IOP-Bus war BUS_ERROR aktiv. IOP muß weitere Einzelheiten aus dem Statusregister auslesen; in der Regel weist dies jedoch darauf hin, daß bei der Operation ein Adreßparitätsfehler oder ein Doppelbit-ECC-Fehler von IOP festgestellt wurde.
- - Weist darauf hin, daß von den L1-Schaltungen eine Datentransferanforderung übergeben wurde, als IDLC nicht zu einer entsprechenden Reaktion bereit war (z.B. bei mangelnder Synchronisation zwischen IDLC und L1, höchstwahrscheinlich infolge eines Hardwarefehlers).
- - Weist darauf hin, daß die IDLC-Logik die angeforderte Operation nicht innerhalb der dafür vorgesehenen Zeit ausgeführt hat (dies ist in der Regel ein Hinweis auf einen internen Hardwarefehler).
- - In einer Maschine mit finiten Zuständen in einer IDLC- Partition wurde ein unerlaubter Zustand festgestellt, in der Regel aufgrund eines Hardwarefehlers.
- - IOP hat nicht innerhalb von 50 Mikrosekunden auf eine IDLC DMA/MIO-Anforderung reagiert. Diese Zeit reicht normalerweise aus, damit MIO die Steuerung des IOP-Busses übernehmen kann; eine Überschreitung weist in der Regel auf einen Hardwarefehler hin.
- Die Felder in diesem Register werden in der Beschreibung von SIO weiter unten ausführlich erläutert (siehe Abschnitt 12.3.2).
- Ausführliche Erläuterungen der Felder dieses Registers und ihrer Verwendung sind der Beschreibung des RSM zu entnehmen (siehe Abschnitt 7.3).
- Wie bereits erwähnt werden Hyperchannels gebildet, indem mehrere Elementarkanäle zusammengefaßt und die konstituierenden Zeitschutze (für jeden Rahmen wiederkehrender BTDM-Zeitschlitze) einem Referenzzeitschlitz (dem zuerst erscheinenden Zeitschlitz) zugeordnet werden.
- Interruptangaben, die während eines konstituierenden Zeitschlitzes eines Hyperchannels empfangen werden, werden genauso verarbeitet wie Interruptangaben für andere Kanäle; kanalbezogene Fehler und Ereignisstatusdaten werden jedoch auf den Referenzzeitschlitz bezogen. Dies erfolgt in der Regel so, daß der Vorgang für die logische Operation von INT transparent ist (abgesehen von den oben erläuterten Bedingungen, die eintreten können, wenn TSR-Paritätsfehler in konstituierenden Zeitschlitze mit ungerader oder gerader Nummer für einen Hyperchannel mit gegenteilig numerierter Zeitschlitzposition auftreten), da die Speicherung des betreffenden Status von RSM und seiner Zeitschlitzangabe (RSM_TSI) gesteuert wird. Die Zeitschlitzangabe bei der Verarbeitung eines konstituierenden Zeitschutzes verweist auf den Referenzzeitschlitz und bewirkt, daß der zugehörige Interruptstatus im TSR-Bereich für den Referenzzeitschlitz gespeichert wird.
- Im Fall der oben erwähnten Ausnahme bei TSR-Paritätsfehlern wird RSM veranlaßt, INT Signale zu senden, anhand derer diese den richtigen Zeitpunkt für die Generierung des Status ermitteln kann, so daß dieser an den richtigen Referenzzeitschlitz oder den entsprechenden anderen Bereich geleitet werden kann.
- SIO vermittelt zwischen INT und IOP, um Interruptanforderungen und die zugehörigen Vektoren an die IOP zu senden und der IOP den Zugriff auf einzelne Register und RAM-Adreßbereiche im IDLC zu gewähren. Beides unterstützt das Abrufen des Interruptstatus und/oder der Diagnosedaten durch IOP und versetzt die IOP in die Lage, programmgesteuert Anfangszustände der IDLC-Elemente und Kanäle herzustellen. Bei der Kommunikation mit dem IOP-Bus ist SIO von der IOP abhängig, d.h. die Ausführung aller ihrer Operationen zum Transfer von Informationen über den IOP-Bus ist von einer IOP-Initiative abhängig. Ferner erfolgen ihre Operationen in Bezug auf die IOP und andere IDLC-Elemente in asynchroner Zeitbeziehung zu den Verarbeitungsoperationen in IDLC- Kanälen.
- In Fig. 32 ist sind logische Aufbau und die externen Schnittstellen der SIO-Partition dargestellt. Diese Partition bildet innerhalb des IDLC eine Schnittstelle zur INT-Partition, zu allen IDLC RAMs und zu dem wichtigsten Registern in allen anderen Partitionen. Extern fungiert sie als Schnittstelle zwischen dem IOP-Bus und den L1-Schaltungen.
- Die Logikfunktionen der Partition werden hauptsächlich von zwei unabhängig arbeitenden Maschinen mit finiten Zuständen 280 (ICM- oder IOP-Steuerung) und 281 (PIO oder Programm-E/A-Abbildung) ausgeführt. Wie diese Namen vermuten lassen, ist die ICM-Maschine für die Schnittstellenfunktion zum IOP-Bus 282 und die PIO-Maschine für die Verschiebung von Daten über die programmierbare E/A-Schnittstelle 283-284 zwischen SIO und den IDLC RAMs und anderen Partitionen zuständig. Die ICM-Maschine ist ausschließlich für die Schnittstellenfunktion zur INT-Partition bei der Übertragung von Interruptanforderungen und Vektoren von letzterer an die IOP-Bus verantwortlich und steuert auch die Transfers von IDLC-Statusdaten aus den Schaltern 285, in die solche Daten unter der Steuerung durch die PIO-Maschine geschrieben werden.
- Die ICM-Maschine vermittelt beim Austausch von Steuersignalen mit der IOP, die den Datentransfer zwischen SIO und IOP steuern, direkt zwischen dem IOP-Bus an 286-288. Diese Steuerzeichen sind in der Form "X_Y" dargestellt, wobei X die Quelle und Y die Signalfunktion bezeichnet. Rechts oder links vom Signalnamen steht ein Punkt ("."), der den Signalnamen einer Leitung auf der rechten oder auf der linken Seite zuordnet. ".IOP_INT_ACK" beispielsweise wird der Leitung 286 auf der linken Seite (von IOP gesteuert) zugeordnet und stellt deren Bestätigung des Empfangs einer Interruptanforderung und des zugehörigen Vektors dar, und "SIO_INT." bezeichnet eine Zuordnung zu Leitung 288 auf der rechten Seite und stellt ein von ICM/SIO gesteuertes Interruptanforderungssignal dar.
- An die IOP abgehende Daten werden von den SIO-Bustreiberschaltungen 289 an den IOP-Bus übertragen, wobei der ICM-Maschine die Steuerung übertragen wird. Über den IOP-Bus ankommende Daten werden an 290 zusammen mit den von IOP gesteuerten Adreßsignalen an 291 empfangen. Eingehende Daten und Adressen werden von den Paritätsprüfungsschaltungen 292 bzw. 293 geprüft, die nicht dargestellte Ausgänge zu ICM besitzen, über die Fehler an letzteren übermittelt werden können.
- Abgehende Daten werden den Bustreibern 289 über die Auswahlschaltungen 294 und 295 übergeben, die von der ICM-Maschine 280 gesteuert werden. Die Auswahlschaltungen 294 empfangen Eingangssignale von den Interruptvektorschalterquellen 296 und 297. Die Schalter 296 empfangen Hardwarefehler-Vektoren, die von INT unter der Steuerung durch die weiter oben beschriebene INT_CHP-Maschine gesendet wurden. Die Schalter 297 empfangen kanalbezogene Ereignis- oder Bedingungsvektoren unter der Steuerung der weiter oben beschriebenen INT_CHN-Maschine.
- Die Auswahlschaltungen 295 empfangen Daten von den Lesedatenschaltern 298. Die Schalter 298 werden mit den Ausgangssignalen der Auswahlschaltungen 300 geladen. Operationen der Schaltungen 300 und das Laden der Schalter 298 werden von der PIO-Maschine 280 gesteuert. Die Schaltungen 300 übertragen selektiv Daten aus RSM, TSR, FIFOR, DMAR und einigen Registern. Der Datenpfad von RSM ermöglicht den Transfer des Inhalts von HPCR (HDLC- Protokollkonfigurationsregister) in RSM. Die anderen Register, die Eingangssignale an die Auswahlschaltung 300 liefern, sind das IHEISR-Register in INT und zwei SIO-Register, nämlich ICR (IDLC-Konfigurationsregister) 301 und HCR (Hyperchannel-Konfigurationsregister) 302. Einzelheiten zu den ICR-Feldzuordnungen sind den nachstehenden Erläuterungen zu entnehmen, und detaillierte Erläuterungen der HCR-Felder sind in der Hyperchannel- Beschreibung in Abschnitt 15 zu finden.
- ICR besitzt folgende Felder (Fig. 44):
- RES (Reserviert; 12 Bit)
- - Programmierbare Zeitwerte, die angeben, wie lange IDLC bei der Ausführung einer Master-Operation auf eine Bestätigung durch eine abhängige Einheit wartet.
- - Wenn das SEM-Bit nicht gesetzt ist, bestätigt IDLC keinen fehlerhaften Zugriff einer abhängigen Einheit. Wenn das SEM-Bit gesetzt ist, wird beim Zugriff einer abhängigen Einheit eine Bestätigung gesendet und ein Busfehlersignal ausgegeben.
- - Mit diesem Bit besitzt die Software ein Mittel, das System über die SIO zurückzusetzen.
- - Dieses Bit bestimmt, ob bei Vorhandensein eines Vektors Einzelstatuswörter oder Mehrstatuswörter verwendet werden sollen (ausführliche Informationen sind der Beschreibung des INT-Logikelements zu entnehmen).
- - Dieses Bit dient zum Schutz des Inhalts eines EEROS- Elements (elektrisch löschbarer Festwertspeicher) außerhalb des IDLC.
- - Dieses Feld wird zur Generierung der oberen 6 Bits des 8 Bit langen manuellen Vektors für alle Interrupts auf der IDLC-Chipebene verwendet.
- - Dieses Feld wird zur Generierung der oberen zwei Bits des 8 Bit langen manuellen Vektors für alle Interrupts auf Kanalebene verwendet.
- - Dieses Bit wird zum Auswählen der oberen oder der unteren Seite des TSR benutzt (die Größe einer Seite in TSR beträgt 1K x 36).
- - Dieses Feld versetzt IDLC in einen der folgenden Betriebsmodi: Normalmodus, Rücksetzungsmodus, Normalmodus mit erzwungenem Fehler, Rücksetzungsmodus mit erzwungenem Fehler und stummer Modus. Die verschiedenen Modi liefern Funktionen für Diagnosezwecke. Wenn der Normalmodus aktiv ist, beginnt IDLC zu arbeiten. Wenn der Normalmodus mit erzwungenem Fehler aktiv ist, arbeitet IDLC im Normalmodus und erzwingt bei allen SIO-Schreiboperationen Paritätsfehler. Wenn der Rücksetzungsmodus mit erzwungenem Fehler aktiv ist, arbeitet IDLC im Rücksetzungsmodus und erzwingt Fehler bei allen SIO-Schreiboperationen. Wenn der stumme Modus aktiv ist, arbeitet IDLC wie im Normalmodus, gibt aber keine Interrupts aus.
- Der IOP-Bus bildet eine 18 Bit breite Schnittstelle zu SIO (16 Datenbits und 2 Paritätsbits), und SIO ist an den 32 Bit breiten internen Datenbus der IDLC angeschlossen. Ankommende und abgehende Daten werden über den IOP-Bus in 18-Bit-parallelen Einheiten (zwei Bytes mit den entsprechenden Paritätsbits) in Verbindung mit der oberen und der unteren Datenimpulsfunktion (.IOP_UDS und .IOP_LDS), die angeben, welches Byte gültig ist, an 286 übertragen. Abgehende Daten können in 36-Bit-parallelen Einheiten (4 Bytes plus Parität) in Schalterelement 298 geladen und über den IOP-Bus in einer zwei Zyklen umfassenden Transferoperation übertragen werden, in der 18 Bit lange Teile der Daten über die ICM-Datenauswahlschaltung 295 im Multiplexbetrieb an den Bus übertragen werden.
- Von SIO über den IOP-Bus ankommende Daten können in 18-Bitparallelen Dateneinheiten (zwei Bytes mit den zugehörigen Paritätsbits) zusammen mit 24 Bitadreßeinheiten, die den endgültigen Bestimmungsort innerhalb von IDLC angeben, übertragen werden. Die IOP kann Daten an 32 Bit breite Register in IDLC leiten, indem in einer aus zwei Zyklen bestehenden Transferoperation zwei zusammengehörige 18 Bit breite Eingangsdateneinheiten nacheinander über den Bus übertragen werden. Die erste 18-Bit- Einheit eines solchen Paares wird in die Datenschalter 304 geschaltet, so daß das Paar an einem 36 Bit breiten Erweiterungsbus 305 parallel (eine 18-Bit-Einheit aus der Schaltereinheit 204 und die andere direkt von IOP-Bus) übergeben werden kann. Der Bus 305 (SIO_DATA_BUS) führt zu anderen SDLC-Partitionen und RAMs.
- Eingehende Adreßeinheiten gehen über den ICM-Decoder 306 an die ICM-Maschine 280 und über den PIO-Decoder 307 an die PIO- Maschine 281. Der 2-Bit-Schalter 308 (Schalter für die Information aus dem ersten Zyklus) wird von ICM zur Speicherung der Steuerparameter des ersten Zyklus einer aus zwei Zyklen bestehenden gegensinnigen Transferoperation benutzt; d.h., wenn der Transfer im ersten Zyklus eine Leseoperation aus der IOP oder eine Schreiboperation in die IOP ist und das niedrigstwertige Adreßbit des ersten Zyklus ungerade oder gerade ist (anhand der letzteren Information kann überprüft werden, ob die gegensinnigen Transfers an einer Wortgrenze stattgefunden haben).
- Bei eingehenden Datentransfers an andere IDLC-Elemente wird die vom ICM-Decoder 306 decodierte Adresse der ICM-Maschine übergeben und von dieser an die ICM-Adreßschalter 309, die als Eingänge der PIO-Maschine dienen. Anhand dieser Information stellt die PIO-Maschine fest, wann sie den Ausgang von Decoder 307 aktivieren muß, um die Adresse SIO_ADDRESS_BUS, die intern an andere IDLC-Partitionen und RAMs verteilt wird, zu signalisieren. Der Datenpfad zu RSM (Schnittstelle 283 und RSM_DATA an 284) ermöglichen der IOP die Ausführung diagnostischer Lese- und Schreiboperationen an den internen Schaltern von RSM, die für den Zeitwechsel benutzt werden.
- Die ICM-Maschine und die PIO-Maschine kommunizieren über eine Anforderungs-/Bestätigungsschnittstelle miteinander. ICM übergibt Lese- und Schreibanforderungen (ICM PIO_RD, ICM PIO WR), die von PIO bestätigt werden (mit PIO_RD_ACK, PIO_WR_ACK).
- Die ICM-Maschine verfügt über 32 mögliche Zustände, die weiter unten beschrieben werden. Mit diesen Zuständen verwaltet sie das asynchrone IOP-Bus-Protokoll für abhängige Transfers und das interne Protokoll für die Verbindung der 16-Bit-Architektur des Busses mit der internen 32-Bit-Architektur des IDLC. Alle Steuersignale von der IOP (.IOP_RD/WR, .IOP_LDS, .IOP_UDS, .IOP_ADDR_STRB, .IOP_CHP_SEL, .IOP_RESET und .IOP_INTACK) werden vor der synchronen Eingabe in die mit 50 ns getaktete ICM- Maschine geschaltet. Die Paritätsprüfung von Adreß- und Datenbus der IOP (IOP_ADDRESS und IOP_DATA_BUS) erfolgt byteweise.
- Der Anfang eines IOP-Buszyklus wird signalisiert, wenn das Chipauswahlsignal (.IOP_CHP_SEL) und das Adreßimpulssignal (.IOP_ADDR_STRB) gleichzeitig aktiv sind. Die Polarität des .IOP_RD/WR-Signals gibt an, ob es sich um einen IDLC-Schreibzyklus oder um einen IOP-Lesezyklus handelt (der Wert 1 bezeichnet einen Lesezyklus, der Wert 0 einen Schreibzyklus). Der untere Datenimpuls (IOP_LDS) und der obere Datenimpuls (IOP_UDS) geben an, ob bei einem Schreibzyklus das obere oder das untere Byte des Datenbus (IOP_DATA_BUS) gültig ist, bzw. ob bei einem Lesezyklus das eine oder andere Byte gültig ist oder beide Bytes gültig sind. Für Schreibzyklen in 32-Bit-Datenregister in IDLC sind zwei 16 Bit umfassende IOP-Buszyklen erforderlich, und ICM erfaßt im ersten Zykluls vorübergehend sowohl Daten als auch Parität in Schaltern 304. Im zweiten Zyklus übergibt ICM der PIO-Maschine alle 36 Bit (32 Datenbits plus 4 Paritätsbits).
- Bei Lesezyklen aus 32-Bit-Datenregistern werden ebenfalls zwei 16 Bit umfassende IOP-Buszyklen benötigt, und ICM wählt mit Hilfe des Auswahlschalters 295, der die 36 Bit (32 Datenbits plus 4 Paritätsbits) aus den Lesedatenschalter 298 von PIO multiplext, die ersten 18 Bit (16 Datenbits plus 2 Paritätsbits) aus. Mit Hilfe des ICM-Adreßschalters 309 wird am Ende des ersten Zyklus die aktuelle IOP-Adresse geschaltet, damit sie im zweiten Zyklus für einen Vergleich zur Überprüfung der gegensinnigen Adressen mit nur einer Adreßänderung zur Verfügung steht, bei dem das zweitniedrigste Bit A1 in den Adressen der beiden Zyklen verglichen wird (IOP-Adressen haben die Nummern A0 bis A24). Der ICM-Schalter 308 für die Information aus dem ersten Zyklus hält fest, ob der erste Zyklus ein Lese- oder ein Schreibzyklus ist, und gibt den Wert des A1-Bits an. Diese Informationen werden im zweiten 16-Bit-Zyklus einer 32 Bit umfassenden Lese- oder Schreiboperation verwendet. Nach zwei erfolgreichen gegensinnigen Zyklen oder einem von ICM erkannten Fehlerzyklus wird die Information aus dem ersten Zyklus auf einen Wert 'ohne Vorgeschichte' zurückgesetzt. ICM führt bei Lesezyklen eine Gültigkeitsprüfung durch, um interne Datenpantätsfehler weiter von IOP-Bus-Paritätsfehlern zu unterscheiden.
- ICM signalisiert den Abschluß eines Lese- oder Schreibzyklus durch Aktivierung der Datenbestätigungsleitung (SIO_DTACK.).
- Abhängige Fehler, die in einem Lese- oder Schreib-Buszyklus fesgestellt werden, haben zur Folge, daß ICM die Leitung SIO _DTACK. nicht aktiviert und das entsprechende Fehlerbit im IHEISR-Register setzt (siehe Beschreibung des IHEISR-Registers im Abschnitt über die INT-Partition). Bei einem solchen Fehler verursacht IOP bei allen Lese- und Schreiboperationen eine Zeitüberschreitung der SIO_DTACK-Bestätigung von ICM und ergreift entsprechende Diagnosemaßnahmen oder sonstige Aktionen.
- Der Mechanismus, durch den ICM signalisiert, daß ein Interruptvektor für den IOP-Prozessor vorhanden ist, ist die asynchrone Aktivierung des SIO_INT.-Signals. Dies hat schließlich zur Folge, daß die Ausführung von Taskprogrammen durch IOP ausgesetzt und am IOP-Bus ein Interruptbestätigungszyklus generiert wird. Zu diesem Zeitpunkt aktiviert IOP das Signal IOP_INTACK, das bewirkt, daß an den unteren 8 Bits des IOP_DATA_BUS entweder ein Chipvektor (CHIP_VECTOR_LATCH) oder ein Kanalvektor (CHA _-VECTOR_LATCH) von ICM aktiviert wird.
- Die Vektorschalter 296 und 297 werden als Vektorhalteregister (VHR) bezeichnet und können auch von der IOP in programmierten E/A-Zyklen (d.h. für Diagnosezwecke) benutzt werden.
- ICM bietet eine Adreßdecodierungsebene, die bei Lese- und Schreibdatentransfers die Auswahl von L1-Schaltungen, PIO (andere Teile von IDLC) oder VHR bestimmt (es ist zu beachten, daß das VHR-Register bei normalen SIO-Operationen nur gelesen wird). Die L1-Decodierung bewirkt, daß das L1-Chiprücksetzungsauswahl-Signal (L1_CHP_SEL) aktiv wird und Daten zwischen dem IOP-Bus und den L1-Schaltungen übertragen werden. Die VHR- Decodierung ermöglicht das Lesen der VHR-Register. Eine Decodierung in PIO-Bereiche wird als Zugriff auf den speicherabgebildeten E/A-Bereich in IDLC definiert, der nicht mit den Adressen der L1-Schaltungen und des VHR-Registers identisch ist. Solche Decodierungen bewirken, daß ICM mittels Aktivierung von .ICM_PIO_RD oder .ICM_PIO_WR (je nach Richtung des IOP-Bus- Zyklus) die Verarbeitung durch PIO anfordert. Die PIO-Maschine bestätigt ICM-Anforderungen durch ein PIO_ICM_ACK-Signal.
- PIO bietet zusätzlich zu der Adreßdecodierungsebene in ICM eine weitere Adreßdecodierungsebene 307. PIO verwaltet das Multiplexing und das Schalten von Daten zwischen den internen 36 Bit breiten IDLC-Bussen (32 Datenbits, 4 ungerade Paritätsbits, außer bei DMAP mit 32 Datenbits und 1 ungeraden Paritätsbit). PIO greift über Anforderungs- und Bestätigungssignale, die bestimmte RAMs bezeichnen (z.B. SIO_TSR_RD (oder WR) und TSR_SIO_ACK) auf TSR, FIFOR und DMAR RAMs zu.
- Über die Auswahlschaltung 300 multiplext PIO in den PIO- Lesezyklen 36 Bit breite Datenbusse von TSR, RSM, FIFO, DMACR, IHEISR-Register, ICR-Register und HCR-Register zum Lesedatenschalter 298. Der RSM_DATA-Eingang der Auswahlschaltung 300 ist der Lesepfad für Zeitwechselregister in RSM, auf die zu Diagnosezwecken zugegriffen werden kann. Die Eingänge IHEISR_DATA, ICR_DATA und HCR_DATA der Auswahlschaltung sind Lesepfade vom IHEISR-Register (in INT), dem ICR-Register bzw. dem HCR- Register.
- Bei Schreiboperationen verteilt PIO 36-Bit-Daten über den Bus 283 (SIO_DATA_BUS) an die gleichen IDLC-Elemente. Das ICR- Register und das HCR-Register wird innerhalb von IDLC zur Übergabe von Konfigurations- und Hyperchannelinformationen an die RSM-Partition benutzt (siehe Beschreibung von RSM und Beschreibungen der HCR- und ICR-Bits weiter oben). SIO_IHEISR_SEL verläuft von PIO zu INT und wird bei Transfers von IHEISR-Daten an IOP zur Auswahl des IHEISR_Registers verwendet.
- Bei SIO_RESET wird Zustand 0 eingenommen.
- - Sind am IOP-Bus sowohl IOP_CHP_SEL (IOP-Chipauswahl) als auch IOP_ADDR_STRB (IOP-Adreßimpuls) aktiv, wird 50 ns gewartet, damit sich die Adreßparität stabilisieren kann; es folgt Zustand 31.
- - Sind IQP_INTACK (Interrupt-Bestätigung) und IOP_ADDR_STRB (Adreßimpuls) aktiv, wird der Vektorauswahlpfad so gesetzt, daß der Vektor vom Chipvektorschalter oder vom Kanalvektorschalter übertragen wird (dabei hat der Chipvektorschalter die höhere Priorität). Es ist zu beachten, daß ICM selbst dann, wenn die eigentliche Ursache für die Aktivierung des IOP_INT-Signals, auf das die IOP mit IOP_INTACK antwortet, das Laden eines Vektors in den Kanalvektorschalter war, im IOP_INTACK-Zyklus eine Auswahl zwischen Kanal- und Chipvektor trifft.
- - Wenn keine Vektoren ausstehen (d.h. der Chipvektorschalter und der Kanalvektorschalter beide leer sind), wird das LID-Bit (verlorengegangener Interrupt) in IHEISR gesetzt; es folgt Zustand 1.
- - Es erfolgt eine Verzögerung um einen Taktzyklus (50 ns), damit am Ausgang der Vektorauswahlschaltung 294 eine gültige Parität generiert werden kann. Es folgt Zustand 2.
- - Bei 294a wird die Parität der Vektorauswahlschaltung geprüft.
- - Ist die Parität korrekt, wird am IOP-Bus ein Datenbestätigungssignal (PIO_DTACK) erzeugt; es folgt Zustand 3.
- - Bei einem Paritätsfehler wird das Datenbestätigungssignal PIO_DTACK nicht erzeugt, so daß in IOP eine DTACK-Zeitüberschreitung erfolgt. Die PPE-Statusangabe (Lese- Paritätsfehler bei programmierter E/A-Operation) in IHEISR wird gesetzt; es folgt Zustand 14.
- Zustand 3: SIO_CHN_BSY oder SIO_CHP_BSY für INT zurücksetzen (diese Signale werden von INT überwacht, um festzustellen ob der Chipvektorschalter und der Kanalvektorschalter voll oder leer sind).
- - Je nach Position der Vektorauswahlschaltung wird entweder SIO_CHP_BSY oder SIO_CHN_BSY zurückgesetzt (wenn der Chipvektorschalter ausgewählt ist, wird SIO_CHP_BSY zurückgesetzt; wenn Kanalvektorschalter ausgewählt ist, wird SIO CHN_BSY zurückgesetzt).
- - Wenn IOP_INTACK inaktiv ist, wird Zustand 15 eingenommen.
- - Wenn IOP-INTACK aktiv ist, wird Zustand 7 eingenommen.
- - Wenn PIO das Lesen bestätigt (PIO_RD_ACK), werden die aktuellen IOP-Adreßbusbits im ICM-Adreßschalter 309 gespeichert, und die Information aus dem ersten Zyklus in 308 wird ebenfalls gespeichert (um beim darauffolgenden Lesezyklus einen schnellen Zugriff auf die Daten der Schalter 298 zu ermöglichen, da dann keine Daten von der PIO- Maschine angefordert werden müssen). Es folgt Zustand 5.
- - Wenn IOP_ADDR_STRB (IOP-Adreßimpuls) inaktiv ist, wird am vorzeitigen Ende des aktuellen Zyklus die Information aus dem ersten Zyklus auf 'keine Vorgeschichte' gesetzt.
- - Wenn IOP_CHP_SEL (Chipauswahl) aktiv ist, wird Zustand 15 eingenommen.
- - Wenn IOP_CHN_SEL (Kanalauswahl) aktiv ist, wird Zustand 0 eingenommen.
- - Es wird gewartet, bis ein Taktzyklus (50 ns) verstrichen ist, damit in dieser Zeit am Bus der ICM-Datenauswahlschaltung die Lesedatenparität generiert werden kann; es folgt Zustand 6.
- - In Abhängigkeit von den Prozessorbus-Steuersignalen IOP_UDS und IOP_LDS wird die Parität am oberen oder unteren Datenbus geprüft.
- - Wenn die Parität korrekt ist, wird PIO_DTACK ausgegeben; es folgt Zustand 14.
- - Wenn die Parität nicht korrekt ist, wird die Information aus dem ersten Zyklus auf 'keine Vorgeschichte' gesetzt, die PPE-Statusangabe (Leseparitätsfehler bei programmierter E/A-Operation) im IHEISR-Register gesetzt und kein PIO_DTACK generiert. Es folgt Zustand 14.
- - Wenn das Interruptbestätigungssignal IOP_INTACK inaktiv wird, folgt Zustand 0.
- - Wenn das Interruptbestätigungssignal IOP_INTACK aktiv bleibt, wird Zustand 7 beibehalten.
- Nicht benutzt
- - Wenn einer der geschalteten Datenimpulse (IOP_UDS oder IOP_LDS) aktiv geworden ist, wird mit Hilfe von Datenimpulssignalen festgestellt, ob gültige 16-Bit-Buszyklen angefordert werden. Die Datenparität vom IOP_DATA-Bus wird geprüft. Wenn die Information aus dem ersten Zyklus besagt, das der vorige Zyklus ein Schreibzyklus war, wird geprüft, ob gegensinnige 16-Bit-Zyklen gültig sind.
- - Wenn die Datenimpulse (UDS, LDS) oder die Adreßimpulse IOP_ADDR_STRB aktiv sind, wird Zustand 9 beibehalten.
- - Wenn die Parität korrekt ist und es sich um die erste Hälfte eines 32-Bit-Zyklus handelt, werden Daten geschaltet, die Information aus dem ersten Zyklus gespeichert ('Schreiben mit A1 = 0'), die Adresse im ICM-Adreßschalter geschaltet und PIO_DTACK für IOP aktiviert; es folgt Zustand 14.
- - Wenn die Parität korrekt ist und es sich um die zweite Hälfte eines 32-Bit-Zyklus handelt, wird eine Schreibanforderung (ICM_PIO_WR) an PIO übergeben; es folgt Zustand 10.
- - Wenn die Parität nicht korrekt ist, wird das DPE-Bit (Datenparitätsfehler) in IHEISR gesetzt und kein PIO_DTACK generiert; es folgt Zustand 14.
- - Wenn entweder IOP_UDS oder IOP_LDS inaktiv ist, hat IOP nicht beide Datenimpulse aktiviert, oder es wurde eine für die Programmierung geltende Einschränkung mißachtet. In beiden Fällen handelt es sich nicht um einen 16-Bit- Zyklus, so daß der NDS-Statushinweis (keine Datenimpulse) in IHEISR gesetzt und kein PIO_DTACK generiert wird. Es folgt Zustand 14.
- - Wenn IOP_ADDR_STRB (Adreßimpuls) inaktiv ist, wird angenommen, daß in IOP eine Zeitüberschreitung für PIO_DTCK aufgetreten ist und der aktuelle Zyklus vorzeitig endet. Es folgt Zustand 14.
- - Wenn PIO_WR_ACK (PIO-Schreibbestätigung) inaktiv oder IOP_ADDR_STRB (Adreßimpuls) aktiv ist, wird Zustand 10 beibehalten.
- - Wenn PIO WR ACK aktiv ist, wird die Information aus dem ersten Zyklus ('Schreiben mit A1 = 1') gespeichert und PIO_DTACK generiert. Es folgt Zustand 14.
- - Wenn IOP_ADDR_STRB inaktiv ist, wird davon ausgegangen, daß eine Zeitüberschreitung für PIO_DTACK vorliegt, und die Information aus dem ersten Zyklus wird auf 'keine Vorgeschichte' zurückgesetzt. Es folgt Zustand 0.
- - Wenn IOP_UDS oder IOP_LDS inaktiv bleibt oder IOP_ADDR _-STRB aktiv bleibt, wird Zustand 13 beibehalten.
- - Wenn entweder IOP_UDS oder IOP_LDS aktiv wurde, wird L1_CHP_SEL (L1-Chipauswahl) ausgegeben und Zustand 14 eingenommen. Es ist zu beachten, daß der L1-Chip selber und nicht IDLC für die Rücksendung von PIO_DTACK zuständig ist, auch wenn die SIO-Partition weiterhin den Prozessorbus IOP_ADDR_STRB überwachen muß, um das Ende des aktuellen Prozessorbuszyklus (d.h. das Inaktivwerden des Prozessor-Adreßimpulses) festzustellen.
- - Wenn IOP_ADDR_STRB inaktiv wird, wird eine Zeitüberschreitung von PIO_DTACK angenommen; es folgt Zustand 0.
- - Wenn IOP_ADDR_STRB aktiv ist, wird Zustand 14 beibehalten.
- - Wenn IOP_ADDR_STRB inaktiv und IOP_CHP_SEL (Chipauswahl) ebenfalls inaktiv ist, folgt Zustand 0.
- - Wenn IOP_ADDR_STRB inaktiv und IOP_CHP_SEL aktiv ist, wird Zustand 15 eingenommen.
- - Wenn IOP_CHP_SEL aktiv ist, wird Zustand 15 beibehalten.
- - Wenn IOP_CHP_SEL inaktiv ist, wird Zustand 0 eingenommen.
- - SIO_EEROS_CE und SIO_EEROS_OE werden aktiv gehalten, um EEROS-Lesezugriffszeit bereitzustellen (EEROS ist ein optionaler Festwertspeicher für Diagnosezwecke, der nicht Teil der vorliegenden Beschreibung ist); es folgt Zustand 17.
- - SIO_EEROS_CE und SIO_EEROS_OE werden weiterhin aktiv gehalten, um EEROS-Lesezugriffszeit bereitzustellen; es folgt Zustand 18.
- - SIO_EEROS_CE und SIO_EEROS_OE werden weiterhin aktiv gehalten, um EEROS-Lesezugriffszeit bereitzustellen; es folgt Zustand 19.
- - SIO_EEROS_CE und SIO_EEROS_OE werden weiterhin aktiv gehalten, um EEROS-Lesezugriffszeit bereitzustellen; es folgt Zustand 20.
- - SIO_EEROS_CE und SIO_EEROS_OE werden weiterhin aktiv gehalten, um EEROS-Lesezugriffszeit bereitzustellen; es folgt Zustand 21.
- - SIO_EEROS_CE und SIO_EEROS_QE werden weiterhin aktiv gehalten, um EEROS-Lesezugriffszeit bereitzustellen. Daten von EEROS müssen an IOP_DATA_BUS gültig sein, es ist jedoch ein weiterer Taktzyklus einzuräumen, um eine gültige Parität zu generierten. Es folgt Zustand 22.
- - SIO_EEROS_CE und SIO_EEROS_OE werden weiterhin aktiv gehalten, damit EEROS-Daten aus EEROS in IOP_DATA-BUS geschaltet werden können. Es wird ein IOP DTACK-Signal generiert. Es folgt Zustand 14.
- - Je nachdem, ob SIO_CHP_BSY oder SIO_CHN_BSY aktiv ist, wird entweder der Chipvektorschalter oder der Kanalvektorschalter ausgewählt, wobei die Vektorgenerierung auf Chipebene Priorität besitzt.
- - Wenn kein Vektor geschaltet ist (d.h. wenn weder SIO_CHP_BSY noch SIO_CHN_BSY) aktiv ist, wird am Datenbus ein hardwaremäßig codierter leerer Vektor übergeben. Die Vektorauswahlangabe wird zurückgesetzt. Es folgt Zustand 1.
- - Wenn das EEROS-Schreibschutzbit (WP) im ICR-Register nicht aktiv ist, wird ein EEROS-Schreibschutzfehler festgestellt, das WPE-Bit in IHEISR gesetzt und kein PIO_DTACK generiert. Es folgt Zustand 14.
- - Wenn das EEROS-Schreibschutzbit (WP) im ICR-Register aktiv ist, handelt es sich um einen gültigen EEROS-Schreibzyklus. Die Signale SIO_EEROS_CE (EEROS-Chipauswahl) und SIO_EEROS_WE (EEROS-Schreibsignal) werden aktiviert, und PIO_DTACK wird generiert. Es folgt Zustand 25.
- - SIO_EEROS CE und SIO_EEROS_WE werden weiterhin aktiv gehalten, um Zeit für Aufbau und Halten der EEROS-Schreiboperation bereitzustellen. Es folgt Zustand 26.
- - SIO_EEROS_CE und SIO_EEROS_WE werden weiterhin aktiv gehalten, um Zeit für Aufbau und Halten der EEROS-Schreiboperation bereitzustellen. Es folgt Zustand 27.
- - SIO_EEROS_CE und SIO_EEROS_WE werden weiterhin aktiv gehalten, um Zeit für Aufbau und Halten der EEROS-Schreiboperation bereitzustellen. Es folgt Zustand 28.
- - SIO_EEROS_CE und SIO_EEROS_WE werden weiterhin aktiv gehalten, um Zeit für Aufbau und Halten der EEROS-Schreiboperation bereitzustellen. Es folgt Zustand 29.
- - SIO_EEROS_CE und SIO_EEROS_WE werden deaktiviert. Es folgt Zustand 30.
- - Es werden IOP_DTACK-Signale für IOP generiert; dann wird Zustand 14 eingenommen.
- - Wenn die IOP-Adreßparität nicht korrekt ist, wird das APE-Bit (Adreßparitätsfehler) in IHEISR gesetzt und kein PIO_DTACK generiert; es folgt Zustand 14.
- - Wenn IOP_RD/WR (Lese-/Schreibsignal im Prozessorbus) besagt, daß es sich um einen Lesezyklus handelt, und das Speicherabbild des Vektorhalteregister decodiert wird, folgt Zustand 23.
- - Wenn das Signal IOP_RD/WR besagt, daß es sich um einen Lesezyklus handelt, und as PIO-Speicherabbild decodiert wird und auf einen Zugriff auf TSR, DMAR, FIFOR, ICR- Register, IHEISR-Register oder HCR-Register hinweist, wird die Datenbustreiberfreigabe gesetzt und der obere oder untere PIO-Datenmultiplexer ausgewählt.
- - Wenn die Adresse für den letzten Lesezykluszugriff im ICM-Adreßschalter mit der aktuellen IOP-Adresse übereinstimmt und A1 = 1 ist, sind die Daten im PIO-Datenschalter gültig und können direkt auf den IOP-Bus geschaltet werden. Es folgt Zustand 5.
- - Wenn für die aktuelle IOP-Adresse A1 = 0 ist, muß auf die PIO-Partition zugegriffen werden. Das ICM_PIO_RD-Signal wird an die PIO-Maschine übergeben. Es folgt Zustand 4.
- - Wenn A1 = 1 ist und der letzte Zugriff ein Schreibzugriff war, liegt ein Sequenzfehler bei der 32-Bit-Schreibaktion im Rahmen einer programmierten E/A-Operation vor. In diesem Fall wird das WSE-Statusbit im IHEISR-Register gesetzt, die Information aus dem ersten Zyklus auf 'keine Vorgeschichte' gesetzt und kein PIO DTACK generiert. Es folgt Zustand 14.
- - Wenn das IOP_RD/WR-Signal besagt, daß es sich um einen Lesezyklus handelt, und die L1-Adressen decodiert werden, wird L1-CHP_SEL aktiviert. Es folgt Zustand 14.
- - Wenn das IOP_RD/WR-Signal besagt, daß es sich um einen Lesezyklus handelt, und das EEROS-Speicherabbild decodiert wird, wird Zustand 16 eingenommen.
- - Wenn das IOP_RD/WR-Signal besagt, daß es sich um einen Schreibzyklus handelt, und die speicherabgebildeten PIO- Adressen decodiert werden, wird versucht, auf TSR, DMAC, FIFOS, ICR, IHEISR oder HCR zuzugreifen.
- - Wenn A1 = 0 ist und der letzte Zugriff ein PIO-Schreibzyklus mit Adreßbit 1 (A1) = 0 ist, ist der aktuelle Zyklus ein Schreibsequenzfehler im Rahmen einer programmierten E/A-Operation. Das WSE-Bit in IHEISR wird gesetzt, aber es wird kein PIO_DTACK ausgegeben. Es folgt Zustand 14.
- - Wenn A1 = 0 ist und der letzte Zugriff kein Schreibzyklus mit A1 = 0 war, handelt es sich um einen gültigen PIO- Schreibzyklus für die ersten 16 Bits. Es folgt Zustand 9.
- - Wenn A1 = 1 ist und der letzte Zugriff ein Schreibzyklus mit A1 = 0 war und die vorige Adresse mit der aktuellen identisch ist, handelt es sich um einen gültigen PIO- Lesezyklus für die zweiten 16 Bits. Es folgt Zustand 9.
- - Wenn A1 = 1 ist, aber der vorige Zyklus kein Schreibzyklus mit A1 = 0 war oder die aktuelle Adresse nicht mit der vorigen identisch ist, handelt es sich um einen Schreibfehler im Rahmen einer programmierten E/A-Operation. Das PWE-Bit in IHEISR wird gesetzt, es wird aber kein PIO_DTACK generiert. Es folgt Zustand 14.
- - Wenn IOP_RD/WR besagt, daß es sich um einen Schreibzyklus handelt, und die L1-Chipadressen decodiert werden, wird L1_CHP_SEL aktiviert und Zustand 13 eingenommen.
- - Wenn IOP_RD/WR besagt, daß es sich um einen Schreibzyklus handelt, und das EEROS-Speicherabbild decodiert wird, wird Zustand 24 eingenommen.
- - Wenn die PIO-, EEROS-, L1-Chip- oder VHR-Registeradresse nicht decodiert wurde, wurde auf eine für programmierte E/A-Operationen ungültige Adresse im IDLC-Speicherabbild zugegriffen. Das PIA-Bit im IHEISR-Register wird gesetzt, es wird aber kein PIO_DTACK generiert. Es folgt Zustand 14.
- Bei SIO_RESET werden alle Auswahlen, Bestätigungen und Freigaben deaktiviert und es wird Zustand 1 eingenommen.
- - Es wird auf eine Leseanforderung ICM_PIO_RD oder auf eine Schreibanforderung ICM_PIO_WR von ICM gewartet.
- - Wenn keine Anforderung aktiv ist, wird Zustand 1 beibehalten.
- - Wenn entweder ICM_PIO_RD oder ICM_PIO_WR aktiv wird, wird mit der Decodierung der IOP-Adresse mit Hilfe der PIO-Adreßdecodierungslogik begonnen und Zustand 2 eingenommen.
- - Wenn vom PIO-Adreßdecoder keine Adresse der Partitionen TSR, DMACR, FIFO oder RSM oder der Register IHEISR, ICR oder HCR decodiert wurde, dann war die decodierte Adresse ungültig. Es folgt Zustand 5.
- - Wenn eine gültige Adresse für eine Partition decodiert wurde, wird die Auswahlleitung zu der betreffenden Partition (SIO_DMACR_RD, SIO_DMACR_WR, SIO_FIFO_RD, SIO_FIFO _-WR, SIO_TSR_RD, SIO_TSR_WR, SIO_RSM_RD oder SIO_RSM_WR) aktiviert, je nachdem, welche Adresse decodiert wurde. Außerdem wird das IOP_RD/WR-Signal aktiviert. Es folgt Zustand 3.
- - Wenn eine gültige Adresse für ein Register decodiert wurde und das IOP_RD/WR-Signal besagt, daß es sich um einen Schreibzyklus handelt, wird die Auswahlleitung zum entsprechenden Register aktiviert, um Datenimpulse von SIO_DATA_BUS in das Register zu senden, und PIO_WR_ACK wird generiert; es folgt Zustand 4.
- - Es wird gewartet, bis das betreffende Partitionsbestätigungssignal (DMACR_SIO_ACK, FIFO_SIO_ACK, TSR_SIO_ACK oder RSM_SIO_ACK) oder das ICM_PIO_RD-Signal inaktiv geworden ist.
- - Wenn kein Bestätigungssignal oder ICM_PIO RD-signal aktiv bleibt, wird Zustand 3 beibehalten.
- - Wenn das ICM_PIO_RD-Signal inaktiv wird, weist dies darauf hin, daß der IOP-Bus-Zyklus vorzeitig endet. Das PPE- Bit (Leseparitätsfehler bei programmierter E/A-Operation) in IHEISR wird gesetzt. Es folgt Zutand 1.
- - Wenn die entsprechende Partitionsbestätigung eintrifft, wird das PIO_RD_ACK-Signal generiert. Es folgt Zustand 4.
- - Es wird gewartet, bis die ICM_PIO_RD- oder ICM_PIO_WR- Anforderung abklingt.
- - Wenn ICM_PIO_RD oder ICM_PIO_WR aktiv ist, wird dieser Zustand beibehalten. Wenn beide inaktiv sind, wird Zustand 1 eingenommen.
- - Wenn eine ungültige Adresse im PIO-Adreßbereich decodiert wurde, wird das PIA-Bit (ungültige Adresse bei programmierter E/A-Operation) im IHEISR-Register gesetzt und die ICM-Anforderung nicht beantwortet. Dies führt zu einer zeitüberschreitung der Datenbestätigung IOP_DTACK in der IOP. Es wird gewartet, bis entweder ICM_PIO_RD oder ICM _-PIO_WR inaktiv wird. Es folgt Zustand 1.
- Alle übrigen Zustände sind ungültig oder werden nicht benutzt. Wird ein solcher Zustand eingenommen, so wird das ESD-Bit (Fehlerzustand) in IHEISR gesetzt und Zustand 1 eingenommen.
- DMARQ (die DMA-Anforderungswarteschlange) besteht aus einer Reihe von "Anforderungs"-Registern und Auswahlschaltungen für den Transfer von Datentransferanforderungen von den FIFO- Managern (RFM, TFM) an die DMAC-Partition (DMA-Steuerpartition), und für die Rückmeldung von "Fertig"-Signalen (Rücksetzungssignalen) von DMAC an die anfordernden Partitionen. Anforderungen von RFM und TFM werden in DMARQ-Registerschaltern synchron empfangen (d.h. während der Zeitschlitze, in denen die Übergabe durch RFM bzw. TFM erfolgt), statisch an DMAC übergeben und zurückgesetzt, wenn DMAC den angeforderten Transfer ausgeführt hat. DMAC verarbeitet DMARQ-Anforderungen einzeln in einer vorgegebenen Reihenfolge ihrer Priorität verarbeitet, wobei Hyperchannelanforderungen den Vorzug vor Elementarkanalanforderungen erhalten (wegen der höheren Geschwindigkeit von Hyperchannels).
- Der logische Aufbau von DMARQ ist in Fig. 36 dargestellt. Die Anforderungsregister sind in drei separate Registerwarteschlangen 330, 331 und 332 aufgeteilt. Die Eingangsauswahlschaltung 333 leitet Aktivierungs- und Rücksetzungs-Eingangssignale an die einzelnen Warteschlangen und an ausgewählte Anforderungsbitpositionen in den Warteschlangen weiter. Aktivierungs- Eingangssignale kommen von TFM und RFM, Rücksetzungs-Eingangssignale von DMAC.
- Die Auswahlschaltung 334 übergibt Anforderungsbit-Statusangaben aus den Warteschlangen im Zeitmultiplexbetrieb an RFM und TFM; d.h., die Übergabe erfolgt synchron mit den Elementarkanal- Zeitfenstern für die Anforderungen in der Warteschlange. Wenn in einem Zeitschlitz DMARQ_RFM_REQ-Signale aktiv sind, weiß RFM, daß eine Anforderung für eine DMA-Datentransferaktion auf der Empfangsseite des dem Zeitschlitz zugeteilten Kanals aussteht. Entsprechend erfährt TFM durch DMARQ_TFM_REQ, daß Anforderungen für Datentransfers auf der Empfangsseite des dem Zeitschlitz zugeteilten Kanals ausstehen.
- Ausgangssignale aller Anforderungsbitregister in den Warteschlangen 330 bis 332 werden an 330a bis 332a parallel an DMAC übergeben. Ausgangssignale für ausstehende Anforderungen sind aktiv, andere Ausgangssignale sind inaktiv. Die Auswahlsteuerung 334 überträgt Steuereingangssignale an die Eingangs- und Ausgangsauswahlschaltungen 333 und 334. Die Steuereingangssignale an die Auswahlschaltung 333 leitet Aktivierungs- und Rücksetzungs-Eingangssignale zu den Eingängen der entsprechenden Warteschlangenelemente, und die Steuereingangssignale an die Auswahlschaltung 334 leitet Ausgangssignale der betreffenden Warteschlangenelemente an die Zeitschlitzanschlüsse 334R und 334T, wo sie synchron an RFM und TFM übergeben werden (als DMARQ_RFM_REQ- und DMARQ TFM REQ-Signale).
- DMAC vergibt Prioritäten für die Verarbeitung von Anforderungen an 330a bis 332a, wobei H1-Hyperchannelanforderungen an 330a eine höhere Priorität erhalten als H0-Hyperchannel- und B/D- Kanalanforderungen an 331a und 332a, und H0-Hyperchannelanforderungen an 331a eine höhere Priorität als B/D-Kanalanforderungen an 332a. Dies ist notwendig, weil Hyperchannels im Vergleich zu den Elementarkanälen mit einer höheren Geschwindigkeit arbeiten, wobei wiederum die H1-Hyperchannels die höchste Geschwindigkeit aufweisen. In jeder Kanal- und Hyperchannelposition in DMARQ gibt es separate Positionen für die Anforderung von Empfangsdatentransfers und für die Anforderung von Sendedatentransfers (Anforderungen, die durch Signale von RFM bzw. TFM gestellt werden), wobei den Empfangsanforderungen (willkürlich) eine höhere Priorität zugeschrieben wird als den Sendeanforderungen.
- Jede Warteschlange enthält eine Reihe von (Bit-)Positionen für Anforderungen, wobei die Anzahl dieser Positionen von der Anzahl der Kanäle abhängt, die der Warteschlange zugeordnet werden können. Da pro BTDM-Zeitrahmen in den 32 verfügbaren Zeitschlitztakten nur ein H1-Hyperchannel unterstützt werden kann (siehe Beschreibung von Hyperchannels in Abschnitt 15), enthält die zugehörige Warteschlange 330 nur 2 Bitpositionen (eine für Empfangsdatenanforderungen und eine für Sendedatenanforderungen). Wenn kein H1-Hyperchannel aktiv ist, können 5 H0-Hyperchannels (H01 bis H05) unterstützt werden; Warteschlange 331 enthält deshalb 10 Bitpositionen (5 für Empfangsdatenanforderungen von den einzelnen H0-Hyperchannels und 5 für Sendedatenanforderungen von den gleichen H0-Hyperchannels). Elementare Zeitschlitzpositionen an BTDM schließlich können einzelnen B/D- Kanälen zugeordnet werden; Warteschlange 332 enthält deshalb 64 Bitpositionen (32 für Empfangsdatenanforderungen für solche Kanäle und 32 für Sendedatenanforderungen in den gleichen Kanälen).
- Die parallelen Ausgänge an 330a, 331a und 332a besitzen Leitungen von allen entsprechenden Warteschlangenbitpositionen, über die der betreffende Anforderungsstatus signalisiert werden kann. 330a enthält also 2 Leitungen (eine für den Empfang und eine für das Senden), 331a enthält 10 Leitungen (5 für den Empfang und 5 für das Senden), und 332 enthält 64 Leitungen (32 für den Empfang und 32 für das Senden). Ein aktiver Bitpegel auf einer Leitung signalisiert, daß an der betreffenden Warteschlangenposition eine Anforderung aktiv aussteht.
- Da Hyperchannels in mehreren Zeitschlitzen jedes BTDM-Rahmens von IDLC bedient werden, während B-Kanäle nur in einem Zeitschlitz pro Rahmen bedient werden, ist klar, daß Hyperchannel- Anforderungen für einen DMA-Datentransfer schneller von DMAC verarbeitet werden müssen als Anforderungen von B-Kanälen, wenn die zugeteilte Bandbreite effektiv ausgenutzt werden soll. Da den H1-Hyperchannels darüber hinaus eine größere Bandbreite zugeordnet ist als den H0-Hyperchannels, müssen diese wiederum schneller von DMA bedient werden als H0- oder B/D-Kanalanforderungen.
- Die Auswahlsteuerung 335 empfängt Eingangssignale von RFM und TFM, um Anforderungen für Empfangs- und Sendeaktionen in den DMARQ-Registern zu setzen (RFM_DMARQ_SET bzw. TFM_DMARQ_SET), und separate Eingangssignale von DMAC, um diese Anforderungen nach ihrer Verarbeitung zurückzusetzen (DMAC_DMARQ_RCV_RESET bzw. DMAC_DMARQ_XMIT_RESET). Diese Eingangssignale werden von anderen Signalen begleitet, die für die Ansteuerung der Warteschlangenbitpositionen erforderlich sind.
- Die Aktivierungs-Eingangssignale von RFM und TFM werden von zusätzlichen Steuereingangssignalen von RSM begleitet, die effektiv eine der DMARQ-Warteschlangen und eine bestimmte Position innerhalb dieser Warteschlange angeben. Rücksetzungs-Eingangssignale von DMAC werden von ähnlichen Funktionen zur Bezeichnung einer Warteschlange und der speziellen Position innerhalb dieser Warteschlangen begleitet.
- Die zusätzlichen Signale, die die Anforderungsaktivierungs- Eingangssignale von RFM und TFM begleiten und effektiv eine der Warteschlangen 330 bis 332 angeben, sind RSM_DMARQ_H1 und RSM_DMARQ_H0. Wenn das H1-Signal aktiv ist, wird die Warteschlange 330 angesteuert, wenn das H0-Signal aktiv ist, die Warteschlange 331. Ist weder das H1-Signal noch das H0-Signal aktiv, wird Warteschlange 332 angesteuert.
- Die zusätzlichen Signale, die auf eine Position innerhalb der angegebenen Warteschlangen zeigen, befinden sich in der Zeitschlitzangabe RSM_TSI, die von der Auswahlsteuerung 335 kommt. RSM_TSI zeigt tatsächlich auf ein Paar Anforderungspositionen für Empfangsdatenanforderungen und für Sendedatenanforderungen. Die anzusteuernde Position innerhalb dieses Paares wird durch die Angabe der Anforderungsquelle bezeichnet (RFM_DMARQ_SET oder TFM DMARQ_SET).
- Bei Rücksetzungsanforderungen von DMAC bezeichnet ein zusätzliches Eingangssignal von DMAC, DMAC_H-B_SEL, die Auswahl eines Zeigereingangs von DMAC (DMAC_H_PTR oder DMAC_B_PTR), der seinerseits auf eine der Warteschlangen 330 bis 332 und ein Registerpositionspaar (für Empfangsdatenanforderungen und für Sendedatenanforderungen) in der Warteschlange verweist. Die Quelle der Rücksetzungsanforderung, DMAC_DMARQ_RCV_RESET oder DMAC_DMARQ_XMIT_RESET, gibt an, welche Position im so bezeichneten Paar zurückgesetzt werden soll.
- Bei Hyperchannels, die jeweils mehrere BTDM-Elementarzeitschlitzpositionen umfassen (siehe Beschreibung der Hyperchannels weiter unten), wird die Zeitschlitzangabe RSM_TSI durch RSM von einem auf den aktuellen Zeitschlitzzähler bezogenen Wert in einen auf die Zeitposition des Referenzzeitschlitzes (des zuerst erscheinenden Zeitschutzes) der konstituierenden Zeitschutze eines Hyperchannels bezogenen Wert umgewandelt. So werden alle Aktionen für den betreffenden Hyperchannel (in DMARQ, beim Zeitwechsel für TSR und bei Transfers von bzw. zu FIFOR) an Positionen für die betreffenden Referenzzeitschlitze gerichtet. Die Umwandlung der RSM-Zeitschlitzangabe erfolgt anhand der Information im HCR-Register (diese wird bei der Erstellung des Hyperchannel-Speicherabbilds von IOP/SIO programmiert; siehe Beschreibung von Hyperchannels weiter unten).
- Wenn DMAC dazu bereit ist, werden Anforderungen in den Warteschlangen 330 bis 332 nacheinander in der Reihenfolge ihrer Priorität (absteigend) verarbeitet: zuerst die H1-Empfangsanforderungen, dann H1 - Sende an forderungen, H0-Empfangsanforderungen, H0-Sendeanforderungen, B-/Normalkanal-Empfangsanforderungen und schließlich B-/Normalkanal-Sendeanforderungen. Die DMAC-Logik mit finiten Zuständen speichert den Ursprung jeder für die Verarbeitung ausgewählten Anforderung, und wenn sie bereit ist, die Anforderung in DMARQ zurückzusetzen, wird diese Information zur Ermittlung des Status der entsprechenden Rücksetzungsauswahlsignale verwendet (Auswahlschaltung DMAC_ HB_SEL, aktiver der beiden Zeiter DMAC_H_PTR oder DMAC_B_PTR und aktives der beiden Empfangs-/Sende-Rücksetzungssignale DMAC_DMARQ_RCV/XMIT_RESET). DMAC setzt die entsprechende Anforderung also zurück, indem sie Eingangssignale an der Auswahlsteuerung 3353 aktiviert: (1) DMAC_H-B_SEL zur Auswahl einer der drei Warteschlangen 330 bis 332; (2) entweder DMAC_B_PTR oder DMAC_H_PTR zur Auswahl eines Positionspaares in der ausgewählten Warteschlange; und (3) entweder DMAC_DMARQ_RCV_RESET ODER DMAC_DMARQ_XMIT_RESET zur Kennzeichnung der zurückzusetzenden Position innerhalb des Paares.
- Während des Verarbeitsintervalls jedes Zeitschlitzes in einem Hyperchannel wandelt RSM die Zeitschlitzangabe RSM_TSI in einen Wert für den betreffenden Hyperchannel um und aktiviert das entsprechende RSM_DMARQ_H1- oder RSM_DMARQ_H0-Signal. Im Zeitmultiplexbetrieb und anhand der momenten Werte von RSM_TSI, RSM_DMARQ_H1 und RSM_DMARQ_H0 steuert die Auswahlsteuerung 335 die Ausgangsauswahlschaltung 334 so, daß diese an ihren Ausgängen 334R und 334T Signale übergibt, die den Status der betreffenden Bitpositionen in den zugehörigen Warteschlangen angeben; diese Ausgangssisgnale entsprechen dem Status der Empfangs-DMA- und der Sende-DMA-Anforderungsverarbeitung in dem Kanal, der gerade synchron verarbeitet wird (demjenigen, der TSI entspricht).
- Die Ausgangssignale an 334R und 334T werden an RFM bzw. TFM geleitet. Wenn 334R auf 'Aktivieren' gesetzt ist, während an RFM ein zugehöriges Anforderungsaktivierungs-Ausgangssignal anliegt, deaktiviert RFM also sein Ausgangssignal, behält aber den internen Status bei, um festzuhalten, daß eine Anforderung für den betreffenden Kanal ansteht. Wenn 334R auf "Rücksetzen' gesetzt ist, während das interne RFM-Signal eine ausstehende Anforderung signalisiert (und dadurch RFM mitteilt, daß die Anforderung von DMAC verarbeitet wurde), setzt RFM sein internes Signal zurück und nimmt die Verarbeitung der Empfangsdaten für FIFOR wieder auf. Entsprechende Aktionen führt TFM für die Signale an 334T aus.
- Bei einer Systemrücksetzung werden alle Register in den Warteschlangen 330 bis 332 zurückgesetzt. Bei der nachfolgenden Verarbeitung von Empfangsdaten aktiviert RFM ein Anforderungsaktivierungssignal RFM_DMARQ_SET für DMARQ, wenn er ein viertes Empfangsdatenbyte in FIFOR, in die Pufferbereiche für den gerade verarbeiteten Kanal (RDCR2-Bereich des betreffenden Kanals), lädt. Dies veranlaßt DMARQ, eine entsprechende Bitposition in einer ihrer Warteschlangen zu aktivieren und so ein Aktivierungssignal auf der entsprechenden Leitung in 330a, 331a oder 332a zu übergeben, das darauf hinweist, daß eine entsprechende Anforderung an DMAC (für einen Empfangsdatentransfer) aussteht. Wenn DMAC die Verarbeitung der Anforderung abgeschlossen hat (durch Beendigung des Datentransfers vom entsprechenden FIFOR- Puffer in den IOP-Speicher), sendet sie die beschriebenen Eingangssignale an DMARQ, die zur Rücksetzung der entsprechenden Warteschlangenposition dienen und RFM während des betreffenden Zeitschlitzes an 334R effektiv mitteilen, daß der DMA-Transfer abgeschlossen ist.
- Wenn TFM einen Pufferbereich in FIFOR, der dem gerade verarbeiteten Kanal zugeteilt ist (TDCR2-Bereich), leert, aktiviert er in entsprechender Weise eine Aktivierungsanforderung TFM_ DMARQ_SET, die bewirkt, daß die Anforderung für den betreffenden Kanal an DMAC übertragen wird. Wenn die DMA-Verarbeitung abgeschlossen und der betreffende FIFOR-Puffer mit Daten aus dem IOP-Speicher geladen ist, wird dieses Ereignis an 334T dem TFM gemeldet.
- Die DMA RAM-Einheit (DMAR) mit Zugriffskontrollen (Fig. 37) ist für SIO und DMAC zugänglich und enthält Steuerinformationen für DMAC. DMAR-Speicherbereichszuweisungen für die einzelnen Kanäle sind in Fig. 8 allgemein dargestellt. Jedem Elementarkanalzeitschlitz werden zwei Wortbereiche zur Speicherung der Parameter RDCR3, RDCR4, die die Verarbeitung der Empfangsdaten definieren, und zwei Wortbereiche zur Speicherung der Parameter TDCR3, TDCR4, die die Verarbeitung der Sendedaten definieren, zugeteilt. Die Abkürzungen RDCR und TDCR bezeichnen das Empfangs- DMA-Konfigurationsregister bzw. das Sende-DMA-Konfigurationsregister. Diese Steuerparameter sind in Fig. 39 bis Fig. 42 dargestellt und werden weiter unten im Zusammenhang mit diesen Zeichnungen näher erläutert.
- Wie in Fig. 37 zu sehen ist, besteht die DMAR-Einheit aus einer RAM-Matrix 350 mit 128 x 33 Elementen, die Daten- und Adreßeingangssignale von den Auswahlschaltungen 351 empfängt und an 353 Datenausgangssignale an Bus 353 übergibt. Die Eingangsauswahlschaltung 351 empfängt Eingangssignale (Adressen und Daten) von SIO (SIO_ADDRESS_BUS und SIO_DATA_BUS) und von DMAC (DMAC_CHN _-NBR und DMAC_DMAR_BUS). Datenausgangssignale von der Matrix (DMAR_DATA) werden zusammen mit Bestätigungs-Ausgangssignalen über Bus 353 an DMAC und SIO übergeben. Diese Bestätigungsausgangssignale werden weiter unten beschrieben und bezeichnen effektiv die Partition, die die Daten empfangen soll.
- Das Eingangssignal DMAC_CHN_NBR an der Auswahlschaltung 351 bezeichnet eine partielle Adresse eines zugehörigen Kanalbereichs in der Matrix 350. Es wird von der DMAC-Logik mit finiten Zuständen entweder auf die Zeitschlitznummer eines B/D-Kanals (identisch mit dem Wert von DMAC B PTR) oder auf die Referenzzeitschlitznummer eines Hyperchannels (aktueller Wert von DMAC_H_PTR) gesetzt, je nachdem, was für eine DMAC-Anforderung gerade verarbeitet wird (siehe Beschreibung der Anforderungsschalter 355 weiter unten). Da jedem Kanal vier Wortbereiche in der Matrix 350 zugeteilt sind (die Bereiche, die die zugehörigen Parameter RDCR3, RDCR4, TDCR3 und TDCR4 enthalten), reicht die Kanalnummerfunktion allein nicht aus, um die einzelnen Wortbereiche zu adressieren.
- Operationen der Matrix 350 werden von der Logik mit finiten Zuständen 354 als Reaktion auf Lese- und Schreibanforderungssignale, die in den DMA-Anforderungsschaltern (DRL) 355 empfangen werden, gesteuert. Eingangssignale der Schalter 355 kommen von SIO (SIO_DMAR_RD, SIO_DMAR_WR) und DMAC (DMAC_DMAR_WR1, DMAC_DMAR_RD2 und DMAC_DMAR_WR2). Die Maschine mit finiten Zuständen überwacht die geschalteten Anforderungen, löst Konflikte zwischen gleichzeitig existierenden Anforderungen so, daß die Anforderungen nacheinander ausgewählt werden, und liefert an 356 Steuerausgangssignale an die Matrix 350, an 357 Bestätigungsausgangssignale an SIO und an 358 und 359 Bestätigungsausangssignale an DMAC. Die Steuersignale an 356 enthalten zusätzliche Adreßbits, die zur Vervollständigung der durch DMAC_CHN_NBR bezeichneten partiellen Adresse erforderlich sind.
- DMAC liefert den Schaltern 355 ein qualifizierendes Eingangssignal DMAC_RCV_REQ, das es der Logik 354 ermöglicht, RD2- Anforderungen (DMAC_DMAR_RD2) für Empfangskanalfunktionen von WR2-Anforderungen (DMAC_DMAR_WR2) für Sendekanalfunktionen zu unterscheiden (bei ersteren muß RDCR3, RDCR4 abgerufen werden, bei letzteren TDCR3, TDCR4). Das qualifizierende Eingangssignal wird von der Logik mit finiten Zuständen zum Generieren der entsprechenden partiellen Adresse benutzt.
- Die Logik mit finiten Zuständen sendet ferner an 360 Bestätigungs- und "Fertig"-Signale an DMAC (DAMR_DMAC_ACK0, -ACK1, _DONE), damit DMAC feststellen kann, wann bei Doppelwort- Schreiboperationen (WR2) oder Doppelwort-Leseoperationen (RD2) für aufeinanderfolgende Positionen in der Matrix mit der zweiten Operation im Rahmen eines Paares aufeinanderfolgender Operationen begonnen werden soll (alle DMAC-Lesezugriffe sind Doppelwort-Leseoperationen). Die Logik führt auch eine Prüfung der Ausgangsparität durch und sendet an Ausgang 361 Paritätsfehlersignale (DMAR_PARITY_ERROR) an INT.
- Die Maschine mit finiten Zuständen durchläuft bei jeder Matrixzugriffsoperation drei Zustände. Ein erster Zustand übergibt an 362 Auswahlsteuerungssignale an die Auswahlschaltung 351, durch die diese veranlaßt wird, entweder DMAC- oder SIO-Adreß-/Dateneingangssignale auszuwählen (zur Vereinfachung wird der von DMAC kommende "Kanalnummer"-Eingang der Auswahlschaltung 351, DMAC_CHN_NBR, als Adreßeingang bezeichnet; obwohl jeder solche Eingang einen Offset, der von der Auswahlschaltung 351 als Antwort auf die an 362 empfangenen Auswahleingangssignale breitgestellt wird, benötigt, um den richtigen der vier Wortbereiche zu identifizieren, in den ein Wert für den durch die Nummer bezeichneten Kanal geschrieben oder aus dem ein Wert für diesen Kanal ausgelesen werden soll).
- Bei einer Rücksetzung wird Zustand 0 eingenommen.
- - In diesem Zustand wird DMAC- und SIO-Anforderungen, die gleichzeitig an der Auswahlschaltung 351 ankommen, eine Priorität zugewiesen, wobei die DMAC-Anforderung die höhere Priorität erhält.
- - Im Gegensatz zu den Schreibanforderungen, in denen entweder ein Wort oder zwei Wörter angefordert werden können, sind alle Leseanforderungen von DMAC Doppelwort-Leseanforderungen (DMAC_DMAR_RD2). Bei solchen Leseanforderungen werden Matrixsteuersignale von der Maschine mit finiten Zuständen an die Matrix aktiviert (an 356), die Matrixauswahl-, Lese- und Taktfreigabefunktionen bezeichnen. Die Auswahlschaltung 351 übergibt die zu lesende Adresse (DMAC_CHN_NBR mit Offset) an die Adreßleitungen der Matrix. Es folgt Zustand 6.
- - Bei einer Einzelwort-Schreibanforderung von DMAC (DMAC _-DMAR_WR1) werden Matrixsteuersignale für Matrixauswahl, Schreiben und Taktaktivierung aktiviert. Die DMAC-Adresse und die Daten werden von der Auswahlschaltung 351 an die Matrix übergeben. Es folgt Zustand 7.
- - Bei einer Doppelwort-Schreibanforderung von DMAC (DMAC _-DMAR_WR2) werden Matrixsteuersignale für Matrixauswahl, Schreiben und Taktaktivierung aktiviert. Die DMAC-Adresse und die Daten werden wie bei einer Einzelwort-Schreibanforderung an die Matrix übergeben. Es folgt Zustand 8.
- - Bei einer Leseanforderung von SIO (immer nur 1 Wort) werden Matrixsteuersignale für das Lesen aktiviert, und die Auswahlschaltung 351 übergibt die SIO-Adresse (SIO_ADDRESS _-BUS) an den Adreßeingang der Matrix. Es folgt Zustand 3.
- - Bei einer Schreibanforderung von SIO (immer nur 1 Wort) werden Matrixsteuersignale für das Schreiben aktiviert, und die Auswahlschaltung 351 übergibt die SIO-Adreßeingangssignal und die Dateneingangssignale an die betreffenden Eingänge der Matrix. Es folgt Zustand 9.
- - Bei einem DMAC-Lesezugriff (immer 2 Wörter) wird in diesem Zustand der erste Teil der Anforderung bestätigt und die Matrix auf das Abrufen des zweiten Wortes vorbereitet. Als erste Bestätigung wird DMARQ_DMAC_ACK0 ausgegeben (dies signalisiert, daß Bus 353 gültige Daten für DMAC enthält), und die Parität der Ausgangsdaten wird geprüft. Wird ein Paritätsfehler festgestellt, wird das Fehlersignal (DMAR _-PARITY_ERROR) an DMAC aktiviert. Der von der Auswahlschaltung 351 auszuwählende Adreßoffset wird so gesetzt, daß er auf die nächste zu lesende Position zeigt. Die im vorausgehenden Zustand (Zustand 6) aktivierten Steuereingangssignale für das Lesen und die Matrixauswahl bleiben aktiv, und das Matrixtakt-Aktivierungssignal wird neu aktiviert. Es folgt Zustand 5.
- - DMAR_DMAC_ACKO wird an DMAC gesendet. Der DMAC-Adreßoffset wird so gesetzt, daß er auf die nächste Position zeigt, in die geschrieben werden soll. Die im vorausgehenden Zustand (Zustand 8) aktivierten Steuereingangssignale für das Schreiben und die Matrixauswahl bleiben aktiv, und das Matrixtakt-Aktivierungssignal wird neu aktiviert. Es folgt Zustand 10.
- - Matrixsteuersignale für das Lesen werden aktiviert (der Matrixtaktgeber erhält einen Aktivierungsimpuls und wird dann wieder deaktiviert). Es folgt Zustand 13.
- - DMAR_DMAC_DONE und DAMR_DMAC_ACKL werden an DMAC gesendet. Die Matrixausgangsdaten werden einer Paritätsprüfung unterzogen. Wenn ein Paritätsfehler festgestellt wird, wird das Paritätsfehlersignal für DMAC aktiviert. Alle Matrixsteuersignale werden deaktiviert. Es folgt Zustand 0.
- - Der Matrixtaktgeber (der in Zustand 1 reaktiviert wurde) wird deaktiviert. Es folgt Zustand 4.
- - Der Matrixtaktgeber wird zuerst aktiviert, dann deaktiviert. Es folgt Zustand 1.
- - Der Matrixtaktgeber wird zuerst aktiviert, dann deaktiviert. Es folgt Zustand 11.
- - Der Matrixtaktgeber wird zuerst aktiviert, dann deaktiviert. Es folgt Zustand 2.
- - Der Matrixtaktgeber wird zuerst aktiviert, dann deaktiviert. Es folgt Zustand 13.
- ZUSTAND 10 (Zweites Wort einer DMAC-Doppelwort-Schreibanforderung schreiben)
- - Der Matrixtaktgeber wird zuerst aktiviert, dann deaktiviert. Es folgt Zustand 12.
- - Als Signal dafür, daß die DMAC-Daten in die Matrix geschrieben wurden, wird DMAR_DMAC_ACK0 ausgegeben. Die Matrixsteuersignale werden deaktiviert. Es folgt Zustand 0.
- - DMAR_DMAC_ACK1 wird an DMAC übergeben. Die Matrixsteuersignale werden deaktiviert. Es folgt Zustand 0.
- - DMAR_SIO_ACK wird ausgegeben. Die Matrixsteuersignale werden deaktiviert. Es folgt Zustand 0.
- Kanalbezogene Steuerinformationen, die vom FIFOR-Manager und DMAC benutzt werden, werden in den FIFOR-Registern RDCR1 und TDCR1 (Empfangs-DMA-Steuerregister und Sende-DMA-Steuerregister) für die einzelnen Elementarkanäle gespeichert (siehe Fig. 7). Kanalbezogene Steuerinformationen, die nur von DMAC benutzt werden, werden in DMAR in den Wortbereichen RDCR3, RDCR4, TDCR3 und TDCR4 für die einzelen Elementarkanäle gespeichert (siehe Fig. 8). Empfangs- und Sendedaten werden in den RDCR2- und TDCR2-Bereichen in FIFOR gespeichert. Die kanalbezogene Steuerinformation hat folgende Form und Verwendung.
- RDCR1 (siehe Fig. 22) besteht aus 8 reservierten bzw. nicht benutzten Bits (RES), einem RBC-Bit (Empfangsgrenzfehler), einem RPE-Bit (Empfangs-Paritätsfehler) und einem 22 Bit langen RDCA- Feld (aktuelle DMA-Adresse für den Empfang). Das RBC-Bit wird gesetzt, wenn DMAC bei der Verarbeitung einer RFM-Anforderung für eine FIFOR-Empfangsdatenwarteschlange auf eine Grenzfehlerbedingung stößt (RDCA vergleicht mit einer vorgegebenen Grenzadresse RDBA in RDCR4; siehe unten). RFM überwacht das RBC-Bit; wenn es aktiv ist, sendet er ein Signal an INT, das letztlich dazu führt, daß IOP über einen Interrupt über die Fehlerbedingung informiert wird.
- RDCR3 (Fig. 39) besteht aus 2 reservierten bzw. nicht benutzten Bits, einem 8-Bit-Feld RDLAH (letzte Empfangs-DMA-Adresse hoch), und einem 22-Bit-Feld RDFA (erste Empfangs-DMA-Adresse). Das RDLAH-Feld bezeichnet die oberen 8 Bits einer 20 Bit langen Adresse, die das Ende des IOP-Empfangspuffers für den betreffenden Kanal angibt. Das RDLAH-Feld wird zusammen mit dem RLAL- Feld in RDCR4 zum Ermitteln der gesamten Endadresse des Empfangspuffers für den betreffenden Kanal benutzt. RDFA bezeichnet die Anfangsadresse des Empfangspuffers für den betreffenden Kanal (der IOP-Speicher adressiert zwar 24 Bits, die Empfangspuffer beginnen und enden aber konventionsgemäß an einer 4- Byte-Grenze; die beiden unteren Bits haben deshalb immer den Wert 0, und die 22 Bits dieses Feldes bestimmen die Anfangsadresse vollständig).
- RDCR4 (Fig. 40) besteht aus einem 12-Bit-Feld RDLAL (letzte Empfangs-DMA-Adresse niedrig) und einem 20-Bit-Feld RDBA (Empfangs-DMA-Grenzadresse). RDLAL bezeichnet die unteren 12 Bits der Adresse am Ende des IOP-Empfangspuffers für den betreffenden Kanal. Dieses Feld wird mit dem oben genannten RDLAH-Feld zu eine kompletten Endadresse verkettet, die die letzte gültige Adresse im Empfangspuffer angibt. Wenn DMAC diese Adresse erreicht, ohne auf einen Grenzfehler zu stoßen, beginnt der Datentransfer an der nächsten Adresse nach der Anfangsadresse RDFA. RDBA bezeichnet die oberen 20 Bits einer Grenzadresse (in der Regel RDLA + 1) hinter der letzten Adresse. Wenn sich der Empfangspuffer mit Daten füllt, kann die IOP das Überschreiben der Daten am Anfang des Puffers verhindern, indem sie diese Adresse auf einen Wert setzt, der zu einem geschützten Teil des IOP-Speichers gehört. Wenn DMAC versuch, an diese Adresse zu schreiben, wird eine Grenzfehlerbedingung gesetzt, und alle weiteren Empfangsdaten werden ignoriert.
- In der Praxis ist faßt der Puffer mehr als den Inhalt eines Rahmens, und wenn die letzte Adresse erreicht wird, wird an die erste Adresse gesprungen und der Puffer von dort aus weiter aufgefüllt. Im Normalberieb müssen die Puffergröße, die zeitliche Abstimmung der IOP-Aktion als Antwort auf den Rahmenende- Interrupt und die Position der Grenzadresse für den ersten gültigen Puffereintrag, der noch nicht entnommen wurde, so gewählt werden, daß keine gültigen Daten im Puffer überschrieben werden.
- Wenn jedoch die von DMAC verwendete aktuelle Adresse mit der Grenzadresse identisch ist, entleert die IOP den Puffer offenbar nicht schnell genug, so daß gültige Daten überschrieben werden können. In diesem Fall wird deshalb die Empfangsverarbeitung im betreffenden Kanal angehalten, und über RDCR1 wird ein Grenzfehlersignal an RFM gesendet, das zur Folge hat, daß ein INT-Interrupt generiert wird, der die IOP über die abnormale Bedingung informiert.
- TDCR1 (Fig. 24) enthält 7 reservierte Bits (RES), ein ECD-Bit (Kettenende erkannt), ein EFD-Bit (Rahmenende erkannt), ein NDI-Bit (keine Daten), ein 2-Bit-Feld TBC (Sendepufferzähler), ein 2-Bit-Feld TOPQ (Obergrenze der Warteschlange), ein 2-Bit- Feld TPE (Sende-Paritätsfehler), und ein 16-Bit-Feld TDBC (Sende-DMA-Bytezähler). Die 1-Bit-Felder werden von DMAC gesetzt, wenn sie auf eine Kettenendebedingung, eine Rahmenendebedingung oder eine Keine-Daten-Bedingung stößt (Kettenende und Rahmenende werden durch DCB-Bits signalisiert, und die Keine- Daten-Bedingung wird aktiviert, wenn DMAC bei der Verarbeitung einer Sendedatenabruf-Anforderung auf eine Pufferendebedingung stößt).
- TDCR3 (Fig. 41) besteht aus 8 reservierten Bits und einem 24- Bit-Feld TDBA (Sende-DMA-Pufferadresse). Das TDBA-Feld gibt die nächste Sendedatenquelle an (dieses Feld hat zwar eine Länge von 24 Bit; praktisch wäre es aber wohl am besten, zu fordern, daß die zwei niedrigstwertigen Bits den Wert 0 haben, und die Sendedaten nur an einer Wortgrenze (4-Byte-Grenze) anzuordnen) Der Grund hierfür liegt darin, daß wenn die Daten an willkürlichen Bytegrenzen abgelegt werden können, das Ergebnis so aussehen könnte, daß z.B. ein einzelnes Byte in FIFOR eingelesen wird, das dann den IDLC-Sendepfad (FIFOR, TFM, TV, TL1) wesentlich schneller durchlaufen würde als 4 Bytes und so leichter einen Unterlauf verursachen könnte.
- TDCR4 (Fig. 42) schließlich besteht aus 10 reservierten bzw. nicht benutzten Bits, einem ECI-Bit (Kettenendezeichen), einem EFI-Bit (Rahmenendezeichen), und einem 20-Bit-Feld DCBA (DCB- Adresse; DCB steht für DMA-Steuerblock). ECI und/oder EFI werden aktiviert, wenn DMAC im aktuellen DCB auf ein Kettenende oder auf ein Rahmenende stößt. Ein gesetztes ECI-Bit signalisiert DMAC, daß keine weiteren DCBs abgerufen werden müssen, wenn der gerade benutzte IOP-Sendedatenpuffer leer ist. Ein aktives EFI-Bit bedeutet, daß TFM ein Rahmenendesignal senden muß, wenn der aktuelle Puffer leer ist, damit TL1, wenn das letzte Datenbyte gesendet ist, eine Rahmenendesequenz einfügt. DCBA ist die Adresse, an der der nächste DGB einer nicht leeren DCB-Kette abzurufen ist.
- Die DMA-Steuereinheit DMAC fungiert bei dem durch Steuerinformationen in DMAR gesteuerten Transfer von Empfangsdaten aus FIFOR in die IOP und von Sendedaten von der IOP in FIFOR als Schnittstelle zwischen DMAR und FIFOR. Solche Transfers werden als Antwort auf Anforderungen eingeleitet, die von RFM und TFM an die DMARQ-Partition gesendet und wie weiter oben beschrieben in individuelle Registerpositionen in DMARQ geschrieben werden. DMAC ist mit DMARQ verbunden, um geschaltete Anforderungen zu empfangen, sie in einer vorgegebenen Prioritätsreihenfolge zu verarbeiten und schließlich zu löschen (durch Rücksetzung der Eingangssignal an DMARQ, wie weiter oben beschrieben). Wenn DMAC eine Anforderung von DMARQ akzeptiert, arbeitet sie mit der MIO-Partition, DMAR und FIFOR zusammen, um einen DMA- Datentransfer zwischen IOP-Speicher und FIFOR durchzuführen. Bei diesem Prozeß fungiert MIO als Arbiter für den Zugang zum IOP-Bus, und führt dann, wenn er Zugang hat, den Datentransfer zwischen DMAC und IOP-Speicher durch. DMAC verarbeitet Transfers an FIFOR und DMAR separat. In den Datentransferoperationen übergibt MIO Signale von DMAC an den IOP-Bus (Lese-/Schreibund Adreßsteuersignale sowie Schreibddatensignale). Im hier beschriebenen Ausführungsbeispiel unterscheiden sich DMAC-Operationen für Empfangsdaten in mehrerlei Hinsicht von Operationen für Sendedaten. Empfangsdaten werden für einen einzelnen IOP- Speicherblock verarbeitet, wobei die IOP alle Operationen von DMAC strikt kontrolliert, indem sie programmgesteuert Steuerinformationen über SIO in DMAR und SIO lädt.
- Sendedaten werden von DMAC als Antwort auf in DMAR gespeicherte, "verkettbare" DCB-Befehlsmatrizen verarbeitet. Der erste DCB in einer Kette wird durch IOP (über SIO) in DMAR geladen, aber nachdem IDLC die durch diesen DCB definierte Datenübertragungsfunktion abgeschlossen hat und ein Kettungssignal im DCB erkennt, ruft DMAC einen weiteren DCB aus dem IOP-Speicher ab und sendet ihn an DMAR, und der Prozeß beginnt von vom. Jeder DCB kann auf einen anderen Block im IOP-Speicher zeigen, der die Quelle der Sendedaten darstellt (Daten in verstreuten Blökken können also von DMAC durch die Aktionen verketteter DCBs zusammengeholt werden), und Operationen für verkettete DCBs können ohne IOP-Interrupts (zur Signalisierung von Rahmenendepunkten im Sendeprozeß) durchgeführt werden.
- Empfangsdaten werden aus FIFOR (über DMAC und MIO) in einen einzelnen Block des IOP-Speicherbereichs, der von der IOP als Kreispuffer benutzt wird, geschrieben. Im Normalfall werden solche Daten an aufeinanderfolgende Pufferpositionen geladen, von der höchsten zur niedrigsten Adresse, und DMAC springt dann automatisch zur untersten Position und wiederholt die Abfolge. In diesem Fall empfängt IOP Rahmenende-Interrupts (von INT) und verwaltet die rechtzeitige Entnahme von Daten aus dem Puffer, so daß der Puffer mehrmals benutzt werden kann.
- Die Puffergröße wird so gewählt (von der IOP-Speicherverwaltungssoftware), daß der Puffer mehr als einen Empfangsdatenrahmen für jeden aktiven Kanal faßt. Nach jedem Rahmenende- Interrupt werden die im Puffer gespeicherten Daten entnommen (an eine andere Position in IOP oder im Hostspeicher verschoben), und die IOP reinitialisiert den betreffenden Kanal und die Steuerinformation in DMAR (über SIO). Bei einer solchen Reinitialisierung setzt IOP einen neuen Grenzadreßwert in DMAR, der Grenzen für den DMAC-Zugriff auf den IOP-Speicherbereich setzt. Diese Grenzadresse wird progressiv verschoben, bis sie vor dem Bereich liegt, der für die Aufnahme des nächsten Empfangsrahmens benötigt wird.
- Im Normalbetrieb erfolgt die Entnahme der Daten und die Verschiebung der Grenzadresse durch IOP schnell genug (bezogen auf die Daten-Ladeoperationen von DMAC/MIO), daß die Grenzadreßposition nicht überlaufen sollte. Eine wichtige Funktion von DMAC ist die Erkennung der Situation, in der die aktuelle IOP- Speicheradresse für Empfangsdaten mit der Grenzadresse zusammenfällt, und die Erzeugung einer Grenzfehlermeldung in einer solchen Situation (um IOP durch einen entsprechenden Interrupt, der von INT und SIO verarbeitet wird, darüber zu informieren, daß gültige Daten überschrieben worden sind).
- Sendedaten werden aus Blöcken des IOP-Speichers übertragen, die durch Anfangsadreßfunktion in verkettungsfähigen DCBs bezeichnet werden, d.h., sie enthalten Kettungsinformationen (die entweder bereits beim ursprünglichen Laden des DCB in den IOP- Speicher oder später durch eine programmierte Aktion über SIO in diese Blöcke geschrieben wurden, während der DCB resident ist; dadurch kann IOP die Länge einer DCB-Kette dynamisch anpassen, wenn ihre Verarbeitungsfunktionen dies erlauben). Verkettete Sendedatenblöcke (d.h. Blöcke, deren ursprüngliche Positionen durch verkettete DCBs angegeben werden) können dabei, je nach Verarbeitungsmöglichkeiten der IOP, verstreut liegen, oder ihre Positionen im IOP-Speicher können sich überschneiden oder miteinander identisch sein.
- Eine wichtige Funktion von DMAC in Bezug auf Sendedaten ist die Kennzeichnung von Rahmengrenzen in Daten, die über Verbindungsstreckenkanäle mit rahmengebundenen Protokollen gesendet werden, und dies der IOP ohne entsprechende INT-Interrupts mitzuteilen. Wie bereits erwähnt erfolgt dies dadurch, daß solche Begrenzungsinformationen Teil der Statusinformation für Rahmenende-Interrupts bei Empfangsdaten sind.
- Der logische Aufbau von DMAC ist in Fig. 38 dargestellt. DMAC besteht aus der an 380 allgemein dargestellten Logik mit finiten Zuständen, fünf Registern 381 bis 385, einer Multiplexerschaltung 386 und einer Vergleicherschaltung 387.
- Die Logik mit finiten Zuständen 380 besteht aus zwei Einheiten 380A und 380B, die als DMAC_A-Maschine bzw. DMAC_B-Maschine bezeichnet werden. Die von diesen Maschinen gesteuerten Operationen und bestimmte Einzelheiten zu den einzelnen Zuständen folgen weiter unten. Register 381 mit der Bezeichnung RFA_NDA (erste Adresse und nächste DCB-Adresse empfangen) hat bei verschiedenen DMAC- Operationen im Zusammenhang mit der Verarbeitung von Sende- und Empfangsdaten unterschiedliche Funktionen. Denn DMAC Empfangsdaten verarbeitet bzw. in den IOP-Speicher schreibt, wird das Register 381 zum Schalten und Speichern des RDFA-Wortes (erste Empfangsdatenadresse), das an der RDCR3-Position für den betreffenden Kanal in DMAR gespeichert ist, verwendet.
- Wenn DMAC DCBs für Sendedaten verarbeitet bzw. abruft, wird Register 381 zur Speicherung einer nächsten DCB-Adresse benutzt, die entweder aus DMAR oder aus IOP abgerufen wird (von DMAR über DI4AR_DATA_BUS, von IOP über MIO_DATA_BUS). Die nächste DCB-Adresse wird von DMAR entnommen, wenn das DCBA-Feld von TDCR4 verwendet wird. Von IOP wird sie direkt entnommen, wenn die aktuellen Sendedaten zu Ende gehen und keine nächste DCB- Adresse in TDCR4 steht (z.B. wenn ein DCB ankommt, der auf einen leeren Datenpuffer zeigt, aber eine nächste Adresse für einen verketteten DCB enthält). Wenn DMAC zum Abrufen eines nächsten DCB bereit ist, wird der Inhalt von Register 381 in das nachfolgend beschriebene Register 382 geladen, wo er die Adresse ist, die über DMAC_MIO_ADDR in den IOP-Bus gestellt werden soll; das Signal DMAC_MIO_ADDR wird von den Einheiten 382 oder 385 über den Multiplexer 386A erzeugt. Wenn eine neuer DCB aus IOP abgerufen wurde, werden die Sendedatenpufferadresse und die nächste DCB-Pufferadresse in TDRC3 und TDRC4 durch den entsprechenden Inhalt des neuen DBC ersetzt. Wenn DMAC zur Aktualisierung von TDCR3 und TDCR4 bereit ist, wird der Inhalt von Register 381 an Register 385 übertragen, wo er über DMAC_DMAR_DATA in TDCR4 gespeichert wird, nachdem der Inhalt von Register 385 in TDCR3 gespeichert wurde.
- Register 382, das RBCA-Register (Empfangs-Grenzfehleradresse) dient zur Speicherung der über DMAR_DATA-Bus 388 aus RDCR4 ausgelesenen RDBA-Funktion. Diese Funktion wird von der Vergleicherschaltung 387 mit einer aktuellen IOP-Adresse in Register 385 verglichen. Eine Übereinstimmung zeigt an, daß der Empfangspuffer voll ist, und veranlaßt DMAC dazü, die Empfangsdatenverarbeitung für den betreffenden Kanal zu beenden und einen Grenzfehlerhinweis zu setzen, über den IOP mittels eines INT- Interrupts von RFM informiert wird.
- Die Verwendung von Register 382 zur Speicherung der nächsten DCB-Adresse wurde weiter oben im Zusammenhang mit Register 381 beschrieben.
- Register 383, das RLA_TBC-Register (Letzte Adresse und Sendebytezähler empfangen), wird bei Empfangs- und Sendeverarbeitungsoperationen unterschiedlich verwendet. Bei der Empfangsverarbeitung schaltet und speichert dieses Register die RDLAL- und RDLAH-Komponenten, die über den Bus 388 aus den RDCR3,4- Bereichen in DMAR abgerufen wurden. Bei der Sendedatenverarbeitung enthält Register 383 Sendebytezählerinformationen, die entweder über FIFOR DATA BUS 389 von FIFOR (TDCR1) oder über MIO_DATA_BUS 390 vom IOP-Speicher empfangen wurden. Über den FIFOR-Pfad wird der neue aktuelle Bytezählerwert abgerufen, und über den IOP-Pfad wird beim Abrufen eines neuen DCB ein neuer Bytezählerwert geholt.
- Wenn die letzte Empfangsadresse in Register 383 geschaltet ist, wird sie von der Vergleicherschaltung 387 mit einer aktuellen Adresse in Register 385 verglichen. Eine Übereinstimmung weist darauf hin, daß das physische Ende des Empfangspuffers erreicht ist. DMAC muß dann die aktuelle Adresse durch die erste Empfangsadresse ersetzen, die über Bus 388 von RDFA/RDCR3 signalisiert wird. Wenn der Sendebytezähler gespeichert wird, so wird dieser verringert und durch das "Datenhalteregister" 384 gesendet, damit er an FIFOR zurückgesendet werden kann.
- Das Datenhalteregister 384 wird ebenfalls unterschiedlich verwendet. Beim Abrufen von Sendedaten über Bus 390 werden diese auf dem Weg über den Ausgang DMAC_FIFO_DATA des Multiplexers 386 zu FIFOR vorübergehend in Register 384 gespeichert. Die Verarbeitung des Sendebytezählerwertes in diesem Register wurde bereits weiter oben beschrieben. Bei der Verarbeitung von Empfangsdaten werden diese über Bus 389 aus FIFOR entnommen und auf ihrem Weg über den Ausgangspfad dieses Registers zu DMAC_MIO_DATA an 391 zum IOP-Speicher vorübergehend in Register 384 gespeichert.
- Das Register für die aktuelle Adresse 385 hat ebenfalls unterschiedliche Verwendung. In verschiedenen Phasen der DMAC- Verarbeitung empfängt es Adressen für die Übergabe an den IOP- Speicher (über DMAC_MIO_ADDR), weitergezählte Sendeadreßwerte, die über DMAC_DMAR_DATA an DMAR zurückgeschrieben werden müssen, und weitergezählte Empfangsadreßwerte, die über den DMAC_FIFOR_DATA-Ausgang des Multiplexers 386 in FIFOR zurückgeschrieben werden müssen. Der Empfangsadreßwert und der Sendeadreßwert werden aus FIFOR (über Bus 389) bzw. aus DMAR (über Bus 388) in das Register eingelesen. Das Einlesen der nächsten DCB-Adressen in dieses Register wurde bereits weiter oben beschrieben.
- Die Maschinen mit finiten Zuständen DMAC_A und DMAC_B sind logisch eng gekoppelt. DMAC_A ist vor allem für die Verbindung zu MIO, DMAR und DMARQ zuständig (einschließlich der Arbitration von Anforderungen für den von DMARQ übergebenen Datentransfer und der Erzeugung von Rücksetzungs-Steuersignalen an DMARQ nach Abschluß der Verarbeitung). DMAC_B ist in erster Linie für die Verbindung zu FIFOR zuständig.
- Wenn Anforderungen von DMARQ, die von DMAC_A akzeptiert werden, einen Zugriff auf FIFOR erfordern, wird der Ausgang DMAC_A_REQ von DMAC-A zu DMAC_B aktiviert. Daraufhin führt DMAC_B die durch Meldungscodes von DMAC_A am Ausgang DMAC_A_MSG signalisierte erforderliche Aufgabe aus. Der 2 Bit umfassende Meldungscode bezeichnet eine von vier Aufgaben: (1) Sendedatenbyte- Zählerwert aus FIFOR auslesen; (2) aktualisierten Sendebyte- Zählerwert und Daten in FIFOR schreiben; (3) aktuelle Empfangspufferadresse und Daten aus FIFOR auslesen; (4) aktualisierte aktuelle Empfangspufferadresse in FIFOR schreiben.
- Zwischen der Logik mit finiten Zuständen 380 und DMAR stehen folgende Ein- und Ausgänge zur Verfügung:
- DMAR_DMAC_ACK0 DMAR-Bestätigung des ersten Transfers bei einem Doppelworttransfer.
- DMAR_DMAC_ACK1 DMAR-Bestätigung des zweiten Transfers.
- DMAR_DMAC_DONE DMAR-"Fertig"-Signal
- DMAC_DMAR_WR1 DMAC-Anforderung für Einzelwort-Schreiboperation
- DMAC DMAR WR2 DMAC-Anforderung für Doppelwort-Schreiboperation
- DMAC_DMAR_RD2 DMAC-Anforderung für Doppelwort-Leseoperation
- DMAC_DMAR REQ Die vollständige Bezeichnung heißt DMAC_DMAR_RCV_REQ; zusätzliche Adressierungsfunktion für DMAR zur Unterscheidung einer DMAC_DMAR_RD2-Anforderung für eine Empfangskanaloperation von einer entsprechenden Anforderung für eine Sendekanalopperation; für erstere wird die Position der RDCR3,4-Parameter und für letztere die Position der TDCR3,4-Parameter benötigt.
- Zwischen der Logik mit finiten Zuständen 380 und MIO stehen folgende Ein- und Ausgänge zur Verfügung:
- MIO_DMAC_ACKO MIO-Bestätigung des ersten Transfers bei einem Doppelworttransfer.
- MIO_DMAC_ACKT MIO-Bestätigung des zweiten Transfers.
- MIO_DMAC_DONE MIO-"Fertig"-Signal
- MIO_DMAC_PE MIO-Signal für Paritätsfehler an der IOP- Schnittstelle
- DMAC_MIO_RD1 DMAC-Anforderung für eine Einzelwort-Leseoperation aus IOP-Speicher
- DMAC_MIO_RD3 DMAC-Anforderung für eine 3-Wörter-Leseoperation (2 Sendedatenwörter plus ein DCB)
- DMAC_MIO_WR1 DMAC-Anforderung für eine Einzelwort- Schreiboperation
- Zwischen der Logik mit finiten Zuständen 380 und FIFOR stehen folgende Ein- und Ausgänge zur Verfügung:
- FIFOR_DMAC_ACK FIFOR-Bestätigung des Transfers.
- DMAC_FIFOR_RD1 DMAC-Anforderung für Einzelwort-Leseanforderung
- DMAC_FIFOR_RD2 DMAC-Anforderung für Doppelwort-Leseanforderung
- DMAC_FIFOR_WR1 DMAC-Anforderung für Einzelwort-Schreibanforderung
- DMAC_FIFOR_WR2 DMAC-Anforderung für Doppelwort-Schreibanforderung
- DMAC_FIFOR_PE_WR DMAC-Hinweis auf Paritätsfehler beim Schreiben
- DMAC_CHN_NBR DMAC-Kanalzeitschlitzangabe bzw. -adresse. Enthält ein Bit zur Unterscheidung zwischen Empfang und Senden und bildet in Verbindung mit der entsprechenden Lese- oder Schreibanforderung die vollständige Adreßinformation, die von FIFOR benötigt wird.
- Eingänge/Ausgänge von bzw. zu DMARQ:
- HCR Eingang vom HCR-Register in SIO, das aktive Hyperchannelzuteilungen angibt und Zeiger für die betreffenden Hyperchannels liefert, die bei der Adressierung von FIFOR und DMAR verwendet werden (siehe auch Beschreibung von DMARQ weiter oben und von Hyperchannels weiter unten).
- RCV_RESET (Die vollständige Bezeichnung lautet DMAC_DMARQ_RCV_RESET). Signal an DMARQ, die gerade verarbeitete Empfangs-DMA- Anforderung zurückzusetzen
- XMIT_RESET (Die vollständige Bezeichnung lautet DMAC_DMARQ_XMIT_RESET). Signal an DMARQ, die gerade verarbeitete Sende-DMA-Anforderung zurückzusetzen.
- DMARQ_B_REQs DMARQ-Anforderungseingänge in DMAC für B- Kanalanforderungen
- DMARQ_H0_REQs DMARQ-Anforderungseingänge für H0-Hyperchannels
- DMARQ_H1_REQs DMARQ-Anforderungseingänge für H1-Hyperchannels
- DMAC_H_PTR Ausgang zu DMARQ mit DMAC_DMARQ_RESET, wenn die Verarbeitung eines Hyperchannels abgeschlossen ist; zeigt auf eine bestimmte DMARQ-Anforderungsbitposition, die zurückgesetzt werden soll (löst diese auf einen speziellen Hyperchannel und darin wiederum auf eine Empfangs- oder Sendeposition auf).
- DMAC_H-B_SEL Ausgang an DMARQ mit DMAC_DMARQ_RESET zur Unterscheidung, ob eine Hyperchannelanforderung oder eine Elementarkanalanforderung zurückgesetzt werden soll.
- DMAC_B_PTR Ausgang an DMARQ, wenn ein B-Kanal für die Rücksetzung ausgewählt ist; zeigt auf eine bestimmte Anforderungsposition, die zurückgesetzt werden soll (löst diese auf eine spezielle Kanalnummer und darin wiederum auf eine Empfangs- oder Sendeposition auf).
- Andere Eingänge:
- DMAC_PARITY_ERROR DMAC-Signal an INT, daß über MIO Paritätsfehler in FIFOR, DMAR oder IOP-Speicher festgestellt wurden.
- Steuersignale Ausgänge der Logik mit finiten Zuständen 380 an die Register 381 bis 385.
- Wahr/Falsch Eingang von den Vergleicherschaltungen 387 in die Logik mit finiten Zuständen 380.
- Die Einheiten DMAC A und DMAC B können folgende Zustände einnehmen:
- In der nachstehenden Beschreibung werden Feldparameterteile von RDCR1-4 und TDCR1-4 mit den betreffenden Abkürzungen (z.B. RDFA, RDLAH usw.) bezeichnet. Ferner wird zur Vereinfachung der Beschreibung das erste Byte von TDCR1, das drei 1-Bit-Parameter und zwei 2-Bit-Parameter enthält, als TDFSW (Sendedaten-FIFO- Statuswort) bezeichnet.
- - Aktiven Verarbeitungsanforderungen von DMARQ wird eine Prionät zugewiesen, wobei Anforderungen für H1-Kanäle die höchste, Anforderungen für H0-Kanäle die nächsthöhere und Anforderungen für Elementarkanäle die niedrigste Priorität erhalten.
- - Wenn eine H1-Anforderung aktiv ist, wird DMAC_H-B_SEL an DMARQ übergeben (das tatsächlich die Auswahl einer H-Anforderung bezeichnet), der DMAC_H_PTR-Ausgang zu DMARQ in Verbindung mit einem Codewert für die H1-Anforderungsposition aktiviert, und Zustand 1 eingenommen.
- - Wenn eine H0-Anforderung und keine H1-Anforderung aktiv ist, werden DMAC_H-B_SEL und DMAC_H_PRT (Zeiger auf eine zurückzusetzende H0-Anforderung) aktiviert. Es folgt Zustand 2.
- - Wenn eine B-Anforderung und keine H-Anforderung aktiv ist, wird DMAC H-B SEL so gesetzt, daß es auf einen zu verarbeitenden Elementarkanal zeigt, DMAC_B_OTR mit einem Wert, der den speziellen Kanal angibt, aktiviert, und Zustand 3 eingenommen.
- - Eine Doppelwort-Leseanforderung (DMAC_DMAR_RD2) zum Auslesen von zwei Wörtern, die Status- und Steuerinformationen für den ausgewählten H1-Hyperchannel enthalten, wird an DMAR gesendet. Je nachdem, ob es sich um einen Empfangsprozeß oder um einen Sendeprozeß handelt, steht die angeforderte Information in den RDCR3,4-Bereichen oder TDCR3,4- Bereichen in DMAR, die dem Elementarkanal zugeordnet sind, der als Referenzkanal des Hyperchannels dient (siehe Beschreibung von DMARQ weiter oben und Beschreibung von Hyperchannels weiter unten). Gleichzeitig werden DMAC_A_REQ und DMAC_A_MSG an die DMAC_B-Maschine übergeben, um die nötigen FIFOR-Lesezugriffe anzufordern (1 Wort bei Sendeverarbeitung, 2 Wörter bei Empfangsverarbeitung). Es folgt Zustand 4.
- - Eine eventuelle Konkurrenzsituation zwischen H0-Anforderungen wird durch Festlegen einer Reihenfolge aufgelöst. Dem ausgewählten H0-Kanal wird bei der nächsten Verarbeitung die letzte Priorität unter den H0-Kanälen zugewiesen, damit über einen längeren Zeitraum gemittelt alle H0- Anforderungen gleichwertig behandelt werden. Der interne H- Zähler wird auf den Wert der aktuellen H0-Auswahl gesetzt (dieser Wert erhält bei der nächsten H0-Konkurrenzsituation die niedrigste Priorität). Es folgt Zustand 1.
- - Eine eventuelle Konkurrenzsituation zwischen Elementarkanalanforderungen wird durch Festlegen einer Reihenfolge aufgelöst. Dem ausgewählten Kanal wird bei der nächsten Auswahl die letzte Priorität zugewiesen, damit über einen längeren Zeitraum gemittelt alle Elementarkanalanforderungen gleichwertig behandelt werden. Der interne B-Zähler wird auf den Wert der aktuellen H0-Auswahl gesetzt. Es folgt Zustand 1.
- - Es wird auf "Fertig"-Signal (DMAR_DMAC DONE) gewartet und Zustand 5 eingenommen.
- - Bei der Verarbeitung von Empfangsprozessen enthält das erste Wort aus DMAR (Verfügbarkeit wird durch aktives DMAR _-DMAC_ACKO signalisiert) die erste Adreßinformation RDFA und den RDLAH-Teil der letzten Adresse. RDFA wird in Register 381 geladen, die RDLAH in Register 383. Das zweite Wort (Verfügbarkeit wird durch aktives DMAR_DMAC_ACK1 signalisiert) enthält die Grenzadresse RDBA und den unteren Teil der letzten Adresse RDLAL. RDBA wird in Register 382 geladen, RDLAL in Register 381 (wo es die bereits verarbeitete RDFA ersetzt).
- - Bei Sendeprozessen enthält das erste ankommende Wort die Sendedatenpufferadresse TDBA, die in Register 385 geladen ist. Das zweite Wort enthält das Kettenendebit ECI, das Rahmenendebit EFI und die nächste DCB-Adresse (DBCA). Alle werden in Register 383 geladen.
- - In diesem Zustand wird das in Zustand 1 gesetzte DMAC_A- Anforderungsbit ständig überwacht. Das Bit wird von DMA_B zurückgesetzt, wenn letztere die angeforderte Leseoperation aus FIFOR beendet. Bei der Empfangsverarbeitung folgt Zustand 6, bei der Sendeverarbeitung Zustand 9.
- - Nachdem alle Informationen aus DMAR und FIFOR abgerufen wurden, wird geprüft, ob ein Hinweis auf einen Paritätsfehler (PE-Bit in RDCR1, das im Fall eines Paritätsfehlers in Zustand 3 von DMAC_B gesetzt wurde) oder auf eine in Zustand 8 gesetzte Grenzfehlerbedingung (aktives RBC-Bit in RDCR1) vorliegt. Im Fall eines Paritätsfehlers wird die Verarbeitung für den betreffenden Kanal ausgesetzt. Wenn ein Paritätsfehler oder eine Grenzfehlerbedingung festgestellt wurde, wird Zustand 15 eingenommen. Andernfalls wird DMAC_MIO_WR1 ausgegeben, um die Empfangsdaten in den Empfangspuffer im IOP-Speicher zu schreiben. Die Adresse für diese Schreiboperation wird von der aktuellen Adresse in Register 385 und an DMAC_MIO_ADDR abgeleitet. Es folgt Zustand 7.
- - Die Adresse im aktuellen Adreßregister wird weitergezählt, wenn MIO eine Schreibanforderung aus Zustand 6 durch MIO _-DMAC_ACKO bestätigt. Es folgt Zustand 8.
- - Wenn der Inhalt des Adreßregisters mit RDFA übereinstimmt, wird RDFA ins Adreßregister übertragen. Wenn das Adreßregister mit der RDBA-Funktion in Register 32 übereinstimmt, ist ein Grenzfehler aufgetreten; deshalb wird ein RBC-Bit gesetzt und mit der Adresse in Register 385 verkettet, und an FIFOR zurückgeschrieben. Wenn die aktuelle Adresse nicht am Anfang des Empfangspuffers steht und auch kein Grenzfehler vorliegt, werden DMAC_A_REQ und DMAC_A_MSG aktiviert, um von DMAC_B eine Einzelwort-Schreiboperation in den betreffenden Empfangskanalbereich in FIFOR anzufordern. Es folgt Zustand 15.
- - Wenn alle Wörter für Sendeanforderungen (TDCR1,3,4) ausgelesen wurden (Zustand 5), wird geprüft, ob ein Paritätsfehlerbit aktiv ist (in Zustand 3 wird dieses bei einem Paritätsfehler in FIFOR von DMAC_B gesetzt, und bei einem Paritätsfehler in DMAR wird DMAR_PARITY_ERROR aktiviert). Wenn ein Paritätsfehler festgestellt wird, folgt Zustand 15. Liegt kein Fehler vor, wird geprüft, ob der Sendebyte- Zählerwert (von DMAC_B in Register 383 eingelesen) Null ist. Ist dies der Fall, wird ein neuer DCB benötigt. Es wird eine 3-Wörter-Leseoperation an MIO signalisiert (DMAC_MIO_RD3), und DCBA (DCB-Adresse) wird aus Register 381 in Register 382 übertragen, wo es von MIO benutzt werden kann; dann wird Zustand 11 eingenommen und ein neuer DCB abgewartet. Ist der Sendebytezähler nicht Null, wird das von MIO ausgelesene Sendedatenwort an der durch DMAC_MIO_ADDR bezeichneten Adresse am Ausgang von Register 383 ausgegeben und Zustand 12 eingenommen.
- - Es wird geprüft, ob der in Zustand 11 empfangene neue DCB leer ist (Sendebyte-Zählerwert Null). Ist dies der Fall und ist im neuen DCB weder ECI noch EFI gesetzt, wird ein weiterer DCB benötigt; es werden deshalb Anforderungen für einen neuen DCB-Abruf erteilt. Dann wird Zustand 11 eingenommen. Ist der DCB leer, aber entweder ECI oder EFI gesetzt, endete ein Rahmen und/oder eine Kette ohne weitere zu sendende Daten; in diesem Fall wird TDFSW aktualisiert und mit dem Sendebytezählerwert verkettet, eine Einzelwort-Schreibanforderung an DMAC_B ausgegeben, durch die das aktuahsierte TDCR1-Wort an FIFOR zurückgesendet wird, und Zustand 15 eingenommen. Ist der neue DCB nicht leer, wird DMAC_MIO_RD1 aktiviert, um das Lesen eines Sendedatenwortes anzufordern (mit Hilfe der Adresse, die in Zustand 11 in Register 385 geladen wurde).
- - Es wird auf neue DCB-Wörter gewartet. Das erste Wort von MIO ist die Sendedatenpufferadresse, die in Register 385 geladen wird, wenn MIO_DMAC_ACK0 aktiv ist. Das zweite Wort von MIO enthält das Ed- und das EFI-Bit und die nächste DCB-Adresse; sie werden zusammen in Register 381 geladen, wenn MIO_DMAC_ACK1 aktiv ist. Das dritte Wort von MIO (verfügbar, wenn MIO_DMAC_ACK2 aktiv ist) ist der Sendebyte-Zählerwert, der in Register 383 geladen wird. Bei Aktivierung von MIO_DMAC_DONE wird Zustand 10 eingenommen.
- - Wenn ein Sendedatenwort ankommt (MIO_DMAC_ACKO aktiv), wird es in Register 384 geladen, die Sendeadresse wird weitergezählt, der Sendebytezählerwert wird verringert, und DMAC_B wird aktiviert, um das TDFSW/TDCR1-Statusbyte in FIFOR zu aktivieren. Es folgt Zustand 13.
- - Es wird geprüft, ob der aktualisierte Sendebytezähler Null/leer ist. Ist dies der Fall, werden die TDCR1/FIFOR ECI- und EFI-Bits durch die Werte der entsprechenden Bits in TDCR3/DMAR ersetzt. DMAC_A_REQ und die entsprechende Meldung DMAC_A_MSG werden an DMAC_B gesendet, um FIFOR durch eine Einzel- oder Doppelwort-Schreiboperation zu aktualisieren (Einzelwort, wenn der neue DCB leer ist; andernfalls Doppelwort) Gleichzeitig wird eine Einzel- oder Doppelwort-Schreibanforderung an DMAR ausgegeben (Einzelwort, wenn nur die Sendepufferadresse des alten DCB aktualisiert wird; Doppelwort, wenn sowohl die Sendepufferadresse als auch die nächste DCB-Adresse aktualisiert werden). Es folgt Zustand 14.
- - Bei der Ankunft einer Bestätigung von DMAR werden ECI, EFI und die nächste DCB-Adresse aus Register 381 in Register 385 übertragen, damit das zweite Wort in DMAR geschrieben werden kann. Es folgt Zustand 15.
- - Dieser Zustand wird beibehalten, bis DMAC_A_REQ durch eine Aktion von DMAC_B zurückgesetzt wird. Dann werden alle Register 381 bis 385 zurückgesetzt und Zustand 0 eingenommen, um einen neuen Operationszyklus zu starten.
- Bei einer Rücksetzung wird Zustand 0 eingenommen.
- - In diesem Zustand wird das Anforderungsbit von DMAC_A kontinuierlich abgefragt, um festzustellen, ob eine Verarbeitung für FIFOR erforderlich ist. Wenn das Bit aktiv wird, wird DMAC_FIFOR_REQ aktiviert und die Meldung an DMAC_A_MSG decodiert. Dann wird DMA_CHN_NBR an FIFOR gesendet, von dem sie als partielle Adresse benutzt werden kann. In Abhängigkeit von der Meldung von DMAC A wird FIFOR zur Vervollständigung der Adresse DMAC_FIFOR_RD1 oder _RD2 oder _WR1 oder _WR2 übergeben. Es folgt Zustand 1, falls die Meldung DMAC A "Lesebytezählerwert von FIFOR" bezeichnet; Zustand 2, falls die Meldung "Aktualisierten Sendebytezählerwert und Daten in FIFOR schreiben" lautet; Zustand 3, falls die Meldung "Aktuelle Empfangspufferadresse und Daten aus FIFOR lesen" lautet; und Zustand 4, falls die Meldung "Aktualisierte aktuelle Empfangspufferadresse in FIFOR schreiben" lautet.
- - Bei Empfang einer Bestätigung von FIFOR (FIFOR_DMAC_ACK) wird der Sendebytezählerwert aus FIFOR_DATA_BUS 389 in das Register 385 übertragen. Die Parität wird geprüft. Bei einem Paritätsfehler wird DMAC_A benachrichtigt, das Paritätsfehlerstatusbit im PE-Feld von TDCRL in FIFOR gesetzt (um IOP über TFM und INT zu informieren) und Zustand 8 eingenommen. Liegt kein Paritätsfehler vor, wird das DMAC_A_REQ-Bit zurückgesetzt und Zustand 0 eingenommen.
- - Bei Bestätigung von FIFOR werden TDFSW und Sendebyte- Zählerwert in Register 384 übertragen, damit sie als zweites Wort der in Zustand 0 erteilten WR2-Anweisung in FIFOR geschrieben werden können. Als erstes Wort werden die Sendedaten geschrieben, die in Register 384 stehen, wenn in Zustand 0 die Anweisung an FIFOR erteilt wird. Es folgt Zustand 5.
- - Bei einer Bestätigung von FIFOR wird die aktuelle Empfandsdatenpufferadresse von FIFOR_DATA_BUS ins Register 385 geschaltet und ihre Parität geprüft. Liegt ein Paritätsfehler vor, wird Zustand 6 eingenommen, um die Paritätsfehlerangabe in das PE-Bit in RDCR1/FIFOR zu schreiben (was letztlich zu der Erkennung einer Paritätsfehlerbedingung in RFM und zur Mitteilung an IOP mittels eines INT-Interrupts führt). Liegt kein Paritätsfehler vor, wird Zustand 9 eingenommen, um das zweite Wort aus FIFOR zu empfangen.
- - Bei einer Bestätigung von FIFOR (in der eine Schreiboperation für die in Zustand 0 übergebene aktuelle Datenpufferadresse bestätigt wird) wird DMAC_A_REQ zurückgesetzt und Zustand 0 eingenommen.
- - In diesem Zustand erfolgt bei einer Doppelwort-Schreiboperation eine Zeitabstimmung mit FIFOR (siehe Zustand 2).
- - Wenn FIFOR RDCR1 geschrieben hat, um das Paritätsfehlerbit zu überarbeiten, wird ein aktives DMAC_PARITY_ERROR-Signal an INT gesendet (dieses erscheint am DMAR_PARITY_ERROR- Eingang von INT, siehe Fig. 37). Das DMAC_A_REQ-Bit wird zurückgesetzt, und es wird Zustand 0 eingenommen.
- - Bei einer Bestätigung von FIFOR wird das Empfangsdatenwort (das zweite Wort, das aus FIFOR ausgelesen wird) auf Paritätsfehler geprüft. Ist ein Fehler aufgetreten, wird Zustand 6 eingenommen, um den Paritätsfehlerhinweis in RDCR1/FIFOR zu schreiben. Andernfalls wird das DMAC_A_REQ- Bit zurückgesetzt und Zustand 0 eingenommen.
- - Bei einer Bestätigung (des TDCR1-Schreibzugriffsaufbaus in Zustand 1) von FIFOR wird das DMAC_A_REQ-Bit zurückgesetzt und Zustand 0 eingenommen.
- - In diesem Zustand erfolgt ein Zeitabgleich für das Lesen des zweiten Wortes im Rahmen einer Doppelwort-Leseoperation (siehe Zustand 3).
- Die Master-E/A-Partition (MIO-Partition) hat eine Arbiterfunktion bei der Steuerung des IOP-Busses im Auftrag von DMAC. Wenn MIO die Steuerung übernimmt, führt sie unter Verwendung der von DMAC übertragenen Adreß- und Steuerparameter (und der Daten, in der Regel Empfangsdaten, wenn es sich um einen Schreibtransfer in den IOP-Speicher handelt) einen DMA-Transfer zu oder vom IOP-Speicher durch.
- In einer typischen Umgebung könnte der IOP-Prozessor ein Motorola 68000 sein und der Bus ein 68000er-Bus, der die externe Übernahme der Master-Steuerung erlaubt. In einer anderen typischen Umgebung könnte der IOP-Prozessor ein Prozessor aus der Familie der IBM-Prozessoren mit Microchannel-Architektur sein (Microchannel ist ein Warenzeichen der International Business Machines Corporation), der mittels Arbitration auch mehrere Bus-Master erlaubt. In solchen Umgebungen arbeitet MIO nach Übernahme der Bussteuerung als Bus-Master (in der 68000er- Umgebung als 16-Bit-Bus-Master, und in der Microchannelbus- Umgebung als 32-Bit-Master).
- Einzelheiten zum logischen Aufbau und den Zuständen der MIO sind den gleichzeitig anhängigen Anmeldungen, deren Titel sich auf autonome Elemente bzw. auf Steuerungen mit synchroner Verbindungsstreckenschnittstelle beziehen, zu entnehmen. Da Struktur und Funktionen von MIO für die Bildung und Verwendung von Hyperchannels nicht relevant sind, wird an dieser Stelle nicht näher darauf eingegangen. Insofern das Verständnis dieser Details ergänzend von Bedeutung sein könnte, sind die entsprechenden Abschnitte der gleichzeitig anhängigen Anmeldungen durch diesen Verweis Teil des vorliegenden Dokuments.
- Hyperchannels werden derzeit durch Zusammenfassen von Elementarkanälen für Zeitschlitze an der BTDM-Schnittstelle zum Zweck der Erzielung größerer Bandbreiten gebildet. In CCITT- Empfehlungen für Hyperchannels in IDSN-Umgebungen werden H0- Hyperchannels mit 384 Kbps, Hll-Hyperchannels mit 1,536 Mbps und H12-Hyperchannels mit 1,920 Mbps aufgeführt.
- Das in der vorliegenden Anmeldung beschriebene IDLC-Gerät mit der angegebenen Konfiguration unterstützt 32 Vollduplex'Elementarkanäle' ('B'- oder 'D'-Kanäle) mit maximalen Übertragungsrate von jeweils 64 Kpbs. Jeder Elementarkanal ist einem entsprechenden "elementaren" Verarbeitungszeitschlitz mit fester Position an der BTDM zugeteilt. Ein Elementarkanal bzw. Elementarzeitschlitz kann jederzeit aktiv oder inaktiv sein.
- In dieser Konfiguration unterstützt die hier in RSM, DMARQ, DMAC und SIO verteilte Logik die Bildung und Verwendung von bis zu fünf H0-Hyperchannels, indem sechs Elementarkanal-Zeitschlitze pro Hyperchannel zusammengefaßt werden, oder die Bildung und Verwendung eines H11-Hyperchannels aus 24 Elementarzeitschlitzen oder eines H12-Hyperchannels aus allen 32 Elementarzeitschlitzen. Wenn ein H1- oder H12-Hyperchannel konfiguriert ist, können keine H0-Hyperchannels gebildet werden.
- Das IDLC geht über die CCITT-Empfehlungen hinaus und bietet die Möglichkeit, eine beliebige Anzahl von Zeitschlitzen zu größeren Kanälen ("erweiterten Kanälen") zusammenzufassen, um so eine größtmögliche Flexibilität bei der Bandbreite sowie die Zuteilung nichtzusammenhängender Zeitschlitze zu ermöglichen (dadurch wird die Bildung von Hyperchannels oder erweiterten Kanälen auch dann ermöglicht, wenn wegen der aktuellen Verwendung von B/D-Kanälen nicht genügend aufeinanderfolgende Elementarzeitschlitze zur Verfügung stehen). Die Konfiguration von elementaren Zeitschlitzen in einem Hyperchannel kann dynamisch programmiert werden (durch IOP) und ist für die Verarbeitungselemente des IDLC logisch transparent (abgesehen von einer möglichen Mehrdeutigkeitsbedingung in INT bei der Speicherung des TSR-Paritätsfehlerstatus, auf die weiter oben bei der Beschreibung von INT eingegangen wurde).
- Im IDLC wird die Bildung und Verwendung von Hyperchannels mittels einer über die Partitionen SIO, RSM, DMARQ und DMAC verteilten Logik implementiert. Abgesehen von der genannten Ausnahme sind Bildung und Verwendung von Hyperchannels für alle andere Partitionen logisch transparent. Hyperchannels oder erweiterte Kanäle werden gebildet, indem elementare Zeitschlitze zu einer einzigen Kanaleinheit zusammengefaßt werden. Die so zusammengefaßten Elementarzeitschlitze werden als "konstituierende" Zeitschlitze des Hyperchannels bezeichnet.
- Ein fundamentales Verfahren bei der hier beschriebenen Bildung und Verwendung von Hyperchannels besteht darin, einen der konstituierenden Zeitschlitze als "Referenzzeitschlitz" zu bestimmen, für den alle Prozeßstatus- und Konfigurationsparameter des gesamten Hyperchannels gespeichert werden (in TSR, FIFOR, DMAR und bestimmten Registern, auf die im folgenden noch eingegangen wird).
- Für jeden Hyperchannel stellt die Logik in RSM und DMAC, die Informationen im HCR-Register in SIO (siehe Fig. 4) und im CCR jedes konstituierenden Kanals (siehe Fig. 6) verarbeitet, eine logische "Viele-zu-Eins" zwischen den nicht als Referenzzeitschlitz ausgewählten konstituierenden Zeitschlitzen und dem Referenzzeitschlitz her. Bei der Verarbeitung eines Nicht-Referenzzeitschlitzes werden folglich Positionsangabeparameter für TSR, FIFOR, DMAR und DMARQ, die normalerweise auf die Speicher-/Anforderungspositionen für den gerade verarbeiteten Elementarkanal zeigen würden, in Positionen umgewandelt, die auf den Referenzzeitschlitz bezogen sind.
- Bei der Verarbeitung für einen konstituierenden Zeitschlitz würde also beispielsweise der Austausch von Zeitwechselstatusfunktionen zwischen TSR und den synchronen Datenverarbeitungspartitionen nur für den TSR-Bereich durchgeführt, der dem Referenzzeitschlitz zugeteilt ist.
- Die umwandlungsbedingte Zuordnung zu DMARQ sieht so aus, daß DMARQ-Eingangssignale zum Setzen und Zurücksetzen von Anforderungen für Hyperchannels an andere Registerwarteschlangen geleitet werden als Eingangssignale für andere Kanäle.
- Diese besonderen Hyperchannelzuordnungen werden durch das CT- Feld (Kanaltyp) im CCR-Register und den Inhalt des HCR- Registers (Hyperchannel-Konfigurationsregister) definiert. Die CCRs für Elementarkanäle sind ja bekanntlich in TSR-Bereichen gespeichert, die den betreffenden Kanälen zugeteilt sind, und werden bei der Zeitschlitzverarbeitung für den betreffenden Kanal in ein Hardware-CCR-Register in RSM eingelesen (siehe Beschreibung von RSM weiter oben). HCR befindet sich zwar physisch in SIO (als topologische Auswahl), könnte aber genausogut in einer anderen Partition untergebracht sein. HCR besitzt Ausgänge zu anderen Partitionen (siehe Fig. 4 und Fig. 32 sowie die Beschreibung der HCR-Feldzuordnungen weiter unten).
- Bei der Bildung eines Hyperchannels wird das HCR-Register von IOP programmierbar so gesetzt, daß es einen entsprechenden Zeiger auf einen konstituierenden Referenzzeitschlitz, der der erste im Zeitschlitzrahmen an BTDM ist (dieser Zeitschlitz wird auch als FSC oder erster Zeitschlitz des betreffenden Hyperchannels bezeichnet), enthält. Für jeden konstituierenden Zeitschlitz eines Hyperchannels wird das CT-Feld (Kanaltyp) im zugehörigen CCR so gesetzt (durch IOP/SIO), daß es einen der folgenden Kanaltypen und Nummern bezeichnet: B/D, H01, H02, H03, H04, H05 oder H1 (H11 oder H12, je nach Anwendungsumgebung).
- Das HCR enthält fünf 6-Bit-Felder für bis zu fünf Hyperchannels (auf Einzelheiten wird weiter unten eingegangen). Jedes dieser Felder enthält ein Aktivitätsbit, das angibt, ob der betreffende Kanal aktiv ist, und fünf Bits, die den FSC-Zeiger auf den zugehörigen Referenzzeitschlitz bilden. Aus Gründen der Ökonomie und der Einfachheit werden alle Konfigurations- und Statusparameter für einen Hyperchannel beim Referenzzeitschlitz gespeichert, und der FSC-Zeiger adressiert bei Verarbeitungsaktivitäten für die konstituierenden Zeitschlitze den Referenzzeitschlitz. Bevor die Verarbeitung für einen Zeitschlitz beginnt, ruft RSM im voraus einen CCR-Wert für den betreffenden Zeitschlitz ab (siehe Punkt "P" in Fig. 3) und verwendet die darin enthaltenen Informationen, um die zugehörigen Verarbeitungsparameter für Partitionen, die an der Verarbeitung dieses Zeitschlitzes beteiligt sind, festzulegen. Einer dieser Parameter ist eine Zeitschlitzangabe, RSM_TSI, die bei B/D-Kanälen der physischen Zeitposition des betreffenden Zeitschlitzes entspricht.
- Das CT-Feld (Kanaltyp) in dem im voraus abgerufenen CCR für jeden Kanal ist ein 3 Bit langer Code, der den Kanal entweder als gewöhnlichen B/D-Kanal oder als einen von 6 Hyperchanneltypen (H1 oder einer von fünf durchnumerierten H0-Typen H01 bis H05) ausweist. RSM fragt das CT-Feld in jedem im voraus abgerufenen CCR ab, um die Kanalzuordnung des Zeitschlitzes, der als nächster verarbeitet wird, zu ermitteln. RSM verwaltet einen Zeitschlitzzähler, der bei B/D-Kanälen als dessen externe Zeitschlitzangabe RSM_TSI für andere Partitionen verwendet wird.
- Wenn festgestellt wird, daß der nächste Zeitschlitz ein konstituierender Zeitschlitz eines Hyperchannels ist, ermittelt RSM den Aktivitätszustand des Hyperchannels anhand des zugehörigen Aktivitätsbits in HCR. Wenn der Hyperchannel aktiv ist, ersetzt RSM den aktuellen Zeitschlitzzählerwert durch den Wert des zugehörigen FSC-Feldes in HCR, wo daß die externe Zeitschlitzangabe RSM_TSI einen Wert annimmt, der der Zeitposition des Referenzzeitschlitzes entspricht.
- Beim Laden der neuen Statusinformation für einen nächsten konstituierenden Zeitschlitz (in die synchronen Verarbeitungspartitionen), wird der dem Referenzzeitschlitz zugeordnete Bereich in TSR adressiert, und bei der Verarbeitung für diesen Zeitschlitz werden FIFOR-Zugriffe (für Empfangs- oder Sendedaten) an den dem Referenzzeitschlitz zugeteilten Bereich geleitet.
- Außerdem werden bei Datentransferprozessen im asynchronen Teil (DMAC) statistische Angaben über ausstehenden Anforderungen in DMARQ in synchronem Zeitmultiplexing an RFM und TFM übergeben, so daß diese den Status der betreffenden Warteschlangen in FIFOR feststellen können. Für diesen Zweck liefert RSM DMARQ seine Zeitschlitzangabe RSN_TSI und bei Zeitschutzen für Hyperchannels auch Steuerinformationen, die den Hyperchanneltyp angeben (RSM_DMARQ_H1 oder RSM_DMARQ_H0 zur Unterscheidung der Hyperchanneltypen H1, H01, H02, ... H0S). Solche Angaben werden von DMARQ zur Auswahl der entsprechenden Anforderungsregisterausgänge für die Übergabe an RFM/TFM benutzt. In Zeitschlitzen für B/D-Kanäle verwendet DMARQ die Angabe RSM_TSI zur Auswahl des zu übergebenden Anforderungsstatus. Weitere Details sind der Beschreibung von DMAC weiter oben zu entnehmen.
- Anforderungen, die in Warteschlangen in DMARQ stehen, werden von DMAC nacheinander in der Reihenfolge ihrer Priorität verarbeitet (siehe Beschreibung von DMARQ). Wenn eine Hyperchannelanforderung für die Verarbeitung durch DMAC ausgewählt wird, ordnet die Logik mit finiten Zuständen in dieser Partition die Anforderungsposition (in der DMARQ_H0- oder H1-Warteschlange) zur Auswahl der betreffenden FSC-Funktion in HCR als Adreßzeiger DMAC_CHN_NBR für FIFOR und DMAR zu. Die DMAC-Logik mit finiten Zuständen entwickelt auch einen zugehörigen Adreßzeiger (DMAC_H_PTR) und eine Rücksetzungsfunktion (DMAC_DMARQ_RCV _-RESET oder DMAC_DMARQ_XMIT_RESET), die zusammen auf die exakte Position der ausgewählten Anforderung in der Warteschlange zeigen, und übergibt sie an DMARQ, um die Anforderung zurückzusetzen (siehe Beschreibung von DMARQ).
- HCR (Fig. 34) enthält ein 2-Bit-Feld HCT (Hyperchanneltyp) und fünf 6-Bit-Felder, die bis zu fünf H0-Hyperchannels H0n (n=1-5) zugeordnet sind. Jedes 6-Bit-Feld enthält ein Aktivitätsbit HNA (n=1-5) und ein 5-Bit-Feld, das als Zeiger FSCN (n=1-5) benutzt wird, wenn der betreffende Hyperchannel aktiv ist, und die Zeitposition des Referenzzeitschlitzes angibt (n=1-5).
- Der (von IOP/SIO) im HCT-Feld gespeicherte Wert weist auf eine von zwei Einschränkungen bei der Bildung von Hyperchannels hin (von den vier möglichen Werten des 2-Bit-Feldes werden hier nur zwei benutzt) : (1) Bildung von H1-Hyperchannels deaktiviert (H0 und B/D erlaubt), oder (2) H1-Hyperchannel wird verwendet (H0 nicht erlaubt, aber B/D weiter zulässig).
- Aktive HnA-Bits zeigen an, daß der betreffende Hyperchannel aktiv ist. H2A - H500A können nur aktiv sein, wenn HCT einen Wert enthält, der die Bildung von H0-Hyperchannels erlaubt (Bildung von H1-Kanälen deaktiviert). Aktive Bits H2A - H5A zeigen an, daß die entsprechend numerierten Hyperchannels H02 bis H05 aktiv sind. Ein aktiver Zustand von HLA weist je nach Status von HCT auf einen aktiven Hl-Hyperchannel oder einen aktiven H01- Hyperchannel hin (H1, wenn HCT die Verwendung eines H1-Hyperchannels signalisiert; andernfalls H01).
- Auch wenn die Informationen in HCT und in den HnA-Feldern von HCR scheinbar redundant sind, haben sie eine spezielle Synchronisierungsfunktion. In einem allgemeinen Sinn stehen die gleichen Informationen in CCRS der zugehörigen Zeitschutze zur Verfügung, speziell in den entsprechenden Kanaltypfeldern CT und den Bits, die die Freigabe für Datentransfers im Rahmen einer Kommunikation anzeigen. Die HCR-Information wird jedoch zur Synchronisierung des Hyperchannelstarts benötigt.
- Bei der Bildung eines Hyperchannels programmiert IOP Steuerparameter für alle konstituierenden Zeitschutze (in TSR, FIFOR und DMAR), setzt einen entsprechenden Referenzzeitschlitz- Zeiger in HCR und aktiviert die entsprechenden HnA-Bits in HCR. Die letztere Aktion stellt augenblicklich einen aktiven Status aller konstituierenden Zeitschlitze her. Wäre dies nicht der Fall, müßte das Laden der CCR-Informationen für alle konstituierenden Zeitschlitze synchronisiert werden, damit der Beginn der Kommunikation in einem der konstituierenden Zeitschlitze nicht zu Konflikten mit Aktionen in einem anderen erscheinenden konstituierenden Zeitschlitz, der zu diesem Zeitpunkt vielleicht noch nicht aktiv ist, führen kann. Dies würde Fehler verursachen, da eine solche Kommunikation notwendigerweise die gesamte Bandbreite aller konstituierenden Zeitschlitze erfordem würde, um einen Über- oder Unterlauf zu vermeiden.
- Bei aktiven Hyperchannelstatusangaben HnA enthalten die betreffenden FSCn-Felder Referenzzeitschlitzzeiger, die von RSM und DMAC benutzt werden. RSM verwendet solche Zeiger für die einzelnen konstituierenden Zeitschlitze, um einen internen Zeitschlitzzähler, der effektiv die physische Zeitposition des betreffenden Zeitschlitzes angibt, in eine externe logische Zeitschlitzangabe RSM_TSI umzuwandeln, die die Zeitposition des zugehörigen Referenzzeitschlitzes angibt. Die externe Angabe wird also bei der Verarbeitung eines konstituierenden Zeitschlitzes zur Adressierung der dem Referenzzeitschlitz zugeordneten Positionen in TSR und FIFOR benutzt.
- Für jeden aktiven Hyperchannel entwickelt RSM außerdem Steuersignale für DMARQ (RSM_DMARQ_H1, RSM_DMARQ_H0), um Anforderun- gen von RFM und TFM an bestimmte Warteschlangenpositionen in DMARQ zu senden (siehe Beschreibung von DMARQ weiter oben).
- DMAC verwendet die FSC-Zeiger zur Ermittlung der Kanalnummer (DMAC_CHN_NBR), und H-Zeiger (DMAC_H_PTR) steuern Funktionen, die Hyperchannelanforderungen betreffen (siehe Beschreibungen von FIFOR, DMAR, DMARQ und DMAC weiter oben). Die Kanalnummerfunktionen werden bekanntlich als (partielle) Adressen für FIFOR und DMAR benutzt, während die Werte des H-Zeigers als Funktionen zur Steuerung von Rücksetzungsfunktionen in DMARQ verwendet werden (in Verbindung mit DMAC_DMARQ_RCV RESET oder DMAC_DMKRQ_XMIT RESET).
- In Fig. 43 ist die IDLC-Logik für die Bildung und Verwendung von Hyperchannels dargestellt. Wie aus der Zeichnung zu ersehen ist, ist diese Logik auf die Partitionen RSM, DMAC und DMARQ verteilt. Die verteilten Logikkomponenten werden im folgenden einzeln beschrieben. Zum besseren Verständnis der Logik sind in Fig. 43 bestimmte Funktionen so dargestellt, als würden sie von "diskreten" logischen Elementen (z.B. Auswahlschaltungen, Decoder, usw.) ausgeführt, obwohl im vorliegenden Ausführungsbeispiel viele dieser Funktionen in die Logik mit finiten Zuständen in den betreffenden Partitionen integriert sind.
- Die RSM-Logik für die Verwendung von Hyperchannels enthält eine Auswahlschaltung 450. Zu Beginn jedes konstituierenden Zeitschlitzes eines Hyperchannels überträgt die Schaltung 450 die Information in einer der fünf numerierten Feldgruppen im HCR- Register (die Gruppen HNA, FSCN; n=l-5) an seine Ausgänge. Das ausgewählte Aktivitätsstatusbit HNA wird an den Aktivitätsstatusausgang "Akt.St." übertragen, und der entsprechende Referenzzeitschlitzzeiger FSCN wird an den Ausgang übertragen.
- Das HCR ist hier und in Fig. 4 so dargestellt, als würde es sich in SIO befinden; dies hat aber nur topologische und signaltechnische Gründe, eine Notwendigkeit besteht nicht. Topologische Gründe beziehen sich auf die Verteilung der Schaltungsnummern in den Partitionen, und der signaltechnische Grund ist, daß dies der kürzeste Weg von IOP zu diesem Register ist. Logisch würde dieses Register vielleicht besser in RSM passen, oder auch in irgendeine andere Partition, obwohl dies insgesamt vielleicht nicht ganz so günstig wäre.
- Die in der Logik 450 getroffene HCR-Gruppenauswahl wird durch das CT-Feld des an 451 ankommenden Vor-CCR bestimmt, das von RSM in einer frühen Phase des Zeitschlitzintervalls, nämlich vor dem Beginn der synchronen IDLC-Verarbeitung für den Zeitschlitz, aus TSR eingelesen wird (siehe Fig. 3). Das Aktivitätsstatusbit HnA in der ausgewählten Feldgruppe geht an das UND-Gatter 452, und der FSCN-Teil der ausgewählten Gruppe geht an eine weitere Auswahlschaltung 453.
- Die Auswahlschaltung 453 wählt als Antwort auf das CT-Feld in dem im voraus abgerufenen CCR entweder einen Referenzzeitschlitzzeiger FSCn, der von der Auswahlschaltung 450 übergeben wird, oder einen vom Zeitschlitzzähler 454 übergebenen Zeitschlitzzählerwert aus. Der Zeiger 454 zählt die Zeitschlitzwechsel, definiert durch Zeitschlitzanfangsmarkierungen von BTDM, in Modulo 32-Form. Die FSCN-Funktion wird ausgewählt, wenn das CT-Feld in dem im voraus abgerufenen CCR einen Hyperchannel bezeichnet, andernfalls wird der Wert des Zeitschlitzzählers 454 ausgewählt.
- Eingang 455 des UND-Gatters 452 wird aktiviert, wenn die vom Decoder 456 decodierte CT-Funktion einen Hyperchanneltyp bezeichnet. Eingang 457 des UND-Gatters 452 wird aktiviert, wenn RSM_ENABLE von RSM während einer Übergangsphase aktiviert wird, die mit dem Beginn der Prozeßaktivität für den aktuellen Zeitschlitz zusammenhängt, allgemein ausgedrückt also zu einem Zeitpunkt während des Statuswechselprozesses, so daß der zuvor geschaltete Wert von RSM_TSI für die Adressierung von TSR- Bereichen nützlich ist, in denen der Status der synchronen Verarbeitung für den vorausgehenden Zeitschlitz gespeichert werden muß, und der neu geschaltete Wert des gleichen Parameters ist für die Adressierung von TSR-Bereichen nützlich, aus denen der Status für den Zeitschlitz im Zusammenhang mit dem vorausgelesenen CCR geladen werden soll.
- Ausgang 458 der Auswahlschaltung 453 wird in nicht dargestellten Schaltern geschaltet. Die gepunktete Leitungsverbindung 459 vom Ausgang des UND-Gatters 452 zum Auswahlschaltungsausgang 458 soll andeuten, daß eine solche Schalteraktivierung bzw. Deaktivierung synchron mit der Aktivierung des UND-Gatters stattfindet (insbesondere wenn RSM_ENABLE aktiv wird). Wenn der jetzt aktuelle Zeitschlitz einem aktiven Hyperchannel zugeteilt ist, hat der am Ausgang der Auswahlschaltung 453 geschaltete Wert von RSM_TSI also eine von der Auswahlschaltung 450 ausgewählte FSCN-Funktion als Referenzzeitschlitzzeiger. Wenn der aktuelle Zeitschlitz hingegen einem B/D-Kanal zugeteilt ist, entspricht der geschaltete Wert von RSM_TSI dem aktuellen Zeitschlitzzählerwert.
- Die an RSM_TSI geschaltete Funktion wird an andere Partitionen (TSR, FIFOR, INT und DMARQ) als jetzt aktuelle Zeitschlitzangabe übergeben. Die Adressierungsfunktionen in diesen Partitionen sind deshalb bei konstituierenden Zeitschlitzen eines Hyperchannels auf die Zeitposition eines Referenzzeitschlitzes bezogen, während sie sich sonst auf die durch den Zeitschlitzzähler angegebene tatsächliche Zeitposition beziehen. Wenn der Wert von RSM_TSI geschaltet wird, wird der vorige Wert in einem nicht abgebildeten Schalter gespeichert, um die Adreßparameter, die zum Speichern der Statusinformation für den vorigen Zeitschlitz benötigt werden, festzuhalten.
- Während des aktuellen Zeitschlitzes wird CCR noch einmal abgerufen (siehe Beschreibung von RSM weiter oben), und der Wert aus dem CT-Feld von CCR wird an den Decoder 460 übergeben. Wenn der CT-Wert einen H1-Hyperchannel bezeichnet, wird ein entsprechender Ausgang 461 des Decoders 460 aktiviert. Wenn der CT- Wert einen Hon-Hyperchannel (n=1-5) bezeichnet, wird eine von 5 entsprechenden Leitungen am Decoderausgang 462 aktiviert. Wenn der CT-Wert einen B/D-Kanal bezeichnet, wird ein nicht dargestellter anderer Ausgang von Decoder 460 aktiviert. Die Decoderausgänge 461 und 462 gehen als Hyperchanneltyp-Angaben RSM_DMARQ_H1 bzw. RSM_DMARQ_H0n an DMARQ, von der sie zur Übertragung von Eingangs-Anforderungsaktivierungssignalen (von RFM und TFM) und von Anforderungsrücksetzungssignalen (von DMAC) an Positionen innerhalb der DMARQ-Warteschlangen für H1- und H0- Hyperchannels benutzt werden (Einzelheiten sind der Beschreibung des DMARQ-Teils der Hyperchannel-Logik weiter unten sowie der Beschreibung der DMARQ-Partition weiter oben zu entnehmen).
- Die DMAC-Logik für die Verwendung von Hyperchannels enthält in Kaskade geschaltete Auswahlschaltungen 470 und 471. In der obigen Beschreibung der DMAC-Partition werden Funktionen dieser Auswahlschalter von der Logik mit finiten Zuständen in dieser Partition ausgeführt. Zum besseren Verständnis der Logik werden diese Funktionen hier jedoch im Zusammenhang mit diskreten Decodierungseinheiten dargestellt.
- Die Auswahlschaltung 470 empfängt als Eingangssignale die FSC- Felder von HCR. Wenn DMAC eine Hyperchannel-Anforderung verarbeitet, wird sie von DMAC_H_PTR dazu veranlaßt, das durch den H-Zeigerwert bezeichnete FSCN-Feld auszuwählen. Der H-Zeiger wird von der Maschine mit finiten Zuständen DMAC_A generiert (siehe Fig. 38 und Beschreibung von DMAC weiter oben).
- Die Auswahlschaltung 471 empfängt als Eingangssignale die Ausgangssignale von der Auswahlschaltung 470 und DMAC_B_PRT, das ebenfalls von der DMAC_A-Maschine generiert wird (Fig. 38), und wählt eines davon als Funktion seines Steuereingangssignals DMAC_H-B_SEL (das ebenfalls von der Maschine mit finiten Zuständen generiert wird) aus. Dieses Steuereingangssignal gibt an, was für eine Kanalanforderung (Hyperchannel oder B/D-Kanal) gerade von DMAC verarbeitet wird.
- DMAC wählt ausstehende Anforderungen von DMARQ nacheinander in der Reihenfolge ihrer Priorität für die DMA-Transferverarbeitung (in den IOP-Speicher; siehe oben) aus (siehe Beschreibungen von DMARQ und DMAC weiter oben). Wenn eine Anforderung zur Verarbeitung ausgewählt wird, speichert die DMAC-Logik mit finiten Zuständen ihre DMARQ-Ausgangsposition und verwendet sie zur Ermittlung der Werte von DMAC_H_PTR, DMAC_B_PTR und DMAC_H- B_SEL, die generiert werden müssen, wenn die betreffenden Anforderungen zurückgesetzt werden sollen.
- Die DMAC-Logik mit finiten Zuständen generiert auch Funktionen, die an 472 aufgeführt sind: DMAC_DMARQ_RCV_RESET, DMAC_DMARQ _-XMIT_RESET und DMAC_RCV_REQ. Die ersten beiden Funktionen werden zusammen mit den oben erwähnten H- und B-Zeigern an DMARQ übergeben, um Rücksetzungssignale an die Warteschlangenpositionen zu richten, die den Empfangs- und Sendeoperationen für den durch den H-Zähler bezeichneten Hyperchannel zugeordnet sind (siehe Beschreibung von DMARQ). DMAC_RCV_REQ wird an DMAR übergeben, um diesen für Adressierungsoperationen für Empfangsanforderungen zu konditionieren (siehe Beschreibung von DMAR weiter oben).
- Dieser Abschnitt der Hyperchannel-Logik enthält Teile der Auswahlsteuerungen und Anforderungswarteschlangen für die Verarbeitung von Hyperchannel-Anforderungen, in denen DMAC-Funktionen angefordert werden.
- Die Auswahlsteuerung 480 ist der Teil der Auswahlsteuerungen 335 in Fig. 36, der für die Verarbeitung von Hyperchannel- Anforderungen relevant ist. Die Eingangsauswahlsteuerung 481 ist der Teil der Eingangsauswahlsteuerungen 333 in Fig. 36 (Steuerungen, die für die Weiterleitung von Aktivierungs- und Rücksetzungsanforderungen an die entsprechenden Positionen in den DMARQ-Anforderungswarteschlangen verantwortlich sind) der für die Verarbeitung von Hyperchannel-Anforderungen relevant ist. Die unter 483 und 484 dargestellten Warteschlangen für H1- Hyperchannelanforderungen entsprechen den Warteschlangen 330 und 331 in Fig. 36. Die Ausgangsauswahlsteuerungen an 485 schließlich sind der Teil der Ausgangsauswahlsteuerungen 334 in Fig. 36, der für die Übergabe des Hyperchannel-Anforderungsstatus an RFM und TFM relevant ist. Die Ausgangssteuerungen 485 übergeben den Status der Anforderungswarteschlange im Zeitmultiplexing synchron mit der Verarbeitung der Kanalzeitschutze (bei Hyperchannels synchron mit der Verarbeitung der konstituierenden Zeitschlitze). Der Status von Anforderungen, die die DMA-Empfangsdatenverarbeitung betreffen, wird am DMARQ_RFM_REQ- Ausgang (der dem Ausgang 334R in Fig. 36 entspricht) an RFM übergeben, und der Status von Anforderungen, die die DMA- Sendedatenverarbeitung betreffen, wird am DMARQ_TFM_REQ-Ausgang (der dem Ausgang 334R in Fig. 36 entspricht) an TFM übergeben.
- Das folgende Szenario ist ein Beispiel für die Bildung von Hyperchannels. Anfangszustand: IDLC nicht für die Bildung von H1- Hyperchannels freigegeben (d.h. H0 ist zulässig); zur Zeit werden die BTDM-Zeitschlitze 3-7, 12-19 und 25-30 für aktive B- Kanäle und/oder einen oder mehrere (aber weniger als 5) H0- Hyperchannels verwendet.
- Der vorausgehende Status und die bisherige Verwendung lassen 13 BTDM-Zeitschlitze übrig, die anderweitig verwendet werden können (Zeitschlitze 0-2, 8-11, 20-24 und 31). Allgemein können für die Bildung von H0-Hyperchannels Gruppen von 6 Elementarzeitschlitzen verwendet werden. Die genannten verfügbaren Zeitschlitze könnten also entweder zwei H0-Hyperchannels (wenn derzeit nicht mehr als drei aktiv sind) und einem B-Kanal zugeteilt werden; alternativ können sie einem H0-Hyperchannel und sieben separaten B-Kanälen oder aber dreizehn separaten B- Kanälen zugeteilt werden. Im folgenden wird beschrieben, wie sechs der verfügbaren Zeitschlitze dynamisch einem neu konfigurierten H0-Hyperchannel im Vollduplexbetrieb zugeteilt werden können (dynamisch heißt, daß die Verarbeitung in den gerade aktiven Zeitschlitzen während der Bildung des neuen HÖ-Hyperchannels nicht unterbrochen wird).
- Zur Bildung des H0-Hyperchannels muß die lokale IOP/Host- Komplex erst mit dem fernen IOP/Host-Komplex, zu dem eine Verbindungsstrecke aufgebaut werden soll, kommunizieren (vermutlich über eine aktive D-Kanal-Signalverbindung zwischen dem lokalen und dem fernen System). Eine solche Kommunikation würde den Aufbau einer H0-Hyperchannel-Verbindung anfordern. Die Antwort vom fernen System würde signalisieren, ob dieses für eine solche Verbindung zur Verfügung steht (es würde nur dann zur Verfügung stehen, wenn es sich in einem Zustand befindet, der die Bildung von H0-Kanälen erlaubt, und noch sechs Zeitschlitze frei sind).
- Angenommen, sowohl der lokale als auch der ferne Knoten können für die Bildung eines H0-Hyperchannels konfiguriert werden und besitzen ausreichende Kapazität dafür (und haben dies auch in ihrer Kommunikation signalisiert). Der nächste Schritt wäre dann, daß der lokale IOP/Host-Komplex den fernen Knoten (über eine vorhandene Signalverbindung) anweist, eine H0-Hyperchannel zu bilden. Nach Bestätigung dieser Kommunikation würde der lokale IOP/Hostkomplex mit der Bildung eines neuen H0- Hyperchannels beginnen.
- Der erste Schritt bei der Bildung eines Hyperchannels wäre, daß der lokale IOP/Host-Komplex die CCRS für die lokalen Zeitschlitze 1, 2 und 8-11 mit den CT-Feldwerten programmiert, die diese als konstituierende Zeitschlitze eines bestimmten H0- Hyperchannels definieren; dazu wird auf die Bereiche im lokalen TSR zugegriffen, die diesen CCRs zugeordnet sind (über die lokale SIO), und die entsprechenden Informationen werden in diese Bereich geladen.
- Im nächsten Schritt muß der lokale IOP/Host-Komplex Steuerparameter in TSR, FIFOR und DMAR in Bereiche für die Referenzzeitschlitzposition laden, um den geforderten Hyperchannel-Betrieb in allen beteiligten Partitionen zu ermöglichen. Diese Ladeope- rationen erfolgen selbstverständlich über SIO und umfassen: (1) das Laden von TSR mit Zeitwechsel-Statusparametern, die für die Einleitung einer synchronen Sende- und Empfangsverarbeitung im angegebenen Hyperchannel benötigt werden; (2) das Laden von FIFOR mit den anfänglichen RDCR1- und TDCR1-Steuerparametern, die für die FIFOR-Verwaltung in diesem Hyperchannel benötigt werden; und (3) das Laden von DMAR mit den Steuerparametern RDCR3,4 und TDCR3,4, die für die Steuerung des DMAC-Zugriffs auf den IOP-Speicher und den FIFOR für den Hyperchannel benötigt werden.
- Anschließend würde der lokale IOP/Host-Komplex Bereiche in seinem Speicher für die Kommunikation über den H0-Kanal vorbereiten und eine weitere Kommunikation an den fernen IOP/Host-Komplex senden (über die vorhandene Signalverbindung), die den Abschluß der H0-Hyperchannelbildung und die Bereitschaft zur Aktivierung des neuen Hyperchannels signalisiert. Wenn der ferne IOP/Host-Komplex den gleichen Status bestätigt, würde der lokale IOP/Host-Komplex die FSCN- und H0-Felder für die H0-Nummer des neuen Hyperchannels festlegen (im HCR-Register des lokalen IDLC); der Wert im FSC-Feld wird so gesetzt, daß er auf Zeitschlitz 1 als Referenzzeitschlitz des betreffenden Hyperchannels zeigt, und das HA-Bit wird aktiviert. Vermutlich führt das ferne System gerade die gleichen Schritte aus.
- Nun ist der Prozeß abgeschlossen, und der neue Hyperchannel steht für die aktive Datenübertragung zur Verfügung.
- In den vorigen Ausführungen haben wir eine Datenübertragungs- Steuereinheit beschrieben, in der elementare Zeitmultiplex- Zeitschutze in einem geordneten Zeitmultiplexrahmen entweder einzelnen Elementarkanälen oder in Gruppen zusammengefaßt erweiterten Kanälen und Hyperchannels zugeordnet werden können. In den Zuordnungen der elementaren Zeitschlitze zu erweiterten Kanälen und Hyperchannels fungieren die zusammengefaßten Zeitschlitze effektiv als eine Einheit, die einem Referenzzeitfenster (dem zuerst erscheinenden Zeitfenster) in der Gruppe zugeordnet ist. Es wird eine logische Viele-zu-Eins-Beziehung zwischen den konstituierenden Zeitschlitzen jeder Gruppe und dem Referenzzeitschlitz hergestellt, so daß Adressierungsfunktionen, die normalerweise auf die einzelnen Zeitschlitze bezogen sind, in Adressierungsfunktionen in Bezug auf den Referenzzeitschlitz umgewandelt werden.
- Ein Vorteil dieser Umwandlung/Zuordnung besteht darin, daß sie Operationen zwischen externen Hostsystemen und dem Gerät im Zusammenhang mit der Programmierung von Steuerparametern für Hyperchannels oder erweiterte Kanäle und dem Abrufen von Interruptstatusinformationen vereinfacht. Das externe System muß dann nur noch die Steuerparameter für Hyperchannels und erweiterte Kanäle in die dem Referenzzeitschlitz zugeordneten Speicherbereiche schreiben und bei der Speicherung dieser Statusinformationen auf Speicherbereiche für den Referenzkanal verweisen.
- Diese und andere Vorteile und Aspekte der beschriebenen Vorrichtung für die Verwendung von Hyperchannels werden nun in den nachstehenden Ansprüchen definiert.
Claims (9)
1. Eine Datenübertragungs-Steuereinheit mit mehreren Kanälen,
die selektiv zugeordnet werden können, um die
Datenübertragung zwischen einem Datenübertragungsnetzwerk 1 und einem
Datenverarbeitungssystem 3 durchzuführen, wobei eine
ausgewählte Gruppe dieser Kanäle als einzelner erweiterter Kanal
mit größerer Bandbreite fungieren kann, und
mit einem ersten Mittel 53 CCR-CT zur Kennzeichnung mehrerer
ausgewählter Kanäle als Bestandteile eines solchen Kanals;
dadurch gekennzeichnet, daß die Steuereinheit außerdem
folgende Elemente enthält:
ein zweites Mittel 67 HCR-FSC zur Kennzeichnung eines
ausgewählten Einzelkanals des erweiterten Kanals als
Referenzkamal;
Mittel 53, 63 zur Speicherung von Steuerdaten (CCR, HPCR,
CEISR, EOPISR) zu dem Referenzkanal, um Operationen, die die
Einzelkanäle des erweiterten Kanals betreffen, zu steuern;
und mit dem ersten und zweiten Kennzeichnungsmittel
gekoppelte Mittel 450, 458, um im Verlauf von
Datenübertragungsoperationen über einen der Einzelkanäle auf die Steuerdaten
zu verweisen.
2. Eine Steuereinheit gemäß Anspruch 1, bei der das zweite
Kennzeichnungsmittel ein Register 67 HCR in der
Steuereinheit umfaßt.
3. Eine Steuereinheit gemäß Anspruch 2, bei der das
Datenverarbeitungssystem auf das Register zugreifen kann, um durch
Programmierung einen Referenzkanal auszuwählen.
4. Eine Steuereinheit gemäß Anspruch 2, die so angepaßt werden
kann, daß sie gleichzeitig mehrere erweiterte Kanäle mit
unterschiedlichen Einzelkanälen steuern kann, wobei das
Register mehrere Abschnitten für die jeweiligen erweiterten
Kanäle umfaßt, um Referenzkanäle für die jeweiligen
erweiterten Kanäle zu bezeichnen.
5. Eine Steuereinheit gemäß den vorigen Ansprüchen, bei der
die Kanäle Zeitmultiplexkanäle mit Zeitfenstern N, N+1, die
an vorgegebenen Positionen in zyklisch wiederkehrenden
Zeitmultiplexrahmen erscheinen, sind;
die Steuereinheit Mittel 63 zur Generierung numerischer
Zeitfensterpositionsangaben (RSM-RS1) synchron mit dem
Auftreten der Zeitfenster besitzt, wobei diese Angaben
Positionen wiederkehrender Zeitfenster im Rahmen bezeichnen;
das Speicherungsmittel einen adressierbaren RAM 53 mit
Speicherbereichen speziell für einzelne Zeitfensterpositionen im
Rahmen umfaßt;
das erste Kennzeichnungsmittel Speicherbereiche in diesem
RAM enthält, die speziell den Einzelkanälen zugeordnet sind,
und das Mittel zum Verweisen auf die Steuerdaten außerdem
folgendes enthält:
Mittel 450, 458, durch die während des Auftretens der den
Einzelkanälen zugeordneten Zeitfenster die
Zeitfensterpositionsangaben in Angaben zu der dem Referenzkanal
zugeordneten Zeitposition umgewandelt werden, wobei Operationen, die
den RAM betreffen, während der den Einzelkanälen
zugeordneten Zeitfenster an den dem Referenzkanalzeitfenster
zugeordneten Bereich des RAM geleitet werden.
6. Eine Steuereinheit gemäß Anspruch 5, bei der eine
unterschiedliche Anzahl von Einzelkanälen ausgewählt und zu einem
erweiterten Kanal variabler Größe kombiniert werden können,
und die den Einzelkanälen zugeordneten Zeitfenster sich an
nicht aufeinanderfolgenden Positionen im Rahmen befinden
können, so daß ein Zeitfenster zwischen zwei dem Einzelkanal
zugeordneten Zeitfenstern auch ein Zeitfenster sein kann,
das keinem Einzelkanal zugeordnet ist.
7. Eine Steuereinheit gemäß Anspruch 5, die außerdem folgendes
enthält:
ein an das Mittel zur Umwandlung der Zeitfensterangabe
gekoppeltes Mittel 62, das synchron mit dem Auftreten der den
Einzelkanälen zugeteilten Zeitfenstern arbeitet, um
Verarbeitungsaufgaben, die die zwischen den Einzelkanälen und dem
Netzwerk übertragenen Daten betreffen, effektiv so
auszuführen, als würden alle diese Daten durch den Referenzkanal
geleitet; wobei dieses Ausführungsmittel Mittel enthält, die
auf Steuerdaten reagieren, die im RAM für den Referenzkanal
gespeicher sind, um die Durchführung der die übertragenen
Daten betreffenden Aufgaben bezüglich der Einzelkanäle zu
koordinieren, wobei die Steuerdaten, auf die das
Ausführungsmittel reagiert, mittels Adressierungsfunktionen
abgerufen
werden, welche vom Mittel zur Umwandlung der
Zeitfensterpositionsangabe generiert werden.
8. Eine Steuereinheit gemäß Anspruch 7, bestehend aus:
einer Schnittstelle zum Anschluß der Steuereinheit an einen
parallelen Datenübertragungsbus 7, der an das
Datenverarbeitungssystem und an einen dem System zugeordneten
adressierbaren Arbeitsspeicher 13 angeschlossen ist;
einem zwischen die Busschnittstelle und das
Ausführungsmittel geschalteten DMA-Steuerungsmittel 65C zur Übertragung
der Daten zwischen dem Ausführungsmittel und den
zugeordneten Arbeitsspeicher über die Busschnittstelle, wobei das
DMA-Steuerungsmittel asynchron zu den den Einzelkanälen
zugeordneten Zeitfenstern und in einem DMA-Modus
(Direktzugriffsmodus) bezüglich des zugeordneten Speichers
arbeitet, um Daten für den erweiterten Kanal und den
Arbeitsspeicher zu übertragen; und
einem zwischen das Ausführungsmittel und das
DMA-Steuerungsmittel geschalteten Mittel 65Q zur Einreihung von
Anforderungen in eine Warteschlange, um
Datenübertragungsanforderungen vom Ausführungsmittel während der Zeitfenster zu
empfangen und zu speichern, und um die gespeicherten
Anforderungen dem DMA-Steuerungsmittel auf asynchroner Basis zu
präsentieren; wobei das Warteschlangenmittel Anforderungen,
die die Einzelkanäle betreffen, in einer Warteschlange
speichert, die dem Referenzkanal zugeordnet ist, wo sie von
Anforderungen, die von den Einzelkanälen verschiedene Kanäle
betreffen, getrennt sind.
9. Eine Steuereinheit gemäß Anspruch 8, bei der das
Warteschlangenmittel folgendes enthält:
ein mit dem DMA-Steuerungsmittel interagierendes Mittel zur
selektiven Rücksetzung der in die Warteschlange gestellten
Anforderungen nach deren Abarbeitung durch das DMA-
Steuerungsmittel; und
ein mit dem Mittel zur Umwandlung der Zeitfensterposition
interagierendes Mittel( um dem Ausführungsmittel in
Zeitfenstern erscheinende Angaben über den Aktivierungs- oder
Rücksetzungsstatus von Anforderungen in der Warteschlange zu
präsentieren; wobei das letztere Mittel mit Bezug auf die
separat in die Warteschlange gestellten Anforderungen für
den Referenzkanal arbeitet, um die jeweiligen
Zeitfensterangaben in dem Zeitfenster zu positionieren, das dem
Referenzkanal zugeteilt ist, so daß die betreffende Angabe einem
erweiterten Kanal als Ganzem und nicht seinen Einzelkanälen
zugeordnet ist.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US07/495,821 US5206933A (en) | 1990-03-15 | 1990-03-15 | Data link controller with channels selectively allocatable to hyper channels and hyper channel data funneled through reference logical channels |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| DE69123769D1 DE69123769D1 (de) | 1997-02-06 |
| DE69123769T2 true DE69123769T2 (de) | 1997-07-17 |
Family
ID=23970119
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE69123769T Expired - Fee Related DE69123769T2 (de) | 1990-03-15 | 1991-02-25 | Integrierte Datenübertragungsstreckensteuerung mit dynamischer Hyperchannelzuteilung |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US5206933A (de) |
| EP (1) | EP0447053B1 (de) |
| JP (1) | JPH0779364B2 (de) |
| CA (1) | CA2035696C (de) |
| DE (1) | DE69123769T2 (de) |
Families Citing this family (58)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH04350737A (ja) * | 1991-05-29 | 1992-12-04 | Nec Corp | マイクロコンピュータ |
| US5644712A (en) * | 1991-06-05 | 1997-07-01 | International Business Machines Corporation | Indirect addressing of channels via logical channel groups |
| US5267240A (en) * | 1992-02-20 | 1993-11-30 | International Business Machines Corporation | Frame-group transmission and reception for parallel/serial buses |
| CA2135681C (en) * | 1993-12-30 | 2000-01-18 | Srinivas V. Makam | System and method for directly accessing long-term memory devices |
| JPH07264186A (ja) * | 1994-03-16 | 1995-10-13 | Fujitsu Ltd | 監視制御データリンク制御方式 |
| JP2561022B2 (ja) * | 1994-05-25 | 1996-12-04 | 日本電気株式会社 | 宛先アドレスによる送信チャネル選択システム |
| JP3172387B2 (ja) * | 1994-06-01 | 2001-06-04 | インターナショナル・ビジネス・マシーンズ・コーポレ−ション | 入出力通信サブシステム及び方法 |
| JPH08149104A (ja) * | 1994-11-17 | 1996-06-07 | Nec Corp | 時分割多重通信方式 |
| US5864712A (en) * | 1995-03-17 | 1999-01-26 | Lsi Logic Corporation | Method and apparatus for controlling (N+I) I/O channels with (N) data managers in a homogenous software programmable environment |
| DE69614291T2 (de) * | 1995-03-17 | 2001-12-06 | Lsi Logic Corp., Fort Collins | (n+i) Ein/Ausgabekanälesteuerung, mit (n) Datenverwaltern, in einer homogenen Software-Programmierbetriebsumgebung |
| US5659756A (en) * | 1995-03-31 | 1997-08-19 | International Business Machines Corporation | Method and system for providing access to logical partition information on a per resource basis |
| GB2301756B (en) * | 1995-06-02 | 2000-01-19 | Dsc Communications | Multi-channel digital data transmission in a wireless telecommunication system |
| GB2301755B (en) * | 1995-06-02 | 2000-01-12 | Dsc Communications | Multiline wireless transmission in a wireless telecommunications system |
| US5694556A (en) * | 1995-06-07 | 1997-12-02 | International Business Machines Corporation | Data processing system including buffering mechanism for inbound and outbound reads and posted writes |
| US5793983A (en) * | 1996-01-22 | 1998-08-11 | International Business Machines Corp. | Input/output channel interface which automatically deallocates failed subchannel and re-segments data block for transmitting over a reassigned subchannel |
| US6279098B1 (en) * | 1996-12-16 | 2001-08-21 | Unisys Corporation | Method of and apparatus for serial dynamic system partitioning |
| US5894586A (en) * | 1997-01-23 | 1999-04-13 | Xionics Document Technologies, Inc. | System for providing access to memory in which a second processing unit is allowed to access memory during a time slot assigned to a first processing unit |
| FR2767003B1 (fr) * | 1997-07-31 | 1999-11-19 | Sqware T | Controleur de protocole de transmission de donnees numeriques hdlc |
| US5968158A (en) * | 1997-10-06 | 1999-10-19 | International Business Machines Corporation | Apparatus including a host processor and communications adapters interconnected with a bus, with improved transfer of interrupts between the adapters and host processor |
| US6122356A (en) * | 1997-11-13 | 2000-09-19 | Northern Telecom Limited | Concurrent state machine space in a telecommunications network |
| US6052455A (en) * | 1997-11-13 | 2000-04-18 | Northern Telecom Limited | Universal data structure for use with a concurrent state machine space in a telecommunications network |
| US6373848B1 (en) | 1998-07-28 | 2002-04-16 | International Business Machines Corporation | Architecture for a multi-port adapter with a single media access control (MAC) |
| US6154796A (en) * | 1998-09-03 | 2000-11-28 | Advanced Micro Devices, Inc. | Apparatus and method in a network interface device for storing receiving frame status in a holding register |
| US6560652B1 (en) * | 1998-11-20 | 2003-05-06 | Legerity, Inc. | Method and apparatus for accessing variable sized blocks of data |
| US6842459B1 (en) | 2000-04-19 | 2005-01-11 | Serconet Ltd. | Network combining wired and non-wired segments |
| US6665760B1 (en) * | 2000-09-29 | 2003-12-16 | Rockwell Automation Technologies, Inc. | Group shifting and level shifting rotational arbiter system |
| GB2402236B (en) * | 2003-05-27 | 2005-04-27 | Simon Alan Spacey | A method and apparatus for securing a computer system |
| US7486688B2 (en) * | 2004-03-29 | 2009-02-03 | Conexant Systems, Inc. | Compact packet switching node storage architecture employing Double Data Rate Synchronous Dynamic RAM |
| US20060004904A1 (en) * | 2004-06-30 | 2006-01-05 | Intel Corporation | Method, system, and program for managing transmit throughput for a network controller |
| US7613840B2 (en) * | 2006-08-17 | 2009-11-03 | General Electric Company | Methods and apparatus for dynamic data acquisition configuration parameters |
| US8068466B2 (en) * | 2007-07-20 | 2011-11-29 | Texas Instruments Incorporated | Transmission of multiple information elements in multiple channels |
| CN105610751B (zh) | 2007-12-19 | 2019-07-23 | 福尔肯纳米有限公司 | 用于提高通信速度、频谱效率并实现其他益处的公共波形和边带抑制通信系统和方法 |
| US8751881B1 (en) * | 2009-11-06 | 2014-06-10 | Brocade Communications Systems, Inc. | Transmission buffer under-run protection |
| US20110153518A1 (en) * | 2009-12-17 | 2011-06-23 | American Express Travel Related Services Company, Inc. | System and method for enabling product development |
| US20110153444A1 (en) * | 2009-12-17 | 2011-06-23 | American Express Travel Related Services Company, Inc. | System and method for registering users for an ip marketplace |
| US8667082B2 (en) | 2009-12-17 | 2014-03-04 | American Express Travel Related Services Company, Inc. | System and method for targeting channels to users |
| US20110153573A1 (en) * | 2009-12-17 | 2011-06-23 | American Express Travel Related Services Company, Inc. | System and method for valuing an ip asset based upon patent quality |
| US20110153851A1 (en) * | 2009-12-17 | 2011-06-23 | American Express Travel Related Services Company, Inc. | System and method for adjusting intake based on intellectual property asset data |
| US8942998B2 (en) | 2009-12-17 | 2015-01-27 | American Express Travel Related Services Company, Inc. | System and method for enabling channel community ratings in an IP marketplace |
| US20110153473A1 (en) * | 2009-12-17 | 2011-06-23 | American Express Travel Related Services Company, Inc. | System and method for managing royalty payments |
| US20110153434A1 (en) * | 2009-12-17 | 2011-06-23 | American Express Travel Related Services Company, Inc. | System and method for merchandising intellectual property assets |
| US20110153852A1 (en) * | 2009-12-17 | 2011-06-23 | American Express Travel Related Services Company, Inc. | System and method for valuing and rating intellectual property assets |
| US9037733B2 (en) * | 2009-12-17 | 2015-05-19 | American Express Travel Related Services Company, Inc. | System and method for enabling product development |
| US8977761B2 (en) * | 2009-12-17 | 2015-03-10 | American Express Travel Related Services Company, Inc. | System and method for enabling product development |
| US20110154476A1 (en) * | 2009-12-17 | 2011-06-23 | American Expres Travel Related Services Company, Inc. | System and method for collecting and validating intellectual property asset data |
| US20110154451A1 (en) * | 2009-12-17 | 2011-06-23 | American Express Travel Related Services Company, Inc | System and method for for an industry based template for intellectual property asset data |
| US20110153552A1 (en) * | 2009-12-17 | 2011-06-23 | American Express Travel Related Services Company, Inc. | System and method for standardizing ip transactions |
| US8346899B2 (en) * | 2010-03-01 | 2013-01-01 | Broadcom Corporation | Method and system for NIC-centric hyper-channel distributed network management |
| FR3011420A1 (fr) * | 2013-09-30 | 2015-04-03 | Orange | Gestion amelioree des connexions reseau |
| JP6415385B2 (ja) * | 2015-05-27 | 2018-10-31 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
| US9892071B2 (en) * | 2015-08-03 | 2018-02-13 | Pure Storage, Inc. | Emulating a remote direct memory access (‘RDMA’) link between controllers in a storage array |
| TWI615853B (zh) * | 2016-05-18 | 2018-02-21 | 瑞昱半導體股份有限公司 | 記憶體裝置、記憶體控制器與其控制方法 |
| US11016972B2 (en) | 2018-01-26 | 2021-05-25 | Vmware, Inc. | Splitting a time-range query into multiple sub-queries for serial execution |
| US11144570B2 (en) | 2018-01-26 | 2021-10-12 | Vmware, Inc. | Data ingestion by distributed-computing systems |
| US10860576B2 (en) | 2018-01-26 | 2020-12-08 | Vmware, Inc. | Splitting a query into native query operations and post-processing operations |
| US10812332B2 (en) * | 2018-02-28 | 2020-10-20 | Vmware Inc. | Impartial buffering in stream processing |
| US10949390B2 (en) | 2018-03-19 | 2021-03-16 | Vmware Inc. | Asynchronous queries on secondary data cores in a distributed computing system |
| CN111769998B (zh) * | 2019-08-13 | 2022-07-05 | 北京京东尚科信息技术有限公司 | 一种网络时延状态的探测方法及装置 |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4188665A (en) * | 1977-11-29 | 1980-02-12 | International Business Machines Corporation | Programmable communications subsystem |
| US4156796A (en) * | 1977-11-29 | 1979-05-29 | International Business Machines Corporation | Programmable data processing communications multiplexer |
| US4577312A (en) * | 1984-07-05 | 1986-03-18 | At&T Bell Laboratories | Arrangement for wideband transmission via a switched network |
| CA1262274A (en) * | 1986-06-20 | 1989-10-10 | Randall D. Kun | Isdn d channel handler |
| US4852089A (en) * | 1987-10-01 | 1989-07-25 | Data General Corporation | Methods and apparatus for allocating time slots and fragments on communications lines between adjacent nodes in a high granularity switching system |
| EP0325794B1 (de) * | 1987-12-28 | 1995-03-22 | Nec Corporation | ISDN-System mit einem Teilnehmerleitungsmultiplexer zum Herstellen von verschiedenen D-Kanal-Datenverbindungen |
| US4870641A (en) * | 1988-03-30 | 1989-09-26 | Bell Communications Research, Inc. | Multichannel bandwidth allocation |
| US5012489A (en) * | 1988-11-07 | 1991-04-30 | Hayes Microcomputer Products, Inc. | Method for sending a plurality of data channels over a single communications line |
| JPH02161854A (ja) * | 1988-12-14 | 1990-06-21 | Hitachi Ltd | 伝送制御手順選択方式 |
| US5051982A (en) * | 1989-07-27 | 1991-09-24 | Data General Corporation | Methods and apparatus for implementing switched virtual connections (SVCs) in a digital communications switching system |
-
1990
- 1990-03-15 US US07/495,821 patent/US5206933A/en not_active Expired - Fee Related
-
1991
- 1991-02-05 CA CA002035696A patent/CA2035696C/en not_active Expired - Fee Related
- 1991-02-25 EP EP91301498A patent/EP0447053B1/de not_active Expired - Lifetime
- 1991-02-25 DE DE69123769T patent/DE69123769T2/de not_active Expired - Fee Related
- 1991-03-05 JP JP3062422A patent/JPH0779364B2/ja not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| JPH0779364B2 (ja) | 1995-08-23 |
| CA2035696C (en) | 1995-04-18 |
| EP0447053B1 (de) | 1996-12-27 |
| EP0447053A2 (de) | 1991-09-18 |
| EP0447053A3 (en) | 1993-03-17 |
| DE69123769D1 (de) | 1997-02-06 |
| JPH04220848A (ja) | 1992-08-11 |
| US5206933A (en) | 1993-04-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE69123769T2 (de) | Integrierte Datenübertragungsstreckensteuerung mit dynamischer Hyperchannelzuteilung | |
| DE69130714T2 (de) | Integrierte Datenübertragungsstreckensteuerung mit synchroner Leitungsschnittstelle und asynchroner Host-Prozessor-Schnittstelle | |
| DE69132648T2 (de) | Integrierte Daten-Übertragungsstrecken-Steuerung mit autonomen logischen Elementen | |
| DE69329684T2 (de) | Vorrichtung mit hauptrechnerindikationssignalen | |
| DE3856486T2 (de) | Einzelpaketmeldung in einer Datenverbindungssteuereinrichtung | |
| DE69533981T2 (de) | Multimedia-multiplexvorrichtung und verfahren mit dynamischer paketsegmentierung | |
| DE69332328T2 (de) | Paketschalter mit grosser Bandbreite | |
| DE3855630T2 (de) | Hybrider Übertragungsverbindungsadapter mit Ein-/Ausgabe- und Datenübertragungstechnologie | |
| DE69505871T2 (de) | Taktfehlererkennungsschaltung | |
| DE3788319T2 (de) | Multiprozessor-Unterbrechungsumleitungsmechanismus. | |
| US6092116A (en) | DMA controller with response message and receive frame action tables | |
| DE3642019C2 (de) | ||
| JPH05136847A (ja) | バースト時分割多重インタフエース | |
| EP1846827B1 (de) | Verfahren zum übertragen von daten in botschaften über eine kommunikationsverbindung eines kommunikationssystems, sowie kommunikationsbaustein, teilnehmer eines kommunikationssystems und kommunikationssystem zur realisierung dieses verfahrens | |
| DE69014949T2 (de) | Vorrichtung zur Verarbeitung von Signalisierungsnachrichten in einem asynchronen Zeitkommunikationsnetz. | |
| DE3586491T2 (de) | Kohaerentes interface mit zurueckgeschleiftem empfangsspeicher. | |
| DE3889962T2 (de) | Vorrichtung und Verfahren zur Durchführung der Datenübertragung als Folge von Betriebszuständen in einem Kommunikationssystem. | |
| DE69024754T2 (de) | Verfahren und Anordnung für Geschwindigkeitsanpassung für das dienstintegrierende digitale Nachrichtennetz (ISDN) | |
| DE3685587T2 (de) | Pseudosynchrone transportvorrichtung in einem kommunikationsnetz. | |
| DE69535152T2 (de) | Integrierte Netzvermittlung, die einen grossen Bereich von Funktionen unterstützt | |
| DE60124869T2 (de) | Vermittlungssystem und verfahren mit niedrigerer und deterministischen verzögerung | |
| DE69917639T2 (de) | Anordnung zur verarbeitung von sonet- oder SDH-DS0-Rahmen zur Kanalzurordnung | |
| EP0539540A1 (de) | Anordnung zum anschliessen eines rechners an ein fernmeldenetz sowie ein verfahren zur bitratenadaption in dieser anordnung. | |
| DE69013327T2 (de) | Pakete-/schnelle-pakete-vermittlung für sprache und daten. | |
| DE69107929T2 (de) | Fernmeldesteuerungsanordnung zwischen einem Rechner und einer Mehrheit von ISDN-artigen Endgeräten. |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 8364 | No opposition during term of opposition | ||
| 8339 | Ceased/non-payment of the annual fee |