DE2760322C2 - - Google Patents

Info

Publication number
DE2760322C2
DE2760322C2 DE2760322A DE2760322A DE2760322C2 DE 2760322 C2 DE2760322 C2 DE 2760322C2 DE 2760322 A DE2760322 A DE 2760322A DE 2760322 A DE2760322 A DE 2760322A DE 2760322 C2 DE2760322 C2 DE 2760322C2
Authority
DE
Germany
Prior art keywords
memory
processor
channel
processors
address
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
Application number
DE2760322A
Other languages
English (en)
Inventor
Charles Louis Ballston Lake N.Y. Us Devlin
Charles William Schenectady N.Y. Us Eichelberger
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.)
General Electric Co
Original Assignee
General Electric Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by General Electric Co filed Critical General Electric Co
Application granted granted Critical
Publication of DE2760322C2 publication Critical patent/DE2760322C2/de
Expired 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • 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/18Handling requests for interconnection or transfer for access to memory bus based on priority control

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)

Description

Die Erfindung betrifft ein Mehrprozessor-Mikrorechnersystem nach dem Oberbegriff des Patentanspruchs 1.
Mikrorechner werden bei einer großen Vielzahl von Anwendungsgebieten zunehmend wichtig. Da die Wirtschaftlichkeit bei der Herstellung der Mikroprozessoren und Mikrorechner zunimmt und die Herstellungskosten sich reduzieren, werden sie in mehr und mehr Anwendungsgebieten eingesetzt. Es kann oftmals erwünscht sein, in Verbindung mit einem einzigen Speicher oder einem Teil des Speichers mehr als eine Prozessoreinheit zu verwenden. Dies kann wünschenswert sein, um die von einem Mikrorechner durchgeführten Funktionen auf zwei oder mehr Prozessoren zu verteilen, um die Kapazität des Mikrorechners zu erhöhen. Ein weiterer Vorteil eines Mehrprozessorsystems besteht darin, daß geringere Kosten dadurch erzielbar sind, daß ein komplexes System mit zwei oder mehreren relativ billigen Prozessoren im Gegensatz zu einem komplizierteren und folglich teureren Prozessor verwirklicht wird. Ein weiterer erzielbarer Vorteil besteht darin, daß sich ein System ausbilden läßt, bei dem im Falle der Störung eines einzelnen Prozessors ein zweiter Prozessor die Funktionen des gestörten Prozessors ausführt, so daß auf diese Weise ein bei Einzelprozessorsystemen nicht vorhandener Grad an Redundanz vorhanden ist. Ein weiterer Vorteil eines Mehrprozessor-Mikrorechnersystems besteht darin, daß der Informationsaustausch zwischen zwei oder mehreren Prozessoren über einen gemeinsam genutzten Speicher erfolgen kann, zu dem jeder Prozessor direkten Zugriff besitzt. Ein derartiges System besitzt die Kapazität zur gemeinsamen Nutzung nicht nur von Daten, sondern auch von Programminformation, und besitzt den weiteren Vorteil, daß es einem Prozessor ermöglicht ist, die Programmierung eines anderen Prozessors durch Veränderung der in einem einzigen Speicher gespeicherten Befehle durchzuführen.
Viele augenblicklich in Verwendung befindliche Mikroprozessoren sind entsprechend einer Sammelkanal- Verbindungsstruktur organisiert, die für den Informationsaustausch zwischen dem Mikroprozessor und anderen Komponenten des Mikrorechnersystems, wie z. B. dem Speicher und Eingabe/Ausgabeeinrichtungen vorgesehen ist. Eine Sammelkanal-Verbindungsstruktur ermöglicht eine rasche Veränderung des Mikrorechnersystems durch Substitution von Komponenten, ohne daß eine physikalische Änderung des Hardware-Grundsystems erforderlich wäre. Es ist daher wünschenswert, daß ein gemeinsam genutzter Speicher zur Verwendung in Verbindung mit einem Mehrprozessor-Mikrorechnersystem mit einer Sammelkanal- Verbindungsstruktur kompatibel ist.
Mikroprozessoren, die in Verbindung mit einem gemeinsam genutzten Speicher betrieben werden, arbeiten oft in einer Betriebsart, bei der der zugeordnete Speicher lediglich für einen Teil der Zeit aktiv verwendet wird, wobei dies typischerweise in Übereinstimmung mit einem Taktsignal erfolgt, und wobei die tatsächliche Verbindung zu Speicher nur während einer bestimmten Phase des Taktsignals erforderlich ist.
Ein Merkmal gewisser gemeinsam genutzter Speicher besteht darin, daß sie auf Bedienungsaufrufe von einem Mikroprozessor schneller antworten können als es dem Prozessor möglich ist, die Bedienung zu verwenden. So können z. B. in einen Speicher Daten schneller eingeschrieben bzw. von einem Speicher schneller ausgelesen werden als bestimmte Mikroprozessoren in der Lage sind, die Lese- oder Schreiboperationen durchzuführen. Es besteht somit ein allgemeines Bedürfnis, den Wirkungsgrad der gemeinsamen Nutzung eines einzigen Speichers durch zwei oder noch mehr Prozessoren zu erhöhen. Dadurch soll vor allem die Zeit, während der der Speicher nicht aktiv ist, vermindert werden.
Aus der Zeitschrift "IBM-Nachrichten", Februar 1969, Seiten 549 bis 564 (insbesondere Seite 551, letzter Absatz und Seite 552, erster Absatz) ist es bekannt, bei der Zusammenarbeit zweier Prozessoren mit einem gemeinsamen Hauptspeicher eine die Speicherbenutzung regelnde Zusatzeinrichtung vorzusehen. Diese Zusatzeinrichtung regelt dort den Zugriff zu einem Hauptspeichermodul für den Fall, daß gleichzeitig von beiden Prozessoren konkurrierende Hauptspeicher-Zugriffsanforderungen für denselben Modul anstehen. Tritt dieser Fall kontinuierlich auf, so werden beide Prozessoren abwechselnd bedient. Eine dieser Zuteilungsregel entsprechende Methode ist auch aus der Druckschrift "IEEE Transactions on Computers", September 1975, Seiten 931 und 932, bekannt, wonach bei ständiger gleichzeitiger Anforderung des Zugriffs zu einer gemeinsamen Funktionseinheit durch zwei konkurrierende Einheiten der Zugriff abwechselnd gewährt wird.
Ausgehend von einem Mehrprozessor-Mikrorechnersystem nach dem Oberbegriff des Patentanspruchs 1 liegt der Erfindung die Aufgabe zugrunde, bei gleichzeitiger Speicherzugriffsanforderung durch die Prozessoren für eine automatische Speicherzugriffszuteilung in einer solchen Weise zu sorgen, daß der gemeinsame Speicher möglichst optimal genutzt wird.
Diese Aufgabe wird durch die Merkmale im Kennzeichen des Patentanspruchs 1 gelöst. Gemäß der beanspruchten Lösung wird vorgeschlagen, bei gleichzeitig anliegenden Speicherzugriffsanforderungen zur Lösung der Zugriffskonfliktsituation auch Statussignale oder Zustandssignale, die Auskunft über den jeweiligen Betriebszustand der Prozessoren geben, heranzuziehen. Die Erfindung bietet den Vorteil einer höheren Arbeitsgeschwindigkeit des Systems durch zeitlich bessere Nutzung des gemeinsamen Speichers.
Im folgenden werden Ausführungsbeispiele der Erfindung an Hand der Zeichnung näher erläutert.
In den Figuren zeigt
Fig. 1 ein Blockschaltbild eines Mehrprozessor- Mikrorechners, bei dem der Speicher von zwei oder mehr Prozessoren gemeinsam genutzt ist;
Fig. 2 einen Schaltplan eines gemeinsam genutzten Speichers zur Benutzung mit zwei Prozessoren;
Fig. 3 einen Schaltplan eines ersten Ausführungsbeispiels der Erfindung; und
Fig. 4 einen Schaltplan eines zweiten Ausführungsbeispiels der Erfindung.
Ein Mikrorechner mit zwei Prozessoren ist in Form eines Blockschaltbildes in Fig. 1 dargestellt und enthält einen gemeinsam genutzten Speicher. Der Rechner ist allgemein mit dem Bezugszeichen 10 bezeichnet und enthält einen ersten Prozessor 12 und einen zweiten Prozessor 14. Es sei darauf hingewiesen, daß die Erfindung zwar in Verbindung mit Fig. 1 an Hand eines zwei Prozessoren enthaltenden Mehrprozessoren-Mikrorechners erläutert wird, daß es jedoch für den Fachmann ohne weiteres möglich ist, zwei, drei oder mehr Prozessoren gemäß den Angaben der Erfindung mit einem einzigen gemeinsam genutzten Speicher zu verbinden. Mit dem Prozessor 12 ist eine erste Sammelkanalanordnung 16 verbunden, die einen Adressen-Sammelkanal 18, einen Datenausgabe- Sammmelkanal 20, einen Dateneingabe-Sammelkanal 22, einen Lese/Schreibsteuerkanal 24 und einen Wartekanal 26 aufweist. Obwohl der Lese-Schreibsteuerkanal und der Wartekanal als einzelne Leitung dargestellt sind und die Adressen- und Datenkanäle als drei Leitungen dargestellt sind, kann der genaue Aufbau der Kanäle je nach der Art und der Anzahl der längs der Kanäle zu übertragenden Signale verändert sein. So ist es z. B. oftmals angenehm, parallele Adressendateneingänge und -Ausgänge mit bis zu 16 Bits vorzusehen. Es sei bemerkt, daß der Adressenkanal eine ausreichende Anzahl verschiedener elektrischer Verbindungen enthält, um die erforderliche Anzahl an Bits zu liefern. In ähnlicher Weise können die Datenausgabe- und Dateneingabe-Kanäle je 8 Bits von Parallelformatinformation enthalten, es sind daher acht Leitkanäle für den Dateneingabe- und den Datenausgabekanal erforderlich. Beim Lese/Schreib- und beim Wartekanal kann jeweils nur eine elektrische Referenzleitung nach Masse, oder es können alternativ zwei oder mehr Leiter vorgesehen sein, sofern dies erwünscht ist. Die spezielle Form der verschiedenen Sammelleiter hängt von der Organisation des Prozessors und der zugeordneten Hilfseinrichtungen ab, die gemäß der Erfindung verwendet werden. Obwohl nicht dargestellt, lassen sich zusätzliche Kanäle gemäß den einzelnen Ausführungsformen dieser Erfindung vorsehen. So sollen z. B., obwohl nicht dargestellt, Leistungsversorgungskanäle in dem Mikrorechnersystem 10 der Fig. 1 enthalten sein.
Eine zweite Gruppe von Kanälen, die im wesentlichen mit den Kanälen 18 bis 26 identisch ist, ist mit dem zweiten Prozessor 14 verbunden. Diese Kanäle 18′, 20′, 22′, 24′ und 26′ entsprechen den im Prozessor 12 zugeordneten Kanälen 18 bis 26. Beide Prozessoren 12 und 14 und die zugehörige Kanalordnung ist mit bestimmten peripheren Komponenten versehen. Der Prozessor 12 ist über die Kanalanordnung 16 mit der Eingabe/Ausgabeeinrichtung 30 und dem lokalen Speicher 32 verbunden. Der Prozessor 14 und die zugehörige Kanalanordnung 16′ ist mit der Eingabe/Ausgabeeinrichtung 34, der Eingabe/Ausgabeanordnung 36 und dem lokalen Speicher 38 verbunden. Die Verbindungen zwischen den Prozessoren und den angegebenen zugeordneten Einrichtungen sind herkömmlicher Art und werden daher nicht in großer Breite beschrieben. Die Adressenkanäle 18 und 18′ werden von den Prozessoren 12 und 14 mit Adresseninformation versorgt, die jeder Einrichtung zugeführt wird, die an die Kanalanordnung angeschlossen ist. Die in einem beliebigen Zeitpunkt auf einem Adressenkanal vorhandene Adresse entspricht einer speziellen Adresse in einer speziellen Einrichtung, wobei Zugriff zu dieser Einrichtung und zu einem speziellen Platz in dieser Einrichtung gewonnen wird, der, bzw. dem die Adresse entspricht. Zum Beispiel möge eine spezielle 16-Bitadresse irgendeinem Speicherplatz im Speicher entsprechen. Wenn diese spezielle Bit-Kombination auf der Adressenleitung erscheint, ist dieser Speicherplatz für den Prozessor verfügbar. Die Kanäle 20 und 22 stellen zusammen mit den entsprechenden Kanälen 20′ und 22′ Dateneingabe- und Datenausgabekanäle dar. Diese Kanäle stellen Pfade zwischen Einrichtungen für Daten dar, die von einer Einrichtung zu einer anderen übertragen werden sollen. Die Dateneingabe- und Ausgabekanäle führen die aktuellen Daten zwischen den Einrichtungen. So lassen sich z. B. Daten in dem Speicher einschreiben bzw. aus dem Speicher auslesen, indem eine Speicheradresse auf dem Adressenkanal und Daten vom Prozessor auf denjenigen Datenausgabekanal vorhanden sind, von dem die Daten durch die adressierte Einrichtung empfangen werden. Es sei bemerkt, daß es erforderlich sein kann, dem Speicher weitere Signale zuzuführen, so z. B. Signale von dem Typ, der auf den Lese/Schreibkanälen 24 und 24′ geführt wird, bevor Daten in den Speicher oder eine andere Einrichtung eingegeben bzw. entnommen werden können.
Wartekanäle 26 und 26′ liefern Signale vom Einrichtungsaufrufdienst, wenn die Einrichtung, deren Dienst aufgerufen ist, einen Aufruf nicht erfüllen kann. Wenn z. B. Daten von einem Prozessor einer Eingabe/Ausgabeeinrichtung zugeführt werden, so ist oftmals der Prozessor in der Lage, die Daten mit einer größeren Geschwindigkeit zu liefern, als es die Eingabe/Ausgabeeinrichtung brauchen kann. Um zu verhindern, daß Daten verloren gehen, wird ein Wartesignal dem Prozessor zugeführt, um die Geschwindigkeit des Datenflusses vom Prozessor zur Eingabe/Ausgabeeinrichtung in dem Umfang zu ermäßigen, daß die Daten mit einer Geschwindigkeit geliefert werden, die für die Eingabe/Ausgabeeinrichtung passend ist. Dieselbe Beziehung kann zwischen beliebigen zwei Einrichtungen auftreten, wenn die Geschwindigkeit, mit der diese Einrichtungen verschiedene Operationen ausführen, verschieden sind.
Zusätzlich zu den oben angegebenen Einrichtungen enthält der Mikrorechner 10 einen gemeinsam genutzten Speicher 40. Der gemeinsam genutzte Speicher 40 ist mit den beiden Prozessoren 12 und 14 zugeordneten Kanalanordnungen verbunden. Gemäß einer bevorzugten Ausführungsform der Erfindung enthält der gemeinsam genutzte Speicher einen einzigen Speicher, zu dem beide Prozessoren 12 und 14 Zugriff besitzen. Der gemeinsam genutzte Speicher 40 erscheint den einzelnen Prozessoren gegenüber als ein Teil des gesamten, jedem Prozessor zugänglichen Speichers.
Eine bevorzugte Ausführungsform des erfindungsgemäßen gemeinsam genutzten Speichers ist in Fig. 2 dargestellt. Ein Speicher 50, der bevorzugt als Direktzugriffsspeicher (Speicher mit wahlfreiem Zugriff) ausgebildet ist, besitzt einen Adresseneingang 52, einen Dateneingabe-Eingang 54, einen Datenausgabe-Eingang 56, einen Lese/Schreibsteuer-Eingang 58 und einen Speicheransteuereingang 60. Wie in Verbindung mit der Fig. 1 erläutert wurde, können die Adressen-, Dateneingabe-, Datenausgabe-, Lese/Schreib- und Speicheransteuereingänge eine oder mehrere physikalische Verbindungsanschlüsse besitzen. Der Adresseneingang 52 des Speichers 50 ist mit Pufferspeichern 62 und 64 mit drei Zuständen verbunden. Die Pufferspeicher 62 und 64 stellen eine selektive Verbindung zwischen dem Adresseneingang 52 des Speichers 50 und geeigneten Adressenkanälen dar, die den beiden Prozessoren zugeordnet sind, die Zugriff zum Speicher besitzen. Gemäß der Erfindung kann der gemeinsam genutzte Speicher nach Fig. 2 in Verbindung mit einer Mikrorechnerstruktur gemäß Fig. 1 verwendet werden, und die anschließende Erläuterung wird ergeben, daß der gemeinsam genutzte Speicher nach Fig. 2 dem gemeinsam genutzten Speicher 40 in Fig. 1 entspricht. Die Pufferspeicher 62 und 64 mit drei Zuständen sind folglich mit den Adressenkanälen 18 und 18′ nach Fig. 1 verbunden. Während die Pufferspeicher 62 und 64 mit drei Zuständen als einzelne Blöcke dargestellt sind, können, falls erforderlich, Mehrfachblöcke verwendet werden, um Vielfach-Adressenverbindungen zu verwirklichen. Die Pufferspeicher 62 und 64 mit drei Zuständen besitzen die Eingangsanschlüsse 66 und 68 und die Ausgangsanschlüsse 70 bzw. 72. Der Pufferspeicher 62 ist mit einem Toreingangsanschluß 74 versehen, der in dieser speziellen Ausführungsform der Erfindung ein invertierender Eingangsanschluß ist, d. h. ein Anschluß, der den Pufferspeicher 62 aktiviert, wenn ein Masse- oder logisches Nullsignal an diesem Anschluß anliegt. Ein entsprechender Toreingangsanschluß 76 ist am Pufferspeicher 64 vorgesehen. Die Pufferspeicher 62 und 64 mit drei Zuständen stellen eine selektive Verbindung zwischen den Eingängen 66 und 68 und den Ausgängen 70 und 72 dar. Wenn ein logisches Signal mit Nullpegel an Toreingangsanschluß 74 anliegt, so wird z. B. eine elektrische Verbindung mit kleiner Impedanz zwischen dem Eingang 66 und dem Ausgang 70 hergestellt. Wenn der Toranschluß 74 mit einer positiven Spannung, einer logischen "Eins", versehen wird, wird zwischen dem Eingang 66 und dem Ausgang 70 keine Verbindung hergestellt, der Ausgang 70 besitzt kein festes Potential (er floatet), d. h. er ist weder mit einem Null- oder einem Plussignal verbunden, sondern er verweilt in einem im wesentlichen unvollendetem Zustand. Die Betriebsweise des Pufferspeichers 64 ist identisch. Die Funktion der Pufferspeicher 62 und 64 mit drei Zuständen läßt sich einfach durch Analogie mit einem elektrischen Relais mit einem einzigen Pol und einem einzigen Kippelement verdeutlichen, wobei die Eingangs- und Ausgangsanschlüsse 66 und 70 die Kontakte des Relais darstellen, und der Toranschluß 74 eine Verbindung zur Spule des Relais darstellt.
Weitere Pufferspeicher 78 und 80 mit drei Zuständen liefern eine selektive Verbindung von den Lese/Schreibeingängen 82 und 84 zu den Lese/Schreibeingängen 58 des Speichers 50. Pufferspeicher 86 und 88 mit drei Zuständen liefern in ähnlicher Weise eine Verbindung von den Eingängen 90 und 92 zu dem Dateneingabeeingang 54, während Pufferspeicher 94 und 96 eine Verbindung vom Datenausgabe-Anschluß 56 des Speichers 50 zu den Ausgangsanschlüssen 98 und 100 liefern. Es sei bemerkt, daß die Pufferspeicher 78, 80, 86, 88, 94 und 96 ebenso wie die Puffer 62 und 64 mehr als eine elektrische Verbindung zu den entsprechenden Kanälen herstellen können. Die Natur der Pufferspeicher gestattet eine direkte Verbindung zu entsprechenden Kanälen des Mikrorechnersystems. So ist z. B. der Pufferspeicher 62 mit dem Kanal 18, der Pufferspeicher 64 mit dem Kanal 18′, der Pufferspeicher 78 mit dem Kanal 24, der Pufferspeicher 80 mit dem Kanal 24′, der Pufferspeicher 86 mit dem Kanal 20, der Pufferspeicher 88 mit dem Kanal 20′, der Pufferspeicher 94 mit dem Kanal 22 und der Pufferspeicher 96 mit dem Kanal 22′ verbunden. Der in Fig. 2 dargestellte gemeinsam genutzte Speicher enthält UND-Tore 102 und 104, die gemäß der Erfindung mit demjenigen Teil der Kanäle 18 und 18′ verbunden sind, der die Adressenbits hoher Ordnung führt. Der Adressenkanal führt, wie an sich bekannt ist, mehrere Adressenbits in binärer Form. Verdeutlicht man sich die Adressendaten in paralleler Form, so werden die Adressenbits höherer Ordnung nicht benötigt, um lediglich eindeutig eine Adresse im Speicher 50 zu spezifizieren, wenn die im Speicher 50 enthaltene Anzahl von Adressen kleiner als die Gesamtzahl der adressierbaren Adressen ist. Die Adressenbits höherer Ordnung sind jedoch erforderlich, um den Block der vom Speicher 50 repräsentierten Speicheradressen von den restlichen Speicheradressen zu unterscheiden, die vom Prozessor erreichbar sind. Die Adressenbits höherer Ordnung werden folglich den UND-Toren 102 und 104 zugeführt, die an den Ausgängen 106 und 108 Signale abgeben, wenn der Speicher 50 adressiert wird. Beide UND-Tore 102 und 104 enthalten mehrere Eingänge 110 und 112, deren genaue Zahl je nach der relativen Größe des Speichers 50 und der Adressierkapazität des Prozessors unterschiedlich ist. Da die UND-Tore 102 und 104 Ausgangssignale abgeben, wenn ihr Eingangsanschluß auf einem hohen logischen Pegel liegt, erfolgt ein Zugriff zum Speicher 50, wenn der betreffende Prozessor den Teil des Speichers mit den höchsten Adressenplätzen adressiert. Wenn z. B. 16 Bits vom Prozessor an den Adressenkanal abgegeben werden, und wenn ferner der Speicher 50 z. B. 8000 Adressen enthält, und wenn ferner die 8000 Adressen die höchsten 8000 vom Prozessor adressierbaren Adressen darstellen, und wenn ferner die 8000 Adressen ein Achtel der Gesamtzahl der vom Prozessor adressierbaren Adressen darstellen, dann werden drei binäre Bits benötigt, um eindeutig zu bestimmen, welcher der acht Blöcke des Speichers adressiert wird. In der in Fig. 2 dargestellten Ausführungsform der Erfindung werden daher die drei Adressenbits der höchsten Ordnung den Eingängen 110 des UND-Tors 102 zugeführt, und es wird ein Ausgangssignal am Ausgang 106 erzeugt, wenn alle Eingänge 110 hoch liegen. Es sei bemerkt, daß jeder beliebige der anderen sieben Blöcke des Speichers am Eingang 110 des UND-Tors 102 mindestens ein Bit erzeugt, das null ist oder einen niedrigen Pegel besitzt, wodurch am Ausgang 106 kein Ausgangssignal erzeugt wird. Sofern es gemäß der Erfindung erwünscht ist, eine andere als die höchste Gruppe der Speicheradressen zu adressieren, lassen sich Inverter zwischen dem Teil hoher Ordnung des Adressenkanals und dem UND- Tor 102 einfügen, um am Eingang 110 ein Eingangssignal zur Verfügung zu stellen, das drei logische "Eins"-Werte aufweist. Der Speicher 50 erscheint daher dem Prozessor als irgendein Block aus einer Anzahl von Blöcken von Speicherplätzen. Die Tore 102 und 104 lassen sich so ausbilden, daß der Speicher 50 gegenüber den beiden Prozessoren 12 und 14 als ein unterschiedlicher Teil des Speichers erscheint, der von den betreffenden Prozessoren adressierbar ist. Es wird angenommen, daß z. B. drei Bits der Adressendaten den beiden Toren 102 und 104 zugeführt werden, und daß ferner alle dem Tor 104 zugeführten Bits invertiert werden, bevor sie den Eingang 112 des Tors 104 erreichen. Das Tor 104 liefert ein Ausgangssignal am Ausgangsanschluß 108, wenn alle die Adressenbits hoher Ordnung null und nicht eins sind, und der Speicher 50 erscheint gegenüber dem Prozessor 14 als die niedersten 8000 Speicheradressen und dem Prozessor 12 gegenüber als die höchsten 8000 Speicheradressen.
Die UND-Tore 116 und 118 liefern die Endverbindung zur Kanalanordnung der beiden Prozessoren an den Ausgängen 120 bzw. 122. Der Ausgang 120 ist mit dem Wartekanal 26, und der Ausgang 122 mit dem Wartekanal 26′ verbunden. Der gemeinsam genutzte Speicher nach Fig. 2 braucht nur mit den Kanalanordnungen der beiden Teile des Mehrprozessoren-Mikrorechners nach Fig. 1 verbunden werden. Es ist keine zusätzliche Steuerung erforderlich, und es wird auch keine direkte Verbindung zwischen den beiden Kanalanordnungen hergestellt.
Der Betrieb des gemeinsam genutzten Speichers nach Fig. 2 erfordert, daß eine Anzahl von Bedingungen erfüllt ist. Der Speicher 50 läßt sich von beiden Prozessoren 12 oder 14 adressieren, aber er kann nicht gleichzeitig von beiden Prozessoren adressiert werden. Wenn nur ein Prozessor den Speicher adressiert, ermöglicht der gemeinsam genutzte Speicher nach Fig. 2 jedem Prozessor den Zugriff. Wenn beide Prozessoren gleichzeitig Zugriff verlangen, wird demjenigen Prozessor der Zugriff ermöglicht, der als letzter den Speicher benutzte. Der Bedienungsaufruf durch einen Prozessor wird durch eine hohes Ausgangssignal an den Ausgängen 106 oder 108 der Tore 102 und 104 angezeigt. Zum Zwecke der Dikussion wird von "hohen" und "niederen" Signalen gesprochen. Es sei jedoch darauf hingewiesen, daß hiermit hohe und niedere logische Signalpegel gemeint sind, die nicht notwendigerweise mit den speziellen relativen Größen übbereinstimmen. Die "hohen" und die "niederen" Signale betreffen logische "Eins"-Signale bzw. logische "Null"- Signale. Es wird zuerst angenommen, daß lediglich der Ausgang 106 des UND-Tors 102 erregt ist und ein hohes Signal erzeugt, das angibt, daß ein Prozessor 12 Zugriff zum Speicher wünscht. Ein hohes Signal erscheint am Ausgang 106 des UND-Tors 102 und gleichzeitig am Eingang 130 des NOR-Tors 132, am Eingang 138 des NAND-Tors 140 und am Eingang 142 des NAND-Tors 144. Da vom Prozessor 14 keine Bedienung angefordert wird, ist der Ausgang 108 des UND-Tors 104 nieder und liefert ein niederes Signal an: den Eingang 146 des Inverters 148, den Eingang 150 des NAND-Tors 152 und den Eingang 154 des NAND-Tors 156. Der Inverter 136 liefert ein niederes Signal an den Eingang 172 des NAND-Tors 152, dessen Ausgang 174 notwendigerweise hoch sein wird. Der Ausgang 174 des NAND-Tors 152 ist mit dem Eingang 164 des NAND-Tors 166 verbunden und liefert diesem Eingang ein hohes Signal. Da der Eingang 146 des Inverters 148 nieder ist, liefert der Ausgang 158 des Inverters 148 ein hohes Signal an den Eingang 160 des NAND- Tors 140. Da der Eingang 138 des NAND-Tors 140 ebenso hoch ist, ist dessen Ausgang 162 nieder und liefert ein niederes Signal an den Eingang 176 des NAND-Tors 178, das sicherstellt, daß dessen Ausgang 182 hoch ist. Der Ausgang 182 ist mit dem Eingang 167 des NAND-Tors 166 verbunden, und da beide Eingänge 164 und 167 hoch sind, ist der Ausgang 168 des NAND-Tors 166 nieder und liefert ein niederes Signal an die Drei-Zustands-Pufferspeicher 62 bzw. 78. Niedere logische Signale werden in ähnlicher Weise dem Eingang 190 des Drei-Zustands-Pufferspeichers 86 und dem Eingang 192 des NAND-Tors 116 zugeführt, das ein hohes Signal am Ausgang 120 abgibt. Es sei daran erinnert, daß die NAND-Tore 116 und 118 mit den den Prozessoren 12 und 14 zugeordneten Wartekanälen verbunden sind. Ein niedriges Signal veranlaßt den Prozessor, zu warten, und ein hohes Signal gestattet es dem Prozessor, weiter zu arbeiten. Der Drei-Zustands-Pufferspeicher 62 liefert entsprechend eine Verbindung zwischen seinem Eingang 66 und dem Ausgang 70 und verbindet dadurch den Adressenkanal 18 mit dem Eingang 52 des Speichers 50. In ähnlicher Weise wird der Eingang 82 des Drei-Zustands-Pufferspeichers 78 mit dem Eingang 58 des Speichers 50, und der Eingang 90 des Drei-Zustands-Pufferspeichers 86 mit dem Eingang 54 des Speichers 50 verbunden. Auf diese Weise werden die richtigen Adressen-, Lese/Schreib- und Datenkanäle mit dem Speicher verbunden. Die selektive Aktivierung des Speichers entweder zur Datenaufnahme oder zur Datenabgabe wird nachfolgend erläutert.
Wenn vom Prozessor 14 alleine Bedienung aufgerufen wird, ist der Betrieb des gemeinsam genutzten Speichers nach Fig. 2 dem oben geschilderten Betrieb ähnlich. Der Speicher erzeugt ein niederes Signal am Ausgang 182 des NAND-Tors 178 und aktiviert dabei die Drei-Zustands-Pufferspeicher 64, 80 und 88, um eine Verbindung der Eingänge 68, 84 und 92 zum Speicher 50 zu schaffen. Wenn gleichzeitig beide Prozessoren 12 und 14 Bedienung anfordern, hängt der Betrieb des gemeinsam genutzten Speichers davon ab, welcher der Prozessoren zuletzt Zugriff zum Speicher hatte. Es wird angenommen, daß vor dem gleichzeitigen Bedienungsaufruf ein Prozessor 12 zuletzt den Speicher adressierte. Der Ausgang 168 des NAND-Tors 166 liefert ein niederes Signal, während der Ausgang 182 ein hohes Signal abgibt. Es wird nun angenommen, daß beide NAND-Tore 102 und 104 niedere Signale abgeben, die anzeigen, daß keiner der Prozessoren Bedienung anfordert. Ein niederes Signal wird dem NAND-Tor 140 zugeführt, das ein hohes Signal an den Eingang 164 des NAND-Tors 166 liefert. Da der Eingang 167 des NAND-Tors 166 mit dem Ausgang 182 des NAND-Tors 178 verbunden ist, der, wie erinnert sei, ein hohes Signal liefert, verbleibt das NAND-Tor 166 in seinem vorherigen Zustand und erzeugt ein niederes Signal an seinem Ausgang 168. Dieses niedere Signal wird dem Eingang 180 des NAND-Tors 178 zugeführt und stellt sicher, daß an dessen Ausgang 182 weiterhin ein hohes Signal erzeugt wird. Es wird gezeigt, daß die NAND-Tore 166 und 178 in einer Flip-Flop-Schaltungsbeziehung zusammengeschaltet sind und ein niederes bzw. ein hohes Signal in Abwesenheit von Bedienungsaufrufen der beiden Prozessoren am Ausgang aufrecht erhalten.
Es wird nun angenommen, daß beide Prozessoren Bedienung anfordern. Die beiden Ausgänge 106 und 108 sind hoch und liefern daher hohe Signale an die Inverter 136 und 148, die daher niedere Signale an ihren Ausgängen 158 bzw. 170 erzeugen, wobei diese niederen Signale sicherstellen, daß an den Ausgängen 162 und 174 hohe Signale erzeugt werden, die an die Eingänge 176 bzw. 164 gekoppelt werden. Es sei daran erinnert, daß sich das NAND- Tor 166 zuvor in einem "Ein"-Zustand befand und ein niederes Signal an seinem Ausgang 168 erzeugt, und daß das NAND-Tor 178 ein hohes Signal an seinem Ausgang 182 erzeugte, wobei diese Bedingungen während eines gleichzeitigen Bedienungsaufrufes durch beide Prozessoren andauern. Die Eingänge des NAND-Tors 166 bleiben hoch, und die Eingänge 180 und 176 des NAND-Tors 178 sind nieder bzw. hoch und erzeugen daher ein hohes Ausgangssignal am Ausgang 182 des NAND-Tors 178.
Es wird nun angenommen, daß nur vom Prozessor 14 ein Bedienungsaufruf erfolgt, und daß daher der Ausgang 106 nieder und der Ausgang 108 hoch ist. Hohe Signale werden dem Inverter 148 und dem Eingang 150 des NAND-Tors 152 zugeführt. Niedere Signale werden dem Inverter 136 und dem Eingang 138 des NAND-Tors 140 zugeführt. Das NAND-Tor 140 erzeugt folglich ein hohes Ausgangssignal am Ausgang 162, während das NAND-Tor 152 ein niederes Signal an seinem Ausgang 174 erzeugt. Das niedere Signal am Ausgang 174 des NAND-Tors 152 wird dem Eingang 164 des NAND-Tors 166 zugeführt, das ein hohes Signal an dessen Ausgang 168 erzeugt, das dem Eingang 180 des NAND-Tors 178 zugeführt wird. Da der Ausgang 162 des NAND-Tors 140 mit dem Eingang 176 des NAND-Tors 178 verbunden ist, geht der Ausgang 182 dieses Tors in einen niederen Zustand über, und der Prozessor 14 erhält Zugriff zum Speicher, während der Prozessor 12 der Zugriff genommen wird.
Es wurde beschrieben, daß Zugriff dem einen oder dem anderen anfordernden Prozessor gegeben wird, wenn jeweils ein Bedienungsaufruf zu einem Zeitpunkt erscheint, und daß der Zugriff dem zuletzt Zugriff besitzenden Prozessor gegeben wird, wenn gleichzeitig Bedienungsaufrufe empfangen werden. Auf diese Weise wird keiner der Prozessoren während eines Zugriffs zum Speicher durch einen Bedienungsaufruf des anderen Prozessors unterbrochen.
Es ist wünschenswert, zwei Zugriffsarten zum Speicher vorzusehen, eine erste Zugriffsart, bei der Daten vom Prozessor oder einer Einrichtung in den Speicher eingelesen werden, und eine zweite Zugriffsart, bei der Daten vom Speicher zum Prozessor oder einer anderen Einrichtung ausgelesen werden. Der gemeinsam genutzte Speicher nach Fig. 2 liefert die erforderliche Steuerung, um diese beiden Zugriffsarten zu ermöglichen. Es ist bekannt, daß die Natur der elektrischen Verbindung zum Speicher 50 zur Durchführung von Lese- und Schreiboperationen in gewisser Weise verschieden ist. Insbesondere besitzt der Datenausgang 56 Signalquellen mit relativ niederer Impedanz, wobei die logischen Werte der Signalquellen die dem Speicher 50 zugeführten Daten bestimmen. Der Datenausgang 56 muß daher von der Kanalordnung des entsprechenden Prozessors, ausgenommen wenn das Auslesen von Daten aus dem Speicher erwünscht ist, isoliert bzw. getrennt werden. Der Dateneingang 54 empfängt Daten von der Kanalordnung und ist durch eine relativ hohe Impedanz gekennzeichnet. Es ist daher in der Zeit, in der ein spezieller Prozessor Zugriff zum Speicher besitzt, nicht nötig, den Eingang 54 zu isolieren, wenn er nicht tatsächlich benutzt wird. Die Unterscheidung zwischen Dateneingang 54 und Datenausgang 56 läßt sich leichter verstehen, wenn beachtet wird, daß am Ausgangsanschluß 56 erscheinende Daten im wesentlichen den mit dem Ausgangsanschluß 56 verbundenen Datenkanal auf die Datenwerte festlegen (clamp), die in dem speziellen adressierten Speicherplatz vorhanden sind. Es kann dem Dateneingabe- Kanal 54 jedoch gestattet werden, ein nicht festgelegtes Potential zu besitzen (float), da die Daten nur dann in den Speicher eingegeben werden, wenn dies durch ein an dem Lese/ Schreibeingang 58 anliegendes Signal bestimmt ist. Der Datenausgang 56 ist folglich an die Drei-Zustands-Pufferspeicher 94 und 96 angeschlossen, die von den NAND-Toren 144 bzw. 156 gesteuert werden. Beispielweise und unter spezieller Bezugnahme auf das NAND-Tor 144 sei daran erinnert, daß ein hohes Signal an den Eingang 142 des NAND-Tors 144 angelegt wird, wenn der Prozessor 12 alleine Zugriff zum Speicher wünscht. Es sei ferner daran erinnert, daß der Ausgang 168 des NAND-Tors 166 nieder liegt, und es wird gezeigt, daß dieser Ausgang mit dem Eingang 191 des Inverters 193 verbunden ist, der ein hohes Eingangssignal an den Eingang 194 des NAND-Tors 144 liefert. Der Ausgang 196 des NAND-Tors 144 ist mit dem Eingang 198 des Drei-Zustands- Pufferspeichers 94 verbunden, der erregt ist, um den Ausgangsanschluß 98 mit dem Ausgangsanschluß 56 des Speichers 50 zu verbinden. Der Speicher 50 wird daher mit dem Ausgangsdatenkanal nur dann verbunden, wenn ein tatsächlicher Bedienungsaufruf vom NAND-Tor 102 wahrgenommen wird. Die Drei-Zustands-Pufferspeicher 86 und 88 bleiben betätigt, um denjenigen Prozessor, der zuletzt bedient wurde, mit dem Dateneingang 54 des Speichers 50 selbst dann zu verbinden, wenn kein tatsächlicher Bedienungsaufruf vorhanden ist. Dies wird durch die Flip-Flop-Schaltungsanordnung der NAND-Tore 166 und 178 bewirkt. Das NAND-Tor 156 arbeitet in ähnlicher Weise mit dem Drei-Zustands-Pufferspeicher 96 zusammen und liefert ein niederes Ausgangssignal vom Ausgang 200 des NAND-Tors 156 an den Eingang 202 des Drei-Zustands-Pufferspeichers 96, wenn immer hohe Signale an den Eingängen 204 und 154 des NAND-Tors 156 angelegt werden. Diese Signale sind vorhanden, wenn das UND-Tor 104 durch einen Bedienungsaufruf vom Prozessor 14 aktiviert ist, und wenn weiterhin das NAND-Tor 178 ein niederes Signal an seinem Ausgang 182 abgibt, das vom Inverter 206 invertiert wird, um ein hohes Signal an dessen Ausgang 208 zu erzeugen. Die Eingänge 204 und 154 des NAND-Tors 156 sind beide hoch, und der Ausgang 200 des Tors 156 liefert daher ein niederes Signal, um den Drei-Zustands-Pufferspeicher 96 zu erregen und den Datenausgang 56 mit dem Ausgang 100 des Drei-Zustands-Pufferspeichers 96 zu verbinden.
Lese/Schreibkanäle 24 und 24′ werden selektiv mit den Lese/ Schreibeingängen 58 des Speichers 50 durch die Drei-Zustands- Pufferspeicher 78 und 80 verbunden. Die Pufferspeicher 78 und 80 werden gleichzeitig mit den Pufferspeichern 62 bzw. 64 gespeist, und die Lese/Schreibkanäle 24 und 24′ steuern den Speicher während der Zeiten, während der entsprechende Adressenkanäle mit dem Eingang 52 des Speichers 50 verbunden sind.
Der Speicheransteuereingang 60 ist mit dem Ausgang 210 eines NOR-Tors 132 verbunden. Die Eingänge 130 und 212 des NOR-Tors 132 sind mit den Ausgängen 106 und 108 der UND-Tore 102 bzw. 104 verbunden. Der Speicher wird durch ein hohes Signal am Ausgang 210 des NOR-Tors 132 ausgesteuert oder in Betrieb gesetzt (enabled), wenn entweder eines oder beide der UND-Tore 102 und 104 ein Ausgangssignal liefern, das einen Bedienungsaufruf anzeigt.
Während der gemeinsam genutzte Speicher nach Fig. 2 viele Vorteile bietet und in einem weiten Bereich in einer Vielfalt spezieller Prozessor- und Speicherkombinationen einsetzbar ist, die üblicherweise benutzt werden, so ist es oft vorteilhaft, gewisse spezielle zusätzliche Merkmale vorzusehen, die die Wirksamkeit des gemeinsam genutzten Speichers wesentlich erhöhen. Fig. 3 zeigt einen gemeinsam genutzten Speicher, der im wesentlichen alle die Vorteile des Speichers nach Fig. 2 und wesentliche Zusatzmerkmale besitzt. In Fig. 2 bezeichnen gleiche Bezugszeichen Elemente, die mit denen von Fig. 2 übereinstimmen. Es läßt sich erkennen, daß der Inverter 148 in Fig. 2 durch ein NAND-Tor 220 in Fig. 3 ersetzt wurde. Das NAND-Tor 220 enthält einen ersten Eingang 222, der mit dem Ausgang des UND-Tors 104 verbunden ist, und einen zweiten Eingang 224, der mit dem Eingangsanschluß 226 verbunden ist. Der Inverter 136 ist durch ein zweites NAND- Tor 228 ersetzt, der einen ersten und einen zweiten Anschluß 230 und 232 enthält. Der Eingang 230 ist mit dem Ausgang 106 des UND-Tors 102 verbunden, während der Eingang 232 mit dem Eingangsanschluß 234 verbunden ist. Die Eingangsanschlüsse 226 und 234 sind mit den Zustandskanälen der Prozessoren 14 bzw. 12 verbunden. Der Betrieb des gemeinsam genutzten Speichers nach Fig. 3 läßt sich durch Betrachtung der Art der Zustandsinformation verstehen, die den Eingängen 226 und 234 zugeführt wird. Es wird darauf hingewiesen, daß die folgenden Ausführungen als Beispiel gelten, die für einen speziellen Mikroprozessor, nämlich für einen 8080 gelten, der von Intel hergestellt ist. Andere Prozessoren liefern ähnliche Zustandsinformation, die in der Form Abweichungen besitzen kann, die jedoch vom Fachmann durch kleinere Änderungen der in Fig. 3 dargestellten Schaltungsanordnung sofort verwendet werden kann. Die Zustandsinformation gibt an, in welchem von zwei Zuständen sich ein Mikroprozessor in einem speziellen Augenblick befindet. Diese Zustände werden der Einfachheit halber als "Zustand" und "aktive Zustände" bezeichnet werden. Während eines "Zustandes" wird Zustandsinformation einem Datenausgang eines Mikroprozessors zugeführt, die diejenige Operation anzeigt, die während des nachfolgenden aktiven Zustands ausgeführt wird. So werden z. B. Lese-, Schreib-, Eingabe-, Ausgabe- und Unterbrechungsoperationen während einer Zustandsperiode angezeigt. "Zustände" und aktive Mikroprozessorzustände treten in abwechelnder Reihenfolge auf, wobei die "Zustände" typischerweise etwas kürzer als die aktiven Zustände sind, obwohl dies hier nicht gefordert wird. Das den Eingängen 226 und 234 zugeführte Signal ist ein logisches Pegelsignal mit zwei Werten oder Bedingungen, einer niederen Bedingung während der "Zustands"-Periode und einer hohen Bedingung während der aktiven Periode.
Bei dem gemeinsam genutzten Speicher nach Fig. 3 sind drei Betriebsarten durchführbar. Bei einer ersten Betriebsart besitzt ein ausgewählter Prozessor Priorität über den anderen. Dies wird dadurch verwirklicht, daß der Eingang des entsprechenden NAND- Tors 220 oder 228, das dem Prozessor der hohen Priorität entspricht, ständig an einem hohen logischen Signal liegt. Es sei z. B. erwünscht, dem Prozessor 12 die Priorität einzuräumen. Das dem Prozessor 12 entsprechende UND-Tor 104 und das NAND-Tor 228, und folglich der Eingang 234 werden an ein logisches Signal mit hohem Pegel gelegt, während der Eingang 226 mit dem Zustandsausgang des Prozessors 14 verbunden ist. Da der Eingang 234 ständig an einem logischen Signal mit hohem Pegel liegt, wenn immer der Eingang 230 des NAND-Tors 228 positiv ist und einen Bedienungsaufruf vom Prozessor 12 anzeigt, kann am Ausgang 236 des NAND- Tors 228 ein niederes Signal erzeugt und dem Eingng 172 des NAND-Tors 152 zugeführt werden. Der Eingang 226 ist mit dem Zustandsausgang des Prozessors 14 verbunden, und da das oben geschilderte Zustandssignal abwechselnd von einem hohen auf einen niederen Wert wechselt, ergibt sich klar, daß beim Vorhandensein eines Bedienungsaufrufes, was durch ein hohes Signal am Ausgang 106 des UND-Tors 102 angezeigt wird, der Flip-Flop-Kreis aus den NAND-Toren 166 und 178 während der nächsten Zustandsperiode des Prozessors 14 getriggert wird, die auf einen Bedienungsaufruf durch den Prozessor 12 folgt. Es wird nunmehr andererseits angenommen, daß der Prozessor 12 seit einiger Zeit Bedienung anfordert. Da das Zustandssignal vom Prozessor 12 nicht mit dem NAND-Tor 228 verbunden ist, sondern da am Eingang 232 ein ständig hohes logisches Signal anliegt, behält der Prozessor 12 die Verbindung zum Speicher 50 solange, wie ein Bedienungsaufruf am UND-Tor 102 vorhanden ist.
Eine zweite Betriebsart wird dadurch verwirklicht, daß beide Eingänge 226 und 234 an ein positives Eingangssignal gelegt sind. Diese Betriebsart entspricht derjenigen Betriebsart, die in Verbindung mit der in Fig. 2 dargestellten Ausführungsform erläutert ist. Diese Betriebsart läßt sich als "Ausschließen bis Durchführung erfolgt ist"-Betriebsart kennzeichnen und bedient einen Prozessor so lange, wie hierfür ein Aufruf vorhanden ist.
Eine dritte und besonders bevorzugte Ausführungsform zur Festlegung der Zugriffszuteilung gibt beiden Prozessoren gleichen Rang, ermöglicht aber einen wesentlich höheren Wirkungsgrad des Betriebes. Bei dieser Betriebsart werden Zustandssignale den Eingängen 226 und 234 von den entsprechenden Prozessoren 14 und 12 zugeführt. Unter der Annahme, daß Bedienungsaufrufe an beiden UND-Toren 102 und 104 vorhanden sind, wird ein selbstsynchroner Betrieb erreicht. Die Bedienung wird jedem Prozessor so lange nacheinander zuteil, wie die Zustandsinformation vom Prozessor eine aktive Betriebsart anzeigt. Die Bedienung wird auf den anderen Prozessor zur Bestimmung der aktiven Betriebsart und für einen Beginn der Zustandsbetriebsart geschaltet. In dem speziellen Fall, daß die aktive und die Zustandsbetriebsart gleiche Länge besitzen, wird ein synchroner Betrieb erzielt, wobei der Speicher abwechselnd den beiden Prozessoren während im wesentlichen 100 Prozent der Zeit zu Diensten steht. Sind die Zustands- und die Aktivperioden von unterschiedlicher Länge, wobei vermutlich die Zustandsperiode kürzer ist, so ist eine bestimmte Länge an Wartezeit erforderlich. Es hat sich gezeigt, daß nahezu eine ideale Speicherbenutzung für Prozessoren desjenigen Typs ermöglicht wird, die abwechselnde Zustands- und Aktivperioden besitzen, die dem einzelnen Prozessor die Benutzung des Speichers während derjenigen Perioden gestatten, während derer der Speicher vom anderen Prozessor nicht benötigt wird, wodurch ungefähr 50% Verlustzeit bezüglich des Speichers eliminiert wird.
Das System nach Fig. 3 enthält ein weiteres Merkmal, das in Verbindung mit speziellen Ausführungsformen des Speichers nützlich ist. Speicher-Leseeingänge 240 und 242 sind mit zusätzlichen Eingängen 244 und 246 der NAND-Tore 144 und 156 verbunden. Bestimmte Mikrorechnersysteme verwenden identische Adressen für spezielle Speicherplätze und außerdem für Eingabedatenplätze. Es ist erforderlich, daß ein in Verbindung mit einem derartigen Rechner benutzter Speicher Einrichtungen enthält, um zwischen Speicheradressen und Eingabeadressen zu unterscheiden. Diese Funktion wird von Speicherleseanschlüssen 240 und 242 ausgeführt. An die Eingänge 240 und 242 werden von den Prozessoren 12 bzw. 14 Signale angelegt, die anzeigen, ob die von dem Prozessor gelieferte Adresse eine Speicheradresse oder eine Eingabeadresse ist. Ein hohes logisches Signal, das an den Eingang 240 angelegt wird, gibt an, daß die vom Prozessor gelieferte Adresse eine Speicheradresse darstellt, während ein niederes Eingabesignal am Eingang 240 angibt, daß eine Eingabeadresse geliefert wird. Das an den Eingang 240 angelegte Signal ist mit diesem Signal identisch, es wird jedoch vom Prozessor 14 geliefert. Es ist ersichtlich, daß die Hinzufügung von Speicherleseinformation die Verwendbarkeit eines erfindungsgemäßen Mikrorechnersystems dadurch erhöht, daß eine kleinere Anzahl von Adressen und folglich eine kleinere Zahl von Adressenbits erforderlich ist, um den Zugriff sowohl zum Speicher als auch zu einer Vielzahl von Eingabeeinrichtungen zu ermöglichen. Wenn z. B. ein logisches Signal mit einem hohen Wert am Speicherleseeingang 240 vorhanden ist, und ferner ein Bedienungsaufruf am UND-Tor 102 empfangen wird, der ein hohes Signal am Ausgang 106 erzeugt, das dem Eingang 142 des NAND-Tors 144 zugeführt wird, und wenn weiterhin ein niedriges Signal am Ausgang 168 des NAND-Tors 166 angelegt wird, das vom Inverter 193 invertiert und dem Eingang 194 des NAND-Tors 144 zugeführt wird, dann wird der Drei-Zustands- Pufferspeicher 94 durch ein niedriges Signal an seinem Eingang 198 aktiviert und verbindet den Datenausgang 56 mit dem Ausgangsanschluß 98, der mit dem Dateneingabekanal des Mikrorechnersystems verbunden ist. Der Drei-Zustands-Pufferspeicher 96 wird in ähnlicher Weise durch die gleichzeitige Existenz hoher logischer Signale an den Eingängen 264, 204 und 154 des NAND-Tors 156 erregt. Es ist ersichtlich, daß dann, wenn einer von beiden Speicherleseeingängen 240 und 242 nieder ist, die Drei-Zustands-Pufferspeicher 94 und 96 nicht betätigt werden können, und daß deren Ausgänge 98 und 100 in einem Zustand hoher Impedanz verbleiben und auf diese Weise die Datenerfassung von der adressierten Eingabeeinrichtung durch den Prozessor nicht stören.
Das an Hand der Fig. 3 dargestellte System kann zusätzlich zu dem Merkmal der Speicherzugriffszuteilung durch Benutzung einer Zustandsinformation auch die Zunahme der Adressierkapazität durch Verwendung von Speicherleseinformation aufweisen.
Das erfindungsgemäße System kann zur gemeinsamen Nutzung durch zwei oder mehr Prozessoren erweitert werden. Fig. 4 zeigt eine Ausführungsform der Erfindung, bei der drei Prozessoren an einen einzigen Speicher angeschlossen sind, wobei die Merkmale und Vorteile des gemeinsam genutzten Speichers nach Fig. 3 alle erhalten bleiben. Der gemeinsam genutzte Speicher nach Fig. 4 schließt sowohl die Benutzung von Zustandsinformation und außerdem die Benutzung von Speicherleseinformation ein, die oben in Verbindung mit dem gemeinsam genutzten Speicher nach Fig. 3 beschrieben ist. In Fig. 4 bezeichnen gegenüber den Fig. 2 und 3 unveränderte Bezugszeichen gleiche Elemente. Der Betrieb des gemeinsam genutzten Speichers nach Fig. 4 ist im wesentlichen mit denjenigen nach Fig. 3 identisch mit Ausnahme gewisser logischer Elemente, die hinzugefügt sind, um die simultane Verbindung des Speichers mit drei Prozessoren zu ermöglichen. Die Fig. 4 wird daher in weniger Einzelheiten beschrieben als Fig. 3, da die Arbeitsprinzipien der Ausfürung nach Fig. 3 gleichermaßen auf Fig. 4 anwendbar sind. Die Unterschiede zwischen den Fig. 3 und 4 werden jedoch genau erläutert.
Der gemeinsam genutzte Speicher nach Fig. 4, allgemein mit 300 bezeichnet, enthält zusätzliche Drei-Zustands-Pufferspeicher 302, 304, 306 und 308, die eine selektive Verbindung mit den Adressen-, Lese/Schreib-, Dateneingabe- und Datenausgabekanäle eines dritten Prozessors ermöglichen. Die Drei-Zustands-Pufferspeicher 302, 304, 306 und 308 entsprechen, und sind im wesentlichen identisch mit den vorhandenen Pufferspeichern, die selektiv den Adressen-, Lese/Schreib-, Dateneingabe- und Datenausgabekanal des ersten und des zweiten Prozessors mit dem Speicher 50 verbinden. Der gemeinsam genutzte Speicher 300 enthält ferner ein zusätzliches UND- Tor 310, um die Adressenbits hoher Ordnung des dritten Prozessors mit dem gemeinsam genutzten Speicher zu verbinden, der Speicher enthält ferner ein NAND-Tor 312 zur Verbindung des Wartekanals des dritten Prozessors, und ein NAND-Tor 314, um den Lesekanal des dritten Prozessors mit den Speicher zu verbinden. Die NAND-Tore 320, 322 und 324 sind mit den Ausgängen der UND-Tore 102, 104 bzw. 310 verbunden, während die ODER-Tore 326, 328 und 330 mit den UND-Toren 116, 118 bzw. 312 verbunden sind, die Wartesignale an die drei Prozessoren liefern. Zustandssignale werden den Eingängen 320, 342 und 344 zugeführt, die an die NAND- Tore 320, 322 bzw. 324 angeschlossen sind.
Der Betrieb des gemeinsam genutzten Speichers 300 läßt sich dadurch verstehen, daß mehrere beispielhafte Betriebsbedingungen betrachtet werden. Um die folgende Erläuterung zu vereinfachen, werden die in Verbindung mit dem gemeinsam genutzten Speicher 300 benutzten Mikroprozessoren mit 1, 2 und 3 bezeichnet. Der Mikroprozessor 1 ist mit den Drei-Zustands-Pufferspeichern 62, 78, 86 und 94 verbunden. Er ist ferner mit dem UND-Tor 102, dem UND-Tor 116, dem Speicherleseeingang 240 und dem Zustandseingang 340 verbunden. Der Mikroprozessor 2 ist mit den Drei-Zustands- Pufferspeichern 64, 80, 88 und 96 verbunden. Der Prozessor 2 ist ferner mit dem Speicherleseeingang 242, dem UND-Tor 118, dem UND-Tor 104 und dem Zustandseingang 342 verbunden. Der Prozessor 3 ist mit den Drei-Zustands-Puffern 302, 304, 306 und 308 verbunden. Er ist ferner mit dem Speicherleseeingang 346, dem UND-Tor 310, dem UND-Tor 312 und dem Zustandseingang 344 verbunden. Es wird nun angenommen, daß ein Aufruf zur Bedienung durch Anlegen eines hohen logischen Signals an die Eingänge des UND-Tors 102 angezeigt wird. Es wird ferner angenommen, daß die Prozessoren 2 und 3 keine Bedienung benötigen, und daß daher die Tore 104 und 310 niedere logische Signale an ihren Ausgängen abgeben. Hohe Signale werden dem NAND-Tor 348 und den NAND-Tor 144 zugeführt. Der Eingang 340 liefert ein hohes Signal an das NAND-Tor 320, wenn der Rechner 1 sich in einer aktiven Betriebsart befindet, und das NAND-Tor 360 liefert ein hohes Signal an den letzten Eingang des NAND-Tors 320, wenn immer der Prozessor 1 der letzte Prozessor war, der Zugriff zum Speicher besaß. Wenn alle drei Eingänge des NAND-Tors 320 hoch liegen, wird ein niederes Ausgangssignal erzeugt, das dem NAND-Tor 350 und 352 zugeführt wird, wodurch beide Flip-Flops 362 oder 364 daran gehindert werden, gesetzt zu werden. Aus Bequemlichkeitsgründen werden die NAND-Tore 366 und 368 zusammen als Flip-Flop 362 bezeichnet, während die NAND-Tore 370 und 372 als Flip-Flop 364 bezeichnet werden. In ähnlicher Weise enthalten die NAND- Tore 360 und 374 das Flip-Flop 376. Alle diese Flip-Flops sind identisch untereinander und werden durch ein niederes logisches Signal gesetzt, das einem ersten Eingang der Flip-Flops zugeführt wird, wobei dies beim Flip-Flop 376 der Eingang 378, beim Flip-Flop 362 der Eingang 380 und beim Flip-Flop 364 der Eingang 382 ist. Es läßt sich erkennen, daß das Anlegen einer "Null" an einen dieser Eingänge eine "Eins" an den entsprechenden Ausgängen der NAND-Tore 360, 366 erzeugt, wenn die Flip- Flops gesetzt sind, wobei ein Signal mit niedrigem Pegel den dem entsprechenden Prozessor zugeordneten Drei-Zustands-Pufferspeichern zugeführt ist. Das Flip-Flop 376 ist dem Prozessor 1, das Flip-Flop 362 dem Prozessor 2 und das Flip-Flop 364 dem Prozessor 3 zugeordnet. Jedes der Flip-Flops wird durch Anwendung eines niederen Signals an den Eingang der NAND-Tore 374, 368 oder 372 zurückgesetzt. Die Fig. 376, 362 und 362 bleiben in einem der Setz- oder Rücksetz-Zustände unbestimmt lange in Abwesenheit eines zusätzlichen Signals. Die UND-Tore 384, 386 und 388 liefern das Rücksetzsignal den Flip-Flops. Die UND-Tore enthalten zwei Eingänge, und zwar jeweils einen Eingang von jedem der NAND-Tore 348, 350 und 352 mit denen das Tor nicht in einer Zuordnung steht. Das UND-Tor 384 ist dem NAND-Tor 348 zugeordnet, das UND-Tor 386 ist dem NAND-Tor 350 und das UND-Tor 388 dem NAND-Tor 352 zugeordnet. Das UND-Tor 384 besitzt daher z. B. einen ersten Eingang vom NAND-Tor 352 und einen zweiten Eingang vom NAND-Tor 350. Wenn einer von diesen Eingängen null ist, wird eine Null am Ausgang des UND-Tors 384 erzeugt, wodurch das Flip-Flop 376 daran gehindert wird, gesetzt zu werden. Wenn immer daher einer der Prozessoren 2 oder 3 Zugriff zum Speicher 50 besitzt, kann der Prozessor 1 keinen Zugriff erlangen und den gesetzten Zugriff unterbrechen. Die UND-Tore 386 und 388 sind in ähnlicher Weise geschaltet. Die Fähigkeit des gemeinsam genutzten Speichers nach Fig. 4, die Unterbrechung eines Vorganges zwischen einem Prozessor und dem Speicher zu verhindern, verhindert die vorzeitige Unterbrechung eines Vorganges mit dem Speicher.
Der Speicher 300 enthält eine Anordnung, um zu bestimmen, welcher von zwei Speicheranrufen durchgeführt werden wird. Es wird z. B. der Fall betrachtet, daß Bedienungsanforderungen oder -aufrufe von den Prozessoren 1 und 2 empfangen werden, daß daher also logische Signale mit hohen Werten an den Ausgängen der UND-Tore 102 bzw. 104 empfangen werden. Es wird weiter angenommen, daß der Prozessor 2 zuletzt Zugriff zum Speicher 50 hatte, und daß das Flip-Flop 362 daher gesetzt ist und ein niederes Ausgangssignal am Ausgang des NAND-Tors 368 und ein hohes Ausgangssignal am Ausgang des NAND-Tors 366 erzeugt. Es wird ferner angenommen, daß die Flip-Flops 376 und 364 zurückgesetzt sind und niedere Signale an den Ausgängen der UND-Tore 360 und 370 erzeugen. Diese niederen Signale werden den NAND-Toren 320 bzw. 324 zugeführt, die hohe Signale an deren Ausgängen abgeben, wobei diese hohen Signale dem NAND-Tor 350 zugeführt werden. Da die Bedienungsaufrufe von den Prozessoren 1 und 2 empfangen werden, wodurch hohe Signale an den Ausgängen der UND-Tore 102 und 104 geliefert werden, sind die Ausgänge der NAND-Tore 320 bzw. 322 bzw. 324 hoch bzw. nieder bzw. hoch, wobei angenommen wird, daß die den Eingängen 340, 342 und 344 zugeführten Zustandssignale alle hoch sind. Das NAND-Tor 322 liefert niedere Signale an die NAND-Tore 348, 352 und hindert daran die Flip-Flops 376 und 364, gesetzt zu werden, so daß lediglich das Flip-Flop 362 gesetzt werden kann. Wie angegeben, sind alle Eingänge des NAND-Tors 350 hoch, wodurch ein niederes Ausgangssignal an diesem Tor erzeugt wird, welches das Flip-Flop 362 setzt und den Prozessor 2 mit dem Speicher 50 verbindet.
Die "Zustands"eingangssignale, die den Eingängen 340, 342 und 344 zugeführt werden, werden nur wichtig, wenn gleichzeitig Bedienungsaufrufe von zwei oder mehr Prozessoren vorhanden sind. In diesem Fall wird einem Prozessor nur so lange Zugriff zum Speicher gewährt, wie dessen Zustandsinformation einen Aktivbetrieb anzeigt, der Zugriff wird entfernt und dem anderen Prozessor übergeben, wenn ein "Zustands"-Betrieb durch den ersten Prozessor angezeigt wird.
Der Betrieb der NAND-Tore 144, 156 und 314 entspricht im wesentlichen demjenigen entsprechender Tore in Fig. 2 und 3. Jedes der Tore liefert ein niederes logisches Signal an seinem Ausgang während der Koinzidenz von : einen Speicherlesesignal, das den Eingängen 240, 242 und 346 zugeführt ist; einem Bedienungsaufruf, der von den UND-Toren 102, 104 und 310 geliefert ist und eine "Setz"-Bedingung der Flip-Flops 376, 362 und 364. Der Betrieb eines von mehreren Prozessoren gemeinsam genutzten Speichers, bei dem ein Speicherlesesignal verwendet wird, wurde schon erläutert. Das NOR-Tor 390 liefert ein Speicheransteuersignal mit niederem Wert, wenn irgendein UND-Tor 102, 104 oder 310 einen Bedienungsaufruf durch Vorhandensein eines hohen logischen Signals an deren Ausgängen anzeigt.
Die ODER-Tore 326, 328 und 330 liefern Signale an die NAND-Tore 116 bzw. 118 bzw. 312, wenn irgendeines der Flip-Flops 376, 352 und 364 gesetzt ist. So liefert z. B. das ODER-Tor 326 ein hohes Signal an das NAND-Tor 116, wenn eines der beiden Flip-Flops 362 oder 364 gesetzt ist. Ähnlich liefert das ODER-Tor 328 ein hohes Signal an das NAND-Tor 116, wenn eines der Flip-Flops 376 oder 364 gesetzt ist. Ferner liefert das ODER-Tor 330 ein hohes Signal an das NAND-Tor 312, wenn eines der Flip-Flops 376 oder 362 gesetzt ist. Die Koinzidenz eines hohen Signals von einem der ODER-Tore 326, 328 und 330 mit einem Bedienungsaufruf, der durch ein hohes Signal von den UND-Toren 102, 104 oder 310 angezeigt wird, erzeugt ein Wartesignal am Ausgang eines oder mehrerer NAND-Tore 116, 118 und 312 und zeigt dem betreffenden Prozessor an, daß einer der anderen Prozessoren augenblicklich den Speicher benutzt, und daß daher der anrufende Prozessor warten muß, obwohl die Bedienung angerufen wurde.
Unter bestimmten Bedingungen können von zwei Prozessoren gleichzeitig Bedienungsanforderungen empfangen werden, wobei keiner der beiden Prozessoren derjenige Prozessor war, der zuletzt Zugriff zum Speicher 50 besaß. Obwohl der Speicher 300 einen der anfordernden Prozessoren auf eine mehr oder weniger zufälligen Basis bedient, kann es wünschenswert sein, einen Zugriff mit Priorität vorzusehen. Gemäß der Erfindung kann es daher wünschenswert sein, Kapazitäten vorzusehen, die von den Ausgängen der NAND-Tore 348, 350 und 352 nach Masse geschaltet sind. Diese Kondensatoren liefern eine bestimmte Verzögerung in der Antwort der NAND-Tore 348, 350 und 352 entsprechend der Größe des Kondensators. Es ist das demjenigen Mikroprozessor zugeordnete NAND-Tor, der die höchste Priorität besitzen soll, mit dem kleinsten oder gar keinem Kondensator versehen, während das dem Prozessor mit zweiter Priorität zugeordnete NAND-Tor mit einem etwas größeren Kondensator versehen ist, und während das dem letzten Prozessor zugeordnete NAND-Tor mit dem größten Kondensator versehen ist.
An Hand der Fig. 4 läßt sich die Art der Antwort des gemeinsam genutzten Speichers 50 auf eine Vielzahl von Bedienungsanforderungsbedingungen leicht erkennen. Es wird daher nicht als erforderlich angesehen, spezielle Betriebsbedingungen in weiteren Einzelheiten zu beschreiben. Die Bezugnahme auf die Fig. 2 bis 4 und die entsprechenden Beschreibungsteile ermöglichen es dem Fachmann, einen erfindungsgemäßen Speicher so zu erweitern, daß er auch von einer größeren Anzahl von Prozessoren als in irgendeinem der geschilderten Beispiele angegeben benutzbar ist.
Das beschriebene Mehrprozessor-Mikrorechnersystem besitzt viele Vorteile gegenüber bekannten Systemen. Der Betrieb des Systems ist unter Verwendung lediglich der Kanal-Verbindungsstrukturen mehrerer Mikrorechner möglich, ohne daß weitere Verbindungen oder die Steuerung des einen Mikrorechners durch die anderen erforderlich wären. Das beschriebene System besitzt einen höheren Wirkungsgrad, eine höhere Betriebsgeschwindigkeit und Zuverlässigkeit, ohne daß die Notwendigkeit besteht, irgendeinen der Mikroprozessoren, mit dem der Speicher in Zuordnung steht, zu modifizieren.
Viele der beschriebenen Merkmale stellen hervorragende Lösungen für eine Reihe von Problemen dar. Wie z. B. angegeben wurde, kann der gemeinsam genutzte Speicher veschiedenen Prozessoren als verschiedene Adressenplätze erscheinen. Ferner sind Mittel angegeben, die in einem einfachen und geradlinigen Weg ein Speicherzugriffsverfahren wahlweise mit oder ohne Prioritätszuordnung zwischen zwei oder mehreren Prozessoren ermöglichen. Der synchronisierte Betrieb durch Benutzung von Zustandsinformation, die durch zwei oder mehr mit einem gemeinsam genutzten Speicher verbundenen Prozessoren geliefert wird, stellt einen großen Vorteil dar. Die Anwendungsmöglichkeiten des Systems werden lediglich durch die Erfordernisse des Benutzers begrenzt. So kann z. B. in einem einfachen Zweiprozessorensystem ein erster Prozessor zur Durchführung arithmetischer Datenoperationen benutzt werden, während ein zweiter Prozessor, der mit demselben gemeinsam genutzten Speicher wie der erste Prozessor verbunden ist, verwendet werden kann, um die Daten zur Ausgabe in einer verwendbaren Form zu formatieren. Dies bringt den Vorteil mit sich, daß der erste Prozessor im wesentlichen Realzeit-Ausgabedaten von einer Vielzahl von Eingaben liefert, während der zweite Prozessor die Formatierung der Ausgabe durchführt. In ähnlicher Weise lassen sich Daten zwischen Prozessoren auf wirkungsvollere Weise transferieren als dies bisher möglich war. Der die Daten enthalende Prozessor kann zum Speicher übertragen, wenn die Daten verfügbar sind und muß nicht warten, bis ein anderer Prozessor bereit ist, die Daten zu empfangen. In ähnlicher Weise kann der empfangende Prozessor die Daten vom Speicher zu beliebiger Zeit auslesen, nachdem die Daten übertragen wurden und muß nicht irgendeine darin ablaufende Operation unterbrechen wegen des Bedürfnisses, zwei Prozessoren für die Übertragung gleichzeitig zur Verfügung zu haben.

Claims (8)

1. Mehrprozessor-Mikrorechnersystem, enthaltend:
einen ersten Prozessor mit einem Adressenkanal, einem Eingabedatenkanal und einem Ausgabedatenkanal,
einen zweiten Prozessor mit einem Adressenkanal, einem Eingabedatenkanal und einem Ausgabedatenkanal,
einen gemeinsam benutzten Speicher mit einem Adressenkanal, einem Eingabedatenkanal und einem Ausgabedatenkanal sowie
eine einzige Steuereinrichtung, die an den Adressenkanal, den Eingabedatenkanal und den Ausgabedatenkanal des ersten Prozessors, des zweiten Prozessors sowie des gemeinsam benutzten Speichers angeschlossen ist und derart arbeitet, daß sie unter Auswertung von Mustern vorbestimmter Adressenbits, die ihr über die Adressenkanäle des ersten und zweiten Prozessors zuführbar sind, die Kanäle des Speichers mit den jeweils entsprechenden Kanälen eines der beiden Prozessoren wahlweise verbindet,
wobei die Steuereinrichtung, falls sie nur von einem der beiden Prozessoren eine Speicherzugriffsanforderung empfängt, den Adressenkanal, den Eingabedatenkanal und den Ausgabedatenkanal des Speichers mit dem entsprechenden Adressenkanal, Eingabedatenkanal und Ausgabedatenkanal desjenigen Prozessors verbindet, der die Speicherzugriffsanforderung in Form der Adressenbits aussendet, und
wobei die Steuereinrichtung im Fall gleichzeitiger Speicherzugriffsanforderungen durch beide Prozessoren bei der Prozessorauswahl eine Zugriffszuteilung vornimmt, dadurch gekennzeichnet, daß jeder der beiden Prozessoren (12, 14) in der Lage ist, ein Statussignal abzugeben, das die Fähigkeit des zugeordneten Prozessors zum Aussenden von Daten an den Speicher (50) und zum Empfangen von Daten von dem Speicher anzeigt, und daß die Steuereinrichtung Einrichtungen (220, 228) enthält, die zur Zugriffszuteilung auf die Statussignale des ersten und des zweiten Prozessors (12, 14) ansprechen.
2. Mehrprozessor-Mikroerechnersystem nach Anspruch 1, dadurch gekennzeichnet, daß die auf die Statussignale ansprechenden Einrichtungen (220, 228) für einen synchronisierten Zugriff von einem der beiden Prozessoren (12, 14) zum Speicher (50) sorgen, nur wenn dieser eine Prozessor zum Zugriff zum Speicher aufruft und auch das zugeordnete Statussignal an die für die Statussignale ansprechenden Einrichtungen abgibt.
3. Mehrprozessor-Mikrorechnersystem nach Anspruch 1, dadurch gekennzeichnet, daß ein vom ersten Prozessor (12) ausgehender erster Statuskanal und ein vom zweiten Prozessor (14) ausgehender zweiter Statuskanal vorgesehen sind, daß die Statussignale der beiden Prozessoren (12, 14) am ersten bzw. zweiten Statuskanal als erstes bzw. zweites Statussignal auftreten und jeweils anzeigen, ob der erste bzw. zweite Prozessor in einer Statusbetriebsart oder einer aktiven Betriebsart ist, und daß die auf Statussignale ansprechenden Einrichtungen (220, 228) mit dem ersten und dem zweiten Statuskanal durch Eingangsanschlüsse (226, 234) verbunden sind.
4. Mehrprozessor-Mikrorechnersystem nach Anspruch 3, dadurch gekennzeichnet, daß die Steuereinrichtung eine eine Setz- und Rücksetzschaltung (140, 152) aufweisende Flipflopschaltung (166, 178) enthält, die beim Auftreten eines vorbestimmten Musters von Speicheradressenbits an einem Adressenkanal (18) des ersten Prozessors (12) in den ersten Zustand und beim Auftreten eines vorbestimmten Musters von Speicheradressenbits an einem Adressenkanal (18′) des zweiten Prozessors (14) in den zweiten Zustand schaltet, und daß die auf die Statussignale ansprechenden Einrichtungen (220, 228) es zulassen, daß einer der beiden Zustände auf Veranlassung des zugeordneten der beiden Prozessoren (12, 14) eingenommen wird, wenn sich der andere der beiden Prozessoren in der Statusbetriebsart befindet und der erste oder zweite Zustand unverändert bleibt, wenn die Muster von Speicheradressenbits im wesentlichen gleichzeitig an beiden Adressenkanälen (18, 18′), des ersten und zweiten Prozessors (12, 14) auftreten.
5. Mehrprozessor-Mikrorechnersystem nach Anspruch 1, dadurch gekennzeichnet, daß die auf die Stastussignale ansprechenden Einrichtungen (220, 228) bei Ersatz eines der beiden Statussignale durch ein Festwertsignal dem diesem Signal zugeordneten Prozessor der beiden Prozessoren (12, 14) beim Zugriff zum Speicher Priorität in bezug auf den anderen der beiden Prozessoren einräumen.
6. Mehrprozessor-Mikrorechnersystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Steuereinrichtung Schaltglieder (62 bis 246 in Fig. 3; 62 bis 390 in Fig. 4) enthält, die nach Beendigung des Speicherzugriffs eines Prozessors (z. B. 12) ihren durch den Speicherzugriff dieses Prozessors (z. B. 12) verursachten Schaltzustand beibehalten.
7. Mehrprozessor-Mikrorechnersystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Steuereinrichtung Dekodiereinrichtungen (102, 104) enthält, die mit dem Speicher (50) und den Adressenkanälen (18 bzw. 18′) des ersten bzw. zweiten Prozessors (12 bzw. 14) verbunden sind und die den Speicher (50) gegenüber jedem der Prozessoren (12, 14) unter verschiedenen Speicheradressen erscheinen lassen.
8. Mehrprozessor-Mikrorechnersystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Steuereinrichtung Pufferspeichereinrichtungen (62, 64, 86, 88, 94, 96) enthält, die dazu dienen, den Adressenkanal (52), den Eingabedatenkanal (54) und den Datenausgabekanal (56) des Speichers (50) mit dem entsprechenden Adressenkanal (18 oder 18′), Eingabedatenkanal (22 oder 22′) und Ausgabedatenkanal (20 oder 20′) nur desjenigen der beiden Prozessoren (12, 14) zu verbinden, der zur Verbindung mit dem Speicher (50) ausgewählt ist.
DE2760322A 1976-04-22 1977-04-20 Expired DE2760322C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/679,408 US4212057A (en) 1976-04-22 1976-04-22 Shared memory multi-microprocessor computer system

Publications (1)

Publication Number Publication Date
DE2760322C2 true DE2760322C2 (de) 1988-09-22

Family

ID=24726794

Family Applications (2)

Application Number Title Priority Date Filing Date
DE2760322A Expired DE2760322C2 (de) 1976-04-22 1977-04-20
DE2717503A Expired DE2717503C2 (de) 1976-04-22 1977-04-20 Mehrprozessor-Mikrorechnersystem

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE2717503A Expired DE2717503C2 (de) 1976-04-22 1977-04-20 Mehrprozessor-Mikrorechnersystem

Country Status (11)

Country Link
US (1) US4212057A (de)
JP (1) JPS5853379B2 (de)
BR (1) BR7702548A (de)
CA (1) CA1095175A (de)
CH (1) CH620306A5 (de)
DE (2) DE2760322C2 (de)
ES (1) ES457986A1 (de)
FR (1) FR2349178A1 (de)
GB (1) GB1572426A (de)
IN (1) IN147333B (de)
IT (1) IT1075707B (de)

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4276594A (en) * 1978-01-27 1981-06-30 Gould Inc. Modicon Division Digital computer with multi-processor capability utilizing intelligent composite memory and input/output modules and method for performing the same
DE2911909C2 (de) * 1978-03-29 1984-03-15 British Broadcasting Corp., London Digitales Datenverarbeitungsgerät
US4325116A (en) * 1979-08-21 1982-04-13 International Business Machines Corporation Parallel storage access by multiprocessors
US4387425A (en) * 1980-05-19 1983-06-07 Data General Corporation Masterless and contentionless computer network
US4280060A (en) * 1980-06-09 1981-07-21 General Electric Company Dedicated microcomputer-based control system for steam turbine-generators
US4446514A (en) * 1980-12-17 1984-05-01 Texas Instruments Incorporated Multiple register digital processor system with shared and independent input and output interface
US4491907A (en) * 1980-12-15 1985-01-01 Texas Instruments Incorporated Plurality of processors sharing the memory, the arithmetic logic unit and control circuitry all on a single semiconductor chip
US4450534A (en) * 1981-05-14 1984-05-22 Texas Instruments Incorporated Multiprocessor with dedicated display
US4463417A (en) * 1980-12-29 1984-07-31 International Business Machines Corporation Modular, processor-controlled document distribution terminal
JPS57153359A (en) * 1981-03-18 1982-09-21 Ibm Data processing system with common memory
JPS57191703A (en) * 1981-05-20 1982-11-25 Fanuc Ltd Sequence controller
US4590551A (en) * 1981-08-24 1986-05-20 Burroughs Corporation Memory control circuit for subsystem controller
US4449182A (en) * 1981-10-05 1984-05-15 Digital Equipment Corporation Interface between a pair of processors, such as host and peripheral-controlling processors in data processing systems
DE3238871C2 (de) * 1982-10-18 1986-03-27 Licentia Patent-Verwaltungs-Gmbh, 6000 Frankfurt Steuerungsanordnung zur Kopplung zweier digitaler Rechnersysteme
US4698753A (en) * 1982-11-09 1987-10-06 Texas Instruments Incorporated Multiprocessor interface device
US4648035A (en) * 1982-12-06 1987-03-03 Digital Equipment Corporation Address conversion unit for multiprocessor system
ATE30085T1 (de) * 1982-12-13 1987-10-15 Fraunhofer Ges Forschung Rechnerkopplung.
US4577344A (en) * 1983-01-17 1986-03-18 Automatix Incorporated Vision system
US4591977A (en) * 1983-03-23 1986-05-27 The United States Of America As Represented By The Secretary Of The Air Force Plurality of processors where access to the common memory requires only a single clock interval
ATE154151T1 (de) * 1983-04-25 1997-06-15 Cray Research Inc Mehrprozessorsteuerung für vektorrechner
US4616310A (en) * 1983-05-20 1986-10-07 International Business Machines Corporation Communicating random access memory
US4634110A (en) * 1983-07-28 1987-01-06 Harris Corporation Fault detection and redundancy management system
JPS6054052A (ja) * 1983-09-02 1985-03-28 Nec Corp 処理継続方式
DE3334766A1 (de) * 1983-09-26 1985-04-11 Siemens AG, 1000 Berlin und 8000 München Multiprozessor-zentralsteuereinheit eines vermittlungssystems insbesondere fernsprech-vermittlungssystems
US5255369A (en) * 1984-03-10 1993-10-19 Encore Computer U.S., Inc. Multiprocessor system with reflective memory data transfer device
GB2156554B (en) * 1984-03-10 1987-07-29 Rediffusion Simulation Ltd Processing system with shared data
US5581732A (en) * 1984-03-10 1996-12-03 Encore Computer, U.S., Inc. Multiprocessor system with reflective memory data transfer device
US4862350A (en) * 1984-08-03 1989-08-29 International Business Machines Corp. Architecture for a distributive microprocessing system
JPS61166668A (ja) * 1985-01-19 1986-07-28 Panafacom Ltd 多重プロセツサ制御方式
US4845637A (en) * 1985-02-11 1989-07-04 American Telephone And Telegraph Company, At&T Bell Laboratories Feeder monitor arrangement for stored program controlled rectifier plant
US4833596A (en) * 1985-02-28 1989-05-23 International Business Machines Corporation Logical arrangement for controlling use of different system displays by main processor and co-processor
ATE55840T1 (de) * 1985-05-09 1990-09-15 Voest Alpine Automotive Mikrorechnersystem.
JPH0752876B2 (ja) * 1985-07-20 1995-06-05 ソニー株式会社 内部バス式デイジタル装置
US4811052A (en) * 1985-08-08 1989-03-07 Canon Kabushiki Kaisha Control device for control of multi-function control units in an image processing apparatus
IT1184013B (it) * 1985-12-13 1987-10-22 Elsag Memoria ad elevata capacita accessibile a diverse agenti
US4755937A (en) * 1986-02-14 1988-07-05 Prime Computer, Inc. Method and apparatus for high bandwidth shared memory
US4817006A (en) * 1986-03-28 1989-03-28 Thomas Engineering, Inc. Pharmaceutical tablet press control mechanism
US4751648A (en) * 1986-03-31 1988-06-14 Halliburton Company Local area network data transfer system
US4747060A (en) * 1986-03-31 1988-05-24 Halliburton Company Data acquisition module and method
US5201040A (en) * 1987-06-22 1993-04-06 Hitachi, Ltd. Multiprocessor system having subsystems which are loosely coupled through a random access storage and which each include a tightly coupled multiprocessor
CA1310429C (en) * 1987-09-19 1992-11-17 Nobuo Uchida Access priority control system for main storage for computer
US4933901A (en) * 1988-01-11 1990-06-12 Texas Instruments Incorporated Method for assigning priority to read and write requests received closely in time
US4949280A (en) * 1988-05-10 1990-08-14 Battelle Memorial Institute Parallel processor-based raster graphics system architecture
US5276806A (en) * 1988-09-19 1994-01-04 Princeton University Oblivious memory computer networking
US5111530A (en) * 1988-11-04 1992-05-05 Sony Corporation Digital audio signal generating apparatus
JPH02144641A (ja) * 1988-11-25 1990-06-04 Nec Corp マイクロコンピュータ
US5161219A (en) * 1989-01-13 1992-11-03 International Business Machines Corporation Computer system with input/output cache
US5142638A (en) * 1989-02-07 1992-08-25 Cray Research, Inc. Apparatus for sharing memory in a multiprocessor system
GB9012970D0 (en) * 1989-09-22 1990-08-01 Ibm Apparatus and method for asynchronously delivering control elements with pipe interface
DE58909135D1 (de) * 1989-09-29 1995-04-27 Siemens Ag Kommunikationssystem für miteinander verbundene speicherprogrammierbare Steuerungen.
US5075846A (en) * 1989-09-29 1991-12-24 Motorola, Inc. Memory access serialization as an MMU page attribute
US5331538A (en) * 1989-10-23 1994-07-19 Pitney Bowes Inc. Mail processing system controller
US5247616A (en) * 1989-10-23 1993-09-21 International Business Machines Corporation Computer system having different communications facilities and data transfer processes between different computers
US5247637A (en) * 1990-06-01 1993-09-21 Cray Research, Inc. Method and apparatus for sharing memory in a multiprocessor system
US5115411A (en) * 1990-06-06 1992-05-19 Ncr Corporation Dual port memory system
US5206952A (en) * 1990-09-12 1993-04-27 Cray Research, Inc. Fault tolerant networking architecture
DE4113959A1 (de) * 1991-04-29 1992-11-05 Kloeckner Humboldt Deutz Ag Ueberwachungseinrichtung
FR2678400B1 (fr) * 1991-06-27 1995-08-04 Texas Instruments France Processeur de protocole destine a l'execution d'un ensemble d'instructions en un nombre reduit d'operation.
EP0568082A1 (de) * 1992-04-30 1993-11-03 Olympus Optical Co., Ltd. Nähbehandlungs- und Verwaltungssystem mit einer elektronischen Datenverarbeitungsvorrichtung
JPH07507892A (ja) * 1992-06-12 1995-08-31 ザ、ダウ、ケミカル、カンパニー プロセス制御コンピュータ用透過型インターフェース
DE69306389T2 (de) * 1992-06-12 1997-06-26 Dow Chemical Co Intelligentes prozesssteuerverbindungssystem und verfahren.
EP0810499B1 (de) * 1992-06-12 2001-10-17 The Dow Chemical Company Sicheres Frontenverbindungssystem und Verfahren für Prozesssteuerungsrechner
DE69316559T2 (de) * 1992-12-03 1998-09-10 Advanced Micro Devices Inc Servoregelkreissteuerung
US5341502A (en) * 1992-12-14 1994-08-23 Motorola, Inc. Device for assigning a shared resource in a data processing system
US6230211B1 (en) * 1993-01-19 2001-05-08 Canon Kabushiki Kaisha Container-based method for exchanging information between computer processes
JPH06314110A (ja) * 1993-04-28 1994-11-08 Fanuc Ltd 数値制御機能を実行するコンピュータシステム部分と他のコンピュータシステムとの結合方式
US5608877A (en) * 1995-03-24 1997-03-04 Cirrus Logic, Inc. Reset based computer bus identification method and circuit resilient to power transience
US5917723A (en) * 1995-05-22 1999-06-29 Lsi Logic Corporation Method and apparatus for transferring data between two devices with reduced microprocessor overhead
US5802546A (en) * 1995-12-13 1998-09-01 International Business Machines Corp. Status handling for transfer of data blocks between a local side and a host side
FR2759178B1 (fr) * 1997-02-05 1999-04-09 Sgs Thomson Microelectronics Circuit de gestion de memoire dans un environnement multi-utilisateurs avec requete et priorite d'acces
US6088514A (en) * 1997-12-23 2000-07-11 Deltatrak, Inc. Environmental data logging system
EP1212683A4 (de) * 1999-04-28 2010-02-24 Richard L Foreman Umweltdatenregistrierunssystem
US6651124B1 (en) * 2000-04-28 2003-11-18 Hewlett-Packard Development Company, L.P. Method and apparatus for preventing deadlock in a distributed shared memory system
US20020161453A1 (en) * 2001-04-25 2002-10-31 Peltier Michael G. Collective memory network for parallel processing and method therefor
JP2002366425A (ja) * 2001-06-05 2002-12-20 Hitachi Ltd アドレス変換回路を有するデータ処理装置
JP2004078683A (ja) * 2002-08-20 2004-03-11 Toshiba Corp コンピュータシステムおよび共有メモリ制御方法
JP4222803B2 (ja) * 2002-09-11 2009-02-12 Necエレクトロニクス株式会社 データ処理装置およびデータ処理回路
ATE534887T1 (de) * 2007-01-19 2011-12-15 Sick Stegmann Gmbh Verfahren und vorrichtung zur parametrierung einer messeinrichtung

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3343140A (en) * 1964-10-27 1967-09-19 Hughes Aircraft Co Banked memory system
US3469239A (en) * 1965-12-02 1969-09-23 Hughes Aircraft Co Interlocking means for a multi-processor system
US3467948A (en) * 1966-06-21 1969-09-16 Gen Electric Apparatus providing a unique decision signal for concurrent interrogation signals
US3505651A (en) * 1967-02-28 1970-04-07 Gen Electric Data storage access control apparatus for a multicomputer system
US3445822A (en) * 1967-07-14 1969-05-20 Ibm Communication arrangement in data processing system
US3555513A (en) * 1967-10-11 1971-01-12 Burroughs Corp Multiprocessor digital computer system with address modification during program execution
US3560934A (en) * 1969-06-10 1971-02-02 Ibm Arrangement for effecting vector mode operation in multiprocessing systems
DE2064383C3 (de) * 1970-01-12 1981-02-26 Fujitsu Ltd., Kawasaki, Kanagawa (Japan) Datenverarbeitungsanlage mit mehreren zentralen Verarbeitungseinrichtungen
US3699524A (en) * 1970-08-10 1972-10-17 Control Data Corp Adaptive data priority generator
DE2137308A1 (de) * 1970-10-12 1972-04-13 Robotron Veb K Schaltungsanordnung mit Wiederholstruktur zur Vermittlung von Speicherzyklen
BE786342A (fr) * 1971-04-15 1973-01-17 Int Standard Electric Corp Perfectionnements aux systemes utilisant des calculateurs
NL7106491A (de) * 1971-05-12 1972-11-14
US3735360A (en) * 1971-08-25 1973-05-22 Ibm High speed buffer operation in a multi-processing system
US3896418A (en) * 1971-08-31 1975-07-22 Texas Instruments Inc Synchronous multi-processor system utilizing a single external memory unit
US3982231A (en) * 1972-03-31 1976-09-21 International Business Machines Corporation Prefixing in a multiprocessing system
IT976393B (it) * 1972-03-31 1974-08-20 Ibm Sistema multielaboratore perfezionato
US3886525A (en) * 1973-06-29 1975-05-27 Ibm Shared data controlled by a plurality of users
GB1485758A (en) * 1973-09-16 1977-09-14 Hawker Siddeley Dynamics Ltd Computer systems
US3921145A (en) * 1973-10-12 1975-11-18 Burroughs Corp Multirequest grouping computer interface
US3940743A (en) * 1973-11-05 1976-02-24 Digital Equipment Corporation Interconnecting unit for independently operable data processing systems
US3845474A (en) * 1973-11-05 1974-10-29 Honeywell Inf Systems Cache store clearing operation for multiprocessor mode
US3889237A (en) * 1973-11-16 1975-06-10 Sperry Rand Corp Common storage controller for dual processor system
US3959775A (en) * 1974-08-05 1976-05-25 Gte Automatic Electric Laboratories Incorporated Multiprocessing system implemented with microprocessors
US3931613A (en) * 1974-09-25 1976-01-06 Data General Corporation Data processing system
US4000485A (en) * 1975-06-30 1976-12-28 Honeywell Information Systems, Inc. Data processing system providing locked operation of shared resources
US4055851A (en) * 1976-02-13 1977-10-25 Digital Equipment Corporation Memory module with means for generating a control signal that inhibits a subsequent overlapped memory cycle during a reading operation portion of a reading memory cycle

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DE-Z.: IBM-Nachrichten, Febr. 1969, S. 549-564 u. S. 552 *
US-Z.: IEEE Transactions on Computers, Sept. 1975, S. 931-932 *

Also Published As

Publication number Publication date
ES457986A1 (es) 1978-07-01
DE2717503A1 (de) 1977-11-03
IT1075707B (it) 1985-04-22
CA1095175A (en) 1981-02-03
FR2349178B1 (de) 1982-08-13
GB1572426A (en) 1980-07-30
CH620306A5 (de) 1980-11-14
JPS52138846A (en) 1977-11-19
FR2349178A1 (fr) 1977-11-18
BR7702548A (pt) 1978-02-28
DE2717503C2 (de) 1986-06-05
JPS5853379B2 (ja) 1983-11-29
US4212057A (en) 1980-07-08
IN147333B (de) 1980-02-02

Similar Documents

Publication Publication Date Title
DE2760322C2 (de)
DE3810231C2 (de)
DE2313724C3 (de) Elektronische Datenverarbeitungsanlage mit einer Anzahl von Datengeräten, die mit einem gemeinsamen Kontroller nach dem Unterberechnungsprinzip verkehren
DE2455803C2 (de) Mehrprozessor-Datenverarbeitungsanlage
EP0006164B1 (de) Multiprozessorsystem mit gemeinsam benutzbaren Speichern
EP0577919B1 (de) Zugriffssteuerung für gekoppelte maskenprogrammierte Mikrocontroller
DE2755952C2 (de)
DE1774296B2 (de) Restruktuierbare Steuereinheit für elektronische Digitalrechner
DE2844357A1 (de) Speichererweiterung
DE2523372B2 (de) Eingabe-ZAusgabe-Anschlußsteuereinrichtung
DE2744531A1 (de) Elektronische datenverarbeitungsanlage
CH628167A5 (de) Prozessoreinrichtung zur prioritaetssteuerung der zugriffe zum gemeinsam benutzten arbeitsspeicher einer mehrprozessoranlage.
DE2917441B2 (de) Verfahren und Schaltungsanordnung zur datenwegunabhängigen Reservierung, Freigabe und Wiederverbindung nach Unterbrechung von Ein- und/oder Ausgabegeräten und Speichergeräten in einen datenverarbeitenden Multiprozessorsystem
DE10296959T5 (de) System und Verfahren zum Steuern der Buszuteilung während Cache-Speicher-Burstzyklen
DE3502147C2 (de)
DE3508321A1 (de) Programmierbare schaltung zur steuerung einer fluessigkristallanzeige
DE2164793A1 (de) Verfahren und Datenverarbeitungsanlage zur Steuerung einer Vielzahl von Eingabe/ Ausgabe-Einheiten mittels eine Zentraleinheit
DE2645341C2 (de)
DE3936339C2 (de) DMA-Controller
DE2558417C3 (de) Datenverarbeitungssystem
DE3142504A1 (de) Mehrfachplattenspeicher-uebertragungssystem
CH495584A (de) Datenverarbeitungsanlage
DE3247083A1 (de) Mehrprozessorsystem
DE2824557C2 (de) Anordnung in Mikroprozessoren für den Aufbau von Multiprozessor-Systemen
EP0104638B1 (de) Verfahren zur Vorbereitung der Anschaltung einer von mehreren datenverarbeitenden Einrichtungen an ein zentral taktgesteuertes Mehrfach-Leitungssystem

Legal Events

Date Code Title Description
Q172 Divided out of (supplement):

Ref country code: DE

Ref document number: 2717503

8181 Inventor (new situation)

Free format text: DEVLIN, CHARLES LOUIS, BALLSTON LAKE, N.Y., US EICHELBERGER, CHARLES WILLIAM, SCHENECTADY, N.Y., US

8110 Request for examination paragraph 44
AC Divided out of

Ref country code: DE

Ref document number: 2717503

Format of ref document f/p: P

D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee