DE3788539T2 - Gegenseitige Verriegelung zwischen mehreren zentralen Verarbeitungseinheiten. - Google Patents
Gegenseitige Verriegelung zwischen mehreren zentralen Verarbeitungseinheiten.Info
- Publication number
- DE3788539T2 DE3788539T2 DE3788539T DE3788539T DE3788539T2 DE 3788539 T2 DE3788539 T2 DE 3788539T2 DE 3788539 T DE3788539 T DE 3788539T DE 3788539 T DE3788539 T DE 3788539T DE 3788539 T2 DE3788539 T2 DE 3788539T2
- Authority
- DE
- Germany
- Prior art keywords
- bus
- lac
- data
- dma
- adapter
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000012545 processing Methods 0.000 title claims description 25
- 230000015654 memory Effects 0.000 claims description 95
- 230000006870 function Effects 0.000 claims description 50
- 230000005540 biological transmission Effects 0.000 claims description 9
- 230000002093 peripheral effect Effects 0.000 claims description 2
- 230000008569 process Effects 0.000 description 147
- 238000000034 method Methods 0.000 description 145
- 238000012546 transfer Methods 0.000 description 54
- 238000004891 communication Methods 0.000 description 52
- 239000000872 buffer Substances 0.000 description 37
- 238000010586 diagram Methods 0.000 description 18
- 101100172132 Mus musculus Eif3a gene Proteins 0.000 description 6
- 238000012360 testing method Methods 0.000 description 6
- 230000002452 interceptive effect Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000035755 proliferation Effects 0.000 description 2
- 241001415939 Corvus Species 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- XSKZXGDFSCCXQX-UHFFFAOYSA-N thiencarbazone-methyl Chemical compound COC(=O)C1=CSC(C)=C1S(=O)(=O)NC(=O)N1C(=O)N(C)C(OC)=N1 XSKZXGDFSCCXQX-UHFFFAOYSA-N 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- WGTRJVCFDUCKCM-FMKGYKFTSA-N viridiflorene Chemical compound C1C[C@H]2C(C)(C)[C@H]2[C@@H]2[C@H](C)CCC2=C1C WGTRJVCFDUCKCM-FMKGYKFTSA-N 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L5/00—Arrangements affording multiple use of the transmission path
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Small-Scale Networks (AREA)
- Computer And Data Communications (AREA)
- Multi Processors (AREA)
- Logic Circuits (AREA)
- Hardware Redundancy (AREA)
Description
- Die folgenden Patentanmeldungen, die dem gleichen Anmelder gehören, wie die vorliegende Anmeldung, sind gleichzeitig mit der vorliegenden Anmeldung eingereicht worden und betreffen verwandte Gegenstände. Bestimmte Abschnitte des Systems und des Verfahrens, die hierin beschrieben werden, sind nicht unsere Erfindung, aber sie sind Erfindungen der unten genannten Erfinder; wie sie durch die Ansprüche in den folgenden Patentanmeldungen definiert sind: Titel Erfinder No. A Controller John W. Conway EP-A-0255096 for Controlling Robert J.Farrell Multiple LAN Allen C. Hirtle Types Leonard E.Niessen Lan Controller Edward Beauchemin EP-A-0255090 Proprietary Bus
- Diese Erfindung bezieht sich allgemein auf eine Vorrichtung zur Datenkommunikation und insbesondere auf lokale Netzwerke (LAN) von Computern, die miteinander unabhängig von der LAN-Architektur kommunizieren können.
- Bei vielen Anwendungen, sowohl wissenschaftlichen als auch wirtschaftlichen, hat die anwachsende Benutzung von digitalen Computern, die Daten verarbeiten, das Volumen von Daten zu solch einem Ausmaß erhöht, daß oft eine Vielzahl von Computern erforderlich ist, von denen jeder einer unterschiedlichen Aufgabe zugewiesen ist, wobei ein Bedarf nach Kommunikation zwischen den Computern besteht, um ihre jeweiligen Aufgaben auszuführen. Historisch sind Computer verwendet werden. um Transaktionen einer Form oder einer anderen zu verarbeiten. Die meisten Computer verarbeiteten während den frühen 1970er Jahren Transaktionen in Stapeln. In den früheren Tagen der Computerverarbeitung sprachen die Leute ruhig über Stapelverarbeitung als die Verarbeitung von Gruppen von Lochkarten. Jede Karte war eine Transaktion; der Computer liest den Stapel von Karten und verarbeitet Information in Stapeln. Während den 1960er Jahren begann man interaktive Datenverarbeitung zu diskutieren. Bei interaktiver Datenverarbeitung können Programme strukturiert werden, so daß Transaktionen individuell verarbeitet werden statt in Stapeln. Interaktives Verarbeiten stammt im allgemeinen von schreibmaschinenartigen Dateneingabevorrichtungen, die Terminals genannt werden. Stapelterminal, die Karten, Bänder oder Platten lesen und dann die Daten in Stapeln zu einem Computer senden, werden oft als Auftragsferneingabe-Terminal oder Stapelfernverarbeitung- Terminals bezeichnet. Sowohl Stapel- als auch interaktives Verarbeiten kann in Netzwerken ausgeführt werden, die zentralisiert oder verteilt sind. Ein zentralisiertes Netzwerk hängt vollständig von einer zentralen Verarbeitungseinrichtung mit einem oder mehreren Computern ab; während ein verteiltes Netzwerk Aufgaben zwischen einer Verarbeitungseinrichtung und einer anderen aufteilt. Jede intelligente Einheit in dem Netzwerk wird ein Knoten genannt. Einige Knoten sind Computer, andere sind Terminals und wieder andere können Kommunikationsvorrichtungen der einen oder anderen Form sein. Netzwerke können in einer Anzahl von Arten organisiert sein und es ist möglich, daß ein einzelnes Kommunikationssystem Kommunikation für zwei oder mehr in Konkurrenzbetrieb arbeitende Computernetzwerke bereitstellt. Es gibt viele verschiedene Typen von Netzwerkkonfigurationen. Einige der gebräuchlicheren sind die folgenden:
- Ein Punkt-zu-Punkt-Netzwerk ist der einfachste Typ von Netzwerk und besteht aus einem Computer; einer Kommunikationsleitung und einem Terminal oder einem anderen Computer an dem anderen Ende der Leitung.
- Das Vielpunkt-Netzwerk ist eine Ausdehnung des Punkt-zu-Punkt- Systemes und verwendet vielfache Punkt-zu-Punkt-Verbindungen, um die Stationen miteinander zu verbinden.
- Ein Sternnetzwerk ist ein zentralisiertes Netzwerk, bei dem entfernte Stationen über getrennte Punkt-zu-Punkt-Verbindungen in einen einzelnen Ort einspeisen, an dem die Hauptverarbeitung ausgeführt wird.
- Ein Ringnetzwerk verbindet Netzwerkknoten in einer geschlossenen Schleife, wobei jeder Knoten mit dem rechten und linken benachbarten verbunden ist.
- Das Busnetzwerk ist logisch mit Verbindungselementen wie z. B. Armen, Zweigen und so weiter konfiguriert, die sich von einer zentralen Haupttrasse wegerstrecken. Wenn ein Signal den Bus durchquert, hört jede Verbindung auf das Signal, das eine Adreßbestimmung trägt. Typische Bussysteme sind Ethernet und praktisch alle Breitbandsysteme.
- In einem hierarchischen Netzwerk speisen Computer in die Computer ein, die wiederum in andere Computer einspeisen. Die Computer; die als entfernte Vorrichtungen verwendet werden, können unabhängige Verarbeitungsleistungsfähigkeiten haben und können Betriebsmittel auf höheren oder niedrigeren Niveaus anziehen, wenn Information oder andere Betriebsmittel erforderlich sind.
- Diese Grundtypen von Netzwerken können entweder global oder weiträumige Netzwerke (WAN) sein, die große Distanzen abdecken, oder sie können lokale Netzwerke (LAN) sein, die relativ kurze Distanzen abdecken, wie z. B. Computer in einem oder zwei Gebäuden.
- Obwohl übertragene digitale Daten leicht über ganze Kontinente in Millisekunden springen können, brauchen sie manchmal mehr als das, um die letzte Meile oder so innerhalb dem Gebäude zurückzulegen. Demgemäß wird eine Anzahl von Lösungen für diesen Flaschenhals in der lokalen Verteilung von Daten in der Form von lokalen Netzwerken (LAN) angeboten, die Distanzen von 0,1 bis 10 Kilometern überdecken, und Daten bei Raten von 100 Kilobit pro Sekunde bis zu 10 Megabit pro Sekunde oder mehr übertragen können. Jeder Terminalknoten auf dem lokalen Netzwerk (LAN) kann mit jedem anderen Knoten kommunizieren und das Netzwerk erfordert keinen zentralen Knoten oder Prozessor. Vor der Einführung dieser Netzwerke mußten Büroarbeiter; die Ausrüstung von verschiedenen Verkäufern betrieben, versuchen, ein System zusammenzubinden, in dem es keine gemeinsame Schnittstelle zwischen den verschiedenen Terminals gab. Am bekanntesten unter den kürzlich eingeführten LAN ist Ethernet von Xerox ein Basisbandsystem. (Basisbandsysteme prägen die Datensignale direkt auf das Medium, wohingegen Breitbandsysteme einen Träger mit sehr hoher oder ultrahoher Hochfrequenz mit dem Datensignal modulieren, bevor sie es auf das Kommunikationsmedium prägen.) Ethernet überträgt Daten bei 10 Mbit/s bis zu einer Distanz von 2,5 Kilometern; es kann nicht Sprach- oder Videoanwendungen handhaben.
- WangNet von Wang Laboratories auf der anderen Seite ist ein Beispiel einer Breitbandtopologie, die alle drei Anwendungen - Sprache, Daten und Video - bei Geschwindigkeiten äquivalent denen von Ethernet unterbringen kann. WangNet hat eine Bandbreite, die den 10 bis 350 Megahertz-Bereich überspannt. Es verwendet auch eine Verzweigungsbaum- Topologie, bei der mehr Knoten auf dem Kabel von längeren Distanzen verbunden werden können.
- Corvus Systems Inc. aus San Jose, Kalifornien, hat OMNINET eingeführt, was eine Bustopologie ist, die auf Drähten mit verdrillten Aderpaaren basiert und auf die Verbindung von Netzwerken für Personal-Computer abzielt. OMNINET überträgt Daten bei einem Mbit/s und kann bis zu 63 Apple II aufnehmen. Die Computer können sich gemeinsam 1 bis 6 Floppy-Disk-Speicher teilen, was den Speicher von 5 auf 10 Megabytes ausdehnt.
- Es gibt andere LAN-Alternativen, wie z. B. HYPER Channel von Network Systems Corp.; NET/ONE; ARC; und andere.
- Da diese Basisband- und Breitbandsysteme auf unterschiedlichen firmeneigenen Konfigurationen basieren, wurden Standards für die Schnittstellen der Ausrüstung benötigt. Um das Anwachsen von Schnittstellen zu vermeiden, setzte das IEEE Standard Kommittee ein Unterkommittee ein, um Spezifikationen für die Schnittstelleneinheit zwischen den Terminals und dem Kabel sowie für die Logikprotokolle zum Zugriff auf Daten auf dem Kabel und die Datenkodierschemen einzuführen. Eine andere Organisation, die International Standards Organization (ISO), berief ebenso ein Kommittee, um die Kompatibilität von Netzwerkausrüstung zu studieren, was schließlich zu der Veröffentlichung des Referenzmodells für das offene Kommunikationssystem (Open System Interconnection; OSI) führte. Im Kontex der Kompatibilität bezieht sich offenes System auf ein Netzwerkmodell, das offen für die Verwendung in Ausrüstung von miteinander konkurrierenden Herstellern ist. Das OSI-Modell teilt Netzwerkproblematiken in die Funktionen von Schichten auf. Es gibt 7 Schichten in dem OSI-Modell, die von Schicht 1 bis 7 beziffert sind.
- Schicht 1 ist die physikalische Schicht und definiert die elektrischen und mechanischen Merkmale des Netzwerkes, wie z. B. die verwendeten Medien, die Modulationstechniken, Frequenzen, bei denen das Netzwerk arbeitet, und die angewandten Spannungen.
- Schicht 2 ist die Datenverbindungsschicht und definiert die Zugriffsstrategie zum gemeinsamen Benutzen des physikalischen Mediums, das die verschiedenen Knoten verbindet. Gemeinsame LAN-Techniken umfassen Vielfachzugriff mit Leitungsüberwachung und Kollisionserfassung (CSMA/- CD) und Token-Passing-Schemen. Zusätzlich sind Techniken zum Plazieren von Netzwerk spezifischer Information und Datenpaketen, wie z. B. die Knotenadresse, Funktionen von Schicht 2.
- Schicht 3. Nicht alle LAN erfordern Schicht 3. Netzwerke jedoch, die Leitmechanismen zwischen Knoten benötigen, die auf miteinander verbundenen LAN angeordnet sind, müssen Schicht 3 haben. Auf einem einzelnen LAN werden Sendedaten von jedem Knoten gesehen und dementsprechend sammelt eine entsprechende Verbindung diejenigen Pakete, die sauber für sie adressiert sind, ohne Bedarf nach Führung.
- Schicht 4 ist die Transportschicht, die mit dem fundamentalen Niveau der Verfügbarkeit und Datenübertragung arbeitet. Diese Schicht ist mit Flußsteuerung, Fehlerhandhabung und Problemen beschäftigt, die bei der Übertragung und dem Empfang von Paketen auftreten. (Ein Paket ist aus vom Benutzer stammenden Daten plus irgendeiner Information zusammengesetzt, die das Netzwerk benötigt, um Benutzerdaten von einem Netzwerkknoten zu einem anderen zu transportieren).
- Schicht 5 ist die Kommunikationssteuerungsschicht und ist von besonderer Bedeutung für LAN. Wenn eine Verbindung zwischen zwei Vorrichtungen gemacht wird, ist eine Sitzung aufgebaut. Demgemäß stellt die Kommunikationssteuerungsschicht den Aufbau und den Abschluß von Datenströmen von zwei oder mehr LAN-Verbindungen oder -Knoten auf.
- Schicht 6 ist eine Präsentationsschicht und ist die Schicht, wo Dienste wie z. B. Protokollumwandlung, Datenauspacken, Übersetzung, Dechiffrierung, Zeichensatzänderungen oder Umwandlungen und die Ausdehnung der Graphikbefehle stattfinden.
- Schicht 7 schließlich ist die Anwendungsschicht. Alle Schichten von 1 bis 6 sind entworfen, um diese Schicht zu unterstützen. Elektronische Nachrichtensysteme, Terminal-Emulationsfähigkeiten und Dateienübertragungsprogramme sind Beispiele von Software, die auf der Schicht 7 arbeiten kann.
- Bei solch einem Anwachsen von Ausrüstung, Netzwerken und Standards wird es nötig, ein Steuersystem für einen lokalen Bereich zu haben, das unabhängig von dem Lokalnetzwerk-LAN-Verbindungen der physikalischen Schicht, der Software bezüglich der Transportschicht, der Netzwerkschicht und der logischen Verbindungssteuerungsschicht unverändert, transparent und isoliert von beiden Seiten sein würde; d. h. der Busseite der Steuereinrichtung, die zu dem Computersystem LEVEL 6 gehört (ein kommerziell verfügbares Computersystem von Honeywell Information Systems Inc.), und von der Kommunikationsadapterseite der Steuereinrichtung, die zu verschiedenen Typen von LAN gehört, wie z. B. Ethernet, Token-Ring oder Token-Bus.
- Insbesondere war es nötig, eine Lokalnetzwerk-Steuereinrichtung (LAN) zu entwerfen, die Schnittstellensoftware bereitstellen kann, um die Transportschicht, die Netzwerkschicht und die Software der logischen Verbindungssteuerungsschicht zu unterstützen, so daß es nicht nötig sein wird, diese Software zu ändern, wenn ein neuer Typ von LAN-Verbindungen zu ihr gemacht wird. Außerdem sollte der Entwurf so sein, daß es die Hardware-Schnittstelle der Steuereinrichtung mit der Hardware des Prozessors von LEVEL 6 transparent für die Schichtsoftware macht. Es war daher nötig, die Software der Kommunikationsschicht von beiden Seiten der Hardware zu isolieren, um demgemäß verschiedenen Typen von Adaptern zu erlauben, um CSMA und Ethernet, oder Token-Ring oder Token-Bus LAN-Architekturen zu handhaben; und außerdem daß er zu einem zukünftigen Datum verwendet werden könnte, um einen PBX- Adapter zu unterstützen.
- Ein unabhängig betreibbares Lokalnetzwerk (LAN) ist z. B. aus der Europäischen Patentanmeldung EP 133.117 bekannt. Es bezieht sich auf solch ein Datenverarbeitungssystem, in dem bestimmte Funktionen des zentralen Prozessors zu dem lokalen Netzwerk (LAN) entlastet werden, das mit dem zentralen Prozessor verbunden ist. Das Datenverarbeitungssystem beinhaltet Hauptprozessoren, die durch Netzwerkschnittstelleneinheiten mit einem Systembus (Koaxialkabel) verbunden sind. Demgemäß ist ein lokales Netzwerk gebildet, das in der Lage ist, Prozeßoperationen auf Information unabhängig von den Hauptprozessoren durchzuführen. Als ein Ergebnis werden Unterbrechungen der Hauptprozessoren für Datenübertragungsoperationen signifikant reduziert, was dem System erlaubt, eine größere Anzahl von Benutzerterminals und anderen Peripherieeinrichtungen zu unterstützen.
- Wenn jedoch der Bus vielfache zentrale Prozessoren hat, die mit ihm verbunden sind, können Probleme auftreten, wann immer zwei zentrale Prozessoren gleichzeitig Eingabe/Ausgabe-Ladebefehle (IOLD) ausgeben. Solch ein Befehl hat typischerweise einen Funktionscode (FC = 09/0D). Wenn solche Befehle gleichzeitig ausgegeben werden, hat der zweite Abschnitt 0D keine identifizierte Quelle und der zentrale Prozessor wird nicht bedient werden.
- Insbesondere, wenn zwei CPU IOLD-Befehle gleichzeitig ausgegeben haben, könnten sie sich überlappen, weil die Steuereinrichtung nicht wissen wird, wie sie die 09- und 0D-Funktion-Codedaten paaren soll, die von jeder der beiden CPU gesandt wurden. Demgemäß war; was benötigt war; ein Mechanismus, der diese Bedingung erkennen und korrigieren kann, damit vielfache CPU bedient werden können.
- Es ist daher das Hauptziel der Erfindung, eine neue Schaltung für Vielfach-CPU- und Bus-Steuereinrichtungen bereitzustellen, die darauf zielt, vielfache gleichzeitige Operationen von vielfachen CPU, die mit einem Bussystem gekoppelt sind, zu erlauben.
- Dieses und andere Ziele werden durch ein Computersystem gemäß Anspruch 1 erreicht und werden offensichtlicher werden, wenn sie in Verbindung mit der folgenden Beschreibung und den beigefügten Zeichnungen genommen werden, die ein bevorzugtes Ausführungsbeispiel der Erfindung zeigen.
- Wenn zwei CPU gleichzeitig Eingabe/Ausgabe-Ladebefehle (IOLD) ausgeben, die typischerweise IOLD-Funktionscodepaare haben, wie z. B. FC=09/0D, ist jeder dieser Befehle ein individueller Befehl, aber da der zweite 0D-Befehl keinen Quellenidentifizierer hat, tritt der Mechanismus in den AWAIT der Zeichen 0D-Zustand nach Erhalt der FC0D (d. h. Adresse) ein. Alle folgenden FC09, die zu der Steuereinrichtung von einer CPU gesendet werden, bevor sie den begleitenden FC0D (d. h. den Bereich der Adresse) erhalten haben, werden negativ quittiert, d. h. NAK. Durch negatives Quittieren des zweiten FC09 wird diese CPU den ursprünglichen IOLD wiederholen, zu welchem Zeitpunkt der korrekte FC0D empfangen worden sein wird.
- Mit diesem Merkmal kann eine Steuereinrichtung mehr als eine CPU pro Steuereinrichtungskanal oder Steuereinrichtungsleitung (d. h. Kanalpaare) unterstützen. Dieses Merkmal ist notwendig, um eine Lokalnetzwerk- (LAN)-Verbindung bereitzustellen.
- Fig. 1 ist ein schematisches Diagramm eines LAN-Systems, das die Erfindung verwendet.
- Fig. 2 ist ein Blockdiagramm der Erfindung.
- Fig. 3 ist ein Blockdiagramm der Betriebsstruktur der Erfindung.
- Fig. 4 Blätter 1 und 2, ist ein logisches Blockdiagramm des Merkmals des aufgeteilten Busses der Erfindung.
- Fig. 5 ist ein logisches Blockdiagramm eines herstellerspezifischen Busses einer LAN-Steuereinrichtung der Erfindung.
- Fig. 6 ist ein Diagramm der physikalischen Schnittstelle, die zwischen dem LAC und den angebrachten Adaptern verwendet wird.
- Fig. 7 ist ein logisches Blockdiagramm des Merkmals der Vielfach- CPU-Verriegelung der Erfindung.
- Fig. 8 ist ein schematisches Diagramm eines LAC-Steuerblockes zum Laden/Ausgeben von LAC-Software aus dem Hauptspeicher.
- Fig. 9 ist ein schematisches Diagramm eines LAN-Steuerblockes für den Start-I/0-Befehl.
- Fig. 10 ist ein schematisches Diagramm einer typischen Mailbox, die verwendet wird, um eine DMA-Operation anzufordern, um einen Datenblock zu bewegen.
- Fig. 11 ist ein schematisches Diagramm eines Hardwareformates zum Übertragen von Nachrichten.
- Fig. 12 und 13 zeigen temporäre Schlangen in dem RAM.
- Fig. 14 ist ein Flußdiagramm des I/0-Abfertigungsprozesses in der LAC-Steuereinrichtung.
- Fig. 15 und 16 zeigen die Flußdiagramme des DMA-Prozesses auf der LAC-Steuereinrichtung.
- Fig. 17 ist das Flußdiagramm der Adapterunterbrechungsroutine zum Unterbrechen der LAC-Steuereinrichtung.
- Fig. 18 ist ein Flußdiagramm für drei unterschiedliche MAC-Prozesse eines Adapters.
- Fig. 19 ist ein schematisches Diagramm des LAC-Übertragungsflusses eines LAN-Steuerblockes.
- Fig. 20 ist ein schematisches Diagramm des LAC-Empfangsflusses eines LAN-Steuerblocks.
- Architektur
- Das Lokalbereich-Steuereinrichtung-Untersystem (LACS) ist ein programmierbares Kommunikationsuntersystem, das mit dem LEVEL-6-MEGA- BUS-System von Honeywell verbunden werden kann, siehe die US-Patente 3,993,981; 3,995,258; 4,000,485; 4,001,790 und 4,050,097, die für den gleichen Anmelder wie für die vorliegende Erfindung erteilt worden sind. LACS weist die folgende Menge von Kommunikationskomponenten auf:
- (a) Lokalbereich-Steuereinrichtung-(LAC)-Hauptplatine
- (b) Medienzugriff-Steuereinrichtung (MAC) und Adapter für die physikalische Schicht
- (c) Leitungskoppler (TC)
- (d) HF-Modem.
- Die Offenbarung dieser Erfindung betrifft die Definition und Beschreibung der ersten beiden obengenannten Punkte (d. h. der LAC und der Adapter).
- Das LACS soll in der Lage sein, jeden der IEEE 802 Lokalnetzwerk- Standard zu unterstützen. Der Entwurf der LACS minimiert die über die Honeywell-LEVEL-6/LACS-Schnittstelle erforderlichen Wechselwirkungen und isoliert die LACS-Kommunikationssoftware auf der Platine von den spezifischen Hardware-Merkmalen der LEVEL-6 (L6) und den LAN- Adapterschnittstellen. Eine Kommunikationskernroutine, die auf einer kommerziell verfügbaren von Bridge Communications Inc. basiert, wird als das Betriebssystem (OS) in der LAC verwendet. In dieser Offenbarung bezieht sich "CS Software" (Communication Service) auf LAC- residente Software, die die Verbindung, das Netzwerk und die Transportschichten des offenen Kommunikationssystems (OSI) implementiert; "SM Software" (System Management-Schichtinstanz bezieht sich auf LAC- residente Software, die IEEE 802 System Managementfunktionen unterstützt.
- Obwohl der IEEE 802 Standard nicht höher als bis zu einer Standarddatenverbindungs-Steuerschnittstelle (Schicht 3/Schicht 2) geht, ist die LEVEL-6-zu-LACS-Schnittstelle, die bereitgestellt ist, so flexibel, daß sie leicht anpaßbar ist, um die höheren (z. B. Sitzung/Transport) Schichtschnittstellen zu unterstützen.
- Das LACS, das für alle Lokalnetzwerk-(LAN)-Anwendungen verwendet wird, ist in einem LEVEL-6-Standardgehäuse von Honeywell montiert und erfordert einen Steckplatz auf dem MEG ABUS-System (MEG ABUS ist ein registriertes Warenzeichen von Honeywell); es wird den 32-Bit- Adreßbus der größeren LEVEL-6-Systeme unterstützen. Die LAN-Adapter stellen eine Schnittstelle von der LAC zu dem LAN bereit. Der Adapter (eine Tochterplatine) weist eine Medienzugriff-Steuereinrichtung (MAC) auf. Die LAC ist für das Anbringen von bis zu vier Adapter-Tochterplatinen vorgesehen. Die Adapter sind von unterschiedlichen Typen, z. B. Token-Bus-MAC, CSMA/CD-MAC, usw.).
- Die Leitungskoppler (TC) sind von unterschiedlichen kommerziellen Typen (z. B. Breitbandrichtungskoppler; Token-Ring, Ethernet-Transceiver) und sind als getrennte Einheiten montiert. Das HF-Modem, das für Breitbandanwendungen verwendet wird, ist auch getrennt gepackt.
- Auf Grund seiner Fähigkeit Adapter von ähnlichen oder unähnlichen Typen zu unterstützen, kann das LACS nicht nur für eine IEEE 802 LAN-Verbindung mit einem LEVEL 6 verwandt werden, sondern auch in der Zukunft als ein Netzübergang zwischen IEEE 802 LAN oder im Falle von Breitband-LAN als eine Brücke zwischen Breitbandkanälen. Andere Anwendungen für das LACS können als LAN Verkehrsmonitor/Protokoliereinrichtung und Netzwerksteuerung sein. Die Kommunikation-(CS)- und System Management-(SM)-Software würde natürlich für jede Anwendung maßgeschneidert sein.
- Fig. 1 zeigt ein lokales Netzwerk mit LACS, das Verbindungen mit LEVEL-6-Systemen bereitstellt für Workstation LAN-Zugriff und für den Netzübergang zwischen LAN.
- In Fig. 1 ist das LAC 101 für zentrale Multiprozessorsysteme vorgesehen mit bis zu 16 Prozessoren in ihren Eingangs/Ausgangs-(I/0)-Schnittstellen. Die LAC 101 stellt Verbindungen für das LEVEL-6-(L6)-System 102 und das LAN 100 bereit, wobei die LAC 101 mit den L6 102 über den MEGABUS 103 Schnittstellen bilden. Zusätzlich wirkt die LAC 101 als ein Netzübergang zu anderen LAN, wie z. B. LAN 104 oder Ethernet 105. Unter Steuerung einer LEVEL-6-CPU könnte sie andere Kommunikationsbedürfnisse bedienen, wie z. B. solche zu Gunsten der neuen Vielleitungs-Steuereinrichtung (NMLC) 107, und Großrechnersystemen, wie z. B. dem DPS 8 106.
- In Fig. 2 ist ein detaillierteres Blockdiagramm der LAC 101 gezeigt. Ein kommerziell verfügbarer Mikroprozessor (MC 68000) 201 ist mit einem Mikroprozessorbus (u/p) 200 gekoppelt und kommuniziert mit Adaptern durch Adapterverbindungen 210-213. Ein kommerziell verfügbarer RAM 209 ist mit dem DMA-Bus 214 gekoppelt und kommuniziert mit dem Mikroprozessorbus (u/p) 200 über den Buskoppler 206. Der RAM ist physikalisch in zwei Abschnitte geteilt: ein Datenpuffer-RAM und ein Programm-RAM. Die Intention der Trennung ist es simultanen Direktspeicherzugriff (DMA) auf Daten in dem Datenpuffer (RAM) mit dem LEVEL-6-Speicher oder mit den LAN-Adaptern zusammen mit der Softwareausführung in dem Programm-RAM zu erlauben. Der Buskoppler 206 ist ein kommerziell verfügbarer Transceiver-Typ 74LS245, der den u/p-Bus 200 von dem DMA-Bus 214 trennt und den gleichzeitigen unabhängigen Betrieb der MC-68000-Busse 200, 214 auf jeder Seite erlaubt, außerdem dem Mikroprozessor erlaubt, Zugriffe auf irgendeine Stelle in dem gesamten RAM 202, 209 auszuführen.
- Die DMA-Steuereinrichtung 208 ist eine kommerziell verfügbare 68440- Steuereinrichtung von Motorola und ist eine 2-Kanalvorrichtung; ein Kanal wird von dem Mikroprozessor 201 benutzt, um die DMA-Bewegung von Daten zwischen dem LEVEL-6-Hauptspeicher 215 durch die MEGABUS-Schnittstelle 207 und den Datenpuffer-RAM 209 auszuführen. Der andere Kanal wird benutzt, um I/0-Befehlsinformation von dem MEGABUS 216 zu akzeptieren und sie zu einer zeitweiligen Schlange in dem Datenpuffer-RAM 209 für weitere Analyse und Verteilung durch Firmware oder Schnittstellen-(IF)-Software zu liefern.
- Die Zeitgebervorrichtung 203 ist vom Typ 9513 und ist kommerziell verfügbar von Advanced Micro Devices; sie stellt den Grundtakt für das LAC-Betriebssystem zur Verwendung beim Bereitstellen von Zeitgeberfunktionen für LAC-Software (nicht gezeigt) bereit.
- DMA-Funktionalität für die Adapter ist durch die Hardware bereitgestellt, die auf den Adaptern selbst angeordnet ist. Adapter-DMA erfolgt immer in oder aus dem Datenpuffer-RAM.
- Datenbewegung zwischen dem Programm RAM 202 und dem Datenpuffer- RAM 209 wird direkt durch den MC 68000 Mikroprozessor 201 durchgeführt; Datenbewegung zwischen dem Programm-RAM 202 und dem Hauptspeicher 215 (wie bei Lade/Ausgabe-Operationen) wird in zwei Schritten durchgeführt: eine Bewegung zwischen dem Programm-RAM 202 und dem Datenpuffer-RAM 209 unter Steuerung des Mikroprozessors 201, und eine Bewegung zwischen dem Datenpuffer-RAM 209 und dem Hauptspeicher 215, durchgeführt durch die DMA-Steuereinrichtung 208.
- Obwohl nicht notwendig für die Erfindung, ist Fig. 3 dargestellt, um besser die strukturellen Beziehungen des Betriebssystems (OS), der Brückenkommunikationskernroutine OS und der Schnittstellen-(IF)-Software und der Hardware zu verstehen.
- Fig. 3 spiegelt den Funktionalitätsschub, der in der Beschreibung beschrieben ist, wieder; bei dem CS- und SM-Software 301 bzw. 302 nicht direkt die LAC-Hardware steuern, sondern Schnittstellen mit ihr durch IF-Prozesse 304 und -routinen bildet. Diese IF-Software isoliert die CS- und SM-Software von den besonderen Merkmalen der Hardware, so daß zukünftige Wiederimplementierungen von Hardware (z. B. mit LSI-Teilen in größerem Maßstab) nicht diese Software betreffen müssen. Alle LAC- Software wird in das LAC-Programm-RAM 202 geladen.
- In dieser Beschreibung ist IF-Software als aus Prozessen oder Unterbrechungsroutinen bestehend beschrieben, je nachdem ob der bestimmte Softwareteil von einer Mailbox-Nachricht aufgerufen wird, die zu ihr gesandt worden ist, oder normal aufgerufen wird durch das Auftreten einer Unterbrechung von der LAC-Hardware. Aus der Sicht des OS 303 sind diese IF-"Unterbrechungsroutinen" entweder einem IF-Mailbox-aufgerufenen Prozeß zugeordnet (der weiter unten beschrieben werden wird) oder sie sind ein Prozeß, der im wesentlichen nur aus einem Unterbrechungsmittel besteht.
- Den MEMDMA - und IODISP-Prozessen der IF-Software ist eine MEGA- BUS-Schicht-Management-Einheit (MBLME) zugeordnet, an die diese Prozesse verschiedene ungewöhnliche Vorkommnisse oder Fehler berichten. Die MBLME kann wiederum bestimmte dieser Vorkommnisse der SM-Software berichten; sie dient im allgemeinen auch als Vermittler zwischen SM und diesen Prozessen.
- Die MAC-Prozesse der IF-Software 304 bestehen aus einem MAC-Übertragungs-, Empfangs-, und Schicht-Managementprozeß für jeden physikalisch angebrachten Adapter.
- Die CS-Software 301 stellt Transport-, Netzwerk- und Verbindungsschicht- Funktionen für die LAN-Verbindung(en) bereit. Jede dieser Schichten und Schichtinstanzen hat eine Schichtmanagementeinheit, die ihr zugeordnet ist, und die Funktionen analog zu der MBLME ausführt.
- Die SM-Software stellt eine Gesamtsteuerungs- und Systemzustands-Berichterstattung für die LACS-Schichtmanagementeinheiten und mit der Systemmanagement-Software in der CPU bereit.
- Die OS-Kernroutinensoftware stellt Dienstfunktionen wie z. B. Zeitgeber bereit und steuert das Abfertigen von Prozessen und Durchgeben von Mailbox-Nachrichten. Das Handhaben von Fehlerantworten von der Kernroutine für die verschiedenen Prozeduraufrufe wird zu ihr durch CS- und IF-Software gesandt.
- Die LAC enthält auch einige PROM-residente Firmware (nicht gezeigt in dieser Figur), die QLT-, RAM-Lade/Ausgabe- und grundlegende I/O- Befehle bereitstellt.
- Kommunikation unter Prozessen (sie wird vollständiger unten beschrieben werden) wird über Mailbox-Nachrichten ausgeführt unter Verwendung von OS SENDMSG-Prozedur-Aufrufen. Sie sind die Mittel, durch die ein Prozeß einen Nachricht- oder Anforderungsdienst eines anderen Prozesses senden kann. Sie sind auch die Mittel, durch die das Auftreten von asynchronen Vorkommnissen oder die Vervollständigung von asynchronen Diensten für die Software sichtbar gemacht werden, für das die Softwareverarbeitung zu ihrem nächsten Schritt weitergehen kann. Der aufgerufene Prozeß wird Nachrichten wieder gewinnen, die zu seinen Mailboxen gesandt worden sind. Softwareprozesse können die ID von ihren eigenen Mailboxen erhalten; sie können auch die ID einer anderen dem Prozeß wohlbekannten registrierten Mailbox erhalten.
- Die Brücke OS 303 stellt eine Anzahl von Prioritäten für Mailbox-Nachrichten bereit, die die relative Position der Nachrichten in einer Mailbox- Schlange betreffen. Die verfügbaren Nachrichtenprioritäten sind UR- GENT, NORMAL, MUST DELIVER, und FAST.
- Der LAN-Steuerblock (LCB), (der unten beschrieben werden wird) ist das Haupthilfsmittel der Kommunikation zwischen der LEVEL-6-CPU und dem CS. Die OS/SM-Softwareschnittstelle 301, 302 mit dem MEGA- BUS wird durch Mailbox-Nachrichten, die von dem I/O-Abfertigungsprozeß 304 der IF-Software empfangen wird, und durch Mailbox-Nachrichten, die zu der IF-Software gesandt werden, unterstützt. Die empfangenen Mailbox-Nachrichten bestehen im wesentlichen aus Zeigern auf LCB im Hauptspeicher 215. Die Mailbox-Nachrichten zu dem Speicher DMA-Prozeß werden verwendet, um eine Bewegung von Daten zwischen dem Hauptspeicher 215 und dem LAC-Datenpuffer-RAM 209 zu verursachen, oder um in dem LCB zu lesen, oder um Information vom Zustandstyp in LCB in Speicher 215 zu schreiben und die CPU zu unterbrechen.
- Die CS/SM-Softwareschnittstelle mit Adaptern wird durch Mailbox-Nachrichten unterstützt, die durch die Medienzugriffs-Steuereinrichtungprozesse (MAC) der IF-Software erzeugt worden sind (d. h. Datenanzeige und Steueranzeige) und durch Mailbox-Nachrichten, die zu den MAC-Prozessen der IF-Software gesandt worden sind.
- Die Softwareschnittstelle zwischen dem LEVEL 6 und dem LACS während einem normalen Betrieb verwendet Eingabe/Ausgabe-Ladebefehle (IOLD), die zu den LACS adressiert sind und Rücklaufzustandsinformation, die zu dem Hauptspeicher durch die LAC geliefert worden sind, begleitet von Unterbrechungen zu LEVEL 6.
- Alle die Datennachrichten- und Verwaltungs- und Managementoperationen sind auf der Verwendung von LAN-Steuerblöcken (LCB) basiert, die im Hauptspeicher 215 angeordnet sind, und auf die durch Information gezeigt wird, die in IOLD-Befehlen gegeben ist. Der geeignete Softwareprozeß in der LAC wird den LCB dazu veranlassen, in das RAM kopiert zu werden als ein LCB-LAN-Steuerblockbild (LCBI, und wird nach dem Beenden der angeforderten Operation veranlassen, daß der Endzustand zu dem LCB geliefert wird. Beim Ausführen der Operation wird der Prozeß von verschiedenen anderen Prozessen Gebrauch machen.
- Die LAC ist hauptsächlich aus drei Bussen, wie in den Fig. 4, 5 und 6 gezeigt, hergestellt und weist hauptsächlich einen Mikroprozessor (u/p)- Bus 400 in Fig. 4 auf; einen Direktspeicherzugriff-(DMA)-Bus 614a, 614b; und einen Adapter-Bus 521a, 521b, 522a, 522b in Fig. 5 und Verbinder 1 und 2 in Fig. 6. Diese Busse weisen bis zu 16 Datenbit, zwei Paritätsbit und 23 Adreßbit auf und umfassen einen Steuerbus, der ein Datenhinweissignal, ein Adreßhinweissignal, eine Lese/Schreib-Leitung und Funktionscodeleitungen enthält.
- Bezugnehmend jetzt auf die Fig. 4 und 5 ist dort ein Mikroprozessor (u/p) 401 vom Motorola-Typ gezeigt, der unter Steuerung eines Betriebssystemes (OS) arbeitet, das in einem kommerziell verfügbaren dynamischen Direktzugriffspeicher (DRAM) 402 gespeichert ist. Dieses Betriebssystem OS steuert den Datenfluß von dem DMA-Bus 614b zu dem Adapterdaten- und -adreßbus 421b und dem Megabus 416B. (Dies wird ausführlicher diskutiert werden, wenn der Adapterbus unten diskutiert wird).
- Der kommerziell verfügbare löschbare programmierbare Festwertspeicher (EPROM) 404 ist 16K · 16 Bit breit und ist von einem kommerziell verfügbaren 27128-Typ. Der EPROM 404 enthält einen schnellen Logiktest (QLT) und einen Stapelzeiger zu dem Mikroprozessor 401. Der EPROM 404 stellt auch den DMA-Chip 408 vom Motorola-Typ 68440 ein, um einen Block von I/O-Anweisungen von dem LEVEL-6-Computersystem 214a, 214b, 215 zur Speicherung in den 64K · 18 dynamischen Direktzugriffsspeicher (DRAM) 411 zu übertragen, der von dem Motorola 68000 (u/p) 401 verwendet werden soll, um diese LEVEL-6-Anweisungen auszuführen. Die LEVEL-6-CPU 214a/b lädt auch das Betriebssystem (OS) in den dynamischen Direktzugriffspeicher (DRAM) 402, der von dem Mikroprozessor (u/p) 401 verwendet werden wird, um Programme und Anweisungen auszuführen.
- Damit das LEVEL-6-System, das in Fig. 2 durch die Bezugszeichen 214a, 214b, 215 und auf Blatt 2 von Fig. 4, 414a, 414b gezeigt ist, mit der LAC über den MEGABUS 216, 416a, 416b kommuniziert, gibt die LEVEL-6-CPU 214a/b eine Anweisung an die LAC über eine MEGA- BUS-Schnittstelle 407a vom 74AS867/26S10-Typ und eine Schnittstelle 407b vom 74AS823/26S10-Typ aus. Die Anweisung wird von einem Register vom 74AS823-Typ als ein Funktionscode empfangen. Die LEVEL-6-CPU 414a plaziert Adressen auf der Adreßschnittstelle 407a, während die LEVEL-6-CPU 414b die Daten in der Datenschnittstelle 407b plaziert. Diese Daten werden an den Eingängen des FIFO 430 plaziert und Anweisungen werden an den Eingängen der Steuereinrichtung plaziert. Wenn die Anweisungen in der Steuereinrichtung 408 plaziert worden sind, wird ein Signal zu dem DMA-Chip 408a für eine Anforderung gesandt, um eine Steuerung des DMA-Bus 714b zu erhalten. Der DMA-Chip 408a quittiert die Anforderung und erlaubt der Steuerungseinrichtung 408 Daten auf dem DMA-Bus 614a, 614b zu plazieren. Der DMA-Chip 408a adressiert dann den Speicher 408b der Steuereinrichtung und überträgt die DMA-Daten in den DRAM 411. Wenn diese Prozedur ausgeführt worden ist, wird der DMA-Chip 408a dem Mikroprozessor 401 erlauben, auszuführen. Der Mikroprozessor 401 wird dann den DMA-Bus anfordern, und wenn dies gewährt worden ist, wird er Daten von dem Speicher 408b für weitere Verarbeitung und Analyse übertragen.
- Um Daten von dem LEVEL-6-System 102 von Honeywell zu dem LAN 100 über das LACS 101 zu übertragen, lädt der u/p 68000 zuerst eine LEVEL-6-Startadresse in die MEGABUS-Adreßschnittstelle 407a. In der MEGABUS-Adreßschnittstelle 407a ist ein Bereichszähler; der die Anzahl von Worten, die in den Speicher 408b geladen werden sollen, zählt. Dann lädt der u/p 401 eine DMA-Adresse in den DMA-Chip 408a. Die DMA-Adresse lädt demgemäß den Adreßspeicher 408b. Sie lädt auch einen Bereichszähler für die Anzahl von Worten, die in den Speicher 408b geladen werden sollen. Dann werden unter Steuerung des u/p 401 Daten über die MEGABUS-Datenschnittstelle 407b in den First-in-First- Out-Speicher (FIFO) und auf den DMA-Bus 614b übertragen. Dann überträgt der DMA-Chip 408a die Daten auf den DMA-Bus 614b in den DMA-Pufferspeicher 408b. In der Zwischenzeit ist der u/p 401 von diesem DMA-Transfer durch einen 74LS245-Transceiver 406b isoliert. Demgemäß kann der u/p 401 gleichzeitig andere Aufgaben ausführen unter Verwendung von Information, die von dem DRAM 402 erhalten worden ist. Wenn der DMA-Transfer von der LEVEL-6 zu dem DMA- Speicher durchgeführt worden ist, unterbricht der DMA-Chip 408a den u/p 401. Der u/p 401 gibt dann einen Befehl auf den DMA-Bus 614a, 614b und auf den Adapterbus 421a, 421b über Transceiver 420a, 420b vom 74LS245-Typ aus. Der Adapter; der den Befehl empfängt, liest dann den DMA-Speicher 408b und überträgt Daten von dem DMA-Speicher 408b in einen der Adapter 422a, 422b und auf das LAN 100. Während diese Prozedur stattfindet, ist der u/p 401 von sowohl dem DMA-Bus 614a, 614b als auch dem Adapter-Bus 421a, 421b über die Transceiver 406b bzw. 420a bzw. 420b isoliert. Der u/p 401 fährt dann fort unter seinem Betriebssystem OS zu arbeiten und bereitet den nächsten Block zum Transfer für den DMA-Chip 408a vor. Die Transceiver 406b erlauben dem Mikroprozessor sein Programm auszuführen, dem DMA-Bus, und Übertragungen von sowohl dem LEVEL-6-Speicher 215, dem ME- GABUS 216, zu dem DMA-Speicher 408b auszuführen. Demgemäß erlaubt diese Isolation der Busse allen drei Bussen in Konkurrenzbetrieb ohne gegenseitige Störung zu laufen. Sie macht das LAN sehr vielseitig und stellt einen größeren Durchsatz durch die LAC bereit.
- Bezugnehmend jetzt auf die Fig. 5 und 6 ist dort ein Blockdiagramm der Adapterschnittstelle gezeigt, die aus Adapter-Tochterplatinenverbindungen 210-213 (siehe auch Fig. 2) und Adapter-Tochterplatinen 216-219 besteht. Die gesamte LAN-Platine, die das Adapter-Schnittstellensystem aufweist, kann bis zu 4 Tochterplatinen 522a, 522b haben. Jede Tochterplatine hat A ungerade und gerade Verbindungseinrichtungen. Zum Beispiel hat die Tochterplatine #1 (Adapterschnittstelle #1) Adapterverbindungen W01 und W02; die Tochterplatine #2 (Adapterschnittstelle #2) hat Verbindungen W03 und W04, usw. Ungerade Verbindungen handhaben die Steuerleitungen; wohingegen gerade Verbindungen Datenleitungen 0-15 und Adreßleitungen 00-23 handhaben. Tochterplatinen der Adapter können von jedem Typ von Ethernet, Token-Ring, Token-Bus, Platten, Bänder; Speicher usw. sein.
- Der Adapterbus 421a, 421b, 521b ist durch kommerziell verfügbare Transceiver vom 74LS245-Typ 420a, 420b, 520b, 520bc isoliert. Im Falle, wenn der DMA-Bus wünscht Daten zu dem Adapterbus zu senden, wird der Transceiver einen Datenfluß in dieser Richtung erlauben; wohingegen der Transceiver in die andere Richtung zeigen wird, wenn der Adapterbus wünscht Information zu dem DMA-Bus zu senden. Jede Mapter- Tochterplatine 216-219 auf der Verbindungseinrichtung (210-213) wird Daten zu der LAN senden oder von ihr empfangen wollen; diese Adapteranforderung zu dem DMA-Bus und ein Entscheidungschip vom 68452- Typ 509 bestimmt, welche der verschiedenen Anforderungen die höchste Priorität hat und vergibt den Bus zu dem Adapter; der die höchste Priorität hat. Er wird auch ein Signal zu einem Chip vom 7474-Flip- Flop-Typ über ein Gatter 531 vom 74S20-Typ senden. Das Flip-Flop 530 zeigt an, wenn es gesetzt ist, daß ein Tochterplatinen-(Adapter)-Zyklus stattfindet. Das Signal wird dann an die Transceiver 520b, 520bc über Gatter 532, 533 angelegt, wo sie mit einem Lese/Schreib-Signal durchgeschaltet werden. Das Lese/Schreib-Signal, das an die Gatter 532, 533 angelegt ist, bestimmt, in welche Richtung Daten über die Transceiver 521b, 521bc übertragen werden, d. h. ob die DMA-Busdaten auf dem Adapterbus plaziert werden, oder ob die Adapter-Busdaten auf dem DMA-Bus plaziert werden. Wenn diese Datenübertragung beendet ist, kann der Adapter mit der nächst höheren Priorität seinen Zyklus beginnen.
- Datenübertragungen können auch zu oder von den Adaptern durch Verwendung von Freigabesignalen von dem Transceiver 406b stattfinden. Bei dieser Technik von Datenübertragung programmiert der u/p 401 die Transceiver 406b mit Adapterfreigabesignalen. Demgemäß kann der u/p 401 Daten lesen oder zu den Adaptern unter seiner Steuerung über den Transceiver 406b senden. Demgemäß erlaubt dieser Typ von Isolierung über Transceiver 520b, 520bc und die Auswahl über den Transceiver 406b dem LAN durch den u/p 401 programmiert zu werden, um jeden Typ von Tochterplatinen (Adaptern) auf dem LAN zu benutzen.
- Bezugnehmend auf Fig. 6 ist dort die physikalische Schnittstelle zwischen der LAC und den zugeordneten Adaptern gezeigt. Die Adapterschnittstelle ist aus Verbindungseinrichtungen W01-W08 gebildet. Fig. 6 zeigt zwei typische Verbindungseinrichtungen. Alle geraden Verbindungseinrichtungen W02, W04, W06, W08 enthalten Datenbit 0-15 und Adreßbits 1-23. Alle ungeraden Verbindungseinrichtungen W01, W03, W05, W07 handhaben Steuersignale. Auf den ungeraden Verbindungseinrichtungen ist der Verbindungseinrichtungsanschluß 10 ein Bus-Löschsignal; Verbindungseinrichtungsanschluß 11 ist ein Hauptlöschsignal; wohingegen Verbindungseinrichtungsanschluß 12 eine Anzeige eines Busfehlers ist. Der Verbindungseinrichtungsanschluß 13 handhabt Paritätsfehlersignale; wohingegen Lese/Schreib-Signale an den Verbindungseinrichtungsanschluß 18 angelegt werden. Datenquittungssignale werden an den Anschluß 20 angelegt. Ein oberes Datenhinweissignal wird an Anschluß 22 angelegt; wohingegen ein unteres Datenhinweissignal an Anschluß 24 angelegt wird. Ein Datenadreßhinweissignal wird an Anschluß 26 angelegt. Der Anschluß 29 handhabt Signale für einen Systemtakt; wohingegen der Anschluß 31 Signale für 2·2 den Systemtakt handhabt. Der Anschluß 35 handhabt Signale für 1/8 der Taktrate des Systems. Leistung-An-Signale werden über den Anschluß 34 gehandhabt. Unterbrechungs-Anforderungs-Signale von dem Adapter werden an den Anschluß 47 angelegt und Unterbrechungs-Quittungs-Signale zu dem Adapter werden an dem Anschluß 48 angelegt. Die Freigabe-Hinweis-Signale zu dem Adapter werden an Anschluß 49 angelegt. Busanforderungs-Signale von dem Adapter werden an Anschluß 51 angelegt und Buszuordnungs-Quittungs-Signale zu den Tochterplatinen werden am Anschluß 52 angelegt; wohingegen Buszuordnungs-Quittungen von dem Adapter zu den LAN an Anschluß 53 angelegt werden. Die Anschlüsse sind verbunden, um verschiedene Datenleitungen und Adreßleitungen zu identifizieren.
- Um eine Steuerung des LACS durch die LEVEL-6-CPU 214a, 214b bereitzustellen, werden ein Satz von Eingabe/Ausgabe-(I/O)-Befehlen verwendet mit unterschiedlichen Funktionscodes (FC).
- 1. IO (FC=01) Gebe LACS-Steuerung aus
- 2. IOLD (FC=09/0D) Gebe LCB-Zeiger aus
- 1. IO (FC=26) Gebe Vorrichtung ID ein
- Dieser Befehl transferiert ein 16-Bit-Steuerwort zu dem LACS. Alle Adapter und Schnittstellen werden von diesem Befehl betroffen. Die in dem Befehl benutzte Kanalnummer ist unerheblich. Die Bit in dem Wort sind wie folgt definiert:
- Bit 0: Hardwareinitialisierung (wenn eine Eins)
- Bit 1: Stop I/O (wenn eine Eins und Bit 0 eine Null ist)
- Bit 2-15: MBZ
- Die Hardwareinitialisierungsfunktion wird durch eine Leistung- An-Sequenz oder durch den Ausgabe-LAC-Steuerbefehl (der das erste Bit des Befehls ist) gleich EINS gestartet; d. h. FC=01. Diese Initialisierungsfunktion veranlaßt die folgenden Aktionen:
- (a) Die LAC- und Adapter-RAM 202, 216a-219a werden gelöscht.
- (b) Alle Hardwareregister in der LAC und den Adaptern werden gelöscht.
- (c) Die LAC läßt ihren Qualitäts-Logiktest (QLT) laufen und ermittelt die geeignete Konfigurationsinformation.
- (d) die LAC tritt in eine Stop-Bedingung ein, in der ihre Funktionalität aus den Funktionen besteht, die von dem PROM 204 unterstützt werden.
- Wenn Bit 1 des I/O-Befehls eine Eins ist, und Bit 0 eine Null ist, dann wird ein Stop I/O durchgeführt, der die folgenden Aktionen veranlaßt:
- (a) Die Hardwareregister in der LAC und den Adaptern werden gelöscht.
- (b) Die LAC beginnt den Betrieb oder setzt ihn fort unter Firmware-Steuerung, in der die Funktionalität aus den Funktionen besteht, die von PROM-residenter Firmware 204 unterstützt werden.
- Die IOLD-Anweisung besteht grundsätzlich aus zwei Funktionscode. Der Funktionscode 09 bezieht sich, wenn vorhanden, auf das Laden einer Adresse; wohingegen der Funktionscode 0D, wenn vorhanden, sich auf den Ladebereich bezieht. Dieser Befehl betrifft zwei separate Bustransfers zu der LAC. Der erste Transfer ist eine 32-Bit-Byteadresse und der zweite ist ein 16-Bit-Bereichswort, dessen 8 Bit höherer Ordnung so interpretiert werden, als ob sie eine LAC-Hardware/Software-Funktion definieren, und wobei die 8 Bit niedrigerer Ordnung die LCB-Größe in Byte definieren. Zusammen definieren die Adresse und die LCB-Größe den Ort und die Größe eines LCB in dem Hauptspeicher 215 von LEVEL 6. Wenn die LEVEL-6-CPU 214a oder 214b ein IOLD ausgibt, plaziert der MEGABUS 216 den 09-Funktionscode auf die MEGABUS- Adreßbit 18-23. Das LAN akzeptiert diesen Funktionscode und speichert ihn auf der Mutterplatine der Fig. 2, 5. Der nächste Funktionscode, auf den das LAN antworten wird, ist der 0D-Funktionscode, der die IOLD-Anweisung vervollständigt.
- Ein Hauptproblem, das bezüglich der Ausgabe von IOLD-Befehlen auftritt, liegt in einem Multiverarbeitungssystem. Ohne eine Verriegelung können IOLD-Befehle von zwei CPU ausgegeben werden und diese IOLD-Befehle können überlappt sein, daß die LAC nicht wissen wird, wie die beiden Funktionscode 09 plus 0D, die von jeder der beiden CPU gesandt worden sind, zu paaren sind. Die Verriegelung verursacht ein NAK zu der zweiten CPU, was zweideutige Zyklen verhindert und gewährleistet, daß alle IOLD von der gleichen CPU sind.
- Bezugnehmend jetzt auf Fig. 7 ist dort ein kommerziell verfügbares Flip-Flop 701 74S112 gezeigt, das einen ersten Funktionscode 09 von einem ersten IOLD-Befehl speichert. Ein Ausgabesignal von dem Flip- Flop 701 wird an eine kommerziell verfügbare programmierbare Matrixlogik (PAL) 703 vom Typ 16L8 angelegt; an die PAL werden auch die MEGABUS-Adreßbit 18-23 angelegt. Die PAL 703 dekodiert die Funktionscode und entscheidet, ob oder ob nicht, der Funktionscode, der von der LEVEL 6 ausgegeben worden ist, quittiert (ACK) oder nichtquittiert (NAK) werden soll. Wenn diese Entscheidung getroffen worden ist, wird sie dann in einem Zwischenspeicher vom 74AS823-Typ gespeichert. Dieser Zwischenspeicher wirkt als ein Semaphore, das Information von dem Bus zwischenspeichern kann, so daß der Bus freigegeben und die Information zur geeigneten Zeit verwendet werden kann. Das Zwischenspeichern des Schaltungs-Semaphore 704 wird entschieden, wenn das LAN entdeckt, daß die Anweisung für die LAN-Karte war. Das Flip-Flop 701 wird zum Funktionscode 0D zurückgesetzt, um den Zyklus zu beenden. Das Flip-Flop 701 kann als ein Typ von Klammer betrachtet werden, die mit dem Funktionscode 09 gesetzt und mit dem Funktionscode 0D zurückgesetzt wird. Die PAL 703 dekodiert die Funktionsbit und entscheidet, welcher Funktionscode zu dem MEGABUS quittiert (ACK) oder nichtquittiert (NAK) werden soll. Demgemäß verhindert diese Logik, daß eine erste CPU ein IOLD ausgibt, und daß eine zweite CPU ein IOLD ausgibt, wobei jede CPU die falsche Quittung empfängt. Um jede Eingabeanweisung nicht zu quittieren (NAK), nachdem ein IOLD eine Steuerung der LAN-Karte gegeben hat, wird ein Flip-Flop 702 verwendet. Es wird als ein Semaphore verwendet, das auf den ersten IOLD-Funktionscode 09 gesetzt wird und nur zurückgesetzt werden kann, wenn ein Hauptlöschsignal an es angelegt wird. Daher verhindert das Semaphore 702, daß die Eingabeanweisungen von LEVEL 6 ausgegeben werden, wenn die LAN-Karte einmal eine Steuerung zu den IOLD-Anweisungen gegeben hat.
- Unmittelbar der Vervollständigung eines Ausgabe-LACS-Steuerbefehles (FC=01) folgend kann ein Eingabe-Vorrichtungs-ID-Befehl (FC=26) ausgegeben werden, um den LAC-PROM 204 zu veranlassen, ein 16-Bit- Vorrichtungs-ID-Wort zu dem MEGABUS zu liefern. Dieses ID identifiziert sowohl die LAC als auch den an dem adressierten Adapterkanal angebrachten Adapter. Der LAC ist ein Satz von 64 Kanalnummern zugewiesen. Für den Eingabe-Vorrichtungs-ID-Befehl (FC=26) werden die 6 Bit niedriger Ordnung der Kanaladresse durch die LAC behandelt, als ob sie aus zwei Feldern wie folgt bestehen: die höchsten 2 Bit spezifizieren die Position der Tochterplatine des Adapters und die niedrigsten 4 Bit spezifizieren einen Unterkanal, der dem Adapter 216-219 zugeordnet ist. Das Kanalnummercodieren für den Eingabevorrichtungs-Befehl ID wird durch Verwenden eines Formates mit 10 Bit 0-9 ausgeführt. Die LAC-Platinenadresse ist durch einen Code identifiziert, der sich in den ersten 4 Bit befindet; die Adapterposition ist durch einen Code identifiziert, der 2 Bit in Bitpositionen 4-5 hat; und schließlich ist der Unterkanal auf dem Adapter durch 4 Bit in den Bitpositionen 6-9 identifiziert.
- Eines der Hauptprobleme beim Entwurf der LAC war es, eine residente Kommunikationsschicht-Software in der LAC zu haben, die unverändert sein würde, ungeachtet welcher Typ von LAN-Verbindungen zu dem System gemacht wird. Demgemäß war es notwendig, die residente Software von der LEVEL-6-MEGABUSseite und von den LAN-Schnittstellen zu isolieren. Die Hardware, die ausgewählt wurde, um dies zu tun und dennoch Kommunikation zwischen der LAN und dem LEVEL 6 aufrechtzuhalten, und auch Kommunikation in der LAC-Steuerungseinrichtung selbst, waren die LAC-Steuerblöcke, typischerweise in den Fig. 8 und 9 und den Fig. 10-13 gezeigt.
- Bezugnehmend jetzt auf Fig. 8 ist dort ein LAC-Steuerblock zum Laden/Ausgeben von LAC-Software aus dem Hauptspeicher; zum Ausgeben verschiedener Abschnitte des LAC-RAM 202 in den Hauptspeicher 215 und zum Wiedergewinnen bestimmter Konfigurationsinformation von der LAC gezeigt. Der Betrieb wird über einen Ausgabe-LCB-Zeiger IOLD begonnen, der zuvor beschrieben wurde. Das Format des LAC- Steuerblockes wie in Fig. 8 hat Worte, die 16 Bit breit sind, wobei das erste Wort 801 geteilt ist, so daß die ersten 6 Bit für zukünftige Hardware-Benutzung (RHU) reserviert sind, die nächsten 4 Bit des Wortes 801 zeigen die 4 Bit niedrigster Ordnung der Kanalnummer der CPU 214a, 214b an, die den Lade/Ausgabe-Befehl selbst ausgegeben hat. Die restlichen Bit hoher Ordnung der Kanalnummer der CPU sind immer Nullen und daher sind nur die unteren 4 Bit bereitgestellt. Die nächsten 6 Bit des Wortes 801 zeigen eines von 64 möglichen Unterbrechungsniveaus an, die die CPU verwendet, wenn die Unterbrechung von ihr empfangen worden ist.
- Das Wort 802 spezifiziert eine von derzeit nur drei möglichen Funktionen, die durchgeführt werden können. Es spezifiziert, ob die Operation ein Speichern oder Übertragen der Inhalte des LAC RAM 202 zu dem Hauptspeicher 215 in der CPU sein soll, oder ob es der andere Weg sein soll, wobei die LAC und der RAM von dem DPS6-Speicher geladen werden. Eine dritte Operation ist das Speichern von Konfigurationsinformation in den DPS6-Speicher; die von dem LAC-RAM erhalten worden ist.
- Die Adreßworte 803 und 804 speichern die Adreßabschnitte hoher und niedriger Ordnung der LEVEL-6-Speicheradresse, in der und von der die Daten transferiert werden sollen.
- Das Übertragungsbereichswort 805 ist der Bereich der Übertragung, der ausgedrückt durch die Anzahl von Byte der Information definiert ist, die zwischen der LAC und dem Hauptspeicher übertragen wird.
- Die LAC-RAM-Adreßworte 806 und 807 zeigen den Abschnitt der Adresse hoher und niedriger Ordnung in dem LAC-RAM 202 an, in die, oder von der; die Daten bewegt werden sollen. Im Falle des Informationstyps der Lese-Konfiguration (Read Configuration), wird diese besondere Adresse einbezogen, durch die Tatsache, daß Konfigurationsinformation angezeigt ist. Das RSU-Wort 808 ist für mögliche Softwarebenutzung reserviert, die notwendig wird.
- Das Zustandswort 809 stellt den Zustand betreffend die Information dar; die zu der CPU nach Vervollständigung der Übertragungsoperation geliefert worden ist. Die Operation wird enden, wenn es ein Problem gibt und der Zustand wird in dem Zustandswort 809 angezeigt werden. Wenn es jedoch kein Problem bei der Übertragung gibt, wird das Zustandswort nur Nullen enthalten. Wenn es ein Problem gibt, müssen die 8 Bit höherer Ordnung des Zustandswortes 809 immer noch nur Nullen sein. Das nächste Bit, das das Ungültige-Funktion-Bit ist, wird benutzt, um anzuzeigen, daß die Anforderung irgendwie ungültig ist, und daß vielleicht der Lade/Ausgabe-Funktionscode, der benutzt worden ist, kein definierter Code ist. Zum Beispiel ist das nächste Bit "Speicher erschöpft" MEMEXH und zeigt an, daß mehr als eine Lade/Ausgabe- Funktion ausgegeben worden ist - eine gerade nach der anderen und daher konnte die Steuereinrichtung sie nicht alle handhaben, da sie nur eine solche Funktion auf einmal handhaben kann. Das nächste Bit RAMNE des Wortes 809 ist das RAM-nichtexistent-Bit, das anzeigt, daß die Adresse, die in den Worten 806, 807 definiert ist, auf einen Abschnitt eines nichtexistierenden Speichers in dem LAC-RAM zeigt. Demgemäß zeigt dieses Bit an, daß die Übertragung wegen dieser Schwierigkeiten nicht vervollständigt worden ist. Das nächste Bit RAMP zeigt an, daß während dem Prozeß des Lesens aus dem LAC RAM 202, um diese Information zu dem CPU-Speicher 215 zu übertragen, es einen Paritätsfehler gab. Das MY-Bit des Zustandswortes 809 steht für "Speicher Gelb" (Memory Yellow) und zeigt an, daß während einer Übertragung von Information von LEVEL 6 zu dem LAC-RAM ein Fehler aufgetreten ist bei dem Datenauslesen, aber daß der Fehler korrigierbar war und daher die Daten zu der LAC geliefert worden sind. Dies zeigt eine Warnung an, daß es etwas fehlerhaftes in dem LEVEL-6-Speicher gibt. Das nächste Bit NEM ist ein Acronym für einen nichtexistenten LEVEL-6-Speicher und zeigt an, daß bei Verwendung der Adresse, die durch die Worte 803, 804 gebildet wird, ein Teil eines nichtexistenten LEVEL-6- Speichers 215 adressiert worden ist. Das L6B-Bit zeigt einen LEVEL-6- Bus-Paritätsfehler an, der während der Übertragung von Information von dem LEVEL-6-Speicher zu der LAC aufgetreten ist, und daß der Fehler irgendwo längs dem LEVEL-6-MEGABUS 216 aufgetreten ist, und daß die Daten, die in den LAC-RAM-202 plaziert worden sind, einen Fehler in sich tragen. Das letzte Bit MR des Wortes 809 ist ein Acrorym für "Speicher Rot" (Memory Red) und zeigt an, daß bei der Übertragung des LEVEL-6-Speichers zu dem LAC-Speicher die Information, die aus den LEVEL-6-Speicher ausgelesen worden ist, nicht korrekt war; und nicht mit einer Korrektur-Hardware korrigiert werden konnte, und daß daher die Information, die zu dem LAC-RAM geliefert wurde, nicht korrekt ist. Das MBZ-Wort 810 ist ein Wort, das nur Nullen in sich haben darf, und das für zukünftige Benutzung dient. Schließlich hat das Vervollständigungswort 811 ein "Zustand vollständig"-Bit SC, das durch die LAC-Steuereinrichtung nach Vervollständigung der Operation gesetzt wird, und das verwendet wird, um der LEVEL-6-Software anzuzeigen, daß jeder Zustand, der in Wort 809 ist, den vollständigen Zustand der Operation darstellt.
- Bezugnehmend jetzt auf Fig. 9 ist dort ein anderes Format des LAN- Steuerblockes für den Startbefehl I/O gezeigt, der zuvor beschrieben worden ist. Das Wort 901 ist ein 16-Bit-Wort, in dem die 6-Bit höherer Ordnung wieder für Hardwareverwendung (RSU) reserviert sind, und normalerweise gibt es nur Nullen. Die nächsten 4-Bit identifizieren den CPU-Kanal und kennzeichnen die unteren 4 Bit der Kanalnummer einer CPU, die den Befehl ausgibt, und es ist auch die Kanalnummer; die unterbrochen wird, wenn der Start I/O vollständig ist. Die Niveaunummer von Wort 901 trennt die 6 unteren Bits und zeigt eines der 64 Unterbrechungsniveaus der CPU an, die aktiviert werden, wenn die Operation beendet ist.
- Das RSU-Wort 902 ist ein freier Bereich für Softwareverwendung für irgendeinen Zweck, der notwendig wird. Die Worte 903, 904 stellen die Mikroprozessor-Startadresse dar; bei der der Mikroprozessor 201 das Ausführen eines bestimmten Programmes beginnt. Im allgemeinen wird der Speicher 202 des Mikroprozessors durch eine Ladeoperation geladen sein müssen, bevor der Mikroprozessor gestartet wird, die zuvor in Verbindung mit Fig. 8 beschrieben worden ist, und demgemäß ist es der Zweck des vorliegenden Befehles dem Mikroprozessor mitzuteilen, wo er mit dem Ausführen des Codes, der geladen worden ist, beginnt. Das RSU-Wort 905 ist ein anderes Wort, das für zukünftige Softwarebenutzung reserviert worden ist. Die MBZ-Worte 906, 907 sind zwei Worte, die nur Nullen enthalten dürfen. Das MBZ-Wort 908 hat ein Zustand- Vollständig-Bit (SC), das durch den Mikroprozessor 201 geladen wird, wenn er die Startoperation beendet hat, und das dem zentralen Prozessor anzeigt, wenn er unterbrochen worden ist, daß der Startbefehl I/O korrekt beendet worden ist. Der Rest des MBZ-Wortes 908 besteht nur aus Nullen.
- Bezugnehmend jetzt auf Fig. 10 ist dort eine typische Mailbox-Nachricht gezeigt, die zum Anfordern einer DMA-Operation benötigt wird, um einen Block von Daten, wie z. B. die LAN-Steuerblöcke, die zuvor beschrieben worden sind, zwischen einem Speicher; der sich in der LAC befindet, und einem Speicher; der sich in LEVEL 6 befindet, zu bewegen; d. h. vom RAM 202 zu dem RAM 215. Der Nachrichtenanfangsblock 1001 enthält gewöhnlicherweise einen Typcode, der exakt definiert, welche Art von Übertragung angefordert worden ist; d. h. eine Blockübertragung, wie z. B. einen LAN-Steuerblock, usw. Im allgemeinen besteht der Nachrichtenanfangsblock aus mehreren Informationswörtern, obwohl Fig. 10 zeigt, als ob er nur aus einem Wort bestehen würde. Das RHU-Wort 1002 ist fuhr die Hardwarebenutzung reserviert und dient als zusätzlicher freier Raum für zukünftige Verwendung. Nach dem Beenden einer Operation, wie z. B. einer Blockübertragung, kann es sein, daß die CPU, die eine solche Übertragung anfordert, unterbrochen werden muß, und darüber informiert werden muß, was geschehen ist. Das Wort 1003 spezifiziert die Parameter; die benutzt werden müssen, wenn solch eine Unterbrechung benötigt wird. Eine Unterbrechung kann jedoch nur gesandt werden, wenn das Niveau, das aus den unteren 6 Bit des Wortes 1003 besteht, nicht nur 0 ist. Die LAC-Kanalnummer besteht aus den 6 Bit höherer Ordnung des Wortes 1003 und wird bei der Unterbrechung für den spezifischen Kanal verwendet, der ursprünglich durch den Befehl adressiert worden ist, den die CPU zu der LAC gegeben hatte. Die CPU-Kanalnummer des Wortes 1003 ist im wesentlichen die gleiche wie die der in Fig. 8 und 9 und ist ein 4-Bit-Wort, das die Kanalnummer der CPU definiert, die unterbrochen werden soll. Schließlich ist das Niveau-Wort ein 6-Bit-Wort, das das Niveau der Unterbrechung definiert. Die Rücklauf-Mailboxworte ID 105 und 106 identifizieren die Mailbox 202a in der LAC, die tatsächlich nach der durchzuführenden Operation gefragt hat, und daher den Prozeß darstellt, der angezeigt werden soll, wenn die Operation selbst beendet ist. Das Zustandswort 1007 wird durch den Speicher-DMA-Prozeß zurückgegeben, wenn die Operation beendet ist. Die Definition der Bit ist ähnlich dem Zustandswort 809 der Fig. 8. Die Speicheradreßworte 1008 und 1009 der LEVEL 6 definieren die Abschnitte hoher und niedriger Ordnung der Speicheradresse der LEVEL 6, in denen, oder von denen, die Übertragung bewerkstelligt werden. Das Bereichswort 1010 definiert, wieviele Worte/Byte übertragen werden sollen bei der Operation. Die LAC-RAM-Adreßworte 1011 und 1012 definieren die Adresse in dem RAM der LAC, wo die Information gehalten werden soll, oder wo sie hingeliefert werden soll. Das RSU- Wort 1013 ist zur zukünftigen Hardwarebenutzung reserviert.
- Bezugnehmend jetzt auf Fig. 11 ist dort eine Mailbox-Nachricht gezeigt, die zu einem Softwareprozeß einer Adapterschnittstelle gesendet wird als eine typische Datenübertragungsanforderung zum Übertragen einer Nachricht auf dem LAN. Dies paßt verschiedene Typen von LAN an, die Schnittstellen gemäß dem IEEE-Standardisierungskommittee haben. Der Nachrichtenanfangsblock 1101 enthält mehrere Informationsbit, wie z. B. einen Typcode, der die Art der Nachricht definiert, die übertragen werden soll, einen Pufferadreß-Deskriptor; der definiert, wo die Daten, die über das lokale Netzwerk ausgesandt werden sollen, in dem RAM 202, 214 angeordnet sind. Ein Rahmensteuerwort 1102, das aus den 8 Bit niedriger Ordnung besteht, wird verwendet, um den Rahmenbus in Rahmen vom Token-Bus- oder Token-Ring-Typ anzuzeigen. Das RSU- Wort 1103 ist ein Bereich, der zur Softwarebenutzung reserviert ist. Die Rücklauf-Mailbox-ID-Worte 1104, 1105 identifizieren die Mailbox des Prozesses, der gefragt worden ist, die Übermittlung/Übertragung auszuführen, so daß eine Nachricht in der Mailbox abgelegt wird, so daß der Prozeß identifiziert werden kann, wenn die Operation beendet ist.
- Ein Zustandswort 1106 ist grundsätzlich durch alles definiert, was die Software bestimmt, wenn sie zurückkehren will. Das Typ/Datenlängenwort 1107 wird in CSMA/CD- und Ethernet-Rahmen verwendet. In dem Falle, bei dem ein LAN vom Ethernet-Typ zu der LAC gekoppelt ist, zeigt es die Länge des Rahmens an; wohingegen, wenn ein LAN vom CSMA/CD-Typ zu der LAC gekoppelt ist, es den IEEE-802.3-Rahmentyp anzeigt, der verwendet wird. Das Bestimmungsadreßwort 1108 definiert die Stationsadresse, zu der eine Nachricht gesandt werden soll. Schließlich ist das RSU-Wort 1109 ein Bereich, der zur Softwareverwendung reserviert ist.
- Bezugnehmend jetzt auf die Fig. 12 und 13 ist dort der Ort und das Layout des RAM-Speicherbereiches gezeigt, der als die zeitweilige Warteschlange des I/O-Befehles zugewiesen ist. Fig. 12 zeigt unterschiedliche Schlangen, die von 1201 bis 1204 numeriert sind, angeordnet an Byte-Adressen 800400-800700. Fig. 13 zeigt einen typischen Eintrag in einer der Schlangen. Das Wort 1201 zeigt die Kanalnummer; die zeitweilig gespeichert ist; wohingegen die Adreßworte 1202,1203 die Adressen hoher und niedriger Ordnung der Information zeigen, die in den Hauptspeicher übertragen werden sollen. Das Bereichswort 1204 zeigt die Anzahl von Byte in der Information an, die übertragen werden soll.
- Die Fig. 14 bis 18 sind ein Satz von Flußdiagrammen, die im größeren Detail die funktionalen Verantwortlichkeiten auf hohem Niveau der verschiedenen IF-Softwareprozesse und Unterbrechungsroutinen zeigt.
- Bezugnehmend jetzt auf Fig. 14 ist dort das Flußdiagramm der Operationen gezeigt, die von dem I/O-Abfertigungsprozeß in der LAC-Steuereinrichtung durchgeführt werden. Die Unterbrechungs-Latenz 1401 stellt den Betrag an Mikroprozessorzeit dar; bevor eine I/O-Befehlsunterbrechung durch diese Routine bedient werden kann. Wann immer ein I/O- Befehl von der LAC-Steuereinrichtung empfangen wird, gibt es eine endliche Zeit für den Mikroprozessor 201, um auf ihn zu reagieren und Operationen zu schalten, so daß er die Unterbrechung handhaben kann. ALLOCATE MBX blk 1402 ist ein Aufruf an die Kernroutinen-Software der LAC-Steuereinrichtung, um einen Nachrichtenblock zuzuteilen, so daß der I/O-Abfertigungsprozeß einen anderen Prozeß in der LAC-Steuerungseinrichtung über den IOLD Befehl benachrichtigen kann, der gerade empfangen worden ist. Die tatsächlichen Operationen, die von dem Abfertigungsprozeß durchgeführt werden, sind durch die Index-zu-Abfertigungstabellen 1403 definiert. Die Abfertigungstabellen sind mittels der Kanalnummer indexiert, an die der I/O-Befehl adressiert ist, genauso wie der Funktionscode der Teil des I/O-Befehles ist, und oben diskutiert worden ist. Demgemäß wird der Abfertigungsprozeß indexiert unter Verwendung der Abfertigungstabellen, um herauszufinden, welcher Prozeß benachrichtigt werden soll. Wenn es keinen Prozeß gibt, der benachrichtigt werden soll, dann wird die Anweisung zu einem MEGABUS- Schichtmanagement durch Zusammenfügen einer Abfertigungsnachricht 1405 und Senden dieser Nachricht in den nächsten Schritt SENDMSG 1407 abgefertigt. Der I/O-Befehl wird dann zu einem Schichtmanagementprozeß gesandt, der die Verantwortung hat zu entscheiden, was mit ihm zu tun ist. Angenommen eine gültige Mailbox ID wird gefunden 1404, dann fügt der Prozeß eine Zusammenfüg-Abfertigungs-Nachricht 1406 zusammen, die die IOID-Information enthält, und die Nachricht wird über SENDMSG 1408 zu dem bestimmten Prozeß gesandt, der identifiziert worden ist, damit er sie handhaben kann. Im normalen Falle einer DMA-Nachricht würde sie normalerweise entweder zu dem Transport/Übertragungs-Prozeß oder dem Transport/Empfangs-Prozeß gesandt werden, abhängig davon, ob es ein I/O-Befehl für eine Eingabe- oder eine Ausgabeoperation ist. Wenn es keine Befehle mehr gibt, die empfangen worden sind, während dieser Prozeß lief, als es Einträge in der Warteschlange, 1409, gibt, dann wird der Abfertigungsprozeß zurückspringen zu ALLOCATE MBX blk 1402 und den Prozeß für den nächsten Befehl wiederholen. Wenn es keine Einträge in der Schlange 1409 mehr gibt, dann endet der Abfertigungsprozeß bei 1410.
- Bezugnehmend jetzt auf die Fig. 15 und 16 ist dort das Flußdiagramm des DMA-Prozesses gezeigt, der auf der LAC-Steuereinrichtung läuft. Es gibt tatsächlich zwei Teile für diesen Prozeß. Ein Teil ist in Fig. 15 gezeigt, der der Abschnitt des Speicher-DMA-Prozesses ist, der nach einer Unterbrechung nach Vervollständigung einer DMA-Operation läuft. Der andere Teil des Prozesses, der in Fig. 16 gezeigt ist, hängt davon ab, ob die Mailbox 202a irgendeine Anforderung empfangen hat oder ob nicht.
- Bezugnehmend zuerst auf Fig. 16 beginnt die Operation, wenn eine Anforderung für eine Speicher-DMA-Operation von einem der Prozesse in der LAC-Steuereinrichtung empfangen worden ist. Damit dieser Prozeß zu laufen beginnt, ist es notwendig zuerst CONTEXT SW 1601 auszulagern. Ein Kernroutinen-Softwareaufruf BRECV 1602 wird dann gemacht, um zu bestimmen, ob irgendeine Anforderung in ihrer eingehenden Mailbox ist. Wenn es keine Anforderung für den Prozeß gibt, eine Operation durchzuführen, dann wird der Prozeß verzögert und wird nicht weiter fortfahren als bis zur BRECV-Anweisung 1602. Wenn es eine Anforderung für eine Operation gibt, wird eine Semaphore-Kontrolle SEMAWAIT 1603 durch einen Aufruf zu der O.S.-Kernroutine gemacht, die alle Semaphore hält für den Unterbrechungsprozeß, um sicherzustellen, daß der Unterbrechungsprozeß nicht schon eine andere Operation bezüglich der DMA-Steuereinrichtung durchführt; d. h. schon eine DMA- Operation unterwegs ist. Wenn es keine derzeitige DMA-Operation unterwegs gibt, dann wird der Prozeß zu Schritt 1604 fortfahren, wo er die MEG ABUS-Register und die DMA-Steuereinrichtung mit der notwendigen Information lädt, um einen DMA-Transfer durchzuführen. Nach Vervollständigung dieser Ladeoperation setzt der Prozeß dann ein Semaphorebit SEMAWAIT 1605 (mittels einem Aufruf zu der O.S.-Kernroutine) des Semaphore, das zuvor in Schritt 1603 kontrolliert worden ist, so daß keine weiteren DMA-Operationen durchgeführt werden, während das Semaphorebit gesetzt ist. In Schritt 1606 wird ein Flag (Flags) überprüft, um zu sehen, ob irgendwelche Unterbrechungen, die für vervollständige Operationen erforderlich sind, noch eine Akzeptanz von der CPU erwarten (d. h. "anhängig sind"); wenn sie nicht anhängig sind, wird eine Mailbox-Rücklaufnachricht zu dem Prozeß gesandt, der die Operation anforderte. In dem Schritt 1607 SENDMSG RETURN MBX wird eine Rücklaufnachricht (Nachrichten) für die DMA-Operation(en) gesandt, die vervollständigt worden sind. (Es ist nicht ein Rücklauf für die besondere DMA-Operation, die gerade gestartet worden ist.) Die Software springt dann zurück zu BRECV 1602 und wartet, wenn es keine Anforderung für sie gibt, eine Operation durchzuführen. Wenn eine andere Anforderung wartet, wird sie auf SEMAWAIT 1603 verzögern, das das Semaphore ist, das gerade in Schritt 1605 gesetzt worden ist, wenn die Operation gestartet wurde. Wenn die besondere DMA-Operation beendet ist, wird der Prozeßfluß dann zu Fig. 15 schalten. Wieder einmal gibt es eine Unterbrechungs-Latenz 1501, bevor die Unterbrechung erkannt ist und zu laufen beginnt. Wenn einmal der Prozeß übernimmt, wird ein Test 1502 gemacht, um zu bestimmen, ob der Prozeß Datentransfere vom Streuen/- Sammeln-Typ zwischen LEVEL 6 und der LRC-Steuereinrichtung handhaben kann. Wenn dies eine Operation vom Streuen/Sammeln-Typ ist, dann fährt die Operation über die Schritte 1503,1507 und 1511 fort, wo die DMA-Steuereinrichtung aufgebaut hat, so daß der Prozeß fortfahren kann mit der Streuen/Sammeln-Operation der zusätzlichen Übertragungen, die notwendig sind. Wenn nur ein Transfer gemacht werden soll, weil es keine Datenübertragungen vom Streuen/Sammeln-Typ gibt, dann schreitet der Prozeß fort zur Fehlerkontrolle 1504, um zu bestimmen, ob es irgendwelche Fehler gab, wie z. B. Paritätsfehler oder nichtexistierende Speicher. Wenn es irgendwelche Fehler gab, wird eine Zustandsnachricht 1505 zusammengesetzt worden sein bezüglich dem Fehlertyp, der aufgetreten ist. Ein Flag ist bei 1508 gesetzt, um anzuzeigen, daß eine Nachricht zu dem anfordernden Prozeß zurückgegeben werden kann (Dieses Flag ist das gleiche Flag, auf das sich in Schritt 1606 bezogen wird).
- Das Semaphore, auf das sich in Schritt 1603 bezogen wurde, wird jetzt in Schritt 1509 freigegeben, so daß der zweite Abschnitt des Prozesses laufen kann und die nächste Operation handhaben kann, und bei Schritt 1512 aussteigen kann. Wenn es keine Fehler in Schritt 1504 gibt, wird eine Kontrolle in Schritt 1506 gemacht, um zu bestimmen, ob LEVEL 6 nach Beendigung der Operation unterbrochen werden soll oder nicht. (Dies wird durch einen Niveaucode in der DMA-Anforderung bestimmt, der zuvor erwähnt worden ist, der anzeigt, daß es eine Anforderung nach einer Unterbrechung gibt). Wenn es keine Fehler gibt, dann wird die Unterbrechung von LEVEL 6 durchgeführt werden (oder versucht) in Schritt 1510, um dem LEVEL-6-System anzuzeigen, daß eine DMA- Operation ohne Fehler beendet worden ist. Wenn es einen Fehler in der Operation gab, wird die Unterbrechung nicht versucht. Anstelle dessen wird eine Zustandsnachricht 1505 zurück zu dem anfordernden Prozeß gesandt, um ihm anzuzeigen, daß es einen Fehler in der Operation gab.
- Bezugnehmend jetzt auf Fig. 17 ist ein Flußdiagramm der Adapterunterbrechungsroutine zum Unterbrechen der LAC-Steuereinrichtung gezeigt. Sie wird durch die LAC-Steuereinrichtung aktiviert, wenn einer der Adapter 216-219 eine Unterbrechung zu der LAC-Steuereinrichtung gesandt hat, die anzeigt, daß er eine Operation beendet hat, oder daß etwas Ungewöhnliches geschehen ist, und daß er einen Softwareprozeß bezüglich dieses Punktes benachrichtigen will. Demgemäß gibt es in der Schleife, die aus den Schritten 1701, 1702, 1703, 1705 und 1704 besteht, eine Schleife, wo die Unterbrechungssoftware bestimmt, welcher der Adapter die Unterbrechung ausführt. Da die Unterbrechungen von allen vier möglichen Adaptern zusammengebunden auf einem einzelnen Draht sind, muß die Software jeden Adapter abfragen, ob er der Adapter ist, der eine Unterbrechung anfordert oder nicht. Demgemäß zeigt die Schleife ein Testen jedes Adapters und ein Versuchen zu bestimmen, welcher Adapter die Unterbrechung anforderte. Wenn sie den bestimmten Adapter (die Adapter) bestimmt, der die Unterbrechung gemacht hat, dann zweigt die Unterbrechungsroutine ab zu den Schritten 1706, 1707, 1708 und stellt eine Nachricht (Nachrichten) zusammen, die von dem Grund für die Unterbrechung (Unterbrechungen) abhängt. In SENDMSG MAC N TX 1707 wird eine Nachricht von einem Adapter gesandt, der gerade eine Übertragungsanforderung beendet hat, die von ihm angefordert wurde. SENDMSG MAC N RX 1708 stellt die Tatsache dar, daß ein Adapter eine eingehende Nachricht von dem LAN empfangen hat, und daß der Adapter daher wünscht, eine Mailboxnachricht zu senden, um die besondere Situation zu handhaben. SENDMSG MAC N LM 1706 stellt das Auftreten eines Ereignisses dar und das Senden einer Mailboxnachricht zu einem Managementprozeß einer MAC-Schicht, um das Ereignis zu handhaben. Schließlich steigt nach Beendigung des Sendens einer Nachricht die Unterbrechungsroutine bei Schritt 1709 aus.
- Bezugnehmend jetzt auf Fig. 18 sind dort einige Adapter-spezifische MAC-Prozesse gezeigt und der Fluß von drei unterschiedlichen MAC Prozessen für einen bestimmten Adapter dargestellt. Der Prozeß wird wieder einmal über einen Kontextschalter 1801 eingeleitet, der alle Mailboxnachrichten empfängt oder kontextschaltet, um ihn zu empfangen. Einer der Prozesse BRECV MAC LM 1802, BRECV MAC RX 1803 oder BRECV MAC TX 1804 wird aktiviert werden, wenn er eine Mailboxnachricht in seiner Mailbox von dem Adapterunterbrechungsprozeß, der in Fig. 17 gezeigt ist, empfängt. Nur einer dieser Prozesse wird bei Empfangen einer Nachricht aktiviert werden. Die MAC-Schichtverwaltung 1802, 1805, wenn aktiviert, wird eine Aktion übernehmen, abhängig von den Umständen, wie z. B. Mitteilen des Stationsverwaltungsprozesses durch Senden einer Nachricht zu ihm oder sie kann einfach den Adapter selbst zurücksetzen. Wenn eine Nachricht BRECV MAC RX 1803 empfangen wurde, ersetzt der Prozeß die Puffer 1806, die der MAC-Adapter beim Handhaben der Nachricht aufgebraucht hat. Der MAC-Adapter hat eine vorbestimmte Anzahl von Puffern, die verfügbar sind, um Daten darin zu plazieren, und diejenigen, die für eingehende Nachricht verwendet worden sind, müssen ersetzt werden, damit der Adapter bereit für weitere Nachrichten sein kann. Ist dies einmal vervollständigt, dann bestimmt der Prozeß, ob es jetzt irgendwelche Fehler in der Nachricht oder in dem Adapter 1808 gibt, oder ob nicht. Wenn es Fehler gibt, wird die Nachricht ausgeschieden, 1811. Wenn es keine Fehler gibt, dann streift der Prozeß den MAC-Anfangsblock 1814 ab, um das Senden dieser Nachricht zu dem Softwareprozeß der Steuerschicht der logischen Verbindung für weiteres Handhaben vorzubereiten. (Es ist einer der CS-Softwareprozesse in 301). In dem Zuordnungsschritt 1815 wird ein Speicherblock zum Zweck des Aufbauens einer Mailboxnachricht zugeordnet. Dann wird die Nachricht in Schritt 1816 zusammengefügt und zu dem Steuerprozeß der logischen Verbindung in Schritt 1818 gesandt. In den Schritten 1819 und 1820 erhält der MAC-Prozeß freie Puffer; wenn notwendig, im Vorgriff auf möglichen zukünftigen Bedarf von Ersatzpuffern für den Adapter.
- Wenn eine Übertragungsoperation durchgeführt worden ist, wird eine Nachricht durch BRECV MAC TX 1804 empfangen, die die Beendigung der Übertragungsoperation anzeigt. Die Nachricht wird begutachtet, um zu entscheiden, welcher Typ von Nachricht es ist, d. h. ob die Nachricht von der Adapterunterbrechungsroutine empfangen worden ist, die die Beendigung anzeigt, oder ob die Nachricht von der Verbindungsschichtsteuerung (LLC) empfangen worden ist, die anfordert zu übertragen. Angenommen, die Nachricht ist eine Vervollständigungsnachricht, dann wird eine Vervollständigungs-Rücklaufnachricht in Schritt 1810 zusammengefügt und zu der LLC in Schritt 1813 gesandt. Ist dies einmal geschehen, dann kann der Prozeß bestimmen, ob es mehr Nachrichten gibt, oder ob nicht, die in seiner Schlange 1824 zu übertragen sind. Wenn es zusätzliche Nachrichten gibt, dann fährt der Prozeß zu Schritt 1825 weiter; wo die Anforderung zu dem Adapter ausgegeben wird, so daß er die Nachricht, die wartet, übertragen kann. Wenn es in Schritt 1824 bestimmt ist, daß keine Nachrichten in der Warteschlange warten, wird ein Adapter-Wartebit, 1826, gesetzt, das einfach anzeigt, daß der Adapter nicht länger beschäftigt ist irgendetwas zu tun, und daß es eine Schleife zurück zu der Empfangsmailbox von BRECV MAC TX 1804 gibt. Auf der anderen Seite, wenn eine Anforderung von der LLC für eine Übertragung empfangen worden ist, dann werden die notwendigen Anfangsblöcke, die die Quelladresse der MAC definieren, die die Übertragung ausführen wird, in Schritt 1809 hinzugefügt und das Adapterwartebit wird in Schritt 1812 überprüft, um zu bestimmen, ob die Anforderung hereinkam oder ob nicht, während der Adapter überhaupt nichts tat. Im Falle, daß der Adapter darauf wartete etwas zu tun, wird der Prozeß zu Schritt 1821 fortschreiten und unmittelbar die Übertragungsanforderung zu dem Adapter senden und das Adapter-Wartebit 1823 zurücksetzen, das anzeigt, daß der Adapter jetzt beschäftigt ist. Auf der anderen Seite, wenn es in Schritt 1812 bestimmt ist, daß die Anforderung hereinkam, wenn der Adapter schon damit beschäftigt war etwas zu tun, dann wird die Anforderung zu der Warteschlange des Adapters, 1827, zugefügt.
- Bezugnehmend jetzt auf Fig. 19 ist dort der LAC-Übertragungsfluß gezeigt. In Schritt 1 baut LAC-Treibersoftware in der CPU 214a/b den LCB 1902 in dem Speicher aus Information in der IORB 1903 auf. Der LCB wird Information, die die Verarbeitung und die erforderliche Funktion definiert und Parameter enthalten; er enthält auch physikalische Adressen und Bereiche, die die Puffer in dem Speicher definieren, der die zu sendenden Daten enthält. Der LCB umfaßt auch Raum für einen Rücklaufzustand von der LAC.
- In Schritt 2 gibt der LACS-Treiber 1901 einen Eingabe/Ausgabe-Ladebefehl (IOLD) zu der LACS aus. Die Adresse, die mit dem Befehl gegeben wird, zeigt auf den LCB und der "Bereich"-Parameter enthält zwei Felder: die 8 Bit höher er Ordnung sind ein Funktionscode-Feld und die 8 Bit niedriger er Ordnung definieren die Größe des Codes LCB. Die IOLD-Information wird von dem MEG ABUS 216 genommen und in einer temporären Warteschlange 1902 von der LAC-Hardware-DMA- Steuereinrichtung plaziert. Dies veranlaßt eine Unterbrechung, die den I/O-Abfertigungsprozeß (IODISP) aufruft, der den Befehl begutachtet; wenn er bestimmt hat, daß der IOLD gültig ist, verwendet er die Kanalnummer in dem Befehl, um eine Abfertigungstabelle zu bezeichnen und um zu bestimmen, wohin der Befehl für das weitere Verarbeiten geleitet werden soll. In diesem Falle erzielt die Routine einen RAM-Block (über einen ALLOC ATE-Aufruf), plaziert die LCB-Zeiger-IOLD-Information in dem Block und sendet ihn (über einen SENDMSG-Aufruf) zu einer CS- Prozeßmailbox. Das Format des Nachrichtenblocks der LCB-Zeiger-IOLD- Information ist zuvor diskutiert worden. Wenn es zusätzliche I/O-Befehle in der Warteschlange gibt, wird der I/O-Abfertigungsprozeß diese auch handhaben. Alle Nachrichtenblöcke, die durch den I/O-Abfertigungsprozeß erhalten wurden, müssen zu einem freien Speicher durch andere Prozesse zurückgeführt werden (z. B. in Schritt 12).
- In Schritt 3 wird ein CS-Prozeß 1905 zur Ausführung durch das OS abgewickelt (wegen der Mailboxnachricht, die an ihn adressiert ist); der Prozeß gewinnt die Mailboxnachricht zurück und sendet nach dem Anbringen eines RAM-Block es für ein LCB-Bild (LCBI) 1907 eine Nachricht zu der Mailbox des Speicher-DMA-Anforderungs-Prozesses 1906, der seine DMA des LCB in diesem LCBI anfordert. Der CS-Prozeß 1905 kann dann sich selbst anhalten, wenn er für den Augenblick nichts anderes zu tun hat.
- In Schritt 4 veranlaßt der Speicher-DMA-Anforderungsprozeß 1906 die DMA-Steuereinrichtung dazu, den LCB 1902 in das LCBI 1907 zu kopieren. Nach Beendigung der Operation unterbricht die DMA-Steuereinrichtung den Mikroprozessor 201 und dies veranlaßt, daß der Speicher DMA-Prozeß wieder aufgerufen wird. Dieser Prozeß plaziert Zustandsinformation in den Nachrichtenblock, der durch den CS-Prozeß gesandt worden war und gibt dann den Block (über einen SENDMSG-Aufruf) zu der spezifizierten Rücklaufmailbox zurück. Information, die ursprünglich in dem RSU-Feld des Blockes durch den CS-Prozeß in Schritt 3 plaziert worden ist, erlaubt ihm die bestimmte DMA-Operation zu identifizieren, die beendet worden ist.
- In Schritt 5 antwortet der CS-Prozeß auf die Mailboxnachricht von Schritt 4. Nach dem Begutachten des LCBI und Berechnen der Gesamtheit der U-Pufferbereiche führt er einen GETBUF-Aufruf durch, um einen RAM-Puffer zu erhalten, der groß genug ist, um die Datennachricht zu erhalten; dann sendet er eine Mailboxnachricht zu dem Speicher-DMA-Prozeß, um die Bewegung von Daten von einem Hauptspeicher zu diesem Puffer im RAM zu veranlassen. Das Format typischer Nachrichtenblöcke ist in den Fig. 10 und 11 gezeigt; die LB-Pufferliste wird von dem LCBI 1907 erhalten und das NIVEAU-Feld sollte Null sein.
- In Schritt 6 veranlaßt der Speicher-DMA-Prozeß die DMA-Steuereinrichtung 208 die Daten von dem Hauptspeicher zu dem RAM-Puffer 209 zu kopieren. Der Prozeß wird einen DMA vom "Sammel"-Typ unterstützen bezüglich dem Hauptspeicher; wenn erforderlich; bezüglich dem LAC RAM ist ein DMA immer auf einem logischen Einzelpuffer gemacht. Nach Beendigung des DMA wird der Speicher-DMA-Prozeß wieder aufgerufen und plaziert einen Zustand in den Nachrichtenblock und gibt ihn zu der spezifizierten Rücklaufmailbox zurück (des CS-Prozesses).
- In Schritt 7 antwortet der CS-Prozeß auf die Mailboxnachricht von Schritt 6. Er sendet eine Mailboxnachricht zu dem Speicher-DMA-Prozeß 1906, um ihn zu veranlassen, den Zustand vollständig in dem LCB 1902 im Speicher zu setzen und die CPU 214a/b zu unterbrechen. Zu einem etwas späteren Zeitpunkt wird der LACS-Treiber die Vervollständigung in den IORB 1903 eingeben. Wenn eine Nachricht über ein LAN vom IEEE 802-Typ gesandt werden soll, müssen die CS-Prozesse Anfangsblockfelder erzeugen und diese als eine Prefix-Information zu dem RAM- Puffer 209 addieren. CS-Prozesse müssen auch übrigen zusätzlichen Raum am Anfang des Puffers für den MAC-Prozeß haben, um dessen Anfangsblöcke mit einem Vorsatz zu versehen. Ein CS-LLC-Prozeß setzt eine Mailboxnachricht 1908 zusammen und sendet sie 1909 zu dem geeigneten MAC-Prozeß.
- in Schritt 8 kann der MAC-Übertragungsprozeß die Anforderung in eine Warteschlange leiten, wenn es Anforderungen mit höheren Prioritäten gibt, die gehandhabt werden sollen. Sobald er kann, liefert der Prozeß die Anforderung zu den Adaptern 216-219. Der Adapter vervollständigt das Versehen des Nachrichtenrahmens (SA und FC) mit einem Vorsatz, und wenn es die Medienzugriffsregeln erlauben, liefert er einen korrektformatierten Rahmen (einschließlich einem Vorspann, Begrenzern und FCS) zu dem LAN über die PHYS-Schichteinrichtungen des Adapters. Wenn die Übertragung beendet ist, sendet die DMA -Steuereinrichtung des Adapters eine Unterbrechung zu dem Mikroprozessor 201 des LAC.
- In Schritt 9 ruft die Adapterunterbrechungsroutine einen MAC-Übertragungsprozeß auf, der einen Endstatus von dem Adapter holt. Der MAC-Übertragungsprozeß gibt den RAM-Puffer frei (FREEBUF-Aufruf). Wenn andere Übertragungsanforderungen anhängig sind, wird der Prozeß eine zu dem Adapter liefern.
- In Fig. 19 gibt es, obwohl der gerade beschriebene Übertragungsfluß einen einzelnen Auftragsfluß zur Klarheit darstellt, tatsächlich vielfache Aufträge, die an verschiedenen Stufen zu jedem Zeitpunkt verarbeitet werden. Da jeder Softwareprozeß geschrieben ist, damit er alle seiner noch ausstehenden Aufgaben beendet, wenn möglich bevor freiwillig der Mikroprozessor abgegeben wird, wird die Anzahl von Kontext-Umschaltungen, die pro übertragene Nachricht durchgeführt werden, dazu tendieren, weniger unter typischer Belastung zu sein, als wenn nur ein einzelner Nachrichtenauftrag betrachtet wird.
- Zum Handhaben empfangener Nachrichten kann eines der beiden Schemen verwendet werden, abhängig davon, ob die Anwendung wünscht, einen Puffer nur dann zuzuordnen, wenn eine Nachricht von dem LAN empfangen wird, oder ob sie wünscht einen Puffer zuzuordnen im Vorgriff auf eine mögliche eingehende Nachricht. In dem ersten oder Lesen- Mitteilen-Fall müssen zwei IOLD ausgegeben werden, und zwei Unterbrechungen müssen zu der CPU für jede Nachricht gesandt werden. In dem zweiten Fall tendieren die Raumanforderungen des Hauptspeichers dazu größer zu sein wegen der Puffer, die ungebunden auf eine Nachricht warten.
- Die Beschreibung des Empfangsflusses wird nicht in so großem Detail gegeben werden, wie in dem Übertragungsfall, da die Interaktionen der CS-Softwareprozesse, der IF-Softwareprozesse, der Hardwareunterbrechungen und der Unterbrechungsfirmware ähnlich sind.
- Für eine Empfangsoperation ist es nicht notwendig, daß die CS-Software Datenpuffer von der Speicherverwaltung anfordert, wie es der Fall für die Übertragungsoperation ist. Anstelle dessen werden die IF-Software- MAC-Prozesse automatisch mehrere logische Puffer für jeden Adapter verfügbar machen, von denen jeder von ausreichender Größe ist, um die größtmögliche Nachricht zu halten. Nachdem eine gültige Nachricht empfangen worden ist, wird die Datenanzeige-Routine des MAC-Prozesses den Puffer zu dem eigentlichen CS-Prozeß übergeben.
- In dem Lese-Mitteilen-Fall, gezeigt in Fig. 20, gibt die CPU-Software eine Serie von LCBs aus, die "Lese-Mitteilen"-LCB 2002 genannt werden, zu der LAC über Ausgabe-LCB-Zeiger-IOLD-Befehle. Diese dienen dazu, LCB bereitzustellen, die die CS-Software benutzen kann, um der CPU- Software die Ankunft von Nachrichten mitzuteilen. Wenn die Ankunft einer Nachricht angezeigt worden ist durch diese Einrichtung, wird die CPU-Software ein Lese-LCB ausgeben, um zu spezifizieren, wo die Nachricht in dem Hauptspeicher plaziert werden soll, und wird auch im allgemeinen einen anderen Lese-Mitteilen-LCB ausgeben, um den einen zu ersetzen, der benutzt worden ist. Dieses Schema erlaubt, daß die Daten direkt zu dem Anwendungspuffer eingegeben werden. Lese-LCB werden von Lese-Mitteilungs-LCB durch eine Software-definierte Anzeige in dem LCB selbst unterschieden.
- In Schritt 6 konsultiert ein CS-Prozeß 2006 seine Liste von Lese-Mitteilen-LCB, um zu sehen, ob es einen gibt, der zu der bestimmten gerade empfangenen Nachricht gehört. Wenn es keine gibt, wird die Nachricht im RAM zurückgehalten (wenn jedoch eine vernünftige Zeitspanne ohne einen geeigneten LCB vergeht, kann der Prozeß gezwungen sein, die Nachricht aufzugeben). Im gewöhnlichen Falle setzt ein CS- Prozeß Information von dem Nachrichtenanfangsblock 1001 zusammen, der zu der LCB im Speicher 215 geliefert werden soll, setzt einen Mailboxnachrichtenblock zusammen und sendet ihn zu dem Speicher- DMA-Prozeß 2007, der einen DMA dieser Information in den Lese- Mitteilen-LCB 2002 anfordert. In dem Nachrichtenblock reflektieren die CPU-Kanal- und Unterbrechungs-NIVEAU-Felder Information, die in dem ursprünglichen IOLD und LCB gegeben wurden, wie dies die Kanalnummer tut. (siehe Fig. 8).
- In Schritt 7 liefert die DMA-Steuereinrichtung 2007 die Information zu dem Lese-Mitteilen-LCB 2902 und unterbricht den Mikroprozessor 201, wodurch sie ihn dazu veranlaßt, den Speicher-DMA-Prozeß 2007 wieder aufzurufen. Dieser Prozeß sendet jetzt die angeforderte Unterbrechung zu der CPU, und wenn dies ausgeführt worden ist, führt sie den Nachrichtenblock von Schritt 7 zu der Rücklaufmailbox zurück (der CS-Prozeß).
- In Schritt 8 antwortet die CPU-Software auf die Unterbrechung und bestimmt durch Konsultieren einer Liste von ausstehenden IORB oder durch andere Mittel, wo die Datennachricht in dem Hauptspeicher plaziert werden soll. Der LACS-Treiber 2001 baut dann ein Lese-LCB in dem Speicher auf. Dieser LCB wird den Identifizierer von Schritt 6 enthalten (so daß der CS-Prozeß in der LAC identifizieren kann, welche Datennachricht geliefert werden soll) und spezifiziert den Hauptspeicherbereich (Hauptspeicherbereiche), in den sie plaziert werden soll.
- In Schritt 9 gibt der LACS-Treiber 2001 ein IOLD zu dem LACS aus, der auf den LCB zeigt. In der gewöhnlichen Weise liefert die IF-Software die LCB-Zeigerinformation 2005 zu dem CS-Prozeß 2006.
- In Schritt 10 gibt der CS-Prozeß eine Anforderung für den Speicher- DMA-Prozeß aus, den LCB in einen LCBI 2008 im RAM zu kopieren.
- In Schritt 12 inspiziert der CS-Prozeß den LCBI und bestimmt, daß eine Leseoperation betroffen ist. Der Prozeß berechnet die Gesamtgröße des L6-Puffers und berechnet einen Bereichrückstandswert für den LCB- Zustand und plaziert einen Endzustand in dem LCBI 2008. Er gibt dann eine Anforderung zu dem Speicher-DMA-Prozeß aus, um die Datennachricht von dem RAM 209 zu dem Hauptspeicher 215 zu bewegen, und um einen Endzustand von dem LCBI zu dem LCB zu liefern und die CPU zu unterbrechen.
- In Schritt 13 kopiert die DMA-Steuereinrichtung die Daten 2012 von dem Puffer RAM zu dem Hauptspeicher; wobei ein "Streu"-DMA ausgeführt wird, wenn erforderlich, unter Steuerung des DMA-Prozesses. Bei erfolgreicher Beendigung des Datentransfers führt der DMA-Prozeß einen Blocktransfer durch, der den LCBI-Zustand in den LCB kopiert und die CPU unterbricht. Nach Beendigung dieses führt der Speicher-DMA- Prozeß den Mailboxnachrichtenblock zu der Rücklaufmailbox zurück (der CS-Prozeß).
- In Schritt 14 kann der CS-Prozeß den Datenpuffer freigeben, den LCBI- Block und den Mailboxnachrichtenblock.
- Wieder; obwohl die Beschreibung und Figur der Klarheit wegen einen einzelnen Flußauftrag zeigen, gibt es tatsächlich vielfache Aufträge, die zu verschiedenen Stufen und in jedem Zeitaugenblick verarbeitet werden. Da jeder Softwareprozeß so beschrieben ist, daß er versucht alle seine ausstehenden Aufgaben zu beenden, bevor er den Mikroprozessor abgibt, wird die Anzahl von Kontextumschaltungen, die pro empfangener Nachricht durchgeführt werden, geringer unter typischer Belastung sein, als wenn nur ein einzelner Nachrichtenauftrag betrachtet wird.
- In dem Lese-LCB-Fall, nicht in einer Figur gezeigt, gibt die CPU IOLD aus, die auf Lese-LCB zeigen, wobei jeder Lese-LCB Zeiger auf Puffer im Systemspeicher umfaßt, die groß genug sind, um die größtmögliche Nachricht zu halten. Nur eine Unterbrechung muß zu der CPU gesandt werden, d. h. nachdem die Daten und der Endzustand geliefert worden sind.
- ACK - Positive Quittung
- CM - Steuerungseinrichtungsmanagement (Software)
- CRC - Zyklische Redundanzüberprüfung
- CPU - Zentrale Verarbeitungseinheit
- CS - Kommunikationsdienst (Software)
- CSMA/CD - Vielfachzugriff mit Leitungsüberwachung und Kollisionserfassung
- DMA - Direkter Speicherzugriff
- DA - Zieladresse
- DRAM - Dynamischer RAM
- DSAP - Bestimmungsdienst-Zugriffspunkt
- EPROM - Löschbarer programmierbarer Nur-Lese-Speicher
- FC - Funktionscode/Rahmensteuerung
- FIFO - First-In-First-Out
- GA - Gruppenadresse
- GETBUF - Puffer holen
- ICW - Unterbrechungssteuerwort
- IODISP - IO-Abfertigung
- IORB - Eingabe/Ausgabe-Anforderungsblock
- ID - Identifikation
- IF - Schnittstelle (Software)
- I/O - Eingabe/Ausgabe
- IOLD - Eingabe/Ausgabe-Leden
- LAC - Lokalbereich-Steuereinrichtung
- LACS - Lokalbereich-Steuereinrichtungs-Untersystem
- LAN - Lokalnetzwerk
- LCB - LAN-Steuerblock
- LCBI - LAN-Steuerblockbild
- LLC - Verbindungsschichtsteuerung
- LME - Schichtmanagementseinheit
- LMI - Schichtmanagementschnittstelle
- LSAP - Verbindungsdienstezugriff
- LSI - Hoher Integrationsgrad
- MAC - Medienzugriffssteuereinrichtung
- MBLME - MEGABUS-Schichtmanagementseinheit
- MBZ - Muß Null sein
- MEMDMA - Speicher-Direktspeicherzugriff
- MSB - Byte höchster Ordnung
- MSB - Bit höchster Ordnung
- MTBF - Mittlerer Ausfallabstand
- MTTR - Mittlere Reparaturdauer
- NAK - Negative Quittung
- ORU - Optimale ersetzbare Einheit
- OS - Betriebssystem/offenes System
- OSI - Verbindung offener Systeme
- PAL - Programmierbare Matrixlogik
- PC Personalcomputer
- PIO - Physikalischer Eingang/Ausgang
- PROM - Programmierbarer Nur-Lese-Speicher
- PDU - Protokolldateneinheit
- QLT - Qualitätslogiktest
- RAM - Speicher mit wahlfreiem Zugriff
- RFU - Reserviert für zukünftige Benutzung
- RHU - Reserviert für Hardwarebenutzung
- RINT - Nehme Unterbrechung wieder auf
- RSU - Reserviert für Software-Benutzungen
- SA - Quelladresse/Stationsadresse
- SC - Status vollständig/Dienstaufruf
- SM - Systemmanagement (Software)
- SMDSI - Systemmanagements-Datendienst-Schnittstelle
- SSAP - Quelldienstzugriffpunkt
- TBD - Muß definiert werden
- TC - Leitungskoppler
- T&V - Test und Verifikation
- WS - Workstation
Claims (4)
1. Computersystem mit zumindest einem Paar von Prozessoren (214a,
214b), die mit einem gemeinsamen Bus (216, 214) zum Übertragen
von Daten und Steuerinformation über den Bus gekoppelt sind, der
eine Verriegelungseinheit (Fig. 7) aufweist, um das Ausführen von
verarbeitenden Operationen auf Information unabhängig von den
Prozessoren freizugeben, demgemäß dem System erlaubend eine sehr
viel größere Anzahl von Endanschlüssen und peripheren Einheiten,
die damit verbunden sind, zu unterstützen und einen Konflikt der
Steuerinformation zu verhindern, wenn beide der Prozessoren
gleichzeitig den gleichen Typ von Steuerinformation erzeugen, wobei das
System dadurch gekennzeichnet ist, daß
- bestimmte Steuerinformation in einer Vielzahl von Teilen durch
einen Prozessor in einer jeweiligen Vielzahl von Buszyklen
übertragen wird;
- die Verriegelungseinheit (Fig. 7) aufweist:
- ein Speicherelement (701), das auf die Übertragung eines
ersten Teiles der Steuerinformation (Funktionscode 09) auf
dem Bus antwortet, um ein erstes Signal (FC09FF) zu
initiieren;
- ein Logikelement (703), das gekoppelt ist, um das erste
Signal zu empfangen, und das auf das Auftreten des ersten
Signales und die Übertragung eines darauffolgenden ersten
Teiles der Steuerinformation (Adressbits 18-23) auf dem
Bus antwortet, um ein zweites Signal zu erzeugen; und
- ein Schaltungselement (704), das auf das Auftreten des
zweiten Signales antwortet, um ein drittes Signal (NAK)
zum Anlegen auf den Bus zu erzeugen, um dem Prozessor;
der den darauffolgenden ersten Teil liefert, anzuzeigen, daß
seine Übertragung nicht akzeptiert worden ist.
2. Computersystem gemäß Anspruch 1, worin die Steuerinformation
Eingabe-/Ausgabe- Befehle (IOLD) sind und die Teile zumindest
jeweilige Funktionscodes umfassen, wobei der Funktionscode (09) des
ersten Teiles zu einer Adresse gehört und der Funktionscode (OD)
des zweiten Teiles zu einem Bereich in einem Speicher (215) des
Computersystemes gehört.
3. Computersystem gemäß Anspruch 2, worin das Speicherelement (701)
eine Darstellung des ersten Funktionscodes speichert.
4. Computersystem gemäß Anspruch 1, worin das Schaltungselement
(704) bei Nichtvorhandensein des zweiten Signales ein viertes Signal
(ACK) zum Anlegen an den Bus erzeugt, um irgendeinem Prozessor;
der einen ersten Teil liefert, anzuzeigen, daß seine Übertragung
akzeptiert worden ist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US06/891,090 US4835674A (en) | 1986-07-28 | 1986-07-28 | Computer network system for multiple processing elements |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3788539D1 DE3788539D1 (de) | 1994-02-03 |
DE3788539T2 true DE3788539T2 (de) | 1994-07-28 |
Family
ID=25397600
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE3788539T Expired - Fee Related DE3788539T2 (de) | 1986-07-28 | 1987-07-27 | Gegenseitige Verriegelung zwischen mehreren zentralen Verarbeitungseinheiten. |
Country Status (12)
Country | Link |
---|---|
US (1) | US4835674A (de) |
EP (1) | EP0255091B1 (de) |
JP (1) | JPH084267B2 (de) |
KR (1) | KR930010915B1 (de) |
CN (1) | CN1007760B (de) |
AU (1) | AU601754B2 (de) |
CA (1) | CA1288525C (de) |
DE (1) | DE3788539T2 (de) |
DK (1) | DK393887A (de) |
ES (1) | ES2047482T3 (de) |
MX (1) | MX169677B (de) |
YU (1) | YU142187A (de) |
Families Citing this family (57)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5142683A (en) * | 1987-03-09 | 1992-08-25 | Unisys Corporation | Intercomputer communication control apparatus and method |
US5109515A (en) * | 1987-09-28 | 1992-04-28 | At&T Bell Laboratories | User and application program transparent resource sharing multiple computer interface architecture with kernel process level transfer of user requested services |
US5086426A (en) * | 1987-12-23 | 1992-02-04 | Hitachi, Ltd. | Communication network system having a plurality of different protocal LAN's |
US4977499A (en) * | 1988-04-08 | 1990-12-11 | International Business Machines Corp. | Method and apparatus for commanding operations on a computer network |
JPH03500104A (ja) * | 1988-06-20 | 1991-01-10 | アメリカ合衆国 | 相互接続回路網 |
US5068823A (en) * | 1988-07-11 | 1991-11-26 | Star Semiconductor Corporation | Programmable integrated circuit using topological and parametric data to selectively connect and configure different high level functional blocks thereof |
US5253343A (en) * | 1988-08-18 | 1993-10-12 | La Telemecanique Electric | Method for the management of a memory of messages in a station of a data transmission network, and station designed for the implementation of the method |
US5345587A (en) * | 1988-09-14 | 1994-09-06 | Digital Equipment Corporation | Extensible entity management system including a dispatching kernel and modules which independently interpret and execute commands |
US5056012A (en) * | 1988-11-30 | 1991-10-08 | Motorola, Inc. | Memory addressable data transfer network |
US5210828A (en) * | 1988-12-29 | 1993-05-11 | International Business Machines Corporation | Multiprocessing system with interprocessor communications facility |
US5097410A (en) * | 1988-12-30 | 1992-03-17 | International Business Machines Corporation | Multimode data system for transferring control and data information in an i/o subsystem |
US5109519A (en) * | 1989-03-28 | 1992-04-28 | Wang Laboratories, Inc. | Local computer participating in mail delivery system abstracts from directory of all eligible mail recipients only served by local computer |
US5263137A (en) * | 1989-05-12 | 1993-11-16 | Nec Corporation | Syntax converting apparatus for decomposing different portions of a data string differently depending on whether a data string is an external type data string |
US5123089A (en) * | 1989-06-19 | 1992-06-16 | Applied Creative Technology, Inc. | Apparatus and protocol for local area network |
US5237659A (en) * | 1989-07-27 | 1993-08-17 | Bull S.A. | Gateway device for connecting a computer bus to a ring network |
JPH0366241A (ja) * | 1989-08-04 | 1991-03-20 | Matsushita Electric Ind Co Ltd | プロパティ管理方法とその装置 |
US5708810A (en) * | 1989-10-10 | 1998-01-13 | Unisys Corporation | Image-based document processing system having a platform architecture |
US5142624A (en) * | 1989-11-08 | 1992-08-25 | Softworx, Inc. | Virtual network for personal computers |
US5245704A (en) * | 1990-03-22 | 1993-09-14 | Square D Company | System for sharing data between microprocessor based devices |
US5237693A (en) * | 1990-04-04 | 1993-08-17 | Sharp Kabushiki Kaisha | System for accessing peripheral devices connected in network |
US5165024A (en) * | 1990-04-12 | 1992-11-17 | Apple Computer, Inc. | Information transfer and receiving system with a ring interconnect architecture using voucher and ticket signals |
IL96808A (en) | 1990-04-18 | 1996-03-31 | Rambus Inc | Introductory / Origin Circuit Agreed Using High-Performance Brokerage |
US6324120B2 (en) | 1990-04-18 | 2001-11-27 | Rambus Inc. | Memory device having a variable data output length |
US5301303A (en) * | 1990-04-23 | 1994-04-05 | Chipcom Corporation | Communication system concentrator configurable to different access methods |
US5165019A (en) * | 1990-05-29 | 1992-11-17 | Apple Computer, Inc. | Ring interconnect system architecture |
EP0459912B1 (de) * | 1990-05-30 | 1996-09-11 | Fujitsu Limited | Verarbeitungssystem zur Ausgabe vom Verwendungsrecht vom Betriebsmittel |
US5150464A (en) * | 1990-06-06 | 1992-09-22 | Apple Computer, Inc. | Local area network device startup process |
US5428783A (en) * | 1990-11-28 | 1995-06-27 | Motorola, Inc. | Lan based loosely coupled large grain parallel processing method |
FR2670925B1 (fr) * | 1990-12-20 | 1995-01-27 | Bull Sa | Architecture informatique distribuee utilisant un reseau local de type csma/cd. |
JP2501965B2 (ja) * | 1991-02-12 | 1996-05-29 | パイオニア株式会社 | デ―タ転送制御装置 |
US5250943A (en) | 1991-03-29 | 1993-10-05 | International Business Machines Corporation | GVT-NET--A Global Virtual Time Calculation Apparatus for Multi-Stage Networks |
US5404461A (en) * | 1991-03-29 | 1995-04-04 | International Business Machines Corp. | Broadcast/switching apparatus for executing broadcast/multi-cast transfers over unbuffered asynchronous switching networks |
US5365228A (en) * | 1991-03-29 | 1994-11-15 | International Business Machines Corporation | SYNC-NET- a barrier synchronization apparatus for multi-stage networks |
US5343144A (en) * | 1991-02-28 | 1994-08-30 | Sony Corporation | Electronic device |
US5594927A (en) * | 1992-01-09 | 1997-01-14 | Digital Equipment Corporation | Apparatus and method for aligning data transferred via DMA using a barrel shifter and a buffer comprising of byte-wide, individually addressabe FIFO circuits |
GB2264843B (en) * | 1992-02-28 | 1995-09-20 | Texas Instruments Ltd | An interface device for coupling a host device having a network interface to a computer network having a predetermined communications medium |
DE69330981T2 (de) * | 1992-04-20 | 2002-06-27 | 3Com Corp., Santa Clara | Vorrichtung zur Netzmittelerweiterung auf entfernte Netzwerke |
US5414845A (en) * | 1992-06-26 | 1995-05-09 | International Business Machines Corporation | Network-based computer system with improved network scheduling system |
FR2698464B1 (fr) * | 1992-11-24 | 1997-06-20 | Bull Sa | Systeme d'appareils distribues en reseau. |
US5522069A (en) * | 1993-04-30 | 1996-05-28 | Zenith Data Systems Corporation | Symmetric multiprocessing system with unified environment and distributed system functions |
US5761425A (en) * | 1994-12-02 | 1998-06-02 | Compuserve Incorporated | System for facilitating data transfers between host computers and workstations by having a first, second and third computer programs communicate in a matching application-level protocol |
US5850518A (en) | 1994-12-12 | 1998-12-15 | Northrup; Charles J. | Access-method-independent exchange |
US5740438A (en) * | 1995-03-31 | 1998-04-14 | International Business Machines Corporation | Methods and system for network communications of multiple partitions |
US5748633A (en) * | 1995-07-12 | 1998-05-05 | 3Com Corporation | Method and apparatus for the concurrent reception and transmission of packets in a communications internetworking device |
US5825774A (en) * | 1995-07-12 | 1998-10-20 | 3Com Corporation | Packet characterization using code vectors |
US5796944A (en) * | 1995-07-12 | 1998-08-18 | 3Com Corporation | Apparatus and method for processing data frames in an internetworking device |
US5651002A (en) * | 1995-07-12 | 1997-07-22 | 3Com Corporation | Internetworking device with enhanced packet header translation and memory |
US5812775A (en) * | 1995-07-12 | 1998-09-22 | 3Com Corporation | Method and apparatus for internetworking buffer management |
US5764155A (en) * | 1996-04-03 | 1998-06-09 | General Electric Company | Dynamic data exchange server |
US5941972A (en) * | 1997-12-31 | 1999-08-24 | Crossroads Systems, Inc. | Storage router and method for providing virtual local storage |
USRE42761E1 (en) | 1997-12-31 | 2011-09-27 | Crossroads Systems, Inc. | Storage router and method for providing virtual local storage |
US6446149B1 (en) * | 1998-03-03 | 2002-09-03 | Compaq Information Technologies Group, L.P. | Self-modifying synchronization memory address space and protocol for communication between multiple busmasters of a computer system |
US7225244B2 (en) * | 2000-05-20 | 2007-05-29 | Ciena Corporation | Common command interface |
US6715097B1 (en) | 2000-05-20 | 2004-03-30 | Equipe Communications Corporation | Hierarchical fault management in computer systems |
US6983362B1 (en) | 2000-05-20 | 2006-01-03 | Ciena Corporation | Configurable fault recovery policy for a computer system |
CN103136159A (zh) * | 2011-11-29 | 2013-06-05 | 中国航空工业集团公司第六三一研究所 | 一种用于多处理机系统的控制和信息交互方法 |
KR20230130954A (ko) | 2022-03-04 | 2023-09-12 | 김미경 | 섬유강화복합성형물 제조용 인발성형장치 |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4065809A (en) * | 1976-05-27 | 1977-12-27 | Tokyo Shibaura Electric Co., Ltd. | Multi-processing system for controlling microcomputers and memories |
US4228496A (en) * | 1976-09-07 | 1980-10-14 | Tandem Computers Incorporated | Multiprocessor system |
US4336588A (en) * | 1977-01-19 | 1982-06-22 | Honeywell Information Systems Inc. | Communication line status scan technique for a communications processing system |
US4207609A (en) * | 1978-05-08 | 1980-06-10 | International Business Machines Corporation | Method and means for path independent device reservation and reconnection in a multi-CPU and shared device access system |
ZA80796B (en) * | 1979-02-13 | 1981-02-25 | Leo Pharm Prod Ltd | Chemical compounds |
ZA80646B (en) * | 1979-03-05 | 1981-02-25 | Pfizer | Process and intermediates for penicillanic acid,1,1-dioxide and esters thereof |
US4304001A (en) * | 1980-01-24 | 1981-12-01 | Forney Engineering Company | Industrial control system with interconnected remotely located computer control units |
AU6692281A (en) * | 1980-02-07 | 1981-08-13 | Honeywell Information Systems Italia S.P.A. | Multiprocessars plus single memory |
US4363093A (en) * | 1980-03-10 | 1982-12-07 | International Business Machines Corporation | Processor intercommunication system |
FR2477809B1 (fr) * | 1980-03-10 | 1987-08-21 | Jeumont Schneider | Systeme de transmission rapide de messages entre calculateurs |
AU6785881A (en) * | 1980-03-21 | 1981-10-09 | Concurrent Processing Systems Pty. Ltd. | Computer system and interface therefor |
US4543627A (en) * | 1981-12-14 | 1985-09-24 | At&T Bell Laboratories | Internal communication arrangement for a multiprocessor system |
US4494193A (en) * | 1982-09-30 | 1985-01-15 | At&T Bell Laboratories | Deadlock detection and resolution scheme |
US4574284A (en) * | 1983-01-26 | 1986-03-04 | Trw Inc. | Communication bus interface unit |
SE448919B (sv) * | 1983-03-04 | 1987-03-23 | Ibm Svenska Ab | Metod for att overfora informationsenheter i ett datornetsystem, samt datornetsystem for genomforande av metoden |
US4679191A (en) * | 1983-05-04 | 1987-07-07 | Cxc Corporation | Variable bandwidth switching system |
JPS6090452A (ja) * | 1983-07-20 | 1985-05-21 | フエアチアイルド カメラ アンド インストルメント コ−ポレ−シヨン | 独立的に操作可能なロ−カルエリアネツトワ−ク |
US4593281A (en) * | 1983-10-13 | 1986-06-03 | Rockwell International Corporation | Local area network interframe delay controller |
US4719622A (en) * | 1985-03-15 | 1988-01-12 | Wang Laboratories, Inc. | System bus means for inter-processor communication |
US4730250A (en) * | 1985-09-03 | 1988-03-08 | Ncr Corporation | Local area network processing system |
US4730308A (en) * | 1985-10-04 | 1988-03-08 | International Business Machines Corporation | Interface between a computer bus and a serial packet link |
US4679189A (en) * | 1985-11-27 | 1987-07-07 | American Telephone And Telegraph Company | Alternate routing arrangement |
US4750114A (en) * | 1986-07-28 | 1988-06-07 | Honeywell Bull Inc. | Local area network control block |
US4771286A (en) * | 1986-07-28 | 1988-09-13 | Honeywell Bull Inc. | Lan controller having split bus design |
US4715030A (en) * | 1986-08-04 | 1987-12-22 | General Electric Company | Local area network bridge |
-
1986
- 1986-07-28 US US06/891,090 patent/US4835674A/en not_active Expired - Fee Related
-
1987
- 1987-07-27 DE DE3788539T patent/DE3788539T2/de not_active Expired - Fee Related
- 1987-07-27 EP EP87110865A patent/EP0255091B1/de not_active Expired - Lifetime
- 1987-07-27 ES ES87110865T patent/ES2047482T3/es not_active Expired - Lifetime
- 1987-07-27 CA CA000543042A patent/CA1288525C/en not_active Expired - Lifetime
- 1987-07-28 MX MX007518A patent/MX169677B/es unknown
- 1987-07-28 KR KR1019870008215A patent/KR930010915B1/ko not_active IP Right Cessation
- 1987-07-28 AU AU76213/87A patent/AU601754B2/en not_active Ceased
- 1987-07-28 CN CN87106124A patent/CN1007760B/zh not_active Expired
- 1987-07-28 DK DK393887A patent/DK393887A/da not_active Application Discontinuation
- 1987-07-28 YU YU01421/87A patent/YU142187A/xx unknown
- 1987-07-28 JP JP62188685A patent/JPH084267B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
ES2047482T3 (es) | 1994-03-01 |
DK393887A (da) | 1988-01-29 |
CN87106124A (zh) | 1988-03-30 |
KR930010915B1 (ko) | 1993-11-17 |
AU7621387A (en) | 1988-02-04 |
JPH084267B2 (ja) | 1996-01-17 |
EP0255091A3 (en) | 1990-02-07 |
MX169677B (es) | 1993-07-19 |
EP0255091A2 (de) | 1988-02-03 |
US4835674A (en) | 1989-05-30 |
CN1007760B (zh) | 1990-04-25 |
AU601754B2 (en) | 1990-09-20 |
CA1288525C (en) | 1991-09-03 |
DK393887D0 (da) | 1987-07-28 |
JPS6352260A (ja) | 1988-03-05 |
EP0255091B1 (de) | 1993-12-22 |
YU142187A (en) | 1990-02-28 |
DE3788539D1 (de) | 1994-02-03 |
KR890003159A (ko) | 1989-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3788539T2 (de) | Gegenseitige Verriegelung zwischen mehreren zentralen Verarbeitungseinheiten. | |
DE3788319T2 (de) | Multiprozessor-Unterbrechungsumleitungsmechanismus. | |
DE3751091T2 (de) | Übertragungsprotokoll zwischen Prozessoren. | |
DE3650036T2 (de) | Mehrfachport-Diensterweiterungsadapter für Übertragungssteuerung. | |
DE3688763T2 (de) | Mehrfachport-Übertragungsadaptiervorrichtung. | |
DE69108434T2 (de) | Mehrgruppen-Signalprozessor. | |
DE3688810T2 (de) | Mehrfachport-integrierter Steuerer und Arbitrierer für DMA und Unterbrechungen. | |
DE69936060T2 (de) | Verfahren und Vorrichtung für eine verbesserte Schnittstelle zwischen Computerkomponenten | |
DE69323290T2 (de) | Netzwerkanpassungseinrichtung mit Hauptrechnerindikationoptimierung | |
DE3855630T2 (de) | Hybrider Übertragungsverbindungsadapter mit Ein-/Ausgabe- und Datenübertragungstechnologie | |
DE3850351T2 (de) | Vermittlungsnetz zwischen Prozessoren. | |
US4771286A (en) | Lan controller having split bus design | |
DE69030861T2 (de) | Bus-Master-Steuerprotokoll | |
DE69429279T2 (de) | Multiprozessor-programmierbares unterbrechungskontrollersystem mit prozessor-integrierten unterbrechungskontrollern | |
DE3689990T2 (de) | Flexible Datenübertragung für nachrichtenorientierte Protokolle. | |
DE3280451T2 (de) | Verfahren zur Initialisierung eines Datenverarbeitungssystems. | |
DE69130798T2 (de) | Eine netzwerkschnittstelle um ein programmierbares logiksteuergerät an ein hochgeschwindigkeitskommunikationsnetzwerk zu schalten | |
DE3586487T2 (de) | Kohaerentes interface mit zurueckgeschleiften sende- und empfangsspeichern. | |
DE112010001824B4 (de) | Paketierte Schnittstelle zur Kopplung von Agenten | |
DE3882970T2 (de) | Rechnerverbinder, der querbalkenschalter verwendet. | |
DE69128133T2 (de) | Fernmeldenetz | |
DE69334165T2 (de) | Netzwerkanpassungseinrichtung mit hauptrechnerunterbrechung und indikationsverwaltung | |
DE3650092T2 (de) | E/a-steuerung mit zwei funktionen. | |
DE4023471A1 (de) | Kommunikationsschnittstellenschaltung in einem steuerungssystem | |
DE3851676T2 (de) | Datenpaketierungsverfahren. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: BULL HN INFORMATION SYSTEMS INC., BILLERICA, MASS. |
|
8339 | Ceased/non-payment of the annual fee |