DE69720002T2 - Methode um Daten in einem Multiprozessorrechner über einen Crossbarschalter zu übertragen - Google Patents

Methode um Daten in einem Multiprozessorrechner über einen Crossbarschalter zu übertragen

Info

Publication number
DE69720002T2
DE69720002T2 DE69720002T DE69720002T DE69720002T2 DE 69720002 T2 DE69720002 T2 DE 69720002T2 DE 69720002 T DE69720002 T DE 69720002T DE 69720002 T DE69720002 T DE 69720002T DE 69720002 T2 DE69720002 T2 DE 69720002T2
Authority
DE
Germany
Prior art keywords
data channel
data
requesting
processor
access
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69720002T
Other languages
English (en)
Other versions
DE69720002D1 (de
Inventor
Antonio Grassi
Ferruccio Zulian
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.)
Bull SAS
Original Assignee
Bull SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Bull SAS filed Critical Bull SAS
Publication of DE69720002D1 publication Critical patent/DE69720002D1/de
Application granted granted Critical
Publication of DE69720002T2 publication Critical patent/DE69720002T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1657Access to multiple memories
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Description

  • Die vorliegende Erfindung bezieht sich auf ein Verfahren zum Übertragen von Daten in einem Multiprozessor-Computersystem, und insbesondere auf ein Verfahren gemäß dem Oberbegriff des ersten Anspruchs.
  • Multiprozessor-Computersysteme, in denen eine Mehrzahl von Prozessoren unterschiedliche Operationen gleichzeitig unter Verwendung eines gemeinschaftlich verwendeten Speichers ausführen, werden verbreitet verwendet, um eine hohe Betriebsleistung zu erhalten. Ein bestimmter Typ eines Multiprozessor-Computersystems, der z. B. in der EP-A-0608663 beschrieben ist, weist einen Mehrpunktkommunikations-Kanal oder -Bus für die Übertragung von Adressen auf, mit denen die Prozessoren und der gemeinschaftlich verwendete Speicher parallel verbunden sind; jeder Prozessor und der gemeinschaftlich verwendete Speicher sind selektiv in Paaren für die Übertragung von Daten durch Punkt-zu-Punkt- Kommunikationskanäle verbunden, die mit einer Kreuzschienenverbindungseinheit verbunden sind, die durch eine geeignete Steuerungseinheit gesteuert wird; üblicherweise ist die Verbindungseinheit mit Eingangs- und Ausgangs- Pufferspeichern versehen, wobei jeder derselben mit einem entsprechenden Datenkanal verbunden ist.
  • Allgemein umfaßt jeder Prozessor einen Speicher vom Cache- Typ (sehr schnell, aber mit einer begrenzten Kapazität), der Daten entsprechend jenen speichert, die in dem (relativ langsamen) gemeinschaftlich verwendeten Speicher gespeichert sind, auf eine solche Weise, um die Anzahl von Zugriffen auf den gemeinschaftlich verwendeten Speicher (und daher auch auf den Adreßbus) statistisch zu reduzieren.
  • Wenn ein Prozessor das Lesen eines Datenelements aus dem gemeinschaftlich verwendeten Speicher anfordert, sendet dieser Prozessor (nach dem Erhalten von Zugriff auf den Adreßbus) die Adresse der angeforderten Daten entlang des Busses. Um die Konsistenz der Daten des gemeinschaftlich verwendeten Speichers sicherzustellen, die in den Cachespeichern repliziert werden, beobachten die Prozessoren kontinuierlich die Leseanforderungen (durch einen Prozeß, der als Durchschnüffeln bekannt ist), um zu prüfen, ob das angeforderte Datenelement in ihrem Cachespeicher vorhanden ist. Wenn das angeforderte Datenelement in einem Prozessor in einer Form vorhanden ist, die im Hinblick auf den (nicht weiter gültigen) Wert modifiziert ist, der in dem gemeinschaftlich verwendeten Speicher vorhanden ist, greift dieser Prozessor durch direktes Liefern des Datenelements zu dem anfordernden Prozessor ein. Wenn das angeforderte Datenelement in dem Ausgangspuffer der Verbindungseinheit verfügbar ist, die dem Datenkanal des anfordernden Prozessors entspricht, fordert die Steuerungseinheit der Verbindungseinheit einen Zugriff auf diesen Datenkanal an, zum Übertragen des Datenelements zu dem anfordernden Prozessor.
  • Die Erfinder haben erkannt, daß das bekannte Datenübertragungsverfahren, das oben beschrieben wurde, nicht ermöglicht, daß die Ressourcen des Computersystems auf optimale Weise ausgenutzt werden. Insbesondere weist es eine Dauer auf, die nicht vernachlässigbar ist, und hat eine negative Auswirkung auf das Verhalten des gesamten Computersystems.
  • Es ist die Aufgabe der vorliegenden Erfindung, die oben genannten Nachteile zu überwinden. Um diese Aufgabe zu lösen, wird ein Verfahren zum Übertragen von Daten vorgeschlagen, wie in dem ersten Anspruch beschrieben ist.
  • Weitere Charakteristika und die Vorteile des Verfahrens zum Übertragen von Daten gemäß der vorliegenden Erfindung werden durch die nachfolgende Beschreibung eines bevorzugten Ausführungsbeispiels derselben deutlich, die nur zur Information und ohne Einschränkung bereitgestellt wird, Bezug nehmend auf die beiliegenden Zeichnungen, in denen:
  • Fig. 1 ein Blockdiagramm eines Computersystems zeigt, in dem das Verfahren gemäß der vorliegenden Erfindung verwendet werden kann;
  • Fig. 2 in schematischer Form die Signale zeigt, die mit der Zuteilungseinheit ausgetauscht werden, die in Fig. 1 gezeigt ist;
  • Fig. 3 in einem Zeitgebungsdiagramm ein bekanntes Verfahren zum Übertragen von Daten in dem Computersystem zeigt, das in Fig. 1 gezeigt ist;
  • Fig. 4a und 4b in Zeitgebungsdiagrammen unterschiedliche Beispiele des Verfahrens zum Übertragen von Daten gemäß der vorliegenden Erfindung zeigen.
  • Insbesondere Bezug nehmend auf Fig. 1 ist ein Multiprozessor-Computersystem 100 dargestellt, das einen Adreßbus 105 (z. B. von dem 64-Bit-Typ) aufweist, mit dem eine Mehrzahl von Prozessoren C1, C2, C3, C4 und C5 (in dem gezeigten Beispiel fünf) parallel verbunden sind, die in einem sogenannten "Meistermodus" (master mode) arbeiten, mit der Funktion zum Steuern des Zugriffs (mit reziprokem Ausschluß) auf den Adreßbus 105; üblicherweise bestehen die Prozessoren C1-C5 aus zentralen Verarbeitungseinheiten (CPU; CPU = central processing unit) oder alternativ aus Eingabe-/Ausgabe-Steuerungen, Schnittstelleneinheiten (Brücken) für eine Verbindung mit einer Gruppe (Cluster) von Prozessoren und ähnlichem. Jeder Prozessor C1, C2, C3, C4 und C5 (oder nur einer oder mehrere derselben) ist mit einem Cachespeicher versehen, der als CM1, CM2, CM3, CM4 bzw. CM5 identifiziert ist. Ein gemeinschaftlich verwendeter Speicher 115, der üblicherweise aus einer Mehrzahl von Modulen besteht, ist ebenfalls an den Adreßbus 105 angeschlossen, durch eine Steuerungseinheit (Systemspeichersteuerung, System Memory Control oder SMC) Cm. Ein Wert (ADD), der eine Adresse eines Datenelements (des gemeinschaftlich verwendeten Speichers, eines internen Registers eines Prozessors, eines entfernten Speichers eines Clusters von Prozessoren und ähnlichem) und den Typ der angeforderten Operation (Lesen oder Schreiben) anzeigt, wird entlang des Adreßbusses 105 übertragen; üblicherweise werden die Daten nicht in einem geordneten Fluß gesteuert und können in einer beliebigen Sequenz zu einem anfordernden Prozessor geliefert werden (außer der Reihenfolge), und folglich umfaßt der ADD-Wert ferner ein Etikett (TAG), das den anfordernden Prozessor und die Transaktion identifiziert, die sich auf denselben bezieht. Die Prozessoren C1-C5 und die Speichersteuerungseinheit Cm werden gleichzeitig mit dem Adreßbus 105 verbunden, um den Wert zu empfangen, der entlang desselben übertragen wird der Zugriff der Prozessoren C1-C5 mit reziprokem Ausschluß auf den Adreßbus 105 zum Senden eines bestimmten Werts entlang desselben wird durch eine Zuteilungseinheit (ARB) 120 gesteuert.
  • Jeder Prozessor C1, C2, C3, C4, C5 und der gemeinschaftlich verwendete Speicher 115 sind durch einen Datenkommunikationskanal D1, D2, D3, D4, D5 bzw. Dm mit einer Kreuzschienenverbindungseinheit (Datenkreuzschiene, Data CrossBar oder DCB) 125 verbunden; die Verbindungseinheit 125 ist mit Eingabepuffern Bin1, Bin2, Bin3, Bin4, Bin5 und mit Ausgabepuffern Bout1, Bout2, Bout3, Bout4, Bout5 versehen, wobei jeder derselben mit einem entsprechenden Datenkanal D1, D2, D3, D4 bzw. D5 verbunden ist. Die Verbindungseinheit 125 verbindet einen Prozessor C1-C5 selektiv mit dem gemeinschaftlich verwendeten Speicher 115 oder mit einem anderen Prozessor C1-C5, ansprechend auf geeignete Befehlssignale, die durch die Speichersteuerungseinheit Cm geliefert werden; es sollte darauf hingewiesen werden, daß es möglich ist, eine Mehrzahl von Verbindungen gleichzeitig ohne ein Eingreifen zu aktivieren. Ein Datenelement und das entsprechende identifizierende Etikett werden entlang jedes Datenkanals D1-D5 und Dm übertragen. Die Datenkanäle D1-D5 weisen z. B. eine Kapazität von 64 Bit auf, während der Datenkanal Dm vorzugsweise eine Mehrfachkapazität von z. B. 256 Bit aufweist in diesem Fall findet die Übertragung von Daten zwischen dem gemeinschaftlich verwendeten Speicher 115 und der Verbindungseinheit 125 gleichzeitig in zwei 256-Bit-Blöcken (512 Bit) statt, während die Übertragung von Daten zwischen der Verbindungseinheit 125 und den Prozessoren C1-C5 durch Seriellumsetzung der Operation in eine Mehrzahl von aufeinanderfolgenden Stufen stattfindet (acht in dem entsprechenden Beispiel), wobei während jeder derselben ein 64-Bit-Block übertragen wird. Der entsprechende Prozessor C1-C5 und die Verbindungseinheit 125 werden gleichzeitig mit jedem Datenkanal D1-D5 verbunden, um den Wert zu empfangen, der entlang desselben übertragen wird; die Speichersteuerungseinheit Cm ist mit einem Abschnitt jedes Datenkanals D1-D5 verbunden, um nur die identifizierenden Etiketten zu empfangen. Die Zuteilungseinheit (ARB) 120 steuert den Zugriff zu jedem Datenkanal D1-D5, mit reziprokem Ausschluß, durch den entsprechenden Prozessor C1-C5 und durch die Verbindungseinheit 125 (auf Anforderung der Speichersteuerungseinheit Cm). Ähnliche Betrachtungen sind in dem Fall zutreffend, in dem zwei oder mehr Prozessoren direkt mit jedem Datenkanal D1-D5 verbunden sind. Im Gegensatz dazu wird der Zugriff auf den Datenkanal Dm durch die Verbindungseinheit 125 und durch den Speicher 115 direkt durch die Speichersteuerungseinheit Cm gesteuert.
  • Eine Zeitgebereinheit (TIME) 130 erzeugt ein Taktsignal Ck, das zu den Prozessoren C1-C5, zu der Speichersteuerungseinheit Cm, zu dem gemeinschaftlich verwendeten Speicher 115, zu der Zuteilungseinheit 120 und zu der Schnittstelleneinheit 125 geliefert wird, um die Operation des Computersystems 100 zu synchronisieren.
  • Das Verfahren gemäß der vorliegenden Erfindung ist jedoch ferner zur Verwendung in anderen Computersystemen geeignet, z. B. jenen, die eine unterschiedliche Anzahl von Prozessoren aufweisen, bei denen der Adreßbus und die Datenkanäle unterschiedliche Kapazitäten aufweisen, bei denen zwei oder mehr Verbindungseinheiten parallel geschaltet sind, ausschließlich mit Eingabepuffern, ausschließlich mit Ausgabepuffern oder mit keinen Puffern in der Verbindungseinheit, mit einem ähnlichen Eingabe-/Ausgabe-Puffer, der mit dem Datenkanal des gemeinschaftlich verwendeten Speichers verbunden ist, und im allgemeinen in einem Multiprozessor- Computersystem, in dem einer oder mehrere Prozessoren durch einen entsprechenden Datenkanal mit entsprechenden Verbindungseinheiten verbunden sind.
  • Bezug nehmend nun auf Fig. 2 (die vorangehend in Fig. 1 gezeigten Elemente sind durch die gleichen Bezugszeichen oder Symbole angezeigt) ist jeder Prozessor C1-C5 durch eine dedizierte Punkt-zu-Punkt-Leitung zum Senden eines Signals mit der Zuteilungseinheit 120 verbunden, die einen Zugriff auf den Adreßbus anfordert (Adreßbusanforderung oder ABRi = Address Bus Request, wobei i = C1 ... C5), und durch eine weitere dedizierte Leitung zum Empfangen eines Signals, das Zugriff zu dem Adreßbus gewährt (Adreßbusgewährung oder ABGi = Address Bus Grant). Die Zuteilungseinheit 120 ist durch eine Mehrpunktleitung zu allen Agenten verbunden (Prozessoren C1-C5 und Speichersteuerungseinheit Cm), zum Senden eines Signals, das die Gültigkeit des Wertes anzeigt, der in dem Adreßbus vorhanden ist (Frühübertragungsstart, Early Transfer Start oder EATS).
  • Jeder Prozessor C1-C5 ist mit der Zuteilungseinheit 120 durch eine dedizierte Leitung zum Senden eines Signals verbunden, das Zugriff zu dem entsprechenden Datenkanal anfordert (Datenbusanforderung, Data Bus Request oder DBRi), und durch eine weitere dedizierte Leitung zum Empfangen eines Signals, das Zugriff zu dem Datenkanal gewährt (Datenbusgewährung, Data Bus Grant oder DBGi). Die Speichersteuerungseinheit Cm ist durch eine dedizierte Leitung für jeden Datenkanal zum Senden eines Signals entlang jeder Leitung, das Zugriff zu dem entsprechenden Datenkanal anfordert (DBRj, wobei j = D1 ... D5), und durch eine weitere dedizierte Leitung für jeden Datenkanal zum Empfangen eines Signals, das Zugriff zu dem Datenkanal gewährt (DBG), mit der Zuteilungseinheit 120 verbunden. Die Speichersteuerungseinheit Cm ist ferner durch eine dedizierte Leitung für jeden Datenkanal zum Empfangen eines Signals (Reqj) entlang jeder Leitung, das die Tatsache anzeigt, daß Anforderungen nach Zugriff (von dem Prozessor) auf den entsprechenden Datenkanal vorliegen, mit der Zuteilungseinheit 120 verbunden.
  • Eine dedizierte Leitung für jeden Datenkanal wird verwendet, um ein Signal zu übertragen, das die Belegung des entsprechenden Datenkanals anzeigt (Dbusyj). Die entsprechenden Agenten (Prozessor Ci und Speichersteuerungseinheit Cm) und die Zuteilungseinheit 120 sind mit jeder dieser Leitungen verbunden; das Signal Dbusyj wird entlang der entsprechenden Leitung durch den Agenten gesendet, der Zugriff zu dem Datenkanal erhalten hat, und wird gleichzeitig durch die anderen Agenten und durch die Zuteilungseinheit empfangen. Die Dauer des Datenkanalbelegungssignals ist als eine Funktion der Länge der übertragenen Daten variabel; wenn der Datenkanal z. B. eine Kapazität von 64 Bit aufweist, anders ausgedrückt 8 Byte, und das übertragene Datenelement aus einer Cachespeicherleitung aus 64 Byte besteht, erfordert die Übertragung dieses Datenelements 8 Taktperioden. Es sollte darauf hingewiesen werden, daß ein entsprechendes Signal nicht für den Adreßbus verwendet wird, da dessen Belegung eine feste Dauer aufweist (z. B. 3 Taktperioden).
  • Die Agenten C1-C5, Cm sind durch dedizierte Kanäle (z. B. mit einer Kapazität von jeweils 2 Bit) mit der Zuteilungseinheit 120 verbunden, zum Senden eines Signals, das den Zustand der Transaktion anzeigt (AStatOutk, wobei k = C1 ... C5, Cm); die Zuteilungseinheit 120 ist durch einen Mehrpunktkanal (mit einer Kapazität von z. B. 2 Bit) mit allen Agenten C1-C5, Cm verbunden, zum Senden eines Signals, das den Gesamtzustand der Transaktion anzeigt (AStatIn), der eine Funktion des Werts der verschiedenen AStatOutk-Signale ist. Insbesondere nimmt das AStatIn- Signal einen ersten Wert an (AddressParityError = Adreßparitätsfehler), wenn ein Agent einen Paritätsfehler in der Datenbank erfaßt hat, einen zweiten Wert (Retry = Wiederversuch), wenn ein Agent nicht in der Lage ist, eine Transaktion zu prüfen, da alle seine Ressourcen belegt sind (so daß die Transaktion abgebrochen und durch den anfordernden Prozessor wiederholt werden muß), einen dritten Wert (PositiveAcknowledge = positive Bestätigung), wenn ein Agent erkennt, daß er der Empfänger der Transaktion ist, und einen vierten Wert, (NoAcknowledge Keine Bestätigung), wenn kein Agent erkennt, daß er der Empfänger der Transaktion ist.
  • Auf ähnliche Weise sind die Agenten C1-C5, Cm durch dedizierte Kanäle (mit z. B. einer Kapazität von 3 Bit) mit der Zuteilungseinheit 120 verbunden, zum Senden eines Signals (ARespOutk), das den Zustand der Schnüffelei anzeigt; Die Zuteilungseinheit 120 ist durch einen Mehrpunktkanal (mit einer Kapazität von z. B. 3 Bit) mit allen Agenten C1-C5, Cm verbunden, zum Senden eines Signals das den Gesamtzustand der Schnüffelei anzeigt (ARespIn), der eine Funktion des Werts der verschiedenen ARespOutk-Signale ist. Genauer gesagt nimmt das Signal ARespIn einen ersten Wert (Retry) an, wenn die Transaktion aus einem Grund abgebrochen werden muß (z. B. da bestimmte Ressourcen nicht verfügbar sind) und dann durch den anfordernden Prozessor wiederholt werden muß, einen zweiten Wert (Modify = Modifizieren), wenn ein Prozessor in seinem Cachespeicher das angeforderte Datenelement in einer modifizierten Form im Hinblick auf den (nicht mehr gültigen) Wert aufweist, der in dem gemeinschaftlich verwendeten Speicher vorliegt, einen dritten Wert (ReRun = erneut durchführen), wenn die Transaktion abgebrochen und für die nachfolgende Reaktivierung suspendiert werden muß (um kontinuierliche Wiederholungen der Transaktion zu verhindern), und einen vierten Wert (Null), wenn kein Prozessor das angeforderte Datenelement in seinem Cachespeicher aufweist.
  • Die vorliegende Erfindung ist jedoch ferner in der Lage, mit äquivalenten Zuteilungseinheiten angewendet zu werden, die andere Signaltypen, unterschiedliche Verbindungen zu den anderen Einheiten des Computersystems mit einer festen Belegungsdauer jedes Datenkanals und ähnliches verwenden.
  • Ein bekanntes Beispiel einer Datenübertragung, das bei dem oben beschriebenen Computersystem verwendet wird, wird durch das Zeitgebungsdiagramm in Fig. 3 dargestellt; wie üblich werden die verschiedenen Signale gesetzt/zurückgesetzt, nehmen anders ausgedrückt einen niedrigen/hohen Wert an (oder umgekehrt), für ein Zeitintervall, das eine Dauer gleich der Periode des Taktsignals Ck (oder eines Mehrfachen dieser Periode) aufweist, und jede ansteigende Flanke des Taktsignals Ck definiert den Moment, zu dem der Zustand der Signale stabil ist und erkannt (übernommen) werden kann.
  • Es wird angenommen, daß zu dem Zeitpunkt T1 ein allgemeiner Prozessor (z. B. der Prozessor, der in Fig. 1 durch C1 angezeigt ist), einen Zugriff auf den Adreßbus anfordert (durch Setzen des Signals ABRC1), zum Lesen eines Datenelements aus dem gemeinschaftlich verwendeten Speicher; das Signal ABRC1 wird bis zu einem Zeitpunkt aufrechterhalten, z. B. T3, zu dem die Zuteilungslogik Zugriff auf den Adreßbus gewährt (durch Setzen des Signals ABGC1). Die Zuteilungseinheit setzt das Signal EATS zu dem Zeitpunkt T4, um allen Agenten zu signalisieren, daß der Wert, der in dem Adreßbus zu dem nächsten Zeitpunkt vorhanden ist, gültig ist. Gleichzeitig greift der Prozessor C1 auf den Adreßbus zu, durch Senden des Werts ADD entlang desselben (Adresse des angeforderten Datenelements und des entsprechenden identifizierenden Etiketts).
  • Der Wert ADD, der in dem Adreßbus vorhanden ist, wird zu dem Zeitpunkt T5 durch alle Agenten empfangen, wobei jeder derselben ein entsprechendes Transaktionszustandssignal zu dem Zeitpunkt T7 erzeugt (dargestellt in der Figur in kommunikativer Form durch ein einzelnes Signal AStatOut). Zu dem Zeitpunkt T8 wird das kollektive Transaktionszustandssignal AStatIn durch die Zuteilungseinheit erzeugt. Jeder Agent erzeugt dann zu dem Zeitpunkt T11 ein entsprechendes Schnüffelzustandssignal (dargestellt in der Figur in kumulativer Form durch ein einzelnes Signal ARespOut). Zu dem Zeitpunkt T12 wird das kollektive Schnüffelzustandssignal ARespIn durch die Zuteilungseinheit erzeugt.
  • Es wird nun der Fall berücksichtigt, in dem das angeforderte Datenelement in dem Cachespeicher eines intervenierenden Prozessors (z. B. dem Prozessor, der durch C3 in Fig. 1 angezeigt ist) in modifizierter Form (ARespIn = Modify) vorhanden ist. In dieser Situation fordert der intervenierende Prozessor C3 Zugriff auf den entsprechenden Datenkanal an (angezeigt durch D3 in Fig. 1), zum Übertragen des modifizierten Datenelements zu der Verbindungseinheit. Genauer gesagt setzt der intervenierende Prozessor C3 zu einem Zeitpunkt T14 (allgemein nachfolgend zu dem Zeitpunkt T12) das Signal DBRC3; Die Zuteilungseinheit gewährt dem intervenierenden Prozessor C3 zu einem nachfolgenden Zeitpunkt, z. B. T16 (Setzen des Signals DBGC3), Zugriff auf den Datenkanal D3. Zu dem Zeitpunkt T18 belegt der intervenierende Prozessor C3 den Datenkanal D3 (Setzen des Signals DbusyD3) und sendet das modifizierte Datenelement; die Übertragungsoperation erfordert z. B. 8 Taktperioden, und daher wird das DbusyD3-Signal nach dem Zeitpunkt T24 zurückgesetzt und die Übertragung des modifizierten Datenelements endet zu dem Zeitpunkt T25. Gleichzeitig empfängt die Speichersteuerungseinheit von dem Datenkanal D3 das identifizierende Etikett, das dem übertragenen Datenelement zugeordnet ist (das den anfordernden Prozessor C1 anzeigt). Das modifizierte Datenelement wird nach einer Taktperiode in den Eingabepuffer der Verbindungseinheit geladen, die dem Datenkanal D3 entspricht (angezeigt durch Bin3 in Fig. 1), anders ausgedrückt von dem Zeitpunkt T19 zu dem Zeitpunkt T26. Zu dem nächsten Zeitpunkt T20 verbindet die Speichersteuerungseinheit (gemäß dem Wert des identifizierenden Etiketts, der vorangehend empfangen wurde) den Eingabepuffer Bin3 entsprechend dem Datenkanal D1 zum Übertragen des modifizierten Datenelements (von dem Zeitpunkt T20 zu dem Zeitpunkt T27) mit dem Ausgabepuffer (angezeigt durch Bout1 in Fig. 1).
  • Gleichzeitig fordert die Speichersteuerungseinheit Zugriff auf den Datenkanal D1 an und setzt das Signal DBRD1. Die Zuteilungseinheit gewährt der Speichersteuerungseinheit zu einem nachfolgenden Zeitpunkt, z. B. T22 (Setzen des Signals DBGD1) Zugriff auf den Datenkanal D1. Zu dem Zeitpunkt T24 belegt die Speichersteuerungseinheit den Datenkanal D1 (Setzen des Signals DbusyD1) zum Übertragen des modifizierten Datenelements zu dem anfordernden Prozessor D1. Das Signal DbusyD1 wird dann zu dem Zeitpunkt T30 zurückgesetzt und die Übertragung des modifizierten Datenelements endet zu dem Zeitpunkt T31.
  • Bezug nehmend nun auf Fig. 4a ist ein Beispiel einer Datenübertragung gemäß der vorliegenden Erfindung dargestellt. Die Stufen bis zu dem Laden des modifizierten Datenelements in den Eingabepuffer Bin3 sind identisch mit den oben Beschriebenen; die vorliegende Erfindung ist jedoch ebenfalls für eine Anwendung mit entsprechenden Zeitgebungssystemen geeignet, die in der Lage sind, im allgemeinen die Schritte des Anforderns des Lesens des Datenelements aus dem gemeinschaftlich verwendeten Speicher bereitzustellen, und wenn das angeforderte Datenelement in modifizierter Form in dem Cachespeicher des intervenierenden Prozessors vorhanden ist, das Übertragen des modifizierten Datenelements von dem intervenierenden Prozessor zu der Verbindungseinheit (und dann zu dem anfordernden Prozessor).
  • Bei dem Verfahren gemäß der vorliegenden Erfindung gewährt die Zuteilungseinheit der Speichersteuerungseinheit (und folglich der Verbindungseinheit) Zugriff auf den Datenkanal D1, wobei des Signals DBGD1 gesetzt wird, bevor das modifizierte Datenelement in der Verbindungseinheit verfügbar ist (insbesondere in dem Eingabepuffer Bin3). Vorzugsweise wird das Signal DBGD1 direkt nach dem Zeitpunkt (T11) gesetzt, zu dem die Zuteilungseinheit von dem intervenierenden Prozessor C3 das Signal ARespOutC3 empfängt, das anzeigt, daß das angeforderte Datenelement in seinem Cachespeicher in modifizierter Form vorhanden ist, z. B. zu dem Zeitpunkt T14. Bei einem besonders vorteilhaften Ausführungsbeispiel der vorliegenden Erfindung gewährt die Zuteilungseinheit der Speichersteuerungseinheit nur Zugriff auf den Datenkanal D1, wenn keine anderen Anforderungen (von dem entsprechenden Prozessor C1) nach Zugriff auf denselben Datenkanal vorliegen. In diesem Fall werden die anderen Zugriffsanforderungen zuerst erfüllt, wonach die Zuteilungseinheit der Speichersteuerungseinheit Zugriff auf den Datenkanal D1 gewährt, auf eine solche Weise, um das unnötige Blockieren anderer Transaktionen zu vermeiden.
  • Zu dem Zeitpunkt T16 belegt die Speichersteuerungseinheit den Datenkanal D11, wobei das Signal DbusyD1 gesetzt wird. Sobald das modifizierte Datenelement in dem Eingabepuffer Bin3 (Zeitpunkt T19) verfügbar ist, verbindet die Speichersteuerungseinheit den Eingabepuffer Bin3 mit dem Ausgabepuffer Bout1. Das Datenelement wird zu dem nachfolgenden Zeitpunkt T20 zu dem Ausgabepuffer Bout1 und zu dem Datenkanal D1 übertragen. Vorzugsweise erfolgt die Übertragung von dem Eingabepuffer Bin3 zu dem Datenkanal D1 sofort, da es nicht notwendig ist, das Datenelement in dem Ausgabepuffer Bout1 zu speichern (da der Zugriff auf den Datenkanal D1 bereits gewährt wurde); auf diese Weise ist der Ausgabepuffer Bout1 transparent und arbeitet ausschließlich als eine Treiberschaltung des Datenkanals D1. Das Signal DbusyD1 wird dann zu dem Zeitpunkt T26 zurückgesetzt und die Übertragung des modifizierten Datenelements endet zu dem Zeitpunkt T27.
  • Das oben beschriebene Verfahren reduziert die Dauer der Datenübertragungsoperation. Diese Lösung macht es insbesondere unnötig, daß die Speichersteuerungseinheit Zugriff auf den Datenkanal D1 anfordert; zusätzlich dazu erfolgt auf diese Weise eine Zeiteinsparung, die erforderlich ist, um das modifizierte Datenelement zu dem Ausgabepuffer Bout1 zu übertragen und um der Speichersteuerungseinheit Zugriff auf den Datenkanal D1 zu gewähren. Das Beispiel des Ausführungsbeispiels, das in Fig. 4a dargestellt ist, liefert insbesondere eine Reduzierung um 4 Taktperioden im Vergleich zu dem bekannten Verfahren, das in Fig. 3 dargestellt ist; allgemein liefert das Verfahren gemäß der vorliegenden Erfindung eine Zeiteinsparung im Bereich von 20% über die gesamte Operation des Übertragens des modifizierten Datenelements von dem intervenierenden Prozessor zu dem anfordernden Prozessor.
  • Vorzugsweise ist das Gewähren von Zugriff auf den Datenkanal D1 für die Speichersteuerungseinheit nicht unbedingt. Genauer gesagt wird das Signal DBGD1 nicht durch die Zuteilungseinheit gesetzt gehalten, sondern wird innerhalb der Speichersteuerungseinheit gespeichert (um am Ende der Operation des Übertragens des modifizierten Datenelements abgebrochen zu werden). Wenn eine unterschiedliche Anforderung nach Zugriff auf den Datenkanal D1 (von dem entsprechenden Prozessor C1) vor der Fertigstellung der Operation des Übertragens des modifizierten Datenelements (zu dem Zeitpunkt T16 z. B.) empfangen wird, meldet die Zuteilungseinheit diese Anforderung der Speichersteuerungseinheit (durch Setzen des Signals ReqD1), wie in Fig. 4b dargestellt ist. Die Speichersteuerungseinheit entscheidet dann gemäß dem Zustand der Übertragungsoperation, ob der Zugriff auf den Datenkanal D1 beibehalten werden soll (z. B. weil die Operation fortgesetzt wird) oder ob der Zugriff freigegeben werden soll. In dem letzteren Fall gibt die Speichersteuerungseinheit den Datenkanal D1 durch Zurücksetzen des Signals DbusyD1 frei (zu dem Zeitpunkt T17). Wenn das Signal Req&sub1; zurückgesetzt wird, da keine anderen Anforderungen nach Zugriff auf den Datenkanal D1 vorliegen (z. B. zu dem Zeitpunkt T19), fordert die Speichersteuerungseinheit wiederum Zugriff auf den Datenkanal D1 an, wodurch das Signal DBRD1 zu dem nächsten Zeitpunkt T20 gesetzt wird. Die Zuteilungseinheit gewährt der Speichersteuerungseinheit zu einem nachfolgenden Zeitpunkt, z. B. T22 (durch Setzen des Signals DBGD1), Zugriff auf den Datenkanal D1. Zu dem Zeitpunkt T24 belegt die Speichersteuerungseinheit den Datenkanal D1 (durch erneutes Setzen des Signals DbusyD1), um das modifizierte Datenelement, sobald dasselbe verfügbar ist, zu dem anfordernden Prozessor C1 zu übertragen. In dem Fall, der in der Figur gezeigt ist, bei dem das Laden des modifizierten Datenelements in den Eingabepuffer Bin3 bereits begonnen hat (Zeitpunkt T19), wird das modifizierte Datenelement vorzugsweise in den Ausgabepuffer Bout1 (von dem Zeitpunkt T20 zu dem Zeitpunkt T27) auf solche Weise übertragen, daß der Eingabepuffer Bin3 für die anderen Daten freigegeben wird. Das modifizierte Datenelement wird dann zu dem Zeitpunkt T24 zu dem Datenkanal D1 übertragen; das Signal DbusyD1 wird daher zu dem Zeitpunkt T30 zurückgesetzt und die Übertragung des modifizierten Datenelements endet zu dem Zeitpunkt T31.
  • Offensichtlich können Fachleute auf dem Gebiet zahlreiche Modifikationen und Änderungen an dem Verfahren zum Übertragen von Daten durchführen, das oben beschrieben wurde, um mögliche und spezifische Anforderungen zu erfüllen; alle derartigen Modifikationen sind innerhalb des Schutzbereichs der Erfindung enthalten, der durch die nachfolgenden Ansprüche definiert wird.

Claims (10)

1. Verfahren (T1-T27) zum Übertragen von Daten in einem Computersystem (100), das eine Mehrzahl von Prozessoren (C1-C5) und einen gemeinschaftlich verwendeten Speicher (115) aufweist, wobei zumindest einer der Prozessoren (C1-C5) einen Cachespeicher (CM1-CM5) zum Speichern entsprechender Daten des gemeinschaftlich verwendeten Speichers (115), eine Mehrzahl von Datenkanälen (D1-D5), wobei zumindest einer der Prozessoren (C1-C5) mit denselben verbunden ist, und eine Verbindungseinrichtung (125, Cm) zum selektiven Verbinden der Datenkanäle (D1-D5) aufweist, wobei das Verfahren folgende Schritte aufweist:
a) Anfordern (T1-T5) des Lesens eines Datenelements aus dem gemeinschaftlich verwendeten Speicher (115) durch einen anfordernden Prozessor (C1),
b) Übertragen (T14-T26) des modifizierten Datenelements von einem intervenierenden Prozessor (C3) zu der Verbindungseinrichtung (125, Cm) und nachfolgend (T20-T27) an den anfordernden Prozessor (C1), in dem Fall (T5-T12), in dem das angeforderte Datenelemente in modifizierter Form in dem Cachespeicher (CM3) des intervenierenden Prozessors (C3) vorliegt,
gekennzeichnet durch folgenden Schritt:
c) Gewähren (T14) eines Zugriffs für die Verbindungseinrichtung (125, Cm) zu dem Datenkanal (D1), der dem anfordernden Prozessor (C1) entspricht, bevor das Datenelement in der Verbindungseinrichtung (125, Cm) verfügbar ist (T19).
2. Verfahren (T1-T27) gemäß Anspruch 1, bei dem das Computersystem (100) einen Adreßbus (105) umfaßt, mit dem die Prozessoren (C1-C5) verbunden sind, wobei der Schritt (a) folgenden Schritt aufweist
(a1) Senden (T4-T5) eines Werts (ADD) zu dem Adreßbus (105) durch den anfordernden Prozessor (C1), wobei der Wert eine Adresse des angeforderten Datenelements und ein identifizierendes Etikett des anfordernden Prozessors (C1) enthält,
und wobei der Schritt (b) folgende Schritte aufweist
(b1) Überwachen (T5) des Inhalts des Adreßbusses (105) durch jeden der Prozessoren (C1-C5) zum Überprüfen (T11-T12), ob das angeforderte Datenelement in modifizierter Form in dessen Cachespeicher (CM1-CM5) vorliegt,
(b2) Übertragen (T14-T25) des modifizierten Datenelements und des identifizierenden Etiketts von dem intervenierenden Prozessor (C3) an den intervenierenden Datenkanal (D13), und
(b3) Empfangen (T18-T25) des identifizierenden Etiketts von dem intervenierenden Datenkanal (D3) durch die Verbindungseinrichtung (125, Cm) zum Verbinden (T20-T27) des intervenierenden Datenkanals (D3) und des anfordernden Datenkanals (D1).
3. Verfahren (T1-T27) gemäß Anspruch 2, bei dem die Verbindungseinrichtung (125, Cm) eine Mehrzahl von Eingabepuffern (Bin1-Bin5) umfaßt, wobei jeder mit einem entsprechenden Datenkanal (D1-D5) verbunden ist, wobei das Verfahren (T1-T27) nach dem Schritt (b3) ferner den Schritt (b4) des Übertragens (T19-T26) des modifizierten Datenelements von dem intervenierenden Datenkanal (D3) zu dem entsprechenden Eingabepuffer (Bin3) aufweist.
4. Verfahren (T1-T27) gemäß Anspruch 3, das ferner nach dem Schritt (b4) den Schritt (b5) des Übertragens (T20-T27) des modifizierten Datenelements direkt von dem Eingabepuffer (Bin3), der dem intervenierenden Datenkanal (D3) entspricht, zu dem anfordernden Datenkanal (D1) aufweist.
5. Verfahren (T2-T27) gemäß einem der Ansprüche 1 bis 4, bei dem der Schritt (c) den Schritt des Gewährens (T14) eines Zugriffs zu dem anfordernden Datenkanal (D1) für die Verbindungseinrichtung (126, Cm) aufweist, sofort nachdem sichergestellt wurde (T11), daß das angeforderte Datenelement in modifizierter Form in dem Cachespeicher (CM3) des intervenierenden Prozessors (C3) vorliegt.
6. Verfahren (T1-T27) gemäß einem der Ansprüche 1 bis 5, bei dem der Schritt (c) den Schritt des Gewährens (T14) eines Zugriffs zu dem anfordernden Datenkanal (D1) für die Verbindungseinrichtung (125, Cm) aufweist, nur wenn keine anderen Anforderungen nach Zugriff zu dem anfordernden Datenkanal (D1) vorliegen.
7. Verfahren (T1-T31) gemäß einem der Ansprüche 1 bis 6, das nach dem Schritt (c) und vor der Beendigung von Schritt (b) zusätzlich folgenden Schritt aufweist:
(d) Benachrichtigen (T16-T18) der Verbindungseinrichtung (125, Cm) über das Vorhandensein anderer Anforderungen nach einem Zugriff zu dem anfordernden Datenkanal (D1).
8. Verfahren (T1-T31) gemäß Anspruch 7, das nach dem Schritt (d) zusätzlich folgende Schritte aufweist:
(e) das Freigeben (T17) eines Zugriffs zu dem anfordernden Datenkanal (D1) durch die Verbindungseinrichtung (125, Cm),
(f) das Anfordern (T20-T22) eines Zugriffs zu dem anfordernden Datenkanal (D1) durch die Verbindungseinrichtung (125, Cm), wenn (T19) keine anderen Anforderungen nach einem Zugriff zu dem anfordernden Datenkanal (C1) mehr vorliegen.
9. Verfahren (T1-T27) gemäß Anspruch 3 oder 4, bei dem die Verbindungseinrichtungen (125, Cm) eine Mehrzahl von Ausgabepuffern (Bout1-Bout5) umfassen, wobei jeder derselben mit einem entsprechenden Datenkanal (D1-D5) verbunden ist, wobei das Verfahren nach dem Schritt (b4) zusätzlich den Schritt (b5') des Übertragens (T20-T28) des modifizierten Datenelements von dem Eingabepuffer (Bin3), der dem intervenierenden Datenkanal (D3) entspricht, zu dem Ausgabepuffer (Bout1), der dem anfordernden Datenkanal (D1) entspricht und nachfolgend (T24-T31) an den anfordernden Datenkanal (D1) aufweist.
10. Computersystem (100), das eine Mehrzahl von Prozessoren (C1-C5) und einen gemeinschaftlich verwendeten Speicher (115) aufweist, wobei zumindest einer der Prozessoren (C1-C5) einen Cachespeicher (CM1-CM5) zum Speichern entsprechender Daten des gemeinschaftlich verwendeten Speichers (115), eine Mehrzahl von Datenkanälen (C1-C5), wobei zumindest einer der Prozessoren (C1-C5) mit jedem derselben verbunden ist, eine Verbindungseinrichtung (125, Cm) zum selektiven Verbinden der Datenkanäle (D1-D5), Steuereinrichtung (120, Cm), die in einer Interventionssituation, in der ein anfordernder Prozessor (C1) das Lesen eines Datenelements aus dem gemeinschaftlich verwendeten Speicher (115) anfordert und das angeforderte Datenelement in modifizierter Form in dem Cachespeicher (CM3) eines intervenierenden Prozessors (C3) vorliegt, zum Übertragen des modifizierten Datenelements von dem intervenierenden Prozessor (C3) zu der Verbindungseinrichtung (125, Cm) und nachfolgend zu dem anfordernden Prozessor (C1) geeignet ist, dadurch gekennzeichnet, daß
in der Interventionssituation die Steuerungseinrichtung (120, Cm) ferner geeignet ist, einen Zugriff zu dem Datenkanal (D1), der dem anfordernden Prozessor (C1) entspricht, für die Verbindungseinrichtungen (125, Cm) zu gewähren (T14), bevor das modifizierte Datenelement in der Verbindungseinrichtung (125, Cm) verfügbar ist (T19).
DE69720002T 1997-12-11 1997-12-11 Methode um Daten in einem Multiprozessorrechner über einen Crossbarschalter zu übertragen Expired - Lifetime DE69720002T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP97830656A EP0923032B1 (de) 1997-12-11 1997-12-11 Methode um Daten in einem Multiprozessorrechner über einen Crossbarschalter zu übertragen

Publications (2)

Publication Number Publication Date
DE69720002D1 DE69720002D1 (de) 2003-04-24
DE69720002T2 true DE69720002T2 (de) 2003-10-16

Family

ID=8230884

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69720002T Expired - Lifetime DE69720002T2 (de) 1997-12-11 1997-12-11 Methode um Daten in einem Multiprozessorrechner über einen Crossbarschalter zu übertragen

Country Status (2)

Country Link
EP (1) EP0923032B1 (de)
DE (1) DE69720002T2 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE60038172T2 (de) 2000-09-25 2009-02-26 Bull S.A. Verfahren um Daten in einem Verarbeitungsystem zu übertragen

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE451219B (sv) * 1986-03-05 1987-09-14 Stiftelsen Inst Mikrovags Dataanordning fremst avsedd for exekvering av program i form av soktred, s k or parallel execution
JPH0776942B2 (ja) * 1991-04-22 1995-08-16 インターナショナル・ビジネス・マシーンズ・コーポレイション マルチプロセッサ・システムおよびそのデータ伝送装置
EP0608663B1 (de) * 1993-01-25 1999-03-10 Bull HN Information Systems Italia S.p.A. Multiprozessorsystem mit gemeinsamem Speicher

Also Published As

Publication number Publication date
EP0923032B1 (de) 2003-03-19
DE69720002D1 (de) 2003-04-24
EP0923032A1 (de) 1999-06-16

Similar Documents

Publication Publication Date Title
DE69936060T2 (de) Verfahren und Vorrichtung für eine verbesserte Schnittstelle zwischen Computerkomponenten
DE68920435T2 (de) Steuereinheit für den speicher.
DE69323861T2 (de) Multiprozessorsystem mit gemeinsamem Speicher
DE3909948C2 (de)
DE19580990C2 (de) Verfahren und Einrichtung zum Ausführen verzögerter Transaktionen
DE69627528T2 (de) Stoss-rundsenden über einen pci-bus
DE69018100T2 (de) Datenübertragung über Busadressleitungen.
DE69825915T2 (de) Verfahren und vorrichtung zur umschaltung zwischen quellen-synchron-takt/- und gemeinsam-takt-datenübertragungs-modi in einem mehragent-übertragungs-system
DE102005009174B4 (de) Bussystem, zugehöriges Busbelegungszuteilverfahren und Datenübertragungsverfahren
DE3689198T2 (de) Systembus für Kommunikation zwischen Prozessoren.
DE69132195T2 (de) System für verteilte Mehrfachrechnerkommunikation
DE102014225253B4 (de) Reallokation für eine Systembustransaktionswarteschlange
DE69108434T2 (de) Mehrgruppen-Signalprozessor.
DE69129960T2 (de) System zur Gestaltung eines geteilten Speichers
DE69223304T2 (de) Arbitrierungsverriegelungverfahren und -vorrichtung für einen entfernten Bus
DE3485980T2 (de) Datenverarbeitungsapparat zur verbindung mit einem gemeinsamen uebertragungsbus in einem datenverarbeitungssystem.
DE4018481C2 (de)
DE69230483T2 (de) Quadraturbusprotokoll zum Ausführen von Transaktionen in einer Rechneranordnung
DE60314641T2 (de) Verfahren, system und programm zur konfiguration von teilnehmern auf einem bus fürein-/ausgabeoperationen
DE69720002T2 (de) Methode um Daten in einem Multiprozessorrechner über einen Crossbarschalter zu übertragen
DE3200042C2 (de)
DE112020005466T5 (de) Bussystem und verfahren zum betrieb eines bussystems
DE4100018C2 (de) Verfahren zur Bedienungsbedarfsmitteilung zwischen zwei Stationen eines Computerbusses
EP1308846B1 (de) Datenübertragungseinrichtung
DE69126937T2 (de) Multiprozessor-Doppelbussystem mit minimalen Zugriffskonflikten

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: BULL S.A., LES CLAYES SOUS BOIS, FR