DE19910451C2 - Multiprozessor - Google Patents

Multiprozessor

Info

Publication number
DE19910451C2
DE19910451C2 DE1999110451 DE19910451A DE19910451C2 DE 19910451 C2 DE19910451 C2 DE 19910451C2 DE 1999110451 DE1999110451 DE 1999110451 DE 19910451 A DE19910451 A DE 19910451A DE 19910451 C2 DE19910451 C2 DE 19910451C2
Authority
DE
Germany
Prior art keywords
processor
data
multiprocessor
execution unit
execution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE1999110451
Other languages
English (en)
Other versions
DE19910451A1 (de
Inventor
Trong Son Dao
Petra Leber
Jens Leenstra
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE19910451A1 publication Critical patent/DE19910451A1/de
Application granted granted Critical
Publication of DE19910451C2 publication Critical patent/DE19910451C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Multi Processors (AREA)

Description

Die Erfindung betrifft einen Multiprozessor nach dem Oberbegriff des Patentanspruchs 1.
Fig. 1 zeigt einen einfachen, superskalaren Prozessor 10 mit einer einzelnen Befehlswarteschlange und einem einzelnen, vereinheitlichten Cachespeicher. Diese Erfindung kann auf weitaus kompliziertere Prozessorstrukturen angewendet werden. Die Befehle werden aus dem Cachespeicher- Bereich 12, der einen einzelnen Port hat, abgerufen und über den Ergebnisbus 16 in die Befehlswarteschlange 14 geladen. Die Breite der Daten, die aus dem Cachespeicher-Bereich gelesen werden und die Breite des Ergebnisbusses ist viel größer als ein einzelner 32- Bit-Befehl, z. B. 256 Bits. Somit könnten bis zu 4 Befehle pro Lesezyklus aus dem Cachespeicher erledigt werden, der in dieser Abbildung ein einzelner Maschinenzyklus ist. Drei Ausführungseinheiten empfangen Bereitbefehle von der Dispatch-Logik mit einer Geschwindigkeit von bis zu einem Befehl pro Ausführungseinheit und Maschinenzyklus. Diese Einheiten sind eine Verzweigungseinheit 18, eine Festkommaausführungseinheit mit Festkommaregisterdatei 20 und einer Gleitkommaeinheit mit Gleitkommaregisterdatei 22. Die Speicherbefehle, welche die Berechnung einer effektiven Adresse erfordern, werden an die Festkommaeinheit geschickt, und die daraus resultierende Adresse wird dann an die Speicherverwaltungseinheit (MMU) 24 gesendet.
Ebenso werden die Befehlsadressen in der Befehlsabrufeinheit 26 erzeugt. Sowohl die MMU als auch die Befehlsabrufeinheit senden die Adressen an die Cachespeicher-Etiketten 28 und somit an die Bereichsadressierungslogik. Ein Treffer bei den Etikettenergebnissen in den Daten aus dem Bereich wird in dem Ergebnisbus 16 plaziert. Ein Verfehlen bei den Cachespeicher-Etiketten resultiert in einer Speicheranforderung, die in die Speicherwarteschlange 30 gesetzt und über die Busschnittstelleneinheit an den externen Adreß- und Datenbus 32 übertragen wird. Jede die­ ser Einheiten ist in der Lage, gleichzeitig zu operieren, was in einem superskalaren Pipeline-Prozessor mit einer Spitzenausführungsrate von 3 Befehlen pro Zyklus resultiert. Wenn die Gleitkomma-Ausführungseinheit 22 eine Latenz von 2 Zyklen hat, dann wäre die Pipelinereihenfolge: abrufen, verschicken, decodieren, ausführen 1, ausführen 2 und writeback.
Fig. 2 zeigt diesen einfachen Prozessor 10a, der durch eine sättigende, arithmetische Multimedia- Befehlsausführungseinheit 34, SIMD, mit ihrer Registerdatei erweitert worden ist. Die Operation dieser Einheit ist ähnlich wie die der Gleitkommaeinheit 22. Die Befehle für diese Einheit treten normalerweise nicht in unmittelbarer Nähe von Gleitkommaoperationen in der Ausführungssequenz von gewöhnlichen Programmen auf. In der Tat sind in der IntelTM MMX Architektur die MMX-Register in dem Gleitkomma- Registerraum abgebildet, und es ist eine explizite Kontextschaltung notwendig, um MMX-Befehle zu ermöglichen, nachdem Gleitkommabefehle ausgeführt wurden und umgekehrt. Wird ein Multiprozessor in eine einzelne Form gesetzt, so würde dies einen Chip ähnlich dem ergeben, der in den Fig. 3 oder 4 abgebildet ist. Offensichtliche gemeinsame Elemente, wie zum Beispiel die Schnittstelle 36 im externen Bus, werden gemeinsam benutzt. Das konventionelle Design würde auch nur ein Objekt auf dem Chip der Taktgenerierung haben, der Testprozessor oder die Grenzenabtastungssteuerung usw. Es ist zu beachten, daß an­ genommen wird, daß die Etikettenlogik und die MMU die richtige gemeinsame Datenbenutzungsprotokoll-Logik (z. B. MESI) für einen Multiprozessor haben. Umfangreiche Änderungen sind möglich, wenn mehr als ein Prozessor in eine Form gelegt wird, wie zum Beispiel das Hinzufügen zusätzlicher Stufen zur Cachespeicherung oder mehr externe Busse. Ein solcher Chip wäre groß und hätte nicht die doppelte Leistung eines einzelnen Prozessors aufgrund der bekannten Multiprozessoreffekte. Wenn jedoch der Bereich deutlich reduziert werden könnte, dann wären die Befehle, die pro Sekunde pro Siliziumbereich ausgeführt würden, d. h. Kosten/Leistung, gleich oder besser als bei einem Einzel­ prozessor. Dies könnte geschehen, indem bereichsintensive Einheiten, z. B. die Gleitkommaeinheit, zwischen den beiden Prozessoren gemeinsam benutzt werden.
Unglücklicherweise ist bereits die Datenzuordnung zwischen zwei CPUs ein komplexes Problem. Besonders im Fall einer Gleitkommaeinheit, wo Befehle sehr lange brauchen, kann, sobald die erste CPU von der Gleitkommaeinheit bedient worden ist, die zweite CPU eine lange Zeit aussetzen, selbst wenn die zweite CPU einige kurze Befehle hat, die ausgeführt werden müssen. Wenn jedoch die zweite CPU Priorität hat, die kurze Befehle ausgibt, dann kann andererseits die erste CPU niemals bedient werden und muß lange Zeit aussetzen.
Die Schnittstelle, die entwickelt werden muß, damit die eine oder die andere CPU aussetzt, ist ebenfalls eine komplexe Aufgabe und sehr anfällig für Fehler.
Die Datenzuordnung unter den Prozessoren mit komplexen Schemata führt manchmal zu Blockierungssituationen, die dazu neigen, zu spät erkannt zu werden, z. B. zum Zeitpunkt des Versands oder des Austestens der Hardware. Die Behebung solcher Fehler ist zeitraubend und teuer.
Die Leistung eines Multiprozessorsystems, das zwei oder mehr CPUs enthält, kann sich erheblich verschlechtern, wenn eine gleitkommaintensive Anwendung (bei der viele kurze und schnelle Befehle benutzt werden) gleichzeitig mit einer anderen Anwendung läuft, die einige lang laufende Gleitkommabefehle benutzt. Dieser Warteschlangenbildungseffekt wird auch in konventionellen Multiprozessorsystemen beobachtet, die einen Speicherbus oder ein Speichersystem gemeinsam benutzen, z. B. den gleichen L2-Cachespeicher gemeinsam benutzen.
Obgleich die gemeinsame Benutzung eines Speichersystems in bekannten Multiprozessorsystemen bereits mit Schwierigkeiten verbunden sein kann, ist schließlich die gemeinsame Benutzung einer Verarbeitungseinheit, z. B. eine Gleitkomma-, Multimedia- oder eine Datenkompressionseinheit, eine weitaus komplexere Aufgabe. Diese Einheiten haben eigene Registerdateien, Status­ register, Programmzähler usw. und haben alle Sequentialisie­ rungseffekte. Demgemäß erfordert die gemeinsame Benutzung wenigstens einen separaten Satz Register mit einer speziellen Zuordnung für jede CPU. Vom Gesichtspunkt der Implementierung aus gibt es viele Probleme, z. B. Bereich und Zeitmessung mit einem extra Bedarf an Datenmultiplexern und einer Synchronisierungssteuerlogik.
Ein aus der US 3,980,992 A bekannter Multiprozessor weist vier gleiche Prozessoren auf, die gemeinsam eine Ausführungseinheit benutzen. Bei der von allen vier Prozessoren gemeinsam benutzten Ausführungseinheit handelt es sich insbesondere um die sogenannte ALU (Arithmetic Logic Unit), die arithmetische Operationen auf der Basis von Daten durchführt, die von den vier Prozessoren an diese übermittelt werden. In einem ersten Taktzyklus werden Daten des ersten Prozessors von der ALU verarbeitet, in einem zweiten Taktzyklus Daten des zweiten Prozessors, in einem dritten Taktzyklus Daten des dritten Prozessors, in einem vierten Taktzyklus Daten des vierten Prozessors und in einem fünften Taktzyklus wiederum Daten des ersten Prozessors usw.
An diesem bekannten Multiprozessor ist nachteilig, daß die Daten eines jeden Prozessors nur in jedem vierten Taktzyklus verarbeitet werden. Durch die gemeinsame Benutzung einer einzigen ALU von vier Prozessoren sinkt die Verarbeitungsgeschwindigkeit eines jeden Prozessors gegenüber einem Prozessor, der eine eigene ALU aufweist, auf 25% oder weniger.
Aufgabe der Erfindung ist die Bereitstellung eines Multiprozessors mit einer platzsparenden und damit kostengünstigen Ausführungseinheit, die dennoch von den Prozessoren des Multiprozessors in günstiger Weise gemeinsam genutzt werden kann.
Diese Einheit kann eine Gleitkomma- und/oder eine Datenkompressionseinheit oder eine andere Einheit sein, deren Flächenbedarf auf dem Chip im Verhältnis zur Häufigkeit der Nutzung durch die Prozessoren ungünstig ist.
Die Aufgabe wird durch einen Multiprozessor mit den Merkmalen des Anspruchs 1 gelöst. Vorteilhafte Ausgestaltungen der Erfindung sind in den Unteransprüchen angegeben.
Die Effizienz bekannter Multiprozessoren wird erfindungsgemäß verbessert, indem Ausführungseinheiten, die weniger oft von dem Multiprozessor benötigt werden, gestrippt und von mehreren symmetrischen Mikroprozessoren des Multiprozessors gemeinsam benutzt werden. Hierdurch kann jede CPU einen kleineren Bereich belegen; die symmetrische Struktur der Prozessoren im Multiprozessor und die damit einhergehenden Vorteile einer einfacheren Softwarestruktur für Multiprozessoren bleiben dennoch erhalten.
KURZBESCHREIBUNG DER ZEICHNUNGEN
Zum besseren Verständnis der vorliegenden Erfindung und für weitere Details und Vorteile derselben wird jetzt Bezug auf die folgende ausführliche Beschreibung in Verbindung mit den beiliegenden Zeichnungen genommen, in denen
Fig. 1 ein Schema eines typischen Mikroprozessors zeigt;
Fig. 2 einen typischen Mikroprozessor mit einer Multimedia-Befehlseinheit zeigt;
Fig. 3 zwei Mikroprozessoren auf einem Einzelchip zeigt, jeden mit seiner eigenen FPU und FXU;
Fig. 4 zwei Mikroprozessoren auf einem Einzelchip zeigt, jeden mit seiner eigenen FPU, FXU und MMXU;
Fig. 5 zwei Mikroprozessoren zeigt, die gemeinsam eine einzelne FPU gemäß der vorliegenden Erfindung zeigt; und
Fig. 6 die FPU zeigt, wie diese in Fig. 5 abgebildet ist, wobei ihr Pipeline-Feedbackschema ausführlicher dargestellt ist.
DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
Die Fig. 5 und 6 zeigen ein Ausführungsbeispiel der vorliegenden Erfindung. Es ist bekannt, daß in den meisten Programmen Fließkommabefehle in Bündeln auftreten, die durch Festkomma- und Steuerbefehle getrennt sind. Je öfter der Betriebssystemcode ausgeführt wird, desto weniger häufig ist die Frequenz bei der Ausführung von Fließkommabefehlen. Unter Verwendung dieser Betrachtung kann der Bereich des Chips 10, der in Fig. 3 abgebildet ist, erheblich reduziert werden, indem dieser neu struk­ turiert wird, wie dies in Fig. 5 schematisch dargestellt ist.
Der schematisch dargestellte Multiprozessor 100, der in Fig. 5 abgebildet ist, enthält einen ersten Prozessor 101, einen zweiten Prozessor 102, einen Multiplexer 105, eine Fließkommaeinheit 106 und einen Demultiplexer 107. Der erste Prozessor 101 wird über einen ersten Datenbus 103 mit dem Eingang des Multiplexers 105 verbunden, und der zweite Prozessor 102 wird über einen zweiten Datenbus 104 mit dem Eingang des Multiplexers 105 verbunden. Der Ausgang des Multiplexers 105 wird mit dem Eingang der Fließkommaeinheit 106 verbunden, und der Ausgang der Fließkommaeinheit 106 wird mit dem Eingang des Demultiplexers 107 gekoppelt. Der Demultiplexer 107 enthält zwei Ausgänge, von denen einer über einen Datenbus 107a mit dem ersten Prozessor 101 verbunden ist und über einen Datenbus 107b mit dem zweiten Prozessor 102 gekoppelt ist. Die Fließkommaeinheit 106 enthält mehrere Filterstufen, wie dies durch eine erste Stufe 106_1, eine zweite Stufe 106_2, eine dritte Stufe 106_3 und weitere Stufen, falls notwendig, angegeben ist. Der Ausgang des Multiplexers 105 ist über einen Datenbus 106a mit dem Eingang der ersten Filterstufe 106_1 verbunden, der Ausgang der ersten Filterstufe 106_1 ist über einen Datenbus 106b mit dem Eingang der zweiten Filterstufe 106_2 verbunden, und der Ausgang der zweiten Stufe ist über einen Datenbus 106c mit dem Eingang der dritten Stufe 106_3 verbunden usw. Der Ausgang der Endstufe 106_n der Fließkommaeinheit 106 ist über einen Datenbus 109 mit dem Eingang des Demultiplexers 107 verbunden.
Wie aus Fig. 5 hervorgeht, wird die Fließkommaeinheit aus jedem Prozessor 101 und 102 entfernt, und in jedem Prozessor verbleibt nur eine lokale Registerdatei (ohne Abbildung). Die einzelne Fließkommaeinheit wird an eine optimale physische Stelle zwischen den beiden Prozessoren gesetzt, um die Bewegungszeit der elektrischen Signale von jedem Prozessor zu der Fließkommaeinheit 106 auszugleichen. Bei jedem ungeraden Taktzyklus überträgt der erste Prozessor 101 Daten, die von der Fließkommaeinheit 106 zu verarbeiten sind, über den Multiplexer 105. Auf der anderen Seite überträgt der zweite Prozessor 102 bei jedem geraden Taktzyklus seine Daten, die von der Fließkommaeinheit 106 zu verarbeiten sind, über den Multiplexer 105. Nachdem die zu verarbeitenden Daten vollständig von der Fließ­ kommaeinheit 106 verarbeitet worden sind, werden die verarbeiteten Daten an den Demultiplexer 107 übertragen. Bei jedem ungeraden Taktzyklus werden die Daten von dem ersten Prozessor, die bereits vollständig von der Fließkommaeinheit 106 verarbeitet worden sind, über den Demultiplexer 107 und den Datenbus 107a zurück an den ersten Prozessor 101 übertragen. Bei jedem geraden Taktzyklus werden die Daten von dem zweiten Prozessor 102, die bereits vollständig von der Fließkommaeinheit 106 ver­ arbeitet worden sind, vom Ausgang der Fließkommaeinheit 106 über den Demultiplexer 107 und den Datenbus 107b zurück an den zweiten Prozessor 102 übertragen. Gemäß der Erfindung ist nach jeweils zwei Taktzyklen jeder Prozessor (CPU) in der Lage, auf die Fließkommaeinheit 106 zuzugreifen, und es muß kein Prozessor aussetzen. Da in den meisten Programmen Fließkommabefehle im Vergleich mit Festkommabefehlen weitaus weniger häufig vorkommen, sind die beiden CPUs die meiste Zeit in der Lage, mit ihrer normalen Leistung zu arbeiten, und nur wenn die Fließkommabefehle verarbeitet werden müssen, besteht der Engpaß einer einzelnen Fließkommaeinheit bei zwei CPUs. Der Vorschlag aus der Erfindung ermöglicht daher eine deutliche Reduzierung von Kosten/Leistung bei einem solchen Einchip-Multiprozessor.
Fig. 6 zeigt ausführlicher die Fließkommaeinheit 106 aus Fig. 5. Gemäß der Erfindung werden die resultierenden Daten von jeder zweiten Filterstufe zurück zum Eingang der Filterstufe 106_1 der Fließkommaeinheit 106 gekoppelt, und das gesamte interne Feedback der Daten von jedem Prozessor wird nach jeweils zwei Taktzyklen über die Datenbusse 108a, 108b und 108c ausgeführt.
Während eines ersten Taktzyklus treten die Fließkommadaten aus dem Prozessor 101 in die erste Filterstufe 106_1 ein. Während eines zweiten Taktzyklus werden die Daten, die von der ersten Stufe verarbeitet werden, an die nächste Filterstufe 106_2 geschickt, während die Fließkommadaten aus dem zweiten Prozessor 102 in die erste Filterstufe 106_1 eintreten. Während eines dritten Taktzyklus werden die Fließkommadaten aus dem ersten Prozessor 101, die von der zweiten Filterstufe 106_2 verarbeitet werden, über den Datenbus 108a an den Eingang der ersten Filterstufe 106_1 zurückgeschickt und ebenfalls an die dritte Filterstufe 106_3 zur weiteren Verarbeitung gesendet. Während des dritten Taktzyklus ermöglicht es der Multiplexer 105 dem ersten Prozessor 101 wiederum, auf die Fließkommaeinheit 106 zuzugreifen und so weiter. Während eines vierten Taktzyklus werden die Fließkommadaten aus dem ersten Prozessor 101, die von der dritten Stufe 106_3 verarbeitet werden, an die vierte Filterstufe 106_4 geschickt, während die Fließkommadaten aus dem zweiten Prozessor 102, die bereits von der ersten und zweiten Filterstufe 106_1 und 106_2 verarbeitet werden, an den Eingang der ersten Filterstufe 106_1 gesendet und an den Eingang der dritten Filterstufe 106_3 zur weiteren Verarbeitung. Während des vierten Taktzyklus wird es dem zweiten Prozessor wiederum ermöglicht, über den Multiplexer 105 auf die Fließkom­ maeinheit 106 zuzugreifen.
Während eines fünften Taktzyklus werden die Fließkommadaten aus dem ersten Prozessor 101 an die fünfte Filterstufe 106_5 gesendet und von dem Ausgang der vierten Filterstufe 106_4 mit dem Eingang der ersten Filterstufe 106_1 über den Datenbus 108b zurückgekoppelt.
Während eines sechsten Taktzyklus werden die Fließkommadaten aus dem zweiten Prozessor 102, die von der vierten Filterstufe 106_4 verarbeitet werden, mit dem Eingang der ersten Filterstufe 106_1 über den Datenbus 108b zurückgekoppelt und an die nächste Filterstufe gesendet. Das gleiche findet in bezug auf die weiteren Filterstufen und die Feedback-Schleifen der Fließkommaeinheit in weiteren Taktzyklen Anwendung. Die Leitungen, die mit einem "X" gekennzeichnet sind, geben an, daß das Feedback der Daten durch eine ungerade Anzahl von Stufen untersagt ist, um sicherzustellen, daß die Daten des ersten Prozessors 101 und des zweiten Prozessors 102 an verschiedene Filterstufen während jedes Taktzyklus gesendet werden, und daher sind die Daten aus verschiedenen Prozessoren streng voneinander getrennt.
Da es eine strenge Trennung des Fließkomma- Ausführungsprozesses von Daten aus dem ersten Prozessor 101 und von Daten aus dem zweiten Prozessor 102 bei geraden und ungeraden Taktzyklen und des entsprechenden Designs des Filter-Feedbacks gibt, besteht kein Bedarf an einer besonderen Synchronisierung oder einer Extrazuordnung von Steuerbits für die Identifizierung der Daten von jeder CPU. Somit kann die Fließkommaeinheit 106 aus der Erfindung als unintelligentes Element betrachtet werden, zum Beispiel ein Speicher oder Cache-Speicher, der einfach von zwei CPUs gemeinsam benutzt werden kann.
Es ist klar, daß das Konzept aus der Erfindung auch für einen Multiprozessor benutzt werden kann, der mehr als zwei Prozessoren enthält, wenn die Fließkommaeinheit und die beschriebenen Feedback-Schleifen der Fließkommaeinheit gemäß der Erfindung geändert werden, um die Trennung der Daten von jeder CPU aufrechtzuerhalten. Gleiches gilt, wenn eine unterschiedliche Anzahl von Taktzyklen jeder CPU oder jedem Prozessor zugeordnet wird. Das Konzept aus der Erfindung ermöglicht es, eine einfache Verbindung herzustellen, um beide CPUs auf einem Chip ohne komplexe Datenzuordnung zu bedienen. Der für einen Multiprozessor erforderliche Chipbereich kann ohne einen separaten, dedizierten Satz von Registern deutlich reduziert werden. Das Design aus der Erfindung ermöglicht niedrige Zykluszeiten, ohne daß das Multiplexen von Daten notwendig ist. Das heißt, daß der Filter nicht leer sein muß, bevor die Befehle der anderen CPU gestartet werden können. Out-of-Order-Verarbeitung kann einfach implementiert werden, und es kommt zu keiner Verriegelung, die Blockierungsprobleme verursachen kann.

Claims (18)

1. Ein Multiprozessor (100) mit mindestens:
  • a) einem ersten Prozessor (101);
  • b) einem zweiten Prozessor (102);
einer gemeinsam benutzten Ausführungseinheit (106), die sowohl mit dem ersten als auch mit dem zweiten Prozessor verbunden ist; und
einem Mittel (105), um die ersten Daten von dem ersten Prozessor (101) zur Ausführung zu dieser gemeinsam benutzten Ausführungseinheit (106) in einem ersten Taktzyklus zu steuern, und um die zweiten Daten von dem zweiten Prozessor (102) zur Ausführung zu dieser gemeinsam benutzten Ausführungseinheit (106) in einem zweiten Taktzyklus zu steuern,
dadurch gekennzeichnet,
daß die gemeinsam benutzte Ausführungseinheit (106) mindestens zwei aufeinanderfolgende Ausführungsstufen (106_1, . . ., 106_n) aufweist, von denen jede einen Eingangs- und einen Ausgangsdatenbus (106a, . . ., 106n) hat, und der Ausgangsdatenbus (106b) einer vorhergehenden Ausführungsstufe (106_1) mit dem Eingangsdatenbus (106b) der nachfolgenden Ausführungsstufe (106_2) gekoppelt ist, wobei die eine Ausführungsstufe (106_2) die Daten des ersten Prozessors (101) und die andere Ausführungsstufe (106_1) die Daten des zweiten Prozessors (102) im gleichen Taktzyklus verarbeitet.
2. Multiprozessor nach Anspruch 1, wobei die Daten aus dem ersten Prozessor (101) bei allen ungeraden Taktzyklen an die gemeinsam benutzte Ausführungseinheit (106) übertragen werden, und Daten aus dem zweiten Prozessor (102) bei allen geraden Taktzyklen an die gemeinsam benutzte Ausführungseinheit (106) übertragen werden.
3. Multiprozessor nach Anspruch 1, wobei bei einer ersten Anzahl von Taktzyklen die Daten aus dem ersten Prozessor (101) und bei einer zweiten Anzahl von Taktzyklen die Daten aus dem zweiten Prozessor (102) von der gemeinsam benutzten Ausführungseinheit (106) verarbeitet werden.
4. Multiprozessor nach Anspruch 3, wobei sich die erste Anzahl von Taktzyklen von der zweiten Anzahl von Taktzyklen unterscheidet.
5. Multiprozessor nach Anspruch 1, wobei die Registerdatei in jedem Prozessor (101, 102) behalten wird, und die Mittel zur Steuerung (105) nur die ersten und zweiten Daten senden, die von der gemeinsam benutzten Ausführungseinheit (106) zu verarbeiten sind.
6. Multiprozessor nach Anspruch 1, wobei die Daten, die von der gemeinsam benutzten Ausführungseinheit (106) verarbeitet worden sind, über einen Demultiplexer (107) an den zugeordneten ersten oder zweiten Prozessor (101, 102) übertragen werden.
7. Multiprozessor nach Anspruch 1, wobei der Ausgangsdatenbus jeder zweiten Ausführungsstufe (106_2, 106_4, 106_6) mit dem Eingangsdatenbus der ersten Ausführungsstufe (106_1) gekoppelt ist.
8. Multiprozessor nach Anspruch 7, wobei die Ausgangsdaten von jeder zweiten Ausführungsstufe (106_2, 106_4, . . . 106_n) nach jeweils zwei Taktzyklen oder nach jedem Vielfachen von zwei Taktzyklen an den Eingang der ersten Ausführungsstufe (106_1, 106_3, . . ., 106_n - 1) übertragen werden.
9. Multiprozessor nach Anspruch 1, wobei die Ausführungs­ stufen Filterstufen (106_1, . . ., 106_n) sind.
10. Multiprozessor nach Anspruch 1, wobei die gemeinsam benutzte Ausführungseinheit (106) zwischen dem ersten und zweiten Prozessor (101, 102) angeordnet ist.
11. Multiprozessor nach Anspruch 1, wobei die gemeinsam benutzte Ausführungseinheit eine Fließkommaeinheit (106) ist.
12. Multiprozessor nach Anspruch 1, wobei die gemeinsam benutzte Ausführungseinheit eine Datenkompressionseinheit ist.
13. Multiprozessor nach Anspruch 1, wobei die gemeinsam benutzte Ausführungseinheit eine Multimedia- Ausführungseinheit ist.
14. Multiprozessor nach Anspruch 1, wobei der erste und zweite Prozessor (101, 102) eine lokale Registerdatei (20, 22) enthält.
15. Multiprozessor nach Anspruch 1, wobei das Steuermittel ein Multiplexer (105) ist.
16. Multiprozessor nach Anspruch 1, der außerdem Mittel (107) enthält, die ein Ergebnis von einer gemeinsam benutzten Ausführungseinheit (106) entweder an den ersten oder an den zweiten Prozessor (101, 102) steuern.
17. Multiprozessor nach Anspruch 16, wobei das Steuermittel ein Demultiplexer (107) ist.
18. Multiprozessor nach Anspruch 14, wobei sowohl der erste als auch der zweite Prozessor (101, 102) eine Kopie von seinen Fließkomma-, Multimedia- und/oder Datenkompressionsregistern (20, 22) behält.
DE1999110451 1998-05-02 1999-03-10 Multiprozessor Expired - Fee Related DE19910451C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP98108047 1998-05-02

Publications (2)

Publication Number Publication Date
DE19910451A1 DE19910451A1 (de) 1999-11-04
DE19910451C2 true DE19910451C2 (de) 2003-08-14

Family

ID=8231870

Family Applications (1)

Application Number Title Priority Date Filing Date
DE1999110451 Expired - Fee Related DE19910451C2 (de) 1998-05-02 1999-03-10 Multiprozessor

Country Status (1)

Country Link
DE (1) DE19910451C2 (de)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3980992A (en) * 1974-11-26 1976-09-14 Burroughs Corporation Multi-microprocessing unit on a single semiconductor chip

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3980992A (en) * 1974-11-26 1976-09-14 Burroughs Corporation Multi-microprocessing unit on a single semiconductor chip

Also Published As

Publication number Publication date
DE19910451A1 (de) 1999-11-04

Similar Documents

Publication Publication Date Title
DE68929215T2 (de) Datenprozessor
DE112005000706B4 (de) Verfahren und System zum Bereitstellen von Multi-Threading auf Nutzerebene
DE69033065T2 (de) Mehrfachbefehlsdecoder
DE3750306T2 (de) System zum Gewährleisten der logischen Unversehrtheit von Daten.
DE3689923T2 (de) Dreiphasen-Pipeline-Signalprozessor.
DE69724355T2 (de) Erweiterte symmetrische Multiprozessorarchitektur
DE69132195T2 (de) System für verteilte Mehrfachrechnerkommunikation
DE60010907T2 (de) Sram-steuerungvorrichtung für parallele prozessorarchitektur mit adressen- und befehlswarteschlange und arbiter
DE69701141T2 (de) Multithreaded mikroprozessor ausgestaltet zur ausführung von unterbrechungsverarbeitungsroutinen als threads
DE69701078T2 (de) Mikroprozessorarchitektur mit der Möglichkeit zur Unterstützung mehrerer verschiedener Prozessoren
DE60015395T2 (de) Speicher, der zwischen verarbeitenden threads geteilt ist
DE69229244T2 (de) Multiprozessor mit effizienter Verwendung von Prozessoren mit unterschiedlichen Leistungseigenschaften
DE69735575T2 (de) Verfahren und Vorrichtung zur Unterbrechungsverteilung in einem skalierbaren symmetrischen Mehrprozessorsystem ohne die Busbreite oder das Busprotokoll zu verändern
DE2847216C2 (de) Datenverarbeitungsanlage mit Mehrprogrammbetrieb
DE69305366T2 (de) System und verfahren zum kennzeichnen von befehlen zur steuerung der befehlsausführung
DE3852928T2 (de) Datenprozessor mit A/D-Umsetzer, um mehrere analoge Eingabekanäle in Digitaldaten umzusetzen.
DE10297166T5 (de) Mechanismus zur Interrupt-Abwicklung in Computersystemen, welche die gleichzeitige Ausführung mehrerer Threads unterstützen
DE102009049078B4 (de) Verwendung von Ausführer-Wissen über Speicherregion-Ordnungsanforderungen zum Modifizieren von Transaktionsattributen
DE112005002432B4 (de) Verfahren und Vorrichtung zum Bereitstellen eines Quellenoperanden für eine Instruktion in einem Prozessor
DE19506435C2 (de) Verfahren und Einrichtung zum Vermeiden von Rückschreibkonflikten zwischen einen gemeinsamen Rückschreibpfad verwendenden Ausführungseinheiten
DE602004012563T2 (de) Mehrfädiges DMA
DE3789490T2 (de) Steuerungssystem für ein Vektorprozessor.
DE69219848T2 (de) Verfahren zur Behandlung von Datenübertragungen in einen Computersystem mit einem Zweibusbau
DE3741850A1 (de) Ausfuehrungseinheit fuer einen i/o-prozessor
DE102020103521A1 (de) Minimieren der Nutzung von Hardware-Zählern bei getriggerten Operationen für kollektive Kommunikation

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8304 Grant after examination procedure
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)
8328 Change in the person/name/address of the agent

Representative=s name: DUSCHER, R., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW., 7

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee