DE3343348A1 - Anordnung zur datenuebertragung zwischen mehreren prozessoren und einem speicher - Google Patents

Anordnung zur datenuebertragung zwischen mehreren prozessoren und einem speicher

Info

Publication number
DE3343348A1
DE3343348A1 DE19833343348 DE3343348A DE3343348A1 DE 3343348 A1 DE3343348 A1 DE 3343348A1 DE 19833343348 DE19833343348 DE 19833343348 DE 3343348 A DE3343348 A DE 3343348A DE 3343348 A1 DE3343348 A1 DE 3343348A1
Authority
DE
Germany
Prior art keywords
data
memory
processor
words
processors
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.)
Withdrawn
Application number
DE19833343348
Other languages
English (en)
Inventor
Timothy Joseph 08033 Haddonfield N.J. Forquer
Hungwen 08034 Cherry Hill N.J. Li
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.)
RCA Corp
Original Assignee
RCA 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 RCA Corp filed Critical RCA Corp
Publication of DE3343348A1 publication Critical patent/DE3343348A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Multi Processors (AREA)
  • Memory System (AREA)

Description

ROA 77,689
U.S. Serial No. 44-5,522
Filed: November 30, 1982
RCA Corporation
New York, N.Y., V.St.v.A.
Anordnung zur Datenübertragung zwischen mehreren Prozessoren und einem Speicher
Die Erfindung betrifft ein Datensystem, das mehrere Zentraleinheiten (sogenannte"Prozessoren") mit einem gemeinsam zugänglichen Speicher enthält, und betrifft insbesondere ein System, bei welchem eine gleichzeitige Kommunikation zwischen mindestens zweien der Prozessoren und dem Speicher, erwünscht ist.
In vielen Datensystemen werden heutzutage mehr als ein Datenprozessor und ein gemeinsamer Speicher verwendet.
Die Möglichkeit eines gleichzeitigen Zugriffs zum Speicher von Seiten zweier oder mehrerer Prozessoren.ist wünschenswert, besteht aber nur dann, wenn der Speicher mehrere Zugänge hat. Wollen mehrere Prozessoren gleichzeitig einen Zugriff zu einem Speicher haben, der "nur einen einzigen Zugang aufweist, dann stehen diese Prozessoren gleichsam in "Konkurrenz" miteinander gegenüber dem Speicher. Die Prozessoren müssen daher warten, bis sie an ihrer Reihe sind, · um über den einzigen Zugang in den Speicher zu greifen. Wenn ein eher bedienter Prozessor eine große Datenmenge einzugeben oder auszulesen hat, dann wird die Wartezeit für einen nachfolgenden Prozessor unannehmbar lang. t-
BAD ORIGINAL
Die Aufgabe der Erfindung besteht darin, einen konkurrenzfreien Zugriff zum Speicher zu ermöglichen, so daß jeder Prozessor jederzeit Zugriff zum Speicher haben kann.
Ein bekannter Schritt in Richtung auf ein konkurrenzfreies System (das ausführlicher weiter unten beschrieben wird) besteht darin, daß zum einen eine Vielzahl von Datenschienen innerhalb eines Datenübertragungsnetzwerkes und zum anderen eine gleiche Vielzahl von Prozessoren vorgesehen, wird, deren jeder mit einer zugehörigen Datenschiene gekoppelt ist, und daß drittens eine Vielzahl von Speichern vorgesehen wird, deren jeder umschaltbar mit allen Datenschienen verbindbar ist. Bei derartigen bekannten Systemen · ist typischerweise jeder Prozessor in einem gegebenen Zeitintervall mit einem der Speicher verbunden. Die jeweils anderen Prozessoren haben während dieses Zeitintervalls keinen Zugriff zu dem betreffenden Speicher. Wenn die Anzahl der Prozessoren, der Speicher und der Datenschienen größer wird, steigen auch Anzahl und Kosten der Schalteinheiten innerhalb des Netzwerks entsprechend. Das eigentliche Ziel eines konkurrenzfreien SpeicherZugriffs wird durch ein solches System noch, nicht erreicht.
Eine andere Annäherung an ein konkurrenzfreies System besteht in der Verwendung einer sogenannten "Bit-gestückelten" Speicheranordnung, bei welcher so viele Speicher vorhanden sind, wie es Bits in einem Datenwort gibt. Im Falle eines Systems, das mit einem 32-Bit-Wort arbeitet, sind also mit jedem Prozessor jeweils 32 Speicher gekoppelt. Ein solches System erfordert eine gesonderte Steu.erschiene, um- Adressen- und Steuersignale zwischen den verschiedenen Prozessoren und den verschiedenen Speichern zu übertragen. Obwohl ein System mit Bit-gestückelter Speicheranordnung weniger kompliziert als das zuvor beschriebene bekannte System ist, stellt es die weniger zufriedenstellende Alternative dar, weil zu beliebiger Zeit jeweils nur ein Prozessor Verbindung mit dem Speicher haben kann.
Die Erfindung wird realisiert in einem System zur gleichzeitigen Übertragung von Datenwörtern zwischen einem Datenspeicher und einer Vielzahl N von Datenprozessoren über ein Übertragungsnetzwerk, wobei das System außerdem eine Einrichtung zur Steuerung der Übertragung enthält.
üemäß der Erfindung enthält die Übertragungssteuereinrichtung N Puffereinrichtungen, von denen jede zwischen einen zugehörigen Prozessor und den Speicher gekoppelt ist, um eine Anzahl M von Wörtern, die proportional der Vielzahl N ist, zwischenzuspeichern. Jede Puffereinrichtung spricht auf Signale von der Steuereinrichtung an, um zum einen die zwischengespeicherten Wörter seriell mit einer Übertragungsgeschwindigkeit X zwischen sich und einem zugehörigen Exemplar der Prozessoren zu übertragen und um zum anderen in paralleler Weise M der Wörter auf einmal zwischen sich selbst und dem Speicher zu übertragen. Die letztgenannte Übertragung erfolgt für die N Puffereinrichtungen nacheinander mit einer solchen Geschwindigkeit, daß die Wortübertragung zwischen jedem Puffer und dem zugeordneten Prozessor ohne Unterbrechung weiterlaufen kann.
Die Erfindung wird nachstehend an einem Ausführungsbeispiel anhand von Zeichnungen näher erläutert.
Fig. 1 zeigt in Blockform ein mit mehreren Speichern und mehreren Prozessoren arbeitendes System gemäß dem Stand der Technik;
Fig. 2 zeigt in Blockform ein mit mehreren Speichern und mehreren Prozessoren arbeitendes System gemäß der vorliegenden Erfindung;
Fig. 3 stellt einen Teil des Systems nach Fig. 2 dar und zeigt ausführlicher als die Fig. 2 die Speicherinhalte eines exemplarischen Prozessorspeichers und eines exemplarischen Globalspeichers.
BAD ORIGINAL
Die in Pig. 1 dargestellte bekannte Anordnung enthält z.B. vier Prozessoren 10, 12, 14- und 16, vier 32-Bit~ Speicher 20, 22, 24 und 26 und ein Datenübertragungsnetzwerk 28. Das Datenübertragungsnetzwerk 28 weist vier Leituhgsgruppen oder "Schienen" 11, 13, 15 uncL 17 auf, deren jede mit einem jeweils zugeordneten Exemplar der Prozessoren 10, 12, 14 und 16 verbunden ist. Jede Schiene hat eine schaltbare Verbindung zu jedem Speicher. Die betreffenden Schalter sind schematisch durch kleine Kreise wie z.B. 30 symbolisiert; in der Fig. 1 sind sechzehn solcher Schalter dargestellt. Im.Falle eines Systems mit beispielsweise 32 Bits pro Datenwort enthält jede Schiene in Wirklichkeit 32 Drähte oder Leitungen, und der Schalter 30 sowie die . anderen gleichartigen Schalter sind in Wirklichkeit 32-polige Ein/Aus-Schalter. Die Steuereinrichtungen für die Schalter, die nicht gesondert dargestellt sind, seien herkömmli-
. ■ eher Bauart und von den verschiedenen Prozessoren ansteuerbar, in der Fig. 1 und auch in der später zu beschreibenden Fig. 2 sind verschiedene Verbindungen mit kleinen Scbräg- strichen und einer dan eben st eh en den Zahl markiert, womit angedeutet werden soll j daß die betreffende Verbindung eine der jeweiligen Zahl entsprechende Anzahl von Einzelleitungen oder Signaldrähten enthält. In der Anordnung nach Fig. 1 : enthalten die auf diese Weise markierten Verbindungen alle jeweils 32 Datendrähte. Zusätzlich zu diesen 32 Drähten sind noch andere Einzelleiter wie Massedrähte, Steuerdrähte, usw. vorgesehen.
Im Betrieb wird durch Betätigung entsprechender Schalter im Datenübertragungsnetzwerk 28 jeder Prozessor mit einem Speicher seiner Wahl verbunden. Die mit den Schaltern wie z.B. 30 geschaffene Verbindung zwischen einem Prozessor und einem Speicher dient zur Datenübertragung in beiden Richtungen, wobei die Übertragung bitparallel und wortseriell erfolgt. Das heißt, von einem Speicher zu einem Prozessor oder umgekehrt wird zunächst ein erstes Wort von 32 Bits übertragen, dann ein zweites 32-Bitwort, usw.. Solange zwei Pro-
zessoren nicht gleichzeitig mit demselben Speicher kommunizieren wollen, kann jeder Prozessor mit seiner Maximalgeschwindigkeit arbeiten. Wollen zwei Prozessoren mit demsel ben Speicher in Verbindung treten, dann muß der eine Prozessor warten, bis die Datenübertragung zwischen dem gewünschten Speicher und dem anderen Prozessor beendet ist. Im Falle großer Datenblöcke kann diese Wartezeit lange dau ern, in manchen Fällen unannehmbar lang.
In der. Anordnung nach Fig. 2, die einer vorteilhaften führungsform der Erfindung entspricht, ist die Kommunikation zwischen den Prozessoren und den Speichern zwar nicht völlig konkurrenzfrei, jedoch wesentlich konkurrenzärmer als bei der Anordnung nach Fig. 1, wie es nachstehend erläutert wird. Gemäß der Fig. 2 sind vier Prozessoren 10, 12, 14 und 16, die ähnlich den Prozessoren in der bekannten Anordnung nach Fig. 1 seien, über ein innerhalb der gestrichelten Umrahmung 41 dargestelltes Datenübertragungsnetzwerk 40 mit einem Globalspeicher 38 verbunden. Der Globalspeicher 38 besteht aus 32 Teilspeichern 38-1, 38-2...
38-32 (von.denen in der Zeichnung nur drei abgebildet sind), deren jeder aus jedem von mehreren Datenwörtern jeweils ein Bit speichert. Wie im Falle der Fig. 1 sind die Anzahl der Prozessoren (4), die Anzahl der Bits pro Wort (32) und die Anzahl der Speicher (1 Speicher, unterteilt in 32 Teilspeicher), usw. nur als Beispiel anzusehen. In V/irklichkeit ist eine Anzahl von acht Prozessoren typischer, die hier gewählte Anzahl von vier Prozessoren genügt jedoch zur Erläuterung des erfindungsgemäßen Prinzips. Jeder Prozessor wie z.B. der Prozessor 10 kann ein Standard-Mikroprozessor wie ' z.B. das Modell 1750 der Firma Fairchild, das Modell PDP-11/23 der Firma Digital Equipment Corp. oder das Modell 68000 der Firma Motorola sein. Alternativ kann es sich bei einem oder mehreren der Prozessoren auch um eine Sonderausführung handein, die speziell dazu ausgelegt ist, Daten aus dem Globalspeicher zu verarbeiten und/oder für den Globalspeicher bestimmte Daten zu erzeugen.
- 9 - -BAD ORIGINAL
Jeder Prozessor verarbeitet z.B. 32-Bit-Wörter, d.h. Jedes Wort besteht aus 32 Bits. Wie in Fig. 2 angedeutet, enthält jeder Prozessor außerdem einen eigenen Speicher, der typischerweise 64 000 (64K) 32-Bit-Wörter speichert, aber auch zur Speicherung von mehr oder weniger als 64K Wörtern ausgelegt sein kann. Der Globalspeieher 38 besteht aus 32 einzelnen Festkörperspeichern (z.B. des Herstellers Intel) für jeweils ein Bit einer Vielzahl von Wörtern. Jeder Teil 38-1, 38-2, usw. des GlobalSpeichers 38 speichert von jedem der-Wörter nur ein Bit. In einem 32-Bit-System sind 32 solcher Teilspeicher erforderlich, von denen jeder z.B. ein Bit eines jeden von mindestens N χ 64K Wörtern speichern kann, wobei N gleich der Anzahl der Prozessoren ist. Die Datenübertragung zum und vom Speicher 38 erfolgt über Datenschienen 42-1, 42-2... 42-32, während die Steuerinformationen (Lesen/Schreiben) und die Adresseninformationen über eine Schiene 44 und Abzweigschienen 44-1, 44-2... 44-32 zum Speicher 38 gegeben werden.
Das Datenübertragungsnetzwerk 40 enthält für jedes Bit jedes Prozessors ein N-Bit-Register als Datenpuffer, wobei N typischerweise gleich der Anzahl der Prozessoren im System oder ein Vielfaches davon ist. So sind mit dem Speicher des Prozessors 10 (Prozessor Nr. 1) 32 4-Bit-Register verbunden, von denen drei dargestellt sind, nämlich, das Register 1-1, das Register 1-2 und das Register 1-32. Die Datenschiene jedes Globalspeicherteils ist jeweils mit vier Datenregistern verbunden. So ist z.B. der Globalspeicherteil 38-2 über die Datenschiene 42-2 mit dem Register 1-2, dem Register 2-2, dem Register 3-2 und dem Register 4-2. verbunden. Zur Bezeichnung der jeweiligen Register wird eine Zahlenkombination der Form X-Y verwendet, wobei X die Nummer des Prozessors darstellt, mit dem das betreffende Register verbunden ist, während Y die Nummer der Bit-Position des Globalspeicherteils darstellt, mit dem das Register verbunden ist. So ist z.B. das Register 3-2 mit dem Prozessor Nr. 3 (Prozessor 14) . und mit dem Globalspeicherteil 38-2 verbunden. Die Register
- 10 - ■
-ιοί sind so ausgelegt und angeordnet, daß die Datenübertra- · gung zwischen jedem Register und dem zugeordneten Prozessorbitseriell erfolgt und daß die Datenübertragung zwischen jedem Register und dem Globalspeicher bitparallel erfolgt.
Da jede der Datenschienen 42-X (X = 1, 2, 3, 4) mit mehreren Registern verbunden ist, enthält jedes Register eine Torschaltung, die durch einen länglichen horizontalen Kasten wie z.B. 45 an der Verbindung zur betreffenden Datenschiene dargestellt ist. Der Zweck dieser Torschaltung besteht darin, dafür zu sorgen, daß eine Datenübertragung zwischen dem Speicher und immer nur den zu jeweils einem Prozessor gehörenden Registern stattfinden kann, wie es ausführlicher weitern unten erläutert wird.
Das Datenübertragungsnetzwerk 40 enthält außerdem vier Adressenregister (A/R) 46-1, 46-2, 46-3 und 46-4, jeweils eines für jeden Prozessor. Das heißt, das Adressenregister 46-1 ist dem Prozessor Fr. 1 zugeordnet, das Adressenregister 46-2 ist dem Prozessor Nr. 2 zugeordnet, usw.. Jedes Adressenregister kann typischerweise 30 Bits als Adressen- und Steuerinformation speichern. Eine Adressen/Befehls-Schiene 48 verbindet alle Prozessoren 10, 12, 14 und 16 mit allen Adressenregistern 46-1 bis 46-4. Jedes Adressenregister enthält zusätzlich eine als länglicher horizontaler Kasten dargestellte Torschaltung, die ähnlich den Torschaltungen an den Datenregistern sind und den gleichen Zweck wie dort erfüllen. Über die Schiene 48 übertragen die Prozessoren 10, 12, 14 und 16 nacheinander Informationen an das jeweils zugeordnete Adressenregister, welche die Anfangs- und Endadressen der zwischen dem betreffenden Prozessor und dem Speicher 38 zu übertragenden Daten im Speicher 38 angeben sowie die Übertragungsrichtung (in den Speicher 38 oder in . einen Prozessor) vorgeben.
Jedes Adressenregister ist mit denjenigen Datenregistern
. verbunden, die dem mit dem betreffenden Adressenregister
- 11 -.
BAD ORIGINAL
ό ό k- J ό 4 ö
zusammenwirkenden Prozessor zugeordnet sind. Das heißt, das Adressenregister Nr. 1 (Register 46-1) ist mit den dem Prozessor Nr. 1 zugeordneten Registern 1-1, 1-2 ... 1-32 gekoppelt. Die anderen Adressenregister sind in ähnlicher Weise mit betreffenden Datenregistern gekoppelt, was jedoch aus Gründen der Übersichtlichkeit in der Zeichnung nicht dargestellt ist. Diese Verbindungen zwischen den Adressen- und Datenregistern hat den Zweck, die Datenregister für die jeweilige Richtung der Datenübertragung einzustellen, d.h. für Übertragung in einen Prozessor oder für Übertragung aus einem Prozessor. Jedes 'Adressenregister enthält einen Zähler oder eine gleichwertige Anordnung, um die im Register enthaltenen Speicheradressen.jedesmal . bei einem Zugriff zu diesem Register zu erhöhen, bis die
1$ Endadresse'erreicht ist, wie es weiter unten ausführlicher beschrieben wird.
Mit jedem der Prozessoren 10 bis 16, mit dem Globalspeicher 38, mit den Adressenregxstern 46-1 bis 46-4 und mit den Datenregistern 1-1, 1-2... 4-32 in Fig. 2 ist eine Steuereinrichtung 50 gekoppelt, um den erwähnten Elementen Steuer- und Taktinformationen anzulegen. Die Verbindungen zwischen den Einrichtung 50 und den anderen Elementen sind in der Fig. 2 nicht eingezeichnet, um die Zeichnung nicht unübersichtlich zu machen. Die Einrichtung 50 erzeugt .u.a. Signale zur Steuerung der Zeitdauer und der Geschwindigkeit, mit welcher die verschiedenen Register aktiviert werden, um Daten zu empfangen oder abzugeben.
Wie im Zeitdiagramm 52 in Fig. 2 dargestellt, werden die Register nacheinander aktiviert, zuerst die Register der Gruppe 1, d.h. die Register 1-1 bis 1-32 und das Adressenregister Nr. 1, dann die Register der Gruppe 2, d.h. die Register 2-1 bis 2-32 und das Adressenregister Nr. 2, usw..
Eine typische· Geschwindigkeit oder Frequenz hierfür (Kehrwert des Zeitabstandes von Takt zu Takt) ist 10 MHz. Während des gleichen Taktintervalls, in welchem eine bestimmte Grup-
-·'·.' ' BAD ORIGINAL.
pe von Datenregistera aktiviert ist, ist das zur selben Gruppe gehörende Adressenregister ebenfalls aktiviert, so daß dieses Register-gegebenenfalls neue Befehle vom zugeordneten Prozessor aufnimmt oder den Speicher mit ei-η er durch die Zahlereinstellung im Adressenregister bestimmten Adresse adressiert, um Informationen am adressierten Speicherplatz einzuschreiben oder auszulesen. Schließlich wird in jedem Taktintervall jedes Register (für welches eine Datenübertragung durch einen zugeordneten Prozessor gewünscht ist) veranlaßt, ein Bit der Dateninformation zwischen sich und dem zugeordneten Prozessor zu übertragen.
Die Arbeitsweise der Anordnung nach Fig. 2 läßt sich mit Hilfe der Fig. 3 verstehen, bei welcher es sich um die.Kombination eines Strukturbildes und eines Zeitdiagramms handelt. Bevor der Betrieb der Anordnung nach Fig. 2 im einzelnen beschrieben wird, sei die Systemtheorie des Betriebs erläutert. Der Zweck des Systems besteht darin, jedem der Prozessoren Nr. 1, Nr. 2, Nr. 3 und Nr. 4- (10, 12, 14- und
16) die Möglichkeit eines scheinbar exklusiven Zugriffs zum Globalspeicher 38 zu geben, um Daten vom betreffenden Prozessor zum Speicher oder umgekehrt zu übertragen.
Für den praktischen Betrieb ist es erforderlich, daß das System große Datenblöcke überträgt. Ein Prozessor benötigt nämlich Zeit, um an sein zugeordnetes Adressen regist er 4-6 die Informationen über die Anfangs- und Endadressen des Globalspeichers für die zu übertragenden Daten und über die Richtung der Übertragung zu geben. Wenn für diese "organisatorische Operation" gesorgt ist, beginnt die eigentliche Datenübertragung. Der ungünstigste Fall dabei • ist, daß alle Prozessoren gleichzeitig Zugriff zum Speicher verlangen. Von diesem Fall sei ausgegangen.
Für die nachstehende Beschreibung sei angenommen, daß eine Übertragung vom Globalspeicher 38 zu den verschiedenen Prozessoren 1 bis 4- erfolgen soll. Natürlich kann die Daten-
BAD ORIGINAL
übertragung auch von den Prozessoren zum Globalspeicher erfolgen, und ebenso ist auch eine Kombination beider Übertragungsrichtungen denkbar, d.h. es findet einerseits eine Datenübertragung vom Globalspeicher zu einigen Prozessoren und andererseits eine Übertragung von anderen Prozessoren zum Globalspeicher statt.
Während eines ersten Taktintervalls wird unter Steuerung durch die Steuereinrichtung 5>0 ein Block von vier Wörtern parallel von einer Adresse im Globalspeicher 38, die durch eine im Zähler des Adressenregisters Nr. 1 gespeicherte Adresse bestimmt ist, an die Datenregister-Nr. 1 übertragen (Register 1-1, Register 1-2... Register 1-32), und der Zähler des Adressenregisters Nr. 1 wird auf die Adresse eines nachfolgenden Blocks von vier Wörtern erhöht. Die Anzahl der parallel übertragenen Wörter ist gleich der Anzahl der Prozessoren im System oder ein Yielfaches davon. Wenn der Globalspeicher mit der gleichen Datenübertragungsgeschwindigkeit wie die Prozessoren arbeiten kann, sagen wir mit der Geschwindigkeit X, dann werden gleichviele Wörter parallel übertragen, wie Prozessoren vorhanden sind. Arbeitet der Globalspeicher mit einer Geschwindigkeit, die gleich der Prozessorgeschwindigkeit geteilt durch Y ist, dann werden Y-mal so viel Wörter parallel übertragen, wie Prozessoren vorhanden sind. Im folgenden sei angenommen, daß sowohl der Globalspeicher 38 als auch die Prozessoren mit der gleichen Datenübertragungsgeschwindigkeit X arbeiten, Die Geschwindigkeit X kann z.B. 1 MHz betragen.
Während eines nachfolgenden zweiten Taktintervalls wird eine zweite, für den Prozessor Nr. 2 bestimmte Gruppe von vier Wörtern vom Globalspeicher 38 aus einem vom Adressenregister Nr. 2 adressierten Speicherplatz·zur Datenregistergruppe Nr. 2 übertragen (Register 2-1, Register 2-2... Register 2-32). Während des gleichen Taktintervalls wird das erste der in der Registergruppe Nr. 1 enthaltenen vier Wörter zum Speicher des Prozessors Nr. 1 übertragen.
Während des anschließenden dritten Zeitintervalls werden .
Daten aus einem vom Adressenregister Nr. 3 adressierten ' Speicherplatz des Globalspeichers 38 zur Datenregistergruppe Nr. 3 übertragen (Register 3-1, Register 3-2... Register 3-32)·. Während des gleichen Zeitintervalls wird das zweite der in der Registergruppe Nr. 1 enthaltenen vier Wörter zum Speicher des Prozessors Nr. 1 und das erste der in der Registergruppe Nr. 2 enthaltenen vier Wörter zum Speicher des Prozessors Nr. 2 übertragen.
Während des nachfolgenden vierten Taktintervalls wird ein Block von vier Wörtern aus einem vom Adressenregister Nr. 4' adressierten Speicherplatz des Globalspeichers 38 zur Datenregistergruppe Nr. 4 übertragen (Register 4-1, Register 4-2... Register 4-32). Gleichzeitig, erfolgt die Übertragung des dritten der in der Registergruppe Nr. 1 enthaltenen vier Wörter zum Speicher des Prozessors Nr. 1, des zweiten der in der Registergruppe Nr. 2 gespeicherten vier Wörter zum Speicher des Prozessors Nr. 2 und des ersten der in der Registergruppe Nr. 3 gespeicherten vier Wörter zum Speieber des Prozessors Nr. 3·
Im anschließenden fünften Taktintervall wird.in die Datenregistergruppe Nr. 1 ein zweiter Block von vier Wörtern · aus dem Globalspeicher 38 übertragen, während gleichzeitig das vierte Wort des vorher in diese Registergruppe eingespeicherten ersten Blocks von vier Wörtern an den Speicher des Prozessors Nr. 1 übertragen wird. Außerdem erfolgt während dieses fünften Taktintervalls die Übertragung jeweils eines Wortes aus jeder der anderen Datenregistergruppen in den Speicher des jeweils zugeordneten Prozessors.
Während der nachfolgenden Taktintervalle finden ähnliche Operationen'wie vorstehend beschrieben statt, bis die verschiedenen Prozessoren die von ihnen gewünschten Daten erhalten haben. . _
BAD ORIGINAL
Sobald also, die Datenübertragung beginnt, empfängt jeder Prozessor die für ihn bestimmten Daten so schnell, wie es seine Schaltung erlaubt. Dies ist der wesentliche Punkt, der hier zu verstehen ist. Jeder Prozessor scheint daher die ungeteilte Aufmerksamkeit des Globalspeichers zu haben, und somit werden alle Prozessoren im Effekt auf einmal bedient, obwohl in einem einzelnen Taktintervall eine Auslesung oder Einschreibung an nur einer (vier Wörter' enthaltenden) Speicheradresse des Globalspeichers 38 möglich ist.
..
Zur näheren Erläuterung der Arbeitsweise der Anordnung nach Fig. 2 ist in der Pig. 3 schematisch und detaillierter als in Pig. 2 der Globalspeicherteil 38-1 (Globalspeicherteil Nr. 1) dargestellt, d.h. derjenige.Teil des Global-Speichers 38, der von den 32 Datenbits das Bit Nr. 1 enthält. Die anderen 31 Globalspeicherteile sind genauso. In vier Bereichen 60, 62, 62J- und 66 dieses Speicherteils, deren jeder viele Wörter speichert, sind mit oC die vom Prozessor Nr. 1 geforderten Daten, mit |3 die vom Prozessor Nr. 2 geforderten Daten, mit VT die vom Prozessor Nr. 3 gedie vom Prozessor Nr. 4- geforderten Daten bezeichnet. Natürlich ist es möglich, daß.zwei oder mehr Prozessoren Daten aus denselben Speicherplätzen wünschen. So können z.B. die Speicherbereiche 60 und 62 ein und dieselben sein oder sich zumindest überlappen. Der Globalspeicherteil Nr. 1 ist parallel mit allen Datenregistern X-1 verbunden, wobei die Zahl 1 die Zuordnung zum Globalspeicherteil Nr. 1 symbolisiert und für X die Nummer jeweils desjenigen Prozessors steht, mit dem das betreffen-
-Z1Q de Datenregister verbunden ist.
Nicht dargestellt in der Pig. 3 sind die Verbindungen zur Torsteuerung der Register, die Verbindungen zwischen der-Steuereinrichtung 50 (Fig. 2) und den Datenregistern und die' Verbindungen zwischen den Adressenregistern (Pig. 2) und den Datenregistern. Diese Verbindungen sind herkömmlicher Art und sorgen dafür, daß zu beliebiger Zeit eine Datenüber-
- 16 -
COPY
1 '· BAD ORfGINAL
tragung zwischen dem Globalspeicher 38 und nur den einem einzigen Prozessor zugeordneten Datenregistern stattfinden kann.
Der Globalspeicher ist so ausgelegt, daß eine Gruppe von vier aufeinanderfolgenden Wörtern gemeinsam als eine Einheit übertragen wird. In der Fig. 3 ist auch der Speicher 10a des Prozessors Nr. 1 im Detail dargestellt. Die Speicher der anderen Prozessoren sind genauso. Jeder Prozessorspeicher hat Speicherplätze für 32-Bit-Wörter, die mit A, B, C... I ... usw. bezeichnet sind. Obwohl nicht eigens dargestellt, ist das Bit Nr. 2 des Speichers 10a zum Empfang von Daten aus dem Register 1-2 angeschlossen, das Bit Nr. 3 ist zum Empfang von Daten aus dem Register 1-3 angeschlossen, usw..
Die Tabelle I oben rechts in der Fig. 3 gibt in der linken Hälfte die Wörter an, die während aufeinanderfolgender Taktintervalle vom Globalspeicher 38 zu den Registern im Netz-· werk 4-0 übertragen werden, und in der rechten Hälfte die Wörter, die während der betreffenden Taktintervalle von den Registern im Netzwerk 4-0 zu den jeweiligen Prozessoren übertragen werden. Gemäß der Tabelle wird also während des Taktintervalls 1 der Globalspeicher 38 vom Adressenregister Nr.. 1 (Fig. 2) so adressiert, daß Wörter oc 1, oC2, t?c 3 und &- 4- aus dem Globalspeicherbereich 60 und aus entsprechenden Bereichen der anderen 31 Globalspeicherteile (nicht dargestellt) in das Register 1-1 und die 31 anderen Register 1-X (nicht dargestellt) übertragen werden. Die Einschleusung (Torsteuerung) der Daten in die jeweils zugeordneten Register und die Adressierung des GlobalSpeichers durch das Adressenregister erfolgt unter Steuerung von Zeitsignalen aus der Steuereinrichtung 50 (Fig. 2).
Während der nachfolgenden Taktintervalle 2, 3, 4-, usw. werden aufeinanderfolgende Wörter ausgelesen, wie es die Tabelle. I angibt. Die Fig. 3 zeigt einen Zustand am Ende des
- 17 -·
BAD ORIGINAL
Taktintervalls 6, wie mit dem Pfeil 70 in der !Tabelle I angedeutet. Das heißt, in diesem Augenblick sind die Wörter ψ 5, ρ 6, (3 7 und. β 8 in das Register 2-1 übertragen worden, das Wort cc 5 ist aus dem Register 1-1 zum Speicher 10a an den Speicherplatz E übertragen worden, das Wort β Α ist aus dem Register 2-1 zum Speicher 12a des Prozessors Nr. 2 an den Platz D übertragen worden. Ferner ist (wenn auch nicht dargestellt) das Wort ^ 3 aus dem Register 3-1 zum Speicher des Prozessors Nr. 3 und das Wort S 2 aus dem Register 4-1 zum Speicher des Prozessors Nr. 4- übertragen worden.
In der Fig. 3 sind diejenigen Plätze des Globalspeichers, aus. denen im dargestellten Zeitpunkt bereits Wörter entnommen worden sind, als leere Felder gezeigt. In Wirklichkeit enthalten diese Plätze immer noch die Daten, obwohl sie zum Prozessor ausgelesen worden sind.
Wie weiter oben bei der allgemeinen Beschreibung des Betriebs bereits erwähnt wurde, empfängt, nachdem alle Register einmal gefüllt sind, jeder Prozessorspeicher Daten so schnell, wie es seine Schaltung erlaubt, und daher scheint jeder Prozessor die ungeteilte Aufmerksamkeit des Globalspeichers 38 zu haben.
Im Gegensatz zum vorstehend beschriebenen Betrieb von Übertragungen, die vom Globalspeicher zum Prozessor gehen, werden bei umgekehrter Übertragungsrichtung die Daten von einem . Prozessor (z.B. vom Prozessor Nr. 1) an die zugeordneten Register (z.B. die Register 1-X) je ein Wort pro Taktintervall übertragen, bis die Register voll sind (z.B. vier Wörter enthalten). Dann werden die Register parallel in vier Bereiche des GlobalSpeichers, die durch Adressensignale vom zugeordneten Adressenregister (z.B. vom'Adressenregister -Nr. 1) bestimmt werden, ausgeleert, und der Prozess wird wiederholt.1
Es ist festzuhalten, daß alle vorstehend angegebenen Zahlen und Umstände, von denen bei der Erläuterung ausgegangen wurde, lediglich als Beispiel anzusehen sind. Das gilt sowohl für die Anzahl der Bits pro Wort, für die Anzahl der Prozessoren, für den Umstand, daß alle Prozessoren gleich-' zeitig bedient werden sollen, für den Umstand, daß alle Prozessoren Daten vom Speicher auslesen wollen (im Gegensatz zu einem gewünschten Einschreiben von Daten in den Speicher) und für den Umstand, daß die Arbeitsgeschwindigkeiten der Prozessorspeicher und des Globalspeichers einander gleich sind.
So kann die Anzahl der Bits pro Wort größer oder kleiner als 32 sein. Die Anzahl der Prozessoren kann größer oder kleiner als 4 sein, eine typische Anzahl ist 8. Ferner kann es. gleichzeitige Datenübertragungen zwischen dem Globalspeicher und weniger als allen Prozessoren geben. Keiner, einige oder alle Prozessoren können Daten zum Globalspeicher übertragen, während alle, einige oder keiner der Prozessoren Daten vom Globalspeicher empfangen können. Der Globalspeicher kann auch mit einer langsameren Geschwindigkeit als der Prozessorspeicher arbeiten (oder mit einer schnelleren Geschwindigkeit, was jedoch kein gut angepaßtes System bedeuten würde).
. ■
Wenn z.B. der Prozessor mit einer Datenübertragungsgeschwindigkeit von 1 MHz und der Globalspeicher mit einer Geschwindigkeit von 0,5 MHz arbeiten würde , dann würde jedes Register 1-1, 1-2... 2-1, 2-2... 4-32 jeweils.acht Wörter speiehern, und es würden jeweils acht Wörter gleichzeitig zwischen dem Globalspeicher und jedem Register übertragen. In einem solchen Fall hätte der Globalspeicher einen 8-Wort-Puffer (nicht dargestellt), um Daten parallel mit der 0,5-MHz-Geschwindigkeit zu empfangen und Daten mit der 1,0-MHz-Geschwindigkeit parallel an die zugeordneten Register zu übertragen, oder umgekehrt.
- 19 -.
BAD ORIGINAL
System erlaubt außerdem eine direkte Übertragung von Prozessor zu Prozessor entweder allein oder gleichzeitig mit Übertragungen zwischen Prozessoren und Globalspeicher in beiden .Richtungen. So kann z.B. der Prozessor Nr. 1 Befehlssignale zum Adressenregister Nr. 1 senden, um zu bewirken, daß Daten in die Register 1-X direkt von einem anderen Prozessor (z.B. vom Prozessor Nr. 2) über seine Register übertragen werden. In einem solchen Fall liefert der sendende Prozessor in vier aufeinanderfolgenden Takt-Intervallen vier Wörter nacheinander an seine zugeordneten Register, z.B. an die Register 2-X. Dann werden in dem für die Register 1-X vorgesehenen Taktintervall die Daten parallel von den Registern 2-X in die Register 1-X übertragen, und anschließend leeren die Register 1-X jeweils ein
.15 Wort pro Taktintervall in den Speicher des Prozessors Nr. 1, während die Register 2-X aus dem Prozessor Nr. 2 mit jeweils einem Wort pro Taktintervall gefüllt werden.
Auch hier sendet jeder Prozessor nach Beendigung der Anfangseinstellung Daten mit der für ihn vorgesehenen Geschwindigkeit wie im Falle einer Übertragung von Prozessor zu Globalspeicher oder von Globalspeicher zu Prozessor.
20 Leerseite

Claims (4)

  1. Patentansprüche
    Anordnung zur gleichzeitigen Übertragung von Datenwörtern zwischen einem Datenspeicher und einer Vielzahl N von Datenprozessoren über ein Übertragungsnetzwerk unter Steuerung von Signalen, die von einer Steuereinrichtung erzeugt werden, dadurch gekennzeichnet,
    daß das Netzwerk (40) N Datenpuffer (1-1 bis 1-32, 2-1 bis 2-32, 3-1 bis 3-32, 4-1 bis 4-32) enthält;
    15. daß jeder Datenpuffer zwischen einen ihm zugeordneten Exemplar der Prozessoren (10, 12, 14, 16) und dem Datenspeicher (38) eingefügt ist;
    daß jeder Datenpuffer auf Signale von der Steuereinrichtung (50) anspricht, um eine der Vielzahl N proportionale Anzahl M von Wörtern zwischenzuspeichern und um
    — 2 —
    die zwischengespeicherten Wörter nacheinander zwischen diesem Datenpuffer und dem jeweils zugeordneten Prozessor mit einer Übertragungsgeschwindigkeit X zu übertragen und um M der zwischengespeicherten Wörter parallel gleichzeitig zwischen diesem Datenpuffer und dem Datenspeicher zu übertragen, wobei die N Datenpuffer nacheinander an die Reihe kommen;
    daß die Übertragungsgeschwindigkeit X eine ununterbrochene Wortübertragung zwischen jedem der Prozessoren und dem zugeordneten Datenpuffer erlaubt.
  2. 2. Anordnung ηachv Anspruch 1, dadurch gekennzeichnet,
    daß der Datenspeicher (38) ein adressierbarer Speicher ist und außerdem N Adressenspeichereinrichtungen (46-1, 46-2, 46-3, 46-4) aufweist;
    daß jede Adressenspeichereinrichtung zwischen ein ihr ausschließlich zugeordnetes Exemplar der Prozessoren und dem Datenspeicher geschaltet ist und auf Signale von der Steuereinrichtung (50) anspricht, um von dem betreffenden Prozessor eine Adresseninformation zur Identifizierung von Speicherplätzen (60,. 62, 64, 66) im Datenspeicher zu empfangen und anschließend die gespeicherte Adresseninformation zu benutzen, um die Übertragung von Wörtern zwischen den Datenpuffern (1-1 bis 1-32, 2-1 bis 2-32, 3-1 Ms 3-32, 4-1 bis 4-32) und den identifizierten Speicherplätzen zu steuern.
  3. 3. Anordnung nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß jedes Wort aus Y (32) Bits besteht und der Datenspeicher Y Teile (38-1 bis 38-32) enthält, deren jeder jeweils ein zugeordnetes Bit aller im Datenspeicher gespeicherten Wörter speichert, und daß jeder Datenpuffer Y Register (z.B 1-1 bis 1-32) aufweist, deren jedes jeweils eines der Y-Bits aller im betreffenden Datenpuffer gespeicherten Wörter speichert.
  4. 4. Anordnung nach einem der vorhergehenden Ansprüche, da-
    BAD ORIGiNAL
    durch gekennzeichnet, daß alle Datenpuffer (1-1 bis 1-32, 2-1 bis 2-32, 3-1 bis 3-32, 4-1 bis 4-32) über eine gemeinsame Vielfachleitung (42) mit dem Datenspeicher (38) verbunden sind.
DE19833343348 1982-11-30 1983-11-30 Anordnung zur datenuebertragung zwischen mehreren prozessoren und einem speicher Withdrawn DE3343348A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/445,522 US4491915A (en) 1982-11-30 1982-11-30 Multiprocessor-memory data transfer network

Publications (1)

Publication Number Publication Date
DE3343348A1 true DE3343348A1 (de) 1984-05-30

Family

ID=23769239

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19833343348 Withdrawn DE3343348A1 (de) 1982-11-30 1983-11-30 Anordnung zur datenuebertragung zwischen mehreren prozessoren und einem speicher

Country Status (5)

Country Link
US (1) US4491915A (de)
JP (1) JPS59109965A (de)
DE (1) DE3343348A1 (de)
FR (1) FR2536884B1 (de)
GB (1) GB2132798B (de)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0136218A3 (de) * 1983-08-29 1988-04-20 FAIRCHILD CAMERA & INSTRUMENT CORPORATION Pipeline-Mehrtorprozessor
US5584032A (en) * 1984-10-17 1996-12-10 Hyatt; Gilbert P. Kernel processor system
US4718003A (en) * 1985-02-15 1988-01-05 General Electric Co. Method and apparatus for exchanging data between data processing units
JPH0740252B2 (ja) * 1986-03-08 1995-05-01 株式会社日立製作所 マルチプロセツサシステム
US4773071A (en) * 1986-10-02 1988-09-20 Grumman Aerospace Corporation Memory for storing response patterns in an automatic testing instrument
FR2606186B1 (fr) * 1986-10-31 1991-11-29 Thomson Csf Processeur de calcul comportant une pluralite d'etages relies en serie, calculateur et procede de calcul mettant en oeuvre ledit procede
US4855905A (en) * 1987-04-29 1989-08-08 International Business Machines Corporation Multiprotocol I/O communications controller unit including emulated I/O controllers and tables translation of common commands and device addresses
US5301278A (en) * 1988-04-29 1994-04-05 International Business Machines Corporation Flexible dynamic memory controller
FR2632093B1 (fr) * 1988-05-25 1990-08-10 Bull Sa Memoire modulaire
FR2635390B1 (fr) * 1988-08-12 1990-10-12 Bull Sa Unite centrale pour systeme de traitement de l'information
US5136582A (en) * 1990-05-29 1992-08-04 Advanced Micro Devices, Inc. Memory management system and method for network controller
US5802565A (en) * 1996-08-29 1998-09-01 Hewlett-Packard Company Speed optimal bit ordering in a cache memory
US6167486A (en) * 1996-11-18 2000-12-26 Nec Electronics, Inc. Parallel access virtual channel memory system with cacheable channels
US6708254B2 (en) * 1999-11-10 2004-03-16 Nec Electronics America, Inc. Parallel access virtual channel memory system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB773457A (en) * 1954-05-25 1957-04-24 Ibm Magnetic system for information storage
DE1524101B2 (de) * 1965-11-26 1974-06-20 Burroughs Corp., Detroit, Mich. (V.St.A.) Mehrfach rechnende Datenverarbeitungsanlage

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE1218761B (de) * 1963-07-19 1966-06-08 International Business Machines Corporation, Armonk, N. Y. (V. St. A.) Datenspeidbereinrichtung
US3771137A (en) * 1971-09-10 1973-11-06 Ibm Memory control in a multipurpose system utilizing a broadcast
JPS5812611B2 (ja) * 1975-10-15 1983-03-09 株式会社東芝 デ−タテンソウセイギヨホウシキ
US4171536A (en) * 1976-05-03 1979-10-16 International Business Machines Corporation Microprocessor system
JPS547252A (en) * 1977-06-20 1979-01-19 Hitachi Ltd Program control system
US4209840A (en) * 1978-06-28 1980-06-24 Honeywell Inc. Data processing protocol system
US4347567A (en) * 1980-02-06 1982-08-31 Rockwell International Corporation Computer system apparatus for improving access to memory by deferring write operations

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB773457A (en) * 1954-05-25 1957-04-24 Ibm Magnetic system for information storage
DE1524101B2 (de) * 1965-11-26 1974-06-20 Burroughs Corp., Detroit, Mich. (V.St.A.) Mehrfach rechnende Datenverarbeitungsanlage

Also Published As

Publication number Publication date
GB2132798B (en) 1986-05-14
GB8331845D0 (en) 1984-01-04
FR2536884A1 (fr) 1984-06-01
US4491915A (en) 1985-01-01
JPS59109965A (ja) 1984-06-25
FR2536884B1 (fr) 1987-01-30
JPH0128972B2 (de) 1989-06-07
GB2132798A (en) 1984-07-11

Similar Documents

Publication Publication Date Title
DE3011552C2 (de)
DE2753063C3 (de)
DE2550339C2 (de) Speichersystem mit einem langsam arbeitenden Hauptspeicher großer Kapazität und mit zumindest einem schnell arbeitenden Pufferspeicher geringer Kapazität
DE3782756T2 (de) Direktzugriffspeichereinrichtung.
DE2637054C3 (de) Steuervorrichtung für einen Pufferspeicher
DE2215066C3 (de) Schaltungsanordnung zum schnellen Austausch von Informationen zwischen Schieberegistern und Einheiten einer Datenverarbeitungsanlage
EP0013737A1 (de) Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem
DE3342004C2 (de) Vorrichtung zum Eingeben von Videosignalen in einen Digitalspeicher
DE2154106A1 (de) Arbeitsspeicherwerk
DE2130299A1 (de) Eingabe/Ausgabe-Kanal fuer Datenverarbeitungsanlagen
CH620542A5 (de)
DE1956604B2 (de) Datenverarbeitungsanlage
DE3343348A1 (de) Anordnung zur datenuebertragung zwischen mehreren prozessoren und einem speicher
DE2310631C3 (de) Speicherhierarchie für ein Datenverarbeitungssystem
DE3046912C2 (de) Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage
DE69119149T2 (de) Struktur zur direkten Speicher-zu-Speicher-Übertragung
EP0013697B1 (de) Auffrischung benötigendes seitenorganisiertes Speichersystem
DE2432608B2 (de) Speicheranordnung für eine Datenverarbeitungseinrichtung
DE3936339A1 (de) Controller fuer direkten speicherzugriff
DE69333792T2 (de) Halbleiteranordnung
DE60209761T2 (de) Anschluss mehrerer prozessoren auf externen speicher mit burst mode
DE2404887A1 (de) Kanal fuer den informationsaustausch zwischen einem rechner und schnellen peripheren einheiten
DE69030368T2 (de) Tandem-Cache-Speicher
DE1524006A1 (de) Vorrichtung zum Erhoehen der Informationsuebergaberate eines Speichers
DE3587635T2 (de) Plattenspeichersteuergerät mit geteiltem Adressenregister.

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8139 Disposal/non-payment of the annual fee