DIPL. ING. HEINZ BARDEHLiE München, Τ Ο. Dezember 1979
1949571
PATENTANWALT F
P 9QQ1
Aktenzeichen: Mein Zeichen: r t7:"
Honeywell Information Systems ine, 200 Smith Street
Waltham, Mass.
V. St. v. A.
Cachespeichereinheit für die Verwendung in Verbindung mit einer Datenverarbeitungseinheit
030025/0769
29A9571
D ι ρ 2991
Beschreibung
Die Erfindung bezieht sich auf Datenverarbeitungssysteme und insbesondere auf auch als Notizblockspeichersysteme
bezeichnete Cachespeichersysteme.
.^s ist bekannt, hierarchische Speicherorganisationen bereitzustellen,
bei denen ein großer Hauptspeicher mit geringer Geschwindigkeit in Verbindung mit einer kleinen
Pufferspeichereinheit oder Cachespeichereinheit betrieoen wird, die mit hoher Geschwindigkeit arbeitet. Bei
derartigen Anordnungen kann die Zentraleinheit (CPU) zu Operandendaten und/oder Befehlen mit einer Geschwindigkeit
zugreifen, die noch näher an die Geschwindigkeit der Maschine herankommt. Während des normalen Betriebs,
wenn die Zentraleinheit die Adresse der Information bereitstellt, zu der ein Zugriff erfolgen soll, führen
Steuerschaltungen einen Suchvorgang in einer Adreßliste aus, in der zugehörige Adressen gespeichert sind, die
festlegen, welche Informationsblöcke in dem Cachespeicher enthalten sind (d.h., daß die betreffenden
Adressen einen sogenannten Trefferzustand festlegen). Wenn festgestellt wird, daß die Information in dem Cachespeicher
vorhanden ist, dann erfolgt ein Zugriff zu der Information, die zu der Zentraleinheit hin übertragen
wird. Wenn die geforderte Information nicht in dem Cachespeicher enthalten ist, fordern die Steuerschaltungen die
Information aus dem Hauptspeicher an. Auf die Aufnahme der betreffenden Information hin wird diese in den Cachespeicher
eingeschrieben, und zwar zu dem Zeitpunkt, zu dem zu ihr ein Zugriff erfolgen kann.
Beispiele für derartige Systeme sind an anderer Stelle beschrieben (siehe US-PS 35 88 829). In dem betreffenden
030025/0769
bekannten System enthält der Cachespeicher vier
Ebenen, die durch dieselbe Reihe von Adressensignalen adressiert werden, um zu vier Wörtern eines Befehlsblockes
oder von Daten zuzugreifen.
Da Speicherdaten auf einer Echzeitbasis verarbeitet werden müssen, wird das Schreiben der Speicherdaten
normalerweise mit dem Zugriff zu derartigen Befehlen gestört. Um diese Störung zu überwinden, sind bei den
bisher bekannten Anordnungen die Prozessoroperationen solange angehalten worden, bis die Speicherdaten in den
Cachespeicher eingeschrieben sind. Dies hat sich jedoch als ein die Gesamtzugriffsrate der Zentraleinheit einschränkender
Vorgang erwiesen, was zu einer Herabsetzung der Leistungsfähigkeit der Zentraleinheit führt.
Der Erfindung liegt demgemäß die Aufgabe zugrunde, eine Notizblock- bzw. Cachespeicheranordnung bereitzustellen,
die einer Zentraleinheit einen schnellen Informationszugriff ermöglicht.
Gelöst wird die vorstehend aufgezeigte Aufgabe durch die in den Patentansprüchen erfaßte Erfindung.
Es ist erkannt worden, daß der einschränkende Faktor bezüglich der Geschwindigkeit, mit der Cachespeicher-Zugriffe
erfolgen können, durch die Zeitspanne gegeben ist, die erforderlich ist, um eine Adreßlistensuche auszuführen.
Im allgemeinen ist ein vollständiger Cachespeicher-Betriebszyklus erforderlich, um überhaupt festzustellen, ob
die geforderte Information in dem Cachespeicher enthalten ist (dies bedeutet, daß ein Adreßlisten-Zugriff erfolgt
und daß zugehörige Adressen verglichen werden).
Im Falle des Vorliegens eines Trefferzustands, der eine
Anzeige dafür liefert, daß die aufzurufende oder zu aktualisierende Information in dem Cachespeicher enthalten
030025/0769
ist, ist ein weiterer Zugriff für die Beendigung der Prozessoroperation erforderlich, und zwar entweder
durch Zugriff zu Operandendaten oder durch Einschreiben von Daten in den Cachespeicher. Da die Cachespeicherdaten
auf einer Echtzeitbasis verarbeitet werden müssen und da Befehlszugriffe aus dem Cachespeicher
sich vorgenommen werden müssen, stören/normalerweise das
Einschreiben von Speicherdaten und BefehlsZugriffe derartiger Operationen. Um derartige Störungen zu überwinden,
sind bei den bisher bekanntgewordenen Anordnungen die Prozessoroperationen solange angehalten worden, bis
die Speicherdaten in den Cachespeicher eingeschrieben worden sind oder bis Zugriffe zu Befehlen hin erfolgt
sind. Dies hat sich jedoch als ein die Gesamtzugriffsgeschwindigkeit
der Zentraleinheit beschränkender Vorgang herausgestellt, durch den die Leistungsfähigkeit
der Zentraleinheit vermindert wird.
Um die somit vorhandene Störung zwischen den verschiedenen Arten von auszuführenden Operationen zu vermeiden,
ist gemäß der Erfindung eine neue Cachespeicheranordnung geschaffen worden, die für die Verwendung in
Verbindung mit einer Datenverarbeitungseinheit vorgesehen ist und die einen schnellen Zugriff zu Informationen
mit sich bringt, die aus einem mit der betreffenden CacheSpeichereinheit verbundenen Hauptspeicher abgeholt
werden, und zwar auf Befehle hin, die von der Datenverarbeitungseinheit abgegeben werden. Diese Cachespeichereinheit
umfaßt einen Pufferspeicher mit ein»r Vielzahl von Wortspeicherplätzen, die in einer Vielzahl von
Ebenen zur Informationsspeicherung organisiert sind. Außerdem umfaßt die Cachespeichereinheit eine Vielzahl
von Adressenschalt-Auswahleinrichtungen, deren Anzahl der Vielzahl von Ebenen entspricht und die jeweils eine
Anzahl von Eingängen aufweisen, welche eine entsprechende Anzahl von Adressen von einer entsprechenden Anzahl
03 0 025/0769
von identischen Adressenquellen aufnehmen. Außerdem weisen die betreffenden Adressenschalt-Auswahleinrichtungen
einen Ausgang auf. Darüber hinaus ist eine Vielzahl von Adreßregistereinrichtungen vorgesehen, deren
Anzahl der Vielzahl von Ebenen entspricht und die jeweils mit einer anderen Auswahleinrichtung der in
einer Vielzahl vorgesehenen Adressenschalt-Auswahleinrichtungen
und mit jeweils einer anderen der in einer Vielzahl vorgesehenen Ebenen verbunden sind. Jede
Adreßregistereinrichtung dient dabei zur Speicherung
der Adresse, die den WortSpeicherplatz bezeichnet, zu
dem ein Zugriff während eines Cachespeicher-Betriebszyklus erfolgt. Darüber hinaus ist mit jeder der Adressenschalt-Auswahleinrichtungen
und mit einer der Adressenquellen eine Steuerschaltungseinrichtung gekoppelt, die zur Aufnahme einer Reihe von Ebenensignalen dient
und die eine Vielzahl von Reihen von Steuersignalen erzeugt, die angeben, welche der in einer Vielzahl vorgesehenen
Adressenquellen die in die jeweilige Adreßregistereinrichtung zu ladende Adresse abgibt. Die betreffende
Steuerschaltungseinrichtung ist auf das Auftreten der betreffenden Reihe von Ebenensignalen hin
derart in Betrieb, daß sie eine Reihe der Vielzahl von Reihen von Steuersignalen veranlaßt, die Adressenschalt-Auswahleinrichtung
- die durch die betreffende Reihe von Ebenen-Signalen bezeichnet ist - dafür auszuwählen,
in die zugehörige Ädreßregistereinrichtung eine Adresse aus der betreffenden einen Adressenquelle zu laden. Die
übrigen Adressenschaltauswahleinrichtungen werden hingegen dazu ausgewählt, in die übrigen Adreßregistereinrichtungen
eine Adresse von einer anderen Adressenquelle der Adressenquellen zu laden. Dies ermöglicht das Einschreiben
einer Information in die betreffende eine Ebene und zwar gleichzeitig mit dem Zugriff zu einer Information
aus den übrigen Ebenen während des betreffenden Cachespeicher-Betriebszyklus.
030025/0769
8949571
Durch die Erfindung ist ferner eine Cachespeichereinheit für den Einsatz in Verbindung mit einer Datenverarbeitungseinheit
geschaffen, wobei ein schneller Zugriff zu einer Information erfolgt, die aus einem mit der Cachespeichereinheit
verbundenen Hauptspeicher abgeholt bzw. aufgerufen wird, und zwar auf das Auftreten von Befehlen
hin, die von der Datenverarbeitungseinheit aufgenommen werden. Diese CacheSpeichereinheit umfaßt einen Pufferspeicher
mit einer Vielzahl von adressierbaren Wortspeicherplätzen, die zur Informationsspeicherung dienen.
Außerdem ist eine Adressenschalterauswahleinrichtung mit einer Anzahl von Eingängen zur Aufnahme einer entsprechenden
Anzahl von Adressen von einer entsprechenden Anzahl von Adressenquellen und mit einem Ausgang vorgesehen. Mit
dem betreffenden Ausgang und dem Pufferspeicher ist eine Adreßregistereinrichtung gekoppelt, die zur Speicherung
der Adresse dient, welche den Wortspeicherplatz bezeichnet, zu dem ein Zugriff während eines Cachespeicher-Betriebszyklus
erfolgt. Darüber hinaus ist eine Zeitsteuereinrichtung vorgesehen, die mit der betreffenden Adressenschalterauswahleinrichtung
verbunden ist und die zur Erzeugung von codierten Steuersignalen dient, die angeben,
welche Adressenquelle angeschlossen bzw. wirksam ist, um die Adresse an die Adreßregistereinrichtung abzugeben.
Schließlich ist eine Zeitsteuereinrichtung vorgesehen, die Zeitsteuersignale zur Festlegung einer Anzahl von
Intervallen in dem Cachespeicher-Betriebszyklus erzeugt. Diese Zeitsteuereinrichtung ist mit der betreffenden
Steuereinrichtung verbunden, die durch die betreffende Zeitsteuereinrichtung während eines der betreffenden
Intervalle derart gesteuert ist, daß die betreffende Adressenauswahleinrichtung freigegeben ist, um eine
Adresse zum Laden in die Adreßregistereinrichtung von einer der Adressenquelle her auszuwählen. Die betreffende
Steuereinrichtung wird während eines anderen Inter-
030025/0769
J* g?49§71
vails derart gesteuert, daß die betreffende Adressenschalterauswahleinrichtung
freigegeben ist, eine Adresse zum Laden in das betreffende Adressenregister von einer anderen Adressenquelle her auszuwählen, um
den Zugriff zu der Information zu ermöglichen, die durch die beiden Adressenquellen festgelegt ist, und
zwar während desselben Cachespeicherzyklus, ohne daß eine Störung auftritt.
Gemäß einer bevorzugten Ausführungsform umfaßt die Cachespeicheranordnung eine mit hoher Geschwindigkeit
arbeitende Speichereinheit oder Cachespeichereinheit, die in einer Vielzahl von Ebenen organisiert ist. Jede
Ebene umfaßt eine Anzahl von Mehrwortblöcken mit einer zugehörigen entsprechenden Anzahl von Adressenauswahlschaltern
und Adressenregistern.
Jeder Adressenschalter weist eine Anzahl von unterschiedlichen Positionen auf, in denen er Adressensignale von
einer Vielzahl von Adressenquellen her aufzunehmen und selektiv an das zugehörige Adreßregister abzugeben vermag.
Auf die zuvor erfolgte Bereitstellung der Ebenen-Signale hin, die derart codiert sind, daß sie eine
Ebene festlegen, in die während eines Cachespeicher-Betriebszyklus eingeschrieben wird, veranlaßt die Decoderschaltung
einen bestimmten Schalter der in einer Anzahl vorgesehenen Schalter, von einer ersten Stellung
in eine zweite Stellung umzuschalten, während die übrigen Adressenschalter in der die erste Stellung auswählenden
Stellung verbleiben.
Während eines Cachespeicher-Betriebszyklus bzw. -Operationszyklus wird eine Adresse, die die Cachespeicherstelle
angibt, in die Speicherdaten einzuschreiben sind, durch Taktsteuerung in ein Adreßregister über die zweite
Stellung des Adressenauswahlschalters abgegeben. Eine Adresse, welche die Cachespeichrstelle angibt, aus der
030025/0769
ein nächster Befehl abzuholen ist, wird durch Taktsteuerung in die übrigen Adressenregister über die
erste Stellung der anderen Adressenauswahlschalter abgegeben.
Die Befehlsadresse wird taktgesteuert in die übrigen Adreßregister eingeleitet, wenn kein Konflikt zwischen
den Ebenen ermittelt worden ist. Dies bedeutet, daß die Cachespeicheranordnung eine Vergleicherschaltung umfaßt,
mit deren Hilfe Signale - welche die Ebene angeben, in die Speicherdaten einzuschreiben sind - mit Signalen verglichen
werden - welche die Ebene angeben, aus der ein nächster Befehl abzurufen ist. Wenn ein Konflikt vorliegt,
erzeugt die Vergleicherschaltung Signale, die
den Befehlszugriff verzögern.
Die Anordnung gennß der bevorzugten Ausführungsfοrm der
Erfindung ermöglicht das Einschreiben von Speicherdaten in eine Cachespeicherebene, während ein nächster Befehl
aus einer der übrigen Ebenen während eines Cachespeicher-Operationszyklus abgerufen wird. Demgemäß ist die
Forderung nach Zurückhalten oder Verzögern des Zugriffs von Befehlen zu Schreibspeicherdaten beseitigt. Das Ergebnis
ist eine erhöhte Leistungsfähigkeit.
Dabei ist selbstverständlich angenommen, daß eine geringe Anzahl von Konflikten in den Ebenen vorhanden ist.
Es dürfte jedoch einzusehen sein, daß bei erhöhter Anzahl von Ebenen eine entsprechende Verringerung der Wahrscheinlichkeit
des Auftretens von Konflikten vorhanden sein wird. Bei der bevorzugten Ausführungsform sind acht Ebenen ausgewählt
worden. Es dürfte jedoch einzusehen sein, daß die Erfindung in keiner Weise auf eine derartige Zahl
beschränkt ist.
Ein Cachespeicher-Operationszyklus ist in eine erste Hälfte und in eine zweite Hälfte aufgeteilt. Während
030025/0769
der ersten Hälfte des Cachespeicherzyklus werden Befehlszugriffe
und Speicherdaten-Schreiboperationen ausgeführt, während Zentraleinheits-Lese- und -Schreiboperationen
während der zweiten Hälfte des Cachespeicherzyklus ausgeführt werden.
Bei einer derartigen geteilten Zyklusanordnung wird bei Anwendung der Lehren der vorliegenden Erfindung die
Adresse des CacheSpeicherplatzes, in den Speicherdaten
einzuschreiben sind, durch Taktsteuerung in ein Adreßregister zu Beginn des Cachespeicherzyklus eingeführt.
Die Befehlsadresse wird durch Taktsteuerung in die anderen Adreßregister zum selben Zeitpunkt eingeführt, solange
dabei kein Konflikt ermittelt wird. Die Speicherdaten werden dann in den Cachespeieher eingeschrieben,
während der nächste Befehl in ein Ausgaberegister während der ersten Hälfte desselben Cachespeicherzyklus geladen
wird.
Normalerweise wird eine Adresse aus der Zentraleinheit
CPU in sämtliche Adreßregister zu Beginn des zweiten Halbzyklus geladen, um eine mögliche Lese- oder Schreiboperation
am Ende des zweiten Halbzyklus auszulösen bzw. zu initiieren. Deshalb kann in solchen Fällen, wenn Befehlszugriffkonflikte
bezüglich des Einschreibens von Speicherdaten vorhanden sind, die zweite Hälfte des
Cachespeicherzyklus dazu herangezogen werden, eine CPU-Leseoperation und eine Speicherdaten-Schreiboperation
gleichzeitig auszuführen. In entsprechender Weise zu den oben erläuterten Vorgängen wird zu Beginn der
zweiten Hälfte des Zyklus die Schreibspeicher-Datenadresse in eines der Adreßregister geladen. Die CPU-
bzw. Zentraleinheits-Adresse wird in die übrigen Adreßregister geladen. Während der zweiten Hälfte des Zyklus
werden angeforderte Daten an die Zentraleinheit CPU ausgelesen, während die Speicherdaten in den Cachespeicher
eingeschrieben werden. Diese Anordnung führt ebenfalls zu
030025/0769
-ßa -einer gesteigerten Leistungsfähigkeit der Zentraleinheit.
Im ersten Falle ermöglichen somit die Lehren der vorliegenden Erfindung die Ausführung des Einschreibens
von Speicherinformationen/Daten gleichzeitig mit dem Zugriff zu Befehlen, und zwar unter der Voraussetzung,
daß die Ebene, in die Speicherdaten einzuschreiben sind, verschieden ist von der Ebene, zu deren Befehlen ein Zugriff
erfolgt. Im zweiten Falle setzt die Ausführung des Einschreibens von Speicherinformationen/Daten gleichzeitig
mit dem Zugriff zu Operanden voraus, daß die Ebene, in die Speicherdaten einzuschreiben sind, verschieden
ist von der Ebene, aus der Operanden per Zugriff abgerufen werden.
Eine Adreßliste ist in eine Vielzahl von Ebenen für die Speicherung von Adresseninformationen organisiert, mit
deren Hilfe ein Zugriff zu den Blöcken erfolgt, die in den Ebenen des CacheSpeichers gespeichert sind. Durch
Zeitsteuerschaltungen bzw. Taktschaltungen werden Zeitsteuersignale erzeugt, die erste und zweite Intervalle
eines Cachespeicherzyklus festlegen.
Die Steuerschaltungen, die mit den Zeitsteuerschaltungen
verbunden sind, erzeugen Ausgangssignale, mit deren Hilfe die Operation bzw. der Betrieb des Adressenauswahlschalters
gesteuert wird. Im Betrieb erzeugen während des zweiten Intervalls eines Cachespeicherzyklus die Steuerschaltungen auf das Auftreten der Zeitsteuersignale von
den Zeitsteuerschaltungen her Signale, mit deren Hilfe
die Adresse von einer Adressenquelle in das Adreßregister geladen wird. Dies ermöglicht entweder den Zugriff zu
Befehlen in bzw. aus einer der Ebenen des Cachespeichers oder das Einschreiben von Speicherinformationsdaten
während des ersten Intervalls des folgenden Cachespeicherzyklus.
030025/0769
Während des ersten Intervalls wählt der Adressenauswahlschalter außerdem eine Adresse von einer anderen
Adressenquelle aus, welche Adresse dann durch Taktsteuerung in das Adreßregister eingegeben wird. Dies
ermöglicht die Ausführung von Prozessoroperationen, wie den Zugriff zu Operandendaten oder das Einschreiben
von CPU/Prozessordaten während des zweiten Intervalls desselben Cachespeieherzyklus.
Es dürfte einzusehen sein, daß zum Zwecke einer wirksamen Verarbeitung die Information, die für einen Zugriff
erforderlich ist, in dem Cachespeicher vorhanden ist bzw. sein sollte. Dies führt zu einem hohen Trefferverhältnis
für den Fall, daß die Mehrzahl der Cachespeicher-Zugriffe normalerweise bezüglich Befehle erfolgt. Deshalb ist es
wichtig, daß der Zugriff zu Befehlen nicht durch den Zugriff nach Operandendaten gestört wird. Demgemäß kann
in dem Fall, daß eine Anforderung nach einem Befehl aufgenommen worden ist, zu diesem Befehl zugegriffen werden,
und der betreffende Befehl kann dann zu dem Prozessor hin während des ersten Intervalls desselben Zyklus übertragen
werden, zu dem ein von dem Prozessor angeforderter Operand per Zugriff bereitgestellt und übertragen wird.
Auf diese Weise sind jegliche Störungen oder Konflikte beseitigt, die daraus entstehen, daß ein Zugriff zu Befehlen
bzw. Instruktionen erfolgt und daß außerdem Operanden übertragen werden. Von größerer Bedeutung ist noch,
daß derartige Konflikte eliminiert sind, ohne daß die Leistungsfähigkeit des Prozessors herabgesetzt ist. Dieses
Merkmal ist besonders wünschenswert in CacheSpeicher-Organisationen,
bei denen Zugriffe auf einer Einzelwortbasls anstelle auf einer Blockbasis abgewickelt werden.
Darüber hinaus ist es wünschenswert, übertragene Speicherdaten auf einer Echtzeitbasis einschreiben zu können. Wenn
Speicherdaten aufgenommen werden, können sie somit unverzüglich in den Cachespeieher während des ersten Intervalls
030025/0769
desselben Zyklus eingeschrieben werden, zu dem ein Zugriff zu einem von dem Prozessor her angeforderten Operanden
her erfolgt und zu dem der betreffende Operation zu dem Prozessor hin übertragen wird. Auf diese Art und Weise
sind jegliche Störung oder Konflikte eliminiert, die sich daraus ergeben, daß Speicherdaten eingeschrieben
werden und daß außerdem Prozessoroperanden übertragen werden.
Im Falle des Zugriffs zu Befehlen ist die Quelle der Adressen ein Befehlsadressenregister. Wenn keine
Forderung dahingehend besteht, Speicherdaten einzuschreiben, wählen die Steuerschaltungen als Adressenquelle
das Befehlsregister aus, dessen Inhalt die Adresse des nächsten Befehls bezeichnet, der aus dem Cachespeicher
abzuholen ist. Wenn die Speicherinformation/Daten einzuschreiben sind, ist die Adressenquelle ein Puffer.
In derartigen Fällen wählen die Steuerschaltungen als Adressenquelle den Puffer aus, dessen Inhalt die Adresse
in dem Cachespeicher bezeichnet, unter der die angeforderte Speicherinformation abzuspeichern ist.
Die Quelle der Adressen für die Prozessoroperationen ist ein Register, welches eine Adresse enthält, die von
dem Prozessor her aufgenommen worden ist. Während eines vorhergehenden Cachespeicherzyklus wird die Adreßliste
abgesucht um zu bestimmen, ob die durch dieselbe Adresse bezeichnete Information in dem Cachespeieher enthalten
ist. Die Ergebnisse der Adreßlistensuche werden während der zweiten Hälfte des nächsten Cachespeicherzyklus
verarbeitet, wie dies oben erläutert worden ist, indem die gespeicherte Prozessoradresse herangezogen wird.
Durch Steuern des Adressenschalters zum Zwecke der Auswahl unterschiedlicher Adressenquellen während der ersten
und zweiten Intervalle eines Cachespeicherzyklus eliminiert die Cachespeicheranordnung der vorliegenden Erfindung die
Arten von Störungen aus der Anzahl der oben beschriebenen,
030025/0769
29*9571
miteinander gewissermaßen in Wettbewerb stehenden Quellen/Aktivitäten.
Anhand von Zeichnungen wird die Erfindung nachstehend beispielsweise näher erläutert.
Fig. 1 zeigt in einem Blockdiagramm ein die Prinzipien der vorliegenden Erfindung anwendendes System.
Fig. 2 zeigt in einem Blockdiagramm einen im System gemäß Fig. 1 vorgesehenen Hauptprozessor und eine
Cachespeichereinheit.
Fig. 3a bis 3e zeigen im einzelnen einzelne der
in Fig. 2 dargestellten Blöcke.
Fig. 4 zeigt in einem Blockdiagramm die in Fig. 2 dargestellte Cachespeichereinheit.
Fig. 5 zeigt im einzelnen eine Cachespeicher-Prozessor-Schnittstelleneinrichtung.
Fig. 6a veranschaulicht das Format der Steuerspeicher-Steuereinheit
des Systems gemäß Fig. 1. Fig» bb veranschaulicht das Format von Mikrobefehlswörtern eines Ablaufsteuerspeichers gemäß Fig. 2 und
Fig. 7a bis 7e veranschaulichen im einzelnen unterschiedliche Bereiche der Cachespeichereinheit.
Fig. 8 zeigt ein Zeitdiagramm, welches zur Erläuterung
der Arbeitsweise einer bevorzugten Ausführungsform der Erfindung herangezogen wird.
030025/0769
_63 2349571
Wie aus Fig. 1 ersichtlich ist, weist das die Prinzipien der vorliegenden Erfindung umfassende System zumindest
einen Eingabe/Ausgabe-Prozessor 200, eine System-Schnittstelleneinheit 100, einen mit hoher Geschwindigkeit
arbeitenden Multiplexer 300, einen mit niedriger Geschwindigkeit arbeitenden Multiplexer 400, einen
Hauptprozessor 700, einen Cachespeicher bzw. Notizblockspeicher
750 und zumindest ein Speichermodul entsprechend einem örtlichen Speichermodul 500 und zumindest
ein Speichermodul entsprechend einem Speichermodul 800 auf. Die verschiedenen Moduln sind mit einer
Anzahl von Anschlüssen der Systernschnittstelleneinheit über eine Vielzahl von Leitungen unterschiedlicher Arten
von Schnittstelleneinrichtungen 600 bis 6θ4 verbunden. So sind insbesondere der Eingabe/Ausgabe-Prozessor 200,
der Cachespeicher 750 und der mit hoher Geschwindigkeit arbeitende Multiplexer 300 mit den Anschlüssen G, E
bzw. A verbunden, während der mit niedriger Geschwindigkeit arbeitende Multiplexer 400, das örtliche Speichermodul
500 und das Hauptspeichermodul 800 mit den Anschlüssen J, LMO bzw. RMO verbunden sind. Der Hauptprozessor
700 ist mit dem Cache speicher 750 verbunden.
Im folgenden werden die System-Schnittstelleneinrichtungen
erläutert. Bevor der Prozessor 700 und die Cachespeichereinheit 750 im einzelnen beschrieben werden, die
gemäß den Prinzipien der vorliegenden Erfindung aufgebaut sind, werden zunächst die Schnittstelleneinrichtungen
bis 604 betrachtet.
Die Daten-Schnittstelleneinrichtung 600 ist eine der Schnittstelleneinrichtungen, die für einen Informationsaustausch
zwischen einem aktiven Modul und der Systemschnittstelleneinheit 100 sorgen. Der Informationsaustausch
wird dadurch bewirkt, daß die Verknüpfungszustände
verschiedener Signalleitungen in Ubereinsteimmung mit vorgegebenen Regeln gesteuert werden, die durch eine
030025/0769
Folge von Signalen ausgeführt werden, welche als "Dialog11 bezeichnet werden.
Die Schnittstelleneinrichtung 601 ist eine programmierbare Schnittstelleneinrichtung, die für eine Befehlsinformationsübertragung
von einem aktiven Modul zu einem bezeichneten Modul hin sorgt. Die Übertragung wird dadurch
bewirkt, daß die Verknüpfungszustände der verschiedenen Signalleitungen in Übereinstimmung mit vorher
festgelegten Regeln gesteuert werden, die durch eine Reihenfolge von Signalen ausgeführt werden, welche
als "Dialog" bezeichnet ist.
Eine weitere Schnittstelleneinrichtung ist die Unterbrechungs-Schnittstelleneinrichtung
602, die für eine Unterbrechungs-Verarbeitung durch den Eingabe/Ausgabe-Prozessor
200 sorgt. Dies bedeutet, daß die Schnittstelleneinrichtung die übertragung einer Unterbrechungsinformation durch ein aktives Modul der Systemschnittstelleneinheit
100 zu dem Eingabe/Ausgabe-Prozessor hin zum Zwecke der Verarbeitung ermöglicht. In entsprechender
Weise wird bezüglich der anderen Schnittstelleneinrichtung die übertragung von Unterbrechungsanforderungen dadurch vorgenommen, daß die Verknüpfungszustände
der verschiedenen Signalleitungen in Übereinstimmung mit vorher festgelegten Regeln gesteuert werden,
die durch eine als "Dialog" bezeichnete Folge von Signalen ausgeführt werden.
Eine nächste Reihe von Schnittstellenleitungen, die von bestimmten Moduln gemäß Fig. 1 verwendet sind, entspricht
der örtlichen Speicherschnittstelleneinrichtung 603. Diese Schnittstelleneinrichtung sorgt für einen Informationsaustausch
zwischen dem örtlichen Speicher 500 und den Moduln des Systems. Der Informationsaustausch wird dadurch
bewirkt, daß Verknüpfungszustände der verschiedenen Signalschnittstellenleitungen in Übereinstimmung
030025/0769
mit vorher festgelegten Regeln gesteuert werden, die durch eine Dialog-Folge von Signalen ausgeführt werden.
Die Speicher- und die programmierbaren Schnittstellenbefehle
werden von denselben physikalischen Datenleitungen der Schnittstelleneinrichtung übertragen. Die
Schnittstelleneinrichtung umfaßt nicht eine Reihe von Leitungen zur Verarbeitung von Unterbrechungsanforderungen,
weshalb die über die Systemschnittstelleneinheit 100 mit dem örtlichen Speicher verbundenen
Moduln nicht direkt eine Speicherunterbrechung hervorrufen können.
Bezüglich einer detaillierten Beschreibung der Elemente des in Fig. 1 dargestellten Systems und der Schnittstelleneinrichtungen
600 bis 603 sei auf die US-PS 40 06 466 hingewiesen.
Die letzte Schnittstelleneinrichtung 604 ist eine interne Schnittstelleneinrichtung, die zwischen der
Cachespeichereinheit 750 und dem zentralen Prozessor vorgesehen ist. Dies entspricht den Cachespeicher/Zentral
einheits-Schnittstellenleitungen gemäß Fig. 5. Diese Schnittstelleneinrichtung sorgt für den Informationsaustausch
und den Austausch von Steuersignalen zwischen dem Prozessor 700 und der Cachespeichereinheit 750. Der
betreffende Signalaustausch wird dadurch bewirkt, daß die Verknüpfungszustände der verschiedenen Signal-Schnittstellenleitungen
gesteuert werden. Die Cachespeicher/ Zentraleinheits-Schnittstelleneinrichtung umfaßt eine
Vielzahl von Daten für die Prozessorleitungen (ZDI 0-35, P0-P3), eine Vielzahl von ZAC- und Schreibdatenleitungen
(ZADO 0-23, RADO24-35, P0-P3), eine Prozessor-Anforderungssignalleitung
(DREQ-CAC), eine Vielzahl von Cachespeicher-Befehlsleitungen (DMEM 0-3), eine Halte-Cachespeicherleitung
(HOLD-C-CU), eine Löschleitung
030025/0769
(CANCEL-C), eine Überleitungs-Leitung (CAC-FLUSH), eine Lesewortleitung (RD-EVEN), eine Lesebefehlspufferleitung
(RD-IBUF), eine Lesedoppelleitung (FRD-DBLE), eine ungeradzahlige Leitung (FODD), eine Vielzahl von
Befehlsleitungen (ZIBO-35, P0-P3), eine Steuerleitung
(DSZ), eine Lese-I-Pufferdatenleitung (RD-IBUF/ZDI),
eine Vielzahl von Zonenbitleitungen (DZD 0-3), eine Nebenweg-Cachespeicherleitung (BYP-CAC), eine Schreibsignalleitung
(WRT-SGN), eine Befehlspuffei^-Leer-Leitung
(IBUF-EMPTY), eine Befehlspuffer-Bereitschaftsleitung (IBUF-RDY),
eine CP-Stopleitung (CP-STOP), eine CP-Steuerleitung
(DATA-RECOV), eine Deskriptor-Steuerleitung (FPIM-EIS), eine Transfer-Stop-Leitung (NO-GO) und eine Vielzahl
von Tfcrtadressenleitungen (ZPTRORTO-1).
Die Instruktionen bzw. Befehle, Cachespeicherbefehle und Daten werden der Cachespeichereinheit 750 über verschiedene
Leitungen dieser Leitungen zugeführt. Darüber hinaus wird der Betrieb des Prozessors 700 über bestimmte
Leitungen dieser Leitungen freigegeben bzw. gesperrt, wie dies noch erläutert werden wird. Nachstehend werden
die Zentraleinheits/Cachespeicher-SchnittStellenleitungen
im einzelnen beschrieben.
Zentraleinheits/Cachespeicher-SchnittStellenleitungen
Bezeichnung Beschreibung
DREQ-CAC Diese Leitung verläuft von dem
Prozessor 700 zu der Cachespeichereinheit 750 hin. Wenn die Leitung
DREQ-CAC ein Binärsignal 1 führt, dann wird ein ZAC-Befehl
zu dem Cachespeicher 750 hin über tragen. Im Falle des Auftretens
eines Schreib-ZAC-Befehls werden Schreibdatenwörter in dem einen
030025/0769
oder den beiden auf den ZAC-Befehl hin folgenden Zyklen übertragen, und
Datenwörter werden von dem Prozessor 700 über den Cachespeicher 750 ohne eine Modifikation zu der Systemschnittstelleneinheit
100 hin übertragen.
DMEMO,1,2,3 Diese Leitungen verlaufen von dem
Prozessor 700 zu dem Cache speicher hin. Diese Leitungen führen eine
solche Codierung, daß der Befehl bezeichnet wird, den der Cachespeicher 750 auszuführen hat. Dabei
ist folgende Codierung vorgesehen: DMEM=OOOO - keine Operation dabei wird keine Maßnahme getroffen,
und keine Cachespeicher-Anforderung wird hervorgerufen.
DMEM = 0001 - direkt - der direkte Befehl ermöglicht dem Prozessor 700, eine direkte Übertragung eines Operandenwertes
ohne eine Wirkung auf den Teil des Cachespeichers 750 auszuführen. Damit wird keine Cachespeicheranforderung
durch diesen Befehlstyp erzeugt.
DMEM = 0010 - Adreßbefehl in zyklischer Adreßfolge (ADD-WRAP): Dieser Befehl wird ausgeführt, um
zu dem Befehl zurückzukehren, der dem Cachespeicher 750 von dem Prozessor 700 her gegeben worden ist.
In demselben Zyklus wird der Befehl an den Prozessor 700 über die ZDI-Leitungen 0-35 abgegeben.
030025/0769
DMEM = 0100 - Laden des Befehlspuffers, Befehlsaufruf 1
(LD-1BUF-1F1J: Der Ladebefehls-Pufferbefehl
wird dazu herangezogen, die Adresse des nächsten Blocks von Befehlen in das andere Register
RICA/RICB zu laden.
Es gibt drei mögliche Betriebsablauffolgen für diesen Befehl.
1. im Falle einer Cachespeicheränderung werden dann, wenn der
Cachespeicher 750 nicht umgangen wird, die in dem Cachespeicher
gespeicherte Blockadresse und die in diesem Speicher gespeicherte Ebene in das andere Befehlsregister
geladen. Ein Cachespeicherzugriff wird dann vorgenommen, um den erwünschten Befehl aufzurufen,
der zu dem Prozessor 700 über die ZDl-Leitungen 0-35 auf das Auftreten
des folgenden T-Taktimpulses hin übertragen wird. Das andere Befehlsregister
wird nunmehr zu dem benutzten Befehlsregister.
2. Im Falle von Cachespeicher-Verfehlen,
also dann, wenn der Cachespeicher 750 nicht umgangen wird, werden die durch die Umlaufschaltungen
bezeichnete Blockadresse und die durch die bezeichneten Schaltungen bezeichnete Ebene in
das andere Befehlsregister geladen. Der Prozessor wird abgeschaltet oder auf das Auftreten des folgen-T-Taktirapulses
hin festgehalten
Θ30025/0769
b1
um zu bestimmen, ob die Erzeugung des IF1-Befehls auf einen
Transferbefehl hin erfolgt. Wenn dies der Fall ist und wenn der Transferbefehl ein Stopbefehl
ist, dann wird das gerade benutzte Befehlsregister dazu herangezogen,
zum nächsten Befehl zuzugreifen, und der Prozessor 700 wird eingeschaltet. Wenn der
IF1-Befehl durch einen Übertragungsbzw. Transferbefehl hervorgerufen
wird, bei dem es sich um einen GO-Befehl handelt, dann sendet der Cachespeicher 750 eine Speicheranforderung
an die Systemschnittstelleneinheit 100 bezüglich des erwünschten Blockes von Informationen
aus, und ferner wird eine Adreßlistenzuordnung bezüglich des fehlenden Blockes vorgenommen. Die
von dem Speicher aufgenommenen Befehle werden zunächst in den Befehlspuffer eingeschrieben und dann
in den Cache speicher. Der angeforderte Befehl wird zu dem Prozessor 700 hin über die ZDI-Leitungen
übertragen, und der Prozessor 700 wird auf das Auftreten des folgenden T-Taktimpulses hin
eingeschaltet oder ausgelöst. Die übrigen Befehle des Blockes werden von dem Befehlspuffer über die
ZIB-Leitungen zu dem Prozessor 700 hin übertragen.
030025/0769
3. Wenn der Cachespeicher zu umgehen ist, liegt ein Treffer- bzw. Änderungssignal vor, wobei das
Voll/Leer-Bit für den betreffenden Block zurückgesetzt wird. Sämtliche
übrigen Operationen stimmen mit den Operationen des Ausweich-Falles
überein, allerdings abgesehen davon, daß keine Adreßlisten-Zuordnung
vorgenommen wird und daß der Block nicht in den Cachespeicher eingeschrieben wird.
DMEM =0101 - Laden des Befehlspuffers - Befehlsaufruf 2 (LD-I3UF-IF2): Der Ladebefehls-Pufferbefehl
wird dazu herangezogen, die Ebene des zweiten Blockes von Befehlen in das gerade benutzte Befehlsregister
zu laden. Der Prozessor 700 wird im Falle eines Ausweichzustands nicht abgeschaltet. Außerdem sind drei
mögliche Betriebsfolgen für diesen Befehl vorhanden.
1. Im Falle des Vorliegens eines Cache spe i ehe r-Trefferzustands
und bei Vorliegen keiner Umgehung wird die Ebene des zweiten Blocks der Befehle in das gerade benutzte
Befehlsregister geladen.
2. Im Falle eines Cachespeicher-Umgehungszustands und bei Vorliegen
keiner Umgehung wird in dem Fall, daß der IF1-Befehl als Ergebnis eines Transferbefehl-Stopzustands
ermittelt worden ist, die IF1-Operation gelöscht. In einem anderen Fall
als einem Stop-Zustand wird eine
Ö30025/0769
Adreßlisten-Zuordnung bezüglich des zweiten Blockes von Befehlen vorgenommen, und die aus den Umlaufschaltungen
her erhaltene L'bene wird in das gerade benutzte Befehlsregister eingeschrieben»
Der Cachespeicher 750 sendet eine Speicheranforderung an den
Speicher bezüglich des Blockes aus. Wenn die Befehle aufgenommen sind, werden sie zunächst in den
Befehlspuffer und später in den Cachespeicher 750 eingeschrieben. Wenn die Befehle benötigt werden,
werden sie aus dem Befehlspuffer ausgelesen und über die ZIB Leitungen
0-35 zu dem Prozessor 700 hin übertragen.
. Im Falle eines Nebenweges bzw. einer Umgehung wird in dem Fall, daß ein Treffer- bzw. Änderungszustand
vorhanden ist, das Voll/Leer-Bit für den betreffenden Block zurückgesetzt. Alle anderen
Operationen stimmen mit jenen Operationen im Falle einer Cachespeicher-Umgehung überein, allerdings
abgesehen davon, daß keine Adreßlisten-Zuordnung erfolgt und daß der Block nicht in den
Cachespeicher 750 eingeschrieben wird.
DMEM = 0110 - Laden eines Vierer-Befehls: Das Laden eines Vierer-Befehls
wird dazu herangezogen, die Blockadresse für Daten (nicht
Θ30025/0769
29A9571
Befehle) in das andere Befehlsregister zu laden. Dieser Vorgang ist ähnlich dem Vorgang beim Auftreten
des Signals IF2, allerdings abgesehen davon, daß die Adresse und die Ebene (Umlaufschaltungen
stellen die Ebene bereit, wenn ein Cachespeicher-Verfehlungszustand vorliegt) in das andere
Befehlsregister geschrieben werden. Wenn die Daten nicht in dem Cachespeicher 750 enthalten sind und
wenn der Prozessor 700 diese Daten anfordert, bevor sie aus dem Speicher aufgenommen worden
sind, dann wird der Prozessor angehalten oder stillgesetzt, bis die Daten aufgenommen sind.
DMEM=OI11 - Vor-Lesen (PR-RD): Der Vor-Lesebefehl wird dazu
herangezogen, den Cachespeicher mit den Daten zu laden, die der Prozessor 700 für die Verwendung
in der nahen Zukunft erwartet. Dabei sind die folgenden drei möglichen Betriebsablauffolgen
vorhanden:
1. Bei einem Cachespeicher-Treffer
und ohne Vorliegen einer Umgehung wird der Vorlesebefehl als ein keine Operation bewirkender
Befehl ausgeführt.
2. Bei einem Cachespeicher-Ausweichsignal und ohne Vorliegen einer Umgehung erzeugt der
Cachespeicher 750 eine
Ö30025/0769
294957t
Speicheranforderung bezüglich des Blockes, und außerdem wird
eine Adreßlistenzuordnung bezüglich des fehlenden Blocks vorgenommen. Wenn die Daten
von dem Speicher aufgenommen sind, werden sie in den Cachespeicher eingeschrieben. Der
Prozessor 700 wird bezüglich dieses Zustande festgehalten. 3. Bei einer Cachespeicher-Umgehung
wird der Vorlesebefehl als keine Operation bewirkender Befehl behandelt.
DI4EM=1000 - Einfachlesebefehl CRD-SNG):
Der Einfachlesebefehl wird dazu herangezogen, ein einzelnes Datenwort zu dem Prozessor 700 zu übertragen.
Dabei gibt es vier mögliche Betriebsablauffolgen für diesen Befehl.
1. Im Falle eines Cachespeicher-Treffers und ohne eine Umgehung wird das adressierte Wort aus
dem Cachespeicher 750 gelesen und auf das Auftreten des nächsten T-Taktimpulses hin
über die ZDI-Leitungen 0-35 zu dem Prozessor 700 hin übertragen.
2. Im Falle einer Cachespeicher-Ausweichung und ohne Vorliegen einer Umgehung wird der Prozessor
700 angehalten, und der fehlende Block wird in der
030025/0769
294957t
Adreßliste bezeichnet. Der Cachespeicher 750 überträgt die
Speicheranforderung zu dem Hauptspeicher hin. Die Datenwörter werden in den Cachespeicher
eingeschrieben, wenn sie aufgenommen werden. Wenn das angeforderte Datenwort aufgenommen wird, wird der
Prozessor 700 auf das Auftreten des folgenden T-Taktimpulses
hin eingeschaltet. Im Falle eines Cachespeicher-Treffers und einer Umgehung wird das Voll/Leer-Bit des
adressierten Blocks zurückgesetzt, und der Prozessor 700 wird abgeschaltet oder festgehalten.
Der Cachespeicher 750 überträgt die Anforderung bezüglich eines Wortes zu dem Speicher hin, und der Prozessor
700 wird auf das Auftreten des folgenden T-Taktimpulses hin eingeschaltet, und zwar auf
die Aufnahme des angeforderten Datenwortes hin. Das Datenwort wird nicht in den Cachespeicher
750 eingeschrieben. Bei einer Cachespeicher-Ausweichung und einer Umgehung laufen dieselben Operationen
ab wie bei Vorliegen des Cachespeicher-Treffers und einer Umgehung, allerdings abgesehen
davon, daß das Voll/Leer-Bit des adressierten Blocks nicht geändert wird.
030025/0769
DMEM=I001 - Löschlesebefenl (,RD-CLH):
Der Löschlesebefehl bzw. Leselöschbefehl wird dazu herangezogen, ein Datenwort aus dem
Speicher zum Prozessor 700 hin zu übertragen und außerdem dieses Datenwort aus dem betreffenden
Speicher zu löschen. Dabei sind zwei mögliche Betriebsablauffolgen bezüglich dieses Befehls
vorhanden.
1. Bei einem Cachespeicher-Treffer wird das Voll/Leer-Bit bezüglich
dieses Blockes zurückgesetzt, und der Prozessor 700 wird abgeschaltet.
Der Cachespeicher 750 führt eine Speicheranforderung bezüglich eines Datenwortes aus.
Der Speicher löscht den betreffenden Speicherplatz. Wenn das Wort aufgenommen ist, überträgt
der Cachespeicher 750 das Wort zum Prozessor 700 hin und schaltet den Prozessor 700 mit
dem nächsten T-Taktimpuls ein. Das Wort wird nicht in den Cachespeicher 750 eingeschrieben.
2. Bei einer Cachespeicher-Ausweichung laufen dieselben Operationen
wie bei Vorliegen eines Cachespeicher-Treffers ab, allerdings abgesehen davon, daß keine
Änderung der Voll/Leer-Bits des adressierten Blocks erfolgt.
DMEM=1010 - Lesedoppel-Befehl (RD-DBL): Der Lesedoppel-Befehl wird dazu heran-
Θ30025/0769
294957t
gezogen, zwei Datenwörter zum Prozessor 700 hin zu übertragen. Dabei gibt es zwei Typen von
Lesedoppel-Befehlen, die sich in der Reihenfolge unterscheiden, in der die Datenwörter dem Prozessor
700 zugeführt werden. Wenn die Leitung DSZ1 ein Binärsignal 11O" führt, dann ist die
Reihenfolge gegeben durch ein ungeradzahliges Wort und ein geradzahliges Wort. Wenn die
Leitung DSZ1 ein Binärsignal "1" führt, dann ist die Reihenfolge gegeben durch ein geradzahliges
Wort und dann durch das Auftreten eines ungeradzahligen Wortes. Dabei existieren vier mögliche
Betriebsablauffolgen für diesen Befehl.
1. Bei einem Cachespeicher-Treffer und Fehlen einer Umgehung wird
das erste Wort zu dem Prozessor 700 hin über die ZDI-Leitungen
0-35 mit Auftreten des folgenden T-Taktimpulses übertragen.
Auf das Auftreten des nächsten T-Taktimpulses hin wird das zweite Datenwort über
die ZDI-Leitungen 0-35 zu dem Prozessor 700 hin übertragen.
2. Bei einer Cachespeicher-Ausweichung und Fehlen einer Umgehung wird der Prozessor 700
abgeschaltet, und eine Adreßlistenzuordnung wird bezüglich
Θ30025/0769
2949871
des Blockes vorgenommen, der das adressierte Wortpaar enthält. Der Cachespeicher 750
überträgt die Speicheranforderung an die Systemschnittstelleneinheit 100 bezüglich
des Blockes. Wenn die Datenwörter aufgenommen sind, werden sie in den Cachespeicher
eingeschrieben. Wenn das angeforderte Wortpaar verfügbar ist, wird das erste Wort zu dem
Prozessor 700 hin übertragen, der auf das Auftreten des nachfolgenden
T-Taktimpulses hin eingeschaltet oder ausgelöst wird. Der Cachespeicher 750
überträgt das zweite Wort zu dem Prozessor 700 hin auf das Auftreten des nächsten T-Taktimpulses
hin.
Bei Vorliegen eines Cachespeicher-Treffers und einer Umgehung wird das Voll/Leer-Bit
des adressierten Blocks zurückgesetzt, und der Prozessor 700 wird abgeschaltet. Der Cachespeicher 750 überträgt
die Anforderung bezüglich der beiden Datenwärter zu dem Speicher hin. Sobald die beiden
Wörter verfügbar sind, wird der Prozessor 700 eingeschaltet, und das erste Datenwort wird diesem
Prozessor auf das Auftreten des folgenden T-Taktimpulses hin
Ö30025/0769
*9A9571
zugeführt. Der Pi'ozessor 700 nimmt das zweite Datenwort auf
das Auftreten des nächsten T-Taktimpulses hin auf. Die
Datenwörter werden nicht in den Cachespeicher eingeschrieben. 4. Bei einer Cachespeicher-Ausweichung
und einer Umgehung laufen dieselben Operationen wie im Falle des Vorliegens eines Cachespeicher-Treffers
und einer Umgehung ab, allerdings abgesehen davon, daß keine Änderung der Voll/Leer-Bits
erfolgt.
DMEM=1011 - Fernlesebefehl (RD-RMT):
Der Fernlesebefehl wird dazu herangezogen, die normalen Cachespeicher-Lesevorgänge
zu umgehen. Wenn der Befehl aufgenommen ist, wird der Prozessor 700 abgeschaltet, und
dio Anforderung wird zu dem Hauptspeicher hin übertragen. Wenn das
angeforderte Wortpaar aus dem Speicher abgeholt ist, dann wird dem Prozessor 700 das erste Wort
zugeführt, der auf das Auftreten des nachfolgenden T-Taktimpulses hin eingeschaltet wird. Das zweite
Datenwort wird dem Prozessor 700 auf das Auftreten des nächsten T-Taktimpulses hin zugeführt. Die
Reihenfolge, in der die Datenwörter übertragen werden, ist so, daß erst ein ungeradzahliges Wort
und dann ein geradzahliges Wort
030025/0769
auftreten. Innerhalb des Cachespeichers 750 erfolgen keine Änderungen.
DMEM=HOO - Einzelschreibbefehl (WRT-SNG):
Der Einzelschreibbefehl wird dazu herangezogen, Daten in den Speicher
einzuschreiben. Dabei gibt es zwei mögliche Betriebsablauffolgen bezüglich
dieses Befehls.
1. Bei einem Cachespeicher-Treffer überträgt der Cachespeicher 750
die Anforderung zu dem Speicher hin. Wenn diese Anforderung angenommen wird, wird das Datenwort
zu dem Speicher übertragen. Das Datenwort wird außerdem in den Cachespeicher 750 eingeschrieben.
2. Bei einer Cachespeicher-Ausweichung
laufen dieselben Operationen ab wie bei einem Cachespeicher-Treffer, allerdings abgesehen davon, daß keine
Änderung bezüglich des Cachespeichers 750 erfolgt.
DMEM=I110 - Doppelschreibbefehl CWRT-DBL):
Der Doppelschreibbefehl wird dazu herangezogen, zwei Datenwörter in
den Speicher einzuschreiben. Dieser Befehl wird in ähnlicher Weise ausgeführt wie der EinzelSchreibbefehl,
allerdings abgesehen davon, daß zwei Wörter anstelle eines Wortes übertragen/eingeschrieben
werden.
»30025/0769
- 1JST-
%cr
HOLD-C-CU CANCEL-C CAC-FLUSH DMEM=H 11 - Fern-Schreibbefehl
(WRT-RMT):
Der Fern-Schreibbefehl wird dazu herangezogen, die normalen Cachespeicher-Schreibvorgänge
zu umgehen, und zwar insofern, als dann, wenn die adressierten Wörter in dem Cachespeicher 750
vorhanden sind, diese Wörter nicht aktualisiert werden. Der Cachespeicher 750 überträgt die
Anforderung zu dem Speicher hin, und wenn sie dort angenommen ist, werden zwei Datenwörter zu dem
Speicher hin übertragen. Diese Leitung verläuft vom Prozessor 700 zu dem Cachespeicher
750 hin. Wenn diese Leitung ein Binärsignal 1 führt, dann legt dieses Steuersignal fest, daß
der Cachespeicher 750 als im HOLD-Zustand bezüglich Anforderungen oder Datenübertragungen
anzunehmen ist. Diese Leitung verläuft vom Prozessor 700 zu dem Cachespeicher 750. Wenn diese Leitung ein Binärsignal
1 führt, zeigt das betreffende Steuersignal an, daß der Cachespeicher 750 jeglichen
Prozessorbefehl unberücksichtxgt lassen sollte, der gerade ausgeführt wird.
Diese Leitung verläuft vom Prozessor 700 zu dem Cachespeicher 750 hin. Wenn diese Leitung ein
Binärsignal 1 führt, wird ein
030025/0769
294857t
Durchlauf des Cachespeichers begonnen (dies bedeutet, daß der Cachespeicher 750 in einen Zustand
gebracht wird, in dem er leer erscheint, indem sämtliche Voll/Leer-3its zurückgesetzt
werden).
RD-SVEN Diese Leitung verläuft von dem
Prozessor 700 zu dem Cachespeicher 750 hin. Wenn der Cachespeicher
eine Doppelwortanforderung an die Systemschnittstelleneinheit hin richtet, dann wird das geradzahlige Wort in
einem Spezialregister (REVN) aufbewahrt. Wenn die Leitung RD-EVEN ein Binärsignal 1 führt,
dann wird der Inhalt des REVN-Registers über den ZDIN-Schalter
an die ZDI--Leitungen abgegeben.
ZADO 0-23 Diese vierzig, Signale in einer
RADO 24-35, Richtung übertragenden Leitungen
P0-P3 verlaufen vom Prozessor 700 zu
dem Cachespeicher 750 hin. Die betreffenden Leitungen werden dazu herangezogen, ZAC-Befehle
und Schreibdatenwörter zum Cachespeicher 750 hin zu übertragen. Wenn die Leitung DREQ CAC ein
Binärsignal 1 führt, werden der ZAC-Befehl und im Falle eines
Schreibbefehls die Schreibdatenwörter während eines oder zweier Zyklen auf den ZAC-Befehl hin
übertragen. Die auf den DMEM-Leitungen codiert auftretenden Befehle
030025/0769
können die gleichen Befehle sein wie der ZAC-Befehl.
RD-IBUF Diese Leitung verläuft vom Pro
zessor 700 zu dem Cachespeicher 750 hin. Wenn diese Leitung ein Binärsignal 1 führt, so zeigt
diese Leitung an, daß der Prozessor 700 den Befehl von dem Befehlsregister RIRA her aufnimmt.
In den meisten Fällen wird der betreffende Befehl dazu herangezogen, das Abholen des nächsten
in das Register RIRA zu ladenden Befehls zu beginnen.
DZD 0-3 Diese vier Leitungen vcrDaufen von
dem Prozessor 700 zu dem Cachespeicher 750 hin. Sie übertragen Zonenbit-Signale des ungeradzahligen
Worts bezüglich der Doppelschreibbefehle .
BYP-CAC Diese Leitung verläuft von dem
Prozessor 700 zu dem Cachespeicher 750 hin. Wenn sie ein Binärsignal
1 führt, dann wird der Cachespeicher 750 veranlaßt, Datenwörter aus dem Hauptspeicher
auf Lesebefehle hin anzufordern. Wenn ein Cachespeicher-Treffer auftritt, wird der die angeforderten
Daten enthaltende Block aus dem Cachespeicher 750 herausgeführt, indem das damit
verbundene VoIl/Leer-Bit zurückgesetzt
wird. Bezüglich der Einzelschreib- oder Doppelschreibbefehle werden die Daten in den
Cachespeicher 750 eingeschrieben,
Ö30025/0769
WRT-SGN
FPIM-EIS DSZ1
NO-GO
wenn ein Cachespeicher-Treffer auftritt.
Diese Leitung verläuft von dem Cachespeicher 750 zu dem Prozessor 700 hin. Sie wird dazu
herangezogen, dem Prozessor 700 während der Schreibbefehle zu signalisieren, daß der Cachespeicher
750 die übertragung der ZAC-Befehle und Datenwörter zu der Systemschnittstelleneinheit
100 hin beendet hat. Diese Leitung verläuft von dem Prozessor 700 zu dem Cachespeicher
750 hin. Wenn sie ein Binärsignal 1 führt, wird dem Cachespeicher 750 signalisiert, daß
der Prozessor 700 einen IFI-Befehl für zusätzliche EIS-Deskriptoren
abgibt.
Diese Leitung verläuft von dem Prozessor 700 zu dem Cachespeicher 750 hin. Der Zustand dieser
Leitung legt für den Cachespeicher 750 fest, in welcher Reihenfolge
die Wörter an den Prozessor 700 auszusenden sind, wenn ein Doppellesebefehl ausgeführt
wird.
Diese Leitung verläuft von dem Prozessor 700 zu dem Cachespeicher 750 hin. Wenn sie ein Binärsignal
1 führt, zeigt dies an, daß der Prozessor 700 einen übertragungs- bzw. Transferbefehl ausführt,
der ein Befehl NO-GO ist. Dadurch wird dem Cachespeicher
0 025/076
RD-IBUF/ZDI
FRD-DBL FODD
-sage
signalisiert, daß er den IFI-Befehl löschen sollte, den er im
Ausweichzustand aufgenommen hatte, und daß außerdem der IF2-Befehl
unberücksichtigt bleiben sollte, der gerade an die DMEM-Leitungen abgegeben wird.
Diese Leitung verläuft von dem Prozessor 700 zu dem Cachespeicher hin. Sie bewirkt, daß der Cachespeicher
750 einen Zugriff zu dem Datenwort unter der Adresse vornimmt, die in dem anderen Befehlsregister
enthalten ist, und diese Daten an die ZDI-Leitungen abgibt. Mit Rücksicht auf einen ausstehenden
LDQAD-Befehl hält der Cachespeicher 750 den Prozessor 700 an, wenn die Leitung RD-IBUF/ZDI ein
Binärsignal 1 führt.
Diese Leitung verläuft von dem Prozessor 700 zu dem Cachespeicher 750 hin. Sie signalisiert dem
Cachespeicher 750 im Voraus, daß der Prozessor 700 die Ausführung einer Doppelleseoperation anfordert.
Diese Leitung verläuft von dem Prozessor 700 zu dem Cachespeicher hin. Sie wird in Verbindung mit der
Leitung FRD-DBLE dazu herangezogen, die Reihenfolge der angeforderten Wörter zu signalisieren. Wenn diese
Leitung ein Binärsignal 1 führt, zeigt dies an, daß die Reihenfolge
ungeradzahlig - geradzahlig ist.
030025/0769
ZDI 0-35 Diese vierzig Leitungen, die Signa-
P0,P1,P2,P3 Ie in einer Richtung übertragen,
verlaufen von dom Cachespeicher 750
zu dem Prozessor 700 hin. Sie geben Daten von dem Cachespeicher 750 an
den Prozessor 700 ab.
ZIB 0-35 Diese vierzig Leitungen, die Signa-
PO,P1,P2,P3 Ie in einer Richtung übertragen,
verlaufen von dem Cachespeicher 750 zu dem Prozessor 700 hin. Sie geben Befehle an den Prozessor 700 ab.
BUF-EMPTY Diese Leitung verläuft von dem
Cachespeicher 750 zu dem Prozessor 700 hin. Wenn sie ein Binärsignal
1 führt, zeigt dies an, daß der Cachespeicher 750 den letzten Befehl aus dem vorliegenden Befehlsblock übertragen hat.
BUF-RDY Diese Leitung verläuft von dem Cache
speicher 750 zu dem Prozessor 700 hin. Wenn sie ein Binärsignal 1 führt,
zeigt dies an, daß zumindest ein Befehl in dem vorliegenden Befehlsblock in dem Cachespeicher 750 vorhanden
ist. Das Auftreten eines Binärsignals 0 auf dieser Leitung zeigt einen NicntDereitschaftszustand
dann an,
1. wenn die Befehlsadresse
eines IF1-Blockes in dem Cachespeicher auf den ersten Befehl eines IF2-Blockes umschaltet,
der nicht in dem Cachespeieher und nicht in dem IBUF2-Buffer enthalten ist,
2. und wenn Befehle aus dem IBUF1-Puffer oder aus dem IBUF2-Puffer
030025/0769
BUF-FULL
CP STOP
abgeholt werden und wenn der nächste aufzurufende Befehl in
einem Zwei—Wort-Puffer enthalten ist, welcher yqn dem Speicher
nicht aufgenommen worden ist.
Diese Leitung verläuft von dem Cachespeicher 750 zu dem Prozessor 700 hin. Sie zeigt an, daß zumindest
vier Befehle in dem vorliegenden Befehlsblock vorhanden sind oder daß zumindest ein Befehl
und eine ausstehende IF2-Anforderung vorliegen. Diese Leitung verläuft von dem Cachespeicher 750 zu dem Prozessor 700 hin. Wenn sie ein Binärsignal
1 führt, zeigt dies an, daß der Prozessor 700 angehalten ist oder bezüglich seiner Operation
einen Warte- oder Haltzustand erfordert. Im Falle eines Leseausweichzustands infolge eines PrQ"
zessorbefehls wird der Prozessor auf den anschließend auftretenden
T-Taktzyklusimpuls hin festgehalten» Wenn der Prozessor ausgelöst wird,
führt die Leitung DATA RECOV ©in Binärsignal 1, wodurch die betroffenen Prozessor-Register wieder
eine Abtastung erfahren, Wenn die. Leitung RDIBUF/ZDI ein Binärsignal
1 führt, bevor die Daten aus <j§m
Speicher aufgenommen sind, dann Wir4
der Prozessor 700 vor dem anschließend auftretenden T-Taktimpuls festgehalten. Wenn er ausgelöst wird, werden
030025/0769
2149571
die angeforderten Daten für den Prozessor 700 auf den ZDI-Leitungen
verfügbar gemacht und auf den anschließend auftretenden T-Taktimpuls hin verwendet.
DATA-RECOV Diese Leitung verläuft von dem
Cachespeicher 750 zu dem Prozessor 700 hin. Sie wird dazu herangezogen,
die Prozessor-Register nach erfolgter Stillsetzung des Prozessors 700 wieder abzutasten, und
zwar auf die Ermittelung eines Cachespeicher-Ausweichzustands
oder eine Lese-Umgehungszustands hin. Am Ende des Zyklus, innerhalb dessen auf der Leitung DREQ GAC
ein Binärsignal 1 auftritt, wird der Ausweichzustand ermittelt, wobei der Prozessor 700 jedoch nicht
stillgesetzt werden kann, und zwar bis nach Auftreten des folgenden T-Taktimpulses. Demgemäß werden
Fehldaten/Befehle in die Prozessorregister von den Leitungen ZDI/ZIB her eingetastet. Wenn die
geforderten Daten/Befehle verfügbar werden, wird an die Leitung DATA RECOV ein Binärsignal 1 abgegeben,
um die Register wieder abzutasten, die während der letzten Cachespeicher-Anforderung
abgetastet wurden.
ZPTR-OUT 0-1 Diese beiden Leitungen verlaufen
von dem Cachespeicher 750 zu dem Prozessor 700 hin. Sie führen derart codierte Signale, daß die
030025/0769
beiden Bits niedrigster Wertigkeit der Adresse des Befehls spezifiziert
sind, der in dem RIRA-Befehlsregister oder in dem I-Puffer enthalten ist.
Im folgenden wird der Prozessor 700 gemäß Fig. 2 generell beschrieben. Wie aus Fig. 2 ersichtlich ist, umfaßt der
Hauptprozessor 700 eine AblaufSteuereinheit 701, eine
Steuereinheit 704, eine Ablauf- bzw. Ausführungseinheit 714, eine Zeicheneinheit 720, eine Hilfs-Rechen-
und Steuereinheit 722 und eine Multiplikations/Divisions-Einheit
728. Diese Einheiten sind in der aus Fig.2 ersichtlichen Weise miteinander verbunden. Die Steuereinheit
704 weist darüber hinaus eine Anzahl von Verbindungen mit der Cachespeichereinheit 750 auf, wie dies dargestellt
ist.
Die Ablaufsteuereinheit 701 umfaßt eine Ausführungs-Steuer speicher- Adre ssenvorbereitungs- und Verzweigungseinheit 701-1 und einen Ablaufsteuerspeicher 701-2. Der
Speicher 701-2 und die Einheit 701-1 sind als über Busleitungen 701-3 und 701-6 miteinander verbunden dargestellt.
Die Steuereinheit 704 weist eine Steuerlogikeinheit 704-1 einen Steuerspeicher 704-2, eine Adressenvorbereitungs-
030025/0769
einheit 704-3, Daten- und Adressenausgabeschaltungen
704-4 und einen XAQ-Registerbereich 704-5 auf, der mit den betreffenden Einheiten in der ersichtlichen Weise
verbunden ist.
Wie aus Fig. 2 ersichtlich ist, führt von der Systemschnittstelleneinheit
600 eine Anzahl von Eingangsleitungen zu der Cachespeichereinheit 750 hin. Die Leitungen
dieser Schnittstelleneinrichtung sind zuvor im einzelnen beschrieben worden. In Verbindung mit dem Betrieb der
Cachespeichereinheit 750 ist jedoch anzumerken, daß bestimmte dieser Leitungen in der nachstehend angegebenen
Weise speziell codierte Signale führen.
1. MITS 0-3 für Lesevorgänge sind wie folgt codiert:
Bits 0-1 = 00,
Bits 2-3 = Transitblockpufferadresse, die den ZAC-Befehl für die vorliegende Leseoperation enthält.
Für die Schreiboperation sind die Bits 0-3 = ungeradzahlige Wortzone.
2. MIPS-Leitungen führen folgende codierte Signale:
Bit 0=0,
Bit 1=0, geradzahlige Wortpaare (Worte 0, 1)
Bit 1=1 ungeradzahlige Wortpaare (Worte 2, 3)
Bits 2-3 = Transitblockpufferadresse, die den ZAC-
Befehl für die empfangenen Daten enthält.
Im Hinblick auf die Schnittstellenleitungen DPS 00-35, P0-P3 sei angemerkt, daß diese Leitungen Lesedaten zu der
Cachespeichereinheit 750 hin führen. Die Leitungen
DTS 00-35, P0-P3 werden dazu herangezogen,
Daten aus dem Cache speicher 750 zu der Systemschnittstelleneinheit 100 hin zu übertragen.
Die Steuereinheit 704 nimmt die notwendige Steuerung zur Ausführung von Adressenvorbereitungsoperationen, Befehls-
030025/0769
aufruf/Ausführungsoperationen und bezüglich der sequentiellen
Steuerung der verschiedenen Betriebszyklen und/oder Maschinenzustände vor. Die Steuerung wird durch Verknüpfungsschaltungen
des Blocks 704-1 und durch die AblaufSteuereinheit 701 bezüglich der verschiedenen
Teile der Steuereinheit 704 ausgeführt.
Der XAQ-Registerbereich 704-5 umfaßt eine Anzahl von
Sichtprogrammregistern, wie Indexregister, ein Akkumulatorregister
und ein Quotientenregister. Andere Sichtprogrammregister, wie der Befehlszähler und Adreßregister,
sind in der Adressenvorbereitungseinheit 704-3 enthalten.
Wie aus Fig. 2 hervorgeht, nimmt der Bereich 704-5 Signale von der Einheit 704-3 auf, die kennzeichnend sind für den
Inhalt des Befehlszählers. Diese Signale gelangen über die Leitungen RIC 00-17. Außerdem werden über die Leitungen
ZRESA 00-35 Ausgangssignale von der Ablaufeinheit 714
abgegeben. Diese Signale entsprechen den Ergebnissen der Operationen, die auf die verschiedenen Operanden hin
ausgeführt sind. Der Bereich 704-5 erhält ferner ein Ausgangssignal von der Hilfs-Rechen- und Steuereinheit her
über die Leitungen RAAUO-8 zugeführt.
Der Bereich 704-5 gibt Signale ab, die kennzeichnend sind für den Inhalt eines der Register, die innerhalb des betreffenden
Bereiches vorgesehen sind. Diese Signale werden als Eingangsgröße an die Adressenvorbereitungseinheit 704-3
abgegeben. Die Adressenvorbereitungseinheit bzw. Adressenbildungseinheit
704-3 leitet die betreffende Information über einen Schalter zu der Ausführungseinheit 714 hin, und
zwar über die Leitungen ZDO 0-35. In entsprechender Weise kann der Inhalt bestimmter Register der in dem Bereich 704-5
enthaltenen Register zu der Ablaufeinheit 714 hin über die
Leitungen ZEB 00-35 übertragen werden. Schließlich kann der Inhalt von ausgewählten Registern dieser Register aus dem
030025/0769
Bereich 704-5 zu der Multiplikations/Divisions-Einheit
728 hin über die Leitungen ZAQ 00-35 übertragen werden.
Die Adressenbildungseinheit bzw. Adressenvorbereitungseinheit 704-3 erzeugt Adressen aus dem Inhalt der verschiedenen
Register, die in der betreffenden Einheit enthalten sind, und gibt die sich ergebenden Verknüpfungssignale, effektiven Adressen und/oder absoluten Adressen
zur Verteilung an die anderen Einheiten über die Leitungen ASFA 00-35 ab. Die Adressenbildungseinheit 704-3
nimmt die Ergebnisse der Operationen auf, die auf zwei Operanden hin durch die Ablaufeinheit 714 ausgeführt worden
sind. Diese Srgebnissignale werden über die Leitungen ZRESB 00-35 aufgenommen. Die Einheit 704-3 nimmt
Signale auf, die kennzeichnend sind für den Inhalt zweier Basiszeigerregister, und zwar von der Steuerlogikeinheit
704 her über die Leitungen RBASA und RBASBO-1 Die Ausgangssignale der Multiplikations/Divisions-Einheit
728 werden an die Adressenbildungseinheit 704-3 abgegeben. Schließlich wird der Inhalt eines Sekundär-Befehlsregisters
(RSIR) als Eingangssignal über die Leitungen RSIR 00-35 an die Einheit 704-13 abgegeben.
Die Daten- und Adressenausgabeschaltungen 704-4 erzeugen die Cachespeicher-Adressensignale, die über die Leitungen
RADO/ZADO 00-35 an die Cache Speichereinheit 750 abgegeben werden. Diese Adressensignale entsprechen den
Signalen, die an eine Eingangsleitung der Reihe von Eingangsleitungen ZDI 00-35, ASFA 00-35 und ZRESB 00-35
abgegeben sind. Dabei werden die betreffenden Leitungen durch Schalter ausgewählt, die in den Schaltungen des
Blockes 704-4 enthalten sind. Diese Schaltungen werden nachstehend im einzelnen erläutert werden.
Die Steuerlogikeinheit 704-1 stellt Datenwege bereit, die eine Schnittstellenbeziehung mit den verschiedenen
030025/0769
Einheiten aufweisen, welche in der Cachespeichereinheit 750 enthalten sind. Wie hier im einzelnen beschrieben
sorgen die Leitungen ZIB 00-35 für eine Schnittstelle zu einem Befehlspuffer, der in dem Cachespeicher
750 enthalten ist. Die Leitungen ZDI 00-35 werden dazu herangezogen, Datensignale von dem Cachespeicher 750
zu der Steuerlogikeinheit 704-1 zu übertragen. Die ZPTROUT-Leitungen werden dazu herangezogen, eine
Adresseninformation aus dem Cachespeicher 750 zu der Einheit 704-1 hin zu übertragen. Andere Signale werden
über die anderen Daten- und Steuerleitungen der Cachespeicher-Zentralprozessor-Schnittstelleneinrichtung
704 abgegeben. Diese Leitungen umfassen die in Fig. 2 gesondert dargestellte Leitung CP-STOP.
Wie aus Fig. 2 ersichtlich, liefert die Steuerlogikeinheit 704-1 eine Anzahl von Ausgangssignalgruppen. Diese
Ausgangssignale umfassen den Inhalt bestimmter Register, wie beispielsweise eines Basisbefehlsregisters(RBIR),
dessen Inhalt als Eingangsgröße dem Steuerspeicher 704-2 über die Leitungen RBIR 18-27 zugeführt wird. Die Steuerlogikeinheit
704-1 nimmt bestimmte Steuersignale auf, die aus dem Steuerspeicher 704-2 ausgelesen und über die
Leitungen CCSDO 13-31 übertragen werden.
Die Steuerlogikeinheit 704-1 umfaßt ferner ein sekundäres
Befehlsregister (RSIR), welches parallel mit dem Basisbefehlsregister zu Beginn einer Befehlsverarbeitung geladen
wird. Der Inhalt des sekundären Befehlsregisters RSIR 00-35 wird, wie zuvor erwähnt, als Eingangsgröße der Adressenbildungseinheit
704-3 zugeführt. Darüber hinaus wird ein Teil des Inhalts des sekundären Befehlsregisters als Eingangsgröße
der Hilfs-Rechensteuereinheit 722 über die Leitungen
RSIR 1-9 und 24-35 zugeführt.
Der Steuerspeicher 704-2 bewirkt, wie hier erläutert,
eine Anfangsdecodierung von Programmbefehls-Operations-
030025/0769
codes, weshalb er so ausgelegt ist, daß er eine Anzahl von Speicherplätze^ 1024), und zwar einen für jeden
möglichen Befehlsoperationscode, aufweist.
Wie bereits erwähnt, werden die an die Leitungen RBIR 18-27 abgegebenen Signale als Eingangssignale dem
Steuerspeicher 704-2 zugeführt. Durch diese Signale wird einer der 1024 möglichen Speicherplätze ausgewählt.
Der Inhalt des jeweils ausgewählten Speicherplatzes wird an die Leitungen CCSDO 13-31 und CCSDO 00-12 abgegeben,
wie dies aus Fig. 2 ersichtlich ist. Die an die Leitungen CCSDO 00-12 abgegebenen Signale entsprechen den
Adressensignalen, die zur Adressierung der Ablaufsteuereinheit 701 herangezogen werden, wie dies hier erläutert
wird.
Die übrigen Bereiche des Prozessors 700 werden nunmehr kurz beschrieben. Die Ablaufeinheit 714 sorgt für einen
Befehlsablauf, im Zuge dessen die Einheit 714 Rechen- und/oder Verschiebeoperationen auf Operanden hin ausführt,
die von den verschiedenen Eingangsgrößen ausgewählt sind. Die Ergebnisse derartiger Operationen werden ausgewählten
Ausgängen zugeführt. Die Ablaufeinheit 714 nimmt Daten von
einer Dateneingangsbusleitung her auf, die den Leitungen RDI 00-35 entspricht. Die Quelle dieser Daten ist die
Steuerlogikeinheit 704-1. Der Inhalt der Akkumulator- und Quotientenregister, die in dem Bereich 704-5 enthalten
sind, wird an die Ablaufeinheit 714 über die zuvor erwähnten
Leitungen ZEB 00-35 abgegeben. Die an die Eingangsbusleitungen ZDO 00-35 von der Adressenbildungseinheit
704-3 abgegebenen Signale werden über in der Ablaufeinheit 714 enthaltene Schalter al,s Ausgangssignale an die
in Fig. 2 dargestellten Leitungen ZRESA 00-35 und ZRESB 00-35 abgegeben. Darüber hinaus nimmt die Ablaufeinheit
714 eine Reihe von Notizblockspeicher-Adressensignalen von der Hilfs-Rechen- und Steuereinheit 722 her
auf, welche Signale über die Leitungen ZRSPA 00-06
030025/0769
abgegeben werden. Überdies gibt die Einheit 722 eine Verschiebeinformation über die Leitungen ZRSC 00-35
an die Einheit 714 ab.
Die Zeicheneinheit 720 wird dazu herangezogen, Zeichenbefehle auszuführen, die solche Operationen erfordern,
wie die übersetzung und Aufbereitung von Datenfeldern. Wie hier erläutert, werden diese Befehlstypen als erweiterte
Befehlssatz-(EISJ-Befehle bezeichnet. Derartige
Befehle, die die Zeicheneinheit 720 ausführt, umfassen die ÜbertragungenAbtast- und Vergleicherbefehle. Signale,
die kennzeichnend sind für Operanden, werden über die Leitungen ZRESA 00-35 abgegeben. Informationen bezüglich
des Typs der Zeichenposition innerhalb eines Wortes und bezüglich der Anzahl der Bits werden an die Zeicheneinheit
720 über die Eingangsleitungen ZDB 00-07 abgegeben.
informationen, die kennzeichnend sind für die Ergebnisse bestimmter Datenoperationen, werden über die Leitungen
ZOC 00-08 an die Einheit 722 abgegeben. Eine derartige
Information umfaßt Exponentendaten und Daten in Hexadezimalform. Die Zeicheneinheit 720 gibt Ausgangs-Operandendaten
und eine Steuerinformation an die Einheit 722 bzw. an die Einheit 728 über die Leitungen
RCHU 00-35 ab.
Die Hilfs-Rechen- und Steuereinheit 722 führt Rechenoperationen
auf eine Steuerinformation hin aus, wie auf Exponenten hin, die bei Gleitkommaoperationen verwendet
werden. Außerdem berechnet die betreffende Einheit Operandenlängen und Zeiger und erzeugt eine Zählinformation.
Die Ergebnisse dieser Operationen werden über die Leitungen ZRSPA 00-06 und über die Leitungen ZRSC 00-06,
die oben erwähnt worden sind, an die Ablaufeinheit 714
abgegeben. Die Informationssignale, die Zeichen entsprechen,
wie 9-Bit-Zeichen, 6-Bit-Zeichen, aus eingangsseitigen Hexadezimaldaten umgesetzten Dezimaldaten,
030025/0769
Quotienteninformationen und Vorzeicheninformationen, werden über die Leitungen RAAU 00-08 an den Bereich
704-5 abgegeben.
Wie aus Fig. 2 ersichtlich ist, nimmt die Einheit 722 eine Anzahl von Eingangssignalen auf. Die Zeichenzeigerinformation
wird über die Leitungen ASFA 33-36 zugeführt. Eine numerische EIS-Maßstabs-Information sowie
eine alphanumerische Feldlängeninformation werden über dio Leitungen RSIR 24-35 der Einheit 722 zugeführt.
Weitere Signale, die sich auf das Aufrufen von speziellen Befehlen beziehen, werden über die Leitungen RSIR 01-09
zugeführt. Die Exponentensignale für die üleitkommadaten
werden der Einheit 722 über die Leitungen ZOC 00-08 zugeführt, während Gleitkomma-Exponentendatensignale
von der Einheit 704-1 über die Leitungen RDI 00-08 zugeführt werden. Verschiebe-Zählinformationssignale
für die verschiedenen Befehle (z.B. binäre Verschiebebefehle) werden an die Einheit über die
Leitungen RDI 11-17 abgegeben. Im Hinblick auf die an die Leitungen RCHU 00-35 abgegebenen Eingangssignale
sei bemerkt, daß die Leitungen 24-35 Signale entsprechend der Länge der EIS-Befehlsfelder führen, während die Leitungen
18-23 Adressenmodifikationssignale zu der Einheit 722 hin führen.
Die letzte Einheit ist die Multiplikation/Divisions-Einheit 728, die für eine schnelle Ausführung von Multiplikations-
und Divisionsbefehlen sorgt. Diese Einheit kann von herkömmlichem Aufbau sein und beispielsweise
in der Form ausgeführt sein, wie die in der US-PS 40 41 292 beschriebene Multiplikationseinheit.
Die in Fig. 2 angedeutete Einheit 728 nimmt über die Leitungen RCHU 00-35 Multiplikator-, Dividend- und
Divisor-Eingangssignale auf. Die Multiplikanden-Eingangssignale aus dem Registerbereich 704-5 werden über
die Leitungen ZAQ 00-35 zugeführt. Die Ergebnisse der
030025/0769
durch die Einheit 728 ausgeführten Rechenvorgänge werden als Ausgangssignale an die Leitungen ZMD 00-35
abgegeben.
Wie bereits erwähnt, überträgt die Cachespeichereinheit 750 Daten und Steuersignale zu der Systemschnittstelleneinheit
100 und nimmt derartige Signale von dieser Einheit her über die Datenschnittstellenleitung
auf. Die Cachespeichereinheit 750 überträgt Daten und Steuersignale zu dem Prozessor 700 und empfängt derartige
Informationen von diesem Prozessor über die Leitungen der Schnittstelleneinrichtung 604. Schließlich nimmt die
Cachespeichereinheit 750 Adressen und Datensignale von den Schaltungen 704-4 über die Leitungen RADO/ZADO 00-35
auf.
im folgenden wird der Prozessor 700 im einzelnen beschrieben. Bestimmte Bereiche der vorgesehenen Bereiche, die
den in Fig. 2 dargestellten Prozessor bilden, werden nunmehr unter Bezugnahme auf Fig. 3a bis 3e im einzelnen
beschrieben.
Aus Fig. 3a und 3b ist ersichtlich, daß der Prozessor
zwei Steuerspeicher aufweist: (1) Den Steuereinheit-Steuerspeicher
704-200, der einen Teil der Steuereinheit 704 bildet,und (2) den AblaufSteuerspeicher 701-3,
der in der AblaufSteuereinheit 701 enthalten ist.
Der cachspeicherorientierte Prozessor 700 enthält bei der bevorzugten Ausführungsform der vorliegenden Erfindung
ein dreistufiges sogenannte Pipeline-System. Dies bedeutet, daß der Prozessor 700 zumindest drei Prozessorzyklen
erforderlich macht, um die Verarbeitung eines gegebenen Programmbefehls zu beenden, und daß er einen
neuen Befehlsbeginn dieses Zyklus ausgeben kann. Damit kann die Anzahl der Programmbefehle in einer bestimmten
Verarbeitungsstufe zu irgendeinem vorgegebenen Zeitpunkt vorliegen.
030025/0769
Gemäß der bevorzugten Ausführungsform enthält der Prozessor
700 folgende Stufen: einen Befehlszyklus (I.), in welchem eine Befehlsauswertung, eine Operationscode-Decodierung
und eine Adressenbildung erfolgen, einen Cachespeicher-Zyklus (C), in welchem ein Zugriff
zu der Cachespeichereinheit 750 vorgenommen wird, um einen Betrieb hoher Leistungsfähigkeit sicherzustellen,
und einen Ausführungszyklus (E), in welchem die Befehlsausführung unter einer Mikroprogrammsteuerung stattfindet.
Im Hinblick auf die Steuerung sei angemerkt, daß während
des I-Zyklus der Operationscode des über die Leitungen
abgegebenen Befehls
RBIR Ί&-27 /für einen Zugriff zu einer Speicherstelle
bzw. zu einem Speicherplatz innerhalb des Steuerspeichers 704-2 herangezogen wird. Während eines
C-Zyklus wird der Inhalt, zu dem im Steuerspeicher 704-2 ein Zugriff erfolgt ist, an die Leitungen CCS DO 00-12
abgegeben und für einen Zugriff zu einem der Speicherplätze des Ablaufsteuerspeichers 701-2 herangezogen.
Während des C-Zyklus werden die Mikrobefehle des zur Ausführung des Befehls benutzten Mikroprogramms aus dem
Ablaufsteuerspeicher 701-2 in ein 144-Bit-Ausgaberegister
701-4 gelesen. Die mit MEMDO 00-143 bezeichneten Signale werden auf die verschiedenen Funktionseinheiten
des Prozessors 700 verteilt. Während eines E-Zyklus führt der Prozessor die durch den Mikrobefehl spezifizierte
Operation aus.
Unter spezieller Bezugnahme auf Fig. 2 dürfte ersichtlich sein, daß der Steuerspeicher 704-2 einen Steuereinheit-Steuerspeicher
704-200 umfaßt, der durch die Operationscodesignale adressiert wird, die an die Leitungen RBIR
18-27 angelegt werden. Der betreffende Steuerspeicher 704-200 umfaßt 1024 Speicherplätze, deren Inhalt während
eines I-Betriebszyklus in ein Ausgaberegister 704-202
gelesen wird. In Fig. 6a ist schematisch das Format
630025/0769
der Wörter veranschaulicht, die in dem Steuerspeicher 704-200 gespeichert sind.
Aus Fig. 6a dürfte ersichtlich sein, daß jedes Steuereinheit-Steuerspeicherwort
fünf Felder umfaßt. Das erste Feld ist ein 13-ßit-Feld, welches einen ECS-Startadressenplatz
für den Befehl umfaßt, bezüglich dessen ein Operationscode an die Leitungen RBIR 18-27 abgegeben ist.
Das nächste Feld ist ein 3-Bit-Feld (CCS0), welches zur
Steuerung bestimmter Operationen dient. Die Bit-Interpretationen des Feldes hängen von ihrer Bestimmung und davon
ab, ob sie durch bestimmte Verknüpfungsschaltungen oder unter einer Mikroprogrammsteuerung decodiert werden. Das
nächste Feld ist ein 4-ßit-Feld, welches bestimmten Kegistersteueroperationen
dient.
Das nächste Feld ist ein 6-Bit-Folgesteuerfeld bzw.
Sequenzsteuerfeld, welches so codiert ist, daß es eine Folge von Operationen bezeichnet, die unter einer hardwaremäßig
verdrahteten Verknüpfungssteuerschaltung ebenso auszuführen sind wie die Cachespeicher-Operation. Bei der
vorliegenden Ausführungsform ist dieses Feld als 75g codiert. Das letzte Feld ist ein 6-Bit-Anzeigefeld,
welches für das Verständnis der vorliegenden Erfindung nicht wichtig ist.
Wie aus Fig. 3a ersichtlich ist, werden die dem CCSA-FeId
eines Steuereinheit-Steuerspeicherwortes entsprechenden Signale über einen Verbindungsweg 704-204 als Eingangssignal
an die Ablauferzeugerschaltungen 701-7 abgegeben. Die dem CCSR-FeId entsprechenden Signale werden als
Eingangssignale an die Ablaufeinheit 714 über den Verbindungsweg
704-206 abgegeben. Darüber hinaus werden dieselben Signale als Eingangssignale an die Adressenbildungseinheit
704-3 über einen weiteren Verbindungsweg 704-208 abgegeben.
030025/0769
Die für das AblaufSteuerfeld kennzeichnenden Signale
werden als Eingangssignale an die Folgesteuerungs-Verknüpfungsschaltungen 704-100 über den Verbindungsweg
704-210 abgegeben. Wie hier erläutert, decodieren diese Schaltungen das Folgesteuerfeld und erzeugen
Signale, durch die die Cachespeichereinheit 750 in den Stand versetzt wird, die bezeichnete Operation auszuführen.
Wie zuvor erwähnt, erhält die Ablaufadressenerzeugerschaltung
701-1 eine Eingangsadresse, die dem Feld CCSA von dem Steuerspeicher 704-2 her entspricht. Wie aus
Fig. 3b ersichtlich ist, umfassen diese Schaltungen ein
Eingabeadreßregister 701-10, dessen Ausgang mit einer Position eines 4-Stellungs-Schalters 701-12 verbunden
ist; diese Stellung ist mit ZECSA bezeichnet. Der Ausgang des betreffenden Schalters dient als Adressenquelle
für den Steuerspeicher 701-2. In der ersten Stellung des Schalters 701-12 wird eine Adresse von dem MICA-Register
701-14 her aufgenommen. Der Inhalt des Registers 701-14 wird am Ende jedes Zyklus aktualisiert,
um auf die Stelle innerhalb des ECS-Steuerspeichers hinzuzeigen, die derjenigen Stelle bzw. demjenigen Speicherplatz
folgt, dessen Inhalt während des betreffenden Zyklus ausgelesen wurde.
In der zweiten Stellung wird die von den ZCSBRA-Auswahlschalter 701-18 hervorgerufene Adresse ausgewählt.
In der dritten Stellung wird die Adresse des ersten Mikrobefehls in jedem Mikroprogramm ausgewählt, welches
von dem CCS-Steuerspeicher geliefert wird, wobei ein Laden in das REXA-Register 701-10 erfolgt. Wenn das
CCS-Ausgangssignal am Ende eines Mikroprogramms nicht verfügbar ist, wird automatisch eine vorbestimmte Adresse
(Octaladresse 14) ausgewählt.
In der ersten Stellung des Verzweigungsschalters 701-18
030025/0769
werden Signale aufgenommen, die einer Verzweigungsadresse entsprechen, welche aus dt . Speicher 701-2
in das Register 701-4 gelesen worden ist und die ihrerseits zu einem Rückkehr-Steuerregister 701-20
hin weitergeleitet worden ist. In der zweiten und vierten Stellung des Schalters 701-18 werden Signale von
dem RSCR-Register 701-20 bzw. einem MIC-Register 701-15 bzw. der Inhalt einer Anzahl von Vektorverzweigungsregistern
701-36 aufgenommen. Das MIC-Register 701-15 speichert eine Adresse, die auf das Mlkrobefehls__wort
hinzeigt, welches dem Mikrobefehlswort folgt, welches ausgeführt wird. Die^e Adresse entqprieht der Adresse
von dem Schalter 701-12 her, wobei eine Erhöhung um eins durch eine Erhöhungs- bzw. Inkrementierungsschaltung 701-12
erfolgt.
Die Vektorverzweigungsregister umfassen ein 4-Bit-Vektorverzweigungsregister
0 (RVBO), ein 2-Bit-Vektorverzweigungsregister 1 (RVB1) und ein 2-Bit-Vektorverzweigungsregister
2 (RVB2). Diese Register werden während eines Betriebszyklus mit Adressenwerten geladen, die aus
Signalen abgeleitet sind, welche in einer Anzahl von verschiedenen Anzeige-Flipflops und Registern gespeichert
sind und die als Eingangssignale an die Anzahl von Gruppen von Eingangs-Multiplexerauswahlschaltungen 701-32
und 701-34 abgegeben werden. Die Ausgangssignale der
betreffenden Schaltungen 701-32 und 701-34 werden als Eingangssignale an Zwei-Stellungs-Auswahlschaltungen
701-30 abgegeben. Diese Schaltungen erzeugen ihrerseits die Ausgangssignale ZVBRO, ZVBR1 und ZVBR2, die
in dem Register 701-36 gespeichert werden.
Der Schalter 701-36 liefert eine Adresse auf der Basis der Prüfung bzw. des Testens der verschiedenen Hardware-Anzeigesignale
und Zustands-Flipflops-Signale, die über ein INDGRP-FeId ausgewählt werden. Die Verzweigungsentscheidung
wird durch eine Maskierung (ANDING) des
030025/0769
ausgewählten Anzeigesatzes mit den Feldern INDMSKU
und INDMSKL eines Mikrobefehlswortes bestimmt. Wenn eine Vektorverzweigung ausgewählt ist, wird das Feld
INMSKU als ein vier Null-Bits enthaltendes Feld behandelt. Das ODER-Signal der acht Bits wird mit dem
Zustand verglichen, der durch die Mikrobefehlsfelder TYPG und GO definiert ist. Die Hardware-Signale
werden über eine Anzahl von Daten-Auswahlschaltungen 701-28 abgegeben, von denen lediglich eine Auswahlschaltung
veranschaulicht ist. Die Ausgangssignale
dieser Auswahlschaltungen werden nacheinander als Eingangssignale einer weiteren Fünf-Stellungs-Multiplexerauswahlschaltung
701-26 zugeführt. Das Ausgangssignal der Multiplexerschaltung 701-26 wird einer Vergleicherschaltung
zugeführt, die die Anzeigesignale mit den Maskensignalen undmäßig zusammenfaßt, um die Ergebnissignale
MSKCBRO-7 zu erzeugen.
Die Signale MSKCBRO-7 werden einer weiteren Vergleicherschaltung
zugeführt, welche die betreffenden Signale mit den Zustandsverzweigungstestsignalen TYPGGO undmäßig
zusammenfaßt, um ein Verzweigungsentscheidungs-Flipflop 701-22 zu setzen oder zurückzusetzen. Dieses
Flipflop erzeugt ein Signal RBDGO, dessen Zustand anzeigt, ob eine Verzweigung stattfindet. Das Ausgangssignal
RBDGO wird als ein Steuereingangssignal dem ersten Eingang von zwei Eingängen bzw. Positionen des
Schalters 701-12 zugeführt. Wenn die Verzweigungstestbedingung nicht erfüllt ist (d.h., daß das Signal
RBDGO = 0 ist), dann wird die inkrementierte bzw. vergrößerte Adresse von dem MICA-Register 701-14 ausgewählt.
In einigen Fällen, wie im vorliegenden Fall,ist es nicht
möglich, den Zustand einer Anzeige auf den Zyklus hin zu testen, der der Bildung der betreffenden Anzeige folgt.
Aus diesem Grunde sind die historische Entwicklung
030025/0769
aufzeichnende Entwicklungsregister HR0-HR7 (nicht dargestellt) für die Registerspeicherung der zur Gruppe 2
gehörenden Anzeigen vorgesehen. Die Zustände der so gespeicherten Anzeigen werden ausgewählt und in einer
ähnlichen Weise getestet wie die übrigen Anzeigen (das sind Maskierungsfelder).
Die Einheit 701-1 umfaßt darüber hinaus eine Anzahl von Anzeigeschaltungen, von denen bestimmte Anzeigescnaltungen
dazu herangezogen werden, den Betrieb von bestimmten Teilen des Prozessors 700 zu steuern, wenn die
Zeichenfolgen, die durch bestimmte Befehlstypen verarbeitet werden, ausgegeben worden sind. Diese Anzeigeschaltungen
sind in dem Block 701-42 enthalten; sie werden unter der Steuerung eines Feldes innerhalb des
Mikrobefehlswortes gemäß Fig. 6a gesetzt und zurückgesetzt (das ist das IND6-Feld). Die Bits dieses Feldes,
die aus dem ECS-Ausgaberegister 701-A ausgelesen sind,
werden an ein RMI-Register 701-38 abgegeben, um durch
einen Decoder 701-40 decodiert zu werden. Auf der Grundlage des Zustand der Statusanzeigesignale, die von den
verschiedenen Prozessoreinheiten her aufgenommen werden (z.B. 714, 720, 722, etd.), werden die in Frage kommenden
Hilfs-Flipflops in die binären Zustände 1 geschaltet. Die
Ausgangssignale dieser Flipflops werden über die verschiedenen Stellungen eines Vier-Stellungs-Schalters
701-44 an die GP3-Stellung des Schalters 701-26 abgegeben,
um einen Test durchzuführen. Dieselben Ausgangssignale werden einerjzweiten Stellung eines ZIR-Schalters
701-43 zugeführt, um über den ZDO-Schalter 704-340 eine Einspeicherung hervorzurufen. Der ZIR-Schalter
701-43 nimmt außerdem Anzeigesignale von dem Anzeigeregister (IR) 701-41 her auf. Dieses Register wird über
die RDI-Leitungen 18-30 und 32 auf das Auftreten von
bestimmten Befehlen hin geladen.
030025/0769
Die Anzeigestatussignale umfassen beispielsweise die Ausgangssignale der verschiedenen Addiererschaltungen
(AL, AXP) der Einheit 720. Diese Signale setzen unterschiedliche Flipflops der in einer Anzahl vorgesehenen
Ausgabe-Kennzeichen-Flipflops, die mit FE11, FE12,FE13, FE1E, FE2E, FE2 und FE3 bezeichnet sind. Die Flipflops
FE1E und FE2E werden während jedes FPOA-Zyklus eines Befehls gesetzt. Diese Flipflops bewirken ihrerseits
das Setzen der Flipflops FE11, FE12 und FE13, wenn die Ausgangssignale von den Addiererschaltungen AL oder
AXP der Einheit 720 auftreten. Das Setzen und Zurücksetzen dieser Anzeigen wird nachstehend weiter im
einzelnen in Verbindung mit der Erläuterung der Arbeitsweise beschrieben. Die Abgabe-Kennzeichen-Flipflops,
die für die Ausführungsform wichtig sind, werden entsprechend den nachstehenden Boolschen Ausdrucken gesetzt
bzw. zurückgesetzt, wobei das Setzen jeweils mit SET und das Zurücksetzen jeweils mit RESET angedeutet
ist.
SET : FLlE = KPOA + 1ND6FLD Feld ·
IiESET : FEIE = IND6FLD Feld .
SLT : FE2E = FPOA + IND6FLD Feld .
RESET : FE2E - IND6FLD Feld .
SET : FEIl = IND6FLD Feld .FEIE (ALES + AXPES +
DESCl ·ΑΡΟ-4 = 0) + IND6FLD - FeIdFElE-DESCl-(AP0-5=0+APZN+ALZN)
+ IND6FLD Feld
KLSET : FEIl = FPOA + IUD6FLD Feld .
SLT : FE12 = IND6FLD FeId-FElE-(ALES + AXPES + FE13).
RESET : FE12 = FPOA + IND6FLD Feld.
SET : FE13 = IND6FLD Feld -FElE-ALES + IND6FLD Feld
RLSET : FEl3 = FPOA + IND6FLD Feld.
SET : FE2 = IND6FLD Feld ·FE2E-ALES + IND6FLD Feld ·
FE2E-DESC2 · (APO-4-0 + ΛΡ0-5=·0 + APZN +
ALZN) + (1ND6FLD Feld ) FE2E.DESC2 + IND6FLD.
RESET : FE2 = FPOA + 1ND6FLD Feld.
030025/0769
SET : KE3 = INDOFLD Feld · DIiSC3 · (AP0-4 = 0 + APO-5 +
ΛΡ2Ν + ALZN) + IND6FLD Feld -DESC3 +
IND6FLD.
RL1SLT ; FL3 = FPOA + IND6FLD Feld ·
Wobei INDoFLD* einen bestimmten Code abgibt.
ALES = AL=O or AL-C;
AXPLS = AXP=O or AXI5-C;
APZN = APO-7 s 0; Und,
ALZN = ALO-Il ^ 0.
Der ZCSBRA-Schalter 701-18 ist normalerweise freigegeben, wenn das Verzweigungs-Entscheidungs-Flipflop RBD nicht
in den Binärzustand 1 während des vorhergehenden Zyklus gesetzt wurde. In der ersten Stellung wird eine 13-Bit-Verzweigungsadresse
von dem gerade vorliegenden Mikrobefehl ausgewählt, der über das RCR-Register 701-20 abgegeben
wird. Die Verzweigungsadresse gibt die direkte Adressierung irgendeines Speicherplatzes der Speicherplätze
des ECS-Steuerspeichers frei. In der zweiten Stellung wird die Verkettung der sechs niederwertigen
Adressenbits von dem vorliegenden Mikrobefehl ausgewählt, der über das MIC-Register 701-15 abgegeben wird,
und der sieben oberen Bits der Verzweigungsadresse von dem vorliegenden Mikrobefehl her, der über das RCR-Register
701-20 abgegeben wird. Dies ermöglicht Verzweigungen innerhalb einer 64-Wort-Seite, wie dies
durch den Inhalt des MIC-Registers 701-15 festgelegt ist (vorliegender Speicherplatz +1).
In der dritten Position wird die Verkettung der vier niederwertigen Bits von dem RVBO-Vektorverzweigungsregister.der
sechs Bits von dem Verzweigungsfeld des in dem RCSR-Register gespeicherten vorliegenden Mikrobefehls
und der drei oberen Bits der Adresse vorgenommen, die in dem MIC-Register gespeichert ist. Dies
ermöglicht I6fache Verzweigungen. In der vierten Stellung
030025/0769
wird die Verkettung der zwei niederwertigen Nullen mit den vier Bits von dem Vektorverzweigungsregister
RVBO sowie mit den vier höchstwertigen Bits des Verzweigungsadressenfeldes des vorliegenden Mikrobefehls
und mit den drei oberen Bits der vorliegenden Adresse ausgewählt, die in dem MIC-Register gespeichert ist.
Dies ermöglicht I6fache Verzweigungen in den drei Steuerspeicherplätzen zwischen jedem benachbarten
Bestimmungsadressenpaar.
In der fünften Stellung wird die Verkettung der zwei niederwertigen Nullen mit zwei Bits von dem Vektorverzweigungsregister
RVB1 sowie mit den sechs Bits der Verzweigungsadresse des gerade vorliegenden Mikrobefehls
und den oberen drei Bits von dem MIC-Register her ausgewählt. Dies ermöglicht Verzweigungen mit vier möglichen
Bestimmungen bei drei Steuerspeicherplätzen zwischen dem jeweiligen benachbarten Bestimmungsadressenpaar.
in der sechsten Stellung wird die Verkettung der zwei niederwertigen Nullen mit zwei Bits von dem
Vektorverzweigungsregister RVB2 her sowie mit den sechs Bits der Verzweigungsadresse des gerade vorliegenden
Mikrobefehls und den oberen drei Bits von dem MIC-Register her ausgewählt. Dies ermöglicht
vierfache Verzweigungen bei drei Steuerspeicherplätzen zwischen dem jeweiligen benachbarten BeStimmungsadressenpaar.
Die Ausgangssignale des Schalters 701-12 adressieren einen bestimmten Speicherplatz innerhalb des Steuerspeichers
701-2, der das Auslesen eines Mikrobefehlswortes mit einem in Fig. 6b dargestellten Format hervorruft.
Aus Fig. 6b geht dabei hervor, daß dieses Mikrobefehlswort derart codiert ist, daß es eine Anzahl
030025/0769
von unterschiedlichen Feldern umfaßt, die dazu herangezogen werden, die verschiedenen Funktionseinheiten
innerhalb des Prozessors 700 zu steuern. Dabei werden hier lediglich diejenigen Felder beschrieben, die sich
auf die vorliegende Ausführungsform beziehen.
Bits 0-1 Für zukünftige Verwendung
reserviert
Bit 2 EUFMT Definiert das Format, mit
dem EU beschrieben wird. Durch EUFMT-O ist ein erstes Mikrobefehlsformat
festgelegt, während durch EUFMT=I ein anderes Mikrobefehlsformat definiert ist,
Bits 3-5 TRL TR bedeutet bei niedrigem
Pegel eine Schreibsteuerung. Schreibsteuerung der EU-Kurzzeitregister
TR0-TR3.
Bits 6-8
| OXX |
Keine Änderung |
Keine Änderung |
| 100 |
Schreiben TRO |
Schreiben TR4 |
| 101 |
Schreiben TR1 |
Schreiben TR5 |
| 110 |
Schreiben TR2 |
Schreiben TR6 |
| 111 |
Schreiben TR3 |
Schreiben TR7 |
| TRH |
TR mit hohem Pegel bedeutet |
| |
Schreibsteuerung |
| Schreibsteuerung der EU-Kurzzeit- |
| Register TR4-TR7. |
| OXX |
| 100 |
| 101 |
| 110 |
| 111 |
Bits 9-12 ZOPA ZOPA-Schaltersteuerung
030025/0769
Auswahl des Ausgangssignal des ZOPΑ-Schalters.
0) 0000 TRO
1 ) 0001 TR1
2) 0010 TR2
3) 0011 TR3
4) 0100 TR4
5) 0101 TR5
6) 0110 TR6
7) 0111 TR7 8-11) 10XX RDI
12) 1100 ZEB
13) 1101 ZEB
14) 1110 ZEB
15) 1111 0 (.unwirksam).
Bits 13-16 ZOPB ZOPB-Schaltersteuerung.
Auswahl des Ausgangssignal des
ZOPB-Schalters.
Bits 17-18 ZRESA ZRESA-Schaltersteuerung.
Auswahl des Ausgangssignal des
ZRESA-Schalters.
00 Rechen- und Verknüpfungswerk
01 Verschiebeeinrichtung
0O Notizblockspeicher/RDI-Schalter
11 ZDO
Bits 19-20 Z.RESB ZRESB-Scnaltersteuerung.
Auswahl des Ausgangssignals des ZRESB-Schalters.
00 Rechen- und Verknüpfungswerk
01 Verschiebeeinrichtung
10 Notizblockspeicher/RDI-Schalter
11 ZDO
Bit 21 RSPB Notizblockspeicher-Pufferabtast
steuerung. Abtasten von RSPB mit ZRESB-Daten
0 keine Abtastung
1 Abtasten von RSPB 030025/0769
Bit 22 RSP Notizblockspeicher-Schreib
steuerung.
0 Lesen des Notizblockspeichers
1 Schreiben des Notizblockspeichers
Bit 23 ZSPDI Notizblockspeicher/RDI-Schalter-
steuerung
Auswahl des Ausgangssignals des Notizblockspeicher s/RDI-Schalte rs
0 Notizblockspeicher-Ausgangssignal
1 RDI
Bits 24-25 ZSHFOP Verschieben der Operanden-Schalter
steuerung
Auswahl des linken Operanden für die Verschiebeeinrichtung
00 ZOPA-Ausgangssignal
01 EIS-Ausgangssignal
10 0
11 Auswahl von 0 oder -1 in Abhängigkeit
vom Bit 0 des rechten Operanden für die Verschiebeeinrichtung
Bits 24-27 Rechen- und Verknüpfungswerk
ALU (Rechen- und Verknüpfungswerk)-
Funktionssteuerung
Auswahl der Operation, die bezüglich
der beiden Eingangssignale (A und B)
für das Rechen- und Verknüpfungswerk
anzuwenden sind.
Bits 24-29 N/a
Bits 26-31 RFU Für zukünftige Verwendung
reserviert
Bits 30-31 ZALU ALU-Schaltersteuerung
Auswahl des Ausgangssignals des ZALU-Schalters
030025/0769
29A9571
/ft 9
Bits 32-33 NXTD Nächste Deskriptorsteuerung
Abtasten der RBASB und RDESC-Register
00 RBASB 00 RDESC 01
01 RBASB 01 RDESC 01
10 RBASB Alt RDESC 10
11 Keine Abtastungen (nicht eingehalten) Bits 32-35 CCM Steuer-Konstantenfeld auf das
durch das CONTF-FeId Bezugjgenommen
wird
Bits 34-35 IBPIPE IBUF/Pipeline-Steuerung
Auswahl des Lesens von IBUF oder der Pipeline-Operation
00 Keine Operation
01 Lesen von IBUF/ZDI (Alt)
10 Typ 1 einer Neustart-Auslösung oder
11 Typ 4 Neustart-Warten Bits 36-37 FMTD
Auswahl des Ladens der verschiedenen der CU-Register und Anzeige der Interpretation,
die dem MEMADR-FeId für eine geringe CU-Steuerung zu geben ist.
00 Keine Operation
01 RADO ASFA
10 RADO ZRESB
11 RADO ASFA
Bits 38-40 MEMADR Cachespeichersteuerung
Auswahl der Cachespeicheroperationen. Die vollständige Interpretation bezüglich
dieser Steuerung ist eine Funktion der FMTD-Steuerung.
000 Keine Operation
001 Einfachlesen 010 Vierer-Ladung
030025/0769
011 Vor-Leson
100 Einzel-Schreiben
101 Doppel-Schreiben
110 Einzel-Leseübertragung (lediglich bei FMTD =11)
111 Einzelwort-Schreiben (lediglich bei FMTD = 11J
Bit 41 ZONE Zonensteuerung
Hierdurch wird eine Zone oder keine Zone für eine geringe CU-Steuerung
angezeigt.
0 Keine Zone
1 Zone
Bits 42-44 TYPA Typ-A-Kennzeichen
Hierdurch wird angezeigt, daß der den
Feldern überlagerte Typ A verwendet
wird.
000 Typ—A=O-Felder
100 Typ-A=4-Felder
| Bits 44-46 |
PIPE |
Pipeline-Steuerung |
Keine Operation |
| |
Auswahl |
des Typs des auszulesenden |
Neustart Typ 1 und Auslösung |
| |
Neustarts |
Neustart Typ 2 |
| |
000 |
Neustart Typ 3 |
| |
001 |
Neustart Typ 4 |
| |
010 |
Neustart Typ 5 |
| |
011 |
Neustart Typ 6 |
| |
100 |
Hilfsregister-Schreib- |
| |
101 |
steuerung |
| |
110 |
eines Hilfsregisters oder |
| Bits 44-47 |
AUXREG |
von Registerkombinationen, |
| |
|
| |
Auswahl |
| |
030025/0769
Bits 45-4b
die mit Daten abzutasten sind, welche durch das AUXIN-Steuerfeld ausgewählt
sind.
| O) |
0000 |
Koine Abtastung |
Felder benutzt werden. |
| D |
0001 |
RRDXA |
Typ-B=O-Felder |
| 2) |
0010 |
R29 |
| 3) |
0011 |
R29,PRDXA,FRL,RID |
| 4) |
0100 |
RRDXB |
| 5) |
0101 |
RTYP |
| 6) |
0110 |
RBASA |
| V) |
0111 |
RBASA, RTYP |
| 8) |
1000 |
RBASB |
| 9) |
1001 |
RD]SSC |
| 10) |
RBASA, |
R29, RRDXA |
| TYPB |
Kennzeichentyp B |
| Hierdurch wird angezeigt, daß vom Typ B |
| überlagerte |
| OO |
11 Typ-B=3-Felder Bit 47 RSC RSC-Abtaststeuerung
Abtasten des RSC-Register (Verschieben
der Zählerstellung) Bit 47 RSPA RSPA-Abtaststeuerung
Abtasten des RSPA-Registers Bits 47-48 N/A
Bit 47 RAAU RAUU-Abtaststeuerung
Abtasten des RAAU-Registers Bits 48-49 ZLX ZLX-Schaltersteuerung
Auswahl des Ausgangssignals des
ZLX-Schalters
Bits 48-49 ZSPA ZSPA-Schaltersteuerung
030025/0769
Auswahl des Ausgangssignal des
ZSPA-Schalters
Bits 48-50 AUXIN Hilfsregister-Eingabe-
steuerung
Auswahl der in dem/den Hilfsregister(n)
abzutastenden Daten Bit 49 ZADSP ZADSP-Schaltersteuerung
Auswahl des Ausgangssignals des
ZADSP-Schalters
Bits 50-52 ZSC ZSC-Schaltersteuerung
Auswahl des Ausgangssignals des
ZSC-Schalters
Bits 50-52 ZRSPA ZRSPA-Schaltersteuerung
Auswahl des Ausgangssignals des
ZRSPA-Schalters
Bits 50-52 ZAAU ZAUU-Schaltersteuerung Bit 51 RSIR RSIR-Registerabtastung
Abtasten des RSIR-Registers als
Funktion des AUXIN-Feldes Bit 53 RDW R1DW, R2DW-Registerabtastung.
Abtasten des R1DW- oder R2RW-Registers
als Funktion des RDESC-Registers Bits 53-54 ZLNA ZLNA-Schaltersteuerung.
Auswahl des Ausgangssignal des ZLNA-
Schalters.
Bits 54-57 CONTF Verschiedene Flipflop-Steuerung
Auswahl einer Gruppe von vier Gruppen
von Steuer-Flipflops, die durch das
Steuerungs-Konstantenfeld (CCM) zu
setzen oder zurückzusetzen sind.
Die Flipflops umfassen jene Flipflops
der Blöcke 704-104 und 704-110. Bits 55-56 ZLNB ZLNB-Schaltersteuerung.
Auswahl des Ausgangssignals des ZLNB-
Schalters.
Bits 55-56 ZSPA(2) Typ A=2, ZSPA-Schalter,
RSPA-Registersteuerung.
03Q025/0769
Auswahl des Ausgangssignals des
ZSPA-Schalters und Abtasten des
RSPA-Registers.
Bits 57-58 ZPB ZPB-Schaltersteuerung.
Auswahl des Ausgangssignals des ZPC-Schalters.
Bits 59-62 ZXP ZXP-Schalter, RXP-Register,
Bankensteuerung.
Auswahl des Ausgangssignals des ZXP-Schalters
und des RXP-Registers, in das einzuschreiben ist.
Bits 59-63 ZLN(IJ ZLN-Schalter, RLN-Register
(Typ A=1J Bankensteuerung Auswahl des Ausgangssignals des
ZLN-Schalters und des RLN-Registers, in das eingeschrieben wird.
Bits 59-60 ZPA ZPA-Schaltersteuerung.
Auswahl des Ausgangssignals des ZPA-
Schalters.
00 = RPO
11 = RP3
Bits 61-62 ZPB ZPB-Schaltersteuerung
Auswahl des Ausgangssignals des
ZPB-Schalters.
00 = RPO
11 = RP3
Bits 63-64 ZXPL ZXPL-Schaltersteuerung
(Typ A=O)
Auswahl des Ausgangssignals des ZYPL-Schalters.
030025/0769
OO = RXPA
11 = RXPD
Bit 63 ZLNC2) ZLN-Schalter, RLN-Register
(Typ A=2) Bankensteuerung Auswahl des ZLN-Schalterausgangssignals
und des RLN-Registers, in das eingeschrieben wird.
Bits 63-66 RDIN RDI-Eingabesteuerung.
Auswahl der in das RDI-Register zu tastenden Daten und Auswahl eines der
Modifikations-Steuerfelder (MF1-MF3, TAG) eines Befehlswortes. Die RDI-Abtastung
kann auch durch das MISCREG-FeId gesteuert werden.
Bit 64 ZXPL(I) ZXPL-Schaltersteuerung.
(Typ A=1)
Auswahl des Ausgangssignals des ZXPL-Schalters.
Bits 64-68 ZRPAC ZRAP-Schalter, ZAPC-Schalter,
(Typ A=2), HPO-3-Registerbankensteuerung.
Auswahl der Ausgangssignale des ZRPC- und ZRPA-Schalters und des
RPO-3-Registers, in das das ZRPA-Ausgangssignal
eingeschrieben wird.
Bits 65-66 ZXPR ZXPR-Schaltersteuerung.
(Typ A=O)
Auswahl des Ausgangssignals des ZXPR-Schalters.
Bits 65-66 ZXPU) ZXP-Schalter, RXP-Register
(Typ A= 1) Banksteuerung Auswahl des Ausgangssignals des
030025/0769
ZXP-Schalters und des RXP-Registers, in welches das Ausgangssignal eingeschrieben
wird.
Bits 67-68 ZPD ZPD-Schaltersteuerung.
(Typ A=O)
Auswahl des Ausgangssignals des ZPD-Schalters.
Bit 67 ZPAC(4) ZRPA-Schalter,
ZRPC-Schalters,
(Typ A=4) RPO-3-Registerbank-
steuerung
Auswahl von CP4 vom ZRPA-Schalter und Abtasten des RP1-Registers.
Bit 67 TYPD Typ D-Kennzeichen
Typ D-Kennzeichen zeigt D überlagerte Felder an.
Bit 68 ZRPB(4) ZRPB-Schalter, RP4-7 Register,
Banksteuerung
(Typ A=4)
Auswahl der O vom ZRPB-Schalter und
Abtasten des RP4-Registers.
Bits 68-71 MEM Cachespeichersteuerung.
Auswahl der Cachespeicheroperation in Verbindung mit der SZ-Steuerung.
0) 0000 Keine Operation
15) 1111 Fern-Schreiben Bits 68-70 IBUF IBUF-Lesesteuerung.
Auswahl der Bestimmung der IBUF-Daten, wenn IBUF gelesen wird.
Bits 69-73 AXP ZXPA-Schalter, ZXPB-Schalter,
(Typ A=O) AXP-Addierer, ZAXP-Schalter,
RE-Registersteuerung.
03002&/0769
Auswahl der Ausgangssignale des ZXPA- und ZYPB-Schalters, bezüglich
der die AXP-Addiererfunktion ausgeübt
wird, und des Ausgangssignals des ZXP-Schalters. Ferner Abtasten des
RE-Registers.
Bits 69-73 ZRPB ZRPB-Schalter, Register RP4-7
Bankensteuerung (Typ A=1) Auswahl des Ausgangssignals des ZRPB-Schalters
und des RP4-7-Registers, in das das betreffende Ausgangssignal eingeschrieben wird.
Bits 69-71 ZRPAC-3 ZRPA-Schalter, ZRPC-Schal-
ter RPO-3 Registerbanksteuerung (Typ A=O)
Auswahl der Ausgangssignale des ZRPC- und ZRPA-Schalters und des
Registers RPO-O, in welches das ZRPA-Ausgangssignal eingeschrieben
wird.
Bits 72-74 ZRPB(3) ZRPB-Schalter, Register RP4-7,
Banksteuerung (Typ =3) Auswahl des Ausgangssignals des ZRPB-Schalters und des Registers RP4-7,
in welches dieses Ausgangssignal eingeschrieben wird.
Bits 72-73 SZ Größen/Zonen-Cachespeichersteuerung.
Die Steuerung der Cachespeicheroperationen erfolgt in Verbindung mit den MEM-Steuerfeld.
Bits 74-78 ZRPB(3) ZRPB-Schalter, Register
RP4-7-Register
Bank-steuerung (Typ A=O) Auswahl des Ausgangssignals des ZRP-Schalters
und des Registers RP4-7,
030025/0769
in welches das betreffende Ausgangssignal eingeschrieben wird.
Bits 74-78 AL ZALA-Schalter, ZALB-Schalter,
AL-Addierersteuerung (Typ A=1) Auswahl der Ausgangssignal des
ZALA-Schalters und des ZALB-Schalters
und der AL-Addiererfunktion, die bezüglich dieser Ausgangssignale angewandt
wird.
Bits Tk TYPE Typ E-Kennzeichen
Das Kennzeichen des Typs E zeigt den Feldern überlagerten Typ E an.
Bits 75-77 ZXP(3) ZXP-Schalter, RXP-Register-
bank_steuerung (Typ A=3)
Auswahl des ZXP-Schalterausgangssignals und des RXP-Registers, in welches das
betreffende Ausgangssignal eingeschrieben wird.
Bits 75-78 MISCiIEG Verschiedene Register
steuerung.
Auswahl von verschiedenen Operationen in verschiedenen Registern (z.B. RBIR,
RDI, RLEN, RSPP).
Bits 75-78 ZDO ZDO-Schaltersteuerung.
Auswahl des Ausgangssignals des ZDO-Schalters.
Bit 78 ZIZN ZIZN-Schaltersteuerung.
Auswahl des Ausgangssignals des ZIZN-Schalters.
Bits 79-03 AP ΖΑΡΑ-Schalter, ZAPB-Schalter,
AP-Addierersteuerung.
Auswahl des ZAPA- und des ZAPB-Schalterausgangssignals
und der AP-Addiererfunktion, die auf diese Ausgangssignale angewandt wird.
Bits 79-81 ZLN(3)
(Typ A=3) ZLN-Schalter,
030025/0769
-yyf-
29A9571
RLN-Registerbanksteuerung. Auswahl des ZLN-Schalterausgangssignals
und des ZLN-Registers, in welches das betreffende Ausgangssignal eingeschrieben wird.
Bits 79-83 ZLN(4J
(Typ A=4) ZLN-Schalter, RLN-Registerbanksteuerung.
Auswahl des ZLN-Ausgangssignals und des RLN-Registers, in welches das
betreffende Ausgangssignal eingeschrieben wird.
Bits 80-81 RAAU RAAU/RJS-Registerabtastung.
Auswahl der in die Register RAAU und RiD durch Steuern verschiedener
Schalter und Addierer in der Einheit 722 einzutastenden Daten.
Bits 82-83 AP(3) ΖΑΡΑ-Schalter, ZAPB-
(Typ A=3) Schalter, AP-Addierersteuerung.
Auswahl der ZAPA und ZAPB-Schalterausgangssignals
und der auf diese angewandten AP-Addiererfunktion.
Bit 84 ZRSC ZRSC-Schaltersteuerung.
(Typ A=O)
Auswahl des Ausgangssignals des ZRSC-Schalters.
Bits 85-86 N/A
Bit 86 RLEN RLEN-Abtaststeuerung.
(Typ A=3)
Die RLEN-Abtastungen werden ferner durch Hardware oder durch MISCREG-FeId
gesteuert.
Bit 87 FMT Format-Kennzeichen, welches
den Formattyp anzeigt.
030025/0769
Bits 88-89 TYPF
Zeigt den Typ der Uberlagerungsfelder an.
Bit 90 Bits 90-93
| 00 |
- Notizblockspeicheradresse |
zukünftige Verwendung |
CHROP |
Zeicheneinheitsoperations- |
0000 |
Keine Operation |
| 01 |
= Zeicheneinheit-Steuerung |
reserviert |
|
code. |
0001 |
Laden von Daten |
| 10 |
= Multiplikations/Divisions- |
|
% Hauptoperation, die von |
0010 |
MOP-Ablauf |
| |
Steuerung |
Auswahl der |
Zeicheneinheit auszuführen ist, |
0011 |
Einzelvergleich |
| 11 |
= N/A |
der |
der Interpretation, die dem |
0100 |
Doppelvergleich |
| RFU |
Für |
und |
CHSUBOP-FeId zu geben ist. |
0101 |
Registerladen |
| |
|
0) |
0110 |
Aktualisieren von CN |
|
D
|
0111 |
Undefiniert |
| 2) |
1000 |
Setzen der RCH-Operation A |
| 3) |
1001 |
Setzen von RTF1 |
| 4) |
1010 |
Setzen von RTF2 |
| 5) |
1011 |
Setzen von RTF3 |
| 6) |
1100 |
Setzen von RCN1 |
| 7) |
1101 |
Setzen von RCN2 |
| 8) |
1110 |
Setzen von Aufbereitungs |
| 9) |
|
kennzeichen |
| 10) |
1111 |
Löschen der CH-Einheit |
| 11) |
|
RCH-Registerabtastung |
| 12) |
| 13) |
| 14) |
| |
| 15) |
| RCH |
Bit 90
Abtasten des OP1-RCH-Registers
Bit 90 RFU Für zukünftige Verwendung
reserviert.
030025/0769
Bits 91-97
Bits 91-93
Bits 94-97
SPA Notizblockspeicheradresse. Sie enthält die Adresse, die zur Adressierung des EU-Notizblockspeichers
verwendet werden kann. N/A
CHSUBOP Zeicheneinheits-Sub-
operationscode.
Auswahl der detaillierten Funktion der Zeicheneinheit; oder sie können
eine Konstante enthalten. Die Interpretation dieses Feldes ist eine Funktion der CHROP-Steuerung, wie
dies weiter unten gezeigt wird. CHROP = OQOQ Keine Operation
CHSUBOP0-3
XXXX Keine Interpretation CHROP = 0001 Laden der Datenoperation
| CHSUBOP0-1 |
(Suboperation) |
| 00 |
Operation 1 Laden durch |
| |
CN1 und FT1 |
| 01 |
Operation 1 Laden in |
| |
umgekehrter Richtung |
| |
durch CN1 und TF1 |
| 10 |
Operation 2 Laden durch |
| |
CN2 und TF2 und Testzeichen |
| 11 |
Laden des Vorzeichens |
| CHSUBOP2-3 |
(.Füllsteuerung) |
| 1X |
Füllzeichen geladen in |
| |
ZCU |
| X1 |
Füllzeichen in ZCV geladen |
| CHROP =0010 |
MOP-Ausführungsoperation |
| CHSUBOP0-1 |
(Suboperation) |
| OO |
MOP durch CN2 gesetzt |
| 01 |
MOP-Ablauf |
| 10 |
Undefiniert |
| 11 |
Undefiniert |
030025/0769
Bit 99
Bits 99-106
Bits 99-106
Bits 99-106
CHUBOP2-3
XX
CHROP =0101 Keine Interpretation Laderegisteroperation
CHSUBOP
0-1
CHSUBOP
2-3 (,Auswahl des Ausgangssignals
von RCH)
(,Auswahl des Ausgangssignals des ZOC-Schalters)
CHROP = 1011 Setzen der RTF3-0peration
CHSUBOP
0-1
CHSUBOP2 , CHROP = 1110
(Auswahl von Daten, die auf 00 zu überwachen sind, Anzeige eines 9-Bit-Zeichens)
(.Konstantenfeld)
Setzen der Bearbeitun/^s-
CHSUBOP
0-3
IXXX
| |
X1XX |
| |
XX1X |
| |
XXX1 |
| Bits 9^-97 |
RFU |
| Bits 97-97 |
N/A |
| Bit 98 |
TYPC |
kennzeichenoperation (Zu setzende Konstanten-Auswahlkennzeichen)
Setzen von ES (Endunterdrückung)
Setzen von SN (Vorzeichen) Setzen von Z (Null) Setzen von BZ (leer wenn Null)
Für zukünftige Verwendung reserviert
Kennzeichentyp G Dies zeigt den Typ der überlagerten Felder an.
0 = BRADRU-FeId
1 = IND6-Feld
GO Zustand des Bedingungs-
verzweigungstestes
BRADRU Obere Verzweigungsadresse IND6FLD Anzeigesteuerung
Auswahl einer Anzeige.
Bit 99 = 0 legt einen Änderungsanzeigebefehl fest.
030025/0769
Bit 99 = 1 legt einen Setz/Rücksetz-Anzeigebefehl fest (Setzen oder Rücksetzen
wird durch das X-Bit als 0 oder 1 angezeigt)
Bits 100-104 105=1 106=1 0000
| 1100X |
Ausgabe |
1 |
Ausgabe |
2 |
| 1101X |
Ausgabe |
3 |
N/A |
|
| 1110X |
Ausgabe |
1 |
Ausgabe |
2 |
| |
Ef f. |
|
Ef f. |
|
Bits 107-112 BRADRL Untere Verzweigungsadresse,
die den unteren Teil einer für eine Verzweigung benutzten ECS-Adresse
enthält.
Bit 113 EXIT Auswahl der Ausgangs-Schalter
steuerung.
Die Auswahl des Ausgangs zeigt das Ende eines Mikroprogramms an.
Bits 114-116 ZCSBRA ZCSBRA-Schaltersteuerung.
Hierdurch wird die Position ausgewählt, die in einem Steuerspeicher-Verzweigungsadressenschalter
auszuwählen ist.
Bits 117-118 N/A
Bits 119-123 INDGRP Bedingungs-Verzweigungs-Anzeige-
Grupp e nst eue rung.
Die ersten beiden Bits (119-120) wählen die "Gruppe" der Mikroprogrammanzeigen
aus. Die letzten drei Bits (121-123) wählen das "Setzen" der Anzeigen innerhalb
jeder "Gruppe" aus.
Bit 124 TYPH Typ H-FeId, welches vom Typ H
überlagerte Felder anzeigt.
030025/0769
0 = INDMSKU
1 = VCTR-FeId
Bits 125-128 INDSMSKU Obere Bedingungs-Ver-
zweigungsanzeigemaske. Sie enthält die oberen vier Bits der
Anzeißenmaske im Feld des Typs H =0.
Bits 125-129 VCTR Vektorauswahl.
Auswahl der Verzweigungsvektoren, die in die Register RVBO, RVB1 und RVB2 zu
tasten sind. Das Bit (125) höchster Wertigkeit bestimmt, welche der beiden Gruppen 0 oder 1, 2 oder 3 bzw. 4
oder 5 in di·; Register RVBO, RVB1 bzw. RVB2 getastet wird. Die übrigen
drei Bits wählen den Vektor innerhalb der jeweiligen Gruppe aus.
Bits 129-132 INDMSKL Untere Bedingungs-Verzweigung
sanzeigemaske .
Es werden die vier niederen Bits der Anzeigemaske umfaßt.
Bits 133-135 N/A
Bits 136-139 CNSTU Obere Konstante;
umfassen die oberen vier Bits des Konstantenfeldes.
Bits 140-143 CNSTL Untere Konstante. Sie
umfassen die unteren vier Bits des Konstantenfelde s.
030025/076?
Im folgenden wird die Steuerlogikeinheit 704-1 näher erläutert. Diese Einheit umfaßt die Ablauf-Decodierverknüpfungsschaltungen
704-100,wie sie bereits erwähnt worden sind und deren Ausgangssignale einer Vielzahl von
I-Zyklus-Steuerzustands-Flipflops des Blocks 704-102 zugeführt
werden. Diese Flipflops erzeugen auf das Auftreten von Signalen von den Schaltungen 704-100 her sowie
auf Mikrobefehlssignale von dem Register 701-4 (DMEMR038-40, die dem MEM-Adressenfeld MEMADR gemäß Fig. 6b entsprechen«
die verschiedenen geforderten I-Zyklus-Steuerzuständen, die
bezüglich der Ausführung von Programmbefehlen erforderlich sind. Es ist angenommen, daß der Block 704-102 ferner Verknüpf
ungsschaltungsn aufweist, die Register-Haltesignale erzeugen (HOLDEOO, die in dem Prozessor 700 verteilt werden)
.
Wie aus Fig. 3c ersichtlich ist, nehmen die I-Zyklus-Steuerzustands-Flipflops
Steuereingangssignale über Steuerleitungen, einschließlich einer Leitung CPSTOPOO,
von der CacheSpeichereinheit 750 her auf. Wie hier erläutert,
bestimmt der Zustand der CPSTOPOO-Leitung, ob die Prozessoroperation fortgesetzt wird, wenn die Leitung
ein Binärsignal 0 führt. Die Halte- oder Freigabesignale
für die I-Zyklus-Steuerzustands-Flipflops und
die anderen Speicherregister werden ebenfalls in den Nullzustand gebracht. Die Haltesignale, die den Signalen
HOLDIOO und HOLDEOO entsprechen, werden in dec Weise verarbeitet, daß der Zustand des Prozessors 700 festgehalten
oder gehalten wird. Da keine Erhöhung der Steuerspeicheradresse stattfinden kann, liest der ECS-Steuerspeicher
dasselbe Mikrobefehlswort aus. Die Signale HOLDI und HOLDE werden in Übereinstimmung mit den folgenden
Booleschen Ausdrücken gesetzt: HOLDI = CACHE HOLD
+ TERMB (DREQ-IF-DIR) + HOLD REL, wobei der Zustand des Signals CACHE HOLD dem Zustand des Signals CPSTOP entspricht
und wobei die Signale TERMB (DREQ-IF-DIR)
030025/0769
Binärsignale 1 während des Steuerzustands FPOA sind, wenn der Cachespeicherbefehl eine I-Aufruf- oder direkte
Operation spezifiziert und das Signal HOLD REL ein Binärsignal 1 ist, bis es zu einem Binärsignal 0 durch
die Erzeugung eines Mikroprogramm-Auslösesignals umgeschaltet wird. Ferner ist HOLD >J = HOLD I.
Wie aus Fig. 3c hervorgeht, werden den I-Zyklus-Steuerungszuständen
entsprechende Signale als Eingangssignale einer Vielzahl von Steuerungs-Flipflops des Blocks 704-104, den
Decoderschaltungen des Blocks 704-106, einer Anzahl von Steuerverknüpfungsschaltungen des Blocks 704-108 und einer
Vielzahl von Steuerkennzeichen-Flipflops des Blocks 704-110 zugeführt. Außerdem dürfte ersichtlich sein, daß die verschiedenen
Anzeige-Flipflops des Blocks 704-110 Mikrobefehls-Eingangssignale
über die Leitungen MEMDO54-57 von der AbiaufSteuereinheit 701-4 her aufnehmen.
Wie aus Fig. 3c ersichtlich ist, fallen die durch die
Harware-Steuerverknüpfungsschaltungen 704-108 erzeugten
Signale in eine von drei Gruppen, und zwar als Funktion der Einheiten, deren Operationen gesteuert werden. Dies
bedeutet, daß die Gruppen gegeben sind durch die Befehls-
030025/0769
puffersteuerung, durch die Hardwaresteuerung und die
Hardwarespeiehersteuerung.
In jedem Falle wird jede Gruppe von Signalen odermäßig mit entsprechenden bzw. äquivalenten Signalen zusammengefaßt,
die von anderen Quellen erzeugt werden, und sodann erfolgt eine Decodierung. Die anderen Quellen entsprechen
den Feldern innerhalb der beiden unterschiedlichen Formate des Mikrobefehlswortes gemäß Fig. 6a,
die von dem ECS-Ausgaberegister 701-4 in das RCSR-Register
704-112 geladen werden.
Ein.Feld entspricht den Bits 32-83 des einen Formates
(CU lang), und ein anderes Feld (CU kurz) entspricht den Bits 32-41 eines anderen Formats. Diese Felder werden
durch den Decoder 704-114 in die Sätze der bezeichneten Bits decodiert und in den Decodern 704-116, 704-124,
704-126 und 704-128 kombiniert. Eine weitere Decodierung wird durch die Schaltungen der Blöcke 704-118, 704-135
und 704-120 vorgenommen. Die Ergebnisse der Decodierung derartiger Felder werden entweder in dem Prozessor 700
verteilt, oder aber sie werden in einem RMEM-Register 704-130, einem RSZ-Flipflop 704-132, einem FREQDIR-Flipflop 704-136 und einem FREQCAC-Flipflop 704-134 gespeichert.
Eine zusätzliche Decodierung der langen und kurzen CU-Felder und Signale von den I-Zykluszustands-Schaltungen
des Blocks 704-112 erfolgt über einen Decoder 704-106 und einen Decoder 704-107. Der Decoder 704-106 erzeugt
Steuersignale zum Laden unterschiedlicher Register der vorgesehenen Register und zur Freigabe verschiedener
Multiplexer-Auswahlschalter innerhalb des Prozessors 700. Der Decoder 704-107 arbeitet in der Weise, daß er Signale
zum Setzen eines Paares (RBASB) der Basiszeiger-B-Flipflops 704-144 erzeugt. Andere Kombinationen dieser Signale
werden zum Setzen bzw. Zurücksetzen der Deskriptor-
030025/0769
nummer-Flipflops der Blöcke 704-140 und 704-142 herangezogen.
Aus Fig. 3c geht hervor, daß der Decoder 704-116 ein Steuersignal EXHOO aufnimmt, welches von den Decoderschaltungen
des Blocks 704-117 erzeugt wird. Diese Schaltungen nehmen Signale von dem RDESC-Register 704-140 her
auf sowie Signale von den Abgabe-Flipflops des Blocks 701-1. In Übereinstimmung mit den Zuständen dieser Signale
geben die betreffenden Schaltungen das Signal EXHOO als Binärsignal 0 ab, um die Erzeugung eines Cachespeicherbefehls
auf das Auftreten eines Ausgabezustands hin zu sperren. Das Signal EXHOOO wird in Übereinstimmung mit
folgendem Boolschen Ausdruck erzeugt.
EXHOOO = DESCO · FE11 + DESC1 . FE2 + DESC2 . FE3.
Das Flipflop FNUM wird normalerweise auf das Auftreten des CCS-OP-Feldes des Mikrobefehlswortes hin gesetzt.
Wenn das betreffende Flipflop in den Binärzustand 1 gesetzt ist, zeigt dies an, daß der verarbeitete Deskriptor
vom Zifferntyp bzw. numerischen Typ ist.
Im Folgenden werden die verschiedenen Flipflops des Blocks 704-104 im einzelnen erläutert. Das Flipflop
FCHAR ruft dabei im einzelnen Änderungen in der Steuerung der Adressenerzeugung hervor. Wenn das FCHAR-Flipflop in
den Binärzustand 1 während der Verarbeitung sines Ladebefehls gesetzt ist, der eine Zeichenmodifikation spezifiziert,
dann wird der Inhalt des RDI-Registers unter dem Einfluß der Hardware-Steuerung nicht geändert. Dies ermöglicht,
das RDI-Register mit Daten unter einer Mikroprogrammsteuerung vor dem Beginn der Pipeline-Operation zu
laden. Wenn das FCHAR-Flipflop in den Binärzustand 1 während
des Vorhandenseins eines Speicherbefehls gesetzt ist, der eine Zeichenmodifikation spezifiziert, dann wird außerdem
die Ausführungsadresse für diesen Befehl unter der Hard-
C3C025/0769
steuerung modifiziert, um auf eine eindeutige Adresse
der Mikrobefehlsfolge in dem ECS-Steuerspeicher hinzuzeigen, gemäß der dieser Befehlstyp zu verarbeiten ist.
Das Flipflop FDT-FOUR führt zu einer zusätzlichen Steuerung bezüglich des Auslesens des Adreßregisters
(ZAR0 ) des Blocks 704-304. Das Flipflop FADR-WD sorgt für eine zusätzliche Steuerung bezüglich des ZDO-Schalters
704-340. Wenn dieses Flipflop in einen Binärzustand gesetzt ist, dann wird in der ZAR-Stellung des ZDO-Schalters
eine Wortadresse ausgewählt. Das Flipflop FAD-B bewirkt eine zusätzliche Steuerung bezüglich des ZDO-Multiplexerschalters.
Wenn dieses Flipflop im Binärzustand 1 ist, dann wird über die ZAR-Stellung des ZDO-Schalters
eine Byteadresse ausgewählt. Das Flipflop FNUM wird normalerweise in Abhängigkeit von dem Feld CCS-OP des
Mikrobefehlswortes gesetzt. Wenn das betreffende Flipflop in den Binärzustand 1 gesetzt ist, zeigt dies an,
daß der verarbeitete Deskriptor ein solcher vom numerischen Typ ist. Das Flipflop FIG-LEN sorgt für eine zusätzliche
Steuerung über das Laden der Register innerhalb der Einheit 722 (Längenregister) und über die Speicheroperationen
hinaus . Wenn das betreffende Flipflop in den Binärzustand 1 gesetzt ist, werden die Register RXP
und JRLN innerhalb der Einheit 722 von dem RSIR-Register 704-154 während bestimmter Zustände der Prozessorsteuerzustände
FROP nicht geladen.
Das Flipflop FINH-ADR sperrt die Operation der Adressen-Bildungseinheit
704-3. Wenn das betreffende Flipflop in den Binärzustand 1 gesetzt ist, umfaßt ein Adressenzyklus
(FPOA/FPOP) das Addieren des Inhalts eines eine Effektivadresse enthaltenden Kurzzeit-Speicherregisters REA-T zu
Null. Das Register REA-T wird mit der Adresse vor Ausführen eines FPOA-FPOP-Zyklus geladen sein. Das FABS-Flipflop
ermöglicht die Erzeugung von absoluten Adressen. Wenn das betreffende Flipflop in den Binärzustand 1 ge-
030025/0769
setzt ist, wird eine 24 Bit umfassende absolute Adresse verwendet. Im Hinblick auf das Kennzeichen oder die
Kennzeichnung des Flipflops des Blockes 704-110 sei bemerkt, daß das Flipflop FID dann, wenn es in den
Binärzustand 1 gesetzt ist, eine Anzeige darüber liefert, daß eine indirekte Adressenmodifikation während eines
Befehls bezüglich des Deskriptors erforderlich ist, der in das RSIR-Register geladen ist.
Das FRL-Flipflop zeigt im gesetzten Zustand (Binärzustand
1) an, daß die Länge in einem Register spezifiziert ist, der dem Befehl zugehörig ist, welcher in die verschiedenen
Befehlsregister geladen ist. Die drei Flipflops FINDA, FINDB und FlNDC liefern Anzeigen, die zur
Verarbeitung von Befehlen des Speichertyps herangezogen werden. Das Flipflop FINDA wird in einen Binärzustand 1
gesetzt, wenn eine Länge in einem Register spezifiziert ist oder wenn das Flipflop FAFI in den Binärzustand 1
gesetzt ist. Das Flipflop FlNDB wird in einen Binärzustand 1 dann gesetzt, wenn der Deskriptor nicht 9-Bit-Zeichen
umfaßt. Das Flipflop FINDC wird in einen Binärzustand 1 gesetzt, wenn der Deskriptor 6-Bit-Zeichen
enthält.
Das FAFl-Flipflop wird in einen Binärzustand 1 dann gesetzt,
wenn die Prozessorschaltungen feststellen, daß das Anzeigebit 30 des IR-Registers 701-41 in den Binärzustand
während der Ausführung eines EIS-Befehls gesetzt war, der
kennzeichnend ist für eine Mitten-Befehlsunterbrechung (die erforderlich ist zur Einstellung des Zeigers und
der Längenwerte aufgrund der Unterbrechung). Die Flipflops FTRGP, TTNGO und FTRF-TST werden in Verbindung
mit Transfer-Befehlen in Binärzustände 1 gesetzt. Das FTRGP-Flipflop liefert insbesondere eine Mikroprogrammanzeige
des Gesetztseins in dem Binärzustand 1, wenn die Prozessorschaltungen das Auslesen eines Befehls vom
Transfertyp während der Ausführung eines Doppelablauf-(XED)
030025/0769 ORIGINAL INSPECTED
oder eines Wiederhol_ungs-Befehls ermitteln. Das FTNGO-Flipflop
liefert eine Mikroprogranimanzeige darüber, daß es im Binärzustand 1 gesetzt ist, wenn die durch die
Ablaufsteuereinheit 701 signalisierte Ubertragungsbedingung ein NOGO-Transfer war (was bedeutet, daß der
Transfer nicht stattfindet). Das Ausgangssignal dieses Flipflops wird der Leitung NOGO der Schnittstellenschaltung
604 zugeführt. Das Flipflop FTRF-TST dieser Gruppe liefert eine Anzeige, wenn das betreffende Flipflop in
den Binärzustand 1 gesetzt ist, wodurch angezeigt wird, daß der von dem Prozessor 700 zuvor ausgeführte Befehl
ein Befehl vom Transfertyp war und daß der gerade ausgeführte I-Zyklus vom Vorhandensein eines Transfer-GO-(TRGO)-Signals
von der Steuereinheit 701 her abhängt.
Die Schaltungen des Blockes 704-110 umfassen darüber hinaus eine Anzahl von Flipflops, die zur Ausführung von
indirekten Adressierungsoperationen unter einer fest verdrahteten Steuerung ausgenutzt sind, und zwar für
andere Befehle als für die EIS-Befehle. Diese Flipflops
umfassen die Flipflops FIR, FIRT, FIRL und FRI, die in die Binärzustände 1 als Funktionen unterschiedlicher
Arten von indirekten Adressierungsmodifikationen gesetzt werden, die auszuführen erforderlich ist. So signalisiert
beispielsweise das FRI-Flipflop einem Register sodann eine
indirekte Adressenmodifikation, und das betreffende Flipflop wird in einen Bimrzustand 1 umgeschaltet, wenn eine
indirekte Registeranzeige (RI) durch ein Binärsignal 1 gegeben ist. Das FRI-Flipflop wird in einen Binärzustand
dann umgeschaltet, wenn eine indirekte Registeranzeige (IR) als binäre 1 auftritt. Dieses Flipflop signalisiert den
Beginn einer indirekten, sodann erfolgenden Registeradresseamodifikation.
Das FIRL-Flipflop wird dann in einen Binärzustand 1 umgeschaltet, wenn bei indirektem Betrieb
eine indirekte Zähleranzeige (IT-I) eine binäre 1 ist. Dieses Flipflop signalisiert eine letzte indirekte
-£30 025/07-6 9-ORlGlNAL
INSPECTED
Operation. Lin weiteres Flipflop TSX2 liefert eine Anzeige, die bei der Verarbeitung eines Transfers herangezogen
wird, und setzt Indexbefehle, während ein Flipflop STR-CPR im Zuge der Verarbeitung von Speicherbefehlen
ausgenutzt wird.
Wie aus Fig. 3c ersichtlich ist, werden die Ausgangssignale
von den Steuerkennzeichen-Flipflops des Blockes 704-110 als Eingangssignale an die Verzweigungsanzeigeschaltungen
des Blockes 700-1 abgegeben. Außerdem werden die Ausgangssignale von den Steuerkennzeichen-Flipflops
als Eingangssignale den I-Zyklus-Flipflops des Blockes
704-102 zugeführt.
Im folgenden wird der Registerbereich 704-150 näher erläutert.
Wie aus Fig. 3c hervorgeht, umfaßt die Steuerlogikeinheit
704-1 ferner einen Registerbereich 704-150. Dieser Bereich umfaßt das Basisbefehlsregister (RBIR)
704-152, das sekundäre Befehlsregister (RSIR) 704-154,
ein Basiszeiger-A-Register (RBASA) 704-156, welches zur Auswahl eines der Adressenregister RARO bis RAR7 des
Blockes 704-304 herangezogen wird, ein Leseindexregister A(RRDXA) 704-158, welches zur Auswahl von
Indexregistern innerhalb des Bereiches 704-5 (nicht dargestellt) ausgenutzt wird und welches zur Auswahl
von Ausgangssignalen des ZDO-Multiplexerschalters 704-340
herangezogen wird, sowie ein Lese-Index-A-Aufbewahrungsregister (RRDXAS) 704-159 und ein Deskriptor-Register
(RTYP) 704-160, welches den Typ der Datenzeichen angibt, auf die durch den Deskriptorwert hingezeigt wird (z.B.
9-Bit, 6-Bit, 4-Bit). Der Auswahlbereich 704-150 umfaßt ferner ein 1-Bit-Befehls/EIS-Deskriptorregister, welches
mit R29 des Blockes 704-162 bezeichnet ist. Der Zustand dieses Bits in Verbindung mit dem Inhalt des Registers
RBAS-A 704-158 wird dazu herangezogen, das bestimmte Adressenregister auszuwählen, welches für die Adressenbildung
herangezogen wird. Wenn das Register R29 des
030025/0769
^2, 294957t
Blockes 704-162 in den Binärzustand 1 gesetzt ist, zeigt dies an, daß keine der Adressenregister des Blockes
704-304 während der Adressenbildung herangezogen werden. Die letzten Register des Bereiches 704-150 umfassen
ein Daten- bzw. Dateneingaberegister (RDI) des Blockes 704-164 und ein Lese-Indexregister B (RRDXB), welches
auf Register hinzeigt, die von der Ablaufeinheit 714 benutzt werden.
Wie aus Fig. 3c ersichtlich ist, wird das RBIR-Register 704-152 über einen in zwei Stellungen einstellbaren
Schalter 740-170 geladen, der so geschaltet ist, daß er Signale von den bezeichneten Quellen her aufnimmt
(das sind ein Schalter ZIB-B 704-172 und Leitungen ZDI 0-35). Das RSIR-Register 704-154 nimmt in
entsprechender Weise Signale von den ZDI-Leitungen und dem Schalter 704-172 her auf. Das RBASA-Register 704-156
nimmt Signale von der ZDI-Leitung 0-2 zusätzlich zu Signalen von einem weiteren Schalter ZBASA des Blockes
704-174 auf. Das RDDXA-Register und das RTYP-Register nehmen Signale von den ZDI-Leitungen sowie von einem
Schalter 704-176 und 704-178 her auf, wie dies veranschaulicht ist. Außerdem nimmt das RRDXA-Register Signale
von dem RRDXAS-Register 704-159 her auf.
Der Schalter 704-172 ist ein in zwei Stellungen einstellbarer Schalter, der Eingangssignale von den Schaltern
ZIB bzw. ZRESB her aus der Cachespeichereinheit 750 bzw. von der Ablaufeinheit 714 her zugeführt erhält. Der
Schalter 704-174 ist ein drei Eingänge aufweisender Schalter, der zwei Eingangssignale von den Ablaufeinheiten
714 und das Ausgangssignal des ZIB-Schalters der Cachespeichereinheit 750 her aufnimmt.
Der Schalter 704-176 ist ein vier Eingänge aufweisender Schalter, der zwei seiner Eingangssignale von der Ablaufeinheit
714 und ein einzelnes Eingangssignal von der
030025/0769
29A9571
Cachespeichereinheit 750 zugeführt erhält. In der ersten Stellung des ZRDXA-Schalters 704-176 wird das Ausgangssignal
eines ZRDXM-Schalters 704-185 ausgewählt, in einer
Stellung dieses Schalters wird ein Kennzeichenfeldwert von den Bitpositionen 5-8, 14-17 und 32-35 des RBIR-Registers
704-152 bzw. von den Bitpositionen 32-35 des RSIR-Registers 704-154 bereitgestellt, was durch den
ZIDD-Schalter 704-180 und einen in zwei Stellungen
einstellbaren ZMF-Schalter 740-176 ausgewählt wird.
in der zweiten Stellung des Schalters 704-185 wird ein konstanter Wert vom Ausgang des ECS-Ausgaberegisters
704-1 abgegeben (CCM-FeId 32-34). Die von den Leitungen
ZIDD 27-35 her Kommenden Signale werden als Eingangssignale an die Steuerkennzeichen-Flipflops des Blocks
704-110 abgegeben. Der Schalter 704-178 nimmt ein Eingangssignal von dem Steuerspeicher 704-2 her auf sov/ie
ein Eingangssignal von der Cache Speichereinheit 750 und ein Eingangssignal von der Ablaufeinheit 714.
Das Dateneingaberegister 704-164 nimmt eine Reihe von Eingangsdaten von einem ZIDD-Schalter 704-180 her auf,
der in Reihe zu einem ZDIA-Schalter 704-181 liegt, dessen
Ausgangssignal ein Eingangssignal für einen weiteren Schalter 704-182 darstellt, welches direkt in das RDI-Register
704-164 geladen wird. Der ZDIA-Schalter 704-181 liefert ein weiteres Eingangssignal an einen drei Eingänge aufweisenden
Schalter 704-183, der an den anderen bezeichneten Eingängen Signale von der Cache Speichereinheit 750 und
der Ablaufeinheit 714 zugeführt erhält.
Der ZIDD-Schalter 704-180 erhält eine effektive Adresse
über den Schalter 704-186 von der Adressenbildungseinheit 704-3 sowie Eingangssignale von dem RBIR-Register
704-152, von dem RSIR-Register 704-154 und von einem in zwei Stellungen einstellbaren ZMF-Schalter 704-187
030025/0769
zugeführt. Die Positionen 18 bis 35 der REA-Stellung
des Schalters 704-180 werden, wie veranschaulicht, von dem ZDIA-Schalter 704-181 abgeleitet. Der ZDIA-Schalter
704-181 erhält Signale von den ZDI-Leitungen 0-35 zugeführt sowie einen konstanten Wert, der aus den Eingangssignalen für eine erste Schalterstellung erzeugt wird,
und zwar zusätzlich zu Signalen vom Ausgang des ZIDD-Schalters 704-80 und des ZRESB-Schalters in der Ablaufeinheit
714. Der Schalter 704-182 nimmt des Ausgangssignal des ZDIA-Schalters und die Signale von den ZDI-Leitungen
0-35 auf. Das RRDXB-Register 704-189 wird mittels eines in drei Stellungen einstellbaren Schalters
704-188 geladen. Der Schalter nimmt in einer ersten Stellung Signale von einem RREG-Register auf, welches in
der Ablaufeinheit enthalten ist. Einen konstanten Wert nimmt der betreffende Schalter von dem Steuerspeicher
701-2 in einer zweiten Stellung auf, und in einer dritten Stellung nimmt er Signale von dem ZIDD-Schalter her auf.
Der Bereich 704-150 umfaßt ferner einen in zwei Positionen einstellbaren Schalter 704-185 sowie ein Notizblockspeicher-Zeigerregister
704-186, dessen Ausgangssignal von der Einheit 722 dazu herangezogen wird, Adressen für
einen Zugriff zu dem Notizblockspeicher der Einheit zu bilden. In der ersten Schalterstellung wird ein
konstaner Wert bereitgestellt, der unter Hardware-Steuerung ausgewählt wird (FP0A«R29). In der zweiten
Schalterstellung wird als Ausgangssignal der Inhalt des RBASA-Registers 704-156 abgegeben. Diese Stellung
wird sowohl unter Hardware-Steuerung als auch unter Mikroprogrammsteuerung ausgewählt (d.h. FP0A-R29 oder
MISCREG-FeId).
Es sei darauf hingewiesen, daß die erforderlichen Zeitsteuerungs- bzw. Taktsignale für den Betriebsbereich
sowie für die anderen Bereiche des Porzessors 700 und der Cachespeichereinheit 750 von zentral angeordneten
Θ30025/0769
2943571
Taktschaltungen geliefert werden. So sind beispielsweise bei der bevorzugten Ausführungsform gemäß Fig. 1 die
Taktschaltungen in dem Eingabe/Ausgabe-Prozessorsystem untergebracht. Derartige Taktschaltungen können als in
herkömmlicher Weise aufgebaut betrachtet werden; sie können einen quarzgesteuerten Oszillator und Zählerschaltungen
umfassen. Die Zeitsteuerungs- oder Taktsignale von den Taktschaltungen her werden in herkömmlicher
Weise an die verschiedenen Teile des Systems gemäß Fig. 1 zur Erzielung eines synchronisierten Betriebs verteilt.
Aus derartigen Zeitsteuersignalen leiten in dem Prozessor 700 vorgesehene Schaltungen zusätzliche Taktsigriale
bei Bedarf ab. Hierauf wird weiter unten im Zusammenhang mit der Erläuterung der Cachespeichereinheit
750 gemäß Fig. 4 eingegangen.
Im folgenden wird die Adressenbildungseinheit 704-1 näher erläutert. Die Adressenbildungseinheit 704-3 umfaßt
eine Anzahl von Registern und Addierern. Die Register enthalten eine Anzahl von Basisregistern (d.h. TBASEO bis
TBASEB) des Blockes 704-300, die zur Speicherung von Deskriptorwerten eines Befehls verwendet werden, zwei
Kurzzeitregister zur Speicherung von effektiven Adressen (TEAO, TEA1) und zwei Befehlszähler (ICBA, ICBB), die in
dem Block 704-302 enthalten sind, der zur Adressierung des Befehlspuffers herangezogen wird. Außerdem sind
acht Adreßregister (RARO bis RAR7) des Blockes 704-304 während der Adressenbildungsoperationen ausgenutzt. Die
Einheit 704-3 umfaßt ferner einen Befehlszähler 704-310.
Die Addierer umfassen den Addierer 704-312, der zur Aktualisierung des Befehlszählers 304-310 über die
Schalter 704-311 und 704-314 verwendet wird, sowie zwei
Addierer 704-320 und 704-322. Der Addierer 704-322 wird dazu herangezogen, einen effektiven Adressenwert zu erzeugen,
der in einem Register 704-342 gespeichert wird und als ein Eingangssignal an die Steuereinheit 704-1
030025/0769
abgegeben wird. Die effektive Adresse wird von einer
Anzahl von Quellen erzeugt, die einen ZY-Schalter 704-326, dessen Ausgangssignal über eine Anzahl von UND-Gliedern
des Blockes 704-327 abgegeben wird, ausgewählte Adreßregister des Blockes 704-304 oder ausgewählte Kurzzeit-Adreßregir.ter
TKAO und TEA1 des Blockes 704-302 umfassen, wobei die Adressenabgabe über einen weiteren Schalter
704-328 erfolgt. Die betreffenden Quellen können aber auch Indexadressignale ZXO-20 von der Einheit 704-5 umfassen.
Darüber hinaus wird der Addierer 704-322 dazu herangezogen, den Inhalt des Befehlszählers des Cachespeicher-Befehlspuffers
zu aktualisieren.
Wie aus Fig. 3d hervorgeht, werden die Ausgangssignale
des Addierers 704-322 außerdem als Eingangssignale dem Addierer 704-320 zugeführt. Der Addierer 704-320 wird
dazu herangezogen, den in irgendeinem der Kurzzeit-Basisregister TBASEO bis TBASEB gespeicherten Basiswert
mit den Adressensignalen ACSOSO-19 vom Addierer 704-322
her zu kombinieren. Die dadurch erzielten Bits werden als Eingangsgröße einem weiteren Addierernetzwerk 704-320
zugeführt, welches eine Verknüpfungsadresse erzeugt, die über einen Addierer 704-321 an die Leitungen ASFAO-36
abgegeben wird. Dieser Addierer summiert die Operanden-Eingangssignale mit den Ubertrags-Eingangssignalen von
den Blöcken 704-300 und 704-320 auf. Die effektive Adresse wird dazu herangezogen, eine absolute Adresse
zu erhalten, wenn das System in einem Seiten- bzw. Seitenwechselbetrieb betrieben ist. Da diese Operation
für die vorliegende Erfindung nicht wichtig ist, wird sie hier nicht weiter erläutert. Zur weiteren Information
bezüglich einer Adressenbildung sei auf die US-PS 39 76 978 hingewiesen.
Die als Kurzzeitregister bezeichneten Zwischenspeicherbasisregister
des Blocks 704-300 werden über einen Schalter 704-332 geladen. Der Schalter erhält ein
030025/0769
- i*r- 294957 t
Eingangssignal von der Ablauf einheit 714 und das Ausgangssignal
von dem Block 704-300 zugeführt. Die Ablaufeinheit 714 gibt weitere ivLngangssignale an die Register
des Blockes 704-302 über einen Schalter 704-334 sowie an die Adreßregister des Blockes 704-304 ab. Ein Ausgangs-Multiplexer-(ZD0)-5chalter
704-340 gibt die Auswahl der verschiedenen Register innerhalb der Adressenbildungseinheit
704-3 und eine Einheit 704-5 für den Transfer der Inhalte der betreffenden Einheiten zu der Ablaufeinheit
714 hin über die Leitungen ZDO 0-35 frei. Außerdem gibt der ZDO-Schalter 704-340 den Inhalt der verschiedenen
Register und Steuer-Flipflops der Einheit 704-1 frei, um über eine vierte Stellung (ZDO-A) ausgelesen
zu werden. In der fünften Stellung sind die Zustände der verschiedenen Anzeigen innerhalb der Steuerspeicherschaltungen
des Blockes 701-1 zum Zwecke einer Auswahl zwecks Überprüfung freigegeben.
Im folgenden wird der Daten/Adreß-Ausgabebereich 704-4 gemäß Fig. 3e näher betrachtet. Dieser Bereich umfaßt
die Register und Schalter, die zur übertragung von Befehlen und Daten zu dem Cachespeicher 750 hin verwendet
werden. Derartige Transferoperationen erfordern normalerweise zumindest zwei Zyklen, einen zum Aussenden
einer Adresse und einen weiteren zum Aussenden der Daten. Die Bits 5-8 eines Befehlswortes werden vom Ausgangssignal
eines 4-Stellungs-Schalters 704-40 gewonnen. Dieser Schalter
erhält einen ersten konstanten Wert über eine erste Schalterstellung, den Inhalt eines RZN-Registers 704-42
über eine zweite Stellung, einen zweiten konstanten Wert über eine dritte Stellung und einen dritten konstanten
Wert über eine vierte Stellung.
Die Bits 1-4 eines Befehls werden von den Schaltungen des Blockes 704-1 einer ODER-Verknüpfungsschaltung 704-44
zusammen mit den Bits 5-8 zugeführt. Das ODER-Glied 704-44 erhält außerdem über einen ZADO-Schalter 704-46 die
030025/0769
Bits 1-8 eines IIADO-Register 704-48 zugeführt. Das
RADO-Register 704-48 ist ein Adressen- und Datenausgaberegister, welches in einer ersten Stellung eines
ZADOB-Schalters 704-48 eine (virtuelle) Verknüpfungsadresse von der Adressenbildungseinheit 704-3 über die
Leitungen ASFAO-35 und Datenausgangssignale von der Einheit 714 über die Leitungen ZRESBO-35 aufnimmt.
Die Einstellungen des ZADOB-Schalters 704-48 erfolgen unter der Steuerung des FMTD-Feldes für ein kleines
CU-Format und unter der Steuerung des RADO-Feldes im Falle eines großen CU-Formates.
Wie aus Fig. 3e ersichtlich ist, werden entweder die Bits ZZN1-8 oder die ZADO-Bits 1 bis 8 als Ausgangssignale
an die RADO/ZADO-Leitungen abgegeben, und zwar als
Funktion des Zustands des Steuersignals RADO-ZADO. Die Bits 0 und I führen stets binäre Einsen, während die
Bits 10-35 von den RADO-Registern 704-46 geliefert werden.
Eine weitere Information bezüglich der übrigen Bereiche des Prozessors 700 sowie bezüglich der Bereiche gemäß
Fig. 3a bis 3e findet sich der eingangs erwähnten
anderen Stelle.
Im folgenden wird die Cachespeichereinheit 750 gemäß Fig. 4 näher erläutert. Die Cachespeichereinheit 750
ist in fünf Hauptbereiche unterteilt: Einen Transitpuffer und einen Befehlsschlangenbereich 750-1, einen
Cachespeicherbereich 750-3, einen Adreßlisten- und Treffer-Steuerbereich 750-5, einen Befehlspufferbereich
750-7 und einen Befehlszählerbereich 750-9.
Nachstehend wird der Transit-Puffer- und ßefehlsschlangenbereich 750-1 näher betrachtet. Dieser Bereich
umfaßt als Hauptelemente einen Vier-Wort-Schreibbefehlspuffer 750-100 und einen Vier-Wort-Transitblockpuffer-
G30025/0769
Lesebefehlspuffer 750-102. Diese Puffer werden über
zv/ei Zählerschaltungen 750-104 und 750-106 adressiert. Darüber hinaus umfaßt der betreffende Bereich eine
Befehlsschlange 750-107 mit zugehörigen Eingabe- und
Äusgabeadressenzeiger- und Vergleicherschaltungen der Blocke 750-108 bis 750-110. Der Schreibpuffer 750-100
sorgt für die Speicherung eines Zweier-Einfachschreiboder
eines einzigen Doppelschreibbefehls, während der Transitblock 750-102 für eine Speicherung bis zu vier
Lesebefehlen sorgt. Der Transitblockpuffer 750-102 speichert ferner eine Information, die derartigen
Lesebefehlen zugehörig ist und die zur Steuerung des •iinschreibens von Speicherdatenwörtern lnpugeteilten
Bereiche des Cachespeicherbereichs 750-3 dient (das sind die Ebenen). Die vier Register ermöglichen bis
zu vier Spricherlesevorgänge zu einem vorgegebenen Zeitpunkt fortschreitend auszuführen.
Der Bereich 750-1 umfaßt ferner einen Steuerbereich 750-112. Dieser Bereich enthält Reihen von unterschiedlichen
Steuerschaltungen, wie den Befehlsdecoder und Steuerschaltungen
des Blockes 750-113 und 750-114, die Schnittstellen-Steuerschaltungen
der Blöcke 750-115 und 750-116 und HalteSteuerschaltungen des Blockes 750-117.
Die Schaltungen der Blöcke 750-113 und 750-114 decodieren
die Befehle, die von dem Prozessor 700 über die RADO/ZADO-Leitungen der Schnittstellenschaltung
604 übertragen sind. Außerdem erzeugen die betreffenden Schaltungen Steuersignale, um Einträge in
die Befehlsschlange 750-107 vorzunehmen, um Werte in den Eingabe-Zeiger- und Ausgabe-Zeiger-Schaltungen der
Blöcke 750-108 und 750-109 zu inkrementieren bzw. zu vergrößern bzw. zu setzen. Außerdem erzeugen die Schaltungen
Steuersignale zur Abspeicherung von Befehlen ent-
030025/0769
weder im Schreibpuffer 750-100 oder im Transit-Blockpuffer 750-102.
Die Schnittstellen-Steuerschaltungen der Blöcke 750-115 und 750-116 erzeugen Signale zur Steuerung des Transfers
von von der Systemschnittstelleneinheit 100 her aufgenommenen Datensignalen in den Bereich 750-7 bzw. die
Übertragung von Befehlen, die den Transfer derartiger Befehle zu der Systemschnittstelleneinheit umfassen.
Die Halteschaltungen des Blockes 750-117, die Signale
von der Decoderschaltung 750-113 her aufnehmen, erzeugen Steuersignale zum Festhalten der Abwicklung bzw. Ausführung
von Befehlen in geeigneten Situationen (z.B. Adreßlistenbereich belegt) und zur Steuerung des Ladens
von Daten in den Bereich 750-7.
Aus Fig. 2 geht hervor, daß der Transfer von Schreibbefehls-Steuerwörtern
von dem Puffer 750-100 ausgeht und über die dritte Stellung eines in vier Stellungen
einstellbaren ZDTS-Schalters 750-118, ein Datenregister
715-119 und die erste Stellung des in zwei Stellungen einstellbaren Schalters 750-120 verläuft.
Die Schreibdatenwörter werden von dem Puffer 750-100 zu der Systemschnittstelleneinheit 100 über ein Schreibdatenregister
750-121 und die zweite Stellung des Schalters 750-120 übertragen. Die RWRT-Stellung des Schalters
750-120 wird für ein Taktintervall (,Einzelschreibbefehl;
oder für zwei Taktintervalle (Doppelschreibbefehl) auf die Aufnahme eines Signals von der Systemschnittstelleneinheit
100 über die ARA-Leitung ausgewählt, und zwar in Abhängigkeit davon, daß ein Signal an eine Leitung AOPR
von dem Cachespeicher 750 für die übertragung eines Schreibbefehls abgegeben wird. Lesebefehle werden von
dem Lesebefehlsteil des Transitblockpuffers 750-102 der Systeraschnittstelleneinheit 100 über die vierte
Stellung (ZTBC) des ZDTS-Schalters 750-118, das
030025/0769
Register 750-119 und die erste Stellung des Schalters 750-120 übertragen.
über die Mehrfachanschluß-Identifizierungsleitungen RMITS
werden die Zonen-Bitsignale aufgenommen, und zwar über ein RMITS-Register 750-124 und einen in zwei Stellungen
einstellbaren Schalter 750-125 bezüglich des zweiten Datenwortes in dem Fall, daß ein Doppelschreibbefehl
vorliegt. Wie aus der gerade betrachteten Figur hervorgeht, nimmt dieser Schalter Signale von der Befehlsschlange 750-107 und dem Prozessor 700 auf. Dies bedeutet,
daß dann, wenn der Cachespeich r 750 einen Lesebefehl abgibt, die Transitblocknummer-Signale von der
Schlange 750-107 in die Bitpositionen 2 und 3 des RMITS-Registers 750-124 geladen werden.
Die Transitblocknummersignale werden durch die Systemschnittstelleneinheit
100 an die MIFS-Leitungen mit dem Lesedatenwort zurückgeführt. Diese Signale werden in
ein RMIFS-Register 750-127 über einen Vielfach-Stellungs-Schalter
750-126 geladen. Danach wird der Inhalt der Bitpositionen 2 und 3 über die erste stellung eines in zwei
Stellungen einstellbaren Schalters 750-128 an zwei Adresseneingangsanschlüsse des Transitblockpuffers 750-102
abgegeben. Ein zweites DMIPS—Register 750-129 dient der Kurzzeit- bzw. Zwischenspeicherung
der Transitblocknummernsignale für Mehrfachworttransfers (d.h. für Vier-Lesebefehle).
Die Ausgangssignale von dem Schalter 750-128 werden außerdem an die Steuereingangsanschlüsse eines in vier
Stellungen einstellbaren ZTBA-Schalters 750-130 abgegeben, um die in Frage kommenden Adressensignale auszuwählen,
die an den Cachespeicherbereich 750-3 zur Speicherung der Datenwörter anzulegen sind. Der
Adresseninhalt des Transitblockpuffers 750-102 wird
030025/0769
außerdem einer Reihe von Eingan^sanschlüssen einer bestimmten Vergleicherschaltung einer Gruppe von
Vergleicherschaltungen 750-132 bis 750-135 zugeführt, um dort einen Vergleich mit dem Adressenbereich eines
nächsten Befehls vorzunehmen, der einer zweiten Reihe von Eingangsanschlüssen der Vergleicherschaltungen über
die RADO/ZADO-Leitungen zugeführt wird. Das durch ein NAND-Glied 750-136 erzeugte Vergleichssignal wird an
die Haltesteu^rschaltungen des Blockes 750-117 abgegeben.
Wie aus Fig. 4 ersichtlich ist, werden die Zonenbitsignale des ZAC-Befehls, der an die ZADOB-Leitungen 5-8
im Falle eines Einzelschreibbefehls oder bei einem geradzahligen Wort eines Doppelschreibbefehls abgegeben
ist, in ein RZONE-Register 750-140 geladen, wenn der Schreibbefehl in den Schreibbefehlsdatenpuffer 750-100
geladen ist. Das Ausgangssignal des RZONE-Registers 750-140 wird an die erste Stellung eines in zwei
Stellungen einstellbaren ZONE-Schalters 750-144 abgegeben. Die Zonenbitsignale ZDZDO-3, die an die
Leitungen DZDO-3 von dem Prozessor 700 her für das ungeradzahlige Wort des Doppelschreibbefehls abgegeben
werden, werden in ein RDZD-Register 750-142 geladen. Das Ausgangssignal des RDZD-Registers 750-142 wird an
die zweite Stellung des ZONE-Schalters 750-144 abgegeben. Die Ausgangssignale ZONEO-3 werden an die Schaltungen
des Bereichs 750-9 zur Steuerung des Einschreibens von Prozessordaten in den Cachespeicher 750-300 abgegeben,
wie dies noch erläutert wird.
Nachstehend wird der Cachespeicherbereich 750-3 näher betrachtet. Dieser Bereicn umfaßt den Cachespeicher 750-300
mit 8192 (8K) 36-Bit-Wortspeicherplätzen, die in 128 Reihen von acht Acht-Wort-Blöcken organisiert sind. Die Einheit
750-300 ist aus bipolaren Speicherchips mit wahlfreiem
030025/0769
Zugriff in herkömmlicher Ausführungsform aufgebaut.
Die Cachespeich^reinheit 750-300 wird durch eine 10-Bit-Adresse
RADR 24-33 adressiert, die über irgendeinen der in einer Anzahl vorliegenden 4 X 4-Crossbar-Schalter
(beispielsweise 75O-3O2a) zugeführt wird, welche von
herkömmlichem Aufbau sind. Die Adressierung erfolgt dabei durch den betreffenden Schaltern zugehörige Adreßregister.
Wie aus der vorliegenden Figur hervorgeht, nimmt der Crossbar-Schalter Adressensignale von verschiedenen
Quellen her auf, die den Bereich 750-5, den ZTBA-Schalter 750-130 und den Bereich 750-7 umfassen.
Die am Ausgang des Crossbar-Schalters auftretenden Adressensignale werden kurzzeitig in dem zugehörigen
Adressenregister zwischengespeichert und an die Adresseneingangsanschlüsse der Cachespeichereinheit 750-300 abgegeben.
Viährend eines Schreibzyklus des Betriebs werden die vier
oätze von Schreibsteuersignalen (WRT00100-VRT70100 bis
WRTO31OO-731OO), die von dem Bereich 750-9 erzeugt werden,
an die Cachespeichereinheit 750-300 abgegeben und dazu herangezogen, Taktsignale an die Schreibabtasteingangsanschlüsse
der Speicherchips abzugeben oder zu diesen hinzuleiten. Dies ermöglicht, ein bis vier Bytes
entweder eines Datenwortes von dem Prozessor 700 über die ZADO/RADO-Leitungen oder ein Speicherdatenwort vom
Bereich 750-7 in eine adressierte Ebene von acht Ebenen der Cachespeichereinheit 750-300 einzuschreiben. Bei
Prozessordaten werden die Schreibsignale dadurch erzeugt, daß die Signale Ζ0ΝΈ0-3 von dem Schalter 750-144 her decodiert
werden. Bei Speicherdatenwörtern werden sämtliche Zonensignale in Binärsignale 1 überführt.
Die in Frage kommende Ebene wird durch die Zustände der Signale RTBLEVO100-2100 von dem Transitblockpuffer 750-102
03G025/0769
festgelegt, wenn Schreibspeicherdaten vorliegen, und durch die Treffer-Ebene, die durch die Adreßlistenschaltungen
des Blocks 750-512 ermittelt wird, wenn Schreibprozessordaten vorliegen. Diese Signale werden durch
eine Decoderschaltung 750-303 decodiert, wenn die Freigabe durch ein Signal KNBMEMLEV100 von dem Bereich
750-9 her vorliegt.
Während eines Lesebetriebszyklus wird das 36-Bit-Wort jedes der acht Blöcke (,Ebenen) als Eingangssignal an
einen i-aus-8-ZCD-Schalter 750-306 abgegeben. Die Auswahl
des in Frage kommenden Wortes wird durch die Zustände einer Reihe von Treffer-Ebenensignalen ZCD010-210
festgelegt, die durch den Bereich 750-5 erzeugt werden. Diese Signale werden an die Steuereingangsanschlüsse des
ZCD-Schalters 750-306 abgegeben.
Wie aus der vorliegenden Figur ersichtlich ist, wird das ausgewählte Wort an zwei Register 750-308 und
750-310, an einen i-aus-8-ZDI-Schalter 750-312 und
an einen i-aus-4-ZIB-Schalter 750-314 abgegeben. Die
RIRA- und RlRB-Register 750-308 bzw. 750-310 geben ihre Inhalte an verschiedene Stellungen bzw. Positionen der
ZIB- und ZDI-Schalter 750-312 bzw. 750-314 ab. Der Zlß-Schalter 750-314 wählt Befehle aus, die an den
Befehlsbus (.ZlB) des Prozessors 700 abgegeben werden,
während der ZDl-Schalter 750-312 Daten oder Operanden
auswählt, die an die Dateneingabebusleitung (ZDI) des Prozessors 700 abgegeben werden.
Zusätzlich zur Abgabe der Befehlswortsignale, die aus dem Cachespeicher 750-300 ausgelesen sind, gibt der
ZIB-Schalter 750-314 außerdem Befehlswortsignale, die
er von dem Bereich 750-7 her erhalten hat, an den Prozessor 700 ab. Der ZDI-Schalter 750-312 gibt außerdem
Datensignale, die er von dem ZCDIN-Schalter 750-304 und
den Bereich 750-7 her erhalten hat, an den Prozessor
03G025/0769
ab. Die Zustände der Steuersignale ZIB010-110 und
ZDI010-210, die an die Steuereingangsanschlüsse der Schalter 750-314 bzw. 750-312 abgegeben sind, führen
zur Auswahl der Quellen der Befehle bzv/. Datenwörter, die durch die betreffenden Schalter zum Prozessor 700
zu übertragen sind. Die Steuersignale werden durch die Schaltungen des Bereichs 750-9 erzeugt.
Die Signale ZIB010-110 sind so codiert, daß die Stellung Nr. 2 des Schalters 750-314 für eine erste
Befehlsübertragung ausgewählt wird, und zwar auf die Ermittelung eines Adrei31isten-Treffers hin bezüglich
eines I-Abruf-1-Befehls oder eines Adreßlisten-Treffers
bezüglich eines I-Abruf-2-Befehls, der einem I-Abruf-1-Befehl
für das letzte Wort in einem Block folgt. Die Steuersignale sind so codiert, daß die RIRA-Position
Nr. 1 für nachfolgende Befehlsübertragungen ausgewählt wird, die einem Adreßlisten-Treffer folgen, der auf einen
I-Abruf-1- oder auf einen I-Abruf-2-Befehl hin erzeugt
wird.
In dem Fall, daß der I-Abruf-1-Befehl oder der I-Abruf-Zweierbefehl
zu einer Adreßlisten-Ausweichung führt, werden die Signale ZIB010-110 codiert, um die Schalterposition
Nr. 3 des ZIB—Schalters 750-314 für die Übertragung
von Befehlswörtern auszuwählen, die aus dem Bereich 750-7 aufgenommen werden bzw. sind.
Im Hinblick auf den ZDI-Schalter 750-312 sei bemerkt,
daß die ZCD-Stellung Nr. 1 in Abhängigkeit von der Ermittelung von Adreßlisten-Treffern und Signalen ausge
wählt wird, die an die RDIBUF/ZDI-Leitung auf das Auftreten
eines Adreßlisten-Treffers hin erzeugt werden, der für einen LDQUAD-Befehl erzeugt wird. Speicherdaten
wörter werden an den Prozessor 700 über die ZDIN-Stellung
Nr. 3 des Schalters 750-312 im Anschluß an eine Adreß-
030025/0769
listen-Ausweichung übertragen. Im Anschluß an das Festhalten
des Prozessors 700 bezüglich eines Befehlsaufrufs aus dem Hauptspeicher werden die Signale ZDI010-210
codiert, um die ZDIN-Stellung des Schalters 750-312 für
die Übertragung des ersten Befehls auf dessen Aufnahme durch den Bereich 750-7 auszuwählen. Die übrigen Befehle
werden über den ZIB-Schalter 750-314 übertragen.
Die ZCDIN-Stellung Nr. 2 des Schalters 750-312 wird für
Diagnosezwecke herangezogen, um Signale von den ZADO-B/RADO-Leitungen zu übertragen. Die übrigen
Stellungen bzw. Positionen des ZDI-Schalters 750-312
werden für Anzeigezwecke ausgenutzt (,das sind die Stellungen RIRB, ZRIB und RIRA). Außerdem wird die
Stellung RIRB dazu ausgewählt, Datenwörter zum Prozessor 700 hin im Falle eines LDQUAD-Befehls zu übertragen,
wenn dort ein Adreßlisten-Treffer vorliegt.
im folgenden worden die Adreßliste und der Treffer-Steuerbereich
750-5 näher betrachtet. Dieser Bereich umfaßt eine 8-Ebenen-Steuerungsadreßliste 750-500 und
eine einem 8-Ebenen-Satz zugehörige Adreßliste 750-502. Die Adreßliste 750-502 enthält 128 Speicherplätze,
deren jeder eine 14 Bit umfassende assoziative Adresse für jede Ebene enthält. Ein in vier Stellungen einstellbarer
ZDAD-Schalter 750-530 liefert Speicheradressen für einen wahlfreien Speicherzugriff (RAM) zum Zwecke
der Adressierung der Adreßlisten 750-500 und 750-502, und zwar zusätzlich zur Adressierung der Cachespeichereinheit
750-300.
Während eines Adreßlisten-Suchoperationszyklus wählt der Schalter 750-530 unter der Steuerung von Signalen
SELZDADCO100-1100, die durch die Schaltungen innerhalb
des Blockes 750-526 erzeugt werden, die RADO-Stellung aus. Dadurch werden die 14-Bit-Adressensignale eines
ZAC-Befehls von den Leitungen RADO 24-33 des Prozessors
030025/0769
her an die Ausgangsanschlüsse des ZDAD-Schalters 750-530
abgegeben. Diese Signale werden an die Adresseneingangsanschlüsse der Adreßlisten 750-500 und 750-502 abgegeben.
Während des Suchzyklus wird der Inhalt der acht Block/ Ebenen-Adressen ausgelesen und als Eingangsgröße an jede
Vergleicherschaltung einer Gruppe von acht Vergleicherschaltungen 750-536 bis 750-543 abgegeben. Jede Vergleicherschaltung
vergleicht ihre Block/Ebenen-Adresse mit den Bits 10-23 des ZAC-Befehls, um das Vorliegen
eines Treffer- oder Ausweich-Zustands zu bestimmen. Die durch die Schaltungen 750-536 bis 750-54-3 erzeugten
Ergebnissignale werden an die entsprechenden Eingänge einer Gruppe von UND-Gliedern 750-545 bis 750-552 abgegeben.
Jede Vergleicherschaltung besteht aus bis zu vier Bereichen, wobei die Ergebnisse dieser Bereiche in
einem UND-Glied der UND-Glieder 750-545 bis 750-552 kombiniert werden. Die Endergebnis-Treff er signale
ZHT0100 bis ZHR7100 werden als Eingangssignale an Treffer/Ausweich-Netzwerkschaltungen des Blockes 750-512
abgegeben, wie dies noch erläutert wird.
Die ZAC-Adressensignale werden außerdem in einem RDAD-Register
750-532 aufbewahrt, wenn kein Trefferzustand ermittelt wird (d.h. dann, wenn das Signal HOLD-DMEM
von der Einheit 750-112 her ein Binärsignal 0 ist). Während des Adreßlisten-Zuteilungszyklus, der dem Suchzyklus
folgt, in welchem ein Ausweichzustand ermittelt wurde, wählen die Signale SELZDADCO100-100 die RDAD-Stellung
1 des ZDAD-Schalters 750-530 aus. Außerdem wird ein RDRIN-Register 750-534 mit den 14-Bit-Assoziativ-Adressensignalen
von den ZADO-B-Leitungen 10-23 her geladen, wenn der Adreßlisten-Suchzyklus für das
Einschreiben in die Adreßliste 750-502 beendet ist.
Die Steueradreßliste 750-500 weist ferner 128 Speicherplätze auf, deren jeder eine bestimmte Anzahl von Bitpositionen
zur Speicherung einer Steuerinformation umfaßt.
030025/0769
iiine derartige Information umfaßt die Voll/Leer-(F/E)-Bits
für die acht Ebenen und Umlauf-(RR)-Zählbits zusätzlich zu Paritätsprüfbits (.nicht dargestellt).
Die Voll/Leer-Bits zeigen an, ob die bestimmten Adreßlisten-Adressen
irgendeine Bedeutung haben (d.h. gültig sind). Damit ein Cachespeicher-Treffer auftritt, muß
das F/E-Bit als binäre 1 auftreten. Eine binäre 0 zeigt das Vorhandensein eines Leerblocks oder Leerbereiches
in dem betreffenden Bereich an. Die Umlaufbits führen zu einer Zählerstellung, die anzeigt, welcher Block zuletzt
ersetzt wurde. Diese Zählerstellung wird normalerweise dann, wenn sie über eine der beiden Reihen von
UHD-Gliedern des Blockes 750-400 in das Register 750-5Ob
ausgelesen ist, durch eine inkrementierungs-Addiererschaltung 750-508 erhöht. Die sich ergebenden Signale
NXTRR0-RR2 werden in die Adreßliste 750-500 eingeschrieben, um den nächsten zu ersetzenden Block zu bezeichnen.
Wie aus der gerade betrachteten Figur hervorgeht, wird der F/E-Bit-inhalt der Speicherstelle über die Stellung
eines in zwei Stellungen einstellbaren ZFER-Auswahl-
und
schalters 750-506 ausgelesen/als Eingangsgröße an die
Adreßlisten-Treffer/Ausweich- und Treffer-Steuerschaltungen des Blockes 750-512 abgegeben. Durch den ZFER-Schalter
750-506 wird ausgewählt,welche Hälfte einer Gruppe von F/E-Bits von den Schaltungen des Blockes
750-512 für eine Treffer-Ausweich-Anzeige auszunutzen
ist und welche Hälfte der Gruppe der F/E-Bits von derartigen Schaltungen für eine andere Treffer-Bestimmung
heranzuziehen ist. Ein Adressenbitsignal ZDAD31 steuert die Auswahl der SchalterStellungen.
Die Schaltungen des Blockes 750-510 umfassen eine Mehrbereichs-Multiplexerschaltung,
die die Ausgangssignale FEDAT0100 und FEDAT1100 als Funktion des Treffer- und
Ausweichdatenmusters erzeugt. Demgemäß werden diese
030025/0769
Signale in Abhängigkeit von den ALTHIT-Signalen des Blockes 750-512 gesetzt. Zwei Decoderschaltungen
750-520 und 750-521 arbeiten in der V/eise, daß sie die Ebenen-Informationssignale ZLEV0100-2100 decodieren,
um geeignete Reihen von Schreibfreigabe-Abtastsignalen R/WFE010-210 und R/WLV010-710 für
die Steuerungs-Adreßliste 750-500 bzw. für die Adreßliste 750-502 zu erzeugen. Demgemäß wird der Ebenen-(ZLEV)-Schalter
750-522 derart betrieben, daß die Ebene gesteuert wird, in der die F/E-Bits gesetzt oder
zurückgesetzt werden^und die Ebene in der Adreßliste
750-502, in der neue Adressen während eines Adreßlisten-Zuteilungszyklus des Betriebs eingeschrieben
werden.
Wie aus der vorliegenden Figur ersichtlich ist, werden in der ausgewählten ersten Stellung des ZLEV-Schalters
750-522 die Signale 0LDRR010-210 von der Adreßliste 750-500 abgegeben. In der ausgewählten zweiten Stellung
des Schalters 750-522 werden die Ausgangsanschlußsignale RLEVR0-R2 von einem Ebenen-Register 750-524
abgegeben. Das Ebenen-Register 750-524 wird dazu herangezogen, die letzte Reihe von Treffer-Ebenen-Signalen
aufzubewahren, die durch die Treffer/Ausweich-Ebenennetzwerkschaltungen
des Blockes 750-512 erzeugt werden. Dies ermöglicht die Verteilung des
Treffer-Ebenenwertes auf andere Bereiche des Cachespeichers 750 für eine anschließende Ausnutzung
(das sind die Signale RHITLEVO-2).
In der ausgewählten dritten Stellung des Schalters 750-522 werden von dessen Ausgangsanschlüssen die Signale
LEVR0-R2 abgegeben, die durch die Schaltungen des Blockes 750-512 erzeugt werden. Der Schalter 750-522
wird durch Signale von Steuerungs-Flipflops gesteuert, die in dem Block 750-526 enthalten sind (das sind die
Signale FBYPCAC und DIRBUSY). Wie aus der betreffenden
030025/0769
Figur hervorgeht, werden die Komplementwerte der den Signalen RHITLEVO10-210 entsprechenden Ebenen-Signale,
die in dem Register 750-524 gespeichert sind, über eine Gruppe von UND-Gliedern an die Steuerschaltungen innerhalb
des Bereiches 750-9 abgegeben.
Während des Suchbetriebszyklus ermitteln die Treffer/Ausweich-Ebenennetzwerkschaltungen,
welche Ebene, wenn überhaupt, eine Adresse enthält, die mit der ZAC-Adresse übereinstimmt. Im Falle einer Übereinstimmung wird das
Signal RAWHITI00 als Binärsignal 1 auftreten, und daraus wird die Reihe von Treffer-Ebenensignalen ZCD010-210 und
HITLEVC7010-7210 über eine Codierschaltung erzeugt. Die
Signale werden in Übereinstimmung mit den Zuständen der F/E-Bits-Signale ZFE010-710 erzeugt. Dies bedeutet, daß
zum Zwecke des Auftretens eines Cachespeicher-Treffers in einer bestimmten Ebene das F/E-Bit ein 1-Bit sein muß.
Wie oben erwähnt, zeigt eine binäre 0 das Vorhandensein einer leeren Blockebene an. Jede Codierschaltung enthält
UND-/ODER-Verknüpfungsschaltungen von herkömmlichem Aufbau die die Ebenen-Signale entsprechend folgendem Boolschen
Ausdruck erzeugen ~,
Ti- 1^
L 1 - e=0
Darüber hinaus können die Signale ZCD010-210 ebenfalls aus den Ebenen-Signalen ZNICLEVOOO-2100 erzeugt werden,
die durch den Bereich 750-9 während der Befehlsaufrufe bereitgestellt werden.
Der Block 750-512 enthält ferner ein anderes Treffer-Netzwerk, welches außerdem in der Zuteilung bzw. Zuordnung
eines 8-Wort-Blockes verwendet werden kann, indem ein anderes Treffersignal ALTHIT100 erzeugt wird und
indem eine Reihe von Signalen ALTHITLEV0100-2100 zum
Laden in das Register 750-504 anstelle der Umlaufzuordnungssignale C7RR0100-2100 erzeugt wird. Zum
Zwecke der vorliegenden Erfindung können derartige
030025/0769
Anordnungen als in herkömmlicher Weise ausgeführt betrachtet werden. In diesem Zusammenhang sei jedoch
auf die US-PS 3ü 20 078 hingewiesen.
Wie aus den Zeichnungen hervorgeht, erzeugen die Schaltungen des Blockes 750-512 andere Treffersignale
HITT0TB100, HITT0C7100 und HITT0IC100. Diese Signale
werden aus dem Signal RAWHIT100 entsprechend den nachstehenden ßoolschen Ausdrucken abgeleitet:
1. HITT0C7100 = RAWHIT100 · BYPCACOOO
2. HITTOIC100 = HITT0C7100
3. HITT0TB100 = RAWHIT100 · BYPCA000+PRERD100.BYPCACIOO.
Die Schaltungen des Blockes 750-512 nehmen die Cachespeicher-Umgehungssignale
BYPCACOOO und BYPCAC100 von dem Block 750-526 her auf. Wie bereits erwähnt, enthält
dieser Block eine Anzahl von Steuerzustands-Flipflops, die Signale zur sequentiellen Hindurchführung des Bereiches
750-5 durch die verschiedenen geforderten Operationen umfaßt, die zur Verarbeitung der verschiedenen
Befehlstypen dienen. Darüber hinaus enthält der Block 750-512 Verknüpfungsschaltungen zur Erzeugung der geforderten
Steuersignale während derartiger Operationen. Zum Zwecke der vorliegenden Erfindung können diese
Schaltungen in herkömmlicher Weise ausgeführt sein. Zur Vereinfachung der Beschreibung werden daher hier
lediglich eine kurze Beschreibung und die Boolschen Ausdrücke bezüglich bestimmter Steuerzustands-Flipflops
und Steuerverknüpfungsschaltungen gegeben, soweit dies für ein Verständnis der Arbeitsweise der vorliegenden
Erfindung erforderlich ist.
Im folgenden werden die Steuerzustands-Flipflops näher
betrachtet. Das FJAM1-Flipflop wird auf das Auftreten
eines Treffer-Zustands am Ende eines Adreßlisten-Suchzyklus für einen Doppellesebefehl gesetzt. Das Flipflop
030025/0769
hält die unteren Adressenbits in dem bzw. den Register(n)
750-32 fest, wodurch der Zugriff zu dem zweiten Wort aus der Cachespeichereinheit 750-300 im
Falle eines Doppellesebefehls freigegeben ist. Außerdem wird das Flipflop auf das Auftreten eines Einzelschreibbefehls
hin gesetzt, um die Auswahl der RRAD-Stellung des ZDAD-Schalters 750-530 zu bewirken, damit
dieselbe Adresse abgegeben bzw. bereitgestellt wird, um an die Cachespeichereinheit 750-500 für ein weiteres
Taktintervall oder einen weiteren Zyklus abgegeben zu werden. Bei Fehlen eines Haltezustands (.Signal HOLDDMEM=I)
bleibt das FJAM1-Flipflop für einen Zyklus gesetzt, und zv/ar in Übereinstimmung mit folgendem Boolschen Ausdruck:
SET=FJAMI=REQCOMB.RAWHIT.BYPCAC^RDDBL+WRTSNG)+
HOLüDMEM.FJAM2+HOLDDMEM·FJAM1.
Das FJAM2-Flipflop wird auf das Vorliegen eines Treffer-Zustands am Ende eines Adreßlisten-Sucnzyklus nach einem
Doppelschreibbefehl gesetzt. Das Setzen des FJAM2-Flipflop bewirkt das Setzen des FJAM1-Flipflops am Ende des
nächsten Taktintervalls. Der Steuerzustand des FJAM2-Flipflops zusammen mit dem FJAM1-Flipflop bewirkt die
Auswahl der RDAD-Stellung des ZDAD-Schalters 750-530, um die richtige Adresse zum Einschreiben von Daten in
die Cachespeichereinheit 750-300 bereitzustellen.
Das FJAM2-Flipflop bleibt außerdem während eines Zyklus gesetzt, und zwar in Übereinstimmung mit folgendem
Boolschen Ausdruck:
SET=FJAM2=REQC0MB0·RAWHIT·BYPCAC·WRTDBL+HOLDDMEM·FJAM2.
Ein Flipflop NRMPTC1 steuert direkt den ZDAD-Schalter
750-530; es wird in Übereinstimmung mit den Zuständen von Signalen gesetzt, die durch die anderen Steuerzustands-Flipflops
erzeugt werden.
030025/0769
2849571
"753
Das NRMPTC1-Flipflop bleibt normalerweise während
eines Zyklus gesetzt, und zwar in Übereinstimmung mit folgendem Boolschen Ausdruck:
SET=NRMPTC1=(.WRTDBL·REQCOMBO·RAWHIT·BYPCAC) +
FJAM2+SETFJAM1+REQCOMBO·(RDTYPE·
BYPCAC+RDTYP.RAWHIT) · (FJAM1·FJAM2+
HOLD).
Das FDIRASN-Flipflop spezifiziert einen Adreßlisten-Betriebszuteilungszyklus,
in welchem ein assoziativer Adresseneintrag in die Adreßliste 750-500 im Falle von
Ausweichzuständen der Cachespeicher-Umgehungsoperationen für Lesebefehle eingeschrieben wird.
Das FDIRASN-Flipflop wird für einen Zyklus in Übereinstimmung mit folgendem Boolschen Ausdruck gesetzt:
SET=FDIRASN=REQCOMBO-RDTYp.(BYPCAC+RAWHIT).
Das FICENAB-Flipflop gibt das Laden des Befehlsregisters frei; es wird für einen Zyklus auf das Auftreten
eines 1/2 T-Taktimpulses hin entsprechend der nachstehenden Boolschen Gleichung gesetzt:
SET=FHTIOO.
Das FRCIC-Flipflop wird für einen Zyklus auf das Auftreten
eines 1/2 T-Taktimpulses hin entsprechend folgendem boolschen Ausdruck gesetzt: SET = FJAMZNICLEV.
Im folgenden werden die Steuerverknüpfungssignale näher betrachtet.
1. Das ALTHIT-Signal zeigt das Vorhandensein eines Pseudo-Trefferzustands an.
ALTHIT=ALTLEVO+ALTLEVI+...ALTLEV7.
2. Die Signale ALTHITLEVO, ALTHITLEV1 und ALTHITLEV2
bilden einen 3-Bit-Code, der die Ebene spezifiziert,
in der ein Pseudo-Trefferzustand aufgetreten ist.
030025/0769
/JSH
Die Signale sind dabei wie folgt codiert:
a) ALTHITLEV0=ALTLEV4+ALTLEV5+ALTELV6+ALTLEV7.
b) ALTHITLjSVI =ALTLEV2+ALTLEV3+ALTLEV6+ALTLEV7.
c) ALTHITLEV2=ALTLWV1+ALTLEV3+ALTLEV5+ALTLEV7.
3. Die Signale ALTLEVO bis ALTLEV7 zeigen an, welche der acht Ebenen, wenn überhaupt, einen Pseudo-Trefferzustand
ermittelt hat.
a) ALTLEV0=ZHT0·ZFEÖ .
b) ALTLEV7=ZHT7«ZFE7.
4. Das DIRADDE-Signal ist ein Freigabesignal für den
Decoder 750-521, welches die Erzeugung von Schreibabtastsignalen ermöglicht, die an die Adressen-Adreßliste
750-500 abgegeben werden. DIRADDE=NOGu.FDIRASN.
5. Das DIRBUSY-Signal zeigt an, wenn die Adreßlisten 750-500 und 750-502 belegt sind.
D1RBUSY=FLSH+FJAM2+FJAM1+FDIRASN.
6. Das FEDCODE-Signal ist ein Freigabesignal für den
Decoder 750-520, welches die Erzeugung von Schreibabtastsignalen ermöglicht, die an die Steueradreßliste
750-500 abgegeben werden. FEDCODE=FDIRASN«NÖGO.
7. Das FORCEBYP-Signal gibt den Ablauf eines Cachespeicher-Umgehungsbetriebs
frei. FORCEBYp=FSKIPRR+FBYPCAC.
8. Das GSRCH-Signal zeigt an, wann ein Suchbetriebszyklus
ablaufen soll.
GSRCH=RDDBLZCDE.FICENAB·FRCIC.
030025/0769
/J56
9. Die Signale HITLEVC70, HITLEVC71 und HITLEVC72 bilden einen 3-Bit-Code, der die Ebene spezifiziert,
in der ein Trefferzustand aufgetreten ist.
a) HITLEVC70=HITLEV4+HITLSV5+HITLEV6+HITLEV7.
b) HITLEVC71=HITLEV2+HITLEV3+HITLEV6+HITLEV7.
c J HITLEVC72=HITLEV1+HITLEV3+HITLEV5+HITLEV7.
10. Die Signale HITLEVO bis HITLEV7 zeigen an, welche der acht Ebenen, wenn überhaupt, einen Trefferzustand
ermittelt hat.
a) HITLEVO=ZFEO-ZHTo.
b) HITLEV7-ZFE7-ZHT7.
11. Das RAWHIT-Signal zeigt die Ermittelung eines Trefferzustands an.
RAWHIt=HITLEVO+...+HITLEV7.
12. Die Signale HITT0C7 und HITTOIC zeigen jeweils die
Ermittelung eines Trefferzustands bei bestimmten Schaltungen innerhalb des Bereichs 750-9 an.
HITT0C7=HITT0IC=RAWHIT.BYPCAC.
13. Das HITTOTB-Signal zeigt die Ermittelung eines Trefferzustands oder eine Vor-Lesebefehls an, wenn
im Nebenweg- bzw. Umgehungsbetrieb für die Transitblockpufferschaltungen gearbeitet wird.
HITTOTB=RAWhIT-BYPCAC+PRERD·BYPCAC.
14. Das LDRAD-Signal gibt das Laden des RDAD-Registers
750-532 frei.
LDRDAD=HOLDDMEm.
030025/0769
-156- 2349571
15. Das LDRDRIH-Signal gibt das Laden des RDRIN-Registers
750-534 frei.
LDRDRIN=FDIRASn.
16. Das Signal RDDBLZCDE wird dazu herangezogen, den ZCD-Schalter 750-306 im Falle eines Doppellesebefehls
freizugeben.
RDDBLZCDE=FICENAb.(FDIRASN+FJAM1+FJAM2).
17. Das REQCOMBO-Signal zeigt das Vorhandensein einer
Cachespeicher-Anforderung an.
REQCOMBO=NOGo. HOLDDMEM · CANCELC. DRIiQCAC
18. Die Signale ZCDO, ZCD1 und ZCD2 wprden dazu herangezogen,
den Betrieb des ZCD-Schalters 750-306 zu steuern.
a) ZCD0=ZCDL4+ZCDL5+ZCDL6+ZCDL7+ZNICLEV0.
ZCDICENAB+RDDBLLO.
b) ZCD1=ZCDL2+ZDEL3+ZCDL6+ZCDL7+ZNICLEV1.
ZCDICENAB+RDDBLL1.
c) ZCD2=ZCDL1+ZCDL3+ZCDL5+ZCDL7+ZN1CLEV2.
ZCD1CENAB+RDDBLL2
dabei ist der jeweilige Ausdruck ZCDLi gegeben durch ZCDLEVi.
19. Das ZFEDATWT1-Signal ist ein Daten-Schreibabtastsignal,
das zum Einschreiben der F/E-ßit-Signale FEDAT0100 und FEDAT1100 in die Adressliste 750-500
dient.
ZFEDAl1WTI =FE1RASN«ZDAD31.
20. Das FEDATO100-Signal entspricht dem ersten Voll/Leer-Bit.
FEDAT0100=FBYPCAC000+FALTHIT100.
21. Das FEDAT1100-Signal entspricht dem zweiten
030025/0769
Voll/Leer-Bit.
F2DAT110O=FALTHITI00+FBYPCACOOO.
22. Das SELZDADC1-Signal steuert den Betrieb des ZDAD-Schalters
750-530.
SELZDADCi=WRMP1JL1CI .
23. Das RWRR-Signal ist ein Umlauf-Schreibssignal, welches
zum Wiedereinschreiben der RR-Bit-Signale in die Adreßliste 750-500 dient.
RWRR = FDIRASN-NOGO.SCLOCK.
Aus den Zeichnungen dürfte ersichtlich sein, daß die unterschiedlichen decodierten Befehlssignale durch eine
Decoderschaltung 750-528 auf das Auftreten von Signalen erzeugt werden, die von dem Prozessor 700 an die
DMEM-Leitungen 0-3 abgegeben werden. Der Decoder 750-528
wird durch ein Signal von der DREQCAC-Leitung her freigegeben.
Die decodierten Befehlssignale (.beispielsweise WRTDBL, WRTSNG, PRERD, RDTYPEj werden zusammen mit
anderen Steuersignalen, wie den Signalen HOLDDMEM, FSKIPRROO und jenen Signalen von den Leitungen CAJMCELC
und BYPCAC als Eingangssignale an die Schaltungen des Blocks 750-526 abgegeben.
Im folgenden wird der Befehlspufferbereich 750-7 näher erläutert. Dieser Bereich nimmt Speicherdaten und Befehle
von den DFS-Leitungen her auf, die zu dem Prozessor 700 hin über den ZDI-Schalter 750-312 bzw. den
ZIB-Schalter 750-314 übertragen werden. Die Speichersignale
werden in ein RDFS-Register 750-702 über eine Stellung eines in zwei Stellungen einstellbaren Schalters
750-700 geladen.
Die Speicherdaten, die als Ergebnis eines fehlerhaften Zustande bzw. Ausweichzustands auf entsprechende
030025/0769
Aufnahme hin abgeholt werden, werden an den ZDI-Schalter
750-312 über die RDFS-Stellung Nr. 0 eines 1-aus-4-Stellungs-(ZDIN)-Schalters
750-708 abgegeben. Im Falle eines Vierer-Ladebefehls werden die Speicherdaten in
den Vierer-Speicherplatz-(LQBUF,)-Puffer 750-706 geladen,
wenn das Signal LQüUF als Verknüpfungssignal 1 auftritt. Die Schreib/Lese-Adressensignale WRTBUFO10-110/
RDBUF010-110 von dem Bereich 750-112 her steuern das Einschreiben und Lesen von Daten in bzw. aus den
Speicherplätzen des Puffers 750-706.
Die in dem LQBUF-Puffer 750-7Ob gespeicherten Speicherdaten werden dann über die RLQBUF-Steilung Nr. 2 des
ZDIN-Schalters 750-708 an die ZDI-Mnrichtung übertragen.
Im Falle des Vorliegens eines Doppellesebefehls wird das geradzahlige Wort des Wortpaares in ein REVN-Register
750-710 übertragen. Danach wird das geradzahlige Wort zu dem ZDI-Schalter 750-312 hin über die Stellung Nr. 1
des ZDIN-Schalters 750-708 übertragen, und zwar zur Ausführung einer ungeradzahligen Doppellese-Befehlsanforderung
oder auf die Aufnahme eines RD-EVEN-Signals von dem Prozessor 700.
Wie aus den Zeichnungen hervorgeht, wird jedes Speicherdatenwort außerdem in das RDFSB-Register 750-712 geladen
und danach in die Cachespeichereinheit 750-300 über den ZCDIN-Schalter 750-304 eingeschrieben, und zwar in der
Ebene, die durch den Inhalt des RADR-Registers 750-32 spezifiziert ist.
Im Falle von Instruktions- bzw. Befehlstransfers wird
jeder aus dem Speicher aufgenommene Befehl in einen der vier Speicherplätze eines spezifizierten (IBUF1/IBUF2)
Befehlspuffers zweier Befehlspuffer 750-715 und 750-717
030025/0769
geladen. Die IBUF1- und IBUF2-Puffer 750-715 und
750-717 werden dazu herangezogen, bis zu zwei Vier-Wort-Blöcke zu puffern, die durch Zugriff aus dem
Speicher erhalten werden können, und zwar auf I-Abruf-1-
oder I-Abruf-2-Befehle hin, bezüglich der ein Ausweichzustand
ermittelt worden ist.
Die Befehle werden in den Speicherplatz eines der IBUF1- und IBUF2-Puffer 750-715 und 750-717 eingeschrieben.
Der betreffende Puffer wird durch die Signale WRTBUF0100-1100 unter der Steuerung von Schreibabtastsignalen
IBUF1/IBUF2 festgelegt. Die Lesesteuersignale RDBUF0100-1100 geben das Auslesen derartiger Befehle
für die übertragung zu dem Prozessor 700 hin frei, wenn der Speicherplatz IBUF1 oder IBUF2, der durch die Signale
ZEXT0100-1100 bezeichnet ist, einen Befehl enthält. Der Befehl wird zu dem Prozessor 700 hin über die
Stellung 1 oder 2 eines in zwei Stellungen einstellbaren Schalters 750-720 und über die ZRIB-Schalterstellung
eines ZIB-Schalters 750-314 übertragen.
Die IBUF1- und IBUF2-Puffer 750-715 und 750-717 geben gültige Ausgangssignale IBUF1V100 bzw. IBUF2V100 an
die IBUFREADY-Schaltungen des Blockes 750-722 ab. Diese
Schaltungen überführen die IBUFRDY-Leitung in den Binärzustand 1, wodurch angezeigt wird, daß zumindest
ein Befehl in dem I-Puffer adressiert wird (vorliegender Befehlsblock). Wie aus den Zeichnungen hervorgeht, nehmen
die IBUFREADY-Schaltungen Eingangssignale (beispielsweise USETBRDY, IFETCHRDY) von den Steuerschaltungen innerhalb
des Bereiches 750-9 auf.
Im folgenden wird der Befehlszählerbereich 750-9 näher erläutert. Dieser Bereich speichert Cachespeicher-Adressensignale
(24-33) zur Anzeige des nächsten Befehls, zu dem ein Zugriff erfolgt. Diese Speicherung
erfolgt in einem von zwei Befehlsadressenregistern
030025/076 9
(RICA/RICB) 750-900 und 750-902. Die Cachespeicher-Adressensignale
24-33 werden in das Befehlsregister RICA/RICB geladen, welches nicht benutzt wird, wenn
ein IFETCH1-Befehl von dem Prozessor 700 her aufgenommen wird. Die Cachespeicheradresse wird über die
RIDO-Stellung des ZDAD-Schalters 750-530 und über eine
ZDAD-Stellung Nr. 0 eines in vier Stellungen einstellbaren ZICIN-Schalters 750-904 übertragen.
Jeweils dann, wenn der Prozessor 700 einen Zugriff zu einem Befehl hin ausführt, wird der Inhalt des Befehlsregisters
RICA/RICB, der über eine Stellu__ng des in zwei Stellungen einstellbaren ZIC-Schalters 750-906
ausgelesen ist, mittels einer Inkrementierungsschaltung 750-908 um 1 erhöht. Der erhöhte Inhalt wird in
das Befehlsregister RICA/RICB wieder zurückgeführt, und zwar über die RNIC-Stellung Nr. 1 des ZICIN-Schalters
750-904.
Wie aus den Zeichnungen hervorgeht, speichert jedes Befehlsregister zwei Ebenen-Felder, um erste und zweite
Befehlsblöcke auf das Auftreten der Befehle IFETCH1 und IFETCH2 hin abzuholen. Die beiden Paare von Ebenen-Feldsignalen
werden an unterschiedliche Schalterstellungen eines in vier Stellungen einstellbaren
Crossbar-Schalters 750-910 abgegeben. Die ausgewählten Ebenen-Signale ZNICLEV0100-2100, die als Eingangssignale
an den Block 750-512 abgegeben werden, werden zur Steuerung des Betriebs des ZCD-Schalters 750-306 herangezogen,
um zu den Befehlen zuzugreifen, die durch das Befehlsregister RICA/RICB spezifiziert sind. Die Ebenen-Feldsignale
entsprechen den Signalen HITLEVC70100-2100,
die durch die Schaltung des Blockes 750-512 erzeugt werden. Diese Signale werden in eines der Befehlsregister
geladen, und zwar auf einen Adreßlisten-Zuteilungsbetriebszyklus hin.
030025/0769
Zusätzlich zu den Ebenen-Feldsignalen speichern die RICA- und RICB-Befehlsadressenregister weitere Signale,
die für verschiedene Steuerungszwecke herangezogen werden, auf die nachstehend in dem erforderlichen Umfang
eingegangen wird.
Die von dem ZDAD-Schaltor 750-530 her eintreffenden
Cachespeicher-Adressensignale werden mittels einer weiteren Inkrementierungsschaltung 750-912 um 1 erhöht. Die
erhöhten bzw. inkrementierten Adressensignale worden über die INC-Stellung Nr. 3 des ZICIN-Schalters 750-904
in das RICA/RICB-Befehlsregister geladen. Die beiden
Bits 32-33 niedrigster Wertigkeit der CacheSpeicheradresse
bilden die IBUFI- oder IBUF2-Adresse (das sind die Signale ZJyXTOI00-1100), um aus dem Speicher Befehlsblöcke auszulesen, zu donen hin ein Zugriff erfolgt ist.
is sei darauf hingewiesen, daß die beiden Ebenen-Feldsignale
LEY1 und LEV2 von anderen ausgängen des Schalters 750-910 als Eingangssignale an zwei Vergleicherschaltungen
750-912 und 750-914 abgegeben werden. Die Schaltungen 750-912 und 750-914 vergleichen die Ebenen-Signale
LEV1 und LEV2 des gerade vorliegenden Befehlsblocks von den Schalter 750-910 her mit den Eingangs-Ebenensignalen
C7RR0100-2100, die der Umlaufzählerstellung für den nächsten verfügbaren Block entsprechen.
Außerdem nimmt die Vergleicherschaltung 750-912 als Eingangssignale die Speicher-Ebenensignale RTBLEV0100-2100
und die Befehls-Ebenensignale ZNICLEV0100-2100 von dem
Schalter 750-910 her auf, um zusätzlich zum Vergleich mit den Ebenen-Signalen ZIC0100-2100 einen Vergleich
mit den Signalen C7RR0100-2100 vorzunehmen. Die Cachespeicher-Adressensignale werden durch eine Inkrementierungsschaltung
750-918 um vier erhöht und als Eingangssignale an Umlauf-Sprungsteuerschaltungen des Blockes
750-916 abgegeben. Diese Schaltungen nehmen als weiteres Eingangssignalpaar die Eingangs-Cachespeicher-Adressen-
030025/0769
signale 24-30 von dem ZDAD-Schalter 750-530 und die Cachespeicher-Adressensignale des gerade vorliegenden
Befehlsblocks von dem ZIC-Schalter 750-906 her auf, um einen Vergleich durch die vorhandenen Schaltungen
vorzunehmen.
Die Ergebnisse der Signalpaar-Vergleiche der Cachespeicher-Adressensignale
und des Ebenen-Signals werden in weiteren Schaltungen kombiniert bzw. verknüpft, die
in den Umlauf-Sprungsteuerschaltungen des Blockes 750-91ö
enthalten sind. Die Schaltungen des Blockes 750-91 fc>
erzeugen auf das Auftreten der decodierten Signale von einer Decoderschaltung 750-922 her Ausgangssteuersignale,
die Adressenkonflikte vermeiden. Eine weitere Erläuterung des Betriebs derartiger Schaltungen findet sich an der
eingangs erwähnten anderen Stelle.
Die Ausgangssteuersignale des Blockes 750-91 β werden
als Eingangssignale an die Schaltungen des lC-Steuerblockes 750-920 abgegeben. Darüber hinaus nehmen die
Steuerschaltungen des Blockes 750-920 die Ergebnissignale der Decodierung der Befehlssignale auf, die von der Decoderschaltung
750-922 an die DMEM-Leitungen abgegeben werden, wenn diese Schaltung durch ein Signal von
DREQCAC-Leitung her freigegeben ist. Zusammen mit den anderen an den Block 750-920 abgegebenen Signalen aus
den Bereichen 750-1 und 750-5 erzeugen die Steuerschaltungen des Blockes 750-920 Adressen- und Steuersignale
für den Ablaufbereich 750-9 über die erforderlichen Betriebszyklen, um bestimmte Typen von Befehlen zu
verarbeiten (beispielsweise die Befehle IFETCH1, IFETCH2 und LDQUAD).
Der Block 750-920 enthält eine Anzahl von Steuerzustands-Flipflops
und Verknüpfungsschaltungen zur Erzeugung der erforderlichen Steuersignale. Aus denselben
030025/0769
Gründen, die in Verbindung mit dem Bereich 750-5 erwähnt worden sind, werden lediglich eine kurze Erläuterung
und die Boolschen Ausdrücke bezüglich bestimmter Zustands-Flipflops und Steuerschaltungen gegeben.
Im folgenden werden die Steuerzustands-Flipflops näher betrachtet. Das FABCURLEV1-Flipflop definiert die gerade
vorliegende Ebene für das RICA/RICB-Befehlsregister.
Dieses Flipflop wird auf das Auftreten eines T-Taktsignals entsprechend folgenden Boolschen Ausdrücken
gesetzt bzw. zurückgesetzt. Der Setzzustand korrigiert dabei den Rücksetzzustand. Wenn das Signal FA/FBCURLEV
ein Binärsignal 1 ist, dann wird die Ebene 1 ausgewählt, und wenn das betreffende Signal ein Binärsignal 1 ist,
dann wird die Ebene 2 ausgewählt.
bUT · DECÜDEIFl· F-WrMETS-FHOLDDMEM- [CANCELC-ZDAD08·
ZDAüOg-llIT-FACTVRIClOO/OOO + ZEXTO·
ZEXTl -RDIDUF- 1I0LDLXECRDIBUF · FA/FBCURLEVOOO·
UECObELDQUAD-FLDQUAD-DECODEEIS-FACTVRICIOO/OOO·
NUGÜ + ZEXTO·ZEXTl·FLDQUAD·RDIBUF·HÖLDEXECRDIBUF
•FACTVRICIOO/OOO-NÖGÖ.
RESET- ÜEC0DEIF1 · FFPIMEIS ·[HOLDDMEM- ICANCELC ·
FACTVRICIOO/OOO + DECODELDQUAD-[HOLbDMEH ·
[CANCELC-FACTVRICIOO/OOO + ZEXTO-ZEXTl·
DECODELDQUAD-FLDQUAD.DECODEIFl.FA/PBCMPLEV100 '
FACTVRICOOO/IOO-RDIBUF-HOLDEXECRDIBUF-NÖSS.
030025/0769
Das FACTVRIC-Flipflop legt das gerade aktive Befehlsregister RICA/RICB fest. Wenn das Flipflop in den
1-Zustand gesetzt ist, ist das RICA-Register spezifiziert;
ist das betreffende Flipflop in den Null-Zustand gesetzt, so ist das RICB-Register bezeichnet. Das betreffende
Flipflop wird auf das Auftreten eines T-Taktimpulssignals hin entsprechend folgenden Boolschen
Ausdrucken gesetzt bzw. zurückgesetzt.
FACTVRIC - 1'ACTVRIC-TGLACTVRIC
TGLACTVRIC " DECODEIFl'THOLDDMEM-[CANCELC
FFFTReTs + fnewifi-nogo.
FACTVlUC = FACTVRICTG1LACTVRIc
TGLACTVRIC - (DECODEIF1I +(HOLDDMEM + [CANCELC +
FFPIMEIS)·(FNLWIFl + NOCO).
Das FCPUWRTREQ-Flipflop legt die Zeitspanne bzw. den Zeitpunkt fest, währenddessen Prozessordaten in den
Cachespeicher einzuschreiben sind. Das betreffende Flipflop wird auf das Auftreten eines T-Taktimpulses
hin in Übereinstimmung mit folgenden Boolschen Ausdrücken gesetzt bzw. zurückgesetzt.
SET ο (DECODEWRTSNGL + DECODEWRTDDL)-HIT·[HOLDDMEM
• [CANCELC.
RESLT-- FWRTOLlL · HOLDCACHECPuWRTSTfö.
Das FDBLMISS-Flipflop definiert einen Doppellese-Ausweichzustand;
es wird dazu herangezogen, die ZDIN-Stellung des ZDI-Schalters 750-312 während des Zyklus
auszuwählen, der der Datenwiederbereitstellung folgt. Das betreffende Flipflop wird auf das Auftreten eines
T-Taktimpulses hin in Übereinstimmung mit folgenden
Boolschen Ausdrücken gesetzt bzw. zurückgesetzt.
030025/0769
SET ■-■ (DECODERDDBL + DECODE RD RMT )· ITTOTdDMEM ·
TCÄNCELC-MISS.
KKSET- FRDMlSS.
Das FEVENODD-Flipflop bestimmt, welches Wort des
Zwei-Wortpaare-Prozessors 700 wartet, wenn ein Einzellese-Ausweichzustand auftritt. Das Flipflop bestimmt
außerdem die Reihenfolge, in der die Datenwörter zum Prozessor 700 im Falle eines Doppellese-Ausweichzustands
zurückzuführen sind.
Darüber hinaus wird das Flipflop während eines Doppellese-Trefferzustands
dazu herangezogen, zu dem zweiten Datenwort zuzugreifen. Dieses Flipflop wird auf das Auftreten
eines T-Taktimpulses hin in Übereinstimmung mit folgenden Boolschen Ausdrucken gesetzt bzw. zurückgesetzt,
SL1T = (DECODKRDSNGL + DECODEIFl. FFPlMElS) ·
liTOLDDMEM*. IcTBTÜELC". ZDADO9 + DECODERDDBL·
TnOLDDMEM · Yc\* Zo LvJ · DS Z1.
RESl-JT« (UECODERDSNGL + DECODEIFl)
[CANCELC- ZDADOD* + DECODERDDBL-lHOLDDMEM·
TCANCELC-DSZl + DECODERDRMT-1HOLDDMEM-[CANCELC.
Das FFPlMEIS-Flipflop spezifiziert, daß der letzte Prozessorzustand
ein FPIMEIS-Zustand war, was bedeutet, daß der IF1-Befehl auf den DMEN-Leitungen eine Anforderung
nach zusätzlichem ElS-Deskriptoren ist. Dieses Flipflop wird auf das Auftreten eines T-Taktimpulses hin
entsprechend folgenden Boolschen Ausdrucken gesetzt bzw. zurückgesetzt.
030025/0769
SET = FPIMEIS.
RESET = DECODEIFI. CANCELCHOLDDMEM.
Das FHOLDIF1-Flipflop bestimmt, wann der Prozessor 700
aufgrund des Vorliegens eines IF1-Ausweichzustands festgehalten wird, so daß bei Aufnahme des Befehls aus dem
Speicher das für den vorliegenden Befehl benutzte Register RICA/RICB durch das FDATARECOV-Flipflop aktualisiert
werden kann. Das Flipflop wird auf das Auftreten eines T-Taktimpulses hin entsprechend folgenden Boolschen
Ausdrucken gesetzt bzw. zurückgesetzt. SiT = DECODEIFI·IFPIMEIS.HOLDDMEM.CANCELC.MISS.
RESET = FNEWIFI-NOGO + FDATARECOV.
Deis FINHRDY-Flipflop wird dazu herangezogen, din Signalisierung
eines IBUFRDY-Zustands zu dem Prozessor 700 hin zu sperren, wenn ein Konflikt zwischen der Befehls-(IC)-Ebene
und der Speicherdatenebene zu dem Zeitpunkt auftritt , zu dem der Prozessor 700 den Befehl übernommen hat,
der aus dem Cachespeicher in das Register RIRA/RIRB geladen
worden ist. Das betreffende Flipflop wird.auf das Auftreten eines T-Taktimpulses hin gesetzt, und es wird
auf das Auftreten des nächsten T-Taktimpulses hin unbedingt
gesetzt, wenn kein Setzzustand vorliegt. Das Setzen erfolgt in Übereinstimmung mit folgendem
Boolschen Ausdruck.
STKT - SETI
worin Sktirterm ·- cmpüatajclev * m£mwrt«£q·
\ ZEXTO · ZEXTl · IF2 · fCÄNCELC'MD +
DECODEIFl-FFPIMEIS + FINHRDY).
RKSET = SET.
030025/0769
29 A 9571
Das FJAMZNICLEV-Flipflop wird dazu herangezogen, die
Ebenen-Signale ZNICLEVOOO-2100 des nächsten Befehls
an die Steuereingangsanschlüsse des ZCD-Schalters 750-306 abzugeben (das sind die Signale ZCD010-210),
und zwar auf das Auftreten eines 1F1-Befehls hin, der nicht das letzte Wort in dem Block bezeichnet hat. Das
Flipflop wird auf das Auftreten eines T-Taktimpulses
hin in Übereinstimmung mit dem nachstehend angegebenen Boolschen Ausdruck gesetzt; es wird auf das Auftreten
des nächsten T-Taktimpulses hin zurückgesetzt. SET= DEC0DEIF1.FFPIMEIS.HIT.HOLDDMEM.CANCELC
CANCELC.CZDAD08·ZDAD09).
Das FNEW1F1-Flipflop definiert den Zyklus, nachjdem ein
IF1-Befehl von dem Prozessor 700 her aufgenommen ist. Das betreffende Flipflop wird für einen Zyklus auf das
Auftreten eines T-Taktimpulses hin in Übereinstimmung mit folgendem Boolschen Ausdruck gesetzt:
SET = DEC0DE1F1.FFPIMEIS.HOLDDMEM-CANCELC.
Das FRDIBUF-Flipflop wird dazu herangezogen zu bestimmen,
daß ein Signal auf der RDlBUF-Leitung von dem Prozessor 700 her während des letzten Betriebszyklus
aufgenommen wurde. Dieses Flipflop wird in Übereinstimmung mit dem nachstehend angegebenen Boolschen
Ausdruck gesetzt; es wird während des nächsten Zyklus bei Fehlen eines Setzzustands zurückgesetzt.
SET = RDIBUF · HOLDEXECRDIBUF. TTÜGÖ.
Das FRDMISS-Flipflop wird dazu herangezogen, das Halten des Prozessors 700 auf die Ermittelung eines Ausweich-Zustands
bezüglich irgendeines Lesebefehls zu bewirken. Dieses Flipflop wird auf das Auftreten eines T-Taktimpulses
hin in Übereinstimmung mit folgenden Boolschen Ausdrucken gesetzt bzw. zurückgesetzt.
030025/0769
SLT = (DECODERDSNGL + (DECODEIFl-FFPIMEfS") + DECODERDRMT
+ DECODERDCLR + DECODERDDBL) -[HOLDDMEM-[CANCELC'MISS.
FDATARECOV + FNEWIFl·NOGO.
Das FRDREQ-Flipflop bestimmt, wann das zweite auf einen
ein RDDüL-Befehl hin bezüglich eines Trefferzustands
aufgerufene Wort aus dem Cachespeicher auszulesen ist. Das betreffende Flipflop wird auf einen T-Taktimpuls
hin in Übereinstimmung mit folgenden Boolschen Ausdrücken
gesetzt bzw. zurückgesetzt. SET = DKC ODERDDBL · Hi T · HOLDDMiSM · CAlMCELC.
RESET = HOLDDMEM.
Das FDATARECOV-Flipflop sperrt das inkrementieren des
Befehlsregisters RICA/RICB, wenn der IF1-Befehl für
das letzte Wort in dem Block zutrifft und wenn der IF2-Befehl gelöscht ist. Das betreffende Flipflop wird
auf einen T-Taktimpuls hin in Übereinstimmung mit folgenden Boolschen Ausdrücken gesetzt bzw. zurückgesetzt:
SET = DATARECOV-FLASTINST.[HOLDDMEM.[CANCELC + DATARECOV
• flastinst· [cancelc- [holddmem* + datarecov·
fTästTnsT.
reset= [holddmlm-fdatarecov. ·
030025/0789
294^571
Im folgenden werden die Steu^rverknüpfungssignale näher
betrachtet.
1. Das FA/FBL£V1VAL-Signal wird dazu herangezogen, den
Zustand einer ersten gültigen Bitposition des RICA/RICB-Befehlsregisters
zu bestimmen. Dieses Flipflop wird auf einen T-Taktimpuls hin entsprechend folgenden Boolschen
Ausdrücken gesetzt bzw. zurückgesetzt. Der Rücksetz-Zustand
korrigiert dabei den Setzzustand.
a. FA/FBLLV1VALSET <= UECODEIFl · I^FPIMEIS · TflOLDDMEM-
[CAiJCELC · FACTVRICl 00/000 + DECODEIFl
'· FfPIMEIS-ThÖLDDMEM-
EISIF2·FACTVRICOOO/IOO + DECODELDQUAD
•THÖLDDMEM TcÄNSIZf FACTVRICIOO/
000.
b. FA/FBLLVIVAI RESET = DECODEIFl·FFPIMEIS·tHOLDDMEM-
TCÄNCELC·HIT·ZDAD08·ZDAD09·
FACTVRIClOO/000 + ZEXTO·ZEXTl-DECODElFl·DECODELDQUAD·FLDOUAD
* RDIBUF- HOLDEXECRDIBUF-FACTVRICOOO/
100-FA/FBCMPLEVOOO-hföSÖ + ZEXTO-ZEXTl
· FLDQUAD-RDIDUF-IIOLDEXECRDIBUF
• FACTVRICl00/0 00 N
wobei RICA= FACTVRIC = 1 und RICB = FACTVRIC = 1 sind.
2. Das FA/FBL]'JV2VAL-Signal wird dazu herangezogen, den
Zustand einer zweiten gültigen Bitposition des RICA/RICB-Befehlsregisters
festzulegen. Dieses Flipflop wird auf oinen T-Taktimpuls hin entsprechend folgenden Boolschen
Ausdrücken gesetzt bzw. zurückgesetzt.
a. FA/FBLEV2VALSET « DECODE IF2 -1HOLDDMEM · [ CANCELC ·
FACTVRICOOO/100-NOGO + DECODEIFl
FFPIMEIS-IHOLDDMEM-[CANCELC-FACTVRIC000/100-EISIF2
.
030025/0769
-jar- 29A9571
b. FA/F0LLV2VALRESET = DECODEIFl · FFPIMEIS-IHOLDDMEM
[CANCELC-FACTVRIC100/000 +
DECODELDOUAD -ΤηΓΟΧΟΒμΊΪ
•FACTVRICIOO/OOO + ZEXTO-ZEXTl
DECODEIFl-DECODELDQUAD·FLDQUAD
FA/FBCURLEV-FACTVRICOOO/IOO-RDIBUF-HOLDEXECRDIBUF·NOGO.
wobei RICA = FACTYRIC = 1 und RICB = FACTVRIC = 1 sind.
3. Die Signale ZIBO und ZIB1 steuern den ZIB-Schalter
für Befehlstransfers von dem Cachespeicher 750 zu dem Prozessor 700 über die ZIB-Leitungen.
a. ZIBO = IFETCHRDY»PNEWIF1.
b. ZIB1 = IFETCHRDY.
4. Die Signale ZDIO, ZDH und ZDI2 steuern den ZDI-Schalter
für Befehlstransfers und Datontransfers von dem Cachespeicher 750 zu dem Prozessor 700 hin über die ZDI-Leitungen.
Dem Steuersignal ZDIO, welches dem Bit höchster Wertigkeit des 3-Bit-Codes entspricht, kann eine binäre
gegeben werden, sofern nicht die Positionen k bis 7 für Anzeigezwecke herangezogen werden,
a. ZDH = DATARECOV + FEBLMISS + RDEVEN.
b. ZDI2 = RDIBUF/ZDI.(HITTOIC + FRDREQ).
5. Die Signale ZICINO und ZICIN1 steuern den ZICIN-Schalter,
um Adressensignale in die RICA bzw. RICB-Befehlsadressenregister
750-900 bzw. 750-902 zu laden.
a. ZICINO = ALTCHMD1OO·FDFN2HT·HOLDDMEM.
b. ZICIN1 = FDFN1HT·FNEWIF1 + FDFN2HT.
6. Die Signale ENABRIC1 und ENABRIC2 werden dazu herangezogen, das Laden der Register RICA und RICAB freizugeben.
030025/Q769
294957
IiNABHICl -■ KlICLDiFl · FNUWIfI · Λ AMZNICLE V ·
[HOLDDMEM-FDATARECOV + FIlOLDIFl ·
OATARECOV.
ENABRIC2 = FINHRDY · S"ETINHRDY · DFN2HT
wherein OET-INHRDY = DFN2T-[MEhWRTREQ
(ZEXTu-ZEXTl-EXECIF2-[CANCLCMD +
+ PSUEDOIFl + PSUED0IF2) +
CMPDATA/ICLEV j.
7. Das Signal DATARECOV definiert den Zeitpunkt, zu dem neue Daten in die Register des Prozessors geladen worden
sind (z.B. RDI oder RBIR) und zu dem der Prozessor freigegeben ist. Dieses Signal wird durch ein Flipflop des
Bereichs 750-1 erzeugt, welches in den Binärzustand 1 gesetzt wird, wenn ein T-Taktimpuls auftritt und eine
identische Übereinstimmung zwischen den Adressensignalen, die das Wort bezeichnen, welches für einen Zugriff durch
den Prozessor 700 angefordert ist, und den Signalen vorliegt , die das Wort kennzeichnen, welches in die Cachespeichereinheit
750 übertragen wird. Der Vergleich zeigt an, daß die Signale DATA, MIFS2, MIFS3, MIFS1 und DATAODD
identisch sind mit den Signalen FHT, FHOLDTBO, FH0LDTB1, RADR32 bzw. DOUBLEODD, wobei folgende Beziehungen gelten
wobei Signal FHOLDTBO = FRDMISS·LDTBVALID-
■ FIF2ASSIGN-FTBPTRO;
Signal FHOLDTBl «' FRDMISS·LDTBVALID·
FIF2ASSIGN-FTBPTRl;
Signal DOUBLEODD= FEVENODD-FDPFS; und
Signal DATA «= FARDA + FDPFS.
030025/0769
fJi* 294957 t
Nunmehr wird der Bereich
750-1 detailliert beschrieben.
In Fig. 7a sind in weiteren Einzelheiten verschiedene Blöcke der Blöcke des Bereichs 750-1 veranschaulicht.
;Js sei darauf hingewiesen, daß zum Zwecke einer Erleichterung des Verständnisses der vorliegenden Erfindung
dieselben Bezugszeichen soweit wie möglich für entsprechende Elemente in Fig. 4 wieder verwendet sind,
in vielen Fällen umfaßt ein einzelner in Fig. 4 angedeuteter Block mehrere Gruppen von Schaltungen zur
Steuerung ihres Betriebs und/oder zur Erzeugung von zugehörigen Steuersignalen. Deshalb sind einige Blöcke
mit den in Frage kommenden Bezugszeichen als Teil der verschiedenen Blöcke des Bereichs 750-1 vorgesehen.
Wie aus den Zeichnungen hervorgeht, sind bestimmte Bereiche des Blockes 750-102 in weiteren Einzelheiten
gezeigt. Der Transitblockpuffer 750-102 umfaßt, wie dargestellt, eine erste Gruppe von Schaltungen, die Datenwörter
bereithalten, die aus dem Speicher auf das Auftreten eines Vierer-Lesebefehls hin aufgenommen worden
sind. Diese Schaltungen umfassen eine Vielzahl von taktgesteuerten Paaren von Zähl-Flipflops, welche ein
Vier-Bit-Register 750-10200, eine Multiplexerschaltung 750-10202, eine Vielzahl von NAND-Gliedern 750-10204
bis 750-10210 und eine Decoderschaltung 750-10212 bilden. Es sei darauf hingewiesen, daß ein Zähl-Flipfloppaar
für jede Transit-Pufferstelle vorgesehen ist.
Darüber hinaus umfaßt die erste Gruppe von Schaltungen eine Vielzahl von taktgesteuerten Transitblock-Gültigkeits-Flipflops,
die ein 4-Bit-Register 750-10214 bilden. Die 1-Ausgänge der Flipflops sind jeweils mit
einem entsprechenden Flipflop der vier Paare von Zähl-Flipflops verbunden, wie dies dargestellt ist.
in Abhängigkeit vom Auftreten eines Viererlesebefehls
030025/0769
hin wird ein erstes Paar von Wörtern an den Cachespeicher 750 ausgesendet. Darauf folgt eine Lücke,
und dann wird ein zweites Paar von Wörtern an den Cachespeicher 750 ausgesendet. Auf das dem Transitblockpufferplatz
zugehörige Paar von Zählflipflops
wird dadurch Bezug genommen, daß eine Spezifizierung durch die Zustände der Signale MIFS2110 und M1FS3110
erfolgt, wobei dieses Flipflop dann in den Binärzustand 1 über ein erstes UND-Glied mit Auftreten des
T-Taktsignals CLKT022 hin gesetzt wird, wenn das Signal
DATA0DD100 durch die Schaltungen des Blocks 750-114 als Binärsignal 1 abgegeben wird. Das RESETTBV100-Signal ist
zunächst ein Binärsignal 0, und die Decoderschaltung 750-10212 gibt eines der ersten vier Ausgangssignale
SETPCO100 bis 5ETPC3100 in Übereinstimmung
mit den Zuständen der Signale MIFS2110 und MIFS3110 von dem Schalter 75O-12Ü ab.
Das Paar-Zähl-Flipflop wird im Binärzustand 1 über
das andere eingangsseitige UND-Glied gehalten, und zwar durch ein Transit-Block-Gültigkeitssignal, welches
als Binärsignal 1 auftritt. Das zugehörige eine Flipflop der Transit-Block-Gültigkeitsbit-Flipflops, welches
durch die Decoderschaltung 750-10601 bezeichnet ist (das sind die Signale IN0100 bis IN3100), wird über
ein erstes UND-Glied dann in den Binärzustand 1 gesetzt, wenn eine Umschaltung erfolgt, um das Signal INCTBIN100
auf das Auftreten eines T-Taktsignals CLKT022 hin in ein Binärsignal 1 zu überführen.
Die Multiplexerschaltung 750-10202 wählt in Übereinstimmung
mit den Zuständen der Signale DMIFS2100 und
DMIFS3100 von dem Schalter 750-128 das in Frage kommende Binärsignal 1 der vier Paar-Zählflipflops
aus, um es an das NAND-Glied 750-10204 abzugeben. Dadurch gibt das NAND-Glied 750-10204 das Signal LAST0DD100
030025/0769
294957 t
als Binärsignal O ab. Dies führt dazu, daß das NAND-Glied
750-10206 das Signal LASTDTAODDOOO als Binärsignal 1 abgibt.
Wenn das nächste Paar von Datenwörtern aufgenommen wird, veranlaßt dies das NAND-Glied 750-10206, das Signal
LASTDTAODDOOO als Binärsignal 0 abzugeben. Dies wiederum veranlaßt das NAND-Glied 750-10210, das Rücksetzsignal
RESETTBV1100 als Binärsignal 1 abzugeben. Die Decoderschaltung
750-10212 wird durch das Signal RESETTBV100 veranlaßt, an einem der vier Ausgangsanschlüsse 4 bis
ein Binärsignal 1 abzugeben. Dadurch wird wiederum das in Frage kommende eine Flipflop der Transitblock-Gültigkeitsbit-Flipflops
über das andere UND-Glied zurückgesetzt. Sobald das TB-Gültigkeits-Flipflop zurückgesetzt
ist, setzt es das ihm zugehörige Paar-Zähl-Flipflop über
sein anderes UND-Glied zurück. Es dürfte einzusehen sein, daß eine derartige Umschaltung auf das Auftreten des
T-Taktsignals CLKT022 hin erfolgt.
Wie aus Fig. 7a ersichtlich ist, umfaßt die erste Gruppe der Schaltungen des Blocks 750-102 ferner eine Vielzahl
von NAND-Gliedern 750-10216 bis 750-10222, deren Jedes so geschaltet ist, daß es ein anderes Ausgangs-Binärsignal
1 von dem Register 750-10214 her aufnimmt. Die binären 1-Ausgangssignale FTBV0100 bis FTBV3100 werden
ferner den Steuereingangsanschlüssen der Transitblock-Adressenvergleicherschaltungen
750-132 bis 750-136 zugeführt.
Die NAND-Glieder 750-10216 bis 750-10222 sind ferner so geschaltet, daß sie jeweils ein anderes Signal der Signale
IN0100 bis IN3100 von der Decoderschaltung 750-10601 her aufnehmen. Die Ausgangssignale dieser Verknüpfungsglieder werden einem UND-Glied 750-10244 zugeführt. Die
Signale VALIDOOO bis VALID3000 werden dazu herangezogen, eine Anzeige dann zu liefern, wenn ein Transitblock-Registerplatz
für einen Schreibvorgang verfügbar ist.
030025/0769
Dies bedeutet, daß dann, wenn ein ausgev/ähltes Transitblock-Gültigkeitsbit-Flipflop
sich im Rücksetzzustand befindet, das UND-Glied 750-10224 das Signal VALlDiNOOO
als Binärsignal 1 aufrechterhält.
Durch das VALIDINOOO-Signal wird ein weiteres UND/NAND-Glied
750-10226 veranlaßt, ein Steuersignal RTB100 als Binärsignal 1 während der zweiten Hälfte eines Betriebszyklus (das ist das Signal FHT020 als Binärsignal 1) im
Falle eines Lesebefehls (was bedeutet, daß das Signal DREQREAD100 als Binärsignal 1 auftritt) zu dem Zeitpunkt
abzugeben, zu dem eine Adreßlistenzuteilung nicht vorgenommen wird (das heißt, daß das Signal FLDTBVALIDOOO
als Binärsignal 1 auftritt).
Wie aus Fig. 7a hervorgeht, wird das Steuersignal RTB100
über eine Treiberschaltung 750-10228 an eine Decoderschaltung 750-10230 abgegeben. Das steuersignal RTB110
veranlaßt die Decoderschaltung 750-10230, ein in Frage kommendes Ausgangssignal der Ausgangssignale RTB0100
bis RTB3100 abzugeben, und zwar dasjenige Ausgangssignal, welches durch die Zustände der Signale FTBPTR0100 und
FTBPT1100 bezeichnet ist, die über zwei Treiberschaltungen
750-10232 und 750-10234 abgegeben werden. Das betreffende erwähnte Ausgangssignal tritt dann als Binärsignal
1 auf. Dadurch werden wiederum die Bitpositionen 24-31 eines der Transitblock-Registerplätze mit Adressensignalen
geladen, die über die RADO-Leitungen 24-31 zugeführt werden. Das Komplementsignal RTBOOO wird als Eingangssignal
an den Block 750-107 abgegeben, um das Laden der Befehlsschlange 750-107 zu steuern.
Eine zweite Gruppe von Schaltungen des Blocks 750-102 umfaßt, wie dies im einzelnen veranschaulicht ist, den
Transitblock-Pufferkennzeichen-Speicherbereich 750-10238
des Puffers 750-102. Dieser Bereich sowie der Bereich des
030025/0769
Puffers 750-102 (nicht dargestellt) ist aus einem simultan betriebenen 4 χ 4-Doppel-Lese/Schreib-Speicher.
Der Speicher ist ein 16-I3it-3peicher, der in
vier Wörter· a vier Bits organisiert ist, von denen lediglich drei Bits angedeutet sind. Die Wörter können
unabhängig voneinander aus irgendwelchen zwei Speicherplätzen zur gleichen Zeit gelesen werden, zu der eine
Information in irgendeinen Speicherplatz eingeschrieben wird. Die Signale FTBPTRO100 und FTBPTR1100 werden an
die Schreibadressenanschlüsse abgegeben, während die Leseadressen durch das VCC-Signal freigegeben werden,
welGhes an die Anschlüsse G1 und G2 angelegt wird. Die Y-Bit-Plätze werden in Übereinstimmung mit den Zuständen
der Leseadressensignalf MIFS3100 und I4IFS21OO von dem
Schalter 750-128 her ausgewählt. Die Z-Bit-Plätze werden in Übereinstimmung mit den Zuständen der Signale DMIF3100
und DMIF2100 von dem Schalter 750-128 her ausgewählt. Da diese Plätze nicht wichtig sind, werden sie hier nicht
weiter erläutert.
Der Speicher kann von herkömmlichem Aufbau sein und beispielsweise
die Form der Schaltungen haben, wie sie in der US-PS 40 70 657 angegeben sind. Auf die Aufnahme
von Speicherdaten hin wird der Kennzeichenbitinhalt des Transitblockplatzes, der durch die Signale MIFS2100
und MIFS3100 bezeichnet ist, an die Y-Ausgangsanschlüsse
abgegeben. Diese Signale werden ihrerseits an die Blöcke 750-102, 750-115 und 750-117 abgegeben, wie
dies veranschaulicht ist. Während des Adreßlisten-Zuteilungszyklus
für einen Cachespeicher-Leseausweichvorgang werden die Kennzeichenbitpositionen des Transitblockplatzes,
die durch die Signale Fl'BPTROIOO und FTBPTR1100 bezeichnet sind, mit den Signalen FORCEBYPOOO,
FRDQUAD100 und FLDQUAD100 geladen, die durch die Schaltungen
der Blöcke 750-5 und 750-114 erzeugt werden.
030025/0769
Aus Fig. 7a geht ferner hervor, daß der Block 750-102
außerdem eine Gruppe von Befehlsaufruf-Kennzeichenschaltungen
umfaßt, die der Operation des Transitblockpuffers 750-102 zugehörig sind. Diese Schaltungen
umfassen zwei Sätze von Eingangs-UND-Gliedern750-10240
bis 750-10243 und 750-10250 bis 750-10253, zwei Multiplexer-Auswahlschaltungen
750-10255 und 750-10256, ein IF1-Register und ein IF2-Kennzeichenspeicherregister
750-10258 sowie eine Ausgangs-Multiplexerschaltung 750-10260. Diese Schaltungen sind in der dargestellten
Weise angeordnet.
Die binären Ausganc;ssignale 1 der einzelnen IF1- und
IF2-Flipflops werden entsprechenden UND-Gliedern der Reihen der UND-Glieder 750-10240 bis 750-10243 und
750-10250 bis 750-10253 zugeführt. Diese UND-Glieder erhalten außerdem Ein^angssignale von den Schaltungen
de?s Blocks 750-106 her zugeführt, die auf das Auftreten
der Eingabezeigersignale FTBPTROOOO und FTBPTR1000 erzeugt
werden, welche zur Adressierung der verschiedenen Registerplätze innerhalb des Puffers 750-102 herangezogen
werden, wie dies oben bereits erwähnt worden ist.
Die Multiplexerschaltung 750-10255 ist so geschaltet,
daß sie als Steuereingangssignal das Signal FIF1ASSIGN100 von dem FIF1ASSIGN-Flipflop 750-1418 aufnimmt. Die Multiplexerschaltung
750-10256 ist so geschaltet, daß sie als Steuereirigangssignal das Signal FIF2ASSIGN100 von dem
FIF2ASSIGN-Flipflop 750-1410 her aufnimmt. Dies ermöglicht
das Setzen und/oder Rücksetzen der Flipflops IF1 und IF2 des Registers 750-10258 auf das Auftreten der Signale
FIF1ASSIGN100 bzw. FIF2ASSIGN100 hin. Das Umschalten erfolgt auf das Auftreten des T-Taktsignals CLKT022
während des Ladens eines Transitblock-Registerplatzes, wenn das Steuersignal LDTBVALID100 über ein UND-Glied
750-11428 als Binärsignal 1 abgegeben wird.
030025/0769
üs sei darauf hingewiesen, daß das Register 750-10258
einen IF1-Kennzeichenbitplatz und einen IF2-Kennzeichenbitplatz für jeden Transitblock-Registerplatz
aufweist. Dies bedeutet, daß das Register Flipflops FIF10, FIF20 bis FIF13, FIF23 für die Transitblock-Registerplätze
0 bis 3 umfaßt. Jedes der binären 1-Ausgangssignale der IF1- und IF2-Kennzeichen-Flipflops
wird außerdem unterschiedlichen Eingangsanschlüssen der Ausgangs-Multiplexerschaltung 750-10260 zugeführt.
Die Schaltung 750-11450 enthält zwei Bereiche. Dies ermöglicht, die Signale DMIFS2100 und DMIFS3100 an die
Steueranschlüsse der Multiplexerschaltung 750-10260 von dem Block 750-128 her abzugeben, um als Ausgangsbzw.
Eingangssignale Signale sowohl von einem IF1-Kennzeichen-Flipflop als auch von einem 1F2-Kennzeichen-Flipflop
auszuwählen. Das ausgewählte Signalpaar bewirkt seinerseits, daß Kennzeichensignale ZIF1FLG100 und
ZIF2FLG100 bereitgestellt werden, die an den Block 750-115 abgegeben werden. Diese Signale werden dazu
herangezogen, das Einschreiben einer Speicherinformation
in die 1BUF1- und 1BUF2-Puffer 750-715 bzw. 750-717 zu
steuern. Darüber hinaus werden die Komplementärsignale der Ausgangssignale der Multiplexerschaltung 750-10260,
die den Signalen ZIF1FLGOOO und ZIF2FLG000 entsprechen,
zwei Eingangsanschlüssen einer Multibereichs-Vergleicherschaltung 750-110/750-11435 zugeführt.
Es sei darauf hingewiesen, daß der letzte Bereich jeder der Multiplexerschaltungen 750-10255 und 750-10256 in
Reihe geschaltet ist, um das Freigabe-Transitblock-Pufferbereit schaft signal ENABTBRDY100 zu erzeugen,
welches an den Block 750-114 abgegeben wird. Wie dargestellt, wird dem "O"-Eingangsanschluß des letzten Bereiches
der Multiplexerschaltung 750-10255 eine Spannung VCC zugeführt (die kennzeichnend ist für eine binäre 1),
während der "1"-Eingangsanschluß mit Erde bzw. Masse
030025/0769
verbunden ist (was kennzeichnend ist für eine binäre O).
Der Ausgangsanschluß des letzten Bereiches der Multiplexerschaltung
750-10255 ist mit dem "0"-Eingangsanschluß des letzten Bereiches der Multiplexerschaltung
750-10256 verbunden, während der "1"-Eingangsanschluß mit Erde bzw. Hasse verbunden ist. Die Multiplexerschaltungen
750-10255 und 750-10256 arbeiten in der Weise, daß das Signal ENABTBRDY100 als Binärsignal 1
lediglich nach Beendigung eines Befehlsaufruf-Zuteilungszyklus abgegeben wird, wenn die beiden Signale FIF1ASSIGN100
und FIF2ASSIGN100 als Binärsignale 0 auftreten. Deshalb
werden die Signale an den "O"-Eingangsanschlüssen als
Ausgangssignale von der Multiplexerschaltung 750-10255 and 750-10256 ausgewählt, was dazu führt, daß das Signal
ENABTBRDY100 als Binärsignal 1 abgegeben wird. Dies stellt die unbeabsichtigte Erzeugung des Signals IBUFRDY100
dar, wie dies hier erläutert wird.
Wie aus Fig. 7a hervorgeht, enthalten die Schaltungen des Transitpuffers in dem Zeigerblock 750-106 ein takt-»
gesteuertes 2-Bit-Register 750-10600 und eine Decoderschaltung 750-10601. Dem Register 750-10600 sind ein
NAND/UND-GIied 750-10602 und ein zwei Eingänge aufweisendes
UND/ODER-Glied 750-10604 zugehörig; diese Verknüpfungsglieder sind in einer Zähleranordnung miteinander
verbunden. Dies bedeutet, daß das NAND-Glied 750-10602 auf das Auftreten eines Lade signals FLDTBVALID111
von dem Block 750-114 her und auf das Auftreten des Signals N0G0020 ein inkrementierungssignal INCTBIN100 als
Binärsignal 1 abgibt. Dadurch wird der in dem Register
75O-IO6OO gespeicherte Adressenwert um 1 inkrementiert
bzw. erhöht. Das vergrößerte Signal INCTBIN100 wird an die Schaltungen des Blockes 750-102 abgegeben.
Die Bitposition höchster Wertigkeit des Registers 750-10600 wird über das Verknüpfungsglied 750-10604
in den Binärzustand 1 gesetzt, und zwar entweder auf
030025/0769
das Auftreten der Signale FTBPTR0100 oder auf
FTBPTR11OO das Auftreten der Signale FTBPTR Oi OO/und FTBPTROOOO
als Binärsignale 1. Die komplementären binären 1-Ausgangssignale der Register-Bitpositionen, die den
Signalen FTBPTROOOO und FTBPTR1000 entsprechen, werden
durch die Decoderschaltung 750-10601 decodiert. Diese Decoderschaltung 750-10601 gibt auf das Auftreten der
Signale FTBPTROOOO und FRTBPTR1000 hin an einem der vier Paare von Ausgangsanschlüssen ein .Binärsignal 1
ab.
Der Befehlssteuerungs-Schaltungsblock 750-114 enthält
ein synchron betriebenes Be fehl sauf ruf -2-Such-( FIF2SEACRCH)·
Flipflop 750-11400 vom D-Typ. Das Flipflop 750-11400 wird auf das Auftreten eines T-Taktsignals CLKT020 hin dann
in den Binärzustand 1 gesetzt, wenn ein zwei Eingänge aufweisendes UND/ODER-Glied 750-11402 und ein UND-Glied
750-11400 ein Signal SETIF2SEARCH-100 als Binärsignal
1 abgeben. Dies tritt dann auf, wenn entweder ein 1F1-Befehl ein sogenannter Treffer ist oder wenn
ein 1F2-Befehl von dem Prozessor 700 während eines 1F1-Zuteilungszyklus aufgenommen ist.
Im Falle des Auftretens eines IF1-Befehls ist angenommen,
daß kein Haltezustand vorliegt (was bedeutet, daß das Signal H0LDDMEM000 von dem Block 750-117 als Binärsignal
1 auftritt) und daß durch einen Adreßlisten-Suchvorgang ein Treffersignal erzeugt worden ist (d.h.,
daß das Signal H1T0TB100 als Binärsignal 1 auftritt) wodurch angezeigt wird, daß der angeforderte Befehlsblock in dem Cachespeicher 750-300 enthalten ist.
Bezüglich eines IF2-Befehls ist angenommen, daß ein Adreßlisten-Zuteilungszyklus vorliegt, de eine Adreßlistenabsuche
folgt, im Zuge derer eine Ausweichung bzw. Verfehlung vorgelegen hat, und zwar auf den IF1-Befehl
hin (dies bedeutet, daß das Signal FIF1ASSEGN100 als Binärsignal 1 auftritt).
030025/0769
2349571
In jeder der erwähnten Situationen gibt das Verknüpfungsglied 750-11402 das Signal SETIF2TIME100 als
Binärsignal 1 ab. Wenn der Instruktionsaufrufbefehl
durch einen Transfer- oder Verzweigungsbefehl hervorgerufen worden ist, bei dem es sich nicht um einen
NOGO-Befehl handelt (was bedeutet, daß das Signal NOGCO30 als Binärsignal 1 auftritt), so zeigt dies
an, daß der IF2-Befehl verarbeitet werden sollte, der gerade an die Befehlsleitungen angelegt ist (d.h., daß
eine Anzeige durch das/Binärsignal 1 auftretende Signal
DREQCAC112 vorliegt). Außerdem gibt das UND-Glied
750-11404 das Signal SETIF2SEARCH100 als Binärsignal 1
ab. Dadurch wird das Flipflop 750-11400 in den Binärzustand 1 umgeschaltet, wenn das Signal CANCEL012 als
Binärsignal 1 auftritt.
Wie aus Fig. 7a hervorgeht, wird das am Ausgang des Flipflops 750-11400 auftretende Binärsignal 0 als Eingangssignal
an die Halteschaltungen des Blocks 750-117 abgegeben. Das Signal FIF2SEARCH000 wird durch eine
Pufferschaltung 750-11406 verzögert und dem einen Eingang eines NAND-Gliedes 750-11408 eines Befehls-Aufruf-Zwei-Zuteilungs-(IFIF2ASSIGN)-Flipflops
750-11410 zugeführt.
Das Signal FIF2SEARCH010 bewirkt zusammen mit dem Signal
EISIF2000 (welches einen Nicht-EIS-Befehl anzeigt), daß das NAND-Glied 750-11408 das FIF2ASSIGN-Flipflop
750-11410 in den Binärzustand 1 auf das Auftreten eines Verknüpfungs- bzw. Tastsignals SETBVALID100 und eines
T-Taktsignals CLKT020 umschaltet. Der Zustand dieses
Flipflops sowie der übrigen Elemente wird als Ausgangssignal abgegeben, wenn das Signal FLDTBVALID110 ein
Binärsignal 1 ist.
Es sei darauf hingewiesen, daß das Signal FLTBVALID110
030025/0769
über ein UND-Glied 750-11412, über ein taktgesteuertes Flipflop 750-11414 und über eine Verzögerungspufferschaltung
750-11416 im Falle eines Ausv/eich- bzw. Verfehlungszustands als Binärsignal 1 abgegeben wird (was bedeutet,
daß das Signal HITT0TB010 ein Binärsignal 1 ist). Dieser Zustand wird dabei in Abhängigkeit von einer Adreßlisten-Absuche
erzeugt, die bezüglich eines Lesebefehls (z.B. IF2) vorgenommen wird. Dabei ist angenommen, daß kein
Haltezustand vorliegt (was bedeutet, daß das Signal HOLDDMEMOOO ein Binärsignal 1 ist). Außerdem ist angenommen,
daß im Falle eines 1F2-Befehls der betreffende Zustand nicht vorhanden war aufgrund eines NOGO-Transfers
(was bedeutet, daß das Signal N0G0O20 ein Binärsignal 1 ist), und daßkeine Löschbedingung vorliegt (was bedeutet,
daß das Signal CANCELC010 ein Binärsignal 1 ist), und
zwar für eine Leseoperation, die durch die Schaltungen des Blockes 750-113 auf den Lesebefehl hin decodiert
wird, der an die Befehlsleitungen angelegt wird (was bedeutet, daß das Signal DREQREAD100 ein Binärsignal 1
ist, wobei DREQREAD10O=READI00.DREQCAC112 gilt).
Unter ähnlichen Bedingungen wird ein Befehlsaufruf-1-Zuteilungs-(FIF1
ASSIGN)-Flipflop 750-11418 über ein eingangsseitiges
UND-Glied 750-11420 auf das Auftreten eines IF1-Befehls hin in den Binärzustand 1 gesetzt
(d.h. dann, wenn das Signal IF1100 ein ßinärsignal 1
ist), wobei eine Ausweichung bzw. ein Aussetzen ermittelt wurde (was bedeutet, daß das Signal SETTBVAID100 als
Binärsignal 1 auftritt). Das Ladetransitpuffer-Gültigkeits-Flipflop
750-11414 bleibt solange gesetzt, bis das Signal SETLDTBVALID100 als Binärsignal 0 auftritt.
Es sei darauf hingewiesen, daß das binäre O-Ausgangssignal FLDTBVALIDOOO an Schaltungen abgegeben wird, die
als Teil des Blockes 750-102 vorgesehen sind.
Das andere Paar der Flipflops 750-11422 und 750-11424 wird im Falle eines Ausweich- bzw. Aussetzerzustands
030025/0789
auf das Auftreten des Signals SETLDTBVALID1OO hin gesetzt.
Das Lade-Vierer-Flipflop 750-11524 wird dann in den Binärzustand 1 gesetzt, wenn der an die DMEM-Befehlsleitungen
abgegebene Befehl als LDQUAD-Befehl decodiort wird (was bedeutet, daß das Signal LDQUAD100
von dem Decoder 750-113 her ein Binarsignal 1 ist) und
daß der an die ZADOB-Leitungen abgegebene ZAC-Befehl derart codiert ist, daß er eine Lese-Vierer-Operation
erfordert (was bedeutet, daß die durch das Signal ZAD0B04100 spezifizierten Befehle IF1, IF2, LDQUAD,
PRERD und RDSNGLE als Binärsignale 1 gesetzt auftreten).
Das RDQUAD-Flipflop 750-11422 wird über ein UND-Glied
750-11426 dann in den Binärzustand 1 gesetzt, wenn ein Signal CQIK1100 von den in dem Befehlsschlangenblock
750-107 enthaltenen Schaltungen her ein Binarsignal 1 ist, wodurch ein Befehl doppelter Genauigkeit
gekennzeichnet ist (was bedeutet, daß das Signal ZAD0B02100 ein Binärsignal 1 ist).
Aus Fig. 7a geht hervor, daß der Block 750-114 ferner
eine Vergleicherschaltung 750-11435 umfaßt. Diese Schaltung kann als in herkömmlicher Weise ausgeführt
betrachtet werden; sie kann beispielsweise die Form von Schaltungen besitzen, wie sie in der US-PS 39 55
angegeben sind.
Die Vergleicherschaltung 750-11435 wird durch Signale USETBRDY100 und DATA100 freigegeben. Das Signal
USETBPDY100 zeigt an, daß der Cachespeicher auf Befehle
wartet, die aus dem Speicher in die Puffer IBUF1 oder 1BUF2 zu laden sind. Das Signal DATA100 wird von
einem NAND-Glied 750-11436 als Binärsignal 1 abgegeben, was kennzeichnend ist für die Aufnahme einer Information
aus dem Speicher. Die Vergleicherschaltung umfaßt zwei Bereiche. Der eine Bereich vergleicht die Befehlsschlangen-Eingangszeiger
signale und die Ausgangszeigersignale von
030025/0769
den Blöcken 750-108 bzw. 750-109. Dieser Bereich gibt die Signale CQCMP100 und CQBMPOOO als Binärsignale
bzw. als Binärsignal 0 dann ab, wenn die Zeigersignale gleich sind. Der Bereich entspricht dem Block 750-110
in Fig. A.
Der andere Bereich vergleicht die Eingangssignale an
den Anschlüssen A1, A2 und B1, B2 - wobei die Steuersignale
ZRIB100, ZIB010 den Eingangsanschlüssen A1, A2 zugeführt werden - mit den Zuständen der i-Abruf-1- und
I-Abruf-2-Kennzeichensignale ZIF1FLGOOO, ZIF2FLG000,
die an die Anschlüsse B1, B2 angelegt werden. Wenn Gleichheit vorliegt, zeigt dies an, dai3 die Information aus
dem Speicher zu diesem Zeitpunkt entweder auf einen i-Abruf-1- oder auf einen I-Abruf-2-Befehl hin aufgenommen
wird bzw. worden ist. Es sei darauf hingewiesen, daß das Steuersignal ZRIB100 den ZRIB-Schalter 750-720
steuert.
An den Eingangsanschlüssen A4, A8 werden die Signale ZEXTO100, ZEXT1100 mit den Signalen M1FS110Q und
DATA0DD100 verglichen, die an die Anschlüsse B4, B8 angelegt werden. Dadurch wird angezeigt, ob die innerhalb
des Befehlspuffers adressierte Information gleich der empfangenen Information ist. Dabei werden insbesondere
die Signale ZEXT0100 und ZEXT1100 durch die Schaltungen des Blockes 750-920 von der die beiden
Bits niedrigster Wertigkeit umfassenden Adresse des in dem RIRA-Register gespeicherten Befehls erzeugt.
Damit wird die Wortspeicherstelle spezifiziert, die innerhalb des I-Puffers adressiert ist. Das Signal
MIFS1100 ist so codiert, daß festgelegt wird, ob die erste Hälfte oder die zweite Hälfte des Blockes für
die Aufnahme dient. Das Signal DATA0DD100 legt fest, ob das erste Wort oder das zweite Wort der ersten
2-Wort-Paare aufgenommen wird. Das Signal DATA0DD100
©30025/0769
wird durch das UND-Glied 750-11437 erzeugt.
Schließlich vergleicht die Vergleicherschaltung 750-11435 ein Signal ENABTBiIDYIOO, welches dem Anschluß A16 von
dem Block 750-102 her zugeführt wird, mit der Spannung VCC, die kennzeichnend ist für eine binäre 1 und die
dem Anschluß B1b zugeführt wird. Bei Vorliegen einer
tatsächlichen Übereinstimmung zwischen den beiden Reihen von sämtlichen sechs Signalen gibt die Schaltung
750-11435 ausgabeseitig ein Binärsignal 1 ab. Dies führt dazu, daß am komplementären Ausgangsanschluß
das Signal IBUFCMPROOO als Binärsignal 0 auftritt. Dadurch wird der Block 750-722 veranlaßt, das
IBUFRDYIOO-Signal als Binärsignal 1 abzugeben.
Darüber hinaus umfaßt der Bereich 750-114 ein UND-Glied
750-11417. Während der ersten Hälfte eines Cachespeicher-Zyklus (das heißt bei Auftreten des Signals
FHT120 von der Verzögerungsschaltung 750-11810 als Binärsignal 1) wird dann, wenn das FLDTBVALID-Flipflop
750-11414 im Binärzustand 1 ist, das UND-Glied 750-11417 das Steuersignal RTB5-8100 als Binärsignal 1
abgeben. Dieses Signal v/ird als Taktabtast-Eingangssignal dem Ebenen-Speicherbereich des Transitblockpuffers
750-102 zugeführt. Dieser Bereich ist aus einem simultan betriebenen 4 X 4-Doppel-Lese/Schreib-16-Bit-Speicher
aufgebaut, der in vier Wörtern mit einer Länge von vier Bits ähnlich der Speichereinrichtung
des Blockes 750-10238 organisiert ist und ähnlich den Speichereinrichtungen, die für den Aufbau des
36-Bit-Lesebefehls-Pufferbereichs des Blocks 750-102 sowie des Schreibbefehls/Datenpuffers 750-100 verwendet
sind.
030025/0769
29A9571
In Fig. 7a ist veranschaulicht, daß der Datenaufnahme-
und Steuerblock 750-115 eine Vielzahl von NAND-Gliedern 750-11500 bis 750-11510 und eine Vielzahl von
UND-Gliedern 750-11511 bis 750-11514 enthält, die in der gezeigten Weise angeschlossen bzw. miteinander
verbunden sind, um die Steuerabtast-Freigabesignale LQBUF100, IBUF1100 und 1BUF2100 sowie das Rücksetz-Puffersignal
RESETBUF100 und das Schreibsteuer-Puffersignal WRTBUFO100 zu erzeugen. Diese Signale werden
dazu herangezogen, den Betrieb der Pufferschaltungen des Bereichs 750-7 zu steuern. Wie aus Fig. 7a hervorgeht,
wird das andere Schreibsteuer-Puffersignal WRTBUF1100 von einer Pufferverzögerungsschaltung 750-11515
auf das Auftreten des Signals FARDA010 hin erzeugt. Das Signal WRTBUF0100 wird vom Ausgang der zwei Eingänge
aufweisenden Datenwähler/Multiplexerschaltung 750-128 abgeleitet, die entweder das Signal RMIFS1100 von dem
Register 750-127 oder das Signal RMIFSB1100 von dem Register 750-129 auswählt. Die Auswahl erfolgt in Übereinstimmung
mit dem Zustand des FARADAOOO-Signales, das auf
030025/0769
der Annahmeleitung ARDA der Datencchnittstellenschaltung
600 erzeugt wird. Die Multiplexerschaltung 750-128 erzeugt in Übereinstimmung mit dem Zustand des Signals
FSARDAOOO die beiden Reihen von Signalen MIFS2100,
HIFS3100 und DMIFS2100, DMIFS3100, die an die Leseadresseneingänge
des Puffers 750-102 angelegt werden.
Es sei darauf hingewiesen, daß der Bereich bzw. Abschnitt 750-115 ferner ein Flipflop 750-11517 vom D-Typ für
doppelte Genauigkeit (FDPFSX) enthält, welches auf das Auftreten einos Taktsignals CLKT020 hin über ein erstes
eingangsseitiges UND-Glied in den Binärzustand 1 gesetzt wird, und zwar in Übereinstimmung mit dem Zustand des
Signals PTXDPFS100, welches dem betreffenden UND-Glied
über eine Verstärkerschaltung 750-11518 von der DPFS-Leitung durch die Systemschnittstelleneinheit 100 zugeführt
wird. Die DPFS-Leitung zeigt im Setzzustand an, daß zwei Datenwörter von der Systemschnittstelleneinheit
100 her ausgesendet worden sind. Das Umschalten erfolgt, wenn die Systemschnittstelleneinheit 100 das
Signal PTXARDA100, welches ihr über eine Verstärkerschaltung 750-11519 von der ARDA-Leitung der Schnittstelleneinheit
600 her zugeführt worden ist, als Binärsignal 1 abgibt. Die ARDA-Leitung zeigt an, daß die von
dem Cachespeicher 750 angeforderten Lesedaten auf den DFS-Leitungen von der Systemschnittstelleneinheit 100
vorhanden sind. Das Ausgangssignal eines FARDA-Flipflops
(nicht gezeigt), welches das Signal ARDA um eine Taktperiode verzögert, wird einem zweiten Halt-UND-Glied
zusammen mit dem Signal FDPFSX100 zugeführt. Das FDPFSX-Flipflop 750-11517 bleibt für zwei Taktperioden
gesetzt. Dies bedeutet, daß das Flipflop 750-11517 in Übereinstimmung mit der Anzahl der
Reaktionen bzw. Antwortsignale (DPFS-Signale) der
Systemschnittstelleneinheit gesetzt ist. Im Falle eines Einzellesebefehls erzeugt die Systemschnitt-
030025/0769
Stelleneinheit zwei Antwortsignale, deren jedes ein Paar von Wörtern einbringt, in jedem Fall ermöglicht
dies das Einschreiben der beiden Wörter in den Cachespeicher, wenn das Signal KWRCACFLG1OO als Binärsignal
1 auftritt.
Das binäre O-Ausgangssignal des Flipflops 750-11517
wird durch ein NAND/UND-Glied 750-11521 invertiert und durch eine Pufferverzögerungsschaltung 750-11522 verzögert,
bevor es an das UND-Glied 750-11512 abgegeben wird. Dasselbe binäre O-Ausgangssignal wird ohne Invertierung
mittels einer Pufferverzögerungsschaltung 750-11523 verzögert und an Schaltungen abgegeben, welche
die Zustände der Bitstellen eines Transitpuffer-Gültigkeitsbit-Registers
zurücksetzen, welches einen Teil des Transitpuffers 750-102 darstellt.
Es sei ferner darauf hingewiesen, daß das einer doppelten Genauigkeit dienenden Signals FDPF110 in einem
UND-Glied 750-11524 mit einem Schreib-Cachespeicher-Kennzeichnungssignal RWRTCACFLG100 von dem Transitblockpuffer-Kennzeichenspeicherteil
des Puffers 750-102 verknüpft wird. Das UND-Glied 750-1152 erzeugt ein
Speicher-Schreibanforderungssignal MEMERTREQ100, welches
an den Bereich bzw. Abschnitt 750-9 abgegeben wird, um das Einschreiben von Speicherdaten in den Cachespeicher
freizugeben (d.h. die Adressenschalter-Auswahl zu steuern).
Wie aus Fig. 7a hervorgeht, enthält der Auslöse-Anforderungssteuerschaltungsblock
750-116 ein aktives Ausgangsanschluß-Anforderungs-Flipflop 750-116OO.
Dieses Flipflop ist ein taktgesteuertes Flipflop vom D-Typ» welches zwei eingangsseitige UND/ODER-Verknüpfungsschaltungen
enthält. Das Flipflop 750-11600 wird auf das Auftreten des Taktsignals CLKT020 hin
030025/0769
dann in den Binärzustand 1 gesetzt, wenn der Block 750-114 zwei Signale ENABSETA0PR100 und SETA0PR100
als Binärsignale 1 abgibt. Wenn dieses Flipflop in den Binärzustand 1 gesetzt ist, führt dies wiederum
dazu, daß die AOPR-Leitung der Schnittstelleneinrichtung 600 eingestellt wird, wodurch der Systemschnittstelleneinheit
100 eine Datentransferanforderung signalisiert
wird. Das Binärsignal 0 des Flipflops 750-11600 wird mittels einer Inverterschaltung 750-11602 invertiert,
mittels einer Verzögerungspufferschaltung 750-11604 verzögert und einem Halte-UND-Glied zugeführt.
Das Flipflop 750-11600 bleibt solange gesetzt, bis zum Taktzeitpunkt das Signal FARA020 in ein Binärsignal
0 umschaltet. Dadurch wird angezeigt, daß die Systemschnittstelleneinheit 100 die Cache Speicheranforderung
angenommen hat.
Der Halte steuerblock 750-117 umfaßt, wie dargestellt, ein Sperr-Transitpuffer-Treffer-FINHTBHIT-Flipflop
750-11700, ein UND-Glied 750-11702 und eine Vielzahl von UND/NAND-Gliedern 750-11704 bis 750-11716. Das
Flipflop 750-11700 wird über ein erstes eingangsseitiges
UND-Glied und ein NAND-Glied 750-11704 auf das Auftreten eines T-Taktsignals CLKT020 hin dann in
den Binärzustand 1 gesetzt, wenn die Signale 1NHTBHIT100
und TBHIT100 als Binärsignale 1 auftreten. Das NAND-Glied
750-11701 gibt das Signal 1NHTBHIT100 als Binärsignal 1 im Falle einer Löschbedingung ab (was bedeutet,
daß das Signal CANCELC012 als Binärsignal 0
auftritt).
Von der komplementären Ausgangsseite des Flipflops 750-11700 wird das Signal FINHTBHITOOO als ein Eingangssignal
an das UND-Glied 750-11702 abgegeben. Ein Adreß-Iisten-Belegtsignal
DIRBUSYOOO von dem Block 750-526 wird dem anderen Eingang des UND-Gliedes 750-11702
030025/0789
zugeführt. Wenn die AdreOliste keinen Suchvorgang ausführt (d.h., daß das Signal DiRUUSYOOO ein Binärsignal
1 ist) und wenn das Signal 1NHTBHITIOO ein Binärsignal
1 ist, dann gibt das UND-Glied 75Ο-1Ί702 das
Signal 1NHTBACMP000 als Binärsignal 1 ab. Dies bewirkt, daß das Verknüpfungsglied 750-11704 das Signal
ΤΒΗΠΊ00 als Binär signal 1 abgibt, wenn das UND-Glied
750-136 ein Transitblock-Adressenvergleichssignals TBACMP100 als Binärsignal 1 abgibt. Zugleich gibt das
Verknüpfungsglied 750-11704 das Signal TBHITOOO als Binärsignal 0 ab.
Die UND/NAND-Glieder 750-11708 bis 750-117110 erzeugen
die Signale CPSTOPOOO bis CPST0P003, die dem Prozessor zugeführt werden, um das vorliegen eines Haltezustands anzuzeigen.
Die anderen UND/NAND-Glieder 750-11714 bis 750-11716 erzeugen die Signale HOLDDMEMOOO bis H0LDDMEM003,
um einen internen Haltezustand anzugeben, durch den die anderen Bereiche bzw. Abschnitte des CacheSpeichers
daran gehindert werden, den Befehl auszuführen, der von dem Prozessor 700 an die Befehlsleitungen abgegeben ist.
Wenn ein Haltebefehlszustand (d.h., daß das Signal HOLDCMDOOO als Binärsignal 0 auftritt), ein Ausweichoder
Ausfallzustand (was bedeutet, daß das Signal FRDMISS020 als Binärsignal 0 auftritt), ein Halte-Viererzustand
von dem Block 750-916 (was bedeutet, daß das Signal HOLDLDQUADOOO als Binärsignal 0 auftritt)
oder ein Transitblock-Trefferzustand vorliegt (was bedeutet, daß das Signal TBHITOOO als Binarsignal 0
auftritt), dann geben die Verknüpfungsglieder 750-11708 bis 750-11710 ihre Ausgangssignal CPST0P003 bis CPSTOPOOO
als Binärsignaüe 0 und die Signale CPST0P103 bis CPST0P100
als Binärsignale 1 ab. Dadurch wird der Prozessor 700 veranlaßt, den Betrieb anzuhalten.
Unter entsprechenden Bedingungen wird zusätzlich zu
030025/0769
einem Haltesuchzustand (d.h. dann,wenn das Signal
HOLDSEARCHOOO ein Binärsignal 0 ist), wie dies durch das UND-Glied 750-11712 angezeigt wird, das Signal
EARLYHOLDOOO als Binärsignal 0 abgegeben, oder in einem Halte-Cachespeicherzustand (d.h., daß das
Signal HOLDCCUOOO als Binärsignal 0 auftritt) geben die Verknüpfungsglieder 750-11714 bis 750-11716 ihre
Ausgangssignale HOLDDMEMOOO bis H0LDDMEM003 als Binärsignale
0 ab, während die Signale H0LDDMEM100 bis H0LDDKÜM103 als Binärsignale 1 auftreten.
Aus den Zeichnungen geht hervor, daß die Zeitsteuerschaltungen des Blockes 750-118 ein synchron betriebenes
Flipflop 750-11800 vom D-Typ mit zwei UND/ODER-Eingangs-Gchaltungen umfassen. Das Flipflop 750-11800 nimmt
tlas 1/2JL'-Taktsignal CLKHT100 über das Verknüpfungsirlied
750-11802 und die Inverterschaltung 750-11804 auf. IJin Begrenzungs-T-Taktsignal DEFTCLK110 wird einem der
Dateneingänge über zwei Verzögerungspufferschaltungen 750-11806 und 750-11808 zugeführt. Jede Pufferschaltung
bringt eine minimale Verzögerung von 5 ns mit sich.
Die beiden Signale CLKHT100 und DEFTCLK110 werden durch
die gemeinsame Takt- bzw. Zeitsteuersignalquelle erzeugt. Auf das Auftreten dieser Signale hin schaltet das HaIt-T-Flipflop
750-11800 in den Binärzustand 1 um, und zwar auf die Rückflanke des DEFTCLKHO-Signales hin. Das betreffende
Flipflop schaltet in den Binärzustand 1 auf das Auftreten des nächsten CLKHTIOO-Signals hin um
(an der Rückflanke).
Die Signale FHT100 und FHTOOO werden zusätzlich zu den
Signalen FHT120, FHT010 und FHT020, die von den Ausgangsanschlüssen
1 und 0 des Flipflops 750-11800 abgeleitet sind, an die übrigen Schaltungen des Bereichs
750-1 sowie an die übrigen Bereiche (das sind die Bereiche 750-5, 750-9 und 750-114) verteilt. Die
030025/0 769
294957t
in
Signale 1-1HTI20, FHT020 und FHT010 werden über ein
weiteres Paar von Verzögerungspufferschaltungen 750-11810 und 750-11812 sowie über eine Treiberschaltung
750-11814 verteilt.
Die T-Taktsignale, wie die Taktsignale CLKT020 und
CLKT022, die von der gemeinsamen Zeitsteuersignalquelle
erzeugt werden, werden in ihrer "Ursprungs"-Form auf die verschiedenen Flipflops der Register verteilt.
Wenn eine Forderung dahingehend existiert, ein Ί/2-T-Taktsignal zu erzeugen, dann wird das 1/2-T-Taktsigrial
CLKHT020 mit dem 1/2-T-Begrenzungssignal (FHT100)
zum Eingang des Flipflops oder Registers hin geleitet. Der Zustand des Signal FHT100 wird dazu herangezogen,
die ersten und zweiten Hälften eines T-Zyklus festzulegen. Wenn das Signal FHT100 ein Binärsignal 1 ist,
dann legt dies ein Zeitintervall entsprechend der ersten Halte eines T-Taktzyklus fest. Wenn demgegenüber
das Signal FHT100 ein Binärsignal 0 ist, dann legt dies ein Zeitintervall entsprechend der zweiten Halte eines
T-Taktzyklus fest.
Im Rahmen der vorliegenden Erfindung können die Datenwiedergewinnungsschaltungen
als in herkömmlicher Weise ausgeführt angesehen werden; sie können beispielsweise
die Form der Schaltungen haben, die in den angegebenen Literaturstellen beschrieben sind. Diese Schaltungen
erzeugen ein Datenwiedergewinnungssignal zur Abgabe an
den Prozessor 700 durch undmäßiges Verknüpfen des 1/2-T-Taktsignals FHTOOO mit einem Signal, welches
kennzeichnend ist dafür, daß Daten in die Prozessor-Register getastet werden. Dadurch wird das Datenwiedergewinnungssignal
lediglich während der zweiten Hälfte eines T-Taktzyklus erzeugt, wenn derartige Daten in die
Prozessor-Register getastet sind.
030025/07S9
294957t
In Falle der Abschnitte bzw. Bereiche 750-5 und 750-9 wird das Signal FHT100 dazu herangezogen, das Umschalten
der anderen Zeitsteuerungs- und Steuer-Flipflops zu steuern, wie dies erläutert wird.
iiunnehr sei der Bereich 750-3 näher erläutert. In Fig. 7b sind spezielle Blöcke der Blöcke des Bereichs
750-3 näher veranschaulicht. Dabei sind soweit wie möglich entsprechende Bezugszeichen verwendet worden.
Aus Fig. 7b geht hervor, daß die Decoderschaltungen des Blockes 750-303 eine Decoderschaltung 750-30300 enthalten,
die für den Betrieb durch das Signal ENBMEMLEV100
von den Schaltungen des Blockes 750-920 her freigegeben wird. Die Signale von den nichtinvertierenden Ausgangsanschlüssen
der Decoderschaltung 750-30300 werden an die Eingangsanschlüsse einer ersten Multiplexerschaltung
750-30302 abgegeben. Die an den invertierenden Ausgangsanschlüssen auftretenden Signale werden an die
Eingangcanschlüsse einer zweiten ITultiplexerschaltung
750-30304 abgegeben. Die Hultiplexerschaltung 750-30302 ist für den Betrieb stets freigegeben, während die Multiplexerscnaltung
750-30304 lediglich dann freigegeben ist, wenn das Signal ENBADR1100 durch die Schaltungen des
Blockes 750-920 als Binärsignal 1 abgegeben wird. Es sei angenommen, daß di· "O"-Stellungen beider Multiplexerschaltungen
stets ausgewählt werden.
Bestimmte Kombinationen der beiden Reihen von Steuersignalen
ZADRO1100 bis ZADR71100 und der Signale
ZADR00100 bis ZADR70100 werden an die Steuereingangsanschlüsse jedes der acht Crossbar-Adressenauswahlschalter
750-302a bis 75O-3O2h abgegeben. Dabei ist ersichtlich, daß jeder Crossbar-Schalter eine Anzahl
von Abschnitten bzw. Bereichen aufweist, deren jeder drei Teile umfaßt, die durch voll ausgezogene Linien
030025/0769
zwischen den betreffenden Bereichen angedeutet sind. Der Einfachheit halber ist die Anzahl der Bereiche
je Schalter zusammen dargestellt. Der Einfachheit halber ist außerdem der Steuerbereich jedes Abschnittes
bzw. Bereiches lediglich einmal dargesteLlt, da er für
sämtlich^ Abschnitte bzw. Bereiche gleich ist, die erforderlich sind, um den Schalter zu bilden.
Wie aus der vorliegenden Zeichnung hervorgeht, werden in Abhängigkeit von den Zuständen der Paare der Steuersignale
ZADROO1OO, ZADRO11OO bis ZADR7O1OO, ZADR71100
die Signale von einer der drei Quellen an jede Reihe der Anschlüsse V/, X, Y und Z gleichzeitig abgegeben.
Nunmehr sei der Bereich 750-5 näher erläutert. In Fig.7c
sind spezielle Blöcke der Blöcke dos Bereichs 750-5 im einzelnen gezeigt. Dabei sind soweit wie möglich entsprechende
Bezugszeichen verwendet.
Aus Fig. 7c ist dabei ersichtlich, daß die Adreßlisten-Treffer/Fehler-Steuerschaltungen
des Blockes 750-512 ein Codiernetzwerk enthalten, welches aus einer Vielzahl von NAND-Glieder 750-51200 bis 750-51220 und aus einer
Vielzahl von Verstärkerschaltungen 750-51224 bis 750-21228 besteht. Die NAND-Verknüpfungsschaltungen
sind so geschaltet, daß die Reihe der Signale ZFE1100
bis ZFE7100 von dem Block 750-506 her und die Reihe der Signale ZHTHOO bis ZHT7100 von den Blöcken 750-640
bis 750-552 her in den 3-Bit-Code codiert werden, der zur Steuerung des Betriebs des Schalters 750-306 dient.
Das Signal GSRCH100 wird durch die Schaltungen des
Blockes 750-526 erzeugt. Wie erläutert, wird dieses Signal lediglich während der zweiten Hälfte eines
T-Taktzyklus als Binärsignal 1 abgegeben. Damit wird ein Ausgangssignal von einem der NAND-Glieder 750-51200
bis 750-51208 lediglich während dieses Intervalls erzeugt.
030025/0769
29A957T
Dabei bewirkt insbesondere das durch den Zustand des Voll/Leer-Bits festgelegte Treffersignal, daß eines
der Signale ZCDLEV1000 bis ZCDLEV7000 als Binärsignal 0
abgegeben wird. Dadurch worden wiederum die NAND-Glieder 750-51216 bis 750-51220 in den Stand versetzt, den
in Frage kommenden 3-Bit-Code zu erzeugen.
Das Signal ZCDICENAB1OO, welches ebenfalls durch die
Schaltungen des Blockes 750-526 erzeugt wird, wird als Binärsignal 1 lediglich während der ersten Hälfte eines
T-Taktzyklus auftreten. Damit werden die Ausgangssignale von den NAND-Gliedern 750-51210 bis 750-51214 lediglich
während dieses Intervalls erzeugt. Dies bedeutet, daß die Instruktions- bzw. Befehlsadressen-Ebenensignale
ZUICLEV0100 bis ZNICLEV2100 von dem Block 750-910 her
die Signale ICLOOOO bis 1CL2000 erzeugen, die ihrerseits
die Signale ZCD0100 bis ZCD2100 erzeugen. Es sei darauf
hingewiesen, daß die Signale ZCD0100 bis ZCD2100 den
Signalen ZNICLEV0100 bis ZNICLEV2100 entsprechen.
Die Signale RDDBLLOOOO bis RDDBLL2000 werden dazu herangezogen,
den zweiten Betriebszyklus für einen Lesedoppel befehl zu definieren. Wenn irgendeines der Signale
RDDBLLOOOO bis RDDBLL2000 als Binärsignal 0 auftritt, dann wird dadurch ein entsprechendes Signal der Signale
ZCD0100 bis ZCD2100 als Binärsignal 1 auftreten.
Die Signale ZCD0100 bis ZCD2100 werden an unterschiedliche
Eingänge entsprechender Verstärkertreiberschaltungen 750-51224 bis 750-51228 abgegeben. Diese Schaltungen
geben die Steuersignale ZCD0100 bis ZCD2100 an die Steueranschlüsse des Schalters 750-3Ob ab.
Ein weiterer in Fig. 7c im einzelnen dargestellter Block ist der Block 750-526. Wie bereits erwähnt,
enthält der Block 75O-52b eine Anzahl von Adreßlisten-
Q30025/0769
Steuerungs-Flipflops. Die Steuerungs-Zustands-Flipflops
enthalten, wie dargestellt, das Adreßlisten-Zute
ilungs-(FDlRSAN j-Steuerzustands-Flipflop 750-52Ö00
und eine Vielzahl von Zeitsteuerungs-Flipflops eines Registers 750-52610.
Das Flipflop 750-52b00 ist ein taktgesteuertes D-Flipflop,
welches in dem Binärzustand 1 über ein erstes eingangsseitiges UND-Glied im Falle einer Befehlsanforderung
(d.h. bei Vorliegen des Signals REQCOMBO100 als Binärsignal 1) bezüglich eines Lesebefehls (d.h. bei Vorliegen
des Signals RDTYP100 als Binärsignal 1) gesetzt ist, wenn der Prozessor 700 Daten aus dem Speicher und
nicht aus dem Cachespeicher anfordert (d.h., daß das Signal BYPCAC110 ein Binärsignal 1 ist;. Bei Fehlen
eines Haltezustands (d.h. dann, wenn das Signal HOLDOOO als Binärsignal 1 an ein UND-Glied 750-52602
abgegeben wird) sowie bei Vorliegen einer weiterführenden übertragung (d.h. bei als Binärsignal 1 auftretendem
Signal N0G0021) und ohne Vorliegen eines Löschzustands
(d.h., daß das Signal CANCELCO10 ein Binärsignal 1 ist) und bei Signalisierung einer Anforderung durch den
Prozessor 700 (was bedeutet, daß das Signal DREQCAC111 als
Binärsignal 1 auftritt) gibt das UND-Glied 750-52604 das Signal REQCOMBO100 als Binärsignal 1 ab.
Ein UND-Glied 750-52606 gibt das Signal SET0NBYP100 als
Binärsignal 1 im Falle eines Lesens ab, wenn die Decoderschaltung 750-528 das Signal RDTYP100 als Binärsignal
1 abgibt und wenn der Prozessor 700 das Umgehungs-Cachespeichersignal BYPCAC110 als Binärsignal 1
abgibt. Das Ergebnis davon ist, daß das FDIRASN-Flipflop
750-52600 in den Binärzustand 1 umschaltet, wodurch ein Adreßlisten-Zuteilungsbetriebszyklus bezeichnet
ist.
030025/0769
Das Flipflop 750-52600 wird außerdem über ein zv/eites eingangsseitiges UND-Glied im Falle einer Befehlsanforderung
in den Binärzustand 1 gesetzt (d.h., daß dann das Signal REQCOMBO100 als Binärsignal 1 auftritt),
und zwar dann, wenn ein Ausweich- bzw. Fehl-Zustand bezüglich des Blockes ermittelt worden ist, den zu lesen
angefordert ist (was bedeutet, daß das Signal SETONMISS100
als üinärsignal 1 auftritt). Das Signal SET0NMISS100 wird als Binärsignal 1 von dem UND-Glied 750-52608 dann abgegeben,
wenn das Signal RDTYP100 als Binärsignal 1 auftritt und wenn das Signal RAWHITOOO von dem Block 750-512
als Binärsignal 1 auftritt. Das Flipflop 750-52600 wird
auf das Auftreten eines Taktsignal:; CL0CK112 hin in den
Binärzustand 0 zurückgesetzt; das betreffende Taktsignal wird von der geneinsamen Signalquelle bei Fehlen eines
Setz-Ausgangssignals von den beiden eingangsseitigen
UND-Gliedern her erzeugt.
3in erstes Flipflop (FICJCNAB) des Registers 750-52610 wird
dazu herangezogen, die Zeitspanne innerhalb eines T-Taktzyklus festzulegen, innerhalb der Instruktionen bzw. Befehle
oder Operanden aus dem Cachespeicher 750 abzuholen bzw. abzurufen sind.
Dieses Flipflop wird in den Binärzustand 1 über ein erstes UND-Glied auf das Auftreten eines Taktsignals CLOCK120 hin
umgeschaltet, wenn das durch die Zeitsteuerschaltungen des Blockes 750-112 erzeugte Signal FHT100 als Binärsignal
1 auftritt. Das Taktsignal CL0CKD120 von der gemeinsamen
Zeitsteuersignalquelle her wird über ein UND-Glied 750-52612 und eine inverterschaltung 750-52612 sowie eine
Inverterschaltung 750-52514 abgegeben. Das FICENAB-Flipflop
wird auf das folgende Taktsignal hin zurückgesetzt, wenn das Signal FHT-100 als Öinärsignal 0 auftritt.
030025/0769
Das zweite, ein bistabiles Kippglied darstellende Flipflop des Registers 750-52610 wird dazu herangezogen,
ein Intervall festzulegen, währenddessen Operanden (nicht Befehle) aus dem Cachespeicher 750 als Folge
einer speziellen Bedingung abgerufen werden, die durch einen IF1-Befehl hervorgerufen wird, der nicht
das letzte Wort in einem Befehlsblock bezeichnet hat. Das FRCIC-Flipflop wird über ein erstes eingangsseitiges
UND-Glied auf das Auftreten des Taktsignals CLACKD120
hin dann in den Binärzustand 1 umgeschaltet, wenn das Signal FJAMZMICLEVOOO als Binärsignal 1 auftritt. Das
FKCIC-Flipflop wird auf das Auftreten des folgenden
Taktimpulses hin zurückgesetzt, wenn das Signal
FJAMZNICLEVOOO als Binärsignal 0 auftritt.
Wie dargestellt, entspricht das am Null-Ausgangsanschluß
des FICENAB-Flipflops auftretende Signal dem Verknüpfungs-Halb-T-Taktsignal GATiHFTCHLKI10, welches
an die Schaltungen des Blockes 750-920 verteilt wird.
Das Signal FICENABOOO wird mit dem Signal FRCICOOO und dem Signal RDDBLZCDEOOO in einem UND-Glied 750-52616
verknüpft, um das Signal GSRCH100 zu erzeugen. Das Signal
RDDBLZCDEOOO kommt von der Decoderschaltung her. Dadurch wird das Signal GSRCH100 als Binärsignal 1
während der zweiten Hälfte eines T-Taktzyklus auftreten, wenn Operanden abgerufen worden (was bedeutet,
daß das Signal FICENABOOO als Binärsignal q auftritt), wobei eine Ausnahme im Falle eines Lesedoppelbefehls
vorhanden ist (d.h. dann, wenn das Signal RDDBLZCDSOOO als Binärsignal 1 auftritt).
Das am Null-Ausgang des FICENAB-Flipflops auftretende binäre Ausgangssignal wird mix/Signal FRCICOOO in einen
NAND-Glied 750-52618 verknüpft. Dieses NAND-Glied gibt
030025/0769
das Signal ZCDINCENAB100 als Binärsignal 1 während des ersten halben T-Intervalls ab, wenn Befehle
abgerufen werden (d.h. dann, wenn das Signal FICENABOOO als Binärsignal 0 auftritt) oder im Falle des oben beschriebenen
IF1-Befehls (.d.h. dann, wenn das Signal FRCICOOO ein Binärsignal 0 ist).
Die Schaltungen des Blockes 750-526 enthalten ferner ein NAND-Glied 750-52620 und eine Vielzahl von UND-Gliedern
750-52Ö22 bis 750-52628, die in der dargestellten Weise geschaltet sind. Die betreffenden Schaltungen
erzeugen ein erstes Freigabesteuersignal DIRADDE100 zur
Steuerung des Betriebs der Decoderschaltung 750-521. Darüber hinaus erzeugen die betreffenden Schaltungen
ein zweites Freigabe steuersignal FEDC0DE100 zur Steuerung des Betriebs einer Decoderschaltung 750-52000
des Blockes 750-520.
Während eines Adreßlisten-Zuteilungszyklus (d.h. dann,
wenn das Signal FDIRASN100 ein Binärsignal 1 ist) wird bei Fehlen eines einen Transfer und keine übertragung
betreffenden Zustands (,d.h. dann, wenn das Signal N0G021 als Binärsignal 1 auftritt) das UND-Glied 750-52626
das Signal D1RN0G0100 als Binärsignal 1 abgeben. Wenn ein Signal FSKIPRROOO von den Schaltungen des Blockes
750-916 als Binärsignal 1 abgegeben wird, dann veranlaßt
dies das UND-Glied 750-52628, das Signal DIRADDE100 als Binärsignal 1 abzugeben, wodurch die Decoderschaltung
750-521 für den Betrieb freigegeben ist. Wenn das Signal DIRN0G0100 oder das Signal FSKiPRROOO als Binärsignal
0 auftritt, dann veranlaßt dies das UND-Glied 750-52628, die Decoderschaltung 750-521 unwirksam zu
machen, indem das Signal DIRADDE100 als Binärsignal 0 auftritt.
030025/0 7 69
Unter denselben Bedingungen gibt dar, UND-Glied 750-52b24
das Signal FiDDCODEI OO als Binär signal 1 ab, wodurch die
Decoderschaltung 7lpO-i?2OOO für den Betrieb freigegeben
ist. Das UND-Glied 75O-52Ö3O veranlaßt eine Verstärkerschaltung
750-52Ö32, das Signal FORCEBYPOOO als Binärsignal 1 dann abzugeben, wenn beide Signale FSKIPRROOO
und FBYPCACOO als Binärsignale 1 auftreten. Das Signal FORCEBYPOOO wird an den Transitblock-Kennzeichenbereich
des Blockes 750-102 abgegeben. Das Signal FBYPCACOOO wird in herkömmlicher Weise erzeugt, gemäß der das Signal
an die Leitung BYPCAC durch den Prozessor 700 abgegeben wird. Das Signal wird in einem Flipflop (nicht dargestellt)
gespeichert, dessen am Null-Ausgang auftretendes Ausgangssignal
dem Signal FBYPCACOOO entspricht.
Die Schaltungen des dargestellten Blockes 750-520 umfassen die Decoderschaltung 750-52000 und zwei Multiplexerschaltungen
750-52002 und 750-52004. Dabei ist angenommen, daß normalerweise die an die "O"-Jiingangsanschlüsse
der Multiplexerschaltungen 750-52002 und 750-52004 abgegebenen Signale ausgewählt sind, um als
Ausgangssignale abgegeben zu werden (dies bedeutet, daß das an den G-Eingang abgegebene Signal ein Binärsignal 0
ist). Demgemäß werder^ann, wenn die Decoderschaltung 750-520000 freigegeben ist, die Ausgangssignale FED0100
bis FED7100 zur Erzeugung der Signale RWFE0100 bis RV/FE7100 auf das Auftreten des Taktsignals CLOCKOOO
hin führen.
In Fig. 7c ist ferner in weiteren Einzelheiten das Register 750-507 veranschaulicht, welches ein taktgesteuertes
vierstufiges Register 750-50400 und eine Vielzahl von Verstärkerschaltungen 750-50402 bis
750-50602 enthält. Das Register 750-50400 enthält D-Flipflops, von denen die ersten drei Flipflops derart
miteinander verbunden sind, daß sie Umlaufsignale 0LDRR0100
030025/0769
bis 0LDRR2100 speichern. Das vierte Flipflop ist so geschaltet, daß es das Vorhandensein eines anderen
Trefferzustands anzeigt, der durch die Schaltungen
des Blockes 750-562 (nicht dargestellt) ermittelt worden ist. Dies bedeutet, daß dieses Flipflop in den
1-Zustand dann gesetzt ist, wenn das Signal ALTHIT100 als Binärsignal 1 auftritt.
Es sei darauf hingewiesen, daß die Flipflops des Registers 750-50400 lediglich auf das Auftreten eines
Taktsignals CL0CK112 hin dann freigegeben sind, wenn
das Signal FDIRASNOOO als Binärsignal 1 auftritt, was kennzeichnend ist dafür, daß kein Adreßlisten-Zuteilungszyklus
ausgeführt wird (ein Treffer-Zustand).
Im Falle der Ermittelung eines Treffer-Zustands innerhalb
der berücksichtigten Hälfte eines Blocks wird das Signal ALTHITOOO als Binärsignal 0 abgegeben. Dadurch werden die
ersten drei Flipflops des Registers 750-50400 über eine erste Reihe von eingangsseitigen UND-Gliedern mit den
Umlaufsignalen RRO100 bis RR2100 von dem Block 750-500
her geladen. Wenn ein Treffer-Zustand innerhalb der anderen Hälfte (alternative Hälfte) des Blockes ermittelt
wird, auf den Bezug genommen ist, dann geben
die Schaltungen des Blockes 750-512 das Signal ALTHIT100 als Binärsignal 1 ab. Dies bewirkt, daß die drei Flipflops über eine zweite Reihe von eingangsseiten UND-Gliedern
mit den anderen Ebenen-Signalen ALTHITLEV0100 bis ALTHITLEV2100 geladen werden, die durch die Schaltungen
des Blockes 750-512 erzeugt werden.
Die binären 1-Signale des Registers 750-50400 werden
als üingangssignale den Verstärker-Treiberschaltungen 750-50402 bis 750-50406 zur Speicherung in dem Transitblock-Puffer
750-102 zugeführt. Dieselben Signale werden den A-Operanden-Eingangsanschlüssen einer Addiererschaltung
030 025/076 9
des Blockes 750-500 zugeführt. Die Addiererschaltung
addiert oder inkrementiert die Signale 0LDRR0100
bis 0LDRR2100 zu bzw. um eins, indem eine binäre 1 an den C1-Anschluß der Addiererschaltung abgegeben wird.
Die an den F-Ausgangsanschlüssen erzeugten Summensignale
NXTRR0100 bis NXTRR2100 werden in den Umlaufbereich der Steueradreßliste 750-500 eingeschrieben.
Schließlich werden die Signale OLDItROIOO bis 0LDRR2100
als Eingangssignale an eine weitere Reihe von Verstärkertreiberschaltungen 750-50408 bis 750-50412 abgegeben,
um in einem der Befehlsadressenregister 750-900 und 750-902 gemäß Fig. 7e eingespeichert zu
v/erden.
Nunmehr wird der Bereich 750-7 näher erläutert. Dieser Bereich ist in Fig. 7d im einzelnen veranschaulicht.
Wie aus Fig. 7d hervorgeht, enthält der Block 750-722 eine Vielzahl von in Reihe geschalteten NAND-Gliedern
750-72230 bis 750-72234. Die NAND-Glieder 750-72230 und 750-72231 sind so geschaltet, daß sie Befehlspuffer-Gültigkeits-
und Befehlssteuersignale 1BUF1V100, ZRIB010 und IBUF2V100, ZRIB100 von den I-Puffern 750-715 und
750-717 sowie von dem Block 750-920 her aufnehmen. Die Signale IBUF1V100 und IBUF2V100 zeigen den Befehlspuffer an, in den eine Information geladen wird. Dies
bedeutet, daß dann, wenn das Signal iBUF1V100 als Binärsignal 1 auftritt, festgelegt ist, daß der I-Puffer
750-715 geladen wird. Wenn das Signal IBUF2V100 als Binärsignal 1 auftritt, ist dadurch spezifiziert, daß
der I-Puffer 750-717 mit einem Befehlswort geladen wird.
Die Steuersignale ZRIB010 und ZRIB100 legen fest, welches Befehlspuffer-Gültigkeitsbit zu überprüfen ist, was dem
adressierten Befehlspuffer entspricht. Dies bedeutet, daß dann, wenn das Signal ZRIB010 ein Binärsignal 1 ist,
030025/0769
294957t
das IBUF1-Gültigkeitsbit durch die Schaltungen des
Blocks 750-920 spezifiziert ist. Wenn das Signal ZHIB100 ein Binärsignal 1 ist, dann ist das IBUF2-Gültigkeitsbit
spezifiziert. Wenn das Signal IBUF1RDY000 oder das Signal 1BUF2RDY000 als Binärsignal 0 auftritt,
dann gibt das NAND-Glied 750-72232 das Signal TBIBUFRDY100 als Binärsignal 1 ab, was kennzeichnend ist für einen
Bereitschaftszustand.
Die Schaltungen des Blockes 750-920 geben ein Freigabesi-gnal
USSTBRDY100 als Binär signal 1 auf das Umschalten
des in Frage kommenden i-Puffer-Gültigkeitsbits hin ab.
Dies bewirkt, daß das NAND-Glied 750-72233 das Signal TBRDYOOO als Binärsignal 0 abgibt. Dies führt dazu, daß
das NAND-Glied 750-72234 das Signal 1BUFRDY100 als Binärsignal 1 abgibt, wodurch der Bereitschaftzustand signalisiert
ist.
i'.s sei ferner darauf hingewiesen, daß das NAND-Glied
750-7223^ außerdem das Signal IBUFRDY100 als Binärsignal 1
dann abgibt, wenn ein Befehlsaufruf-Bereitschaftsignal IFiCTCHRDYOOO als Binärsignal 0 von den Schaltungen des
Blockes 750-920 abgegeben wird. Das Signal IFETCHRDYOOO
ist ein Binärsignal 0, allerdings abgesehen davon, daß die Befehle aus einem Block in dem Cache speicher herausgenommen
werden. Schließlich gibt das NAND-Glied 750-72234 das Signal 1BUFRDY100 als Binärsignal 1 dann ab, wenn ein
Befehlspuffer-Vergleichssignal 1BUFCMPR000 als Binär-Gignal 1 von der Vergleicherschaltung 750-11435 abgegeben
wird.
030025/0769
Nunmehr wird der Bereich 750-9 näher erläutert. Die einzelnen Blöcke des Bereichs 750-9 sind in Fig. 7e
im einzelnen dargestellt. Dabei sind soweit wie möglich entsprechende Bezugszeichen verwendet worden.
Aus Fig. 7e geht hervor, daß der Block 750-920 eine erste Gruppe von Schaltungen des Blockes 750-92000 enthält, die
die vier Reihen von Schreibsteuersignalen WRT00100 bis WRT70100, WRT01100 bis WRT71100, WRT02110 bis WRT72100
und WRT0300 bis WRT73100 erzeugen. Wie aus Fig. 7e ferner hervorgeht, enthalten diese Schaltungen zwei Multiplexerschaltungen
750-92002 und 750-92004, ein Register 750-92006 und vier Oktal-Decoderschaltungen 750-92008 bis 750-92014.
Diese Schaltungseinrichtungen sind dabei in der dargestellten Weise miteinander verbunden.
Die Multiplexerschaltung 750-92002 erhält Signale RHITLEV0100 bis RHITLEV2100 von dem Block 750-512 her
zugeführt, die der Reihe von "O"-Eingangsanschlüssen
zugeführt werden, während die Signale RTBLEV0100
030025/0769
bis RTBLEV2100 der Reihe der "1"-Eingangsanschlüsse
zugeführt werden. Während der ersten Hälfte eines T-Zyklus werden dann, wenn das Signal FDFN2HT100 als
Binärsignal O dem Steueranschluß G0/G1 zugeführt wird, die Signale RHITLEV0100 und RHITLEV2100 den Ausgangsanschlüssen
zugeführt. Die betreffenden Signale werden taktgesteuert in die oberen drei Flipflops des Registers
750-92006 auf das Auftreten des T-Taktsignals CLKHT02 eingeführt. Dies ermöglicht dem Prozessor, Operanden in
den Cachespeicher 750-300 während der zweiten Hälfte des T-Taktzyklus einzuschreiben. Während der zweiten Hälfte
eines T-Zyklus werden dann, wenn das Signal FDFN2HT100 als Binärsignal 1 auftritt, die Signale RTBLEV0100 bis
RTBLEV2100 taktgesteuert in das Register 750-92006 auf das Auftreten des T-Taktsignals CLKHT02 eingeführt. Dies
ermöglicht, Speicherdaten in den Cachespeicher 750-300 während der ersten Hälfte des nächsten Zyklus einzuschreiben.
Die zweite Multiplexerschaltung 750-92004 erhält Signale Z0NE0100 bis Z0NE3100 von dem Schalter 750-144 her zugeführt,
die an die Reihe der "O"-Eingangsanschlüsse abgegeben
werden, während das Signal MEMWRTREQ. 100 von dem
Block 750-112 an die Reihe der "1"-Eingangsanschlüsse abgegeben wird. Wenn das Signal FDFN2HT100 als Binärsignal
0 auftritt, dann werden die Signale Z0NEO10O
bis Z0NE3100 an die Ausgangsanschlüsse abgegeben. Die betreffenden Signale werden taktgesteuert in die unteren
drei Flipflops des Registers 750-9206 auf das Auftreten des T-Taktsignals CLKHT02 hin eingeführt. Während der
ersxen Hälfte eines T-Taktzyklus gibt das NAND-Glied 750-92005 das Signal ENBWRT100 als Binärsignal 1 ab,
wodurch ermöglicht ist, die zuvor geladenen Signale an die Ausgangsanschlüsse abzugeben. Dies ermöglicht, die
Prozessor-Zonenbits dazu heranzuziehen festzulegen, welche Operandenbytes zu aktualisieren sind, wenn Prozessor-Daten
030025/0769
in die spezifizierte Ebene "des Cachespeichers geschrieben werden. Wenn das Signal FDFN2HT100 als Binärsignal 1
auftritt, dann wird das Signal MEMWRTREQ100 taktgesteuert
in das Register 750-92006 eingeführt. Dies bewirkt, daß sämtliche Zonenbits als binäre Einsen auftreten, wodurch
sämtliche Bytes des von dem Speicher aufgenommenen jeweiligen Datenworts in die bezeichnete Ebene des Cachespeichers
während der ersten Hälfte des nächsten T-Taktzyklus eingeschrieben werden.
Wie aus Fig. 7e ersichtlich ist, werden unterschiedliche Signale der Signale RWRTLEV0100 bis RWRTLEV2100 an die
Freigabe-Eingangsanschlüsse der Oktal-Decoderschaltungen
750-92008 bis 750-92-14 abgegeben. Die Signale RWRTLEV0100 bis RWRTLEV2100 werden an die Eingangsanschlüsse jeder
der Oktal-Decoderschaltungen 750-92008 bis 750-92014 abgegeben.
Der Block 750-920 enthält eine zweite Gruppe von Schaltungen des Blockes 750-92020. Diese Schaltungen erzeugen
das 1/2-T-Taktsignal, welches an die Schaltungen des
Blockes 750-92000 abgegeben wird, das Freigabe-Speicherebenensignal ENABMEMLEV100 und das Freigabeadressensignal
ENADR1100, das an die Schaltungen des Blockes 750-303
abgegeben wird. Außerdem erzeugen diese Schaltungen die Reihe der Steuersignale ZIC010, ZIC110 und RICA100,
RICB100, die an die Schaltungen der Befehlsadressenregister
750-900 und 750-902 zusätzlich zu den Steuersignalen RIRA100 und RICB100 abgegeben werden, die den
Registern 750-308 und 750-310 zugeführt werden.
Die Schaltungen des Blockes 750-92020 enthalten zwei HalbbegTOEungs-Flipflops eines Registers 750-92022,
eine Gruppe von drei Steuer-Flipflops des Register 750-92024 und ein taktgesteuertes Flipflop 750-92026.
Die Schaltungen enthalten ferner eine Anzahl von UND-Gliedern, NAND-Glieder, UND/NAND-Glieder und UND/ODER-
030025/0769
Glieder 750-92030 bis 750-92041.
Die in Reihe geschalteten Verknüpfungsglieder, nämlich das UND/NAND-Glied 750-92030, das UND/ODER-GIied
750-92032 und die UND-Glieder 750-92034 und 750-92035 erzeugen auf das Auftreten eines Signals FLDQUAD100
von der Einrichtung 750-916 her, auf das Auftreten eines Signals FWFIDESC010 von dem Prozessor 700 her
und auf das Auftreten der Signale FACTVRICOOO und
FACTVRIC100 von dem Register 750-92024 her Steuersignale ZICOOO, ZIC010 und ZIC110. Diese Signale werden
dazu herangezogen, den Betrieb des ZIC-Schalters 750-906
und der verschiedenen Bereiche der Register 750-900 und 750-902 (beispielsweise die Ebenen-Gültigkeitsbit-Speicherung
und die Ebenen-Bitspeicherung) zusätzlich zu den zugehörigen Registern zu steuern.
Die in Reihe geschalteten Verknüpfungsglieder, nämlich das UND-Glied 750-92036, das UND/NAND-Glied 750-92037
und NAND-Glieder 750-92038 bis 750-92041 werden in der Weise betrieben, daß Registerabtastsignale RICA100
und R1CB100 erzeugt werden. Diese Signale steuern das Laden der Register 750-900 und 750-902. Das UND-Glied
750-92036 bewirkt die Abgabe des Signals VALRDIBUFIuO
als Binärsignal 1, wenn ein Trefferzustand im Falle eines Lesebefehls ermittelt worden ist (d.h. dann, wenn das
Signal FRDMISSOOO als Binärsignal 1 auftritt), wenn ferner die übertragung bzw. der Transfer durch einen
Übertragungsbefehl gegeben war (d.h., daß das Signal N0G0020 als Binärsignal 1 aufgetreten ist) und wenn
das Signal CMPDATA/ICLEVOOO von der Vergleicherschaltung des Blockes 750-912 her ein Binärsignal 1 ist.
Das Signal FRDMISSOOO wird vom Null-Ausgang des Flipflops (nicht dargestellt) erhalten, welches - wie erwähnt
- entsprechend folgendem Boolschen Ausdruck gesetzt wird:
030025/0769
Q.09
FRDMISS = (RDCMD.HOLDDMEM·HITTOIC·CANCELC}.
Die Signale G00DFTCHA100 und G00DFTCHB100, die von (nicht dargestellten) Schaltungen erzeugt werden, zeigen
an, ob das RICA-Register 750-900 oder das RICB-Register
750-902 zu dem betreffenden Zeitpunkt benutzt worden ist; die Inhalte der betreffenden Register werden erhöht. So
wird beispielsweise das Signal G00DFTCHA100 entsprechend folgendem Boolschen Ausdruck erzeugt:
GOODFTCHA = INSTIF3T · FLDQUAD· FACTVRIC · FDEN2HT + FDFN2HT·
FLDQUAD.FACTVRIC.
Das Signal GOODFTCHB wird in einer entsprechenden Weise erzeugt, allerdings abgesehen davon, daß die Zustände
der Signale FACTVRIC und FACTVRIC umgekehrt sind.
Es dürfte ersichtlich sein, daß dann, wenn das Signal
EXECRDIBUF100 als Binärsignal 1 auftritt, währenddessen der Prozessor 700 das Signal RDIBUF110 als Binärsignal 1
abgibt, das NAND-Glied 750-92039 das NAND-Glied 750-92041 veranlaßt, das Signal RICA100 als Binärsignal 1 dann abzugeben,
wenn das Signal G00DFTCHA100 als Binärsignal 1 auftritt. Das Signal ENBSTRBAOOO zeigt an, .wann das
RICA-Register 750-900 anfangs geladen wird. Dies bedeutet, daß dann, wenn das Signal ENBSTRBAOOO als Binärsignal 0
auftritt, das NAND-Glied 750-92041 das Signal RICA100 als Binärsignal 1 abgibt. Das Signal ENBSTRBA wird speziell
entsprechend folgendem Boolschen Ausdruck erzeugt:
ENbSTRBA = FLDQUAD·FACTVRIC·FNEWlFl. FDFNlIlT
+ FDFNlHT-FACTVRIC-FJAWZNICLEV.FHOLDiTT
+ (INSTIFl + DCDLDQUAD) · F/vCTVRIC · FDFN2HT . (CANCLCMD
+ FDFi>l2HT.T2IC-INH2HT-EN;vB2HT.
Dabei siniENAB2HT = ENABRICl + ENABRIC2
INHlHT «= [CANCLCMD. FL AST INST.
Unter jeder Reihe von Bedingungen geben die Signale RICA100
und RICB100 die Abtastung ihrer entsprechenden Register
030025/0769
frei, wenn diese zunächst geladen worden sind, oder im Anschluß an eine Inkrementierung, wie dann, wenn
Befehle aufgehoben oder aus dem Cachespeicher herausgeführt werden.
Das NAND-Glied 750-92042, das UND/NAND-Glied 750-92043
und die NAND-Glieder 750-92044 bis 750-92049 sind derart geschaltet, daß Registerabtastsignale RIRA100 und
RIRB100 in ähnlicher Weise erzeugt werden wie die Registerabtastsignale RICA100 und RICB100.
Das NAND-Glied 750-92046 gibt das Signal RIRA100 als
Binärsignal 1 im Falle eines neuen Befehlsabrufes ab (d.h. dann, wenn das Signal NEWINSTOOO ein Binärsignal
0 ist) oder dann, wenn der Prozessor 700 einen Befehl aus dem RIRA-Register 750-308 entnimmt (d.h. dann,
wenn das Signal TAKEINSTOOO ein Binärsignal 0 ist). Das NAND-Glied 750-92049 gibt das Signal RIRB100 im
Falle eines neuen Operandenaufrufs ab (d.h. dann, wenn
das Signal NEWDATAOOO ein Binärsignal 0 ist) oder dann, wenn der Prozessor 700 ein Datenwort aus dem RIRB-Register
750-310 entnimmt (d.h. dann, wenn das Signal TAKEDATAOOO ein Binärsignal 0 ist).
Das UND-Glied 750-92050 und das UND/NAND-Glied 750-92051 erzeugen das Signal ENBMEMLEV100 während der zweiten
Hälfte eines T-Taktzyklus (was bedeutet, daß das Signal FDFN2HT101 ein Binärsignal 1 ist), wenn die Schaltungen
des ülockes 750-112 das Speicherschreib-Anforderungssignal
MEMWRTREQ100 als Binärsignal 1 abgeben.
Das NAND-Glied 750-92052 erzeugt das Signal ENBADR1100 während der zweiten Hälfte eines T-Taktzyklus (was bedeutet,
daß das Signal FDFN1HT101 als Binärsignal 0 auftritt) oder dann, wenn der Befehlszähler benutzt
wird (was bedeutet, daß das Signal USEICOOO ein Binärsignal 0 ist).
03G0 25/0769
Im Hinblick auf die Flipflop-Register ist ersichtlich, daß das Flipflop des Registers 750-92026 in den Binärzustand
1 über ein erstes UND-Glied dann geschaltet wird, wenn das UND-Glied 750-92053 veranlaßt wird, das Signal
INSTIF1100 als Binärsignal 1 abzugeben, und zwar in Abhängigkeit davon, daß ein IF1-Befehl durch die Decoderschaltung
750-922 decodiert wird (was bedeutet, daß das Signal DCDIF1100 ein Binärsignal 1 ist). Dieser
Befehl bzw. dieser Vorgang erfordert dabei keine zusätzlichen Deskriptoren (was bedeutet, daß das Signal
FFPIMEIS020 von dem Prozessor 700 her ein Binärsignal 1 ist). Außerdem gibt das UND-Glied 750-92054 das Signal
CANCELCMDOOO als Binärsignal 1 auf das Vorliegen keines
Löschzustandes hin ab (was bedeutet, daß das Signal CANCELC010 ein Binäi signal 1 ist). Außerdem liegt kein
Haltezustand vor, was bedeutet, daß das Signal H0LDDMEM001 ein Binärsignal 0 ist.
Das Flipflop-Register 750-92026 wird in den Binärzustand über ein zweites eingangsseitig vorgesehenes UND-Glied zurückgesetzt,
welches die Signale ENABNEWINSTOOO und NEWIF1FDBK100 von zwei NAND-Gliedern 750-92042 und
750-92043 und dem UND-Glied 750-92055 her aufnimmt. Das am 1-Ausga ng des Flipflop-Registers 750-92026 auftretende
Ausgangssignal wird dem NAND-Glied 750-92056
zugeführt. Dieses NAND-Glied gibt während der ersten Halte eines T-Taktzyklus (was bedeutet, daß das Signal
FDFN1HT100 als Binärsignal 1 auftritt) das Signal
USEICOOO als Binärsignal 0 ab, wenn das Signal FNEWIF1100
als Binärsignal 1 auftritt.
Das zweite Flipflop-Register 750-92022 umfaßt die beiden Zeitsteuerungs-Flipflops, die beide in den Binärzustand
auf das Auftreten des Signals GATEHFTCLK100 hin gesetzt werden, welches aus dem Bereich 750-5 stammt, und zwar
das Auftreten des 1/2-T-Taktsignals CLKHT021 hin. Die
03CU25/0769
Flipflops des Registers 750-92022 werden in den Nullzustand auf das Auftreten des nächsten 1/2-T-Taktsignals
CLKHT021 hin zurückgesetzt.
Die Flipflops des Registers 750-92024 liefern, wie bereits erwähnt, verschiedene Zustandssteuersignale. Das
erste Flipflop (FRDIBUF) wird in den Binärzustand 1 dann umgeschaltet, wenn das NAND-Glied 750-92060 das
Signal SETRDIBUF100 als Binärsignal 1 auf das Auftreten
eines Lese-I-Pufferanforderungssignals von dem Prozessor
700 hin abgibt (das bedeutet, daß das Signal EXECRDIBUFOOO als Binärsignal 0 auftritt) oder bei Vorliegen eines
Sperr-Bereitschaftszustands (was bedeutet, daß das Signal FINHRDX010 als Binärsignal 0 auftritt), wenn das
UND-Glied 750-92061 das Signal ENABSETRDIBUF100 als Binärsignal 1 abgibt. Das Signal ENABSETRDIBUF100 wird
als Binärsignal 1 im Falle eines Befehles abgegeben, der nicht ein Lade-Vierer-Befehl ist (was bedeutet, daß
das Signal FLDQUADOOO ein Binärsignal 1 ist) oder im
Falle eines Instruktion-Aufruf-1-Befehls (was bedeutet,
daß das Signal G00D1F1000 ein Binärsignal 1 ist). Das FRDIBUF-Flipflop wird eine Taktperiode später auf das
Auftreten des T-Taktsignals CLKT021 über ein zweites
eingangsseitiges UND-Glied zurückgesetzt.
Das zweite Flipflop (FACTVRIC) des Registers 750-92024
wird in Übereinstimmung mit den oben angegebenen Boolschen Ausdrücken über die NAND-Glieder 750-92062
und 750-92064, über das UND-Glied 750-92063 und das UND/NAND-Glied 750-92065 gesetzt bzw. zurückgesetzt.
Das dritte Flipflop (FRDDATA) wird in den Binärzustand über ein erstes eingangsseitiges UND-Glied auf das
Auftreten des Signals SETRDIBUF100 gesetzt, wenn der
Befehl ein Lade-Vierer-Befehl ist (was bedeutet, daß das Signal FLDQUAD100 ein Binärsignal 1 ist). Das
FRDDATA-Flipflop wird in den Binärzustand 0 eine
030025/0769
2 ΊΆ
Taktperiode später zurückgesetzt, und zwar über ein zweites eingangsseitiges UND-Glied auf das Auftreten
des T-Takteignals CLKT021 hin.
Die nächste Gruppe von Schaltungen innerhalb des Blockes 750-920 umfaßt die Schaltungen des Blockes
750-92070. Wie aus Fig. 7e hervorgeht, umfassen diese Schaltungen eine erste Vielzahl von UND-Gliedern,
UND/NAND-Gliedern und NAND-Gliedern 750-92071 bis 750-92086. Diese Verknüpfungsglieder sind dabei in
der dargestellten Weise geschaltet. Sie erzeugen Steuersignale SETACURLEV100, RICACNTL100 und RSTACURLEV2000,
die das Setzen und Rücksetzen der vorliegenden Ebenen- und der Ebenen-Gültigkeitsbit-Positionen des RICA-Registers
750-900 in Übereinstimmung mit den Zuständen der Signale SETALEV1VAL100, RSTALEV1VALOOO und
SETLEV2VAL100 steuern. Diese Signale werden durch eine weitere Vielzahl von UND-Gliedern und NAND-Gliedern
750-92087 bis 750-92095 erzeugt.
Eine zweite Vielzahl von UND-Gliedern, UND/NAND-Gliedern und NAND-Gliedern 750-92100 bis 750-92116 erzeugt
in einer entsprechenden Weise Signale SETBCURLEV100,
RSTBCURLEV200 und RICBCNTL100, durch die die vorliegenden
Ebenen- und GUltigkeitsbits für das RICB-Register 750-902 gesetzt bzw. zurückgesetzt werden, und zwar
in Übereinstimmung mit den Signalen SETBLEV1VAL100,
RSTBLEV1VALOOO und SETBLEV2VAL100. Diese Signale werden
in einer weiteren Vielzahl von UND-Gliedern und NAND-Gliedern 750-92120 bis 750-92125 erzeugt.
Eine Vielzahl von UND-Gliedern 750-92126 bis 750-92129
erzeugt auf das Auftreten der Signale SETALEV1VAL100,
SETBLEV1VAL100, SETALEV2VAL100 und SETBLEV1VAL100 hin
Steuersignale RICALEV1100 bis RICBLEV2100, wenn das
Signal CANCELCMDOOO ein Binärsignal 1 ist. Diese
030025/0769
Signale werden an die Steuereingangsanschlüsse der Ebenen-Bitspeicherbereiche der RICA- und RICB-Register
750-900 und 750-902 zur Steuerung des Ladens der Treffer-Ebenensignale aus dem Bereich 750-512
abgegeben.
Eine weitere Vielzahl von UND/NAND-Gliedern, UND/ODER-Gliedem
und NAND-Gliedern 750-92130 bis 750-92137 gibt auf Signale von den Ebenen-Gültigkeitsbit-Speicherungsund
Ebenen-Speicherbereichen der Register 750-900 und 750-902 das Verwendungs-Transitpuffer-Bereitschaftssignal
USETBDY100 und die Steuersignale ZRIB010 und ZIB100 ab, die an die Schaltungen des Blockes 750-114
abgegeben werden.
Es ist ferner ersichtlich, daß der Block 750-92070 ein vier D-Flipflops umfassenden Register 750-92140, zwei
UND-Glieder 750-92141 und 750-92142, zwei UND/NAND-Glieder 750-92143 und 750-92144 sowie zwei UND/ODER-Glieder
750-92145 und 750-92146 umfaßt, die in der dargestellten Weise angeschlossen sind. Die Flipflops
des Registers 7^0-92140 werden mit dem Inhalt der Bitpositionen
8 und 9 der RICA- und RICB-Register 750-900 und 750-902 auf das Auftreten des T-Taktsignals
CLKHT020 hin unter der Steuerung der Signale RICA100 und RICB100 geladen. Dies bedeutet, daß das obere Paar
der Register-Flipflops taktgesteuert wird, wenn das an den Anschluß C1 angelegte Signal RCIA100 als Binärsignal
1 auftritt, während das untere Paar der Register-Flipflops dann taktgesteuert wird, wenn das an den
Anschluß G2 angelegte Signal RICB100 als Binärsignal 1
auftritt. Die an die Anschlüsse G3 und G4 abgegebenen Signale ZICOOO und ZU00 steuern unabhängig voneinander
die Erzeugung von Ausgangssign_alen von dem oberen Paar
der Flipflops bzw. von dem unteren Paar der Flipflops an den entsprechenden Reihen von Ausgangsanschlüssen.
Q30025/0769
Die Paare von binären O-Ausgangssignalen werden mittels
der UND-Glieder 750-92141 und 750-92142 verknüpft, um Adressensignale ZEXT0100 und ZEXTHOO zusätzlich zu
Jenen Signalen zu erzeugen, die für die Erzeugung des Steuersignals NEXTLEVVA100 erforderlich sind,
welches an die Steuereingangsanschlüsse der Vergleicherschaltung 750-912 abgegeben wird.
Eine letzte Gruppe von Schaltungen umfaßt ein Flipflop-Register 750-92150 und eine Vielzahl von UND-Gliedern,
ein UND/NAND-Glied, NAND-Glieder und UND/ODER-Glieder
750-92151 bis 750-92156. Diese Schaltungen sind so geschaltet, daß das Signal IFETCHRDYOOO erzeugt wird,
welches an die Schaltungen des Bereiches 750-114 abgegeben wird. Die Verknüpfungsglieder 750-92153 und
750-92154 sind so geschaltet, daß Zeitsteuersignale DFN2HT101 und DFN2HT100 auf das Auftreten eines Signals
FHT010 von dem Block 750-112 her erzeugt werden. Diese Signale werden als Binärsignale 1 während der zweiten
Hälfte eines T-Taktbetriebszyklus auftreten.
Das Flipflop-Register 750-92150 wird über ein erstes eingangsseitiges UND-Glied dann in den Binärzustand 1
gesetzt, wenn die UND-Glieder 750-92151 und 750-92152 die Signale SETINHRDY100 und CANCELINHRDYOOO als Binärsignale
1 abgeben. Das betreffende Register wird in den Binärzustand 0 über ein zweites eingangsseitiges
UND-Glied dann zurückgesetzt, wenn das NAND-Glied 750-92155 das Signal RSINHRDYOOO als Binärsignal 0 abgibt. Das am
Null-Ausgang des Registers 750-92150 auftretende Binärsignal wird dem UND/ODER-GIied 750-92156 zugeführt. Wenn
das Signal FINHRDYOOO als Binärsignal 0 auftritt, veranlaßt dies das Verknüpfungsglied 750-92156, das Signal
IFETCHRDYOOO als Binärsignal 1 abzugeben.
Darüber hinaus zeigt Fig. 7e im einzelnen den Schalter 750-910 und die Vergleicherschaltungen der Blöcke 750-912
Θ30025/0769
und 750-914. Der Schalter 750-910 ist ein Crossbar-Schalter, der in der oben beschriebenen Weise arbeitet.
Die W-Ausgangssignale wählen eines der beiden Reihen von Signalen aus, die an die Anschlüsse AO und A1 abgegeben
sind, und zwar in Übereinstimmung mit dem Zustand des Signals ZIC110. Die X-Ausgangssignale wählen eine
der beiden Reihen von Signalen aus, die an die Anschlüsse A3 und A4 abgegeben sind, und zwar in Übereinstimmung
mit dem Zustand des Signals ZIC110. Die Ausgangssignale Y und Z wählen eine der vier Reihen
von Signalen aus, die an die Anschlüsse A0-A4 angelegt sind, und zwar in Übereinstimmung mit den Zuständen
der Signale ZIC110, ZN1CLEV100 und ZIC110, ZCURLEV100.
Die Ausgangssignale ZNICLEV0100 bis ZNICLEV2100 von den
Y-Ausgangsanschlüssen der Schaltung 750-910 her werden den B-Eingangsanschlüssen der Vergleicherschaltung
750-912 zum Vergleich mit den Signalen RTBLEV0100 bis RTBLEV2100 aus dem Bereich 750-102 zugeführt. Die Vergleicherschaltung
750-912 ist dann freigegeben, wenn die Decoderschaltung 750-922 einen IF1-Befehl decodiert
hat (was bedeutet, daß das Signal DEC0DEIF1010 als Binärsignal
1 auftritt) und wenn das Signal NEXTLEWAL100 als
Binärsignal 1 auftritt. Der Vergleich führt zur Erzeugung von Signalen CMPDATA/ICLEV100 und ZMPDATA/ICLEVOOO.
Die anderen Vergleicherschaltungen der Blöcke 750-912 und 750-914 arbeiten in einer entsprechenden Weise, um
Signale CMPC0RLEV100 und CMPALTLEV100 zu erzeugen. Der
andere Bereich der Schaltung 750-912 vergleicht im einzelnen die Signale ZICLEV0100 bis ZICLEV2100 mit den
Signalen C7RR0100 bis C7RR2100. Wenn eine Übereinstimmung vorliegt, wird das Signal CMPCURLEV100 als Binärsignal 1
abgegeben. Dieser Bereich wird über ein NAND-Glied 750-91202 dann freigegeben, wenn entweder das Signal ZLEV1VAL000 oder
das Signal ZLEV2VAL000 als Binärsignal 0 auftritt.
030025/0769
Die Vergleicherschaltung 750-914 weist zwei Abschnitte
bzw. Bereiche auf, die durch Paare von Signalen ZCURLEV100, ZLEV1VAL100 und ZCURLEVOOO, ZLEV2VAL100
freigegeben werden. Der erste Bereich vergleich die Ebenen-1-Signale ZLEV10100 bis ZLEV12100 mit den Umlaufsignalen
C7RR0100 bis C7RR2100. Wenn eine Übereinstimmung erzielt wird, wird das am Anschluß A=B auftretende
Ausgangssignal als Binärsignal 0 auftreten, wodurch das NAND-Glied 750-91402 veranlaßt wird, das
Signal CMPALTLEV100 als Binärsignal 1 abzugeben.
In entsprechender Weise vergleicht der zweite Bereich die Ebenen-2-Signale ZLEV20100 bis ZLEV22100 mit den
Umlaufsignalen C7RR0100 bis C7RR21OO. Wenn eine Übereinstimmung
ermittelt wird, tritt das Ausgangssignal als Binärsignal 0 auf, wodurch das NAND-Glied 750-91402
veranlaßt wird, das Signal CMPALTLEV100 als Binärsignal
1 abzugeben.
680025/0769
Unter Bezugnahme auf Fig. 1 bis 7e und unter Bezugnahme auf das in Fig. 8 dargestellte Zeitdiagramm wird nunmehr
die Arbeitsweise der bevorzugten Ausführungsform der Erfindung näher erläutert.
Aus Fig. 8 geht hervor, daß ein T-Taktzyklus in eine erste Hälfte und in eine zweite Hälfte aufgeteilt ist,
wie dies durch den Signalverlauf D veranschaulicht ist. Dies bedeutet, daß dann, wenn das Signal FHT1OO ein
Binärsignal 1 ist, was in Fig. 8 durch den negativen Signalteil veranschaulicht ist, dadurch die erste Hälfte
eines T-Taktzyklus festgelegt ist. Wenn das Signal FHT1OO ein Binärsignal 0 ist, wie dies durch den positiven Signalteil veranschaulicht ist, dann ist dadurch die zweite Hälfte eines T-Taktzyklus festgelegt.
Während der ersten Hälfte des T-Taktzyklus werden Befehle bzw. Instruktionen aufgerufen, und Speicherdaten
werden in den Cachespeicher 750-300 eingeschrieben, wenn kein Konflikt vorhanden ist, wie dies hier erläutert wird. In beiden Fällen wird die Ebene, zu der
ein Zugriff erfolgt, bereits bereitgestellt. Dies bedeutet im Hinblick auf Befehle, daß die Ebene entweder
in dem RICA-Befehlsadreßregister oder in demRICB-Befehlsadreßregister zu dem Zeitpunkt gespeichert ist,
zu dem ein IF1-Befehl oder ein IF2-Befehl ausgeführt worden ist, der von dem Prozessor 700 her aufgenommen
worden ist. Im Hinblick auf Speicherdaten bedeutet dies, daß die Ebene in einem der Registerspeicherplätze des
Transitblockpuffers 750-102 gespeichert ist, und zwar infolge der Tatsache, daß die Schaltungen des Blockes
750-520 einen Fehl-Zustand ermittelt haben, durch den der Cachespeicher 750 veranlaßt worden ist, die angeforderten Daten aus dem Speicher aufzurufen. Während der
zweiten Hälfte eines T-Taktzyklus erfolgt entweder ein Zugriff zu Operandendaten aus dem Cachespeicher, oder
Θ80025/0769
2949S71
Prozessordaten werden in den Cachespeicher eingeschrieben. Dies erfolgt in Übereinstimmung mit den Ergebnissen
eines Adreßlisten-Suchvorgangs.
Demgemäß ermöglicht es die Anordnung der bevorzugten Ausführungsform der vorliegenden Erfindung, Speicherdaten
in eine Cachespeicher-Ebene einzuschreiben, während ein nächster Befehl aus einer der übrigen
Ebenen während eines T-Taktbetriebszyklus aufgerufen
wird. Dadurch ist die Forderung nach Abhalten oder Verzögern des Zugriffs zu Befehlen zum Zwecke des Einschreibens
von Speicherinformationen/Daten vermieden. Wenn die Ebene, in die Speicherdaten eingeschrieben
werden, die gleiche Ebene ist wie jene, aus der ein Befehl aufgerufen wird, dann wird der Zugriff eines
Befehls solange verzögert, bis das Schreiben von Speicherdaten beendet worden ist.
Wie oben beschrieben, wird eine Adresse von dem Prozessor 700 her in sämtliche Adreßregister zu Beginn der
zweiten Hälfte des Zyklus geladen, um eine mögliche Lese- oder Schreiboperation mit dem zweiten Halbzyklus
des T-Taktzyklus zu initiieren. Deshalb ermöglicht in
solchen Fällen, in denen das Einschreiben von Speicherdaten in Konflikt steht mit einem ßefehlszugriff.eine
alternative Anordnung die Ausnutzung der zweiten Hälfte T-Taktzyklus, um eine Prozessor-Leseoperation und eine
Speicherdaten-Schreiboperation auszuführen.
Diese zuletzt genannte Anordnung ermöglicht es, Speicherdaten in eine Cachespeicher-Ebene einzuschreiben, während
ein Operand aus einer der übrigen Ebenen während eines T-Taktbetriebszyklus aufgerufen wird.
Wenn die Ebene, in die die Speicherdaten eingeschrieben werden, die gleiche Ebene ist, aus der ein Prozessoroperand
aufzurufen ist, dann wird der Zugriff zu den Ope-
030025/0769
randen jedoch so weit verzögert, bis das Einschreiben der Speicherdaten abgeschlossen worden ist. Ein
Konflikt ergibt sich außerdem dann, wenn Speicherdaten in eine Ebene eingeschrieben werden und wenn
der Prozessor Operandendaten in eine andere Ebene einschreibt.
Um die obigen Operationen zu veranschaulichen, sei beispielsweise angenommen, daß der Prozessor 700 die
Folge von Befehlen verarbeitet, die einen Lade-A-Befehl (LDA), einen Speicher—Α-Befehl (STA), einen Lade-A-Befehl
(LDA), einen Speicher-A-Befehl (STA) und einen nächsten Befehl umfassen, wie dies in Fig. 8 veranschaulicht
ist. Das Format dieser Befehle ist an anderer Stelle näher erläutert (siehe die Druckschrift "Series
(Level 66)/6000 MACRO Assembler Program (GMAP)" der Firma Honeywell Information Systems, Inc., Copyright 1977,
Bestell Nr. DDOBB, Rev. 0. Es dürfte einzusehen sein, daß der Prozessor 700 die vier Befehle in einem sogenannten
Pipeline-Vorgang ausführt, wie dies an anderer Stelle näher veranschaulicht ist.
Der Prozessor 700 führt verschiedene Operationen während der I-, C- und E-Operationszyklen im Zuge der Ausführung
von Befehlen aus. Dies führt zur Abgabe von Cachespeicher-Befehlen von dem Prozessor 700 an die
CacheSpeichereinheit 750. Zum Zwecke einer einfachen Erläuterung
sei angenommen, daß die Befehle in der Cachespeichereinheit
750-300 enthalten sind.
Es dürfte einzusehen sein, daß an einer gewissen Stelle während der Befehlsverarbeitung der Prozessor 700 eines
der Befehlsadreßregister RICA/RICB mit der Adressen- und
Ebenen-Information lädt. Dies ergibt sich üblicherweise als Folge der Ausführung eines Transfer- oder Verzweigungsbefehls
durch den Prozessor, was dazu führt, daß der Prozessor 700 einen Befehl IF1 ausführt, dem ein
IF2-Befehl folgt. Auf die Ausführung dieser Befehle
030025/0769
29A9S71
durch die CacheSpeichereinheit 750 hin läuft der
Aufruf von Befehlen während der ersten Hälfte eines T-Taktzyklus und von Operanden während der
zweiten Hälfte des T-Taktzyklus in der aus Fig. 8 ersichtlichen Weise ab.
Zum Zwecke einer einfachen Erläuterung sei angenommen, daß der IF1-Befehl eine Adresse um_faßt, die das Abholen
bzw. den Aufruf des ersten Befehlswortes eines Blockes von Befehlen in den Cachespeicher festlegt,
welcher Block die oben erwähnte Folge von Befehlen umfaßt. Nunmehr sei die Arbeitsweise der Cachespeichereinheit
750 hinsichtlich der Ausführung der Befehle 1F1 und IF2 kurz erläutert. Der IF1-Befehl wird auf die
Aufnahme durch die Cachespeichereinheit 750 mittels der Decoderschaltungen 750-922 decodiert„ Diese Decoderschaltungen
veranlassen die Schaltungen des Blockes 750-920, Signale zu erzeugen, durch die das andere Befehlsadreßregister
geladen wird, welches als das Register RICA angenommen wird, in dieses andere Register
werden Signale geladen, die dem inkrementierten Wert der in dem IF1-Befehl enthaltenen Adresse entsprechen.
Dies bedeutet, daß die Adressensignale von dem Schalter 750-530 her während des ersten T-Taktzyklus um 1
inkrementiert werden, was durch die Schaltung 750-912 geschieht, und daß der inkrementierte Wert in das RICA-Befehlsadreßregister
750-900 auf das Auftreten des 1/2-T-Taktsignale CLKHT100 hin geladen wird, wenn das
Signal RICA100 als Binärsignal 1 auftritt. Das Signal
RICA100 wird als ^inärsignal 1 von den Schaltungen 750-920 dann abgegeben, wenn das Signal ENBSTRBAOOO
gemäß Fig. 7e als Binärsignal 0 während der ersten Hälfte des ersten T-Taktzyklus auftritt.
Während der ersten Hälfte des ersten T-Taktzyklus wird die IF1-Befehlsadresse in sämtliche RADRO-7-Register 75O-3D1A
030025/0769
bis 750-301N über die ZADRO-7-Adressenauswahlschalter
75O-3O2A bis 750-302N auf das Auftreten des Signals CLKHT100 hin geladen. Während der ersten Hälfte des
T-Taktzyklus tritt das Signal ENBMEMLEV100 als Binärsignal
0 auf. Außerdem ist das Signal ENBADR1100 ein Binärsignal 0 (was bedeutet, daß das Steuerzustands-FNEVIF1-Flipflop
750-92026 auf das Auftreten des T-Taktsignals hin bei Vorliegen des Signals CLKT021 umschaltet,
wie dies hier erläutert wird). Deshalb sind die Signalpaare ZADR01100, ZADR00100 bis ZADR71100,
ZADR70100 jeweils durch Binärsignale 0 gegeben, wodurch die Position 0 als Adressenquelle für sämtliche acht
Adreßregister 750-301A bis 750-301N ausgewählt wird.
Die 1F1-Befehlsadresse wird außerdem als Eingangssignal
an die Adreßlistenschaltungen des Blockes 750-502 über den ZDAD-Schalter 750-530 für einen Suchoperationszyklus
abgegeben. Da der Befehlsblock in dem Cachespeicher enthalten ist, erzeugen die Schaltungen des Blockes 750-512
die geeigneten Treffer-Signale HITT0C7100 und die Treffer-Ebenen-Signale
HITLEVC70100-2100, die an den Bereich 750-9 abgegeben werden. Die Decodierung des IF1-Befehls
bewirkt, daß die Treffer-Ebenen-Signale HITLEVC70100-2100
in die Ebene-1-Bitpositionen des RICA-Befehlsadreßregisters
geladen werden. Außerdem werden das Ebene-1-GUltigkeitsbit
und die Treffer/Fehl-Bitpositionen des RICA-Registers 750-900 binäre Einsen erhalten (was bedeutet,
daß das Treffer-Signal HITT0C7100 die Treffer/ Fehl-Bitposition in eine binäre 1 umschaltet). Der gespeicherte
Ebene-1-Wert wird danach dazu herangezogen, den Betrieb des ZCD-Schalters 750-306 während der nachfolgenden
Befehlsaufrufe zu steuern, wie dies erläutert
wird.
Der erste Befehl, zu dem ein Zugriff von der Stelle aus erfolgt, die durch die 1F1-Adresse bezeichnet ist, wird
030025/0769
als Operandenwort dem Prozessor 700 während der zweiten Hälfte des ersten T-'i'aktzyklus über die Stellung 1
des ZDI-Schalters 750-312 zugeführt, und zwar während
des Endes des ersten T-Taktzyklus. Der erste Befehl wird durch Taktsteuerung in das RBIR-Register 704-152
des Prozessors 700 eingeführt, und zwar auf das Auftreten des T-Taktsignals CLKT100 hin.
Das Signal FJAMZNICLEVOOO gibt die Übertragung des nächsten Befehls zu dem Prozessor 700 hin während der
zweiten Hälfte des zweiten T-Taktzyklus frei. Dieses Signal wird als ßinärsignal 0 von den Schaltungen des
Blockes 750-920 abgegeben. Das Signal FJAMZNICLEVOOO veranlaßt wiederum, daß die von dem RICA-Register
750-900 her erhaltenen Ebenen-Signale ZNlCLEVOOO-2100
als Eingangssignale an die SteuereingangsanschlUsse des ZCD-Schalters 750-306 auf die Ausführung des
IF1-Befehles hin abgegeben werden. Unter Bezugnahme auf J?"ig. 7c ergibt sich somit, daß das Signal
FJAMZNICLEVOOO die Abgabe des Signals FRCICOOO als Binärsignal 0 veranlaßt. Dadurch wird das NAND-Glied
750-52618 veranlaßt, das Signal ZCDINCENAB100 als Binärsignal 1 während der zweiten Hälfte des zweiten
T-Taktzyklus abzugeben. Das Signal ZCDINCENAB100 veranlaßt die NAND-Glieder 750-51210 bis 750-51214, die
Signale ZCD0100 bis ZCD2100 aus den Signalen ZNICLEV0100
bis ZNICLEV2100 zu erzeugen.
Durch den mittels der Decoderschaltung 750-922 decodierten
IF1-Befehl wird das FNEWIF1-Flipflop 750-92026
ebenfalls veranlaßt, auf das Auftreten des T-Taktsignals
CLKTO20 hin in den 1-Zustand umzuschalten.
Wie oben bereits erwähnt, legt das betreffende Flipflop die Operationen während des (zweiten) Zyklus fest,
nachdem der IF1-Befehl aufgenommen wurde. Während der ersten Hälfte des zweiten T-Taktzyklus veranlaßt das
030025/0763
NEWIF1-Flipflop 750-92026 das NAND-Glied 750-92056
insbesondere dazu, das Signal USEICOOO als Binärsignal 0 abzugeben. Das Signal USEICOOO veranlaßt das NAND-Glied
750-92052, das Signal ENBADR1100 als Binärsignal 1 abzugeben.
Da zu diesem Zeitpunkt kein Speicherdaten-Transferororgang stattfindet, wird die Decoderschaltung
750-30300 zu diesem Zeitpunkt nicht freigegeben (was bedeutet, daß das Signal ENBMEMLEV100 ein Binärsignal
0 ist). Damit sind die Signale MEMLEV0000 bis
MEMLEV7000 Binärsignale 1, während die Signale MEMLEV0100 bis MEMLEV7100 Binärsignale 0 sind.
Die Multiplexerschaltung 750-30304 gibt ihrerseits die Binärsignale 1 an ihren Ausgangsanschlüssen ab.
Dies führt dazu, daß die Ausgangssignale ZADR00100 bis ZADR70100 als Binärsignale 1 auftreten, während die
Multiplexerschaltung 750-30302 die Signale ZADR01100 bis ZADR71100 als Binärsignale 0 abgibt. Diese Signalpaare
veranlassen die Adressenauswahlschalter 750-302a bis 750-302n, als Adressensignalquelle das RICA-Befehlsadressenregister
auszuwählen, welches mit der Schalterstellung 1 während der ersten Hälfte des zweiten T-Taktzyklus
verbunden ist.
Demgemäß werden die RADRO-7-Adreßregister 750-302a bis 750-302n über den ZIC-Schalter 750-906 mit den
Adressensignalen aus dem RICA-Register 750-900 auf das Auftreten des 1/2-T-Taktsignales CLKHT100 hin während
der ersten Hälfte des zweiten Zyklus geladen. Das RICA-Register 750-900 wird ausgewählt, da zu diesem Zeitpunkt
das Signal ZIC100 als Binärsignal 0 auftritt. Dies bedeutet, daß das Signal ENBALT100 ein Binärsignal 0 ist
und daß das Signal FACTVRIC100 vom Null-Ausgang des
FACTVRiC-Flipflops des Registers 750-92024 ein Binärsignal 0 ist. Diese Signale veranlassen das UND/ODER-Glied
750-92032, das Signal ZIC100 als Binärsignal 0
030025/0769
abzugeben. Der an die Cachespeichereinheit 750-300 abgegebene Adresseninhalt bewirkt, daß das zweite
Wort aus der jeweiligen Ebene zu dem ZCD-Schalter 750-306 hin ausgelesen wird. Die Ebenen-Signale
ZNICLEVO100-2100 führen zur Auswahl des Wortes, welches
einem zweiten Befehl in der betreffenden Ebene entspricht, die durch den Inhalt des RICA-Registers
750-900 festgelegt ist, der an die ZIB-Leitungen abgegeben wird. Der betreffende Inhalt wird an die
ZIB-Leitungen über die Stellung 0 des ZiB-Schalters 750-314 abgegeben.
Während der ersten Hälfte des zweiten Zyklus werden die Adressensignale von dem RICA-Register 750-900 durch
die Schaltung 750-902 wieder um 1 erhöht und über die Stellung 1 des ZlClN-Schalters 750-902 auf das Auftreten
des 1/2-T-Taktsignales CLKHl1IOO hin dann in das RICA-Register
750-900 geladen, wenn das Abtastsignal RICA100
ein Binärsignal 1 ist. Auch hier wird das Signal RICA100 als Binärsignal 1 dann abgegeben, wenn das
Signal ENBSTRBAOO als Binärsignal 0 während der zweiten Hälfte des zweiten T-Taktzyklus abgegeben wird.
Zum T-Taktzeitpunkt ist die Adresse des dritten Befehls in dem RICA-Register 750-900 enthalten. Dieser Befehl
entspricht dem LDA-Befehl gemäß Fig. 8.
Das Signal FJAMZNICLEVOOO bewirkt dann, wenn es als Binärsignal 0 auftritt, daß das NAND-Glied 750-92044
das Signal NEWINSTOOO als Binärsignal 0 während der zweiten Hälfte des zweiten T-Taktzyklus abgibt. Dies
bewirkt, daß das NAND-Glied 750-92046 das Signal RIRA100
als Binärsignal 1 abgibt. Auf das Auftreten des T-Taktsignals
am Ende des zweiten T-Taktzyklus wird außerdem der von dem ZCD-Schalter 750-306 her ausgelesene Befehl
in das RIRA-Register 750-308 geladen. Dies ermöglicht dem Prozessor 700, den zweiten Befehl in
sein RBI-Register auf das Auftreten des T-Taktsignals
030025/0769
CLKT100 am Ende des zweiten T-Taktzyklus zu laden,
wenn der betreffende Prozessor die Ausführung des
vorhergehenden Befehls beendet hat.
Wenn der Prozessor 700 die Ausführung des ersten Befehls beendet hat, gibt er ein Binärsignal 1 an die
RDIBUF-Leitung ab. Das von dem Prozessor 700 an die
RDIBUF-Leitung abgegebene Signal veranlaßt die Schaltungen des Blockes 750-92020, das FRDIBUF-Flipflop des
Registers 750-92024 auf das Auftreten des T-Taktsignals CLKT020 hin in den 1-Zustand umzuschalten. Damit entspricht
das Signal FRDIBUF100 dem an die RDIBUF-Leitung abgegebenen Signal, welches um eine Taktperiode
verzögert ist. Damit gibt das betreffende Signal an, daß während des letzten Zyklus ein Signal auf der
RDIBUF-Leitung von dem Prozessor 700 her aufgenommen worden ist. Dies zeigt an, ob das RIRA-Register 750-308
mit einem weiteren Befehl während der ersten Hälfte des dritten T-Taktzyklus wieder zu füllen ist. Wenn der Prozessor
700 die Ausführung des vorhergehenden Befehls nicht beendet, wird das RDIBUF-Leitungs-Signal nicht
erzeugt werden. Wenn der nächste Befehl, zu dem ein
Zugriff zu erfolgen hat, bereits in das RIRA-Register 750-308 geladen worden ist, wird das Register während
der ersten Hälfte des nächsten T-Taktbetriebszyklus
nicht wieder geladen.
Die Ausführung des 1F2-Befehls durch die Cachespeichereinheit
750 entspricht der Ausführung des IF1-Befehls. Die in dem IF2-ßefehl enthaltene Adresse wird Jedoch
lediglich für die Ausführung eines Adreßlisten-Suchvorgangs
in dem Fall ausgenutzt, daß ein Treffer bei diesem Beispiel angenommen ist. Das Ergebnis besteht
darin, daß die Treffer-Ebenen-Signale HITLEVC70100-2100,
die von den Schaltungen des Blockes 750-512 erzeugt werden, in die Ebene-2-Bitpositionen des RICA-Registers 750-900
030025/0769
- 22Ö -
geladen werden. Außerdem werden die Gültigkeitsbit- und Treffer/Fehl-Bitpositionen in ßinärzustände 1
gesetzt (was bedeutet, daß das Vorliegen einer Freigabebedingung angenommen ist).
Bei diesem Beispiel ist angenommen, daß der Prozessor seine Ausführung des vorhergehenden Befehls beendet hat
und an die RDIBUF-Leitung ein Binärsignal 1 abgegeben hat,
wie dies in Fig. 8 durch den ersten negativen Signalteil des Signalverlaufes E veranschaulicht ist. Während der
ersten Hälfte des dritten T-Taktzyklus veranlaßt das Signal FRD1BUF100, daß der durch den Ebenen-Signalinhalt
des RICA-Registers 750-900 bezeichnete LDA-Befehl in das
RIRA-Register 750-308 (Signalverlauf K) geladen wird und daß der Inhalt des RICA-Registers um 1 erhöht und wieder
in das RICA-Register 750-900 zurückgeladen wird. Die RADRO-7-Register 750-302a bis 75O-3O2n wurden, wie oben
erwähnt, von dem RICA-Register 750-308 her über die ZIC-Stellung der ZADRO-7-Adressenauswahlschalter 75O-3O2a
bis 750-302n auf das Auftreten des T-Taktzyklus des vorhergehenden Zyklus geladen.
Während der ersten Hälfte des dritten Zyklus bewirken die von den RADRO-7-Adreßregistern 750-302a bis 750-302n
an die CacheSpeichereinheit 750-300 abgegebenen Adressensignale, daß acht Wörter aus den adressierten Speicherplätzen
der acht Ebenen ausgelesen werden. Außerdem bewirken die Schaltungen des Blockes 750-526 gemäß Fig. 7c,
daß während der ersten Hälfte des dritten Zyklus das Signal ZCDICENAB100 als Binärsignal 1 abgegeben wird
(was bedeutet, daß das Signal FICENABOOO als Binärsignal 0 abgegeben wird). Dadurch werden die Schaltungen des
Blockes 750-512 veranlaßt, die Signale ZNICLEV0100 bis ZNICLEV2100 als Steuersignale ZCD0100 bis ZCD2100 an den
ZCD-Schalter 750-306 abzugeben. Dies bewirkt, daß der
erste LDA-Befehl für das Laden in das RIRA-Register 750-308
030025/0769
durch den ZCD-Schalter 750-306 ausgewählt wird (siehe
den Signalverlauf K). Danach wird der LDA-Befehl in das RBIR-Register des Prozessors 700 auf das Auftreten
des T-Taktsignales am Ende des dritten Zyklus hin geladen,
und zwar auf das Auftreten des Signales CLKT100
hin. Außerdem werden auf das Auftreten des T-Taktsignals des vorhergehenden Zyklus (dritten Zyklus) hin die
RADRO-7-Register 750-301a bis 750-301η von dem RICA-Register
750-308 über die ZIC-Stellung der ZADRO-7-Adressenauswahlschalter
750-302a bis 750-302n geladen (Signalverlauf J).
Auf das Auftreten des 1/2-T-Taktsignals der ersten Hälfte
des vierten Zyklus hin bewirken die von den RARO-7-Registern an die acht Cachespeicher-Ebenen abgegebenen
Adressensignale, daß acht Wörter, die den STA-Befehl umfassen, zu dem ZCD-Schalter 750-306 hin ausgelesen
werden. Zu diesem Zeitpunkt wird die Adresse von dem RICA-Register 750-900 her um 1 erhöht und wieder abgespeichert.
Außerdem wählen die Signale ZNICLEV0100-2100
von den Ebene-1-Bitpositionen des RICA-Registers 750-900
das STA-Befehlswort zum Laden in das RIRA-Register 750-308
aus (Signalverlauf K). Der STA-Befehl wird dann in das
RBIR-Register auf das Auftreten des T-Taktsignals am Ende des vierten Zyklus geladen.
Am Ende des vierten Zyklus sind sämtliche RADRO-7-Register
750-301a bis 750-301η mit der nächsten Befehlsadresse
von dem RICA-Register 750-900 geladen. Wie aus Fig. 8 ersichtlich ist, ist Jedoch bezüglich der von
dem Hauptspeicher 800 auf das Auftreten eines vorhergehenden Lese-Vierer-Befehls übertragenen Datenwörter
angenommen, daß diese von der Cachespeichereinheit
aufgenommen werden. Bezüglich des Lese-Vierer-Befehls ist angenommen, daß er von der CacheSpeichereinheit
750 abgegeben wird, bevor deren Ausführung des IF1-Befehls erfolgt, wie dies oben als Ergebnis eines Fehl-
030025/0769
Zustandes erläutert worden ist (was bedeutet, daß der angeforderte Block nicht in dem Cachespeicher
enthalten istJ. Zu diesem Zeitpunkt werden die Blockadressensignale
und die Ebenen-Signale zusätzlich zu anderen Steuersignalen in dem Transitblockpuffer 750-102
gespeichert. Dies bedeutet, daß die Schreib-Cachespeicher Kennzeichen- und Lese-Vierer-Kennzeichen-Bitpositionen
des Transitblockpuffers 750-102 Binärsignale 1 führen. Die Blockadressensignale entsprechen der Lese-Vierer-Adresse,
die von dem Prozessor 700 an die RADO-Leitungen 24-31 abgegeben wird. Die in den Transitblockpuffer 750-102
eingeschriebenen Ebenen-Signale TBRR0100-2100 werden aus
dem Umlaufregister 750-504 als Folge eines Adreßlisten-Zuteilungsoperationszyklus
erhalten, der mit Rücksicht darauf erforderlich ist, daß der Fehl-Zustand ermittelt
worden ist.
Wenn die Systemschnittstelleneinheit 100 mit der Übertragung von Daten beginnt, geben die Schaltungen des
Blockes 750-115 gemäß Fig. 4 das Speicher-Schreibanforderungssignal MEMWRTREQ100 als Binärsignal 1 ab. Dies
bedeutet, daß die Systemschnittstelleneinheit ein Binärsignal 1 an die DPFS-Leitung abgibt, wodurch angezeigt
wird, daß die ersten beiden Wörter übertragen werden (Signalverlauf P). Die Systemschnittstelleneinheit 100
gibt außerdem ein Binärsignal 1 an die ARDA-Leitung ab,
wodurch angezeigt wird, daß die angeforderten Lesedaten auf den DFS-Leitungen auftreten. Außerdem werden die
Zustände der Leitungen ARDA und DPFS durch Taktsteuerung in die FARDA- und FDPFS-Flipflops des Blockes 750-115
eingeführt. Das Vorhandensein von Signalen in diesen beiden Flipflops zusammen mit dem Schreib-Cachespeicher-Kennzeichensignal als Binärsignal 1 führt dazu, daß die
Schaltungen des Blockes 750-115 das Signal MEMWRTREQ100 als Binärsignal 1 abgeben. Zur gleichen Zeit gibt die
Systemschnittstelleneinheit Signale an die MIFS-Leitungen
030025/0769
ab, wobei die Bits 2 und 3 den Transitblockpuffer 750-102 veranlassen, die Adressen- und Ebenen-Signale
zum Einschreiben der beiden Datenwörter in die Cachespeichereinheit
750-300 auszulesen. Außerdem wird der Inhalt der Steuerbitpositionen, die das Schreib-Cachespeicher-Kennzeichenbit
umfassen, ausgelesen.
Das MEMWRTREQ-Signal bewirkt als Binärsignal 1 die Freigabe
der Decoderschaltung 750-30300 gemäß Fig. 7b. Auf die Decodierung der aus dem Puffer 750-102 ausgelesenen
Ebenen-Signale TBLEV0100-2100 gibt die Decoderschaltung 750-30300 eines der acht Signale MEMLIiV0100 bis MEMLEV7100
als Binärsignal 1 ab. Zur gleichen Zeit wird das Komplementärsignal des einen Signals der acht Signale als Binärsignal
0 abgegeben (das ist eines der Signale MEMLEVOOOOO bis MEMLEV7000J. Das Ergebnis dieses Vorgangs besteht
darin, daß der in Frage kommende eine Schalter der ZADRO-7-Adressenauswahlschalter 750-3O2a bis 750-302n
veranlaßt wird, die Stellung 2 und nicht die Stellung auszuwählen (Signalverlauf R). Dabei ist es lediglich
der durch die TB-Ebenen-SignaIe bezeichnete Adressenauswahlschalter,
der die Stellung 2 auswählt. Die übri gen Adressenauswahlschalter für die übrigen sieben Ebenen
wählen die Stellung 1 aus. Wie erläutert, ist dabei angenommen, daß kein Konflikt zwischen den Befehls- und
Speicherdatenebenen vorliegt.
Deshalb wird, wie dies aus Fig. 8 hervorgeht (Signalverlauf R) die Transitblockadresse auf das Auftreten
des T-Taktsignals hin in eines der RADRO-7-Register geladen, während die Befehlsregisteradresse von dem
RIRA-Kegister 750-900 her in die übrigen RADR-Register
geladen wird (Signalverlauf J), Dies ermöglicht das Einschreiben des ersten Speicherdatenwortes, welches auf
das Auftreten des T-Taktsignals hin in das RDFSB-Register 750-712 geladen worden ist, in die Cachespeicher-
030025/0769
einheit 750-300 in der bezeichneten Ebene, und zwar auf das Auftreten des 1/2-T-Taktsignals hin gleichzeitig
mit dem Zugriff zu einem Befehlswort aus den übrigen sieben Ebenen. Das in Frage kommende Befehlswort wird
als Ausgangssignal von dem ZCD-Schalter 750-306 unter
der Steuerung der Ebene-1-Signale ZNICLEV0100-2100 von
dem RICA-Register 750-900 her ausgewählt. Da die RDIBUF-Leitung auf das Auftreten des letzten T-Taktsignals hin
ein Binärsignal 1 geführt hat, wird das LDA-Befehlswort
von dem ZCD-Schalter 750-306 her in das RIRA-Register
750-308 geladen, und zwar auf das Auftreten des 1/2-T-Taktsignales
hin (Signalverlauf K). Auf das Auftreten des nächsten T-Taktsignales hin wird der zweite LDA-Befehl
in das RBIR-Register des Prozessors 700 geladen (Signalverlauf F).
Da sieben Ebenen verfügbar sind, bezüglich derer ein Zugriff zu Befehlen gleichzeitig mit dem Einschreiben
von Speicherdaten erfolgen kann, ist das Auftreten von Konflikten erheblich vermindert. Wenn Jedoch ein Konflikt
durch die Vergleicherschaltungen der Blöcke 750-914 und 750-916 ermittelt ist, veranlaßt dies die Schaltungen
des Blockes 750-920, die Befehlsadressierung anzuhalten. Da der Prozessor 700 Befehle aus dem Cachespeicher 750
nicht auf jedes T-Taktsignal hin herauszieht, hat dies,
wenn überhaupt, lediglich eine geringe Auswirkung auf die Prozessoroperation.
Wenn ein Konflikt vorhanden ist, wird das Signal CMPDATA/ ICLEY100 als Binärsignal 1 abgegeben bzw. umgeschaltet.
Dies ist durch den gestrichelten Teil des Signalverlaufea V in Fig. 8 veranschaulicht. Aus Fig. 7d geht dabei
im einzelnen hervor, daß das Speicher-Schreibanforderungssignal
MEMWRTREQ100 als Binärsignal 1 dazu
führt, daß einer der Bereiche der Vergleicherschaltungen der Blöcke 750-912 und 750-914 das Signal CMPDATA/ICLEV100
030025/0789
als Binärsignal 1 und das Signal CMPDATA/ICLEVOOO als
Binärsignal 0 abgeben, wenn die Transitblockpuffer-Ebenen-Signale RTBLEV0100-2100 mit den Befehls-Ebene-1-Signalen
ZNICLEV0100-2100 übereinstimmen.
Das Signal CMPDATA/ICLEV100 schaltet das FINHRDY-Flipflop 750-92150 auf das Auftreten eines T-Taktsignals
während der zweiten Hälfte des vierten Zyklus dann in den 1-Zustand um, wenn der Prozessor 700 ein Binärsignal 1
an die RDIBUF-Leitung abgibt. Das Flipflop 750-92150 veranlaßt
im 1-Zustand das UND/ODER-GIied 750-92156, das
Signal IFETCHRDYOOO als Binärsignal 1 abzugeben. Das Ergebnis dieser Maßnahme besteht darin, daß die Schaltungen
des Blockes 750-114 ein Binärsignal 0 an die Leitung IBUFRDY abgeben. Dies ist in Fig. 8 durch den
gestrichelten Teil des Signalverlaufes W veranschaulicht. Die Signale CMPDATA/ICLEVOOO und FINHRDYOOO sperren bzw.
hindern die Schaltungen des Blockes 750-920 daran, den Adresseninhalt des RICA-Registers 750-900 zu erhöhen und
das RIRA-Register 750-308 abzutasten Iwas bedeutet, daß
die Erzeugung von Signalen R1CA100, R1RA100 und das Setzen des FRDIBUF-FIifpflops verhindert ist).
Die obigen Konflikte führen zu einer Verzögerung des Zugriffs zu Befehlen, bis das erste 1/2-T-Taktsignal
nach Einschreiben der vier Wörter der Speicherdaten in die Cache Speichereinheit 750-300 aufgetreten ist. Dies
ist durch die gestrichelten Teile der Signalverläufe H, I und K in Fig. 8 veranschaulicht. Demgemäß wird der
zweite LDA-Befehl bis zu einem Zeitpunkt nicht in das RBIR-Register des Prozessors geladen, bis drei T-Taktzyklen
vergangen sind.
Die übrigen drei Speicherdatenwörter werden in der zuvor
beschriebenen Weise in die CacheSpeichereinheit 750-300 eingeschrieben. In dem Fall, daß kein Konflikt vorhanden
ist, wird selbstverständlich Jedes der betreffenden drei
030025/0769
Wörter in die Cachespeichereinheit 750-300 gleichzeitig mit der Herausführung von Befehlswörtern aus der Cachespeichereinheit
750-300 eingeschrieben (Signalverläufe R, S und J, K gemäß Fig. 8). Dies bedeutet, daß solange, wie
das aus dem Transitblockpuffer 750-102 ausgelesene Schreib-Cachespeicher-Kennzeichensteuerbit
ein 1-Bit ist, das Datenwort durch Taktsteuerung aus dem RDFS-Register
750-702 in das RDFSB-Register 750-712 auf das Auftreten eines nächsten T-Taktsignals hin eingeführt und auf das
folgende 1/2-T-Taktsignal in die Cachespeichereinheit
750-300 eingeschrieben wird. Diese Operationen wiederholen sich zweimal je Paar der von der Systemschnittstelleneinheit 100 her erhaltenen Lese-Vierer-Datenwörter.
Außerdem beginnt der Prozessor 700 während eines ersten T-Taktzyklus (der vierte Zyklus entspricht einem I-Zyklus)
damit, den LDA-Befehl auszuführen, wie dies erläutert wird. Dieser Vorgang umfaßt die Bildung einer Adresse,
die in einem Einzellesebefehl enthalten ist, der von dem Prozessorbereich 704-4 gemäß Fig. 3e an die Cachespeichereinheit 750 abgegeben wird. Der betreffende Befehl ist
derart codiert, daß er eine Speicher-Lese-Vierer-Operation bezeichnet, durch die ein 4-Wort-Block aus dem
Speicher 800 aufgerufen bzw. abgeholt wird. Im einzelnen dient die erzeugte Adresse, die in das RADO-Register 704-46
geladen ist, als Befehlsadresse. Darüber hinaus werden die Befehlsbits 1-4 und die Zonenbits 5-8 durch die Schaltungen 704-118 gemäß Fig. 5c und den Schalter 704-40 erzeugt. Die Zonenbits 5-8 werden so eingestellt, daß sie als binäre Einsen auftreten, da sie für Lesebefehle nicht
in
verwendet werden. Die Befehlsbits 1-4 werden/einem Befehlscode als 0111 von den Decoderschaltungen des Blockes 704-118
abgegeben (d.h., daß eine Vierer-Operation vorliegt). Die Schaltungen des Blockes 704-118 erzeugen die Cachespeicher-Befehls signale, die so codiert sind, daß sie einen Einzellesebefehl bezeichnen, der an die DMEM-Leitungeη abgegeben
030025/0769
2349571
wird. Der Decoder 704-140 gibt ein Binärsignal 1 an die DREQCAC-Leitung ab. Wie aus Fig. 8 hervorgeht,
signalisiert der Prozessor 700 während des nächsten T-'i'aktzyklus 5, der einem C-Zyklus entspricht, dem
Cachespeicher 750 das Vorliegen einer Cachespeicher-Anforderung,
indem ein Binärsignal 1 an die Leitung DREQCAC abgegeben wird (siehe den Signalverlauf G).
Die in dem Lesebefehl enthaltene Adresse wird über den ZDAD-Schalter 750-530 als ein Eingangssignal an die
ZADRO-7-Schalter 750-301a bis 750-301 η abgegeben, und
zwar zusätzlich zur Abgabe an die Adreßlistenschaltungen der Blöcke 750-500 und 750-502. Wie aus Fig. 7c
ersichtlich ist, geben das UND/NAND-ülied 750-92051 und
das NAND-Glied 750-92052 während der ersten Hälfte des fünften Zyklus die Signale ENBMEMLEV100 bzw. ENBADR1100
als Binärsignaüß 0 ab. Das Ergebnis dieser Maßnahme besteht
darin, daß die Schaltungen des Blockes 750-303 die Steuersignalpaare ZADR00100, ZADR01100 bis ZADR70100,
ZADR71100 als Binärsignale 0 abgeben. Demgemäß wählen die ZADRO-7-Schalter 750-302a bis 750-302n den ZDAD-Schalter
750-532 als Adressenquelle aus.
Wie aus Fig. 8 ersichtlich ist, wird die Lesebefehlsadresse in die RADRO-7-Register 750-301a bis 750-301η zur
Abgabe an sämtliche Ebenen auf ein 1/2-T-Taktsignal hin
mit Auftreten des Signals CLKHT100 geladen (siehe den Signalverlauf H). Wenn durch die Schaltungen des
Blockes 750-512 ein Trefferzustand ermittelt wird, veranlaßt dies das Auslesen des Operandenadressenwortes
in der bezeichneten Ebene aus dem ZCD-Schalter 750-306 während der zweiten Hälfte des T-Taktzyklus, wie dies
in Fig. 8 veranschaulicht ist (siehe den Signalverlauf I),
Unter Bezugnahme auf Fig. 7c dürfte im einzelnen ersichtlich sein, daß die Schaltungen des Blockes 750-526 das
Signal GSRC11100 als Binärsignal 1 während der zweiten
030025/0769
Hälfte eines T-Taktzyklus abgeben. Die Treffersignale
ZHT1100 bis ZHT7100 von den Schaltungen 750-546 bis 750-552 her werden dazu herangezogen, den Betrieb des
ZCD-Schalters 750-306 in Übereinstimmung mit den Ergebnissen der gerade ausgeführten Suchoperation zu
steuern. Im Falle des Vorliegens eines Trefferzustands, wenn also eines der Signale ZHT1100 bis ZHT7100 als
Binärsignal 1 auftritt, wird die bezüglich des Treffers ermittelte Ebene dazu herangezogen, die Signale ZCD0100
bis ZCD2100 zu erzeugen. Dies führt zur Abgabe des Operandenadressenwortes aus der Ebene, in der der
Treffer aufgetreten ist, wobei das betreffende Wort an die ZDI-Leitungen über die Stellung 1 des ZDI-Schalters
750-312 abgegeben wird. Aus Fig. 8 geht dabei hervor, daß der Vergleich der Bits 10-23 der Lesebefehlsadresse,
die Codierung der Treffer-Ebenen-Signale bei Vorliegen eines Treffers und die Freigabe des ZCD-Schalters 750-526
einen vollständigen T-Taktbetriebszyklus erfordern.
Das an die ZDI-Leitungen abgegebene Operandenwort wird auf das Auftreten des T-Taktsignals CLKT100 hin in das
RDI-Datenregister 704-164 gemäß Fig. 3c des Prozessors
geladen (Signalverlauf I gemäß Fig. 8).
Wenn ein Trefferzustand nicht ermittelt wird, werden
die an die ZDI-Leitun^gen abgegebenen Ausgangssignale
dennoch in das RDI-Datenregister 704-164 geladen, wobei der Prozessor 700 indessen daran gehindert wird, eine
weitere Verarbeitung vorzunehmen, oder er wird über die CPSTOP-Leitung festgehalten. Wenn die angeforderte
Information aus dem Speicher von der Cachespeichereinheit
750 erhalten ist, wird der Inhalt des RDI-Datenregisters 704-164 zu dem Zeitpunkt ersetzt, zu dem die
DATARECOV-Leitung .ein Binärsignal 1 führt und zu dem
dem Prozessor 700 ermöglicht ist, die Verarbeitung fortzusetzen (dies bedeutet, daß die Leitung CPSTOPOOO ein
Binärsignal 1 führt).
030025/076
ZSS
Während ersichtlich sein dürfte, daß die Lesebefehlsadresse von dem Prozessor 700 her in das RADR-Register
750-300 auf das Auftreten des 1/2-T-Taktsignals CLKHT100
hin geladen worden ist, werden auch andere Adressen in das RADR-Register 750-300 während der anderen 1/2-T-Taktzeitpunkte
geladen. Diese Adressen sind jedoch ohne Bedeutung. Demgemäß sind sie in Fig. 8 nicht dargestellt.
Im Hinblick auf i?'ig. 8 sei darauf hingewiesen, daß der
Prozessor 700 vor der Erzeugung des Lesebefehls ein Binärsignal 1 an die Leitung RDIJ3UF zum zweitenmal während
des dritten Zyklus abgibt. Dadurch wird der CacheSpeichereinheit
750 signalisiert, daß der Prozessor 700 den ersten LDA-Befehl auf den vorhergehenden T-Takt aufgenommen hat.
Während des ersten Halb-T-Taktzyklus des vierten Zyklus
füllt die Cachespeichereinheit 750 somit das RlRA-Register 750-308 wieder mit dem nächsten Befehl. Dies entspricht
dem STA-Befehl gemäß Fig. 8.
im einzelnen geht aus Fig. 7c dabei hervor, daß die Schaltungen des Blockes 750-526 das Signal ZCDICENAB100
als Binärsignal 1 abgeben. Dadurch werden die Schaltungen des Blockes 750-512 veranlaßt, die Ebenen-Signale ZNICLEV0100
bis ZNICLEV2100 von dem RICA-Befehlsregister 750-900 als
Steuersignale ZCD0100 bis ZCD2100 an den ZCD-Schalter
750-306 abzugeben. Dies bewirkt, daß der STA-Befehl an der durch den Adresseninhalt des RADR-Registers 750-301
bezeichneten Speicherstelle, die auf das Auftreten des vorhergehenden T-Taktsignals hin geladen worden ist
(Signalverlauf J), für das Laden in das RIRA-Register 750-308 über den ZCD-Schalter 750-360 ausgewählt wird
(siehe den Signalverlauf K). Danach wird der LDA-Befehl
in das RBIR-Register des Prozessors 700 auf das Auftreten des T-Taktsignals CLKT100 hin geladen (siehe den Signalverlauf
L).
030Ü25/0769
Der LDA-Befehl verbleibt lediglich für die Dauer einer
Taktperiode in dem HBIR-Kegister. Deshalb wird der
S'i'A-Jöefehl in das RBIR-Kegister auf das Auftreten des
T-Taktsignals hin geladen, wie dies oben erläutert
worden ist. in Fig. 8 ist die Arbeitsweise einer alternativen Ausführungsform der vorliegenden Erfindung veranschaulicht.
Bei dieser Ausführungsform werden Befehle stets während der ersten Hälfte eines T-Taktzyklus aufgerufen
bzw. abgeholt. Das Einschreiben von Speicherdaten tritt gleichzeitig mit dem Zugriff zu Befehlen auf,
w«nn kein Konflikt zwischen Ebenen vorliegt.
Im Falle der Ermittelung eines Konfliktes während der ersten Hälfte des T-Taktzyklus werden jedoch Speicherdaten
während der zweiten Hälfte des T-Taktzyklus geschrieben. Das Einschreiben von Speicherdaten läuft
gleichzeitig mit dem Zugriff zu Operanden durch den Prozessor ab, wenn die Ebenen nicht gleich sind. In dem
Fall, daß ein Prozessor-Lesebefehl einen Zugriff zu einem Operanden in derselben Ebene bezeichnet, in die
die Speicherdaten eingeschrieben werden, wird der Zugriff des Operanden um zumindest eine T-Taktzeit verzögert,
bis kein Konflikt vorhanden ist. Selbstverständlich wird ein Prozessor-Schreibbefehl einen Konflikt
hervorrufen, da das Einschreiben von Daten lediglich über den ZCDIN-Schalter 750-304 abgewickelt werden kann.
Es dürfte einzusehen sein, daß die alternative Ausführungsform zusätzliche Schaltungen zur Speicherung
von Trffer-Ebenen-Signalen, zur Ermittelung des Konfliktes und zur Steuerung der Halte-Verknüpfungsschaltungen
des Blockes 750-116 und zur Steuerung des Betriebs der hier erläuterten Datenwiedergewinnungsschaltungen erfordert
.
Die Signalverlaufe H und T veranschaulichen den Fall,
030025/0769
-SMS.
daß eine Speicherdatenadresse in ein bezeichnetes Register der RADRO-7-Kegister 750-301a bis 75O-3O1n geladen
wird, währenddessen die Prozessor-Lesebefehlsadresse in sieben Register der Adressenregister 750-301 a
bis 75O-3O1n geladen wird. Dies bedeutet, daß das Speicher-Schreibanforderungssignal MEMWRTREQ100 als
Binärsignal 1 während der zweiten Hälfte des fünften
T-Taktzyklus abgegeben wird, wodurch einer der ZADRO-7-Adressenauswahlschalter
750-302a bis 750-302n - der durch die Ebenen-Signale RTBLEV0100-2100 bezeichnet
ist - veranlaßt wird, von der Position 0 zur Position 2 umzuschalten. Dadurch wird wiederum in eines der
RADRO-7-Register die Adresse von dem Transitblockpuffer 750-102 geladen. Die übrigen sieben Register werden
mit der Lesebefehlsadresse von dem ZDAD-Schalter 750-530 her geladen.
Auf das Auftreten des T-Taktsignals zu dem Zeitpunkt,zu dem
das Operanden-Ausgangssignal von dem Cachespeicher 750, welches über den ZDI-Schalter 750-312 an die
ZDI-Leitungen abgegeben wird, in das RDI-Register des Prozessors geladen wird (Signalverlauf I), erfolgt
ein Vergleich zwischen der Treffer-Ebene und der Ebene, in die die Speicherdaten eingeschrieben werden. Der Vergleich
wird mit Hilfe von Vergleicherschaltungen durchgeführt,
wie mit Hilfe der Vergleicherschaltungen der Blöcke 750-912 und 750-914 gemäß Fig. 7d. Jeweils dann,
wenn die Vergleicherschaltunger feststellen, daß die aus dem Suchbetriebszyklus sich ergebenden Treffer-Ebenen-Signale
(das sind die Signale ZCD0100-ZCD2100; übereinstimmen
mit den Ebenen-Signalen RTBLEV0100-2100, geben
die betreffenden Schaltungen das Vergleicherausgangssignal CMPDATA/OPERLEV als Binärsignal 1 ab (Signalverlauf XJ.
Dadurch werden die Halte schaltungen des .Blockes 750-11b
veranlaßt ein ßinärsignal 0 an die Leitung CPSTOPOOO abzugeben (Signalverlauf Y), Der tatsächliche Vergleich
030025/0769
bzw. die Übereinstimmung bewirkt tatsächlich, daß die Cachespeieherschaltungen einen Fehl-Zustand solange
simulieren, bis der Koni'likt des Einschreibens von Speicherdaten und der Operanden-Zugriffe nicht länger
vorhanden ist.
Wie aus den Signalverläufen H und i gemäß Fig. 8 hervorgeht, verzögert die Ermittelung eines Koniliktes den
Zugriff zu dem Operanden, bis das Einschreiben von Speicherdaten beendet ist. Zu diesem Zeitpunkt erfolgt
ein Zugriff zu dem Operanden in der Cachespeichereinheit 750-300 und die Eintastung des betreffenden Operanden
in das RDI-Register des Prozessors 700 durch die Datenwiedergewinnungsschaltungen. Zu dem betreffenden
Zeitpunkt wird der Prozessor 700 freigegeben (was bedeutet, daß ein Binärsignal 1 an die Leitung CPSTOPOOO
abgegeben wird).
Es dürfte einzusehen sein, daß dann, wenn das Speicher-Schreibanforderungssignal
MEMWRTREQ100 als Binärsignal 1 während der ersten Hälfte eines T-Taktzyklus abgegeben
wird, die Ebenen-Signale RTBLEV0100-2100 von dem Transitblockpuffer
750-102 her in einem Register aufbewahrt werden, um die Speicherdaten während der zweiten Hälfte
eines T-Taktzyklus einzuschreiben.
Nunmehr wird die Beschreibung der Fig. 8 unter Bezugnahme auf die erste Ausführungsform abgeschlossen. Dies bedeutet,
daß der STA-Befehl den Prozessor 700 veranlaßt, eine zweite Cachespeicheranforderung an die Cachespeichereinheit
abzugeben. Im einzelnen erfordert der STA-Befehl zwei Prozessorzyklen für die Beendigung. Während des ersten
Zyklus führt der Prozessor 700 ähnliche Operationen aus, wie sie für den LDA-Befehle gefordert sind. Dies führt zur
Erzeugung der Adresse. Diese Adresse ist in dem Einzel-
030025/07S9
Schreibbefehl enthalten,den der Prozessor 700 an die
Cache Speichereinheit 750 abgibt und das Ende des ersten CacheSpeicherzyklus angibt. Zu diesem Zeitpunkt
gibt der Prozessor 700 ein Binärsignal 1 an die DREQCAC-Leitung ab (Signalverlauf M).
Wie aus Fig. 8 ersichtlich ist, wird die an die ZADOB/ RADO-Leitungen abgegebene Schreibbefehlsadresse von der
Stellung 1 des ZADR-Schalters 750-302 her in das RADR-Register 750-301 geladen. Während der ersten Hälfte
des sechsten Zyklus geben die Schaltungen des Blockes 750-92000 gemäß Fig. 7d dann, wenn keine Speicherdatenubertragung
vorliegt, die Signale ENBMEMLEV100 und ENBADR100 als Binärsignale 0 ab. Dies bewirkt, daß die
Schaltungen des Blockes 750-303 die Reihen der Signale ZADROO100, ZADRO1100 bis ZADR70100, ZADR71100 als Binärsignale
0 abgeben. Demgemäß verbinden die ZADRO-7-Schalter 750-302a bis 750-302n den Adressenausgang des ZDAD-Schalters
750-530 mit dem Adresseneingang der RADRO-7-Register
750-301a bis 750-301n. Während die Befehlsschreibadresse
in die RADRO-7-Register auf das Auftreten des 1/2-T-Taktsignals CLKHT100 hin eingeführt
und an sämtliche Ebenen abgegeben wird, geschieht zu diesem Zeitpunkt sonst nichts, da die Adreßlisten-Suche
bezüglich des Schreibbefehls ausgeführt werden muß (dies bedeutet, daß keine Schreibsignale erzeugt werden). Die
Schreibbefehlsadresse wird in dem RDAD-Register 750-532 aufbewahrt, um das Prozessor-Datenwort während des
nächsten T-'i'aktzyklus einzuschreiben.
Die Schreibbefehlsadresse wird außerdem an die Adreßlisten
750-500 und 750-502 abgegeben, um einen Suchoperati onszyklus auszuführen. Wie bereits erwähnt, erfordert
die Suchoperation einen vollständigen T-Taktzykluso Wie aus Fig. 8 ersichtlich ist, wird die Schreib
befehlsadresse, die in dem RDAD-Register 750-532 aufbe-
030025/0769
wahrt ist, über die Stellung 1 des ZDAD-Schalters 750-530
an die ZADRO-7-Schalter 750-302 während der ersten Hälfte
des siebten Taktzyklus abgegeben. Auch hierbei verbinden die ZADRO-7-Schalter 750-302 den Adressenausgang des
ZDAD-Schalters 750-530 mit dem Adresseneingang der RADRO-7-Register 750-301a bis 750-301n. Die Schreibbefehlsadresse
wird erneut in die Adreßregister 750-301 a bis 750-301η auf das Auftreten des 1/2-T-Taktsignals
CLKHT100 hin eingeführt.
Aus Fig. 7e ist ersichtlich, daß während der zweiten Hälfte des siebten T-Taktzyklus die Multiplexerschaltung
750-92002 die Treffer-Ebenen-Signale RHITLEV0100 bis RHITLEV2100 von den Schaltungen des Blockes 750-512
her als Eingangssignale an das Register 750-92006 abgibt.
Diese Signale werden auf das Auftreten des 1/2-T-Taktsignals CLKHT021 hin in das Register 750-92006 taktgesteuert
eingeleitet und an die Eingänge der Decoderschaltungen 750-92008 bis 750-92014 abgegeben. Zur
gleichen Zeit werden die Zonen-Signale Z0NE0100 bis Z0NE3100 von dem Schalter 750-144 her, die von dem
Prozessor 700 her erhalten sind, ebenfalls während der zweiten Hälfte des Zyklus in das Register 750-92006
geladen.
Während des zweiten Zyklus des STA-Befehls überträgt
der Prozessor 700 das Datenwort über die ZADO-Leitungen und das RADO-Register zu der Cachespeichereinheit
750 hin. Zu diesem Zeitpunkt veranlassen die Schaltungen des Blockes 750-526 den ZCDIN-Schalter 750-304,
das Prozessor-Datenwort über die Stellung 1 als Eingangssignal an sämtliche Ebenen der Cachespeichereinheit
750-300 abzugeben. Die Decoderschaltungen des Blockes 750-920000 geben eines der Schreibsignale aus
einer Reihe von Schreibsignalen (z.B. das Signal WRT00100) zum Einschreiben des Datenwortes in die
in Frage kommende Zone ab (Signalverlauf OJ.
030025/0769
-a«. 29A9571
2»f
Wie aus Fig. 8 hervorgeht, gibt der Prozessor 700 während des dritten Zyklus wieder ein Binärsignal 1
an die RDIBUF-Leitung ab, wodurch angezeigt wird, daß der STA-Befehl in das RBIR-Kegister geladen worden ist.
Während der ersten Hälfte des fünften Zyklus bewirkt das RDIBUF-Flipflop des Registers 750-92024, welches
durch das RDIBUF-Signal gesetzt ist, daß der zweite LDA-Befehl, der in dem durch den inhalt des RADR-Registers
750-301 bezeichneten Speicherplatz gespeichert ist, in das RIRA-Register 750-308 geladen wird ^Signalverlauf
K). Die bedeutet, daß das RDlBUF-Flipflop die
Abgabe des Signal TAKE1NST000 als Binärsignal 0 bewirkt, wodurch das Signal RIRA100 als Binärsignal 1 abgegeben
wird.
Die RADRO-7-Register 75O-3O1a bis 75O-3O1n werden mit
einer Adresse aus dem RICA-Befehlsregister 750-900 während der zweiten Hälfte des vierten Zyklus über den
ZIC-Schalter 750-906 und die Stellung 1 des ZADR-Schalters
750-302 geladen (Signalverlauf J). Diese Adresse wird an die Adresseneingänge sämtlicher Ebenen der
CacheSpeichereinheit 750-300 abgegeben. Außerdem wird
während der ersten Hälfte des fünften Zyklus der Adresseninhalt des RICA-Registers 750-900 um 1 erhöht und
in das Register 750-900 wieder zurückgeladen. Das Auslesen des in Frage kommenden Befehls aus dem ZCD-Schalter
750-306 erfolgt unter der Steuerung des Ebenen-Signale ZNICLEV0100-2100 von dem Schalter 750-910 her. Diese
Signale werden dazu herangezogen, die Signale ZCD0100-2100 zu erzeugen.
Während das RIRA-Register 750-308 mit dem zweiten LDA-Befehl geladen wird, zeigt Fig. 8, daß der betreffende
Befehl nicht zu dem RBIR-Register hin übertragen wird, und zwar bis zum sechsten Zyklus (Signalverlauf F). Der
Grund hierfür besteht darin, daß der STA-Befehl, wie bereits oben erwähnt, zwei Zyklen erfordert.
030025/0769
294957t
Auf die Beendigung der Ausführung des I-Zyklus des
STA-ßefehls hin gibt der Prozessor 700 ein Binärsignal
1 an die Leitung RDIBUF ab (Signalverlauf E).
Wie aus Fig. 8 hervorgeht, führt der zweite LDA-Befehl
auf sein Laden in das RBIR-Register dazu, daß der Prozessor 700 einen zweiten Lesebefehl an den Cachespeicher
750 abgibt, wie dies dadurch signalisiert wird, daß ein Binärsignal 1 an die Leitung DREQCAC abgegeben
wird (Signalverlauf G). In der beschriebenen Art und
Weise wird die Lesebefehlsadresse von dem Prozessor 700 her in die RADRO-7-Kegister 750-301a bis 750-301n
während der ersten Hälfte des achten Zyklus auf das Auftreten des Signals CLKHT100 geladen (Signalverlauf HJ.
Während der zweiten Hälfte des Zyklus wird das Operanden-Adressenwort aus der Ebene, in der der Treffer-Zustand
aufgetreten ist, über die ZDI-Leitungen in das RDI-Kegister
des Prozessors geladen.
üa während des sechsten Zyklus ein Binärsignal 1 über
die Leitung RDlBUF abgegeben worden ist, veranlaßt dies erneut das Laden eines dem zweiten STA-ßefehl entsprechenden
neuen Befehls in das RIRA-Register 750-308 während der ersten Hälfte des siebten Zyklus (Signalverlauf K). Der
STA-Befehl wird in das RBIR-Register des Prozessors auf
das Auftreten des T-Taktsignals hin während der zweiten
Hälfte des siebten Zyklus geladen (Signalverlauf L).
In der beschriebenen Art und Weise erzeugt der Prozessor 700 einen zweiten Schreibbefehl, der während des neunten
Zyklus an die Cachespeichereinheit 750 abgegeben wird. Dies wird dadurch signalisiert, daß ein Binärsignal 1
an die Leitung DREQCAC abgegeben wird (Signalverlauf M). Die Schreib-Befehlsadresse wird in die KADRO-7-Register
750-301 a bis 750-301 η von den RADO-Leitungen her und dem RDAD-Register 750-532 her auf das Auftreten des 1/2-T-Taktsignals
hin geladen, und zwar auf das Auftreten der
030022/0769
294957t 2Ϋ3
Signale CLKHT100 hin (Signalverlauf N). Während der zweiten Hälfte des zehnten Zyklus wird das Prozessor-Datenwort
in die Cachespeichereinheit 750-300 eingeschrieben.
Außerdem wird der nächste Befehl während der ersten Hälfte des achten Zyklus in das RIRA-Register
750-308 geladen (Signalverlauf K).
Aus vorstehendem dürfte somit ersichtlich sein, wie die Anordnung der bevorzugten Ausführungsform den
gleichzeitigen Ablauf einer Vielzahl von Operationen ermöglicht und wie die Anordnung der bevorzugten Ausführungsform
die Störung zwischen den verschiedenen Typen von Operationen minimiert, die von einem Cachespeichersystem
auszuführen erforderlich ist. Demgemäß führt dies zu einer gesteigerten Systemleistungsfähigkeit
hinsichtlich der Effizienz und hinsichtlich des Trefferverhältnisses.
s dürfte ferner ersichtlich sein, wie die Anordnung der bevorzugten Ausführungsform den Zugriff zu Befehlen
von der Cachespeichereinheit 750-300 her während der ersten Hälfte eines T-Taktzyklus und das Einschreiben
oder Auslesen von Prozessor-Operanden in die bzw. aus der Cachespeichereinheit 750-300 während der zweiten
Hälfte desselben T-Taktzyklus ermöglicht.
Js dürfte einzusehen sein, daß bei einem System mit
einem hohen Trefferverhältnis, wie bei der bevorzugten Ausführungsform der Erfindung, zu erheblich mehr Befehlen
zugegriffen werden kann von der Cachespeichereinheit als Speicherdaten in den Cachespeicher eingeschrieben
werden. Damit minimiert die geteilte Zyklusanordnung das Auftreten einer Störung zwischen derartigen Befehlen
und Prozessoroperanden-Zugriffen.
Außerdem vermeidet die betreffende Anordnung Störungen zwischen dem Einschreiben von Speicherdaten und Prozessoroperanden-Zugriffen.
Wie erwähnt, geben die Schaltungen
030025/0769
des Blockes 750-115 während des ersten Teiles des jeweiligen T-Taktzyklus in dem Fall, daß Daten in die
CacheSpeichereinheit 750-300 einzuschreiben sind, das Speicher-Schreibanforderungssignal als Binärsignal
1 ab. Dies ergibt sich aus dem Auftreten von MIFS-Steuersign_#len, die von dem Hauptspeicher 800
her zurückgeführt werden. Die Bits 2 und 3 werden dazu herangezogen, den Adresseninhalt eines der Transitblockpuffer-Speicherplätze
für das Auslesen in das RADR-Hegister 750-301 auszuwählen.
Unter Bezugnahme auf Fig. 7e ergibt sich, daß das Signal MEMWRTREQ100 von der Einheit 750115 her das
UND/NAND-Glied 750-9205 veranlaßt, das Signal EWBMEMLEV100
als Binärsignal 1 und das Signal EiMBMEMLEVOOO als Binärsignal 0 abzugeben. Dies veranlaßt das UND-Glied 750-30302
und das UND-Glied 750-30304,die Steuersignale ZADR01100
ZADR00100 als Binärsignale 1 bzw. 0 abzugeben. Das Ergebnis dieses Vorgangs besteht darin, daß der ZADR-Schalter
750-302 die Stellung 2 (ZTA) anstatt der Stellung 1 auswählt. Demgemäß ist der Transitblockpuffer als Adressenquelle
für das RADR-Register 750-301 angeschlossen.
Auf das Auftreten des T-Taktsignals hin wird die
Transitblockpufferadresse in das RADR-Register geladen.
Auf das Auftreten des dem T-Taktsignal folgenden 1/2-T-Taktsignals hin werden die Speicherdatensignale,
die in das RDFSB-Register 750-712 geladen sind, in die CacheSpeichereinheit 750-300 über den ZCDIN-Schalter
750-304 unter der Adresse eingeschrieben, die aus dem Puffer 750-102 ausgelesen worden ist.
Wie aus Fig. 7e hervorgeht, setzt das Signal MEMWRTREQ100
die unteren drei Flipflops des Registers 750-92006 in die 1-Zustände. Dadurch sind sämtliche Decoderschaltungen
750-92008 bis 750-92014 für den Betrieb freigegeben. Demgemäß decodiert jede dieser Schaltungen die Ebenen-
030025/0769
QIS
Signale RTBLL1VOIOO bis RTBLEV2100 und gibt ausgangsseitig
ein Binärsignal 1 ab. Dadurch werden sämtliche vier Datenwort-Bytes in die Cachespeichereinheit 750-300
eingeschrieben. Es dürfte einzusehen sein, daß die übrigen
Datenblockwörter in die Cachespeichereinheit 750-300 in derselben Art und V/eise während der ersten Hälfte
der folgenden T-Taktbetriebszyklen eingeschrieben werden.
Es sei darauf hingewiesen, daß in denjenigen Fällen, in denen Speicherdaten aufgenommen und Befehlszugriffe
verhindert sind, die Schaltungen des Blockes 750-920 verhindern, daß die IBUFRDY-Leitung einen Bereitschaftszustand
anzeigt. Dies bedeutet, daß das Signal MEMWRTREQ100 das Sperr-Befehlsbereitschafts-FINHRDY-Flipflop 750-92150
veranlaßt, in den 1-Zustand zu gelangen. Dadurch wird das UND/ODER-Glied 750-92156 veranlaßt, das Signal IEEi1CHRDYOOO
als Binärsignal 1 abzugeben. Das Ergebnis dieser Maßnahme besteht darin, daß das von den Schaltungen des Blockes
750-115 erzeugte Signal IBUFRDY100 als Binärsignal 0
auftritt, wodurch das Vorliegen eines Nichtbereitschafts-Zustands
angezeigt wird.
Durch die Erfindung ist also ein als Cachespeichersystem
bezeichnetes Notizblockspeichersystem geschaffen, welches eine Speichereinheit aufweist, die in einer Vielzahl von
Ebenen organisiert ist, deren jede eine Anzahl von Mehrwortblöcken aufweist. Außerdem ist eine entsprechende
Anzahl von Adressenauswahlschaltern und Adressenregistern
vorgesehen. Jeder Adressenauswahlschalter weist eine Vielzahl von verschiedenen Stellungen auf, die Adressensignale
von einer Vielzahl von Adressenquellen her aufnehmen. Eine Decoderschaltung erzeugt Ausgangssignale zur Steuerung
des Betriebs der Adressenauswahlschalter. Auf das Auftreten von zuvor festgelegten Ebenen-Signalen gibt die
Decoderschaltung einen festgelegten Schalter der in einer Anzahl vorgesehenen Schalter dafür frei, von einer ersten
030026/0789
Stellung in eine zweite Stellung umzuschalten. Eine Adresse gibt dabei den Speicherplatz an, in den
Speicherdaten einzuschreiben sind. Diese Adresse wird durch Taktsteuerung in ein Adressenregister eingeführt,
während die Adresse, welche den Speicherplatz bezeichnet, aus dem ein befehl abzuholen ist, durch Taktsteuerung in
die übrigen Adressenregister eingeführt wird. Eine Vergleicherschaltung vergleicht die Signale, welcne die
Ebene angeben, in die Speicherdaten einzuschreiben sind, mit Signalen, die kennzeichnend sind für die Ebene, aus
der ein nächster Befehl abzuholen ist. Die Vergleicherschaltung erzeugt Signale, die die Verzögerung des Befehlszugriffes
in dem Fall bewirken, daß ein Konflikt zwischen dem Einschreiben von Speicherdaten und dem
Zugriff von Befehlen vorhanden ist.
Das System umfaßt ferner eine Adx-eßliste, die in einer
Vielzahl von Ebenen zur Speicherung einer Adresseninformation organisiert ist, welche für den Zugriff von
Blöcken aus der CacheSpeichereinheit erforderlich ist.
Außerdem sind ZeitSteuerschaltungen vorgesehen, die
erste und zweite Hälften eines Cachespeicher-Operationszyklus festlegen. Mit den Zeitsteuerschaltungen
sind Steuerschaltungen verbunden, die Steuersignale zur Steuerung des Betriebs des Adressenauswahlschalters
erzeugen. Während des vorhergehenden Zyklus veranlassen die Steuerschaltungen den Adressenauswahlschalter, eine
Adresse auszuwählen, die in das Adressenregister während
des vorhergehenden halben Zyklus geladen wird. Dadurch wird entweder der Zugriff zu Befehlen von der Cachespeichereinheit
her freigegeben, oder das Einschreiben von Daten in die Cachespeichereinheit wird während der
ersten Hälfte des nächsten Cachespeicherzyklus freigegeben. Während der ersten Hälfte des Zyklus wird die durch den
Adressenschalter auf das Auftreten von Steuersignalen von den Steuerschaltungen her ausgewählte Adresse durch
Taktsteuerung in das Adressenregister eingeführt. Dies
030025/0769
ermöglicht die Ausführung von Prozessoroperationen, wie den Zugriff zu Operandendaten oder das Einschreiben
von Daten in die Cachespeichereinheit während der
zweiten Hälfte desselben Zyklus.
03 0 025/0769
Leerseite