-
Die vorliegende Erfindung bezieht sich auf ein
Datenverarbeitungssystem mit einer Zweiwegentscheidungsvorrichtung zum
gesteuerten Zugriff auf einen Systembus. Es ist bekannt, daß
bei modernen Datenverarbeitungssystemen zum Verbessern des
Verhaltens eine Mehrzahl von Prozessoren verwendet wird. Die
Prozessoren haben Zugriff auf gemeinsame Betriebsmittel,
z.B. einen Arbeitsspeicher, über einen Systembus.
-
Um Konflikte und Störungen beim Zugriff auf den Systembus zu
vermeiden, werden Entscheidungseinheiten verwendet. Im Fall
gleichzeitiger Buszugriffsabrufe von einer Mehrzahl von
Prozessoren erteilt die Entscheidungseinheit auf der Basis von
vorbestimmten Prioritätskriterien jedem Prozessor einzeln
einen Zugriff. Wenn die Prozessoren die gleichen Merkmale
und Funktionalität aufweisen, ist es ratsam, daß sie das
gleiche Zugriffsprioritätsrecht empfangen. Daher arbeitet
die Entscheidungseinheit gemäß einem Kriterium, das als
"Round Robin" bekannt ist. Wenn ein Prozessor K unter N
sortierten Prozessoren gerade einen Zugriff zu dem Systembus
erlangt hat, wird, bevor dem gleichen Prozessor erneut ein
Zugriff erteilt wird, getestet, ob die Prozessoren K+1 ...,
N und 1, ..., K-1 einen Zugriff zu dem Bus anfordern. Wenn
der Prozesser K+1 einen Zugriff auf den Bus anfordert,
empfängt er zuerst eine Zugriffsberechtigung. Wenn der
Prozessor K+1 keinen Zugriff auf den Bus anfordert, jedoch der
Prozessor K+2, wird dem Prozessor K+2 ein Zugriff erteilt
usw..
-
Wenn der Prozessor K erneut einen Zugriff auf den Bus
anfordert, wird demselben ein Zugriff nur erteilt, wenn kein
anderer Prozessor einen Zugriff anfordert. Im Fall von zwei
Prozessoren, die um den Zugriff zu dem Bus konkurrieren,
führt das "Round Robin"-Kriterium im Extremfall zum
alternativen
Erteilen eines Zugriffs an jeden der zwei
Prozessoren, von denen keiner bevorzugt ist. Eine
Entscheidungseinheit, die diesem Kriterium folgt, kann vom funktionellen
Standpunkt her von einem der drei folgenden Typen sein:
-
1) Sequentiell. Die Entscheidungseinheit ruft während
eines Zeitablaufs und gemäß einer vorbestimmten
Reihenfolge das Vorliegen von Zugriffsabrufen auf das
Bussystem auf, jeweils einzeln mit einem Abtastzyklus, der
eine lange Zeitdauer benötigt. Aus diesem Grund wird
diese Art von Lösungsansatz im allgemeinen nicht mehr
verwendet.
-
2) Synchron. Die mehreren Prozessoren arbeiten synchron
und sind durch ein periodisches Zeitgebersignal
getaktet, das die Arbeitszyklen oder Zeitrahmen definiert.
Die Zugriffsabrufe der mehreren Prozessoren werden zu
vorbestimmten Zeiten mit einem vorbestimmten Voreilen
oder Nacheilen bezüglich der Übergänge des
Zeitgebersignals erzeugt. Die Entscheidungseinheit erfaßt
synchron mit dem Zeitgebersignal den Status aller
Zugriffsabrufe und entscheidet, welcher der Prozessoren
das Zugriffsrecht hat. Die Entscheidungszeit umfaßt
zwei Teile: die Zeit des Entscheidungsprozesses, die
für die Entscheidungslogik von dem Erfassungsmoment an
erforderlich ist, um einen Zugriff zu erteilen, und die
Zeit, die von der Erzeugung der Zugriffsabrufe zu dem
Erfassungsmoment vergeht. Diese Art von
Entscheidungseinheiten hat den Nachteil, daß der Entscheidungsprozeß
nicht gestartet wird, sobald ein Zugriffsabruf erzeugt
wird, sondern bis zu einem vorbestimmten
Erfassungsmoment, zu dem der Status der mehreren Zugriffsabrufe
stabil ist, zurückgestellt wird.
-
3) Asynchron. Selbst wenn die mehreren Prozessoren
synchron arbeiten können, arbeiten sie im allgemeinen
asynchron zueinander. Buszugriffsabrufe werden zufällig
bezüglich der anderen und bezüglich eines möglichen
periodischen Zeitgebersignal, das von der
Entscheidungseinheit verwendet wird, unvorhersagbaren Zeiten
erzeugt. Die Entscheidungseinheit kann mit einer hohen
Frequenz den Status der mehreren Zugriffsabrufe
erfassen. Da diese jedoch zum Erfassungsmoment den Status
ändern können, können sie eine Instabilität in den
Erfassungsschaltungen verursachen. Daher muß der
Entscheidungsprozeß verzögert werden, bis die
Erfassungsschaltungen einen stabilen Zustand angenommen haben.
-
Beispiele asynchroner Entscheidungseinheiten und eine
detailliertere Erklärung des Problems, dem derartige Einheiten
begegnen, sind in COMPUTER DESIGN, Ausgabe Nr. 6, Juni 1981,
Seiten 149-155, Winchester, Ma, Us; AW BENTLEY "FPLA arbiter
concepts adapts to appliction needs" zu finden.
-
Speziell ist beansprucht, daß die synchronen Abrufe zuerst
in einem Synchronisierregister oder einer Erfassungseinheit
zwischengespeichert werden müssen, um eine Instabilität zu
vermeiden. Nur wenn die Register-Initialisierungszeit
verstrichen ist, werden die Abrufe zu der Entscheidungslogik
(einer Gatteranordnung) übertragen, die wiederum mit einem
Ausgangszwischenspeicherregister versehen ist, das durch
einen Takt mit einer weiteren Verzögerung getriggert wird.
-
Nicht weit entfernt von diesem Lösungsansatz ist die Lehre,
die durch PATENT ABSTRACTS OF JAPAN, Ausgabe Nr. 157 (P-857)
[3505] 17. April 1989, und JP-A-63316153 geliefert wird,
wobei zwei asynchrone Prozessoren, von denen jeder sein
eigenes Taktsignal hat, durch Senden eines Zugriffsabrufs zu
einer Entscheidungseinheit einen Zugriff auf einen gemeinsamen
Bus hat. Die Entscheidungseinheit synchronisiert den Abruf
des einen der Prozessoren mit dem Takt des anderen
Prozessors, um eine Entscheidung durchzuführen, und synchronisiert
das Erteilungssignal entweder mit dem einen Prozessortakt
oder dem anderen Prozessortakt.
-
Ein weiteres Beispiel ist durch PATENT ABSTRACTS OF JAPAN,
Ausgabe 12, Nr. 259 (P-733) [3106] 21. Juli 1988, und
JP-A-6347688, gegeben, wobei eine Mehrzahl von Prozessoren
in zwei Sätze geteilt ist, wobei die Prozessoren im gleichen
Satz synchron sind, und die zwei Sätze mit der gleichen
Frequenz mit einem Versatz von 180º getaktet werden. Eine
Entscheidungseinheit wird mit der doppelten Taktfrequenz der
Sätze getaktet. Auf diese Weise wird der Zugriffsstreit bei
jedem Takt der Entscheidungseinheit reduziert: nur
Prozessoren des gleichen Satzes können beim Abrufen eines Zugriffs
konkurrieren, da die Prozessoren des anderen Satzes ihren
Abruf schon zu dem vorherigen Takt geltend machten oder
ihren Abruf zum nächsten Entscheidungstakt geltend machen.
-
Selbst in diesem Fall muß die Entscheidung durchgeführt
werden, indem zuerst in einem Erfassungsregister (6) die
möglichen Zugriffsabrufe zwischengespeichert werden, und
dann der Entscheidungslogik (7) ermöglicht wird, einen
stabilen Zustand anzunehmen. Dasselbe Problem tritt in den
Entscheidungseinheiten auf, in denen die Erfassung des
Buszugriffsabrufs durchgeführt wird, sobald ein Zugriffsabruf
erfaßt ist. Weitere Zugriffsabrufe, die nahezu simultan zu
dem ersten sind, können eine Instabilität der
Erfassungsschaltungen bewirken.
-
Die vorliegende Erfindung überwindet diese Beschränkungen in
dem Fall, in dem eine Entscheidung zwischen zwei Prozessoren
durchgeführt werden soll, und liefert ein
Datenverarbeitungssystem mit einer Zweiwegentscheidungsvorrichtung zum
gesteuerten Zugriff auf einen Systembus, bei dem die
Entscheidungszeit bezüglich der Zeit, die durch die logischen
Schaltungen für den Entscheidungsprozeß erforderlich ist,
reduziert ist, ohne auf vorbestimmte Erfassungsmomente oder
auf eine Schaltungsstatus-Stabilisierung warten zu müssen.
-
Die Zweiwegentscheidungsvorrichtung der vorliegenden
Erfindung erteilt einen Zugriff auf den Systembus (und die mit
demselben verbundenen Betriebsmittel) mit einem gerechten
Kriterium auf einen der zwei Prozessoren, die sich, im Fall
eines Zugriffstreits, beim Zugriff zu dem Systembus
abwechseln, mit einer Entscheidungszeit, die auf ein Minimum
reduziert ist, wobei daher das gemeinsame Betriebsmittel, das
durch den Systembus gebildet wird, optimal ausgenutzt wird.
-
Gemäß der Erfindung werden diese Vorteile mit einem System
erreicht, bei dem die zwei Prozessoren auf der Grundlage von
Zeitgeberzyklen, die für beide Prozessoren gleich sind,
durch die Kombination einer sehr einfachen
Entscheidungseinheit und einer Zeitgebereinheit, die zwei Zeitgebersignale
gleicher Frequenz, aber mit einem Halbperiodenversatz des
einen bezüglich des anderen, in einem synchronen Modus
arbeiten. Bei digitalen Systemen haben Zeitgebersignale grob
gesprochen die Form von Rechteckwellen, die entweder den
einen oder den anderen von zwei elektrischen/logischen Pegeln
haben, die einem aktiven oder inaktiven logischen Zustand
entsprechen. Der Halbperiodenversatz der zwei
Zeitgebersignale bringt mit sich, daß der aktive Zustand des einen
Zeitgebersignals synchron mit dem inaktiven Zustand des
Zeitgebersignals ist. Selbst im Fall nicht-symmetrischer
Zeitgebersignale, bei dem eine Phase eine längere Dauer hat
als die andere Phase, wird die kürzere Phase des einen
Zeitgebersignals zeitverschieden und nicht zeitüberlappend mit
der kürzeren Phase des anderen Zeitgebersignals sein,
während sich die längeren Phasen im gleichen Ausmaß überlappen.
-
Jedes der zwei Signale wird jeweils verwendet, um den einen
und den anderen der zwei Prozessoren zu takten, so daß sie
mit einem vorbestimmten Versatz im Zeitgeberzyklus arbeiten
und Buszugriffsabrufe in verschiedenen, nicht überlappenden
Phasen der zwei Zeitgebersignale erzeugen. Auf diese Weise
ist jeder der Zugriffsabrufe aktiviert, wenn das
Zugriffsabrufsignal des anderen Prozessors in einem stabilen Zustand
ist, entweder schon aktiv oder inaktiv.
-
Durch diese Anordnung kann die Entscheidungseinheit mit sehr
einfachen und schnellen logischen torsteuernden Schaltungen
(konzeptmäßig ein Steuergatter für jeden der Prozessoren),
die Eingänge zum Empfangen von Buszugriffsabrufen von den
zwei Prozessoren haben, und die dem Prozessor einen Zugriff
erteilen, der zuerst einen Zugriff abruft, realisiert sein.
Die Logik arbeitet, sobald ein Zugriffsabruf aktiv ist. Im
Fall eines Zugriffsstreits führt die
Entscheidungsvorrichtung automatisch zu einem Zugriff, der alternativ dem einen
oder dem anderen Prozessor erteilt wird.
-
Die Merkmale und Vorteile der Erfindung werden aus der
nachfolgenden Beschreibung einer bevorzugten Form des
Ausführungsbeispiels und aus den beigelegten Zeichnungen
deutlicher. Es zeigen:
-
- Fig. 1 ein Zeitablaufdiagramm, bei dem einige Signale von
einem Prozessor mit externen Einheiten vertauscht
sind.
-
- Fig. 2 ein Blockdiagramm eines bevorzugten
Ausführungsbeispiels eines Datenverarbeitungssystems mit
einer Zweiwegentscheidungsvorrichtung zum
gesteuerten Zugriff auf einen Systembus gemäß der
vorliegenden Erfindung.
-
- Fig. 3 ein Logikdiagramm eines bevorzugten
Ausführungsbeispiels einer Zweiwegentscheidungsvorrichtung
für das System von Fig. 2.
-
Zum besseren Verständnis der Erfindung bezieht sich die
folgende Beschreibung auf ein Ausführungsbeispiel, bei dem
die zwei Prozessoren, die sich um einen Zugriff auf einen
gemeinsamen Bus streiten, jeweils einen integrierten
Prozessor des Typs 68030, hergestellt vom US-Betrieb Motorola und
Fachleuten gut bekannt, aufweisen. Dies ermöglicht es, die
Beschreibung der Prozessoren auf die Aspekte zu begrenzen,
die zum Verständnis der Erfindung notwendig sind. Es ist
jedoch klar, daß die Erfindung mit anderen Arten von
Prozessoren verwendet werden kann.
-
Fig. 1 zeigt in einem Zeitablaufdiagramm den Betrieb der
Prozessoren bezugnehmend auf das Signal, das für das
Verständnis der Erfindung notwendig ist. Der Mikroprozessor
86030 arbeitet auf der Basis von Maschinen-Zeitgeberzyklen,
die durch ein Taktsignal CK (Diagramm CK), das
typischerweise eine Periode von 50 Nanosekunden hat, bestimmt werden.
Jeder Zyklus umfaßt zwei Phasen gleicher Dauer, die einem
hohen Pegel (oder aktiven Zustand) des Taktsignals bzw.
einem tiefen Pegel (oder inaktiven Zustand) des Taktsignals
entsprechen. Wenn der Mikroprozessor externe Operationen
durchführen soll, z.B. Speicher-Lese/Schreib-Operationen,
wird die Operation in einer Mehrzahl von Vollzeitzyklen,
minimal drei, durchgeführt, die sechs operative Zustände S0,
S1, S2, S3, S4, S5 bestimmen. Die Zustände S0, S2, S4
entsprechen dem hohen Pegel des Taktsignals CK, die anderen
Zustände dem tiefen Pegel des Taktsignals CK.
-
Wenn der Mikroprozessor sich im Zustand S0 befindet, gibt er
Adressen- und Befehls-Signale aus, die während aller
nachfolgenden Zustände stabil bleiben, bis S5 eingeschlossen
ist, und in einem folgenden S0-Zustand entfernt werden.
Während des Zustands S1 aktiviert der Mikroprozessor ein Signal
AS, indem es auf den elektrischen Pegel 0 gesenkt wird.
-
AS ist ein Taktimpuls- und Gültigkeits-Signal für die
Adressen und Befehle, das schon ausgegeben ist, und bis zum
Zustand S5 aktiv bleibt, währenddessen es inaktiviert wird. AS
ist das erste nützliche Signal, das vom Mikroprozessor
ausgegeben wird, wobei die Aktivierung einer externen Operation
angezeigt wird. Obwohl die Produktspezifikationen keine
Garantie auf den Moment geben, zu dem AS während des Zustands
S1 aktiv wird und auf den Moment, zu dem AS inaktiv wird
(mit Ausnahme der Anzeige, daß AS mindestens drei
Nanosekunden nach der abfallenden Flanke des Taktsignals, die
unmittelbar vorhergeht, aktiv oder inaktiv wird), tritt die
Aktivierung/Inaktivierung des Signals typischerweise 10 bis 15
Nanosekunden vor dem nächsten folgenden Taktsignalübergang
auf.
-
Außerdem ist es gut bekannt, daß die Verzögerung bei der
Aktivierung oder Inaktivierung des Signals, bezüglich des
unmittelbar vorhergehenden Taktsignalübergangs, stark von
der kapazitiven Last abhängt, die die Signale treiben
müssen. Wenn die kapazitive Last auf einige 10 pF begrenzt ist,
ist es möglich, die Aktivierung und Deaktivierung des
Signals AS (und anderer Signale) mindestens 10 Nanosekunden
vor dem Übergang des nächsten folgenden Taktsignals zu
erhalten. Das Signal AS kann als Aktivierungssignal für
Adressen-, Befehls-Decodieroperationen und daher zum Auswählen
von Betriebsmitteln und Starten von externen Operationen
verwendet werden.
-
Während der Zustände S2 bis S5 tauscht der Mikroprozessor
weitere Signale und Daten mit externen Schaltungen aus, die
für die Erfindung nicht relevant sind. Wenn der
Mikroprozessor während des Zustands S2 ein aktives Signal DSACK
empfängt, wird er die externe Operation durch Inaktivieren von
AS während des Zustands S5 vollenden. Andererseits nimmt der
Mikroprozessor einen nicht wirksamen Wartezustand an, der
eine oder mehrere Taktperioden dauert, bis das Signal DSACK
empfangen wird. Danach nimmt er den Zustand S3 an.
-
Unter den Signalen, die während des Zustands S0 erzeugt
werden, gibt es ein Signal, das genannt werden muß. Es ist das
Signal RMC. Wenn RMC aktiv ist, zeigt das an, daß eine
Mehrzahl von nachfolgenden externen Operationen in einer
untrennbaren Art und Weise durchgeführt werden müssen, bis das
Signal RMC inaktiv ist. Folglich bewegt sich der Prozessor
vom Zustand S0 zum Zustand S5, um die Leseoperation
durchzuführen, dann vom Zustand S5 zum Zustand S0 und erneut vom
Zustand S0 zum Zustand S5, um die Schreiboperation
durchzuführen, wenn er eine Speicher-Leseoperation, gefolgt von
einer untrennbaren Schreiboperation durchführen muß. Während
all dieser Zustände bleibt das Signal RMC aktiv, selbst wenn
das Signal AS während den Zwischenzuständen S5, S0 inaktiv
sein kann. RMC wird nur in dem Zustand S0 inaktiviert, der
dem letzten Zustand S5 folgt.
-
Durch das Aufzeigen dieser Merkmale ist es sehr einfach, den
Betrieb des Systems, das das Objekt der vorliegenden
Erfindung ist, und das in Fig. 2 gezeigt ist, zu verstehen. Das
System umfaßt zwei Prozessoren 1, 2 oder CPU1, CPU2, von
denen jeder aus einem Mikroprozessor MC 86030 besteht. Der
Betrieb der zwei Prozessoren ist durch einen Oszillator 3
zeitlich gesteuert, der ein Signal CK0 mit einer Frequenz
von 40 MHz erzeugt. Dieses Signal ist die Eingabe zu einem
Flip-Flop 4, das als ein Frequenzteiler wirkt und an seinen
Ausgängen Q und NQ zwei Rechteckwellensignale CK1, CK2 mit
einer Frequenz von 20 MHz, wobei die Signale eine
entgegengesetzte Phase aufweisen, ausgibt.
-
Hier und im Folgenden hat der Buchstabe N, der dem Namen
eines Elements oder eines Signals voraussteht, die Bedeutung
einer Negation/Invertierung. CK1 und CK2 werden verwendet,
um jeweils den Prozessor 1 und den Prozessor 2 zeitlich zu
steuern. Daher arbeiten die zwei Prozessoren mit Zyklen
gleicher Dauer, jedoch um eine Halbperiode phasenverschoben,
so daß ein ungerader Zustand (S1, S3, S5) eines beliebigen
der Prozessoren synchron zu einem geraden Zustand (S0, S2,
S4) des anderen Prozessors ist.
-
Folglich kann gesagt werden, daß der Betrieb der zwei
Prozessoren synchron ist, jedoch mit einem Halbperiodenversatz.
Der Prozessor 1 tritt mit externen Einheiten über einen
Schnittstellenbus 5 in Verbindung und der Prozessor 2 tritt
mit externen Einheiten über einen Schnittstellenbus 6 in
Verbindung. Über den Schnittstellenbus können die zwei
Prozessoren Adressen, Daten, Befehle und Signale (AS und MRC
eingeschlossen) mit externen Komponenten austauschen. Die
zwei Schnittstellenbusse 5, 6 sind über bidirektionale
Gatter oder "Transceiver" 8 bzw. 9 mit einem Systembus 7
verbunden. Ein Arbeitsspeicher 10, eine Registerbank 11 und
ein Decoder 12 sind mit dem Systembus verbunden. Es ist
klar, daß bei dieser Architektur die CPU1, um einen Zugriff
auf den Speicher 10 oder die Registerbank 11 zu haben,
Informationen auf Bus 5 und von dort auf Bus 7 geben muß, über
die Gatter 8 und in Konkurrenz zu der CPU2, die wiederum
über die Gatter 9 Informationen auf Bus 6 und von dort auf
Bus 7 geben muß, um einen Zugriff zu dem Speicher 10 zu
haben.
-
Eine Zweiwegentscheidungsvorrichtung 13 löst die Konflikte
zwischen der CPU1 und der CPU2 und erteilt den CPUs in einer
abwechselnden ausschließlichen Art und Weise einen Zugriff.
Die Zweiwegentscheidungsvorrichtung 13 empfängt die Signale
AS1, RMC1, die vom Prozessor 1 erzeugt werden, von dem Bus 5
und die Signale AS2, RMC2, die vom Prozessor 2 erzeugt
werden, vom Bus 6. Sie gibt Signale BE1, BE2, die jeweils die
Transceiver 8, 9 aktivieren, aus. Die Transceiver 8, 9 sind
normalerweise offen, um die Busse 5 und 6 vom Bus 7 zu
isolieren.
-
Wenn der Bus 7 frei ist, werden die Gatter 8 für das ganze
Zeitintervall, das erforderlich ist, um Informationen zu
übertragen, aktiviert, sobald die Entscheidungsvorrichtung
13 ein aktives Signal AS1 empfängt. Dieses Zeitintervall ist
durch die aktive Dauer von AS1 oder andernfalls durch die
aktive Dauer von RMC1 bestimmt. Während dieses
Zeitintervalls wird die Aktivierung der Gatter 9 verhindert, selbst
wenn Prozessor 2 das Signal AS2 aktiviert.
-
Daher wird der externe Betrieb, der vom Prozessor 2
abgerufen wird, schwebend auf dem Bus 6 gehalten, bis der
Systembus 7 von dem Bus 5 getrennt wird. Zu dieser Zeit liegt das
Signal AS2 schon am Eingang der Entscheidungseinrichtung 13
vor, die, bevor der Prozessor 1 erneut einen neuen
Zugriffsabruf, der im Zustand S1 des Prozessors 1 ist, aktivieren
kann, die Gatter 9 aktiviert und die Aktivierung des Gatters
8 verhindert, bis die Operationen zwischen Prozessor 2 und
dem Systembus vollendet sind. Die Registerbank 11 kann durch
bekannte Verfahren des Gebrauchs von Nachrichten-Mailboxen
in ausgewählten Speichergebieten und der Mitteilung einer
Nachricht, die für den Bestimmungsprozessor ansteht, als ein
schneller Speicher und ebenso zur
Zwischenprozessor-Kommunikation verwendet werden.
-
Z.B. kann die CPU1, nachdem sie eine Nachricht für die CPU2
in einer "Mailbox" des Speichers 10 gespeichert hat, ein
Register in der Bank 11 mit einer vorbestimmten Information
laden. Die Bank 11 gibt auf einer Anschlußleitung 14 ein
Benachrichtigungssignal aus, das über eine
Unterbrechungseingabe vom Prozessor 2 empfangen wird. Die CPU2 kann zur
richtigen Zeit das Mitteilungssignal berücksichtigen und
durch eine oder mehrere Speicherzugriffsoperationen die
Nachricht lesen. Genauso kann die CPU2 die CPU1 mittels der
Bank 11 und einer Mitteilungsanschlußleitung 15
benachrichtigen. Diese Operationen, die für den Arbeitsbereich der
Erfindung nicht relevant sind, sind zusammen mit einer
spezifischen Form eines Ausführungsbeispiels in der
Europäischen Patentveröffentlichung Nummer 0201020 beschrieben.
-
Fig. 3 zeigt ein bevorzugtes Ausführungsbeispiel einer
Entscheidungsvorrichtung 13. Die Entscheidungsvorrichtung 13
umfaßt eine schnelle PAL 100 (PAL = Programmable Array Logic
= Programmierbare Array Logik), z.B. die, die von dem
US-Betrieb Monolithic Memories mit dem Code 16 R4 und einem
schnellen Flip-Flop 101 hergestellt wird. Die PAL 100 hat
eine maximale Signalausbreitungsverzögerung vom Eingang zum
Ausgang von 7,5 Nanosekunden. Die minimale
Ausbreitungsverzögerung beträgt 3 Nanosekunden und die Eingangskapazität
beträgt 5 Picofarad. Dies ist zum Erhalten sehr schneller
Übergänge der Ausgangssignale besonders geeignet, von
Prozessoren, wie zum Beispiel dem 68030, da sie, wenn sie von
den Prozessorausgängen betrieben werden, von solchen
Ausgängen als eine sehr kleine kapazitive Last gesehen werden. Auf
diese Weise ist, wenn die zwei Prozessoren 1, 2 mit
Taktsignalen entgegengesetzter Phase gesteuert werden, ein
Zeitintervall von mindestens 10 Nanosekunden, wenn nicht mehr,
zwischen Übergängen von Signalen AS1 und AS2 sichergestellt.
-
Dieses Intervall genügt für den korrekten Betrieb der
Entscheidungsvorrichtung. Der Umstand, daß die Signale PMC1 und
RMC2 in einem anderen Zustand als S5 inaktiv sind, d.h., im
Zustand S0, verursacht ein Problem, wie später zu sehen ist.
-
Dieses Problem kann leicht gelöst werden und behindert die
Einfachheit des konzeptmäßigen Lösungsansatzes, der
verwendet ist, nicht.
-
Die PAL 100 umfaßt eine Mehrzahl von Eingangstreibern 16,
17, 18, 19, 20, 21, von denen jeder einen invertierenden und
einen nicht-invertierenden Ausgang aufweist. Die Signale in
der Ausgabe der Mehrzahl der Treiber werden durch eine
Mehrzahl von Verbindungsspalten auf eine Mehrzahl von
Verbindungsreihen, 22, 23, 24, 25, 26, 27, 28, 29 verteilt. Durch
geeignetes Programmieren der PAL werden selektive
Verbindungen zwischen Reihen und Spalten gebildet. Die Verbindungen
sind als Punkte gezeigt, die an den Kreuzungspunkten liegen.
Wenn eine Reihe mit mehreren Spalten verbunden ist, steigt
sie auf einen positiven elektrischen Pegel, wenn alle
Spalten, mit denen sie verbunden ist, mit einem positiven Pegel
betrieben sind. Daher arbeitet eine Reihe und die Spalten,
die mit derselben verbunden sind, funktionell als ein UND-
Gatter. Die Reihen von 22 bis 25 sind mit den Eingängen
eines ODER-Gatters 30 verbunden und die Reihen von 26 bis 29
sind mit den Eingängen eines ODER-Gatters 31 verbunden.
-
Der Ausgang der Gatter 30, 31 ist jeweils mit dem Eingang
eines invertierenden Ausgangstreibers 32 bzw. 33 verbunden.
Der Ausgang der Treiber 32, 33 ist jeweils mit dem
PAL-Ausgangsanschluß 34, 35 und mit dem Eingang von
Rückkopplungstreibern 36, 37, die jeweils einen invertierenden und einen
nicht-invertierenden Ausgang aufweisen, verbunden. Die
invertierenden und nicht-invertierenden Ausgänge der
Rückkopplungstreiber sind mit Auswahlspalten verbunden, und über
solche Spalten selektiv mit Verbindungsreihen. Der nicht-
invertierende Ausgang des Treibers 18 ist mit dem Eingang
eines ODER-Gatters 38 verbunden, dessen Ausgang mit dem
D-Eingang eines Flip-Flops 39 verbunden ist, welches durch
die ladende Flanke eines Taktsignals, das an den Takteingang
angelegt ist, getaktet wird.
-
Der nicht-invertierende Ausgang des Treibers 19 ist mit dem
Takteingang des Flip-Flops 39 verbunden. Der invertierende
Ausgang des Flip-Flops 39 ist mit dem Eingang eines
Rückkopplungstreibers 40 verbunden. Ein D-Typ-Flip-Flop 101, das
außerhalb der PAL 100 liegt, empfängt das Signal RMC2, das
vom Prozessor 2 erzeugt wird, am D-Eingang und das Signal
CK2 am Takteingang. Das Flip-Flop 101 gibt ein Signal RMC2D
an dem nicht-invertierenden Ausgang Q aus. Die
Eingangstreiber von 16 bis 21 der PAL 100 empfangen jeweils an ihren
Eingängen und in der genannten Reihenfolge die Signale AS1,
AS2, RMC1, CK1, RMC2D. Die Anschlüsse 34, 35 geben Signale
BE1 bzw. BE2 aus. BE1 und BE2 aktivieren die Gatter 8 bzw. 9
(Fig. 2).
-
Unter Betrachtung dessen, was bezugnehmend auf Fig. 1
bezüglich des Zeitablaufs der Signale AS, RMC und bezüglich
der Invertierung des logischen Pegels relativ zu dem
elektrischen gesagt wurde, und ferner unter Betrachtung der
Verbindungen, die in Fig. 3 gezeigt sind, ist der Betrieb der
Zweiwegunterscheidungsvorrichtung von Fig. 3 in seinen
Einzelheiten ohne weiteres offensichtlich. Die Reihe 22
erzeugt das logische UND der Signale NAS1. AS2. BE2 = NBE1.
Es ist daher offensichtlich, daß das Aktiviersignal BE1 mit
einer maximalen Verzögerung von 7 Nanosekunden bezüglich der
Aktivierung von AS1 aktiv wird, was in der Nähe des Endes
des Status S1 (des Prozessors 1) ist, wenn BE2 inaktiv ist
(auf dem elektrischen Pegel 1), daher die Gatter 9 inaktiv
sind und AS2 ebenfalls inaktiv ist.
-
Die Reihe 24 bildet das logische UND der Signale NAS1. NBE1
= NBE1 und stellt sicher, daß BE1, sobald es aktiv ist, bis
zum Ende des Status S5 des Prozessors 1 nicht inaktiv wird,
selbst wenn AS2 nachfolgend aktiviert wird. Die Reihe 23
bildet das logische UND der Signale NRMC1. NBE1 = NBE1 und
stellt sicher, daß im Fall des untrennbaren Betriebs, sobald
BE1 aktiviert ist, es bis zur Inaktivierung von NC1 aktiv
bleibt.
-
Absolut äquivalent ist die Funktion, die durch die Reihen
26, 27, 28 und durch das ODER-Gatter 31 bei der Erzeugung
des Signals BE2 am Anschluß 35 durchgeführt wird. Es ist
offensichtlich, daß im Verlaufe normaler Zugriffsoperationen
auf den Bus 7 die Signale BE1, BE2 am Ende des Status S5 des
bezogenen Prozessors inaktiv sind, so daß es im folgenden
Zustand S0 (des bezogenen Prozessors) nur der andere
Prozessor ist, der zugreifen kann oder der bereits sein eigenes
AS-Signal aktiviert hat.
-
Im Fall einer untrennbaren Operation ist das Signal BE1,
oder BE2, am Ende eines neuen Zustands S0, der als nächstes
auf S5 (des bezogenen Prozessors) folgt, inaktiv. In diesem
Fall kann eine Blockiersituation auftreten. Es sei
angenommen, daß BE2 am Ende des Zustands S0 des Prozessors 2
inaktiv ist, wobei dieser Zustand S0 mit einem ungeraden Zustand
des Prozessors 1 synchron ist und daher möglicherweise mit
dem Zustand S1 des Prozessors 1 synchron ist. In diesem Fall
kann das Signal BE1 aufgrund des logischen Zustands NBE2,
der bei der logischen Operation, die von der Reihe 22
durchgeführt wird, falsch ist, nicht während des Zustands S1 des
Prozessors 1 aktiv werden. Daher wird die Entscheidung am
Anfang des Zustands S2 (des Prozessors 1), wobei zu dieser
Zeit jedoch selbst das Signal AS2 inaktiv sein kann, was
wiederum die Aktivierung von BE1 verhindert, durchgeführt.
-
Diese Blockiersituation wird mittels eines Hilfssignals
RMC2D entfernt, das den Zustand des Signals RMC2 mit einer
geeigneten Verzögerung kopiert. Während RMC2 während des
Zustands S0 (des Prozessors 2) inaktiv ist, ist RMC2D nur
beim Taktübergang zwischen dem Zustand S1 und dem Zustand S2
(des Prozessors 2) inaktiv.
-
Die Reihe 25 führt die logische Operation BE1 = NAS1. BE2.
NRMC2D durch und stellt sicher, daß der Prozessor 1 den Bus
7 in Besitz nimmt, sobald BE2 inaktiv ist, das heißt, zu
Beginn des Zustands S1 des Prozessors 2, selbst wenn Prozessor
2 versucht, durch Aktivierung von AS2 einen Zugriff auf den
Bus zu haben.
-
Die Reihe 29 führt eine logische Operation durch, die
ähnlich der ist, die von Reihe 25 durchgeführt wird, nämlich
BE2 = NAS2. BE1. NRMC1D. Sie stellt sicher, daß der
Prozessor 2 am Ende einer untrennbaren Operation, die von
Prozessor 1 durchgeführt wird, Besitz über den Systembus erlangt,
wenn dieser durch Aktivierung von AS2 abgerufen wird. Das
Signal RMC1D wird durch das Flip-Flop 39 intern für die PAL
100 erzeugt.
-
Es ist offensichtlich, daß sich die vorhergehende
Beschreibung auf ein bevorzugtes Ausführungsbeispiel der Erfindung
bezieht, und daß mehrere Änderungen gemacht werden können,
abhängig von dem Prozessor und dem Arbeitsspeicher, die
verwendet sind. Z.B. wird entweder dem einen oder dem anderen
Prozessor in Fig. 2 basierend auf dem Signal AS, das diese
aktivieren, ein Zugriff auf den Systembus 7 erteilt. Es ist
offensichtlich, daß andere Signale verwendet werden können.
Z.B. können die Prozessoren 1 und 2 jeweils einen externen
Cache-Speicher haben, der mit dem Bus 5 bzw. 6 verbunden
ist, oder eine Speicherverwaltungseinheit MMU (MMU = Memory
Management Unit).
-
In diesem Fall ist gut bekannt, daß ein Zugriff zu einem
Arbeitsspeicher nur im Fall von Lese/Schreib-Operationen,
die eine Folge eines Hinweises auf fehlende Information im
Cache-Speicher ("cache-miss") sind, und nur wenn die
Adresse, die von der Speicherverwaltungseinheit erzeugt wird,
verfügbar ist, abgerufen wird. Deshalb kann das Signal zum
Abrufen eines Zugriffs auf den Systembus eine Folge der
Decodierung einer Mehrzahl von Signalen sein, die auf dem
Prozessorbus vorliegen (z.B. AS, und R/W, wobei R/W ein
Lese/Schreib-Signal ist), und weiterer, wie z.B. MISS des
Caches oder PAS (Physical Address Strobe = physikalischer
Adresstaktimpuls) von der MMU, vorausgesetzt der
resultierende Zugriffsabruf, äquivalent zu AS, ist in einer
bestimmten Zeitphase aktiviert und deaktiviert. In diesem Fall kann
als sicher vorausgesetzt werden, daß MISS und PAS in einem
Zustand erzeugt werden, der S1 (gewöhnlich S2) folgt und
jedes Blockierrisiko, das aus der späten Deaktivierung des
Signals RMC während des Zustands S0 resultiert, wird
verhindert.
-
Die Entscheidungsvorrichtung der Erfindung ist ferner mit
anderen Entscheidungsschaltungen herkömmlicher Natur
kompatibel, so daß seine Verwendung nicht nur auf dem Fall von
Datenverarbeitungssystemen, die von zwei Prozessoren
aufgebaut sind, begrenzt ist.
-
Z.B. ist es bekannt, daß der Mikroprozessor 68030 mit einem
internen Mechanismus zum Entscheiden des
Schnittstellenbusses versehen ist. Wenn der Mikroprozessor an einem
geeigneten Eingang ein externes Signal BR (Bus Request = Busabruf),
das einen Zugriff auf den Bus abruft, empfängt, aktiviert er
ein Signal BG (Bus Grant = Buserteilung), das einen Zugriff
auf den Bus erteilt, nachdem mögliche externe Operationen
vollendet sind, folglich nicht früher als im Zustand S0.
Sobald BG aktiv ist und durch die externen Einheiten empfangen
ist, können die vorrangigsten externen Einheiten (im Falle
einer Mehrzahl von externen Einheiten) einen Zugriff auf den
Bus haben.
-
Fig. 2 zeigt, daß zusätzlich zu CPU1, CPU2 ein dritter
Prozessor IOP 50 (IOP für Input-Output-Prozessor (= Eingangs-
Ausgangs-Prozessor)) existiert, der periphere Einheiten
steuert, die nicht gezeigt sind, jedoch dazu bestimmt sind,
mit dem IOP-Schnittstellenbus 51 verbunden zu sein. Der
IOP- und Periphereinheiten-Schnittstellenbus 50 ist mit dem
systembus 7 mittels bidirektionaler Gatter 52 verbunden. Er
ist ferner mit den Eingängen eines Decoders 53 verbunden.
-
Die Signale auf dem Bus 51 werden durch den Decoder 53
decodiert,
um Zugriffsabrufe auf den Systembus 7 zu erfassen und
ein entsprechendes Abrufsignal IOPR zu erzeugen. Dieses
Signal wird über eine Anschlußleitung 55 zu einer
herkömmlichen Entscheidungseinheit 54 weitergeleitet. Wenn IOPR aktiv
ist, aktiviert die Entscheidungseinheit 54 auf einer
Anschlußleitung 56 ein Busabrufsignal BR und leitet es zu den
Prozessoren 1, 2 weiter.
-
Die zwei Prozessoren antworten zur rechten Zeit durch
Aktivieren des Signals BG1, bzw. BG2 auf den Anschlußleitungen
57, 58. Die Anschlußleitungen 57, 58 sind mit dem Eingang
eines ODER-Gatters 59 verbunden, das die Rolle des logischen
Operators UND auf die Signale BG1, BG2 (auf dem elektrischen
Pegel Null, wenn aktiv) durchführt und ein aktives Signal BG
zu der Entscheidungsvorrichtung 54 ausgibt. Beim Empfang von
BG sendet die Entscheidungsvorrichtung 54 ein Signal BGACK
auf einer Anschlußleitung 60 zu den Prozessoren 1, 2. Das
Signal BGACK zeigt an, daß die Entscheidungsvorrichtung 54
den Besitz des Systembusses übernommen hat. Das gleiche
Signal kann verwendet werden, um die Gatter 52 zu aktivieren.
-
Weitere mögliche Änderungen können sich auf die Natur der
Bestimmungseinheiten, die mit dem Systembus 7 verbunden
sind, wie z.B. der Speicher 10, beziehen. Bei der
vorhergehenden Beschreibung existiert die implizite Annahme, daß der
Speicher 10 und die Registerbank 11 bezüglich der CPU1 und
der CPU2 asynchron arbeiten. Es ist jedoch möglich,
Bestimmungseinheiten eines synchronen Typs zu verwenden, die
jedesmal mit dem Prozessor, der einen Zugriff zu dem Systembus
erlangt, synchronisiert werden.
-
In diesem Fall muß die Entscheidungsvorrichtung 13 durch
geeignete logische Schaltungen entweder das eine oder das
andere der Signale CK1, CK2 zusätzlich zur abwechselnden
ausschließlichen Aktivierung der Gatter 8, 9 zu den
Einheiten 10, 11 liefern.