DE19816153A1 - Bus interconnect system for graphic processing system - has individual buses coupling graphics processing elements in ring, with signal lines for transferring command signals between elements - Google Patents

Bus interconnect system for graphic processing system - has individual buses coupling graphics processing elements in ring, with signal lines for transferring command signals between elements

Info

Publication number
DE19816153A1
DE19816153A1 DE1998116153 DE19816153A DE19816153A1 DE 19816153 A1 DE19816153 A1 DE 19816153A1 DE 1998116153 DE1998116153 DE 1998116153 DE 19816153 A DE19816153 A DE 19816153A DE 19816153 A1 DE19816153 A1 DE 19816153A1
Authority
DE
Germany
Prior art keywords
information
processing element
ring
graphics
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE1998116153
Other languages
German (de)
Other versions
DE19816153B4 (en
Inventor
Roy R Faget
Ronald D Larson
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US08/847,271 external-priority patent/US5911056A/en
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Priority to DE19861337A priority Critical patent/DE19861337B4/en
Priority claimed from DE19861337A external-priority patent/DE19861337B4/en
Publication of DE19816153A1 publication Critical patent/DE19816153A1/en
Application granted granted Critical
Publication of DE19816153B4 publication Critical patent/DE19816153B4/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Abstract

The system includes a bus structure, coupling a number of graphics processing elements (202,222,242) in a ring. The bus structure comprises a number of individual buses (250,252,254), with each bus connecting a pair of graphics processing elements. Each individual bus comprises a number of signal lines (250A-250F) for transferring graphics command signals and information signals between graphics processing elements in the ring.

Description

Diese Erfindung bezieht sich im allgemeinen auf das Gebiet von Computersystemen und insbesondere auf Schnittstellen­ schaltungen für digitale Pipeline-Datenübertragungen.This invention relates generally to the field of computer systems and in particular on interfaces circuits for digital pipeline data transmission.

Computergraphiksysteme werden im allgemeinen zum Anzeigen graphischer Darstellungen von Objekten auf einem zwei-dimen­ sionalen Anzeigebildschirm verwendet. Gegenwärtige Computer­ graphiksysteme können hochdetaillierte Darstellungen liefern und werden bei einer Vielzahl von Applikationen verwendet.Computer graphics systems are generally used for display graphic representations of objects on a two-dimensional sional display screen used. Current computers graphic systems can provide highly detailed representations and are used in a variety of applications.

Bei typischen Computergraphiksystemen wird ein Objekt, das auf einem Anzeigebildschirm dargestellt werden soll, in eine Mehrzahl von Graphikgrundelementen (graphics primitives) aufgeteilt. Grundelemente sind Grundkomponenten eines Gra­ phikbildes, wie z. B. Punkte, Linien, Vektoren und Polygone (z. B. Dreiecke). Typischerweise ist ein Hardware/Software­ schema implementiert, um die Graphikgrundelemente, die eine Ansicht eines oder mehrerer Objekte aufweisen, auf einem zwei-dimensionalen Anzeigebildschirm aufzubereiten (oder zu zeichnen).In typical computer graphics systems, an object that to be displayed on a display screen, in a Plurality of graphics primitives divided up. Basic elements are basic components of a Gra phikbildes, such as. B. Points, lines, vectors and polygons (e.g. triangles). Typically a hardware / software schema implemented to the graphics primitives that a Have view of one or more objects on one prepare two-dimensional display screen (or too to draw).

Ein Hostcomputer liefert im allgemeinen Grundelementdaten, die die Grundelemente eines drei-dimensionalen Objekts, das aufbereitet werden soll, darstellen. Wenn das Grundelement beispielsweise ein Dreieck ist, kann der Hostcomputer das Dreieck bezüglich der x-, y-, z-Koordinaten und der Rot-, Grün-, Blau-Farbwerte (R-, G-, B-Farbwerte) jedes Scheitel­ punkts definieren. Eine Aufbereitungshardware interpoliert die Grundelementdaten, um die Anzeigebildschirmpixel, die jedes Grundelement bilden, und die R-, G-, B-Farbwerte für jedes Pixel zu berechnen.A host computer generally provides primitive data which are the basic elements of a three-dimensional object, the should be prepared. If the basic element for example, a triangle, the host computer can do that Triangle with respect to the x, y, z coordinates and the red, Green, blue color values (R, G, B color values) each vertex Define points. Processing hardware interpolates the primitive data to the display screen pixels form each primitive, and the R, G, B color values for to calculate each pixel.

Die Grundkomponenten eines typischen Computergraphiksystems umfassen einen Geometriebeschleuniger, einen Rasterisierer und einen Rahmenpuffer. Das System kann ferner eine weitere Hardwarekomponenten, wie z. B. eine Texturabbildungshardware (die im folgenden beschrieben wird), umfassen. Der Geome­ triebeschleuniger empfängt von dem Hostcomputer eine Schei­ telpunktkoordinate und Farbdaten für die Grundelemente, die ein Objekt bilden. Der Geometriebeschleuniger führt typi­ scherweise bezüglich der Scheitelpunktkoordinatendaten (d. h. bezüglich der Bildschirmraumkoordinaten) Umformungen durch, zerlegt Vierecke in Dreiecke und kann weitere Funktionen, wie z. B. eine Helligkeitseinstellung, ein Abschneiden und ein Durchführen von Ebenengleichungsberechnungen für jedes Grundelement, durchführen. Das Ausgangssignal aus dem Geome­ triebeschleuniger, das als Aufbereitungsdatensignal bezeich­ net wird, wird von dem Rasterisierer (und optional von einer Texturabbildungshardware) verwendet, um endgültige Bild­ schirmraumkoordinaten und RGB-Farbwerte für jedes Pixel, die die Grundelemente bilden, zu berechnen. Die Enddaten werden in dem Rahmenpuffer für eine Anzeige auf einem Anzeigebild­ schirm gespeichert. Einige Graphiksysteme weisen eine Pipe­ line-Struktur auf, derart, daß verschiedene Operationen (wie z. B. Transformationen, Interpolationen, usw.) gleichzeitig von unterschiedlichen Komponenten mit unterschiedlichen Ob­ jektgrundelementen durchgeführt werden.The basic components of a typical computer graphics system  comprise a geometry accelerator, a rasterizer and a frame buffer. The system can also have another Hardware components such as B. texture mapping hardware (which will be described below). The geome drive accelerator receives a bit from the host computer tele coordinate and color data for the basic elements, the form an object. The geometry accelerator is typically with respect to the vertex coordinate data (i.e. with regard to the screen space coordinates) breaks down quadrilaterals into triangles and can have other functions, such as B. a brightness setting, a cut and performing level equation calculations for each Basic element, perform. The output signal from the geome drive accelerator, which is referred to as the preparation data signal the rasterizer (and optionally one Texture mapping hardware) used to final image screen space coordinates and RGB color values for each pixel form the basic elements to calculate. The end dates will be in the frame buffer for display on a display image screen saved. Some graphics systems have a pipe line structure on such that different operations (such as e.g. B. transformations, interpolations, etc.) simultaneously of different components with different ob basic elements are carried out.

Technisch ausgereiftere Systeme bieten optional eine Textur­ abbildung, so daß Objekte mit einem verbesserten Oberflä­ chendetail angezeigt werden können. Eine Texturabbildung ist ein Verfahren, das ein Abbilden eines Quellenbildes, das als Textur bezeichnet wird, auf einer Oberfläche eines drei-di­ mensionalen Objekts und daraufhin ein Abbilden des textu­ rierten drei-dimensionalen Objekts auf den zwei-dimensiona­ len Graphikanzeigebildschirm beinhaltet, um das resultieren­ de Bild anzuzeigen. Die Texturabbildung beinhaltet ein Ver­ wenden eines oder mehrerer Punktelemente (Texel) einer Tex­ tur bei jedem Punktelement (Pixel) des angezeigten Ab­ schnitts des Objekts, auf dem die Textur abgebildet wird. Texturabbildungshardwareteilsysteme umfassen typischerweise einen lokalen Speicher, der die Texturdaten speichert, die dem Abschnitt des Objekts, das aufbereitet wird, zugeordnet sind.Technically more sophisticated systems optionally offer a texture illustration, so that objects with an improved surface chendetail can be displayed. A texture map is a method that involves imaging a source image as Texture is referred to on a surface of a three-di dimensional object and then an image of the textu three-dimensional object on the two-dimensional len graphic display screen to achieve this to display the image. The texture mapping includes a ver turn one or more point elements (texels) of a tex structure for each point element (pixel) of the displayed Ab section of the object on which the texture is mapped. Texture mapping hardware subsystems typically include  a local memory that stores the texture data that assigned to the section of the object that is being processed are.

Graphiksysteme mit Pipeline-Struktur, d. h. insbesondere die­ jenigen, die eine datenintensive Texturabbildung bereitstel­ len, weisen gewöhnlicherweise komplexe Busstrukturen auf, auf denen Daten zwischen den verschiedenen Komponenten über­ mittelt werden, wobei häufig bezüglich der Systembandbreite ein Kompromiß eingegangen wird. Bei diesen Systemen ist es beispielsweise allgemein üblich, daß Datenwege (Busse) für bestimmte Datentypen und Operationen reserviert sind, wobei die Wege ansonsten ungenutzt bleiben. In Abwesenheit solcher reservierter Wege kann es notwendig sein, daß ein Hauptauf­ bereitungsbussystem mit Pipeline-Struktur geräumt werden muß, um bestimmte Operationen, wie z. B. ein Herunterladen von Texturdaten von dem Host in einen lokalen Texturabbil­ dungsspeicher, durchzuführen. Die Busstruktur umfaßt außer­ dem häufig bei Systemen, die mehrere parallel-verbundene Chips aufweisen, einen getrennten Bus für jeden dieser Chips, wodurch die Systembandbreite weiter reduziert wird.Graphics systems with pipeline structure, i. H. especially the those that provide data-intensive texture mapping len, usually have complex bus structures, on which to transfer data between the various components be averaged, often with regard to the system bandwidth a compromise is made. It is with these systems for example, it is common practice that data paths (buses) for certain data types and operations are reserved, where otherwise the paths remain unused. In the absence of such reserved paths, it may be necessary that a main preparation bus system with pipeline structure must to certain operations such. B. a download texture data from the host into a local texture map storage. The bus structure also includes which is common in systems that have multiple parallel-connected Chips have a separate bus for each of these Chips, which further reduces the system bandwidth.

Die Systembandbreite steht in direkter Beziehung zu dem Sy­ stemverhalten. Aufgrund technischer Fortschritte sind die Hostprozessoren in der Lage, den Graphikaufbereitungschips die Grundelementdaten mit erhöhten Geschwindigkeiten bereit­ zustellen. Um eine Busstruktur an die verbesserte Technolo­ gie der Hostprozessoren anzugleichen, ist eine Busstruktur erforderlich, die in der Lage ist, Datenübertragungen mit einer hohen Bandbreite abzuwickeln.The system bandwidth is directly related to the Sy stem behavior. Due to technical advances, Host processors are able to process the graphics processing chips the primitive data ready at increased speeds to deliver. To a bus structure to the improved technolo Aligning the host processors is a bus structure required that is able to handle data transfers to handle a wide range.

Die Aufgabe der vorliegenden Erfindung besteht daher darin, eine verbesserte Busstruktur und ein verbessertes Datenkom­ munikationsprotokoll für ein Computergraphiksystem mit Pipe­ line-Struktur zu schaffen, wodurch die Systembandbreite ma­ ximiert wird.The object of the present invention is therefore to an improved bus structure and an improved data comm communication protocol for a computer graphics system with pipe create line structure, whereby the system bandwidth ma is maximized.

Diese Aufgabe der vorliegenden Erfindung wird durch ein Bus­ verbindungssystem gemäß Anspruch 1, durch ein Verfahren zum Betreiben eines Graphiksystems gemäß Anspruch 11 und durch eine Graphikvorrichtung gemäß Anspruch 14 gelöst.This object of the present invention is achieved by a bus  Connection system according to claim 1, by a method for Operating a graphics system according to claim 11 and by solved a graphics device according to claim 14.

Gemäß einem Aspekt der Erfindung umfaßt ein Busverbindungs­ system für eine Verwendung in einem Graphikverarbeitungssy­ stem, das eine Mehrzahl von Graphikverarbeitungselementen aufweist, eine Busstruktur, die die Graphikverarbeitungsele­ mente in einem Ring koppelt. Die Busstruktur umfaßt eine Mehrzahl von einzelnen Bussen, wobei jeder der einzelnen Busse ein Paar der Graphikverarbeitungselemente verbindet. Jeder der einzelnen Busse umfaßt eine gleiche Mehrzahl von Signalleitungen zum Übertragen von Graphikbefehls- und In­ formationssignalen zwischen den Graphikverarbeitungselemen­ ten in diesem Ring.According to one aspect of the invention, a bus connection comprises system for use in a graphics processing system stem containing a plurality of graphics processing elements has a bus structure that the graphics processing element elements in a ring. The bus structure includes one Plurality of individual buses, each of the individual Busse connects a pair of the graphics processing elements. Each of the individual buses includes an equal plurality of Signal lines for transmission of graphic command and In formation signals between the graphics processing elements in this ring.

Gemäß einem weiteren Aspekt der Erfindung umfaßt eine Gra­ phikvorrichtung eine Reihe von Verarbeitungselementen, die über einzelne Busse in einem Ring gekoppelt sind. Jeder der einzelnen Busse überträgt eine gleiche Mehrzahl von Signa­ len. Jedes der Verarbeitungselemente umfaßt eine Kernverar­ beitungseinheit und eine Schnittstelleneinheit, die gekop­ pelt sind, um Befehls- und Informationssignale von einem vorhergehenden Verarbeitungselement in dem Ring auf einem der einzelnen Busse zu empfangen, und um Informationen auf einem zweiten der einzelnen Busse zu einem nachfolgenden Verarbeitungselement in dem Ring weiterzuleiten.According to another aspect of the invention, a gra phikvorrichtung a number of processing elements that are coupled via individual buses in a ring. Everyone who individual buses transmit an equal number of Signa len. Each of the processing elements includes a core process processing unit and an interface unit that Kop pelt are to command and information signals from one previous processing element in the ring on a of individual buses to receive and information on a second of the individual buses to a subsequent one Forward processing element in the ring.

Gemäß einem weiteren Aspekt der Erfindung wird ein Verfahren zum Betreiben eines Graphiksystems bereitgestellt, bei dem das Graphiksystem eine Mehrzahl von Verarbeitungselementen aufweist, die in einem Ring gekoppelt sind. Eines der Verar­ beitungselemente ist ein Hostschnittstellenverarbeitungsele­ ment, das zusätzlich mit einem Hostprozessor zum Empfangen von Befehls- und Informationssignalen für eine Übertragung zu anderen Verarbeitungselementen in dem Ring gekoppelt ist. Das Verfahren umfaßt die Schritte des Empfangens an einem der Verarbeitungselemente in dem Ring von Graphikbefehls- und Informationssignalen von einem vorhergehenden Verarbei­ tungselement in dem Ring und des Weiterleitens der empfange­ nen Graphikbefehls- und Informationssignale zu einem näch­ sten Verarbeitungselement in dem Ring. Zusätzlich werden die empfangenen Graphikbefehls- und Informationssignale zu einer Kernverarbeitungseinheit des Verarbeitungselements weiterge­ leitet.According to a further aspect of the invention, a method provided for operating a graphics system in which the graphics system has a plurality of processing elements has, which are coupled in a ring. One of the processors Processing element is a host interface processing element ment that additionally with a host processor for receiving command and information signals for transmission is coupled to other processing elements in the ring. The method includes the steps of receiving at one of processing elements in the ring of graphics command  and information signals from a previous processing tion element in the ring and the forwarding of the receptions NEN graphic command and information signals to a next most processing element in the ring. In addition, the received graphic command and information signals to one Core processing unit of the processing element directs.

Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden im folgenden unter Bezugnahme auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:Preferred embodiments of the present invention are described below with reference to the accompanying Drawings explained in more detail. Show it:

Fig. 1-3 Blockdiagramme von Computergraphiksystemen mit Pi­ peline-Struktur, die die Busarchitektur der Erfin­ dung verwenden; Fig. 1-3 block diagrams of computer graphics systems with Pi peline structure using the bus architecture of the inven tion;

Fig. 4 ein Blockdiagramm, das ein allgemeines Ausfüh­ rungsbeispiel der Busarchitektur der Erfindung darstellt; Fig. 4 is a block diagram illustrating a general embodiment of the bus architecture of the invention;

Fig. 5 ein Zeitablaufdiagramm, das die Betriebsphasen des bei der Erfindung verwendeten Systemtaktes zeigt; Fig. 5 is a timing diagram showing the operational phases of the system clock used in the invention;

Fig. 6 ein detaillierteres Blockdiagramm einer der in Fig. 4 gezeigten Schnittstellenschaltungen; Figure 6 is a more detailed block diagram of one of the interface circuits shown in Figure 4;

Fig. 7 ein Zeitablaufdiagramm, das zeigt, wie Adressen- und Dateninformationen in verschiedene Register, die bei der in Fig. 6 gezeigten Schnittstellen­ schaltung verwendet werden, getaktet werden kön­ nen; Fig. 7 is a timing diagram showing how address and data information can be clocked into various registers used in the interface circuit shown in Fig. 6;

Fig. 8 ein Zeitablaufdiagramm, das die Verzögerung zwi­ schen einem Zeitpunkt, wenn eine Schnittstellen­ schaltung deren gepuffertes Bereitschaftssignal (Buffered_Ready-Signal) zu einem in Verarbeitungs­ richtung davor angeordneten Verarbeitungselement deaktiviert, und einem Zeitpunkt zeigt, wenn das in Verarbeitungsrichtung davor angeordnete Verar­ beitungselement damit aufhört, Daten zu der Schnittstellenschaltung zu senden; Fig. 8 is a timing diagram rule the delay Zvi a time when an interface circuit whose buffered ready signal (Buffered_Ready signal) to an in-processing before directionally arranged processing element is disabled, and a time indicates when the arranged in the processing direction before proces beitungselement so stops sending data to the interface circuit;

Fig. 9 ein Zeitablaufdiagramm, das die Verzögerung zwi­ schen einem Zeitpunkt, wenn eine Schnittstellen­ schaltung deren Buffered_Ready-Signal zu einem in Verarbeitungsrichtung davor angeordneten Verarbei­ tungselement wieder aktiviert, und einem Zeitpunkt zeigt, wenn das in Verarbeitungsrichtung davor an­ geordnete Verarbeitungselement damit beginnt, gül­ tige Daten zu der Schnittstellenschaltung zu sen­ den; Fig. 9 is a timing diagram illustrating the delay Zvi rule a time when an interface circuit whose Buffered_Ready signal to a previously arranged in the machine direction process ing element is again activated and a point in time indicates when the start in the machine direction in front of parent processing element so that, Gul to send data to the interface circuit;

Fig. 10 ein detaillierteres Blockdiagramm der gepufferten und ungepufferten Schreib-FIFOs, die in Fig. 6 dargestellt sind; Fig. 10 is a more detailed block diagram of the buffered and unbuffered write FIFOs shown in Fig. 6;

Fig. 11 ein Zeitablaufdiagramm, das die Beziehung zwischen verschiedenen Signalen zeigt, die verwendet wer­ den, um die in Fig. 10 gezeigten gepufferten und ungepufferten Schreib-FIFOs zu steuern; Fig. 11 is a timing diagram showing the relationship between various signals used to control the buffered and unbuffered write FIFOs shown in Fig. 10;

Fig. 12 ein detaillierteres Blockdiagramm der gepufferten und ungepufferten Lese-FIFOs, die in Fig. 6 ge­ zeigt sind, wobei Fig. 12 ferner zeigt, wie diese FIFOs arbeiten können, wenn ein Verarbeitungsele­ ment in einer Umleitungsbetriebsart konfiguriert ist; FIG. 12 is a more detailed block diagram of the buffered and unbuffered read FIFOs shown in FIG. 6, and FIG. 12 also shows how these FIFOs can operate when a processing element is configured in a redirection mode;

Fig. 13 ein detaillierteres Blockdiagramm der gepufferten und ungepufferten Lese-FIFOs, die in Fig. 6 ge­ zeigt sind, wobei Fig. 13 zeigt, wie diese FIFOs arbeiten können, wenn kein Verarbeitungselement in einer Umleitungsbetriebsart konfiguriert ist; und Figure 13 is a more detailed block diagram of the buffered and unbuffered read FIFOs shown in Figure 6, and Figure 13 shows how these FIFOs can operate when no processing element is configured in a redirection mode; and

Fig. 14 ein Zeitablaufdiagramm, das die Beziehung zwischen verschiedenen Signalen darstellt, die verwendet werden, um die gepufferten und ungepufferten Le­ se-FIFOs zu steuern, die in Fig. 12 und 13 gezeigt sind.To control Fig. 14 is a timing diagram illustrating the relationship between various signals that are used to the buffered and unbuffered Le se-FIFOs 12 and 13 in Fig..

1. Systemüberblick1. System overview

Die Fig. 1-3 sind Blockdiagramme, die unterschiedliche beispielhafte Ausführungsbeispiele von Computergraphiksyste­ men zeigen, die eine Busarchitektur und ein Datenübertra­ gungsprotokoll gemäß der vorliegenden Erfindung verwenden. Jedes System weist eine unterschiedliche Anzahl von Kompo­ nenten auf und bietet folglich einen unterschiedlichen Lei­ stungsgrad; zwei der gezeigten Systeme bieten ferner ein zu­ sätzliches Texturabbildungsmerkmal. Es sollte offensichtlich sein, daß die gezeigten Systeme beispielhaft und auf keine Weise einschränkend sind, und daß ein beliebiges Datenüber­ tragungssystem die Busarchitektur und das Datenübertragungs­ protokoll der Erfindung verwenden könnte. FIGS. 1-3 are block diagrams showing men the different exemplary embodiments of Computergraphiksyste that use a bus architecture and a Datenübertra transmission protocol according to the present invention. Each system has a different number of components and consequently offers a different level of performance; two of the systems shown also offer an additional texture mapping feature. It should be apparent that the systems shown are exemplary and not limiting in any way, and that any data transmission system could use the bus architecture and data transmission protocol of the invention.

Fig. 1 zeigt das einfachste der drei Systeme. Wie gezeigt, umfaßt das System einen Hostcomputer 100, ein vorgelagertes Teilsystem 102 und ein Rahmenpufferteilsystem 104. Das vor­ gelagerte Teilsystem 102 empfängt von dem Hostcomputer 100 über einen Bus 101 die Grundelemente, die aufbereitet werden sollen. Die Grundelemente sind typischerweise durch x-, y-, z-Koordinatendaten, RGB-Farbdaten und Alpha-Mischdaten für jeden der bestimmten Abschnitte der Grundelemente, wie z. B. für die Dreieckscheitelpunkte, spezifiziert. Fig. 1 shows the simplest of the three systems. As shown, the system includes a host computer 100 , an upstream subsystem 102, and a frame buffer subsystem 104 . The upstream subsystem 102 receives from host computer 100 via bus 101 the basic elements that are to be processed. The primitives are typically x, y, z coordinate data, RGB color data, and alpha blend data for each of the particular portions of the primitives, such as. B. specified for the triangle vertices.

Daten, die die Grundelemente in drei Dimensionen darstellen, werden von dem vorgelagerten Teilsystem 102 über einen Bus 122, der Segmente 122A, 122B und 122C aufweist, an das Rah­ menpufferteilsystem geliefert. Das Rahmenpufferteilsystem 104 interpoliert die Aufbereitungsdaten, die von dem vorge­ lagerten Teilsystem 102 empfangen werden, um die Pixel auf dem Anzeigebildschirm zu berechnen, der jedes Grundelement darstellen wird, und um die RGB-Farbwerte des resultierenden Objekts für jedes Pixel zu bestimmen. RGB-Farbsteuersignale für jedes Pixel werden jeweils über RGB-Leitungen 123 be­ reitgestellt, um die Pixel des Anzeigebildschirms (nicht ge­ zeigt) zu steuern, um ein resultierendes Bild auf demselben anzuzeigen.Data representing the primitives in three dimensions, comprising from the upstream end subsystem 102 via a bus 122, the segments 122 A, 122 B and 122 C, supplied to the Rah menpufferteilsystem. The frame buffer subsystem 104 interpolates the rendering data received from the upstream subsystem 102 to calculate the pixels on the display screen that will represent each primitive and to determine the RGB color values of the resulting object for each pixel. RGB color control signals for each pixel are provided via RGB lines 123, respectively, to control the pixels of the display screen (not shown) to display a resultant image thereon.

Bei dem in Fig. 1 gezeigten Ausführungsbeispiel umfaßt das vorgelagerte Teilsystem 102 eine Hostschnittstelle 106 und einen drei-dimensionalen Geometriebeschleuniger (3D-Geome­ triebeschleuniger) 110. Wie angemerkt empfängt die Host­ schnittstelle 106 die x-, y-, z-Koordinaten und Farbgrund­ elementdaten über den Bus 101 von dem Hostcomputer 100. Die­ se Daten werden von der Hostschnittstelle 106 über einen Bus 108 an den Geometriebeschleuniger 110 geliefert. Der Geome­ triebeschleuniger 110 führt herkömmliche Geometriebeschleu­ nigerfunktionen durch, woraus sich eine Aufbereitung der Da­ ten für eine Anzeige ergibt. Diese Funktionen können eine drei-dimensionale Transformation, eine Helligkeitseinstel­ lung, ein Abschneiden und perspektivische Unterteilungsope­ rationen ebenso wie eine Ebenengleichungserzeugung umfassen, die in einem Fließkommaformat durchgeführt wird. Die Aufbe­ reitungsdaten werden von einem Geometriebeschleuniger 110 über einen Bus 112 an die Hostschnittstelle 106 geliefert, die die Aufbereitungsdaten neu formatiert, eine Gleitkomma­ zu-Festkomma-Umwandlung durchführt und diese Daten über das Bussystem 122 an das Rahmenpufferteilsystem 104 liefert.In the exemplary embodiment shown in FIG. 1, the upstream subsystem 102 comprises a host interface 106 and a three-dimensional geometry accelerator (3D geometry accelerator) 110 . As noted, the host interface 106 receives the x, y, z coordinates and color primitive data over the bus 101 from the host computer 100 . The se data is supplied from the host interface 106 via a bus 108 to the geometry accelerator 110th The geometry accelerator 110 performs conventional geometry acceleration functions, which results in the preparation of the data for a display. These functions can include three-dimensional transformation, brightness adjustment, clipping, and perspective division operations, as well as plane equation generation that is performed in a floating point format. The conditioning data is provided from a geometry accelerator 110 via a bus 112 to the host interface 106 , which reformats the conditioning data, performs floating point to fixed point conversion and provides this data to the frame buffer subsystem 104 via the bus system 122 .

Bei diesem Ausführungsbeispiel umfaßt das Rahmenpufferteil­ system 104 zwei Rahmenpuffersteuerungen 114A und 114B, die jeweils einen synchronen Graphikspeicher mit wahlfreiem Zu­ griff (SGRAM; SGRAM = Synchronous Graphics Random Access Me­ mory) 116A und 116B, ebenso wie einen Digital-Analog-Wandler für einen Speicher mit wahlfreiem Zugriff (RAMDAC; RAMDAC = Random Access Memory Digital-to-Analog Converter) 120 auf­ weisen. Sowohl die Rahmenpuffersteuerungen 114A und 114B als auch die Hostschnittstelle 106 sind mit dem Bussystem 122 verbunden. Bei diesem Ausführungsbeispiel umfaßt der Bus 122 drei Busse 122A, 122B und 122C, die zueinander identisch sind. Die Busarchitektur 122 und das zugeordnete Datenüber­ tragungsprotokoll, die im folgenden detaillierter erörtert werden, bieten gegenüber im Stand der Technik bekannten Architekturen und Protokollen eine verbesserte Bandbreite.In this exemplary embodiment, the frame buffer subsystem 104 comprises two frame buffer controllers 114 A and 114 B, each of which has a synchronous graphics memory with random access (SGRAM; SGRAM = SGRAM = Synchronous Graphics Random Access Memory) 116 A and 116 B, as well as a digital-analogue Have converters for a random access memory (RAMDAC; RAMDAC = Random Access Memory Digital-to-Analog Converter) 120 . Both the frame buffer controllers 114 A and 114 B and the host interface 106 are connected to the bus system 122 . In this embodiment, the bus 122 comprises three buses 122 A, 122 B and 122 C, which are identical to each other. The bus architecture 122 and the associated data transmission protocol, which are discussed in more detail below, offer an improved bandwidth compared to architectures and protocols known in the art.

Bei dem Ausführungsbeispiel von Fig. 1 empfängt jede Rahmen­ puffersteuerung 114A und 114B Aufbereitungsdaten von der Hostschnittstelle 106. Jede Rahmenpuffersteuerung kann un­ terschiedliche, sich nicht-überlappende Segmente des Anzei­ gebildschirms steuern. Die Rahmenpuffersteuerungen können die Grundelementdaten interpolieren, um die Bildschirmanzei­ gepixelkoordinaten, die das Grundelement darstellen, und die entsprechenden Objekt-RGB-Farbwerte für jede Pixelkoordinate berechnen.In the embodiment of FIG. 1, each frame buffer controller 114 A and 114 B receives conditioning data from the host interface 106 . Each frame buffer controller can control different, non-overlapping segments of the display screen. The frame buffer controls can interpolate the primitive data to calculate the screen pixel coordinates that represent the primitive and the corresponding object RGB color values for each pixel coordinate.

Die resultierenden Bildvideodaten, die von den Rahmenpuffer­ steuerungen 114A und 114B erzeugt werden, die die RGB-Werte für jedes Pixel umfassen, können in den entsprechenden SGRAMs 116A und 116B gespeichert werden. Die Videodaten kön­ nen aus den SGRAM-Chips in die Rahmenpuffersteuerungen aus­ gelesen werden, neu formatiert werden, so daß dieselben von dem RAMDAC 120 abgewickelt werden können, und an das RAMDAC geliefert werden. Der RAMDAC 120 kann die digitalen Farbda­ ten wiederum in analoge RGB-Farbsteuersignale für jedes Pi­ xel umwandeln, die über RGB-Leitungen 123 bereitgestellt werden, um eine Bildschirmanzeige (nicht gezeigt) zu steu­ ern.The resulting image video data, the control of the frame buffer 114 A and 114 B are generated which include the RGB values for each pixel, 116 A and 116 B may be stored in the corresponding SGRAMs. The video data can be read from the SGRAM chips into the frame buffer controllers, reformatted so that they can be handled by the RAMDAC 120 , and supplied to the RAMDAC. The RAMDAC 120 can in turn convert the digital color data to analog RGB color control signals for each pixel, which are provided via RGB lines 123 to control a screen display (not shown).

Die Hostschnittstelle 106 kann ferner über den Videobus 124 direkt mit dem RAMDAC 120 kommunizieren. Das System ist vor­ zugsweise ein System mit Pipeline-Struktur, derart, daß das Rahmenpufferteilsystem 104 ein erstes Grundelement verarbei­ ten kann, während das vorgelagerte Teilsystem 102 ein (zeit­ lich) nachfolgendes Grundelement verarbeitet.The host interface 106 can also communicate directly with the RAMDAC 120 via the video bus 124 . The system is preferably a system with a pipeline structure, such that the frame buffer subsystem 104 can process a first basic element, while the upstream subsystem 102 processes a (basic) subsequent basic element.

Das Bussystem der vorliegenden Erfindung kann ferner bei dem in Fig. 2 gezeigten Graphiksystem verwendet werden. Das in Fig. 2 gezeigte System entspricht dem in Fig. 1 gezeigtem System, mit der Ausnahme, daß: (1.) zwei 3D-Geometriebe­ schleuniger 110A und 110B in dem vorgelagerten Teilsystem 102 aufgenommen sind, (2.) ein Texturabbildungsteilsystem 130 verwendet wird, und (3.) die Kapazität jedes SGRAM-Spei­ chers 116A und 116B erhöht worden ist. Mit den zwei Geome­ triebeschleunigern 110A und 110B werden die Grundelementda­ ten den Geometriebeschleunigern gemäß dem Datenübertragungs­ protokoll der Erfindung zugewiesen, das im folgenden detail­ lierter beschrieben wird.The bus system of the present invention can also be used in the graphics system shown in FIG. 2. The system shown in FIG. 2 corresponds to the system shown in FIG. 1, with the exception that: (1.) two 3D geo gear accelerators 110 A and 110 B are included in the upstream subsystem 102 , (2.) a texture mapping subsystem 130 is used, and (3.) the capacity of each SGRAM memory 116 A and 116 B has been increased. With the two geometry accelerators 110 A and 110 B, the basic element data are assigned to the geometry accelerators according to the data transmission protocol of the invention, which is described in more detail below.

Ein Texturabbildungsteilsystem 130 kann ein beliebiges Teil­ system sein, das Texturabbildungsoperationen ausführt und bei diesem exemplarischen Ausführungsbeispiel eine Texturab­ bildungsschaltung 132 und einen zugeordneten lokalen Cache-Speicher 134 umfaßt, der eine begrenzte Menge von Texturda­ ten speichert.A texture mapping subsystem 130 may be any subsystem that performs texture mapping operations and, in this exemplary embodiment, includes a texture mapping circuit 132 and an associated local cache 134 that stores a limited amount of texture data.

Bei diesem Ausführungsbeispiel umfaßt der Bus 122 Abschnitte 122A-122D. Die Texturabbildungsschaltung 132 ist mit dem Bus 122 zwischen der Hostschnittstelle 106 und der Rahmen­ puffersteuerung 114A verbunden. Während des Betriebs emp­ fängt die Texturabbildungsschaltung 132, wie beide Rahmen­ puffersteuerschaltungen 114A und 114B, Grundelementdaten auf dem Bus 122A. Die Daten können x-, y-, z-Objektpixelkoordi­ naten, Objekt-RGB-Farbwerte und S-, T-Texturkartenkoordina­ ten für zumindest einen Scheitelpunkt, und die Ebenenglei­ chung des Grundelements (d. h. des Dreiecks) umfassen. Die Texturabbildungsschaltung 132 kann die x-, y-Pixelkoordina­ ten und die S-, T-Texturkoordinaten interpolieren, um die resultierenden Texturdaten für jedes Pixel zu berechnen. Die Texturdaten für jedes Pixel können jederzeit in dem Cache-Speicher 134 gespeichert werden. Falls dies durchgeführt wird, werden die Texturdaten aus dem Cache-Speicher 134 aus­ gelesen. Falls die benötigten Texturdaten zu diesem Zeit­ punkt nicht in dem Cache-Speicher 134 vorhanden sind, werden die benötigten Texturdaten von dem Hostcomputer auf eine ef­ fiziente Art und Weise gemäß der vorliegenden Erfindung her­ untergeladen, wie es im folgenden detaillierter beschrieben wird, ohne daß das Freimachen der Datenaufbereitungspipeline oder ein reservierter Texturdatenweg erforderlich ist.In this embodiment, bus 122 includes sections 122 A- 122 D. Texture mapping circuit 132 is connected to bus 122 between host interface 106 and frame buffer controller 114 A. During operation emp captures the texture mapping circuit 132, as both of the frame buffer control circuits 114 A and 114 B, basic element data on the bus 122 A. The data can x-, y-, z-Objektpixelkoordi naten, object-RGB color values and S, T -Texture map coordinates for at least one vertex, and include the plane equation of the base element (ie the triangle). The texture mapping circuit 132 may interpolate the x, y pixel coordinates and the S, T texture coordinates to calculate the resulting texture data for each pixel. The texture data for each pixel can be stored in cache 134 at any time. If this is done, the texture data is read from cache 134 . If the required texture data is not present in the cache 134 at this time, the required texture data is downloaded from the host computer in an efficient manner in accordance with the present invention, as will be described in more detail below, without this Clear the data preparation pipeline or a reserved texture data path is required.

Die Texturdaten für jedes Pixel können über einen Texel-Bus 136 an jede Rahmenpuffersteuerung 114A und 114B geliefert werden, in denen dieselben von jeder Rahmenpuffersteuerung auf einer Pixel-für-Pixel-Basis mit den Objekt-RGB-Farbwer­ ten kombiniert werden.The texture data for each pixel can be a texel bus 136 to each frame buffer controller 114 A and 114 B are supplied, in which the same from each frame buffer control on a pixel-by-pixel basis with the object R, G Farbwer th are combined.

Es sollte offensichtlich sein, daß das vorgelagerte Teilsy­ stem 102, das Rahmenpufferteilsystem 104 und das Texturab­ bildungsteilsystem 130 beliebige gegenwärtig bekannte Teil­ systeme oder auch erst später entwickelte Teilsysteme sein können. Zusätzlich weist jedes dieser Teilsysteme vorzugs­ weise eine Pipeline-Struktur auf und verarbeitet mehrere Grundelemente gleichzeitig. Während beispielsweise das Tex­ turabbildungsteilsystem 130 und das Rahmenpufferteilsystem 104 Grundelemente verarbeiten, die vorher von dem vorgela­ gerten Teilsystem 102 bereitgestellt wurden, fährt das vor­ gelagerte Teilsystem 102 damit fort, neue Grundelemente zu verarbeiten, bis die Pipelines in diesen in Verarbeitungs­ richtung danach angeordneten Teilsystemen voll werden.It should be obvious that the upstream subsystem 102 , the frame buffer subsystem 104, and the texture mapping subsystem 130 may be any currently known subsystem or subsystems that were developed later. In addition, each of these subsystems preferably has a pipeline structure and processes several basic elements at the same time. For example, while the Tex turabbildungsteilsystem 130 and the frame buffer subsystem process 104 primitives previously provided by the vorgela siege subsystem 102 which is running ahead mounted subsystem 102 thus continues to process new primitives until the pipelines in these in processing thereafter arranged subsystems towards full will.

Die Busarchitektur der vorliegenden Erfindung ist derart konfiguriert, daß unterschiedliche Typen von Graphikverar­ beitungschips untereinander austauschbar in der Architektur angeordnet werden können. Das heißt, jeder Chip, der mit dem Bus 120 verbunden ist, könnte eine beliebige Graphikfunkti­ on, wie z. B. eine Texturabbildung, eine Rahmenpuffersteue­ rung oder weitere dieser Funktionen, durchführen.The bus architecture of the present invention is configured such that different types of graphics processing chips can be interchangeably arranged in the architecture. That is, each chip connected to bus 120 could have any graphics function, such as. B. perform a texture mapping, a frame buffer control or other of these functions.

Fig. 3 ist ein Blockdiagramm, das ein weiteres Ausführungs­ beispiel eines Graphiksystems zeigt, das die Busarchitektur der vorliegenden Erfindung verwendet. Bei dem System von Fig. 3 umfaßt ein vorgelagertes Teilsystem 102 drei 3D-Geo­ metriebeschleuniger 110A, 110B und 110C; ein Rahmenpuffer­ teilsystem 104 umfaßt vier Rahmenpuffersteuerungen 114A-114D, wobei jede jeweils einen zugeordneten SGRAM-Speicher 116A-116D aufweist; und ein Texturabbildungsteilsystem 130 umfaßt zwei Texturabbildungsschaltungen 132 und 133, die je­ weils einen zugeordneten Cache-Speicher 134 und 135 aufwei­ sen. Fig. 3 is a block diagram illustrating another execution shows a graphics system which uses the bus architecture of the present invention. In the system of FIG. 3, an upstream subsystem 102 comprises three 3D geo-accelerators 110 A, 110 B and 110 C; a frame buffer subsystem 104 comprises four frame buffer controllers 114 A- 114 D, each having an associated SGRAM memory 116 A- 116 D; and a texture mapping subsystem 130 includes two texture mapping circuits 132 and 133 , each having an associated cache 134 and 135 .

Über Bussegmente 122A-G der Busarchitektur 122 der vorlie­ genden Erfindung sind eine Hostschnittstelle 106, jede der Texturabbildungsschaltungen 132 und 133 und jede der Rahmen­ puffersteuerungen 114A-114D verbunden. Ein Texel-Bus 137 verbindet die Texturabbildungsschaltung 133 mit den Rahmen­ puffersteuerungen 114C und 114D. Der Betrieb entspricht dem, der bezugnehmend auf Fig. 2 beschrieben wurde.A host interface 106 , each of the texture mapping circuits 132 and 133 and each of the frame buffer controllers 114 A- 114 D are connected via bus segments 122 A-G of the bus architecture 122 of the present invention. A texel bus 137 connects the texture mapping circuit 133 to the frame buffer controllers 114 C and 114 D. The operation is the same as that described with reference to FIG. 2.

2. Das Busverbindungssystem2. The bus connection system

Bezugnehmend nun auf Fig. 4 ist ein Blockdiagramm eines Bus­ verbindungssystems 200 gemäß der vorliegenden Erfindung ge­ zeigt. Das Busverbindungssystem, das verwendet werden kann, um mehrere Graphikchips (z. B. Rahmenpuffersteuerungen) zu verbinden, umfaßt mehrere Verarbeitungselemente 202, 222 und 242. Das Verarbeitungselement 202 ist über einen PCI-Bus 201 (PCI = Peripheral Component Interconnect = Peripheriekompo­ nentenverbindung) schnittstellenmäßig mit einem externen Hostgerät (nicht gezeigt), z. B. mit einem PC, verbunden. Jedes der Verarbeitungselemente 202, 222 und 242 umfaßt vor­ zugsweise einen ASIC-Chip (ASIC = Application Specific Inte­ grated Circuit = anwendungsspezifische integrierte Schal­ tung), wobei der Kern desselben als beliebige Graphikverar­ beitungsvorrichtung, wie z. B. eine Rahmenpuffersteuerung, eine Texturabbildungsvorrichtung, usw., konfiguriert sein kann.Referring now to FIG. 4, a block diagram of a bus connection system 200 in accordance with the present invention is shown. The bus connection system that can be used to connect multiple graphics chips (e.g., frame buffer controllers) includes multiple processing elements 202 , 222, and 242 . The processing element 202 is via a PCI bus 201 (PCI = Peripheral Component Interconnect = Peripheriekompo nentenverbindung) interface with an external host device (not shown), for. B. connected to a PC. Each of the processing elements 202 , 222 and 242 preferably comprises an ASIC chip (ASIC = Application Specific Integrated Circuit = application-specific integrated circuit), the core of the same as any graphics processing device, such as. A frame buffer controller, a texture mapping device, etc., can be configured.

Beispiele von Systemen, die das Busverbindungsnetzwerk 200 verwenden könnten, sind in den Fig. 1-3 dargestellt. In Fig. 1 ist beispielsweise eine Hostschnittstelle 106 über den Bus 101 mit dem Hostcomputer 100 verbunden, wobei die Hostschnittstelle 106 in einem Ring mit den Rahmenpuffer­ steuerungen 114A und 114B verbunden ist. Folglich könnte bei diesem Beispiel das Verarbeitungselement 202 (Fig. 4) der Hostschnittstelle 106 (Fig. 1) entsprechen, der PCI-Bus 201 (Fig. 4) könnte dem Bus 101 (Fig. 1) entsprechen, und die Verarbeitungselemente 222 und 242 (Fig. 4) könnten jeweils den Rahmenpuffersteuerungen 114A und 114B (Fig. 1) entspre­ chen.Examples of systems that could use bus interconnection network 200 are shown in FIGS. 1-3. In Fig. 1, a host interface, for example, 106 is connected via bus 101 to the host computer 100, the host interface 106 in a ring with the frame buffer controllers 114 A and 114 B is connected. Thus, in this example, processing element 202 ( FIG. 4) could correspond to host interface 106 ( FIG. 1), PCI bus 201 ( FIG. 4) could correspond to bus 101 ( FIG. 1), and processing elements 222 and 242 ( FIG. 4) could correspond to frame buffer controllers 114 A and 114 B ( FIG. 1), respectively.

Wie es in Fig. 4 gezeigt ist, umfaßt jedes der Verarbei­ tungselemente 202, 222 und 242 einen Kernprozessor 204, 224 und 244, bzw. eine Schnittstellenschaltung 206, 226 und 246. Die Kernprozessoren jedes Verarbeitungselements können über­ einstimmen oder sich unterscheiden, während die Schnittstel­ lenschaltungen 206, 226 und 246 (vorzugsweise) identisch sind. Zwischen die Kernprozessoren 204, 224 und 244 und de­ ren zugeordneten Schnittstellen 206, 226 und 246 sind mehre­ re asynchrone FIFO-Puffer (FIFOs; FIFO = first-in-first-out) 208, 210, 212, 214, 228, 230, 232, 234, 248, 250, 252 und 254 gekoppelt. Diese asynchronen FIFOs liefern gepufferte (d. h. Nicht-Prioritäts-) Informationswege und ungepufferte (d. h. Prioritäts-) Informationswege sowohl von den Schnitt­ stellenschaltungen 206, 226 bzw. 246 zu den Kernprozessoren 204, 224 bzw. 244 als auch von den Kernprozessoren 204, 224 bzw. 244 zu den Schnittstellenschaltungen 206, 226 bzw. 246.As shown in FIG. 4, each of the processing elements 202 , 222 and 242 includes a core processor 204 , 224 and 244 , and an interface circuit 206 , 226 and 246 , respectively. The core processors of each processing element may match or differ, while interface circuits 206 , 226 and 246 are (preferably) identical. Between the core processors 204 , 224 and 244 and their associated interfaces 206 , 226 and 246 are several asynchronous FIFO buffers (FIFOs; FIFO = FIFO = first-in-first-out) 208 , 210 , 212 , 214 , 228 , 230 , 232 , 234 , 248 , 250 , 252 and 254 coupled. These asynchronous FIFOs provide buffered (ie non-priority) information paths and unbuffered (ie priority) information paths both from the interface circuits 206 , 226 and 246 to the core processors 204 , 224 and 244 as well as from the core processors 204 , 224 and 244 to the interface circuits 206 , 226 and 246 , respectively.

Der Unterschied zwischen gepufferten (d. h. Nicht-Priori­ täts-) Informationen und ungepufferten (d. h. Prioritäts-) Informationen und die Verarbeitung jedes Informationstyps zwischen gepufferten (d. h. Nicht-Prioritäts-) und ungepuf­ ferten (d. h. Prioritäts-) Informationswegen wird im folgen­ den jeweils detaillierter erläutert. An diesem Punkt sollte es jedoch offensichtlich sein, daß zwei unterschiedliche In­ formationstypen unter Verwendung eines gemeinsam verwendeten Busses zwischen den Verarbeitungselementen übertragen werden können. Jedes Informationspaket wird (durch Setzen bestimm­ ter Bits in Typfelddaten, die gleichzeitig mit denselben übertragen werden) entweder als gepufferte (d. h. Nicht- Prioritäts-) oder ungepufferte (d. h. Prioritäts-) Informa­ tionen identifiziert. Nachdem die Informationen von einer Schnittstellenschaltung empfangen worden sind, werden die Informationen, die als gepufferte Informationen identifi­ ziert wurden, zu einem Speicherelement, das lediglich gepuf­ ferte Informationen aufnimmt, (d. h. zu einem Nicht-Priori­ täts-Informationsspeicherelement) übertragen, wobei Informa­ tionen, die als ungepuffert identifiziert wurden, zu einem Speicherelement, das lediglich ungepufferte Informationen aufnimmt (d. h. zu einem Prioritäts-Informationsspeicherele­ ment), übertragen werden.The difference between buffered (i.e. non-priori information) and unbuffered (i.e. priority) Information and the processing of each type of information between buffered (i.e. non-priority) and unpuffed fert (i.e. priority) information paths will follow each explained in more detail. At this point it should however, it should be obvious that two different In formation types using a shared Busses are transferred between the processing elements can. Each information package is (determined by setting ter bits in type field data that coincide with the same transferred) either as buffered (i.e. non- Priority) or unbuffered (i.e., priority) information  tion identified. After the information from one Interface circuit have been received, the Information identified as buffered information were adorned to a storage element that only puffed information (i.e. to a non-priority activity information storage element), wherein Informa ions that were identified as unbuffered to one Storage element that only contains unbuffered information (i.e. to a priority information storage element ment).

Durch Steuern der Schnittstellenschaltungen in dem Ring, so daß ungepufferte (d. h. Prioritäts-) Informationen immer Vorrang gegenüber gepufferten (d. h. Nicht-Prioritäts-) In­ formationen haben, so daß jedoch Nicht-Prioritäts-Informati­ onen in einem Informationsweg, der von dem ungepufferten (d. h. Prioritäts-) Informationsweg getrennt ist, gehalten wer­ den, bis die ungepufferten (d. h. Prioritäts-) Informationen verarbeitet sind, werden deutliche Vorteile gegenüber Syste­ men bereitgestellt, bei denen ein Pipeline-Weg "geräumt" werden muß, bevor Prioritätsinformationen durch denselben weitergeleitet werden können.By controlling the interface circuits in the ring, so that unbuffered (i.e., priority) information always Take precedence over buffered (i.e. non-priority) In formations, but so that non-priority informat ons in an information path that is different from the unbuffered (i.e. Priority) information path is kept separate, who until the unbuffered (i.e., priority) information processed, there are clear advantages over Syste men provided where a pipeline route "cleared" must be done before priority information is given by the same can be forwarded.

Es sollte offensichtlich sein, daß, obwohl Prioritätsinfor­ mationen hierin als "ungepuffert" identifiziert werden, die­ selben trotzdem durch Informationsspeicherelemente verarbei­ tet werden, und dieselben als solche tatsächlich in der all­ gemeinen Bedeutung des Wortes "gepuffert" sind. Trotzdem werden hierin Prioritätsinformationen als ungepuffert be­ zeichnet, da dieselben hinsichtlich der Nicht-Prioritäts-In­ formationen gewissermaßen ungepuffert sind.It should be obvious that, although priority information mations are identified herein as "unbuffered" which the same nonetheless processed by information storage elements be, and the same as such actually in all mean meaning of the word "buffered". Nevertheless priority information is described here as unbuffered draws, since the same in terms of non-priority in formations are to a certain extent unbuffered.

Im folgenden wird weiter auf Fig. 4 Bezug genommen. Unter Verwendung beispielsweise des Verarbeitungselements 222 ist ein gepuffertes Schreib-FIFO (BW-FIFO; BW = buffered write) 228 (d. h. ein Nicht-Prioritäts-Schnittstellenausgabespei­ cherelement) zwischen eine Schnittstellenschaltung 226 und einen Kernprozessor 224 gekoppelt, um einen gepufferten (d. h. einen Nicht-Prioritäts-) Informationsweg von der Schnitt­ stellenschaltung zu dem Kernprozessor bereitzustellen. Ent­ sprechend ist ein ungepuffertes Schreib-FIFO (UW-FIFO; UW = unbuffered write) 230 (d. h. ein Prioritäts-Schnittstellen­ ausgabespeicherelement) zwischen die Schnittstellenschaltung 226 und den Kernprozessor 224 gekoppelt, um einen ungepuf­ ferten (d. h. einen Prioritäts-) Informationsweg von der Schnittstellenschaltung zu dem Kernprozessor bereitzustel­ len. Zusätzlich ist ein gepuffertes Lese-FIFO (BR-FIFO; BR = buffered read) 232 (d. h. ein Nicht-Prioritäts-Schnittstel­ leneingangspeicherelement) zwischen den Kernprozessor 224 und die Schnittstellenschaltung 226 gekoppelt, um einen ge­ pufferten (d. h. einen Nicht-Prioritäts-) Informationsweg zwischen dem Kernprozessor und der Schnittstellenschaltung bereitzustellen. Schließlich ist ein ungepuffertes Lese-FIFO (UR-FIFO; UR = unbuffered read) 234 (d. h. ein Prioritäts-Schnitt­ stelleneingangspeicherelement) zwischen den Kernpro­ zessor 224 und die Schnittstellenschaltung 226 gekoppelt, um einen ungepufferten (d. h. einen Prioritäts-) Informations­ weg zwischen dem Kernprozessor und der Schnittstellenschal­ tung bereitzustellen. Die Anordnung und der Betrieb der bei­ spielhaften Lese- und Schreib-FIFOs 228, 230, 232 und 234 wird im folgenden detaillierter dargestellt und beschrieben.In the following, reference is further made to FIG. 4. Using, for example, processing element 222 , a buffered write (FIFO) FIFO 228 (ie, a non-priority interface output memory element) is coupled between an interface circuit 226 and a core processor 224 to provide a buffered (ie, not -Priority-) provide information path from the interface circuit to the core processor. Accordingly is an unbuffered write FIFO (UW FIFO; UW = unbuffered write) 230 (ie, a priority interfaces output storage element) between the interface circuit 226 and coupled to the core processor 224 to a ungepuf ferten (ie, priority) information from the To provide interface circuitry to the core processor. In addition, a buffered read FIFO (BR-FIFO) 232 (ie, a non-priority interface input storage element) is coupled between the core processor 224 and the interface circuit 226 to provide a buffered (ie, non-priority) Provide information path between the core processor and the interface circuit. Finally, an unbuffered read (FIFO) 234 (ie, a priority interface input storage element) is coupled between the core processor 224 and the interface circuit 226 to provide unbuffered (ie, priority) information between them To provide core processor and the interface circuit. The arrangement and operation of the exemplary read and write FIFOs 228 , 230 , 232 and 234 are illustrated and described in more detail below.

Die Verarbeitungselemente 202, 222 und 242 sind mittels ei­ nes unidirektionalen Busses, der die Bussegmente 250, 252 und 254 umfaßt, miteinander verbunden. Die Bussegmente 250, 252 und 254 des Verbindungsnetzwerks 200 weisen einen iden­ tischen Aufbau und eine identische Breite auf. Wie es darge­ stellt ist, verbinden die Bussegmente 250, 252 und 254 die Verarbeitungselemente 202, 222 und 242 in einem Ringformat, wobei das Bussegment 250 die Verarbeitungselemente 202 und 222 verbindet, das Bussegment 252 die Verarbeitungselemente 222 und 242 verbindet, und das Bussegment 254 die Verarbei­ tungselemente 242 und 202 verbindet. Auf diese Art und Weise werden Informationen von dem Verarbeitungselement 202 zu dem Verarbeitungselement 222 weitergeleitet, Informationen von dem Verarbeitungselement 222 zu dem Verarbeitungselement 242 weitergeleitet, und Informationen von dem Verarbeitungsele­ ment 242 zu dem Verarbeitungselement 202 zurückgebracht.The processing elements 202 , 222 and 242 are connected to one another by means of a unidirectional bus, which comprises the bus segments 250 , 252 and 254 . The bus segments 250 , 252 and 254 of the connection network 200 have an identical structure and an identical width. As illustrated, bus segments 250 , 252, and 254 connect processing elements 202 , 222, and 242 in a ring format, with bus segment 250 connecting processing elements 202 and 222 , bus segment 252 connecting processing elements 222 and 242 , and bus segment 254 the processing elements 242 and 202 connects. In this manner, information is passed from processing element 202 to processing element 222 , information from processing element 222 to processing element 242 , and information is returned from processing element 242 to processing element 202 .

Durch die Verwendung der in Fig. 4 dargestellten Anordnung können Informationen zwischen dem externen Hostgerät und dem Verarbeitungselement 202 (über den PCI-Bus 201) ausgetauscht werden, wobei Informationen unidirektional von jedem der Verarbeitungselemente 202, 222 und 242 zu dem Verarbeitungs­ element, das demselben in dem Ring folgt, umlaufend weiter­ gegeben werden. Diese umlaufende (kreisförmige) Anordnung liefert zwischen jedem benachbarten Paar von Verarbeitungs­ elementen einfache Punkt-zu-Punkt-Verbindungen, derart, daß es lediglich erforderlich ist, daß der Ausgang jeder Schnittstelle den Eingang der Schnittstelle, die derselben in dem Ring folgt, ansteuert. Da jedes Verarbeitungselement lediglich eine Last ansteuert, werden Signalintegritätspro­ bleme minimiert, wodurch als Ergebnis eine hohe Busbandbrei­ te erhalten werden kann.Using the arrangement shown in FIG. 4, information can be exchanged between the external host device and the processing element 202 (via the PCI bus 201 ), with information being unidirectional from each of the processing elements 202 , 222 and 242 to the processing element that is the same in the ring follows, are passed on all around. This circumferential (circular) arrangement provides simple point-to-point connections between each adjacent pair of processing elements, such that it is only required that the output of each interface drive the input of the interface that follows it in the ring. Since each processing element only drives one load, signal integrity problems are minimized, as a result of which a high bus bandwidth can be obtained.

Zusätzlich werden bei diesem Ausführungsbeispiel die Infor­ mationen, die von einem Element zu einem anderen übertragen werden, zusammen mit einem Taktsignal übertragen. Der Bedarf als solches, eine systemweite Taktsynchronisation bereitzu­ stellen, wird beseitigt, wobei das Hinzufügen von zusätzli­ chen Verarbeitungselementen erreicht wird, indem lediglich ein neues Verarbeitungselement in den Ring eingesteckt wird. Das heißt, diese Übertragung des Taktsignals mit den Infor­ mationen ermöglicht es, daß die Anzahl der Elemente, die in den Bus aufgenommen sind, tatsächlich unbegrenzt ist, obwohl sich die Integrität des Taktsignals natürlich verschlech­ tert, wenn die Anzahl der Verarbeitungselemente in dem Ring erhöht wird.In addition, the Infor mations that transfer from one element to another are transmitted together with a clock signal. The need as such, system-wide clock synchronization ready is eliminated, adding additional Chen processing elements is achieved by only a new processing element is inserted into the ring. That means this transmission of the clock signal with the information mations allows the number of elements included in the bus is picked up, is actually unlimited, though the integrity of the clock signal naturally deteriorates tert when the number of processing elements in the ring is increased.

Folglich ermöglicht das Ringverbindungssystem gemäß der Er­ findung eine Erhöhung der Kommunikationsbandbreite mit einem Bus, der eine verringerte Breite aufweist. Ein hoher Durch­ satz wird erreicht, indem Informationen über die Schnitt­ stellen des Rings schnell weitergeleitet werden, während es ermöglicht wird, daß die Kernprozessoren jedes Elements Be­ fehle asynchron von der Informationsübertragungsrate verar­ beiten. Die Signalführungs- und Signalintegritätsprobleme werden reduziert, da die Busbreite reduziert und lediglich eine Last pro Bus vorhanden ist. Darüberhinaus können mit dem Taktsignal, das mit den Informationen in der Ringanord­ nung übertragen wird, ohne weiteres zusätzliche Verarbei­ tungselemente zu dem Ringnetzwerk hinzugefügt oder aus dem­ selben gelöscht werden, ohne daß negative Auswirkungen für die Synchronisation des Systems auftreten. Aufgrund der ge­ ringen Zeitdauer, die jedes der Verarbeitungselemente erfor­ dert, um Informationen aus dem Bus zu entnehmen, ergibt das Hinzufügen von zusätzlichen Verarbeitungselementen in den Ring lediglich einen zusätzlichen Taktzyklus pro hinzugefüg­ tem Verarbeitungselement, wodurch eine minimale zusätzliche Verzögerung hervorgerufen wird.Consequently, the ring connection system according to the Er finding an increase in communication bandwidth with one Bus that has a reduced width. A high through sentence is achieved by providing information about the cut make the ring be forwarded quickly while it is  enables the core processors of each element Be missing asynchronously from the information transfer rate work. The signal routing and signal integrity problems are reduced because the bus width is reduced and only there is one load per bus. You can also use the clock signal with the information in the ring arrangement transfer is carried out without additional processing tion elements added to the ring network or from the same can be deleted without negative effects for the synchronization of the system occur. Due to the ge time that each processing element takes changes to extract information from the bus, this results Add additional processing elements in the Ring only added one additional clock cycle per tem processing element, creating a minimal additional Delay is caused.

3. Die Busverbindung3. The bus connection

Weiter bezugnehmend auf Fig. 4 besteht eine Funktion der Bussegmente 250, 252 und 254 darin, Informationspakete zwi­ schen den Verarbeitungselementen 202, 222 und 242 zu über­ tragen. Gemäß einem Ausführungsbeispiel der Erfindung umfaßt ein vollständiges Informationspaket zwei unterschiedliche Abschnitte, wobei jeder Abschnitt 32 Informationsbits auf­ weist. Wenn die zwei Abschnitte jedes Informationspakets übertragen werden, werden dieselben zeitlich gemultiplext, so daß für jedes vollständige Paket, das übertragen wird, tatsächlich 64 Informationsbits zwischen den Verarbeitungs­ elementen übertragen werden. Beispielsweise könnte ein er­ ster Abschnitt eines Informationspakets eine 32-Bit-Adresse und ein zweiter Abschnitt des Pakets (der dem ersten Ab­ schnitt unmittelbar folgt) ein 32-Bit-Datenwort aufweisen. Ferner weist gemäß diesem Ausführungsbeispiel jeder Ab­ schnitt jedes vollständigen Informationspakets ein 9-Bit-Typ-Datenfeld auf, das demselben zugeordnet ist, wobei die­ ses 9-Bit-Typfeld gleichzeitig mit dem Informationspaket übertragen wird, dem dasselbe zugeordnet ist.Still referring to FIG. 4 is a function of the bus segments 250, 252 and 254 therein, information packets Zvi rule the processing elements 202, 222 and 242 carry over. According to one embodiment of the invention, a complete information package comprises two different sections, each section having 32 information bits. When the two sections of each information packet are transmitted, they are time-multiplexed, so that for each complete packet that is transmitted, 64 bits of information are actually transmitted between the processing elements. For example, a first section of an information packet could have a 32-bit address and a second section of the packet (which immediately follows the first section) could have a 32-bit data word. Furthermore, according to this exemplary embodiment, each section of each complete information packet has a 9-bit type data field which is assigned to it, this 9-bit type field being transmitted simultaneously with the information packet to which it is assigned.

Jedes der Bussegmente 250, 252 und 254 weist 41 Busleitungen auf, die für die Übertragung von Informationen und Typdaten reserviert sind. Unter Verwendung beispielsweise des Busseg­ ments 250 ist die Busleitung 250F, die 32 unterschiedliche Busleitungen umfaßt, für die unidirektionale Übertragung von 32 Informationsbits zwischen der Schnittstellenschaltung 206 und der Schnittstellenschaltung 226 reserviert, wobei die Busleitung 250E, die 9 unterschiedliche Busleitungen umfaßt, für eine unidirektionale Übertragung von 9 Typdatenbits zwi­ schen der Schnittstellenschaltung 206 und der Schnittstel­ lenschaltung 226 reserviert ist. Folglich sind während eines einzigen Taktzyklusses die Busleitungen 250E und 250F zusam­ men in der Lage, 9 Datentypbits und 32 Informationsbits zwi­ schen den Verarbeitungselementen 202 und 222 zu übertragen. Vorzugsweise werden Halb-Pakete von Informationen und Daten­ typen (d. h. 32 Informationsbits und 9 Datentypbits) mit ei­ ner Rate von zumindest 200 MHz übertragen.Each of the bus segments 250 , 252 and 254 has 41 bus lines which are reserved for the transmission of information and type data. Using bus segment 250 , for example, bus line 250 F, which comprises 32 different bus lines, is reserved for the unidirectional transmission of 32 information bits between interface circuit 206 and interface circuit 226 , bus line 250 E, which comprises 9 different bus lines, for one unidirectional transmission of 9 type data bits between the interface circuit 206 and the interface circuit 226 is reserved. Consequently, during a single clock cycle, the bus lines 250 E and 250 F together are able to transfer 9 data type bits and 32 information bits between the processing elements 202 and 222 . Half packets of information and data types (ie 32 information bits and 9 data type bits) are preferably transmitted at a rate of at least 200 MHz.

Wie es in Fig. 4 gezeigt ist, stellt jedes der Bussegmente 250, 252 und 254 gemeinsame Signale zwischen den Verarbei­ tungselementen bereit, das dieselben verbindet. Wieder unter Verwendung des Bussegments 250 umfassen beispielsweise diese Signale ein Taktsignal (CLK; CLK = Clock), das über die Bus­ leitung 250A übertragen wird, ein gepuffertes Informations­ bereitschaftssignal (B_Rdy; B_Rdy = buffered ready), das über die Busleitung 250B übertragen wird, und ein ungepuf­ fertes Informationsbereitschaftssignal (U_Rdy; U_Rdy = un­ buffered ready), das über die Busleitung 250C übertragen wird, und ein Besetztsignal (busy = besetzt bzw. beschäf­ tigt), das über die Busleitung 250D übertragen wird, Typ­ feldsignale (Typ[8 : 0]), die über die Busleitungen 250E über­ tragen werden, und Informationsfeldsignale (Info[31 : 0]), die über die Busleitungen 250F übertragen werden. Die Taktsigna­ le (CLK), Typfeldsignale (Typ[8 : 0]) und Informationsfeldsi­ gnale (Info [31 : 0]) werden in einer ersten Flußabwärtsrich­ tung von einem Verarbeitungselement (wie z. B. dem Verarbei­ tungselement 202) zu dem nächsten Verarbeitungselement (wie z. B. dem Verarbeitungselement 222) in dem Ring weitergelei­ tet. Die gepufferten Informationsbereitschaftssignale (B_Rdy) und die ungepufferten Informationsbereitschaftssi­ gnale (U_Rdy) ebenso wie die Besetztsignale (Busy) werden in einer umgekehrten Richtung (Aufwärtsrichtung) von einem zweiten Verarbeitungselement (wie z. B. dem Verarbeitungs­ element 222) an ein erstes Verarbeitungselement (wie z. B. das Verarbeitungselement 202) in dem Ring geliefert. Zwei dieser Signale in "Umkehrrichtung", d. h. das B_Rdy- und U_Rdy-Signal, werden verwendet, um den Informationsfluß zwi­ schen den Verarbeitungselementen zu steuern, wie es detail­ lierter im folgenden beschrieben wird.As shown in FIG. 4, each of the bus segments 250 , 252 and 254 provides common signals between the processing elements that connect them. Again using the bus segment 250 , these signals include, for example, a clock signal (CLK; CLK = clock), which is transmitted via the bus line 250 A, a buffered information ready signal (B_Rdy; B_Rdy = buffered ready), which are transmitted via the bus line 250 B. is, and an unbuffered ready signal (U_Rdy; U_Rdy = un buffered ready), which is transmitted via the bus line 250 C, and a busy signal (busy = busy or busy), which is transmitted via the bus line 250 D, type field signals (Type [8: 0]), which will be transmitted via the bus lines 250 E, and information field signals (Info [31: 0]), which will be transmitted via the bus lines 250 F. The clock signals (CLK), type field signals (type [8: 0]) and information field signals (info [31: 0]) are transferred in a first downstream direction from one processing element (such as processing element 202 ) to the next Processing element (such as processing element 222 ) passed in the ring. The buffered information ready signals (B_Rdy) and the unbuffered information ready signals (U_Rdy) as well as the busy signals (Busy) are in a reverse direction (upward direction) from a second processing element (such as processing element 222 ) to a first processing element (such as e.g. processing element 202 ) is supplied in the ring. Two of these "reverse direction" signals, ie the B_Rdy and U_Rdy signals, are used to control the flow of information between the processing elements, as described in more detail below.

Das Besetztsignal wird verwendet, um anzuzeigen, ob beliebi­ ge der Chips auf dem Bus beschäftigt sind oder nicht. Ein Register in dem Hauptverarbeitungselement (Master Processing Element), das von dem Hostgerät gelesen werden kann, ver­ folgt, ob die Chips beschäftigt sind oder nicht. Auf diese Art und Weise kann das Hostgerät bestimmen, wann dasselbe in der Lage ist, bestimmte Operationen, die die Verarbeitungs­ elemente betreffen, durchzuführen.The busy signal is used to indicate whether any The chips on the bus are busy or not. A Register in the main processing element (Master Processing Element) that can be read by the host device, ver follows whether the chips are busy or not. To this Way, the host device can determine when it is in is able to perform certain operations that the processing relate to elements.

Ein deutlicher Vorteil des Busverbindungssystems 200 ist dessen Flexibilität. Das heißt, das Busverbindungssystem 200 kann eine beliebige Anzahl von Verarbeitungselementen ohne deutliche Verschlechterung der Signalintegrität oder Band­ breite verbinden, da das Taktsignal, wie es oben angemerkt wurde, mit den Daten übertragen wird, und lediglich eine Last mit jeder Quelle gekoppelt ist. Folglich ermöglicht die Busarchitektur der Erfindung, daß optionale Verarbeitungs­ elemente hinzugefügt werden, um Funktionen, wie z. B. eine Texturabbildung, eine Bildverarbeitung, eine Volumenaufbe­ reitung, durchzuführen, oder daß Standardverarbeitungsele­ mente, wie z. B. Rasterisierer oder Rahmenpuffersteuerungs­ einrichtungen, für eine gesteigerte Leistungsfähigkeit oder eine gesteigerte Funktionalität hinzugefügt werden. A significant advantage of the bus connection system 200 is its flexibility. That is, the bus connection system 200 can connect any number of processing elements without significant degradation in signal integrity or bandwidth since the clock signal, as noted above, is transmitted with the data and only one load is coupled to each source. Thus, the bus architecture of the invention allows optional processing elements to be added to perform functions such as. B. a texture mapping, image processing, a volume preparation, perform, or that standard processing elements such. As rasterizers or frame buffer control devices, for increased performance or functionality.

Ein weiterer Vorteil, der durch die Busstruktur bereitge­ stellt wird, besteht darin, daß durch (zeitliches) Multiple­ xen von zwei unterschiedlichen 32-Bit-Informationswörtern die Anzahl der Anschlußstifte, die erforderlich ist, um die­ se Informationen zwischen den Verarbeitungselementen aus zu­ tauschen, halb so groß wie die Anzahl ist, die erforderlich wäre, wenn die Informationspakete nicht derart gemultiplext würden. Die Geschwindigkeit des Busses, d. h. 200 MHz, ist groß genug, daß das Multiplexen der 32 Adressenbits und 30 Datenbits auf die oben beschriebene Art und Weise durchge­ führt werden kann, während es noch möglich ist, daß die Gra­ phikvorrichtung die Leistungsanforderungen erfüllt. Da die Anschlußstiftreduzierung im allgemeinen ein Hauptfaktor bei einem ASIC-Entwurf ist, liefert die Fähigkeit der Busstruk­ tur, die Leistungsanforderungen mit einer halb so großen An­ zahl von Anschlußstiften, die für eine Informationsübertra­ gung reserviert sind, zu erfüllen, einen deutlichen Vorteil gegenüber Systemen, die eine größere Anzahl von Anschluß­ stiften verwenden, um dieselbe Informationsmenge zu übertra­ gen.Another advantage provided by the bus structure is that by (time) multiple xen of two different 32-bit information words the number of pins required to get the se information between the processing elements swap half the number that is required would be if the information packets were not so multiplexed would. The speed of the bus, i. H. 200 MHz large enough that the multiplexing of the 32 address bits and 30th Data bits in the manner described above can be performed while it is still possible that the Gra phic device meets the performance requirements. Since the Pin reduction in general is a major factor is an ASIC design, provides the capability of the bus structure ture, the performance requirements with half the size number of pins that are used for an information transfer reserved to meet, a clear advantage versus systems that have a larger number of connection Use pens to transfer the same amount of information gene.

Sowie sich jedoch die ASIC-Technologie verbessert und sich die verfügbare Anschlußstiftzahl erhöht, oder wenn Technolo­ giefortschritte den Bedarf für eine schnellere Datenübertra­ gungsrate vorschreiben sollten, kann der 41-Bit-Informati­ onsweg ohne weiteres erweitert werden, derart, daß mehr An­ schlußstifte für eine Informationsübertragung reserviert sein können, wobei die Bandbreite des Systems entsprechend erhöht werden kann. Ferner werden Verbesserungen bei der PC-Platinentechnologie und den I/O-Anschlußflächenentwürfen zweifelslos ermöglichen, daß die Busarchitektur 200 bei hö­ heren Frequenzen läuft.However, as the ASIC technology improves and the number of available pins increases, or if technological advances dictate the need for a faster data transfer rate, the 41-bit information path can easily be expanded in such a way that more pins for one Information transmission can be reserved, the bandwidth of the system can be increased accordingly. Furthermore, improvements in PC board technology and I / O pad designs will no doubt allow bus architecture 200 to run at higher frequencies.

Wie es im vorhergehenden angemerkt wurde, sind die Busseg­ mente 250, 252 und 254 zusätzlich unidirektional. Unidirek­ tionale Busse liefern im allgemeinen eine schnellere Daten­ übertragungsrate als bidirektionale Busse, da keine Verzöge­ rungsperiode vorhanden ist, die der Umkehrung der Richtung des Busses zugeordnet ist. Da ferner kein Bedarf besteht, sowohl einen Sende- als auch einen Empfangsweg bereitzustel­ len und dieselben zu steuern, sind unidirektionale Busstruk­ turen typischerweise einfacher zu verwalten und erfordern eine einfachere Hardware.As noted above, bus segments 250 , 252 and 254 are also unidirectional. Unidirectional buses generally provide a faster data transfer rate than bidirectional buses because there is no delay period associated with reversing the direction of the bus. Furthermore, since there is no need to provide and control both a send and a receive path, unidirectional bus structures are typically easier to manage and require simpler hardware.

4. Die Verarbeitungselemente4. The processing elements

Wie es im vorhergehenden erwähnt wurde, umfaßt jedes der Verarbeitungselemente von Fig. 4 einen Kernprozessor (bei­ spielsweise den Kernprozessor 224), eine Reihe von Schreib- und Lese-FIFOs (beispielsweise die FIFOs 228, 230, 232 und 234) und eine Schnittstellenschaltung (beispielsweise die Schnittstellenschaltung 226), wobei die Kernprozessoren der Verarbeitungselemente nicht identisch sein müssen, wie es ferner im vorhergehenden erwähnt wurde. Beispielsweise um­ faßt bei dem Ausführungsbeispiel von Fig. 4 der Kernprozes­ sor 204 des Verarbeitungselements 202 eine Logik-Schaltung für eine schnittstellenmäßige Verbindung mit dem Host-PCI-Bus, die nicht in den anderen Kernprozessoren aufgenommen sein muß. Bei dem Beispiel von Fig. 4 ist das Verarbeitungs­ element 202 das Hauptverarbeitungselement in dem Ringnetz­ werk 200, wobei dasselbe folglich, wie es im vorhergehenden erwähnt wurde, der Hostschnittstelle 106 in den Fig. 1-3 entsprechen könnte. Wie es im folgenden detaillierter be­ schrieben wird, verarbeitet das Verarbeitungselement 202 so­ mit die Eingangssignalpakete auf eine ein wenig unterschied­ liche Art und Weise als die anderen Verarbeitungselemente, die in dem Ring gekoppelt sind.As mentioned above, each of the processing elements of FIG. 4 includes a core processor (e.g., core processor 224 ), a series of write and read FIFOs (e.g. FIFOs 228 , 230 , 232 and 234 ) and an interface circuit ( for example, the interface circuit 226 ), wherein the core processors of the processing elements do not have to be identical, as was also mentioned above. For example, in the embodiment of FIG. 4, the core processor 204 of the processing element 202 includes a logic circuit for an interface connection to the host PCI bus, which does not have to be included in the other core processors. In the example of FIG. 4, processing element 202 is the main processing element in ring network 200 , and consequently, as previously mentioned, it could correspond to host interface 106 in FIGS . 1-3. As will be described in more detail below, the processing element 202 thus processes the input signal packets in a slightly different way than the other processing elements coupled in the ring.

Die allgemeine Funktionsweise jedes der Verarbeitungselemen­ te 202, 222 und 242 stellt sich hinsichtlich des Busverbin­ dungsnetzwerks 200 wie folgt dar. Ein primäres Taktsignal wird in zwei Phasen, d. h. in eine Phase 1 (P1) und eine Phase 2 (P2), unterteilt. Wie es im vorhergehenden erwähnt wurde, können die Pakete, die über die Informationsleitungen (beispielsweise die Busleitungen 250F) übermittelt werden, z. B. gemultiplexte Adressen/Dateninformationen sein, wobei jedes Paket (bei einem beispielhaften Ausführungsbeispiel) 32 Adreßinformationsbits und 32 Dateninformationsbits (für eine Gesamtzahl von 64 Informationsbits pro Paket) aufweist. Folglich kann während einer Phase 1 (P1) ein Adressenab­ schnitt eines Pakets über die Informationsleitungen (bei­ spielsweise die Leitungen 250F) übertragen werden, wobei während der Phase 2 (P2) der zugeordnete Datenabschnitt des Pakets über die Informationsleitungen übertragen werden kann.The general functioning of each of the processing elements 202 , 222 and 242 is as follows with regard to the bus connection network 200. A primary clock signal is divided into two phases, ie a phase 1 (P1) and a phase 2 (P2). As mentioned above, the packets transmitted over the information lines (e.g. bus lines 250 F) may e.g. B. Multiplexed addresses / data information, each packet (in an exemplary embodiment) having 32 address information bits and 32 data information bits (for a total of 64 information bits per packet). Consequently, an address section of a packet can be transmitted via the information lines (for example the lines 250 F) during phase 1 (P1), and the associated data section of the packet can be transmitted via the information lines during phase 2 (P2).

Es sollte an diesem Punkt jedoch angemerkt werden, daß ein Informationspaket nicht unbedingt ein Adressenpaket, auf das ein Datenpaket folgt, aufweisen muß, sondern eine beliebige Kombination von Adressen- und Dateninformationen umfassen kann. Wie es beispielsweise im folgenden in Tabelle II ge­ zeigt ist, kann ein Informationspaket ein Datenpaket aufwei­ sen, auf das ein weiteres Datenpaket folgt, wenn eine Opera­ tion, wie z. B. eine Blockübertragung, durchgeführt wird. Ferner sollte angemerkt werden, daß ein Informationspaket nicht in zwei oder mehr getrennte Abschnitte gemultiplext werden muß, sondern alternativ als ein einzelnes Multi-Bit­ paket übertragen werden kann, ohne von dem beabsichtigten Schutzbereich der Erfindung abzuweichen.At this point, however, it should be noted that a Information package is not necessarily an address package on which a data packet follows, must have, but any Combination of address and data information include can. For example, as in the following in Table II shows, an information packet can have a data packet sen, which is followed by another data packet if an Opera tion, such as B. a block transfer is performed. It should also be noted that an information package not multiplexed into two or more separate sections must be used, but alternatively as a single multi-bit package can be transferred without the intended Deviate scope of the invention.

Jedes Informationspaket wird über einen Satz von Informati­ onsleitungen (beispielsweise die Busleitungen 250F) von ei­ ner Schnittstellenschaltung (beispielsweise der Schnittstel­ lenschaltung 226) empfangen. Alle Pakete, die von einem Ver­ arbeitungselement empfangen werden, werden für eine Abwick­ lung zu dem Kernprozessor dieses Verarbeitungselements (bei­ spielsweise zu dem Kernprozessor 224 des Verarbeitungsele­ ments 222) weitergeleitet. Jedes Verarbeitungselement weist eine eindeutige Basisadresse auf, die demselben zugeordnet ist, so daß beispielsweise während einer Leseoperation fünf Bits einer eintreffenden Adresse mit der Basisadresse des Verarbeitungselements verglichen werden können, um zu sehen, ob das Paket für dieses Verarbeitungselement vorgesehen ist. Each information packet is received via a set of information lines (e.g., bus lines 250 F) from an interface circuit (e.g., interface circuit 226 ). All packets received by a processing element are forwarded to the core processor of that processing element (for example, the core processor 224 of the processing element 222 ) for processing. Each processing element has a unique base address associated with it, so that during a read operation, for example, five bits of an incoming address can be compared to the base address of the processing element to see if the packet is for that processing element.

Vorzugsweise werden sich alle identischen Verarbeitungsele­ menttypen eine gemeinsame Basisadresse teilen, bzw. gemein­ sam verwenden. Falls ein bestimmtes Paket ein Verarbeitungs­ element nicht betrifft, wird der Kernprozessor das Paket einfach ablegen. Andernfalls wird der Kernprozessor die Funktion durchführen, die durch das Paket vorgeschrieben ist. Falls das Paket beispielsweise ein Lese-Paket ist, wird der Kernprozessor (beispielsweise der Kernprozessor 224) die Informationen, die aus seinem Speicher (nach einer geringen Verzögerung) ausgelesen werden, zu der Schnittstellenschal­ tung, die demselben zugeordnet ist (beispielsweise zu der Schnittstellenschaltung 226), weiterleiten, so daß die Schnittstellenschaltung die Informationen zu den nachgela­ gerten Verarbeitungselementen (beispielsweise zu dem Verar­ beitungselement 242) weiterleiten kann.Preferably, all identical processing element types will share or use a common base address. If a particular package does not affect a processing element, the core processor will simply drop the package. Otherwise the core processor will perform the function prescribed by the packet. For example, if the packet is a read packet, the core processor (e.g., core processor 224 ) the information read from its memory (after a slight delay) to the interface circuitry associated with it (e.g., interface circuitry 226) ), so that the interface circuit can forward the information to the downstream processing elements (for example to the processing element 242 ).

Ein Grund dafür, daß das Busverbindungssystem 200 in der La­ ge ist, mit einer hohen Frequenz zu arbeiten, besteht darin, daß jede Schnittstellenschaltung für jedes Verarbeitungsele­ ment (nicht das Hauptverarbeitungselement 202) Informationen für lediglich eine minimale Zeitdauer hält, bevor dieselben zu dem nächsten Verarbeitungselement in dem Ring weiterge­ leitet werden. Das heißt, sowie Informationen in jedes der Verarbeitungselemente 222 und 242 übertragen werden, gewinnt jede der Schnittstellenschaltungen 226 bzw. 246 die Informa­ tionen in einem Eingangsregister (nicht gezeigt) während ei­ nes ersten Taktzyklusses wieder und leitet dieselben zu ei­ nem Ausgangsregister (nicht gezeigt) während eines zweiten Taktzyklusses weiter, der dem ersten Taktzyklus folgt, wobei der zweite Taktzyklus der nächste nachfolgende Taktzyklus sein kann, jedoch nicht notwendigerweise sein muß. Folglich tritt bei einem Ausführungsbeispiel lediglich eine Latenz­ zeit von einem Taktzyklus auf, die bei jedem der Verarbei­ tungselemente 226 und 246 hervorgerufen wird. Folglich wer­ den alle Pakete, die von einem Verarbeitungselement (nicht von dem Hauptverarbeitungselement 202) empfangen werden, durch dessen Schnittstellenschaltung zu dem nächsten Verar­ beitungselement in dem Ring weitergeleitet. One reason that bus connection system 200 is capable of operating at a high frequency is that each interface circuit for each processing element (not main processing element 202 ) holds information for only a minimal amount of time before it goes to the next Processing element in the ring be forwarded. That is, as information is transferred to each of processing elements 222 and 242 , each of interface circuits 226 and 246, respectively, retrieves the information in an input register (not shown) during a first clock cycle and passes it to an output register (not shown) during a second clock cycle following the first clock cycle, the second clock cycle may be the next subsequent clock cycle, but need not be. Thus, in one embodiment, there is only one clock cycle latency caused by each of processing elements 226 and 246 . Consequently, all packets received by a processing element (not the main processing element 202 ) are forwarded through its interface circuit to the next processing element in the ring.

Im Gegensatz dazu ist das Hauptverarbeitungselement konfi­ guriert, um in einer "Umleitungsbetriebsart" zu arbeiten, da dasselbe der Anfang und das Ende der Ringverbindung ist. Während der Umleitungsbetriebsart arbeitet die Schnittstel­ lenschaltung 206 wie zwei unterschiedliche Hälften. Eine Eingangshälfte (einschließlich der Schreib-FIFOs 208 und 210) empfängt alle Adressen-/Dateninformationen von dem Ring und leitet die Informationen über den Kernprozessor 204 um, wobei eine Ausgangshälfte (einschließlich der Lese-FIFOs 212 und 214) neue Adressen-/Dateninformationen von dem Kernpro­ zessor 204 empfängt und diese Informationen zu dem nächsten Verarbeitungselement in dem Ring weiterleitet. Folglich wer­ den bei dem in Fig. 4 gezeigten Beispiel alle Informationen, die von der Schnittstellenschaltung 206 (in dem Hauptverar­ beitungselement 202) empfangen werden, in das Kernelement 204 eingegeben, wobei die Informationen niemals direkt von dem Eingang der Schnittstelle 206 zu dem Ausgang derselben weitergeleitet werden, wie es auch jeweils bei den Schnitt­ stellenschaltungen 226 und 246 der Fall ist. Die Ausgangs­ hälfte ist in der Lage, Befehle von dem Hostprozessor (über den PCI-Bus) zu empfangen, diese Befehle weiterzugeben oder zu modifizieren (oder zusätzliche Befehle als Antwort auf dieselben zu erzeugen) und diese Befehle an den Ring weiter­ zuleiten.In contrast, the main processing element is configured to operate in a "rerouting mode" since it is the beginning and end of the ring connection. During the redirection mode, the interface circuit 206 operates as two different halves. An input half (including write FIFOs 208 and 210 ) receives all of the address / data information from the ring and redirects the information through core processor 204 , with an output half (including read FIFOs 212 and 214 ) of new address / data information from receives the core processor 204 and forwards this information to the next processing element in the ring. Thus, in the example shown in FIG. 4, all information received from interface circuit 206 (in main processing element 202 ) is entered into core element 204 , the information never directly from the input of interface 206 to the output thereof be forwarded, as is also the case with the interface circuits 226 and 246 . The output half is capable of receiving commands from the host processor (via the PCI bus), relaying or modifying those commands (or generating additional commands in response to them), and relaying these commands to the ring.

Obwohl die Umleitungsbetriebsart im vorhergehenden beschrie­ ben wurde, als ob dieselbe lediglich für das Hauptverarbei­ tungselement verwendet wird, ist es vorstellbar, daß diesel­ be für andere Verarbeitungselemente in dem Ring als auch zum Bereitstellen einer gesteigerten Funktionalität verwendet werden kann. Beispielsweise kann die Umleitungsbetriebsart bei weiteren Verarbeitungselementen verwendet werden, um zu ermöglichen, daß diese Elemente Funktionen, wie z. B. eine Bildverarbeitung, durchführen. Während einer Bildverarbei­ tung werden im allgemeinen Daten in einen Kernprozessor ge­ führt, manipuliert und aus dem Kernprozessor herausgeführt. Folglich werden die Daten, die von einem Kernprozessor emp­ fangen werden (wenn derselbe eine Bildverarbeitung durch­ führt), typischerweise derart gespeichert und verarbeitet, daß die Latenz zeit zwischen der Eingabe und der Ausgabe der Daten sehr lang sein kann. Zusätzlich kann die Datenmenge, die in den Kern eingegeben wird, sich von der Datenmenge unterscheiden, die denselben verläßt. Folglich kann durch ein Plazieren eines oder mehrerer der Verarbeitungselemente in dem Ring in der Umleitungsbetriebsart eine Bildverarbei­ tung mittels dieser Verarbeitungselemente ohne Verschlechte­ rung des Gesamtverhaltens des Rings abgewickelt werden.Although the redirection mode was previously described as if it were only for the main processing tion element is used, it is conceivable that diesel be for other processing elements in the ring as well Providing increased functionality can be. For example, the redirection mode used in further processing elements to allow these elements to perform functions such as Legs Image processing, perform. During an image processing device is generally data in a core processor leads, manipulates and leads out of the core processor. As a result, the data received by a core processor  will be caught (if the same goes through image processing leads), typically stored and processed in this way, that the latency time between the input and the output of the Data can be very long. In addition, the amount of data which is entered into the kernel is different from the amount of data distinguish that leaves it. Hence, by placing one or more of the processing elements image processing in the ring in the redirection mode processing by means of these processing elements without deterioration tion of the overall behavior of the ring.

Die Umleitungsbetriebsart kann ferner beispielsweise verwen­ det werden, um zu ermöglichen, daß ein Verarbeitungselement einen digitalen Videodatenstrom zu einem Videodatenverarbei­ tungselement überträgt, das in Verarbeitungsrichtung nach dem übertragenden Verarbeitungselement angeordnet ist. Das oder die Verarbeitungselemente, die den digitalen Videoda­ tenstrom zuführen, sollten immer in Verarbeitungsrichtung vor dem oder den Videodatenverarbeitungselementen angeordnet sein, die den digitalen Videodatenstrom empfangen. Um eine solche Funktion durchzuführen, plaziert das Hostgerät das digitale Videodatenverarbeitungselement in einer Umleitungs­ betriebsart, indem ein Umleitungszustandshardwareregister (nicht gezeigt) in der Schnittstelle des digitalen Videover­ arbeitungselements beschrieben wird. Auf der Verbindung sollten keine weiteren Operationen durchgeführt werden, nachdem das Videoverarbeitungselement in der Umleitungsbe­ triebsart plaziert wurde. Nachdem das Videoverarbeitungsele­ ment in der Umleitungsbetriebsart plaziert wurde, kann das­ selbe Schreibvorgänge in einen Speicher oder in Überlage­ rungspuffer, in Bildpuffer oder Texturcache-Anordnungen in einem beliebigen der nachgelagerten Verarbeitungselemente in dem Ringbus erzeugen.The redirection mode can also be used, for example det to enable a processing element a digital video data stream to a video data processor transmission element that transmits in the processing direction the transmitting processing element is arranged. The or the processing elements that make up the digital videoda should always be in the direction of processing arranged in front of the video data processing element or elements be receiving the digital video data stream. To one to perform such function, the host device places the digital video data processing element in a diversion mode by using a redirection state hardware register (not shown) in the interface of the digital video over work element is described. On the connection should no further operations be performed after the video processing element in the redirection area drive mode was placed. After the video processing element was placed in the redirection mode, it can same writes to a memory or in overlay buffer, in image buffers or texture cache arrays in any of the downstream processing elements in generate the ring bus.

Die Umleitungsbetriebsart wird freigegeben, indem ein Umlei­ tungszustandshardwareflag an jeder Schnittstellenschaltung, die "umgeleitet werden soll", gesetzt wird. Folglich ist bei dem in Fig. 4 gezeigten Beispiel das Umleitungszustandshard­ wareflag der Schnittstellenschaltung 206 permanent gesetzt, während die Umleitungszustandshardwareflags der Schnittstel­ lenschaltungen 226 und 246 optional gesetzt sein können.The redirection mode is enabled by setting a redirection state hardware flag on each interface circuit that is "to be redirected". Thus, in the example shown in FIG. 4, the redirection status hardware flag of interface circuit 206 is permanently set, while the redirection status hardware flags of interface circuits 226 and 246 may optionally be set.

Da das Hauptverarbeitungselement 202 (in Fig. 4) eine Infor­ mationspaketkommunikation in dem Ringnetzwerk einleitet, liefert dasselbe ferner das Haupttaktsignal, das mit den In­ formationen weitergeleitet wird. Das heißt, daß zusätzlich zu der Konfiguration des Hauptverarbeitungselements 202, um in einer Umleitungsbetriebsart zu arbeiten, dasselbe ferner konfiguriert ist, um in einer "Hauptbetriebsart" (master mode) zu arbeiten. Ungeachtet dessen, ob die Verarbeitungs­ elemente konfiguriert sind oder nicht, um in einer Hauptbe­ triebsart zu arbeiten, empfangen alle Verarbeitungselemente ein eintreffendes Taktsignal (In_CLK) von einem vorgelager­ ten Verarbeitungselement zusammen mit Informationen von die­ sem Verarbeitungselement. Dieses eintreffende Taktsignal In_CLK wird verwendet, um die Eingangsschaltungsanordnung der Schnittstellenschaltungen (die im folgenden beschrieben werden) zu takten. Die Verarbeitungselemente, d. h. ohne dem Verarbeitungselement 202, die nicht konfiguriert sind, um in einer Hauptbetriebsart zu arbeiten, verwenden ferner das eintreffende Taktsignal In_CLK, um die Ausgangsschaltungsan­ ordnung der Schnittstellenschaltung (die im folgenden be­ schrieben wird) zu takten.Furthermore, since the main processing element 202 (in FIG. 4) initiates information packet communication in the ring network, it also provides the main clock signal which is passed on with the information. That is, in addition to configuring the main processing element 202 to operate in a redirection mode, it is also configured to operate in a "master mode". Regardless of whether the processing elements are configured or not to operate in a main mode, all processing elements receive an incoming clock signal (In_CLK) from an upstream processing element together with information from this processing element. This incoming clock signal In_CLK is used to clock the input circuitry of the interface circuits (described below). The processing elements, ie without the processing element 202 , which are not configured to operate in a main mode, also use the incoming clock signal In_CLK to clock the output circuitry of the interface circuit (which will be described below).

Da die Schnittstellenschaltung 206 konfiguriert ist, um in einer Hauptbetriebsart zu arbeiten, wird dieselbe derart ge­ steuert, daß deren Ausgangsschaltungsanordnung unter Verwen­ dung eines Quellentaktsignals (Src_CLK; Src_CLK = source clock), das durch den Kernprozessor 204 erzeugt wird, und nicht unter Verwendung des eintreffenden Taktsignals (In_CLK) getaktet wird. Das Quellentaktsignal Src_CLK aus dem Kern eines "Haupt"-Verarbeitungselements wird folglich zusammen mit den Informationen aus dem Kern dieses Verarbei­ tungselements zu dem nächsten Verarbeitungselement in dem Ring weitergeleitet. Die Art und Weise, auf die entweder das Quellentaktsignal oder das eintreffende Taktsignal ausge­ wählt wird, um eine Zeitgebung für die Ausgangsschaltungsan­ ordnung einer Schnittstellenschaltung bereitzustellen (ab­ hängig davon, ob dieselbe konfiguriert ist, um in einer Hauptbetriebsart zu arbeiten oder nicht), ebenso wie die Er­ zeugung von geeigneten Zeitgebungssignalen von derselben, wird im folgenden detaillierter beschrieben.Since the interface circuit 206 is configured to operate in a main mode, it is controlled such that its output circuitry is utilizing a source clock signal (Src_CLK; Src_CLK) generated by the core processor 204 and not using the incoming clock signal (In_CLK) is clocked. The source clock signal Src_CLK from the core of a "main" processing element is thus forwarded together with the information from the core of this processing element to the next processing element in the ring. The manner in which either the source clock signal or the incoming clock signal is selected to provide timing for the output circuitry of an interface circuit (depending on whether it is configured to operate in a main mode or not), as well the generation of suitable timing signals therefrom is described in more detail below.

Wie oben erwähnt, arbeiten die Verarbeitungselemente, die mit dem Hauptverarbeitungselement gekoppelt sind, im allge­ meinen nicht in der Umleitungsbetriebsart. Folglich wird für alle Nicht-Hauptverarbeitungselemente (beispielsweise die Verarbeitungselemente 222 und 242) die Weiterleitung von In­ formationen von einem Verarbeitungselement zu einem weiteren in dem Ring weitgehend durch die Schnittstellenschaltung des Verarbeitungselements gesteuert (beispielsweise durch die Schnittstellenschaltungen 226 und 246). Beispielsweise unter Verwendung des Nicht-Hauptverarbeitungselements 222 empfängt der Kernprozessor 224 beispielsweise Informationen über asynchrone gepufferte Schreib- und ungepufferte Schreib-FI- FOs (BW, UW) 228 und 230 und leitet Informationen, die aus dem Kernprozessor 224 gelesen werden, über asynchrone gepuf­ ferte Lese- und ungepufferte Lese-FIFOs (BR, UR) 232 und 234 zu dem Ausgang der Schnittstellenschaltung 226 weiter. Die FIFOs 228, 230, 232 und 234 werden als "asynchron" bezeich­ net, da die gepufferten Schreib- und ungepufferten Schreib-FIFOs (BW, UW) 228 und 230 von der Schnittstellenschaltung 226 Informationen empfangen, und die gepufferten Lese- und ungepufferten Lese-FIFOs (BR, UR) 232 und 234 unter Verwen­ dung eines ersten Taktsignals (das von der Schnittstellen­ schaltung 226 bereitgestellt wird) Informationen an die Schnittstellenschaltung 226 übertragen, während die gepuf­ ferten Schreib- und ungepufferten Schreib-FIFOs (BW, UW) 228 und 230 Informationen an den Kernprozessor 224 übertra­ gen, und die gepufferten Lese- und ungepufferten Lese-FIFOs (BR, UR) 232 und 234 unter Verwendung eines zweiten Taktsi­ gnals (das von dem Kernprozessor 224 bereitgestellt wird), das eine unterschiedliche Frequenz als das erste Taktsignal aufweisen kann, Informationen von dem Kernprozessor 224 emp­ fangen. Da die Schnittstellenschaltung 226 und der Kernpro­ zessor 224 mit unterschiedlichen Frequenzen arbeiten können, erleichtert die Verwendung von asynchronen FIFOs 228, 230, 232 und 234 folglich die Übertragung von Informationen zwi­ schen den zwei Vorrichtungen.As mentioned above, the processing elements coupled to the main processing element generally do not operate in the redirection mode. Thus, for all non-main processing elements (e.g., processing elements 222 and 242 ), the routing of information from one processing element to another in the ring is largely controlled by the processing element's interface circuitry (e.g., interface circuits 226 and 246 ). For example, using non-main processing element 222 , core processor 224 receives, for example, information about asynchronous buffered write and unbuffered write FIFOs (BW, UW) 228 and 230 and routes information read from core processor 224 via asynchronous buffered Read and unbuffered read FIFOs (BR, UR) 232 and 234 continue to the output of interface circuit 226 . FIFOs 228 , 230 , 232, and 234 are referred to as "asynchronous" because buffered write and unbuffered write FIFOs (BW, UW) 228 and 230 receive information from interface circuit 226 , and buffered read and unbuffered read information (is the circuit from the interface 226 provided) -FIFOs (BR, UR) 232 and 234 under USAGE dung a first clock signal transmitted to the interface circuit 226, while the gepuf ferten write and unbuffered write FIFOs (BW, UW) 228 and 230 transmit information to the core processor 224 , and the buffered read and unbuffered read FIFOs (BR, UR) 232 and 234 using a second clock signal (provided by the core processor 224 ) that has a different frequency than that may have the first clock signal, receive information from the core processor 224 . Consequently, since the interface circuit 226 and the core processor 224 can operate at different frequencies, the use of asynchronous FIFOs 228 , 230 , 232 and 234 facilitates the transfer of information between the two devices.

Beispielsweise noch unter Verwendung des Verarbeitungsele­ ments 222 ist bei einem Ausführungsbeispiel jedes der FIFOs 228, 230, 232 und 234 in der Lage, 82 Bits (parallel) pro FIFO-Eingabe zu speichern. Der Grund für die Verwendung so­ wohl von gepufferten FIFOs (d. h. von Nicht-Prioritäts-Schnitt­ stellenspeicherschaltungen) als auch von ungepuffer­ ten FIFOs (d. h. von Prioritäts-Schnittstellenspeicherschal­ tungen) in jedem der Schreib- und Lesewege wird im folgenden detaillierter beschrieben. An diesem Punkt sollte jedoch an­ gemerkt werden, daß zwei unterschiedliche Informationswege, d. h. ein gepufferter (d. h. ein Nicht-Prioritäts-) Informa­ tionsweg und ein ungepufferter (d. h. ein Prioritäts-) In­ formationsweg in und aus dem Kernprozessor 224 bereitge­ stellt sind. Bei einem Ausführungsbeispiel entsprechen 41 der 82 parallelen Bits, die bei jeder Eingabe der gepuffer­ ten Schreib- und ungepufferten Schreib-FIFOs (BW, UW) 228 und 230 gespeichert werden, den 32 Informationsbits und 9 Typbits, die während der Phase 1 (P1) der Paketübertragung empfangen werden, wobei die anderen 41 Bits den 32 Informa­ tionsbits und den 9 Typbits entsprechen, die während der Phase 2 (P2) der Paketübertragung empfangen werden. Falls eine Funktion, z. B. eine Schreibfunktion, die eine Adresse und Daten erfordert, durchgeführt wird, wird folglich jede Puffereintragung eine 32-Bit-Adresse, ein 9-Bit-Typfeld, das der Adresse zugeordnet ist, 32 Datenbits und ein 9-Bit-Typ­ feld umfassen, das den Daten zugeordnet ist (das im allge­ meinen ein Duplikat des Typfelds ist, das der Adresse zuge­ ordnet ist). Bei einem Ausführungsbeispiel der Erfindung sollte jedes der gepufferten Schreib- und ungepufferten Schreib-FIFOs (BW, UW) 228 und 230 zumindest fünf Eintragun­ gen tief sein, wobei jedes der Lese-FIFOs zumindest eine Eintragung tief sein sollte. Es sollte jedoch offensichtlich sein, daß die Anzahl der Eintragungen in jedem FIFO einge­ stellt werden kann, wie es von dem Kern erfordert wird.For example, still using processing element 222 , in one embodiment, each of FIFOs 228 , 230 , 232, and 234 is capable of storing 82 bits (in parallel) per FIFO input. The reason for using both buffered FIFOs (ie, non-priority interface memory circuits) and unbuffered FIFOs (ie, priority interface memory circuits) in each of the write and read paths is described in more detail below. At this point, however, it should be noted that two different information paths, ie, a buffered (ie, a non-priority) information path and an unbuffered (ie, a priority) information path are provided in and out of the core processor 224 . In one embodiment, 41 of the 82 parallel bits that are stored each time buffered write and unbuffered write FIFOs (BW, UW) 228 and 230 are entered correspond to the 32 information bits and 9 type bits used during phase 1 (P1) of packet transmission, the other 41 bits corresponding to the 32 information bits and the 9 type bits received during phase 2 (P2) of the packet transmission. If a function, e.g. For example, if a write function requiring an address and data is performed, each buffer entry will include a 32-bit address, a 9-bit type field associated with the address, 32 data bits, and a 9-bit type field associated with the data (which is generally a duplicate of the type field associated with the address). In one embodiment of the invention, each of the buffered write and unbuffered write FIFOs (BW, UW) 228 and 230 should be at least five entries deep, with each of the read FIFOs being at least one entry deep. However, it should be apparent that the number of entries in each FIFO can be set as required by the core.

Bei einem Ausführungsbeispiel ist das Taktsignal, das zwi­ schen jedem Verarbeitungselement weitergeleitet wird, ein 200-MHz-Taktsignal. Jede Schnittstellenschaltung (beispiels­ weise die Schnittstellenschaltung 226) verwendet ein Zwei- Phasen-Taktsystem, wobei jede Phase mit einer halben exter­ nen Taktfrequenz arbeitet, d. h. jede Phase arbeitet bei diesem Ausführungsbeispiel mit 100 MHz. Im folgenden wird kurz auf Fig. 5 Bezug genommen. Es ist ein Zeitablaufdia­ gramm gezeigt, das die Beziehung zwischen dem eintreffenden Systemtaktsignal In_CLK (In_CLK = incoming clock) (von einem vorgelagerten Verarbeitungselement) und den zwei Taktphasen Phase 1 (P1) und Phase 2 (P2) darstellt, die an jeder der Schnittstellenschaltungen intern erzeugt werden. Es wird an­ gemerkt, daß sich die Betriebsphase (d. h. P1 oder P2) für jede fallende Flanke des eintreffenden Systemtaktsignals In_CLK ändert. Aus Zeitgebungsgründen kann es erwünscht sein, ein komplementäres Systemtaktsignal und nicht das in Fig. 5 gezeigte Einphasentaktsignal zu verwenden. Aus Ver­ einfachungsgründen wird jedoch im folgenden lediglich ein Einphasentaktsignal beschrieben.In one embodiment, the clock signal that is passed between each processing element is a 200 MHz clock signal. Each interface circuit (for example, the interface circuit 226 ) uses a two-phase clock system, each phase operating at half an external clock frequency, ie each phase operating at 100 MHz in this exemplary embodiment. In the following, reference is briefly made to FIG. 5. A timing diagram is shown which represents the relationship between the incoming system clock signal In_CLK (In_CLK = incoming clock) (from an upstream processing element) and the two clock phases Phase 1 (P1) and Phase 2 (P2), which are internal to each of the interface circuits be generated. It is noted that the operating phase (ie P1 or P2) changes for each falling edge of the incoming system clock signal In_CLK. For timing reasons, it may be desirable to use a complementary system clock signal and not the single phase clock signal shown in FIG. 5. For reasons of simplification, however, only a single-phase clock signal is described below.

Wie im vorhergehenden erwähnt, wird ein Verarbeitungsele­ ment, wenn dasselbe nicht konfiguriert ist, um in einer Hauptbetriebsart zu arbeiten, das eintreffende Taktsignal In_CLK als abgehendes Taktsignal (Out_CLK; Out_CLK = out­ going clock) übertragen, das mit den abgehenden Informatio­ nen übertragen wird. Folglich werden die intern erzeugten Phasen P1 und P2 für das abgehende Taktsignal Out_CLK, wenn dieselben nicht in einer Hauptbetriebsart konfiguriert sind, mit den intern erzeugten Phasen P1 und P2 für das eintref­ fende Taktsignal In_CLK identisch sein. Wenn ein Verarbei­ tungselement konfiguriert ist, um in einer Hauptbetriebsart zu arbeiten, wird dasselbe jedoch ein Quellentaktsignal Src_CLK von seinem Kern und nicht das eintreffende Taktsi­ gnal In_CLK verwenden, um Daten zu übertragen. Wenn sich ei­ ne Schnittstellenschaltung in einer Hauptbetriebsart befin­ det, wird dieselbe folglich ein Quellentaktsignal als ihr Ausgangstaktsignal Out_CLK übertragen, und um den Fluß der abgehenden Informationen zu steuern, wird dasselbe ein Zwei-Phasen-Taktgebungssystem erzeugen (das auch die Phasen P1 und P2 umfaßt), das dem in Fig. 5 gezeigten ähnelt (je­ doch nicht identisch ist).As mentioned above, if it is not configured to operate in a main mode, a processing element transmits the incoming clock signal In_CLK as an outgoing clock signal (Out_CLK; Out_CLK = out going clock) which is transmitted with the outgoing information. Consequently, the internally generated phases P1 and P2 for the outgoing clock signal Out_CLK, if they are not configured in a main operating mode, will be identical to the internally generated phases P1 and P2 for the incoming clock signal In_CLK. However, if a processing element is configured to operate in a main mode, it will use a source clock signal Src_CLK from its core and not the incoming clock signal In_CLK to transfer data. Thus, when an interface circuit is in a main mode, it will transmit a source clock signal as its output clock Out_CLK, and to control the flow of outgoing information, it will create a two-phase clocking system (which also includes phases P1 and P2 ), which is similar to that shown in Fig. 5 (but is not identical).

Bezugnehmend nun auf Fig. 6 ist ein detailliertes Blockdia­ gramm einer Schnittstellenschaltung 226 gezeigt. Da bei ei­ nem Ausführungsbeispiel die Schnittstellenschaltungen aller Verarbeitungselemente in dem Ring identisch sind, sollte es offensichtlich sein, daß die folgende Beschreibung der Schnittstellenschaltung 226 sowohl für die Schnittstellen­ schaltung 206 als auch 246 Anwendung findet. Wie es im vor­ hergehenden angemerkt wurde, kann jedoch die Schnittstellen­ schaltung 206 im allgemeinen lediglich in einer "Umleitungs­ betriebsart" und einer "Hauptbetriebsart" arbeiten, wodurch sich deren Betrieb ein wenig von dem der Schnittstellen­ schaltungen 226 und 246 unterscheiden wird.Referring now to FIG. 6, a detailed block diagram of an interface circuit 226 is shown. In one embodiment, since the interface circuits of all processing elements in the ring are identical, it should be obvious that the following description of the interface circuit 226 applies to both the interface circuit 206 and 246. However, as noted above, the interface circuit 206 can generally only operate in a "rerouting mode" and a "main mode", which will make their operation a little different from that of the interface circuits 226 and 246 .

Wie es in Fig. 6 gezeigt ist, werden Typdaten und gemulti­ plexte Informatonspakete gleichzeitig an den Eingang der Schnittstellenschaltung 226 geliefert und in ein Eingangsre­ gister 260 (d. h. ein Eingangsspeicherelement) gelatcht. Das Eingangsregister 260 kann in die Eingangs-Pads der Schnitt­ stellenschaltung 226 aufgenommen oder alternativ extern an der Schnittstellenschaltung angeordnet sein. Wie es im vor­ hergehenden angemerkt wurde, ist die Logik in der Schnitt­ stellenschaltung 226 unter Verwendung eines Zwei-Phasen-Takt­ systems getaktet. Das eintreffende Taktsignal In_CLK wird an den Eingang einer Teile-durch-Zwei-Schaltung 295 ge­ liefert, die Ausgangssignale, d. h. ein Schreibtaktsignal (Wr_CLK; Wr_CLK = write clock) und ein Phase-2-Taktsignal (P2_CLK), das das inverse Signal des Wr_CLK-Signals ist und folglich während der Phase P2 einen hohen Zustand aufweist, bereitstellt. Die Signale Wr_CLK und P2_CLK werden verwen­ det, um verschiedene Register in der Schnittstellenlogik zu steuern, wie es im folgenden beschrieben wird.As shown in Fig. 6, data type and gemulti plexte Informatonspakete are simultaneously supplied to the input of the interface circuit 226 and gister in a Eingangsre 260 (ie, an input storage element) latched. The input register 260 can be included in the input pads of the interface circuit 226 or alternatively can be arranged externally on the interface circuit. As noted in the foregoing, the logic in the interface circuit 226 is clocked using a two-phase clock system. The incoming clock signal In_CLK is supplied to the input of a divide-by-two circuit 295 , the output signals, ie a write clock signal (Wr_CLK; Wr_CLK = write clock) and a phase 2 clock signal (P2_CLK), which is the inverse signal of the Wr_CLK signal and consequently has a high state during phase P2. The Wr_CLK and P2_CLK signals are used to control various registers in the interface logic as described below.

Das eintreffende Taktsignal In_CLK wird ferner an einen Ein­ gang eines Multiplexers 299 geliefert. Der Multiplexer 299 empfängt ferner ein Quellentaktsignal Src_CLK von dem Kern­ prozessor 224 als zweites Eingangssignal. Wenn die Schnitt­ stellenschaltung 224 konfiguriert ist, um in einer Hauptbe­ triebsart zu arbeiten, wird der Multiplexer 299 das Quellen­ taktsignal Src_CLK als sein Ausgangssignal auswählen, und wird das Quellentaktsignal Src_CLK als das Ausgangstaktsi­ gnal Out_CLK an den Ausgang der Schnittstellenschaltung 226 liefern. Umgekehrt, wenn die Schnittstellenschaltung nicht konfiguriert ist, um in der Hauptbetriebsart zu arbeiten, wird der Multiplexer 299 das Eingangstaktsignal In_CLK als sein Ausgangssignal auswählen und das Eingangstaktsignal In_CLK als das Ausgangstaktsignal Out_CLK bereitstellen.The incoming clock signal In_CLK is also supplied to an input of a multiplexer 299 . The multiplexer 299 also receives a source clock signal Src_CLK from the core processor 224 as a second input signal. When the interface circuit 224 is configured to operate in a main mode, the multiplexer 299 will select the source clock signal Src_CLK as its output signal and will provide the source clock signal Src_CLK as the output clock signal Out_CLK to the output of the interface circuit 226 . Conversely, if the interface circuit is not configured to operate in the main mode, the multiplexer 299 will select the input clock signal In_CLK as its output signal and provide the input clock signal In_CLK as the output clock signal Out_CLK.

Das Ausgangssignal des Multiplexers 299 wird ferner an den Eingang einer Teile-durch-Zwei-Schaltung 297 geliefert, die ein Lesetaktsignal RD_CLK (RD_CLK = read clock) ebenso wie ein Signal (nicht gezeigt), das das inverse Signal des RD_CLK-Signals ist und für eine Ausgangssteuerung verwendet wird, an deren Ausgang bereitstellt. Wenn die Schnittstel­ lenschaltung 226 nicht in der Hauptbetriebsart konfiguriert ist, sollten folglich das Schreibtaktsignal Wr_CLK und das Lesetaktsignal RD_CLK synchron sein, wobei beide das inverse Signal von P2_CLK sein sollten. Umgekehrt, wenn die Schnitt­ stellenschaltung 226 in der Hauptbetriebsart konfiguriert ist, sollte das Lesetaktsignal RD_CLK lediglich durch das Quellentaktsignal Src_CLK angesteuert werden.The output of multiplexer 299 is also provided to the input of a divide-by-two circuit 297 which includes a read clock signal RD_CLK (RD_CLK) as well as a signal (not shown) which is the inverse of the RD_CLK signal and is used for an output control, at whose output provides. Accordingly, if the interface circuit 226 is not configured in the main mode, the write clock signal Wr_CLK and the read clock signal RD_CLK should be synchronous, both of which should be the inverse of P2_CLK. Conversely, when the interface circuit 226 is configured in the main mode, the read clock signal RD_CLK should only be driven by the source clock signal Src_CLK.

Gemäß einem Ausführungsbeispiel können die Taktsignale, die durch die Teile-durch-Zwei-Schaltungen 295 und 297 erzeugt werden, systemweit durch Hin- und Herschalten des Zustands eines einzigen Informationsbits auf einer der Informations­ busleitungen, z. B. Bit[31] der Busleitungen 250F (gezeigt in Fig. 4), und durch Synchronisieren der Ausgangssignale der Teile-durch-Zwei-Schaltungen 295 und 297 mit denselben synchronisiert werden.In one embodiment, the clock signals generated by the parts-by-two circuits 295 and 297 can be system-wide by switching the state of a single information bit on one of the information bus lines, e.g. B. Bit [31] of the bus lines 250 F (shown in Fig. 4), and by synchronizing the output signals of the parts-by-two circuits 295 and 297 with them.

Durch die Verwendung eines Durchgangswegs 261, der (über Multiplexer 270 und 282) zwischen dem Eingangsregister 260 und einem Ausgangsregister 300 (d. h. ein Ausgangsspeicher­ element) angeordnet ist, ist die Schnittstellenschaltung 226 in der Lage, Informationspakete (und Typdaten) über deren Schaltungsanordnung in das Ausgangsregister 300 für eine Übertragung zu dem nächsten Verarbeitungselement schnell weiterzuleiten. Der Durchgangsweg 261 wird verwendet, wenn der Sicherungsweg (backup path) 290 (der im folgenden be­ schrieben wird) leer ist, und das nachgelagerte Verarbei­ tungselement (nicht gezeigt) ein Signal an die Schnittstel­ lenschaltung 226 liefert, das anzeigt, daß dasselbe momentan in der Lage ist, Informationen zu empfangen. Falls jedoch das nachgelagerte Verarbeitungselement anzeigt, daß dasselbe nicht in der Lage ist, Informationen zu empfangen, werden die Informationen, die zu dem nachgelagerten Element weiter­ geleitet worden wären (falls dasselbe bereit gewesen ist, die Informationen zu empfangen), in Informationsspeicherele­ menten (z. B. Register) in dem Sicherungsinformationsweg 290 (der im folgenden beschrieben wird) gespeichert. Diese gesi­ cherten Informationen müssen in den Informationsspeicherele­ menten des Sicherungsinformationswegs 290 zumindest so lange gespeichert werden, bis die Schnittstellenschaltung 226 da­ mit aufhört, Informationen von einem vorgelagerten Verarbei­ tungselement (beispielsweise dem Verarbeitungselement 202 in Fig. 4) zu empfangen. Das vorgelagerte Verarbeitungselement wird damit aufhören, diese Informationen zu übertragen, in­ dem das vorgelagerte Verarbeitungselement auf die Schnitt­ stellenschaltung 226 anspricht, die an das vorgelagerte Ver­ arbeitungselement ein Signal liefert, das dasselbe anweist, dessen Übertragung von Informationen anzuhalten.By using a through path 261 , which is arranged (via multiplexers 270 and 282 ) between the input register 260 and an output register 300 (ie an output storage element), the interface circuit 226 is able to insert information packets (and type data) via their circuit arrangement into the Quickly forward output register 300 for transfer to the next processing element. Pass-through path 261 is used when backup path 290 (described below) is empty and downstream processing element (not shown) provides signal to interface circuit 226 indicating that it is currently in is able to receive information. However, if the downstream processing element indicates that it is unable to receive information, the information that would have been forwarded to the downstream element (if it was willing to receive the information) will be stored in information storage elements (e.g. Register) is stored in the backup information path 290 (described below). This saved information must be stored in the information storage elements of the backup information path 290 at least until the interface circuit 226 then stops receiving information from an upstream processing element (for example the processing element 202 in FIG. 4). The upstream processing element will cease to transmit this information by responding to the interface circuit 226 which provides a signal to the upstream processing element to instruct the processing element to stop transmitting information.

5. Kommunikationsprotokoll5. Communication protocol

Bei dem hierin beschriebenen Ausführungsbeispiel, wie es im vorhergehenden vorgestellt wurde, weisen die Informationspa­ kete, die zwischen den Verarbeitungselementen übertragen werden, zwei Abschnitte auf. Beispielsweise kann der erste Abschnitt Adresseninformationen aufweisen, wobei der zweite Abschnitt Daten, die dieser Adresse zugeordnet sind, aufwei­ sen kann. Zusätzlich ist jedem dieser zwei Abschnitte eines Informationspakets ein Typfeld zugeordnet. Bei einem Ausfüh­ rungsbeispiel umfaßt das Typfeld 9 Bits und kann, wie es in Tabelle I gezeigt ist, folgendermaßen codiert sein:In the embodiment described herein, as in  previously presented, the information pa kete transferred between the processing elements be two sections on. For example, the first Section have address information, the second Section data assigned to this address can. In addition, each of these two sections is one Information package assigned a type field. When executing Example, the type field comprises 9 bits and, as described in Table I is shown to be encoded as follows:

Tabelle ITable I

Das Typfeld wird verwendet, um eine Anweisung an jedes der Verarbeitungselemente hinsichtlich dessen zu liefern, was mit den Informationen zu tun ist, die gleichzeitig mit dem­ selben empfangen werden. Zwei Typfelder, die gemeinsam ver­ wendet werden, sind die Register-Lese- und Register-Schreib-Typ­ felder. Ein Register-Schreib-Vorgang wird in zwei Schrit­ ten durchgeführt. Als erstes wird die Adresse während der Phase 1 (P1) über den Bus gesendet, wobei zweitens während der Phase 2 (P2) Daten gesendet werden. Für Register-Lese-Vor­ gänge wird die Adresse während der Phase 1 (P1) gesendet, wobei das Datenfeld, das während der Phase 2 (P2) gesendet wird, unbekannt ist. Nach einer kurzen Verzögerung werden die Daten, die aus dem Kernprozessor ausgelesen werden, in den vorher unbekannten Datenschlitz desselben Register-Le­ se-Pakets eingefügt und zu dem nächsten Verarbeitungselement in dem Ring weitergeleitet.The type field is used to provide an instruction to each of the To provide processing elements regarding what to deal with the information that is concurrent with the same are received. Two type fields that ver are the register read and register write types fields. A register write is done in two steps ten carried out. First the address will be shown during the  Phase 1 (P1) sent over the bus, secondly during phase 2 (P2) data is sent. For register read forward the address is sent during phase 1 (P1), being the data field sent during phase 2 (P2) is unknown. After a short delay the data read from the core processor in the previously unknown data slot of the same register le se package and added to the next processing element forwarded in the ring.

Zwei weitere gemeinsam verwendete Typfelder sind BIN-Lese- und BIN-Schreib-Anweisungen, die zum Lesen und Schreiben von BIN-Typdaten (d. h. Lese- und Schreibinformationen in spezi­ fische Puffer, wie z. B. Überlagerungspuffer, Bildpuffer oder Texturcacheanordnungen) vorgesehen sind. Als weitere Typfeldoption können Blockübertragungsanweisungen verwendet werden, um große Datenblöcke zwischen einer Quelle und einem Zielort zu übertragen. Beispielsweise könnte ein großer Da­ tenblock von einem Hostcomputer (über das Hauptverarbei­ tungselement) zu einem nachgelagerten Verarbeitungselement mittels Direktspeicherzugriffstechniken (DMA-Techniken; DMA = Direct Memory Access) übertragen werden. Zusätzlich können Ebenengleichungsanweisungen in das Typfeld aufgenommen wer­ den, um Ebenengleichungsdaten zu den Registern für eine 3D-Aufbereitung zu übertragen. Schließlich werden sonstige Typ­ anweisungen (Misc; Misc = miscellaneous = sonstig) verwen­ det, um spezielle Funktionen auf dem Bus zu implementieren. Beispielsweise könnte die Misc-Typanweisung verwendet wer­ den, um einen Leseweg vor dem Durchführen eines anderen Ope­ rationstyps zu räumen.Two other commonly used type fields are BIN read and BIN write instructions for reading and writing BIN type data (i.e. read and write information in spec fish buffers, e.g. B. overlay buffer, image buffer or texture cache arrangements) are provided. As another Type field option can use block transfer instructions to move large blocks of data between a source and a Transfer destination. For example, a big da tenblock from a host computer (via main processing tion element) to a downstream processing element using direct memory access techniques (DMA techniques; DMA = Direct memory access). In addition, you can Level equation statements included in the type field to provide level equation data to the registers for a 3D rendering. Eventually other type Use instructions (Misc; Misc = miscellaneous = other) det to implement special functions on the bus. For example, the Misc type statement could be used the one reading path before performing another ope to clear ration type.

Wie es aus der Tabelle I offensichtlich ist, verwenden eini­ ge Anweisungen gemeinsam Bits mit gemeinsamen Bedeutungen. Beispielsweise ist das Bit <8< des Typfelds ein "Gültig"-Bit, welches verwendet wird, um die Gültigkeit jedes der Ab­ schnitte eines Informationspakets anzuzeigen. Falls das Gül­ tigkeits-Bit eine "0" ist, werden die Bits <7 : 0< des Typ­ felds ignoriert. Zusätzlich wird das Bit <3< des Typfelds typischerweise verwendet, um zu identifizieren, ob ein ge­ pufferter (d. h. ein Nicht-Prioritäts-) Informationsweg oder ein ungepufferter (d. h. ein Prioritäts-) Informationsweg verwendet werden sollte, um: (1.) Informationen von der Schnittstellenschaltung zu dem Kernprozessor zu übertragen, (2.) Informationen von dem Kernprozessor zu der Schnittstel­ lenschaltung zu übertragen, oder (3.) Informationen in dem Sicherungsinformationsweg (der im vorhergehenden beschrieben wurde) zu halten. Weitere Details bezüglich gepufferter und ungepufferter Informationswege werden im folgenden bereitge­ stellt.As is evident from Table I, use a instructions together bits with common meanings. For example, bit <8 <of the type field is a "valid" bit, which is used to validate each of the Ab display sections of an information package. If the gül bit is a "0", the bits <7: 0 <of the type fields ignored. In addition, bit <3 <of the type field  typically used to identify whether a ge buffered (i.e. a non-priority) information path or an unbuffered (i.e., a priority) information path should be used to: (1.) information from the Transfer interface circuit to the core processor, (2.) Information from the core processor to the interface transmission, or (3.) information in the Backup information path (described above was) to keep. More details regarding buffered and unbuffered information channels are provided below poses.

Wie es im vorhergehenden erwähnt wurde, werden Informationen in gemultiplexten Paketen auf dem Bus übertragen, wobei eine Hälfte jedes Informationspakets während jeder Phase des Taktsignals übertragen wird. Die folgende Tabelle II faßt die Informationen zusammen, die während der Phase 1 und 2 (P1 und P2) für die Operationstypen, die im vorhergehenden beschrieben und in Tabelle I aufgelistet sind, übertragen werden:As mentioned earlier, information is transmitted in multiplexed packets on the bus, one Half of every information packet during each phase of the Clock signal is transmitted. The following Table II summarizes the information gathered during phase 1 and 2 (P1 and P2) for the types of operations described above described and listed in Table I, transferred will:

Tabelle IITable II

Bezugnehmend auf die Fig. 4 und 6 (und wieder unter Verwen­ dung beispielsweise des Verarbeitungselements 222) wird, wie es in der Tabelle II gezeigt ist, der erste Abschnitt jedes Informationspakets von der Schnittstellenschaltung 226 wäh­ rend der Phase P1 (auf den Informationsleitungen 250F) emp­ fangen, wobei der zweite Abschnitt jedes Pakets von der Schnittstellenschaltung 226 während der Phase P2 (auch auf den Informationsleitungen 250F) empfangen wird. Wie es in Fig. 6 gezeigt ist, umfaßt die Schnittstellenschaltung 226 ein Eingangsregister 260, ein P1-Register 262, ein P1WD-Re­ gister 264 und ein P2WD-Register 266. Das Eingangsregister 260 empfängt die eintreffenden Informationspakete (und deren zugeordnete Typdaten), wobei das P1-Register 262 sein Ein­ gangssignal aus dem Ausgang des Eingangsregisters 260 emp­ fängt. Zusätzlich empfängt das P1WD-Register 264 sein Ein­ gangssignal aus dem Ausgang des P1-Registers 262, wobei das P2WD-Register sein Eingangssignal aus dem Ausgang des Ein­ gangsregisters 260 empfängt.Referring to FIGS . 4 and 6 (and again using, for example, processing element 222 ), as shown in Table II, the first portion of each packet of information from interface circuit 226 during phase P1 (on information lines 250 F ) received, with the second portion of each packet being received by interface circuit 226 during phase P2 (also on information lines 250 F). As shown in FIG. 6, the interface circuit 226 includes an input register 260 , a P1 register 262 , a P1WD register 264 and a P2WD register 266 . The input register 260 receives the incoming information packets (and their associated type data), the P1 register 262 receiving its input signal from the output of the input register 260 . In addition, the P1WD register 264 receives its input signal from the output of the P1 register 262 , the P2WD register receiving its input signal from the output of the input register 260 .

Im folgenden wird nun kurz auf Fig. 7 Bezug genommen. Es ist ein Zeitablaufdiagramm ist gezeigt, das den Empfang ver­ schiedener vollständiger Informationspakete durch die Schnittstellenschaltung 226 darstellt. Insbesondere zeigt dieses Zeitablaufdiagramm: (1.) den Zustand des eintreffen­ den Taktsignals (In_CLK), das auf der Busleitung 250A emp­ fangen wird, (2.) die Informationen (Info[31 : 0)), die auf den Busleitungen 250F empfangen werden, (3.) das Schreibtakt­ signal (Wr_CLK), das aus der Teile-durch-Zwei-Schaltung 295 ausgegeben wird, und (4.) den Inhalt des Eingangsregisters 260 (IN_Reg; IN_Reg = input register), des P1-Registers 262 (P1_Reg) und der P1WD- und P2WD-Register 264 bzw. 266 (P1- /P2WD). Die Zustände der vorhergehenden Signale sind über einer Reihe von Übertragungszyklen T0-T3 dargestellt, wo­ bei jeder der Übertragungszyklen T0-T3 eine erste Phase P1 und eine zweite Phase P2 umfaßt. Diese Signale sind für ei­ nen Vergleich in demselben Zeitmaßstab (horizontale Achse) dargestellt. Die Anordnung eines Signals über einem anderen gibt nicht an, daß ein Signal eine größere Amplitude als die anderen Signale aufweist.Reference is now made briefly to FIG. 7 below. A timing diagram is shown illustrating the receipt of various complete packets of information by interface circuit 226 . In particular, this timing diagram shows: (1.) the state of the arrival of the clock signal (In_CLK) that is received on the bus line 250 A, (2.) the information (Info [31: 0)) that is on the bus lines 250 F (3.) the write clock signal (Wr_CLK), which is output from the divide-by-two circuit 295 , and (4.) the content of the input register 260 (IN_Reg; IN_Reg = input register), the P1 Register 262 (P1_Reg) and the P1WD and P2WD registers 264 and 266 (P1- / P2WD). The states of the previous signals are shown over a series of transmission cycles T0-T3, where for each of the transmission cycles T0-T3 comprises a first phase P1 and a second phase P2. These signals are shown on the same time scale (horizontal axis) for comparison. Placing one signal over another does not indicate that one signal has a greater amplitude than the other signals.

Da ein Ausführungsbeispiel der hierin beschriebenen Erfin­ dung unter Verwendung von ASIC-Schaltungen als den Verarbei­ tungselementen implementiert ist, kann die Steuerung des "Nächster-Zustand"-Inhalts jedes der einzelnen Informations­ speicherelemente, die in Fig. 6 gezeigt sind (d. h. wie der Inhalt der Informationsspeicherelemente während des nächsten getakteten Zustands aussieht), ebenso wie die Steuerung des Informationsflusses über die verschiedenen Multiplexer mit­ tels einer Softwaresimulationssprache, wie z. B. Verilog, implementiert werden, und daraufhin mittels eines Synthese­ hilfsmittels, wie z. B. Synopsys™, das auf einem Mehrzweck­ prozessor arbeitet, in eine Logikgatterschaltung umgewandelt werden. Die logischen Funktionen können alternativ in einer Software-Programm geschrieben und von einem Prozessor durch­ geführt werden.Because one embodiment of the invention described herein is implemented using ASIC circuits as the processing elements, control of the "next state" content of each of the individual information storage elements shown in FIG. 6 (ie, like the content of the information storage elements during the next clocked state), as well as the control of the information flow via the various multiplexers using a software simulation language, such as, for. B. Verilog, are implemented, and then by means of a synthesis tool such. B. Synopsys ™, which works on a general-purpose processor, can be converted into a logic gate circuit. The logical functions can alternatively be written in a software program and carried out by a processor.

Wie es in Fig. 7 gezeigt ist, leitet ein Ausgangsregister eines vorgelagerten Verarbeitungselements beispielsweise ei­ ne Adresse ADR1 (d. h. einen Adressenabschnitt eines ersten Informationspakets) über die Busleitungen 250F während der Phase P1 des Übertragungszyklusses T1 weiter. Während der Phase P2 des Übertragungszyklusses T1 latcht die fallende Flanke des eintreffenden Taktsignals In_CLK die ADR1 (Adres­ se 1) in das Eingangsregister 260 der Schnittstellenschal­ tung 226. Während der Phase P1 zum Zeitpunkt T2 latcht die fallende Flanke des eintreffenden Taktsignals In_CLK den Da­ tenabschnitt DATEN1 des ersten Informationspakets in das Eingangsregister 260. Dadurch bleibt das Eingangsregister 260 und die Schnittstellenschaltung 226 frei, um die ADR2 von einem vorgelagerten Verarbeitungselement während der nächsten fallenden Flanke des eintreffenden Taktsignals In_CLK (d. h. während der Phase 2 (P2) zum Zeitpunkt T2) zu empfangen. Die Typdaten werden von der Schnittstellenschal­ tung 226 (aus den Busleitungen 250E) auf eine identische Art und Weise empfangen. Folglich werden Informations- und Typ­ daten von der Schnittstellenschaltung 226 mit der Frequenz des eintreffenden Taktsignals In_CLK, d. h. mit ungefähr 200 MHz, empfangen.As shown in FIG. 7, an output register of an upstream processing element, for example, forwards an address ADR1 (ie an address section of a first information packet) via the bus lines 250 F during the phase P1 of the transmission cycle T1. During phase P2 of the transmission cycle T1, the falling edge of the incoming clock signal In_CLK latches the ADR1 (address 1) into the input register 260 of the interface circuit 226 . During phase P1 at time T2, the falling edge of the incoming clock signal In_CLK latches the data section DATA1 of the first information packet into the input register 260 . This leaves input register 260 and interface circuit 226 free to receive ADR2 from an upstream processing element during the next falling edge of the incoming clock signal In_CLK (ie during phase 2 (P2) at time T2). The type data is received by the interface circuit 226 (from the bus lines 250 E) in an identical manner. As a result, information and type data are received by the interface circuit 226 at the frequency of the incoming clock signal In_CLK, ie at approximately 200 MHz.

Um die zwei Abschnitte jedes Informationspakets in ein pa­ ralleles 82-Bit-Wort (das zu dem Kernprozessor 224 weiterge­ leitet werden soll) zu demultiplexen, ist das Phase-P1-Regi­ ster 262 bereitgestellt. Wenn die Informationen (und zuge­ ordneten Typfelder) von der Schnittstellenschaltung 226 emp­ fangen werden, wie es im vorhergehenden beschrieben wurde, wird das P1-Register 262 von einem Taktsignal mit halber Frequenz Wr_CLK gesteuert, um lediglich den ersten Abschnitt jedes Informationspakets zu latchen. Ferner werden die P1- /P2WD-Register 264/266 (zum Weiterleiten von Informationen an den Kernprozessor 224) von dem Taktsignal mit halber Fre­ quenz P2_CLK (das das inverse Signal des Taktsignals mit halber Frequenz Wr_CLK ist) gesteuert, um gleichzeitig beide Abschnitte jedes Informationspakets zu latchen.In order to demultiplex the two sections of each information packet into a parallel 82-bit word (to be forwarded to core processor 224 ), phase P1 register 262 is provided. When the information (and associated type fields) is received by the interface circuit 226 , as previously described, the P1 register 262 is controlled by a half-frequency clock signal Wr_CLK to latch only the first portion of each information packet. Further, the P1 / P2WD registers / control 264 266 (for forwarding information to the core processor 224) from the clock signal (which is the inverse signal of the clock signal at half the frequency WR_CLK) half Fre quency P2_CLK to simultaneously both sections of each Latche information packs.

Insbesondere wird während der ansteigenden Flanke des Takt­ signals mit halber Frequenz Wr_CLK der Inhalt des Eingangs­ registers 260 in das P1-Register 262 gelatcht, wobei während der ansteigenden Flanke des Taktsignals mit halber Frequenz P2_CLK (die die fallende Flanke von Wr_CLK ist) der Inhalt des P1-Registers 262 in das P1WD-Register 264 gelatcht und der Inhalt des Eingangsregisters 260 in das P2WD-Register 266 gelatcht wird. Folglich speichern die P1-/P2WD-Register 264 und 266 nach der ansteigenden Flanke eines P2_CLK-Si­ gnals jeweils den ersten und zweiten Abschnitt eines Infor­ mationspakets. Während eines beliebigen Zeitpunkts vor der nächsten ansteigenden Flanke des P2_CLK-Signals (z. B. wäh­ rend der ansteigenden Flanke des nächsten Wr_CLK-Signals) werden die Informationen in den P1-/P2WD-Registern entweder in das asynchrone gepufferte (d. h. das Nicht-Prioritäts-) Schreib-FIFO (BW) 228 oder das asynchrone ungepufferte (d. h. das Prioritäts-) Schreib-FIFO (UW) 230 geladen, d. h. ab­ hängig von den Werten bestimmter Bits in den Typfeldern, die dem Paket zugeordnet sind, wie es im folgenden detaillierter erklärt werden wird. Es gibt keine Filterung der Adressen- /Daten- und Typinformationen, die von der Schnittstelle be­ reitgestellt werden. Folglich wird jedes Informationspaket, das an der Schnittstelle empfangen wird, zu dem Kernprozes­ sor 224 weitergeleitet, der bestimmt, ob dieses Paket von Interesse ist oder nicht.In particular, during the rising edge of the half frequency clock signal Wr_CLK, the content of input register 260 is latched into P1 register 262 , while during the rising edge of the half frequency clock signal P2_CLK (which is the falling edge of Wr_CLK) the content of P1 register 262 is latched into P1WD register 264 and the content of input register 260 is latched into P2WD register 266 . Thus, the P1 / P2WD registers 264 and 266 store the first and second portions of an information packet after the rising edge of a P2_CLK signal, respectively. During any point in time before the next rising edge of the P2_CLK signal (e.g., during the rising edge of the next Wr_CLK signal), the information in the P1 / P2WD registers is either buffered in the asynchronous (i.e. non- Priority) write FIFO (BW) 228 or the asynchronous unbuffered (ie the priority) write FIFO (UW) 230 loaded, ie depending on the values of certain bits in the type fields assigned to the packet, as described in the following will be explained in more detail. There is no filtering of the address / data and type information provided by the interface. Thus, each packet of information received at the interface is forwarded to the core processor 224 , which determines whether that packet is of interest or not.

Im folgenden wird wieder auf Fig. 6 Bezug genommen. Alle eintreffenden gemultiplexten Informationspakete werden von dem Eingangsregister 260 während jeder fallenden Flanke des eintreffenden Taktsignals In_CLK (wie es im vorhergehenden angemerkt wurde) empfangen, wobei die Informationen entweder aus: (1.) dem Eingangsregister 260 (über den Durchgangsweg 261), (2.) dem Sicherungsinformationsweg 290 oder (3.) den gepufferten Lese- oder ungepufferten Lese- FIFOs (BR, UR) 232 oder 234 in das Ausgangsregister 300 (über einen oder mehrere der Multiplexer 270, 282 und 280) während den fal­ lenden Flanken des Ausgangstaktsignals Out_CLK (das dem Ein­ gangstaktsignals In_CLK entspricht, wenn sich das Verarbei­ tungselement nicht in der Hauptkonfiguration befindet) ge­ taktet werden. Folglich empfangen und übermitteln das Ein­ gangsregister 260 und das Ausgangsregister 300, wenn diesel­ ben nicht in der Hauptbetriebsart konfiguriert sind, Infor­ mationen während jeder fallenden Flanke des Eingangstaktsi­ gnals In_CLK, d. h. sowohl während des P1- als auch des P2-Übertragungszyklus. Da die Informationspakete in zwei Ab­ schnitte (beispielsweise einen Adressenabschnitt und einen Datenabschnitt) gemultiplext sind, empfängt das Eingangsre­ gister 260 den ersten Abschnitt jedes Informationspaketes, beispielsweise die Adresseninformationen, tatsächlich wäh­ rend der fallenden Flanke des Eingangstaktsignals In_CLK während der P2-Betriebsphase, und den zweiten Abschnitt des Informationspakets, beispielsweise die Dateninformationen, während der fallenden Flanke des Eingangstaktsignals In_CLK während einer P1-Betriebsphase (die der P2-Phase unmittelbar folgt, während der die Adresse in das Register 260 getaktet wurde). Entsprechend wird der erste Abschnitt jedes Informa­ tionspakets, das von der Schnittstellenschaltung 226 über­ tragen wird, mittels einer fallenden Flanke des Ausgangs­ taktsignals Out_CLK (die dem Eingangstaktsignal In_CLK ent­ spricht, wenn sich das Verarbeitungselement nicht in der Hauptkonfiguration befindet) während einer P1-Betriebsphase in das Ausgangsregister 300 getaktet, wobei der zweite Ab­ schnitt jedes übertragenen Informationspakets mittels einer fallenden Flanke des Ausgangstaktsignals Out_CLK während ei­ ner P2-Betriebsphase (die der P1-Phase unmittelbar folgt, während der der erste Abschnitt des Pakets in das Register 300 getaktet wurde) in das Ausgangsregister 300 getaktet wird.In the following, reference is again made to FIG. 6. All incoming multiplexed information packets are received by the input register 260 during each falling edge of the incoming clock signal In_CLK (as noted above), with the information either from: (1.) the input register 260 (via pass 261 ), (2. ) the fuse information path 290 or (3.) the buffered read or unbuffered read FIFOs (BR, UR) 232 or 234 into the output register 300 (via one or more of the multiplexers 270 , 282 and 280 ) during the falling edges of the output clock signal Out_CLK (which corresponds to the input clock signal In_CLK when the processing element is not in the main configuration) are clocked. Thus, input register 260 and output register 300 , if not configured in the main mode, receive and transmit information during each falling edge of the input clock signal In_CLK, that is, during both the P1 and P2 transfer cycles. Since the information packets are multiplexed into two sections (e.g. an address section and a data section), the input register 260 actually receives the first section of each information packet, e.g. the address information, during the falling edge of the input clock signal In_CLK during the P2 operating phase, and that second portion of the information packet, for example the data information, during the falling edge of the input clock signal In_CLK during a P1 operating phase (which immediately follows the P2 phase, during which the address was clocked into the register 260 ). Accordingly, the first portion of each information packet, which is transmitted by the interface circuit 226 , is switched on by means of a falling edge of the output clock signal Out_CLK (which corresponds to the input clock signal In_CLK when the processing element is not in the main configuration) during a P1 operating phase the output register 300 is clocked, the second portion of each transmitted information packet being dropped by a falling edge of the output clock signal Out_CLK during a P2 phase of operation (which immediately follows the P1 phase, during which the first portion of the packet was clocked into the register 300 ) the output register 300 is clocked.

Wenn das Verarbeitungselement, das dem Verarbeitungselement 222 nachgelagert ist (beispielsweise das Verarbeitungsele­ ment 242), anzeigt, daß es in der Lage ist, Informationen von dem Verarbeitungselement 222 zu empfangen, und das Ver­ arbeitungselement 222 selbst nicht verzögert ist (beispiels­ weise, wenn dasselbe auf Lese-Informationen aus seinem Kern­ prozessor wartet), wird das Ausgangsregister 300 Informatio­ nen direkt aus dem Eingangsregister 260 (über den Durch­ gangsweg 261) empfangen, so daß ein Abschnitt eines Informa­ tionspakets (und dessen zugeordnete Typdaten) während jeder fallenden Flanke des Eingangstaktsignals In_CLK über die Schnittstellenschaltung 226 verschoben wird, wobei als Er­ gebnis des Vorhandenseins der Schnittstellenschaltung eine Latenz zeit von lediglich einem einzigen Taktzyklus verur­ sacht wird.If the processing element that is downstream from the processing element 222 (e.g., management, the Verarbeitungsele 242), indicating that it is able to receive information from the processing element 222, and the Ver processing element 222 itself is not delayed (Example instance, when the same waiting for read information from its core processor), the output register 300 information is received directly from the input register 260 (through passageway 261 ) so that a portion of an information packet (and its associated type data) during each falling edge of the input clock signal In_CLK is shifted via the interface circuit 226 , the latency of only a single clock cycle being caused as a result of the presence of the interface circuit.

6. Sicherungsinformationswege6. Security information channels

Falls das Verarbeitungselement, das dem Verarbeitungselement 222 nachgelagert ist, (beispielsweise das Verarbeitungsele­ ment 242) anzeigt, daß dasselbe momentan nicht in der Lage ist, Informationen von dem Verarbeitungselement 222 zu emp­ fangen, oder falls das Verarbeitungselement 222 selbst ver­ zögert ist (beispielsweise, wenn dasselbe auf Leseinforma­ tionen von seinem Kern wartet), werden die Informationsspei­ cherelemente in dem Sicherungsinformationsweg 290 (der im folgenden beschrieben wird) verwendet, um Informationen zu speichern, die in der Schnittstellenschaltung 226 gesichert wurden, während das Verarbeitungselement (beispielsweise das Verarbeitungselement 202), das dem Verarbeitungselement 222 nachgelagert ist, noch Daten sendet, d. h. bis das vorgela­ gerte Verarbeitungselement 202 auf eine Anzeige von dem Ver­ arbeitungselement 222 anspricht, daß dasselbe gegenwärtig nicht in der Lage ist, Informationen zu akzeptieren. Das heißt, diese Sicherungsfunktion wird zumindest solange durchgeführt, bis die Schnittstellenschaltung 226 in der La­ ge ist, dem vorgelagerten Verarbeitungselement (z. B. dem Verarbeitungselement 202) zu signalisieren, damit aufzuhö­ ren, Informationen zu senden.If the processing element that is downstream from the processing element 222 (e.g., the Verarbeitungsele element 242) indicates that the same current is not able to catch information from the processing element 222 to emp, or if the processing element 222 is itself hesitates ver (for example, if it is waiting for read information from its core), the information storage elements in the backup information path 290 (described below) are used to store information that has been saved in the interface circuit 226 while the processing element (e.g. processing element 202 ) that is downstream from the processing element 222 still sends data, ie, until the vorgela crop processing element 202 to an indication from the Ver processing element 222 responds that the same is not currently able to accept information. That is, this securing function is carried out at least until the interface circuit 226 is able to signal the upstream processing element (for example the processing element 202 ) in order to stop sending information.

Wie es in Fig. 6 gezeigt ist, umfaßt der Sicherungsinforma­ tionsweg 290 einen gepufferten (d. h. einen Nicht-Priori­ täts-) Informationssicherungsweg 292 und einen ungepufferten (d. h. einen Prioritäts-) Informationssicherungsweg 294. Der gepufferte Informationssicherungsweg 292 umfaßt wiederum ge­ pufferte (d. h. Nicht-Prioritäts-) Sicherungswegspeicherele­ mente B0, B1, B2, B3, B4 und B5, wobei der ungepufferte In­ formationssicherungsweg 294 ungepufferte (d. h. Prioritäts-) Sicherungsspeicherelemente U0, U1, U2, U3, U4 und U5 umfaßt. Ferner sind in dem Sicherungsinformationsweg 290 Multiplexer 292A und 292B aufgenommen, die bei einem Ausführungsbeispiel angeordnet sind, um den Inhalt lediglich eines (oder keines) der gepufferten Sicherungswegspeicherelemente B4 und B5 und der ungepufferten Sicherungswegspeicherelemente U4 und U5 an einen der Eingänge des Multiplexers 270 zu liefern, mit dem die Ausgänge der Multiplexer 292A und 292B verbunden sind.As shown in FIG. 6, backup information path 290 includes a buffered (ie, non-priority) information backup path 292 and an unbuffered (ie, priority) information backup path 294 . The buffered information backup path 292 in turn comprises buffered (ie non-priority) backup path storage elements B0, B1, B2, B3, B4 and B5, the unbuffered information backup path 294 unbuffered (ie priority) backup storage elements U0, U1, U2, U3, U4 and U5 includes. Furthermore, the backup information path 290 includes multiplexers 292 A and 292 B, which in one embodiment are arranged to transfer the content of only one (or none) of the buffered backup path storage elements B4 and B5 and the unbuffered backup path storage elements U4 and U5 to one of the inputs of the multiplexer 270 to deliver, to which the outputs of the multiplexers 292 A and 292 B are connected.

Ferner sind in Fig. 6 ein B_Rdy-Register (B_Rdy = buffered ready) 322, ein U_Rdy-Register (U_Rdy = unbuffered ready) 324, eine B_Rdy-Logikschaltung 326 und eine U_Rdy-Logik­ schaltung 328 gezeigt. Das B_Rdy-Register 322 empfängt ein eintreffendes gepuffertes Bereitschaftssignal (B_Rdy_In) von einem nachgelagerten Verarbeitungselement (über die B_Rdy- Logikschaltung 326), und liefert ein abgehendes gepuffertes Bereitschaftssignal (B_Rdy_Out) an ein vorgelagertes Verar­ beitungselement. Entsprechend empfängt das U_Rdy-Register 324 ein eintreffendes ungepuffertes Bereitschaftssignal (U_Rdy_In) von einem nachgelagerten Verarbeitungselement (über die U_Rdy-Logikschaltung 328), und liefert ein abge­ hendes ungepuffertes Bereitschaftssignal (U_Rdy_Out) an ein vorgelagertes Verarbeitungselement. Die B_Rdy- und U_Rdy-Lo­ gikschaltungen 326 und 328 empfangen zusätzlich zu den ein­ treffenden B_Rdy_In- und U_Rdy_In-Signalen eine Reihe von weiteren Eingangssignalen, wobei beliebige derselben anzei­ gen können, daß das Verarbeitungselement 222 momentan nicht in der Lage ist, Informationen von einem vorgelagerten Ver­ arbeitungselement zu empfan 45518 00070 552 001000280000000200012000285914540700040 0002019816153 00004 45399gen. Jedes der B_Rdy- und U_Rdy-Re­ gister 322 und 324 wird während der ansteigenden Flanke des Wr_CLK-Signals getaktet.Further, in Fig. 6 is a B_Rdy register (B_Rdy = buffered ready) 322, a U_Rdy register (U_Rdy = unbuffered ready) 324, a B_Rdy logic circuit 326 and a logic circuit shown U_Rdy 328th The B_Rdy register 322 receives an incoming buffered ready signal (B_Rdy_In) from a downstream processing element (via the B_Rdy logic circuit 326 ), and supplies an outgoing buffered ready signal (B_Rdy_Out) to an upstream processing element. Accordingly, the U_Rdy register 324 receives an incoming unbuffered ready signal (U_Rdy_In) from a downstream processing element (via the U_Rdy logic circuit 328 ), and delivers an outgoing unbuffered ready signal (U_Rdy_Out) to an upstream processing element. The B_Rdy and U_Rdy logic circuits 326 and 328 receive, in addition to the incoming B_Rdy_In and U_Rdy_In signals, a number of other input signals, any of which may indicate that the processing element 222 is currently unable to receive information from one Processing element upstream 45518 00070 552 001000280000000200012000285914540700040 0002019816153 00004 45399gen. Each of the B_Rdy and U_Rdy registers 322 and 324 is clocked during the rising edge of the Wr_CLK signal.

Die nachgelagerten Verarbeitungselemente signalisieren den vorgelagerten Verarbeitungselementen, die Informationsüber­ tragung anzuhalten, indem einfach deren abgehende gepufferte Bereitschaftssignale (B_Rdy_Out) (beispielsweise auf der Busleitung 250B) oder deren abgehende ungepufferte Bereit­ schaftssignale (U_Rdy_Out) (beispielsweise auf der Buslei­ tung 250C) zu dem vorgelagerten Element deaktiviert werden. Die B_Rdy_Out- und U_Rdy_Out-Signale geben die jeweilige Fä­ higkeit des Verarbeitungselements 222 an, gepufferte (d. h. Nicht-Prioritäts-) Informationen und ungepufferte (d. h. Prioritäts-) Informationen zu empfangen. Weitere Erklärungen hinsichtlich der Verwendung und Steuerung von gepufferten und ungepufferten Informationen werden detailliert im fol­ genden vorgelegt.The downstream processing elements signal the upstream processing elements to stop the transmission of information by simply their outgoing buffered ready signals (B_Rdy_Out) (for example on bus line 250 B) or their outgoing unbuffered ready signals (U_Rdy_Out) (for example on bus line 250 C) upstream element can be deactivated. The B_Rdy_Out and U_Rdy_Out signals indicate the respective ability of the processing element 222 to receive buffered (ie non-priority) information and unbuffered (ie priority) information. Further explanations regarding the use and control of buffered and unbuffered information are presented in detail below.

Der Sicherungsinformationsweg 290 in Fig. 6 umfaßt drei Puf­ ferungsstufen in jedem seiner gepufferten und ungepufferten Informationswege 292 und 294, um die maximale Informations­ menge aufzunehmen, die beispielsweise zwischen dem Zeitpunkt gesichert werden könnten, an dem die Schnittstellenschaltung 226 zuerst ein eintreffendes deaktiviertes B_Rdy_In-Signal von der nachgelagerten Schnittstellenschaltung 246 empfängt, und dem Zeitpunkt, an dem die Schnittstellenschaltung 226 tatsächlich damit aufhört, Informationen von der vorgelager­ ten Schnittstellenschaltung 206 zu empfangen (nachdem die Schnittstellenschaltung 226 deren abgehendes gepuffertes Be­ reitschaftssignal B_Rdy_Out zu der vorgelagerten Schnitt­ stellenschaltung 206 deaktiviert hat).The backup information path 290 in FIG. 6 includes three buffering levels in each of its buffered and unbuffered information paths 292 and 294 to accommodate the maximum amount of information that could be saved, for example, between the time the interface circuit 226 first received an incoming deactivated B_Rdy_In signal receives from the downstream interface circuit 246, and to receive the time at which the interface circuit 226 actually ceases so that information from one of the storage-th interface circuit 206 (after the interface circuit 226 whose outgoing buffered be readiness signal B_Rdy_Out circuit to the upstream section has disabled 206).

Der Empfang entweder des eintreffenden B_Rdy_In- oder des U_Rdy_In-Signals durch die Schnittstellenschaltung 226 (aus einem nachgelagerten Verarbeitungselement) wird bewirken, daß die Schnittstellenschaltung 226 die Übertragung von In­ formationen des identifizierten Typs (d. h. entweder gepuf­ ferte oder ungepufferte Informationen) zu dem nachgelagerten Verarbeitungselement anhält und beliebige anhängige Informa­ tionen als auch beliebige Informationen in reservierte (vor­ gegebene) Puffer, die in dem Sicherungsinformationsweg 290 aufgenommen sind, speichert, die während der Zeitdauer zwi­ schen dem Zeitpunkt, wenn die Schnittstellenschaltung 226 sein abgehendes B_Rdy_Out- oder U_Rdy_Out-Signal (zu einem vorgelagerten Verarbeitungselement) deaktiviert, und dem Zeitpunkt, wenn das vorgelagerte Verarbeitungselement tat­ sächlich damit aufhört, Informationen des identifizierten Typs zu senden. Folglich ist der Empfang eines deaktivierten eintreffenden B_Rdy_In- oder U_Rdy_In-Signals eine Anzeige dafür, daß das Verarbeitungselement, das das Signal emp­ fängt, (sobald wie möglich) damit aufhören sollte, Informa­ tionen und Typdaten auf dessen Busleitungen für abgehende Informationen und Typdaten zu senden.The receipt of either the incoming B_Rdy_In or U_Rdy_In signal by the interface circuit 226 (from a downstream processing element) will cause the interface circuit 226 to transmit information of the identified type (ie, either buffered or unbuffered information) to the downstream processing element stops and stores any pending information as well as any information in reserved (given) buffers included in the backup information path 290 , which during the period between when the interface circuit 226 received its outgoing B_Rdy_Out or U_Rdy_Out signal ( to an upstream processing element), and the time when the upstream processing element actually stops sending information of the identified type. Consequently, the receipt of a deactivated incoming B_Rdy_In or U_Rdy_In signal is an indication that the processing element receiving the signal should stop (as soon as possible) from sending information and type data on its bus lines for outgoing information and type data .

Sobald die Schnittstellenschaltung 226 ein deaktiviertes B_Rdy_In- oder U_Rdy_In-Signal von einem nachgelagerten Ver­ arbeitungselement empfängt, wird dieselbe ihre Informations­ übertragung lediglich anhalten, nachdem dieselbe damit fer­ tig ist, ein beliebiges vollständiges Informationspaket zu senden, dessen Übermittlung bereits begonnen hatte, als die­ selbe das Signal empfangen hat. Falls beispielsweise die Schnittstellenschaltung 226 ein deaktiviertes B_Rdy_In-Si­ gnal von der Schnittstellenschaltung 246 empfängt, genau nachdem eine Adresse (die einer Nicht-Prioritätsoperation zugeordnet ist) in das Ausgangsregister 300 getaktet worden ist, wird die Schnittstellenschaltung 226 folglich damit weitermachen, den Datenabschnitt des Informationspakets (der der vorher gesendeten Adresse zugeordnet ist) zu takten, be­ vor die Informationsübertragung zu dem nachgelagerten Verar­ beitungselement 246 angehalten wird.Once the interface circuit 226, a disabled B_Rdy_In- or U_Rdy_In signal receiving processing element of a downstream Ver, the same their information transmission only stop after it thus is fer kind, any complete package of information to be transmitted, the transmission had already begun when the same received the signal. Thus, for example, if interface circuit 226 receives a disabled B_Rdy_In signal from interface circuit 246 just after an address (associated with a non-priority operation) has been clocked into output register 300 , interface circuit 226 will continue to process the data portion of the information packet (which is associated with the previously sent address) to be clocked before the information transfer to the downstream processing element 246 is stopped.

Es wird angemerkt, daß die Informationen, die zu dem Siche­ rungsweg 290 übertragen werden, ferner in das P1WD-Register 264 und das P2WD-Register 266 gelatcht und entweder zu dem gepufferten Schreib-FIFO (BW) 221 oder dem ungepufferten Schreib-FIFO (UW) 230 (abhängig davon, ob die Informationen gepuffert oder ungepuffert sind) übertragen werden, so daß sogar die "gesicherten" Informationen den Kern 224 erreichen werden (für den Fall, daß die Informationen den Kern betref­ fen).It is noted that the information transferred to backup path 290 is also latched into P1WD register 264 and P2WD register 266 and sent to either buffered write FIFO (BW) 221 or unbuffered write FIFO ( UW) 230 (depending on whether the information is buffered or unbuffered) are transmitted so that even the "saved" information will reach the core 224 (in the event that the information relates to the core).

Zur Vereinfachung wird sich die Beschreibung im folgenden lediglich auf die Verwendung und die Auswirkungen der B_Rdy_In- und B_Rdy_Out-Signale und die Verwendung des ge­ pufferten Sicherungsinformationswegs 292 beziehen, obwohl es offensichtlich sein sollte, daß die Verfahren, die für eine temporäre Speicherung von gesicherten Informationen verwen­ det werden, sowohl für gepufferte als auch ungepufferte In­ formationen identisch sind.For simplicity, the description below will only refer to the use and effects of the B_Rdy_In and B_Rdy_Out signals and the use of the buffered backup information pathway 292 , although it should be obvious that the methods used for temporary storage of saved information be used for both buffered and unbuffered information are identical.

Wenn Informationen (und Typdaten) in den gepufferten Siche­ rungsweg 292 übertragen werden, werden dieselben zuerst in die Register B4 und B5 geschrieben. Sobald die Register B4 und B5 voll sind, werden daraufhin eintreffende Informatio­ nen (und Typdaten) in die Register B2 und B3 geschrieben. Wenn die Register B2 und B3 voll sind, werden schließlich die eintreffenden Informationen (und Typdaten) in die Regi­ ster B0 und B1 geschrieben. Wenn die Informationen (und Typ­ daten) in den gepufferten Sicherungsweg 292 übertragen wer­ den, werden die Informationen (und Typdaten) aus dem P1-Re­ gister 262 zusätzlich immer in eines der Register B0, B2 oder B4 geschrieben, wobei die Informationen aus dem Ein­ gangsregister 260 immer in eines der Register B1, B3 oder B5 geschrieben werden. Obwohl die Informationsübertragungswege von dem P1-Register 262 zu den gepufferten Sicherungsspei­ cherelementen B2 und B4, und von dem Eingangsregister 260 zu den gepufferten Sicherungsspeicherelementen B3 und B5 nicht explizit in Fig. 6 dargestellt sind, sollte es offensicht­ lich sein, daß diese Informationsübertragungswege trotzdem vorhanden sind, und daß die Eingänge in den gepufferten Si­ cherungsweg 292 Eingänge zu jedem Paar von gepufferten Si­ cherungsspeicherelementen (d. h. B0 und B1, B2 und B3, und B4 und B5) in dem gepufferten Sicherungsweg 292 darstellen sollen.When information (and type data) is transferred into the buffered backup path 292 , it is first written into the registers B4 and B5. As soon as registers B4 and B5 are full, incoming information (and type data) is then written into registers B2 and B3. When registers B2 and B3 are full, the incoming information (and type data) is finally written to registers B0 and B1. When the information (and type data) is transferred into the buffered backup path 292 , the information (and type data) from the P1 register 262 is additionally always written into one of the registers B0, B2 or B4, the information from the on Gang register 260 are always written in one of the registers B1, B3 or B5. Although the information transmitting paths from the P1 register 262 cherelementen to the buffered Sicherungsspei B2 and B4, and from, the input register 260 to the buffered backup storage elements B3 and B5 are not explicitly shown in FIG. 6 are shown, it should be open view Lich be that this information transmission paths present nonetheless and that the inputs to the buffered backup path 292 are intended to represent inputs to each pair of buffered backup memory elements (ie, B0 and B1, B2 and B3, and B4 and B5) in the buffered backup path 292 .

Die Informationen (und Typdaten) werden immer umgekehrt da­ zu, wie der gepufferte Sicherungsweg 292 gefüllt wird, aus den Registern B4 und B5 ausgelesen, wenn der gepufferte Sicherungsweg 292 geleert wird. Wenn die Register B4 und B5 leer sind, wird zusätzlich der Inhalt der Register B2 und B3 (falls vorhanden) in die Register B4 bzw. B5 verschoben, wo­ bei der Inhalt der Register B0 und B1 (falls vorhanden) in die Register B2 bzw. B3 verschoben wird.The information (and type data) is always read out of registers B4 and B5 in reverse of how the buffered save path 292 is filled when the buffered save path 292 is emptied. If registers B4 and B5 are empty, the contents of registers B2 and B3 (if available) are also moved to registers B4 and B5, where the contents of registers B0 and B1 (if available) are moved to registers B2 and B5. B3 is postponed.

Wie es im vorhergehenden angemerkt wurde, kann eine Softwa­ re entworfene/Hardware-implementierte Logik verwendet wer­ den, um den Inhalt der nächsten Stufe jedes der Register, die bei der Erfindung verwendet werden, zu steuern. Gemäß einem Ausführungsbeispiel werden anstelle des Überprüfens des Inhalts jedes der einzelnen Register in dem Sicherungs­ informationsweg 290, der Typdaten enthält, ebenso wie der einzelnen Typdatenregister in dem P2-Register 262, um zu be­ stimmen, welche Informationen während des nächsten Taktzyk­ lusses zu welcher Position in der Schaltung übertragen wer­ den sollten, eine Reihe von separaten Einzel-Bit-Registern (d. h. inhaltsidentifizierende Speicherelemente), beispiels­ weise die Register 302, 304, 306, 308, 310, 312 und 314, die in dem Steuerregisterblock 320 aufgenommen sind, verwendet, um nachzuverfolgen, welcher Informationstyp in welchen Posi­ tionen in dem Sicherungsinformationsweg 290 vorhanden ist, als auch um nachzuverfolgen, welcher Informationstyp in dem P1-Register 262 vorhanden ist. Beispielsweise: (1.) das Ein­ zelregister 302 kann verwendet werden, um anzuzeigen, ob die gepufferten Sicherungsregister B4 und B5 voll sind, (2.) das Einzelregister 304 kann verwendet werden, um anzuzeigen, ob die gepufferten Sicherungsregister B2 und B3 voll sind, (3.) das Einzelregister 306 kann verwendet werden, um anzuzeigen, ob die gepufferten Sicherungsregister B0 und B1 voll sind, (4.) das Einzelregister 308 kann verwendet werden, um anzu­ zeigen, ob das gepufferte Sicherungsregister B0 Informatio­ nen eines sonstigen Typs, die in demselben gespeichert sind, aufweist, (5.) das Einzelregister 310 kann verwendet werden, um anzuzeigen, ob das gepufferte Sicherungsregister B2 In­ formationen des sonstigen Typs, die in demselben gespeichert sind, aufweist, (6.) das Einzelregister 312 kann verwendet werden, um anzuzeigen, ob das gepufferte Sicherungsregister B4 Informationen eines sonstigen Typs, die in demselben ge­ speichert sind, aufweist, und (7.) das Einzelregister 314 kann verwendet werden, um anzuzeigen, ob das P1-Register 262 gepufferte Informationen des sonstigen Typs, die in demsel­ ben gespeichert sind, aufweist. Die Verwendung dieser Ein­ zel-Bitregister vereinfacht die Steuerung der Schaltung und ermöglicht es, daß die Schaltung mit einer höheren Geschwin­ digkeit arbeiten kann, die sonst für einen Betrieb nicht möglich wäre.As noted above, software designed / hardware implemented logic can be used to control the content of the next stage of each of the registers used in the invention. In one embodiment, instead of checking the content of each of the individual registers in the backup information path 290 that contains type data, as well as the individual type data register in the P2 register 262 , to determine what information is at which position during the next clock cycle who should be transferred in the circuit using a series of separate single-bit registers (ie, content-identifying memory elements), for example registers 302 , 304 , 306 , 308 , 310 , 312 and 314 , which are included in control register block 320 to track what type of information exists in which positions in the backup information path 290 , as well as to track what type of information exists in the P1 register 262 . For example: (1.) the single register 302 can be used to indicate whether the buffered save registers B4 and B5 are full, (2.) the single register 304 can be used to indicate whether the buffered save registers B2 and B3 are full , (3.) the single register 306 can be used to indicate whether the buffered save registers B0 and B1 are full, (4.) the single register 308 can be used to indicate whether the buffered save register B0 information of another type stored in the same, (5.) the single register 310 can be used to indicate whether the buffered save register B2 has information of any other type stored therein, (6.) the single register 312 may be used to indicate whether the buffered save register B4 has any other type of information stored therein, and (7.) the single register 314 may use to indicate whether the P1 register 262 has any other type of buffered information stored therein. The use of a single bit register simplifies the control of the circuit and enables the circuit to operate at a higher speed that would otherwise not be possible for operation.

Entsprechende Register (nicht gezeigt) können ferner in dem Steuerregisterblock 320 vorgesehen sein, um anzuzeigen, ob jedes der Sicherungsregister B0, B2 und B4, ebenso wie das P1-Register 262 weitere spezifische Informationsarten, die in denselben gespeichert sind, aufweist, wie z. B. eine Adresse, die mit der Basisadresse des Kerns dieses Verarbei­ tungselements übereinstimmt, eine Adresse eines BIN-Lesepa­ kets oder eines Blockübertragungspakets (BltOb), wie es in der obigen Tabelle I definiert ist. Entsprechende Informa­ tionen sind ferner in den zusätzlichen Einzel-Bitregistern (nicht gezeigt) in dem Steuerregisterblock 320 (d. h. in in­ haltsidentifizierenden Speicherelementen) gespeichert, um den Inhalt der ungepufferten (d. h. Prioritäts-) Sicherungs­ speicherelemente, beispielsweise der Register, die in dem ungepufferten Sicherungsweg 294 enthalten sind, zu identifi­ zieren. Zusätzlich werden die "typidentifizierenden" Ein­ zel-Bitregister (nicht gezeigt) in dem Steuerregisterblock 320 verwendet, um zu identifizieren, ob das P1-Register 262 bestimmte Typen von gepufferten Informationen, beispielswei­ se gepufferte BltOb-Informationen, enthält, woraufhin die­ selben verwendet, um zu identifizieren, ob dasselbe bestimm­ te Typen von ungepufferten Informationen, beispielsweise un­ gepufferte BltOb-Informationen, enthält.Corresponding registers (not shown) may also be provided in the control register block 320 to indicate whether each of the save registers B0, B2 and B4, like the P1 register 262, has other specific types of information stored therein, such as e.g. B. an address that matches the base address of the core of this processing element, an address of a BIN read packet or a block transfer packet (BltOb) as defined in Table I above. Corresponding information is also stored in the additional single bit registers (not shown) in the control register block 320 (ie in content-identifying memory elements) to store the contents of the unbuffered (ie priority) save memory elements, e.g. the registers, in the unbuffered save path 294 are included. In addition, the "type-identifying" single bit registers (not shown) in the control register block 320 are used to identify whether the P1 register 262 contains certain types of buffered information, e.g., buffered BltOb information, and then uses the same. to identify whether it contains certain types of unbuffered information, such as unbuffered BltOb information.

Das B_Rdy_Out-Signal weist zwei Zustände auf; d. h. einen aktivierten Zustand, der anzeigt, daß das Verarbeitungsele­ ment, das das B_Rdy_Out-Signal überträgt, verfügbar ist, um Informationen aufzunehmen, und einen nicht-aktivierten Zu­ stand, der anzeigt, daß das Verarbeitungselement nicht ver­ fügbar ist, um Informationen aufzunehmen. Bei einem Ausfüh­ rungsbeispiel entspricht der aktivierte Zustand einer logi­ schen "1", wobei der deaktivierte Zustand einer logischen "0" entspricht.The B_Rdy_Out signal has two states; d. H. one activated state, which indicates that the processing element ment that transmits the B_Rdy_Out signal is available to Record information and a non-activated To stood, which indicates that the processing element is not ver is available to include information. When executing Example, the activated state corresponds to a logi "1", the deactivated state of a logical Corresponds to "0".

Zusätzlich dazu, daß ein Verarbeitungselement sein abgehen­ des B_Rdy_Out-Signal zu einem vorgelagerten Verarbeitungs­ element als Antwort auf den Empfang eines deaktivierten ein­ treffenden B_Rdy_In-Signals von einem nachgelagerten Verar­ beitungselement deaktiviert, kann ein Verarbeitungselement aus einer Vielzahl weiterer Gründe nicht in der Lage sein, Informationen aufzunehmen. Falls beispielsweise das gepuf­ ferte Schreib-FIFO (BW) 228 (d. h. ein Nicht-Prioritätsin­ formationsspeicherelement) innerhalb einer bestimmten Anzahl von Eintragungen voll wird (wie es detaillierter im folgen­ den erklärt wird), wird die B_Rdy-Logikschaltung 326 bewir­ ken, daß das abgehende B_Rdy_Out-Signal (während des näch­ sten Wr_CLK-Takt) deaktiviert wird, um das vorgelagerte Ver­ arbeitungselement von einer Übertragung von Informationen abzuhalten, wodurch sichergestellt wird, daß keine eingege­ benen Informationen verloren gehen, da die Schnittstellen­ schaltung 226 keine weiteren Informationen empfangen kann. Ferner wird während einer Kernleseoperation, falls keine Le­ sedaten bereits vorhanden sind (beispielsweise aufgrund ei­ ner Vorableseoperation = Pre-Fetch-Operation), die B_Rdy-Lo­ gikschaltung 326 bewirken, daß das abgehende B_Rdy_Out-Si­ gnal (während des nächsten Wr_CLK-Takts) deaktiviert wird, wenn ein eintreffendes Informationspaket codiert ist, um ei­ ne Leseoperation aus dem Kern 224 durchzuführen. Diese Lese­ operation kann ein Lesen eines oder mehrerer Kernregister oder ein Lesen eines Speicherelements (wie z. B. eines Rah­ menpuffers), das mit dem Kern gekoppelt ist, umfassen.In addition to having a processing element disable its B_Rdy_Out signal to an upstream processing element in response to receiving a deactivated incoming B_Rdy_In signal from a downstream processing element, a processing element may not be able to do so for a variety of other reasons. To record information. For example, if the buffered write FIFO (BW) 228 (ie, a non-priority information storage element) fills up within a certain number of entries (as explained in more detail below), the B_Rdy logic circuit 326 will cause that outgoing B_Rdy_Out signal (during the next Wr_CLK clock) is deactivated in order to prevent the upstream processing element from transmitting information, thereby ensuring that no information entered is lost since the interface circuit 226 can not receive any further information . Furthermore, during a core read operation, if no readings already exist (for example, due to a prefetch operation = pre-fetch operation), the B_Rdy logic circuit 326 will cause the outgoing B_Rdy_Out signal (during the next Wr_CLK clock) is deactivated when an incoming information packet is encoded to perform a read operation from the core 224 . This read operation may include reading one or more core registers or reading a memory element (such as a frame buffer) coupled to the core.

Wenn ein Lesepaket (z. B. ein Register-Lese-Paket) empfangen wird, wenn keine vorab-gelesenen Daten (prefetched data) vorhanden sind, empfängt das Verarbeitungselement 222 eine Anzeige, daß dasselbe (sobald wie möglich) damit aufhören sollte, Informationen und Typdaten zu dem nachgelagerten Verarbeitungselement zu senden. Das heißt, ein Lesepaket, das von dem Verarbeitungselement 222 empfangen wird, bildet eine Anzeige, daß das Verarbeitungselement 222 (zusätzlich dazu, daß dem vorgelagerten Verarbeitungselement signali­ siert wird, damit aufzuhören, Informationen zu senden) ge­ genwärtig (so bald wie möglich) damit aufhören sollte, In­ formationen und Typdaten zu dem nachgelagerten Verarbei­ tungselement zu senden, insofern das Verarbeitungselement 222 auf Informationen warten muß, die aus dessen Kern ausge­ lesen werden sollen, bevor diese Informationen (die mit der vorher empfangenen Adresse gemultiplext sind) zu dem nachge­ lagerten Verarbeitungselement übertragen werden können.When a read packet (e.g., a register read packet) is received when there is no prefetched data, processing element 222 receives an indication that it should stop (as soon as possible) information and send type data to the downstream processing element. That is, a read packet received by processing element 222 provides an indication that processing element 222 (in addition to signaling to upstream processing element to stop sending information) is presently (as soon as possible) with it should stop sending information and type data to the downstream processing element insofar as the processing element 222 has to wait for information to be read from its kernel before this information (which is multiplexed with the previously received address) is stored on the downstream one Processing element can be transferred.

Wie es im vorhergehenden erwähnt wurde, tritt, wenn ein Aus­ lesen von Kerndaten angefordert wird, eine geringe Verzöge­ rungsperiode auf, sowie auf den Kernprozessor 224 zugegrif­ fen wird, bevor die Lesedaten zurückgesendet werden. Die Da­ ten werden entweder über das gepufferte Lese-FIFO (BR) 232 (d. h. über ein Nicht-Prioritäts-Schnittstelleneingangsspei­ cherelement) oder das ungepufferte Lese-FIFO (UR) 234 (d. h. über ein Prioritäts-Schnittstelleneingangsspeicherelement) aus dem Kern ausgelesen, wobei dies davon abhängt, ob die Daten gepuffert oder ungepuffert sind, wie es im folgenden erklärt wird. Die Daten aus diesen FIFOs werden daraufhin in eines von vier Informationshalteregistern, d. h. in die In­ formationshalteregister P1_OUT, P2_OUT, U_P1_OUT und U_P2_OUT (272, 274, 276 bzw. 278), eingelesen. Zur Vereinfa­ chung wird im folgenden lediglich wieder das Lesen von ge­ pufferten Daten beschrieben, wobei es jedoch offensichtlich sein sollte, daß das Lesen von ungepufferten Daten auf die­ selbe Art und Weise durchgeführt wird (obwohl unterschiedli­ che Register verwendet werden).As mentioned above, when a readout of core data is requested, a small delay period occurs and core processor 224 is accessed before the read data is sent back. The data is read from the core via either the buffered read FIFO (BR) 232 (ie, via a non-priority interface input memory element) or the unbuffered read FIFO (UR) 234 (ie, via a priority interface input memory element), whereby this depends on whether the data is buffered or unbuffered, as explained below. The data from these FIFOs are then read into one of four information holding registers, ie into the information holding registers P1_OUT, P2_OUT, U_P1_OUT and U_P2_OUT ( 272 , 274 , 276 and 278 ). For the sake of simplicity, only the reading of buffered data is described again below, although it should be obvious that the reading of unbuffered data is carried out in the same way (although different registers are used).

Während der Verzögerungsperiode, wenn auf den Kernprozessor 224 zugegriffen wird, wird die Adresse des Lesevorgangs in einem Informationsspeicherelement innerhalb des Sicherungs­ informationswegs 290 gespeichert, wobei das Verarbeitungs­ element 224 sein abgehendes B_Rdy_Out-Signal auf der Buslei­ tung 250B deaktiviert, um dem vorgelagerten Verarbeitungs­ element zu signalisieren, damit aufzuhören, Informationen zu senden. Wenn die Daten von dem Kernprozessor 224 zurückge­ sendet werden, breiten sich dieselben durch das gepufferte Lese-FIFO (BR) 232 aus und werden in dem P2_OUT-Register 274 gespeichert. Sobald die wiedergewonnenen Daten in dem P2_OUT-Register 274 gespeichert sind, wird das B_Rdy_Out-Si­ gnal erneut aktiviert (wodurch angezeigt wird, daß das vor­ gelagerte Verarbeitungselement wieder Informationen senden darf) , wobei die Adresse, die dem Lesevorgang entspricht, durch die Multiplexer 292A, 270 und 282 weitergeleitet und während der ansteigenden Flanke des nächsten P2_CLK-Signals ausgegeben wird. Die wiedergewonnenen Daten werden daraufhin (nach dem Durchlaufen der Multiplexer 280 und 282) während der ansteigenden Flanke des nächsten RD_CLK-Signals ausgege­ ben. Wenn ein Kernlesevorgang durchgeführt wird, kann somit das B_Rdy_Out-Signal verwendet werden, um die vorgelagerten Verarbeitungselemente vorübergehend anzuhalten, bis die Le­ sedaten verfügbar sind. Nachdem der Kernlesevorgang durchge­ führt ist, können folglich die Adresse und die Daten, die aus dieser Adresse wiedergewonnen werden, mit einer Verzöge­ rungsperiode, die (im wesentlichen) lediglich durch die Ver­ zögerung bestimmt ist, die der Kernleseoperation zugeordnet ist, synchron übertragen werden.During the delay period, when the core processor 224 is accessed, the address of the read is stored in an information storage element within the backup information path 290 , with the processing element 224 deactivating its outgoing B_Rdy_Out signal on the bus line 250 B to the upstream processing element to signal to stop sending information. When the data is sent back from the core processor 224 , it propagates through the buffered read FIFO (BR) 232 and is stored in the P2_OUT register 274 . Once the retrieved data is stored in the P2_OUT register 274 , the B_Rdy_Out signal is reactivated (indicating that the upstream processing element is allowed to send information again), with the address corresponding to the read being through the multiplexers 292 A, 270 and 282 are forwarded and output during the rising edge of the next P2_CLK signal. The recovered data is then output (after passing multiplexers 280 and 282 ) during the rising edge of the next RD_CLK signal. Thus, when a core read is performed, the B_Rdy_Out signal can be used to temporarily stop the upstream processing elements until the read data is available. Thus, after the core read is performed, the address and data retrieved from that address can be transferred synchronously with a delay period determined (essentially) only by the delay associated with the core read operation.

Bezugnehmend nun auf Fig. 8 ist ein Zeitablaufdiagramm dar­ gestellt, das die Latenzzeit darstellt, die zwischen dem Zeitpunkt auftritt, wenn das abgehende B_Rdy_Out-Signal von dem Verarbeitungselement 222 deaktiviert wird, nachdem das­ selbe beispielsweise ein Kernlesepaket empfangen hat, und dem Zeitpunkt, wenn das Verarbeitungselement 222 tatsächlich damit aufhört, Informationen von einem vorgelagerten Verar­ beitungselement (beispielsweise dem Verarbeitungselement 202) zu empfangen. Diese Signale sind für einen Vergleich in demselben Zeitmaßstab (horizontale Achse) dargestellt. Die Anordnung eines Signals über einem anderen gibt nicht an, daß ein Signal eine größere Amplitude als die anderen Signa­ le aufweist.Referring now to FIG. 8, a timing diagram is presented that illustrates the latency that occurs between the time when the outgoing B_Rdy_Out signal is deactivated by processing element 222 after it has received a core read packet, for example, and the time when the processing element 222 actually stops receiving information from an upstream processing element (e.g., processing element 202 ). These signals are shown for comparison on the same time scale (horizontal axis). The arrangement of one signal over another does not indicate that one signal has a greater amplitude than the other signals.

Wie gezeigt, werden während der Phase 1 (P1) und der Phase 2 (P2) jedes Übertragungszyklusses Adressen- bzw. Dateninfor­ mationen auf den Busleitungen 250F empfangen. Falls die Typinformationen, die einer während der Phase P1 des Über­ tragungszyklusses T1 gesendeten Adresse zugeordnet sind, an­ zeigen, daß eine Kernleseoperation durchgeführt werden soll, wird daraufhin während der Phase P2 des Übertragungszyklus­ ses T1 das B_Rdy_Out-Signal deaktiviert. Wie es durch den hohen Zustand des Bits <8< des Typfelds (d. h. des Gültig­ keitssignals) angezeigt ist, werden auf den Busleitungen 250F bis zum Ende des Übertragungszyklusses T2 andauernd gültige Adressen- und Dateninformationen empfangen. Die Zeitverzögerung zwischen dem Zeitpunkt, wenn das B_Rdy_Out-Signal während des Übertragungszyklusses T1 deaktiviert wird, und dem Zeitpunkt, wenn damit aufgehört wird, Informa­ tionen auf dem Bus während des Übertragungszyklusses T2 zu übertragen, ergibt eine Sicherung der Informationen an dem Verarbeitungselement 222. As shown, address and data information is received on bus lines 250 F during phase 1 (P1) and phase 2 (P2) of each transmission cycle. If the type information assigned to an address sent during the phase P1 of the transmission cycle T1 indicates that a core reading operation is to be carried out, the B_Rdy_Out signal is then deactivated during the phase P2 of the transmission cycle ses T1. As it is indicated by the high state of the bit <8 <of the type field (ie the validity signal), valid address and data information is continuously received on the bus lines 250 F until the end of the transmission cycle T2. The time delay between the time when the B_Rdy_Out signal is deactivated during the transfer cycle T1 and the time when the transmission of information on the bus stops during the transfer cycle T2 results in a backup of the information on the processing element 222 .

Bezugnehmend nun auf Fig. 9 ist eine entsprechende Verzöge­ rung zwischen dem Zeitpunkt, wenn das B_Rdy_Out-Signal durch das Verarbeitungselement 222 erneut aktiviert wird, und dem Zeitpunkt, wenn das Verarbeitungselement 222 wieder gültige Informationen von einem vorgelagerten Verarbeitungselement (beispielsweise dem Verarbeitungselement 202) empfängt, dar­ gestellt. Diese Signale sind für einen Vergleich in demsel­ ben Zeitmaßstab (horizontale Achse) dargestellt. Die Anord­ nung eines Signals über einem weiteren Signal gibt nicht an, daß ein Signal eine höhere Amplitude als die anderen Signale aufweist. Diese Zeitverzögerung ermöglicht es, daß Informa­ tionen in dem Sicherungsinformationsweg 290 aus dem Aus­ gangsregister 300 weitergeleitet werden, bevor neue Informa­ tionen von dem Eingangsregister 260 der Schnittstellenschal­ tung 226 empfangen werden.Referring now to FIG. 9 is a corresponding tarry tion between the time when the B_Rdy_Out signal is again activated by the processing element 222, and if the processing element 222 receives return valid information from an upstream processing element (for example, the processing element 202) the time , represents. These signals are shown for comparison in the same time scale (horizontal axis). The arrangement of a signal over another signal does not indicate that one signal has a higher amplitude than the other signals. This time delay enables information in the backup information path 290 to be forwarded from the output register 300 before new information is received by the input register 260 of the interface circuit 226 .

Im folgenden wird wieder auf Fig. 6 Bezug genommen. Nun wird der Betrieb der Schnittstellenschaltung 226 beschrieben, nachdem dieselbe ein eintreffendes B_Rdy_In-Signal (von ei­ nem nachgelagerten Verarbeitungselement) empfangen hat, das deaktiviert worden ist. Ein erster Abschnitt eines eintref­ fenden Informationspakets (z. B. eine Adresse und Adressen­ typinformationen) wird an dem Eingang des Eingangsregisters 260 während der Phase P1 eines Übertragungszyklusses empfan­ gen. Während der Phase P2 desselben Übertragungszyklusses wird der erste Abschnitt des Informationspakets in das Ein­ gangsregister 260 gelatcht. Während der Phase P1 des näch­ sten Übertragungszyklusses werden die Informationen, die in dem Eingangsregister 260 gespeichert sind, in das P1-Regi­ ster 262 geladen, wobei gleichzeitig ein zweiter Abschnitt des Informationspakets (beispielsweise Daten und Datentypin­ formationen) in das Eingangsregister 260 geladen wird. Beide Informationsabschnitte werden daraufhin während der nachfol­ genden P2-Taktphase zu der ersten Stufe des gepufferten Sicherungswegs 292 (d. h. zu den Registern B4 und B5) wei­ tergeleitet. Die Informationen werden von dem P1-Register 262 und dem Eingangsregister 260 fortgesetzt in nachfolgende Register (d. h. gepufferte Sicherungsspeicherelemente) in dem gepufferten Sicherungsweg 292 (während der nachfolgenden P2-Taktphasen) übertragen, bis der vorgelagerte Prozessor als Antwort auf die Schnittstellenschaltung 226, die ihr ab­ gehendes B_Rdy_Out-Signal deaktiviert, mit der Übertragung aufhört.In the following, reference is again made to FIG. 6. The operation of interface circuit 226 after it has received an incoming B_Rdy_In signal (from a downstream processing element) that has been deactivated will now be described. A first section of an incoming information packet (e.g., address and address type information) is received at the input of input register 260 during phase P1 of a transmission cycle. During phase P2 of the same transmission cycle, the first section of the information packet is entered into the input register 260 latched. During phase P1 of the next transmission cycle, the information stored in input register 260 is loaded into P1 register 262 , while a second portion of the information packet (e.g., data and data type information) is loaded into input register 260 . Both sections of information are then forwarded to the first stage of the buffered backup path 292 (ie to the registers B4 and B5) during the subsequent P2 clock phase. The information continues to be transferred from P1 register 262 and input register 260 into subsequent registers (ie, buffered backup memory elements) in buffered backup path 292 (during the subsequent P2 clock phases) until the upstream processor in response to interface circuit 226 which it deactivated from outgoing B_Rdy_Out signal, stops transmission.

Wenn die Schnittstellenschaltung 226 wieder bereit ist, um Informationen zu empfangen und/oder zu senden, wird deren abgehendes B_Rdy_Out-Signal aktiviert, wobei der Prozeß zum Leeren der Register in dem gepufferten Sicherungsweg 292 be­ ginnt. Während der Phase 1 (P1) des ersten Übertragungszyk­ lusses, nachdem das abgehende B_Rdy_Out-Signal erneut akti­ viert worden ist, werden die Informationen aus dem Register B4 über die Multiplexer 292A, 270 und 282 weitergeleitet und in das Ausgangsregister 300 gelatcht. Während der Phase 2 (P2) desselben Übertragungszyklusses werden Informationen aus dem Register B5 über die Multiplexer 292A, 270 und 282 weitergeleitet und in das Ausgangsregister 300 gelatcht.When interface circuit 226 is again ready to receive and / or send information, its outgoing B_Rdy_Out signal is activated, and the process of flushing the registers in buffered save path 292 begins. During phase 1 (P1) of the first transmission cycle, after the outgoing B_Rdy_Out signal has been activated again, the information from register B4 is passed on via multiplexers 292 A, 270 and 282 and latched into output register 300 . During phase 2 (P2) of the same transmission cycle, information from register B5 is forwarded via multiplexers 292 A, 270 and 282 and latched into output register 300 .

Während der Phase 1 (P1) und der Phase 2 (P2) des zweiten Übertragungszyklusses werden die Informationen aus den Regi­ stern B4 bzw. B5, die (falls vorhanden) aus den Registern B2 und B3 verschoben worden sind, zu dem Ausgangsregister 300 weitergeleitet. Als nächstes werden während der Phase 1 (P1) des dritten Übertragungszyklusses die Informationen aus dem Register B4, die (falls vorhanden) während des ersten Über­ tragungszyklusses aus dem Register B0 in das Register B2 und während des zweiten Übertragungszyklusses aus dem Register B2 in das Register B4 verschoben worden sind, über die Mul­ tiplexer zu dem Ausgangsregister 300 weitergeleitet. Ferner liefert während der Phase 1 (P1) des dritten Übertragungs­ zyklusses ein vorgelagertes Verarbeitungselement (beispiels­ weise das Verarbeitungselement 202) einen ersten Abschnitt eines Informationspakets an den Bus 250. Folglich wird wäh­ rend der Phase 2 (P2) des dritten Übertragungszyklusses der erste Abschnitt des Informationspakets aus dem vorgelagerten Verarbeitungselement in das Register 260 gelatcht, wobei gleichzeitig die Informationen aus dem Register B5, die (falls vorhanden) während des ersten Übertragungszyklusses aus dem Register B1 in das Register B3 und während des zwei­ ten Übertragungszyklusses aus dem Register B3 in das Regi­ ster B5 verschoben worden sind, in das Ausgangsregister 300 gelatcht werden, wodurch der gepufferte Sicherungsweg 292 geleert wird.During phase 1 (P1) and phase 2 (P2) of the second transmission cycle, the information from registers B4 and B5, which (if present) has been shifted from registers B2 and B3, are forwarded to output register 300 . Next, during phase 1 (P1) of the third transfer cycle, the information from register B4, which (if any) during the first transfer cycle from register B0 into register B2 and during the second transfer cycle from register B2 into register B4 have been forwarded via the multiplexer to the output register 300 . Furthermore, during phase 1 (P1) of the third transmission cycle, an upstream processing element (for example processing element 202 ) supplies a first section of an information packet to bus 250 . Thus, during phase 2 (P2) of the third transfer cycle, the first portion of the information packet from the upstream processing element is latched into register 260 , while the information from register B5, which (if any) during the first transfer cycle from register B1 into register B3 and during the second transfer cycle from register B3 to register B5 have been latched into output register 300 , thereby clearing buffered save path 292 .

Schließlich kann während der Phase 1 (P1) des vierten Über­ tragungszyklusses der zweite Abschnitt des Informationspa­ kets aus dem vorgelagerten Verarbeitungselement zu demselben Zeitpunkt in das Eingangsregister 260 gelatcht werden, an dem der erste Abschnitt des Informationspakets (der im vor­ hergehenden in das Eingangsregister 260 gelatcht wurde) di­ rekt über den Durchgangsweg 261 in das Ausgangsregister 300 weitergeleitet werden kann. Da der gepufferte Sicherungsweg 292 eine Größe aufweist, um die maximale Informationsmenge aufzunehmen, die möglicherweise in demselben gesichert wer­ den kann, gehen keine Informationen verloren, wenn ein Ver­ arbeitungselement den Betrieb anhält, wobei ein sehr schnel­ len Kommunikationsdurchsatz beibehalten wird.Finally, during phase 1 (P1) of the fourth transfer cycle, the second section of the information packet can be latched from the upstream processing element into the input register 260 at the same time as the first section of the information packet (that previously latched into the input register 260 ) was) can be forwarded directly to the output register 300 via the through path 261 . Because the buffered backup path 292 is sized to accommodate the maximum amount of information that may be saved therein, no information is lost when a processing element stops operating while maintaining a very fast communication throughput.

7. Die gepufferten und ungepufferten Informationswege7. The buffered and unbuffered information paths

Im folgenden wird weiter auf Fig. 6 Bezug genommen. Wie es im vorhergehenden erklärt wurde, werden der erste und zweite Abschnitt jedes eintreffenden Informationspakets (ebenso wie dessen zugeordnetes Typfeld) jeweils in das P1-Register 262 und das Eingangsregister 260 (d. h. ein Eingangsspeicherele­ ment) gelatcht, bevor dieselben jeweils in das P2WD-Register 266 und das P1WD-Register 264 gelatcht und zu dem Kernpro­ zessor 224 des Verarbeitungselements 222 weitergeleitet wer­ den. Beide Abschnitte jedes Informationspakets, die in das P1WD- und P2WD-Register 264 und 266 gelatcht werden, werden abhängig von dem Inhalt des Typfelds des ersten Abschnitts des Pakets entweder in das gepufferte Schreib-FIFO (BW) 228 (d. h. das Nicht-Prioritäts-Schnittstellenausgangsspeicher­ element) oder das ungepufferte Schreib-FIFO (UW) 230 (d. h. das Prioritäts-Schnittstellenausgangsspeicherelement) ein­ gegeben. Das heißt, das Typfeld des ersten Abschnitts des Pakets, d. h. der Abschnitt, der in dem P1-Register 262 ge­ speichert ist, wird überprüft, um zu bestimmen, ob das Paket gemäß den Auflistungen in Tabelle I als gepuffert oder unge­ puffert identifiziert wird.Reference is further made to FIG. 6 below. As explained above, the first and second portions of each incoming information packet (as well as its associated type field) are latched into the P1 register 262 and the input register 260 (ie, an input storage element) before being put into the P2WD register, respectively 266 and the P1WD register 264 latched and forwarded to the core processor 224 of the processing element 222 who the. Both sections of each packet of information that are latched into P1WD and P2WD registers 264 and 266 are either written to buffered write FIFO (BW) 228 (ie, non-priority) depending on the content of the type field of the first section of the packet. Interface output storage element) or the unbuffered write FIFO (UW) 230 (ie the priority interface output storage element) is given. That is, the type field of the first section of the packet, that is, the section stored in P1 register 262 , is checked to determine whether the packet is identified as buffered or unbuffered according to the listings in Table I.

Wie es in Tabelle I gezeigt ist, sollte das Paket, falls das Bit <7< dieses Typfelds eine "1" ist, immer zu dem gepuffer­ ten Schreib-FIFO (BW) 228 übertragen werden, wobei es, falls das Bit <7< eine "0" ist, von dem Wert des Bits <3< des Typ­ felds abhängt, ob das Paket zu dem gepufferten Schreib-FIFO (BW) 228 oder dem ungepufferten Schreib-FIFO (UW) 230 über­ tragen wird. Falls das Bit <3< des Typfelds des ersten Ab­ schnitts eines Pakets eine "1" ist, sind bei einem Ausfüh­ rungsbeispiel die Informationen ungepuffert, wobei umge­ kehrt, falls das Bit <3< eine "0" ist, die Informationen ge­ puffert sind.As shown in Table I, if the bit <7 <of this type field is a "1", the packet should always be transferred to the buffered write FIFO (BW) 228 , and if the bit <7 < is a "0", depending on the value of bit <3 <of the type field, whether the packet will be transferred to the buffered write FIFO (BW) 228 or the unbuffered write FIFO (UW) 230 . If the bit <3 <of the type field of the first section of a packet is a "1", the information is unbuffered in an exemplary embodiment, and vice versa, if the bit <3 <is a "0", the information is buffered .

Gemäß einem Ausführungsbeispiel wird nicht der Inhalt des Typfelds des P1-Registers 262 überprüft, um zu bestimmen, ob dasselbe gepufferte oder ungepufferte Informationen enthält, sondern zwei separate Einzel-Bit-Register (beispielsweise die Register 316 und 318 in dem Steuerregisterblock 320) werden verwendet, um nachzuverfolgen, ob das P1-Register 262 momentan gepufferte oder ungepufferte Informationen enthält. Beispielsweise kann das Register 316 verwendet werden, um anzuzeigen, ob das P1-Register 262 gegenwärtig gepufferte Informationen enthält, wobei das Register 318 verwendet wer­ den kann, um anzuzeigen, ob das P1-Register 262 gegenwärtig ungepufferte Informationen enthält. Der Nächste-Zustand-In­ halt jedes der Register 316 und 318 kann bestimmt werden, indem das Typfeld der Informationen, die in dem Eingangsre­ gister 260 gespeichert sind, überprüft wird, so daß das P1-Register 262 Eingangsinformationen empfangen wird, wobei die Register 316 und 318 Eingangssignale empfangen werden, die dem Typ des Informationseingangssignals in das P1-Register 262 während derselben Taktphase entsprechen.In one embodiment, the content of the type field of P1 register 262 is not checked to determine whether it contains buffered or unbuffered information, but two separate single-bit registers (e.g., registers 316 and 318 in control register block 320 ) are used to track whether P1 register 262 currently contains buffered or unbuffered information. For example, register 316 can be used to indicate whether P1 register 262 currently contains buffered information, and register 318 can be used to indicate whether P1 register 262 currently contains unbuffered information. The next state content of each of registers 316 and 318 can be determined by checking the type field of information stored in input register 260 so that P1 register 262 receives input information, register 316 and 318 input signals are received that correspond to the type of information input signal to P1 register 262 during the same clock phase.

Das gepufferte Schreib-FIFO (BW) 228 und das ungepufferte Schreib-FIFO (UW) 230 sind detaillierter in Fig. 10 darge­ stellt. Wie es gezeigt ist, umfaßt bei einem Ausführungsbei­ spiel jedes der gepufferten Schreib- und ungepufferten Schreib-FIFOs (BW, UW) 228 und 230 acht Eintragungen, um je­ den der zwei Abschnitte eines Informationspakets zu spei­ chern. Das heißt, jedes der gepufferten Schreib- und unge­ pufferten Schreib-FIFOs (BW, UW) 228 und 230 umfaßt acht Eintragungen, um folgendes zu speichern: (1.) Phase-1-Infor­ mationen und Typdaten (P1_WrInfo und P1_WrType) aus dem P1WD-Register 264, und (2.) Phase-2-Informationen und Typ­ daten (P2_WrInfo und P2_WrType) aus dem P1WD-Register 266. Das FIFO 228 umfaßt ferner eine Ladesteuerschaltung 227 und eine Entladesteuerschaltung 229, wobei das ungepufferte Schreib-FIFO (UW) 230 ferner eine Ladesteuerschaltung 231 und eine Entladesteuerschaltung 233 umfaßt.Buffered write FIFO (BW) 228 and unbuffered write FIFO (UW) 230 are shown in greater detail in FIG. 10. As shown, in one embodiment, each of the buffered write and unbuffered write FIFOs (BW, UW) 228 and 230 includes eight entries to store each of the two sections of an information packet. That is, each of the buffered write and unbuffered write FIFOs (BW, UW) 228 and 230 includes eight entries to store the following: (1.) Phase 1 information and type data (P1_WrInfo and P1_WrType) from the P1WD register 264 , and (2.) phase 2 information and type data (P2_WrInfo and P2_WrType) from the P1WD register 266 . The FIFO 228 further includes a charge control circuit 227 and a discharge control circuit 229 , and the unbuffered write FIFO (UW) 230 further includes a charge control circuit 231 and a discharge control circuit 233 .

Im folgenden wird kurz auf Fig. 11 Bezug genommen. Es ist ein Zeitablaufdiagramm dargestellt, das die Beziehung zwi­ schen dem eintreffenden Taktsignal In_CLK, dem Schreibtakt­ signal Wr_CLK aus der Teile-durch-Zwei-Schaltung 295 (die in Fig. 6 gezeigt ist) und dem P1_WrInfo- und P2_WrInfo-Signal (d. h. die Informationen, die in das FIFO 228 oder 230 aus den Registern 264 und 266 geschrieben worden sind) zeigt. Diese Signale sind für einen Vergleich in demselben Zeitmaß­ stab (horizontale Achse) dargestellt. Die Anordnung eines Signals über einem anderen Signal gibt nicht an, daß ein Si­ gnal eine höhere Amplitude als die anderen Signale aufweist. Wie es in Fig. 10 gezeigt ist, empfängt jede der Ladesteuer­ schaltungen 227 und 231 das Wr_CLK-Signal als Takteingangs­ signal. Die Ladesteuerschaltung 227 empfängt ferner ein ge­ puffertes Informationsladesignal (B_WrInfoLd), das ein Er­ gebnis der oben erklärten Überprüfung der Typbits ist, um zu identifizieren, ob die Informationen gepuffert oder ungepuf­ fert sind. Die Ladesteuerschaltung 227 liefert ein gepuffer­ tes Schreibvollsignal (B_WrFull), das aktiviert ist, wenn das gepufferte Schreib-FIFO (BW) 228 bis auf vier oder weni­ ger Eintragungen voll ist, und das deaktiviert ist, wenn das gepufferte Schreib-FIFO (BW) 228 fünf oder mehr Eintragungen aufweist, die gefüllt werden können. Entsprechend empfängt die Ladesteuerschaltung 231 ein ungepuffertes Informations­ ladesignal (U_WrInfoLd), das ferner ein Ergebnis der oben erklärten Überprüfung der Typbits ist, um zu identifizieren, ob die Informationen gepuffert oder ungepuffert sind. Die Ladesteuerschaltung 231 liefert ein ungepuffertes Schreib­ vollsignal (U_WrFull), das aktiviert ist, wenn das ungepuf­ ferte Schreib-FIFO (UW) 230 bis auf vier oder weniger Ein­ tragungen voll ist, und das deaktiviert ist, wenn das unge­ pufferte Schreib- (UW) FIFO 230 fünf oder mehr Eintragungen aufweist, die gefüllt werden können.In the following, reference is briefly made to FIG. 11. A timing diagram is shown showing the relationship between the incoming clock signal In_CLK, the write clock signal Wr_CLK from the divide-by-two circuit 295 (shown in FIG. 6) and the P1_WrInfo and P2_WrInfo signal (ie Information written to FIFO 228 or 230 from registers 264 and 266 ). These signals are shown for comparison in the same time scale (horizontal axis). The arrangement of a signal over another signal does not indicate that a signal has a higher amplitude than the other signals. As shown in Fig. 10, each of the charge control circuits 227 and 231 receives the Wr_CLK signal as a clock input signal. The load control circuit 227 also receives a buffered information load signal (B_WrInfoLd) that is a result of the type bit check explained above to identify whether the information is buffered or unbuffered. Load control circuit 227 provides a buffered full write signal (B_WrFull) which is activated when buffered write FIFO (BW) 228 is full to four or fewer entries and which is deactivated when buffered write FIFO (BW) 228 has five or more entries that can be filled. Accordingly, the load control circuit 231 receives an unbuffered information load signal (U_WrInfoLd), which is also a result of the type bit check explained above to identify whether the information is buffered or unbuffered. The charge control circuit 231 provides an unbuffered write full signal (U_WrFull) which is activated when the unbuffered write FIFO (UW) 230 is full to four or fewer entries and which is deactivated when the unbuffered write (UW ) FIFO 230 has five or more entries that can be filled.

Jede der Entladesteuerschaltungen 229 und 233 empfängt fer­ ner ein jeweiliges Kerntaktsignal und ein Entladesignal von dem Kern (das ermöglicht, daß der Kern Informationen aus den FIFOs mit der Kerntaktrate entladen kann, wenn eines der Entladesignale aktiviert ist), und liefert ein jeweiliges Leer-Signal an den Kern (das dem Kern anzeigt, daß das FIFO gegenwärtig keine Informationen aufweist, die in demselben gespeichert sind). Folglich kann der Kern auf die P1- und P2-Informationen und Typdaten (P1_Info, P1_Type, P2_Info und P2_Type) entweder aus dem gepufferten Schreib- oder dem un­ gepufferten Schreib-FIFO (BW, UW) 228 oder 230 mit einer Ra­ te zugreifen, die zu der Taktrate asynchron ist, mit der diese FIFOs die Informationen und Typdaten von der Schnitt­ stellenschaltung 226 empfangen.Each of the discharge control circuits 229 and 233 also receives a respective core clock signal and a discharge signal from the core (which enables the core to discharge information from the FIFOs at the core clock rate when one of the discharge signals is activated) and provides a respective idle signal to the kernel (which indicates to the kernel that the FIFO currently has no information stored therein). Consequently, the core can access the P1 and P2 information and type data (P1_Info, P1_Type, P2_Info and P2_Type) from either the buffered write or the unbuffered write FIFO (BW, UW) 228 or 230 with one rate, which is asynchronous to the clock rate at which these FIFOs receive the information and type data from the interface circuit 226 .

In den Fig. 12 und 13 sind die asynchronen gepufferten Lese- und ungepufferten Lese-FIFOs (BR, UR) 232 und 234 detail­ lierter dargestellt. Fig. 12 zeigt, wie die gepufferten Le­ se- und ungepufferten Lese-FIFOs (BR, UR) 232 und 234 arbei­ ten könnten, wenn das Verarbeitungselement 222 in einer Um­ leitungsbetriebsart konfiguriert ist, wobei Fig. 13 zeigt, wie die gepufferten Lese- und ungepufferten Lese-FIFOs (BR, UR) 232 und 234 arbeiten könnten, wenn das Verarbeitungsele­ ment nicht in der Umleitungsbetriebsart konfiguriert ist (wie z. B. die in Fig. 6 gezeigte Konfiguration). Als erstes wird auf Fig. 12 Bezug genommen. Wenn das Verarbeitungsele­ ment 222 in einer Umleitungsbetriebsart konfiguriert ist, empfängt eines der gepufferten Lese- und ungepufferten Le­ se-FIFOs (BR, UR) 232 und 234, das ausgewählt wird, beide Abschnitte eines Informationspakets (d. h. Phase-1-Informa­ tionen (P1_Info) und Typdaten (P1_Type) und Phase-2-Informa­ tionen (P2_Info) und Typdaten (P2_Type)) von dem Kern zusam­ men mit einem Kerntaktsignal und einem Ladesignal, und lie­ fert an dem Kern ein "Voll"-Signal, um dem Kern anzuzeigen, wann ein jeweiliges der FIFOs voll ist. Bei dem gezeigten Beispiel ist sowohl das gepufferte Lese- als auch ungepuf­ ferte Lese-FIFO (BR, UR) 232 und 234 acht Eintragungen tief, wobei jedoch die notwendige Tiefe der Lese-FIFOs durch die Operationen bestimmt wird, die von dem Kern durchgeführt werden sollen.In Figs. 12 and 13, the asynchronous buffered read and unbuffered read FIFOs (BR, UR) are shown detail profiled 232 and 234. FIG. 12 shows how buffered read and unbuffered read FIFOs (BR, UR) 232 and 234 could operate when processing element 222 is configured in a redirection mode, FIG. 13 showing how buffered read and unbuffered read FIFOs (BR, UR) 232 and 234 could operate if the processing element is not configured in the redirection mode (such as the configuration shown in FIG. 6). First, reference is made to FIG . When processing element 222 is configured in a redirection mode, one of the buffered read and unbuffered read FIFOs (BR, UR) 232 and 234 that is selected receives both sections of an information packet (ie, phase 1 information (P1_Info ) and type data (P1_Type) and phase 2 information (P2_Info) and type data (P2_Type)) from the core together with a core clock signal and a load signal, and delivers a "full" signal to the core around the core indicate when each of the FIFOs is full. In the example shown, both the buffered read and unbuffered read FIFO (BR, UR) 232 and 234 are eight entries deep, however, the necessary depth of the read FIFOs is determined by the operations performed by the core should.

Wie es in Fig. 12 gezeigt ist, liefert das gepufferte Lese-FIFO (BR) 232 beide Abschnitte eines gepufferten Informati­ onspakets (d. h. Phase-1-Ausgangsinformationen (P1_OutInfo) und Typdaten (P1_OutType) und Phase-2-Ausgangsinformationen (P2_OutInfo) und Typdaten (P2_OutType)) an die Schnittstel­ lenschaltung 226. Insbesondere werden die Phase-1-Ausgangs­ informationen P1_OutInfo und Typdaten P1_OutType an das P1_Out-Register 272 geliefert, wobei die Phase-2-Ausgangsin­ formationen P2_OutInfo und Typdaten P2_OutType an das P2_Out-Register 274 geliefert werden. Entsprechend liefert das ungepufferte Lese-FIFO (UR) 234 beide Abschnitte eines ungepufferten Informationspakets an die Schnittstellenschal­ tung 226. Das heißt, die ungepufferten Phase-1-Ausgangsin­ formationen (P1_U_OutInfo) und Typdaten (P1_U_OutType) wer­ den aus dem ungepufferten Lese-FIFO (UR) 234 an das U_P1_Out-Register 276 geliefert, wobei die ungepufferten Phase-2-Ausgangsinformationen (P2_U_OutInfo) und Typdaten (P2_U_OutType) aus dem ungepufferten Lese-FIFO (UR) 234 an das U_P2_Out-Register 278 geliefert werden. As shown in Figure 12, the buffered read FIFO (BR) 232 provides both portions of a buffered information packet (ie, phase 1 output information (P1_OutInfo) and type data (P1_OutType) and phase 2 output information (P2_OutInfo) and Type data (P2_OutType)) to the interface circuit 226 . In particular, the phase 1 output information P1_OutInfo and type data P1_OutType are supplied to the P1_Out register 272 , the phase 2 output information P2_OutInfo and type data P2_OutType being supplied to the P2_Out register 274 . Accordingly, unbuffered read FIFO (UR) 234 provides both portions of an unbuffered information packet to interface circuit 226 . That is, the unbuffered phase 1 output information (P1_U_OutInfo) and type data (P1_U_OutType) are supplied from the unbuffered read FIFO (UR) 234 to the U_P1_Out register 276 , the unbuffered phase 2 output information (P2_U_OutInfo) and type data (P2_U_OutType) from unbuffered read FIFO (UR) 234 are provided to U_P2_Out register 278 .

Im folgenden wird nun auf Fig. 13 Bezug genommen. Wenn das Verarbeitungselement 222 nicht in einer Umleitungsbetriebs­ art konfiguriert ist, empfängt eines der gepufferten Lese- und ungepufferten Lese-FIFOs (BR; UR) 232 und 234, das aus­ gewählt ist, von dem Kern Informationen zusammen mit Masken­ daten, die im folgenden erklärt werden und den Informationen zugeordnet sind. Wenn die Umleitungsbetriebsart nicht konfi­ guriert ist, sind die Typdaten, die jedem Abschnitt eines Informationspakets zugeordnet sind, nicht relevant und wer­ den ignoriert. Das gepufferte Lese-FIFO (BR) 232 liefert an seinem Ausgang entweder die zwei Abschnitte eines gepuffer­ ten Informationspakets (d. h. entweder die gepufferten Pha­ se-1-Ausgangsinformationen (P1_OutInfo) oder die gepufferten Phase-2-Ausgangsinformationen (P2_OutInfo)), als auch die Maskendaten (OutMask) aus dem Kern an die Schnittstellen­ schaltung 226. Insbesondere werden entweder die gepufferten Phase-1-Ausgangsinformationen P1_OutInfo oder die gepuffer­ ten Phase-2-Ausgangsinformationen P2_OutInfo an das P1_Out-Register 272 oder das P2_Out-Register 274 geliefert, wobei die 32 Bits der gepufferten Maskendaten (OutMask) an das Maskenregister 284 geliefert werden. Entsprechend liefert das ungepufferte Lese-FIFO (UR) 234 jeden Abschnitt eines ungepufferten Informationspakets als auch die ungepufferten Maskendaten (OutMask) von dem Kern an die Schnittstellen­ schaltung 226. Insbesondere werden entweder die ungepuffer­ ten Phase-1-Ausgangsdaten (P1_U_OutInfo) oder die ungepuf­ ferten Phase-2-Ausgangsdaten (P2_U_OutInfo) entweder an das U_P1_Out-Register 276 oder das U_P2_Out-Register 278 gelie­ fert, wobei die ungepufferten Maskendaten (OutMask) an das Maskenregister 284 geliefert werden. Gemäß einem Ausfüh­ rungsbeispiel wird lediglich ein einziges Bit der ungepuf­ ferten Maskendaten verwendet.In the following, reference 13 is now made to Fig.. If processing element 222 is not configured in a redirection mode, one of the buffered read and unbuffered read FIFOs (BR; UR) 232 and 234 selected from the core receives information along with mask data, which is explained below and are assigned to the information. If the redirection mode is not configured, the type data assigned to each section of an information package is irrelevant and is ignored. The buffered read FIFO (BR) 232 provides at its output either the two sections of a buffered information packet (ie either the buffered phase 1 output information (P1_OutInfo) or the buffered phase 2 output information (P2_OutInfo)) as well the mask data (OutMask) from the core to the interface circuit 226 . In particular, either the buffered phase 1 output information P1_OutInfo or the buffered phase 2 output information P2_OutInfo is supplied to the P1_Out register 272 or the P2_Out register 274 , the 32 bits of the buffered mask data (OutMask) being supplied to the mask register 284 will. Accordingly, the unbuffered read FIFO (UR) 234 provides each section of an unbuffered information packet as well as the unbuffered mask data (OutMask) from the core to the interface circuit 226 . In particular, either the unbuffered phase 1 output data (P1_U_OutInfo) or the unbuffered phase 2 output data (P2_U_OutInfo) are supplied to either the U_P1_Out register 276 or the U_P2_Out register 278 , with the unbuffered mask data (OutMask) the mask register 284 are provided. According to an exemplary embodiment, only a single bit of the unbuffered mask data is used.

Die gepufferten Maskendaten (OutMask) , die zu dem Maskenre­ gister 284 übertragen werden (wenn gepufferte Informationen gelesen werden), werden verwendet, um eine selektive Maskie­ rung oder ein "Bit-Slicing" (Bit-Teilung) der gepufferten Informationen, die aus dem Kern ausgegeben werden, durchzu­ führen. Auf diese Art und Weise wählt die 32-Bit-Maske ge­ pufferte Informationen auf einer Bit-für-Bit-Basis entweder von: (1.) den gepufferten Informationen, die aus dem Kern ausgegeben werden, oder (2.) entweder den gepufferten Infor­ mationen, die durch den Durchgangsweg 261 fließen, oder den gepufferten Informationen, die aus dem Sicherungsinformati­ onsweg 290 ausgelesen werden, aus. Das einzige Bit der unge­ pufferten Maskendaten (OutMask), das zu dem Maskenregister 284 übertragen wird (wenn ungepufferte Informationen ausge­ lesen werden), wird verwendet, um ein gesamtes 32-Bit-Infor­ mationswort aus einer der zwei gerade aufgelisteten Quellen auszuwählen. Es sollte angemerkt werden, daß alternativ 32 Bits der ungepufferten Maskendaten verwendet werden können, um die ungepufferten Informationen aus dem Kern selektiv "Bit-für-Bit" zu maskieren.The buffered mask data (OutMask) that is transferred to mask register 284 (when reading buffered information) is used to perform selective masking or "bit slicing" of the buffered information resulting from the Core spent to perform. In this way, the 32-bit mask selects buffered information on a bit-by-bit basis either from: (1.) the buffered information output from the core or (2.) either the buffered Information flowing through passageway 261 or the buffered information read from backup information path 290 . The only bit of unbuffered mask data (OutMask) that is transferred to mask register 284 (when reading unbuffered information) is used to select an entire 32-bit information word from one of the two sources just listed. It should be noted that, alternatively, 32 bits of the unbuffered mask data can be used to selectively "bit by bit" mask the unbuffered information from the core.

Im folgenden wird kurz auf Fig. 14 Bezug genommen. Es ist ein Zeitablaufdiagramm vorgestellt, das die Beziehung zwi­ schen dem abgehenden Taktsignal Out_CLK, dem Lesetaktsignal RD_CLK aus der Teile-durch-Zwei-Schaltung 297 (gezeigt in Fig. 6) und den gepufferten Ausgangsinformationen aus einem der FIFOs 232 und 234 darstellt. Die gepufferten Ausgangs­ informationen, d. h. P1_OutInfo und P2_OutInfo, aus dem gepufferten Lese-FIFO (BR) 232 sind als Beispiel dargestellt und könnten ebenso die ungepufferten Ausgangsinformationen P1_U_OutInfo und P2_U_OutInfo darstellen. Diese Signale sind für einen Vergleich in demselben Zeitmaßstab (horizontale Achse) dargestellt. Die Anordnung eines Signals über einem anderen gibt nicht an, daß ein Signal eine größere Amplitude als die anderen Signale aufweist.In the following, reference is briefly made to FIG. 14. A timing diagram is presented that illustrates the relationship between the outgoing clock signal Out_CLK, the read clock signal RD_CLK from the divide-by-two circuit 297 (shown in FIG. 6) and the buffered output information from one of the FIFOs 232 and 234 . The buffered output information, ie P1_OutInfo and P2_OutInfo, from the buffered read FIFO (BR) 232 are shown as an example and could also represent the unbuffered output information P1_U_OutInfo and P2_U_OutInfo. These signals are shown for comparison on the same time scale (horizontal axis). Placing one signal over another does not indicate that one signal has a greater amplitude than the other signals.

In den Fig. 12 und 13 umfaßt das gepufferte Lese-FIFO (BR) 232 die Entladesteuerschaltung 235 und die Ladesteuerschal­ tung 237, wobei das ungepufferte Lese-FIFO (UR) 234 die Ent­ ladesteuerschaltung 239 und die Ladesteuerschaltung 234 um­ faßt. Die Informationen und Maskendaten werden während eines Übergangs des Kerntaktsignals in eines der FIFOs geladen, wenn das Ladesignal zu einer der Ladesteuerschaltungen 237 oder 241 aktiviert ist, und werden während eines Übergangs des Taktsignals RD_CLK aus einem der FIFOs entladen, wenn entweder das gepufferte oder ungepufferte Entladesignal (B_OutInfoUnld oder U_OutInfoUnld) zu einer der Entladesteu­ erschaltungen 235 und 239 aktiviert ist. Die Signale B_OutDatVal und U_OutDatVal aus den Entladesteuerschaltungen 235 bzw. 239 geben an, daß gepufferte oder ungepufferte Informa­ tionen bereit sind, um in ein entsprechendes der Leseregi­ ster 272, 274, 276 und 278 getaktet zu werden.In Figs. 12 and 13 comprising the buffered read FIFO (BR) 232, the discharge control circuit 235 and the charging control TIC 237, wherein the unbuffered read FIFO (UR) 234 Ent charging control circuit 239 and the charging control circuit 234 to handled. The information and mask data are loaded into one of the FIFOs during a transition of the core clock signal when the load signal to one of the load control circuits 237 or 241 is activated, and are discharged from one of the FIFOs during a transition of the RD_CLK clock signal when either the buffered or unbuffered discharge signal (B_OutInfoUnld or U_OutInfoUnld) to one of the discharge control circuits 235 and 239 is activated. The signals B_OutDatVal and U_OutDatVal from the discharge control circuits 235 and 239 indicate that buffered or unbuffered information is ready to be clocked into a corresponding one of the read registers 272 , 274 , 276 and 278 .

Wie es im vorhergehenden angemerkt wurde, können durch Steu­ ern der FIFOs 228, 230, 232 und 234 und des Sicherungsinfor­ mationswegs 290, derart, daß ungepufferte (d. h. Priori­ täts-) Informationen immer Vorrang vor gepufferten (d. h. Nicht-Prioritäts-) Informationen haben, zwei unterschiedli­ che Informationstypen durch eine Pipeline entlang eines ein­ zigen Busses durchgelassen werden, ohne daß es erforderlich ist, daß beliebige Nicht-Prioritäts-Informationen, die in der Pipeline vorhanden sind, aus der Pipeline geräumt oder abgelegt werden, bevor die Prioritätsinformationen gesendet werden können. Das heißt, beliebige Nicht-Prioritätsinforma­ tionen, die in der Pipeline vorhanden sind, wenn ein Priori­ tätsinformationspaket in die Schnittstelle eintritt, können in einem der Nicht-Prioritäts-Informationsspeicherelemente in einem der Nicht-prioritäts-Informationswege (d. h. in dem gepufferten Lese-FIFO (BR) 232, dem gepufferten Schreib-FIFO (BW) 228 oder dem gepufferten Sicherungsweg 292) stationär gehalten werden, bis die Prioritätsinformationen durch die Schnittstelle hindurchlaufen, woraufhin die Nicht-Priori­ tätsinformationen wieder übertragen werden können. Durch ge­ meinsames Verwenden sowohl des eintreffenden als auch abge­ henden Busses einer Schnittstellenschaltung (beispielsweise der Schnittstellenschaltung 226) für zwei eindeutige und un­ abhängige Wege mit Pipelinestruktur und nicht durch Bereit­ stellen reservierter Wege entweder für die Prioritäts- oder die Nicht-Prioritäts-Informationen, werden deutliche Einspa­ rungen bezüglich der Hardware und der ASIC-Anschlußstiftan­ zahl gegenüber im Stand der Technik bekannten Systemen realisiert, die lediglich Buslösungen mit Pipelinestruktur bereitstellen, die keine gemeinsame Verwendung der Betriebs­ mittel beinhalten.As noted above, by controlling FIFOs 228 , 230 , 232 and 234 and backup information path 290 such that unbuffered (ie, priority) information always takes precedence over buffered (ie, non-priority) information , two different types of information are passed through a pipeline along a single bus without requiring any non-priority information present in the pipeline to be cleared or discarded before the priority information is sent can. That is, any non-priority information that is in the pipeline when a priority information packet enters the interface may be in one of the non-priority information storage elements in one of the non-priority information paths (ie, the buffered read FIFO (BR) 232 , the buffered write FIFO (BW) 228 or the buffered backup path 292 ) are held stationary until the priority information passes through the interface, whereupon the non-priority information can be retransmitted. By sharing both the incoming and outgoing buses of an interface circuit (e.g., interface circuit 226 ) for two unique and independent routes with a pipeline structure and not by providing reserved routes for either the priority or the non-priority information significant savings in terms of hardware and the ASIC pin count compared to systems known in the prior art, which only provide bus solutions with a pipeline structure that do not involve the common use of the resources.

Obwohl hierin beschrieben wurde, daß die Erfindung einen Bus verwendet, der in der Lage ist, eine bestimmte Anzahl von Bits zu übertragen, und daß die Erfindung spezielle Steuer­ signale verwendet, um die Ausbreitung der Informationen durch die gesamte Schaltung zu steuern, ist beabsichtigt, daß ein Bus mit beliebiger Breite und beliebigen Steuersi­ gnalen, die entsprechende Funktionen durchführen, in den Schutzbereich der vorliegenden Erfindung fällt. Obwohl hier­ in beschrieben wurde, daß die Schaltungselemente während be­ stimmter Flanken der Taktsignale getaktet werden, könnten diese Elemente zusätzlich äquivalent während den entgegenge­ setzte Flanken der Taktsignale getaktet werden, ohne von dem Schutzbereich der Erfindung abzuweichen.Although it has been described herein that the invention is a bus used, which is able to a certain number of Transfer bits and that the invention special tax signals used to spread the information to control through the entire circuit is intended that a bus of any width and any Steueri gnalen, who perform corresponding functions in the Scope of the present invention falls. Although here in that the circuit elements during be coordinated edges of the clock signals could be clocked these elements additionally equivalent during the opposite set edges of the clock signals to be clocked without the Deviate scope of the invention.

Obwohl beschrieben worden ist, daß spezifische Typen von In­ formationsspeicherelementen bei der vorliegenden Erfindung verwendet werden, können zusätzlich beliebige alternative Typen von Informationsspeicherelementen äquivalent gemäß dem beabsichtigten Schutzbereich der Erfindung verwendet werden. Obwohl beschrieben worden ist, daß die Erfindung unter Ver­ wendung von ASIC-Schaltungen implementiert ist, kann diesel­ be ferner äquivalent unter Verwendung einer dedizierten Hardware, einer geeignet programmierten Firmware oder Soft­ ware oder einer beliebigen Kombination derselben implemen­ tiert sein.Although specific types of In formation storage elements in the present invention any alternative can be used Types of information storage elements equivalent according to the intended scope of the invention can be used. Although the invention has been described in Ver Implementation of ASIC circuits can be implemented using diesel be further equivalent using a dedicated Hardware, a suitably programmed firmware or soft goods or any combination of the same be animal.

Obwohl ferner beschrieben worden ist, daß das Bussystem ver­ wendet wird, um verschiedene Graphikverarbeitungsvorrichtun­ gen eines Graphikverarbeitungssystems zu verbinden, ist der Schutzbereich der Erfindung nicht auf Graphikverarbeitungs­ anwendungen beschränkt, wobei das Bussystem äquivalent ver­ wendet werden kann, beliebige Typen von Verarbeitungselemen­ ten zu verbinden. Obwohl beschrieben worden ist, daß die Schnittstellenschaltungen verwendet werden, um Graphikverar­ beitungsvorrichtungen schnittstellenmäßig mit einem Bus zu verbinden, ist der Schutzbereich der Erfindung entsprechend nicht nur auf die schnittstellenmäßige Verbindung von Gra­ phikverarbeitungsvorrichtungen beschränkt, wobei die Schnittstellenschaltung äquivalent verwendet werden kann, um beliebige Vorrichtungstypen mit einem Bus schnittstellen­ mäßig zu verbinden.Although it has also been described that the bus system ver is used in various graphics processing devices to connect to a graphics processing system is Scope of the invention not on graphics processing limited applications, with the bus system equivalent ver any type of processing element can be used to connect. Although it has been described that the Interface circuits used to graphics processing  Processing devices interface with a bus connect, is the scope of the invention not only on the interface connection of Gra limited phic processing devices, the Interface circuitry can be used to equivalent Interface any type of device with a bus to connect moderately.

Claims (18)

1. Busverbindungssystem für eine Verwendung in einem Gra­ phikverarbeitungssystem mit einer Mehrzahl von Graphik­ verarbeitungselementen, wobei das Busverbindungssystem folgendes Merkmal aufweist:
eine Busstruktur, die die Mehrzahl von Graphikverarbei­ tungselementen (202, 222, 242) in einem Ring koppelt, wobei die Busstruktur eine Mehrzahl von einzelnen Bus­ sen (250, 252, 254) aufweist, wobei jeder der einzelnen Busse (250, 252, 254) ein Paar der Graphikverarbei­ tungselemente (202, 222, 242) verbindet, wobei jeder der einzelnen Busse (250, 252, 254) eine gleiche Mehr­ zahl von Signalleitungen (250A-250F) zum Übertragen von Graphikbefehlssignalen und Informationssignalen zwischen den Graphikverarbeitungselementen (202, 222, 242) in dem Ring aufweist.
1. A bus connection system for use in a graphics processing system having a plurality of graphics processing elements, the bus connection system having the following feature:
a bus structure coupling the plurality of graphics processing elements ( 202 , 222 , 242 ) in a ring, the bus structure comprising a plurality of individual buses ( 250 , 252 , 254 ), each of the individual buses ( 250 , 252 , 254 ) connects a pair of graphics processing elements ( 202 , 222 , 242 ), each of the individual buses ( 250 , 252 , 254 ) having an equal number of signal lines ( 250 A- 250 F) for transmitting graphics command signals and information signals between the graphics processing elements ( 202 , 222 , 242 ) in the ring.
2. Busverbindungssystem gemäß Anspruch 1, bei dem die Mehrzahl von Signalleitungen (250A-250F) ferner fol­ gende Merkmale aufweist:
eine Mehrzahl von Informationssignalleitungen (250F) zum Übertragen der Informationssignale; und
eine Taktsignalleitung (250A) zum Übertragen eines den Informationssignalen zugeordneten Taktsignals auf den Informationssignalleitungen zu einem nächsten Verarbei­ tungselement in dem Ring.
2. Bus connection system according to claim 1, wherein the plurality of signal lines ( 250 A- 250 F) further comprises the following features:
a plurality of information signal lines ( 250 F) for transmitting the information signals; and
a clock signal line ( 250 A) for transmitting a clock signal associated with the information signals on the information signal lines to a next processing element in the ring.
3. Busverbindungssystem gemäß Anspruch 1, bei dem die Mehrzahl von Signalleitungen ferner eine Bereitschafts­ signalleitung (250B, 250C) aufweist, auf der ein Be­ reitschaftssignal von einem ersten Graphikverarbei­ tungselement (226) zu einem vorhergehenden Graphikver­ arbeitungselement (206) in dem Ring übertragen wird, wobei das Bereitschaftssignal anzeigt, daß das erste Graphikverarbeitungselement (226) Informationen von dem vorherigen Graphikverarbeitungselement (206) in dem Ring empfangen kann.3. A bus connection system according to claim 1, wherein the plurality of signal lines further comprises a standby signal line ( 250 B, 250 C) on which a ready signal from a first graphics processing element ( 226 ) to a previous graphics processing element ( 206 ) in the ring is transmitted, the ready signal indicating that the first graphics processing element ( 226 ) can receive information from the previous graphics processing element ( 206 ) in the ring. 4. Busverbindungssystem gemäß Anspruch 2, bei dem die Mehrzahl von Signalleitungen (250A-250F) ferner ein Signal zum Anzeigen einer Gültigkeit von Informationen auf den Informationssignalleitungen (250F) aufweist.4. A bus connection system according to claim 2, wherein the plurality of signal lines ( 250 A- 250 F) further comprises a signal for indicating a validity of information on the information signal lines ( 250 F). 5. Busverbindungssystem gemäß Anspruch 2, bei dem die Mehrzahl von Signalleitungen (250A-250F) ferner eine Mehrzahl von Typsignalleitungen (250E) zum Übertragen von Typsignalen aufweist, die einen Typ einer Operation anzeigen, die mit den Informationen auf der Mehrzahl von Informationssignalleitungen (250F) durchgeführt werden soll.5. The bus connection system according to claim 2, wherein the plurality of signal lines ( 250 A- 250 F) further comprises a plurality of type signal lines ( 250 E) for transmitting type signals indicating a type of operation associated with the information on the plurality of Information signal lines ( 250 F) to be performed. 6. Busverbindungssystem gemäß Anspruch 1, bei dem eines der Graphikverarbeitungselemente in dem Ring ein Host­ schnittstellenverarbeitungselement (202) ist, das mit einem Hostprozessor gekoppelt ist, zum Empfangen der Befehle und Informationssignale aus dem Hostprozessor, die zu den anderen Graphikverarbeitungselementen (222, 242) in dem Ring weitergeleitet werden sollen.The bus connection system of claim 1, wherein one of the graphics processing elements in the ring is a host interface processing element ( 202 ), coupled to a host processor, for receiving commands and information signals from the host processor to the other graphics processing elements ( 222 , 242 ). to be forwarded in the ring. 7. Busverbindungssystem gemäß Anspruch 6, bei dem jedes der Graphikverarbeitungselemente (222) ferner folgende Merkmale aufweist:
eine Kernverarbeitungseinheit (224); und
eine Schnittstelleneinheit (226), wobei die Schnitt­ stelleneinheit einen Durchgangsweg (261) aufweist, um zu ermöglichen, daß Befehls- und Informationssignale direkt über die Schnittstelleneinheit zu einem weiteren Graphikverarbeitungselement in dem Ring übertragen wer­ den, und einen Sicherungsweg (290) zum temporären Spei­ chern der weitergeleiteten Befehls- und Informationssi­ gnale aufweist.
7. The bus connection system of claim 6, wherein each of the graphics processing elements ( 222 ) further comprises:
a core processing unit ( 224 ); and
an interface unit ( 226 ), the interface unit having a passageway ( 261 ) to enable command and information signals to be transmitted directly via the interface unit to another graphics processing element in the ring, and a backup path ( 290 ) for temporary storage Chern the forwarded command and information signals.
8. Busverbindungssystem gemäß Anspruch 7, bei dem die Schnittstelleneinheit ferner eine Mehrzahl von Puffer (228, 230), die mit dem Durchgangsweg (261) gekoppelt sind, zum temporären Speichern der Befehls- und Infor­ mationssignale für eine Übertragung zu der entsprechen­ den Kernverarbeitungseinheit (224) aufweist.The bus connection system of claim 7, wherein the interface unit further includes a plurality of buffers ( 228 , 230 ) coupled to the passageway ( 261 ) for temporarily storing the command and information signals for transmission to the corresponding core processing unit ( 224 ). 9. Busverbindungssystem gemäß Anspruch 7, bei dem alle Be­ fehls- und Informationssignale, die von dem Host­ schnittstellenverarbeitungselement (202) empfangen wer­ den, zu der Kernverarbeitungseinheit (204) des Hostver­ arbeitungselements (202) übertragen werden, bevor die­ selben von dem Hostschnittstellenverarbeitungselement (202) zu einem weiteren Graphikverarbeitungselement in dem Ring übertragen werden.9. Bus system according to, fehls- claim 7 in which all the loading and information signals, the interface processing element from the host (202) received who are transferred to be the core processing unit (204) of Hostver processing elements (202) before the same from the host interface processing element ( 202 ) to another graphics processing element in the ring. 10. Busverbindungssystem gemäß Anspruch 7, bei dem jedes der Verarbeitungselemente (222) einen normalen Be­ triebsmodus und einen Umleitungsbetriebsmodus aufweist, und bei dem während des normalen Betriebsmodus Befehls- und Informationssignale über den Durchgangsweg (281) der Schnittstelle (226) weitergeleitet werden, und wäh­ rend des Umleitungsbetriebsmodus Befehls- und Informa­ tionssignale über die Kernverarbeitungseinheit (224) weitergeleitet werden, bevor dieselben aus der Schnitt­ stelle (226) übertragen werden.A bus connection system according to claim 7, wherein each of the processing elements ( 222 ) has a normal operating mode and a redirection operating mode, and in which during the normal operating mode command and information signals are forwarded via the through path ( 281 ) of the interface ( 226 ), and During the redirection mode of operation, command and information signals are forwarded via the core processing unit ( 224 ) before they are transmitted from the interface ( 226 ). 11. Verfahren zum Betreiben eines Graphiksystems, das eine Mehrzahl von Verarbeitungselementen aufweist, die in einem Ring gekoppelt sind, wobei eines der Verarbei­ tungselemente ein Hostschnittstellenverarbeitungsele­ ment ist, das zusätzlich mit einem Hostprozessor gekop­ pelt ist, zum Empfangen von Befehls- und Informations­ signalen von dem Hostprozessor für eine Übertragung zu anderen Verarbeitungselementen in dem Ring, wobei das Verfahren folgende Schritte aufweist:
Empfangen, an einem der Verarbeitungselemente in dem Ring, von Graphikbefehls- und Informationssignalen von einem vorherigen Verarbeitungselement in dem Ring;
Weiterleiten der empfangenen Graphikbefehls- und Infor­ mationssignale zu einem nächsten Verarbeitungselement in dem Ring; und
Weiterleiten der empfangenen Graphikbefehls- und Infor­ mationssignale zu einer Kernverarbeitungseinheit des Verarbeitungselements.
11. A method of operating a graphics system having a plurality of processing elements coupled in a ring, one of the processing elements being a host interface processing element additionally coupled to a host processor for receiving command and information signals from the host processor for transmission to other processing elements in the ring, the method comprising the steps of:
Receiving, at one of the processing elements in the ring, graphics command and information signals from a previous processing element in the ring;
Forwarding the received graphics command and information signals to a next processing element in the ring; and
Forwarding the received graphics command and information signals to a core processing unit of the processing element.
12. Verfahren gemäß Anspruch 11, das ferner folgende Schritte aufweist:
Empfangen, an dem Hostschnittstellenverarbeitungsele­ ment, von Befehls- und Informationssignalen von einem vorherigen Verarbeitungselement in dem Ring;
Weiterleiten der empfangenen Graphikbefehls- und Infor­ mationssignale zu einer Kernverarbeitungseinheit des Hostverarbeitungselements; und
Weiterleiten von Graphikbefehls- und Informationssigna­ len von der Kernverarbeitungseinheit zu einem nächsten Verarbeitungselement in dem Ring.
12. The method of claim 11, further comprising the steps of:
Receiving, at the host interface processing element, command and information signals from a previous processing element in the ring;
Forwarding the received graphics command and information signals to a core processing unit of the host processing element; and
Forwarding graphics command and information signals from the core processing unit to a next processing element in the ring.
13. Verfahren gemäß Anspruch 11, das ferner den Schritt des Weiterleitens eines Taktsignals mit den Befehls- und Informationssignalen zu einem nächsten Verarbeitungs­ element in dem Ring aufweist, wobei das Taktsignal und die Informationssignale von einem vorherigen Verarbei­ tungselement in dem Ring empfangen werden.13. The method of claim 11, further comprising the step of Forwarding a clock signal with the command and Information signals for a next processing has element in the ring, the clock signal and the information signals from a previous processing tion element can be received in the ring. 14. Graphikvorrichtung mit:
einer Mehrzahl von Verarbeitungselementen (202, 222, 242), die in einem Ring über einzelne Busse (250, 252, 254) zum Übertragen einer entsprechenden Mehrzahl von Signalen gekoppelt sind, wobei jedes der Mehrzahl von Verarbeitungselementen (202, 222, 242) ferner folgende Merkmale aufweist:
eine Kernverarbeitungseinheit (204, 224, 244); und
eine Schnittstelleneinheit (206, 226, 246), die gekop­ pelt ist, um die Informationen von einem vorherigen Verarbeitungselement in dem Ring auf einem der einzel­ nen Busse zu empfangen, und um Informationen zu einem nachfolgenden Verarbeitungselement in dem Ring auf ei­ nem zweiten der einzelnen Busse (250, 252, 254) weiter­ zuleiten.
14. Graphics device with:
a plurality of processing elements ( 202 , 222 , 242 ) coupled in a ring via individual buses ( 250 , 252 , 254 ) for transmitting a corresponding plurality of signals, each of the plurality of processing elements ( 202 , 222 , 242 ) further has the following characteristics:
a core processing unit ( 204 , 224 , 244 ); and
an interface unit ( 206 , 226 , 246 ) coupled to receive information from a previous processing element in the ring on one of the individual buses and information to a subsequent processing element in the ring on a second of the individual Forward buses ( 250 , 252 , 254 ).
15. Graphikvorrichtung gemäß Anspruch 14, bei der jeder der einzelnen Busse (250, 252, 254) eine Bereitschaftssi­ gnalleitung zum Übertragen eines Bereitschaftssignals von einem ersten Verarbeitungselement zu einem vorheri­ gen Verarbeitungselement in dem Ring umfaßt, das an­ zeigt, daß das erste Verarbeitungselement nicht in der Lage ist, Daten von dem vorherigen Verarbeitungselement aufzunehmen.15. A graphics device according to claim 14, wherein each of the individual buses ( 250 , 252 , 254 ) comprises a standby signal line for transmitting a standby signal from a first processing element to a previous processing element in the ring, which indicates that the first processing element is not is able to receive data from the previous processing element. 16. Graphikvorrichtung gemäß Anspruch 15, bei der die ein­ zelnen Busse (250, 252, 254) ferner folgende Merkmale aufweisen:
eine Mehrzahl von Informationssignalleitungen (250F) zum Übertragen einer Mehrzahl von Informationssignalen für eine Verwendung beim Ausführen von Graphikbefehlen durch die Graphikvorrichtung; und
eine Taktsignalleitung (250A) zum Übertragen eines Taktsignals, das mit den Informationssignalen an dem zugeordneten Verarbeitungselement empfangen wird.
16. The graphics device according to claim 15, wherein the individual buses ( 250 , 252 , 254 ) further have the following features:
a plurality of information signal lines ( 250 F) for transmitting a plurality of information signals for use in executing graphics commands by the graphics device; and
a clock signal line ( 250 A) for transmitting a clock signal which is received with the information signals at the associated processing element.
17. Graphikvorrichtung gemäß Anspruch 16, bei der das Takt­ signal und die Informationssignale, die an einem der Verarbeitungselemente (202, 222, 242) empfangen werden, zusammen zu einem nächsten Verarbeitungselement in dem Ring weitergeleitet werden.17. The graphics device of claim 16, wherein the clock signal and the information signals received at one of the processing elements ( 202 , 222 , 242 ) are forwarded together to a next processing element in the ring. 18. Graphikvorrichtung gemäß Anspruch 14, bei der eines der Verarbeitungselemente (202, 222, 242) in dem Ring ein Hostschnittstellenverarbeitungselement (202) ist, das mit einem Hostprozessor gekoppelt ist, und bei dem die Kernverarbeitungseinheit (204) des Hostschnittstellen­ verarbeitungselements (202) alle Informationen verar­ beitet, die von dem Ring und von dem gekoppelten Host­ prozessor empfangen werden, bevor die Informationen zu einem nachfolgenden Verarbeitungselement (222, 242) in dem Ring weitergeleitet werden.The graphics device of claim 14, wherein one of the processing elements ( 202 , 222 , 242 ) in the ring is a host interface processing element ( 202 ) coupled to a host processor, and wherein the core processing unit ( 204 ) of the host interface processing element ( 202 ) processes all information received from the ring and from the coupled host processor before forwarding the information to a subsequent processing element ( 222 , 242 ) in the ring.
DE1998116153 1997-05-01 1998-04-09 Bus interconnect system for graphic processing system - has individual buses coupling graphics processing elements in ring, with signal lines for transferring command signals between elements Expired - Fee Related DE19816153B4 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE19861337A DE19861337B4 (en) 1997-05-01 1998-04-09 Bus interconnect system for graphic processing system - has individual buses coupling graphics processing elements in ring, with signal lines for transferring command signals between elements

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/847,271 US5911056A (en) 1997-05-01 1997-05-01 High speed interconnect bus
US847271 1997-05-01
DE19861337A DE19861337B4 (en) 1997-05-01 1998-04-09 Bus interconnect system for graphic processing system - has individual buses coupling graphics processing elements in ring, with signal lines for transferring command signals between elements

Publications (2)

Publication Number Publication Date
DE19816153A1 true DE19816153A1 (en) 1998-11-05
DE19816153B4 DE19816153B4 (en) 2005-06-23

Family

ID=34621368

Family Applications (1)

Application Number Title Priority Date Filing Date
DE1998116153 Expired - Fee Related DE19816153B4 (en) 1997-05-01 1998-04-09 Bus interconnect system for graphic processing system - has individual buses coupling graphics processing elements in ring, with signal lines for transferring command signals between elements

Country Status (1)

Country Link
DE (1) DE19816153B4 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4536873A (en) * 1984-03-19 1985-08-20 Honeywell Inc. Data transmission system
CA1320003C (en) * 1987-12-22 1993-07-06 Steven J. Frank Interconnection system for multiprocessor structure
FR2680026B1 (en) * 1991-07-30 1996-12-20 Commissariat Energie Atomique SYSTEM ARCHITECTURE IN PROCESSOR BOARD WITH PARALLEL STRUCTURE.

Also Published As

Publication number Publication date
DE19816153B4 (en) 2005-06-23

Similar Documents

Publication Publication Date Title
DE69728002T2 (en) Control processor for a three-dimensional accelerator that has the capability of geometric decompression and method for processing geometric data in this accelerator
DE102013017640B4 (en) Distributed tiled caching
JP4195655B2 (en) Bus interconnection system
DE69908765T2 (en) METHOD AND DEVICE FOR CONTROLLING THE FLOW OF DATA BETWEEN USERS THROUGH A MEMORY CONNECTED DEVICE
DE102009046847A1 (en) More class data cache method
DE112007001135T5 (en) Sharing data through partitions in a partitionable system
DE112010003750T5 (en) Hardware for parallel command list generation
DE10030148A1 (en) Bridging device for connecting main processor to secondary buses in personal computer system has first-on-first out memories providing asynchronous data paths between primary bus terminal and secondary bus terminals
DE4132833A1 (en) HIERARCHIC CIRCUIT-INTEGRATED CACHE MEMORY
DE102016122297A1 (en) Multi-pass rendering in a screen space pipeline
JP2003529859A (en) Tile graphics architecture
DE69819648T2 (en) Zweitorpuffer
US5909562A (en) Backup FIFO in-line storage
DE102013018139A1 (en) Technique for storing common vertices
TW200303495A (en) Efficient graphics state management for zone rendering
US7629982B1 (en) Optimized alpha blend for anti-aliased render
DE102013020968A1 (en) Technique for accessing a content-addressable memory
DE102013018135B4 (en) Address bit remapping scheme for reducing an access resolution of DRAM accesses
DE102013006396A1 (en) A GRAPHIC PROCESSING UNIT USING A STANDARD PROCESSING UNIT AND A PROCESS FOR BUILDING A GRAPHIC PROCESSING UNIT
DE102013018136A1 (en) Technique for storing common vertices
DE19620263B4 (en) Data synchronization between a plurality of asynchronous data preparations
DE60224438T2 (en) AGGREGATION OF HARDWARE EVENTS IN MULTIPLE NODE SYSTEMS
DE602004009574T2 (en) SYSTEM AND METHOD FOR MODIFYING DATA TRANSMITTED FROM A SOURCE TO A DESTINATION PLACE
DE102014119048A1 (en) Execution of processing operations in a SIMD processing unit
DE68929514T2 (en) Integrated circuit with synchronous semiconductor memory, a method for accessing said memory and a system which contains such a memory.

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8127 New person/name/address of the applicant

Owner name: HEWLETT-PACKARD CO. (N.D.GES.D.STAATES DELAWARE),

8172 Supplementary division/partition in:

Ref document number: 19861337

Country of ref document: DE

Kind code of ref document: P

Q171 Divided out to:

Ref document number: 19861337

Country of ref document: DE

Kind code of ref document: P

8127 New person/name/address of the applicant

Owner name: HEWLETT-PACKARD DEVELOPMENT CO., L.P., HOUSTON, TE

8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20141101