Setup wurde aufgrund einer getakteten Verbindung nicht abgeschlossen Windows 10

Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
  • G01R31/28Testing of electronic circuits, e.g. by signal tracer
  • G01R31/317Testing of digital circuits
  • G01R31/31727Clock circuits aspects, e.g. test clock circuit details, timing aspects for signal generation, circuits for testing clocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1604Error detection or correction of the data by redundancy in hardware where the fault affects the clock signals of a processing unit and the redundancy is at or within the level of clock signal generation hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1633Error detection by comparing the output of redundant processing systems using mutual exchange of the output between the redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • G06F11/1645Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components and the comparison itself uses redundant hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/165Error detection by comparing the output of redundant processing systems with continued operation after detection of the error
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1679Temporal synchronisation or re-synchronisation of redundant processing components at clock signal level
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1687Temporal synchronisation or re-synchronisation of redundant processing components at event level, e.g. by interrupt or result of polling
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9057Arrangements for supporting packet reassembly or resequencing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/004Error avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • G06F11/167Error detection by comparing the memory output
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1683Temporal synchronisation or re-synchronisation of redundant processing components at instruction level
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1695Error detection or correction of the data by redundancy in hardware which are operating with time diversity
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2043Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share a common memory address space
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/273Tester hardware, i.e. output processing circuits
    • G06F11/2736Tester hardware, i.e. output processing circuits using a dedicated service processor for test
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/845Systems in which the redundancy can be transformed in increased performance
    • 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
  • Abstract

    A multiprocessor system includes a number of sub-processor systems, each substantially identically constructed, and each comprising a central processing unit (CPU), and at least one I/O device, interconnected by routing apparatus that also interconnects the sub-processor systems. A CPU of any one of the sub-processor systems may communicate, through the routing elements, with any I/O device of the system, or with any CPU of the system. Communications between I/O devices and CPUs is by packetized messages. Interrupts from I/O devices are communicated from the I/O devices to the CPUs (or from one CPU to another CPU) as message packets. CPUs and I/O devices may write to, or read from, memory of a CPU of the system. Memory protection is provided by an access validation method maintained by each CPU in which CPUs and/or I/O devices are provided with a validation to read/write memory of that CPU, without which memory access is denied. <IMAGE> <IMAGE>

    Description

    Translated from German

    Die offengelegte Erfindung steht im Zusammenhang mit den gemeinsam abgetretenen, ebenfalls schwebenden Anmeldungen mit den Seriennummern 08/485.217, 08/482.618, 08/481.749, 08/474.772, 08/485.053, 08/474.770, 08/472.222, 08/477.807, 08/483.748, 08/484.281, 08/482.628, 08/479.473, 08/485.062, 08/485.446 und 08/485.055, welche gleichzeitig mit der vorliegenden Anmeldung eingereicht wurden.The invention disclosed is complete in connection with the jointly assigned, also pending Registrations with the serial numbers 08 / 485.217, 08 / 482.618, 08 / 481.749, 08 / 474.772, 08 / 485.053, 08 / 474.770, 08 / 472.222, 08 / 477.807, 08 / 483.748, 08 / 484.281, 08 / 482.628, 08 / 479.473, 08 / 485.062, 08 / 485.446 and 08 / 485.055, which were filed simultaneously with the present application.

    Die vorliegende Erfindung betrifft im allgemeinen Datenverarbeitungssysteme und im spezielleren ein Mehrfach-Verarbeitungssystem und ein zuverlässiges, systemweites Netzwerk, welches eine Anschlussfähigkeit für die Kommunikation zwischen Rechnern sowie für die Eingangs-/Ausgangskommunikation bereitstellt. Weiterhin ist das System entsprechend aufgebaut, um Fehlertoleranzfähigkeit aufzuweisen.The present invention relates to in general data processing systems and more particularly a multiple processing system and a reliable, system-wide network, which provides connectivity for communication between Computers as well as for provides the input / output communication. Furthermore is the system built accordingly to fault tolerance exhibit.

    Das heutige fehlertolerante Rechenwesen geht zurück auf spezielle, militärische und kommunikationstechnische Systeme und hat sich mittlerweile zu universell einsetzbaren, hochverfügbaren, kommerziellen Systemen weiterentwickelt. Die Entwicklungsgeschichte fehlertoleranter Computer 1982 ist gut dokumentiert (siehe D. P. Siewiorek, R. S. Swarz, "The Theory and Practice of Reliable System Design," (Theorie und Praxis des Entwurfs zuverlässiger Systeme) Digital Press, 1982, und A. Avizienis, H. Kopetz, J. C. Laprie, Hrsg., "The Evolution of Fault Tolerant Computing," (Die Entwicklungsgeschichte des fehlertoleranten Rechenwesens) Wien: Springer-Verlag, 1987). Die ersten hochverfügbaren Systeme wurden in den 50er Jahren des vergangenen Jahrhunderts von IBM, Univac und Remington Rand für militärische Anwendungen entwickelt. In den 1960er Jahren begannen die NASA, IBM, SRI, das C. S.Today's fault-tolerant computing go back to special, military and communication technology systems and has become too universally applicable, highly available, commercial systems further developed. The development history of fault-tolerant computers 1982 is well documented (see D. P. Siewiorek, R. S. Swarz, "The Theory and Practice of Reliable System Design, " Design more reliable Systems) Digital Press, 1982, and A. Avizienis, H. Kopetz, J.C. Laprie, ed., "The Evolution of Fault Tolerant Computing," (The History of development of fault-tolerant computing) Vienna: Springer Verlag, 1987). The first high availability systems were in the 1950s by IBM, Univac and Remington Edge for military Applications developed. In the 1960s, NASA started IBM, SRI, the C. S.

    Draper Laboratory und das Jet Propulsion Laboratory damit, das Prinzip der Fehlertoleranz bei der Entwicklung von Computern für die Lenksysteme von Luftfahrtanwendungen einzusetzen. In den 1960er Jahren erfolgte auch die Entwicklung der ersten elektronischen Vermittlungsanlagen von AT&T.Draper Laboratory and the Jet Propulsion Laboratory with it, the principle of fault tolerance in development of computers for use the steering systems of aviation applications. In the 1960s Years, the first electronic switching systems were also developed from AT&T.

    Die ersten kommerziellen, fehlertoleranten Rechner wurden in den 1970er Jahren von Tandem Computers zum Einsatz in Anwendungen zur Verarbeitung von Online-Transaktionen eingeführt (J. Bartlett, "A Nonstop Kernal," in proc. Eighth Symposium on Operating System Principles (Protokoll zum Achten Symposion über Betriebssystem-Grundlagen), S. 22–29, Dez. 1981). Mehrere weitere kommerzielle fehlertolerante Systeme wurden in den 1980er Jahren eingeführt (0. Serlin, "Fault-Tolerant Systems in Commercial Applications" (Fehlertolerante Systeme in kommerziellen Anwendungen), Computer, S. 19–30, August 1984). Heutige kommerzielle, fehlertolerante Systeme umfassen Multiprozessoren mit verteiltem Speicher, transaktionsbasierte Systeme mit gemeinsam benutztem Speicher, fehlertolerante Systeme mit "pair and spare"-Hardware (siehe R. Freiburghouse, "Making Processing Failsafe" [Störungssichere Datenverarbeitungj, Mini-micro Systems, S. 255–264, Mai 1982; auch das U.S.-Patent Nr. 4.907.228 ist ein Beispiel für diese 'Pair and spare'-Technik und für das transaktionsbasierte System mit gemeinsam benutztem Speicher), und dreifach redundante Systeme wie zum Beispiel das "Integrity"-Rechnersystem, welches von der in Cupertino in Kalifornien beheimateten Gesellschaft Tandem Computers Incorporated, der Abtretungsempfängerin dieser Anmeldung und der darin offenbarten Erfindung, hergestellt wird.The first commercial, fault tolerant Computers were used by tandem computers in the 1970s introduced in online transaction processing applications (J. Bartlett, "A Nonstop Kernal, "in proc. Eighth Symposium on Operating System Principles (Minutes of the Eighth Symposium on Operating System Basics) Pp. 22-29, Dec. 1981). Several other commercial fault tolerant systems were introduced in the 1980s (0. Serlin, "Fault-Tolerant Systems in Commercial Applications " commercial applications), Computer, pp. 19-30, August 1984). today commercial, fault-tolerant systems include multiprocessors with distributed storage, transaction-based systems with common used memory, fault-tolerant systems with "pair and spare" hardware (see R. Freiburghouse, "Making Processing Failsafe" [Fail-safe data processingj, Mini-micro Systems, pp. 255-264, May 1982; U.S. Patent No. 4,907,228 is also an example of this 'Pair and spare' technique and for the transaction-based system with shared memory), and triple redundant systems such as the "Integrity" computer system, which is from the company based in Cupertino in California Tandem Computers Incorporated, the assignee of this Application and the invention disclosed therein.

    Die meisten Anwendungen kommerzieller fehlertoleranter Computer fallen in die Kategorie der On-line-Transaktionsverarbeitung. Finanzinstitute sind für elektronische Geldüberweisungen, für die Steuerung von Geldautomaten und für Börsenhandelssysteme auf eine hohe Verfügbarkeit angewiesen. Die Hersteller von Waren verwenden fehlertolerante Rechner zur automatisierten Fabriksteuerung, zur Lagerverwaltung und für Online-Dokumentenzugriffssysteme. Als weitere Anwendungen von fehlertoleranten Rechner sind unter anderem Reservierungssysteme, Behörden-Datenbanken, Wettsysteme und Telekommunikationssysteme zu nennen.Most commercial applications fault-tolerant computers fall into the category of online transaction processing. Financial institutions are for electronic money transfers, for the Control of ATMs and exchange trading systems on one high availability reliant. The manufacturers of goods use fault-tolerant computers for automated factory control, warehouse management and online document access systems. Other applications of fault tolerant computers are below other reservation systems, government databases, betting systems and to call telecommunication systems.

    Die Anbieter fehlertoleranter Rechner sind bestrebt, sowohl eine erhöhte Systemverfügbarkeit und einen kontinuierlichen Rechenbetrieb, als auch die Korrektheit der Daten selbst bei Auftreten von Fehlern zu gewährleisten. Je nach verwendeter Systemarchitektur läuft die auf dem System ausgeführte Anwendungssoftware (d. h. die "Prozesse") entweder trotz der aufgetretenen Fehler weiter, oder aber die Prozesse werden bei Auftreten eines Fehlers automatisch ab einem rezenten Sicherungspunkt neu gestartet. Manche fehlertoleranten Systeme sind mit einer ausreichenden Anzahl redundanter Komponenten versehen, die es dem System ermöglichen, sich unter Umgehung einer fehlerhaften Komponente neu zu konfigurieren, wobei jedoch die in dem fehlerhaften Modul ausgeführten Prozesse verloren gehen. Die Anbieter kommerzieller, fehlertoleranter Systeme sind mittlerweile dazu übergegangen, den Begriff der Fehlertoleranz in einem prozessor- und plattenübergreifenden Zusammenhang zu sehen. Um weitreichende Verbesserungen im Bereich der Zuverlässigkeit zu erzielen, muss auf sämtliche Fehlerquellen eingegangen werden, einschliesslich Netzteile, Lüfter und Verbindungen zwischen den Modulen.The providers of fault-tolerant computers strive to be both elevated system Availability and continuous computing, as well as correctness guarantee the data even if errors occur. Depending on the system architecture used, the application software running on the system runs (i.e. the "processes") either despite the errors that occurred, or the processes become automatic when an error occurs restarted from a recent save point. Some fault tolerant Systems have a sufficient number of redundant components which enable the system to to reconfigure itself bypassing a faulty component, however, the processes executed in the faulty module get lost. The providers of commercial, fault-tolerant systems have meanwhile started to the concept of fault tolerance in a processor and cross-plate See context. To make far-reaching improvements in the area reliability must achieve on all sources of error including power supplies, fans, and connections between the modules.

    Die "NonStop"- und "Integrity"-Architekturen, welche von Tandem Computers Incorporated hergestellt werden (beide jeweils ausführlich in dem U.S.-Patent Nr. 4.228.496 und in den U.S.-Patenten Nr. 5.146.589 und 4.965.717 dargestellt, welche alle an den Abtretungsempfänger dieser Anmeldung abgetreten worden sind; Nonstop und Integrity sind eingetragene Warenzeichen von Tandem Computers Incorporated) stellen zwei aktuelle Ansätze im Bereich der kommerziellen, fehlertoleranten Datenverarbeitung dar. Das NonStop-System, das in seinen Grundzügen in dem oben bezeichneten U.S.-Patent Nr. 4.278.496 bedient sich einer Architektur, welche Mehrprozessorsysteme verwendet, die darauf ausgelegt sind, den Betrieb ungeachtet des Ausfalls einer einzelnen Hardware-Komponente fortzusetzen. Im Normalbetrieb verwendet jedes Prozessorsystem seine Hauptkomponenten eher unabhängig und gleichzeitig als in Form von "Hot Backups". Die Nonstop-Systemarchitektur kann aus bis zu 16 Prozessorsystemen bestehen, welche über einen Bus zum Datenaustausch zwischen Prozessoren miteinander verbunden sind. Jedes Prozessorsystem hat seinen eigenen Speicher, welcher eine Kopie des nachrichtenbasierten Betriebssystems enthält. Jedes Prozessorsystem steuert einen oder mehrere Eingabe/Ausgabebusse (E/A-Busse). Durch die Verwendung von Dual-Port-E/A-Controllern und -Geräten lassen sich mehrfache Übertragungswege zu jedem Gerät einrichten. Externe Speicherungen (in Bezug auf das Prozessorsystem), wie zum Beispiel Plattenspeicherungen, können gespiegelt werden, um stets über permanente, redundante Datenspeicherungen zu verfügen.The "NonStop" and "Integrity" architectures manufactured by Tandem Computers Incorporated (both detailed in U.S. Patent No. 4,228,496 and U.S. Patent Nos. 5,146,589 and 4,965,717, respectively), all of which have been assigned to the assignee of this application; Nonstop and Integrity are registered trademarks of Tandem Computers Incorporated) represent two current approaches in the field of commercial, fault-tolerant data processing. The NonStop system, which in its main features in the above-mentioned US Pat. No. 4,278,496, uses an architecture that uses multiprocessor systems that are designed to operate regardless of the failure of a single hardware component. In normal operation, each processor system uses its main components rather independently and at the same time than in the form of "hot backups". The non-stop system architecture can consist of up to 16 processor systems, which are interconnected via a bus for data exchange between processors. Each processor system has its own memory, which contains a copy of the message-based operating system. Each processor system controls one or more input / output buses (I / O buses). By using dual-port I / O controllers and devices, multiple transmission paths to each device can be set up. External storage (in relation to the processor system), such as disk storage, can be mirrored in order to always have permanent, redundant data storage.

    Bei dieser Architektur ist jedes Systemmodul mit fehlererkennender Hardware ausgestattet, wodurch ein "schnellfehlender" Betrieb gewährleistet wird: der Betrieb wird bei Auftreten eines Fehlers angehalten, um ein Übergreifen des Fehlers auf andere Module zu verhindern. Fehler werden zum Beispiel durch Paritätsprüfung, Duplikatvergleich und Fehlererkennungscodes erkannt. Die Fehlererkennung fällt primär in den Aufgabenbereich der Hardware, während es sich bei der Fehlerkorrektur um eine Softwareaufgabe handelt.With this architecture, everyone is System module equipped with error-detecting hardware, which means a "Fast missing" operation guaranteed is: the operation is stopped when an error occurs to prevent spillover to prevent the error on other modules. For example, mistakes through parity check, duplicate comparison and error detection codes recognized. The error detection primarily falls into the Hardware scope while the error correction is a software task.

    Weiterhin kann im Rahmen der NonStop-Multiprozessorarchitektur die Anwendungssoftware ("Prozess") auf dem System unter dem Betriebssystem als "Prozesspaare" laufen und einen Primärprozess und einen Sicherungsprozess beinhalten. Der Primärprozess läuft auf einem der Multiprozessoren, während der Datensicherungsprozess auf einem anderen Prozessor läuft. Der Datensicherungsprozess befindet sich gewöhnlich im Ruhezustand, aktualisiert seinen Zustand jedoch periodisch in Reaktion auf Sicherungspunkt-Nachrichten, welche vom Primärprozess übermittelt werden. Der Inhalt einer Sicherungspunkt-Nachricht kann die Form einer vollständigen Zustandsaktualisierung annehmen, oder auch nur die seit der vorangegangenen Sicherungspunkt-Nachricht vorgenommenen Änderungen umfassen. Ursprünglich wurden Sicherungspunkte in Anwendungsprogrammen manuell gesetzt, mittlerweile läuft der Anwendungscode jedoch meist unter einer Transaktionsverarbeitungssoftware, welche eine Korrektur mittels einer Kombination aus Sicherungspunkten und zweiphasigen Transaktions-Übergabeprotokollen gewährleistet.Furthermore, as part of the non-stop multiprocessor architecture the application software ("process") on the system under the operating system run as "process pairs" and a primary process and a backup process include. The primary process runs on one of the multiprocessors while the data backup process is running on a different processor. The Backup process is usually in hibernation, updated however, periodically in response to savepoint messages, which transmits from the primary process become. The content of a savepoint message can take the form of a complete Accept status update, or just the one since the previous one Changes made to savepoint message include. Were originally Security points set manually in application programs, meanwhile is running Application code, however, mostly under transaction processing software, which is a correction using a combination of save points and two-phase transaction handover protocols guaranteed.

    Der Nachrichtenverkehr zwischen Prozessoren beinhaltet bei der NonStop-Architektur von Tandem das durch einen jeden Prozessor periodisch erfolgende Aussenden einer für alle Prozessoren des Systems, einschliesslich des sendenden Prozessors, bestimmten "Unter Spannung"-Nachricht, wodurch die anderen Prozessoren informiert werden, dass der sendende Prozessor noch in Betrieb ist. Fällt ein Prozessor aus, so wird dieser Ausfall dadurch angekündigt und identifizierbar, dass die periodische "Unter Spannung"-Nachricht des ausgefallenen Prozessors ausbleibt. In Reaktion darauf weist das Betriebssystem die entsprechenden Datensicherungsprozesse an, ab dem letzten Sicherungspunkt mit der Abarbeitung als Primärprozess zu beginnen. Es können Datensicherungsprozesse in einem anderen Prozessor gestartet werden, oder der Prozess kann ohne Backup fortgesetzt werden, bis die Hardware wieder repariert ist. Ein Beispiel für diese Technik findet sich im U.S.-Patent Nr. 4.817.091.Message traffic between processors in the non-stop architecture of tandem includes that through one each processor periodically sending out one for all processors of the system, including the sending processor "Live" message, which informs the other processors that the sending Processor is still running. falls a processor off, this failure is announced and identifiable that the periodic "live" message of the failed processor fails. In response, that points Operating system the corresponding data backup processes the last save point with processing as the primary process to start. It can Backup processes are started in another processor, or the process can continue without backup until the hardware is repaired again. An example of this technique can be found in U.S. Patent No. 4,817,091.

    Jeder E/A-Controller wird von einem der beiden Prozessoren verwaltet, mit denen er verbunden ist. Die Verwaltung des Controllers wird periodisch zwischen den beiden Prozessoren hin- und hergeschaltet. Fällt der verwaltende Prozessor aus, so geht die Eigentümerschaft des Controllers automatisch an den anderen Prozessor über. Fällt der Controller aus, so wird der Datenzugriff durch einen anderen Controller aufrechterhalten.Each I / O controller is owned by one managed by the two processors to which it is connected. The Management of the controller is periodically between the two processors switched back and forth. Does the fall managing processor, so the ownership of the controller goes automatically to the other processor. Does the fall Controller off, the data access is by another controller maintained.

    Über die erzielte Hardware-Fehlertoleranz hinaus bieten die Prozessorpaare der oben beschriebenen Architektur auch ein gewisses Ausmass an Software-Fehlertoleranz. Fällt ein Prozessor aufgrund eines Softwarefehlers aus, so ist der Datensicherungs-Prozessor häufig in der Lage, die Datenverarbeitung unbeeinträchtigt von dem betreffenden Fehler erfolgreich fortzusetzen. Die Softwareumgebung in dem Datensicherungs-Prozessor verfügt charakteristischerweise über andersgeartete Warteschlangenlängen, Tabellengrössen und Prozessmischungen. Da die meisten der von den Software-Qualitätssicherungstests nicht entdeckten Softwarefehler Grenzbedingungen betreffen, die von selten vorkommenden Daten abhängig sind, können die Datensicherungsprozesse in vielen Fällen erfolgreich abgeschlossen werden.about The processor pairs also offer the hardware fault tolerance achieved the architecture described above to a certain extent Software fault tolerance. Come in mind Processor due to a software error, the backup processor is often in able to process data unaffected by the concerned Failure to continue successfully. The software environment in the backup processor has characteristically about different queue lengths, table sizes and process mixes. Because most of the software quality assurance tests undetected software errors affect boundary conditions that The data backup processes can depend on rarely occurring data in many cases be successfully completed.

    Im Gegensatz zu der oben beschriebenen Architektur stellt das Integrity-System ein Beispiel für einen anderen Ansatz der fehlertoleranten Datenverarbeitung dar. Das 1990 eingeführte 'Integrity' wurde für eine Standardversion des Unix-Betriebssystems entworfen ("Unix" ist ein eingetragenes Warenzeichen der in Delaware beheimateten Firma Unix Systems Laboratories, Inc.). In Systemen, in denen Kompatibilität ein Hauptziel darstellt, muss die Wahl logischerweise auf hardwaremässige Fehlerkorrektur fallen, da nur wenige Modifikationen an der Software erforderlich sind. Die Prozessoren und lokalen Speicher werden unter Verwendung eines TMR-Verfahrens (dreifache Redundanz) konfiguriert. Alle Prozessoren arbeiten dabei dieselbe Codeströme ab, die einzelnen Module sind jedoch, was ihre Taktgabe betrifft, unabhängig voneinander, um eine Fehlertoleranz bei den Taktgabeschaltungen zu ermöglichen. Die Ausführung der drei Ströme ist asynchron wobei es zu wechselseitigen Verschiebungen über mehrere Taktintervalle hinweg kommen kann. Die Ströme werden periodisch und bei jedem Zugriff auf den globalen Speicher resynchronisiert. Auf dem TMR-Controller-Board befindliche Wähler erkennen und maskieren Fehler in einem Prozessormodul. Der Speicher ist zwischen dem lokalen Speicher auf den in dreifacher Ausführung vorhandenen Prozessorbaugruppen und dem globalen Speicher auf den doppelt vorhandenen TMR-Controller-Baugruppen partitioniert. Die verdoppelten Abschnitte des Systems verwenden zur Fehlererkennung selbstprüfende Techniken. Jeder globale Speicher verfügt über zwei Ports und ist über eine Schnittstelle mit den Prozessoren und mit den E/A-Prozessoren (EAPs) verbunden. Standard VME-Peripheriegeräte-Controller sind durch ein Busschnittstellenmodul (BSM) an ein Buspaar angeschlossen. Fällt ein EAP aus, so kann eine Software unter Verwendung der BSMs die Steuerung aller Controller auf den verbleibenden EAP umschalten. Gespiegelte Plattenspeichereinheiten können mit zwei verschiedenen VME-Controllern verbunden werden.In contrast to the architecture described above, the Integrity system is an example of a different approach to fault-tolerant data processing. The 'Integrity' introduced in 1990 was designed for a standard version of the Unix operating system ("Unix" is a registered trademark of Delaware-based companies) Unix Systems Laboratories, Inc.). In systems where compatibility is a primary goal, the choice logically must be hardware-based error correction, since only a few modifications to the software are required. The processors and local memory are configured using triple redundancy (TMR). All processors process the same code streams, but the individual modules are independent of one another as far as their clocking is concerned, in order to enable fault tolerance in the clocking circuits. The execution of the three streams is asynchronous whereby there can be mutual shifts over several clock intervals. The streams are periodically resynchronized each time global memory is accessed. Voters on the TMR controller board recognize and mask errors in a processor module. The memory is partitioned between the local memory on the processor modules in triplicate and the global memory on the duplicate TMR controller modules. The doubled sections of the system use self-checking techniques for error detection. Each global memory has two ports and is connected to the processors and to the I / O processors (EAPs). Standard VME peripheral device controllers are connected to a bus pair by a bus interface module (BSM). If an EAP fails, software can use the BSMs to switch the control of all controllers to the remaining EAP. Mirrored disk storage units can be connected to two different VME controllers.

    Bei dem Integrity-System werden sämtliche Hardwarefehler durch die redundante Hardware verdeckt. Die Komponenten werden nach Abschluss der Reparatur on-line wiedereingebaut.With the integrity system, everyone Hardware errors covered by the redundant hardware. The components will be reinstalled online after the repair is complete.

    Die vorangegangenen Beispiele veranschaulichen gegenwärtige Ansätze, die darauf abzielen, Fehlertoleranz in Datenverarbeitungssysteme zu integrieren. Ansätze, bei denen die Fehlerkorrektur über die Software erfolgen, benötigen weniger redundante Hardware und bieten bis zu einem gewissen Mass die Möglichkeit einer Software-Fehlertoleranz. Hardware-Ansätze verwenden eine zusätzliche Hardware-Redundanz, um eine vollständige Kompatibilität mit Standard-Betriebssystemen zu ermöglichen und um Anwendungen in transparenter Weise auszuführen, die auf anderen Systemen entwickelt worden sind.The previous examples illustrate current Approaches, which aim at fault tolerance in data processing systems to integrate. Approaches, where the error correction over the software is done less redundant hardware and offer to some extent the possibility a software fault tolerance. Hardware approaches use an additional Hardware redundancy to ensure full compatibility with standard operating systems to enable and to run applications transparently on other systems have been developed.

    Die weiter oben beschriebenen Systeme bieten somit fehlertolerante Datenverarbeitung entweder über Hardware(z. B. funktionellfehlend, unter Verwendung von Redundanz) oder über Software-Techniken (z. B. schnellfehlend, mit Fehlerkorrektur über die Software und unter Verwendung von Hardware mit hoher Datenintegrität). Von keinem der beschriebenen Systeme ist jedoch anzunehmen, dass es in der Lage ist, eine fehlertolerante Datenverarbeitung anzubieten, welche sowohl Hardwareansätze (funktionellfehlend) als auch Softwareansätze (schnellfehlend) in einem einzigen Datenverarbeitungssystem vereint.The systems described above thus offer fault-tolerant data processing either via hardware (e.g. B. functionally missing, using redundancy) or via software techniques (e.g. quickly missing, with error correction via the software and under Use of hardware with high data integrity). None of the described Systems is, however, supposed to be able to be fault tolerant To offer data processing, which both hardware approaches (functionally missing) as well as software approaches (quickly missing) combined in a single data processing system.

    Verwendet werden Computersysteme wie die weiter oben beschriebenen häufig für den elektronischen Geschäftsverkehr: elektronischer Datenaustausch (EDI) und globale Nachrichtenvermittlung. Die Anforderungen, welche heute an diese Art des elektronischen Geschäftsverkehrs gestellt werden, machen aufgrund der steigenden Benutzeranzahl und der zunehmend komplexer werdenden Nachrichten eine immer grössere Leistungsfähigkeit in puncto Datendurchsatz erforderlich. Zum Beispiel Nur-Text-Kommunikation per E-Mail, das meistgenutzte Leistungsmerkmal im Internet, wächst Jahr für Jahr in beträchtlichem Ausmass. Das Internet wird zunehmend dazu verwendet, um Bild-, Ton- und Videodateien zu übertragen. Sprachspeicher- und Weiterleitungsdienste sind dabei, in alle Anwendungsbereiche vorzudringen und Desktop-Videokonferenzsysteme und Video – Nachrichtenvermittlungssysteme gewinnen in bestimmten Organisationen an Akzeptanz. Mit jedem Nachrichtenvermittlungstyp wird ein fortschreitend höherer Datendurchsatz erforderlich.Computer systems are used like those often described above for electronic commerce: electronic data interchange (EDI) and global messaging. The demands that are placed on this type of electronic today commerce due to the increasing number of users and the increasingly complex messages become ever more powerful required in terms of data throughput. For example, plain text communication via E-mail, the most used feature on the Internet, grows year on year for year in considerable Extent. The Internet is increasingly used to provide video, audio and transfer video files. Voice mail and forwarding services are in all areas of application to penetrate and desktop video conferencing systems and video messaging systems gain acceptance in certain organizations. With any type of messaging is becoming progressively higher Data throughput required.

    In solchen Umgebungen werden parallele Architekturen verwendet, welche durch verschiedene Kommunikationsnetzwerke wie etwa lokale Netze (LANs) und dergleichen miteinander verbunden sind.In such environments, parallel Architectures used by different communication networks such as local area networks (LANs) and the like are.

    Eine Hauptanforderung an eine Server-Architektur ist die Fähigkeit, grosse Datenmengen zu übertragen. Der Server muss über eine grosse Bandbreite verfügen, welche skalierbar ist, so dass in dem Mass, in dem sich das Datenvolumen erhöht und die Übertragungen komplexer werden, zusätzliche Durchgangsleistungskapazität hinzugefügt werden kann.A key requirement for a server architecture is the ability transfer large amounts of data. The server needs to have a wide range, which is scalable so that to the extent that the data volume elevated and the transmissions become more complex, additional Throughput capacity added can be.

    Busarchitekturen begrenzen die für eine jede Systemkomponente verfügbare Bandbreite. Je grösser die Anzahl der mit dem Bus verbundenen Komponenten ist, umso geringer wird die für jede einzelne Komponente verfügbare Bandbreite.Bus architectures limit them for everyone System component available Bandwidth. The bigger the The lower the number of components connected to the bus will the for every single component available Bandwidth.

    Darüber hinaus ist eine prompte Systemantwort ein Vorteil für sämtliche Anwendungen und eine Notwendigkeit für interaktive Anwendungen, sie erfordert eine sehr geringe Latenz, worunter ein Mass für die Zeitdauer zu verstehen ist, die benötigt wird, um Daten von der Quelle zum Ziel zu übertragen. Die mit der Antwortzeit in enger Verbindung stehende Latenz wirkt sich auf das Serviceniveau und die Mitarbeiterproduktivität aus.It is also prompt System response an advantage for all Applications and a need for interactive applications, it requires very little latency, including a measure of the length of time to understand what is needed to transfer data from the source to the destination. The one with the response time closely related latency affects the level of service and employee productivity.

    In derEP 0636956 A2wird eine Mehrfachprozessoranlage beschrieben, bei welcher die Inhalte eines Arbeitsspeichers eines ersten Prozessors systematisch in Form von Datenblöcken in aufeinanderfolgenden, reservierten Zeitschlitzen, welche zyklisch in die Programmausführung eingefügt werden, in den Arbeitsspeicher eines zweiten Prozessors übertragen werden. Ist ein Speicherbereich erst einmal kopiert, so werden sämtliche später vorgenommenen Aktualisierungen dieses Bereichs umgehend an den zweiten Prozessor übertragen, so dass der zweite Prozessor in Echtzeit auf dem aktuellen Stand gehalten wird.In theEP 0636956 A2describes a multiple processor system in which the contents of a working memory of a first processor are systematically transferred to the working memory of a second processor in the form of data blocks in successive, reserved time slots, which are inserted cyclically into the program execution. Once a memory area has been copied, all updates made later to this area are immediately transmitted to the second processor, so that the second processor is kept up to date in real time.

    Die vorliegende Erfindung schafft ein Verfahren zur Einrichtung eines synchronisierten, im wesentlichen im Gleichschritt laufenden Betriebs eines ersten und eines zweiten Prozessors gemäss Anspruch 1.The present invention provides a method of establishing a synchronized, essentially operation of a first and a second in step Processor according to Claim 1.

    Gemäss einem Aspekt verwendet die Erfindung ein Verarbeitungssystem, welches sich aus mehreren Unterverarbeitungssystemen zusammensetzt. Jedes Unterverarbeitungssystem verfügt als Hauptverarbeitungselement über eine zentrale Verarbeitungseinheit (CPU), welche ihrerseits ein synchron im Gleichschritt laufendes Prozessorpaar umfasst, das jeden Befehl eines Befehlsstroms gleichzeitig ausführt. Jedes der Unterverarbeitungssysteme beinhaltet weiterhin ein Eingabe/Ausgabe (E/A)-System für das systemweite Netz zur Bereitstellung von redundanten Übertragungswegen zwischen verschiedenen Komponenten des grösseren Verarbeitungssystems, einschliesslich einer CPU und verschiedener Peripheriegeräte (z. B. Massespeichereinheiten, Drucker und dergleichen) eines Unterverarbeitungssystems, sowie zwischen den Subprozessoren, aus denen sich das grössere, Gesamtverarbeitungssystem zusammensetzen kann. Die Kommunikation zwischen jeder beliebigen Komponente des Verarbeitungssystems (z. B. einer CPU und einer anderen CPU, oder einer CPU und irgendeinem Peripheriegerät, ungeachtet dessen, zu welchem Unterverarbeitungssystem dieses gehören mag) wird durch die Bildung und Übertragung von paketierten Nachrichten durchgeführt, welche von der sendenden Komponente bzw. Ausgangskomponente (z. B. einer CPU) zu einem Zielelement (z. B. einem Peripheriegerät) geleitet werden, und zwar mittels einer systemweiten Netzstruktur bestehend aus einer Reihe von Routerelementen, die über eine aus einer Mehrzahl von Verbindungs-Links bestehende (im folgenden "TNet" genannte) Busstruktur untereinander verbunden sind. Die Routerelemente sind für die Auswahl der geeigneten bzw. verfügbaren Übertragungswege von einer sendenden Komponente des Verarbeitungssystems zu einer Zielkomponente verantwortlich, basierend auf in dem Datenpaket enthaltenen Informationen. Somit versorgt die Routing-Fähigkeit der Routerelemente das E/A-System der CPUs mit einem Signalübertragungsweg zu den Peripheriegeräten, ermöglicht jedoch gleichzeitig auch die Kommunikation zwischen Prozessoren.In one aspect, the invention uses a processing system that is composed of multiple sub-processing systems. Each sub-processing system has as a main processing element a central processing unit (CPU), which in turn is synchronously in step running processor pair that executes each instruction of an instruction stream simultaneously. Each of the sub-processing systems further includes an input / output (I / O) system for the system-wide network for providing redundant transmission paths between various components of the larger processing system, including a CPU and various peripheral devices (e.g. mass storage units, printers and the like) Subprocessing system, as well as between the subprocessors, from which the larger, overall processing system can be composed. Communication between any component of the processing system (e.g., a CPU and another CPU, or a CPU and any peripheral device, regardless of which subprocessing system it may belong to) is accomplished through the formation and transmission of packetized messages, which of the sending component or output component (e.g. a CPU) are routed to a target element (e.g. a peripheral device) by means of a system-wide network structure consisting of a series of router elements which are connected via a Existing bus structures on the left (hereinafter referred to as "TNet") are interconnected. The router elements are responsible for the selection of the suitable or available transmission paths from a sending component of the processing system to a target component, based on information contained in the data packet. The routing capability of the router elements thus provides the I / O system of the CPUs with a signal transmission path to the peripheral devices, but at the same time also enables communication between processors.

    Wie weiter oben erwähnt, weist das hier beschriebene Verarbeitungssystem einen entsprechenden Aufbau auf, um durch eine schnellfehlende und eine funktionell fehlende Arbeitsweise einen fehlertoleranten Betrieb zu schaffen. Eine schnellfehlende Arbeitsweise wird durch das Anbringen von Möglichkeiten zur Fehlerprüfung an strategischen Punkten des Systems erreicht. So hat zum Beispiel jede CPU Möglichkeiten zur Fehlerprüfung an zahlreichen Stellen in den verschiedenen Datenwegen zwischen den (im Gleichschritt betriebenen) Prozessorelementen der CPU und dem ihr zugeordneten Speicher. Insbesondere bei dem Verarbeitungssystem gemäss der vorliegenden Erfindung erfolgt die Fehlerprüfung an einer Schnittstelle und in einer Weise, welche nur eine geringe Auswirkung auf die Leistung haben. Systeme nach dem Stand der Technik implementieren Fehlerprüfverfahren typischerweise insofern, als Prozessorpaare betrieben werden und der Daten- und Befehlsstrom zwischen den Prozessoren und einem Cachespeicher geprüft (verglichen) werden. Diese Technik der Fehlerprüfung neigte dazu, zu Verzögerungen bei den Zugriffszeiten zu führen. Ausserdem konnten bei dieser Art der Fehlerprüfung keine gegebenenfalls verfügbaren Standardbauteile verwendet werden (z. B. Prozessor/Cachespeicher-Kombinationen auf einem einzelnen Halbleiterchip oder -Modul). Bei dem beschriebenen System erfolgt die Fehlerprüfung der Prozessoren an Stellen mit niedrigerer Betriebsgeschwindigkeit, wie etwa an den Hauptspeicher- und E/A-Schnittstellen, welche mit niedrigeren Geschwindigkeiten betrieben werden als die Prozessor-Cachespeicher-Schnittstelle. Darüber hinaus wird die Fehlerprüfung an Orten durchgeführt, die es ermöglichen, Fehler aufzufinden, welche in den Prozessoren, in ihrem Cachespeicher und in den E/A- und Speicherschnittstellen auftreten können. Dies ermöglicht Vereinfachungen beim Entwurf der Speicher- und E/A-Schnittstellen, da keine Paritätsprüfungen und keine sonstigen Datenintegritätsprüfungen erforderlich sind.As mentioned above, points the processing system described here has a corresponding structure on to by a quick missing and a functionally missing Working method to create a fault-tolerant company. A quick missing How it works is by attaching opportunities for error checking strategic points of the system reached. For example any CPU possibilities for error checking at numerous points in the various data paths between the processor elements (operated in step) of the CPU and the memory allocated to it. Especially with the processing system according to According to the present invention, error checking takes place at an interface and in a way that has little impact on performance to have. State of the art systems implement error checking procedures typically in that processor pairs are operated and the data and command stream between the processors and a cache memory checked (compared). This technique of error checking tended to cause delays lead in access times. In addition, with this type of error checking, any standard components that might be available could not can be used (e.g. processor / cache combinations a single semiconductor chip or module). With the described The system checks for errors the processors in places with lower operating speed, such as on the main memory and I / O interfaces, which with operate at lower speeds than the processor cache interface. About that addition, the error checking performed in places that allow Find errors in the processors, in their cache and in the I / O and memory interfaces. This allows Simplifications in the design of the memory and I / O interfaces, since no parity checks and no other data integrity checks required are.

    Die Fehlerprüfung des Kommunikationsflusses zwischen den Komponenten des Verarbeitungssystems erfolgt durch die Hinzufügung einer zyklischen Redundanzprüfung (CRC-Prüfung) zu den zwischen den Elementen des Systems übermittelten Nachrichtenpaketen. Der CRC eines jeden Nachrichtenpakets wird nicht nur am Bestimmungsort der Nachricht geprüft, sondern auch während die Nachricht zu ihrem Bestimmungsort unterwegs ist, und zwar von jedem Routerelement, welches dazu verwendet wird, das Datenpaket von seinem Ursprungsort zu seinem Bestimmungsort zu leiten. Entdeckt ein Routerelement, dass ein Nachrichtenpaket einen nicht korrekten CRC aufweist, so wird das Nachrichtenpaket als solches gekennzeichnet und einem Wartungs-Diagnose-System gemeldet. Dieses Merkmal stellt ein brauchbares Werkzeug zur Fehlerisolierung dar. Eine derartige Verwendung des CRC ist dazu geeignet, Nachrichtenpakete über den gesamten Datenweg hinweg zu schützen, da die Routerelemente den CRC weder modifizieren noch regenerieren, während das Datenpaket an durch sie hindurchgeleitet wird. Der CRC eines jeden Datenpakets wird an jeder Routerkreuzung einer Prüfung unterzogen. Ein Befehlssymbol – "This packet Good" (TPG) (Paket gut) bzw. "This Packet Bad" (TPB) (Paket schlecht) – wird zu jedem Paket hinzugefügt. Ein Wartungs-Diagnose-Prozessor kann diese Informationen verwenden, um ein Link oder Router-Element zu isolieren, welches einen Fehler eingeschleust hat, selbst wenn der Fehler nur vorübergehend auftrat.The error check of the communication flow between the components of the processing system is done by the addition a cyclical redundancy check (Cyclic redundancy check) to the message packets transmitted between the elements of the system. The CRC of every message packet is not just at the destination checked the message, but also during the message is on its way to its destination, namely from each router element that is used to receive the data packet from to guide its place of origin to its destination. discovered a router element that a message packet is an incorrect one CRC, the message packet is identified as such and a maintenance diagnostic system reported. This feature provides a useful tool for fault isolation Such a use of the CRC is suitable for message packets over the to protect the entire data path since the router elements neither modify nor regenerate the CRC while the Data packet to be passed through it. Everyone's CRC Data packets are checked at every router intersection. A command symbol - "This packet Good "(TPG) or" This Packet Bad "(TPB) (packet bad) - will added to each package. A maintenance diagnostic processor can use this information a link or router element isolate which has introduced a bug, even if the error is only temporary occurred.

    Die Routerelemente sind mit einer Mehrzahl von ausgestattet, an denen Nachrichten empfangen und versandt werden können. Als solche eignen sie sich gut zum Einsatz in einer Vielzahl von Topologien, so dass bei Auftreten eines Fehlers alternative Übertragungswege für die Kommunikation zwischen zwei beliebigen Elementen eines Verarbeitungssystems (z. B. zwischen einer CPU und einem E/A-Gerät) eingerichtet werden können, wodurch ein fehlertolerantes System geschaffen wird. Zusätzlich dazu beinhaltet die Router-Logik die Fähigkeit, basierend auf dem Router-Eingangsport, an dem ein Nachrichtenpaket empfangen wird, und auf dem Bestimmungsort des Nachrichtenpakets, gewisse Ports als Ausgangsports zu deaktivieren. Ein Router, der ein Nachrichtenpaket empfängt, welches eine Zieladresse enthält, die einen für dieses Nachrichtenpaket ungültigen Port als Ausgangsport des Routers angibt, scheidet das Nachrichtenpaket aus und benachrichtigt das Wartungs-Diagnose-System. Durch einen wohlüberlegten Einsatz dieses Merkmals kann ein Nachrichtenpaket davor bewahrt werden, in eine endlose Schleife zu geraten, und kann verzögert bzw. verhindert werden, dass andere Nachrichtenpakete in eine solche Schleife geraten (z. B. durch die Schaffung einer weiter unten erläuterten "Systemblockierungs"-Bedingung).The router elements are equipped with a plurality of at which messages can be received and sent. As such, they are well suited for use in a variety of topologies, so that if an error occurs, alternative transmission paths can be set up for communication between any two elements of a processing system (e.g. between a CPU and an I / O device) , creating a fault-tolerant system. In addition, the router logic includes the ability to disable certain ports as output ports based on the router input port on which a message packet is received and the destination of the message packet. A router, who receives a message packet that contains a destination address that specifies a port that is invalid for this message packet as the output port of the router, drops the message packet and notifies the maintenance diagnosis system. Careful use of this feature can prevent a message packet from getting into an endless loop and can delay or prevent other message packets from getting into such a loop (e.g., by creating a "system lock" discussed below "-Condition).

    Die CPUs eines Verarbeitungssystems sind in der Lage, in einer von zwei Grundbetriebsarten zu arbeiten: einem "Simplexbetrieb", in welchem jede CPU (eines CPU-Paars) unabhängig von der anderen betrieben wird, oder einem "Duplexbetrieb", in welchem CPU-Paare jeweils synchron im Gleichschritt laufend betrieben werden. Der Simplexbetrieb schafft die Fähigkeit der Rekonfiguration und des Neustarts nach Eintreten von Fehlern, die durch fehlerprüfende Hardware entdeckt worden sind (vgl. das U.S.-Patent Nr. 4.228.496, in welchem ein Mehrfachverarbeitungssystem abgehandelt wird, bei welchem jeder Prozessor die Fähigkeit besitzt, die Betriebsfähigkeit jener Prozessoren zu überprüfen, die auf derselben Ebene arbeiten, und die Rechentätigkeit eines Prozessors zu übernehmen, von dem festgestellt bzw. vermutet wird, dass er ausgefallen ist). Beim Duplexbetrieb führen die gepaarten CPUs beide einen identischen Befehlsstrom aus, wobei jede CPU des Paars jeden Befehl des Befehlsstroms im wesentlichen zur gleichen Zeit ausführt.The CPUs of a processing system are able to work in one of two basic modes: a "simplex mode" in which each CPU (of a CPU pair) is independent of the other is operated, or a "duplex operation" in which CPU pairs can be operated synchronously and in step. Simplex operation creates the ability reconfiguration and restart after errors, by error checking Hardware have been discovered (see U.S. Patent No. 4,228,496, in which a multiple processing system is dealt with which each processor has the capability owns the operability to check those processors that work at the same level and take over the computing work of a processor, which is determined or suspected to have failed). Lead in duplex operation the paired CPUs both have an identical instruction stream, whereby each CPU of the pair essentially each instruction of the instruction stream executing at the same time.

    Der Duplexbetrieb schafft eine fehlertolerante Plattform für weniger robuste Betriebssystems (z. B. das UNIX-Betriebssystem). Das erfindungsgemässe Verarbeitungssystem mit den gepaarten, im Gleichschritt betriebenen CPUs ist so aufgebaut, dass Fehler in vielen Fällen verborgen werden, und zwar primär durch die Hardware (z. B. Fortsetzung des Betriebs trotz Vorhandensein eines Fehlers).The duplex operation creates a fault-tolerant Platform for less robust operating system (e.g. the UNIX operating system). The inventive Processing system with the paired, operated in step CPUs is designed to hide errors in many cases, and primary through the hardware (e.g. continued operation despite existence an error).

    Wird das Verarbeitungssystem im Duplexbetrieb ausgeführt, so verwendet jede CPU das E/A-System, um auf jedes beliebige Peripheriegerät des Verarbeitungssystems zuzugreifen, und zwar ungeachtet dessen, welchem (der beiden oder mehreren) Subprozessorsystemen das betreffende Peripheriegerät scheinbar zugeordnet ist. Ausserdem werden im Duplexbetrieb Nachrichtenpakete, die an ein CPU-Paar zu liefern sind, von dem E/A-System im wesentlichen zur selben Zeit an beide CPUs des CPU-Paars übermittelt, um den synchronen, im Gleichschritt laufenden Betrieb des CPU-Paars aufrechtzuerhalten. Somit wird durch den erfinderischen Hauptaspekt der Erfindung ein Duplexbetrieb geschaffen, der die Fähigkeit beinhaltet, zu gewährleisten, dass beide CPUs eines im Gleichschritt laufenden CPU-Paars E/A-Nachrichtenpakete zur selben Zeit in derselben Weise empfangen In diesem Sinn ist jedes mit einer CPU eines duplexbetriebenen CPU-Paars verbundene Routerelement mit beiden CPU-Elementen des CPU-Paars verbunden. Jeder so verbundene Router, welcher eine für eine CPU bestimmte Nachricht (welche entweder von einem Peripheriegerät wie z. B. einer Massenspeichereinheit oder einer Verarbeitungseinheit kommen kann) empfängt, kopiert die Nachricht und sendet sie an beide CPUs des CPU-Paars unter Verwendung von Synchronisationsverfahren, die eine Aufrechterhaltung des Synchronbetriebs der CPUs sicherstellen. In der Tat wird das im Duplexbetrieb ausgeführte CPU-Paar von dem E/A-System und von anderen im Duplexbetrieb laufenden CPU-Paaren als eine einzelne CPU angesehen. Somit wird das E/A-System, welches Elemente aus allen Unterverarbeitungssystemen beinhaltet, von dem im Duplexbetrieb laufenden CPU-Paar als ein homogenes System betrachtet, innerhalb welchem auf jedes Peripheriegerät zugegriffen werden kann.The processing system becomes duplex executed each CPU uses the I / O system to access any peripheral of the processing system to access regardless of which one of the two or several) subprocessor systems, the peripheral device in question apparently assigned. In addition, in duplex mode, message packets, essentially to be delivered to a CPU pair from the I / O system transmitted to both CPUs of the CPU pair at the same time in order to to keep the CPU pair running in sync. Thus through the main inventive aspect of the invention, duplex operation created the ability involves ensuring that both CPUs of a CPU pair running in step I / O message packets received at the same time in the same way is in this sense each connected to a CPU of a duplex CPU pair Router element connected to both CPU elements of the CPU pair. Each router connected in this way, which has a message intended for a CPU (which is either from a peripheral device such as a mass storage unit or can come to a processing unit) receives, copied the message and sends it to both CPUs of the CPU pair using of synchronization procedures that maintain the synchronous operation ensure the CPUs. Indeed, the duplex CPU pair from the I / O system and from other duplex CPU pairs viewed as a single CPU. Thus the I / O system which Includes elements from all subprocessing systems, from which CPU pair running in duplex mode viewed as a homogeneous system, within which each peripheral device can be accessed.

    Die Vielseitigkeit der Routerelemente ermöglicht es, dass Cluster von im Duplexbetrieb laufenden Subsystem-Paaren untereinander ein Multiprozessorsystem bilden, in welchem die CPU eines jeden Prozessors sich in Wirklichkeit aus einem Paar von synchron im Gleichschritt laufenden CPUs zusammensetzt.The versatility of the router elements allows it that clusters of subsystem pairs running in duplex mode with one another form a multiprocessor system in which the CPU of each Processor actually consists of a pair of synchronously in step running CPUs.

    Interrupts, welche von einem E/A-Element herrühren, werden in derselben Weise an die CPU (bzw. bei Duplexbetrieb an das CPU-Paar) übertragen, wie dies auch bei jeder anderen Informationsübertragung der Fall ist: nämlich als Datenpakete. Dies bringt zahlreiche Vorteile mit sich: Interrupts können – wie alle anderen E/A-Nachrichtenpakete auch – durch CRC geschützt werden. Ausserdem wird dadurch das Erfordernis nach zusätzlichen Signalleitungen umgangen, die ansonsten speziell zur gleichzeitigen Interruptmeldung an beide CPUs benötigt würden; durch die Übermittlung von Interrups über das Nachrichtenpaketsystem kann sichergestellt werden, dass diese, ebenso wie E/A-Nachrichtenpakete, in synchronisierter Weise bei den im Duplexbetrieb laufenden CPUs eintreffen. Interrupt-Nachrichtenpakete enthalten Informationen bezüglich der Ursache für das Interrupt, wodurch das zeitaufwendige Lesen der das Interrupt ausgebenden Geräte durch die CPU(s) umgangen werden kann, wie es derzeit zur Ermittlung der Interruptursache gehandhabt wird. Ausserdem können die Routerelemente, wie bereits weiter oben angedeutet, mehrfache Pfade für die Übermittlung der Interrupt-Pakete bereitstellen, wodurch die Fehlertoleranzfähigkeit des Systems erhöht wird. Darüber hinaus kann durch die Verwendung desselben Nachrichtenübermittlungssystems zur Übertragung von Daten zwischen E/A-Einheiten und den CPUs und zur Übertragung von Interrupts an die CPUs eine geordnete Reihenfolge von E/A-Informationen und Interrupts bewahrt werden; das heisst ein E/A-Gerät wartet bis eine E/A-Information vollständig übertragen ist, bevor eine Interrupt-Nachricht gesendet wird.Interrupts from an I / O element originate, are sent to the CPU (or in duplex mode) in the same way the CPU pair), as is the case with any other information transfer: namely as Data packets. This has numerous advantages: Interrupts can - like everyone other I / O message packets also through CRC protected become. It also eliminates the need for additional Bypassed signal lines that are otherwise specifically for simultaneous Interrupt message to both CPUs would be required; through the transmission from Interrups about the message packet system can be ensured that these, as well as I / O message packets, in a synchronized manner the CPUs running in duplex mode arrive. Interrupt message packets contain information regarding the cause of the interrupt, which makes the time consuming reading of the interrupt issuing devices bypassed by the CPU (s) as it is currently used to determine the cause of the interrupt is handled. They can also Router elements, as already indicated above, multiple paths for the transmission of the Interrupt packets are provided, reducing fault tolerance of the system increased becomes. About that in addition, by using the same messaging system for transmission of data between I / O units and the CPUs and for transmission of interrupts to the CPUs an ordered order of I / O information and Interrupts are preserved; that is, an I / O device is waiting until I / O information is completely transmitted is before an interrupt message is sent.

    Ein weiterer Neuheitsaspekt des hier beschriebenen Systems liegt in der Implementierung einer Technik zur Validierung des Zugriffs auf den Speicher einer jeden CPU. Das Verarbeitungssystem erlaubt einen Zugriff auf den Speicher einer jeden CPU seitens irgendeines anderen Elements des Systems (d. h. durch andere CPUs und Peripheriegeräte). Aufgrund dieses Umstands muss ein Verfahren zum Schutz gegen unbeabsichtigten und/oder unerlaubten Zugriff geschaffen werden. Gemäss diesem Aspekt der Erfindung wird von jeder CPU eine Zugriffsvalidierungsund -übersetzungstabelle (ZVÜ) aufrechterhalten, welche Einträge für jede CPU-externe Quelle enthält, der Zugriff auf den Speicher dieser CPU gewährt wird. Jeder dieser ZVÜ-Tabelleneinträge beinhaltet Informationen betreffend den erlaubten Zugriffstyp (z. B. eine Speicherschreiberlaubnis) und die Angabe des Ortes im Speicher, an dem dieser Zugriff erlaubt ist. Die Erstellung von Nachrichtenpaketen, die durch das E/A-System geleitet werden, erfolgt, wie weiter oben bereits angedeutet, unter Verwendung von Informationen zur Beschreibung des Ursprungselements des Nachrichtenpakets, des Bestimmungsortes des Nachrichtenpakets, des Inhalts des Nachrichtenpakets (z. B. am Bestimmungsort zu schreibende Daten, oder eine Anforderung von am Bestimmungsort auszulesenden Daten) und dergleichen. Darüber hinaus, dass es den Routerelementen ermöglicht wird, das Nachrichtenpaket rasch an seinen Endbestimmungsort zu leiten, verwendet die empfangende CPU die Informationen dazu, um auf die ZVÜ-Tabelle zuzugreifen und in dieser den sich auf die Quelle des Nachrichtenpakets beziehenden Eintrag auszuwählen und um zu prüfen, ob ein Zugriff erlaubt ist und, wenn ja, welcher Zugriffstyp und welchen Ort die empfangende CPU auswählt, um die Adresse abzubilden (d. h. zu übersetzen). Auf diese Weise wird der Speicher einer jeden CPU gegen fehlgeleitete Zugriffe geschützt. Die ZVÜ-Tabelle wird auch dazu herangezogen, Interrupts an die CPU durchzustellen.Another novelty aspect of the system described here is the implementation of a technique for validating access to the memory of each CPU. The processing system allows each CPU's memory to be accessed by any other element of the system (ie, by others) CPUs and peripheral devices). Due to this fact, a procedure for protection against unintentional and / or unauthorized access must be created. In accordance with this aspect of the invention, each CPU maintains an access validation and translation table (ZVÜ) that contains entries for each external CPU source that is granted access to that CPU's memory. Each of these ZVÜ table entries contains information regarding the permitted access type (e.g. a memory write permission) and the specification of the location in the memory at which this access is permitted. As already indicated above, the creation of message packets which are routed through the I / O system is carried out using information to describe the originating element of the message packet, the destination of the message packet, the content of the message packet (e.g. on Destination data to be written, or a request for data to be read at the destination) and the like. In addition to allowing the router elements to quickly route the message packet to its final destination, the receiving CPU uses the information to access and select the ZVÜ table in the message packet source, and to Check whether access is permitted and, if so, what type of access and which location the receiving CPU selects to map the address (ie to translate). In this way, the memory of each CPU is protected against misdirected access. The ZVÜ table is also used to put interrupts through to the CPU.

    Durch die ZVÜ-Tabelle wird gewährleistet, dass der Speicher einer CPU nicht durch ein fehlerhaftes E/A-Gerät zerstört wird. Zugriffsrechte können von einem Speicher gewährt werden, der sich grössenmässig über einen Bereich von einem Byte bis zu einer ganzen Reihe von Seiten erstreckt. Die Fehlerbegrenzung ist besonders wichtig im E/A-Bereich, weil die Systemanbieter von Systemen gewöhnlich viel weniger Einflussmöglichkeiten auf die Qualität der Hardware und Software von Drittanbietern haben. Probleme können auf ein einziges E/A-Gerät bzw. einen Controller anstatt auf das gesamte E/A-System eingegrenzt werden.The ZVÜ table ensures that that the memory of a CPU is not destroyed by a faulty I / O device. Access rights can granted by a store who are larger than one Range extends from one byte to a whole series of pages. Error limitation is particularly important in the I / O area because the system providers of systems usually have much less influence on the quality of third party hardware and software. Problems can arise a single I / O device or a controller instead of the entire I / O system become.

    Ein weiterer Aspekt des hier beschriebenen Systems betrifft die Technik, die von einer CPU verwendet wird, um Daten an das E/A-System zu übertragen. Gemäss diesem Aspekt ist in jeder CPU eine Blockübertragungsmaschine vorgesehen, um Übertragungen von Eingabe/Ausgabeinformationen zwischen einer CPU und jeglichen anderen Komponenten des Verarbeitungssystems abzuwickeln. Dadurch werden die einzelnen Prozessoreinheiten der CPU von den eher anspruchslosen Routineaufgaben enthoben, die darin bestehen, Informationen aus dem Speicher zu holen und in das TNet-Netzwerk zu stellen oder vom Netzwerk kommende Informationen in Empfang zu nehmen. Die Prozessoreinheit der CPU beschränkt sich darauf, Datenstrukturen im Speicher zusammenzusetzen, welche die zu sendenden Daten zusammen mit anderen Informationen enthalten, wie zum Beispiel dem gewünschten Bestimmungsort, der Datenmenge und, für den Fall, dass eine Antwort erforderlich ist, dem Ort im Speicher, an welchem die Antwort nach ihrer Inempfangnahme gespeichert werden soll. Sobald die Prozessoreinheit mit der Zusammensetzung der Datenstruktur fertig ist, wird die Blockübertragungsmaschine benachrichtigt, damit diese übernimmt und das Senden der Daten in Form von Nachrichtenpaketen einleitet. Ist eine Antwort zu erwarten, so erstellt die Blockübertragungsmaschine die für die Behandlung der Antwort erforderliche Struktur, einschliesslich des Ortes im Speicher, an dem die Antwort abzulegen ist. Sofern eine Antwort empfangen wird, wird diese an den identifizierten, erwarteten Speicherort geleitet und wird die Prozessoreinheit benachrichtigt, dass die Antwort empfangen wurde.Another aspect of what is described here Systems relates to the technology used by a CPU to transfer data to the I / O system. According to In this aspect, a block transfer machine is provided in each CPU, about transfers of input / output information between a CPU and any other components of the processing system. Thereby the individual processor units of the CPU are rather undemanding Relieved of routine tasks that consist of information the memory and put in the TNet network or from Network to receive incoming information. The processor unit of the CPU to assemble data structures in memory which contain the data to be sent together with other information, such as the one you want Destination, the amount of data and, in the event that an answer is required, the location in memory where the answer is after when they are received. Once the processor unit with the composition of the data structure finished, the block transfer machine notified so that it takes over and initiates the sending of the data in the form of message packets. If an answer is expected, the block transfer engine creates the for structure required for handling the response, including the location in memory where the answer is to be filed. Provided a response is received, it is sent to the identified, expected location and the processor unit is notified, that the answer was received.

    Weitere Aspekte und Merkmale der gegenständlichen Erfindung werden für einschlägig ausgebildete Fachleute bei der Lektüre der nachfolgenden, detaillierten Beschreibung der Erfindung offenkundig, welche zusammen mit den beiliegenden Zeichnungen betrachtet werden sollte.Other aspects and characteristics of subject Invention for relevant trained professionals in reading the following detailed Description of the invention, which together with the accompanying drawings should be considered.

    1Averanschaulicht ein gemäss den Ausführungen des vorliegenden Patents entworfenes Verarbeitungssystem, und die1Bund1Cveranschaulichen zwei Alternativkonfigurationen des Verarbeitungssystems aus1A, und zwar unter Verwendung von Clustern bzw. Anordnungen des Verarbeitungssystems aus1A;1Aillustrates a processing system designed in accordance with the teachings of this patent, and the1Band1Cillustrate two alternative configurations of the processing system1A, using clusters or arrangements of the processing system1A;

    2veranschaulicht in vereinfachter Form als Blockdiagramm die zentrale Verarbeitungseinheit (CPU), welche Teil eines jeden Subprozessorsystems aus den1A–1Cist;2illustrates in a simplified form as a block diagram the central processing unit (CPU), which is part of each subprocessor system from the1A-1Cis;

    die3A–3Cund4A–4Cveranschaulichen den Aufbau der verschiedenen Nachrichtenpakete, die dazu verwendet werden, um Informationen wie zum Beispiel Eingabe/Ausgabe-Daten über das in2gezeigte Bereichsnetzwerk-E/A-System zu übermitteln;the3A-3Cand4A-4Cillustrate the structure of the various message packets that are used to provide information such as input / output data about the in2transmit area network I / O system shown;

    5veranschaulicht die Schnittstelleneinheit, welche Teil der CPUs aus2ist, um den Prozessor und den Speicher an das E/A-System des Bereichsnetzwerks anzuschliessen;5illustrates the interface unit, which part of the CPUs2to connect the processor and memory to the area network I / O system;

    6ist ein Blockdiagramm, welches einen Abschnitt des Paketempfängers der Schnittstelleneinheit aus5veranschaulicht;6Fig. 3 is a block diagram showing a section of the packet receiver of the interface unit5illustrated;

    7Averanschaulicht in Diagrammform das Taktsynchronisierungs-FIFO (TS-FIFO), welches von dem Paketempfänger des Paketemfangssegments aus6verwendet wird;7Aillustrates in diagram form the clock synchronization FIFO (TS FIFO), which originates from the packet receiver of the packet reception segment6is used;

    78ist ein Blockdiagramm eines Entwurfs des in7Agezeigten Taktsynchronisierungs-FIFO-Aufbaus;78Fig. 4 is a block diagram of a design of the in7Aclock synchronization FIFO structure shown;

    8veranschaulicht die Querverbindungen für zum Zweck der Fehlerprüfung von den beiden Schnittstelleneinheiten einer CPU abgehende Übertragungen;8thillustrates the cross-connections for the purpose of debugging the two Interface units of a CPU outgoing transmissions;

    9ein codiertes (8Bbis9B) Daten/Befehls-Symbol;9a coded (8Bto9B) Data / command symbol;

    10veranschaulicht das Verfahren und den Aufbau, welche von der Schnittstelleneinheit aus5dazu benutzt werden, um Daten, die zu den Datenfehlerprüfungs-Speichersteuerungen übertragen werden, einer Gegenkontrolle auf Fehler hin zu unterziehen;10illustrates the method and structure, which from the interface unit5used to cross-check data transferred to the data error check memory controllers for errors;

    11ist eine als Blockdiagramm ausgeführte Darstellung der Implementierung der Zugriffsvalidierungsund -übersetzungstabelle (ZVÜ-Tabelle), die dazu verwendet wird, um andere (CPU-externe) Komponenten des Verarbeitungssystems zu prüfen und diesen Lese- und/oder Schreibzugriff auf den Speicher einer CPU aus2zu gewähren;11Fig. 3 is a block diagram representation of the implementation of the access validation and translation table (ZVÜ table) used to check other (CPU external) components of the processing system and to read and / or write access to the memory of a CPU2to grant;

    12ist ein Blockdiagramm das in Diagrammform die Zusammensetzung einer Adresse veranschaulicht, welche dazu verwendet wird, um auf einen ZVÜ-Tabelleneintrag zuzugreifen;12Fig. 3 is a block diagram illustrating in diagram form the composition of an address used to access a ZVÜ table entry;

    die13A,13Bund13Cveranschaulichen das jeweilige Aussehen von ZVÜ-Tabelleneinträgen für normale Anforderungen und für Interruptanforderungen;the13A.13Band13Cillustrate the respective appearance of ZVÜ table entries for normal requests and for interrupt requests;

    14Averanschaulicht die Logik zum Freigeben von Interruptanforderungen an Warteschlangen im Speicher und an die Prozessoreinheiten der CPU aus2;14Aillustrates the logic for releasing interrupt requests to queues in memory and to the processor units of the CPU2;

    14Bveranschaulicht den Prozess, der verwendet wird, um eine Speicheradresse für einen Warteschlangeneintrag zu bilden;14Billustrates the process used to form a queue entry memory address;

    15ist ein Blockdiagramm, das die Datenausgabe-Grundelemente veranschaulicht, welche von einer Prozessoreinheit in dem Speicher der CPU aus2gebildet werden und welche Daten enthalten, die über die in den1A–1Cgezeigten Bereichs-E/A-Netzwerke zu senden sind, wobei darüber hinaus auch die Blockübertragungsmaschineneinheit (BÜM) der Schnittstelleneinheit aus5veranschaulicht wird, welche betrieben wird, um auf die Datenausgabe-Grundelemente zuzugreifen, und zwar im Hinblick auf deren Übertragung an das Bereichs-E/A-Netzwerk durch das in7gezeigte Paketübertragungssegment;15Fig. 12 is a block diagram illustrating the basic data output elements which are executed by a processor unit in the memory of the CPU2are formed and which contain data about the in the1A-1Carea I / O networks shown are to be sent, the block transmission machine unit (BÜM) of the interface unit also being used5which operates to access the data output primitives in view of their transmission to the area I / O network by the method shown in FIG7packet transmission segment shown;

    16veranschaulicht den Aufbau des 72-Bit-Datenpfades, welcher zum Teil durch ein zwischen dem Speicher einer CPU aus2und seiner Schnittstelleneinheit befindliches Paar von Speichersteuerungen gebildet wird, um aus dem Speicher auf 72 Datenbits zuzugreifen, welche zwei an zwei aufeinanderfolgenden, geradzahligen Adressen befindliche 32-Bit-Wörter, auf die gleichzeitig zugegriffen wird, sowie 8 Prüfbits beinhalten;16illustrates the structure of the 72-bit data path, which is partly characterized by a between the memory of a CPU2and its interface unit pair of memory controllers is formed to access 72 bits of data from the memory, including two 32-bit words accessed at two consecutive even addresses and accessed simultaneously, and 8 check bits;

    17ist ein vereinfachtes Blockdiagramm einer der beiden in2dargestellten Speichersteuerungen, in welchem ein serieller Zugriff auf diese durch einen Online-Zugangspunkt veranschaulicht wird;17Figure 3 is a simplified block diagram of one of the two in2illustrated memory controllers, in which a serial access to them is illustrated by an online access point;

    18veranschaulicht in vereinfachter Form die Ablaufsteuereinheit des Paars von Speichersteuerungen aus2sowie die Technik, die verwendet wird, um beide zum Zweck der Fehlerprüfung gegenzuprüfen;18illustrates in a simplified form the sequencer from the pair of memory controllers2as well as the technique used to check both for the purpose of error checking;

    19Averanschaulicht in Form eines vereinfachten Blockdiagramms die Routereinheit, welche bei den Bereichs-Eingabe/Ausgabe-Netzwerken der in den1A–1Cgezeigten Verarbeitungssysteme zum Einsatz kommen;19Aillustrates in the form of a simplified block diagram the router unit, which in the area input / output networks of the in the1A-1Cprocessing systems shown are used;

    19Bveranschaulicht einen Vergleich zwischen zwei Port-Eingangsdaten der Routereinheit aus19A;19Billustrates a comparison between two port input data of the router unit19A;

    20Aist ein Blockdiagramm des Aufbaus von einem der sechs Eingabeports der in19Agezeigten Routereinheit;20AFig. 3 is a block diagram of the structure of one of the six input ports shown in Fig19Arouter unit shown;

    20Bist ein Blockdiagramm der Synchronisierungslogik, die verwendet wird, um Befehls-/Daten-Symbole zu validieren, welche an einem Eingabeport der Routereinheit aus19Aempfangen werden,20BFigure 3 is a block diagram of the synchronization logic used to validate command / data symbols which are output from an input port of the router unit19Abe received

    21Aist ein Blockdiagramm, in welchem die an dem in20Agezeigten Eingabeport vorhandene Zielport-Auswahllogik veranschaulicht wird;21Ais a block diagram in which the on the in20AExisting destination port selection logic shown is illustrated;

    21Bist ein Entscheidungsdiagramm in welchem die Routing-Entscheidungen veranschaulicht werden, die von der in21Adargestellten Zielport-Auswahllogik getroffen werden;-{}-21Bis a decision diagram illustrating the routing decisions made by the in21Ashown destination port selection logic are made; - {} -

    21Cist ein Blockdiagramm der algorithmischen Routing-Logik, welche ein Teil der in21Adargestellten Zielport-Auswahllogik ist;21Cis a block diagram of the algorithmic routing logic which is part of the21Adestination port selection logic shown;

    22ist eine als Blockdiagramm ausgebildete Veranschaulichung des Aufbaus von einem der sechs Ausgabeports der in19Agezeigten Routereinheit;22FIG. 4 is a block diagram illustration of the structure of one of the six output ports of FIG19Arouter unit shown;

    23ist eine Veranschaulichung des Verfahrens, das verwendet wird, um identische Informationen an ein synchron im Duplexbetrieb laufendes Paar von CPUs aus2zu übermitteln, wenn das Verarbeitungssystem sich in im Gleichschritt laufenden (Duplex-)Betrieb befindet, und zwar unter Verwendung eines Paars von FIFOs aus7A(eines für jede CPU);23Figure 3 is an illustration of the method used to deliver identical information to a pair of CPUs synchronously duplexing2transmit when the processing system is in "duplex" operation using a pair of FIFOs7A(one for each CPU);

    24ist ein vereinfachtes Blockdiagramm zur Veranschaulichung des Taktgebersystems eines jeden der Unterverarbeitungssysteme aus1A–1Czu Erzeugung der Mehrzahl von Taktsignalen, die zum Betreiben der verschiedenen Elemente dieses Unterverarbeitungssystems verwendet werden;24Figure 10 is a simplified block diagram illustrating the clock system of each of the sub-processing systems from1A-1Cgenerating the plurality of clock signals used to operate the various elements of this sub-processing system;

    25veranschaulicht die Topologie, welche zum Zusammenzuschalten der Taktgebersysteme von gepaarten Unterverarbeitungssystemen verwendet wird, um die verschiedenen Taktsignale des Paars von Unterverarbeitungssystemen untereinander zu synchronisieren; die26Aund26Bveranschaulichen eine Taktsteuerlogik zum Halten einer konstanten FIFO-Geschwindigkeit, die dazu verwendet wird, das Taktsynchronisierungs-FIFO aus8oder20entsprechend zu steuern, wenn eine Situation eintritt, in der die beiden Takte, die dazu dienen, Symbole in die Warteschlange des FIFO einzureihen und daraus zu entnehmen, sich beträchtlich voneinander unterscheiden;25illustrates the topology used to interconnect the clock systems of paired sub-processing systems to synchronize the different clock signals of the pair of sub-processing systems; the26Aand26Billustrate one Clock control logic to maintain a constant FIFO speed used to turn the clock synchronization FIFO off8thor20control accordingly when a situation arises in which the two clocks used to put and remove symbols in the queue of the FIFO differ considerably from one another;

    27ist ein Taktdiagramm, das die Betriebsweise der Taktsteuerlogik zum Halten einer konstanten Geschwindigkeit aus den26Aund26B;27FIG. 10 is a timing diagram illustrating the operation of the timing control logic to maintain a constant speed from the26Aand26B;

    28veranschaulicht den Aufbau des Online-Zugangspunkts (OLZP), der dazu verwendet wird, Zugriff zu dem Instandhaltungsprozessor (IP) für die verschiedenen Elemente des Systems aus1A(bzw. jener aus den1Boder1C) zu erhalten, um diese Elemente zu konfigurieren;28illustrates the structure of the online access point (OLZP) used to access the maintenance processor (IP) for the various elements of the system1A(or that from the1Bor1C) to configure these elements;

    29veranschaulicht einen Abschnitt des Systemspeichers und zeigt Cachespeicherblockgrenzen; und die30Aund30Bveranschaulichen die Soft-Flag-Logik, die verwendet wird, um asymmetrische Variablen zwischen den CPUs von gepaarten, im Duplex-Betriebsmodus laufenden Unterverarbeitungssystemen zu befördern;29illustrates a portion of system memory and shows cache block boundaries; and the30Aand30Billustrate the soft flag logic used to convey asymmetric variables between the CPUs of paired duplexing systems running in duplex mode;

    31Azeigt ein Flussdiagramm, und31Bveranschaulicht einen Abschnitt des Synchronisierungstakts (SYNC TKT), die beide dazu verwendet werden, die Taktsynchronisierungs-FIFOs der CPUs und die Router des Verarbeitungssystems aus1A, die Informationen voneinander empfangen, rückzusetzen und zu synchronisieren;31Ashows a flowchart, and31Billustrates a portion of the synchronization clock (SYNC TKT), both of which are used to clock out the CPU's clock synchronization FIFOs and the processing system's routers1Areceive, reset and synchronize the information from each other;

    32ist ein Flussdiagramm, das in groben Umrissen das Verfahren veranschaulicht, das verwendet wird, um Divergenzen zwischen zwei im Duplexbetrieb arbeitenden CPUs zu erkennen und handzuhaben;32Fig. 4 is a flow diagram outlining broadly the method used to detect and manage divergences between two duplex CPUs;

    die33A–33Dveranschaulichen in allgemeiner Weise das Verfahren, das verwendet wird, um eine der CPUs des in1Agezeigten Verarbeitungssystems in im Gleichschritt laufenden Duplexbetrieb mit der anderen der CPUs zu bringen, ohne den Betrieb des Verarbeitungssystems in messbarer Weise anzuhalten; undthe33A-33Dgenerally illustrate the method used to implement one of the CPUs of the type shown in FIG1Ato bring the processing system shown in synchronous duplex operation with the other of the CPUs, without stopping the operation of the processing system in a measurable manner; and

    34veranschaulicht eine kostenreduzierte Architektur, in welche Lehren der Erfindung einfliessen; und34illustrates a reduced architecture that incorporates teachings of the invention; and

    35veranschaulicht die Betriebsweise einer Barrieren-Transaktion, um einen Übertragungsweg zwischen einer CPU aus1A(oder1B,1C) und einem Eingabe-Ausgabe-Gerät zu prüfen und zu verifizieren.35illustrates the operation of a barrier transaction to make a transfer path between a CPU1A(or1B.1C) and an input-output device to check and verify.

    Überblick: Overview:

    Betrachtet man nun die Figuren genauer und widmet man sich fürs erste hauptsächlich der1A, so findet man dort dargestellt ein Datenverarbeitungssystem, bezeichnet mit dem Bezugszeichen10, welches gemäss den verschiedenen Lehren der vorliegenden Erfindung aufgebaut ist. Wie1Azeigt, umfasst das Datenverarbeitungssystem10zwei Subprozessorsysteme10Aund10B, von denen beide im wesentlichen im Aufbau und in der Funktion identisch sind. Demgemäss sei an hier darauf verwiesen, dass sofern keine anderslautenden Angaben gemacht werden, eine Beschreibung eines beliebigen der Subprozessorsysteme10in der gleichen Weise auch auf jedes andere Subprozessorsystem10zutrifft.If you now take a closer look at the figures and for the time being you mainly focus on1A, there is a data processing system shown there, designated by the reference symbol10constructed according to the various teachings of the present invention. How1Ashows includes the data processing system10two subprocessor systems10Aand10B, both of which are essentially identical in structure and function. Accordingly, reference should be made to the fact that, unless otherwise stated, a description of any of the subprocessor systems10in the same way to any other subprocessor system10true.

    Um nun bei1Afortzusetzen, sei somit erläutert, dass jedes der Subprozessorsysteme10A,10Beine zentrale Verarbeitungseinheit (CPU)12, einen Router14und eine Lehrzahl von Eingabe-Ausgabe-(E/A)-Paketschnittstellen16beinhaltet, von denen eine jede ihrerseits über einen nativen Eingabe-Ausgabe-Bus (NEA) an eine Anzahl (n) von E/A-Geräten17angeschlossen ist. An mindestens eine der E/A-Paketschnittstellen16ist auch ein Instandhaltungsprozessor (IP)18angeschlossen.To now at1ATo continue, it is thus explained that each of the subprocessor systems10A.10Ba central processing unit (CPU)12, a router14and a teaching number of input-output (I / O) packet interfaces16includes, each of which in turn, through a native I / O bus (NEA) to a number (s) of I / O devices17connected. To at least one of the I / O packet interfaces16is also a maintenance processor (IP)18connected.

    Der IP18A,18Beines jeden Subprozessorsystems10A,108ist mit jedem der Elemente dieses Subprozessorsystems über einen IEEE1149.1Prüfbus19A,19B(in Durchsicht dargestellt in1A; in den1Bund1Caus Gründen der Klarheit nicht dargestellt) und über eine Online-Zugangspunkt-Schnittstelle (OLZP-Schnittstelle) verbunden, welche für jedes Element Register enthält, die von dem IP18verwendet werden, um Zustands- und Steuerinformationen zwischen dem Element und dem IP18auszutauschen. Der IP18kann auch, wie in1Averanschaulicht, mit den CPUs12kommunizieren, indem er Nachrichtenpakete erstellt und versendet. (Eigentlich ist es die E/A-Paket-Schnittstelle16, die als Reaktion auf eine diesbezügliche Anfrage seitens des rP18ein Paket erstellt und sendet.)The IP18A.18Bof any subprocessor system10A.108is with each of the elements of this subprocessor system via an IEEE1149.1test bus19A.19B(shown in transparency in1A; in the1Band1Cnot shown for reasons of clarity) and connected via an online access point interface (OLZP interface), which contains registers for each element, which are assigned by the IP18used to provide status and control information between the element and the IP18exchange. The IP18can also, as in1Aillustrated with the CPUs12communicate by creating and sending message packets. (Actually, it's the I / O packet interface16in response to a request from the rP18creates and sends a package.)

    Die CPU12, der Router14und die E/A-Paket-Schnittstellen16sind durch "TNet"-Links L miteinander verbunden, welche bidirektionalen Datenaustausch ermöglichen. Jedes TNet-Link L umfasst zwei unidirektionale 10-Bit-Sublink-Busse. Jedes TNet-Sublink überträgt 9 Datenbits und ein begleitendes Taktsignal. Wie1Aweiterhin veranschaulicht, verbinden die TNet-Links L auch die Subprozessorsysteme10Aund10Buntereinander, wodurch sowohl der Zugriff eines jeden Subprozessorsystems10auf die E/A-Geräte des jeweils anderen als auch als auch eine Kommunikation zwischen den CPUs gewährleistet wird. Wie noch zu erläutern sein wird, kann einer jeden CPU12des Verarbeitungssystems10Zugriff auf den Speicher jeder anderen CPU12gewährt werden, wenngleich auch dieser Zugriff einer Validierung bedarf, was einen wichtigen Aspekt der Erfindung darstellt. Auf gewissermassen ähnliche Art und Weise kann auch von den Peripheriegeräten aus auf den Speicher der CPU12zugegriffen werden, und zwar üblicherweise als Ergebnis einer von einer CPU eingeleiteten Operation. Diese Zugriffe bedürfen ebenfalls der Validierung, um die Korruption des Speichers einer CPU12durch ein nicht korrekt funktionierendes Peripheriegerät17zu verhindern.The CPU12, the router14and the I / O packet interfaces16are connected to each other by "TNet" links L, which enable bidirectional data exchange. Each TNet-Link L comprises two unidirectional 10-bit sub-link buses. Each TNet sub-link transmits 9 data bits and an accompanying clock signal. How1Afurther illustrated, the TNet links L also connect the subprocessor systems10Aand10Bwith each other, giving both access to each subprocessor system10to each other's I / O devices as well as communication between the CPUs is guaranteed. As will be explained later, each CPU12of the processing system10Access to the memory of any other CPU12are granted, although this access also requires validation, which is an important aspect of the invention. In a somewhat similar way, the peripherals memory of the CPU12are accessed, usually as a result of an operation initiated by a CPU. These accesses also require validation in order to corrupt a CPU's memory12due to an incorrectly functioning peripheral device17to prevent.

    Vorzugsweise sind die Subprozessorsysteme 10A/10B gepaart, wie in1A(sowie in den weiter unten besprochenen1Bund1C) veranschaulicht, und jedes Subprozessorsystem-Paar 10A/10B (d. h. umfassend eine CPU12, zumindest einen Router14und zumindest eine E/A-Paket-Schnittstelle16mit zugeordneten E/A-Geräten).The subprocessor systems 10A / 10B are preferably paired, as in FIG1A(as well as in those discussed below1Band1C) and each subprocessor system pair 10A / 10B (ie comprising a CPU12, at least a router14and at least one I / O packet interface16with assigned I / O devices).

    Jede CPU12verfügt über zwei E/A-Ports, einen X-Port und einen Y-Port, an denen Nachrichtenpakete übermittelt und/oder empfangen werden. Der X-Port einer CPU12(z. B. der CPU12A) ist über ein TNet-Link L an einen Router (14A) des entsprechenden Subprozessorsystems (z. B. 10A) angeschlossen. Umgekehrt ist der Y-Port der CPU (12A) an den Router (14B) des dazugehörigen Subprozessorsystems (10B) angeschlossen. Diese letztere Verbindung stellt nicht nur einen Übertragungsweg für den Zugriff einer CPU (12A) auf die E/A-Geräte des anderen Subprozessorsystems (10B) bereit sondern auch auf die CPU (12B) dieses Systems zum Zweck der Kommunikation zwischen den CPUs.Any CPU12has two I / O ports, an X port and a Y port, on which message packets are transmitted and / or received. The X-port of a CPU12(e.g. the CPU12A) is connected to a router via a TNet-Link L (14A) of the corresponding subprocessor system (e.g. 10A). Conversely, the Y port of the CPU (12A) to the router (14B) of the associated subprocessor system (10B) connected. This latter connection not only provides a transmission path for access by a CPU (12A) to the I / O devices of the other subprocessor system (10B) ready but also on the CPU (12B) of this system for the purpose of communication between the CPUs.

    Der Informationsaustausch zwischen einem beliebigen Element des Verarbeitungssystems10und einem beliebigen anderen Element (z. B. der CPU12Aeines Subprozessorsystems10A) des Systems und einem beliebigen anderen Element des Systems (z. B. einem E/A-Gerät, das einer E/A-Paket-Schnittstelle16Bdes Subprozessorsystems10Bzugeordnet ist), erfolgt über Nachrichten-"Pakete". Jedes Nachrichtenpaket besteht aus einer Anzahl von 9-Bit-Symbolen, die Daten enthalten können oder ein Steuersymbol sein können. Nachrichtenpakete werden synchron auf den TNet-Links L in bitparalleler, symbolserieller Weise übertragen und von einem Sendeschritt-Takt begleitet, welcher von der das Nachrichtenpaket übertragenden Komponente bereitgestellt wird. Die Takte zwischen den kommunizierenden Elementen (d. h. zwischen Sender und Empfänger) können in einer von zwei Betriebsarten betrieben werden: einem "frequenznahen" Modus oder einem "frequenzsynchronisierten" Modus.The exchange of information between any element of the processing system10and any other element (e.g. the CPU12Aof a subprocessor system10A) of the system and any other element of the system (e.g. an I / O device that is an I / O packet interface16Bof the subprocessor system10Bassigned), takes place via message "packets". Each message packet consists of a number of 9-bit symbols, which can contain data or can be a control symbol. Message packets are transmitted synchronously on the TNet links L in a bit-parallel, symbol-serial manner and accompanied by a send step clock which is provided by the component transmitting the message packet. The clocks between the communicating elements (ie between transmitter and receiver) can be operated in one of two operating modes: a "near-frequency" mode or a "frequency-synchronized" mode.

    Beim Betrieb in frequenznahem Modus sind die von dem sendenden Element und dem empfangenden Element verwendeten Taktsignale voneinander getrennt und werden lokal generiert, wenngleich sie innerhalb eines vorbestimmten Toleranzbereichs im wesentlichen auf derselben Frequenz gehalten werden. Aus diesem Grund wurde ein einzigartiges Verfahren entwickelt, das es erlaubt, die Symbole beim Empfänger unter Verwendung einer (weiter unten eingehender beschriebenen) Taktsynchronisierungs-FIFO-Speicherstruktur (TS-FIFO) zu empfangen. Das TS-FIFO wird betrieben, um jedes Auseinanderdriften, zu dem es zwischen dem Taktsignal des Empfängers und des Überträgers eines Nachrichtenpakets infolge des frequenznahen Betriebs kommen kann, auszugleichen. Der frequenznahe Betriebsmodus kommt zum Einsatz bei der Übertragung von Symbolen von einem Router14zu einem anderen, oder zwischen einem Router14und einer I/O-Paket-Schnittstelle16, oder zwischen Routern14und CPUs12, welche im (weiter unten beschriebenen) Simplex-Betrieb laufen.When operating in near-frequency mode, the clock signals used by the transmitting element and the receiving element are separated from one another and are generated locally, although they are kept at essentially the same frequency within a predetermined tolerance range. For this reason, a unique method has been developed which allows the symbols to be received at the receiver using a clock synchronization FIFO (TS FIFO) memory structure (described in more detail below). The TS FIFO is operated to compensate for any drift that may occur between the clock signal of the receiver and the transmitter of a message packet as a result of the near-frequency operation. The near-frequency operating mode is used for the transmission of symbols from a router14to another, or between a router14and an I / O packet interface16, or between routers14and CPUs12which run in simplex mode (described below).

    Frequenzsynchronisierter Betrieb bedeutet lediglich folgendes: die Frequenzen der Taktsignale der Sende- und Empfangseinheiten sind synchronisiert, jedoch nicht unbedingt phasensynchronisiert. Frequenzsynchronisierte Taktsignale finden Verwendung, um Symbole zwischen den Routern14A,14Bund den CPUs12gepaarter Subprozessorsysteme (z. B. der Subprozessorsysteme10A,10Baus1A) zu übertragen. Da die Takte des übertragenden und des empfangenden Elements nicht phasenbezogen sind, wird hier wieder ein Taktsynchronisierungs-FIFO verwendet, auch wenn dieses in einem leicht veränderten Modus betrieben wird, verglichen mit jenem, das für den frequenznahen Betrieb verwendet wird.Frequency-synchronized operation only means the following: the frequencies of the clock signals of the transmitting and receiving units are synchronized, but not necessarily phase-synchronized. Frequency-synchronized clock signals are used to place symbols between the routers14A.14Band the CPUs12paired subprocessor systems (e.g. the subprocessor systems10A.10Bout1A) transferred to. Since the clocks of the transmitting and receiving elements are not phase-related, a clock synchronization FIFO is again used here, even if it is operated in a slightly changed mode, compared to that used for near-frequency operation.

    Jeder Router14ist mit 6 bidirektionalen TNet-Ports, 0–5, ausgestattet, von denen ein jeder im wesentlichen identisch aufgebaut ist, allerdings mit einer Ausnahme: die beiden Ports (4, 5), die für den Anschluss an eine CPU12verwendet werden, weisen eine etwas veränderte Struktur auf. Dieser Unterschied, wie noch genauer zu sehen sein wird, ist durch die Tatsache bedingt, dass Paare der Subprozessorsysteme10in einem synchron im Gleichschritt laufenden Modus, auch Duplexbetrieb genannt, betrieben werden können, wobei eine jede GPU12betrieben wird, um denselben Befehl aus demselben Befehlsstrom zur selben Zeit auszuführen. Beim Duplexbetrieb ist es wichtig, dass von einem beliebigen E/A-Gerät kommende, eingehende E/A-Signale praktisch zur selben Zeit an beide CPUs12übermittelt werden. So wird zum Beispiel ein Nachrichtenpaket, das an Port 3 des Routers14Aempfangen wird, von dem Router14Adupliziert und von den Router-Ports 4, 5 weg übertragen, so dass dasselbe Symbol im wesentlichen zur selben Zeit an die CPUs12übermittelt wird. In dieser Weise können die Ports 4, 5 von den anderen Ports 0–3 des Routers14abweichen.Any router14is equipped with 6 bidirectional TNet ports, 0-5, each of which is essentially identical, but with one exception: the two ports (4, 5), which are used to connect to a CPU12used have a slightly changed structure. This difference, as will be seen in more detail, is due to the fact that pairs of subprocessor systems10can be operated in a synchronous, synchronous mode, also called duplex operation, each GPU12is operated to execute the same command from the same command stream at the same time. In duplex operation, it is important that incoming I / O signals from any I / O device are sent to both CPUs at virtually the same time12be transmitted. For example, a message packet that is on port 3 of the router14Ais received by the router14Aduplicated and transmitted away from router ports 4, 5 so that the same symbol is sent to the CPUs at substantially the same time12is transmitted. In this way, ports 4, 5 can be accessed from the other ports 0-3 of the router14differ.

    1Averanschaulicht ein weiteres Merkmal der Erfindung: eine Quervernetzung zwischen den beiden Subprozessorsystemen10A,10Bdurch die Verwendung von zusätzlichen Routern14(in1Adurch die Bezugszeichen RX1, RX2, RY1 und RY2 gekennzeichnet). Wie1veranschaulicht, bilden die hinzugefügten Router RX1, RX2, RY1 und RY2 eine Quervernetzung zwischen den Subprozessoren10A,10B(bzw., wie gezeigt, zwischen den jeweiligen "Seiten" X und Y), um sie an die E/A-Paket-Schnittstellen 16X, 16Y anzuschliessen. Die Quervernetzungs-Links zwischen den Routern RX1–RY2 und RY1–RX2 stellen den Quervernetzungspfad von einer Seite (X bzw. Y) zu der anderen bereit, und zwar ziemlich genau in derselben Weise, wie dies auch durch die Quervernetzungen Ly zwischen den CPUs12A,12Bund den Routern14B,14Aerfolgt. Die durch die Router RX1, RX2, RY1 und RY2 bereitgestellte Quervernetzung ermöglichen es jedoch den (nicht gezeigten) E/A-Geräten, die an die F/A-Paket-Schnittstellen 16X, 16Y angeschlossen werden können, um zur einen Seite (X bzw. Y) hin oder zur anderen gelenkt werden zu können.1Aillustrates another feature of the invention: cross-linking between the two subprocessor systems10A.10Bthrough the use of additional routers14(in1Acharacterized by the reference numerals RX 1 , RX 2 , RY 1 and RY 2 ). How1illustrated, the added routers RX 1 , RX 2 , RY 1 and RY 2 form a cross-link between the subprocessors10A.10B(or, as shown, between the respective "pages" X and Y) to connect them to the I / O packet interfaces 16X, 16Y. The cross-linking links between the routers RX 1 -RY 2 and RY 1 -RX 2 provide the cross-linking path from one side (X or Y) to the other, in much the same way, as is also the case through the cross-links Ly between the CPUs12A.12Band the routers14B.14Ahe follows. However, the cross-linking provided by the routers RX 1 , RX 2 , RY 1 and RY 2 enables the I / O devices (not shown) which can be connected to the F / A packet interfaces 16X, 16Y in order to to be able to steer one side (X or Y) towards or to the other.

    Wie in1Agezeigt, stellen die Router RX2 und RY2 den E/A-Paket-Schnittstelleneinheiten16xund16yeine Schnittstelle mit zwei Ports bereit. Nun ist es natürlich klar, dass die E/A-Paket-Schnittstellen16X,16Yihrerseits so aufgebaut sein könnten, dass sie von sich aus zwei Ports aufweisen, als Alternative zu der Quervernetzung über die von den Routern RX2 and RY2 gebildeten Dual-Port-Verbindungen, und dass diese Dual Ports an die Router RX1, RY1 angeschlossen werden können.As in1AAs shown, routers RX 2 and RY 2 provide the I / O packet interface units16xand16yan interface with two ports. Now it is of course clear that the I / O packet interfaces16X.16Ycould in turn be constructed in such a way that they have two ports of their own accord, as an alternative to cross-linking via the dual-port connections formed by the routers RX 2 and RY 2 , and that these dual ports to the routers RX 1 , RY 1 can be connected.

    Wie später noch klar werden wird, nachdem der Aufbau und der Entwurf der Router14verstanden worden ist, eignen diese sich dazu, in einer Weise verwendet zu werden, die es ermöglicht, die Konfiguration des Verarbeitungssystems10auf zusätzliche Subprozessorsysteme auszuweiten, wie in den1Bund1Cveranschaulicht wird. In1Bwird zum Beispiel ein Port eines jeden der Router14Aund14Bdazu verwendet, die entsprechenden Subprozessorsysteme10Aund10Bmit zusätzlichen Subprozessorsystemen10A*und10B*zu verbinden und somit ein grösseres Verarbeitungssystem zu bilden, welches Gruppen des elementaren Verarbeitungssystems aus1umfasst.As will become clear later, after the construction and design of the router14have been understood, they are suitable for use in a manner that enables the configuration of the processing system10to expand to additional subprocessor systems, as in the1Band1Cis illustrated. In1Bbecomes, for example, a port of each of the routers14Aand14Bused the corresponding subprocessor systems10Aand10Bwith additional subprocessor systems10A *and10B *to connect and thus form a larger processing system, which groups out of the elementary processing system1includes.

    In ähnlicher Weise wird das obige Konzept in1Cauf einen Cluster bestehend aus acht Subprozessorsystemen ausgeweitet, welcher die Subprozessorsystem-Paare10A/10B,10A'/10B',10A"/10B"und10A"'/10B'"umfasst. Jedes der Subprozessorsysteme (z. B. Subprozessorsystem10A) hat seinerseits im wesentlichen dieselbe Basis-Minimalkonfiguration bestehend aus einer CPU12, einem Router14, und durch eine E/A-Paket-Schnittstelle16mit dem TNet verbundenen E/A[-Elementen], mit der Ausnahme, dass, wie in1Cgezeigt, die Subprozessorsysteme10Aund10Bjeweils zusätzliche Router14Cund14Dbeinhalten, um den Cluster über die Subprozessorsysteme10A*/10B*hinausgehend auf die Subprozessorsysteme10A"/10B"und10A"'/10B"'zu erweitern. Wie1Cweiterhin veranschaulicht, können die unbenutzten Ports 4 und 5 der Router14Cund14Ddazu verwendet werden, um den Cluster sogar noch weiter zu erweitern.Similarly, the concept above is in1Cexpanded to a cluster consisting of eight subprocessor systems, which the subprocessor system pairs10A/10B.10A '/10B '.10A "/10B "and10A "'/10B ''includes. Each of the subprocessor systems (e.g. subprocessor system10A) has essentially the same basic minimum configuration consisting of a CPU12, a router14, and through an I / O packet interface16I / O [elements] connected to the TNet, except that, as in1Cshown the subprocessor systems10Aand10Badditional routers each14Cand14Dinvolve the cluster through the subprocessor systems10A */10B *going beyond the subprocessor systems10A "/10B "and10A "'/10B ''to expand. How1Cfurther illustrated, the unused ports 4 and 5 of the router14Cand14Dcan be used to expand the cluster even further.

    Bedingt durch den Entwurf der Router14und durch das zur Leitung von Nachrichtenpaketen benutzte Verfahren kann bei wohlüberlegter Verwendung der Router14die Konfiguration der Topologie des Systems10entsprechend erfolgen, so dass jede CPU12des Verarbeitungssystems10aus1Cauf jede beliebige andere "Endeinheit" (z. B. eine CPU oder ein E/A-Gerät) eines jeden der anderen Subprozessorsysteme zugreifen kann. Zwei Pfade sind von jeder CPU12zu dem letzten Router14verfügbar, welcher die Verbindung zu der E/A-Paket-Schnittstelle16herstellt. So kann zum Beispiel der Zugriff der CPU12Bdes Subprozessorsystems10B'auf die E/A16"' des Subprozessorsystems10A"' über den Router14B(des Subprozessorsystems10B'), den Router14D, und den Router14B(des Subsystems10A"') und, auf dem Weg über das Link LA, über den Router14A(Subsystem10A"'), ODER über den Router14A(des Subsystems10A'), den Router14Cund den Router14A(Subprozessorsystem10A'") erfolgen. In ähnlicher Weise hat die CPU12Ades Subprozessorsystems10A"(über zwei Pfade) Lese- oder Schreibzugriff auf Speicherorte, welche in der CPU12Bdes Subprozessors enthalten sind. (Der Speicherzugriff seitens einer CPU12einer anderen Komponente des Verarbeitungssystems erfordert, wie noch genauer zu erläutern sein wird, dass die Komponente, die den Zugriff anfordert, über eine Berechtigung dazu verfügt. Diesbezüglich wird von jeder CPU12eine Tabelle aufrechterhalten mit Einträgen für jede Komponente, die berechtigt ist, auf den Speicher der betreffenden CPU zuzugreifen, wobei dieser Zugriff üblicherweise auf ausgewählte Speicherbereiche und hinsichtlich der Zugriffsart beschränkt ist. Ein solches Berechtigungserfordernis verhindert die Korruption von Speicherdaten einer CPU durch einen Falschzugriff.) Die Topologie des in1Bgezeigten Verarbeitungssystems wird dadurch erreicht, dass der Port 1 der Router14A,14Bund die zusätzlichen TNet-Links LA zum Verbindungsaufbau mit den Routern14A',14B'der Subprozessorsysteme10A',10B'verwendet werden. Die dadurch erzielte Topologie gewährleistet redundante Übertragungswege zwischen jeder beliebigen CPU12(12A,12B,12A',12B') und jeder E/A-Paket-Schnittstelle 16 des in1Bgezeigten Verarbeitungssystems10. So kann zum Beispiel der Zugriff seitens der CPU 12A# des Subprozessorsystems10A'auf die E/A16Aeines Subprozessorsystems10Aüber einen ersten Pfad erfolgen, welcher durch den Routen14A'(ein Port 4, aus Port 3), den Routen14A(ein Port 3, aus Port 0) und durch diesen zugeordnete Verbindungs-TNet-Links L gebildet wird. Fällt jedoch der Routen14A'aus, so kann der zugriff der CPU12A'auf die E/A 16A über den Pfad erfolgen, welcher durch den Routen14B'(ein Port 5, aus Port 3), den Routen14B(ein Port 3, aus Port 1), das Link LA und den Routen14A(ein Port 1, aus Port 0) erfolgen.Due to the design of the router14and by the method used to route message packets, the router can be used with care14the configuration of the topology of the system10accordingly, so that each CPU12of the processing system10out1Ccan access any other "end unit" (e.g., a CPU or I / O device) of any of the other subprocessor systems. There are two paths from each CPU12to the last router14available which is the connection to the I / O packet interface16manufactures. For example, the access of the CPU12Bof the subprocessor system10B 'on the I / O16"'of the subprocessor system10A "'via the router14B(of the subprocessor system10B '), the router14D, and the router14B(of the subsystem10A "') and, on the way over the Link LA, over the router14A(subsystem10A "'), OR via the router14A(of the subsystem10A '), the router14Cand the router14A(sub-processor10A'"). In a similar way, the CPU12Aof the subprocessor system10A "(via two paths) read or write access to memory locations which are in the CPU12Bof the subprocessor are included. (The memory access from a CPU12another component of the processing system, as will be explained in more detail, requires that the component requesting access be authorized to do so. In this regard, every CPU12maintain a table with entries for each component that is authorized to access the memory of the relevant CPU, this access usually being restricted to selected memory areas and with regard to the type of access. Such an authorization requirement prevents the corruption of memory data of a CPU due to incorrect access.) The topology of the1Bprocessing system shown is achieved in that the port 1 of the router14A.14Band the additional TNet links LA to establish a connection with the routers14A '.14B 'of subprocessor systems10A '.10B 'be used. The topology achieved in this way ensures redundant transmission paths between any CPU12(12A.12B.12A '.12B ') and each I / O packet interface 16 of the in1Bprocessing system shown10, For example, access from the CPU 12A # of the subprocessor system10A 'on the I / O16Aof a subprocessor system10Avia a first path, which is through the routes14A '(a port 4, from port 3), the routes14A(a port 3, from port 0) and by this connection TNet links L is formed. However, the routes falls14A 'off, the access of the CPU12A 'on the I / O 16A via the path that goes through the routes14B '(a port 5, from port 3), the routes14B(a port 3, from port 1), the link LA and the routes14A(a port 1, from port 0).

    Es sei darauf hingewiesen, dass die Topologie aus1Bebenfalls redundante Übertragungswege zwischen jedem beliebigen Paar von CPUs12des Systems10gewährleistet und somit eine Einrichtung zur fehlertoleranten Kommunikation zwischen CPUs bereitstellt.It should be noted that the topology1Balso redundant transmission paths between any pair of CPUs12of the system10guaranteed and thus provides a facility for fault-tolerant communication between CPUs.

    1Cveranschaulicht eine Erweiterung der in1Bgezeigten Topologie. Durch das Zusammenschalten eines Ports eines jeden Routers14eines jeden Subprozessorpaars und durch das Verwenden zusätzlicher TNet-Links LA (in1Cdurch gestrichelte Verbindungslinien dargestellt) zwischen den Ports 1 der Router14(14A" und14B") der Subprozessorsysteme10A",10B"und10A'",10B'"ergeben sich zwei getrennte, unabhängige Datenpfade zwischen jeder CPU12und jeder E/A-Paket-Schnittstelle16. Auf diese Weise bestehen von jeder Endeinheit (z. B. einer CPU12oder einer E/A-Paket-Schnittstelle16) mindestens zwei Übertragungswege zu jeder anderen Endeinheit.1Cillustrates an extension of the in1Bshown topology. By interconnecting one port of each router14of each pair of subprocessors and by using additional TNet links LA (in1Crepresented by dashed connecting lines) between ports 1 of the router14(14A "and14B ") of the subprocessor systems10A ".10B "and10A'"10B ''there are two ge separate, independent data paths between each CPU12and any I / O packet interface16, In this way, each end unit (e.g. a CPU12or an I / O packet interface16) at least two transmission paths to each other end unit.

    Die Bereitstellung alternativer Zugriffspfade zwischen zwei beliebigen Endeinheiten (z. B. zwischen einer CPU12und jeder beliebigen anderen CPU12, oder zwischen jeder beliebigen CPU12und jeder beliebigen E/A-Paket-Schnittstelle16innerhalb des Systems10–1C) stellt ein wichtiges Konzept dar. Der Ausfall eines Fehlerbereichs führt nicht zur Unterbrechung der Übertragungswege zwischen zwei beliebigen anderen der verbleibenden Fehlerbereiche. Ein Fehlerbereich könnte hier ein Subprozessorsystem (z. B.10A) sein. Angenommen das Subprozessorsystem10Awürde aufgrund eines Defekts in der elektrischen Stromversorgung ausfallen, so hätte ohne das zwischen den Routern19A"' und14B"'angebrachte, zusätzliche TNet-Link LA die CPU12Bdes Subprozessorsystems10Bden Zugriff auf die E/A-Paket-Schnittstelle16(über den Router14A, den Router14C, den Router14A"' zu der E/A-Paket-Schnittstelle16"') verloren. Dank der zusätzlichen Verbindung LA zwischen den Routern14A"' und 14B"' ist selbst bei Verlust des Routers14A(und des Routers14C), der durch den Verlust des Subprozessorsystems10Abedingt ist, ein Datenverkehr zwischen der CPU12Bweiterhin möglich, und zwar auf dem Weg über den Router14B, den Router14D, den Router14B"', die zusätzliche Verbindung LA zu dem Router14A"', und schliesslich zu der E/A-Paket-Schnittstelle16"'.The provision of alternative access paths between any two end units (e.g. between a CPU12and any other CPU12, or between any CPU12and any I / O packet interface16within the system10-1C) is an important concept. The failure of an error area does not lead to the interruption of the transmission paths between any two of the remaining error areas. A sub-processor system (e.g.10A) his. Suppose the subprocessor system10Awould fail due to a defect in the electrical power supply, would have happened without that between the routers19A "' and14B ''attached, additional TNet-Link LA the CPU12Bof the subprocessor system10Baccess to the I / O packet interface16(via the router14A, the router14C, the router14A "'to the I / O packet interface16"') lost. Thanks to the additional connection LA between the routers14A "'and 14B "' is even if the router is lost14A(and the router14C) caused by the loss of the subprocessor system10Ais a data traffic between the CPU12Bstill possible, on the way via the router14B, the router14D, the router14B "', the additional connection LA to the router14A "', and finally to the I / O packet interface16"'.

    CPU-Architektur:CPU architecture:

    Unter Bezugnahme auf2wird im folgenden die CPU12Aim Detail veranschaulicht. Da die beiden CPUs12Aund12Bin Aufbau und Funktion im wesentlichen identisch sind, werden hier nur die Details der CPU12Abeschrieben. Es versteht sich jedoch, dass, sofern keine anderslautenden Angaben gemacht werden, die Abhandlung der CPU12Aauch auf die CPU12Banwendbar ist. Wie2zeigt, beinhaltet die CPU12Aein Paar von Prozessoreinheiten20a,20b, welche insofern für einen synchronen, im Gleichschritt laufenden Betrieb konfiguriert sind, als beide Prozessoreinheiten20a,20bim wesentlichen zum selben Zeitpunkt identische Befehle empfangen und ausführen und identische Daten- und Befehlsausgaben vornehmen. Jede der Prozessoreinheiten20aund20bist über einen Bus21(21a,21b) mit einem entsprechenden Cachespeicher22verbunden. Der verwendete spezielle Typ der Prozessoreinheit könnte auch über ausreichend internen Cachespeicher verfügen, so dass der Cachespeicher22nicht benötigt würde. Alternativ dazu könnte der Cachespeicher22verwendet werden, um den allfällig vorhandenen, internen Cachespeicher der Prozessoreinheiten20zu ergänzen. Wie dem auch sei, wenn der Cachespeicher22verwendet wird, so ist der Bus21so aufgebaut, dass er X28 Bits Daten, 16 Bits Fehlerkorrekturcode(FKC)-Prüfbits zum Schutz der Daten, 25 Identifizierungsbits (für die Daten und den entsprechenden FKC), 3 die Identifizierungsbits abdeckenden Prüfbits, 22 Adressbits, 3 die Adresse abdeckende Paritätsbits und 7 Steuerbits.With reference to2in the following the CPU12Aillustrated in detail. Because the two CPUs12Aand12Bare essentially identical in structure and function, only the details of the CPU12Adescribed. However, it goes without saying that, unless otherwise stated, the handling of the CPU12Aalso on the CPU12Bis applicable. How2shows, contains the CPU12Aa pair of processor units20a.20b, which are configured for synchronous operation running in step, in that both processor units20a.20bReceive and execute identical commands at substantially the same time and perform identical data and command outputs. Each of the processor units20aand20bis about a bus21(21a.21b) with an appropriate cache memory22connected. The special type of processor unit used could also have sufficient internal cache memory so that the cache memory22would not be needed. Alternatively, the cache could22be used to the existing internal cache memory of the processor units20to complete. Anyway, if the cache22is used, so is the bus21constructed such that it contains X28 bits of data, 16 bits of error correction code (FKC) check bits for protecting the data, 25 identification bits (for the data and the corresponding FKC), 3 check bits covering the identification bits, 22 address bits, 3 parity bits covering the address, and 7 control bits.

    Die Prozessoren20a,20bsind auch jeweils über einen getrennten 64-Bit Adress-/Datenbus 23 an die X- und Y-Schnittstelleneinheiten24a,24bangeschlossen. Falls gewünscht, könnten die über jeden Bus23a,23bübertragenen Adressen/Daten ebenfalls durch Paritätsbits geschützt werden, dies erhöht jedoch die Busbreite. (Vorzugsweise beinhalten die Prozessoren20ihrem Aufbau nach Mikroprozessoren vom Typ RISC R4000 wie sie von der MIPS Abteilung der in Santa Clara in Kalifornien ansässigen Gesellschaft Silicon Graphics, Inc. vertrieben werden.) Die X- und Y-Schnittstelleneinheiten24a,24bwerden betrieben, um Daten- und Steuersignale zwischen den Prozessoreinheiten20a,20bund einem Speichersystem der CPU12A, welches eine Speichersteuerung (SpSt)26(zusammengesetzt aus zwei SpSt-Hälften26aund26b) und eine dynamische Schreib-Lese-Speicherplatzanordnung28umfasst, zu übertragen. Die Schnittstelleneinheiten24stehen untereinander und mit den Speichersteuerungen26a,26büber einen 72-Bit Adress-/Steuerbus25in Verbindung. Wie noch genauer zu erläutern sein wird, werden von den Schnittstelleneinheiten24zwar 64-Bit-Daten-Doppelwörter (begleitet von 8 Bit Fehlerkorrekturcode) in den Speicher28geschrieben, eine Schnittstelleneinheit24steuert jedoch nur ein Wort (z. B. den Abschnitt der 32 wichtigsten Bits) des zu schreibenden Doppelworts, während die andere Schnittstelleneinheit24das andere Wort des Doppelworts (z. B. den am wenigsten bedeutenden 32-Bit-Abschnitt des Doppelworts) in den Speicher schreibt. Darüber hinaus führen die Schnittstelleneinheiten24a,24bzum Zweck der Fehlerkontrolle bei jeder Speicherbeschreibung eine Gegenkontrolle jener Daten, die nicht von der einen Schnittstelleneinheit24geschrieben worden sind mit jenen, die von der anderen geschrieben worden sind, durch; bei Leseoperationen werden die über den Bus25geleiteten Adressen in derselben Weise gegengeprüft. Der spezielle Fehlerkorrekturcode, welcher zum Schutz sowohl der in den Cachespeicher22geschriebenen Daten als auch des (Haupt)Speichers28verwendet wird, ist herkömmlicher Natur und ermöglicht Einzelbitfehlerkorrektur und Doppelbitfehlererkennung.The processors20a.20bare also each via a separate 64-bit address / data bus 23 to the X and Y interface units24a.24bconnected. If desired, they could be on any bus23a.23btransmitted addresses / data are also protected by parity bits, but this increases the bus width. (Preferably the processors include20Microprocessors of the type RISC R4000 as they are sold by the MIPS department of the Santa Clara, California-based company Silicon Graphics, Inc.) The X and Y interface units24a.24bare operated to provide data and control signals between the processor units20a.20band a memory system of the CPU12A, which a memory controller (SpSt)26(composed of two SpSt halves26aand26b) and a dynamic random access memory arrangement28includes to transmit. The interface units24stand with each other and with the storage controls26a.26bvia a 72-bit address / control bus25in connection. As will be explained in more detail, the interface units2464-bit data double words (accompanied by 8-bit error correction code) into the memory28written, an interface unit24however, controls only one word (e.g. the section of the 32 most important bits) of the double word to be written, while the other interface unit24writes the other word of the double word (e.g., the least significant 32-bit portion of the double word) into memory. In addition, the interface units run24a.24bfor the purpose of error checking for each memory description, a counter check of the data that is not from the one interface unit24have been written with by those written by the other; read operations are carried out via the bus25forwarded addresses in the same way. The special error correction code which is used to protect both the cached memory22written data as well as the (main) memory28is conventional in nature and enables single bit error correction and double bit error detection.

    Konzeptuell enthält jedes Doppelwort ein "ungerades" und ein "gerades" Wort. Eine der Speichersteuerungen26schreibt die ungeraden Wörter in den Speicher, während die andere die geraden Wörter schreibt. Darüber hinaus schreiben die Speichersteuerungen26zwei Doppelwörter gleichzeitig, zusammen mit dem 8-Bit-Fehlerkorrekturcode (FKC) für dieses Doppelwort. Ausserdem sind die FKC-Prüfbits entsprechend ausgebildet so dass sie nicht nur das Doppelwort abdecken, sondern auch die Adresse des Speicherorts, an welchem das Doppelwort geschrieben wird. Anlässlich eines späteren Zugriffs wird der FCK dazu verwendet, um Einzelbitfehler zu korrigieren und Doppelbitfehler zu erkennen, welche in den Daten aufgetreten sein können, wobei gleichzeitig auch sichergestellt wird, dass das Datenwort, auf das zugegriffen wird, der Adresse des Ortes entspricht, von welchem das Doppelwort gespeichert wurde.Conceptually, each double word contains an "odd" and an "even" word. One of the memory controllers26writes the odd words into memory while the other writes the even words. In addition, the memory controllers write26two double words at the same time, together with the 8-bit error correction code (FKC) for this double word. In addition, the FKC check bits are off accordingly formed so that they not only cover the double word, but also the address of the storage location where the double word is written. On the occasion of a later access, the FCK is used to correct single-bit errors and to detect double-bit errors that may have occurred in the data, while at the same time ensuring that the data word being accessed corresponds to the address of the location from which the double word has been saved.

    Die Schnittstelleneinheiten24a,24bder CPU12Abilden den Schaltungsaufbau um jeweils die X- und Y-(I/O)-Ports der CPU12Azu bearbeiten. So steht etwa die X-Schnittstelleneinheit24aüber das bidirektionale TNet-Link Lx mit einem Port des Routers14Ades Prozessorsystems10A(1A) in Verbindung, während das Y-Schnittstellenelement24bin ähnlicher Weise über das TNet-Link Ly mit dem Router14Bdes Prozessorsystems10Bin Verbindung steht. Die X-Schnittstelleneinheit24ahandhabt den gesamten E/A-Datenverkehr zwischen dem Router14Aund der CPU12Ades Subprozessorsystems10A. In gleicher Weise ist die Y-Schnittstelleneinheit24bfür den gesamten E/A-Datenverkehr zwischen der CPU12Aund dem Router14Bdes dazugehörigen Subprozessorsystems10Bverantwortlich.The interface units24a.24bthe CPU12Aform the circuit structure around the X and Y (I / O) ports of the CPU12Ato edit. For example, the X interface unit is located24avia the bidirectional TNet-Link Lx with one port of the router14Aof the processor system10A(1A) while the Y interface element24bin a similar way via the TNet-Link Ly with the router14Bof the processor system10Bcommunicates. The X interface unit24ahandles all I / O traffic between the router14Aand the CPU12Aof the subprocessor system10A, The Y interface unit is in the same way24bfor all I / O traffic between the CPU12Aand the router14Bof the associated subprocessor system10Bresponsible.

    Das TNet-Link Lx, welches die X-Schnittstelleneinheit24amit dem Router14A(1) verbindet, umfasst, wie weiter oben erwähnt, zwei 10-Bit-Busse30x,32y, von denen ein jeder ein Taktsignal und 9 Datenbits überträgt. Der Bus30xbefördert Übertragungsdaten an den Router14A; der Bus32xbefördert von dem Router14Aeingehende Daten. In ähnlicher Weise ist die Y-Schnittstelleneinheit24bmit dem Router14B(des Subprozessorsystems10B) mittels zweier 10-Bit-Busse verbunden:30y(für abgehende Übertragungen) und32y(für eingehende Übertragungen), welche zusammen das TNet-Link Ly bilden.The TNet-Link Lx, which is the X interface unit24awith the router14A(1) connects, as mentioned above, comprises two 10-bit buses30 x.32 y, each of which transmits a clock signal and 9 data bits. The bus30 xconveys transmission data to the router14A; the bus32 xconveyed by the router14Aincoming data. The Y interface unit is similar24bwith the router14B(of the subprocessor system10B) connected by means of two 10-bit buses:30y(for outgoing transmissions) and32y(for incoming transmissions), which together form the TNet-Link Ly.

    Die X- und Y-Schnittstelleneinheiten24a,24bwerden synchron im Gleichschritt betrieben und führen im wesentlichen zur selben Zeit im wesentlichen dieselben Operationen aus. Somit werden, obwohl nur die X-Schnittstelleneinheit24atatsächlich Daten auf den Bus30x überträgt, dieselben Ausgabedaten auch von der Y-Schnittstelleneinheit24berzeugt und zur Fehlerprüfung verwendet. Die Ausgabedaten der Y-Schnittstelleneinheit24bwerden über ein Quervernetzungs-Link34yan die X-Schnittstelleneinheit24aangelegt, wo sie von der X-Schnittstelleneinheit24aempfangen werden und im Zuge einer Gegenprüfung mit denselben, von der X-Schnittstelleneinheit erzeugten Ausgabedaten verglichen werden. Auf diese Weise werden die abgehenden Daten am X-Port der CPU12Abereitgestellt und auf Fehler geprüft.The X and Y interface units24a.24bare operated synchronously in step and perform essentially the same operations at substantially the same time. Thus, although only the X interface unit24aactually data on the bus30x transmits the same output data from the Y interface unit24bgenerated and used for error checking. The output data of the Y interface unit24bare via a cross-link34yto the X interface unit24acreated where it from the X interface unit24aare received and compared in the course of a cross-check with the same output data generated by the X interface unit. In this way, the outgoing data on the X-port of the CPU12Aprovided and checked for errors.

    In derselben Weise werden die von dem Port der CPU12Aübertragenen Ausgangsdaten geprüft. Die Ausgabedaten von der Y-Schnittstelleneinheit24bwerden über einen 10-Bit-Bus30yan den Y-Port und weiterhin über ein 9-Bit- Querverbindungs-Link34yan die X-Schnittstelleneinheit24aangelegt, wo sie im Zuge einer Gegenprüfung mit den von der X-Schnittstelleneinheit erzeugten Ausgabedaten verglichen werden.In the same way, that of the port of the CPU12Atransferred output data checked. The output data from the Y interface unit24bare on a 10 bit bus30yto the Y port and still via a 9-bit cross-connection link34yto the X interface unit24awhere they are compared in the course of a cross-check with the output data generated by the X interface unit.

    Wie erwähnt, befinden sich die beiden Schnittstelleneinheiten24a,24bin synchronem, im Gleichschritt laufenden Betrieb zueinander, wobei eine jede im wesentlichen zur selben Zeit im wesentlichen dieselben Operationen ausführen. Aus diesem Grund müssen Daten, welche an dem X- und/oder Y-Ports der CPU12Aempfangen werden, von beiden Schnittstelleneinheiten24a,24bempfangen werden, damit die beiden Schnittstelleneinheiten ihren im Gleichschritt laufenden Betrieb beibehalten. Daten, welche von einer Schnittstelleneinheit24a,24bempfangen werden, werden somit an die andere weitergeleitet, wie durch die gestrichelten Linien und die 9-Bit-Quervernetzungen 36x angedeutet (die eingehende Daten, welche an dem X-Port durch die X-Schnittstelleneinheit24aempfangen werden, an die Y-Schnittstelleneinheit24bübertragen) und 36y, (die Daten, welche an dem Y-Port durch die Schnittstelleneinheit24bempfangen werden, an die X-Schnittstelleneinheit24aübertragen.As mentioned, the two interface units are located24a.24bin synchronous, synchronous operation with each other, each performing essentially the same operations at substantially the same time. For this reason, data that is on the X and / or Y ports of the CPU12Aare received by both interface units24a.24bare received so that the two interface units maintain their operation in synchronism. Data from an interface unit24a.24bare thus forwarded to the other, as indicated by the dashed lines and the 9-bit cross-links 36 x (the incoming data which is at the X-port by the X-interface unit24aare received to the Y interface unit24btransmitted) and 36 y , (the data sent to the Y port by the interface unit24bare received to the X interface unit24atransfer.

    Bestimmte robustere Betriebssysteme sind mit einer fehlertoleranten sind mit einer fehlertoleranten Fähigkeit im Zusammenhang mit einem Multiprozessorsystem ausgestattet. Multiprozessorsysteme dieser Art stellen insofern eine fehlertolerante Umgebung bereit, als sie der Software die Möglichkeit geben, von der Hardware oder der Software entdeckte Fehler zu korrigieren. In dem U.S.-Patent Nr. 4.817.091 wird zum Beispiel ein Multiprozessorsystem abgehandelt, bei welchem jeder Prozessor in regelmässigen Abständen jeden Prozessor des Systems (einschliesslich seiner selbst) softwaregesteuert eine Nachricht sendet, um anzuzeigen, dass er nach wie vor in Betrieb ist. Jeder der Prozessoren wird neben seinen normalen Rufgaben auch als Datensicherungs-Prozessor für einen anderen der Prozessoren eingesetzt. Gesetzt den Fall, dass ein Datensicherungs-Prozessor von dem ihm zugeordneten Prozessor keine Anzeigenachricht empfängt, übernimmt er die Rechentätigkeit dieses ihm zugeordneten Prozessors (von dem angenommen wird, dass er ausgefallen ist), neben der Durchführung seiner eigenen Aufgaben mit. Andere fehlertolerante Techniken, welche weniger robuste Software bzw. Betriebssysteme verwenden (d. h. ohne eigene Fähigkeit, erkannte Fehler zu korrigieren) werden mit Hardware und mit einer Logik entworfen, die betreiben werden, um erkannte Fehler zu korrigieren.Certain more robust operating systems are with a fault tolerant are with a fault tolerant ability in connection with a multiprocessor system. Multiprocessor systems of this kind provide a fault-tolerant environment when they gave the software the opportunity to correct errors discovered by the hardware or software. In the U.S. patent No. 4.817.091, for example, a multiprocessor system is dealt with, in which each processor at regular intervals each processor of the system (including himself) software controlled a message sends to indicate that it is still operating. Everyone In addition to its normal calls, the processor is also used as a data backup processor for one other of the processors used. Assuming that a backup processor it receives no display message from the processor assigned to it computing this processor assigned to it (which is assumed that he has failed), in addition to performing his own duties With. Other fault tolerant techniques, which are less robust software or use operating systems (i.e. without their own ability to detected errors are corrected) with hardware and with a Logic designed to operate to correct detected errors.

    Die vorliegende Erfindung zielt darauf ab, eine Hardwareplattform für beide Softwaretypen bereitzustellen. Ist also ein robustes Betriebssystem verfügbar, so kann das Verarbeitungssystem10entsprechend konfiguriert werden, um in einem "Simplex"-Betrieb zu arbeiten, in welchem jede der CPUs12Aund12Bin unabhängiger Weise voneinander betrieben wird. Die CPUs12sind mit Schaltungsanordnungen zur Fehlerprüfung an strategischen Punkten innerhalb verschiedener CPU-interner Übertragungswege ausgeführt. Die Router14stellen eine Kommunikation zwischen Prozessoren her und ermöglichen den Datenaustausch zwischen den verschiedenen CPUs12, die innerhalb des Systems10miteinander verbunden sein können, und schaffen weiterhin einen Kommunikationsweg von jeder CPU des Systems zu jedem Gerät, das über die E/A-Paket-Schnittstelle16angesteuert werden kann. Wird ein Fehler erkannt, so wird die Verantwortung für die Korrektur dieses Fehlers in den meisten Fällen der Software überlassen.The present invention aims to provide a hardware platform for both types of software. If a robust operating system is available, the processing system can10be configured accordingly to operate in a "simplex" mode in which each of the CPUs12Aand12Bis operated independently of one another. The CPUs12are implemented with circuit arrangements for error checking at strategic points within various CPU-internal transmission paths. The router14establish communication between processors and enable data exchange between the various CPUs12that are within the system10can be connected to each other, and continue to create a communication path from each CPU of the system to any device through the I / O packet interface16can be controlled. If an error is detected, the responsibility for correcting this error is in most cases left to the software.

    Alternativ dazu bietet das Verarbeitungssystem10für weniger robuste Betriebssysteme und Software eine hardwarebasierte Fehlertoleranz, indem es entsprechend konfiguriert wird, um in einem "Duplex"-Betriebsmodus zu arbeiten, in welchem ein Paar von CPUs (z. B. die CPUs12A,12B) wie in1Agezeigt, zusammengeschaltet werden, um in synchron, im Gleichschritt laufender Weise betrieben zu werden, sodass sie dieselben Befehle im wesentlichen zum selben Zeitpunkt ausführen. Dadurch wird jede CPU als Kontrolleinrichtung für die andere. Gesetzt den Fall, dass eine der CPUs12einen Fehler entwickelt, so kann sie gemäss ihrer "Schnellfehl"-Eigenschaft schnell versagen und heruntergefahren werden, noch bevor sich der Fehler ausbreiten und den Rest des Systems korrumpieren kann. Die andere CPU12setzt ihren Betrieb fort und übernimmt dabei die Aufgabe(n) von beiden. Der Duplex-Betriebsmodus erlaubt es somit dem Hardwaresystem, die Auswirkung des Fehlers zu verdecken.Alternatively, the processing system offers10hardware-based fault tolerance for less robust operating systems and software by being configured to operate in a "duplex" mode of operation in which a pair of CPUs (e.g., the CPUs12A.12B) as in1Ashown to be operated together in order to operate in synchronism, in step, so that they execute the same commands at substantially the same time. This makes each CPU a control device for the other. Assume that one of the CPUs12If an error develops, it can fail and shut down quickly according to its "quick fail" property, before the error can spread and corrupt the rest of the system. The other CPU12continues its operation and takes over the task (s) of both. The duplex operating mode thus allows the hardware system to hide the effects of the error.

    Daten- und Steuersymbole werden zwischen den verschiedenen CPUs12und den E/A-Paket-Schnittstellen16in Form von Nachrichtenpaketen ausgetauscht, welche 9 Bit Daten- und Steuersymbole umfassen. Um den Entwurfe der CPU12zu vereinfachen, werden die Prozessoren20daran gehindert, direkt mit einer externen Einheit (z. B. einer anderen CPU12oder einem E/A-Gerät über die E/A-Paket-Schnittstelle16) zu kommunizieren. Vielmehr erstellt der Prozessor, wie noch genauer zu erläuten sein wird, eine Datenstruktur im Speicher und übergibt die Steuerung hierauf an die Schnittstelleneinheiten24. Jede Schnittstelleneinheit24beinhaltet eine Blockübertragungsmaschine (BÜM;5), die entsprechend konfiguriert ist, um eine Art von direkter Speicherzugriffsfähigkeit (DMA) bereitzustellen, welche es erlaubt, auf die Datenstruktur en) aus dem Speicher zuzugreifen und sie über den geeigneten X- bzw. Y-Port zum Datenaustausch mit dem Ziel gemäss einer in dem Datenpaket enthaltenen Information zu übertragen.Data and control symbols are between the different CPUs12and the I / O packet interfaces16exchanged in the form of message packets, which comprise 9 bit data and control symbols. To the designs of the CPU12to simplify the processors20prevented from directly connecting to an external unit (e.g. another CPU12or an I / O device via the I / O packet interface16) to communicate. Rather, as will be explained in more detail below, the processor creates a data structure in the memory and then transfers the control to the interface units24, Every interface unit24includes a block transfer machine (BÜM;5), which is configured accordingly to provide a type of direct memory access capability (DMA), which allows the data structures to be accessed from the memory and used via the suitable X or Y port for data exchange with the target according to one to transmit information contained in the data packet.

    Der Entwurf des Verarbeitungssystems10ermöglicht es, dass ein Speicher28einer CPU von externen Quellen aus (z. B, der CPU12Boder einem E/A-Gerät) gelesen bzw. beschrieben werden kann. Aus diesem Grund muss darauf geachtet werden, sicherzustellen, dass eine von aussen erfolgende Benutzung eines Speichers28einer CPU12nur in Verbindung mit einer entsprechenden Berechtigung erfolgt. Der Zugriff auf den Speicher28ist daher durch einen Zugriffsvalidierungsmechanismus geschützt, welcher einen Zugriff erlaubt oder verhindert, und zwar nach Prüfung verschiedener Faktoren, wie etwa woher die Zugriffsanforderung kam, welche Art von Zugriff angefordert wurde, der Ort des angeforderten Zugriffs und dergleichen. Die Zugriffsvalidierung wird über eine Zugriffsvalidierungstabellen(ZVÜ)-Logik realisiert, welche weiter unten im Zuge der Abhandlung der11–13beschrieben wird.The design of the processing system10allows a memory28a CPU from external sources (e.g., the CPU12Bor an I / O device) can be read or written. For this reason, care must be taken to ensure that an external use of a memory28a CPU12only in connection with an appropriate authorization. Access to the memory28is therefore protected by an access validation mechanism that allows or prevents access after considering various factors such as where the access request came from, what type of access was requested, the location of the access requested, and the like. The access validation is implemented using an access validation table (ZVÜ) logic, which is described below in the course of the discussion of the11-13is described.

    Verschiedene Aspekte der Erfindung benutzen die Konfiguration der Daten- und Steuerpakete, die über die Router14zwischen den E/A-Paket-Schnittstellen16und den CPUs12übertragen werden. Demgemäss ist es von Vorteil, bevor mit der Beschreibung des Aufbaus des Verarbeitungssystems10fortgefahren wird, als erstes die Konfiguration der Daten- und Steuersymbole und -pakete zu verstehen, die auf den TNet-Links L übertragen und durch die Router14gelenkt werden.Various aspects of the invention use the configuration of the data and control packets sent through the router14between the I / O packet interfaces16and the CPUs12be transmitted. Accordingly, it is advantageous before starting with the description of the processing system structure10will continue to first understand the configuration of the data and control symbols and packets transmitted on the TNet links L and through the routers14be directed.

    Paketkonfigurationen:Package configurations:

    Vier Grundtypen von Nachrichtenpaketen werden verwendet, um Steuersymbole und Daten zwischen den CPUs12und Peripheriegeräten17eines Systems auszutauschen. Die3A–3Dveranschaulichen den Aufbau eines Nachrichtenpaket-Typs (3A), zusammen mit einer Aufgliederung der Felder dieses Pakets (3B–3D); die4A–4Cveranschaulichen den Aufbau der anderen drei Pakettypen. Der Nachrichtenpaket-Typ, der verwendet wird, um Schreibdaten auf das TNet-Bereichsnetzwerk zu übertragen wird als HADC-Paket bezeichnet und ist in3Averanschaulicht. Wie dargestellt, hat das HADC-Paket vier Felder: ein 8-Byte-Headerfeld, ein 4-Byte-Datenadressfeld, ein N-Byte-Datenfeld (wobei N vorzugsweise auf ein Maximum von 64 beschränkt ist, obwohl klar ist, dass auch grössere Datenmengen in einem einzelnen Paket bewegt werden können), und ein 4-Byte-'Zyklische Redundanzprüfung'-Feld (CRC-Feld).Four basic types of message packets are used to carry control symbols and data between the CPUs12and peripherals17of a system. The3A-3Dillustrate the structure of a message packet type (3A), along with a breakdown of the fields in this package (3B-3D); the4A-4Cillustrate the structure of the other three types of packages. The type of message packet used to transfer write data to the TNet area network is called the HADC packet and is in3Aillustrated. As shown, the HADC packet has four fields: an 8-byte header field, a 4-byte data address field, an N-byte data field (where N is preferably limited to a maximum of 64, although it is clear that larger ones as well Amounts of data can be moved in a single packet), and a 4-byte 'Cyclic Redundancy Check' field (CRC field).

    Das in3Bim Detail veranschaulichte Headerfeld beinhaltet eine 3-Byte-Bestimmungsort-ID, in welcher der Endbestimmungsort des Nachrichtenpakets angegeben wird; eine 3-Byte-Ursprungsort-ID, in welcher der Ursprungsort bzw. das Ursprungselement des Nachrichtenpakets angegeben wird; den Transaktionstyp (z. B. ein Lese- oder Schreiboperation), sowie den Nachrichtenpaket-Typ (z. B. ob es sich um eine Datenanforderung oder um eine Antwort auf eine Datenanforderung handelt). Die Bestimmungsort-ID enthält vier Unterfelder: ein 14-Bit-Unterfeld, das eine Regions-ID enthält, um eine "Region" anzugeben, in welcher sich der Bestimmungsort der Nachricht befindet; ein 6-Bit-Unterfeld, das eine Geräte-ID enthält, in welcher das im Bereich der spezifizierten Region gelegene Bestimmungs-Gerät angegeben wird (z. B. ein Gerät17, eine CPU12, oder vielleicht ein IP 18); ein Pfadauswahl(P)-Bit, das dazu verwendet wird, um aus zwei Pfaden auszuwählen; und 3 Bit, die für zukünftige Erweiterungen reserviert sind. In ähnlicher Weise hat die Ursprungsort-ID drei Unterfelder; eine 14-Bit-Regions-ID, die die Region des Senders spezifiziert; eine 6-Bit-Geräte-ID, die das sendende Gerät innerhalb dieser Region spezifiziert; ein 4-Bit-Typen-Unterfeld, das, wie bereits erwähnt, den Transaktionstyp kennzeichnet. Ausserdem spezifiziert das Steuerfeld die Datenmenge, welche in dem das Nachrichtenpaket begleitenden Datenfeld enthalten ist, und zwar durch Angabe der Anzahl an 9-Bit-Steuer/Daten-"Symbolen". (Jedes Symbol ist ein 8-Bit-Datenbyte, codiert als 9-Bit-Menge zum Schutz vor Einzelbitfehlern, die dazu führen könnten, dass ein Datenbyte wie ein Steuersymbol aussehen würde, oder umgekehrt, wie weiter unten noch genauer zu erläutern sein wird.)This in3Bheader field illustrated in detail includes a 3-byte destination ID specifying the final destination of the message packet; a 3-byte origin ID, in which the origin or element of the message packet is specified; the transaction type (e.g. a read or write operation) and the message packet type (e.g. whether it is a data request or a response to a data request). The destination ID contains four subfields: a 14-bit subfield containing a region ID to indicate a "region" in which the destination of the message is located; a 6-bit subfield that contains a device ID in which the destination device in the area of the specified region is specified (e.g. a device17, a CPU12, or maybe an IP 18); a path selection (P) bit that is used to exit from two paths choose; and 3 bits reserved for future extensions. Similarly, the Place of Origin ID has three subfields; a 14-bit region ID specifying the region of the transmitter; a 6-bit device ID that specifies the sending device within that region; a 4-bit type subfield that, as already mentioned, identifies the transaction type. In addition, the control field specifies the amount of data contained in the data field accompanying the message packet by specifying the number of 9-bit control / data "symbols". (Each symbol is an 8-bit data byte, encoded as a 9-bit amount to protect against single-bit errors that could cause a data byte to look like a control symbol, or vice versa, as will be explained in more detail below. )

    Die Regions- und Geräte-Felder der Bestimmungsortbzw. Ursprungsort-ID identifizieren den Bestimmungsort bzw. den Ursprungsort des Nachrichtenpakets kumulativ und eindeutig. Das als Pfadauswahlbit reservierte Bit dient dazu, die eine oder die andere von zwei "Seiten" X oder Y (wie in1Averanschaulicht) als den Bestimmungsort des Nachrichtenpakets enthaltend zu kennzeichnen. Das Pfadauswahlbit wird weiter unten im Zusammenhang mit der Speicherzugriffsvalidierung (11und12) und der Portauswahloperation des Routers (21A) genauer erläutert. Die verbleibenden 3 Bits werden für eine allfällige zukünftige Erweiterung reserviert.The region and device fields of the destination or Origin ID identifies the destination or the origin of the message package cumulatively and uniquely. The bit reserved as the path selection bit serves to separate one or the other of two "sides" X or Y (as in1Aillustrated) as containing the destination of the message packet. The path selection bit is discussed below in connection with memory access validation (11and12) and the router's port selection operation (21A) explained in more detail. The remaining 3 bits are reserved for any future expansion.

    Das 4-Byte-Datenadressfeld wird eingehender in3Cveranschaulicht. Das Adressfeld kennzeichnet im Fall eines HADC-Pakets den virtuellen Speicherort für den Bestimmungsort an welchem die begleitenden N Datenbytes geschrieben werden. Wenn zum Beispiel das Ursprungselement des Nachrichtenpakets ein E/A-Gerät17ist, das Daten enthält, welche in den Speicher28einer CPU12zu schreiben sind, so enthält das Datenadressfeld ein Adresse, die den Speicherort im Speicher28kennzeichnet, in welchen die Daten zu schreiben sind. (Wie noch genauer zu erläutern sein wird, wird im Fall von CPUs die Datenadresse durch die ZVÜ-Logik (11) in eine physische Adresse überführt, die tatsächlich dazu benutzt wird, um auf den Speicher28zuzugreifen. Die E/A-Paket-Schnittstellen16verfügen über ähnliche Validierungs- und Übersetzungsmechanismen.) Wenn das Adressfeld einen Speicherort einer CPU12bezeichnet, umfasst das Feld zwei Unterfelder: die 20 bedeutendsten Bits des Adressfeldes bilden eine 20-Bit-Speicherseitennummer; die verbleibenden 12 Bits bilden einen Offset in die Speicherseite. Die Seitenzahl wird von der ZVÜ-Logik (11) als ein Index zu einer Tabelle mit Einträgen verwendet, die Validierungsinformationen enthalten.The 4-byte data address field is detailed in3Cillustrated. In the case of a HADC packet, the address field identifies the virtual storage location for the destination at which the accompanying N data bytes are written. For example, if the source element of the message packet is an I / O device17that contains data that is in memory28a CPU12are to be written, the data address field contains an address that indicates the location in memory28indicates in which the data are to be written. (As will be explained in more detail, in the case of CPUs the data address is determined by the ZVÜ logic (11) transferred to a physical address that is actually used to access the memory28access. The I / O packet interfaces16have similar validation and translation mechanisms.) If the address field is a location of a CPU12, the field comprises two subfields: the 20 most significant bits of the address field form a 20-bit memory page number; the remaining 12 bits form an offset in the memory page. The page number is determined by the ZVÜ logic (11) used as an index to a table with entries that contain validation information.

    Wie bereits angedeutet, dient das HADC-Nachrichtenpaket dazu, Schreibdaten zwischen Endeinheiten (z. B. CPU12) des Verarbeitungssystems10zu übertragen. Andere Nachrichtenpakete können allerdings aufgrund ihrer Funktion und Verwendung anders aufgebaut sein. So veranschaulicht etwa4Aein HRC-Nachrichtenpaket, welches nur Header-, Adress- und CRC-Felder umfasst. Das HAC-Paket wird verwendet, um Lesedatenanforderungen an eine Systemkomponente zu übertragen (z. B. ein E/A-Gerät17).As already indicated, the HADC message packet is used to transfer write data between end units (e.g. CPU12) of the processing system10transferred to. However, other message packets can be structured differently due to their function and use. For example4Aan HRC message packet that only includes header, address and CRC fields. The HAC packet is used to transmit read data requests to a system component (e.g. an I / O device17).

    4Bveranschaulicht ein Nachrichtenpaket vom Typ HDC mit einem 8-Byte Headerfeld, einem N-Byte-Datenfeld (wobei N wiederum maximal 64 beträgt, obwohl es theoretisch für eine beliebige ganze Zahl stehen könnte), und einem 4-Byte-CRC-Feld. Das HDC-Nachrichtenpaket dient dazu, Antworten auf Leseanforderungen zu übertragen, welche die Rücksendung der angeforderten Daten beinhalten.4Billustrates an HDC message packet with an 8-byte header field, an N-byte data field (where N is a maximum of 64, although it could theoretically represent any integer), and a 4-byte CRC field. The HDC message package is used to transmit responses to read requests, which include the return of the requested data.

    4Cveranschaulicht ein HC-Nachrichtenpaket, welches lediglich einen 8-Byte-header und eine 4-Byte-CRC umfasst. Das HC-Nachrichtenpaket wird dazu verwendet, eine Anforderung zum Schreiben von Daten zu bestätigen.4Cillustrates an HC message packet that only includes an 8-byte header and a 4-byte CRC. The HC message packet is used to confirm a request to write data.

    Schnittstelleneinheit:Interface Unit:

    Die X- und Y- Schnittstelleneinheiten24(d. h. 24a und 24b –2) werden dazu betrieben, um drei Hauptfunktionen innerhalb der CPU12auszuführen: die Prozessoren20an den Speicher28anzuschliessen; einen E/A-Dienst bereitzustellen, der transparent für die Prozessoren betrieben wird, aber dennoch von diesen gesteuert wird; und von externen Quellen kommende Zugriffsanforderungen auf den Speicher28zu validieren.The X and Y interface units24(ie 24a and 24b -2) are operated to perform three main functions within the CPU12to execute: the processors20to the store28to join; provide an I / O service that is transparent to the processors but is still controlled by them; and memory access requests from external sources28to validate.

    Betrachtet man zuerst die Schnittstellenfunktion, so werden die X- und Y-Schnittstelleneinheiten24a,24bbetrieben, um jeweils die Prozessoren20a,20bmit den Speichersteuerungen (SpSt26a,26b) und dem Speicher28zum Zweck des Lesens und Schreibens von Daten in Verbindung zu setzen, und zwar in einer Art und Weise, die eine schnellfehlende Prüfung der gelesenen/geschriebenen Daten beinhaltet. So kooperieren zum Beispiel im Zuge von Schreiboperationen die beiden Schnittstelleneinheiten24a,24b, um die zu schreibenden Daten einer Gegenkontrolle zu unterziehen, um deren Integrität sicherzustellen (wobei die Schnittstelleneinheiten24gleichzeitig betrieben werden), um einen Fehlerkorrekturcode (FKC) zu entwickeln, der – wie noch genauer zu erläutern sein wird – nicht nur die in den Speicher28geschriebenen Daten abdeckt, sondern auch die Speicheradresse des Speicherorts, an welchem diese Daten geschrieben werden, so dass bei einem späteren Abrufen (Lesen) der Daten nicht nur die korrekten Daten abgerufen werden, sondern auch davon ausgegangen werden kann, dass diese von der richtigen Adresse abgerufen worden sind.Looking first at the interface function, the X and Y interface units become24a.24boperated to processors respectively20a.20bwith the memory controls (SpSt26a.26b) and the memory28to communicate for the purpose of reading and writing data in a manner that includes a fast missing check of the read / written data. For example, the two interface units cooperate in the course of write operations24a.24bto cross-check the data to be written to ensure its integrity (the interface units24be operated simultaneously) in order to develop an error correction code (FKC) which - as will be explained in more detail - not only those in the memory28covered data, but also the memory address of the storage location where this data is written, so that when the data is later called up (read), not only is the correct data called up, but it can also be assumed that it is from the correct address have been accessed.

    Was den E/A-Zugriff betrifft, so sind die Prozessoren nicht mit der Fähigkeit ausgestattet, direkt mit den Eingabe-/Ausgabesystemen zu kommunizieren; sie müssen vielmehr Datenstrukturen in den Speicher28schreiben und dann die Steuerfunktion an die Schnittstelleneinheiten24abtreten, die eine Direkt-Speicherzugriffsoperation (DMA) ausführen, um diese Datenstrukturen abzurufen und sie zum Zweck der Übermittlung an den gewünschten Bestimmungsort auf das TNet zu übertragen. (Die Adresse des Bestimmungsorts wird dabei in der Datenstruktur selbst angegeben.) Die dritte Funktion der X- und Y-Schnittstelleneinheiten24, die Validierung des Zugriffs auf den Speicher28, verwendet eine Zugriffsvalidierungsund -übersetzungstabelle (ZVÜ), welche von den Schnittstelleneinheiten aufrechterhalten werden. Die ZVÜ-Tabelle enthält eine Adresse für jede zugriffsberechtigte Systemkomponente (z. B. ein E/A-Gerät17, oder eine CPU12), sowie die erlaubte Zugriffsart und die physische Speicheradresse, an welcher ein Zugriff gestattet ist. Die Tabelle spielt weiterhin auch eine Rolle bei der Durchführung der Adressübersetzung, da es sich bei den in den eingehenden Nachrichtenpaketen enthaltenen Adressen um virtuelle Adressen handelt. Diese virtuellen Adressen werden von der Schnittstelleneinheit in physikalische Adressen übersetzt, welche von den Speichersteuerungseinheiten26zum Zweck des Zugriffs auf den Speicher28gelesen werden können.As far as I / O access is concerned, the processors are not equipped with the ability to communicate directly with the input / output systems; rather, they need data structures in memory28write and then the control function to the interface units24cede that a direct store Execute handle operation (DMA) to retrieve these data structures and transfer them to the TNet for the purpose of transmission to the desired destination. (The address of the destination is specified in the data structure itself.) The third function of the X and Y interface units24, validating access to memory28, uses an access validation and translation table (ZVÜ), which is maintained by the interface units. The ZVÜ table contains an address for each system component authorized to access (e.g. an I / O device17, or a CPU12), as well as the permitted access type and the physical memory address to which access is permitted. The table also plays a role in the implementation of the address translation, since the addresses contained in the incoming message packets are virtual addresses. These virtual addresses are translated by the interface unit into physical addresses, which by the memory control units26for the purpose of accessing the memory28can be read.

    In5, auf welche im folgenden Bezug genommen wird, ist ein vereinfachtes Blockdiagramm der X-Schnittstelleneinheit24ader CPU12Averanschaulicht. Die ihr entsprechende Y-Schnittstelleneinheit24b(sowie auch die Schnittstelleneinheiten24der CPU12B, oder jeder anderen CPU12) ist im wesentlichen identisch aufgebaut. Demgemäss versteht es sich, dass die Beschreibung der Schnittstelleneinheit24agleichermassen auch auf die anderen Schnittstelleneinheiten24des Verarbeitungssystems10anwendbar ist.In5, which is referred to below, is a simplified block diagram of the X interface unit24athe CPU12Aillustrated. The corresponding Y interface unit24b(as well as the interface units24the CPU12B, or any other CPU12) is essentially identical. Accordingly, it goes without saying that the description of the interface unit24aequally to the other interface units24of the processing system10is applicable.

    Wie in5veranschaulicht, beinhaltet die X-Schnittstelleneinheit24aeine Prozessorschnittstelle60, eine Speicherschnittstelle70, eine Interrupt-Logik86, ein Blockübertragungsmaschine (BÜM)88, eine Zugriffsvalidierungs- und -übersetzungslogik90, einen Paketüberträger94und einen Paketempfänger96.As in5illustrated includes the X interface unit24aa processor interface60, a storage interface70, an interrupt logic86, a block transfer machine (BÜM)88, access validation and translation logic90, a parcel carrier94and a parcel recipient96,

    Prozessorschnittstelle:Processor Interface:

    Die Prozessorschnittstelle60wickelt den Informationsfluss (Daten und Steuersignale) zwischen dem Prozessor20aund der X-Schnittstelleneinheit24aab. Ein Prozessorbus23, welcher einen 64-Bit-Adress- und Datenbus (SysAD)23aund einen 9-Bit-Befehlsbus23bbeinhaltet, verbindet den Prozessor20aund die Prozessorschnittstelle60miteinander. Während der SysAD-Bus23aSpeicheradresse und -daten überträgt, und zwar in herkömmlicher, zeitlich verzahnter Form, überträgt der Befehlsbus23bBefehls- und Datenbezeichnerinformationen (SysBef), welche die Befehle, die im wesentlichen gleichzeitig auf dem SysAD-Bus23aübertragen werden. Die Prozessorschnittstelle60wird betrieben, um von der Prozessoreinheit20aausgegebene Befehle zu interpretieren, um Lese-/Schreiboperationen in den Speicher oder in das Steuerregister der Prozessorschnittstelle weiterzugeben. Ausserdem enthält die Prozessorschnittstelle60einen Zwischenspeicher (nicht dargestellt) zum Puffern von Adressen und Daten, welche für den Zugriff auf den Speicher28(über die Speichersteuerungen26) erforderlich sind. Daten und Steuerinformationen, welche vom Speicher gelesen werden, werden auf ähnliche Weise auf ihrem Weg zur Prozessoreinheit20agepuffert und verfügbar gemacht, sobald die Prozessoreinheit bereit ist, sie in Empfang zu nehmen. Weiterhin wird die Prozessorschnittstelle60betrieben, um die benötigten Interrupt-Signale für die X-Schnittstelleneinheit24azu generieren.The processor interface60handles the flow of information (data and control signals) between the processor20aand the X interface unit24afrom. A processor bus23which has a 64-bit address and data bus (SysAD)23aand a 9-bit command bus23bincludes, connects the processor20aand the processor interface60together. During the SysAD bus23aThe command bus transmits memory address and data, namely in conventional, time-interlocking form23bCommand and data identifier information (SysBef), which is the commands that are essentially concurrent on the SysAD bus23abe transmitted. The processor interface60is operated by the processor unit20ainterpret issued commands to pass read / write operations to memory or the control register of the processor interface. It also contains the processor interface60a buffer (not shown) for buffering addresses and data necessary for access to the memory28(via the memory controls26) required are. Data and control information read from memory are similarly sent on their way to the processor unit20abuffered and made available as soon as the processor unit is ready to receive it. Furthermore, the processor interface60operated to the required interrupt signals for the X interface unit24ato generate.

    Die Prozessorschnittstelle60ist über einen bidirektionalen 64-Bit-Prozessoradress/-datenbus76mit einer Speicherschnittstelle70und mit den Konfigurationsregistern74verbunden. Die Konfigurationsregister74sind eine symbolische Repräsentation der verschiedenen Steuerregister, die in anderen Komponenten der X-Schnittstelleneinheit24aenthalten sind, und werden im Zusammenhang mit der Abhandlung dieser speziellen Komponenten genauer erläutern. Bedingt durch die Tatsache, dass verschiedene der Konfigurationsregister74über andere Elemente der zur Realisierung der X-Schnittstelle24averwendeten Logik verteilt sind, ist der Prozessor-Adress/-Datenbus76auch entsprechend verkoppelt, um ein Lesen von diesen Registern bzw. ein Beschreiben derselben zu ermöglichen, wobei dies allerdings in5nicht spezifisch veranschaulicht wird.The processor interface60is via a bi-directional 64-bit processor address / data bus76with a storage interface70and with the configuration registers74connected. The configuration registers74are a symbolic representation of the various control registers that are in other components of the X interface unit24aare included, and will explain in more detail in connection with the treatment of these special components. Due to the fact that different of the configuration registers74about other elements of the implementation of the X interface24alogic used is the processor address / data bus76also coupled accordingly in order to enable reading from or writing to these registers, although this is shown in5is not specifically illustrated.

    Die Konfigurationsregister74ermöglichen einen Lese-/Schreibzugriff seitens des Prozessors20a; sie ermöglichen eine "Personalisierung" der X-Schnittstelleneinheit. So bezeichnet zum Beispiel ein Register die Knotenadresse der CPU12A, welche verwendet wird, um die Ursprungsort-Adresse von Nachrichtenpaketen zu bilden, die von der CPU12Aausgehen; ein anderes, das nur mit Lesezugriff ausgestattet ist, enthält eine feste Identifikationsnummer der Schnittstelleneinheit24, und wiederum andere Register definieren Speicherbereiche, welche beispielsweise von verschiedenen Elementen verwendet werden können wie etwa von der BÜM88(an denen sich Datenstrukturen und BÜM-Befehls-/Steuerwörter befinden), von der Interrupt-Logik86(welche auf Interrupt-Warteschlangen verweisen, die Informationen über extern generierte und über Nachrichtenpakete empfangene Interrupts enthalten) oder von der ZVÜ-Logik90. Wieder andere Register werden zum Freigeben von Interrupts durch die Interrupt-Logik86verwendet. Viele der Register werden weiter unten im Zusammenhang mit der Abhandlung der logischen Komponenten (z. B. Interrupt-Logik86, ZVÜ-Logik90, usw.), in denen sie Verwendung finden, genauer beschrieben.The configuration registers74allow read / write access by the processor20a; they enable "personalization" of the X interface unit. For example, a register designates the node address of the CPU12A, which is used to form the origin address of message packets that are used by the CPU12Ago out; another, which is only equipped with read access, contains a fixed identification number of the interface unit24, and still other registers define memory areas which can be used, for example, by various elements such as the BÜM88(where data structures and BÜM command / control words are located) by the interrupt logic86(which refer to interrupt queues that contain information about externally generated and received interrupts via message packets) or from the ZVÜ logic90, Still other registers are used to release interrupts through the interrupt logic86used. Many of the registers are discussed below in connection with the treatment of the logical components (e.g. interrupt logic86, ZVÜ logic90, etc.) in which they are used.

    Die Speicherschnittstelle70verbindet die X-Schnittstelleneinheit24amit den Speichersteuerungen26(und mit der Y-Schnittstelleneinheit24b; siehe2) über einen Bus25, welcher zwei bidirektionale 36-Bit-Busse25a,25bbeinhaltet. Die Speicherschnittstelle wird betrieben, um über die Priorität von Speicher-Zugriffsanforderungen zwischen der Prozessoreinheit20, dem BÜM88und der ZVÜ-Logik90zu entscheiden. Zusätzlich zu den Speicherzugriffen von der Prozessoreinheit20akann auf den Speicher28auch von Komponenten des Verarbeitungssystems l0 zugegriffen werden, um zum Beispiel Daten von einer E/A-Einheit17zu speichern, die von der Prozessoreinheit20azum Lesen angefordert werden, oder es kann auch auf den Speicher28zugegriffen werden, um E/A-Datenstrukturen zu lesen, die zuvor von der Prozessoreinheit in den Speicher gestellt worden sind. Da diese Zugriffe alle asynchron erfolgen, muss über ihre Priorität entschieden werden, und diese Entscheidungen werden von der Speicherschnittstelle70getroffen.The storage interface70connects the X interface unit24awith the memory controllers26(and with the Y interface unit24b; please refer2) via a bus25, which has two bidirectional 36-bit buses25a.25bincludes. The memory interface is operated to determine the priority of Spei access requests between the processor unit20, the BÜM88and the ZVÜ logic90to decide. In addition to memory accesses from the processor unit20acan on the store28can also be accessed by components of processing system 10, for example data from an I / O unit17to save that from the processor unit20amay be requested for reading, or it may also be on memory28are accessed to read I / O data structures that were previously put into memory by the processor unit. Since these accesses are all asynchronous, their priority has to be decided, and these decisions are made by the memory interface70met.

    Informationen in Form von Daten und Befehlen, auf die von dem Speicher28aus zugegriffen wird, werden von der Speicherschnittstelle über einen Speicherauslesebus82an die Prozessorschnittstelle60, sowie an eine Interrupt-Logik86, eine Blockübertragungsmaschine (BMÜ)88und an eine Zugriffsvalidierungs- und -übersetzungslogik (ZVÜ-Logik)90übertragen. Wie weiter unten genauer beschrieben, werden die Daten mengenmässig in Form von Doppelwörtern in den Speicher28geschrieben. Während jedoch die Speicherschnittstellen70der X- und der Y-Schnittstelleneinheit24aund24bdas (64 Bit)-Doppelwort formulieren und an den Bus25anlegen, ist jede Speicherschnittstelle70für das Schreiben von nur 32 Bit dieser 64-Bit-Doppelwortmenge zuständig; die 32 Bits, die nicht von der Speicherschnittstelle70geschrieben werden, werden durch die ihr zugeordnete Schnittstelleneinheit24an die Speicherschnittstelle übertragen, wo sie mit denselben 32 Bits auf Fehler verglichen werden.Information in the form of data and commands to which the memory28are accessed from the memory interface via a memory read bus82to the processor interface60, as well as an interrupt logic86, a block transfer machine (BMÜ)88and to an access validation and translation logic (ZVÜ logic)90transfer. As described in more detail below, the data is stored in the form of double words in terms of quantity28written. However, while the memory interfaces70the X and Y interface unit24aand24bformulate the (64 bit) double word and send it to the bus25is every storage interface70responsible for writing only 32 bits of this 64-bit double word set; the 32 bits that are not from the memory interface70are written by the assigned interface unit24to the memory interface where they are compared for errors with the same 32 bits.

    Es sei hier am Rande erwähnt, dass in dem in den1A–1Cgezeigten System die Übertragung von Interrupts in Form von Nachrichtenpaketen erfolgt, und nicht unter Verwendung der dem Stand der Technik entsprechenden Methode, die darin besteht, für die Übertragung von spezifischen Interrupt-Typen fest zugeordnete Signalleitungen zu verwenden. Werden Nachrichtenpakete empfangen, welche Interrupt-Informationen enthalten, so werden diese Informationen zusammen mit gegebenenfalls von der CPU12Aintern generierten Interrupts der Interrupt-Logik86zugeführt, welche sie verarbeitet und freigibt, womit das Verhalten des Prozessors20neu definiert wird. Intern generierte Interrupts setzen ein Bit in einem Register71(in der Interrupt-Logik86integriert), wodurch der Grund für das Interrupt angezeigt wird. Der Prozessor20kann daraufhin das Interrupt lesen und verhält sich entsprechend. Die Interrupt-Logik wird im Detail weiter unten genauer behandelt.It should be mentioned here in passing that in the1A-1CSystem shown the transmission of interrupts takes place in the form of message packets, and not using the prior art method, which consists in using dedicated signal lines for the transmission of specific types of interrupt. If message packets are received which contain interrupt information, this information is, together with the CPU, if necessary12Ainternally generated interrupts of the interrupt logic86fed, which it processes and releases, with which the behavior of the processor20is redefined. Internally generated interrupts set a bit in a register71(in the interrupt logic86integrated), which shows the reason for the interrupt. The processor20can then read the interrupt and behaves accordingly. The interrupt logic is discussed in more detail below.

    Der BÜM88der X-Schnittstelleneinheit24awird betrieben, um direkte Speicherzugriffe vorzunehmen, und stellt den Mechanismus bereit, der es den Prozessoren20ermöglicht, auf externe Ressourcen zuzugreifen. Der BÜM kann von den Prozessoren20entsprechend eingerichtet werden, um für die Prozessoren20transparente E/A-Anforderungen zu generieren und die Prozessoren zu benachrichtigen, wenn die Anforderungen vollständig sind. Die BÜM-Logik88wird weiter unten abgehandelt.The BÜM88the X interface unit24ais operated to make direct memory accesses and provides the mechanism that it provides to processors20allows access to external resources. The BÜM can processors20be set up accordingly for the processors20Generate transparent I / O requests and notify processors when the requests are complete. The BÜM logic88will be dealt with below.

    In eingehenden Nachrichtenpaketen enthaltene Speicherzugriffsanforderungen werden durch die ZVÜ-Logik90verifiziert. Die Verifizierung der Zugriffsanforderung erfolgt nach verschiedenen Erlaubniskriterien, unter anderem nach der Identität des Ursprungselements der Anforderung und nach dem angeforderten Zugriffstyp. Ausserdem übersetzt die ZVÜ-Logik die (in dem empfangenen Nachrichtenpaket als virtuelle Adresse enthaltene) Speicheradresse, an welcher ein Zugriff gewünscht wird, in eine physikalische Speicheradresse, die zur Durchführung des eigentlichen Zugriffs verwendet werden kann, nachdem die Anforderung ordnungsgemäss verifiziert worden ist. Die ZVÜ-Logik90wird ebenfalls im Detail weiter unten abgehandelt.Memory access requests contained in incoming message packets are handled by the ZVÜ logic90Verified. The access request is verified according to various permission criteria, including the identity of the originating element of the request and the type of access requested. In addition, the ZVÜ logic translates the memory address (contained in the received message packet as a virtual address) at which access is desired into a physical memory address that can be used to carry out the actual access after the request has been properly verified. The ZVÜ logic90is also dealt with in detail below.

    Die BÜM-Logik88arbeitet mit der ZVÜ-Logik90zusammen, um dem Paketüberträger94die zu sendenden Daten und/oder Befehlssymbole bereitzustellen. Der Paketüberträger94fügt seinerseits die von der BÜM-Logik88und der ZVÜ-Logik90empfangenen Informationen zu Nachrichtenpaketen zusammen und hält sie bis zu ihrer Übertragung in einem Zwischenspeicher. Ausserdem arbeitet die BÜM-Logik88und die ZVÜ-Logik90auch mit dem Paketempfänger96zusammen, um eingehende Nachrichtenpakete zu empfangen, auszuwerten und behandeln, wobei diese im Bedarfsfall zwischengespeichert werden und in das 8 Byte breite Format umgewandelt werden, in dem sie vorliegen müssen, um im Speicher28abgespeichert werden zu können.The BÜM logic88works with the ZVÜ logic90together to the parcel carrier94to provide the data to be sent and / or command symbols. The parcel carrier94in turn adds the BÜM logic88and the ZVÜ logic90received information about message packets together and holds it until it is transmitted in a buffer. The BÜM logic also works88and the ZVÜ logic90also with the parcel recipient96together to receive, evaluate and process incoming message packets, which are cached if necessary and converted into the 8 byte wide format in which they must be present in order to be stored28to be able to be saved.

    Abgehende Nachrichtenpakete, welche prozessorgenerierte Transaktionsanforderungen enthalten (z. B. eine Leseanforderung nach einem Datenblock von einer E/A-Einheit) werden von der Anforderungstransaktionslogik (RTL)100überwacht. Die ATL100sieht einen Zeitüberwachungszähler für abgehende Anforderungen vor, welcher prüft, ob die Anforderung innerhalb einer vorgegebenen Zeitspanne beantwortet wird; ist dies nicht der Fall, so generiert die ATL ein (von der Interrupt-Logik86zu behandelndes und zu meldendes) Interrupt, um den Prozessor20zu informieren, dass die Anforderung nicht beantwortet worden ist. Ausserdem validiert die ATL100eingehende Antworten. Die ATL100hält die Adresse für die Antwort bereit und leitet diese Adresse an die BÜM88weiter, sobald die Antwort empfangen worden ist, so dass die Antwort (im Zuge der von der BÜM86ausgeführten Direkt-Speicherzugriffsoperation) im Speicher28an einem dem Prozessor20bekannten Speicherort abgelegt werden kann, so dass dieser die Antwort auffinden kann.Outgoing message packets that contain processor-generated transaction requests (e.g., a read request for a data block from an I / O unit) are handled by the request transaction logic (RTL)100supervised. The ATL100provides a timeout counter for outgoing requests, which checks whether the request is answered within a predetermined period of time; if this is not the case, the ATL generates a (from the interrupt logic86Interrupt to be handled and reported to the processor20to inform that the request has not been answered. The ATL also validates100incoming responses. The ATL100holds the address ready for the answer and forwards this address to the BÜM88as soon as the answer has been received, so that the answer (in the course of the BÜM86direct memory access operation performed) in memory28on one the processor20Known location can be stored so that it can find the answer.

    Eine jede der CPUs12wird, wie im folgenden beschrieben, auf mehrfache Weise geprüft. Eine dieser Prüfungen besteht in einer fortlaufenden Monitoreinrichtung zur Überwachung des Betriebs der Schnittstelleneinheiten24a,24beiner jeden CPU. Da die Schnittstelleneinheiten24a,24bsynchron im Gleichschritt zueinander laufend betrieben werden, kann die Prüfung insofern erfolgen, als die Betriebszustände der gepaarten Schnittstelleneinheiten24a,24bmittels eines kontinuierlichen Vergleichs von gewissen internen Zuständen derselben überwacht werden. Dieser Ansatz wird unter Verwendung einer Phase einer in der Einheit24ader CPU12Aenthaltenen Ablaufsteuereinheit (nicht gezeigt) realisiert, wobei jeder von dieser Phase eingenommene Zustand mit seiner identischen Rblaufsteuerungsphase in der Schnittstelleneinheit24bverglichen wird. Sämtlichen Einheiten der Schnittstelleneinheit24verwenden Ablaufsteuereinheiten zu ihrer Betriebsüberwachung. Vorzugsweise wird daher eine Ablaufsteuereinheit der Speicherschnittstelle70verwendet, welche die Datenübertragungen zwischen der Schnittstelleneinheit24und der Speichersteuerung26überwacht. Auf diese Weise wird eine ausgewählte Phase der in der Speicherschnittstelle70der Schnittstelleneinheit24averwendeten Ablaufsteuereinheit ausgewählt. Eine identische Phase einer Ablaufsteuereinheit einer der Schnittstelleneinheiten24bwird ebenfalls ausgewählt. Die beiden ausgewählten Phasen werden zwischen den Schnittstelleneinheiten24a,24bübertragen und von einer in beiden Schnittstelleneinheiten24a,24benthaltenen Vergleichsschaltung empfangen. Da die Schnittstelleneinheiten im Gleichschritt zueinander betrieben werden, durchwandern die Ablaufsteuereinheiten ebenfalls dieselben identischen Zustände und nehmen dabei jeden Zustand im wesentlichen zeitgleich zueinander ein. Falls nun eine Schnittstelleneinheit auf einen Fehler stösst oder ausfällt, so führt dies dazu, dass die Schnittstelleneinheiten auseinanderdriften und die Ablaufsteuereinheiten unterschiedliche Zustände einnehmen. Mit der Zeit werden sich auch die von den jeweiligen Ablaufsteuereinheiten an die Vergleichsschaltungen übermittelten, ausgewählten Phasen voneinander unterscheiden. Dieser Unterschied veranlasst die Vergleichsschaltungen, ein "lost sync"-Fehlersignal auszugeben, wodurch den CPUs12A(oder12B) zur Kenntnis gebracht wird, dass die Schnittstelleneinheiten24a,24bdieser CPU nicht mehr im Gleichschritt laufen, und entsprechende Schritte zu setzen. Ein Beispiel für diese Technik findet sich in dem US-Patent Nr. 4.672.609, ausgegeben an Humphrey, et al. und abgetreten an den Abtretungsempfänger dieser Anmeldung.Each of the CPUs12is tested in several ways, as described below. One of these tests consists of a continuous monitor device for monitoring the operation of the interface units24a.24bany CPU. Because the interface units24a.24bsynchronously in step with each other the operation can be carried out insofar as the operating states of the paired interface units24a.24bbe monitored by continually comparing certain internal states thereof. This approach is using a phase one in the unit24athe CPU12Acontained sequence control unit (not shown) realized, each state assumed by this phase with its identical Rblaufsteuerphase in the interface unit24bis compared. All units of the interface unit24use sequence control units for their operational monitoring. A sequence control unit of the memory interface is therefore preferred70used the data transfers between the interface unit24and memory control26supervised. In this way, a selected phase of the in the memory interface70the interface unit24aused sequence control unit selected. An identical phase of a sequence control unit of one of the interface units24bis also selected. The two selected phases are between the interface units24a.24btransferred and from one in both interface units24a.24breceived comparison circuit received. Since the interface units are operated in step with one another, the sequential control units likewise pass through the same identical states and assume each state essentially simultaneously with one another. If an interface unit encounters an error or fails, this leads to the interface units drifting apart and the sequence control units to assume different states. Over time, the selected phases transmitted by the respective sequence control units to the comparison circuits will also differ from one another. This difference causes the comparison circuits to issue a "lost sync" error signal, causing the CPUs12A(or12B) is brought to the knowledge that the interface units24a.24bthis CPU no longer run in step, and to take appropriate steps. An example of this technique is found in U.S. Patent No. 4,672,609 issued to Humphrey, et al. and assigned to the assignee of this application.

    Der Paketempfänger96der X-Schnittstelle der CPU12A– um wieder zu5zurückzukehren – funktioniert in einer Weise, dass nur der X-Port bedient wird, indem er nämlich nur jene Nachrichtenpakete empfängt, welche von dem Router14Ades Subprozessorsystems10A(1A) übertragen werden. Der Y-Port wird von der Y-Schnittstelleneinheit24bbedient und empfängt Nachrichtenpakete von dem Router14Bdes dazugehörigen Subprozessorsystems108. Beide Schnittstellen (so wie auch die Speichersteuerungen26und der Prozessor20) sind jedoch, wie bereits gezeigt wurde, insofern im Grunde genommen Spiegelbilder voneinander, als beide in Bezug auf ihren Aufbau und ihre Funktion im wesentlichen identisch sind. Aus diesem Grund muss die von einer Schnittstelleneinheit (z. B.24a) empfangene Nachrichtenpaketinformation zum Zweck der Verarbeitung auch an die dazugehörige Schnittstelleneinheit (z. B.24b) weitergegeben werden. Da darüber hinaus beide Schnittstelleneinheiten24a,24bdieselben Nachrichtenpakete zur Übertragung von dem X- bzw. Y-Port zusammenstellen, wird das Nachrichtenpaket, das von der Schnittstelleneinheit (z. B.24b) übertragen wird, und tatsächlich von dem dazugehörigen Port (z. B. dem Y-Port) aus übermittelt wird, auch an die andere Schnittstelleneinheit (z. B. 24a) gekoppelt, wo es auf Fehler hin gegengeprüft wird. Diese Merkmale werden in den6und8veranschaulicht.The parcel recipient96the X interface of the CPU12A- to close again5return - works in a way that only the X-Port is served by receiving only those message packets that are sent by the router14Aof the subprocessor system10A(1A) be transmitted. The Y port is used by the Y interface unit24bserves and receives message packets from the router14Bof the associated subprocessor system108, Both interfaces (as well as the memory controls26and the processor20), however, as has already been shown, are basically mirror images of each other in that both are essentially identical in structure and function. For this reason, the interface unit (e.g.24a) received message packet information for the purpose of processing also to the associated interface unit (e.g.24b) are passed on. In addition, both interface units24a.24bcompiling the same message packets for transmission from the X or Y port, the message packet sent by the interface unit (e.g.24b) is transmitted, and is actually transmitted from the associated port (e.g. the Y port), also coupled to the other interface unit (e.g. 24a), where it is checked for errors. These features are in the6and8thillustrated.

    Paketempfänger:Package recipients:

    Im folgenden werden unter Bezugnahme auf die6die empfangenden Abschnitte des Paketempfängers96(96x,96y) der X- und Y-Schnittstelleneinheiten24a,24bin groben Zügen veranschaulicht. Wie gezeigt, verfügt jeder Paketempfänger96x,96yüber ein Taktsynchronisierungs-FIFO (TS-FIFO)102, das entsprechend verkoppelt ist, um ein zu diesem gehöriges der TNet-Links32zu empfangen. Die TS-FIFOs102werden betrieben, um die eingehenden Befehls/Datensymbole insofern mit dem lokalen Takt des Paketempfängers96zu synchronisieren, als sie zwischengespeichert und anschliessend an einen Multiplexer (MUX)104angelegt werden. Hierbei ist allerdings zu beachten, dass Informationen, die am X-Port und am Paketempfänger96xder X-Schnittstelle24aempfangen werden, zusätzlich zu ihrer Weitergabe an den MUX104xüber die Quervernetzung36x an den MUX104ydes Paketempfängers96yder Y-Schnittstelleneinheit24bgekoppelt werden. In ähnlicher Weise werden am Y-Port empfangene Informationen über die Quervernetzung36yan die X-Schnittstelleneinheit24agekoppelt. Auf diese Weise werden die Befehls/Datensymbole von Informationspaketen, welche an einem der X-, Y-Ports von der jeweiligen X-, Y-Schnittstelleneinheit24a,24bempfangen werden, an die andere weitergegeben, so dass beide dieselben Informationen verarbeiten und an weitere Komponenten der Schnittstelleneinheiten24und/oder des Speichers28übermitteln.The following are with reference to the6the receiving sections of the packet receiver96(96x.96y) of the X and Y interface units24a.24broughly illustrated. As shown, each package recipient has96x.96yvia a clock synchronization FIFO (TS FIFO)102, which is coupled accordingly to one of the TNet links belonging to this32to recieve. The TS FIFOs102are operated to the incoming command / data symbols so far with the local clock of the packet receiver96to synchronize as they are cached and then connected to a multiplexer (MUX)104be created. However, it should be noted here that information that is on the X-Port and on the packet receiver96xthe X interface24abe received, in addition to being forwarded to the MUX104xabout cross-linking36x to the MUX104yof the package recipient96ythe Y interface unit24bbe coupled. Similarly, information received on the Y-port about the cross-linking36yto the X interface unit24acoupled. In this way, the command / data symbols of information packets which are on one of the X, Y ports from the respective X, Y interface unit24a.24bare received, passed on to the other, so that both process the same information and to further components of the interface units24and / or the memory28to transfer.

    Die Multiplexer104, um nun mit6fortzufahren, wählen in Abhängigkeit davon, welcher X-, Y-Port ein Nachrichtenpaket empfängt, entweder die Ausgabesignale des einen oder des anderen der TS-FIFOs102x,102yzur Datenübertragung an den Speicher und die Verarbeitungslogik110der Schnittstelleneinheit24aus. Die in jedem 9-Bit-Symbol enthaltene Information besteht aus einem 8-Bit-Byte Steuer bzw. Dateninformation, dessen Codierung weiter unten im Zusammenhang mit9abgehandelt wird. Die Speicher- und Verarbeitungslogik110übersetzt zuerst die 9-Bit-Symbole in 8-Bit-Daten- bzw. – Steuerbytes, und die Bytes organisiert die Bytes als 64-Bit-Doppelwörter, wobei die dergestalt gebildeten Doppelwörter in einen Eingangspaket-Zwischenspeicher (hier nicht im besonderen gezeigt) gestellt werden. Der Eingangspaket-Zwischenspeicher hält die empfangenen Informationen zwischenzeitlich bis sie zu der Speicherschnittstelle70, sowie zu der ZVÜ-Logik90und/oder zu dem BÜM88weitergegeben werden können.The multiplexers104to now use6to proceed, depending on which X, Y port a message packet receives, choose either the output signals of one or the other of the TS FIFOs102x.102yfor data transfer to memory and processing logic110the interface unit24out. The information contained in each 9-bit symbol consists of an 8-bit byte control or data information, the coding of which is described below in connection with9is dealt with. The storage and processing logic110first translates the 9-bit symbols into 8-bit data or control bytes, and the bytes organizes the bytes as 64-bit double words, the double words thus formed being placed in an input packet buffer (not shown here in particular). The input packet cache temporarily holds the received information until it reaches the memory interface70, as well as the ZVÜ logic90and / or to the BÜM88can be passed on.

    Die Paketempfänger96beinhalten jeweils eine CRC-Prüflogik106zum Prüfen des CRC des Nachrichtenpakets. Es ist im besonderen zu beachten, dass jede CRC-Prüflogik106an einer entsprechenden Stelle angeordnet ist, so dass ungeachtet dessen, an welchem Port (X oder Y) das Nachrichtenpaket empfangen wird, beide Empfänger96x,96yden CRC des empfangenen Nachrichtenpakets prüfen. Dieses Merkmal beinhaltet ein Fehlerisolationsmerkmal. [Obgleich in dieser Empfangsphase geprüft,] Eine CRC-Fehleranzeige seitens eines Empfängers nicht jedoch des anderen deutet auf ein Problem bei der Schnittstelle zwischen den beiden Empfängern oder bei der Logik des Empfängers, welcher die Fehlermeldung ausgibt, hin. Somit kann der Fehler zumindest zu Anfang auf diesen Abschnitt des Pfades vom Ausgang der empfangenden TS-FIFO eingegrenzt werden.The package recipients96each contain a CRC test logic106to check the CRC of the message packet. It is particularly important to note that any CRC test logic106is arranged at a corresponding location, so that regardless of which port (X or Y) the message packet is received, both receivers96x.96ycheck the CRC of the received message packet. This feature includes a fault isolation feature. [Although checked in this receiving phase,] a CRC error indication from one receiver but not from the other indicates a problem with the interface between the two receivers or with the logic of the receiver which issues the error message. Thus, the error can be limited at least initially to this section of the path from the output of the receiving TS FIFO.

    Nicht dargestellt ist die Tatsache, dass die Ausgänge der TS-FIFOs102x,102yzusätzlich zu dem MUX104auch an eine Steuerdecodiereinheit gekoppelt ist. Die Befehlsdecodiereinheit wird betrieben, um Befehlssymbole zu erkennen (indem sie in einer weiter unten genauer beschriebenen Weise von Datensymbolen unterschieden werden), sie zu decodieren, und daraus Befehlssignale zu generieren, welche an eine Empfängersteuereinheit angelegt werden, worunter ein auf einer Ablaufsteuereinheit basierendes Element zu verstehen ist, das dazu verwendet wird, die Paketempfänger-Operationen zu steuern.The fact that the outputs of the TS FIFOs102x.102yin addition to the MUX104is also coupled to a control decoding unit. The command decoding unit operates to recognize command symbols (by distinguishing them from data symbols in a manner described in more detail below), to decode them, and to generate command signals therefrom which are applied to a receiver control unit, including an element based on a sequence control unit that is used to control the packet receiver operations.

    Wie weiter oben gezeigt, sind die Pakete durch einen zyklischen Redundanzprüfungswert (CRC-Wert) gegen Fehler geschützt. Wenn die CRC-Information des empfangenen Pakets am Ausgang des MUX104erscheint, versetzt der Empfängersteuerabschnitt der Speichersteuereinheit die CRC-Prüflogik106somit in die Lage, ein CRC-Symbol zu berechnen, während die Datensymbole empfangen werden, um daran anschliessend die generierte Menge mit dem zusammen mit dem Nachrichtenpaket empfangenen CRC zu vergleichen. Im Fall eines Nicht-Übereinstimmens, welches darauf hindeutet, dass während der Übertragung zu dem Paketempfänger96möglicherweise ein Fehler aufgetreten ist, gibt die CRC-Prüflogik106ein Fehler-Interruptsignal (BADCRC) aus, das dazu verwendet wird, ein Interrupt-Register zu setzen (Interrupt-Register280; Fig. 14A), woraufhin das Paket ausgeschieden wird. Der Paket-Header wird jedoch zum Zweck der späteren Prüfung in einer Interrupt-Warteschlange gespeichert.As shown above, the packets are protected against errors by a cyclic redundancy check (CRC) value. If the CRC information of the received packet at the output of the MUX104appears, the receiver control section of the memory control unit offsets the CRC check logic106thus able to calculate a CRC symbol while the data symbols are being received, in order to then compare the generated quantity with the CRC received together with the message packet. In the event of a mismatch, which indicates that during transmission to the packet recipient96possibly an error has occurred, the CRC test logic returns106an error interrupt signal (BADCRC), which is used to set an interrupt register (interrupt register280; 14A), whereupon the packet is eliminated. However, the packet header is stored in an interrupt queue for later checking.

    Wie weiter unten ausgeführt, finden sich TS-FIFOs nicht nur in den Paketempfängern96der Schnittstelleneinheiten24, sondern auch an jedem empfangenden Port der Router14und der E/A-Paket-Schnittstellen16. Allerdings sind die TS-FIFOs, welche zum Empfangen von Symbolen von den TNet-Links L, die die CPUs12A,12Bund die Router14A,14B(d. h. die Ports 1 und 2) verbinden, verwendet werden, in gewisser Weise unterschiedlich von jenen, die an den anderen Ports der Router14sowie an jeglichen anderen nicht direkt mit einer CPU12verbundenen Routern14verwendet werden. Um es anders auszudrücken, die TS-FIFOs, welche dazu verwendet werden, um Symbole zwischen Elementen mit frequenzsynchronisierter Taktgebung auszutauschen, unterscheiden sich von jenen, die dazu verwendet werden, um Symbole zwischen Elementen mit frequenznaher Taktgebung auzutauschen.As explained below, TS FIFOs are not only found in the packet receivers96of the interface units24, but also on each receiving port of the router14and the I / O packet interfaces16, However, the TS FIFOs, which are used to receive symbols from the TNet links L, which the CPUs12A.12Band the router14A.14B(ie ports 1 and 2) are used, in some ways different from those used on the other ports of the router14as well as any other not directly with a CPU12connected routers14be used. To put it another way, the TS FIFOs that are used to exchange symbols between elements with frequency-synchronized clocking are different from those that are used to exchange symbols between elements with near-frequency clocking.

    Die folgenden Ausführungen werden auch zeigen, dass die TS-FIFOs eine bedeutende Rolle bei der Übertragung von Informationen auf den TNet-Links L zwischen in frequenznahem Betrieb arbeitenden Elementen spielen (d. h. die Taktsignale der übertragenden und der empfangenden Elemente sind nicht notwendigerweise gleich, es ist jedoch zu erwarten, dass sie innerhalb eines vorgegebenen Toleranzbereichs gelegen sind). Eine noch wichtigere Rolle, um nicht zu sagen eine einzigartige Funktion, haben die TS-FIFOs jedoch dann, wenn ein Paar von Subprozessorsystemen im Duplexbetrieb arbeitet und die beiden CPUs12Aund12Bder Subprozessorsysteme10A,10Bin synchronisiertem Gleichschritt betrieben werden und dieselben Befehle zur selben Zeit ausführen. Bei diesem letzteren Betriebsmodus ist es unabdingbar, dass Informationen, welche von irgendeinem der Router14Aoder14Ban die CPUs12Aund12Bübertragen werden, von beiden CPUs im wesentlichen zur selben Zeit empfangen werden, damit ein synchroner, im Gleichschritt laufender Betrieb aufrechterhalten werden kann. Dies zu gewährleisten ist leider keine leicht Aufgabe, da es sehr schwierig ist, dafür zu sorgen, dass das Taktsystem der Router14Aund14Bgenau mit jenem der CPUs12Aund12Bsynchron läuft – und das selbst bei Einsatz von frequenzsynchronisierter Taktgebung. Innerhalb der Paketempfänger96der CPUs12ist es die Aufgabe der TS-FIFOs102, die Differenz auszugleichen, zu der es zwischen dem Takt des Routers14, der dazu verwendet wird, Symbole an die CPU12zu übertragen, und dem Takt, mit welchem die Schnittstelleneinheit24diese Symbole empfängt, kommen kann.The following statements will also show that the TS FIFOs play an important role in the transmission of information on the TNet links L between near frequency elements (ie the clock signals of the transmitting and receiving elements are not necessarily the same, it is however, to be expected to be within a given tolerance range). An even more important role, if not a unique function, is given by the TS FIFOs when a pair of subprocessor systems are working in duplex mode and the two CPUs12Aand12Bof subprocessor systems10A.10Boperate in synchronized synchronism and execute the same commands at the same time. In this latter mode of operation, it is imperative that information from any of the routers14Aor14Bto the CPUs12Aand12Btransmitted, are received by both CPUs at substantially the same time, so that synchronous, synchronous operation can be maintained. Ensuring this is unfortunately not an easy task as it is very difficult to ensure that the router's clock system14Aand14Bexactly with that of the CPUs12Aand12Bruns synchronously - even when using frequency-synchronized clocking. Within the package recipient96of CPUs12it is the job of the TS FIFOs102to compensate for the difference between the clock of the router14, which is used to send symbols to the CPU12to transmit, and the clock with which the interface unit24receives these symbols, can come.

    Der Aufbau des TS-FIFOs102ist im Hinblick auf eine anschaulichere Beschreibung in Diagrammform in7Adargestellt; ein bevorzugter Aufbau des TS-FIFOs wird in7Bgezeigt. Es versteht sich auch hier wieder, dass wenn in der Folge von einem TS-FIFO gesprochen wird, sofern nicht anders angegeben, auf eine Struktur Bezug genommen werden soll, welche von der Funktion und vom Betrieb her jener entspricht, die unter Bezugnahme auf die7Abeschrieben wird und der in7Bgezeigten Struktur entspricht. Die Abhandlung des TS-FIFOs aus7Asoll daher allgemein gehalten sein und auch so verstanden werden. Weiterhin soll, obwohl manche der für den frequenzsynchronisierten Betrieb verwendeten TS-FIFOs sich von jenen unterscheiden, die für den frequenznahen Betrieb verwendet werden, die nachfolgende Beschreibung auf beide zutreffen. Im Anschluss an diese Ausführung folgt eine Beschreibung der Abänderungen, die am allgemeinen Rufbau des TS-FIFOs vorgenommen werden müssen, damit dieses sich zum Einsatz für eine frequenznahe Betriebsweise eignet.The structure of the TS FIFO102is in diagram form for a more descriptive description in7Ashown; a preferred structure of the TS FIFO is in7Bshown. Again, it goes without saying that if a TS-FIFO is subsequently referred to, unless otherwise stated, reference should be made to a structure which corresponds in terms of function and operation to that which is described with reference to FIG7Ais described and the in7Bshown structure corresponds. The treatise of the TS FIFO7Ashould therefore be general and should be understood as such. Wei Furthermore, although some of the TS FIFOs used for frequency-synchronized operation differ from those used for near-frequency operation, the following description applies to both. This version is followed by a description of the changes that have to be made to the general call structure of the TS FIFO so that it is suitable for use in a frequency-related mode of operation.

    Gezeigt wird in7Adas TS-FIFO102xdes Paketempfängers96x, Das TS-FIFO102yist vom Aufbau und von der Betriebsweise her im wesentlichen identisch, so dass die folgende Beschreibung des TS-FIFOs102xauch als auf das TS-FIFO102yanwendbar zu verstehen ist.7Azeigt das TS-FIFO102xentsprechend über das TNet-Link32gekoppelt, um 9-Bit-Befehls-/Datensymbole zu empfangen, welche von einem Senderegister (Snd)120des Routers14Aübertragen werden (1A) gemeinsam mit einem ebenfalls von dem Router kommenden Sendetakt (S Tkt). (Die gestrichelte Linie B in7Asymbolisiert die Taktgrenze zwischen der sendenden Einheit (Router14A) an einem Ende des entsprechenden TNet-Links32und der empfangenden Einheit, dem Paketempfänger96xder CPU12A. Die TS-FIFO102xempfängt somit die 9-Bit-Symbole an einem Empfangsregister (Empf)124, in welchem sie zwischenzeitlich gehalten werden (z. B. während eines S_Tkt-Intervalls) bevor sie an eine Speicherwarteschlange126weitergegeben werden. Die Speicherwarteschlange126ist zur besseren Illustration und einfacheren Beschreibung als vier Speicherorte enthaltend dargestellt. Für einschlägig gebildete Fachleute ist jedoch klar, dass weitere Speicherorte nicht nur bereitgestellt werden können sondern in der Tat notwendig bzw. wünschenswert sind.Is shown in7Athe TS FIFO102xof the package recipient96x, The TS FIFO102yis essentially identical in structure and operation, so that the following description of the TS FIFO102xalso as on the TS FIFO102yis to be understood as applicable.7Ashows the TS FIFO102xaccordingly via the TNet link32coupled to receive 9-bit command / data symbols sent from a transmit register (Snd)120of the router14Abe transmitted (1A) together with a send clock (S Tkt) also coming from the router. (The dashed line B in7Asymbolizes the clock limit between the sending unit (router14A) at one end of the corresponding TNet link32and the receiving unit, the packet receiver96xthe CPU12A, The TS FIFO102xthus receives the 9-bit symbols at a receive register (receive)124in which they are held in the meantime (e.g. during an S_Tkt interval) before they go to a storage queue126be passed on. The storage queue126is shown as four locations for better illustration and simpler description. However, it is clear to those skilled in the art that additional storage locations can not only be provided but are indeed necessary or desirable.

    Empfangene Symbole werden (von dem Empf-Register124) in die TS-FIFO102xeingegeben, und zwar an Speicherorten der Speicherwarteschlange126, die von einem Eingabe-Zeigerzähler128identifiziert worden sind. Der Eingabe-Zeigerzähler128hat vorzugsweise die Form eines S-Tkt-getakteten Binärzählers. Empfangene Symbole werden dann der Reihe nach aus Speicherorten der Speicherwarteschlange126, die von einem Entnahme-Zeigerzähler130identifiziert worden sind, entnommen und an ein FIFO-Ausgaberegister132weitergegeben. Ein lokales Taktsignal, "Empf-Tkt", das dazu verwendet wird, Symbole aus der Speicherwarteschlange126und dem FIFO-Ausgaberegister130zu entnehmen, wird von einem (CPU 12A-)intern generierten Signal erzeugt. Vom FIFO-Ausgaberegister132werden die Symbole an den MUX104xweitergegeben.Received symbols are (from the receive register124) in the TS FIFO102xentered, in storage queue locations126by an input pointer counter128have been identified. The input pointer counter128preferably has the form of an S-Tkt-clocked binary counter. Received symbols then become locations from the storage queue in turn126by a withdrawal pointer counter130have been identified, taken out and sent to a FIFO output register132passed. A local clock signal, "Receive-Tkt", which is used to remove symbols from the store queue126and the FIFO output register130is generated by a (CPU 12A-) internally generated signal. From the FIFO output register132the symbols on the MUX104xpassed.

    Gemäss dem für TNet-Übertragungen verwendeten Protokoll wird von allen sendenden Ports (z. B. den X- und Y-Ports der CPU12A, jedem sendenden Port des Routers14bzw. der E/A-Schnittstelle 16 –1A) fortlaufend ein konstanter Strom von Symbolen übertragen; dabei kann es sich entweder um tatsächliche Befehls-/Datensymbole (d. h. ein Paket) oder um LEERLAUF-Symbole handeln – ausgenommen während bestimmter Situationen (z. B. Reset, Initialisierung, Synchronisierung, sowie andere, weiter unten behandelte Situationen). Wie bereits weiter oben erklärt, wird jedes Symbol, das in dem Senderegister120des Routers14Agehalten wird, an den Empf-Register124gekoppelt und in der Speicherwarteschlange126gespeichert, zusammen mit dem von dem Router14Abereitgestellten Taktsignal, S_Tkt. Umgekehrt erfolgt die Entnahme der Symbole aus der Speicherwarteschlange synchron mit dem lokal erzeugten Takt, Empf-Tkt. Dabei handelt es sich um zwei unterschiedliche Taktsignale, wenngleich auch mit im wesentlichen derselben Frequenz. Solange jedoch genügend Zeit verstreicht (z. B. einige Taktintervalle) zwischen dem Zeitpunkt da ein Symbol in die TS-FIFO102xeintritt und jenem Zeitpunkt, da dasselbe Symbol aus der TS-FIFO entnommen wird, sollte es zu keinen Metastabilitätsproblemen kommen. Wenn das eingehende Taktsignal (S_Tkt) und der Empf-Tkt in frequenzsynchronisiertem Modus betrieben werden, sollte es niemals zu einem Überlauf oder Unterlauf der TS-FIFO102xkommen.According to the protocol used for TNet transmissions, all sending ports (e.g. the X and Y ports of the CPU12A, each sending port of the router14or the I / O interface 16 -1A) continuously transmit a constant stream of symbols; these can either be actual command / data symbols (ie a package) or IDLE symbols - except during certain situations (e.g. reset, initialization, synchronization, as well as other situations discussed below). As explained earlier, each symbol that is in the transmit register120of the router14Ais held to the REC register124paired and in the storage queue126saved, along with that from the router14Aprovided clock signal, S_Tkt. Conversely, the symbols are removed from the storage queue synchronously with the locally generated clock, receive clock. These are two different clock signals, albeit with essentially the same frequency. However, as long as enough time elapses (e.g. a few clock intervals) between the time there a symbol in the TS FIFO102xoccurs and at the time when the same symbol is taken from the TS FIFO, there should be no metastability problems. When the incoming clock signal (S_Tkt) and the receive clock are operated in frequency-synchronized mode, the TS FIFO should never overflow or underflow102xcome.

    Die Initialisierung der TS-FIFO102xerfolgt wie folgt. Zu Beginn überträgt der Router14ALEERLAUF-Symbole für jeden Impuls des Sendetaktsignals, S_Tkt, wodurch schliesslich das Empf-Register124, die Speicherwarteschlange126und das FIFO-Ausgaberegister132mit LEERLAUF-Symbolen gefüllt wird und das TS-FIFO102xin einen Leerlaufzustand zurückgesetzt wird. Der Eingabe-Zeigerzähler128und der Entnahme-Zeigerzähler130werden nach Empfang (und Erkennung) eines SYNC-Befehlssymbols auf Null gesetzt. Durch den Empfang des SYNC-Signals wird der Eingabe-Zeigerzähler128so eingestellt, dass er auf einen bestimmten Speicherort in der Speicherwarteschlange12bzeigt. Gleichzeitig wird auch der Entnahme-Zeigerzähler130in ähnlicher Weise eingestellt, so dass er auf einen Speicherort der Speichewarteschlange126zeigt, der vorzugsweise um zwei Speicherorte von jenem des Eingabe-Zeigerzählers beabstandet ist. Dadurch wird eine nominale Verzögerung von zwei Takten zwischen dem Eintritt eines Symbols in die Speicherwarteschlange126und dessen Verlassen der Speicherwarteschlange eingerichtet, wodurch es jedem in die Warteschlange126eintretenden Symbol ermöglicht wird, sich zu beruhigen, bevor es wieder ausgetaktet und von dem MUX104x(und104y) an die Speicher- und Verarbeitungseinheiten110x(und110y) weitergegeben wird. Da der Sendetakt und der Empfangstakt phasenunabhängig voneinander sind, beinhaltet eine nominale Verzögerung von zwei Takten einen Fehlerbereich von plus oder minus einem vorgegebenen Betrag, so dass angenommen wird, dass der erlaubte Reset-Zeitversatz geringer oder gleich einem Takt ist.The initialization of the TS FIFO102xis done as follows. At the beginning the router transmits14AIDLE symbols for each pulse of the transmit clock signal, S_Tkt, which ultimately results in the receive register124, the storage queue126and the FIFO output register132is filled with IDLE symbols and the TS FIFO102xis reset to an idle state. The input pointer counter128and the withdrawal pointer counter130are set to zero after receipt (and detection) of a SYNC command symbol. Upon receipt of the SYNC signal, the input pointer counter becomes128set to go to a specific location in the storage queue12bshows. At the same time, the withdrawal pointer counter also becomes130set similarly so that it points to a storage queue location126shows, which is preferably spaced two locations from that of the input pointer counter. This results in a nominal two clock delay between the entry of a symbol into the store queue126and its leaving the store queue is set up, causing it to queue everyone126entering symbol is allowed to calm down before it is clocked out again and by the MUX104x(and104y) to the storage and processing units110x(and110y) is passed on. Since the transmit clock and the receive clock are phase-independent of one another, a nominal delay of two clocks includes an error range of plus or minus a predetermined amount, so that it is assumed that the permitted reset time offset is less than or equal to one clock.

    7Bveranschaulicht eine Realisierung des TS-FIFOs192x, wobei die Speicherwarteschlange126als aus Multiplexer/Auffangspeicher-Kombinationen140,142bestehend dargestellt ist und wobei jede dieser Kombinationen einen Speicherort der Speicherwarteschlange126bildet. Die Auffangspeicher142werden mit jedem Impuls des S_Tkt angesteuert. Der Eingabe-Zeigerzähler128wird von einem Decodierer144decodiert, um einen der Multiplexer140zu veranlassen, die Ausgabesignale des Empf-Registers124zur Koppelung an den ihm zugeordneten Auffangspeicher142auszuwählen. Der Auffangspeicher wird mit dem S_Tkt geladen und der Eingabe-Zeigerzähler wird inkrementiert, um einen weiteren der Multiplexer140zu veranlassen, das Empf-Register an einen zugeordneten Auffangspeicher142zu übertragen. Jene Auffangspeicher142, die nicht ausgewählt werden, um die Ausgabesignale des Empf-Registers124zu empfangen, empfangen und laden stattdessen den Auffangspeicherinhalt mit S_Tkt.7Billustrates a realization of the TS FIFO192xwhere the store queue126than from multiplexer / buffer combinations140.142is shown consisting and each of these Combinations of a storage queue location126forms. The catchment142are controlled with every pulse of the S_Tkt. The input pointer counter128is from a decoder144decoded to one of the multiplexers140to cause the output signals of the REC register124for coupling to the buffer memory assigned to it142select. The buffer is loaded with the S_Tkt and the input pointer counter is incremented to another one of the multiplexers140to cause the REC register to be allocated to a latch142transferred to. That catchment142that are not selected to be the output signals of the REC register124to receive, receive and load the catch memory content with S_Tkt instead.

    Im wesentlichen zeitgleich dazu wählt der Entnahmezähler130den Inhalt eines der Auffangspeicher über einen Multiplexer146, um ihn gemeinsam mit dem Emfp- Tkt an das FIFO-Ausgaberegister132zu übertragen und in dieses zu laden; gleichzeitig dazu wird der Entnahme-Zeigerzähler132aktualisiert (inkrementiert).The withdrawal counter dials essentially at the same time130the contents of one of the catch memories via a multiplexer146to the FIFO output register together with the Emfp- Tkt132to transfer and load into it; at the same time the withdrawal pointer counter132updated (incremented).

    Das TS-FIFO102xist entsprechend aufgebaut, um eine frequenzsynchronisierte Taktgabe durchzuführen (d. h. S_Tkt und Empf-Tkt sind im wesentlichen gleich was die Frequenz, nicht jedoch die Phase betrifft), die nur verwendet wird, wenn ein Paar von CPUs12im Duplex-Betriebsmodus läuft, und es sich um Übertragungen zwischen den Routern14A,14Bund den gepaarten CPUs12A,12B(1) handelt. Die anderen Ports der Router14(und der E/A-Schnittstellen16), die nicht mit (im Duplexbetrieb funktionierenden) CPUs12kommunizieren, werden betrieben, um Symbole unter frequenznaher Taktgabe zu übertragen. Dennoch werden auch an diesen anderen Ports Taktsynchronisierungs-FIFOs verwendet, um Symbole zu empfangen, welche unter frequenznaher Taktgabe übertragen wurden, und diese Taktsynchronisierungs-FIFOs sind von ihrem Aufbau her im wesentlichen identisch mit jenen, die in frequenzsynchronisierten Umgebungen eingesetzt werden, d. h. mit den TS-FIFOs102. Es bestehen jedoch Unterschiede. So sind zum Beispiel die Symbol-Speicherorte der Speicherwarteschlange 9 Bit breit; bei frequenznahen Umgebungen verwenden die Taktsynchronisierungs-FIFOs Symbol-Speicherorte der Warteschlange126, welche 10 Bit breit sind, wobei es sich bei dem zusätzlichen Bit um ein "gültig"-Flag handelt, an dessen Zustand zu erkennen ist, ob das dazugehörige Symbol gültig ist oder nicht. Auf dieses Merkmal wird weiter unten noch genauer eingegangen.The TS FIFO102xis designed to perform frequency-synchronized clocking (ie S_Tkt and receive-Tkt are essentially the same in frequency but not in phase), which is only used when a pair of CPUs12runs in duplex mode, and it is transfers between the routers14A.14Band the paired CPUs12A.12B(1) acts. The other ports of the router14(and the I / O interfaces16) that do not work with CPUs (working in duplex mode)12communicate, are operated in order to transmit symbols under clock frequency. Nevertheless, clock synchronization FIFOs are also used on these other ports to receive symbols which have been transmitted with near-frequency clocking, and these clock synchronization FIFOs are essentially identical in structure to those used in frequency-synchronized environments, ie with the CS FIFOs102, However, there are differences. For example, the symbol locations of the store queue are 9 bits wide; in near-frequency environments, clock synchronization FIFOs use queue symbol locations126, which are 10 bits wide, the additional bit being a "valid" flag, the status of which indicates whether the associated symbol is valid or not. This feature is discussed in more detail below.

    Ein Router14kommuniziert oft mit Geräten (z. B. anderen Routern oder E/A-Schnittstellen16) in anderen Computern, die unter dem Einfluss anderer Taktgeräte stehen, die zwar dieselbe Nennfrequenz aufweisen wie der Router14, welcher Symbole überträgt bzw. empfängt, deren reale Frequenzen sich jedoch oft geringfügig davon unterscheiden. Es ist also eine frequenznahe Situation gegeben, und mit dieser Form der Taktgebung beim Symboltransfer sind alle Ports eines Routers14konfrontiert, ausser jene, die beim Duplexbetrieb direkt mit einer CPU12verbunden sind. Beim frequenznahen Betrieb können die Taktsignale (z. B. der an einem Ende zur Symbolübertragung verwendete Takt und der am anderen Ende zum Signalempfang verwendete Takt) langsam auseinanderdriften, wobei der eine sich schlussendlich um einen Taktzyklus gegenüber dem anderen verschiebt. Wenn dieser Fall eintritt, zeigen die beiden Zeiger (der Eingabe- und der Entnahme-Zeigerzähler128bzw.130) des TS-FIFOs102auf einen Symbol-Speicherort der Speicherwarteschlange126, der entweder um einen Symbol-Speicherort näher aneinander oder um einen Speicherort weiter voneinander entfernt liegt, je nachdem welche Einheit (Überträger oder Empfänger) über die schnellere Taktquelle verfügt. Um diese Taktverschiebung in den Griff zu bekommen, werden die beiden Zeiger in der Praxis in regelmässigen Abständen resynchronisiert.A router14often communicates with devices (e.g. other routers or I / O interfaces16) in other computers that are influenced by other clock devices that have the same nominal frequency as the router14, which transmits or receives symbols, the real frequencies of which, however, often differ slightly from them. So there is a near-frequency situation, and with this form of clocking during symbol transfer, all ports of a router are14faced, except those that directly with a CPU in duplex mode12are connected. In near-frequency operation, the clock signals (e.g. the clock used at one end for symbol transmission and the clock used at the other end for signal reception) can slowly drift apart, with one ultimately shifting by one clock cycle compared to the other. When this happens, the two pointers (the input and the removal pointer counter)128respectively.130) of the TS FIFO102to an icon storage queue location126which is either closer to each other by a symbol storage location or further apart from each other, depending on which unit (transmitter or receiver) has the faster clock source. In order to get this clock shift under control, the two hands are resynchronized in practice at regular intervals.

    Wenn die CPUs12gepaart sind und im Duplexbetrieb laufen, alle vier Schnittstelleneinheiten24im Gleichschritt betrieben werden, um unter anderem dieselben Daten zu übertragen und Daten im selben Takt zu empfangen (S_Tkt und Empf-Tkt), wird eine frequenzsynchronisierte Taktgebung benötigt und verwendet. Wenn die CPUs12im Simplexmodus betrieben werden, und jede unabhängig von der anderen arbeitet, genügt es, mit frequenznaher Taktgebung zu arbeiten.If the CPUs12are paired and run in duplex mode, all four interface units24To be operated in synchronism in order to transmit the same data and receive data in the same cycle (S_Tkt and receive-Tkt), frequency-synchronized clocking is required and used. If the CPUs12be operated in simplex mode, and each works independently of the other, it is sufficient to work with frequency-related clocking.

    Die Schnittstelleneinheit24empfängt ein SYNC TKT-Signal, welches in Kombination mit dem SYNC-Steuersymbol verwendet wird, um das Empf-Register124zu initialisieren und mit den übertragenden Router14zu synchronisieren. Sowohl für den frequenznahen als auch den frequenzsynchronisierten Taktbetrieb für Symbolübertragungen ist es vorzuziehen, wenn das TS-FIFO102xbei einem bekannten Zustand beginnt. Eingehende Symbole werden von den Speicher- und Verarbeitungseinheiten110des Paketempfängers96geprüft. Die Speicher- und Verarbeitungseinheiten suchen nach Steuersymbolen und verhalten sich diesen entsprechend. Das Festhaltenswerte dabei ist, dass wenn der Paketempfänger96ein SYNC-Befehlssymbol empfängt, dieses von der Speicher- und Verarbeitungseinheit110decodiert und erkannt wird. Die Erkennung des SYNC-Befehlssymbols durch die Speicher- und Verarbeitungseinheit110führt zur Aktivierung eines RESET-Signals. Das unter synchroner Steuerung durch das SYNC-Tkt-Signal generierte RESET-Signal wird dazu verwendet, die Eingangspufferspeicher (einschliesslich der Taktsynchronisierungs-Pufferspeicher) wieder auf vorgegebene Zustandswerte einzustellen und sie mit den Routern14zu synchronisieren.The interface unit24receives a SYNC TKT signal, which is used in combination with the SYNC control symbol, around the receive register124to initialize and with the transmitting router14to synchronize. For both near-frequency and frequency-synchronized clock operation for symbol transmissions, it is preferable if the TS FIFO102xstarts at a known state. Incoming symbols are from the storage and processing units110of the package recipient96checked. The storage and processing units look for control symbols and behave accordingly. The sticking point here is that when the package recipient96receives a SYNC command symbol, this from the storage and processing unit110is decoded and recognized. The recognition of the SYNC command symbol by the storage and processing unit110leads to the activation of a RESET signal. The RESET signal generated under synchronous control by the SYNC Tkt signal is used to reset the input buffer memory (including the clock synchronization buffer memory) to the specified status values and to reset it with the routers14to synchronize.

    Die Synchronisierung der TS-FIFOs102der Schnittstelleneinheiten24, sowie von jener eines oder beider Router14A,14Bwird im einzelnen weiter unten im Abschnitt über Synchronisation behandelt.The synchronization of the TS FIFOs102of the interface units24, as well as that of one or both routers14A.14Bis covered in more detail in the section on synchronization below.

    Paketüberträger: Package carriers:

    Jede Schnittstelleneinheit24hat die Aufgabe, jeweils nur von einem Port aus, dem X-Port oder dem Y-Port, der CPU12Übertragungen durchzuführen bzw. an diesem Port Daten zu empfangen. Wenn eine der Schnittstelleneinheiten24überträgt, besteht der Betrieb der anderen darin, die in Übertragung befindlichen Daten zu prüfen. Dies ist ein wichtiges Merkmal des Paketüberträgers, weil dadurch eine selbstprüfende Fehlererkennungs- und Fehlerbegrenzungsfähigkeit der CPU12geschaffen wird, und zwar selbst dann, wenn diese im Simplexbetrieb läuft.Every interface unit24has the task of only one port at a time, the X port or the Y port, the CPU12Carrying out transfers or receiving data at this port. If one of the interface units24transmits, the operation of the others is to check the data being transmitted. This is an important feature of the packet transporter because it enables the CPU to self-check for error detection and limitation12is created, even if it is running in simplex mode.

    Dieses Merkmal wird in8veranschaulicht, in welcher in abgekürzter Form die Paketüberträger94x,94yder jeweiligen X- und Y-Schnittstelleneinheiten24a,24bgezeigt werden. Beide Paketüberträger sind identisch aufgebaut, so dass die Besprechung des einen (Paketüberträger94x) auch auf den anderen (Paketüberträger94y) anwendbar ist, sofern nicht anders angegeben.This feature is in8thillustrates in which, in abbreviated form, the parcel carriers94x.94yof the respective X and Y interface units24a.24bto be shown. Both packet transmitters are constructed identically, so that the discussion of one (packet transmitter94x) also on the other (parcel carrier94y) is applicable unless otherwise stated.

    Wie8zeigt, beinhaltet der Paketüberträger94xeine Paketierlogik152welche von der BÜM88oder der ZVÜ90der zugeordneten Schnittstelleneinheit (hier die X-Schnittstelleneinheit24a) die zu übermittelnden Daten empfängt, und zwar in Doppelwortformat (64-Bit-Format). Die Paketierlogik152zwischenspeichert die Informationen bis diese bereit zur Übertragung aus dem X- oder Y-Port der CPU12sind, führt eine Byte-Steueroperation durch, um die Daten von dem Doppelwortformat in ein Byteformat zu übersetzen, setzt die Bytes in Paketform zusammen und gibt sie an einen der X- und Y-Codierer150x,150yweiter. Nur einer der Codierer150empfängt die Bytes, je nachdem, welcher Port (X oder Y) das entstehende Nachrichtenpaket überträgt.How8thshows, includes the parcel carrier94xa packaging logic152which from the BÜM88or the ZVÜ90the assigned interface unit (here the X interface unit24a) receives the data to be transmitted, in double word format (64-bit format). The packaging logic152temporarily stores the information until it is ready for transmission from the X or Y port of the CPU12performs a byte control operation to translate the data from the double word format to a byte format, assembles the bytes in packet form, and passes them to one of the X and Y encoders150 views.150yfurther. Just one of the encoders150receives the bytes depending on which port (X or Y) transmits the resulting message packet.

    Jener X- oder Y-Codierer150, der die 8-Bit-Bytes empfängt, wird betrieben, um sie in einem 9-Bit-Befehls/Datensymbolformat zu codieren, wie in9veranschaulicht. Die Codierung der drei linkerhand angeordneten Bits des sich ergebenden 9-Bit-Symbols wird in den drei linken Spalten der untenstehenden Tabelle 1 gezeigt TABELLE 1 8B-9B Symbolcodierung

    Setup wurde aufgrund einer getakteten Verbindung nicht abgeschlossen Windows 10

    That X or Y encoder150which receives the 8-bit bytes is operated to encode them in a 9-bit command / data symbol format, as in9illustrated. The coding of the three left hand bits of the resulting 9-bit symbol is shown in the three left columns of Table 1 below. TABLE 1 8B-9B symbol coding

    Setup wurde aufgrund einer getakteten Verbindung nicht abgeschlossen Windows 10

    Wie Tabelle 1 bei gemeinsamer Betrachtung mit9veranschaulicht, sind die höherwertigen drei Bits (CDC, CDB, CDA) der 9 Bits entsprechend codiert, um anzuzeigen, ob die restlichen, niederwertigen sechs Bits des Symbols (CD5, CD4, CD3, CD2, CD1 und CDO) als (1) Befehlsinformation oder (2) Daten zu interpretieren sind. Wenn somit die drei bedeutendsten Bits, CDC, CDB und CDA alle Null sind, so ist das 9-Bit-Symbol dadurch als Befehlssymbol gekennzeichnet, wobei die verbleibenden sechs Bits den Befehl bilden. So würde zum Beispiel ein Befehls/Datensymbol der Form "OOOcccccc" als Befehl interpretiert, wobei die "c"-Bits den Befehl darstellt.Like table 1 when viewed together with9the higher three bits (CDC, CDB, CDA) of the 9 bits are encoded to indicate whether the remaining lower six bits of the symbol (CD5, CD4, CD3, CD2, CD1 and CDO) are (1) command information or (2) data are to be interpreted. Thus, if the three most significant bits, CDC, CDB and CDA are all zero, the 9-bit symbol is identified as an instruction symbol, with the remaining six bits forming the instruction. For example, a command / data symbol of the form "OOOcccccc" would be interpreted as a command, the "c" bits representing the command.

    Wenn die drei bedeutendsten Bits CDC, CDB und CDA des Befehls-/Datensymbols andererseits irgendeinen der vier charakteristischen Datenwerte annehmen, so werden sie als zwei Datenbits interpretiert, welche mit den verbleibenden sechs Datenbits zu einem Datenbyte zu kombinieren sind. Bei den verbleibenden sechs handelt es ich um die am wenigsten bedeutenden Bits des Datenbytes. Somit würde ein Befehls/Datensymbol, das sich wie folgt darstellt "110001101" als Datensymbol interpretiert und in ein Datenbyte der Form "10001101" übersetzt werden. Ein Fehler liegt vor, wenn die drei bedeutendsten Bits eine der Formen 001, 010 und 100 annehmen.If the three most significant bits Command / data symbol CDC, CDB and CDA on the other hand any of the four characteristic data values, they are called interpreted two data bits, which with the remaining six Data bits are to be combined into one data byte. With the remaining six I am the least significant bits of the data byte. So would a command / data symbol that looks like this "110001101" interpreted as a data symbol and translated into a data byte of the form "10001101" become. An error exists if the three most significant bits have one of the forms 001, 010 and 100.

    Die drei Fehlercodes, die die Datensymbole von den Befehlssymbolen trennen, bilden einen minimalen Hamming-Abstand von zwei zwischen Befehlen und Daten. So ist es nicht möglich, dass ein Einzelbitfehler Daten in ein Befehlssymbol verwandelt oder umgekehrt.The three error codes that represent the data symbols separate from the command symbols, form a minimum Hamming distance of two between commands and data. So it is not possible for a single bit data error transformed into a command symbol or vice versa.

    Ausserdem werden die sechs Bits niedrigeren Ranges eines Befehlssymbols (im Gegensatz zu einem Datensymbol) in dem bekannten "drei von sechs"-Code codiert, in welchem die sechs Bitpositionen, die den Befehl enthalten, immer genau drei "EINSEN" enthalten. Alle eindirektionalen Fehler, sowie jede ungerade Zahl von Fehlern in einem Befehlssymbol wird so erkannt. Fehler in den Daten werden durch Paket-CRC-Prüfungen erkannt, ebenso wie Fehler, welche Befehlssymbole in Daten umwandeln. Fehler, welche Daten in Befehlssymbole umwandeln, werden durch CRC und/oder Protokollverletzungsfehler erkannt, wie weiter unten noch genauer beschrieben wird.In addition, the six bits become lower Ranks of a command symbol (as opposed to a data symbol) encoded in the well-known "three of six" code, in which the six Bit positions that contain the command are always exactly three "ONE" contain. All unidirectional errors as well as any odd number errors in a command symbol are thus recognized. Error in the Data is recognized through packet CRC checks, as well as errors that convert command symbols to data. Error, which data convert into command symbols are caused by CRC and / or protocol violation errors recognized, as will be described in more detail below.

    Welcher der X- oder Y- Codierer150die Informationsbytes von der Paketierlogik152empfängt, hängt von der in der zu übertragenden Information enthaltenen Bstimmungsort-ID ab, in der auch das Pfad-Bit (P) beinhaltet ist, das den einzuschlagenden Pfad angibt. Angenommen zum Beispiel die in der Information enthaltene Bestimmungsort-ID legt nahe, dass diese über den X-Port der CPU12gesendet werden sollte. Die Paketierlogik152(der beiden Paketüberträger94x,94y) sendet diese Information an den X-Codierer150x; zur selben Zeit sendet sie LEERLAUF-Symbole an den Y-Codierer150y. Es werden kontinuierlich Symbole von dem X- und dem Y-Port gesendet: dabei handelt es sich entweder um Symbole, die ein gerade in Übertragung befindliches Nachrichtenpaket bilden, oder um LEERLAUF-Symbole, oder um andere Befehlssymbole, die zur Durchführung von Steuerfunktionen verwendet werden.Which of the X or Y encoders150the information bytes from the packaging logic152depends on the destination ID contained in the information to be transmitted, which also contains the path bit (P) which indicates the path to be taken. For example, suppose the destination ID contained in the information suggests that this is via the X-port of the CPU12should be sent. The packaging logic152(of the two parcel carriers94x.94y) sends this information to the X encoder150 views; at the same time it sends IDLE symbols to the Y encoder150y, Symbols are continuously sent from the X and Y ports: these are either symbols that form a message packet that is currently being transmitted, or IDLE symbols, or other command symbols that are used to perform control functions ,

    Die Ausgabesignale der X- und Y-Codierer150werden an eine Multiplexanordnung angelegt, welche die Multiplexer154,156beinhaltet. Der Ausgang des Multiplexers154ist mit dem X-Port verbunden. (Die Schnittstelleneinheit24bverbindet den Ausgang des Multiplexers154mit dem Y-Port.) Der Multiplexer156ist mit der Prüflogik160verbunden, welche über das Quervernetzungs-Link34yauch die Ausgangssignale des mit dem Y-Port verbundenen Multiplexers154empfängt. Es gilt zu beachten, dass die Ausgangssignale der Multiplexers154, der mit dem X-Port und dem TNet Link30xverbunden ist, über das Quervernetzungs-Link34xauch an die Prüflogik160des Paketüberträgers94y(der Schnittstelleneinheit24b) gekoppelt ist.The output signals of the X and Y encoders150are applied to a multiplex arrangement, which the multiplexers154.156includes. The output of the multiplexer154is connected to the X-Port. (The interface unit24bconnects the output of the multiplexer154with the Y port.) The multiplexer156is with the test logic160connected, which via the cross-link34yalso the output signals of the multiplexer connected to the Y port154receives. It should be noted that the output signals of the multiplexers154with the X-Port and the TNet Link30 xis connected via the cross-link34 xalso to the test logic160of the parcel carrier94y(the interface unit24b) is coupled.

    Ein Wahleingang (W) der Multiplexer empfängt ein 1 Bit Ausgabesignal von einer X/Y-Stufe des Konfigurationsregisters162. Das Konfigurationsregister162ist für den IP 18 über einen in der Schnittstelleneinheit24ausgebildeten OLZP (nicht dargestellt) zugänglich und wird mit Informationen beschrieben, durch welche die Schnittstelleneinheiten24unter anderem "personalisiert" werden. Hier konfiguriert die X/Y-Stufe des Konfigurationsregisters162den Paketüberträger94xder X-Schnittstelleneinheit24aentsprechend, so dass dieser die Ausgabesignale des X-Codierers150xan den X-Port übermittelt; die Ausgabesignale des Y-Codierers150ywerden ebenfalls an die Prüflogik160gekoppelt. In ähnlicher Weise wird die X/Y-Stufe des Konfigurationsregisters162des Y-Paketüberträgers94y(der Y-Schnittstelle24b) in einen Zustand versetzt, der den Multiplexer154dazu veranlasst, die Ausgabesignale des Y-Codierers150yzur Übertragung an den Y-Port auszuwählen; und die Ausgabesignale des X-Codierers150xzur Koppelung an die Prüflogik160des Paketüberträgers160auszuwählen, wo sie mit den Übertragungen des X-Ports verglichen werden.A selection input (W) of the multiplexers receives a 1 bit output signal from an X / Y stage of the configuration register162, The configuration register162is for the IP 18 via one in the interface unit24trained OLZP (not shown) accessible and is described with information through which the interface units24among other things, be "personalized". The X / Y level of the configuration register is configured here162the parcel carrier94xthe X interface unit24aaccordingly, so that this is the output signals of the X encoder150 viewstransmitted to the X-Port; the output signals of the Y encoder150yare also sent to the test logic160coupled. Similarly, the X / Y level of the configuration register162of the Y packet carrier94y(the Y interface24b) put in a state that the multiplexer154causes the output signals of the Y encoder150yselect for transmission to the Y port; and the output signals of the X encoder150 viewsfor coupling to the test logic160of the parcel carrier160select where to compare them with the X port transmissions.

    Kurz gesagt, läuft die Operation der Nachrichtenpaketübertragung von dem X-Port bzw. dem Y-Port wie folgt ab. Zu Beginn, wenn wie bereits angedeutet noch keine Nachrichtenpaketübertragungen im Gange sind, übertragen der X- und der Y-Codierer beide -BYTE-Symbole oder andere Symbole, die zur Durchführung von Steuerfunktionen verwendet werden. Wenn die X/Y-Stufen der Konfigurationsregister162beider Paketüberträger94wie oben angegeben eingestellt sind (d. h. wenn der X-Codierer150xdes Paketüberträgers94xüber den Multiplexer154mit dem Ausgangsport (X) verbunden ist; und der Y-Codierer150ydes Paketüberträgers94yüber den Multiplexer154mit dem Ausgangsport (Y) verbunden ist), werden von dem X-Codierer150x(des Paketüberträgers94x) LEERLAUF-Symbole von dem X-Port der CPU12Aübertragen, und werden von dem Y-Codierer150y(des Paketüberträgers94y) erzeugte LEERLAUF-Symbole von dem Y-Port übertragen. Zur selben Zeit werden die X-Port-Übertragungen durch das Quervernetzungs-Zink34xan die Prüflogik160des Paketüberträgers94ygekoppelt und mit jenen gegengeprüft, die von dem X-Codierer150xdieses Paketüberträgers erzeugt werden. In derselben Weise werden die von dem Y-Port abgehenden LEERLAUF-Symbole von dem Paketüberträger94yaus an die Prüflogik160des Paketüberträgers94xgekoppelt, wo sie mit den von dem Y-Codierer150ydes Paketüberträgers94xerzeugten Signalen gegengeprüft werden.In short, the operation of message packet transmission from the X port and the Y port is as follows. Initially, when, as already indicated, no packet transfers are in progress, the X and Y encoders both transmit -BYTE symbols or other symbols that are used to perform control functions. If the X / Y levels of the configuration register162both parcel carriers94are set as indicated above (ie when the X encoder150 viewsof the parcel carrier94xvia the multiplexer154connected to the output port (X); and the Y encoder150yof the parcel carrier94yvia the multiplexer154connected to the output port (Y)) are from the X encoder150 views(of the parcel carrier94x) IDLE symbols from the X-port of the CPU12Aand are transmitted from the Y encoder150y(of the parcel carrier94y) generated IDLE symbols from the Y port. At the same time, the X-Port transmissions are through the cross-linking zinc34xto the test logic160of the parcel carrier94ycoupled and cross-checked with those by the X encoder150 viewsof this packet transmitter are generated. In the same way, the IDLE symbols coming from the Y port become from the packet transmitter94yoff to the test logic160of the parcel carrier94xwhere it is coupled to that of the Y encoder150yof the parcel carrier94xgenerated signals are cross-checked.

    Aus diesen Ausführungen wird eine wichtige Tatsache klar: die korrekte Funktionsweise der Paketüberträger kann auch dann überwacht werden, wenn diese nicht gerade dabei sind, Nachrichtenpakete zu übertragen. Im Gegenteil, selbst wenn kein Nachrichtenpaketverkehr vorhanden ist, wird die Funktion der beiden Paketschnittstellen94(und damit auch der Schnittstelleneinheiten24, denen sie zugeordnet sind) kontinuierlich überwacht. Sollte eine der Prüflogiken ein Nichtübereinstimmen bei den an sie angelegten Signalströmen erkennen, so wird ein FEHLER-Signal ausgegeben, welches das Freigeben eines internen Interrupts zur Folge hat, mit dem der Prozessor20aufgefordert wird, entsprechende Schritte zu setzen.An important fact becomes clear from these statements: the correct functioning of the packet transmitters can be monitored even when they are not in the process of transmitting message packets. On the contrary, even if there is no message packet traffic, the function of the two packet interfaces94(and thus also the interface units24to which they are assigned) continuously monitored. If one of the test logics detects a mismatch in the signal streams applied to it, an ERROR signal is output, which results in the release of an internal interrupt with which the processor20is asked to take appropriate steps.

    Der Nachrichtenpaketverkehr funktioniert in derselben Weise. Fürs erste sei angenommen, dass die Paketierlogik152des Paketüberträgers94Informationen zur Übertragung empfängt und dass die Bestimmungsort-ID angibt, dass dafür der X-Port zu verwenden ist. Die Paketierlogik leitet die Information byteweise an den X-Codierer150xbeider Schnittstelleneinheiten96weiter, welcher jedes Byte in die codierte 9-Bit-Form übersetzt. Die Ausgangsinformation des X-Codierers150xdes Paketüberträgers94xwird von dem Multiplexer154an den X-Port und an das TNet-Link30x, sowie an die Prüflogik160des Paketüberträgers94yübermittelt. In der Zwischenzeit wird die Ausgangsinformation des X-Codierers des Paketüberträgers94yvon dem Multiplexer156lediglich an die Prüflogik160gekoppelt, wo sie mit jener, die von dem Paketüberträger94xkommt, gegengeprüft wird. Auch hier wieder wird die Funktion der Schnittstelleneinheiten24a,24bund die in ihnen enthaltenen Paketüberträger auf Fehler geprüft.Message packet traffic works in the same way. For now, let's assume that the packaging logic152of the parcel carrier94Receives information about the transmission and that the determ Location ID indicates that the X port is to be used for this. The packaging logic passes the information byte by byte to the X encoder150 viewsboth interface units96which translates each byte into the encoded 9-bit form. The output information of the X encoder150 viewsof the parcel carrier94xis from the multiplexer154to the X-Port and to the TNet-Link30x, as well as the test logic160of the parcel carrier94ytransmitted. In the meantime, the output information of the X encoder of the packet transmitter94yfrom the multiplexer156only to the test logic160where they are coupled with those from the packet transmitter94xcomes, is cross-checked. Again, the function of the interface units24a.24band checked the package carriers contained in them for errors.

    In derselben Art werden, wie nun ersichtlich, die vom Y-Port abgehenden Nachrichtenpaketübertragungen überwacht.In the same way as now can be seen that monitors the outbound message packet transmissions.

    Unter erneuter Bezugnahme auf5sei hier festgehalten, dass wenn es sich bei dem abgehenden Nachrichtenpaket um eine prozessorinitiierte Transaktion handelt (z. B. um eine Leseanforderung), die Prozessoren20erwarten, dass ein Nachrichtenpaket als Antwort rückgesendet wird. Wenn die BÜM88somit die zu sendenden Daten von dem Speicher28zu dem Paketüberträger94überträgt, stellt sie einen in der Anforderungstransaktionslogik100enthaltenen Anforderungs-Zählerzeitgeber (nicht dargestellt) entsprechend ein, so dass dieser den Beginn einer Zeitüberwachungsdauer markiert, innerhalb derer eine Antwort empfangen werden sollte. Sofern eine Antwort auf die abgehende Anforderung empfangen wird, ermittelt eine Antwortabgleichschaltung des Paketempfängers96, dass es sich bei dem Nachrichtenpaket um eine Antwort handelt und setzt den Anforderungs-Zählerzeitgeber zurück. Es ist nur ein Rnforderungs-Zählerzeitgeber (nicht dargestellt) für jede Anzahl ausstehender Anforderungen an einen Bestimmungsort vorhanden. Jedes Mal wenn die BÜM88die Übertragung einer Transaktion initiiert, wird der Zählerzeitgeber zurückgesetzt.Referring again to5it should be noted here that if the outgoing message packet is a processor-initiated transaction (e.g. a read request), the processors20expect a message packet to be returned as a response. If the BÜM88hence the data to be sent from the memory28to the parcel carrier94transfers, it puts one in the request transaction logic100contained request counter timer (not shown) accordingly, so that this marks the beginning of a time monitoring period within which a response should be received. If a response to the outgoing request is received, a response matching circuit of the packet receiver determines96that the message packet is a response and resets the request counter timer. There is only one request counter timer (not shown) for each number of pending requests to a destination. Every time the BÜM88initiated the transmission of a transaction, the counter timer is reset.

    Wenn andererseits die Antwort nicht innerhalb der dafür eingeräumten Zeit empfangen wird, so gibt der Anforderungs-Zählerzeitgeber ein Zeitablauffehler-Signal an die Interrupt-Logik (14A) aus, um damit die Prozessoren20über die nicht eingegangene Antwort auf eine bestimmte Transaktion (z. B. eine Leseanforderung) zu benachrichtigen. Sollen mehrere ausständige Anforderungen unterstützt werden, so bestünde die Möglichkeit, mehrere Anforderungs-Zählerzeitgeber – einen pro ausständiger Anforderung – zu verwenden.On the other hand, if the response is not received within the allotted time, the request counter timer issues a timing error signal to the interrupt logic (14A) to processors20to notify about the non-received response to a particular transaction (e.g. a read request). If several pending requests are to be supported, there is the option of using multiple request counter timers - one for each pending request.

    Ein von aussen ergehender Zugriff auf den Speicher28der CPU12Aist zwar vorgesehen, dieser ist jedoch mit einer Schutzfunktion versehen. Extern generierte Anforderungen nach Zugriff auf den Speicher28werden nur dann gewährt und genehmigt, wenn sie gemäss gewisser Kriterien autorisiert sind, wobei hier die Identifizierung des Ursprungs der Anforderung, der angeforderte Zugriffstyp (z. B. Lese- oder Schreibzugriff), der Speicherbereich auf den zugegriffen werden soll, zu erwähnen sind, um nur einige zu nennen. Der Speicherbereich der Speichereinheit28, auf den zugegriffen werden soll, ist daher auch in dem Nachrichtenpaket mittels virtueller bzw. E/A-Speicheradresse angegeben, (wodurch die Anwendung virtueller Speicherverfahren ermöglicht wird). Es folgt alsdann die Ermittlung der Autorisierung, und falls erlaubt, der Zugriff, der es erforderlich macht, dass diese virtuellen Adressen in physikalische Adressen des Speichers28übersetzt werden. Schliesslich werden Interrupts, welche von ausserhalb der CPU12Agelegenen Einheiten bzw. Elementen generiert worden sind, auf dem Weg über die Nachrichtenpakete übertragen, um die Prozessoren20zu unterbrechen, wobei die Interrupts ebenfalls anlässlich ihrer Inempfangnahme in den Speicher28geschrieben werden. Alle diese Vorgänge werden durch die Interrupt-Logik und die ZVÜ-Logik86,90abgewickelt.An external access to the memory28the CPU12Ais provided, but this is provided with a protective function. Externally generated requests for memory access28are only granted and approved if they are authorized according to certain criteria, including the identification of the origin of the request, the type of access requested (e.g. read or write access), the memory area to be accessed, to name just a few. The storage area of the storage unit28that is to be accessed is therefore also specified in the message packet by means of a virtual or I / O memory address (which enables the use of virtual memory methods). The authorization then follows, and if allowed, the access that requires these virtual addresses to be physical addresses of the memory28to be translated. Finally, interrupts that come from outside the CPU12Alocated units or elements have been generated on the way via the message packets transmitted to the processors20to interrupt, the interrupts also being received in memory28to be written. All of these processes are performed by the interrupt logic and the ZVÜ logic86.90settled.

    Die ZVÜ-Logikeinheit90verwendet eine Tabelle (aufrechterhalten in dem Speicher28durch den Prozessor20), welche für jede potentielle externe Quelle mit Zugriffsrecht auf den Speicher28entsprechende ZVÜ-Einträge enthält. Jeder ZVÜ-Eintrag bezeichnet ein spezifisches Ursprungselement bzw. eine Ursprungseinheit und die bestimmte Speicherseite oder den Speicherseitenabschnitt, auf die bzw. auf den zugegriffen werden darf. Soll von einem ausserhalb der CPU12gelegenen Element auf mehr als eine Seite zugegriffen werden dürfen, so muss für jede einzelne Seite, auf die von dem Element zugegriffen werden dürfen soll, ein eigener ZVÜ-Eintrag vorhanden sein. Ausserdem enthält jeder ZVÜ-Eintrag Informationen betreffend den Typ oder die Typen von Speicheroperationen (z. B. Schreiboperation, Leseoperation, oder beides), welche erlaubt sind. Für "erwartete" Speicherzugriffe wird die ZVÜ-Tabelle nicht benötigt, und somit auch nicht verwendet. Erwartete Speicherzugriffe sind solche, die von der CPU12(d. h. den Prozessoren20) eingeleitet werden, wie zum Beispiel eine Leseanforderung für Informationen seitens eines E/A-Geräts. Diese letzteren Speicherzugriffe werden über eine Transaktionsfolgenummer (TFN) abgewickelt, welche jeder prozessorinitiierten Anforderung zugewiesen wird. Annähernd zeitgleich zur Generierung der Leseanforderung bestimmen die Prozessoren20einen Speicherbereich für die als Antwort auf die Leseanforderung zurückerwarteten Daten. Die Adresse für diesen Bereich wird in einer (nicht dargestellten) Registerdatei gespeichert, die zum Zeitpunkt des Sendens der Leseanforderung von der Anforderungstransaktionslogik100fortgeschrieben wird, wobei die TFN als Hinweismarke für die Adresse innerhalb der Registerdatei verwendet wird. Somit kommt die Antwort auf die Leseanforderung mit den Daten zurück, und verwendet die TFN, die sie trägt, um die Adresse des Pufferbereichs des Speichers zu erhalten, an der die Retourdaten zu speichern sind.The ZVÜ logic unit90uses a table (maintained in memory28through the processor20), which for each potential external source with access rights to the memory28contains corresponding ZVÜ entries. Each ZVÜ entry designates a specific source element or unit and the specific memory page or section of the memory page that can be accessed. Should be from outside the CPU12located element can be accessed on more than one page, there must be a separate ZVÜ entry for each individual page that is to be accessed by the element. In addition, each ZVÜ entry contains information regarding the type or types of storage operations (e.g. write operation, read operation, or both) that are permitted. The ZVÜ table is not required for "expected" memory access and is therefore not used. Expected memory accesses are those from the CPU12(ie the processors20), such as a read request for information from an I / O device. These latter memory accesses are handled via a transaction sequence number (TFN), which is assigned to each processor-initiated request. The processors determine at approximately the same time as the generation of the read request20a storage area for the data expected in response to the read request. The address for this area is stored in a register file (not shown) at the time of sending the read request from the request transaction logic100is updated, the TFN being used as a reference mark for the address within the register file. Thus, the response to the read request comes back with the data and uses the TFN that carries it to obtain the address of the buffer area of the memory where the return data is to be stored.

    Eine eingehendere Abhandlung der Zugriffsvalidierung erfolgt im dem folgenden Abschnitt. Die Speichermatrix28ist nämlich in zwei Hälften geteilt, die jeweils von den Speichersteuerungen26a,26bverwaltet werden, von denen jede eine Hälfte von jedem 64-Bit-Doppelwort verwaltet, das in den Speicher28geschrieben oder aus diesem ausgelesen wird. Die Speichersteuerungen26aund26bsind ihrerseits jeweils an die Speicherschnittstellen70jeder Schnittstelleneinheit24a,24bgekoppelt. Die 64-Bit-Doppelwörter werden entsprechend in den Speicher28geschrieben, so dass die oberen 32 Bits (sowie der ihnen zugeordnete FKC) von der "oberen" SpSt26aund die unteren 32 Bits (sowie der ihnen zugeordnete FKC) von der "unteren" SpSt26bgeschrieben werden. Die Speichersteuerungen26a,26bempfangen jeweils 32 Datenbits und 4 FKC-Prüfbits von den Speicherschnittstellen70(70a,70b) einer jeden der Schnittstelleneinheiten24a,24b(5).A more detailed discussion of access validation is given in the following section. The Spei chermatrix28is namely divided in half, each by the memory controllers26a.26bare managed, each managing one half of each 64-bit double word that is in memory28is written or read from it. The memory controls26aand26bare in turn each at the memory interfaces70every interface unit24a.24bcoupled. The 64-bit double words are stored in memory accordingly28written so that the upper 32 bits (as well as the FKC assigned to them) from the "upper" SpSt26aand the lower 32 bits (as well as the FKC assigned to them) from the "lower" SpSt26bto be written. The memory controls26a.26beach receive 32 data bits and 4 FKC check bits from the memory interfaces70(70a.70b) of each of the interface units24a.24b(5).

    Unter Bezugnahme auf10, empfängt jede Speicheschnittstelle70entweder über den von der Prozessoreinheit60kommenden Bus82oder über den von der ZVÜ-Logik90kommenden Bus83(siehe5) der ihr zugeordneten Schnittstelleneinheit24einen Datenumfang von 64 Bits, die in den Speicher zu schreiben sind. Die Busse82und83werden an einen Multiplexer (MUX)84angelegt, der auswählt welcher davon an den SpSt-A/D-Bus25zu koppeln ist.With reference to10, receives every memory interface70either via that of the processor unit60coming bus82or via the ZVÜ logic90coming bus83(please refer5) the interface unit assigned to it24a data volume of 64 bits to be written into the memory. The buses82and83are connected to a multiplexer (MUX)84which selects which of them on the SpSt-A / D bus25is to be coupled.

    Obwohl jede Speicherschnittstelle70a,70bdieselben, in den Speicher zu schreibenden 64 Bit in ihrer Gesamtheit empfängt, überträgt jede nur eine Hälfte dieser 64 Datenbits (und vier der acht FKC-Prüfbits, die von jeder erzeugt werden) an die Speichersteuerungen26a,26b. Die 32 Bits (und 4 der 8 von der FKC-Logik85erzeugten FKC-Bits) die nicht zur Ansteuerung der Speichersteuerungen26verwendet werden, werden von jeder Speicherschnittstelle70zum Zweck der wechselseitigen Gegenprüfung an die jeweils andere gekoppelt. So steuert zum Beispiel die Speicherschnittstelle70a(der Schnittstelleneinheit24a) die SpSt26anur mit den "oberen" 32 Bits der 64 Datenbits (und mit 4 Bits des 8-Bit-FKC-Prüfworts) an. Zur selben Zeit empfängt die Speicherschnittstelle70adie "unteren" 32 Datenbits von der ihr entsprechenden Speicherschnittstelle70bund vergleicht diese unter Verwendung der Vergleichslogik81mit ihren eigenen unteren 32 Bits. Bei Erkennung einer Nichtübereinstimmung wird ein FEHLER-Signal ausgegeben.Although every storage interface70a.70breceiving the same 64 bits to be written to memory in its entirety, each transfers only half of these 64 data bits (and four of the eight FKC check bits each generated) to the memory controllers26a.26b, The 32 bits (and 4 of the 8 from the FKC logic85generated FKC bits) that are not used to control the memory controls26are used by each memory interface70coupled to each other for cross-checking purposes. For example, it controls the memory interface70a(the interface unit24a) the SpSt26aonly with the "upper" 32 bits of the 64 data bits (and with 4 bits of the 8-bit FKC test word). At the same time, the memory interface is receiving70athe "lower" 32 data bits from the corresponding memory interface70band compares them using the comparison logic81with their own lower 32 bits. If a mismatch is detected, an ERROR signal is issued.

    In ähnlicher Weise wird der Partner-Speicherschnittstelle70bein in den Speicher28zu schreibendes 64-Bit-Doppelwort übermittelt, doch nur die unteren 32 Bits (und 4 Bits der generierten FKC-Prüfbits) werden verwendet. Die Speicherschnittstelle empfängt die oberen 32 Bits von der Speicherschnittstelle70aund vergleicht sie an der Vergleichslogik81mit ihren eigenen oberen 32 Bits, wobei bei Nichtübereinstimmen der Daten ein FEHLER-Signal ausgegeben wird.Similarly, the partner storage interface70bone in memory2864-bit double word to be written transmitted, but only the lower 32 bits (and 4 bits of the generated FKC check bits) are used. The memory interface receives the upper 32 bits from the memory interface70aand compares them against the comparison logic81with their own upper 32 bits, whereby an ERROR signal is output if the data do not match.

    Eine zusätzliche Fehlerprüfung wird bei Leseoperationen durch FKC-Prüfschaltungen85einer jeden Speicherschnittstelle70vorgenommen. Jedes von der SpSt26rückübermittelte 64-Bit-Doppelwort wird von beiden Speicherschnittstellen70gemeinsam mit 8 FKC-Prüfbits empfangen. Die Daten und FKC-Prüfbits werden an die FKC-Logik85einer jeden Speicherschnittstelle70angelegt, wodurch ein Syndrom zur herkömmlichen Integritätsprüfung der Daten aufgebaut wird. Wird ein Einzelbitfehler erkannt, führt die FKC-Logik85eine Korrektur durch; wird ein unkorrigierbarer Fehler erkannt, so gibt die FKC-Logik ein Fehlersignal aus (nicht dargestellt), das dazu führt, dass ein Status des Interrupt-Registers280gesetzt wird (18), wodurch laufende Operationen eingefroren werden.An additional error check is carried out during read operations by FKC test circuits85any storage interface70performed. Each of the SpSt2664-bit double word is returned by both memory interfaces70received together with 8 FKC check bits. The data and FKC check bits are sent to the FKC logic85any storage interface70which creates a syndrome for traditional data integrity checking. If a single bit error is detected, the FKC logic leads85a correction by; If an uncorrectable error is detected, the FKC logic outputs an error signal (not shown), which leads to a status of the interrupt register280is set (18), which freezes ongoing operations.

    Die spezielle FKC-Prüfung, die von jeder FKC-Logik85einer jeden Speicherschnittstelle durchgeführt wird, verwendet 8 Prüfbits für Einzelbitfehlerkorrektur, Doppelbitfehlererkennung und Syndrombitfehlererkennung für ein Feld mit einer Grösse von bis zu 112 Bit. Der Code ist ein ungerader Spaltengewichtungscode, was bedeutet, dass jeder Fehler zu einer ungeraden Anzahl von Syndrombits führt. Von den 112 möglichen Bits sind 64 Datenbits und 8 Prüfbits, wobei 40 Bits ungenutzt bleiben.The special FKC test by every FKC logic85of each memory interface, uses 8 check bits for single bit error correction, double bit error detection and syndrome bit error detection for a field up to 112 bits in size. The code is an odd column weight code, which means that each error results in an odd number of syndrome bits. Of the 112 possible bits, 64 are data bits and 8 are test bits, with 40 bits remaining unused.

    Zugriffsvalidierung:Access Validation:

    Wie bereits angesprochen, können ausserhalb der CPU12Agelegene Komponenten des Verarbeitungssystems10(z. B. Einrichtungen der E/A-Paketschnittstellen 16, oder die CPU12B) direkten Zugriff auf den Speicher28haben, müssen dazu jedoch speziell qualifiziert sein. Die durch die ZVÜ-Logik90der Schnittstelleneinheiten24geschaffene Zugriffsvalidierung ist dazu da, um den Inhalt des Speichers28vor Zerstörung durch irrtümliches bzw. unbeabsichtigtes Überschreiben von guten Daten durch andere Daten zu schützen, die nicht in diese Speicherorte geschrieben werden sollten In ähnlicher Weise bietet die Zugriffsvalidierung auch einen Schutz gegen einen Zugriff, der unbeabsichtigterweise die falschen Speicherorte ausliest und dadurch falsche Daten an die Einheit oder das Systemelement liefert, von der/dem die Lesedaten angefordert wurden. Aus diesen und ähnlichen Gründen wird ein Verfahren zur Zugriffsvalidierung geschaffen, um zu gewährleisten, dass ein Speicherzugriff ordnungsgemäss erfolgt, d. h. dass das richtige Gerät die richtigen Speicherorte beschreibt bzw. ausliest. Wenn eine eingehende Speicheranforderung (d. h. eine Lese- oder Schreiboperation) validiert wird, wird die Adresse des Speicherortes, welche auf dem Adressfeld des Nachrichtenpakets, mit dem die Anforderung übertragen wird, aufscheint, von der ZVÜ-Logik in eine Speicheradresse übersetzt.As already mentioned, outside of the CPU12Alocated components of the processing system10(e.g., I / O packet interface 16 facilities, or the CPU12B) direct access to memory28have to be specially qualified for this. That through the ZVÜ logic90of the interface units24Access validation created is there to the content of the memory28Protect against destruction by erroneous or unintentional overwriting of good data by other data that should not be written to these storage locations.Access validation similarly offers protection against access that unintentionally reads the wrong storage locations and thereby incorrect data to the Unit or the system element from which the read data was requested. For these and similar reasons, an access validation method is created to ensure that memory access is performed properly, that is, that the correct device describes or reads the correct memory locations. When an incoming storage request (ie, a read or write operation) is validated, the address of the storage location that appears on the address field of the message packet with which the request is transmitted is translated into a storage address by the ZVÜ logic.

    Zugriffe auf den Speicher28werden von der ZVÜ-Logik90einer jeden Schnittstelleneinheit24(5) nach der Durchführung aller sechs der folgenden Prüfungen validiert: es muss gewährleistet sein, (1) dass der CRC des Nachrichtenpakets, mit dem die Anforderung übertragen wird, fehlerfrei ist, (2) dass der in dem Nachrichtenpaket angegebene Bestimmungsort (z. B. die CPU12A) jener des Empfängers ist, (3) dass das in dem Nachrichtenpaket angegebene Ursprungselement der Anforderung ein korrektes Ursprungselement ist, (4) dass der angeforderte Zugriffstyp ein für das Ursprungselement der Anforderung erlaubter Zugriffstyp ist, (5) dass der Zugriff auf den Speicherort des Speichers28an welchem der Zugriff begehrt wird, für das jeweilige Ursprungselement erlaubt ist, und (6) dass die Übertragungsgrösse für den Zugriffs innerhalb von vorgegebenen Grenzen gelegen ist. Die erste Prüfung erfolgt beim Paketempfänger96durch die CRC-Prüflogik106, wie weiter oben beschrieben. Falls es sich herausstellt, dass das empfangene Nachrichtenpaket einen fehlerhaften CRC hat (oder wenn es mit einem Befehlssymbol "This Packet Bad" (TPB) (Paket schlecht) gekennzeichnet ist, siehe weiter unten) wird das Paket ausgeschieden und der Zugriff wird verweigert.Access to the memory28are from the ZVÜ logic90of each interface unit24(5) validated after performing all six of the following checks: it must be ensured (1) that the CRC of the message packet with which the request is transmitted is error-free, (2) that the after destination package specified destination (e.g. the CPU12A) that of the recipient, (3) that the originating element of the request specified in the message packet is a correct originating element, (4) that the requested access type is an access type permitted for the originating element of the request, (5) that the access to the storage location of the memory28at which access is requested, is permitted for the respective original element, and (6) that the transmission size for the access is within predetermined limits. The first check is carried out at the package recipient96through the CRC test logic106as described above. If it is found that the received message packet has a faulty CRC (or if it is marked with a "This Packet Bad" (TPB) command symbol, see below), the packet is dropped and access is denied.

    Die in dem Header des Nachrichtenpakets enthaltene Bestimmungsort-ID wird mit der dem empfangenden Element zugewiesenen Bestimmungsort-ID verglichen, um zu gewährleisten, dass der Bestimmungsort des Pakets korrekt ist (d. h. wenn das Paket von einer CPU empfangen wird, dass die richtige CPU12als Bestimmungsort angeführt ist). Ein Nichtübereinstimmen der Daten deutet darauf hin, dass das Paket in irgendeiner Weise fehlgeleitet worden ist, weshalb das Paket auch in diesem Fall ausgeschieden und der Speicherzugriff natürlich verweigert wird.The destination ID contained in the header of the message packet is compared to the destination ID assigned to the receiving element to ensure that the destination of the packet is correct (ie if the packet is received by a CPU that the correct CPU12as the destination). A mismatch in the data indicates that the packet has been misdirected in some way, which is why the packet is dropped in this case as well and of course memory access is denied.

    Die verbleibenden Prüfungen erfolgen insofern als im Speicher28ein Zugriffsvalidierungseintrag (ZVÜ) (13A) für jedes Systemelement aufbewahrt wird, dem zumindest in gewisser Form Zugriff auf den Speicher des Elements gewährt wird auf dessen Speicher gerade zugegriffen wird. Das Adressfeld des eingehenden Pakets wird als Hinweismarke auf den Speicherort verwendet, welcher den ZVÜ-Eintrag für das in der Ursprungsort-ID angegebene Systemelement enthält. Die ZVÜ-Logik verwendet die Validierungsinformation des ZVÜ-Eintrags, um zu ermitteln, welcher Zugriffstyp dem Ursprungselement des Nachrichtenpakets gestattet ist.The remaining checks are done as in memory28an access validation entry (ZVÜ) (13A) is kept for each system element that is granted access to the memory of the element, at least to some extent, the memory of which is currently being accessed. The address field of the incoming packet is used as a pointer to the storage location which contains the ZVÜ entry for the system element specified in the origin ID. The ZVÜ logic uses the validation information of the ZVÜ entry to determine which type of access is allowed to the originating element of the message packet.

    Somit wird das Ursprungsort-ID-Feld des empfangenen Nachrichtenpakets dazu verwendet, um zu bestimmen, ob der Ersteller des Pakets ein Zugriffsrecht auf den Speicher28der CPU12hat. Diese Prüfung bedingt das Vergleichen des Ursprungsort-ID-Feldes auf dem Paket-Header mit einem Abschnitt eines ZVÜ-Eintrags (Ursprungsort-ID), um zu bestimmen, ob dem bestimmten Ursprungselement Zugriff auf die Einrichtungen des bestimmten Empfängers gewährt werden soll.Thus, the originating ID field of the received message packet is used to determine whether the creator of the packet has an access right to the memory28the CPU12Has. This check involves comparing the origin ID field on the packet header with a portion of a ZVÜ entry (origin ID) to determine whether the particular origin element should be granted access to the particular recipient's facilities.

    Das Typ-Feld des Pakets, welches den gewünschten Zugriffstyp angibt (z. B. eine Speicherlese- oder -Schreiboperation), wird geprüft, um zu bestimmen, ob der begehrte Zugriffstyp für das von dem Nachrichtenpaket identifizierte Ursprungselement erlaubt ist, oder ob das Paket eine unaufgefordert eingehende Antwort ist (und als solche als Fehler gelöscht wird).The type field of the package, which the wished Indicates access type (e.g. a memory read or write operation), is checked, to determine whether the coveted type of access is for that of the message packet identified original element is allowed, or whether the package is a is an unsolicited response (and as such, an error deleted becomes).

    Schliesslich werden noch der angeforderte Speicherort und die mögliche Grösse einer Übertragung überprüft, um zu sehen, ob auch diese für das betreffende Ursprungselement des Nachrichtenpakets erlaubt sind.Finally, the requested one Location and the possible Size a transfer checked to see if this for too the relevant original element of the message packet is allowed.

    Der Zugriffsvalidierungsmechanismus der Schnittstelleneinheit24agemäss der ZVÜ-Logik88ist im Detail in11dargestellt. Eingehende Nachrichtenpakete, die auf den Speicherplatz der CPU12zugreifen wollen, lassen ausgewählte Abschnitte aus ihren Headern von dem Paketempfänger96(5) an ein ZVÜ-Eingangsregister170der ZVÜ-Logik90übertragen. Das ZVÜ-Eingangsregister170empfängt daher von dem eingehenden Nachrichtenpaket die Ursprungsort-ID, das Länge-Feld (Len), welches den Datenumfang angibt, der in den Speicher28geschrieben werden soll bzw, aus diesem ausgelesen werden soll, eine Adresse (ZVÜ-Seitennummer), die auf den Eintrag im Speicher28verweist, welcher den entsprechenden ZVÜ-Eintrag enthält, den Offset in diese Speicherseite, auf welchen der ZVÜ-Eintrag verweist, und den gewünschten Zugriffstyp (Typ). Diese Werte sind jeweils in den Registersegmenten170a,170b, ..., 170e des ZVÜ-Eingangsregisters enthalten.The access validation mechanism of the interface unit24aaccording to the ZVÜ logic88is in detail in11shown. Incoming message packets on the memory space of the CPU12want to access leave selected sections from their headers from the packet receiver96(5) to a ZVÜ input register170the ZVÜ logic90transfer. The ZVÜ input register170therefore receives from the incoming message packet the origin ID, the length field (Len), which indicates the amount of data stored in the memory28an address (ZVÜ page number) is to be written or to be read from it, which refers to the entry in the memory28which contains the corresponding ZVÜ entry, the offset into this memory page to which the ZVÜ entry refers, and the desired access type (type). These values are in the register segments170a.170b, ..., 170e of the ZVÜ input register included.

    Das in dem ZVÜ-Eingangsregister170enthaltene ZVÜ-Seitennummernfeld wird an die ZVÜ-Adresslogik172gekoppelt, wo es mittels der kombinatorischen Logik176mit dem Inhalt eines ZVÜ-Basisregisters174kombiniert wird, wodurch die Adresse des für die Validierung benötigten ZVÜ-Eintrags erzeugt wird. Das ZVÜ-Basisregister174enthält die im Speicher enthaltene Startadresse der gesamten ZVÜ-Tabelle. Unter Verwendung der so erzeugten Adresse greift die ZVÜ-Adresslogik172auf den Speicher28zu, um diesen ZVÜ-Eintrag zu erhalten, der daraufhin in das ZVÜ-Eintragsregister180geladen wird.That in the ZVÜ input register170The ZVÜ page number field contained is sent to the ZVÜ address logic172coupled where it is by means of combinatorial logic176with the content of a ZVÜ basic register174is combined, whereby the address of the ZVÜ entry required for the validation is generated. The ZVÜ basic register174contains the start address of the entire ZVÜ table contained in the memory. Using the address generated in this way, the ZVÜ address logic takes effect172on the store28to get this ZVÜ entry, which then enters the ZVÜ entry register180is loaded.

    Die ZVÜ-Logik172enthält auch ein ZVÜ-Maskenregister175zum Erkennen von ZVÜ-Seitennummeradressen, die nicht in den Adressenbereich fallen, welche der ZVÜ-Tabelle zugewiesen worden ist. Die Regeln sind dabei entsprechend gestaltet, dass wenn irgendeine Bitposition des ZVÜ-Maskenregisters175eine 0 ist, das entsprechende Bit der ZVÜ-Seitennummernadresse ebenfalls 0 sein muss; andernfalls erkennt die Maskenprüflogik177einen Maskenfehler, was dazu führt, dass der Zugriff auf den Speicher28verweigert wird. Die Generierung der ZVÜ-Eintragsadresse und die Maskierungsoperation sind in12besser veranschaulicht.The ZVÜ logic172also contains a ZVÜ mask register175for recognizing ZVÜ page number addresses that do not fall within the address range that has been assigned to the ZVÜ table. The rules are designed accordingly that if any bit position of the ZVÜ mask register175is a 0, the corresponding bit of the ZVÜ page number address must also be 0; otherwise the mask check logic detects177a mask error, which causes access to memory28is denied. The generation of the ZVÜ entry address and the masking operation are in12better illustrated.

    Wie in12in Diagrammform veranschaulicht, wird der höherwertige 8-Bit-Abschnitt des 20-Bit-ZVÜ-Seitennummernwertes in dem Registersegment170emit dem Inhalt des ZVÜ-Basisregisters174summiert, um den höherwertigen Abschnitt (Bits16-31) der ZVÜ-Tabelleneintragsadresse zu erzeugen. Gleichzeitig bilden die verbleibenden (niederwertigen) 12 Bits der ZVÜ-Seitennummernadresse aus dem Registersegment170edirekt einen Abschnitt der ZVÜ-Eintragsadresse. Da es sich bei den ZVÜ-Einträgen mengenmässig um 16-Byte-Wörter handelt, sind sie an Vierfachwortgrenzen angeordnet; daher sind die niederwertigen 4 Bits der ZVÜ-Eintragsadresse, wie aus der Darstellung hervorgeht, stets 0.As in12Illustrated in diagram form, the high order 8-bit portion of the 20-bit ZVÜ page number value in the register segment170ewith the content of the ZVÜ basic register174summed to the most significant section (bits16-31) of the ZVÜ table entry address. At the same time, the remaining (least significant) 12 bits of the ZVÜ page number address form the register segment170edirectly a section of the ZVÜ entry address. Since the ZVÜ entries are 16 byte words in terms of quantity, they are arranged at quadruple word boundaries; therefore, the lower 4 bits of the ZVÜ entry address are always 0, as can be seen from the illustration.

    In12wird auch die Maskierungsoperation veranschaulicht. Die höherwertigen zwei Bytes der ZVÜ-Seitennummernadresse werden mit der in dem Maskenregister175enthaltenen Maske verglichen. Wenn an einer Bitposition des Maskenregisters, welche eine 0 enthält, in den höherwertigen zwei Bytes eine entsprechende Bitposition mit einer "I" erkannt wird, gibt das Maskenregister ein "Maskenfehler"-Signal aus, wodurch der Zugriff auf den Speicher28verweigert wird und ein Interrupt generiert und an die Interrupt-Logik86(5) freigegeben wird, das den Prozessor20zu einer entsprechenden Aktion veranlasst.In12the masking operation is also illustrated. The most significant two bytes of the ZVÜ page number address are with that in the mask register175included mask compared. If a corresponding bit position with an "I" is recognized in the higher order two bytes at a bit position of the mask register which contains a 0, the mask register outputs a "mask error" signal, thereby accessing the memory28is denied and an interrupt is generated and sent to the interrupt logic86(5) which is released the processor20prompted for an appropriate action.

    Dank der Maskierungsoperation kann die Grösse der ZVÜ-Eintragstabelle verändert werden. Auf den Inhalt des ZVÜ-Maskenregisters175kann von dem Prozessor20aus zugegriffen werden, wodurch es den Prozessoren20möglich wird, wahlweise die Grösse der ZVÜ-Eintragstabelle auszuwählen. Eine maximale ZVÜ-Tabellengrösse erlaubt eine Verifizierung (und Übersetzung) jeder beliebigen 32-Bit-TNet-Adresse; das bedeutet, dass eine ZVÜ-Eintragstabelle maximaler Grösse in der Lage ist, 220 verschiedene Seitenadressen zu verifizieren und zu übersetzen. Eine ZVÜ-Tabelle minimaler Grösse ermöglicht die Verifizierung und Übersetzung jeder beliebigen 24-Bit-TNet-Adresse (d. h. jener TNet-Adressen, deren höherwertige 8 Bits Null sind). Eine ZVÜ-Tabelle minimaler Grösse kann 212- verschiedene Seitenadressen verifizieren und übersetzen.Thanks to the masking operation, the size of the ZVÜ entry table can be changed. On the content of the ZVÜ mask register175can from the processor20from being accessed, which makes it the processors20it is possible to choose the size of the ZVÜ entry table. A maximum ZVÜ table size allows verification (and translation) of any 32-bit TNet address; this means that a ZVÜ entry table of maximum size is able to verify and translate 2 20 different page addresses. A ZVÜ table of minimal size enables the verification and translation of any 24-bit TNet address (ie those TNet addresses whose higher 8 bits are zero). A ZVÜ table of minimal size can verify and translate 2 12 different page addresses.

    Da ein ZVÜ-Tabelleneintrag 16 Byte gross ist, benötigt somit eine ZVÜ-Tabelle maximaler Grösse16Megabytes an zugeordnetem Speicherplatz. Die Maskierungsoperation, die von dem Inhalt des ZVÜ-Maskenregisters175und der ZVÜ-Adressenlogik172durchgeführt wird, macht es jedoch möglich, die ZVÜ-Grösse an die Bedürfnisse des Systems anzupassen. Ein Verarbeitungssystem10, welches eine grössere Anzahl von externen Elementen beinhaltet (wenn z. B. die Anzahl der E/A-Geräte in dem System gross ist), benötigt eine grosse Anzahl an TNet-Adressen, und von entsprechenden ZVÜ-Einträgen, und muss daher eine grössere Menge an Speicherplatz des Speichers28für die ZVÜ-Einträge bereithalten. Umgekehrt hat ein kleineres Verarbeitungssystem10mit einer kleineren Anzahl von externen Elementen keinen so grossen Bedarf an TNet-Adressen, so dass eine kleinere ZVÜ-Tabelle verwendet werden kann, wodurch Speicherplatz eingespart werden kann. Bei einem kleineren System werden daher die höherwertigen Bits nicht verwendet werden (bzw., genauer gesagt, sollten sie nicht verwendet werden).Since a ZVÜ table entry is 16 bytes in size, a ZVÜ table requires a maximum size16Megabytes of allocated space. The masking operation determined by the content of the ZVÜ mask register175and the ZVÜ address logic172is carried out, however, makes it possible to adapt the ZVÜ size to the needs of the system. A processing system10, which contains a large number of external elements (e.g. if the number of I / O devices in the system is large), requires a large number of TNet addresses, and corresponding ZVÜ entries, and must therefore have one larger amount of memory space28have ready for the ZVÜ entries. Conversely, has a smaller processing system10With a smaller number of external elements, there is no need for TNet addresses, so that a smaller ZVÜ table can be used, which saves storage space. In a smaller system, therefore, the more significant bits will not be used (or more specifically, they should not be used).

    Wenn eine kleinere ZVÜ-Tabelle zulässig ist, sollten die höherwertigen Bits der TNet-Adresse NULL sein; jeder Versuch, einen ZVÜ-Tabelleneintrag mit einer TNet-Adresse zu suchen, die ausserhalb des Bereichs für das jeweilige System gelegen ist, führt zu einem Fehler. Die Funktion der Maskierungslogik ist es, solche Fehler unter Verwendung des Maskenregisters175zu erkennen. Somit wird die zu einem bestimmten Zeitpunkt für eine CPU12(oder für jedes andere Systemelement, das diese Validierungstechnik verwendet) zulässige Grösse des ZVÜ-Tabellenumfangs durch den Inhalt des Maskenregisters175mit Hilfe von Bitpositionen, die auf eine logische "EINS" gesetzt sind, angegeben. Bitpositionen des Maskenregisters175, die auf eine logische "NULL" gesetzt sind, deuten auf eine nichtexistierende TNet-Adresse hin, die ausserhalb der Grenzen des Verarbeitungssystems10gelegen ist. Ein empfangenes Paket mit einer TNet-Adresse ausserhalb des zulässigen TNet-Bereichs hat seine Bitpositionen an solchen Stellen auf eine logische EINS gesetzt, an denen sie NULL sein sollten. Die ZVÜ-Adressenlogik172erkennt diese bereichsexterne TNet-Adresse und führt zur Ausgabe eines ZVÜ-Fehler-Interrupts.If a smaller ZVÜ table is permissible, the most significant bits of the TNet address should be NULL; every attempt to search for a ZVÜ table entry with a TNet address that is outside the range for the respective system leads to an error. The function of the masking logic is to avoid such errors using the mask register175to recognize. Thus, at a certain point in time for a CPU12(or for any other system element that uses this validation technique) permissible size of the ZVÜ table scope through the content of the mask register175with the help of bit positions that are set to a logical "ONE". Bit positions of the mask register175that are set to a logical "NULL" indicate a non-existent TNet address that is outside the limits of the processing system10is located. A received packet with a TNet address outside the permissible TNet range has set its bit positions to a logical ONE at points where they should be NULL. The ZVÜ address logic172recognizes this non-area TNet address and leads to the output of a ZVÜ error interrupt.

    Für einschlägig gebildete Fachleute wird dadurch klar, dass die in12veranschaulichte Technik, darüber hinaus, dass sie in der Lage ist, die Grösse der in dem Speicher28zu verwaltenden ZVÜ-Tabelle zu verändern, auch imstande ist, die ZVÜ-Tabelle innerhalb des Speichers28mit einer gewissen Flexibilität anzuordnen.12zeigt, dass die ZVÜ-Tabelle an einer Grenze mit einer Potenz von 217 (128K) angeordnet werden kann.For specialists with relevant training it becomes clear that the in12illustrated technique, moreover, that it is able to resize that in the memory28the AVT table to be managed is also able to change the AVT table within the memory28to arrange with a certain flexibility.12shows that the ZVÜ table can be arranged on a border with a power of 2 17 (128K).

    Jeder ZVÜ-Eintrag ist ein Vierfachwort mit 128 Bit, das jene Felder enthält, die während des Validierungsprozesses in dem ZVÜ-Eintragsregister gehalten werden, wie in11veranschaulicht. ZVÜ-Einträge haben zwei Basisformate: Normal und Interrupt. Das Format eines normalen ZVÜ-Eintrags wird in13Averanschaulicht (und bis zu einem gewissen Ausmass in11, in welcher der Inhalt des ZVÜ-Eintragsregisters180gezeigt wird); das Interrupt-Format wird in13Cveranschaulicht. Bevor mit der Abhandlung der ZVÜ-Logik90fortgesetzt wird, mag ein besseres Verständnis der Bedeutung und des Inhalts eines ZVÜ-Eintrags hilfreich sein.Each ZVÜ entry is a 128-bit quad word containing those fields that are kept in the ZVÜ entry register during the validation process, as in11illustrated. ZVÜ entries have two basic formats: normal and interrupt. The format of a normal ZVÜ entry is in13Aillustrated (and to a certain extent in11, in which the content of the ZVÜ entry register180will be shown); the interrupt format is in13Cillustrated. Before dealing with the ZVÜ logic90a better understanding of the meaning and content of a ZVÜ entry may be helpful.

    Der normale ZVÜ-Eintrag beinhaltet, wie in13Agezeigt, ein 52 Bit umfassendes 'Physikalische Seitenzahl'-Feld. Der Inhalt diese Feldes gibt die physikalische Adresse der Seite in dem Speicher28an, innerhalb derer dem anfordernden Ursprung des Nachrichtenpakets ein Zugriff gewährt wird. (Typischerweise umfasst jede Speicherseite4K(4096) Byte Speicherorte.) Der Inhalt des 'Physikalische Seitenzahl'-Feldes wird mit dem Inhalt des 12 Bit umfassenden Offset-Feldes170dverkettet, das in dem ZVÜ-Eingangsregister170gehalten wird (aus dem Adressfeld des zu validierenden Nachrichtenpakets entnommen). Das Ergebnis ist die gesamte physikalische Adresse des Ortes innerhalb des Speichers28, an welchem Daten geschrieben werden, bzw. von welchem Daten ausgelesen werden – sofern die Validierung erlaubt wird.The normal ZVÜ entry includes, as in13Ashown, a 52-bit physical page number field. The content of this field gives the physical address of the page in memory28within which access is granted to the requesting origin of the message packet. (Typically, each page contains4K(4096) byte locations.) The content of the 'Physical Page Number' field becomes the content of the 12-bit offset field170dchained that in the ZVÜ input register170is held (taken from the address field of the message package to be validated). The result is the entire physical address of the location within the memory28on which dates are written or from which data is read - provided that validation is permitted.

    Der Zugriff kann zwar für alle Speicherorte einer bestimmten 4K-Seite gewährt werden, er kann aber auch auf bestimmte Abschnitte dieser Seite beschränkt werden. Zur Realisierung der zuletztgenannten Einschränkungen beinhaltet der ZVÜ-Eintrag zwei 12-Bit-Felder (Obergrenze, Untergrenze;13A), die die obere und die untere Grenze innerhalb der angegebenen Seite des Speichers28definieren, innerhalb derer ein Zugriff gewährt wird. Insbesondere das 'Untergrenze'-Feld des ZVÜ-Eintrags spezifiziert den Offset zu der Speicherseite, den das Byte mit dem niedrigsten Wert aufweist, auf welchen dieser ZVÜ-Tabelleneintrag zutrifft. Das 'Obergrenze'-Feld spezifiziert den Offset in die Speicherseite, den das Byte mit der höchsten Adresse aufweist, auf das der ZVÜ-Eintrag zutrifft. Versuche auf Speicherorte zuzugreifen, die über diesen Wert hinausgehen (z. B. den Offset-Wert170dplus den Inhalt des 'Len'-Feldes170bdes ZVÜ-Eingangsregisters170) führen zu einem Fehler, der über ein Interrupt an den Prozessor freigegeben wird.Access can be granted to all locations on a given 4K page, but can also be restricted to certain sections of that page. To implement the latter restrictions, the ZVÜ entry contains two 12-bit fields (upper limit, lower limit;13A) which are the upper and lower limits within the specified page of memory28define within which access is granted. In particular, the 'lower limit' field of the ZVÜ entry specifies the offset to the memory page which the byte with the lowest value has, to which this ZVÜ table entry applies. The 'upper limit' field specifies the offset in the memory page that the byte with the highest address has to which the ZVÜ entry applies. Attempt to access locations beyond this value (e.g. the offset value170dplus the content of the 'Len' field170bof the ZVÜ input register170) lead to an error that is released to the processor via an interrupt.

    Ein 12-Bit-"Erlaubnisse"-Feld ist in dem ZVÜ-Eintrag enthalten, um die Erlaubnisse zu spezifizieren, die dem anfordernden Ursprungselement gemäss dem ZVÜ-Eintrag gewährt werden. Das 'Erlaubnisse'-Feld wird in13Bveranschaulicht, in welcher gewisse 'Erlaubnisse'-Unterfelder (E, PEX, PEY, I, C, W, R und B) die folgenden Qualifikationen für den Speicherzugriff angeben:A 12-bit "Permissions" field is included in the ZVÜ entry to specify the permissions granted to the requesting originating element according to the ZVÜ entry. The 'Permissions' field is in13Billustrates in which certain 'Permissions' subfields (E, PEX, PEY, I, C, W, R and B) indicate the following qualifications for memory access:

    E: (Error Enable) Durch diesen ZVÜ-Eintrag geleitete, fehlerhafte Zugriffe werden nur dann (an die Interrupt-Logik) gemeldet, wenn dieses Feld auf einen von zwei besonderen Zuständen gesetzt ist (z. B. auf eine "EINS").E: (Error Enable) By this ZVÜ entry guided, faulty accesses are only then (to the interrupt logic) reported when this field is set to one of two special states is (e.g. on a "ONE").

    PEX: (Path enable X) Der Zustand dieses 1-Bit-Feldes ist auf eine "EINS" gesetzt, um es zu ermöglichen, dass Nachrichtenpakete, bei deren Empfang das "Pfad"-Bit in dem Header gleich Null ist, diesen ZVÜ-Eintrag verwenden (sofern alle anderen anwendbaren Erlaubnisbedingengen erfüllt werden). Ist dieses Bit auf eine "NULL" gesetzt, so wird Nachrichtenpaketen, die über den "X-Pfad" (Pfad = 0) empfangen wurden und auf die der ZVÜ-Eintrag anwendbar ist, der Zugriff verweigert. Zugriffsverweigerungen werden auf der Ebene der Interrupt-Logik als Interrupts protokolliert und an den Prozessor20gemeldet – sofern das E-Feld auf einen Zustand gesetzt ist ("EINS"), der das Melden von Fehlern erlaubt.PEX: (Path enable X) The state of this 1-bit field is set to a "ONE" to enable message packets, upon receipt of which the "path" bit in the header is equal to zero, to this ZVÜ- Use entry (provided all other applicable permission requirements are met). If this bit is set to a "NULL", message packets that were received via the "X path" (path = 0) and to which the ZVÜ entry can be used are denied access. Access denials are logged at the interrupt logic level as interrupts and sent to the processor20reported - provided the E-field is set to a state ("ONE") that allows errors to be reported.

    PEY: (Path Enable Y) Dieses 1-Bit-Feld funktioniert in derselben Weise wie das PEX-Feld, ausser dass es auf Nachrichtenpakete angewendet wird, die mit einem auf Eins gesetzten Pfadbit empfangen werden.PEY: (Path Enable Y) This 1-bit field works in the same way as the PEX field, except that it is applied to message packets that are set to one with a Path bits are received.

    I: (Interrupt) Wenn dieses Bit gesetzt ist (z. B. auf eine "EINS", erhalten die anderen Felder (Obergrenze, usw.) neue Definitionen zum Verarbeiten von Interrupt-Schreiboperationen und zum Verwalten von Interrupt-Warteschlangen. Dies wird weiter unten in Verbindung mit der Beschreibung der Interrupt-Logik86genauer erläutert.I: (Interrupt) If this bit is set (eg to a "ONE"), the other fields (upper limit, etc.) are given new definitions for processing interrupt write operations and for managing interrupt queues below in connection with the description of the interrupt logic86explained in more detail.

    C; (Cachespeicherkohärenz) Hierbei handelt es sich um ein 2-Bit-Feld, das entsprechend codiert ist, um zu spezifizieren, wie Anforderungen für Schreiboperationen in den Speicher28behandelt werden. Ist dieses Feld in einen Zustand gesetzt, so werden die angeforderten Schreiboperationen normal verarbeitet; ist das Feld in einen zweiten Zustand gesetzt, so werden Schreibanforderungen, die sich auf Adressen beziehen, bei denen ein Teil einer Cachezeile in der Ober- oder Untergrenze des in dem ZVÜ-Eintrag abgebildeten Speicherbereichs enthalten ist, in die Cachespeicherkohärenz-Warteschlange geschrieben, die von der weiter unten beschriebenen Interruptbehandlungsroutine250(14A) aufrechterhalten wird. Dies ermöglicht es der CPU12, Schreibtransfers in eine Benutzerdatenstruktur oder einen Pufferspeicherbereich im Speicher28zu verwalten, bei dem keine vollständige Cachezeilenüberdeckung gegeben ist. Ist das Feld in einen dritten Zustand gesetzt, so werden alle Schreibanforderungen, die auf diesen ZVÜ-Eintrag zugreifen, in die Cachespeicherkohärenz-Warteschlange geschrieben. Ist das Feld in einen vierten Zustand gesetzt, so wird auf die durch diesen ZVÜ-Eintrag referenzierten, physikalischen Speicherorte unter Verwendung von Hardware-Kohärenzmechanismen zugegriffen.C; (Cache Coherence) This is a 2-bit field that is encoded appropriately to specify how requests for memory write operations28be treated. If this field is set to a state, the requested write operations are processed normally; if the field is set to a second state, write requests relating to addresses in which part of a cache line is contained in the upper or lower limit of the memory area mapped in the ZVÜ entry are written to the cache coherence queue, the from the interrupt handler described below250(14A) is maintained. This enables the CPU12, Write transfers to a user data structure or a buffer memory area in the memory28to manage where there is no complete cache line coverage. If the field is set to a third state, all write requests that access this ZVÜ entry are written to the cache coherence queue. If the field is set to a fourth state, the physical storage locations referenced by this ZVÜ entry are accessed using hardware coherence mechanisms.

    W: (Write Access) Der Zustand dieses 1-Bit-Feldes gewährt bzw. verweigert einem anfordernden Ursprungselement den Speicherschreibzugriff – innerhalb eines Speicherbereichs, der von dem 'Obergrenze'-Feld und dem 'Untergrenze'-Feld angegeben wird.W: (Write Access) The state of this 1-bit field granted or denies memory request access to a requesting source element - within a memory area that is defined by the 'upper limit' field and the 'lower limit' field is specified.

    R: (Read Access) Der Zustand dieses 1-Bit-Feldes bestimmt, ob das anfordernde Ursprungselement eine Speicherzugriffserlaubnis für Leseoperationen hat – innerhalb des angegebenen Speicherbereichs.R: (Read Access) The state of this 1-bit field determines whether the requesting source element is a Storage access permission for Reading operations has - within the specified memory area.

    B: (Barrier Access) Der Zustand dieses 1-Bit-Feldes bestimmt, ob das anfordernde Ursprungselement einen Speicherzugriff für Barrieren-Operationen hat – innerhalb des angegebenen Speicherbereichs.B: (Barrier Access) The state of this 1-bit field determines whether the requesting source element is a Memory access for Has barrier operations - within the specified memory area.

    Schliesslich gibt ein 20 Bit umfassendes "Ursprungsort-ID"-Feld ("Source-ID") des ZVÜ-Eintrags den konkreten Ursprungsort bzw. das Ursprungselement an, auf den/das die Erlaubnisinformation des ZVÜ-Eintrags sich bezieht.Finally there is a 20 bit "Place of origin ID" field ("Source ID") of the ZVÜ entry the concrete place of origin or the original element to which the permission information of the ZVÜ entry Is concerned.

    Um nun wieder zu der in11veranschaulichten ZVÜ-Logik zurückzukehren, sei festgehalten, dass nachdem die Adresse des ZVÜ-Eintrags gebildet worden ist, auf den Eintrag zugegriffen wird und dieser in dem ZVÜ-Tabelleneintragsregister180zwischengespeichert wird. Der Inhalt des in dem ZVÜ-Eintragsregister180enthaltenen "Erlaubnisse"-Feldes wird mit dem angeforderten Zugriffstyp verglichen, wie er in dem von der Zugriffslogik184in dem ZVÜ-Eintragsregister gehaltenen 'Typ'-Feld angegeben ist. Stimmt der angeforderte Zugriff nicht mit dem erlaubten übereinstimmt, so wird der Zugriff verweigert und die Zugriffslogik184gibt ein Fehlersignal ("No") aus, wodurch über die Fehlergenerierungslogik, welche das ODER-Glied184und das UND-Glied186umfasst, ein ZVÜ-Fehler-Interruptsignal generiert wird. Der Zugriff wird verweigert, wenn der gewünschte Zugriffstyp nicht in den 'Erlaubnissen' enthalten ist.To go back to the in11To return the illustrated AVT logic, it should be noted that after the address of the AVT entry has been formed, the entry is accessed and is in the AVT table entry register180is cached. The content of the in the ZVÜ entry register180contained "Permissions" field is compared with the requested access type, as in that of the access logic184is specified in the 'Type' field held in the ZVÜ entry register. If the requested access does not match the allowed one, the access is denied and the access logic184enter Error signal ("No"), whereby the error generation logic, which the OR gate184and the AND gate186includes, a ZVÜ error interrupt signal is generated. Access is denied if the desired access type is not included in the 'Permissions'.

    Das 'Ursprungsort-ID'-Feld des ZVÜ-Eintrags, auf den zugegriffen werden soll (in dem ZVÜ-Eintragsregister180als "src ID"-Wert angegeben) spezifiziert den Ursprungsort, welcher dem benutzen ZVÜ-Eintrag entspricht und wird mittels der Vergleichslogik190mit der Ursprungsort-ID verglichen, die in dem anfordernden Nachrichtenpaket enthalten ist. Auch hier wieder führt ein Nichtübereinstimmen der Daten dazu, dass die Vergleichslogik190die Generierung eines ZVÜ-Fehler-Interrupts bewirkt und dass der Zugriff verweigert wird.The 'Place of Origin ID' field of the ZVÜ entry to be accessed (in the ZVÜ entry register180specified as "src ID" value) specifies the place of origin which corresponds to the ZVÜ entry used and is determined by means of the comparison logic190compared to the origin ID contained in the requesting message packet. Again, a mismatch in the data leads to the comparison logic190the generation of a ZVÜ error interrupt causes and that access is denied.

    Gleichzeitig wird das 'Untergrenze'-Feld des ZVÜ-Eintrags (in dem ZVÜ-Eintragsregister180als "lwr bnd" angegeben, wie in11dargestellt) an die Vergleichslogik194angelegt, wo es mit dem in dem ZVÜ-Eingangsregistersegment170denthaltenen 'Offset'-Wert verglichen wird. Ist der 'Offset'-Wert geringer als der in dem 'Untergrenze'-Feld des ZVÜ-Eintrags enthaltene Wert, was darauf hindeutet, dass ein Zugriff ausserhalb des erlaubten Seitenabschnitts erfolgen würde, so initiiert die Vergleichseinrichtung194ein Signal, welches über das ODER-Glied184und das UND-Glied186ein ZVÜ-Fehler-Interrupt generiert, wodurch der Zugriff auf den Speicher28verweigert wird.At the same time, the 'lower limit' field of the ZVÜ entry (in the ZVÜ entry register180indicated as "lwr bnd" as in11shown) to the comparison logic194where it is with that in the ZVÜ input register segment170dcontained 'offset' value is compared. If the 'offset' value is less than the value contained in the 'lower limit' field of the ZVÜ entry, which indicates that access would take place outside the permitted side section, the comparison device initiates194a signal which via the OR gate184and the AND gate186A ZVÜ error interrupt is generated, which causes access to the memory28is denied.

    In ähnlicher Weise vergleicht die Vergleichslogik196das 'Obergrenze'-Feld ("upr bnd" im ZVÜ-Eintragsregister180) mit der – von der Addier-Logik200bezogenen – Summe des 'Len'-Feldes (d. h. der Zahl der zu schreibenden Datenbytes) und des 'Offset'-Feldes, um zu bestimmen, ob die Menge der zu schreibenden Daten (sofern es sich um eine Anforderung nach einer Schreiboperation handelt) die dem anfordernden Ursprungselement zugeteilte (und in dem 'Untergrenze'- und dem 'Obergrenze'-Feld des Eintrags definierte) Menge an Speicherplatz überschreitet.The comparison logic compares in a similar way196the 'upper limit' field ("upr bnd" in the ZVÜ entry register180) with the - from the add logic200related - Sum of the 'Len' field (ie the number of data bytes to be written) and the 'Offset' field to determine whether the amount of data to be written (if it is a request for a write operation) that the amount of space allocated to the requesting source element (and defined in the 'lower limit' and 'upper limit' fields of the entry).

    Wird eine Zugriffsanforderung validiert, so wird der Inhalt des 'Physikalische Seitenzahl'-Feldes (phys pg #) des ZVÜ-Eintragsregisters180zusammen mit dem 'Offset' des ZVÜ-Eingangsregisters170, wie weiter oben im Zusammenhang mit12erklärt, dazu verwendet, um den Speicherort zu adressieren, an welchem der Zugriff stattfinden soll.If an access request is validated, the content of the 'physical page number' field (phys pg #) of the ZVÜ entry register becomes180together with the 'offset' of the ZVÜ input register170as related to above12explained, used to address the location where access is to take place.

    Die Übertragung von Nachrichtenpaketen zwischen Elementen des Systems10(z. B. einem Gerät17und einer CPU12;1) wird weiterhin auch insofern in einer neuartigen Weise verwendet, als auf diesem Weg Interrupts verteilt werden, die dazu dienen, eine Aktivität anzufordern, eine Benachrichtigung über eine Aktivität zu senden, oder über das Eintreten von Fehlern zu informieren. Die Interrupt-Nachrichtenübermittlung verwendet somit das TNet-Netzwerksystem in derselben Weise wie jeder andere Datenaustausch zwischen Elementen und umfasst einen Ablauf in drei Schritten: (1) die Erstellung und den Versand des Interrupt-Nachrichtenpakets durch ein Ursprungselement; (2) die Übertragung des Interrupt-Nachrichtenpakets durch das TNet-Netzwerk zu seinem Bestimmungsort; und (3) Interpretation und Freigabe im Hinblick auf die Durchführung einer entsprechenden Aktion am Bestimmungsort. Jedes Systemelement kann Empfänger eines Interrupt-Nachrichtenpakets sein. Ist der Bestimmungsort eine CPU, so handelt es sich bei dem Interrupt-Nachrichtenpaket praktisch um eine normale Anforderung nach einer Schreiboperation, bei welcher das 'Bestimmungsort-ID'-Feld des Nachrichtenpaket-Headers (3B) die CPU identifiziert und das 'Adresse'-Feld den ZVÜ-Eintrag (Interrupt-Beschreiber) auswählt, welcher die Anweisungen enthält, wie das Interrupt-Nachrichtenpaket zu behandeln ist.The transmission of message packets between elements of the system10(e.g. a device17and a CPU12;1) is also used in a new way in that interrupts are distributed in this way, which serve to request an activity, to send a notification about an activity, or to inform about the occurrence of errors. Interrupt message transmission thus uses the TNet network system in the same way as any other data exchange between elements and comprises a three-step process: (1) the creation and sending of the interrupt message packet by an originating element; (2) the transmission of the interrupt message packet through the TNet network to its destination; and (3) interpretation and approval with regard to the implementation of a corresponding action at the destination. Each system element can be the recipient of an interrupt message packet. If the destination is a CPU, the interrupt message packet is practically a normal request for a write operation in which the 'destination ID' field of the message packet header (3B) the CPU identifies and the 'address' field selects the ZVÜ entry (interrupt descriptor), which contains the instructions on how to handle the interrupt message packet.

    Die Autorisierung, eine Interrupt-Aktivität zu initiieren, bedarf auch der Validierung durch die ZVÜ-Logik90. Ein empfangenes Nachrichtenpaket enthält somit Interrupt-Daten, die den Interrupt erklären. Diese Interrupt-Daten sind in eine im Speicher28gehaltene, spezielle Warteschlange (Interrupt-Warteschlange) zu schreiben, und zwar unter Benachrichtigung der Prozessoren20, um anzuzeigen, dass ein Interrupt empfangen und "freigegeben" wurde und bereit ist zur Abfertigung durch die Prozessoren20. Da sich die Interrupt-Warteschlangen an speziellen Speicherorten befinden, sind die Interrupt-Daten bei Bedarf stets verfügbar.The authorization to initiate an interrupt activity also requires validation through the ZVÜ logic90, A received message packet thus contains interrupt data that explain the interrupt. This interrupt data is in one in memory28held special queue (interrupt queue) to write, and with notification to the processors20to indicate that an interrupt has been received and "released" and is ready to be processed by the processors20, Since the interrupt queues are located in special locations, the interrupt data is always available when needed.

    Ein ZVÜ-Interrupteintrag für einen Interrupt kann einen von zwei Typen annehmen: es kann sich um einen Warteschlangen-Mehrfacheintrag-Interrupt oder um einen Warteschlangen-Einzeleintrag-Interrupt handeln. Das Format für beide Typen von ZVÜ-Interrupteinträgen ist im Grunde genommen dasselbe und dieses Format wird in13Cveranschaulicht.A ZVÜ interrupt entry for an interrupt can take one of two types: it can be a queue multiple entry interrupt or a queue single entry interrupt. The format for both types of AVT interrupt entries is basically the same and this format is in13Cillustrated.

    Ein ZVÜ-Interrupteintrag für einen Warteschlangen-Mehrfacheintrag-Interrupt wird für empfangene Nachrichtenpakete verwendet, welche entweder ursprünglich dazu erstellt wurden, um ein Interrupt zu übermitteln, oder aber unterwegs durch irgendein aussergewöhnliches Ereignis, das von einem Router14oder von der empfangenden CPU erkannt wurde (z. B. schlechter CRC), zu einem Interrupt geworden sind. Verwendet werden diese Einträge von der ZVÜ-Logik90, um das Nachrichtenpaket mehr oder weniger in der oben beschriebenen Art und Weise zu validieren, und von der Interrupt-Logik86(5und14A), um eine kreisförmige Warteschlange in dem Speicher28zu bezeichnen, in welcher der Header und begleitende Daten des Interrupt-Nachrichtenpakets gespeichert werden. Ausserdem setzt die Interrupt-Logik86ein Bit in einem Interrupt- oder "Ursachen"-Register280(14A; im Detail weiter unten abgehandelt) um den Empfang und/oder die Erstellung eines Mehrfacheintrag-Interrupts anzuzeigen.A ZVÜ interrupt entry for a queue multi-entry interrupt is used for received message packets, which were either originally created to transmit an interrupt or by some unusual event on the way from a router14or was recognized by the receiving CPU (e.g. bad CRC), have become an interrupt. These entries are used by the ZVÜ logic90to validate the message packet more or less in the manner described above, and by the interrupt logic86(5and14A) to a circular queue in the memory28to designate in which the header and accompanying data of the interrupt message packet are stored. In addition, the interrupt logic sets86a bit in an interrupt or "causes" register280(14A; dealt with in detail below) to indicate the receipt and / or creation of a multiple entry interrupt.

    Ein ZVÜ-Interrupteintrag für ein Warteschlangen-Einzeleintrag-Interrupt funktioniert im wesentlichen in derselben Art und Weise, abgesehen davon, dass es sich bei der Interrupt-Datenstruktur, an welche der ZVÜ-Interrupteintrag die Nachrichtenpaketinformation zum Zweck der Speicherung leitet, um einen fixen (wenngleich modifizierbaren) Ort im Speicher28handelt.A ZVÜ interrupt entry for a queue single entry interrupt essentially works in same way, except that the interrupt data structure to which the ZVÜ interrupt entry forwards the message packet information for the purpose of storage is a fixed (albeit modifiable) location in memory28is.

    Beide ZVÜ-Interrupteintragstypen (Mehrfacheintragund Einzeleintrag-Interrupts) verwenden das in13Cveranschaulichte Vierfachwortformat (128Bits). Ein 64-Bit-Segment ("Queue Base Addr" – Warteschlangenbasisadresse) des ZVÜ-Interrupteintrags wird als Hinweismarke auf den Ort der Interrupt-Warteschlange in dem Speicher28verwendet, an dem Interrupt-Daten geschrieben werden. Die Interrupt-Warteschlange ist in der Form einer FIFO strukturiert, sodass Interrupt-Daten von der Interrupt-Logik86empfangen und am hinteren Ende der FIFO-Warteschlange eingefügt werden und von dem Prozessor20anlässlich der Abfertigung des Interrupts vom vorderen Ende der Warteschlange entnommen werden.Both ZVÜ interrupt entry types (multiple entry and single entry interrupts) use this in13Cillustrated quadruple word format (128Bits). A 64-bit segment ("Queue Base Addr") of the ZVÜ interrupt entry is used as a pointer to the location of the interrupt queue in the memory28used to write interrupt data. The interrupt queue is structured in the form of a FIFO, so interrupt data from the interrupt logic86received and inserted at the back of the FIFO queue and by the processor20can be taken from the front end of the queue to handle the interrupt.

    Der ZVÜ-Interrupteintrag beinhaltet auch ein 20-Bit-Segment ("Ursprungsort-ID"), das Ursprungs-ID-Informationen enthält, welche die zu bedienende, externe Einheit über den Interrupt-Prozess identifiziert. Stimmt die Ursprungsort-ID des ZVÜ-Interrupteintrags nicht mit jener überein, die in dem Header des eingehenden Nachrichtenpakets enthalten ist, überein (Ursprungsort-ID;3B), wobei die Übereinstimmung durch einen von der Vergleichslogik190vorgenommenen Vergleich ermittelt wird (11), so wird der Zugriff auf die Interrupt-Warteschlange verweigert und ein ZVÜ-Fehler-Interrupt generiert.The ZVÜ interrupt entry also contains a 20-bit segment ("origin ID"), which contains origin ID information that identifies the external unit to be operated via the interrupt process. If the origin ID of the ZVÜ interrupt entry does not match that which is contained in the header of the incoming message packet (origin ID;3B), the match being determined by one of the comparison logic190comparison is determined (11), access to the interrupt queue is denied and a ZVÜ error interrupt is generated.

    Ein 12 Bit umfassendes "Erlaubnisse"-Segment des ZVÜ-Interrupteintrags enthält dieselben erlaubnisbezogenen Informationen wie weiter oben in Verbindung mit normalen ZVÜ-Einträgen beschrieben. Typischerweise jedoch ist ein Nachrichtenpaket, welches ein Interrupt übermittelt, als Anforderung für eine Schreiboperation strukturiert und strebt danach, die Interrupt-Daten, welche es überträgt, wie weiter unten beschrieben, in den Speicher28, d. h. in die Interrupt-Warteschlange zu schreiben. Ein ordnungsgemässer ZVÜ-Interrupt-Eintrag hat somit das 'Write Access'-Bit entsprechend gesetzt, um es zu ermöglichen, dass die Interrupt-Daten in die in dem Speicher28eingerichtete Interrupt-Warteschlange geschrieben werden können. Das Interrupt-Bit (I) des 'Erlaubnisse'-Feldes identifiziert, sofern es gesetzt ist, den ZVÜ-Interrupt-Eintrag als einen zur Validierung und Behandlung eines Interrupt-Nachrichtenpakets geeigneten Eintrag.A 12-bit "Permissions" segment of the AVT interrupt entry contains the same permission-related information as described above in connection with normal AVT entries. Typically, however, a message packet that conveys an interrupt is structured as a request for a write operation and strives to store the interrupt data it conveys, as described below28, ie to write to the interrupt queue. A proper ZVÜ interrupt entry has accordingly set the 'Write Access' bit to enable the interrupt data to be stored in the memory28configured interrupt queue can be written. The interrupt bit (I) of the 'Permissions' field, if set, identifies the ZVÜ interrupt entry as an entry suitable for validating and handling an interrupt message packet.

    Schliesslich identifizieren vier je ein Byte umfassende Segmente ("c", "q", "1", und "z") des ZVÜ-Interrupt-Eintrags jeweils (1) die "Klasse" des Interrupts, welche verwendet wird, um das in dem Prozessor20zu setzende Interruptebene zu bestimmen; (2) eine Warteschlangennummer, die, wie weiter unten noch genauer beschrieben wird, dazu verwendet wird, ein Register auszuwählen, dessen Inhalt angibt, an welcher Stelle der jeweiligen (von dem 'Warteschlangen-Basisadresse'-Feld angegebenen) Warteschlange die Interrupt-Daten zu schreiben sind; (3) die Grösse bzw. die Menge an Speicherplatz, der an jedem Warteschlangen-Speicherort verfügbar ist, ausgedrückt in Form der Anzahl von Doppelwörtern, die dort gespeichert werden können; und (4) die Anzahl von in einem Warteschlangenendzähler, die dazu verwendet werden, um zu festzustellen, an welcher Stelle der Warteschlange die Daten geschrieben werden. Die Warteschlangen-Basisadresse (Queue Base Addr) und die Segmente c, q, 1 und z werden von der Interrupt-Logik dazu benutzt, um auf den Speicherort im Speicher28zu verweisen. Die Interrupt-Logik86beinhaltet vier "End"-Zähler, von denen ein jeder auf eine von vier Warteschlangen verweist, in welche Interrupt-Daten eingefügt werden können. Welcher der vier Zähler ausgewählt wird, ist vom Inhalt des Segments q des ZVÜ-Interrupt-Eintrags abhängig. Das andere Ende der Warteschlange, d. h. der Punkt, an dem Interrupt-Einträge entnommen werden, wird durch einen der vier "Anfangs"-Zähler angegeben. Die Grösse der Anfangs- und Endzähler (ausgedrückt in Bitzahlen) wird durch das Unterfeld z angegeben (negativ vorgespannt bis 9), wie weiter unten in Tabelle 2 angegeben. Die Warteschlangenendzählergrösse wird verwendet, um zu bestimmen wann der Endzeiger auf den Wert Null zurückspringt. Die Anzahl der Wörter (Bytes) dividiert durch die Grösse eines jeden Eintrags ergibt die Anzahl der Warteschlangeneinträge. Die kürzeste Warteschlange könnte unter Umständen nur 32 Einträge enthalten (4kB-Warteschlange dividiert durch 128 Byte Einträge) und erfordert 4kB, während die längste Warteschlange nicht weniger als 32.768 Einträge aufweisen könnte (512kB dividiert durch 16 Bytes pro Eintrag). TABELLE 2ZErklärung0512 Doppelwörter(4K Bytes)11K Doppelwörter(8K Bytes)22K Doppelwörter(16K Bytes)34K Doppelwörter(32K Bytes)48K Doppelwörter(64K Bytes)516K Doppelwörter(128K Bytes)632K Doppelwörter(256K Bytes)764K Doppelwörter(512K Bytes)8–15Nicht in VerwendungFinally, four segments of one byte each ("c", "q", "1", and "z") of the ZVÜ interrupt entry each identify (1) the "class" of the interrupt, which is used to describe the interrupt the processor20determine the interrupt level to be set; (2) a queue number, which, as will be described in more detail below, is used to select a register whose content indicates the position of the respective queue (indicated by the 'queue base address' field) of the interrupt data are to be written; (3) the size or amount of space available at each queue location, expressed in terms of the number of double words that can be stored there; and (4) the number of end-of-queue counters used to determine where in the queue the data is written. The queue base address (Queue Base Addr) and the segments c, q, 1 and z are used by the interrupt logic to point to the storage location in memory28to refer. The interrupt logic86includes four "end" counters, each of which points to one of four queues in which interrupt data can be inserted. Which of the four counters is selected depends on the content of segment q of the ZVÜ interrupt entry. The other end of the queue, ie the point at which interrupt entries are extracted, is indicated by one of the four "start" counters. The size of the start and end counters (expressed in bit numbers) is specified by the subfield z (negative biased to 9), as shown in Table 2 below. The end-of-queue counter size is used to determine when the end pointer returns to zero. The number of words (bytes) divided by the size of each entry gives the number of queue entries. The shortest queue might contain only 32 entries (4kB queue divided by 128 byte entries) and requires 4kB, while the longest queue could have no less than 32,768 entries (512kB divided by 16 bytes per entry). TABLE 2ZExplanation0512 double words (4K bytes)11K double words (8K bytes)22K double words (16K bytes)34K double words (32K bytes)48K double words (64K bytes)516K double words (128K bytes)632K double words (256K bytes)764K double words (512K bytes)8-15Not in use

    Die Grösse eines jeden Interrupt-Eintrags in der Interrupt-Warteschlange wird durch das Feld1angegeben, und zwar in Form von 16-Byte-Wörtern, wie in der folgenden Tabelle 3 veranschaulicht. TABELLE 31Erklärung01 Vierfachwort (16 Bytes)12 Vierfachwörter (32 Bytes)24 Vierfachwörter (64 Bytes)38 Vierfachwörter (128 Bytes)4–15Nicht in Verwendung (reserviert)The size of each interrupt entry in the interrupt queue is determined by the field1is in the form of 16-byte words, as illustrated in Table 3 below. TABLE 31Explanation01 quadruple word (16 bytes)12 quadruple words (32 bytes)24 quadruple words (64 bytes)38 quadruple words (128 bytes)4-15Not in use (reserved)

    Interruptbehandlung:Interrupt Handling:

    Wie bereits weiter oben gezeigt, liegt ein Neuigkeitsmerkmal der vorliegenden Erfindung in der Fähigkeit, die TNet-Netzwerk-Nachrichtenübermittlungsfähigkeit dazu zu benutzen, um Interrupts an die CPU12zur Abfertigung zu nutzen. Zum Beispiel kann es sein, dass eine E/A-Einheit aus einer Reihe von Gründen nicht in der Lage ist, eine von einer CPU ausgegebene Lese- oder Schreibtransaktion fertigzustellen, sei es, aufgrund einer untauglichen Adresse in dem Nachrichtenpaket, mit dem die Transaktion übermittelt wurde, oder aufgrund des Empfangs des Nachrichtenpakets mit einem CRC-Fehler, oder weil festgestellt wird, dass das empfangene Nachrichtenpaket eine Bestimmungsort-Adresse aufwies, die nicht jener des Empfängers entsprach. Diese und andere Fehler, Ausnahmefälle und Unregelmässigkeiten, die von den E/A-Einheiten bzw. den E/A-Schnittstellenelementen festgestellt werden, können eine Situation herbeiführen, in der eine Intervention der CPU erforderlich wird. Bei Systemen nach dem Stand der Technik sind solche Situationen Gegenstand von Interrupts; nicht anders ist es auch im Fall der vorliegenden Erfindung, ausser dass solche Interrupts nicht in der bisher üblichen Weise übertragen werden – mit wenig bis überhaupt keiner Information über die Ursache der Unterbrechung und über ein Signalkabel, das ausschliesslich für solche Zwecke reserviert war – sondern direkt über das Nachrichtensystem, das auch für die E/A-Elemente des Systems verfügbar ist. Dieses Merkmal verringert nicht nur den Bedarf an zusätzlichen Signalleitungen (wodurch der für die Signalleitungen vorgesehene Platz anderweitig genutzt werden kann), sondern schafft auch eine Einrichtung, die bedeutend mehr Informationen über die Ursache für das Interrupt bereitstellen kann, so dass sich ein entsprechender Nachforschungsaufwand für die CPU erübrigt.As shown earlier, a novelty feature of the present invention is the ability to use the TNet network messaging capability to send interrupts to the CPU12to use for clearance. For example, an I / O device may not be able to complete a read or write transaction issued by a CPU for a number of reasons, be it due to an unsuitable address in the message packet with which the transaction occurred transmitted, or due to the receipt of the message packet with a CRC error, or because it is determined that the received message packet had a destination address that did not correspond to that of the recipient. These and other errors, exceptional cases, and irregularities that are detected by the I / O units or the I / O interface elements can create a situation in which the CPU requires intervention. In prior art systems, such situations are subject to interrupts; It is no different in the case of the present invention, except that such interrupts are not transmitted in the usual way - with little to no information about the cause of the interruption and about a signal cable that was reserved exclusively for such purposes - but directly via the messaging system that is also available for the system's I / O elements. This feature not only reduces the need for additional signal lines (which allows the space provided for the signal lines to be used for other purposes), but also creates a facility that can provide significantly more information about the cause of the interrupt, so that there is a corresponding research effort for the CPU is unnecessary.

    Gemäss diesem Merkmal wird ein eingehendes Nachrichtenpaket, welches einen in den Speicher28zu schreibenden Interrupt-Bericht enthält, vorerst zum Zweck der Validierung an die ZVÜ-Logik90geleitet (11). Die ZVÜ-Logik90bestimmt auch, ob es sich bei dem Nachrichtenpaket um eine reguläre E/A-Schreibanforderung, ein Interrupt, oder möglicherweise um einen fehlgeleiteten Zugriff auf den Speicher28handelt, welcher verboten ist. Der Inhalt des ZVÜ-Basisregisters174der ZVÜ-Logik90wird gemeinsam mit dem in dem ZVÜ-Eingangsregister170enthaltenen Seitenzahlfeld170c(11) dazu benutzt, um einen Zeiger für den ZVÜ-Interrupt-Eintrag im Hauptspeicher zu generieren, und zwar in derselben Weise wie weiter oben für normale Nachrichtenpakete beschrieben (d. h. die Zugriffsanforderung auf den Speicher28zum Zweck des Lesens oder Schreibens von Daten). Auf den dergestalt über die zusammengesetzte Adresse identifizierten ZVÜ-Eintrag wird vom Speicher20aus zugegriffen und dieser wird, wie in14Aim Detail veranschaulicht, zum weiteren Gebrauch durch die Interrupt-Logik86der Schnittstelleneinheit24(5) in das ZVÜ-Eintragsregister180gestellt.According to this feature, an incoming message packet which is stored in the memory28contains the interrupt report to be written, initially for the purpose of validation to the ZVÜ logic90headed (11). The ZVÜ logic90also determines whether the message packet is a regular I / O write request, an interrupt, or possibly a misdirected access to memory28acts, which is prohibited. The content of the ZVÜ basic register174the ZVÜ logic90is shared with that in the ZVÜ input register170contained page number field170c(11) used to generate a pointer to the ZVÜ interrupt entry in main memory in the same way as described above for normal message packets (ie the access request to the memory28for the purpose of reading or writing data). From the memory, the ZVÜ entry identified in this way via the composite address is stored20accessed and this is, as in14Aillustrated in detail for further use by the interrupt logic86the interface unit24(5) in the ZVÜ entry register180posed.

    Es ist die Interrupt-Logik86, die für die Behandlung der Interrupt-Information verantwortlich ist, nachdem das Nachrichtenpaket, mit dem die Interrupt-Information übertragen wird, die ZVÜ-Logik90erfolgreich durchlaufen hat. Die Interrupt-Logik86beinhaltet, wie in14Agezeigt, einen Multiplexer (MUX)252, welcher die Inhalte von vier Warteschlangenendregistern256empfängt und daraus eine Auswahl trifft. In ähnlicher Weise empfängt ein MUX254den Inhalt von vier Warteschlangenanfangsregistern262empfängt und daraus eine Auswahl trifft. Der Auswahleingang (s) eines jeden MUX252,254ist entsprechend verkoppelt, um den Inhalt des Segments "q" des abgerufenen (und dem Interrupt-Nachrichtenpaket entsprechenden) ZVÜ-Eintrags zu empfangen, der in dem ZVÜ-Eintragsregister180gehalten wird. Es ist der "q"-Wert, der dazu verwendet wird, um auszuwählen welcher aus jeder Gruppe von Warteschlangenregistern256,262zu verwenden ist.It is the interrupt logic86, which is responsible for handling the interrupt information after the message packet with which the interrupt information is transmitted, the ZVÜ logic90has successfully passed. The interrupt logic86includes, as in14Ashown a multiplexer (MUX)252which contains the contents of four queue end registers256receives and makes a selection from it. Similarly, a MUX receives254the contents of four queue start registers262receives and makes a selection from it. The selection input (s) of each MUX252.254is coupled accordingly to receive the content of the segment "q" of the retrieved (and corresponding to the interrupt message packet) AVT entry that is in the AVT entry register180is held. It is the "q" value that is used to select which of each group of queue registers256.262is to be used.

    Obwohl theoretisch jede beliebige Anzahl von Warteschlangen in dem Speicher eingerichtet werden kann, um die Speicherung von Interrupt-Daten abzuwickeln, ist deren Anzahl aus weiter unten erläuterten Gründen bei der vorliegenden Erfindung auf vier beschränkt. Der Speicherort innerhalb des Speichers28einer jeden solchen Warteschlange ist in dem Wert für die Warteschlangenbasisadresse des ZVÜ-Eintrags, auf den zugegriffen wird, angegeben und dieser wird in dem Eintragsregister180("phys pg #" in11; "base" in14A). Die Inhalte von vier Warteschlangenendregistern256bilden jeweils einen Offset in die bestimmte Warteschlange, die dann durch den Warteschlangenbasisadresswert angegeben wird. Der Inhalt des ausgewählten Warteschlangenendregisters256wird durch den Addierer258mit der Warteschlangenbasisadresse kombiniert und bildet die Eingabestelle in die bezeichnete Warteschlange an welchem die Interrupt-Daten geschrieben werden. Die vier Warteschlangenanfangs- und -endregister262,256schränken die Interrupt-Logik86darauf ein, nur vier Warteschlangen zu beandeln, es sollte jedoch einschlägig gebildeten Fachleuten klar sein, dass auch mehr oder weniger Warteschlangen gehandhabt werden können.Although theoretically any number of queues can be set up in memory to handle the storage of interrupt data, the number is limited to four in the present invention for reasons discussed below. The location within memory28each such queue is specified in the value for the queue base address of the ZVÜ entry that is being accessed and is stored in the entry register180("phys pg #" in11; "base" in14A). The contents of four queue registers256each form an offset into the specific queue, which is then specified by the queue base address value. The content of the out chose end-of-queue register256is through the adder258combined with the queue base address and forms the entry point in the designated queue on which the interrupt data is written. The four queue start and end registers262.256limit the interrupt logic86to only bundle four queues, but it should be clear to those skilled in the art that more or fewer queues can be handled.

    Die Register256spezifizieren den Speicherort des "Endes" von bestimmten Warteschlangen und zeigen auf den Warteschlangeneingang, an welchem die als nächstes empfangenen Interrupt-Daten abgelegt werden. Die vier Warteschlangenanfangsregister262spezifizieren das jeweils andere Ende der bestimmten Warteschlange.The registers256specify the location of the "end" of certain queues and point to the queue entrance where the next received interrupt data are stored. The four queue start registers262specify the other end of the particular queue.

    Die aus der Kombination der Warteschlangenbasisadresse und dem Inhalt des ausgewählten Warteschlangenendregisters256erstellte Adresse ist vorzugsweise so gebildet, dass sie sich an Vierfachwortgrenzen ausrichten. Dies wird dadurch erreicht, dass die niederwertigen vier Bits der Warteschlangeneingangsadresse zwingend auf 0 gesetzt werden.The combination of the queue base address and the content of the selected queue end register256The address created is preferably formed in such a way that it is aligned with quadruple word boundaries. This is achieved in that the low-order four bits of the queue entry address are set to 0.

    Die Bildung der Warteschlangeneingangsadresse wird in14Bin Diagrammform veranschaulicht, worin gezeigt wird wie die höherwertigen sieben Bits des 15 Bit umfassenden Inhalts des ausgewählten Endregisters256zu den Bitpositionen12–31des in dem ZVÜ-Eintragsregister180enthaltenen Warteschlangenbasisadressfeldes hinzugefügt werden; das Ergebnis dieser Summierung bildet die höherwertigen 20 Bits (Bitpositionen12–31) der Warteschlangeneingangsadresse. Der niederwertige 8-Bit-Inhalt des ausgewählten Endregisters256wird direkt als die niederwertigen Bitpositionen 4–11 der Warteschlangeneingangsadresse verwendet. Wie weiter oben abgehandelt, werden zum Zweck der gewünschten Ausrichtung die niederwertigen vier Bits (Bitpositionen 0–3) der Warteschlangeneingangsadresse alle zwingend auf Null gesetzt.The formation of the queue entry address is in14Billustrated in diagram form, showing how the high order seven bits of the 15 bit content of the selected end register256to the bit positions12-31in the ZVÜ entry register180included queue base address field; the result of this summation is the higher 20 bits (bit positions12-31) the queue entry address. The low-order 8-bit content of the selected end register256is used directly as the low order bit positions 4-11 of the queue entry address. As discussed above, for the purpose of the desired alignment, the low-order four bits (bit positions 0-3) of the queue entry address are all set to zero.

    Zusammenfassend kann gesagt werden, dass Nachrichtenpakete, welche Interrupts enthalten, zu Beginn in derselben Weise gehandhabt werden wie andere Nachrichtenpakete auch, und zwar insofern als sie praktisch nichts anderes als Anforderungen für das Schreiben von Daten in den Speicher28der empfangenden CPU12sind und diese Anforderung durch die ZVÜ-Logik90validiert werden muss. Aus dem Nachrichtenpaket entnommene Informationen werden daher in das ZVÜ-Eingangsregister170gestellt und Abschnitte daraus (die Felder170cund170d) verwendet, um aus dem Speicher28heraus die Lage eines ZVÜ-Eintrags zu ermitteln und auf diesen zuzugreifen. Bei dem ZVÜ-Eintrag handelt es sich, sofern das Nachrichtenpaket die richtige Information für die Interruptbehandlung enthalten hat, um einen Interrupt-ZVÜ-Eintrag, der in das ZVÜ-Eintragsregister180gestellt wird und verwendet wird, um das Interrupt zu verifizieren (authentifizieren) und in der Folge unter Verwendung der Interrupt-Logik86die Interrupt-Daten in einer der vier kreisförmigen Warteschlangen zu speichern, die von der in dem ZVÜ-Eintrag enthaltenen Basisadressinformation spezifiziert wird. Der Prozessor20bzw. die Prozessoren20wird /werden daraufhin benachrichtigt, wobei es letzteren freigestellt ist, zu entscheiden ob und wie das Interrupt behandelt wird.In summary, it can be said that message packets containing interrupts are initially handled in the same way as other message packets, in that they practically nothing other than requests for data to be written to memory28the receiving CPU12are and this requirement through the ZVÜ logic90must be validated. Information extracted from the message packet is therefore stored in the ZVÜ input register170and sections of it (the fields170cand170d) used to out of memory28to determine the location of a ZVÜ entry and to access it. If the message packet has the correct information for interrupt handling, the ZVÜ entry is an interrupt ZVÜ entry that is in the ZVÜ entry register180and is used to verify (authenticate) the interrupt and subsequently using the interrupt logic86store the interrupt data in one of the four circular queues specified by the base address information contained in the ZVÜ entry. The processor20or the processors20will then be notified, the latter being free to decide whether and how the interrupt is handled.

    Nachdem die Interrupt-Nachrichtenpaketdaten in der Warteschlange gespeichert worden sind, muss die Adressierung im Hinblick auf den Empfang der Interrupt-Daten des nächsten Nachrichtenpakets aktualisiert werden. Nachdem die Interrupt-Daten in die ausgewählte Warteschlange geschrieben worden sind, wird der Inhalt des in dem ZVÜ-Tabelleneintragsregister180enthaltenen "1"-Feldes durch die Kombinationsschaltung270mit dem ausgewählten Warteschlangenendregister256kombiniert und das Ergebnis wird dann von der "mod z"-Schaltung 273 verarbeitet, um einen neuen Offset in die Warteschlange zu setzen, an welchem die Interrupt-Daten des nächsten Interrupt-Nachrichtenpakets gespeichert werden. Dieser neue Offset-Wert wird an das ausgewählte Warteschlangenendregister256rückübermittelt. Gleichzeitig werden die Ausgabedaten der Kombinationsschaltung270an die Vergleichsschaltung272angelegt. Die Interrupt-Anfragen sind so strukturiert, dass sie kreisförmig ausgebildet sind mit einer Modulgrösse z. Die "mod z"-Schaltung erzeugt Ausgabedaten, die die Zirkularität aufrechterhalten. Da der Warteschlangenendzeiger den nächsten Eingabepunkt in der Warteschlange anzeigt, und der Anfangszeiger angezeugt hat, wie viel Platz in Bezug auf den entsprechenden Endzeiger in der Warteschlange übrigbleibt, bedeutet es, dass die Warteschlange voll ist, wenn diese beiden Werte gleich sind. Somit ist es die Vergleichsschaltung272, die diese Bestimmung vornimmt, und zwar durch einen Vergleich des Anfangszeigers (der von dem ausgewählten Warteschlangenanfangsregister262bereitgestellt wird) mit dem Endzeiger, der als Ergebnis des letzten Eintrags erzeugt wurde. Wenn nun der Anfangspunkt und der Endpunkt für die Warteschlange gleich sind, so gibt die Vergleichsschaltung272ein "Queue Full"-Warnsignal (Warteschlange Voll) aus, das selber wiederum ein Interruptsignal ist. Das "Warteschlange Voll"-Warnsignal wird zu einem eigengenerierten Interrupt, welches an die Prozessoreinheiten20übermittelt wird, um diesen als Warnung zu dienen, dass wenn die Angelegenheit nicht unverzüglich gelöst wird, später empfangene Interrupt-Daten verlorengehen können, denn sollte sich die Warteschlange füllen, so werden zusätzliche Interrupt-Nachrichten ausgeschieden.After the interrupt message packet data has been stored in the queue, the addressing must be updated with a view to receiving the interrupt data of the next message packet. After the interrupt data has been written into the selected queue, the contents of the in the ZVÜ table entry register180contained "1" field by the combination circuit270with the selected queue end register256combined and the result is then processed by "mod z" circuit 273 to queue a new offset where the interrupt data of the next interrupt message packet is stored. This new offset value is sent to the selected queue end register256retransmitted. At the same time, the output data of the combination circuit270to the comparison circuit272created. The interrupt requests are structured so that they are circular with a module size z. The "mod z" circuit generates output data that maintains circularity. Since the queue end pointer indicates the next entry point in the queue, and the start pointer indicated how much space is left in the queue with respect to the corresponding end pointer, it means that the queue is full if these two values are equal. So it is the comparison circuit272which makes this determination by comparing the start pointer (from that of the selected queue start register262with the end pointer that was generated as a result of the last entry. If the start point and the end point for the queue are now the same, the comparison circuit gives272a "Queue Full" warning signal (queue full), which in turn is an interrupt signal. The "queue full" warning signal becomes a self-generated interrupt which is sent to the processor units20is transmitted to serve as a warning that if the matter is not resolved immediately, interrupt data received later may be lost, because if the queue fills up, additional interrupt messages are eliminated.

    Eingehende Nachrichtenpaket-Interrupts bewirken, dass Interrupts an den Prozessor20freigegeben werden, indem sie zuerst eine aus einer Reihe von Bitpositionen eines. Interrupt-Registers280setzen. Warteschlangen-Mehrfacheintrag-Interrupts werden in den Interrupt-Registern280azur Freigabe an den Prozessor gesetzt; Warteschlangen-Einzeleintrag-Interrupts verwenden das Interrupt-Register280b. Welches Bit gesetzt wird, hängt von dem Klasse-Feld (c) des in dem ZVÜ-Eingangsregister180gehaltenen ZVÜ-Eintrag ab.Incoming message packet interrupts cause interrupts to the processor20be released by first selecting one of a series of bit positions. Interrupt register280put. Queue multi-entry interrupts are in the interrupt registers280aset to the processor for release; Single-entry queue interrupts use the interrupt register280b, Which bit ge depends on the class field (c) of the in the ZVÜ input register180ZVÜ entry held.

    Zuerst bezugnehmend auf Warteschlangen-Mehrfacheintrag-Interrupts, gibt die Schnittstelleneinheit bald nachdem ein Warteschlangen-Mehrfacheintrag-Interrupt erkannt worden ist, ein entsprechendes Interrupt-Signal (I1) aus, das an die Decodierschaltung283angelegt wird. Die Decodierschaltung283empfängt und decodiert den 'Klasse (c)'-Wert von dem ZVÜ-Eintragregister180, um zu bestimmen, welcher der Registerpositionen des Registers280azu setzen ist, wobei eine Vorausinformation bezüglich des empfangenen Interrupts an den/die Prozessor en) 20 bereitgestellt wird, d. h. (1) der Typ des freigegebenen Interrupts und (2) die Klasse dieses Interrupts.Referring first to queue multiple entry interrupts, soon after a queue multiple entry interrupt is detected, the interface unit issues a corresponding interrupt signal (I1) to the decoding circuit283is created. The decoding circuit283receives and decodes the 'class (c)' value from the ZVÜ entry register180to determine which of the register positions of the register280ais to be set, whereby advance information regarding the received interrupt is provided to the processor (s) 20, ie (1) the type of the released interrupt and (2) the class of this interrupt.

    In ähnlicher Weise bewirken Warteschlangen-Einzeleintrag-Interrupts bei ihrem Empfang, dass ein entsprechendes Interrupt-Signal (I2) ausgegeben und an die Decodierlogik287angelegt wird, welche auch den 'Klasse (c)'-Wert empfängt und decodiert, um zu bestimmen, welcher Bitabschnitt des Registers280bzu setzen ist.Similarly, queue single entry interrupts, when received, cause a corresponding interrupt signal (I2) to be issued and sent to the decoding logic287which also receives and decodes the 'class (c)' value to determine which bit portion of the register280bis to be set.

    Die Warteschlangenend- und -anfangsregister256,262sind auch an ein weiteres Paar von Multiplexern (MUXs)276,274gekoppelt. Durch den Inhalt eines Aktualisierungsregisters278wird ausgewählt, welches entsprechende Paar von Registern256,262von der Vergleichsschaltung279miteinander verglichen wird. Das Aktualisierungsregister ist durch den Prozessor20beschreibbar, damit ein Registerpaar zum Vergleich ausgewählt werden kann. Stellt es sich heraus, dass die beiden ausgewählten Register256,262inhaltsgleich sind, was darauf hindeutet, dass die betreffende Warteschlange leer ist, so werden die jeweiligen Interrupt-Register gelöscht. Das Klassenregister281wählt das Interrupt-Bit des Interrupt-Registers 280aden muss, das gelöscht werden muss, (als Klasse) aus.The queue end and start registers256.262are also connected to another pair of multiplexers (MUXs)276.274coupled. Through the content of an update register278will select which corresponding pair of registers256.262from the comparison circuit279is compared with each other. The update register is through the processor20writable so that a register pair can be selected for comparison. It turns out that the two selected registers256.262have the same content, which indicates that the relevant queue is empty, the respective interrupt registers are deleted. The class register281selects the interrupt bit of the interrupt register 280a that needs to be cleared (as a class).

    Der folgende kurze Exkurs behandelt die beiden Grundtypen von Interrupts, welche die Prozessoren20betreffen: solche Interrupts, die von einem Nachrichtenpaket an die CPU12übermittelt werden, und solche, die von der CPU12selbst generiert werden, und daher auch als "eigengenerierte" Interrupts bezeichnet werden. Eigengenerierte Interrupts sind das Ergebnis von intern erkannten Fehlern, wie zum Beispiel das von der Vergleichsschaltung272der Interrupt-Logik86generierte "Warteschlange Voll"-Warnsignal. Sie beinhalten aber auch Ausnahmesituationen, die beim Empfang von Nachrichtenpaketen bemerkt werden, welche ursprünglich nicht als Interrupt-Pakete gesendet wurden. Solche Nachrichtenpaket-Interrupts beinhalten Fehler, die darauf zurückzuführen sind, dass herausgefunden wurde, dass ein Nachrichtenpaket ein schlechtes Befehlssymbol aufweist, oder dass das empfangene Nachrichtenpaket einen schlechten CRC aufweist (oder mit einer (weiter unten erklärten) TPB-Zustandsanzeige ("Paket schlecht") gekennzeichnet ist). Diese eigengenerierten Interrupts bewirken, dass bestimmte Bitpositionen eines eigengenerierten Registers280c, an welchem eigengenerierte Interrupts freigegeben werden, in derselben Art und Weise gesetzt werden, wie dies bei der Freigabe von Mehrfacheintrag- und Einzeleintrag-Interrupts erfolgt: nämlich durch das Setzen von Bitpositionen des Interrupt-Registers180a,180b. Ausserdem ist bei der in dem Speicher28gehaltenen ZVÜ-Tabelle die erste Einträgenummer für eigengenerierte ZVÜ-Interrupts reserviert. Wenn ein eigengeneriertes Interrupt-Signal erzeugt wird, um das eigengenerierte Interrupt-Register180czu setzen, so bewirkt dieses auch, dass auf den ZVÜ-Eintrag, welcher der Ausnahmesituation entspricht, die das Interrupt verursacht hat, zugegriffen wird und dass dieser in das ZVÜ-Eintragregister180der ZVÜ-Logik90geladen wird. Von diesem Punkt an wird das Interrupt in derselben Weise behandelt wie Interrupts, die über Nachrichtenpakete übertragen weren.The following brief digression deals with the two basic types of interrupts, which are the processors20concern: those interrupts sent from a message packet to the CPU12are transmitted, and those by the CPU12themselves generated, and are therefore also referred to as "self-generated" interrupts. Self-generated interrupts are the result of internally recognized errors, such as that of the comparison circuit272the interrupt logic86generated "queue full" warning signal. However, they also contain exceptional situations that are noticed when receiving message packets that were not originally sent as interrupt packets. Such message packet interrupts include errors that are due to the fact that a message packet has been found to have a bad command symbol, or that the received message packet has a bad CRC (or with a TPB status indicator (explained below) ("packet bad" ) is marked). These self-generated interrupts cause certain bit positions of a self-generated register280c, on which self-generated interrupts are released, are set in the same way as is done when multi-entry and single-entry interrupts are released: namely by setting bit positions of the interrupt register180a.180b, It is also in the memory28kept the ZVÜ table reserved the first entry number for self-generated ZVÜ interrupts. When a self-generated interrupt signal is generated, the self-generated interrupt register180cto set, this also means that the ZVÜ entry, which corresponds to the exceptional situation that caused the interrupt, is accessed and that this is entered in the ZVÜ entry register180the ZVÜ logic90is loaded. From this point on, the interrupt is handled in the same way as interrupts that are transmitted via message packets.

    Einem jeden der Interrupt-Register280a,280bund280csind bitweise jeweils entsprechende Maskenregister282a,282bund282czugeordnet. Zu jeder Bitposition des Interrupt-Registers280(z. B.280a) existiert eine entsprechende Bitposition in dem Maskenregister282(z. B.282a). Wenn ein bestimmtes Bit des Maskenregisters282gesetzt wird, so wird das Erkennen des zugeordneten Interrupts verhindert.Each of the interrupt registers280a.280band280care corresponding mask registers bit by bit282a.282band282cassigned. For every bit position of the interrupt register280(e.g.280a) there is a corresponding bit position in the mask register282(e.g.282a). If a certain bit of the mask register282is set, the detection of the assigned interrupt is prevented.

    Der Inhalt der Interrupt-Register280wird, wenn er durch den Inhalt der Maskenregister282hindurchgelassen worden ist, an die kombinatorische Logik286gekoppelt, die eine Mehrzahl von ODER-Elementen umfasst, wo er zu sieben Interrupt-"Freigaben" (Signalen) kombiniert wird. Die kombinatorische Logik286koppelt die sieben Interrupt-Freigaben an einen Auffangspeicher288, von wo aus sie an den Prozessor20(20a,20b) gekoppelt werden, der über ein Interrupt-Register zum Empfangen und Halten der Freigaben verfügt.The content of the interrupt register280when it is through the contents of the mask register282has been passed on to combinatorial logic286coupled which comprises a plurality of OR elements where it is combined into seven interrupt "enables" (signals). The combinatorial logic286couples the seven interrupt releases to a buffer288, from where they are sent to the processor20(20a.20b), which has an interrupt register for receiving and holding the releases.

    Ausserdem wird der Inhalt des Registers288an eine Vergleichsschaltung289angelegt und (vor jedem Takt, der das Register288lädt) mit dem Eingangsdaten des Registers288verglichen. Wird dabei ein Unterschied festgestellt, was darauf hindeutet, dass eine Veränderung bei den Interrupts stattgefunden hat (entweder ein Interrupt wurde durch den Prozessor20abgefertigt und seine Freigaben wurden dabei gelöscht, oder ein neues Interrupt wurde freigegeben), wird ein "CHANGE"-Signal an die Prozessorschnittstelle60ausgegeben, um sie zu informieren, dass eine Veränderung bei den Interrupt-Freigaben stattgefunden hat und dass sie dem Prozessor20die Veränderung mitteilen sollte.In addition, the content of the register288to a comparison circuit289created and (before each bar that the register288loads) with the input data of the register288compared. If a difference is found, which indicates that a change in the interrupts has occurred (either an interrupt was triggered by the processor20processed and its releases were deleted or a new interrupt was released), a "CHANGE" signal is sent to the processor interface60issued to inform them that there has been a change in the interrupt releases and that they are the processor20should communicate the change.

    Vorzugsweise ist das ZVÜ-Eintragsregister entsprechend konfiguriert, um wie ein Einzeilen-Cachespeicher betrieben zu werden, komplett mit Identifizierungskennzeichen und gültigem Bit. Das Identifizierungskennzeichen würde aus dem Abschnitt der TNet-Adresse bestehen, der dazu verwendet wird, um den ZVÜ-Eintrag in dem Systemspeicher28aufzufinden. Stimmt das Identifizierungskennzeichen nicht mit der TNet-Adresse eines eingehenden Pakets überein, so wird der korrekte ZVÜ-Eintrag aus dem Systemspeicher28ausgelesen und in das ZVÜ-Eintragsregister206eingelesen, wo es den alten ZVÜ-Eintrag ersetzt. Einschlägig vorgebildete Fachleute können unschwer erkennen, dass auch andere Cachespeicherorganisationen möglich sind, wie zum Beispiel Cache mit teilassoziativer Abbildung, Assoziativcachespeicher, Cache mit direkter Speicherplatzzuordnung, um nur einige zu nennen.The ZVÜ entry register is preferably configured to operate like a one-line cache, complete with identifier and valid bit. The identifier would consist of the section of the TNet address that is used to store the ZVÜ entry in the system memory28find. If the identifier does not match the TNet address of an incoming packet matches, the correct ZVÜ entry from the system memory28read out and in the ZVÜ entry register206read where it replaces the old ZVÜ entry. Relevant trained experts can easily recognize that other cache memory organizations are also possible, such as cache with partially associative mapping, associative cache memory, cache with direct memory allocation, to name just a few.

    Kohärenz:Coherence:

    Datenverarbeitungssysteme, welche Cachespeicher verwenden, sehen sich schon seit langem immer wieder mit dem Problem der Kohärenz konfrontiert: hierbei gilt es zu gewährleisten, dass ein Zugriff auf den Cachespeicher oder den Hauptspeicher nie veraltete Daten rückliefert bzw. gute (aktuelle) Daten überschreibt. Es existieren zahlreiche Lösungen für dieses Problem, von denen viele auf den extensiven Einsatz von komplexer Hardware zurückgreifen. Das Kohärenzproblem tritt auch auf, wenn Daten von einem (CPU-)externen E/A-Gerät oder von einer anderen CPU12in den Speicher geschrieben werden, wie zum Beispiel im Zusammenhang mit dem System10(z. B.2), bei dem Daten von der CPU12Bin den Speicher28der CPU12Ageschrieben werden. Eine Lösung besteht darin, zu gewährleisten, dass eingehende Daten in Speicherpuffer geschrieben werden, und zwar so, dass die Grenzen des Puffers an Cacheblockgrenzen ausgerichtet werden. Diese Lösung findet jedoch nur dann Anwendung, wenn sie zusammen mit Softwarekonfigurationen benutzt wird, die es erlauben, Cachespeicherblöcke für eingehende Daten ungültig zu machen und ein Rückschreiben von Cachespeicherblöcken, welche für abgehende Daten verwendet werden, zu erzwingen.Data processing systems that use cache memory have long been confronted with the problem of coherence for a long time: it is important to ensure that access to the cache memory or main memory never returns outdated data or overwrites good (current) data. There are numerous solutions to this problem, many of which rely on the extensive use of complex hardware. The coherency problem also occurs when data from an (CPU) external I / O device or from another CPU12be written into memory, such as in connection with the system10(e.g.2), where data from the CPU12Bin the store28the CPU12Ato be written. One solution is to ensure that incoming data is written to memory buffers in such a way that the boundaries of the buffer align with cache block boundaries. However, this solution is only used when used in conjunction with software configurations that allow cache blocks to be invalidated for incoming data and to force write-back of cache blocks used for outgoing data.

    So existieren etwa traditionelle Techniken für die softwaremässige Handhabung von Kohärenzproblemen, welche für eingehende Leseanforderungen (von einem E/A-Gerät bzw. einer anderen CPU13), und für abgehende Lese- und Schreibanforderungen. Diese traditionellen Techniken eignen sich jedoch nicht zur Behandlung von eingehenden Schreibanforderungen, welche sich an einen E/A-Puffer im Speicher28richten, der nicht an Cachespeicherblockgrenzen ausgerichtet ist.For example, there are traditional techniques for software handling of coherence problems, which are for incoming reading requests (from an I / O device or another CPU13), and for outgoing read and write requests. However, these traditional techniques are not suitable for handling incoming write requests that are directed to an I / O buffer in memory28that is not aligned to cache block boundaries.

    Die Anforderung der Ausrichtung von E/A-Puffern im Speicher an Cachespeicherblockgrenzen führt jedoch zu einem weniger flexiblen System, und einem System, das mit bestehender (Betriebssystem-)Software inkompatibel sein kann. Daher wird der erfindungsgemässe Interrupt-Mechanismus dazu verwendet, um Kohärenz in einer Weise zu erreichen, die es erlaubt, Datenpuffer im Speicher abzulegen, ohne dabei darauf achten zu müssen, dass die Grenze des betreffenden Puffers an den Grenzen des Cachespeicherblocks ausgerichtet sind.The requirement of alignment of However, I / O buffers in memory at cache block boundaries result to a less flexible system, and a system that works with existing ones (Operating system) software may be incompatible. Hence the invention Interrupt mechanism used to ensure coherence in a way that allows data buffers to be stored in memory without having to pay attention to the fact that the limit of the Buffers are aligned with the boundaries of the cache block.

    In diesem Zusammenhang wird das Feld in dem ZVÜ-Tabelleneintragsregister180(11), das die Obergrenze und die Untergrenze (upr bnd, lwr bnd) des Speicherbereichs28definiert, auf welchen das Ursprungselement des eingehenden Pakets zugreifen darf, an eine Grenzüberschreitungs-Prüfeinheit219(Bdry Xing) angelegt. Die Grenzprüfeinheit219empfängt auch eine Meldung betreffend die Grösse des Cachespeicherblocks, mit dem zu arbeiten die CPU12konfiguriert ist, die Kohärenzbits ("c[1:0]") aus dem 'Erlaubnisse'-Feld des in dem ZVÜ-Eintragsregister180gehaltenen ZVÜ-Eintrags, und das 'Len'-Feld aus der dem ZVÜ-Eingangsregister170entnommenen Header-Information. Die Grenzüberschreitungs-Prüfeinheit stellt fest, ob die Daten des eingehenden Pakets nicht an einer Cachespeichergrenze ausgerichtet sind, und erzwingt – sofern die Kohärenzbits ("c[1:0]") korrekt gesetzt sind – den Abruf einer Adresse eines Interrupt-Eintrags, der dazu verwendet wird, auf die spezielle Kohärenz-Warteschlange zur Speicherung der Daten und des Headers des Pakets zu verweisen, das diese Daten enthält.In this context, the field in the ZVÜ table entry register180(11), which is the upper limit and the lower limit (upr bnd, lwr bnd) of the memory area28defines which the originating element of the incoming packet is allowed to access to a cross-border checking unit219(Bdry Xing). The border test unit219also receives a message regarding the size of the cache block that the CPU is working with12is configured, the coherence bits ("c [1: 0]") from the 'Permissions' field of the in the ZVÜ entry register180ZVÜ entry held, and the 'Len' field from the ZVÜ entry register170extracted header information. The border crossing check unit determines whether the data of the incoming packet is not aligned with a cache memory boundary and, if the coherence bits ("c [1: 0]") are set correctly, forces the retrieval of an address of an interrupt entry which is used to refer to the special coherency queue for storing the data and the header of the packet containing this data.

    Im folgenden wird vorübergehend auf29Bezug genommen, in welcher ein Abschnitt28'eines von dem Speicher28(2) einer CPU12implementierten Speicherplatzes veranschaulicht wird. Wie in29weiterhin dargestellt, sind in dem Speicherabschnitt28'drei Cachespeichergrenzen CBa, CBb, und CBc enthalten, durch die zwei Cachespeicherblöcke C_BLKa und C_BLKb definiert werden. Angenommen, es wird ein Nachrichtenpaket mit einer Schreibanforderung empfangen (z. B. von einer anderen CPU12, oder einem E/A-Gerät), und die in dem Nachrichtenpaket enthaltenen und hier schraffiert dargestellten Daten sind in einen Speicherbereich28zu schreiben, welcher den Speicherabschnitt28'beinhaltet. Genau genommen werden durch die zu schreibenden Daten der Cachespeicherblock C_BLKa nur teilweise, der Cachespeicherblock C_BLKb und andere Cachespeicherblöcke jedoch zur Gänze überschrieben. Enthält der Cachespeicher22der CPU12, welcher beschrieben wird, den Cachespeicherblock C_BLKb oder irgendeinen anderen Cachespeicherblock ausser dem Cachespeicherblock C_BLKa (oder denjenigen Cachespeicherblock, welcher das andere Ende der eingehenden Daten enthält, sofern diese nicht mit einer Cachespeichergrenze übereinstimmen), so kann der Block als "ungültig" markiert werden, wodurch verhindert wird, dass er in den Speicher zurückgeschrieben wird, wo er die zuletzt empfangenen Daten überschreiben würde.The following is temporarily on29Referred to in which a section28 'one of the store28(2) of a CPU12implemented storage space is illustrated. As in29continue to be shown are in the memory section28 'contain three cache boundaries CB a , CB b , and CB c , by which two cache blocks C_BLK a and C_BLK b are defined. Assume that a message packet with a write request is received (e.g. from another CPU12, or an I / O device), and the data contained in the message packet and hatched here are in a memory area28to write which is the memory section28 'includes. The cache block C_BLK a are taken exactly by the data to be written only in part, the cache block C_BLK b, and other cache blocks be overwritten completely. Contains the cache22the CPU12, which is described, the cache block C_BLK b or any other cache block other than the cache block C_BLK a (or the cache block which contains the other end of the incoming data if it does not match a cache limit), the block can be marked as "invalid" which prevents it from being written back to memory where it would overwrite the last received data.

    Wenn jedoch der Cachespeicher22den Cachespeicherblock C_BLKa enthält, so muss die Grenzüberschreitungslogik219(falls sie durch Setzen von "c" in dem 'Erlaubnisse'-Feld aktiviert wurde; siehe dazu die11und13B) der ZVÜ-Logik90(11) das E/A-Paket erkennen und dabei den Cachespeichereintrag teilweise ungültig setzen, und ein Kohärenz-Interrupt erzwingen. Dies bewirkt das Abrufen eines Interrupt-Beschreibers, welcher einen Zeiger auf eine spezielle Interrupt-Warteschlange enthält, wodurch das gesamte eingehende TNet-Anforderungspaket in diese Warteschlange geschrieben wird. Gleichzeitig wird ein Interrupt in das Warteschlangeninterrupt-Register280geschrieben, um den Prozessoren20zu signalisieren, dass ein Abschnitt der eingehenden Daten sich in der speziellen Warteschlange befindet.However, if the cache22contains the cache block C_BLK a , the border crossing logic must219(if it was activated by setting "c" in the 'Permissions'field; see the11and13B) of the ZVÜ logic90(11) recognize the I / O packet and thereby partially invalidate the cache entry, and force a coherency interrupt. This causes an interrupt to be retrieved writer that contains a pointer to a special interrupt queue, whereby the entire incoming TNet request packet is written to this queue. At the same time, an interrupt is placed in the queue interrupt register280written to the processors20to signal that a portion of the incoming data is in the special queue.

    Kurz gesagt, wenn ein eingehendes Paket Daten beinhaltet, die in den Speicher28zu schreiben sind, so prüft die Grenzüberschreitungslogik219, ob die Grenzen des Puffers, in welchen die Daten geschrieben werden sollen, an den Grenzen des Cachespeichers ausgerichtet sind. Ist dem der Fall, so werden die Daten anweisungsgemäss geschrieben. Andernfalls wird das Paket (Header und Daten) in eine spezielle Warteschlange geschrieben und die Prozessoren durch den weiter oben beschriebenen, eigengenerierten Interruptprozess von diesem Umstand in Kenntnis gesetzt. Die Prozessoren können dann die Daten von der speziellen Warteschlange in den Cachespeicher22verschieben und den Cachespeicherinhalt später in den Speicher22schreiben, damit gewährleistet ist, dass keine guten Daten überschrieben werden oder anderweitig verloren gehen und dass die Kohärenz zwischen dem Cachespeicher22und dem Speicher28gewahrt bleibt.In short, if an incoming packet contains data that is in memory28the border crossing logic checks219whether the boundaries of the buffer in which the data is to be written are aligned with the boundaries of the cache memory. If this is the case, the data will be written according to the instructions. Otherwise, the packet (header and data) is written into a special queue and the processors are informed of this by the self-generated interrupt process described above. The processors can then cache the data from the special queue22move and the cache content later into memory22Write to ensure that no good data is overwritten or otherwise lost and that there is consistency between the caches22and the memory28remains preserved.

    BLOCKÜBERTRAGUNGSMASCHINE (BÜM)BLOCK TRANSFER MACHINE (BÜM)

    Da es dem Prozessor20nicht möglich ist, an ausserhalb der CPU12Agelegene Elemente Informationen auf direktem Weg zu übermitteln (d. h. zu senden), steht die BÜM88der Schnittstelle24a(5) für ein indirektes Verfahren zur Informationsübermittlung zur Verfügung.Since it's the processor20is not possible on outside the CPU12ABÜM is responsible for transmitting (ie sending) located elements directly88the interface24a(5) for an indirect method of information transfer.

    Die BÜM88ist ein Mechanismus, der verwendet wird, um den gesamten prozessorinitiierten E/A-Datenverkehr zum Transport von Informationsblöcken zu implementieren. Die BÜM88ermöglicht die Erstellung von Lese- und Schreibpaketen mit einer Länge, die der maximalen Länge entspricht, welche gemäss der TNet-Paketdefinition erlaubt ist, also derzeit 64 Bytes. Die BÜM88stellt zwei "virtuelle" Kanäle bereit, von denen einem eine höhere Priorität eingeräumt wird als dem anderen. Wie in15, auf die hier Bezug genommen wird, veranschaulicht, beinhaltet die BÜM88zwei BÜM-Register300,302, deren Inhalt an den MUX306(der Schnittstelleneinheit24a;5) gekoppelt ist und dazu verwendet wird, um über die (in15nicht dargestellt) Speichersteuerungen26(in15nicht dargestellt) auf den Systemspeicher28zuzugreifen. Ein Abschnitt der Register300,302enthält Zeiger (d. h. BÜM-Adresse 0 und BÜM-Adresse 1) auf den Anfang der BÜM-Datenstruktur304in dem Speicher28der CPU12A(2). Jedes Ma1 wenn Informationen an das eine oder andere ausserhalb der CPU12Agelegene Element (z. B. die CPU12Boder irgendeines der E/A-Geräte17,18der E/A-Paket-Schnittstelle16) zu senden ist bzw. von einem solchen zu empfangen ist, schreiben die Prozessoren eine Datenstruktur304in den Speicher28. Jede Datenstruktur muss dabei an einer Vierfachwortgrenze beginnen und die BÜM-Register300,302sind nur von den Prozessoren20beschreibbar. Beschreibt ein Prozessor tatsächlich einen der BÜM-Register300,302beschreibt, so tut er dies mit einem Wort, welches das Anforderungsbit (rc0, rc1) in einen klaren Zustand versetzt, der dazu dient, den BÜM-Prozess zu initiieren, welcher von der BÜM-Ablaufsteuereinheit gesteuert wird.The BÜM88is a mechanism used to implement all processor-initiated I / O traffic to transport blocks of information. The BÜM88enables the creation of read and write packets with a length that corresponds to the maximum length allowed according to the TNet packet definition, i.e. currently 64 bytes. The BÜM88provides two "virtual" channels, one of which is given higher priority than the other. As in15, to which reference is made here, includes the BÜM88two BÜM registers300.302whose content is sent to the MUX306(the interface unit24a;5) and is used to report on the (in15not shown) memory controls26(in15not shown) on the system memory28access. A section of the register300.302contains pointers (ie BÜM address 0 and BÜM address 1) to the beginning of the BÜM data structure304in the store28the CPU12A(2). Every time if information is sent to one or the other outside the CPU12Aelement (e.g. the CPU12Bor any of the I / O devices17.18the I / O packet interface16) is to be sent or received by one, the processors write a data structure304in the store28, Each data structure must start at a quadruple word boundary and the BÜM register300.302are only from the processors20writable. A processor actually describes one of the BÜM registers300.302he does so in one word, which puts the request bit (rc0, rc1) in a clear state, which serves to initiate the BÜM process, which is controlled by the BÜM sequence control unit.

    Die BÜM-Register300,302beinhalten auch Fehlerbits (e0, e1), die zur Übertragung einer Zeitablauffehlermeldung oder sonstigen negativen Rückmeldung dienen. Die Fehlerbits werden gelöscht, wenn das entsprechende BÜM-Register beschrieben wird. Durch das Fehlerursachenbit (ec) wird zwischen Zeitablauffehlern und sonstigen negativen Rückmeldungen unterschieden.The BÜM register300.302also contain error bits (e0, e1) that are used to transmit a timing error message or other negative feedback. The error bits are cleared when the corresponding BÜM register is written. The error cause bit (ec) distinguishes between timing errors and other negative feedback.

    Wenn Informationen von den Prozessoren20an eine externe Einheit übertragen werden, werden die zu übertragenden Informationen in dem Datenpufferabschnitt304bgehalten. Wenn von einer externen Einheit kommende Informationen von den Prozessoren20empfangen werden, ist der Datenpufferabschnitt304bjener Ort, in welchem die Leseantwortinformation gehalten werden soll.If information from the processors20are transmitted to an external unit, the information to be transmitted is in the data buffer section304bheld. When information coming from an external unit from the processors20is received is the data buffer section304bthe place where the read response information is to be kept.

    Der Anfang der Datenstruktur304, der von dem Prozessor20geschriebene Abschnitt304, beinhaltet ein Informationsfeld (Dest), in welchem das externe Element angegeben wird, welches das Paket empfängt, welches gesendet werden wird. Der Abschnitt304abeinhaltet auch ein Informationsfeld (TYPE), welches die gewünschte Operation beschreibt (z. B. Information über Lese- oder Schreiboperation), ein Längeninformationsfeld (Len), das die Anzahl der Datenbytes beschreibt, welche geschrieben oder angefordert werden, und ein Adressinformationsfeld (Address), welches angibt, wo an dem externen Element (Dest) sich die gewünschten Daten befinden bzw. wohin die übertragenen Daten zu schreiben sind. Diese Informationen werden von der Paketüberträgereinheit94(5) verwendet, um das Paket in der in den3-4gezeigten Form zusammenzustellen.The beginning of the data structure304by the processor20written section304, contains an information field (Dest) in which the external element is specified which receives the packet which will be sent. The section304aalso includes an information field (TYPE) that describes the desired operation (e.g. information about read or write operation), a length information field (Len) that describes the number of data bytes that are written or requested, and an address information field (Address ), which indicates where the desired data is located on the external element (Dest) or where the transferred data is to be written. This information is provided by the packet transmitter unit94(5) used to package the in the3-4to compose the form shown.

    In dem Datenstrukturabschnitt304abefindet sich unmittelbar auf die Adressinformationen folgend ein Wort (Local Buffer Ptr) welches die Adresse jenes Ortes im Speicher enthält, an dem sich der Datenpufferabschnitt304bbefindet. Dieses wird seinerseits unmittelbar von einem Wort gefolgt, welches einen Verkettungszeiger, ein Listenende-Flag (el) zur Anzeige, dass eine Anforderung vollständig ist, ein Zeitablauf-Interruptbit bzw. ein Negativrückmeldungs-Maskenbit (it), einen Fertigstellungsinterruptanzeiger (ic) sowie eine Prüfsummenanforderung (cs) umfasst.In the data structure section304aimmediately after the address information there is a word (Local Buffer Ptr) which contains the address of the location in memory at which the data buffer section is located304blocated. This in turn is immediately followed by a word that contains a chaining pointer, an end of list flag (el) to indicate that a request is complete, a timeout interrupt bit or a negative feedback mask bit (it), a completion interrupt indicator (ic) and one Checksum requirement (cs) includes.

    Für jeden im Speicher befindlichen und zu einem externen Element (z. B. zu einer E/A-Speichereinrichtung) zu verschiebenden Datenabschnitt mit einer Länge von bis zu maximal 64 Byte wird jeweils eine Datenstruktur304verwendet. Die BÜM wird betrieben, um jeweils in Reaktion auf eine Anforderungsstruktur sequentiell auf den Speicher28zuzugreifen und aus diesem Daten in Form von 64-Byte-Segmenten zu entnehmen, wobei für jedes Segment ein Nachrichtenpaket erstellt wird und dieses Nachrichtenpaket abgeschickt wird. Der Verkettungszeiger führt die BÜM zu der nächsten Datenstruktur für die nächsten 64 Bytes an Daten, sofern nicht das Listenende-Bit (el) gesetzt ist, welches bewirkt, dass die Operation beendet wird.For everyone in memory and to an external element (e.g. an I / O memory direction) of the data section to be moved with a length of up to a maximum of 64 bytes, one data structure each304used. The BÜM is operated to sequentially access memory in response to a request structure28to access and extract data from this in the form of 64-byte segments, a message packet being created for each segment and this message packet being sent off. The chaining pointer leads the BÜM to the next data structure for the next 64 bytes of data, unless the end of the list bit (el) is set, which causes the operation to be terminated.

    Sind Daten zu einer Anzahl verschiedener externer Elemente zu senden, so muss für jedes einzelne dieser verschiedenen Elemente eine eigene Datenstruktur (bzw. eigene Datenstrukturen, falls mehr als 64 Bytes zu übertragen sind) eingerichtet werden. Diese einzelnen Datenstrukturen können dann unter Verwendung der in den Verkettungszeigerfeldern der Anforderungsstrukturen enthaltenen Verkettungszeiger miteinander verkettet werden.Are data on a number of different to send external elements, so must be different for each one of these Elements have their own data structure (or their own data structures, if more than 64 bytes to transfer are) to be set up. These individual data structures can then using the in the chaining pointer fields of the requirement structures contained chaining pointers are chained together.

    Das Verkettungszeigerfeld wird verwendet, um als Inhalt des BÜM-Registers für nachfolgende Datenstrukturen zu fungieren. Wenn zum Beispiel ein in dem Speicher28vorhandener, grosser Datenblock an N verschiedene, externe Geräte zu senden ist, so wird für ein jedes der N externen Elemente eine Datenstruktur in den Speicher geschrieben, wobei jede Datenstruktur angibt, an welchem Ort im Speicher28die BÜM-Logik88die zu übermittelnden Daten finden kann. Es wird sodann von der BÜM-Logik88auf die Daten für jedes Element zugegriffen, es werden Nachrichtenpakete erstellt, die diese Daten enthalten, und es werden diese Pakete an den Paketüberträger120übermittelt, von wo aus sie in angemessener Weise über das TNet übertragen werden. Daraufhin wird, sofern eine Verkettung mit einer anderen Datenstruktur erforderlich ist, auf den in der Datenstruktur enthaltenen Verkettungszeiger zugegriffen und dieser in das entsprechende BÜM-Register300,302geschrieben, welches die Aktion initiierte, wodurch die Adresse für die nächste Struktur für jenes Element bereitgestellt wird, das als nächstes ein Anforderungspaket empfangen soll.The chaining pointer field is used to act as the content of the BÜM register for subsequent data structures. If, for example, one in memory28If there is a large data block to be sent to N different external devices, a data structure is written to the memory for each of the N external elements, each data structure indicating the location in the memory28the BÜM logic88can find the data to be transmitted. It is then from the BÜM logic88the data for each element is accessed, message packets are created that contain this data, and these packets are sent to the packet carrier120transmitted from where they are appropriately transmitted via the TNet. Then, if a chaining with another data structure is required, the chaining pointer contained in the data structure is accessed and this into the corresponding BÜM register300.302which initiated the action, providing the address for the next structure for the element that is next to receive a request packet.

    Ein gesetztes Listenende-Bit (el) zeigt an, dass das Ende der Verkettung erreicht ist, woraufhin die BÜM-Verarbeitung angehalten wird.A set end of list bit (el) indicates that the end of chaining has been reached, after which the BÜM processing is stopped becomes.

    Das Fertigstellungsinterrupt-Bit (ic) bewirkt, sofern es gesetzt ist, dass die Schnittstelleneinheit24aein Interrupt (BTECmp) ausgibt, welches ein Bit in dem Interrupt-Register280(14A) setzt, um die Fertigstellung des vorangegangenen, von der BÜM übertragenen Pakets anzeigt (nicht zu verwechseln mit jenem, auf welches der Verkettungszeiger zeigt).The completion interrupt bit (ic), if it is set, causes the interface unit24aan interrupt (BTECmp) that outputs a bit in the interrupt register280(14A) sets to indicate the completion of the previous packet transmitted by the BÜM (not to be confused with the one pointed to by the chaining pointer).

    Das Zeitablauf-Interruptbit (it) bewirkt, sofern es gesetzt ist, dass die Schnittstelleneinheit24aein Interruptsignal an den Prozessor20ausgibt, wenn die für die Bestätigung des Zugriffs vorgesehene Zeit überschritten wird (d. h. wenn der Anforderungs-Zählerzeitgeber (nicht dargestellt) ein Zeitablaufsignal ausgibt, das anzeigt, dass eine erwartete Antwort nicht innerhalb der dafür zugemessenen Zeit empfangen wurde), oder wenn als Antwort eine negative Rückmeldung eingeht (was darauf hindeutet, dass das Zielelement der Anforderung diese nicht verarbeiten konnte).The timeout interrupt bit (it), if it is set, causes the interface unit24aan interrupt signal to the processor20issues when the time to acknowledge access is exceeded (ie, when the request counter timer (not shown) issues a time-out signal indicating that an expected response was not received within the allotted time), or when a response was given received negative feedback (indicating that the target element of the request could not process it).

    Wenn schliesslich das Prüfsummenbit (cs) gesetzt ist, so werden die in das externe Element zu schreibenden Daten durch den in der BÜM88(Schnittstelle24a;5) enthaltenen Prüfsummengenerator (nicht dargestellt) geleitet, wo eine Prüfsummenmenge zu erstellt wird. Die generierte Prüfsumme kann in den Speicher geschrieben werden und anschliessend in ein eigenes Paket verpackt werden und an den Bestimmungsort des Nachrichtenpakets (bzw. der Nachrichtenpakete) gesendet werden, worin die Daten enthalten sind, aus denen die Prüfsumme gebildet worden ist.When the checksum bit (cs) is finally set, the data to be written into the external element is replaced by the data in the BÜM88(Interface24a;5) contained checksum generator (not shown) where a checksum set is created. The generated checksum can be written into the memory and then packaged in a separate packet and sent to the destination of the message packet (or the message packets), which contains the data from which the checksum was formed.

    Somit kann zusammenfassend gesagt werden, dass wenn die Prozessoren20der CPU12ADaten an eine externe Einheit senden wollen, sie eine Datenstruktur304in den Speicher28schreiben, welche in Abschnitt304ader Datenstruktur bezeichnende Informationen und im Pufferabschnitt304bdie eigentlichen Daten umfassen. Die Prozessoren bestimmen daraufhin die Priorität der Daten und beschreiben das BÜM-Register300,302mit der Adresse in dem Speicher28, an welcher die Datenstruktur304(d. h. der Headerabschnitt304a) aufzufinden sind, wobei gleichzeitig das Anforderungsfertigstellungsbit (rc1) des BÜM-Registers300,302gelöscht wird, und die BÜM-Operation veranlasst wird, gesteuert von der BÜM-Ablaufsteuereinheit306ihre Funktion aufzunehmen. Auf die in dem Abschnitt304aenthaltenen Felder 'Dest', 'TYPE', 'Len' und 'Address" wird von dem Speicher28aus zugegriffen und die darin befindlichen Informationen werden an den Paketüberträger120übermittelt, wo sie ordnungsgemäss in Paketform gebracht werden. Ist in der Datenstruktur304spezifiziert, dass es sich bei der Übertragung um eine Schreiboperation handeln soll, so wird auf den lokalen Pufferzeiger zugegriffen, welcher verwendet wird, um den Datenpufferabschnitt304bausfindig zu machen. Anschliessend erfolgt der Zugriff auf die Daten, deren Übermittlung an den Paketüberträger120, deren Paketierung gemeinsam mit den Header- und Adressinformationen, und deren Versand.In summary, it can be said that if the processors20the CPU12AWant to send data to an external unit, they have a data structure304in the store28write which in section304aof the data structure and in the buffer section304binclude the actual data. The processors then determine the priority of the data and describe the BÜM register300.302with the address in memory28on which the data structure304(ie the header section304a) can be found, at the same time the request completion bit (rc1) of the BÜM register300.302is cleared and the BÜM operation is initiated, controlled by the BÜM sequence control unit306to take up their function. On the in the section304aContained fields 'Dest', 'TYPE', 'Len' and 'Address' is from the memory28accessed and the information contained therein is sent to the parcel carrier120transmitted where they are properly packaged. Is in the data structure304specifies that the transfer should be a write operation, the local buffer pointer is used, which is used to hold the data buffer section304bto detect. The data is then accessed and transmitted to the parcel carrier120, their packaging together with the header and address information, and their dispatch.

    Wenn die Datenstruktur304eine Leseanforderung bezeichnet (d. h. wenn die Prozessoren20auf Daten von einer externen Einheit – entweder einem E/A-Gerät oder einer CPU12– zugreifen wollen), wird unter Verwendung der Felder 'Len' und 'Local Buffer Ptr' eine Schreibanforderung für den Speicher28generiert, wenn das Leseantwortpaket (von dem externen Element, an das die Anforderung adressiert wurde) retourniert wird. Die Daten werden in dem Eingangspaket-Zwischenspeicher110gestellt, bis die lokale Speicherschreiboperation durchgeführt ist.If the data structure304denotes a read request (ie when the processors20to data from an external device - either an I / O device or a CPU12- want to access), using the fields 'Len' and 'Local Buffer Ptr' a write request for the memory28generated when the read response packet (from the external element to which the request was addressed) is returned. The data is buffered in the input packet110until the local memory write operation is performed.

    Antworten auf eine prozessorgenerierte Leseanforderung an eine externe Einheit werden von der ZVÜ-Tabellenlogik146nicht verarbeitet. In diesem Fall wird vielmehr, wenn die Prozessoren20die BÜM-Datenstruktur einrichten, der Anforderung eine Transaktionsfolgenummer (TFN) zugewiesen und in das Headerfeld des Nachrichtenpakets integriert, das von der BÜM88zusammengestellt und gesendet wird und bei dem es sich um ein bereits weiter oben besprochenes Paket vom Typ HAC (4) handelt. Die Prozessoren20nehmen auch eine Speicheradresse in die BÜM-Datenstruktur auf, an welcher die Daten, nachdem sie empfangen worden sind, abzulegen sind. Wenn die BÜM-Logik88das Paket abschickt, wird die Speicheradresse des Pufferspeicherorts in eine (nicht dargestellte) in der Anforderungstransaktionslogik100enthaltene Registerdatei geschrieben (5), wobei die TFN als Zeiger in die Registerdatei verwendet wird.Responses to a processor-generated read request to an external unit are provided by the ZVÜ table logic146not processed. In this case, rather, if the processors20set up the BÜM data structure, assigned a transaction sequence number (TFN) to the request and integrated it in the header field of the message packet, which was created by the BÜM88is compiled and sent and which is a package of the type HAC (already discussed above)4) acts. The processors20also include a memory address in the BÜM data structure where the data is to be placed after it has been received. If the BÜM logic88When the packet is dispatched, the memory address of the buffer location is converted into one (not shown) in the request transaction logic100included register file written (5), using the TFN as a pointer to the register file.

    Wenn die Antwort (welche in Form eines HDC-Nachrichtenpakets erfolgen wird –4B) von der CPU12empfangen wird, verwendet die Anforderungstransaktionslogik100die Transaktionsfolgenummer (TFN) aus dem Header des Pakets als Zeiger in die (nicht dargestellte) Registerdatei, um die entsprechende Pufferspeicheradresse ausfindig zu machen, an welcher die in dem eingehenden Nachrichtenpaket enthaltenen Daten innerhalb des Speichers28abzulegen sind.If the answer (which will be in the form of an HDC message packet -4B) from the CPU12is received uses the request transaction logic100the transaction sequence number (TFN) from the packet header as a pointer to the register file (not shown) to find the corresponding buffer memory address at which the data contained in the incoming message packet is within memory28are to be discarded.

    Im Hinblick auf ein besseres Verständnis der Priorisierung der BÜM-Register300,302sei hier angenommen, dass es sich bei der vorangegangenen Datenübertragung von der CPU12Azu einer externen Einheit um die Übertragung eines grossen Datenblocks handelt. Demgemäss würde von den Prozessoren20in dem Speicher28eine Reihe von Datenstrukturen eingerichtet werden, von denen eine jede (mit Ausnahme der letzten) jeweils einen Verkettungszeiger zu einer weiteren Datenstruktur enthält, und wobei die Gesamtsumme dieser Datenstrukturen (in den Datenpufferabschnitten304bder Datenstrukturen304) die zu sendenden Daten umfasst. Es sei nun weiter angenommen, dass von den Prozessoren20eine Anforderung mit höherer Priorität durchgeführt werden möchte. IN solch einem Fall würde die einer solchen Anforderung mit höherer Priorität zugeordnete Datenstruktur304in dergleichen Form wie weiter oben beschrieben in den Speicher28geschrieben werden. Dann würde das mit höherer Priorität zu behandelnde BÜM-Register300mit der BÜM-Adresse beschrieben werden, die zum Wiederauffinden der Datenstruktur nötig ist, woraufhin das Anforderungsfertigstellungsanzeigebit (rc0) gelöscht würde.With a view to a better understanding of the prioritization of the BÜM registers300.302here it is assumed that the previous data transfer from the CPU12Ato an external unit is the transfer of a large block of data. Accordingly, the processors20in the store28a series of data structures are set up, each of which (with the exception of the last one) each contains a chaining pointer to a further data structure, and the total of these data structures (in the data buffer sections304bof the data structures304) includes the data to be sent. It is now assumed that the processors20wants to make a request with higher priority. In such a case, the data structure associated with such a request would have higher priority304into the memory in the same form as described above28to be written. Then the BÜM register to be treated with higher priority300with the BÜM address that is necessary to retrieve the data structure, whereupon the request completion indication bit (rc0) would be cleared.

    Die durch das Beschreiben des BÜM-Registers300angezeigte BÜM-Anforderung wird jedoch nicht sofort gestartet. Sie wartet bis die von dem Inhalt des BÜM-Registers302initiierte Operation zwischen Paketen anhält. Weitere von dem Inhalt des BÜM-Registers302angekündigte BÜM-Operationen werden vorübergehend zugunsten der von dem Inhalt des BÜM-Registers300angezeigten BÜM-Operation in Warteposition gehalten. Diese BÜM-Operation wird bis zu ihrer Fertigstellung fortgesetzt, woraufhin die von dem Inhalt des BÜM-Registers302gemeldete BÜM-Operation wiederaufgenommen wird und bis zu ihrer Fertigstellung abgearbeitet wird, sofern nicht das BÜM-Register300erneut mit einem anderen BÜM-Operationsbeschreiber beschrieben wird.The by writing the BÜM register300displayed BÜM request is not started immediately. It waits until the contents of the BÜM register302initiated operation between packets stops. More of the content of the BÜM register302announced BÜM operations will be temporarily in favor of the contents of the BÜM register300displayed BÜM operation held in waiting position. This BÜM operation continues until it is completed, whereupon the contents of the BÜM register302reported BÜM operation is resumed and processed until its completion, unless the BÜM register300is described again with another BÜM operation descriptor.

    Speichersteuerung:Memory controller:

    Im folgenden wird vorübergehend wieder auf2Bezug genommen, in welcher die Schnittstelleneinheiten24a,24büber ein Paar von Speichersteuerungen (SpSt)26a,26bauf den Speicher28zugreifen. Die Speichersteuerungen schaffen eine schnellfehlende Schnittstelle zwischen den Schnittstelleneinheiten24und dem Speicher28. Die Speichersteuerungen26stellen die für den Zugriff auf die Speichermatrix28nötige Steuerlogik bereit (die in der Form eines dynamischen Schreib-Lese-Speichers (DRAM) implementiert ist). Die Speichersteuerungen empfangen Speicheranforderungen von den Schnittstelleneinheiten24und führen Lese- und Schreiboperationen aus und stellen Aktualisierungssignale für die DRAMs, die die Speichermatrix an 28 implementieren. Die beiden Speichersteuerungen26a,26bwerden parallel zueinander betrieben, um einen 72 Bit umfassenden Datenpfad zwischen der Speichermatrix28und den Schnittstelleneinheiten24a,24bbereitzustellen, die eine FKC-Konfiguration nach dem Schema SBC-DBD-SbD verwenden, wobei b = 4, bei einer Gesamtmenge von 100 Bits (64 Datenbits plus 28 Adressbits plus 8 Prüfbits), von denen nur 72 Bits (64 Datenbits und 8 Prüfbits) tatsächlich in den Speicher28geschrieben werden.The following is temporarily on again2Referenced in which the interface units24a.24bvia a pair of memory controllers (SpSt)26a.26bon the store28access. The memory controls create a fast missing interface between the interface units24and the memory28, The memory controls26provide the for access to the memory matrix28necessary control logic ready (which is implemented in the form of a dynamic random access memory (DRAM)). The memory controllers receive memory requests from the interface units24and perform read and write operations and provide update signals for the DRAMs that implement the memory array at 28. The two memory controllers26a.26bare operated in parallel to each other to create a 72 bit data path between the memory matrix28and the interface units24a.24bto provide, which use an FKC configuration according to the scheme SBC-DBD-SbD, where b = 4, for a total of 100 bits (64 data bits plus 28 address bits plus 8 check bits), of which only 72 bits (64 data bits and 8 check bits ) actually in memory28to be written.

    Im folgenden wird vorübergehend auf16Bezug genommen, in welcher die beiden Speichersteuerungen26a,26bgezeigt werden, die parallel betrieben werden, um 144 Bits an Daten von dem Speicher28abzurufen. Eine SpSt (z. B.26a) ist entsprechend angeschlossen, um auf zwei 32-Bit-Wörter an aufeinanderfolgenden, geraden Adressen, sowie auf 8 Prüfbits gleichzeitig zuzugreifen, um so einen 72-Bit-Pfad330azwischen der SpSt und dem Speicher28zu bilden. Die andere SpSt (d. h.26b) ist entsprechend angeschlossen, um in ähnlicher Weise auf zwei ungerade 32-Bit-Wörter, sowie auf weitere 8 Prüfbits zuzugreifen, um so einen zweiten 72-Bit-Pfad330bzu bilden. Diese Anordnung ermöglicht es den beiden Speichersteuerungen26a,26b, zusammenzuarbeiten und gleichzeitig den Schnittstelleneinheiten24mit minimaler Latenzzeit ein 64-Bit-Wort zur Verfügung zu stellen, von dem eine Hälfte (D0) von der SpSt26aund die andere Hälfte (D1) von der SpSt26bstammt. Die Schnittstelleneinheiten24generieren und prüfen die FKC-Prüfbits. Die verwendete FKC-Konfiguration erkennt und korrigiert nicht nur (Einzelbit-)Datenfehler, sondern erkennt auch sämtliche Doppelbitfehler, sowie jeden Fehler bis hinauf zu Vierbitfehlern aus jedem einzelnen DRAM. Die schnellfehlende Ausführung prüft die Parität bei Adressübertragungen zwischen der Schnittstelle29und der SpSt26, dem Bus25, sowie auch in internen Registern.The following is temporarily on16Referenced in which the two memory controllers26a.26bare shown which are operated in parallel to 144 bits of data from the memory28retrieve. An SpSt (e.g.26a) is connected accordingly in order to access two 32-bit words at consecutive, even addresses, as well as 8 check bits at the same time, in order to create a 72-bit path330abetween the SpSt and the warehouse28to build. The other SpSt (ie26b) is connected accordingly in order to access two odd 32-bit words and a further 8 test bits in a similar way, in order to access a second 72-bit path330bto build. This arrangement enables the two memory controllers26a.26bto work together while maintaining the interface units24to provide a 64-bit word with minimal latency, half of which (D0) from the SpSt26aand the other half (D1) from the SpSt26bcomes. The interface units24generate and check the FKC check bits. The FKC configuration used not only detects and corrects (single-bit) data errors, but also detects everything che double bit errors, as well as every error up to four bit errors from each individual DRAM. The fast missing execution checks the parity for address transfers between the interface29and the SpSt26, the bus25, as well as in internal registers.

    Vom Standpunkt der Schnittstelleneinheiten24aus gesehen, wird mit zwei Befehlen auf den Speicher28zugegriffen: einem "Lese N-Doppelwort" und einem "Schreibe N-Doppelwort". Beide dieser Befehle ergehen an die Speichersteuerungen26, mit Adresse und Steuerinformation in der ersten 36-Bit-Übertragung und einer Byte-Zählung in der zweiten 32-Bit-Übertragung. Bei Schreiboperationen gliedern die Speichersteuerungen26den Befehl in entweder eine Doppelwort-Schreiboperation oder in einen Block von Doppelwort-Schreiboperationen auf. Im Fall von Leseoperationen werden die angeforderten Daten entweder in einer einzelnen Doppelwort-Leseoperation oder in einem Blockleseformat retourniert. Das "data valid"-Signal teilt den Schnittstelleneinheiten24zwei Zyklen im voraus mit, dass Lesedaten retourniert bzw. nicht retourniert werden.From the point of view of the interface units24seen with two commands to the memory28accessed: a "read N double word" and a "write N double word". Both of these commands go to the memory controllers26, with address and control information in the first 36-bit transmission and a byte count in the second 32-bit transmission. The memory controls are structured for write operations26the command into either a double word write or a block of double word writes. In the case of read operations, the requested data is returned either in a single double word read operation or in a block read format. The "data valid" signal shares the interface units24two cycles in advance with reading data being returned or not being returned.

    Wie weiter oben gezeigt, hat der Instandhaltungsprozessor (IP18;1A) zwei Möglichkeiten, auf die CPUs12zuzugreifen. Die eine besteht darin, die TNet-Struktur, einschliesslich der Router14, zu verwenden, um paketierte Informationen zu senden (bzw. zu empfangen). Eine andere, wenn auch beschränktere Möglichkeit besteht über einen Online-Zugangspunkt (OLZP), der in die verschiedenen Elemente des Systems10(z. B. die Router14, die CPUs12, die E/A-Paket-Schnittstellen16) integriert ist. Diese letztere Zugriffsform wird in17veranschaulicht, worin ein serieller OLZP-Port285gezeigt wird, welcher für den IP18über jede der Speichersteuerungen26sowohl Lese- als auch Schreibzugriff bereitstellt. (In17wird der OLZP-Zugriff auf die Speichersteuerung26adargestellt; die Speichersteuerung26bist im wesentlichen von identischer Bauart.) Zum Zeitpunkt des Ladens beschreibt der IP18ein in dem OLZP enthaltenes Register mit Befehlen, die es den Prozessoren20erlauben, ein Abbild einer Befehlsfolge in dem Speicher zu erstellen, das es ihnen (den Prozessoren20) ermöglicht, ihren Betrieb aufzunehmen, indem sie zum Beispiel zu E/A-Geräten gehen, um Befehle und Daten von einem externen (Speicher-)Gerät zu übertragen, mit denen der Ladevorgang abgeschlossen wird.As shown above, the maintenance processor (IP18;1A) two ways on the CPUs12access. One is the TNet structure, including the router14to use to send (or receive) packetized information. Another, albeit more limited, option is through an online access point (OLZP) that goes into the various elements of the system10(e.g. the router14who have favourited CPUs12who have favourited I / O packet interfaces16) is integrated. This latter form of access is in17illustrates where a serial OLZP port285is shown which one for the IP18over each of the memory controllers26provides both read and write access. (In17becomes OLZP access to the memory controller26ashown; the memory controller26bis essentially of identical design.) At the time of loading, the IP describes18a register contained in the OLZP with instructions that the processors20allow an image of a sequence of instructions to be created in the memory that they (the processors20) allows you to start operating, for example by going to I / O devices to transfer commands and data from an external (storage) device to complete the loading process.

    Der OLZP285wird von den Prozessoren20auch dazu verwendet, um Fehlermeldungen an den IP 18 zu übertragen. Wenn zum Beispiel eine der Schnittstellen24in Daten, die sie von der Speichersteuerung26empfängt, einen Paritätsfehler entdeckt, gibt sie ein Fehlersignal aus, das den Betrieb anhält und gleichzeitig bewirkt, dass in dem OLZP285eine Bitposition gesetzt wird, durch die der IP18von dem Fehler benachrichtigt wird. Die von der Speichersteuerung26durchgeführte Fehlerprüfung (z. B. eine negativ verlaufende Paritätsprüfung bei Register-Leseoperationen) führt in ähnlicher Weise zu einer Betriebsanhaltung und zu einer über den OLZP285erfolgenden Benachrichtigung des IP18, dass ein Fehler aufgetreten ist.The OLZP285is from the processors20also used to transmit error messages to the IP 18. If, for example, one of the interfaces24in data it from memory control26receives a parity error, it issues an error signal that stops operating and at the same time causes in the OLZP285a bit position is set by which the IP18is notified of the error. The memory controller26An error check carried out (e.g. a negative parity check for register read operations) similarly leads to a halt in operation and one via the OLZP285notification of the IP18that an error has occurred.

    Der IP18und die verschiedenen in dem System vorhandenen OLZPs (z. B. der in der SpSt26aintegrierte OLZP285) kommunizieren untereinander über einen seriellen Bus287, welcher gemäss der IEEE-Spezifikation 1149.1 aufgebaut ist.The IP18and the different OLZPs in the system (e.g. the one in the SpSt26aintegrated OLZP285) communicate with each other via a serial bus287, which is structured according to the IEEE specification 1149.1.

    Die Architektur der Speichersteuerungen folgt im allgemeinen einem herkömmlichen Entwurf, abgesehen von einer speziellen Form der Fehlerprüfung, welche durch die Überwachung der verschiedenen Ablaufsteuerungen erfolgt, die zur Implementierung der Speichersteuerungen26herangezogen werden. Wie in18veranschaulicht, werden die Funktionsweisen der SpSt26a(dasselbe gilt im übrigen auch für die SpSt26b) von drei zentralen Ablaufsteuereinheiten gesteuert, von denen eine jede dupliziert und verglichen wird. Ein übergeordnetes Ablaufsteuereinheitenpaar390wird betrieben, um die Funktionen der SpSt26aselbst zu steuern, wie etwa das Verschieben von Daten und Befehlen von dem SpSt-A/D-Bus25auf den DRAM-Datenbus, um Daten an den Speicher28zu übermitteln. Das übergeordnete Ablaufsteuereinheitenpaar390übt seinerseits eine Steuerfunktion über die Speichersteuerungs-Adress/Daten-Ablaufsteuerungseinheit (SpSt-A/D-Ablaufsteuerungseinheit)392aus, welche die Daten- und Adressübertragungen auf dem Bus25zwischen der SpSt26aund der entsprechenden Schnittstelleneinheit24aabwickelt. Die Adressierungen und die Datenübertragungen auf dem DRAM-Datenbus, sowie die Generierung und Folgesteuerung der erforderlichen Auffrischsignale werden von der DRAM-Ablaufsteuereinheitenpaar394gesteuert. Die von den Ablaufsteuereinheitenpaaren390,392und394eingegebenen, digitalen Zustände werden mithilfe von Vergleichsschaltungen395miteinander verglichen. Jedes Nichtübereinstimmen von Daten führt zur Ausgabe eines Fehlersignals seitens der Vergleichsschaltung395, welche die Nichtübereinstimmung erkannt hat, wodurch der Betrieb der CPU12angehalten wird.The architecture of the memory controllers generally follows a conventional design, except for a special form of error checking, which is done by monitoring the various sequencers used to implement the memory controllers26be used. As in18illustrates how the SpSt26a(The same also applies to the SpSt26b) controlled by three central process control units, each of which is duplicated and compared. A higher-level sequence control unit pair390is operated to the functions of the SpSt26aself-control, such as moving data and commands from the SpSt-A / D bus25on the DRAM data bus to transfer data to memory28to transmit. The parent sequence controller pair390in turn exercises a control function via the memory control address / data sequence control unit (SpSt-A / D sequence control unit)392from which the data and address transfers on the bus25between the SpSt26aand the corresponding interface unit24aunwinds. The addressing and the data transfers on the DRAM data bus, as well as the generation and sequencing of the required refresh signals are performed by the DRAM sequence control unit394controlled. That of the sequence control unit pairs390.392and394The digital states entered are compared using comparison circuits395compared with each other. Any mismatch in data results in an error signal from the comparison circuit395which has detected the mismatch, causing the operation of the CPU12is stopped.

    Paket-Wegeleitverfahren:Package Wegeleitverfahren:

    Die Nachrichtenpakete, welche zwischen den verschiedenen Elementen des Verarbeitungssystems10(z. B. den CPUs12A,12B, und Geräten, die an die E/A-Paket-Schnittstellen16angeschlossen sind) übermittelt werden, werden von den Routern14gemäss den in dem Paket enthaltenen Informationen (d. h. dem Bestimmungsort-Feld des Headers,3B, obwohl auch andere Informationen, wie etwa das Ursprungsort-Feld, dazu verwendet werden könnten) einer "Wegeleitung" unterworfen. Vor einer Abhandlung des Entwurfs und der Bauart der Router14ist es jedoch von Vorteil, sich als erstes ein Verständnis des Protokolls zu verschaffen, das zum Nachrichtenaustausch auf den TNet-Links L zwischen den CPUs12und den Routern14bzw. zwischen den Routern14und den E/A-Paket-Schnittstellen 16 verwendet wird.The message packets that exist between the various elements of the processing system10(e.g. the CPUs12A.12B, and devices connected to the I / O packet interfaces16connected) are transmitted by the routers14according to the information contained in the packet (ie the destination field of the header,3B, although other information, such as the origin field, could be used) to "route guidance". Before discussing the design and construction of the router14however, it’s a good idea to first understand the protocol provide that for exchanging messages on the TNet links L between the CPUs12and the routers14or between the routers14and the I / O packet interfaces 16 is used.

    Als erstes wird jedes TNet-Link L über einen Port, welcher sowohl mit Empfangs- als auch mit Sendefähigkeit ausgestattet ist, an ein Element (z. B. einen Router14A) des Verarbeitungssystems10angeschlossen. Jeder Sendeport eines jeden Elements muss ein Sendetaktsignal (S-Tkt-Signal) bereitstellen, das für die synchrone, symbolweise Übertragung von Nachrichtenpaketen verwendet wird. Bei jedem einzelnen Taktzyklus (d. h. bei jedem Taktintervall) des Sendetaktes wird ein Symbol übertragen, so dass das Taktsynchronisierungs-FIFO am empfangenden Ende der Übertragung die Synchronisation beibehält.First, each TNet-Link L is connected to an element (e.g. a router) via a port that is equipped with both receiving and transmitting capabilities14A) of the processing system10connected. Each send port of each element must provide a send clock signal (S-Tkt signal), which is used for the synchronous, symbol-wise transmission of message packets. A symbol is transmitted at every individual clock cycle (ie at every clock interval) of the transmit clock, so that the clock synchronization FIFO maintains synchronization at the receiving end of the transmission.

    Die Taktsynchronisierung ist von dem Modus abhängig, in welchem das Verarbeitungssystem10betrieben wird. Bei einem Simplexbetrieb, bei welchem die CPUs12Aund12Bzum Beispiel getrennt voneinander betrieben werden, ist die Taktgabe zwischen den Routern14und den CPUs12"frequenznah"; das bedeutet, dass die Takte, welche von den CPUs12und den Routern14verwendet werden, die direkt an die CPUs angeschlossen sind, auseinanderdriften können. Wenn das Verarbeitungssystem10umgekehrt im Duplexmodus betrieben wird (und z. B. die CPUs sich in synchron im Gleichschritt laufendem Betrieb befinden), sind die Takte zwischen den Routern14und den CPUs12, an die sie angeschlossen sind, frequenzsynchronisiert (jedoch nicht unbedingt phasensynchronisiert).Clock synchronization is dependent on the mode in which the processing system10is operated. In a simplex mode, in which the CPUs12Aand12Bfor example, operated separately from each other, is the clock between the routers14and the CPUs12 "close to frequency "; this means that the clocks generated by the CPUs12and the routers14that are directly connected to the CPUs can drift apart. If the processing system10conversely, in duplex mode (and e.g. the CPUs are in synchronous, synchronous operation), the clocks are between the routers14and the CPUs12to which they are connected are frequency synchronized (but not necessarily phase synchronized).

    Der Fluss der Datenpakete zwischen den verschiedenen Elementen des Verarbeitungssystems10wird durch Befehlssymbole gesteuert, die zu jeder Zeit, auch innerhalb eines Pakets, in Erscheinung treten können. Wie bereits weiter oben (in Bezug auf die Tabelle 1) erwähnt, ist ein Befehlssymbol daran erkennbar, dass die bedeutendsten Bits alle auf 0 gesetzt sind. Im einzelnen handelt es sich dabei um folgende Befehlssymbole.The flow of data packets between the various elements of the processing system10is controlled by command symbols that can appear at any time, even within a package. As already mentioned above (with reference to Table 1), a command symbol can be recognized by the fact that the most significant bits are all set to 0. In detail, these are the following command symbols.

    LEERLAUF (IDLE): Das LEERLAUF-Befehlssymbol wird mit jedem Takt übertragen, wenn es kein anderes Befehlssymbol oder Datenpaket zu senden gibt. Das LEERLAUF- Befehlssymbol hat die Funktion eine Füllelements zwischen Paketen bzw. Befehlssymbolen auf den TNet-Links.IDLE: The IDLE command icon is transmitted with every clock, if there is no other command symbol or data packet to send. The IDLE command icon has the function of a filling element between packages or command symbols on the TNet links.

    BELEGT (BUSY) Das BELEGT-Befehlssymbol wird gesendet, wenn das empfangende Gerät erkennt, dass es bald nicht mehr in der Lage sein wird, Datensymbole anzunehmen.BUSY The BUSY command icon is sent when the receiving device detects that it will not be soon more will be able to accept data symbols.

    FÜLLEN (FILL): Das FÜLLEN-Befehlssymbol wird von dem sendenden Element in ein Nachrichtenpaket eingegeben, wenn das sendende Element weiss, dass das empfangende Element, an das es gerade Symbole sendet, belegt ist (z. B. durch den Empfang eines BELEGT-Befehlssymbols).TO FILL (FILL): The FILL command icon is entered into a message packet by the sending element, if the sending element knows that the receiving element, to that it is currently sending symbols is occupied (e.g. by reception a BUSY command symbol).

    STOPP (HALT): Dieses Befehlssymbol wird von einer CPU12oder einem IP18ausgelöst und von den Routern14an alle Elemente des Verarbeitungssystems10übermittelt, um diesen ein Ereignis mitzuteilen, das ein Aktivwerden der Software aller CPUs12und gewisser E/A-Geräte erfordert. Das STOPP-Befehlssymbol stellt einen Mechanismus bereit, der es erlaubt, rasch alle CPUs12in einem System10zu informieren, dass es nötig ist, die Einleitung jeglicher E/A-Aktivitäten zu stoppen.STOP: This command symbol is issued by a CPU12or an IP18triggered and by the routers14to all elements of the processing system10transmitted in order to notify them of an event that activates the software of all CPUs12and certain I / O devices. The STOP command symbol provides a mechanism that allows all CPUs to be quickly accessed12in one system10inform that it is necessary to stop initiating any I / O activity.

    ANDERES LINR SCHLECHT (OTHER LINR BAD – OL8): Wenn ein Router14, welcher an die CPU angeschlossen ist und im DupleXbetrieb arbeitet, einen Fehler in dem Befehlssymbol oder Paket entdeckt, das gerade von einer der CPUs12kommend empfangen wird, jedoch in dem Befehlssymbol bzw. Paket, das gerade von der anderen der CPUs12kommend empfangen wird, keine Fehler entdeckt, so sendet der Router14ein OLB-Befehlssymbol an jene CPU12, welche das gute Paket bzw. Befehlssymbol übermittelt hat. Dieses Befehlssymbol wird auch als Reaktion auf CRC-Fehler, Befehlssymbolfehler und Protokollverletzungsfehler gesendet, allerdings nur im Duplexbetrieb. OLB- und (weiter unten beschriebene) TLB-Befehlssymbole werden gleichzeitig an im Duplexbetrieb arbeitende CPUs gesendet; das heisst ein TLB-Befehlssymbol wird an jene CPU12gesendet, von welcher das fehlerhafte Paket bzw. Symbol empfangen wurde, oder der Fehler bemerkt wurde, und im wesentlichen zeitgleich dazu wird ein OLB-Symbol zu der anderen CPU12des im Duplexbetrieb arbeitenden CPU-Paars gesendet.OTHER LINR BAD (OTHER LINR BAD - OL8): If a router14, which is connected to the CPU and works in DupleX mode, detects an error in the command symbol or package that is currently from one of the CPUs12is received, however, in the command symbol or packet that is currently from the other of the CPUs12is received, no errors are detected, the router sends14an OLB command symbol to that CPU12which transmitted the good package or command symbol. This command symbol is also sent in response to CRC errors, command symbol errors, and protocol violation errors, but only in duplex mode. OLB and TLB command symbols (described below) are sent simultaneously to duplex CPUs; that is, a TLB command symbol is sent to that CPU12from which the faulty packet or symbol was received or the error was noticed, and essentially at the same time, an OLB symbol becomes the other CPU12of the CPU pair working in duplex mode.

    BEREIT (READY): Dieses Befehlssymbol wird gesendet, wenn das zuvor belegt gewesene Element nun wieder in der Lage ist, zusätzliche Daten anzunehmen.READY: This command symbol is sent if the previously occupied element is now again is able to additional Accept data.

    ÜBERSPRINGEN (SRIP): Dieses Befehlssymbol zeigt einen Taktzyklus, der wahlweise übersprungen werden kann. Dieses Befehlssymbol wird in Verbindung mit dem frequenznahen Betrieb als Hilfe zur Aufrechterhaltung der Synchronisation zwischen den beiden Taktsignalen verwendet, die (1) jedes Symbol zu jedem empfangenden Taktsynchronisierungs-FIFO übertragen und in dieses laden, und (2) Symbole von dem FIFO abrufen.SKIP (SRIP): This command symbol shows a clock cycle that can optionally be skipped can. This command symbol is used in conjunction with the frequency-related Operation as an aid to maintaining synchronization between uses the two clock signals that (1) receive each symbol to each Clock synchronization FIFO transmitted and load into it, and (2) retrieve symbols from the FIFO.

    SCHLAF (SLEEP): Dieses Befehlssymbol wird von jedem beliebigen Element des Verarbeitungssystems10gesendet, um anzuzeigen, dass kein weiteres Paket (nach dem momentan übermittelten, falls ein solches vorhanden ist) mehr über den speziellen Link L gesendet werden darf, bis ein BEREIT-Befehlssymbol (weiter unten beschrieben) empfangen wird.SLEEP: This command symbol is used by any element of the processing system10sent to indicate that no more packets (after the one currently being transmitted, if there is one) may be sent over the special link L until a READY command symbol (described below) is received.

    SOFT RESET (SRST): Das SRST-Befehlssymbol wird als Auslöser während jener Prozesse ("Synchronisierung" und "Reintegration", weiter unten beschrieben) verwendet, die dazu benutzt werden, um die Symbolübertragungen zwischen den CPUs12und den Routern14A,14Bzu synchronisieren und um daraufhin die CPUs12für den Duplexbetrieb jeweils in einen identischen Zustand zu versetzen.SOFT RESET (SRST): The SRST instruction symbol is used as a trigger during those processes ("synchronization" and "reintegration", described below) that are used to carry out symbol transfers between the CPUs12and the routers14A.14Bto synchronize and then the CPUs12to be put in an identical state for duplex operation.

    SYNC Das SYNC-Befehlssymbol wird von einem Router14zu der CPU12des Verarbeitungssystems10(d. h. der Subprozessorsysteme10A/10B) gesendet, um vor dem Eintritt in den Duplexbetrieb eine Frequenzsynchronisierung zwischen der CPU12und den Routern14A,14Bzu erreichen, bzw. wenn bereits im Duplexbetrieb, eine Synchronisierung anzufordern, wie weiter unten in Detail beschrieben. Das SYNC-Befehlssymbol wird zusammen mit dem SRST-Befehlssymbol dazu verwendet, um unter anderem zwischen Systembetriebsarten (d. h. von Simplexbetrieb auf Duplexbetrieb bzw. von Duplexbetrieb auf Simplexbetrieb) hin und herzuwechseln, wie weiter unten in dem Abschnitt über Synchronisierung und Reintegration beschrieben wird.SYNC The SYNC command symbol is from a router14to the CPU12of the processing system10(ie the subprocessor systems10A/10B) to establish frequency synchronization between the CPU before entering duplex mode12and the routers14A.14Bto achieve or, if already in duplex mode, request synchronization, as described in detail below. The SYNC command symbol is used in conjunction with the SRST command symbol to switch between system modes (i.e., from simplex to duplex or from duplex to simplex), as described below in the section on synchronization and reintegration.

    LINR SCHLECHT (THIS LINR BAD – TLB): Wenn irgendein Systemelement, das ein Symbol von einem TNet-Zink L empfängt (z. B. ein Router, eine CPU, oder ein E/A-Gerät), beim Empfangen eines Befehlssymbols oder eines Pakets einen Fehler bemerkt, sendet es ein TLB-Befehlssymbol an das Systemelement zurück, welches das fehlerhafte Paket oder Symbol übermittelt hat. Es wird üblicherweise als Reaktion auf CRC-Fehler, Befehlssymbolfehler und Protokollverletzungsfehler gesendet.LINR BAD (THIS LINR BATH - TLB): If any system element that is a symbol of a TNet zinc L receives (e.g. a router, CPU, or I / O device) when receiving a command symbol or a packet detects an error, it sends a TLB command symbol back to the system element, which transmitted the faulty package or symbol. It is usually in response to CRC errors, command symbol errors, and protocol violation errors Posted.

    ICH BIN DIR ÜBERGEORDNET (I OWN YOU – IOY): IOY-Befehlssymbole werden (ausschliesslich im Duplexbetrieb) nur von einer CPU12an einen Router14gesendet, um den Router14dazu zu zwingen, Daten von der sendenden CPU auszuwählen, wodurch der sendenden CPU12praktisch ein Besitzrecht zugesprochen wird; sämtliche anderen Datenübertragungen von der nicht-sendenden CPU werden nicht beachtet. Die tatsächliche Bitstruktur des IOY-Befehlssymbols ist dieselbe wie jene, die für das Anderes Link Schlecht-Befehlssymbol (OLB) verwendet wird – wobei das Ursprungselement entscheidet, um welches Symbol es sich konkret handelt. Wird das IOY/OLB-Symbol von einer CPU12gesendet, so wird es als IOY-Symbol interpretiert; wird das IOY/OLB-Symbol von einem Router gesendet, so wird es als OLB-Symbol interpretiert. Um es anders auszudrücken, in der Kommunikation zwischen den CPUs12und den Routern14A,14bwerden IOY-Befehlssymbole ausschliesslich von CPUs und OLB-Befehlssymbole ausschliesslich von Routern gesendet.I AM SUPERIOR TO YOU (I OWN YOU - IOY): IOY command symbols are (only in duplex mode) only from one CPU12to a router14sent to the router14to force data to be selected from the sending CPU, causing the sending CPU12practically a property right is granted; all other data transfers from the non-sending CPU are ignored. The actual bit structure of the IOY command symbol is the same as that used for the other link bad command symbol (OLB) - the originating element deciding which symbol it is. If the IOY / OLB symbol is from a CPU12sent, it is interpreted as an IOY symbol; if the IOY / OLB symbol is sent by a router, it is interpreted as an OLB symbol. To put it another way, in the communication between the CPUs12and the routers14A.14bIOY command symbols are sent exclusively by CPUs and OLB command symbols are sent exclusively by routers.

    ABWEICHUNG (DIVERGE – DVRG): Das DVRG-Befehlssymbol wird im Duplexbetrieb von einem Router gesendet, um die im Duplexbetrieb laufenden CPUs zu informieren, dass eine Divergenz in den Datenströmen, der gerade von den CPUs empfangen wird, erkannt wurde; der Router empfängt nämlich von der CPU12identische Symbolpaare, die miteinander verglichen werden, wenn sie aus den Synchronisierungs-FIFOs entnommen werden. Das DVRG-Befehlssymbol signalisiert der CPU12, dass ein Nichtübereinstimmen der Daten festgestellt worden ist. Wenn es von den CPUs empfangen wird, wird ein Divergenzauffindungsprozess eingeleitet, wodurch durch die CPUs eine Bestimmung erfolgt, welche CPU ausgefallen ist oder fehlerhaft arbeitet und der weitere Betrieb dieser CPU eingestellt wird.DEVIATION (DIVERGE - DVRG): The DVRG command symbol is sent in duplex mode by a router to inform the CPUs running in duplex mode that a divergence in the data streams that is currently being received by the CPUs has been detected; the router receives from the CPU12identical pairs of symbols that are compared to each other when extracted from the synchronization FIFOs. The DVRG command symbol signals the CPU12that data mismatch has been determined. When it is received by the CPUs, a divergence detection process is initiated, whereby the CPUs determine which CPU has failed or is malfunctioning and the further operation of this CPU is stopped.

    PAKET GUT (THIS PACKET GOOD – TPG): Ein Befehlssymbol, welches auf ein Nachrichtenpaket folgt und angibt, dass der Sender des Pakets bestimmt hat, dass der CRC des Pakets in Ordnung ist. Weitere Details dazu sind dem Abschnitt "Paketzustand" weiter unten zu entnehmen.PACKAGE GOOD (THIS PACKET GOOD - TPG): A command symbol that follows a message packet and indicates that the sender of the packet has determined that the packet's CRC is okay. Further details can be found in the section "Package status" see below.

    PAKET SCHLECHT (THIS PACKET BAD – TPB): Das TPB-Befehlssymbol ersetzt das TPG-Befehlssymbol, wenn das empfangende Element festgestellt hat, dass der CRC des empfangenen Nachrichtenpakets unkorrekt ist.BAD PACKAGE (THIS PACKET BAD - TPB): The TPB command symbol replaces the TPG command icon when the receiving element is detected has that the received message packet's CRC is incorrect.

    Flusssteuerung:Flow control:

    Die Router14verfügen über ein begrenztes Speichervermögen und verwenden daher beim Weiterleiten von Nachrichtenpaketen keinerlei Art von Store-and-Forward-Strategie; sie arbeiten vielmehr nach der sogenannten Wormhole-Strategie: das vordere Ende eines Nachrichtenpakets hat den Router bereits durchlaufen und wieder verlassen, noch bevor das hintere Ende empfangen worden ist. Dies ist einer der Gründe dafür, dass der Nachrichtenstrom zwischen den verschiedenen Elementen des Verarbeitungssystems10(z. B. den CPUs12, den Routern14und dergleichen) durch die oben beschriebenen Befehlssymbole gesteuert wird, wobei in erster Linie die dort beschriebenen Befehlssymbole BELEGT/FÜLLEN/BEREIT (BUSY/FILL/READY) verwendet werden. Diese Flusssteuerung wird als "Gegendruck"-Verfahren bezeichnet.The routers14have a limited storage capacity and therefore do not use any kind of store-and-forward strategy when forwarding message packets; rather, they work according to the so-called wormhole strategy: the front end of a message packet has already passed through the router and left again before the rear end has been received. This is one of the reasons that the flow of messages between the various elements of the processing system10(e.g. the CPUs12, the routers14and the like) is controlled by the command symbols described above, primarily using the command symbols USED / FILL / READY (BUSY / FILL / READY) described there. This flow control is referred to as the "back pressure" process.

    Wann immer ein bestimmtes Systemelement erkennt, dass seine Empfangswarteschlange (d. h. der elastische Puffer506–19A) nahezu voll ist, bedient es sich der bidirektionalen Fähigkeit des TNet-Links L, auf dem es das gerade eingehende Nachrichtenpaket empfängt, und überträgt an das sendende Element am anderen Ende des TNet-Links L über den zugeordneten Sendeport ein BELEGT-Befehlssymbol, mit welchem das sendende Element aufgefordert wird, vorerst mit einer weiteren Sendetätigkeit zuzuwarten. Die Verwendung des BELEGT-Befehlssymbols wird als das Ausgeben von "Gegendruck" bezeichnet. Die CPUs12oder die E/A-Paket-Schnittstellen16können auf diese Weise Gegendruck ausgeben, während sie darauf warten, dass interne Ressourcen verfügbar werden, wenn und nur wenn solche internen Ressourcen verfügbar werden, unabhängig von Gegendruck, der an irgendeinem bestimmten TNet-Port ausgegeben wird, ein "Endknoten" (d. h. eine CPU12oder eine E/A-Einheit17– Fig. 1) kann jedoch keinen Gegendruck ausgeben, weil an einem ihrer Sendeports Gegendruck anliegt. Wird diese Anforderung nicht beachtet, so kann es zu Gegendruck-Systemblockaden kommen, wobei ein Empfangsport nicht empfangen kann, weil ein Sendeport nicht senden kann, weil wiederum der ihm zugeordnete Empfänger Gegendruck ausgibt. Daher können nur Routen14Gegendruck weitergeben; Endknoten (CPUs12, E/A-Paket-Schnittstellen16) dürfen empfangenen Gegendruck nicht in Sende-Gegendruck übersetzen.Whenever a particular system element recognizes that its receive queue (ie the elastic buffer506-19A) is almost full, it uses the bidirectional capability of the TNet link L, on which it receives the incoming message packet, and transmits a BUSY command symbol to the sending element at the other end of the TNet link L via the assigned send port which the sending element is asked to wait for further sending activity for the time being. The use of the BUSY command symbol is referred to as issuing "back pressure". The CPUs12or the I / O packet interfaces16can thus backpressure while waiting for internal resources to become available, if and only when such internal resources become available, regardless of the backpressure output on any particular TNet port, an "end node" (ie, a CPU12or an I / O unit17- Fig. 1) can not issue back pressure, however, because there is back pressure at one of its sending ports. If this requirement is not observed, it can counter system blockages occur, whereby a receiving port cannot receive because a sending port cannot transmit because the recipient assigned to it in turn emits counterpressure. Therefore only routes14Pass on back pressure; End nodes (CPUs12, I / O packet interfaces16) must not translate received back pressure into send back pressure.

    Ein Routen14kann an jedem seiner Empfangsports Gegendruck ausgeben, wann immer weitere an diesem Port ankommende Datensymbole nicht mehr zwischengespeichert oder weitergeleitet werden können. Unkorrekt adressierte Pakete werden von dem Routen14ausgeschieden.A route14can output counterpressure at each of its receiving ports whenever additional data symbols arriving at this port can no longer be buffered or forwarded. Incorrectly addressed packets are lost from the route14excreted.

    Wenn ein Systemelement des Verarbeitungssystems10an einem TNet-Link L, auf welchem es gerade ein Nachrichtenpaket sendet, ein BELEGT-Befehlssymbol empfängt, setzt das Element das Senden des Pakets aus und beginnt damit, so lange FÜLLEN-Befehlssymbole zu senden, bis eine BEREIT-Befehlssymbol mit jeden Taktzyklus des Sendetakts S_Tkt empfangen wird. FÜLLEN-Befehlssymbole werden weiterhin gesendet. Ausserdem nimmt, wenn ein BELEGT-Befehlssymbol an einem TNet-Link L empfangen wird, während der zugeordnete Sendeport gerade kein Paket sendet, das Element, welches das BELEGT-Befehlssymbol empfängt, so lange davon Abstand, eine neue Paketübertragung einzuleiten, bis es in der Folge ein BEREIT-Symbol auf diesem Link empfängt. Der Sendeport behält ansonsten die Fähigkeit, andere Befehlssymbole (BEEIT, BELEGT, usw.) zu übertragen.If a system element of the processing system10on a TNet-Link L, on which it is currently sending a message packet, receives a BUSY command symbol, the element suspends the sending of the packet and begins to send FILL command symbols until a READY command symbol with each clock cycle of the Send clock S_Tkt is received. FILL command symbols continue to be sent. In addition, if a BUSY command symbol is received on a TNet-Link L while the assigned send port is not sending a packet, the element that receives the BUSY command symbol will refrain from initiating a new packet transmission until it is in the Follow a READY symbol on this link. Otherwise, the send port retains the ability to transmit other command symbols (BEEIT, BUSY, etc.).

    Wann immer ein TNet-Port eines Elements des Verarbeitungssystems10den Empfang eines BEREIT-Befehlssymbols erkennt, beendet er die Übertragung von FÜLLEN-Befehlssymbolen von dem zugeordneten Sendeport und fährt mit dem Senden des Pakets fort, das durch den zuvor empfangenen BELEGT-Befehlssymbol ausgesetzt worden war, bzw. er beendet das Eingeben von LEERLAUF-Befehlssymbolen und leitet das Senden eines anhängigen Pakets ein, oder setzt das Senden von LEERLAUF-Befehlssymbolen so lange fort bis ein Paket verfügbar ist.Whenever a TNet port of an element of the processing system10Detects the receipt of a READY command symbol, ends the transmission of FILL command symbols from the assigned send port and continues sending the packet that was suspended by the previously received BUSY command symbol or ends the input of IDLE. Command symbols and initiates the sending of a pending packet, or continues to send IDLE command symbols until a packet is available.

    Es sei jedoch darauf hingewiesen, dass die BELEGT/Bereit-Flusssteuerung sich nicht auf die Übertragung anderer Befehlssymbole bezieht. Es sei auch noch einmal daran erinnert, dass, wie weiter oben erwähnt, jeder Zyklus eines Sendetaktes, S_Tkt, von der Übertragung eines Befehls- bzw. Datensymbols begleitet wird. Somit müssen alle TNet-Schnittstellen bereit sein, mit jedem Taktzyklus des zugeordneten Sendetaktes, S_Tkt, den die TNet-Schnittstelle empfängt, ein neues Befehls- bzw. Datensymbol anzunehmen.However, it should be noted that the BUSY / Ready flow control is not on the transmission other command symbols. It should also be remembered that, as mentioned above, everyone Cycle of a send clock, S_Tkt, from the transmission of a command or Data symbol is accompanied. So all TNet interfaces be ready with every clock cycle of the assigned transmit clock, S_Tkt, the TNet interface receives to accept a new command or data symbol.

    Wie noch zu zeigen sein wird, empfangen alle Elemente (z. B. die Router14, die CPUs12) eines Verarbeitungssystems10, die an ein TNet-Zink L zum Empfang von übertragenen Symbolen angeschlossen sind, diese Elemente über ein Taktsynchronisierungs-FIFO (TS-FIFO). So beinhalten zum Beispiel, wie weiter oben besprochen, die Schnittstelleneinheiten24der CPUs12alle die TS-FIFOs102x,102y(dargestellt in6). Jedes dieser TS-FIFOs102ist entsprechend geschaltet, um Befehls- bzw. Datensymbole von einem zugeordneten TNet-Zink L zu empfangen. Das TS-FIFO muss eine ausreichende Tiefe aufweisen, um eins Geschwindigkeitsanpassung zu ermöglichen, und die elastischen FIFOs müssen eine ausreichende Tiefe aufweisen, um Verzögerungen verarbeiten zu können, zu denen es zwischen der Übertragung eines BELEGT-Befehlssymbols während des Empfangs eines Nachrichtenpakets und der Aussetzung des eingehenden Nachrichtenpakets zugunsten von FÜLLEN bzw. LEERLAUF-Befehlssymbolen kommen kann. Die elastischen FIFOs506(19A) in den Routern14sollten auch eine ausreichende Tiefe aufweisen, um die Eingabe von BELEGT- und BEREIT-Befehlssymbolen in den Übertragungspfad zu ermöglichen. So sei etwa unter Bezugnahme auf1angenommen, dass die CPU12Adabei ist, ein Nachrichtenpaket zu übertragen, das zum Empfang durch einen der E/A-Paket-Schnittstellen16Abestimmt ist – und zwar über den Port 2 des Routers14A. Zur selben Zeit sendet dieselbe E/A-Schnittstelle16A, die gerade das von der CPU12Agesendete Nachrichtenpaket empfängt, auch ein Nachrichtenpaket auf demselben (bidirektionalen) TNet-Link L an den Port 2 des Routers14A. Es sei weiterhin angenommen, dass der Router14Aeine Verzögerung (Gegendruck) von Seiten des Bestimmungsortes des von der E/A-Paket-Schnittstelle16Agerade gesendeten Nachrichtenpakets erfährt. Nach einer gewissen Zeit füllt sich das elastische FIFO518(19A) bis zu einem Punkt, der es erforderlich macht, dass der Router14Adie E/A-Paket-Schnittstelle auffordert, die Übertragung des Nachrichtenpakets vorübergehend auszusetzen. Demgemäss überträgt der Router14Aein BELEGT-Symbol, welches von dem Port2abgeht, (demselben Port, von welchem er gerade den von der E/A-Paket-Schnittstelle 16A kommenden Nachrichtenverkehr empfängt). Dieses BELEGT-Symbol wird in den Symbolstrom des Nachrichtenpakets eingegeben, das gerade von der CPU12Adurch den Router gesendet wird. Die Eingabe eines BELEGT-Symbols in den Datenstrom eines eingehenden Nachrichtenpakets macht es erforderlich, dass der Router14Aein zusätzliches Symbol des eingehenden Pakets speichert. Nachdem das BELEGT-Symbol gesendet ist, kann der Router14Amit der Übertragung des eingehenden Nachrichtenpakets von der CPU12Afortfahren, und zwar bis zu dem Zeitpunkt, da er wieder mit dem Empfang der diskontinuierlichen Übertragung des von der E/A-Paket-Schnittstelle16Akommenden Nachrichtenpakets fortfahren kann. Um die E/A-Paket-Schnittstelle16Adazu zu veranlassen, mit der weiteren Übertragung des unterbrochenen Nachrichtenpakets zu beginnen, gibt der Router14Aein BEREIT-Signal in den vom Port2aus gesendeten Symbolstrom ein, was wiederum erfordert, dass der Router ein weiteres Symbol des von der CPU12Akommenden Nachrichtenpakets zu speichern.As will be shown, all elements (e.g. the routers) receive14who have favourited CPUs12) of a processing system10connected to a TNet-Zink L to receive transmitted symbols, these elements via a clock synchronization FIFO (TS FIFO). For example, as discussed above, include the interface units24of CPUs12all the TS FIFOs102x.102y(shown in6). Each of these TS FIFOs102is switched accordingly to receive command or data symbols from an assigned TNet-Zink L. The TS FIFO must be of sufficient depth to enable speed adjustment and the resilient FIFOs must be of sufficient depth to be able to handle delays between the transmission of a BUSY command symbol during the receipt of a message packet and the suspension of the incoming message packet in favor of FILL or IDLE command symbols. The elastic FIFOs506(19A) in the routers14should also be of sufficient depth to allow BUSY and READY command symbols to be entered into the transmission path. For example, refer to1assumed that the CPU12Ais about to transmit a message packet that is to be received by one of the I / O packet interfaces16Ais determined - via port 2 of the router14A, At the same time sends the same I / O interface16Athat's just that from the CPU12Asent message packet also receives a message packet on the same (bidirectional) TNet link L to port 2 of the router14A, It is also assumed that the router14Aa delay (back pressure) from the destination side of the I / O packet interface16Amessage packet just sent. After a while, the elastic FIFO fills up518(19A) to a point that requires that the router14Arequests the I / O packet interface to temporarily suspend the transmission of the message packet. The router transmits accordingly14Aa BUSY symbol which is from the port2(the same port from which it is receiving the traffic coming from I / O packet interface 16A). This BUSY symbol is entered in the symbol stream of the message packet that is currently being sent by the CPU12Ais sent through the router. Entering a BUSY symbol in the data stream of an incoming message packet requires that the router14Astores an additional icon of the incoming package. After the BUSY symbol is sent, the router can14Awith the transfer of the incoming message packet from the CPU12Acontinue until the point at which it resumes receiving the discontinuous transfer of the I / O packet interface16Aupcoming message packet can continue. To the I / O packet interface16Ato cause the router to begin further transmission of the interrupted message packet14Aa READY signal from the port2symbol stream, which in turn requires that the router receive another symbol from the CPU12Ato save upcoming message packages.

    Dieses Paar von BELEGT/BEREIT-Befehlssymbolen kann von jedem Router14und von jeder CPU12in den Pfad zwischen der E/A-Paket-Schnittstelle 16 und der CPU12eingegeben werden. Der direkt an die E/A-Paket-Schnittstelle16angeschlossene Router14könnte 2n Befehlssymbole (n = die Anzahl der in dem Pfad vorhandenen Router + 1) in ein einzelnes Paket eingeben. Das setzt voraus, dass 2n Byte FIFO in dem Router14der untersten Ebene (d. h. der einer beliebigen E/A-Paket-Schnittstelle16am nächsten gelegenen Router) erforderlich wären, um zu gewährleisten, dass in einer Richtung ausgegebener Gegendruck es nicht erforderlich macht, Gegendruck auch in der anderen Richtung auszugeben. So sei zum Beispiel angenommen, dass eine E/A-Paket-Schnittstelle16gerade ein Paket A an einen Router14überträgt, während sie zur selben Zeit ein Paket B von demselben Router empfängt und dass der das Paket A empfangende Router dieses aufgrund eines vorhandenen Gegendrucks nicht weiterleiten kann. Dieser Router muss ein BELEGT-Signal in das Paket B eingeben, um der E/A-Paket-Schnittstelle16anzuweisen, mit der Übertragung des Pakets aufzuhören. Das in das Paket B eingegebene BELEGT-Befehlssymbol verschiebt ein Datensymbol, wodurch die FIFO-Tiefe um eins inkrementiert wird. Durch die darauffolgende Entfernung des Gegendrucks durch das Eingeben von BEREIT wird ein weiteres Datenbyte in Paket8verschoben. Mit der Weiterleitung des Pakets A zum nächsten Router würde sich dieser Vorgang wiederholen. Wenn der Router14mehr Datenbytes verschiebt, als das FIFO bewältigen kann, so muss er in Richtung des Ursprungsortes des Pakets B Gegendruck ausgeben.This pair of BUSY / READY command symbols can be used by any router14and from every CPU12in the path between the I / O packet interface 16 and the CPU12can be entered. The one directly to the I / O packet interface16connected router14could enter 2n command symbols (n = the number of routers + 1 in the path) into a single packet. This requires 2n bytes of FIFO in the router14the lowest level (that of any I / O packet interface16nearest router) would be required to ensure that back pressure issued in one direction does not require back pressure to be output in the other direction. For example, suppose that an I / O packet interface16just a packet A to a router14transmits while receiving a packet B from the same router at the same time and that the router receiving packet A cannot forward it due to an existing back pressure. This router must enter a BUSY signal in packet B to interface the I / O packet16instruct to stop transmitting the package. The BUSY command symbol entered in packet B shifts a data symbol, thereby incrementing the FIFO depth by one. The subsequent removal of the back pressure by entering READY will add another byte of data to the packet8thpostponed. With the forwarding of packet A to the next router, this process would be repeated. If the router14If more data bytes are shifted than the FIFO can handle, it must output back pressure in the direction of the origin of packet B.

    Paketzustand:Package Condition:

    Jedes übertragene Paket wird unmittelbar von einem TPG- bzw. einem TPB-Befehlssymbol gefolgt, das Auskunft über die Integrität des zugeordneten Pakets gibt. Das Systemelement, von welchem das Paket seien Ursprung nimmt, gibt das entsprechende TPG- bzw. TPB-Befehlssymbol ein. Der Router14validiert für sämtliche Pakete den beiliegenden CRC und führt verschiedene Protokollprüfungen durch, während die Pakete von dem Ursprungsort (d. h. der E/A-Paket-Schnittstelle16oder der CPU12A) kommend durch diesen hindurch an den Bestimmungsort (d. h. die CPU12Aoder die E/A-Paket-Schnittstelle16) fliessen. Falls ein Router14in dem Pfad des besagten Datenflusses bei einem eingehenden Paket einen Fehler erkennt, und das Paket mit einem TPG-Befehlssymbol endet (das anzeigt, dass das Paket gut ist), so ersetzt der Router das TPG-Befehlssymbol durch ein TPB-Befehlssymbol.Each packet transmitted is immediately followed by a TPG or TPB command symbol, which provides information about the integrity of the associated packet. The system element from which the packet originates enters the corresponding TPG or TPB command symbol. The router14validates the enclosed CRC for all packets and performs various protocol checks while the packets are from the origin (ie the I / O packet interface)16or the CPU12A) coming through this to the destination (ie the CPU12Aor the I / O packet interface16) flow. If a router14detects an error in the path of said data flow for an incoming packet and the packet ends with a TPG command symbol (which indicates that the packet is good), the router replaces the TPG command symbol with a TPB command symbol.

    Als Fehler, welche zu einer Änderung eines TPG-Befehlssymbols in ein TPB-Befehlssymbol führen können, ist neben dem misslungenen Versuch, die eingegangenen Daten durch die Prüfung ihrer CRC-Daten zu validieren, vor allem die Tatsache zu nennen, dass ein Paket eine grössere Länge aufweist als dies gemäss dem verwendeten Protokoll erlaubt ist. Obwohl jede Paketlänge verwendet werden kann, wird hier mit einer auf 1024 Symbole beschränkten Paketlänge gearbeitet, und zwar einschliesslich des Zustandssymbols (TPG/TPB). Wird also erkannt, dass ein empfangenes Paket diese Grenze umfangmässig überschreitet, so beendet der empfangende Router das Paket mit einem TPB-Befehlssymbol als 1024. Symbol und ignoriert den Rest des Pakets. Bei dieser Beschränkung der Paketlänge handelt es sich um eine Technik zur Fehlerprüfung, die dazu dient, das Auftreten eines Fehlers in einem paketübertragenden Element zu vermeiden, der dieses ansonsten veranlassen würde, ununterbrochen irgendwelche Nachrichtenpakete auszusenden, was schliesslich zu einer Verstopfung des TNet-Netzwerks führen würde.As an error, which leads to a change a TPG command symbol can lead to a TPB command symbol in addition to the unsuccessful attempt to receive the data received from the exam validate their CRC data, especially to mention the fact that a package is a bigger one Has length than this according to the protocol used is allowed. Although every packet length is used can be used with a packet length limited to 1024 symbols, including the status symbol (TPG / TPB). So will recognized that a received packet exceeds this limit extensively, so the receiving router ends the packet with a TPB command symbol as a 1024th symbol and ignores the rest of the package. With this limitation the packet length is an error checking technique that is used to prevent the occurrence an error in a packet transmitting Avoid element that would otherwise cause this to happen continuously to send out any message packets, which ultimately leads to congestion in the TNet network.

    Ein Router14, der ein Paket mit einem TPB-Befehlssymbol empfängt, leitet das TPB-Befehlssymbol unverändert weiter, ungeachtet der Ergebnisse der von ihm selbst durchgeführten Prüfungen.A router14, who receives a packet with a TPB command symbol, forwards the TPB command symbol unchanged, regardless of the results of the checks it performed.

    SCHLAFEN-Protokoll:SLEEP protocol:

    Das SCHLAFEN-Protokoll wird von einem Instandhaltungsprozessor über eine weiter unten genauer beschriebene Instandhaltungsschnittstelle (einen Online-Zugangspunkt – OLZP) initiiert. Das SCHLAFEN-Protokoll stellt einen Mechanismus bereit, der es erlaubt, ein oder mehrere TNet-Links L an den Paketgrenzen in einen Ruhezustand zu versetzen. Es ist nötig, die Betriebsart zu wechseln (z. B. vom Duplex- in den Simplexbetrieb), um ein Prozessorelement des Systems10zu reintegrieren. Die Router14müssen sich im Leerlauf befinden (keine Pakete in Übertragung befindlich), um zwischen Betriebsarten zu wechseln, ohne dabei Datenverlust bzw. Datenkorruption zu verursachen. Wird ein SCHLAFEN-Befehlssymbol empfangen, so verhindert das empfangende Element des Verarbeitungssystems10den Start der Übertragung irgendeines neuen Pakets auf dem zugeordneten Sendeport, der nur erlaubte Befehlssymbole auf diesem TNet-Link L übertragen darf. (Eine Ausnahme stellt das eigenadressierte AtomicWrite-Nachrichtenpaket dar, das weiter unten in dem Abschnitt über Reintegration beschrieben wird.) Jedes Paket, das übertragen wird während das SCHLAFEN-Befehlssymbol empfangen wird, wird auf normale Weise übertragen bis es vollständig ist. Der Sendeport, welcher dem Empfangsport entspricht, an dem das SCHLAFEN-Befehlssymbol empfangen wurde, fährt nichtsdestoweniger fort, erlaubte Befehlssymbole (z. B. BELEGT, BEREIT, LEERLAUF, FÜLLEN) zu übertragen, darf jedoch so lange kein neues Paket zur Übertragung initiieren bis ein BEREIT-Befehlssymbol an dem ihm zugeordneten Empfangsport empfangen wird.The SLEEP protocol is initiated by a maintenance processor via a maintenance interface (an online access point - OLZP) described in more detail below. The SLEEP protocol provides a mechanism that allows one or more TNet links L to be put to sleep at the packet boundaries. It is necessary to change the operating mode (e.g. from duplex to simplex mode) to one processor element of the system10to reintegrate. The routers14must be idle (no packets are being transmitted) to switch between operating modes without causing data loss or data corruption. If a SLEEP command symbol is received, the receiving element of the processing system prevents it10the start of the transmission of any new packet on the assigned send port, which may only transmit command symbols allowed on this TNet-Link L. (An exception is the self-addressed AtomicWrite message packet described in the section on reintegration below.) Any packet that is transmitted while the SLEEP command symbol is received is transmitted in a normal manner until it is complete. The send port, which corresponds to the receive port on which the SLEEP command symbol was received, nevertheless continues to transmit permitted command symbols (e.g. BUSY, READY, IDLE, FILL), but must not initiate a new packet for transmission until a READY command icon is received at the receiving port assigned to it.

    STOPP-Protokoll:STOP protocol:

    Das STOPP-Befehlssymbol stellt einen Mechanismus bereit, durch den rasch sämtlichen in einem Verarbeitungssystem10vorhandenen CPUs12mitgeteilt werden kann, dass es erforderlich ist, sämtliche E/A-Aktivitäten (d. h. Nachrichtenübermittlungen zwischen den CPUs12und den E/A-Paket-Schnittstellen 16, oder Nachrichtenübertragungen zwischen verschiedenen CPUs12) einzustellen. Jeder Router14verfügt über ein systemweites STOPP-Freigabekonfigurationsregister, welches durch den IP 18 über den OLZP285'(19A) gesetzt werden kann, so dass, wenn von einer CPU12ein STOPP-Befehlssymbol empfangen wird, der empfangende Router14von jedem seiner Sendeports ein STOPP-Befehlssymbol aussendet und sein Systemstopp-Freigabebit löscht. Ein Router14ignoriert sämtliche STOPP-Befehlssymbole, welche empfangen werden während das Systemstopp-Freigabebit sich in gelöschtem Zustand befindet. Auf diese Weise hat das Systemstopp-Freigabebit sowohl die Funktion einer über die Software einstellbaren Freigabeeinrichtung für die Stoppfunktion als auch die der Verhinderung eines unendlichen Aneinanderreihens von STOPP-Befehlssymbolen, nachdem einmal das erste STOPP-Befehlssymbol ausgegeben ist.The STOP command symbol provides a mechanism by which all in a processing system can be quickly accessed10existing CPUs12can be notified that it is necessary to complete all I / O activity (ie messaging between the CPUs12and the I / O packet interfaces 16, or communications between different CPUs12) to set. Any router14has a system-wide STOP release configuration register, which through the IP 18 via the OLZP285 '(19A) can be set so that when from a CPU12a STOP command symbol is received, the receiving router14sends a STOP command symbol from each of its send ports and clears its system stop enable bit. A router14ignores all STOP command symbols that are received while the system stop enable bit is in the cleared state. In this way, the system stop enable bit has both the function of a release device for the stop function, which can be set via the software, and the function of preventing an infinite series of STOP command symbols once the first STOP command symbol has been issued.

    CPUs, welche STOPP-Befehlssymbole an einem ihrer Empfangsports (der Schnittstelleneinheiten24) empfangen, geben ein Interrupt an das Interruptregister280frei, wenn das Systemstopp-Interrupt freigegeben ist (d. h. wenn die zugeordnete Anordnung des Maskenregisters282das Interrupt aktiviert;14A).CPUs that have STOP command symbols on one of their receiving ports (the interface units24) receive an interrupt to the interrupt register280free if the system stop interrupt is released (ie if the assigned arrangement of the mask register282the interrupt is activated;14A).

    Die CPUs12können mit der Fähigkeit ausgestattet sein, die STOPP-Verarbeitung zu deaktivieren. So können zum Beispiel die Konfigurationsregister75der Schnittstelleneinheiten24ein "Stoppfreigabe-Register" enthalten, das, sofern es auf einen vorgegebenen Zustand (z. B. NULL) gesetzt ist, die STOPP-Verarbeitung deaktiviert, dabei jedoch die Erkennung eines STOPP-Symbols als einen Fehler meldet.The CPUs12may have the ability to disable STOP processing. For example, the configuration registers75of the interface units24contain a "stop enable register" which, if set to a predetermined state (e.g. NULL), deactivates the STOP processing, but reports the detection of a STOP symbol as an error.

    Routerarchitektur:Router Architecture:

    Im folgenden wird auf19ABezug genommen, in welcher ein vereinfachtes Blockdiagramm des Routers14Averanschaulicht ist. Die anderen Routen14des Verarbeitungssystems10(z. B. die Router14B,14A', etc.) sind von im wesentlichen gleicher Bauart und die Beschreibung betreffend den Router14Aist daher auch auf die anderen Router14anwendbar.The following is on19AReference in which is a simplified block diagram of the router14Ais illustrated. The other routes14of the processing system10(e.g. the router14B.14A ', etc.) are of essentially the same design and the description regarding the router14Ais therefore also on the other routers14applicable.

    Wie in19Averanschaulicht, beinhaltet der Router14Asechs TNet-Ports 0, ..., 5, von denen ein jeder seinerseits einen Porteingang502(5020,....5025) und einen Ausgang504(5040, ....5045) beinhaltet.As in19Aillustrated, the router includes14Asix TNet ports 0, ..., 5, each of which in turn has a port input502(502 0....502 5) and an exit504(504 0, ....504 5) includes.

    Jeder Portausgang504verfügt über die 10 aus diesem hinausführenden, weiter oben beschriebenen Signalleitungen: neun Signalleitungen, welche parallele 9-Bit-Befehls-/Datensymbole übertragen und ein Signalbit, das den zugeordneten Sendetakt (S_Tkt) überträgt. In ähnlicher Weise ist ein jeder der Porteingänge502entsprechend geschaltet, um 10 parallele, Daten und den Empfangstakt (Empf-Tkt) umfassende Signale zu empfangen. Wie weiterhin gezeigt, beinhaltet ein jeder Porteingang502eine Eingangslogik505und ein elastisches FIFO506, um eingehende Datenpakete zu empfangen und zwischenzuspeichern, bevor sie an einen Kreuzschienenverteiler500angelegt werden. Die Kreuzschienenlogik500wird betrieben, um Nachrichtenpakete, welche an den Porteingängen502empfangen werden, gemäss den in der Bestimmungsort-ID des Nachrichtenpakets enthaltenen Informationen zu einem Portausgang504zu leiten. Die Kreuzschienenlogik500wird als regelrechter Kreuzschienenverteiler betrieben, der es erlaubt, Nachrichtenpakete, die an einem beliebigen Porteingang502empfangen werden, an einen beliebigen Portausgang504zu leiten, auch an jenen Portausgang504, der dem Porteingang502zugeordnet ist, welcher das Paket empfängt (z. B. Porteingang5022 und Portausgang5022. Die Kreuzschienenlogik500ist auch in der Lage, zwei oder mehr Nachrichtenpakete von bestimmten Porteingängen502an diesen jeweils entsprechende Portausgänge504zu leiten. Die Kreuzschienenlogik ist von herkömmlicher Bauart, so dass sich weitere Ausführungen zu ihrem Entwurf erübrigen.Every port exit504has the 10 signal lines leading from this, described above: nine signal lines which transmit parallel 9-bit command / data symbols and a signal bit which transmits the assigned transmit clock (S_Tkt). Similarly, each of the port entrances is502switched accordingly in order to receive 10 parallel signals including data and the reception clock (receive clock). As further shown, each port entrance includes502an input logic505and an elastic FIFO506to receive and buffer incoming data packets before they are sent to a matrix switch500be created. The crossbar logic500is operated to send message packets to the port inputs502are received, according to the information contained in the destination ID of the message packet for a port exit504to lead. The crossbar logic500is operated as a real crossbar distributor, which allows message packets to be sent to any port input502can be received at any port output504to direct, also to that port exit504that the port entrance502assigned which receives the packet (e.g. port entrance5022 and port output502 2, The crossbar logic500is also able to send two or more message packets from certain port inputs502corresponding port outputs at these504to lead. The crossbar logic is of conventional design, so that there is no need for further explanations regarding its design.

    Zwei der Ports, 4 und 5, des Routers14A, die in der Figur durch Schattierung hervorgehoben sind, unterscheiden sich von ihrem Aufbau her gewissermassen von den anderen; diese zwei Ports sind dafür gedacht, als jene Ports benutzt zu werden, die (über die TNet-Links Lx und Ly) direkt an ein CPU-Paar12angeschlossen werden. Die Porteingänge5024,5025für diese Ports 4, 5 sind entsprechend aufgebaut, um in einer frequenzsynchronisierten Umgebung betrieben zu werden, wenn ein Verarbeitungssystem10im Duplexbetrieb läuft. Ausserdem wird im Duplexbetrieb ein Nachrichtenpaket, das an einem beliebigen der Eingangsports 0–5 empfangen wird und für eine der CPUs12, an welche der Router angeschlossen ist, bestimmt ist, von der Kreuzschienenlogik500dupliziert und an beide Portausgänge4054,4055gesendet, welche im Gleichschritt betrieben werden, um an die CPUs, mit denen sie verbunden sind, Symbol für Symbol im wesentlichen zeitgleich dieselben Symbole übertragen. Wenn kein Duplexbetrieb vorliegt (d. h. im Simplex-Betriebsmodus) werden die Porteingänge5024,5025, sowie alle anderen Porteingänge im frequenznahen Modus betrieben.Two of the ports, 4 and 5, of the router14A, which are highlighted in the figure by shading, differ somewhat in their structure from the others; these two ports are intended to be used as those ports (via the TNet links Lx and Ly) directly to a CPU pair12be connected. The port entrances502 4.502 5for these ports 4, 5 are constructed accordingly to be operated in a frequency-synchronized environment when a processing system10runs in duplex mode. In addition, a message packet is received in duplex mode, which is received at any of the input ports 0-5 and for one of the CPUs12to which the router is connected is determined by the crossbar logic500duplicated and to both port outputs405 4.405 5sent, which are operated in synchronism in order to transmit the same symbols to the CPUs to which they are connected, symbol-by-symbol essentially at the same time. If there is no duplex mode (ie in simplex mode), the port inputs502 4.502 5, as well as all other port inputs operated in near-frequency mode.

    Ausserdem ist die Eingangslogik502für die Router-Ports 4 und 5 auch mit einer Vergleichsschaltung versehen, welche betrieben wird, wenn die CPUs12A,12Bim Duplexbetrieb arbeiten, um einen symbolweisen Vergleich zwischen den von den beiden CPUs empfangenen Befehls/Datensymbolen anzustellen. Demgemäss empfangen die Porteingänge5024,5025, wie in19Bveranschaulicht, die Befehls-/Datensymbole von den CPUs, leiten diese durch die (weiter unten besprochenen) Taktsynchronisierungs-FIFOs518und vergleichen jedes Symbol, welches die Taktsynchronisierungs-FIFOs verlässt mittels einer gattergesteuerten Vergleichsschaltung517. Beim Eintritt in den Duplexbetrieb wird ein in der Steuerlogik509enthaltenes (nicht dargestelltes) Konfigurationsregister in einen entsprechenden Zustand gesetzt, so dass es ein DPX-Signal ausgibt. Dieses DPX-Signal wird von der Steuerlogik509an die gattergesteuerte Vergleichsschaltung517übermittelt, um den symbolweisen Vergleich der aus den beiden Synchronisierungs-FIFOs518der Routereingangslogik502für die Ports 4 und 5 heraustretenden Symbole zu aktivieren. Wenn das DPX-Bit in der Steuerlogik509nicht gesetzt ist, ist die Vergleichsfunktion natürlich deaktiviert.In addition, the input logic502for router ports 4 and 5 also with a comparison circuit which is operated when the CPUs12A.12Bwork in duplex mode to make a symbolic comparison between the command / data symbols received by the two CPUs. Accordingly, the port inputs receive502 4.502 5, as in19Billustrated, the command / data symbols from the CPUs route them through the clock synchronization FIFOs (discussed below)518and compare each symbol leaving the clock synchronization FIFOs by means of a gated comparison circuit517, When entering duplex mode, one is in the control logic509contained configuration register (not shown) set in a corresponding state so that it outputs a DPX signal. This DPX signal is from the control logic509to the gate controlled comparison circuit517transmitted to compare the symbols from the two synchronization FIFOs518the router input logic502for symbols 4 and 5 that emerge. If the DPX bit in the control logic509is not set, the comparison function is of course deactivated.

    Die identischen Symbolströme, welche den Nachrichtenverkehr von den im Duplexmodus betriebenen CPUs12ausmachen, werden von den Porteingängen5024,5025empfangen, wobei jedes Symbol des Symbolstroms, das von einem Porteingang empfangen wird, identisch mit jenem ist, das im wesentlichen gleichzeitig von dem anderen Porteingang empfangen wird.The identical symbol streams, which the message traffic from the CPUs operated in duplex mode12are made out of the port entrances502 4.502 5received, with each symbol of the symbol stream received from one port input being identical to that received substantially simultaneously from the other port input.

    Um die Synchronisierung im Duplexbetrieb aufrechtzuerhalten, müssen die beiden Portausgänge des Routers14A, welche an die CPUs12übertragen, im Gleichschritt betrieben werden; das heisst, die Portausgänge müssen entsprechend betrieben werden, so dass Zyklus für Zyklus dieselben Symbole an beide CPUs12gesendet werden. Somit muss, unter Bezugnahme auf2, ein an einem der Ports 0–5 (19A) des Routers14Aempfangener und für die CPUs12bestimmter Symbolstrom an beide der im Duplexbetrieb laufenden CPUs12weitergeleitet werden, und zwar so, dass von den CPUs im wesentlichen zeitgleich zueinander identische Symbole empfangen werden. (Die CPUs12können eigenadressierte Nachrichtenpakete senden, welche im Duplexbetrieb von den Routern14dupliziert und an beide CPUs retourniert werden.) Die Ausgangslogikeinheiten5044,5045, die direkt an die CPUs12gekoppelt sind, empfangen beide Symbole von der Kreuzschienenlogik500(obwohl in dem Bestimmungsort-Feld des Nachrichtenpakets nur eine der beiden duplexbetriebenen CPUs12, z. B, die CPU12A, als Bestimmungsort angegeben ist) in synchronisierter Weise und legen diese Symbole im wesentlichen simultan an beide CPUs12an. Natürlich empfangen die CPUs12(genauer gesagt die ihnen zugeordneten Schnittstelleneinheiten24) die übertragenen Symbole mit Synchronisierungs-FIFOs mit im wesentlichen demselben Aufbau wie das in7Averanschaulichte FIFO, so dass, selbst wenn eine geringfügige Echtzeit-Phasendifferenz vorhanden sein mag, mit der die Symbole von den CPUs12empfangen werden, die zwischen den beiden CPUs12aufrechterhaltene Taktung gewährleistet, dass mit demselben Befehlszyklus von beiden CPUs12dasselbe Symbol aus den FIFO-Strukturen entnommen wird, wodurch der für den Duplex-Betriebsmodus erforderliche, synchrone, im Gleichschritt laufende Betrieb der CPUs12aufrechterhalten wird.To maintain synchronization in duplex mode, the two port outputs of the router14Awhich to the CPUs12transmitted, operated in step; This means that the port outputs must be operated accordingly, so that the same symbols are sent to both CPUs cycle by cycle12be sent. Thus, referring to2, one on one of the ports 0-5 (19A) of the router14Areceived and for the CPUs12certain symbol stream to both of the CPUs running in duplex mode12are forwarded in such a way that identical identical symbols are received by the CPUs essentially simultaneously. (The CPUs12can send self-addressed message packets, which are sent in duplex mode by the routers14duplicated and returned to both CPUs.) The output logic units504 4.504 5that go directly to the CPUs12are coupled, both symbols receive from the crossbar logic500(although in the destination field of the message packet only one of the two duplex CPUs12, e.g. B, the CPU12A, is specified as the destination) in a synchronized manner and apply these symbols to both CPUs essentially simultaneously12on. Of course, the CPUs receive12(More precisely, the interface units assigned to them24) the transmitted symbols with synchronization FIFOs with essentially the same structure as that in7Aillustrated FIFO so that even if there may be a slight real time phase difference with which the symbols from the CPUs12are received between the two CPUs12maintained timing ensures that with the same instruction cycle from both CPUs12the same symbol is taken from the FIFO structures, which means that the synchronous, synchronous operation of the CPUs required for the duplex operating mode12is maintained.

    Wie im Zusammenhang mit der Abhandlung eines detaillierteren Diagramms der Porteingänge502(20Aund21A) gezeigt werden wird, erfolgt die Steuerung der Wegeleitung hauptsächlich durch die Logik der Porteingänge502in Verbindung mit Konfigurationsdaten, die von dem Instandhaltungsprozessor18(über den Online-Zugangspunkt285'und den seriellen Bus19A; siehe1A) in Register geschrieben werden, welche in der Steuerlogik509enthalten sind.As in the context of a more detailed diagram of the port inputs502(20Aand21A) will be shown, the routing is mainly controlled by the logic of the port inputs502in conjunction with configuration data from the maintenance processor18(via the online access point285 'and the serial bus19A; please refer1A) are written in registers which are in the control logic509are included.

    Der Router14Abeinhaltet zusätzlich eine selbstprüfende Logik511, um zur Gewährleistung eines ordnungsgemässen Betriebs Prüfungen der verschiedenen Komponenten durchzuführen, aus denen sich der Router14Azusammensetzt. Im allgemeinen realisiert die selbstprüfende Logik511solche Operationen in Form von internen Paritätsprüfungen, durch Erkennung ungültiger Zustände von Ablaufsteuereinheiten und durch den Vergleich der Ausgabedaten von duplizierter Logik. Die durchgeführten Selbstprüfverfahren sind von konventioneller Natur.The router14Aalso includes self-checking logic511to perform checks on the various components that make up the router to ensure correct operation14Acomposed. In general, the self-checking logic realizes511such operations in the form of internal parity checks, by recognizing invalid states of sequential control units and by comparing the output data from duplicated logic. The self-test procedures carried out are of a conventional nature.

    Der Synchronbetrieb der Router14Aerfolgt gemäss den von der Taktgabelogik510generierten, (lokalen) Taktsignalen.The synchronous operation of the router14Adone in accordance with the clock logic510generated, (local) clock signals.

    Jeder Ausgangsport504des Routers14ist entsprechend aufgebaut, um die Anforderungen des weiter oben beschriebenen Flusssteuerungsprotokolls zur Übermittlung von Symbolen auf den TNet-Links L zu implementiern. Die Eingangslogik505jedes Porteingangs502hat ebenfalls eine unterstützende Funktion bei der Aufrechterhaltung der Synchronisierung – zumindest für jene Ports, welche Symbole in frequenznaher Umgebung aussenden – und zwar durch das Entfernen von empfangenen ÜBERSPRINGEN-Befehlssymbolen (SKIP). Das ÜBERSPRINGEN-Befehlssymbol wird in diesem Zusammenhang als Platzhaltersymbol verwendet, das bewirkt, dass Taktzyklen übersprungen werden, wodurch es einem langsameren Empfänger möglich wird, Daten von einem schnelleren Empfänger anzunehmen. Da Geräte an den Enden eines beliebigen TNet-Links L in einer frequenznahen Betriebsumgebung mit einem unterschiedlichen Takt arbeiten, kann mit relativ grosser Wahrscheinlichkeit angenommen werden, dass ein Takt um einen geringfügigen Betrag schneller als der andere ist. Ohne Taktkontrolle könnte es bei einem langsamer empfangenden Element, welches Symbole von einem schneller sendenden Element empfängt, zu einer Überlastung des Eingangs-Taktsynchronisierungs-FIFO des langsamer empfangenden Elements kommen. Das heisst, wenn ein langsamerer Takt verwendet wird, um Symbole aus dem Taktsynchronisierungs-FIFO zu entnehmen, welche mit einem schnelleren Takt in dieses eingegeben werden, so wird es früher oder später zu einem Überlaufen des Taktsynchronisierungs-FIFOs kommen.Any exit port504of the router14is constructed accordingly to implement the requirements of the flow control protocol described above for the transmission of symbols on the TNet links L. The input logic505every port entrance502also has a supporting function in maintaining synchronization - at least for those ports which emit symbols in a near-frequency environment - by removing received SKIP command symbols (SKIP). The SKIP command symbol is used in this context as a wildcard symbol that causes clock cycles to be skipped, allowing a slower receiver to accept data from a faster receiver. Since devices work at the ends of any TNet link L in a near-frequency operating environment with a different clock, it can be assumed with a relatively high probability that one clock is a little faster than the other. Without clock control, a slower receiving element that receives symbols from a faster transmitting element could overload the slower receiving element's input clock synchronization FIFO. That is, if a slower clock is used to extract symbols from the clock synchronization FIFO, which are input into it with a faster clock, sooner or later the clock synchronization FIFO will overflow.

    Die in diesem Zusammenhang bevorzugte Technik besteht darin, in regelmässigen Abständen ÜBERSPRINGEN-Symbole in den Symbolstrom einzugeben, um die Wahrscheinlichkeit eines Überlaufens des Taktsynchronisierungs-FIFOs (d. h. des Taktsynchronisierungs-FIFOs518,20A) eines Routers14(oder einer CPU12) zu vermeiden bzw. wenigstens zu minimieren, zu dem es infolge eines S_Tkt-Signals kommen könnte, welches Symbole mit einer geringfügig höheren Frequenz in das FIFO eingibt als der lokale Takt, der verwendet wird, um Symbole aus dem Synchronisierungs-FIFO zu entnehmen. Das Verwenden des ÜBERSPRINGEN-Symbols, um eine Eingabeoperation (in das FIFO) zu umgehen, wirkt sich dahingehend aus, dass der Eingabezeiger des FIFOs jedes mal wenn ein ÜBERSPRINGEN-Befehlssymbol empfangen wird, blockiert wird, so dass, was das Taktsynchronisierungs-FIFO betrifft, der das ÜBERSPRINGEN-Symbol begleitende Sendetakt fehlte.The preferred technique in this regard is to periodically enter SKIP symbols in the symbol stream to increase the likelihood of the clock synchronization FIFO (ie, the clock synchronization FIFO) overflowing518.20A) of a router14(or a CPU12) to be avoided or at least minimized, which could occur as a result of an S_Tkt signal which enters symbols into the FIFO at a slightly higher frequency than the local clock which is used to extract symbols from the synchronization FIFO. Using the SKIP symbol to bypass an input operation (into the FIFO) has the effect of blocking the FIFO's input pointer each time a SKIP command symbol is received, so that as far as the clock synchronization FIFO is concerned missing the transmit clock accompanying the SKIP symbol.

    Dadurch kann eine in jedem Porteingang502enthaltene Logik die zur Synchronisierung in einer frequenznahen Taktgabeumgebung verwendeten ÜBERSPRINGEN-Befehlssymbole erkennen und über einen Schlüssel deaktivieren, so dass nichts in das FIFO eingegeben, andererseits jedoch ein Symbol daraus entnommen wird. Vorzugsweise werden ÜBERSPRINGEN-Symbole ungefähr alle 512 Sendetakte eingefügt. Da Symbole auf Links L (z. B. zwischen einer CPU12und einem Router14, oder zwischen Routern14oder zwischen einem Router14und einer E/A-Schnittstelleneinheit16A–1) mit einer Rate von 50 MHz übertragen werden, kann dadurch schlimmstenfalls ein Frequenzunterschied von 2000 ppm bewältigt werden.This allows one in every port entrance502included logic recognize the SKIP command symbols used for synchronization in a frequency-related clocking environment and deactivate them with a key, so that nothing is entered into the FIFO, but on the other hand a symbol is taken from it. Preferably, SKIP symbols are inserted approximately every 512 transmit clocks. Since symbols on links L (e.g. between a CPU12and a router14, or between routers14or between a router14and an I / O interface unit16A-1) are transmitted at a rate of 50 MHz, a worst case scenario is a frequency difference of 2000 ppm.

    Die elastischen FIFOs506an jedem Porteingang502sind von herkömmlicher Bauart und werden dazu verwendet, um Signalunbeständigkeiten in dem Symbolstrom zu absorbieren und zu glätten, welche zum Beispiel durch das Eingeben von Flusssteuerungs- und Befehlssymbolen in das in Übertragung befindliche Nachrichtenpaket verursacht werden. Am wichtigsten jedoch ist vielleicht, dass die eastischen FIFOs506eine Zwischenspeicherung des eingehenden Nachrichtenverkehrs erlauben, wenn der Ausgangsport belegt ist.The elastic FIFOs506at every port entrance502are of conventional design and are used to absorb and smooth signal inconsistencies in the symbol stream caused, for example, by entering flow control and command symbols in the message packet being transmitted. Perhaps most importantly, the Eastern FIFOs506allow the incoming message traffic to be buffered if the outgoing port is busy.

    Der Router14Akann wie jedes andere Element des Systems10mit "Gegendruck" konfrontiert werden, wenn er dabei ist, ein empfangenes Nachrichtenpaket zu dem Gerät, für das es bestimmt ist, weiterzuleiten, und das Bestimmungsgerät vorübergehend sein Unvermögen, weiter Symbole zu empfangen, signalisiert (z. B. mittels eines BELEGT-Steuersymbols). Für eine angemessene Implementierung des Gegendruck-Verfahrens ist es erforderlich, dass die elastischen FIFOs506eine Tiefe aufweisen, (d. h. eine ausreichende Anzahl von Speicherorten beinhalten), die gross genug ist, um so lange eingehende Symbole zu empfangen und aufzubewahren, nachdem das Bestimmungsgerät aufgehört hat, Daten zu empfangen, bis das vorgeschaltete Gerät (d. h. das Gerät, welches das Nachrichtenpaket an den Router liefert) auf das BELEGT-Symbol reagieren kann und FÜLLEN- bzw. LEERLAUF-Symbole liefert (welche zwar empfangen und in die Taktsynchronisierungs-FIFOs eingegeben, jedoch nicht an die elastischen FIFOs weitergereicht werden). Kurzum, jedes elastische FIFO506muss über ausreichend Platz verfügen, um das Speichern von Symbolen fortsetzen zu können, bis das sendende Gerät vorübergehend das Senden einstellen kann.The router14Acan be like any other element of the system10be faced with "back pressure" when it is about to forward a received packet of messages to the device for which it is intended and the destination device temporarily signals its inability to continue receiving symbols (e.g., by means of a BUSY control symbol ). For an adequate implementation of the back pressure method it is necessary that the elastic FIFOs506have a depth (i.e., contain a sufficient number of storage locations) that is large enough to receive and store incoming symbols for so long after the determination device has stopped receiving data until the upstream device (i.e. the device that the Message packet to the router) can respond to the BUSY symbol and FILL or IDLE symbols (which are received and entered into the clock synchronization FIFOs, but are not passed on to the elastic FIFOs). In short, every elastic FIFO506must have enough space to continue saving symbols until the sending device can temporarily stop sending.

    Um zu einer Verringerung der Signalunbeständigkeit beizutragen, arbeiten die elastischen FIFOs mit oberen und unteren "Wasserzeichen". Wenn das elastische FIFO506beginnt, sich zu füllen, und das obere Wasserzeichen erreicht, wird von jenem Sendeport, welcher dem Empfangsport entspricht, der den Symbolstrom empfängt, ein Gegendruck-Symbol (z. B. BELEGT) übertragen. Wird zum Beispiel gerade ein Symbolstrom von dem Router-Porteingang5023empfangen und zeigt die zum Steuern des elastischen FIFOs5063verwendete FIFO-Steuerlogik546an, dass das FIFO allmählich voll wird (d. h. das obere Wasserzeichen überschritten hat), so signalisiert der Eingangsport5023dem entsprechenden Ausgangsport5043, dafür zu sorgen, dass ein BELEGT-Symbol übertragen wird. Der BELEGT-Zustand wird durch den Router14(und durch das Gerät am anderen Ende des TNet-Links L, das das Paket senden wollte, aufrechterhalten, bis die Tiefe des elastischen FIFOs5063sich unterhalb des von der FIFO-Steuerlogik546festgelegten, unteren Wasserzeichens (20A) befindet, woraufhin der Portausgang5043angewiesen wird, ein BEREIT-Symbol zu senden und dadurch die Wiederaufnahmen des Sendens des Symbolstroms anzufordern.To help reduce signal inconsistency, the elastic FIFOs work with upper and lower "watermarks". If the elastic FIFO506begins to fill and the top watermark is reached, a back pressure symbol (e.g. BUSY) is transmitted from the send port that corresponds to the receive port that receives the symbol stream. For example, there is a symbol stream coming from the router port input502 3receives and displays those to control the elastic FIFO506 3FIFO control logic used546indicates that the FIFO is gradually becoming full (ie has exceeded the upper watermark), the input port signals502 3the corresponding output port504 3to ensure that a BUSY symbol is transmitted. The BUSY state is determined by the router14(and maintained by the device at the other end of the TNet link L that wanted to send the packet until the depth of the elastic FIFO506 3itself below that of the FIFO control logic546fixed lower watermark (20A) is located, whereupon the port exit504 3is instructed to send a READY symbol, thereby requesting that the symbol stream be resumed.

    Am anderen Ende des TNet-Links L reagiert das Gerät, das dabei war, das Nachrichtenpaket zu senden, auf den Empfang des BELEGT-Befehlssymbols an dem Eingangslink mit FÜLLEN-Befehlssymbolen, die auf dem zugeordneten Ausgangs-Befehlslink übertragen werden. Das sendende Gerät fährt damit fort, FÜLLEN-Symbole zu senden und die weitere Übertragung des Nachrichtenpakets zurückzuhalten, bis das Gerät, das das BELEGT-Befehlssymbol sandte, ein BEREIT-Symbol sendet. Die Übertragung des Nachrichtenpakets wird fortgesetzt bis sie vollendet ist bzw. bis von dem Empfänger erneut Gegendruck ausgegeben wird.At the other end of the TNet link L the device reacts, that was going to send the message packet upon receipt of the FILL command symbols on the input link with FILL command symbols on the assigned output command link are transmitted. The sending Device moves with it continue, FILL symbols to send and further transmission withholding the message packet, until the device that sent the BUSY command symbol, sends a READY symbol. The transmission of the message packet will continued until it is completed or until the recipient again Back pressure is output.

    Es ist zu beachten, dass das elastische FIFO nicht nur breit genug sein muss, um diese durch "Gegendruck" bedingten Signalunbeständigkeiten zu bewältigen, sondern dass es auch in der Lage sein muss, Datensymbole zu speichern, die sich in dem FIFO ansammeln, während Steuersymbole in den Symbolstrom eingefügt werden, durch welche die TNet-Links L in andere Richtungen gesteuert werden. Eine BELEGT/BEREIT-Kombination nimmt zwei Zyklen von dem Portausgang504weg, wodurch das elastische FIFO506, das diesen Portausgang504versorgt, dazu veranlasst wird, sich um zwei Zeichen zu füllen. Um Signalunbeständigkeiten möglichst gering zu halten, muss die Dimensionierung der elastischen FIFOs506(und die Anbringung des oberen und des unteren Wasserzeichens) dergestalt erfolgen, dass das Einfügen von mindestens zwei Zeichen, vorzugsweise jedoch von mehreren Zeichen in den Symbolstrom möglich ist, bevor Gegendruck ausgegeben wird. Innerhalb der Umgebung des hier beschriebenen Systems sind die elastischen FIFOs in der Lage, vorübergehend 96 Symbole zu speichern.It should be noted that not only must the resilient FIFO be wide enough to cope with this "back pressure" signal inconsistency, it must also be able to store data symbols that accumulate in the FIFO during control symbols are inserted into the symbol stream, through which the TNet links L are controlled in other directions. A BUSY / READY combination takes two cycles from the port exit504away, causing the elastic FIFO506, the this port exit504provided, is caused to fill up with two characters. In order to keep signal inconsistencies as low as possible, the dimensioning of the elastic FIFOs506(and the attachment of the upper and lower watermarks) take place in such a way that the insertion of at least two characters, but preferably of several characters, into the symbol stream is possible before counter pressure is output. Within the environment of the system described here, the elastic FIFOs are able to temporarily store 96 symbols.

    Der Router14Aermöglicht die Einfügung einer vorgegebenen Anzahl von Symbolen bevor Gegendruck benötigt wird (Gegendruck wird anlässlich des nächstfolgenden Symbols ausgegeben, das eingeht, nachdem die vorgegebene Zahl empfangen und vorübergehend gespeichert worden ist). Die auf 96 Symbole dimensionierte Tiefe des elastischen FIFOs506ermöglicht einen normalen Aufbau einer vorgegebenen Anzahl von Symbolen und 12 Zyklen von Gegendruckverzögerung, bevor ein Porteingang502(unter Ausgabe von Gegendruck) die weitere Annahme von Daten einstellen muss oder in die peinliche Lage gerät, einen überlaufbedingten Datenverlust hinnehmen zu müssen.The router14AAllows a predefined number of symbols to be inserted before counterpressure is required (counterpressure is issued on the occasion of the next symbol that arrives after the predefined number has been received and temporarily saved). The depth of the elastic FIFO, dimensioned to 96 symbols506Allows a normal build of a given number of symbols and 12 cycles of back pressure deceleration before a port entry502(with the output of back pressure) the further acceptance of data must stop or become embarrassed to accept an overflow-related data loss.

    Jeder der Porteingänge502weist im wesentlichen einen identischen Aufbau auf, so dass die Beschreibung eines von ihnen auch auf alle anderen anwendbar ist. Demgemäss wird, wie in20Averanschaulicht, das detaillierte Blockdiagramm des Porteingangs5020für Port 0 gezeigt. Der Porteingang5020empfängt jedes 9-Bit-Daten-/Befehlssymbol an einem Eingangsregister516, wo es durch den begleitenden Sendetakt (S_Tkt) zwischengespeichert wird. Die empfangenen Symbole werden dann von dem Eingangsregister516weitergereicht und, ebenfalls durch den S_Tkt, an ein Taktsynchronisierungs-FIFO518angelegt werden. Bei dem Taktsynchronisierungs-FIFO518handelt es sich von der Logik her gesehen um dasselbe wie jenes, das in den8Aund8Bveranschaulicht ist und das in den Schnittstelleneinheiten24der CPUs12verwendet wird. In diesem Fa11 umfasst das Taktsynchronisierungs-FIFO518, wie in20Agezeigt, eine Mehrzahl von Registern520, welche parallel die Ausgabesignale des Eingangsregisters516empfangen. Einem jeden der Register520zugeordnet ist ein zweistufiger Gültigkeitsbit-Synchronisierer (G), der in20Bgenauer im Detail dargestellt und weiter unten besprochen wird. Der Inhalt eines jeden der Register520wird zusammen mit dem ein Bit umfassenden Inhalt eines jeden zugeordneten zweistufigen Gültigkeitsbit-Synchronisierer522an einen Multiplexer524angelegt und das ausgewählte Register wird zusammen mit dem Synchronisieren durch ein Registerpaar526aus dem elastischen FIFO506entnommen. Die Auswahl des Registers520, das den Inhalt des Eingangsregisters520empfängt, wird durch den Zustand des Eingabewahl-Signals bestimmt, welches von einer Eingabezeiger-Logikeinheit530geliefert wird; und die Auswahl des Registers520, das seinen Inhalt über den MUX524an die Register526bereitstellt, wird durch den Zustand eines Entnahmewahl-Signals bestimmt, welches von einer Entnahmezeiger-Logik532geliefert wird. Die Eingabe- und Entnahmezeiger-Logik530,532werden von der Synchronisierungs-FIFO-Steuerlogik534gesteuert. Die Synchronisierungs-FIFO-Steuerlogik534empfängt den eingehenden S_Tkt, um die Eingabezeiger-Logik530(sowie das Eingangsregister516) zu betreiben und das Laden des von der Eingabezeiger-Logik530gewählten Registers520zu besorgen. In ähnlicher Weise empfängt die Synchronisierungs-FIFO-Steuerlogik534das routeneigene, lokale Taktsignal (Empf-Tkt), um damit die Entnahmezeiger-Logik532zu steuern.Each of the port entrances502has essentially an identical structure, so that the description of one of them is applicable to all others. Accordingly, as in20Aillustrates the detailed block diagram of the port entrance502 0shown for port 0. The port entrance502 0receives each 9-bit data / command symbol on an input register516where it is buffered by the accompanying transmit clock (S_Tkt). The received symbols are then from the input register516passed on and, also by the S_Tkt, to a clock synchronization FIFO518be created. With the clock synchronization FIFO518From a logic point of view, it is the same as that in the8Aand8Bis illustrated and that in the interface units24of CPUs12is used. In this Fa11, the clock synchronization FIFO comprises518, as in20Ashown a plurality of registers520which parallel the output signals of the input register516receive. Each of the registers520is assigned a two-stage validity bit synchronizer (G), which in20Bis presented in more detail and discussed below. The content of each of the registers520together with the one-bit content of each associated two-step valid bit synchronizer522to a multiplexer524is created and the selected register is synchronized by a pair of registers526from the elastic FIFO506taken. The selection of the register520which contains the content of the input register520is determined by the state of the input select signal, which is from an input pointer logic unit530is delivered; and the selection of the register520that its content about the MUX524to the registers526provides, is determined by the state of an extraction selection signal, which by an extraction pointer logic532is delivered. The entry and exit pointer logic530.532are from the synchronization FIFO control logic534controlled. The synchronization FIFO control logic534receives the incoming S_Tkt to the input pointer logic530(as well as the input register516) operate and load the from the input pointer logic530selected register520to get. Similarly, the synchronization FIFO control logic receives534the router's own, local clock signal (receive clock), in order to use the extraction pointer logic532to control.

    Der folgende kurze Exkurs behandelt unter Bezugnahme auf20Betwas mehr ins Detail gehend den Gültigkeitsbit-Synchronisieren522, welcher ein D-Flipflop541mit Aktivierfunktion, ein Verzögerungselement541a, ein ODER-Glied541b, ein D-Flipflop542(mit Setz/Rücksetz/Aktivierungs-Fähigkeit, um die in der weiter unten dargestellten Wahrheitstabelle gezeigten Funktionen bereitzustellen), und ein D-Flipflop543umfasst. Das D-Flipflop541ist entsprechend verkoppelt, um die Ausgangssignale der ÜBERSPRINGEN-Prüflogik541an seinem Dateneingang (D) zu empfangen. Der Aktivierungs-Eingang des Flipflop541empfängt die von dem Eingabezeiger530gelieferte, decodierte Information, Eingabewahl, und der Takt-Eingang (Tkt) des Flipflop541empfängt den eingehenden Sendetakt (S_Tkt), welcher die eingehenden Symbole begleitet. Der Ausgang (Q) des Flipflop541wird an einen Eingang des ODER-Glieds541bund, über das Verzögerungselement541a, auch an dessen anderen Eingang angelegt. Der Ausgang (Q) des Flipflop541wird (auf einen logischen Zustand "eins") gesetzt, wenn das von der Zeigerlogik530(20A) kommende Eingabewahl-Signal das Register520des FIFOs auswählt, welchem der Gültigkeitsbit-Synchronisierer zum Empfang des nächsten Symbols – falls es sich dabei nicht um ein ÜBERSPRINGEN-Symbol handelt – zugeordnet ist.The following brief digression deals with reference to20Bvalid bit synchronization in more detail522which is a D flip-flop541with activation function, a delay element541a, an OR gate541b, a D flip-flop542(with set / reset / enable capability to provide the functions shown in the truth table shown below) and a D flip-flop543includes. The D flip-flop541is coupled accordingly to the output signals of the SKIP test logic541at its data input (D). The activation input of the flip-flop541receives the from the input pointer530provided, decoded information, input choice, and the clock input (Tkt) of the flip-flop541receives the incoming send clock (S_Tkt), which accompanies the incoming symbols. The output (Q) of the flip-flop541is connected to an input of the OR gate541band, via the delay element541a, also created at its other entrance. The output (Q) of the flip-flop541is set (to a logic state "one") if this is from the pointer logic530(20A) incoming input signal the register520of the FIFO selects which of the validity bit synchronizers to receive the next symbol - if it is not a SKIP symbol - is assigned.

    Das Verzögerungselement541aund das ODER-Glied541bwerden betrieben, um eine Impulsdehnungsschaltung herkömmlicher Bauart zu bilden, die gewährleistet, dass das Signal an dem Setz-Eingang des Flipflops542eine Dauer von zumindest einem Taktintervall hat. Da dies der Fall ist, und da bekannt ist, dass die Signale des lokalen (routereigenen) Empfangstaktes (Empf-Tkt) und des empfangenen Sendetaktes (S_Tkt) ähnliche, um nicht zu sagen identische Frequenzen aufweisen, wird klar dass zumindest ein aktiver Übergang des Empfangstaktes es dem Flipflop542erlaubt, durch Setzen des Ausgangs (Q) des Flipflops das gedehnte Signal aufzuzeichnen (siehe die Wahrheitstabelle weiter unten). Das D-Flipflop543fungiert als zusätzliche Synchronisierungsstufe, indem es ein stabiles Niveau am G-Ausgang in Bezug auf den lokalen Empf-Tkt gewährleistet. Das Entnahmewahl-Signal, eine decodierte Information des Entnahmezeigers532, wird an den Aktivierungs-Eingang des Flipflop532angelegt und erlaubt es dem Entnahme-Signal (einem von der Synchronisierungs-FIFO-Steuereinheit534kommenden, periodischen Impuls), das Gültigkeitsbit auf diesem Gültigkeits-Synchronisierer522zu löschen, nachdem das zugeordnete Register520gelesen worden ist. Wahrheitstabelle

    Setup wurde aufgrund einer getakteten Verbindung nicht abgeschlossen Windows 10

    The delay element541aand the OR gate541bare operated to form a conventional pulse stretching circuit which ensures that the signal is at the set input of the flip-flop542has a duration of at least one clock interval. Since this is the case, and since it is known that the signals of the local (router's own) receive clock (receive clock) and the received send clock (S_Tkt) have similar, if not identical, frequencies, it becomes clear that at least one active transition of the Receive clock it the flip-flop542allows to record the stretched signal by setting the output (Q) of the flip-flop (see the truth table below). The D flip-flop543acts as an additional level of synchronization by ensuring a stable level at the G output with respect to the local receive. The pick selection signal, a decoded information of the pick pointer532, is connected to the activation input of the flip-flop532and allows the withdrawal signal (one of the synchronization FIFO control unit534coming, periodic pulse), the valid bit on this valid synchronizer522delete after the assigned register520has been read. truth table

    Setup wurde aufgrund einer getakteten Verbindung nicht abgeschlossen Windows 10

    Zusammenfassend gesprochen wird der Gültigkeits-Synchronisierer522betrieben, um ein "Gültig"-Signal (G) auszugeben, wenn ein Symbol in ein Register520des FIFO518geladen wird, mit welchem dieses Symbol als ein gültiges Symbol identifiziert wird. Wenn es sich andererseits bei dem Symbol um ein ÜBERSPRINGEN-Symbol handelt, so nimmt der Ausgang der ÜBERSPRINGEN-Prüflogik540einen L-Zustand an, was bewirkt, dass das Flipflop541(d. h. der Datenausgang (Q)) auf Null bleibt, wodurch angezeigt wird, dass das zugeordnete Symbol nicht gültig ist und ignoriert werden sollte.In summary, the validity synchronizer is used522operated to issue a "valid" signal (G) when a symbol is in a register520of the FIFO518with which this symbol is identified as a valid symbol. If, on the other hand, the symbol is a SKIP symbol, the output of the SKIP test logic takes off540an L state, causing the flip-flop541(ie the data output (Q)) remains at zero, indicating that the associated symbol is not valid and should be ignored.

    Der Inhalt des Eingangsregisters516, um nun mit20Afortzufahren, wird auch an die ÜBERSPRINGEN-Prüflogik540angelegt. Der Empfang eines ÜBERSPRINGEN-Befehlssymbols bewirkt, wenn er von der ÜBERSPRINGEN-Steuerlogik540erkannt wird, dass die Funktion der Eingabezeigerlogik530gehemmt wird und das Laden des betreffenden Symbols in das Taktsynchronisierungs-FIFO518während des einen begleitenden Taktintervalls des Sendetakts verhindert wird Der Empfang eines ÜBERSPRINGEN-Befehlssymbols führt nicht dazu, dass der Eingabezeiger530vorgerückt wird oder dass das Gültigkeitsbit G gesetzt wird, da nämlich in der Praxis die Entnahme-Seite des FIFO in keiner Weise über den Empfang des ÜBERSPRINGEN-Symbols durch die Eingabe-Seite informiert wird.The content of the input register516to now use20AContinuing will also be done to the SKIP test logic540created. The receipt of a SKIP command symbol results when it is from the SKIP control logic540is recognized that the function of the input pointer logic530is inhibited and the loading of the relevant symbol into the clock synchronization FIFO518is prevented during the one accompanying clock interval of the transmit clock. Receiving a SKIP command symbol does not cause the input pointer530is advanced or that the validity bit G is set, because in practice the withdrawal side of the FIFO is in no way informed of the receipt of the SKIP symbol by the input side.

    Eingehende Daten-/Befehlssymbole, welche von der Registerpipeline526weitergereicht werden, werden ebenfalls an die Befehlsdecodierlogik544angelegt, wo jegliche Befehlssymbole des eingehenden Datenstroms decodiert werden und dazu verwendet werden, die FIFO-Steuerlogik546zu steuern. Ausser Ihrer Funktion beim Betreiben der elastischen FIFOs506, wird die FIFO-Steuerlogik546betrieben, um die erforderlichen Handshake-Signale an die Portausgänge504zu generieren, welche die Symbole über die Kreuzschienenlogik500von dem Porteingang5020empfangen.Incoming data / command symbols, which from the register pipeline526passed on are also passed to the command decoding logic544where any command symbols of the incoming data stream are decoded and used to create the FIFO control logic546to control. Except your function in operating the elastic FIFOs506, the FIFO control logic546operated to send the necessary handshake signals to the port outputs504to generate the symbols using the crossbar logic500from the port entrance502 0receive.

    Die Befehls-/Datensymbole werden auch an die Protokoll- und Paketprüflogik550angelegt, welche betrieben wird, um das Linkebenen- und Paketprotokoll zu überprüfen, und zwar einschliesslich des (weiter unten beschriebenen) Linkebenen-Halteprotokolls, der Nachrichtenpaket-Terminierungsprüfungen, usw.The command / data symbols are also sent to the protocol and packet check logic550which operates to check the link level and packet protocol, including the link level hold protocol (described below), message packet termination checks, etc.

    Diese Symbole, die keine Befehlssymbole sind (welche, wenn sie aufgefunden werden, aus dem Symbolstrom entfernt werden), d. h. die Datensymbole, werden an das elastische FIFO506weitergereicht und dort gespeichert, um in der Folge, wenn auf sie zugegriffen wird, an die Kreuzschienenlogik500übermittelt zu werden. Die Bestimmungsort-ID des Nachrichtenpakets wird ebenfalls an eine Zielport-Auswahllogik560übermittelt. Die Zielport-Auswahllogik560wird betrieben, um ausgehend von der empfangenen Bestimmungsort-ID und von Informationen aus bestimmten Konfigurationsregistern des Routers die "Zielport-Adresse" des Portausgangs504zu bestimmen, an welche die Nachricht zum Zweck der Übertragung zu leiten ist. Die Zielport-Auswahllogik560generiert einen drei Bit umfassenden Code, der an die Kreuzschienenlogik500angelegt wird und von dieser dazu verwendet wir, um die richtige Quervernetzung zu erstellen.These symbols, which are not command symbols (which, if found, are removed from the symbol stream), ie the data symbols, are sent to the elastic FIFO506passed on and stored there, in order subsequently, when they are accessed, to the crossbar logic500to be transmitted. The destination ID of the message packet is also sent to a destination port selection logic560transmitted. The destination port selection logic560is operated to determine the "destination port address" of the port output based on the received destination ID and information from certain configuration registers of the router504to determine to whom the message should be sent for the purpose of transmission. The destination port selection logic560generates a three-bit code that is connected to the crossbar logic500is created and used by it to create the correct cross-linking.

    Der ausgewählte Portausgang504muss jedoch "aktiviert" sein, um Nachrichtenpakete von dem Porteingang5020empfangen zu können. Zu diesem Zweck beinhaltet der Porteingang5020ein 6-Bit-Portfreigaberegister652, welches Informationen darüber enthält welche Portausgänge504berechtigt sind, Nachrichtenpakete von dem Porteingang5020zu empfangen. Jede Bitposition des Portfreigaberegisters562entspricht einem Portausgang504und abhängig von dem Zustand der jeweiligen Bitposition kann der entsprechende Portausgang "aktiviert" sein, so dass ein Nachrichtenverkehr von dem Porteingang zu ihm hin möglich ist, oder "deaktiviert", in welchem Fall kein Nachrichtenverkehr von dem Eingang5020zu ihm geleitet werden kann. Angenommen zum Beispiel der Porteingang5020beginnt, ein Nachrichtenpaket zu empfangen, das eine Bestimmungsort-Information enthält, welche die Zielport-Auswahllogik veranlassen würde, den Portausgang5044als Zielport anzugeben. Es sei jedoch weiterhin angenommen, dass der Zustand des Portfreigaberegisters562entsprechend beschaffen ist, so dass es dem Portausgang5044nicht erlaubt ist, Nachrichtenverkehr von dem Porteingang5020zu empfangen. Da dies der Fall ist, verhindert der Inhalt des Portfreigaberegisters562, dass irgendeine von der Zielport-Auswahllogik506erstellte Auswahlinformation an die Kreuzschienenlogik500angelegt wird. Das Paket wird vielmehr verworfen und ein Fehlersignal wird erstellt, um anzuzeigen, dass der Routen14Aein Paket empfangen hatte, das für einen Port bestimmt war, welcher für den Port, an dem das Paket empfangen worden war, als Zielport nicht erlaubt war. Der Fehler wird über den OLZP285'(19A) an den IP18 gemeldet.The selected port output504however, must be "enabled" to receive message packets from the port inbox502 0to be able to receive. For this purpose, the port entrance includes502 0a 6-bit port release register652, which contains information about which port outputs504are entitled to receive message packets from the port502 0to recieve. Each bit position of the port enable register562corresponds to a port exit504and depending on the state of the respective bit position, the corresponding por output be "activated" so that message traffic from the port entrance to it is possible, or "deactivated", in which case no message traffic from the entrance502 0can be directed to him. For example, suppose the port entrance502 0begins to receive a message packet containing destination information that would cause the destination port selection logic to exit the port504 4to be specified as the destination port. However, it is still assumed that the state of the port release register562is appropriately designed so that it is the port exit504 4is not allowed to send traffic from the port entrance502 0to recieve. As this is the case, the content of the port release register prevents562that any of the destination port selection logic506created selection information to the crossbar logic500is created. Rather, the packet is discarded and an error signal is generated to indicate that the routes14Areceived a packet that was destined for a port that was not allowed as the destination port for the port on which the packet was received. The error is about the OLZP285 '(19A) to the IP18 reported.

    Das Portfreigabemerkmal dient daher dazu, gezielt bestimmte Routing-Pfade durch den Routen14zu verhindern. Dieses Merkmal kann einen wichtigen Mechanismus bei der Verhinderung von Systemblockierungszuständen darstellen. Ein Systemblockierungszustand tritt dann ein, wenn ein zur Übermittlung von Nachrichten dienendes Netzwerk "Routingschleifen" enthält, welche aus Routinggeräten und Verbindungs-Links gebildet werden. Dies läuft so ab, dass eine Nachricht, die an einem Routinggerät empfangen wird, davon abgehalten wird, den Routen an einem bestimmten Ausgangsport zu verlassen, da bereits eine andere Nachricht gerade über diesen Port geleitet wird. Diese andere Nachricht wird jedoch ihrerseits an einem anderen Routinggerät durch eine dritte Nachricht blockiert, und so weiter. Alle Nachrichten werden jeweils in einer kreisförmigen Schleife blockiert. Es bewegt sich nichts mehr, da jede Nachricht in der Schleife von einer anderen Nachricht in der Schleife blockiert wird und ihrerseits eine andere Nachricht in der Schleife blockiert; die Nachrichten blockieren einander gegenseitig. Ohne sachgemässem Entwurf kann es bei grossen Routernetzwerken unter Umständen zu einer ganzen Reihe von systemblockadeträchtigen Umgebungen kommen, welche zu Gruppen von Nachrichtenpaketen führen, die in dem Übertragungsnetzwerk nicht mehr weiter kommen, und zwar aufgrund solcher zirkulärer Abhängigkeiten, bei denen ein jedes Nachrichtenpaket aus der Gruppe von Nachrichtenpaketen warten muss bis ein anders Paket weiter vorangekommen ist bevor es selber Zugang einem Verbindungs-Link erhält. Dank der Möglichkeit, die Freigabe bestimmter Übermittlungspfade durch den Router zu deaktivieren, wird es möglich, sämtliche möglicherweise auftretenden Routingschleifen zu eliminieren und somit das Auftreten von Systemblockadezuständen zu vermeiden.The port release feature is therefore used to target specific routing paths through the routes14to prevent. This feature can be an important mechanism in preventing system stall conditions. A system blocking state occurs when a network used for the transmission of messages contains "routing loops" which are formed from routing devices and connection links. This is done in such a way that a message that is received at a routing device is prevented from leaving the routes at a specific output port, since another message is already being routed via this port. However, this other message is blocked on another routing device by a third message, and so on. All messages are blocked in a circular loop. Nothing moves since each message in the loop is blocked by another message in the loop and in turn blocks another message in the loop; the messages block each other. Without proper design, a large number of system-block-prone environments can arise in large router networks, which lead to groups of message packets that can no longer progress in the transmission network, because of such circular dependencies in which each message packet from the group of message packets has to wait until another packet has made further progress before it itself gets access to a connection link. Thanks to the option of deactivating the release of certain transmission paths by the router, it becomes possible to eliminate any routing loops that may occur and thus to avoid the occurrence of system blockages.

    Natürlich besteht der beste Schutz gegen Routingschleifen und möglicherweise daraus entstehende Systemblockaden in erster Linie darin, sicherzustellen, dass zur Auswahl der Zielportadresse ordnungsgemässe Routinginformationen verwendet werden, so dass ein eingehendes Nachrichtenpaket nicht zu einem Ausgangsport des Routers14geleitet werden, der Teil einer Routingschleife sein könnte. Durch die Fähigkeit, die Freigabe bestimmter Routingpfade durch den Router14zu deaktivieren, wie dies durch die Portfreigaberegister möglich ist, kann gewährleistet werden, dass Routingfehler oder sonstige Fehler nicht zu Systemblockadezuständen führen. Die Realisierung dieses Konzepts wird weiter unten im Detail besprochen.Of course, the best protection against routing loops and possibly resulting system blockages is primarily to ensure that proper routing information is used to select the destination port address so that an incoming message packet does not go to an exit port of the router14routed, which could be part of a routing loop. By the ability to share certain routing paths through the router14Deactivating, as is possible with the port release registers, can ensure that routing errors or other errors do not lead to system blockages. The implementation of this concept is discussed in detail below.

    Auch hier wieder, um nun mit20Afortzufahren, werden wenn die Header der eingehenden Nachrichtenpakete empfangen werden die Bestimmungsort-IDs der Reihe nach an die Zielport-Auswahllogik560weitergereicht und dort in der Reihenfolge ihres Eintreffens einer Prüfung unterzogen. Die Zielport-Auswahllogik560stellt daraufhin eine Zielportadresse zusammen, in welcher der zugeteilte Portausgang angegeben ist. Diese Adresse wird an die Kreuzschienenlogik500angelegt, welche die Auswahl der entsprechenden Kreuzschiene vornimmt, die die Ausgangsdaten des das Nachrichtenpaket empfangenden, elastischen FIFOs506an den korrekten Portausgang504übermittelt – vorausgesetzt, wie weiter oben erwähnt, der ausgewählte Portausgang504ist für die Annahme der Porteingangsdaten freigegeben. (Falls es sich bei dem Router14um einen im Duplexbetrieb arbeitenden Router mit direkter TNet-Anbindung an die CPUs12handelt, wird ein eingehendes Nachrichtenpaket, das für die CPUs bestimmt ist, von der Kreuzschienen-Logikeinheit insofern dupliziert, als es gleichzeitig an beide Portausgänge5049und5045geleitet wird.) Die Zielport-Auswahllogik560wird im Detail in21Averanschaulicht, und beinhaltet, wie in der Figur dargestellt, ein Bestimmungsortregister570, welches von den elastischen FIFOs506der Portausgänge502(19und22A) die 3 Byte umfassende Bestimmungsort-ID des eingehenden Pakets empfängt. Die Bestimmungsort-ID beinhaltet die folgenden drei bereits weiter oben in Verbindung mit3Bbesprochenen Felder: Regions-ID, Geräte-ID, und ein 1-Bit-Feld welches das Pfadauswahlbit (P) enthält. Die Regions-ID gibt, wie schon der Name sagt, einen Bestimmungsort nach Region an und die Geräte-ID gibt das konkrete Gerät innerhalb dieser Region an. Das Pfadauswahlbit (P) gibt an, welcher der beiden Pfade (X oder Y) verwendet werden soll, um auf zwei Subprozesseinheiten des Geräts zuzugreifen.Again, to now with20ATo continue, when the headers of the incoming message packets are received, the destination IDs will be sent to the destination port selection logic in order560passed on and subjected to an examination in the order in which they arrive. The destination port selection logic560then compiles a destination port address in which the assigned port output is specified. This address is sent to the crossbar logic500created, which makes the selection of the corresponding crossbar, the output data of the elastic FIFO receiving the message packet506to the correct port exit504transmitted - provided, as mentioned above, the selected port output504is approved for the acceptance of the port incoming data. (If it is the router14a router working in duplex mode with a direct TNet connection to the CPUs12an incoming message packet destined for the CPUs is duplicated by the crossbar logic unit in that it is sent to both port outputs simultaneously504 9and504 5The destination port selection logic560is detailed in21Aand includes, as shown in the figure, a destination register570which of the elastic FIFOs506the port exits502(19and22A) receives the 3-byte destination ID of the incoming packet. Destination ID includes the following three in connection with3Bdiscussed fields: region ID, device ID, and a 1-bit field which contains the path selection bit (P). The region ID, as the name suggests, indicates a destination by region and the device ID indicates the specific device within this region. The path selection bit (P) indicates which of the two paths (X or Y) should be used to access two subprocess units of the device.

    Die Router14schaffen die Fähigkeit, ein grossdimensioniertes, vielseitiges Routingnetzwerk zum Beispiel für massiv parallele Verarbeitungsarchitekturen aufzubauen. Die Router werden entsprechend ihrer Anordnung (d. h. Ebene) in dem Netzwerk durch die Information konfiguriert, welche in gewissen in der Steuerlogik509eines Routers enthaltenen Konfigurationsregistern festgelegt ist. Diese Konfigurationsregister sind in21Adargestellt, und zwar als obere Regions-ID-Register509a, untere Regions-ID-Register509b, HiLo-Register509c, Vorgabe-Register509d, Quervernetzungsport-Register509d, Leitweg-zu-Standard-Register509f, Geräte-ID-Vergleichs-Register509gund Seitenregister 509h. Zwei zusätzliche Konfigurationsregister werden in21Cals Gerätepositions- und Mit-Register509jbzw. 509k. gezeigt. Der Inhalt dieser verschiedenen Konfigurationsregister bestimmt gemeinsam mit der Bestimmungsort-ID und dem begleitenden Pfadauswahlbit (P) eines Nachrichtenpakets die Auswahl des Portausgangs504, zu welchem das Nachrichtenpaket durch die Querschienenlogik500geleitet wird.The routers14create the ability to build a large, versatile routing network, for example for massively parallel processing architectures. The routers are configured according to their arrangement (ie level) in the network by the information contained in certain in the control logic509configuration registers contained in a router. These configuration registers are in21Ashown as an upper region ID register509 a, Lower Region ID Register509 b, HiLo register509 c, Default register509 d, Cross-Link Port Register509d , route-to-standard register509 f, Device ID comparison register509 gand page register 509 h . Two additional configuration registers are in21Cas device position and co-register509 jor 509 k . shown. The content of these various configuration registers, together with the destination ID and the accompanying path selection bit (P) of a message packet, determine the selection of the port output504to which the message packet through the crossbar logic500is directed.

    Die Ebene eines Routers ist mitbestimmend dafür, welche Abschnitte der Bestimmungsort-ID bei der Auswahl eines Zielports verwendet werden und ob eine algorithmische Adressauswahl verwendet werden kann. Zu diesem Zweck ist die Regions-ID weiterhin in zwei überlappende 10-Bit-Ebenenbezeichnungen unterteilt. Die wichtigsten 10 Bit des Inhalts der Regions-ID werden als die obere Ebene definiert, während die weniger wichtige 10 Bits der Regions-ID eine untere Ebene darstellen. Die beiden Ebenenbezeichnungen werden jeweils an einem entsprechenden der beiden 10-Bit-Eingänge eines Multiplexers572angelegt. Der Multiplexer572wählt einen der beiden 10-Bit-Eingänge als Reaktion auf den Inhalt des die (obere oder untere) Router-Ebene angebenden HiLo-Registers509aus und führt die ausgewählten 10 Bits einer Routing-Tabelle584als Adresse zu.The level of a router determines which sections of the destination ID are used when selecting a destination port and whether an algorithmic address selection can be used. For this purpose, the region ID is further divided into two overlapping 10-bit level labels. The most important 10 bits of the content of the region ID are defined as the upper level, while the less important 10 bits of the region ID represent a lower level. The two level designations are each on a corresponding one of the two 10-bit inputs of a multiplexer572created. The multiplexer572selects one of the two 10-bit inputs in response to the content of the HiLo register indicating the (upper or lower) router level509and executes the selected 10 bits of a routing table584as an address to.

    Die20Aund21Averanschaulichen die Porteingänge502und zeigen, dass jeder über eine eigene, individuelle Zielport-Auswahllogik560und Routing-Tabelle584verfügt. Für einschlägig gebildete Fachleute ist jedoch offensichtlich, dass aus Gründen der Platzersparnis eine einzige Routing-Tabelle zur gemeinsamen Verwendung durch die Zielport-Auswahllogiken aller sechs Porteingänge502verwendet werden kann. Die Ausgabedaten des Multiplexers572können ihrerseits an die Routing-Tabelle584(die in der Zustands- und Steuerlogik enthalten sein kann) multiplexiert werden, und zwar auf der Basis einer Zuordnungsentscheidung, unter Verwendung eines herkömmlichen Verfahrens der zyklischen Zuordnung Das Ergebnis des Zugriffs auf die Routing-Tabelle wird an den Eingang des Multiplexers586zurückgegeben und an diesen angelegt. Der Einfachheit halber werden diese Schritte der Zuordnungsentscheidung und des Multiplexens in21nicht dargestellt.The20Aand21Aillustrate the port entrances502and show that everyone has their own, individual destination port selection logic560and routing table584features. However, it will be apparent to those of skill in the art that, for the sake of saving space, a single routing table for common use by the destination port selection logic of all six port inputs502can be used. The output data of the multiplexer572can in turn go to the routing table584(which may be included in the state and control logic) can be multiplexed, based on an assignment decision, using a conventional cyclic assignment method. The result of access to the routing table is sent to the input of the multiplexer586returned and applied to this. For simplicity, these allocation decision and multiplexing steps are shown in21not shown.

    Die 4 wichtigsten Bits der Regions-ID werden ausserdem an eine 4-Bit-Vergleichsschaltung574angelegt, wo sie mit dem Inhalt eines 'obere Regions-ID'-Registers509averglichen werden. Die am wenigsten bedeutenden 10 Bits der Regions-ID werden an eine Vergleichsschaltung587gekoppelt, wo sie mit dem Inhalt des 'untere Regions-ID'-Registers509bverglichen werden.The 4 most important bits of the region ID are also sent to a 4-bit comparison circuit574created where it contains the content of an 'upper region ID' register509 abe compared. The least significant 10 bits of the region ID are sent to a comparison circuit587where it is linked to the content of the 'Lower Region ID' register509 bbe compared.

    Die Routing-Tabelle584, die zum Beispiel die Form eines Schreib-Lese-Speichers haben kann, wird betrieben, um eine Mehrzahl von 3-Bit-Zielportangaben zu speichern. Wenn von dem einen oder anderen 10-Bit-Abschnitt der Regions-ID auf sie zugegriffen wird, werden die drei Bits an Zielport-Auswahlinformation an einen Eingang des Multiplexers586gekoppelt; der andere Eingang des Multiplexers586empfängt den 3 Bit umfassenden Inhalt des Standardportregisters509d. Die Auswahl der Ausgangsdaten der Routing-Tabelle584durch den Multiplexer586erfolgt entweder über den Inhalt des HiLo-Registers509c, im Fall einer EINS (wodurch angezeigt wird, dass es sich bei dem Router um einen Router der oberen Ebene handelt), oder über einen erfolgreichen Vergleich zwischen dem Inhalt des 'obere Regions-ID'-Register509aund den vier MSBs der Regions-ID durch die Vergleichsschaltung574(wodurch angezeigt wird, dass der Bestimmungsort in derselben "hohen Region" gelegen ist wie dieser "Router niedriger Ebene"). Ist keine dieser Bedingungen erfüllt, so wählt der Multiplexer586stattdessen den (3 Bit umfassenden) Inhalt des Standard-Port-Registers509dals Zielportangabe aus.The routing table584For example, which may take the form of a random access memory, is operated to store a plurality of 3-bit destination port information. When accessed by one or another 10-bit portion of the region ID, the three bits of destination port selection information are passed to an input of the multiplexer586coupled; the other input of the multiplexer586receives the 3-bit content of the standard port register509 d, The selection of the output data from the routing table584through the multiplexer586takes place either via the content of the HiLo register509c , in the case of a ONE (indicating that the router is an upper-level router), or through a successful comparison between the contents of the 'upper region ID' register509 aand the four MSBs of the region ID by the comparison circuit574(indicating that the destination is in the same "high region" as this "low level router"). If none of these conditions are met, the multiplexer chooses586instead, the (3-bit) content of the standard port register509 das the destination port information.

    Die Routing-Tabelle584kann jede beliebige Grösse haben. Für einschlägig gebildete Fachleute ist jedoch klar, dass die Grösse der Routing-Tabelle584von Faktoren wie zum Beispiel der Anzahl der adressierbaren Elemente in dem System, in welchem der Router verwendet wird, und dem für die Tabelle verfügbaren Speicherplatz bestimmt wird. Die Zielport-Auswahllogik560führt einen neuartigen Kompromiss ein, welcher darin besteht, sofern erforderlich eine Tabellen-Nachschlagetechnik zu verwenden, und falls dies nicht erforderlich ist, ein algorithmisches Routingverfahren zu benutzen, um Platz in der Routing-Tabelle zu sparen. Diese Kombination ermöglicht es, eingehende Nachrichtenpakete an jeden beliebigen der sechs verfügbaren Ports des Routers14zu leiten und auch von diesem aus weiterzuübertragen und schafft so eine sehr vielseitige Routingfähigkeit.The routing table584can be any size. However, it is clear to experts with relevant training that the size of the routing table584factors such as the number of addressable elements in the system in which the router is used and the space available for the table. The destination port selection logic560introduces a novel compromise, which is to use a table lookup technique if necessary and, if not, to use an algorithmic routing technique to save space in the routing table. This combination enables incoming message packets to be sent to any of the six available ports on the router14to route and also to transmit from this and thus creates a very versatile routing ability.

    Die von dem Multiplexer586ausgewählte, 3 Bit umfassende Zielportangabe wird an einen (3 Bit umfassenden) Eingang eines weiteren Multiplexers590übermittelt, welcher zwischen den Ausgangsdaten des Multiplexers586und dem 3 Bit umfassenden Inhalt des Quervernetzungsportregister509auswählt. Welcher der beiden Werte ausgewählt wird, wird von der Seite (z. B. X oder Y) bestimmt, auf welcher der Endbestimmungsort gelegen ist, was durch den Zustand des Pfadauswahlbits (P) der eingehenden Nachricht angezeigt wird. Das Pfadauswahlbit (P) des eingehenden Nachrichtenpakets wird durch die Vergleichslogik592mit dem Inhalt des Seitenregisters509hverglichen, wobei die von dem Multiplexer590zu treffende Auswahl durch die Ausgabedaten der Vergleichslogik bestimmt wird. Befindet sich der Router nicht auf der Seite (X oder Y), für welche das Nachrichtenpaket bestimmt ist, so beeinflussen die Ausgabedaten der Vergleichslogik592die Auswahl des Inhalts des Quervernetzungsportregisters509eentsprechend. Dadurch wird das Nachrichtenpaket zu jenem Portausgang504geleitet, welcher entweder auf direktem oder auf indirektem Weg (d. h. über einen anderen Router bzw. über andere Router) das Nachrichtenpaket von der X- bzw. der Y-Seite, auf welcher sich der Router befindet, auf die andere Seite leitet, auf der sich der Bestimmungsort des Nachrichtenpakets befindet.The one from the multiplexer586selected, 3-bit destination port information is sent to an (3-bit) input of another multiplexer590which transmits between the output data of the multiplexer586and the 3-bit content of the crosslink port register509selects. Which of the two values is selected is determined by the page (e.g. X or Y) on which the final destination is located, which is indicated by the state of the path selection bit (P) of the incoming message. The path selection bit (P) of the incoming message packet is determined by the comparison logic592with the content of the page register509 hcompared, being from the multiplexer590the selection to be made is determined by the output data of the comparison logic. If the router is not on the side (X or Y) for which the message packet is intended, the output data of the comparison logic influence592from Selection of the content of the cross-linking port register509 ecorresponding. This makes the message packet that port exit504routed, which either in a direct or indirect way (ie via another router or via other routers) routes the message packet from the X or Y side on which the router is located to the other side on which the destination of the message packet is.

    Die von dem Multiplexer590getroffene Auswahl wird an den Eingang eines Multiplexers594angelegt, dessen Auswahleingang die Ausgangsdaten der UND-Gatter-Logik596empfängt. Der Multiplexer594wählt zwischen den von dem Multiplexer590und einem Multiplexer598bereitgestellten Portadressen aus. Der Multiplexer598wählt seinerseits zwischen den Ausgangsdaten der algorithmischen Routinglogik600und dem Inhalt des Standard-Port-Registers509daus. Diese Auswahl wird von der Auswahl- und Vergleichsschaltung601getroffen, welche den Inhalt des Geräte-ID(Konfigurations-)Registers509und einen ausgewählten Abschnitt der sechs Bits der Geräte-ID der eingehenden Nachricht empfängt. Es ist hier nicht im speziellen dargestellt, dass die jeweiligen Gerätebitpositions- und -expansionsregister509jbzw.509kder algorithmischen Routinglogik600(21C) ebenfalls an die Auswahl- und Vergleichslogik601(21C) angelegt werden. Die in den Gerätebitpositions- und -expansionsregistern509jund509kenthaltenen Werte dienen dazu, die Geräte-ID-Bits der Nachricht zu maskieren, so dass nur die nicht von der algorithmischen Routing-Technik verwendeten, höherwertigen Bits der Geräte-ID mit dem Inhalt des Geräte-ID-Registers5099verglichen werden.The one from the multiplexer590selection is made to the input of a multiplexer594created, the selection input of the output data of the AND gate logic596receives. The multiplexer594chooses between those from the multiplexer590and a multiplexer598provided port addresses. The multiplexer598in turn selects between the output data of the algorithmic routing logic600and the content of the standard port register509 dout. This selection is made by the selection and comparison circuit601hit the contents of the device ID (configuration) register509and receives a selected portion of the six bits of the device ID of the incoming message. It is not specifically shown here that the respective device bit position and expansion registers509 jrespectively.509 kalgorithmic routing logic600(21C) also to the selection and comparison logic601(21C) can be created. The in the device bit position and expansion registers509 jand509 kThe values contained serve to mask the device ID bits of the message, so that only the higher order bits of the device ID not used by the algorithmic routing technology with the content of the device ID register509 9be compared.

    Eine Übereinstimmung zwischen den ausgewählten (maskierten) Bits der Regions-ID der Nachricht und dem Inhalt des Geräte-ID-Registers5099führt zur Auswahl der Ergebnisse des algorithmischen Routers600mit dem Multiplexer598als möglicher Zieladresse. Wenn zum Beispiel die Regions-ID "abcdef" lautet (wobei a das höherwertige Bit darstellt) und wenn die in den Gerätebitpositions- und -expansionsregistern509jund509kenthaltenen Werte dergestalt sind, dass die Bits "def" in dem algorithmischen Prozess verwendet werden, dann werden die Bits "abc" der Regions-ID von der Auswahl- und Vergleichsschaltung601mit dem Inhalt des Geräte-ID-Registers509gverglichen. Wenn umgekehrt die Bits "cdef" für das algorithmische Routing verwendet werden, dann werden nur die Bits "ab" mit dem Inhalt des Geräte-ID-Registers509gverglichen.A match between the selected (masked) bits of the region ID of the message and the content of the device ID register509 9leads to the selection of the results of the algorithmic router600with the multiplexer598as a possible destination address. For example, if the region ID is "abcdef" (where a is the most significant bit) and if it is in the device bit position and expansion registers509 jand509 kcontained values are such that the "def" bits are used in the algorithmic process, then the "abc" bits become the region ID from the selection and comparison circuit601with the content of the device ID register509 gcompared. Conversely, if the "cdef" bits are used for algorithmic routing, then only the "ab" bits with the content of the device ID register509 gcompared.

    Welche Bits der Geräte-ID der Nachricht in den algorithmischen Routingprozess involviert sind und welche nicht, wird auch, wie weiter unten unter Bezugnahme auf21Cbesprochen, von den Gerätebitpositions- und -expansionsregistern509j,509kbestimmt.Which bits of the device ID of the message are involved in the algorithmic routing process and which are not, is also discussed below with reference to FIG21Cdiscussed, from the device bit position and expansion registers509 j.509 kcertainly.

    Die algorithmische Routing-Logik600, deren Funktionsweise weiter unten umfassender beschrieben wird, empfängt die 6 Bit umfassende Geräte-ID sowie Informationen, die von den Gerätebitpositions- und -expansionsregistern509j,509k(in21Aaus Gründen der Klarheit nicht dargestellt, siehe21C) bereitgestellt werden, um daraus eine 3 Bit umfassende Zielportidentität zu erstellen, die anstelle der Zielportidentitäten ausgewählt werden kann, welche von der Routing-Tabelle584bzw. dem Inhalt des Standardregisters509dgeliefert werden. Die algorithmische Routing-Logik600kommt nur in jenen Fällen zum Einsatz, in denen ein Router als Router unterer Ebene konfiguriert ist.The algorithmic routing logic600, the operation of which is described in more detail below, receives the 6-bit device ID and information provided by the device bit position and expansion registers509 j.509 k(in21Anot shown for reasons of clarity, see21C) are provided in order to create a 3-bit target port identity, which can be selected instead of the target port identities, which are from the routing table584or the content of the standard register509 dto be delivered. The algorithmic routing logic600is only used in cases where a router is configured as a lower level router.

    Die von dem Multiplexer594getroffene Auswahl wird an den letzten Multiplexer599angelegt, welcher diese Auswahl bzw. den 3 Bit umfassenden Inhalt des Standardportregisters (je nachdem Zustand des Inhalts des Leitweg-zu-Standard-Registers509f) an die letzte Station des Auswahlprozesses übergibt: die Prüflogik602. Die Prüflogik602wird betrieben, um den Zustand der Portausgangsdaten zu prüfen, die von dem Produkt der Zielportauswahlentscheidung angezeigt werden: es sind dies die Ausgangsdaten des Multiplexers599. So muss es sich zum Beispiel um eine gültige Zielportangabe handeln (z. B. nicht 6 oder 7). Es werden auch andere Prüfungen vorgenommen, die unter anderem darin bestehen, zu prüfen, dass der angegebene Portausgang für den konkreten Porteingang, der – wie oben geschildert – Zugriff sucht, "freigegeben" sein muss. Diese letztere Prüfung wird dazu verwendet, um gegenüber Fehlern sicher zu sein, welche zu Routing-Schleifen führen können, die in weiterer Folge Systemblockierungszustände verursachen können.The one from the multiplexer594The selection made is sent to the last multiplexer599which contains this selection or the 3-bit content of the standard port register (depending on the state of the content of the route-to-standard register509 f) to the last stage of the selection process: the test logic602, The test logic602is operated to check the state of the port output data indicated by the product of the target port selection decision: it is the output data of the multiplexer599, For example, it must be a valid destination port specification (e.g. not 6 or 7). Other checks are also carried out, which include, among other things, checking that the specified port exit for the specific port entrance, which - as described above - is looking for access, must be "released". This latter check is used to be safe from errors that can lead to routing loops that can subsequently cause system lockup conditions.

    Die Prüflogik602empfängt, wie in21Agezeigt, den Inhalt des Portfreigaberegisters562eines jeden der sechs Portausgänge502. Wie bereits erwähnt, bestimmt der Inhalt eines jeden Portfreigaberegisters562für jeden Eingangsport502zu welchen Ausgangsports504eine eingehende Nachricht weitergereicht werden kann und natürlich auch zu welchen nicht. Wenn somit zum Beispiel Port 0 einen Nachrichtenverkehr empfängt, welcher eine Bestimmungsort-ID enthält, die angibt, dass die Nachricht an den Port 3 zu leiten ist, um von dort aus weiterübertragen zu werden, so erstellt die Auswahllogik560eine 3-Bit-Menge, durch welche der Port 3 als Zielport angegeben wird, und legt diese Menge an die Prüflogik602an. Falls es sich im weiteren herausstellt, dass eine von Port 3 abgehende Übertragung von Nachrichtenverkehr für eingehenden Nachrichtenverkehr, der an Port 0 empfangen wurde, nicht erlaubt ist, so blockiert der Inhalt des Portfreigaberegisters für Port 0 die Übermittlung der Zielportadresse an die Kreuzschienenlogik500. Die Nachricht wird statt dessen zu einem nichtexistenten Ausgang der Kreuzschienenlogik500geleitet und tatsächlich ausgeschieden, und es wird ein Fehlersignal generiert, durch welches das IP-System18benachrichtigt wird.The test logic602receives as in21Ashown the content of the port release register562each of the six port outputs502, As already mentioned, the content of each port release register determines562for every input port502to which starting ports504an incoming message can be passed on and of course not to which. Thus, for example, if port 0 receives message traffic that contains a destination ID that indicates that the message is to be routed to port 3 in order to be retransmitted from there, the selection logic creates560a 3-bit set, through which port 3 is specified as the target port, and applies this set to the test logic602on. If it further turns out that a transmission of message traffic outgoing from port 3 for incoming message traffic that was received at port 0 is not permitted, the content of the port release register for port 0 blocks the transmission of the destination port address to the crossbar logic500, Instead, the message becomes a non-existent exit of the crossbar logic500passed and actually eliminated, and an error signal is generated by which the IP system18will be notified.

    Ist der Port 3 jedoch andererseits für Nachrichtenverkehr, der vom Port 0 zu ihm geleitet wird, freigegeben, so übergibt die Prüflogik602die von der Auswahllogik560erstellte Zielportangabe an die Kreuzschienenlogik500, wodurch die Nachricht zu Port 3 geleitet wird.On the other hand, if port 3 is released for message traffic that is routed from port 0 to it, the test logic transfers602that of the selection logic560created destination port information to the crossbar logic500, which routes the message to port 3.

    Die Prüflogik602ist von herkömmlicher Bauart und umfasst zum Beispiel kombinatorische Logik, die entsprechend strukturiert ist, um die durchzuführenden Prüfungen und Entscheidungen in herkömmlicher Weise zu realisieren.The test logic602is of conventional design and includes, for example, combinatorial logic, which is structured accordingly in order to implement the tests and decisions to be carried out in a conventional manner.

    Ein Grund dafür, dass die konzeptuelle Hierarchie in obere und untere Ebene visualisiert worden ist, liegt unter anderem in dem Bestreben, die Komponentenzahl der Zielport-Auswahllogik und die Grösse der Routing-Tabelle584gering zu halten. Und nicht zuletzt aufgrund ebendieser Hierarchie kann ein Router14als Router der oberen Ebene bzw. als Router der unteren Ebene bezeichnet werden und kann er in dem einen oder dem anderen der Subprozessorsysteme10A,10Bgelegen sein. Ob ein Router ein Router der oberen Ebene oder ein Router der unteren Ebene ist, hängt von der Konfiguration dieses Routers ab, so wie sie durch die Informationen bestimmt wird, die in seine verschiedenen Konfigurationsregister der Steuerlogik509geschrieben worden sind, die ausserdem auch darüber Aufschluss geben, welche Abschnitte der Regions-ID der eingehenden Nachricht dazu verwendet werden, um auf die Routing-Tabelle584zuzugreifen.One reason why the conceptual hierarchy has been visualized in the upper and lower levels is, among other things, the endeavor, the number of components of the destination port selection logic and the size of the routing table584to keep low. And last but not least, because of this hierarchy, a router can14can be referred to as a router of the upper level or as a router of the lower level and it can be used in one or the other of the subprocessor systems10A.10Bbe located. Whether a router is an upper level router or a lower level router depends on the configuration of this router, as determined by the information contained in its various configuration registers of control logic509have been written, which also provide information about which sections of the region ID of the incoming message are used to refer to the routing table584access.

    Nach Kenntnisnahme dieser Konzepte kann nun zur Betrachtung der21Bübergegangen werden, welche die Entscheidungstafel604zeigt„ die dazu verwendet wird, die letzte Zielportadresse auszuwählen, die dazu dient, den Leitweg eines eingehenden Nachrichtenpakets durch die Kreuzschienenlogik500zu dem richtigen Portausgang auszuwählen. Die Entscheidungstafel604veranschaulicht die Entscheidungen, welche auf der Basis der Bestimmungsort-ID (und des Pfadauswahlbits P) des eingehenden Nachrichtenpakets und der Konfiguration des betreffenden Routers (d. h. der in21Agezeigten Register509a, ...,509h) getroffen worden sind.After taking note of these concepts, you can now consider the21Bto be passed over to the decision board604shows "which is used to select the last destination port address which is used to route an incoming message packet through the crossbar logic500to select the correct port output. The decision board604illustrates the decisions made based on the destination ID (and path selection bit P) of the incoming message packet and the configuration of the router in question (ie21Ashown register509 a, ...,509 h) have been hit.

    Wie21Bzeigt, hat der Inhalt des Leitweg-zum-Standardport-Registers509Vorrang vor allen andern Entscheidungen: ist er entsprechend eingestellt, so dass er den Inhalt des Standardportregisters509dauswählt, so werden sämtliche anderen Informationen (Bestimmungsort-ID, Pfadauswahlbit P, der Inhalt der anderen Konfigurationsregister, usw.) überflüssig.How21Bshows the content of the route to the standard port register509Priority over all other decisions: it is set accordingly so that it contains the content of the standard port register509 dis selected, all other information (destination ID, path selection bit P, the content of the other configuration registers, etc.) becomes superfluous.

    Wie weiter oben erklärt, ist jeder Router entweder als Router der oberen oder der unteren Ebene konfiguriert. Die Router-Ebene bestimmt, welche Bits der Bestimmungsort-ID verwendet werden, um auf die Routing-Tabelle584zuzugreifen und um zu entscheiden, ob das algorithmische Routingverfahren zu verwenden ist. Router der oberen Ebene (als solche angegeben durch den Inhalt des HiLo-Registers509c) verwenden entweder die Routing-Tabelle, eine Quervernetzungsadresse oder eine Standardadresse. Router der unteren Ebene (das HiLo-Register509centhält eine NULL) verwenden tabellenbasierte, Standard-, Quervernetzungs- und algorithmische Routingverfahren.As explained above, each router is configured as either an upper or lower level router. The router level determines which bits of destination ID are used to point to the routing table584to access and decide whether to use the algorithmic routing method. Upper level router (as such indicated by the content of the HiLo register509 c) use either the routing table, a cross-linking address or a standard address. Lower level router (the HiLo register509 ccontains a NULL) use table-based, standard, cross-linking and algorithmic routing methods.

    Generell werden Router, welche als Router der oberen Ebene konfiguriert sind, dazu verwendet, um Netzwerk-"Wolken" (arbiträre Netzwerke) bestehend aus einer Anzahl von Routern14und TNet-Verbindungs-Links L, die eine Anzahl von CPUs12und E/A-Geräte16untereinander verbinden, wodurch ein Massenparallelverarbeitungssystem (MPP) gebildet wird Es können andere solche MPP-Systeme existieren, und es sind diese als Router der oberen Ebene konfigurierten Router, die in erster Linie dazu verwendet werden, um die Netzwerk-Wolken eines MPP-Systems mit anderen MPP-Systemen zu verbinden.Generally, routers configured as upper level routers are used to create network "clouds" (arbitrary networks) consisting of a number of routers14and TNet connection links L, which are a number of CPUs12and I / O devices16interconnect to form a mass parallel processing (MPP) system. Other such MPP systems may exist, and they are routers configured as upper-level routers that are primarily used to connect to an MPP system's network clouds to connect to other MPP systems.

    Im folgenden wird vorübergehend wieder auf die19und20ABezug genommen, worin veranschaulicht wird, dass die Bestimmungsort-ID eingehender Nachrichtenpakete, wenn sie von der Eingangslogik502eines bestimmten Ports empfangen wird, an das elastische FIFO506übermittelt wird, und von dem elastischen FIFO506weiter an das Register570der Zielport-Auswahllogik560(21A) übermittelt wird, wo es erfasst wird. Sobald die Bestimmungsort-ID des Nachrichtenpakets auf diese Weise erfasst ist, beginnt der Auswahlprozess, der im Hinblick auf die Herausbildung einer Zielportadresse voranschreitet, die dazu verwendet wird, um das Nachrichtenpaket durch die Kreuzschienenlogik zu dem korrekten Ausgangsport zu leiten – vorausgesetzt dieser Ausgangsport ist freigegeben, und zwar sowohl allgemein als auch für den speziellen Eingangsport, der das Nachrichtenpaket empfängt.The following will temporarily return to the19and20AReference is made, which illustrates that the destination ID of incoming message packets when received by the inbound logic502of a specific port is received to the elastic FIFO506is transmitted, and by the elastic FIFO506continue to the register570the destination port selection logic560(21A) is transmitted where it is recorded. Once the destination ID of the message packet is captured in this manner, the selection process begins that proceeds towards the formation of a destination port address that is used to route the message packet through the crossbar logic to the correct exit port - provided that exit port is enabled , both generally and for the particular input port that receives the message packet.

    Im folgenden sei unter Bezugnahme auf21Cdie algorithmische Routing-Logik600im Detail veranschaulicht, welche drei 8-Bit-zu-eins-Multiplexer620,622und624umfasst. Die drei Auswahleingänge (A, B, C) eines jeden der Multiplexer620,622,624empfängt den Inhalt eines 3 Bit umfassenden Gerätepositionsregisters509j, bei dem es sich um ein anderes der in der Steuerlogik509enthaltenen Konfigurationsregister handelt. Die Eingänge (0, 1,...) eines jeden Multiplexers620,622,624empfangen vorgegebene Bits aus den sechs Bits der Geräte-ID. Der Inhalt des Gerätepositionsregisters509jsteuert die Auswahl jener drei Bits, die als Zielportadresse gemäss der Codierung aus der weiter unten besprochenen Tabelle 4 verwendet werden.The following is with reference to21Cthe algorithmic routing logic600illustrates in detail which three 8-bit to one multiplexers620.622and624includes. The three selection inputs (A, B, C) of each of the multiplexers620.622.624receives the content of a 3-bit device position register509 jwhich is a different one in the control logic509contained configuration register. The inputs (0, 1, ...) of each multiplexer620.622.624receive predetermined bits from the six bits of the device ID. The content of the device position register509 jcontrols the selection of those three bits that are used as the destination port address in accordance with the coding from Table 4 discussed below.

    Die von den Multiplexern620,622,624ausgewählten drei Bits der Geräte-ID werden nicht unmittelbar verwendet. Die ausgewählten Bits werden vielmehr an die kombinatorische Logik angelegt, welche ein ODER-Glied626mit zwei Eingängen sowie drei UND-Glieder628(628a,628bund628c) umfasst, abhängig von dem Inhalt eines 2 Bit umfassenden Breite-Registers509k, bei dem es sich um ein anderes der in der Steuer- und Zustandslogik509enthaltenen Konfigurationsregister (21A) handelt. Das Produkt der kombinatorischen Logik ist eine 3 Bit umfassende Zielportangabe. Das Breite-Feld spezifiziert die für die Portauswahl zu verwendende Anzahl an Gerätefeldbits. Ein Wert 0 (Null) in dem Breite-Feld deutet darauf hin, dass alle algorithmisch adressierten Geräte über den Port 0 angeschlossen sind. Ein Wert 3 in dem Breite-Feld deutet darauf hin, dass algorithmisch adressierte Geräte an jedem beliebigen Port angeschlossen werden können.The one from the multiplexers620.622.624selected three bits of the device ID are not used immediately. The selected bits are rather applied to the combinatorial logic, which is an OR gate626with two inputs and three AND gates628(628a.628band628c), depending on the content of a 2-bit width register509 kwhich is a different one in the control and state logic509contained configuration register (21A) acts. The product of combinatorial logic is a 3-bit target port specification. The width field specifies the number of device field bits to be used for the port selection. A value of 0 (zero) in the width field indicates that all algorithmic addressed devices are connected via port 0. A value of 3 in the width field indicates this indicates that algorithmic addressed devices can be connected to any port.

    Der Inhalt des Gerätefeldbreitenexpansionsregisters509kspezifiziert die Bitauswahl, die zu verwenden ist, um die Zielportadresse zu bezeichnen, die an die Kreuzschienenlogik500angelegt wird. Die Werte und die Bedeutung der Positions- und Breite-Bits sind nachfolgend in den Tabellen 4 uns 5 dargelegt. TABELLE 4Gerätebit= positionVerwendete Geräte-ID-Bits0002, 1, 00013, 2, 10104, 3, 20115, 4, 31005, 41015110NA (Zielport = 0)111" " " "TABELLE 5Gerätefeldbreiten= expansionNr. des verwendeten ID-Bits000011102113The content of the device array width expansion register509 kspecifies the bit selection to use to designate the destination port address that is to the crossbar logic500is created. The values and the meaning of the position and width bits are set out below in Tables 4 and 5. TABLE 4Device bit = positionDevice ID bits used0002, 1, 00013, 2, 10104, 3, 20115, 4, 31005, 41015110NA (destination port = 0)111""""TABLE 5Device field widths = expansionNo. of the ID bit used000011102113

    Tabelle 5 zeigt welche Bits der Geräte-ID des eingehenden Nachrichtenpakets von einem jeden der Multiplexer620,622,624ausgewählt werden. So werden zum Beispiel für einen (Binär-)Wert 000 in dem Gerätebitpositionsregister509von den Multiplexern620,622und624jeweils die Bits2,1und0aus der Geräte-ID des eingehenden Nachrichtenpakets ausgewählt. Umgekehrt werden, wenn der Inhalt des Gerätebitpositionsregisters509den Binärwert100aufweist, von den Multiplexern620und622jeweils nur die Bits5und4aus der Geräte-ID ausgewählt; für den Ausgang des MUX624wird für die verbleibende Bitposition eine NULL erzwungen. Für die (Binär-)Werte110und111in dem Gerätebitpositionsregister509wird von den Multiplexern620,622und624jeweils eine NULL erzwungen und somit der Zielport0ausgewählt.Table 5 shows which bits of the device ID of the incoming message packet from each of the multiplexers620.622.624to be selected. For example, for a (binary) value 000 in the device bit position register509from the multiplexers620.622and624the bits each2.1and0selected from the device ID of the incoming message packet. Conversely, when the content of the device bit position register509the binary value100has from the multiplexers620and622only the bits each5and4selected from the device ID; for the output of the MUX624a NULL is forced for the remaining bit position. For the (binary) values110and111in the device bit position register509is used by the multiplexers620.622and624each forced a NULL and thus the destination port0selected.

    Die von den Multiplexern620,622und624auf diese Weise ausgewählten Bits werden gemäss dem Inhalt des Gerätefeldbreitenexpansionsregisters509kverwendet. Ein Breite-Wert 00 wählt somit, wie in6gezeigt, keines der Bits von den Multiplexern620,622und624aus und erzwingt dadurch eine Zielportadresse 000. Umgekehrt verwendet ein Breite-Wert10in dem Gerätefeldbreitenexpansionsregister509kzwei der von den Multiplexern620,622und624ausgewählten Bits.The one from the multiplexers620.622and624bits selected in this manner are added according to the contents of the device field width expansion register509 kused. A width value of 00 thus selects, as in6shown, none of the bits from the multiplexers620.622and624and thereby forces a destination port address 000. Conversely, uses a width value10in the device array width expansion register509 ktwo of the multiplexers620.622and624selected bits.

    Das Ergebnis ist eine 3 Bit umfassende Zielportnummer mit einer in vielen Fällen eingeschränkten Wertemenge. Bewirkt wird dadurch die Generierung eines 3 Bit umfassenden Feldes, beginnend mit der von dem Inhalt des Registers509spezifizierten Bitposition mit einer Breite, die von dem Inhalt des Registers509kspezifiziert wird.The result is a 3-bit destination port number with a limited amount of values in many cases. This causes the generation of a 3-bit field, starting with that of the content of the register509specified bit position with a width that is dependent on the content of the register509 kis specified.

    Im folgenden wird vorübergehend erneut auf die19und21CBezug genommen, worin gezeigt wird, dass die Ausgangsports504für die Reihung der Nachrichtenpakete verantwortlich sind. Generell erfolgt die Inempfangnahme und die Wegeleitung der Nachrichtenpakete durch einen Portausgang504in der Reihenfolge ihres Einlangens. Befindet sich allerdings ein Nachrichtenpaket gerade in Übertragung von einem bestimmten Portausgang, so können mehrere andere Pakete zurückgehalten werden, während sie auf ein Freiwerden dieses Portausgangs warten. Dadurch kann es erforderlich werden, auf Zuweisungsentscheidungsmethoden zurückzugreifen, um zwischen diesen Paketen auszuwählen. Dazu kann eine Reihe herkömmlicher Zuweisungsentscheidungstechniken, wie etwa das Entscheidungsverfahren der zyklischen Zuordnung. Die bevorzugte Zuweisungsentscheidungstechnik ist allerdings jene, die in der ebenfalls schwebenden Patentanmeldung 'Biased Routing Arbitration of Message Traffic in a Communications System' (Beeinflusste Routing-Zuweisungsentscheidung von Nachrichtenverkehr in einem Kommunikationssystem), lfd. Nr. 08/469.756, eingereicht am 6. Juni 1995 und an den Abtretungsempfänger der vorliegenden Anmeldung abgetreten.The following is temporarily again on the19and21CReference, which shows that the output ports504are responsible for the order of the message packets. In general, the receiving and routing of the message packets takes place through a port exit504in the order of their arrival. However, if a message packet is currently being transmitted from a particular port output, several other packets can be held back while waiting for this port output to become free. This may make it necessary to use assignment decision methods to choose between these packages. This can be done using a number of conventional assignment decision techniques, such as the cyclical assignment decision process. The preferred assignment decision technique, however, is that which was filed on June 6, in pending patent application 'Biased Routing Arbitration of Message Traffic in a Communications System', Serial No. 08 / 469,756 1995 and assigned to the assignee of the present application.

    Kurz gesagt beinhaltet jeder Portausgang504die autonome Zuweisungsentscheidungslogik630(22). Diese Zuweisungsentscheidungseinheiten630nehmen Routing-Anforderungen von einem jeden der Porteingänge502entgegen und erteilen die entsprechenden Zuweisungen in einer Reihenfolge, welche auf einer Beeinflussungstechnik basiert, bei welcher jeder Porteingang502in Kraft ist und wobei ein Beeinflussungswert vorausgesetzt wird, der einen Anteil an der gesamten Bandbreite jedes beliebigen Portausgangs repräsentiert, den dieser zu benutzen berechtigt ist.In short, each port exit includes504the autonomous allocation decision logic630(22). These assignment decision units630take routing requests from each of the port inputs502counter and give the appropriate assignments in an order based on an influencing technique in which each port entrance502is in force and assumes an influence value that represents a share of the total bandwidth of any port output that it is authorized to use.

    Gemäss dieser Zuweisungsentscheidungstechnik melden die Porteingänge502, welche Nachrichtenverkehr an einen der Portausgänge504zu übermitteln haben, ihre Zugriffsanforderungen an. Wollen zwei oder mehrere Porteingänge auf einen Portausgang zugreifen, so trifft der angeforderte Portausgang eine Prioritätsentscheidung zwischen diesen Porteingängen, indem er den Beeinflussungswert eines jeden von ihnen mit denen der anderen vergleicht und einen davon (z. B. den Porteingang mit dem höchsten Beeinflussungswert) auswählt, dem der Zugriff gewährt wird. Der Porteingang (bzw. die Porteingänge), welche bei dieser Zuweisungsentscheidung keine Berücksichtigung gefunden haben, erhalten neue, modifizierte Beeinflussungswerte, um ihre Erfolgschancen bei der folgenden Zuweisungsentscheidung zu erhöhen; der Porteingang502, welcher Zugriff erhalten hat, bekommt seinen Beeinflussungswert ebenfalls geändert, jedoch in einer Weise, die seine Chancen für die nächste Zuweisungsentscheidung verringert.According to this allocation decision technique, the port entries report502what message traffic to one of the port exits504have to submit their access requests to. If two or more port inputs want to access a port output, the requested port output makes a priority decision between these port inputs by comparing the influencing value of each of them with those of the others and selecting one of them (e.g. the port input with the highest influencing value) who is granted access. The port entrance (or the port entrances), which have not been taken into account in this assignment decision, receive new, modified influencing values in order to increase their chances of success in the following assignment decision; the port entrance502Those who have been given access also get their influence value changed, but in a way that reduces their chances of making the next assignment decision.

    Im folgenden wird auf22Bezug genommen, in welcher ein Blockdiagramm des Portausgangs504nveranschaulicht wird, von dem aus Nachrichtenpakete durch den Router14A(19A) übertragen werden. Die Grundkomponenten des Portausgangs504und deren Funktionen sind wie folgt:The following is on22Reference is made in which is a block diagram of the port output504 nis illustrated from which message packets through the router14A(19A) be transmitted. The basic components of the port exit504and their functions are as follows:

    • – die Zuweisungsentscheidungslogik630, welche betrieben wird, um Prioritätsentscheidungen zwischen Eingabeports zu treffen, wodurch die Reihenfolge bestimmt wird, in welcher die Pakete von dem Ausgangsport übertragen werden;- the allocation decision logic630which operates to make priority decisions between input ports, thereby determining the order in which the packets are transmitted from the output port;
    • – der Befehlssymbolgenerator632, der betrieben wird, um (unter Verwendung des Multiplexers634) Befehlssymbole zu generieren und in den Symbolstrom einzugeben, die erforderlich sind, um die Regeln des Protokolls aufrechtzuerhalten und zu befolgen. Stellt zum Beispiel der Router14Afest, dass er nicht in der Lage ist zu senden, da das empfangende Element belegt ist, so muss der zugeordnete Portausgang504"Gegendruck" ausgeben, indem er als Reaktion auf den Empfang eines BELEGT-Befehlssymbols die Übertragung des Nachrichtenpakets stoppt und statt dessen so lange FÜLLEN- oder LEERLAUF-Symbole einfügt bis mit der Übertragung des Nachrichtenpakets fortgefahren werden kann, was durch den Empfang eines BEREIT-Befehlssymbols angezeigt wird. Füllsymbole werden gesendet, wenn der Router ein bereits in Übertragung befindliches Nachrichtenpaket stoppen muss. Befand sich der Router14Ahingegen im Ruhezustand (kein Nachrichtenpaket in Übertragung), als das BELEGT-Symbol empfangen wurde, so sendet er LEERLAUF-Symbole und verzögert den Beginn der Übertragung eines Nachrichtenpakets so lange, bis von jenem Systemelement, das zuvor ein BELEGT-Befehlssymbol übertragen hatte, ein BEREIT-Symbol empfangen wird. Die FÜLLEN-Symbole werden von dem Befehlssymbolgenerator632an den Portausgang504geliefert. Das Protokoll erfordert auch, dass die Ausgangslogik einen "Halte"-Mechanismus implementieren: darunter ist die periodische Übertragung von Symbolen (d. h. BELEGT, LEERLAUF, falls kein Nachrichtenpaket zur Übertragung ansteht) zu verstehen, die dazu dienen, das empfangende Element darüber zu informieren, dass der Router14Asich nach wie vor im Betriebszustand befindet. Die Art des Symbols, das für diesen Haltemechanismus verwendet wird, hängt von dem gerade ausgeführten Betriebsmodus ab. Während Perioden, in denen kein Nachrichtenverkehr stattfindet, werden zum Beispiel BEREIT-Symbole verwendet und periodisch mit jedem Taktintervall bzw. Zyklus des Sendetaktes, S Tkt, übertragen. Alternativ dazu werden, wenn ein Portausgang Gegendruck ausgeübt hat, BELEGT-Symbole gesendet. Wird innerhalb eines vorgegebenen Zeitraums (z. B. 10,24 Mikrosekunden) überhaupt kein Signal empfangen, so führt dies zu einer Fehlermeldung, die über den OLZP des Routers (oder der Schnittstelleneinheit) zur Bearbeitung an den IP18übermittelt wird.- the command symbol generator632that is operated to (using the multiplexer634) Generate and enter command symbols in the symbol stream that are required to maintain and follow the rules of the protocol. For example, the router14Adetermines that it is not able to send because the receiving element is busy, the assigned port output must504 'Back pressure "by stopping the transmission of the message packet in response to the receipt of a BUSY command symbol and instead inserting FILL or IDLE symbols until transmission of the message packet can continue, which is due to the receipt of a READY command symbol Fill symbols are sent when the router has to stop a message packet that is already being transmitted14Aon the other hand, in the idle state (no message packet in transmission) when the BUSY symbol was received, it sends IDLE symbols and delays the start of the transmission of a message packet until the system element that had previously transmitted a BUSY command symbol READY symbol is received. The FILL symbols are from the command symbol generator632to the port exit504delivered. The protocol also requires the output logic to implement a "hold" mechanism: this means the periodic transmission of symbols (ie BUSY, IDLE if there is no message packet to be transmitted) that are used to inform the receiving element of this, that the router14Ais still in the operating state. The type of symbol used for this holding mechanism depends on the operating mode currently being carried out. During periods in which there is no message traffic, READY symbols are used, for example, and are transmitted periodically with every clock interval or cycle of the transmission clock, S Tkt. Alternatively, if a port exit has backpressed, BUSY symbols are sent. If no signal is received at all within a specified period of time (e.g. 10.24 microseconds), this leads to an error message that is sent to the IP via the OLZP of the router (or the interface unit) for processing18is transmitted.

    Es sei hier nur nebenbei erwähnt, dass diese von den Routern14beachteten Protokollregeln auch von den CPUs12(d. h. den Schnittstelleneinheiten24) und den E/A-Paket-Schnittstellen17eingehalten werden.It should be mentioned here by the way that these are from the routers14observed protocol rules also from the CPUs12(ie the interface units24) and the I / O packet interfaces17be respected.

    Und schliesslich ist noch zu erwähnen, dass wenn der Router14Ain dem System10(1A) direkt mit den CPUs12A,12Bkommunizieren soll, und der Duplexbetrieb verwendet wird, eine Duplexbetriebs-Logikeinheit638verwendet wird, um den an eine der CPUs12A,12Bangeschlossenen Portausgang mit dem anderen Portausgang, der ebenfalls an eine der CPUs12A,12Bangeschlossen ist, zu koordinieren.And finally it should be mentioned that if the router14Ain the system10(1A) directly with the CPUs12A.12Bto communicate, and the duplex mode is used, a duplex mode logic unit638is used to connect to one of the CPUs12A.12Bconnected port output with the other port output, which is also connected to one of the CPUs12A.12Bis connected to coordinate.

    Jeder der Portausgänge504des Routers14Aist für die Reihung der Pakete verantwortlich. Generell werden die Pakete in der Reihenfolge ihres Einlangens weitergeleitet. Wenn jedoch bereits ein Paket in Übertragung befindlich ist, müssen unter Umständen mehrere andere in einem Wartezustand belassen werden. Dabei besteht die Funktion der Zuweisungsentscheidungslogik630eines jeden Ausgangsportausgangs504darin, Routing-Anforderungen von jeder Routereingangslogik502entgegenzunehmen und jedem anfordernden Eingangsport in der richtigen Reihenfolge basierend auf dem Prioritätsschema, das in der oben erwähnten, ebenfalls schwebenden Anmeldung beschrieben ist, Zugriff auf den jeweiligen Ausgangsport zu gewähren. Jede Zuweisungsentscheidungseinheit630des Portausgangs504, die einen angeforderten Zugriff gewährt, meldet dies an alle anderen Zuweisungsentscheidungseinheiten630.Each of the port exits504of the router14Ais responsible for the order of the packages. In general, the packets are forwarded in the order in which they arrive. However, if a packet is already in transmission, several others may have to be left in a waiting state. The function of the assignment decision logic exists630of each exit sport exit504in that routing requests from any router input logic502to accept and grant each requesting input port access to the respective output port in the correct order based on the priority scheme described in the above-mentioned pending application. Each assignment decision unit630the port exit504, which grants requested access, reports this to all other assignment decision units630,

    Von den Taktsynchronisierungs-FIFOs518der Eingabelogik werden (im Duplexbetrieb) Paare identischer Symbole empfangen, welche von den beiden CPUs12übermittelt werden. Jedes Taktsynchronisierungs-FIFO ist in der Lage, jedes verzögerungsbedingte Auseinanderdriften, das zwischen den von den beiden CPUs kommenden Symbolströmen auftreten kann auszugleichen.From the clock synchronization FIFOs518The input logic receives (in duplex mode) pairs of identical symbols, which are from the two CPUs12be transmitted. Each clock synchronization FIFO is able to compensate for any delay drift that may occur between the symbol streams coming from the two CPUs.

    Wie wohl noch aus der weiter oben erfolgten Abhandlung der CPUs12in Erinnerung ist, war in der SpSt ein Online-Zugangspunkt (OLZP) enthalten, welcher dem IC18einen Zugriff zum Datenaustausch mit der CPU12ermöglichte. Der IP18war in der Lage, Befehle in den OLZP285zu schreiben, die von den Prozessoren20ausgeführt würden, um ein kleines Speicherabbild und eine Routine zu erstellen, die es der CPU12erlaubten, eine Boot(Hochfahr-) Operation abzuschliessen. Ein ähnlicher Zugriff wird dem IP18durch die Router14ermöglicht. Im folgenden wird vorübergehend wieder auf19ABezug genommen, in welcher der Router14Averanschaulicht wird, der einen OLZP285'beinhaltet, der eine Reihe von Konfigurationsregistern enthält, wie zum Beispiel die 'obere' und 'untere Region'-Register509a,509b(21A) der Zielport-Auswahllogik, und die Gerätebitpositions- und -expansionsregister509j,509kder algorithmischen Routing-Logik600(21C). Während der Initialisierung des den Router14Aenthaltenden Subprozessorsystems10Awerden die in dem OLZP285'enthaltenen Konfigurationsregister mit Informationen beschrieben, die von dem IP 18 (über den OLZP-Bus287') bereitgestellt werden, um den Router14Amit einer Konfiguration zu versehen, die es ihm erlaubt, in der einen oder anderen Weise betrieben zu werden.As probably from the discussion of the CPUs above12is remembered was in the SpSt contain an online access point (OLZP), which the IC18access for data exchange with the CPU12allowed. The IP18was able to issue commands in the OLZP285to write by the processors20would be executed to create a small memory dump and a routine that the CPU12allowed to complete a boat (boot) operation. A similar access is given to the IP18through the router14allows. The following is temporarily on again19AReferenced in which the router14Ais illustrated by an OLZP285 'which contains a number of configuration registers, such as the 'upper' and 'lower region' registers509a.509b(21A) the destination port selection logic, and the device bit position and expansion registers509 j.509 kalgorithmic routing logic600(21C). During the initialization of the router14Acontaining subprocessor system10Aare those in the OLZP285 'contained configuration register with information described by the IP 18 (via the OLZP bus287 ') are provided to the router14Awith a configuration that allows it to operate in one way or another.

    Jedoch auch der Router14Akann Informationen (Fehlermeldungen, etc.) über den OLZP285'an den IP18übergebn. Zum Beispiel wird der CRC eines jeden von dem Router14Ageleiteten Nachrichtenpakets, wie weiter oben beschrieben, einer Prüfung unterzogen. Wird dabei von dem Router14festgestellt, dass der CRC des Pakets schlecht ist, so wird das Nachrichtenpaket mit einem TPB-Symbol als schlecht gekennzeichnet und der Router meldet darüber hinaus den Fehler dem IP18durch Setzen eines in dem OLZP285'enthaltenen Fehlerregisters (nicht dargestellt), welches später von dem IP18ausgelesen werden kann. Somit ist das System durch dieses Merkmal mit einer Einrichtung zur Meldung eines Übertragungsfehlers ausgestattet.But also the router14Acan provide information (error messages, etc.) about the OLZP285 'to the IP18übergebn. For example, the CRC of each of the routers14Arouted message packet, as described above, subjected to a check. Is from the router14If the packet's CRC is found to be bad, the message packet is marked as bad with a TPB symbol and the router also reports the error to the IP18by setting one in the OLZP285 'contained error register (not shown), which is later used by the IP18can be read out. This feature thus provides the system with a device for reporting a transmission error.

    Taktgabe:Clocking:

    Sollen die CPUs12ordnungsgemäss als synchron gleichlaufende Paare im Duplexbetrieb laufen, so müssen die von ihnen verwendeten Taktsignale klarerweise synchronisiert sein.24zeigt den Aufbau der Taktgabeschaltung. In jedem synchron zu haltenden Subprozessorsystem10A/10B(1) ist eine Taktgeberschaltung vorhanden. Die generell mit der Bezugszahl650versehene Taktgeberschaltung beinhaltet einen Schwingkreis652, welcher einen Quarzoszillatorkreis652aund einen mit der Bezugszahl652bversehenen Teilerzähler im Verhältnis 1 : 8 umfasst. Der Quarzoszillatorkreis652aproduziert ein periodisches Signal mit einer Frequenz von 12,5 MHz, welches durch 8 dividiert wird, um ein Haupttaktsignal (H_TKT) mit einer Frequenz von 25/16 MHz zu erhalten. Das H_Tkt-Signal wird auch SYNC-TKT genannt. Das H_Tkt-Signal wird an den Taktgenerator654angelegt und dazu verwendet, ein Anzahl von 50-MHz-Taktsignalen zu erzeugen, die alle mit dem H_Tkt phasensynchronisiert sind. Diese 50-MHz-Signale werden an die verschiedenen Elemente (z. B. an die CPU12, die Router14, usw.) des Subprozessorsystems, das die Taktschaltung650enthält (z. B.10A), verteilt und von diesen verwendet.Should the CPUs12run properly as synchronous pairs in duplex mode, the clock signals they use must be clearly synchronized.24shows the structure of the clock circuit. In every subprocessor system to be kept in sync10A/10B(1) there is a clock circuit. The generally with the reference number650provided clock circuit includes an oscillating circuit652which is a quartz oscillator circuit652aand one with the reference number652bprovided divider counter in a ratio of 1: 8. The quartz oscillator circuit652aproduces a periodic signal with a frequency of 12.5 MHz which is divided by 8 to obtain a master clock signal (H_TKT) with a frequency of 25/16 MHz. The H_Tkt signal is also called SYNC-TKT. The H_Tkt signal is sent to the clock generator654and used to generate a number of 50 MHz clock signals, all of which are phase synchronized with the H_Tkt. These 50 MHz signals are sent to the various elements (e.g. to the CPU12who have favourited Routers14, etc.) of the subprocessor system that the clock circuit650contains (e.g.10A), distributed and used by them.

    Wie gezeigt, beinhaltet der Taktgenerator654einen Phasenvergleicher660, der entsprechend geschaltet ist, um das H_TKT-Signal zu empfangen und es mit einem Rückführungs-Taktsignal, einer phasensynchronisierten Kopie seiner selbst zu vergleichen. Die Ausgangsdaten der Phasenvergleichsschaltung660, eine analoge Spannung (V), welche den Phasenunterschied zwischen dem H_TKT- und dem Rückführungs-Taktsignal anzeigt, wird an einen spannungsgesteuerten Quarzoszillator (VCXO)662angelegt, um die Synchronisierung der von dem Taktgenerator erzeugten 50-MHz-Signale mit dem H_TKT-Signal sowohl in Bezug auf Phasengang als auch in Bezug auf Frequenz beizubehalten. Falls der Phasenvergleicher660einen Phasenunterschied zwischen den H_TKT- und den Rückführungssignalen erkennt, die einen vorgegebenen Phasenbereich überschreitet, so deaktiviert er ein VERRIEGELUNG-Signal, um anzuzeigen, dass die Phasenverriegelung bzw. Phasensynchronisation nicht mehr gegeben ist.As shown, the clock generator includes654a phase comparator660which is switched accordingly to receive the H_TKT signal and to compare it with a feedback clock signal, a phase-synchronized copy of itself. The output data of the phase comparison circuit660, an analog voltage (V) indicating the phase difference between the H_TKT and the feedback clock signal is applied to a voltage controlled crystal oscillator (VCXO)662designed to maintain the synchronization of the 50 MHz signals generated by the clock generator with the H_TKT signal both in terms of phase response and in terms of frequency. If the phase comparator660Detects a phase difference between the H_TKT and the feedback signals that exceeds a predetermined phase range, so it deactivates a LOCK signal to indicate that the phase lock or phase synchronization is no longer given.

    Der VCXO662(24) ist ein spannungsgesteuerter Quarzoszillator mit 100 MHz, der entsprechend konfiguriert ist, um innerhalb von engen Toleranzgrenzen betrieben zu werden. Das Produkt des VCXO662wird an einen Synchronzähler angelegt, der die Ausgangsdaten des VCXD662um die Hälfte nach unten zählt (durch 2 dividiert), um die 50-MHz-Signale zu erzeugen, und durch 64 dividiert, um eine Kopie des H_Tkt-Signals, das Rückführungssignal, zu erzeugen. Die von dem Zähler663erzeugten 50-MHz-Taktsignale werden über das gesamte Subprozessorsystem verteilt und überall bereitgestellt, wo sie benötigt werden.The VCXO662(24) is a 100 MHz voltage controlled crystal oscillator that is configured to operate within narrow tolerance limits. The product of the VCXO662is applied to a synchronous counter that stores the output data of the VCXD662counts down by half (divided by 2) to produce the 50 MHz signals and divided by 64 to produce a copy of the H_Tkt signal, the feedback signal. The one from the counter663generated 50 MHz clock signals are distributed across the entire subprocessor system and provided wherever they are needed.

    Im folgenden wird auf25Bezug genommen, in welcher die Zwischenverbindung und die Verwendung zweier Taktsignale650veranschaulicht wird, die dazu benutzt werden, synchrone Taktsignale für ein Paar von Subprozessorsystemen10A,10B(1) für einen frequenzsynchronisierten Betrieb zu erzeugen. Wie in25veranschaulicht, verfügen die CPUs12Aund12Bder Subprozessorsysteme10A,10Büber je eine Taktschaltung650, die in25als Taktschaltungen650Aund650Bdargestellt sind und Schwingkreise652A,652Bbeinhalten. Es wird jedoch nur der Taktoszillator652einer der CPUs12verwendet, um daraus das H_TKT-Signal für beide CPUs12zu bilden.25zeigt den Schwingkreis625Ader CPU12A, der zum Steuern des Taktgenerators654Aund654Bbeider CPUs12verwendet wird. Eine Steuer- und Signalleitung667verbindet die beiden Subprozessorsysteme untereinander, um das von dem Schwingkreis652Agebildete H_TKT-Signal an den Taktgenerator654Bdes Subprozessorsystems10Bzu liefern. Zur Fehlereingrenzung und zur Aufrechterhaltung der Signalqualität wird das H_TKT-Signal über ein getrenntes Ansteuerungsglied und über eine Rückübertragungsverbindung668an den Taktgenerator654Ades Subprozessorsystems10Ageliefert. Der Grund für die Rückübertragungsverbindung668besteht darin, ein Verzögerung zwischen dem Schwingkreis652Aund dem Taktgenerator654Azu erzwingen, welche annähernd jener entspricht, die der Taktgenerator654Baufgrund der durch die Signalverbindung667erzwungenen Verzögerung erfährt.The following is on25Referred to in which the interconnection and the use of two clock signals650that are used to generate synchronous clock signals for a pair of subprocessor systems10A.10B(1) for frequency-synchronized operation. As in25illustrated, the CPUs12Aand12Bof subprocessor systems10A.10Bvia one clock circuit each650, in the25as clock circuits650Aand650Bare shown and resonant circuits652A.652Binclude. However, it only becomes the clock oscillator652one of the CPUs12used to get the H_TKT signal for both CPUs12to build.25shows the resonant circuit625Athe CPU12Awhich is used to control the clock generator654Aand654Bof both CPUs12is used. A control and signal line667connects the two subprocessor systems to each other, around that of the resonant circuit652Aformed H_TKT signal to the clock generator654Bof the subprocessor system10Bto deliver. For error limitation and in order to maintain the signal quality, the H_TKT signal is transmitted via a separate control element and via a retransmission connection668to the clock generator654Aof the subprocessor system10Adelivered. The reason for the retransmission connection668is a delay between the resonant circuit652Aand the clock generator654Ato force, which corresponds approximately to that which the clock generator654Bdue to the through the signal connection667experienced delay.

    Aus Gründen der Klarheit wird in25nicht spezifisch dargestellt, dass der Schwingkreis652über Treiber und Verbindungen verfügt, welche jenen des Oszillators652Aspiegelbildlich entsprechen. Durch die Kabelverbindung zwischen den CPUs12A,12Bwird bestimmt, welcher der Schwingkreise652A,652Bder Oszillator ist, der die beiden Taktgeneratoren654A,654Bsteuert. Das heisst wenn das Kabel (nicht dargestellt) auf die eine Weise angeschlossen ist, so wird die in25gezeigte Verbindung zwischen den Subprozessorsystemen10A,10Brealisiert; wenn es in einer anderen Weise angeschlossen ist, so sind die Verbindungen ähnlich aber es ist nun der Schwingkreis652B, der als Oszillator verwendet wird.For the sake of clarity, in25not specifically shown that the resonant circuit652has drivers and connections that match those of the oscillator652Acorrespond in mirror image. Through the cable connection between the CPUs12A.12Bit is determined which of the resonant circuits652A.652Bis the oscillator that is the two clock generators654A.654Bcontrols. This means that if the cable (not shown) is connected in one way, the in25shown connection between the subprocessor systems10A.10Brealized; if it is connected in a different way, the connections are similar but it is now the resonant circuit652Bwhich is used as an oscillator.

    Im folgenden wird mit25fortgefahren, wobei das von dem Schwingkreis652Ades Unterverarbeitungssystems10Aerzeugte H_TKT-Signal von beiden Unterverarbeitungssystemen10A,10Bals ihr jeweiliges SYNC-TKT-Signal verwendet wird und die verschiedenen anderen Taktsignale aus den 50-MHz-Signalen gebildet werden, die von den Taktgeneratoren654A,654Berzeugt werden. Dadurch werden die Taktsignale der gepaarten Unterverarbeitungssysteme10A,10Bim Hinblick auf eine frequenzsynchronisierte Funktionsweise, wie sie für den Duplexbetrieb erforderlich ist, synchronisiert.The following is with25continued, which is from the resonant circuit652Aof the sub-processing system10Agenerated H_TKT signal from both sub-processing systems10A.10Bis used as their respective SYNC-TKT signal and the various other clock signals are formed from the 50 MHz signals generated by the clock generators654A.654Bbe generated. This makes the clock signals of the paired sub-processing systems10A.10Bwith a view to a frequency-synchronized mode of operation, as required for duplex operation.

    Die VCXOs662der Taktgeneratoren654A,654Bsind von herkömmlicher Bauart und von einem Typ, welcher eine gewünschte Frequenz selbst dann beibehält, wenn die angelegte, analoge Spannung (V) von dem Phasenvergleicher660ausserhalb des Steuergrenzbereichs liegt (was darauf hindeutet, dass die von dem Phasenvergleicher660kommenden Taktsignale in beträchtlichem Ausmass phasenverschoben sind. Dadurch wird es möglich, dass beide Taktgeneratoren654A,654Bauch bei nicht ordnungsgemässer Funktionsweise des Schwingkreises652Aweiterhin Taktsignale an die beiden Unterverarbeitungssysteme10A,10Bliefern, obwohl die Subprozessorsysteme nicht mehr phasensynchronisiert sind.The VCXOs662of the clock generators654A.654Bare of conventional construction and of a type which maintains a desired frequency even when the applied analog voltage (V) is from the phase comparator660is outside the tax limit (suggesting that the phase comparator660coming clock signals are phase-shifted to a considerable extent. This makes it possible for both clock generators654A.654Beven if the resonant circuit does not function properly652Aclock signals continue to the two sub-processing systems10A.10Bdeliver, although the subprocessor systems are no longer phase-locked.

    Die VERRIEGELUNG-Signale, welche von dem Phasenvergleicher660der Taktgeberschaltungen654A,654Bausgegeben werden (und darauf hindeuten, dass der H_TKT vorhanden ist und mit seiner Kopie, dem Rückführungssignal synchron ist), sind beide an eine Fehlerlogik670A,670Bgekoppelt. Die Ausgabe des VERRIEGELUNG-Signals zeigt an, dass die von dem Taktgenerator654erzeugten 50-MHz-Signale, was den Phasengang und die Frequenz betrifft, mit dem H_TKT-Signal synchronisiert sind. Wenn somit eines der VERRIEGELUNG-Signale gleich NULL (d. h. deaktiviert) ist, so ermittelt die Fehlerlogik670welcher der Taktgeneratoren sein VERRIEGELUNG-Signal deaktiviert hat und melden dies über den OLZP285an den IP18. Sind beide VERRIEGELUNG- Signale deaktiviert, so können die CPUs davon ausgehen, dass der Schwingkreis652A, der die Taktgeneratoren654A,654Bsteuert, nicht ordnungsgemäss funktioniert.The LOCK signals from the phase comparator660the clock circuits654A.654Boutput (and indicate that the H_TKT is present and is in sync with its copy, the feedback signal) are both at fault logic670A.670Bcoupled. The output of the LOCK signal indicates that from the clock generator654generated 50 MHz signals in terms of phase response and frequency are synchronized with the H_TKT signal. If one of the LOCK signals is equal to ZERO (ie deactivated), the error logic determines670which of the clock generators has deactivated their LOCK signal and report this via the OLZP285to the IP18, If both LOCK signals are deactivated, the CPUs can assume that the resonant circuit652Awho the clock generators654A.654Bcontrols, does not work properly.

    Konstantverhältnistaktgabe:Constant Ratio Clocking:

    Wie weiter oben erwähnt, erfolgen Symbolübertragungen zwischen einem Paar von duplexbetriebenen CPUs12und Routern14A,14B(1) in einem frequenzsynchronisierten Betriebsmodus; das bedeutet, dass das den Symbolstrom begleitende Taktsignal, das dazu verwendet wird, um Symbole in das Taktsynchronisierungs-FIFO des empfangenden Elements (des Routers14, oder der CPU12) einzugeben, zwar nicht dem Phasengang aber der Frequenz nach im wesentlichen mit jenem des empfangenden Elements identisch ist, das verwendet wird, um Symbole aus dem Taktsynchronisierungs-FIFO zu entnehmen. So ist zum Beispiel in23, auf die im folgenden Bezug genommen wird und in welcher Symbole veranschaulicht werden, die von einem Router14Azu einem Paar von duplexbetrieben CPUs12A,12Bgesendet werden, das Taktsignal, welches seinen Ursprung am Router14Animmt (und den an den CPUs12A,12Bzu empfangenden Symbolstrom als Empfangstakt (Empf-Tkt) begleitet, im wesentlichen frequenzidentisch mit dem lokalen Takt (Lokaler Tkt). Der erstere (Empf-Tkt) wird verwenden, um Symbole in die Taktsynchronisierungs-FIFOs126einer jeden CPU einzugeben, wohingegen der letztere dazu dient, Symbole aus den FIFOs zu entnehmen.As mentioned above, symbol transfers occur between a pair of duplex-operated CPUs12and routers14A.14B(1) in a frequency-synchronized operating mode; that is, the clock signal accompanying the symbol stream used to insert symbols into the clock synchronization FIFO of the receiving element (the router14, or the CPU12), not the phase response, but the frequency is essentially identical to that of the receiving element, which is used to extract symbols from the clock synchronization FIFO. For example, in23, which are referred to below and in which symbols are illustrated by a router14Ato a pair of duplex-operated CPUs12A.12Bare sent, the clock signal, which originates at the router14Atakes (and that on the CPUs12A.12Bsymbol stream to be received accompanied as receive clock (receive clock), essentially frequency-identical to the local clock (local clock). The former (Receive-Tkt) will use symbols in the clock synchronization FIFOs126to enter each CPU, whereas the latter serves to extract symbols from the FIFOs.

    Diese Technik eignet sich ausgezeichnet für Taktsignale (S_Tkt, Empf-Tkt und lokaler Tkt), die dieselbe Frequenz aufweisen, welche darüber hinaus noch der Taktfrequenz entspricht, die für die Kommunikation auf den TNet-Links L verwendet wird. Angenommen jedoch, dass aus Kompatibilitätsgründen mit den elektrischen und sonstigen Eigenschaften des Übertragungsmediums, d. h. der TNet-Links L, die Frequenz des Taktsignals, das dazu verwendet wird, um Symbole über dieses Medium zu übertragen, begrenzt ist, dass aber die empfangende Einheit, in diesem Fall die CPUs12, in der Lage ist, mit einem Taktsignal von wesentlich höherer Frequenz betrieben zu werden. In solchen Situationen müssen entsprechende Vorkehrungen getroffen werden, um zu gewährleisten, dass die Synchronisation, mit der Symbole aus den Synchronisierungs-FIFOs126einer jeden CPU entnommen werden, zwischen den beiden CPUs aufrechterhalten bleibt.This technique is ideal for clock signals (S_Tkt, Receive-Tkt and local Tkt) that have the same frequency, which also corresponds to the clock frequency that is used for communication on the TNet-Links L. However, suppose that for reasons of compatibility with the electrical and other properties of the transmission medium, ie the TNet-Link L, the frequency of the clock signal used to transmit symbols via this medium is limited, but that the receiving unit, in in this case the CPUs12, is able to be operated with a clock signal of a significantly higher frequency. In such situations, appropriate precautions must be taken to ensure that the synchronization with the symbols from the synchronization FIFOs126taken from each CPU, is maintained between the two CPUs.

    In diesem Fall wird ein Konstantverhältnistaktgabemechanismus verwendet, um die Funktion der beiden Taktsynchronisierungs-FIFOs126zu steuern, wodurch gewährleistet wird, dass das Taktsignal, welches Symbole aus den beiden FIFOs entnimmt, mit derselben Geschwindigkeit arbeitet, mit der diese in die FIFOs eingegeben werden. In26A, auf welche im folgenden Bezug genommen wird, wird ein solcher Konstantverhältnistaktgabemechanismus gezeigt und mit der Bezugszahl700bezeichnet. Wie in26Averanschaulicht, beinhaltet der Taktsynchronisierungs-FIFO-Steuermechanismus700ein voreinstellbares, mehrstufiges, serielles Schieberegister702, dessen parallele Ausgänge an einen N-zu-1-Multiplexer (MUX)704angelegt werden. Das serielle Schieberegister702wird mit dem schnelleren (höherfrequenten) lokalen Taktsignal (Lokaler Tkt) betrieben, der an den Takteingang (TKT) des Schieberegisters angelegt wird. Ein 15-Bit-Bus701überträgt eine Vorgabe (Vgbl) an den Dateneingang (DE), um das serielle Schieberegister702voreinzustellen.In this case, a constant ratio clocking mechanism is used to perform the function of the two clock synchronization FIFOs126to control, thereby ensuring that the clock signal which Takes symbols from the two FIFOs, works at the same speed at which they are entered into the FIFOs. In26ATo which reference is made hereinafter, such a constant ratio clocking mechanism is shown and with the reference number700designated. As in26Aillustrated includes the clock synchronization FIFO control mechanism700a presettable, multi-level, serial shift register702whose parallel outputs to an N-to-1 multiplexer (MUX)704be created. The serial shift register702is operated with the faster (higher frequency) local clock signal (local clock) which is applied to the clock input (TKT) of the shift register. A 15 bit bus701transfers a default (Vgbl) to the data input (DE) to the serial shift register702preset.

    Für einschlägig gebildete Fachleute ist klar, dass die Anzahl der das serielle Schieberegister bildenden Stufen beliebig sein kann und, wie noch zu zeigen sein wird, von dem Verhältnis abhängig ist, welches zwischen dem Taktsignal, mit dem Symbole übermittelt und in die Taktsynchronisierungs-FIFOs126eingegeben werden, und der Frequenz des lokal verwendeten Taktsignals herrscht. Im vorliegenden Fall kann davon ausgegangen werden, dass 15 Stufen ausreichen.It will be clear to those skilled in the art that the number of stages forming the serial shift register can be arbitrary and, as will be shown, depends on the relationship between the clock signal, the symbols, and the clock synchronization FIFOs126can be entered, and the frequency of the locally used clock signal prevails. In the present case, it can be assumed that 15 levels are sufficient.

    Der MUX704wird betrieben, um einen der 15 parallelen Datenausgänge (DA) von dem Schieberegister702auszuwählen und an die Eingänge (E) des MUX anzulegen, und zwar als Ausgabedaten des Konstantverhältnistaktsteuermechanismus, der als Lokales Tkt-Signal verwendet wird, um Symbole aus den Taktsynchronisierungs-FIFOs126zu entnehmen und den Entnahmezeigerzähler130zu betätigen (d. h. zu aktualisieren). Der ausgewählte Ausgang wird auch von dem Ausgang (0) des MUX gekoppelt und an den Rückschalteingang (SI-Eingang) des seriellen Schieberegisters angelegt. Die Auswahl erfolgt durch die Zykluslängenlogik706, die durch einen (4-Bit-)Vorgabewert (Vgb2) voreinstellbar, der an den Dateneingang (DE) der Zykluslängenlogik angelegt wird – realisierbar beispielsweise als 4-Bit-Zähler. Der 4-Bit-Ausgangswert der Zykluslängenlogik bildet den Auswahlwert, der an den Auswahleingang (C) des MUX704angelegt wird.The MUX704is operated to one of the 15 parallel data outputs (DA) from the shift register702to select and apply to the inputs (E) of the MUX as output data from the constant ratio clock control mechanism, which is used as the local clock signal, to obtain symbols from the clock synchronization FIFOs126to remove and the withdrawal pointer counter130to operate (ie to update). The selected output is also coupled from the output (0) of the MUX and applied to the switch-back input (SI input) of the serial shift register. The selection is made using the cycle length logic706, which can be preset using a (4-bit) default value (Vgb 2 ) that is applied to the data input (DE) of the cycle length logic - can be implemented, for example, as a 4-bit counter. The 4-bit output value of the cycle length logic forms the selection value that is sent to the selection input (C) of the MUX704is created.

    Wesentlich ist, dass die Konstantverhältnistaktsteuerung betrieben wird, um ein Ausgangssignal zu erzeugen, welches über eine vorgegebene Zeitspanne hinweg dieselbe Anzahl an Taktausschlägen beim Empf-Tkt aufweist. Unter der Annahme eines Verhältnisses von N : M (wobei N > M) zwischen dem Taktsignal der CPU12und dem Taktsignal, das dazu verwendet wird, um Symbole in das Taktsynchronisierungs-FIFO126einzugeben (Empf-Tkt), wird das serielle Schieberegister entsprechend voreingestellt, so dass M Stufen des Schieberegisters einen ersten digitalen Zustand enthalten (z. B. eine EINS), und andere einen anderen digitalen Zustand enthalten (z. B. eine NULL). Die Zykluslängenlogik ist mit einem Wert voreingestellt, welcher Ausgangsdaten des seriellen Schieberegisters auswählt, wodurch praktisch ein abgeschnittenes, serielles Schieberegister mit M Stufen erzeugt wird (dies natürlich nur sofern M nicht gleich 15 ist, in welchem Fall die letzte oder 15. Stufe die Rückkopplung auf die erste Stufe bildet). Ein Beispiel soll dies verdeutlichen.It is essential that the constant ratio clock control is operated in order to generate an output signal which has the same number of clock deflections at the receive time over a predetermined period of time. Assuming a ratio of N: M (where N> M) between the clock signal of the CPU12and the clock signal used to insert symbols into the clock synchronization FIFO126the serial shift register is preset accordingly, so that M stages of the shift register contain a first digital state (e.g. a ONE) and others contain a different digital state (e.g. a ZERO). The cycle length logic is preset with a value which selects the output data of the serial shift register, which practically produces a truncated serial shift register with M stages (of course only if M is not 15, in which case the last or 15th stage of the feedback) forms the first stage). An example should clarify this.

    Es sei unter vorübergehender Bezugnahme auf23angenommen, dass Symbole von dem Router14Amit einem 50-MHz-Takt zu den beiden duplexbetriebenen CPUs12übertragen werden. Somit werden Symbole mit einer Geschwindigkeit von 50 MHz in die Taktsynchronisierungs-FIFOs126der CPUs eingegeben. Weiterhin sei angenommen, dass die Taktsignale der CPUs bei 40 MHz liegen. Das Verhältnis zwischen lokalem Takt (80 MHz) und dem Empf-Tkt-Signal ist somit 8 : 5. Das serielle Schieberegister ist mit einem Bitmuster voreingestellt, gemäss welchem die am Anfang befindlichen bzw. ersten acht der fünfzehn Stufen 5 EINSEN und 3 NULLEN enthalten. Die Zykluslängenlogik ist mit einem Wert voreingestellt, der die Auswahl der achten Stufe des seriellen Schieberegisters durch den MUX704vornimmt.It is with temporary reference to23assumed symbols from the router14Awith a 50 MHz clock to the two duplex-operated CPUs12be transmitted. Thus, symbols are inserted into the clock synchronization FIFOs at a speed of 50 MHz126of CPUs entered. It is also assumed that the clock signals of the CPUs are at 40 MHz. The ratio between the local clock (80 MHz) and the receive signal is thus 8: 5. The serial shift register is preset with a bit pattern according to which the first or first eight of the fifteen stages contain 5 ONE and 3 ZERO , The cycle length logic is preset with a value that indicates the selection of the eighth level of the serial shift register by the MUX704performs.

    Somit werden dem Schieberegister und der Zykluslängenlogik Werte zugeführt, durch welche praktisch ein serielles Schieberegister mit acht Stufen gebildet wird, in denen drei "Warten"-Zustände und fünf "Aus"-Zustände mit einer Dauer von jeweils 100 ns beinhaltet sind. Demgemäss beinhalten die Ausgabesignale des MUX704, welche das Taktsignal erzeugen, das Symbole aus den Taktsynchronisierungs-FIFOs126entnimmt, Empf-Tkt, fünf Taktimpulse pro 100-ns-Periode. Somit werden während jeder 100-ns-Periode fünf Symbole in die Taktsynchronisierungs-FIFOs126eingegeben und ebenso viele wieder daraus entnommen.Thus, values are supplied to the shift register and the cycle length logic, by means of which a serial shift register with eight stages is practically formed, in which three "wait" states and five "off" states each with a duration of 100 ns are included. Accordingly, the output signals of the MUX include704which generate the clock signal which symbols from the clock synchronization FIFOs126takes, receive, five clock pulses per 100 ns period. Thus, five symbols are put into the clock synchronization FIFOs during each 100 ns period126entered and just as many removed from it.

    Dieses Beispiel ist in26Bsymbolisch dargestellt, während das in27gezeigte Ablaufdiagramm die Funktionsweise der Steuerlogik700veranschaulicht. Pro 100-ns-Periode geben fünf Taktimpulse (in27mit "EIN" bezeichnet) des Empf-Taktes Symbole in die Taktsynchronisierungs-FIFOs126ein. Während derselben 100-ns-Periode verschiebt das serielle Schieberegister702eine "01101011"-Sequenz zyklisch durch die von dem MUX704ausgewählte Stufe710, wodurch ein Lokales Tkt-Signal erzeugt wird, welches dieselbe Anzahl an aktiven Taktimpulsen aufweist wie das Empf-Tkt-Signal.This example is in26Brepresented symbolically while the in27Flowchart shown the operation of the control logic700illustrated. There are five clock pulses (in27labeled "ON") of the receive clock symbols in the clock synchronization FIFOs126on. During the same 100 ns period, the serial shift register shifts702a "01101011" sequence cyclically by that of the MUX704selected level710, whereby a local Tkt signal is generated which has the same number of active clock pulses as the receive Tkt signal.

    Für einschlägig gebildete Fachleute ist klar ersichtlich, dass die Anzahl der Stufen des Schieberegisters702entsprechend modifiziert werden kann, um die am häufigsten vorkommenden Taktgeschwindigkeitsunterschiede in Systemen wie dem hier veranschaulichten zu bewältigen. Vorzugsweise hat das Schieberegister702, wie erwähnt, 15 Stufen, wodurch es die Fähigkeit hat, einen relativ weiten Taktverhältnisbereich abzudecken. Wie nunmehr ersichtlich ist, kommt es bei dieser Technik der Konstantverhältnistaktgabe niemals zu einer Verschiebung um mehr als einen Takt. Weiterhin ist es eine bessere Implementation als zum Beispiel fünf Takte zu zählen und drei Takte innezuhalten, was zusätzlichen Speicherplatz (d. h. einen Zuwachs bei der Grösse des Synchronisierungs-FIFOs) beanspruchen würde und mehr Latenz verursachen würde.Those skilled in the art can clearly see that the number of levels of the shift register702can be modified accordingly to cope with the most common clock speed differences in systems such as that illustrated here. Preferably the shift register has702As mentioned, 15 levels, which gives it the ability to cover a relatively wide duty cycle range. As can now be seen, this constant ratio clocking technique never shifts by more than one clock. Furthermore, it is a better implementation than counting five clocks and pausing three clocks, for example, which would take up additional space (ie, increase the size of the synchronization FIFO) and cause more latency.

    Die hier in den26vorgestellte Konstantverhältnistaktschaltung wird dazu verwendet, um Datenelemente von einem Taktsystem mit einer bestimmten Frequenz in ein Taktsystem mit einer anderen, d. h. höheren Frequenz zu übertragen. Die Verwendung eines Taktsynchronisierungs-FIFOs ist hier erforderlich, um die Auswirkungen von Signalverzögerungen auszugleichen, die auftreten, während das System in synchronisiertem Duplexbetrieb läuft, damit Paare von identischen Befehls/Datensymbolen von zwei verschiedenen Quellen empfangen werden können. Für einschlägig gebildete Fachleute ist es jedoch klar ersichtlich, dass die hier offenbarte Konstantverhältnistaktschaltung zum Austausch von Daten zwischen zwei beliebigen, verschiedenen Taktsystemen verwendbar ist, solange zumindest zwei Register an der Stelle des Taktsynchronisierungs-FIFOs vorhanden sind. Für das Übertragen von Daten von einem höherfrequenten Taktsystem zu einem niedrigerfrequenten Taktsystem würde die Konstantverhältnistaktschaltung702verwendet, um Datenelemente zu der Eingangsstufe bzw. dem Register zu übertragen, welche(s) sich unter der Kontrolle des von der Konstantverhältnistaktschaltung702gebildeten Taktsignals befinden; das Taktsignal des niedrigerfrequenten Taktsystems würde dazu verwendet, um die Datenelemente zwischen den beiden (oder, wie hier, mehreren) empfangenden Registerstufen zu übertragen und um Datenelemente daraus zu entfernen. Umgekehrt würden Datenelemente, die von einem niedrigerfrequenten Taktsystem in eines mit höherer Frequenz übertragen werden, im wesentlichen wie hier gezeigt ansprechen.Those here in the26The constant ratio clock circuit presented is used to transfer data elements from a clock system with a specific frequency to a clock system with a different, ie higher frequency. The use of a clock synchronization FIFO is required here to compensate for the effects of signal delays that occur while the system is operating in synchronized duplex mode so that pairs of identical command / data symbols can be received from two different sources. However, it will be clearly apparent to those skilled in the art that the constant ratio clock circuit disclosed herein can be used to exchange data between any two different clock systems as long as there are at least two registers in place of the clock synchronization FIFO. The constant ratio clock circuit would be used to transfer data from a higher frequency clock system to a lower frequency clock system702used to transfer data elements to the input stage or register, which is under the control of the constant ratio clock circuit702formed clock signal are; the lower frequency clock system clock signal would be used to transfer the data elements between the two (or, as here, several) receiving register stages and to remove data elements therefrom. Conversely, data elements transmitted from a lower frequency clock system to one with a higher frequency would respond essentially as shown here.

    Dieses Konzept könnte überall dort eingesetzt werden, wo unterschiedliche Taktsignale zum Einsatz kommen. So sind zum Beispiel, wie in der Mikroprozessortechnik wohlbekannt, viele Mikroprozessoren so aufgebaut, dass sie "Warte"-Zustände einfügen, wenn ein Miroprozessor, welcher in Abhängigkeit von Taktsignalen einer bestimmten Frequenz betrieben wird, mit einem synchronen Gerät (z. B. einem Speicher oder einem externen Systembus) kommuniziert, das in Abhängigkeit von einem Taktsignal mit einer unterschiedlichen, üblicherweise niedrigeren Frequenz betrieben wird. Typischerweise ist es bei einer solchen Mikroprozessor/Geräte-Konfiguration erforderlich, dass das langsamere Taktsignal ein ganzes Vielfaches der Taktfrequenz des Mikroprozessors darstellt. Die Konstantverhältnistaktsteuerschaltung702könnte einen grossen Bereich möglicher Taktverhältnisse bereitstellen.This concept could be used wherever different clock signals are used. For example, as is well known in microprocessor technology, many microprocessors are designed to insert "wait" states when a microprocessor, which operates in response to clock signals of a particular frequency, with a synchronous device (e.g., a Memory or an external system bus) communicates, which is operated depending on a clock signal with a different, usually lower frequency. Typically, such a microprocessor / device configuration requires that the slower clock signal be an integral multiple of the microprocessor's clock frequency. The constant ratio clock control circuit702could provide a wide range of possible clock ratios.

    E/A-Paket-Schnittstelle:I / O packet interface:

    Ein jedes der Subprozessorsystemel0A,10B, etc. verfügt über einen gewissen Grad an Eingabe-Ausgabe-Fähigkeit, welche mit verschiedenen Peripherieeinheiten realisiert ist, obwohl es auch denkbar ist, dass die E/A-Einrichtungen anderer Unterverarbeitungssysteme verfügbar sind, so dass ein Unterverarbeitungssystem nicht unbedingt über lokale E/A-Einrichtungen verfügen muss. Wie dem auch sein, sofern lokale E/A-Einrichtungen vorhanden sind, erfolgt die Kommunikation der Peripheriegeräte und/oder des IP 18 über die E/A-Paket-Schnittstelle16.Each of the subprocessor systemsL0A.10B, etc. has a certain degree of input-output capability, which is realized with different peripheral units, although it is also conceivable that the I / O devices of other sub-processing systems are available, so that a sub-processing system does not necessarily have local I / O A facilities must have. However, if there are local I / O devices, the peripheral devices and / or the IP 18 communicate via the I / O packet interface16,

    Die E/A-Paket-Schnittstelle16wird betrieben, um die eingehenden Nachrichtenpakete, die sie von einem TNet-Link L empfängt, in eine mit dem angeschlossenen E/A-Gerät besser kompatible bzw. native Form zu übersetzen; andererseits übersetzt die E/A-Paket-Schnittstelle auch in die entgegengesetzte Richtung, wobei sie "native E/A-Daten" (NEA) von den angeschlossenen E/A-Geräten empfängt, Datenbytes in das weiter oben beschriebene '8B–9B'-Format (siehe weiter oben, Tabelle 1) codiert und die erforderlichen Pakete erstellt, um die Daten an den Bestimmungsort zu leiten. Darüber hinaus werden von den E/A-Geräten kommende Interrupts, welche in der für das betreffende E/A-Gerät üblichsten Form (z. B. über Signalleitung) ausgegeben werden, von der E/A-Paket-Schnittstelleneinheit16empfangen und dazu verwendet, um daraus ein Interrupt-Paket zu erstellen, das an die CPU12gesendet wird, wo es wie weiter oben beschrieben verarbeitet wird. Somit erfolgt die Durchführung von Leseund Schreiboperationen sowie die Ausgabe von Interrupts durch die an den NEA-Bus angeschlossenen Geräte routinemässig über Nachrichtenpakete, wobei Daten/Steuerinformationen in transparenter Weise durch die TNet-Links L und die Router14zu dem Speicher28einer CPU12befördert werden.The I / O packet interface16is operated to translate the incoming message packets that it receives from a TNet-Link L into a form that is more compatible or native with the connected I / O device; on the other hand, the I / O packet interface also translates in the opposite direction, receiving "native I / O data" (NEA) from the connected I / O devices, data bytes into the '8B-9B' described above Format (see Table 1 above) and creates the necessary packets to route the data to its destination. In addition, interrupts coming from the I / O devices, which are issued in the most common form for the relevant I / O device (e.g. via signal line), are generated by the I / O packet interface unit16received and used to create an interrupt packet that is sent to the CPU12is sent where it is processed as described above. Reading and writing operations and the issuing of interrupts by the devices connected to the NEA bus are thus routinely carried out via message packets, with data / control information being transmitted transparently by the TNet-Links L and the routers14to the store28a CPU12to get promoted.

    Schliesslich beinhaltet die E/A-Paket-Schnittstelle16– obwohl die E/A-Paket-Schnittstelle16als eines ihrer E/A-Geräte einen IP18angeschlossen haben kann – auch einen OLZP, welcher in vieler Hinsicht jenem (OLZP285) ähnelt, der in der SpSt26(17) und in dem Router14(OLZP285'19A) enthalten ist, um über den OLZP-Bus Konfigurationsinformationen zu empfangen.Finally, the I / O packet interface includes16- although the I / O packet interface16an IP as one of their I / O devices18may have connected - also an OLZP, which in many respects that (OLZP285) similar to that in the SpSt26(17) and in the router14(OLAP285 '19A) is included to receive configuration information via the OLZP bus.

    Online-Zugangspunkt:Online access point:

    Der IP18ist mit der Schnittstelleneinheit24, der Speichersteuerung (SpSt)26, den Routern14und den E/A-Paket-Schnittstellen verbunden, wobei die Schnittstellensignale der IEEE-Spezifikation1149.1(basierend auf IEEE1149.1-1990 vom 21. Mai 1990, SH13144, Institute of Electrical and Electronic Engineers, 345 East 47th Street, New York, NY 10017) entsprechen. Der OLZP259implementiert diese IEEE-Spezifikation und der Aufbau und die Funktionsweise des OLZP259sind im wesentlichen dieselben, ungeachtet dessen mit welchem Element (z. B. einem Router14, einer Schnittstelleneinheit24, usw.) er verwendet wird.28veranschaulicht in Diagrammform den allgemeinen Aufbau des OLZP259, der eine Schnittstelle gemäss der IEEE-Spezifikation 1149.1 realisiert. Vorzugsweise ist der OLZP auf jedem IC-Chip vorhanden, der zur Realisierung gewisser hier besprochener Elemente verwendet wird. So ist zum Beispiel jede Schnittstelleneinheit24, jede Speichersteuerung26und jeder Router14mit einer anwendungsspezifischen integrierten Schaltung (ASIC) ausgestattet, die auch einen OLZP beinhaltet, der es dem IP 18 erlaubt, auf die Schaltungsanordnung der ASIC zuzugreifen. So beschreibt etwa die in28gezeigte Beschreibung des OLZP259den OLZP in Verbindung mit der Schnittstelleneinheit24, der SpSt26und dem Router14des Systems.The IP18is with the interface unit24, the memory controller (SpSt)26, the routers14and the I / O packet interfaces, the interface signals of the IEEE specification1149.1(babased on IEEE1149.1-1990 of May 21, 1990, SH13144, Institute of Electrical and Electronic Engineers, 345 East 47th Street, New York, NY 10017). The OLZP259implements this IEEE specification and the structure and functioning of the OLZP259are essentially the same regardless of which element (e.g., a router14, an interface unit24, etc.) it is used.28ver illustrates the general structure of the OLZP in diagram form259that implements an interface according to IEEE specification 1149.1. The OLZP is preferably present on every IC chip that is used to implement certain elements discussed here. For example, every interface unit is24, every memory controller26and every router14equipped with an application-specific integrated circuit (ASIC), which also includes an OLZP, which allows the IP 18 to access the circuitry of the ASIC. For example, the in28shown description of the OLZP259the OLZP in connection with the interface unit24, the SpSt26and the router14of the system.

    Wie in28gezeigt, umfasst der serielle Bus19Avier 1-Bit-Signalleitungen: eine Prüftakt-Signalleitung (P_TKT-Leitung), die ein periodisches Taktsignal an den OLAP295überträgt; eine Prüfbefehls-Signalleitung (P_BEF-Leitung), um ein Zweizustands-Befehlssignal zu übertragen; eine Testdaten_Ein-Signalleitung (TDE-Leitung), auf welcher Daten zu dem OLZP übertragen werden; und eine Testdaten_Aus-Signalleitung (TDA-Leitung), auf welcher von dem OLZP abgehende Daten übertragen werden. Diese Signale entsprechend den Anforderungen der Spezifikation IEEE1149.1. Der OLZP259beinhaltet eine 4-Bit-Ablaufsteuereinheit, welche die Funktion des OLZP in Bezug auf die an den P_TKT- und P_BEF-Leitungen des seriellen Busses19Aempfangenen Takt- und Befehlssignale steuert. Daten (und/oder Befehle), welche von dem OLZP259empfangen werden, werden in einem 16-Bit-Befehlsregister (BR), dem Speicher802und/oder einem 32-Bit-Datenregister (DR)104gespeichert; es können von beiden Registern, dem BR und dem DR Daten übermittelt werden, mit der einen Ausnahme, dass nur das DR804mit Daten von der zugeordneten Logik (z. B. einem Router14) geladen werden kann.As in28shown includes the serial bus19Afour 1-bit signal lines: a test clock signal line (P_TKT line) that sends a periodic clock signal to the OLAP295transfers; a test command signal line (P_BEF line) to transmit a two-state command signal; a Testdaten_Ein signal line (TDE line) on which data is transmitted to the OLZP; and a Testdaten_Ous signal line (TDA line) on which data coming from the OLZP are transmitted. These signals meet the requirements of the IEEE specification1149.1, The OLZP259contains a 4-bit sequence control unit, which functions the OLZP in relation to the on the P_TKT and P_BEF lines of the serial bus19Acontrols received clock and command signals. Data (and / or commands) issued by the OLZP259are received in a 16-bit instruction register (BR), the memory802and / or a 32-bit data register (DR)104saved; data can be transmitted from both registers, the BR and the DR, with the one exception that only the DR804with data from the assigned logic (e.g. a router14) can be loaded.

    Dem OLZP259zugeordnet, aber nicht Teil davon, ist ein Konfigurationsregister806in Form einer Registerdatei, welche bis zu 64 32-Bit-Register enthält, auf die sowohl von dem IP18(über den OLZP258) als auch von den Logikschaltungen aus, denen der OLZP259zugeordnet ist, zugegriffen werden kann. Zum Beispiel bilden bestimmte der Register des Konfigurationsregisters806die Steuer- und Zustandslogik509(19A) eines Routers14. Das Konfigurationsregister806wird von dem DR804an einen (32-Bit-)Speicherort (d. h. an eine ausgewählte der 64 verfügbaren 32-Bit-Adressen) geschrieben, die von 10-Bit- Befehlen vorgegeben sind, welche zuvor ihrerseits von dem BR802bereitgestellt wurden. Die Befehle zum Laden des Konfigurationsregisters806beinhalten einen 4-Bit-Abschnitt, welcher von der Befehlsdecodierlogik810decodiert wird, und die sich daraus ergebenden, decodierten Daten werden an einen Befehlsgenerator812angelegt, der eine Lese- oder eine Schreiboperation identifiziert. Der Gegenstand der Operation, d. h. das eine der 64 Register, das das zu lesende bzw. zu beschreibende Konfigurationsregister806bildet, wird durch eine 6-Bit-Adresse identifiziert, die von der Adressendecodierlogik814decodiert wird. Der Befehlsgenerator812empfängt auch den Zustand der Ablaufsteuereinheit800. So wird in Abhängigkeit zu dem von der Ablaufsteuereinheit800jeweils eingenommenen, besonderen Zustand und zusammen mit dem von der Befehlsdecodierlogik810kommenden, decodierten Befehl von der Befehlsgeneratorlogik812ein Schreib- oder Lesebefehl generiert, um das Konfigurationsregister806dazu zu veranlassen, an dem einen der 64 Register, das durch die 6-Bit-Adresse des (von der Adressdecodierlogik814decodierten) Befehls bezeichnet wird, eine Lese- oder Schreiboperation vorzunehmen.The OLZP259assigned, but not part of it, is a configuration register806in the form of a register file, which contains up to 64 32-bit registers, on which both the IP18(via the OLZP258) as well as from the logic circuits to which the OLZP259assigned, can be accessed. For example, certain of the registers form the configuration register806the control and status logic509(19A) of a router14, The configuration register806is from the DR804written to a (32-bit) memory location (ie to a selected one of the 64 available 32-bit addresses), which are predetermined by 10-bit instructions, which in turn were previously issued by the BR802were provided. The commands to load the configuration register806include a 4-bit section which is from the instruction decode logic810is decoded, and the resulting decoded data is sent to an instruction generator812created that identifies a read or a write operation. The object of the operation, ie the one of the 64 registers, the configuration register to be read or written to806is identified by a 6-bit address used by the address decoding logic814is decoded. The command generator812also receives the state of the sequencer800, So depending on that of the sequence control unit800each assumed special state and together with that of the command decoding logic810incoming decoded instruction from the instruction generator logic812a write or read command is generated to the configuration register806to cause one of the 64 registers, which is defined by the 6-bit address of the (from the address decoding logic814decoded) command is called to perform a read or write operation.

    Die von dem IP 18 (1A) gelieferten Daten werden durch den Multiplexer816in das DR804geschrieben. Die den OLZP259verwendende Logik kann das DR804von zwei getrennten Quellen aus beschreiben, wobei an diesen Quellen 32-Bit-Register bereitgestellt werden, die von dem IP18wahlweise mit dem DR804gekoppelt und unter Verwendung von bereits zuvor in das BR802geschriebenen Befehlsinformationen in dieses geschrieben werden, und zwar unter Zuhilfenahme der Ablaufsteuereinheit800durch Signalübertragung über die P_TKT- und P_BEF-Signalleitungen des seriellen Busses19A. Der Zugriff auf das 32-Bit-DR804erfolgt durch schrittweises Positionieren der Ablaufsteuereinheit800durch die in der Spezifikation1149.1als "CAPTURE-DR," "SHIFT-DR," und "UPDATE-DR" beschriebenen Zustände unter Verwendung eines geeigneten Befehls aus 1149.1. In dem Befehl enthaltene, zusätzliche Bits ermöglichen es dem DR804, anhand des CAPTURE-DR-Zustands ausgewählte Werte chip-interne Werte, welche die Chip-Statusinformation enthalten, zu lesen. Andere Befehle aus 1149.1 erlauben es dem UPDATE-DR-Zustand, den Registerinhalt zu Konfigurations- und Initialisierungszwecken an ausgewählte Register zu kopieren. Die Inhalte des DR804werden unter Verwendung des SHIFT-DR-Zustands aus 1149.1 (über den seriellen Bus19A) mit dem IP 18 ausgetauscht. Weitere Informationen über Aufbau und Funktion des OLZP können in der Spezifikation IEEE 1149.1 (IEEE 1149.1-1990 vom 21. Mai 1990, SH13144) nachgelesen werden.The IP 18 (1A) Data supplied are through the multiplexer816into the DR804written. The OLZP259the DR804from two separate sources, which sources provide 32-bit registers provided by the IP18optionally with the DR804coupled and using previously in the BR802written command information are written into this, with the aid of the sequence control unit800by signal transmission via the P_TKT and P_BEF signal lines of the serial bus19A, Access to the 32-bit DR804is done by gradually positioning the sequence control unit800through the in the specification1149.1States described as "CAPTURE-DR,""SHIFT-DR," and "UPDATE-DR" using a suitable command from 1149.1. Additional bits included in the command enable the DR804to read values selected on the basis of the CAPTURE-DR state of chip-internal values which contain the chip status information. Other commands from 1149.1 allow the UPDATE-DR state to copy the register contents to selected registers for configuration and initialization purposes. The contents of the DR804are generated using the SHIFT-DR state from 1149.1 (via the serial bus19A) exchanged with the IP 18. Further information on the structure and function of the OLZP can be found in the specification IEEE 1149.1 (IEEE 1149.1-1990 of May 21, 1990, SH13144).

    Asymmetrische Variablen:Asymmetric variables:

    Unter "asymmetrischen Variablen" sind Werte zu verstehen, welche sich in einer CPU eines Paars von CPUs12von jenen der anderen CPU unterscheiden bzw. unterscheiden können. Beispiele für asymmetrische Variablen sind unter anderem eine Seriennummer, die zugewiesen wurde und an einem von der CPU lesbaren Speicherort, zum Beispiel einem Register ausserhalb des Speichers28, aufbewahrt wird und die sich von jener der anderen CPU unterscheidet, oder ein Inhalt eines Registers, der verwendet wird, um das Vorkommen von korrigierbaren Speicher- oder Cachespeicherfehlern zu verfolgen (unter der Voraussetzung, dass das Erkennen, das Korrigieren und das Melden des Fehlers nicht dazu führt, dass die duplexbetriebenen CPUs von ihrem synchron im Gleichschritt laufenden Betrieb abgebracht werden)."Asymmetric variables" are to be understood as values which are in a CPU of a pair of CPUs12distinguish or can distinguish from those of the other CPU. Examples of asymmetrical variables include a serial number that has been assigned and in a location that can be read by the CPU, for example a register outside the memory28, which is different from that of the other CPU, or a content of a register which is used to detect the occurrence of Track correctable memory or cache errors (provided that detecting, correcting, and reporting the error does not result in duplex-powered CPUs being detached from their synchronous, synchronous operation).

    Im Duplex-Betriebsmodus ist die sorgfältige Behandlung von asymmetrischen Variablen von grosser Bedeutung, um zu gewährleisten, dass (in dem Speicher28einer jeden CPU12) mehrfach vorhandene Kopien des Systemspeichers, welche logisch äquivalent sein sollen, zu jeder Zeit identische Daten enthalten. Würde eine asymmetrische Variable einfach von jeder der beiden duplexbetriebenen CPUs gelesen und anschliessend in den Speicher geschrieben, so würden sich die Inhalte des Speichers28einer jeden CPU dadurch um mindestens diesen von jeder CPU gelesenen Wert unterscheiden.In duplex mode of operation, careful handling of asymmetric variables is of great importance to ensure that (in the memory28of every CPU12) duplicate copies of the system memory, which should be logically equivalent, contain identical data at all times. If an asymmetrical variable were simply read by each of the two duplex-operated CPUs and then written to the memory, the contents of the memory would be different28distinguish each CPU by at least this value read by each CPU.

    Um einem Paar von CPUs12, welche im Duplexmodus betrieben werden, die Verarbeitung asymmetrischer Variablen zu ermöglichen, wird einer jeden Schnittstelleneinheit24einer jeden CPU12ein "Soft-Vote"-Logikelement 900 (SV-Logikelement) zur Seite gestellt. Wie in30veranschaulicht, sind die SV-Logikelemente900einer jeden Schnittstelleneinheit24untereinander über einen 2-Bit-SV-Bus902verbunden, welcher die Busleitungen902aund902bumfasst. Die Busleitungen902aübertragen Ein-Bit-Werte von den Schnittstelleneinheiten24der CPU12Azu jenen der CPU12B. Umgekehrt überträgt die Busleitung902bEin-Bit-Werte von den SV-Logikelementen900der CPU12Bzu jenen der CPU12A.To a pair of CPUs12of each interface unit, which are operated in duplex mode to enable the processing of asymmetrical variables24of every CPU12a "soft vote" logic element 900 (SV logic element) is provided. As in30are the SV logic elements900of each interface unit24with each other via a 2-bit SV bus902connected which the bus lines902aand902bincludes. The bus lines902atransmit one-bit values from the interface units24the CPU12Ato those of the CPU12B, Conversely, the bus line transmits902bOne bit values from the SV logic elements900the CPU12Bto those of the CPU12A,

    In30Bwird das SV-Logikelement900ader Schnittstelleneinheit24ader CPU12Averanschaulicht. Jedes SV-Logikelement900ist was Aufbau und Funktionsweise betrifft im wesentlichen identisch mit jedem anderen SV-Logikelement900, so dass die Beschreibung des Logikelements900aauch auf die anderen Logikelemente900a(der Schnittstelleneinheit24b, CPU12A) und900b(der Schnittstelleneinheiten24a,24bder CPU12B) anwendbar zu verstehen ist, sofern keine anderslautenden Angaben gemacht werden. Wie in30Bveranschaulicht, beinhaltet das SV-Logikelement900avier Ein-Bit-Register: ein Ausgaberegister904, ein Lokaleingaberegister906, ein Ferneingaberegister907und ein Ausgabedatenfreigaberegister912. Das Ausgaberegister904ist über einen Multiplexer (MUX)914und einen Treiber916mit Dreizustandsverhalten an die gemeinsam genutzte Busleitung902agekoppelt. Nur die Logikelemente900ader CPU12Asteuern die Busleitung902a, und immer nur eines der beiden Logikelemente übernimmt die Steuerung. Welches das ist, hängt von dem Inhalt des Freigaberegisters912ab. Die Logikelemente900bder CPU12Bkönnen auf der Busleitung902anur empfangen. Die Busleitung902aübermittelt daher die Ausgaberegister904der Logikelemente900aan die Ferneingaberegister907eines jeden der Logikelemente900bder CPU12B. Die Busleitung902aübermittelt ausserdem die Ausgaberegister904(über den Multiplexer914und den Treiber916) eines der Logikelemente900aan die Lokaleingaberegister des anderen der Logikelemente900a(sowie auch an ihr eigenes). Auf diese Weise sind die beiden Schnittstelleneinheiten24a,24bder CPU12Ain der Lage, asymmetrische Variablen untereinander auszutauschen.In30Bbecomes the SV logic element900athe interface unit24athe CPU12Aillustrated. Any SV logic element900is essentially identical to any other SV logic element in terms of structure and mode of operation900, so the description of the logic element900aalso on the other logic elements900a(the interface unit24b, CPU12A) and900b(the interface units24a.24bthe CPU12B) is to be understood as applicable, unless otherwise stated. As in30Billustrated includes the SV logic element900afour one-bit registers: one output register904, a local input register906, a remote entry register907and an output data enable register912, The output register904is via a multiplexer (MUX)914and a driver916with tri-state behavior on the shared bus line902acoupled. Only the logic elements900athe CPU12Acontrol the bus line902a, and only one of the two logic elements takes over control. Which one that depends on the content of the release register912from. The logic elements900bthe CPU12Bcan on the bus line902ajust received. The bus line902atherefore transmits the output registers904of the logic elements900ato the remote input registers907of each of the logic elements900bthe CPU12B, The bus line902aalso transmits the output register904(via the multiplexer914and the driver916) one of the logic elements900ato the local input registers of the other of the logic elements900a(as well as their own). In this way, the two interface units24a.24bthe CPU12Aable to exchange asymmetrical variables with each other.

    Auf ähnliche Weise werden die Ausgaberegister904der Logikelemente900vder CPU12Büber die Busleitung902ban das entfernte Register907des Logikelements902a(und an jenes der anderen Schnittstelleneinheit24b) übermittelt.Similarly, the output registers904of the logic elements900bthe CPU12Bover the bus line902bto the remote register907of the logic element902a(and to that of the other interface unit24b) transmitted.

    Die Logikeinheiten902bilden einen Teil der Konfigurationsregister74(5). Somit können sie von der (den) Prozessoreinheit(en)20beschrieben werden, indem diese die nötigen Daten-/Adressinformationen über zumindest einen Teil des Adress-/Datenbusses74(in30Bals Bus74'dargestellt) übermitteln, um das Ausgaberegister904und/oder das Freigaberegister912auszuwählen und zu beschreiben, oder um das lokale und das entfernte Register906und907zu lesen.The logic units902form part of the configuration register74(5). Thus, you can from the processor unit (s)20be described by this the necessary data / address information on at least part of the address / data bus74(in30Bas a bus74 'shown) transmit to the output register904and / or the release register912to select and describe, or to use the local and remote registers906and907to read.

    Der MUX914wird betrieben, um jeder Schnittstelleneinheit24der CPU12Adie selektive Benutzung der Busleitung902afür die SV-Logikelemente900azu ermöglichen, oder um ein BUSFEHLER-Signal zu übermitteln, falls während des (weiter unten beschriebenen) Reintegrationsprozesses, mithilfe dessen ein Paar von CPUs12in im Gleichschritt laufenden Duplexbetrieb gebracht wird, ein Busfehler auftritt. Das Ausgabedatenfreigaberegister wird mit einem Bit beschrieben, welches den Treiber mit Dreizustandsverhalten aktiviert (bzw. deaktiviert), so dass dieser die Busleitung902agemäss dem Inhalt des SV-Ausgaberegisters904steuert.The MUX914is operated to each interface unit24the CPU12Athe selective use of the bus line902afor the SV logic elements900ato enable, or to transmit a BUS ERROR signal, if a pair of CPUs if used during the reintegration process (described below)12is brought into duplex operation in step, a bus error occurs. The output data release register is written with a bit that activates (or deactivates) the driver with tri-state behavior, so that it triggers the bus line902aaccording to the content of the SV output register904controls.

    Wie weiter oben erwähnt, erlauben es die SV-Logikelemente900den CPUs12a,12B, im Duplexbetrieb einen bitweisen Austausch von asymmetrischen Variablen durchzuführen. Es sei hier nochmals daran erinnert, dass beim Duplexbetrieb der CPUs12A,12Bbeide CPUs dieselben Befehle identischer Befehlsströme im wesentlichen zum selben virtuellen Zeitpunkt, wenn nicht zum selben Zeitpunkt ausführen. Der Austausch asymmetrischer Variablen zwischen ihnen erfolgt in der nachfolgend beschriebenen Weise. Beide CPUs beschreiben in Reaktion auf den Befehlsstrom und im wesentlichen zur selben Zeit die Freigaberegister912des Logikelements900beider Schnittstelleneinheiten24einer jeden CPU. Eines der beiden Logikelemente900einer jeden CPU wird mit einer Zustandsinformation beschrieben, durch welche der zugeordnete Treiber916freigegeben wird; das andere wird mit einem Zustand beschrieben, der den Ausgang des Treibers in einen hochohmigen Zustand versetzt.As mentioned above, the SV logic elements allow it900the CPUs12a.12Bto perform a bit-wise exchange of asymmetrical variables in duplex mode. It should be remembered here that when duplexing the CPUs12A.12Bboth CPUs execute the same instructions from identical instruction streams at substantially the same virtual time, if not at the same time. Asymmetric variables are exchanged between them in the manner described below. Both CPUs write to the enable registers in response to the instruction stream and at substantially the same time912of the logic element900both interface units24any CPU. One of the two logic elements900Each CPU is described with status information by which the assigned driver916is released; the other is described with a state that puts the output of the driver in a high-resistance state.

    Beschrieben werden annahmegemäss jene Ausgabedatenfreigaberegister912, welche den Logikelementen900der Schnittstelleneinheiten24abeider CPUs12A,12Bzugeordnet sind, um die zugeordneten Treiber freizugeben. Somit werden die Ausgaberegister904der Schnittstelleneinheiten24aeiner jeden CPU an die Busleitungen902übermittelt; das heisst das dem Logikelement900ader Schnittstelleneinheit24a(CPU12A) zugeordnete Ausgaberegister904wird an die Busleitung902aübermittelt, während das dem Logikelement900bder Schnittstelleneinheit24ader CPU12Bzugeordnete Ausgaberegister an die Busleitung902bübermittelt wird. Die CPUs12schreiben beide ein Bit der asymmetrischen Variable in ihre jeweiligen Ausgaberegister904, gefolgt von einer Leseoperation der einem jeden von diesen zugeordneten Ferneingaberegister907, und zwar unter Einberechnung eines grösstmöglichen Taktimpulsabstandes. Die Ausgaberegister904werden hierauf erneut von jeder CPU beschrieben, worauf eine neuerliche Leseoperation der Ferneingaberegister907erfolgt. Dieser Prozess wird Bit für Bit fortgesetzt bis die Variable in ihrer Gesamtheit von dem Ausgaberegister904einer jeden CPU12zudem Ferneingaberegister der jeweils anderen übertragen worden ist. Es gilt zu beachten, dass beide Schnittstelleneinheiten24der CPU12Bdas asymmetrische Informationsbit empfangen.According to the assumption, those output data release registers are described912which are the logic elements900of the interface units24aof both CPUs12A.12Bare assigned to release the assigned drivers. Thus the output registers904of the interface units24aof every CPU to the bus lines902transmitted; that means the logic element900athe interface unit24a(CPU12A) assigned output register904is sent to the bus line902atransmitted while that to the logic element900bthe interface unit24athe CPU12Bassigned output register to the bus line902bis transmitted. The CPUs12both write a bit of the asymmetric variable in their respective output registers904, followed by a read operation of the remote input register associated with each of them907, taking into account the largest possible clock pulse spacing. The output register904are then rewritten by each CPU, followed by a new read of the remote input registers907he follows. This process continues bit by bit until the variable in its entirety from the output register904of every CPU12remote entry register of each other has also been transmitted. It should be noted that both interface units24the CPU12Breceive the asymmetric information bit.

    Ein Anwendungsbeispiel des Soft-Vote-Mechanismus ist der Austausch von Seriennummern. Eines der Konfigurationsregister74ist ein Ein-Bit-Register (nicht dargestellt), welches bei Inbetriebnahme gesetzt wird, um eine jede der beiden CPUs, die miteinander in Duplexbetrieb gebracht werden können, zu identifizieren und um sie voneinander zu unterscheiden. Daher wird das Ein-Bit-Register der einen CPU in einen Zustand gesetzt, der sich von jenem der anderen CPU unterscheidet. Dasselbe geschieht, nach wie vor während der Inbetriebnahme, mit anderen Konfigurationsregistern, in welche die Seriennummer der betreffenden CPU zu laden ist. Welches der Konfigurationsregister für Seriennummern geladen wird, hängt vom Zustand des Ein-Bit-Identitätsregisters ab. Somit haben die beiden CPUs jeweils zwei identische Register, die Ihre Seriennummern enthalten, mit der einen Ausnahme, dass ein Register, nachfolgend "R1" genannt, (nicht dargestellt) in der einen CPU die eigene Seriennummer enthält, während die andere CPU ihre Seriennummer in einem Konfigurationsregister "R2" (nicht dargestellt) enthält. Bevor diese Werte von den duplexbetriebenen CPUs in den Speicher geschrieben werden können, müssen die Konfigurationsregister R1 unter Verwendung des Soft-Vote-Mechanismus miteinander "harmonisiert" werden.An application example of the soft vote mechanism is the exchange of serial numbers. One of the configuration registers74is a one-bit register (not shown) which is set during commissioning in order to identify each of the two CPUs that can be put into duplex mode with one another and to distinguish them from one another. Therefore, the one-bit register of one CPU is set to a state different from that of the other CPU. The same happens, as before, during commissioning with other configuration registers, into which the serial number of the CPU concerned is to be loaded. Which of the serial number configuration registers is loaded depends on the state of the one-bit identity register. Thus, the two CPUs each have two identical registers that contain their serial numbers, with the one exception that one register, hereinafter referred to as "R1" (not shown) in one CPU contains its own serial number, while the other CPU contains its serial number in contains a configuration register "R2" (not shown). Before these values can be written into the memory by the duplex-operated CPUs, the configuration registers R1 must be "harmonized" with one another using the soft-vote mechanism.

    Die SV-Logikelemente900werden auch dazu verwendet, um Busfehler zu übermitteln, zu denen es während des noch zu beschreibenden Reintegrationsprozesses kommen kann. Während der Durchführung der Reintegration wird ein REINT-Signal ausgegeben. Wie in30Bgezeigt, wird das REINT-Signal an den Steuereingang (St) des MUX914angelegt. Wenn daher REINT ausgegeben wird, wird von dem MUX914ein BUSFEHLER-Signal ausgewählt und an die Busleitung902aübermittelt.The SV logic elements900are also used to transmit bus errors that can occur during the reintegration process to be described. A REINT signal is output during the reintegration. As in30Bshown, the REINT signal to the control input (St) of the MUX914created. Therefore, when REINT is issued, the MUX914a BUS ERROR signal is selected and sent to the bus line902atransmitted.

    Synchronisierung:synchronization:

    Um einen ordnungsgemässen Betrieb des Unterverarbeitungssystems10A,10B(1A,2), sei es unabhängig voneinander (Simplexbetrieb) oder gepaart und synchron im Gleichschritt miteinander laufend (Duplexbetrieb) zu gewährleisten, ist es erforderlich sicherzustellen, dass zwischen den CPUs12A,12Bund den Routern14A,14Bausgetauschte Daten ordnungsgemäss empfangen werden und dass ein ursprünglicher Inhalt der Taktsynchronisierungs-FIFOs102(der CPUs12A,12B;5) und519(der Router14A,14B;20A) nicht fälschlicherweise als Daten bzw. als Befehle interpretiert wird. Die Eingabe- und Entnahmezeiger der verschiedenen Taktsynchronisierungs-FIFOs102(in den CPUs12) und518(in den Routern14) müssen initialisiert werden, um zumindest einen frequenznahen Betrieb zu gewährleisten. Normalerweise erfolgt dies in der herkömmlichen Art durch ein Einschaltsignal (nicht dargestellt) wenn zu Beginn der Strom zugeschaltet wird, wodurch der Eingabe- und der Entnahme-Zeigerzähler um eine bestimmte Solldistanz voneinander beabstandet werden und die zugeordneten FIFO-Warteschlangen in einen bekannten Zustand voreingestellt werden. Nachdem dies erfolgt ist, sind alle Taktsynchronisierungs-FIFOs für einen frequenznahen Betrieb initialisiert. Wenn somit das System10zu Beginn in Online-Betrieb gesetzt (d. h. eingeschaltet) wird, befinden sich die Kommunikationsverbindungen zwischen den CPUs12A,12Bund den Routern14A,14Bin frequenznahem Betriebsmodus.To ensure proper operation of the sub-processing system10A.10B(1A.2), be it independent of each other (simplex operation) or paired and synchronous in sync with each other (duplex operation), it is necessary to ensure that between the CPUs12A.12Band the routers14A.14Bexchanged data is properly received and that an original content of the clock synchronization FIFOs102(the CPUs12A.12B;5) and519(the router14A.14B;20A) is not incorrectly interpreted as data or as commands. The input and extraction pointers of the various clock synchronization FIFOs102(in the CPUs12) and518(in the routers14) must be initialized to ensure at least close-to-frequency operation. Typically, this is done in the conventional manner by a turn-on signal (not shown) when the power is initially turned on, thereby spacing the input and removal pointer counters by a specified distance and setting the associated FIFO queues to a known state , After this has been done, all clock synchronization FIFOs are initialized for near-frequency operation. So if the system10at the beginning in online mode (ie switched on), there are communication links between the CPUs12A.12Band the routers14A.14Bin near-frequency operating mode.

    Die Anforderungen sind jedoch höher, wenn die CPUs12A,12Bin den Duplex-Betriebsmodus umgeschaltet werden. Als erstes muss die zur Datenübermittlung zwischen den CPUs12A,128und den Routern14A,14Bverwendete Taktgabe auf jedem TNet-Link auf frequenzsynchronisierten Betrieb umgeschaltet werden. Danach müssen im Hinblick auf eine ordnungsgemässe Implementierung des für den Duplex-Betriebsmodus erforderlichen Gleichschrittbetriebs die Taktsynchronisierungs-FIFOs entsprechend synchronisiert und auf das jeweilige Ursprungselement abgestimmt werden, von welchem sie Daten empfangen, um etwa eine Verzögerung berücksichtigen zu können, die in einem Pfad, nicht jedoch in einem anderen Pfad auftritt. Es sei zum Beispiel daran erinnert, dass es der Betrieb im Duplexmodus erfordert, dass gepaarte CPUs12jeden Befehl eines identischen Befehlsstroms zur selben virtuellen Zeit ausführen. (Mit "virtueller" Zeit ist gemeint, dass obwohl die tatsächliche Echtzeitausführung eines identischen Befehls durch gepaarte CPUs12um einen geringfügigen Betrag abweichen kann, deren Aktionen von aussen betrachtet exakt dieselben sind.) Eingehende, von den Routern14A,14Bkommende Daten müssen in einer frequenzsynchronisierten Betriebsumgebung von den beiden CPUs nahezu gleichzeitig empfangen werden. Jede Verzögerung, zu der es in dem Kommunikationspfad zwischen dem einen oder anderen der Router14A,14Bund den CPUs12A,12Bkommen kann, muss berücksichtigt werden. Die Taktsynchronisierungs-FIFOs102der gepaarten CPUs12sind dafür zuständig, die Nachrichtenpaketsymbole zu empfangen, allfällige im Kommunikationspfad auftretende Verzögerungen auszugleichen und den beiden CPUs die Symbole unter Wahrung der Gleichzeitigkeit vorzulegen, um so den synchronisierten Gleichlauf aufrechtzuerhalten, welcher für den Duplex-Betriebsmodus erforderlich ist.However, the requirements are higher when the CPUs12A.12Bcan be switched to duplex mode. First, the data transfer between the CPUs12A.128and the routers14A.14Bclocking used on each TNet link can be switched to frequency-synchronized operation. Thereafter, in order to properly implement the step-by-step operation required for the duplex mode of operation, the clock synchronization FIFOs must be synchronized accordingly and matched to the respective original element from which they receive data, in order, for example, to be able to take into account a delay which is not in a path however occurs in a different path. For example, it should be remembered that operating in duplex mode requires paired CPUs12execute each command of an identical command stream at the same virtual time. (By "virtual" time it is meant that although the actual real time execution of an identical instruction by paired CPUs12may differ by a small amount, the actions of which are exactly the same from the outside.) Incoming from the routers14A.14BIn a frequency-synchronized operating environment, incoming data must be received by the two CPUs almost simultaneously. Any delay in the commu Path of communication between one or the other of the routers14A.14Band the CPUs12A.12Bmust come into account. The clock synchronization FIFOs102the paired CPUs12are responsible for receiving the message packet symbols, compensating for any delays in the communication path and presenting the symbols to the two CPUs while maintaining simultaneity, in order to maintain the synchronized synchronism that is required for the duplex operating mode.

    In ähnlicher Weise muss jedes Symbol, das von einer der CPUs12kommend von den Routern14A,14Bempfangen wird, mit dem von der jeweils anderen CPU kommenden Symbol verglichen werden und (wie weiter unten im genauer abgehandelt) auf mögliche Abweichungen zwischen den CPUs hin geprüft werden. Auch hier sind es wieder die Taktsynchronisierungs-FIFOs518der Router14A,14B, welche Nachrichtenpakete von den CPUs12empfangen und in den Kommunikationspfaden auftretende Verzögerungen ausgleichen, so dass die von den beiden CPUs12kommend empfangenen Symbole gleichzeitig aus den Taktsynchronisierungs-FIFOs abgerufen werdenSimilarly, every symbol created by one of the CPUs12coming from the routers14A.14Bis received, compared with the symbol coming from the respective other CPU and (as discussed in more detail below) checked for possible deviations between the CPUs. Again, it is the clock synchronization FIFOs518the router14A.14Bwhat message packets from the CPUs12received and compensate for delays occurring in the communication paths, so that those of the two CPUs12incoming symbols can be retrieved simultaneously from the clock synchronization FIFOs

    Bevor nun besprochen wird, wie die Taktsynchronisierungs-FIFOs der CPUs und der Router rückgesetzt, initialisiert und synchronisiert werden, wird es als hilfreich erachtet, sich ein besseres Verständnis davon zu verschaffen, wie sie betrieben werden, um den synchronisierten Gleichlauf beim Duplexbetrieb aufrechtzuerhalten. Im folgenden wird daher vorübergehend au23Bezug genommen, in welcher die Taktsynchronisierungs-FIFOs102der CPUs12A,12Bgezeigt werden, welche Daten empfangen, die zum Beispiel von dem Router14Akommen können.23veranschaulicht die Portausgänge5044und5045des Routers14A, die an die 10-Bit-Busse32xund32yangeschlossen sind, welche ihrerseits jeweils Daten-/Befehlssymbole und Takt von dem Router14Aan die beiden duplexbetriebenen CPUs12A,12Bkoppeln. Zur Erinnerung sei hier nochmals darauf hingewiesen, dass ein Nachrichtenpaket zwar eine einzige Bestimmungsadresse haben kann, welche eine CPU12bezeichnet, dass dieses Paket im Duplexbetrieb jedoch von dem Router14Asymbolweise dupliziert und im wesentlichen zeitgleich an beide CPUs12Aund12Bübertragen wird.Before discussing how to reset, initialize, and synchronize the clock synchronization FIFOs of the CPUs and routers, it is considered helpful to get a better understanding of how they operate to maintain synchronized synchronism in duplex mode. In the following, therefore, will be temporarily23Reference in which the clock synchronization FIFOs102of CPUs12A.12Bare shown what data is received, for example, by the router14Acan come.23illustrates the port exits504 4and504 5of the router14Athat are connected to the 10-bit buses32 xand32 yare connected, which in turn each data / command symbols and clock from the router14Ato the two duplex-operated CPUs12A.12Bcouple. As a reminder, it should be pointed out once again that a message packet can have a single destination address, which is a CPU12indicates that this packet is duplexed by the router14Aduplicated symbol by symbol and essentially at the same time on both CPUs12Aand12Bis transmitted.

    Unter Umständen können die beiden CPUs12A,12Bso angeordnet sein, dass ein Symbol, das vom Router14Akommend von einer der beiden CPUs (z. B. der CPU12B) empfangen wird, eine Verzögerung von unbekanntem (jedoch maximalbegrenztem) Ausmass in Bezug auf den Empfang des identischen (von dem Router duplizierten) Symbols durch die andere CPU (CPU12A) erfährt. Diese Verzögerung ist in dem Bus32, der das Symbol und den dazugehörigen Sendetakt, S_Tkt, von dem Router14Azu der CPU12Büberträgt, mit der Bezugszahl640gekennzeichnet.Under certain circumstances, the two CPUs12A.12Bbe arranged so that an icon issued by the router14Acoming from one of the two CPUs (e.g. the CPU12B) is received, a delay of unknown (but maximum limited) extent with respect to the receipt of the identical symbol (duplicated by the router) by the other CPU (CPU12A) experiences. This delay is on the bus32, the symbol and the associated send clock, S_Tkt, from the router14Ato the CPU12Btransfers, with the reference number640characterized.

    Nachfolgend sei der Betrieb der Taktsynchronisierungs-FIFOs102x,102yim Zusammenhang mit dem Empfang identischer Daten im Zuge des Duplexbetriebs betrachtet. Die nachfolgende Tabelle 6 veranschaulicht diesen Betrieb. Der Einfachheit halber wird in Tabelle 6 davon ausgegangen, dass die Verzögerung640nicht mehr als ein Taktintervall des Sendetaktes (S_Tkt) beträgt. Falls jedoch die Verzögerung640grösser ist als eine Taktzeit des Sendetaktes, S_Tkt, so muss die Tiefe der Warteschlange126entsprechend vergrössert werden, um eine grössere Distanz zwischen dem Inhalt des Eingabe- und des Entnahme-Zeigerzählers128und130unterstützen zu können. Ist zum Beispiel die Verzögerung640so gross, dass das Eintreffen eines Symbols bei der CPU12Bum ganze drei S_Tkt-Intervalle später erfolgt als das Eintreffen desselben Symbols bei der CPU12A, so sollte der Abstand zwischen dem Eingabe- und dem Entnahme-Zeigerzähler zumindest vier betragen. Somit ist die Tiefe der Warteschlange126in einem solchen Fall sechs Symbolspeicherplätze oder grösser.The following is the operation of the clock synchronization FIFOs102 x.102 yconsidered in connection with the receipt of identical data in the course of duplex operation. Table 6 below illustrates this operation. For the sake of simplicity, Table 6 assumes that the delay640is not more than one clock interval of the transmission clock (S_Tkt). However, if the delay640is greater than a cycle time of the send cycle, S_Tkt, the depth of the queue must126be increased accordingly by a greater distance between the contents of the input and the removal pointer counter128and130to be able to support. For example, is the delay640so big that a symbol arrives at the CPU12Bby three S_Tkt intervals later than the arrival of the same symbol at the CPU12A, the distance between the input and the removal pointer counter should be at least four. So the depth of the queue is126in such a case six symbol memory locations or larger.

    TABELLE 6

    Setup wurde aufgrund einer getakteten Verbindung nicht abgeschlossen Windows 10

    TABLE 6

    Setup wurde aufgrund einer getakteten Verbindung nicht abgeschlossen Windows 10

    Setup wurde aufgrund einer getakteten Verbindung nicht abgeschlossen Windows 10

    Setup wurde aufgrund einer getakteten Verbindung nicht abgeschlossen Windows 10

    Die Reihen der oberen Hälfte der Tabelle 6 zeigen die von den Entnahme-Zeigerzählern128,130für die CPU12A(Schnittstelleneinheit24A) angenommenen Werte, sowie den Inhalt eines jeden der vier Speicherorte (Byte0. ..., Byte3) der Warteschlange126, und den Inhalt des Ausgaberegisters132während einer anfänglichen Reset-Periode (RST) und während der darauffolgenden Taktintervalle des Sendetaktes (S_Tkt). Die Reihen der unteren Hälfte der Tabelle 6 zeigen dasselbe für das FIFO102. der Schnittstelleneinheit24ader CPU12B, und zwar für jedes Symbol des duplizierten Symbolstroms.The rows in the upper half of Table 6 show those from the extraction pointer counters128.130for the CPU12A(Interface unit24A) assumed values, as well as the content of each of the four storage locations (byte0, ..., byte3) the queue126, and the content of the output register132during an initial reset period (RST) and during the subsequent clock intervals of the transmit clock (S_Tkt). The rows in the lower half of Table 6 show the same for the FIFO102, the interface unit24athe CPU12Bfor each symbol in the duplicated symbol stream.

    Angenommen, die Verzögerung640ist nicht grösser als ein S_Tkt-Intervall, so zeigen die (in den Zählern128,130jeweils auf dem aktuellen Stand gehaltenen) Eingabeund Entnahmezeiger auf Speicherorte in der Warteschlange126, welche zwei Speicherorte voneinander entfernt sind. Die Eingabe-Zeigerzähler128zeigen jeweils auf den nächsten Speicherort in der Warteschlange126an welchem ein empfangenes Symbol gespeichert wird, und die Entnahme-Zeigerzähler130zeigen auf einen Ort, von welchem ein Symbol aus der Warteschlange entnommen wird.Suppose the delay640is not longer than an S_Tkt interval, they show (in the counters128.130input and removal pointers to storage locations in the queue126which are two locations apart. The input pointer counter128each point to the next location in the queue126on which a received symbol is stored, and the extraction pointer counters130point to a location from which a symbol is removed from the queue.

    Unter Bezugnahme auf Tabelle 6 und23sei nun angenommen, dass der Router14Agemäss dem Protokoll wonach er zuvor einen Strom von "LEERLAUF"-Symbolen übertrug, dazu übergeht, einen Symbolstrom (Nachrichtenpaket) zu senden und dabei mit dem Symbol A beginnt. Wie in Tabelle 6 veranschaulicht, trifft das Symbol A aufgrund der Verzögerung640bei der CPU12Bum einen Zyklus später ein als bei der CPU12A. Hier ist jedoch zu beachten, dass der Inhalt des Eingabe-Zeigerzählers128für die CPU12Bebenfalls um einen Zyklus verzögert auf jenen der CPU12Afolgt. Obwohl also das Symbol A bei der CPU12Bum einen Zyklus später eintrifft als bei der CPU12A, werden daher dennoch beide an "Byte 0"-Speicherorten der Warteschlangen126gespeichert. Dies ist deshalb möglich, weil (1) die FIFOs102im Hinblick auf einen Synchronbetrieb synchronisiert worden sind (ein weiter unten genauer beschriebener Prozess), und (2) die Eingabe-Zeigerzähler128von dem Taktsignal getaktet werden, das am Herkunftsort der Symbole erzeugt wird, d. h. von dem vom Router14Akommenden S_Tkt, und dieses Taktsignal derselben Verzögerung640unterliegt wie die Symbole. Die Entnahme-Zeigerzähler130stimmen andererseits stets miteinander überein, weil sie durch die lokalen Empfangstakte (Empf-Tkt) getaktet werden, die von den Paketempfängern94der CPUs12erzeugt werden Diese lokalen Empfangstakte sind im Duplexbetrieb darüber hinaus frequent- und phasensynchronisiert; sie unterliegen somit keinerlei Verzögerung.With reference to Table 6 and23let's assume that the router14Aaccording to the protocol after which he previously transmitted a stream of "IDLE" symbols, starts to send a symbol stream (message packet) and begins with the symbol A. As illustrated in Table 6, symbol A hits due to the delay640with the CPU12Bone cycle later than with the CPU12A, However, it should be noted here that the content of the input pointer counter128for the CPU12Balso delayed by one cycle to that of the CPU12Afollows. So although the symbol A on the CPU12Barrives one cycle later than the CPU12A, both are therefore still connected to "Byte 0"Locations of the queues126saved. This is possible because (1) the FIFOs102have been synchronized for synchronous operation (a process described in more detail below), and (2) the input pointer counters128be clocked by the clock signal that is generated at the origin of the symbols, that is, by that of the router14Acoming S_Tkt, and this clock signal of the same delay640subject like the symbols. The withdrawal pointer counter130on the other hand, always agree with each other because they are clocked by the local receive clocks (receive clocks) that are used by the packet receivers94of CPUs12These local receive clocks are also frequency and phase synchronized in duplex mode; they are therefore not subject to any delay.

    Eine andere Art, die Verzögerung640zu betrachten besteht darin, sie sich als Teil einer Pipeline innerhalb des Kommunikationspfads (Bus32y) zwischen dem Router14Aund der CPU12Bvorzustellen. Die Verzögerung640kann jeden beliebigen Wert annehmen, solange auch durch die maximale Verzögerung gewährleistet bleibt, dass die Symbole noch rechtzeitig in die Speicherwarteschlange126eingegeben werden können, und zwar zumindest einen Taktzyklus bevor das betreffende Symbol wieder aus der Warteschlange entnommen wird. Die an die CPU12Aübermittelten Symbole warten nämlich einen zusätzlichen Zyklus lang, bevor sie aus der Warteschlange126entnommen werden, und zwar zur selben Zeit, zu der ihre jeweilige Kopie aus der Warteschlange126der CPU12Bentnommen wird. Auf diese Weise wird jedes Symbol des von dem Routen14Aübertragenen Symbolstroms jeweils gleichzeitig aus dem Taktsynchronisierungs-FIFO102der CPUs12A,12Bentnommen, und zwar unter Beibehaltung der für den Duplex-Betriebsmodus erforderlichen Synchronisierung der empfangenen Daten. Die Tiefen der Warteschlangen der TS-FIFOs102passen sich nämlich an, um die beiden von dem Routen14Azu den CPUs12A,12Bführenden Pfade mit derselben Verzögerung auszustatten.Another way, the delay640To consider them as part of a pipeline within the communication path (bus32y) between the router14Aand the CPU12Bimagine. The delay640can take any value, as long as the maximum delay ensures that the symbols are still in the queue in time126can be entered, at least one clock cycle before the relevant symbol is removed from the queue. The to the CPU12ANamely, transmitted symbols wait an additional cycle before being released from the queue126are taken at the same time that their respective copies are queued126the CPU12Bis removed. In this way, each symbol of the route14Asymbol stream transmitted simultaneously from the clock synchronization FIFO102of CPUs12A.12Btaken, while maintaining the synchronization of the received data required for the duplex mode of operation. The depths of the queues of the TS FIFOs102namely adapt to the two of the routes14Ato the CPUs12A.12Bequip leading paths with the same delay.

    Um die soeben unter Bezugnahme auf Tabelle 6 beschriebene Operation zustandezubringen, wird der in31Agezeigte Reset- und Synchronisierungsprozess verwendet. Der Prozess initialisiert nicht nur die Taktsynchronisierungs-FIFOs102der CPUs12A,12Bfür den Duplex-Betriebsmodus, sondern dient auch dazu, die Taktsynchronisierungs-FIFOs518(19A) der CPU-Ports eines jeden der Routen14A,14Bfür den Duplexbetrieb zu initialisieren. Der Reset- und Synchronisierungsprozess verwendet das SYNC-Befehlssymbol, um eine Zeitdauer zu initiieren, die von dem SYNC-Tkt-Signal970(31B) begrenzt ist, um die entsprechenden Taktsynchronisierungs-FIFOs der CPUs12A,128und der Routen14A,14Brückzusetzen und zu initialisieren. (Das SYNC-TKT-Signal wird von dem Taktgenerator654(24) zum Zweck der Verteilung an die Elemente des Systems10, insbesondere die Router14A,14Bund die CPUs12A,12Berzeugt. Es weist eine niedrigere Frequenz auf als jenes, das verwendet wird, um Symbole durch die Taktsynchronisierungs-FIFOs zu empfangen, S_Tkt. Wenn S_Tkt zum Beispiel ungefähr 50 MHz beträgt, liegt das SYNC-TKT-Signal bei etwa 3,125 MHz.)In order to accomplish the operation just described with reference to Table 6, the in31Ashown reset and synchronization process used. The process does not just initialize the clock synchronization FIFOs102of CPUs12A.12Bfor the duplex operating mode, but also serves there to, the clock synchronization FIFOs518(19A) the CPU ports of each of the routes14A.14Binitialize for duplex operation. The reset and synchronization process uses the SYNC command symbol to initiate a period of time from the SYNC Tkt signal970(31B) is limited to the corresponding clock synchronization FIFOs of the CPUs12A.128and the routes14A.14Breset and initialize. (The SYNC-TKT signal is from the clock generator654(24) for the purpose of distribution to the elements of the system10, especially the routers14A.14Band the CPUs12A.12Bgenerated. It has a lower frequency than that used to receive symbols through the clock synchronization FIFOs, S_Tkt. For example, if S_Tkt is approximately 50 MHz, the SYNC-TKT signal will be approximately 3.125 MHz.)

    Der Reset- und Initialisierungsprozess beginnt, wie in31Agezeigt, bei Schritt 950 damit, dass die Taktsignale, welche von den CPUs12A,12Bund den Routern14A,14Bals Sendetakt (S_Tkt) verwendet werden, und die lokalen Taktsignale (Lokaler Tkt) der Einheit entsprechend geschaltet werden, so dass sie von demselben Taktsignal abgeleitet werden. Die S_Tkt-Signale und die Lokalen Tkt-Signale haben im wesentlichen dieselbe Frequenz, wenn auch infolge von bei der Übermittlung der verschiedenen Taktsignale inhärenten Verzögerungen nicht notwendigerweise dieselbe Phase. Ausserdem werden die Konfigurationsregister in den CPUs12A,12B(die Konfigurationsregister74in den Schnittstelleneinheiten24) und in den Routern14A,14B(in der Steuerlogikeinheit509der Router14A,14Benthalten) in den frequenzsynchronisierten (FregSync) Zustand versetzt.The reset and initialization process begins, as in31Ashown at step 950 that the clock signals from the CPUs12A.12Band the routers14A.14Bbe used as the transmit clock (S_Tkt), and the local clock signals (Local Tkt) of the unit are switched accordingly, so that they are derived from the same clock signal. The S_Tkt signals and the local Tkt signals have essentially the same frequency, although not necessarily in the same phase due to delays inherent in the transmission of the various clock signals. In addition, the configuration registers in the CPUs12A.12B(the configuration register74in the interface units24) and in the routers14A.14B(in the control logic unit509the router14A.14Bincluded) in the frequency-synchronized (FregSync) state.

    Die folgende Abhandlung betrifft den Schritt 952 und nimmt Bezug auf die Schnittstelleneinheit24(5), den Router14A(19A), sowie auf die31Aund31B. Bei frequenzsynchronisiertem Taktbetrieb sendet die CPU12Aein Nachrichtenpaket an die im Offline-Zustand befindliche CPU12B, um diese dazu zu veranlassen, mit dem Aussenden von SCHLAFEN-Befehlssymbole zu beginnen. Die CPU12Abeginnt daraufhin ebenfalls mit dem Senden von SCHLAFEN-Befehlssymbolen an den Router14A, die an die Stelle der ansonsten gesendeten BEREIT-Befehlssymbole treten, und auf die ein eigenadressiertes Nachrichtenpaket folgt. Ein beliebiges Nachrichtenpaket, das sich gerade in Empfang oder in Übertragung befinden mag, während die SCHLAFEN-Befehlssymbole von dem Router14Aempfangen und erkannt werden, kann dabei fertig abgearbeitet werden. Alle weiteren Nachrichtenpakete werden jedoch zurückgehalten, mit einer Ausnahme: die von der CPU12Akommenden, eigenadressierten Nachrichtenpakete. Diese Nachrichtenpakete werden empfangen und von dem Router14A(über die Bestimmungsort-Adresse) zurück an die CPU12Agesendet. Das SCHLAFEN-Befehlssymbol hat die Funktion, den Router14Azum Zweck des Synchronisierungsprozesses in einen Ruhezustand zu versetzen. Das von der CPU12Agesendete, eigenadressierte Nachrichtenpaket dient dazu, wenn es von der CPU12Awieder rückempfangen worden ist, letztere davon in Kenntnis zu setzen, dass sich der Router14Anun in einem Ruhezustand befindet, da das nach den SCHLAFEN-Befehlssymbolen gesendete, eigenadressierte Nachrichtenpaket notwendigerweise das zuletzt von dem Router14Averarbeitete Paket sein muss.The following discussion relates to step 952 and refers to the interface unit24(5), the router14A(19A), as well as on the31Aand31B, The CPU sends in frequency-synchronized clock mode12Aa message packet to the offline CPU12Bto cause them to start sending SLEEP command symbols. The CPU12Athen also begins sending SLEEP command symbols to the router14A, which take the place of the otherwise sent READY command symbols and which is followed by a self-addressed message packet. Any packet of messages that may be in the process of being received or transmitted while the SLEEP command symbols are received from the router14Acan be received and recognized, can then be processed. However, all other message packets are held back, with one exception: that from the CPU12Acoming, self-addressed message packets. These message packets are received and sent by the router14A(via the destination address) back to the CPU12APosted. The SLEEP command symbol has the function of the router14Ato hibernate for the purpose of the synchronization process. That from the CPU12ASent, self-addressed message packet is used when it is sent by the CPU12Ahas been received back, the latter to be informed that the router14Ais now in an idle state, since the self-addressed message packet sent after the SLEEP command symbols must necessarily be the last one sent by the router14Aprocessed package must be.

    Bei Schritt 954 prüft die CPU12A, ob sie das eigenadressierte Nachrichtenpaket, das sie im Anschluss an die Initiierung des Sendens von SCHLAFEN-Befehlssymbolen gesendet hat, zurückerhalten hat. Falls sie den Rückempfang des Nachrichtenpakets feststellt und somit sicher sein kann, dass der Router14Avorübergehend keine weiteren Nachrichtenpakete bearbeitet, geht die CPU12Azu Schritt 956 über und sendet ein SYNC-Befehlssymbol an den Router14A. Wenn das SYNC-Befehlssymbol von dem Router empfangen worden ist und von der Befehlsdecodierlogik544(20A) als solches erkannt worden ist, wird die Steuerlogik509benachrichtigt. Die Steuerlogik509wartet auf die nächste Anstiegsflanke des SYNC-Taktes970(Zeit t1 –31B), um den Befehlssymbolgenerator632(22) der Portausgänge5044,5045anzuweisen, SYNC-Befehlssymbole zu generieren, welche an die CPUs12A,12Bzurückreflektiert werden (Schritt 958).At step 954, the CPU checks12Awhether it has received back the self-addressed message packet that it sent following the initiation of sending SLEEP command symbols. If it determines that the message packet has been received back and can therefore be sure that the router14Athe CPU temporarily does not process any further message packets12Ato step 956 and sends a SYNC command symbol to the router14A, When the SYNC command symbol has been received by the router and by the command decoding logic544(20A) has been recognized as such, the control logic509notified. The control logic509waits for the next rising edge of the SYNC clock970(Time t 1 -31B) to the command symbol generator632(22) of the port exits504 4.504 5to instruct to generate SYNC command symbols which are sent to the CPUs12A.12Bbe reflected back (step 958).

    Als nächstes gibt in Schritt 960 (und Zeitabschnitt t2 des SYNC-Taktes970) die Steuerlogik509des Routers ein RESET-Signal972aus, welches an die beiden Taktsynchronisierungs-FIFOs518angelegt werden, die in der Eingangslogik5054,5055jenes Routers enthalten sind, welcher Symbole unmittelbar von den CPUs12A,12Bempfängt. Solange RESET aktiviert ist, werden dadurch die beiden Taktsynchronisierungs-FIFOs518in einem vorübergehend nicht-operativen Reset-Zustand gehalten, wobei der Eingabeund der Entnahme-Zeigerzähler530,532(20A) jeweils in einen bekannten Zustand versetzt werden und auf Speicherorte innerhalb der Speicherwarteschlange518zeigen, die um eine vorgegebene Anzahl von Speicherorten (zwei in dem vorliegenden Beispiel) voneinander beabstandet sind, wie bereits weiter oben in Verbindung mit der Reset-Prozedur beim Einschalten des Stroms besprochen.Next in step 960 (and time period t 2 of the SYNC clock970) the control logic509a RESET signal from the router972from which to the two clock synchronization FIFOs518be created in the input logic5054.5055those routers are included, which symbols directly from the CPUs12A.12Breceives. As long as RESET is activated, the two clock synchronization FIFOs518held in a temporarily non-operative reset state with the input and extraction pointer counters530.532(20A) are each put in a known state and to locations within the storage queue518show which are spaced apart from each other by a predetermined number of storage locations (two in the present example), as already discussed above in connection with the reset procedure when the power is switched on.

    Ähnlich verhält es sich mit den SYNC-Symbolen, die von den Routern14A,14Ban die CPUs12zurück reflektiert werden. Da jedes der von den CPUs12empfangenen SYNC-Symbole von den Speicher- und Verarbeitungseinheiten der Paketempfänger96(5und6) dazu führt, dass das RESET-Signal von den Paketempfängern96(eigentlich von den Speicher- und Verarbeitungselementen110; Fig. 6) einer jeden CPU12ausgegeben wird, wird das RESET-Signal an die Taktsynchronisierungs-FIFOs102(6) der CPUs12angelegt. Dieses CPU RESET-Signal hält ebenfalls die CPU-Taktsynchronisierungs-FIFOs102beider CPUs12in einem Reset-Zustand, wobei deren Speicherwarteschlangen126(7A) und deren Eingabe- und Entnahmezähler128,130jeweils in einen bekannten Zustand versetzt werden.The situation is similar with the SYNC symbols used by the routers14A.14Bto the CPUs12be reflected back. Because each of the CPUs12received SYNC symbols from the storage and processing units of the packet receiver96(5and6) causes the RESET signal from the packet receivers96(actually from the storage and processing elements110; Fig. 6) of each CPU12is output, the RESET signal is sent to the clock synchronization FIFOs102(6) of the CPUs12created. This CPU RESET signal also holds the CPU clock synchronization FIFOs102of both CPUs12in a reset state, with their storage queues126(7A) and their input and Ent acceptance counter128.130are each put in a known state.

    Bei Schritt 962, und Zeitabschnitt t3 des SYNC-TKT-Signals970, werden die Sendetaktsignale (S_Tkt), welche die Symbolübertragung zwischen den CPUs12A,12Bund den Routern14A,14Bbegleiten, vorübergehend gestoppt. Bei Schritt 963 (Zeitabschnitt t4) deaktivieren die CPUs12und die Router14A,14Bdie RESET-Signale, wodurch die Taktsynchronisierungs-FIFOs der CPUs12A,12Bund der Router14A,14Baus ihrem Reset-Zustand entlassen werden. Bei Schritt 964 (t5) nehmen der Router14Aund die CPUs12die S_TKT-gestützte Übertragung wieder auf, wobei mit einer kurzen, konfigurierbaren Verzögerung begonnen wird, die es erlaubt, Einstellungen vorzunehmen betreffend die während der Übertragung auf den Links maximal zu erwartende Verzögerungszeit. Nach Beendigung dieser Verzögerung fahren die Router14Aund die CPUs12damit fort, Daten aus ihren jeweiligen Taktsynchronisierungs-FIFOs zu entnehmen und führen so ihren normalen Betrieb weiter. Die Taktsynchronisierungs-FIFOs des Routers14Abeginnen damit, Symbole aus der Warteschlange zu entnehmen (zuvor durch RESET auf LEERLAUF-Symbole eingestellt), und der S_Tkt beginnt, Symbole in Warteschlange einzugeben. Zu beachten ist dabei, dass das erste Symbol, welches von der CPU12Akommend mit dem S_Tkt empfangen wird, beispielsweise an dem Warteschlangenspeicherort 0 (oder an irgendeinem anderen Speicherort, auf welchen der Wert, auf den der Eingabe- Zeigerzähler zurückgesetzt worden ist, zeigt) gemeinsam mit dem begleitenden S_Tkt-Signal in das Taktsynchronisierungs-FIFO eingegeben wird. In ähnlicher Weise wird auch das erste von der CPU12Bkommende Symbol ebenfalls an dem Speicherort0(bzw. an jedem beliebigen anderen Speicherort, auf welchen der Eingabe-Zeiger während des RESET-Vorgangs eingestellt wurde) in die FIFO-Warteschlange eingegeben. Die Taktsynchronisierungs-FIFOs des Routers14Asind nun entsprechend synchronisiert, um sich auf jede denkbare Verzögerung640einstellen zu können, zu der es in dem einen Kommunikationspfad zwischen dem Router14Aund den CPUs12A,12Bin Bezug auf den anderen Pfad kommen kann.At step 962, and time period t 3 of the SYNC-TKT signal970, the send clock signals (S_Tkt), which are the symbol transmission between the CPUs12A.12Band the routers14A.14Baccompany, temporarily stopped. At step 963 (time period t 4 ) the CPUs deactivate12and the router14A.14Bthe RESET signals, causing the clock synchronization FIFOs of the CPUs12A.12Band the router14A.14Bbe released from their reset state. At step 964 (t 5 ) the router take14Aand the CPUs12S_TKT-based transmission again, starting with a short, configurable delay that allows settings to be made regarding the maximum delay time to be expected during the transmission on the links. After this delay has ended, the routers are running14Aand the CPUs12continue to extract data from their respective clock synchronization FIFOs and thus continue their normal operation. The router's clock synchronization FIFOs14Abegin removing symbols from the queue (previously set to IDLE symbols by RESET), and the S_Tkt begins entering symbols in the queue. It should be noted that the first symbol that is assigned by the CPU12Ais received with the S_Tkt, for example at queue location 0 (or any other location to which the value to which the input pointer counter has been reset) is entered into the clock synchronization FIFO along with the accompanying S_Tkt signal , Similarly, the first from the CPU12Bcoming symbol also in the storage location0(or any other location to which the input pointer was set during the RESET process) entered into the FIFO queue. The router's clock synchronization FIFOs14Aare now synchronized accordingly to accommodate every conceivable delay640to be able to set it in the one communication path between the router14Aand the CPUs12A.12Bcan come in relation to the other path.

    In ähnlicher Weise wird zur selben virtuellen Zeit der Betrieb der Taktsynchronisierungs-FIFOs102beider CPUs12A,12Bwiederaufgenommen und somit mit dem Router14Asynchronisiert. Die CPUs12A,12Bstellen daher auch das Senden von SCHLAFEN-Befehlssymbolen zugunsten von BEREIT-Symbolen ein und nehmen ordnungsgemäss die Übertragung von Nachrichtenpaketen wieder auf.Similarly, at the same virtual time, the clock synchronization FIFOs will operate102of both CPUs12A.12Bresumed and thus with the router14Asynchronized. The CPUs12A.12Btherefore also stop sending SLEEP command symbols in favor of READY symbols and properly resume the transmission of message packets.

    Damit ist der Synchronisierungsprozess für den Router14Aabgeschlossen. Der Prozess muss jedoch auch für den Router14Bdurchlaufen werden. Die CPU springt also zum Schritt 952 zurück und führt die Schritte 952–966 erneut durch, diesmal allerdings mit dem Router14Banstelle des Routers14A, woraufhin alle CPUs12A,12Bund Router14A,14Bfür einen frequenzsynchronisierten Betriebsmodus initialisiert sind. Was zur Einrichtung des Duplex-Betriebsmodus noch zu tun bleibt, ist die beiden CPUs12A,12Bin denselben Betriebszustand zu versetzen und dafür zu sorgen, dass sie dieselben Befehle im wesentlichen zum selben Zeitpunkt ausführen. Die Vorgangsweise, die darin besteht, zwei CPUs12in denselben Zustand zu versetzen, auch Reintegration genannt, wird weiter unten beschrieben. Zuvor gilt es jedoch noch, unter Voraussetzung, dass die CPUs12A,12Bnun im Duplexbetrieb arbeiten, das Verfahren und die Vorrichtung zu beschreiben, die verwendet werden, um einen möglichen Fehler zu erkennen und zu bearbeiten, welcher zu einer Divergenz der CPUs in Bezug auf deren Duplexbetrieb führt.This is the synchronization process for the router14Acompleted. However, the process must also be for the router14Bbe run through. The CPU therefore jumps back to step 952 and carries out steps 952-966 again, but this time with the router14Binstead of the router14A, whereupon all CPUs12A.12Band router14A.14Bare initialized for a frequency-synchronized operating mode. What remains to be done to set up the duplex operating mode is the two CPUs12A.12Bput in the same operating state and ensure that they execute the same commands at substantially the same time. The procedure, which consists of two CPUs12Getting into the same state, also called reintegration, is described below. Before that, however, it still applies, provided that the CPUs12A.12Bnow working in duplex mode, to describe the method and the device used to detect and process a possible error which leads to a divergence of the CPUs with regard to their duplex mode.

    Divergenzerkennung und -handhabung: Durch den Duplex-Betriebsmodus wird eine funktionellfehlende Fehlertoleranz auf CPU-Ebene implementiert. Eine jede des Paars von duplexbetriebenen CPUs (z. B. die CPUs12A,12Bdes Systems10–1A) ist im wesentlichen eine identische Kopie der jeweils anderen, einschliesslich der Zustandsinformationen und des Speicherinhalts, und beide führen im wesentlichen zur selben Zeit identische Befehle eines identischen Befehlsstroms aus und bilden somit eine logische, fehlertolerante CPU. Durch einen Fehler der einen oder der anderen der CPUs12A,12Bwird der Betrieb des Systems10nicht gestoppt bzw. nicht einmal verlangsamt – sofern dieser Fehler erkannt und ordnungsgemäss gehandhabt wird. Zur Erkennung einer fehlerhaften CPU ergibt sich naheliegenderweise aus dem Duplexbetrieb: die E/A-Ausgabedaten beider CPUs12A,12Bsind bei einem ordnungsgemässen Duplexbetrieb Symbol für Symbol miteinander identisch. Alles was also zu tun ist, um die ordnungsgemässe Fortsetzung des Duplexbetriebs bestätigt zu bekommen, ist, die beiden E/A-Ausgabedaten der duplexbetriebenen CPUs symbolweise miteinander zu vergleichen. Eine fehlerhafte CPU weicht von dem Betriebszustand der anderen ab und diese Divergenz kommt schlussendlich in den E/A-Ausgabedaten der CPUs zum Ausdruck.Divergence detection and handling: The duplex operating mode implements a functionally missing fault tolerance at the CPU level. Each of the pair of duplexed CPUs (e.g. the CPUs12A.12Bof the system10-1A) is essentially an identical copy of each other, including the status information and memory contents, and both execute identical commands from an identical command stream at substantially the same time, thus forming a logical, fault-tolerant CPU. A fault in one or the other of the CPUs12A.12Bbecomes the operation of the system10not stopped or even slowed down - as long as this error is recognized and handled properly. To detect a faulty CPU, it is obvious from the duplex operation: the I / O output data of both CPUs12A.12Bare identical to each other symbol by symbol in a proper duplex operation. So all you have to do to confirm that the duplex operation continues correctly is to compare the two I / O output data of the duplex-operated CPUs symbol by symbol. A faulty CPU deviates from the operating state of the other and this divergence is finally expressed in the I / O output data of the CPUs.

    In32wird die Vorgehensweise veranschaulicht, die verwendet wird, um als erstes eine Divergenz bei den Routern14A,14Bzu erkennen (Schritte 1000, 1002), und in weiterer Folge diese Divergenz auf elegante Weise handzuhaben, um den Betrieb der fehlerhaften CPU so bald wie möglich zu beenden und sie so daran zu hindern, schlechte Daten innerhalb des Systems10zu verbreiten. In Schritt 1000 der32arbeitet das duplexbetriebene Paar von CPUs12A,12B(l) somit synchron im Gleichschritt als eine logische CPU. In regelmässigen Abständen senden die CPUs12E/A-Daten über ein Nachrichtenpaket, das für ein Peripheriegerät des einen oder anderen Subprozessorsystems10A,10Bbestimmt ist. Je nach Bestimmungsort des abgehenden Nachrichtenpakets empfängt bei Schritt 1002 einer der Router14Aoder14Bdiese E/A-Daten und vergleicht beim Empfang des Pakets jedes Symbol des von der CPU12Akommenden Nachrichtenpakets mit jenem der CPU12B. Der Vergleich erfolgt an den Ausgängen der Eingangslogik505der Porteingängen502und5025, die entsprechend geschaltet sind, um über eine (nicht dargestellte) Vergleichsschaltung herkömmlicher Bauart E/A-Daten von den CPUs12A,12Bzu empfangen. Falls die empfangenen Symbole gleich sind, verbleibt das Verfahren auf den Schritten 1000 und 1002 – was auf eine ordnungsgemässen Betrieb hindeutet.In32illustrates the procedure used to first establish a divergence in the routers14A.14BDetect (steps 1000, 1002), and subsequently handle this divergence in an elegant manner to stop the faulty CPU from operating as soon as possible, thereby preventing it from getting bad data within the system10to spread. In step 1000 the32works the duplex-powered pair of CPUs12A.12B(l) thus synchronously in step as a logical CPU. The CPUs send at regular intervals12I / O data via a message packet, which is for a peripheral device of one or the other subprocessor system10A.10Bis determined. Depending on the destination of the outgoing message packet, one of the routers receives in step 100214Aor14Bthis I / O data and compares each symbol received by the CPU when the packet is received12Acoming message packet with that of the CPU12B, The comparison takes place at the outputs of the input logic505the port entrances502and5025, which are switched accordingly, to receive I / O data from the CPUs via a ( not shown) comparison circuit of conventional type12A.12Bto recieve. If the received symbols are the same, the method remains on steps 1000 and 1002 - indicating correct operation.

    Sollten während des Schritts des Vergleiches1002unterschiedliche Symbole erkannt werden, so gibt die (nicht dargestellte) Vergleichsschaltung des Routers14ein FEHLER-Signal an die Router-Steuerlogik509aus, wodurch der Prozess zu Schritt 1004 weiterspringt, bei welchem der die Divergenz erkennende Router14ein DVRG-Befehlssymbol an beide CPUs12A,12Büberträgt. Vorzugsweise wartet der Router so lange wie möglich zu, bevor er das DVRG-Signal sendet, um die Zeit zwischen dem Melden der Divergenz und dem Abklären, welche CPU den Betrieb fortsetzt, möglichst gering zu halten.Should be during the step of the comparison1002different symbols are recognized, so gives the (not shown) comparison circuit of the router14an ERROR signal to the router control logic509off, whereby the process jumps to step 1004, in which the router that detects the divergence14a DVRG command symbol to both CPUs12A.12Btransfers. The router preferably waits as long as possible before sending the DVRG signal in order to keep the time between reporting the divergence and clarifying which CPU continues to operate as short as possible.

    Es mag an diesem Punkt hilfreich sein, in einem kurzen Exkurs nachfolgend verschiedene gegensätzliche Ziele zu beschreiben, die durch diese Technik der Divergenzerkennung verfolgt werden sollen: Als erstes müssen die Router14A,14Bunverzüglich Schritte setzen, um eine Ausbreitung des Fehlers auf den Rest des Systems zu verhindern. So setzen die Router ungeachtet der Erkennung einer Divergenz mit dem Senden der Nachrichtenpakete über ihre vorbestimmten Leitwege fort, allerdings unter Zurückhaltung des abschliessenden Symbols des Nachrichtenpakets: des Zustandssymbols, welches ein "Paket schlecht"- bzw. ein "Paket gut"-Zustandssymbol (TPBbzw. TPG-Zustandssymbol) sein kann. Ohne dieses Symbol kann ein im Informationsstrom nachgeordnetes Bestimmungselement ein empfangenes Nachrichtenpaket nicht verwenden.At this point it may be helpful to describe in a short digression various opposing goals that should be pursued by this technique of divergence detection: First of all, the routers14A.14BTake immediate steps to prevent the error from spreading to the rest of the system. Thus, regardless of the detection of a divergence, the routers continue to send the message packets via their predetermined routes, but with restraint to the final symbol of the message packet: the status symbol, which represents a "packet bad" or a "packet good" status symbol (TPB or TPG status symbol). Without this symbol, a determination element downstream in the information stream cannot use a received message packet.

    Als zweites Ziel sollen möglichst wenige Nachrichtenpakete zertrennt werden. Wie weiter unten beschrieben, wird eine der CPUs12A,12Bals "bevorzugte" oder primäre CPU bestimmt, und wenn die CPUs im Duplexmodus betrieben werden, wird nur der von der bevorzugten CPU eines Routers kommende Nachrichtenverkehr weiterübertragen. Die Paketzertrennung wird minimiert, indem es einem Router ermöglicht wird, angesichts der Erkennung einer Divergenz die Fertigstellung der Übertragung eines Nachrichtenpakets so lange fortzusetzen, bis bestimmt werden kann, welche CPU fehlerhaft ist, sofern eine solche Bestimmung möglich ist.The second goal is to cut as few message packets as possible. As described below, one of the CPUs12A.12Bdesignated as the "preferred" or primary CPU, and when the CPUs are operating in duplex mode, only the message traffic coming from the preferred CPU of a router is retransmitted. Packet separation is minimized by allowing a router to continue completing the transmission of a message packet in the face of divergence detection until it can determine which CPU is faulty, if such a determination is possible.

    Wenn es sich dabei nicht um die bevorzugte CPU handelt, so wird das Nachrichtenpaket durch die Übertragung des Abschlusssymbols, in diesem Fall eines TPG-Symbols, freigegeben.If it is not the preferred one CPU is acting, the message packet is transmitted the final symbol, in this case a TPG symbol.

    Als drittes muss ein Router, der eine Divergenz erkennt, genau bestimmen, welche Fehler es sind, die passiert sind, damit es zu einer Divergenz kommen konnte. Zu diesem Zweck sucht er nach einfachen Linkfehlern, nach verlorengegangenen Linkebenen-"Halte"-Symbolen und nach CRC-Fehlern. Die CPUs12räumen im Anschluss an dem Empfang des DVRG-Symbols hinreichend Zeit ein, um die Ausgabe allfälliger Linkebenen-Haltesymbol-Zeitablauf-Fehlermeldungen abwarten zu können. Ein Router, der eine Divergenz erkennt (ohne dabei einen entsprechenden, einfachen Linkfehler erkennen zu können) nimmt sich die Zeit, um den CRC des empfangenen Nachrichtenpakets zu prüfen, indem er auf das Ende des Nachrichtenpakets wartet, bevor er die Divergenz mittels des DVRG-Symbols meldet.Third, a router that detects a divergence needs to determine exactly what errors are that have occurred so that a divergence could occur. To this end, it looks for simple link errors, lost link level "hold" symbols, and CRC errors. The CPUs12after receiving the DVRG symbol, allow sufficient time to wait for the output of any link level stop symbol timeout error messages. A router that detects a divergence (without being able to identify a corresponding simple link error) takes the time to check the CRC of the received message packet by waiting for the end of the message packet before it detects the divergence using the DVRG Symbols reports.

    Viertens und letztens muss das System10die Divergenzhandhabung innerhalb einer kurzen, begrenzten Zeitspanne vollenden, um TNet-Transaktions-Zeitablauffehler bzw. untragbare E/A-Verzögerungen zu vermeiden. Dieses Ziel steht gewissermassen im Widerspruch zu dem Zurückhalten der Freigabe des Nachrichtenpakets (durch das Zurückhalten des abschliessenden Zustandssymbols), da das Warten auf die Fertigstellung der Übertragung eines von einer CPU kommenden Nachrichtenpakets viel Zeit in Anspruch nehmen kann. Eine solche Verzögerung kann jedoch nicht zu einem TNet Zeitablauffehler führen, wenn die ungünstigste Zeitspanne, innerhalb derer eine CPU ein Nachrichtenpaket übertragen muss, garantiert ist.Fourth and lastly, the system10Complete divergence handling within a short, limited period of time to avoid TNet transaction timing errors or intolerable I / O delays. To a certain extent, this goal contradicts the withholding of the release of the message packet (by the withholding of the final status symbol), since waiting for the completion of the transmission of a message packet coming from a CPU can take a long time. However, such a delay cannot lead to a TNet timing out error if the least favorable period within which a CPU has to transmit a message packet is guaranteed.

    Die CPUs12starten beim Empfang eines DVRG-Symbols einen Zeitgeber, der dazu verwendet wird, eine vorgegebene Zeitspanne festzusetzen, innerhalb derer die CPUs12zu bestimmen versuchen, welche von ihnen den Fehler aufweist und den Betrieb beenden muss und welche von ihnen weiterarbeiten muss (Schritt 1006). Ausserdem reflektieren beide CPUs12A,12Bdas DVRG-Befehlssymbol an die beiden Router14A,14Bzurück. Wenn ein Router14A,14B, der dieses reflektierte DVRG-Symbol empfängt, keine Divergenz erkannt hat, oder zuvor noch auf kein DVRG-Symbol gestossen ist, so reflektiert er auch ein DVRG-Symbol zurück an die CPUs. Durch das in dieser Weise erfolgende Reflektieren der DVRG-Befehlssymbole wird gewährleistet, dass alle CPUs12und Router14A,14Bauf ein DVRG-Symbol gestossen sind und so von dem möglichen Vorhandensein einer Divergenz unterrichtet sind.The CPUs12when a DVRG symbol is received, start a timer that is used to set a predetermined period of time within which the CPUs12try to determine which of them has the error and must stop operating and which of them must continue (step 1006). In addition, both CPUs reflect12A.12Bthe DVRG command symbol to the two routers14A.14Bback. If a router14A.14Bwho receives this reflected DVRG symbol, has not recognized any divergence, or has not previously encountered a DVRG symbol, it also reflects a DVRG symbol back to the CPUs. Reflecting the DVRG command symbols in this way ensures that all CPUs12and router14A.14Bhave encountered a DVRG symbol and are thus informed of the possible presence of a divergence.

    Sind erst einmal alle Beteiligten (die CPUs12A,12B, und die Router14A,148) informiert, dass eine Divergenz erkannt worden ist, was auf einen Fehler einer der CPUs (oder eines Routers) schliessen lässt, so gilt es, darauf zu achten, dass keine Folgeerscheinungen aus diesem Fehler in Form von schlechten Daten auf den Rest des Systems10übertragen werden. Gleichzeitig muss das System10den Fehler tolerieren und seinen Betrieb fortsetzen.Are all involved (the CPUs12A.12B, and the routers14A.148) informs you that a divergence has been detected, which indicates a fault in one of the CPUs (or a router), it is important to ensure that there are no sequelae from this fault in the form of bad data on the rest of the system10be transmitted. At the same time, the system10tolerate the error and continue its operation.

    Somit müssen alle (von den CPUs) abgehenden Paketübertragungen zumindest teilweise fortgesetzt werden, bis entschieden werden kann, ob ein Nachrichtenpaket, das zur selben Zeit von den CPUs kommend eintrifft, zu welcher der Router eine Divergenz erkennt, gut oder schlecht ist.So everyone has to go out (from the CPUs) packet transmissions at least partially continue until a decision can be made whether a message packet arriving from the CPUs at the same time to which the router detects a divergence, good or bad is.

    Ausserdem muss die divergenzverursachende CPU bestimmt werden und in transparenter Weise (d. h. ohne äusseres Zutun) aus dem System entfernt werden. Diese letztere Aufgabe fällt in den Verantwortungsbereich der CPUs12, denn nachdem die Divergenz und allfällige Fehler an die CPUs12gemeldet worden sind, müssen diese untereinander entscheiden, welche von ihnen den Betrieb fortsetzt und welche ihren weiteren Betrieb beendet und sich somit praktisch selber aus dem System10zurückzieht.In addition, the divergence-causing CPU must be determined and transparent (i.e. H. without external intervention) are removed from the system. This latter task is the responsibility of the CPUs12, because after the divergence and any errors to the CPUs12have been reported, they must decide among themselves which of them will continue to operate and which will end their further operation and thus practically remove itself from the system10withdraws.

    Somit analysiert unter Schritt 1006 der Divergenzroutine eine jede der CPUs12A,12Bdie verschiedenen ihr bereitgestellten Fehlerangaben; diese Fehleranalyse wird weiter unten noch genauer besprochen.Thus, at step 1006 of the divergence routine, each of the CPUs analyzes12A.12Bthe various error messages provided to it; this error analysis is discussed in more detail below.

    Vorerst bedarf jedoch die Funktion des (bzw. der) divergenzerkennenden Router(s) 14, durch welche die Ausbreitung schlechter Daten begrenzt wird, einer Erklärung. Nachdem das DVRG-Symbol von einem Router14ausgegeben, oder empfangen, worden ist, werden alle weiteren Nachrichtenpakete, die zu dem Zeitpunkt, da die Divergenz erkannt wurde, von den CPUs kommend empfangen worden sind bzw. im Begriff sind, weitergeleitet zu werden, bzw. das empfangene DVRG-Symbol, ausgenommen allerdings das paketabschliessende Zustandssymbol, d. h. das Zustandsanzeigesymbol 'TPG' (Paket gut) bzw. 'TPB' (Paket schlecht), durch den Router hindurchgeleitet. Während des Duplexbetriebs wird, wie weiter oben bereits kurz erklärt, ein jeder der Router14A,14Bdurch Setzen einer Bitposition in dem in der Steuerlogik509(19A) enthaltenen Konfigurationsregister (nicht gezeigt) entsprechend konfiguriert, so dass er über eine "bevorzugte" CPU verfügt. Im Duplexbetrieb überträgt der Router das von der bevorzugten CPU empfangene Nachrichtenpaket weiter; das von der anderen oder "nicht bevorzugten" CPU kommende Paket wird nur zum Zweck der Divergenzerkennung verwendet. Die Router müssen abwarten, bis die CPUs eine Entscheidung getroffen haben, welche von ihnen den Betrieb fortsetzt, wovon die Router14A,14Bbenachrichtigt werden (Schritt 1012), bevor das Paket durch Anfügen des TPG/TPB-Zustandsanzeigesymbols "freigegeben" werden (Schriet1014). Wenn der Router benachrichtigt wird, dass die bevorzugte CPU12zur Fortführung des Betriebs bestimmt wurde, so gibt der Router das Nachrichtenpaket durch Hinzufügen und Senden des Zustandsanzeigesymbols 'TPG' frei. Wenn der Router hingegen benachrichtigt wird, dass es sich umgekehrt verhält, d. h. dass es nicht die bevorzugte CPU ist, die den Betrieb fortführt, wird das Nachrichtenpaket mit dem Symbol 'TPB' versehen und somit ausgeschieden.For the time being, however, the function of the (or) divergence-detecting router (s) 14, by means of which the spreading of bad data is limited, needs to be explained. After the DVRG symbol from a router14output, or received, all other message packets that were received by the CPUs or are about to be forwarded at the time when the divergence was recognized, or the received DVRG symbol, are excluded however, the packet-terminating status symbol, ie the status display symbol 'TPG' (package good) or 'TPB' (package bad), is passed through the router. As already explained briefly above, each of the routers is activated during the duplex operation14A.14Bby setting a bit position in the in the control logic509(19A) contained configuration register (not shown) configured accordingly so that it has a "preferred" CPU. In duplex mode, the router retransmits the message packet received by the preferred CPU; the packet coming from the other or "not preferred" CPU is only used for the purpose of divergence detection. The routers have to wait until the CPUs have made a decision as to which of them will continue to operate, of which the routers14A.14Bbe notified (step 1012) before the package is "released" by adding the TPG / TPB status indicator symbol (Schriet1014). When the router is notified that the preferred CPU12was determined to continue operation, the router releases the message packet by adding and sending the status display symbol 'TPG'. If, on the other hand, the router is notified that the situation is reversed, ie that it is not the preferred CPU that continues to operate, the message packet is provided with the 'TPB' symbol and is therefore eliminated.

    Um die Menge an verlorenen Daten zu beschränken (wie weiter oben als zweites Ziel erwähnt), werden die beiden Router mit unterschiedlichen bevorzugten CPUs konfiguriert (z. B. die bevorzugte CPU von Router14Aist CPU12A, die bevorzugte CPU von Router14Bist CPU12B).To limit the amount of data lost (as mentioned above as a second destination), the two routers are configured with different preferred CPUs (e.g. router preferred CPU14Ais CPU12A, Router's preferred CPU14Bis CPU12B).

    Nachdem die Nachricht über die erkannte Divergenz per Rundruf an die CPUs12A,12Bund an die Router14Aund14Bübermittelt worden ist, wird fortgesetzt, indem eine jede der CPUs12A,12Bdamit beginnt, die bei Schritt 1006 eingetretene Situation zu bewerten, in dem Bemühen, unabhängig voneinander zu bestimmen, wo der Fehler liegt, der für die Divergenz verantwortlich ist. Sobald feststeht, in welcher der CPUs12A,12Bder Fehler aufgetreten ist (Schritt 1008), beendet diese CPU ihren Berieb selbsttätig (Schritt 1012) und lässt die andere alleine, wenn auch im Simplexmodus, weiterarbeiten. Für den Fall, dass die CPUs12A,12Bnicht in der Lage sind, aus einem der erkannten bzw. gemeldeten Fehler zu bestimmen, bei welcher von ihnen der Fehler liegt, so kommt ein "Tie-Break"-Bit (Schritt 1010) zum Einsatz, welches in jeweils einem der Konfigurationsregister74(5) der Schnittstelleneinheit24einer jeden CPU enthalten ist.After broadcasting the message about the detected divergence to the CPUs12A.12Band to the router14Aand14Bhas been transmitted continues by each of the CPUs12A.12Bthis begins to assess the situation that occurred at step 1006, in an effort to independently determine where the error that is responsible for the divergence lies. As soon as it is certain in which of the CPUs12A.12Bthe error has occurred (step 1008), this CPU ends its operation automatically (step 1012) and leaves the other one to continue working, albeit in simplex mode. In the event that the CPUs12A.12BIf you are unable to determine from one of the detected or reported errors which of them the error is, a "tie break" bit (step 1010) is used, which is stored in one of the configuration registers74(5) of the interface unit24of each CPU is included.

    Im folgenden wird vorübergehend wieder auf Schritt 1006 Bezug genommen, wobei die Entscheidung der Frage, bei welcher der CPUs12A,12Bder Fehler liegen mag, in erster Line darauf basiert, welche Fehler auf dem Kommunikationspfad zwischen den CPUs12A,12Bund den Routern14A,14Berkannt werden. Nachdem die Router14A,14Bdas Vorhandensein einer Divergenz bemerkt haben, setzt jeder, wie oben erwähnt, seinen normalen Betrieb fort: jedes einzelne Nachrichtenpaket, das zu dem Zeitpunkt, da der eine Divergenz anzeigende Symbolunterschied erkannt wurde, oder im Anschluss daran, von den CPUs12A,12Bkommend gerade von einem Router14A,148empfangen wird, mit Ausnahme des abschliessenden Zustandsanzeigesymbols, wird durch den Router hindurchgeleitet. Beide Router14A,14Büberwachen weiterhin die Kommunikationspfade (TNet-Links L), zwischen dem speziellen Router14und den CPUs12auf mögliche Linkprotokollfehler und/oder Verletzungen wie zum Beispiel auf einen erkannten CRC-Fehler, auf Befehlssymbolfehler oder auf andere Arten von Linkfehlern hin. Wenn ein solcher Fehler bzw. eine solche Verletzung auf einem Link L (z. B. dem Link Lx –1A) erkannt wird, so sendet der erkennende Router14A,14Bauf diesem Link (Lx) ein 'Link schlecht'-Symbol (TLB-Symbol) an die CPU zurück. Zur selben Zeit sendet der erkennende Router an die andere CPU12(über das andere Link Ly) ein 'Anderes Link schlecht'-Symbol (OLB-Symbol). Auf diese Weise werden beide CPUs12davon in Kenntnis gesetzt, dass ein Kommunikationspfad (die Zinkverbindung Lx) zu einem der Router14A,14B, oder irgendein mit diesem Link verbundenes Element, fehlerhaft oder unzuverlässig sein kann. Diese Information wird von den CPUs bei dem in Schritt 1006 erfolgenden Versuch benutzt, zu bestimmen, welche CPU den Betrieb beenden sollte, während die andere CPU ihre Arbeit, wenn auch im Simplexbetriebsmodus, fortsetzt. Die CPUs akkumulieren diese Fehlerinformationen und erstellen eine Tabelle ähnlich der nachfolgenden Tabelle 7. TABELLE 7

    Setup wurde aufgrund einer getakteten Verbindung nicht abgeschlossen Windows 10

    In the following, reference is again made temporarily to step 1006, the decision of which of the CPUs12A.12Bthe error may be based primarily on what errors on the communication path between the CPUs12A.12Band the routers14A.14Bbe recognized. After the router14A.14Bhaving noticed the presence of a divergence, everyone continues to operate normally, as mentioned above: every single packet of messages that was detected by the CPUs at the time the symbol difference indicating a divergence was detected or afterwards12A.12Bjust coming from a router14A.148is received, with the exception of the final status display symbol, is routed through the router. Both routers14A.14Bcontinue to monitor the communication paths (TNet-Links L) between the special router14and the CPUs12possible link protocol errors and / or violations such as a detected CRC error, command symbol errors or other types of link errors. If such an error or violation occurs on a link L (e.g. link Lx -1A) is recognized, the recognizing router sends14A.14Bon this link (Lx) a 'link bad' symbol (TLB symbol) back to the CPU. At the same time, the discovering router sends to the other CPU12(via the other link Ly) an 'other link bad' symbol (OLB symbol). This way both CPUs12informed that a communication path (the zinc link Lx) to one of the routers14A.14B, or any element associated with this link, may be faulty or unreliable. This information is used by the CPUs in the attempt made in step 1006 to determine which CPU should stop operating while the other CPU continues to operate, albeit in simplex mode. The CPUs accumulate this error information and create a table similar to Table 7 below. TABLE 7

    Setup wurde aufgrund einer getakteten Verbindung nicht abgeschlossen Windows 10

    Die Tabelle 7 listet die fünf möglichen Zustände auf, die von einer CPU erkannt bzw. dieser gemeldet werden können und auf deren Basis eine CPU bestimmen kann, was bei Eintreten einer Divergenzmeldung zu tun ist. Der in Tabelle 7 verwendete Begriff "lokal" soll sich auf den Router14A,14Bbeziehen, welcher in demselben Subprozessorsystem10A,10Bwie die CPU enthalten ist. So ist zum Beispiel, unter Bezugnahme auf1A, der Router14Ader "lokale" Router in Bezug auf die CPU12A, jedoch der "entfernte" Router in Bezug auf die CPU12B. Das in Tabelle 7 verwendete "primär" bezieht sich auf das bereits weiter oben erwähnte Tie-Break-Bit: das in einem der Konfigurationsregister74der Schnittstelleneinheit24(5) einer jeden CPU enthaltene Bit. Ist dieses Bit in einen ersten Zustand versetzt, so wird die betreffende CPU12dadurch als Primäre CPU gekennzeichnet, und umgekehrt muss bei der anderen CPU12dasselbe Konfigurationsbit in einen umgekehrten Zustand gesetzt sein, um anzuzeigen, dass es sich um die "Zweit-CPU" handelt. Diese Bits werden im Zuge der Divergenzhandhabung in jenen Fällen verwendet, um eine der CPUs auszuwählen, die den Betrieb fortsetzt, in denen die CPUs auf andere Weise nicht imstande sind, diese Bestimmung vorzunehmen. Es sei hier angemerkt, dass in allen Fällen, in denen der lokale Router keine Fehler meldet, die CPU das Fällen einer diesbezüglichen Entscheidung verzögert. Damit wird der Möglichkeit Rechnung getragen, dass die andere CPU Fehler erkennt und einer Selbstprüfung unterzieht, und dass der lokale Router in der Folge das Aussetzen der Haltesymbole erkennt und den Fehler in Form eines OLB-Symbols an die lokale CPU meldet.Table 7 lists the five possible states that can be recognized or reported by a CPU and on the basis of which a CPU can determine what to do if a divergence message occurs. The term "local" used in Table 7 is intended to refer to the router14A.14Bwhich is in the same subprocessor system10A.10Bhow the CPU is included. For example, referring to1A, the router14Athe "local" router in relation to the CPU12A, but the "remote" router in relation to the CPU12B, The "primary" used in Table 7 refers to the tie break bit already mentioned above: that in one of the configuration registers74the interface unit24(5) of each CPU contained bit. If this bit is set to a first state, the CPU concerned becomes12thereby marked as the primary CPU, and vice versa for the other CPU12the same configuration bit is set to an inverted state to indicate that it is the "second CPU". These bits are used in the course of divergence handling in those cases to select one of the CPUs that will continue to operate where the CPUs are otherwise unable to make this determination. It should be noted here that in all cases in which the local router reports no errors, the CPU delays making a decision in this regard. This takes into account the possibility that the other CPU detects errors and subjects them to a self-check, and that the local router subsequently recognizes the suspend symbols and reports the error to the local CPU in the form of an OLB symbol.

    Die Bemerkung "Beliebiger Zustand" bedeutet lediglich, dass ungeachtet des Meldezustands (Meldung eines Fehlers oder keine Fehlermeldung) seitens des entfernten Routers, die lokale CPU jene Aktion setzt, die unter dem Titel "Aktion der Lokalen CPU" angeführt ist.The remark "Any condition" only means that regardless of the status of the message (message from a Error or no error message) from the remote router, the local CPU takes the action that is called "Action of the Local CPU " is.

    Die Bemerkung "Aktion der Lokalen CPU" bezeichnet die von einer bestimmten der CPUs12A,12Bzu setzenden Aktion, wenn die auf diese bestimmte CPU die in einer der Reihen der Tabelle angeführten Bedingungen zutreffen. Wenn zum Beispiel die in Reihe4angeführten Bedingungen auf die CPU12Azutreffen (der Router14Ahat einen Fehler gemeldet, bzw. die CPU12Ahat einen Fehler erkannt), so entscheidet die CPU12A, dass sie ihren Betrieb zu Gunsten der anderen CPU des duplexbetriebenen CPU-Paars abbricht und somit der CPU12Bermöglicht, ihren Betrieb fortzusetzen. Umgekehrt geben die Bedingungen der Reihe4an, dass die andere CPU12Bvon ihrem "entfernten" Router (dem Router14A) ein OLB-Symbol empfangen hat, mit welchem ihr die Tatsache gemeldet wurde, dass der Kommunikationspfad zwischen dem Router14Aund der CPU12Afehlerverdächtig ist. Aus der Sicht der CPU12Bhandelt es sich hierbei um die Bedingung, die in der Reihe3oder5ausgedrückt wird. Hat nur einer der Router14A,14Beinen Fehler entdeckt (in diesem Fall der Router14A), so wird der CPU12Beine in Reihe3angeführte Meldung vorgelegt. Für den Fall, dass beide Router14A,14Beinen Fehler erkennen, meldet ein jeder ein TLB an die CPU12Aund ein OLB an die CPU12B. Die CPU12Bnimmt das von dem Router14Bkommende OLB zur Kenntnis, setzt es mit der Bedingung aus Reihe5in Verbindung, gibt ein IOY-Symbol an den Router14Baus und setzt ihren Betrieb fort.The remark "action of the local CPU" denotes that of a specific one of the CPUs12A.12BAction to be taken if the CPU specified for this particular CPU meets the conditions specified in one of the rows in the table. If, for example, those in series4conditions mentioned on the CPU12Aapply (the router14Ahas reported an error or the CPU12Ahas detected an error), the CPU decides12Athat it stops operating in favor of the other CPU of the duplex-operated CPU pair and thus the CPU12Ballows you to continue operating. Conversely, the conditions give the turn4that the other CPU12Bfrom your "remote" router (the router14A) received an OLB symbol, which was used to report the fact that the communication path between the router14Aand the CPU12Ais suspect. From the perspective of the CPU12Bthis is the condition in the series3or5is expressed. Has only one of the routers14A.14Bdiscovered an error (in this case the router14A), so the CPU12Bone in a row3submitted message presented. In case both routers14A.14Bdetect an error, everyone reports a TLB to the CPU12Aand an OLB to the CPU12B, The CPU12Btakes that from the router14Bcoming OLB to knowledge, it sets with the condition from series5connected, gives an IOY symbol to the router14Band continues to operate.

    Zu beachten ist hier, dass die Reihen4und5der Tabelle 7 Anlass zu einigen Problemen geben könnten. Wenn zum Beispiel der Router14Aein TLB an die CPU12Ameldete und der Router14Bein TLB an die CPU12Bmeldete, so würden beide CPUs sich selbst ausser Gefecht setzen (einfrieren). Wenn jedoch angenommen wird, dass zu einer gegebenen Zeit immer nur höchstens ein Fehler auftritt, so dass es nicht zu einem Zustand kommen kann, in welchem beide lokalen Router Fehler entwickeln, was keineswegs eine ungewöhnliche Annahme darstellt, so sind die Bedingungen der Tabelle annehmbar. Andererseits ist es nicht erforderlich, dass das System am Laufen gehalten wird, wenn Mehrfachfehler an mehr als einem Link zwischen den Routern14und den CPUs12auftreten. In ähnlicher Weise könnte es auch passieren, dass wenn beide Router OLBs an ihre lokalen CPUs melden, beide CPUs versuchen, den Betrieb im Alleingang fortzusetzen. Dies würde auf einen Taktgabefehler schliessen lassen. Die Taktschaltungen sollten solche Fehler erkennen und die fehlerbehaftete CPU einfrieren.It should be noted here that the rows4and5Table 7 could give rise to some problems. If for example the router14Aa TLB to the CPU12Areported and the router14Ba TLB to the CPU12Breported, both CPUs would put themselves out of action (freeze). However, if it is assumed that at most one error occurs at a time, so that there cannot be a condition in which both local routers develop errors, which is by no means an unusual assumption, the conditions of the table are acceptable. On the other hand, it is not necessary for the system to be kept running if there are multiple errors on more than one link between the routers14and the CPUs12occur. Similarly, if both routers report OLBs to their local CPUs, both CPUs may try to continue operating on their own. This would indicate a timing error. The clock circuits should detect such errors and freeze the faulty CPU.

    Die Tabelle 7 stellt daher jene Fehlerangaben dar, die von den CPUs12und den Routern14A,14Berkannt werden können. Generell verhält es sich so, dass wenn eine CPU12von ihrem lokalen Router eine Fehlermeldung empfängt, diese ihren Betrieb zu Gunsten der anderen abbricht und es so der anderen des CPU-Paars ermöglicht, den Betrieb fortzusetzen.Table 7 therefore shows the error information from the CPUs12and the routers14A.14Bcan be recognized. Generally, when a CPU12receives an error message from its local router, which stops its operation in favor of the others and thus enables the other of the CPU pair to continue operation.

    Auf die Bezeichnungen Primäre CPU und Zweit-CPU muss nur dann zurückgegriffen werden, wenn keine der CPUs bei Ablauf ihres jeweiligen Zeitgebers (der zum Zeitpunkt des Empfangs des DVRG-Befehlssymbols gestartet wurde) eine wie auch immer geartete Fehlermeldung empfangen hat. In diesem Fall fällt die Entscheidung durch den Rückgriff auf das primäre Konfigurationsbit einer jeden CPU. Die als Primäre CPU bezeichnete CPU setzt den Betrieb fort und nimmt an, dass die andere abgebrochen hat.On the names Primary CPU and Second CPU only has to be used if none of the CPUs expire when their respective timers expire (which started when the DVRG command symbol was received has received an error message of whatever kind. In this case, falls the decision by recourse on the primary Configuration bit of every CPU. The CPU referred to as the primary CPU sets continues operating and assumes that the other has terminated.

    Auf diese Weise treffen die CPUs12eine Entscheidung (Schritt 1008) wer den Betrieb fortsetzt und wer nicht und gehen anschliessend zu Schritt 1012 über, in welchem eine CPU gemäss der in einem der Schritte 1006, 1010 getroffenen Entscheidung ihren Betrieb abbricht.This is how the CPUs hit12a decision (step 1008) who continues the operation and who does not and then go to step 1012, in which a CPU stops its operation in accordance with the decision made in one of the steps 1006, 1010.

    Die CPU12, welche den Betrieb abbricht, tut dies indem sie eine Selbstprüfung einleitet und anschliessend einfriert. Die CPU, welche den Betrieb fortsetzt, sendet ein IOY-Symbol ('Ich bin dir übergeordnet') an die Router14A,14B, um sie zu informieren, dass die Router sich nur an der CPU orientieren sollen, die den Betrieb fortsetzt, und sämtliche Übertragungen seitens der anderen CPU ignorieren sollen. Als Reaktion darauf ändern die in der Steuer- und Zustandseinheit509(19A) enthaltenen Ablaufsteuereinheiten (nicht dargestellt) die weiter oben beschriebenen "primären" Bits entsprechend ab.The CPU12, which terminates the business, does this by initiating a self-check and then freezing it. The CPU, which continues to operate, sends an IOY symbol ('I am superior to you') to the router14A.14Bto inform them that the routers should only focus on the CPU that is continuing to operate and should ignore all transmissions from the other CPU. In response to that change in the control and status unit509(19A) contain sequential control units (not shown) from the "primary" bits described above.

    Einige Beispiele sollen in folgenden das Konzept der Divergenz verdeutlichen. Unter erneuter Bezugnahme auf1Asei angenommen, dass die CPUs12A,12Bim Duplex-Betriebsmodus arbeiten, und dass bei der CPU12Aein Fehler auftritt, so dass alle nachfolgenden E/A-Operationen sich von jenen der CPU12Bunterscheiden. Demgemäss wird anlässlich der nächsten E/A-Übertragung einer der Router14A,14B(und zwar der, an den Daten adressiert sind, bzw. beide, falls die CPU12AE/A-Daten fehlerbedingt an einen anderen Bestimmungsort adressiert als jenen der CPU128) eine Divergenz erkennen. Sie warten jedoch ab, wie oben erwähnt, bis das gesamte Paket empfangen ist, um zu bestimmen ob die CRC-Prüfung des vorliegenden Nachrichtenpakets erfolgreich ist, oder bis irgendwelche einfache Fehler auftreten, woraufhin jeder Router ein DVRG-Symbol auf beiden Links L überträgt. Angenommen beide Router treffen auf Protokollfehler. Erkannte Protokollfehler führen umgehend dazu, dass die Router14A,14Bein DVRG-Symbol an beide CPUs12senden, und ein 'Link schlecht'-Symbol (TLB-Symbol) auf die Links L zurücksenden, auf denen die Fehler erkannt wurden, d. h. die Links Lx, Ly, welche jeweils die Router14A,14Bmit der CPU12Averbinden. Zur selben Zeit, zu der sie das TLB-Symbol senden, senden beide Router14A,14B'Anderes Link schlecht'-Symbole (OLB-Symbole) an die CPU12B. Bei Empfang des DVRG-Symbols reflektiert die CPU12Adieses Symbol an die Router14A,14Bzurück, startet ihren internen Divergenzprozess-Zeitgeber, und beginnt mit der Bestimmung ob ihr Betrieb fortgesetzt oder abgebrochen werden soll. Da sie ein TLB-Symbol von ihrem lokalen Router14Aempfangen hat, entscheidet die CPU12Aunverzüglich, dass sie ihren Betrieb zugunsten der CPU12Babbrechen muss, welche dadurch ihrerseits ihren Betrieb fortsetzen kann (Reihe4, Tabelle 7).Some examples are intended to illustrate the concept of divergence in the following. Referring again to1Aassume that the CPUs12A.12Bwork in duplex mode, and that with the CPU12Aan error occurs so that all subsequent I / O operations differ from those of the CPU12Bdiffer. Accordingly, one of the routers will become available on the next I / O transfer14A.14B(namely the one to which data is addressed, or both if the CPU12ADue to errors, I / O data is addressed to a different destination than that of the CPU128) detect a divergence. However, as mentioned above, you wait until the entire packet is received to determine whether the CRC check of the present message packet is successful or until any simple errors occur, whereupon each router transmits a DVRG symbol on both links L. Suppose both routers encounter protocol errors. Detected protocol errors immediately lead to the router14A.14Ba DVRG symbol on both CPUs12send, and send back a 'link bad' symbol (TLB symbol) to the links L on which the errors were detected, ie the links Lx, Ly, which are the routers14A.14Bwith the CPU12Aconnect. Both routers are transmitting at the same time that they are sending the TLB symbol14A.14B 'Another link bad 'symbols (OLB symbols) to the CPU12B, The CPU reflects when the DVRG symbol is received12Athis icon to the router14A.14Bback, starts its internal divergence process timer, and begins determining whether to continue or abort its operation. Since they have a TLB symbol from their local router14Areceived, the CPU decides12Aimmediately that they are operating in favor of the CPU12Bmust terminate, which in turn can continue its operation (row4, Table 7).

    Gemäss diesem Szenario hat die CPU12Bweiterhin von beiden Routern14A,14BOLB-Symbole empfangen und auf Grund dieser Meldungen entschieden, dass sie jene CPU ist, die den Betrieb fortsetzen soll. Demgemäss sendet sie ein I0Y-Symbol an beide Router14A,14B. In Reaktion darauf konfigurieren sich die Router entsprechend, so dass Paketübertragungen nur mehr in Verbindung mit der CPU12Bdurchgeführt werden und jedwede von der CPU12Akommenden Übertragungen ignoriert werden.According to this scenario, the CPU12Bcontinue from both routers14A.14BOLB symbols received and on the basis of these messages decided that it is the CPU that is to continue operating. Accordingly, it sends an I0Y symbol to both routers14A.14B, In response, the routers configure themselves accordingly, so that packet transfers are only possible in connection with the CPU12Bbe performed and any by the CPU12Aupcoming transmissions are ignored.

    Die Divergenzerkennung kann auch einen fehlerbehafteten Router erkennen. Angenommen zum Beispiel der Router14Aist mit einen Fehler behaftet, welcher bewirkt, dass der Router divergierende Aktionen ausführt, die wiederum zur Folge haben, dass die beiden CPUs12A,12Bein divergierendes Verhalten aufweisen. Der funktionstüchtige Router, d. h. der Router14B, erkennt diese Divergenz und meldet sie mit einem DVRG-Symbol an eine jede der CPUs. Jede CPU reflektiert das DVRG-Symbol an beide Router14A,14Bzurück. Je nach Art des vorliegenden Fehlers reflektiert der Router14Adas DVRG-Symbol an die CPUs zurück oder auch nicht. Die CPU12Abemerkt das Vorhandensein von Fehlern auf ihrem lokalen Link, welcher sie mit dem fehlerbehafteten Router14Averbindet, und entscheidet demgemäss, dass sie eine Selbstprüfung durchführen und den Betrieb abbrechen muss. Umgekehrt erkennt der Router14Bdiesen Betriebsabbruch und gibt ein TLB-Symbol an die CPU12Aund ein OLB-Symbol an die CPU12Bzurück. Die CPU12Bgibt daraufhin ein I0Y-Befehlssymbol an beide Router aus.The divergence detection can also detect a faulty router. For example, suppose the router14Ahas an error that causes the router to perform divergent actions, which in turn means that the two CPUs12A.12Bshow divergent behavior. The functional router, ie the router14B, detects this divergence and reports it to each of the CPUs with a DVRG symbol. Each CPU reflects the DVRG symbol on both routers14A.14Bback. The router reflects depending on the type of error14Athe DVRG symbol back to the CPUs or not. The CPU12Anotices the presence of errors on their local link, which links them to the failed router14Aconnects, and accordingly decides that they must carry out a self-check and stop operations. Conversely, the router detects14Bthis operation abort and gives a TLB symbol to the CPU12Aand an OLB symbol to the CPU12Bback. The CPU12Bthereupon an I0Y command symbol to both routers.

    Bei der oben beschriebenen Divergenz handelte es sich um eine "saubere" Divergenz, bei welcher der eine oder andere Router14A,14Boder auch beide eine Divergenz erkennen und ein DVRG-Symbol an die CPUs ausgeben, bei der jedoch weder die CPUs12A,12B, noch die Router14A,14Birgendeinen Fehler erkennen. Demgemäss entscheidet die "primäre" CPU, die zuvor während der Initialisierung in den Konfigurationsregistern als solche festgelegt worden ist, dass sie den Betrieb fortsetzen und ein IOY-Symbol an beide Router14A,14Bausgeben muss. Zur selben Zeit führt die "Zweit"-CPU eine Selbstprüfung durch und bricht anschliessend ihren Betrieb ab.The divergence described above was a "clean" divergence, in which one or the other router14A.14Bor both recognize a divergence and output a DVRG symbol to the CPUs, but neither the CPUs12A.12B, nor the router14A.14Brecognize any mistake. Accordingly, the "primary" CPU, which was previously set as such in the configuration registers during initialization, decides to continue operation and an IOY symbol to both routers14A.14Bmust spend. At the same time, the "second" CPU performs a self-check and then stops operating.

    Neben den weiter oben beschriebenen sind unter anderem auch die folgenden Arten von Fehlern und Störungen als Ursachen von Divergenzen in Betracht zu ziehen:In addition to those described above include the following types of errors and malfunctions as well Consider causes of divergence:

    • – Unkorrigierbare Speicherfehler, die dazu führen, dass die CPU sofort den Betrieb einfriert, um eine möglichen Ausbreitung des Fehlers zu verhindern. Für die Router14A,14Berscheint die CPU stromlos, wodurch sie veranlasst werden, ein TLB-Symbol an die fehlerbehaftete CPU und ein OLB-Symbol an die andere (in Betrieb befindliche) CPU zu senden. Die in Betrieb befindliche CPU entscheidet, dass sie ihren Betrieb fortsetzen muss und sendet jeweils ein IOY-Symbol an beide Router14A,14B.- Incorrectable memory errors that cause the CPU to freeze operation immediately to prevent the error from spreading. For the router14A.14BThe CPU will appear dead, whereby they are caused to a TLB symbol to the faulty CPU, and an OLB symbol to the other (working located) CPU to send. The operating CPU decides that it must continue operating and sends an IOY symbol to both routers14A.14B,
    • – Ein Softwarefehler, der zum Auftreten einer Divergenz zwischen den CPUs12führt, wobei allerdings keine Fehlermeldungen ausgegeben werden. Dazu kann es nur kommen, wenn Software (welche auf den Prozessoren20läuft) bekannte, divergierende Daten verwendet, um den Zustand zu wechseln. Angenommen zum Beispiel jede CPU12hat eine unterschiedliche Seriennummer (die z. B. in einem Nur-Lese-Bereich bzw. in einem programmierbaren Nur-Lese-Bereich des Adressraums aufbewahrt ist). Die Seriennummer der CPU12Aunterscheidet sich von jener der CPU12B. Wenn nun die Prozessoren die Seriennummer dazu verwenden, um die Folge der auszuführenden Befehle zu verändern (etwa durch Verzweigen, wenn die Seriennummer nach einem bestimmten Wert kommt), oder um den in einem Prozessorregister enthaltenen Wert zu modifizieren, so unterscheidet sich der gesamte "Zustand" der einzelnen CPUs12voneinander. In solchen Fällen kommen die Mechanismen zur Handhabung asymmetrischer Variablen (z. B. der Soft-Vote-Mechanismus) zur Anwendung. Dadurch ist es den beiden CPUs12möglich, Informationen auszutauschen, so dass diese basierend auf identischen Daten identische Entscheidungen treffen und identische Operationen ausführen können. In diesem Beispiel würden die CPUs die Werte ihrer Seriennummern austauschen, so dass beide über eine Kopie verfügen. Sie könnten dann Code ausführen für "Wenn die Seriennummer der CPU12Anach einem bestimmten Wert kommt, dann führe diese Sequenz aus", usw. Durch die Vorkonfiguration und die schlussendlich erfolgende Auswahl einer primären CPU wird es für eine CPU, und somit für das System10möglich, ohne Softwareintervention den Verarbeitungsbetrieb fortzusetzen.- A software bug that causes divergence between CPUs12leads, but no error messages are issued. This can only happen if software (which is on the processors20running) known, divergent data used to change the state. For example, suppose every CPU12has a different serial number (e.g. stored in a read-only area or in a programmable read-only area of the address space). The serial number of the CPU12Adiffers from that of the CPU12B, If the processors now use the serial number to change the sequence of the instructions to be executed (for example by branching if the serial number comes after a specific value) or to modify the value contained in a processor register, the overall "state" differs "of the individual CPUs12from each other. In such cases, the mechanisms for handling asymmetrical variables (e.g. the soft vote mechanism) are used. This makes it the two CPUs12possible to exchange information so that they can make identical decisions and perform identical operations based on identical data. In this example, the CPUs would exchange the values of their serial numbers so that both have a copy. You could then run code for "If the CPU serial number12Acomes after a certain value, then execute this sequence ", etc. Due to the preconfiguration and the final selection of a primary CPU, it becomes a CPU and thus the system10possible to continue processing without software intervention.
    • – Ein Fehler am Ausgang der Schnittstelleneinheit24einer CPU12wird von dem Router14A,14B, je nachdem an bzw. auf welchem Link L der Fehler auftritt, als Divergenz erkannt, und ein TLB/OLB-Zustand wird im Anschluss an das DVRG-Symbol an die CPUs zurückgegeben. CRC-Fehler und Befehlssymbolkorruptionen werden in ähnlicher Weise erkannt und gehandhabt.- An error at the output of the interface unit24a CPU12is from the router14A.14B, depending on or on which link L the error occurs, is recognized as divergence, and a TLB / OLB state is returned to the CPUs following the DVRG symbol. CRC errors and command symbol corruptions are recognized and handled in a similar manner.
    • – Ein Fehler am Ausgang eines Routers14A,14B, welcher an eine CPU12angeschlossen ist, wird von der Schnittstelleneinheit24der betreffenden CPU erkannt. Die CPU sendet ein TLB-Symbol an den fehlerbehafteten Router14, welches von diesem Router als Divergenz erkannt wird, der daraufhin die Divergenzbehandlungsroutine aus31einleitet. Die CPU, die den Fehler erkannt hat, beendet ihren Betrieb, und die CPU, die ihren Betrieb fortsetzt, sendet IOY-Symbole an beide Router.- An error at the output of a router14A.14Bwhich is connected to a CPU12is connected by the interface unit24of the CPU concerned. The CPU sends a TLB symbol to the faulty router14, which is recognized by this router as divergence, which then executes the divergence handling routine31initiates. The CPU that detected the error stops operating, and the CPU that continues operating sends IOY symbols to both routers.

    Die Divergenz ermöglicht es dem System10(1A), wenn es im Duplex-Betriebsmodus betrieben wird, ein mögliches Versagen zu erkennen, und ohne äusseres Zutun und in für den Systembenutzer transparenter Weise die fehlerbehaftete Einheit (die CPU12Abzw. 12B oder den Router14Abzw. 14B) aus dem System zu entfernen, um die Ausbreitung von Fehlern auf das System zu verhindern bzw. zu begrenzen, und zwar ohne dass dadurch ein Benutzer seine Operationen zu stoppen braucht. Ist es eine CPU12, die von dem Fehler betroffen war, so kann die CPU aus dem System genommen und durch eine geprüfte, funktionierende CPU ersetzt werden. Wie dieses Ersatzelement in das System integriert und in Duplexbetrieb versetzt wird, soll Gegenstand des folgenden Abschnitts: Reintegration.The divergence enables the system10(1A), if it is operated in the duplex operating mode, to detect a possible failure and, without external action and in a manner transparent to the system user, the defective unit (the CPU12Aor 12B or the router14Aor 14B) from the system in order to prevent or limit the spread of errors onto the system, without a user having to stop his operations. Is it a CPU12that was affected by the error, the CPU can be removed from the system and replaced by a tested, functioning CPU. How this replacement element is integrated into the system and put into duplex operation is the subject of the following section: Reintegration.

    Reintegration:reintegration:

    Überblick:Overview:

    Dieser Abschnitt beschreibt die Verfahrensweise, die angewendet wird, um zwei CPUs12durch "Reintegration" in im Gleichschritt laufenden Duplex-Betriebsmodus zu versetzen. Die Abhandlung bezieht sich auf die CPUs12A,12B, die Router14A,14B, und die Instandhaltungsprozessoren18A,18B, welche – wie gezeigt – Teil des in1Averanschaulichten Verarbeitungssystems10sind. Darüber hinaus wird in der Abhandlung auf die Prozessoren20a,20b, die Schnittstelleneinheiten24a,24bund die Speichersteuerungen26a,26b(2) der CPUs12A,12Bals einzelne Einheiten Bezug genommen, da dies ihrer Funktionsweise entspricht.This section describes the procedure that is applied to two CPUs12to be put into "duplex" operating mode by "reintegration". The treatise relates to the CPUs12A.12Bwho have favourited Routers14A.14B, and the maintenance processors18A.18Bwhich - how shown - part of the in1Aillustrated processing system10are. In addition, in the treatise on processors20a.20b, the interface units24a.24band the memory controls26a.26b(2) of the CPUs12A.12Breferred to as individual units, since this corresponds to their mode of operation.

    Die Reintegration wird dazu verwendet, um zwei CPUs anlässlich ihrer erstmaligen Integration in das Leitungssystem, oder nachdem sie für eine gewisse Zeit im Simplexmodus betrieben worden sind, oder nachdem ein vorgängiger Duplexbetrieb des Systems10zu einer Divergenz geführt hat und das fehlerbehaftete Element (z. B. eine der CPUs) entfernt und ersetzt worden ist, in den Duplexbetrieb zu versetzten.The reintegration is used to connect two CPUs on the occasion of their first integration into the line system, or after they have been operated in simplex mode for a certain time, or after a previous duplex operation of the system10has led to a divergence and the defective element (e.g. one of the CPUs) has been removed and replaced, to put it into duplex mode.

    Die Reintegration muss mit einer der CPUs12beginnen, die sich noch in Betrieb (d. h. in einem Online-Zustand) befindet und mit grösster Wahrscheinlichkeit Benutzeranwendungen ausführt, da die Reintegration im Hintergrund und ohne äusseres Zutun erfolgt und daher im wesentlichen in einer für den Benutzer transparenten Weise abläuft. Die andere CPU12befindet sich insofern im Offline-Zustand als sie keinen Benutzercode ausführt; sie führt eine ausreichende Codemenge aus, welche es ihr ermöglicht, die erforderlichen Mindestaufgaben für ihre Initialisierung und Reintegration auszuführen. Diese Initialisierung beinhaltet das Versetzen eines CPU-Paars12in einen virtuell identischen Zustand für den Duplex-Betriebsmodus, so dass diese in der Lage sind, dieselben Befehle identischer Befehlsströme virtuell zur selben Zeit auszuführen und folglich dieselben Aktionen zu setzen. Die Reintegration hat auch zur Folge, dass die Router14A,14Bfür den Duplex-Betriebsmodus konfiguriert werden, so dass eine Divergenzerkennung implementiert werden kann und der für die CPUs12bestimmte Nachrichtenverkehr an beide der gepaarten CPUs virtuell zur selben Zeit ausgeliefert wird.Reintegration must be done with one of the CPUs12begin, which is still in operation (ie in an online state) and is most likely to execute user applications, since the reintegration takes place in the background and without external intervention and therefore essentially takes place in a manner which is transparent to the user. The other CPU12is offline in that it does not execute a user code; it executes a sufficient amount of code that enables it to carry out the minimum tasks required for its initialization and reintegration. This initialization involves moving a CPU pair12into a virtually identical state for the duplex mode of operation so that they are able to virtually execute the same commands from identical command streams at the same time and consequently take the same actions. The reintegration also results in the router14A.14Bbe configured for the duplex operating mode so that divergence detection can be implemented and that for the CPUs12certain message traffic is delivered to both of the paired CPUs virtually at the same time.

    Als wesentliche Prozessschritte für den Wechsel von einem Simplex-Betriebsmodus der einen Online-CPU in den Duplex-Betriebsmodus zweier CPUs, welche in etwas detaillierterer Form durch die Flussdiagramme der33A–33Dskizziert sind, sind die folgenden zu nennen:As essential process steps for the change from a simplex operating mode of one online CPU to the duplex operating mode of two CPUs, which are described in somewhat more detail by the flowcharts of the33A-33DThe following are to be mentioned:

    • 1. Das Einrichten und Synchronisieren der beiden CPUs (die eine online, die andere offline) und der an sie angeschlossenen Router in Form eines verzögerten ("schatten-")frequenzsynchronisierten Duplex-Betriebsmodus, wobei unterschiedliche Befehlsströme abgearbeitet werden;1. Setting up and synchronizing the two CPUs (the one online, the other offline) and the one connected to it Router in the form of a delayed ("shadow -") frequency-synchronized duplex mode, where different streams of commands be processed;
    • 2. Das Kopieren des Speichers der Online-CPU in die Offline-CPU, und zwar unter Wahrung eines Nachlaufprozesses, welcher Änderungen in dem Speicher der Online-CPU überwacht, die noch nicht erfolgt sind und unter Umständen noch in die Offline-CPU hinüberkopiert werden müssen;2. Copying the memory of the online CPU into the offline CPU, while maintaining a follow-up process, which changes monitored in the memory of the online CPU, which have not yet taken place and may still be in the offline CPU copied over Need to become;
    • 3. Das Einrichten und das Synchronisieren der CPUs, so dass diese in einem verzögerten (untergeordneten) Duplexmodus betrieben werden, und zwar basierend auf demselben Befehlsstrom (im Gleichschritt laufender Betrieb);3. Setting up and synchronizing the CPUs so that this in a delayed (subordinate) duplex mode can be operated, based on the same command stream (operation in sync);
    • 4. Das Kopieren sämtlicher verbleibender Speicherorte von der Online-CPU in die Offline-CPU (In diesem Schritt wird jeder Speicherort des Online-Speichers gelesen, es werden jedoch nur jene Speicherorte kopiert, von denen anzunehmen ist, dass sie sich von jenen der Offline-CPU unterscheiden, und zwar so lange bis der gesamte Speicher ausgelesen worden ist.); und4. The copying of all remaining locations from the online CPU to the offline CPU (In this step, every location of the online storage is read, however, only those locations are copied from which to assume is that they are different from those of the offline CPU, and until the entire memory has been read out.); and
    • 5. Das Einleiten eines vollständig im Gleichschritt laufenden Duplexbetriebs der beiden CPUs.5. The initiation of a completely in step Duplex operation of the two CPUs.

    SetupSet up

    Im folgenden wird auf33ABezug genommen, wobei bevor das Reintegrationsverfahren an sich in Angriff genommen wird, die CPUs12A,12Bund ihre Primärleitungsrouter (d. h. jene, die unmittelbar an die CPUs angeschlossen sind) eingerichtet werden müssen. Dies macht die Verwendung des IP 18A erforderlich. Bei Schritt 1050 schreibt der IP 18A die vorherbestimmten Register (nicht dargestellt) der Steuerregister74in den Schnittstelleneinheiten24der CPUs12Aund12Bin einen nächsten Zustand (nach einer Soft-Operation), in welchem, obwohl sich die beiden CPUs in einem frequenzsynchronisierten Modus befinden, eine (die Offline-CPU) in verzögerter Weise, bzw. im "Schatten" der anderen betrieben wird und eine Anzahl von (z. B. 8) Taktzyklen hinter der anderen nachgeht. Dieser Betriebsmodus der CPUs und der Router wird im folgenden als "Schattenmodus" bezeichnet. Die Konfigurationsregister (nicht dargestellt) der Routen werden in Schritt 1052 in ähnlicher Weise von dem IP 18A gesetzt. Ausserdem wird von dem IP 18A ein Konfigurationsregister entsprechend beschrieben, um die Online-CPU12Adem Router14A,14Bgegenüber als "bevorzugte" CPU zu kennzeichnen. Das hat zur Folge, dass die Router14A,14B, wenn sie sich im Schattenmodus befinden, sich ausschliesslich auf die CPU12Ahin orientieren, was den Empfang von Übertragungen betrifft und alle Übertragungen, welche von der Offline-CPU12Bkommen, ignoriert.The following is on33AReferenced, before starting the reintegration process itself, the CPUs12A.12Band their primary line routers (that is, those directly connected to the CPUs) must be set up. This requires the use of the IP 18A. At step 1050, the IP 18A writes the predetermined registers (not shown) of the control registers74in the interface units24of CPUs12Aand12Bin a next state (after a soft operation) in which, although the two CPUs are in a frequency-synchronized mode, one (the offline CPU) is operated in a delayed manner or in the "shadow" of the other and a number of (e.g. 8) clock cycles after the other. This operating mode of the CPUs and the router is referred to below as "shadow mode". The configuration registers (not shown) of the routes are similarly set by the IP 18A in step 1052. In addition, the IP 18A writes a configuration register to the online CPU12Athe router14A.14Bto be marked as a "preferred" CPU. As a result, the router14A.14B, if they are in shadow mode, only on the CPU12Aorientate as to the reception of transmissions and all transmissions by the offline CPU12Bcome ignored.

    Als nächstes folgt eine Reihe von Schritten (Schritte 1060–1070), in denen die Taktsynchronisierungs-FIFOs der CPUs12A,12Bund der Router14A,14Bin im grossen und ganzen derselben Weise wie weiter oben beschrieben synchronisiert werden und daraufhin in einen Schattenbetriebszustand versetzt werden. Der Schattenbetriebszustand ist ein Zustand, in welchem die beiden CPUs12A,12Bdieselben Nachrichtenpakete und anderen TNet-Symbole von den Routern14A,14Bempfangen, in mehr oder weniger derselben Art, wie dies auch beim echten Duplex-Betriebsmodus der Fall ist, ausser dass Übertragungen, die an die Offline-CPU12Bgesendet werden, Symbol für Symbol um eine Anzahl von (z. B. acht) S_Tkt-Takten hinter jenen liegen, die an die Online-CPU12Agesendet werden. Das bedeutet, dass ein Symbol, das von einem der Routen14A,14Bübertragen wird, von der Online-CPU12Aum acht S Tkt-Takte früher empfangen werden als dasselbe Symbol von der Offline-CPU12Bempfangen wird.Next follows a series of steps (steps 1060-1070) in which the clock synchronization FIFOs of the CPUs12A.12Band the router14A.14Bare synchronized in broadly the same manner as described above and are then placed in a shadow mode. The shadow mode is a state in which the two CPUs12A.12Bthe same message packets and other TNet symbols from the routers14A.14Breceived, in more or less the same way as in the true duplex mode, except that transmissions sent to the off line CPU12Bare sent, symbol by symbol, by a number of (e.g. eight) S_Tkt cycles behind those sent to the online CPU12Abe sent. That means a symbol from one of the routes14A.14Bis transferred from the online CPU12Areceived by eight S tkt clocks earlier than the same symbol from the offline CPU12BWill be received.

    Die Schritte 1060 und 1062 führen im wesentlichen dieselben Schritte des Synchronisierens der Taktsynchronisierungs-FIFOs aus, die weiter oben in Verbindung mit der Abhandlung der31A,31Bbeschrieben worden sind. Die Online-CPU12Asendet eine Sequenz bestehend aus einem SCHLAFEN-Symbol; einem eigenadressierten Nachrichtenpaket und einem SYNC-Symbol, welches zusammen mit dem SYNC-TKT-Signal dazu dient, die CPUs und die Router zu synchronisieren. Nachdem sie auf diese Weise synchronisiert ist, sendet die CPU12Adann in Schritt 1066 ein Soft-Reset-Befehlssymbol (SRST-Symbol), welches bewirkt, dass als erstes die Router in den nächsten Zustand gebracht werden, der in Schritt 1052 von dem IP 18A festgelegt wurde. Die Router14A,14Bbefinden sich nun in verzögertem Duplexmodus, so dass der gesamte Datenverkehr, der zu der Online-CPU12Ageleitet wird, dupliziert und auch an die Offline-CPU12Bgeleitet wird, allerdings um 8 Takte nach hinten versetzt in Bezug auf die Online-CPU12A. Ausserdem werden die Router14A,14Bentsprechend eingestellt, so dass sie sich ausschliesslich auf die CPU12Ahin orientieren, was den Empfang von Nachrichtenpaketen betrifft und alle Übertragungen, welche von der Offline-CPU12Bkommen, ignoriertSteps 1060 and 1062 perform essentially the same steps of synchronizing the clock synchronization FIFOs as described above in connection with the discussion of FIG31A.31Bhave been described. The online CPU12Asends a sequence consisting of a SLEEP symbol; a self-addressed message packet and a SYNC symbol, which together with the SYNC-TKT signal serves to synchronize the CPUs and the routers. After being synchronized in this way, the CPU sends12Athen in step 1066 a soft reset command symbol (SRST symbol) which causes the routers to be first brought to the next state that was set by the IP 18A in step 1052. The routers14A.14Bare now in delayed duplex mode, so all traffic to the online CPU12Ais duplicated and also to the offline CPU12Bis routed, but offset by 8 bars in relation to the online CPU12A, In addition, the router14A.14Bset accordingly, so that they only refer to the CPU12Aorientate as to the receipt of message packets and all transmissions by the offline CPU12Bcome ignored

    Das SRST-Symbol wird an die CPUs12A,12Bzurück reflektiert (wobei das SRST-Symbol um 8 Takte später bei der Offline-CPU12Beintrifft). Mit dessen Empfang durch die CPUs12A,12Bwerden die CPUs in den nächsten von dem IP 18A festgelegten Betriebszustand gesetzt: den Schattenmodus.The SRST symbol is sent to the CPUs12A.12Breflected back (with the SRST symbol 8 bars later on the offline CPU12Barrives). With its receipt by the CPUs12A.12Bthe CPUs are set to the next operating state defined by the IP 18A: the shadow mode.

    Die Prozedur geht nun zu Schritt 1080 über (33B), um die Überwachung von Speicher und Zustand einzurichten (z. B. Register, Cachespeicher, etc.), welche durchgeführt wird, während der Speicher von der Online-CPU12Ain die Offline-CPU12Bhinüberkopiert wird. Der Schritt des Kopierens des Zustands der Online-CPU in die Offline-CPU könnte einfach dadurch erfolgen, dass alle laufenden Operationen der Online-CPU gestoppt werden, dass der Zustand aller Konfigurationsregister und Steuerregister (z. B. die Konfigurationsregister74der Schnittstelleneinheiten24), der Cachespeicher und dergleichen in den Speicher28der Online-CPU geschrieben werden, dass der gesamte Inhalt des Speichers28der Online-CPU auf die Offline-CPU hinüberkopiert wird und dass beide CPUs einer Reset-Routine unterzogen werden, um sie beide wieder in Betrieb zu nehmen. Bei grossen Systemen könnte die Fertigstellung dieses Vorgangs jedoch eine Zeitspanne in Anspruch nehmen, die in einem Bereich von mehreren zehn Sekunden liegen würde, was einen unannehmbar langen Zeitraum darstellen würde, in dem das System zu Reintegrationszwecken offline wäre. Aus diesem Grund wird der Reintegrationsprozess in einer Art und Weise durchgeführt, die es der Online-CPU ermöglicht, mit der Ausführung von Benutzer-Anwendungscode fortzufahren, während der das Hinüberkopieren des Zustands auf die Offline-CPU grösstenteils im Hintergrund abläuft.The procedure now proceeds to step 1080 (33B) to set up memory and state monitoring (e.g. registers, caches, etc.) that is performed while the memory is being run by the online CPU12Ainto the offline CPU12Bis copied over. The step of copying the state of the online CPU into the offline CPU could be done simply by stopping all current operations of the online CPU, the state of all configuration registers and control registers (e.g. the configuration registers)74of the interface units24), the cache memory and the like in the memory28the online CPU will write that all the content of the memory28the online CPU is copied over to the offline CPU and that both CPUs are subjected to a reset routine in order to put them both back into operation. For large systems, however, this process could take several tens of seconds to complete, which would be an unacceptably long period of time in which the system would be offline for reintegration purposes. For this reason, the reintegration process is performed in a manner that enables the online CPU to continue executing user application code during which the copying of the state onto the offline CPU is largely in the background.

    Da allerdings die Online-CPU mit der Ausführung von Benutzer-Anwendungscode fortfährt, ist die Wahrscheinlichkeit gross, dass während des Kopierens des Zustands in die Offline-CPU Bereiche des Speichers28verändert werden, nachdem sie kopiert worden sind, so dass nach Abschluss eines ersten Arbeitsgangs des Kopierens des Speichers der Speicher der Online-CPU nicht identisch ist mit jenem der Offline-CPU. Der Grund dafür liegt darin, dass die normale Verarbeitung durch den Prozessor20der Online-CPU den Speicherinhalt verändern kann, nachdem er bereits in die Offline-CPU hinüberkopiert worden ist. (Im Speicher28der Online-CPU12Avorgenommene E/A-Schreiboperationen haben keine dahingehenden Auswirkungen auf den Kopiervorgang dass dadurch der Inhalt der Speicher der CPUs12A,12Binkonsistent würde, da sie ja auch in der Offline-CPU vorgenommen werden.) Zwei Mechanismen werden verwendet, um diesem Problem während der Reintegration zu begegnen: Erstens, wenn ein Speicherort in der Online-CPU während des Reintegrationsprozesses beschrieben wird, so wird er als "unsauber" markiert; zweitens, jeder Vorgang des Kopierens von Speicher in die Offline-CPU wird durch einen "AtomicWrite"-Mechanismus durchgeführt, der die Speicherorte überwacht, die gerade kopiert werden, um sie vor einem Überschreiben durch Daten aus der Online-CPU zu schützen, bevor der Kopiervorgang bestätigt ist (wodurch, wie noch zu zeigen sein wird, der kopierte Speicherort überschrieben wird). Beide Mechanismen werden nur während der Reintegrationsprozedur verwendet, und ein Verständnis der beiden trägt zu einem besseren Verständnis des Speicher-Vorabkopiervorgangs und des darauf folgenden Kopierens des Zustands von der Online-CPU in die Offline-CPU bei.However, since the online CPU continues to execute user application code, chances are high that areas of memory will be copied while the state is being copied to the offline CPU28be changed after they have been copied so that after completion of a first operation of copying the memory, the memory of the online CPU is not identical to that of the offline CPU. The reason for this is that normal processing by the processor20the online CPU can change the memory content after it has already been copied into the offline CPU. (In the storage room28the online CPU12AI / O write operations performed have no effect on the copying process in that the content of the memories of the CPUs12A.12Bwould be inconsistent, since they are also done in the offline CPU.) Two mechanisms are used to counter this problem during the reintegration: First, if a storage location in the online CPU is described during the reintegration process, it is called marked "dirty"; second, any process of copying memory to the offline CPU is performed by an "AtomicWrite" mechanism that monitors the locations that are being copied to protect them from being overwritten by data from the online CPU before the Copying is confirmed (which, as will be shown, overwrites the copied location). Both mechanisms are used only during the reintegration procedure, and an understanding of the two helps to better understand the memory pre-copy process and the subsequent copying of the state from the online CPU to the offline CPU.

    Speichermarkierungstorage mark

    Das Markieren von Speicherbereichen als "unsauber" erfolgt über die Verwendung eines der FKC-Prüfbits, das spezifisch diesem Zweck dient. Es sei hier daran erinnert, dass 64-Bit-Datenwörter mit 8 FKC-Bits gespeichert werden, um eine Einzelbitfehlerkorrektur und eine Doppelbitfehlererkennung bereitzustellen. Die Verwendung eines der 8 FKC-Bits hat keinerlei Einfluss auf die Einzelbitkorrekturfähigkeit. Sie kann allerdings das Erkennungsvermögen von Doppelbitfehlern einschränken. Da jedoch Speicherkopiervorgang nur eine relativ kurze Zeitzpanne andauert, wird dieses Risiko als annehmbar betrachtet.Marking of memory areas as "dirty" is done using one of the FKC check bits, which is used specifically for this purpose. It should be remembered here that 64-bit data words are stored with 8 FKC bits to provide single bit error correction and double bit error detection. The use of one of the 8 FKC bits has no influence on the single bit correction capability. However, it can limit the ability to detect double bit errors. However, since memory copying if the risk is relatively short, this risk is considered acceptable.

    Während der Reintegration wird mit jeder Schreiboperation an einen Speicherort durch die Online-CPU12Aein Bit des FKC-Prüfcodes invertiert, wodurch bewirkt wird, dass eine später erfolgende Leseoperation desselben Speicherortes ein vorgegebenes FKC-Syndrom hervorruft, das als Markierungszeichen für einen unsauberen Speicherort interpretiert wird. (Es gibt zwei Ausnahmen: die erste sind Schreiboperationen von eingehenden E/A-Daten, da ja der Offline-Speicher ebenfalls mit denselben E/A-Daten beschrieben wird. Die zweite sind Schreiboperationen im Zusammenhang mit dem AtomicWrite-Mechanismus ("Write Conditional".) Auf diese Weise werden Veränderungen des Inhalts des Speichers28der Online-CPU12A, die eventuell nicht in den Speicher28der Offline-CPU12Bmit übernommen worden sind, gekennzeichnet und in der Folge durch Kopieren dieser Speicherorte in den Speicher28der Offline-CPU12B"sauber" gemacht.During the reintegration, the online CPU saves each write operation to a storage location12Ainverts a bit of the FKC check code, which causes a later read operation of the same memory location to cause a predetermined FKC syndrome, which is interpreted as a marker for a dirty memory location. (There are two exceptions: the first are write operations of incoming I / O data, since the offline memory is also written with the same I / O data. The second are write operations in connection with the AtomicWrite mechanism ("Write Conditional ".) This way changes the content of the memory28the online CPU12Athat may not be in memory28the offline CPU12Bhave been taken over, marked and subsequently by copying these storage locations into the memory28the offline CPU12B "cleaned.

    Welches der FKC-Bits für diese Markierungszwecke verwendet wird, ist weniger von Bedeutung, solange gewährleistet ist, dass immer dasselbe Bit verwendet wird.Which of the FKC bits for this Marking purposes is less important as long as guaranteed is that the same bit is always used.

    AtomicWrite-MechanismusAtomicWriteFile mechanism

    Das Hinüberkopieren des Zustands der Online-CPU12Ain die Offline-CPU12Bmacht die Verwendung von Nachrichtenpaketübertragungen auf der TNet-Struktur über einen der Router14A,14Berforderlich. Da aber die Router14A,14Bfür den Duplex-Betriebsmodus eingerichtet sind, so dass E/A-Schreiboperationen in den Speicher28der Online-CPU12Azugleich auch in den Speicher der Offline-CPU12Bgeschrieben werden, wird die Übertragung von Nachrichtenpaketen, welche den Online-Zustand enthalten, in ähnlicher Weise an beide CPUs12A,12Bübertragen, jedoch auf sinnvolle Weise nutzbar gemacht: der Empfang des den Zustand enthaltenden Nachrichtenpakets durch die Online-CPU12Abestätigt dessen fehlerfreien Empfang und Weiterübermittlung durch den Router14(14A bzw. 14B, je nachdem welcher benutzt wurde). Überdies wird durch die Schreiboperation des AtomicWrite-Mechanismus als sauber markiert. Somit werden die markierten Speicherorte erst dann als sauber markiert, wenn die Daten, welche sie enthielten, in dem Nachrichtenpaket, welches sie zur Offline-CPU beförderte, zurückerhalten werden und in den Speicher geschrieben werden, von dem Sie kamen. Auf diese Weise erfolgt eine Bestätigung, dass die Speicherorte erfolgreich in den Speicher der Offline-CPU kopiert worden sind.Copying over the state of the online CPU12Ainto the offline CPU12Bmakes use of message packet transfers on the TNet structure through one of the routers14A.14Brequired. But since the router14A.14Bare set up for the duplex mode of operation so that I / O write operations into memory28the online CPU12Aalso in the memory of the offline CPU12Bwill be written, the transmission of message packets containing the online state will be similar to both CPUs12A.12Btransmitted, but made usable in a meaningful way: the receipt of the message packet containing the state by the online CPU12Aconfirms that it has been received and forwarded correctly by the router14(14A or 14B, whichever was used). Furthermore, the write operation of the AtomicWrite mechanism marks it as clean. Thus, the marked storage locations are only marked as clean when the data which they contained are received back in the message packet which carried them to the offline CPU and are written into the memory from which they came. This confirms that the storage locations have been successfully copied into the offline CPU's memory.

    Angenommen jedoch es erfolgt zwischen dem Auslesen eines Speicherorts der Online-CPU12Azum Zweck des Hinüberkopierens in die Offline-CPU12Bund dem darauffolgenden Zurückschreiben der kopierten Daten in den Online-Speicher eine andere Schreiboperation in den betreffenden Speicherort in der CPU12A(entweder eine eingehende E/A-Schreiboperation oder eine Prozessor-Schreiboperation). Die zurückkehrenden Daten (die in die Offline-CPU hinüberkopiert worden waren) würden an den Speicherort geschrieben, von dem sie ursprünglich gekommen waren, und somit alle neuen Werte, die der Speicherort inzwischen enthielt, überschreiben, den Speicherort als sauber markieren, und Daten zerstören, die unter Umständen für den fortlaufenden Betrieb der Online-CPU12Abenötigt werden. Um diesem Problem zu begegnen, wurde der AtomicWrite-Mechanismus geschaffen.However, suppose it occurs between reading out a location of the online CPU12Afor the purpose of copying over into the offline CPU12Band the subsequent writing back of the copied data to the online memory, another write operation to the relevant memory location in the CPU12A(either an incoming I / O write or a processor write). The returning data (copied over to the offline CPU) would be written to the location from which it originally came, overwriting any new values that the location now contained, marking the location as clean, and destroying data , which may be necessary for the continuous operation of the online CPU12Aare needed. To deal with this problem, the AtomicWrite mechanism was created.

    Der AtomicWrite-Mechanismus benutzt die Speichersteuerung26(2) der Online-CPU, um Speicherorte zu überwachen, die gerade dabei sind, in die Offline-CPU12Bhinüberkopiert zu werden. Die Speichersteuerung verwendet einen Satz von Registern und eine Kontroll-Ablaufsteuereinheit, die während der Reintegration in Betrieb genommen werden, um in diesen Registern die Adressen jener Speicherorte nachzuverfolgen, die zum Zweck des Hinüberkopierens in .die Offline-CPU12Bausgelesen worden sind, die jedoch noch nicht mit den zurückgegebenen Daten beschrieben worden sind, um sie als sauer zu markieren. Sollte es dazwischen zu einer Schreiboperation von Daten (d. h. anderen Daten als denen, die zurückgegeben werden) kommen an einem auf der Liste befindlichen Speicherort kommen, bevor die kopierten Daten wieder an die CPU zurückgekehrt sind, so wird die Liste entsprechend gekennzeichnet. Wenn die kopierten Daten an die Online-CPU zurückgegeben werden, wird diese Liste geprüft, bevor die Daten in den Speicher geschrieben werden. Falls Speicherorte in der Zwischenzeit als mit neuen Daten beschrieben gekennzeichnet sind, werden die zurückgegebenen Daten ausgeschieden und die ausgelassenen Speicherorte als unsauber markiert. Wenn andererseits die Speicherorte seit ihrem Auslesen zum Zweck des Hinüberkopierens in die Offline-CPU nicht beschrieben worden sind, werden die zurückgegebenen, kopierten Daten in die Speicherorte zurückgeschrieben und diese Speicherorte als sauber markiert.The AtomicWrite mechanism uses memory control26(2) of the online CPU to monitor storage locations that are currently in the offline CPU12Bto be copied over. The memory controller uses a set of registers and a control sequence controller which are put into operation during the reintegration in order to keep track of the addresses of those memory locations in these registers which are used for the purpose of copying them into the offline CPU12Bhave been read out, but have not yet been described with the returned data in order to mark them as acid. If there is an intermediate write operation of data (ie data other than those that are returned) to a location on the list before the copied data has returned to the CPU, the list is marked accordingly. When the copied data is returned to the online CPU, this list is checked before the data is written to the memory. In the meantime, if storage locations have been marked as having new data, the returned data is eliminated and the omitted storage locations are marked as dirty. On the other hand, if the storage locations have not been written since they were read out for the purpose of copying over into the offline CPU, the returned, copied data are written back into the storage locations and these storage locations are marked as clean.

    Im wesentlichen verwendet der AtomicWrite-Mechanismus zwei Operationen: eine "ReadLinked" Speicheroperation und eine "WriteConditional" Operation. Die ReadLinked Speicheroperation dient dazu, um die Speicherorte des Speichers28der Online-CPU12A, die in die Offline-CPU12Bhinüberkopiert werden sollen, die Adresse dieser Operation in einer Link-Tabelle zu speichern, die von der SpSt26aufrechterhalten wird, und die zu kopierenden Daten in einer Warteschlange der BÜM88zu installieren, wo Sie zusammengefügt und als Nachrichtenpaket an die Offline-CPU (sowie auch an die Online-CPU) gesendet werden. Durch das Speichern der Adresse der ReadLinked Operation wird diese mit einer zukünftigen WriteConditional Operation verbunden, welche die Daten an den Speicherort zurückgibt und den entsprechenden Eintrag in der Link-Tabelle löscht.Essentially, the AtomicWrite mechanism uses two operations: a "ReadLinked" store operation and a "WriteConditional" operation. The ReadLinked storage operation is used to locate the storage locations28the online CPU12Athat are in the offline CPU12Bshould be copied over, to save the address of this operation in a link table, which the SpSt26is maintained, and the data to be copied in a queue of the BÜM88install where they are assembled and sent as a message package to the offline CPU (as well as to the online CPU). By saving the address of the ReadLinked operation, it is linked to a future WriteConditional operation, which returns the data to the storage location and the corresponding entry in the Link-Ta Belle clears.

    Typischerweise handelt es sich bei der Operation um eine herkömmliche Blockleseoperation, bei der ein Block von Daten aus einer Anzahl von Speicherorten gebildet wird. Die Adresse, die in die Link-Tabelle geschrieben wird, ist jene des am Beginn oder am Ende des Blocks von Speicherorten befindlichen Speicherorts. Wenn das Datenpaket, welches Daten enthält, die aus einem Block von kopierten Speicherorten ausgelesen wurden, von der Online-CPU12Azurückerhalten wird, werden sie mittels einer WriteConditional-Operation in den Speicher28geschrieben. Bevor jedoch die Daten zurückgeschrieben werden, überprüft die SpSt26die Link-Tabelle. Wenn der Speicherort innerhalb des Blocks in der Zwischenzeit durch eine andere Operation (z. B. eine Schreiboperation durch den Prozessor20, eine E/A-Schreiboperation, etc.) beschrieben worden ist, so kennzeichnet diese frühere Schreiboperation den Speicherort in der Link-Tabelle mit einem Flag (und markiert darüber hinaus die beschriebenen Speicherorte als unsauber). Die SpSt26bemerkt das Flag und scheidet die WriteConditional Daten aus, ohne sie zu schreiben, wodurch die betreffenden Speicherorte als unsauber markiert belassen werden, was anzeigt, dass sie noch in die Offline-CPU12Bhinüberkopiert werden müssen.Typically, the operation is a conventional block read operation in which a block of data is formed from a number of locations. The address written in the link table is that of the location at the beginning or end of the block of locations. If the data packet, which contains data read from a block of copied storage locations, by the online CPU12Ais restored, they are written to the memory by means of a write conditional operation28written. Before the data is written back, however, the SpSt26the link table. If the location within the block is in the meantime due to another operation (e.g. a write operation by the processor20, an I / O write, etc.), this previous write operation flags the location in the link table (and also marks the locations described as dirty). The SpSt26notices the flag and drops the WriteConditional data without writing it, leaving the affected locations marked as dirty, indicating that they are still in the offline CPU12Bhave to be copied over.

    Im folgenden wird wieder auf den Reintegrationsprozess Bezug genommen, und zwar auf33B, worin die Speicherrückverfolgung (der AtomicWrite-Mechanismus und die Verwendung des FKC zur Markierung von Speicherorten) in den Schritten 1080 und 1082 aktiviert werden. Dies beinhaltet das Beschreiben eines Reintegrationsregisters (nicht dargestellt; eines der Konfigurationsregister74der Schnittstelleneinheit24–5), um zu bewirken, dass ein Reintegrationssignal (REINT-Signal) ausgegeben wird. Das REINT-Signal wird an die FKC-Logik85einer jeden Speicherschnittstelle70(10) gekoppelt, um das eine der acht FKC-Bits, die von der FKC-Logik85für alle Schreiboperationen ausser WriteConditional-Operationen und für alle E/A-Schreiboperationen erzeugt werden, zu invertieren, so dass beim darauffolgenden Lesen die Daten mit diesem invertierten Bit ein Syndrom erzeugen, welches die Speicherorte als unsauber markiert identifiziert.In the following, reference is made again to the reintegration process, namely to33Bwherein memory tracing (the AtomicWrite mechanism and using the FKC to mark locations) is enabled in steps 1080 and 1082. This includes writing to a reintegration register (not shown; one of the configuration registers74the interface unit24-5) to cause a reintegration signal (REINT signal) to be output. The REINT signal is sent to the FKC logic85any storage interface70(10) coupled to the one of the eight FKC bits that are used by the FKC logic85for all write operations except WriteConditional operations and for all I / O write operations, so that when reading the data thereafter, this inverted bit creates a syndrome that identifies the locations as dirty.

    Nachdem die Speichernachverfolgung auf diese Weise aktiviert worden ist, springt die Reintegrationsprozedur zu der "Vorabkopier"-Sequenz (Schritte 1084–1088), in welcher Inhalte des Online-Speichers28in einem ersten Durchgang in den Speicher der Offline-CPU12Bhinüberkopiert werden, und zwar von unten nach oben (oder von oben nach unten, falls gewünscht) (Schritt 1084). Speicherorte, welche später durch Schreiboperationen beschrieben werden, die nicht von eingehenden E/A-Daten und dem AtomicWrite-Mechanismus herrühren, verwenden das FKC-Bit, um den beschriebenen Speicherort (bzw. die Speicherorte, je nach Sachlage) als unsauber zu kennzeichnen. Schreiboperationen, die an einem Speicherort erfolgen, nachdem dieser durch eine ReadLinked-Operation kopiert worden ist, jedoch bevor eine darauffolgende WriteConditional Operation durchgeführt wird, ebenfalls markiert wird.After memory tracking has been activated in this way, the reintegration procedure jumps to the "pre-copy" sequence (steps 1084-1088), in which contents of the online memory28in a first run into the offline CPU's memory12Bbe copied over from bottom to top (or top to bottom if desired) (step 1084). Storage locations that are later described by write operations that do not originate from incoming I / O data and the AtomicWrite mechanism use the FKC bit to mark the described storage location (or the storage locations, depending on the situation) as dirty. Write operations that occur in a storage location after it has been copied by a ReadLinked operation, but before a subsequent WriteConditional operation is carried out, are also marked.

    Nachdem der gesamte Inhalt des Speichers28einmal durchlaufen und in den Offline-Speicher hinüberkopiert worden ist, springt die Sequenz zu den Schritten 1086 und 1088, um nun im Zuge eines inkrementellen Kopiervorgangs all jene Online-Speicherorte zu kopieren, welche verglichen mit jenen des Offline-Speichers inkonsistent sind, d. h. jene Speicherorte, die bei Abschluss des Schrittes 1084 noch als unsauber markiert verbleiben. Das inkrementelle Kopieren umfasst mehrere Durchgänge, bei denen jeweils der gesamte Online-Speicher durchlaufen wird und jeder Speicherort gelesen wird, um das resultierende Syndrom dahingehend zu prüfen, ob der so markierte Speicherort unsauber oder sauber ist. Ist er als unsauber markiert, so wird der Speicherort in die Offline-CPU kopiert und als sauber markiert. Wenn der Speicherort als sauber markiert ist, wird er nicht angerührt. Während der Durchführung der inkrementellen Kopiervorgänge markieren die normalen Aktionen des Online-Prozessors einige Speicherorte als unsauber.After all the content of the store28once it has been run through and copied into the offline memory, the sequence jumps to steps 1086 and 1088 in order to now copy, in the course of an incremental copying process, all those online storage locations which are inconsistent compared to those of the offline memory, ie those Storage locations that are still marked as dirty when step 1084 is completed. Incremental copying involves multiple passes, each of which goes through all of the online storage and reads each location to check the resulting syndrome to see if the location marked is dirty or clean. If it is marked as dirty, the storage location is copied to the offline CPU and marked as clean. If the location is marked as clean, it will not be touched. While the incremental copy is in progress, the normal actions of the online processor mark some locations as dirty.

    Mehrere Durchgänge des inkrementellen Kopierens müssen unter Schritt 1052 vollzogen werden bis ein Punkt erreicht ist, bei welchem die Rate mit der unsaubere Speicherorte kopiert und gesäubert werden, im wesentlichen jener Rate entspricht, mit der Speicherplatz als unsauber markiert wird. Zu diesem Zweck sind in der SpSt26jeweils spezielle Zähler für ReadLinked-, WriteConditional-, fehlgeschlagene ReadLinked-, und fehlgeschlagene WriteConditional-Operationen integriert. Durch Notieren der Anzahl der erfolgreichen WriteConditional-Operationen am Ende eines jeden Durchgangs durch den Speicher ist der Prozessor20in der Lage, den Wirkungsgrad eines gegebenen Durchgangs verglichen mit jenem des vorausgegangenen Durchgangs zu bestimmen. Wenn der Nutzen nachlässt, beenden die Prozessoren20die Vorabkopieroperationen. An diesem Punkt ist der Reintegrationsprozess bereit, die beiden CPUs12A,12Bin im Gleichschritt laufenden Betrieb zu setzen.Multiple incremental copy passes must be performed at step 1052 until a point is reached where the rate at which dirty locations are copied and cleaned is substantially the same rate as where the location is marked as dirty. For this purpose the SpSt26integrated special counters for ReadLinked, WriteConditional, failed ReadLinked, and failed WriteConditional operations. By noting the number of successful WriteConditional operations at the end of each pass through memory, the processor is20able to determine the efficiency of a given run compared to that of the previous run. When the benefits wane, the processors quit20the pre-copy operations. At this point the reintegration process is ready, the two CPUs12A.12Bto put in operation running in sync.

    Damit springt die Reintegrationsprozedur zu der in33Cveranschaulichten Sequenz von Schritten, wobei in Schritt 1100 die Online-CPU12Akurzzeitig die Vordergrundverarbeitung, d. h. die Ausführung einer Benutzeranwendung, stoppt Der verbleibende Zustand (z. B. Konfigurationsregister, Cachespeicher, usw.) des Online-Prozessors20und seiner Cachespeicher wird dann gelesen und in einen Puffer (eine Reihe von Speicherorten) in dem Speicher28geschrieben (Schritt 1102). Dieser Zustand wird dann in die Offline-CPU12Bhinüberkopiert, gemeinsam mit einem "Reset-Vektor", der die Prozessoreinheiten20beider CPUs12A,12Bzu einem Reset-Befehl leitet.The reintegration procedure jumps to that in33Cillustrated sequence of steps, wherein in step 1100 the online CPU12AFor a short time the foreground processing, ie the execution of a user application, stops The remaining state (e.g. configuration register, cache memory, etc.) of the online processor20and its cache is then read and placed in a buffer (a series of locations) in memory28written (step 1102). This state is then in the offline CPU12Bcopied over, along with a "reset vector" that represents the processor units20of both CPUs12A.12Bto a reset command.

    Als nächstes werden in Schritt 1106 die Router14A,14Bdurch ein SCHLAFEN-Symbol in einen Ruhezustand versetzt, gefolgt von einem eigenadressierten Nachrichtenpaket, um sicherzustellen, dass die FIFOs der Router gelöscht sind, dass die FIFOs der Prozessorschnittstellen24gelöscht sind und dass keine weiteren eingehenden E/A-Daten anstehen. In Schritt 1108 überträgt die Online-CPU12Aein SRST-Befehlssymbol an die Router14A,14B, welche das SRST-Symbol an beide CPUs12A,12Bzurückreflektieren. Da der zurückreflektierende Router nach wie vor in dem weiter oben beschriebenen, untergeordneten Duplexmodus betrieben wird, kommt das an die Offline-CPU12Bzurückreflektiere SRST immer noch 8 Takte nach jenem an, das an die Online-CPU12Azurückreflektiert wird. Das zurückreflektierte SRST-Symbol wird von beiden CPUs12A,12Bempfangen und beide CPUs reagieren darauf, indem sie die Prozessoreinheiten20einer jeden CPU dazu veranlassen, zu jenem Ort im Speicher28zu springen, welcher den Reset-Vektor enthält, und eine Subroutine einzuleiten, welche den gespeicherten Zustand beider CPUs12A,12Bin den Prozessoreinheiten20, den Cachespeichern22, den Registern, etc. wiederherstellt. Die CPUs12A,12Bbeginnen daraufhin, denselben Befehlsstrom auszuführen.Next, in step 1106, the routers14A.14Bput to sleep by a SLEEP icon followed by a self-addressed message packet to ensure that the FIFOs of the routers are deleted that the FIFOs of the processor interfaces24are deleted and that no further incoming I / O data is pending. In step 1108, the online CPU transfers12Aan SRST command symbol to the router14A.14Bwhich the SRST symbol to both CPUs12A.12Breflect back. Since the retroreflective router is still operated in the subordinate duplex mode described above, this is due to the offline CPU12BSRST still reflects back 8 clocks after the one sent to the online CPU12Ais reflected back. The back-reflected SRST symbol is used by both CPUs12A.12Breceived and both CPUs respond by sending the processor units20cause each CPU to go to that location in memory28to jump, which contains the reset vector, and to initiate a subroutine, which stores the stored state of both CPUs12A.12Bin the processor units20, the caches22, the registers, etc. The CPUs12A.12Bthen begin executing the same command stream.

    Somit befinden sich die CPUs12A,12Bbei Schritt 1112 immer noch im Schattenbetriebsmodus, d. h. die beiden arbeiten zwar denselben Befehlsstrom ab, die CPU12Bliegt dabei jedoch um 8 Taktzyklen hinter der CPU12Aund die Router sind nach wie vor so konfiguriert, dass sie von der CPU12Bkommende Übertragungen ignorieren. Die CPU12Akehrt in den Online-Zustand zurück und fährt mit der Ausführung der Benutzeranwendung fort.The CPUs are thus located12A.12Bat step 1112 still in shadow mode, ie the two are executing the same instruction stream, the CPU12Bhowever, it is 8 clock cycles behind the CPU12Aand the routers are still configured to be from the CPU12Bignore upcoming transmissions. The CPU12Areturns to the online state and continues executing the user application.

    Die Reintegrationsprozedur tritt nun in die letzten Reintegrationsetappen ein, welche auch als "Träge Reintegration" bezeichnet und in33Dveranschaulicht werden. Die Freigabe des FKC-Bits zum Markieren unsauberer Speicherorte muss nun deaktiviert werden, da die Prozessoren mit demselben Speicher dasselbe machen. Wenn die Online-CPU12Awährend dieser Etappe der Reintegrationsprozedur beim Auslesen des Speichers im Zuge der Ausführung von Befehlen (welche die Offline-CPU ebenfalls ausführt – wenn auch mit einer Verzögerung von 8 Takten) auf einen Speicherort im Speicher28trifft, der als unsauber gekennzeichnet ist, so leitet sie die Ausgabe eines "Busfehlers" ein (Schritt 1120). Eine Meldung dieses Busfehlers wird unter Verwendung der Auswahllogik920des "Soft-Flag"-Logikelements 900 (30B) an die CPU12Bübertragen (Schritt 1122), um in der Offline-CPU12Bfür denselben Befehl einen Busfehler zu erzwingen. Unter vorübergehender Bezugnahme auf30Blässt sich zeigen, dass durch die Ausgabe von REINT über den MUX914das BUSFEHLER-Signal zu Übergabe an die CPU12Bausgewählt wird, wodurch die CPU12Bbenachrichtigt wird, dass die CPU12Aauf einen Busfehler gestossen ist.The reintegration procedure now enters the last stages of reintegration, which is also referred to as "slow reintegration" and in33Dare illustrated. The release of the FKC bit for marking dirty locations must now be deactivated, since the processors do the same with the same memory. If the online CPU12Aduring this stage of the reintegration procedure when reading out the memory in the course of executing commands (which the offline CPU also executes - albeit with a delay of 8 clocks) to a storage location in the memory28that is marked as dirty, it initiates the output of a "bus error" (step 1120). A notification of this bus error is generated using the selection logic920of the "soft flag" logic element 900 (30B) to the CPU12Btransferred (step 1122) to in the offline CPU12Bforce a bus error for the same command. With a temporary reference to30Bcan be shown that the output of REINT via the MUX914the BUS ERROR signal for transfer to the CPU12Bis selected, causing the CPU12Bis notified that the CPU12Aencountered a bus error.

    Unterdessen bewirkt der Busfehler in der CPU12A, dass die Prozessoreinheit20in eine Fehlerbehandlungsroutine versetzt wird, um zu bestimmen (1) was die Ursache des Fehlers ist, und (2) wie, sofern möglich, mit dem Fehler umzugehen ist. In diesem Augenblick wird ermittelt, dass der Fehler durch den Versuch ausgelöst wurde, einen als unsauber gekennzeichneten Speicherort auszulesen. Demgemäss leitet die Prozessoreinheit20(über die BÜM88–5) den AtomicWrite-Mechanismus ein, um den Inhalt des Speicherorts in die CPU12Bhinüberzukopieren. Die CPU12Aführt daraufhin den Befehl, welcher den Busfehler verursachte, erneut aus, und fährt in der Verarbeitung fort.Meanwhile, the bus error in the CPU12Athat the processor unit20is placed in an error handler to determine (1) what is the cause of the error and (2) how, if possible, to deal with the error. At that moment it is determined that the error was triggered by an attempt to read a location marked as dirty. Accordingly, the processor unit conducts20(about the BÜM88-5) the AtomicWrite mechanism to get the contents of the location into the CPU12Bhinüberzukopieren. The CPU12Athen executes the command that caused the bus error again and continues processing.

    Bei der CPU12B, welche mit einem Versatz von 8 Takten hinter der CPU12Abetrieben wird, wird ebenfalls ein Busfehler erzwungen, und zwar durch die Übermittlung dieses Fehlers von der CPU12Aüber den Bus902, welche vor der Ausführung desselben Befehls erfolgt, welcher den Busfehler bei der CPU12Averursacht hatte. Zu dem Zeitpunkt, da die CPU12Bdiesen Befehl ausführt, ist jedoch die Busfehlermeldung bereits an die CPU12Bübermittelt worden und wird mit demselben, 8 Takte später erfolgenden Befehl der CPU12Bin Beziehung gesetzt. Dieses In-Beziehung-setzen wird dadurch erreicht, dass die Verzögerung bei der Übertragung des Busfehlersignals von der Online-CPU12Azu der Offline-CPU12Bmit der acht-Takte-Verzögerung zur Übereinstimmung gebracht wird, welche durch die Routerübertragungen an die CPUs bewirkt werden (d. h. mit der acht-Takte-Verzögerung des Schattenbetriebsmodus). Die CPU12Bwird dabei dennoch gezwungen, dieselbe Busfehlerbehandlungsroutine zu durchlaufen, wie sie von der CPU12Aeingeleitet wurde. Um in synchronem, im Gleichschritt laufendem Betrieb zu bleiben, führt die Offline-CPU12Bexakt dieselbe Sequenz an Operationen aus wie die Online-CPU12A, und zwar einschliesslich der Busfehlerroutine und der Übertragung der Daten von "unsauberen" Speicherorten an den Router. Wohlgemerkt, die Router ignorieren zwar von der CPU12Bkommende Übertragungen, es muss jedoch gewährleistet sein, dass die CPU12Bzur Ausführung derselben Operation wie sie von der CPU12Aausgeführt wird, auch dieselbe Zeitspanne wie diese benötigt.With the CPU12Bwhich are offset by 8 clocks behind the CPU12Ais operated, a bus error is also forced by the transmission of this error from the CPU12Aover the bus902, which takes place before the execution of the same command which causes the bus error at the CPU12Ahad caused. At the time the CPU12Bexecutes this command, however, the bus error message is already sent to the CPU12Bhas been transmitted and is carried out with the same instruction of the CPU 8 clocks later12Brelated. This relationship is achieved in that the delay in the transmission of the bus error signal from the online CPU12Ato the offline CPU12Bis matched with the eight clock delay caused by the router transfers to the CPUs (ie, the eight clock delay of the shadow mode). The CPU12Bit is still forced to go through the same bus error handling routine as that of the CPU12Awas initiated. In order to remain in synchronous, synchronous operation, the offline CPU12Bexactly the same sequence of operations as the online CPU12A, including the bus error routine and the transfer of data from "dirty" storage locations to the router. Mind you, the routers ignore the CPU12Bupcoming transfers, however, it must be guaranteed that the CPU12Bto perform the same operation as that of the CPU12Athe same amount of time as it takes.

    In der Zwischenzeit verwendet die Online-CPU12Aeine gewisse Zeit darauf, um einen letzten Durchgang durch den gesamten Speicher der CPU12Azu vollziehen, wobei jene Speicherorte, die immer noch als unsauber gekennzeichnet sind, hinüberzukopieren, während gleichzeitig die Ausführung eines Benutzer-Anwendungsprogramms fortgesetzt wird. Während der letzten Etappe der Reintegration wird der gesamte Speicher ausgelesen und dabei jeder Speicherort überprüft. Jeder Speicherort, der geprüft und als unsauber markiert erkannt wird, wird in die Offline-CPU, d. h. die CPU12Bkopiert. Schlussendlich sind die Zustände der CPUs12A,12Bkonsistent, so dass die beiden CPUs in einen echten, nicht-verzögerten, im Gleichschritt laufenden Betrieb gesetzt werden können.In the meantime, the online CPU is using12Asome time later to make a last pass through the entire memory of the CPU12Ato do so, copying over those locations that are still marked as dirty while continuing to execute a user application program. During the last stage of reintegration, the entire memory is read out and every storage location is checked. Every storage location that is checked and identified as dirty is transferred to the offline CPU, ie the CPU12Bcopied. Ultimately, the states of the CPUs12A.12Bconsistent, so that the two CPUs can be set to real, non-delayed, synchronous operation.

    Nachdem somit dank dem Schritt 1124 feststeht, dass tatsächlich der gesamte Speicher überprüft, und gegebenenfalls kopiert, worden ist, setzt der IP 18 in Schritt 1128 die Router14Ain einen nächsten Duplex-Betriebszustand, indem er die in der Steuerlogik509enthaltenen Konfigurationsregister entsprechend beschreibt. Die CPU12Agibt daraufhin, wie bereits zuvor, die Sequenz bestehend aus SCHLAFEN-Symbolen und eigenadressiertem Nachrichtenpaket aus. Wenn die CPU12Asichergestellt hat, dass der Router sich in einem Ruhezustand befindet, sendet die CPU12Aan beider Router14A,14B(gleichzeitig) ein SRST-Symbol. Durch den Empfang dieses Symbols werden die Router14A14B in den Duplexbetrieb versetzt, so dass wenn sie das SRST-Symbol an die CPUs12A,12Bzurückreflektieren, beide Symbole gleichzeitig zurückreflektiert werden. Wenn die SRST-Symbole nun von den CPUs12A,12Bempfangen werden, so veranlassen sie beide Prozessoreinheiten20der CPUs, zurückgesetzt zu werden und ihren Betrieb von demselben Speicherort in demselben Zustand und zur selben virtuellen Zeit aufzunehmen. Die CPUs12A,128befinden sich nun in im Gleichschritt laufendem Betrieb.After it is thus determined, thanks to step 1124, that the entire memory is actually checked, and if copied, the IP 18 sets the routers in step 112814Ain a next duplex operating state by the in the control logic509contained in the configuration register. The CPU12Athen, as before, outputs the sequence consisting of SLEEP symbols and a self-addressed message packet. If the CPU12Ahas ensured that the router is in an idle state, the CPU sends12Aon both routers14A.14Ban SRST symbol (at the same time). By receiving this symbol, the router14A14B put in duplex mode so that when it sends the SRST symbol to the CPUs12A.12Breflect back, both symbols are reflected back simultaneously. If the SRST symbols are now from the CPUs12A.12Bare received, they cause both processor units20the CPUs to reset and start operating from the same location in the same state and at the same virtual time. The CPUs12A.128are now in synchronous operation.

    Zusätzliche Merkmaleadditional characteristics

    Kostenreduziertes DuplexsystemReduced costs duplex system

    Im folgenden wird vorübergehend auf1Bezug genommen, wobei die CPUs12A,12Bwie erwähnt entweder getrennt oder als duplexbetriebenes Paar verwendet werden. Im ersteren Fall schafft die in dem Entwurf einer jeden der unabhängig voneinander betriebenen CPUs verwendete Redundanz eine schnellfehlende Architektur. CPUs können gepaart (nicht im Duplexmodus) betrieben werden, so dass eine CPU als "primäre" CPU und die andere CPU als "sekundäre" CPU bezeichnet wird, wodurch ein softwarebezogener Ansatz zur Fehlertoleranz implementiert wird. Somit hat die sekundäre CPU eine Benutzer-Anwendung zur Verfügung, welche auf der primären CPU läuft, und die primäre CPU aktualisiert in regelmässigen Abständen z. B. eine Datenbank oder eine Auditdatei, welche Aufschluss gibt über die bis zu dem Zeitpunkt der Aktualisierung erfolgten Verarbeitungsaktivitäten der primären CPU. Sollte die primäre CPU ausfallen, so aktiviert die sekundäre CPU die Datensicherungsanwendung und übernimmt die Aufgabe der ausgefallenen CPU, und zwar von dem Zeitpunkt an, da die Datenbank bzw. die Auditdatei zum letzten Mal aktualisiert wurde. Darauf basiert der softwarebezogene Ansatz zur Fehlertoleranz.The following is temporarily on1Referenced with the CPUs12A.12Bas mentioned, can be used either separately or as a duplex-operated pair. In the former case, the redundancy used in the design of each of the independently operated CPUs creates a rapidly missing architecture. CPUs can be paired (not in duplex mode) so that one CPU is referred to as a "primary" CPU and the other CPU is referred to as a "secondary" CPU, thereby implementing a software-based approach to fault tolerance. Thus, the secondary CPU has a user application available that runs on the primary CPU, and the primary CPU updates at regular intervals, e.g. B. a database or an audit file, which provides information about the processing activities of the primary CPU up to the time of the update. If the primary CPU fails, the secondary CPU activates the backup application and takes over from the failed CPU from the time the database or audit file was last updated. The software-based approach to fault tolerance is based on this.

    Softwarebezogene Ansätze zur Fehlertoleranz werden charakteristischerweise durch Betriebssysteme implementiert. Für jene Betriebssysteme, die nicht so robust ausgelegt sind, und daher nicht über eine entsprechende Fähigkeit verfügen, wird der weiter oben (siehe1) beschriebene Duplex-Betriebsmodus mit zwei CPUs12vorgestellt, welche betrieben werden, um identische Befehle ein und desselben Befehlsstroms auszuführen. In34wird ein kostenreduziertes, duplexbetriebenes Paar von CPUs gezeigt, wobei eine der CPUs nicht über dieselbe Redundanz verfügt wie die andere.Software-related approaches to fault tolerance are typically implemented by operating systems. For those operating systems that are not designed so robustly and therefore do not have the appropriate capability, the above (see1) described duplex operating mode with two CPUs12presented which are operated to execute identical commands of the same command stream. In34a reduced-cost, duplex-powered pair of CPUs is shown, with one of the CPUs not having the same redundancy as the other.

    Allerdings sei, unter Bezugnahme auf1, darauf hingewiesen, dass die CPU12Ain fehlerprüfender Redundanz zu der CPU12Bbetrieben werden kann, und zwar in derselben Weise, in der die einzelnen Prozessoreinheiten20a,20bder CPU12Aeine schnellfehlende Fehlertoleranz für die CPU bereitstellen – sofern beide im Duplexmodus und in im Gleichschritt laufendem Betrieb zueinander betrieben werden. Somit kann für den Duplexbetrieb, wie in34veranschaulicht, ein kostenreduziertes System angewendet werden. Wie in34gezeigt, beinhaltet ein Verarbeitungssystem10'die CPU12Aund die Router14A,14Bin der weiter oben beschriebenen Struktur. Die CPU, mit welcher die CPU12Agepaart ist, hier als CPU12B'dargestellt, ist jedoch als einprozessorbasiertes CPU-System strukturiert. Die Verbindungen zwischen den Routern14A,14Bund den CPUs sind ebenfalls dieselben.However, referring to1, noted that the CPU12Ain error checking redundancy to the CPU12Bcan be operated in the same way in which the individual processor units20a.20bthe CPU12Aprovide a fast missing fault tolerance for the CPU - provided both are operated in duplex mode and in synchronous operation with each other. Thus, for duplex operation, as in34illustrates a cost-reduced system can be applied. As in34shown includes a processing system10 'the CPU12Aand the router14A.14Bin the structure described above. The CPU with which the CPU12Ais paired, here as a CPU12B 'shown, but is structured as a processor-based CPU system. The connections between the routers14A.14Band the CPUs are also the same.

    Somit umfasst die CPU12B'nur eine Einprozessoreinheit20'und dieser zugeordnete, unterstützende Komponenten, unter anderem den Cachespeicher22', die Schnittstelleneinheit (SE) 24', die Speichersteuerung26'und den Speicher28'. Während die CPU12Ain der in2gezeigten Art strukturiert ist, d. h. mit Redundanzen in den Bereichen der Cachespeichereinheit, der Schnittstelleneinheit und der Speichersteuerung, wird annähernd eine Hälfte dieser Komponenten zur Implementierung der CPU12B'benötigt.So the CPU includes12B 'only one processor unit20 'and associated supporting components, including the cache22 ', the interface unit (SE) 24 ', the memory controller26 'and the memory28 ', While the CPU12Ain the in2is shown structured, ie with redundancies in the areas of the cache memory unit, the interface unit and the memory controller, approximately half of these components for the implementation of the CPU12B 'needed.

    Was ihren Betrieb betrifft, würden die CPUs12A,12B'im Duplexmodus betrieben, wobei eine jede im wesentlichen zur selben Zeit dieselben Befehle eines identischen Befehlsstroms ausführen. Die CPU12Avon ihrem Entwurf her entsprechend ausgelegt, um durch die Verdoppelung der Prozessoreinheit20und anderer die CPU konstituierender Elemente einen schnellfehlenden Betrieb bereitzustellen. Darüber hinaus stellt die CPU12Adurch den Duplexbetrieb und durch die von den Routern14A,14Bvorgenommenen Divergenzprüfungen auch ein Prüfverfahren für ihre Partner-CPU, die CPU12B', bereit. Die von dem CPU-Paar gebildete logische CPU stellt insofern eine funktionellfehlende Betriebsweise bereit, als für den Fall, dass von einem der Router14A,14Beine Divergenz erkannt werden sollte, und auf diese Divergenzerkennung in der oben beschriebenen Art durch Stoppen der fehlerbehafteten CPU reagiert wird, die in Betrieb verbleibende CPU mit der Ausführung der laufenden Anwendung fortfahren kann.As for their operation, the CPUs12A.12B 'operated in duplex mode, each executing the same commands of an identical command stream at substantially the same time. The CPU12Adesigned accordingly by doubling the processor unit20and other elements constituting the CPU to provide fast missing operation. In addition, the CPU12Athrough duplex operation and through the routers14A.14Bperformed divergence tests also a test procedure for your partner CPU, the CPU12B ', ready. The logical CPU formed by the CPU pair provides a functionally missing mode of operation in the event that one of the routers14A.14Ba divergence should be detected and this divergence detection is responded to in the manner described above by stopping the faulty CPU, the CPU remaining in operation can continue to execute the running application.

    Handelt es sich bei der in Betrieb verbleibenden CPU um die CPU12A, so existiert immer noch ein kleines Mass an Datenintegrität dank der duplizierten Komponenten, aus denen die CPU12Agebildet ist. Sollte es sich bei der in Betrieb verbleibenden CPU um die CPU12B'handeln, so muss allerdings eingeräumt werden, dass ausgenommen für die in konventioneller Weise implementierte Fehlerprüfungen (z. B. Paritätsprüfungen an verschiedenen Schnittstellen) eine Datenintegrität nicht gewährleistet ist.If the CPU remaining in operation is the CPU12A, so there is still a small amount of data integrity thanks to the duplicated components that make up the CPU12Ais formed. Should the remaining CPU in operation was the CPU12B 'act, it must be admitted, however, that data integrity is not guaranteed except for the error checks implemented in a conventional manner (e.g. parity checks at different interfaces).

    Wie in34gezeigt, beinhaltet das Verarbeitungssystem10'ein Paar von Routern14A,14B, um den Vergleich der von den CPUs12Aund12B'kommenden Ausgabedaten durchzuführen. Für einschlägig gebildete Fachleute ist klar ersichtlich, dass nur ein Router14(z. B. der Router14A) benötigt wird, wenn nur eine Divergenzprüfung durchgeführt werden soll. Die Verwendung eines Routers könnte in der Praxis auch durch nichts weiter als eine blosse Vergleichsschaltung ersetzt werden, welche die erforderliche Divergenzprüfung vornimmt, vorausgesetzt die beiden Eingänge, die entsprechend geschaltet sind, um die Ausgangsdaten von den CPUs12A,12B'zu empfangen, verfügen über Taktsynchronisierungs-FIFOs der weiter oben beschriebenen Art, um den in gewisser Weise asynchronen Ausgabedaten zu empfangen, wobei diese empfangenen Ausgabedaten in synchroner Weise aus den FIFOs entnommen werden.As in34shown includes the processing system10 'a pair of routers14A.14Bto compare the of the CPUs12Aand12B 'to carry out upcoming output data. It is clear to those skilled in the art that there is only one router14(e.g. the router14A) is required if only one divergence test is to be carried out. In practice, the use of a router could also be replaced by nothing more than a mere comparison circuit which carries out the required divergence test, provided the two inputs, which are switched appropriately, to the output data from the CPUs12A.12B 'receive clock synchronization FIFOs of the type described above in order to receive the somewhat asynchronous output data, these received output data being taken from the FIFOs in a synchronous manner.

    Standby-RedundanzprinzipStandby Sparing

    Im folgenden wird vorübergehend auf die1A–1CBezug genommen, wobei ein wichtiges Merkmal der Architektur des in diesen Figuren veranschaulichten Verarbeitungssystems darin besteht, dass jede CPU12die Dienste einer jeden E/A-Paket-Schnittstelle 16 und eines jeden mit einer solchen verbundenen E/A-Geräts für sich zur Verfügung hat, und zwar ohne dass dazu eine andere CPU in dem System benötigt wird. Zahlreiche Parallelverarbeitungssysteme nach dem Stand der Technik ermöglichen einen Zugriff auf E/A-Geräte bzw. die Inanspruchnahme ihrer Dienste nur auf dem Weg über eine Zuhilfenahme eines bestimmten Prozessors oder einer bestimmten CPU. In einem solchen Fall steht, sollte der für die Dienste eines E/A-Geräts verantwortliche Prozessor ausfallen, das betreffende E/A-Gerät für den Rest des Systems nicht mehr zur Verfügung. Andere Systeme nach dem Stand der Technik bieten Zugriff auf E/A-Einrichtungen über Prozessorpaare, so dass bei Ausfall eines Prozessors der Zugriff auf die entsprechende E/A-Einrichtung immer noch über den in Betrieb verbleibenden Prozessor verfügbar ist. Wenn natürlich beide Prozessoren ausfallen, so geht der Zugriff auf die E/A-Einrichtung erneut verloren.The following will temporarily refer to the1A-1CReference, an important feature of the architecture of the processing system illustrated in these figures is that each CPU12provides the services of each I / O packet interface 16 and each I / O device connected to it without the need for another CPU in the system. Numerous state-of-the-art parallel processing systems allow access to I / O devices or the use of their services only by using a specific processor or CPU. In such a case, should the processor responsible for the services of an I / O device fail, the I / O device in question will no longer be available to the rest of the system. Other prior art systems provide access to I / O devices through processor pairs, so that if one processor fails, access to the appropriate I / O device is still available through the processor remaining in operation. Of course, if both processors fail, access to the I / O device is lost again.

    Ausserdem stellt das Anfordern der Ressourcen eines Prozessors mit dem Ziel, diese einem anderen Prozessor eines parallelen Systems bzw. eines Mehrprozessorsystems bereitzustellen, eine Leistungseinbusse für das System dar.In addition, requesting the Resources of one processor with the aim of another processor to provide a parallel system or a multiprocessor system, a performance penalty for the system.

    Die Fähigkeit, einer jeden CPU eines Multiprozessorsystems Zugriff auf jedes Peripheriegerät zu gewähren, wie dies hier der Fall ist, trägt dazu bei, den "Primär"/"Datensicherungs"-Prozess auszuweiten, der in dem oben angegebenen U.S.-Patentschrift Nr. 4.228.496 offenbart wird. Dort kann ein Mehr-CPU-System über einen Primärprozess verfügen, welcher auf einer CPU läuft, während ein Datensicherungsprozess auf einer anderen der CPUs im Hintergrund abläuft. In regelmässigen Abständen führt der Primärprozess eine Operation des "Sicherungspunkt-Setzens" durch, im Zuge derer Daten betreffend die Operation des Prozesses an einem Speicherort gespeichert werden, auf welchen von dem Datensicherungsprozess aus zugegriffen werden kann. Wenn die CPU, auf welcher der Primärprozess durchgeführt wird, einen Fehler aufweist, so wird dieser Fehler von den verbleibenden CPUs, einschliesslich jener, auf welcher sich die Datensicherung befindet, erkannt. Diese Erkennung des CPU-Fehlers führt dazu, dass der Datensicherungsprozess aktiviert wird, und dass dieser auf die Sicherungspunkt-Daten zugreift, wodurch es der Datensicherung ermöglicht wird, von dem Punkt der letzten Sicherungspunkterstellungsoperation an den Betrieb des früheren Primärprozesses fortzuführen. Der Datensicherungsprozess wird nun zum Primärprozess und es wird eine andere CPU aus dem Pool der verbleibenden CPUs ausgewählt, um den Datensicherungsprozess zu übernehmen. Demgemäss kann das System rasch wieder in einen Zustand versetzt werden, in welchem ein weiterer Fehler toleriert werden kann, der sogar bereits auftreten kann bevor die Reparatur des ursprünglichen Fehlers (d. h. der fehlerhaften CPU) abgeschlossen ist.The ability to give each CPU one Multiprocessor system to grant access to any peripheral, such as this is the case here help the "primary" / "data backup" process which is disclosed in U.S. Patent No. 4,228,496. There, a multi-CPU system can be operated via a primary process feature, which runs on a CPU, while a backup process on another of the CPUs in the background expires. In regular intervals leads the primary process an operation of "securing point setting" in the course of which Data related to the operation of the process in one location are saved on which of the data backup process can be accessed. If the CPU on which the primary process carried out If there is an error, this error will be recognized by the remaining CPUs, including those on which the data backup is located is detected. This detection of the CPU error leads to that the backup process is activated and that this on the savepoint data accesses, which enables data backup from that point the last savepoint creation operation to the operation of the earlier primary process continue. The backup process now becomes the primary process and it becomes different CPU selected from the pool of remaining CPUs to complete the data backup process to take over. Accordingly, the system can quickly be restored to a state in which another error can be tolerated, which is already can occur before the original fault (i.e. the faulty CPU) is completed.

    Somit wird ersichtlich, dass durch das Verfahren und die Vorrichtung zur wechselseitigen Verbindung der verschiedenen Elemente eines Verarbeitungssystems10jede CPU Zugriff auf jedes E/A-Element des Systems sowie auf jede andere CPU des Systems erhält. Jede CPU kann auf jede E/A-Einrichtung zugreifen, ohne dazu die Dienste einen anderen Prozessors in Anspruch nehmen zu müssen. Dadurch wird die Systemleistung erhöht und im Vergleich zu jenen Systemen verbessert, die sehr wohl einen spezifischen Prozessor für die Realisierung des Zugriffs auf E/A-Einrichtungen benötigen.It can thus be seen that the method and the device for the mutual connection of the various elements of a processing system10Every CPU has access to every I / O element of the system and to every other CPU in the system. Each CPU can access any I / O device without having to use the services of another processor. This increases system performance and improves it compared to those systems that do require a specific processor to implement access to I / O devices.

    Ausserdem ist zu bemerken, dass wenn eine CPU12einen Fehler aufweisen sollte oder in Offline-Betrieb gesetzt wird, dies keinerlei Auswirkungen auf den Zugriff irgendeiner anderen CPU auf irgendeine E/A-Einrichtung des Systems hat.It should also be noted that if a CPU12should have an error or be taken offline that has no effect on any other CPU's access to any I / O device of the system.

    Transaktionsfolgeprotokoll und Barrieren-Transaktionen:Transaction Sequence Protocol and barrier transactions:

    Wie weiter oben erklärt, beinhaltet das Headerfeld eines Pakets eine 4 Bit umfassendes 'Transaktionsfolgenummer'-Feld (TFN-Feld); siehe die3Aund3B. Elemente des Verarbeitungssystems10(19; die in der Lage sind, mehr als eine ausstehende Anforderung zu verwalten, wie zum Beispiel die CPUs12oder bestimmte E/A-Geräte, stellen für jede ausstehende Anforderung in dem TFN-Feld eine nur einmal vorkommende Folgenummer bereit. Wenn das Bestimmungselement ein Antwortpaket zu der spezifischen Anforderung generiert, so enthält das TFN-Feld in dem Antwortpaket denselben TFN-Wert wie in dem Anforderungspaket, das zur Generierung der Antwort geführt hat. Das Systemelement, welches die Antwort empfängt, kann daraufhin die in der Antwort enthaltene TFN mit jenen der Anforderungen vergleichen, um zu bestimmen, welcher Anforderung die Antwort zuzuordnen ist.As explained above, the header field of a packet contains a 4 bit transaction sequence number 'field (TFN field); see the3Aand3B, Elements of the processing system10(19; that are able to manage more than one pending request, such as the CPUs12or certain I / O devices, provide a unique sequence number for each pending request in the TFN field. When the determination element generates a response packet for the specific request, the TFN field in the response packet contains the same TFN value as in the request packet that led to the generation of the response. The system element receiving the response can then compare the TFN contained in the response with that of the requests to determine which request the response is to be associated with.

    Die TFN erlaubt es einem Systemelement, zu bestimmen, ob die Antwort einer Anforderung zuzuordnen ist, welche nicht mehr existiert. Zum Beispiel ist es bei manchen Systemen, wie auch bei dem vorliegenden, erforderlich, dass die Antworten auf eine Anforderung innerhalb einer vordefinierten Zeitspanne empfangen werden. Wird innerhalb der dafür eingeräumten Zeit keine Antwort empfangen, gibt das Systemelement, das die Anforderung initiierte, einfach eine zweite (wiederholte) Anforderung aus. Wird im Anschluss daran die Antwort auf die frühere Anforderung empfangen, so ist das Systemelement in der Lage, aufgrund der TFN zu bestimmen, welche Anforderung (die frühere, mittlerweile gelöschte Anforderung, oder die spätere gültige Anforderung) durch die Antwort beantwortet wird. Handelt es sich um die frühere, so wird die Antwort ausgeschieden.The TFN allows a system element to determine whether the response is associated with a request, which does not exist anymore. For example, in some systems, as with the present, the answers required received on request within a predefined period of time become. Will be within the for that granted Time no response received, the system element that issued the request initiated, simply a second (repeated) request. Becomes then received the response to the previous request, so the system element is able to determine based on the TFN what requirement (the previous, meanwhile deleted Requirement, or the later valid Request) is answered by the answer. Is it to the former, so the answer is eliminated.

    TFNs sind auch hilfreich bei der Handhabung des sogenannten Problems der "veralteten Pakete". Bei Auftreten eines Fehlers ist es möglich, dass gerade in Übertragung befindliche Nachrichtenpakete irgendwo im Netzwerk blockiert werden. Ist keine Möglichkeit vorgesehen, diese veralteten Nachrichtenpakete zu entfernen, so können sich diese möglicherweise später wieder bemerkbar machen, nachdem das System im Anschluss an einen Fehler wiederhergestellt ist, und dessen Betrieb unter Umständen stören. Eine TFN eines empfangenen Nachrichtenpakets ermöglicht es dem Empfänger, durch Vergleichen der in der Antwort enthaltenen TFN mit der TFN des Nachrichtenpakets, das zur Beantwortung aufgefordert hat, zu bestimmen, ob es sich um eine aktuelle Antwort handelt oder nicht.TFNs are also helpful in Dealing with the so-called problem of "outdated packages". When it occurs of an error it is possible that just being broadcast message packets located somewhere in the network are blocked. Is not an option provided to remove these outdated message packets, so can yourself this may be later again noticeable after the system following one Error is restored and may disrupt its operation. A TFN of a received message packet enables the recipient to pass through Comparing the TFN contained in the response with the TFN of the message packet, that has asked for the answer to determine whether it is is a current answer or not.

    Bei Verwendung eines kleinen TFN-Feldes besteht die Möglichkeit, dass eine veraltete, spät eintreffende Antwort eine TFN trägt, welche mit der einer aktuell ausstehenden Anforderung übereinstimmt. Ein grosses TFN-Feld hat hingegen zur Folge, dass entweder jedes der zu übertragenden Nachrichtenpakete um vieles grösser wird oder aber dass die verfügbaren Datenfelder entsprechend verringert werden.When using a small TFN field it is possible, that an outdated, late incoming answer carries a TFN, which matches a currently pending request. A large TFN field, however, means that either each the one to be transferred Message packets much larger will or that the available Data fields are reduced accordingly.

    Die vorliegende Erfindung löst dieses Problem durch einen Mechanismus, welcher als "Barrieren-Transaktion" bezeichnet wird. TFNs werden zwar auch hierbei verwendet, jedoch verringert der Barrieren-Transaktionsmechanismus die erforderliche Grösse einer TFN auf ein nur vier Bits umfassendes Feld.The present invention solves this Problem caused by a mechanism called a "barrier transaction" becomes. TFNs are also used here, but they are reduced the barrier transaction mechanism the size required TFN on a field consisting of only four bits.

    Kurz gesagt, wird eine Barrieren-Transaktion dazu verwendet, um die Integrität eines Übertragungsleitwegs zwischen einem sendenden Knoten und einem empfangenden Knoten zu prüfen. Eine Barrieren-Transaktion wird primär durch eine CPU eingeleitet, obwohl sie auch von einer E/A-Schnittstelle16ausgegeben werden könnte. Sie wird in erster Linie dann eingesetzt, wenn eine erwartete Antwort auf ein zuvor an eine E/A-Einheit 17 oder eine CPU12ausgegebenes Anforderungs-Nachrichtenpaket nicht innerhalb einer vordefinierten und dafür zugemessenen Zeitspanne empfangen wird. Eine CPU12hat die Möglichkeit, den Leitweg zu überprüfen, indem sie ein Barrieren-Transaktions-Nachrichtenpaket in Form eines HADC-Pakets (3A) erstellt und sendet, welches die üblichen Header-Adress-, Daten- und CRC-Felder enthält. Die von dem Barrieren-Transaktions-Nachrichtenpaket übertragenen Daten dienen ausschliesslich der Identifikation der Transaktion und eine Kopie dieser Daten wird von der CPU zum Zweck eines später von der CPU durchzuführenden Vergleichs abgespeichert.In short, a barrier transaction is used to check the integrity of a transmission route between a sending node and a receiving node. A barrier transaction is primarily initiated by a CPU, although it is also initiated by an I / O interface16could be spent. It is primarily used when an expected response to a previously sent to an I / O unit 17 or a CPU12issued request message packet is not received within a predefined and allocated time period. A CPU12has the option of verifying the route by sending a barrier transaction message packet in the form of a HADC packet (3A) creates and sends, which contains the usual header address, data and CRC fields. The data transmitted by the barrier transaction message packet are used exclusively for the identification of the transaction and a copy of this data is stored by the CPU for the purpose of a comparison to be carried out later by the CPU.

    Das Systemelement (z. B. eine der E/A-Schnittstellen 16, obwohl es sich dabei ebenso gut um eine andere CPU handeln könnte), welches ein Barrieren-Transaktions-Nachrichtenpaket empfängt, wird dadurch aufgefordert, seinerseits eine Barrieren-Transaktions-Antwort zu generieren und zu senden. Zuvor jedoch muss der Barrieren-Transaktions-Antwortadressat alle (von dem Systemelement, das die Anforderung ausgegeben hat erhaltenen) Anforderungen, welche vor dem Empfang des Barrieren-Transaktions-Nachrichtenpaket empfangen wurden, entweder vollenden oder ausscheiden, bevor er auf die Barrieren-Transaktion reagieren kann. Die Barrieren-Transaktions-Antwort erfolgt in Form eines HDC-Pakets (4B), welches dieselben Daten enthält, die mit der Barrieren-Transaktions-Anforderung übertragen wurden. Wenn die Barrieren-Transaktions-Antwort von der CPU, welche die Transaktion eingeleitet hat, empfangen wird, so werden die in der Antwort enthaltenen Daten mit jenen Daten verglichen, die in dem zuvor gesendeten (und zuvor von der CPU gespeicherten) Barrieren-Transaktions-Nachrichtenpaket enthalten waren, um unter anderem festzustellen, welcher Barrieren-Transaktion die Antwort zuzuordnen ist (es können nämlich eine ganze Reihe von ausständigen Barriere-Transaktionen vorhanden sein).The system element (e.g., one of the I / O interfaces 16, although it could just as well be a different CPU), which receives a barrier transaction message packet, is thereby prompted, in turn, a barrier transaction response to generate and send. Before that, however, the barrier transaction response addressee must either complete or drop any requests (received by the system element that issued the request) that were received prior to receipt of the barrier transaction message packet before responding to the barrier transaction can. The barrier transaction response takes the form of an HDC packet (4B), which contains the same data that was transmitted with the barrier transaction request. When the barrier transaction response is received from the CPU that initiated the transaction, the data contained in the response is compared to the data contained in the barrier transaction previously sent (and previously stored by the CPU) Messages were included to determine, among other things, which barrier transaction the answer is to be assigned (there may be a number of outstanding barrier transactions).

    Da es nur einen gültigen Leitweg zwischen jedem beliebigen Systemelement und jedem anderen Systemelement (z. B. der CPU12Aund dem E/A-Einrichtung 17n;1) geben kann, und da kein Nachrichtenpaket auf dem Weg zu seinem Bestimmungsort ein anderes Nachrichtenpaket überholen kann, entspricht die Reihenfolge, in der die Nachrichtenpakete empfangen werden auch der Reihenfolge, in der sie gesendet wurden. Somit wird die Barrieren-Transaktion dazu verwendet, um den Leitweg zwischen dem die Barrieren-Transaktion sendenden Systemelement und dem die Barrieren-Transaktion empfangenden und darauf reagierenden Systemelement freizumachen. Der Empfang der Barrieren-Transaktions-Antwort setzt das Systemelement, das die Barrieren-Transaktion ausgegeben hat, davon in Kenntnis, dass alle vor dem Versand der Barrieren-Transaktion gesendeten Anforderungen beantwortet sind bzw. dass keine Antwort zu erwarten ist. Unbeantwortete Anforderungen können somit erneut ausgegeben werden, wobei davon ausgegangen werden kann, dass wenn schliesslich eine Antwort eintrifft, es sich dabei um das Ergebnis der erneut ausgegebenen Anforderung und nicht um eine verspätet einlangende Antwort auf die frühere (und zuvor unbeantwortet gelassene) Anfrage handelt. Es lässt sich unschwer erkennen, dass der Barrieren-Transaktions-Mechanismus mit einer sehr geringen Anzahl von TFN-Nummern auskommt (Hier wird ein nur vier Bits umfassendes TFN-Feld verwendet, im Gegensatz zu Systemen nach dem Stand der Technik, die etwas längere Felder verwenden müssen.)Since there is only one valid route between any system element and any other system element (e.g. the CPU12Aand the I / O device 17 n ;1), and since no message packet can overtake another message packet on its way to its destination, the order in which the message packets are received also corresponds to the order in which they were sent the. Thus, the barrier transaction is used to clear the route between the system element sending the barrier transaction and the system element receiving and responding to the barrier transaction. The receipt of the barrier transaction response informs the system element that issued the barrier transaction that all requests sent before the barrier transaction was sent have been answered or that no response is expected. Unanswered requests can thus be reissued, whereby it can be assumed that when a response finally arrives, it is the result of the reissued request and not a delayed response to the previous (and previously unanswered) request. It can easily be seen that the barrier transaction mechanism manages with a very small number of TFN numbers (here a TFN field comprising only four bits is used, in contrast to systems according to the prior art, which are somewhat longer fields have to use.)

    Die Funktionsweise der Barrieren-Transaktion ist in35veranschaulicht, in welcher eine CPU12Agezeigt wird, die an eine E/A-Paket-Schnittstelle 16A gekoppelt ist, und zwar über einen X-Pfad, welcher die in Reihe geschalteten Router14Aund14Xsowie die TNet-Links L () umfasst. Wie weiter oben beschrieben, verfügt jeder Router über einen Porteingang502, welcher elastische FIFOs506beinhaltet. Da für die folgende Abhandlung nur das elastische FIFO benötigt wird, wird auch nur dieses gezeigt.The functioning of the barrier transaction is in35illustrates in which a CPU12Ais shown, which is coupled to an I / O packet interface 16A, via an X path, which the routers connected in series14Aand14Xas well as the TNet links L (). As described above, each router has a port input502which elastic FIFOs506includes. Since only the elastic FIFO is required for the following treatise, only this is shown.

    Angenommen der abgehende Abschnitt des Links L(1) zwischen den Routern14Aund14X, der Linkabschnitt L(1)', wird unbenutzbar, wie in35durch die gestrichelte Linie angedeutet. Dazu kann es aus einer ganzen Reihe von Gründen kommen: fehlerhafte Anschlüsse, ein verrücktes Kabel, usw. Somit endet der abgehende Nachrichtenverkehr von dem Router14Azu dem Router14X. Alle von der CPU12Aeingeleiteten Nachrichtenpaketübertragungen, die sich gerade auf dem Weg zu der E/A-Paket-Schnittstelle 16A, jedoch noch vor dem fehlerbehafteten Linkabschnitt L(1)', befinden, erhalten keine Reaktion und enden daher mit der Anzeige einer Zeitablauffehlermeldung für den betreffenden Kommunikationspfad. Es wird intern ein Interrupt generiert und die Prozessoren20(20a, 20b –2) leiten die Ausführung einer Barrieren-Anforderungsroutine (BA-Routine) ein. Diese Barrieren-Anforderungsroutine (BA) deaktiviert zuerst den Pfad durch Löschen des PEX-Bits in dem 'Erlaubnisse'-Feld (13B) eines jeden ZVÜ-Eintrags (13A) für jede ausgegebene Transaktion (d. h. jedes Nachrichtenpaket), das in Ermangelung einer Antwort mit einer Zeitablauffehlermeldung endet. Dadurch wird gewährleistet, dass wenn das von der ausstehenden Transaktion geforderte Antwort-Nachrichtenpaket verspätet eintritt, es ausgeschieden wird, wenn auf die ZVÜ-Tabelle zugegriffen wird, um diese Antwort anhand der Tabelle zu prüfen; damit sind jene Nachrichtenpakete gemeint, welche nicht aufgrund eines Fehlers in einem Link blockiert werden, sondern nur vorübergehend ausser Evidenz geraten, bevor sie schliesslich einen Bestimmungsort erreichen.Suppose the outgoing section of link L (1) between the routers14Aand14X, the link section L (1) ', becomes unusable, as in35indicated by the dashed line. This can happen for a number of reasons: faulty connections, a crazy cable, etc. This means that outgoing message traffic from the router ends14Ato the router14X, All from the CPU12AInitiated message packet transfers that are currently on the way to the I / O packet interface 16A, but before the faulty link section L (1) ', do not receive any response and therefore end with the display of a timeout error message for the relevant communication path. An interrupt is generated internally and the processors20(20a, 20b -2) initiate the execution of a barrier request routine (BA routine). This barrier request routine (BA) first disables the path by clearing the PEX bit in the 'Permissions' field (13B) of each ZVÜ entry (13A) for each transaction issued (ie each message packet) that ends with a timeout error message in the absence of a response. This ensures that if the response message packet requested by the pending transaction arrives late, it will be dropped if the ZVÜ table is accessed to check that response against the table; This means those message packets that are not blocked due to an error in a link, but are only temporarily out of evidence before they finally reach a destination.

    Zu einem späteren Zeitpunkt wird das Link L(1) repariert und gibt nun veraltete Nachrichtenpakete frei, wie zum Beispiel jenes, das in 1152 in dem elastischen FIFO506'des Routers14Aangezeigt wird. Die Wiederherstellung des Links L(1) wird von dem IP 18 an die CPU12Agemeldet, so dass die CPU12Anun von der Möglichkeit unterrichtet ist, dass der X-Pfad zwischen ihr und der E/A-Schnittstelle 16A nunmehr wieder in Betrieb ist. Die CPU kann jedoch diesen Pfad (durch Zurücksetzen der PEX-Bits in den jeweiligen ZVÜ-Einträgen, welche der E/A-Paket-Schnittstelle16Aentsprechen) noch nicht aktivieren. Der Grund dafür liegt in dem möglichen Vorhandensein veralteter Transaktions-Nachrichtenpakete, wie zum Beispiel jenes, das in 1152 in dem elastischen FIFO506'angezeigt wird, welches zu seinem ursprünglichen Bestimmungsort (der E/A-Paket-Schnittstelle) weiterfliesst, und die E/A-Paket-Schnittstelle16Adazu veranlasst, es als ein völlig anderes Nachrichtenpaket zu interpretieren und dementsprechend darauf zu reagieren.At a later time link L (1) is repaired and now releases outdated message packets, such as the one in 1152 in the elastic FIFO506 'of the router14Ais shown. The restoration of link L (1) is from the IP 18 to the CPU12Areported so the CPU12Ais now informed of the possibility that the X path between it and the I / O interface 16A is now operational again. However, the CPU can follow this path (by resetting the PEX bits in the respective ZVÜ entries that the I / O packet interface16Ado not yet activate. The reason for this is the possible presence of outdated transactional message packets, such as that in 1152 in the elastic FIFO506 'is displayed which flows to its original destination (the I / O packet interface) and the I / O packet interface16Aprompted to interpret it as a completely different message packet and to react accordingly.

    Um diesem Problem zu begegnen, und bevor der X-Pfad von der CPU12Aerneut für den normalen Datenverkehr genutzt wird, verwendet die in der CPU12Alaufenden BA-Subroutine die BÜM-Logik88(siehe auch die5und15), um eine Barrieren-Transaktion einzuleiten, indem sie ein "Barrieren-Anforderungs"-Nachrichtenpaket zu der E/A-Paket-Schnittstelle16Asendet. Das Barrieren-Anforderungs-Nachrichtenpaket wird von einem Unterfeld des in dem Header des Nachrichtenpakets enthaltenen Ursprungsort-Feldes als solches erkannt (siehe die3Aund3B). Wie weiter oben angemerkt, enthält das Datenfeld des Barrieren-Anforderungs-Nachrichtenpakets einen von der bestimmten Transaktion einmalig verwendeten Datenwert.To counter this problem and before the X path from the CPU12Ais used again for normal data traffic, used in the CPU12Arunning BA subroutine the BÜM logic88(see also the5and15) to initiate a barrier transaction by sending a "barrier request" message packet to the I / O packet interface16Asends. The barrier request message packet is recognized as such by a subfield of the origin field contained in the header of the message packet (see FIG3Aand3B). As noted above, the data field of the barrier request message packet contains a data value used once by the particular transaction.

    Wenn das Barrieren-Anforderungs-Nachrichtenpaket (d. h. 1150) von der X-Schnittstelleneinheit16ader E/A-Paket-Schnittstelle16Aempfangen wird, formuliert diese ein Antwort-Nachrichtenpaket, dessen Datenabschnitt denselben, identischen, einmalig verwendeten Datenwert enthält, der in dem empfangenen Barrieren-Anforderungs-Nachrichtenpaket1150enthalten war. Die E/A-Paket-Schnittstelle16Aüberträgt daraufhin die Antwort über die Router14X,14Azurück zu der CPU12A.If the barrier request message packet (ie 1150) from the X interface unit16athe I / O packet interface16Ais received, it formulates a response message packet, the data section of which contains the same, identical, one-time data value that is used in the received barrier request message packet1150was included. The I / O packet interface16Athen transmits the answer via the router14X.14Aback to the CPU12A,

    Wenn die Antwort auf das Barrieren-Anforderungs-Nachrichtenpaket von der CPU12Aempfangen wird, wird es durch die ZVÜ-Logik90'verarbeitet (siehe auch die5und11). Die Barrieren-Antwort verwendet einen Zvü-Eintrag mit aktiviertem "B"-Feld in dem entsprechenden 'Erlaubnisse'-Feld des Eintrags, um es Barrieren-Antworten, jedoch keinen anderen Transaktionsarten, zu ermöglichen, vollständig verarbeitet zu werden. (Zum Zeitpunkt des Sendens der Barrieren-Transaktion wurde von der CPU ein zur Verwendung bei der Überprüfung der Antwort bestimmter ZVÜ-Eintrag erstellt.) Wie oben erklärt, enthält jede Barrieren-Transaktion einen Datenwert, welcher in der Antwort an den Absender zurückgegeben wird. Dieser einmalig verwendete Wert erlaubt es der CPU (d. h. der BA-Routine), den gesendeten Datenwert mit dem in der Antwort empfangenen zu vergleichen, wodurch gewährleistet werden kann, dass es sich bei der Antwort nicht um einen Teil einer anderen Barrieren-Transaktion handelt. Ist die Barrieren-Antwort an die CPU12Azurückgekehrt, so ist damit die Möglichkeit ausgeschlossen, dass sich noch irgendwo entlang diesem Pfad irgendwelche veralteten Pakete in den FIFO-Puffern befinden. Ausserdem hat die CPU12Adamit auch abgeklärt, dass der zuvor deaktivierte Pfad nunmehr wieder für den normalen Datenverkehr genutzt werden kann. Demgemäss reaktiviert die CPU12Aden Pfad durch Setzen des PEX-Erlaubnisse-Feldes in allen ZVÜ-Einträgen, die diesen Pfad verwenden.If the response to the barrier request message packet from the CPU12Ais received, it is through the ZVÜ logic90 'processed (see also the5and11). The barrier response uses a Zvü entry with the "B" field enabled in the corresponding 'Permissions' field of the entry to allow barrier responses, but no other transaction types, to be fully processed become. (At the time the barrier transaction was sent, the CPU created a ZVÜ entry for use in checking the response.) As explained above, each barrier transaction contains a data value that is returned in the response to the sender. This one-time value allows the CPU (ie, the BA routine) to compare the data value sent with that received in the response, which can ensure that the response is not part of another barrier transaction. Is the barrier response to the CPU12Areturned, so the possibility is excluded that there are still some obsolete packets somewhere along this path in the FIFO buffers. In addition, the CPU12AThis also clarifies that the path previously deactivated can now be used again for normal data traffic. The CPU reactivates accordingly12Athe path by setting the PEX permission field in all ZVÜ entries that use this path.

    Obgleich hier eine vollständige und komplette Offenlegung der Erfindung vorgenommen wurde, ist es für einschlägig gebildete Fachleute offensichtlich, dass verschiedene Abänderungen und Modifikationen an den verschiedenen Aspekten der Erfindung vorgenommen werden können, ohne dass dadurch von dem wahren Umfang der nachfolgenden Ansprüche abgegangen wird. So wurde zum Beispiel ein Schema zur Schaffung einer Erkennung von Fehlern, die bei der Übertragung von Befehls-/Datensymbolen auftreten können, in Form eines 8-Bit/9-Bit-Codes, welcher gewisse Fehler erkennen kann, offengelegt. Es sollte für einschlägig gebildete Fachleute klar sein, dass dieses Konzept auf andere, ähnliche Codes, wie zum Beispiel einen 9-Bit/10-Bit-Code oder einen sich über mehrere Bytes erstreckenden Code erweitert werden kann. Weiterhin könnten die Router14entsprechend konfiguriert werden, sodass sie eine beliebige Anzahl von Ports aufweisen; die Befehls/Datenpaketformate könnten anders gestaltet sein (mit mehr oder weniger Bits in dem Headerfeld und in anderen Feldern); die Leitwegtopologien können, unter Verwendung der Router14, als Ringe, als Bäume, als Hypercube und dergleichen ausgebildet sein.While a full and complete disclosure of the invention has been made herein, it will be apparent to those skilled in the art that various changes and modifications can be made in the various aspects of the invention without departing from the true scope of the following claims. For example, a scheme for creating a detection of errors that can occur during the transmission of command / data symbols in the form of an 8-bit / 9-bit code, which can detect certain errors, has been disclosed. It should be clear to those skilled in the art that this concept can be extended to other similar codes, such as a 9-bit / 10-bit code or a multi-byte code. The router could14be configured accordingly so that they have any number of ports; the command / data packet formats could be designed differently (with more or fewer bits in the header field and in other fields); the routing topologies can be made using the routers14, rings, trees, hypercubes and the like.

    Claims (16)

    Translated from German

    Verfahren zur Einrichtung eines synchronisierten, im wesentlichen im Gleichschritt laufenden Betriebs eines ersten Prozessors (12A) mit einem zweiten Prozessor (12B), um den zweiten Prozessor im wesentlichen gleichzeitig mit dem ersten Prozessor dieselben Instruktionen abarbeiten zu lassen, wobei der erste und der zweite Prozessor einen im wesentlichen identischen Aufbau aufweisen und zum Zweck des gegenseitigen Datenaustauschs miteinander verbunden sind, wobei der erste und der zweite Prozessor jeweils einen ersten bzw. einen zweiten Speicher (28) zum Abspeichern von Befehlen und Daten beinhalten, und wobei das Verfahren die folgenden Schritte umfaßt: das Synchronisieren (1050) des zweiten Prozessors (12B) mit dem ersten Prozessor (12A); den Betrieb des ersten Prozessors, um Befehle eines von dem ersten Speicher kommenden Befehlsstroms abzuarbeiten, wobei der erste Prozessor auf die in dem ersten Speicher befindlichen Befehle und Daten zugreift und die ausgelesenen Befehle und Daten an den zweiten Prozessor weitergibt, und zwar zusammen mit Adreßdaten betreffend die Speicherorte in dem zweiten Speicher, welche jenen Speicherorten entsprechen, an denen die Befehle und Daten in dem ersten Speicher abgespeichert sind; das in einem Speicher erfolgende Aufbewahren einer Liste jener Speicherorte in dem ersten Speicher, die an den zweiten Prozessor übermittelt worden sind; das Abspeichern (1084) der empfangenen Befehle und Daten in dem zweiten Speicher an den von den Adreßdaten angegebenen Speicherorten; das in der Liste erfolgende Markieren erster Speicherorte des ersten Speichers, welche mit neuen Daten bzw. neuen Befehlen beschrieben werden, nachdem die Befehle bzw. Daten zum Zweck der Übermittlung an den zweiten Prozessor aus den ersten Speicherorten ausgelesen worden sind; das Bestätigen der erfolgreichen Übermittlung von Befehlen und Daten an den zweiten Speicher durch die Verwendung von bedingten Schreiboperationen an den ausgewählten Speicherorten in dem ersten Speicher, und zwar nur dann, wenn die jeweils ausgewählten Speicherorte in der Liste nicht als gerade einem im Anschluß an die Übermittlung erfolgenden Überschreibungsvorgang mit neuen Daten bzw. Befehlen unterliegend markiert sind; und das periodische Senden (1086) von aus den Befehlen und Daten des ersten Prozessors ausgewählten Befehlen und Daten zum Zweck des Abspeicherns in dem zweiten Speicher, und zwar an Speicherorten, welche Speicherorten des ersten Speichers entsprechen.Method for setting up a synchronized, essentially synchronous operation of a first processor (12A) with a second processor (12B) to have the second processor process the same instructions essentially simultaneously with the first processor, the first and the second processor having an essentially identical structure and being connected to one another for the purpose of mutual data exchange, the first and the second processor in each case a first or a second memory (28) for storing instructions and data, and the method comprises the following steps: the synchronization (1050) of the second processor (12B) with the first processor (12A); the operation of the first processor in order to process commands of a command stream coming from the first memory, the first processor accessing the commands and data located in the first memory and forwarding the read commands and data to the second processor, together with address data the storage locations in the second memory which correspond to those storage locations in which the commands and data are stored in the first memory; storing in memory a list of those locations in the first memory that have been communicated to the second processor; saving (1084) the received commands and data in the second memory in the memory locations indicated by the address data; marking in the list first storage locations of the first memory which are written with new data or new commands after the commands or data have been read from the first storage locations for the purpose of transmission to the second processor; confirming the successful delivery of commands and data to the second memory by using conditional writes to the selected locations in the first memory only if the selected locations in the list are not exactly one after the transfer the overwriting process that takes place is marked with new data or commands underneath; and periodic sending (1086) of instructions and data selected from the instructions and data of the first processor for the purpose of storage in the second memory, specifically at locations which correspond to locations of the first memory.Verfahren nach Anspruch 1, wobei der Schritt des Synchronisierens das Verzögern des Betriebs des zweiten Prozessors in Bezug auf den Betrieb des ersten Prozessors beinhaltet, so daß der zweite Prozessor eine Anzahl von Taktintervallen nach dem ersten Prozessor betrieben wird, um einen Befehl auszuführen, welcher identisch ist mit einem Befehl, der die jeweilige Anzahl von Taktintervallen zuvor durch den ersten Prozessor ausgeführt worden ist.The method of claim 1, wherein the step of synchronizing the delay the operation of the second processor with respect to the operation of the includes first processor, so that the second processor Number of clock intervals after the first processor is operated, to execute a command which is identical to a command that the respective number of clock intervals previously executed by the first processor is.Verfahren nach Anspruch 1, wobei die Daten und Befehle jeweils eine Anzahl an Bits beinhalten, welche einen Fehlerkorrekturcode (ECC) bilden, und wobei das Markieren der ersten Speicherorte das Invertieren eines Bits aus der Anzahl der den ECC bildenden Bits beinhaltet.The method of claim 1, wherein the data and commands are each include a number of bits that contain an error correction code (ECC), and marking the first locations is the Inverting a bit from the number of bits forming the ECC includes.Verfahren nach Anspruch 3, wobei das Invertieren des einen Bits aus der Anzahl der den ECC bildenden Bits ein vorgegebenes ECC-Syndrom erzeugt, welches eine Markierung anzeigt.The method of claim 3, wherein inverting the one bit a predetermined ECC syndrome from the number of bits forming the ECC generated, which indicates a marker.Verfahren nach Anspruch 1, wobei der erste und der zweite Prozessor jeweils mit einem zumindest dem Zweck des Datenaustauschs zwischen Prozessoren dienenden Paar von Routern (14A,14B) verbunden ist, und wobei der Schritt des Synchronisierens beinhaltet, daß die Router entsprechend eingestellt werden, um eine ausschließlich von dem ersten Prozessor kommende Informationsübermittlung zuzulassen.The method of claim 1, wherein the first and the second processor each with a pair of routers serving at least for the purpose of data exchange between processors (14A.14B) is connected, and the step of synchronizing includes setting the routers accordingly to permit information transmission coming exclusively from the first processor.Verfahren nach Anspruch 2, wobei der erste und der zweite Prozessor jeweils mit einem zumindest dem Datenaustausch zwischen Prozessoren dienenden Paar von Routern (14A,14B) verbunden ist, und wobei der Schritt des Synchronisierens beinhaltet, daß die Datenübermittlung von dem Routerpaar zu dem zweiten Prozessor in Bezug auf die Datenübermittlung von dem Routerpaar zu dem ersten Prozessor verzögert wird.Method according to Claim 2, the first and the second processor each having a pair of routers (14A.14B), and wherein the step of synchronizing includes delaying data transfer from the router pair to the second processor with respect to data transfer from the router pair to the first processor.Verfahren nach Anspruch 1, wobei während des Schrittes des Kopierens der ausgewählten Speicherorte des ersten Speichers in den zweiten Speicher die Speicherorte in einer Speicherliste aufgezeichnet werden und als einen "Readlinked"-Zustand aufweisend gekennzeichnet werden.The method of claim 1, wherein during the copying step the selected one Storage locations of the first storage in the second storage locations be recorded in a memory list and as a "readlinked" state are marked.Verfahren nach Anspruch 7, wobei die Speicherliste es ermöglicht, die kopierten Speicherorte zurückzuverfolgen und somit die Speicherorte für zuletzt, d. h. zeitgleich mit den Kopieroperationen bzw. im Anschluß an diese geschriebene Daten bzw. Befehle zu überwachen.The method of claim 7, wherein the memory list enables retrace the copied locations and thus the locations for last, d. H. at the same time as or after the copy operations monitor written data or commands.Verfahren nach Anspruch 8, wobei die ersten Speicherorte, welche zeitgleich mit den Kopieroperationen bzw. im Anschluß an diese mit neuen Daten bzw. Befehlen beschrieben werden, in der Speicherliste entsprechend markiert werden.The method of claim 8, wherein the first locations which at the same time as or after the copy operations be written with new data or commands in the memory list be marked accordingly.Verfahren nach Anspruch 9, wobei die Speicherlisteneinträge, welche den ersten Speicherorten entsprechen, die mit den rückgegebenen Daten beschrieben worden sind, nachdem letztere zuvor in die entsprechenden Speicherorte im zweiten Speicher kopiert worden waren, aus der Speicherliste gelöscht werden.The method of claim 9, wherein the memory list entries which match the first locations that match those returned Data have been described after the latter has previously been included in the corresponding Locations in the second memory had been copied from the memory list deleted become.Verfahren nach Anspruch 10, wobei die Speicherliste jeden "Readlinked"-Speicherorteintrag mit einer entsprechenden, zukünftigen "WriteConditional"-Operation verbindet.The method of claim 10, wherein the memory list includes each readlinked location entry with a corresponding, future "WriteConditional" operation connects.Verfahren nach Anspruch 1, wobei der Schritt des Markierens beinhaltet, daß Speicherorten in dem ersten Speicher, welche in entsprechende Speicherorte in dem zweiten Speicher kopiert worden sind und welche zeitgleich mit den Kopieroperationen bzw. im Anschluß an diese mit neuen Daten bzw. Befehlen beschrieben worden sind, ein "unsauberer" Status zugewiesen wird.The method of claim 1, wherein the step of labeling involves locations in the first memory, which in corresponding memory locations in have been copied to the second memory and which at the same time with the copying operations or following them with new data or commands have been described, assigned an "unclean" status becomes.Verfahren nach Anspruch 12, welches als weiteren Schritt umfaßt, daß nur jene ausgewählten Speicherorte in dem ersten Speicher als "sauber" markiert werden, die mit den rückgegebenen Daten beschrieben sind, welche zuvor in die entsprechenden Speicherorte in dem zweiten Speicher kopiert worden sind.A method according to claim 12, which further comprises the step of only those chosen Locations in the first memory are marked as "clean", those with the returned Data are described which are previously stored in the corresponding storage locations have been copied to the second memory.Verfahren nach Anspruch 13, welches als weiteren Schritt die Durchführung einer Inkremental-Kopieroperation (1086) beinhaltet, die das Wiederholen der Schritte des Kopierens und Bestätigens für jeden nicht als "bereinigt" markierten Speicherort im Speicher des ersten Prozessors umfaßt.A method according to claim 13, which comprises performing an incremental copy operation (1086) which includes repeating the steps of copying and confirming for each location in the memory of the first processor not marked as "cleaned".Verfahren nach Anspruch 14, welches als weiteren Schritt das Wiederholen der Schritte des Kopierens und Bestätigens bis zum Erreichen einer Durchsatzrate umfaßt, bei welcher die Speicherorte im wesentlichen im selben Ausmaß kopiert und bereinigt werden, in welchem Speicherorte als "unsauber" markiert werden, indem diese Speicherorte durch den ersten Prozessor mit neuen Daten bzw. Befehlen beschrieben werden.The method of claim 14, which as a further step Repeat the steps of copying and confirming until you reach one Throughput rate includes where the locations are copied to substantially the same extent and clean up in which locations are marked as "dirty" by using these locations with the first processor new data or commands are described.Verfahren nach Anspruch 15, welches als weiteren Schritt beinhaltet, daß die Verarbeitung zeitweilig angehalten wird und die Prozessoren nach Beendigung der Schritte des Kopierens und Bestätigens im Duplexmodus betrieben werden.The method of claim 15, which includes as a further step that the Processing is temporarily stopped and the processors after Completion of copying and confirming operations in duplex mode become.

    DE69627749T 1992-12-17 1996-06-06 Procedure for the synchronization of two central processing units for duplex lock step operations Expired - Fee Related DE69627749T2 (en)

    Applications Claiming Priority (11)

    Application NumberPriority DateFiling DateTitleUS99294492A1992-12-171992-12-17US08/474,772 US5914953A (en)1992-12-171995-06-07Network message routing using routing table information and supplemental enable information for deadlock preventionUS08/485,055 US6233702B1 (en)1992-12-171995-06-07Self-checked, lock step processor pairsUS08/485,062 US6496940B1 (en)1992-12-171995-06-07Multiple processor system with standby sparingUS08/474,770 US5675579A (en)1992-12-171995-06-07Method for verifying responses to messages using a barrier messageUS08/485,053 US5790776A (en)1992-12-171995-06-07Apparatus for detecting divergence between a pair of duplexed, synchronized processor elementsUS08/483,748 US5689689A (en)1992-12-171995-06-07Clock circuits for synchronized processor systems having clock generator circuit with a voltage control oscillator producing a clock signal synchronous with a master clock signalUS08/482,628 US5574849A (en)1992-12-171995-06-07Synchronized data transmission between elements of a processing systemUS4735411995-06-07US08/484,281 US5838894A (en)1992-12-171995-06-07Logical, fail-functional, dual central processor units formed from three processor unitsUS08/473,541 US5751955A (en)1992-12-171995-06-07Method of synchronizing a pair of central processor units for duplex, lock-step operation by copying data into a corresponding locations of another memory

    Publications (2)

    Publication NumberPublication DateDE69627749D1 DE69627749D1 (en)2003-06-05DE69627749T2 true DE69627749T2 (en)2004-03-11
    Family

    ID=38982880

    Family Applications (7)

    Application NumberTitlePriority DateFiling DateDE69627240T Expired - Fee Related DE69627240T2 (en)1992-12-171996-06-06Synchronized data transfer between units of a processing systemDE69629766T Expired - Fee Related DE69629766T2 (en)1992-12-171996-06-06Fast failing, functionally failing fault tolerant multiprocessor systemDE69627750T Expired - Fee Related DE69627750T2 (en)1992-12-171996-06-06Method for divergence detection between a pair of synchronized duplex processor elementsDE69627749T Expired - Fee Related DE69627749T2 (en)1992-12-171996-06-06Procedure for the synchronization of two central processing units for duplex lock step operationsDE69635570T Expired - Fee Related DE69635570T2 (en)1992-12-171996-06-06Clocking for a fast-failing, functionally missing, fault-tolerant multiprocessor systemDE69626239T Expired - Fee Related DE69626239T2 (en)1992-12-171996-06-06Fault-tolerant multiprocessor systemDE69626583T Expired - Fee Related DE69626583T2 (en)1992-12-171996-06-06Quickly missing, functionally missing, fault-tolerant multiprocessor system

    Family Applications Before (3)

    Application NumberTitlePriority DateFiling DateDE69627240T Expired - Fee Related DE69627240T2 (en)1992-12-171996-06-06Synchronized data transfer between units of a processing systemDE69629766T Expired - Fee Related DE69629766T2 (en)1992-12-171996-06-06Fast failing, functionally failing fault tolerant multiprocessor systemDE69627750T Expired - Fee Related DE69627750T2 (en)1992-12-171996-06-06Method for divergence detection between a pair of synchronized duplex processor elements

    Family Applications After (3)

    Application NumberTitlePriority DateFiling DateDE69635570T Expired - Fee Related DE69635570T2 (en)1992-12-171996-06-06Clocking for a fast-failing, functionally missing, fault-tolerant multiprocessor systemDE69626239T Expired - Fee Related DE69626239T2 (en)1992-12-171996-06-06Fault-tolerant multiprocessor systemDE69626583T Expired - Fee Related DE69626583T2 (en)1992-12-171996-06-06Quickly missing, functionally missing, fault-tolerant multiprocessor system

    Country Status (5)

    CountryLinkUS (9)US5751955A (en)EP (9)EP0757315B1 (en)JP (9)JPH09128353A (en)CA (9)CA2178393A1 (en)DE (7)DE69627240T2 (en)

    Families Citing this family (540)

    * Cited by examiner, † Cited by third partyPublication numberPriority datePublication dateAssigneeTitleUS5819110A (en) *1995-06-051998-10-06Ricoh Company, Ltd.System for determining whether connection or connectionless modes of communication should be used to transmit information between devices in accordance with priorities of eventsGB2268817B (en) *1992-07-171996-05-01Integrated Micro Products LtdA fault-tolerant computer systemUS5867501A (en) *1992-12-171999-02-02Tandem Computers IncorporatedEncoding for communicating data and commandsGB2293468B (en) *1994-09-211999-09-29Sony Uk LtdData processing systemsUS5835953A (en)1994-10-131998-11-10Vinca CorporationBackup system that takes a snapshot of the locations in a mass storage device that has been identified for updating prior to updatingUS8639625B1 (en)1995-02-132014-01-28Intertrust Technologies CorporationSystems and methods for secure transaction management and electronic rights protectionUS5892900A (en) *1996-08-301999-04-06Intertrust Technologies Corp.Systems and methods for secure transaction management and electronic rights protectionUS6831702B1 (en) *1995-03-242004-12-14Sony CorporationMethod of and apparatus for identifying a signal transmitting sourceGB2301686A (en) *1995-06-031996-12-11IbmTransaction synchronisation procedure in a routing nodeFR2737030B1 (en) *1995-07-211997-08-14Bull SaMETHOD FOR TRANSFERRING MESSAGES IN A MULTINODAL COMPUTER SYSTEMUS5805920A (en) *1995-11-131998-09-08Tandem Computers IncorporatedDirect bulk data transfersUS5802265A (en) *1995-12-011998-09-01Stratus Computer, Inc.Transparent fault tolerant computer systemJP2730534B2 (en) *1995-12-181998-03-25日本電気株式会社Data backup method and apparatus for data communication network terminalUS6886167B1 (en) *1995-12-272005-04-26International Business Machines CorporationMethod and system for migrating an object between a split status and a merged statusUS5864738A (en) *1996-03-131999-01-26Cray Research, Inc.Massively parallel processing system using two data paths: one connecting router circuit to the interconnect network and the other connecting router circuit to I/O controllerUS6002347A (en) *1996-04-231999-12-14Alliedsignal Inc.Integrated hazard avoidance systemUS6026426A (en) *1996-04-302000-02-15International Business Machines CorporationApplication programming interface unifying multiple mechanismsUS6141769A (en)1996-05-162000-10-31Resilience CorporationTriple modular redundant computer system and associated methodUS6243667B1 (en) *1996-05-282001-06-05Cisco Systems, Inc.Network flow switching and flow data exportUS5862316A (en) *1996-07-011999-01-19Sun Microsystems, Inc.Multiprocessing system having coherency-related error logging capabilitiesUS5860072A (en) *1996-07-111999-01-12Tandem Computers IncorporatedMethod and apparatus for transporting interface definition language-defined data structures between heterogeneous systemsUS6173327B1 (en)1996-07-112001-01-09Jeroen De BorstObject-oriented method and apparatus for information deliveryUS6263485B1 (en)1996-07-112001-07-17Andrew SchofieldMethod and apparatus for describing an interface definition language-defined interface, operation, and data typeFR2751444B1 (en) *1996-07-181998-09-11France TelecomMETHOD AND DEVICE FOR CONTROLLING THE TIME SYNCHRONIZATION BETWEEN A PROCESSING UNIT, FOR EXAMPLE A MICROPROCESSOR, AND EXTERNAL MEANSUS6067610A (en) *1996-07-292000-05-23Motorola, Inc.Method and data processor for synchronizing multiple masters using multi-bit synchronization indicatorsUS5859973A (en) *1996-08-211999-01-12International Business Machines CorporationMethods, system and computer program products for delayed message generation and encoding in an intermittently connected data communication systemUS6173349B1 (en) *1996-10-182001-01-09Samsung Electronics Co., Ltd.Shared bus system with transaction and destination IDUS5860158A (en) *1996-11-151999-01-12Samsung Electronics Company, Ltd.Cache control unit with a cache request transaction-oriented protocolUS5915088A (en) *1996-12-051999-06-22Tandem Computers IncorporatedInterprocessor messaging systemUS5909682A (en) *1996-12-301999-06-01Mci Worldcom, Inc.Real-time device data management for managing access to data in a telecommunication systemJP3537281B2 (en) *1997-01-172004-06-14株式会社日立製作所Shared disk type multiplex systemUS5991824A (en) *1997-02-061999-11-23Silicon Graphics, Inc.Method and system for simultaneous high bandwidth input outputJP4038700B2 (en) *1997-02-172008-01-30ソニー株式会社Electronic device control apparatus and method, and information processing system and methodJPH10240557A (en) *1997-02-271998-09-11Mitsubishi Electric CorpStand-by redundant systemJPH10254843A (en) *1997-03-061998-09-25Hitachi LtdCrossbar switch, parallel computer with the crossbar switch and broadcasting communication methodJP3390824B2 (en) *1997-03-192003-03-31株式会社日立製作所Multiplexing control device and fault recovery method thereforUS6012150A (en) *1997-03-272000-01-04International Business Machines CorporationApparatus for synchronizing operator initiated commands with a failover process in a distributed processing systemUS6212175B1 (en) *1997-04-222001-04-03Telxon CorporationMethod to sustain TCP connectionUS6512766B2 (en)1997-08-222003-01-28Cisco Systems, Inc.Enhanced internet packet routing lookupUS6212183B1 (en)1997-08-222001-04-03Cisco Technology, Inc.Multiple parallel packet routing lookupUS5991893A (en) *1997-08-291999-11-23Hewlett-Packard CompanyVirtually reliable shared memoryUS6058491A (en) *1997-09-152000-05-02International Business Machines CorporationMethod and system for fault-handling to improve reliability of a data-processing systemUS6092213A (en) *1997-09-302000-07-18Tandem Computers IncorporatedFault tolerant method of maintaining and distributing configuration information in a distributed processing systemUS5974574A (en) *1997-09-301999-10-26Tandem Computers IncorporatedMethod of comparing replicated databases using checksum informationUS6055660A (en) *1997-10-022000-04-25International Business Machines CorporationMethod for identifying SMP bus transfer errorsWO1999026133A2 (en)1997-11-141999-05-27Marathon Technologies CorporationMethod for maintaining the synchronized execution in fault resilient/fault tolerant computer systemsUS6085303A (en) *1997-11-172000-07-04Cray Research, Inc.Seralized race-free virtual barrier networkUS6230252B1 (en)1997-11-172001-05-08Silicon Graphics, Inc.Hybrid hypercube/torus architectureUS6252612B1 (en) *1997-12-302001-06-26Micron Electronics, Inc.Accelerated graphics port for multiple memory controller computer systemUS6157398A (en) *1997-12-302000-12-05Micron Technology, Inc.Method of implementing an accelerated graphics port for a multiple memory controller computer systemUS7071946B2 (en) *1997-12-302006-07-04Micron Technology, Inc.Accelerated graphics port for a multiple memory controller computer systemUS6111877A (en)1997-12-312000-08-29Cisco Technology, Inc.Load sharing across flowsUS5978852A (en) *1998-01-061999-11-023Com CorporationLAN switch interface for providing arbitration between different simultaneous memory access requestsUS6545981B1 (en) *1998-01-072003-04-08Compaq Computer CorporationSystem and method for implementing error detection and recovery in a system area networkUS6493343B1 (en)1998-01-072002-12-10Compaq Information Technologies GroupSystem and method for implementing multi-pathing data transfers in a system area networkUS6163834A (en) *1998-01-072000-12-19Tandem Computers IncorporatedTwo level address translation and memory registration system and methodUS6061753A (en) *1998-01-272000-05-09Emc CorporationApparatus and method of accessing target devices across a bus utilizing initiator identifiersUS7047300B1 (en) *1998-02-102006-05-16Sprint Communications Company L.P.Survivable and scalable data system and method for computer networksUS6418514B1 (en) *1998-02-172002-07-09Internationl Business Machines CorporationRemoval of posted operations from cache operations queueJP3211878B2 (en) *1998-03-062001-09-25日本電気株式会社Communication processing control means and information processing apparatus having the sameJP3687373B2 (en) *1998-12-042005-08-24株式会社日立製作所Highly reliable distributed systemUS7012896B1 (en)1998-04-202006-03-14AlcatelDedicated bandwidth data communication switch backplaneUS6314106B1 (en) *1998-04-202001-11-06Alcatel Internetworking, Inc.Receive processing for dedicated bandwidth data communication switch backplaneUS6173351B1 (en) *1998-06-152001-01-09Sun Microsystems, Inc.Multi-processor system bridgeUS6260159B1 (en)1998-06-152001-07-10Sun Microsystems, Inc.Tracking memory page modification in a bridge for a multi-processor systemJP3720981B2 (en) *1998-06-152005-11-30日本電気株式会社Multiprocessor systemUS6148348A (en) *1998-06-152000-11-14Sun Microsystems, Inc.Bridge interfacing two processing sets operating in a lockstep mode and having a posted write buffer storing write operations upon detection of a lockstep errorUS6587961B1 (en) *1998-06-152003-07-01Sun Microsystems, Inc.Multi-processor system bridge with controlled accessUS6026444A (en) *1998-06-242000-02-15Siemens Pyramid Information Systems, Inc.TORUS routing element error handling and self-clearing with link lockup preventionUS6603768B1 (en)1998-06-272003-08-05Intel CorporationMulti-protocol conversion assistance method and system for a network acceleratorUS6724767B1 (en) *1998-06-272004-04-20Intel CorporationTwo-dimensional queuing/de-queuing methods and systems for implementing the sameUS6728249B2 (en)1998-06-272004-04-27Intel CorporationSystem and method for performing cut-through forwarding in an ATM network supporting LAN emulationUS6604136B1 (en)1998-06-272003-08-05Intel CorporationApplication programming interfaces and methods enabling a host to interface with a network processorUS6735773B1 (en)1998-06-272004-05-11Intel CorporationMethod and apparatus for issuing commands to a network processor configured to provide a plurality of APIsUS6657959B1 (en)1998-06-272003-12-02Intel CorporationSystems and methods for implementing ABR with guaranteed MCRUS6370121B1 (en)1998-06-292002-04-09Cisco Technology, Inc.Method and system for shortcut trunking of LAN bridgesUS6119215A (en) *1998-06-292000-09-12Cisco Technology, Inc.Synchronization and control system for an arrayed processing engineUS6101599A (en) *1998-06-292000-08-08Cisco Technology, Inc.System for context switching between processing elements in a pipeline of processing elementsUS6836838B1 (en)1998-06-292004-12-28Cisco Technology, Inc.Architecture for a processor complex of an arrayed pipelined processing engineUS6513108B1 (en)1998-06-292003-01-28Cisco Technology, Inc.Programmable processing engine for efficiently processing transient dataUS6195739B1 (en)1998-06-292001-02-27Cisco Technology, Inc.Method and apparatus for passing data among processor complex stages of a pipelined processing engineUS6256753B1 (en) *1998-06-302001-07-03Sun Microsystems, Inc.Bus error handling in a computer systemUS7165152B2 (en) *1998-06-302007-01-16Emc CorporationMethod and apparatus for managing access to storage devices in a storage system with access controlJP2000020490A (en) *1998-07-012000-01-21Fujitsu LtdComputer having remote procedure calling mechanism or object request broker mechanism, data transfer method and transfer method storage mediumUS6279058B1 (en) *1998-07-022001-08-21Advanced Micro Devices, Inc.Master isochronous clock structure having a clock controller coupling to a CPU and two data busesUS6202164B1 (en)1998-07-022001-03-13Advanced Micro Devices, Inc.Data rate synchronization by frame rate adjustmentUS6374282B1 (en)1998-08-282002-04-16Compaq Computer CorporationMethod and apparatus for tracking multi-threaded system area network (SAN) trafficEP0982890A1 (en) *1998-08-282000-03-01Siemens AktiengesellschaftTelecommunication system and method for generating a master clock in itUS6141324A (en) *1998-09-012000-10-31Utah State UniversitySystem and method for low latency communicationUS7013305B2 (en) *2001-10-012006-03-14International Business Machines CorporationManaging the state of coupling facility structures, detecting by one or more systems coupled to the coupling facility, the suspended state of the duplexed command, detecting being independent of message exchangeEP1112539A2 (en) *1998-09-182001-07-04Clearspeed Technology LimitedComputer system comprising latency tolerant and intolerant modulesUS8010627B1 (en)1998-09-252011-08-30Sprint Communications Company L.P.Virtual content publishing systemUS6411991B1 (en)1998-09-252002-06-25Sprint Communications Company L.P.Geographic data replication system and method for a networkUS6216174B1 (en)1998-09-292001-04-10Silicon Graphics, Inc.System and method for fast barrier synchronizationUS6728839B1 (en)1998-10-282004-04-27Cisco Technology, Inc.Attribute based memory pre-fetching techniqueUS6272563B1 (en)1998-11-032001-08-07Intel CorporationMethod and apparatus for communicating routing and attribute information for a transaction between hubs in a computer systemUS6311289B1 (en)1998-11-032001-10-30Telefonaktiebolaget Lm Ericsson (Publ)Explicit state copy in a fault tolerant system using a remote write operationUS6360333B1 (en) *1998-11-192002-03-19Compaq Computer CorporationMethod and apparatus for determining a processor failure in a multiprocessor computerUS6286048B1 (en) *1998-12-042001-09-04Cisco Technology, Inc.System and method for discovering relative states of processorsUS6460146B1 (en)1998-12-042002-10-01Cisco Technology, Inc.System and method for establishing processor redundancyUS6249756B1 (en) *1998-12-072001-06-19Compaq Computer Corp.Hybrid flow controlUS6898189B1 (en) *2000-08-232005-05-24Cisco Technology, Inc.Restartable spanning tree for high availability network systemsUS6948092B2 (en) *1998-12-102005-09-20Hewlett-Packard Development Company, L.P.System recovery from errors for processor and associated componentsUS6393582B1 (en) *1998-12-102002-05-21Compaq Computer CorporationError self-checking and recovery using lock-step processor pair architectureUS6385747B1 (en)1998-12-142002-05-07Cisco Technology, Inc.Testing of replicated components of electronic deviceUS6173386B1 (en)1998-12-142001-01-09Cisco Technology, Inc.Parallel processor with debug capabilityUS6920562B1 (en)1998-12-182005-07-19Cisco Technology, Inc.Tightly coupled software protocol decode with hardware data encryptionUS6748442B1 (en) *1998-12-212004-06-08Advanced Micro Devices, Inc.Method and apparatus for using a control signal on a packet based communication linkUS7206877B1 (en)1998-12-222007-04-17Honeywell International Inc.Fault tolerant data communication networkUS6950428B1 (en)1998-12-302005-09-27Hewlett-Packard Development Company, L.P.System and method for configuring adaptive sets of links between routers in a system area network (SAN)US6253299B1 (en)1999-01-042001-06-26International Business Machines CorporationVirtual cache registers with selectable width for accommodating different precision data formatsUS6546464B2 (en) *1999-01-082003-04-08Nortel Networks LimitedMethod and apparatus for increasing data rates in a data network while maintaining system coherencyJP3581589B2 (en) *1999-01-112004-10-27株式会社日立製作所Communication network system and service management method in communication network systemUS6853623B2 (en)1999-03-052005-02-08Cisco Technology, Inc.Remote monitoring of switch networkUS6367027B1 (en) *1999-03-222002-04-02Infineon Technologies AgSkew pointer generationGB2348580B (en) *1999-03-302001-03-143Com CorpSystem and method for congestion control in packet-based communication networksUS6336172B1 (en) *1999-04-012002-01-01International Business Machines CorporationStoring and tracking multiple copies of data in a data storage library systemUS6336173B1 (en) *1999-04-012002-01-01International Business Machines CorporationStoring and tracking multiple copies of data in data storage librariesUS6505254B1 (en) *1999-04-192003-01-07Cisco Technology, Inc.Methods and apparatus for routing requests in a networkUS6421583B1 (en) *1999-05-202002-07-16Lancer PartnershipBeverage dispenser including an improved electronic control systemUS6343330B1 (en) *1999-05-252002-01-29Cisco Technology, Inc.Arrangement for preventing looping of explorer frames in a transparent bridging domain having multiple entry pointsUS6473829B1 (en) *1999-05-282002-10-29International Business Machines CorporationData storage device providing communication between processing unitsUS6557044B1 (en)1999-06-012003-04-29Nortel Networks LimitedMethod and apparatus for exchange of routing database informationUS6791939B1 (en)1999-06-022004-09-14Sun Microsystems, Inc.Dynamic generation of deadlock-free routingsUS6631421B1 (en)1999-06-022003-10-07Sun Microsystems, Inc.Recursive partitioning of networksUS6603742B1 (en)1999-06-022003-08-05Sun Microsystems, Inc.Network reconfigurationUS6584073B1 (en)1999-06-022003-06-24Sun Microsystems, Inc.Network topologiesUS6567856B1 (en) *1999-06-022003-05-20Sun Microsystems, Inc.Deadlock-free routingUS6584432B1 (en) *1999-06-072003-06-24Agilent Technologies, Inc.Remote diagnosis of data processing unitsUS6421723B1 (en) *1999-06-112002-07-16Dell Products L.P.Method and system for establishing a storage area network configurationUS6957346B1 (en) *1999-06-152005-10-18Ssh Communications Security Ltd.Method and arrangement for providing security through network address translations using tunneling and compensationsUS6249849B1 (en) *1999-06-162001-06-19International Business Machines Corporation“Fail-Safe” updating of redundant data in multiple data storage librariesUS6330560B1 (en) *1999-09-102001-12-11International Business Machines CorporationMultiple manager to multiple server IP locking mechanism in a directory-enabled networkUS6751698B1 (en)1999-09-292004-06-15Silicon Graphics, Inc.Multiprocessor node controller circuit and methodUS6674720B1 (en)1999-09-292004-01-06Silicon Graphics, Inc.Age-based network arbitration system and methodUS6363464B1 (en) *1999-10-082002-03-26Lucent Technologies Inc.Redundant processor controlled systemUS6870814B1 (en) *1999-10-122005-03-22Hewlett-Packard Development Company, L.P.Link extenders with error propagation and reportingUS6536000B1 (en)1999-10-152003-03-18Sun Microsystems, Inc.Communication error reporting mechanism in a multiprocessing computer systemUS6918044B1 (en) *1999-10-152005-07-12Cisco Technology, Inc.Password protection for high reliability computer systemsUS6681341B1 (en)1999-11-032004-01-20Cisco Technology, Inc.Processor isolation method for integrated multi-processor systemsUS6529983B1 (en)1999-11-032003-03-04Cisco Technology, Inc.Group and virtual locking mechanism for inter processor synchronizationUS6651184B1 (en) *1999-11-032003-11-18Hewlett-Packard Development Company, L.P.Isochronous transfer mode on a universal serial bus with error correction algorithmsUS6278742B1 (en) *1999-11-192001-08-21Siemens Information And Communication Mobile Llc.Method and system for power-conserving interference avoidance in communication between a mobile unit and a base unit in a wireless telecommunication systemUS6453390B1 (en) *1999-12-102002-09-17International Business Machines CorporationProcessor cycle time independent pipeline cache and method for pipelining data from a cacheUS6754764B1 (en) *1999-12-212004-06-22Intel CorporationMethod and apparatus for maintaining order in a pipelined process and its applicationFR2803057B1 (en) *1999-12-222002-11-29Centre Nat Etd SpatialesCOMPUTER SYSTEM TOLERANT TO TRANSIENT ERRORS AND MANAGEMENT METHOD IN SUCH A SYSTEMUS6581164B1 (en) *2000-01-032003-06-17Conexant Systems, Inc.System for adjusting clock frequency based upon amount of unread data stored in sequential memory when reading a new line of data within a field of dataUS6600959B1 (en)2000-02-042003-07-29International Business Machines CorporationMethod and apparatus for implementing microprocessor control logic using dynamic programmable logic arraysUS6772270B1 (en)2000-02-102004-08-03Vicom Systems, Inc.Multi-port fibre channel controllerUS6877044B2 (en)2000-02-102005-04-05Vicom Systems, Inc.Distributed storage management platform architectureUS6807620B1 (en)2000-02-112004-10-19Sony Computer Entertainment Inc.Game system with graphics processorUS6769046B2 (en) *2000-02-142004-07-27Palmchip CorporationSystem-resource routerUS6256253B1 (en) *2000-02-182001-07-03Infineon Technologies North America Corp.Memory device with support for unaligned accessUS6738826B1 (en)2000-02-242004-05-18Cisco Technology, Inc.Router software upgrade employing redundant processorsUS6545549B2 (en) *2000-03-022003-04-08Texas Instruments IncorporatedRemotely controllable phase locked loop clock circuitUS6473467B1 (en) *2000-03-222002-10-29Qualcomm IncorporatedMethod and apparatus for measuring reporting channel state information in a high efficiency, high performance communications systemUS6892237B1 (en) *2000-03-282005-05-10Cisco Technology, Inc.Method and apparatus for high-speed parsing of network messagesAU2007237267B2 (en) *2000-03-302009-11-19Qualcomm IncorporatedMethod and apparatus for measuring and reporting channel state information in a high efficiency, high performance communications systemUS6687851B1 (en)2000-04-132004-02-03Stratus Technologies Bermuda Ltd.Method and system for upgrading fault-tolerant systemsUS6735715B1 (en)2000-04-132004-05-11Stratus Technologies Bermuda Ltd.System and method for operating a SCSI bus with redundant SCSI adaptorsUS6820213B1 (en)2000-04-132004-11-16Stratus Technologies Bermuda, Ltd.Fault-tolerant computer system with voter delay bufferUS6708283B1 (en)2000-04-132004-03-16Stratus Technologies, Bermuda Ltd.System and method for operating a system with redundant peripheral bus controllersUS6691257B1 (en)2000-04-132004-02-10Stratus Technologies Bermuda Ltd.Fault-tolerant maintenance bus protocol and method for using the sameUS6633996B1 (en)2000-04-132003-10-14Stratus Technologies Bermuda Ltd.Fault-tolerant maintenance bus architectureUS6802022B1 (en)2000-04-142004-10-05Stratus Technologies Bermuda Ltd.Maintenance of consistent, redundant mass storage imagesUS6647516B1 (en) *2000-04-192003-11-11Hewlett-Packard Development Company, L.P.Fault tolerant data storage systems and methods of operating a fault tolerant data storage systemWO2001086445A1 (en) *2000-05-112001-11-15Patmos International CorporationConnectionist topology computer/serverUS6505269B1 (en)2000-05-162003-01-07Cisco Technology, Inc.Dynamic addressing mapping to eliminate memory resource contention in a symmetric multiprocessor systemUS6950963B1 (en) *2000-05-302005-09-27Agere Systems Inc.Control method and apparatus for testing of multiple processor integrated circuits and other digital systemsUS6823356B1 (en) *2000-05-312004-11-23International Business Machines CorporationMethod, system and program products for serializing replicated transactions of a distributed computing environmentUS20020103942A1 (en) *2000-06-022002-08-01Guillaume ComeauWireless java deviceEP1162540A1 (en) *2000-06-072001-12-12Siemens Schweiz AGMethod and apparatus for synchronizing a system with coupled data processing unitsUS6697367B1 (en)2000-06-122004-02-24Emc CorporationMultihop system callsUS7263476B1 (en) *2000-06-122007-08-28Quad ResearchHigh speed information processing and mass storage system and method, particularly for information and application serversGB2379776B (en) *2000-06-122005-08-03Emc CorpMultipath multihop remote data facilityUS6725388B1 (en) *2000-06-132004-04-20Intel CorporationMethod and system for performing link synchronization between two clock domains by inserting command signals into a data stream transmitted between the two clock domainsUS7908520B2 (en) *2000-06-232011-03-15A. Avizienis And Associates, Inc.Self-testing and -repairing fault-tolerance infrastructure for computer systemsUS6956858B2 (en) *2000-06-302005-10-18Mayan Networks CorporationNetwork routing table and packet routing methodUS6820171B1 (en)2000-06-302004-11-16Lsi Logic CorporationMethods and structures for an extensible RAID storage architectureWO2002006918A2 (en) *2000-07-142002-01-24Telcordia Technologies, Inc.A method, system, and product for preventing data loss and forwarding loops when conducting a scheduled change to the topology of a link-state routing protocol networkDE10039001A1 (en) *2000-08-102002-02-21Philips Corp Intellectual PtyArrangement for testing an integrated circuitUS6748039B1 (en)2000-08-112004-06-08Advanced Micro Devices, Inc.System and method for synchronizing a skip pattern and initializing a clock forwarding interface in a multiple-clock systemUS20020049859A1 (en) *2000-08-252002-04-25William BruckertClustered computer system and a method of forming and controlling the clustered computer systemUS6977908B2 (en) *2000-08-252005-12-20Hewlett-Packard Development Company, L.P.Method and apparatus for discovering computer systems in a distributed multi-system clusterUS6662319B1 (en) *2000-08-312003-12-09Hewlett-Packard Development Company, L.P.Special encoding of known bad dataUS6765922B1 (en) *2000-09-082004-07-20Hewlett-Packard Development Company, L.P.Speculative transmit for system area network latency reductionUS8972590B2 (en)2000-09-142015-03-03Kirsten AldrichHighly accurate security and filtering softwareUS7587499B1 (en) *2000-09-142009-09-08Joshua HaghpassandWeb-based security and filtering system with proxy chainingUS6760777B1 (en) *2000-09-152004-07-06Pluris, Inc.Method and apparatus for distributing and providing fault tolerance to path-vector routing protocols within a multi-processor routerUS6813721B1 (en)2000-09-202004-11-02Stratus Computer Systems, S.A.R.L.Methods and apparatus for generating high-frequency clocks deterministically from a low-frequency system reference clockUS6728909B1 (en)2000-09-262004-04-27Hewlett-Packard Development Company, L.P.Data communication with speculative reception of data in a data processing systemUS6738344B1 (en)2000-09-272004-05-18Hewlett-Packard Development Company, L.P.Link extenders with link alive propagationUS6604177B1 (en) *2000-09-292003-08-05Hewlett-Packard Development Company, L.P.Communication of dissimilar data between lock-stepped processorsUS6854072B1 (en) *2000-10-172005-02-08Continuous Computing CorporationHigh availability file server for providing transparent access to all data before and after component failoverUS20020107943A1 (en) *2000-11-102002-08-08Heath Chester A.Reset control in modular network computersUS7154905B2 (en) *2000-11-222006-12-26Silicon ImageMethod and system for nesting of communications packetsGB2369690B (en) *2000-11-292002-10-16Sun Microsystems IncEnhanced protection for memory modification trackingGB2369693B (en) *2000-11-292002-10-16Sun Microsystems IncProtection for memory modification trackingGB2369692B (en)2000-11-292002-10-16Sun Microsystems IncProcessor state reintegrationGB2369694B (en)2000-11-292002-10-16Sun Microsystems IncEfficient memory modification trackingGB2369691B (en)2000-11-292003-06-04Sun Microsystems IncControl logic for memory modification trackingUS7054949B2 (en) *2001-01-192006-05-30World Streaming Network, Inc.System and method for streaming mediaFR2820521B1 (en) *2001-02-022003-04-25St Microelectronics SaMETHOD AND DEVICE FOR GENERATING A SYNCHRONIZATION VARIABLE, INTEGRATED CIRCUIT AND DIGITAL DISC DRIVEUS6968510B2 (en) *2001-02-052005-11-22Alpine Electronics, Inc.Function executing apparatus and menu item displaying method thereforUS7219083B2 (en) *2001-02-282007-05-15Ncr CorporationCurrency systemUS6766479B2 (en)2001-02-282004-07-20Stratus Technologies Bermuda, Ltd.Apparatus and methods for identifying bus protocol violationsUS6578122B2 (en) *2001-03-012003-06-10International Business Machines CorporationUsing an access key to protect and point to regions in windows for infinibandUS6766413B2 (en)2001-03-012004-07-20Stratus Technologies Bermuda Ltd.Systems and methods for caching with file-level granularityUS6601148B2 (en) *2001-03-012003-07-29International Business Machines CorporationInfiniband memory windows management directly in hardwareUS6615221B2 (en) *2001-03-092003-09-02Hewlett-Packard Development Company, Lp.Scalable transport layer protocol for multiprocessor interconnection networks that tolerates interconnection component failureUS7653710B2 (en)2002-06-252010-01-26Qst Holdings, Llc.Hardware task managerUS7249242B2 (en) *2002-10-282007-07-24Nvidia CorporationInput pipeline registers for a node in an adaptive computing engineUS8843928B2 (en)2010-01-212014-09-23Qst Holdings, LlcMethod and apparatus for a general-purpose, multiple-core system for implementing stream-based computationsUS7962716B2 (en)2001-03-222011-06-14Qst Holdings, Inc.Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elementsUS6836839B2 (en)2001-03-222004-12-28Quicksilver Technology, Inc.Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elementsUS7206309B2 (en) *2001-03-272007-04-17Nortel Networks LimitedHigh availability packet forward apparatus and methodUS7065672B2 (en) *2001-03-282006-06-20Stratus Technologies Bermuda Ltd.Apparatus and methods for fault-tolerant computing using a switching fabricUS6928583B2 (en) *2001-04-112005-08-09Stratus Technologies Bermuda Ltd.Apparatus and method for two computing elements in a fault-tolerant server to execute instructions in lockstepUS20020156888A1 (en) *2001-04-232002-10-24Lee Man-Ho L.Method and apparatus for detecting and reporting configuration errors in a multi-component switching fabricUS6959337B2 (en) *2001-04-232005-10-25Hewlett-Packard Development Company, L.P.Networked system for assuring synchronous access to critical facilitiesUS20030189927A1 (en) *2001-04-272003-10-09Foster Michael S.Method and system for multiframe buffering in a routing deviceUS6577678B2 (en)2001-05-082003-06-10Quicksilver TechnologyMethod and system for reconfigurable channel codingDE10122693B4 (en)2001-05-102004-05-06Siemens AgMethod for operating a redundant processor unit for a highly available computing systemUS6996750B2 (en) *2001-05-312006-02-07Stratus Technologies Bermuda Ltd.Methods and apparatus for computer bus error terminationUS6757753B1 (en)2001-06-062004-06-29Lsi Logic CorporationUniform routing of storage access requests through redundant array controllersUS6633972B2 (en) *2001-06-072003-10-14Intel CorporationMethod and apparatus for utilizing static queues in processor stagingUS6985975B1 (en) *2001-06-292006-01-10Sanera Systems, Inc.Packet lockstep system and methodUS6630872B1 (en)2001-07-202003-10-07Cmc Electronics, Inc.Digital indirectly compensated crystal oscillatorUS7382787B1 (en)2001-07-302008-06-03Cisco Technology, Inc.Packet routing and switching deviceUS7418536B2 (en) *2001-07-302008-08-26Cisco Technology, Inc.Processor having systolic array pipeline for processing data packetsUS6950394B1 (en) *2001-09-072005-09-27Agilent Technologies, Inc.Methods and systems to transfer information using an alternative routing associated with a communication networkUS7269663B2 (en) *2001-09-282007-09-11Intel CorporationTagging packets with a lookup key to facilitate usage of a unified packet forwarding cacheUS6859866B2 (en) *2001-10-012005-02-22International Business Machines CorporationSynchronizing processing of commands invoked against duplexed coupling facility structuresUS6910158B2 (en) *2001-10-012005-06-21International Business Machines CorporationTest tool and methods for facilitating testing of duplexed computer functionsUS6944787B2 (en) *2001-10-012005-09-13International Business Machines CorporationSystem-managed duplexing of coupling facility structuresUS7099935B2 (en) *2001-10-012006-08-29International Business Machines CorporationDynamically determining whether to process requests synchronously or asynchronouslyUS6813726B2 (en)2001-10-012004-11-02International Business Machines CorporationRestarting a coupling facility command using a token from another coupling facility commandUS6954817B2 (en) *2001-10-012005-10-11International Business Machines CorporationProviding at least one peer connection between a plurality of coupling facilities to couple the plurality of coupling facilitiesJP2003131900A (en) *2001-10-242003-05-09Hitachi LtdServer system operation control methodUS6766482B1 (en)2001-10-312004-07-20Extreme NetworksEthernet automatic protection switchingUS7376811B2 (en) *2001-11-062008-05-20Netxen, Inc.Method and apparatus for performing computations and operations on data using data steeringAUPR893201A0 (en) *2001-11-162001-12-13Telstra New Wave Pty LtdActive networksUS8412915B2 (en) *2001-11-302013-04-02Altera CorporationApparatus, system and method for configuration of adaptive integrated circuitry having heterogeneous computational elementsGB2382960B (en) *2001-12-052005-03-16Ipwireless IncMethod and arrangement for data processing in a communication systemUS7447146B2 (en) *2001-12-192008-11-04Hewlett-Packard Development Company, L.P.Method and apparatus for supporting multiple independent failure domainsUS7181510B2 (en) *2002-01-042007-02-20Hewlett-Packard Development Company, L.P.Method and apparatus for creating a secure embedded I/O processor for a remote server management controllerUS6687791B2 (en)2002-01-072004-02-03Sun Microsystems, Inc.Shared cache for data integrity operationsUS6931576B2 (en) *2002-01-072005-08-16Sun Microsystems, Inc.Data integrity device providing heightened error protection in a data processing systemUS20030140025A1 (en) *2002-01-242003-07-24Daum Steven B.Enhanced air travel security method and apparatusUS7290277B1 (en) *2002-01-242007-10-30Avago Technologies General Ip Pte LtdControl of authentication data residing in a network deviceUS7113938B2 (en)2002-02-142006-09-26Gravic, Inc.Method of increasing system availability by splitting a systemUS20030172106A1 (en) *2002-02-142003-09-11Iti, Inc.Method of increasing system availability by assigning process pairs to processor pairsJP3665030B2 (en) *2002-02-192005-06-29Necマイクロシステム株式会社Bus control method and information processing apparatusUS6832270B2 (en) *2002-03-082004-12-14Hewlett-Packard Development Company, L.P.Virtualization of computer system interconnectsGB2399913B (en) *2002-03-192004-12-15Sun Microsystems IncFault tolerant computer systemGB2399917B (en) *2002-03-192005-01-19Sun Microsystems IncComputer systemUS7240239B2 (en) *2002-03-202007-07-03National Institute Of Advanced Industrial Science And TechnologyInput and output control means for computer system storage and a software execution method using sameJP2003288279A (en)2002-03-282003-10-10Hitachi LtdFault detection method between storage device and storage device used for itUS7660984B1 (en)2003-05-132010-02-09Quicksilver TechnologyMethod and system for achieving individualized protected space in an operating systemUS7328414B1 (en)2003-05-132008-02-05Qst Holdings, LlcMethod and system for creating and programming an adaptive computing engineUS7487508B2 (en) *2002-05-162009-02-03Hewlett-Packard Development Company, L.P.System and method for reconstructing client web page accesses from captured network packetsTWI295885B (en) *2002-06-032008-04-11Action Star Entpr Co LtdUbs sharer for use with an usb deviceUS6799717B2 (en)2002-06-102004-10-05Hewlett-Packard Development Company, L.P.Document auto-routing using a digital transmitter cover sheetUS7525904B1 (en)2002-06-202009-04-28Cisco Technology, Inc.Redundant packet routing and switching device and methodUS7450438B1 (en) *2002-06-202008-11-11Cisco Technology, Inc.Crossbar apparatus for a forwarding table memory in a routerUS7710991B1 (en)2002-06-202010-05-04Cisco Technology, Inc.Scalable packet routing and switching device and methodJP4388471B2 (en) *2002-06-212009-12-24トムソン ライセンシングMulti-chassis broadcast router with common clockUS7092990B2 (en) *2002-06-262006-08-15International Business Machines CorporationHandling node address failure in a distributed nodal system of processorsUS7471643B2 (en) *2002-07-012008-12-30Panasonic CorporationLoosely-biased heterogeneous reconfigurable arraysJP4421812B2 (en) *2002-07-082010-02-24日本電気株式会社Computer system having diagnostic functionJP3774826B2 (en) *2002-07-112006-05-17日本電気株式会社Information processing deviceEP1408417A1 (en) *2002-08-012004-04-14Fujitsu Siemens Computers, LLCEfficient messaging in a parallel processing systemUS20040034820A1 (en) *2002-08-152004-02-19Soltis, Donald C.Apparatus and method for pseudorandom rare event injection to improve verification qualityEP1394559A1 (en) *2002-08-272004-03-03Siemens AktiengesellschaftMethod and apparatus for wire fault detection and correctionUS7266607B2 (en) *2002-08-272007-09-04International Business Machines CorporationQuasi-high availability hosted applicationsUS8108656B2 (en)2002-08-292012-01-31Qst Holdings, LlcTask definition for specifying resource requirementsAU2003268552A1 (en) *2002-09-102004-04-30Union Switch And Signal, Inc.Hot standby method and apparatusEP1398700A1 (en) *2002-09-122004-03-17Siemens AktiengesellschaftMethod and circuit device for synchronizing redundant processing unitsAU2002952023A0 (en) *2002-10-142002-10-31Curtin University Of TechnologyImplementation of constraints to ensure deadlock avoidance in networksUS7280620B2 (en) *2002-10-182007-10-09Canon Kabushiki KaishaElectronic device including image forming apparatusUS7266786B2 (en) *2002-11-052007-09-04Sonics, Inc.Method and apparatus for configurable address mapping and protection architecture and hardware for on-chip systemsUS7286468B2 (en) *2002-11-122007-10-23Cisco Technology, Inc.Routing system and method for synchronizing a routing system with peers after failoverUS7225301B2 (en)2002-11-222007-05-29Quicksilver TechnologiesExternal memory controller nodeUS7131028B2 (en) *2002-12-112006-10-31Sun Microsystems, Inc.System and method for interconnecting nodes of a redundant computer systemUS7536476B1 (en)2002-12-202009-05-19Cisco Technology, Inc.Method for performing tree based ACL lookupsUS8281084B2 (en) *2003-01-132012-10-02Emlilex Design & Manufacturing Corp.Method and interface for access to memory within a first electronic device by a second electronic deviceUS9369498B2 (en) *2003-01-302016-06-14Nokia Technologies OyMessage-based conveyance of load control informationJP4209916B2 (en) *2003-02-202009-01-14ザ−リンク・セミコンダクタ−・インコ−ポレイテッドClock domain adjustment in packet networksUS7127564B2 (en) *2003-02-282006-10-24Standard Microsystems CorporationDouble buffered flash programmingUS7324458B2 (en) *2003-03-212008-01-29Intel CorporationPhysical layer loopbackUS7103744B2 (en) *2003-03-272006-09-05Hewlett-Packard Development Company, L.P.Binding a memory window to a queue pairUS8291176B2 (en) *2003-03-272012-10-16Hewlett-Packard Development Company, L.P.Protection domain groups to isolate access to memory windowsUS7502826B2 (en) *2003-03-272009-03-10Hewlett-Packard Development Company, L.P.Atomic operationsUS7565504B2 (en)2003-03-272009-07-21Hewlett-Packard Development Company, L.P.Memory window access mechanismUS7089378B2 (en)2003-03-272006-08-08Hewlett-Packard Development Company, L.P.Shared receive queuesUS8023520B2 (en) *2003-03-272011-09-20Hewlett-Packard Development Company, L.P.Signaling packetUS20040193833A1 (en) *2003-03-272004-09-30Kathryn HamptonPhysical mode addressingUS20040193832A1 (en) *2003-03-272004-09-30Garcia David J.Physical mode windowsUS7554993B2 (en) *2003-03-272009-06-30Hewlett-Packard Development Company, L.P.Method and apparatus for performing connection management with multiple stacksUS7646705B2 (en) *2003-04-112010-01-12International Business Machines CorporationMinimizing data loss chances during controller switchingUS6928027B2 (en) *2003-04-112005-08-09Qualcomm IncVirtual dual-port synchronous RAM architectureJP4385834B2 (en) *2003-04-152009-12-16パナソニック株式会社Routing control method and router apparatusUS20040230673A1 (en) *2003-04-172004-11-18International Business Machines CorporationVirtual counter device tolerant to hardware counter resetsJP4492035B2 (en)2003-04-212010-06-30日本電気株式会社Data processing deviceJP4300462B2 (en) *2003-04-232009-07-22富士フイルム株式会社Information recording / reproducing method and apparatusUS6996785B1 (en)2003-04-252006-02-07Universal Network Machines, Inc .On-chip packet-based interconnections using repeaters/routersUS7080288B2 (en) *2003-04-282006-07-18International Business Machines CorporationMethod and apparatus for interface failure survivability using error correctionEP1629614A1 (en) *2003-05-202006-03-01Philips Intellectual Property & Standards GmbHTime-triggered communication system and method for the synchronization of a dual-channel networkUS7484096B1 (en) *2003-05-282009-01-27Microsoft CorporationData validation using signatures and samplingUS7457791B1 (en)2003-05-302008-11-25Microsoft CorporationUsing invariants to validate applications statesJP4473609B2 (en) *2003-06-102010-06-02株式会社デンソーElectronic systemUS7206963B2 (en) *2003-06-122007-04-17Sun Microsystems, Inc.System and method for providing switch redundancy between two server systemsEP1496435A1 (en) *2003-07-112005-01-12Yogitech SpaDependable microcontroller, method for designing a dependable microcontroller and computer program product thereforUS7152186B2 (en) *2003-08-042006-12-19Arm LimitedCross-triggering of processing devicesUS7617376B2 (en)2003-08-142009-11-10Hewlett-Packard Development Company, L.P.Method and apparatus for accessing a memoryUS7757232B2 (en) *2003-08-142010-07-13Hewlett-Packard Development Company, L.P.Method and apparatus for implementing work request listsUS7530108B1 (en)2003-09-152009-05-05The Directv Group, Inc.Multiprocessor conditional access module and method for using the sameUS7287184B2 (en) *2003-09-162007-10-23Rockwell Automation Technologies, Inc.High speed synchronization in dual-processor safety controllerUS8959171B2 (en)2003-09-182015-02-17Hewlett-Packard Development Company, L.P.Method and apparatus for acknowledging a request for data transferUS7404190B2 (en) *2003-09-182008-07-22Hewlett-Packard Development Company, L.P.Method and apparatus for providing notification via multiple completion queue handlersUS7761921B2 (en) *2003-10-312010-07-20Caterpillar IncMethod and system of enabling a software option on a remote machineUS7743382B2 (en) *2003-11-032010-06-22Ramal Acquisition Corp.System for deadlock condition detection and correction by allowing a queue limit of a number of data tokens on the queue to increaseUS7225356B2 (en) *2003-11-062007-05-29Siemens Medical Solutions Health Services CorporationSystem for managing operational failure occurrences in processing devicesUS20050114735A1 (en) *2003-11-202005-05-26Smith Zachary S.Systems and methods for verifying core determinacyUS7353433B2 (en) *2003-12-082008-04-01Intel CorporationPoisoned error signaling for proactive OS recoveryUS20050125458A1 (en) *2003-12-092005-06-09Sutherland James E.Chronological data record accessUS8150996B2 (en) *2003-12-162012-04-03Hewlett-Packard Development Company, L.P.Method and apparatus for handling flow control for a data transferUS7197658B2 (en) *2003-12-312007-03-27Intel CorporationSynchronizing samples of a multimedia stream with a system clockUS7356618B2 (en) *2003-12-312008-04-08Intel CorporationMethod and system for synchronizing platform clocks in a distributed wireless platformUS7266713B2 (en) *2004-01-092007-09-04Intel CorporationApparatus and method for adaptation of time synchronization of a plurality of multimedia streamsUS7200626B1 (en)2004-01-222007-04-03Unisys CorporationSystem and method for verification of a quiesced database copyKR20050079563A (en) *2004-02-062005-08-10삼성전자주식회사Bus system for reducing response delay timeUS7426656B2 (en) *2004-03-302008-09-16Hewlett-Packard Development Company, L.P.Method and system executing user programs on non-deterministic processorsUS20050240806A1 (en) *2004-03-302005-10-27Hewlett-Packard Development Company, L.P.Diagnostic memory dump method in a redundant processorUS20060020852A1 (en) *2004-03-302006-01-26Bernick David LMethod and system of servicing asynchronous interrupts in multiple processors executing a user programUS8799706B2 (en) *2004-03-302014-08-05Hewlett-Packard Development Company, L.P.Method and system of exchanging information between processorsJP4789425B2 (en) *2004-03-312011-10-12富士通株式会社Route table synchronization method, network device, and route table synchronization programUS7889733B2 (en) *2004-04-282011-02-15Cisco Technology, Inc.Intelligent adjunct network deviceSE528607C2 (en) *2004-04-302006-12-27Kvaser Consultant AbSystem and device for temporarily relating events in a vehicleUS7472306B2 (en) *2004-05-182008-12-30Intel CorporationProcessor timing apparatus, systems, and methodsUS7730456B2 (en) *2004-05-192010-06-01Sony Computer Entertainment Inc.Methods and apparatus for handling processing errors in a multi-processing systemUS7272745B2 (en)2004-06-302007-09-18Intel CorporationData protection systemUS7308605B2 (en) *2004-07-202007-12-11Hewlett-Packard Development Company, L.P.Latent error detectionUS20060020594A1 (en) *2004-07-212006-01-26Microsoft CorporationHierarchical drift detection of data setsDE102004036261A1 (en) *2004-07-262006-03-23Siemens AgMethod and arrangement for synchronizing the memory contents between two redundant devices during operationJP4313266B2 (en) *2004-07-292009-08-12株式会社エヌ・ティ・ティ・ドコモServer apparatus, control method thereof and connection establishment methodDE102004038590A1 (en) *2004-08-062006-03-16Robert Bosch GmbhMethod for delaying access to data and / or commands of a dual-computer system and corresponding delay unitUS7681105B1 (en) *2004-08-092010-03-16Bakbone Software, Inc.Method for lock-free clustered erasure coding and recovery of data across a plurality of data stores in a networkUS7681104B1 (en) *2004-08-092010-03-16Bakbone Software, Inc.Method for erasure coding data across a plurality of data stores in a networkGB2417865A (en) *2004-09-032006-03-08Marconi Comm LtdMonitoring and modifying communications between end nodes at an intermediate nodeUS7272813B2 (en) *2004-09-152007-09-18Omnivision Technologies, Inc.Transparent re-mapping of parallel computational unitsUS7398528B2 (en) *2004-11-132008-07-08Motorola, Inc.Method and system for efficient multiprocessor processing in a mobile wireless communication deviceJP4411602B2 (en) *2004-12-162010-02-10日本電気株式会社Fault tolerant computer systemJP2006172142A (en) *2004-12-162006-06-29Matsushita Electric Ind Co LtdMultiprocessor systemJP4161276B2 (en) *2004-12-172008-10-08日本電気株式会社Fault-tolerant computer device and synchronization method thereofUS7447796B2 (en) *2004-12-172008-11-04International Business Machines CorporationSystem, method and program product to route message packetsJP4289293B2 (en) *2004-12-202009-07-01日本電気株式会社Start control method, duplex platform system, and information processing apparatusJP2006178550A (en) *2004-12-212006-07-06Nec CorpDuplex synchronization system and method for operating duplex synchronization systemJP4182948B2 (en) *2004-12-212008-11-19日本電気株式会社Fault tolerant computer system and interrupt control method thereforJP2006178616A (en) *2004-12-212006-07-06Nec CorpFault tolerant system, controller used thereform, operation method and operation programJP2006178636A (en) *2004-12-212006-07-06Nec CorpFault tolerant computer and its control methodJP2006178618A (en) *2004-12-212006-07-06Nec CorpFault tolerant computer and data transmission control methodJP4168403B2 (en) *2004-12-212008-10-22日本電気株式会社Fault tolerant system, control device used therefor, access control method, and control programUS7889712B2 (en)2004-12-232011-02-15Cisco Technology, Inc.Methods and apparatus for providing loop free routing tablesUS7467327B2 (en)2005-01-252008-12-16Hewlett-Packard Development Company, L.P.Method and system of aligning execution point of duplicate copies of a user program by exchanging information about instructions executedUS20060168414A1 (en) *2005-01-252006-07-27Micron Technology, Inc.Memory block locking apparatus and methodsUS7328331B2 (en) *2005-01-252008-02-05Hewlett-Packard Development Company, L.P.Method and system of aligning execution point of duplicate copies of a user program by copying memory storesUS7506197B2 (en) *2005-02-072009-03-17International Business Machines CorporationMulti-directional fault detection systemUS7826379B2 (en) *2005-02-072010-11-02International Business Machines CorporationAll-to-all sequenced fault detection systemUS7529963B2 (en) *2005-02-072009-05-05International Business Machines CorporationCell boundary fault detection systemUS7437595B2 (en) *2005-02-072008-10-14International Business Machines CorporationRow fault detection systemUS8495411B2 (en) *2005-02-072013-07-23International Business Machines CorporationAll row, planar fault detection systemUS7451342B2 (en) *2005-02-072008-11-11International Business Machines CorporationBisectional fault detection systemUS7254691B1 (en) *2005-03-042007-08-07Xilinx, Inc.Queuing and aligning dataUS20060222126A1 (en) *2005-03-312006-10-05Stratus Technologies Bermuda Ltd.Systems and methods for maintaining synchronicity during signal transmissionUS20060222125A1 (en) *2005-03-312006-10-05Edwards John W JrSystems and methods for maintaining synchronicity during signal transmissionJP2006285631A (en) *2005-03-312006-10-19Yokogawa Electric CorpDuplex systemCN100414531C (en) *2005-04-222008-08-27四川长虹电器股份有限公司Double processor communication methodUS7590885B2 (en) *2005-04-262009-09-15Hewlett-Packard Development Company, L.P.Method and system of copying memory from a source processor to a target processor by duplicating memory writesUS7933966B2 (en) *2005-04-262011-04-26Hewlett-Packard Development Company, L.P.Method and system of copying a memory area between processor elements for lock-step executionUS7426614B2 (en) *2005-04-282008-09-16Hewlett-Packard Development Company, L.P.Method and system of executing duplicate copies of a program in lock stepUS7730350B2 (en) *2005-04-282010-06-01Hewlett-Packard Development Company, L.P.Method and system of determining the execution point of programs executed in lock stepUS8103861B2 (en) *2005-04-282012-01-24Hewlett-Packard Development Company, L.P.Method and system for presenting an interrupt request to processors executing in lock stepUS7549082B2 (en) *2005-04-282009-06-16Hewlett-Packard Development Company, L.P.Method and system of bringing processors to the same computational pointUS7831882B2 (en)2005-06-032010-11-09Rambus Inc.Memory system with error detection and retry modes of operationUS9459960B2 (en)2005-06-032016-10-04Rambus Inc.Controller device for use with electrically erasable programmable memory chip with error detection and retry modes of operationUS20070011513A1 (en) *2005-06-132007-01-11Intel CorporationSelective activation of error mitigation based on bit level error countJP4831599B2 (en)2005-06-282011-12-07ルネサスエレクトロニクス株式会社Processing equipmentUS7747932B2 (en) *2005-06-302010-06-29Intel CorporationReducing the uncorrectable error rate in a lockstepped dual-modular redundancy systemJP4287411B2 (en) *2005-07-012009-07-01株式会社東芝Virtual memory system and virtual storage methodUS7447941B2 (en) *2005-07-192008-11-04Hewlett-Packard Development Company, L.P.Error recovery systems and methods for execution data pathsUS8559443B2 (en)2005-07-222013-10-15Marvell International Ltd.Efficient message switching in a switching apparatusUS20070038834A1 (en) *2005-07-252007-02-15Rolf FritzMethod and System for Managing the Sending of Data Packets Over a Data PathUS7778250B2 (en) *2005-08-112010-08-17Ericsson AbMethod and apparatus for securing a layer II bridging switch/switch for subscriber aggregationUS20070038849A1 (en) *2005-08-112007-02-15Rajiv MadampathComputing system and methodUS7669073B2 (en)2005-08-192010-02-23Stratus Technologies Bermuda Ltd.Systems and methods for split mode operation of fault-tolerant computer systemsUS20070124554A1 (en) *2005-10-282007-05-31Honeywell International Inc.Global memory for a rapidio networkCN1992583A (en) *2005-12-292007-07-04朗迅科技公司Method for reconstructing lost packet with binary even-odd checkUS7562285B2 (en)2006-01-112009-07-14Rambus Inc.Unidirectional error code transfer for a bidirectional data linkUS8131871B2 (en) *2006-01-122012-03-06Cisco Technology, Inc.Method and system for the automatic reroute of data over a local area networkDE102006002824B4 (en)2006-01-192008-10-09Phoenix Contact Gmbh & Co. KgMethod and device for converting multichannel messages into a single-channel secure messageUS7549078B2 (en) *2006-01-312009-06-16Alcatel LucentRedundancy in routing devicesUS7324913B2 (en) *2006-02-012008-01-29International Business Machines CorporationMethods and apparatus for testing a link between chipsCN101375261A (en) *2006-02-242009-02-25富士通株式会社Error control apparatusUS7496785B2 (en) *2006-03-212009-02-24International Business Machines CorporationEnclosure-based raid parity assistUS7594034B2 (en) *2006-03-272009-09-22Cisco Technology, Inc.Managing foreign-owned fields in versioned messagesUS20070233961A1 (en) *2006-03-312007-10-04Banning John PMulti-portioned instruction memoryUS20070248111A1 (en) *2006-04-242007-10-25Shaw Mark ESystem and method for clearing information in a stalled output queue of a crossbarJP2007293701A (en) *2006-04-262007-11-08Canon IncController for dynamic reconfigurable device, and its methodUS20080010417A1 (en) *2006-04-282008-01-10Zeffer Hakan ERead/Write Permission Bit Support for Efficient Hardware to Software HandoverUS7533236B1 (en) *2006-05-112009-05-12Nvidia CorporationOff-chip out of order memory allocation for a unified shaderUS7533237B1 (en) *2006-05-112009-05-12Nvidia CorporationOff-chip memory allocation for a unified shaderUS8352805B2 (en)2006-05-182013-01-08Rambus Inc.Memory error detectionUS20070271495A1 (en) *2006-05-182007-11-22Ian ShaefferSystem to detect and identify errors in control information, read data and/or write dataGB0610474D0 (en) *2006-05-262006-07-05IbmStorage area network controllerUS7975160B2 (en) *2006-06-282011-07-05University Of Utah Research FoundationSystem and method for precise absolute time event generation and captureUS20080005357A1 (en) *2006-06-302008-01-03Microsoft CorporationSynchronizing dataflow computations, particularly in multi-processor settingUS7747896B1 (en) *2006-06-302010-06-29Guillermo RozasDual ported replicated data cacheUS7984301B2 (en)2006-08-172011-07-19Inside Contactless S.A.Bi-processor architecture for secure systemsUS7840732B2 (en) *2006-09-252010-11-23Honeywell International Inc.Stacked card address assignmentUS7698540B2 (en) *2006-10-312010-04-13Hewlett-Packard Development Company, L.P.Dynamic hardware multithreading and partitioned hardware multithreadingJP2008123357A (en) *2006-11-142008-05-29Honda Motor Co LtdParallel computer system, parallel computing method, and program for parallel computerJP5076454B2 (en) *2006-11-152012-11-21富士通セミコンダクター株式会社Serial data receiving circuit, serial data receiving device, and serial data receiving methodUS20080163224A1 (en) *2006-12-292008-07-03Frank Joachim HModeling interrupts in a business processUS20080170469A1 (en) *2007-01-162008-07-17Aram Systems, Ltd.Stabilizing remote clocks in a networkUS20080182021A1 (en) *2007-01-312008-07-31Simka Harsono SContinuous ultra-thin copper film formed using a low thermal budgetUS7814301B2 (en) *2007-04-112010-10-12Hewlett-Packard Development Company, L.P.Clock architecture for multi-processor systemsUS7711078B2 (en) *2007-06-012010-05-04Smsc Holdings SarlFrequency synchronizationUS8966000B2 (en) *2007-06-222015-02-24Microsoft CorporationAggregation and re-ordering of input/output requests for better performance in remote file systemsUS8359646B2 (en) *2007-07-122013-01-22International Business Machines CorporationEnsuring security of connection between thin client and client bladeUS20090046577A1 (en) *2007-08-142009-02-19Motorola, Inc.Resuming an interrupted flow of data packetsUS8468287B2 (en) *2007-08-222013-06-18Nec CorporationInformation processor and information processing methodUS7453910B1 (en)2007-12-182008-11-18International Business Machines CorporationSynchronization of independent clocksWO2009090502A1 (en) *2008-01-162009-07-23Freescale Semiconductor, Inc.Processor based system having ecc based check and access validation information meansUS20090186344A1 (en) *2008-01-232009-07-23Caliper Life Sciences, Inc.Devices and methods for detecting and quantitating nucleic acids using size separation of ampliconsUS8117512B2 (en) *2008-02-062012-02-14Westinghouse Electric Company LlcFailure detection and mitigation in logic circuitsUS9229887B2 (en) *2008-02-192016-01-05Micron Technology, Inc.Memory device with network on chip methods, apparatus, and systemsUS9608884B2 (en) *2008-04-142017-03-28Hewlett Packard Enterprise Development LpSystem and method for remote management of a computerUS8213706B2 (en) *2008-04-222012-07-03Honeywell International Inc.Method and system for real-time visual odometryUS7978721B2 (en)2008-07-022011-07-12Micron Technology Inc.Multi-serial interface stacked-die memory architectureUS9732178B1 (en)2008-07-242017-08-15Bridgestone CorporationBlock copolymers including high vinyl segmentsUS8086913B2 (en) *2008-09-112011-12-27Micron Technology, Inc.Methods, apparatus, and systems to repair memoryUS20100077472A1 (en) *2008-09-232010-03-25Atmel CorporationSecure Communication Interface for Secure Multi-Processor SystemJP5380978B2 (en) *2008-09-262014-01-08富士通株式会社Transmission apparatus, transmission apparatus control method, and transmission apparatus control programJP5204603B2 (en) *2008-09-292013-06-05株式会社日立製作所Quadruple computer system and duplex ring networkJP5507830B2 (en) *2008-11-042014-05-28ルネサスエレクトロニクス株式会社Microcontroller and automobile control deviceUS8001432B2 (en) *2008-11-202011-08-16Lsi CorporationUninitialized memory detection using error correction codes and built-in self testUS8090984B2 (en) *2008-12-102012-01-03Freescale Semiconductor, Inc.Error detection and communication of an error location in multi-processor data processing system having processors operating in LockstepUS8171328B2 (en) *2008-12-312012-05-01Intel CorporationState history storage for synchronizing redundant processorsUS8205111B2 (en) *2009-01-022012-06-19Intel CorporationCommunicating via an in-die interconnectEP2209070B1 (en) *2009-01-162014-01-08Alcatel LucentTelecommunication network serverUS8122159B2 (en)2009-01-162012-02-21Allegro Microsystems, Inc.Determining addresses of electrical components arranged in a daisy chainUS20100229029A1 (en) *2009-03-062010-09-09Frazier Ii Robert ClaudeIndependent and dynamic checkpointing system and methodUS8832353B2 (en) *2009-04-072014-09-09Sandisk Technologies Inc.Host stop-transmission handlingUS8132045B2 (en) *2009-06-162012-03-06SanDisk Technologies, Inc.Program failure handling in nonvolatile memoryUS8307241B2 (en) *2009-06-162012-11-06Sandisk Technologies Inc.Data recovery in multi-level cell nonvolatile memoryUS8156371B2 (en) *2009-06-162012-04-10Honeywell International Inc.Clock and reset synchronization of high-integrity lockstep self-checking pairsUS8306042B1 (en) *2009-06-192012-11-06Google Inc.Class-based deterministic packet routingCN102460974B (en)2009-06-192014-08-13富士通株式会社Data transfer method, code conversion circuit, and deviceUS8461782B2 (en) *2009-08-272013-06-11Allegro Microsystems, LlcLinear or rotational motor driver identificationUS8473818B2 (en) *2009-10-122013-06-25Empire Technology Development LlcReliable communications in on-chip networksGB2474446A (en)2009-10-132011-04-20Advanced Risc Mach LtdBarrier requests to maintain transaction order in an interconnect with multiple pathsUS8489803B2 (en) *2009-12-142013-07-16Smsc Holdings S.A.R.L.Efficient use of flash memory in flash drivesWO2011117156A2 (en) *2010-03-232011-09-29Continental Teves Ag & Co. OhgControl computer system, method for controlling a control computer system, and use of a control computer systemUS9123552B2 (en)2010-03-302015-09-01Micron Technology, Inc.Apparatuses enabling concurrent communication between an interface die and a plurality of dice stacks, interleaved conductive paths in stacked devices, and methods for forming and operating the sameUS8058916B2 (en) *2010-04-152011-11-15Xilinx, Inc.Lockstep synchronization and maintenanceWO2011132223A1 (en) *2010-04-212011-10-27Hitachi,Ltd.Storage system and ownership control method for storage systemJP5433498B2 (en) *2010-05-272014-03-05株式会社東芝Cryptographic processing deviceUS8542578B1 (en)2010-08-042013-09-24Cisco Technology, Inc.System and method for providing a link-state path to a node in a network environmentUS8395416B2 (en)2010-09-212013-03-12Intel CorporationIncorporating an independent logic block in a system-on-a-chipUS8443230B1 (en) *2010-12-152013-05-14Xilinx, Inc.Methods and systems with transaction-level lockstepUS8635492B2 (en) *2011-02-152014-01-21International Business Machines CorporationState recovery and lockstep execution restart in a system with multiprocessor pairingUS8930752B2 (en)2011-02-152015-01-06International Business Machines CorporationScheduler for multiprocessor system switch with selective pairingUS8671311B2 (en)2011-02-152014-03-11International Business Machines CorporationMultiprocessor switch with selective pairingUS8549389B2 (en) *2011-05-242013-10-01Honeywell International Inc.Systems and methods for 1553 bus operation self checkingEP2533154B1 (en)2011-06-092015-08-12Westinghouse Electric Company LLCFailure detection and mitigation in logic circuitsCN103703427B (en) *2011-07-202016-05-11飞思卡尔半导体公司Treating apparatus and the method for synchronous the first processing unit and the second processing unitDE102011082969B4 (en)2011-09-192015-04-30Siemens AktiengesellschaftMethod for operating a communication network and network arrangementUS8819484B2 (en)2011-10-072014-08-26International Business Machines CorporationDynamically reconfiguring a primary processor identity within a multi-processor socket serverUS9391638B1 (en) *2011-11-102016-07-12Marvell Israel (M.I.S.L) Ltd.Error indications in error correction code (ECC) protected memory systemsUS9686131B2 (en) *2011-12-142017-06-20Moxa Inc.System, gateway, and method for automatic setting configuration by learning commandsUS8856590B2 (en) *2012-01-072014-10-07Compunetix, Inc.Reliable compute engine, method and apparatusUS8908675B2 (en)2012-01-132014-12-09Honeywell International Inc.Virtual pairing for consistent data broadcastUS9075623B2 (en) *2012-01-182015-07-07International Business Machines CorporationExternal auxiliary execution unit interface for format conversion of instruction from issue unit to off-chip auxiliary execution unitUS8949983B2 (en)2012-02-212015-02-03Honeywell International Inc.System and method for integrity reconstitutionUS8954794B2 (en) *2012-06-052015-02-10Infineon Technologies AgMethod and system for detection of latent faults in microcontrollersUS8819531B2 (en) *2012-07-252014-08-26Lsi CorporationSystems and methods for information divergence based data processingUS9489307B2 (en) *2012-10-242016-11-08Texas Instruments IncorporatedMulti domain bridge with auto snoop responseUS9274971B2 (en)2012-11-272016-03-01International Business Machines CorporationLow latency data exchangeUS9037902B2 (en)2013-03-152015-05-19Sandisk Technologies Inc.Flash memory techniques for recovering from write interrupt resulting from voltage faultTWI485558B (en)2013-03-292015-05-21Ind Tech Res InstFault-tolerant system and fault-tolerant operating methodUS9329926B1 (en) *2013-09-132016-05-03Microsemi Storage Solutions (U.S.), Inc.Overlapping data integrity for semiconductor devicesUS9547333B2 (en) *2013-10-102017-01-17General Electric CompanySystem and method for synchronizing networked componentsCN103731130B (en) *2013-12-272017-01-04华为技术有限公司General fault-tolerant error correction circuit and the decoder of application thereof and triplication redundancy circuitUS9491099B2 (en) *2013-12-272016-11-08Cavium, Inc.Look-aside processor unit with internal and external access for multicore processorsUS9172565B2 (en)2014-02-182015-10-27Allegro Microsystems, LlcSignaling between master and slave components using a shared communication node of the master componentUS9787495B2 (en)2014-02-182017-10-10Allegro Microsystems, LlcSignaling between master and slave components using a shared communication node of the master componentUS9367375B2 (en) *2014-04-142016-06-14Artesyn Embedded Computing, Inc.Direct connect algorithmUS9830289B2 (en)2014-09-162017-11-28Apple Inc.Methods and apparatus for aggregating packet transfer over a virtual bus interfaceDE102014218823A1 (en) *2014-09-182016-03-24Siemens AktiengesellschaftNetwork node, control module for a component and Ethernet ringUS9971397B2 (en)2014-10-082018-05-15Apple Inc.Methods and apparatus for managing power with an inter-processor communication link between independently operable processorsCN104699550B (en) *2014-12-052017-09-12中国航空工业集团公司第六三一研究所A kind of error recovery method based on lockstep frameworksKR101764680B1 (en) *2014-12-292017-08-03주식회사 효성Redundancy control systemKR101658828B1 (en) *2015-03-232016-09-22한국전자통신연구원Apparatus and method for function recovery of CPU coreUS10761925B2 (en) *2015-03-242020-09-01Nxp Usa, Inc.Multi-channel network-on-a-chipUS9712396B2 (en) *2015-04-282017-07-18Avago Technologies General Ip (Singapore) Pte. Ltd.Topology configuration of processing elements array by using packetsUS10042794B2 (en) *2015-06-122018-08-07Apple Inc.Methods and apparatus for synchronizing uplink and downlink transactions on an inter-device communication linkUS20170070397A1 (en) *2015-09-092017-03-09Ca, Inc.Proactive infrastructure fault, root cause, and impact managementUS20170168541A1 (en)2015-12-152017-06-15Intel CorporationProcessor core energy managementUS10085214B2 (en)2016-01-272018-09-25Apple Inc.Apparatus and methods for wake-limiting with an inter-device communication linkUS10191852B2 (en)2016-02-292019-01-29Apple Inc.Methods and apparatus for locking at least a portion of a shared memory resourceUS10198364B2 (en)2016-03-312019-02-05Apple Inc.Memory access protection apparatus and methods for memory mapped access between independently operable processorsUS10949251B2 (en) *2016-04-012021-03-16Intel CorporationSystem and method to accelerate reduce operations in graphics processorUS20170354396A1 (en) *2016-06-092017-12-14General Electric CompanyWireless ultrasound probe adapterWO2018048720A1 (en) *2016-09-092018-03-15The Charles Stark Draper Laboratory, Inc.Voting circuits and methods for trusted fault tolerance of a system of untrusted subsystemsUS10551902B2 (en)2016-11-102020-02-04Apple Inc.Methods and apparatus for providing access to peripheral sub-system registersUS10775871B2 (en)2016-11-102020-09-15Apple Inc.Methods and apparatus for providing individualized power control for peripheral sub-systemsUS10382380B1 (en) *2016-11-172019-08-13Amazon Technologies, Inc.Workload management service for first-in first-out queues for network-accessible queuing and messaging servicesUS10375038B2 (en)2016-11-302019-08-06International Business Machines CorporationSymmetric multiprocessing managementUS10331532B2 (en)2017-01-192019-06-25Qualcomm IncorporatedPeriodic non-intrusive diagnosis of lockstep systemsUS10346226B2 (en)2017-08-072019-07-09Time Warner Cable Enterprises LlcMethods and apparatus for transmitting time sensitive data over a tunneled bus interfaceUS10908995B2 (en)2017-09-292021-02-02Nvidia CorporationSecuring against errors in an error correcting code (ECC) implemented in an automotive systemCN109802900B (en) *2017-11-162021-11-19中兴通讯股份有限公司Message caching method, message reading method, message caching device, message reading device and computer readable storage mediumUS10331612B1 (en)2018-01-092019-06-25Apple Inc.Methods and apparatus for reduced-latency data transmission with an inter-processor communication link between independently operable processorsUS20210141697A1 (en) *2018-03-062021-05-13DinoplusAI Holdings LimitedMission-Critical AI Processor with Multi-Layer Fault Tolerance SupportUS10747708B2 (en)2018-03-082020-08-18Allegro Microsystems, LlcCommunication system between electronic devicesUS11361839B2 (en)2018-03-262022-06-14Rambus Inc.Command/address channel error detectionUS11381514B2 (en)2018-05-072022-07-05Apple Inc.Methods and apparatus for early delivery of data link layer packetsUS10817361B2 (en) *2018-05-072020-10-27Hewlett Packard Enterprise Development LpControlling error propagation due to fault in computing node of a distributed computing systemUS10430352B1 (en)2018-05-182019-10-01Apple Inc.Methods and apparatus for reduced overhead data transfer with a shared ring bufferUS10585699B2 (en)2018-07-302020-03-10Apple Inc.Methods and apparatus for verifying completion of groups of data transactions between processorsUS10846224B2 (en)2018-08-242020-11-24Apple Inc.Methods and apparatus for control of a jointly shared memory-mapped regionUS10719376B2 (en)2018-08-242020-07-21Apple Inc.Methods and apparatus for multiplexing data flows via a single data structureUS10789110B2 (en)2018-09-282020-09-29Apple Inc.Methods and apparatus for correcting out-of-order data transactions between processorsUS10838450B2 (en)2018-09-282020-11-17Apple Inc.Methods and apparatus for synchronization of time between independently operable processorsUS10951544B2 (en) *2019-01-302021-03-16The Boeing CompanyApparatus and method of crosschecking data copies using one or more voter elementsUS10873429B1 (en) *2019-03-282020-12-22Rockwell Collins, Inc.Data frame error recovery for multi-node systemsWO2021248280A1 (en) *2020-06-082021-12-16Nokia Shanghai Bell Co., Ltd.Applying uplink channel information to determine data processing model deployed for downlink useUS11360918B1 (en) *2020-12-212022-06-14Otis Elevator CompanyReal-time processing system synchronization in a control systemKR102308990B1 (en) *2021-07-202021-10-06(주) 에이블리Apparatus and method for generating semiconductor test pattern

    Family Cites Families (109)

    * Cited by examiner, † Cited by third partyPublication numberPriority datePublication dateAssigneeTitleUS3665173A (en)1968-09-031972-05-23IbmTriple modular redundancy/sparingUS3864670A (en) *1970-09-301975-02-04Yokogawa Electric Works LtdDual computer system with signal exchange systemDE2202231A1 (en)1972-01-181973-07-26Siemens AgPROCESSING SYSTEM WITH TRIPLE SYSTEM UNITSFR2182259A5 (en)1972-04-241973-12-07CiiUS3883798A (en)1972-05-041975-05-13Hoffmann La RocheFree flow resonant cavity measuring apparatusUS3814921A (en) *1972-11-151974-06-04Honeywell Inf SystemsApparatus and method for a memory partial-write of error correcting encoded dataIT1014277B (en)1974-06-031977-04-20Cselt Centro Studi Lab TelecomCONTROL SYSTEM OF PROCESS COMPUTERS OPERATING IN PARALLELIT1036311B (en) *1975-06-171979-10-30Cselt Centro Studi Lab TelecomDUPLICATE SYSTEM FOR SUPERVISION AND CONTROL OF DUPLICATED TELECOMMUNICATION SYSTEMSUS4228496A (en) *1976-09-071980-10-14Tandem Computers IncorporatedMultiprocessor systemUS4358823A (en) *1977-03-251982-11-09Trw, Inc.Double redundant processorGB2019622B (en)1978-04-141982-04-07Lucas Industries LtdDigital computing apparatusUS4200226A (en)1978-07-121980-04-29Euteco S.P.A.Parallel multiprocessing system for an industrial plantUS4298929A (en) *1979-01-261981-11-03International Business Machines CorporationIntegrated multilevel storage hierarchy for a data processing system with improved channel to memory write capabilityJPS638034B2 (en)1979-02-021988-02-19Hitachi LtdFR2450008B1 (en) *1979-02-211983-11-18Portejoie Jean FrancoisUS4428044A (en) *1979-09-201984-01-24Bell Telephone Laboratories, IncorporatedPeripheral unit controllerUS4371754A (en)1980-11-191983-02-01Rockwell International CorporationAutomatic fault recovery system for a multiple processor telecommunications switching controlUS4520439A (en) *1981-01-051985-05-28Sperry CorporationVariable field partial write data mergeZA821999B (en)1981-03-311983-05-25British TelecommComputor or processor control systemsUS4486826A (en)1981-10-011984-12-04Stratus Computer, Inc.Computer peripheral control apparatusUS4521871A (en) *1982-04-121985-06-04Allen-Bradley CompanyProgrammable controller with back-up capabilityUS4590554A (en) *1982-11-231986-05-20Parallel Computers Systems, Inc.Backup fault tolerant computer systemJPS6216478B2 (en) *1982-12-271987-04-13Tokyo Shibaura Electric CoJPS6310462B2 (en) *1983-02-041988-03-07Hitachi LtdUS4541094A (en)1983-03-211985-09-10Sequoia Systems, Inc.Self-checking computer circuitryUS5212773A (en) *1983-05-311993-05-18Thinking Machines CorporationWormhole communications arrangement for massively parallel processorUS4598400A (en) *1983-05-311986-07-01Thinking Machines CorporationMethod and apparatus for routing message packetsUS4912698A (en) *1983-09-261990-03-27Siemens AktiengesellschaftMulti-processor central control unit of a telephone exchange system and its operationUS4589066A (en) *1984-05-311986-05-13General Electric CompanyFault tolerant, frame synchronization for multiple processor systemsUS4823256A (en)1984-06-221989-04-18American Telephone And Telegraph Company, At&T Bell LaboratoriesReconfigurable dual processor systemCA1220830A (en) *1984-12-281987-04-21David S. DrynanTransmitting sequence numbers of information in a packet data transmission systemUS4612636A (en) *1984-12-311986-09-16Northern Telecom LimitedMultiple channel depacketizerAU568977B2 (en) *1985-05-101988-01-14Tandem Computers Inc.Dual processor error detection systemUS4757442A (en) *1985-06-171988-07-12Nec CorporationRe-synchronization system using common memory bus to transfer restart data from non-faulty processor to failed processorUS4740962A (en) *1985-12-231988-04-26Motorola, Inc.Synchronizer for time division multiplexed dataUS4703421A (en) *1986-01-031987-10-27Gte Communication Systems CorporationReady line synchronization circuit for use in a duplicated computer systemUS4750175A (en) *1986-08-291988-06-07Pactel Communications CompaniesNetwork diagnostic apparatus and methodUS4847837A (en) *1986-11-071989-07-11The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration

    Wie kann ich eine getaktete Verbindung beenden?

    Dazu gehen Sie wie folgt vor:.
    Wählen Sie die Schaltfläche Start und dann Einstellungen > Netzwerk & Internet > Status aus..
    Wählen Sie unter dem Netzwerk, mit dem Sie verbunden sind, Datennutzung aus..
    Wählen Sie die Netzwerkverbindung unter Netzwerk auswählen, und wählen Sie dann Limit entfernen > Entfernen aus..

    Was bedeutet das Setup wurde aufgrund einer getakteten Verbindung nicht abgeschlossen?

    Eine getaktete Netzwerkverbindung versucht, die Datennutzung im Netzwerk zu steuern und zu reduzieren, sodass einige Apps bei einer getakteten Verbindung möglicherweise anders funktionieren. Darüber hinaus werden einige Updates für Windows nicht automatisch installiert.

    Was ist eine getaktete WLAN Verbindung?

    Getaktetes WLAN heißt die Limitierung von WLAN Volumen die ein Gerät oder Router zur Verfügung hat. Wenn Ihr Netzwerk ein Datenlimit hat, zum Beispiel der Internet Provider nur X GB pro Monat erlaubt, können Sie das WLAN auf getaktet setzen um sicher zu stellen, dass Ihre Geräte diese Menge nicht überschreiten.

    Was bedeutet Warnung getaktetes Netzwerk?

    Bei einigen Verbindungen erhalte ich einen Hinweis, “Warnung getaktetes Netzwerk” (Wir haben festgestellt, dass die von Ihnen verwendete, getaktete Verbindung eventuell Zusatzkosten verursacht. Outlook arbeitet offline, um Datengebühren zu vermeiden) und einem Knopf «Trotzdem verbinden».