DE69133257T2 - Vorrichtung und verfahren zur schnellen paketvermittlung - Google Patents

Vorrichtung und verfahren zur schnellen paketvermittlung Download PDF

Info

Publication number
DE69133257T2
DE69133257T2 DE69133257T DE69133257T DE69133257T2 DE 69133257 T2 DE69133257 T2 DE 69133257T2 DE 69133257 T DE69133257 T DE 69133257T DE 69133257 T DE69133257 T DE 69133257T DE 69133257 T2 DE69133257 T2 DE 69133257T2
Authority
DE
Germany
Prior art keywords
processing
packet
packets
queue
cells
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
Application number
DE69133257T
Other languages
English (en)
Other versions
DE69133257D1 (de
Inventor
J. Steven FRANK
III Henrry BURKHARDT
B. James ROTHNIE
F. William MANN
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Application granted granted Critical
Publication of DE69133257D1 publication Critical patent/DE69133257D1/de
Publication of DE69133257T2 publication Critical patent/DE69133257T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/004Error avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • G06F11/0724Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30047Prefetch instructions; cache control instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30087Synchronisation or serialisation instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3824Operand accessing
    • G06F9/383Operand prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3865Recovery, e.g. branch miss-prediction, exception handling using deferred exception handling, e.g. exception flags
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4637Interconnected ring systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/04Interdomain routing, e.g. hierarchical routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/104Asynchronous transfer mode [ATM] switching fabrics
    • H04L49/105ATM switching elements
    • H04L49/107ATM switching elements using shared medium
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3081ATM peripheral units, e.g. policing, insertion or extraction
    • H04L49/309Header conversion, routing tables or routing tags
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/27Using a specific cache architecture
    • G06F2212/272Cache only memory architecture [COMA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5681Buffer or queue management

Description

  • Hintergrund der Erfindung
  • Die vorliegende Erfindung bezieht sich im allgemeinen auf Systeme für paketvermittelte Kommunikationsnetzwerke und genauer gesagt auf eine Vorrichtung und Verfahren, die von einer Hochgeschwindigkeits-Mehrprozessor-Paketvermittlungskonfiguration Gebrauch machen.
  • In den letzten Jahren wurden in großem Umfang Telekommunikationsnetzwerk-Konfigurationen vorgeschlagen und implementiert, um Kommunikation zwischen Daten behandelnden und kommunizierenden Einrichtungen zur Verfügung zu stellen. Insbesondere wurden Paketvermittelungssysteme entwickelt, um eine Nachfrage nach Datenkommunikation in Netzwerken, die Zugang zu Hostcomputern bereitstellen, zu niedrigen Kosten zu erfüllen.
  • In herkömmlichen paketvermittelten Systemen werden digitale Datenzellen oder -pakete zu einem ausgewählten Ziel von einem Terminal, einem Computer, einem Anwendungsprogramm oder anderen Daten verarbeitenden Einrichtungen übermittelt. Das Ziel kann eine) anderes) Daten verarbeitendes) oder kommunizierendes) Vorrichtung oder System sein. In vielen paketvermittelten Systemen werden speziellen Zwecken dienende Computer als paketvermittelnde Prozessoren verwendet – d. h. Kommunikationsprozessoren, die dafür ausgelegt sind, Pakete durch das Netzwerk zu lenken.
  • Eine Klasse von paketvermittelnden Systemen verwendt vordefinierte Pfade durch das Netzwerk, in denen von einer Mehrzahl von Benutzern erzeugte Pakete Verbindungs- und Vermittlungseinrichtungen gemeinsam nutzen, während die Pakete durch das Netzwerk laufen. In diesen Systemen müssen die Pakete in den Knoten zwischen den Übertragungsverbindungen gespeichert werden, bis die Pakete entlang einer geeigneten Zielverbindung weitergeleitet werden können. Diese Klasse eines Datenübertragungssystems wird als virtuelle leitungs- oder verbindungsorientierte Übertragung bezeichnet.
  • Eine weitere Klasse von paketvermittelnden Systemen verwendet verbindungslose Übertragung, die keine anfängliche Verbindung für einen Datenpfad durch das Netzwerk benötigt. In diesen Systemen werden individuelle Datenzellen oder -pakete einschließlich einer Zieladresse von der Quelle bis zum Ziel über Zwischenknoten durch das Netzwerk geleitet.
  • Das virtuelle Verbindungs- bzw. Leitungssystem wird in einem öffentlichen Netzwerk, das von Telenet Communications Corporation aufgebaut bzw. eingerichtet wurde, benutzt. Dieses System verwendet eine Zweistufen-Hierarchie, um Datenpakete zu leiten bzw. zu lenken. Eine Stufe der Hierarchie ist ein Netzwerk mit einer Mehrzahl von Hubs und Knoten, von denen jeder einen Cluster von Switches bzw. Vermittlungsrechnern benutzt. Die zweite Stufe enthält kleinere Bereichs- bzw. Areal-Netzwerke mit Bündeln, Zugangsleitungen und zu Clustern zusammengefaßte Switches auf tieferer Ebene bzw. Schicht, die mit jedem Hub verbunden sind. Das Telenet-System benutzt das X.75-Protokoll, das von dem International Telegraph and Telephone Consultative Committee der International Telecommunications Union (CCITT) als eine Schnittstelle zum Verbinden von Compu tern mit einem paketvermittelten Netzwerk vorgeschlagen wurde. Das Protokoll ist in einer dreischichtigen Konfiguration strukturiert und die Schichten werden als die physikalische bzw. Bitübertragungs-Schicht, die Frame-Schicht und die Paket-Schicht bezeichnet. Leitpfade in dem Telenet-System werden von einem paketvermittelnden Prozessor bestimmt, der Routing-Tabellen benutzt, welche die verfügbaren Verbindungen von jedem Hub angeben. Der herkömmliche paketvermittelnde Prozessor, der in dem Telenet-System verwendet wird, enthält eine Hauptspeichereinheit, Leitungsprozessoren, die den Zugang zu bzw. Zugriff auf Benutzerleitungen steuern, und eine zentrale Verarbeitungseinheit (Central Processing Unit, CPU), die das Routing in der Paketschicht steuert. Die CPU verwendet eine Tabelle von aktiven virtuellen Bündel-zu-Bündel-Verbindungen, um die geeigneten Hubs und virtuellen Verbindungen zum Verbinden von Benutzern, die einen Zugang anfordern, zu identifizieren bzw. zu bestimmen. In dem Telenet-System muß jeder Benutzer, der Daten über das Netzwerk übermittelt, zuerst seine Datenpakete über den Bus in den Hauptspeicher schreiben. Der Leitungsprozessor, der jedem Benutzer zugeordnet ist, bewirbt sich um Zugriff auf den Bus entsprechend einer herkömmlichen Tokenübergabe-Konfiguration unter der Steuerung einer Vermittlungs-Einheit.
  • Eine weitere Form eines herkömmlichen Paketvermittelungssystems mit virtuellen Verbindungen bzw. Leitungen benutzt mehrere Busanforderungsketten mit unterschiedlichen, vordefinierten Prioritäten. Jede Kette in dem System verwendet ein Vermittlungsschema ähnlich dem oben beschriebenen.
  • In noch einem weiteren Beispiel eines herkömmlichen Paketvermittelungssystems muß ein Benutzer, der um Zugang zum Bus nachsucht, zuerst ein ausgewähltes Signalmuster auf dem Vermittlungsbus übermitteln. Einige Leitungseinheiten können den Bus in dieser Konfiguration gleichzeitig betreiben bzw. verwenden. Die betreibenden Leitungseinheiten lesen diese Signalmuster in regelmäßigen Abständen und bestimmen auf der Grundlage der Prioritäten von anderen Anforderern, ob ihre jeweiligen Anforderungen erhalten bleiben oder aufgegeben werden. Diese Prozeß setzt sich fort, bis eine Schiedsrichtereinheit einen zum Sieger erklärt.
  • Herkömmliche paketvermittelnde Systeme unterliegen jedoch wesentlichen Einschränkungen bezüglich der Kommunikationsbandbreite und Geschwindigkeit, die von ihren Busschiedsschemata und der Erfordernis herrühren, Pakete über einen Bus mit begrenzter Bandbreite in den Hauptspeicher zu schreiben.
  • Zum Beispiel muß in Systemen, die Schiedsentscheidung mittels Tokenübergabe benutzen, eine anfordernde Einheit ihre Anforderung aufrecht erhalten und untätig bleiben, bis das Token entlang der Kette zu dieser Einheit übergeben wird, auch wenn diese Einheit der einzige Prozessor ist, der Zugang zum Bus anfordert. Zeit und Kapazität des Kommunikationskanals werden vergeudet, während das Token von Benutzer zu Benutzer übergeben wird. Als ein Ergebnis sind gewisse herkömmliche Systeme von diesem Typ auf eine Datenübertragungsrate von nicht mehr als ungefähr 164 Megabits/Sekunde beschränkt.
  • Die Europäische Patentanmeldung EP-A-0.322.117 beschreibt ein Mehrprozessorsystem zur digitalen Datenverarbeitung, das eine Mehrzahl von Verarbeitungszellen umfaßt, die in einer Hier archie von Ringen angeordnet ist. Das System ordnet selektiv Speicher zu und bewegt als Reaktion auf Zugangs- bzw. Zugriffsanforderungen, die von den Zellen erzeugt werden, exklusive Datenkopien von Zelle zu Zelle. Routingelemente werden verwendet, um selektiv Daten-Zugriffsanforderungen, -Aktualisierungen und -Übertragungen auf den Ringen rundzusenden.
  • Ein Ziel der Erfindung ist es, verbesserte paketvermittelnde Verfahren und Vorrichtungen zur Verfügung zu stellen, die verbesserte Paketübertragungsraten ermöglichen.
  • Zusammenfassung der Erfindung
  • Entsprechend einem Aspekt der Erfindung wird eine digitale paketvermittelnde Vorrichtung zum selektiven Vermitteln digitaler Signalpakte zwischen einer Menge bzw. einem Satz von Knoten vorgesehen, wobei diese Pakete entsprechend einem ausgewählten Protokoll konfiguriert werden, das mindestens ein Paketschicht-Protokoll und ein Frameschicht-Protokoll umfaßt. Die Vorrichtung enthält eine Mehrzahl von Verarbeitungszellen, von denen jede mindestens eine Verarbeitungseinheit enthält, die an ein zugeordnetes, inhaltsadressierbares Speicherelement zum Speichern informationsdarstellender, digitaler Signale angeschlossen sind. Eine solche Verarbeitungszelle enthält ferner eine Einrichtung zur Paketvermittlung und das Speicherelement dient dazu, mindestens eine Empfangswarteschlange und mindestens eine Übertragungswarteschlange bereitzustellen. Die Einrichtung zur Paketvermittlung umfaßt eine Einrichtung zur Verarbeitung von empfangenen Paketen, der dazu dient, Verarbeitung in der Frameschicht bzw. auf Frameniveau auf einem von mindestens einem Knoten empfangenen Paket durchzuführen und das Paket selektiv in einer Empfangswarteschlange oder einer Übertragungswarteschlange zu speichern, und eine Einrichtung zur Verarbeitung von zu übertragenden Paketen, der dazu dient, auf ein Paket in der Übertragungswarteschlange zuzugreifen, darauf Verarbeitung in der Frameschicht durchzuführen und das Paket zu mindestens einem Knoten zu übertragen.
  • Entsprechend einem anderen Aspekt der Erfindung ist ein Verfahren zum Betreiben einer digitalen Paketvermittlungsvorrichtung zum selektiven Vermitteln von Paketen zwischen einer Menge von Knoten vorgesehen, wobei die Pakete in Übereinstimmung mit einem ausgewählten Protokoll eingerichtet sind, das mindestens ein Paketschicht-Protokoll und ein Frameschicht-Protokoll umfaßt, wobei die Vorrichtung eine Mehrzahl von Verarbeitungszellen enthält, von denen jede mindestens eine Verarbeitungseinheit enthält, die an ein zugeordnetes, inhaltsadressierbares Speicherelement zum Speichern informationsdarstellender, digitaler Signale angeschlossen ist, wobei eine solche Verarbeitungszelle ferner einen Mechanismus zur Paketvermittlung einschließt und das Speicherelement dazu dient, mindestens eine Empfangswarteschlange und mindestens eine Übertragungswarteschlange bereitzustellen. Das Verfahren umfaßt einen Mechanismus zur Verarbeitung von empfangenen Paketen, der Verarbeitung in der Frameschicht bzw. auf Frameniveau auf einem von mindestens einem Knoten empfangenen Paket durchführt und das Paket selektiv in der Empfangswarteschlange oder in der Übertragungswarteschlange speichert, und einen Mechanismus zur Verarbeitung von zu übertragenden Paketen, der auf ein Paket in der Übertragungswarteschlange zugreift, darauf eine Verarbeitung in der Frameschicht durchführt und das Paket zu mindestens einem Knoten überträgt.
  • Eine Ausführungsform der Erfindung kann Paketübertragung mit hoher Bandbreite zu gewährleisten. Mehrere anfordernde Prozessoren erhalten im Wesentlichen einen sofortigen Zugang zu dem paketvermittelten Netzwerk. Ein großer Bereich von existierenden und vorgeschlagenen Paketprotokollen kann behandelt werden. Im Wesentlichen kann die gleichzeitige Behandlung von Paketvermittlungsoperationen und Anwendungsprogrammprozessen erreicht werden.
  • Eine Ausführungsform der Erfindung stellt daher digitale Paketvermittlungsverfahren und -vorrichtungen zum selektiven Vermitteln digitaler Signalpakete zwischen einer Menge von Knoten zur Verfügung.
  • Die Erfindung enthält mehrere Verarbeitungszellen, von denen jede einen Prozessor hat, der an ein zugeordnetes, inhaltsadressierbares Speicherelement angeschlossen ist. Paketprozessoren, die elektrisch an die Speicherelemente angeschlossen sind, empfangen selektiv Pakete von den Knoten und übermitteln die Pakete in mindestens eines der mehreren Speicherelemente; oder sie empfangen Pakete aus den Speicherelementen und übermitteln die Pakete an mindestens einen der Knoten.
  • Speicherverwaltungselemente, die an die Speicherelemente angeschlossen sind, können vorgesehen werden, um auf ein oder mehrere der informationsdarstellenden Signale zuzugreifen, die in den mehreren Speicherelementen gespeichert sind. Die Prozessoren in einer Zelle können Elemente zur Zugriffsanforderung zum Anfordem von Zugriff auf ein informationsdarstellendes Signal enthalten. Die Elemente zur Zugriffsanforderung können auch ein Signal zum Anfordern der Besitzereigenschaft erzeugen, um Zugriff mit Priorität auf ein informationsdarstellendes Signal anzufordern.
  • Das Speicherelement, das dem anfordernden Prozessor zugeordnet ist, kann Steuerelemente enthalten, um selektiv das Signal zur Zugriffsanforderung an das Speicherverwaltungselement zu übermitteln. Die Speicherverwaltungselemente können auch Speicherkohärenzelemente enthalten. Diese Kohärenzelemente reagieren auf bestimmte Signale zum Anfordern der Besitzereigenschaft, indem sie physikalischen Speicherplatz exklusiv in dem Speicherelement, das dem anfordernden Prozessor zugeordnet ist, reservieren bzw. zuteilen und das angeforderte informationsdarstellende Signal speichern.
  • Eine Mehrzahl von Informationsübertragungsdomänen kann vorgesehen werden einschließlich einer ersten Domäne mit einer Mehrzahl von Domänen(0)-Abschnitten bzw. -Segmenten. Jedes Domänen(0)-Segment enthält ein zugeordnetes Buselement und eine erste Mehrzahl von Verarbeitungszellen, die mit dem Buselement verbunden sind, um informationsdarstellende Signale zu übertragen. Jede Zelle hat einen Zentralprozessor und ein zugeordnetes, inhaltsadressierbares Speicherelement zum Speichern von informationsdarstellenden Signalen. Die Speicherelemente ihrerseits enthalten Schnittstellenelemente, die mit dem zugeordneten Zentralprozessor und mit dem Buselement zum Übertragen von informationsdarstellenden Signalen verbunden sind. Die Zellen sind so angeordnet bzw. eingerichtet, daß die Übertragung von informationsdarstellenden Signalen zwischen den zugeordneten Zentralprozessoren nur durch das entsprechende Speicherelement stattfindet.
  • Ein Domänen(1)-Segment kann ein zugeordnetes Buselement und eine Mehrzahl von Routingelementen enthalten. Jedes Routingelement ist mit dem Buselement, das dem Domänen(1)-Segment zugeordnet ist, und mit dem Buselement, das einem der Domänen(0)-Segmente zugeordnet ist, verbunden, um informationsdarstellende Signale zwischen dem Domänen(1)-Segment und dem zugeordneten Domänen(0)-Segment zu übertragen. Die Verarbeitungszellen, die jedem der Domänen(0)-Segmente zugeordnet sind, können Signale mit den Verarbeitungszellen, die dem Rest der Domänen(0)-Segmente zugeordnet sind, nur durch das Domänen(1)-Segment übertragen.
  • Die miteinander verbundenen Prozessoren, die oben beschrieben sind, können einen ersten Prozessor enthalten, der an mindestens ein inhaltsadressierbares Speicherelement angeschlossen ist, um normalerweise einen Befehlsstrom zu verarbeiten, der Befehle von einer ersten Befehlsquelle enthält; und mindestens einer der anderen Prozessoren enthält einen Paketprozessor zur bidirektionalen Paketübertragung zwischen den Knoten und den Speicherelementen. Die Paketprozessoren beinhalten Einfügeelemente, um eine oder mehrere Einfügungs-Befehle einzufügen, die durch den ersten Prozessor in derselben Weise zu verarbeiten sind wie die Befehle von der ersten Befehlsquelle, und ohne deren Verarbeitungsreihenfolge zu berühren bzw. zu beeinflussen.
  • Mindestens eines der Speicherelemente kann eine Datenunter- bzw.-teilseite enthalten, die eines oder mehrere informationsdarstellende Signale beinhaltet und mindestens einen Teil einer Datenseite bildet. Mindestens einer der Zentralprozessoren enthält Zugriffsanforderungselemente zum Erzeugen eines Zugriffsanforderungssignals, um Zugriff auf eine Datenteilseite anzufordern, die in den Speicherelementen gespeichert ist. Das Speicherverwaltungselement kann auf bestimmte Zugriffsanforderungssignale reagieren, indem es innerhalb des Speicherelementes, das dem anfordernden Zentralprozessor zugeordnet ist, physikalischen Speicherplatz für die Datenseite zuteilt bzw. reserviert, die der angeforderten Datenteilseite zugeordnet ist, und die angeforderte Datenteilseite darin speichert. Die Speicherverwaltungselemente enthalten ferner Freigabeelemente, um physikalischen Speicherplatz freizugeben, der für eine ausgewählte Datenseite in den Speicherelementen zugeteilt bzw. reserviert ist. Diese Freigabe wird vor oder im Wesentlichen gleichzeitig mit dem Reservieren von physikalischem Speicherplatz für die Datenseite bewirkt, die der angeforderten Datenteilseite zugeordnet ist.
  • Genauso wie die oben beschriebene, mehrfache Domänenkonfiguration kann ein ausgewählter erster Prozessor normalerweise einen Befehlsstrom verarbeiten, der Befehle von einer ersten Befehlsquelle enthält. Mindestens einer der anderen, miteinander verbundenen Prozessoren kann einen Paketprozessor zur bidirektionalen Paketübertragung zwischen den Knoten und den Speicherelementen enthalten. Dieser Paketprozessor enthält Einfügeelemente, um eine oder mehrere Einfügungs-Befehle einzufügen, die durch den ersten Prozessor in derselben Weise zu verarbeiten sind wie die Befehle von der ersten Befehlsquelle, und ohne deren Verarbeitungsreihenfolge zu berühren bzw. zu beeinflussen.
  • Es kann mindestens eine entfernte Verarbeitungszelle geben, wobei jede entfernte Verarbeitungszelle einen Zentralprozessor enthält, der zur Informationsübertragung an ein zugeordnetes Speicherelement angeschlossen ist. Ein entferntes Schnittstellenmodul, das an die entfernte Zelle angeschlossen ist, überträgt informationsdarstellende Signale zwischen dem Speicherelement, das der entfernten Verarbeitungszelle zugeordnet ist, und den Speicherelementen, die den anderen Verarbeitungszellen zugeordnet sind. Die entfernte Zelle kann sich an einem Punkt befinden, der physikalisch entfernt bzw. abgesetzt von den anderen Zellen ist, und das Schnittstellenmodul kann Elemente zum Übermitteln des informationsdarstellenden Signals zwischen dem physikalisch entfernten Punkt und anderen Zellen enthalten. Genauer gesagt kann das entfernte Schnittstellenmodul Glasfaserübertragungsmedien zum Übertragen von informationsdarstellenden Signalen zwischen der entfernten Zelle und den anderen Zellen enthalten.
  • Die Paketprozessoren können Empfangselemente für Pakete in elektrischer Kommunikation mit mindestens einem der Knoten zum Empfang der digitalen Signalpakete von den Knoten enthalten; und Paketaufspaltungselemente in elektrischer Kommunikation mit den Empfangselementen, um jedes von den Knoten empfangene, digitale Signalpaket in einen Kopfzeilenanteil (Headeranteil) und einen Datenanteil zu zerlegen.
  • Die Paketprozessoren können auch Empfangspufferelemente für Pakete enthalten, die ein Pufferelement in elektrischer Kommunikation mit den Paketaufspaltungselementen beinhalten, um die von den Paketaufspaltungselementen zerlegten digitalen Signalpakete zu speichern. Die Paketprozessoren enthalten ferner Elemente zur Frameverarbeitung in elektrischer Kommunikation mit den Empfangspufferelementen für Pakete und mit den Speicherelementen. Diese Frameprozessoren holen die digitalen Signalpakete aus den Empfangspufferelementen für Pakete, führen eine ausgewählte Verarbeitung auf den digitalen Signalpaketen aus und übermitteln die digitalen Signalpakete an eine Mehrzahl von Speicherelementen. Die Paketprozessoren enthalten darüber hinaus Fehlerprüfelemente, um die empfangenen digitalen Signalpakete auf Fehler zu überprüfen, und zum Speichern der Ergebnisse der Prüfoperation zusammen mit den Kopfzeilenanteilen der empfangenen digitalen Signalpakete.
  • Die Zellen können Empfangswarteschlangenelemente enthalten, um mindestens eine Empfangswarteschlange in den Speicherelementen zu speichern. Die Empfangswarteschlange beinhaltet eine Datenstruktur, die digitale Signalpakete enthält, die von den Paketprozessoren empfangenen wurden. Jeder beliebige von den Verarbeitungszellen kann ausgewählte Pakete aus der Empfangswarteschlange zur Verarbeitung holen. Die Zellen haben auch Übertragungswarteschlangenelemente, um mindestens eine Übertragungswarteschlange in den Speicherelementen zu speichern. Die Übertragungswarteschlange, die mindestens einem der Knoten entspricht, beinhaltet eine Datenstruktur, die digitale Signalpakete enthält, die an mindestens einen ausgewählten von den Knoten zu übermitteln sind.
  • Die Zellen beinhalten auch Empfangswarteschlangen-Paketübertragungselemente in Kommunikation mit den Empfangswarteschlangenelementen und den Übertragungswarteschlangenelementen, um selektiv ausgewählte digitale Signalpakete aus den Empfangswarteschlangen an mindestens eine ausgewählte Übertragungswarteschlange als Reaktion auf Steuersignale, die von der Mehrzahl der Prozessoren erzeugt werden, zu übertragen.
  • Die Frameprozessoren können Elemente zum Laden von ausgewählten von den digitalen Signalpaketen in die Empfangswarteschlangen enthalten. Die Frameprozessoren können auch Direktpaketübertragungselemente in elektrischer Kommunikation mit den Empfangspufferelementen für Pakete enthalten, die auf die Kopfzeilenanteile der digitalen Signalpakete reagieren, um ausgewählte digitale Signalpakete von den Empfangspufferelementen für Pakete zur Übertragungswarteschlange zu übertragen. Die Frameprozessoren können auch Einheiten enthalten, die an die Übertragungswarteschlangenelemente angeschlossen sind, um als Reaktion auf den Kopfzeilenanteil der digitalen Signalpakete Pakete aus der Übertragungswarteschlange zu holen. Diese Pakete werden in Übertragungspufferelementen für Pakete gespeichert und werden anschließend durch die Paketübertragungselemente an ausgewählte Knoten übertragen.
  • Anwendungsdienst-Warteschlangenelemente können in mindestens einer der Verarbeitungszellen vorgesehen werden, um eine Anwendungsdienst-Warteschlange zu speichern. Diese Warteschlange beinhaltet eine Datenstruktur, die Pakete enthält, die durch eine Verarbeitungszelle entsprechend mindestens einem Anwendungsprogramm zu bedienen sind. Pakete können aus den Empfangswarteschlangen in die Anwendungsdienst-Warteschlange als Reaktion auf Steuersignale geladen werden, die von den Prozessoren entsprechend den Anwendungsprogrammen erzeugt werden.
  • Anwendungsabschluß-Warteschlangenelemente können vorgesehen werden, um eine Anwendungsabschluß-Warteschlange zu speichern. Diese Warteschlange beinhaltet eine Datenstruktur, die Pakete enthält, die von den Verarbeitungszellen entsprechend dem Anwendungsprogramm erzeugt werden. Übertragungselemente werden zum Laden von ausgewählten Paketen aus der Anwendungsabschluß-Warteschlange in die Übertragungswarteschlange vorgesehen.
  • Die Erfindung wird als nächstes in Verbindung mit gewissen anschaulichen Ausführungsformen beschrieben; es sollte jedoch den Fachleuten auf diesem Gebiet klar sein, daß verschiedene Modifikationen, Ergänzungen und Auslassungen innerhalb des Anwendungs- bzw. Schutzbereiches der Erfindung vorgenommen werden können.
  • Kurzbeschreibung der Zeichnungen
  • Beispielhafte Ausführungsformen der Erfindung werden im Folgenden nur als Beispiel unter Bezug auf die begleitenden bzw. beigefügten Zeichnungen beschrieben, von denen:
  • 1 ein schematisches Diagramm ist, das eine paketvermittelnden Netzwerkkonfiguration darstellt, die gemäß der Erfindung aufgebaut ist;
  • 2 ein schematisches Diagramm ist, das eine herkömmliche Kommunikationsarchitektur mit OSI-Schichten darstellt;
  • 3 ein schematisches Diagramm ist, das eine Mehrprozessorstruktur darstellt, die in dem paketvermittelnden System von 2 verwendet wird;
  • 4 eine beispielhafte Verarbeitungszelte in der Mehrprozessorstruktur von 3 darstellt; die 5A5C weitere Ausführungsformen einer Verarbeitungszelle darstellen, die gemäß der Erfindung aufgebaut sind; die 5D und 5E Details der Verarbeitungszellen zeigen, die Paketverarbeitungseinheiten (Packet Processing Units, PSUs) gemäß der Erfindung enthalten;
  • 6 den Pakeffluß in dem System von 2 darstellt; 7 Details der PSUs aus den 5D und 5E liefert;
  • 8 die Paketübertragung zur Empfangswarteschlange in der PSU von 7 darstellt; 9 die Paketübertragung zur Übertragungswarteschlange zeigt; und
  • 10 die Übertragung von Paketen von der Übertragungswarteschlange in den Übertragungs-FIFO-Puffer darstellt.
  • Beschreibung der dargestellten Ausführungsformen
  • Überblick
  • 1 stellt ein Paketvermittlungssystem 100 gemäß der Erfindung dar. Das System 100 verbindet selektiv eine Mehrzahl von Benutzern untereinander, einschließlich der Datenbehandlungseinrichtungen 110, die durch ein lokales Bereichsnetzwerk (Local Area Network, LAN) verbunden sind, der Telekommunikationseinrichtungen 112 und der Anwendungsprogramme, die auf 101.1, 101.2, ..., 101.N arbeiten bzw. betrieben werden. Systembenutzer können auch andere Informationsanbieter und Träger für den Austausch bzw. die Kommunikation 115 umfassen. Das System beinhaltet eine Mehrprozessor-Paketvermittlungsvorrichtung 10 mit einer Mehrzahl von Verarbeitungszellen 18, um den Betrieb des Paketvermittlungssystems 100 in der unten beschriebenen Art zu steuern.
  • Die in 1 abgebildeten Benutzer kommunizieren mit der Mehrprozessor-Paketvermittlungsvorrichtung 10 über ein Vermittlungssystem oder -netzwerk 116. Dieses Vermittlungssystem kann in der Ausgestaltung herkömmlich sein und kann zum Beispiel die Hubs und Verbindungen eines herkömmlichen Telenet-Vermittlungsnetzwerks enthalten. Wenn ein Benutzer Daten übermittelt, verarbeitet das Vermittlungssystem 116 die Daten in einer bekannten Weise, um digitale Signalpakete zu erzeugen, die entsprechend den herkömmlichen Protokollen aufgebaut sind. Die Pakete können entlang der Leitungen 118 zu physikalischen Schnittstellenmodulen 120 geleitet werden. Alternativ können Pakete vor dem Empfang durch ein physikalisches Schnittstellenmodul 120 zu einer Leitungsvermittlung bzw. -umschaltung 119 geleitet werden. Die physikalischen Schnittstellenmodule 120 verarbeiten die empfangenen Pakete, wie unten in Verbindung mit 6 diskutiert, und übermitteln die Pakete zu den Verarbeitungszellen 18 der Paketvermittlungsvorrichtung 10. Die dargestellte Ausführungsform enthält einen Frame-Multiplexer/Demultiplexer 122, der zwischen einem physikalen Schnittstellenmodul 120 und einer Verarbeitungszelle 18 zwischengeschaltet ist, um eine weitere Verarbeitung der Signalpakete in einer unten diskutierten Weise auszuführen.
  • Die Paketvermittlungsvorrichtung 10 empfängt von den Benutzern erzeugte Signalpakete – einschließlich der Anwendungsprogrammen 101 – und überträgt jedes Paket an die ausgewählten Endbenutzer wie nachfolgend im Zusammenhang mit den Figuren beschrieben wird. Die Übertragung der Pakete von der Paketvermittlungsvorrichtung 10 zu den Benutzern wird in einer Art und Weise analog zu der beim Paketempfang bewerkstelligt.
  • Die in 1 dargestellte Paketvermittlungsvorrichtung 10 kann in Verbindung mit dem existierenden ISO-Referenzmodell für die Verbindung offener Systeme (Open Systems Interconnection, OSI) arbeiten bzw. betrieben werden. Das ISO-Referenzmodell, dargestellt in 2, wurde zu einem Standard für in Schichten angeordnete bzw. strukturierte Kommunikationsarchitekturen.
  • Eine detaillierte Beschreibung des ISO-Referenzmodells und der zugrundeliegenden Protokolle ist in Schwartz, Telecommunication Networks: Protocols, Modeling and Analysis, Addison-Wesley, 1987, zu finden, hier durch die Bezugnahme einbezogen.
  • Die Paketvermittlungsvorrichtung kann in Verbindung mit den vorgeschlagenen Standards zum integrierten, digitalen Breitband-Netzwerk (Broadband Integrated Digital Network, B-ISDN) und zum synchronen, optischen Netzwerk (Synchronous Optical Network, SONET) betrieben werden. B-ISDN ist ein aufkommender Standard für digitale Hochgeschwindigkeitskommunikation.
  • Zwei grundsätzliche Ansätze, die für das Multiplexing und das Vermitteln bei B-ISDN veröffentlicht wurden, sind der synchrone Übertragungsmodus (Synchronous Transfer Mode, STM) und der asynchrone Übertragungsmodus (Asynchronous Transfer Mode, ATM). Synchrones Multiplexing mit Zeitaufteilung (Synchronous Time Division Multiplexing) und Technologien zur Leitungsvermittlung (Circuit Switching) basieren auf STM-Prinzipien. Asynchrones Multiplexing mit Zeitaufteilung (Asynchronous Time Division Multiplexing) und Hochgeschwindigkeits-Paketvermittlung (High-Speed Packet Switching) basieren auf ATM-Prinzipien.
  • Trotz der Fortschritte in jüngster Zeit kann die Leitungsvermittlungstechnologie Verkehrsaufkommen mit plötzlichen Lastspitzen bzw. "bursts" nicht effizient transportieren. Ressourcen in der Vermittlungsherstellung bzw. in dem Vermittlungssystem werden vergeudet, wenn es keine Information zu übertragen gibt. Hochgeschwindigkeits-Paketvermittlung oder ATM-Technik beseitigt diese Einschränkungen, da die Bandbreite auf der Grundlage von mehreren bzw. mehrfachen Benutzeranfragen dynamisch reserviert bzw. zugeteilt wird. Eine weitere wesentliche Eigenschaft der Erfindung ist daher die Fähigkeit, Hochgeschwindigkeits-ATM-Techniken zu unterstützen.
  • In dem ISO-Modell und ähnlichen Architekturen ist implizit die Erkenntnis enthalten, daß das Kommunikationsproblem im Netzwerk in zwei Komponenten unterteilt werden kann. Die erste ist mit dem Kommunikationsnetzwerk selbst verknüpft. Daten die durch einen Endbenutzer an ein Netzwerk geliefert werden, müssen beim Ziel in einer richtigen und zeitgerechten Art und Weise ankommen. Die zweite Komponente des Kommunikationsproblems ist die Notwendigkeit sicherzustellen, daß die Daten, die schlußendlich an den Endbenutzer am Ziel ausgeliefert werden, (wieder) erkennbar und in der richtigen Form für ihren korrekten Gebrauch sind.
  • Das OSI-Referenzmodell umfaßt sieben Schichten, die in 2 dargestellt sind. Die untersten drei Schichten, 201–203, umfassen die Netzwerkstrukturen und Dienste, die sich mit dem ersten Teil des Kommunikationsproblems befassen. Die oberen vier Schichten, 204–207, umfassen die Komponenten und Operationen, die Dienste für die Endbenutzer zur Verfügung stellen. Diese Schichten sind daher eher den Endbenutzern als den Netzwerken zugeordnet.
  • Die Datensicherungs- bzw. Data-Link-Schicht 202 und die Bitübertragungs- bzw. physikalische Schicht 201 stellen idealerweise eine fehlerfreie Kommunikationsverbindung zwischen zwei Knoten in einem Netzwerk bereit. Die Aufgabe der Bitübertragungsschicht 201 ist es sicherzustellen, daß ein Bit, welches in das physikalische Medium an einem Ende der Verbindung eintritt, am Bestimmungs- bzw. Zielende ankommt. Unter Verwendung dieses zugrundeliegenden Bittransportdienstes ist der Zweck des Datensicherungs- bzw. Data-Link-Protokolls – das auch als Frameschichtprotokoll bzw. als Protokoll auf Frameniveau bezeichnet wird – sicherzustellen, daß Blöcke von Daten ohne Fehler über eine Verbindung übertragen werden. Diese Datenblöcke werden auch als Frames bzw. Rahmen bezeichnet.
  • Das Ziel der Vermittlungs- bzw. Netz(werk)schicht 203, die auch als Paketschicht bzw. -niveau bekannt ist, ist es, die Daten durch das Netzwerk oder, wenn nötig, durch mehrere Netzwerke von den Quell- bzw. Ursprungsknoten zu den Ziel- bzw. Bestimmungsknoten zu leiten bzw. zu lenken. Diese Schicht sorgt auch für Fluß- oder Stau- bzw. Verstopfungssteuerung, um Netzwerkressourcen wie Puffer in Knoten und Übertragungsverbindungen vor dem Vollfüllen zu bewahren, was möglicherweise zu einer Verklemmungs- bzw. Deadlock-Bedingung führen könnte. Beim Ausführen dieser Funktionen benutzt die Vermittlungsschicht die Dienste der darunterliegenden Datensicherungsschicht, um sicherzustellen, daß ein Block von Daten – d. h. ein Paket – das an einem Ende einer Verbindung entlang einer Route durch das Netzwerk übertragen wird, an seinem Ziel ohne Fehler ankommt.
  • Diese Netzwerkziele und Paketvermittlungsaufgaben werden vorteilhafterweise dadurch erfüllt, daß die Mehrfachzellenkonfiguration der Paketvermittlungsvorrichtung 10 ausgenutzt wird, die in 1 dargestellt ist. Insbesondere kann, auch wenn die Mehrprozessorstruktur 10 in 1 nur einen Ring oder eine Domäne von Verarbeitungszellen enthält, die Struktur erweitert werden, um eine Mehrzahl von Domänen zu umfassen, wie in 3 angegeben.
  • 3 stellt eine Mehrprozessorstruktur 10 dar, die in Verbindung mit einer Paketvermittlungspraktik der Erfindung benutzt werden kann. Eine Struktur von dieser Art ist in EP-A-0.322.117 weiter beschrieben.
  • Die dargestellte Mehrprozessorstruktur 10 enthält drei Informationsübertragungsdomänen: Domäne(0), Domäne(1) und Domäne(2). Jede Informationsübertragungsdomäne beinhaltet ein oder mehrere Domänensegmente, die durch ein Buselement und eine Mehrzahl von Zellenschnittstellenelementen gekennzeichnet sind. Im Besonderen enthält die Domäne(0) des dargestellten Systems 10 sechs Segmente, bezeichnet mit 12A, 12B, 12C, 12D, 12E bzw. 12F. Ähnlich enthält die Domäne(1) die Segmente 14A und 14B, während Domäne(2) das Segment 16 enthält.
  • Jedes Segment der Domäne(0), d. h. die Segmente 12A, 12B, ... 12F, beinhaltet eine Mehrzahl von Verarbeitungszellen. Zum Beispiel enthält wie in der Abbildung dargestellt das Segment 12A die Zellen 18A, 18B und 18C; das Segment 12B enthält die Zellen 18D, 18E und 18F, und so weiter. Jede dieser Zellen beinhaltet eine zentrale Verarbeitungseinheit und ein Speicherelement, die durch einen in der Zelle gelegenen Prozessorbus (nicht abgebildet) miteinander verbunden sind. Im Einklang mit der bevorzugten Praktik der Erfindung speichert das Speicherelement, das in jeder Zelle enthalten ist, alle Steuer- und Datensignale, die von der ihm zugeordneten zentralen Verarbeitungseinheit benutzt werden.
  • Wie weiter dargestellt kann sich jedes Domänen(0)-Segment dadurch auszeichnen, daß es ein Buselement besitzt, welches einen Kommunikationspfad zum Übertragen von informationsdarstellenden Signalen zwischen den Zellen des Segmentes bereitstellt. Daher ist das dargestellte Segment 12A durch den Bus 20A gekennzeichnet, Segment 12B durch 20B, Segment 12C durch 20C, und so weiter. Wie in EP-A-0.322.117 genauer beschrieben, werden die informationsdarstellenden Signale zwischen den Zellen 18A, 18B und 18C des beispielhaften Segments 12A mittels der Speicherelemente weitergereicht, die jeder dieser Zellen zugeordnet ist. Spezifische Schnittstellen zwischen diesen Speicherelementen und dem Bus 20A werden von den Zellenschnittstellenelementen 22A, 22B und 22C wie abgebildet bereitgestellt. Ähnlich direkte Kommunikationspfade werden in den Segmenten 12B, 12C und 12D zwischen ihren jeweiligen Zellen 18D, 18E, ... 18R durch die Zellenschnittstellenelemente 22D, 22E, ... 22R wie dargestellt eingerichtet.
  • Wie in der Abbildung dargestellt und oben angemerkt enthält von den übrigen Informationsübertragungsdomänen, d. h. Domäne(1) und Domäne(2), jede ein oder mehrere entsprechende Domänensegmente. Die Anzahl von Segmenten in jedem aufeinander folgenden Segment ist dabei kleiner als die Anzahl von Segmenten in dem vorangehenden. Folglich sind die zwei Segmente 14A und 14B von Domäne(1) weniger als die sechs 12A, 12B, ... 12F von Domäne(0), während die Domäne(2), die nur das Segment 16 besitzt, die wenigsten von allen enthält. Jedes der Segmente in Domäne(1) und Domäne(2), den "höheren" Domänen, enthält ein Buselement zum Übertragen von informationsdarstellenden Signalen innerhalb des jeweiligen Segmentes. In der Abbildung enthalten die Domänen(1)-Segmente 14A und 14B die Buselemente 24A bzw. 24B, während das Domänen(2)-Segment 16 das Buselement 26 enthält.
  • Die Segmentbusse dienen zur Übertragung von Information zwischen den Elementen der Komponenten jedes Segmentes, das heißt zwischen den mehreren Routingelementen der Domäne in dem Segment. Die Routingelemente selbst stellen einen Mechanismus zum Übertragen von Information zwischen einander zugeordneten Segmenten aufeinander folgender Domänen bereit. Zum Beispiel bieten die Routingelemente 28A, 28B und 28C einen Mechanismus zum Übertragen von Information zu und von dem Domänen(1)-Segment 14A und jedem der Domänen(0)-Segmente 12A, 12B bzw. 12C. In ähnlicher Weise bieten die Routingelemente 28D, 28E und 28F einen Mechanismus zum Übertragen von Information zu und von dem Domänen(1)-Segment 14B und jedem der Domänen(0)-Segmente 12D, 12E bzw. 12F. Ferner stellen die Routingelemente 30A und 30B der Domäne einen Informationsübertragungspfad zwischen dem Domänen(2)-Segment 16 und den Domänen(1)-Segmenten 14A und 14B bereit, wie abgebildet.
  • Die Routingelemente der Domäne bilden eine Schnittstelle zwischen ihren jeweiligen Segmenten mittels gegenseitiger Zusammenschaltungen bzw. Kopplungen an den Buselementen. Demnach bildet das Routingelement 28A der Domäne eine Schnittstelle zwischen den Buselementen 20A und 24A in den Zellenschnittstelleneinheiten 32A bzw. 34A, während das Element 28B eine Schnittstelle zwischen den Buselementen 20B und 24B in den Zellenschnittstelleneinheiten 32B bzw. 34B bildet, und so weiter. In ähnlicher Weise bilden die Routingelemente 30A und 30B Schnitt stellen zwischen ihren jeweiligen Bussen, d. h. 24A, 24B und 26, in den Zellenschnittstelleneinheiten 36A, 36B, 38A und 38B, wie abgebildet.
  • 3 stellt ferner einen bevorzugten Mechanismus zum untereinander Verbinden von entfernten Domänen und Zellen in einem digitalen Datenverarbeitungssystem dar. Die Zelle 18R, die sich an einem Punkt, physikalisch enfernt von dem Bussegment 20F befindet, kann mit diesem Bus und den ihm zugeordneten Zellen (18P und 18Q) mittels einer Glasfaserübertragungsleitung verbunden werden, wie mit einer gestrichelten Linie angegeben. Eine entfernte Schnittstelleneinheit 19 (Remote Interface Unit) bietet eine physikalische Schnittstelle zwischen der Zellenschnittstelle 22R und der entfernten Zelle 18R. Die entfernte Zelle 18R ist ähnlich zu den anderen dargestellten Zellen aufgebaut und wird ähnlich wie diese betrieben und enthält eine entfernte Schnittstelleneinheit, um die Glasfaserverbindung an ihrem entfernten Ende anzuschließen.
  • In einer ähnlichen Weise können die Domänensegmente 12F und 14B mittels einer Glasfaserverbindung von ihren Muttersegmenten miteinander verbunden werden. Wie dargestellt, beinhalten die jeweiligen Domänen-Routingeinheiten 28F und 30B je zwei entfernt angeschlossene Teile. Bezüglich der Domänen-Routingeinheit 28F ist zum Beipiel ein erstes Teil direkt über eine Standardbuskopplung mit der Zellenschnittstelle 34F des Segments 14B verbunden, während ein zweites Teil direkt mit der Zellenschnittstelle 32F des Segments 12F verbunden ist. Diese zwei Teile, die identisch aufgebaut sind, sind über eine Glasfaserverbindung, die durch eine gestrichelte Linie angegeben ist, verbunden. Wie oben ist eine physikalische Schnittstelle zwischen den Teilen der Domänen-Routingeinheit und dem Glasfasermedium durch eine entfernte Schnittstelleneinheit (nicht abgebildet) vorgesehen.
  • 4 stellt eine Ausführungsform der Verarbeitungszellen 18A, 18B, ..., 18R von 3 dar. Die abgebildete Verarbeitungszelle 18A beinhaltet eine zentrale Verarbeitungseinheit 58, die mit der externen Geräte- bzw. Einheitenschnittstelle 60, dem Datenteilcache 62 und dem Befehlsteilcache 64 über den Prozessorbus 66 bzw. den Befehlsbus 68 verbunden ist. Die Schnittstelle 60, welche die Kommunikation mit externen Einheiten bzw. Geräten, z. B. Plattenlaufwerken, über einen externen Gerätebus zur Verfügung stellt, ist in einer herkömmlichen Weise nach dem Stand der Technik aufgebaut.
  • Der Prozessor 58 kann irgendeiner von verschiedenen kommerziell verfügbaren Prozessoren sein, zum Beispiel die Motorola 68000 CPU, die angepaßt ist, um eine Schnittstelle zu den Teilcachespeichern 62 und 64 unter Steuerung einer Teilcache-Coexecution-Einheit zu bilden, die über die Daten- und Adreßsteuerleitungen 69A und 69B in einer herkömmlichen Weise nach dem Stand der Technik agiert, und ferner dafür ausgelegt ist, Speicherbefehle wie unten beschrieben auszuführen. Die Verarbeitungszellen sind in EP-A-0.322.117 weiter beschrieben.
  • Die Verarbeitungszelle 18A enthält darüber hinaus die Datenspeichereinheiten 72A und 72B, die über die Cachesteuerungseinheiten 74A und 74B an den Cachebus 76 angeschlossen sind. Die Cachesteuerungseinheiten 74C und 74D wiederum stellen eine Verbindung zwischen dem Cachebus 76 und den Verarbeitungs- und Datenbussen 66 und 68 bereit. Wie in 4 angegeben sorgt der Bus 78 für eine gegenseitige Verbindung zwischen dem Cachebus 76 und dem Domänen(0)- Bussegment 20A, das der abgebildeten Zelle zugeordnet ist. Bevorzugte Ausführungen bzw. Konstruktionen für die Cachesteuerungseinheiten 74A, 74B, 74C und 74D werden in EP-A-0.322.117 diskutiert.
  • Nach einer bevorzugten Ausführungsform beinhalten die Datencachespeicher 72A und 72B dynamische, wahlfrei zugreifbare Speichereinheiten (Dynamic Random Access Memory, DRAM), von denen jede fähig ist, bis zu 16 Mbytes an Daten zu speichern. Die Teilcachespeicher 62 und 64 sind statische, wahlfrei zugreifbare Speichereinheiten (Static Random Access Memory, SRAM), wobei das erstere fähig ist, bis zu 256 Kbytes an Daten zu speichem, und das letztere bis zu 256 Kbytes an Befehlsinformation speichem kann. Wie dargestellt stellen die Cache- und Prozessorbusse 76 und 64 64-Bit-Übertragungspfade bereit, während der Befehlsbus 68 einen 64-Bit-Übertragungspfad bereitstellt. Ein bevorzugter Aufbau des Cachebusses 76 wird in EP-A-0.322.117 bereitgestellt.
  • Die Fachleute auf diesem Gebiet werden verstehen, daß die abgebildete CPU 58 eine herkömmliche zentrale Verarbeitungseinheit und allgemeiner jede Vorrichtung bzw. Einheit, die in der Lage ist, Speicheranforderungen auszugeben, z. B. eine I/O-Steuerung oder ein anderes Verarbeitungselement für spezielle Zwecke, darstellen kann.
  • Die Befehlsausführung einer hier beschriebenen Verarbeitungszelle unterscheidet sich von herkömmlichen digitalen Verarbeitungssystemen in einigen wesentlichen Punkten. Die Verarbeitungszelle – z. B. 18A – hat mehrere Verarbeitungszellen oder funktionale Einheiten – z. B. 58, 60 – die Befehle parallel ausführen können. Darüber hinaus sind die funktionalen Einheiten "in einer Pipeline" angeordnet bzw. organisiert, um zu erlauben, daß mehrere Befehle zur selben Zeit durch Überlappen ihrer Ausführung im Gange sind. Dieses Pipelining ist in EP-A-0.322.117 weiter beschrieben.
  • Eine gemäß der Erfindung aufgebaute Verarbeitungszelle führt eine Sequenz von Befehlen aus, die aus dem Speicher geholt wurde. Der Kontext der Ausführung kann teilweise durch die Architektur und teilweise durch die Software definiert werden. Der Architekturanteil des Ausführungskontextes kann aus einem Kontextadreßraum, einer Vorrangs- bzw. Berechtigungsstufe bzw. einem Privilegienniveau, allgemeinen Registern und einem Satz von Programmzählern bestehen. Der Kontextadreßraum und das Privilegienniveau bestimmen, auf welche Daten in dem Speichersystem der Befehlsstrom Bezug nehmen darf. Allgemeine Register, die entsprechend bekannten Konstruktionspraktiken aufgebaut sind, werden zur Berechnung benutzt, zum Beispiel wie in EP-A-0.322.117 beschrieben.
  • Zwei Zeiteinheiten können zur Angabe des Zeitverhaltens von Befehlen verwendet werden. Diese Einheiten werden hier als "Takte" bzw. "Zyklen" bezeichnet. Ein Takt ist eine Einheit von Realzeit, die eine durch die Systemhardware festgelegte Dauer hat. Der Prozessor führt einen Befehlsholvorgang pro Zyklus aus. Ein Zyklus dauert einen Takt, außer es geschieht bzw. passiert ein "STALL" (Anhalten), wobei in diesem Fall ein Zyklus eine gewisse größere, ganzzahlige Anzahl von Takten dauert. Die Ausführung eines Befehls wird in Zyklen beschrieben und ist datenunabhängig.
  • Pipeline-STALLs können die Folge von Teilcache- und Cache-Verwaltungsoverhead sein. Die meisten LOAD- und STORE-Operationen werden ohne ein STALL abgeschlossen; jedoch kann jeder LOAD-, STORE- oder Speichersteuerungs-Befehl ein STALL verursachen bzw. veranlassen, um es dem System zu ermöglichen, Daten aus dem lokalen Cache oder von einer entfernten Zelle zu holen. Diese Verzögerungen werden hier als STALLs bezeichnet. Während eines STALL geht die Ausführung anderer Befehle nicht weiter, und es werden keine neuen Befehle geholt. STALLs stehen nicht mit dem Befehl selbst in Beziehung, sondern mit der Nähe der zugehörigen Daten. STALLs werden in Takten gemessen und jedes STALL ist eine ganzzahlige Anzahl von Takten. Auch wenn eine CEU möglicherweise ein STALL hat bzw. erfährt, während sie Daten aus einem lokalen Cache erhält, bleibt das Programmiermodell (ausgedrückt in Zyklen) konstant.
  • Wie in Zusammenhang mit den Ausführungsformen aus den 5A-5C dargestellt kann eine Verarbeitungszelle 18.1 entsprechend der Erfindung vier Verarbeitungselemente beinhalten, die hier auch als "funktionale Einheiten" bezeichnet werden: die CEU 58, die IPU 84, die FPU 82 und die XIU 60. Während die 5A-5C eine Verarbeitungszelle 18.1 mit vier Verarbeitungselementen darstellen, werden die Fachleute auf diesem Gebiet wissen, daß die Erfindung in Zusammenhang mit einer Verarbeitungszelle mit mehr oder weniger Verarbeitungselementen ausgeführt werden kann.
  • Insbesondere holt die CEU (Central Execution Unit, zentrale Ausführungseinheit) alle Befehle, steuert FETCH und STORE von Daten (hier als LOADS und STORES bezeichnet), steuert den Befehlsfluß (Verzweigungen) und führt die Arithmetik aus, die für Adreßberechnungen benötigt wird. Die IPU (Integer Processing Unit, Ganzzahl-Verarbeitungseinheit) führt ganzzahlig-arithmetische und logische Befehle aus. Die FPU (Floating point Processing Unit, Gleitkomma-Verarbeitungseinheit) führt Gleitkomma-Befehle aus. Die XIU (eXternal I/o Unit, externe I/O-Einheit) ist eine Zusammenausführungs- bzw. Co-Execution-Einheit, welche die Schnittstelle zu externen Einheiten bzw. Geräten bereitsstellt. Die XIU führt DMA (Direct Memory Access operations, direkte Speicherzugriffsbefehle) und programmierte I/O durch und enthält Timerregister. Sie führt verschiedene Befehle durch, um programmierte I/O zu steuern. Die Struktur und der Betrieb der XIU ist unten genauer beschrieben.
  • Gemäß 5A enthält die Verarbeitungszelle 18.1 demnach eine Menge von miteinander verbundenen Prozessoren 58, 60, 82 und 84, einschließlich einer CEU 58, um normalerweise einen Befehlsstrom zu verarbeiten, der Befehle aus dem Befehlscache 64 beinhaltet. Der Fluß von Befehlen aus dem Befehlscache 64 wird in 5A durch die gestrichelten Linien 86 angezeigt.
  • Wie in 5A dargestellt kann mindestens einer der Prozessoren – in dem dargestellten Beispiel die FPU 82 und die XIU 60 – Befehle vorbringen, hier als "Einfügungs-Befehle" bezeichnet, die von der CEU 58 ausgeführt werden können. Der Fluß der Einfügungs-Befehle von der FPU 82 zu der CEU 58 ist in 5A durch die gestrichelte Linien 88 angezeigt. Analog wird die Bewegung der Einfügungs-Befehle von der XIU 60 zu der CEU 58 durch die gestrichelten Linien 90 angedeutet.
  • Zudem können diese Einfügungs-Befehle von der CEU 58 in derselben Weise wie die Befehle aus dem Befehlscache 64, und ohne deren Ausführungsreihenfolge zu berühren, ausgeführt wer den. Überdies können, wie unten weiter erläutert, die Einfügungs-Befehle dasselbe Format wie die Befehle aus der ersten Befehlsquelle haben, einschließlich einer ersten Menge von digitalen Befehlsbits, um ausgewählte Adreßsignale anzugeben, und einer zweiten Menge von digitalen Befehlsbits, um ausgewählte Kommandosignale anzugeben. Die Einfügungs-Befehle mit diesem Format können Cacheverwaltungsbefehle umfassen, die durch den Befehlscache 64 oder durch die in 4 abgebildete Cachesteuerungseinheit 74D eingefügt werden.
  • Während 5A einen Befehlscache 64 als Quelle der Befehle darstellt, kann die Quelle der Befehle alternativ auch ein Prozessor oder eine Ausführungseinheit sein – unter gewissen Umständen einschließlich der CEU 58 -, die angepaßt sind zum Ausgeben von Signalen an das Befehlscacheelement, um zu veranlassen, daß Befehle aus dem Befehlscacheelement an die CEU 58 übermittelt werden.
  • Wie oben diskutiert kann die Verarbeitungszelle 18.1 eine Befehlspipeline enthalten, die aus dem Befehlsbus 68 besteht, um die Prozessoren miteinander zu verbinden und die Befehle zu transportieren. Die Prozessoren ihrerseits können Hardware- und Softwareelemente einschließen, um die Einfügungs-Befehle in die Befehlspipeline einzusetzen.
  • Die in 5A abgebildete XIU 60 kann Eingabe/Ausgabe (Input/output, I/O) Module zur Behandlung der Signale 70 beinhalten, die von Peripheriegeräten bzw. -einheiten empfangen und an Peripheriegeräte übertragen werden, hier auch als externe Geräte bzw. Einheiten bezeichnet. Diese I/O-Module können direkte Speicherzugriffselemente (Direct Memory Access, DMA) enthalten, die auf ausgewählte Signale von einer Peripherteeinheit reagieren, um DMA-Befehle einzufügen, die durch die CEU 58 in derselben Weise wie die Befehle aus der ersten Befehlsquelle, und ohne deren Verarbeitungsreihenfolge zu berühren, verarbeitet werden können. Diese Verarbeitungsreihenfolgen werden weiter unten genauer diskutiert. Die XIU 60 kann auch Grafiksteuerungsschaltungen enthalten, die entsprechend bekannten Konstruktionspraktiken aufgebaut sind, um Signale zu steuern, die an ein Anzeigegerät übermittelt werden; oder herkömmliche Textsuchelemente, um Datenstrukturen, die Text repräsentieren, zu durchsuchen.
  • Alternativ kann, wie in 5D dargestellt, die XIU aus den 5A-5C durch einen speziellen Paket-Coprozessor 85 ersetzt werden, was nachfolgend genauer diskutiert wird. Überdies können, wie 5E anzeigt, die vier Prozessoren aus den 5A-5C durch einen einzelnen Paketprozessor ersetzt werden, der Prozeduren der Frameschicht und ausgewählte, leistungskritische Prozeduren der Paketschicht implementiert.
  • Jeder Prozessor 58, 60, 82, 84, der in den 5A und 5B dargestellt ist, kann Register zum Speichern von digitalen Werten enthalten, die Daten und Prozessorzustände in einer Weise wiedergeben, die nachfolgend genauer diskutiert wird. Diese Register sind in 5C zusammen mit Berechnungseinheiten und anderen logischen Elementen abgebildet, die in einer Anwendung der Erfindung benutzt werden. Die oben diskutierten Einfügungs-Befehle steuern die Bewegung von Daten in und aus diesen Registern und veranlassen die Ausführung von ausgewählten logischen Operationen auf in den Registern gespeicherten Werten.
  • Der Betrieb des Paket-Coprozessors 85 wird als nächstes im Zusammenhang mit der Paketflußsteuerung wie in 6 dargestellt beschrieben.
  • Paketfluß
  • Entsprechend der Erfindung sind alle Datenstrukturen, die zur Paketvermittlungssteuerung benötigt werden, einschließlich der Empfangswarteschlangen 601, der Übertragungswarteschlangen 602, der Warteschlange für Antworten der Anwendung 610 und der Anwendungsdienstwarteschlange 612 in den Cachespeichereinheiten 72 resident, die den zellinternen Verarbeitungseinheiten zugeordnet sind. Diese Eigenschaft wird in 6 angezeigt, die auch darstellt, daß eine oder mehrere ankommende oder abgehende physikalische Verbindungen jeder Paketvermittlungs-Mitausführungseinheit bzw. Coexecution-Einheit (Packet Switching Co-Execution Unit, PSU) 85 zugeordnet sind. Eine oder mehrere Empfangswarteschlangen 601 sind jeder ankommenden Verbindung zugeordnet, und eine oder mehrere Übertragungswarteschlangen 602 sind jeder abgehenden Verbindung zugeordnet. Speicheradressen sind jeder Warteschlange jeweils segmentweise zugewiesen.
  • Empfang von der physikalischen Schnittstelle: Die physikalische Empfangsschnittstelle 120.1, die der PSU 85.1 zugeordnet ist, führt die herkömmlichen Operationen aus, die die übrige Bitübertragungsschicht und einen Teil der Datensicherungs- oder Frameschicht, die in 2 abgebildet sind, ausmachen. Jeder Frame oder jede Zelle wird von der physikalische Schnittstelle 120.1 empfangen und durch die PSU 85.1 beschrieben. Das Paket oder die Zelle wird danach in den Kopfzeilen- und den Datenanteil unterteilt und in dem PSU-Empfangs-FIFO-Puffer 602 gespeichert. Das empfangene Paket oder die Zelle wird auf Fehler überprüft, wobei die Ergebnisse zusammen mit den Kopfzeilen gespeichert werden.
  • Empfangsseitige Verarbeitung in der Frameschicht: Nochmals gemäß 6 schließt die PSU 85.1, die der physikalische Verbindung zugeordnet ist, die Verarbeitung in der Frameschicht ab und speichert den empfangenen Frame oder die Zelle in die Empfangswarteschlange 601. Wie oben angegeben entspricht mindestens eine im Cachespeicher residente Empfangswarteschlange jeder physikalischen Empfangsverbindung. Die PSU 85.1 benutzte Sequenzen von Einfügungs-Befehlen, die oben in Zusammenhang mit 5A diskutiert wurden, um die Empfangswarteschlange 601 direkt zu manipulieren.
  • Verarbeitung in der Paketschicht: Da die Datenstrukturen der Empfangswarteschlange 601 und der Übertragungswarteschlange 602 vollständig im Cachespeicher 72 resident sind, kann jeder Prozessor innerhalb der Mehrprozessorstruktur 10 das Paket-(Vermittlungs-)Schichtprotokoll ausführen. Das Paket wird aus der Empfangswarteschlange 601 in die passende Übertragungswarteschlange 602 auf der Grundlage von speicherresidenten Paketrouting- und Flußsteuerungstabellen verschoben. Diese Tabellen werden in EP-A-0.322.117 diskutiert.
  • Da überdies die meisten Pakete keine Berechnungsressourcen benötigen, kann die PSU, die der physikalischen Empfangsverbindung zugeordnet ist, im typischen Fall direkt das Paketschichtprotokoll ausführen, indem sie das Paket direkt von der PSU in die passende Übertragungswarteschlange überträgt und die Empfangswarteschlange umgeht. Dies ist bei Block 614 in 6 angegeben. Wenn eine komplexere Behandlung erforderlich ist, wird das Paket zur Paketverarbeitung durch irgendeinen Prozessor in der Empfangswarteschlange gelassen, wie durch tung durch irgendeinen Prozessor in der Empfangswarteschlange gelassen, wie durch Block 614 angegeben.
  • Pakete können auch aus einer Empfangswarteschlangen-Kette 601 zu einer Anwendungsdienstwarteschlange 612 zur Verarbeitung auf höherer Stufe bzw. in einer höheren Schicht geleitet werden. Beispiele für Verarbeitung auf höherer Stufe sind Transaktionen, Datenbankwarteschlangen oder Berechnungen entsprechend einem Anwendungsprogramm, das auf der Mehrprozessorstruktur 10 abläuft. Verarbeitung auf höherer Stufe verwendet denselben Prozessorpool und denselben Cachespeicher wie die Paketvermittlungsoperationen. In der dargestellten Ausführungsform werden Pakete, die durch Verarbeitung auf höherer Stufe erzeugt werden, in eine Anwendungsabschlußwarteschlange 612 gestellt. Die Verarbeitung in der Paketschicht wird auf von der Anwendung erzeugten Paketen in einer ähnlichen Weise durchgeführt wie auf Pakete aus der Empfangswarteschlangen-Kette.
  • Übertragungsseitige Verarbeitung in der Frameschicht: Die PSU 85.2, die einer physikalischen Übertragungsverbindung zugeordnet ist, führt die Verarbeitung in der Frameschicht durch und verschiebt den Frame oder die Zelle in eine PSU-residente Übertragungsschnittstelle, die den FIFO-Puffer 618 enthält, zur Übertragung an die physikalische Schnittstelle 120.2. Eine oder mehrere cachespeicherresidente Übertragungswarteschlangen entsprechen jeder physikalischen Übertragungsverbindung. In einer ähnlichen Weise, wie oben in Zusammenhang mit der Verarbeitung von empfangenen Paketen diskutiert, verwendet die übertragende PSU 85.2 Sequenzen von Einfügungs-Befehlen, um die Übertragungswarteschlange direkt zu manipulieren.
  • Übertragung an die physikalische Schnittstelle: Die physikalische Übertragungsschnittstelle 120.2 der PSU führt den Rest des Frameschichtprotokolls und einen Teil der Operationen aus, die die physikalische Verbindungsschicht entsprechend herkömmlicher ISO-Referenzmodell-Praxis ausmachen. Jeder Frame oder jede Zelle wird aus den Kopfzeilen und den Daten erstellt, die im PSU-Übertragungs-FIFO-Puffer 618 gespeichert sind, und der passende Fehlerprüfcode wird auf bekannte Weise erzeugt.
  • PSU-Struktur
  • Organisation: Wie in 7 dargestellt besteht die PSU aus fünf Hauptblöcken: dem Übertragungspuffer 701, dem Empfangspuffer 702, der Kommandopuffer-Registrierdatei 703, dem Zustandsautomaten (Finite bzw. Functional State Machine, FSM) für Einfügungs-Befehle 704 und der Befehlsdekodiereinheit 705. Diese Menge von Einheiten kann in zwei Gruppen eingeteilt werden: Blöcke, die physikalischen Schnittstellen zugeordnet sind, und Blöcke, die der Schnittstelle der Nebenausführungs-Einheit (Co-Execution Unit, CEU) oder dem oben beschriebenen Prozessorbus zugeordnet sind. Insbesondere sind der Übertragungspuffer 701 und der Empfangspuffer 702 mit der physikalischen Schnittstelle verbunden und übertragen Pakete zu oder von der physikalischen Schnittstelle. Die Kommandopuffer-Registrierdatei 703, der Zustandsautomat für Einfügungs-Befehle 704 und der Befehlsdekodierer 705 sind der Schnittstelle der Coexecution-Einheit zugeordnet.
  • Übertragungspuffer: Der Übertragungspuffer enthält ein Übertragungsdaten-FIFO 710, ein Übertragungskopfzeilen-FIFO 711, einen Kopfzeilenformatierer 712 und einen Paketzustandsautomaten 713. Die Paket-FSM koordiniert den Aufbau des physikalischen Pakettrames und der Zellen innerhalb eines Frames aus den Inhalten des Kopfzeilen-FIFO-Puffers und des Daten-FIFO-Puffers. Der Kopfzeilen- und der Daten-FIFO werden vorab durch den Zustandsautomaten für Einfügungs-Befehle aus dem SVA-Cache geladen. Eine weitere Beschreibung dieser Elemente wird in EP-A-0.322.117 gegeben.
  • Der Kopfzeilenformatierer 712 baut die physikalischen Kopfzeilen (Header) unter Verwendung herkömmlicher Prozesse basierend auf der aus dem Cache geholten Datenstruktur und als Reaktion auf TRANSMIT-Kommandos vom Kommandopuffer 703 auf. Die Paket-FSM 713 baut den/die auszusendende(n) Frame oder Zelle durch Verwenden von Operationen, die auf dem Gebiet der digitalen Verarbeitung bekannt sind, basierend auf den Kopfzeilen-Inhalten und als Reaktion auf TRANSMIT-Kommandos vom Kommandopuffer 703 auf. Die dargestellte Ausführungsform stellt eine verbesserte Flexibilität bei der Verarbeitung von Paketformaten und Frameschicht- Protokollen durch Anwenden des TRANSMIT-Kommandos, mit denen Operationen des Kopfzeilenformatierers und der Paket-FSM bestimmen werden, zur Verfügung. Der Übertragungspuffer liefert auch eine geeignete Serialisierung und Steuersignale, um auf die physikalische Schnittstelle zuzugreifen entsprechend bekannter technischer Praktiken.
  • Empfangspuffer: Der Empfangspuffer 702 umfaßt ein Empfangsdaten-FIFO 714, ein Empfangskopfzeilen-FIFO 715, einen Kopfzeilen-Aufspalter 716 und eine Paket-FSM 717. Die Paket-FSM 717 arbeitet entsprechend bekannten Prinzipien der digitalen Signalverarbeitung, um den Empfang und die Aufspaltung der Paketframes oder Signalzellen innerhalb eines Frames in Kopfzeilen- und Datenanteile zum Einstellen in den Kopfzeilen-FIFO 715 bzw. den Daten-FIFO 714 zu koordinieren. Das RECEIVE-Kommando aus dem Kommandopuffer 703 wird von der Paket-FSM 717 verwendet, um die Kopfzeilen- und Datenanteile des Frames oder der Zelle geeignet aufzuteilen.
  • Der Kopfzeilenaufspalter 716 formatiert die Kopfzeile neu bzw. erneut in die Datenstruktur, die in den SVA-Cache zu speichern ist, basierend auf dem RECEIVE-Kommando aus dem Empfangspuffer. Wie beim Übertragungspuffer wird Flexibilität bezüglich des Paketformates und des Frameschicht-Protokolls bzw. des Protokolls auf Frameniveau dadurch erzielt, daß der Betrieb des Kopfzeilenaufspalters und der Paket-FSM durch das RECEIVE-Kommando gesteuert wird. Der Empfangspuffer 702 sorgt auch für die geeignete Parallelisierung der Paket- und Steuersignale zum Zugriff auf die physikalische Schnittstelle.
  • Kommandopuffer: Der Kommandopuffer 703 ist eine PSU-residente Mehranschluß-Speichereinrichtung, die RECEIVE- und TRANSMIT-Kommandos enthält und zeitweilige bzw. vorübergehende Speicherung auf dem Chip für Teile der cachespeicherresidenten Datenstrukturen zur Verfügung stellt. Zeiger auf aktive Einträge der cachespeicherresidenten Warteschlangen werden für die Empfangspuffer und die Übertragungspuffer separat gehalten.
  • In der dargestellten Ausführungsform beinhaltet der Kommandopuffer drei READ-Anschlüsse und zwei WRITE-Anschlüsse. Zwei READ-Anschlüsse sind für das aktuelle TRANSMIT- Kommando für den Übertragungspuffer 701 und für das aktuelle RECEIVE-Kommando für den Empfangspuffer 702 reserviert bzw. zugeteilt. Der erste WRITE-Anschluß ermöglicht es der Übertragungspaket-FSM 713 oder der Empfangspaket-FSM 717, den Kommandopufferzustand zu aktualisieren. Der dritte READ-Anschluß ist an den Datenbus angeschlossen, um Kommandopufferinhalte direkt in den Cachespeicher zu speichern. Der zweite WRITE-Anschluß hat bzw. bildet eine Schnittstelle zum Datenbus, um Inhalte des Cachespeichers, auf die zugegriffen wird, zu empfangen und Daten in den Kommandopuffer zu speichern.
  • IISM: Der Zustandsautomat für Einfügungs-Befehle (Inserted Instruction State Machine, IISM) 704 erzeugt die erforderlichen Befehle, um Frames oder Zellen aus dem Empfangspuffer 702 in die cachespeicherbasierten Warteschlangen zu speichern. Die IISM 704 erzeugt auch die erforderlichen Befehle, um Frames oder Zellen aus den cachespeicherbasierten Warteschlangen in den Übertragungspuffer zu laden.
  • Darüber hinaus erzeugt die IISM 704 die erforderlichen Befehle, um die cachespeicherbasierten Warteschlangenstrukturen zu manipulieren. Diese Operationen umfassen das Aktualisieren von Zeigern innerhalb der Warteschlangeneinträge, das Erzeugen von Befehlen zum atomaren Aktualisieren von Warteschlangendatenstrukturen – einschließlich GET-, GETW- und RELEASE-Kommandos, das Erzeugen von Befehlen zum PREFETCH (Vorab Holen) von Warteschlangeneinträgen, die in naher Zukunft benötigt werden, und zum POSTSTORING (Nachträglich Speichern) von Warteschlangeneinträgen, für die Kopien von anderen Zellen in naher Zukunft benötigt werden. Sowohl die PREFETCH-Befehle als auch gewisse LOAD- und STORE-Befehle erlauben es Programmen anzufordern, daß ihre Cachespeicher die Zustände "nur-Lesen", "nicht-exklusiv" oder "exklusiv" erhalten. Zum Beispiel fordert das Kommando PREFETCH SUBPAGE (Teilseite vorab holen) an, daß eine Kopie einer Teil- bzw. Unterseite auf dem lokalen Cache in einem angegebenen Zustand erhalten wird. PREFETCH SUBPAGE gibt an, ob die Teilseite in den Befehls- oder Daten-Teilcache des Prozessors vorab geholt werden sollte oder nicht. Ein nachfolgendes Laden der Teilseite wird blockiert, bis das PREFETCH SUBPAGE abgeschlossen ist.
  • Der Befehl POST STORE SUBPAGE (Teilseite nachträglich speichern) oder PSTSP veranlaßt den lokalen Cache dazu, eine nur lesbare Kopie der Teilseite über den Ring rundzusenden, wenn der Zustand der Teilseite "exklusiv" ist. Jede Zelle, deren Cache einen Deskriptor für die Seite enthält, welche die Teilseite enthält, erhält eine nur lesbare Kopie der Teilseite. PSTSP arbeitet entsprechend den folgenden Schritten:
    • 1. Der Prozessor übergibt die Adresse der Teilseite und die PSTSP-Anforderung an den lokalen Cache.
    • 2. Der lokale Cache gibt eine OK-Antwort an den Prozessor aus, und die Ausführung im Prozessor geht weiter.
    • 3. Wenn der Zustand der Teilseite "exklusiv" ist und wenn die Adresse der Teilseite, die durch PSTSP angegeben wird, keiner anhängigen Ring-Anforderung entspricht, dann
    • a. gibt der lokale Cache eine XCACHE.RO Teilseite-Ungültigmachen-Anforderung an den Prozessor aus, wenn sich die Teilseite im Teilcache befindet. Der Prozessor ant wortet auf die Ungültigmachen-Anforderung, indem er Daten an den lokalen Cache übergibt, wenn die Unterblöcke modifiziert sind; und
    • b. übermittelt der lokale Cache durch Rundsenden eine nur lesbare Kopie der Teilseite auf dem Ring.
    • 4. Ansonsten wird PSTSP nicht ausgeführt.
  • Der PSTSP-Befehl leitet einen Prozeß zum Paket-Duplizieren ein. Duplikate der Datenpakete werden vom Ursprungs-RING: 0 basierend auf bzw. abhängig von DUPLIMIT weitergeleitet. Wenn DUP: CONDFORWARD gilt, werden Duplikate der Pakete von RRC: 0 an Ring: 1 bedingt weitergeleitet, wenn die Seite nicht in exklusivem Besitz von dem lokalen Ring: 0 ist. Wenn DUP: ALLFORWARD gilt, werden Duplikate der Pakete immer von RRC: 0 an Ring: 1 weitergeleitet. Ring: 1-Duplikate der Datenpakete werden von einem entfernten RRC: 1 kopiert, wenn er einen Deskriptor für die entsprechende Seite innerhalb seines lokalen Ring: 0 reserviert hat und der Extraktionspuffer in der EXTBUF: ALL-Region liegt.
  • Diese Kommandos einschließlich PREFETCH und POSTSTORE sind genauer in EP-A-0.322.117 beschrieben.
  • Befehlsdekodierung: Der Befehlsdekodier-Block 705 dekodiert durch die PSU auszuführende Befehle und versetzt die PSU 85 in die Lage, die bzw. der Befehlspipeline zu folgen. Durch die PSU auszuführende Befehle können aus dem Befehlsteilcache (5A) geholte Befehle sein oder Einfügungs-Befehle, die durch die PSU oder andere Coexecution-Einheiten eingefügt wurden.
  • PSU-Operationen
  • Die PSU führt drei grundlegende Manipulationen der Warteschlangen im Cachespeicher durch. Die Beispiele, die in den 8, 9 und 10 abgebildet sind, verwenden eine grundlegende Warteschlangenstruktur mit einer einfach verketteten Liste, jedoch werden Fachleute auf diesem Gebiet anerkennen bzw. zugestehen, daß verschiedene, beliebige Warteschlangenstrukturen implementiert werden können und innerhalb des Anwendungs- bzw. Schutzbereiches der Erfindung liegen. Warteschlangeneinträge, die gemeinsam benutzt werden und durch die Sequenz modifiziert werden, werden während des Betriebs von der PSU durch eingefügte GET-, GETW- und RELEASE-Befehle, die durch den lokalen Cache ausgeführt werden, gesperrt (LOCKED) und entsperrt (UN-LOCKED). Warteschlangeneinträge werden unter Verwendung von GET oder GETW gesperrt (LOCKED), um den Zustand "atomar" bzw. "atomic" am Beginn der Sequenz zu setzen. Warteschlangeneinträge werden am Ende der Sequenz durch den RELEASE-Befehl entsperrt (UNLOK-KED). Diese Befehle sind genauer in EP-A-0.322.117 beschrieben.
  • Paketübertragung zur Empfangswarteschlange: 8 zeigt die Sequenz, die von der PSU 85 ausgeführt wird, um ein empfangenes Paket aus dem PSU-internen Empfangs-FIFO in eine cachespeicherbasierte Empfangswarteschlange zu übertragen. Der alte Kopf (OLDHEAD) aus der leeren Warteschlange wird verschoben, um der neue End- (NEWTAIL) Eintrag der Empfangswarteschlangen-Kette zu werden; und der empfangene Frame oder die Zelle wird in den Eintrag gespeichert. Die Sequenz umfaßt die folgenden vier Schritte:
    • 1. Die PSU aktualisiert den Zeiger auf den Kopf der leeren Warteschlange von der Adresse von OLDHEAD auf die Adresse von NEWHEAD.
    • 2. Die PSU aktualisiert –Verwendung von STORE INSERTED-INSTRUCTI unter ON – den Vorwärtszeiger des OLDTAIL-Eintrags in der Empfangswarteschlangen-Kette auf die Adresse des Eintrags, der gerade aus der Warteschlange mit leeren Einträgen entfernt wurde. Dieser wird zum NEWTAIL-Eintrag.
    • 3. Die PSU holt vorab – unter Verwendung von PREFETCH INSERTED-INSTRUCTION – den NEWHEAD-Eintrag der Warteschlange mit leeren Einträgen.
    • 4. Die PSU speichert – unter Verwendung von STORE INSERTED-INSTRUCTION – die Daten und die Kopfzeile des Frames oder der Zelle in den NEWTAIL-Eintrag der Empfangswarteschlangen-Kette.
  • Paketübertragung von der Empfangswarteschlange in die Übertragungswarteschlange: Wie in 9 abgebildet wird ein Eintrag aus einer Empfangswarteschlangen-Kette entfernt und in eine passende Übertragungswarteschlangen-Kette abhängig von der Verarbeitung in der Paketschicht verschoben. Diese Sequenz, die von der PSU oder von jedem beliebigen Prozessor durchgeführt werden kann, umfaßt die folgenden fünf Schritte:
    • 1. Der Prozessor oder die PSU entfernt OLDHEAD aus der Empfangswarteschlange-Kette durch Aktualisieren (STORE INSERTED-INSTRUCTION) des Kopfzeigers der Empfangswarteschlange auf die Adresse von NEWHEAD.
    • 2. Der Prozessor oder die PSU holt vorab das Kettenglied NEWHEAD der Empfangswarteschlange.
    • 3. Der Prozessor oder die PSU führt die Verarbeitung in der Paketschicht auf dem Frame oder der Zelle durch, um die passende Übertragungswarteschlangen-Kette auszuwählen. Die PSU implementiert einfache Verarbeitung in der Paketschicht direkt, indem sie das Vorliegen von Fehlern prüft und in cachespeicherbasierten Routingtabellen zum Bestimmen des Routing für die Übertragung nachsieht. Die passenden Kopfzeilen- und Kommandobits werden modifiziert.
    • 4. Der Prozessor oder die PSU aktualisiert den Zeiger des OLDTAIL-Eintrags in der Übertragungswarteschlangen-Kette auf die Adresse von OLDHEAD aus der Empfangswarteschlangen-Kette.
    • 5. Der Prozessor oder die PSU führt POSTSTORES für OLDTAIL und NEWTAIL durch.
  • Paketübertragung von der Übertragungswarteschlange in den Übertragungs-FIFO: Die PSU führt die in 10 angegebene Sequenz aus, um einen zu übertragenden Frame oder eine zu übertragende Zelle aus einer cachespeicherbasierten Übertragungswarteschlangen-Kette in den PSU-internen Übertragungs-FIFO zu übertragen. Der alte Kopf (Kopfzeilen) aus der Übertragungswarteschlangen-Kette wird in den Übertragungs-FIFO der PSU geladen und wird verschoben, um der NEWTAIL-Eintrag der ursprünglichen, leeren Empfangswarteschlange zu werden. Die Sequenz umfaßt die folgenden vier Schritte:
    • 1. Die PSU lädt (LOAD INSERTED INSTRUCTIONS) die Daten und die Kopfzeilen des Frames oder der Zelle aus der Übertragungswarteschlangen-Kette in die Übertragungs-FIFOs der PSU.
    • 2. Die PSU holt vorab (PREFETCH INSERTED INSTRUCTION) den NEWHEAD-Eintrag der Übertragungswarteschlangen-Kette.
    • 3. Die PSU aktualisiert den Kopfzeiger der Übertragungswarteschlangen-Kette von der Adresse von OLDHEAD auf die Adresse von NEWHEAD.
    • 4. Die PSU aktualisiert (STORE INSERTED INSTRUCTION) den Vorwärtszeiger des OLD-TAIL-Eintrages der Übertragungswarteschlangen-Kette auf die Adresse des Eintrages, der gerade aus der Übertragungswarteschlangen-Kette entfernt wurde und der nun zum NEW-TAIL-Eintrag wird.
  • Die Fachleute auf diesem Gebiet werden erkennen, daß die Mehrprozessor-Paketvermittlungsstrukturen und die Betriebssequenzen, die oben in Zusammenhang mit den 110 beschrieben sind, für eine erhöhte Effizienz bei der Paketvermittlung sorgen. Insbesondere stellt die in 3 abgebildete hierarchische Ringstruktur eine extrem schnelle Zwischenverbindungsstruktur zur Verfügung, die Datenraten von ungefähr 0,8 Gigabytes/Sekunde für Ring(0) und bis zu ungefähr 3,2 Gigabytes/Sekunde für Ring(1) leistet bzw. erreicht. Darüber hinaus sind der dargestellte Cachespeicher und die dargestellten Zwischenverbindungsstrukturen paketorientiert, und die grundlegende Einheit der Datenübertragung in den dargestellten Ausführungsformen ist eine 128 Byte große Unter- bzw. Teilseite.
  • Überdies ermöglicht es die dargestellte Cachespeicher-Konfiguration, daß alle Datenstrukturen im virtuellen und physikalischen Speicher resident und für alle Prozessoren transparent zugreifbar sind. Paketvermittlungsanwendungen können daher leicht programmiert werden, wobei sie gleichzeitig optimale Leistung erreichen. Der große, gemeinsam genutzte Adreßraum der dargestellten Struktur erlaubt es, daß eine einstufige Speicherung von allen Prozessoren und PSUs gleichförmig bzw. gleichartig gemeinsam genutzt werden kann. Die Fachleute auf diesem Gebiet werden erkennen, daß der Zustand "atomar" bzw. "atomic" in dem dargestellten Speichersystem eine effiziente und bequeme, Hardware-sperrende Grundfunktion (Primitive) zur Verfügung stellt.
  • Gemäß der Erfindung wird der Speicherzugrtff vorteilhafterweise mit Berechnungsoperationen der Prozessoren und PSUs überlappt, wodurch Speicherverzögerungen beseitigt werden. Dies wird durch die oben diskutierten PREFETCH- und POSTSTORE-Befehle erreicht.
  • Ferner erlaubt die oben beschriebene Architektur von Nebenausführungs- bzw. Coexecution-Einheiten eine direkte Zwischenverbindung von spezialisierten Coexecution-Einheiten mit dem Cachespeichersystem. Die PSU ist ein Beispiel einer spezialisierten Coexecution-Einheit. Die spezialisierte Coexecution-Einheit kann sowohl alle Speichersystembefehle als auch alle Befehle der spezialisierten Coexecution-Einheit ausgeben und ausführen. Das System erreicht eine dynamische Lastverteilung, weil alle Prozessoren und PSUs gleichermaßen Zugriff auf den Cachespeicher haben.
  • Es versteht sich, daß Änderungen in den obigen Konstruktionen und in den vorstehenden Sequenzen von Operationen vorgenommen werden können, ohne den Anwendungs- bzw. Schutzbereich der Erfindung zu verlassen. Es ist demnach vorgesehen bzw. beabsichtigt, daß alles, was in der vorstehenden Beschreibung enthalten oder in den beigefügten Zeichnungen abgebildet ist, eher in einem veranschaulichenden als in einem einschränkenden Sinn zu interpretieren ist.

Claims (18)

  1. Vorrichtung zum Umschalten von digitalen Paketen für das gezielte Schalten digitaler Signalpakete zwischen einem Satz von Knoten, wobei die Knoten entsprechend einem ausgewählten Protokoll gestaltet sind, das zumindest ein Protokoll auf Paketniveau und ein Protokoll auf Frameniveau umfaßt, wobei die Vorrichtung eine Mehrzahl von Verarbeitungszellen (18) aufweist, die jeweils zumindest eine Verarbeitungseinheit (58) umfassen, welche mit einem zugehörigen, inhaltsadressierbaren Speicherelement (72) verbunden ist, um digitale, Information wiedergebende Signale zu speichern, wobei eine entsprechende Verarbeitungszelle (18.1) weiterhin eine Paketverarbeitungseinrichtung (85) aufweist und das Speicherelement so betreibbar ist, daß es zumindest eine Empfangsschlange (601) und zumindest eine Sendeschlange (602) bereitstellt, wobei die Paketverarbeitungseinrichtung (85) aufweist: eine Verarbeitungseinrichtung (85.1) für ein empfangenes Paket, welche so betreibbar ist, daß sie eine Verarbeitung auf Frameniveau mit einem von zumindest einem Knoten empfangenen Paket durchführt und wahlweise das Paket in einer der erwähnten Empfangsschlangen oder der Sendeschlange speichert, und eine Sendepaketverarbeitungseinrichtung (85.2), die so betreibbar ist, daß sie auf ein Paket in der Sendeschlange zugreift, um eine Verarbeitung auf Frameniveau daran auszuführen und um das Paket an zumindest einen Knoten zu übersenden.
  2. Vorrichtung zur digitalen Paketumschaltung nach Anspruch 1, wobei die Verarbeitungseinrichtung für das empfangene Paket so betreibbar ist, daß sie das empfangene Paket in der Empfangsschlange speichert, wenn eine Verarbeitung auf Paketniveau erforderlich ist.
  3. Vorrichtung zur digitalen Paketumschaltung nach Anspruch 1 oder 2, wobei die erwähnte Verarbeitungszelle einen Satz von Verarbeitungseinheiten aufweist, welche umfassen: eine erste Verarbeitungseinheit (58), die so betreibbar ist, daß sie einen Befehlsstrom, welcher Befehle aus einer ersten Befehlsquelle aufweist, verarbeitet, und eine weitere Verarbeitungseinheit (85), die die erwähnte Paketverarbeitungsvorrichtung bereitstellt, wobei die Paketverarbeitungsvorrichtung eine Einfügeeinrichtung aufweist, um einen oder mehrere eingefügte Befehle einzufügen, damit diese durch die erste Verarbeitungseinheit in derselben Art und Weise verarbeitet werden wie die Befehle aus der ersten Verarbeitungsquelle und ohne die Verarbeitungsreihenfolge zu beeinflussen.
  4. Vorrichtung zur digitalen Paketumschaltung nach einem der vorstehenden Ansprüche, mit: einer Mehrzahl von Informationsübertragungsdomänen (0, 1, 2), die jeweils ein oder mehrere Segmente aufweisen, wobei die Mehrzahl von Informationsübertragungsdomänen eine erste Informationsübertragungsdomäne umfassen, welche eine Mehrzahl von Domäne (0)-Segmenten hat, die jeweils ein zugehöriges Buselement (20) aufweisen, und eine erste Mehrzahl der Verarbeitungszellen (22), welche mit dem Buselement verbunden sind, um Information repräsentierende Signale zu übertragen, wobei jede der Zellen eine zentrale Verarbeitungseinheit (58) und ein zugehöriges inhaltsadressierbares Speicherelement (72) für das Speichern von informationsrepräsentativen Signalen aufweist, wobei die Speicherelemente Schnittstelleneinrichtungen (74) umfassen, die mit der zugehörigen zentralen Verarbeitungseinheit und mit dem Buselement verbunden sind, um Information repräsentierende Signale zu übertragen, wobei die Zellen dafür ausgelegt sind, daß die Übertragung von informationsrepräsentativen Signalen zwischen den zugehörigen zentralen Verarbeitungseinheiten nur durch das jeweilige Speicherelement stattfindet, und einem Domäne (1)-Segment, welches ein zugehöriges Bussegment (24) und eine Mehrzahl von Routingelementen (34) aufweist, wobei jedes der Routingelemente mit dem zu dem Domäne (1)-Segment gehörigen Buselement verbunden ist sowie mit dem Buselement, welches zu einem der Domäne (0)-Segmente gehört, um Information repräsentierende Signale zwischen dem Domäne (1)-Segment und dem zugehörigen Domäne (0)-Segment zu übertragen, wobei die Verarbeitungszellen, die jedem der Domäne (0)-Segmente zugeordnet sind, in der Lage sind, informationsrepräsentative Signale (nur durch das Domäne (1)-Segment) zu den Verarbeitungszellen zu übertragen, welche zu den übrigen der Domäne (0)-Segmente gehören.
  5. Vorrichtung zur digitalen Paketumschaltung nach einem der vorstehenden Ansprüche, wobei: die Mehrzahl von Verarbeitungszellen zumindest eine ferngelegene Verarbeitungszelle (18R) umfaßt, wobei jede derartige entfernte Verarbeitungszelle eine zentrale Verarbeitungseinheit aufweist, die für eine Informationsübertragung mit einem zugeordneten Speicherelement verbunden ist, und eine ferngelegene Schnittstelleneinrichtung (19) mit der ferngelegenen Zelle verbunden ist, um informationsrepräsentative Signale zwischen dem Speicherelement, welches der ferngelegenen Verarbeitungszelle zugeordnet ist, und den Speicherelementen, welche den anderen aus der Mehrzahl von Verarbeitungszellen zugeordnet sind, zu übertragen.
  6. Vorrichtung zur digitalen Paketumschaltung nach Anspruch 5, wobei: die ferngelegene Zelle an einem Punkt liegt, der räumlich von den anderen aus der Mehrzahl von Verarbeitungszellen entfernt liegt, und wobei: die Schnittstelleneinrichtung Einrichtungen zum Senden des informationsrepräsentativen Signals zwischen dem räumlich entfernt gelegenen Punkt und den übrigen aus der Mehrzahl von Verarbeitungszellen aufweist.
  7. Vorrichtung zur digitalen Paketumschaltung nach Anspruch 6, wobei die ferngelegene Schnittstelleneinrichtung weiterhin ein faseroptisches Übertragungsmedium aufweist, um informationsrepräsentative Signale zwischen den ferngelegenen Zellen und den anderen aus der Mehrzahl von Verarbeitungszellen zu transportieren.
  8. Vorrichtung zur digitalen Paketumschaltung nach einem der vorstehenden Ansprüche, wobei die Verarbeitungseinrichtung (85.1) für das empfangene Paket aufweist: eine Paketempfangseinrichtung, die in elektrischer Verbindung mit zumindest einem der Knoten steht, um die Pakete von zumindest einem der Knoten zu empfangen, eine Paketaufspalteinrichtung zum Aufspalten jedes derartigen Paketes, welches von zumindest einem der Knoten empfangen worden ist, in einen Kopf- bzw. Anfangsabschnitt und einen Datenabschnitt und zum Speichern der digitalen Pakete, die durch die Paketaufspalteinrichtung aufgespalten sind, in einer Puffereinrichtung (601) für empfangene Pakete, und eine Verarbeitungseinrichtung für einen empfangenen Frame, um die Pakete aus der Puffereinrichtung für empfangene Pakete wiederzugewinnen, die ausgewählte Verarbeitung mit den Paketen auszuführen und die Pakete an eine der erwähnten Empfangsschlangen oder an eine der erwähnten Sendeschlangen zu übermitteln.
  9. Vorrichtung zur digitalen Paketumschaltung nach Anspruch 8, wobei die Verarbeitungseinrichtung für empfangene Pakete weiterhin eine Fehlerprüfeinrichtung aufweist, um die empfangenen Pakete auf Fehler zu überprüfen und um die Ergebnisse des Prüfvorganges mit den Kopf- bzw. Führungsabschnitten der empfangenen Pakete zu speichern.
  10. Vorrichtung zur digitalen Paketumschaltung nach Anspruch 8 oder 9, wobei eine der erwähnten Sendeschlangen vorgesehen ist, um Pakete zu halten, die an zumindest einem ausgewählten Knoten gesendet werden sollen.
  11. Vorrichtung zur digitalen Paketumschaltung nach einem der Ansprüche 8 bis 10, wobei die Verarbeitungseinrichtung für einen empfangenen Rahmen auf Information in dem Kopfabschnitt der Pakete reagiert, um ausgewählte Pakete direkt aus der Puffereinrichtung für empfangene Pakete an die erwähnte Sendeschlange zu übertragen.
  12. Vorrichtung zur digitalen Paketumschaltung nach einem der vorstehenden Ansprüche, wobei das Speicherelement so ausgestaltet ist, daß es eine Schlange (612) für Anwendungsdienste bereitstellt, um Pakete zu speichern, die durch Verarbeitungszellen aus der Mehrzahl von Verarbeitungszellen entsprechend zumindest einem Anwendungsprogramm zu behandeln sind, wobei die Paketverarbeitungseinrichtung weiterhin so betreibbar ist, daß sie ausgewählte Pakete aus der Empfangsschlange in die Schlange für Anwendungsdienste lädt.
  13. Vorrichtung zur digitalen Paketumschaltung nach Anspruch 12, wobei das Speicherelement so ausgestaltet ist, daß es eine Anwendungsabschußschlange (610) bereitstellt, um Pakete zu speichern, die durch Verarbeitungszellen aus der Mehrzahl von Verarbeitungszellen gemäß zumindest einem Anwendungsprogramm erzeugt wurden, wobei die Paketverarbeitungseinrichtung so betreibbar ist, daß sie ausgewählte Pakete aus der Anwendungsvollendungsschlange in die Sendeschlange lädt.
  14. Vorrichtung zur digitalen Paketumschaltung nach einem der vorstehenden Ansprüche, wobei eine Verarbeitungseinheit irgendeiner der Verarbeitungszellen so betreibbar ist, daß sie aus der Empfangsschlange ein ausgewähltes Paket für die Verarbeitung wiedergewinnt.
  15. Vorrichtung zur digitalen Paketumschaltung nach Anspruch 8 oder einem davon abhängigen Anspruch, wobei die Verarbeitungseinrichtung (85.2) für Sendepakete aufweist: eine Verarbeitungseinrichtung für einen Sendeframe, um Pakete aus der Sendeschlange in Reaktion auf den Kopfabschnitt der Pakete wiederzugewinnen, eine Paketsendepuffereinrichtung (618), um die durch die Frameverarbeitungseinrichtung wiedergewonnenen Pakete zu speichern, und eine Paketsendeeinrichtung, um die in der Paketpuffereinrichtung gespeicherten Pakete an zumindest einen der Knoten zu senden.
  16. Vorrichtung zur digitalen Paketumschaltung nach einem der vorstehenden Ansprüche, welche weiterhin Einrichtungen zum Ausführen von Vorabheranhol- oder nachträglichen Speicherungs-Vorgängen aufweist.
  17. Verfahren zum Betreiben einer digitalen Paketschaltvorrichtung für das wahlweise Schalten von Paketen zwischen einem Satz von Knoten, wobei die Pakete gemäß einem ausgewählten Protokoll konfiguriert sind, welches zumindest ein Protokoll auf Paketniveau und ein Protokoll auf Frameniveau aufweist, wobei die Vorrichtung eine Mehrzahl von Verarbeitungszellen (18) umfaßt, die jeweils zumindest eine Verarbeitungseinheit (58) umfassen, die mit einem zugehörigen, inhaltsadressierbaren Speicherelement (72) verbunden ist, um informationsrepräsentative, digitale Signale zu speichern, wobei eine entsprechende Verarbeitungszelle (18.1) weiterhin eine Paketverarbeitungseinrichtung (85) aufweist und das Speicherelement so betreibbar ist, daß es zumindest eine Empfangsschlange (601) und zumindest eine Sendeschlange (602) aufweist, wobei das Verfahren aufweist: Ausführen einer Verarbeitung auf Frameniveau mit dem Paket, welches von zumindest einem Knoten empfangen wurde und wahlweises Speichern des Paketes auf einer der Empfangsschlangen oder einer Sendeschlange, und Zugreifen auf ein Paket in der Sendeschlange, Ausführen einer Verarbeitung auf Frameniveau mit demselben und Senden des Paketes an zumindest einen Knoten.
  18. Verfahren nach Anspruch 17, wobei das empfangene Paket durch eine Verarbeitungseinrichtung für empfangene Pakete auf der Empfangsschlange gespeichert wird, wenn eine Verarbeitung auf Paketniveau erforderlich ist.
DE69133257T 1990-03-26 1991-03-25 Vorrichtung und verfahren zur schnellen paketvermittlung Expired - Fee Related DE69133257T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US499182 1990-03-26
US07/499,182 US5335325A (en) 1987-12-22 1990-03-26 High-speed packet switching apparatus and method
PCT/US1991/002004 WO1991015088A1 (en) 1990-03-26 1991-03-25 High-speed packet switching apparatus and method

Publications (2)

Publication Number Publication Date
DE69133257D1 DE69133257D1 (de) 2003-06-18
DE69133257T2 true DE69133257T2 (de) 2004-04-08

Family

ID=23984179

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69133257T Expired - Fee Related DE69133257T2 (de) 1990-03-26 1991-03-25 Vorrichtung und verfahren zur schnellen paketvermittlung

Country Status (6)

Country Link
US (1) US5335325A (de)
EP (1) EP0473777B1 (de)
JP (1) JP3428640B2 (de)
AT (1) ATE240619T1 (de)
DE (1) DE69133257T2 (de)
WO (1) WO1991015088A1 (de)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6067408A (en) * 1993-05-27 2000-05-23 Advanced Micro Devices, Inc. Full duplex buffer management and apparatus
CA2135681C (en) * 1993-12-30 2000-01-18 Srinivas V. Makam System and method for directly accessing long-term memory devices
EP0685949A3 (de) * 1994-06-03 2002-07-10 Philips Patentverwaltung GmbH Paketübermittlungssystem
US5717895A (en) * 1994-12-01 1998-02-10 Cray Research, Inc. Associative scalar data cache with write-through capabilities for a vector processor
US5619497A (en) * 1994-12-22 1997-04-08 Emc Corporation Method and apparatus for reordering frames
US5752264A (en) * 1995-03-31 1998-05-12 International Business Machines Corporation Computer architecture incorporating processor clusters and hierarchical cache memories
US5802278A (en) * 1995-05-10 1998-09-01 3Com Corporation Bridge/router architecture for high performance scalable networking
US5592622A (en) * 1995-05-10 1997-01-07 3Com Corporation Network intermediate system with message passing architecture
US5867663A (en) 1995-07-19 1999-02-02 Fujitsu Network Communications, Inc. Method and system for controlling network service parameters in a cell based communications network
US6728959B1 (en) 1995-08-08 2004-04-27 Novell, Inc. Method and apparatus for strong affinity multiprocessor scheduling
WO1997010656A1 (en) 1995-09-14 1997-03-20 Fujitsu Network Communications, Inc. Transmitter controlled flow control for buffer allocation in wide area atm networks
SE516763C2 (sv) * 1995-10-20 2002-02-26 Ericsson Telefon Ab L M Förfarande och system för signalutbyte med ett kommunikationsnät
AU1697697A (en) 1996-01-16 1997-08-11 Fujitsu Limited A reliable and flexible multicast mechanism for atm networks
EP0882266A1 (de) 1996-02-20 1998-12-09 Intergraph Corporation Hochverfügbarer superserver
US5748905A (en) 1996-08-30 1998-05-05 Fujitsu Network Communications, Inc. Frame classification using classification keys
US5909540A (en) * 1996-11-22 1999-06-01 Mangosoft Corporation System and method for providing highly available data storage using globally addressable memory
US6148377A (en) * 1996-11-22 2000-11-14 Mangosoft Corporation Shared memory computer networks
US7058696B1 (en) 1996-11-22 2006-06-06 Mangosoft Corporation Internet-based shared file service with native PC client access and semantics
US6026474A (en) * 1996-11-22 2000-02-15 Mangosoft Corporation Shared client-side web caching using globally addressable memory
US6647393B1 (en) 1996-11-22 2003-11-11 Mangosoft Corporation Dynamic directory service
US20060129627A1 (en) * 1996-11-22 2006-06-15 Mangosoft Corp. Internet-based shared file service with native PC client access and semantics and distributed version control
US5987506A (en) * 1996-11-22 1999-11-16 Mangosoft Corporation Remote access and geographically distributed computers in a globally addressable storage environment
US7100020B1 (en) * 1998-05-08 2006-08-29 Freescale Semiconductor, Inc. Digital communications processor
US6138113A (en) * 1998-08-10 2000-10-24 Altavista Company Method for identifying near duplicate pages in a hyperlinked database
US7013354B1 (en) * 1998-10-05 2006-03-14 Canon Kabushiki Kaisha Channel protocol for IEEE 1394 data transmission
US6310881B1 (en) 1998-10-20 2001-10-30 Terabeam Corporation Method and apparatus for network control
JP4237865B2 (ja) * 1999-04-27 2009-03-11 富士通マイクロエレクトロニクス株式会社 パケット転送制御装置及びその方法
CA2271539A1 (en) * 1999-05-12 2000-11-12 Pmc-Sierra Inc. Interface between a link layer device and one or more physical layer devices
JP3643507B2 (ja) 1999-09-20 2005-04-27 株式会社東芝 パケット処理装置及びパケット処理方法
US6738884B1 (en) 1999-12-14 2004-05-18 Genesis Microchip Inc. Method and apparatus for processing data with semaphores
US6920543B1 (en) * 1999-12-14 2005-07-19 Genesis Microchip, Inc. Method and apparatus for performing distributed processing of program code
US6775757B1 (en) * 1999-12-14 2004-08-10 Genesis Microchip Inc. Multi-component processor
US6742083B1 (en) 1999-12-14 2004-05-25 Genesis Microchip Inc. Method and apparatus for multi-part processing of program code by a single processor
US7139282B1 (en) * 2000-03-24 2006-11-21 Juniper Networks, Inc. Bandwidth division for packet processing
US7164698B1 (en) 2000-03-24 2007-01-16 Juniper Networks, Inc. High-speed line interface for networking devices
US6757763B1 (en) * 2000-04-07 2004-06-29 Infineon Technologies North America Corpration Universal serial bus interfacing using FIFO buffers
US20040003022A1 (en) * 2002-06-27 2004-01-01 International Business Machines Corporation Method and system for using modulo arithmetic to distribute processing over multiple processors
US7653912B2 (en) 2003-05-30 2010-01-26 Steven Frank Virtual processor methods and apparatus with unified event notification and consumer-producer memory operations
US7472261B2 (en) * 2005-11-08 2008-12-30 International Business Machines Corporation Method for performing externally assisted calls in a heterogeneous processing complex
US7533236B1 (en) * 2006-05-11 2009-05-12 Nvidia Corporation Off-chip out of order memory allocation for a unified shader
US7533237B1 (en) 2006-05-11 2009-05-12 Nvidia Corporation Off-chip memory allocation for a unified shader
GB0619644D0 (en) * 2006-10-05 2006-11-15 Ibm Data processing system and method of handling requests
US8233565B2 (en) * 2006-10-20 2012-07-31 Broadcom Corporation Method and system for high speed wireless data transmission between communication devices
US8091007B2 (en) * 2007-09-13 2012-01-03 Dell Products L.P. Detection of duplicate packets

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3748647A (en) * 1971-06-30 1973-07-24 Ibm Toroidal interconnection system
US4011545A (en) * 1975-04-28 1977-03-08 Ridan Computers, Inc. Computer and communications systems employing new architectures
US4031512A (en) * 1975-05-29 1977-06-21 Burroughs Corporation Communications network for general purpose data communications in a heterogeneous environment
US4077059A (en) * 1975-12-18 1978-02-28 Cordi Vincent A Multi-processing system with a hierarchial memory having journaling and copyback
US4358823A (en) * 1977-03-25 1982-11-09 Trw, Inc. Double redundant processor
US4141067A (en) * 1977-06-13 1979-02-20 General Automation Multiprocessor system with cache memory
US4245306A (en) * 1978-12-21 1981-01-13 Burroughs Corporation Selection of addressed processor in a multi-processor network
US4240143A (en) * 1978-12-22 1980-12-16 Burroughs Corporation Hierarchical multi-processor network for memory sharing
IT1118355B (it) * 1979-02-15 1986-02-24 Cselt Centro Studi Lab Telecom Sistema di interconnessione tra processori
US4293910A (en) * 1979-07-02 1981-10-06 International Business Machines Corporation Reconfigurable key-in-storage means for protecting interleaved main storage
US4394731A (en) * 1980-11-10 1983-07-19 International Business Machines Corporation Cache storage line shareability control for a multiprocessor system
US4814979A (en) * 1981-04-01 1989-03-21 Teradata Corporation Network to transmit prioritized subtask pockets to dedicated processors
US4410946A (en) * 1981-06-15 1983-10-18 International Business Machines Corporation Cache extension to processor local storage
US4432057A (en) * 1981-11-27 1984-02-14 International Business Machines Corporation Method for the dynamic replication of data under distributed system control to control utilization of resources in a multiprocessing, distributed data base system
US4503497A (en) * 1982-05-27 1985-03-05 International Business Machines Corporation System for independent cache-to-cache transfer
US4497023A (en) * 1982-11-04 1985-01-29 Lucasfilm Ltd. Linked list of timed and untimed commands
US4625081A (en) * 1982-11-30 1986-11-25 Lotito Lawrence A Automated telephone voice service system
US4604694A (en) * 1983-12-14 1986-08-05 International Business Machines Corporation Shared and exclusive access control
US4622631B1 (en) * 1983-12-30 1996-04-09 Recognition Int Inc Data processing system having a data coherence solution
US4792895A (en) * 1984-07-30 1988-12-20 International Business Machines Corp. Instruction processing in higher level virtual machines by a real machine
US4700347A (en) * 1985-02-13 1987-10-13 Bolt Beranek And Newman Inc. Digital phase adjustment
US4972338A (en) * 1985-06-13 1990-11-20 Intel Corporation Memory management for microprocessor system
US4755930A (en) * 1985-06-27 1988-07-05 Encore Computer Corporation Hierarchical cache memory system and method
EP0214718A3 (de) * 1985-07-22 1990-04-04 Alliant Computer Systems Corporation Digitalrechner
IT1184013B (it) * 1985-12-13 1987-10-22 Elsag Memoria ad elevata capacita accessibile a diverse agenti
IT1184015B (it) * 1985-12-13 1987-10-22 Elsag Sistema multiprocessore a piu livelli gerarchici
US4758946A (en) * 1986-04-09 1988-07-19 Elxsi Page mapping system
JPS6336348A (ja) * 1986-07-30 1988-02-17 Toshiba Corp バツフアメモリ管理方法
US4811216A (en) * 1986-12-22 1989-03-07 American Telephone And Telegraph Company Multiprocessor memory management method
US4888726A (en) * 1987-04-22 1989-12-19 Allen-Bradley Company. Inc. Distributed processing in a cluster of industrial controls linked by a communications network
JP3023425B2 (ja) * 1987-10-09 2000-03-21 株式会社日立製作所 データ処理装置
US4980816A (en) * 1987-12-18 1990-12-25 Nec Corporation Translation look-aside buffer control system with multiple prioritized buffers
US5341483A (en) * 1987-12-22 1994-08-23 Kendall Square Research Corporation Dynamic hierarchial associative memory
US5055999A (en) * 1987-12-22 1991-10-08 Kendall Square Research Corporation Multiprocessor digital data processing system
US5119481A (en) * 1987-12-22 1992-06-02 Kendall Square Research Corporation Register bus multiprocessor system with shift
US5101402A (en) * 1988-05-24 1992-03-31 Digital Equipment Corporation Apparatus and method for realtime monitoring of network sessions in a local area network

Also Published As

Publication number Publication date
JP3428640B2 (ja) 2003-07-22
US5335325A (en) 1994-08-02
EP0473777A4 (en) 1995-02-01
DE69133257D1 (de) 2003-06-18
JPH05501041A (ja) 1993-02-25
EP0473777B1 (de) 2003-05-14
ATE240619T1 (de) 2003-05-15
WO1991015088A1 (en) 1991-10-03
EP0473777A1 (de) 1992-03-11

Similar Documents

Publication Publication Date Title
DE69133257T2 (de) Vorrichtung und verfahren zur schnellen paketvermittlung
DE69724355T2 (de) Erweiterte symmetrische Multiprozessorarchitektur
DE60202926T2 (de) Multicomputersystem mit konfigurierbaren Schnittstellen für flexible Systemkonfigurationen
DE69533230T2 (de) Verfahren und vorrichtung zur verbesserung der fehlertoleranz eines netzwerkes
US5522045A (en) Method for updating value in distributed shared virtual memory among interconnected computer nodes having page table with minimal processor involvement
DE3716229C2 (de) Mikroprozessorchip mit einem Stapelrahmen-Cache
DE112005003204T5 (de) Verfahren und Vorrichtung zum Unterstützen mehrerer Speicherbänke mit einem Speicherblock
DE60006842T2 (de) Multiprozessor-Node-Controller-Schaltung und Verfahren
DE60217221T2 (de) Ein-Chip System zur Paketverarbeitung
DE69727856T2 (de) Multiprozessorsystem mit Konsistenzfehler-Registrierung mit entsprechendem Verfahren
DE69832943T2 (de) Sequenzsteuerungsmechanismus für ein switch-basiertes Mehrprozessorsystem
DE69722512T2 (de) Mehrrechnersystem mit einem die Anzahl der Antworten enthaltenden Kohärenzprotokoll
DE60204213T2 (de) Level 2 Cache mit lokaler Beibehaltung von Kohärenzblöcken
DE3127349C2 (de)
DE60032357T2 (de) Verbindungsarchitektur um minderbandbreitige verbindungen über eine hoch-bandbreitige verkettung zu verwalten
DE60203057T2 (de) Effizienter Optimierungsalgorithmus für Speichergebrauch in Netzwerkanwendungen
DE19506734A1 (de) Computersystem und Verfahren zum Aufrechterhalten der Speicherkonsistenz in einer Busanforderungswarteschlange
DE3642324C2 (de) Multiprozessoranlage mit Prozessor-Zugriffssteuerung
DE4208924A1 (de) Verfahren zur kommunikation zwischen prozessoren und parallelverarbeitungscomputer hierfuer
DE102019104394A1 (de) Befehlssatzarchitektur zum ermöglichen von energieeffizientem rechnen für exascalearchitekturen
DE112005002364T5 (de) Heterogene Prozessoren mit gemeinsamem Cache
DE112013000891T5 (de) Verbessern der Prozessorleistung für Befehlsfolgen, die Sperrbefehle enthalten
DE60225473T2 (de) Verfahren zur datenverarbeitung
DE112011102415T5 (de) Registerzugriff in einer verteilten virtuellen Brückenumgebung
DE19516937A1 (de) Hierarchisches Cachesystem für einen Computer

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee