-
Die
vorliegende Erfindung betrifft eine Vorrichtung, wie im Oberbegriff
von Patentanspruch 1 beansprucht, das heißt eine Anordnung mit einer
ersten Einrichtung und mit einer über eine Kreuzschiene an die
erste Einrichtung angeschlossenen zweiten Einrichtung.
-
Eine
Anordnung wie diese kann, braucht aber nicht, ganz oder teilweise
eine Komponente einer programmierbaren Einheit wie etwa eines Mikroprozessors,
Microcontrollers, eines Signalprozessors oder dergleichen sein.
-
Die
erste Einrichtung ist eine Einrichtung, die im folgenden Text als
Haupteinheit bezeichnet wird und eine Übertragung von Daten von oder
zu der zweiten Einrichtung initiieren kann, das heißt einen Lese-
oder Schreibzugriff zu der zweiten Einrichtung; sie kann deshalb
beispielsweise eine CPU oder ein DMA-Controller einer programmierbaren
Einheit sein, braucht dies aber nicht notwendigerweise zu sein.
-
Die
zweite Einrichtung ist eine Einrichtung, die in dem folgenden Text
als Untereinheit bezeichnet wird und von der Haupteinheit angeforderte
Daten an die Haupteinheit ausgibt oder ihr von der Haupteinheit
gelieferte Daten empfängt
und diese Daten weiterverarbeitet oder speichert; sie kann somit
beispielhaft ein Speicher sein, braucht dies aber nicht notwendigerweise
zu sein.
-
Die
Haupteinheit und die Untereinheit brauchen nicht direkt mit der
Kreuzschiene verbunden zu sein. Die Verbindung kann auch über eine
Busschnittstelle, eine Busbrücke
oder irgendeine andere Schnittstelle vorgesehen sein.
-
Normalerweise
sind nicht nur eine Haupteinheit und eine Untereinheit, sondern
eine Reihe von Haupteinheiten und/oder eine Reihe von Untereinheiten
an eine Kreuzschiene angeschlossen und können über die Kreuzschiene miteinander
verbunden sein.
-
Das
fundamentale Design einer Anordnung wie etwa dieser ist in 2 gezeigt.
-
Die
in 2 gezeigte Anordnung umfaßt eine erste Haupteinheit
M11, eine zweite Haupteinheit M12, eine dritte Haupteinheit M13,
eine erste Untereinheit S11, eine zweite Untereinheit S12, eine dritte
Untereinheit S13 und eine Kreuzschiene XB1.
-
Die
Haupteinheiten M11 bis M13 und die Untereinheiten S11 bis S13 sind über die
Kreuzschiene XB1 miteinander verbunden. Genauer gesagt erfolgt dies
so, daß die
Haupteinheiten M11 bis M13 und die Untereinheiten S11 bis S13 mit
Hilfe von Leitungen oder Bussen, die in 2 nicht
ausführlicher
gezeigt sind, an assoziierte Anschlüsse der Kreuzschiene XB1 angeschlossen
sind, und derart, daß die
Anschlüsse
der Kreuzschiene XB1, mit der die Haupteinheiten M11 bis M13 verbunden
sind, jeweils alle mit den Anschlüssen verbunden sind, mit denen
die Untereinheiten S11 bis S13 verbunden sind.
-
Zusätzlich zu
den internen Anschlüssen,
die erwähnt
worden sind, enthält
die Kreuzschiene XB1 Entscheidungseinheiten A11 bis A13 und Multiplexer MUX11
bis MUX13.
-
Die
Entscheidungseinheiten A11 bis A13 sind vor die Anschlüsse der
Kreuzschiene XB1 geschaltet, an die die Untereinheiten S11 bis S13
angeschlossen sind. Genauer gesagt geschieht dies so,
- – daß die Entscheidungseinheit
A11 vor jenen Anschluß der
Kreuzschiene XB1 geschaltet ist, mit der die Untereinheit S11 verbunden
ist,
- – daß die Entscheidungseinheit
A12 vor jenen Anschluß der
Kreuzschiene XB1 geschaltet ist, mit der die Untereinheit S12 verbunden
ist und
- – daß die Entscheidungseinheit
A13 vor jenen Anschluß der
Kreuzschiene XB1 geschaltet ist, mit der die Untereinheit S13 verbunden
ist.
-
Die
Entscheidungseinheiten A11 bis A13 überwachen, ob irgendeine der
Haupteinheiten M11 bis M13 eine Verbindung für die Untereinheit anfordert,
die mit dem Anschluß der
Kreuzschiene verbunden ist, der vor der jeweiligen Entscheidungseinheit geschaltet
ist, und stellen eine Verbindung zwischen der relevanten Untereinheit
und der Haupteinheit, die die Verbindung angefordert hat, her, wenn
eine entsprechende Anschlußanforderung
vorliegt und die Untereinheit nicht gegenwärtig mit irgendeiner anderen
Haupteinheit verbunden ist oder – aus welchen Gründen auch
immer – davor
mit einer anderen Haupteinheit verbunden werden muß.
-
Die
Multiplexer MUX11 bis MUX13 sind vor jene Anschlüsse der Kreuzschiene XB1 geschaltet, mit
der die Haupteinheiten M11 bis M13 verbunden sind. Genauer gesagt
geschieht dies so, daß:
- – der
Multiplexer MUX11 vor jenen Anschluß der Kreuzschiene XB1 geschaltet
ist, mit dem die Haupteinheit M11 verbunden ist,
- – der
Multiplexer MUX12 vor jenen Anschluß der Kreuzschiene XB1 geschaltet
ist, mit dem die Haupteinheit M12 verbunden ist und
- – der
Multiplexer MUX13 vor jenen Anschluß der Kreuzschiene XB1 geschaltet
ist, mit dem die Haupteinheit M13 verbunden ist.
-
Die
Multiplexer MUX11 bis MUX13 werden von den Entscheidungseinheiten
A11 bis A13 gesteuert, und zwar genauer gesagt so, daß von den
Untereinheiten ausgegebene Daten in jedem Fall an die Haupteinheit
geliefert werden, und zwar genauer gesagt nur jene Haupteinheit,
die die Verbindung für
die relevante Untereinheit angefordert hat.
-
Der
Vollständigkeit
halber sollte erwähnt werden,
daß zumindest
jene Leitungen, mit Hilfe derer die Haupteinheiten M11 bis M13 eine
Verbindung für
eine der Untereinheiten S11 bis S13 anfordern, nicht über die
Multiplexer geführt
sind.
-
Es
ist auch möglich,
daß verschiedene Haupteinheiten
gleichzeitig mit verschiedenen Untereinheiten verbunden sind. Beispielsweise
kann die erste Haupteinheit M11 mit der zweiten Untereinheit S12,
die zweite Haupteinheit M12 mit der ersten Untereinheit S11 und
die dritte Haupteinheit M13 mit der dritten Untereinheit S13 verbunden
sein, und zwar gleichzeitig über
jene internen Verbindungen der Kreuzschiene XB1, die durch dickere
Linien gezeigt sind.
-
Die
Kreuzschiene XB1 gestattet somit die sehr effiziente Übertragung
von Daten zwischen denen an sie angeschlossenen Einrichtungen.
-
Dies
gilt jedoch nur, wenn die Ausführung von
gegenseitig entsprechenden Aktionen, die eine Haupteinheit von verschiedenen
Untereinheiten anfordern kann, vom Standpunkt der Haupteinheit gemäß dem gleichen
Verfahren, insbesondere mit der gleichen Zeitsteuerung, stattfinden
kann.
-
Dies
ist beispielsweise dann nicht der Fall, wenn die Haupteinheit die
von einer ersten Untereinheit angeforderten Daten nach n Taktzyklen
erhält und
die von einer zweiten Untereinheit angeforderten Daten später erhält, das
heißt
erst nach n + m Taktzyklen. Dazu kann es beispielsweise kommen,
wenn die zweite Untereinheit längere
Zeit benötigt,
um die von ihr angeforderten Daten auszugeben, als die erste Untereinheit.
-
Wenn
Unterschiede wie diese vorliegen,
- – müssen die
speziellen Merkmale der jeweiligen Untereinheiten, insbesondere
die Reaktionszeiten der Untereinheiten, in der Haupteinheit auf
die von der Haupteinheit ausgegebenen Anforderungen eingestellt
werden, oder
- – die
Kreuzschiene muß sogenannte
Wartezustandsgeneratoren enthalten, die sogenannte Wartezustände produzieren,
um den Haupteinheiten zu signalisieren, daß die Untereinheit auf die Anforderung
von der Haupteinheit noch nicht reagiert hat.
-
Dadurch
werden jedoch das Design und die Funktionsweise der Haupteinheiten
und der Kreuzschiene komplexer und komplizierter.
-
Zudem
hängen
die verschiedenen Reaktionszeiten der Untereinheiten auf eine Anforderung von
einer Haupteinheit nicht nur von dem Design der Untereinheit ab,
sondern auch von den Signallaufzeiten zwischen den Haupteinheiten
und den Untereinheiten.
-
Die
Länge der
Signallaufzeiten hängt
unter anderem von der Länge
der verbindenden Leitungen zwischen den Haupteinheiten und/oder
den Untereinheiten und der Kreuzschiene ab, so daß die Signallaufzeiten
möglicherweise
erheblich voneinander differieren können.
-
Zudem
machen es schlechte Signallaufzeiten möglicherweise erforderlich,
in die Signalwege zwischen bestimmten Haupteinheiten und der Kreuzschiene
und/oder zwischen bestimmten Untereinheiten und der Kreuzschiene
eine oder mehrere Pipeline-Stufen beispielsweise in Form von Flipflops
einzusetzen, und diese Pipeline- Stufen
können
zu zusätzlichen
Verzögerungen
bei der Reaktion der Untereinheiten auf eine Anforderung von einer
Haupteinheit führen.
-
Zu
zusätzlichen
Verzögerungen
kann es zudem auch als Ergebnis dessen kommen, daß die Haupteinheiten
und die Untereinheiten nicht direkt, über Busschnittstellen, Busbrücken oder
dergleichen an die Kreuzschiene angeschlossen sind.
-
Wenn
solche zusätzlichen
Verzögerungen vorliegen
und diese Verzögerungen
auch durch entsprechende Einstellungen der Haupteinheiten oder der
Wartezustandsgeneratoren für
die Kreuzschiene berücksichtigt
werden sollen, werden das Design und die Funktionsweise der Haupteinheiten
und der Kreuzschiene noch komplexer und komplizierter.
-
Eine
weitere Lösung
für die
durch die zusätzlichen
Verzögerungen
verursachten Probleme besteht darin, daß die Taktfrequenz, mit der
die Daten zwischen den an die Kreuzschiene angeschlossenen Einrichtungen übertragen
werden, ausreichend reduziert wird, damit die verschiedenen Signallaufzeiten keinen
Effekt auf die Reaktionszeiten aufweisen und auch keine Pipeline-Stufen
erforderlich sind. In diesem Fall jedoch arbeitet das System langsamer
als bei der Geschwindigkeit, mit der es tatsächlich arbeiten könnte.
-
Die
vorliegende Erfindung basiert somit auf der Aufgabe, einen möglichen
Weg zu finden, wie die Komponenten einer Anordnung des oben beschriebenen
Typs effizient kooperieren können
und auf flexible Weise kombiniert werden können, wobei diese Komponenten
ein einfaches Design aufweisen und sich leicht betätigen lassen.
-
Gemäß der Erfindung
wird diese Aufgabe durch die in Patentanspruch 1 beanspruchte Anordnung
gelöst.
-
Die
Anordnung gemäß der Erfindung
zeichnet sich durch folgendes aus:
- – wenn es
zu einem Lesezugriff auf die zweite Einrichtung kommt, liest die
erste Einrichtung die von der zweiten Einrichtung ausgegebenen Daten, wenn
sie ein Bereitschaftssignal empfängt,
das von der zweiten Einrichtung produziert wird und an die erste
Einrichtung über
die Kreuzschiene geliefert wird, und
- – wenn
es zu einem Schreibzugriff von der ersten Einrichtung auf die zweite
Einrichtung kommt,
– gibt
die erste Einrichtung die zu schreibenden Daten an die zweite Einrichtung
aus, wenn sie ein Breitschaftssignal empfängt, das von der zweiten Einrichtung
produziert wird und über
die Kreuzschiene an die erste Einrichtung geliefert wird, und
– liest
die zweite Einrichtung die von der ersten Einrichtung ausgegebenen
Daten, wenn sie ein Datengültigkeitssignal
empfängt,
das von der ersten Einrichtung produziert wird und über die Kreuzschiene
an die zweite Einrichtung geliefert wird.
-
Bei
einer Anordnung wie dieser signalisiert die Untereinheit der Haupteinheit
und signalisiert die Haupteinheit der Untereinheit, daß die in
jedem Fall von der jeweiligen Einheit erwartete Aktion ausgeführt worden
ist, so daß die
anfänglich
erwähnten speziellen
Vorkehrungen weder in der Haupteinheit, in der Kreuzschiene noch
in der Untereinheit ausgeführt
werden brauchen, wodurch es möglich
wird, daß die
Haupteinheit oder die Untereinheit die Aktionen ausführt, die
ausgeführt
werden müssen,
oder um ein Ausführen
jener Aktionen zu verhindern, nachdem ein spezifischer Zustand in
der Untereinheit oder in der Haupteinheit aufgetreten ist.
-
Durch
die beanspruchte Anordnung können die
Komponenten dieser Anordnung effizient kooperieren und flexibel
kombiniert werden und wobei die Komponenten ein einfaches Design
aufweisen und einfach zu betätigen
sind.
-
Da
die meisten Einheiten, die als eine Untereinheit verwendet werden,
intrinsisch ein Bereitschaftssignal erzeugen oder ein Signal, das
als ein Bereitschaftssignal verwendet werden kann, oder mit wenig
Aufwand ein derartiges Signal erzeugen können, und die meisten Einheiten,
die als Haupteinheit verwendet werden können, intrinsisch ein Datengültigkeitssignal
erzeugen oder ein Signal, das als ein Datengültigkeitssignal verwendet werden
kann, oder mit wenig Aufwand ein derartiges Signal erzeugen können, kann
die beanspruchte Anordnung zudem sogar einfacher produziert und
einfacher betätigt werden
als herkömmliche
Anordnungen vom erörterten
Typ.
-
Vorteilhafte
Entwicklungen der Erfindung finden sich in den abhängigen Ansprüchen, in
der folgenden Beschreibung und in den Figuren.
-
Die
Erfindung wird in dem folgenden Text unter Verwendung eines Ausführungsbeispiels
und unter Bezugnahme auf die Figuren ausführlicher beschrieben. Es zeigen:
-
1 das
Design der im folgenden Text beschriebenen Anordnung und
-
2 das
Design der anfänglich
beschriebenen herkömmlichen
Anordnung.
-
Die
im folgenden Text beschriebene Anordnung ist im Prinzip auf die
gleiche Weise ausgelegt wie die in 2 dargestellte
und anfänglich
unter Bezugnahme auf diese Figur beschriebene Anordnung. Dies bedeutet,
daß sie
mindestens eine Haupteinheit, mindestens eine Untereinheit und eine
diese Einheiten miteinander verbindende Kreuzschiene aufweist. 1,
unter Bezugnahme auf die die hier aufgeführte Anordnung beschrieben
wird, zeigt der Einfachheit halber im Gegensatz zu 2 nur
eine Haupteinheit und zwei Untereinheiten.
-
Jede
der zur Verfügung
stehenden Haupteinheiten kann (über
die Kreuzschiene) auf mindestens eine der Untereinheiten zugreifen.
Bei dem betrachteten Beispiel sind die Zugriffe Lesezugriffe, mit
Hilfe derer eine Haupteinheit von einer Untereinheit in dieser Untereinheit
gespeicherte Daten liest, und Schreibzugriffe, mit Hilfe derer eine
Haupteinheit an die Untereinheit Daten überträgt, die in dieser Untereinheit
gespeichert oder weiter verarbeitet werden sollen. Die Zugriffe,
die die Haupteinheiten auf die Untereinheiten machen, können jedoch
auch beliebige andere gewünschte
Zugriffsarten sein.
-
Die
beschriebene Anordnung in dem betrachteten Beispiel ist eine Komponente
einer programmierbaren Einheit wie etwa eines Mikroprozessors, eines
Microcontrollers oder eines Signalprozessors. Es gibt jedoch keine
Einschränkung
darauf. Insbesondere können
bestimmte Haupteinheiten und/oder Untereinheiten zumindest teilweise
auch außerhalb
der programmierbaren Einheit vorgesehen sein, und die beschriebene
Anordnung kann zudem auch ganz oder teilweise eine Komponente einer
integrierten oder nicht integrierten Schaltung sein.
-
Wie
im Fall der anfänglich
beschriebenen herkömmlichen
Anordnung gilt auch im Fall der im folgenden Text beschriebenen
Anordnung, daß die Haupteinheiten
und die Untereinheiten nicht direkt mit der Kreuzschiene verbunden
sein müssen,
sondern auch über
eine Busschnittstelle, eine Busbrücke oder dergleichen mit der
Kreuzschiene verbunden sein können.
-
Die
im folgenden Text beschriebene Anordnung weist im Vergleich zu der
anfänglich
unter Bezugnahme auf 2 beschriebenen Anordnung eine Reihe
von Unterschieden auf und diese werden nun unter Bezugnahme auf 1 beschrieben.
-
Die
in 1 gezeigte Anordnung enthält eine Haupteinheit M1, eine
erste Untereinheit S1, eine zweite Untereinheit S2 und eine Kreuzschiene XB.
-
Die
Kreuzschiene XB enthält
Entscheidungseinheiten A1 und A2, Multiplexer MUX1, MUX2 und MUX3
sowie Pipeline-Stufen
PS1 bis PS7, wobei die Pipelinestufen PS1 bis PS7 in dem betrachteten
Beispiel durch Register gebildet werden, genauer gesagt durch Flipflops,
obwohl sie auch auf beliebige andere gewünschte Weise implementiert
werden könnten.
Die Anordnung und die Funktionsweise der Komponenten der Kreuzschiene
XB werden später ausführlicher
beschrieben.
-
Die
Haupteinheit M1 und die Untereinheiten S1 und S2 sind über die
Kreuzschiene XB miteinander verbunden. Genauer gesagt geschieht
dies so, daß:
- – die
Haupteinheit M1
– über einen
ersten Adressbus ADDR1 mit einem Eingangsanschluß der Entscheidungseinheit
A1 und mit einem Eingangsanschluß der Entscheidungseinheit
A2 verbunden ist,
– über einen
ersten Schreibdatenbus WRITE1 mit einem Eingangsanschluß des Multiplexers
MUX2 und mit einem Eingangsanschluß des Multiplexers MUX3 verbunden
ist und
– über einen
ersten Lesedatenbus READ1 mit dem Ausgangsanschluß des Multiplexers
MUX1 verbunden ist,
- – die
Untereinheit S1
– über einen
zweiten Adressbus ADDR2 mit dem Ausgangsanschluß der Entscheidungseinheit
A1 verbunden ist,
– über einen
zweiten Schreibdatenbus WRITE2 mit einem Ausgangsanschluß des Multiplexers MUX2
verbunden ist und
– über einen
zweiten Lesedatenbus READ2 mit einem Eingangsanschluß des Multiplexers
MUX1 verbunden ist, und
- – die
Untereinheit S2
– über einen
dritten Adressbus ADDR3 mit dem Ausgangsanschluß der Entscheidungseinheit
A2 verbunden ist,
– über einen
dritten Schreibdatenbus WRITE3 mit einem Ausgangsanschluß des Multiplexers
MUX3 verbunden ist und
– über einen
dritten Lesedatenbus READ3 mit einem Eingangsanschluß des Multiplexers
MUX1 verbunden ist.
-
Eine
weitere Haupteinheit würde
- – über einen
vierten Adressbus mit einem weiteren Eingangsanschluß der Entscheidungseinheit A1
und mit einem weiteren Eingangsanschluß der Entscheidungseinheit
A2 verbunden sein,
- – über einen
vierten Schreibdatenbus mit einem weiteren Eingangsanschluß des Multiplexers MUX2
und mit einem weiteren Eingangsanschluß des Multiplexers MUX3 verbunden
sein und
- – über einen
vierten Lesedatenbus mit dem Ausgangsanschluß eines weiteren Multiplexers
verbunden sein, dessen Eingangsanschlüsse mit den Lesedatenbussen
READ1 und READ2 verbunden sind.
-
Allgemein
ausgedrückt
geschieht dies derart, daß:
- – ein
mit der relevanten Haupteinheit assoziierter Multiplexer für jede der
mit der Kreuzschiene verbundenen Haupteinheiten vorgesehen ist und
- – eine
mit der relevanten Untereinheit assoziierte Entscheidungseinheit
und ein mit der relevanten Untereinheit assoziierter Multiplexer
für jede
der mit der Kreuzschiene verbundenen Untereinheiten vorgesehen sind,
wobei
- – der
mit jeder Haupteinheit assoziierte Multiplexer
– die Eingangsanschlüsse über die
Lesedatenbusse mit allen Untereinheiten verbindet, die vorliegen,
und
– den
Ausgangsanschluß über einen
Lesedatenbus mit der Haupteinheit verbindet,
- – der
mit jeder Untereinheit assoziierte Multiplexer
– die Eingangsverbindungen über Schreibdatenbusse
mit allen Haupteinheiten verbindet, die vorliegen, und
– die Ausgangsverbindung über einen
Schreibdatenbus mit der Untereinheit verbindet, und
- – die
mit jeder Untereinheit assoziierte Entscheidungseinheit
– die Eingangsanschlüsse über Adressbusse
mit allen Haupteinheiten verbindet, die vorliegen, und
– den Ausgangsanschluß über einen
Adressbus mit der Untereinheit verbindet.
-
Die
Multiplexer, die vorliegen, werden von den Entscheidungseinheiten
gesteuert.
-
Adressen,
die von den Haupteinheiten ausgegeben werden, sowie verschiedene
Steuersignale, die später
ausführlicher
beschrieben werden, werden über
die Adressbusse übertragen.
-
Von
den Untereinheiten emittierte Daten sowie verschiedene Steuersignale,
die ebenfalls später ausführlicher
beschrieben werden, werden über
die Lesedatenbusse übertragen.
-
Daten,
die von den Haupteinheiten ausgegeben werden, sowie verschiedene
Steuersignale, die ebenfalls später
ausführlicher
beschrieben werden, werden über
die Schreibdatenbusse übertragen.
-
Die
Haupteinheiten, die mit der Kreuzschiene XB verbunden sind, können zum
Lesen und/oder Schreiben auf die Untereinheiten zugreifen. Ein Lesezugriff
auf eine Untereinheit gestattet der Haupteinheit, in dieser Untereinheit
gespeicherte Daten zu lesen; ein Schreibzugriff auf eine Untereinheit
gestattet der Haupteinheit, Daten, die in der Untereinheit gespeichert
oder weiter verarbeitet werden sollen, zu dieser Untereinheit zu übertragen.
-
Die
Prozeduren, die während
eines Lesezugriffs stattfinden, und die Prozeduren, die während eines
Schreibzugriffs stattfinden, werden in dem folgenden Text unter
Bezugnahme auf 1 genauer beschrieben.
-
Im
Fall des Lesezugriffs, der zu allererst beschrieben wird, wird davon
ausgegangen, daß die Haupteinheit
M1 Daten aus der Untereinheit S1 auslesen möchte.
-
Der
Lesezugriff startet somit damit, daß die Haupteinheit M1 eine
Adresse, ein Lesesignal und ein Anforderungssignal über den
Adressbus ADDR1 ausgibt, wobei die Haupteinheit M1
- – das
Anforderungssignal verwendet, um zu signalisieren, daß sie auf
eine der Untereinheiten zugreifen möchte,
- – das
Lesesignal verwendet, um zu signalisieren, daß sie Daten aus der relevanten
Untereinheit lesen möchte,
und
- – die
Adresse verwendet, um die Untereinheit oder den Punkt innerhalb
der relevanten Untereinheit anzuzeigen, von der Daten gelesen werden sollten.
-
Die
Adresse, das Lesesignal und das Anforderungssignal werden über den
Adressbus ADDR1 sowohl an die Entscheidungseinheit A1 als auch an die
Entscheidungseinheit A2 geliefert. Jede der Entscheidungseinheiten
A1 und A2 verwendet das Anforderungssignal, um zu identifizieren,
daß eine Haupteinheit
einen Zugriff anfordert, und prüft
dann mit der Adresse, ob der Zugriff zu der Untereinheit hergestellt
werden soll, die mit der jeweiligen Entscheidungseinheit assoziiert
ist. In diesem Fall findet die Entscheidungseinheit A1, daß der angeforderte Zugriff
zu der Untereinheit S1 hergestellt werden soll, die mit dieser Entscheidungseinheit
A1 assoziiert ist; die Entscheidungseinheit A2 findet, daß kein Zugriff zu
der Untereinheit S2 hergestellt werden soll, die mit dieser Entscheidungseinheit
A2 assoziiert ist.
-
Nachdem
die Entscheidungseinheit A1 herausgefunden hat, daß eine Haupteinheit
auf die Untereinheit S1 zugreifen möchte, gibt sie zuerst über den
Adressbus ein Gewährungssignal
an jene Haupteinheit aus, die Zugriff zu dieser Untereinheit S1
angefordert hat; die Haupteinheit, die Zugriff angefordert hat,
kann auf der Basis des Adressbusses bestimmt werden, über den
das einen Zugriff anfordernde Anforderungssignal übertragen
wurde. In dem betrachteten Beispiel überträgt somit die Entscheidungseinheit
A1 ein Gewährungssignal über den
Adressbus ADDR1 an die Haupteinheit M1.
-
Die
Haupteinheit M1 identifiziert mit dem ihm gelieferten Gewährungssignal,
daß seine
Zugriffsanforderung akzeptiert worden ist, und wartet nun auf die Übertragung
der von der Untereinheit S1 angeforderten Daten. Die Haupteinheit
weist keinerlei Informationen dahingehend auf, wann diese Daten
geliefert werden, und auch der Haupteinheit wird mit Hilfe von Wartezustandszyklen
oder dergleichen nicht signalisiert, daß die von der Untereinheit
S1 angeforderten Daten noch nicht zur Verfügung stehen. Statt dessen wartet
die Haupteinheit, bis ihr ein Bereitschaftssignal geliefert wird,
das später
ausführlicher
beschrieben wird.
-
Nach
dem Abgeben des Gewährungssignals an
die Haupteinheit M1 oder sogar zum gleichen Zeitpunkt wie dies prüft die Entscheidungseinheit
A1, ob zu diesem Zeitpunkt auf die Untereinheit S1 zugegriffen werden
kann. Dies ist die Situation, wenn auf die Untereinheit zu diesem
Zeitpunkt nicht bereits zugegriffen wird und wenn keine im voraus
zu verarbeitenden Zugriffsanforderungen vorliegen. Zugriffsanforderungen,
die im voraus verarbeitet werden müssen, können beispielsweise Zugriffsanforderungen
sein, die früher
bei der Entscheidungseinheit A1 ankamen oder die eine höhere zugewiesene
Priorität
als die vorliegende Zugriffsanforderung aufweisen.
-
Wenn
die Entscheidungseinheit A1 herausfindet, daß der Zugriff, der von der
Haupteinheit M1 gegenüber
der Untereinheit S1 angefordert wurde, ausgeführt werden kann, überträgt sie das
Lesesignal und jenen Teil der Adresse, der erforderlich ist, um
die Untereinheit S1 über
den Adressbus ADDR2 zu adressieren, an die Untereinheit S1.
-
Im
wesentlichen aktiviert die Entscheidungseinheit A1 zu dem gleichen
Zeitpunkt den Multiplexer MUX1 derart, daß er, über den Lesedatenbus READ1,
die ihm von der Untereinheit S1 über
den Lesedatenbus READ2 gelieferten Daten an die Haupteinheit M1
weiterleitet. Außerdem
kann vorgesehen werden, daß die
Entscheidungseinheit A1 den Multiplexer MUX2 derart aktiviert, daß letzterer, über den Schreibdatenbus
WRITE2, die ihm von der Haupteinheit M1 über den Schreibdatenbus WRITE1
gelieferten Daten an die Untereinheit S1 weitergibt.
-
Die
Untereinheit S1 identifiziert anhand der ihr über den Adressbus ADDR2 gelieferten
Daten, daß sie
die an der ihr gelieferten Adresse gespeicherten Daten lesen und
ausgeben sollte. Sie liest dann die zu lesenden Daten und gibt diese
Daten zusammen mit einem Bereitschaftssignal über den Lesedatenbus READ2
aus. Die über
den Lesedatenbus READ1 übertragenen
Daten werden über
den Multiplexer MUX1 und den Lesedatenbus READ1 an die Haupteinheit
M1 weitergeleitet.
-
Wie
bereits oben erläutert
wurde, wartet die Haupteinheit M1 auf den Empfang des Bereitschaftssignals.
Das Bereitschaftssignal signalisiert der Haupteinheit M1, daß die bereits
durch die Haupteinheit M1 von der Untereinheit S1 angeforderten
Daten zur Verfügung
stehen und nun gelesen werden können.
Die Haupteinheit M1 liest die ihr über den Lesedatenbus READ1
gelieferten Daten, wodurch der Lesezugriffsprozeß beendet wird.
-
Bei
dem betrachteten Beispiel mußte
die Haupteinheit M1 auf den Empfang des Bereitschaftssignals warten,
das heißt,
sie führte
in der Zwischenzeit keinen weiteren Zugriff auf eine der Untereinheiten
aus. Die Haupteinheit kann jedoch sogar vor Empfang des Bereitschaftssignals
weitere Zugriffe auf die Untereinheiten ausführen. Insbesondere ist es ohne
jegliche Probleme möglich,
daß die
Haupteinheit M1 weitere Zugriffe auf die Untereinheit anfordert,
auf die sie gegenwärtig
zugreift, selbst vor dem Empfang des Bereitschaftssignals. Dies
bedeutet, daß die
Haupteinheit M1 sogar vor Abschluß eines Zugriffs auf die Untereinheit
S1 einen oder mehrere weitere Zugriffe auf diese Untereinheit S1
durchführen
kann.
-
Da
bewirkt wird, daß die
Haupteinheit M1 ein Bereitschaftssignal empfängt, das von der Untereinheit
produziert und durch die Kreuzschiene XB an die Haupteinheit weitergeleitet
wird, um die von der Untereinheit ausgegebenen Daten zu lesen, ist
es nicht notwendig, daß
- – die
Haupteinheit über
diese Informationen informiert wird, die gesetzt worden sind und
die Zeit definieren, zu der die von der Untereinheit S1 ausgegebenen
Daten gelesen werden sollten, oder
- – ein
Wartezustandsgenerator in der Kreuzschiene oder sonst irgendwo vorgesehen
wird, der der Haupteinheit durch Produzieren von Wartezustandszyklen
signalisiert, daß die
von der Untereinheit S1 angeforderten Daten noch nicht für das Lesen
zur Verfügung
stehen.
-
Dies
wiederum ermöglicht
das Einfügen
einer beliebigen gewünschten
Anzahl von Pipeline-Stufen an beliebigen gewünschten Punkten, vollständig unabhängig voneinander,
in die Busse, über die
die an die Kreuzschiene angeschlossenen Einheiten mit der Kreuzschiene
verbunden sind, ohne daß irgend
etwas davon bei dem Design und der Konfiguration der Haupteinheit
M1 und der Kreuzschiene XB berücksichtigt
werden müßte. 1 zeigt
eine mögliche
Anordnung von Pipeline-Stufen. Wie bereits oben erwähnt wurde,
sind die Pipeline-Stufen mit den Referenzsymbolen PS1 bis PS7 bezeichnet.
Die Pipeline-Stufen können
auch außerhalb
der Kreuzschiene vorgesehen sein.
-
Die
Pipeline-Stufen führen
dazu, daß die
Daten und Signale, die über
die Daten- und Signalwege übertragen
werden, die die Pipeline-Stufen enthalten, um eine oder mehrere
Taktsignalperioden verzögert übertragen
werden. In dem Fall der Anordnung jedoch, die in 1 dargestellt
und unter Bezugnahme auf diese Figur beschrieben ist, kann dies
die korrekte Funktionsweise der Anordnung unter keinen Umständen stören. Die
Haupteinheit M1 liest die ihr von der Untereinheit S1 gelieferten
Daten, wenn sie das Bereitschaftssignal empfängt, das zur gleichen Zeit
wie die Daten übertragen
wird, so daß es
irrelevant ist, wie lange es zwischen dem Anfordern eines Zugriffs
auf die Untereinheit S1 oder dem Empfangen des Gewährungssignals
und dem Empfang der von der Untereinheit angeforderten Daten dauert.
-
Eine
entsprechende Situation entsteht natürlich auch, wenn die Haupteinheit
M1 Daten von einer anderen der Untereinheiten lesen möchte, die
vorliegen, oder wenn eine andere der Haupteinheiten, die vorliegen,
Daten von einer Untereinheit lesen möchte.
-
Eine ähnliche
Situation tritt auf, wenn die Haupteinheit M1 einen Schreibzugriff
auf die Untereinheit S1 durchführt,
das heißt,
wenn die Haupteinheit M1 an die Untereinheit S1 Daten überträgt, die
in ihr gespeichert oder in ihr weiterverarbeitet werden sollen.
-
Der
Schreibzugriff startet damit, daß die Haupteinheit M1 über den
Adressbus ADDR1 eine Adresse, ein Schreibsignal und ein Anforderungssignal
ausgibt, wobei die Haupteinheit M1
- – mit Hilfe
des Anforderungssignals signalisiert, daß sie auf eine der Untereinheiten
zugreifen möchte,
- – mit
Hilfe des Schreibsignals signalisiert, daß sie Daten in die relevante
Untereinheit schreiben möchte
und
- – über die
Adresse die Untereinheit oder den Punkt innerhalb der relevanten
Untereinheit anzeigt, wohin die Daten geschrieben werden sollten.
-
Die
Adresse, das Schreibsignal und das Anforderungssignal werden über den
Adressbus ADDR1 sowohl an die Entscheidungseinheit A1 als auch an
die Entscheidungseinheit A2 geliefert. Jede der Entscheidungseinheiten
A1 und A2 identifiziert anhand des Anforderungssignals, daß eine Haupteinheit
einen Zugriff angefordert hat, und prüft dann anhand der Adresse,
ob der Zugriff zu der Untereinheit erfolgen soll, die mit der jeweiligen
Entscheidungseinheit assoziiert ist. In diesem Fall findet die Entscheidungseinheit
A1 heraus, daß der angeforderte
Zugriff auf die Untereinheit S1 erfolgen soll, die mit der Entscheidungseinheit
A1 assoziiert ist; die Entscheidungseinheit A2 findet heraus, daß kein Zugriff
auf die Untereinheit S2 erfolgen soll, die mit dieser Entscheidungseinheit
A2 assoziiert ist.
-
Nachdem
die Entscheidungseinheit A1 herausgefunden hat, daß eine Haupteinheit
auf die Untereinheit S1 zugreifen möchte, gibt sie zuerst über den
Adressbus ein Gewährungssignal
an jene Haupteinheit aus, die den Zugriff auf die Untereinheit S1
angefordert hat; die Haupteinheit, die den Zugriff angefordert hat,
kann auf der Basis des Adressbusses bestimmt werden, über den
das einen Zugriff anfordernde Anforderungssignal übertragen
wurde. Somit überträgt bei dem
betrachteten Beispiel die Entscheidungseinheit A1 ein Gewährungssignal über den
Adressbus ADDR1 an die Haupteinheit M1.
-
Die
Haupteinheit M1 identifiziert anhand des ihr gelieferten Gewährungssignals,
daß ihre
Zugriffsanforderung empfangen worden ist, und wartet nun, bis sie
an die Untereinheit S1 die Daten ausgeben kann, die sie in dieser
Untereinheit S1 speichern möchte.
Die Haupteinheit besitzt keinerlei Informationen über die
Zeit, zu der dies erfolgen kann, und der Haupteinheit wird auch
nicht mit Hilfe von Wartezustandszyklen oder dergleichen signalisiert,
daß die relevante
Zeit noch nicht erreicht worden ist. Statt dessen wartet die Haupteinheit,
bis ihr ein Bereitschaftssignal geliefert wird, was später ausführlicher beschrieben
wird.
-
Nach
dem Ausgeben des Gewährungssignals
an die Haupteinheit M1 oder sogar zur gleichen Zeit wie dies prüft die Entscheidungseinheit
A1, ob gegenwärtig
Zugriff auf die Untereinheit S1 möglich ist. Dies ist der Fall,
wenn gegenwärtig
kein Zugriff auf die Untereinheit erfolgt und wenn keine Zugriffsanforderungen
vorliegen, die im voraus verarbeitet werden müssen. Zugriffsanforderungen,
die im voraus verarbeitet werden müssen, können beispielsweise Zugriffsanforderungen
sein, die früher bei
der Entscheidungseinheit A1 ankamen oder die eine höhere assoziierte
Priorität
als die aktuelle Zugriffsanforderung aufweisen.
-
Wenn
die Entscheidungseinheit A1 herausfindet, daß der von der Haupteinheit
M1 angeforderte Zugriff auf die Untereinheit S1 durchgeführt werden kann, überträgt sie das
Schreibsignal und den Teil der Adresse, der für das Adressieren der Untereinheit S1
erforderlich ist, über
den Adressbus ADDR2 an die Untereinheit S1.
-
Im
wesentlichen aktiviert gleichzeitig:
- – die Entscheidungseinheit
A1 den Multiplexer MUX1 derart, daß er die ihm von der Untereinheit S1 über den
Lesedatenbus READ2 gelieferten Daten über den Lesedatenbus READ1
an die Haupteinheit M1 weitergibt und
- – die
Entscheidungseinheit A1 den Multiplexer MUX2 derart, daß er die
ihm von der Haupteinheit M1 über
den Schreibdatenbus WRITE1 gelieferten Daten über den Schreibdatenbus WRITE2
an die Untereinheit S1 weitergibt.
-
Die
Untereinheit S1 identifiziert anhand der ihr über den Adressbus ADDR2 gelieferten
Daten, daß Daten
an der ihr gelieferten Adresse gespeichert werden sollten. Sie gibt
dann ein Bereitschaftssignal auf dem Lesedatenbus READ2 aus. Dieses
Signal wird über
den Multiplexer MUX1 und den Lesedatenbus READ2 an die Haupteinheit
M1 weitergeleitet.
-
Wie
bereits oben erläutert
wurde, wartet die Haupteinheit M1 auf den Empfang des Bereitschaftssignals.
Das Bereitschaftssignal signalisiert der Haupteinheit M1, daß die Haupteinheit
M1 nun die zu schreibenden Daten an die Untereinheit S1 ausgeben
kann. Die Haupteinheit M1 gibt dann die zu schreibenden Daten zusammen
mit einem Datengültigkeitssignal über den
Schreibdatenbus WRITE1 an die Untereinheit S1 aus. Diese Daten werden über den
Multiplexer MUX2 und den Schreibdatenbus WRITE2 an die Untereinheit
S1 weitergeleitet. Die Untereinheit S1 identifiziert anhand des
Datengültigkeitssignals,
daß die
in sie zu schreibenden Daten zur Verfügung stehen. Sie liest diese
Daten und speichert sie oder verarbeitet sie weiter. Dies schließt den Schreibzugriff
durch die Haupteinheit M1 auf die Untereinheit S1 ab.
-
Bei
dem betrachteten Beispiel mußte
die Haupteinheit M1 auf den Empfang des Bereitschaftssignals warten,
das heißt,
sie machte in der Zwischenzeit keinen weiteren Zugriff auf eine
der Untereinheiten. Jedoch sogar vor dem Empfang des Bereitschaftssignals
kann die Haupteinheit weitere Zugriffe auf die Untereinheiten durchführen. Insbesondere
ist es ohne irgendwelche Probleme möglich, daß die Haupteinheit M1 weitere
Zugriffe auf die Untereinheit anfordert, auf die sie gegenwärtig zugreift, selbst
bevor sie das Bereitschaftssignal empfängt. Dies bedeutet, daß die Haupteinheit
M1 sogar vor Beendigung des Zugriffs auf die Untereinheit S1 einen
oder mehrere weitere Zugriffe auf die Untereinheit S1 anfordern
kann.
-
Da
bewirkt wird, daß die
Haupteinheit M1 ein Bereitschaftssignal empfängt, das von der Untereinheit
produziert und durch die Kreuzschiene XB an die Haupteinheit weitergeleitet
wird, um die in die Untereinheit S1 zu schreibenden Daten auszugeben,
besteht keine Notwendigkeit, daß
- – die
Haupteinheit über
diese Informationen informiert wird, die gesetzt worden sind und
die Zeit definieren, zu der die von der Untereinheit S1 ausgegebenen
Daten gelesen werden sollten, oder
- – ein
Wartezustandsgenerator in der Kreuzschiene oder sonst irgendwo vorgesehen
wird, der der Haupteinheit durch Produzieren von Wartezustandszyklen
signalisiert, daß die
in die Untereinheit S1 zu schreibenden Daten noch nicht emittiert
werden sollen.
-
Dies
wiederum ermöglicht
das Einfügen
einer beliebigen gewünschten
Anzahl von Pipeline-Stufen an beliebigen gewünschten Punkten, vollständig unabhängig voneinander,
in die Busse, über die
die an die Kreuzschiene angeschlossenen Einheiten mit der Kreuzschiene
verbunden sind, ohne daß irgend
etwas davon bei dem Design und der Konfiguration der Haupteinheit
M1 und der Kreuzschiene XB berücksichtigt
werden müßte. 1 zeigt
eine mögliche
Anordnung von Pipeline-Stufen. Wie bereits oben erwähnt wurde,
sind die Pipeline-Stufen mit den Referenzsymbolen PS1 bis PS7 bezeichnet.
Die Pipeline-Stufen können
auch außerhalb
der Kreuzschiene vorgesehen sein.
-
Die
Pipeline-Stufen führen
dazu, daß die
Daten und Signale, die über
die Daten- und Signalwege übertragen
werden, die die Pipeline-Stufen enthalten, um eine oder mehrere
Taktsignalperioden verzögert übertragen
werden. In dem Fall der Anordnung jedoch, die in 1 dargestellt
und unter Bezugnahme auf diese Figur beschrieben ist, kann dies
die korrekte Funktionsweise der Anordnung unter keinen Umständen stören. Bei
Empfang des Bereitschaftssignals gibt die Haupteinheit M1 die zu
schreibenden Daten an die Untereinheit S1 aus, so daß es irrelevant
ist, wie lange es zwischen der Anforderung für einen Zugriff auf die Untereinheit
S1 oder dem Empfang des Gewährungssignals
und der Ausgabe der zu schreibenden Daten an die Untereinheit dauert.
-
Eine
entsprechende Situation entsteht natürlich auch, wenn die Haupteinheit
M1 Daten in eine andere der Untereinheiten schreiben möchte, die vorliegen,
oder wenn eine andere der Haupteinheiten, die vorliegen, Daten in
eine Untereinheit schreiben möchte.
-
Die
beschriebene Anordnung kann auf einfache Weise implementiert und
betätigt
werden und gestattet, daß die
Einrichtungen, die miteinander über die
Kreuzschiene verbunden sind, effizient kooperieren und daß sie auf
flexible Weise kombiniert werden können.