DE69132648T2 - Integrierte Daten-Übertragungsstrecken-Steuerung mit autonomen logischen Elementen - Google Patents
Integrierte Daten-Übertragungsstrecken-Steuerung mit autonomen logischen ElementenInfo
- Publication number
- DE69132648T2 DE69132648T2 DE69132648T DE69132648T DE69132648T2 DE 69132648 T2 DE69132648 T2 DE 69132648T2 DE 69132648 T DE69132648 T DE 69132648T DE 69132648 T DE69132648 T DE 69132648T DE 69132648 T2 DE69132648 T2 DE 69132648T2
- Authority
- DE
- Germany
- Prior art keywords
- data
- state
- channel
- channels
- bit
- 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 - Lifetime
Links
- 230000015654 memory Effects 0.000 claims description 383
- 238000012545 processing Methods 0.000 claims description 258
- 238000012546 transfer Methods 0.000 claims description 225
- 230000005540 biological transmission Effects 0.000 claims description 176
- 239000000872 buffer Substances 0.000 claims description 132
- 238000000034 method Methods 0.000 claims description 130
- 230000008569 process Effects 0.000 claims description 122
- 238000003860 storage Methods 0.000 claims description 89
- 230000004044 response Effects 0.000 claims description 44
- 238000011068 loading method Methods 0.000 claims description 19
- 238000013500 data storage Methods 0.000 claims description 16
- 230000008859 change Effects 0.000 claims description 11
- 238000007726 management method Methods 0.000 claims description 10
- 230000003111 delayed effect Effects 0.000 claims description 4
- 125000004122 cyclic group Chemical group 0.000 claims description 3
- 239000004065 semiconductor Substances 0.000 claims description 3
- 108091006146 Channels Proteins 0.000 description 817
- 239000013598 vector Substances 0.000 description 179
- 230000006870 function Effects 0.000 description 134
- 230000007704 transition Effects 0.000 description 100
- 230000009471 action Effects 0.000 description 85
- 230000001360 synchronised effect Effects 0.000 description 52
- 240000007320 Pinus strobus Species 0.000 description 46
- 238000001514 detection method Methods 0.000 description 41
- 230000015572 biosynthetic process Effects 0.000 description 36
- 230000000694 effects Effects 0.000 description 35
- 238000010586 diagram Methods 0.000 description 26
- 238000004364 calculation method Methods 0.000 description 25
- 239000011159 matrix material Substances 0.000 description 23
- 238000010200 validation analysis Methods 0.000 description 22
- 238000013507 mapping Methods 0.000 description 20
- 230000011664 signaling Effects 0.000 description 14
- 230000004913 activation Effects 0.000 description 13
- 238000001994 activation Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 12
- 238000012790 confirmation Methods 0.000 description 12
- 238000003780 insertion Methods 0.000 description 10
- 230000037431 insertion Effects 0.000 description 10
- 230000008901 benefit Effects 0.000 description 9
- 230000002457 bidirectional effect Effects 0.000 description 9
- 238000013461 design Methods 0.000 description 8
- 230000002123 temporal effect Effects 0.000 description 8
- 238000006243 chemical reaction Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 238000012544 monitoring process Methods 0.000 description 5
- 230000036961 partial effect Effects 0.000 description 5
- 238000002360 preparation method Methods 0.000 description 5
- 230000003139 buffering effect Effects 0.000 description 4
- 230000001143 conditioned effect Effects 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000000977 initiatory effect Effects 0.000 description 4
- 230000008054 signal transmission Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 206010009944 Colon cancer Diseases 0.000 description 3
- 206010000210 abortion Diseases 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 3
- 230000009849 deactivation Effects 0.000 description 3
- 238000009432 framing Methods 0.000 description 3
- XZWYZXLIPXDOLR-UHFFFAOYSA-N metformin Chemical compound CN(C)C(=N)NC(N)=N XZWYZXLIPXDOLR-UHFFFAOYSA-N 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 230000000717 retained effect Effects 0.000 description 3
- 230000009131 signaling function Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000036962 time dependent Effects 0.000 description 3
- 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 2
- 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 compound CC1=NC(N)=NC(=O)N1[C@@H]1O[C@H](CO)[C@@H](O)C1 ATTRMYMZQWIZOR-RRKCRQDMSA-N 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000011049 filling Methods 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 230000003862 health status Effects 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 229910044991 metal oxide Inorganic materials 0.000 description 2
- 230000001343 mnemonic effect Effects 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 238000004117 rotating field mass spectrometry Methods 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 102100036409 Activated CDC42 kinase 1 Human genes 0.000 description 1
- 101100288236 Arabidopsis thaliana KRP4 gene Proteins 0.000 description 1
- 101100315397 Arabidopsis thaliana TSO1 gene Proteins 0.000 description 1
- 101100433979 Bos taurus TNK2 gene Proteins 0.000 description 1
- 101100412394 Drosophila melanogaster Reg-2 gene Proteins 0.000 description 1
- 101000928956 Homo sapiens Activated CDC42 kinase 1 Proteins 0.000 description 1
- 101100260765 Schizosaccharomyces pombe (strain 972 / ATCC 24843) tls1 gene Proteins 0.000 description 1
- 101100385394 Zea mays ACK2 gene Proteins 0.000 description 1
- 231100000176 abortion Toxicity 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000009118 appropriate response Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000005429 filling process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000007774 longterm 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
- 239000003550 marker Substances 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000036316 preload Effects 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 238000004540 process dynamic Methods 0.000 description 1
- 230000007420 reactivation Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 238000013519 translation Methods 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/28—Timers or timing mechanisms used in 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)
- Communication Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
- Time-Division Multiplex Systems (AREA)
Description
- Diese Erfindung betrifft Datenübertragungs-Steuereinheiten für Hochgeschwindigkeits-Telekommunikationsnetzwerke, insbesondere Einheiten zur Durchführung von Verbindungssteuerungsfunktionen in Bezug auf unterschiedlich konfigurierte Netzwerkkanäle und zur Hochgeschwindigkeitsübertragung von Informationen zwischen Netzwerkverbindungen und Datenverarbeitungssystemen. Genauer gesagt, die Erfindung betrifft Einheiten dieser Art, die über eine größere Vielseitigkeit und eine höhere Durchsatzrate verfügen als vergleichbare moderne Einheiten und die sich besonders für den Einsatz in Netzwerken eignen, die sowohl Sprach- als auch Datensignale mit sehr hohen Geschwindigkeiten übertragen; d. h. insbesondere, aber nicht ausschließlich Netzwerke, die gemäß internationalen Spezifikationen für Protokolle für das Dienste integrierende digitale Netz (ISDN) arbeiten.
- Die Erfindung betrifft ferner Einheiten der vorstehenden Art, die mit moderner CMOS-Technologie zweckmäßig und wirtschaftlich auf einem einzigen dichtgepackten Halbleiterchip untergebracht werden können. Aufgrund dieser letztgenannten Eigenschaft und bestimmter Fähigkeiten, die die Integration von Funktionen ermöglichen, werden solche Einheiten derzeit als integrierte Datenübertragungssteuer- (oder IDLC-)Einheiten bezeichnet.
- Vergleichbare Kommunikations-Datenübertragungssteuereinheiten - wie sie in den US-Patentschriften 4 493 051 und 4 504 901 offen gelegt sind, die an den Rechtsnachfolger der vorliegenden Anmeldung übertragen wurden - stellen flexible modulare Schnittstellen zwischen Leitungen in einem Datenfernverarbeitungsnetzwerk und Host-Prozessoren bereit, die über die Fähigkeit verfügen, unterschiedliche Übertragungsgeschwindigkeiten, Modemschnittstellen und Kommunikationsprotokolle (z. B. SDLC, BSC usw.) auf jeder Leitung selektiv zu unterstützen. Eine jede solche Einheit soll eine Vielzahl von verschiedenen Einheiten oder Anzahl von Teilen ersetzen, die andernfalls notwendig wären, um diese verschiedenen Übertragungsgeschwindigkeiten, Modemschnittstellen und Protokolle zu unterstützen.
- Die Europäische Patentanmeldung EP 323 222 beschreibt ein System zum Senden und Empfangen eines HDLC-Datenrahmens auf einem Zeitmultiplex-Übertragungspfad. Das beschriebene System enthält einen Speicher, dessen Speicherbereiche einzelnen Zeitmultiplexschlitzen fest zugeordnet sind, um Daten und Steuerinformationen zu speichern, die zu den Schlitzen gehören, und eine Schnittstelle, um Daten von dem Speicher an ein Datenverarbeitungssystem zu übertragen. Eine ähnliche Anordnung ist in der Europäischen Patentschrift EP 346 555 beschrieben.
- Ein Aspekt der vorliegenden Erfindung ist die derzeitige Erkenntnis, dass solche vergleichbaren Einheiten nicht offensichtliche und vermeidbare Einschränkungen oder Abhängigkeiten, sowohl extern als auch intern, aufweisen, die ihre Leistungsfähigkeit tendenziell begrenzen oder einschränken. Da die Signalisierungsgeschwindigkeiten in Netzwerken weiterhin ständig zunehmen werden (und bei diesem Trend scheint kein Ende in Sicht zu sein), werden Einheiten von dem Typ, der hier betrachtet wird, die Anforderungen an den Durchsatz und die Leistungsfähigkeit zukünftig erfüllen müssen, die vergleichbare moderne Einheiten nicht erfüllen können.
- Externe Abhängigkeiten, auf die vorstehend Bezug genommen wurde, rühren von den Anforderungen an die Busübertragung in Echtzeit bezogen auf externe Mikroprozessoren her und scheinen sich als Folge der damals verwendeten Architektur einschließlich der Weise, in der die Funktionen zwischen der Einheit und externen Systemen verteilt wurden, sowie der Tiefe oder der Kapazität des Pufferspeichers entwickelt zu haben, der der Einheit lokal zur Verfügung stand (um Informationen in die Warteschlange zustellen, die zwischen der Einheit und externen Systemen unterwegs waren).
- Die oben genannten internen Abhängigkeiten sind das Ergebnis des funktionsbedingten Aufbaus der internen Logik in diesen dem Stand der Technik entsprechenden Einheiten wie einer einzelnen zusammenhängenden Verarbeitungskomponente, deren grundlegende Operationstaktzyklen eng mit Leitungs- oder Kanalabfrageperioden an der Netzwerkschnittstelle abgestimmt werden. Typischerweise kann eine solche Logik nur eine einzige diskrete Funktion in einem beliebigen Operationstaktzyklus ausführen, und in einer beliebigen Kanalabfrageperiode (die sich über viele Basiszyklen erstreckt) ist dieselbe Logik auf Verarbeitungsfunktionen in Verbindung mit dem Empfang oder dem Versenden eines einzelnen Datenbits in Bezug auf den Kanal, der gerade abgefragt wird, beschränkt. Nachdem sie externe Anforderungen für Maßnahmen in Bezug auf einen bestimmten Netzwerkkanal eingeleitet hat, muss diese Logik während der entsprechenden Abfrageperiode außerdem Übertragungen von zugehörigen Informationen (von Übertragungsdaten sowie von Unterbrechungsereignis-Statusinformationen) abschließen, um Signale an und von diesem Kanal zu übertragen. Diese Beschränkungen haben die Dauer von notwendigen Abfrageperioden gewöhnlich unangemessen in die Länge gezogen und dadurch die höchstmöglichen Signaldurchsatzraten begrenzt, denen solche Einheiten in Bezug auf Netzwerke und Funktionen, die diese Einheiten ausführen können (z. B. in Bezug auf gemischte Sprach- und Datenkanäle), standhalten können.
- Gemäß der vorliegenden Erfindung wird nun eine Datenübertragungssteuereinheit zum Anschluss zwischen einer Zeitmultiplex-Datenübertragungsnetzwerkschnittstelle und einem Datenverarbeitungssystem bereitgestellt, wobei die Daten an der Schnittstelle in zyklisch wiederkehrenden Zeitmultiplexschlitzen übertragen werden, die mehreren Vollduplex-Übertragungskanälen zugeteilt werden können, wobei die Einheit Folgendes umfasst: Speichermittel, die Speicherbereiche haben, von denen jeder einem getrennten wiederkehrenden Zeitmultiplexschlitz in dem Netzwerk fest zugeordnet ist, wobei die Speicherbereiche Datenspeicherwarteschlangen enthalten, welche für jeweilige Schlitze und Steuerinformationen reserviert sind, die Operationen der Einheit in Bezug auf Übertragungskanäle angeben, die den Schlitzen zugewiesen werden können; und ein Mittel, das mit den Speichermitteln und dem Datenverarbeitungssystem verbunden ist, um Daten in Bezug auf die Kanäle zwischen jeweiligen Datenspeicherbereichen und dem Datenverarbeitungssystem zu übertragen; dadurch gekennzeichnet, dass die Einheit Folgendes umfasst: mehrere autonome Logikschaltungselemente, die zwischen dem Netzwerk und den Speichermitteln hintereinander geschaltet sind, um in Bezug auf die Kanäle eine mehrstufige Datenverarbeitungspipeline zu bilden, wobei die Pipeline synchron mit den Schlitzen arbeitet, um Übertragungsdaten von jeweiligen Kanälen zwischen jeweiligen Schlitzen und Datenspeicherwarteschlangen zu transportieren, wobei die Stufen in der Pipeline selektiv verschiedene Verarbeitungstasks an den Daten ausführen, während diese transportiert werden; wobei jedes der Elemente eine getrennte Stufe in der Pipeline bildet, wobei die Pipeline in Bezug auf jeden Kanal eine Multitasking-Anordnung und in Bezug auf alle Kanäle eine Mehrprozess- und Multitasking-Anordnung bildet; wobei die Pipeline getrennte Sendepipeline- und Empfangspipeline-Abschnitte umfasst, die durch getrennte Konfigurationen von autonomen Elementen gebildet werden, wobei die Pipeline-Abschnitte auf jeden Kanal bezogene Übertragungsdaten in entgegengesetzte Richtungen zwischen den Netzwerkzeitschlitzen und den Datenspeicherwarteschlangen transportieren und selektiv Verarbeitungsoperationen an Daten in den Kanälen durchführen, während die Daten transportiert werden; wobei die Kanäle dynamisch konfiguriert werden können, um Daten in einer Vielzahl von verschiedenen Übertragungsformaten und -protokollen Rechnung zu tragen; und wobei die Elemente, die in den Sende- und Empfangspipeline- Abschnitten Stufen bilden, einzeln so ausgelegt werden können, dass sie Daten in den Kanälen entsprechend jeweiliger Kanalkonfigurationen verarbeiten und entsprechend jeweiliger Formate und Protokolle Verarbeitungstasks an den Daten ausführen; wobei Daten in die Datenspeicherwarteschlangen in einer allen Kanälen gemeinsamen Form eingegeben und in den Netzwerkzeitschlitzen in verschiedenen Formen, die den jeweiligen Kanalkonfigurationen zugeordnet sind, ausgetauscht werden können.
- Gemäß der vorliegenden Erfindung wird ferner eine Datenübertragungssteuereinheit zum Anschluss zwischen einem Zeitmultiplex-Datenübertragungsnetzwerk und einem parallelen Datenübertragungsbus bereitgestellt, wobei der Bus mit einem externen Datenverarbeitungssystem und einem externen Speicher verbunden ist, der zu dem System gehört, wobei die Einheit in zyklisch wiederkehrenden Zeitmultiplexschlitzen, die mehreren Übertragungskanälen zugeteilt werden können, mit dem Netzwerk bitseriell Übertragungsdaten austauscht, wobei die Einheit Folgendes umfasst:
- eine erste und eine zweite RAM-Speichereinheit, von denen jede Speicherbereiche hat, die in Verbindung mit einzelnen Schlitzen reserviert werden;
- wobei die Speicherbereiche in der ersten RAM-Einheit Datenspeicherwarteschlangen enthalten, die reserviert werden, um mehrere Bytes an Übertragungsdaten, die in Bezug auf entsprechende Schlitze unterwegs sind, sowie Steuerinformationen zuhalten, die Positionen von einzelnen Byte-Speicherbereichen in den Warteschlangen angeben, die von der Einheit als Nächstes verarbeitet werden sollen;
- wobei die Speicherbereiche in der zweiten RAM-Einheit Speicherbereiche enthalten, um Steuerstatusinformationen zu halten, die momentane Verarbeitungszustände der Einheit in Bezug auf entsprechende Schlitze angeben;
- eine erste Vielzahl von autonomen Logikschaltungselementen für spezielle Anwendungen, die zwischen dem Netzwerk und der ersten RAM-Einheit hintereinander geschaltet sind, um in Bezug auf Daten, die in Übertragungskanälen empfangen werden, welche zu den Schlitzen gehören, eine mehrstufige Verarbeitungspipeline für Empfangsdaten zu bilden, wobei die Elemente synchron mit den Schlitzen arbeiten, um Übertragungsdaten von jeweiligen Kanälen zwischen jeweiligen Schlitzen und jeweiligen Datenspeicherwarteschlangen in der ersten RAM-Einheit zu transportieren, wobei die Stufen in der Pipeline selektiv verschiedene Verarbeitungstasks an den empfangenen Daten ausführen, während diese transportiert werden; wobei einzelne Elemente einzelne Stufen in der Empfangspipeline bilden, wobei die Pipeline in Bezug auf einen beliebigen Kanalschlitz eine Multitasking-Anordnung und in Bezug auf alle Kanalschlitze eine Mehrprozess- und Multitasking-Anordnung bildet;
- eine zweite Vielzahl von autonomen Logikschaltungselementen für spezielle Anwendungen, die zwischen dem Netzwerk und der ersten RAM-Einheit hintereinander geschaltet sind, um in Bezug auf Sendedaten, die an Übertragungskanäle übertragen werden, welche zu den Schlitzen gehören, um durch das Netzwerk übertragen zu werden, eine mehrstufige Verarbeitungspipeline für Sendedaten zu bilden, wobei die zweiten Elemente synchron mit den Schlitzen arbeiten, um Übertragungsdaten in den Kanälen von jeweiligen Datenspeicherwarteschlangen in der ersten RAM- Einheit an jeweilige Schlitze an der Einheitenschnittstelle zu dem Netzwerk zu transportieren; wobei die zweiten Elemente selektiv verschiedene Verarbeitungstasks an den Sendedaten ausführen, während diese transportiert werden; wobei einzelne der zweiten Elemente einzelne Stufen in der Sendepipeline bilden, wobei die Sendepipeline in Bezug auf einen beliebigen Kanalschlitz eine Multitasking-Anordnung und in Bezug auf alle Kanalschlitze eine Mehrprozess- und Multitasking-Anordnung bildet; und
- Mittel, die mit den RAM-Einheiten und dem Bus verbunden sind, um Daten in Bezug auf die Kanäle zwischen jeweiligen Datenspeicherwarteschlangen und dem externen Speicher zu übertragen.
- Die vorliegende Erfindung versucht, zukünftige ISDN- und andere Netzwerke zu unterstützen, die mit Geschwindigkeiten arbeiten, welche weit über das Leistungsvermögen moderner Einheiten hinaus gehen. Bei Anwendungen, bei denen diese modernen Einheiten Netzwerkverbindungen mit Leitungs- oder Kanalabfragegeschwindigkeiten von maximal 350.000 empfangener oder gesendeter Bit pro Sekunde unterstützen können, würde die vorliegende Einheit folglich Verbindungen Rechnung tragen, die Abfragegeschwindigkeiten von über 2 Millionen empfangener und übertragener Bit pro Sekunde erforderlich machen.
- Außerdem dürfte klar sein, dass solche modernen Einheiten die Übertragung von digitalisierter Sprache nur in sehr begrenztem Umfang unterstützen könnten, da jeder Vollduplex-Sprachkanal, der mit einer Höchstgeschwindigkeit von 64.000 Bit pro Sekunde betrieben wird, ganze 20 Prozent der Durchsatzfähigkeit der Einheit in Anspruch nehmen würde. Die vorliegende Einheit würde jedoch ohne weiteres einer Mischung aus mehreren Sprachkanälen und Hochgeschwindigkeitskanälen für digitale Daten Rechnung tragen.
- Bestandteil der vorliegenden Patentschrift ist ein Gegenstand, der auch der Gegenstand der Europäischen Patentanmeldungen ist, die mit dieser Beschreibung eingereicht werden und Priorität aus den US-Patentanmeldungen mit den Seriennummern 495810, 495012 und 495821 beanspruchen, die alle am 15. März 1990 eingereicht wurden.
- Die vorliegende Einheit ist in synchrone und asynchrone Teile (Bezug sei auf die erste vorstehend aufgeführte Patentschrift genommen) gegliedert, von denen jeder mehrere Segmente mit Logikschaltungen für spezielle Anwendungen und Speichereinrichtungen enthält. Die vorstehenden Ziele werden erreicht, indem die Segmente in modulare autonome Einheiten gegliedert werden, die nachstehend als "autonome Logikelemente" bezeichnet werden, und verteilte logische Pipelines in Bezug auf die Handhabung der Übertragungsdaten zwischen der Netzwerk- und der Hostschnittstelle gebildet werden. Diese verteilten Pipeline-Konfigurationen bieten hinsichtlich der Anzahl der Logikfunktionen, die in Bezug auf einen beliebigen Netzwerkkanal gleichzeitig parallel ausgeführt werden können, und auch hinsichtlich der Anpassungsfähigkeit des Designs (jedes beliebige Element kann durch ein funktional anderes Element ersetzt werden, zum Beispiel, um zukünftige Verbindungen zu unterstützen, die neuer Funktionen bedürfen, ohne die Ausgestaltung anderer Elemente in derselben Pipeline zu beeinflussen) Vorteile gegenüber modernen Systemen, und die Pipelines sind so aufgebaut, dass sie sich wirksam anpassen, wenn weitere Elemente hintereinander in eine beliebige Pipeline eingefügt werden.
- Jedes autonome Element hat in Bezug auf andere Elemente, darunter auch Elemente innerhalb derselben Pipeline, einen hohen Grad an Autonomie in Bezug auf seine Funktionen und an Warteschlangenkapazität für Informationen, was Datenübertragungen zwischen Elementen innerhalb von Pipelines tendenziell weniger zeitkritisch macht. Der synchrone Teil arbeitet synchron mit dem Erscheinen von Kanalzeitschlitzen an der Netzwerkschnittstelle, wohingegen Operationen im asynchronen Teil verhältnismäßig asynchron zu diesen Erscheinungen sind. Autonome Elemente in diesen Teilen ermöglichen eine verteilte Verarbeitung von Übertragungsdaten pro Kanal innerhalb entsprechender Pipelines, wobei der Grad an Autonomie so ausgelegt ist, dass zeitliche Abhängigkeiten in Bezug auf Informationsübertragungen zwischen aufeinanderfolgenden Pipelinestufen vergleichsweise, verringert werden. Somit kann ein Element im synchronen Teil eine von ihm eingeleitete Anforderung für eine Maßnahme in Bezug auf einen Kanal, der zu einem gleich endenden Netzwerkzeitschlitz gehört, zurückstellen und die Anforderung beim nächsten Erscheinen desselben Kanalzeitschlitzes erneut ausgeben.
- Kanalzustandsinformationen werden in einem Sicherungs- und Wiederlade-Austausch ("swapping" exchange) zwischen Elementen im synchronen Teil und einem Zeitsicherungs- und -wiederlade- ("time swap")-Direktzugriffspeicher (TS-RAM) synchron mit dem Erscheinen von entsprechenden Kanalzeitschlitzen an der Netzwerkschnittstelle übertragen. Die gesicherten Zustandsinformationen eines jeden Austauschs werden zur Ermittlung des Anfangszustands des jeweiligen Elements beim nächsten Abfragen desselben Kanalzeitschlitzes verwendet.
- Ein einmaliger Aspekt dieses Zustandsicherungs- und - wiederladeprozesses ("state swapping" process) ist, dass die gespeicherten Zustandsinformationen genügend Informationen enthalten, die sich auf Zustände von anstehenden Anforderungen für eine Informationsübertragungsmaßnahme beziehen, die von einem Element in Bezug auf andere Elemente gestellt wurden, um es dem einen Element zu ermöglichen, seine Anforderung zurückzuziehen oder zurückzustellen, wenn der Schlitz endet, bevor die angeforderte Maßnahme beginnt, und um die Anforderung während des nächsten Auftretens desselben Kanalzeitschlitzes eindeutig zu reaktivieren. Ein weiterer einmaliger Aspekt dieses Prozesses ist, dass die Datenspeicherkapazität in der Warteschlange in beiden Teilen ausreicht, um die vorstehenden Maßnahmen der Zurückstellung und erneuten Ausgabe von Anforderungen zu ermöglichen, die durchgeführt werden sollen, ohne dass es zu einem Überlauf oder Unterlauf bei der fortgesetzten Informationsübertragung an externen Schnittstellen der Einheit kommt, die Warteschlangensteuerungseinrichtungen in der Einheit gleichzeitig aber auf effiziente Weise so integriert und verteilt werden, dass die Größe, der Stromverbrauch und die Kostender Einheit nicht nachteilig beeinflusst werden.
- Ein weiterer Aspekt der Einheit ist, dass sie Unterbrechungsbehandlungssegmente und ein DMA- (Direktspeicherzugriff-)Steuersegment enthält, wobei Letzteres direkten Zugriff auf den Speicher im Host-Verarbeitungssystem hat, wobei die Segmente durch ihre Autonomie in Bezug auf Systemelemente des Hosts und dadurch gekennzeichnet sind, dass sie den Host von Operationen entlasten, die gewöhnlich auf einer höheren Verarbeitungsebene durchgeführt werden.
- Ein weiteres Merkmal besteht darin, dass das DMA-Steuersegment beim Zugriff auf den Bus über ein Haupt-E/A-Segment tätig ist, über das es den Zugriff auf den Hostsystemspeicher erlangt. Das Haupt-E/A-Segment führt die Arbitrierungsfunktionen durch, die für den Zugriff auf den Bus notwendig sind, und stellt einen kleinen Logikteil als zentralen Punkt bereit, um die vorliegende Einheit in ihrer Ausgestaltung so anzupassen, dass eine Anbindung an eine Vielzahl von verschiedenen Busstrukturen möglich wird.
- Ein weiteres Merkmal der Einheit besteht darin, dass die Kommunikation zwischen den Segmenten, die Daten synchron verarbeiten, und den DMA-Steuerelementen über ein DMA- Anforderungswarteschlangensegment abgewickelt wird, das synchrone und asynchrone Schnittstellen hat und Anforderungen von den synchronen Segmenten empfängt und sie dem DMA- Steuersegment asynchron übergibt.
- Eines der Unterbrechungsbehandlungssegmente (INT) überwacht Ereignisse innerhalb der Einheit und an der Schnittstelle zwischen der Einheit und dem Netzwerk (einschließlich Hardware- Bedingungen und Aktivitäten in Bezug auf Verbindungskanäle), erfasst relevante Einzelheiten über den Status im lokalen Speicher in der Einheit und setzt Alarmanzeiger in dem anderen Segment (SIO). Verarbeitungselemente im Hostsystem überwachen das SIO auf solche Anzeiger und bedienen sich des SIO, um direkt auf den lokalen Speicher in der Einheit zuzugreifen, um die gespeicherten Einzelheiten über den Status abzurufen. Dadurch wird die Meldung von zeitbezogenen Ereignissen weniger zeitkritisch.
- Über eine Programmierschnittstelle zwischen dem Hostsystem und der Einheit (die ebenfalls als bisher unerreicht erachtet wird) speichert das Hostsystem Informationen in mehreren lokalen Speichern, um Operationen von Einheiten einzuleiten (sowohl allgemein als auch in Bezug auf einzelne Netzwerkkanäle). In diesen Informationen sind DCBs (Gruppen von Einheitensteuerblöcken) enthalten, um Datenübertragungsoperationen in Bezug auf Netzwerkkanäle einzuleiten, und andere Steuerinformationen, um die Platzierung von empfangenen Informationen in den Adressräumen des Hostsystemspeichers zu steuern. Diese DCBs und anderen Steuerinformationen werden in einem lokalen DMA-RAM in der vorliegenden Einheit gespeichert.
- Ein ganz spezieller Aspekt der Verwendung der vorstehend erwähnten anderen Steuerinformationen bei der Empfangsverarbeitung ist, dass das DMA-Steuersegment diese Informatiohen dazu verwendet, empfangene Daten in Endlos- Umlaufpufferspeichern abzulegen, die sich in direkt zugänglichen IOP-/Host-Speicherbereichen befinden, und den Einschluss dieser Daten innerhalb von programmierbaren Grenzadressen zu verwalten. Der Vorteil hiervon besteht darin, dass das IOP/Hostsystem von der Verantwortung befreit ist, die Daten während ihrer Behandlung beim Empfang dynamisch zu verschieben und den Datenübertragungsvorgang auf Grenzüberlaufbedingungen zu überwachen.
- Ein ganz spezieller Aspekt der Verwendung der vorstehend erwähnten DCBs ist, dass das DMA-Steuersegment bei Übertragungsprozessen auf Kettungsanzeigen in DCBs antwortet, um aus Speicherbereichen im IOP-/Hostspeicher, auf die direkt zugegriffen wird, zusätzliche DCBs abzurufen und dadurch das IOP/Hostsystem von der Verantwortung, solche zusätzlichen DCBs in das lokale DMA-RAM der Einheit zu laden, befreit. Es gestattet dem IOP/Hostsystem auch die effiziente Nutzung seines Speichers, indem es verkettete DCBs in diesem Speicher verstreut. Mit diesem Merkmal kann die vorliegende Einheit automatisch tätig werden und solche verstreuten DCBs abrufen und ständig Prozesse durchführen, die über die DCBs verknüpft sind. Außerdem können die von solchen Prozessen übertragenen Daten ebenfalls im IOP-/Hostspeicher verstreut werden. Wenn man dieses Merkmal mit autonom durchgeführten Protokollrahmenfunktionen (Einfügen/Entfernen von protokollbezogenen Rahmeninformationen beim Versenden/Empfangen) kombiniert, ermöglicht dies der vorliegenden Einheit darüber hinaus, das Hostsystem ferner von der Verantwortung für Funktionen zu befreien, die normalerweise auf einer höheren Ebene im Hostsystem übernommen wird.
- Ein weiterer Aspekt der Erfindung in Bezug auf die Behandlung von Unterbrechungen ist der, dass Statuswarteschlangen in Bezug auf einen jeden einer Vielzahl von Kanälen bereitgestellt werden, wobei jede Warteschlange mehrere Status- Speicherbereiche hat, um eine Vielzahl von Statusfunktionen in Bezug auf Prozessereignisse in dem jeweiligen Kanal zu speichern, die zu verschiedenen Zeitpunkten stattfinden und von der IDLC erkannt werden (z. B. Rahmen empfangen, Abbruchsignal empfangen, Ende der Übertragungskette festgestellt usw.). Auf diese Statusfunktionen kann der IOP asynchron zugreifen, und bei einem Zugriff auf eine beliebige Warteschlange ist es dem IOP möglich, eine Vielzahl von Einträgen abzurufen, die sich auf verschiedene Ereignisse beziehen. Dies mindert die an den IOP hinsichtlich der Verarbeitung des Unterbrechungsstatus gestellten Anforderungen und verringert die Einschränkungen bei der Verarbeitung in Echtzeit, die andernfalls notwendig wären, um den koordinierten Betrieb zwischen dem IOP und der IDLC aufrechtzuerhalten.
- Eine vorteilhafte Anwendung der DCB-Übertragungskettung durch das DMAC-Segment und die Warteschlangensteuerung mit mehreren Zuständen, die vorstehend erwähnt wurde, besteht darin, dass sie es der IDLC ermöglicht, auf andernfalls notwendige Unterbrechungen des IOP-Systems in Bezug auf die Meldung von Empfangsrahmen und Ereignissen (Abarbeitung von einzelnen Rahmenempfangsoperationen) zu verzichten. Derzeit unterbricht die IDLC den IOP aber, um einzelne Empfangsrahmenende- Ereignisse zu melden, und in einem fest zugeordneten Teil des Statusworts, das zu jedem empfangenen Rahmenende gehört, liefert sie Sendezählstand-Informationen; der Sendezählstand gibt die Anzahl der Rahmen an, die von der IDLC an die Quelle des empfangenen Rahmens gesendet wurden. Da bestimmte empfangene Rahmen Informationen enthalten, welche die Anzahl der vom IDLC-Knoten empfangenen Rahmen angeben, die von der fernen Quelle der empfangenen Rahmen ermittelt wird, kann der IOP den Status des Sendezählstands mit der von der fernen Quelle angegebenen Anzahl vergleichen und dadurch die Korrektheit und Vollständigkeit seiner Übertragungen in Duplex- Kanälen aufrechterhalten (z. B. indem er Rahmen erneut überträgt, wenn die verglichenen Parameter voneinander abweichen). Statt dem IOP mittels Unterbrechungen (die Zeit und Bandbreite in Anspruch nehmen) den Status des Senderahmenendes mitzuteilen, kann zusammenfassend gesagt werden, dass die IDLC in Bezug auf Duplex-Übertragungskanäle derzeit die effizientere Behelfslösung benutzt, bei der Informationen über den Zählstand der gesendeten Rahmen in einen zugewiesenen Teil des Status einfügt, der bei Empfangsrahmenende-Unterbrechungen bereitgestellt wird.
- Fig. 1 ist ein Blockdiagramm eines Datenübertragungsnetzwerks, das die Erfindung enthält.
- Fig. 2 ist ein Blockdiagramm eines Datenverarbeitungsknotens in einem Netzwerk, wie es beispielhaft in Fig. 1 gezeigt ist, das die Konfiguration der vorliegenden IDLC-Einheit und ihres zugehörigen lokalen TS-(Zeitsicherungs- und -wiederlade)-RAM- Speichers innerhalb des Knotens veranschaulicht.
- Fig. 3 ist ein Übersichtsblockdiagramm des internen logischen Aufbaus der vorliegenden Einheit, das ihre wesentlichen logischen Segmente und die zugehörigen RAM-Speichereinheiten einschließlich des TS-RAM darstellt.
- Fig. 4 ist ein Zeitdiagramm von Funktionen, die in dem synchronen Teil der vorliegenden Einheit ausgeführt werden, wobei die Ausführung von einem in der Einheit befindlichen Ressourcenmanager-Logikelement gesteuert wird, um Zustände von anderen autonomen Logikelementen in diesem Teil synchron mit Verbindungssignalisierungsprozessen der Schicht 1, die außerhalb der Einheit stattfinden, dynamisch zu konfigurieren.
- Fig. 5 ist ein detaillierteres Blockdiagramm der IDLC, das Logikelemente und Unterelemente sowie die Hauptregister in jedem Element und Unterelement angibt.
- Fig. 6 ist ein Blockdiagramm des TS-RAM, das seine Größe und die Speicherbereichszuordnungen pro Kanal angibt.
- Fig. 7 ist ein Blockdiagramm des FIFO-RAM, das seine Größe und die Speicherbereichszuordnungen pro Kanal angibt.
- Fig. 8 ist ein Blockdiagramm des DMA-RAM, das seine Größe und die Speicherbereichszuordnungen pro Kanal angibt.
- Fig. 9 ist ein Blockdiagramm, das den logischen und physischen Aufbau des TS-RAM darstellt.
- Fig. 10 ist ein Blockdiagramm, des RSM- (Ressourcenmanager-Segments.
- Fig. 11 beziehungsweise Fig. 12 veranschaulichen Bitzuordnungen in CCR-(Kanalkonfigurationsregister-) und HPCR-(HDLC- Protokollkonfigurationsregister-)Wörtern, die zu fest zugeordneten Registern im RSM-Segment gehören und in fest zugeordneten Wortspeicherbereichen, die pro Kanal vorhanden sind, im TS-RAM gespeichert werden.
- Die Fig. 13 bis 15 enthalten Zeitdiagramme, die dazu dienen, die BTDM-Schnittstelle zwischen der vorliegenden IDLC-Einheit und L1-Schaltungen zu erklären.
- Fig. 16 ist ein Blockdiagramm des logischen Aufbaus des Schaltungselements der Empfangsebene 1 (RL1) in der IDLC.
- Fig. 17 zeigt die Anordnung des Statusanzeigeregisters in der RL1.
- Fig. 18 stellt das Format des "kanalbezogenen" ("channelized") Zeitsicherungs- und -wiederlade-Statuswortes RL1_TS01 dar, das über den RSM zwischen der RL1 und dem TS RAM in Bezug auf jeden aktiven Übertragungskanal an der BTDM-Schnittstelle ausgetauscht wird.
- Fig. 19 ist ein Blockdiagramm des Empfangsvalidierungs- (RV-)Schaltungselements in der IDLC.
- Die Fig. 20 und 21 stellen die Formate der beiden Zeitsicherungs- und -wiederlade-Statuswörter RV_TS01 und RV_TS02 dar, die über den RSM zwischen dem RV und dem TS RAM ausgetauscht werden.
- Fig. 22 ist ein Blockdiagramm des Schaltungselements der Sendeebene 1 (TL1) in der IDLC.
- Fig. 23 stellt die Anordnung des TL1-Statusanzeigeregisters dar.
- Fig. 24 stellt das Format des Zeitsicherungs- und -wiederlade- Statuswortes TL1_TS01 dar, das über den RSM zwischen der TL1 und dem TS RAM ausgetauscht wird.
- Fig. 25 ist ein Blockdiagramm des Sendevalidierungs- (TV-)Elements in der IDLC.
- Fig. 26 stellt das Format des Zeitsicherungs- und -wiederlade- Wortes TV TS01 dar, das über den RSM zwischen dem TV und dem TS RAM ausgetauscht wird.
- Fig. 27 ist ein Blockdiagramm des FIFO-RAM-Segments der IDLC.
- Fig. 28 ist ein Blockdiagramm des Empfangs-FIFO- Managerelements RFM in der IDLC.
- Fig. 29 und Fig. 30 stellen die Formate der beiden Zeitsicherungs- und -wiederiade-Statuswörter RFM_TS01 und RFM_TS02 dar, die über den RSM zwischen dem RFM und dem TS RAM ausgetauscht werden.
- Fig. 31 ist ein Blockdiagramm des Sende-FIFO-Managerelements TFM in der IDLC.
- Fig. 32 stellt das Format des Zeitsicherungs- und -wiederlade- Statuswortes TFM_TS01 dar, das zwischen dem TFM und dem TS RAM ausgetauscht wird.
- Die Fig. 33 und 34 stellen Anordnungen der Wortspeicherbereiche im FIFO-RAM dar, die für die beiden Empfangs-DMA-Konfigurationsregister pro Kanal, RDCR1 und RDCR2, reserviert sind.
- Die Fig. 35 und 36 stellen Anordnungen der Wortspeicherbereiche im FIFO-RAM dar, die für die beiden Sende- DMA-Konfigurationsregister pro Kanal, TDCR1 und TDCR2, reserviert sind.
- Fig. 37 ist ein Blockdiagramm des Unterbrechungssegments INT in der IDLC.
- Fig. 38 stellt die Form der Statusfunktion IHEISR (IDLC- Hardwarefehlerunterbrechungs-Statusregister) dar, die im INT erzeugt wird.
- Die Fig. 39 und 40 stellen Formen der Statuswörter CEISR (kanalbezogenes Fehlerunterbrechungsstatusregister) und EOPISR (Prozessende-Unterbrechungsstatusregister) dar, die im INT erzeugt und in Bezug auf jeden aktiven Übertragungskanal im TS RAM gespeichert werden.
- Fig. 41 stellt die Warteschlange im TS RAM in Bezug auf jeden Übertragungskanal von (bis zu 16) Statustermen EOPISR dar.
- Fig. 42 ist eine tabellarische Übersicht über die IDLC- Unterbrechungsvektorebenen und -Prioritäten in Bezug auf den IOP.
- Fig. 43 ist ein Blockdiagramm des untergeordneten E/A-Segments SIO in der IDLC.
- Fig. 44 und Fig. 45 stellen jeweils die Form der die Konfiguration festlegenden Funktionen ICR (IDLC- Konfigurationsregister) und HCR (HyperChannel- Konfigurationsregister) dar, die im SIO verzeichnet werden.
- Fig. 46 stellt die Form der VHR- (Vektorhalteregister-)Statusfunktion dar, die im SIO verzeichnet wird.
- Fig. 47 ist ein Blockdiagramm des DMARQ-(DMA- Anforderungswarteschlange-)Segments in der IDLC.
- Fig. 48 ist ein Blockdiagramm des DMAR-(DMA-RAM-)Segments in der IDLC.
- Fig. 49 ist ein Blockdiagramm des DMAC-(DMA- Steuerung-)Segments in der IDLC.
- Die Fig. 50 und 51 stellen Formen der Terme RDCR3 und RDCR4 dar, die im DMAR in Bezug auf jeden aktiven Kanal gespeichert und vom DMAC zur Steuerung seiner Übertragungsoperationen in Bezug auf Daten verwendet werden, die in jeweiligen Übertragungskanälen empfangen werden.
- Die Fig. 52 und 53 stellen Formen der Terme TDCR3 und TDCR4 dar, die im DMAR in Bezug auf jeden aktiven Kanal gespeichert und vom DMAC zur Steuerung seiner Übertragungsoperationen in Bezug auf Daten verwendet werden, die an jeweilige Übertragungskanäle gesendet werden.
- Fig. 54 ist ein Blockdiagramm des MIO-(Haupt-E/A-)Elements in der IDLC.
- Fig. 55 ist eine schematische Darstellung der Schaltungen in der vorliegenden IDLC, die an der Festlegung und der Verwendung von HyperChannel-Konfigurationen beteiligt sind.
- Die hier verwendeten Begriffe haben die folgenden Bedeutungen.
- In der hier verwendeten Weise bedeutet es eine Anordnung von Logikschaltungen für spezielle Anwendungen, die Dateneingänge und Datenausgänge sowie ein endliches Spektrum an logischen Zuständen hat, wobei eine Gruppe von Logikschaltungen typischerweise eine oder mehrere Logikschaltungen in Form von Zustandsmaschinen enthält, und wobei das Element, nachdem es in einen seiner Zustände versetzt worden ist, in Abhängigkeit von externen Bedingungen oder Ereignissen nacheinander in andere Zustände weiterschaltet, und während es dies in Folge tut, führt es logische Funktionen in Bezug auf die Dateneingänge und Datenausgänge in der Weise aus, dass seine Operationen in Bezug auf andere Elemente, mit denen es verbunden ist, um entweder Daten auszutauschen oder eine externe Zustandssteuerung zu empfangen, parallel und gleichzeitig mit Operationen von anderen solchen Elementen durchgeführt werden können.
- CCITT steht für "International Telegraph and Telephone Consultative Committee", eine Organisation, die ursprünglich im Rahmen des International-Telecommunications-Union- (ITU-)Vertrages von 1865 gegründet wurde und heute ein spezialisierter Ausschuss der Vereinten Nationen ist. Diese Organisation gibt Publikationen heraus, auf die hier an anderer Stelle Bezug genommen wird, welche internationale Standards für Telekommunikationsprotokolle festlegen. Zu den Mitgliedern gehören Telekommunikationsgesellschaften wie beispielsweise AT&T und GTE Telenet.
- Komplementäres Metalloxid-Silizium, wie es in modernen integrierten Halbleiterbauelementen verwendet wird.
- Eine bestimmte Form der CMOS-Technologie, die Leitungsabständen von 1 um Rechnung trägt und Schaltgeschwindigkeiten von 1 ns bei einem UND-Gatter mit 2 Eingängen ermöglicht (siehe (1) IEEE J. Solid State Circuits, Band 23, 5. Oktober 1988, Seite 1095- 11, D.T. Wong u. a. "11-ns 8K · 18 CMOS Static RAM With 0.5-mu m Devices"; (2) Proc. Of The Custom Integrated Circuits Conf. 1987, IEEE, Seiten 248 bis 252, A.W. Aldridge u. a. "40K Equivalent Gate CMOS Standard Cell Chip"; (3) Proc. Of The Custom Integrated Circuits Conf. 1987, IEEE, Seiten 245 bis 247, F. Hornung u. a. "A Versatile VLSI Design System For Combining Gate Array And Standard Cell Circuits On the Same Chip").
- Eine Hauptdatenverarbeitungseinheit oder ein Hauptdatenverarbeitungssystem in einem Datenverarbeitungsnetzwerk.
- (Wird nachstehend als HyperChannel bezeichnet). Eine Form eines Hochgeschwindigkeits-Zeitmultiplexkanals, der vom CCITT in seinen I.412-Definitionen festgelegt wurde (siehe CCITT Red Book, Band III, Heft III.5 "Integrated Services Digital Network (ISDN), Recommendations of the Series I", Genf 1985).
- Generischer Ausdruck, der LapB-, LapD- und SDLC-Protokolle umfasst, die hier definiert werden.
- Siehe H-Kanal oben.
- Ein Eingabe-/Ausgabe-Prozessor, der von einem Haupt- (oder Host-)Prozessor gesteuert arbeitet.
- Integrated Services Digital Network gemäß der Definition von CCITT (siehe CCITT Red Book, VIII, Heft III.5 oben).
- Die physikalische Schicht beziehungsweise die Datenübertragungssteuerungsschicht der logischen Signalbehandlung in ISDN-Netzwerken; auf der physikalischen Schicht werden die Übertragung und der Empfang von Signalen auf Netzwerkleitungen und die Aktivierung und Deaktivierung von Netzwerkverbindungen auf diesen Leitungen abgewickelt; die Übertragungssteuerungsschicht befasst sich mit der Fehlerprüfung und anderen übergeordneten Funktionen in Bezug auf die physikalische Schicht (siehe CCITT Red Book, VIII, Heft III. S oben, Teil IV, Kapitel 3 und 4).
- Ein bestimmtes Datenübertragungsprotokoll für X.25-Netzwerke gemäß der CCITT-X.25-Empfehlung (siehe CCITT, Heft VIII.3 - Empfehlung 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, ergänzt in 1980 und 1984).
- Ein bestimmtes Verbindungszugriffprotokoll für D-Kanäle gemäß der CCITT-Empfehlung Q.920 (siehe CCITT, Heft III. S oben, Teil IV, Kapitel 4).
- Bus, der von Mikroprozessoren des Typs Motorola 68000 zum Anschluss an Speichereinheiten und andere Peripheriegeräte verwendet wird (siehe. "M68000 8-/16-/32-Bit Microprocessors User's Manual, sechste Ausgabe, Prentice Hall, 1989, Kapitel 5 (Signal And Bus Operation Description)).
- Punkte, an denen Endeinrichtungen an das Netzwerk angeschlossen werden.
- Schnittstelle der Schicht 1 (siehe ISDN-Schichten 1 und 2 oben).
- Direktzugriffspeicher
- Synchronous Data Link Control; das in SNA verwendete Verbindungssteuerungsprotokoll (siehe IBM Publications GA27- 3093-3, "Synchronous Data Link Control - Concepts", 1979, 1986).
- Systems Network Architecture (siehe IBM Publication GC30-3072- 3, "Systems Network Architecture - Concepts And Products, 1981, 1986).
- Eine Logikschaltung, die ein endliches Spektrum an möglichen stabilen Arbeitspositionen oder -stufen hat, wobei jede Position oder Stufe eine charakteristische Maßnahme oder Ausgabe erzeugt, und die in Abhängigkeit von externen Anregungsimpulsen Übergänge zwischen diesen Positionen oder Stufen durchläuft.
- Fig. 1 stellt ein Netzwerk 1 dar, das Datenverarbeitungsknoten 2 hat, die über eine digitale Kommunikationsverbindung 3 verbunden sind, und in dem die vorliegenden IDLC-Einheiten 4 vorteilhaft eingesetzt werden können. Obgleich nur zwei Knoten gezeigt sind, versteht es sich von selbst, dass solche Netzwerke viele Knoten enthalten können. Jede Einheit 4 kann Teil eines E/A-Verarbeitungssystems 5 sein, das zu einem Host- Verarbeitungssystem 6 oder 7 gehört. Typischerweise können solche Netzwerke einen Vermittlungsknoten 8 eines Netzbetreibers umfassen, der einzelne Sprach- und Daten- Benutzerstationen 9, 10 miteinander verbindet, wobei Datenverarbeitungsdienste in der veranschaulichten Konfiguration vom Verarbeitungssystem 6 bereitgestellt werden. Obgleich nur eine Datenstation 9, 10 eines jeden Typs gezeigt ist, sollte es sich von selbst verstehen, dass viele solcher Datenstationen an einen beliebigen Knoten angeschlossen werden können. Diesen Datenstationen und ihren Benutzern bereitgestellte Datenverarbeitungsdienste können unter anderem sogenannte Sprachspeicherdienste (die zentrale Speicherung und Weiterleitung von Sprachnachrichten für Telefonbenutzer) und den Zugriff auf öffentliche oder private Datenbanken (Bibliotheken mit Gesetzessammlungen, Patentbibliotheken usw.) beinhalten. In der hier betrachteten Umgebung umfasst die Kommunikationsverbindung 3 eine Hochgeschwindigkeits-T1- oder T3-Übertragungsleitung für digitale Signale, die für mehrere Zeitmultiplexkanäle ausgelegt ist. Obwohl es für eine wirkungsvolle Verwendung der vorliegenden Einheiten 4 nicht notwendig ist, kann das Netzwerk entsprechend ISDN- Anforderungen aufgebaut werden, und die Kanäle der Kommunikationsverbindung 3 können digitalisiertem Sprach- und Datensignalverkehr überall dynamisch zugewiesen werden.
- In solchen Netzwerken könnten die Signalisierungsgeschwindigkeiten im Vollduplexbetrieb auf T-1- Leitungen Raten von 4096 Mbit/s (Megabit pro Sekunde) und auf T-3-Leitungen noch beträchtlich höhere Raten erreichen. Folglich sollte eine Datenübertragungssteuereinheit, die dafür geeignet ist, solche Leitungen zu bedienen, im Vollduplexbetrieb mit Geschwindigkeiten von über 5 Mbit/s arbeiten können. Die Architektur der vorliegenden IDLC-Einheit, die in 1-um-CMOS-Technologie nach dem Stand der Technik ausgeführt ist, kann höchste Vollduplexraten unterstützen, die derzeit für eine beliebige, vollständig belegte T-1- oder T-3- Leitung in einer Struktur mit einem einzigen LSI-Chip in Betracht kommen.
- Eine vergleichbare Einheit nach dem Stand der Technik - siehe Spalte 6 in der vorstehend angeführten Patentschrift 4 493 051 - hat eine maximale Signalisierungsgeschwindigkeit von 350.000 empfangenen oder gesendeten Bit pro Sekunde (wenn man Halbduplex unterstellt) und könnte nicht, wie offen gelegt, eine vollständig belegte T-1-Leitung bedienen oder gemischten Sprach- und Datenkanälen Rechnung tragen. Somit wären solche Einheiten insbesondere nicht für ISDN-Anwendungen oder Anwendungen mit noch höheren Geschwindigkeiten und ausschließlichem Datenverkehr nicht geeignet, und folglich besteht ein Bedarf an Einheiten der vorliegenden Form.
- Bezug nehmend auf Fig. 2, bildet die vorliegende IDLC-Einheit 20 allgemein ganz oder teilweise ein Kommunikationssteuersystem 21, das zwischen den Leitungssteuerschaltungen 22 und einem Host-Datenverarbeitungssystem 23 angeschlossen ist. Der Ausdruck "ganz oder teilweise", der soeben verwendet wurde, bezieht sich auf Anwendungen, die nachstehend erörtert werden und die es entweder gestatten, alle Elemente des Steuersystems in dem Einheitenchip unterzubringen, oder eine getrennte Unterbringung von einem der lokalen RAM-Speicher, die in dem System verwendet werden, erforderlich machen. Die Leitungssteuerschaltungen arbeiten auf der physischen Signalisierungsebene von entsprechenden Netzwerkleitungen (die auch als Ebene 1 oder abgekürzt L1 bezeichnet werden) wie zum Beispiel der Leitung 24 (bei denen es sich typischerweise um zeitgemultiplexte T-1- oder T-3-Leitungen handelt, wie erwähnt wurde), die der in Fig. 1 gezeigten Kommunikationsverbindung 3 entspricht.
- Das Steuersystem 21 enthält im Allgemeinen einen lokalen RAM- Speicher 25 (der als Zeitsicherungs- und -wiederlade-("time swap")-RAM oder TSR bezeichnet wird), der zur Speicherung von Informationen dient, auf welche die IDLC-Einheit zum Zweck des Sicherns und Wiederladens des Zustands (state swapping), ein Vorgang, der später beschrieben wird, sofortigen Zugriff haben muss. Wie vorstehend erwähnt wurde, kann die IDLC-Einheit in einer Struktur mit einem einzigen LSI-Chip unter Verwendung von herkömmlicher 1-um-CMOS-Technologie realisiert werden. Je nach dem vorgesehenen Verwendungszweck (Anzahl der zu bedienenden Kanäle, in jedem Kanal bereitgestelltes Dienstespektrum usw.) kann die Einheit in zwei verschiedenen Chip-Formen realisiert werden, einer, bei der das TSR 25 in die Chip-Struktur integriert wird, und einer, bei der es nicht integriert wird.
- In der bevorzugten Ausführungsform, die beschrieben wird, sind die IDLC und die L1-Schaltungen an einer "Burst-Time-Division- Multiplex"-(BTDM-)Schnittstelle 27 verbunden, die von Signalen getaktet wird, welche von den L1-Schaltungen stammen. Diese Signale werden so angeordnet, dass gewährleistet ist, dass die durchschnittliche Signalübertragungsgeschwindigkeit zwischen der IDLC und den L1-Schaltungen in Bezug auf einen beliebigen Zeitmultiplexkanal auf der Leitung 24 nur geringfügig höher als die durchschnittliche Signalübertragungsgeschwindigkeit in dem jeweiligen Kanal ist, so dass bei Signalisierungsprozessen zwischen den Leitungskanälen und den Systemen 21, 23 unter normalen Betriebsbedingungen, ungeachtet einer Verschiebung oder Abweichung zwischen dem internen Takt der Schaltungen 22 und den Takten an anderen Netzwerkknoten, beim Empfang von der Leitung kein Überlauf oder beim Senden auf die Leitung kein Unterlauf entstehen kann. Diese Maßnahme, die hier als "positive Verschiebe-" Operation ("positive slip" operation) bezeichnet wird, und ihre Durchführung sind in der vorstehend in Bezug genommenen Anmeldung mit dem Titel "Burst Time Division Multiplex Interface For Integrated Data Link Controller" vollständig beschrieben, wobei die Beschreibung in dieser Anmeldung durch diese Bezugnahme Bestandteil hiervon wird. Folglich werden Attribute und Operationen der Schnittstelle 27 hier nur allgemein erörtert.
- Das Hostsystem kann sowohl ein E/A-Verarbeitungssubsystem 28 als auch ein Hauptverarbeitungssubsystem 29 enthalten, wie gezeigt ist, wodurch es zwischen den Verarbeitungsaktivitäten in Verbindung mit der Steuerung der Netzwerkbenutzung und Aktivitäten in Verbindung mit der Informationsverarbeitung allgemein noch mehr Autonomie ermöglicht. Das Subsystem 28 kann sowohl eine E/A-Verarbeitungseinheit (IOP) 30 als auch einen lokalen RAM-Speicher 31 enthalten, und das Hauptsubsystem 29 kann ebenso eine Zentraleinheit (CPU) 32 und einen Haupt-RAM- Speicher 33 enthalten. Die Subsysteme 28 und 29 sind über einen Systembus 34 verbunden, der auch an andere Subsysteme angeschlossen werden kann. Das Subsystem 29 und die IDLC 20 sind über einen IOP-Subsystembus 35 verbunden, an den mehrere IDLC-Einheiten angeschlossen werden können.
- Wie später in dieser Beschreibung dargelegt werden wird, enthält die IDLC ein autonomes logisches Element für den direkten Speicherzugriff (DMAC), das in der veranschaulichten Konfiguration den Zugriff auf das RAM 31 im Direktzugriffmodus ermöglicht. Wie ferner erwähnt wurde, machen manche Systemanwendungen kein getrenntes E/A-Subsystem erforderlich, und bei diesen Konfigurationen würden die Funktionen des IOP- Systems 28 und des Hostsystems 29 im Grunde in einer einzigen Systemeinheit zusammengefasst werden, die an der Schnittstelle zum Bus 35 erscheinen würde. In dieser Situation würde das DMA- Steuerelement der IDLC zur Steuerung des Zugriffs auf den Hauptspeicher 33 dienen.
- Im Betrieb aktiviert die CPU 32 beim Systemstart das Subsystem 28, die Steuereinheit 21 und die L1-Schaltungen 22; Letztere über den Steuerpfad 26. Die L1-Schaltungen fragen die Leitung 24 nach einem sich wiederholenden Rahmenmuster ab, und wenn sie ein solches Muster erkannt haben, bringen sie den internen Takt in Gleichlauf sowohl mit eingehenden als auch abgehenden Bit-, Byte, Kanal- und Rahmen-Zeitmultiplexschlitzen auf der Leitung 24.
- Die Schaltungen 22, die in einem anders strukturierten Zeitmultiplexrahmen an der BTDM arbeiten, übergeben die von eingehenden Kanalzeitschlitzen empfangenen Signale der IDLC 20 zur weiteren Verarbeitung. Die IDLC entnimmt die Zieladressinformationen und wertet sie aus (wobei sie Signale ignoriert, die ein anderes Ziel als den lokalen Knoten haben), entfernt gegebenenfalls protokoll- und verbindungsspezifische Informationen, wie zum Beispiel Rahmenbegrenzer, aus Kanal- und Rahmenschlitzen (Kanäle, die Sprachsignale enthalten, haben eine "freie" Form ohne Begrenzer), prüft die Parität und leitet die restlichen Informationen an das System 23 zur weiteren Verarbeitung weiter. Steuerdatennachrichten- im ankommenden Strom verlangen möglicherweise eine Antwort, und in solchen Fällen werden Informationen für die entsprechende Antwort im System 23 vorbereitet und der IDLC übergeben. Die IDLC fügt die Quell- und Zieladresse, Rahmenbegrenzungs- und Paritätssignale hinzu und überträgt die Informationen an die Schaltungen 22, um sie auf die Leitung 24 zu geben. Über Serien von solchen zweiseitig gerichteten Nachrichten werden in den Zeitkanälen auf der Leitung 24 Duplexverbindungen zwischen dem lokalen Knoten und fernen Knoten aufgebaut, und Signale, die Daten und/oder digitalisierte Audioinformationen darstellen (z. B. Sprache), werden über diese Verbindungen ausgetauscht.
- Es sei angemerkt, dass die Verarbeitung in der IDLC in Bezug auf Datenübertragungen an der Schnittstelle 27 im Wesentlichen synchron (obgleich leicht phasenverschoben) mit der Zeitsteuerung von Kanalschlitzen auf der Leitung 24 stattfindet, wohingegen die Verarbeitung in Bezug auf Übertragungen von Signalen über den Bus 35 im Wesentlichen asynchron zur Kanalsteuerung auf der Leitung 24 ist.
- Fig. 3, ein Blockdiagramm des logischen Aufbaus der vorliegenden IDLC-Einheit, veranschaulicht die Platzierung der Einheit zwischen dem IOP-Bus 35 und der vorstehend erörterten Schnittstelle 27, und die Aufteilung der Schaltlogik der Einheit in einen synchronen und einen asynchronen Teil 50 beziehungsweise 51. Diese Aufteilung ist hier von besonderem Interesse. Außerdem gezeigt sind wichtige logische Segmente in jedem Teil, wobei klar ist, dass jeder Teil ein oder mehrere autonome Elemente enthält, die später gezeigt und beschrieben werden. Der Teil 50 arbeitet synchron mit dem Erscheinen von Kanalzeitschlitzen an der Schnittstelle 27, um Operationen in Bezug auf entsprechende Übertragungskanäle durchzuführen. Operationen im Teil 51 in Bezug auf einen beliebigen Kanal werden asynchron zum Erscheinen von entsprechenden Zeitschlitzen an der Schnittstelle 27 durchgeführt. Auf die RAM-Einheiten (Speichereinheiten mit wahlfreiem Zugriff) 52 und 53 können Segmente in beiden Teilen zugreifen, wohingegen auf die RAM-Einheit 54 nur Segmente im asynchronen Teil zugreifen können. Der synchrone Teil enthält die Logiksegmente 60 bis 64, und der asynchrone Teil enthält die Segmente 65 bis 67.
- Alle Segmente und RAM-Einheiten können in einer einzigen LSI- Chipstruktur enthalten sein, wie zuvor erwähnt wurde, aber bei bestimmten Anwendungen, die später erörtert werden, ist es möglicherweise erwünscht, die TS-RAM-Einheit 53 in einem getrennten Modul bereitzustellen, das sich dicht neben dem IDLC-Chip auf einer gemeinsamen Karte oder Platine befindet. Die RAM-Einheiten haben vorher festgelegte Zugriffseigenschaften, Kapazitäten, Adresszuweisungen und funktionsbedingte Einsatzgebiete, die später beschrieben werden.
- Die Segmente 60, 62, 65 und 66 bilden eine logische Verarbeitungskette in Pipeline-Struktur in Bezug auf Übertragungsdaten, die von der Schnittstelle 27 in Zeitmultiplexkanälen empfangen werden ("Empfangsdaten"), wobei die Kette die Teile 50 und 51 umfasst. Die Segmente 61, 62, 65 und 66 bilden eine ähnliche Kette in Pipeline-Struktur in Bezug auf Daten, die in Kanälen an der Schnittstelle 27 gesendet werden ("Sendedaten"). Das Segment 64 bildet eine logische Kette zur Erfassung von Statusinformationen in der gesamten IDLC und den L1-Schaltungen (Einheitenstatus, L1-Status, Kanalstatus usw.) und arbeitet mit dem Segment 67 zusammen, um diese Informationen dem IOP/Hostsystem durch Unterbrechung des Letzteren zu übergeben.
- Das Segment 67 dient als untergeordneter Teil ("Slave") des Hostsystems, um diesem bidirektionalen Zugriff auf die IDLC- Speicher 52 bis 54 zu ermöglichen, wodurch das Hostsystem auf die Speicher zugreifen kann, um Informationen zur Steuerung von Operationen der IDLC zu laden und um Statusinformationen abzurufen, die vom Segment 64 erfasst wurden. Ein Merkmal dieser Anordnung ist, dass der getrennte Pfad durch das Segment 67 das mögliche Maß an Störbeeinflussungen zwischen Operationen, die über diesen Pfad durchgeführt werden, und In- Line-Übertragungsprozessen, die über die Segmente 65 und 66 durchgeführt werden, verringert.
- Die autonomen Elemente in jedem Segment umfassen Register und diskrete Logikschaltungen für spezielle Anwendungen (im Gegensatz zu programmierbaren Logikeinheiten, Mikroprozessoren usw.), von denen die meisten derzeit als Maschinen endlicher Zustände ausgeführt sind. Der Begriff "autonom" in der hier verwendeten Weise soll einen Grad an Funktionsautonomie zwischen Elementen in jeder der Verarbeitungsketten in Pipeline-Struktur bezeichnen, die vorstehend erwähnt wurden (für Empfangsdaten, Sendedaten und Statusdaten), so dass die Leistungsfähigkeit von einer Funktion eines beliebigen Elements in einer Kette in Bezug auf einen beliebigen Netzwerkkanal nicht kritisch zeitabhängig von jeweiligen Schlitzdauern an der Schnittstelle 27 und weniger zeitabhängig von Aktivitäten eines beliebigen anderen Elements in derselben Kette ist, als sie dies wäre, wenn die Funktion ohne diese Autonomie realisiert wäre.
- Das Ressourcenmanagerelement 63 (abgekürzt RSM) wird als Antwort auf Signale tätig, die es von den L1-Schaltungen an der Schnittstelle 27 empfängt und die Übergänge von Kanalzeitschlitzen angeben, und es dient dazu, Statussicherungs- und -wiederladeoperationen zwischen dem TSR 53 und anderen Segmenten im synchronen Teil 50, der die Segmente 60 bis 62 und 64 enthält, zu steuern. Diese Übertragungen finden in zwei Richtungen statt, so dass in Bezug auf einen Kanal, dessen Schlitz gerade endet, die Zustände der Segmente gesichert werden (damit entsprechende Kanalprozesse in entsprechenden Elementen fortgesetzt werden können, wenn derselbe Kanalschlitz erneut an der Schnittstelle 27 erscheint), und in Bezug auf einen aktiven Kanal, dessen Schlitz gerade beginnt, die Zustände der Segmente gesetzt werden, damit die Prozesse in Bezug auf diesen Kanal weiterhin bedient werden. So initiiert, schaltet/schalten die Maschine(n) endliche Zustände eines jeden Segments für die Dauer des neuen Schlitzes weiter, um die L2-Prozesse durchzuführen, die dem jeweiligen Segment in Bezug auf den aktuellen Zustand dieses Kanals zugeordnet wurden.
- Das Empfangssegment 60 ist für den Empfang von Daten- (und/oder Sprach-)Signalen von der Schnittstelle 27 in dem Protokoll zuständig, das gerade auf jedem Netzwerkdatenkanal aktiv ist (SDLC, HDLC, LAP-B, LAP-D usw.). Sprachkanäle sind "frei" (es gibt keine protokollspezifischen Begrenzer usw.). Hinsichtlich eines jeden Datenkanals ist das Segment 60 für das Entfernen von protokollspezifischen Informationen (z. B. das Entstopfen von HDLC-Stopfbits), das Erkennen von Adressen, die Feststellung von protokollspezifischen Steuerfunktionen (z. B. Abbruch-/Leerlaufzustandsanzeigen (abort/idle indications) in HDLC, Rahmengrenze-Anzeigen usw.), das Bilden von Unterbrechungsstatusanzeigen für Empfangsereignisse (z. B. CRC- Fehler, Überlaufbedingungen des FIFO-Pufferspeichers und des IOP-Pufferspeichers, Ende des Rahmens usw.) zuständig.
- Das Sendesegment 61 wickelt die bitserielle Übertragung von Daten und Steuerbits an die Schnittstelle 27 in dem Protokoll ab, das gerade auf jedem Kanal aktiv ist (SDLC, LAP-B, LAP-D usw.; Sprache wird in dem freien Kanal gesendet). Es erzeugt auch protokollspezifische Informationen, die mit den Daten gesendet werden sollen (z. B. HDLC-Stopfbits, Abbruch-/ Leerlaufzustandsanzeigen in HDLC, Rahmenbegrenzer usw.), und bildet Unterbrechungsstatusanzeigen für Sendeereignisse (z. B. Unterläufe des FIFO-Pufferspeichers, Ende der Steuerblockkette für die Übertragung usw.).
- Das FIFO-Verwaltungssegment 62 bildet die Schnittstelle zwischen dem FIFO-RAM 52 (später mit FIFOR abgekürzt) und dem Empfangs- und dem Sendesegment, um Empfangs- und Sendedaten zwischen pro Kanal vorhandenen Warteschlangen im RAM und diesen Segmenten auf FIFO-Basis zu übertragen und die Auslastung dieser Warteschlangen zu verwalten. Das Segment 62 überwacht den Belegungszustand einer jeden Kanalwarteschlange im RAM 52 und übergibt dem DMA-(Direktzugriffspeicher-)Segment 65 im asynchronen Teil Anforderungen, die über das Haupt-E/A- (MIO-)Segment 66 Maßnahmen aufrufen, welche bewirken, dass Daten zwischen entsprechenden Warteschlangen und Hostsystem- Speichern über den Bus 35 übertragen werden. Die Anforderungen vom Segment 62 an das Segment 65 werden von einem getrennten DMA-Anforderungswarteschlangen-(DMARQ-)Segment, das in Fig. 3 nicht gezeigt ist, zwischengespeichert und von Letzterem asynchron abgewickelt.
- Empfangsdaten-Warteschlangen werden somit auf FIFO-Basis entleert, bevor sie als Folge von Aktivitäten an der Schnittstelle 27 überlaufen, und Sendedaten-Warteschlangen werden mit neuen Daten aufgefüllt, bevor sie in Bezug auf die Schnittstelle 27 unterlaufen.
- Das Unterbrechungs-(INT-)Segment 64, dessen Schaltungsteile sowohl im synchronen Teil 50 als auch im asynchronen Teil 51 arbeiten, dient dazu, Signale zu empfangen, die Hardware- und Kanalprozessereignisse und -bedingungen von allen anderen IDLC- Elementen und den L1-Schaltungen anzeigen, die gemeldet werden können, zugehörige Kennzeichnungsanforderungen an das untergeordnete E/A-(SIO-)Segment 67 weiterzugeben und Statusinformationen in Bezug auf diese Ereignisse und Bedingungen zum asynchronen Abruf durch das IOP/Hostsystem zu erfassen. Zu diesen Ereignissen und Bedingungen gehören. Hardwarefehler, Kanalfehler und Kanalverarbeitungsereignisse (Übergänge von Rahmengrenzen, Übertragungsende usw.). Das Segment 67 nimmt hinsichtlich solcher Anforderungen am Austausch von Unterbrechungen mit dem Hostsystem über den Bus 35 teil, um die zugehörigen Statusinformationen zu übertragen.
- Wie zuvor dargelegt wurde, enthält jedes autonome Element (und/oder Unterelement) in jedem Segment Logik, die im Allgemeinen in Form von einer oder mehreren Maschinen endlicher Zustände ("finite state machines") realisiert ist. Diese durchlaufen nacheinander eine Abfolge von Zuständen, um jeweils zugewiesene Funktionen in Bezug auf jeden aktiven Netzwerkkanal auszuführen. Da jeder Kanal der Netzwerkverbindung für den Betrieb gemäß einem ausgewählten Sprach- oder Datenüberträgungsprotokoll konfiguriert ist, wird eine Gruppe von Zustandsvariablen-Parametern von der Hostschnittstelle 35 in das TSR 53 eingefügt (über das SIO-Segment 67), um für die autonomen Elemente in den Segmenten 60 bis 64 Anfangszustände in Bezug auf diese Konfiguration festzulegen.
- Während des folgenden Erscheinens des entsprechenden Kanalzeitschlitzes an der Schnittstelle 27 bewirken Zustandsicherungs- und -wiederladeoperationen (state swaps) zwischen dem RAM 53 und autonomen Elementen in den Segmenten 60 bis 64, dass die Elemente mit Unterbrechungen arbeiten, um zugewiesene logische Prozesse in Bezug auf Übertragungsdaten durchführen, die in diesem Schlitz gesendet und empfangen wurden.
- Bezug nehmend auf die Figuren Bund 4, zwingen Signale, die an der Hostschnittstelle 35 übergeben werden, zum Einschaltzeitpunkt die IDLC und die L1-Schaltungen, die Betriebsarten zurückzusetzen. In dieser Betriebsart werden die nicht relevanten Zustände der logischen Elemente in allen IDLC- Segmenten gelöscht, und sie werden in den Leerlaufzustand (idle state) versetzt. Anschließend werden die L1- und IDLC- Schaltungen wieder von Hostsignalen, die an der Schnittstelle 35 übergeben werden, initialisiert. Diese Informationen schließen kritische Anfangsparameter für die Kanalverarbeitung, Informationen zur Steuerung der Aktivierung von Kanälen und Informationen zur Steuerung von grundlegenden Operationen des DMA-Segments 65 ein. Die Initialisierungsinformationen für die L1-Schaltungen werden über die Leitung 69 an die Register im L1-Teil, die nicht gezeigt sind, übertragen. Die Initialisierungsinformationen für den asynchronen Teil 51 der IDLC werden über den Bus 35, das MIO 66 und das DMA-Segment 65 an die RAMs 52 und 54 übertragen. Die Initialisierungsinformationen für den synchronen Teil 50 werden über den Bus 35 und das SIO 67 an das RAM 53 übertragen.
- Nach der Initialisierung wird die IDLC in eine aktive Betriebsart versetzt, und die Verarbeitung beginnt, um Funktionen von Netzwerkkanälen zu aktivieren. Die Kanäle werden einzeln aktiviert. Neben dem Laden von kritischen Anfangsparametern für jeden Kanal während der Initialisierung der IDLC müssen Steuerparameter in die RAMs 52 bis 54 und bestimmte Register, die später erörtert werden, eingegeben werden, bevor ein Kanal aktiviert werden kann, um alle Verarbeitungssegmente so zu konditionieren, dass sie die für die entsprechenden Kanalarten erforderlichen Funktionen ausführen. Nach der Aktivierung werden Signale, die das Erscheinen der entsprechenden Kanalzeitschlitze anzeigen, von der L1 über die BTDM-Schnittstelle 27 an die IDLC gesendet, und die Verarbeitung in Bezug auf die Kanäle beginnt. Während dieser Verarbeitung werden in den Netzwerkkanälen zwischen dem lokalen Knoten und fernen Knoten Vollduplexverbindungen aufgebaut, Informationen werden über diese Verbindungen übertragen, und Statusinformationen in Bezug auf diese Kanäle werden im RAM 53 gesammelt und dem Hostsystem über das SIO 67 zur Verfügung gestellt.
- Bezug nehmend auf Fig. 4, schließen vom RSM durchgeführte Zustandsicherungs- und -wiederladeprozesse in Bezug auf Übertragungskanäle, die zu Zeitschlitzen an der BTDM- Schnittstelle gehören (in dieser Figur die aufeinanderfolgenden Schlitze N und N+1), Übertragungen von vier Arten von Variablen ein: sendespezifischen, empfangsspezifischen, unterbrechungsspezifischen und globalen. Zustandsicherungs- und - wiederladeoperationen (das Sichern der Verarbeitungszustände von Elementen in Bezug auf einen Kanal, der zu einem gerade endenden Zeitschlitz gehört, und das erneute Laden von zuvor gesicherten Zuständen in Bezug auf einen Kanal, dessen Zeitschlitz gerade beginnt) werden nur in Bezug auf aktive Kanäle durchgeführt. Globale Variable sind der Sende-, Empfangs- und Unterberechungsverarbeitung gemeinsam. Ein kleiner Teil einer globalen Variablen, der den Kanaltyp angibt, wird in Bezug auf aktive als auch inaktive Kanäle vorab abgerufen, um diese beiden voneinander zu unterscheiden.
- Sendespezifische Variable werden in Bezug auf Elemente in den Sendepipeline-Segmenten 61 und 62 übertragen. Empfangsspezifische Variable werden in Bezug auf Elemente in den Empfangspipelinesegmenten 60 und 62 übertragen (wie später zu sehen ist, umfasst das Segment 62 die getrennten Untersegmente 62R und 62T, um jeweils Empfangs- und Sendeverarbeitungsoperationen durchzuführen). Unterbrechungsspezifische Variable werden in Bezug auf das INT- Segment 64 übertragen. Globale Variable werden in Bezug auf das Ressourcenmanager-(RSM-)Segment 63 übertragen.
- Globale Variable, die die kanalspezifische Konfiguration und Protokollzuordnungen angeben, werden in Bezug auf die Konfigurationsregister CCR (Konfigurationssteuerregister) und HPCR im RSM 63 synchron mit der Kanalverarbeitung (siehe die folgenden groben und ausführlichen Beschreibungen des RSM) übertragen. Diese Variablen werden zwar im RSM abgelegt, aber praktisch von allen Segmenten gemeinsam benutzt.
- Andere transiente Variablen, die sich auf die Handhabung des Unterbrechungsereigniszustands beziehen, werden in den Registern CEISR (Kanalereignis-Unterbrechungsstatusregister) im INT, EOPISR (Prozessende-Unterbrechungsstatusregister) im INT, IHEISR (IDLC-Hardwarefehler- Unterbrechungsereignisstatusregister) im INT und VHR (Vektorhalteregister) im SIO gehalten. Der Inhalt vom CEISR und der Inhalt vom EOPISR werden in Bezug auf das TSR synchron mit dem Erscheinen von Kanalzeitschlitzen gesichert und wieder geladen. Der jeweilige Inhalt vom IHEISR und vom VHR wird statisch gehalten, bis er vom IOP abgerufen wird.
- Andere globale Variablen, die HyperChannel-Zuordnungen angeben, werden im Register HCR (HyperChannel-Konfigurationsregister) im SIO statisch gehalten (nicht synchron gesichert und wieder geladen; siehe die nachfolgende Beschreibung von HyperChannels). Andere Variablen, die Einheitenkonfigurationsparameter angeben, die nicht kanalspezifisch sind, werden im Register ICR (IDLC- Konfigurationsregister) im SIO statisch gehalten.
- Übertragungen von Empfangs-, Sende- und Unterbrechungsvariablen sind echte Sicherungs- und Wiederladeoperationen, aber die Übertragungen von kanalspezifischen globalen Variablen in Bezug auf die Register CCR und HPCR im RSM 63 sind nur einseitig gerichtet (obwohl diese Variablen von Kanal zu Kanal unterschiedlich sein können, ändern sie sich in Abhängigkeit von der IDLC-Verarbeitung in Bezug auf einen beliebigen Kanal nicht und brauchen daher nicht gesichert zu werden, wenn Kanalschlitze enden).
- Die Zustandsicherungs- und -wiederlademaßnahmen (S) sind innerhalb einer jeden Zeitschlitzperiode phasenverschoben; die globalen und unterbrechungsspezifischen finden zuerst statt, dann folgen die sendespezifischen und zum Schluss die empfangsspezifischen. Während die globalen Variablen geladen werden, werden die Segmente in beiden Pipelines angehalten (H). Es versteht sich natürlich von selbst, dass diese Maßnahmen während Zeitschlitzen, die zu inaktiven Kanälen gehören, entfallen.
- Während ein neuer Kanalzeitschlitz N+1 beginnt (BOS/N+1), signalisiert RSM den synchronen Segmenten in der Sendepipeline, dass sie sich für die sendespezifischen Sicherungs- und Wiederladeoperationen vorbereiten sollen. Wenn sowohl der Kanal N als auch der Kanal N+1 aktiv sind, signalisieren Elemente in der Sendepipeline, deren Zustandsmaschinen sich in stabilen Zuständen befinden, aus denen sie beim nächsten Erscheinen eines Kanal-N-Zeitschlitzes ihren Betrieb wieder aufnehmen können, dem RSM sofort "DONE"-(ABGESCHLOSSEN-)Bedingungen und lassen die Zustände ihrer Sendeprozesse in Bezug auf entsprechende Zustandsspeicherbereiche im TS RAM sichern und später wieder laden (wenn N inaktiv ist, werden keine Zustandsinformationen an das TS RAM übertragen, und wenn N+1 inaktiv ist, werden keine Zustandsinformationen aus dem TS RAM geladen). Die Zustandsinformationen, die in Bezug auf den Kanal N gesichert werden (unter der Annahme, dass er aktiv ist), reichen aus, um entsprechenden Elementen die Wiederaufnahme der Verarbeitung für diesen Kanal ohne Anschlussverlust zu ermöglichen, wenn der entsprechende Zeitschlitz wiederkehrt.
- Ähnliche Maßnahmen finden in der Phase der empfangsspezifischen Sicherungs- und Wiederladeoperationen statt.
- Elemente, die sich während der Verarbeitung in Bezug auf einen aktiven Kanal N nicht in einem stabilen Zustand befinden und denen vom RSM signalisiert wird, Vorbereitungen für Zustandsicherungs- und -wiederladeoperationen zu treffen, schalten in ihren nächsten stabilen Zustand weiter, bevor sie den Status "DONE" feststellen und ihren Zustand sichern und wieder laden. Wie später gezeigt werden wird, ermöglichen die versetzte Durchführung der Sicherungs- und Wiederlademaßnahmen in Bezug auf Sende- und Empfangsprozesse und die Unterteilung dieser Prozesse in gerichtete spezifische und globale Stufen, die mit einem bestimmten, hier vorgenommenen Phasenabgleich der Signalübertragungen an die und von der Schnittstelle 27 koordiniert werden, eine äußerst effiziente Nutzung des RAM 53 und der Sende- und Empfangssegmente (ohne die ein größeres RAM und ein höherer Schaltungsaufwand in den Pipelinesegmenten erforderlich wären).
- In diesem Abschnitt und in den folgenden Unterabschnitten werden der logische Aufbau und die Operationen der IDLC näher beschrieben, %bei insbesondere auf Fig. 5 Bezug genommen wird.
- In diesem Abschnitt werden in alphabetischer Reihenfolge Abkürzungen (Abk.) von Element- und Registerbezeichnungen aufgeführt, die in Fig. 5 verwendet werden, und die Funktionen, die von jedem bezeichneten Teil durchgeführt werden, werden erklärt. Einheiten, die mit einem Stern (*) gekennzeichnet sind, sind allen Kanälen gemein.
- CCR CHANNEL CONFIGURATION REGISTER (KANALKONFIGURATIONSREGISTER)/kanalbezogen (wird für jeden Kanal nachgebildet). Dieses Register dient zur Auswahl des Kanalprotokolls (SDLC, LapB, LapD, frei/Sprache, Sonstiges) und zur Anzeige des Kanaltyps (inaktiv, B/D, H0 Nummer 1 bis 5, H1, H11, H12 usw.).
- CEISR Channelized Error Interrupt Status Register (kanalbezogenes Fehlerunterbrechungsstatusregister)/ speichert Kanalfehler-Statusinformationen zur Übertragung an den Host.
- DMAC DMA-Steuerelement/arbeitet mit dem MIO zusammen, um Daten zwischen dem FIFOR und dem Hostbus 35 zu übertragen; es enthält Register zur Speicherung von Daten, die zwischen dem MIO und dem FIFOR unterwegs sind.
- DMAR DMA-RAM/speichert Steuerinformationen pro Kanal für das DMAC.
- DMARQ DMA Request Queue (DMA- Anforderungswarteschlange)/empfängt Anforderungen für Datenübertragungsmaßnahmen pro Kanal vom RFM und TFM und stellt sie in die Warteschlange.
- EOPISR End Of Process Interrupt Status Register (Prozessende-Unterbrechungsstatusregister)/puffert Prozessende-Statusinformationen zur Übertragung an das SIO.
- FIFOR FIFO-RAM/speichert Daten pro Kanal, die zwischen den FIFO-Managern (Sende- und Empfangsmanagern) und dem DMAC unterwegs sind.
- HCR* HyperChannel Configuration Register (HyperChannel- Konfigurationsregister)/legt Konfigurationen von HyperChannels fest.
- HPCR Protocol Configuration Register (Protokollkonfigurationsregister)/passt zusammen mit dem CCR Kanäle für Protokolle vom Typ HDLC individuell an.
- I_RQ Interrupt Request (Unterbrechungsanforderung)/Pfad für L1-Unterbrechungsanforderungen
- ICR* IDLC Configuration Register (IDLC- Konfigurationsregister)/gemeinsames Register, um Chip-Elemente in verschiedene Betriebsarten zu versetzen: "normal operation" (Normalbetrieb), "reset" (Rücksetzmodus), "forced error normal" (erzwungener Fehler - Normalbetrieb), "forced error reset" (erzwungener Fehler - Rücksetzmodus) und "quiet" (Ruhemodus).
- IHEISR* IDLC Hardware Error Interrupt Register (IDLC- Hardwarefehlerunterbrechungsregister)/puffert den Fehlerstatus in Bezug auf IDLC- Hardwarefehlerbedingungen, die alle Kanäle betreffen.
- L1 Level 1 (Ebene 1)/bezieht sich auf die Schaltungen 22 der Ebene 1 (siehe Fig. 2).
- MIO Master I-O-(Haupt-E/A-)Element/IDLC-Element, das die Schnittstelle zwischen dem IOP-Bus des Hosts und dem DMAC-Element der IDLC bildet.
- MUX Multiplexer/Schaltungen, die den IOP-Bus mit dem MIO und SIO verbinden.
- RDCR1-4 Receive DMA Configuration Registers (Empfangs-DMA- Konfigurationsregister) (vier im DMAC und zwei im RFM, wobei die Sicherungen pro Kanal im FIFOR und DMAR erfolgen)/legen die Kanalkonfigurationseinstellungen des DMAC und des RFM für DMA-Übertragungen von empfangenen Daten fest; die Angaben in Klammern "(R)" und "(U)" in Fig. 5 kennzeichnen jeweils Register, die im Nur- Lese-Modus und im Schreib-/Lesemodus (aktualisierbar) verwendet werden.
- RFM Receive FIFO Manager (Empfangs-FIFO-Manager)/IDLC- Element, um über Anforderungen, die in die DMARQ gestellt werden, Übertragungen von Empfangsdaten zwischen dem RV1 und dem FIFO-RAM zu verwalten und in Bezug auf Daten, die im FIFO-RAM gespeichert werden, Maßnahmen durch das DMAC einzuleiten.
- RFM_TS1, RFM_TS2 Receive FLFO Manager Time Swap Words 1 and 2 (Zeitsicherungs- und -wiederladewörter 1 und 2 des Empfangs-FIFO-Managers)/Register im RFM, die Zustandsinformationen halten, die bei einer Zeitsicherungs- und -wiederladeoperation gesichert werden müssen.
- RL1 Receive Layer 1 (Empfangsebene 1)/IDLC-Element zur Übertragung von Empfangsdaten zwischen der BTDM- Schnittstelle 27 (siehe Fig. 2) und dem RV.
- RL1_TS1, RL1_TS2 Receive Layer 1 Time Swap Words (Zeitsicherungs- und -wiederladewörter der Empfangsebene 1)/Register in der RL1, die Zustandsinformationen halten, die bei einer Zeitsicherungs- und -wiederladeoperation gesichert werden müssen.
- RSM Resource Manager (Ressourcenmanager)/IDLC-Segment, das die Zeitsicherungs- und -wiederladeoperationen zwischen dem TSR und Empfangs-, Sende- und Unterbrechungssegmenten steuert.
- RV Receive Validation (Empfangsvalidierung)/IDLC- Element, das die Verarbeitung von Empfangsdaten auf der Ebene 2 einschließlich des Entfernens von protokollspezifischen Informationen, Adressprüfung, Fehlerprüfung usw. durchführt.
- RV_TS1 Receive Validation Time Swap Word (Empfangsvalidierungs-Zeitsicherungs- und - wiederlade-Wort)/RV-Zustandsinformationen, die bei einer Zeitsicherungs- und -wiederladeoperation gesichert werden.
- TDCR Transmit DMA Configuration Register (Sende-DMA- Konfigurationsregister)/vier Register pro Kanal im DMAC und zwei pro Kanal im TFM, die die Kanalkonfigurationseinstellungen des DMAC und des TFM in Bezug auf das Abrufen von Sendedaten in jeweiligen Kanälen durch das DMA festlegen; die Angaben in Klammern "(R)" und "(U)" in Fig. 5 kennzeichnen jeweils Register, die im Nur-Lese- Modus und im Schreib-/Lesemodus (aktualisierbar) verwendet werden.
- TFM Transmit FIFO Manager (Sende-FIFO-Manager)/IDLC- Element, um über Anforderungen, die in die DMARQ gestellt werden, Übertragungen von Sendedaten zwischen dem FIFOR und dem TV1 zu verwalten und um Maßnahmen des DMAC einzuleiten, um die Sendewarteschlange im FIFOR wieder aufzufüllen.
- TFM_TS1, TFM_TS2 Transmit FIFO Manager Time Swap Words 1 and 2 (Zeitsicherungs- und -wiederladewörter 1 und 2 des Sende-FIFO-Managers)/TFM-Zustandsinformationen, die bei einer Zeitsicherungs- und -wiederladeoperation gesichert werden müssen.
- TL1 Transmit Layer 1 (Sendeebene 1)/IDLC-Element zur Übertragung von Sendedaten zwischen TV und der BTDM-Schnittstelle 27.
- TL1_TS1, 2 Transmit Layer 1 Time Swap Words (Zeitsicherungs- und -wiederladewörter der Sendeebene 1)/TL1- Zustandsinformationen, die bei einer Zeitsicherungs- und -wiederladeoperation gesichert werden müssen.
- TSR Time Swap RAM/außerhalb der IDLC befindliches RAM, auf das die IDLC jedoch lokal zugreifen kann (siehe RAM 53, Fig. 3).
- TV Transmit Validation (Sendevalidierung)/IDLC- Element, das die logische Verarbeitung von Sendedaten auf der Ebene 2 einschließlich des Einfügens von protokollspezifischen Informationen, Fehlerprüfverweisen usw. in Datenkanäle durchführt.
- TV_TS1 Transmit Validation Time Swap Word (Sendevalidierungs-Zeitsicherungs- und -wiederlade- Wort)/TV-Zustandsinformationen, die bei einer Zeitsicherungs- und -wiederladeoperation gesichert werden.
- VHR* Vector Holding Register (Vektorhalteregister)/gemeinsames Register für Chip- und Kanal-Unterbrechungsstatusvektoren.
- Wo immer möglich, werden in Fig. 5 Bezugszahlen von Segmenten, die zuvor in Fig. 3 gezeigt wurden, beibehalten, und Elemente in diesen Segmenten werden mit den gleichen Bezugszahlen und zusätzlich einem oder mehr Buchstaben gekennzeichnet (z. B. 61L)
- Fig. 5 stellt die Hauptinformationsverarbeitungspfade in und durch die IDLC dar. Diese bestehen aus Pfaden zur Handhabung von Sendedaten (Daten, die vom Host an der Schnittstelle 35 empfangen und in Kanalzeitschlitzen an der Schnittstelle 27 nach der Zwischenverarbeitung in der IDLC gesendet werden) und Empfangsdaten (Daten, die an der Schnittstelle 27 empfangen und in der IDLC zur Übertragung an die Host-Schnittstelle 35 verarbeitet werden), Pfaden zur Übertragung von Initialisierungs- und Steuerinformationen vom Hostsystem an die TDLC-RAMs, Pfaden zur Erfassung von Informationen, die dem Host mittels Unterbrechungen (Daten, die Ereignisse und Bedingungen anzeigen, sowie Statusdaten, die für die Ereignisse und Bedingungen spezifisch sind) gemeldet werden können, Pfaden, um Zustandsicherungs- und -wiederladeoperationen durchzuführen (zwischen IDLC-Elementen und dem TSR 53), sowie Host- Zugriffspfaden zu den IDLC-RAMs (über die das Hostsystem auf gespeicherte Informationen, zum Beispiel den Kanalereignisstatus, zur Überwachung zugreifen kann). Dieser Abschnitt behandelt die Sende- und Empfangsdatenpfade.
- 6.2.1 Sendedatenpfad
- Daten, die in Kanalzeitschlitzen an der Schnittstelle 27 ("Sendedaten") übertragen werden müssen, gelangen über den Bus 35, die MUX-Schaltungen 80 und das MIO-Segment 66 in die IDLC. Der Multiplexer 80 dient als Schalter, um Signale über den Bus 35 zwischen dem Hostsystemspeicher und dem MIO 66 und zwischen den Hostsystem-Verarbeitungseinheiten und dem SIO 67 weiterzuleiten. Die Quellendaten für die Sendedaten werden aus dem Hastspeicher über einen DMA-(Direktspeicherzugriff-)Prozess abgerufen, der vom DMAC-Element 65C als Antwort auf DCB- (Datensteuerblock-)Befehlsvektoren gesteuert wird, die vom Hostsystem im DMAR vorbereitet werden.
- Ein Merkmal der vorliegenden Erfindung ist, dass das DMAC als Antwort auf Kettungsanzeigen in diesen DCBs tätig wird und zusätzliche DCBs aus dem IOP-/Hastspeicher abruft und dadurch die Verarbeitungsaktivitäten des IOP/Hosts in Bezug auf diese zusätzlichen DCBs verringert. Dadurch kann die vorliegende Einheit sowohl zusätzliche DCBs als auch die Sendedaten, die zu diesen DCBs gehören, aus verstreuten Bereichen im IOP-/ Hostspeicher abrufen. Andere Vorzüge und Vorteile werden nachstehend erklärt.
- Nachdem die Sendequellendaten das MIO durchlaufen haben, werden sie im DMAC gepuffert und in pro Kanal vorhandenen Warteschlangen-Speicherbereichen im FIFOR 52 abgelegt. Der Prozess, um diese Daten aus dem Hostspeicher abzurufen, wird in Bezug auf einzelne Kanäle als Antwort auf Anforderungen aufgerufen, die vom Sende-FIFO-Manager-(TFM-)Element 62T an das DMA-Anforderungswarteschlange-(DMARQ-)Element 65Q übertragen werden, da der TFM dazu dient, entsprechende Kanalwarteschlangen im FIFOR zu entleeren.
- Der TFM entfernt Sendedaten aus den pro Kanal vorhandenen Warteschlangen-Speicherbereichen im FIFOR auf FIFO-Basis und übergibt sie dem Sendevalidierungs-(TV-)Element 61T, das bestimmte Prozesse auf Validierungsebene an den Daten durchführt. Daten, die aus der Verarbeitung im Element 61T herrühren, werden dem Element. 61L (TL1) übergeben, das eine Verarbeitung auf der Ebene 1 durchführt und die sich ergebenden Daten als Antwort auf bestimmte Anforderungen, die von den L1- Schaltungen (22, Fig. 3) an der Schnittstelle 27 übergeben werden, bitseriell an die Schnittstelle 27 überträgt. Die Verarbeitung im TV 61V für Datenkanäle beinhaltet das Einfügen von protokollspezifischen Rahmeninformationen. Zusammen mit dem vorstehend erwähnten DCB-Kettungsmerkmal im DMAC gestattet dies der IDLC die Übertragung von großen Datenblöcken aus verstreuten Bereichen im Hostspeicher und die Einführung von unterschiedlich formierten und in unterschiedlichen Abständen angeordneten Protokollrahmeninformationen in diese Daten entsprechend einzelner Kanalkonfigurationen. Folglich werden das IOP- und das Hostsystem von der Verantwortung für umfangreiche Verarbeitungsoperationen befreit.
- In Bezug auf die vorstehend erwähnten Elemente 61V, 61L, 62T, 65C und 65Q sei angemerkt, dass jedes der entsprechenden Segmente, die in Fig. 3 bei 61, 62 und 65 gezeigt sind, mehrere Elemente enthält und in bestimmten Fällen in Untersegmente gegliedert sind. Das Sendesegment 61 enthält die Elemente 61T und 61L, die verschiedene Verarbeitungsfunktionen an den Sendedaten durchführen. Das FIFO-Segment 62 ist in das Sende- EIFO-Segment und das Empfangs-FIFO-Segment 62T (TFM) beziehungsweise 62R (RFM) unterteilt, um den FIFO- Warteschlangenbetrieb mit Sendedaten und Empfangsdaten getrennt zu verwalten. Das DMA-Segment 65 enthält die funktional autonomen Elemente 65C (DMAC) für die gesamte DMA-Steuerung und 65Q (DMAQ) für den Empfang von kanalweisen Anforderungen von den Segmenten 62T und 62R und die Platzierung dieser Anforderungen in der Warteschlange in Bezug auf das DMAC.
- Hinsichtlich der Sendedaten zeigen Anforderungen, die vom TFM an 65Q übertragen und von Letzterem 65C übergeben werden, den abnehmenden Füllstand von jeweiligen Kanal-Datenwarteschlangen an. Als Antwort auf solche Anforderungen und asynchron zum Erscheinen von entsprechenden Kanalzeitschlitzen an der Schnittstelle 27 dienen die Elemente 65C und das MIO dazu, den Zugriff auf den IOP-Speicher über den Bus 35 (oder den Hostsystemspeicher, je nachdem, welcher an den Bus 35 angeschlossen ist) zu erlangen und Sendedaten aus ihm abzurufen, die an entsprechende Kanalwarteschlangen im FIFOR übertragen werden.
- Diese Operationen des DMAC werden über die Register TDCR 1 bis 4 im DMAC gesteuert, wobei Letzteres aus Speicherbereichen der pro Kanal vorhandenen TDCR1 bis TDCR2 im FIFOR 52 und Speicherbereichen der pro Kanal vorhandenen TDCR3 bis TDCR4 im DMAR 54 geladen wird. Während DMAC-Maßnahmen in Bezug auf einen beliebigen Kanal werden die Register TDCR1, TDCR3 und TDCR4 mit entsprechenden Kanalsteuerinformationen geladen, die notwendig sind, um auf den externen Speicher zuzugreifen, Sendedaten (in Gruppen von bis zu 4 Byte) abzurufen und diese Bytes im FIFOR zu platzieren. Das Register TDCR2 ist ein 4-Byte- Pufferspeicher, in dem Sendedaten gehalten werden, die an das FIFOR unterwegs sind. Die Register TDCR1, TDCR3 und TDCR4 werden geladen, wenn eine nicht gezeigte "Sende-DMA- I Zustandsmaschine" im DMAC (die später gezeigt und beschrieben wird) in Bezug auf eine beliebige Kanalwarteschlange initialisiert wird, die bedient werden muss.
- Die Prozesse zur Übertragung von Sendedaten aus dem IOP-/ Hostspeicher in das FIFOR werden asynchron zum rechtzeitigen Erscheinen von entsprechenden Kanalzeitschlitzen an der (BTDM-)Schnittstelle 27 durchgeführt. Die Abwicklung der Sendedaten durch die Elemente 62T, 61V und 62 wird synchron mit dem Erscheinen der Schlitze durchgeführt, und die Zustände dieser Elemente in Bezug auf Sendeprozesse in aktiven Kanälen werden zyklisch synchron mit dem Erscheinen von entsprechenden Schlitzen gesichert und wieder geladen. Wie zuvor erwähnt wurde, finden diese Sicherungs- und Wiederladeoperationen zwischen diesen Elementen und dem TSR 53 vom RSM 63 gesteuert statt.
- Das Element 61V verarbeitet Sendedaten entsprechend den Kanalerfordernissen und leitet sie an das Element 63% weiter, um sie schließlich in bitserielle Form umzusetzen und an die Schnittstelle 27 zu übertragen. Obwohl Übertragungen von Sendedaten an der Schnittstelle 27 bitseriell erfolgen, kann während eines beliebigen Kanalzeitschlitzes ein ganzes Datenbyte übertragen werden. Jede Bitübertragung wird durch einen Anforderung-Bestätigung-Quittungsaustausch (requestacknowledge handshake) zwischen Schaltungen auf der Ebene 1 und TL1 durchgeführt, und alle Übertragungen werden während eines kleinen Zeitfensters innerhalb des Schlitzes zu Zwecken durchgeführt, die später erklärt werden. Während dieses Fensters senden die L1-Schaltungen in dem Zeitschlitz eines beliebigen aktiven Kanals eine veränderliche Anzahl von Anforderungen für Bitübertragenen, die zwischen 1 und 8 liegt, und T11 antwortet, indem sie Sendedatenbits mit Bestätigungssignalen übergibt.
- In Bezug auf aktive Datenkanäle beinhaltet die Verarbeitung auf der zweiten Ebene (Validierungsebene) durch das Element 61V das Einfügen von protokollspezifischen Rahmeninformationen und das Einfügen von Adress- und Prüfverweisinformationen (z. B. CRC- Prüfbits). Wie zuvor erwähnt wurde, werden digitalisierte Sprachsignale im freien Kanal übertragen; sie benötigen insofern keine ausdrücklichen Zieladressen, als ihr jeweiliges Ziel bereits beim Aufbau von entsprechenden Kanalverbindungen feststeht).
- Daten, die die Elemente 61V und 61L passieren, werden parallel und gleichzeitig im Pipeline-Verfahren, wenn auch synchron mit dem Erscheinen von entsprechenden Kanalzeitschlitzen an der Schnittstelle 27 abgewickelt. Man beachte hinsichtlich der Pipeline-Verarbeitung, dass die Zustände der Elemente 61V und 61L in Bezug auf einen beliebigen Kanal zwar synchron mit Übergängen von entsprechenden Kanalzeitschlitzen an der Schnittstelle 27 gesichert und wieder geladen werden, Sendedaten aber bitseriell an die Schnittstelle 27 und nur als Antwort auf bitweise Anforderungen übertragen werden, die von den L1-Schaltungen 22 (Fig. 2) an das Element 61L übergeben werden (innerhalb der Elemente 61L und 61V werden Sendedaten in bitparallelen Gruppen gehandhabt). Somit versteht es sich von selbst, dass sich die Verarbeitung, die in diesen Elementen notwendig ist, um ein Byte oder eine andere Dateneinheit an die Schnittstelle 27 zu übertragen, über eine oder mehrere Wiederholungen von entsprechenden Kanalzeitschlitzen an der Schnittstelle 27 erstrecken kann, aber zum Teil aufgrund der soeben erwähnten Pipeline-Verarbeitung (und zum Teil aufgrund der Warteschlangen-Abwicklung im asynchronen Teil 51) werden diese Daten in "Fließbandmanier" an der Schnittstelle 27 mit einer Geschwindigkeit übergeben, die gewöhnlich der Signal- Nenngeschwindigkeit in dem Kanal entspricht.
- Empfangsdaten werden von der Schnittstelle 27 am Element 60L (RL1) bitseriell empfangen, mit etwas zusätzlichem Verarbeitungsaufwand (einschließlich Verarbeitungsoperationen, um Zieladressen zu unterscheiden und Daten zu verwerfen, die nicht für den lokalen Knoten bestimmt sind) in diesem Element seriell-parallel in Bytes umgesetzt und an das Element 60V (RV) auf Validierungsebene zur Verarbeitung auf der "zweiten Ebene" weitergereicht. Diese Verarbeitung beinhaltet das Entfernen von protokollspezifischen Rahmeninformationen von in Datenkanälen empfangenen Daten, die CRC-Prüfung dieser Daten und die Übertragung der sich daraus ergebenden Empfangsdaten an das RFM-(Empfangs-FIFO-Manager-)Element 62R, um sie in Speicherbereiche der Empfangsdatenwarteschlange im FIFOR 52 zu laden, die entsprechenden Kanälen zugeordnet sind. Zustände, in denen die Empfangsdatenwarteschlangen im RAM 52 voll sind, werden vom Element 62R überwacht, und wenn eine Maßnahme erforderlich ist, werden Anforderungen der DMARQ 65Q übergeben, die das DMAC 65C veranlasst, so zu arbeiten, dass es in die Warteschlange gestellte, empfangene Däten aus dem FIFOR auf FIFO-Basis in pro Kanal vorhandene "Umlaufpufferspeicher" im Host-/IOP-Speicher weiterleitet.
- Im IDLC-Teil 50 werden die Zustände der Elemente 60L, 60V und 62R in Bezug auf Netzwerkkanäle synchron mit dem Erscheinen von entsprechenden Kanalzeitschlitzen an der Schnittstelle 27 gesichert und wieder geladen, und die Verarbeitung von Empfangsdaten in Bezug auf einen beliebigen Kanal wird synchron mit dem Erscheinen von entsprechenden Zeitschlitzen durchgeführt. Die Zustandsicherungs- und -wiederladeprozesse zwischen entsprechenden Elementen und dem TSR 53 werden vom Ressourcenmanagerelement (RSM) 63 gesteuert. Im IDLC-Teil 51 werden alle Operationen in Bezug auf Empfangsdaten asynchron zum Erscheinen von entsprechenden Kanalzeitschlitzen durchgeführt.
- Wie beim Sendepfad umfasst das in Fig. 3 bei der Bezugszahl 60 gezeigte Empfangselement die autonomen Unterelemente 60L und 60V, die jeweils die Abwicklung der an der Schnittstelle 27 empfangenen Daten auf der ersten und der zweiten Ebene ermöglichen. Wie beim Senden werden die Zustände dieser Elemente synchron mit dem Erscheinen von Kanalzeitschlitzen an der Schnittstelle 27 gesichert und wieder geladen, und daher findet die Verarbeitung von Daten in einem beliebigen Kanal durch diese Elemente unweigerlich synchron mit dem Erscheinen von entsprechenden Zeitschlitzen statt (obgleich sich die Verarbeitung, die für die Übertragung von einem Empfangsdatenbyte durch ein beliebiges dieser Elemente notwendig ist, über mehrere Rahmen von wiederholten Zeitschlitzen erstrecken kann, erlaubt die kanalweise Pufferung, die für jeden Kanal in jedem Element und im TSR 53 vorgesehen ist, dass die Pipeline-Verarbeitung dieser Daten so durchgeführt wird, dass die höchste Übertragungsgeschwindigkeit dieser Daten durch diese Elemente der Übertragungsgeschwindigkeit an der Schnittstelle 27 entspricht, so dass unter normalen Umständen kein Überlauf entstehen kann).
- Das Element 60L (RL1) führt an Empfangsdaten Verarbeitungsoperationen der ersten Ebene (Serien-Parallel- Umsetzung, Entfernung von HDLC-Beginn- und Endeflaggen usw.) durch, und das Element 60RV (RV) führt eine (Validierungs-)Verarbeitung der zweiten Ebene an Daten durch, die ihm vom Element 60L übermittelt wurden (Adressenerkennung, Entfernung von protokollspezifischen Informationen, CRC-Prüfung usw.). Während Daten vom Element 60RV zur Weiterleitung verfügbar werden, veranlassen von diesem Element übergebene Anforderungen den RFM 62R; diese Daten an entsprechende Kanalwarteschlangen im FIFOR 52 zu übertragen. Während eine beliebige dieser Kanalwarteschlangen einen vorher festgelegten Zustand der vollständigen Belegung erreicht (der einige Zeit, bevor sie überlaufen kann, erreicht wird), fordert der RFM 62R über die DMARQ 65Q Maßnahmen vom DMAC 65C an, die schließlich dazu führen, dass das DMAC Maßnahmen ergreift, um die entsprechende Warteschlange (in FIFO-Reihenfolge) zu entleeren.
- Das Unterbrechungsbehandlungselement (INT) 64 ist für die Erfassung und die lokale Speicherung von Statusinformationen (Hardware-Status in der IDLC und den L1-Schaltungen und den Kanalprozessstatus) zuständig, die dem Hostsystem gemeldet werden müssen. Das untergeordnete E/A-(SIO-)Element 67 ist über den Bus 35 mit dem Hostsystem verbunden, um dem Host Unterbrechungsanforderungsanzeigen bereitzustellen, wenn Statusinformationen lokal verfügbar sind, und auch um Direktzugriffspfade 89 vom Hostsystem zu den RAMs 52 bis 54 und den Registern sowohl im INT als auch im SIO bereitzustellen, mittels derer der Host direkt auf lokal gespeicherte Statusinformationen zugreifen kann.
- Die Pfade 89 sind zweiseitig gerichtet, so dass das Hostsystem auch direkt Operationen der IDLC programmieren kann, indem es Informationen über den Anfangszustand der Elemente und Steuerinformationen in die RAMs 52 bis 54 stellt (siehe die folgende Erörterung der Pfade 89 unter "Steuerpfade des Host"). INT 64 hat Verbindungen zu allen anderen IDLC-Elementen, um Ereignismarkierungssignale und zugehörige Ereignisstatusinformationen über den Pfad 90, der mit "alle" gekennzeichnet ist, und ähnliche Pfade 91 zu den L1-Schaltungen 22 zu empfangen. Die Chip-Auswahlleitung 92, die vom SIO 67 zu den L1-Schaltungen 22 verläuft, bereitet die L1-Schaltungen für die Übertragung ihrer Statusinformationen vor. Die Leitung 69, die zuvor erörtert wurde, dient dazu, Initialisierungsinformationen direkt von der Host-Schnittstelle 35 an die Schaltungen 22 weiterzugeben.
- Die Register ICR, HCR und VHR im SIO 67 und das Register IHEISR im INT 64 (siehe vorstehende Definitionen) sind dem/der ganzen IDLC-Chip/IDLC-Einheit gemein. Ausgangssignale des ICR und des HCR können über das Element 64 und den Pfad 90 in der gesamten IDLC versendet werden, um Betriebsbedingungen festzulegen; das Register ICR dient zur Festlegung der Betriebsart "Leerlauf" (idle) im gesamten Chip, und das Register HCR dient zur Festlegung der Betriebskonfigurationen der HyperChannels (siehe die in Bezug genommene, ebenfalls anhängige Anmeldung, die HyperChannels betrifft). Das Register VHR hält einen Unterbrechungsvektor, der zur Meldung des Chip- und Kanalstatus gehört, welcher überall in der IDLC über das Element 64 und den Pfad 90 erfasst wird. Das Register IHEISR im INT 64 dient als zentraler Punkt, um Hardwarefehlerinformationen in der gesamten IDLC über den Pfad 90 und von den L1-Schaltungen über den Pfad 91 zu erfassen.
- Die anderen beiden Register im INT 64, CEISR und EOPISR, sind allen Kanälen gemeinsam, im Grunde sind es aber kanalbezogene ("channelized") Register (für jeden Kanal im Netzwerk nachgebildet). Innerhalb des Speicherbereichs, der jedem Kanal im TSR 53 zugeordnet wird, gibt es "Abbilder" dieser Register. Während des zuvor erörterten zeitschlitzsynchronen Zustandsicherungs- und -wiederladeprozesses lädt der RSM 63 das Register CEISR im INT (mit CEISR-Abbildinformationen, die aus dem TSR abgerufen wurden), so dass sein Inhalt synchron dem Inhalt des Kanals entspricht, dessen Zeitschlitz gerade an der Schnittstelle 27 erscheint. Das Register EOPISR im INT ist ein zentraler Punkt zur Erfassung von Prozessende- Kanalstatusinformationen, und wenn sein Inhalt während einer Zeitschlitzperiode geändert wird, werden die Informationen vom RSM in einen der 16 EOPISR-Pufferspeicher im TSR- Speicherbereich übertragen, der dem jeweiligen Kanal zugeordnet ist. Der ausgewählte Pufferspeicher wurde mittels Zeigerinformationen im Register CEISR während des Zeitschlitzes gekennzeichnet. Siehe auch die nachstehenden Erörterungen der Zeitsicherungs- und -wiederlade-Pfade und des TSR. Der Inhalt der 16 EOPISR-Pufferspeicher, die zu einem Kanal gehören, bildet eine 16 Einträge tiefe Statuswarteschlange in Bezug auf den jeweiligen Kanal.
- Das Register CEISR stellt einen zentralen Punkt dar, um Fehlerunterbrechungsstatusinformationen pro Kanal an den Host zu übertragen, und das Register EOPISR bildet einen zentralen Punkt, um Prozessende-Statusinformationen pro Kanal an den Host zu übergeben. Diese Statusinformationen unterscheiden sich von den allgemeineren Informationen, die durch das VHR geleitet werden, und sind zu deren Ergänzung notwendig. Zu den Prozessende-Statusinformationen pro Kanal gehören Rahmenende- Statusinformationen pro Kanal, die mit der Geschwindigkeit von Zeitschlitzrahmen wiederkehren können (daher ist eine 16 Einträge tiefe Warteschlange für diese Art von Informationen notwendig).
- Die logische Konfiguration des INT 64 gestattet es, die verhältnismäßige Dringlichkeit von anstehenden Unterbrechungsbedingungen/-ereignissen festzustellen und die Übergabe von zugehörigen Unterbrechungsanforderungen und Statusinformationen entsprechend dieser Feststellung anzuordnen, so dass der Bus 35 und das Hostsystem nicht vorrangig für unwichtige Ereignisübertragungen verwendet werden.
- Der RSM 63 steuert zeitschlitzsynchrone Zustandsicherungs- und - wiederladeaktivitäten sowohl zwischen dem TSR 53 und den Elementen, die Sende- und Empfangsdaten verarbeiten, als auch zwischen dem TSR 53 und Statusregistern im RSM und im INT. Bestimmte der Statusregisterübertragungen finden in Bezug auf das TSR nur in eine Richtung statt (Nur-Lese- oder Nur-Schreib- Übertragungen), und zwar wie folgt. Die Register CCR und HPCR im RSM halten Informationen, die sich während der Verarbeitung in Bezug auf einzelne Kanäle nicht ändern (Sicherungsinformationen im TSR werden zum Zeitpunkt der Konfiguration der Kanäle aus dem IOP/Hostsystem geladen und ändern sich danach erst, wenn der Kanal neu konfiguriert wird); daher sind entsprechende Übertragungen vom TSR Nur-Lese- Übertragungen. Übertragungen aus dem Register EOPISR im INT an das TSR sind Nur-Schreib-Übertragungen. Dieses Register hält Statusinformationen, die Ereignisse darstellen, welche während der Kanalverarbeitung stattfinden, und sein Inhalt wird in einen von 16 Sicherungspufferspeicherplätzen im TSR gestellt, die dem jeweiligen Kanal gemäß Zeigerinformationen im Register CEISR zugeordnet sind. Aufgrund der Art und Weise, in der die Zeiger und die Statusinformationen in den Sicherungsspeicherplätzen gehandhabt werden, und der Art der Informationsfelder, die im EOPISR gespeichert werden, muss dieses Register nie aus dem TSR geladen werden.
- In Bezug auf alle Empfangs- und Sendeelemente (60L, 60V, 62R, 62T, 61V, 61L) in dem synchronen Teil sind die Zustandsicherurigs- und -wiederladeübertragungen zweiseitig gerichtet. Der Zustand eines jeden Elements in Bezug auf den Kanal, dessen Zeitschlitz gerade endet, wird in einem vorher zugeordneten Speicherbereich im TSR gesichert, und der Zustand desselben Elements in Bezug auf den Kanal, dessen Zeitschlitz gerade beginnt, wird anhand von Informationen, die zuvor in einem vorher zugeordneten Speicherbereich im TSR (siehe Fig. 6) gesichert wurden, eingeleitet.
- Von der Schnittstelle 27 empfängt der RSM über die Leitung 94 Vorausanzeigen von Rahmen- und Kanalzeitschlitzübergängen, die es ihm ermöglichen, Vorbereitungen für die Zustandsicherungs- und -wiederladeaktivitäten mit einer Zeittoleranz zu treffen, die es Elementen, deren Zustände gesichert und wieder geladen werden müssen, gestattet, in stabile Zustände weiterzuschalten und dadurch einen eindeutigen, gleichmäßigen Fortgang der Verarbeitung beim nächsten Erscheinen des gerade endenden Zeitschlitzes sicherzustellen. Bezug nehmend auf Fig. 4, besteht die Vorbereitung aus dem Vorababruf (P) von CCR-Bits, die den nächsten Kanaltyp angeben.
- Anschließend werden Zustandsvariable, die zu der Übertragungsverarbeitung in vorhergehenden und nachfolgenden Kanälen gehören, gesichert und wieder geladen, dann werden globale Variable, die der Sende- und Empfangsverarbeitung im nächsten Kanal gemeinsam sind, geladen (in die Register CCR und HPCR im RSM), und daraufhin werden die
- Empfangszustandsvariablen, die zu vorhergehenden und nachfolgenden Kanälen gehören, gesichert und wieder geladen. Durch das Laden der globalen Variablen wird praktisch das Kanaltyp-Feld, das während des Vorababrufs geladen wurde, erneut geladen; aber da sich dieses Feld während der internen IDLC-Verarbeitung nicht ändert, wird es auch durch den erneuten Ladevorgang nicht geändert. Die Zustandsicherungs- und - wiederlade-Austauschoperationen in Bezug auf Sende- und Empfangselemente werden über die Pfade durchgeführt, die mit den Bezugszahlen 95 bis 97 angegeben sind.
- In Bezug auf INT findet die Erfassung von Kanalstatusinformationen nur während der jeweiligen Kanalzeitschlitze statt. Die Statusinformationen werden in den Registern CEISR und EOPISR gepuffert und während der Zustandsicherungs- und -wiederladephase vom INT im TSR gesichert. Unterbrechungsanzeigen werden an das SIO übertragen und von Letzterem an der Busschnittstelle 35 übergeben. Zu einem späteren Zeitpunkt und asynchron zu den Kanalzeitschlitzen werden gesicherte Informationen vom IOP/Hostsystem durch Direktzugriff auf das TSR über das SIO und den Pfad 89 abgerufen.
- Die Pfade 89 vom SIO zum INT und den RAMs 52 bis 54 sind zweiseitig gerichtet. In der Richtung von der IDLC zur Schnittstelle 35 ermöglichen diese Pfade dem IOP/Hostsystem den Abruf von Statusinformationen aus dem TSR und Registern im SIO und INT (genauer gesagt dem Register VHR im SIO und dem Register IHEISR im INT). In der entgegengesetzten Richtung (die als Hoststeuerschnittstelle bezeichnet wird) ermöglichen diese Pfade dem IOP/Hostsystem, Anfangszustand- und Steuerinformationen in die RAMs 52 bis 54 und in Register in den Logikelementen der IDLC zu stellen.
- Folglich kann der Host-/IOP-Komplex beispielsweise Zustandsinformationen in das TSR einfügen, um Anfangsbetriebszustände in Elementen im synchronen Teil der IDLC in Bezug auf ausgewählte Kanäle festzulegen. Ein Vorteil des Vorhandenseins dieses getrennten Pfades besteht darin, dass er die normalen Übertragungspfade an der MIO-Schnittstelle nicht störend beeinflusst und er die Aktivierung und Deaktivierung eines jeden Kanals unabhängig von allen anderen Kanälen ermöglicht. Auch kann der Host/IOP über diesen Pfad einzelne Elementregister setzen, um IDLC-Operationen zu konfigurieren oder zu steuern; in bestimmten Fällen dynamisch und mit geringstmöglicher Störbeeinflussung von Übertragungsprozessen. Er kann zum Beispiel die Register ICR und HCR im SIO ändern, um die IDLC für bestimmte Betriebsarten (z. B. "Rücksetzen") zu konfigurieren, und er kann Register wie zum Beispiel das Register HPCR im RSM ändern, um Elemente wie das INT dynamisch über Maßnahmen zu informieren, die in Bezug auf bestimmte Unterbrechungsstatus-Warteschlangen im TSR getroffen werden (siehe die Beschreibung der Unterbrechungsbehandlungsoperationen im Abschnitt 6.6 und die ausführlichen Beschreibungen des RSM und des INT).
- Im Hinblick auf die vorstehend erwähnte Verwendung des Pfades 89, um Informationen über den Zustand von Elementen in Bezug auf ausgewählte Kanäle in das TSR zu laden, sei auf Fig. 6 verwiesen. Man beachte, dass das TSR 53 einen Speicherbereichblock enthält, der jedem Kanal fest zugeordnet ist, und in dem Block ist jedem Kanal eine Anzahl von Wortspeicherbereichen zugeordnet, die für "Zeitsicherungs- und - wiederlade"-Wörter ("time swap" words) "ABC-TS0N" reserviert sind, wobei ABC synchrone Verarbeitungselemente (z. B. RV, TV usw.) darstellt, TS das "Zeitsicherungs- und -wiederladewort" darstellt und N 0 oder 1 beträgt. Man beachte ferner, dass jeder Kanalblock Speicherbereiche enthält, die für Steuerinformationen (CCR, HPCR) reserviert sind, um die Konfiguration und das Übertragungsprotokoll in dem jeweiligen Kanal individuell anzupassen, und für Statusinformationen (CEISR, EOPISR), um Ereignisse anzuzeigen, die dem IOP/Hostsystem durch Unterbrechungen gemeldet werden können.
- Bezug nehmend auf die Fig. 7 und 8, kann der IOP/Host unter Verwendung des Pfades 89, um auf das FIFOR 52 und das DMAR 54 zuzugreifen, DMA-Steuerparameter, TDCR und RDCR, initialisieren, welche die Abwicklung von DMA-Übertragungen von Daten, die von der IDLC stammen, über die Schnittstelle 35 festlegen. Diese Parameter beinhalten Steuerwörter (TDCR1 und RDCR1), die zur Angabe der jeweiligen Länge des Datenblocks und der Bytefolgesteuerung verwendet werden können, sowie Steuerwörter (TDCR3 und TDCR4, RDCR3 und RDCR4), die zur Angabe von Operationen des DMAC-Segments in Bezug auf einzelne Kanäle verwendet werden können.
- TDCR3 hält Adressinformationen, die den Speicherbereich im IOP-/Hostspeicher angeben, aus dem und in den Sendedaten übertragen werden sollen. TDCR4 hält eine DCB-Befehlsmatrix, die die Sendeoperation angibt (mit möglichen "Über-Verkettung- Anzeigern", um die Operationen auf zusätzliche DCBs auszudehnen, auf die durch eine Maßnahme des IDLC-DMAC zugegriffen werden kann). RDCR3 und RDCR4 halten Adressparameter, die Grenzen eines Umlaufpufferspeicherbereichs im IOP-/Hostspeicher angeben, in den empfangene Daten übertragen werden sollen.
- In einer ISDN-Primärmultiplexumgebung (primary rate ISDN environment) unterstützt die IDLC 32 Kanäle mit einer maximalen Datenübertragungsgeschwindigkeit in jedem Kanal von 64.000 Bit pro Sekunde (64 kBit/s) im Vollduplexbetrieb oder einer Gesamtgeschwindigkeit in jedem Kanal von 128 kBit/s. Diese Geschwindigkeit reicht aus, um der Vollduplexübertragung von entweder Daten oder digitalisierter Sprache in einem beliebigen Kanal Rechnung zu tragen, und bei höheren Datenübertragungsgeschwindigkeiten können Kanäle zu veränderbaren Gruppen von HyperChannels zusammengefasst werden.
- Bei der Einschaltrückstellung setzt das IOP/Hostsystem alle Register in der IDLC und den L1-Schaltungenind alle Speicherplätze in den RAMs 52 bis 54 auf Anfangswerte und gibt anschließend die IDLC frei, indem es in das ICR-Register (IDLC- Konfigurationsregister) im SIO schreibt (siehe die folgende Erörterung dieses Registers). Alle diese Maßnahmen werden über den Bus 35 und durch das SIO ergriffen. Auf die Register in jedem der logischen Segmente der IDLC kann über nicht gezeigte Erweiterungen des Pfades 89 zugegriffen werden. Das SIO decodiert Adressen von einzelnen RAM-Einheiten und Segmentregistern und leitet geeignete Anforderungssignale an die Einheiten und die Segmente weiter. Die Segmente und RAM- Einheiten unterwerfen diese Anforderungen zusammen mit Anforderungen von anderen Segmenten einer Prioritätsentscheidung, und wenn sie fertig sind, senden sie eine Bestätigung an das SIO, woraufhin die Übertragungen der relevanten Informationen (vom IOP an Adressräume der RAM- Einheit oder einzelne Segmentregister) abgeschlossen sind.
- Daraufhin initialisiert die IOP die L1-Logik über den Pfad 69 und führt Operationen über diesen Pfad aus, um zu prüfen, ob die L1-Schaltungen Daten erfolgreich über das Netzwerk übertragen können.
- An dieser Stelle empfängt der RSM von den L1-Schaltungen über die BTDM-Schnittstelle 27 und die Verbindungsleitung 94 Signale, die Übergänge von Kanalzeitschlitzen anzeigen, und steuert Zustandsicherungs- und -wiederlade-Übertragungen zwischen den anderen Elementen im synchronen Teil der IDLC und im TSR. Die anderen Elemente wurden ebenfalls aktiviert und sind zur Verarbeitung von Daten bereit.
- Nachdem dies geschehen ist, können einzelne Kanäle in der IDLC aktiviert werden, indem entsprechende Werte in zugehörige Register (vom IOP über das SIO) geschrieben werden. Nachdem ein beliebiger Kanal aktiviert wurde, gibt der IOP die Datenübertragung in den L1-Schaltungen frei, wobei er diese Schaltungen veranlasst, die Übertragung von Daten an den Kanal von der IDLC anzufordern und empfangene Daten an die IDLC weiterzuleiten. Alle Datenübertragungen erfolgen über die BTDM- Schnittstelle 27 in dem Zeitschlitz des jeweiligen Kanals, und die gesamte Verarbeitung der empfangenen und gesendeten Daten im synchronen Teil der IDLC wird nur während des entsprechenden Zeitschlitzes durchgeführt.
- Die Datenübertragung findet statt, indem Daten über DMAC- Operationen, die von DCBs angegeben werden, welche im zugehörigen Kanalspeicherbereich im DMAR gespeichert werden, aus dem IOP-Speicher abgerufen werden, diese Daten an entsprechende Kanalspeicherbereiche im FIFOR übertragen werden, die Daten vom TFM weiter an das TV übertragen werden und die Daten im TV und auf der TL1 verarbeitet werden, um die benötigten Formate zu erzeugen. Die Daten werden vom TFM, TV und der TL1 in Byte-Einheiten gehandhabt und bitseriell über die Schnittstelle 27 als Antwort auf einzelne Bitübertragungsanforderungen, die von L1-Schaltungen übergeben werden, weitergereicht. Bis zu ein Datenbyte (8 Bit) kann während eines Kanalzeitschlitzes übertragen werden. An der IOP- Schnittstelle 35 werden Sendedaten in 4-Byte-Einheiten übertragen, und im FIFOR hat jeder Kanal einen Pufferspeicherbereich, in dem 4 Byte gehalten werden können.
- Der Empfang von Daten findet statt, indem Daten in der RL1 und im RV umgekehrt verarbeitet werden, die sich ergebenden Daten an den RFM und über Letzteren an entsprechende Kanalempfangsspeicherbereiche im FIFOR übertragen und die Daten mit Hilfe des DMAC als Antwort auf Steuerinformationen, die im DMAR vorher festgelegt wurden, aus dem FIFOR in Umlaufpufferspeicherbereiche im IOP-Speicher weitergeleitet werden. An der Schnittstelle 27 werden die Daten als Antwort auf einzelne Anforderungen, die von L1-Schaltungen während des Kanalzeitschlitzes übergeben werden, bitseriell empfangen. Bis zu ein Datenbyte kann während eines Zeitschlitzes übertragen werden. In der RL1, im RV und RFM werden die Daten in Byte- Einheiten gehandhabt. Das FTFOR hält bis zu 4 Byte an Empfangsdaten pro Kanal. An der IOP-Schnittstelle 35 werden Empfangsdaten in 4-Byte-Einheiten übertragen.
- In Bezug auf Sendedaten in beispielsweise dem HDLC-Format erzeugt TV CRCs für abgehende Rahmen und stellt die Daten an TL1 durch. IL1 erzeugt Beginn- und Endeflaggen für jeden Rahmen, fügt nach Bedarf Stopfbits in die Daten ein, um die Transparenz (von Daten in Bezug auf Steuerzeichen) aufrechtzuerhalten, und reicht die Daten mit den CRCs und Flaggen bitseriell an die Schnittstelle 27 weiter. In Bezüg auf Empfangsdaten beispielsweise im HDLC-Format, sucht die RL1 nach Anfangs- und Enderahmenflaggen und verwirft sie, stellt eingeblendete Bits (stuffed bits) in Daten fest und verwirft sie, führt eine Oktettausrichtungsprüfung an den restlichen Daten durch und leitet sie an RV weiter. RV führt Adressenerkennungs- und CRC-Prüffunktionen durch, bevor es die Daten an den TFM weitergibt.
- Alle Übertragungen zwischen dem DMAC und dem Bus 35 erfolgen über das MIO. Das MIO bedient Übertragungsanforderungen vom DMAC, indem es um den Bus konkurriert und Bussteuerungs-, Adress- und Datensignale hintereinanderreiht, um die Übertragung durchzuführen.
- Unterbrechungsanforderungen in Bezug auf kritische Kanalprozessbedingungen werden dem INT vom RSM, RFM, TFM und der TL1 übergeben. RSM meldet dem INT TS-RAM-Paritätsfehler. RFM und TFM sind zentrale Punkte, die dazu dienen, dem INT kanalbezogene Hardwarefehler (Busfehler, FIFO-Paritätsfehler usw.) in Bezug auf Ereignisse in entsprechenden Segmenten und im DMAC-Segment zu melden. RFM dient auch als zentraler Punkt für Unterbrechungsanforderungen in Bezug auf RL1 und RV, und TFM hat in Bezug auf TV eine ähnliche Funktion. Folglich decken Anforderungen vom RFM alle Kanalprozessbedingungen an, die gemeldet werden können und die in der Empfangspipeline angetroffen werden (DMAC, RFM, RV, RL1), und Anforderungen vom TFM und der TL1 decken all jene Bedingungen ab, die in der Sendepipeline angetroffen werden (DMAC, TFM, TV, TL1).
- Als Antwort auf diese Anforderungen übernimmt die INT während eines oder mehrerer Zeitschlitze des entsprechenden Kanals die Aufgabe, CEIS- und EOPLS-Wörter zusammenzusetzen (CEIS = kanalbezogener Fehlerunterbrechungsstatus, EOPIS = Prozessende- Unterbrechungsstatus). Die CEIS-Wörter beschreiben Kanalfehlerbedingungen, während die EOPIS-Wörter Kanalübertragungs-Rahmenübergangsereignisse beschreiben. Die CEIS-Wörter enthalten auch Adressierungsinformationen, um EOPIS-Wörter zu lokalisieren.
- Diese Wörter werden vom INT mit Hilfe des im RSM vorhandenen Zustandsicherungs- und -wiederlademechanismus in das TSR geschrieben. Im TSR werden diese Statuswörter in Speicherbereichen gesichert, die jeweiligen Kanälen fest zugeordnet sind, wobei jedes EOPIS-Wort in einem von 16 Speicherbereichen gesichert wird, die EOPIS-Parametern als Warteschlange zugeordnet sind. Der einzelne Speicherbereich in der EOPIS-Warteschlange, in den bei jedem Zugriff geschrieben werden soll, wird von Zeigerinformationen angegeben, die das INT dem RSM liefert. Die Warteschlange wird im "Umlauf"- Verfahren verwendet, wobei der Zeiger in Schrittweiten von eins zu einem letzten Speicherbereich weiterschaltet und von diesem Speicherbereich zu einem ersten Speicherbereich "umläuft". Die Zeigerinformationen werden auch vom INT im CEIS-Statuswort gespeichert, das über den RSM ins TSR geschrieben wird und dadurch dem IOP zur Überwachung zur Verfügung steht. Das CEIS- Wort enthält auch Informationen, die die Anzahl der anstehenden Wörter in der Warteschlange angeben, die vom INT aktualisiert wird, während neue Einträge in die Warteschlange geschrieben werden.
- In Bezug auf ein jedes solches Statuswort, das in das TSR geschrieben wird, setzt das INT einen Vektor zusammen, der den zugehörigen Kanal ausweist, und sendet ihn zusammen mit einer Anforderung an das SIO. Das SIO speichert den Vektor im Register VHR, aktiviert ein Unterbrechungssignal auf dem Bus 35, und bei Bestätigung durch den IOP gibt es den Vektor auf den Bus.
- Später decodiert der IOP den Vektor, stellt fest, welcher Kanal beteiligt ist, und ruft mit Hilfe des SIO das zugehörige CEIS- Wort ab. Bei der Prüfung dieses Wortes stellt der IOP fest, ob es anstehende Einträge in der EOPIS-Warteschlange gibt. Wenn ja und wenn der IOP bereit ist, sich mit diesen Parametern zu befassen, ruft er über das SIO einen oder mehrere der Warteschlangeneinträge ab, wobei er dem SIO Adressinformationen bereitstellt, die er von den Zeigerinformationen in dem zuvor abgerufenen CEIS abgeleitet hat, und die CEIS-Informationen im TSR ändert, um die Anzahl der Einträge widerzuspiegeln, die in der jeweiligen EOPIS-Warteschlange als anstehende Einträge verbleiben.
- Zu diesen Zeitpunkten greift der IOP darüber hinaus über das SIO und den Programmsteuerpfad 89 auf das HPCR-Register im RSM zu und ändert Informationen in diesem Register, um anzuzeigen, dass sich der Inhalt der EOPIS-Warteschlange des zugehörigen Kanals geändert hat, und um ferner die Anzahl der anstehenden Warteschlangeneinträge, die entfernt wurden, anzuzeigen. Das INT verwendet diese HPCR-Informationen, um festzustellen, ob die Warteschlange nicht leer ist; das heißt, ob es eine weitere Unterbrechung in Bezug auf die Warteschlange erzeugen muss.
- Während das INT EOPIS-Wörter in jede Kanalwarteschlange schreibt und das zugehörige CEIS-Wort aktualisiert, um die Anzahl der gerade anstehenden Einträge anzugeben, setzt es, wenn die Anzahl 16 erreicht, ein Bit im sechzehnten Eintrag, um eine Bedingung "Warteschlange voll" anzuzeigen. Wenn der IOP diesen Eintrag abruft, wertet er das umgeschaltete Voll-Bit als Hinweis darauf, dass einige nachfolgende Einträge gegebenenfalls überschrieben wurden; d. h. als ein Hinweis, dass seine Informationen in Bezug auf Übertragungsrahmenereignisse/Senderahmenereignisse in dem jeweiligen Kanal möglicherweise unvollständig sind.
- Der IOP kann einen Kanal sperren, indem er zuerst die Datenübertragung auf diesem Kanal in der L1-Logik anhält und den Kanal anschließend in der IDLC sperrt, indem er Kanaltyp- Bits in dem jeweiligen Kanalsteuerregister (CCR) auf einen Wert setzt, der einen inaktiven Kanal angibt. Der IOP kann die IDLC vollständig sperren, indem er ein Modusfeld im ICR-Register auf einen vorher festgelegten Wert setzt (weitere Informationen finden sich in der folgenden ausführlichen Beschreibung des SIO-Elements).
- Mit bestimmten hier erwähnten Ausnahmen werden die Informationsübertragungen zwischen der IDLC und ihren externen Schnittstellen und zwischen Elementen innerhalb der IDLC durch den Austausch von Anforderungs- und Bestätigungssignalen durchgeführt. Ausnahmen in Bezug auf die Datenübertragung und den Datenempfang gibt es an der BTDM-Schnittstelle und an der Schnittstelle zwischen RL1 und RV.
- An der BTDM-Schnittstelle muss TL1 ein Sendedatenbit innerhalb eines vorher festgelegten Zeitraums nach dem Erscheinen einer Anforderung für eine Bitübertragung von den L1-Schaltungen übergeben, und RL1 muss innerhalb eines vorher festgelegten Zeitraums, nachdem L1 angezeigt hat, dass sie ein Empfangsbit sendet, dieses Empfangsbit annehmen. Wenn die Datenbyte- Pufferspeicher in TL1 (es gibt 2) beide leer sind, wenn eine Anforderung für eine Bitübertragung an der Schnittstelle 27 erscheint, erhält TV eine Unterlauf-Anzeige, das daraufhin INT eine Unterbrechungsanzeige übergibt. Genauso aktiviert RL1 eine Überlaufanzeige, die über RV und RFM an INT weitergegeben wird, falls der (einzige) Datenbyte-Pufferspeicher in RL1 voll ist, wenn die Übertragung eines Empfangsbits an der Schnittstelle 27 angezeigt wird. INT erfasst und speichert dann die zugehörigen Statusinformationen und erzeugt über das SIO eine zugehörige Unterbrechungsanforderung an den IOP.
- An der Schnittstelle zwischen RL1 und RV gelten ähnliche Einschränkungen für synchrone Übertragungen, nämlich, dass RV ein Empfangsdatenbyte annehmen muss, das innerhalb eines vorher festgelegten Zeitbaums, nachdem RL1 angezeigt hat, dass es dieses Byte übergibt, von RL1 übergeben wird. Der Zeitraum kann in Abhängigkeit von der aktuellen Schlitzphase an der BTDM- Schnittstelle unterschiedlich sein. Im Allgemeinen ist der Zeitraum kürzer als die Zeitspanne, innerhalb der ein weiteres Bit an der BTDM-Schnittstelle empfangen werden könnte, oder der Zeitspanne, innerhalb der der RV-Status gesichert werden würde (siehe die Erörterung von "DONE"-Anzeigen in der folgenden Beschreibung des RSM).
- Alle anderen IDLC-Übertragungen finden vollständig mit Anforderung-Bestätigung-Quittungsaustausch statt. Der TFM überträgt Sendekanaldaten jeweils byteweise aus einem entsprechenden 4-Byte-Pufferspeicher im FIFOR an das TV. Jede Übertragung wird durch eine Anforderung von TV eingeleitet und mit einer Bestätigung vom TFM abgeschlossen. Sobald die letzten 4 Byte in einer Operation, die nicht durch diese Übertragung abgeschlossen wird, aus dem FIFOR-Pufferspeicher übertragen werden, übergibt TFM eine Anforderung für zusätzliche Daten an die DMARQ. Anforderungen in der DMARQ werden vom DMAC asynchron bedient, das mit dem MIO interaktiv kommuniziert, um den Bus 35 zu konkurrieren, direkt auf den IOP-Speicher zuzugreifen und 4 Byte an zusätzlichen Sendequellendaten an das FIFOR zu übertragen. In Abhängigkeit von der Größe des Busses 35 kann die 4-Byte-Übertragung in einer oder mehreren Stufen durchgeführt werden, aber dem DMAC erscheint die Übertragung als eine einzige Operation. Während das TV seine Verarbeitung eines jeden Übertragungsdatenbytes abschließt, sendet es eine Übertragungsanforderung an TL1, und Letztere nimmt, wenn sie bereit ist, das Byte an und sendet eine Bestätigung.
- Beim Umgang mit Empfangsdaten fordert RV eine Übertragungsmaßnahme vom RFM an, während es die Verarbeitung eines empfangenen Bytes abschließt, und wenn der RFM bereit ist, nimmt er das Byte ebenso an und sendet eine Bestätigung. Das Byte wird im FIFOR in einem 4-Byte- Empfangsdatenspeicherbereich abgelegt, der dem entsprechenden Kanal zugeordnet ist, und wenn sich dieser Speicherbereich mit dem letzten von 4 Byte füllt, übergibt der RFM eine Anforderung an die DMARQ. Das DMAC bedient diese Anforderung asynchron und überträgt 4 Byte aus dem FIFOR an einen gekennzeichneten Umlaufpufferspeicherbereich im IOP, auf den direkt zugegriffen wird, nachdem das MIO dazwischen um den Bus 35 konkurriert hat.
- Man beachte, dass die Ausgestaltung der IDLC geändert werden kann, um einer Vielzahl von verschiedenen Busschnittstellen 35 Rechnung zu tragen, indem einfach die Ausgestaltung des MIO und des SIO geändert wird und an den anderen Segmenten keine Änderungen vorgenommen werden und die gesamte Schaltungsanzahl des Bauelements auch nicht wesentlich verändert wird.
- Das Zeitsicherungs- und -wiederlade-RAM (TSR) enthält Speicherbereichsblöcke, die einzelnen Verarbeitungselementen im synchronen Teil der IDLC zugeordnet sind, welche für den Empfang von Daten von der BTDM-Schnittstelle (RL1, RV und RFM) und die Übertragung von Daten an die BTDM (TFM, TV und TL1) zuständig ist. Jeder Block enthält Speicherbereiche, die Zeitmultiplex-(TDM-)Verarbeitungszeitkanälen fest zugeordnet sind, die von den synchronen IDLC-Verarbeitungselementen bedient werden, welche Netzwerkübertragüngskanälen entsprechen, die in zugeordneten Zeitkanalpositionen auf der BTDM abgefragt werden und über die L1-Schaltungen angeschlossen sind.
- Jeder Kanalspeicherbereich zeigt den Übertragungsstatus des jeweiligen Netzwerkkanals/Schlitzes an und enthält in Bezug auf aktive Kanäle ein Zeitsicherungs- und -wiederlade-Statuswort ("time swap" status word) sowie Unterbrechungsstatusinformationen in Bezug auf diese Kanäle. Der Zeitsicherungs- und -wiederladestatus gibt den Verarbeitungszustand des zugehörigen IDLC-Elements in Bezug auf den jeweiligen Kanal nach dem letzten Erscheinen des zugehörigen Zeitschlitzes an der BTDM-Schnittstelle an. Die Unterbrechungsstatusinformationen geben Ereignisse an, die in den jeweiligen Kanälen stattfinden, und werden im TSR zur endgültigen Übertragung an den IOP/Host-Komplex gespeichert.
- Die Unterbrechungsstatusinformationen werden vom Unterbrechungsverarbeitungselement (INT) gesteuert gesammelt und gespeichert. Der TSR-Speicherbereich, der diesen Informationen zugeordnet wird, reicht aus, damit der Status für jeden Kanal in Bezug auf mehrere Ereignisse, die zu verschiedenen Zeitpunkten stattfinden, in die Warteschlange gestellt werden kann, wodurch der Abrufschritt durch den IOP/Hostkomplex in Bezug auf mehrere Ereignisse wirksam durchgeführt werden kann. Das INT-Element ist für die Verwaltung dieser Warteschlangen zuständig.
- Verarbeitungskanäle, die aktiv sind und gerade zur Übertragung freigegeben werden, werden von den IDLC-Verarbeitungselementen synchron mit dem Erscheinen von entsprechenden Zeitschlitzen an der BTDM-Schnittstelle bedient. Am Ende eines jeden Schlitzes, der zu einem aktiven Kanal gehört, arbeiten die entsprechenden Verarbeitungselemente mit dem Ressourcenmanager RSM zusammen, um ihren neuesten Verarbeitungsstatus im TSR-Speicherbereich zu sichern, der zu diesem Kanal und dem entsprechenden Element gehört, und zu Beginn eines Zeitschlitzes, der zu dem nächsten aktiven Kanal gehört, arbeiten die Elemente mit dem RSM zusammen, um den Status wieder zu laden, der in Bezug auf diesen nächsten Kanal gesichert wurde, als dieser zuletzt bedient wurde beziehungsweise als dessen Schlitz zuletzt erschien.
- Während eines jeden aktiven Kanalverarbeitungsschlitzes und bei einem Signal vom RSM führen die IDLC-Verarbeitungselemente gemeinsam Verarbeitungs- und Pufferoperationen in Bezug auf Daten durch, die empfangen und durch die Elemente in dem zugehörigen Kanal übertragen werden. Die Daten werden an der BTDM-Schnittstelle bitseriell abgewickelt (während eines beliebigen Schlitzes können mehrere Bits übertragen werden) und zwischen Verarbeitungselementen bitparallel und byteseriell.
- Die Elemente, die direkt mit der BTDM verbunden sind (TL1, RL1) führen Parallel-Seriell- und Seriell-Parallel- Umsetzungsfunktionen an den Daten aus, und außerdem führen die Elemente in verschiedenen Stufen der Abwicklung Verarbeitungsfunktionen in Bezug auf Daten aus, die in Rahmenformaten transportiert werden (z. B. in Bezug auf Kanäle, die für HDLC-Protokollübertragungen konfiguriert sind). Zu diesen Funktionen gehört hier das Einfügen und Entfernen von Begrenzungszeichen und Füllmustern in Bezug auf formatierte Kanäle, das Einfügen und Entfernen von Stopfbits in beziehungsweise aus Daten in Protokollkanälen (um die Transparenz in Bezug auf Steuerzeichen aufrechtzuerhalten), die Adressenerkennung beim Empfang, um die Verarbeitung selektiv auf Daten zu beschränken, die in Bezug auf den lokalen Knoten der/des IDLC/IOP korrekt adressiert sind, das Einfügen und Prüfen von CRC-(zyklischen Blockprüfungs-)Informationen usw.
- Über das untergeordnete E/A-Element SIO kann der IOP zum Zweck eines programmierbaren Eintrags von Initialisierungsinformationen in Bezug auf die Elemente und Kanäle und zum Abruf von Unterbrechungsstatusinformationen in Bezug auf die Kanäle auch auf das TSR zugreifen.
- Fig. 9 veranschaulicht den physischen und logischen Aufbau des TSR, und Fig. 6 zeigt, wie der Speicherbereich im TSR_ Übertragungskanälen zugeteilt und wie der Speicherbereich eines jeden Kanals verwendet wird.
- Bezug nehmend auf Fig. 9, umfasst das TSR ein statisches 2048 · 36-RAM 101 (siehe die hachstehende Erörterung von Fig. 6 in Bezug auf Speicherbereich, der einzelnen Kanalparametern und einer Reserveanwendung zugeordnet wird). Wenn die RAM-Fehler große Toleranzen haben, sollten zwei 2048 · 36-RAMs bereitgestellt und je nachdem, welches RAM vollkommen fehlerfrei ist, entweder das eine oder das andere RAM verwendet werden. Das TSR benötigt eine Speicherkapazität von mindestens 1024 · 36, wenn ein geringerer Reservespeicherbereich akzeptabel ist.
- Die Zugriffssteuerungen enthalten die Logik 102, die Multiplexerschaltung 103 und das Register 104. Die Adressierung von Speicherbereichen im RAM wird von der Adressenmultiplexerschaltung 105 und dem Adressregister 106 gesteuert. Daten werden über die Datenmultiplexerschaltung 107 und das Pufferspeicherregister 108 in das TSR eingegeben und über das Pufferspeicherregister 109 aus dem TSR ausgegeben. Die Ausgangssignale des Registers 109 werden zusammen mit Bestätigungssignalen (TSR_RSM_ACK oder TSR_SIO_ACK), die eines der Segmente als ausgewählt kennzeichnen, an die Eingänge des RSM und des SIO angelegt.
- Der Leser wird feststellen, dass die Eingänge der Schaltungen 102, 103, 105 und 107 sowie die Ausgänge der Schaltung 102 als "A_B_C" dargestellt sind, wobei A und B die abgekürzten Namen von Segmenten sind und C eine Funktion bezeichnet. Bei dieser Darstellung, die in der gesamten folgenden Beschreibung aller Segmente durchgehend verwendet wird, stellt der als erstes bezeichnete Teil die Quelle eines jeweiligen Signals dar, und der als zweites bezeichnete Teil stellt das Ziel dieses Signals in der veranschaulichten Schaltung dar. In manchen Fällen wird das Zielsegment weggelassen, aber es versteht sich von selbst, dass das Ziel zumindest das des angegebenen Segments ist.
- In Fig. 9 ist somit klar, dass "RSM_ADDRESS" "RSM_TSR_ADDRESS" darstellt und eine Gruppe von Adresssignalen vom RSM bezeichnet, die über den Multiplexer 105 an das Register 106 übertragen werden können. Ebenso ist klar, dass alle Eingängssignale in Fig. 9, die RSM als angegebene Quelle haben, ausschließlich an das TSR gerichtet sind. TSR-Eingangssignale vom SIO sind eine Ausnahme der obigen Regel, da das SIO Zugriff auf alle RAM-Segmente, TSR, FIFOR und DMAR, hat. In Bezug auf die SIO-Eingangssignale in dieser Figur haben alle Adress-, Daten- und Paritätsfunktionen RAM-Segmente in der IDLC zum Ziel. Die Funktion, die das TSR als ausschließliches Ziel auswählt, ist das aktive Signal der beiden Signale "SIO_TSR_RD" oder "STO_TSR_WR" (die einzigen Signale vom SIO, die mit einem ausdrücklich angegebenen Ziel gezeigt sind).
- Die Multiplexerschaltungen 103, 105 und 107 wählen zwischen jeweiligen Eingangssignalen aus, die vom RSM und SIO übergeben werden. Der Multiplexer 105 wählt zwischen Adresseneingangssignalen aus, die von diesen Segmenten übergeben werden, der Multiplexer 107 wählt zwischen Dateneingangssignalen aus, die von diesen Segmenten übergeben werden, und der Multiplexer 103 wählt zwischen Paritätseingangssignalen aus, die von diesen Segmenten übergeben werden. Die ausgewählten Eingangsdaten werden zusammen mit der entsprechenden Eingangsparität an die Adressposition des TSR geschrieben, die von dem entsprechenden Adresseneingangssignal gekennzeichnet wird. Eingangsdaten werden in 32 bitparallelen Gruppen von "tatsächlichen Daten" in Begleitung von 4 bitparallelen Gruppen mit der Eingangsparität, die zu einzelnen Untergruppen von 8-Bit-Bytes der tatsächlichen Daten gehören, übergeben. Hieraus ergibt sich, dass Ausgangssignale an den Pufferspeicher 109 aus 4 Ausgangsdatenbytes mit jeweils 4 Paritätsbits bestehen.
- Die Steuerlogik 102 ist eine Schaltung in Form von einer Maschine endlicher Zustände, die Steuereingangssignale, wie gezeigt, Bestätigungsausgangssignale an den RSM und das SIO, wie gezeigt, und das RAM-Steuerausgangssignal 102A hat, um die Freigabe des Zugriffs auf das RAM und die Zugriffsrichtung (Lese- oder Schreibzugriff) zu steuern. Lese- und Schreibzugriffe werden nachstehend auch als Abrufbeziehungsweise Speicheroperationen bezeichnet. Die Zustandsmaschinen-Schaltungen haben die folgenden möglichen Zustände und arbeiten entsprechend den folgenden Zustandsfolgeberegeln.
- 1. Rücksetzzustand - wird nur angenommen, wenn "SIO_RESET" aktiv ist; der nächste Zustand (wenn "SIO_RESET" inaktiv wird) ist der Zustand 0.
- 2. Der Zustand 0 (Zustand der RSM-Eignerschaft) - ermöglicht die folgenden Maßnahmen. Wenn "RSM_LOCK_UP" aktiv ist, wird "TSR_RSM_ACK" aktiviert, um RSM-Eingangssignale vorrangig vor SIO-Eingangssignalen auszuwählen. Es ist klar, dass die letztere Funktion die Freigabe der Auswahl des RSM-Eingangssignals an den Multiplexern 103, 105, 107 und den nicht gezeigten Auswahlschaltungen in der Logik 102 für "RSM_RD_WR" und "RSM_REQ" erforderlich macht (wobei sich Ersteres in Abhängigkeit davon, ob die Operation eine Lese- oder eine Schreiboperation ist, in dem einen oder dem anderen Zustand befinden kann, und Letzteres entweder für eine Lese- oder eine Schreiboperation aktiviert wird). Wenn der letzte Zugriff ein Lesezugriff war und der RSM einen Schreibzugriff anfordert, wird eine Chipauswahlfuriktion in den Steuerungen 102A in Bezug auf das RAM 101 gesperrt (siehe die nachstehende Erklärung des Zustands 3). Dieser zusätzliche Zyklus wird benötigt, um den chipexternen Treibern genügend Zeit zum Umschalten zu lassen. Wenn der aktuelle Zugriff ein Lesezugriff ist, setze den internen Signalspeicher LAST_ACCESS_READ 102L, und setze ihn andernfalls zurück. Diese letzte Maßnahme ist erforderlich, um die Art des zuvör durchgeführten Zugriffs zu überwachen (siehe die nachstehende Erörterung des Zustands 3). Wenn RSM_LOCK_UP inaktiv ist, prüfe die SIO-Anforderung. Wenn SIO_TSR_WR aktiv ist, übertrage die SIO-Daten und die SIO-Parität an das RAM 101 (an die von SIO_ADDRESS angegebene Adresse), und setze den Signalspeicher 102L zurück. Wenn SIO_TSR_RD aktiv ist, aktiviere alle Steuersignale, aber sperre den Zugriff auf das RAM 101 (siehe die nachstehende Erklärung des Zustands 1).
- Schalte entsprechend dem Folgenden in den Zustand 1, 2 oder 3 weiter. Der nächste Zustand ist der Zustand 0, wenn RSM_LOCK_UP aktiv ist und andere Bedingungen, um in den Zustand 3 weiterzuschalten, nicht vorhanden sind oder wenn keine Anforderungen anstehen. Der nächste Zustand ist der Zustand 1, wenn die einzige anstehende Anforderung eine SIO-Leseanforderung ist (SIO_TSR_RD ist aktiv, und RSM_LOCK_UP ist inaktiv). Der nächste Zustand ist der Zustand 3, wenn RSM_LOCK_UP und LAST_ACCESS_READ aktiv sind und RSM_RD_WR eine Schreibanforderung anzeigt.
- 3. Zustand 1 (SIO-Lese-Eignerschaft) - Wenn SIO_TSR_RD aktiv ist, gib den Lesezugriff auf den Speicherplatz frei, der von SIO_ADDRESS angegeben wird. Der nächste Zustand ist bedingungslos der Zustand 2.
- 4. Zustand 2 (SIO-Bestätigung) - Aktiviere TSR_SIO_ACK in Bezug auf die SIO-Anforderung. TSR_DATA ist nur dann gültig, wenn SIO_TSR_RD aktiv war. Der nächste Zustand ist bedingungslos der Zustand 0.
- 5. Zustand 3 (RSM-Überwachungszustand) - Dieser Zustand schützt vor Punkt-zu-Punkt-Lese- und Schreibzugriffen durch den RSM, wenn nicht genügend Zeit zum Eingreifen vorhanden ist, um den RAM-Eingangs- und Ausgangssignalen die Möglichkeit zu geben, sich zu stabilisieren. Ein Eintritt in diesen Zustand erfolgt, wenn der RSM einen Schreibzugriff- versucht, während LAST ACCESS READ aktiv ist (siehe Zustand 0 oben). Wenn die zweite angeforderte Operation eine Schreiboperation ist, kann sie in diesem Zustand ohne Verzögerung durchgeführt werden. Der nächste Zustand ist der Zustand 0. Das Ausgangssignal des RAM 101 bei Lesezugriffen, TSR_DATA, wird dem RSM und dem SIO zusammen mit einer Bestätigung übergeben, die eines der Segmente auswählt. Wenn der RSM auf das TSR zugreift, aktiviert er RSM_LOCK_UP, wodurch der Zugriff auf das SIO präventiv blockiert wird. Wenn der RSM einen Lesezugriff versucht, gibt er automatisch den Empfang von TSR_DATA an dem entsprechenden RSM-Eingang frei, und andernfalls ignoriert er diesen Eingang. Wenn SIO und RSM gleichzeitig einen Leszugriff versuchen, ignoriert SIO seinen TSR- Dateneingang, da TSR_SIO ACK inaktiv ist. Der nächste Zustand ist der Zustand 0.
- Bezug nehmend auf Fig. 6, werden in der ISDN- Primärmultiplexumgebung die 2048 36 Bitbreiten "Wort"- Speicherbereiche im TSR (man rufe sich die vorherige Erörterung der bevorzugten Größe des TSR von 2048 · 36 ins Gedächtnis zurück) zu gleichen Teilen 32 Kanälen zugeteilt, so dass jedem Kanal 64 Wortspeicherbereiche zugeordnet werden. Ein jeder solcher Speicherbereich kann zur Speicherung von vier 8-Bit- Datenbytes zusammen mit vier zugehörigen Paritätsbits verwendet werden. Die bestimmten Wortspeicherbereiche, die dem Kanal 0 zugeordnet werden, sind als repräsentative Zuordnungen für alle Kanäle veranschaulicht. Adressgrenzen sind in Hexadezimalschreibweise dargestellt, wobei diejenigen für Kanalspeicherbereiche links erscheinen und diejenigen für Wortspeicherbereiche im repräsentativen Kanal 0 rechts erscheinen.
- Jeder Kanalspeicherbereich enthält 27 Wortspeicherbereiche für bestimmte Wortparameter und 37 reservierte Speicherbereiche (die zur Erweiterung und für Anwendungsvariationen zur Verfügung stehen). Die bestimmten Wortparameter für jeden Kanal sind unter anderem: 2 Wörter, die allgemeine Kanalkonfigurationen und bestimmte HDLC- Protokollkonfigurationen (CCR, HPCR) angeben, 3 Wörter, um die Zustände der Sendeelemente bei Zeitsicherungs- und - wiederladeoperationen (TX_TS1) zu sichern, 5 Wörter, um die Zustände der Empfangselemente bei Zeitsicherungs- und - wiederladeoperationen (3 RX_TS1, 2 RX_TS2) zu sichern, und 17 Kanalstatuswörter (CEISR und EOPISRO1 bis EOPISR16). Bestimmte Bits und Funktionen von jedem dieser Wörter werden später erörtert (die Konfigurationswörter CCR und HPCR in der Beschreibung des RSM-Elements, die Zeitsicherungs- und - wiederladewörter (time swap words) in den Beschreibungen von einzelnen Sende- und Empfangselementen und die Statuswörter in den Beschreibungen des INT- und des 510-Elements).
- Das Ressourcenmanagersegment (RSM) verwaltet die Zeitsicherungs- und -wiederladeoperationen der Zustände von Empfangs-/Sendeverarbeitungselementen in Bezug auf fest zugeordnete Speicherplätze im TSR_sowie die zweiseitig gerichtete Übertragung von Informationen, die zur Verwaltung der Kanalunterbrechungsstatusverarbeitung zwischen dem INT und dem TSR notwendig sind. Der RSM dient auch als logischer zentraler Punkt zur Erkennung und Protokollierung von Hardwarefehlerbedingurigen in Bezug auf alle Teile des IDLC- Chips und der L1-Schaltungen.
- Der RSM überwacht die BTDM-Schnittstelle auf "Schlitzanfang-" (BOS-)Ahzeigen, die das Ende von einem Zeitschlitz an der Schnittstelle und den Anfang von einem anderen anzeigen, und trifft Vorbereitungen für notwendige Zeitsicherungs- und - wiederladeaktivitäten in Bezug auf die IDLC-Sendeelemente (TV, TL1), die Empfangselemente (RL1, RV), die FIFO- Warteschlangenverwaltungselemente (RFM, TFM) und das INT. Der RSM passt auch die Statussicherüngs- und -wiederladefunktionen individuell an, so dass sie in Bezug auf inaktive Kanäle nicht durchgeführt werden, obgleich der RSM eine Vorablade-Operation durchführt, um einen Teil des CCR- (Kanalkonfigurationsregister-)Wortes abzurufen, das zu jedem Kanal (aktiv oder inaktiv) gehört, um festzustellen, ob der jeweilige Kanal aktiv ist.
- Ein Grund dafür, dass der Elementstatus in Bezug auf inaktive Kanäle nicht gesichert wird (wobei davon abgesehen wird, dass solche Maßnahmennutzlos sind), ist, dass durch jedwede Sicherungsaktivitäten des RSM möglicherweise Zustandsinformationen, die vom IOP/SIO gerade neu geschrieben wurden, mit falschen Zustandsinformationen überschrieben werden, da der Host/IOP beziehungsweise das 510 unabhängig voneinander Schreibzugriff auf jeweilige Kanalzustandsspeicherbereiche im TSR haben. Ein Grund dafür, dass der Elementstatus in Bezug auf inaktive Kanäle nicht geladen wird (wobei wieder von der Nutzlosigkeit dieser Maßnahme abgesehen wird), ist, dass Zustandsinformationen, die zwischen dem TSR und den Elementen übertragen werden, im RSM auf Parität geprüft werden; somit könnte der Ladeprozess in Bezug auf inaktive Kanäle, die Zustandsinformationen von unbestimmter Form enthalten, zu unnötigen Paritätsfehlermeldungen/-unterbrechungen führen.
- Als Teil seiner Vorbereitung zur Sicherung des Zustands, während die Verarbeitung in Bezug auf einen aktiven Kanal abgeschlossen wird, prüft der RSM, ob die Verarbeitung in Bezug auf diesen Kanal in jedem synchronen Verarbeitungselement einen stabilen Endzustand erreicht hat, der sich zur Sicherung eignet.
- Synchrone Verarbeitungselemente, die Zustandsicherungs- und - wiederlademaßnahmen unterworfen werden (RL1, RV, RFM, TL1, TV, TFM und INT), übergeben dem RSM während der Verarbeitung in Bezug auf einen beliebigen aktiven Kanal laufend Zustandssignale. Diese Zustandssignale können vom RSM in das TSR geschrieben werden, um sie zu sichern, aber der RSM führt solche Übertragungen erst in einer vorher festgelegten Verarbeitungsphase/in einem vorher festgelegten Schlitzzyklus durch, in der/dem die gesicherten Zustände unter normalen Umständen gültige Daten darstellen.
- Während der Verarbeitung in Bezug auf aktive Kanäle empfangen die synchronen Elemente frühe "Schlitzende"-Anzeigen (EOS) vom RSM, und den Zustandsmaschinen in diesen Elementen steht dann eine vorher festgelegte, aber kurze Zeitspanne zur Verfügung, in der sie einen stabilen Zustand erreichen können, aus dem die Verarbeitung eindeutig wieder aufgenommen werden kann, wenn der jeweilige Kanalschlitz erneut erscheint. Diese Zeitspanne ist bei jedem Element anders. Während des Normalbetriebs erreichen diese Elemente, wenn sie sich beim Erscheinen von EOS nicht sofort in einem stabilen Zustand befinden, diesen stabilen Zustand innerhalb der erforderlichen Zeitspanne, und wenn sie sich einmal in diesem Zustand befinden, aktivieren sie entsprechende DONE-Anzeigen an den RSM.
- Am Ende der soeben erwähnten vorher festgelegten Zeitspannen schreibt (sichert) der RSM die jeweiligen Zustände der Elemente in das TSR, nimmt aber auch eine Prüfung auf entsprechende DONE-Anzeigen vor. Wenn eine beliebige DONE-Anzeige nicht zurückgeschickt wurde, als sie fällig war, erzeugt der RSM intern eine Logik-Zeitablaufanzeige (logic timeout indication), die vom INT als Hardwarefehlerbedingung erkannt wird und eine damit verbundene Statusaufzeichnungs- und Unterbrechungsmaßnahme in Bezug auf SIO/IOP erforderlich macht. Der RSM überwacht auch die Signalübertragungsaktivität an der BTDM-Schnittstelle, um sicherzustellen, dass diese auf Zustandsicherungs- und -wiederladeaktivitäten in der IDLC zeitlich korrekt abgestimmt ist. Wenn der RSM einen Übertragungsvorgang feststellt, während der Status geladen oder gesichert wird, erzeugt er eine Zeitfehlermeldung RSM_L1L2_ERROR an INT und setzt die Verarbeitung fort.
- Die Möglichkeit der Datenverfälschung, auf die durch diese Meldung hingewiesen wird, wird schließlich dem IOP/Host gemeldet, und bei Bedarf werden von letzterem System Maßnahmen ergriffen, um die Operationen der L1-Schaltungen so anzupassen, dass ein geeigneterer Synchronisationsgrad aufrechterhalten wird (siehe die folgende Erörterung der BTDM-Schnittstelle, in der die Definition des Zeitfensters zu beachten ist, während dessen bündelweise ("burst") Datenübertragungen zwischen der L1 und der IDLC gestattet sind).
- In Bezug auf das Laden der Zustände der synchronen Elemente aus dem TSR, um diese Elemente auf die Verarbeitung in Bezug auf einen erscheinenden oder erneut erscheinenden aktiven Kanalschlitz vorzubereiten, synchronisiert der RSM den Beginn der Verarbeitung in Bezug auf diesen Kanal, indem er den Elementen in geeigneten Augenblicken nach EOS "START"-Signale übergibt. Diese Startsignale werden erst übergeben, wenn alle Elemente, die Daten austauschen, mit ihrem Status geladen wurden.
- In der beispielhaften ISDN-Primärmultiplexumgebung haben die Schlitze eine Mindestdauer von 3,8 Mikrosekunden, und die IDLC wird mit 20 MHz getaktet, so dass sich bei diesem Verhältnis eine Mindestschlitzzeit von 76 Taktzyklen ergibt. Im RSM wird die Zuweisung von Zeiträumen zu dessen verschiedenen Funktionen festgelegt, indem der zusätzliche Zeitaufwand (overhead time) (der Zeitraum, der für alle TSR-Speicher- und Abrufoperationen notwendig ist) von der Mindestschlitzzeit abgezogen wird und die verbleibenden Taktzyklen gleichmäßig auf alle anderen Zeitsicherungs- und -wiederladefunktionen verteilt werden. Da der zusätzliche Zeitaufwand von der Verfügbarkeit des TSR beeinflusst wird, können SIO-/Host-Zugriffe auf das TSR (zum Abruf des Unterbrechungsstatus und/oder zur Initialisierung des Kanalzustands) den Zeitraum verringern, der für andere Funktionen während eines beliebigen Zeitschlitzes zur Verfügung steht. Die Überwachung des zusätzlichen Zeitaufwands wird mit Hilfe des Zykluszählers 121 durchgeführt, wie nachstehend beschrieben wird.
- Bezug nehmend auf Fig. 10, umfasst der RSM: die Konfigurationsregister 115 und 116, die Multiplexerschaltungen 117 und 118, die Paritätserzeugungsschaltung 119, die Paritätsprüfschaltung 120, den Zykluszähler 121, die Schlitzerzeugungsschaltung 122 und die Zustandsmaschine 123. Die Zustandsmaschine 123, die nachstehend beschrieben wird, enthält Adressenerzeugungslogik, um die Adressierung von TSR- Kanalspeicherbereichen festzulegen und die Adressierung von diesen Kanalspeicherbereichen in Bezug auf dynamisch veränderte HyperChannel-Abbildungen zu unterstützen.
- Die Register 115 und 116 sind 32 Bit breite Register, die als Pufferspeicher für Wörter dienen, welche die Konfiguration angeben. Das Register 115, das Konfigurationssteuerregister (CCR), empfängt Konfigurationssteuerwörter, die einzelne Kanalkonfigurationen während Verarbeitungszeitschlitzen angeben, welche den entsprechenden Kanälen im Zeitmultiplexverfahren zugeteilt werden. Das Register 116, das HDLC-Protokollkonfigurationsregister (HPCR), empfängt Steuerwörter, die Protokollkonfigurationen während Verarbeitüngszeitschlitzen angeben, die Kanälen zugeteilt werden, in denen gerade protokollformatierte Übertragungen durchgeführt werden.
- Konfigurationswörter, die an diese Register übertragen werden können, werden im TSR gespeichert oder können darin gespeichert werden (siehe Fig. 6), und zwar in Speicherbereichen, die einzelnen Kanälen zugeordnet werden, und Zuordnungen von bestimmten Bitfeldern innerhalb eines jeden Wortes sind in den Fig. 11 (für CCR) und 12 (für HPCR) veranschaulicht. Die Ausgänge der Register 115 und 116 führen in parallelen 32-Bit- Kabelgruppen (die als einzelne Leitungen gezeigt sind) zu zugehörigen Eingängen des Multiplexers 117 und allen anderen autonomen Elementen im synchronen IDLC-Teil. Mit Bezug auf die Fig. 10 bis 12 haben die Bitfelder in diesen Registern die folgenden Definitionen und Verwendungszwecke.
- RES (reserviert) - 13 Bits (10 links und 3 rechts) - reserviert für eine Erweiterung oder für zukünftige Anwendungen.
- Channel Type (Kanaltyp) (CT) - 3 Bits - unterscheiden den Kanaltyp nach: B/D (bis zu 64 kBit/s, von der Ebene I abhängig), H0 Nummer 1, 2, 3, 4 oder 5, H11 oder H12.
- Protocol Code (Protocollcode) (PC) - 4 Bits - Diese 4 Bits haben 16 festlegbare Werte, von denen 12 reserviert sind und 4 einzelne der folgenden Protokolle bezeichnen: SDLC, LapB, LapD, Clear (kein Protokoll; z. B. für Sprachkanäle).
- Transmit DMA Enable (Sende-DMA-Freigabe) (TDE) - 1 Bit - gibt Sende-DMA-Steueroperationen durch das DMAC frei oder sperrt sie. Das Bit sollte nur in den Freigabezustand gesetzt werden, nachdem TDCR1 bis TDCR4 ordnungsgemäß initialisiert wurden (siehe die folgende Beschreibung des DMAC-Segments).
- Receive DMA Enable (Empfangs-DMA-Freigabe) (RDE) - 1 Bit - gibt Empfangs-DMA-Operationen frei oder sperrt sie (Übertragung von Empfangsdaten aus dem FIFOR an den IOP-/ Hostspeicher). Das Bit sollte nur in den Freigabezustand gesetzt werden, nachdem RDCR1 bis RDCR4 ordnungsgemäß initialisiert wurden (siehe die folgende Beschreibung des DMAC).
- Receiver Enable (Empfängerfreigabe) (RE) - 1 Bit - gibt die Verarbeitung von empfangenen Daten nach einem festgelegten. Protokoll frei oder sperrt sie. In Bezug auf Datenkanäle (z. B. SDLC/LapB/LapD) beinhaltet dies das Erkennen von Flaggen, Abbruchzeichen (aborts), Leerlaufzeichen (idles), das Entstopfen von Bits, das Zusammensetzen von Bits zu Bytes, das Platzieren von Bytes in der Warteschlange des FIFOR, das Erkennen der Zieladresse, die CRC-Prüfung und die Übertragung von jeweils einem Wort (4 Byte) an den IOP-Speicher. In Bezug auf freie Kanäle beinhaltet dies das Zusammensetzen von Bits in bitserieller Form zu Bytes, die Speicherung von Bytes im FIFOR und die Übertragung von jeweils einem Wort (4 Byte) an den IOP-Speicher. Die Verarbeitung von Daten erfolgt unter der Annähme, dass das höchstwertige Bit zuerst ankommt.
- Abort Request (Abbruchanforderung) (AR) - 2 Bits - Diese beiden Bits rufen eine der folgenden Maßnahmen auf: brich nur bei einer Überlaufbedingung der (Empfangs-)Daten ab, sende das Abbruchdatenmuster (sieben Einsen, gefolgt von einem vorher festgelegten Muster), sende das Leerzeichenmuster (idle pattern) (15 aufeinanderfolgende Einsen), sende das invertierte Leerzeichenmuster (15 aufeinanderfolgende Nullen). Das Feld ist nur gültig, wenn es sich bei dem Protocollcode um denjenigen für SDLC, LapB oder LapD handelt. Wenn AR eine beliebige der letzten 3 Maßnahmen bezeichnet, muss das TDE-Bit auf 0 (gesperrt) gesetzt sein, und das TE-Bit muss auf 1 (freigegeben) gesetzt sein.
- Abort Interrupt Mask (Abbruchunterbrechungsmaske) (AIM) - 1 Bit - in Bezug auf einen Abbruch zwischen Rahmen, bewirkt in Abhängigkeit vom Wert des Bits, dass entweder eine Unterbrechung erzeugt oder dass keine Maßnahme ergriffen wird.
- Inter-Chain Fill Select (Füllmusterauswahl zwischen Ketten) (ICS) - 1 Bit - wirkt sich auf DMAC-Operationen während der Sende-DCB-Kettung aus. In Abhängigkeit vom Wert des Bits veranlasst es das DMAC, entweder eine Reihe von "Füll"-Zeichen ('01111110') zwischen verketteten Daten oder ein "Leerzeichenmuster" ('111...111'; mindestens 15 Einsen) zwischen den Endeflaggen und dem Anfang der neuen verketteten Daten einzufügen. Die Bit-Funktion ist nur gültig, wenn PC auf einen Wert für SDLC, LapB oder LapD gesetzt ist.
- Inter-Frame Fill Select (Füllmusterauswahl zwischen Rahmen) (IFS) - 1 Bit - wählt das zwischen Datenprotokollrahmen einzufügende Füllmuster entweder als Füllzeichen oder als Leerzeichenmuster aus, die/das auf die Endeflaggen folgen (siehe ICS-Definition).
- Address Recognition Option (Adressenerkennungsoption) (ARO) - 2 Bits - bewirkt die selektive Weiterleitung von empfangenen Datenrahmen in Abhängigkeit vom Wert des Optionsfeldes. Mögliche Optionen sind: "disabled" (alle Rahmen werden weitergeleitet), "forward 1" (leite nur Rundsende-Rahmen sowie Rahmen weiter, deren Zieladresse aus nur einem Byte besteht), "forward 2" (leite nur Rundsende-Rahmen sowie Rahmen weiter, deren bestimmte Zieladresse aus 2 Byte besteht), "forward 3" (leite nur Rahmen weiter, die Rundsende-Adressen für SDLC und LapD haben (da es für LapB und freie Kanäle keine Rundsende- Adresse gibt, werden in solchen Kanälen alle Rahmen weitergeleitet)). Die Werte der Optionen sind nur gültig, wenn der PC-Wert derjenige für SDLC, LapB oder LapD ist.
- Zu den Rundsende-Adressen, die erkannt werden, gehören: das erste Byte nach der Beginnflagge ist 'FF' Hex (für SDLC), das zweite Byte nach der Beginnflagge ist 'FF' Hex (für LapD), kein Byte (für LapB).
- Transmit Enable (Sendefreigabe) (TE) - 1 Bit - gibt die Übertragung von Sendedaten aus dem FIFOR frei oder sperrt sie. Wenn sie gesperrt wird, werden keine Flaggen, Abbruchzeichen, Leerlaufzeichen oder CRC-Prüfsymbole an der BTDM-Schnittstelle übertragen. Wenn sie freigegeben wird, werden auf Anforderung von der Hardware der Ebene 1 Daten und Rahmensymbole an der BTDM-Schnittstelle übertragen.
- Invert Data Stream (Invertiere den Datenstrom) (IOS) - 1 Bit -Wenn dieses Bit aktiv ist, werden Daten an der BTDM- Schnittstelle in invertierter Form (andernfalls in der tatsächlichen Form) gesendet und empfangen. Der freigegebene Zustand dieses Bits soll den auf 64 kBit/s beschränkten Betrieb unterstützen. Sowohl ICS als auch IFS sollten gesperrt sein, wenn dieses Bit freigegeben wird, um Übertragungen von mehr als 7 aufeinanderfolgenden Nullen auf der Verbindung zu vermeiden.
- Toggle (Umschalten) 1 Bit - dient zur Anzeige, dass der SWRC-Wert gültig ist. Der IOP schaltet den Wert dieses Bits jedesmal um, wenn er das SWRC-Feld in Verbindung mit dem Abruf des Unterbrechungsstatus aus dem TSR aktualisiert. Das Bit ist nur gültig, wenn das QM-Bit im ICR (siehe die folgende Beschreibung des SIO) auf Freigabe gesetzt ist.
- Status Words Read Count (Lesezählstand der Statuswörter (SWRC)) - 5 Bits - werden vom IOP verwendet, um dem INT- Segment die Anzahl der Statuswörter anzuzeigen, die aus der aus 16 Wörtern bestehenden EOPISR-Warteschlange des zugehörigen Kanals im TSR nach einer Unterbrechung gelesen wurden. Das INT verwendet diesen Zählstand, um festzustellen, ob es in Bezug auf den aktuellen Inhalt der Warteschlange eine weitere Unterbrechung erzeugen muss. Das Feld ist nur gültig, wenn das QM-Bit im ICR auf Freigabe gesetzt ist.
- Link Station Address (Adresse der Verbindungsstation (LSA)) - 16 Bits - werden zur Programmierung der bestimmten Adresse verwendet, die erkannt werden soll, wenn das ARO-Feld im CCR einen Wert hat, der die Erkennung einer aus 1 Byte oder aus 2 Byte bestehenden Adresse erfordert. Zur Erkennung der 1-Byte-Adresse sollten die oberen 8 Bits in diesem Feld auf den Wert der Stationsadresse und die unteren 8 Bits auf 0 gesetzt werden. Zur Erkennung der 2-Byte-Adresse wird das ganze Feld auf den Wert der Stationsadresse programmiert. Das Feld ist nur gültig, wenn der PC-Parameter im CCR ein SDLC-, ein LapB- oder ein LapD-Protokoll bezeichnet. Beim Empfang von LapD wird das Befehls-/Antwortbit (neben dem niedrigstwertigen Bit im ersten Byte des Rahmens) automatisch von Elementen des Empfangssegments maskiert, und der Rahmen wird nur weitergeleitet, wenn die restlichen sieben Bits im selben Byte (im 1-Byte- Erkennungsmodus) oder diese Bits und darüber hinaus Bits im nächsten Byte (beim 2-Byte-Erkennungsmodus) mit dem LSA-Wert übereinstimmen oder wenn ein Rundsende-Muster festgestellt wird.
- Zusätzlich zu seinen Eingangssignalen von den Registern 115 und 116 hat der Multiplexer 117 zehn weitere Gruppen von 32 Bit breiten parallelen Eingangssignalen oder insgesamt 12 Eingangssignalgruppen. Der Multiplexer 117 wird von der Zustandslogik 123 so betrieben, dass er entsprechend der nicht gezeigten Auswahlsteuereingangssignale von der Logik 123 jeweils selektiv eine Gruppe von Eingangssignalen mit seinem Ausgang 125 verbindet. Die anderen 10 Gruppen von Eingangssignalen dienen zur Übertragung von Zeitsicherungs- und - wiederladewörtern, die gesichert (in das TSR geschrieben) werden sollen; 3 von den Sendeverarbeitungselementen (TL1, TV, TFM), 5 von den Empfangselementen (1 von RL1 und jeweils 2 von RV und RFM) und 2 vom INT (CEISR und INT EOP).
- Der Ausgang 125 des Multiplexers wird mit dem Eingang RSM DATA des TSR, dem Paritätsgenerator 119 und dem 510 verbunden. Der Ausgang des Paritätsgenerators 119 wird mit den Eingängen RSM_PARITY von TSR und SIO verbunden. Wenn der RSM Schreibauswahleingangssignale an den TSR freigegeben hat (RSM_TSR_RD_WR und RSM_LOCK_UP sind aktiv, während RSM TSR_REQ inaktiv ist), wird der ganze 36 Bit breite Ausdruck, der von RSM_DATA und RSM_PARITY gebildet wird, in einen Speicherplatz des TSR geschrieben, welcher von einem zugehörigen Ausgangssignal RSM_ADDRESS der Logik 123 gekennzeichnet wird. Während eines beliebigen Zeitschlitzes kann die Logik 123 somit wiederholt den Multiplexer 117 und die Zugriffssteuerungen des TSR betreiben, um einige oder alle Parameter nacheinander zu speichern, die in den Multiplexer eingegeben werden können, und dadurch die verschiedenen Statussicherungsoperationen durchführen, die mit Sicherungs- und -wiederladeoperationen der Elementzustände verbunden sind.
- Essei angemerkt, dass der RSM selbst keine Zustandsicherungs- und -wiederladeoperationen in Bezug auf das TSR erfährt, sondern nur CCR und HPCR in einem Nur-Lese-Kontext abruft, während er sich auf aufeinanderfolgende Kanalschlitze vorbereitet. Werte, die in den zugehörigen Registern gespeichert werden, werden nicht in das TSR zurückgeschrieben, da sie sich im Laufe eines beliebigen Zeitschlitzes nicht ändern. Diese Werte sind jedoch zu bestimmten Zeitpunkten für den IOP/Hostkomplex von Interesse und werden daher dem SIO über den Multiplexer 117 und den Bus 125 zugänglich gemacht.
- Der Multiplexer 118 empfängt die Ausgangssignale TSR_DATA, die sich aus Lesezugriffen des RSM auf das TSR ergeben, und verbindet sie selektiv mit seinem Zeitsicherungs- und - wiederladezustand-Ladebus (time swap state loading bus) (RSM TS BUS) 126, der mit Eingängen von allen Elementen verbunden wird, die Zeitsicherungs- und -wiederladeoperationen unterworfen wurden. Bestimmte Elemente, die einzelne Ausgangssignale empfangen, werden von den Ausgangsignalen RSM_XXX_LOAD der Logik 123 gekennzeichnet (wobei XXX die jeweilige Abkürzung der Zielelemente darstellt). Somit können aus dem TSR ausgelesene Zustandswörter an entsprechende Elemente verteilt werden.
- Eingangssignale vom TSR in den Multiplexer 118 werden auch an die Paritätsprüfungsschaltungen 120 angelegt, um von Letzteren geprüft zu werden. Wenn ein Paritätsfehler festgestellt wird, aktivieren die Schaltungen 120 eines von zwei Fehlermeldungsausgangssignalen (TSR_PARITY_ODD oder TSR_PARITY_EVEN) in Abhängigkeit von dem ungeradzahligen/geradzahligen Wert der Zahl, die dem Kanal zugewiesen worden ist, in Bezug auf den der Fehler festgestellt wurde; dieser Wert wird über die Schaltungen 122 und 123 abgeleitet. Diese Paritätsfehlermeldungen werden an das INT- Segment gesendet, um eine Fehlerunterbrechungsmaßnahme aufzurufen, und da sich Aktivitäten des INT über aufeinanderfolgende Schlitze in Bezug auf Aktivitäten des Empfangs- und des Sendeelements erstrecken, ist die Unterscheidung zwischen "geradzahlig" und "ungeradzahlig", welche die beiden Ausgangssignale gestatten, notwendig, um es dem INT zu ermöglichen, den Fehler dem richtigen Kanal zuzuordnen.
- Der Multiplexer 118 empfängt auch Eingangssignale vom Ausgang SIO_DATA des SIO, um diese Ausgangssignale an die Elemente zu verteilen, die Zeitsicherungs- und -wiederladeoperationen unterworfen wurden. Diese Funktion wird nur für Diagnosezwecke bereitgestellt, da die normale Quelle zum Laden des Zustands das TSR ist. In Verbindung mit der Aktivierung von SIO_DATA stellt das SIO der Logik 123 Zustandssteuerungseingangssignale SIO_RESET bereit, um den RSM in geeignete Anfangszustände zu bringen, und die Eingangssignale SIO_RSM_RD, SIO_ADDRESS und SIG_RSM_WR, um die Verteilung von SIO_DATA über den RSM- Multiplexer 118 an die Elemente zu steuern, die Zeitsicherungs- und -wiederladeoperationen unterworfen wurden. Als Antwort auf letztere RD- und WR-Eingangssignale decodiert der RSM die Adresse und aktiviert die entsprechenden Steuereingangssignale an den Multiplexer 117 und das Zielelement (RSM_XXX_LOAD an Letzteres). Dies wird nur gestattet, wenn RSM keine Kanalstatussicherungs- und -wiederladeoperationen (channel status swapping) zwischen dem TSR und den Elementen in Echtzeit durchführt.
- Der Zykluszähler 121 dient zur Feststellung des aktuellen Zustands in jedem Schlitz. Er teilt die verfügbare Schlitzzeit (mindestens 3,8 Mikrosekunden) in Nachverarbeitungsintervalle für den vorhergehenden Schlitz, veränderliche TSR- Zugriffszeiten, die Vorverarbeitung für den nächsten Schlitz und Datenübertragungszeiten auf. Ein Überwachungsmechanismus in dem Teil der Logik 123, der die Zustandsmaschine enthält, stellt sicher, dass Datenübertragungen nur stattfinden, wenn entsprechende Segmente vorbereitet sind. Der Zähler 121 wird beim Empfang einet L1_LSOF-Anzeige (LSOF = letzter Schlitz des Rahmens) oder einer L1_BOS-Anzeige (BOS = Beginn des Schlitzes) von der BTDM-Schnittstelle zurückgesetzt, wobei Letztere das sich nähernde Ende des aktuellen Schlitzes und den Beginn des nächsten Schlitzes anzeigt. Um einem Bereich von Zeitschlitzen unterschiedlicher Dauer Rechnung zu tragen (in anderen Anwendungsumgebungen der IDLC), wird verhindert, dass der Zähler 121 innerhalb dieses Bereichs überläuft.
- Die Schlitzerzeugungslogik 122, die 2 Register und einen 6-Bit- Zähler umfasst, legt Zuordnungen zwischen Zeitschlitzen, die an der BTDM-Schnittstelle erscheinen, und IDLC- Verarbeitungskanälen fest. Aufgrund der veränderlichen HyperChannel-Abbildung in der IDLC können einzelne Zeitschlitze an der BTDM-Schnittstelle gegebenenfalls nicht identisch auf einzelne Kanäle abgebildet werden (d. h., bei manchen Kanälen kann die Schlitzabbildung in einem Viele-zu-eins-Verhältnis erfolgen). Die Logik 122 empfängt die L1-LSOF- und L1_BOS- Anzeigen von der BTDM-Schnittstelle zusammen mit Abbildungssteüerungseingangssignalen von der Zustandslogik 123 und stellt der Logik 123 Ausgangssignale bereit, welche die aktuellen Kanal/Schlitz-Zuordnungen anzeigen. Das Erhöhen des Zählers in der Logik 122 und die zugehörigen HyperChannel- Abbildungen werden von Adressenerzeugungsfunktionen in der Logik 123 festgelegt, die zumindest teilweise auf das CT- (Kanaltyp-)Feld im CCR 115 konditioniert werden.
- Die Schlitzerzeugungslogik 122 übergibt dem DMARQ-Segment auch 3 Anzeigen, die eine 5-Bit-Zeitschlitzanzeige, RSM TS1, eine 5- Bit-H0-Anzeige, RSM_DMARQ_H0, und eine 1-Bit-H1-Anzeige, RSH_DMARQ_H1, einschließen. Die TS1-Anzeige kennzeichnet den BTDM-Zeitschlitz, der zu dem Kanal gehört, der in dem synchronen Teil gerade verarbeitet wird. Die H0- und H1- Anzeigen, die von der Logik 123 über Verbindungen der Letzteren zum Ausgang des Kanaltypfeldes CT im CCR 115 (Fig. 11) abgeleitet werden, werden zur Kennzeichnung von Zuordnungen von HyperChannels vom Typ H0 und Typ H1 von aktuellen Schlitzen verwendet (siehe die vorstehenden Beschreibungen des CCR-Feldes und die folgenden Beschreibungen der DMARQ und der HyperChannel).
- Die Zustandsmaschinenlogik 123 durchläuft die folgenden Zustände mit den zugehörigen Auswirkungen auf die Ausgangssignale, die beschrieben wurden. In Bezug auf die Abrufoperationen des TSR sei angemerkt, dass auf abgerufene Daten 2 Zustandszyklen nach dem Zustand, in dem der jeweilige Abruf eingeleitet wurde, zugegriffen weiden kann.
- Warte auf eine Schlitzübergangsanzeige von der BTDM- Schnittstelle (L1_BOS oder L1_LSOF) und stelle fest, ob der Wert der internen Betriebsart (der Wert, der die aktuelle Betriebsart des RSM angibt) aktualisiert werden soll. Der Moduswert wird nur abgefragt und aktualisiert, wenn der nächste Schlitzzählstand null ist, so dass der RSM mitten in einem ISDN-Rahmen den Rücksetzmodus nicht verlässt (der vom SIO/Host gesetzt wird). In diesem Zustand wird der Zykluszähler 121 zurückgesetzt, und das SIO darf auf die RSM-Register und das TSR zugreifen. Nach der L1-Anzeige ist der Übergang in den nächsten Zustand abhängig von der aktuellen Betriebsart. Wenn die aktuelle Betriebsart der "Rücksetz"-Modus ist, findet kein Übergang statt. Wenn die aktuelle Betriebsart der "Diagnose"- Modus ist, ist der nächste Zustand der Zustand 2. Wenn die aktuelle Betriebsart die Betriebsart "normal" ist (weder "Rücksetz"- noch "Diagnose"-Modus), ist der nächste Zustand der Zustand 0.
- Die Zugriffssteuerungen zum Zugriff auf das TSR werden aktiviert, um das CCR für den Kanal abzurufen, der zum nächsten Zeitschlitz gehört. Dies ist eigentlich ein Vorababruf, bei dem nur ein kleiner Teil des CCR tatsächlich zwischengespeichert und vom RSM verwendet wird, nämlich das 3-Bit-Kanaltypfeld CT. Diese Informationen werden nur zur Freigabe der Logik verwendet, um festzustellen, ob der nächste Kanal aktiv ist. Wie zu vor erwähnt wurde, stehen die abgerufenen Informationen bei dieser und bei anderen Abrufoperationen erst 2 Zustands- oder interne Taktzyklen, nachdem der Abruf eingeleitet worden ist, am RSM zur Verfügung. Bei diesem und bei anderen RSM- Zugriffen auf das TSR wird RSM_LOCK_UP aktiviert, damit der RSM vorrangig auf das TSR zugreifen kann. Tatsächlich kontrolliert der RSM seine Schnittstelle zum TSR uneingeschränkt, sobald TSR_ACK zurückgeschickt wird, und der RSM kann jedwede erforderliche Zugriffsoperationen durchführen, ohne dass das SIO ihn dabei stört. Bei dieser und bei anderen Abrufzugriffen auf das TSR werden RSM_TSR_RD_WR und RSM_REQ aktiviert, wobei Letzteres bei der Operation zwischen einer Abruf- und einer Leseoperation unterscheidet. Dieser Zustand wird gehalten, bis TSR_ACK aktiv ist, und zu diesem Zeitpunkt erfolgt der Eintritt in den nächsten Zustand, den Zustand 23.
- Dies ist ein Wartezustand für eine einzige Leseoperation des TSR, während der das CCR für den nächsten Kanal, der bedient werden soll, aus dem TSR auf den TSR_DATA-Bus gelesen wird (man beachte wieder die hier zulässige Verzögerung von 2 Zustandszyklen vom Beginn des Abrufs bis zur Verfügbarkeit der abgerufenen Daten). Der nächste Zustand ist der Zustand 31.
- Das CT-Feld des CCR-Wortes, das an TSR_DATA erscheint, wird in einem internen "Vorab-CCR"-Register in der Zustandsmaschinenlogik zwischengespeichert. Wie bei allen Datenabrufoperationen aus dem TSR wird die Parität von den Paritätsprüfungsschaltungen 120 geprüft. Paritätsfehlerausgangssignale der Letzteren werden in das INT- Segment eingegeben und dahingehend unterschieden, dass sie entweder während einer ungeradzahligen oder einer geradzahligen Schlitzzeit (TSR_PARITY_ERROR__ODD oder TSR_PARITY_ERROR__EVENT) aufgetreten sind. Da sich die Aktivitäten des INT auf Teile von aufeinanderfolgenden Schlitzen in Bezug auf zugehörige Aktivitäten von anderen Segmenten beziehen, ist diese Unterscheidung notwendig, um es dem INT zu ermöglichen, den Fehler dem richtigen Kanal/Schlitz zuzuordnen. Der nächste Zustand ist der Zustand 25.
- Die Vorab-CCR-Signalspeicher werden geprüft, und der RSM versetzt sich selbst in einen bestimmten Zustand, um das TSR entsprechend den Kanaltyp-(CT-)Bits im Vorab-CCR zu adressieren. Manche Kanäle werden beispielsweise in einzelnen BTDM-Zeitschlitzen verarbeitet (gewöhnliche Kanäle vom Typ B und Typ D sowie Sprachkanäle), während sich andere (HyperChannels) über mehrere Zeitschlitze erstrecken. Somit ermöglicht die Vorab-CCR-Prüfung dem RSM festzustellen, auf welchen Kanaladressblock im TSR er gerade zugreifen muss. Dies lässt sich anhand der Erörterung des HCR-Registers in der nachstehenden Beschreibung des SIO besser verstehen. Außerdem unterscheiden die Freigabebits im Vorab-CCR zwischen aktiven oder inaktiven Kanälen, und in Bezug auf inaktive Kanäle werden Operationen zum Sichern und Laden von Zustandsparametern unterdrückt, wodurch zu anderen Zwecken auf das TSR zugegriffen werden kann (z. B. zum Zweck von SIO-Datenübertragungen an den oder von dem IOP/Hostkomplex). In diesem Zustand wartet die Logik basierend auf Informationen, die vom Zykluszähler 121 geliefert werden, bis nach dem Empfang von L1_BOS oder L1_LSOF 29 interne Taktzyklen verstrichen sind und tritt dann in den nächsten Zustand, den Zustand 2, ein.
- Wenn der vorhergehende Kanal (der Kanal, der dem Schlitz zugeordnet ist, der vor der BTDM-Anzeige wirksam war) aktiv ist, werden Steuersignale für den Schreibzugriff auf das TSR aktiviert (RSM_LOCK_UP und RSM_TSR_RD_WR), und das erste Zustandswort von TFM wird zur Sicherung in Bezug auf den Kanaladressraüm im TSR übergeben, der dem vorhergehenden Kanal zugeordnet ist. Im Hinblick auf dieses und andere Zustandswörter von Elementen, die Zeitsicherungs- und - 1 wiederladeoperationen unterworfen wurden, sollte hinsichtlich Einzelheiten von Feldern innerhalb eines jeden Wortes und der Verwendung eines jeden in Bezug auf entsprechende Elemente und das INT Bezug auf die folgenden Beschreibungen von entsprechenden Elementen genommen werden. Die Zustandslogik wartet auf das Erscheinen einer Bestätigung vom TSR (TSR_RSM_ACK) und prüft, ob die DONE-Signale vom TFM, TV und der TL1 inzwischen alle aktiviert wurden. Wenn nicht, wird in Bezug auf das INT eine Fehlermeldung RSM_LOGIC_TM aktiviert. Die Speicherung von Zustandswörtern von Elementen wird dynamisch in verschiedenen Phasen des aktuellen Schlitzes an der BTDM-Schnittstelle durchgeführt, vorausgesetzt, dass dieser Schlitz einem aktiven Kanal zugeordnet ist und das entsprechende IDE-Bit in dem zugehörigen CCR auf Freigabe gesetzt ist. In Bezug auf die Sicherung des TFM-Zustandswortes sind weitere Bedingungen, dass keine Bedingung "Ende der DCB- Kette" und kein FIFO-Paritätsfehler im TFM angetroffen wurden. Der nächste Zustand ist der Zustand 4.
- In diesem und in folgenden Zuständen, in denen ein Schreibzugriff auf das TSR notwendig ist, bleibt RSM_LOCK_UP aktiviert und gewährt damit vorrangigen Zugriff auf das TSR (für RSM unter Ausschluss des SIO). Wenn der vorhergehende Kanal aktiv ist und das zugehörige CCR-Bit TE auf Freigabe gesetzt ist, wird die erste Zustandsvariable des Sendeelements TV gesichert. Die CCR-Bits TE und IDE werden insbesondere bereitgestellt, damit das SIO, das vom IOP gesteuert arbeitet, Werte in jeweiligen TSR-Speicherplätzen aktualisieren kann, ohne es dem RSM überlassen zu müssen, die aktualisierten Werte mit veralteten Zustandsinformationen von den Sende- und Empfangselementen zu überschreiben. Der nächste Zustand ist der Zustand 6.
- Die dritte Sendevariable, TL1_TS01, wird gespeichert, vorausgesetzt, dass das TE-Bit im zugehörigen CCR auf Freigabe gesetzt ist. Der nächste Zustand ist der Zustand 7.
- Wenn der nächste Kanal aktiv ist, werden bei entsprechender Adressierung des TSR_RSM_LOCK_UP und RSM_REQ aktiviert, und der Prozess des Abrufs der ersten Zustandsvariablen für TL1 in Bezug auf diesen Kanal (TL1_TS01) wird in Bezug auf das TSR eingeleitet. Aufgrund der hier erlaubten Latenzzeit von 2 Zyklen bei TSR-Leseoperationen wird der Abrufprozess in diesem Zustand eingeleitet, aber die entsprechenden Daten auf dem TSR_DATA-Bus sind erst zwei Zustände nach diesem Zustand gültig. Der nächste Zustand ist der Zustand 5.
- Dies startet den Abrufprozess der Zustandsvariablen von TV, die zu dem nächsten Kanal gehört, in Bezug auf das TSR, vorausgesetzt, dass der nächste Kanal aktiv ist. Der nächste Zustand ist der Zustand 3.
- Wenn der nächste Kanal aktiv ist, startet dies den Abruf der ersten Zustandsvariablen für FTM in Bezug auf diesen Kanal, während die Ladesignale in Bezug auf TL1 aktiviert werden, um die Zustandsvariable zu laden, die 2 Zustandszyklen früher abgerufen wurde. Die Daten, die geladen werden, erscheinen auf dem Bus 126, und die Paritätsprüfung dieser Daten wird von der RSM-Logik 120 durchgeführt. Bei einem Paritätsfehler wird dem INT eine entsprechende Anzeige übergeben, wie zuvor erklärt wurde. Der nächste Zustand ist der Zustand 9.
- Rufe den HDLC-Protokollkonfigurationsterm für den nächsten Kanal ins HPCR-Register ab, und lade TV mit der im Zustand 5 abgerufenen Zustandsvariablen (aktiviere RSM_TV_LOAD). Die Parität von TV_TS01 wird geprüft und die empfangsseitigen DONE- Signale (RFM, RV, RL1) werden auf Richtigkeit geprüft. Man beachte, dass INT früher gestartet wird und länger laufen darf, als die Sende- oder Empfangselemente in jedem Schlitz, um sicherzustellen, dass alle erzeugten Ausnahmebedingungen vom INT synchron protokolliert werden. Der nächste Zustand ist der Zustand 1.
- Das CCR wird aus zwei Gründen erneut gelesen (siehe Zustand 0). Erstens, um jedwede erforderliche erneute Abbildung von HyperChannels durchzuführen, und zweitens, um die im Vorab-CCR- Register nicht verfügbaren Bits abzurufen (wie vorstehend erwähnt wurde, beinhaltete der frühere Zugriff aus das Vorab- CCR den Abruf und die Verwendung von nur dem Kanaltypfeld, so dass die internen Zwischenspeicherungseinrichtungen, die das Vorab-CCR-Register bilden, aus Gründen der Leistungsfähigkeit auf das Typfeld und nicht auf den ganzen CCR-Ausdruck abgestimmt werden). Im Hinblick auf die erneute Abbildung von HyperChannels erstrecken sich HyperChannels über mehrere BTDM- Zeitschlitze, und die CCRs, die zu diesen Kanälen gehören, sind gegebenenfalls nicht diejenigen, die zum Zeitpunkt des ersten Schlitzes vorab abgerufen wurden. Wenn der vorhergehende Kanal aktiv ist, wird das Signal RSM_TFM_LOAD zum Laden des TFM (mit TFM_TS01, auf das zuvor zugegriffen wurde) aktiviert, und die Parität der Variablen, die geladen wird, wird geprüft. Der nächste Zustand ist der Zustand 28.
- Dies ist ein Wartezustand, damit chipexterne Treiber ausgeschaltet werden können. Das Signal, um die allgemeine Variable HPCR in das RSM-Register 116 zu laden, wird aktiviert, und die Parität dieses Parameters wird geprüft. Der nächste Zustand ist der Zustand 22.
- Spätestens bis zu diesem Zustand sollte das INT sein DONE- Signal (INT_DONE) aktiviert haben und den neuen EOPIS-Status (EPOIS = Prozessende-Unterbrechungsstatus), sofern es einen solchen Status hat, zur Speicherung in der 16 Einträge tiefen Warteschlange (siehe Fig. 6) des zugehörigen Kanals übergeben, wo er zum Zugriff durch den IOP über das SIO verfügbar wird. Wenn das DONE-Signal nicht aktiviert worden ist, wird ein Logik-Zeitablauffehler übergeben, und die Verarbeitung wird fortgesetzt. EOPIS wird übergeben, wenn der vorhergehende Kanal (der Kanal, der jetzt zu Ende geht) aktiv war und das zugehörige EOP-Gültig-Bit gesetzt wurde (siehe die folgende Beschreibung des INT). Es sei angemerkt, dass in einem beliebigen der vorherigen Zustände, in denen die Parität geprüft wurde, das Auftreten des Paritätsfehlers dem INT signalisiert wurde, als der Fehler festgestellt würde, und zwar zu einem Zeitpunkt, der dem Verarbeitungsintervall für den zugehörigen Kanal in dem jeweiligen Zielelement entweder vorausgeht oder mit ihm zusammenfällt, und diese zeitliche Beziehung wird dem INT durch die Aktivierung einer entsprechenden Anzeige PARITY_ERROR_ODD oder PARITY_ERROR_EVEN angezeigt. Die Übergabe von EOPISR auf diese Weise ist notwendig, um sicherzustellen, dass jeder beliebige Unterbrechungsstatusvektor CEISR (kanalbezogener Fehlerunterbrechungsstatusvektor), der zu dem Hardwarefehler gehört, nur ein einziges Mal in Bezug auf einen beliebigen Kanal übergeben wird (um eine redundante Fehlermeldung an das Hostsystem zu vermeiden). Das Signal, um CCR in das Register 115 im RSM zu laden, wird aktiviert, und die Parität der CCR- Variablen wird geprüft. Der nächste Zustand ist der Zustand 12.
- Die Zustandsvariable für INT wird gespeichert, wenn der vorhergehende (zu Ende gehende) Kanal aktiv war oder wenn ein Paritätsfehler in Bezug auf diesen Kanal erzeugt wurde. Dies ist notwendig, um sicherzustellen, dass Unterbrechungen in Verbindung mit Hardwarefehlern in einem Element, die aber wiederholt durch Paritätsfehler angezeigt werden, nur ein einziges Mal in Bezug auf das Hostsystem erzeugt werden (siehe Zustand 22). Der nächste Zustand ist der Zustand 13.
- Die zu INT gehörende Zustandsvariable wird abgerufen, wenn der neue Kanal aktiv ist oder wenn zu einem früheren Zeitpunkt in der Vorab-CCR-Abruffolge für diesen Kanal ein Paritätsfehler aufgetreten ist. Wieder wird damit sichergestellt, dass das INT nur eine einzige Unterbrechung für Fehler verzeichnet, die sich während der Schlitzfolge möglicherweise wiederholen. Der nächste Zustand ist der Zustand 29.
- Ein Wartezustand, um chipexterne Treiber in der Umgebung abzuschalten. Der nächste Zustand ist der Zustand 14.
- Dies ist der erste Zustand, um den Status des Empfangselements in Bezug auf den vorhergehenden Kanal zu sichern. Wenn dieser Kanal aktiv und der Empfang in seinem CCR freigegeben war (RE- Bit EIN), wird der entsprechende Status von RV an das TSR mit geeigneten Adress- und Auswahlfunktionen gesendet. Dieser Status (siehe die nachfolgende Beschreibung von RV) enthält Bits, die Zustände der CCR-Bits RE und RDE anzeigen, die von RV in Bezug auf den vorhergehenden Kanal gesichert wurden (die notwendig sind, weil das CCR des nächsten Kanals geladen wurde). Das Ladesignal für das INT-Statuswort wird aktiviert, und die Parität dieses Wortes wird geprüft. Der nächste Zustand ist der Zustand 16.
- In diesem Zustand wird der START-Impuls für das INT-Segment aktiviert, wenn der nächste Kanal aktiv ist oder wenn in irgendeinem vorherigen Zustand der aktuellen Zustandsfolge ein Paritätsfehler aufgetreten ist. Das Statuswort für RL1 in Bezug auf den letzten Kanal wird im TSR gespeichert, wenn der Kanal aktiv war und ein Freigabeempfangsbit RE in seinem CCW hatte. Der nächste Zustand ist der Zustand 18.
- Speichere den Status des RFM in Bezug auf den vorhergehenden Kanal, wenn dieser Kanal aktiv war und sein CCR-RDE-Bit auf Freigabe gesetzt hatte. Der nächste Zustand ist der Zustand 20.
- Speichere das zweite Statuswort für RFM, wenn der vorhergehende Kanal aktiv und das RDE-Bit auf Freigabe gesetzt war. Der nächste Zustand ist der Zustand 10.
- Speichere das zweite Statuswort für RV, wenn der vorhergehende Kanal aktiv und das RE-Bit auf Freigabe gesetzt war. Der START- Impuls zur Übertragung der Elemente (RSM_XMIT_START) wird aktiviert, wenn der nächste Kanal aktiv ist und keine Paritätsfehler aufgetreten sind. Der nächste Zustand ist der Zustand 11.
- Der nächste Zustand für RV wird abgerufen, wenn der nächste Kanal aktiv ist. Der nächste Zustand ist der Zustand 21.
- Rufe das erste Zustandswort für RFM ab, wenn der nächste Kanal aktiv ist. Der nächste Zustand ist der Zustand 19.
- Das zweite Zustandswort für RFM wird abgerufen, wenn der nächste Kanal aktiv ist, und das zweite Zustandswort wird ins RV geladen, und seine Parität wird geprüft, wenn der Kanal aktiv ist. Der nächste Zustand ist der Zustand 17.
- Wenn der nächste Kanal aktiv ist, wird das Zustandswort für RL1 abgerufen, und das erste Zustandswort für RFM wird in den RSM geladen, und seine Parität wird geprüft. Der nächste Zustand ist der Zustand 15.
- Wenn der nächste Kanal aktiv ist, rufe das erste Zustandswort für RV (TSR_RV_TS0) ab, lade das zweite Zustandswort in den RFM, und prüfe seine Parität. Der nächste Zustand ist der Zustand 26,
- Wenn der nächste Kanal aktiv ist, wird das erste Zustandswort für RL1 geladen, und seine Parität wird geprüft. Der nächste Zustand ist der Zustand 27.
- Wenn der Kanal aktiv ist, lade das erste Zustandswort (TSR_RV_TS01) in das RV, und prüfe die Parität dieses Wortes. Der nächste Zustand ist der Zustand 24.
- Dies ist der letzte Zustand der Folge. Da der nächste Schlitz nach dem Empfang von L1_LSOF oder L1_BOS zum vorhergehenden Schlitz wird, wird die Schlitzerzeugungslogik so konditioniert, dass sie ihre Register aktualisiert, wenn eines von ihnen erscheint. Die Empfangsstartanzeige (RSM_RCV_START) wird aktiviert, wenn der aktuelle Kanal aktiv ist und bei Abrufen keine Paritätsfehler aufgetreten sind. Der nächste Zustand ist der Anfangszustand 30.
- Dies ist ein unzulässiger Zustand, in den nur eingetreten werden kann; wenn in der Zustandslogik ein Hardwarefehler auftritt. Wenn dieser Zustand erreicht wird, wird die Hardwarefehlermeldung RSM_ERROR_STATE in Bezug auf INT aktiviert, und die Wiederherstellung wird versucht, indem als Nächstes in den Zustand 30 geschaltet wird.
- Leitungen, Signalaustauschoperationen und der methodische Ansatz beim Betrieb an der Burst-Time-Division-Multiplex- (BTDM-)Schnittstelle werden als Nächstes mit Bezug auf die in den Fig. 13 bis 15 gezeigten Zeitdiagramme beschrieben. Einzelheiten von bestimmten L1-Schaltungen, die für diese Schnittstelle von Belang sein können, aber für den hier beanspruchten Erfindungsgegenstand als nicht relevant betrachtet werden, sind in der zuvor angeführten, ebenfalls anhängigen und in Bezug genommenen Anmeldung mit dem Titel "Burst Time Division Multiplex Interface For Integrated Data Link Controller" enthalten. Diese Anmeldung und ihre relevanten Einzelheiten der Offenlegung sind durch die hier vorgenommene Bezugnahme Bestandteil hiervon. Der Einfachheit halber wird die BTDM-Schnittstelle nachstehend einfach als die "BTDM" oder die "Schnittstelle" bezeichnet.
- Die BTDM stellt einen exakten funktionalen und logischen Bruch zwischen Prozessen der Ebene 1 und der Ebene 2 dar, der von den Open-Systems-Interconnect-(OSI-)Spezifikationen der International Standards Organization (ISO) definiert wird. Die Prozesse der Ebene 2 können ganz oder teilweise in der vorliegenden IDLC-Einheit durchgeführt werden (in der hier beschriebenen Ausführungsform für die ISDN- Primärmultiplexumgebung werden viele, aber nicht alle Funktionen der Ebene 2 in der IDLC ausgeführt, aber im IOP und/oder im Hostsystem müssen andere Verantwortungen für Funktionen der Ebene 2 übernommen werden).
- Die BTDM selbst wird von OSI weder definiert noch in Betracht gezogen. Vielmehr stellt sie etwas dar, das hier als eine bisher nicht realisierte Vorgehensweise zur Organisation des Zeitverhaltens der Übertragungsfunktionen zwischen der Hardware der Ebene 1 und der Hardware der Ebene 2 betrachtet wird, so dass sich der hier erwünschte Durchsatz der IDLC innerhalb und außerhalb der repräsentativen ISDN-Primärmultiplexumgebung erzielen lässt.
- Die BTDM verwendet eine ziemlich kleine Anzahl von Leitungen (6), um Daten mit hohen Geschwindigkeiten (bis zu 2048 MBit/s im Vollduplexbetrieb) zwischen der IDLC und den L1-Schaltungen zu übertragen. Sie bietet die Flexibilität, die notwendig ist, um solche Übertragungen in der beispielhaften ISDN- Primärmultiplexumgebung aufrechtzuerhalten, beispielsweise für 32 Vollduplexkanäle vom Typ B mit Datenübertragungsgeschwindigkeiten in jedem Kanal bis zu 64 kBit/s in jeder Richtung. Es ist natürlich klar, dass solche Schaltungen in Abhängigkeit von bestimmten Netzwerken und Datenträgern, mit denen die L1-Schaltungen verbunden werden, viele verschiedene-Formen annehmen können. Von Bedeutung hier ist die allgemeine Zusammensetzung dieser Schaltungen, die entsprechend den Erfordernissen vorgenommen wird, um die bestimmten Signale, das Zeitverhalten der Signale und die Eigenschaft der BTDM, einen Phasenabgleich zwischen den Signalen vorzunehmen, aufrechtzuerhalten. Diese allgemeine Zusammensetzung ist in der vorstehend erwähnten, ebenfalls anhängigen Patentanmeldung vollständig beschrieben und ist für keinen hier beanspruchten Gegenstand von Bedeutung. Daher werden hier nur die zugehörigen Schaltungsfunktionen erörtert.
- Die Schnittstelle ermöglicht der L1-Hardware, die Datenübertragungsgeschwindigkeit in einem beliebigen Schlitz von 0 bis 64 kBit/s pro Kanal im Vollduplexbetrieb zu steuern und dadurch Sprachkanäle/freie Kanäle, Kanäle vom Typ B und die langsameren Kanäle vom Typ D (16 kBit/s pro Kanal im Vollduplexbetrieb), Kanäle vom Typ M und Kanäle vom Typ 5 sowie HyperChannels zu unterstützen, die gebildet werden, indem Zeitschlitzkapazitäten von mehreren Kanälen vom Typ B zusammengefasst werden (siehe die nachfolgende Beschreibung der HyperChannels). Außerdem ermöglicht die Flexibilität der Schnittstelle bei der Ablaufsteuerung der Übertragung, dass die Dauer von Schlitzen und Rahmen dynamisch verändert werden kann, um unterschiedlichen Erfordernissen des Übertragungsverkehrs gerecht zu werden.
- Obgleich sie so realisiert ist, dass sie sich zur Unterstützung sowohl der ISDN-Primärrate und der ISDN-Basisrate als L1- Protokolle als auch des HDLC als dem hauptsächlichen L2- Protokoll eignet, ist die BTDM nicht auf diese Protokolle beschränkt. Sie kann daher zur Unterstützung von beliebigen anderen L1-, L2-Protokollen, die von OSI oder IBM definiert werden (z. B. Async oder Bisync) verwendet werden und weist die Geschwindigkeit und die Eigenschaften auf, die geeignetsind, um der Übertragung von codierter Sprache in einem beliebigen Kanal Rechnung zu tragen.
- Die Schnittstellen-Datenübertragungssignalisierung wird in äußerst zeitkomprimierten Signalpaketen (Bursts) durchgeführt, die ein Zeitfenster von kurzer Dauer in jedem Kanalzeitschlitz belegen. Sende- und Empfangsübertragungen werden gleichzeitig durchgeführt. Die "Totzeit" zwischen den Signalpaketen, die auch als Aufbauzeit bezeichnet wird, soll die Effizienz der Kanalverarbeitungs- und Zustandsicherungs- und - wiederladefunktionen, die in der IDLC ausgeführt werden, optimieren, und man geht davon aus, dass sie die für den Mehrkanal-Übertragungsdienst notwendige Zellenzahl der LSI- Schaltung naturgemäß auf ein Minimum herabsetzt und auch die Speicherkapazität des Puffers, die in der IDLC pro Kanal notwendig ist, minimiert.
- Die Schnittstelle unterstützt einen hohen Grad an Flexibilität bei den Methoden, die zur Übertragung von Daten bei Schichtenprotokollen (OSI, SNA) zwischen lokalen und fernen Chipmodulen verwendet werden können, und vereinfacht die Übertragung von kanalbezogenen Zeitmultiplex-(TDM-)Daten im HDLC-Format zwischen Einheiten der Schicht 2, wie zum Beispiel der IDLC, und einer Vielzahl von L1-Schaltungen.
- Die Schnittstelle unterstützt 'X' TDM-Datenkanäle, von denen jeder 'Y' Bits an Volldüplexdaten in pro Kanal vorhandenen TDM- Zeitschlitzen der Dauer 'Z' übertragen kann, wobei 'X' im Bereich von 1 bis 32 und 'Y' im Bereich von 0 bis 8 liegen kann, 'Z' eine Mindestdauer von 3,8 Mikrosekunden hat und 'X' multipliziert mit 'Z' kleiner oder gleich 125 Mikrosekunden ist. Es sei angemerkt, dass die gerade genannten Zahlen auf europäische ISDN-Anforderungen zugeschnitten sind und 'X' bei Ausführungen, die speziell auf nordamerikanische ISDN- Anforderungen zugeschnitten sind, im Bereich von 1 bis 25 und 'Y' im Bereich von 0 bis 8 bei Kanälen vom Typ B und Typ D liegen sollten und 'Z' dieselbe Mindestdauer von 3,8 Mikrosekunden haben sollte.
- In Bezug auf die obigen Parameter sei angemerkt, dass sie auf die gerade betrachteten ISDN-Umgebungen zugeschnitten sind. In anderen Umgebungen geht man davon aus, dass der Y-Bereich (die Bits, die pro Schlitzfenster übertragen werden können) für die angegebenen Grenzwerte von X und Z ohne weiteres auf 16 erhöht werden könnte. Die vorliegende BTDM-Realisierung ist zwar speziell für die Verbindung einer einzigen L1-Schaltungseinheit mit einer einzigen Einheit vom Typ IDLC vorgesehen, doch sei darauf hingewiesen, dass ein ähnliches Schnittstellenkonzept zur Verbindung von mehreren L1-Schaltungsmodulen mit einer einzigen IDLC-Einheit oder sogar mit mehreren IDLC-Einheiten verwendet werden könnte.
- Ein Merkmal der Schnittstelle, das in der Bezugspatentanmeldung ausführlicher beschrieben ist, trägt die Bezeichnung "positive slip operation" (Operation mit positivem Schlupf) in allen Kanälen. In der vorliegenden Schrift wird das Zeitverhalten der Schnittstelle von bestimmten Elementen in den L1-Schaltungen so bestimmt, dass unter normalen Betriebsbedingungen die Möglichkeit eines Überlaufs oder eines Unterlaufs (Überlauf in Bezug auf Übertragungen von Empfangsdaten von der L1 zur IDLC und Unterlauf in Bezug auf die Übertragung von Sendedaten von der IDLC an die L1) aufgrund einer Taktverschiebung zwischen der internen L1-Taktung und den Takten an fernen Netzwerkknoten wirksam ausgeschaltet oder zumindest minimiert wird. Bei anderen zeitabhängigen Schnittstellen wird es als normal betrachtet, dass eine Taktverschiebung zu sporadischem Schlupf führt, so dass mit einem gelegentlichen Überlauf oder Unterlauf gerechnet wird und dieser Situation begegnet wird, indem Fehlermeldungen übergeben werden und der Host die erneute Übertragung des Rahmens einleitet. Solche Fehlerübergaben und erneuten Übertragungen, die jedoch eine offensichtliche Verschwendung der Verarbeitungszeit des Hostsystems darstellen und tendenziell auch die Bandbreite der Schnittstelle vollständig belegen oder deren Nutzung einschränken, werden durch die Operation mit positivem Schlupf wirksam ausgeschlossen oder auf ein Minimum herabgesetzt.
- Die BTDM enthält Daten- und Steuerleitungen, die relative Schritttakte haben, welche in den Fig. 13 und 14 gezeigt sind. Einzelne Leitungen, RDATA und TDATA, transportieren jeweils empfangene und gesendete Daten (empfangene Daten von der L1 an die IDLC, gesendete Daten von der IDLC an die L1). Die Steuerleitungen LSOF und BOS übertragen Bezugszeitimpulse von der L1 an die IDLC, die jeweils die Zeitpunkte "letzter Schlitz des Rahmens" und "Beginn des Schlitzes" in Bezug auf TDM-Zeitrahmen und -Zeitschlitze angeben. LSOF ist sowohl die Schlitzanfang-Anzeige für den letzten Rahmenschlitz als auch eine erweiterte Rahmenende-Anzeige. Die Dauer der Impulse auf LSOF und BOS beträgt 50 Nanosekunden oder einen (IDLC-, L1-)Maschinentaktzyklus. Jeder Rahmenschlitz kann einem Übertragungskanal zugeordnet werden, und jedem Übertragungskanal können dynamisch ein oder mehrere Schlitze pro Rahmen zugeordnet werden. Aktiven B-, D- und freien/Sprachkanälen wird jeweils ein Schlitz pro Rahmen zugeordnet, und mehrere Schlitze (nicht unbedingt zeitlich zusammenhängend) können gemeinsam einem einzigen HyperChannel zugeordnet werden (siehe die folgende Beschreibung von HyperChannels).
- Während eines jeden Schlitzes finden Übertragungen von Empfangs- und Sendedaten bitseriell innerhalb eines 800 Nanosekunden dauernden "Fensters" statt. Das Fenster für die Empfangsdaten beginnt 800 Nanosekunden vor dem BOS-Impuls, der den Beginn des nächsten Schlitzes anzeigt, und endet 50 Nanosekunden vor diesem Impuls. Das Fenster für die Sendedaten beginnt zur selben Zeit wie das Fenster für die Empfangsdaten, aber aufgrund des Phasenabgleichs der Sendeanforderungen und der entsprechenden Sendebit-Übertragungen endet es fast gleichzeitig mit der nächsten BOS-Anzeige.
- Jedes Bit wird in einem 100-Nanosekunden-Intervall übertragen, das von einem entsprechenden Impuls von der L1-Seite (dem Impuls RDATA_VALID, der jedes von L1 gesendete Empfangsbit begleitet, und dem Impuls TDATA_REQ, der für jedes Sendebit aktiviert wird, das vom IDLC-Element TL1 gesendet werden soll) festgelegt wird. Während eines beliebigen Schlitzes ist die Anzahl der Bits, die in jede Richtung übertragen wird (d. h., die Anzahl der Impulse 'RDATA_VALID' und 'TDATA_REQ', die von L1-Schaltungen übergeben werden), veränderbar (von 0 bis 8 bei den aktuellen ISDN-Umgebungen), und durch diese Veränderbarkeit kann L1 den Belegungsgrad ihrer Sende- und Empfangspufferspeicher regeln, um die vorstehend erwähnte Wirkung des positiven Schlupfes zu erreichen.
- Der Rest des Schlitzintervalls, der eine Dauer von mindestens 2,95 Mikrosekunden hat, ist die "Aufbauzeit", die es der IDLC gestattet, die minimal notwendige Abwicklung der Daten, die im vorhergehenden Schlitz empfangen wurden (der Schlitz vor dem BOS-Impuls, der auf die Empfangsübertragung folgt), abzuschließen, Kanalzustandsicherungs- und - wiederladeoperationen in Bezug auf den nächsten Schlitz (denjenigen, der beim nächsten BOS nach dem Übertragungsfenster gestartet wird) durchzuführen und die ganze minimal notwendige Abwicklung der Sendedaten in Bezug auf den Kanal und das Übertragungsfenster, die zum nächsten Schlitz gehören, abzuschließen.
- Die theoretische (nominale) Schlitzdauer bei der europäischen ISDN-Geschwindigkeit (2048 Megabit pro Sekunde) beträgt 3,91 Mikrosekunden, aber die Dauer bei der vorliegenden Schnittstelle wird etwas kürzer gehalten (Mindestdauer von 3,8 Mikrosekunden); d. h. die Schlitzübertragungsgeschwindigkeit an der BTDM ist etwas höher als die nominale Schlitzübertragungsgeschwindigkeit, die an der Netzwerkschnittstelle erwartet wird, wenn man die "Verschiebung im ungünstigsten Fall" ("worst case drift") zwischen lokalen L1-Takten und fernen Takten berücksichtigt. Die Aufrechterhaltung dieser "erhöhten Schlitzübertragungsgeschwindigkeit" und die Regelung der Anzahl der Bit auf L1-Ebene, die pro Schlitz übertragen werden, bewirkt einen positiven Schlupf; d. h., es wird sichergestellt, dass der Empfangs- und der Sendepufferspeicher auf der L1-Seite (mit einer Mindestkapazität von 2 Byte pro Kanal in jedem Pufferspeicher) aufgrund einer Taktverschiebung zwischen dem internen L1-Takt und dem netzwerkseitigen Takt nicht überlaufen beziehungsweise unterlaufen kann. Auf der IDLC-Seite sind die Verarbeitungsgeschwindigkeit innerhalb der Sende- und Empfangspipelines und die im ungünstigsten Fall erwartete DMAC- Zugriffsgeschwindigkeit auf den IOP-Speicher so ausgelegt, dass in mehr als ausreichendem Maße sichergestellt wird, dass man jedem beliebigen. Takt gerecht werden kann, den L1 für eine positive Schlupfregelung festlegt.
- Fig. 15 veranschaulicht die Zeitsteuerung der internen L1- Takte, C1_CLOCK und B2_CLOCK, die mit der Erzeugung der BTDM- Datenbit-Taktfunktionen TDATA_REQ und RDATA_VALID verbunden sind. C1 ist ein Haupttakt, und B2 ist ein Nebentakt (von Cl abgeleitet). Jeder interne Taktimpuls hat eine Dauer von 20 Nanosekunden (ns). Aufeinanderfolgende C1- und B2-Impulse überlappen einander nicht, und B2 beginnt unmittelbar nach dem Ende des vorausgehenden C1-Impulses mit einem "Sicherheitsabstand" von ungefähr 5 ns. Jeder Maschinenzyklus in L1 (50 ns) beginnt mit dem Anstieg eines B2-Impulses und besteht aus 4 Taktphasen; einer, die mit der Dauer des B2- Impulses verbunden ist, einer weiteren, die mit dem Intervall vom Ende dieses B2-hmpulses bis zum Anstieg des folgenden C1- Impulses verbunden ist, einer dritten, die mit der Dauer dieses C1-Impulses verbunden ist, und einer vierten, die mit dem Sicherheitsabstand vom Ende dieses C1-Impulses bis zum Anstieg des nächsten B2-Impulses verbunden ist.
- Übertragungen von Empfangs- und Sendebits werden nicht bestätigt. Die IDLC muss Empfangsdätenbits in einer vorher festgelegten Phase von RDATA_VALID, die mit '****' angegeben wird, sowie L1-Anforderungen für Bitübertragungen in einer vorher festgelegten Phase von TDATA_REQ, die mit '****' angegeben wird, zwischenspeichern. L1 muss Sendedatenbits zwischenspeichern, die von der IDLC in einer vorher festgelegten Phase von TDATA, die mit ' ' angegeben wird, übergeben werden.
- Zusätzlich zu den oben erwähnten Daten- und Steuerleitungen sind eine Reihe von Leitungen als zur BTDM gehörende Leitungen gezeigt, aber diese Leitungen verbinden eigentlich die L1- Schaltungen mit dem IOP/Hostsystem, wobei einige direkt an den IOP-Bus und andere indirekt über das SIO-Element der IDLC an den IOP-Bus angeschlossen sind. Diese Leitungen ermöglichen dem IOP, die Aktivierung der L1-Schaltung direkt zu steuern und Unterbrechungsstatusinformationen direkt von diesen Schaltungen abzurufen. Die Bezeichnungen und Funktionen dieser Leitungen sind nachstehend aufgeführt.
- CHIP_SELECT Eingangssignal vom SIO in die L1, das anzeigt, dass eine gültige, vom IOP stammende Adresse (und vom IOP stammende Daten, wenn die vom IOP benötigte Operation eine Schreiboperation ist) erkannt wurde, die sich im L1-Adressraum befindet. Dieses Signal ist auch ein Hinweis darauf, dass zu diesen Leitungen gültige Bedingungen gehören: READ/WRITE, ADDRESS, ADDRESS_PARITY und bei Schreiboperationen: DATA und DATA_PARITY. Diese Leitung bleibt aktiv, bis die Adresse entfernt wird.
- READ/WRITE Eingangssignal vom SIO in die L1, das eine Datenübertragungsoperation angibt, die in Bezug auf die angegebene Adresse' durchgeführt werden soll. Binär-1- und
- Binär-0-Pegel auf dieser Leitung bezeichnen Lese- beziehungsweise Schreibfunktionen. Der Signalzustand der Leitung ist gültig, wenn CHIP SELCT aktiv ist.
- ADDRESS Ein 12-Bit-Eingangssignal vom SIO in die L1, das eine Adresse (A12 bis A0; A12 ist das höchstwertige Bit) in L1 angibt, an die oder von der Daten übertragen werden sollen, wenn CHIP SELECT aktiv ist. ADDRESS ist immer gültig, wenn CHIP SELECT aktiv ist. SIO empfängt tatsächlich eine 24-Bit- Adresse vom IOP (A23 bis A0) und decodiert die höchstwertigen Bits (A23 bis A12), um CHIP_SELECT zu erzeugen und die niedrigstwertigen Bits an L1 zu übertragen (zur weiteren Decodierung durch Letztere, soweit dies erforderlich ist).
- DATA Ein bidirektionaler 16-Bit-(2-Byte-)TTL-Bus mit drei Zuständen zwischen dem IOP-Bus und L1. Während Leseoperationen muss die L1- Seite ihre Datentreiber innerhalb von 20 Nanosekunden nach der Deaktivierung von CHIP_SELECT sperren.
- DATA_PARITY L1-Paritätseingangssignal vom IOP während Schreiboperationen, das aus Paritätsbits mit einem Logikpegel "1" (H) und einem Logikpegel "0" (L) besteht, welche jeweils zu Bytes mit einem Logikpegel "1" und Bytes mit einem Logikpegel "0" auf DATA gehören. Wenn L1 einen Paritätsfehler feststellt, aktiviert sie -DTACK nicht, sondern setzt ein Statusbit, das den Fehler mit Daten in Verbindung bringt. Dieses Bit kann vom IOP/SIO gelesen werden, um die Ursache der zugehörigen DTACK-Zeitsperre (DTACK timeout) zu ermitteln.
- ADDRESS_PARITY L1-Eingangssignal von SIO (2 Bit), das die Parität der zugehörigen (Voll- und Halb-)Bytes auf ADDRESS angibt. Wenn L1 einen Paritätsfehler bei der Adresse feststellt, verweigert es die Aktivierung von -DTACK wegen eines Datenparitätsfehlers und setzt das Statusbit, das den Fehler mit der Adresse in Verbindung bringt. IOP/SIO kann dieses Bit lesen, um die Ursache der zugehörigen DTACK-Zeitsperre zu ermitteln.
- - DTACK Ausgangssignal mit drei Zuständen von L1, das zur Bestätigung der Datenübertragung dient. Wird nur aktiviert, nachdem während Leseoperationen gültige Daten auf DATA gelangt sind oder nachdem Daten bei einer Schreiboperation zwischengespeichert wurden, und es wird nur aktiviert, wenn die zugehörige Daten- und Adressparität stimmen. Das Signal sollte spätestens 20 ns nach der Deaktivierung von CHIP SELECT entfernt werden.
- - CHIP_INTERRUPT L1-Ausgangssignal an das INT-Element der IDLC, mit dem bei Letzterem um die Erzeugung eines manuellen Unterbrechungsvektors aufgrund eines L1- Hardwarefehlers nachgesucht wird. INT/SIO erzeugt die zugehörige Unterbrechung an der IOP-Busschnittstelle auf einer vom IOP vorher angegebenen Ebene. Diese Leitung sollte von L1 solange aktiv gehalten werden, bis der IOP auf die Unterbrechungsanforderung der IDLC antwortet, indem er eine Statusleseoperation aus einem internen Statusregister in der L1 anfordert. Die Leitung sollte anschließend für die Dauer von mindestens 100 ns deaktiviert bleiben, um die Folge abzuschließen. Da INT manuelle Unterbrechungsanforderungen von L1 nicht in die Warteschlange stellt, sind die L1- Schaltungen für die Erfassung des Status in Bezug auf mehrere L1-Ereignisse in lokalen Statusregistern dieser Schaltungen verantwortlich. Da sich die Erzeugung von nianuellen Vektoren durch INT in Bezug auf andere Unterbrechungsstatus- Austauschaktivitäten außerdem verzögern kann, muss einer solchen Verzögerung im L1- Prozess stattgegeben werden.
- - CHANNEL_INTERRUPT L1-Ausgangssignal, mit dem um die Erzeugung eines manuellen L1- Kanalunterbrechungsvektors durch INT nachgesucht wird. Diese Unterbrechung wird gleich wie die vorstehende Chipunterbrechung behandelt. Den einzigen Unterschied gibt es an der IDLC, wo sie eine niedrigere Priorität als die Chipunterbrechung erhält. Sie bewirkt auch, dass ein eindeutiger Vektor erzeugt wird, der sich vom Chipunterbrechungsvektor unterscheidet.
- - RESET Eingangssignal vom SIO in L1, das einen Hauptrücksetzvorgang aller L1-Schaltungen in einen Rücksetzzustand bewirkt. Es kann jederzeit aktiviert werden und wird von CHIP SELECT nicht durchgelassen. Es bleibt für mindestens 100 Millisekunden aktiv.
- Dieser Abschnitt beschreibt die Elemente RL1 und RV sowie die Register und die Logik der Zustandsmaschine in jedem Element.
- Dieser Unterabschnitt beschreibt die Funktionen und den logischen Aufbau von RL1.
- Zu den Funktionen von RL1 gehören:
- 1) Serien-Parallel-Umsetzung der Empfangsdaten. RLT empfängt die Datenbits seriell an der BTDM in Bitgruppen (Bursts) von 0 bis 8 Bit pro Kanalzeitschlitz, setzt die Daten in 8-Bit-Bytes seriell-parallel um und leitet Letztere an RV zur weiteren bitparallelen Byte-Verarbeitung weiter.
- 2) Erkennen und Löschen von protokollspezifischen Zeichen und Steuersignalmustern in Daten, die RV übergeben wurden; z. B. HDLC-Flaggen (01111110), Leerzeichenmuster (15 oder mehr aufeinanderfolgende Einsen) und Abbruchmuster (7 bis 14 aufeinanderfolgende Einsen). Wenn solche Zeichen und Muster erkannt werden, werden sie verworfen (nicht dem RV übergeben).
- 3) Entfernen von Bits, die an Sendeknoten zur Transparenz eingefügt werden; z. B. Entfernen von eingeblendeten '0'- Bits aus HDLC-Daten, die eingefügt wurden, um eine Simulation von Flaggen oder speziellen Mustern (Leerzeichen- oder Abbruchmustern) in den "Nachrichtendaten" zu verhindern.
- 4) Setzen von Anzeigern, um das INT-Element auf den Rahmenempfangsstatus und den Empfang von protokollspezifischen Mustern wie zum Beispiel HDLC- Abbruch- und Leerzeichenmuster aufmerksam zu machen. In Bezug auf die empfangenen HDLC-Daten setzt RL1 Anzeiger, nachdem sie Flaggen, Leerzeichenmuster und Abbruchmuster erkannt hat. Nachdem sie eine Flagge erkannt hat, wird die Mustererkennungslogik in RL1 tätig, um festzustellen, ob dieses Zeichen den Beginn oder das Ende eines Rahmens darstellt. Wenn es den Beginn eines Rahmens darstellt, setzt RL1 eine internen Rahmenstatusanzeiger, um dies anzuzeigen. Wenn es das Ende eines Rahmens darstellt, setzt RL1 den internen Rahmenstatusanzeiger, um dies anzuzeigen, und übergibt RV einen Anzeiger "Ende des Rahmens", eof_ind, den RV verarbeitet und an INT weiterreicht. Wenn im Anschluss an das Setzen eines internen Rahmenbeginn-Status ein Byte, das keine Flagge darstellt (non-flag byte), erkannt wird, wird der interne Rahmenstatus so gesetzt, dass die Mitte eines Rahmens angezeigt wird. Wenn ein Leerzeichenmuster erkannt wird, übergibt RL1 einen Leerzeichenanzeiger, idle_ind, an RV, den RV an INT welterreicht. Wenn ein Abbruchmuster festgestellt wird, übergibt RL1 einen Abbruchanzeiger, abort_ind, an RV, den RV an INT weiterreicht.
- 5) Abbruchmaskierung. RL1 kann dynamisch so konditioniert werden (vom Host/IOP über SIO, RSM und TSR), dass sie die Erkennung von Abbruchmustern außerhalb eines Rahmens selektiv maskiert und dadurch Host-Programmen die Flexibilität verleiht, mit der sie unerwünschte Unterbrechungen in Bezug auf diese Feststellung verhindern können.
- 6) Oktettausrichtungsprüfung. Nachdem RL1 einen Rahmen festgestellt hat, der die Flagge verliert, führt sie eine Oktettausrichtungsprüfung durch, um zu überprüfen, ob die Anzahl der Bits, die während des Rahmens empfangen wurden, abzüglich der Anzahl der ausgeblendeten Bits (destuffed bits) ein Vielfaches von 8 darstellt.
- 7) Erkennen/Löschen von gemeinsam benutzten Symbolen in protokollspezifischen Mustern. In Bezug auf HDLC-Quellen, die eine gemeinsame 0 zwischen aufeinanderfolgenden Flaggen (011111101111110) verwenden, um die Gesamtzahl der übertragenen Bits zu verringern, ist RL1 für das Erkennen und Löschen solcher Flaggen zuständig. Auch in Bezug auf HDLC-Quellen, die eine einzige gemeinsam benutzte Flagge zwischen Rahmen verwenden (um das Ende eines Rahmens und den Beginn eines anderen Rahmens darzustellen), ist RL1 für die Unterscheidung zwischen diesen Flaggen und das Setzen des entsprechenden internen Rahmenstatus und des externen Anzeigers "Ende des Rahmens" zuständig.
- 8) Dateninversion. RL1 unterstützt den Empfang von invertierten Datenprotokollen (z. B. invertierten HDLC- Protokollen) und ist für das Erkennen, Löschen und die Anzeige von Flaggen, Leerzeichenmustern und Abbruchmustern zuständig, die in invertierter Form empfangen wurden.
- Bezug nehmend auf die Fig. 16 bis 18, umfasst die RL1 die Zustandsmaschinenlogik 150, die alle RL1-Operationen steuert und darüber hinaus bestimmte Mustererkennüngsfunktionen in Bezug auf empfangene Daten durchführt. RL1 enthält auch ein 8- Bit-Prüfregister 152, ein 8-Bit-Datenregister 153 und ein 6- Bit-Serviceregister 154. Die Ausgangssignale der Logik 150 und des Registers 154 bilden das RL1-Statuswort RL1_TS01, das dem RSM zu Statussicherungs- und -wiederladeoperationen übergeben wird.
- Bezug nehmend auf Fig. 18, umfasst das Zeitsicherungs- und - wiederlade-Statuswort RL1_TS01 Folgendes: zwei 8-Bit-Felder mit der Bezeichnung RLCR und RLDR, ein 4-Bit-Feld mit der Bezeichnung RLTC, ein 3-Bit-Feld mit der Bezeichnung RLDC, ein 2-Bit-Feld mit der Bezeichnung RLFS und ein 7-Bit-Feld mit der Bezeichnung RLSTAT. Die Bedeutung der jeweiligen Feldbezeichnungen und der Informationen, die in jedem Feld übergeben werden, werden als Nächstes aufgeführt.
- RLCR Stellt den Zustand des RL1-Prüfregisters dar. Es spiegelt ständig den Inhalt des Prüfschieberegisters 152 wider.
- RLDR Stellt den Zustand des RL1-Datenregisters dar. Es spiegelt ständig den Inhalt des Datenregisters 153 wider.
- RLTC Stellt den Zustand des RL1-Transparenzzählstandes dar. Es entspricht laufend dem Zustand des Transparenzzählstandes; ein Zählstand von fortlaufend empfangenen Bits mit dem Wert '1', der zum Erkennen von Flaggen, Leerzeichenmustern und Abbruchmustern sowie zur Feststellung, ob eine Ausblendmaßnahme (destuffing action) entsprechend den HDLC-Regeln (siehe die nachfolgende Erörterung der Zustandsmaschine) notwendig ist, dient.
- RLDC Stellt den RL1-Datenzählstand dar; einen Zählstand der Anzahl der empfangenen gültigen Datenbits (Modulo 8). Er wird nach der Feststellung einer gültigen Rahmenendeflagge zur Festlegung der Oktettausrichtung verwendet. Dieser Zählstand wird zurückgesetzt, wenn ein Abbruch-, ein Leerzeichen oder eine Flagge erkannt wird.
- RLFS Stellt den RL1-Rahmenzustandzählstand dar (siehe die Beschreibung der Rahmenzustände 0, 1, 2 und 3 in der folgenden Erörterung der Zustandsmaschine). Sein Wert unterscheidet Phasen des HDLC-Rahmenempfangs und dient zur Feststellung, wann empfangene Daten Nachrichtendaten darstellen, die an RV weitergereicht werden sollen.
- RLSTAT Stellt den Zustand des RL1-Statusregisters 154 dar, der in Fig. 17 gezeigt ist. Seine Bits, die als die Bits 0 bis 6 bezeichnet sind, zeigen den aktuellsten Empfangsstatus in dem jeweiligen Kanal wie folgt an:
- Bit 0 - Leerzeichenmuster empfangen
- Bit 1 - Rahmenendemuster empfangen
- Bit 2 - Abbruchmuster festgestellt
- Bit 3 - reserviert
- Bit 4 - Oktettausrichtungsfehler festgestellt
- Bit 5 - reserviert
- Bit 6 - reserviert
- Datenbits, die von der BTDM übergeben werden (BTDM_DATA mit BTDM_DATA_VALID), werden innerhalb von einem Taktzyklus (50 ns) ihrer Übergabe in das Prüfregister 152 geschoben. In Abhängigkeit vom Kanalprotokoll werden diese Daten selektiv in das Datenregister 153 geschoben, und verschiedene Maßnahmen folgen.
- In Bezug auf freie Kanäle werden Bits in das Register 153 geschoben, ohne dass bestimmte Musterprüfungen durchgeführt werden, und während das achte Bit einer Folge empfangen wird (was von der Zustandsmaschine 151 festgestellt wird), wird die parallele Ausgabe des Datenregisters 153, RL1_RV_DATA, RV mit einer "Bereit"-Anzeige, RL_RV_DATA_RDY, übergeben. Immer wenn eine solche Anzeige übergeben wird, muss RV die 8 Bits innerhalb von einem Taktzyklus ihrer Übergabe zwischenspeichern (d. h., die Übertragung ist synchron und wird nicht bestätigt).
- In Bezug auf Datenkanäle, die für HDLC oder andere spezielle Rahmenübertragungsprotokolle konfiguriert sind, die ein selektives Erkennen von vorher festgelegten Bitmustern, ein selektives Löschen dieser Muster und die Übertragung von Anzeigen in Verbindung mit dem Erkennen solcher Muster erforderlich machen, führt RL1 die folgenden Operationen durch.
- Bits werden seriell sowohl in das Prüfregister 152 als auch in das Datenregister 153 geschoben, und während der Ankunft eines jeden Bits dient die Logik 150 zur Feststellung, ob dieses Bit und die 7 vorher empfangenen Bits eine Flagge (01111110) darstellen. Wenn diese Bits eine Flagge darstellen, wird der Inhalt des Datenregisters 153 gelöscht, ohne an RV übertragen zu werden, darüber hinaus werden der Rahmenanfang- oder Rahmenendestatus festgestellt und im Register 154 wird gegebenenfalls ein Anzeiger gesetzt.
- Während des Empfangs eines jeden Bit dient die Logik 150 auch zur Feststellung, ob dieses Bit und seine 6 Vorgänger Teil eines Leerzeichen- oder eines Abbruchmusters (eines Muster, das mehr als sechs aufeinanderfolgende Einsen enthält) sind. Wenn dies festgestellt wird, wird der Inhalt des Datenregisters gelöscht, ohne an RV übertragen zu werden, und ein Anzeiger für den Leerlaufzustand oder den Abbruchzustand wird in Bezug auf RV gesetzt. Nachdem sie ein Abbruch- oder ein Leerzeichenmuster festgestellt hat (das praktisch alle folgenden Daten ungültig macht, bis eine neue Beginnflagge ankommt), prüft die Logik 150 weiterhin ankommende Bits und hält dabei nach einer Flagge Ausschau, und sie verwirft weiterhin empfangene Gruppen von 8 Bit, indem sie den Inhalt des Datenregisters löscht, ohne ihn an RV zu übertragen, bis eine Flagge festgestellt wird.
- Nachdem sie eine Beginnflagge festgestellt hat, führt die Logik 150 weiterhin eine Prüfung auf Flaggen, Leerzeichen- und Abbruchmuster wie vorstehend durch, aber sie prüft auch jedes empfangene Bit zusammen mit seinen 6 Vorgängern, um festzustellen, ob dieses Bit ein "eingeblendetes" Bit ist (ein 0-Bit, das auf 5 aufeinanderfolgende Einsen folgt, denen eine 0 vorausgeht). Jedes eingeblendete Bit wird verworfen (indem verhindert wird, dass das Datenregister verschoben und dieses Bit in das Datenregister geschoben wird), und jede Gruppe von 8 Bit, die nach dieser Aussonderung übrig bleibt, wird in einer synchronen Übertragung an das RV übertragen (siehe die vorstehende Erörterung hinsichtlich des Löschens von Daten).
- Während sie Beginn- und Endeflaggen, Leerzeichenmuster und Abbruchmuster feststellt, setzt die Logik 150 die zugehörigen Anzeiger im Serviceregister 154, und während ein beliebiger neuer Anzeiger im Register 154 gesetzt wird, veranlasst die Logik 150 die Übergabe des Registerinhalts an RV. Die Bitanordnung des Registers 154 ist in Fig. 17 gezeigt und wird nachstehend erklärt.
- Bezug nehmend auf Fig. 17, enthält das Register 154 sieben Bit einschließlich fünf 1-Bit-Felder mit den Bezeichnungen IDLE, EOF, ABORT, RES und OCTET sowie ein 2-Bit-Feld mit der Bezeichnung RES. Die 3 RES-Bits sind reserviert, und die anderen Bits stellen, wenn sie aktiv sind, Anzeigefünktionen in Verbindung mit den jeweiligen Bezeichnungen bereit, d. h., IDLE und ABORT zeigen jeweils das Erkennen von Leerzeichen- und Abbruchmustern an, EOF zeigt das Erkennen einer Ende- (Rahmenende-)Flagge an, und OCTET zeigt das Erkennen einer falschen Oktettausrichtung an.
- Wenn der Betrieb in Bezug auf HDLC in die invertierte Form überging, wird ein nicht gezeigtes Invertergatter, das am Eingang der Register 152 und 153 angeordnet ist, angesteuert, um alle empfangenen Bits zu invertieren. Somit sind die Operationen der Logik 150 in Bezug auf diese Signale praktisch identisch mit den Operationen in Bezug auf nichtinvertierte HDLC-Signale.
- Die Logik 150 der Zustandsmaschine hat Zustände, die wie folgt mit Rücksetzzustand und den Zuständen 0 bis 3 bezeichnet werden.
- Der Eintritt in diesen Zustand erfolgt, wenn SIO RESET aktiv ist. Alle internen Statusregister werden zurückgesetzt, und die Ausgabesteuerung und die Statusanzeiger werden deaktiviert. Der nächste Zustand ist der Zustand 0 (nach der Deaktivierung von 510 RESET).
- Warte auf eine Anzeige RDATA VALID von der BTDM. Ergreife eine der folgenden Maßnahmen nach deren Empfang.
- - In der Betriebsart mit freien Kanälen (clear channel mode) schiebe einfach das Bit auf der Leitung RDATA in das Datenregister.
- - Im bitorientierten Protokollmodus schiebe das RDATA-Bit in das Prüfregister, und prüfe den (internen) Transparenzzählstand, um festzustellen, ob das empfangene Bit eine eingeblendete '0' ist. Wenn nicht, schiebe das Bit in das Datenregister, und erhöhe den Zählstand der Empfangsbits. Wenn ein Ausblenden erforderlich ist, verhindere, dass das Datenregister verschöben wird (und damit, dass das soeben empfangene Bit in dieses Register geschoben wird), und erhöhe den Bitzählstand nicht. Der nächste Zustand ist der Zustand 2.
- In der Betriebsart mit freien Kanälen prüfe den internen Zählstand der Bits, die in das Datenregister geschoben wurden. Wenn dieser anzeigt, dass das Register voll ist, aktiviere das Daten-bereit-Signal (RL1_RV_DTA_RDY) an RV (wie vorstehend erwähnt wurde, ist dies eine synchrone Übertragung, und RV muss die Daten innerhalb eines Taktzyklus von 50 ns annehmen oder eine Fehlermeldung übergeben). Im bitorientierten Protokollmodus prüfe das Prüfregister, um festzustellen, ob eine Flagge (01111110) empfangen wurde. Wenn eine Flagge festgestellt wird, lösche den Inhalt des Datenregisters (wobei praktisch die Flagge aus dem Signalstrom fallen gelassen wird, der RV übergeben wird), und aktualisiere die Rahmenvariable bei Bedarf entsprechend dem Folgenden.
- - Der Rahmenzustand 0 bezeichnet den Empfang außerhalb eines gültigen Protokollrahmens ("Suchen nach der Beginnflagge"). Der Rahmenzustand 1, der den möglichen Beginn eines Rahmens anzeigt, wird gesetzt, wenn die Flagge festgestellt wird, während der Rahmenzustand 0 oder 1 ist (aufeinanderfolgende Flaggen können übertragen werden). Nach der Feststellung einer Flagge werden der Inhalt des Datenregisters gelöscht und der Bitzzählstand zurückgesetzt. Der Rahmenzustand 2, der den Beginn eines Rahmens anzeigt, wird gesetzt, wenn ein Byte, das keine Flagge ist, festgestellt wird, während sich der Rahmen im Zustand 1 befindet. In diesem Rahmenzustand wird der Bitzählstand-geprüft, und wenn er anzeigt, dass das Datenregister voll ist, wird der "Bereit"-Anzeiger in Bezug auf RV gesetzt, und wie bei Operationen in der Betriebsart mit freien Kanälen wird das Byte vom Datenregister an RV übertragen.
- Der Rahmenzustand 3, der das Ende eines Rahmens anzeigt, wird gesetzt, wenn eine Flagge festgestellt wird, während sich der Rahmen im Zustand 2 befindet. Der Inhalt des Datenregisters wird gelöscht, und der Anzeiger "Ende des Rahmens" wird in Bezug auf INT aktiviert. In diesem Rahmenzustand wird der Bitzählstand auf Oktettausrichtung geprüft, und wenn er nicht ein Vielfaches von 8 beträgt, wird der Oktettausrichtungsfehler-Anzeiger in Bezug auf INT gesetzt.
- Wenn keine Flagge festgestellt wird, prüfe das Prüfregister auf ein Leerzeichen- oder Abbruchmuster (7 oder mehr aufeinanderfolgende Einsen). Wenn ein solches Muster festgestellt wird, setze den entsprechenden Leerlauf- oder Abbruchanzeiger in Bezug auf INT, lösche den Inhalt des Datenregisters und setze den Bitzählstand zurück. Wenn RDATA_VALID inaktiv ist, ist der nächste Zustand der Zustand 1, andernfalls ist der nächste Zustand der Zustand 3.
- Warte, bis RDATA_VALID inaktiv wird. Der nächste Zustand ist der Zustand 1.
- RV empfängt Daten und Statusanzeigen von der RL1, führt CRC- (zyklische Blockprüfungs-)Berechnungen durch, nimmt eine Prüfung auf Überlaufbedingungen vor und leitet die Daten mit zusätzlichen Statusanzeigen an RFM weiter. Wenn der Anzeiger "Ende des Rahmens" von der RL1 empfangen wird, gibt RV das Ergebnis der CRC-Prüfung zusammen mit dem Status von RL1 und RV an RFM weiter. Auf der Grundlage der Bits AR0 der Adressenerkennungsoption im CCR (siehe die vorstehende Beschreibung des RSM) führt RV auch eine Adressenerkennung an empfangenen Datenrahmen durch, und basierend auf dieser Erkennung kann es selektiv Rahmen verwerfen. Die zulässigen Optionen sind: empfange alle Rahmen, erkenne/übertrage nur Rahmen mit einem vorher festgelegten Zieladressbyte oder einer vorher festgelegten Rundsende-Adresse, erkenne nur Rahmen mit einer vorher festgelegten 2-Byte-Zieladresse oder Rundsende- Adresse und erkenne nur Rahmen mit einer Rundsende-Adresse.
- Bezug nehmend auf Fig. 19, sind die Hauptschaltungselemente in RV die Register 170 und 171, die CRC-Berechnungsschaltung 172 und die Zustandsmaschinenlogik 173.
- Die Register 170 und 171 bilden eine 2 Byte tiefe Warteschlange zur Pipeline-Speicherung von Übertragungsdaten und des Status, die/der von RL1 empfangen wird. Jedes Register bietet Speicherkapazität für ein Datenbyte und die zugehörigen Statusanzeigen. Jedes von RL1 übergebene Datenbyte RL1_RV_DATA wird im Register 170 (DATA_STATUS_A) zusammen mit dem zugehörigen Rahmenstatus RL1_RV_STATUS vom RL1-Anzeigeregister 154 (der den Rahmenende-, Abbruch-, Leerlauf- und Oktettausrichtungsstatus anzeigt) zwischengespeichert und anschließend parallel in das Register 171 (DATA_STATUS_B) geschoben.
- Folglich untetstützt RV die erkennbara Burstgeschwindigkeit, die an der BTDM langfristig möglich ist. Da RL1 bis zu einem Datenbyte in einem Kanalzeitschlitz empfangen kann, ist es RL1 möglich, beim aufeinanderfolgenden Erscheinen des entsprechenden Zeitschlitzes 2 Datenbyte in Bezug auf einen Kanal zu empfangen, und daher ist die Warteschlangenkapazität von 2 Byte in RV notwendig.
- Die RC-Berechnungsschaltung 172 berechnet die CRC-Prüffunktion kumulativ in Bezug auf Daten, die diese Funktion erforderlich machen, und leitet das Ergebnis nach dem Empfang einer Erkennungsanzeige einer gültigen Rahmenendeflagge an RFM weiter.
- RV arbeitet im synchronen Zeitmultiplexbetrieb; sein Status in Bezug auf jeden aktiven Kanal wird bei Beendigung des entsprechenden Kanalschlitzes über RSM im TSR gesichert und beim über RSM wieder geladen, wenn dieser Schlitz erneut erscheint. Die Verarbeitung in Bezug auf jeden Kanal beginnt, wenn eine Startanzeige, RSM_RCV_START, von RSM aktiviert wird, und endet, wenn eine Schlitzende-Anzeige, RSM_RCV_EOS, von RSM übergeben wird. Während sein Status in Bezug auf einen aktiven Kanal gesichert und in Bezug auf einen anderen aktiven Kanal wieder geladen wird, wird RV (Logik 173) in einen Haltezustand versetzt.
- Nach dem Empfang der Startanzeige nimmt RV die Verarbeitung in dem Zustand auf, der gehalten wurde, als die Verarbeitung in Bezug auf denselben Kanalschlitz zuletzt beendet wurde. Nach dem Empfang der Schlitzende-Anzeige vom RSM schaltet die RV- Zustandslogik 173 in einen stabilen Endzustand, sofern sie sich nicht in einem solchen befindet, bevor sie anhält (z. B. wenn sie sich in einem Zuständ befindet, in dem Daten von RL1 empfangen werden müssen, werden die Daten im Register 170 zwischengespeichert, bevor der Haltezustand angenommen wird). Nachdem sie diesen Zustand erreicht hat, aktiviert die Logik 173 die DONE-Anzeige des Segments, RV_DONE, an RSM.
- Daten und Statusanzeigen werden von RL1 zusammen mit entsprechenden BEREIT-Anzeigen, RL1_RV_DATA_RDY und RL1_RV_STATUS_RDY, übergeben, wobei Letztere die Logik 173 so konditioniert, dass sie die Zwischenspeicherung der entsprechenden Daten und des entsprechenden Status steuert. Wie zuvor erwähnt wurde, werden Übertragungen von RL1 an RV synchron durchgeführt und machen es erforderlich, dass RV die Daten und den Status innerhalb eines Maschinenzyklus von 50 ns ihrer Übergabe zwischenspeichert. Die Übertragungen von RV an RFM sind asynchrone Anforderungs-Bestätigungs-Operationen, wobei die RV-Zustandslogik 173 RV_RFM_REQ übergibt und RFM RFM_RV_ACK zurücksendet.
- Der Sicherungs- und Wiederladezustand (swap Status) von RV besteht aus zwei Zeitsicherungs- und -wiederlade-Statuswörtern, RV_TS01 und RV_TS02, die jeweils in den Fig. 20 und 21 gezeigt sind. RV_TSO1 stellt den kombinierten Inhalt der Register 170 und 171 dar, und RV_TS02 stellt den Status der Prüfschaltung 172 dar. Beim erneuten Laden werden entsprechende Sicherungs- und Wiederladezustandsinformationen (swap status information) vom RSM aus dem TSR abgerufen und über RSM DATA den Registern aller Hauptschaltungseinheiten im RV übergeben. Bezug nehmend auf Fig. 20, haben die Felder von RV_TS01 die folgenden Namen und funktionalen Bedeutungen.
- RVD0 - RV-Datenregister 0 (8 Bit). Entspricht dem Datenbyteteil des Registers 170 (Daten A) und stellt das zuletzt empfangene Datenbyte dar. Während sich die Daten in diesem Register befinden, werden sie einer CRC- Berechnungsverarbeitung unterzogen.
- RVDOP - RV Data 0 Parity (1 Bit). Ungerade Parität für das Byte im RVD0.
- RVD1 - RV-Datenregister 1 (8 Bit). Entspricht dem Datenbyteteil des Registers 171 (Daten B) und stellt die Daten dar, die bei Bedarf weiter vetarbeitet (z. B. zur Adressenerkennung) und an RFM übertragen werden sollen. Wenn sie bereit sind, werden sie aus RVD0 in dieses Register übertragen.
- RVDIP - Ungerade Parität (1 Bit) für Daten im RV- Datenregister 1.
- RVARS - RV-Adressenerkennungszustand (2 Bit) in Bezug auf Datenrahmen, die der Adressenerkennungsoption unterliegen. Zeigt 1 von 4 Zuständen an: 1. Es wird auf Daten gewartet, an denen eine Adressenerkennungsoperation durchgeführt werden soll. 2. Die Adresse wurde erkannt oder die Erkennung ist gesperrt (alle Daten im Rahmen werden an RFM weitergeleitet, und beim Empfang eines Anzeigers "Ende des Rahmens" wird eine Unterbrechung erzeugt). 3. oder 4 Es wurde keine Adresse erkannt; dieser Rahmen wird ignoriert.
- RVDF - RV-Datenregister voll (2 Bit). Zeigt 1 von 4 Zuständen an: 1. RVD0 und RVD1 sind beide leer. 2. Nur RVD1 enthält gültige Daten. 3. Nur RVD0 enthält gültige Daten. 4. Sowohl RVD0 als auch RVD1 enthalten gültige Daten.
- RVLBF - Letztes Byte des Rahmenanzeigers (2 Bit). Zeigt eines von Folgendem an: 1. Weder RVD0 noch RVD1 enthält 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. Sowohl RVD0 als auch RVD1 enthaltendas letzte Byte des aktuellen Rahmens (d. h., die Register 170 und 171 enthalten beide Anzeiger "Ende des Rahmens").
- RVI - "RV-Initialisiert"-Anzeige (1 Bit). Wird vom IOP/SIO gesetzt, um die Initialisierung der Zustandsicherungs- und -wiederladevariablen für RV in Bezug auf den aktuellen Kanalschlitz anzuzeigen und von RV zurückgesetzt, um zu bestätigen, dass es dies geprüft hat und in einen normalen Verarbeitungszustand in Bezug auf den Kanal überging.
- RVLAR - RV - Letzte Adressenerkennungsoption (2 Bit) Der letzte Wert im ARO-Feld des CCR, das zu diesem Kanal gehört. Bei jedem Start des RSM vergleicht die RV-Logik dieses Feld mit der aktuellen ARO, um festzustellen, ob der ARO-Wert geändert wurde (vom IOP/SIO). Wenn eine Änderung festgestellt wird, wird der neue Wert von ARO in dieses Feld übertragen. Nach der Feststellung eines nächsten Rahmenanfangs beginnt RV mit der Adressenerkennungsverarbeitung entsprechend dem neuen ARO-Wert in diesem Feld.
- Bezug nehmend auf Fig. 21, haben die Felder in RV_TS02 die folgenden Namen und funktionalen Bedeutungen.
- RVCRC - RV-CRC-Rest (16 Bit). Beim Empfang des Anzeigers "Ende des Rahmens" von RL1 wird dieses Feld geprüft, um festzustellen, ob der Rahmen korrekt empfangen wurde, und anschließend auf einen ganz aus Einsen bestehenden Wert zurückgesetzt.
- RVS0 - RV-Statusregister 0 (7 Bit). Der von RL1 zuletzt empfangene Status; 3 Bits werden nicht benutzt, die anderen zeigen den Rahmenstatus an (EOF, Leerlauf (idle) festgestellt, Abbruch festgestellt, Oktettausrichtungsstatus).
- RVS1 - RV-Statusregister 1 (8 Bit). Der nächste an RFM weiterzureichende Status. Bei Bereitschaft wird der Status von RVS0 in dieses Register geschoben, wobei 4 Bits in diesem Register den Rahmenzustand anzeigen, ein weiteres Bit den CRC-Prüfstatus anzeigt, ein weiteres Bit den Pufferüberlaufstatus in der RV-Pipeline von RL1 anzeigt und 2 Bits nicht benutzt werden.
- RVIO - RV-interne Überlaufanzeige (1 Bit). Zeigt eine interne Überlaufbedingung in Bezug auf die Register im RV an. Wenn dieses Bit gesetzt ist, werden keine Daten an RFM gesendet.
- Die Logik 173 besteht aus 2 Zustandsmaschinen und zusätzlichen kombinatorischen Logikschaltungen, um eine Verbindung mit RL1 herzustellen und RL1-Daten und den RL1-Status unter dem zuvor beschriebenen fest vorgegebenen Synchrontakt in das Register 170 zu leiten. Die kombinatorische Logik empfängt einfach Daten und den Status von RL1 zusammen mit entsprechenden Bereit- Anzeigen (RL1_DATA_RDY und RL1_STATUS_RDY), stellt anhand einer Prüfung fest, ob das Register voll oder leer ist, und schließt die Übertragung ab, wenn das Register nicht als voll angegeben wird. Wenn die Übertragung abgeschlossen ist, wird ein Zwischenspeicher gesetzt, um dies anzuzeigen (dieser Zwischenspeicher wird durch eine Operation der Zustandsmaschine MOVE zurückgesetzt, wenn der Inhalt des Registers 170 in das Register 171 übertragen wird. Wenn das Register 170 beim Empfang einer Anzeige "Daten bereit" oder "Status bereit" voll ist, werden die Daten oder der Status verworfen, und ein Bit im Register 170 wird gesetzt, um einen Überlaufstatus anzuzeigen.
- Die beiden Zustandsmaschinen mit der Bezeichnung MOVE und PROCESS steuern alle anderen RV-Funktionen. MOVE steuert Übertragungen von Daten und des Status vom "A"-Register 170 (DATA_STATUS_A) an das "B"-Register 171 (DATA_STATUS_B), und PROCESS steuert die Verarbeitung der Daten (CRC-Prüfung, Adressenerkennung usw.) und die Anbindung an RFM. Diese Zustandsmaschinen werden als Nächstes beschrieben.
- - In diesem Zustand kann RSM den Status des Zustands und Zustandsdaten problemlos sichern und wieder laden, vorausgesetzt, der Anzeiger RV_DONE ist aktiv. Nachdem der Status des neuen Zustands und neue Zustandsdaten in Bezug auf einen beliebigen aktiven Kanal geladen wurden, aktiviert RSM_RSM_RCV_START, und MOVE schaltet in den Zustand 1.
- - Daten und der Status werden bedingt vom Register A an das Register B übertragen, und Daten werden bedingt vom Register A an die CRC-Berechnungsschaltung 172 übertragen. Wenn eine Schlitzendeanzeige vom RSM empfangen wird (RSM_RCV_EOS), kehrt MOVE in den Zustand 0 zurück, nachdem sie gleichzeitig auftretende RL1-Daten-bereit- oder Status-bereit-Funktionen in Bezug auf das Register A ausgeführt hat.
- - Wenn sie nicht in einen Haltezustand versetzt wurde und die Daten/der Status im Register A vorhanden sind, hängt die nächste Maßnahme vom Status des Registers B und der CRC-Berechnung ab.
- - Wenn das Register B nur den Rahmenendestatus enthält, durchläuft MOVE eine Schleife, bis das Register B von der Zustandsmaschine PROCESS entleert wird.
- - Wenn das Register B sowohl den Rahmenendestatus als auch das letzte Datenbyte eines Rahmens enthält, prüft MOVE den Rest von CRC auf Gültigkeit (muss '1DOF'X hex sein). Wenn der Rest ungültig ist, setzt MOVE das Bit "CRC ungültig" im Register B (siehe Zustand 2) und durchläuft in diesem Zustand eine Schleife, bis das Register B von der Zustandsmaschine PROCESS entleert wird.
- - Wenn das Register B nur gültige Daten und das Register A nur den Rahmenendestatus enthält, wird der Rahmenstatus vom Register A an das Register B übertragen, die Daten im Register B werden als das letzte Byte eines Rahmens angegeben, und das Register A wird für den Empfang von Daten und des Status von RL1 zur Verfügung gestellt.
- - Wenn das Register B weder gültige Daten noch den Rahmenendestatus und das Register A beides hat, wird beides vom Register A an das Register B übertragen. In diesem Fall werden die Daten gleichzeitig in die CRC- Berechnungsschaltung eingegeben, das Register A wird für den Empfang von weiteren Daten und des Status zur Verfügung gestellt, das Register B wird als das Register gekennzeichnet, das das letzte Byte eines Rahmens hält, und MOVE schaltet in den Zustand 2.
- Wenn das Register B weder Daten noch den Rahmenendestatus und das Register A nur den Rahmenendestatus hat, wird der Status an das Register B übertragen. Der Rest von CRC (beachte die Zustände 2 und 3 unten) wird auf Gültigkeit geprüft. Wenn der Vergleich des CRC-Restes fehlschlägt, wird das Bit "CRC ungültig" im Register B gesetzt. Wenn das Register A nur gültige Daten hat, werden die Daten gleichzeitig an das Register B und die CRC- Berechnungsschaltung weitergereicht, und MOVE schaltet in den Zustand 3.
- - Die CRC-Berechnung nimmt 1 Maschinenzyklus zur Berechnung eines Bits in Anspruch, und da die Datenübertragung zu jeweils 8 Bit erfolgt, dauert die ganze Berechnung 8 Maschinenzyklen. MOVE verringert einen internen Zählstand von 8 auf 0 in aufeinanderfolgenden Maschinenzyklen und kehrt dann in den Zustand 1 zurück, in dem sie den Rest von CRC als den letzten CRC-Rest des Rahmens auf Gültigkeit prüft (beachte, wie der Eintritt in den Zustand oben erfolgt).
- - Maschinenzyklen werden wie vorstehend von 8 auf 0 abwärts gezählt, und MOVE kehrt in den Zustand 1 zurück.
- Ähnlich dem Zustand 0 bei MOVE (warte auf RSM RCV START). Beim Empfang einer Startanzeige schaltet PROCESS in den Zustand 3.
- Wenn sie durch RSM_RCV_EOS angehalten wird, kehrt sie in den Zustand 0 zurück. Wenn sie nicht angehalten wird und ARO alle Rahmen, die empfangen werden können, anzeigt und der Erkennungsstatus (RVARS-Feld in RV_TS01) anzeigt, dass eine ungültige Adresse erkannt wurde, werden die Daten im Register B (Register 171) verworfen, bis die Rahmenendeanzeige das Register B durchlaufen hat. Man beachte, dass das Szenario für diese Situation (alle Rahmen können empfangen werden, und eine ungültige Adresse wird erkannt) so aussieht, dass sich die ARO seit dem Start des aktuellen Rahmens geändert hat und der aktuelle Rahmen dadurch ungültig wird.
- - Wenn das Register B entweder Daten oder einen Rahmenendestatus hat und der Erkennungsstatus anzeigt, dass eine gültige Adresse erkannt wurde, schaltet PROCESS in den Zustand 2 (um dem RFM Daten oder den Rahmenendestatus zu übergeben).
- - Wenn ARO anzeigt, dass Adressen erkannt werden können und der Erkennungsstatus anzeigt, dass eine ungültige Adresse erkannt wurde, werden die Daten im Register B bis zum Start eines neuen Rahmens verworfen. Wenn das Register B entweder Daten oder den Rahmenendestatus enthält und eine gültige Adresse erkannt wurde, schaltet PROCESS in den Zustand 2 (um die Daten oder den Rahmenendestatus an RFM weiterzuleiten). Wenn der Rahmenzustand so ist, dass Adressen zur Zeit nicht erkannt werden müssen, werden die Daten in den Registern A und B mit dem Adressmuster verglichen, das im LSA-Teil des HDLC-Registers im RSM gehalten wird. Wenn das Muster mit den Daten übereinstimmt, wird der Erkennungsstatus so gesetzt, dass er anzeigt, dass eine gültige Adresse erkannt wurde, die Adressenerkennung wird für diesen Rahmen beendet, und PROCESS schaltet in den Zustand 2, um die Daten weiterzuleiten. Wenn die verglichenen Adressen nicht übereinstimmen, wird der Status so gesetzt, dass er anzeigt, dass eine ungültige Adresse erkannt wurde, und PROCESS bleibt im Zustand 1, um zu veranlassen, dass alle folgenden Daten verworfen werden.
- - EV_REM_REQ wird an RFM aktiviert. Nach dem Empfang einer Bestätigung, RFM_RV_ACK, wird eine Anzeige gesetzt, dass das Register B zur Übertragung von Daten oder des Zustands (in Abhängigkeit davon, welcher Teil von B voll war) zur Verfügung steht, und PROCESS kehrt in den Zustand 1 zurück. Man beachte, dass PROCESS bei der Rückkehr in den Zustand 1, wenn der Rahmenendestatus übertragen wird, lediglich auf eine Schlitzendeanzeige vom RSM wartet und dann in den Zustand 0 zurückkehrt. Wenn nur Daten übertragen werden, wartet PROCESS bei der Rückkehr in den Zustand 1 auf weitere Daten zur Weiterleitung und kehrt dann in diesen Zustand zurück und so weiter.
- Wenn der vom RSM geladene Status einen neu initialisierten Kanal anzeigt (RVI-Bit in RV_TS01 ist gesetzt), setzt PROCESS die neu initialisierte Anzeige zurück und vergleicht die Bits der neuesten Adressenerkennungsoption (ARO) (im RSM_CCR) mit dem vorherigen ARO-Zustand (RVLAR- Feld in RV_TS01), um festzustellen, ob sich der ARO- Zustand geändert hat. Wenn ja, wird die neueste Option in die Statuspositionen des RVLAR-Feldes des nächsten gesicherten RV_TS01 kopiert. Der nächste Zustand ist der Zustand 1.
- - Wenn der geladene Status keinen neu initialisierten Kanal anzeigt, werden die letzte ARO und die aktuelle ARO dennoch verglichen, und wenn sie nicht übereinstimmen, wird die aktuelle ARO in die letzte Position des ARO- Feldes geschrieben. Der nächste Zustand ist der Zustand 1.
- - Wenn sich die ARO von "Adressenerkennung" in "empfange alle Rahmen" geändert hat und der Erkennungsstatus derzeit keine Erkennung einer ungültigen Adresse anzeigt, wird der Erkennungsstatus so gesetzt, dass er "gültige Adresse erkannt" anzeigt, so dass der Rest des Rahmens wie gewöhnlich empfangen wird. Der nächste Zustand ist der Zustand 1.
- Die TL1 bildet die Schnittstelle zwischen dem Sendevalidierungselement TV und der BTDM, um Sendedaten vom TV an das Netzwerk zu übertragen. Man erinnere sich, dass TV über das Sende-FIFO-Managerelement TFM Sendedaten vom FIFOR (FIFO- RAM) empfängt, und diese Daten werden über eine asynchrone Maßnahme des DMAC als Antwort auf Anforderungen, die TFM dem DMARQ (DMA-Anforderungselement) übergeben hat, in das FIFOR geladen.
- TL1 führt Funktionen aus, die das Gegenteil der in RL1 ausgeführten Funktionen sind, unter anderem:
- - Parallel-Serien-Umsetzung von Datenbytes
- - Erzeugung von Flaggen, Abbruch- und Leerzeichen
- - Transparenz - Einblenden von Nullbits
- - Erkennung von Unterläufen
- - gemeinsame Benutzung von Flaggen
- - Dateninversion
- - Alternative Registerbenutzung für Ausgabedaten
- TL1 empfängt Datenbytes von TV und überträgt Datenbits als Antwort auf Bitanforderungen TDATA_REQ, die von den L1- Schaltungen an der BTDM übergeben werden, seriell an die BTDM. In der TL1 werden die Daten durch ein Paar Byteregister TLD1 und TLD2 (die nachstehend in der Beschreibung der TL1-Logik erörtert werden) geleitet, so dass TL1 während einer beliebigen Schlitzdauer bis zu 2 Datenbytes in Bezug auf den Kanal, der dann bedient wird, speichern kann und dadurch in die Lage versetzt wird, jedwede Übertragungsgeschwindigkeit von L1- Anforderungen innerhalb der Geschwindigkeitsgrenzen der BTDM abzuwickeln, wodurch bis zu 8 Anforderungen innerhalb eines Schlitzes gebündelt übertragen werden können, dabei aber berücksichtigt wird, dass während eines Schlitzes gegebenenfalls Bits von 2 aufeinanderfolgenden Bytes gesendet werden müssen (da die Übertragung im Allgemeinen nicht auf ein Oktett ausgerichtet ist).
- Wenn trotzdem ein Unterlauf entsteht, erzeugt TL1 eine entsprechende Unterlaufanzeige für die Unterbrechungsverarbeitung, woraufhin ein Abbruchmuster übertragen und im Anschluss daran ein Leerzeichenfüllmuster gesendet wird, und nachdem das Abbruchmuster gesendet worden ist, wird eine entsprechende Anzeige dieses Ereignisses erzeugt. Außerdem ist TL1 so ausgelegt, dass sie schnell auf Änderungen reagiert, die in den Abbruchsteuerbits (AR und AIM) im CCR vorgenommen werden, und mit der Übertragung eines Abbruchmusters beginnt. Auf diese Weise kann TL1 jederzeit vom lOP/Host, der über SIO und TSR agiert, wirksam gesteuert werden, um eine Übertragung abzubrechen, und dadurch kann beispielsweise die unnötige Verwendung von Netzwerkkanälen zur Fortsetzung von Übertragungen, die als fehlerhaft bekannt sind, verringert werden.
- In Bezug auf Kanäle, die in HDLC-Protokollen kommunizieren, stellt TL1 Übertragungen von 5 aufeinanderfolgenden Einsen fest, die nicht begrenzende Daten darstellen (keine Flaggen, keine Leerzeichen und keine Abbruchzeichen), und fügt (blendet) ein 0-Bit ein, um den Empfang solcher Daten als Begrenzung zu verhindern. Außerdem unterscheidet TL1 Protokollstart- und Protokollende-Nachrichtenrahmen und fügt in der jeweiligen Übertragungsphase Beginn- und Endeflaggen ein. Wenn das Protokoll eine Bitinversion erforderlich macht, kümmert sich TL1 darum.
- TL1 arbeitet im synchronen Zeitmultlplexbetrieb, wodurch ihr Zustand in Bezug auf eineh beliebigen aktiven Kanal während des Erscheinens des zugehörigen Zeitschlitzes an der BTDM geladen. (vom TSR über RSM) und, wenn der Schlitz endet, gesichert wird (im TSR über RSM). Ihr Zeitsicherungs- und -wiederladezustand besteht aus einem einzigen Wort, TL1_TS01, das nachstehend in Bezug auf Fig. 24 beschrieben wird. TL1 enthält ein 9-Bit- Statusanzeigeregister, das nachstehend mit Bezug auf Fig. 23 erörtert wird und dessen Inhalt in Zeitsicherungs- und - wiederladeoperationen als Teil von T11_TS01 gesichert wird.
- TL1-Statusanzeigen, die in Fig. 23 gezeigt sind, bestehen aus 8 benutzten Anzeigebits (Bits 0 bis 6 und 8) und 1 nicht benutzten Bit (Bit 7).
- Das Bit "Abbruch wird bedient" ("servicing abort") (Bit 0) zeigt an, dass ein Abbruchmuster übertragen wird (oder ein invertiertes Abbruchmuster, wenn das invertierte HDLC in Kraft ist). Das Bit wird von der Hardware gesetzt und während Statussicherungs- und -wiederladeoperationen gesichert, um einem Mechanismus bereitzustellen, mittels dem man sich ein Abbruchmuster, das gerade übertragen wird, über alle BTDM- Rahmen hinweg merken kann. Das Ende des Rahmenbits (Bit 1) wird gesetzt, wenn ein von TV angefordertes Byte von Letzterem als das letzte Datenbyte eines Rahmens angegeben wird. Wenn dieses Bit eingeschaltet ist, sendet TL1 automatisch eine Endeflagge nach dem letzten Datenbyte, und TL1 setzt dieses Bit zurück, nachdem diese Flagge gesendet worden ist. Nachdem eine Endeflagge gesendet wurde, wird nach Bedarf ein aus einer Reihe von Flaggen oder Leerzeichen bestehendes Füllmuster übertragen. Ein Füllmuster ist notwendig, wenn TV eine bestimmte Endeanzeige, TV_ENDFRAME oder TV_ENDCHAIN, sendet. Die Form des Musters wird von einem Bit im CCR bestimmt, vom IFS-Bit (IFS = Füllmusterauswahl zwischen Rahmen), wenn ENDFRAME angezeigt wird, oder vom ICS-Bit (ICS = Füllmusterauswahl zwischen Ketten), wenn ENDCHAIN angezeigt wird.
- Das Datenregisterreihenfolgebit ("data reg order bit") (Bit 2) legt in Verbindung mit den Zuständen der Anzeigebits "Datenregister 1 leer" ("data reg1 empty") und "Datenregister 2 leer" ("data reg2 empty") (Bits 3 und 4) die Reihenfolge der Datenübertragung in Bezug auf die vorstehend erwähnten Datenregister TLD1 und TLD2 fest. Eine Datenabrufmaßnahme in Bezug auf TV wird eingeleitet, wenn entweder das Bit 3 oder das Bit 4 eingeschaltet ist, das anzeigt, dass das entsprechende Register leer ist. Wenn diese Bits beide ausgeschaltet sind, werden die Daten den Registern zur Übertragung an BTDM in der Reihenfolge entnommen, die vom Reihenfolgebit angezeigt wird. Wenn beide Bits eingeschaltet sind, bestimmt das Reihenfolgebit die Abfolge der Datenladeoperationen in die Register.
- Das Unterlauf-Anzeigebit (Bit 5) dient zur Erinnerung, dass ein Datenunterlauf stattgefunden hat. Wenn diese Bedingung eintritt, wird auch das Bit 0 (Abbruchdienst) gesetzt. Wenn TV keine neuen Rahmendaten zum Versenden hat, nachdem das letzte Byte eines Rahmens und die Endeflagge gesendet worden sind, wird der Unterlaufanzeiger gesetzt, der von TL1 die Erzeugung eines Füllmusters verlangt. Der Ein-/Aus-Zustand des Bits für die Füllmusterauswahl zwischen Rahmen (IFS in RSM_OCR) legt die Form des Musters fest; Leerzeichen im Ein-Zustand, Flaggen im Aus-Zustand.
- Das Bit "Abbruch ausgelöst" ("abort raised") (Bit 6) dient zur Anzeige, dass in Bezug auf INT ein Abbruch angezeigt wurde. Dieses Bit wird zurückgesetzt, wenn die zugehörige Anforderung im TFM ausgeführt und von INT zurückgesetzt wurde.
- Das Bit "TFM zurückgesetzt" ("TFM reset") (Bit 8) dient zur Anzeige, dass TFM zurückgesetzt (deaktiviert, neu initialisiert und erneut aktiviert) wurde. Mit diesem Bit wird die Abbruchbedingung zurückgesetzt.
- Die TL1-Logik ist schematisch in Fig. 22 gezeigt. Einzelheiten werden nachstehend beschrieben. Die Logik enthält die Zustandsmaschinenlogik 176, die aus 3 diskreten Zustandsmaschineneinheiten 176A, 176B und 176C besteht, die Datenregister TLD1 und TLD2, die bei 177 beziehungsweise 178 angegeben sind, den Abbruch-/Leerzeichen-/Flaggengenerator 179, die Multiplexerschaltung 180, das Statusanzeigeregister 181 (TLSI), das dazu dient, die in Fig. 23 gezeigten Statusbitanzeigen zu halten, ein Bitzeigerregister 182, das auch als TDBP (für Transmit Data Bit Pointer = Sendedatenbitzeiger) bezeichnet wird, ein Quellenauswahlregister 183, das auch als TLDSS (für Transmit Layer 1 Data Source Selector = Datenquellenselektor der Sendeebene 1) bezeichnet wird, und einen Transparenzzähler 184, der auch als TLTC (für Transmit Layer 1 Transparency Counter = Transparenzzähler der Sendeebene 1) bezeichnet wird.
- Die Züstandsmaschineneinheit 176A (mit der Bezeichnung TL1- Zustandsmaschine) steuert den Empfang von Sendedatenbytes von TV und ihren Ladevorgang in die Datenregister 177 und 178 entsprechend den Reihenfolge- und Leer-Anzeigen im Statusanzeigeregister 181. Während die Daten in die Register 177 und 178 übertragen werden, stellt die Einheit 176A die Reihenfolge- und Leer-Anzeigen im Register 181 entsprechend an. Einzelheiten der Zustände dieser Einheit werden nachstehend im Absatz 10.3.1 beschrieben.
- Die Zustandsmaschineneinheit 176B (mit der Bezeichnung Rücksetz-Zustandsmaschine) überwacht den Zustand des Sende- FIFO-Managers TFM, um sicherzUstellen, dass Datenübertragungen korrekt auf die initialisierten Zustände des TFM abgestimmt sind. Durch Beobachtung des TDE-(Sendedatenfreigabe-)Bits im Eingangssignal RSM_CCR vom RSM und des Ausgangssignals TL1_DONE von der Einheit 176A stellt die Einheit 176B fest, wenn TFM durch externe Maßnahmen des IOP über das SIO deaktiviert, neu initialisiert und erneut aktiviert wurde. Diese externen Maßnahmen sind notwendig, während jede
- Datenblockübertragungseinheit an das Netzwerk übertragen wird, um Operationen in Bezug auf jeden nachfolgenden Datenblock mit Kettungsfunktionen zu koordinieren, die vom DMAC in Bezug auf seine Übertragungsbefehle ausgeführt werden (siehe die folgende Beschreibung des DMAC). Einzelheiten der Zustände dieser Zustandsmaschineneinheit werden im Folgenden im Absatz 10.3.2 beschrieben.
- Die Zustandsmaschineneinheit 176C (die auch als L1- Übertragungszustandsmaschine bezeichnet wird) überwacht Übertragungen von Sendedaten von den Registern 177 und 178 an die BTDM-Schnittstelle sowie zu diesen Übertragungen gehörende Operationen, unter anderem die Parallel-Serien-Umsetzurig, das Einfügen von Null-Bits und das Einfügen von Sonderzeichen (Flaggen, Leer- und Abbruchzeichen usw.). Einzelheiten der Zustände und der Operationen dieser Einheit werden nachstehend im Abschnitt 10.3.3 beschrieben. Bei der Ausführung ihrer Funktionen verwendet und steuert diese Einheit den Multiplexer 180 und die Zusatzlogikeinheiten, die bei 179, 180a und 182 bis 184 angegeben sind. Der Multiplexer 180 und die Logikeinheiten 179, 180a und 182 bis 184 sind im Abschnitt 10.3.3 dargelegt, in dem die Zustände dieser Einheiten beschrieben werden.
- Die TL1-ZUSTANDSMASCHINE 176A empfängt Übertragungssendedaten jeweils byteweise vom TV und lädt sie in Abhängigkeit davon, welches Register leer ist, abwechselnd in die Register 181 und 182 (wenn beide leer sind, wird das Register geladen, das am längsten leer war). Leerzustände dieser Register werden anhand der Anzeigen "reg order" (Registerreihenfolge) und "reg empty" (Register leer) (Fig. 23) im Statusanzeigeregister 181 festgestellt, und diese Anzeigen werden geändert, während jedes Register geladen wird, um anzuzeigen, dass das jeweilige Register nicht leer ist, und um auf das andere Register als dem nächsten Ziel der Ladeoperation zu zeigen. Die Leer-Anzeiger werden von der L1-Übertragungszustandsmaschineneinheit 176C eingeschaltet (um den Status "leer" anzuzeigen), während das letzte Datenbit in jedem Datenregister an die BTDM- Schnittstelle gesendet wird (siehe Abschnitt 10.3.3 unten). Wenn eine externe Rücksetzanzeige, SIO RESET (in dieser Figur nicht gezeigt), empfangen wird, löscht diese Zustandsmaschine den Inhalt des Statusanzeigeregisters und nimmt den Zustand 0 an. Als Nächstes folgt eine Zusammenfassung der Zustände dieser Zustandsmaschine.
- - Nach dem Empfang eines Startsignals vom RSM, RSM_XMIT_START, deaktiviert diese Einheit TL1_DONE und geht in den Zustand 1 über. Man beachte, dass die Aktivierung von TL1_DONE gleichzeitige DONE-Aktivierungen durch diese Einheit 176A und die L1-Übertragungseinheit 176C erforderlich mächt, da TL1_DONE dem RSM anzeigt, dass TL1 als Ganzes für eine Zustand- und Zeitsicherungs- und - wiederlademaßnahme (state time swapping action) bereit ist. Eine solche gleichzeitige Aktivierung ist in der Figur bei 176a durch einen Punkt dargestellt, der für eine logische Punkt-UND-Verbindung steht.
- - Wenn eine Haltanzeige (RSM_XMIT_EOS) oder eine Abbruchanzeige (siehe Zustand 5) bedient wird, geht die Einheit in den Zustand 0 über.
- - Wenn eine Anzeige "Ende des Rahmens" (TV_TL1_ENDFRAME) von TV bedient wird, wartet die Einheit, bis die Flagge gesendet wurde (von der L1-Übertragungseinheit 176C, was durch das Löschen des Anzeigebits "end_of_frame" im Register 181 angezeigt wird), und bleibt im Zustand 1.
- - Wenn keine der vorstehenden Bedingungen erfüllt ist und ein oder beide Datenregister 177, 178 leer sind und die Daten für den Ladevorgang zur Verfügung stehen (TV_DATA_RDY ist aktiviert), geht die Einheit in den Zustand 2 über. In Verbindung mit diesem Vorgang stellt die Einheit zuerst fest, ob die Daten von TV von einer Anzeige "Ende des Rahmens" begleitet werden, und wenn ja, setzt die Einheit den Rahmenendeanzeiger "end_of_frame" im Register 181 entsprechend, bevor sie in den Zustand 2 übergeht.
- - In allen anderen Fällen bleibt die Einheit im Zustand 1.
- Die Einheit prüft, ob im Register 181 eine Statusanzeige "abort_raised" ("Abbruch aktiviert") vorhanden ist. Wenn keine Anzeige "Abbruch aktiviert" vorhanden ist, speichert die Einheit die Daten im entsprechenden leeren Datenregister 177 oder 178 zwischen, setzt das Leer- Anzeigebit in Bezug auf dieses Register zurück, aktiviert die Bestätigung des Datenempfangs an TV (indem es TL1_TV_DATA_ACK auf logisch "1" setzt) und geht in den Zustand 0 über. Indem die Einheit prüft, ob ein Abbruch aktiviert wurde, bevor sie die Datenübertragung durchführt, wird verhindert, dass sie von TV übergebene Daten annimmt, bevor DMAC und TFM entsprechend neu initialisiert wurden.
- - Dieser Zustand wird nur angenommen, wenn ein schwerwiegender Hardwarefehler festgestellt wird. DONE wird aktiviert, und die Fehlerzustandsanzeige TL1_INT_ERSTATE wird an INT aktiviert. Die Einheit versucht ständig, den Fehler zu beheben, indem sie aus diesem Zustand in den Zustand 0 schaltet.
- Diese Einheit überwacht das TDE-(Sende-DMA-Freigabe-)Bit im RSM CCR und die TL1-DONE-Anzeige, um festzustellen, wenn der Sende-FIFO-Manager TFM durch externe Maßnahmen (SIO/IOP) deaktiviert, neu initialisiert und erneut aktiviert wurde. Dieser Mechanismus ist für die Wiederaufnahme des Betriebs notwendig, nachdem aufgrund eines Unterlaufs, der Feststellung eines Paritätsfehlers oder einer bestimmten externen Anforderung ein Abbruch erzeugt wurde. Er stellt sicher, däss neue Daten erst ausgesendet werden, nachdem der entsprechende Kanal neu initialisiert wurde.
- - Nach der Aktivierung von SIO_RESET (während sich diese Einheit in einem beliebigen der unten aufgezählten Zustände befindet) setzt die Einheit das Anzeigebit TFM_RESET im Register 181, setzt die Anzeigebits "abort_raised" und/oder "servicing_abort" im Register 181 zurück und geht in den Zustand 0 über. Dies zeigt an, dass der TFM-Status durch eine externe Maßnahme nach einem vorherigen Abbruch entsprechend neu initialisiert wurde.
- - Wenn TL1_DONE nicht aktiviert wurde und das TDE-Bit im CCR nicht aktiv ist (was anzeigt, dass TFM gesperrt ist), gehe in den Zuständ 1 über.
- - Wenn TL1_DONE nicht aktiviert wurde und TDE aktiv ist (was anzeigt, dass TFM erneut aktiviert wurde), setzt die Einheit das Bit TFM_RESET im Statusanzeigeregister (Fig. 23) sowie alle aktiven Abbruchanzeiger ("abort_raised" und/oder "servicing_abort") zurück und kehrt in den Zustand 0 zurück.
- Diese Einheit ist für die bitserielle Anbindung an den BTDM-Bus und für die Ausführung der damit verbundenen Funktionen (Parallel-Serien-Umsetzung, Einfügen von Null-Bits, Flaggenerzeugung) zuständig. Wenn eine externe Rücksetzanzeige (SIO_RESET) festgestellt wird, setzt diese Einheit die relevanten Teile des Statusahzeigeregisters zurück und nimmt den Zustand 0 an.
- Diese Einheit führt ihre Operationen durch, indem sie den Multiplexer 180 und die Zusatzlogik 179, 180a und 182 bis 184 verwendet und steuert. Der Multiplexer 180 führt nach Bedarf die Datenserialisierungsfunktion in Bezug auf die Datenregister 177 und 178 durch, um den Tnhalt dieser Register über die BTDM- Schnittstelle bitseriell an das Netzwerk zu übertragen. Bei der Steuerung des Multiplexers 180 in Bezug auf diese Register verwendet die Einheit 176C Zeigerangaben, die in den Zählregistern 182 bis 184 bereitgestellt werden, um die Byte- Eingabequellen in den Multiplexer 180 und die Auswahl bestimmter Bits von der ausgewählten Quelle festzustellen. Die Einheit 176C stellt diese Zeigerangaben während ihrer Verwendung ein.
- Das Register 183 (Datenquellenauswahlregister der Sendeebene 1) zeigt die Quelle des nächsten zu übertragenden Bytes an (Register 177, Register 178 oder Sonderzeichengenerator 179), und das Register 182 (Sendedatenbitzeigerregister) zeigt das nächste Bit an, das von der ausgewählten Bytequelle übertragen werden soll. Während die Bits aus einem Quellenregister übertragen werden, wird der Bitzeiger so erhöht, dass er auf das nächste Bit in dieser Quelle zeigt, und wenn der Bitzeiger einen Wert erreicht, der der Position des letzten Bits entspricht, wird die Übertragung dieses Bits von Maßnahmen in Bezug auf das Anzeigeregister 181 begleitet um die entsprechende Statusanzeige (z. B. die Anzeige des Leer-Status in Bezug auf die Register 177 oder 178) zu setzen.
- Das Zählregister 184 (Transparenzzähler der Sendeebene 1) dient zur Feststellung von Null-Bit-Einfügeoperationen während der Übertragung von Daten in Bezug auf Kanäle, die gemäß bitorientierten Protokollen arbeiten. In solchen Kanälen muss verhindert werden, dass die Sendedaten als Sonderzeichen (Flaggen, Leerzeichen oder Abbruchzeichen) erscheinen. Zu diesem Zweck ist es notwendig, dass das Erscheinen von mehr als 5 aufeinanderfolgenden Logisch-1-Signalen im Sendedatenstrom verhindert wird. Der Zähler 184 dient dazu, Übertragungen von aufeinanderfolgenden Logisch-1-Datensignalen in Bezug auf die Register 177 und 178 zu zählen, und wenn der Zählwert "5" erreicht, wird der Multiplexer 180 angewiesen, ein Null-Bit einzufügen (wobei er den 0-Generator 180a als seine Quelle verwendet), und der Zählwert wird auf 0 zurückgesetzt. Die Schaltungen 179 erzeugen Abbruch- und Leerzeichen sowie Flaggen, von denen bei Bedarf einzelne Bits vom Multiplexer 180 zur Übertragung an das Netzwerk ausgewählt werden, um Abbruch-, Leerlauf- oder Flagge-(Rahmenende-)Bedingungen im abgehenden Signalbitstrom zu signalisieren.
- Die Zustände der Einheit 176C werden nun wie folgt zusammengefasst.
- Wenn SIO_RESET aktiviert wird, während sich die Einheit in einem beliebigen Zustand befindet, löscht die Einheit die Statusanzeiger im Register 181 und geht in den Zustand 0 über.
- - Nach der Feststellung von RSM_XMIT_START schaltet die Einheit in den Zustand 1. Andernfalls bleibt die Einheit im Zustand 0. In diesem Zustand werden keine Signale aktiviert und keine Statusanzeigen geändert. In diesem Zustand ist der TL1-Zeitsicherungs- und -wiederladestatus TL1_TS01 zur Zeitsicherungs- und -wiederladespeicherung durch RSM und für den nächsten Kanalladevorgang vom RSM gültig.
- - Der Protokollcode im RSM_CCR wird ausgewertet, um festzustellen, ob der aktuelle Kanal "frei" ist (kein Protokoll) oder nach einem bitorientierten Protokoll (HDLC/LAPB/LAPD) arbeitet.
- - Wenn er nach einem bitorientierten Protokoll arbeitet, prüft die Einheit die Abbruchanforderungsoption (AR-Feld im RSM CCR), um festzustellen, ob ein Abbruch erzwungen werden soll. Ein Abbruch wird auch erzwungen, wenn eine Datenparitätsfehlermeldung, TV_PARITYE, empfangen wird. Wenn ein Abbruchmuster gesendet werden muss, wird das Bitzeigerfeld TLDBP in TU_TS01 auf "7" zurückgesetzt (auf "8", wenn das invertierte HDLC ausgeführt wird), und ein Statusanzeigebit wird gesetzt, um anzuzeigen, dass der Abbruch bedient wird. Die Quellenauswahlanzeige TLDSS (die als im Register 183 in der TL1 befindlich gezeigt ist, sich aber in der Praxis in einem Register im TV befindet und TL1 als Eingangssignal übergeben wird) wird auch von TL1 gesetzt, um der Multiplexerschaltung 180 anzuzeigen, dass die Abbrucherzeugungslogik (Teil der Sonderzeichenerzeugungslogik 179) als die aktuelle Bytequelle von Signalen ausgewählt werden soll, die an die BTDM gesendet werden sollen. Wenn der TDBP-Wert auf 0 schaltet (was anzeigt, dass das benötigte Muster vollständig gesendet wurde), werden TLDSS und TDBP aktualisiert, um auf eine Quelle von Füllmustern zwischen Rahmen zu zeigen (ein anderer Teil der Logik 179), die von RSM_CCR als nächste Datenquelle gekennzeichnet wird (dies findet nur zu Beginn der Initialisierung des Kanals statt). Der nächste Zustand ist der Zustand 4.
- - Wenn der Kanal frei ist, ist der nächste Zustand der Zustand 2.
- Wenn die Sendedatenaniforderung BTDM_TDATA_REQ aktiv ist, übergib das vom Bit- und Registerzeiger bezeichnete Datenbit, verringere den Bitzähler (TLDBP), und nimm eine Prüfung auf einen Unterlauffehler vor. Wenn der Unterlaufanzeiger gesetzt ist, lösche die internen Anzeigen, stelle die Registerquelle des letzten Bytes fest, das gesendet wurde (über den Quellenzeiger TLDSS), und stelle den Quellenzeiger so ein, dass er ständig dasselbe Byte aussendet (als Füllmuster, um zu verhindern, dass unzulässige Oktette übertragen werden). Der nächste Zustand ist der Zuständ 3.
- - Wenn die Sendedatenanforderung inaktiv ist, prüfe den Datenzeiger TDBP und die Anzeiger, um festzustellen, ob ein Unterlauffehler aufgetreten ist (beide Datenregister sind leer, und der Wert von TLDBP ist "0". Wenn ein Unterlauf vorliegt, setze den Zeiger TLDBP zurück, behalte die Quellenregisteranzeige und aktiviere die Unterbrechungsanzeige an INT. Wenn kein Unterlauf vorliegt, aber der Wert von TLDBP "0" ist, setze TLDSS so, dass er auf ein anderes Datenregister als Quelle zeigt, und setze den Wert von TLDBP auf "8". Der nächste Zustand ist der Zustand 2, es sei denn, die Sendedatenanforderung wurde nicht inaktiv (bleibe in diesem Fall im Zustand 3 und warte, bis sie inaktiv wird).
- Wenn die Sendedatenanforderung aktiv ist, übergib das vom Bit- und Registerzeiger bezeichnete Bit, und verringere den Bitzeiger. Prüfe den Transparenzzähler (TLTC in TL1_TS01), und übergib bei Bedarf ein Stopfbit (der Zählstand ist 5, und TLDSS zeigt auf eines der Datenregister). Erhöhe TLTC, wenn 1 Datenbit gesendet wird, und setze TLTC zurück, wenn kein Datenbit gesendet wird. Der nächste Zustand ist der Zustand S. es sei denn, RSM aktiviert eine Schlitzendeanzeige (in diesem Fall ist der nächste Zustand der Zustand 0). Wenn die Sendedatenanforderung inaktiv ist und eine nicht bediente Abbruchanforderung oder ein Paritätsfehler ansteht, ist der nächste Zustand der Zustand 5, bleibe andernfalls im Zustand 4.
- Wenn die Sendedatenanforderung inaktiv ist, prüfe den Abbruch- und Paritätsfehleranzeiger und den Datenzeiger. Wenn die Anzeiger eine Abbruch- oder Paritätsfehlermaßnahme erforderlich machen, setze TLDBP auf "7" zurück ("8" bei invertiertem HDLC), und setze TLDSS so, dass er ein Abbruchmuster als Quelle auswählt. Wenn kein Abbruch notwendig ist, TLDBP den Wert "0" hat und immer noch Daten gesendet werden (keine Anzeige "Ende des Rahmens"), stelle fest, welches Register als Nächstes gesendet werden muss, und setze TLDSS so, dass es dieses anzeigt. Wenn keine Daten bereitstehen, wähle die Endeflagge, oder ein Füllmuster (TV_TL1_ENDCHAIN überschreibt jede beliebige Rahmenendeanzeige bei der Ermittlung des zu sendenden Füllmusters). Ein Unterlauf entsteht, wenn beide Datenregister leer sind und es von TV keine Rahmenendeanzeige gibt. Nach der Feststellung eines Unterlaufs wird das entsprechende Anzeigebit gesetzt, und TLDSS wird so gesetzt, dass er auf den Abbruchmustergenerator als nächste. Quelle zeigt. Der nächste Zustand ist der Zustand 4.
- Das Wort TL1_TS01 der TL1, das Zeitsicherungs- und - wiederladeoperationen unterworfen wurde, in Fig. 24 gezeigt ist und nachstehend beschrieben wird, umfasst zwei 8-Bit-Felder TLD1 und TLD2, ein 4-Bit-Feld TLDBP, einen 3-Bit-Teil TLTC und ein 9-Bit-Feld TLSI. Die Quellen dieser Felder in Fig. 22 sind: die Register 177 und 178 für TLD1 und TLD2, das Register 182 für TLDBP, das Zählregister 184 für TLTC und das Register 181 für TLSI. Diese Felder werden in TL1 wie folgt verwendet.
- - Diese spiegeln den Inhalt der Datenregister 1 und 2 wider, die in Fig. 22 bei 177 und 178 gezeigt sind. Diese Register empfangen abwechselnd Daten von TV (im "Ping- Pong"-Verfahren).
- - Zeigt auf das nächste Bit, das von der aktuellen Datenquelle an die BTDM gesendet werden soll. Die aktuelle Quelle wird von TLDSS angezeigt (Fig. 26 und das Register 183 in Fig. 22) und kann das Datenregister 1, das Datenregister 2 oder der Abbruch-/Leerzeichen-/
- Flaggengenerator 179 sein (Fig. 22).
- - Zählt aufeinanderfolgende Datenbits mit einem Wert von "1", die in Bitprotokollkanälen ausgesendet werden, und ein Stopfbit wird eingefügt, wenn der Zählwert "5" erreicht ist; der Wert wird erhöht, wenn 1 Datenbit gesendet wird, und zurückgesetzt, wenn entweder ein Stopfbit oder ein Datenbit mit dem Wert "0" gesendet wird.
- - Spiegelt den neuesten Zustand der Statusanzeiger wider (Fig. 23).
- Das Sendevalidierüngs-(TV-)Element bildet die Schnittstelle zwischen dem Sende-FIFO-Manager (TFM) und der TL1, um Sendedaten zu übertragen. TV arbeitet im Zeitmultiplexbetrieb synchron mit BTDM-Zeitschlitzen, die vom RSM festgelegt werden, und wird über RSM und TS1 in Bezug auf aktive Kanalschlitze Zustandsicherungs- und -wiederladeoperationen unterworfen. Die Hauptfunktionen von TV sind:
- Sendedatenbytes werden byteweise aus dem TFM in ein internes Datenregister abgerufen, wie vorstehend beschrieben verarbeitet und an die TL1 übertragen. Wenn das interne Register leer ist, werden Abrufanforderungen an TFM ausgegeben.
- In protokollorientierten Kanälen wird jedes abgerufene Sendedatenbyte bitseriell an die Berechnungslogik angelegt, die sowohl eine Berechnung des CRC-Rests als auch eine Paritätsprüfung durchführt. Nachdem das letzte Datenbyte eines Protokollrahmens an die TLS1 weitergereicht wurde, wird der 2- Byte-CRC-Rest invertiert und an die TL1 übertragen, wobei das höherwertige Byte zuerst übertragen wird.
- In Bezug auf Daten in freien Kanälen (z. B. digitalisierte Sprache) werden die CRC-Erzeugung und die Paritätsprüfung umgangen; d. h., die Anwendung dieser Funktionen wird als eine Funktion des Kanaltypfeldes CT im CCR ausgewählt.
- Bezug nehmend auf Fig. 25, umfasst TV das Datenregister 190, die Zustandsmaschine 191, die CRC-Berechnungslogik 192 und den Multiplexer 193. Über TFM_TV_DATA, das bei 194 gezeigt ist, empfängt das Registet 190 Sendedaten vom TFM, und sein Ausgangssignal wird an die CRC-Berechnungsschaltung 192 und den Multiplexer 193 angelegt. Das Ausgangssignal der Berechnungsschaltung 192 wird an einen zweiten Eingang des Multiplexers 193 angelegt. Der Multiplexer 193 wird von der Zustandslogik 191 so gesteuert, dass er sein Eingangssignal vom Datenregister 190 auswählt, während die Daten abgewickelt werden. In protokollorientierten Kanälen wird der Multiplexer 193 am Rahmenende so gesteuert, dass er sein Eingangssignal von der Berechnungsschaltung 192 auswählt.
- Die Berechnungsschaltung 192 führt die Erzeugung des CRC-Rests und die Paritätsprüfung durch. Wenn ein Paritätsfehler auftritt, konditioniert die Schaltung 192 die Zustandslogik 191 über eine nicht gezeigte Verbindung so, dass diese eine Ausgangsanzeige eines solchen Fehlers, TV_PARITYE, erzeugt.
- Ein Eingang der Zustandsmaschine 191 ist mit der Leitung SIO_RESET verbunden, und sie wird zurückgesetzt, wenn SIO diese Leitung aktiviert. Die Einheit 191 empfängt Steuereingangssignale vom RSM, die rechtzeitig Schlitzende- und Schlitzanfang-Verarbeitungspunkte (RSM_XMIT_EOS beziehungsweise RSM_XMITT_START) angeben. Vor dem Start der Verarbeitung in Bezug auf einen aktiven Schlitz überträgt der RSM Zustandsinformationen vom TSR an TV (über RSM_TS_BUS in Begleitung von RSM_TV-LOAD), und Kanalkonfigurationsinformationen werden über RSM_CCR übergeben.
- Die Zustandslogik 191 erkennt Leerzustände des Registers 190, und zu solchen Zeitpunkten übergibt sie über TV_TFM_REQ Datenanforderungen an den TFM. Wenn es bereit ist, übergibt TFM ein Datenbyte bei TFM_TV_DATA, das von einem Bestätigungssignal TFM_TV_ACK begleitet wird. Wenn das Register 190 Daten enthält, übergibt die Einheit 191 über TV_TL1_DATA_RDY einen Datenbereit-Anzeiger an TL1 und steuert den Multiplexer 193 an, um die Daten bei TV_TL1_DATA zu übergeben. Wenn die Daten angenommen werden, schickt TL1 bei TL1_ACK eine Bestätigung zurück.
- In Bezug auf protokollorientierte Kanäle übergibt TFM Anzeigen von Rahmenendebedingungen, TFM_TV_SOF, und Bedingungen "Ende der Kette", TFM_TV_EOC, an TV. TV verwendet diese Anzeigen, um CRC-Bytes einzufügen und sich auf die Beendigung seiner Operationen vorzubereiten.
- Am Ende des Schlitzes, das von RSM_XMIT_EOS angezeigt wird, bereitet sich TV darauf vor, dass sein Zeitsicherungs- und - wiederladezustand (time swap state) gesichert wird. Dieser Status wird bei TV_TS01 ständig übergeben, aber TV muss seine DONE-Anzeige TV_DONE dem RSM übergeben, bevor die Sicherungsfunktion ausgeführt wird.
- Die Zustandsmaschine 191 hat das folgende Spektrum an Zuständen.
- - Dies ist der Zustand, der angenommen wird, wenn 510 RESET aktiviert wird. Der Inhalt der CRC-Berechnungsschaltung wird gelöscht, und die Zustandsmaschine wird in ihren Leerlaufzustand gezwungen (Zustand 0).
- - Warte auf RSM_XMIT_START, aktiviere TV_DONE, und gehe in den Zustand 1 über.
- - Ermittle den Status des aktuellen Kanals durch Prüfung des Kanaltyps und der das Protokoll festlegenden Codes im RSM_CCR.
- - In einem freien Kanal wird eine Prüfung durchgeführt, um sicherzustellen, dass TV nicht versucht, den CCR-Rest zu senden (der nur für den Protokollmodus gültig ist). Wenn das TV-Datenregister voll ist, aktiviere TV_DATA_RDY. Wenn das TV-Datenregistet nicht voll ist, aktiviere die Anforderung TV_TFM_REQ an TFM, um weitere Daten anzufordern. Der nächste Zustand ist der Zustand 2.
- - Prüfe im BITPROTOKOLL-Kanal die Abbruchanzeigen von TL1. Wenn eine Abbruchbedingung vorhanden ist, ist der nächste Zustand der Zustand 8. Wenn das Datenregister gültige Daten hat, aktiviere TV_DAT_RDY an TL1, und der nächste Zustand ist der Zustand 2. Wenn das Datenregister nicht gültig ist, sende nach Bedarf CRC-Bytes an TL1, oder aktiviere TV_TFM_REQ an TFM. Wenn mehr Daten angefordert werden, ist der nächste Zustand der Zustand 3. Wenn das erste CRC-Byte gesendet wird, ist der nächste Zustand der Zustand 5. Wenn das zweite CRC-Byte gesendet wird, ist der nächste Zustand der Zustand 6.
- - Wenn TL1_ACK aktiv ist, setze TV_DATA_RDY auf logisch "0", und setze das gültige Datenbit in Bezug auf das Datenregister zurück. Wenn ein Bitprotokollkanal bedient wird, ist der nächste Zustand der Zustand 7 für die CRC- Berechnung. Setze das CRC-Ladesteuerungssignal in dieser Situation so, dass es den Beginn der Berechnung anzeigt. Andernfalls ist der nächste Zustand der Zustand 1, um mehr Daten vom TFM anzufordern. Wenn RSM_XMIT_EOS aktiv ist, bevor TL1 die Datenübertragung bestätigt, setze TV_DATA_RDY auf logisch "0", und gehe in den Leerlaufzustand 0 über, um Vorbereitungen für eine Zustandsicherungs- und -wiederladeoperation (swap) zu treffen (dies ist ein Beispiel der "adaptiven" Einrichtung, die vorher erörtert wurde und es diesen autonomen Elementen ermöglicht, ihre Zustände vor der Sicherungs- und Wiederladeoperation (swapping) zu ändern, wenn eine Schlitzendeanzeige vom RSM mit einer unbeantworteten Anforderung für eine Datenübertragung in Bezug auf ein anderes Element zusammenfällt). In allen anderen als den vorstehenden Fällen ist der nächste Zustand der Zustand 2.
- Wenn TFM_ACK und TFM_TV_DATA aktiv sind (man beachte, dass TFM_TV_DATA darüber hinaus von TFM_TV_NDI als aktiv gekennzeichnet wird), lade das Datenregister und setze den gültigen Datenstatus in Bezug auf das Datenregister. Wenn TFM_TV_DATA und TFM_TV_EOF aktiv sind, zeigt dies an, dass das letzte Byte des Rahmens vom TFM übertragen wird, setze deshalb den zugehörigen Steueranzeiger so, dass nicht vergessen wird, CRC-Bytes als Nächstes auszusenden, nachdem TL1 den Empfang des letzten von TFM angezeigten Bytes bestätigt hat, und schalte in den Zustand 6 weiter. Gehe andernfalls in den Zustand 2 über.
- Wenn TL1_DATA_ACK aktiv ist, setzte TV_DTA_RDY auf logisch "0", um Vorbereitungen für die Übertragung des zweiten CRC-Bytes zu treffen, und gehe in den Zustand 6 über. Wenn RSM_XMIT_EOS aktiv ist, bevor TL1 die Byteübertragung bestätigt, setzte TV_DATA_RDY auf logisch "0", und gehe in den Leerlaufzustand 0 über. Wenn TL1 DATA ACK inaktiv bleibt, ist der nächste Zustand der Zustand 5.
- Wenn TL1_DATA_ACK aktiv ist, setze TV_DATA_RDY auf logisch "0", treffe Vorbereitungen für die Übertragung des Datenbytes, und gehe in den Zustand 1 über. Führe auch eine Voreinstellung des CRC-Zählers für den nächsten Rahmen durch. Wenn RSM_XMIT_EOS aktiv ist, bevor TL1 die Byteübertragung bestätigt, setze TV_DATA_RDY auf logisch "0", und gehe in den Zustand 0 über, andernfalls ist der nächste Zustand der Zustand 5.
- - Warte, bis der CRC-Zählstand 0 ist, der nächste Zustand ist dann der Zustand 1, um weitere Daten anzufordern, andernfalls ist der nächste Zustand der Zustand 7.
- - Wenn RSM_XMIT_EOS aktiv ist, ist der nächste Zustand der Zustand 0, andernfalls ist der nächste Zustand der Zustand 1. Führe eine Voreinstellung des CRC-Zählers für den nächsten Rahmen durch.
- Das Zustandsicherungs- und -wiederladewort für TV, TV TS01, ist in Fig. 26 gezeigt. Es enthält ein 8-Bit-Feld TVDR, ein 16-Bit- Feld TVCR, ein 1-Bit-Feld TVDV, ein 2-Bit-Feld TVDS, ein 1-Bit- Feld TVOE, ein 1-Bit-Feld TVEC, ein 1-Bit-Feld TVDP und ein 2- Bit-Feld TLDSS. Die Verwendung und Bedeutung eines jeden dieser Felder werden nachstehend erörtert.
- - Inhalt des Datenregisters 190
- - Zustand der kumulierten Berechnung des CRC-Rests für den aktuellen Rahmen. Wenn man auf das Rahmenende trifft, wird dieses Feld an die abgehenden Daten angehängt, die an TL1 durchgestellt werden.
- - Der Zustand dieses Bits zeigt an, ob das Datenregister gültige Daten hat ("ein" zeigt an, dass gültige Daten weitergeleitet werden sollen, "aus" zeigt an, dass das Datenregister leer ist).
- - Zeiger auf die Quelle des nächsten Bytes, das an TL1 gesendet werden soll (die Quelle ist entweder: das TV- Datenregister, die oberen 8 Bits des TV-CRC-Registers oder die unteren 8 Bits des TV-CRC-Registers).
- - Wenn dieses Bit aktiv ist, zeigt es an, dass ein Betriebsfehler festgestellt worden ist (z. B. ein ungültiger Zustand) und bewirkt, dass alle TV- Verarbeitungsoperationen angehalten werden.
- - Eine Anzeige "Ende der Kette", die vom TFM empfangen wird. Erfordert, dass das letzte Byte der CRC-Übertragung an TL1 von einer Anzeige "Ende der Kette" begleitet wird, welche Letzteres auf die Übertragung eines Füllmusters vorbereitet.
- - Ungerade Parität für den Inhalt von TVDR
- - Um die Anzahl der Wörter auf ein Minimum zu reduzieren, die Zeitsicherungs- und -wiederladeoperationen unterworfen (time swapped words) und in Bezug auf TS1 benötigt werden, werden diese Bits durch TV gesichert und von TL1 zu Beginn der Kanalverarbeitung verwendet. Diese beiden Bits dienen als Zeiger auf eine von vier Quellen des nächsten Datenbytes, das in TL1 ausgesendet werden soll: die Datenregister 1 und 2 in TL1, die Quelle des Flaggensignals in TL1 oder die Quelle des Leerzeichen-/
- Abbruchmusters in TL1.
- Das FIFO-RAM (FIFOR) und die FIFO-Manager (RFM und TFM) arbeiten zusammen, um Übertragungsdaten in die Warteschlange zu stellen, die zwischen der DMA-Steuereinheit (DMAC) und den synchronen Sende- und Empfangselementen (RL1, RV, TL1, TV) unterwegs sind. Ebenso wie das Zeitsicherungs- und -wiederlade- RAM (TSR) enthält das FIFOR Logik, die dazu dient, seinen Datenfluss in Bezug auf andere Segmente zu steuern.
- Bezug nehmend auf Fig. 27, umfasst das FIFOR-Segment eine statische 128 · 36-RAM-Speichermatrix 200, die über die Busauswahlschaltungen 201 (vom SIO, RSM, RFM, TFM und des DMAC) Eingangssignale empfängt und bei 202 einem Datenbus (FIFOR DATA), der bei 203 angegeben ist, Ausgangssignale bereitstellt. Der Bus 203 erstreckt sich zum SIO, RFM, TFM und dem DMAC. Die Zustandsmaschinenlogik 204, die in Verbindung mit den Anforderungssignalspeichern 205 arbeitet, steuert die Operationen der Auswahlschaltung 201 und der Speichermatrix 200.
- Die Speichermatrix 200 enthält 128 Datenwort-Speicherbereiche, wobei jeder Wortspeicherbereich aus 36-Bit-Speicherbereichen besteht (32 Datenbitspeicherbereichen und 4 Paritätsbitspeicherbereichen in jedem Wortspeicherbereich). Bezug nehmend auf Fig. 7, ist in der beispielhaften ISDN- Primärmultiplexanwendung die Hälfte des Speicherbereichs, der jedem Kanal zugeordnet wird, für die Sende-DMA- Konfigurationsregisterwörter TDCR1, TDCR2 reserviert, und die andere Hälfte ist für die Empfangs-DMA- Konfigurationsregisterwörter RDCR1, RDCR2 reserviert. Die RDCR1-, RDCR2- und die TDCR1-, TDCR2-Speicherbereiche eines jeden aktiven Kanals speichern Informationen über den Status und die Übertragungsdaten in Bezug auf die jeweiligen Kanäle. Die Verwendung der Bits in jedem Wortspeicherbereich wird nachstehend mit Bezug auf die Fig. 33 bis 36 erörtert.
- Dateneingangssignale in die Speichermatrix 200 vom SIO-, RFM-, TFM- und DMA-Steuersegment (DMAC-Steuersegment) werden über die Auswahlschaltungen 201 bereitgestellt. Datenausgangssignale werden über den Bus 203 an diese Segmente geleitet, wobei bestimmte Ziele von Restätigungsausgangssignalen der Zustandslogik 204 bei 206 angegeben werden. Die Speichermatrix wird in bestimmten Fällen direkt und in anderen Fällen indirekt adressiert. In jedem Fall stellt das Zugriffssegment den Anforderungssignalspeichern 205 der Lese- oder Schreibrichtung des gewünschten Zugriffs eine Anzeige bereit (z. B. SIO_FIFOR_RD oder SIO_FIFOR_WR). TFM und DMAC haben in Bezug auf diese Schreib-/Leseanforderungen getrennte Eingangssignale, um eine Lese- oder Schreiboperation von entweder 1 Wort oder 2 aufeinanderfolgenden Wörternanzufordern (RFM und SIO geben immer Schreib-/Leseanforderungen für 1 Wort aus).
- Wenn SIO auf die Speichermatrix zugreift, stellt es über SIO_ADDRESS_BUS ein ausdrückliches Adresseneingangssignal bereit, das die Auswahlschaltung 201 an den Adresseneingang der Speichermatrix 200 überträgt. Wenn Daten geschrieben werden, wird ein Datenwort, das bei SIO_DATA geliefert wird, von der Auswahlschaltung 201 an den Dateneingang der Speichermatrix übertragen. Daten, die an SIO (oder die anderen Segmente) abgerufen werden, erscheinen auf dem Bus 203. FIFOR_SIO_ACK bei 206 gibt SIO als Ziel an.
- Wenn Daten vom TFM oder RFM in die Speichermatrix geschrieben oder aus der Speichermatrix an diese Segmente abgerufen werden, wird der Auswahlschaltung 201 indirekt ein Adresseneingangssignal als eine Kombination der Zeitschlitzangabe vom RSM, RSM_TSI, und der Auswahlfunktionen, die am Ausgang 207 der Zustandslogik 204 erscheinen, bereitgestellt. RSM_TSI adressiert wirkungsvoll den Block aus (4 Wort-)Positionen, die dem entsprechenden Kanal zugeordnet sind, und die Auswahlfunktionen bei 207 stellen einer bestimmten Wortstelle im Block den Adressenoffset bereit. In Bezug auf Übertragungen von Empfangsdaten vom RFM, die jeweils byteweise erfolgen, stellt RFM ein zusätzliches Adresseneingangssignal RFM_FIFOR_BPP (BPP steht für "Bytepositionszeiger") bereit, das eine Byteposition innerhalb eines ausgewählten Wortspeicherbereichs als Adresse auswählt.
- Wenn RFM in die Speichermatrix schreibt, übergibt er bei RFM_FIFOR_DATA ein Empfangsdatenbyte zusammen mit detn Bytepositionszeiger RFM_FIFOR_BPP, wobei Letzterer eine bestimmte Bytestelle innerhalb des Blocks, die von RSM_TSI adressiert wird, und das am Ausgang 207 ausgewählte Wort kennzeichnet. Wenn TFM in die Speichermatrix schreibt, schreibt er nur Statuswortinformationen und übergibt Letztere bei TFM_TDFSW_DATA. Wenn Daten entweder in den RFM oder den TFM abgerufen werden, wird auf dem Bus 203 ein ganzes Wort zusammen mit einer zugehörigen Bestätigung bei 206, FIFOR_RFM_ACK oder FIFOR_TFM_ACK, ausgegeben, die zur Kennzeichnung des Zielsegments dienen.
- Wenn DMAC auf die Speichermatrix zugreift, werden die Adresseneingangssignale als Kombinationen von Kanalnummereingangssignalen vom DMAC, DMAC_CHN_NBR, und Auwahlausgangssignalen bei 207 gebildet. Daten werden zum Schreiben bei DMAC_FIFOR_DATA übergeben, und abgerufene. Daten werden über den Bus 203 zusammen mit FIFOR_DMAC_ACK bei 206 an das DMAC übertragen.
- Ausgangssignale von der Speichermatrix 200 an den Bus 203 werden parallel an die Paritätsprüfschaltung 202a geleitet, die an den Daten eine Paritätsprüfoperation durchführt. Wenn ein Paritätsfehler festgestellt wird, liefert diese Schaltung bei 202b eine Fehlermeldung FIFOR_PARITY_ERROR. Diese Fehlermeldung wird dem anfordernden Segment übergeben und vom Letzteren dazu verwendet, dem INT-Segment eine Fehlerunterbrechungsanzeige bereitzustellen (um den zugehörigen Status im CEISR/TSR zu protokollieren und sie dem IOP als kanalbezogene Fehlerbedingung zu melden; siehe die folgende Beschreibung des INT).
- Lese-/Schteib- und Taktfunktionen der Speichermatrix werden über Ausgangssignale der Logik 204 bei 208 gesteuert (die von Eingangssignalen in die Anforderungssignalspeicher 205 abgeleitet werden). Einzelne Lese- oder Schreibanforderungen nehmen für ihre Abarbeitung 3 Maschinentakt-/Zustandszyklen in Anspruch (3 · 50 ns). Ein Zyklus legt die Anforderungsauswahlfunktionen fest und aktiviert die Schreib-/ Lese- und die nicht gezeigten Taktfreigabeeingangssignale der Speichermatrix. Der nächste Zyklus nimmt die Zwischenspeicherung der Taktfreigabe- und Auswahlfunktionen vor, um der Speichermatrix eine störimpulsfreie Taktung zu ermöglichen. Der nächste, dritte Zyklus aktiviert die Bestätigungsausgangssignale und deaktiviert Takt- und Auswahlsignale. Aufeinanderfolgende (Doppelwort-) Zugriffe werden in 5 Zyklen abgearbeitet, indem der erste Zyklus des zweiten Zugriffs mit dem letzten Zyklus des ersten Zugriffs überlappt wird.
- Im FIFOR werden jedem Übertragungskanalschlitz 4 Wortspeicherbereiche zugeordnet (Fig. 7). Zwei dieser Speicherbereiche (RDCR1, TDCR1) halten DMA-Steuerinformationen in Bezug auf den jeweiligen Kanal, und die anderen beiden (RDCR2, TDCR2) dienen als Pufferspeicher, in denen Daten, die empfangen und gesendet werden, in den Warteschlangen abgelegt werden.
- Einzelheiten der Bitverwendung in den DMA- Konfigurationsregister-Wortspeicherbereichen RDCR1, RDCR2 und TDCR1, TDCR2 der Speichermatrix 200 sind in den Fig. 33 bis 37 angegeben. RDCR1 und TDCR1 werden dazu verwendet, bestimmte Status- und Steuerparameter in Bezug auf entsprechende (aktive) Kanäle zu halten, und die Speicherbereiche RDCR2 und TDCR2 werden als 4-Byte-Warteschlangen in Bezug auf Empfangs- und Sendeübertragungsdaten verwendet, die entsprechende (aktive) Kanäle passieren.
- In jedem aktiven Kanal, der einen Empfangspfad hat, werden Empfangsdaten jeweils byteweise vom RV über den RFM in (speziell adressierte) Bytepositionen im jeweiligen RDCR2- Speicherbereich in der Speichermatrix 200 übertragen. In Bezug auf jeden aktiv übertragenden Kanal werden Sendedaten jeweils byteweise vom TDCR2/FIFOR an den TFM und von Letzterem an TV übertragen. Bei der Übertragung an den TFM wird das ganze Wort TDCR2 abgerufen, und TFM nimmt eine Byteauswahl vor. Übertragungen vom RFM an die Speichermatrix 200 und von der Speichermatrix an den TFM werden während entsprechender synchroner Operationen, die Zeitsicherungs- und - wiederlademaßnahmen unterworfen (time-swapped operations) und nachstehend beschrieben werden, von RFM und TFM durchgeführt.
- Wenn ein RDCR2-Speicherbereich mit 4 Bytes gefüllt wird, übergibt RFM eine Anforderung an die DMARQ (DMA- Anforderungswarteschlange), die das DMAC-Segment, das in Verbindung mit dem MIO-Segment (asynchron) arbeitet, veranlasst, die 4 Bytes in einen Speicherbereich im externen (IOP-/Host-)Speicher zu übertragen, der von Adressinformationen im entsprechenden RDCR1-Feld mit der Bezeichnung RDCA (empfange die aktuelle DMA-Adresse; 22 Bit) gekennzeichnet wird. Der externe Speicher wird als Umlaufpufferspeicher adressiert (siehe die folgende ausführliche Beschreibung des DMAC). Die restlichen 10-Bit-Speicherbereiche im RDCR1 bestehen aus 8 reservierten Bitspeicherbereichen (RES), einem 1-Bit- Speicherbereich RPE (empfange den Paritätsfehler), um einen im FIFOR-Ausgangssignal an das DMAC festgestellten Paritätsfehler anzuzeigen, und einem 1-Bit-Speicherbereich RBC (empfange die Grenzprüfung), um Grenzprüfungsbedingungen anzuzeigen, die während der Übertragung angetroffen wurden (siehe die Beschreibung des DMAC).
- Wenn ein aktiver TDCR2-Kanalwortspeicherbereich im FIFOR leer wird, übergibt TFM ebenso eine Anforderung an die DMARQ, die bewirkt, dass das DMAC unter Verwendung von Steuerinformationen, die teilweise in dem zugehörigen TDCR1- Speicherbereich bereitgestellt werden (siehe die Beschreibung des DMAC, in det die TDCR1-Felder ausführlich erörtert werden), Daten (asynchron) aus dem externen (IOP-%Host-)Speicher abruft. Kurz gesagt, die Felder in jedem TDCR1-Wort bestehen aus: 7 reservierten Bits (RES), einem 16-Bit-TDBC-Feld (TDBC = Sende- DMA-Bytezählstand), das die Bytelänge des aktuellen externen Datenpufferspeicherbereichs angibt, drei 2-Bit-Feldern und drei 1-Bit-Feldern. Die 2-Bit-Felder sind das TBC (Transmit Buffer Count = Sendepufferspeicher-Zählstand), das auf das nächste Byte im TDCR2 zeigt, das an TV übertragen werden soll, TOPQ (Top of Queue = Anfang der Warteschlange), das auf die erste gültige Bytestelle im TDCR2 zeigt (und insbesondere benötigt wird, wenn weniger als 4 Bytes in das TDCR2 geladen wurden), und PE (Transmit DMA Parity Error = Sende-DMA-Paritätsfehler), das anzeigt, ob in der DMAC-Übertragung in Bezug auf den externen Speicher oder das FIFOR oder beide ein Paritätsfehler aufgetreten ist. Die 1-Bit-Felder, die externe Zugriffsbedingungsanzeigen darstellen, die vom DMAC gesetzt werden können (siehe die Beschreibung des DMAC bezüglich Einzelheiten), sind: ECD (End of Chain Detected = Ende der Kette festgestellt), EFD (End Of Frame Detected = Ende des Rahmens festgestellt) und NDI (No Data Indicator = Keine-Daten- Anzeiger).
- Um die folgende Beschreibung zu vereinfachen, werden die 1-Bit und die 2-Bit-Statusfunktionen des TDCR1, die für das FIFOR relevant sind, unter dem Sammelbegriff Sende-DMA-FIFO- Statuswort (TDFSW) zusammengefasst, das DMAC-Kanalnummer- Adressierungseingangssignal in das FIFOR wird als DMAC-Adresse bezeichnet, und die Zeitschlitzadressierungsanzeige vom RSM an das FIFOR wird entsprechend dem Segment, das tatsächlich auf das FIFOR zugreift, als RFM-Adresse oder als TFM-Adresse bezeichnet.
- - Alle Anforderungen für den Zugriff auf das FIFOR werden laufend zwischengespeichert (in den Anforderungssignalspeichern 205). Dieser Zustand priorisiert die Anforderungen entsprechend vorher festgelegten Arbitrierungsregeln und lädt Daten, die zu der vorrangigen Anforderung gehören, in die FBS (FIFOR- Busauswahlschaltung) 201.
- - Prioritäten in absteigender Reihenfolge sind: TDFSW- Aktualisierungen von TFM, Leseanforderungen für zwei Wörter vom DMAC, Schreibanforderungen für ein Wort vom DMAC, Leseanforderungen für ein Wort vom DMAC, Schreibanforderungen für zwei Wörter vom DMAC, DMAC- Schreiboperation-Paritätsfehler, RFM-Leseanforderungen, RFM-Schreibanforderungen, Leseanforderungen für ein Wort vom TFM, Leseanforderungen für zwei Wörter vom TFM, Leseanforderungen vom SIO und Schreibanforderungen vom SIO.
- - Wenn die ausgewählte Anforderung eine Schreibanforderung für eine TDFSW-Aktualisierung für TFM ist (TFM_FIFOR_WR1), werden die Adresse und die aktualisierten TDFSW-Daten (TFM_TDFSW_DATA) von der FBS (FIFO-Busauswahlschaltung) 201 ausgewählt. Das erste Byteauswahl-, Schreib- und Taktfreigabeeingangssignal werden aktiviert. In diesem Fall ist der nächste Zustand der Zustand 11.
- - Wenn die Anforderung eine Anforderung für eine Leseoperation von zwei Wörtern aus dem FIFOR in das DMAC ist (DMAC_FIFOR_RD2), wird davon ausgegangen, dass das DMAC sowohl die aktuelle externe Adresse, die im RDCA-Feld des RDCR1-Wortspeicherbereichs abgelegt ist, der von det DMAC-Adresse adressiert wird, als auch die Empfangsdaten anfordert, die im zugehörigen RDCR2-Speicherbereich abgelegt sind (beide Speicherbereiche werden teilweise von DMAC_CH_NBR gekennzeichnet). Die zugehörigen Wortspeicherbereiche werden sequenziell adressiert, und die Lesesteuersignale werden aktiviert. Der nächste Zustand ist der Zustand 1.
- - Wenn die Anforderung eine Anforderung für eine Schreiboperation eines Wortes in das FIFOR vom DMAC ist (DMAC_FIFOR_WR1), wird davon ausgegangen, dass das DMAC das Wort aktualisiert, das das RDCA des zugehörigen Kanals enthält, und die zugehörige FIFOR-Adresse wird von der FBS ausgewählt. Die Steuersignale der Speichermatrix werden für die Schreiboperation aktiviert. Der nächste Zustand ist der Zustand 18.
- - Wenn die Anforderung eine Anforderung für eine Leseoperation eines Wortes in das DMAC ist (DMAC_FIFOR_RD1), wird davon ausgegangen, dass das DMAC das TDBC im TDCR1-Speicherbereich des zugehörigen Kanals anfordert. Die entsprechende Adresse wird von der FBS ausgewählt, und die Signale der Speichermatrix werden für die Schreiboperation aktiviert. Der nächste Zustand ist der Zustand 2.
- - Wenn die Anforderung eine Anforderung für eine Schreiboperation von zwei Wörtern vom DMAC ist (DMAC_FIFOR_WR2), speichert das DMAC sowohl das TDBC als auch die Sendedaten. FBS wählt sequenziell die entsprechenden Wortadressen aus, die Steuersignale der Speichermatrix werden für aufeinanderfolgende Schreiboperationen aktiviert, und der nächste Zustand ist der Zustand. 12.
- - Wenn die Anforderung eine Anforderung für eine Schreiboperation einer Paritätsfehleranzeige vom DMAC in das FIFOR ist (DMAC_FIFOR_PE_WR-Anforderung wird zwischengespeichert), wurde vom DMAC ein Paritätsfehler als Ergebnis von entweder einer DMAC-Anforderungen für eine Leseoperation von einem Wort oder einer DMAC- Anforderung für eine Leseoperation von zwei Wörtern aus dem FIFOR festgestellt. Das jeweilige TDCR1 oder RDCR1 wird durch die Kombination aus DMAC_CHN_NBR und DMAO_RCV_REQ ausgewählt, und FBS wählt aus. Der nächste Zustand ist der Zustand 14.
- - Wenn die Anforderung eine RFM-Leseanforderung ist (RFM_FIFOR_RD ist aktiv), fordert RFM Statusinformationen vom zugehörigen RDCR1 an. Die Adressenauswahl wird entsprechend durchgeführt (als Funktion von RSM_TSI und Wortpositionsauswahl-Ausgangssignalen von der Zustandsmaschine), und Steuersignale werden für eine Leseoperation aktiviert. Der nächste Zustand ist der Zustand 4.
- - Wenn die Anforderung eine Ein-Byte-Schreibanforderung vom RFM ist (RFM_FIFOR_WR1 ist aktiv), um ein Empfangsdatenbyte zu übertragen, wird die Byteadresse von der FBS als Antwort auf RFM_FIFOR_BPP ausgewählt, und Steuersignale werden für eine Schreiboperation aktiviert. Der nächste Zustand ist der Zustand 15.
- - Wenn die Anforderung eine Sendedaten-Leseanforderung an TFM ist (TFM_FIFOR_RD1 ist aktiv), wird die erforderliche TDCR2-Adresse von der FBS ausgewählt (als Funktion von RSM_TSI und intern erzeugten Wortpositionsanzeigen), und die Steuersignale werden für eine Leseoperation aktiviert. Der nächste Zustand ist der Zustand 5.
- - Wenn die Anforderung eine Anforderung für eine Leseoperation von zwei Wörtern für TFM ist (TFM_FIFOR_RD2), versucht TFM, Zugriff sowohl auf den TDCR1- als auch den TDCR2-Speicherbereich des jeweiligen Kanals zu erhalten. Diese Speicherbereiche werden sequenziell adressiert (als Funktion von RSM_TSI und intern erzeugten Wortpositionsauswahlsignalen), und die Steuersignale werden für Leseoperationen aktiviert. Der nächste Zustand ist der Zustand 6.
- - Wenn die Anforderung eine Anförderung für eine Leseoperation von einem Wort für SIO ist (SIO_FIFOR_RD ist aktiv), wird die vom SIO gelieferte Adresse (SIO_ADDRESS) ausgewählt, die Steuersignale der Speichermatrix werden für eine Leseoperation aktiviert, und der nächste Zustand ist der Zustand 7.
- - Wenn die Anforderung eine Anforderung vom SIO für eine Schreiboperation von einem Wort in das FIFOR ist (SIO_FIFOR_WR ist aktiv), wird die SIO-Adresse ausgewählt, die Steuersignale werden für eine Schreiboperation aktiviert, und der nächste Zustand ist der Zustand 17.
- - Die Steuersignale der Speichermatrix werden für den Zugriff auf die Speichermatrix aktiviert, um den RDCR1- Speicherplatz der DMAC-Adresse zu lesen (DMAC_CH_NBR). Der nächste Zustand ist der Zustand 8.
- - Die Steuersignale der Speichermatrix werden für den Zugriff auf die Speichermatrix aktiviert, um den TDCR1- Speicherplatz der DMAC-Adresse zu lesen. Der nächste Zustand ist der Zustand 20.
- - Aktiviere FIFOR_DMAC_ACK, um DMAC darüber zu informieren, dass die Sendedaten geschrieben wurden und die aktualisierten TDBC und TDFSW übergeben werden müssen, um als Nächstes geschrieben zu werden. Das Speichermatrix- Freigabesignal wird danach deaktiviert, aber die Auswahl- und Schreibzugriffsteuersignale bleiben aktiv. Der nächste Zustand ist der Zustand 13.
- - Die Steuersignale der Speichermatrix werden für eine Leseoperation in Bezug auf das RDCR1 des zugehörigen Kanals aktiviert und anschließend deaktiviert. Der nächste Zustand ist der Zustand 21.
- - Die Steuersignale der Speichermatrix werden aktiviert, um das TDCR2 des zugehörigen Kanals zu lesen, und anschließend deaktiviert. Der nächste Zustand ist der Zustand 23.
- - Die Steuersignale der Speichermatrix werden aktiviert, um das TDCR1 des zugehörigen Kanals zu lesen, und anschließend deaktiviert. Der nächste Zustand ist der Zustand 10.
- - Die Steuersignale der Speichermatrix werden aktiviert, um das Wort an SIO_ADDRESS zu lesen, und anschließend deaktiviert. Der nächste Zustand ist der Zustand 22.
- - FIFOR_DMAC_ACK wird an DMAC aktiviert. Die DMAC-Adresse wird auf den Speicherplatz des zweiten Wortes (RDCR2) desselben Kanals eingestellt. Das Taktfreigabesignal wird für den zweiten Lesezugriff aktiviert. Der nächste Zustand ist der Zustand 9.
- - Die Steuersignale der Speichermatrix werden für die zweite Leseoperation aktiviert und anschließend deaktiviert. Der nächste Zustand ist der Zustand 20.
- - FIFOR_TFM_RD_ACK wird aktiviert, damit TFM TDFSW- Informationen auf dem Bus 203 annimmt und sich als Nächstes auf die Annahme von Sendedaten vorbereitet. Das Taktfreigabesignal wird für die nächste Leseoperation aktiviert und die TFM-Adresse auf den Speicherplatz des nächsten Wortes (TDCR2) eingestellt. Der nächste Zustand ist der Zustand 16.
- - Das Taktsignal der Speichermatrix wird für die Schreiboperation in den entsprechenden TDFSW/TDCR1- Speicherbereich aktiviert. Das Taktfreigabesignal wird deaktiviert. Der nächste Zustand ist der Zustand 19.
- - Das Taktsignal der Speichermatrix wird aktiviert, um Sendedaten vom DMAC in den TDCR2-Speicherbereich des zugehörigen Kanals zu schreiben. Die Adresse wird auf den nächsten Wortspeicherbereich (der Wortspeicherbereich des zugehörigen TDCR1) eingestellt. Das Taktsignal wird deaktiviert. Der nächste Zustand ist der Zustand 3.
- - Das Taktsignal wird zum Zugriff auf die Speichermatrix aktiviert, um in den TDCR1-Speicherbereich zu schreiben, und anschließend deaktiviert. Der nächste Zustand ist der Zustand 20.
- - Das Taktsignal wird zum Zugriff auf die Speichermatrix aktiviert, um in den TDCR1-PE-Speicherbereich zu schreiben. Das Taktsignal wird anschließend deaktiviert. Der nächste Zustand ist der Zustand 20.
- - Auf die Speichermatrix wird zugegriffen, um ein Datenbyte vom RFM in den RDCR2-Speicherbereich des zugehörigen Kanals/Schlitzes zu schreiben. Das Taktsignal wird anschließend deaktiviert. Der nächste Zustand ist der Zustand 21.
- - Auf die Speichermatrix wird zugegriffen, um Sendedaten aus dem TDCR2-Speicherbereich des zugehörigen Kanals an TFM zu lesen (TFM wählt das entsprechende Byte aus). Das Taktsignal wird deaktiviert. Der nächste Zustand ist der Zustand 23.
- Wenn keine Flagge festgestellt wird, prüfe das Prüfregister auf ein Leerzeichen- oder Abbruchmuster (7 oder mehr aufeinanderfolgende Einsen). Wenn ein solches Muster festgestellt wird, setze den entsprechenden Leerlauf- oder Abbruchanzeiger in Bezug auf INT, lösche den Inhalt des Datenregisters, und setze den Bitzählstand zurück. Wenn RDATA_VALID inaktiv ist, ist der nächste Zustand der Zustand 1, andernfalls ist der nächste Zustand der Zustand 3.
- - Auf die Speichermatrix wird zugegriffen, und das SIO DATA- Wort wird an den Speicherplatz von SIO ADDRESS geschrieben. Das Taktsignal wird gesperrt. Der nächste Zustand ist der Zustand 22.
- - Auf die Speichermatrix wird zugegriffen, um in den RDCR1- Speicherbereich der vom DMAC angezeigten Kanalnummer zu schreiben. Das Taktfreigabesignal wird deaktiviert. Der nächste Zustand ist der Zustand 20.
- - FIFOR_TFM_ACK wird aktiviert. Die Steuersignale der Speichermatrix werden deaktiviert. Der nächste Zustand ist der Zustand 0.
- - FIFOR_DMAC_ACK wird aktiviert. Die Steuersignale der Speichermatrix werden deaktiviert. Der nächste Zustand ist der Zustand 0.
- - FIFOR_ACK_RFM wird aktiviert. Die Steuersignale der Speichermatrix werden deaktiviert. Der nächste Zustand ist der Zustand 0.
- - FIFOR_SIO_ACK wird aktiviert. Die Steuersignale der Speichermatrix werden deaktiviert. Der nächste Zustand ist der Zustand 0.
- - FIFOR_TFM_RD_ACK wird aktiviert. Die Steuersignale der Speichermatrix werden deaktiviert. Der nächste Zustand ist der Zustand 0.
- RFM (Empfangs-FIFO-Manager) überträgt Empfangsdatenbytes zwischen RV und speziell adressierten Bytestellen in den RDCR2- Wortspeicherbereichen des FIFOR und leitet durch Anforderungen an die DMARQ Übertragungen von Empfangsdaten an den Host-/IOP- Speicher aus dem FIFOR ein (gesteuert vom DMAC). RFM kann auch auf Statusinformationen in den RDCR1-Speicherbereichen des FIFOR zugreifen (z. B. um festzustellen, ob während zugehöriger DMAC-Übertragungen aus dem FIFOR an den Host-/IOP-Speicher Paritätsfehler aufgetreten sind).
- RFM arbeitet synchron mit RV und RL1 als eine im Zeitmultiplexbetrieb benutzte Einheit, um aktive Kanäle synchron mit dem Erscheinen von entsprechenden Kanalzeitschlitzen an der BTDM zu bedienen. Wie bei den anderen synchronen Elementen wird RFM vom RSM in regelmäßigen Zeitintervallen in Bezug auf das Erscheinen der Schlitze gestartet und angehalten. Wenn ihm signalisiert wird, dass er anhalten soll (RSM_RCV_EOS), geht RSM in einen Leerlaufzustand über und aktiviert RFM_DONE als Anzeige an RSM, dass er sich in einem stabilen Zustand befindet, der sich für einen Zeitsicherungs- und -wiederladeaustausch von Statuswörtern eignet (RFM_TS01 und RFM_TS02), die zu endenden und beginnenden Kanalschlitzen gehören. Die neuen Statuswörter werden als Antwort auf Ladesteuersignale vom RSM (RSM_RFM_LOAD1 und RSM_RFM_LOAD2) geladen. Nachdem der neue Kanalstatus geladen wurde, wird RFM mittels RSM RCV-START signalisiert, dass er starten soll.
- Während des Betriebs nimmt RFM in Bezug auf einen beliebigen aktiven Kanal von RV übergebene Empfangsdatenbytes an und speichert sie an bestimmten Bytestellen von zugehörigen Kanalwortspeicherbereichen RDCR2 im FIFOR. Während sich jeder dieser Speicherbereiche füllt, stellt RFM eine Anforderung in die DMARQ, um zu veranlassen, dass DMAC den Inhalt dieses Speicherbereichs (asynchron) in den externen IOP-Speicher überträgt. RFM verarbeitet auch von RV empfangene Statusinformationen, überwacht die Anzahl der in jedem Rahmen empfangenen Bytes und zeigt dem INT-Segment den Rahmenendestatus an. Er verarbeitet auch Statusbedingungen, die vom DMAC in den RDCR1-Speicherbereichen des FIFOR übergeben werden und meldet dem INT-Segment übergebene Grenzprüfungs- und Paritätsfehlerbedingungen.
- Die Wörter, die Zeitsicherungs- und -wiederladeoperationen unterworfen und zwischen RFM und TSR (RFM_TS_01 und RFM_TS_02) von RSM gesteuert übertragen werden, sind in den Fig. 29 und 30 angegeben.
- RFM_TS01 umfasst Folgendes: ein 8-Bit-Feld RFMD, das jedwede von RV empfangene Daten enthält, die noch nicht an das FIFOR übertragen wurden; ein 1-Bit-Feld RFMDP, das die Parität der im RFMD gespeicherten Daten anzeigt, ein 2-Bit-Feld RFMBP, das einen Bytezeiger auf die nächste Byteposition im FIFOR/RDCR2 hält, an die Empfangsdaten für den aktuellen Kanal übertragen werden sollen, ein 3-Bit-Feld RFMS, das den aktuellen Zustand von RFM in Bezug auf den jeweiligen Kanal als einen der Folgenden angibt: "Leerlaufzustand" (es wurden keine gültigen Daten empfangen), "aktiv" (es wurden gültige Daten empfangen, die in das FIFOR gestellt werden sollen) oder "zwischen Rahmen" (von RV wurde eine Leerlauf-, Abbruch- oder Rahmenendeanzeige empfangen, die es erforderlich macht, dass RFM den zugehörigen Status INT übergibt, sobald der zugehörige Inhalt des FIFOR mittels direktem Speicherzugriff im Speicher des IOP abgelegt wurde), ein 8-Bit-Feld RFMIS, das den Unterbrechungsstatus von RFM als einen der Folgenden angibt: Leerzeichenmuster empfangen, Rahmenende festgestellt, Abbruchmuster festgestellt, Octettausrichtungsfehler festgestellt, CRC-Fehler festgestellt, Pufferspeicherüberlaufbedingung in Bezug auf FIFOR/RDCR2 festgestellt; und 8 reservierte Bitstellen (die derzeit nicht benutzt werden, aber für andere Anzeigen zur Verfügung stehen).
- RFM_TS02 umfasst ein 16-Bit-Feld RFMFBC, das die Anzahl der Bytes angibt, die von RFM in Bezug auf den jeweiligen Kanal während des aktuellen Rahmens empfangen wurden, und 16 reservierte/nicht benutzte Bits. Nach der Feststellung der Rahmenende-, Leerlauf- oder Abbruchbedingung passt RFM den Wert im RFMFBC an (um sicherzustellen, dass keine CRC-Bytes in dem Zählstand enthalten sind), und der angepasste Wert wird zusammen mit dem Wert von RFMIS in RFM_TS01 während des von INT durchgeführten Unterbrechungsanforderungs-Abwicklungsprozesses an INT übergeben (von INT aufgenommen).
- 11.6 RFM-LOGIK
- Der logische Aufbau des RFM ist in Fig. 28 angegeben. RFM umfasst die Zustandsmaschinenlogik 220, die Busauswahlschaltung 221 zur Übertragung von Empfangsdaten und Statusinformationen, die von RV übergeben werden (als Antwort auf von der Zustandslogik 220 bereitgestellte Auswahlfunktionen), die Datenregister 222 zum Empfang der Informationen, die von der Auswahlschaltung 221 ausgewählt wurden (als Antwort auf von der Zustandslogik 220 bereitgestellte Steuersignale) und die Zeitsicherungs- und -wiederlade-Statusregister 223, um die aktuell gültigen Zeitsicherungs- und -wiederlade-Statuswörter von RFM zu halten (dieses Segment hat zwei solcher Wörter und zwei Register 223, um sie zu halten).
- Bei normalen Operationen von RFM würde die Zustandslogik 220 die folgenden Übergänge durchlaufen: Start im Leerlaufzustand (Zustand 0), nach dem Empfang von RSM_RCV_START Übergang in den Zustand 4, um auf eine Anzeige zu warten/eine Prüfung auf eine Anzeige vorzunehmen, dass der FIFOR-Pufferspeicher nicht voll ist (wenn der Pufferspeicher voll ist, warte im Zustand 4, bis er nicht mehr voll ist, bevor fortgefahren wird), gehe in den Zustand 10 über, um eine Prüfung auf einen FIFOR-Paritätsfehler und auch auf eine Grenzprüfungsbedingung vorzunehmen, indem der von DMAC übergebene RDCR1-Status gelesen wird. Wenn kein Paritätsfehler und keine Grenzprüfungsbedingungen vorliegen, gehe in den Zustand 1 über, um auf eine Datenübertragungsanforderung von RV zu warten, dann in den Zustand 5, um Daten im FIFOR zu speichern, und kehre nach dem Empfang einer Schlitzendeanzeige RSM_RCV_EOS in den Leerlaufzustand 0 zurück. Einzelheiten der Zustandslogik 220 folgen.
- Zustand 0 (Leerlaufzustand)
- - Dies ist der Zustand, in dem RFM seine Zeitsicherungs- und - wiederlade-Statuswörter problemlos sichern und wiederladen kann. In diesem Zustand kann die Anzeige RFM_DONE aktiviert werden (im Anschluss an den Empfang von RSM_RCV_EOS), wodurch RSM TSR so betreiben kann, dass TSR den aktuellen Status von RFM speichert, den die Register 223 an die Ausgänge RFM_TS01 und RFM_TS02 legen. In diesem Zustand kann auch der neue Status von RFM_TS_BUS als Antwort auf Ladesteuersignale vom RSM (RSM_RFM_LOAD1, RSM_RFM_LOAD2) in die Register 223 geladen werden. Nachdem er den Status geladen hat, beginnt der RSM mit der RFM- Verarbeitung, indem er RSM_RCV_START aktiviert.
- - In diesem Zustand wartet RFM auf RSM_RCV_START. Wenn dieses Signal aktiv ist, wird der Zustand des Empfangs- DMA-Freigabebits (RDE) im RSM_CCR geprüft. Wenn dieses Bit ausgeschaltet ist (der aktuelle Kanal ist nicht zum Empfang freigegeben), ist der nächste Zustand der Zustand 8. Wenn dieses Bit eingeschaltet ist und der Status des RFM-Zustands (RFMS- und RFMIS-Felder in RFM_TS01) einen vorherigen Fehler in diesem Kanal anzeigt, gehe in den Zustand 8 über. Gehe andernfalls in den Zustand 4 über.
- - Der Status des Zustands wird geprüft, um die Tasks einzuleiten, die in Bezug auf den aktuellen Zustand notwendig sind. Wenn RFM von RSM angehalten wird, während er sich in diesem Zustand befindet, wird RFM aufgefordert, in den Zustand 0 überzugehen. Wenn der Status anzeigt, dass zuvor das Leerzeichenmuster festgestellt wurde, wird RFM aufgefordert, in den Zustand 2 überzugehen. Wenn der Status anzeigt, dass zuvor Daten empfangen, aber noch nicht in das FIFOR geschrieben wurden, wird RFM aufgefordert, eine Schreibanforderung, RFM_FIFOR_WR_REQ, an das FIFOR zu richten, und in den Zustand 5 überzugehen. Wenn der Status einen vorherigen Empfang einer Anzeige "Ende des Rahmens" von RV anzeigt, wird RFM aufgefordert, in den Zustand 9 überzugehen, um dem INT diese Anzeige zu melden. Wenn der Status eine vorherige Feststellung eines Paritätsfehlers oder einer Grenzprüfungsbedingung anzeigt, wird RFM aufgefotdert, in den Zustand 8 überzugehen. Wenn der Status anzeigt, dass ein schwerer Logikfehler angetroffen wurde, wird RFM aufgefordert, in den Zustand 0 zurückzukehren.
- - In diesem Zustand werden die von RV übergebenen Daten und der von RV übergebene Status (Rahmenende, Abbruch oder Leerlauf) verarbeitet. Wenn RV_RFM_REQ aktiv ist, zeigt dies an, dass die Daten am Eingang RV_RFM_DATA der Auswahlschaltung 221 gültig sind. Wenn RV_RFM_REQ_STATUS aktiv ist, zeigt dies an, dass der Status am Eingang. RV RFM STATUS der Auswahlschaltung 221 gültig ist. In Abhängigkeit davon, welcher Eingang aktiv ist, der Daten- oder der Statuseingang, wird die entsprechende Bestätigung, RFM_RV_D_ACK oder RFM_RV_S_ACK, aktiviert.
- - Wenn der Rahmeneddestatus und Daten gleichzeitig von RV empfangen werden, wird der Zustandsstatus so gesetzt, dass er den Empfang des Rahmenendes anzeigt, und durch RFM_RV_D_ACK erhält RV eine Datenempfangsbestätigung. Der Status der FIFOR-Datenpufferspeicher im RDCR2 wird geprüft, um festzustellen, ob sie 2 oder mehr Bytes an gültigen Daten halten. Wenn ja, wird RFM_DMARQ_SET aktiviert, um den DMAC-Dienst anzufordern, und der nächste Zustand ist der Zuständ 11. Wenn die Anzahl der im FIFOR gehaltenen Bytes zu diesem Zeitpunkt geringer als 2 ist, wird RFM_DMARQ_SET nicht aktiviert, und der nächste Zustand ist der Zustand 6.
- - Wenn von RV nur Daten empfangen werden, wird der Zustandsstatus so gesetzt, dass er den Empfang eines Datenbytes anzeigt, über RFM_RV_ACK erhält RV eine Bestätigung, der Empfangsdatenbytezählstand (RFMBC in RFM_TS02) wird um 1 erhöht, und der nächste Zustand ist der Zustand 5.
- - Wenn nur der Rahmenendestatus empfangen wird, wird der Zustandsstatus geändert, um dies anzuzeigen, der Rahmenbytezählstand wird um 1 verringert, wenn er größer 0 ist (um eine Anpassung für die Übertragung von CRC vorzunehmen), über RFM_RV_S_ACK wird eine Bestätigung an RV zurückgesandt, und die Anzahl der gültigen Bytes, die im FIFOR-Datenpufferspeicher enthalten sind, wird geprüft. Wenn sich mindestens 3 gültige Bytes im Pufferspeicher befinden, wird das Anforderungsbit an DMARQ (RFM_DMARQ_SET) aktiviert, und der nächste Zustand ist der Zustand 11. Wenn sich weniger als 3 Bytes im Pufferspeicher befinden, ist der nächste Zustand der Zustand 6, ohne dass eine Anforderung an DMARQ aktiviert wird. Die Anzahl der gültigen Bytes im FIFOR beim Empfang des Rahmenendes ist wichtig, da diese Bedingung nur in Kanälen auftritt, die gemäß HDLC-Protokollen arbeiten und in denen die letzten beiden Bytes, die von RV übertragen werden, CRC-Restbytes sind, die nicht Teil des Rahmendatenzählstandes sind; daher muss der Zählstand laufend angepasst werden, um den tatsächlich empfangenen Datenzählstand widerzuspiegeln.
- - Wenn ein Abbruch- oder Leerlaufrahmenstatus von RV empfangen wird, wird die Anzahl der gültigen Datenbytes im FIFOR geprüft. Wenn im FIFOR keine gültigen Datenbytes vorhanden sind, ist der nächste Zustand der Zustand 9. Wenn ein Byte vorhanden ist, ist der nächste Zustand der Zustand 6. Wenn zwei Bytes vorhanden sind, wird der Rahmenbytezählstand um 1 verringert, und der nächste Zustand ist der Zustand 6. Wenn 3 Bytes vorhanden sind, wird der Rahmenbytezählstand um 1 verringert, und der nächste Zustand ist der Zustand 3.
- - Der Rahmenbytezählstand wird um eins verringert, und der nächste Zustand ist der Zustand 6.
- - Wenn RFM von RSM angehalten wird, während er sich in diesem Zustand befindet, wird er aufgefordert, in den Zustand 0 überzugehen. In diesem Zustand wird das Anforderungssignal von DMARQ (DMARQ_RFM_REQ), das, wenn es aktiv ist, anzeigt, dass in Bezug auf den FIFOR- Datenpufferspeicher ein Dienst vom DMAC angefordert wurde (wenn dieser Dienst erbracht wurde, schaltet DMAC dieses Signal aus), wiederholt darauf geprüft, ob es anzeigt, dass der DMAC-Dienst in Bezug auf den FIFOR- Datenpufferspeicher erbracht worden ist. Nach dem Empfang einer solchen Anzeige erfolgt der Übergang in den Zustand 10.
- - Aktiviere in diesem Zustand eine Schreibanforderung RFM FIFOR WR REQ an das FIFOR. Wenn das FIFOR eine Bestätigung sendet (mit FIFOR_RFM_ACK), adressiere mit dem Bytepositionszeiger RFM FIFOR BPP eine Bytestelle im FIFOR-Datenpufferspeicher, an die das empfangene Datenbyte geschrieben wird. Aktualisiere den Zeiger, damit er auf die nächste Position zeigt, und den Zustandsstatus, um anzuzeigen, dass Daten in das FIFOR geschrieben wurden. Prüfe den Status des FIFOR-Datenpufferspeichers. Wenn er voll ist; aktiviere RFM_DMARQ_SET, um den DMAC-Dienst anzufordern, und gehe in den Zustand 4 über. Wenn der Pufferspeicher nicht voll ist, gehe in den Zustand 2 über, ohne in Bezug auf DMARQ eine Maßnahme zu ergreifen. Wenn RFM von RSM angehalten wird, bevor er die vorstehenden Maßnahmen durchgeführt hat, wird RFM aufgefordert, in den Zustand 0 zurückzukehren.
- - Der Rahmenbytezählwert wird um eins verringert, und der nächste Zustand ist der Zustand 9.
- - Lösche den Rahmenbytezählstand, setze den Zustandsstatus so, dass er den Beginn eines neuen Rahmens anzeigt, und gehe in den Zustand 4 über.
- - Ein Eintritt in diesen Zustand erfolgt als Folge dessen, dass das RDE-(Empfangs-DMA-Freigabe-)Bit im RSM_CCR ausgeschaltet ist. In diesem Zustand wird der gesamte von RV empfangene Rahmenstatus mittels Aktivierung von RFM_INT_REQ an INT weitergereicht, und INT verarbeitet den bei RFM_TS01, RFM_TS02 übergebenen RFM-Status. Alle empfangenen Daten werden verworfen. Kehre in den Zustand 0 zurück, wenn RSM_RCV_EOS aktiviert wird. Der Host-/IOP- Komplex ist dafür verantwortlich, sicherzustellen, dass das RDE-Bit im CCR eines Kanals in den aktiven Zustand gesetzt wird, wenn Daten bei normalem DMA-Vorgang in diesem Kanal empfangen werden sollen.
- - Eine Unterbrechungsanforderung an INT, RFM_INT_REQ, wird auf logisch "1" gesetzt, um einen Fehler oder den Rahmenstatus zu melden. Mögliche Unterbrechungen sind: FIFOR-Paritätsfehler (siehe Zustand 10), Grenzprüfungsbedingung angetroffen oder Anzeige "Ende des Rahmens" empfangen: Gehe in den Zustand 8 über, wenn ein Paritätsfehler oder eine Grenzprüfungsbedingung übergeben werden, oder in den Zustand 7, wenn ein normaler Rahmenendestatus gemeldet wird.
- Aktiviere RFM_FIFOR_RD_REQ in Bezug auf den RDCR1- Speicherbereich des aktuellen Kanals. Wenn das FIFOR diese Anforderung bestätigt, stelle anhand einer Prüfung fest, ob ein FIFOR-Paritätsfehler vorliegt (FIFOR_PARITY_ERROR aktiv). Wenn ein solcher Fehler angezeigt wird, gehe in den Zustand 9 über, und setze den Statusanzeiger so, dass er das Auftreten dieses Fehlers anzeigt. Wenn RDCR1 anzeigt, dass während der zugehörigen DMAC-Übertragung eine Grenzprüfung stattgefunden hat, setze den Zustandsstatus so, dass er diese Bedingung anzeigt, und gehe in den Zustand 9 über. Wenn weder ein FIFOR- Paritätsfehler noch eine Grenzprüfungsbedingung aufgetreten sind, gehe in den Zustand 1 über. Wenn RFM von RSM angehalten wird, wird er aufgefordert, in den Zustand 0 überzugehen.
- - Verringere den Rahmenbytezählstand um eins, und gehe in den Zustand 4 über.
- Der Sende-FIFO-Manager TFM ist ein zeitgemultiplextes, synchrones Element. Er wird vom RSM synchron mit dem Erscheinen von Kanalzeitschlitzen an der BTDM gestartet und angehalten. Der TFM verwaltet Übertragungen von Übertragungssendedaten (in Bezug auf aktive Kanäle) vom FIFOR an TV. Diese Daten werden in Speicherbereichen des TDCR (Sende-DMA-Konfigurationsregister) im FIFOR in Warteschlangen abgelegt (in Gruppen zu 4 oder weniger Bytes), insbesondere in TDCR2-Speicherbereichen (Fig. 7, Fig. 36). Die Daten werden vom DMAC aus dem externen IOP- Speicher an das FIFOR übertragen (in Gruppen zu 4 oder weniger Bytes) und von TFM byteweise dem FIFOR entnommen. Steuerinformationen in Bezug auf jede Kanalwarteschlange werden im zugehörigen TDCR1-Speicherbereich im FIFOR gespeichert.
- Die Form und der Inhalt der in den TDCR1- und TDCR2- Speicherbereichen im FIFOR gespeicherten Informationen sind in den Fig. 35 und 36 gezeigt und werden hier und auch in der folgenden Beschreibung des DMAC kurz dargelegt.
- TDCR1 (Fig. 35) enthält Folgendes: drei 1-Bit-Anzeigen, drei 2- Bit-Anzeigen, eine 16-Bit-Anzeige und 7 reservierte/nicht benutzte Bitspeicherbereiche. Die 1-Bit-Anzeigen sind: ECD (Ende der Kette festgestellt), EFD (Ende des Rahmens festgestellt) und NDI (Keine-Daten-Anzeiger, was bedeutet, dass ein DMAC-Dienst eine Bedingung "Ende des Pufferspeichers" angetroffen hat, so dass keine weiteren Daten zur Übertragung übrig sind). Die 2-Bit-Anzeigen sind: TBC (Sendepufferspeicher- Zählstand, der auf das nächste Byte im FIFOR/TDCR2 zeigt, das an TV übertragen werden soll), TOPQ (Anfang der Warteschlange; in jeder Instanz des Warteschlangendienstes kann DMAC 4 oder weniger Datenbyte übertragen, und dieser Anzeiger zeigt auf die Position des ersten "gültigen" Byte), und PE (die eine der folgenden 4 DMA-Paritätsfehlerbedinungen anzeigt: kein Fehler, FIFOR-Paritätsfehler, DMAC-Steuerungs-RAM-Paritätsfehler, Paritätsfehler, die sowohl im FIFOR als auch im DMAC-Steuer-RAM angetroffen wurden). Die 16-Bit-Anzeige TDBC (Sende-DMA- Bytezählstand) stellt die Bytelänge des aktuellen externen Datenpufferspeichers dar, aus dem DMAC Daten abruft, und zeigt indirekt Befehlskettungspunkte für das DMAC an (siehe die folgende Beschreibung des DMAC bezüglich weiterer Einzelheiten).
- TDCR2 (Fig. 36) umfasst eine Warteschlange mit vier Sendedatenbyte-Speicherbereichen TDB1 bis TDB4, in die vom DMAC abgerufene Sendedaten gestellt werden. Wie vorstehend erwähnt wurde, werden in jeder Instanz des DMAC-Dienstes 4 oder weniger Bytes abgerufen und in die Warteschlange gestellt, und die Stelle des ersten gültigen, so platzierten Bytes wird vom TOPQ- Anzeiger im TDCR1 angegeben.
- TFM ist auch dafür verantwortlich, in Abstimmung mit Echtzeitanforderungen von Kanalübertragungsprozessen rechtzeitig das Auffüllen der Sendedaten-Warteschlangen im FIFOR einzuleiten. TFM überwacht den Status der Sendedaten- Warteschlange im FIFOR für jeden aktiven Kanal, und während sich die Warteschlange leert, aktiviert TFM eine Anforderung an DMARQ, mit der sie DMARQ ersucht, den Auffüllvorgang durch DMAC in Bezug auf den externen IOP-Speicher (asynchron) einzuleiten.
- Steuerinformationen, die den Status des DMAC-Dienstes in Bezug auf jeden aktiven Kanal anzeigen, werden im TDCR1- Wortspeicherbereich dieses Kanals im FIFOR abgelegt (Fig. 7), und TFM überwacht die Steuerinformationen TDFSW (Sendedaten- FIFO-Statuswort) im ersten Byte des TDCR1, um Rahmenendepunkte im Sendedatenstrom festzustellen und zugehörige Signale über TV an TF1 weiterzuleiten, die es TF1 ermöglichen, CRC- und Flaggeneinfügefunktionen in Bezug auf Kanäle auszuführen, die für bitorientierte Protokolle konfiguriert sind (z. B. HDLC). Zu diesen Zeitpunkten erhöht TFM einen Rahmenzählstand in seinem Zeitsicherungs- und -wiederlade-Wort um eins und übergibt eine Untefbrechungsanforderung an INT, um die Rahmenübergangsinformationen an das Hostsystem weiterzureichen (siehe die folgende Beschreibung des INT bezüglich Einzelheiten darüber, wie die Informationen tatsächlich weitergereicht werden).
- Der DMAC-Prozess zum Abrufen von Sendedaten ermöglicht die Kettung von Abrufbefehlen in Bezug auf (z. B. verstreute) Datenblöcke im IOP-Speicher (siehe die folgende Beschreibung des DMAC bezüglich Einzelheiten) mit einem bestimmten Grad an Autonomie in Bezug auf das IOP/Hostsystem. TFM überwacht auch die TDCR1/TDFSW-Informationen auf Anzeigen vom Typ "Ende der Kette festgestellt" (ECD). Nachdem er diese festgestellt hat, leitet TFM zugehörige Anzeigen über TV an TL1 weiter, um es TL1 zu ermöglichen, bei Bedarf Füllmuster einzufügen, bis der DMAC- Dienst in Bezug auf den verketteten Block wirksam ist. Die Kettenübergangsbedingung wird auch INT gemeldet (siehe die folgende Beschreibung des INT). Zu diesen Zeitpunkten wird TFM in Bezug auf den zugehörigen Kanal inaktiv, und eine ausdrückliche Maßnahme durch SIO/IOP ist erforderlich (siehe die folgende Beschreibung des SIO), um den Kanal neu zu initialisieren und TFM zu reaktivieren; wobei sichergestellt wird, dass jedwede notwendige Abstimmung zwischen dem IOP-/ Hostsystem und dem DMAC zur Durchführung der Kettung vorgenommen wird, bevor die Kanalübertragungen wieder aufgenommen werden.
- Wenn TFM durch eine Schlitzendeanzeige vom RSM, RSM_XMIT_EOS, angehalten wird, während er Operationen in Bezug auf einen aktiven Kanal durchführt, wird ein Wort TFM_TS01, das Zeitsicherungs- und -wiederladeoperationen unterworfen wurde und den Zustand des TFM in Bezug auf diesen Kanal angibt, vom RSM im TSR gesichert. Wenn der nächste erscheinende Kanal aktiv ist, wird ein weiteres Wort TFM_TS01, das den Status von TFM in Bezug auf diesen Kanal angibt, in den TFM geladen (vom RSM aus dem TSR), und TFM wird durch das Signal RSM_XMIT_START vom RSM erneut gestartet, um die Verarbeitung in Bezug auf den neuen Kanal wieder aufzunehmen.
- Das TFM-Statuswort, das von RSM während Statussicherungs- und - wiederladeoperationen gesichert wird, enthält nicht das eventuell vorhandene Sendedatenbyte, das gegebenenfalls von TFM aus dem FIFOR abgerufen und noch nicht an TV übertragen wurde, wenn RSM die aktuelle Kanalschlitzoperation anhält. Der Grund dafür ist, dass jeder Abruf von Sendedaten durch TFM von einer Anforderung von TV eingeleitet und normalerweise (ohne dazwischen angehalten zu werden) mit einer Byteübertragung an TV zusammen mit einer Bestätigung von TFM abgeschlossen wird. Die Logik von TV ist so ausgelegt, dass sie, wenn sie eine anstehende (nicht bestätigte) Datenabrufanforderung an TFM hat, diese Anforderung zurückzieht, wenn sie angehalten wird, und den Status sichert, wobei es erforderlich ist, dass sie dieselbe Anforderung erneut an TFM übergibt, wenn sie in Bezug auf denselben Kanal erneut gestartet wird. Die Logik von TFM ist so ausgelegt, dass sie, wenn sie angehalten wird, bevor sie einen Abruf von Sendedaten aus dem FIFOR vollständig durchgeführt hat, die Anforderung zurückzieht, so dass TV beim nächsten Bedienen desselben Kanals seine Anforderung erneut an TFM ausgibt. Da der Zeiger TBC, der die nächste Byteposition angibt, an der TFM Daten aus der FIFOR-Sendepufferwarteschlange abrufen soll, von TFM erst geändert wird, wenn das abgerufene Byte an TV übergeben wurde, ist, wenn TFM während eines unvollständigen Abrufs angehalten wird, keine besondere Maßnahme notwendig, um sicherzustellen, dass das richtige Byte von TFM aus dem FIFOR abgerufen wird, wenn TV seine Anforderung wiederholt.
- Die Form und der Inhalt des Wortes TFM_TS01 von TFM, das Zeitsicherungs- und -wiederladeoperationen unterworfen wird, sind in Fig. 32 gezeigt. Das Wort besteht aus 6 tatsächlich benutzten Bits und 26 reservierten/nicht benutzten Bit. Aus Gründen, die vorstehend erklärt wurden und in den nachstehenden Beschreibungen der Zustände 0 und 6 nochmals erörtert werden, enthält dieses Wort keine Sendedaten, die mit einem unvollständigen Abruf (einem Abruf, der noch nicht vollständig durchgeführt ist, wenn TFM von RSM angehalten wird) verbunden sind. Die 6 benutzten Bits enthalten ein 4-Bit-Feld TFMFC (TFM- Rahmenzählstand), das die Anzahl der Rahmen von Sendedaten angibt, die in Bezug auf den zugehörigen Kanal übertragen wurden, und ein 2-Bit-Feld TFMS (TFM-Zustand), das den Zustand von TFM in Bezug auf den zugehörigen Kanal als einen der Folgenden angibt: initialisiert (durch eine externe Maßnahme des SIO/IOP); siehe die folgende Beschreibung des SIO), normale Verarbeitung, die aufgrund eines Paritäts- oder Logikfehlers angehalten wurde oder die aufgrund einer Bedingung "Ende der Kette" angehalten wurde.
- Der logische Aufbau des TFM ist in Fig. 31 gezeigt. TFM umfasst die Zustandsmaschinenlogik 240, das Register 241 zur Speicherung von TDFSW-Informationen, die aus dem FIFOR/TDCR1 abgerufen wurden, das Register 242 zur Speicherung des TFM- Wortes TFM TSOl, das Zeitsicherungs- und -wiederladeoperationen unterworfen wird und zu dem Kanal gehört, der gerade im TFM verarbeitet wird, und die Multiplexer-/Auswahlschaltung 243, um Teile von Datenbytes der Sendedatenwörter auszuwählen, die bei 245 erscheinen, und um die ausgewählten Bytes an den Ausgang 246 zu übertragen.
- Das Register 241 empfängt über den FIFORDATA-Bus 245 TDCR1-Statusinformationen vom FIFOR und übergibt an seinem Ausgang Ausgabestatusdaten TFM_TDFSW_DATA, zum Beispiel für eine Schreibrückübertragung an das FIFOR, wenn die Logik 240 ein Steuerausgangssignal TFM_FIFOR_WR1 liefert. Das Zeitsicherungs- und -wiederladewort-Register (time swap word register) 242 wird während einer vom RSM durchgeführten Zeitsicherungs- und - wiederlademaßnahme von RSM_TS_BUS geladen und übergibt seinen aktuellen Inhalt am Ausgang TFM_TS01, der vom RSM im TSR gesichert werden soll, wenn TFM angehalten wird und die Logik 240 TFM_DONE übergibt (das anzeigt, dass sie sich in einem stabilen Zustand 0 befindet, der sich zur Sicherung des Zeitsicherungs- und -wiederladewortes eignet).
- Die Multiplexer-/Auswahlschaltung 243 wird von der Logik 240 betrieben, um die Auswahl von Sendedatenbytes in Bezug auf ihren Eingang 245 aus dem FIFOR vorzunehmen. Als Antwort auf Abrufanforderungen TV_TFM_REQ von TV werden Sendedaten wortparallel aus dem FIFOR an den Eingang 245 der Auswahlschaltung gelesen. Die Logik 240, die die Pufferspeicherzählstand-Zeigerinformationen TBC im TDFSW- Register 241 verwendet, wählt das entsprechende Byte aus, das TV am Ausgang 246, TFM_TV_DATA, übergeben werden soll. Wenn die Daten am Ausgang 246 zur Übertragung an TV gültig sind, aktiviert die Logik 240 TFM_TV_ACK an TV, und die Daten werden von TV sofort (innerhalb von 50 Nanosekunden) angenommen.
- Die Logik 240 aktiviert TFM_TV_EOC, wenn sie den ECD-(Ende der- Kette-festgestellt-)Anzeigeteil von TDFSW vom Register 241 an TV weiterreicht, und TFM_TV_EOF, wenn sie den EFD-(Ende des- Rahmens-festgestellt-)Anzeigeteil von TDFSW an TV weiterreicht. Die Logik aktiviert TFM_EDF_STATUS in Verbindung mit TFM_INT_REQ, wenn sie INT den Prozessendestatus übergibt (siehe die folgende Beschreibung des INT bezüglich Einzelheiten der Prozessende-Unterbrechungsstatusbehandlung). Andere Ausgangs- und Eingangssignale der Logik werden nachstehend bei der Beschreibung ihrer Zustände erklärt.
- Die Zustandslogik 240 hat die folgenden Zustände:
- - Der Zustand, in dem es für RSM "sicher" ist, Zeitsicherungs- und -wiederladeoperationen von TFM_TS01- Informationen durchzuführen (ohne dass die Möglichkeit des Verlusts oder einer Mehrdeutigkeit aufgrund einer vorübergehenden Interaktion zwischen TFM und entweder dem TV oder dem FIFOR oder der DMARQ besteht). In diesem Zustand kann TFM seine Anzeige "DONE" an RSM aktivieren (TFM_DONE), die anzeigt, dass sich TFM in einem stabilen Zustand befindet, der für eine sichere Durchführung von Zustand- und Zeitsicherungs- und -wiederladeoperationen (state time swapping) durch RSM geeignet ist. Wenn ein Eintritt in diesen Zustand nach einer Schlitzende-/Halt- Anzeige vom RSM (RSM_XMIT_EOS) erfolgt, speichert RSM den Inhalt des Registers 242 in dem zugehörigen Kanalspeicherbereich von TSR. Wenn der nächste Kanalschlitz zu einem aktiven Kanal gehört, übergibt RSM ein zugehöriges, zuvor gesichertes Statuswort bei RSM TS BUS und aktiviert RSM_TFM_LOAD, um die Logik 240 zu veranlassen, dieses Wort ins Register 242 zu laden. Nach der Aktivierung von RSM_TFM_LOAD setzt die Logik 240 auch ein internes Statusbit (nicht gezeigt) NEW TDFSW zurück, das, wenn es gesetzt ist, anzeigt, dass sich der Zustand von TDFSW/TDCR1 geändert hat und gegebenenfalls eine bestimmte Maßnahme durch TFM erforderlich macht, um die zugehörigen Informationen im FIFOR zu aktualisieten (siehe die nachstehende Erörterung der Zustände 2 und 6).
- Nachdem RSM die Zustand- und Zeitsicherungs- und - wiederladeoperation durchgeführt hat, startet er TFM neu, indem er RSM_XMIT_START aktiviert. Zu diesem Zeitpunkt geht die Zustandslogik in den Zustand 1 über, wenn das Sende-DMA-Freigabebit (TDE) im RSM_CCR eingeschaltet ist, und andernfalls in den Zustand 9.
- In diesem Zustand wird der Status geprüft, der während der Operation im Zustand 0 neu ins Register 242 geladen wurde (TFM_TS01 für den Kanal, der gerade bedient wird). Wenn der Status anzeigt, dass eine DMAC-Maßnahme erforderlich ist, um die Sendedatenwarteschlange im FIFOR zu füllen (das Feld TFMS zeigt den neu initialisierten Status an), wird eine Anforderung an DMARQ, TFM_DMARQ_SET, aktiviert, und die Logik geht in den Zustand 2 über. Die Anforderung an DMARQ bewirkt unmittelbar (innerhalb von 50 Nanosekunden), dass ein Anforderungssignalspeicher in der DMARQ (siehe die folgende Beschreibung dieses Elements) gesetzt und eine Bestätigungsanzeige DMARQ_TFM_REQ an die Logik 240 zurückgesendet wird. Die Anforderung an die DMARQ bewirkt eine asynchrone Maßnahme durch DMAC, die darin besteht, Sendedaten aus dem externen IOP-Speicher in das FIFOR abzurufen, und das Signal DMARQ_TFM_REQ wird erst ausgeschaltet, wenn DMAC seine Maßnahme durchgeführt hat (die mehr als einen Zyklus des TFM-Dienstes in Bezug auf den zugehörigen Kanal in Anspruch nehmen könnte). In Bezug auf seine DMARQ_TFM_REQ-Signalisierungsfunktionen arbeitet DMARQ jedoch synchron mit TFM, so dass das Signal jedesmal, wenn der zugehörige Kanal von TFM bedient wird, eingeschaltet bleibt, und zwar so lange, bis es durch eine Maßnahme des DMAC ausgeschaltet wird.
- Wenn der Zustandsstatus im Register 242 einen normalen Verarbeitungsstatus anzeigt, geht die Logik 240 in Abhängigkeit davon, ob DMARQ_TFM_REQ aktiv oder inaktiv ist, entweder in den Zustand 2 oder in den Zustand 3 über. Wie zuvor erwähnt wurde, arbeitet DMARQ synchron mit RSM und TFM in Bezug auf diese DMARQ TFM REQ- Bestätigungssignalisierungsfunktion (siehe auch die folgende Beschreibung der DMARQ), obgleich DMAC beim Bedienen einer TFM-Anforderung für das Wiederauffüllen des FIFOR asynchron arbeitet, und die Funktion wird in Bezug auf einen beliebigen Kanal nur deaktiviert, wenn DMAC die erforderliche Maßnahme vollständig durchgeführt hat. Daher ist der aktive Zustand dieses Signals unweigerlich mit dem Kanal verbunden, der gerade von TFM bedient wird, und er zeigt an, dass die angeforderte DMAC-Funktion (Auffüllen der FIFOR-Warteschlange) nicht vollständig durchgeführt wurde.
- - Wenn der Zustandsstatus die Feststellung eines Fehlers oder einer Bedingung "Ende der Kette" vom vorherigen Verarbeitungsintervall desselben Kanals anzeigt, geht die Logik in den Zustand 9 über.
- - In diesem Zustand (in den vom Zustand 1 oder vom Zustand 6 aus eingetreten wird) wartet die Zustandslogik, bis der Sendedatenpufferspeicher im FIFOR über eine DMAC-Maßnahme aufgefüllt wird, die durch eine frühere Aktivierung von TFM_DMARQ_SET in Bezug auf den gerade bedienten Kanal angefordert wurde.
- - Die Anzeige, dass diese Maßnahme vollständig durchgeführt wurde, erfolgt, wenn DMARQ_TFM_REQ in Bezug auf den Kanal ausgeschaltet wird, der gerade bedient wird (siehe Zustand 1, der vorstehend erörtert wurde). Wenn die Maßnahme während des aktuellen Schlitzes vollständig durchgeführt wird, geht die Logik in den Zustand 3 über.
- - Wenn das Ende des Schlitzes vor der vollständigen Durchführung empfangen wird (RSM_XMIT_SOS), geht die Logik in Abhängigkeit davon, ob der interne Signalspeicher NEW_TDFSW gesetzt wurde und anzeigt, dass TDFSW geändert worden ist, in den Zustand 12 oder den Zustand 0 über. Wenn der Signalspeicher gesetzt wurde, aktiviert die Logik TFM_FIFOR_WR1, bevor sie in den Zustand 12 übergeht (um die Schreiboperation des geänderten TDFSW vom Ausgang TFM_TDFSW_DATA in das FIFOR/TDCR1 einzuleiten). Wie zuvor erwähnt wurde, wird dieser Signalspeicher nur gesetzt, wenn TDFSW aufgrund der vollständigen Durchführung einer angeforderten Maßnahme geändert wurde, und der Signalspeicher wird zu Beginn eines jeden neuen Schlitzes unweigerlich zurückgesetzt; daher bedeutet sein Auftreten im gesetzten Zustand während eines beliebigen Schlitzes immer, dass eine angeforderte Maßnahme in Bezug auf den Kanal, der gerade bedieht wird, vollständig durchgeführt wurde und dass zugehöfige neue TDFSW-Informationen im FIFOR gespeichert werden müssen.
- Wenn TV_TFM_REQ aktiv ist (TV stellt eine Anforderung für den Abruf von Daten), aktiviert die Logik TFM_FIFOR_RD2, um einen Punkt-zu-Punkt-Abruf (bäck-to-back fetching) von Status-(TDCR1-) und Sendedaten-(TDCR2-)Wörtern aus dem FIFOR einzuleiten, und geht in den Zustand 4 über. Der Datenabruf ergibt alle 4 Bytes der TDCR2-Warteschlange, aber die Logik nimmt die Multiplexer-/Auswahlschaltung 243 in Betrieb, um nur ein einziges Byte auszuwählen, das an TFM_TV_DATA erscheint, wobei der Pufferspeicher- Zählstandzeiger TBC in dem abgerufenen TDFSW verwendet wird. Bei der Ankunft wird das Statuswort ins Register 241 gestellt, und das ausgewählte Datenbyte wird über die Auswahlschaltung 243 und TFM_TV_DATA sofort TV übergeben. Wenn diese Maßnahmen vollständig durchgeführt wurden, wird der Wert von TBC so eingestellt, dass er auf das nächste abzurufende Datenbyte zeigt, und der Signalspeicher NEW_TDFSW wird gesetzt.
- - Wenn während dieses Zustands die Schlitzende- (Halt-)Anzeige RSM_XMIT_EOS empfangen wird, geht die Logik in Abhängigkeit des Zustands von NEW_TDFSW entweder in den Zustand 12 oder den Zustand 0 über. Wenn dieser Signalspeicher gesetzt ist, aktiviert die Logik TFM_FIFOR_WR1 (um die neuen TDFSW-Informationen in das FIFOR zurückzuschreiben) und geht in den Zustand 12 über. Wenn der Signalspeicher nicht gesetzt ist, geht die Logik in den Zustand 0 über.
- - Wenn FIFOR die erste Leseanforderung bestätigt (Zustand 3), indem er FIFOR_TFM_RD_ACK aktiviert, werden die TDFSW- Informationen im Register 241 zwischengespeichert, und die FIFOR-Paritätsanzeige (FIFOR_PARITY_ERROR) wird geprüft. Wenn ein Paritätsfehler angezeigt wird, setze den Status so, dass er einen Paritätsfehler anzeigt, und gehe in den Zustand 11 über. Gehe andernfalls in den Zustand 13 über, um Vorbereitungen für die Ankunft der Sendedaten von der zweiten Leseanforderung (die im Zustand 3 ausgegeben wurde) zu treffen.
- - Wenn die Logik von RSM_XMIT_SOS angehalten wird, aktiviert sie TFM_FIFOR_WR1 und geht in den Zustand 12 über, wenn der Signalspeicher NEW_TDFSW gesetzt ist. Wenn der Signalspeicher nicht gesetzt ist, geht sie in den Zustand 0 über.
- - In diesem Zustand kommt der Datenteil der im Zustand 3 ausgegebenen zweifachen Leseanforderung an FIFOR_DATA an und wird ohne ausdrückliche Bestätigung vom FIFOR empfangen. Die empfangenen Daten sind ein ganzes Wort (TDCR2), und ein Byte dieses Wortes wird in Abhängigkeit vom Zählwert des TDFSW-Pufferspeichers (TBC), der während des Zustands 4 im Register 241 gespeichert wurde, von der Logik ausgewählt. Das ausgewählte Byte wird am Ausgang TFM_TV_DATA übergeben, und wenn es an dieser Stelle gültig ist, wird TFM_TV_ACK aktiviert, und das NDI-Bit im TDFSW wird ebenfalls TV als TFM_TV_NID übergeben. Wenn TBC anzeigt, dass das Byte, das gerade ausgewählt wird, das letzte Byte in der TDCR2-Warteschlange ist, werden TV auch der Anzeiger "Ende der Kette"(ECD) und der Anzeiger "Ende des Rahmens" (EFD) im TDFSW (am Ausgang des Registers 241) über TFM_TV_EOC beziehungsweise TFM_TV_EOF übergeben. Wenn diese Maßnahmen vollständig durchgeführt wurden, geht die Logik in den Zustand 10 über.
- - Wenn die Logik von RSM angehalten wird und NEW_TDFSW gesetzt ist, aktiviert die Logik TFM_FIFOR_WR1 und geht in den Zustand 12 über. Wenn sie angehalten wird und der Signalspeicher nicht gesetzt ist, geht die Logik in den Zustand 0 über.
- - Der Eintritt in diesen Zustand erfolgt aus dem Zustand 5 über den Zustand 10.
- - Wenn sowohl das Ende der Kette als auch das Ende des Rahmens im TDFSW, das gerade im Register 241 gehalten wird, angezeigt werden, wird der übertragene Rahmenzählstand (TFMFC im TFM_TS01-Register 242) um eins erhöht, der Zustandsstatus (TFMS im Register 241) wird angepasst, um anzuzeigen, dass die Bedingung "Ende der Kette" erreicht ist, und die Logik geht in den Zustand 11 über. Wenn nur das Ende der Kette angezeigt wird, wird nur der Zustandsstatus TFMS geändert, um anzuzeigen, dass die Bedingung "Ende der Kette" erreicht ist, und die Logik geht in den Zustand 11 über. Wenn nur das Ende des Rahmens angezeigt wird, wird der Rahmenzählstand um eins erhöht, TFM_DMARQ_SET wird aktiviert, und die Logik geht in den Zustand 2 über. Wenn weder das Ende der Kette noch das Ende des Rahmens angezeigt werden, wird TFM_DMARQ_SET aktiviert, und die Logik geht in den Zustand 2 über.
- - Dieser Zustand unterscheidet sich vom Zustand 3 dahingehend, dass TDFSW gerade im Register 241 bereitsteht; wenn TV während dieses Zustands Daten anfordert, aktiviert die Logik folglich nur eine einzige Leseöpetation, TFM_FIFOR_RD1, in Bezug auf FIFOR/TDCR2 und geht in den Zustand 8 über.
- - Wenn die Logik von RSM angehalten wird und NEW-TDFSW gesetzt ist, aktiviert die Logik TFM_FIFOR_WR1 (um das geänderte TDFSW in das FIFOR zu schreiben) und geht in den Zustand 12 über. Wenn sie angehalten wird und TDFSW unverändert ist, geht sie in den Zustand 0 über.
- - Wenn Daten aus dem FIFOR ankommen, werden die TBC-Bits im TDFSW zur Auswahl des entsprechenden Bytes verwendet, und der TBC-Wert wird ebenfalls geprüft, um festzustellen, ob sich das Byte, das gerade ausgewählt wird, in der letzten Warteschlangenposition befindet (d. h., ob die Warteschlange durch die Übertragung dieses Bytes entleert wird). Wenn das ausgewählte Byte das letzte Byte ist, werden die ECD- und EFD-Anzeiger im TDFSW mit dem ausgewählten Datenbyte TV übergeben, und die Logik geht in den Zustand 6 über. Wenn das ausgewählte Datenbyte nicht das letzte Byte in der Warteschlange ist, wird der TBD- Wert aktualisiert, damit er auf das nächste Byte in der Warteschlange zeigt, NEW_TDFSW wird gesetzt, und die Logik geht in den Zustand 7 über.
- - Wenn die Logik von RSM angehalten wird und NEW_TDFSW gesetzt ist, aktiviert die Logik TFM_FIFOR_WR1 (um den geänderten TDFSW in das FIFOR zu schreiben) und geht in den Zustand 12 über. Wenn sie angehalten wird und TDFSW unverändert ist, geht die Logik in den Zustand 0 über.
- - In diesem Zustand (der aus dem Zustand 1 oder dem Zustand 11 erreicht wird) stellt die Logik anhand einer Prüfung fest, ob TDFSW aktualisiert werden muss. Wenn ja, geht die Logik in den Zustand 12 über. Wenn nicht, geht die Logik in den Zustand 0 über.
- - Das vom FIFOR während des Zustand 4 empfangene TDFSW wird auf Gültigkeit geprüft, indem seine Warteschlangenanfang- (TOPQ-) und Pufferspeicherzählstand-(TBC-)Zeiger ausgewertet werden.
- - Wenn TOPQ auf die erste Byteposition in der TDCR2- Warteschlange und TBC auf die letzte Byteposition in der Warteschlange zeigen, geht die Logik in den Zustand 6 über. Wenn TOPQ auf die erste Position und TBC auf eine andere als die letzte Position zeigen, geht die Logik in den Zustand 7 über.
- - Wenn TOPQ auf die zweite Byteposition und TBC auf die erste Byteposition zeigen, ist TDFSW ungültig. In diesem Fall wird der Zustandsstatus TFMS so gesetzt, dass er einen Fehler anzeigt, und die Logik geht in den Zustand 11 über. Wenn TOPQ auf die zweite Byteposition und TBC auf die letzte Byteposition zeigen, geht die Logik in den Zustand 6 über. Wenn TOPQ auf die zweite Byteposition und TBC auf eine andere als die erste oder die letzte Byteposition zeigen, geht die Logik in den Zustand 7 über.
- - Wenn TOPQ auf die dritte Bytestelle und TBC entweder auf die erste oder die zweite Bytestelle zeigen, ist TDFSW ungültig. Der Zustandsstatus wird so gesetzt, dass er einen Fehler anzeigt, und die Logik geht in den Zustand 11 über. Wenn TOPQ auf die dritte Bytestelle und TBC auf die letzte Bytestelle zeigen, geht die Logik in den Zustand 6 über. Wenn sowohl TOPQ als auch TBC auf die dritte Bytestelle zeigen, geht die Logik in den Zustand 7 über.
- - Wenn TOPQ auf die letzte Bytestelle und TBC auf dieselbe Bytestelle zeigen, geht die Logik in den Zustand 6 über. Wenn TOPQ auf die letzte Bytestelle und TBC auf eine beliebige andere Bytestelle zeigt, wird der Fehlerzustaridsstatus gesetzt, und die Logik geht in den Zustand 11 über.
- - Bevor sie diesen Zustand verlässt, wird der TBC- Sendedatenbytezeiger so eingestellt, dass er auf das nächste Byte zeigt, das aus dem FIFOR abgerufen werden soll, wenn die nächste Anforderung von TV empfangen wird (sofern er nicht auf die letzte Bytestelle zeigt). Es sei angemerkt, dass in diesen Zustand aus dem Zustand 5 eingetreten wird, vorausgesetzt, dass der Abrufvorgang der Sendedaten des letzteren Zustands in Bezug auf TV abgeschlossen ist. Man beachte auch, dass, wenn der Zeiger TBC zu diesem Zeitpunkt auf die letzte Bytestelle zeigt, eine Anforderung für eine DMAC-Maßnahme übergeben worden ist, welche die Aktivierung von DMARQ_TFM_REQ zur Folge hat (die dem TFM anzeigt, dass die Warteschlange bedient wird), und nachdem dieses Signal deaktiviert worden ist (durch DMAC, nachdem der Dienst erbracht worden ist), muss die TFM-Zustandslogik die neuen, vom DMAC gelieferten TDFSW-Informationen abrufen, die den neuen TBC- und den neuen TOPQ-Wert enthalten.
- - Aktiviere über TFM_PARITY-ERROR eine Unterbrechungsanforderung an INT, wenn der Zustandsstatus einen Paritätsfehler anzeigt, und andernfalls über TFM_INT_REQ, und gehe in den Zustand 9 über. Die Aktivierung der letzteren Anforderung zeigt INT an, dass TFM_FDP_STATUS, der gerade von der Logik aktiviert wurde, gültig ist (siehe die folgende Beschreibung des INT bezüglich Einzelheiten darüber, wie diese Informationen verarbeitet werden).
- - Warte, bis das FIFOR die Schreibanforderung TFM_FIFOR_WR1 bestätigt, die in einem beliebigen anderen Zustand ausgegeben wurde (um TDFSW zu aktualisieren). Wenn FIFOR_TFM_WR_ACK aktiv wird, deaktiviere die Schreibanforderung, und gehe in den Zustand 0 über.
- - Dieser Zustand dient dazu, einen Abgleich mit der Zeitsteuerung des FIFOR in Bezug auf die zweite Leseoperation eines Paares von aufeinanderfolgenden Leseanforderungen vorzunehmen, die von TFM_FIFOR_RD2 eingeleitet wurden. Der nächste Zustand ist der Zustand 5.
- Die Meldung von Unterbrechungen in Bezug auf den IOP/Host wird vom Unterbrechungsbehandlüngs-(INT-) und vom untergeordneten E/A-(SIO-)Segment gehandhabt. INT überwacht Anforderungen in der gesamten IDLC und von den L1-Schaltungen, sowohl jene, die mit Übertragungskanalereignissen verbunden sind, als auch jene, die mit Hardwareausfällen verbunden sind, übergibt dem SIO zugehörige Unterbrechungsanforderungen zusammen mit zugehörigen Vektorinformationen, die auf die Unterbrechungsquelle zeigen, und verwaltet die Speicherung der zugehörigen Statusinformationen im TSR und einem der gemeinsamen INT- Register, das nachstehend erörtert wird (IHEISR). SIO übergibt die Unterbrechungsanforderungen und Vektoren dem IOP/Hostsystem und stellt vom IOP zum TSR und den Registern in sowohl der IDLC als auch den L1-Schaltungen Zugriffspfade bereit, um dem IOP die Möglichkeit zu geben, gespeicherte Statusangaben, die zu Unterbrechungsanforderungen gehören, asynchron abzurufen (siehe z. B. Pfad 89, Fig. 5, sowie die folgende Beschreibung des SIO). Obwohl das SIO an anderen Prozessen als der Unterbrechungsbehandlung beteiligt ist (Initialisierungs-/ Rücksetzfunktionen, dynamische Programmierung des Zeitsicherungs- und -wiederladestatus usw.), wird es in diesem Abschnitt beschrieben, da es wesentlich an der Übertragung von Unterbrechungsanforderungen und Statusinformationen beteiligt ist.
- INT überwacht Anforderungen, die sich auf meldbare Ereignisse in der gesamten IDLC und von den L1-Schaltungen beziehen, setzt einen Vektor zusammen (1 Byte), der die Quelle der zugehörigen Bedingung oder des zugehörigen Ereignisses angibt, überwacht die Speicherung von Statusinformationen, die sich auf das Ereignis/die Bedingung beziehen, und reicht den Vektor zusammen mit einer Anforderung an das SIO weiter. SIO übergibt dem IOP entsprechende Anforderungen über SIO_INT (Fig. 43), einer Leitung, die ständig vom IOP überwacht wird. Wenn diese Leitung aktiv und der IOP verfügbar ist, um sich mit ihr zu befassen, bestätigt der IOP die Anforderung und ruft den zugehörigen Vektor vom SIO ab. Wenn er zur Durchführung des erforderlichen Unterbrechungsbehandlungsprozesses bereit ist, führt er mit Hilfe des Vektors eine Tabellensuchoperation durch, mittels der die IDLC- oder die L1-Unterbrechungsquelle ermittelt wird, und ruft die zugehörigen Statusinformationen über SIO ab.
- Ereignisse, welche die IDLC dem INT melden kann, fallen unter drei Hauptkategorien: Prozessende-(EOP-)Kanalunterbrechungen, kanalbezogene Fehlerunterbrechungen und Hardwarefehlerunterbrechungen. EOP und kanalbezogene Fehlerunterbrechungen haben jeweils 32 Unterkategorien, die einzelnen Quellenkanälen entsprechen. EOP-Unterbrechungen zeigen erwartete Ereignisse in einzelnen Kanälen an (z. B. die Feststellung des Rahmenendes). Kanalbezogene Fehlerunterbrechungen zeigen Hardwarefehlerbedingungen an, die sich auf bestimmte Kanäle auswirken (z. B. Paritätsfehler beim Abruf der Daten oder Zustandsinformationen eines bestimmten Kanals aus einem der RAMs der IDLC). Hardwarefehlerunterbrechungen zeigen schwerwiegende Hardwarefehlerbedingungen an, die sich möglicherweise auf alle Kanäle auswirken.
- Zwei Vektorkategorien werden für Anforderungen vorgesehen, welche die L1-Schaltungen stellen. Diese unterscheiden L1- Anforderungen, die sich auf Hardwarefehlerereignisse beziehen, und Kanalbedingungs-/-fehlerereignisse. L1-Anforderungen/- Vektoren wird eine höhere Priorität eingeräumt, so dass sie vor kanalbezogenen IDLC-Anforderungen, aber nicht vor nicht kanalbezogenen IDLC-Hardwarefehlern bedient werden. In Bezug auf jeda Unterbrechungskategorie wird von INT ein entsprechender Vektor gebildet und SIO/IOP mit einer zugehörigen Anforderung übergeben. Statusinformationen, die sich auf Anforderungen beziehen, die von L1 und der IDLC stammen, werden in den L1-Schaltungen beziehungsweise der IDLC gespeichert und über eine asynchrone Maßnahme von IOP/SIO abgerufen. Statusinformationen in Bezug auf IDLC-Hardwarefehler werden in einem INT-Register (IHEISR) und der Status in Bezug auf kanalbezogene IDLC-Ereignisse und Fehlerbedingungen wird im TSR gespeichert (siehe die nachstehende Erörterung der EOPISR- Warteschlangen und der CEISR-Regtsterspeicherbereiche).
- Der von INT erzeugte und SIO/IOP übergebene Vektor zeigt die Unterbrechungskategorie/-quelle an. Die Bildung und die Verwendung des Vektors werden nachstehend im Abschnitt 12.2.6 beschrieben. Die Formate und die funktionale Händhabung der IDLC-Statusparameter werden als Nächstes beschrieben.
- Diese zeigen bestimmte erwartete Ereignisse in Übertragungskanälen an (z. B. die Feststellung von Ereignissen "Ende des Empfangsrahmens" und "Ende der Sendekette" in Bezug auf Empfangs- und Sendeprozesse usw.). Zugehörige Prozessendeunterbrechungsstatus-(EOPIS-)Wörter (mit einer Länge von jeweils 32 Bit) werden von einzelnen Empfangs- und Sendeelementen zwischengespeichert und von RSM unter der Steuerung von INT in Speicherbereichen des Prozessende- Unterbrechungskanalregisters (EOPISR) im TSR (Fig. 6) gespeichert.
- Jedem Kanal wird eine Warteschlänge mit 16 solcher Speicherbereiche im TSR zugeordnet (EOPISR01 bis EOPISR16, Fig. 6, 41), die von INT und IOP als Umlaufpufferspeicher verwaltet wird. Jeder Kanal hat auch einen einzelnen Registerspeicherbereich (CEISR) imTSR, um ein kanalbezogenes Fehlerunterbrechungsstatus-(CEIS-)Wort zu speichern, das nachstehend beschrieben wird. Informationen, die im CEISR eines jeden Kanals gespeichert werden, zeigen den Status der EOPISR- Warteschlange dieses Kanals an und enthalten einen Zeiger auf den nächsten Status-Speicherplatz (NSL-Zeiger), der den nächsten Speicherplatz in der Warteschlange anzeigt, der zur Speicherung der neuen EOPIS-Informationen verfügbar ist (siehe den folgenden Abschnitt 12.2.2). Der NSL-Zeiger wird von INT_ geändert, während ein Eintrag in den Warteschlangenspeicherplatz geschrieben wird, der von dem aktuellen Wert des Zeigers gekennzeichnet wird.
- Bei jedem IDLC-Vektor, der eine EOP-Bedingung anzeigt, muss der IOP ein einzelnes EOPIS-Wort aus der Warteschlange lesen (über SIO). Eine Anzeige (NOV) der Anzahl der Vektoren, die gerade in der Warteschlange eines jeden Kanals anstehen, wird im jeweiligen CEISR/TSR-Speicherbereich abgelegt. Diese Anzeige wird von INT in Verbindung mit dem Schreiben von Statuseinträgen in die Warteschlange erhöht und von INT verringert, wenn es die Meldung empfängt, dass ein oder mehrere Statuswörter vom IOP aus der Warteschlange entfernt wurden (siehe die nachstehende Erörterung der Betriebsarten mit einem und mit mehreren Zuständen). Daher zeigt sie den "Belegungsgrad" der Warteschlange an. INT stellt einen drohenden Überlauf einer Warteschlange fest, wenn eine bestimmte Anzahl von Vektoren in dieser Warteschlange anstehen (die Anzahl ist bei Betriebsarten mit einem und mit mehreren Zuständen, die im Folgenden beschrieben werden, unterschiedlich).
- Es wird weder eine ausdrückliche Meldung gemacht, wenn ein Wort aus der Warteschlange entfernt wurde, noch besteht die Notwendigkeit, die Reihenfolge der Einträge in die Warteschlange nach solchen Entnahmen auszurichten. Außerdem muss der IOP Warteschlangeneinträge, die in der Betriebsart mit mehreren Zuständen vorgenommen wurden, die nachstehend erörtert wird, nicht lesen, während er sich in der Unterbrechungsbehandlungsroutine befindet, mit der er zugehörige Vektoren verarbeitet (wodurch diese Routinen vereinfacht werden können), und er muss auch nicht die durch ihn vorgenommene Verarbeitung solcher Einträge in Übereinstimmung mit seiner Statusabrufverarbeitung bestätigen, obwohl er die Art und Weise, in der er dies handhabt, über Aktualisierungen von HPCR-Umschalt- und SWRC-Parameter meldet, wie nachstehend erörtert wird. Dies mindert Echtzeitbeschränkungen, die andernfalls dem IOP- Statusabrufprozess auferlegt würden.
- Die oben erwähnten HPCR-Umschalt- und SWRC- (Statuswortlesezählstand-)Funktionen werden von INT_überwacht, um festzustellen, wann die CEISR-Funktionen NOV und NSL aktualisiert werden müssen, wobei Letztere festlegt, wann und wo neue EOPIS-Einträge vorgenommen werden. Das HPCR-Register, in dem der Umschaltparameter und SWRC gespeichert werden, befindet sich im RSM (siehe die vorstehende Beschreibung des RSM).
- Es gibt auch keine Beschränkung hinsichtlich der Anzahl der Warteschlangeneinträge, die vom TOP auf einmal abgerufen werden können (in der Betriebsart mit mehreren Zuständen). Wenn eine Warteschlange zu einem bestimmten Zeitpunkt 10 EOPIS-Wörter enthält, ist es dem IOP/SIO folglich möglich, alle 10 (oder weniger) in einer Ausführung seines Abrufprozesses abzurufen. Da die Aktualisierung von Umschalt- und SWRC-Parametern durch den IOP im HPCR nicht eng an seine Warteschlangenabrufverarbeitung gebunden zu sein braucht, können mehr Einträge vom INT/RSM in die Warteschlange gestellt werden, nachdem der IOP auf frühere Einträge zugegriffen hat, und diese späteren Einträge können abgerufen werden, bevor die HPCR-Parameter aktualisiert werden. Somit ist es dem IOP bei der Aktualisierung des HPCR gestattet, Einträgen Rechnung zu tragen, die in getrennt durchgeführten Warteschlangenzugriffsprozessen abgerufen werden.
- Es sollte sich für den Fachmann von selbst verstehen, dass Übertragungen fernen Ursprungs Anzeigen der Zahl der Rahmen, die an fernen Knoten empfangen wurden, bereitstellen. Somit kann der IOP die Anzahl der Rahmen, die von der IDLC tatsächlich gesendet wurden, mit der Anzahl der Rahmen vergleichen, die vermutlich an fernen Knoten empfangen wurden. Da der IOP auch jederzeit weiß, wie viele Senderahmen der IDLC/DMAC zur verketteten Abwicklung zur Verfügung gestellt wurden, kann der IOP auf Wunsch die Anzahl der zur Verfügung gestellten Rahmen in Bezug auf seine Handhabung des Empfangsrahmenende-Unterbrechungsstatusabrufs (EOPISR- Warteschlangeneinträge) regeln, um sicherzustellen, dass kein Warteschlangenüberlauf entstehen kann, wenn ein abnormaler Betrieb der IDLC ausgeschlossen werden kann.
- Der hier zu erwähnende Punkt ist, dass die gleichmäßige Verteilung der Übertragungslasten und der Unterbrechungsstatus- Abrufaktivitäten eine Funktion des IDLC-Konzepts ist, mir der eine ineffiziente Belegung der Kanalverbindungen im Netzwerk vermieden und gleichzeitig eine Überlastung des IOP verhindert werden sollen. Es sollte jedoch auch klar sein, dass diese gleichmäßige Lastverteilung hier vereinfacht wird, da die Abrufverarbeitung von IDLC-EOPISR-Warteschlangeneinträgen (die Empfangsrahmen und Ereignisse darstellen) durch den IOP in der Betriebsart mit mehreren Zuständen getrennt von der Verarbeitung der zugehörigen Untetbrechungsvekt oren und auch getrennt von der Aktualisierung von Umschalt- und SWRC- Parametern durchgeführt werden kann (d. h., dass diese Funktionen effizient innerhalb der IOP auf der Grundlage mehrerer Tasks ausgeführt werden können). Es sollte ebenfalls klar sein, dass die Status-Warteschlangensteuerung und die - Warteschlangenverwaltung bei der IDLC-Vektorübergabe auf der Otundlage mehrerer Tasks in effizienter Weise getrennt vorgenommen werden können.
- Ein weiterer anzumerkender Punkt ist, dass EOPIS-Einträge nur in Bezug auf Kanäle vorgenommen werden, die für Protokollübertragungen (z. B. HDLC) konfiguriert sind, im Unterschied zu freien Kanälen, die beispielsweise Sprachtelefonsignale übertragen (Letztere wickeln Daten in fortlaufenden Strömen ohne spezielle Rahmenbegrenzungsflaggen usw. ab, und die zugehörigen Verbindungen werden mittels des Austauschs von Steuersignalen aufgebaut, die in getrennten Kanälen übertragen werden).
- Die Form des EOPIS-Wortes ist in Fig. 40 gezeigt. Die Anzahl der Bits in jedem Feld ist in Klammern unterhalb des mnemonischen Zeichens des Feldes angegeben. Das "A" unterhalb des Feldes IQO (Unterbrechungsstatus-Überlaufanzeiger) zeigt an, dass dieser Parameter immer als gültig betrachtet wird und deshalb von der IOP-Routine immer geprüft werden sollte, wenn der zugehörige Eintrag aus der Warteschlange entfernt wird. Wenn IQO so gesetzt wird, dass es einen Überlauf der Warteschlange anzeigt, sind keine weiteren Einträge in die Warteschlange erlaubt, bis der CEISR-Parameter des entsprechenden Kanals neu initialisiert wurde (von TOP/SIO).
- Die Felder mit der Bezeichnung "T" und "R" sind jeweils mit Übertragungs- und Empfangsprozessbedingungen verbunden. Die T- Felder bestehen aus drei 1-Bit-Anzeigen: XMTT EOC (sende "Ende der Kette erreicht oder nicht erreicht"), XMIT ABT/IDL (sende "Abbruch-/Leerzeichen gesendet oder nicht gesendet"; gesendet als Folge der Feststellung eines Unterlaufs im Kanal), XMIT UNDR (sende "Unterlauf angetroffen oder nicht angetroffen").
- Die R-Felder enthalten vier 1-Bit-"Quellen"-Angaben und sechs Statusangaben; von den Letzteren sind vier 1-Bit-Parameter, eine ist ein 4-Bit-Parameter und die verbleibende ist ein 16- Bit-Term. Zu den Quellenangaben gehören Folgende: SRC EOF (die Quelle ist ein angetroffenes Rahmenende oder kein angetroffenes Rahmenende), SRC ABC (die Quelle ist eine angetroffene Adressengrenzprüfung oder keine angetroffene Adressengrenzprüfung), SRC ABT (die Quelle ist eine empfangene Abbruchanzeige oder ist keine empfangene Abbruchanzeige) und SRC IDL (die Quelle ist eine empfangene Leerlaufzustandanzeige oder ist keine empfangene Leerlaufzustandanzeige). Zu den Statusanzeigen gehören Folgende: RDD (empfange "DMA gesperrt", die anzeigt, ob der DMA-Empfang im CCR des jeweiligen Kanals gesperrt oder freigegeben ist), TX CNT (Zählstand der Anzahl der Rahmen, die in der aktuellen Kette bis zu dem Zeitpunkt gesendet wurden, zu dem die entsprechende Unterbrechungsanforderung übergeben wurde), RCV OAS (empfange den Oktettausrichtungsstatus, der zum Zeitpunkt der Übergabe der Anforderung gültig war), RCV CRC (zum Zeitpunkt der Übergabe wurde ein CRC-Fehler festgestellt oder nicht festgestellt), RCV OVF (an der Empfangsseite des FIFOR entstand ein Überlauf oder entstand kein Überlauf) und RCV DBC (empfange den DMA-Bytezählstand, der die Anzahl der Datenbytes anzeigt, die während des gerade empfangenen Rahmens mittels direktem Speicherzugriff im Speicher des IOP abgelegt wurden; in Bezug auf HDLC-Protokolle enthält diese Anzeige die Gesamtzahl der Daten- und CRC-Bytes und ist nur gültig, wenn RCV OVF keinen Überlauf anzeigt und einer der Quellenanzeiger SRC ABT, SRC IDL oder SRC EOF aktiv ist). Folgendes sollte in Bezug auf die vorstehenden R-Felder angemerkt werden:
- Wenn EOF aktiv ist, ist der Sendezählstand TX CNT gültig, und IOP sollte die Statusparameter prüfen, um die Länge der Daten · festzustellen, die mittels direktem Speicherzugriff in seinem Speicher abgelegt wurden (RCV DBC), und um festzustellen, ob während des Empfangs des Rahmens OAS-, CRC- oder OVF- Fehlerbedingungen angetroffen wurden.
- Wenn SRC ABC aktiv ist, ist der RCV-DBC-Status gültig. Sendeunterbrechungen werden weiterhin verarbeitet, aber Empfangsunterbrechungen werden unterdrückt. Der IOP beseitigt diese Bedingung, indem er den Empfang in dem entsprechenden Kanal sperrt, eine neue Grenzadresse programmiert und den Empfang wieder freigibt.
- Wenn SRC ABT aktiv ist, empfing der Kanal stillschweigend einen Rahmen, als das Abbruchsignal fernen Ursprungs erkannt wurde. Wenn dies geschieht, ist nur der RCV-DBC-Status in den Statusfeldern gültig. Die RCV-CRC-Statusänzeige wird aktiviert und sollte ignoriert werden.
- Wenn SRC IDL aktiv ist und der entsprechende Kanal im Halbduplexbetrieb betrieben wird, wird dem IOP wirksam mitgeteilt, dass die Kanalleitung umgeschaltet werden sollte, um die Übertragung in diesem Kanal zuzulassen. In diesem Fall ist nur der RCV-DBC-Status gültig. RCV CRC wird von der IDLC aktiviert, sollte aber ignoriert werden.
- Wenn RDD anzeigt, dass das Empfangs-DMA gesperrt ist, und SRC ABC inaktiv ist, sollte RCV DEC ignoriert werden (dieser Fall bedeutet, dass das DMAC zuvor gesperrt war und deshalb keine gültigen Daten mittels direktem Speicherzugriff im IOP-Speicher abgelegt werden konnten).
- TX CNT ist der kumulierte Zählstand der Anzahl der Rahmen, die von der IDLC übertragen wurden. Er wird aus mehreren Gründen von der IDLC in Bezug auf jedes EOPIS-Wort eingefügt, das zum Empfang eines Rahmens gehört (z. B. in die R-Felder). Aufgrund der Sende-DMA-Kettungsfähigkeit der IDLC (siehe die folgende Beschreibung des DMAC) wurde beschlossen, die Bandbreite und die Verarbeitungszeit des IOP-Busses aufrechtzuerhalten, indem auf IDLC-Unterbrechungen des lOP verzichtet wurde, um Übertragungen einzelner Rahmen zu melden. Um die Integrität auf der Empfangsseite einer jeden Vollduplexkanalverbindung zu erhalten, ist es jedoch notwendig, diese Informationen über die gesendete Anzahl von Rahmen dem IOP rechtzeitig zu übergeben, da empfangene Rahmen einen Empfangszählstand enthalten, der von entsprechenden Quellen dieser Rahmen gesendet wird und die Anzahl der Rahmen darstellt, die von der Quelle empfangen wurden. Somit benötigt der IOP den Zählstand der gesendeten Rahmen, damit er fehlerhafte Empfangszählstandanzeigen unterscheiden und die Integrität der Übertragung wahren kann (z. B. durch die erneute Übertragung von Rahmen, die tatsächlich nicht empfangen wurden).
- Ein weiterer Vorteil oder eine mögliche Anwendung zur Bereitstellung von rechtzeitigen Anzeigen der Anzahl von gesendeten Rahmen an den IOP in Bezug auf eine Einheit, wie zum Beispiel die IDLC, die über eine Sende-DMA-Kettungsfähigkeit verfügt, besteht darin, dass dem IOP ermöglicht wird, rechtzeitig Pufferspeicherbereich freizugeben, um verkettete Sendeaktivitäten dynamisch aufrechtzuerhalten. Unter Verwendung von TX CNT zur Prüfung, ob zumindest bestimmte Rahmen von der IDLC gesendet und an einer fernen Station empfangen wurden, kann der IQE neue Sendedaten zumindest in diejenigen Teile seines Pufferspeicherbereichs einfügen, welche die bereits gesendeten Daten dieser bestimmten Rahmen enthalten. Somit kann der IOP-Pufferspeicherbereich, der notwendig ist, um eine verkettete IDLC-Übertragung aufrechtzuerhalten, im Verhältnis zu der Speicherkapazität verringert werden, die notwendig wäre, wenn der IOP auf eine Anzeige "Ende der (Übertragungs-)Kette" von der IDLC warten müsste, bevor er Pufferspeicherbereich freigeben könnte.
- Wenn RCV OAS eine fehlerhafte Oktettausrichtung oder RCV CRC einen CRC-Fehler anzeigt, ist der entsprechende Rahmen offensichtlich fehlerhaft und sollte vom IOP verworfen werden.
- Wenn RCV OVF einen Überlauf des FIFOR anzeigt, zeigt der Wert von RCV DBC, wenn er nicht "0" ist, indirekt die Position des letzten Bytes an, das mittels direktem Speicherzugriff im IOP- Speicher abgelegt wurde, und ist gegebenenfalls zur Feststellung der Position im IOP-Speicher nützlich, ander die DMA-Übertragung des nächsten Empfangsrahmens beginnen sollte. Wenn der DBC-Wert "0" ist, ist zur Feststellung dieser nächsten Position keine weitere Berechnung erforderlich.
- Diese Unterbrechungen sind mit Hardwarefehlern verbunden, die nur einen bestimmten Kanal und keine anderen Kanäle betreffen; es sind entweder FIFOR-Paritätsfehler oder TSR-Paritätsfehler in Bezug auf einen Kanalspeicherbereich. Wie oben erwähnt wurde, enthält der zu diesen Unterbrechungen gehörende Status Parameter zur Verwaltung der EOPIS-Warteschlange des zugehörigen Kanals. Ein eindeutiger Vektor kann für die kanalbezogenen Fehlerunterbrechungen eines jeden Kanals erzeugt werden. Nach dieser Art von Unterbrechung muss der Kanal vor der Wiederverwendung gesperrt und erneut freigegeben werden.
- Die Form der CEISR-Informationen ist in Fig. 39 gezeigt. Es gibt 15 reservierte/derzeit nicht benutzte Speicherbereiche und 17 aktiv benutzte Felder. Die Letzteren beinhalten vier 1-Bit- Anzeigen WVA, PTV, IQO und SWA, zwei 2-Bit-Anzeigen PE und IM, einen 4-Bit-Parameter NSL und einen 5-Bit-Parameter NOV. Die aktiven Felder werden im folgenden Abschnitt 12.2.9 einzeln beschrieben.
- Diese betreffen schwerwiegende hardwarebezogene Fehler, die alle Kanäle betreffen können. Der zugehörige Status besteht aus einem IDLC-Hardwareunterbrechungsstatus-(IHEIS-)Wort, das in einem fest zugeordneten Register im INT_(dem IHEISR-Register) gehalten wird. Das Wort besteht aus 14 aktiv benutzten 1-Bit- Parametern, die mnemonische Bezeichnungen und die in Fig. 38 gezeigte Form haben. Die verbleibenden 18 Speicherbereiche im IHEISR-Register werden nicht benutzt/sind reserviert. Die 14 aktiv benutzten Anzeiger bestehen aus 10 "Status"-Anzeigern und 4 "Quellen"-Anzeigern.
- Die Statusanzeiger werden vom IOP ohne formale Unterbrechung von der IDLC aktiviert. Die zugehörigen Statusbedingungen treten auf, wenn die IDLC entweder als Folge des direkten Zugriffs des IOP/SIO oder als Folge einer DMAC-Operation einen Fehler feststellt, während sie versucht, mit dem IOP zu kommunizieren. Wenn solche Fehler festgestellt werden, verweigert die IDLC Bestätigungen an den IOP, welche die Erzeugung eine Zeitablauffehlers im IOP bewirken (was dazu führt, dass die IHEISR-Statusanzeiger ohne formale Unterbrechungsverarbeitung gesetzt werden). Quellenanzeiger werden als Folge einer aufgetretenen schwerwiegenden Fehlerbedingung aktiviert. Solche Fehlerbedingungen können typischerweise nicht behoben werden und zeigen gewöhnlich an, dass die IDLC nicht mehr funktionsfähig ist. Die Quellenbits sind für eine Fehlereingrenzung zu Diagnosezwecken hilfreich.
- Die einzelnen Status- und Quellenzeiger und ihre Verwendung werden im folgenden Abschnitt 12.2.9.2 beschrieben,
- Die IDLC kann während der Sendeverarbeitung in einem beliebigen Kanal drei bestimmte Unterbrechungen erzeugen (siehe die vorstehende Erörterung der "T"-Bitanzeigen des EOPISR): "Ende der Kette festgestellt", "Datenunterlauf festgestellt" und "Abbruch-/Leerzeichen gesendet". Wie zuvor erwähnt wurde, werden Unterbrechungen nicht zur Abarbeitung von einzelnen Protokolltahmenübertragungen erzeugt, da Informationen, die der IOP in Bezug auf solche Ereignisse benötigt, indirekt mit dem Empfangsrahmenende-Unterbrechungsstatus geliefert werden (über den in Letzteren eingefügten TX CNT).
- Der Prozess, der mit der Erzeugung der Unterbrechung "Ende der Kette festgestellt" endet, beginnt damit, dass das DMAC einen verketteten DCB-Befehl abruft, dessen ECI- (Kettenendeanzeige-)Bit aktiviert ist (siehe die folgende Beschreibung des DMAC bezüglich weiterer Informationen). In diesem Fall lässt der DBC sein EFI-(Rahmenendeanzeige-)Bit ebenfalls aktivieren. Diese Bedingung zeigt an, dass das letzte Byte der Sendedaten im IOP-Pufferspeicher, auf das der DCB zeigt, sowohl das Ende eines Rahmens als auch das Ende einer Kette darstellt (die letzten zu übertragenden Daten).
- Nachdem das letzte Datenbyte der Kette aus dem IOP- Pufferspeicher abgerufen wurde, speichert es das DMAC im FIFOR und aktiviert das ECD- und das EFD-Bit im TDCR1-Statuswort des Kanals im FIFOR. DMAC überwacht weiterhin die DMARQ auf Dienstanforderungen in Bezug auf denselben Kanal, obwohl das Ende der Kette festgestellt worden ist, da alle weiteren Maßnahmen in Bezug auf diese Bedingung vom TFM aufgerufen werden müssen.
- Wenn TFM das letzte Datenbyte der Kette aus dem FIFOR abruft und es TV übergibt, prüft er auch den ECD- und EFD-Anzeiger des TDCR1. Wenn Letztere gesetzt sind, werden sie TV übergeben (entweder getrennt oder zusammen mit dem letzten Datenbyte, wenn dieses Byte nicht bereits übergeben worden ist). Nachdem TFM den Senderahmenzähler aktualisiert hat, setzt er auch einen Anzeiger "Ende der Kette", der zu INT durchgestellt wird. Dies bewirkt, dass INT den Rahmenzählstand in Vorbereitung von dessen Einfügung in einem zugehörigen EPOIS-Wort zwischenspeichert, das in die EOPISR-Warteschlange eingegeben werden soll. TFM geht dann in einen Zustand "Ende der Kette" in Bezug auf den entsprechenden Kanal über und bleibt in diesem Zustand, bis der IOP das TFM_TS01-Statuswort neu initialisiert (in Verbindung mit der neuen Initialisierung des Kanals). Im Zustand "Ende der Kette" antwortet TFM nicht auf Datenanforderungen von TV in Bezug auf den entsprechenden Kanal, und er übergibt der DMARQ keine Sende-DMA-Anforderungen in Bezug auf diesen Kanal.
- Nachdem INT die Anzeige "Ende der Kette" empfangen und den Rahmenzählstand zwischengespeichert hat und während er synchron mit Kanalschlitzen arbeitet, setzt INT seinen Status-verfügbar- Anzeiger und stellt anhand einer Prüfung sicher, dass in der entsprechenden EOPISR-Warteschlange ein gültiger Speicherplatz für das nächste Statuswort verfügbar ist. Wenn RSM die auf INT bezogenen Statusvariablen am Ende des jeweiligen Kanalschlitzes auslagert, speichert er den Inhalt des Registers INT CEISR im CEISR-Speicherbereich des entsprechenden Kanals im TSR und prüft den Statuswort-verfügbar-Anzeiger. Wenn er diesen aktiviert vorfindet, speichert RSM den EOPIS (der am Ausgang INT_EOP von INT übergeben wird; siehe die folgende Erörterung der INT-Logik) in der EOPISR-Warteschlange des entsprechenden Kanals an dem Speicherplatz, auf den die Signalspeicher für den nächsten Speicherplatz im CEISR-Register im INT zeigen (siehe die folgende Erörterung der INT-Logik).
- Wenn der Kanal, der geräde bedient wird, keine anstehenden Unterbrechungen hat oder der Chip in einer Betriebsart mit nur einem Vektor arbeitet, erzeugt INT einen 1-Byte-Vektor, der die Quelle der Unterbrechung (Kanal und Bedingung) ausweist und übergibt ihn zusammen mit einer Änforderung an SIO. Sobald er zur Verfügung steht, speichert SIO den Vektor und die zugehörige Anforderung zwischen und steuert eine Unterbrechungsleitung auf dem IOP-Bus an (siehe die folgende Beschreibung des SIO). Später bestätigt der IOP die Bedingung "Unterbrechungsleitung aktiv", und zu diesem Zeitpunkt stellt SIO den Vektor in den Teil des IOP-Datenbusses mit den unteren Bytes. Zu einem noch späteren Zeitpunkt nimmt der IOP eine Verzweigung zu seiner Unterbrechungsbehandlungsprogrammroutine vor und ruft über SIO den EOPIS-Status aus der Warteschlange des entsprechenden Kanals ab.
- Während der Sendeverarbeitung in einem beliebigen Kanal entsteht ein Datenunterlauf, wenn sich TL1 im Zustand "Mitte des Rahmens" befindet (d. h. die Beginnflagge eines Rahmens und mindestens ein Bit an gültigen Daten gesendet hat), ihre beiden Datenregister leer sind (siehe vorstehende Beschreibung der TL1) und eine BTDM-Anforderung für das Versenden von Sendedaten empfangen hat.
- Wenn dies geschieht, setzt TL1 ein internes Statusbit, das einen Unterlauffehler anzeigt, und beginnt mit dem Versenden eines Abbruchmusters. Nachdem sie das Abbruchmuster verschickt hat, sendet TL1 das Füllmuster, das vom IFS-Feld im zugehörigen CCR angegeben wird. TL1 überwacht auch das TDE-Bit im zugehörigen CCR, um festzustellen, wann der entsprechende Kanal vom IOP neu initialisiert wurde. Nachdem sie festgestellt hat, dass das TDE-Bit gesperrt und erneut aktiviert wurde, löscht TL1 den internen Unterlauffehleranzeiger und überwacht den Daten-bereit-Anzeiger von TV. Wenn dieses Signäl aktiv wird, werden Daten von TV angenommen, und die normale Sendeverarbeitung wird wieder aufgenommen.
- TV überwacht den TL-Unterlaufstatusanzeiger und löscht den Inhalt seines Datenregisters, initialisiert den Anzeiger neu und wartet, bis er zurückgesetzt wird, bevor es die normale Verarbeitung wieder aufnimmt. Während es sich in diesem Abbruchzustand befindet, aktiviert TV das Datenanforderungssignal an TFM oder den Daten-bereit-Anzeiger an TL1 (TL_TL1_DATA_RDY) nicht.
- Wenn TL1 seinen Unterlaüffehleranzeiger setzt, löst sie durch einen Impuls auch eine zugehörige Anzeige an INT aus. Als Antwort darauf speichert INT den aktuellen Senderahmenzählstand von TFM zwischen, aktiviert den Status-verfügbar-Anzeiger an RSM und stellt RSM die Verschiebeadresse aus seinem internen CEISR-Reglster bereit, damit dieser den nächsten gültigen Eintragsspeicherbereich in der EOPISR-Warteschlange lokalisiert. Es erzeugt auch einen Vektor (siehe die folgende Erörterung von Vektoren) und reicht ihn zusammen mit einer Anforderung an SIO zur Übergabe an IOP weiter. RSM speichert das aktualisierte CEISR im TSR (in dem Speicherbereich, der sich durch Verknüpfung der Verschiebeadresse mit der Basisadresse der Warteschlange ergibt).
- TL1 sendet ein Abbruchmuster, wenn ein Unterlauf festgestellt wird oder der IOP die Abbruchanforderungsoption im CCR auf einen Wert setzt, der eine solche Maßnahme kennzeichnet. In Abhängigkeit von den Werten im ICS- oder im IFS-Feld im CCR sendet TL1 ein Füllmuster der ausgewählten Form zwischen Rahmen oder DMA-Ketten. Sie sendet auch ein Füllmuster, wenn der IOP die Abbruchanforderungs-CCR-Option auf einen bestimmten Wert setzt.
- Nachdem die Übertragung des Abbruchmusters abgeschlossen ist, löst TL1 durch einen Impuls den Abbruch-/Leerzeichen-gesendet- Anzeiger an INT aus, wodurch INT veranlasst wird, den Senderahmenzählstandwert zwischenzuspeichern und ein EOPIS- Statuswort und einen EOPIS-Vektor zu erzeugen, wie zuvor beschrieben wurde. Wenn die CCR-Abbruchanforderungsoption die Übertragung eines Leerzeichenmusters festgelegt hat, wird der Abbruch-/Leerzeichenanzeiger durch einen Impuls ausgelöst, nachdem sowohl das Abbruch- als auch das Leerzeichenmuster gesendet wurden.
- Während der synchronen Empfangsverarbeitung (in RL1, RV und RFM) antwortet RL1 auf Empfängsdaten-bereit-Anzeiger von der BTDM, um Empfangsdatenbits in die Prüfregister der RL1 zu schieben. In Bezug auf jedes Bit in einem Protokollkanal stellt RL1 fest, ob das Bit Teil einer Steuerzeichenfolge ist (Flagge, Abbruch-, Leerlaufzeichen) und schiebt das Bit entsprechend einer Transparenzfeststellung selektiv in ihr Empfangsdatenregister (wenn das Bit das erste Bit mit dem Wert "0" nach fünf aufeinanderfolgenden Bits mit dem Wert "1" ist, wird es gelöscht und andernfalls wird es behalten, indem es in das Datenregister geschoben wird). Wenn das Bit behalten wird, wird der Datenzählstand erhöht.
- Diese Verarbeitung der Bits wird fortgesetzt, bis der Datenzählstand den Wert 8 erreicht. Wenn dies geschieht und keine Steuerzeichenfolge festgestellt wird, wird ein Byte aus dem Datenregister an RV weitergeleitet (wobei RL1 durch einen Impuls einen Daten-bereit-Anzeiger auslöst und RV diesen bestätigt) und im Datenregister 0 von RV zwischengespeichert.
- Wenn RL1 feststellt, dass eine Steuerzeichenfolge empfangen wurde, löscht sie den Inhalt ihres Datenregisters und setzt ihren Datenzählstand zurück (Steuerzeichenfolgen werden nicht an RV weitergeleitet, obwohl Anzeigen ihres Empfangs an RV weitergeleitet werden). Anschließend aktiviert sie Anzeigen, die zu einer Unterbrechungsaktivität führen, wie nachstehend kurz dargelegt wird.
- Wenn festgestellt wird, dass eine empfangene Steuerzeichenfolge die erste Flagge eines Rahmens ist, stellt RL1 den Rahmenstatusanzeiger so ein, dass er den Beginn des Rahmens anzeigt. Wenn festgestellt wird, dass die Folge eine Endeflagge ist, wird der Rahmenstatusanzeiger so eingestellt, dass er das Ende des Rahmens anzeigt, und eine entsprechende Anzeige des Rahmenendestatus wird an RV weitergereicht. Danach löscht RL1 ihren Status und beginnt mit der Verarbeitung für den nächsten Rahmen.
- Wenn eine Abbruch- oder Leerzeichenfolge empfangen wird, setzt RL1 ihren Statusanzeiger auf den Anfangszustand zurück, löscht den Inhalt ihbes Datenregisters und den Datenzählstand, leitet eine zugehörige Abbruch- oder Leerzeichen-empfangen-Anzeige zusammen mit dem zugehörigen Status an RV weiter und löscht ihren Status, um wie bei der Feststellung des Rahmenendes mit der Verarbeitung eines neuen Rahmens zu beginnen.
- In jedem Rahmenschlitz ignoriert RV alle Eingaben von RL1, bis es eine Startanzeige vom RSM empfängt. Nach dem Empfang der Startanzeige prüft RV sein Datenregister 1, um festzustellen, ob es gültige Daten hält, die an das FIFOR weitergeleitet werden sollen. Wenn gültige Daten vorhanden sind, erzeugt RV eine ungerade Parität für sie, aktiviert einen Daten-bereit- Anzeiger an RFM, und nach dem Empfang einer Bestätigung setzt es eine Anzeige, die angibt, dass das Datenregister 1 leer ist. Wenn das Datenregister 0 zu diesem Zeitpunkt belegt ist, wird sein Inhalt sofort in das Datenregister 1 geschoben, und das Datenregister 0 wird als leer gekennzeichnet.
- Parallel mit den Übertragungsvorgängen an RFM überwacht RV seinen Daten-bereit-Anzeiger von RL1, und wenn dieser aktiv ist, wird ein Datenbyte im Datenregister 0 zwischengespeichert (vorausgesetzt, dass das Register 0 dann leer ist). Wenn angezeigt wird, dass die im Datenregister 0 zwischengespeicherten Daten das erste Byte eines Rahmens sind, wird es (und möglicherweise auch das nächste Byte) auf Adressenerkennung geprüft, wenn diese Funktion aktiviert ist. Wenn die Adresse nicht mit denjenigen übereinstimmt, die in dem Vergleich zugelassen sind, wird ein interner Anzeiger gesetzt, der bewirkt, dass alle Daten in diesem Rahmen verworfen werden. Wenn bei der Adresse eine Übereinstimmung vorliegt, werden alle Daten in dem Rahmen parallel zu ihrer Übertragung ins Datenregister 1 durch die CRC-Berechnungslogik geschoben.
- Wenn das Ende des Rahmens erkannt wird und alle Rahmendaten an RFM weitergereicht wurden, prüft RV den CRC-Rest und meldet den CRC-Status zusammen mit dem RL1-Status und der Rahmenendeempfangen-Bedingung an RFM. Man beachte, dass RV die CRC-Bytes sofort durch die CRC-Erzeugungsschaltung schiebt und an RFM weiterleitet, wenn es die Anzeige "Ende des Rahmens" von RL1 empfängt. Wenn die Anzeige "Ende des Rahmens" empfangen wird, prüft RV daher das CRC-Register, um festzustellen, ob es den vorher festgelegten Wert hat, der zur Übertragung einer gültigen Rahmenfolge und der richtigen CRC-Prüfbytes (hex 1DOF) gehört. Somit muss RV die CRC-Prüfbytes nicht extra mit dem letzten CRC-Rest vergleichen, bevor es sie an RFM leitet.
- Nach dem Empfang einer Abbruch- oder Leerzeichenanzeige von RL1, meldet RV die Bedingung dem RFM und initialisiert ihn neu. Nachdem er in einem beliebigen Schlitz vom RSM gestartet wurde, prüft RFM seinen internen Status, um festzustellen, ob er zuvor eine Anforderung an DMARQ übergeben hatte. Wenn ja, ignoriert er alle Datenanforderungen von RV, bis er feststellt, dass das Anforderungsbit in der DMARQ durch eine Maßnahme des DMAC zurückgesetzt wurde. Anschließend prüft er den Übertragungsstatus, indem er das FIFOR-Statuswort (TDCR1) liest, und kennzeichnet gegebenenfalls den FIFOR-Pufferspeicher (TDCR2) als leer.
- Wenn der FIFOR-Pufferspeicher leer ist (oder nur teilweise voll), antwortet RFM auf einen aktiven Daten-bereit-Anzeiger von RV, indem er die jeweiligen Daten in die entsprechende FIFOR-/TDCR2-Bytestelle schreibt, und aktualisiert seinen Byte- Positionsanzeiger. Wenn das letzte Byte, das geschrieben wird, den Pufferspeicher füllt, wird eine Anforderung an DMARQ gesetzt, und der Pufferspeicher wird schließlich durch eine Maßnahme des DMAC entleert. Nachdem RFM Daten in den FIFOR- Pufferspeicher geschrieben hat, aktiviert es eine Bestätigung an RV und wartet, bis der Daten-bereit-Anzeiger von RV deaktiviert und anschließend erneut aktiviert wird. Nachdem er die Daten in den Pufferspeicher geschrieben hat, aktualisiert RFM auch einen Empfangsbytezählstand.
- Wenn die Anzeige "Ende des Rahmens" von RV empfangen wird, prüft RFM den Status des Pufferspeichers, um die Anzahl der Bytes zu ermitteln, die noch im Pufferspeicher vorhanden sind. Wenn zwei oder weniger Byte übrig sind, geht RFM davon aus, dass sie Teil des CRC-Feldes sind (das nicht an den IOP- Speicher übertragen werden muss) und setzt den Bytezählstand zurück. Wenn drei oder mehr Bytes im Pufferspeicher übrig sind, setzt RFM eine Anforderung an DMARQ und wartet auf die entsprechende Antwort, die eine Maßnahme des DMAC anzeigt. Nachdem er festgestellt hat, dass alle Daten für den Rahmen, der gerade endet, an den IOP-Speicher gesendet wurden, stellt RFM den Empfangs-DMA-Bytezählstand ein, um sicherzustellen, dass die CRC-Bytes nicht enthalten sind, und übergibt dann den Zählstand zusammen mit einer zugehörigen Unterbrechungsanzeige und anderen relevanten Statusangaben dem INT. RFM setzt dann den Bytezählstand und den Status zurück und beginnt mit der Verarbeitung für den nächsten Rahmen.
- DMAC verarbeitet Empfangsanforderungen in ähnlicher Weise, wie es Sendeanforderungen handhabt (aber in der entgegengesetzten Richtung). Bei jeder Übertragung von Empfangsdaten aus dem FIFOR arbeitet das DMAC mit dem MIO zusammen, um für den Zugriff auf den IOP-Bus zu konkurrieren, und nachdem es den Zugriff erlangt hat, überträgt es die entsprechenden Adressparameter und Steueranzeiger, um die Daten in den IOP- Speicher zu schreiben. Der Empfangsprozess erlaubt im vorliegenden Fall keine Kettung von DMA-Befehlen und/oder - Blöcken, aber der Pufferspeicherbereich im IOP-Speicher wird vom IOP verwaltet, und das DMAC greift auf ihn als Umlaufpufferspeicher zu. Durch ordnungsgemäße Verwaltung des IOP und geeignete Koordination von IOP/SIO/IDLC können somit Empfangsdatenblöcke beliebiger Länge, welche die Kapazität des IOP-Pufferspeichers überschreiten, aus dem FIFOR durch den Pufferspeicher geschoben werden.
- Die verschiedenen Unterbrechungsprozesse, die zwischen den Empfangssegmenten und INT durchgeführt werden, werden als Nächstes erörtert.
- Wie zuvor erwähnt wurde, sendet RL1, wenn es das Ende eines Rahmens feststellt, einen entsprechenden Anzeiger und Status an RV, das wiederum einen Anzeiger und einen zusammengesetzten Status (von RV und RL1) an RFM weitergibt, nachdem es zuerst eine entsprechende Einstellung für die CRC-Prüfung vorgenommen hat.
- Nachdem RFM den Bytezählstand so eingestellt hat, dass CRC- Bytes aus den Daten ausgeschlossen werden, die vom FIFOR an den IOP gesendet wurden (über DMAC), und diese Bytes auch aus dem endgültigen Datenbytezählstand ausgeschlossen werden, übergibt RFM eine Anzeige "Ende des Rahmens" an INT, die INT veranlasst, den Status von RL1/RV/RFM vom RFM in seinem EOPIS-Register zwischenzuspeichern. INT erzeugt dann einen zugehörigen Vektor und übergibt ihn zusammen mit einer Anforderung über SIO dem IOP. INT wird ebenfalls tätig, um den Status über RSM in die EOPISR-Warteschlange im TSR zu schreiben. Die Maßnahmen von INT werden in der Warteschlange konditioniert, die sich nicht in einem Überlaufzustand befindet (im Fall des Überlaufs werden seine Maßnahmen in Bezug auf den IOP geändert, um die Überlaufbedingung anzuzeigen).
- Nachdem sie den Empfang einer Abbruch- oder Leerzeichenfolge festgestellt hat, sendet RL1 eine entsprechende Anzeige und einen entsprechenden Status an RV, das eine entsprechende Anzeige mit dem zusammengesetzten Status (RL1, RV) RFM übergibt. Wie beim Ende des Rahmens übergibt RFM die entsprechende Anzeige und den entsprechenden Status INT. INT bildet einen entsprechenden Vektor und übergibt diesen Vektor zusammen mit einer Anforderung über SIO an IOP und speichert auch den entsprechenden Status in der EOPISR-Warteschlange im TSR, wenn Speicherkapazität vorhanden ist. Bei einem Überlauf der Warteschlange wird iri diesem Fall genauso wie beim Ende des Rahmens vorgegangen.
- Wenn DMAC mit der Bedienung einer RFM-Anforderung fertig ist (die über DMARQ übertragen wurde), aktualisiert es die aktuelle Empfangs-DMA-Adresse und vergleicht sie mit einem programmierten Grenzadresswert (der von IOP/SIO zum Zeitpunkt der Initialisierung der IDLC gesetzt wird). Wenn die verglichenen Adressen gleich sind, aktualisiert DMAC den Status von DMAR (RDCR3, RDCR4), setzt ein Grenzprüfungsbit im RDCR1 im FIFOR und löscht das Anforderung-gesetzt-Bit in der DMARQ (um dem RFM wirksam zu bestätigen/anzuzeigen, dass der Dienst vollständig erbracht worden ist).
- Nachdem er festgestellt hat, dass DMAC die Anforderung vollständig bedient hat, prüft RFM den RDCR1-Status. Wenn er eine Grenzprüfungsanzeige feststellt, meldet der RFM den Status zusammen mit einer entsprechenden Anzeige INT. Wie zuvor, erzeugt INT einen Vektor und ein Statuswort und sendet den Vektor mit einer Anforderung an IOP (über SIO) und das Statuswort über den RSM in die EOPISR-Warteschlange im TSR. Nachdem er INT den Status angezeigt hat, geht RFM in einen inaktiven Zustand über, bis IOP sein Wort (RSM TSOl), das Zeitsicherungs- und -wiederladeoperationen unterworfen wurde, für den entsprechenden Kanal neu initialisiert. In diesem Zustand bestätigt RFM Datenanforderungen von RV, überträgt aber weder Daten von RV an das FIFOR, noch erhöht er den Empfangs- DMA-Bytezählstand und leitet auch keine Datenüberträgungsanforderungen an die DMARQ. Jedoch leitet er vorhandene Unterbrechungsanzeigen in Bezug auf beliebige empfangene Anzeigen des Empfangs von Rahmenende-, Abbruch- oder Leerzeichenmuster an INT.
- Kanalbezogene Hardwarefehler, die während der Empfangsverarbeitung festgestellt werden (Paritätsfehler beim Auslesen von Daten aus dem TSR, FIFO oder DMAR, Logikzeitsperren, die von RSM erzeugt werden, während er auf DONE-Anzeigen von Empfangssegmenten wartet, unzulässige Zustandsbedingungen, die in Zustandsmaschinen des Empfangssegments festgestellt werden, Schnittstellen- Zeitsteuerungsfehler (BTDM-Daten sind bereit, RL1 ist aber nicht bereit), Fehler in Verbindung mit Versuchen des SIO, auf Adressen zuzugreifen, die nicht der IDLC zugewiesen sind, und Fehler, die während MIO-Übertragungen auf dem IOP-Bus festgestellt werden), werden im Wesentlichen gleich wie entsprechende Fehler gehandhabt, die während der Sendeverarbeitung festgestellt werden. In Bezug auf einen jeden solchen Fehler wird dem INT von dem Empfangssegment, das den Fehler feststellt, eine Anzeige übergeben, und INT ergreift Maßnahmen, um einen entsprechenden Unterbrechungsvektor zu erzeugen.
- Wenn während der Empfangsverarbeitung ein Paritätsfehler festgestellt wird, löst das Segment, das den Fehler feststellt, durch einen Impuls eine Fehleranzeige an INT aus, INT tritt in einen Fehlerzustand ein, übergibt SIO/IOP einen Fehlervektor und setzt die Verarbeitung in Erwartung eines vom IOP/SIO eingeleiteten Neustarts aus. Da die RAMs kanalbezogen sind, sind solche Fehler gewöhnlich ebenfalls kanalbezogen. Folglich ist die Aussetzung der Verarbeitung auf den Kanal begrenzt, der gerade bedient wurde, als der Fehler auftrat.
- Wenn RSM einen Zeitablauffehler der Logik feststellt, übergibt er INT eine Unterbrechungsanzeige. INT speichert das LTO- (Logikzeitsperre-)Bit in seinem IHEISR (IDLC- Härdwarefehlerunterbrechungsstatusregister) (siehe den folgenden Abschnitt 12.2.8), erzeugt einen Fehlervektor, übergibt Letzteren zusammen mit einet Anforderung SIO/IOP und behält den zugehörigen Status in seinem IHEISR-Register, damit er von IOP/SIO abgerufem werden kann. Die Verarbeitung wird fortgesetzt, bis der IOP die IDLC sperrt.
- Bei der Feststellung eines Hardwarestatusfehlers übergibt das betroffene Segment INT eine Fehleranzeige. INT speichert das Bit "Fehlerzustand festgestellt" (ESD-Bit) in seinem IHEISR- Register und fährt wie beim Zeitablauffehler der Logik fort.
- Bei der Feststellung eines Schnittstellen-Zeitsteuerungs- (Empfangs-)Fehlers löst RL1 durch einen Impuls eine Anzeige an INT aus, INT setzt das ITE-(Schnittstellen- Zeitsteuerungsfehler-)Bit in seinem IHEISR-Register und fährt wie in den vorherigen beiden Situationen fort.
- Bei der Feststellung eines SIO-Adressierungsfehlers verweigert SIO eine Bestätigung der vorgesehenen Übertragung vom IOP (was dazu führt, dass der IOP einen Bestätigungs-Zeitablauffehler feststellt) und löst durch einen Impuls eine Anzeige an INT aus. INT setzt die entsprechenden Statusbits in seinem IHEISR- Register, erzeugt aber keine Unterbrechung (da der IOP den Fehler über seine Zeitsperre feststellen wird).
- Bei der Feststellung eines MIO-Fehlers werden sowohl dem DMAC als auch dem INT Fehlermeldungen übergeben. INT setzt das DTO- (DMA-Zeitsperre-)Bit in seinem IHEISR-Register als Statusanzeige. DMAC setzt im FIFOR/RDCR1 einen Fehleranzeiger für den Kanal, dessen Anforderung zu dem Zeitpunkt bedient wurde, zu dem der Fehler auftrat, und setzt das Anforderungsbit in der DMARQ zurück. Nachdem RFM die DMARQ-Bestätigung/- Rücksetzung bemerkt und den FIFOR-Status geprüft hat, stellt er die Fehlerbedingung fest und übergibt INT einen kanalbezogenen Fehleranzeiger. INT erzeugt daraufhin einen Vektor und einen kanalbezogenen Status zur Meldung an den IOP, den der IOP mit dem Hardwarefehlerstatus verwenden kann, um die Quelle des Busausfalls zu ermitteln. In den meisten Fällen wird die Verarbeitung für den betroffenen Kanal ausgesetzt, bis ein von IOP eingeleiteter Neustart stattfindet.
- Vom INT erzeugte Unterbrechungsvektoren sind jeweils als ein Byte codierte Zahlenwerte, die der Quelle der Unterbrechung entsprechen. Die Quelle ist eine der Folgenden: ein Hardwarefehler auf der IDLC-Chipebene, ein Hardwarefehler auf der L1-Chipebene, ein kanalbezogenes L1-Ereignis oder ein kanalbezogener L1-Fehler, ein kanalbezogener IDLC-Fehler oder ein IDLC-Kanalprozessereignis. In Bezug auf kanalbezogene IDLC- Fehler- und -Prozessereignisse wird die Quelle weiter aufgelöst, um den bestimmten Kanal von 32 Kanälen anzuzeigen, der gerade bedient würde, als der entsprechende (Paritäts-)Fehler oder das Prozessereignisfestgestellt wurde. Die Vektorzahl liegt tatsächlich bei über 67 Werten (von denen 2 mit Hardwarefehlern auf der IDLC- und der L1-Chipebene, 1 mit kanalbezogenen L1-Ereignissen oder -Fehlern, 32 mit kanalbezogenen IDLC-Fehlern und 32 mit IDLC- Kanalprozessereignissen verbunden sind).
- Der IOP verwendet den Vektor zum Zugriff auf einen entsprechenden der 67 Einträge in einer Zuordnungstabelle im IOP-Speicher. Die Tabelleneinträge geben im Einzelnen die Kennungen der entsprechenden Unterbrechungsquellen, wie vorstehend erwähnt wurde, zusammen mit zusätzlichen Informationen an, die der IOP zur Durchführung seines Unterbrechungsbehandlungsprozesses benötigt. Aufgrund der Art und Weise, in der der Vektor von der INT erzeugt wird, können die Tabelle und Teile der Tabelle vom IOP innerhalb von verschiedenen Teilen des aus 256 Wörtern bestehenden Segments seines Speichers verschöben werden; d. h. der mit 8 Bit adressierbare Bereich, (der INT-Vektor) und ein Basiswert werden vom IOP festgelegt.
- Wenn die Unterbrechungsquelle eine andere Quelle als das kanalbezogene IDLC-Ereignis oder der kanalbezogene IDLC-Fehler ist (d. h., sie bezieht sich auf einen IDLC-Hardwarefehler, einen L1-Hardwarefehler oder ein L1-Kanalereignis), bildet INT den Vektor unter Verwendung det 6-Bit-IIVO (IDLC- Unterbrechungsvektoroffset-)Zahl im ICR-(IDLC- Konfigurations-)Register, das sich im SIO befindet (Fig. 5 und 43) und eines 2-Bit-Wertes, der zu der Quelle gehört. Der 2-Bit-Wert wird von der INT_CHP-Zustandsmaschinenkomponente des INT erzeugt (siehe den folgenden Abschnitt 12.2.7) und in dieser Zustandsmaschine mit dem IIVO-Offsetwert verknüpft, der vom SIO/ICR übettragen wird, um den ganzen Vektor zu bilden (INT_CHP_VECTOR). Der Offsetwert, der vom IOP mittels Programmierung ausgewählt und bei der Initialisierung der IDLC vom IOP/SIO in das ICR gestellt wird, wird vom IOP zur Auswahl von einer von 64 Offsetpositionen verwendet (in Bezug auf einen vom IOP festgelegten Basisspeicherplatz). Jede Offsetposition stellt eine Grenze einer aus 4 Wörtern bestehenden Gruppe von Positionen dar. Der von der INT-Zustandsmaschine verknüpfte 2- Bit-Wert wird vom IOP dazu verwendet, 1 von 4 Speicherplätzen innerhalb der Gruppe von Positionen auszuwählen, die von dem Offsetwert gekennzeichnet werden.
- Wenn die Unterbrechungsquelle IDLC-kanalbezogen ist, wird der Vektor unter Verwendung eines 2-Bit-Offsetwertes, der dem CIVO- (Kanalunterbrechungsvektoroffset-)Feld im ICR-Register entnommen wird, und eines 6-Bit-Wertes, der intern von der INT_CHN-Zustandsmaschine im INT festgelegt wird, gebildet. Der Offsetwert und der intern festgelegte Wert werden in der Zustandsmaschine verknüpft, um den ganzen Vektor (INT_CHN VECTOR) zu bilden, der dem SIO/IOP übergeben wird. Der Offsetwert kann vom IOP durch Programmierung festgelegt werden und wird während der Initialisierung der IDLC in das ICR gestellt. Der IOP verwendet den 2-Bit-Offset, um an Grenzen von 4 getrennten, aus 64 Wörtern bestehenden Gruppen von Speicherplätzen im IOP-Speicher eine von 4 Offset-Positionen in Bezug auf einen vom IOP festgelegten Basisspeicherplatz/Basiswert zu lokalisieren. Der IOP verwendet den 6-Bit-Wert, um einen von 64 Speicherplätzen innerhalb des Speicherbereichs zu adressieren, der von dem Offsetwert angegeben wird. Der adressierte Speicherplatz enthält die Informationen, die der IOP benötigt, um den Vektor auszuwerten und eine Verbindung zu dem benötigten Unterbrechungsbehandlungsprozess herzustellen.
- Fig. 37 zeigt die wesentlichen logischen Komponenten (Zustandsmaschinen usw.) des Unterbrechungs-(INT-)Segments zusammen mit seinen Registern, externen Schnittstellen und Steuersignalen. Das Segment enthält die Zustandsmaschinen 260 (INT_CHN) und 261 (INT_CHP), das CEIS-Register 262, die EOPIS- Signalspeicher 263 und das IHEISR-Register 264.
- Die Zustandsmaschinen 260 und 261 arbeiten als getrennte diskrete logische Einheiten, wobei die Einheit 260 in der kanalbezogenen Betriebsart in Bezug auf Prozessereignisse und das Auftreten von kanalbezogenen Paritätsfehlern arbeitet und die Einheit 261 asynchron in Bezug auf Hardwarefehlerereignisse sowohl in der IDLC als auch den L1-Schaltungen sowie in Bezug auf Kanalereignisse arbeitet, die in den L1-Schaltungen auftreten.
- Das Register 262 dient zur Zwischenspeicherung von CEIS- Informationen in Bezug auf den Kanal, der gerade bedient wird. Die Signalspeicher 263 dienen zur Zwischenspeicherung von SOPIS-Informationen in Bezug auf diesen Kanal. Das Register 264 dient dazu, Statusinformationen in Bezug auf Hardwarefehler zu halten.
- Die Hauptfunktionen des INT-Segments bestehen darin, auf Unterbrechungsanzeigen einschließlich interner IDLC- Anforderungen und externer Anforderungen von den L1-Schaltungen zu antworten, den Unterbrechungsstatus in Bezug auf diese Anzeigen zu erfassen und zu speichern, die (kanalbezogenen) EOPISR-Warteschlangen (im TSR) zu verwalten, Vektoren in Bezug auf Anzeigen von den anderen Segmenten zu erzeugen und diese Vektoren zusammen mit zugehörigen Unterbrechungsanforderungen dem SIO-Segment zur Übertragung an den IOP zu übergeben. Der IOP verwendet diese Vektoren bei Tabellensuchoperationen, um Informationen zu lokalisieren, die entsprechende Unterbrechungsquellen ausweisen (L1-Kanal, L1-Chip-Hardware, IDLC-Chip-Hardware, Prozessereignisse in einem bestimmten der 32 IDLC-Kanäle oder das Auftreten von Paritätsfehlern in einem bestimmen der 32 IDLC-Kanäle), er verwendet die Tabelleninformationen, um eine Verbindung mit einer entsprechenden Unterbtechungsbehandlungsroutine herzustellen, und er verwendet diese Routine, um den zugehörigen Unterbrechungsstatus von der IDLC über das SIO abzurufen.
- Die INT_CHN-Zustandsmaschine 260 arbeitet in Bezug auf kanalbezogene IDLC-Prozessereignisse, während die INT_CHP- Zustandsmaschine 261 in Bezug auf mit der IDLC-Hardware verbundene Fehlerbedingungen und L1-Bedingungen (Fehler auf Chipebene und/oder kanalbezogene Ereignisse) arbeitet.
- Die INT_CHN-Zustandsmaschine arbeitet in einer Umgebung, die Zeitsicherungs- und -wiederladeoperationen unterworfen wird. In Zeitschlitzen, die zu aktiven Kanälen gehören, lädt der RSM über RSM_TSR_BUS den kanalbezogenen Zeitsicherungs- und - wiederladestatus aus dem TSR in das Register 262 und startet den Betrieb der INT_CHN-Zustandsmaschine mit dem Impuls RSM_INT_START. Bitzuordnungen im CEISR sind in Fig. 39 gezeigt und werden nachstehend im Abschnitt 12.2.8 erörtert. Während des Betriebs empfängt INT_CHN als Antwort auf entsprechende Anforderungsanzeigen (TL1_INT_REQ, TFM_INT_REQ, RFM_INT-REQ) Kanalereignis-Eingangssignale von TL1, TFM und RFM in den EOPISR-Statussignalspeichern 263. Der Inhalt dieser Signalspeicher wird gelöscht, bevor irgendeiner der Empfangs- oder Sendeprozesse gestartet wird. Während des Betriebs des INT_ werden ihre Werte von INT_CHN nicht im Einzelnen ausgewertet.
- INT_CHN verwendet ein internes 2-Bit-Register, um einen vorübergehenden Wert des EOP-WARTEZUSTANDSIGNALSPEICHERS (EOP WAIT_STATE_LATCH) zu halten, der nicht zeitschlitzübergreifend gesichert wird, um eine von der INT_CHN in ihrem Zustand 7 zu ergreifende Maßnahme festzulegen, die eine der Folgenden ist: speichere den EOPISR-Status, ignoriere den EOPISR-Status oder lösche den EOPISR-Status. Wenn der EOPIS- oder der CEIS-Status gespeichert werden soll, aktiviert INT_CHN am Ende des Schlitzes INT_EOP an den RSM und überträgt den Inhalt des CEISR-Registers 262 an den RSM. Der RSM prüft das SWA- (Statuswort verfügbar-)Bit in den übertragenen CEIS- Informationen, um festzustellen, ob der EOPIS-Status während des Schlitzes zwischengespeichert wurde (in TL1, TFM oder RFM). Wenn der Status zwischengespeichert wurde, ist der RSM dafür verantwortlich, den Status aus dem entsprechenden Zwischenspeicherungssegment in der EOPISR-Warteschlange im TSR zu speichern, wobei er die Bits, die den nächsten Speicherplatz des Status angeben (NSL-Bits), in den übertragenen CEIS- Informationen verwendet, um den Warteschlangenbereich zu lokalisieren, in den geschrieben werden soll. Der RSM erzeugt den eigentlichen TSR-Adressenplatz, an den das EOPISR geschrieben wird, indem er die NSL mit einer Basisadresse (im TSR) verknüpft, die eine vorher festgelegte Funktion der Kanalnummer ist.
- Obwohl der RSM die EOPISR-Übertragungen in das und aus dem TSR durchführt, liegt die Verwaltung der EOPISR-Warteschlange in der Verantwortung der INT_CHN-Zustandsmaschine. Die INT_CHN- Zustandsmaschine ist auch für das "Schließen" der EOPISR- Statuswarteschlange verantwortlich, wenn die Warteschlange nach dem Erreichen einer Tiefe von 16 Ereignissen überzulaufen droht oder ein Paritätsfehler in Bezug auf TSR, FIFOR oder DMAR festgestellt wurde. Paritätsfehler in Bezug auf TSR und DMAR werden über TSR_PARITY_ERROR beziehungsweise DMAR_PARITY-ERROR angezeigt. Paritätsfehler in Bezug auf FIFOR werden über RFM_PARITY_ERROR beziehungsweise TFM_PARITY-ERROR angezeigt.
- In Bezug auf jeden Patitätsfehler wird eine eindeutige Hardwarefehlerunterbrechung für den Kanal erzeugt, in dem der Fehler aufgetreten ist. In Bezug auf einen bevorstehenden Warteschlangen-Überlauffehler wird das IQO-Bit im letzten (zuletzt eingegebenen) EOPISR-Statuswort in der Warteschlange gesetzt.
- Die INT_CHN-Zustandsmaschine empfängt Eingangssignale von 2 Registern, dem ICR (IDLC-Konfigurationsregister) im SIO und dem HPCR (HDLC-Protokollkonfigurationsregister) im RSM. Der Inhalt des ICR wird vom IOP zum Zeitpunkt der Initialisierung der IDLC programmiert und ist nicht kanalbezogen (gilt unverändert für alle Kanalprozesse). Das HPCR ist kanalbezogen (für jeden Kanal anders) und wird während Zeitsicherungs- und - wiederladeoperationen aus dem TSR-Speicherbereich eines jeden Kanals geladen (siehe Fig. 7). Der Inhalt des HPCR-Wortes eines jeden Kanals wird vom IOP/SIO durch Programmierung gesetzt. Felder in diesen Registern, die hier relevant sind, werden nachstehend ausführlich beschrieben.
- Die INT_CHN-Zustandsmäschine verwaltet die EOPISR-Warteschlange in einer von zwei programmierbaren Betriebsarten auf der Grundlage des Wertes, auf den das QM-Bit im ICR-Register gesetzt ist: in der Betriebsart mit einem Zustand oder in der Betriebsart mit mehreren Zuständen. Der Wert des ICR/QM-Bits wird vom IOP zum Zeitpunkt de Initialisierung der IDLC programmiert. INT empfängt dieses Bit an ICR_QM (Fig. 37) und unterstützt die Bildung von einem Wort mit einem einzigen Zustand (Single Status Word) oder von einem Wort mit mehreren Zuständen (Multiple Status Word) auf der Grundlage des Wertes des QM-Bits. In der Betriebsart mit einem Zustand wird ein einziger Unterbrechungsvektor erzeugt und dem IOP für jeden Ereigniseintrag in der EOPISR-Warteschlange übergeben. In der Betriebsart mit mehreren Zuständen kann ein einziger Vektor für mehrere Statusereigniseinträge in der EOPISR-Warteschlange erzeugt werden.
- Die Betriebsart mit mehreren Zuständen hat Leistungsvorteile hinsichtlich einer geringeren Länge des Unterbrechungspfads in den IOP-Unterbrechungsbehandlungsroutinen, aber den Nachteil, dass die Routinen im Hinblick auf die Verwaltung des IOP- Zugriffs auf die Warteschlange an Komplexität zunehmen. Wenn die Betriebsart mit mehreren Zuständen verwendet wird, bestätigt der IOP die Anzahl der Statuswörter, die er aus der Warteschlange entfernt hat, indem er einen zugehörigen Wert in das (kanalbezogene) HPCR-Register schreibt und die Polarität eines Umschaltbits in diesem Register umkehrt; siehe die nachstehenden Beschreibungen der SWRC- (Statuswortlesezählstand-) und TOGGLE-(UMSCHALT-)Felder im HPCR. Diese Felder werden bei HPCR_EOP-TOGGLE und HPCR_MIC_ACK in INT eingegeben (Fig. 37).
- Der vorherige Wert des Umschaltbits (PTV) im CEISR-Register 262 wird mit HPCR_EOP_TOGGLE auf Nichtübereinstimmung verglichen, die anzeigt, dass der IOP auf die Warteschlange des entsprechenden Kanals zugegriffen und einen oder mehr Einträge aus ihr entfernt hat. Dieser Mechanismus wird von INT als Schutz gegen das Überschreiben von nicht entfernten/anstehenden Warteschlangeneinträgen verwendet. Die Anzahl der anstehenden Vektoren (Number of Outstanding Vectors (NOV)) bedeutet tatsächlich die Anzahl der Statuswörter in der EOPISR- Warteschlange, wenn sich INT in der Betriebsart mit mehreren Zuständen befindet. NOV wird von INT auf den Wert im HPCR_MIC_ACK verringert, nachdem der IOP die Anzahl der aus der Warteschlange entfernten Statuswörter bestätigt hat. Dadurch werden zugehörige Speicherplätze im TSR zur Wiederverwendung freigegeben und die Umlaufspeichereigenschaft der Warteschlange aufrechterhalten.
- Der Zugriff auf die EOPISR-Warteschlange durch den IOP schließt die folgende Abfolge von Operationen ein: (1) lies CEISR (aus dem TSR über SIO), um den anstehenden Statuswortzählstand NOV (Anzahl der anstehenden Vektoren) zu erhalten, und stelle die Verschiebeadresse NSL (NSL = nächster Speicherplatz des Status) für den Beginn der anstehenden Einträge in die Warteschlange; (2) lies das EOPISR-Statuswort oder die -Statuswörter aus der Warteschlange (ein Wort in der Betriebsart mit einem Zustand, ein oder mehrere, maximal 16, Wörter in der Betriebsart mit mehreren Zuständen); (3) lies das HPCR (aus dem TSR); und (4) schreibe die aktualisierte (invertierte) Umschaltpolarität»die Werte von SWRC und LSA (Verbindungsstationsadresse) bei Bedarf in das HPCR/TSR (wie zuvor erwähnt wurde, überwacht INT die HPCR-Umschalt- und SWRC-Funktionen und aktualisiert gegebenenfalls die zugehörigen CEISR-Parameter PTV und NOV).
- Das Lesen von Warteschlangeneinträgen in der Betriebsart mit einem Zustand erfordert keine ausdrückliche Bestätigung vom IOP (da sich jeder Vektor nur auf ein einziges Statuswort bezieht), und die TOGGLE- (Umschalt-) und SWRC-Bits werden in dieser Betriebsart nicht benutzt/geändert. Nachteile der Betriebsart mit einem Zustand werden nachstehend in Bezug auf die Anzahl der Statuswörter, die in der EOPISR-Warteschlange (14) gespeichert werden können, und die zusätzliche Pfadlänge der IOP-Unterbrechungsbehandlungsroutine aufgeführt. In dieser Betriebsart werden dem IOP eine Unterbrechungsanforderung und ein Vektor für jeden Wa rteschlangeneintrag übergeben, und INT stellt einen Überlauf der Warteschlange fest (was dazu führt, dass das IQO-Bit im letzten Warteschlangeneintrag gesetzt wird), wenn die Anzahl der anstehenden Einträge in der Warteschlange/den Vektoren den Wert 14 erreicht (obwohl die Warteschlange eine Kapazität von 16 Einträgen hat, ist diese Vorsichtsmaßnahme aufgrund dessen, dass im SIO Vektoren in die Warteschlange gestellt werden und es keine ausdrückliche Bestätigung des IOP über Einträge, die aus der Warteschlange entfernt wurden, gibt, notwendig). Obwohl der IOP in dieser Betriebsart nicht ausdrücklich die Entfernung von Einträgen aus der Warteschlange bestätigt, muss er die Entfernung von Einträgen vornehmen, während er sich in der Unterbrechungsbehandlungsroutine befindet (d. h., er kann die Routine erst unterbrechen und zu seiner Task-Ebene zurückkehren, nachdem er dies erledigt hat, wenn vermieden werden soll, dass der Status in der Warteschlange überschrieben wird).
- In der Betriebsart mit mehreren Zuständen muss der IOP ausdrücklich die Anzahl der Statuswörter bestätigen, die er in Bezug auf jeden Vektor gelesen hat, indem er einen entsprechenden Wert in das SWRC-Feld des HPCR schreibt. INT stellt einen Überlauf der Unterbrechungswarteschlange (IQO) fest, wenn 16 Vektoren in der Warteschlange anstehen (und setzt das IQO-Bit im letzten Eintrag auf "1"). In dieser Betriebsart kann die Durchführung des Zugriffs auf die Warteschlange durch den IOP durch die Rückkehr zur Task-Ebene verzögert werden, da in einer Serie von Zugriffen auf das TSR mehrere Einträge entfernt werden können.
- Wenn ein zu der IDLC-Kanalbedingung gehörender Vektor bereit für die Übergabe an SIO ist, stellt die INT_CHN- Zustandsmaschine über die Signale SIO_CHN-BSY, INT_CHN_VECTOR und INT_CHN-REQ eine Verbindung mit dem SIO-Segment her. INT_CHN überwacht das Signal SIO_CHN_BSY, um festzustellen, ob der Kanalvektor-Signalspeicher von SIO belegt oder verfügbar ist. Wenn er verfügbar ist, wird der Vektor (INT_CHN_VECTOR) in dem SIO-Segment zwischengespeichert, in dem SIO die Übergabe von Vektoren auf den IOP-Prozessorbus verwaltet.
- Der 8-Bit-Vektorwert, der von INT_CHN in Bezug auf IDLC- Kanalbedingungen (Prozessendeereignisse und Paritätsfehler) an SIO erzeugt wird, verwendet den 2-Bit- Kanalunterbrechungsvektoroffset (Channel Interrupt Vector Offset (CIVO)) im ICR-Register, um den Offset im IOP-Speicher eines Speicherbereichs anzuzeigen, der die zugehörigen Tabelleneinträge für alle Kanäle enthält, den 5-Bit- Kanalzeitschlitzanzeiger von RSM_TSI, um Speicherplätze von Einträgen, die zu dem Quellen-IDLC-Kanal gehören, weiter zu unterscheiden, und ein einziges Bit, das von INT_CHN erzeugt wird, um den Speicherplatz des bestimmten Eintrags zu unterscheiden, der zu der Unterbrechung gehört (wobei dieses Bit einen Wert hat, wenn die zugehörige Unterbrechung ein Prozessendeereignis betrifft, und den entgegengesetzten Wert, wenn die zugehörige Unterbrechung einen kanalbezogenen Paritätsfehler betrifft.
- Wenn SIO_CHN_BSY zu dem Zeitpunkt aktiv ist, zu dem INT einen Vektor zu übertragen hat, prüft INT_CHN dieselbe Anzeige während aufeinanderfolgender Zeitschlitze, in denen der jeweilige Kanal bedient wird. Somit konkurriert INT_CHN bei der Bedienung aller IDLC-Kanäle auf kanalbezogener Basis um den Zugriff auf das SIO und dessen einzigen Kanalvektor- Signalspeicher. Der Zugriff auf den Kanalvektor-Signalspeicher des SIO folgt keinem Algorithmus und ist zufällig; er basiert auf vielen Variablen (z. B. der jeweiligen Länge der IOP- Unterbrechungsroutinepfade, der Rahmengrößen des IDLC-Kanals usw.). Bei einer Tiefe der EOPISR-Warteschlange von 16 Einträgen pro Kanal isz die Wahrscheinlichkeit eines Warteschlangenüberlaufs in einem beliebigen Kanal äußerst gering.
- INT_CHN zeigt den Abschluss der Ausführung an, indem sie das Signal INT_DONE setzt, das dem RSM anzeigt, dass sich das CEISR in einem stabilen Züst and befindet und zu Sicherungs- und Wiederladeoperationen zur Verfügung steht. Dies sollte vor der Anzeige "Ende des Zeitschlitzes" (RSM_INT_EOS) vom RSM geschehen. Wenn INT_DONE zu diesem Zeitpunkt nicht aktiv ist, stellt RSM fest, dass ein Logik-/Hardwarefehler aufgetreten ist und setzt das LTO-(Logikzeitsperre-)Bit im IHEISR (siehe die folgende Beschreibung der IHEISR-Bits). Die INT_CHP- Zustandsmaschine überwacht das IHEISR und erzeugt die/den zugehörige(n) Unterbrechungsanforderung/Vektor.
- Die INT_CHP-Zustandsmaschine arbeitet ständig über Zeitschlitze hinweg und verwaltet Unterbrechungsvektoren auf Chip-Ebene in Bezug auf eine beliebige von drei möglichen Quellen: L1- Hardware, L1-Kanal, IDLC-Hardware. L1-Hardwarefehler und - Kanälbedingungen werden INT_CHP von L1_CHP_VRQ beziehungsweise L1_CHN_VRQ (Fig. 37) angezeigt. Die Quelle in Bezug auf IDLC- Hardwarefehler wird durch die Einstellungen der Bits im Quellenfeldteil des IHEISE-Register (Fig. 38) angezeigt, wobei das Bit ITE (Interface Timing Error = Schnittstellen- Zeitsteuerungsfehler) einen Synchronisationsfehler zwischen der IDLC und den L1-Schaltungen anzeigt, das Bit_LTO (Logic Timeout = Logik-Zeitsperre) anzeigt, dass es der IDLC-Logik nicht gelang, eine Operation innerhalb eines kritischen Zeitraums abzuschließen (z. B. die Aktivierung von INT_DONE vor RSM EOS, wie vorstehend erörtert wurde), das Bit ESD anzeigt, dass eine Zustandsmaschine in einem IDLC-Segment in einen nicht benutzten/unzulässigen Zustand übergegangen ist, und das Bit DTO (DMA Timeout = DMA-Zeitsperre) anzeigt, dass der Buszugriff zwischen dem DMA und dem IOP-Bus fehlschlug. Wenn irgendwelche dieser Bits gesetzt sind; ist die Signalleitung IDLO_CHP_VRQ vom IHEISR-Register zu INT_CHP aktiv (d. h., IDLC_CHP_VRQ stellt das logische ODER der IHEISR-Bits ITE, LTO, ESD und DTO dar).
- Die Anbindung von INT_CHP an SIO erfolgt über die Signale SIO_CHP_BSY, INT_CHP VECTOR und INT_CHP_REQ, wie in Fig. 37 gezeigt ist. SIO_CHP_ESY wird von einem Chipvektor- Signalspeicher im SIO, der von INT_CHP_REQ, das INT dem SIO in Verbindung mit INT_CHP VECTOR übergibt, gesetzt werden kann, zu INT zurückgeführt. Das letztere Vektorausgangssignal wird im SIO zwischengespeichert, wenn SIO_CHP_BSY inaktiv ist, und erkennt die Unterbrechungsquelle als eine der vorstehend erwähnten drei. SIO_CHP_BSY zeigt, wenn es aktiv ist, an, dass ein Vektor/eine Anforderung von INT empfangen, aber von SIO noch nicht an den IOP übertragen wurde.
- Der Wert INT_CHP_VECTOR enthält den 6-Bit-IDLC- Unterbrechungsvektoroffsetwert (IIVO) und einen von INT_CHP erzeugten 2-Bit-Wert. Den Offsetwert entnimmt INT dem ICR- Register im SIO, und in Bezug auf einen Basisspeicherplatz im IOP-Speicherbereich stellt dieser Wert einen Offset einer Gruppe von Zuordnungstabelleneinträgen dar, die zu hardwarebezogenen Unterbrechungsbedingungen gehören, die vom INT gemeldet werden können. Der von INT erzeugte 2-Bit-Wert stellt den Speicherplatz innerhalb der Gruppe eines bestimmten Eintrags dar, der zu der bestimmten Bedingung gehört, die gerade gemeldet wird. Zusammen werden die 8 Bit vom IOP dazu verwendet, auf den bestimmten Tabelleneintrag zuzugreifen und über Letzteren eine Verbindung zu einer IOP- Unterbrechungsbehandlungsroutine herzustellen, die sich für den Abruf der zugehörigen Statusinformationen entweder aus dem IHEISR-Register im INT oder aus Registern in den L1-Schaltungen eignet.
- Wenn SIO RESET, dann Zustand = 0
- - Wenn der Startimpuls von RSM (RSM INT_START) inaktiv ist, bleibe im Zustand 0.
- - Wenn der Startimpuls von RSM aktiv ist und der Unterbrechungsmodus (IM im CEISR) den Wert "00" hat (der anzeigt, dass INT zum ersten Mal auf diesem Kanal aktiviert wird), setze den FIFOR-Paritätsfehleranzeiger (PE im CEISR) zurück, setze die Statuswort verfügbar- Anzeige (SWA im CEISR) zurück, setze IM auf "11 - normale Betriebsart"; gehe in den Zustand 1 über.
- - Wenn RSM_INT_START aktiv ist und IM auf "10 - gesperrt" (was einen FIFOR-Paritätsfehler anzeigt) oder "01 - gesperrt" (was einen TSR-Paritätsfehler anzeigt) gesetzt ist, wurde die EOPISR-Warteschlange für diesen Kanal "geschlossen"; setze den EOP-Wartezustandsignalspeicher auf "CLEAR_EOPISR_STATUS" (LÖSCHE DEN EOPISR-STATUS); gehe in den Zustand 7 über.
- - Wenn RSM_INT_START aktiv ist und IM auf "11 - normal" gesetzt ist, fahre mit den normalen Übertragungen des Zustands der EOPISR-Warteschlangenverarbeitung fort; wenn SWA/CEISR aktiv sind (der Status ist vom vorherigen Schlitzprozess dieses Kanals verfügbar), erhöhe "Nächster Statuswort-Speicherplatz" (NSL im CEISR), setze SWA zurück, und gehe in den Zustand 1 über.
- Zustand 1 (Führe eine Prüfung auf einen kanalbezogenen TSR-, RFM- oder TFM-Paritätsfehler durch; wenn kein Fehler vorhanden ist, führe eine Prüfung auf eine IOP-Bestätigung über das Auslesen des EOPISR-Warteschlangenstatus (IOP Acknowledgement Of EOPISR Queue Status Readout) durch; wenn es keine gibt, führe eine Prüfung auf eine EOPISR- Warteschlangenüberlaufbedingung durch.)
- - Führe eine Prüfung auf einen kanalbezogenen Paritätsfehler durch. Wenn die PF-Bits im CEISR einen Paritätsfehler anzeigen (was das Auftreten eines noch nicht gemeldeten Paritätsfehlers in Bezug auf das TSR oder das FIFOR bei einer zuvor erfolgten Bedienung dieses Kanals bedeutet) oder wenn TSR_PARITY_ERROR oder RFM_PARITY_ERROR oder TFM_PARITY_ERROR gerade aktiv sind, prüfe SIO_CHN_BSY, um festzustellen, ob der Kanalvektor-Signalspeicher im SIO verfügbar ist, um einen anderen kanalbezogenen Vektor zu empfangen (siehe die folgende Beschreibung des SIO und den Kanalvektor-Signalspeicher 297 in Fig. 43).
- - Wenn SIO_CHN_BSY aktiv ist, setze EOP WAIT STATE (EOP- WARTEZUSTAND) auf "CLEAR EOPISR STATUS" (LÖSCHE DEN STATUS DES EOPISR); gehe in den Zustand 7 über.
- - Wenn STO_CHN_BSY nicht aktiv ist, erzeuge einen kanalbezogenen Hardwarefehlerunterbrechungsvektor für diesen Kanal, speichere ihn im SIO-Kanalvektor- Signalspeicher zwischen, und fahre mit der nächsten Maßnahme fort, um die Ursache des Fehlers zu ermitteln.
- - Wenn die Ursache RFM_PARITY_ERROR oder TFM_PARITY_ERROR war, setze den IM-Modus auf "10 - deaktivierter FIFO- Paritätsfehler"; gehe in den Zustand 2 über.
- - Wenn die Ursache TSR_PARITY_ERROR war, setze IM auf "deaktivierter TSR-Paritätsfehler"; gehe in den Zustand 2 über.
- - Wenn keine Paritätsfehler angezeigt werden und der Status "Warten auf Vektor-Bestätigung" lautet (das WVA-Bit im CEISR-Register 262 ist aktiv), vergleiche den vorherigen Wert des Umschaltbits (PTV) im CEISR-Register mit dem Umschaltbit im HEOR-Register, das vom IOP gesetzt werden kann (HPCR_TOGGhE-Eingangssignal).
- - Wenn das PTV- und das HPCR_TOGGLE-Bit NICHT gleich sind, hat der IOP den Abruf des Status aus der EOPISR- Warteschlange bestätigt. Die Anzeige der Anzahl der gelesenen Wörter SWRC im HPCR (die vom HPCR_MIC_ACK- Eingangssignal in diese Zustandsmaschine angegeben wird) ist gültig. Gehe in den Zustand 4 über.
- - Wenn das PTV- und das HPCR_TOGGLE-Bit gleich sind, hat der IOP die EOPISR-Übertragung für diesen Kanal nicht bestätigt, und EOPISR steht immer noch in der Warteschlange in Bezug auf den letzten für die Warteschlange erzeugten Vektor an; für diesen Kanal müssen keine weiteren Vektoren erzeugt werden. Fahre mit der nächsten Operation fort, um zu prüfen, ob die Warteschlange übergelaufen ist.
- - Wenn die EOPISR-Warteschlange für diesen Kanal übergelaufen ist (IRQ ist im CEISR gesetzt), setze EOP WAIT STATE auf "CLEAR EOPISR STATUS"; gehe in den Zustand 7 über.
- - Wenn die EOPISR-Warteschlange für diesen Kanal nicht überzulaufen droht, setze EOP WAIT STATE auf "STORE EOPISR STATUS" (SPEICHERE DEN STATUS DES EOPISR); gehe in den Zustand 7 über.
- - Wenn keine TSR- der FIFO-Paritätsfehler aufgetreten sind und nicht auf eine IOP-Vektorbestätigung gewartet wird (WVA ist inaktiv), gehe in den Zustand 6 über.
- - Wenn STD CHN ESY verfügbar ist, aktiviere. INT_CHN REQ, und bleibe in demselben Zustand.
- - Wenn SIO CHN ESY belegt ist und der Vektor für eine kanalbezogene Hardwarefehlerunterbrechung war, setze EOP WAIT STATE auf "C:LEAR EOPISR STATUS"; gehe in den Zustand 7 über:
- - Wenn STD CHN ESY belegt und der Vektor für den EOPISR- Status war, prüfe, ob die EOPISR-Warteschlange übergelaufen ist.
- - Wenn die EOPISR-Warteschlange übergelaufen ist (IQO im CEISR ist aktiv), setze EOP WAIT STATE auf "CLEAR EOPISR STATUS"; gehe in den Zustand 7 über.
- - Wenn die EOPISR-Warteschlange NICHT übergelaufen ist (IQO im CEISR ist inaktiv), setze EOP WAIT STATE auf "STORE EOPISR STATUS"; gehe in den Zustand 7 über.
- - Prüfe, ob die EOPISR-Warteschlange auf diesem Kanal übergelaufen ist, indem NOV auf der Grundlage des ICR QM- Modusbits mit der. Höchstzahl der EOPISR-Statuswörter verglichen wird. Wenn das QM-Bit den Wert 1 hat (der die Betriebsart mit mehreren Zuständen anzeigt), ist die Höchstzahl der EC> PISR-Statuswörter 16. Wenn das QM-Bit den Wert 0 hat (der clie Betriebsart mit einem Zustand anzeigt), ist die Höchstzahl der EOPISR-Statuswörter 14.
- - Wenn das QM-Bit aktiv ist und die NOV-Anzahl 16 beträgt, setze das Warteschlangenüberlaufbit (IQO im EOPISR) so, dass es anzeigt, dass die Warteschlange übergelaufen ist.
- - Wenn das QM-Bit inaktiv ist und NOV 14 beträgt, setze das Warteschlangenüberlaufbit (IQ im EOPISR) so, dass es anzeigt, dass die Warteschlange übergelaufen ist. Setze EOP WAll STATE auf "STORE EOPISR STATUS"; gehe in den Zustand 7 über.
- - Wenn die Anzahl der vom IOP bestätigten Statuswörter HPCR_MIC_ACK größer als die Anzahl der gerade gespeicherten Statuswörter (NOV) ist, gehe davon aus, dass entweder ein IOP-Programmierfehler oder ein nicht festgestellter TSR-Paritätsfehler aufgetreten ist. Erzeuge in beiden Fällen einen kanalbezogenen Hardwarefehler, setze PE auf "11 - Paritätsfehler während des Lesens des TSR festgestellt"; gehe in den Zustand 1 über.
- - Wenn der IOP eine Anzahl größer null bestätigt (HPCR_MIC_ACK), verringere sowohl den Wert der IOP- Bestätigungsanzahl (HPCR_MIC_ACK) als auch den Wert der Vektoranzähl (NOV), bleibe im Zustand 4. Es sei angemerkt, dass jeder Verringerungs- und Vergleichsschritt einen Zustandsübergang erfordert.
- - Wenn HPCR MIC ACK gleich null ist, setze das Warten-auf- Vektor-Bestätigung-(WVA-)Bit zurück; gehe in den Zustand 7 über.
- - Wenn die aktuelle Vektoranzahl NOV größer null ist, muss für diesen Kanal ein Vektor erzeugt werden.
- - Wenn das Signal SIO CHN BSY belegt (aktiv) ist, überspringe die Vektorerzeugung während dieses Zeitschlitzes, versuche es im nächsten Zeitschlitz noch einmal, aber fahre mit der nachstehenden normalen EOPISR- Statusverarbeitung fort.
- - Wenn die EOPISR-Warteschlange übergelaufen ist (IQO im CEISR ist gesetzt), setze EOP_WAIT_STATE auf "CLEAR_EOPISR STATUS". Wenn die Warteschlange nicht übergelaufen ist, setze EOP_WAIT_STATE auf "STORE_EOPISR_STATUS". Gehe in den Zustand 7 über.
- - Wenn das Signal SIO_CHN_BSY verfügbar ist, erzeuge einen EOPISR-Vektor für diesen Kanal. Wenn die Warteschlangenbetriebsart (ICR_QM) die Betriebsart mit mehreren Zuständen ist, erfasse das aktuelle Umschaltbit (HPCR_IQOGLE) im HPCR-Register (für zukünftige Vergleiche) und setze das Warten-auf-Vektor-Bestätigung-(WVA-)Bit auf "aktiv". Wenn die Warteschlangenbetriebsart (ICR_QM) die Betriebsart mit einem Zustand ist, verringere das Vektoranzahl-(NOV-)Register; gehe in den Zustand 2 über.
- - Wenn die aktuelle Vektoranzahl NOV null ist, muss kein Vektor erzeugt werden; gehe in den Zustand 7 über.
- - Warte auf die Status-verfügbar-Anzeige vom Sende- oder Empfangselement (SWA ist aktiv).
- - Wenn eine Schlitzende-Anzeige vom RSM empfangen wird (RSM_INT_EOS), gehe in den Zustand 0 über.
- - Wenn TSR PARITY_ERROR aktiv ist, setze PE auf "11 - Paritätsfehler während des Lesens des TSR festgestellt". Setze EOP WAIT STATE auf "CLEAR EOPISR STATUS", bleibe im Zustand 7.
- - Wenn das SWA-Bit aktiv ist (was anzeigt, dass entweder das Empfangs- oder das Sendesegment den Status im EOPISR- STATUSSIGNALSPEICHER gespeichert hat) und EOP WAIT SATE auf "STORE EOPISR STATUS" gesetzt ist, erhöhe NOV und setze EOP WAIT STATE auf "IGNORE EOPISR STATUS" (IGNORIERE DEN STATUS DES EOPISR); gehe in den Zustand 3 über.
- - Wenn SWA aktiv ist und EOP WAIT STATE auf "IGNORE EOPISR STATUS" gesetzt ist, bleibe im Zustand 7.
- - Wenn SWA aktiv ist und EOP WAIT STATE auf "CLEAR EOPISR STATUS" gesetzt ist, setze das SWA-Bit zurück, bleibe im Zustand 7.
- - Wenn SWA aktiv ist und EOP WAIT STATE gleich dem aktuellen EOP WAll STATE gesetzt ist, bleibe im Zustand 7.
- Wenn SIO_RESET, dann Zustand = 0
- - Wenn L1_CHP_VRQ aktiv ist, übergib den zugehörigen Vektor SIO; gehe in den Zustand 4 über.
- - Wenn L1_CHN_VRQ aktiv ist, übergib den Vektor SIO, und gehe in den Zustand 2 über.
- - Wenn IDLC_CHP_VRQ aktiv ist, übergib den Vektor SIO, und gehe in den Zustand 1 über.
- - Wenn L1_CHP_VRQ aktiv ist, übergib den Vektor SIO; gehe in den Zustand 5 über.
- - Wenn L1_CHN_VRQ aktiv ist, übergib den Vektor SIO; gehe in den Zustand 3 über.
- - Wenn IDLO_CHP_VRQ inaktiv ist, gehe in den Zustand 0 über.
- - Wenn L1_CHP_VRQ abztiv ist, übergib den Vektor SIO; gehe in den Zustand 6 über.
- - Wenn L1_CHN_VRQ inaktiv ist, gehe in den Zustand 3 über.
- - Wenn IDLO_CHP_VRQ aktiv ist, übergib den Vektor SIO; gehe in den Zustand 0 über.
- - Wenn L1_CHP_VRQ aktiv ist, übergib den Vektor SIO; gehe in den Zustand 7 über.
- - Wenn L1_CHN_VRQ inaktiv ist, gehe in den Zustand 1 über.
- - Wenn IDLO_CHP_VRQ inaktiv ist, gehe in den Zustand 2 über.
- - Wenn L1_CHP_VRQ inaktiv ist, gehe in den Zustand 0 über.
- - Wenn L1_CHN_VRQ aktiv ist, übergib den Vektor SIO; gehe in den Zustand 6 über.
- - Wenn IDLO_CHP_VRQ aktiv ist, übergib den Vektor SIO; gehe in den Zustand 5 über.
- - Wenn LT_CHP_VRQ inaktiv ist, gehe in den Zustand 1 über.
- - Wenn LT_CHN_VRQ aktiv ist, übergib den Vektor SIO; gehe in den Zustand 7 über.
- - Wenn IDLO_CHP_VRQ inaktiv ist, gehe in den Zustand 4 über.
- - Wenn L1_CHP_VRQ inaktiv ist, gehe in den Zustand 2 über.
- - Wenn L1_CHN_VRQ inaktiv ist, gehe in den Zustand 4 über.
- - Wenn IDLC_CHP_VRQ aktiv ist, übergib den Vektor SIO; gehe in den Zustand 7 über.
- Wenn LT_CHP_VRQ inaktiv ist, gehe in den Zustand 3 über.
- - Wenn LT_CHN_VRQ inaktiv ist, gehe in den Zustand 5 über.
- - Wenn IDLO_CHP_VRQ inaktiv ist, gehe in den Zustand 6 über.
- Einzelheiten der Zustandsparameter CEIS und EOPIS wurden vorstehend dargelegt. Als Nächstes folgen Anmerkungen über die Verwendung des CEISR, Einzelheiten der Zustandsfunktion IHEISR und Einzelheiten der die Konfiguration festlegenden Funktionen ICR und. HPCR.
- Einzelne Feldnamen und Funktionen wurden vorstehend allgemein angegeben. Bestimmte Einschränkungen von Funktionen und Anmerkungen folgen nachstehend.
- - Zeigt an, dass eine Vektorbestätigung vom IOP ansteht.
- - Wenn eine Bestätigung ansteht, wird INT an der Erzeugung neuer Unterbrechungsvektoren gehindert.
- - Zeigt die Anzahl der gültigen ausstehenden Vektoren in der Warteschlange an. Wenn IOP eine Unterbrechung bestätigt, kann er auf diesen Wert zugreifen, um die Anzahl der gültigen EOPISR-Einträge zu ermitteln, die darauf warten, aus der Warteschlange gelesen zu werden. INT_verwendet diesen Wert, um festzustellen, ob eine Warteschlangenüberlaufbedingung eintritt.
- - Zeigt den vorherigen Wert des HPCR-Umschaltbits an; indem INT dieses Bit mit dem HPCR-Umschaltbit vergleicht, während es in der Betriebsart mit mehreren Zuständen arbeitet, stellt es fest, wann der IOP auf die EOPISR- Warteschlange zugegriffen hat.
- - Zeigt an, ob die EOPISR-Warteschlange übergelaufen ist.
- - Zeigt einen der folgenden Zustände in Bezug auf die RAMs der IDLC an: kein Paritätsfehler festgestellt; Paritätsfehler während das Lesens des TSR festgestellt; Paritätsfehler während des Lesens des FIFOR festgestellt.
- - Dieses Feld sollte vom IOP jedesmal gelesen werden, wenn für einen bestimmten Kanal eine kanalbezogene Hardwarefehlerunterbrechung von INT erzeugt wird.
- - Diese Bits zeigen eine der folgenden Betriebsarten der IDLC in Bezug auf den zugehörigen Kanal an: initialisiert (anstehende Aktivierung durch den RSM), gesperrt aufgrund eines TSR-Paritätsfehlers, gesperrt aufgrund eines FIFOR- Paritätsfehlers, freigegeben (für den Normalbetrieb)
- - Gibt an, wenn der Status zur Speicherung in der EOPISR- Warteschlange (durch den RSM) zur Verfügung steht.
- - Zeigt auf den Offset-Speicherplatz innerhalb des EOPISR- Warteschlangensegments des aktuellen Kanals im TSR, an dem der nächste EOPIS-Status gespeichert werden soll; wenn der Status zur Speicherung verfügbar ist (SWA ist aktiv), verwendet RSM dieses Feld als die unteren 4 Bits der TSR- Adresse, um auf die Warteschlange zuzugreifen (die anderen Bits werden von der Kanalnummer bestimmt).
- - Die neuen CEIS-Werte vom INT werden vom RSM maximal 3,8 Mikrosekunden, nachdem ein zugehöriger Vektor erzeugt worden ist, in das TSR geschrieben; somit kann ein Versuch, vor einer Verzögerung von 3,8 Mikrosekunden nach der Vektorerzeugung auf CEISR/TSR zuzugreifen, dazu führen, dass alte CEIS-Informationen gelesen werden. Folglich sollte der Zugriff auf diesen Parameter durch IOP/SIO um mindestens 3,8 Mikrosekunden, nachdem der IOP den Vektor empfangen hat, verzögert werden (normalerweise würde der Zeitraum, der im IOP benötigt wird, um den Taskmodus zu verlassen und eine Verbindung mit der Unterbrechungsbehandlungsroutine herzustellen, 3,8 Mikrosekunden überschreiten, so dass keine spezielle · Verzögerungsmaßnahme durch den IOP erforderlich sein dürfte, um diesem Erfordernis gerecht zu werden).
- Bezug nehmend auf Fig. 38, hat dieses Register 10 aktiv verwendete "Statusanzeige"-Bits (WPE, APE, L1D, PWE, PIA, DPE, NDS, WSE, PPE, DBE) und 4 aktiv verwendete "Quellen"- Anzeigebits (ITE, LTO, ESD, DTO), die wie folgt verwendet werden:
- - Zeigt den Versuch der IDLC an, eine unbefugte Schreiboperation in einen geschützten Teil ihres zugewiesenen Adressraums durchzuführen (der Schreibvorgang wird verhindert).
- - IDLC/SIO hat einen Paritätsfehler in der Adresse festgestellt, die während einer programmierten Operation vom IPO über SIO verwendet wurde (wenn die Operation eine Schreiboperation war, wird sie unterdrückt).
- - IDLC (SIO) hat einen Unterbrechungsbestätigungszyklus (IACK) festgestellt, hat aber keinen anstehenden Vektor zur Übergabe an den IOP
- - Zeigt einen ungültigen Versuch des IOP/SIO an, Punkt-zu- Punkt-Schreiboperationen in Bezug auf einen 32-Bit- Registerplatz in der IDLC unter Verwendung einer nicht sequenziellen Adressierung durchzuführen.
- - Zeigt einen ungültigen Versuch des IOP/SIO an, auf einen reservierten Teil des Systemadressraums zuzugreifen, der der IDLC zugewiesen ist.
- - Zeigt die Feststellung eines Datenparitätsfehlers während einer programmierten E/A-Schreiboperation vom IOP/SIO in einen RAM der IDLC an. Der adressierte Speicherplatz wird nicht aktualisiert, wenn dieser Fehler festgestellt wird.
- - Keiner von zwei Datenstrobeimpulsen, die während einer Lese- oder einer Schreiboperation in Bezug auf eine IDLC- Adresse (oberer oder unterer Strobeimpuls) erwartet wurden, war während der Operation aktiv.
- - Sowohl der obere als auch der untere Datenstrobeimpuls war bei einer Schreibfolge in die internen IDLC-Register mit einer festgelegten Breite von 32 Bit inaktiv.
- - Während einer programmierten Leseoperation (des IOP/SIO) der IDLC-Adresse wurde ein Datenparitätsfehler festgestellt.
- - BUS_ERROR ist während einer DMAC/MIO-Operation in Bezug auf den IOP-Bus aktiv. Der IOP muss seine Statusregister lesen, um weitere Einzelheiten zu erhalten, aber dieses Bit zeigt gewöhnlich an, dass während der Operation entweder ein Adressenparitätsfehler oder ein Doppelbit- ECC-Fehler festgestellt wurde (vom IOP).
- - Zeigt an, dass eine Datenübertragungsanforderung von den L1-Schaltungen übergeben wurde, als die IDLC nicht entsprechend vorbeteitet war, um darauf reagieren zu können (d. h. fehlende Synchronisation zwischen der IDLC und L1; ist höchstwahrscheinlich auf einen Hardwarefehler zurückzuführen).
- - Zeigt an, dass es der IDLC-Logik nicht gelang, die erforderliche Operation innerhalb eines vorher festgelegten, zugeteilten Zeitraums durchzuführen (zeigt gewöhnlich einen internen Hardwarefehler an).
- - In einer Zustandsmaschineneinheit eines IDLC-Segments wurde einungültiger Zustand festgestellt. Dies ist gewöhnlich auf einen Hardwarefehler zurückzuführen.
- - Der IOP hat nicht innerhalb von 50 Mikrosekunden auf eine DMA/MIO-Anforderung von der IDLC geantwortet. Dieser Zeitraum reicht normalerweise aus, damit MIO die Steuerung des IOP-Busses übernehmen kann, und wenn dies nicht geschieht, zeigt dies im Allgemeinen einen Hardwarefehler an.
- Die Felder in diesem Register sind in der folgenden Beschreibung des SIO ausführlich angegeben (siehe Abschnitt 12.3.2)
- Einzelheiten der in diesem Register enthaltenen Felder und ihre Verwendung finden sich in der Beschreibung des RSM (siehe Abschnitt 7.3).
- Das SIO bildet die Schnittstelle zwischen INT und dem IOP, um Unterbrechungsanforderungen und zugehörige Vektoren an den IOP zu übertragen und um dem IOP den Zugriff auf einzelne Register und RAM-Adressräume in der gesamten IDLC zu ermöglichen, sowohl, um den Abruf von Unterbrechungsstatus- und/oder Diagnoseinformationen durch den IOP zu unterstützen als auch dem IOP zu ermöglichen, Anfangszustände von IDLC-Elementen und - Kanälen durch Programmierung festzulegen. Wenn das SIO mit dem IOP-Bus kommuniziert, ist es ein untergeordnetes Segment ("slave") des IOP; d. h., all seine Operationen zur Übertragung von Informationen über den IOP-Bus hängen davon ab, dass der IOP ihre Ausführung einleitet. Auch werden seine Operationen in Bezug auf den IOP und andere IDLC-Elemente zeitlich asynchron zu Verarbeitungsoperationen in IDLC-Kanälen durchgeführt.
- Fig. 43 zeigt den logischen Aufbau und die externen Schnittstellen des SIO-Segments. Dieses Segment ist innerhalb der IDLC mit dem INT-Segment, allen RAMs der IDLC und den wesentlichen Registern in allen anderen Segmenten verbunden. Extern ist es mit dem IOP-Bus und den L1-Schaltungen verbunden.
- Die logischen Funktionen des Segments werden hauptsächlich von zwei unabhängig arbeitenden Zustandsmaschineneinheiten 280 (ICM- oder IOP-Steuerungsmanager-Zustandsmaschine) und 281 (PIO- oder Programm-E/A-Abbildungszustandsmaschine) durchgeführt. Wie ihre Namen vermuten lassen, ist die ICM- Zustandsmaschine für die Anbindung an den IOP-Bus 282 zuständig, und die PIO-Zustandsmaschine ist für die Übertragung von Daten über die programmierbare E/A-Schnittstelle 283 bis 284 zwischen dem SIO und den RAMs der IDLC und anderen Segmenten zuständig. Die ICM-Zustandsmaschine ist allein für die Anbindung an das INT-Segment in Bezug auf die Übertragung von Unterbrechungsanforderungen und Vektoren von Letzterem an den IOP-Bus zuständig und dient auch zur Steuerung der Übertragungen von IDLC-Statusinformationen von den Signalspeichern 285, in die diese Daten von der PIO- Zustandsmaschine gesteuert geschrieben werden.
- Die ICM-Zustandsrrtaschine ist direkt mit dem IOP-Bus an 286 bis 288 verbunden, um Steuersignale mit dem IOP auszutauschen, die Übertragungen von Daten zwischen dem SIO und dem IOP steuern. Diese Steuersignale sind als "X_Y" dargestellt, wobei X die treibende Quelle und Y die Signalfunktion ist. Ein Punkt (".") wird entweder links oder rechts der Signalbezeichnung gesetzt, um diese Bezeichnung der links beziehungsweise rechts verlaufenden Leitung zuzuordnen. ".TOP_INTACK" beispielsweise ist der links verlaufenden Leitung 286 (die vom IOP angesteuert wird) zugeordnet und stellt die Empfangsbestätigung einer Unterbrechungsanforderung/einer Vektorgruppe durch diese Leitung dar, und "STD INT." ist der rechts verlaufenden Leitung 288 zugeordnet und stelle eine Unterbrechungsanforderungsanzeige dar, die von ICM/SIO gesteuert wird.
- An den IOP abgehende Daten werden von den SIO- Bustreiberschaltungen 289 unter der Freigabesteuerung der ICM- Zustandsmaschine auf den IOP-Bus übertragen. Vom IOP-Bus eingehende Daten werdert bei 290 zusammen mit den vom IOP angesteuerten Adresssignalen bei 291 empfangen. Eingehende Daten und Adressen werden jeweils von den Paritätsprüfschaltungen 292 und 293 geprüft, die eine nicht gezeigte Ausgangsverbindungsleitung zum ICM haben, um Letzterem Fehler anzuzeigen.
- Abgehende Daten werden den Bustreibern 289 über die Auswahlschaltungen 294 und 295 übergeben, die beide von der ICM-Zustandsmaschine 280 gesteuert werden. Die Auswahlschaltungen 294 empfangen Eingangssignale von deh Uriterbrechungsvektor-Signalspeicherquellen 296 und 297. Die Signalspeicher 296 empfangen Hardwarefehlervektoren, die ihnen unter der Steuerung der INT_CHP-Zustandsmaschine, die vorstehend beschrieben wurde, vom INT gesendet werden. Die Signalspeicher 297 empfangen unter der Steuerung der INT_CHN- Zustandsmaschine, die zuvor beschrieben wurde, kanalbezogene Ereignis-/Bedingungsvektoren.
- Die Auswahlschaltungen 295 empfangen Daten aus den Lesedatensignalspeichern 298. Die Signalspeicher 298 werden von Ausgangssignalen der Auswahlschaltungen 300 geladen. Die Öperationen der Schaltungen 300 und das Laden der Signalspeicher 298 wird von der PIO-Zustandsmaschine 280 gesteuert. Die Schaltungen 300 übertragen selektiv Daten vom RSM, TSR, FIFOR, DMAR und mehreren Registern. Der Datenpfad vom RSM ermöglicht die Übertragung des Inhalts des HPCR XHDLC- Ptotokollkonfigurationsregister), das sich im RSM befindet. Zu den anderen Registern, die die Auswahlschaltungen 300 speisen, gehören das IHEISR-Register, das sich im INT befindet, und zwei SIO-Register, das ICR (IDLC-Konfigurationsregister) 301 und das HCR (HyperChannel-Konfigurationsregister) 302. Einzelheiten der Feldzuordnungen des ICR sind nachstehend beschrieben, und Einzelheiten der HCR-Felder finden sich in der Beschreibung des HyperChannels (Abschnitt 15).
- Bezug nehmend auf das ICR in Fig. 44, sind die Felder im Einzelnen:
- - Programmierbare Zeitgeberwerte, die die Länge des Zeitraums festlegen, den die IDLC auf eine Bestätigung eines untergeordneten Segments wartet, wenn sie eine Hauptoperation durchführt.
- - Die IDLC bestätigt den Zugriff eines untergeordneten Segments nicht, der fehlerhaft ist, wenn das SEM-Bit inaktiv ist. Sie bestätigt und aktiviert eine Busfehleranzeige bei einem fehlerhaften Zugriff eines untergeordneten Segments, wenn das SEM-Bit aktiv ist.
- - Dieses Bit stellt der Software ein Mittel bereit, mit dem sich das System über SIO zurücksetzen lässt.
- - Dieses Bit legt fest, ob ein oder mehrere Statuswörter verwendet werden sollen, wenn ein Vektor vorhanden ist (siehe das INT-Logikelement für weitere Einzelheiten).
- - Dieses Bit dient zum Schutz des Inhalts eines elektrisch löschbaren Nur-Lese-Speicher-(EEROS-)Elements, das sich außerhalb der IDLC befindet.
- - Dieses Feld dient zur Erzeugung der oberen sechs Bits des manuellen 8-Bit-Vektors für alle Unterbrechungen auf der IDLC-Chipebene.
- - Dieses Feld dient zur Erzeugung der oberen zwei Bits des manuellen 8-Bit-Vektors für alle Unterbrechungen auf Kanalebene.
- - Dieses Bit dient zur Auswahl von entweder der oberen oder der unteren Seite des TSR (man beachte, dass eine Seite im TSR eine Kapazität von 1K · 36 hat).
- - Dieses Feld ermöglicht der IDLC, in verschiedenen Betriebsarten betrieben zu werden: "normal operation" (Normalbetrieb), "reset" (Rücksetzmodus), "forced error normal" (erzwungener Fehler - Normalbetrieb), "forced error reset" (erzwungener Fehler - Rücksetzmodus) und "quiet" (Ruhemodus). Die verschiedenen Betriebsarten bieten Funktionen für Diagnosezwecke. Wenn die Betriebsart "Normalbetrieb" gesetzt ist, nimmt die IDLC den Betrieb auf. Wenn der Rücksetzmodus gesetzt ist, befindet sich die IDLC im Leerlaufmodus. Wenn die Betriebsart "erzwungener Fehler - Normalbetrieb" gesetzt ist, arbeitet die IDLC im Normalbetrieb und erzwingt einen Paritätsfehler bei allen SIO-Schreiboperationen. Wenn die Betriebsart "erzwungener Fehler - Rücksetzmodus" gesetzt ist, arbeitet die IDLC im Rücksetzmodus und erzwingt einen Fehler bei allen SIO- Schreiboperationen. Wenn der Ruhemodus gesetzt ist, arbeitet die IDLC im Normalbetrieb, aktiviert aber keine Unterbrechungen.
- Der IOP-BUs stellt dem SIO eine 18-Bit-Schnittstelle (16 Datenbits, 2 Paritätsbits) bereit, und das SIO ist über eine Schnittstelle mit dem 32 Bit breiten internen Datenbus der IDLC verbunden. Eingehende und abgehende Daten werden über den IOP- Bus in parallelen 18-Bit-Einheiten (zwei 8-Bit-Bytes mit zwei zugehörigen Paritätsbits) übertragen, die von oberen und unteren Datenstrobeimpuls-Funktionen (.IOP_UDS und .IOP_LDS) bei 286 begleitet werden, die anzeigen, welche Bytes gültig sind. Die abgehenden Daten können in parallelen 36-Bit- Einheiten (4 Byte plus Paritätsbits) in die Signalspeicher 298 geläden und über den lOP-Bus in einer zwei Zyklen umfassenden Übertragungsoperation übertragen werden, bei der 18-Bit-Teile der Daten düreh die ICM-Datenauswahlschaltung 295 auf den Bus geräultiplext werden.
- Daten, die vom IOP-Bus am SIO eingehen, können in parallelen 18-Bit-Dateneinheiten (zwei 8-Bit-Bytes und zugehörige Paritätsbits) übertragen werden, die von 24-Bit-Adresseinheiten begleitet werden, welche das Endziel innerhalb der IDLC angeben. Der IOP kann Daten in 32 Bit breite Register in der IDLC leiten, indem er in einer zwei Zyklen umfassenden Übertragungsoperation nacheinander ein Paar von eingehenden 18- Bit-Dateneinheiten über den Bus überträgt. Die erste 18-Bit- Einheit dieses Paares wird in den Datensignalspeicherri 304 zwischengespeichert, was eine parallele Übergabe des Paares auf dem 36 Bit breiten Erweiterungsbus 305 ermöglicht (eine 18-Bit- Einheit von den Signalspeichern 304 und die andere direkt vom IOP-Bus). Der Bus 305 (SIO_DATA_BUS) erstreckt sich bis zu den anderen IDLC-Segmenten und -RAMs.
- Eingehende Adresseinheiten werden über den ICM-Decodierer 306 an die ICM-Zustandsmaschine 280 angelegt und über den PIO- Decodierer 307 an die PIO-Zustandsmaschine 281. Der 2-Bit- Signalspeicher 308 (Signalspeicher "erste Zyklusinformationen") wird vom ICM verwendet, um sich die Steuerparameter des ersten Zyklus einer zwei Zyklen umfassenden Punkt-zu-Punkt- Übertragungsoperation zu merken, d. h., ob die Übertragung des ersten Zyklus eine Leseoperation aus dem IOP oder eine Schreiboperation in den IOP ist und ob das niedrigstwertige Adressbit des ersten Zyklus ungeradzahlig oder geradzahlig ist (letztere Information wird zur Prüfung verwendet, ob die Punktzu-Punkt-Übertragungen an einer Wortgrenze stattgefunden haben).
- Bei eingehenden Datenübertragungen an andere IDLC-Elemente wird die vom ICM-Decodierer 306 decodierte Adresse an die ICM- Zustandsmaschine angelegt und von dieser an die ICM- Adressensignalspeicher 309, die Daten in die PIO- Zustandsmaschine eingeben. Mit Hilfe dieser Information stellt die PIO-Zustandsmaschine fest, wann sie den Ausgang ihres Decodierers 307 aktivieren soll, um die Adresse SIO ADDRESS BUS bereitzustellen, die intern an andere IDLC-Segmente und -RAMs verteilt wird. Der Datenpfad zum RSM (Schnittstelle 283 und RSM_DATA bei 284) erlaubt dem IOP die Durchführung von Schreib- und Lese-Diagnosefunktionen in Bezug auf die internen Signalspeicher vom RSM, die für Zeitsicherungs- und - wiederladeoperationen verwendet werden.
- Die ICM- und die PIO-Zustandsmaschine kommunizieren über eine Anforderungs-/Bestätigungsschnittstelle miteinander. ICM übergibt Lese- und Schreibanforderungen (ICM_PIO_RD, ICM_PIO_WR), die PIO bestätigt (mit PIO_RD_ACK, PIO_WR_ACK).
- Die ICM-Zustandsfüaschine hat 32 mögliche Zustände, die nachstehend beschrieben werden und mittels derer sie das asynchrone IOP-Busprotokoll für Übertragungen von untergeordneten Segmenten und das interne Protokoll zur Anbindung der 16-Bit-Architektur des Busses an die interne 32- Bit-Architektur der iDLC abwickelt. Alle Steuersignale vom IOP (.IOP_RD/WR, .IOP_LDS, .IOP_UDS, .IOP_ADDR_STRB, .IOP_CHP_SEL, .IOP_RESET und .IOP_INTACK) werden zwischengespeichert, bevor sie synchron in die ICM-Zustandsmaschine eingegeben werden, die mit 50 Nanosekunden getaktet wird. Die Paritätsprüfung an dem Adress- und auch dem Datenbus des IOP (IOP_ADDRESS_BUS und IOP_DATA_BUS) erfolgt auf Bytebasis.
- Der Start eines IOP-Buszyklus wird angezeigt, wenn sowohl der Chipauswahlstrobeimpuls (.IOP_CHP_SEL) als auch der Adressenstrobeimpuls (.IOP_ADDR_STRB) gleichzeitig aktiv sind. Die Polarität des Signals .IOP_RD/WR zeigt an, ob der Zyklus ein Schreibzyklus in die IDLC oder ein Lesezyklus aus dem IOP ist (logisch 1 zeigt einen Lesezyklus, logisch 0 einen Schreibzyklus an). Der untere Datenstrobeimpuls (IOP_LDS) und der obere Datenstrobeimpuls (IOP_UDS) zeigen an, ob die oberen oder die unteren 8 Bits des Datenbusses (IOP_DATA_BUS) bei einem Schreibzyklus gültig sind oder ob einbeide Byte(s) bei einem Lesezyklus gültig sind. Die Schreibzyklen in die 32-Bit- Datenregister in der IDLC machen das Auftreten von zwei 16-Bit- IOP-Buszyklen erforderlich, und im ersten Zyklus speichert der ICM vorübergehend sowohl Daten als auch die Parität in den Signalspeichern 304. Im zweiten Zyklus stellt der ICM der PIO- Zustandsmaschine ganze 36 Bits (32 Bits plus 4 Paritätsbits) bereit.
- Lesezyklen von den 32-Bit-Datenregistern erfordern ebenfalls zwei 16-Bit-IOP-Buszyklen, und der ICM wählt die ersten 18 Bits (16 Datenbits plus 2 Paritätsbits) mit Hilfe der Auswahlschaltung 295 aus, die die 36 Bits (32 Datenbits plus 4 Paritätsbits) vom Datenlesesignalspeicher 298 der PIO mültiplext. Der ICM-Adressensignalspeicher 309 wird am Ende des ersten Zyklus dazu verwendet, die aktuelle IOP-Adresse zu Vergleichszwecken im zweiten Zyklus zwischenzuspeichern, um Punkt-zu-Punkt-Adressen mit lediglich einer Adressenänderung zu prüfen, indem er das zweite niedrigstwertige Bit A1 in den Adressen der beiden Zyklen vergleicht. (IOP-Adressen sind mit A0 bis A24 nummeriert). Der Signalspeicher 308 für die ersten Zyklusinformationen des ICM erinnert sich, ob der erste Zyklus ein Lese- oder ein Schreibzyklus ist, und er erinnert sich an den Wert des Bits A1. Diese Informationen werden im zweiten 16- Bit-Zyklus einer 32-Bir-Lese- oder Schreiboperation verwendet. Nach zwei erfolgreichen Punkt-zu-Punkt-Zyklen oder einem vom ICM festgestellten Fehlerzyklus werden die Informationen des ersten Zyklus auf einen Wert "keine Aufzeichnungen" gesetzt. ICM führt eine Datenparitätsprüfung an Lesezyklen durch, um interne Datenparitätsfehler weiter von IOP-Busparitätsfehlern zu trennen.
- ICM zeigt die Abarbeitung von entweder einem Lese- oder einem Schreibzyklus an, indem er seine Datenbestätigungsleitung (SIO_DTACK.) ansteuert. Jeder Fehler einer untergeordneten Einheit, der entweder während eines Lese- oder eines Schreibbuszyklus festgestellt wurde, veranlasst den ICM, die Aktivierung von SIO_DTACK. zu verweigern und das entsprechende Fehlerstatusanzeigebit der untergeordneten Einheit im IHEISR- Register zu setzen (siehe die Beschreibung dieses Registers in der vorausgehenden Beschreibung des INT). Die SIO DTACK- Bestätigung Vom ICM wird vom IOP bei allen Lese- und Schreiboperationen mit einem Zeitlimit versehen, und der IOP ergreift entsprechende Diagnose- oder andere Maßnahmen, wenn ein Fehle rangezeigt wird.
- Der Mechanismus, mit dem ICM anzeigt, dass ein Unterbrechungsvektor für den IOP-Prozessor zur Verfügung steht, besteht darin, dass er das Signal "SIO_INT." asynchron in den aktiven Zustand steuert. Dies führt schließlich dazu, dass die Ausführung von Task-Programmen durch den IOP zurückgestellt und ein Unterbrechungsbestätigungszyklus auf dem IOP-Bus erzeugt wird. Zu diesem Zeitpunkt steuert der IOP ".IOP_INTACK" in den aktiven Zustand, was bewirkt, dass entweder ein Chipvektor (CHIP_VECTOR_LATCH) oder ein Kanalvektor (CHAN_VECTOR_LATCH) auf den unteren 8 Bit des IOP_DATA_BUS vom ICM angesteuert wird.
- Die Vektorsignalspeicher 296 und 297 werden als Vektorhalteregister (VHR) bezeichnet, und der IOP kann auch in Programm-E/A-Zyklen (z. B. zu Diagnosezwecken) auf sie zugreifen.
- Der ICM stellt eine Ebene der Adressendecodierung (ICM ADDRESS. DECODE) bereit, die die Auswahl von L1-Schaltungen, der PIO (anderer IDLC-Teile) oder des VHR bei Lese- und Schreibdatenübertragungen bestimmt (man beachte, dass das VHR- Register in Normalbetrieb des SIO nur gelesen wird). Die L1- Decodierung bewirkt, dass das L1-Chipauswahlsignal (L1_CHP_SEL) aktiv wird und Daten zwischen dem IOP-Bus und den L1- Schaltungen überträgt. Die VHR-Decodierung ermöglicht das Lesen der VHR-Register. Eine Decodierung im PIO-Speicherbereich wird als Zugriff auf einen speicherabgebildeten E/A-Speicherbereich in der IDLC definiert, der sich von Adressen der L1-Schaltungen und der VHR-Register unterscheidet. Solche Decodierungen veranlassen den ICM, durch die Aktivierung von .ICM_PIO_RD oder .ICM_PIO_WR, was von der Richtung des IOP-Buszyklus abhängig ist, einen Dienst vom PIO anzufordern. Die PIO-Zustandsmaschine bestätigt Anforderungen vom ICM mit dem Signal PIO_ICM_ACK.
- PIO stellt neben der Adressendecodierung, die im ICM durchgeführt wird, eine weitere Adressendecodierebene 307 (PIO ADDRESS DECODE) bereit. PIO handhabt das Multiplexen und die Zwischenspeicherung von Daten zwischen internen 36-Bit-IDLC- Bussen (32 Bits Daten, 4 Bits ungerade Parität, mit Ausnahme des DMAR, das 32 Bits Daten und 1 Bit ungerade Parität hat). PIO greift auf das TSR, das FIFOR und die DMAR-RAMs unter Verwendung vän Anforderungs- und Bestätigungssignalen zu, die jeweilige RAMs kennzeichnen, z. B. SIO_TSR_RD (oder SIO_TSR_WR) und TSR_SIO_ACK.
- Über die Auswahlschaltung 300 multiplext PIO während PIO- Lesezyklen 36-Bit-Datenbusse vom TSR, RSM, FIFO, DMACR, dem IHEISR-Register, ICR-Register und HCR-Register an den Lesedatensignalspeicher 298.
- Der RSM DATA-Eingang der Auswahlschaltung 300 ist der Lesepfäd zu den Zeitsicherungs- und -wiederladeregistern im RSM für Diagnosezwecke. Die Eingänge IHEISR_DATA, ICR_DATA und HCR_DATA der Auswahlschaltung sind Lesepfade vom IHEISR-Register (im INT), dem ICR-Register beziehungsweise dem HCR-Register.
- Bei Schreiboperationen verteilt PIO 36-Bit-Daten über den Bus 283 (SIO_DATA_BUS) an dieselben IDLC-Elemente. Das ICR- und das HCR-Register werden innerhalb der IDLC dazu verwendet, Konfigurations- und HyperChannel-Informationen an das RSM- Segment zu verteilen (siehe die bereits erfolgte Beschreibung des RSM und die Beschreibungen des HCR- und ICR-Bits). SIO_IHEISR SEL verläuft vom PIO zum INT und wird bei Übertragungen von IHEISR-Daten an den IOP zur Auswahl des IHEISR-Registers verwendet.
- Wenn SIO RESET, dann Zustand = 0.
- - Wenn sowohl der Ohipauswahlstrobeimpuls (IOP_CHB_SEL) als auch der IOP-Adressenstrobeimpuls (IOP_ADDR_STRB) auf dem IOP-Bus aktiv sind, warte 50 ns, damit sich die Adressenparität stabilisieren kann; gehe in den Zustand 31 über.
- - Wenn der Unterbrechungsbestätigungs-Strebeimpuls (IOP_INTACK) und der Adressenstrobeimpuls (IOP_ADDR_STRB) aktiv sind, setze den VECTOR_SELECTOR-Pfad, um den Vektor aus dem CHIP_VECTOR_LATCH oder dem CHAN_VECTOR_LATCH zu übertragen (CHIP_VECTOR_LATCH hat eine höhere Priorität als CHAN_VECTOR_LATCH). Man beachte, dass die Auswahl von entweder dem Kanal- oder dem Chipvektor durch ICM während des Zyklus I0P INTACK erfolgt, wenngleich der ursprüngliche Grund für die Aktivierung des Signals IOP_INT, das bewirkt, dass der IOP mit IOP_INTACK antwortet, möglicherweise der war, dass ein Vektor in CHN VECTOR LATCH geladen wurde.
- - Wenn keine Vektoren anstehen (d. h., CHP_VECTOR_LATCH und CHN_VECTOR_LATCH sind leer), setze das Verlorene- Unterbrechung-Bit (L1D) im IHEISR; gehe in den Zustand 1 über.
- - Nimm eine Verzögerung um 1 Taktzyklus (50 ns) vor, damit am Ausgang der Vektorauswahlschaltung VECTOR SELECTOR 294 eine gültige Parität erzeugt werden kann. Gehe in den Zustand 2 über.
- - Prüfe die Parität des VECTOR_SELECTOR bei 294a.
- - Wenn die Parität in Ordnung ist, aktiviere eine Datenbestätigung (PIO DTACK) auf dem IOP-Bus; gehe in den Zustand 3 über.
- - Wenn die Parität nicht in Ordnung ist, verweigere die Datenbestätigung PIO DTACK, um eine DTACK- Zeitsperrenbedingung im IOP zu bewirken. Setze die Statusanzeige des Bits "Programm-E/A-Paritätsfehler" (PPE) im IHEISR; gehe in den Zustand 14 über.
- Zustand 3: Setze die Anzeige SIO_CHN_BSY oder SIO_CHP_BSY in Bezug auf INT zurück (diese Signale werden von INT als Anzeigen der Zustände "voll" oder "leer" des CHIP_VEKTOR_LATCH und des CHAN_VECTOR_LATCH überwacht).
- - Setze entweder SIO_CHP_BSY oder SIO_CHN_BSY auf der Grundlage der aktuellen gemultiplexten Position des VECTOR_SELECTOR zurück (d. h., wenn CHIP_VECTOR_LATCH ausgewählt wird, setze SIO_CHP_BSY zurück, und wenn CHAN_VECTOR_LATCH ausgewählt wird, setze SIO_CHN_BSY zurück).
- - Wenn IOP_INTACK inaktiv ist, gehe in den Zustand 15 über.
- - Wenn IOP_INTACK aktiv ist, gehe in den Zustand 7 über.
- - Wenn PIO eine Leseoperation bestätigt (PIO_RD_ACK), sichere die aktuellen IOP-Busadressbits im ICM- Adressensignalspeicher 309, und sichere die Informationen des ersten Zyklus bei 308 (um beim nächstfolgenden Lesezyklus einen schnellen Zugriff auf Daten in den Signalspeichern 298 zu ermöglichen, da es dann nicht notwendig ist, Daten von der PIO-Zustandsmaschine anzufordern); gehe in den Zustand 5 über.
- - Wenn der IOP-Adressenstrobeimpuls (IOP ADDR STRB) inaktiv ist, setze die Informationen des ersten Zyklus auf "keine Aufzeichnungen", da der aktuelle Zyklus vorzeitig endet.
- - Wenn der Chipauswahlstrobeimpuls (IOP CHP SEL) aktiv ist, gehe in den Zustand 15 über.
- - Wenn der Chipauswahlstrobeimpuls (IOP CHP SEL) inaktiv ist, gehe in den Zustand 0 über.
- - Warte, bis "Lese Datenparität" auf dem ICM-DATA-SELECTOR- Bus erzeugt wird und lasse dabei einen Taktzyklus verstreichen (d. h. eine Verzögerung von 50 ns); gehe in den Zustand 6 über.
- - Prüfe die Parität auf dem oberen oder dem unteren Datenbus auf der Grundlage der Prozessorbus-Steuersignale IOP_UDS und IOP_LDS.
- - Wenn die Parität in Ordnung ist, gib PIO_DTACK aus; gehe in den Zustand 14 über.
- - Wenn die Parität nicht in Ordnung ist, setze die Informationen des ersten Zyklus auf "keine Aufzeichnungen", setze die Statusanzeige des Bits "Programmierter E/A-Paritätsfehler" (PPE) im IHEISR- Register, erzeuge "PIO_DTACK" NICHT; gehe in den Zustand 14 über.
- - Wenn das Unterbrechungsbestätigungssignal (IOP_INTACK) inaktiv wird, gehe in den Zustand 0 über.
- - Wenn das Unterbrechungsbestätigungssignal (IOP_INTACK) aktiv bleibt, bleibe im Zustand 7.
- - Wenn einer der beiden zwischengespeicherten Datenstrobeimpulse (IOP_UDS oder IOP_LDS) aktiv wurde, verwende die nicht zwischengespeicherten Datenstrobeimpulse, um gültige 16-Bit-Buszyklen festzustellen, die angefordert werden. Prüfe die Datenparität des IOP-Datenbusses (IOP_DATA_BUS). Prüfe gültige Punkt-zu-Punkt-16-Bit-Zyklen, wenn die Informationen des ersten Zyklus anzeigen, dass der vorherige Zyklus ein Schreibzyklus war.
- - Wenn die Datenstrobeimpulse (IOP_UDS, IOP_LDS) oder der Adressenstrobeimpuls (IOP_ADDR_STRB) aktiv sind, bleibe im Zustand 9.
- - Wenn die Parität in Ordnung und dies die erste Hälfte des 32-Bit-Zyklus ist,, speichere die Daten zwischen, sichere die Informationen des ersten Zyklus ("Schreibzyklus mit A1 = 0"), speichere die Adresse im ICM-Adressensignalspeicher zwischen, und steuere den IOP mit PIQ_DTACK an; gehe in den Zustand 14 über.
- - Wenn die Parität in Ordnung und dies die zweite Hälfte des 32-Bit-Zyklus ist, gib eine Schreibanforderung an PIO aus (ICM_PIO_WR); gehe in den Zustand 10 über.
- - Wenn die Parität nicht in Ordnung ist, setze das Datenparitätsfehlerbit (DPE) im IHEISR, erzeuge "PIO_DTACK" NICHT; gehe in den Zustand 14 über.
- - Wenn entweder der nicht zwischengespeicherte Datenstrobeimpuls IOP _UDS oder der nicht zwischengespeicherte Datenstrobeimpuls IOP_LDS inaktiv ist, hat der IOP die beiden Datenstrobeimpulse nicht in einen aktiven Zustand gesteuert, oder es wurde gegen eine Programmierbeschränkung verstoßen. In beiden Fällen ist dies kein 16-Bit-Zyklus, setze also eine Statusanzeige "keine Datenstrobeimpulse" (NDS) im IHEISR, erzeuge "PIO_DTACK" NICHT; gehe in den Zustand 14 über.
- - Wertn der Adressenstrobeimpuls (IOP_ADDR_STRB) inaktiv ist, gehe davon aus, dass der IOP eine PIO_DTACK-Zeitsperre hatte und der aktuelle Zyklus vorzeitig endet; gehe in den Zustand 0 über.
- - Wenn die Schreibbestätigung der PIO (PIO_WR_ACK) inaktiv oder der Adressenstrobeimpuls (IOP_ADDR_STRB) aktiv ist, bleibe im Zustand 10.
- - Wenn die Schreibbestätigung der PIO (PIO_WR_ACK) aktiv ist, sichere die Informationen des ersten Zyklus ("Schreibzyklus mit A1 = 1"), erzeuge PIO_DTACK; gehe in den Zustand 14 über.
- - Wenn der Adressenstrobeimpuls (IOP_ADDR_STRB) inaktiv ist, gehe von einer Zeitsperre PIO DTACK aus, setze die Informationen des ersten Zyklus auf "keine Aufzeichnungen"; gehe in den Zustand 0 über.
- - Wenn die Datenstrobeimpulse (IOP_UDS oder IOP_LDS) inaktiv bleiben oder der Adressenstrobeimpuls (IOP_ADDR_STRB) aktiv bleibt, bleibe im Zustand 13.
- - Wenn einer der beiden zwischengespeicherten Datenstrobeimpulse (IOP_UDS oder IOP_LDS) aktiv wurde, gib das L1-Chipauswahlsignal (L1_CHP_SEL) aus; gehe in den Zustand 14 über. Man beachte, dass der L1-Chip selbst für die Rückgabe der Datenbestätigung PIO_DTACK des Prozessors und nicht die IDLC verantwortlich ist, obwohl das SIO- Segment den IOP_ADDR_STRB vom Prozessorbus weiterhin überwachen muss, um festzustellen, wann der aktuelle Buszyklus endet (d. h., wann der Adressenstrobeimpuls des Prozessors inaktiv wird).
- - Wenn der Adressenstobeimpuls (IOP_ADDR_STRB) inaktiv wird, gehe von einer Zeitsperre ETC_DTACK aus; gehe in den Zustand 0 über.
- - Wenn der Adressenstrobeimpuls (LOP_ADDR_STRB) aktiv ist, bleibe im Zustand 14.
- Wenn der Adressenstrobeimpuls (IOP_ADDR_STRB) und das Chipauswahlsignal (IOP_CHP_SEL) inaktiv sind, gehe in den Zustand 0 über.
- - Wenn der Adressenstrobeimpuls (IOP_ADDR_STRB) inaktiv ist und das Chipauswahlsignal (IOP_CHP_CHP_SEL) aktiv ist, gehe in den Zustand 15 über.
- - Wenn das Chipauswahlsignal (IOP_CHP_SEL) aktiv ist, bleibe im Zustand 15.
- - Wenn das Chipauswahlsignal (IOP_CHP_SEL) inaktiv ist, gehe in den Zustand 0 über.
- - Halte SIO_EEROS_CE und SIO_EEROS_OE aktiv, um der EEROS- Lesezugriffszeit gerecht zu werden (EEROS ist ein optionaler Nur-Lese-Diagnosespeicher, der für die vorliegende Beschreibung nicht relevant ist); gehe in den Zustand 17 über.
- Halte SIO_BEROS_OB und SIO_EEROS_OE weiterhin aktiv, um der EEROS-Lesezugriffszeit gerecht zu werden; gehe in den Zustand 18 über.
- - Halte SIO_EEROS_OB und SIO_EEROS_OE weiterhin aktiv, um der EEROS-Lesezugriffszeit gerecht zu werden; gehe in den Zustand 19 über.
- Halte SIO_EEROS_CE und SIO_EEROS_OE weiterhin aktiv, um der EEROS-Lesezugriffszeit gerecht zu werden; gehe in den Zustand 20 über.
- - Halte SIO_EEROS_CE und SIO_EEROS_CE weiterhin aktiv, um der EEROS-Lesezugriffszeit gerecht zu werden; gehe in den Zustand 21 über.
- - Halte SIO_EEROS_CE und SIO_EEROS_CE weiterhin aktiv, um der EEROS-Lesezugriffszeit gerecht zu werden. Die Daten aus dem EEROS sollten auf dem IOP-Datenbus (IOP_DATA_BUS) gültig sein, aber gestatte einen weiteren Taktzyklus für die Erzeugung einer gültigen Parität; gehe in den Zustand 22 über.
- - Halte STO_EEROS_CE und SIO_EEROS OE weiterhin aktiv, damit die EEROS-Lesedaten aus dem EEROS auf den IOP-Datenbus (IOOP_DATA_BUS) geleitet werden können, erzeuge das Signal IOP DTACK; gehe in den Zustand 14 über.
- - Wähle entweder den Chipvektor (CHIP_VECTOR_LATCH) oder den Kanalvektor (CHAN_VECTOR_LATCH) auf der Grundlage der aktiven Vektor-belegt-Signale (SIO_CHP_BSY oder SIO_CHN_BSY) aus, wobei der Vektorerzeugung auf Chipebene eine höhere Priorität einzuräumen ist.
- - Wenn keine Vektoren zwischengespeichert sind (d. h., weder SIO_CHP_BSY noch SIO_CHN_SSY ist aktiv), gib einen fest codierten, leeren Vektorwert auf den Bus. Setze die ausgewählte Vektor-belegt-Anzeige zurück; gehe in den Zustand 1 über.
- - Wenn das EEROS-Schreibschutzbit (WP) im ICR-Register nicht aktiv ist, wird ein EEROS-Schreibschutzfehler festgestellt, setze das WPE-Bit im IHEISR, erzeuge "PIO_DTACK" NLCHT; gehe in den Zustand 14 über.
- - Wenn das EEROS-Schreibschutzbit (WP) im ICR-Register aktiv ist, ist dies ein gültiger EEROS-Schreibzyklus, liefere das EEROS-Chipaüswahlsignal (SIO_HEROS_CE) und das EEROS- Schreibsignal (MC_EEROS_WE), erzeuge PIO_DTACK; gehe in den Zustand 25 über.
- - Halte SIO_EEROS_CE und SIO_SEROS_WE weiterhin aktiv, um den EEROS-Schreibeinstell- und -Haltezeiten gerecht zu werden; gehe in den Zustand 26 über.
- - Halte SIO_SEROS_CE und SIO_EEROS_WE weiterhin aktiv, um den EEROS-Schreibeinstell- und -Haltezeiten gerecht zu werden; gehe in den Zustand 27 über.
- - Halte SIO_SEROS_CE und SIO_EEROS_WE weiterhin aktiv, um den EEROS-Schreibeinstell- und -Haltezeiten gerecht zu werden; gehe in den Zustand 28 über:
- - Halte SIO_EEROS_CE und SIO_SEROS_WE weiterhin aktiv, um den EEROS-Schreibeinstell- und -Haltezeiten gerecht zu werden; gehe in den Zustand 29 über.
- - Deaktiviere die Signale SIO_EEROS_CE und SIO_EEROS-WE an EEROS; gehe in den Zustand 30 über.
- - Erzeuge das SignaL IOP_DTACK an den IOP; gehe in den Zustand 14 über.
- Zustand 31: Adressenparitätsprüfung. Stelle fest, ob die untergeordnete Einheit (Slave) eine Lese- oder eine Schreiboperation durchführt. Stelle fest, ob es sich um einen speicherabgebildeten Zugriff auf das PIO; einen speicherabgebildeten Zugriff auf die L1 oder um einen Zugriff auf das Vektorhalteregister (VHR) handelt.
- - Wenn die IOP-Adressenparität nicht in Ordnung ist, setze das Adressenparitätsfehler-(APE-)Bit im IHEISR, erzeuge "PIO_DTACK" NICHT; gehe in den Zustand 14 über.
- - Wenn das Lese-/Schreibsignal des Prozessorbusses (IOP_RD/WR) einer Lesezyklus anzeigt und das Speicherabbild des Vektorhalteregisters decodiert wird, gehe in den Zustand 23 über.
- - Wenn das Signal IOP_RD/WR einen Lesezyklus anzeigt und das Speicherabbild der PIO decodiert wird, was einen Zugriff auf das TSR, DMAR oder FIFOR, das ICR-Register, IHEISR- Register oder HCR-Register anzeigt, aktiviere das Signal für die Freigabe des Datenbustreibers, und wähle den oberen oder unteren PIO-Datenbusmultiplexer.
- - Wenn die letzte Iesezykluszugriffsadresse im ICM- Adressensignalspeicher (ICM_ADDRESS_LATCH) mit der aktuellen IOP-Adresse übereinstimmt und A1 den Wert "1" hat (A1 = 1), dann sind die Daten im PIO- Datensignalspeicher gültig und können direkt auf den IOP- Bus geleitet werden; gehe in den Zustand 5 über.
- - Wenn die aktuelle lOP-Adresse A1 den Wert "0" hat (A1 = 0), muss auf das PIO-Segment zugegriffen werden; gib das Signal ICM_PIO_RD an die PIO-Zustandsmaschine aus; gehe in den Zustand 4 über.
- - Wenn A1 = 1 ist und der letzte Zugriff ein Schreibzugriff war, ist dies ein 32-Bit-Programm-E/A-Schreibfolgefehler, setze das WSE-Statusbit im IHEISR-Register, setze die Informationen des ersten Zyklus auf "keine Aufzeichnungen", erzeuge "PIO_DTACK" NICHT; gehe in den Zustand 14 über.
- - Wenn das Signal IOP RD/WR einen Lesezyklus anzeigt und L1- Adressen decodiert werden, setze das Auswahlsignal L1_CHP_SEL in den aktiven Zustand; gehe in den Zustand 14 über.
- - Wenn das Signal IOP_RD/WR einen Lesezyklus anzeigt und das EEROS-Speicherabbild decodiert wird, gehe in den Zustand 16 über.
- - Wenn das Signal IOP_RD/WR einen Schreibzyklus anzeigt und die speicherabgebildeten Adressen der PIO decodiert werden, wird gerade versucht, auf das TSR, das DMAC, die FIFOs, das ICR, das IHEISR oder das HCR zuzugreifen.
- - Wenn A1 = O ist und der letzte Zugriff ein PIO- Schreibzyklus mit dem Adressbit 1 (A1) = 0 war, ist der aktuelle Zyklus ein Programm-E/A-Schreibfolgefehler, setze das WSE-Bit im IHEISR, gib PIO_DTACK nicht aus; gehe in den Zustand 14 über.
- - Wenn A1 = 0 ist und der letzte Zugriff kein Schreibzyklus mit A1 = 0 war, ist dies ein gültiger PIO-Schreibzyklus für die ersten 16 Bits; gehe in den Zustand 9 über.
- - Wenn A1 = 1 ist und der letzte Zugriff ein Schreibzyklus mit A1 = 0 web und die vorherige Adresse und die aktuelle Adresse übereinstimmen, ist dies ein gültiger PIO- Lesezyklus für die zweiten 16 Bits; gehe in den Zustand 9 über.
- - Wenn A1 = 1 ist, der vorherige Zyklus aber entweder kein Schreibzyklus mit A1 = 0 war oder die aktuelle Adresse und die vorherige Adresse nicht übereinstimmen, ist dies ein Programm-E/A-Schreibfehler, setze das PWE-Bit im IHEISR, erzeuge "PIO_DTACK" NICHT; gehe in den Zustand 14 über.
- - Wenn IOP_RD/WR einen Schreibzyklus anzeigt und die L1- Chipadressen decodiert werden, aktiviere L1_CHIP_SEL, und gehe in den Zustand 13 über.
- - Wenn IOP_RD/WR einen Schreibzyklus anzeigt und das EEROS- Speicherabbild decodiert wird, gehe in den Zustand 24 über.
- - Wenn die PIO-, EEROS-, L1-Chip- oder VHR-Registeradresse nicht decodiert wurde, wurde auf eine ungültige Programm- E/A-Adresse im IDLC-Speicherabbild zugegriffen, setze das PIA-Bit im IHEISR-Register, erzeuge "ICE_DTACK" NICHT; gehe in den Zustand 14 über.
- Wenn SIO_RESET, deaktiviere alle Auswahl-, Bestätigungs- und Freigabesignale; gehe in den Zustand 1 über.
- - Warte auf eine Leseanforderung ICM_PIO_RD oder eine Schreibanforderung ICM_PTO_WR von der ICM.
- - Wenn keine Anforderungen aktiv sind, bleibe im Zustand 1.
- - Wenn entweder ICM_PIO_RD oder ICM_PIO_WR aktiv wird, beginne mit der Decodierung der IOP-Adresse (IOP ADDRESS) mit Hilfe der PIO-Adressendecodierlogik, und gehe in den Zustand 2 über.
- - Wenn keine der Adressen der Segmente (TSR, DMACR, FIFO oder RSM) oder keine der Adressen der Register (IHEISR, TCR oder HCR) vom PIO-Adressendecodierer decodiert wurden, wurde eine ungültige Adresse decodiert, gehe in den Zustand 5 über.
- - Wenn eine gültige Adresse für ein Segment decodiert wurde, gib die Auswahlleitung (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) an das entsprechende Segment auf der Grundlage der decodierten Adresse und des Zustands des Signals IOP_RD/WR frei; gehe in den Zustand 3 über.
- - Wenn eine gültige Adresse für ein Register decodiert wurde und das Signal IOP_RD/WR einen Schreibzyklus anzeigt, gib die Auswahlleitung an das entsprechende Register frei, um die Daten vom SIO_DATA_BUS mittels Strobeimpuls in das Register zu steuern, erzeuge PIO_WR_ACK; gehe in den Zustand 4 über.
- - Wenn eine gültige Adresse für ein Register decodiert wurde und das Signal IOP_RD/WR einen Lesezyklus anzeigt, gib PIO SELECTOR und READ DATA LATCH an das entsprechende Register frei, erzeuge PIO_RD_ACK; gehe in den Zustand 4 über.
- - Warte auf die Bestätigung des entsprechenden Segments (DMACR_SIO_ACK, FIFO_SIO_ACK, TSR_SIO_ACK oder RSM_SIO_ACK) oder darauf, dass das Signal ICM_PIO_RD inaktiv wird.
- - Wenn keine Bestätigung erfolgt oder ICM_PIO_RD aktiv bleibt, bleibe im Zustand 3.
- - Wenn das Signal ICM_PIO_RD inaktiv wird, zeigt dies an, dass der IOP-Buszyklus vorzeitig endet, setze das Bit "Programm-E/A-Paritätsfehler" (PPE) im IHEISR, und gehe in den Zustand 1 über.
- - Wenn die Bestätigung des entsprechenden Segments erfolgt, erzeuge das Signal PIO_RD_ACK, gehe in den Zustand 4 über.
- - Warte darauf, dass die Anforderung ICM_PIO_RD oder ICM_PIO_WR deaktiviert wird.
- - Wenn ICM_PIO_RD oder ICM_PIO_WR aktiv ist, bleibe in diesem Zustand. Wenn ICM_PIO_RD und ICM_PIO_WR inaktiv sind, gehe in den Zustand 1 über.
- - Wenn im PIO-Adressraum eine ungültige Adresse decodiert wurde, setze das Bit "Ungültige Programm-E/A-Adresse" (PIA) im IHEISR-Register, und antworte nicht auf die ICM- Anforderung. Dies veranlasst den IOP dazu, dass er die Datenbestätigung IOP_DTACK schließlich einem Zeitlimit unterwirft. Warte, bis entweder ICM_PIO_RD oder ICM_PIO_WR inaktiv werden; gehe in den Zustand 1 über.
- Alle restlichen Zustände sind ungültig/werden nicht verwendet; wenn ein Eintrittin einen dieser Zustände erfolgt, aktiviere das Bit "Fehlerzustand festgestellt" (ESD) im IHEISR. Gehe in den Zustand 1 über.
- Die DMARQ (DMA-Anforderungswarteschlange) stellt eine Gruppe von "Anforderungs"-Registern und Auswahllogik dar, die dazu dient, Anforderungen für Maßnahmen von den FIFO-Managern (RFM, TFM) an das DMAC-(DMA-Steuerungs-)Segment zu übertragen und Bestätigungs-(Rücksetz-)Anzeigen vom DMAC an die anfordernden Segmente zutückzusenden. DMARQ stellt eine Betriebsschnittstelle zwischen synchronen Verarbeitungselementen der IDLC (RFM, TFM) und asynchronen Verarbeitungselementen (DMAC) bereit. Anforderungen vom RFM und TFM werden synchron in den DMARQ-Registersignalspeichern empfangen, d. h. während entsprechender Zeitschlitze der Übergabe durch RFM, TFM.
- Der logische Aufbau der DMARQ ist in Fig. 47 gezeigt. Die Anforderungsregister sind in 3 verschiedene Registerwarteschlangen gegliedert, die bei 330, 331 und 332 angegeben sind. Die Eingangssignal-Auswahlschaltung 333 leitet Anforderungssetz- und -rücksetz-Eingangssignale an die einzelnen Warteschlangen 330 bis 332 und an ausgewählte Bitstellen innerhalb der Warteschlangen weiter. Die Setzeingangssignale stammen von TFM und RFM und die Rücksetzeingangssignale vom DMAC.
- Die Ausgangssignal-Auswahlschaltung 334 übergibt RFM und TFM im Zeitmultiplexbetrieb Anzeigen von Anforderüngsbitzuständen in den Warteschlangen, d. h. synchron mit Kanal-/Schlitzprozessen. Anzeigen an RFM, DMARQ_RFM_REQ, zeigen, wenn sie in einem beliebigen Zeitschlitz aktiv sind, an, dass eine Anforderung für eine DMA-Datenübertragungsmaßnahme in Bezug auf die Empfangsseite des Kanals ansteht, der diesem Schlitz zugeordnet ist. Genauso geben Anzeigen an TFM, DMARQ_TFM_REQ, an, dass Anforderungen für Datenübertragungen in Bezug auf die Sendeseite von Kanälen anstehen, die den jeweiligen Schlitzen zugeordnet sind.
- Die Ausgangssignale aller Bitstellen in den Warteschlangen 330 bis 332 werden auch parallel dem DMAC an den Ausgängen übergeben, die jeweils mit 330a bis 332a bezeichnet sind. Bitstellen, die anstehende Anforderungen haben, haben aktive Ausgangssignale, und andere Bitstellen haben inaktive Ausgangssignale. Die Auswahlsteuereinheit 335 steuert die Weiterleitung von Anforderungssetz- und -rücksetzsignalen durch die Eingangssignal-Auswahlschaltung 333 (von den FIFO-Managern beziehungsweise dem DMAC) und die Weiterleitung von Anzeigen von in die Warteschlange gestellten Anforderungsstatusfunkaionen durch die Multiplexer- Auswahlsteuereinheit 335 an die zeitsegmentierten Ausgänge bei DMARQ_RFM_RQE und DMARQ_TFM_REQ.
- Aus Gründen, die erkennbar werden, wenn zulässige Abbildungen von BTDM-Schlitzzeitposltionen auf HyperChannels und Kanäle vom Typ B nachstehend allgemein erklärt werden, priorisiert das DMAC die von ihm durchgeführte Abwicklung der Anforderungen bei 330a bis 332a, wobei H1-HyperChannel-Anforderungen bei 330a eine höhere Priorität eingeräumt wird als H0-HyperChannel- und B-/D-Kanal-Anforderungen bei 331a und 332a und H0-Anforderungen bei 331a eine höhere Priorität eingeräumt wird als B-/D-Kanal- Anforderungen bei 332a. Bei Empfangs- und Sendeanforderungen wird Empfangsanforderungen in jedem HyperChannel oder Kanal (willkürlich) eine höhere Priorität als Sendeanforderungen in demselben Kanal eingeräumt.
- Jede Warteschlange enthält eine Anzahl von Anforderungsübergabe-(Bit-)stellen, die der Höchstzahl der jeweiligen Kanäle entspricht, die der Warteschlange zugeordnet werden können. Da nur ein HyperChannel vom Typ H1 in den 32 verfügbaren Schlitzzeiten pro BTDM-Zeitrahmen unterstützt werden kann (siehe die Beschreibung der HyperChannels im folgenden Abschnitt 15), enthält die zugehörige Warteschlange 330 2 Bitstellen (eine für Empfangsdatenanforderungen und die andere für Sendedatenanforderungen). Da 5 HyperChannels vom Typ H0 unterstützt werden können (wenn kein H1-HyperChannel aktiv ist), enthält die Warteschlange 331 10 Bitstellen (5 für Empfangsdatenanforderungen von jedem der 5 H0-HyperChannels, H01 bis H05, und 5 für Sendedatenanforderungen von denselben HyperChannels). Da die grundlegenden Schlitzzeitpositionen an der BTDM einzelnen Kanälen vom Typ B/D zugeordnet werden können, enthält die Warteschlange 332 schließlich 64 Bitstellen (32 für Empfangsdatenanforderungen in Bezug auf diese Kanäle und 32 für Sendedatenanforderungen in denselben Kanälen).
- Die parallelen Warteschlangenausgänge bei 330a, 331a und 332a haben Leitungen von jeder der entsprechenden Warteschlangen- Bitstellen. Folglich enthält 330a 2 Leitungen (1 Empfangs-, 1 Sendeleitung), 331a enthält 10 Leitungen (5 Empfangs-, 5 Sendeleitungen) und 332a enthält 64 Leitungen (32 Empfangs-, 32 Sendeleitungen). Wenn sie aktiv ist, zeigt jede Leitung an, dass eine Anforderung in der jeweiligen Warteschlangenposition aktiv ansteht.
- Da HyperChannels IDLC-Dienste während mehrerer Zeitschlitze in jedem BTDM-Rahmen empfangen, während Kanäle vom Typ B Dienste nur in einem einzigen Schlitz pro Rahmen empfangen, dürfte es offensichtlich sein, dass HyperGhannel-Anforderungen für eine DMA-Datenübertragung einen schnelleren DMAC-Dienst erforderlich machen als Anforderungen von B-Kanälen, wenn die zugewiesene Bandbreite effizient genutzt werden soll. Da H1-HyperChannels außerdem über eine größere zugewiesene Bandbreite verfügen als HyperChannels vom Typ H0, müssen H1-Anforderungen einen schnelleren DMA-Dienst empfangen als Anforderungen von H0- HyperChannels oder B-/D-Kanälen. Folglich sollte die vorstehend kurz dargelegte Grundlage für die Vergabe von Prioritäten durch das DMAC (H1-Anforderungen haben Priorität vor H0- oder B- Kanal-Anforderungen und H0-Anforderungen haben Priorität vor B- Kanal-Anforderungen) nun klar sein.
- Die Auswahlsteuereinheit 335 empfängt Anforderungseingangssignale vom RFM und TFM, um Anforderungen für Empfangs- und Sendedienste in den DMARQ-Registern, RFM_DMARQ_SET beziehungsweise TFM_DMARQ_SET, zu setzen und getrennte Eingangssignale vom DMAC, DMAC_DMARQ_RCV_RESET beziehungsweise DMAC_DMARQ_XMIT_RESET, um diese Anforderungen zurückzusetzen, während sie bedient werden.
- In Bezug auf das Setzen von Anforderungen vom RFM und TFM empfängt die Steuereinheit 335 weitere Auswahlsteuereingangssignale vom RSM. RSM_DMARQ_H1 oder RSM_DMARQ_H0 kennzeichnet wirkungsvoll eine der Warteschlangen 330 bis 332 (die Warteschlange 330, wenn die H1-Auswahlquelle aktiv ist, die Warteschlange 331, wenn die H0-Auswahlquelle aktiv ist, und die Warteschlange 332, wenn weder die eine noch die andere Auswahlquelle aktiv ist). Der 5-Bit- Zeitschlitzzeiger, RSM TSI, kennzeichnet wirkungsvoll ein Paar (Empfangs- und Sende-)Anforderungspositionen in der ausgewählten Warteschlange. Die Anforderungsquelle, RFM_DMARQ_SET oder TFM_DMARQ_SET, stellt fest, welche Position des ausgewählten Paares tatsächlich gesetzt ist (die Empfangs- oder die Sendeposition).
- In Bezug auf das Rücksetzen von Anforderungen vom DMAC empfängt die Steuereinheit 335 ein codiertes Eingangssignal vom DMAC, DMAC_H-B_SEL, das die Auswahl von einer der Warteschlangen 330 bis 332 kennzeichnet, und ein Zeigereingangssignal, das die Auswahl von einem Paar von Registerpositionen in dieser Warteschlange kennzeichnet, DMAC_H_PTR beziehungsweise DMAO_B_PTR. Die Rücksetzanforderungsquelle, DMAC_DMARQ_RCV_RESET cder DMAC_DMARQ_XMIT_RESET, legt fest, welche Position des ausgewählten Paares zurückgesetzt wird (die Empfangs- oder die Sendeposition).
- In Bezug auf HyperChannels, von denen jeder eine Vielzahl von BTDM-Schlitzpositionen umfasst (siehe die folgende Beschreibung von HyperChannels), wird die Zeitschlitzanzeige RSM_TSI vom RSM von einem Wert, der zu dem aktuellen Zeitschlitzzählstand gehört, in einen Wert umgesetzt, der zu der Zeitposition eines (zuerst erscheinenden) Referenzzeitschlitzes von den Zeitschlitzen gehört, die in diesen HyperChannel eingefügt werden. Somit sind alle Maßnahmen, die in Bezug auf den jeweiligen HyperChannel ergriffen werden (in der DMARQ, bei Zeitsicherungs- und -wiederladeoperationen in Bezug auf das TSR und bei Übertragungen in Bezug auf das FIFOR), auf Positionen gerichtet, die zu entsprechenden Referenzzeitschlitzen gehören. Die vom RSM durchgeführte HyperChannel-TSI-Umsetzung wird in Abhängigkeit von Informationen festgelegt, die von IOP/SIO in das Register HCR gestellt werden, wenn die Abbildung des HyperChannels festgelegt wird (siehe die folgende Beschteibung des HyperChannel).
- Wenn es bereit ist, bedient das DMAC jeweils einzeln und in (absteigender) Prioritätsrangfolge Anforderungen, die in die Warteschlangen 330 bis 332 gestellt werden: H1- Empfangsanforderung, H1-Sendeanforderung, H0- Empfangsanforderung, H0-Sendeanforderung, Empfangsanforderung eines normalen B-Kanals, Sendeanforderung eines normalen B- Kanals. Die DMAC-Zustandslogik merkt sich die Herkunft einer jeden für die Erbringung eines Dienstes ausgewählten Anforderung, und wenn sie bereit ist, die Anforderung in der DMARQ zurückzusetzen, werden diese Informationen zur Ermittlung von Zuständen von entsprechenden Rücksetzauswahlsignalen verwendet, des DMAC_H-B_SEL der Auswahlschaltung, des aktiven Signals der beiden Zeiger DMAC_H_PTR oder DMAC_B_PTR und des aktiven Signals von zwei Empfangs-/Senderücksetzanzeigen DMAC_DMARQ_RCV/XMIT_RESET. Folglich setzt das DMAC die entsprechende Anforderung zurück, indem sie Eingangssignale an die Auswahlsteuereinheit 335 aktiviert: (1) DMAC_H-B_SEL, das eine der 3 Warteschlangen 330 bis 332 auswählt, (2) entweder DMAC_B_PTR oder DMAC_H_PTR, das ein Paar Positionen in der ausgewählten Warteschlange unterscheidet, und (3) entweder DMAC_DMARQ_RCV_RESET oder DMAC_DMARQ_XMIT_RESET, das anzeigt, welche Position des Paares zurückgesetzt werden soll.
- Während des Verarbeitungsintervalls eines jeden Schlitzes, der einem HyperChannel zugeordnet ist, setzt RSM die Zeitschlitzanzeige RSM_TSI in einen Wert um, der zu dem entsprechenden HyperOhannel gehört, und aktiviert entweder RSM_DMARQ_H1 oder RSM_DMARQ H0. Im Zeitmultiplexbetrieb und auf der Grundlage der momentanen Werte von RSM_TSI, RSM_DMARQ_H1 und RSM_DMARQ_H0 weist die Auswahlsteuereinheit 335 die Ausgangssignal-Auswahlschaltung 334 an, an ihren Ausgängen 334R und 334T Signale anzulegen, die den Zuständen von zugehörigen Bitstellen in zugehörigen Warteschlangen entsprechen, wobei diese Ausgangssignale dem Status der Empfangs-DMA- und Sende- DMA-Anforderungsabwicklung in dem Kanal entsprechen, der gerade synchron bedient wird (demjenigen, der TSI entspricht).
- Die Ausgangssignale 334R und 334T werden an RFM beziehungsweise TFM übertragen. Wenn 334R somit den Statu s "gesetzt" anzeigt, während RFM ein zugehöriges Anforderungssetzausgangssignal hat, deaktiviert RFM sein Ausgangssignal, während er den internen Status aufrechterhält und sich merkt, dass er in Bezug auf den entsprechenden Kanal eine Anforderung anstehen hat. Wenn 334R den Status "zurückgesetzt" anzeigt, während die interne RFM- Anzeige eine anstehende Anforderung anzeigt (und RFM damit anzeigt, dass seine Anforderung vom DMAC bedient wurde), setzt RFM seine interne Anzeige zurück und nimmt die Verarbeitung von Empfangsdaten in Bezug auf das FIFOR wieder auf. Ähnliche Maßnahmen werden vom TEM in Bezug auf die Anzeigen bei 334T ergriffen.
- Zu dem Zeitpunkt, zu dem das System zurückgesetzt wird, werden alle Register in den Warteschlangen 330 bis 332 zurückgesetzt. Während der anschließenden Verarbeitung Von Empfangsdaten, wenn RFM ein viertes Byte der Empfangsdaten in das FIFOR lädt, und zwar in den Pufferspeicherbereich, der dem Kanal zugeordnet ist, der gerade bedient wird (den RDCR2-Speicherbereich dieses Kanals), aktiviert RFM eine Anforderungssetzanzeige RFM_DMARQ_SET an die DMARQ. Dies bewirkt, dass die DMARQ eine entsprechende Bitstelle in einer ihrer Warteschlangen setzt und dabei eine Setzanzeige auf einer entsprechenden Leitung bei 330a, 331a oder 332a übergibt, die signalisiert, dass eine entsprechende Anforderung an das DMAC (für einen Empfangsdatenübertragungsdienst) ansteht. Während das DMAC die Abarbeitung der Anforderung abschließt (indem es die Datenübertragung aus dem entsprechenden FIFOR-Pufferspeicher in den IOP-Speicher abschließt) stellt es der DMARQ wie beschrieben Eingangssignale bereit, die dazu dienen, die zugehörige Warteschlangenposition zurückzusetzen, was dem RFM während des zugehörigen Zeitschlitzes bei 334R wirksam anzeigt, dass die DMA-Übertragung abgeschlossen wurde.
- Während TFM einen Pufferspeicherbereich im FIFOR entleert, der dem Kanal zugeordnet ist, der gerade bedient wird (den zugehörigen TDCR2-Speicherbereich) aktiviert er ebenso eine Setzanforderung TFM_DMARQ_SET, die bewirkt, dass eine Anforderung in Bezug auf diesen Kanal an das DMAC übertragen wird. Und während der DMA-Dienst abgeschlossen wird, wird der entsprechende FIFOR-Pufferspeicher mit Daten vom IOP-Speicher geladen, und die Anzeige dieses Ereignisses wird TFM bei 334T übergeben.
- Die DMA-RAM-(DMAR-)Einheit mit Zugriffssteuerungen ist in Fig. 48 gezeigt. Sie wird zur Speicherung von Daten verwendet, die vom DMAC und SIO übergeben werden, und zum Abruf von Daten an diese Segmente. Ihr kanalbezogener Inhalt (Speicherbereichszuordnungen pro Kanal) ist allgemein in Fig. 8 gezeigt. Wie in dieser Figur gezeigt ist, sind jedem Kanal 4 Wortspeicherbereiche zur Speicherung der Terme RDCR3, RDCR4, TDCR3 und TDCR4 zugeordnet (wobei RDCR beziehungsweise TDCR für das Empfangs- und das Sende = DMA-Konfigurationsregister stehen), welche die in den nachstehend erörterten Fig. 50 bis 53 gezeigten Formen haben.
- Bezug nehmend auf Figur. 48, umfasst die Einheit eine 128 · 33-RAM- Speichermatrix 350, die Daten- und Adresseneingangssignale von den Auswahlschaltungen 351 empfängt und bei 352 Datenausgangssignale auf den Bus 353 gibt. Die Eingangssignal- Auswählschaltung 351 empfängt (Adressen- und Daten-)Eingangssignale vom SIO (SIO_ADDRESS_BUS und SIO_DATA_BUS) und dem DMAC (DMAC_CHN_NBR und DMAC_DMAR_BUS). Datenausgangssignale von der Speichermatrix (DMAR_DATA) werden dem DMAC und dem SIO über den Bus 353 zusammen mit Bestätigungsausgangssignalen zugeführt, die nachstehend erörtert werden und wirksam kennzeichnen, welches Segment die Daten empfangen soll.
- Das Eingangssignal DMAC_CHN_NBR in die Auswahlschaltung 351 stellt eine Teiladresse eines zugehörigen Kanalspeicherbereichs in der Speichermatrix 350 dar. Es wird von der Zustandslogik des DMAC so eingestellt, dass es in Abhängigkeit von der Art der DMAC-Anforderung, die gerade bedient wird (siehe die folgende Beschreibung der Anforderungssignalspeicher 355), entweder der Schlitznummer eines B-/D-Kanals entspricht (gleich dem Wert von DMAC_B_PTR ist) oder der Referenzschlitznummer eines HyperChannels entspricht (gleich dem Wert von DMAC_H_PTR ist). Da jedem Kanal in der Speichermatrix 350 4 Wortspeicherbereiche zugeordnet sind (diejenigen, die die zugehörigen RDCR3-, RDCR4-, TDCR3- und TDCR4-Parameter enthalten), reicht die Kanalnummer-Funktion allein nicht aus, um die einzelnen Wortspeicherbereiche zu adressieren.
- Operationen der Speichermatrix 350 werden von der Zustandsmaschinenlogik 354 als Antwort auf Lese- und Schreibanforderungssignale gesteuert, die in den DMA- Anforderungssignalspeichern (DRL) 355 empfangen werden. Eingangssignale in die Signalspeicher 355 stammen vom SIO (SIO_DMAR_RD, SIO_DMAR_WR) und DMAC (DMAC_DMAR_WR1, DMAC_DMAR_RD2 und DMAC_DMAR_WR2). Die Zustandsmaschine überwacht die zwischengespeicherten Anforderungen, löst Konflikte zwischen gleichzeitig vorhandenen Anforderungen, um jeweils eine Anforderung auszuwählen, und stellt der Speichermatrix 350 bei. 356 Steuerausgangssignale, dem SIO bei 357 Bestätigungsausgangssignale und dem DMAC bei 358 und 359 Bestätigungsausgangssignale bereit. Die Steuersignale bei 356 enthalten zusätzliche Adressbits, die notwendig sind, um die von DMAC_ORN_NBR gekennzeichnete Teiladresse zu vervollständigen.
- DMAC stellt den Slgnalspeicherri 355 ein Unterscheidungseingangssignal DMAC_RCV_REQ bereit, um es der Zustandslogik 354 zu ermöglichen, RD2-Anforderungen (DMAC_DMAR_RD2), die zu Funktionen des Empfangskanals gehören, von WR2-Anforderungen (DMAC_DMAR_WR2), die zu Funktionen des Sendekanals gehören, zu unterscheiden (wobei Erstere den Abruf von RDCR3, RDCR4 und Letztere den Abruf von TDCR3, TDCR4 erforderlich machen). Das Unterscheidungseingangssignal wird von der Zustandslogik zur Erzeugung der entsprechendeh Teiladresse verwendet.
- Die Zustandsmaschinenlogik stellt dem DMAC bei 360 auch Bestätigungs- und Abschlussanzeigen (DMAR_DMAC_ACK0, DMAR_DMAC_ACK1, DMAR_DMAC_DONE) bereit, um Letzterem zu ermöglichen, festzustellen, wann es mit der zweiten von einem Paar aufeinanderfolgender Operationen an einem 2-Wort- Schreibvorgang (WR2) oder -Lesevorgang (RD2) in Bezug auf aufeinanderfolgende Positionen in der Speichermatrix beginnen soll (alle DMAC-Lesevorgänge sind Lesevorgänge von 2 Wörtern). Die Zustandsmaschine führt auch eine Ausgangssignal- Paritätsprüfungsoperation durch und stellt dem INT am Ausgang 361 Anzeigen von Paritätsfehlern (DMAR_PARITY_ERROR) bereit.
- Die Zustandsmaschine durchläuft 3 Zustände, um jede Zugriffsoperation auf die Speichermatrix durchzuführen. Ein erster Zustand stellt der Auswahlschaltung 351 an 362 Auswahlsteuersignale bereit, die Letztere anweisen, entweder DMAC- oder SIO-Adressen/Dateneingangssignale auszuwählen (um die Erklärung zu vereinfachen, wird das "Kanalnummer"- Eingangssignal in die Auswahlschaltung 351 vom DMAC, DMAC_CHN_NBR, als Adresseneingangssignal der Auswahlschaltung bezeichnet, obwohl ein jedes solches Eingangssignal einen Offset erfordert - der von der Auswahlschaltung 351 als Antwort auf bestimmte, an 362 empfangene Auswahleingangssignale bereitgestellt wird -, um den ganz bestimmten Wortspeicherbereich von 4 Wortspeicherbereichen zu lokalisieren, der in Bezug auf den von dieser Nummer gekennzeichneten Kanal gelesen oder beschrieben werden soll).
- Wenn zurückgesetzt, gehe in den Zustand 0 über.
- - Dieser Zustand priorisiert DMAC- und SIO-Anforderungen, die der Auswahlschaltung 351 gleichzeitig übergeben werden, wobei DMAC-Anforderungen Priorität vor SIO- Anforderüngen eingeräumt wird.
- - Im Unterschied zu Schreibanforderungen, die entwder für 1 Wort oder für 2 Wörter sein können, sind alle Leseanforderungen vom DMAC Leseanforderungen für 2 Wörter (DMAC_DMAR_RD2). Bei solchen Leseanforderungen werden Speichermatrix-Steuersignale von der Zustandsmaschine an die Speichermatrix (bei 356) aktiviert; diese kennzeichnen Speichermatrixauswahl-, Lese- und Taktfreigabefunktionen. Die Auswahlschaltung 351 dient dazu, die zu lesende Adresse (DMAC_CHN_NBR mit Offset) auf die Speichermatrix- Adressleitungen zu geben. Gehe in den Zustand 6 über.
- - Bei einer Schreibanforderung für 1 Wort vom DMAC (DMAC_DMAR_WR1) werden die Speichermatrix-Steuersignale zur Freigabe der Speichermatrixauswahl, der Schreib- und Taktfreigabe aktiviert. Die DMAC-Adresse und die DMAC- Daten werden von der Auswahlschaltung 351 an die Speichermatrix weitergegeben. Gehe in den Zustand 7 über.
- - Bei einer Schreibanforderung für 2 Wörter vom DMAC (DMAC_DMAR_WR2) werden die Speichermatrix-Steuersignale aktiviert, und die DMAC-Adresse und die DMAC-Daten werden wie bei der Schreibanforderung für 1 Wort in die Speichermatrix eingegeben. Gehe jedoch als Nächstes in den Zustand 8 über.
- - Bei einer Leseanforderung vom SIO (es sind alles Leseanforderungen für nur 1 Wort) werden die Speichermatrix-Steuersignale für die Leseauswahl aktiviert; und die Auswahlschaltung 351 dient dazu, die SIO-Adresse (SIO_ADDRESS_BUS) an den Adresseneingang der Speichermatrix zu legen. Gehe in den Zustand 3 über.
- - Bei einer Schreibanforderung vom SIO (es sind alles Schreibanforderungen für nur 1 Wort) werden die Speichermatrix-Steuersignale für die Schreibauswahl aktiviert, und die Auswahlschaltung 351 dient dazu, die SIO-Adresse und Dateneingangssignale an entsprechende Eingänge der Speichermatrix zu legen. Gehe in den Zustand 9 über.
- - Bei einer DMAC-Leseanforderung (es sind alles Leseanforderungen für 2 Wörter) dient dieser Zustand dazu, den ersten Teil der Anforderung zu bestätigen und die Speichermatrix auf den Abruf des zweiten Wortes vorzubereiten. DMAR_DMAC_ACK0 wird als erste Bestätigung aktiviert (was anzeigt, dass der Bus 353 gültige Daten für DMAC enthält), und die Parität der Ausgangsdaten wird geprüft. Wenn ein Paritätsfehler festgestellt wird, wird der Fehleranzeiger an DMAC (DMAR_PARITY_ERROR) gesetzt. Der von der Auswahlschaltung 351 auszuwählende Adressenoffset wird so eingestellt, dass er auf den nächsten zu lesenden Speicherplatz zeigt. Die Lese- und Speichermatrixauswahl-Steuereingangssignale bleiben vom vorherigen Zustand (Zustand 6) aktiv, und das Speichermatrix-Taktfreigabesignal wird erneut aktiviert. Gehe in den Zustand 5 über.
- - DMAR_DMAC_ACK0 wird an DMAC aktiviert. Der DMAC- Adressenoffset wird so eingestellt, dass er auf den nächsten zu beschreibenden Speicherplatz zeigt. Die Schreibauswahl- und die Speichermatrixauswahlfunktion bleiben vom vorherigen Zustand (Zustand 8) aktiv, und das Taktfreigabesignal wird erneut aktiviert. Gehe in den Zustand 10 über.
- - Die Steuersignale der Speichermatrix werden für eine Leseanforderung aktiviert (das Taktsignal der Speichermatrix wird durch einen Impuls aktiviert und anschließend deakaiviert). Gehe in den Zustand 13 über.
- - DMAR_DMAC_DONE und DMAR_DMAC_ACK1 werden an DMAC aktiviert. Die Parität der Ausgangsdaten der Speichermatrix wird geprüft. Wenn ein Paritätsfehler vorhanden ist, wird die Paritätsfehleranzeige an DMAC aktiviert. Die Steuersignale der Speichermatrix werden alle deaktiviert. Gehe in den Zustand 0 über.
- - Das Taktsignal der Speichermatrix (das im Zustand 1 erneut aktiviert wurde) wird deaktiviert. Gehe in den Zustand 4 über.
- - Das Taktsignal der Speichermatrix wird durch einen Impuls aktiviert und anschließend deaktiviert. Gehe in den Zustand 1 über.
- - Das Taktsignal der Speichermatrix wird durch einen Impuls aktiviert und anschließend deaktiviert. Gehe in den Zustand 11 über.
- Das Taktsignal der Speichermatrix wird durch einen Impuls aktiviert und anschließend deaktiviert. Gehe in den Zustand 2 über.
- - Das Taktsignal der Speichermatrix wird durch einen Impuls aktiviert und anschließend deaktiviert. Gehe in den Zustand 13 über.
- - Das Taktsignal der Speichermatrix wird durch einen Impuls aktiviert und anschließend deaktiviert. Gehe in den Zustand 12 über.
- - DMAR_DMAC_ACK0 wird aktiviert, was anzeigt, dass die Daten des DMAC in die Speichermatrix geschrieben wurden. Die Steuersignale der Speichermatrix werden deaktiviert. Gehe in den Zustand 0 über.
- - DMAR_DMAC_ACK1 wird an DMAC aktiviert. Die Steuersignale der Speichermatrix werden deaktiviert. Gehe in den Zustand 0 über.
- - DMAR_SIO_ACK wird aktiviert. Die Steuersignale der Speichermatrix werden deaktiviert. Gehe in den Zustand 0 über.
- Kanalbezogene Steuerinformationen, die vom FIFO-Manager und DMAC verwendet werden, werden im FIFOR in den Speicherbereichen des RDCR1 und des TDCR1 (Empfangs- und Sende-DMA- Steuerregister) gespeichert, die jedem der Basiskanäle zugeordnet sind (siehe Fig. 7). Kanalbezogene Steuerinformationen, die nur vom DMAC verwendet werden, werden im DMAR in den RDCR3-, RDCR4-, TDCR3- und TDCR4- Wortspeicherbereichen gespeichert, die jedem Basiskanal zugeordnet sind (siehe Fig. 8). In diesen Wortspeicherbereichen gespeicherte Informationen haben die folgende bestimmte Form und Verwendung.
- RDCR1 (siehe Fig. 33) besteht aus 8 reservierten/nicht benutzten Bits (RES), einem Empfangsgrenzprüfungs-(RBC-)Bit, einem Empfangsparitätsfehler-(RPE-)Bit und einem 22-Bit-Feld "Empfange die aktuelle DMA-Adresse" (RDCA-Feld). Das RBC-Bit wird aktiviert, wenn das DMAC eine Grenzprüfungsbedingung antrifft (RDCA stimmt mit einer vorher gesetzten Grenzadresse RDBA im RDCR4 überein, was im Folgenden erörtert wird), während es eine RFM-Anforderung in Bezug auf eine FIFOR- Empfangsdatenwarteschlange bedient. RFM überwacht das RBC-Bit, und wenn Letzteres aktiv ist, übergibt er eine Anzeige an INT, die schließlich dazu führt, dass der IOP mittels einer Unterbrechung über die Prüfbedingung informiert wird.
- RDCR3 (Fig. 50) umfasst 2 reservierte/nicht benutzte Bits, ein 8-Bit-RDLAH-Feld (RDLAH = letzte auf logisch "1" gesetzte Adresse des Empfangs-DMA) und ein 22-Bit-RDFA-Feld (RDFA = erste Adresse des Empfangs-DMA). Das RDLAH-Feld stellt die oberen 8 Bits einer 20-Bit-Adresse dar, die das Ende des IOP- Empfangspufferspeichers des entsprechenden Kanals kennzeichnet. Zusammen mit dem RLAL-Feld im RDCR4 wird das RDLAH-Feld zur Ermittlung der vollständigen Endadresse des IOP- Empfangspufferspeichers des entsprechenden Kanals verwendet. RDFA stellt die Anfangsadresse des IOP-Empfangspufferspeichets des entsprechenden Kanals dar (obwohl die Speicheradressen des IOP 24 Bit aufweisen, beginnt und endet der Empfangspufferspeicher üblicherweise an 4-Byte-Grenzen; daher haben die beiden niedrigstwertigen Bit immer den Wert 0, und die 22 Bits dieses Feldes bestimmen vollständig die Anfangsadresse).
- RDCR4 (Fig. 51) umfasst ein 12-Bit RDLAL-Feld (RDLAL = letzte auf logisch "0" gesetzte Adresse des Empfangs-DMA) und ein 20- Bit-RDBA-Feld (RDBA = Grenzadresse des Empfangs-DMA). Das RDLAL-Feld stellt die unteren 12 Bits der Adresse dar, die das Ende des IOP-Empfangspufferspeichers des entsprechenden Kanals kennzeichnet. Es wird mit dem oben genannten RDLAH-Feld verknüpft, um eine vollständige Endadresse zu bilden, die die letzte gültige Adresse im Empfangspufferspeicher darstellt. Wenn das DMAC diese Adresse erreicht, ohne dass es auf eine Grenzprüfung trifft, beginnt es als Nächstes mit der Übertragung von Daten an der Anfangsadresse RDFA. RDBA stellt die 20 höchstwertigen Bits einer Grenzadresse (gewöhnlich RDLA + 1) nach der letzten Adresse dar. Während sich der Empfangspufferspeicher mit Daten füllt, kann der IOP verhindern, dass Daten am Anfang des Pufferspeichers überschrieben werden, indem er diese Adresse auf einen Wert setzt, der zu einem geschützten Teil des IOP-Speichers gehört. Wenn das DMAC versucht, Daten an diese Adresse zu schreiben, wird eine Grenzprüfungsbedingung gesetzt, und alle darüber hinaus empfangenen Daten werden ignoriert.
- In der Praxis ist der Pufferspeicher größer als ein Rahmen, und RDBA wird mittels Programmierung (vom IOP/SIO) auf einen Wert zwischen RDFA und RDLA gesetzt. Anfangs liegt die von RDBA gekennzeichnete Position hinter der Position, die verwendet würde, um das letzte Byte eines Rahmens zu halten. Nachdem DMAC den ersten Rahmen in den Pufferspeicher geladen hat, empfängt der IOP folglich eine Rahmenendeunterbrechung, entleert den Pufferspeicher und rückt den RDBA-Zeiger auf eine andere Position, die auf einen frei gewordenen Speicherplatz im Pufferspeicher zeigt.
- Inzwischen füllt das DMAC weiterhin den Pufferspeicher, und wenn es an der letzten Adresse ankommt, kehrt es automatisch zur ersten Adresse zurück und fährt von dort mit dem Auffüllen fort. Im normalen Betrieb sollten die Größe des Pufferspeichers, die zeitliche Steuerung von Maßnahmen durch den IOP als Antwort auf die Rahmenendeunterbrechung und der Adressenplatz der Grenzadresse in Bezug auf den ersten gültigen Eintrag im Pufferspeicher, der nicht entfernt wurde, ausreichen, um sicherzustellen, dass gültige Empfangsdaten im Pufferspeicher nicht überschrieben werden.
- Wenn die aktuelle vom DMAC verwendete Adresse jedoch mit der Grenzadresse übereinstimmt, macht der IOP den Pufferspeicher offensichtlich nicht in einem geeigneten Tempo frei, und gültige Daten werden möglicherweise überschrieben. In diesem Fall wird die Empfangsverarbeitung in dem betroffenen Kanal folglich angehalten, und dem RFM wird über RDCR1 eine Grenzprüfungsanzeige übergeben, die bewirkt, dass eine INT- Unterbrechung erzeugt wird, die den IOP über die abnormale Bedingung unterrichtet.
- TDCR1 (Fig. 35) enthält 7 reservierte Bits (RES), ein EDC- (Ende der-Kette-festgestellt-)Bit, ein EFD-(Ende des Rahmensfestgestellt-)Bit, ein NDI-(Keine-Daten-Anzeige-)Bit, ein 2- Bit-TBC-(Sendepufferspeicher-Zählstand-) Feld, ein 2-Bit-TOPQ- (Anfang-der-Warteschlange-)Feld, ein 2-Bit-TPE- (Sendeparitätsfehler-) Feld und ein 16-Bit-TDBC-(Sende-DMA- Bytezählstand-)Feld. Die 1-Bit-Anzeiger werden vom DMAC gesetzt, wenn die entsp rechenden Bedingungen "Ende der Kette", "Ende des Rahmens" oder "Keine Daten angezeigt" angetroffen werden (das Ende der Kette und das Ende des Rahmens werden von DCB-Bits angezeigt, der Keine-Daten-Anzeiger wird aktiviert, wenn das DMAC eine Bedingung "Ende des Pufferspeichers" antrifft, während sie eine Anforderung für den Abruf von Sendedaten bedient).
- TDCR3 (Fig. 52) enthält 8 reservierte Bits und ein 24-Bit-TDBA- (Sende-DMA-Pufferspeicheradresse-)Feld. Das TDBA-Feld zeigt die nächste Quelle der Sendedaten an (obwohl es eine Länge von 24 Bit hat, wäre es am besten, wenn die beiden niedrigstwertigen Bits den Wert 0 hätten und Sendedaten nur an Wortgrenzen (4- Byte-Grenzen) platziert würden). Der Grund hierfür ist, dass, wenn Daten an beliebigen Bytegrenzen abgerufen werden könnten, in der Folge zum Beispiel ein einzelnes Byte in das FIFOR abgerufen werden könnte, das wiederum den IDLC-Sendepfad (FIFOR, TFM, TV, TL1) viel schneller als 4 Byte durchlaufen und daher die Möglichkeit eines Unterlaufs erhöhen würde.
- Schließlich umfasst TDCR4 (Fig. 53) 10 reservierte/nicht benutzte Bits, ein ECI-(Ende der-Kette-Anzeige-)Bit, ein EFI- (Ende des-Rahmens-Anzeige-)Bit und ein 20-Bit-DCBA-Feld (DCB- Adresse, DCB ist die Abkürzung für "DMA Control Block" (DMA- Steuerblock)). ECI und/oder EFI werden jeweils aktiviert, wenn das DMAC die Anzeigen "Ende der Kette" und/oder "Ende des Rahmens" im aktuellen DCB feststellt. Ein aktives ECI.zeigt dem DMAC an, dass keine weiteren DCBs abgerufen werden. müssen, nachdem sich die Kapazität des IOP-Sendedatenpufferspeichers, der gerade verwendet wird, erschöpft hat. Ein aktives EFI bedeutet, dass dem TFM eine Anzeige "Ende des Rahmens" bereitgestellt werden muss, nachdem sich die Kapazität des aktuellen Pufferspeichers erschöpft hat, die T1 veranlasst, eine Rahmenendefolge einzufügen, nachdem das letzte Datenbyte gesendet wurde. DCBA ist die Adresse, an der der nächste DBC einer nicht erschöpften DCB-Kette abgerufen werden soll.
- Die DMA-Steuereinheit DMAC ist über eine Schnittstelle mit dem DMAR und dem FIFOR verbunden, um von Steuerinformationen gesteuert, die im DMAR abgelegt werden, Empfangsdaten vom FIFOR an den IOP und Sendedaten vom IOP an das FIFOR zu übertragen. Diese Übertragungen werden als Antwort auf Anforderungen eingeleitet, die dem DMARQ-Segment von RFM und TFM übergeben werden, und an einzelnen Registerpositionen der DMARQ zwischengespeichert, wie zuvor beschrieben wurde. Das DMAC ist über eine Schnittstelle mit der DMARQ verbunden, um zwischengespeicherte Anforderungen zu empfangen, sie in einer vorher festgelegten Prioritätsrangfolge zu bearbeiten und zu löschen (über Rücksetzeingangssignale an die DMARQ, wie zuvor beschrieben wurde). Nachdem es eine Anforderung von der DMARQ angenommen hat, arbeitet das DMAC mit dem MIO-Segment, dem DMAR und dem FIFOR züsammen, um zwischen dem IOP-Speicher und dem FIFOR eine DMA-Datenübertragung durchzuführen. Bei diesem Prozess konkurriert das MIO um den Zugriff auf den IOP-Bus, und nachdem es diesen erlangt hat, führt es die Datenübertragung zwischen dem DMAC und dem IOP-Speicher durch. Das DMAC wickelt Übertragungen in Bezug auf das FIFOR und das DMAR getrennt ab. Bei seinen Datenübertragungsoperationen leitet das MIC Signale vom DMAC auf den IOP-Bus (Schreib-/Lese- und Adressensteuersignale und Schreibdatensignale). In der hier beschriebenen Ausführungsform unterscheiden sich Operationen des DMAC in Bezug auf Empfangsdaten von Operationen in Bezug auf Sendedaten in mehrfacher Hinsicht. Empfangsdaten werden in Bezug auf einen einzelnen Block des IOP-Speichers verarbeitet, wobei alle Operationen des DMAC vom IOP streng gesteuert werden, indem Steuerinformationen über das SIO in das DMAR und das FIFOR in der mittels Programmierung festgelegten Abfolge geladen werden.
- Sendedaten werden vom DMAC als Antwort auf Datensteuerblock- (DCB-)Befehlsmatrizen verarbeitet, die im DMAR gespeichert werden und verkettet werden können. Der erste DCB in einer Kette wird vom IOP (über SIO) in das DMAR geladen, aber nachdem die IDLC die von diesem DCB festgelegte Datenübertragungsfunktion beendet hat und eine Kettungsanzeige im DCB erkennt, ruft das DMAC einen weiteren DCB aus dem IOP- Speicher in das DMAR ab, und der Prozess wird wiederholt. Jeder DCB kann auf einen anderen Block des IOP-Speichers als die Quelle der Sendedaten zeigen (so dass Daten in verstreuten Blöcken vom DMAC durch die Maßnahmen von verketteten DCBs zusammengetragen werden können), und Operationen in Bezug auf verkettete DCBs können ohne Unterbrechung des IOP durchgeführt werden (um Rahmenendepunkte in dem Übertragungsprozess anzuzeigen).
- Empfangsdaten werden aus dem FIFOR (über DMAC und MIO) in einen einzelnen Block des IOP-Speicherbereichs geschrieben, der vom IOP als Umlaufpufferspeicher verwaltet wird. Unter normalen Umständen werden diese Daten in aufeinanderfolgende Pufferspeicherplätze geladen, wobei bei der höchsten Adresse begonnen und die Reihenfolge zur niedrigsten Adresse fortgesetzt wird, und dann kehrt das DMAC automatisch zur niedrigsten Position zurück und wiederholt den Vorgang. Unter diesen Umständen empfängt der IOP Rahmenendeunterbrechungen (vom INT) und entfernt rechtzeitig Daten aus dem Pufferspeicher, damit der Pufferspeicher wiederverwendet werden kann.
- Die Größe des Pufferspeichers wird so gewählt (von der IOP- Speicherverwaltungssoftware), dass er mehr als einen Rahmen an Empfangsdaten in Bezug auf jeden aktiven Kanal halten kann. Nach jeder Rahmenendeunterbrechung werden gepufferte Daten entfernt (an eine andere Stelle im IOP- oder Hostspeicher bewegt), und der IOP initialisiert den zugehörigen Kanal und die Steuerinformationen im DMAR neu (über SIO). Nach einer jeden solchen Neuinitialisierung setzt der IOP einen neuen Grenzadresswert im DMAR; der den Zugriff des DMAC auf den IOP- Speicherbereich beschränkt. Diese Grenzadresse wird schrittweise verschoben, damit sie vor dem Speicherbereich liegt, der für die Eingabe des nächsten empfangenen Rahmens benötigt wird.
- Im Normalbetrieb werden die Entfernung von Daten und die Verschiebung der Grenzadresse durch den IOP im Verhältnis zu den Datenladeoperationen des DMAC/MIO schnell genug durchgeführt, so dass an der Grenzadressposition kein Überlauf entstehen dürfte. Eine wichtige Funktion des DMAC besteht darin, dass es erkennt, wenn seine aktuelle IOP-Speicheradresse für Empfangsdaten mit der oben genannten Grenzadresse zusammenfällt, und dass es zu solchen Zeitpunkten eine Grenzprüfungsanzeige bereitstellt (um den IOP über eine zugehörige Unterbrechung, die vom INT und SIO gehandhabt wird, darüber zu informieren, dass gültige Daten überschrieben wurden).
- Seridedaten werden aus Blöcken des IOP-Speichers, die von Anfangsadressfunktionen gekennzeichnet werden, in DCBs übertragen, welche verkettet werden können; d. h., sie enthalten Kettungsanzeigen (die entweder am Anfäng, als der DCB in den IOP-Speicher geladen wurde, oder durch eine programmierte Operation über das SIO, während sich der DCB im IPO-Speicher befand, dort hinein gestellt wurden (wobei der IOP optional die Länge einer DCB-Kette dynamisch erweitern kann, wenn seine Verarbeitungsmöglichkeiten dies zulassen). Verkettete Blöcke von Sendedaten (d. h. Blöcke, deren Anfangsspeicherplätze von verketteten DCBs angegeben werden) können dabei in Abhängigkeit von den Verarbeitungsmöglichkeiten des IOP im IOP-Speicher verstreut, überlappend oder an derselben Position angeordnet werden.
- Eine wichtige Funktion des DMAC in Bezug auf Sendedaten besteht darin, Rahmengrenzen in Daten festzulegen, die an Verbindungskanäle weitergeleitet werden, welche gemäß Rahmenprotokollen arbeiten, und diese dem IOP ohne entsprechende INT-Unterbrechungen anzuzeigen. Wie bereits erklärt wurde, geschieht dies, indem diese Begrenzungsinformationen als Teil des Status mitgeliefert werden, der zu Rahmenende-Empfangsdatenunterbrechungen gehört.
- Der logische Aufbau des DMAC ist in Fig. 49 gezeigt. Es enthält die Zustandsmaschinenlogik, die allgemein bei 380 angegeben ist, fünf Register, die bei 381 bis 385 gezeigt sind, eine Multiplexerschaltung, die bei 386 gezeigt ist, und eine Vergleichsschaltung, die bei 387 gezeigt ist.
- Die. Zustandslogik 380 umfasst zwei Zustandsmaschineneinheiten 380A utid 380B, die jeweils als die Zustandsmaschinen DMAC_A und DMAC_B bezeichnet sind. Operationen, die jeweils von diesen Einheiten gesteuert werden, und bestimmte Einzelheiten der Zustände werden später erörtert.
- Das Register 381 mit der Bezeichnung RFA_NDA (RFA_NDA = Empfange die erste Adresse und die nächste DCB-Adresse) wird während DMAC-Operationen, die mit der Verarbeitung von Sende- und Empfangsdaten verbunden sind, unterschiedlich verwendet. Wenn das DMAC Empfangsdaten verarbeitet/in den IOP-Speicher schreibt, wird das Register 381 dazu verwendet, das RDFA-Wort (RDFA = erste Adresse der Empfangsdaten), das im RDCR3- Speicherplatz des jeweiligen Kanals im DMAR gespeichert ist, zwischenzuspeichern und zu halten.
- Wenn das DMAC sendebezogene DCBs verarbeitet/abruft, wird das Register 381 dazu verwendet, eine nächste DCB-Adresse zu halten, die entweder aus dem DMAR oder dem TOP abgerufen wurde (aus dem DMAR über DMAR_DATA_BUS, aus dem IOP über MIO_DATA_BUS). Die nächste DCB-Adresse wird dem DMAR entnommen, wenn das DCBA-Feld von TDCR4 verwendet wird, und direkt dem IOP entnommen, wenn die aktuellen Sendedaten ausgehen und eine nächste DCB-Adresse im TDCR4 nicht zur Verfügung steht (z. B. wenn ein DCB ankommt, der auf einen leeren Datenpufferspeicher zeigt, aber eine nächste verkettete DCB-Adresse enthält). Wenn das DMAC zum Abruf eines nächsten DCB bereit ist, wird der Inhalt des Registers 381 in das im Folgenden erörterte "Register für die aktuelle Adresse" 385 übertragen, damit er als dieAdresse verwendet wird, die über DMAC_MIO_ADDR auf den IOP-Bus gegeben werden soll.
- Das Register 382 mit der Bezeichnung RBCA-Register (RBCA = Empfange die Grenzprüfungsadresse) wird dazu verwendet, die RDBA-Funktion zu halten, die RDCR4 über den DMAR_DATA-Bus 388 entnommen wurde. Diese Funktion wird mittels der Vergleichsschaltung 387 mit einer aktuellen IOP-Adresse verglichen, die im Register 385 gehalten wird. Wenn die Vergleichswerte übereinstimmen, zeigt dies an, dass der Empfangspufferspeicher voll ist, und bewirkt, dass DMAC die Verarbeitung der Empfangsdaten in dem entsprechenden Kanal beendet und die Grenzprüfungsanzeige setzt, die vom RFM über eine INT-Unterbrechung an den IOP weitergeleitet werden soll.
- Das Register 383, das Register RLA_TBC (RLA_TBC = Empfange die letzte Adresse und sende den Bytezählstand), findet bei der Verarbeitung von Empfangs- und Sendedaten zweifache Anwendung. Bei der Empfangsverarbeitung speichert dieses Register die aus den Speicherbereichen RDCR3 und RDCR4 im DMAR über den Bus 388 abgerufenen Komponenten RDLAL und RDLAH der letzten Adresse der Ernpfangsdaten zwischen und hält sie. Während der Verarbeitung von Sendedaten hält das Register 383 Sendebytezählstand- Informationen, die entweder vom FIFOR (TDCR1) über den FIFOR_DATA-Bus 389 oder vom IOP-Speicher über den MIO_DATA-Bus 390 empfangen wurden. Die FIFOR-Daten werden dazu verwendet, den aktuellen Bytezählstand zu erhalten, und der IOP-Leitweg wird verwendet, um während des Abrufs eines neuen DCB einen neuen Bytezählstand zu erhalten.
- Wenn "Empfange die letzte Adresse" im Register 383 zwischengespeichert wird, wird es mit Hilfe des Komparators 387 mit einer aktuellen Adresse im Register 385 verglichen. Eine Übereinstimmung'bei diesem Vergleich zeigt an, dass das physische Ende des Empfangspufferspeichers erreicht worden ist, und das DMAC muss die aktuelle Adresse durch "Empfange die erste Adresse" vom RDFA/RDCR3 über den Bus 388 ersetzen. Wenn der Sendebytezählstand gehalten wird, wird er verringert und durch das "Datenhalte"-Register 384 zur Rückübertragung an das FIFOR geleitet.
- Das Datenhalteregister 384 hat auch mehrere Verwendungszwecke. Wenn Sendedaten über den Bus 390 abgerufen werden, werden sie auf ihrem Weg zum FIFOR über den Ausgang DMAC_FIFO_DATA des Multiplexers 386 vorübergehend im Register 384 gehalten. Die Handhabung der Sendebytezählstand-Informationen in diesem Register wurde vorstehend erörtert. Wenn Empfangsdaten verarbeitet werden, werden sie über den Bus 389 dem FIFOR entnommen und auf ihrem Weg zum IOP-Speicher über den Ausgangspfad von diesem Register an DMAC_MIO_DATA bei 391 vorübergehend im Register 384 gehalten.
- Das Register für die aktuelle Adresse 385 hat ebenfalls mehrere Verwendungszwecke. In verschiedenen Phasen der DMAC- Verarbeitung empfängt es Adressen, um sie an den IOP-Speicher anzulegen (über DMAC_HIO_ADDR), erhöhte Werte von Sendeadressen, die über DMAC_DMAR_DATA zurück in das DMAR geschrieben werden sollen, und erhöhte Werte von Empfangsadressen, die über den Ausgang DMAC_FIFOR_DATA des Multiplexers 386 zurück ins FIFOR geschrieben werden sollen. Die Werte der Empfangsadressen und der Sendeadressen werden jeweils vom FIFOR (über den Bus 389) und DMAR (über den Bus 388) in das Register eingegeben. Die Eingabe der nächsten DCB- Adressen in dieses Register wurde bereits beschrieben.
- Die Zustandsmaschineneinheiten DMAC_A und DMAC_B sind logisch eng miteinander verknüpft. DMAC_A ist hauptsächlich für die Anbindung an das MIO, das DMAR und die DMARQ verantwortlich (einschließlich der Prioritätsentscheidung in Bezug auf Anforderungen für eine Datenübertragung, die von der DMARQ übergeben werden, und der Bereitstellung von Rücksetzsteueranzeigern an die DMARQ, nachdem der Dienst erbracht worden ist). DMAC_B ist hauptsächlich für die Anbindung an das FIFOR verantwortlich.
- Wenn Anforderungen, die DMAC_A von der DMARQ annimmt, den Zugriff auf das FIFOR erforderlich machen, wird das Ausgangssignal DMAC_A_REQ von der DMAC_A an DMAC_B aktiviert. Als Antwort darauf führt DMAC_B die notwendige Task aus, die von Nachrichtencodes angegeben wird, die von der DMAC_A bei der Nachricht DMAC A MSG aktiviert werden. Der 2-Bit- Nachrichtencode gibt eine der folgenden vier Tasks an: (1) Lies den Sendebytezählsand aus dem FIFOR; (2) Schreibe den aktualisierten Sendebytezählstand und Daten in das FIFOR; (3) Lies die aktuelle Adresse des Empfangspufferspeichers und Daten aus dem FIFOR; (4) Schreibe die aktualisierte momentane Adresse des Empfangspufferspeichers ins FIFOR.
- Die folgenden Eingangs- und Ausgangssignale werden zwischen der. Zustandslogik 380 und dem DMAR bereitgestellt:
- DMAR_OMAC_ACK0 - Bestätigung des DMAR der ersten Übertragung einer aus 2 Wörtern bestehenden Übertragung
- DMAR_DMAC_ACK1 - Bestätigung des DMAR der zweiten Übertragung
- DMAR_DMAC_DONE - Anzeige der Beendigung durch das DMAR DMAC_IDMAR_WR1 - DMAC-Anforderung für eine Schreiboperation von 1 Wort
- DMAC_OMAR_WR2 - DMAC-Anforderung für eine Schreiboperation von 2 Wörtern
- DMAC_OMAR_RD2 - DMAC-Anforderung für eine Leseoperation von 2 Wörtern
- DMAORCV_REQ - die vollständige Bezeichnung lautet DMAC_DMAR_RCV-REQ; eine Adressierungs- Hilfsfunktion für das DMAR, um eine DMAC_OMAR_RD2-Anforderung, die zu einer Operation eines Empfangskanals gehört, von einer ähnlichen Anforderung zu unterscheiden, die zu einer Operation eines Sendekanals gehört; die erste Anforderung benötigt den Speicherplatz der RDCR3-, RDCR4- Parameter, und letztere Anforderung benötigt den Speicherplatz der TDCR3-, TDCR4-Parameter.
- Die Eingangs = und Ausgangssignale zwischen der Zustandslogik 380 und dem MIO sind:
- MIO_DMAC_ACK0 - Bestätigung des MIO der Übertragung des ersten Wortes zwischen dem DMAC und dem IOP
- MIO_DMAC_ACK1 - Bestätigung des MIO der Übertragung des zweiten Wortes
- MIO_DMAC_ACK2 - Bestätigung des MIO der Übertragung des dritten Wortes
- MIO_DMAO_DONE - Anzeige der Beendigung durch das MIO MIG_DMAC_PE - Anzeige eines Paritätsfehlers an der IOP-Schnittstelle durch das MIO
- DMAC_WEG_RD1 - DMAC-Anforderung für eine Leseoperation von 1 Wort aus dem IOP- Speicher
- DMAC_MIG_RD3 - DMAC-Anforderung für eine Leseoperation von 3 Wörtern (2 Sendedaten plus 1 DCB)
- DMAC MIG WR1 - DMAC-Anforderung für eine Schreiboperation von 1 Wort
- Die Eingangs- und Ausgangssignale zwischen der Logik 380 und dem FIFOR sind:
- FIFOR_DMAC_ACK - Bestätigung der Übertragung durch das FIFOR
- DMAC_FIFOR_RD1 - DMAC-Anforderung für eine Leseoperation von 1 Wort
- DMAC_FIFOR_RD2 - DMAC-Anforderung für eine Leseoperation von 2 Wörtern
- DMAC_FIFOR_WR1 - DMAC-Anforderung für eine Schreiboperation von 1 Wort
- DMAC_FIFOR_WR2 - DMAC-Anforderung für eine Schreiboperation von 2 Wörtern
- DMAC_FIFOR_PE_WR - DMAC-Anzeige eines Paritätsfehlers bei einer Schreibopetation
- DMAO_OHN-NBR - DMAC-Kanalschlitzanzeiger/-adresse. Enthält eine Bitanzeige für Empfangs- oder Sendedaten und zusammen mit der entsprechenden Lese- oder Schreibanforderung bildet es die
- vollständigen Adressinformationen, die das FIFOR benötigt.
- Die Eingangs-/Ausgangssignale in Bezug auf die DMARQ sind:
- HCR - Eingangssignal vom HCR-Register in das SIO, das aktive HyperChannel- Zuordnungen anzeigt und Zeiger in Bezug auf entsprechende HyperChannels bereitstellt, die bei der Adressierung des FIFOR und des DMAR verwendet werden (siehe auch die vorstehende Beschreibung der DMARQ und die folgende Beschreibung der HyperChannels).
- ROV_RESET - (Die vollständige Bezeichnung lautet DMAC DMARQ RCV RESET). Ein Signal an die DMARQ, die soeben bediente Empfangs-DMA-Anforderung zurückzusetzen.
- XMIT_RESET - (Die vollständige Bezeichnung lautet DMAC_DMARQ_XMIT_RESET). Ein Signal an die DMARQ, die soeben bediente Sende- DMA-Anforderung zurückzusetzen.
- DMARQ_B_REQ'S - DMARQ-Anforderungseingangssignale in das DMAC, die zu B-Kanal-Anforderungen gehören
- DMARQ_H0_REQ's - DMARQ-Anforderungseingangssignale für H0-HyperChannels
- DMARQ_H1_REQ's - DMARQ-Anforderungseingangssignale für H1-HyperChannels
- DMAC_H_PTR - Ausgangssignal, das der DMARQ mit DMAC DMARQ RESET bereitgestellt wird, wenn ein Dienst für einen HyperChannel erbracht worden ist, und das auf eine bestimmte DMARQ- Anforderungsbitposition zeigt, die zurückgesetzt werden soll (löst sich iri einen bestimmten HyperChannel und dessen Empfangs- oder Sendeposition auf).
- DMAC_H-B_SEL - Ausgangssignal an die DMARQ mit DMAC DMARQ RESET, das zwischen der Auswahl einer HyperChannel-Anforderung und einer B-Kanal-Anforderung für eine Rücksetzoperation unterscheidet.
- DMAC_B_PTR Ausgangssignal an die DMARQ, wenn ein B-Kanal zum Zurücksetzen ausgewählt wird; das auf eine bestimmte Anforderungsposition zeigt, die zurückge%tzt werden soll (löst sich in eine bestimmte Kanalnummer und deren Empfangs- oder Sendeposition auf).
- Weitere Ausgangssignale:
- DMAC_PARITY_ERROR - DMAC-Anzeige an INT von Paritätsfehlern, die in Bezug auf das FIFOR, das DMAR oder den IOP-Speicher über das MIO festgestellt wurden.
- STEUERSIGNALE -. Ausgangssignale der Zustandslogik 380 (CONTROL SIGNALS) an die Register 381 bis 385
- TRUE/FALSE - Eingangssignal von den Vergleichsschaltungen 387 in die Zustandslogik 380
- Bestimmte Zustände der Zustandsmaschineneinheiten DMAC_A und DMAC_B sind:
- In der folgenden Beschreibung werden Feldparameterteile von RDCR1 bis RDCR4 und TDCR1 bis TDCR4 mit ihren jeweiligen abgekürzten Namen bezeichnet (z. B. RDFA, RDLAH usw.). Um die Beschreibung zu vereinfachen, wird auch das erste Byte von TDCR1, das 3 Ein-Bit-Anzeigen und 2 Zwei-Bit-Anzeigen enthält, als TDFSW (Sendedaten-FIFO-Statuswort) bezeichnet.
- - Aktive Dienstanforderungen von der DMARQ werden priorisiert, wobei H1-Anforderungen die höchste Priorität, H0-Anforderungen die nächste und B-Kanal-Anforderungen die niedrigste Priorität erhalten.
- - Wenn eine H1-Anforderung aktiv ist, aktiviere DMAC H-B SEL an die DMARQ (das praktisch die Auswahl einer H- Anforderung kennzeichnet), aktiviere DMAC H PTR an die DMARQ mit einem Codewert, der der Position der H1- Anforderung entspricht, und gehe in den Zustand 1 über.
- - Wenn eine H0-Anforderung und keine H1-Anforderung aktiv ist, aktiviere DMAC H-B SEL und DMAC H PTR (die auf die H0-Anforderung zeigen, die zurückgesetzt werden soll), und gehe in den Zustand 2 über.
- - Wenn eine B-Anforderung aktiv ist und keine H- Anforderungen aktiv sind, setze DMAC H-B SEL so, dass es anzeigt, dass gerade ein B-Kanal bedient wird, setze DMAC_B_OTR auf den Wert, der eine bestimmte B-Kanal- Anforderung kennzeichnet, die gerade bedient wird, und gehe in den Zustand 3 über.
- - Eine Leseanforderung für 2 Wörter (DMAC_DMAR_RD2) wird an DMAR aktiviert, um zwei Wörter abzurufen, die Status- und Steuerinformationen für den ausgewählten H1-HyperChannel enthalten. In Abhängigkeit davon, ob gerade ein Empfangs- oder ein Sendeprozess bedient wird, befinden sich die angeforderten Informationen in den Speicherbereichen RDCR3 und RDCR4 oder TDCR3 und TDCR4 im DMAR, die dem Basiskanalschlitz zugeordnet sind, der den Referenzkanal des HyperChannels darstellt (siehe die vorstehende Beschreibung der DMARQ und die folgende Beschreibung der HyperChannels). Gleichzeitig werden der Zustandsmaschine DMAC_B eine Anforderung DMAC_A_REQ und eine Nachricht DMAC_A_MSG übergeben, damit sie die benötigten FIFOR- Lesezugriffe anfordert (1 Wort, wenn eine Sendeoperation verarbeitet wird, 2 Wörter, wenn eine Empfangsoperation verarbeitet wird). Gehe in den Zustand 4 über.
- - Löse gegebenenfalls Konflikte zwischen H0-Anforderungen nach einer vorher festgelegten Auswahlreihenfolge. Dem ausgewählten H0-Kanal wird für den nächsten Dienst die niedrigste Priorität unter H0-Kanälen zugewiesen, um im Laufe der Zeit eine ausgeglichene Bedienung aller H0- Anforderungen zu erreichen. Setze den internen H-Zählstand auf den Wert der aktuellen H0-Auswahl (wobei diesem Wert beim nächsten H0-Wettbewerb die niedrigste H0-Priorität eingeräumt wird). Gehe in den Zustand 1 über.
- - Löse gegebenenfalls Konflikte zwischen B-Kanal- Anforderungen nach einer vorher festgelegten Reihenfolge. Dem ausgewählten Kanal wird bei der nächsten Auswahl dann die niedrigste Priorität zugewiesen, um im Laufe der Zeit eine ausgeglichene Bedienung aller B-Kanal-Anforderungen zu erreichen. Setze den internen B-Zählstand auf den Wert der aktuellen Auswahl. Gehe in den Zustand 1 über.
- - Warte auf eine DONE-Anzeige (DMAR_DMAC_DONE), und gehe in den Zustand 5 über.
- - Beim Bedienen des Empfangsprozesses enthält das erste Wort vom DMAR (die Verfügbarkeit wird dadurch angezeigt, dass DMAR_DMAC_ACK0 aktiv ist) die Informationen über die erste Adresse, RDFA, und den RDLAH-Teil der letzen Adresse. RDFA wird in das Register 381, und RDLAH wird in das Register 383 geladen. Das zweite Wort (die Verfügbarkeit wird dadurch angezeigt, dass DMAR_DMAC_ACK1 aktiv ist) enthält die Grenzadresse RDBA und den unteren Teil der letzten Adresse RDLAL. RDBA wird in das Register 382 und RDLAL in das Register 381 geladen (und ersetzt die bereits verarbeitete RDFA).
- - Beim Sendeprozess enthält das zuerst ankommende Wort die Sende-DMA-Pufferspeicheradresse TDBA, die in das Register 385 geladen wird. Das zweite Wort enthält den Anzeiger "Ende der Kette" ECI, den Anzeiger "Ende des Rahmens" EFI und die nächste DCB-Adresse (DCBA). Alle werden in das Register 383 geladen.
- - In diesem Zustand wird das im Zustand 1 gesetzte DMAC-A- Anforderungsbit ständig geprüft. Das Bit wird von DMAC B zurückgesetzt, wenn Letztere den angeforderten Lesedienst in Bezug auf das FIFOR erbracht hat. Gehe beim Bedienen eines Empfangsprczesses in den Zustand 6 über, beim Bedienen eines Sendeprozesses in den Zustand 9.
- Nachdem alle Informationen aus dem DMAR und dem FIFOR abgerufen wurden, nimm eine Prüfung auf zugehörige Anzeigen eines Paritätsfehlers (prüfe das PE-Bit im RDCR1, das während des Zustand 3 von DMAC_B gesetzt wurde, wenn eine Paritätsfehlerbedingung vorhanden ist) und einer Grenzprüfungsbedingung (aktives RBC-Bit im RDCR1), die während des Zustands 8 gesetzt wurde, vor. Wenn ein Paritätsfehler vorhanden ist, wird die gesamte Verarbeitung für diesen Kanal ausgesetzt. Gehe in den Zustand 15 über, wenn eine Fehlerbedingung oder eine Grenzprüfungsbedingung festgestellt wird. Wenn weder eine Fehlerbedingung noch eine Grenzprüfungsbedingung festgestellt wird, aktiviere DMAC_MIO_WR1, um Empfangsdaten (siehe Zustand 5) in den IOP- Empfangspufferspeicher zu schreiben. Die Adresse für diese Schreiboperation wird von der aktuellen Adresse im Register 385 abgeleitet und am DMAC_MIO_ADDR übergeben. Gehe in den Zustand 7 über.
- - Erhöhe die Adresse im Register für die aktuelle Adresse, wenn MIO die Schreibanforderung im Zustand 6 mit MIC_DMAC_ACK0 bestätigt. Gehe in den Zustand 8 über.
- - Wenn der aktuelle Inhalt des Adressregisters mit RDFA übereinstimmt, übertrage RDFA in das Adressregister. Wenn das Adressregister mit der RDBA-Funktion im Register 382 übereinstimmt, ist eine Grenzprüfungsbedingung eingetreten; daher wird ein Anzeigebit RBC im Register 385 gesetzt und mit der Adresse im Register 385 verknüpft, die zurück ins FIFOR geschrieben werden soll. Wenn sich die aktuelle Adresse weder am Ende des Empfangspufferspeichers befindet noch zu einer Grenzprüfungsbedingung gehört, werden DMAC_A_REQ und DMAC_A_MSG aktiviert, um einen DMAC_B-Schreibdienst für 1 Wort in Bezug auf den entsprechenden Empfangskanal-Speicherbereich im FIFOR anzufordern. Gehe in den Zustand 15 über.
- - Nachdem alle Wörter für die Sendeanforderung (TDCR1, TDCR3, TDCR4) abgerufen wurden (Zustand 5), nimm eine Prüfung auf eine Paritätsfehleranzeige vor (die im Zustand 3 von DMAC_B gesetzt wurde, wenn sie sich auf das FIFOR bezog, und bei DMAR_PARITY_ERROR auf logisch "1" gesetzt wurde, wenn sie sich auf das DMAR bezog). Gehe in den Zustand 15 über, wenn ein Paritätsfehler festgestellt wird. Wenn keine Fehler festgestellt werden, prüfe, ob der Sendebytezählstand (der von DMAC B ins Register 383 abgerufen wurde) den Wert 0 hat. Wenn ja, wird ein neuer DCB benötigt. Aktiviere eine Leseanforderung für 3 Wörter an MIO (DMAC_MIO_RD3), und übertrage DCBA (DCB-Adresse) vom Register 381 an das Adressregister 385, um deren Verwendung durch MIO vorzubereiten, und gehe in den Zustand 11 über, um auf den neuen DCB zu warten. Wenn sich der Sendebytezählstand nicht erschöpft hat, sende das aus dem MIO gelesene Datenwort an die von DMAC_MIO_ADDR lokalisierte Adresse, die am Ausgang des Registers 383 bereitgestellt wird, und gehe in den Zustand 12 über.
- - Prüfe den im Zustand 11 empfangenen neuen DCB auf die Bedingung "leer" (der Sendebytezählstand hat den Wert 0). Wenn er leer ist und weder ECI noch EFI im neuen DCB gesetzt sind, wird ein weiterer DCB benötigt; gib also eine Anforderung für den Abruf eines neuen DCB aus, und kehre in den Zustand 11 zurück. Wenn er leer ist, aber entweder ECI oder EFI gesetzt ist, ging der Rahmen und/oder die Kette zu Ende, ohne dass weitere Daten gesendet werden müssen; aktualisiere also TDFSW, und verknüpfe es mit dem Sendebytezählstand, gib eine zugehörige Schreibanforderung für 1 Wort an DMAC_B aus, um das aktualisierte TDCR1-Wort an das FIFOR zurückzusenden, und gehe in den Zustand 15 über. Wenn der neue DCB nicht leer ist, aktiviere DMAC_MIC_RD1, um eine Leseoperation für ein Sendedatenwort anzufordern (unter Verwendung der Adresse, die während des Zustands 11 in das Register 385 geladen wurde), und gehe in den Zustand 12 über.
- Warte auf neue DCB-Wörter. Das erste Wort vom MIO ist die Adresse des Sendedatenpufferspeichers, die in das Register 385 geladen wird, wenn MIO_DMAC_ACK0 aktiv ist. Das zweite Wort vom MIO enthält die Bits ECI, EFI und die nächste DCB-Adresse, die zusammen in das Register 381 geladen werden, wenn MIO_DMAC_ACK1 aktiv ist. Das dritte Wort vom MIO (das zur Verfügung steht, wenn MIO_DMAC_ACK2 aktiv ist) ist der Sendebytezählstand, der in das Register 383 geladen wird. Gehe bei der Aktivierung von MIO DMAC DONE in den Zustand 10 über.
- Wenn das Sendedatenwort ankommt (MIC_DHAO_DMAC_ACK0 ist aktiv), lade es ins Register 384, erhöhe die Sendeadresse, verringere den Sendebytezählstand, aktiviere DMAC_B, um das TDFSW/TDCR1-Statusbyte im FIFOR zu aktualisieren, und gehe in den Zustand 13 über.
- - Prüfe, ob der aktualisierte Sendebytezählstand den Status "null/leer" hat. Wenn er den Status "leer" hat, werden das ECI- und das EFI-Bit vom TDCR1/FIFOR auf Werte von entsprechenden Bits im TDCR2/DMAR aktualisiert. DMAC_A_REQ und die entsprechende Nachricht DMAC_A_MSG werden an DMAC_B übertragen, um das FIFOR mit Schreiboperationen von 1 Wort oder von 2 Wörtern zu aktualisieren (1 Wort, wenn der neue DCB leer ist, 2 Wörter, wenn er nicht leer ist). Gleichzeitig wird eine Schreibanforderung für 1 Wort oder für 2 Wörter an das DMAR ausgegeben (1 Wort, wenn nur die Adresse des Sendepufferspeichers des alten DCB aktualisiert wird, 2 Wörter, wenn sowohl die Adresse des Sendepufferspeichers als auch die nächste DCB-Adresse aktualisiert werden). Gehe in den Zustand 14 über.
- - Übertrage nach der Ankunft einer Bestätigung vom DMAR die Bits ECI, EFI und die nächste DCB-Adresse vom Register 381 an das Register 385 für die Schreiboperation des zweiten Wortes ins DMAR. Gehe in den Zustand 15 über.
- - Bleibe in diesem Zustand, bis DMAC_A_REQ durch die Maßnahme der DMAC_B zurückgesetzt wird, setze dann alle Register 381 bis 385 zurück, und kehre anschließend in den Zustand 0 zurück, um einen neuen Operationszyklus zu starten.
- - In diesem Zustand wird das Anforderungsbit von der DMAC A ständig abgefragt, um festzustellen, ob ein Dienst in Bezug auf das FIFOR erforderlich ist. Wenn das Bit aktiv wird, setze DMAG_FIFOR_REQ auf logisch "1", und decodiere die Nachricht auf DMAC_A_MSG. Gib anschließend DMA_CHN_NBR an das FIFOR aus, damit es von diesem als Teiladresse verwendet werden kann. Übergib dem FIFOR in Abhängigkeit von der Nachricht von der DMAC_A entweder DMAC_FIFOR_RD1 oder DMAC_FIFOR_RD2 oder DMAC_FIFOR_WR1 oder DMAC_FIFOR_WR2, um die Adressierungsinformationen zu vervollständigen. Gehe in den Zustand 1 über, wenn die Nachricht von der DMAC_A "Lies den Sendebytezählstand aus dem FIFOR" lautet; gehe in den Zustand 2 über, wenn die Nachricht "Schreibe den aktualisierten Sendebytezählstand und die Daten in das FIFOR" lautet; gehe in den Zustand 3 über, wenn die Nachricht "Lies die aktuelle Adresse des Empfangspufferspeichers und die Daten aus dem FIFOR" lautet; oder gehe in den Zustand 4 über, wenn die Nachricht "Schreibe die aktualisierte momentane Adresse des Empfangspufferspeichers in das FIFOR" lautet.
- - Übertrage den Sendebytezählstand nach dem Empfang einer Bestätigung vom FIFOR (FIFOR_DMAC_ACK) vom FIFOR_DATA_BUS 389 an das Register 383. Prüfe die Paritätsbedingung. Wenn ein Paritätsfehler vorhanden ist, benachrichtige die DMAC_A, setze das Paritätsfehlerstatusbit im PE-Feld vom TDCR1 im FIFOR (um den IOP über TFM und INT zu benachrichtigen), und gehe in den Zustand 8 über. Wenn kein Fehler vorhanden ist, setze das DMAC A REQ-Bit zurück, und kehre in den Zustand 0 zurück.
- - Übertrage nach der Bestätigung vom FIFOR TDFSW und den Sendebytezählstand in das Register 384, die als das zweite Wort des im Zustand 0 ausgegebenen WR2-Befehls in das FIFOR geschrieben werden sollen. Das erste Wort, das geschrieben wird, sind die Sendedaten, die sich im Register 384 befinden, wenn der Befehl im Zustand 0 an das FIFOR ausgegeben wird. Gehe in den Zustand 5 über.
- - Nach einer Bestätigung vom FIFOR wird die aktuelle Adresse des Empfangsdatenpufferspeichers vom FIFOR_DATA_BUS im Register 385 zwischengespeichert, und ihre Parität wird geprüft. Wenn sie fehlerhaft ist, gehe in den Zustand 6 über, um eine Paritätsfehleranzeige in das PE-Bit im RDCR1/FIFOR zu schreiben (die schließlich dazu führt, dass im RFM eine Paritätsfehlerbedingung erkannt wird und der IOP über eine INT-Unterbrechung benachrichtigt wird). Wenn kein Fehler vorhanden ist, gehe in den Zustand. 9 über, um das zweite Wort aus dem FIFOR zu empfangen.
- - Setze nach einer Bestätigung vom FIFOR (der eine Schreiboperation in Bezug auf die im Zustand 0 übergebene aktuelle Adresse des Empfangsdatenpufferspeichers bestätigt) DMAC_A_REQ zurück, und kehre in den Zustand 0 zurück.
- - Dieser Zustand dient dazu, die Zeitsteuerung während einer Schreiboperation von 2 Wörtern erneut mit dem FIFOR abzugleichen (siehe Zustand 2).
- - Wenn das FIFOR RDCR1 beschrieben hät, um das Paritätsfehleranzeigebit zu überprüfen, aktiviere die DMAC_PARITY_ERROR-Anzeige an INT (erscheint am DMAR_PARITY-ERROR-Eingang von INT, Fig. 37). Setze das DMAC A REQ-Bit zurück, und kehre in den Zustand 0 zurück.
- - Nimm nach der Bestätigung vom FIFOR eine Prüfung auf einen Paritätsfehler im Empfangsdatenwort (dem zweiten aus dem FIFOR gelesenen Wort) vor. Wenn ein Fehler aufgetreten ist, gehe in den Zustand 6 über, um den Paritätsfehleranzeiger in das RDCR1/FIFOR zu schreiben. Wenn kein Fehler aufgetreten ist, setze das DMAC_A_REQ-Bit zurück, und kehre in den Zustand 0 zurück.
- - Setze das DMAC_A_REQ-Bit nach der Bestätigung vom FIFOR (der TDCR1-Schreibanforderung, die im Zustand 1 ausgegeben wurde) zurück, und kehre in den Zustand 0 zurück.
- - Dieser Zustand gestattet es, bei einer 2 Wörter umfassenden Leseoperation während des Lesens des zweiten Wortes einen Neuabgleich der Zeitsteuerung vorzunehmen (siehe Zustand 3).
- Das Haupt-E/A-(MLO-)Segment konkurriert um die Steuerung des IOP-Busses zugunsten des DMAC. Nachdem es die Steuerung erhalten hat, führt das MIO eine Direktspeicherzugriffsübertragung in den oder aus dem IOP- Speicher durch, wobei es vom DMAC übertragene Adressen- und Steuerparameter verwendet (auch Daten, gewöhnlich Empfangsdaten, wenn es sich bei der Übertragung um eine Schreiboperation in den IOP-Speicher handelt).
- In einer typischen Umgebung könnte die IOP-Verarbeitungseinheit ein Prozessor vom Typ Motorola 68000 sein, und der Bus könnte der bei diesem Prozessortyp verwendete Bus sein, der eine externe Übernahme der Hauptsteuerung ermöglicht. In einer anderen typischen Umgebung könnte der IOP-Prozessor zu der von der International Business Machines Corporation angebotenen Prozessorfamilie gehören, der die Micro-Channel-Busarchitektur verwendet (Micrö Channel ist ein Wareflzeichen der International Business Machines Corporation), die es mittels Arbitrierung zulässt, dass mehrere Einheiten die Busherrschaft haben. In solchen Umgebungen arbeitet das MIO als Busmaster, nachdem es die Steuerung des Busses übernommen hat (ein 16-Bit-Busmaster in der 68000-Umgebung; ein 32-Bit-Busmaster in der, Micro- Channel-Bus-Umgebung).
- Bezug nehmend auf Fig. 54, umfasst das MIO eine Zustandsmaschineneinheit 400, ein Datenregister und eine Paritätsprüfschaltung 401 (die für eine Anzahl von Bits ausgelegt ist, die der parallelen Datenkapazität des IOP-Busses entspricht), eine Multiplexerschaltung 402, die mit dem Datenausgang des DMAC (DMAC_MIO_DATA) verbunden ist, eine Empfänger- und eine Treiberschaltung 403 beziehungsweise 404, die mit dem Datenteil IOP_DATA_BUS des IOP-Busses verbunden sind, TreiberschaltunQen 405, die zwischen dem Adresseneingang vom DMAC (DMAC_MIO_ADDR) und dem Adressteil (IOP_ADDRESS) des IOP-Busses angeschlossen sind, und den Zeitlimit-Zeitgeber 406. Der IOP_DATA_BUS-Teil ist derzeit für bidirektionale parallele Übertragungen von 16 Datenbits und 2 Paritätsbits ausgelegt. IOP_ADDRESS ist für parallele Übertragungen vom MIO von 24 Adressbits und 3 Paritätsbits ausgelegt.
- Die Leitungen auf der linken Seite der Zustandsmaschineneinheit 400 verlaufen zu den Steuerleitungselementen des IOP-Busses, und die Leitungen auf der rechten Seite der Einheit 400 verlaufen zur DMAC. Bei den Leitungen auf der rechten Seite der Einheit gibt es drei Eingangssignale vom DMAC in das MIO, die verschiedene Lese- und Schreibsteuerfunktionen (DMAC_MIO_RD1, DMAC_MIO_RD3, DMAC_MIO_WR1) angeben, und vier Ausgangssignale vom MIO zum DMAC, von denen drei entsprechende Operationen bestätigen, die von den 3 DMAC-Eingangssignalen (MIC_DMAC_ACK0, MIO_DMAC_ACK1, MIC_DMAC_ACK2) angegeben werden, und eines eine DONE-Anzeige (MIC_DMAO_DONE) bereitstellt. ACK0 bestätigt die erste Übertragung einer aus 3 Wörtern bestehenden Leseoperation und/oder die einzige Wortübertragung einer aus 1 Wort bestehenden Lese- oder Schreiboperation. ACK1 beziehungsweise ACK2 bestätigen die zweite und die dritte Wortübertragung einer aus 3 Wörtern bestehenden Leseoperation.
- Auf der linken Seite der Einheit 400 unterscheidet die Bedingung der Leitung IOP_RD/WR zwischen Leseanforderungen (um Daten vom Bus an das MIO zu übertragen) und Schreibanforderungen (um Daten vom MIO auf den Bus zu übertragen). Wenn IOP_BUS_REQ aktiv ist, zeigt es einer externen Busvergabeschaltung an, dass MIO versucht, Zugriff auf den Bus zu erlangen. IOP_MIO_BUS_DR überträgt ein "Bewilligungs"-Signal vom Buszuteiler an das MIO, das anzeigt, dass der Bus zur Benutzung zur Verfügung steht. IOP_BUS_GR_ACK ist ein Signal vom MIO an den Buszuteiler, das die Bewilligung bestätigt. IOP_ADDR_STRB ist ein Adressenstrobesignal vom MIO, das den Beginn eines Buszyklus angibt. IOP_LDS und IOP_UDS sind ,untere und obere Datenstrobesignale vom MIO, die jeweils anzeigen, wann die unteren 8 Bits und die oberen 8 Bits auf dem Datenbus gültig sind. IOP_DTACK ist eine Bestätigung von der untergeordneten Seite des Busses (der zum IOP-Speicher gehört), die anzeigt, dass der Buszyklus endet.
- Paritätsfehleranzeigen auf der IOP-Seite werden über das Eingangssignal IOP_BUS_ERROR in die Zustandseinheit 400 bereitgestellt, und eine Paritätsfehleranzeige von der Einheit 400 an das DMAC wird über MIO_DMAC_PE bereitgestellt. Der Zeitgeber 406 unterwirft erwartete Antworten auf Signale, die von der Einheit 400 an den Bus ausgegeben wurden, einem Zeitlimit und bringt die Einheit in einen bestimmten Zustand, in dem sie wieder damit beginnt, um den Buszugriff zu konkurrieren, wenn eine erwartete Antwort nicht innerhalb eines vorher festgelegten Zeitraums erscheint (siehe die folgende Beschreibung der Zustände der Zustandsmaschinen).
- Nach dem Empfang einer Anforderung vom DMAC aktiviert MIO IOP_BUS_REQ. Wenn der externe Buszuteiler deb Zugriff mit IOP_MIO_BUS_DR bewilligt, antwortet MIO, indem es IOP_BUS_GR_ACK aktiviert und stellt die Adresse vom DMAC auf IOP_ADDRESS, während es IOP ADDR STRB aktiviert. Die Polarität von IOP_RD/WR wird vom MIO gesetzt, um die Übertragungsrichtung festzulegen. Bei einem Schreibzyklus steuert das MIO Daten vom DMAC auf den IOP-Bus. Bei einem Lesezyklus versetzt der Empfänger 403 den Bus in einen Dreizustands-(Tristate-)Modus, um es der IOP-Speichersteuereinheit zu ermöglichen, den Bus anzusteuern, und das 410 empfängt dadurch Däten vom Bus. Das MIO aktiviert nach Bedarf selektiv die oberen und die unteren Datenstrobeimpulse (IOP_UDS, IOP_LDS), um die Daten zu übertragen, und wartet dann auf die IOP_DTACK-Anzeige, dass der Datenübertragungsteil des Zyklus abgeschlossen ist.
- MIO überträgt Daten in Bezug auf das DMAC zu jeweils 4 Byte, und die DCBs, die aus dem IOP-Speicher abgerufen werden, umfassen 12 Byte (TDCR1, TDCR3 und TDCR4). Da der IOP-Datenbus eine Breite von nur 2 Byte hat, sind mehrere Buszyklen für die Übertragung der Daten und der DCBs notwendig. Wenn ihm der Zugriff bewilligt wurde, belegt das MIO den Bus folglich 2 Buszyklen lang, um Daten zu übertragen, und 6 Buszyklen, um einen DCB zu übertragen.
- Beim ersten Zyklus einer Leseübertragung speichert das Datenregister 401 (16 Bit breit) die Daten zwischen. Beim zweiten Zyklus derselben Übertragung werden die empfangenen Daten zusammen mit den im Register 401 gehaltenen 16 Bit über einen 4 Byte breiten Übertragungspfad direkt an das DMAC geleitet. Auf diese Weise werden dem DMAC die Daten zu jeweils 32 Bit übergeben. Das Datenregister 401 enthält eine Paritätsposition, die von der Einheit 400 zwischengespeichert werden kann, um eine Paritätsfehleranzeige zu erzeugen.
- Der Multiplexer 402 wird während Schreiboperationen dazu verwendet, jeweils 16 Bit von einem 32-Bit-Quellenregister im DMAC über die Treiber 404 auf den IOP_DATA_BUS zu leiten, wobei er zwischen den unteren und den oberen 16-Bit-Segmenten wechselt. Der Zeitgeber 406 wird vom MIO dazu verwendet, eine fehlende Antwort von entweder dem Buszuteiler oder den untergeordneten Steuerungen des IOP-Speichers einem Zeitlimit zu unterwerfen. Wenn dieses Zeitlimit überschritten wird, muss das MIO den Bus freigeben und erneut um den Zugriff konkurrieren.
- - Setze alle IOP-Bussteuersignale zurück und überwache die Signalleitungen DMAC_MIO_WR1, DMAC_MIO_RD1 und DMAC_MIO_RD3. Wenn irgendeine dieser Leitungen aktiv ist, aktiviere IOP_BUS_REQ, und starte ein 50 Mikrosekunden dauerndes Bus-Zeitlimitintervall im Zeitgeber 406. Gehe in den Zustand 1 über.
- - Wenn IOP BUS GR aktiv ist, wird dem MIO die Steuerung des Busses übergeben. Die Einheit 400 stellt sicher, dass andere Busmaster nicht auf dem Bus "verweilen", indem sie auf den Leitungen IOP_ADDR_STRB, IOP_BUS_GR_ACK und IOP_DTACK eine Prüfung auf Aktivitäten externen Ursprungs vornimmt (diese Leitungen sind alle bidirektional, haben drei Zustände und werden von dem Busmaster angesteuert, der den Bus gerade steuert). Die Einheit 400 wartet, bis sich diese Leitungen im Ruhezustand befinden, und aktiviert dann IOP_BUS_GR_ACK, um auf das empfangene Bewilligungssignal zu antworten und andere Busmaster fernzuhalten. Gleichzeitig wird die DMAC-Adresse auf die Adressleitungen des Busses gesteuert, und wenn die Operation in Bezug auf den IOP-Speicher eine Schreiboperation ist, werden die DMAC-Daten auf die Busdatenleitungen gesteuert. Gehe in den Zustand 2 über.
- - Wenn das Buszeitlimit abläuft, bevor die Busanforderung bewilligt wird, wird eine Buszeitablauffehlerbedingung festgestellt. Die Einheit 400 deaktiviert IOP BUS REQ (die im Zustand. 0 aktiviert wurde) und geht in den Zustand 14 über, um das DMAC zu benachrichtigen.
- - Deaktiviere die im Zustand 0 aktivierte Busanforderung, starte den Buszeitlimit-Zeitgeber erneut, und gehe in den Zustand 3 über.
- - Aktiviere IOP_ADDR_STRB, um den Zyklus zu starten, und warte auf die Antwort IOP_DTACK von der IOP- Speichersteuereinheit. Wenn die Antwort empfangen wird und die Operation eine Leseoperation aus dem IOP-Speicher ist, speichere die Daten auf dem Bus im Datenregister 401 zwischen, und gehe in den Zustand 4 über.
- - Wenn der Zeitgeber ohne Antwort abläuft, gib den Bus auf, indem ICE_BUS_GR_ACK deaktiviert wird, und gehe in den Zustand 14 über, um das DMAC über die Busfehlerbedingung zu benachrichtigen.
- Dieser Zustand dient zur Verlängerung des Buszyklus, nachdem IOP_DTACK aktiv wurde (im Zustand 3), um den zeitlichen Erfordernissen des (M68000-)Busses gerecht zu werden. Gehe in den Zustand 5 über.
- - Dieser Zustand dient dazu, eine Prüfung auf Bus- Ausnahmebedingungen vorzunehmen, die während des Übertragungszyklus eintreten (entweder IOP_BUS_ERROR oder ein Datenparitätsfehler bei einer Leseoperation) (die über das nicht gezeigte Eingangssignal von der Paritätsprüfschaltung 407 zwischen den Empfängern 403 und MIO DATA ahgezeigt werden). Wenn eine Ausnahmebedingung eintritt, bilde die Ausnahmebedingung in Datenparitätsfehler-, Bestätigungs- und Beendigungsanzeigen an das DMAC ab, indem MIO_DMAC_ACK0 und MIC_DMAC_DONE mit einer Datenparitätsanzeige über MIO_DMAC_PE aktiviert werden, und gehe in den Zustand 0 über. Wenn keine Ausnahmebedingung eintritt, gehe ungeachtet dessen, welche DMAC-Anforderung aktiv ist, in den Zustand 6 über.
- - Warte, bis der IOP-Speicher IOP_DTACK deaktiviert, so dass der zweite Buszyklus beginnen kann. Warte dann auf die erneute Aktivierung von IOP_DTACK, und gehe in den Zustand 7 über. Wenn der Zeitgeber vor der erneuten Aktivierung abläuft, gehe in den Zustand 14 über.
- - Steuere die erhöhte DMAC-Adresse (die auf den nächsten 16- Bit-IOP-Speicherplatz zeigt) zusammen mit DMAC-Daten, wenn eine Schreiboperation angefordert wird, auf den Bus, aktiviere IOP_ADDE_STRB, um den zweiten Buszyklus zu starten, und warte auf eine Antwort von der IOP- Speichersteuereinheit. Wenn eine Antwort empfangen wird, gehe in den Zustand 8 über. Wenn der Zeitgeber abläuft, ohne dass eine Antwort empfangen wird, gib den Bus auf, und gehe in den Zustand 14 über.
- - Prüfe die Art der vom DMAC ausgegebenen Anforderung. Wenn es eine Schreibanforderung für 1 Wort ist, gehe in den Zustand 9 über. Wenn es eine Leseoperation für 1 Wort ist, aktiviere MIC_DMAC_ACK0, und gehe in den Zustand 13 über. Wenn es eine Leseanforderung für 3 Wörter (DCB) ist, aktiviere eine vcn drei Bestätigungen in Abhängigkeit von den letzten beiden Adressbits (alle Übertragungen beginnen an einer 4'-Byte-Grenze, so dass sich die letzten beiden Bits bei der zweiten Übertragung von 00 in O1 ändern und bei der dritten Übertragung von 01 in 11; die Einheit 400 aktiviert folglich MIO_DMAC_ACK0, wenn die Adressbits den Wert 00 haben, MIO_DMAC_ACK1, wenn die Bits den Wert O1 haben, und MIO_DMAC_ACK2, wenn die Bits den Wert 11 haben). Bei der zweiten Leseanforderung werden die Datenbits auf dem Bus mit denjenigen im Register 401 verknüpft, und dem DMAC werden 32 Datenbits an MIO DATA übergeben. Gehe in den Zustand 10 über.
- - Führe über IOP_BUS_ERROR nochmals eine Prüfung auf einen Busausnahmebedingungsfehler durch. Wenn ein Fehler vorhanden ist, setze den Fehleranzeiger (über MIO_DMAC_PE). Gehe in den Zustand 12 über.
- - Führe eine Prüfung auf eine Ausnahmebedingung IOP_BUS_ERROR oder eine Datenparitätsfehleranzeige (bei 407) durch. Wenn Ausnahmebedingungen vorhanden sind, gehe in den Zustand 13 über, um das DMAC zu benachrichtigen. Wenn keine Ausnahmebedingung vorhanden ist und die DMAC- Anforderung eine Leseanforderung für 1 Wört ist, gehe in den Zustand 13 über. Wenn die DMAC-Anforderung eine Leseanforderung für 3 Wörter ist und die letzten beiden Adressbits einen arideren Wert als 11 haben, gehe in den Zustand 11 über, um die DMAC-Adresse zu erhöhen und weitere Daten zu lesen. Wenn die letzen beiden. Adressbits den Wert 11 haben, gehe in den Zustand 13 über.
- - Wenn IOP_DTACK deaktiviert und erneut aktiviert wird, gehe in den Zustand 3 über. Wenn der Zeitgeber ohne Deaktivierung und erneute Aktivierung abläuft, gib die Steuerung des Busses auf, und gehe in den Zustand 14 über.
- - Wenn IOP_DTACK deaktiviert wird, aktiviere MIO_DMAC_ACK0 an das DMAC, setze den Zeitgeber zurück, gib die Steuerung des Busses auf, und gehe in den Zustand 0 über. Wenn der Zeitgeber abläuft, bevor IOP DTACK deaktiviert wird, gib die Steuerung des Busses auf, und gehe in den Zustand 14 über.
- - Aktiviere MIO_DMAC_DONE an das DMAC, und gehe in den Zustand 0 über.
- - Aktiviere MIO_DMAC_DONE an das DMAC, warte, bis das DMAC seine Anforderung deaktiviert, und gehe in den Zustand 0 über.
- HyperChannels, die auch als H-Channels bekannt sind, sind Sammelkanäle, die gebildet werden, indem kleinere Kanäle zusammengelegt werden, um höhere Bandbteiten zu erzielen. CCITT-Empfehlungen für HyperChannels in ISDN-Umgebungen ziehen HyperChannels vom Typ H0, die eine Übertragungsgeschwindigkeit von 384 KBit/s haben, HyperChannels vom Typ H11, die eine Übertragungsgeschwindigkeit von 1.536 MBit/s haben, und HyperChannels vom Typ H12, die eine Übertragungsgeschwindigkeit von 1.920 MBit/s haben,, in Betracht.
- Die vorliegende IDLC-Einheit, die so konfiguriert ist, wie beschrieben wurde, unterstützt 32 Vollduplex-"Basis"-Kanäle ("B"- oder "D"-Kanäle), von denen jeder eine Übertragungsgeschwindigkeit von 64 KBit/s hat. Jedem Basiskanal wird ein entsprechender von 32 "Basis"- Verarbeitungszeitschlitzen in Bezug auf die BTDM zugeordnet. Bei dieser Konfiguration ermöglicht die Logik im RSM, in der DMARQ, dem DMAC und dem INT die Bildung und die Unterstützung von bis zu fünf H0-HyperChannels, indem sechs Basiskanalschlitze pro HyperChannel zusammengefasst werden, oder von einem H11-HyperChannel, der 24 Basisschlitze umfasst, oder von einem H12-HyperChannel, der 30 Basisschlitze umfasst. Wenn entweder ein H11- oder ein H12-HyperChannel konfiguriert wird, können keine H0-HyperChannels gebildet werden, obwohl B-/ D-Kanäle gleichzeitig in den Schlitzen vorhänden sein können, die vom HyperChannel nicht benutzt werden (den 8 Schlitzen, die von H11 nicht verwendet werden, oder den beiden Schlitzen, die von H12 nicht verwendet werden).
- Die IDLC geht über die CCITT-Empfehlungen hinaus und gestattet es, größeren Kanälen eine beliebige Anzahl von Basisschlitzen zuzuordnen, um eine größtmögliche Flexibilität bei der Bandbreite zu erreichen und um die Zuordnung von nicht zusammenhängenden Schlitzen zu gestatten (wodurch HyperChannels selbst dann gebildet werden können, wenn eine ausreichende Anzahl von zusammenhängenden Kanälen nicht zur Verfügung steht, weil gerade B-/D-Kanäle genutzt werden). Die Konfiguration der Basiszeitschlitze innerhalb eines beliebigen HyperChannels kann (vom IOP) dynamisch programmiert werden und ist für die Verarbeitungselemente der IDLC logisch transparent.
- In der IDLC wird die Bildung und die Verwendung von HyperChannels über eine Logik realisiert, die über die Segmente 510, RSM, DMARQ und DMAC verteilt ist. Die Erzeugung und der Betrieb der HyperChannels ist für alle anderen Segmente logisch transparent. HyperChannels werden gebildet, indem inaktive Basiszeitschlitze, die hier als "Formierungs"-Schlitze ("constituent" slots) bezeichnet werden, gemeinsam zugeordnet werden.
- Die grundlegende und ganz besondere Idee, die hinter dem vorliegenden Vetfahren der Realisierung von HyperChannels steckt, ist die, dass der als erstes erscheinende Formierungsschlitz in jedem HyperChannel als sogenannter "Referenz"-Schlitz zugeordnet wird. Alle Prozessstatus- und Konfigurationsparameter des gesamten HyperChannels werden in Bezug auf diesen Schlitz gespeichert (im TSR, FIFOR, DMAR und in bestimmten Registern, die im Folgenden erörtert werden).
- Jeder Formierungsschlitz eines HyperChannels wird dem jeweiligen Referenzschlitz mit Hilfe einer Logik im RSM und DMAC logisch zugeordner. Mit Ausnahme des Referenzschlitzes werden während der in Bezug auf einen Formierungsschlitz durchgeführten Verarbeitung zugehörige Adressierungsparameter (in Bezug auf das TSR und das FIFOR) in diejenigen des Referenzschlitzes umgesetzt. In Bezug auf jeden Formierungsschlitz werden somit Konfigurationssteuerungs- und Prozesszustandsfunktionen in Bezug auf Speicherplätze im TSR, die dem Referenzschlitz zugeordnet sind, Zeitsicherungs- und - wiederladeoperationen unterworfen, und FIFO- Verwaltungssteuerungsspararameter werden in Bezug auf Speicherplätze im FIFOR, die dem Referenzschlitz zugeordnet sind, gespeichert und abgerufen.
- Diese Viele-zu-eins-Abbildung wird vom CT-(Kanaltyp-)Feld im CCR-Register und dem Inhalt des HCR-(HyperChannel- Konfigurations-)Registers angegeben. Man erinnere sich, dass die CCRs von Basiskanälen in TSR-Speicherbereichen, die den jeweiligen Kanälen zugeordnet sind, gespeichert werden und während eines Zeitschlitzdienstes, der für den jeweiligen Kanäl erbracht wird, in ein Hardware-CCR-Register im RSM abgerufen werden (siehe die Fig. 5 und 10 und die vorausgegangene Beschreibung des RSM). Man erinnere sich auch, dass das HCR ein gemeinsames Register ist (das einen festen Parameter hält, der nicht zeitschlitzübergreifend repliziert wird), das sich physisch im SIO befindet (eine Wahl, die aus topologischen Gründen getroffen wurde, aber es könnte sich genauso in einem anderen Segment befinden) und dessen Ausgänge mit anderen Segmenten verbunden sind (siehe die Fig. 5 und 43 und die folgende Beschreibung der HCR-Feldzuordnungen).
- Wenn ein HyperChannel erzeugt wird, wird das HCR-Register mittels Programmierung vom IOP gesetzt, um einen zugehörigen Zeiger auf einen Formierungs-Referenzschlitz bereitzustellen, der in dem aus Schlitzen bestehenden Rahmen als erstes an der BTDM erscheint (dieser Schlitz wird auch als FSC oder erster Schlitz des jeweiligen HyperChannels bezeichnet). In Bezug auf jeden Formierungsschlitz eines HyperChannels wird das CT- (Kanaltyp-)Feld in dem zugehörigen CCR gesetzt (vom IOP/SIO), um den Typ und die Nummer des jeweiligen Kanals als einen der Folgenden anzuzeigen: B/D, H01, H02, H03, H04, H05 oder H1 (in Abhängigkeit von der Anwendungsumgebung entweder H11 oder H12).
- Das HCR enthält fünf 6-Bit-Felder, die bis zu fünf HyperChannels zugeordnet werden können (siehe die nachstehenden Einzelheiten). Ein jedes solches Feld enthält ein Aktivitätsbit, das dazu dient, anzuzeigen, ob der zugehörige Kanal aktiv ist, und fünf Bits, die den FSC-Zeiger auf den zugehörigen Referenzschlitz bilden. Aus Gründen der Wirtschaftlichkeit und der Einfachheit werden alle Konfigurations- und Statusparameter für einen HyperChannel in Bezug auf den Referenzschlitz gespeichert, und der FSC-Zeiger dient zur Adressierung des Referenzschlitzes während Verarbeitungsaktivitäten in Bezug auf die zugehörigen Formierungsschlitze. Bevor die Verarbeitung in Bezug auf jeden Schlitz beginnt, ruft der RSM vorab ein CCR ab, das zu diesem Schlitz gehört (siehe den Punkt "P" in Fig. 4), und mit den darin enthaltenen Informationen legt er zugehörige Verarbeitungsparameter für Segmente fest, die in Bezug auf diesen Schlitz tätig werden. Ein solcher Parameter ist ein Zeitschlitzanzeiger, RSM_TSI, der in Bezug auf Kanäle vom Typ B/D der physischen zeitlichen Lage des jeweiligen Schlitzes entspricht.
- Das CT-(Kanaltyp-)Feld in dem vorab abgerufenen CCR, das jedem Kanal zugeordnet ist, ist ein 3-Bit-Code, der den jeweiligen Kanaltyp entweder als gewöhnlichen B-/D-Typ oder als einen von 6 HyperChannel-Arten (H1 oder einen der 5 speziell nummerierten H0-Arten, H01 bis H05) ausweist. RSM prüft das CT-Feld in jedem vorab abgerufenen CCR, um festzustellen, welchem Kanal der jeweils nächste Verarbeitungsschlitz zugeordnet ist. RSM hält den Zählstand der Schlitze fest, der in Bezug auf B-/D-Kanäle als sein externer Zeitschlitzanzeiger RSM_TSI auf die anderen Segmente verwendet wird. Nachdem er festgestellt hat, dass der nächste Schlitz einem HyperChannel zugeordnet ist, ermittelt der RSM den Aktivitätszustand des HyperChannels über das zugehörige Aktivitätsbit im HCR. Wenn der HyperChannel aktiv ist, ersetzt RSM seinen aktuellen Schlitzzählstand durch den Wert in dem zugehörigen FSC-Feld im HCR, so dass sein externer Zeitschlitzanzeiger RSM_TSI einen Wert annimmt, der der zeitlichen Lage des Referenzschlitzes entspricht.
- Während neue Zustandsinformationen in Bezug auf den nächsten Schlitz geladen werden (in die synchronen Verarbeitungssegmente), wird folglich der Speicherbereich im TSR, der dem Referenzschlitz zugeordnet ist, adressiert, und während der Verarbeitung in Bezug auf diesen Schlitz wird der Zugriff auf das FIFOR auf den Speicherbereich gesteuert, der dem Referenzschlitz zugeordnet ist. In Bezug auf Datenübertragungsprozesse in der asynchronen Domäne (DMACY wird außerdem der Status von Anforderungen, die in der DMARQ anstehen, dem RFM und TFM im synchronen Zeitmultiplexbetrieb übergeben. Zu diesem Zweck liefert der RSM der DMARQ seinen Zeitschlitzanzeiger RSM_TSI, und während Zeitschlitzen, die zu HyperChannels gehören, Steueranzeiger der jeweiligen HyperChannel-Arten (RSM_DMARQ_H1 oder RSM_DMARQ_H0, die die jeweiligen HyperChannel-Arten H1, H01, H02,.., H05 unterscheiden). Während Zeitschlitzen, die zu HyperChannels gehören, verwendet die DMARQ folglich die zugehörige Typanzeige vom RSM, um den zugehörigen Anforderungsstatus zur Übergabe an RFM/TFM auszuwählen, und während Zeitschlitzen, die zu B-/D- Kanälen gehören, verwendet die DMARQ RSM_TSI, um den zugehörigen Anforderungsstatus zur Übergabe auszuwählen. Bezüglich weiterer Einzelheiten sei auf die vorausgegangene Beschreibung der DMARQ verwiesen.
- Anforderungen, die von der DMARQ in eine Warteschlange gestellt werden, werden vom DMAC jeweils einzeln in einer vorher festgelegten Prioritätsrangfolge bedient (siehe Beschreibung der DMARQ). Wenn eine HyperChannel-Anforderung für die Erbringung eines Dienstes durch das DMAC ausgewählt wird, ordnet ihr die Zustaridslogik in diesem Segment eine Anforderungsposition in der Warteschlange H0 oder H1 der DMARQ) zu, um die entsprechende FSC-Funktion im HCR als den zugehörigen Adressenzeiger DMAC_CHN_NBR in Bezug auf das FIFOR und das DMAR auszuwählen. Die DMAC-Zustandslogik bildet auch einen zugehörigen Adressebzeiger (DMAC_H_PTR) und eine Rücksetz-Operatorfunktion (DMAC_DMARQ_RCV_RESET oder DMAC_DMARQ_XMIT_RESET), die zusammen auf die bestimmte Warteschlangenposition der ausgewählten Anforderung zeigen, und legt sie an die DMARQ an, um diese Anforderung zurückzusetzen (siehe Beschreibung der DMARQ).
- HCR (Fig. 45) enthält ein 2-Bit-Feld HCT (HyperChannel Type) und fünf 6-Bit-Felder, die bis zu fünf HyperChannels vom Typ H0, H0n (n = 1 bis 5), zugeordnet werden können. Jedes 6-Bit- Feld enthält ein Aktivitätsanzeigebit HnA (n = 1 bis 5) und ein 5-Bit-Feld, das als Zeiger FSch (n = 1 bis 5) verwendet wird, wenn der jeweilige HyperChannel aktiv ist, und die zeitliche Lage des Referenzschlitzes kennzeichnet (n = 1 bis 5).
- Der im HCT-Feld (von I0P/SIO) gespeicherte Wert gibt wie folgt eine von zwei Einschränkungen bei der Bildung eines HyperChannels an (obwohl die beiden Bits 4 Zustände erlauben, werden hier nur 2 von ihnen verwendet): (1) Bildung eines H1- HyperChannel gesperrt. (H0- und B-/D-Kanäle sind erlaubt) oder (2) H1-HyperChannel wird gerade benutzt (die Bildung eines H0- Kanals ist nicht gestattet, aber die Bildung von B-/D-Kanälen ist dennoch erlaubt).
- Wenn sie aktiv sind, zeigen die RnA-Bits an, dass ein zugehöriger HyperChannel aktiv ist. H2A bis H5A können nur aktiv sein, wenn sich HCT in einem Zustand befindet, in dem die Bildung von H0-HyperChannels erlaubt ist (die Bildung von H1- HyperChannels ist gesperrt). Aktive Zustände von H2A bis H5A zeigen jeweils aktive Zustände der entsprechend nummerierten HyperChannels H02 bis H05 an. In Abhängigkeit vom Zustand von HCT zeigt der aktive Zustand von HIA entweder einen aktiven HyperOhannel vom Typ H1 oder einen aktiven HyperChannel vom Typ H0l an (Typ H1, wenn H0T anzeigt, dass H1 gerade benutzt wird, andernfalls Typ H01).
- Obwohl die Informationen, die von den Feldern HCT und HnA von HCR angegeben werden, scheinbar redundant sind, dienen sie einem bestimmten Synchronisationszweck. In allgemeiner Hinsicht stehen dieselben Informationen in den CCRs det zugehörigen Schlitze zur Verfügung, insbesondere in Bezug auf die Kanaltyp- Felder CT und entsprechende Bits, die die Freigabe für Datenübertragungen zu Verständigungszwecken anzeigen. Die HCR- Informationen werden jedoch für die Synchronisation des Starts von HyperChannels benötigt.
- Wenn ein HyperChannel gebildet wird, programmiert der IOP Steuerparameter für älle Formierungsschlitze (im TSR, FIFOR und DMAR), setzt einen entsprechenden Referenzschlitzzeiger im HCR und aktiviert das zugehörige HnA-Bit im HCR. Diese letzte Maßnahme legt sofort einen aktiven Status in Bezug auf alle Formierungsschlitze fest. Andernfalls wäre es notwendig, das Laden von CCR-Informationen in Bezug auf alle Formierungsschlitze zu synchronisieren, damit der Beginn der Übertragung in einem beliebigen Formierungsschlitz nicht mit Maßnahmen in einem anderen, als Nächstes erscheinenden Formierungsschlitz in Konflikt gerät, der zu diesem Zeitpunkt vielleicht noch nicht aktiv ist. Dies würde zu Fehlern führen, da eine solche Kommunikation notwendigerweise die ganze Bandbreite aller Formierungsschlitze beanspruchen würde, um einen Überlauf oder einen Unterlauf zu vermeiden.
- In Bezug auf Anzeigen von aktiven HyperChannels HnA enthalten die jeweiligen FSch-Felder Referenzschlitzzeiger, die vom RSM und DMAC verwendet werden. RSM verwendet diese Zeiger in Bezug auf jeden Formierungsschlitz, um einen internen Schlitzzählstand, der praktisch die physische zeitliche Lage des jeweiligen Schlitzes angibt, in eine externe logische Zeitschlitzanzeige RSM_TSI umzusetzen, die die zeitliche Lage des zugehörigen Referenzschlitzes angibt. Die externe Anzeige wird somit zur Adressierung von Speicherplätzen im TSR und FIFOR verwendet, die dem Referenzschlitz immer zugeordnet werden, wenn ein Formierungsschlitz bedient wird.
- In Bezug auf jeden aktiven HyperChannel erzeugt RSM auch Steuersignale an die DMARQ (RSM_DMARQ_H1, RSM_DMARQ_H0), um Anforderungen vom RFM und TFM an bestimmte Warteschlangenpositionen in der DMARQ zu steuern (siehe die vorausgegangene Beschreibung der DMARQ)
- Die DMAC verwendet die FSC-Zeiger zur Feststellung ihrer Kanalnummerfunktionen (DMAC_CHN_NBR) und der Steuerfunktionen des H-Zeigers (DMAC_H_PTR) in Bezug auf HyperChannel- Anforderungen (siehe die vorausgegangenen Beschreibungen des FIFOR, des DMAR, der DMARQ und der DMAC). Man erinnere sich, dass die Kanalnummerfunktionen als (Teil-)Adressen in Bezug auf das FIFOR und DMAR verwendet werden, während die Werte des H- Zeigers als Rücksetz-Steuerfunktionen in Bezug auf die DMARQ verwendet werden (in Verbindung mit entweder DMAC _DMARQ_RCV_RESET oder DMAC_DMARQ_XMIT_RESET).
- Fig. 55 veranschaulicht schematisch die Logik der IDLC; die auf die Bildung und Verwendung von HyperChannels anwendbar ist. Wie gezeigt ist, ist diese Logik innerhalb der RSM-, DMAC- und DMARQ-Segmente verteilt. Die verteilten Teile werden nachstehend getrennt beschrieben. Aus Gründen einer klaren logischen Darstellung veranschaulicht Fig. 55 bestimmte Funktionen als solche, die von "diskreten" logischen Elementen ausgeführt werden (z. B. Auswahlschaltungen, Decodierer usw.), obwohl viele dieser Funktionen in der vorliegenden Ausführungsform in die Zustandslogik von jeweiligen Segmenten integriert sind.
- Die RSM-Logik, die zur Nutzung eines HyperChannels gehört, enthält die Auswahlschaltung 450. Zu Beginn eines jeden Formierungsschlitzes eines HyperChannels wird die Schaltung 450 tätig, um die Informationen in einer der fünf nummerierten Feldgruppen im HCR-Register (die Gruppen HnA, FSch; n = 1 bis) an ihre Ausgänge zu übertragen. Das ausgewählte Aktivitätsanzeigebit HnA wird an den Aktivitätsanzeigeausgang "Act. Ind." übertragen, und der zugehörige Referenzschlitzzeiger FSch wird an den Ausgang "Ref. Slot Ptr." übertragen.
- Das HCR-Register ist hier und in Fig. 5 als im SIO befindliches Register gezeigt, aber es sollte sich von selbst verstehen, dass diese Wahl getroffen wurde, weil sie in Bezug auf die Topologie und die Signalisierung zweckmäßig war (topologisch zweckmäßig im Hinblick auf die Verteilung der Anzahl von Schaltungen in den Segmenten und aus Signalisierungssicht zweckmäßig im Hinblick auf die Bereitstellung des kürzesten Pfades vom IOP zu den Eingängen dieses Registers). Dies ist aus logischer Sicht natürlich nicht unbedingt notwendig (d. h., das Register könnte im RSM untergebracht werden, wobei die logische Konsistenz dann in größerem Umfang gewahrt würde, oder es könnte in einem beliebigen anderen Segment untergebracht werden, was vielleicht aber mit Abstrichen an der Zweckmäßigkeit insgesamt verbunden wäre).
- Die von der Logik 450 vorgenommene Auswahl der HCR-Gruppe wird vom CT-Feld des Vorab-CCR bestimmt, das bei 451 angelegt wird, wobei Letzteres vom RSM frühzeitig in jeder Schlitzperiode aus dem TSR abgerufen wird, bevor die synchrone Verarbeitung durch die IDLC in Bezug auf den zugehörigen Schlitz beginnt (siehe Fig. 4). Das Aktivitätsanzeigebit HnA in der ausgewählten Feldgruppe wird an das UND-Gatter 452 angelegt, und der FSch- Teil der ausgewählten Gruppe wird an eine weitere Auswahlschaltung 453 angelegt.
- Die Auswahlschaltung 453 antwortet auf CT in dem voräb abgerufenen CCR, um entweder einen Referenzschlitzzeiger FSch auszuwählen, der von der Auswahlschaltung 450 geliefert wird, oder einen Schlitzzählstand, der vom Schlitzzähler 454 übergeben wird. Der Zähler 454 zählt die Übergänge von Schlitzen modulo 32, die von Schlitzanfang-Anzeigen von der BTDM angegeben werden. Die FSch-Funktion wird ausgewählt, wenn CT in dem vorab abgerufenen CCR einen Kanaltyp eines HyperChannels angibt, und andernfalls wird der Wert des Schlitzzählstandes 454 ausgewählt.
- Der Eingang 455 des UND-Gatters 452 wird aktiviert, wenn die vom Decodierer 456 decodierte CT-Funktion einen HyperChannel- Kanaltyp angibt. Der Eingang 457 des UND-Gatters 452 wird aktiviert, wenn RSM_ENABLE durch einen Impuls vom RSM in einer Übergangsphase aktiviert wird, die mit dem Beginn der Prozessaktivität in Bezug auf den aktuellen Schlitz verbunden ist; allgemein ausgedrückt, wenn RSM_ENABLE an einer Stelle im Zustandsicherungs- und -wiederladeprozess so aktiviert wird, dass der zuvor zwischengespeicherte Wert von RSM_TSI für die Adressierung von TSR-Speicherbereichen nützlich ist, in denen der Status der synchronen Verarbeitung in Bezug auf den vorhergehenden Schlitz gesichert werden soll, und der neue zwischengespeicherte Wert desselben Parameters für die Adressierung von TSR-Speicherbereichen nützlich ist, aus denen der Status in Bezüg auf den Schlitz geladen werden soll, der zu dem vorab abgerufenen CCR gehört.
- Das Ausgangssignal 458 der Auswahlschaltung 453 wird in den nicht gezeigten Signalspeichern zwischengespeichert, und, wie durch die in Form von der gestrichelten Linie dargestellte Verbindung 459 vom Ausgang des UND-Gatters 452 zum Ausgang 458 der Auswahlschältung angegeben werden soll, wird diese Zwischenspeicherung zeitsynchron mit der Aktivierung des UND- Gatters durchgeführt (insbesondere, wenn RSM_ENABLE auf logisch "1" geht). Wenn der jetzt aktuelle Schlitz ein Schlitz ist, der zu einem aktiven HyperChannel gehört, ist der Wert von RSM_TSI, der am Ausgang der Auswahlschaltung 453 zwischengespeichert wird, folglich eine von der Auswahlschaltung 450 ausgewählte FSch-Funktion des Referenzschlitzzeigers, wohingegen der zwischengespeicherte Wert von RSM_TSI den aktuellen Schlitzzählstand darstellt, wenn der jetzt aktuelle Schlitz zu einem aktiven Kanal vom Typ B/D gehört.
- Die im RSM_TSI zwischengespeicherte Funktion wird anderen Segmenten (TSR, FIFOR, INT und DMARQ) als die Anzeige des jetzt aktuellen Zeitschlitzes übergeben. Somit werden Adressierungsfunktionen in diesen Segmenten auf die zeitliche Lage eines Referenzschlitzes bezogen, wenn der aktuelle Schlitz ein Formierungsschlitz eines HyperChannels ist, und andernfalls auf die tatsächliche zeitliche Lage, die vom Schlitzzählstand dargestellt wird. Man beachte, dass während der Zwischenspeicherung des RSM_TSI-Wertes der vorherige Wert in einem nicht gezeigten Signalspeicher gesichert wird, um die Adressparameter aufrechtzuerhalten, die benötigt werden, um die Sicherund der Zustandsinformationen in Bezug auf den vorangegangenen Schlitz abzuschließen.
- Während des nun aktuellen Schlitzes wird CCR erneut abgerufen (siehe die vorausgegangene Beschreibung des RSM), und sein CT- Feld wird an den Decodierer 460 angelegt. Wenn das angelegte CT einen HyperChannel vom Typ H1 angibt, wird ein entsprechendes Ausgangssignal 461 des Decodierers 460 aktiviert. Wenn das angelegte CT einen HyperChannel vom Typ H0n (n = 1 bis 5) angibt, wird eine entsprechende der 5 Leitungen am Ausgang 462 des Decodierers aktiviert. Wenn das angelegte CT einen nicht gezeigten Kanal vom Typ B/D angibt, wird ein anderes Ausgangssignal des Decodierers 460 aktiviert. Die Decodierer- Ausgangssignale 461 und 462 werden der DMARQ als die Anzeigen RSM_DMARQ_H1 und RSM_DMARQ_H0n des jeweiligen HyperChannel-Typs zugeführt und von dieser dazu verwendet, eingegebene Anforderurrgssetzsignale (vom RFM und TFM) und Anforderungsrücksetzsignale (vom DMAC) an Positionen innerhalb der DMARQ-Warteschlangen zu steuern, die zu HyperChannels vom Typ H1 und H0 gehören (bezüglich weiterer Einzelheiten sei auf die folgende Beschreibung des DMARQ-Teils der HyperChannel- Logik und auf die vorausgegangene Beschreibung des DMARQ- Segments verwiesen).
- Die DMAC-Logik für die Verwendung von HyperChannels enthält die "kaskadierten" Auswahlschaltungen 470 und 471. In der vorausgegangenen Beschreibung des DMAC-Segments werden die Funktionen dieser Auswahlschaltungen von der Zustandslogik des Segments ausgeführt, aber aus Gründen einer klaren logischen Darstellung sind diese Funktionen hier in Verbindung mit diskreten Decodiereinheiten gezeigt.
- Die Auswahlschaltung 470 empfängt als auswählbare Eingangssignale die FSC-Felder des HCR und wird von DMAC H PTR betrieben, wenn das DMAC eine Anforderung eines HyperChannels bedient, um das FSch-Feld auszuwählen, das vom Wert des H- Zeigers ausdrücklich angegeben wird. Der H-Zeiger wird von der Zustandsmaschine DMAC_A erzeugt (siehe Fig. 49 und die zugehörige vorausgegangene Beschreibung des DMAC).
- Die Auswahlschaltung 471 empfängt als auswählbare Eingangssignale das Ausgangssignal der Auswahlschaltung 470 und DMAC_B_PTR, das ebenfalls von der Zustandsmaschine DMAC_A erzeugt wird (Fig. 49), und wählt eines dieser Signale in Abhängigkeit von seinem Steuereingangssignal DMAC_H-B_SEL aus (das ebenfalls von der Zustandsmaschine erzeugt wird). Letzteres Steuereingangssignal unterscheidet auch, welche Art von Kanalanforderung gerade vom DMAC bedient wird, eine Anforderung von einem HyperChannel oder eine Anforderung von einem Kanal des Typs B/D.
- Das DMAC wählt anstehende Anforderungen von der DMARQ für den DMA-Übertragungsdienst. (in Bezug auf den IOP-Speicher, wie zuvor beschrieben wurde) jeweils einzeln und in einer vorher festgelegten Prioritätsrangfolge aus (siehe die vorausgegangenen Beschreibungen der DMARQ und des DMAC).
- Während eine Anforderung für die Erbringung eines Dienstes ausgewählt wird, ruft sich die DMAC-Zustandslogik ihre DMARQ- Ausgabeposition in Erinnerung und verwendet diese zur Festlegung von Werten von DMAG_H_PTR, DMAC_B_PTR und DMAC_H- B_SEL, die erzeugt werden müssen, wenn entsprechende Anforderungen zurückgesetzt werden sollen.
- Die Zustandslogik des DMAC erzeugt auch Funktionen, die bei 472 angegeben sind; DMAO_DMARQ_RCV_RESET, DMAC_DMARQ_XMIT_RESET und DMAC_RCV_REQ. Die ersten beiden dieser Funktionen werden der DMARQ zusammen mit den vorstehend genannten H- und B-Zeigern zugeführt, um Rücksetz; signale an Warteschlangenpositionen zu steuern, die jeweils Empfangs- und Sendeoperationen (siehe die Beschreibung der DMARQ) in Bezug auf den HyperChannel zugeordnet sind, der vom H-Zeiger angegeben wird. DMAC_RCV_REQ wird dem DMAR zugeführt, um Letzteresfür Adressierungsoperationen zu konditionieren, die mit Empfangsanforderungen verbunden sind (siehe die vorausgegangene Beschreibung des DMAR).
- Dieser Teil der HyperChannel-Logik enthält Teile der Auswahlsteuerungen und Anforderungswarteschlangen, die mit der Abwicklung von HyperChannel-Anforderungen für einen DMAC-Dienst verbunden sind.
- Die Auswahlsteuerung 480 stellt den in Fig. 47 gezeigten Teil der Auswahlsteuerungen 335 dar, der für die Abwicklung von HyperChannel-Anforderungen relevant ist. Die Eingangssignal- Auswahlsteuerung 481 stellt den Teil der Eingangssignal- Auswahlsteuerungen 333 in Fig. 47 dar (die Steuerungen, die für die Steuerung von Setz- und Rücksetzanforderungen an entsprechende Positionen in den DMARQ- Anforderungsregistrierüngswarteschlangen verantwortlich sind), der für die Abwicklung von HyperChannel-Anforderungen relevant ist. Warteschlangen für Anforderungen von H1-HyperChannels, die bei 483 und 484 gezeigt sind, entsprechen jeweils den Warteschlangen 330 und 331, die in Fig. 47 gezeigt sind. Schließlich stellen die bei 485 gezeigten Ausgangssignal- Auswahlsteuerungen den Teil der Ausgangssignal- Auswahlsteuerungen 334 in Fig. 47 dar, der für die Übergabe des HyperChannel-Anforderungsstatus an RFM und TFM relevant ist. Die Ausgangssignalsteuerungen 485 übergeben den Anforderungswarteschlarigenstatus im Zeitmultiplexbetrieb und synchron mit der Bedienung der Kanalschlitze (in Bezug auf HyperChannels synchron mit der Bedienung von Formierungsschlitzen). Der Status von Anforderungen für einen DMA-Empfangsdatendienst wird RFM an DMARQ_RFM_REQ (der dem Ausgangsanschluss 334R in Fig. 47 entspricht) übergeben, und der Status von Anforderungen für einen DMA-Sendedatendienst wird TFM an DMARQ_TFM_REQ (der dem Ausgang 334T, Fig. 47, entspricht) übergeben.
- Ein Beispiel für die Bildung eines HyperChannels folgt mit dem folgenden Szenario. Anfangszustand: Die IDLC ist für die Bildung von HyperChannels vom Typ H1 gesperrt (d. h. H0 ist erlaubt) und verwendet gerade die BTDM-Schlitze 3 bis 7, 12 bis 19 und 25 bis 30, um aktive Kanäle vom Typ B und/oder einen oder mehrere HyperChannels vom Typ H0 (aber weniger als 5) aufrechtzuerhalten.
- Der vorhergehende Status und die vorhergehende Schlitznutzung lässt 13 BTDM-Schlitze für andere Verwendungszwecke übrig (Schlitze 0 bis 2, 8 bis 11, 20 bis 24 und 31). Im Allgemeinen können Gruppen von 6 Basisschlitzen für die Bildung von HyperChannels vom Typ H0 verwendet werden. Die oben genannten verfügbaren Schlitze sind Kandidaten für eine mögliche Zuordnung zu entweder 2 H0-HyperChannels (wenn 3 oder weniger dieser Kanäle gerade aktiv sind) und 1 Kanal vom Typ B oder zu 1 H0-HyperChannel und 7 getrennten Kanälen vom Typ B oder zu 13 getrennten Kanälen vom Typ B. Im Folgenden wird beschrieben, wie 6 der verfügbaren Schlitze dynamisch einem neu konfigurierten H0-Vollduplex-HyperChannel zugeordnet werden könnten (dynamisch in dem Sinn, dass die Verarbeitung in den gerade aktiven Schlitzen während der Bildung des neuen H0- HyperChannels ohne Unterbrechung fortgesetzt wird).
- Um den H0-HyperChannel einzurichten, müsste der lokale IOP/Host zuerst mit dem fernen IOP/Host kommunizieren, zu dem er eine Verbindung herstellen möchte (vermutlich über eine vorhandene aktive D-Kanal-Signalisierungsleitung zwischen dem lokalen und dem fernen System). Bei einer solchen Kommunikation würde der Aufbau einer H0-HyperChannel-Verbindung angefordert werden. Die Antwort von dem fernen. System würde dessen Verfügbarkeit für eine solche Verbindung anzeigen (es wäre nur verfügbar, wenn es sich in einem Zustand befände, der die Bildung von H0- HyperChannels zulässt, und sechs inaktive Schlitze hätte).
- Nehmen wir an, dass sowohl der lokale als auch der ferne Knoten für die Bildung von H0-HyperChannels konfiguriert werden können und über die entsprechende Kapazität verfügen (und dies in ihren Mitteilungen angeben). Der nächste Schritt wäre, dass der lokale IOP/Host den fernen Knoten anweist (über die vorhandene Signalisierungsleitung), einen H0-HyperChannel zu bilden. Nach der Bestätigung dieser Mitteilung würde der lokale IOP/Host mit der Bildung des neuen H0-HyperChannel beginnen.
- Der erste Schritt bei der Bildung würde darin bestehen, dass der lokale IOP/Host die CCRs, die zu den lokalen Schlitzen 1, 2 und 8 bis 11 gehören, mit Typfeld-(CT-)Zuordnungen programmiert, die jeden Schlitz als einen Formierungsschlitz eines speziell nummerierten HyperChannels vom Typ H0 kennzeichnen; dies wird durchgeführt, indem auf die Speicherbereiche im lokalen TSR zugegriffen wird, die diesen CCRs zugeordnet werden (über das lokale SIO), und die entsprechenden Informationen in diese Speicherbereiche geladen werden.
- Als Nächstes muss der lokale IOP/Host Steuerparameter in das TSR, das FIFOR und das DMAR laden, in Speicherbereiche, die der Referenzschlitzposition zugeordnet sind, um den Betrieb des benötigten HyperChannel in allen beteiligten Segmenten aufrechtzuerhalten. Diese Ladeoperationen werden natürlich über das SIO durchgeführt und schließen Folgende ein: (1) TSR wird mit Zeitsicherungs- und -wiederlade-Zustandsparametern geladen, die notwendig sind, um die synchrone Sende- und Empfangsverarbeitung in dem angegebenen HyperChannel durchzuführen; (2) das FIFOR wird mit anfänglichen RDCR1- und TDCR1-Steuerparametern geladen, die zur Verwaltung des FIFOR in diesem HyperChannel erforderlich sind; und (3) das DMAR wird mit RDCR3-, RDCR4- und TDCR3-, TDCR4-Steuerparametern geladen, die zur Steuerung des DMAC-Zugriffs auf den IOP-Speicher und das FIFOR für diesen HyperChannel erforderlich sind.
- Dann würde der lokale IOP/Host Speicherbereiche in seinem Speicher vorbereiten, um die H0-Kanalübertragungen aufrechtzuerhalten, und eine weitere Mitteilung an den fernen IOP/Host senden (über die vorhandene Signalisierungsleitung), die anzeigt, dass er die Bildung des H0-HyperChannels abgeschlossen hat und er bereit ist, den neuen HyperChannel zu aktivieren. Wenn der ferne IOP/Host eine Bestätigung mit demselben Status schickt, würde der lokale IOP/Host das FSch- und das HnA-Feld setzen, das der H0-Nummer des neuen HyperChannels zugeordnet ist (im HCR-Register der lokalen IDLC); wobei das FSC-Feld so gesetzt wird, dass es auf den Schlitz 1 als den Refe renzschlitz für den jeweiligen HyperChannel zeigt, und das HA-Bit in seinen aktiven Zustand gesetzt wird. Vermutlich würde das ferne System das Gleiche tun.
- Damit ist der Prozess abgeschlossen, und der neue HyperChannel steht nun für eine aktive Datenübertragung zur Verfügung.
- Es sollte nun klar sein, dass wir eine Übertragungssteuereinheit beschrieben haben, die mit autonomen Elementen gebildet wird, welche einzeln mittels Logikschaltungen für spezielle Anwendungen realisiert werden. Bestimmte dieser Elemente bilden eine Mehrprozess-/ Multitasking-Pipeline, in der Operationen an Übertragungsdaten durchgeführt werden, die zwischen externen Zeitmultiplexverbindungen und einem externen Host-/IOP- Verarbeitungskomplex unterwegs sind. Mehrere Operationen werden an jedem Byte der Übertragungsdaten synchron mit dem Erscheinen von jeweiligen Zeitmultiplexschlitzen durchgeführt, in denen diese Daten extern übertragen werden.
- Die Verarbeitungspipeline enthält eine umfangreiche Pufferspeicher-Warteschlangensteuerung, um hohe Datenübertragungsgeschwindigkeiten durch die Einheit und damit zwischen den externen Zeitmultiplexverbindungen und dem Host-/ IOP-Verärbeitungssystem aufrechtzuerhalten. Um eine schnelle Übertragung weiter zu vereinfachen, enthält die Einheit spezielle DMARQ- und DMAC-Segmente, die zwischen der synchronen Pipeline und dem externen IOP-System angeschlossen sind. Die DMARQ dient dazu, synchron erzeugte Anforderungen für eine Datenübertragung in asynchron bedienbare Anforderungen umzusetzen, und das DMAC-Segment bearbeitet solche Anforderungen asynchron, um Datenübertragungsoperationen zwischen der Einheit und dem Speicher durchzuführen, der dem IOP in einer Betriebsart mit direktem Speicherzugriff (DMA) zugeordnet wird.
- Um Datenübertragungsprozesse noch schneller zu gestalten, wird die Übertragung von Informationen von der Einheit an den IOP in Bezug auf Ereignisse, die zusätzlich zu dem Transport von Daten stattfinden, über einen Statusübertragungspfad durchgeführt, der von der oben erwähnten Pipeline überwiegend getrennt ist. Die Einheit enthält ein Unterbrechungsbehandlungssegment, das dazu dient, Unterbrechungsanforderungen und Unterbrechungsanforderungsvektoren synchron in Bezug auf die Prozesse in der Pipeline vorzubereiten. Diese Anforderungen und Vektoren werden dem IOP über den Statusübertragungspfad asynchron übergeben.
- Die Einheit ermöglicht es auch, Ereignisstatusinformationen, die mit den Anforderungen verbunden sind, synchron in einem Speicher abzulegen, der gemeinsam benutzt wird, um Steuerparameter zu speichern, die die Verarbeitungsaktivitäten in der Pipeline steuern. Die Einheit ermöglicht ferner die Verwaltung des Ereignisstatus über Warteschlangen in dem Speicher iri Bezug auf mehrere in zeitlichem Abstand erfolgende Ereignisse, die in einem Übertragungskanal in dem gemeinsam benutzten Speicher stattfinden, wobei diese Verwaltung von dem Unterbrechungsbehandlungssegment gesteuert wird. Schließlich enthält die Einheit ein untergeordnetes E/A-Segment, das es dem IOP bei nur geringfügiger Störung laufender Datenübertragungsprozesse ermöglicht, asynchron auf den in die Warteschlange gestellten Status zuzugreifen und ihn abzurufen.
- Innerhalb seiner synchronen Pipeline enthält die Einheit mehrere autonome Sende- und Empfangsverarbeitungselemente, die parallel arbeiten, um mehrere unterschiedliche Tasks an Daten auszuführen, die übertragen werden; jedes Element ermöglicht die interne Pufferung von Daten und ergänzt dadurch die von den Speichern in der Einheit ermöglichte Pufferung. Die Elemente arbeiten synchron und werden von einem Ressourcenverwaltungselement gesteuert, das Zeitsicherungs- und - wiederladeoperationen von Zustandssteuerungsparametern - einschließlich der verarbeiteteti Daten - zwischen den Verarbeitungselementen und einem in der Einheit befindlichen Zeitsicherungs- und -wiederladespeicher steuert.
- Dementsprechend werden diese und andere Aspekte der vorliegenden Einheit nun in den folgenden Ansprüchen näher dargelegt.
Claims (22)
1. Datenübertragungs-Steuereinheit (20) zum Anschluss
zwischen einer Zeitmultiplex-
Datenübertragungsnetzwerkschnittstelle (21) und einem
Datenverarbeitungssystem (23), wobei die Daten an der
Schnittstelle in zyklisch wiederkehrenden
Zeitmultiplexschlitzen übertragen werden, die mehreren
Vollduplex-Übertragungskanälen zugewiesen werden können,
wobei die Einheit Folgendes umfasst:
Speichermittel (52 bis 54), die Speicherbereiche haben,
von denen jeder einem getrennten wiederkehrenden
Zeitmultiplexschlitz in dem Netzwerk fest zugeordnet ist,
wobei die Speicherbereiche Datenspeicher-Warteschlangen
enthalten, welche für jeweilige Schlitze und
Steuerinformationen reserviert sind, die Operationen der
Einheit in Bezug auf Übertragungskanäle angeben, die den
Schlitzen zugewiesen werden können; und
ein Mittel (67) das mit den Speichermitteln und dem
Datenverarbeitungssystem verbunden ist, um Daten in Bezug
auf die Kanäle zwischen jeweiligen Datenspeicherbereichen
und dem Datenverarbeitungssystem zu übertragen;
dadurch gekennzeichnet, dass die Einheit Folgendes
umfasst:
mehrere autonome Logikschaltungselemente (60 bis 66), die
zwischen dem Netzwerk und den Speichermitteln (52 bis 54)
hintereinander geschaltet sind, um in Bezug auf die Kanäle
eine mehrstufige Datenverarbeitungspipeline zu bilden,
wobei die Pipeline synchron mit den Schlitzen arbeitet, um
Übertragungsdaten von jeweiligen Kanälen zwischen
jeweiligen Schlitzen und Datenspeicher-Warteschlangen zu
transportieren, wobei die Stufen in der Pipeline selektiv
verschiedene Verarbeitungstasks an den Daten ausführen,
während diese transportiert werden; wobei jedes der
Elemente (60 bis 67) eine getrennte Stufe in der Pipeline
bildet, wobei die Pipeline in Bezug auf jeden Kanal eine
Multitasking-Anordnung und in Bezug auf alle Kanäle eine
Mehrprozess- und Multitasking-Anordnung bildet;
wobei die Pipeline getrennte Sendepipeline- und
Empfangspipeline-Abschnitte umfasst, die von getrennten
Konfigurationen von autonomen Elementen gebildet werden,
wobei die Pipelineabschnitte auf jeden Kanal bezogene
Übertragungsdaten in entgegengesetzte Richtungen zwischen
den Netzwerkzeitschlitzen und den Datenspeicher-
Warteschlangen transportieren und selektiv
Verarbeitungsoperationen an Daten in den Kanälen
durchführen, während die Daten transportiert werden;
wobei die Kanäle dynamisch konfiguriert werden können, um
Daten in einer Vielzahl von verschiedenen
Übertragungsformaten und -protokollen Rechnung zu tragen;
und
wobei die Elemente (60, 61), die in den Sende- und
Empfangspipeline-Abschnitten Stufen bilden, einzeln so
ausgelegt werden können, dass sie Daten in den Kanälen
entsprechend jeweiliger Kanalkonfigurationen verarbeiten
und entsprechend jeweiliger Formate und Protokolle
Verarbeitungstasks an den Daten ausführen; wobei Daten in
die Datenspeicher-Warteschlangen in einer allen Kanälen
gemeinsamen Form eingegeben und in den
Netzwerkzeitschlitzen in verschiedenen Formen, die den
jeweiligen Kanalkonfigurationen zugeordnet sind,
ausgetauscht werden können.
2. Steuereinheit nach Anspruch 1, wobei eine Vielzahl der
Kanäle so konfiguriert werden können, dass sie
digitalisierten Sprach- und HDLC-Daten gleichzeitig
Rechnung tragen können, und wobei die Pipelineabschnitte
so betrieben werden können, dass sie die Tasks ausführen,
die notwendig sind, um den Kanälen gleichzeitig Rechnung
zu tragen.
3. Steuereinheit nach Anspruch 2, wobei:
die Elemente (61), die Stufen des Sendepipeline-Abschnitts
bilden, in Bezug auf Kanäle ausgelegt werden können, die
für den Transport von Daten an das Netzwerk gemäß HDLC-
Protokollen konfiguriert sind, um Verarbeitungsoperationen
durchzuführen, die dazu dienen, HDLC-Rahmenbegrenzer und
CRC-Prüfsymbole in die Daten einzubetten; und
die Elemente (60), die Stufen der Empfangspipeline bilden,
in Bezug auf Kanäle ausgelegt werden können, die für den
Empfang von Daten von dem Netzwerk gemäß HDLC-Protokollen
konfiguriert sind, um Verarbeitungsoperationen
durchzuführen, die dazu dienen, HDLC-
Rahmenbegrenzungssymbole aus empfangenen Daten zu
entfernen und CRC-Prüfungen an den Daten vorzunehmen.
4. Steuereinheit nach Anspruch 3, wobei:
die Speichermittel (52 bis 54) und die Sende- und die
Empfangspipeline so ausgelegt werden können, dass sie
gleichzeitige Operationen von mindestens 32
Vollduplexkanälen mit Datenübertragungsgeschwindigkeiten
von insgesamt 128 kBit/s in jedem Kanal aufrechterhalten.
5. Steuereinheit nach Anspruch 4, wobei:
Datenaustauschoperationen an der Netzwerkschnittstelle in
Bezug auf aktive Kanäle bitseriell durchgeführt werden,
wobei eine variable Anzahl x von Bits während eines jeden
Schlitzes übertragen wird, wobei x im Bereich von 0 bis n
liegt und n größer 2 ist; und
jedes Element (60, 61) in den Sende- und Empfangspipeline-
Abschnitten so ausgelegt ist, dass es Operationen an Daten
in Bezug auf jeden Kanal in einer bitparallelen,
bytesequentiellen Betriebsart durchführt.
6. Einheit nach Anspruch 5, wobei die
Datenaustauschoperationen in Bezug auf aktive Kanäle
stoßweise während Fenstern von kurzer Dauer in jeweiligen
Schlitzen durchgeführt werden, wobei ein Hauptteil einer
jeden Schlitzperiode zur Verfügung steht, um die Zustände
der Pipelines in Bezug auf nachfolgende Schlitze zu
verändern.
7. Einheit nach Anspruch 6, wobei:
der Speicherbereich in den Speichermitteln (52 bis 54),
der für die Speicherung von
Zustandssteuerungsinformationen für die Pipelineabschnitte
in Bezug auf jeden Kanal reserviert ist, Unterbereiche für
die Speicherung von Zustandssteuerungsinformationen in
Bezug auf jedes der Elemente enthält, die Stufen in den
Pipelineabschnitten bilden; wobei die Stufen in Bezug auf
jeden Kanal während des jeweiligen Zeitschlitzes getrennt
konfiguriert werden können.
8. Einheit nach Anspruch 7, die Folgendes umfasst:
ein Mittel, das mit den Speichermitteln (52 bis 54) und
jedem Element in den Pipelineabschnitten zusammenarbeitet,
um Übertragungen von Zustandssteuerungsinformationen
zwischen den Elementen (60 bis 67) und den Speichermitteln
(52 bis 54) synchron mit den Zeitsohlitzen zu steuern;
wobei Informationen, welche die augenblicklichen
Verarbeitungszustände eines jeden Elements (60 bis 67)
angeben, in Bezug auf jeden aktiven Kanal zyklisch
gesichert und wiederhergestellt werden, um den Elementen
die Möglichkeit zu geben, Daten in Bezug auf alle aktiven
Kanäle gleichzeitig zu verarbeiten.
9. Einheit nach Anspruch 8, wobei das Mittel zur
Zusammenarbeit Folgendes umfasst:
ein Ressourcenverwaltungs-(RSM-)Element (63), um die
zyklische Sicherung und Wiederherstellung von Zuständen
zwischen den Elementen in den Pipelineabschnitten und den
Speichermitteln (52 bis 54) synchron mit den Zeitschlitzen
zu verwalten; wobei das RSM-Element (63) den
Pipelineelementen Start- und Endeanzeigen bereitstellt, um
die Pipelineelemente (60 bis 67) anzuweisen,
Verarbeitungstasks in Bezug auf einen Kanal, der einem
aktuellen Schlitz zugeordnet ist, zu beginnen und zu
beenden;
wobei die Pipelineelemente dem RSM-Element (63) als
Antwort auf die Endeanzeigen DONE-Anzeigen bestätigen,
wenn es sich bei dem aktuellen Schlitz um einen Schlitz
handelt, der einem aktiven Kanal zugewiesen ist; wobei die
Pipelineelemente ferner Anzeigen über die fortlaufende
Ausgabe ihrer Verarbeitungszustände während eines jeden
Schlitzes bereitstellen;
wobei das RSM-Element (63) als Antwort auf die DONE-
Anzeigen von jeweiligen Pipelineelementen die Sicherung
der Verarbeitungszustände von den Pipelineelementen in den
Speichermitteln anweist; und
wobei die DONE-Anzeigen von den Pipelineelementen
verzögert werden können, damit die Pipelineelemente
stabile Verarbeitungszustände erreichen können, aus denen
die Verarbeitung ohne Mehrdeutigkeit wieder aufgenommen
werden kann.
10. Einheit nach Anspruch 8, wobei das
Ressourcenverwaltungselement (63) Folgendes enthält:
ein Mittel, das mit der Netzwerkschnittstelle verbunden
ist, um Signale zu empfangen, die den jeweiligen Beginn
von aufeinanderfolgenden Schlitzen anzeigen;
ein Mittel, das auf die Schlitzbeginn-Signale anspricht,
um den Pipelineelementen aufeinanderfolgende Ende- und
Startanzeigen bereitzustellen;
ein Mittel, das mit den Speichermitteln vor dem Empfang
eines jeden Schlitzbeginn-Signals interaktiv kommuniziert,
um Konfigurationssteuerungs-(CCR-)Informationen abzurufen,
die anzeigen, ob der dann aktuelle Schlitz einem aktiven
Kanal zugewiesen ist;
ein Mittel, das
mit den Speichermitteln nach dem Empfang
des Schlitzbeginn-Signals interaktiv kommuniziert, um
Konfigurationssteuerungs-(pre-CCR-)Informationen
abzurufen, die anzeigen, ob der dann beginnende Schlitz
einem aktiven Kanal zugewiesen ist oder nicht;
ein Mittel, das auf die DONE-Anzeigen von den
Pipelineelementen anspricht, wenn die CCR-Informationen
anzeigen, dass ein aktiver Kanalschlitz endet, um die
Sicherung der Verarbeitungszustandsanzeigen in Bezug auf
den Schlitz von den Pipelineelementen auf die
Speichermittel zu übertragen; und
ein Mittel, das auf die pre-CCR-Informationen anspricht,
die anzeigen, dass der dann beginnende Schlitz einem
aktiven Kanal zugewiesen ist, um das Laden der
Zustandssteuerungsinformationen in Bezug auf den
jeweiligen Kanal aus den Speichermitteln in die
Pipelineelemente anzuweisen.
11. Einheit nach Anspruch 1, wobei:
die Speichermittel (52 bis 54) ein Mittel enthalten, das
dazu dient, Statusinformationen in Bezug auf Prozesse in
jedem der Kanäle zu speichern; und
mindestens eine der Pipelines Folgendes umfasst.
ein Mittel, um Statusinformationen in Bezug auf
Ereignisse zu erfassen, die während der Kanalprozesse
stattfinden, und um die erfassten Informationen an die
Speichermittel zu übertragen; und
ein Mittel, um die gespeicherten Statusinformationen
Verarbeitungssystemen an der Verarbeitungsschnittstelle
zugänglich zu machen.
12. Einheit nach Anspruch 11, wobei:
das Mittel zur Speicherung von Statusinformationen eine
Vielzahl von Statusinformationsbegriffen in Bezug auf
jeden Kanal speichern kann, wobei die Begriffe in Bezug
auf einen beliebigen Kanal eine Vielzahl von verschiedenen
Ereignissen darstellen, die bei der Verarbeitung von Daten
in dem Kanal stattfinden.
13. Einheit nach Anspruch 1, die Folgendes umfasst:
ein autonomes DMA-Steuer-(DMAC-)Element, das die
Schnittstelle zwischen den Pipelines und der
Verarbeitungsschnittstelle bildet, um auf einen externen
Speicher, der dem Datenverarbeitungssystem zugeordnet ist,
direkt zuzugreifen und um zwischen den Speichermitteln der
Einheit und dem externen Speicher Übertragungsdäten zu
übertragen.
14. Einheit nach Anspruch 13, wobei:
die Speichermittel (52 bis 54) ein Mittel enthalten, auf
das das DMAC-Mittel zugreifen kann, um Steuerinformationen
zu speichern, die Operationen angeben, welche von dem
DMAC-Element in Bezug auf zugeordnete der Kanäle
durchgeführt werden sollen;
wobei die Steuerinformationen Adressen in dem externen
Speicher angeben, an die und von denen Übertragungsdaten
in Bezug auf die zugeordneten Kanäle übertragen werden
sollen.
15. Einheit nach Anspruch 14, wobei:
die Einheit ein untergeordnetes E/A-Element (Slave-E/A-
(SIO-)Element (67) enthält, das mit dem
Datenverarbeitungssystem verbunden ist, wobei das SIO-
Element das System mit den Speichermitteln (52 bis 54)
verbindet, um dem Datenverarbeitungssystem die Übertragung
von Informationen an die und den Abruf von Informationen
aus den Speichermitteln mit kleinstmöglicher
Störbeeinflussung der Datenübertragungsoperationen des
DMAC-Elements in Bezug auf den externen Speicher zu
ermöglichen.
16. Einheit nach Anspruch 15, wobei:
die Informationen, die über das SIO-Element (67) an die
Speichermittel (52 bis 54) übertragen werden können, die
Informationen zur Steuerung von Operationen des DMAC-
Elements in Bezug auf einzelne Kanäle enthalten.
17. Einheit nach Anspruch 16, wobei:
die Speichermittel (52 bis 54) so ausgelegt werden können,
dass sie Statusinformationen in Bezug auf
Prozessereignisse speichern, die in der Einheit in Bezug
auf einzelne Kanäle stattfinden; und
die Informationen, die den Speichermitteln (52 bis 54) von
dem Verarbeitungssystem über das Slave-E/A-Mittel (67)
entnommen werden können, die Prozessereignis-
Statusinformationen enthalten.
18. Einheit nach Anspruch 1, wobei:
die Speichermittel (52 bis 54) Folgendes umfassen:
eine Vielzahl von diskreten Direktzugriffspeicher-
(RAM-)Einheiten, zu denen Folgende gehören:
eine erste RAM-Einheit, um Übertragungsdaten zu speichern,
die jedem Kanal unterwegs zugeordnet werden, um sie
unterwegs zwischen den Schnittstellen zu verarbeiten;
eine zweite RAM-Einheit, um
Zustandssteuerungsinformationen in Bezug auf einzelne
Pipelineelemente in Verbindung mit der Verarbeitung von
auf die Kanäle bezogenen Daten zu speichern; und
eine dritte RAM-Einheit, um Steuerinformationen zur
Steuerung des Betriebs der Einheit in Bezug auf das
Datenverarbeitungssystem zu speichern.
19. Einheit nach Ansprüch 12, die Folgendes enthält:
ein autonomes Element, welches das Mittel enthält, das zur
Erfassung der Statusinformationen und zur Verwaltung der
Übertragung der Informationen an die Speichermittel dient.
20. Einheit nach Anspruch 14, wobei:
die gespeicherten Steuerinformationen Verkettungsanzeigen
enthalten; und
das DMAC-Element auf die Verkettungsanzeigen anspricht, um
automatisch zusätzliche Steuerinformationen aus dem
externen Speicher abzurufen, wodurch eine in Ausführung
befindliche Operation in Bezug auf einen beliebigen Kanal
erweitert werden kann.
21. Einheit nach Anspruch 14, wobei:
der externe Speicher Speicherbereiche enthält, die als
Ringpufferspeicher konfiguriert sind; und
das DMAC-Element auf die Steuerinformationen anspricht, um
Übertragungen von Übertragungsdaten in Bezug auf die
Ringpufferspeicher und den Einschluss der Daten in vorher
festgelegte Grenzen der Pufferspeicher zu verwalten.
22. Einheit nach einem der vorstehenden Ansprüche, die auf
einem einzigen LSI-Halbleiterchip enthalten ist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/495,232 US5218680A (en) | 1990-03-15 | 1990-03-15 | Data link controller with autonomous in tandem pipeline circuit elements relative to network channels for transferring multitasking data in cyclically recurrent time slots |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69132648D1 DE69132648D1 (de) | 2001-08-09 |
DE69132648T2 true DE69132648T2 (de) | 2002-04-25 |
Family
ID=23967817
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69132648T Expired - Lifetime DE69132648T2 (de) | 1990-03-15 | 1991-02-25 | Integrierte Daten-Übertragungsstrecken-Steuerung mit autonomen logischen Elementen |
Country Status (5)
Country | Link |
---|---|
US (1) | US5218680A (de) |
EP (1) | EP0449420B1 (de) |
JP (1) | JPH0720147B2 (de) |
CA (1) | CA2034911C (de) |
DE (1) | DE69132648T2 (de) |
Families Citing this family (121)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5485370A (en) | 1988-05-05 | 1996-01-16 | Transaction Technology, Inc. | Home services delivery system with intelligent terminal emulator |
US5572572A (en) | 1988-05-05 | 1996-11-05 | Transaction Technology, Inc. | Computer and telephone apparatus with user friendly interface and enhanced integrity features |
US7421633B2 (en) | 2005-03-21 | 2008-09-02 | Texas Instruments Incorporated | Controller receiving combined TMS/TDI and suppyling separate TMS and TDI |
EP0453863A2 (de) * | 1990-04-27 | 1991-10-30 | National Semiconductor Corporation | Verfahren und Gerät zur Ausführung einer Mediumzugriffssteuerung/Wirtsystemschnittstelle |
US5532841A (en) * | 1990-07-31 | 1996-07-02 | Minolta Camera Kabushiki Kaisha | Facsimile apparatus comprising a plurality of image reading units |
FR2670299B1 (fr) * | 1990-12-07 | 1993-01-22 | Thomson Composants Militaires | Circuit integre avec controleur de test peripherique. |
EP0544963A1 (de) * | 1991-11-29 | 1993-06-09 | International Business Machines Corporation | Parallelverarbeitungsverfahren für empfangende und übertragende Bitströme |
DE69333495T2 (de) * | 1992-08-28 | 2004-09-16 | Siemens Information and Communication Networks, Inc., San Jose | ISDN Schicht-3-Maske |
US5875037A (en) * | 1992-09-03 | 1999-02-23 | Canon Kabushiki Kaisha | Communication apparatus |
US5623634A (en) * | 1992-09-15 | 1997-04-22 | S3, Incorporated | Resource allocation with parameter counter in multiple requester system |
JPH06274462A (ja) * | 1993-03-18 | 1994-09-30 | Fujitsu Ltd | 共有メモリの非同期書込み方式 |
US5638530A (en) * | 1993-04-20 | 1997-06-10 | Texas Instruments Incorporated | Direct memory access scheme using memory with an integrated processor having communication with external devices |
US5424949A (en) * | 1993-07-30 | 1995-06-13 | Honeywell Inc. | Multi-channel data receiver system |
US5708659A (en) * | 1993-10-20 | 1998-01-13 | Lsi Logic Corporation | Method for hashing in a packet network switching system |
US5446726A (en) * | 1993-10-20 | 1995-08-29 | Lsi Logic Corporation | Error detection and correction apparatus for an asynchronous transfer mode (ATM) network device |
US5802287A (en) * | 1993-10-20 | 1998-09-01 | Lsi Logic Corporation | Single chip universal protocol multi-function ATM network interface |
US5640399A (en) * | 1993-10-20 | 1997-06-17 | Lsi Logic Corporation | Single chip network router |
US5668809A (en) * | 1993-10-20 | 1997-09-16 | Lsi Logic Corporation | Single chip network hub with dynamic window filter |
US5625825A (en) * | 1993-10-21 | 1997-04-29 | Lsi Logic Corporation | Random number generating apparatus for an interface unit of a carrier sense with multiple access and collision detect (CSMA/CD) ethernet data network |
US5826063A (en) * | 1993-11-08 | 1998-10-20 | Cirrus Logic, Inc. | Apparatus and method for programming the setup, command and recovery time periods within a transaction cycle |
US5566238A (en) * | 1993-11-24 | 1996-10-15 | Intel Corporation | Distributed processing of audio signals |
US5579389A (en) * | 1993-11-24 | 1996-11-26 | Intel Corporation | Histogram-based processing of audio signals |
US5592547A (en) * | 1993-11-24 | 1997-01-07 | Intel Corporation | Processing audio signals using a discrete state machine |
US5506969A (en) * | 1993-11-29 | 1996-04-09 | Sun Microsystems, Inc. | Method and apparatus for bus bandwidth management |
JPH07200432A (ja) * | 1993-12-17 | 1995-08-04 | Internatl Business Mach Corp <Ibm> | データ通信方法及びシステム連結装置 |
CA2135681C (en) * | 1993-12-30 | 2000-01-18 | Srinivas V. Makam | System and method for directly accessing long-term memory devices |
US5402416A (en) * | 1994-01-05 | 1995-03-28 | International Business Machines Corporation | Method and system for buffer occupancy reduction in packet switch network |
US6145071A (en) * | 1994-03-03 | 2000-11-07 | The George Washington University | Multi-layer multi-processor information conveyor with periodic transferring of processors' states for on-the-fly transformation of continuous information flows and operating method therefor |
JPH07262154A (ja) * | 1994-03-25 | 1995-10-13 | Fujitsu Ltd | プロセッサ間通信制御方式 |
US5519863A (en) * | 1994-09-21 | 1996-05-21 | International Business Machines Corporation | Notification forwarding discriminator |
US5613163A (en) * | 1994-11-18 | 1997-03-18 | International Business Machines Corporation | Method and system for predefined suspension and resumption control over I/O programs |
US5553293A (en) * | 1994-12-09 | 1996-09-03 | International Business Machines Corporation | Interprocessor interrupt processing system |
US5758084A (en) * | 1995-02-27 | 1998-05-26 | Hewlett-Packard Company | Apparatus for parallel client/server communication having data structures which stored values indicative of connection state and advancing the connection state of established connections |
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 |
US6304574B1 (en) | 1995-06-07 | 2001-10-16 | 3Com Corporation | Distributed processing of high level protocols, in a network access server |
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 |
KR0186166B1 (ko) * | 1995-11-03 | 1999-04-15 | 구자홍 | 씨디-롬 드라이버의 에러 검출장치 |
US5796832A (en) | 1995-11-13 | 1998-08-18 | Transaction Technology, Inc. | Wireless transaction and information system |
US5748968A (en) * | 1996-01-05 | 1998-05-05 | Cirrus Logic, Inc. | Requesting device capable of canceling its memory access requests upon detecting other specific requesting devices simultaneously asserting access requests |
US5848068A (en) * | 1996-03-07 | 1998-12-08 | Lsi Logic Corporation | ATM communication system interconnect/termination unit |
US6535512B1 (en) | 1996-03-07 | 2003-03-18 | Lsi Logic Corporation | ATM communication system interconnect/termination unit |
US5982749A (en) * | 1996-03-07 | 1999-11-09 | Lsi Logic Corporation | ATM communication system interconnect/termination unit |
US5841772A (en) * | 1996-03-07 | 1998-11-24 | Lsi Logic Corporation | ATM communication system interconnect/termination unit |
US5920561A (en) * | 1996-03-07 | 1999-07-06 | Lsi Logic Corporation | ATM communication system interconnect/termination unit |
US6373846B1 (en) | 1996-03-07 | 2002-04-16 | Lsi Logic Corporation | Single chip networking device with enhanced memory access co-processor |
US5758161A (en) * | 1996-05-24 | 1998-05-26 | International Business Machines Corporation | Testing method for checking the completion of asynchronous distributed collective operations |
US5862340A (en) * | 1996-05-24 | 1999-01-19 | International Business Machines Corporation | Method operating in each node of a computer system providing and utilizing special records for collective communication commands to increase work efficiency at each node |
US5748959A (en) * | 1996-05-24 | 1998-05-05 | International Business Machines Corporation | Method of conducting asynchronous distributed collective operations |
US6320865B1 (en) | 1996-06-10 | 2001-11-20 | University Of Maryland At College Park | Method and apparatus for implementing time-based data flow control and network implementation thereof |
US6072781A (en) | 1996-10-22 | 2000-06-06 | International Business Machines Corporation | Multi-tasking adapter for parallel network applications |
US5696768A (en) * | 1996-12-10 | 1997-12-09 | Intel Corporation | Method and apparatus for data storage array tracking |
US5961659A (en) * | 1997-06-30 | 1999-10-05 | International Business Machines Corporation | Independent simultaneous queueing of message descriptors |
US5951706A (en) * | 1997-06-30 | 1999-09-14 | International Business Machines Corporation | Method of independent simultaneous queueing of message descriptors |
US6014729A (en) * | 1997-09-29 | 2000-01-11 | Firstpass, Inc. | Shared memory arbitration apparatus and method |
US5991856A (en) * | 1997-09-30 | 1999-11-23 | Network Associates, Inc. | System and method for computer operating system protection |
FR2769728B1 (fr) * | 1997-10-09 | 2000-01-28 | St Microelectronics Sa | Procede et systeme perfectionnes de controle d'acces partages a une memoire vive |
FR2769727B1 (fr) * | 1997-10-09 | 2000-01-28 | St Microelectronics Sa | Procede et systeme de controle d'acces partages a une memoire vive |
US6532239B1 (en) * | 1997-12-27 | 2003-03-11 | Hyundai Electronics Industries Co., Ltd. | Transmission/reception concurrent matching apparatus for TDM channels and method thereof |
US6487196B1 (en) | 1998-05-29 | 2002-11-26 | 3Com Corporation | System and method for simulating telephone use in a network telephone system |
US6259691B1 (en) | 1998-07-24 | 2001-07-10 | 3Com Corporation | System and method for efficiently transporting dual-tone multi-frequency/multiple frequency (DTMF/MF) tones in a telephone connection on a network-based telephone system |
US6345310B1 (en) | 1998-07-28 | 2002-02-05 | International Business Machines Corporation | Architecture for a multiple port adapter having a single media access control (MAC) with a single I/O port |
US6185631B1 (en) | 1998-10-14 | 2001-02-06 | International Business Machines Corporation | Program for transferring execution of certain channel functions to a control unit and having means for combining certain commands and data packets in one sequence |
US6408347B1 (en) | 1998-12-10 | 2002-06-18 | Cisco Technology, Inc. | Integrated multi-function adapters using standard interfaces through single a access point |
AU4492100A (en) * | 1999-04-22 | 2000-11-10 | Broadcom Corporation | Gigabit ethernet with timing offsets between the twisted pairs |
US6530057B1 (en) * | 1999-05-27 | 2003-03-04 | 3Com Corporation | High speed generation and checking of cyclic redundancy check values |
US6463070B1 (en) * | 1999-08-27 | 2002-10-08 | Tachyon, Inc. | System and method for clock correlated data flow in a multi-processor communication system |
US6609165B1 (en) | 1999-09-27 | 2003-08-19 | International Business Machines Corporation | Method and apparatus for using fibre channel extended link service commands in a point-to-point configuration |
US6519637B1 (en) | 1999-09-23 | 2003-02-11 | International Business Machines Corporation | Method and apparatus for managing a memory shortage situation in a data processing system |
US6499066B1 (en) | 1999-09-27 | 2002-12-24 | International Business Machines Corporation | Method and apparatus for using fibre channel test extended link service commands for interprocess communication |
US6845104B2 (en) * | 2000-06-14 | 2005-01-18 | Ipr Licensing, Inc. | Receiver for time division multiplex system without explicit time slot assignment |
US6463074B1 (en) | 2000-06-14 | 2002-10-08 | Tantivy Communications, Inc. | Receiver for time division multiplex system without explicit time slot assignment |
US6691268B1 (en) * | 2000-06-30 | 2004-02-10 | Oak Technology, Inc. | Method and apparatus for swapping state data with scan cells |
GB2365286A (en) * | 2000-07-27 | 2002-02-13 | Ubinetics Ltd | A method of data communications using an auxiliary channel |
US6990528B1 (en) | 2000-10-19 | 2006-01-24 | International Business Machines Corporation | System area network of end-to-end context via reliable datagram domains |
US7099955B1 (en) * | 2000-10-19 | 2006-08-29 | International Business Machines Corporation | End node partitioning using LMC for a system area network |
US7113995B1 (en) | 2000-10-19 | 2006-09-26 | International Business Machines Corporation | Method and apparatus for reporting unauthorized attempts to access nodes in a network computing system |
US7636772B1 (en) | 2000-10-19 | 2009-12-22 | International Business Machines Corporation | Method and apparatus for dynamic retention of system area network management information in non-volatile store |
US6941350B1 (en) | 2000-10-19 | 2005-09-06 | International Business Machines Corporation | Method and apparatus for reliably choosing a master network manager during initialization of a network computing system |
US20020073257A1 (en) * | 2000-12-07 | 2002-06-13 | Ibm Corporation | Transferring foreign protocols across a system area network |
US7539747B2 (en) * | 2001-03-14 | 2009-05-26 | Microsoft Corporation | Schema-based context service |
US20020133535A1 (en) * | 2001-03-14 | 2002-09-19 | Microsoft Corporation | Identity-centric data access |
US6823369B2 (en) * | 2001-03-14 | 2004-11-23 | Microsoft Corporation | Using state information in requests that are transmitted in a distributed network environment |
US7024662B2 (en) | 2001-03-14 | 2006-04-04 | Microsoft Corporation | Executing dynamically assigned functions while providing services |
US7302634B2 (en) | 2001-03-14 | 2007-11-27 | Microsoft Corporation | Schema-based services for identity-based data access |
EP1396772B1 (de) * | 2001-05-31 | 2008-03-05 | Omron Corporation | Sicherheitseinheit, steuerungsverkettungsverfahren, steuerungssystemsteuerverfahren und steuerungssystemüberwachungsverfahren |
WO2002097542A1 (en) * | 2001-05-31 | 2002-12-05 | Omron Corporation | Slave, network system, slave processing method, and apparatus information collection method |
CN1222138C (zh) * | 2001-05-31 | 2005-10-05 | 欧姆龙株式会社 | 安全网络系统、安全从动设备、安全控制器、通信方法、安全网络系统中的信息收集方法及监视方法 |
JP3912378B2 (ja) * | 2001-06-22 | 2007-05-09 | オムロン株式会社 | 安全ネットワークシステム及び安全スレーブ並びに安全コントローラ |
CN1518816B (zh) * | 2001-06-22 | 2010-04-28 | 欧姆龙株式会社 | 安全网络系统及安全从动装置 |
US7050860B2 (en) * | 2001-06-22 | 2006-05-23 | Omron Corporation | Safety network system, safety slave, and communication method |
GB2381170A (en) * | 2001-10-19 | 2003-04-23 | Ipwireless Inc | Method and arrangement for asynchronous processing of CCTrCH data |
US20030172178A1 (en) * | 2002-03-08 | 2003-09-11 | Eduard Lecha | Method to avoid high-level data link control (HDLC) frame abortion |
US7246178B2 (en) * | 2002-05-07 | 2007-07-17 | Nortel Networks Limited | Methods and systems for changing a topology of a network |
US9886309B2 (en) | 2002-06-28 | 2018-02-06 | Microsoft Technology Licensing, Llc | Identity-based distributed computing for device resources |
JP3988559B2 (ja) * | 2002-07-18 | 2007-10-10 | オムロン株式会社 | 通信システム、通信装置及び通信制御方法 |
US7213084B2 (en) * | 2003-10-10 | 2007-05-01 | International Business Machines Corporation | System and method for allocating memory allocation bandwidth by assigning fixed priority of access to DMA machines and programmable priority to processing unit |
US20050177642A1 (en) * | 2004-01-27 | 2005-08-11 | Tetsuro Motoyama | Method and system for managing protocols used to obtain status information from a network device |
US9401822B2 (en) * | 2005-06-09 | 2016-07-26 | Whirlpool Corporation | Software architecture system and method for operating an appliance exposing key press functionality to a network |
US7813831B2 (en) * | 2005-06-09 | 2010-10-12 | Whirlpool Corporation | Software architecture system and method for operating an appliance in multiple operating modes |
US7729332B2 (en) * | 2005-07-19 | 2010-06-01 | Cisco Technology, Inc. | Technique for transferring data from a time division multiplexing network onto a packet network |
JP4641900B2 (ja) * | 2005-08-24 | 2011-03-02 | ルネサスエレクトロニクス株式会社 | 半導体装置及びテスト方法 |
US7801121B1 (en) * | 2006-04-20 | 2010-09-21 | Altera Corporation | Serial communications systems with cyclic redundancy checking |
US7613840B2 (en) * | 2006-08-17 | 2009-11-03 | General Electric Company | Methods and apparatus for dynamic data acquisition configuration parameters |
EP2207308B1 (de) * | 2007-11-02 | 2018-03-14 | Cypress Semiconductor Corporation | Signalprozessoreinheit und kommunikationseinrichtung |
JP4478731B2 (ja) * | 2008-02-20 | 2010-06-09 | 富士通テン株式会社 | 通信装置及びゲートウェイ装置 |
US20090309896A1 (en) | 2008-05-30 | 2009-12-17 | Advanced Micro Devices, Inc. | Multi Instance Unified Shader Engine Filtering System With Level One and Level Two Cache |
US8502832B2 (en) * | 2008-05-30 | 2013-08-06 | Advanced Micro Devices, Inc. | Floating point texture filtering using unsigned linear interpolators and block normalizations |
WO2009145916A1 (en) * | 2008-05-30 | 2009-12-03 | Advanced Micro Devices, Inc. | Redundancy methods and apparatus for shader column repair |
JP5347772B2 (ja) * | 2009-07-01 | 2013-11-20 | 富士通株式会社 | 転送速度設定方法、データ転送装置及び情報処理システム |
US9262270B2 (en) * | 2012-12-28 | 2016-02-16 | Intel Corporation | Live error recovery |
FR3011420A1 (fr) * | 2013-09-30 | 2015-04-03 | Orange | Gestion amelioree des connexions reseau |
US9325449B2 (en) | 2013-12-06 | 2016-04-26 | Intel Corporation | Lane error detection and lane removal mechanism to reduce the probability of data corruption |
US9397792B2 (en) | 2013-12-06 | 2016-07-19 | Intel Corporation | Efficient link layer retry protocol utilizing implicit acknowledgements |
US9628382B2 (en) | 2014-02-05 | 2017-04-18 | Intel Corporation | Reliable transport of ethernet packet data with wire-speed and packet data rate match |
US10426424B2 (en) | 2017-11-21 | 2019-10-01 | General Electric Company | System and method for generating and performing imaging protocol simulations |
CN109643391B (zh) * | 2018-01-15 | 2023-06-13 | 深圳鲲云信息科技有限公司 | 流水处理接口结构、电子器件及电子装置 |
US11416336B2 (en) * | 2019-10-15 | 2022-08-16 | International Business Machines Corporation | Managing parity data associated with configuration register data |
EP4066008B1 (de) * | 2019-11-27 | 2024-01-03 | Google LLC | Detektion einer referenzrahmenänderung in einem radarsystem basierend auf intelligenten vorrichtungen |
CN111343106B (zh) * | 2020-02-25 | 2023-03-24 | 母国标 | 多路中频数字信号处理装置和方法 |
US20220110117A1 (en) * | 2020-10-05 | 2022-04-07 | Qualcomm Incorporated | Techniques for slot aggregation in full duplex wireless communications systems |
DE202023106573U1 (de) | 2023-11-09 | 2024-01-26 | Oculeus Gmbh | Kommunikations-Netzwerk mit Datenkanal |
Family Cites Families (13)
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 |
DE3070386D1 (en) * | 1980-09-26 | 1985-05-02 | Ibm | Communication line adapter for a communication controller |
DE3175351D1 (en) * | 1981-10-28 | 1986-10-23 | Ibm | Scanning device for communication lines, adapted for a communication controller |
US4651316A (en) * | 1983-07-11 | 1987-03-17 | At&T Bell Laboratories | Data link extension for data communication networks |
FR2587159B1 (fr) * | 1985-09-12 | 1987-11-13 | Coatanea Pierre | Equipements de multiplexage et demultiplexage pour liaison numerique synchrone a debit et rapiditite de modulation variables |
US5048012A (en) * | 1987-04-03 | 1991-09-10 | Advanced Micro Devices, Inc. | Data link controller with flexible multiplexer |
EP0323222A3 (de) * | 1987-12-25 | 1990-10-17 | Nec Corporation | Sende- und Empfangssystem eines HDLC-Datenrahmens über einen Zeitmultiplexübertragungsweg |
US5029163A (en) * | 1988-03-18 | 1991-07-02 | At&T Bell Laboratories | Synchronous protocol data formatter |
EP0346555B1 (de) * | 1988-06-16 | 1993-08-25 | International Business Machines Corporation | Parallel-Verarbeitungsverfahren und Vorrichtung zum Empfang und Senden von HDLC/SDLC-Bitströmen |
US5012469A (en) * | 1988-07-29 | 1991-04-30 | Karamvir Sardana | Adaptive hybrid multiple access protocols |
US4965796A (en) * | 1989-09-29 | 1990-10-23 | At&T Bell Laboratories | Microprocessor-based substrate multiplexer/demultiplexer |
US5062105A (en) * | 1990-01-02 | 1991-10-29 | At&T Bell Laboratories | Programmable multiplexing techniques for mapping a capacity domain into a time domain within a frame |
-
1990
- 1990-03-15 US US07/495,232 patent/US5218680A/en not_active Expired - Fee Related
-
1991
- 1991-01-24 CA CA002034911A patent/CA2034911C/en not_active Expired - Fee Related
- 1991-02-25 EP EP91301481A patent/EP0449420B1/de not_active Expired - Lifetime
- 1991-02-25 DE DE69132648T patent/DE69132648T2/de not_active Expired - Lifetime
- 1991-03-05 JP JP6242091A patent/JPH0720147B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US5218680A (en) | 1993-06-08 |
JPH04220844A (ja) | 1992-08-11 |
EP0449420B1 (de) | 2001-07-04 |
CA2034911C (en) | 1994-03-29 |
EP0449420A2 (de) | 1991-10-02 |
DE69132648D1 (de) | 2001-08-09 |
EP0449420A3 (de) | 1995-02-15 |
JPH0720147B2 (ja) | 1995-03-06 |
CA2034911A1 (en) | 1991-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69132648T2 (de) | Integrierte Daten-Übertragungsstrecken-Steuerung mit autonomen logischen Elementen | |
DE69123769T2 (de) | Integrierte Datenübertragungsstreckensteuerung mit dynamischer Hyperchannelzuteilung | |
DE69130714T2 (de) | Integrierte Datenübertragungsstreckensteuerung mit synchroner Leitungsschnittstelle und asynchroner Host-Prozessor-Schnittstelle | |
DE69131584T2 (de) | Burst-Zeitmultiplex-Schnittstelle für eine integrierte Daten-Übertragungsstreckensteuerung | |
DE69329684T2 (de) | Vorrichtung mit hauptrechnerindikationssignalen | |
DE69505871T2 (de) | Taktfehlererkennungsschaltung | |
US5838904A (en) | Random number generating apparatus for an interface unit of a carrier sense with multiple access and collision detect (CSMA/CD) ethernet data network | |
DE68927816T2 (de) | Übertragungsprozessor für ein paketvermitteltes netzwerk | |
DE3788319T2 (de) | Multiprozessor-Unterbrechungsumleitungsmechanismus. | |
EP1388238B1 (de) | System und verfahren zur parallelen übertragung von echtzeitkritischen und nicht echtzeitkritischen daten über schaltbare datennetze, insbesondere ethernet | |
US5802287A (en) | Single chip universal protocol multi-function ATM network interface | |
US5640399A (en) | Single chip network router | |
DE69022300T2 (de) | Verfahren und Vorrichtung zur Wiederanordnung eines maschenverknüpften lokalen Netzes hoher Geschwindigkeit. | |
EP1941674B1 (de) | Teilnehmer und kommunikationscontroller eines kommunikationssystems und verfahren zur realisierung einer gateway-funktionalität in einem teilnehmer eines kommunikationssystems | |
DE69323290T2 (de) | Netzwerkanpassungseinrichtung mit Hauptrechnerindikationoptimierung | |
DE112020002754T5 (de) | System und verfahren zur erleichterung eines effizienten nachrichtenabgleichs in einer netzwerkschnittstellensteuerung (nic) | |
DE69334165T2 (de) | Netzwerkanpassungseinrichtung mit hauptrechnerunterbrechung und indikationsverwaltung | |
DE69232613T2 (de) | Hochgeschwindigkeitschnittstelle für eine Duplex-Datenverbindung | |
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 | |
DE3856486T2 (de) | Einzelpaketmeldung in einer Datenverbindungssteuereinrichtung | |
DE102005060085B4 (de) | Verfahren, Kommunikationsnetzwerk und Steuereinheit zum zyklischen Übertragen von Daten | |
DE69326935T2 (de) | Verfahren und Vorrichtung zur Übertragung von einem Datenstrom mit hoher Bitfolgefrequenz über unabhängige digitale Kommunikationskanäle | |
EP1941377A2 (de) | Teilnehmerschnittstelle zwischen einem mikrocontroller und einem flexray-kommunikationsbaustein, flexray-teilnehmer und verfahren zur übertragung von botschaften über eine solche schnittstelle | |
WO2007039620A1 (de) | Teilnehmerschnittstelle zwischen einem flexray-kommunikationsbaustein und einem flexray-teilnehmer und verfahren zur übertragung von botschaften über eine solche schnittstelle | |
DE60305560T2 (de) | Eingebettetes System für die Überlastregelung von Rundfunkverkehr in einem Kommunikationsnetzwerk |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8330 | Complete renunciation |