CH620306A5 - - Google Patents

Download PDF

Info

Publication number
CH620306A5
CH620306A5 CH494977A CH494977A CH620306A5 CH 620306 A5 CH620306 A5 CH 620306A5 CH 494977 A CH494977 A CH 494977A CH 494977 A CH494977 A CH 494977A CH 620306 A5 CH620306 A5 CH 620306A5
Authority
CH
Switzerland
Prior art keywords
memory
processor
address
processors
input
Prior art date
Application number
CH494977A
Other languages
English (en)
Inventor
Charles Louis Devlin
Charles William Eichelberger
Original Assignee
Gen Electric
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 Gen Electric filed Critical Gen Electric
Publication of CH620306A5 publication Critical patent/CH620306A5/de

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 eine Mikrorechner mit mindestens zwei praktisch unabhängig voneinander arbeitenden Prozessoren und mit mindestens einem gemeinsamen Speicher zum Einspeichern und Auslesen von digitalen Steuer-, Programm- und Dateninformationen aus bzw. in irgendeinen dieser Prozessoren.
Mikrorechner werden bei einer grossen Vielzahl von Anwendungsgebieten zunehmend wichtig. Da die Wirtschaftlichkeit bei der Herstellung der Mikroprozessoren und Mikrorechner zunimmt und die Herstellungskosten reduziert, werden sie in mehr und mehr Anwendungsgebieten eingesetzt. Es kann oftmals erwünscht sein, in Verbindung mit einem einzigen Speicher oder einem Teil eines Speichers mehr als einen Prozessor 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 Mikrorechners mit mehreren Prozessoren besteht darin, dass mit zwei oder mehreren relativ billigen Prozessoren ein komplexer Rechner aufgebaut werden kann, der billiger ist als ein gleichwertiger Rechner mit nur einem komplizierten und teureren Prozessor. Ein weiterer erzielbarer Vorteil besteht darin, dass ein Rechner aufgebaut werden kann, bei dem im Falle der Störung eines einzelnen Prozessors ein zweiter Prozessor die Funktion des gestörten Prozessors ausführt, so dass auf diese Weise eine mit Rechnern mit nur einem Prozessor nicht erreichbare Redundanz vorhanden ist. Ein weiterer Vorteil eines Mehrprozessorenmikrorechners besteht darin, dass der Informationsaustausch zwischen zwei oder mehreren Prozessoren über einen gemeinsam genutzten Speicher erfolgen kann, zu dem jeder Prozessor direkten Zugriff besitzt. Ein derartiger Rechner besitzt die Möglichkeit der gemeinsamen Nutzung von Daten und von Programminformationen und besitzt den weiteren Vorteil, dass ein Prozessor verwendet werden kann, um einen anderen Prozessor durch Veränderung der in einem einzigen Speicher gespeicherten Befehle zu programmieren. Viele
2
5
10
Î5
20
25
30
35
40
45
'50
55
60
b5
augenblicklich in Verwendung befindliche Mikroprozessoren weisen Sammelkanäle auf, die für den Informationsaustausch zwischen dem Mikroprozessor und anderen Komponenten des Mikrorechners, wie z. B. dem Speicher und Eingabe/Ausgabeeinrichtungen, vorgesehen sind. Ein Sammelkanal ermöglicht einen raschen Umbau des Mikrorechners durch Substitution von Komponenten, ohne dass eine physikalische Änderung des Hardware-Grundaufbaus erforderlich ist.
Der vorliegenden Erfindung liegt darum die Aufgabe zugrunde, einen Mehrprozessormikrorechner mit einem gemeinsam genutzten Speicher zu schaffen.
Erfindungsgemäss wird diese Aufgabe mit einem Mikrorechner gelöst, der mindestens zwei praktisch unabhängig voneinander arbeitende Prozessoren enthält und der gekennzeichnet ist durch mit dem Speicher und den Prozessoren zusammenwirkende Steuereinrichtungen, die in Beantwortung eines von einem der Prozessoren erzeugten Bedienungsaufrufs nach Speicherzugriff den Speicher mit diesem Prozessor verbinden, welche Steuereinrichtungen beim Eintreffen eines einzigen solchen Bedienungsaufrufs den Speicher mit dem diesen einzigen Aufruf ausgebenden Prozessor verbinden und beim praktisch gleichzeitigen Eintreffen solcher Bedienungsaufrufe, die von mindestens zwei Prozessoren ausgegeben wurden, den Speicher mit demjenigen Prozessor verbinden, der vor den praktisch gleichzeitig eintreffenden Bedienungsaufrufen als letzter Zugriff zum Speicher hatte.
Die Arten der 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 zum Speicher nur während einer bestimmten Phase des Taktsignals erforderlich ist. Ein zwei Mikroprozessoren zugeordneter, gemeinsam genutzter Speicher ermöglicht eine äusserst wirkungsvolle Benutzung dieses Speichers. Ein Merkmal gewisser gemeinsam genutzter Speicher besteht darin, dass 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 einem Speicher Daten schneller eingeschrieben bzw. aus einem Speicher schneller ausgelesen werden, als bestimmte Mikroprozessoren in der Lage sind, die Lese- oder Schreiboperationen durchzuführen. Der Wirkungsgrad der Speicherbenutzung kann jedoch erhöht werden, wenn ein einziger gemeinsam benutzter Speicher zwei oder mehr Prozessoren derart bedient, dass die Zeit, während der ein Prozessor keine Bedienung benötigt, dem anderen Prozessor zugeordnet ist. Auf diese Weise wird viel Zeit, während der der Speicher früher nicht aktiv und die daher verloren war, wirkungsvoll genutzt.
Der gemeinsam genutzte Speicher kann den beiden oder mehreren Prozessoren, die sich in den Speicher teilen, als ein unterschiedlicher Bereich der gesamten Speicherkapazität des Prozessors erscheinen. Es wird z. B. angenommen, dass beide Prozessoren die Kapazität besitzen, 64 000 Speicheradressen zu adressieren. Es wird ferner angenommen, dass der gemeinsam genutzte Speicher einen Umfang von 8000 Adressen besitzt. Dann können die 8000 gemeinsam genutzten Adressen einem ersten Prozessor als Adresse 0 bis 7999, und einem zweiten Prozessor als Adressen 8000 bis 15 999 erscheinen. Natürlich ist es auch möglich, dass der gemeinsam genutzte Speicher für zwei oder mehr Prozessoren dieselben Adressen enthält.
In folgenden werden Ausführungsbeispiele der Erfindung anhand der Zeichnung näher erläutert. Es zeigen:
Fig. 1 das Blockschaltbild einer Ausführungsform eines Mehrprozessorenmikrorechners, bei dem der Speicher von zwei oder mehr Prozessoren gemeinsam genutzt ist,
Fig. 2 einen logischen Schaltplan eines von zwei Prozesso620306
ren gemeinsam genutzten Speichers,
Fig. 3 einen anderen logischen Schaltplan eines gemeinsam genutzten Speichers und
Fig. 4 einen logischen Schaltplan eines von mehr als zwei Mikroprozessoren gemeinsam genutzten Speichers.
In Fig. 1 ist das Blockschaltbild eines Mikrorechners mit zwei Prozessoren und einem gemeinsam genutzten Speicher gezeigt. Der Rechner ist allgemein mit dem Bezugszeichen 10 bezeichnet und enthält eine ersten Prozessor 12 und eine zweiten Prozessor 14. Es sei darauf hingewiesen, dass die Erfindung zwar in Verbindung mit Figur 1 an Hand eines zwei Prozessoren enthaltenden Mehrprozessorenmikrorechners erläutert wird, dass es jedoch für den Fachmann ohen weiteres möglich ist, drei oder mehr Prozessoren mit einem einzigen gemeinsam genutzten Speicher zu verbinden. Mit dem Prozessor 12 ist ein erster Sammelkanal 16 verbunden, der einen Adressenkanal 18, einen Datenausgabekanal 20, einen Dateneingabekanal 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 Art und der Anzahl der zu übertragenden Signale verändert sein. So z. B. oftmals angenehm, parallele Adressendateneingänge und -ausgänge mit bis zu 16 Bits vorzusehen. Es sei bemerkt, dass 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 Dateneingabekanäle je 8 Bits von Parallelformatinformation enthalten, es sind daher acht Leiter für den Dateneingabe- und den Datenausgabekanal erfoderlich. 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 Kanäle hängt von der Organisation des Prozessors und der zugeordneten Hilfseinrichtungen ab. Obwohl nicht dargestellt, lassen sich zusätzliche Kanäle vorsehen. So sollen z. B., obwohl nicht dargestellt, Leistungsversorgungska-näle in dem Mikrorechner 10 der Figur 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 dem Prozessor 12 zugeordneten Kanälen 18 bis 26. Beide Prozessoren 12 und 14 sind über die zugehörigen Kanäle mit peripheren Komponenten verbunden. Der Prozessor 12 ist über dem Kanal 16 mit einer Eingabe/Ausgabeein-richtung 30 und einem lokalen Speicher 32 verbunden. Der Prozessor 14 ist über den zugehörigen Sammelkanal 16' mit einer ersten Eingabe/Ausgabeeinrichtung 34, einer zweiten Eingabe/ Ausgabeeinrichtung 36 und einem lokalen Speicher 38 verbunden. Die Verbindungen zwischen den Prozessoren und den angegebenen zugeordneten Einrichtungen sind herkömmlicher Art und werden daher nicht ausführlich beschrieben. Die Adressenkanäle 18 und 18' werden von den Prozessoren 12 und 14 mit Adresseninformationen versorgt, die der Einrichtung, die an die Kanalanordnung angeschlossen ist, zugeführt werden. 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, dem bzw. der der Adresse entspricht. Zum Beispiel möge eine spezielle 16-Bit-Adresse irgendeinem Speicherplatz im Speicher entsprechen. Wenn diese spezielle Bit-Kombination auf dem Adressenkanal 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 Leitungen für Daten dar, die von èiner Einrichtung zu
3
5
10
15
20
25
30
35
ir
45
">0
•55
W)
65
620306
einer anderen übertragen werden wollen. Die Dateneingabe-und -ausgabekanäle führen die aktuellen Daten zwischen den Einrichtungen. So lassen sich z. B. Daten in den Speicher einschreiben bzw. aus dem Speicher auslesen, indem eine Speicheradresse auf dem Adressenkanal und Daten vom Prozessor auf demjenigen Datenausgabekanal vorhanden sind, von dem die Daten durch die adressierte Einrichtung empfangen werden. Es sei bemerkt, dass 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össeren Geschwindigkeit zu liefern, als es die Eingabe/ Ausgabeeinrichtung brauchen kann. Um zu verhindern, dass Daten verlorengehen, wird ein Wartesignal dem Prozessor zugeführt, um die Geschwindigkeit des Datenflusses vom Prozessor zur Eingabe/Ausgabeeinrichtung in dem Umfang zu ermässigen, dass 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 Mikrospeicher 10 einen gemeinsam genutzten Speicher 40. Der gemeinsam genutzte Speicher 40 ist mit den beiden Prozessoren 12 und 14 zugeordneten Sammelkanälen verbunden. Gemäss einer bevorzugten Ausführungsform enthält der gemeinsam genutzte Speicher einen einzigen Speicher, zu dem beide Prozessoren 12 und 14 Zugriff besitzen, für die der gemeinsam genutzte Speicher 40 als ein verschiedener Teil des gesamten, jedem Prozessor zugänglichen Speichers erscheint.
Eine bevorzugte Ausführungsform des gemeinsam genutzten Speichers ist in Figur 2 dargestellt. Der Speicher 50, der bevorzugt als Direktzugriffsspeicher (Speicher mit wahlfreiem Zugriff) ausgebildet ist, besitzt einen Adresseneingang 52, einen Dateneingabeeingang 54, eine Datenausgabeeingang 56, einen Lese/Schreibsteuereingang 58 und einen Speicheransteuereingang 60. Wie in Verbindung mit der Figur 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 Zusätzen 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 Zugriffe zum Speicher besitzen. Der gemeinsam genutzte Speicher nach Figur 2 kann in Verbindung mit einem Mikrorechner gemäss Figur. 1 verwendet werden, und in der anschliessenden Erläuterung entspricht der gemeinsam genutzte Speicher nach Figur 2 dem gemeinsam genutzten Speicher 40 in Figur 1. Die Pufferspeicher 62 und 64 mit drei Zuständen sind folglich mit den Adressenkanälen 18 und 18' nach Figur 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 Vielfachadressenverbindungen 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 Toreingangsanschluss 74 versehen, der in dieser speziellen Ausführungsform der Erfindung ein invertierender Ein-gangsanschluss ist, d. h. ein Anschluss, der den Pufferspeicher 62 aktiviert, wenn ein Masse- oder logisches Nullsignal an diesem Anschluss anliegt. Ein entsprechender Toreingangsanschluss 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 Toreingangsanschluss 74 anliegt, so wird z. B. eine elektrische Verbindung mit kleiner Impedanz zwischen dem Eingang 66 und dem Ausgang 70 hergestellt Wenn der Toranschluss 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-noch mit 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ässt 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 Toranschluss 74 eine Verbindung zur Spule des Relais darstellt. Es sei bemerkt, dass die Funktion der Pufferspeicher 62 und 64 mit drei Zuständen auf vielerlei Weise möglich ist, und dass diese Erfindung sich nicht auf irgendein Verfahren oder irgendeine spezielle Vorrichtung zur Verwirklichung der oben angegebenen Funktion beschränkt.
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 Datenausgabeanschluss 56 des Speichers 50 zu den Ausgangsanschlüssen 98 und 100 liefern. Es sei bemerkt, dass die Pufferspeicher 78,80,86,94 und 96 ebenso wie die Pufferspeicher 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 Mikrorechners. 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. Dem in Figur 2 dargestellten gemeinsam genutzten Speicher sind UND-Tore 102 und 104 zugeordnet, die mit denjenigen Kanälen 18 und 18' verbunden sind, die die Adressenbits hoher Ordnung führen. 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össe des Speichers 50 und der Adressierkapazität des Prozessors unterschiedlich ist. Da die UND-Tore 102 und 104 Ausgangssignale abgeben, wenn ihr Eingangsanschluss 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 zum Bei4
5
10
15
20
25
30
35
40
45
50
55
60
b5
spiel 16 Bits vom Prozessor an den Adressenkanal abgegeben werden, und wenn ferner der Speicher 50 zum Beispiel 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 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 Figur 2 dargestellten Ausführungsform des Speichers 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, dass 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 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 zustellen, 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, dass der Speicher 50 gegenüber den beiden Prozessoren 12 und 14 als ein unterscheidbarer Teil des Speichers erscheint, der von den betreffenden Prozessoren adressierbar ist. Es wird angenommen,
dass zum Beispiel drei Bits der Adressendaten den beiden Toren 102 und 104 zugeführt werden, und dass 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 Ausgangsanschluss 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 NAND-Tore 116 und 118 liefern die Endverbindung zu den Kanälen der beiden Prozessoren an den Ausgängen 120 beziehungsweise 122. Der Ausgang 120 ist mit dem Wartekanal 26, und der Ausgang 122 mit dem Wartekanal 26' verbunden. Der gemeinsam genutzte Speicher nach Figur 2 braucht nur mit den Sammelkanälen der beiden Teile des Mehrprozessoren-Mikrorechners nach Figur 1 verbunden werden. Es ist keine zusätzliche Steuerung erforderlich, und es wird auch keine direkte Verbindung zwischen den beiden Sammelkanälen hergestellt.
Der Betrieb des gemeinsam genutzten Speichers nach Figur 2 erfordert, dass eine Anzahl von Bedingungen erfüllt ist. Der Speicher 50 lässt sich von beiden Prozessoren 12 und 14 adresssieren, aber er kann nicht gleichzeitig von beiden Prozessoren adressiert werden. Wenn nur ein Prozessor den Speicher adressiert, ermöglicht der gemeinsam genutzte Speicher nach Figur 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 ein hohes Ausgangssignal an den Ausgängen 106 oder 108 der Tore 102 und 104 angezeigt. Zum Zwecke der Diskussion wird von «hohen» und «niederen» Signalen gesprochen. Es sei jedoch darauf hingewiesen, dass hiermit hohe und niedere logische Signalpegel gemeint sind, die nicht notwendigerweise mit den speziellen relativen Grössen übereinstimmen. Die «hohen» und die «niederen» Signale betreffen logische «Eins»-Signale beziehungsweise logische «Null»-Signale. Es wird zuerst angenommen, dass lediglich der Ausgang 106 des UND-Tors 102 erregt ist und ein hohes Signal erzeugt, das angibt, dass der Prozessor 12 Zugriff zum Speicher wünscht. Ein hohes Signal erscheint am Ausgang 106 des UND-Tors 102 und gleichzeitig
620306
am Eingang 130 des Nor NOR-Tors 132, am Eingang 138 des NAND-Tors 140 und am Eingang 142 des NAND-Tor 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, dass 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 beziehungsweise 78. Niedere logische Sigale 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, dass die NAND-Tore 116 und 118 mit den den Prozessoren 12 und 14 zugeordneten Wartekanälen verbunden sind. Ein niedriges Signal veranlasst den Prozessor zu warten, und ein hohes Signal gestattet es dem Prozessor weiter zu arbeiten. Der Drei-Zustands-Pufferspei-cher 62 liefert entsprechend eine Verbindung zwischen seinem Eingang 66 und dem Ausgang 70 und dadurch verbindet 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 Figur 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-Pufferspei-cher 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, dass 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, dass beide UND-Tore 102 und 104 niedere Signale abgeben, die anzeigen, dass 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, dass an dessen Ausgang 182 weiterhin ein hohes Signal erzeugt wird. Es wird gezeigt, dass die NAND-Tore 166 und 178 in einer Flip-Flop-Schaltungsbeziehung zusammengeschaltet sind und ein niederes beziehungsweise ein hohes Signal in Abwesenheit von
5
5
10
15
20
25
30
Ì5
40
45
50
55
hO
b5
620306
Bedienungsaufrufen der beiden Prozessoren am Ausgang aufrechterhalten.
Es wird nun angenommen, dass 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 beziehungsweise 170 erzeugen, wobei diese niederen Signale sicherstellen, dass an den Ausgängen 162 und 174 hohe Signale erzeugt werden, die an die Eingänge 176 beziehungsweise 164 gekoppelt werden. Es sei daran erinnert, dass sich das NAND-Tor 166 zuvor in einem «Ein»-Zustand befand und ein niederes Signal an seinem Ausgang 168 erzeugt, und dass das NAND-Tor 178 ein hohes Signal an seinem Ausgang 182 erzeugte, wobei diese Bedingungen während eines gleichzeitigen Bedienungsaufrufes durch beide Prozesoren andauern. Die Eingänge des NAND-Tors 166 bleiben hoch, und die Eingänge 180 und 176 des NAND-Tors 178 sind nieder beziehungsweise hoch und erzeugen daher ein hohes Ausgangssignal am Ausgang 182 des NAND-Tors 178.
Es wird nun angenommen, dass nur vom Prozessor 14 ein Bedienungsaufruf erfolgt, und dass 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. Nieder 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 dem Prozessor 12 der Zugriff genommen wird.
Es wurde geschrieben, dass Zugriff dem einen oder dem anderen anfordernden Prozessor gegeben wird, wenn jeweils ein Bedienungsaufruf zu einem Zeitpunkt erscheint, und dass 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 Prozesor 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 Figur 2 liefert die erforderliche Steuerung, um diese beiden Zugriffsarten zu ermöglichen. Es ist bekannt, dass die elektrische Verbindung zum Speicher 50 zur Durchführung von Lese- und Schreiboperationen 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 muss daher vom Sammelkanal des entsprechenden Prozessors, ausgenommen wenn das Auslesen von Daten aus dem Speicher erwünscht ist, isoliert beziehungsweise getrennt werden. Der Dateneingang 54 empfängt Daten von der Sammelkanalanordnung und ist durch eine relative 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ässt sich leichter verstehen, wenn beachtet wird, dass am Ausgangsanschluss 56 erscheinende Daten im wesentlichen den mit dem Ausgangsanschluss 56 verbundenen Datenkanal auf die Datenpegel festlegen, die in dem speziellen adressierten Speicherplatz vorhanden sind. Es kann dem Dateneingabe-Kanal 54 jedoch gestattet werden, ein nicht festgelegtes, schwimmendes Potential zu besitzen, 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 beziehungsweise 156 gesteuert werden. Beispielsweise und unter spezieller Bezugnahme auf das NAND-Tor 144 sei daran erinnert, dass 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, dass der Ausgang 168 des NAND-Tors 166 nieder liegt, und es wird gezeigt, dass 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 Ausgangsanschluss 98 mit dem Ausgangsanschluss 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-Pufferspei-cher 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-Schaltung der NAND-Tore 166 und 178 bewirkt. Das NAND-Tor 156 arbeitet in ähnlicher Weise mit dem Drei-Zustands-Puf-ferspeicher 96 zusammen und liefert ein niedere 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-Pufferspeicher 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 beziehungsweise 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 beziehungsweise 104 verbunden. Der Speicher wird durch ein hohes Signal am Ausgang 210 des NOR-Tors 132 ausgesteuert oder in Betrieb gesetzt, 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 Figur 2 viele Vorteile bietet und in einem weiten Bereich in einer Vielzahl 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. Figur 3 zeigt einen gemeinsam genutzten Speicher, der im wesentlichen alle die Vorteile des Speichers nach
6
5
10
15
20
25
30
35
40
45
5t)
55
bO
55
Figur 2 und zusätzlich gewisse Zusatzmerkmale besitzt. In Figur 3 bezeichnen gleiche Bezugszeichen Elemente, die mit denen von Figur 2 übereinstimmen. Es lässt sich erkennen, dass der Inverter 148 in Figur 2 durch ein NAND-Tor 220 in Figur 3 ersetzt wurde. Das NAND-Tor 220 enthält einen ersten Eingang 222, der mit dem Ausgang 108 des UND-Tors 104 verbunden ist, und einen zweiten Eingang 224, der mit dem Eingangs-anschluss 226 verbunden ist. Der Inverter 136 ist durch ein zweites NAND-Tor 228 ersetzt, der einen ersten und einen zweiten Anschluss 230 und 232 enthält. Der Eingang 230 ist mit dem Ausgang 106 und UND-Tors 102 verbunden, während der Eingang 232 mit dem Eingangsanschluss 234 verbunden ist. Die Eingangsanschlüsse 226 und 224 sind mit den Zustandskanälen der Prozessoren 14 beziehungsweise 12 verbunden. Der Betrieb des gemeinsam genutzten Speichers nach Figur 3 lässt sich durch Betrachtung der Art der Zustandsinformation verstehen, die den Eingängen 226 und 234 zugeführt wird. Es wird darauf hingewiesen, dass 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 eine ähnliche Zustandsinformation, die in der Form Abweichungen besitzen kann, die jedoch vom Fachmann durch kleinere Änderungen der in Figur 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 «Zustan-des» wird Zustandsinformation einem Datenausgang eines Mikroprozessors zugeführt, die diejenige Operation anzeigt, die während des nachfolgenden aktiven Zustands ausgeführt wird. So werden zum Beispiel Lese-, Schreib-, Eingabe-, Ausgabe* und Unterbrechungsoperationen während einer Zustandsperiode angezeigt. «Zustände» und aktive Mikroprozessorzustände treten in abwechselnder Reihenfolge auf,
wobei die «Zustände» typischerweise etwas kürzer als die aktiven Zustände sind, obwohl dies 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 Figur 3 sind drei Betriebsarten durchführbar. Bei einer ersten Betriebsart besitzt ein ausgewählter Prozessor Priorität über den anderen. Dies wird dadurch verwirklicht, dass der Eingang des entsprechenden NAND-Tors 220 und 228, das dem Prozessor der hohen Priorität entspricht, ständig an einem hohen logischen Signal liegt. Es sei zum Beispiel erwünscht, dem Prozessor 12 die Priorität einzuräumen. Das dem Prozessor 12 entsprechende UND-Tor 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 Eingang 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, dass 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, dass der Prozessor 12 seit einiger
620 306
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 de* Prozessor 12 die Verbindung zum Speicher 50 solange, wie ein Bedienungsaufruf am UND-Tor 102 vorhanden ist.
Eine zweite Betriebsart verwirklicht gleiche Priorität dadurch, dass beide Eingänge 226 und 234 an ein positives Eingangssignal gelegt sind. Diese Betriebsart entspricht derjenigen Betriebsart, die in Verbindung mit der in Figur 2 dargestellten Ausführungsform erläutert ist. Diese Betriebsart lässt sich als «Ausschliessen 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 Priorität gibt beiden Prozessoren die gleiche Priorität aber ermöglicht einen wesentlich erhöhten Wirkungsgrad des Betriebes. Bei dieser Betriebsart werden Zustands-signale den Eingängen 226 und 234 von den entsprechenden Prozessoren 14 und 12 zugeführt. Unter der Annahme, dass 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, dass 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 Zustandsund 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, dass der gemeinsam genutzte Speicher nahezu eine idelae Speicherbenutzung für Prozessoren desjenigen Typs ermöglicht, die abwechselnde Zustands- und Aktivperioden besitzen, die dem einzelnen Prozessor die Benutzung des Speichers während derjenigen Perioden gestatten, während der der Speicher vom anderen Prozessor nicht benötigt wird, wodurch die vor dieser Erfindung ungefähr 50 Prozent Verlustzeit bezüglich des Speichers eliminiert wird.
Der gemeinsam genutzte Speicher nach Figur 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 ausserdem für Eingabedatenplätze. Es ist erforderlich, dass ein in Verbindung mit einem derartigen Rechner benutzter Speicher Einrichten 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 beziehungsweise 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, dass die vom Prozessor gelieferte Adresse eine Speicheradresse darstellt, während ein niederes Eingabesignal am Eingang 240 angibt, dass 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, dass die Hinzufügung von Speicherleseinformation die Verwendbarkeit eines Mikrorechners dadurch erhöht, dass 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
7
5
10
15
20
25
30
35
40
45
55
bO
b5
620306 8
ermöglichen. Wenn zum Beispiel ein logisches Signal mit einem den UND-Toren 116,118 beziehungsweise 312 verbunden sind, hohen Wert am Speicherleseeingang 240 vorhanden ist, und die Wartesignale an die drei Prozessoren liefern. Zustandssigwenn ferner ein Bedienungsaufruf am UND-Tor 102 empfan- naie werden den Eingängen 340,342 und 344 zugeführt, die an gen wird, der ein hohes Signal am Ausgang 106 erzeugt, das die NAND-Tore 320,322 beziehungsweise 324 angeschlossen dem Eingang 142 des NAND-Tors 144 zugeführt wird, und 5 sind.
wenn weiterhin ein niedriges Signal am Ausgang 168 des Der Betrieb des gemeinsam genutzten Speichers 300 lässt
NAND-Tors 166 angelegt wird, das vom Inverter 193 invertiert sich dadurch verstehen, dass mehrere beispielhafte Betriebsund dem Eingang 194 des NAND-Tors 144 zugeführt wird, bedingungen betrachtet werden. Um die folgende Erläuterung dann wird der Drei-Zustands-Pufferspeicher 94 durch ein nied- zu vereinfachen, werden die in Verbindung mit dem gemeinsam riges Signal an seinem Eingang 198 aktiviert und verbindet den io genutzten Speicher 300 benutzten Mikroprozessoren mit 1,2 Datenausgang 56 mit dem Ausgangsanschluss 98, der mit dem und 3 bezeichnet Der Mikroprozessor 1 ist mit den Drei-Dateneingabekanal des Mikrorechners verbunden ist. Der Zustands-Pufferspeichern 62,78,86 und 94 verbunden. Es ist Drei-Zustands-Pufferspeicher 96 wird in ähnlicher Weise durch ferner mit dem UND-Tor 102, dem NAND-Tor 116, dem die gleichzeitige Existenz hoher logischer Signale an den Ein- Speicherleseeingang 240 und dem Zustandseingang 340 vergangen 246,204 und 154 des NAND-Tors 156 erregt. Es ist h bunden. Der Mikroprozessor 2 ist mit den Drei-Zustands-Puf-ersichtlich, dass dann, wenn einer von beiden Speicherleseein- ferspeichern 64,80,88 und 96 verbunden. Der Prozessor 2 ist gängen 240 und 242 nieder ist, die Drei-Zustands-Pufferspei- ferner mit dem Speicherleseeingang 242, dem NAND-Tor 118, eher 94 und 96 nicht betätigt werden können, und dass deren dem UND-Tor 104 und dem Zustandseingang 342 verbunden. Ausgänge 98 und 100 in einem Zustand hoher Impedanz ver- Der Prozessor 3 ist mit den Drei-Zustands-Puff ern 302,304,306 bleiben und auf diese Weise die Datenerfassung von der adres- 20 und 308 verbunden. Er ist ferner mit dem Speicherleseein-sierten Eingabeeinrichtung durch den Prozessor nicht stören. gang 346, dem UND-Tor 310, dem NAND-Tor 312 und dem Ein gemeinsam genutzter Speicher kann das eine von bei- Zustandseingang 344 verbunden. Es wird angenommen, dass den oder beide anhand der Figur 3 dargestellten Merkmale auf- ein Aufruf zur Bedienung durch Anlegen eines hohen logischen weisen, nämlich die Zuweisung der Priorität durch Benutzung Signals an die Eingänge des UND-Tors 102 angezeigt wird. Es einer Zustandsinformation und die Zunahme der Adressierka- 25 wird ferner angenommen, dass die Prozessoren 2 und 3 keine pazität durch Verwendung von Speicherleseinformation. Es Bedienung benötigen, und dass daher die Tore 104 und 310 niewird weiterhin betont, dass keines dieser Merkmale erforder- dere logische Signale an ihren Ausgängen abgeben. Hohe lieh ist, und dass keines von dem anderen abhängt. Signale werden dem NAND-Tor 320, dem NAND-Tor 348 und
Ein gemeinsam genutzter Speicher kann so ausgestaltet dem NAND-Tor 144 zugeführt Der Eingang 340 liefert ein sein, dass er die Kapazität zur gemeinsamen Nutzung durch 30 hohes Signal an das NAND-Tor 320, wenn der Rechner 1 sich drei oder mehr Prozessoren besitzt. Figur 4 zeigt eine Ausfüh- in einer aktiven Betriebsart befindet, und das NAND-Tor 360 rungsform eines Speichers, der an drei Prozessoren ange- liefert ein hohes Signal an den letzten Eingang des NAND-
schlossen ist, wobei die Merkmale und Vorteile des gemeinsam Tors 320, wenn immer der Prozessor 1 der letzte Prozessor genutzten Speichers nach Figur 3 alle erhalten bleiben. Der war, der Zugriff zum Speicher besass. Wenn alle drei Eingänge gemeinsam genutzte Speicher nach Figur 4 schliesst sowohl die 35 des NAND-Tors 320 hoch liegen, wird ein niederes Ausgangs-Benutzung von Zustandsinformation und ausserdem die Benut- signal erzeugt, das dem NAND-Tor 350 und 352 zugeführt wird, zung von Speicherleseinformation ein, die oben in Verbin- wodurch beide Flip-Flops 362 und 364 daran gehindert werden,
dung mit dem gemeinsam genutzten Speicher nach Figur 3 gesetzt zu werden. Aus Bequemlichkeitsgründen werden die beschrieben ist. In Figur 4 bezeichnen gegenüber den Figuren 2 NAND-Tore 366 und 368 zusammen als Flip-Flop 362 bezeich-und 3 unveränderte Bezugszeichen gleiche Elemente. Der 40 net, während die NAND-Tore 370 und 372 als Flip-Flop 364 Betrieb des gemeinsam genutzten Speichers nach Figur 4 ist im bezeichnet werden. In ähnlicher Weise enthalten die NAND-wesentlichen mit denjenigen nach Figur 3 identisch mit Aus- Tore 360 und 374 das Flip-Flop 376. Alle diese Flip-Flops sind nähme gewisser logischer Elemente, die hinzugefügt sind, um identisch untereinander und werden durch ein niederes logi-die simultane Verbindung des Speichers mit drei Prozessoren sches Signal gesetzt, das einem ersten Eingang der Flip-Flops zu ermöglichen. Die Figur 4 wird daher in weniger Einzelheiten « zugeführt wird, wobei dies beim Flip-Flop 376 der Eingang 378, beschrieben als Figur 3, da die Arbeitsprinzipien der Ausfüh- beim Flip-Flop 362 der Eingang 380 und beim Flip-Flop 364 der rung nach Figur 3 gleichermassen auf Figur 4 anwendbar sind. Eingang 382 ist. Es lässt sich erkennen, dass das Anlegen einer Die Unterschiede zwischen den Figuren 3 und 4 werden jedoch «Null» an einen dieser Eingänge eine «Eins» an den entspre-genau erläutert. chenden Ausgängen der NAND-Tore 360,366 und 370 erzeugt,
5o wenn die Flip-Flops gesetzt sind, wobei ein Signal mit niedri-Der gemeinsam genutzte Speicher nach Figur 4, allgemein gern Pegel den dem entsprechenden Prozessor zugeordneten mit 300 bezeichnet, enthält zusätzliche Drei-Zustands-Puffer- Drei-Zustands-Pufferspeichern zugeführt ist. Das Flip-Flop 376 Speicher 302,304,306 und 308, die eine selektive Verbindung ist dem Prozessor 1, das Flip-Flop 362 dem Prozessor 2 und das mit den Adressen-, Lese/Schreib-, Dateneingabe- und Datenaus- Flip-Flop 364 dem Prozessor 3 zugeordnet. Jedes der Flip-Flops gabekanälen eines dritten Prozessors ermöglichen. Die Drei- 55 wird durch Anwendung eines niederen logischen Signals an Zustands-Pufferspeicher 302,304,306 und 308 entsprechen, und den Eingang der NAND-Tore 374,368 oder 372 zurückgesetzt, sind im wesentlichen identisch mit den vorhandenen Puffer- Die Flip-Flops 376,362 und 364 bleiben in einem der Setz- und speichern, die selektiv den Adressen-, Lese/Schreib-, Datenein- Rücksetz-Zustände unbestimmt lange in Abwesenheit eines gäbe- und Datenausgabekanal des ersten und des zweiten Pro- zusätzlichen Signals. Die UND-Tore 384,386 und 388 liefern zessors mit dem Speicher 50 verbinden. Der gemeinsam bo das Rücksetzsignal den Flip-Flops. Die UND-Tore enthalten genutzte Speicher 300 enthält ferner ein zusätzliches UND- zwei Eingänge, und zwar jeweils einen Eingang von jedem der Tor 310, um die Adressenbits hoher Ordnung des dritten Pro- NAND-Tore 348,350 und 352 mit denen das Tor nicht in einer zessors mit dem gemeinsam genutzten Speicher zu verbinden, Zuordnung steht. Das UND-Tor 384 ist dem NAND-Tor 348 der Speicher enthält ferner ein NAND-Tor 312 zur Verbindung zugeordnet, das UND-Tor 386 ist dem NAND-Tor 350 und das des Wartekanals des dritten Prozessors, und ein NAND- b5 UND-Tor 388 dem NAND-Tor 352 zugeordnet. Das UND-Tor 314, um den Lesekanal des dritten Prozessors mit dem Tor 384 besitzt daher zum Beispiel einen ersten Eingang vom
Speicher zu verbinden. Die NAND-Tore 320,322 und 324 sind NAND-Tor 352 und einen zweiten Eingang vom NAND-mit den Ausgängen der NAND-Tore 102,104 beziehungsweise Tor 350. Wenn einer von diesen Eingängen null ist, wird eine 310 verbunden, während die ODER-Tore 326,328 und 330 mit 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 Figur 4, die Unterbrechung eines Vorgangs 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 zum Beispiel der Fall betrachtet, dass Bedienungsanforderungen oder-aufrufe von den Prozessoren 1 und 2 empfangen werden, dass daher also logische Signale mit hohen Werten an den Ausgängen der UND-Tore 102 beziehungsweise 104 empfangen werden. Es wird weiter angenommen, dass der Prozessor 2 zuletzt Zugriff zum Speicher 50 hatte, und dass 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, dass die Flip-Flops 376 und 364 zurückgesetzt sind und niedere Signale an den Ausgängen der NAND-Tore 360 und 370 erzeugen. Diese niederen Signale werden den NAND-Toren 320 beziehungsweise 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 beziehungsweise 322 beziehungsweise 324 hoch beziehungsweise nieder beziehungsweise hoch, wobei angenommen wird, dass 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 dass 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 Zustandseingangssignale, 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 Prozesor ü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 Figur 2 und 3. jedes der Tore liefert ein niederes logisches Signal an seinem Ausgang während der Koinzidenz von: einem 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 einer «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 niederm 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 beziehungsweise 118 beziehungsweise 312, wenn irgendeines der Flip-Flops 376,362 und 364 gesetzt ist. So liefert zum Beispiel 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
620306
an das NAND-Tor 116, wenn eines der Flip-Flops 376 oder 364 gesetzt ist. Ferner liefert das ODER-Tor 30 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, dass einer der anderen Prozessoren augenblicklich den Speicher benutzt, und dass daher der anrufende Prozessor warten muss, 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 besass. Obwohl der Speicher 300 einen der anfordernden Prozessoren auf einer mehr oder weniger zufälligen Basis bedient, kann es wünschenswert sein, einen Zugriff mit Priorität vorzusehen.
Gemäss 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össe des Kondensators. Das NAND-Tor, das demjenigen Mikroprozessor zugeordnet ist, der die höchste Priorität besitzen soll, ist mit dem kleinsten oder gar keinem Kondensator versehen, während das dem Prozessor mit zweiter Priorität zugeordnete NAND-Tor mit einem etwas grösseren Kondensator und das dem letzten Prozessor zugeordnete NAND-Tor mit dem gröss-ten Kondensator versehen ist.
Anhand der Figur 4 lässt sich die Art der Antwort des gemeinsam genutzten Speichers 300 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 Figuren 2 und 4 und die entsprechenden Beschreibungsteile ermöglichen es dem Fachmann, einen Speicher so zu erweitern, dass er auch von einer grösseren Anzahl von Prozessoren als in irgendeinem der geschilderten Beispiele angegeben, benutzbar ist.
Der beschriebene gemeinsam genutzte Speicher besitzt viele Vorteile gegenüber bekannten Speichern. Der Betrieb eines gemeinsam genutzten Speichers ist unter Verwendung lediglich der Sammelkanäl mehrerer Mikrorechner möglich, ohne dass weitere Verbindungen oder die Steuerung des einen Mikrorechners durch den anderen erforderlich wären. Der beschriebene gemeinsam genutzte Speicher besitzt einen höheren Wirkungsgrad, eine höhere Betriebsgeschwindigkeit und Zuverlässigkeit, ohne dass die Notwendigkeit besteht, irgendeinen der Mikroprozessoren, mit dem der Speicher in Zuordnung steht, zu modifizieren.
Viele der innerhalb der vorstehenden Beschreibung genannten Merkmale stellen hervorragende Lösungen für eine Reihe von Problemen dar. Wie zum Beispiel angegeben wurde, kann ein gemeinsam genutzter Speicher verschiedenen Prozessoren als verschiedene Adressenplätze erscheinen. Ferner sind Mittel angegeben, die in einem einfachen und geradlinigen Weg ein Verfahren zur Herstellung der Priorität 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 eine weitere Möglichkeit des neuen Mikrorechners dar. Die Anwendungsmöglichkeiten des gemeinsam genutzten Speichers werden lediglich durch die Erfordernisse des Benutzers begrenzt. So kann
9
5
10
15
20
25
30
35
in
4"
>0
'S1")
H'
fr *
620306 10
zum Beispiel in einem einfachen Zweiprozessorensystem ein nicht irgendeine darin ablaufende Operation unterbrechen erster Prozessor zur Durchführung arithmetischer Datenope- wegen des Bedürfnisses, zwei Prozessoren für die Übertragung rationen benutzt werden, während ein zweiter Prozessor, der gleichzeitig zur Verfügung zu haben.
mit demselben gemeinsam genutzten Speicher wie der erste Der beschriebene gemeinsam genutzte Speicher kann in
Prozessor verbunden ist, verwendet werden kann, um die 5 einer Vielzahl von Möglichkeiten benutzt werden, um Mehr-Daten zur Ausgabe in einer verwendbaren Form zu formatie- prozessoren-Systeme zu verwirklichen. Wie zum Beispiel ren. Dies bringt den Vorteil mit sich, dass der erste Prozessor geschildert wurde, können mehrere Prozessoren mit einem ein-im wesentlichen Realzeit-Ausgabedaten von einer Vielzahl von zigen Speicher verbunden werden, oder es können alternativ Eingaben liefert, während der zweite Prozessor die Formatie- Speicher und Prozessoren in einer kettenartigen Struktur rung der Ausgabe durchführt. In ähnlicher Weise lassen sich 10 zusammengeschaltet werden, wobei ein einziger Prozessor mit Daten zwischen Prozessoren auf wirkungsvollere Weise trans- zwei Speichern verbunden ist, und wobei jeder Speicher an ferieren als dies bisher möglich war. Der die Daten enthaltende zwei Prozessoren angeschlossen ist, wobei die Verbindungen Prozessor kann zum Speicher übertragen, wenn die Daten ver- zwischen Prozessoren und Speichern der in Figur 1 dargestell-fügbar sind und muss nicht warten, bis ein anderer Prozessor ten Art sind, wobei zum Beispiel der Prozessor 14 mit einem bereit ist, die Daten zu empfangen. In ähnlicher Weise kann der 15 zweiten gemeinsam genutzten Speicher verbunden ist, der wieempfangende Prozessor die Daten vom Speicher zu beliebiger derum in der geschilderten Art und Weise mit einem anderen Zeit auslesen, nachdem die Daten übertragen wurden und muss Prozessor verbunden ist.
G
2 Blatt Zeichnungen

Claims (11)

620306 PATENTANSPRÜCHE
1. Mikrorechner mit mindestens zwei praktisch unabhängig voneinander arbeitenden Prozessoren (12,14) und mit mindestens einem gemeinsamen Speicher (40) zum Einspeichern und Auslesen von digitalen Steuer-, Programm- und Dateninformationen aus bzw. in irgendeinen dieser Prozessoren, gekennzeichnet durch mit dem Speicher und den Prozessoren zusammenwirkende Steuereinrichtungen (30,34,36), die in Beantwortung eines von einem der Prozessoren (12,14) erzeugten Bedienungsaufrufs nach Speicherzugriff den Speicher (40) mit diesem Prozessor verbinden, welche Steuereinrichtungen beim Eintreffen eines einzigen solchen Bedienungsaufrufs den Speicher mit dem diesen einzigen Aufruf ausgebenden Prozessor verbinden und beim praktisch gleichzeitigen Eintreffen solcher Bedienungsaufrufe, die von mindestens zwei Prozessoren ausgegeben wurden, den Speicher mit demjenigen Prozessor verbinden, der vor den praktisch gleichzeitig eintreffenden Bedienungsaufrufen als letzter Zugriff zum Speicher hatte.
2. Mikrorechner nach Anspruch 1 mit zwei Prozessoren, dadurch gekennzeichnet, dass der erste und der zweite Prozessor (12 bzw. 14) und der gemeinsam genutzte Speicher (40) je einen Sammelkanal (16,16') aufweisen, von denen jeder mindestens einen Adressenkanal (18,18'), einen Dateneingabekanal (22,22') und einen Datenausgabekanal (20,20') enthält und die Steuereinrichtungen (30,34,36) den Sammelkanal des Speichers in Abhängigkeit von in den Adressenkanälen des ersten und des zweiten Prozessors erscheinenden ausgewählten Signalen selektiv mit den Sammelkanälen des ersten und des zweiten Prozessors verbinden.
3. Mikrorechner nach Anspruch 2, dadurch gekennzeichnet, dass die Steuereinrichtungen (30,34,36) zur selektiven Verbindung des Sammelkanals des Speichers (40) mit dem Sammelkanal (16,16') eines der Prozessoren (12,14) Mittel (102,104; 136, 148; 140,152; 166,178; 144; 156) enthalten, die beim gleichzeitigen Erscheinen der ausgewählten Signale auf den beiden Adressenkanälen (18,18') dem Sammelkanal des Speichers mit dem Sammelkanal desjenigen Prozessors verbinden, der als letzter mit dem Speicher verbunden war.
4.Mikrorechner nach Anspruch 1 mit mehr als zwei Prozessoren, gekennzeichnet durch eine Mehrzahl Speicher, von denen jeder Speichereinrichtungen und Steuereinrichtungen aufweist und mit den Sammelkanälen von zwei Prozesoren verbindbar ist.
5. Mikrorechner nach Anspruch 2, dadurch gekenneichnet, dass die Sammelkanäle (16,16') des ersten und des zweiten Prozessors (12 bzw. 14) weiter einen Wartekanal (26,26') und einen Lese/Schreibkanal (24,24') enthalten und der Speicher (50) einen Adresseneingang (52), einen Dateneingabeeingang (54) und einen Lese/Schreibsteuereingang (58) aufweist.
6. Mikrorechner nach Anspruch 1, dadurch gekennzeichnet, dass der Speicher (40; 50) als Direktzugriffsspeicher ausgebildet ist.
7. Mikrorechner nach Anspruch 6, dadurch gekennzeichnet, dass die Kanäle (18,20,22,24; 18', 20', 22',24') der Sammelkanäle (16,16') des ersten und des zweiten Prozessors (12,14)
über Drei-Zustands-Pufferspeicher (62,64,78,80; 86,88,94,96) mit den Eingängen und Anschlüssen (52,54,56,58) des Speichers (50) verbunden sind.
8. Mikrorechner nach Anspruch 7, dadurch gekennzeichnet, dass mit den Adresskanälen (18,18') des ersten und des zweiten Prozessors (12,14) Einrichtungen verbunden sind, die den Adressen des Speichers (40; 50) entsprechende Adressen erkennen, und den Speicher (40; 50) mit dem ersten oder dem zweiten Prozessor (12,14) verbinden, wenn eine einer Adresse im Speicher (40; 50) entsprechende Adresse festgestellt wird.
9. Mikrorechner nach Anspruch 8, dadurch gekennzeichnet, dass Mittel (102,104; 136,148; 140,152; 166,178; 144; 156) vorgesehen sind, die den Speicher (50) mit dem zuletzt mit dem
Speicher (50) verbundenen Prozessor (12,14) verbinden, wenn eine einer Adresse des Speichers (50) entsprechende Adresse auf jedem der Adresskanäle (18,18' ) des ersten und des zweiten Prozessors (12,14) gleichzeitig festgestellt wird.
10. Mikrorechner nach Anspruch 9, dadurch gekennzeichnet, dass Flip-Flops (376,362,364) vorgesehen sind, die durch Speicheradressen des Speichers entsprechende Adressensignale, die auf dem Adressenkanal (18) des ersten Prozessors (12) erscheinen, gesetzt werden und durch den Speicheradressen im Speicher entsprechende Adressensignale, die auf dem Adressenkanal (18') des zweiten Prozessors erscheinen, zurückgesetzt werden, und weiter Einrichtungen vorgesehen sind, die die Flip-Flops daran hindert, gesetzt oder zurückgesetzt zu werden, wenn Signale, die Speicheradressen im Speicher entsprechen, auf Adressenkanäle (18,18') des ersten und des zweiten Prozessors (12,14) auftreten.
11. Mikrorechner nach Anspruch 10, dadurch gekennzeichnet, dass jeder der dem ersten und dem zweiten Prozessor (12, 14) zugeordneten Sammelkanäle einen Betriebszustandsignal-kanal enthält und das jeweilige Betriebszustandssignal anzeigt, ob die Betriebsart des zugeordneten Prozessors dem «passiven Zustand» oder dem «aktiven Zustand» entspricht und dass mit diesen Betriebszustandssignalkanälen Mittel (220,228; 140,152) verbunden sind, die den Flip-Flop (166,178) durch einen der beiden Prozessoren (12,14) setzen oder zurücksetzen, wenn der andere Prozessor in der dem «passiven Zustand» entsprechenden Betriebsart verweilt.
CH494977A 1976-04-22 1977-04-21 CH620306A5 (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
CH620306A5 true CH620306A5 (de) 1980-11-14

Family

ID=24726794

Family Applications (1)

Application Number Title Priority Date Filing Date
CH494977A CH620306A5 (de) 1976-04-22 1977-04-21

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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4113959A1 (de) * 1991-04-29 1992-11-05 Kloeckner Humboldt Deutz Ag Ueberwachungseinrichtung

Families Citing this family (77)

* 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
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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4113959A1 (de) * 1991-04-29 1992-11-05 Kloeckner Humboldt Deutz Ag Ueberwachungseinrichtung

Also Published As

Publication number Publication date
DE2760322C2 (de) 1988-09-22
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
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
CH620306A5 (de)
EP0951682B1 (de) IO- UND SPEICHERBUSSYSTEM FÜR DFPs SOWIE BAUSTEINE MIT ZWEI- ODER MEHRDIMENSIONALEN PROGRAMMIERBAREN ZELLSTRUKTUREN
DE2455803C2 (de) Mehrprozessor-Datenverarbeitungsanlage
EP0006164B1 (de) Multiprozessorsystem mit gemeinsam benutzbaren Speichern
DE2422802A1 (de) Datenverarbeitungsanlage
CH628167A5 (de) Prozessoreinrichtung zur prioritaetssteuerung der zugriffe zum gemeinsam benutzten arbeitsspeicher einer mehrprozessoranlage.
DE2844357A1 (de) Speichererweiterung
EP0013737A1 (de) Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem
EP1329816A2 (de) Verfahren zum selbständigen dynamischen Umladen von Datenflussprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o.dgl.)
DE3508291A1 (de) Realzeit-datenverarbeitungssystem
DE1774052B1 (de) Rechner
DE2148956C3 (de) Datenübertragungssystem
DE3508321A1 (de) Programmierbare schaltung zur steuerung einer fluessigkristallanzeige
DE3502147A1 (de) Datenverarbeitungssystem mit verbesserter pufferspeichersteuerung
DE2645341C2 (de)
DE2703559A1 (de) Rechnersystem
DE3936339C2 (de) DMA-Controller
DE3142504A1 (de) Mehrfachplattenspeicher-uebertragungssystem
DE3048414A1 (de) "schaltungsanordnung fuer eine datenverarbeitungsanlage"
DE2558417A1 (de) Datenverarbeitungssystem
DE4406258A1 (de) Informationsverarbeitungsvorrichtung
DE2311503A1 (de) Datenverarbeitungsanlage mit mehreren zentraleinheiten
DE1285218B (de) Datenverarbeitungsanlage
EP0009625B1 (de) Datentransferschalter mit assoziativer Adressauswahl in einem virtuellen Speicher
CH495584A (de) Datenverarbeitungsanlage

Legal Events

Date Code Title Description
PL Patent ceased