DE69323861T2 - Multiprozessorsystem mit gemeinsamem Speicher - Google Patents
Multiprozessorsystem mit gemeinsamem SpeicherInfo
- Publication number
- DE69323861T2 DE69323861T2 DE69323861T DE69323861T DE69323861T2 DE 69323861 T2 DE69323861 T2 DE 69323861T2 DE 69323861 T DE69323861 T DE 69323861T DE 69323861 T DE69323861 T DE 69323861T DE 69323861 T2 DE69323861 T2 DE 69323861T2
- Authority
- DE
- Germany
- Prior art keywords
- data
- memory
- channel
- logic circuits
- processor
- 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
Links
- 230000015654 memory Effects 0.000 title claims description 135
- 238000012546 transfer Methods 0.000 claims description 59
- 230000005540 biological transmission Effects 0.000 claims description 26
- 230000002123 temporal effect Effects 0.000 claims description 2
- AWSBQWZZLBPUQH-UHFFFAOYSA-N mdat Chemical compound C1=C2CC(N)CCC2=CC2=C1OCO2 AWSBQWZZLBPUQH-UHFFFAOYSA-N 0.000 description 28
- 238000000034 method Methods 0.000 description 22
- 230000008569 process Effects 0.000 description 21
- 238000010586 diagram Methods 0.000 description 17
- 230000006854 communication Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 238000013459 approach Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 7
- 238000012544 monitoring process Methods 0.000 description 7
- 230000004044 response Effects 0.000 description 7
- 238000013475 authorization Methods 0.000 description 6
- 239000000872 buffer Substances 0.000 description 6
- 230000003213 activating effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000012937 correction Methods 0.000 description 4
- 230000036962 time dependent Effects 0.000 description 4
- 230000036961 partial effect Effects 0.000 description 3
- 241000201940 Oena Species 0.000 description 2
- 230000004913 activation Effects 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 208000011580 syndromic disease Diseases 0.000 description 2
- 101100191136 Arabidopsis thaliana PCMP-A2 gene Proteins 0.000 description 1
- 101100421141 Homo sapiens SELENON gene Proteins 0.000 description 1
- 101100048260 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) UBX2 gene Proteins 0.000 description 1
- 102100023781 Selenoprotein N Human genes 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000012508 change request Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1663—Access to shared memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
- G06F15/8015—One dimensional arrays, e.g. rings, linear arrays, buses
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
- Memory System (AREA)
Description
- Die vorliegende Erfindung betrifft ein Mehrprozessorensystem mit gemeinsamem Speicher.
- Bekannterweise werden in Datenverarbeitungssystemen Mehrprozessorenarchitekturen zum Erzielen einer hohen Leistungsfähigkeit verwendet, wobei mehrere Prozessoren gleichzeitig durch Aufteilung der Aufgabe mehrere Prozesse ausführen.
- Für die Zusammenarbeit der Prozessoren ist erforderlich, daß zwischen den Prozessoren ein Informations- und Mitteilungsaustausch stattfindet und die Prozessoren dieselben Daten verarbeiten können.
- Die Prozessoren müssen somit über geeignete Kommunikationskanäle miteinander verbunden und an mindestens einen Arbeitsspeicher angeschlossen sein.
- Ebenso ist bekannt, daß von der Technologie Arbeitsspeicher angeboten werden, die große Kapazitäten aufweisen und preiswert sind, jedoch andererseits Lese- /Schreibzeiten besitzen, die deutlich größer als die Betriebszeiten der Prozessoren sind.
- Daher werden zur vollständigen Ausnutzung der Prozessorenleistung schnelle lokale Speicher oder Cachespeicher mit begrenzter Speicherkapazität, die jeweils einem Prozessor zugeordnet sind, und mehrere individuell und unabhängig voneinander adressierbare Arbeitsspeicher verwendet.
- Somit wird der adressierbare Speicherbereich auf verschiedene Speichereinheiten oder Speicherbänke gemäß "Interleaving"-Kriterien aufgeteilt, wodurch die Wahrscheinlichkeit eines Konflikts beim Zugriff verschiedener Prozessoren auf die Vielzahl von Speichern minimiert wird.
- Durch die zur Beschleunigung des Zugriffs vorgesehene Verwendung von schnellen lokalen Speichern, in die in dem Arbeitsspeicher gespeicherte Daten kopiert werden können, treten jedoch Kohärenzprobleme oder, im angelsächsischen Sprachgebrauch ausgedrückt, Datenkonsistenzprobleme auf.
- Durch die Verwendung verschiedener Speichermodule kommt es zu Verbindungsproblemen zwischen den verschiedenen Prozessoren und den verschiedenen Modulen.
- Durch den Stand der Technik werden zwei architektonische Ansätze angeboten, die zumindest teilweise diese Probleme beseitigen.
- Sämtliche Prozessoren und sämtliche Speicher des Systems sind an einen einzigen Systembus angeschlossen, der eine gemäß einem Time-Sharing-Verfahren betriebene Ressource darstellt, auf die die Prozessoren sowie gegebenenfalls die Speicher zueinander in Konkurrenz während begrenzter und sich nicht überlappender Zeitintervalle zugreifen können.
- Der Zugriff auf den Systembus wird auf Anfrage der verschiedenen Einheiten durch eine Arbitrierungslogik des Einheitheits- oder Verteiltyps zugewiesen, wodurch die Zugriffskonflikte gemäß vorgegebenen Kriterien vermieden werden.
- Dieser Architekturtyp besitzt im wesentlichen zwei Vorteile:
- - die Vorgänge zum Verbinden von zwei Einheiten (Prozessor und Speicher) über den Systembus laufen seriell und geordnet ab und ermöglichen eine einfache Verwaltung des Kommunikationsprozesses,
- - sämtliche an den Systembus angeschlossenen Prozessoren können die auf dem Systembus stattfindenden Vorgänge verfolgen, so daß die Datenkonsistenz durch relativ einfache "Nachforschungs-" oder Überwachungsmechanismen in Echtzeit hergestellt werden kann.
- Die Nachteile oder Beschränkungen der Architektur sind hingegen beträchtlich:
- - jeder Draht des Systembus ist an eine große Anzahl von Eingabe- und Ausgabelasten angeschlossen. Für die Signalübertragung über die verschiedenen Drähte sind daher Treiberschaltungen erforderlich, die eine für die Last geeignete Leistung bereitstellen und demzufolge relativ langsam sind.
- Die im wesentlichen kapazitive Natur der Lasten beschränkt die übertragbare Signalfrequenz und somit die Informationsübertragungsgeschwindigkeit oder "Übertragungsrate" des Systembus.
- Da ein und dieselbe Ressource gemeinsam von verschiedenen Einheiten für Lese/Schreibvorgänge benutzt wird, nehmen die Zugriffskonflikte und demzufolge die Antwortprobleme, d. h. das Warten auf einen Zugriff auf den Bus und auf einen möglichen anschließenden Empfang der angeforderten Informationen, zu. Die Antwortzeit ist nicht nur durch die Langsamkeit einer Speichereinheit beim Antworten bestimmt, sondern auch durch mögliche Buszugriffskonflikte, deren Wahrscheinlichkeit mit zunehmender Anzahl der hinsichtlich eines Buszugriffs miteinander konkurrierenden Einheit zunimmt, und ist um so länger, je länger die zur Übertragung bedeutender Informationen über den Bus und zum Ableiten der Informationen, d. h. zum Freimachen des Bus, benötigte Zeit ist.
- Die Prozessoren sind mit dem Speicher paarweise mit Hilfe von mehreren sich kreuzenden Kommunikationskanälen, die durch das selektive Schließen von Schaltern selektiv miteinander verbunden werden, verbunden.
- Die Vorteile dieser Architekturart sind:
- - mehr Paare von Einheiten können gleichzeitig miteinander über getrennte Kanäle kommunizieren,
- - die matrixartige Verbindung ermöglicht, daß die RC-Lasten der verschiedenen Kommunikationsleitungen verringert werden.
- Somit können leistungsschwächere Steuerschaltungen verwendet und der Betrieb bei einer höheren Frequenz durchgeführt werden.
- Die erzielbare Übertragungsrate ist nicht nur deswegen sehr hoch, da eine höhere Frequenz der übertragenen Signale möglich ist, sondern auch wegen der vielen gleichzeitigen Parallelübertragungen. Des weiteren ermöglicht die paarweise Verbindung von Einheiten, die im allgemeinen für mehrere aufeinanderfolgende Übertragungen beibehalten wird, kanalisierte oder "pipelineartige" Vorgänge und eine weiter erhöhte Übertragungsrate, die erzielt werden kann, ohne daß für die anderen Prozesse während des Großteils der Belegungszeit der Ressource Antwortzeitprobleme hervorgerufen werden.
- Andererseits sind selbst in diesem Fall bedeutende Nachteile vorhanden:
- - Die gleichzeitige Übertragung über viele Verbindungspaare behindert die gegenseitige "Überwachung" der Prozessoren, und die Datenkohärenz kann sich in einer Umgebung verschlechtern, falls die Daten in verschiedene Speicher kopiert werden. Um die Kohärenz sicherzustellen, muß auf gleichzeitige Übertragungen oder Transaktionen (wenigstens von Adressen) verzichtet werden.
- - Insbesondere die mit dem "Routing" der Signale sowie dem Abschluß der Komponenten und der Verwaltung der Verbindungen verbunden Probleme sind lästig.
- Dieser Nachteil wird durch das Mehrprozessorensystem, welches den Gegenstand der vorliegenden Erfindung darstellt, beseitigt, wobei mehrere Prozessoren jeweils mit einem durch mehrere getrennt voneinander adressierbare Module gebildeten gemeinsamen Speicher über einen Systembus (oder eine Mehrpunktverbindung) zur Übertragung von Adressen und Befehlen oder über Punkt-zu-Punkt-Datenkanäle, die jeweils einem Prozessor individuell an eine Datenkreuzschienenverbindungslogik und über diese an die Speichermodule anschließen, kommunizieren.
- Somit wird eine Hybridarchitektur realisiert, welche die Vorteile der Bussystemarchitektur mit den Vorteilen der Kreuzschienenarchitektur kombiniert, und die:
- - eine geordnete Pipeline-Verarbeitung verschiedener Übertragungen zwischen ein und demselben Prozessor und dem Speicher ermöglicht,
- - die Belastungen auf den Punkt-zu-Punkt-Datenübertragungskanälen zwischen einzelnen Prozessoren und dem Speicher verringert, wodurch ein Betrieb bei höheren Übertragungsfrequenzen möglich ist,
- - parallele Übertragungen, die unterschiedliche Ressourcen betreffen, ermöglicht,
- - eine geordnete Serialisierung der Zugriffe auf den Speicher ermöglicht,
- - sämtlichen Prozessoren, die "Überwachung" der Adressenkanäle und der Datenkonsistenz in Echtzeit ermöglicht, falls es sich um Architekturen handelt, bei denen Daten in lokale Speicher oder Cachespeicher kopiert werden.
- Gemäß einem weiteren Aspekt des Mehrprozessorensystems der vorliegenden Erfindung werden die Speichermodule separat angesteuert, um bei teilweise Überlappung der Betriebszeiten zu lesen oder zu schreiben und somit als autonome Speichereinheiten zu wirken, wobei die Speichermodule jedoch über eine an den Systembus oder Adressenbus angeschlossene gemeinsame Steuereinheit adressiert werden.
- Die Speichersteuereinheit erfüllt auch die Rolle einer Arbitrierungseinheit für den Zugriff auf den Systembus.
- Auf diese Art und Weise wird die Belastung des Adressenbus auf einzelne Prozessoren und die Speichersteuereinheit reduziert.
- Gemäß einem weiteren Aspekt des Mehrprozessorensystems der vorliegenden Erfindung ist die Datenkreuzschienenlogik mit Eingangs-/Ausgangsregistern sowohl für den gemeinsamen Speicher als auch für die Prozessoren versehen.
- Aufgrund dieser kaskadenartigen Übertragungsstruktur von Register zu Register können verschiedene Übertragungen parallel durchgeführt werden, und ein "Pipeline"-Betrieb zu und von dem Speicher mit einer teilweisen Überlappung der Übertragungszeiten ist auch dann möglich, wenn die Datenkreuzschiene als Sammeleinheit für sämtliche Datenaustauschvorgänge mit dem Speicher über einen einzigen Datenkanal dient. Dieser Kanal bildet einen Knoten, der die Datenübertragungsrate nicht begrenzt, da die für eine Datenübertragung durch den Knoten erforderliche Zeit innerhalb sehr enger Grenzen gehalten werden kann.
- Gemäß einem weiteren Aspekt des Mehrprozessorensystems der vorliegenden Erfindung ist die Verbindungslogik neben Pufferregistern (oder Puffern) mit Kanälen versehen, die für den Anschluß an den Speicher und an unterschiedliche Prozessoren unterschiedliche Parallelitäten aufweisen, wobei die Parallelität zwischen dem Speicher und der Datenkreuzschiene N x M Bytes beträgt, während die Parallelität zwischen der Datenkreuzschiene und den Prozessoren lediglich N Bytes beträgt.
- Während die Informationsübertragung zwischen dem Speicher und der Datenkreuzschiene gleichzeitig in Blöcken mit N x M Bytes durchgeführt wird, erfolgt die Übertragung zwischen der Datenkreuzschiene und dem Prozessor mit Hilfe einer seriellen Aufteilung des Betriebs in M aufeinanderfolgende Phasen, wobei während jeder Phase ein Block mit N Bytes übertragen wird.
- Die Serialisierung führt nicht zu Antwortproblemen, da es sich bei den Verbindungen zwischen der Datenkreuzschiene und den Prozessoren um dedizierte Verbindungen handelt und keine wechselseitigen Interferenzen auftreten.
- Andererseits kann aufgrund der höheren Parallelität des Speichers bezüglich der Prozessoren die Speicherkapazität oder der Speicherdurchsatz an mögliche Prozessoranfragen, die mit einer höheren Geschwindigkeit vorliegen, angepaßt und gleichzeitig die Anzahl der Abschlüsse der verschiedenen elektronischen Komponenten oder Einheiten sowie der passiven elektronischen Verbindungen zwischen den verschiedenen Einheiten innerhalb akzeptabler Grenzen gehalten werden.
- Die Begrenzung der Anzahl der Abschlüsse kann nicht nur aus ökonomischen Gründen oder aus Gründen der technischen Praktikabilität von elektronischen Komponenten mit einer großen Anzahl von Eingangs-/Ausgangsanschlüssen notwendig sein, sondern auch hinsichtlich der Erfordernisse für eine geeignete Anwendung von im Handel erhältlichen Komponenten, die für die Anwendung von Standardkommunikationsbussen ausgelegte Schnittstellen aufweisen.
- Tatsächlich wirkt die Hybridverbindungsarchitektur, auf der das Mehrprozessorensystem der vorliegenden Erfindung basiert, von der Schnittstellenebene her betrachtet als ein herkömmlicher Standardbus beispielsweise des "VME- oder Futurebus"-Typs.
- Die Eigenschaften und Vorteile des Mehrprozessorensystems der vorliegenden Erfindung werden anhand der folgenden Beschreibung eines bevorzugten Ausführungsbeispiels der Erfindung sowie der beigefügten Zeichnung deutlicher. Dabei zeigt:
- Fig. 1 ein schematisches Blockschaltbild eines Mehrprozessorensystems mit gemeinsamem Speicher und einer gemäß der vorliegenden Erfindung aufgebauten Struktur,
- Fig. 2 ein schematisches Blockschaltbild eines Ausführungsbeispiels einer Datenkreuzschiene für die in Fig. 1 gezeigte Architektur,
- Fig. 3 ein schematisches Blockschaltbild eines Ausführungsbeispiels einer Steuereinheit für das in Fig. 1 gezeigte System,
- Fig. 4 ein Zeitdiagramm des Betriebs des in Fig. 1 dargestellten Mehrprozessorensystems,
- Fig. 5 ein schematisches Blockschaltbild eines bevorzugten Ausführungsbeispiels einer Datenkreuzschiene für das in Fig. 1 gezeigte System,
- Fig. 6 ein Zeitdiagramm des Betriebs des Mehrprozessorensystems mit einer Datenkreuzschiene der in Fig. 5 gezeigten Art, und
- Fig. 7 ein schematisches Blockschaltbild eines abgewandelten Ausführungsbeispiels des in Fig. 1 dargestellten Mehrprozessorensystems.
- Fig. 1 zeigt ein schematisches Blockschaltbild eines Mehrprozessorensystems mit gemeinsamem Speicher und einer gemäß der vorliegenden Erfindung aufgebauten Architektur.
- Das System umfaßt mehrere Prozessoren 1, 2, 3, 4 mit jeweils einem Pufferspeicher oder Cachespeicher 6, 7, 8, 9, einen durch mehrere Module 10, 11, 12, 13, 113, 114 (mit vorzugsweise einer größeren Anzahl als die Anzahl der Prozessoren) aufgebauten Systemspeicher 5, eine Zeitgebereinheit TIM UNIT, die ein Zeitsteuersignal CK mit einer bestimmten Frequenz erzeugt, eine Systemspeichersteuereinheit 15 (SMC) zur Steuerung des Systemspeichers und zur Arbitrierung des Systembus sowie eine Datenkanalsteuerlogik 16 oder Datenkreuzschiene (DCB).
- Die Prozessoren 1, 2, 3, 4 sind über einen zur Übertragung von Adressen und Befehlen dienenden Bus (ACBUS) 17 miteinander verbunden und an die Systemspeichersteuereinheit (SMC) 15 angeschlossen.
- Die Prozessoren senden an die SMC-Einheit (15) Anfragen ABREQ für einen Zugriff auf den Bus über geeignete Drähte dieses Busses mit einem herkömmlichen Arbitrierungs- und Kommunikationsprotokoll und empfangen einzeln ein Buszuteilungssignal ABGRANT, infolge dessen sie den Bus 17 effektiv belegen und an die SMC-Einheit 15 eine Speicheradresse und die den geforderten Betrieb, wie z. B. Lesen, Schreiben oder eine andere Betriebsart (RWIM), identifizierende Signale übertragen können.
- Der Systembus ACBUS 17 bildet möglicherweise, jedoch nicht notwendigerweise, mit Ausnahme für die Übertragung der Buszugriffsanfragen ABREQ der entsprechenden Buszuteilungsantwort BGRANT und der verschiedenen Prozessorzustandssignale, die vorzugsweise zwischen den einzelnen Prozessoren und der Einheit 15 über Punkt-zu- Punkt-Verbindungen ausgetauscht werden, einen Mehrpunktkommunikationskanal.
- Die Einheit 15 überträgt die Lese-/Schreibadresse zusammen mit geeigneten Zeitsteuerbefehlen (STARTA, STARTB, STARTC, STARTD, STARTE, STARTF) über einen Kanal MADDR 18 zu dem Speicher 5, wodurch abhängig von der Adresse eines der verschiedenen Speichermodule 10, 11, 12, 13, 113, 114 ausgewählt und aktiviert wird.
- In jedem Modul hält ein Register AR die Lese-/Schreibadresse für den gesamten erforderlichen Zeitraum, auch wenn die Zeitspanne, während der die Adresse auf dem Kanal MADDR 18 anliegt, beschränkt ist.
- Andererseits findet die Datenübertragung zwischen den einzelnen Prozessoren 1, 2, 3, 4 und einem Speicherdaten-Eingabe-/Ausgabekanal MDAT 19 oder zwischen Prozessorpaaren über Punkt-zu-Punkt-Verbindungen statt, die von der Einheit DCB 16 abhängig von Zeitsteuerbefehlen, die von der Einheit 15 empfangen werden, selektiv aufgebaut werden.
- In jedem Speichermodul hält ein Register DW eine über den Kanal MDAT 19 empfangene Einheit von Schreibdaten während des gesamten zur Ausführung des Schreibvorgangs erforderlichen Zeitraums.
- Die Prozessoren 1, 2, 3, 4 sind gemäß Fig. 1 jeweils über Datenkanäle I/OD1, I/OD2, I/OD3, I/OD4 mit der Einheit DCB 16 verbunden.
- Der Betrieb des gesamten Systems läuft synchron ab, und die einzelnen Einheiten werden jeweils durch das von der Einheit 14 erzeugte periodische Signal CK getaktet.
- Fig. 2 zeigt ein schematisches Blockschaltbild der Architektur der Einheit DCB 16 in Form einer integrierten Schaltung.
- Ist die Parallelität des Datenkanals so hoch, daß er nicht in Form einer einzigen integrierten Schaltung ausgebildet werden kann, kann die Einheit DCB 16 in Übereinstimmung mit dem bekannten "Bit Slicing"-Konzept oder durch Aufteilung der Logik in Bitgruppen in Form von mehreren identischen integrierten Schaltungen ausgebildet werden.
- Die Einheit DCB 16 umfaßt im wesentlichen vier Gruppen von Empfängern 21, 22, 23, 24 für die Eingabe von Daten über die Kanäle I/OD1, I/OD2, I/OD3, I/OD4, vier Gruppen von Steuerschaltungen oder Treiber 25, 26, 27, 28 für das Einspeisen von Daten in die Kanäle I/OD1, I/OD2, I/OD3, I/OD4, eine Gruppe von Treibern 29 für die Dateneinspeisung in den Kanal 19, eine Gruppe von Empfängern 35 für die Eingabe von Daten des Kanals 19 in die DCB sowie fünf Multiplexer 30, 31, 32, 33, 34.
- Die Eingänge des Multiplexers 30 sind mit den Ausgängen der Gruppe von Empfängern 21, 22, 23, 24 verbunden, und die Eingänge sind mit den Ausgängen der Gruppe von Treibern 29 verbunden, so daß durch Aktivierung der Treiber 29 selektiv einer der Kanäle I/OD(i) mit dem Kanal MDAT 19 verbunden werden kann.
- Jeder der Multiplexer 31, 32, 33, 34 ist einem der Kanäle I/OD(i) zugeordnet und besitzt vier Eingangsanschlüsse, die mit Ausnahme des Empfängers des jeweils zugeordneten Kanals I/OD(i) mit den Ausgängen der Empfänger 35, 21, 22, 23 bzw. 24 verbunden sind.
- Die Ausgänge der Multiplexer 31, 32, 33, 34 sind mit den Eingängen der Treiber 25, 26, 27 bzw. 28 verbunden, um den Kanal MDAT 19 selektiv mit einem I/OD und/oder möglichst gleichzeitig zwei I/OD Kanäle miteinander zu verbinden.
- Der Betrieb der Multiplexer und der Treiber wird durch geeignete Befehle SEL1 ... SELN gesteuert, die von einem Decoder 36 erzeugt werden, welcher über die Leitungen 20 geeignete Befehle von der Speichersteuereinheit 15 empfängt.
- Die Befehle werden durch das Signal CK getaktet.
- Es ist ohne weiteres ersichtlich, daß beispielsweise der Kanal I/OD1 als Datenquelle gleichzeitig und gemeinsam mit dem Kanal MDAT 19 und einem der anderen I/OD- Kanäle verbunden werden kann, oder daß zwei I/OD-Kanäle miteinander verbunden werden körnen, während ein dritter I/OD-Kanal mit dem Kanal MDAT 19 verbunden wird.
- Fig. 3 zeigt ein schematisches Blockschaltbild der Struktur der Systembusarbitrierungs- und Speichersteuereinheit 15, die in Form einer integrierten Schaltung hergestellt werden kann.
- Die Einheit 15 umfaßt eine Logik 70 zur Arbitrierung des Zugriffs auf den Systembus (ABUS ARB UNIT), eine Finite-Zustandslogik (Zustandsmaschine), ein Registerpaar 73, 74, einen Decoder 75 und OR-Logikschaltungen 76.
- Die Arbitrierungslogik 70 herkömmlichen Typs empfängt an ihrem Eingang Buszugriffsanforderungssignale ABREQ(i) über Punkt-zu-Punkt-Verbindungen mit den verschiedenen Prozessoren und teilt den Zugriff auf den Systembus auf vollständig herkömmliche Art und Weise sowie zeitlich gesteuert durch das Signal CK dadurch zu, daß ein Antwortsignal ABGRANT(i) über eine der mehreren Punkt-zu-Punkt- Verbindungen sequentiell zu den verschiedenen Prozessoren gesendet wird.
- Die Logik 70 ist vorzugsweise in die Steuereinheit 15 integriert, kann jedoch auch durch ein in herkömmlicher Art und Weise auf die Prozessoren verteilte Arbitrierungslogik ersetzt sein, wobei in diesem Fall die Arbitrierungssignale über Mehrpunktverbindungen ausgetauscht werden können.
- Die Einheit 15 empfängt über den Systembus ACBUS Befehlssignale, die den auszuführenden Betrieb definieren; insbesondere empfängt sie ein Signal R/W, welches anzeigt, ob der geforderte Betrieb ein Lese- oder Schreibbetrieb ist, und ein Signal RWIM, welches einen Lesebetrieb zur Abwandlung der Lesedateneinheit anzeigt. Andere, möglicherweise vorliegende Befehle liegen außerhalb des Bereichs der Erfindung und sind für das Verständnis der Erfindung nicht erforderlich.
- Die Befehle werden auf dem Systembus von der Speicheradresse begleitet, die angibt, wo der Betrieb ausgeführt werden soll.
- Es ist zu beachten, daß die Befehle und die Adresse lediglich dann auf den Systembus gelegt werden, nachdem einem Prozessor der Zugriff auf den Bus zugeteilt worden ist, und daß die Befehle und die Adresse gemeinsam eine Ressource (beispielsweise ein Speichermodul) identifizieren, welche bereits von der Ausführung anderer Vorgänge betroffen sein kann.
- Um zu vermeiden, daß der Systembus belegt bleibt während auf das Freiwerden der Ressource gewartet wird, antwortet die Einheit 15 nach einer Analyse des Inhalts der Befehle und der Adresse in diesem Fall mit einem Signal RETRY, so daß der Befehl zurückgewiesen und der anfragende Prozessor aufgefordert wird, den Befehl zu ersetzen.
- Auf diese Weise werden die Befehl nur ausgeführt, falls die notwendigen Ressourcen verwendbar sind. Dadurch wird sichergestellt, daß die Befehle, falls sie ausgeführt werden, innerhalb einer bestimmten Zeit, die lediglich von der Ausführungsgeschwindigkeit der betreffenden Ressourcen abhängt, ausgeführt werden. Beim Lesen aus dem Speicher entspricht somit die Reihenfolge, mit der die Daten von dem Speicher bereitgestellt werden, der Reihenfolge, mit der die Befehle angenommen worden sind.
- Die von der Einheit 15 empfangenen Befehle und Adressen werden getaktet durch das Signal CK, in dem Register 73 gespeichert und von dem Decoder 75 (dessen Eingänge mit den Ausgängen des Registers 73 verbunden sind) decodiert.
- Der Decoder bestimmt im wesentlichen abhängig von der Adresse und den Befehlen, welches Speichermodul (A, B, C, D, E oder F) verwendet werden soll und ob der angeforderte Betrieb ein Schreibbetrieb R ist oder nicht. Darüber hinaus kann er abhängig von der Adresse eine nicht an den Speicher, sondern an einen durch die Signale I/O identifizierten Prozessor der Prozessoren gerichtete Datenübertragung feststellen.
- Die Ausgangssignale des Decoders werden getaktet durch das Signal CK der Finite- Zustandslogik 72 zugeführt, die mit jeder Periode des Signals CK als Funktion der zuvor empfangenen Signal fortschreitet.
- Da, wie bereits erwähnt worden ist, jeder von den Prozessoren angeforderte Betrieb, falls er ausgeführt wird, infolge des RETRY-Mechanismus während einer bestimmten Zeit ausgeführt wird, kann die Zustandslogik auf Grundlage der während dieser Zeit empfangenen Signale den Ressourcenzustand während der augenblicklichen Taktperiode sowie der folgenden Perioden nachverfolgen.
- Daher gibt die Einheit 72 an ihrem Ausgang ein Signal EN aus, was das Laden der in dem Register 73 enthaltenen Adresse und Befehle in das Ausgaberegister 74 nur dann ermöglicht, falls die erforderlichen Ressourcen in dem bestimmten und notwendigen Zeitintervall verfügbar sind.
- In das Register 74 werden neben der Adresse und den Befehlen die Signale A, B, C, D, E, F geladen, wobei lediglich eines dieser Signale zu einem beliebigen Zeitpunkt wirksam ist und, falls es über den Kanal MADDR 18 zu dem Speicher 5 übertragen wird, eines der Speichermodule (STARTA, STARTB, STARTC, STARTD, STARTE, STARTF) auswählt und aktiviert, wobei nicht zwei Speichermodule gleichzeitig ausgewählt werden können.
- Des weiteren überträgt die Einheit 72 über den Kanal 20 abhängig von dem aktivierten Speicherbetrieb auf geeignete Art und Weise zeitlich gesteuerte Befehle zur Steuerung der Datenkreuzschiene 16 (Fig. 1).
- Schließlich wird das ausgewählte Modul über die Befehle OENA,B,C,D,E,F ausgelöst, um im Falle eines Lesebetriebs die ausgelesenen Daten über den Kanal MDAT 19 zu übertragen.
- Wie nachfolgend erläutert wird, tritt dies lediglich dann auf, falls infolge der "Überwachung" während des Lesebetriebs keine Bedingung zum "Eingreifen" erfüllt ist.
- In Mehrprozessorensystemen, bei denen Daten in Cachespeicher kopiert werden, wird die Datenkonsistenz im wesentlichen durch zwei Ansätze gesichert:
- 1) Sofortiges Schreiben jeder veränderten Dateneinheit in den Speicher oder "Durchschreiben".
- 2) Verzögertes Schreiben der veränderten Daten in den Speicher nur, falls sich die Gelegenheit dazu ergibt ("Zurückschreiben" oder "Zurückkopieren").
- Bei dem ersten Ansatz muß jedesmal, wenn in einem Prozessorcachespeicher eine Dateneinheit verändert wird, in den Speicher geschrieben werden, so daß der erste Ansatz die Bus- und Speicherressourcen in einem erheblichen Umfang belegt und somit an Beliebtheit verloren hat.
- Der zweite Ansatz setzt voraus, daß sämtliche Prozessoren, die an den Speicher gesendeten Leseanfragen überwachen, um festzustellen, ob der Lesevorgang eine in dem eigenen Cachespeicher vorhandene Dateneinheit in veränderter Form betrifft, wobei in dem Speicher keine aktualisierte Kopie dieser Daten vorhanden ist.
- In diesem Fall muß derjenige Prozessor, in dessen Cachespeicher die veränderten Daten enthalten sind, diesen Umstand durch Nichtaktivierung der Signale OENA, B, C, D den anderen Prozessoren mitteilen und die Daten zu dem die Anforderungsdaten anfordernden Prozessor übertragen, wobei in dem Speicher, dessen Ausgang blockiert ist, die Daten ersetzt werden.
- Die Einheit 15 ist vorzugsweise derart ausgestaltet, daß sie in Übereinstimmung mit dem zweiten Ansatz betrieben wird, wodurch der Austausch von "Überwachungssignalen" zwischen den Prozessoren vereinfacht wird (die Einheit 15 kann jedoch auch einfach an den ersten Ansatz angepaßt werden).
- Zu diesem Zweck empfängt die Einheit 15 von den verschiedenen Prozessoren SNOOP OUT(i)-Zustandssignale über die Punkt-zu-Punkt-Verbindungen, die von den verschiedenen Prozessoren zu geeigneten Zeitpunkten übertragen werden, um anzuzeigen, daß die an dem Systembus ACBUS anliegende Leseanfrage Daten betrifft, die entweder nicht in dem Cachespeicher enthalten sind (SNOOP OUT = NUL), oder in dem Cachespeicher vorhanden und gültig sind und somit wenigstens mit dem Speicher geteilt werden (SNOOP OUT = SHARED), oder in dem Cachespeicher vorhanden und bezüglich der in dem Speicher enthaltenen Daten verändert sind (SNOOP OUT = MODIFY).
- Die SNOOP OUT(i)-Zustandssignale können auch anzeigen, daß der Überwachungsvorgang nicht ausgeführt werden konnte, da beispielsweise der Prozessor belegt war oder im Falle einer Datenübertragung zwischen Prozessoren die übertragenen Daten nicht empfangen werden konnten, und daß in beiden Fällen die Übertragung nicht abgeschlossen werden konnte und somit wiederholt werden muß (SNOOP OUT = RETRY).
- Diese Signale werden von der Finite-Zustandslogik 72 empfangen, welche bei der Festlegung des Systemzustands und der zu steuernden Vorgänge diese Signale berücksichtigt.
- Wie nachfolgend genauer ersichtlich ist, muß, falls das empfangene Signal MODIFY anzeigt, ein Prozessor eingreifen, um die Dateneinheit auf seinen I/OD(i)-Kanal zu legen, nachdem er von der Einheit 15 die Bestätigung erhalten hat, daß der MODIFY- Betrieb durchgeführt werden muß.
- Die Finite-Zustandslogik 72 steuert über den Kanal 20 auf geeignete Art und Weise die Verbindungen, welche zwischen den verschiedenen Punkten der Datenkreuzschiene aufgebaut werden sollen, wobei der Eingriffsanfrage maximale Priorität zugewiesen wird und bei Auftreten eines Konflikts hinsichtlich der Inanspruchnahme der Ressourcen bezüglich einer bereits ablaufenden Übertragung diese Übertragung gestoppt und durch Aktivierung des RETRY-Signals angezeigt wird, daß der Vorgang wiederholt werden muß.
- Die von den verschiedenen Prozessoren empfangenen SNOOP OUT(i)-Signale werden anschließend in einer OR-Logik 76, welche von der Einheit 72 das bedarfsabhängig aktivierte RETRY-Signal empfängt und ARESP-Ausgangssignale erzeugt, kombiniert und über die Mehrpunktverbindungen des Systembus zu den verschiedenen Prozessoren übertragen, wobei die NULL, SHARED, MODIFY, oder RETRY entsprechenden möglichen Systemzustände angezeigt werden.
- Das in Fig. 4 gezeigte Zeitdiagramm zeigt in prägnanter Form den Betrieb des in Fig. 1 gezeigten Systems sowie der in Fig. 2 gezeigten Einheit 16.
- Insbesondere zeigt die Darstellung CK den zeitabhängigen Zustand/Pegel des Taktsignals CK.
- Die Darstellung ABREQ(i) zeigt den Zustand der Zugriffsanfragen, die die verschiedenen Prozessoren an die Einheit 15 senden können.
- Bei dem Diagramm handelt es sich um eine kummulative Darstellung, da die elektrischen Pegel der verschiedenen Kommunikationsleitungen einzeln für jeden Prozessor dargestellt sind.
- Die Darstellung ABGRANT(i) zeigt auf ähnliche Art und Weise kummulativ, wie sich der Zustand der von der Einheit 15 an die verschiedenen Prozessoren übertragenen Antwortsignale zeitabhängig verändert.
- Die Darstellung ACBUS zeigt Veränderungen der Zustände der von jedem Prozessor während verschiedener Zeitintervalle über den Systembus übertragenen Signale, die eine Adresse und einen dazugehörigen Befehl (Lesen/Schreiben) definieren.
- Das Diagramm SNOOP OUT(i) zeigt kummulativ die zeitabhängige Veränderung der Zustände derjenigen Signale, die von den verschiedenen Prozessoren infolge einer fortdauernden Überwachung der an dem Systembus ACBUS anliegenden Adressen zu der Einheit 15 übertragen werden.
- Die Darstellung ARESP zeigt die zeitabhängige Veränderung derjenigen Signale, die von der Einheit 15 infolge des Empfangs einer Adresse und der SNOOP OUT(i)- Signale über zwei Leitungen des Systembus ausgegeben werden.
- Die Einheit 15 informiert mit Hilfe dieser Signale sämtliche Prozessoren, daß der entsprechende Vorgang nicht durchgeführt werden kann, da die für den Vorgang erforderlichen Ressourcen während der benötigten Zeitintervalle nicht verfügbar sind, so daß der Vorgang erneut angefordert werden muß (RETRY), oder daß der Vorgang Daten betrifft, die nicht gemeinsam von verschiedenen Prozessoren verwendet werden (NULL) oder gemeinsam verwendet werden (SHARED) oder von einem Prozessor verändert werden (MODIFY).
- Die Einheit 15 teilt den Prozessoren die Zugriffsberechtigung abhängig von vorgegebenen Prioritätskriterien (beispielsweise demjenigen Prozessor, der eine längere Zeit zuvor zuletzt die Zugriffsberechtigung erhalten hat) und abgängig von der zeitlichen Verfügbarkeit der für die Ausführung der Übertragung erforderlichen Ressourcen einzeln zu unterschiedlichen Zeitpunkten zu.
- Die Darstellung MADDR zeigt den Zustand des die Einheit 15 mit dem Speicher 5 verbindenden Adressenkanals 18.
- Schließlich zeigt die Darstellung I/OD(i) kummulativ die zeitabhängige Veränderung der Zustände der verschiedenen Datenkanäle und der Einheit DCB 16.
- Es ist ersichtlich, daß das Taktsignal CK mehrere aufeinanderfolgende Zeitintervalle oder Taktperioden P1, P2, ... P13 definiert, in denen sich das Taktsignal ausgehend von dem Anfangspegel 0 zu dem Pegel 1 hin verändert (wobei die Beziehung zwischen dem logischen Pegel und dem elektrischen Pegel vollständig irrelevant ist).
- Die verschiedenen Signale werden für Zeitspannen aktiviert und deaktiviert, die nicht länger als die Taktperiode sind, und der Übergang des Taktsignals von 0 nach 1 in der Mitte jeder Periode definiert denjenigen Zeitpunkt, bei dem der Zustand der Signale stabil ist und als "Strobesignal" ausgewertet oder erkannt werden kann.
- Unter diesen Voraussetzungen kann untersucht werden, wie die verschiedenen möglichen Übertragungen, Transaktionen oder Vorgänge zwischen den Einheiten des Systems ablaufen.
- Diese Übertragungen, Transaktionen oder Vorgänge entsprechen im wesentlichen vier Typen:
- 1) Zugriff auf den Speicher 5 durch den Prozessor i, um Daten zu lesen. Dieser Vorgang wird durch Aktivierung des Signals ABREQ(i) durch den Prozessor mit anschließender Übertragung eines Lesebefehls zusammen mit der Adresse aktiviert.
- 2) Zugriff auf den Speicher 5 durch einen Prozessor i, um Daten zu schreiben. Dieser Vorgang wird durch Aktivierung des Signals ABREQ(i) mit anschließender Übertragung eines Schreibbefehls mit der Adresse aktiviert.
- 3) Eingriff eines Prozessors (i) in die von einem anderen Prozessor Y aktivierte Leseübertragung, um dem Prozessor Y Daten als Ersatz für die aus dem Speicher ausgelesenen Daten zuzuführen.
- Dieser Vorgang wird dadurch aktiviert, daß über die SNOOP OUT(i)-Leitungen der Speichersteuereinheit 15 mitgeteilt wird, daß das Datenelement verändert worden und in dem Prozessor i verfügbar ist.
- 4) I/O-Mitteilung oder direkte Zwischenprozessorkommunikation. Bei diesem Vorgang übermittelt ein Prozessor I ein Datenelement direkt an einen Prozessor Y, der beispielsweise eine Steuerfunktion für eine periphere Einrichtung ausführt.
- Der Vorgang unterscheidet sich von einem Schreibvorgang lediglich dadurch, daß die Adresse einen außerhalb des Speichers liegenden Bereich bezeichnet und prozessorspezifisch (oder I/O-spezifisch) ist.
- Nachfolgend werden die in Fig. 4 gezeigten Darstellungen genau untersucht, wobei beispielsweise dargestellt ist, daß während des Zeitintervalls P1 ein (oder mehrere) ABREQ(i)-Signale aktiviert sind.
- Die Arbitrierungseinheit 15 weist, nachdem sie die Anfragen erhalten hat, dem Prozessor 1 die Zugriffsgenehmigung durch Aktivierung des Signals ABGRANT (1) während des Zeitintervalls P2 zu. Die Zugriffsgenehmigung wird auf Grundlage von bestimmten Prioritätskriterien, beispielsweise für denjenigen Prozessor, der am längsten zuvor auf den Bus zugegriffen hat, erteilt.
- Nach dem Empfang des Signals ABGRANT(1) legt der Prozessor 1 auf den ACBUS- Kanal eine Speicheradresse, die beispielsweise das Modul A identifiziert (Periode P3).
- Die Einheit 15 empfängt diese Adresse und überprüft, ob das Modul A frei, d. h. augenblicklich nicht in einen Lese-/Schreibvorgang verwickelt ist, und aktiviert dieses indem die empfangene Adresse auf den Kanal MADDR 18 gelegt (Periode P4) und geeignete Modulaktivierungs- und Auswahlsignale erzeugt werden.
- Das während der Periode P4 adressierte und aktivierte Modul A gibt, weiterhin beispielhaft, während einer Periode P7 über den MDAT-Kanal 19 die ausgelesenen Informationen aus.
- D. h. ein Lesezyklus erfordert beispielsweise für seine Ausführung vier Taktperioden.
- Während der Periode P7 ermöglicht die Steuereinheit 15 die Ausgabe von dem Modul A und steuert über die Leitungen 20 die Einheit DCB 16 derart an, daß der Kanal 16 mit dem Kanal I/OD1 verbunden wird, um die an dem Ausgang des Moduls A anliegenden Daten zu dem Prozessor 1 zu übertragen. Dadurch ist der von dem Prozessor 1 angeforderte Lesevorgang abgeschlossen.
- Es ist offensichtlich, daß während der Perioden P4 bis P7 andere Lese- oder Schreibvorgänge des Moduls A nicht aktiviert werden können. Des weiteren kann auch nicht der Kanal MADDR 18 während der Periode P4 zur Adressierung anderer Module und auf ähnliche Art und Weise auch nicht der Kanal MDAT und die Einheit DCB 16 während der Periode P7 zur Übertragung anderer Daten zwischen dem Speicher und anderen I/OD-Kanälen verwendet werden.
- Diese Bedingungen bezüglich belegter Ressourcen werden von der Finite-Zustandslogik der Steuereinheit 15 berücksichtigt.
- Sobald mit dem Lesevorgang aus dem Modul A begonnen worden ist, kann jedoch der MADDR-Kanal freigemacht werden, so daß andere die Module B oder C, D, E oder F betreffende Betriebsvorgänge aktiviert werden können, ehe abgewägt wird, was zum Abschluß der Überprüfung des zwischen dem Prozessor 1 und dem Modul 7 begonnen Vorgangs geeignet ist.
- Die während der Periode P3 an dem Systembus ACBUS anliegende Adresse wird nicht nur von der Einheit 15, sondern auch von den Prozessoren 2, 3, 4 empfangen, welche derart eingestellt sind, daß sie überprüfen, ob die durch dieselbe Adresse identifizierten Informationen in ihren eigenen Cachespeichern vorhanden sind oder nicht und in welcher Form (gemeinsam verwendet, verändert) diese Informationen vorhanden sind.
- Sind diese Informationen nicht vorhanden oder werden lediglich gemeinsam, d. h. aufgeteilt, verwendet, übertragen die verschiedenen Prozessoren während der Periode P4 SNOOP OUT(i)-Signale mit einer entsprechenden Signalisierung (NULL/S) zu der Einheit 15.
- Während der Periode P4 bestätigt die Einheit 15, daß hinsichtlich des Zustands des Cachespeichers für die verschiedenen Prozessoren kein Aktualisierungsvorgang angefordert worden ist, indem das Signal ARESP mit der Signalisierung NULL/ S an sämtliche Prozessoren gesendet wird.
- Nachfolgend wird angenommen, daß dem Prozessor 2 während der Periode P3 die Zugriffsberechtigung auf den Systembus für einen Lesevorgang erteilt worden ist.
- Während der Periode P4 legt der Prozessor 2 für einen Lesevorgang in dem Modul (A) (2 > A) eine Adresse auf den Systembus. Diese Adresse wird von der Einheit 15 empfangen, die gerade einen Lesezyklus in dem Modul A aktiviert hat.
- Nachdem die Einheit 15 festgestellt hat, daß die durch das Modul A gebildete Ressource nicht verfügbar ist, überträgt die Einheit 15 daher nicht die Adresse über den Kanal MADDR und signalisiert, nachdem sie von den Prozessoren 1, 3, 4 die Bestätigung erhalten hat, daß der Lesevorgang keine in ihren Cachespeichern enthaltenen Datenelemente betrifft (SNOOP OUT(i) = NULL), sämtlichen Prozessoren (ARESP = RETRY), daß der Lesevorgang nicht ausgeführt wird und der Prozessor 2 die Leseanfrage wiederholen muß (Periode P6).
- Daher aktiviert der Prozessor P2 erneut das Signal ABREQ(2) während der Periode P7, und die Einheit 15 aktiviert das Signal ABGRANT(2) während der Periode P8 (wobei angenommen wird, daß nicht gleichzeitig Anfragen mit einer höheren Priorität von anderen Prozessoren vorliegen).
- Somit kann der Prozessor 2 während der Periode P9 erneut die Adresse auf den Bus ACBUS legen und einen Lesevorgang bezüglich des Moduls A anfordern.
- Da in diesem Fall die notwendigen Ressourcen frei sind, wird der Vorgang durchgeführt: die Adresse wird von der Steuereinheit 15 über den Kanal MADDR 18 übertragen (Periode P10), und das angeforderte Datenelement wird über den Kanal MDAT 19, die Einheit DCB 16 und den Kanal I/OD2 von dem Prozessor 2 während der Periode P13 empfangen.
- Nachfolgend wird angenommen, daß der Prozessor 3, der eine Genehmigung für einen Zugriff auf den Bus erhalten hat, während der Periode P5 eine das Modul C für einen Lesevorgang bezeichnende Adresse auf den Bus ACBUS legt.
- Da das Modul C frei ist, wird der Lesevorgang durch die Einheit 15 gestartet und läuft zeitlich wie bereits gesehen ab, so daß dies nicht wiederholt werden muß. Dies deshalb, da angenommen worden ist, daß das aus dem Modul C ausgelesene Datenelement in keinem der Prozessorcachespeicher vorhanden ist.
- Ist hingegen das Datenelement in einem Cachespeicher vorhanden und wurde es verändert, läuft der Vorgang auf andere Art und Weise ab: so legt beispielsweise der Prozessor 4, von dem angenommen worden ist, daß er die Zugriffsberechtigung für den Bus ACBUS erhalten hat, während der Periode P6 eine Adresse für das Modul B auf den Bus.
- Die Steuereinheit 15 überträgt die Adresse über den Kanal MADDR (Periode P7) und aktiviert das Modul B, empfängt jedoch auch über die SNOOP OUT(i)-Signale eine Signalisierung, daß das angeforderte Datenelement in dem Cachespeicher eines anderen Prozessors (beispielsweise des Prozessors 3, SNOOP OUT 3 = MODIFY) vorhanden ist.
- Daher signalisiert die Einheit 15 sämtlichen Prozessoren über ARESP = MODIFY (Periode P8), daß das adressierte Datenelement nicht von dem Speicher sondern von einem Prozessor zur Verfügung gestellt wird.
- Der Prozessor 3 erkennt, daß eine Anfrage bestätigt worden ist. Während der Periode P 10 steuert die Einheit 15 die Einheit DCB 16 derart an, daß eine Übertragung des veränderten Datenelements von dem Prozessor 3 über den Kanal I/OD3, die Einheit DCB 16 und den Kanal I/OD4 zu dem Prozessor möglich ist, während das aus dem Modul B ausgelesene Datenelement aufgrund der Wirkung des Deaktivierungssignals OEN B nicht ausgehend von dem Ausgang des Moduls übertragen wird.
- Vorteilhafterweise werden auch die Ausgabedaten des Prozessors 3 zu dem Modul B übertragen, um als Ersatz für das zuvor vorhandene Datenelement in das Modul geschrieben zu werden.
- Der letzte zu berücksichtigende Vorgangstyp ist der Schreibvorgang.
- Beispielsweise erzeugt der Prozessor 1 während der Periode P8 eine Anfrage ABREQ(i), um auf den Systembus zuzugreifen, und erhält die Genehmigung zum Zugriff auf den Bus ACBUS, da keine Zugriffsanfragen mit höherer Priorität vorliegen (Periode P9, das Signal ABGRANT1 ist aktiviert).
- Daher legt er während der Periode P10 eine Adresse für das Modul B (1 > B) sowie einen Schreibbefehl auf den Kanal ACBUS.
- Während der nachfolgenden Periode P11 wird unter der Annahme, daß die Einheit 15 keinen Ressourcenkonflikt feststellt, die Adresse zu dem Kanal MADDR 18 und das zu schreibende Datenelement von dem Kanal I/OD1 zu dem Kanal MDAT 19 übertragen.
- Ist die Ressource nicht verfügbar, ist das Speichermodul belegt oder ist während der Periode P11 der Kanal MDAT 19 (infolge eines MODIFY-Signals) belegt, wird die Übertragung des Datenelements und der Adresse blockiert, und die Einheit 15 erzeugt während der Periode P11 ein RETRY-Signal.
- Es ist zu beachten, daß eine zusammen mit einer von einem anderen Prozessor erzeugten Veränderungsanfrage (MODIFY) vorliegende Schreibanfrage auf zwei unterschiedliche Arten behandelt werden kann.
- Kollidiert die Schreibanfrage mit der eine höhere Priorität aufweisenden Veränderungsanfrage und läuft eine Veränderung derart ab, daß ein entsprechendes Datenelement in dem Speicher vor dem Schreiben aktualisiert wird, wird der Schreibanfrage der Zugriff auf den Systembus verwehrt.
- Entspricht andererseits der Lesevorgang, der gerade den Eingriff eines anderen Prozessors mit einem MODIFY-Signal hervorgerufen hat, einem Lesevorgang, der beabsichtigt, RWIT zu verändern (d. h. es ist bereits bekannt, daß das gelesene Datenelement verändert werden wird), ist eine Aktualisierung des Datenelements in dem Speicher sinnlos, und es kann der Zugriff auf den Systembus für einen Schreibvorgang selbst dann erteilt werden, falls gleichzeitig eine Zugriffsanfrage für einen der Datenkanäle hinsichtlich eines Datenelement-Übertragungsvorgangs von einem Prozessor zu einem anderen vorliegt.
- D. h. es tritt eine zeitliche Überlagerung von zwei Datenübertragungen ohne Konflikt auf, was in einer herkömmlichen Systembusarchitektur nicht möglich wäre.
- Diese Überlagerung ist auch zwischen Zwischenprozessor-Datenaustauchvorgängen und Speicherlesevorgängen möglich, indem mögliche Zugriffskollisionen mit Hilfe des RETRY-Signals gelöst werden.
- Erzeugt beispielsweise der Prozessor 3 während der Periode P10 eine Datenschreibzugriffsanfrage (das Signal ABREQ3 wird erzeugt) und erteilt die Einheit 15 während der Periode P11 die Genehmigung für einen Zugriff auf den Systembus (das Signal ABGRANT3 wird erzeugt), legt der Prozessor 3 unter dieser Annahme einen den Vorgang als I/O-Vorgang für den Prozessor 1 identifizierende Adresse auf den Bus ACBUS (Periode P12).
- Hat die Einheit 15 überprüft, daß der I/O-Vorgang für den Prozessor 1 vorgesehen ist und daß keine Ressourcenkonflikte vorhanden sind, weist sie die Einheit DCP 16 derart an, daß das Datenelement von dem Kanal I/OD3 zu dem Kanal I/OD1 gleichzeitig mit der Anweisung der Einheit DCB, ein aus dem Speicher ausgelesenes Datenelement von dem Kanal MDAT 19 zu dem Kanal I/OD2 zu übertragen, übertragen wird.
- Die vorhergehende Beschreibung bezieht sich auf eine Architektur, wie z. B. die in Fig. 1 gezeigte Architektur, bei der die Datenkreuzschiene 16 keinerlei Haltelemente aufweist.
- Daher findet die Übertragung eines Datenelements über die Einheit 16 während einer einzigen Zeitperiode statt.
- Daher ist das System derart ausgestaltet, daß die von einem der Prozessoren auszugebenen Daten während einer Zeitperiode übertragen werden, die derjenigen Zeitperiode nachfolgt, während der die Adresse an den Systembus angelegt wird. Dadurch wird der Einheit 15 Zeit für die Überprüfung gegeben, ob die für den angeforderten Vorgang erforderlichen Ressourcen verfügbar sind.
- Die Datenübertragung über die Einheit 16 während einer einzigen Zeitperiode setzt voraus, daß die Daten während dieser Zeitperiode über die gesamte Länge des Kanals IIOD(i), über die Einheit und über den Kanal MDAT 19 übertragen werden.
- Durch diese Bedingung wird daher die Taktperiode nach unten begrenzt.
- Gemäß einem weiteren Aspekt der vorliegenden Erfindung weist die Kreuzschienenverbindungslogik unmittelbar stromabwärts von den Empfängern 21, 22, 24 und 35 angeordnete Eingangshalteregister und unmittelbar stromaufwärts von den Ausgangstreibern 25, 26, 27, 28 und 29 angeordnete Ausgangshalteregister auf.
- Werden lediglich Eingangshalteregister vorgesehen, wird der Datenpfad in zwei Zweige aufgeteilt, von denen jeder in zwei aufeinanderfolgenden Taktperioden durchlaufen werden kann, wobei jeweils die Laufzeit auch dann deutlich kürzer ist, falls die Gesamtlaufzeit genauso groß wie die bei Fig. 3 auftretende Gesamtlaufzeit ist.
- Werden Eingangs- und Ausgangshalteregister vorgesehen, wird der Datenpfad in drei Zweige aufgeteilt, wobei jeder während einer von drei aufeinanderfolgenden Taktperioden durchlaufen wird.
- In beiden Fällen wird eine sehr hohe Übertragungsfrequenz auf dem Kanal MDAT 19 erhalten, und zudem überschneiden sich teilweise die Datenübertragungsphasen der unterschiedlichen Kanäle.
- Die Unterteilung des Datenpfads ermöglicht zudem die Realisierung unterschiedlicher Übertragungsparallelitäten zwischen dem Speicher und der DCB sowie zwischen der DCB und den Prozessoren, wodurch die Anzahl der Anschlüsse der einzelnen Prozessoren deutlich reduziert werden kann.
- Fig. 5 zeigt schematisch ein Blockschaltbild eines bevorzugten Ausführungsbeispiels der Datenkreuzschiene; bei der diese und weitere erfinderische Konzepte eingesetzt werden.
- Die den bereits in der Darstellung von Fig. 2 gezeigten Elementen entsprechenden Funktionselementen von Fig. 5 sind mit denselben Bezugszeichen versehen.
- Der durch 64 + 8 Leitungen gebildete Datenkanal MDAT 19 ermöglicht eine Datenübertragung zu und von dem Speicher mit einer 8-Byte-Parallelität (einem Doppelwort) zusammen mit einem 8-Byte-Fehlerkorrekturcode.
- Der Datenkanal 19 ist mit den Empfängern 35 und den Treibern 29 verbunden. Der Ausgang der Empfänger 35 ist an ein Halteregister 37 zum Halten der von dem Speicher empfangenen Daten angeschlossen.
- Der Ausgang des Registers 37 ist an eine Syndromgeneratorlogik 38 (SYNDR GEN) und an ein Fehlerkorrekturnetzwerk 329 (DATA CORRECTION) herkömmlicher Art angeschlossen.
- Der Syndromgenerator 38 analysiert die empfangenen Informationen, erkennt mögliche korrigierbare und nicht-korrigierbare Fehler (wobei im zweiten Fall ein "Fehler nicht korrigierbar"-Ausgangssignal erzeugt wird) und steuert die Logik 39, um die korrigierbaren Fehler zu korrigieren.
- Des weiteren weist er jedem Informationsbyte ein Paritätssteuerbyte zu, welches zu der Logik 39 übertragen wird.
- Die Logik 39 gibt über einen Ausgabekanal 40 eine 8-Byte-Information mit jeweils einem Paritätsbyte aus.
- Der Ausgabekanal 40 teilt die Informationen auf vier Gruppen von Logikschaltungen 41, 142, 143, 144, die jeweils einem Prozessorkanal zugeordnet sind, auf.
- Da die Gruppen 41, 142, 143, 144 zueinander identisch sind, ist lediglich die dem Kanal I/OD1 zugeordnete Gruppe 41 detailliert dargestellt.
- Die Gruppe 41 umfaßt ein erstes 72-Byte-Register 42 deren Eingänge mit dem Kanal 40 verbunden sind und deren Ausgänge derart in Gruppen von 18 Elementen verschaltet sind, daß Eingangsgruppen eines Multiplexers 31 gebildet werden, wobei der Multiplexer 31 elf Eingangsgruppen mit jeweils 18 Elementen aufweist.
- Die Ausgänge des Multiplexers 31 sind mit den Eingängen eines 18-Zellen-Registers 44 verbunden, dessen Ausgänge mit den Eingängen der Treiber 25 verbunden sind, deren Ausgänge wiederum zu dem Kanal I/OD1 führen.
- Vier Eingangsgruppen 45 des Multiplexers 31 sind direkt an den Kanal 40 angeschlossen.
- Die übrigen drei Eingangsgruppen sind mit drei Kanälen 46, 47 bzw. 48 verbunden, die jeweils 18 Drähte umfassen und denen von den Logikgruppen 142, 143 bzw. 144 zwei Informationsbytes mit jeweils einem Paritätsbyte zugeführt werden.
- Der durch von dem Decoder 20 erzeugte geeignete Auswahlsignale angesteuerte Multiplexer 31 ermöglicht, daß das Register 44 nacheinander geladen wird und somit aus dem an dem Kanal 40 anliegenden oder in dem Register 43 gehaltenen Doppelwort gewonnene Bytepaare nacheinander zu dem Kanal I/OD1 übertragen werden. Des weiteren ermöglicht er die Übertragung von Bytepaaren (und zugeordneten Paritätsbytes), die einzeln oder nacheinander über die Logikgruppen 142, 143 bzw. 144 von den Kanälen I/OD2, D3 bzw. D4 zugeführt werden, über den Kanal I/OD1.
- Die durch den Multiplexer angebotene Möglichkeit, direkt von dem Kanal 40 ein Doppelbyte auszuwählen, ermöglicht, daß das Register 44 mit einem an dem Kanal 40 anliegenden Doppelbyte und gleichzeitig das Register 42 mit dem an dem Kanal 40 anliegenden Doppelwort geladen wird.
- Auf diese Weise kann das ausdrücklich durch einen Lesevorgang adressierte Doppelbyte sehr schnell zu dem Prozessor übertragen werden. Die übrigen in dem Register 42 gehaltenen Doppelbytes können veranlaßt werden, diesem Doppelbyte in einer geeigneten Reihenfolge zu folgen.
- Der Lesefluß wird jedoch genauer weiter unten erläutert.
- Die Datenkreuzschiene enthält in der Einheit 41 eine Empfängergruppe 21, deren Eingänge mit dem Kanal I/OD1 und deren Ausgänge mit dem 18-Zellen-Register 49 verbunden sind, um Daten in den Speicher zu schreiben oder Daten zwischen Prozessoren zu übertragen.
- Die Ausgänge des Registers 49 sind mit einem Kanal 50 verbunden, der die in dem Register gehaltenen Informationen auf die Logikgruppen 42, 43, 44 (insbesondere auf dem Multiplexer 31 entsprechende Multiplexer aufteilt).
- Die Ausgänge des Registers 49 sind zudem mit den Eingängen eines zweiten Registers 51 verbunden, dessen Ausgänge mit den Eingängen eines dritten Registers 52 und einer Paritätsfehler-Überprüfungslogik (PCHECK) verbunden sind.
- Die Ausgänge des Registers 52 sind ihrerseits mit den Eingängen eines vierten Registers 54 verbunden, dessen Ausgänge kaskadenartig mit den Eingängen eines fünften Registers 55 verbunden sind.
- Während die Register 49 und 51 18 Zellen aufweisen, weisen die Register 52, 54, 55 16 Zellen auf, da das Speichern der Paritätsbits überflüssig ist.
- Die Byteausgänge der Register 51, 52, 54, 55 sind mit einer ersten Gruppe von Eingängen 57 eines Multiplexers 56 verbunden, der vier Kanäle zu jeweils 64 Bits aufweist.
- Die anderen Gruppen von Eingängen 58, 59, 60 sind mit Logikgruppen 142, 143 bzw. 144 verbunden, die der Gruppe 41 entsprechen und den Datenkanäle I/OD2, I/OD3 bzw. I/OD4 zugeordnet sind.
- Die Ausgänge des Multiplexers 56 sind mit den Eingängen einer 8-Bit-Code- Generatorlogik 61 zur Erfassung und Korrektur von Fehlern (ECC GEN) und mit den Eingängen eines 72-Bit-Registers 62, welches zudem über acht Eingänge den von der Logik 61 erzeugten ECC-Code empfängt, verbunden.
- Die Ausgänge des Registers 62 sind mit den Eingängen der Ausgangstreiber 29, die zu dem Speicherkanal MDAT 19 führen, verbunden.
- Fig. 6 zeigt ein Zeitdiagramm des Verhaltens der in Fig. 5 gezeigten DCB-Logik.
- Die durch dieselben Signalnamen bezeichneten unterschiedlichen Zeilen der Darstellung besitzen die bereits anhand Fig. 4 beschriebene Bedeutung.
- Der Einfachheit halber wurde die SNOOP OUT-Darstellung weggelassen, während die I/OD(i)-Darstellung, die den Zustand der zu den Prozessoren führenden Verbindungskanäle wiedergibt, die Darstellung DIREG, die den Zustand der DCB- Eingangsregister, wie z. B. der in Fig. 5 gezeigten Register 49 und 37 wiedergibt, die Darstellung MDAT, die den Zustand des Speicherdatenkanals MDAT 19 wiedergibt, die Darstellung DOREG, die den Zustand des von dem Speicher zu der DCB führenden Eingangsregisters 37 wiedergibt, und die Darstellung DO(i), die den Zustand der zu den Datenkanälen führenden DCB-Ausgangsregister 44 wiedergibt, hinzugefügt worden sind.
- Durch die Aufteilung des Datenpfads in Zweige können sehr kurze Taktperioden CK, beispielsweise mit einer Dauer von 19 nsec, verwendet und der Bus ACBUS oder der Speicherkanal MDAT für lediglich zwei Perioden (20 nsec bei jeder Übertragung) belegt werden.
- Bei jeder Übertragung können acht Datenbytes (zwei Worte) oder ein Mehrfaches davon übertragen werden.
- Durch Ausnützen der Tatsache, daß bei der beschriebenen Architektur für jeden Kanal entsprechend zugeordnete und "gepufferte" Ressourcen verfügbar sind, kann die Übertragung auf der Datenkanalebene des Prozessors in Form von aufeinanderfolgenden Teilübertragungen, die jeweils während einer Taktperiode zwei Bytes gleichzeitig übertragen, durchgeführt werden.
- Damit ist die Möglichkeit verbunden, daß sich die Zeiten für eine Datenübertragung zwischen den unterschiedlichen Kanälen I/O und dem Speicher überschneiden.
- Gleichzeitig bilden der Speicherdatenkanal MDAT und der Adressenbus des Systems zwei Knotenpunkte, die für einen sequentiellen und geordneten Daten- und Adressenfluß sorgen und die Verwaltung und Steuerung der verschiedenen Vorgänge ermöglichen, ohne daß den Daten und den Adressen entsprechende Korrelationsbezeichnungen, die vollständig überflüssig sind, zugeordnet werden müssen.
- Unter Bezugnahme auf Fig. 6 erzeugt ein beliebiger Prozessor 1 während einer Periode P1 eine Zugriffsanfrage ABREQ1 und empfängt während der Periode P3 die Genehmigung für einen Zugriff auf den Systembus und den Datenkanal.
- Während der Perioden P5 und P6 legt der Prozessor 1 daher eine Adresse und entsprechende Befehle auf den Bus ACBUS.
- Die Adresse wird während der Perioden P8 und P9 von der Speichersteuereinheit 15 zu dem Speicheradressenkanal MADDR übertragen.
- In der Zwischenzeit hat der Prozessor 1 während der Periode P5 ein Daten-Doppelbyte auf den Kanal I/OD1 gelegt, welches während der Periode P6 in dem Register 49 (Fig. 4) gehalten und während der darauffolgenden Perioden allmählich von dem Register 49 zu den Registern 51, 52, 54, 55 übertragen wird.
- Während der Periode P10 wird das über den Kanal I/OD1 empfangene erste Doppelbyte in dem Register 55 gehalten.
- Der Prozessor 1 legt während der Periode P6 ein zweites Daten-Doppelbyte auf den Kanal I/OD1, welches nach der Periode P10 in dem Register 54 gehalten wird, nachdem es von dem Register 49 zu den kaskadenartig verschalteten Registern 51, 52, 54 übertragen worden ist.
- Auf analoge Art und Weise legt der Prozessor 1 während Perioden P7 und P8 ein drittes und ein viertes Bytepaar auf den Kanal I/OD1, die nach der Periode P10 in entsprechenden Registern 51 und 52 gehalten werden und somit verfügbar sind.
- Somit sorgt der Prozessor 1 während der vier Perioden P5, P8 für die Übertragung von acht Bytes in Form von aufeinanderfolgenden Paaren, wobei die acht Bytes ab der Periode P10 parallel am Ausgang des Mulitplexers 56 verfügbar sind.
- Während der Perioden P12, P13 ist der Multiplexer 56 aktiviert, und die Informationen werden zu dem Register 62 übertragen, wo sie gehalten werden, wodurch die Ausgangsdaten auf dem Kanal MDAT 19 beibehalten werden.
- Erzeugt ein anderer Prozessor 2 während der Periode P3 das Signal ABREQ2 und empfängt für einen ein anderes Modul als das bereits durch den Prozessor 1 belegte Modul betreffende Schreibvorgang während der Periode P5 den Zugriff ABGRANT2 und sind die dafür erforderlichen Ressourcen frei, kann der Prozessor 2 den Schreibvorgang dadurch starten und abschließen, daß während der Perioden P7, P8 eine Adresse auf den Bus ACBUS und während der Perioden P7 ... P10 vier Bytepaare nacheinander auf den Kanal I/OD2 gelegt werden.
- Diese Informationen werden während der Perioden P14, P15 in das Register 62 kopiert und dort beibehalten.
- Übertragungen von den beiden Prozessoren 1 und 2 zu dem Speicher erfolgen somit teilweise zeitlich überlagert.
- Ein Lesevorgang läuft im wesentlichen ähnlich ab.
- Beispielsweise wird einer von dem Prozessor 1 während der Periode P5 erzeugten Zugriffsanfrage während der Periode P7 die Zugriffsgenehmigung derart erteilt, daß der Bus ACBUS während der Perioden P9, P10 mit einer Adresse belegt werden kann.
- Die Adresse wird während der Perioden P12, P13 zu dem Kanal MADDR 18 übertragen.
- Das gelesene Datenelement ist beispielsweise während der Perioden P20, P21 auf dem Kanal MDAT 19 verfügbar und wird während der Perioden P21, P22 in dem Register 37 (Darstellung DOREG) gehalten.
- Während der Periode P22 können der Multiplexer 31 und das Register 42 derart gesteuert werden, daß ein Bytepaar zu dem Register 44 übertragen wird und sämtliche von dem Speicher empfangenen acht Bytes in das Register 42 geladen werden.
- Während der Periode P22 sind somit der Kanal MDAT 19 und das Register B7 frei, um beispielsweise für einen anderen Prozessor bestimmte Informationen übertragen und halten zu können.
- Während der Periode P23 kann das in dem Register 44 gehaltene Doppelbyte zu dem Kanal I/OD1 übertragen werden, während das Register 44 mit einem mit Hilfe des Multiplexers 31 aus den in dem Register 42 gehaltenen Doppelbytes ausgewählten Doppelbyte geladen wird.
- Während der Perioden P24, P25, P26 werden nacheinander die drei Bytepaare zu dem Kanal I/OD1 übertragen, und die Übertragung ist abgeschlossen.
- Es ist offensichtlich, daß auch ein Lesevorgang in Form von Übertragungsvorgängen ablaufen kann, die teilweise mit anderen Lesevorgängen überlagert sind.
- Liegt beispielsweise während der Periode P3 eine Zugriffsanfrage des Prozessors P2 vor, die nicht einem Schreibvorgang, sondern einem Lesevorgang während der Perioden P7, P8 zugeordnet ist, würde das ausgelesene Datenelement, weiterhin unter der Annahme, daß Ressourcen verfügbar sind, während der Perioden P18, P19 an dem Kanal MDAT anliegen und während der Perioden P19, P20 in das Register 27 (Darstellung DOREG) geladen werden.
- Die Blockübertragung in das Register 44 (Darstellung DO(i)) würde während der Perioden P20 ... P23 und die Übertragung zu dem Kanal I/OD2 während der Perioden P21 ... P24 teilweise zeitlich überlagert mit den in den Registern DQ1 und auf dem Kanal I/OD1 ablaufenden Vorgängen ablaufen.
- Es wird nunmehr angenommen, daß während der Periode P9 ein Prozessor 3 den Zugriff auf den Systembus für einen Schreibvorgang anfordert.
- Dies setzt voraus, daß der Kanal MDAT nach zehn Taktperioden nach der Periode, während der die Anfrage erzeugt worden ist, d. h. während der Perioden P20, P21, verfügbar ist, während der Kanal MDAT andererseits belegt wird, um die während der Periode P5 erzeugte Leseanfrage zu befriedigen.
- Daher blockiert die Speichersteuereinheit 15 die Übertragung, sobald sie die Genehmigung für einen Zugriff auf den Bus erhalten und den Vorgang als einen Schreibvorgang erkannt hat (Perioden P13, P14), indem die Übertragung der Adresse zu dem MADDR-Kanal (Periode P16) und die Übertragung der Daten zu dem Kanal MDAT verhindert wird, und zwingt den Prozessor 3 mit Hilfe eines als ein ARESP- Signal zu einem bestimmten Zeitpunkt vorliegenden RETRY-Signals (Perioden P18, P19), die Zugriffsanfrage während der Periode P21 oder danach zu wiederholen.
- Es ist daher ersichtlich, daß die Interferenzzeit und mögliche Kollisionszeit zwischen zwei Übertragungsvorgängen auf lediglich zwei Taktperioden beschränkt ist, während die Durchführung eines Datenübertragungsvorgangs 19 Taktperioden zum Schreiben in den Speicher und 18 Taktperioden zum Lesen aus dem Speicher benötigt.
- Es sind daher teilweise überlagerte Übertragungen möglich, die durch die Verwendung unterschiedlicher Speicherressourcen (Module), unterschiedlicher Prozessorkanäle (I/O(i)) mit entsprechender Pufferung und durch jedem Prozessorkanal in der DCB- Logik zugeordnete Serialisierungs- und Parallelisierungsressourcen durchgeführt werden.
- Auf Grundlage der in den Fig. 5 und 6 gezeigten Darstellungen kann des weiteren unmittelbar darauf geschlossen werden, daß im Falle eines Prozessoreingriffs, um ein verändertes Datenelement zu einem anderen Prozessor zu übertragen, der Übertragungsvorgang direkt in Form von seriellen Bytepaaren von einem funktionell dem in Fig. 4 gezeigten Register 49 entsprechenden Register über einen der Kanäle 50, 46, 47, 48 zu einem funktionell dem Register 44 entsprechenden Register durchgeführt werden kann.
- Diese Übertragung kann, wie bereits anhand des in Fig. 3 gezeigten Zeitdiagramms gesehen worden ist, mit einer oder mehrerer Übertragungen zwischen den Prozessoren und dem Speicher integriert zeitlich überlagert sein.
- Es ist klar, daß die vorhergehende Beschreibung sich lediglich auf ein bevorzugtes Ausführungsbeispiel der Erfindung bezieht und viele Abwandlungen durchgeführt werden können.
- Die Anzahl der Prozessoren und Speichermodule (bei dem bevorzugten Ausführungsbeispiel vier Prozessoren und sechs Module) kann genauso wie das Parallelitätsverhältnis zwischen der Speicherparallelität und der Prozessorparallelität beliebig gewählt werden.
- Zur Erzielung einer mehrfachen Parallelität können mehr Datenkreuzschienen- Logikbauteile parallel verwendet werden, und die DCB-Logik kann zusätzlich zu den Paritätsüberprüfungsschaltungen mit einer Fehlerkorrektur und Codegeneration zur Erfassung und Korrektur von Fehlern sowie Schaltungen zur Ausrichtung einzelner Informationsbytes und Schaltungen zum Kombinieren (Verketten) der aus dem Speicher ausgelesenen Informationen mit den von den Prozessoren kommenden Informationen, um die Speicherinformationen teilweise zu verändern, ausgerüstet sein.
- Ebenso ist möglich, verschiedene Signale zur Arbitrierung des Zugriffs auf die Adressen- und Befehlsbusse (ABREQ(i)) und des Zugriffs auf den Datenkanal (DBREQ(i)) zu verwenden, wobei der jeweilige Vorgang abhängig von der vorliegenden Zugriffsanforderung als Schreib-/Lesevorgang oder als Vorgang eines anderen Typs bezeichnet und die Genehmigung für einen Zugriff auf den Bus abhängig von den vorliegenden oder geplanten erforderlichen Ressourcen erteilt wird, wodurch die "RETRY"-Fälle auf eine minimale Anzahl reduziert und somit eine bestmögliche Ausnutzung des Systembus erzielt wird.
- Das Register 42 kann durch eine Vielzahl von kaskadenartig verschalteten Registern oder durch einen "FIFO"-Stapelspeicher (first in-first out) gebildet sein, um ein und demselben Prozessor den schnellen und sukzessiven Empfang von Daten bezüglich aufeinanderfolgender Leseanfragen zu ermöglichen.
- Dasselbe Konzept kann verwendet werden, um RETRY-Vorgänge bei Schreibvorgängen mit Ressourcenkonflikten zu vermeiden, indem der Schreibvorgang in einem stromabwärts von dem in Fig. 5 gezeigten Register 51, 52, 54, 55 angeordneten Eingangspuffern gespeichert und ein ähnliches Pufferregister zum temporären Speichern der Adresse in der Steuereinheit 15 angeordnet wird.
- Auf diese Weise kann ein Schreibvorgang, der nicht innerhalb einer bestimmten Periode ausgeführt werden kann, auf eine nachfolgende Periode, in der die erforderlichen Ressourcen verfügbar sind, aufgeschoben werden.
- Darüber hinaus ist nicht unbedingt erforderlich, daß sämtliche oder ein Teil der Prozessoren mit Cachespeichern ausgestattet sind, da die durch die den Gegenstand der vorliegenden Erfindung bildende Architektur erzielten Vorteile durch die Tatsache realisiert werden, daß die Übertragung von Datenzwischenprozessoren überlagert mit Übertragungen zwischen den Prozessoren und dem Speicher durchgeführt werden können.
- Des weiteren sollte klar sein, daß der in der vorhergehenden Beschreibung verwendete Begriff "Prozessor" auch dahingehend ausgelegt werden kann, daß damit eine Gruppe oder ein "Cluster" von Prozessoren gemein ist. Diese können über einen lokalen Bus miteinander verbunden sein und über den Systembus sowie mit den Punkt-zu-Punkt- Kanälen zur Datenübertragung über einen Schnittstellenadapter kommunizieren, so daß die Gruppe von Prozessoren von außen betrachtet wie ein einziger Prozessor wirkt.
- Ebenso ist eine direkte Verbindung der Prozessorgruppen mit dem Systembus ohne Verwendung von Schnittstellenadaptern möglich, wobei jeder Prozessor der Gruppe direkt an denselben Datenübertragungskanal, der hinsichtlich seiner Anschlüsse an die verschiedenen Prozessoren als ein Mehrpunktdatenbus und hinsichtlich der Ansammlung von Prozessoren und seines Anschlusses an den Datenkreuzschienenbus 16 als ein Punkt-zu-Punkt-Datenbus gesehen werden kann, angeschlossen.
- Natürlich würde in diesem Fall die Daten-"Übertragungsrate" aufgrund der stärkeren Belastung des Datenkanals geringer sein, und es müßte ein Taktsignal CK mit einer niedrigeren Frequenz verwendet werden.
- Ist ein System vorhanden, bei dem eine erste Vielzahl von einzelnen Prozessoren über mehrere Punkt-zu-Punkt-Datenkanäle mit der Datenkreuzschiene und eine zweite Vielzahl von Prozessoren (beispielsweise Prozessoren, die als Peripheriesteuerungen mit geringeren Geschwindigkeitsanforderungen dienen) über einen einzigen Mehrpunkt- (Datenkanal-)Bus kommunizieren, könnte alternativ der Datentransfer über diesen Bus derart ablaufen, daß der Bus für einige Taktperioden (beispielsweise zwei Taktperioden) besetzt und die Übertragungsfrequenz unverändert beibehalten wird (z. B. eine einzige Taktperiode für jeden übertragenen Block).
- Diese Lösung ist offensichtlich nur dann geeignet, falls die Datenkreuzschiene wie in Fig. 5 gezeigt aufgebaut ist, d. h. Pufferregister aufweist.
- Fig. 7 zeigt wie Fig. 1 schematisch diese Architekturart. Die unterschiedlichen Elemente, die funktionell den in Fig. 1 gezeigten Elementen entsprechen, sind mit denselben Bezugszeichen versehen.
- Die Darstellung von Fig. 7 unterscheidet sich gegenüber der von Fig. 1 lediglich durch die Tatsache, daß die Prozessoren 1 und 2 durch ein Prozessorenpaar gebildet sind. Der Prozessor 1 ist durch zwei Prozessoren 101, 102 gebildet, die direkt an den ACBUS-Bus 17 und den Datenkanal I/OD1 angeschlossen sind.
- Diese zwei Prozessoren werden von der Speichersteuerungs- und Arbitrierungseinheit 15 als getrennte Prozessoren angesehen, die miteinander nicht nur hinsichtlich eines Zugriffs auf den Befehls- und Adressenbus, sondern auch hinsichtlich eines Zugriffs auf den Datenkanal I/OD1 in Konkurrenz stehen.
- Die Einheit 15 kann diesen Umstand sowohl in der Arbitrierungseinheit als auch in ihrer Finite-Zustandslogik berücksichtigen, und es ist offensichtlich, daß die beiden Prozessoren 101, 102 keine zeitlich überlagerten Vorgänge über den Datenkanal I/OD1 durchführen können.
- Der Prozessor 2 ist durch zwei Prozessoren 103, 104 und einen Schnittstellenadapter 105 gebildet.
- Die beiden Prozessoren 103, 104 kommunizieren miteinander sowie über einen lokalen Bus 106 herkömmlicher Art mit der Schnittstellenlogik.
- Die Schnittstellenlogik 105 ist an den Befehls- und Adressenbus 17 sowie den Datenkanal I/OD2 angeschlossen und arbitriert den Zugriff auf den lokalen Bus 106, indem die Zugriffsanfragen der Prozessoren 103, 104 für einen Zugriff auf den Systembus 17 und den Datenkanal I/OD2 erfaßt werden.
- Diese Anfragen werden zu dem Systembus in Übereinstimmung mit dem Protokoll und der zeitlichen Steuerung dieses Bus übertragen.
- Es ist offensichtlich, daß die Einheit 105 durch das CK-Signal zeitlich derart gesteuert werden muß, daß sie synchron mit den anderen Elementen dieses Systems betrieben wird, während der lokale Bus 106 sowie der Betrieb der Prozessoren 103 und 104 asynchron sein kann. Die direkt mit dem Systembus 17 und dem Kanal 1/OD2 kommunizierenden Prozessoren 101, 102 müssen derselben Bedingung unterliegen.
- Die beiden Prozessoren 103, 104 werden von der Einheit 15 als ein einziger Prozessor angesehen, und die Einheit 105 gibt die empfangenen Mitteilungsdaten zu dem einen oder dem anderen Prozessor weiter.
Claims (8)
1. Mehrprozessorsystem, bei dem mehrere Prozessorgruppen (1, 2, 3, 4) mit jeweils
mindestens einem Prozessor auf mehrere gemeinsame Speichermodule (10, 11, 12, 13,
113, 114) zugreifen können, wobei der Betrieb der Prozessorgruppen und der
Speichermodule durch ein gemeinsames Synchronisiersignal (CK) zeitlich gesteuert
wird, umfassend:
- eine durch das Synchronisiersignal zeitlich gesteuerte Speichersteuereinheit (15),
- einen Mehrpunkt-Systembus (17), der mit den Prozessorgruppen (1, 2, 3, 4) und
der Speichersteuereinheit (15) verbunden ist, um Adressen und Betriebsbefehle, die
keinen zwischen den Prozessorgruppen und den Modulen oder zwischen den
Prozessorgruppen selbst zu übertragenden Daten entsprechen, zu der
Speichersteuereinheit (15) zu übertragen,
- Verbindungslogikschaltungen (16),
- mehrere Punkt-zu-Punkt-Verbindungskanäle (I/OD1, I/OD2, I/OD3, I/OD4), von
denen jeweils einer einer der Prozessorgruppen zugeordnet ist, um Daten, die
keinen Adressen zur Adressierung der Module entsprechen, zwischen den
Prozessorgruppen und den Modulen (10, 11 ... 114) und zwischen den Prozessorgruppen
(1, 2, 3, 4) selbst zu überragen, wobei jeder Verbindungskanal (I/IDi) individuell
eine der Prozessorgruppen (1, 2, 3, 4) mit den Verbindungslogikschaltungen (16)
verbindet,
- einen Speicheradressenkanal (18), der zur Adressierung der Module mit Hilfe der
Steuereinheit (15) mit der Speichersteuereinheit (17) und den Modulen verbunden
ist,
- einen Speicherdaten-Übertragungskanal (19) für Eingangs-/Ausgangsübertragungen
der Module, um die Module mit den Verbindungslogikschaltungen (16) zu
verbinden, wobei die Verbindungslogikschaltungen (16) durch die Speichersteuereinheit
(15) derart angesteuert werden, daß die Punkt-zu-Punkt-Verbindungskanäle (I/OD1)
selektiv mit dem Speicherdaten-Übertragungskanal (19) und mit sich selbst
verbunden werden, und
- Steuerlogikschaltungen (72, 73, 74, 75), die in der Speichersteuereinheit (15)
vorgesehen sind, um über den Systembus (17) eine geordnete Folge von durch die
Prozessorgruppen (1, 2, 3, 4) auf den Systembus (17) gelegten Befehlen und
Adressen zu empfangen, wobei die Steuerlogikschaltungen (72-75) derart
ausge
staltet sind, daß sie für die Ausführung der Befehle angeforderte Ressourcen sowie
deren zeitliche Verfügbarkeit identifizieren und die entsprechenden Befehle und
Adressen zusammen mit Signalen zur Auswahl eines Moduls auf den Adressenkanal
(18) übertragen, falls die Ressourcen verfügbar sind, und wobei die
Steuerlogikschaltungen zudem derart ausgestaltet sind, daß sie die selektive Verbindung der
Punkt-zu-Punkt-Verbindungskanäle (I/OD1) zwischen ihnen selbst und mit dem
Speicherdaten-Übertragungskanal (19) in den Verbindungslogikschaltungen (16)
befehlen und zeitlich steuern.
2. System nach Anspruch 1,
wobei die Verbindungslogikschaltungen (16) für jeden Kanal (19, I/OD1) ein mit den
Logikschaltungen verbundenes Eingangsdaten-Halteregister (37, 49, 42) umfassen.
3. System nach Anspruch 2,
wobei die Verbindungslogikschaltungen (16) für jeden an die
Verbindungslogikschaltungen (16) angeschlossenen Kanal (19, I/OD1) ein Halteregister (44, 62) für von
den Verbindungslogikschaltungen (16) ausgegebene Daten aufweist.
4. System nach Anspruch 3,
wobei:
- der Speicherdaten-Übertragungskanal (19) eine Parallelität aufweist, die einem
Vielfachen der Parallelität der Punkt-zu-Punkt-Verbindungskanäle (I/OD1)
entspricht, und
- die Verbindungslogikschaltungen (16) für jeden an die
Verbindungslogikschaltungen (16) angeschlossenen Punkt-zu-Punkt-Kanal (I/OD1) mehrere kaskadenartig
verschaltete Register (49, 51, 52, 54, 57) umfassen, um mehrere nacheinander
empfangene Daten anzusammeln, sowie Mittel (56) zur gleichzeitigen Übertragung
der mehreren Daten zu einem Ausgangsdaten-Halteregister (62), um die Daten an
den Speicherdaten-Übertragungskanal (11) auszugeben.
5. System nach Anspruch 4,
wobei die Verbindungslogikschaltungen (16) mehrere Multiplexer (31) enthalten, wobei
jeder Multiplexer zwischen ein Dateneingaberegister (42) des Speicherdaten-
Übertragungskanals (19) und ein entsprechendes Ausgangsdaten-Halteregister (44) zum
Halten von an einen der Punkt-zu-Punkt-Kanäle (IIODi) ausgegebenen Daten geschaltet
ist, um nacheinander Teile der in dem Eingangsregister (42) gehaltenen Daten zu dem
zum Halten der an einen entsprechenden Punkt-zu-Punkt-Kanal (IIODi) auszugebenden
Daten vorgesehenen Halteregister (44) zu übertragen.
6. System nach Anspruch 5,
wobei die Multiplexer (31) mehrere Gruppen von Eingängen aufweisen, die jeweils mit
einem der Ausgängen der zur Dateneingabe von einem der Punkt-zu-Punkt-Kanäle
(I/OD1) vorgesehenen Halteregister verbunden sind.
7. System nach Anspruch 1,
wobei die Steuerlogikschaltungen (15) eine Systembuszugriff-Arbitrierungseinheit (70)
zum Arbitrieren des Zugriffs der Prozessorgruppen (1, 2, 3, 4) auf den Systembus (17)
aufweisen.
8. System nach Anspruch 7,
wobei die Steuerlogikschaltungen (15) Mittel (SNOOP OUTi) (72) aufweisen, um von
den Prozessorgruppen (1, 2, 3, 4) Eingriffsanforderungssignale zur Veränderung eines
gelesenen Datenelements in einem der Module bei Anforderung durch eine erste Gruppe
zu empfangen und die Verbindungslogikschaltung (16) derart anzusteuern, daß eine von
einer zweiten Gruppe der ersten Gruppe zugeführte veränderte Dateneinheit übertragen
wird.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP93830022A EP0608663B1 (de) | 1993-01-25 | 1993-01-25 | Multiprozessorsystem mit gemeinsamem Speicher |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69323861D1 DE69323861D1 (de) | 1999-04-15 |
DE69323861T2 true DE69323861T2 (de) | 1999-10-07 |
Family
ID=8215110
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69323861T Expired - Lifetime DE69323861T2 (de) | 1993-01-25 | 1993-01-25 | Multiprozessorsystem mit gemeinsamem Speicher |
Country Status (4)
Country | Link |
---|---|
US (1) | US5701413A (de) |
EP (1) | EP0608663B1 (de) |
JP (1) | JP3645281B2 (de) |
DE (1) | DE69323861T2 (de) |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SE503506C2 (sv) * | 1994-10-17 | 1996-06-24 | Ericsson Telefon Ab L M | System och förfarande för behandling av data samt kommunikationssystem med dylikt system |
DE19623668C1 (de) * | 1996-06-13 | 1997-10-16 | Siemens Nixdorf Inf Syst | Anordnung in Mehrprozessor-Datenverarbeitungsgeräten mit einem Interventionen umfassenden Kohärenzprotokoll für Pufferspeicher und Betriebsverfahren hierzu |
EP0923032B1 (de) * | 1997-12-11 | 2003-03-19 | Bull S.A. | Methode um Daten in einem Multiprozessorrechner über einen Crossbarschalter zu übertragen |
US6125429A (en) | 1998-03-12 | 2000-09-26 | Compaq Computer Corporation | Cache memory exchange optimized memory organization for a computer system |
US6442597B1 (en) * | 1999-07-08 | 2002-08-27 | International Business Machines Corporation | Providing global coherence in SMP systems using response combination block coupled to address switch connecting node controllers to memory |
US6467012B1 (en) * | 1999-07-08 | 2002-10-15 | International Business Machines Corporation | Method and apparatus using a distributed system structure to support bus-based cache-coherence protocols for symmetric multiprocessors |
FR2797969A1 (fr) * | 1999-08-31 | 2001-03-02 | Koninkl Philips Electronics Nv | Dispositif a plusieurs processeurs partageant une memoire collective |
US6715023B1 (en) * | 1999-09-23 | 2004-03-30 | Altera Corporation | PCI bus switch architecture |
US6704822B1 (en) * | 1999-10-01 | 2004-03-09 | Sun Microsystems, Inc. | Arbitration protocol for a shared data cache |
US6766359B1 (en) * | 1999-12-29 | 2004-07-20 | Emc Corporation | Method and apparatus for utilizing multiple paths in a file transfer utility employing an intermediate data storage system |
US6247100B1 (en) * | 2000-01-07 | 2001-06-12 | International Business Machines Corporation | Method and system for transmitting address commands in a multiprocessor system |
US6826619B1 (en) | 2000-08-21 | 2004-11-30 | Intel Corporation | Method and apparatus for preventing starvation in a multi-node architecture |
US6658525B1 (en) | 2000-09-28 | 2003-12-02 | International Business Machines Corporation | Concurrent access of an unsegmented buffer by writers and readers of the buffer |
US6487643B1 (en) | 2000-09-29 | 2002-11-26 | Intel Corporation | Method and apparatus for preventing starvation in a multi-node architecture |
US6772298B2 (en) | 2000-12-20 | 2004-08-03 | Intel Corporation | Method and apparatus for invalidating a cache line without data return in a multi-node architecture |
US7234029B2 (en) | 2000-12-28 | 2007-06-19 | Intel Corporation | Method and apparatus for reducing memory latency in a cache coherent multi-node architecture |
US6791412B2 (en) | 2000-12-28 | 2004-09-14 | Intel Corporation | Differential amplifier output stage |
US6721918B2 (en) | 2000-12-29 | 2004-04-13 | Intel Corporation | Method and apparatus for encoding a bus to minimize simultaneous switching outputs effect |
US6912608B2 (en) * | 2001-04-27 | 2005-06-28 | Pts Corporation | Methods and apparatus for pipelined bus |
US6971098B2 (en) | 2001-06-27 | 2005-11-29 | Intel Corporation | Method and apparatus for managing transaction requests in a multi-node architecture |
JP3757204B2 (ja) * | 2002-12-06 | 2006-03-22 | ファナック株式会社 | エラー検出/訂正方式及び該方式を用いた制御装置 |
JP2004355271A (ja) * | 2003-05-28 | 2004-12-16 | Toshiba Corp | データ転送システム |
JP3764893B2 (ja) * | 2003-05-30 | 2006-04-12 | 富士通株式会社 | マルチプロセッサシステム |
US7577727B2 (en) * | 2003-06-27 | 2009-08-18 | Newisys, Inc. | Dynamic multiple cluster system reconfiguration |
US20050066097A1 (en) * | 2003-09-04 | 2005-03-24 | Matsushita Electric Industrial Co., Ltd. | Resource management apparatus |
US7246188B2 (en) | 2005-02-10 | 2007-07-17 | Qualcomm Incorporated | Flow control method to improve bus utilization in a system-on-a-chip integrated circuit |
CN100412850C (zh) * | 2005-10-17 | 2008-08-20 | 应广科技股份有限公司 | 单芯片多重微控制器的架构及时序控制方法 |
GB0723422D0 (en) * | 2007-11-29 | 2008-01-09 | Level 5 Networks Inc | Virtualised receive side scaling |
US9473596B2 (en) | 2011-09-27 | 2016-10-18 | International Business Machines Corporation | Using transmission control protocol/internet protocol (TCP/IP) to setup high speed out of band data communication connections |
US8930507B2 (en) | 2012-06-12 | 2015-01-06 | International Business Machines Corporation | Physical memory shared among logical partitions in a VLAN |
US8880935B2 (en) | 2012-06-12 | 2014-11-04 | International Business Machines Corporation | Redundancy and load balancing in remote direct memory access communications |
US9396101B2 (en) | 2012-06-12 | 2016-07-19 | International Business Machines Corporation | Shared physical memory protocol |
US9990131B2 (en) * | 2014-09-22 | 2018-06-05 | Xilinx, Inc. | Managing memory in a multiprocessor system |
US11698879B2 (en) * | 2019-12-06 | 2023-07-11 | Intel Corporation | Flexible on-die fabric interface |
CN114297097B (zh) * | 2021-12-01 | 2023-04-14 | 北京时代民芯科技有限公司 | 一种众核可定义分布式共享存储结构 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0057756B1 (de) * | 1981-02-11 | 1985-02-20 | Siemens Aktiengesellschaft | Anordnung zum Datenaustausch in parallel arbeitenden Multi-Mikrorechnersystemen |
US5247689A (en) * | 1985-02-25 | 1993-09-21 | Ewert Alfred P | Parallel digital processor including lateral transfer buses with interrupt switches to form bus interconnection segments |
US5067071A (en) * | 1985-02-27 | 1991-11-19 | Encore Computer Corporation | Multiprocessor computer system employing a plurality of tightly coupled processors with interrupt vector bus |
GB2188175B (en) * | 1986-03-18 | 1990-02-07 | Stc Plc | Data processing arrangement |
US4985832A (en) * | 1986-09-18 | 1991-01-15 | Digital Equipment Corporation | SIMD array processing system with routing networks having plurality of switching stages to transfer messages among processors |
US5297255A (en) * | 1987-07-28 | 1994-03-22 | Hitachi, Ltd. | Parallel computer comprised of processor elements having a local memory and an enhanced data transfer mechanism |
EP0315550A3 (de) * | 1987-11-06 | 1989-10-25 | Oryx Corporation | Hochparallele Rechnerbauweise unter Verwendung eines Koordinatenschalters mit ausgewählter Pipelineverzögerung |
JPH01261772A (ja) * | 1988-04-08 | 1989-10-18 | Cogent Res Inc | コンピュータ及びその動作方法 |
US5438680A (en) * | 1988-04-29 | 1995-08-01 | Intellectual Properties And Technology, Inc. | Method and apparatus for enhancing concurrency in a parallel digital computer |
CA2036688C (en) * | 1990-02-28 | 1995-01-03 | Lee W. Tower | Multiple cluster signal processor |
EP0451983B1 (de) * | 1990-03-29 | 1995-12-13 | Mitsuboshi Belting Ltd. | Treibriemen |
US5274768A (en) * | 1991-05-28 | 1993-12-28 | The Trustees Of The University Of Pennsylvania | High-performance host interface for ATM networks |
US5440752A (en) * | 1991-07-08 | 1995-08-08 | Seiko Epson Corporation | Microprocessor architecture with a switch network for data transfer between cache, memory port, and IOU |
-
1993
- 1993-01-25 EP EP93830022A patent/EP0608663B1/de not_active Expired - Lifetime
- 1993-01-25 DE DE69323861T patent/DE69323861T2/de not_active Expired - Lifetime
-
1994
- 1994-01-10 US US08/179,440 patent/US5701413A/en not_active Expired - Lifetime
- 1994-01-25 JP JP00655894A patent/JP3645281B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US5701413A (en) | 1997-12-23 |
JP3645281B2 (ja) | 2005-05-11 |
EP0608663B1 (de) | 1999-03-10 |
DE69323861D1 (de) | 1999-04-15 |
JPH07311751A (ja) | 1995-11-28 |
EP0608663A1 (de) | 1994-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69323861T2 (de) | Multiprozessorsystem mit gemeinsamem Speicher | |
DE68926036T2 (de) | Speicherkonfiguration zur Verwendung für Schnittstellenbildung zwischen einer Systemsteuereinheit für ein Multiprozessorsystem und dem Hauptspeicher | |
DE69130106T2 (de) | Arbitrierung von paketvermittelten Bussen, einschliesslich Bussen von Multiprozessoren mit gemeinsam genutztem Speicher | |
DE68920435T2 (de) | Steuereinheit für den speicher. | |
DE3689226T2 (de) | Multiprozessorsystem mit multihierarchischen Ebenen. | |
DE69108434T2 (de) | Mehrgruppen-Signalprozessor. | |
DE69233655T2 (de) | Mikroprozessorarchitektur mit der Möglichkeit zur Unterstützung mehrerer verschiedenartiger Prozessoren | |
DE69032481T2 (de) | Buszugriff für Digitalrechnersystem | |
DE69132195T2 (de) | System für verteilte Mehrfachrechnerkommunikation | |
DE69322310T2 (de) | Busarchitektur für integrierten Daten/- und Videospeicher | |
DE69312192T2 (de) | Aufteilung des buszugriffs zwischen mehreren endlichen automaten mit minimaler wartezeit und priorisierung von ähnlichen zyklustypen | |
DE2856483C2 (de) | ||
DE3788805T2 (de) | Prioritaetstechnik für einen zerteilten transaktionsbus in einem multiprozessorrechnersystem. | |
DE68915701T2 (de) | Multiprozessorsystem mit verteilten gemeinsamen Betriebsmitteln und mit Verklemmungsverhinderung. | |
DE3586245T2 (de) | Bildverarbeitungsgeraet und interkommunikationsbus dafuer. | |
DE3689198T2 (de) | Systembus für Kommunikation zwischen Prozessoren. | |
DE3642324C2 (de) | Multiprozessoranlage mit Prozessor-Zugriffssteuerung | |
DE69114961T2 (de) | Vorrichtung für Zusammenschaltungskanäle. | |
DE3851554T2 (de) | Steuerungsanordnung für gemeinschaftlichen Speicher. | |
DE2944419C2 (de) | ||
EP1164474A2 (de) | Verfahren zum hierarchischen Cachen von Konfigurationsdaten von Datenflussprozessoren | |
CH634671A5 (de) | Kanalspeicher-adapter. | |
DE69130932T2 (de) | Speichersystem | |
EP0062141B1 (de) | Schaltungsanordnung zur Eingabe von Steuerbefehlen in ein Mikrocomputersystem | |
DE69230483T2 (de) | Quadraturbusprotokoll zum Ausführen von Transaktionen in einer Rechneranordnung |
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 ITALIA S.P.A., PREGNANA MILANESE, MAILAND, IT |
|
8327 | Change in the person/name/address of the patent owner |
Owner name: EUNICS S.P.A., PREGNANA MILANESE, MILANO, IT |
|
8328 | Change in the person/name/address of the agent |
Representative=s name: HUBER & SCHUESSLER, 81825 MUENCHEN |
|
8327 | Change in the person/name/address of the patent owner |
Owner name: EUTELIA S.P.A., AREZZO, IT |
|
8327 | Change in the person/name/address of the patent owner |
Owner name: BULL SAS, LES CLAYES-SOUS-BOIS, FR |
|
R071 | Expiry of right |
Ref document number: 608663 Country of ref document: EP |