Anmelderin: Stuttgart, den 2^. Okt. 1979
Data General Corporation P 577k R/Bn
Westboro, Massachusetts
V.St.A.
Vertreter:
Kohler-Schwindling-Späth
Patentanwälte
Hohentwielstr. i+1
7000 Stuttgart - 1
Digitalrechnersystem
Die Erfindung befaßt sich mit der Architektur für ein schnelles Digitalrechnersystem und mehr im einzelnen
mit in diesem verwendeten Schaltungen zur Steigerung der Arbeitsgeschwindigkeit und der Leistungsfähigkeit eines
solchen Systems.
Die Grundelemente für einen Digitalrechner umfassen einen Prozessor zum Verarbeiten von digitalen Daten in Maschinensprache
und einen Speicher. Im allgemeinen sind Befehle in Maschinensprache zum Steuern der Arbeitsoperationen des
Prozessors im Speicher gespeichert. Der Speicher kann auch
030020/0815
-JtT-
29AA4 1
mindestens Teile von zu verarbeitenden Daten enthalten. Befehle und Daten werden zwischen dem Prozessor und dem
Speicher durch Speicher-Eingabe- und Ausgabe-Busse übertragen. Ein Rechner weist weiterhin Eingabe/Ausgabe(E/O)-Module
zum Übertragen von Befehlen und Daten zwischen dem Rechner und externen Geräten auf. Die externen Geräte
können beispielsweise eine Steuerkonsole oder ein Bandspeichergerät aufweisen und sie verkehren im allgemeinen
nicht in der Maschinensprache des Rechners.
Die Tauglichkeit eines solchen Digitalrechners wird durch seine Geschwindigkeit und sein Leistungsvermögen bei der
Verarbeitung von Daten und durch seine Anpassungsfähigkeit an sich ändernde Erfordernisse der Benutzer bestimmt
und begrenzt. Die Geschwindigkeit und die Leistungsfähigkeit des Rechnersystems werden durch verschiedene
Faktoren bestimmt. Zu diesen Faktoren gehören die Operationsgeschwidigkeit des Speichers und die Verfügbarkeit
des Speicherzugriffs durch den Prozessor, wenn dieser Zugriff benötigt wird. Andere Faktoren sind die
Datenbandbreite, die durch die Eingabe- und Ausgabe-Busse des Speichers gewährleistet werden kann, die
Komplexität der Prozessor-Schnittstelle mit den Speicher-Eingabe- und Ausgabe-Bussen, die Verfügbarkeit von Befehlen
für den Prozessor, wenn sie benötigt werden, und die Geschwindigkeit, mit der der Prozessor Befehlsfolgen
veranlaßt und ausführt.
Eine Begrenzung für die Anpassungsfähigkeit des Rechners liegt in seiner Fähigkeit, die Speicherkapazität entsprechend
den Erfordernissen des Benutzers zu strukturieren. Eine weitere Begrenzung liegt in der Fähigkeit
des i/A-Moduls des Rechners, eine Anpassung an eine
030020/0815
Mehrzahl von ι;χ.1υπι·:;ιι Geraten uU'-r an Anderun^-n dor int.':r:'i'.'ii
Maschinensprache du.; Rechner..: zu ermöglichen,
bii: vor ] j i- ,:·;ι π du srfindung schafft bei einem K'echnersy;u.um
Verbesserungen, die ti .ich auf dje üben genannten
Kai·:! .in.;!! von i!e.jr)nv indigkei t, una l,ei;;tuni;;; i'a'hj fiv'· i t bu-Y.i
>.:\\>.;>\, und i/ic VL'i'bü3sert Humit die Geüchwindi r;!.u.i t
und a'w Luii.; tunnci'äliigkeit d>;i· Arbuit duü .Jy.jLum:; und
:;:;hai ft auch eine Lösung für die oben erwähn tun Problunu;
urM !iL'.u'hräni-.un^eri beim ο Land Jur 'l'uchnik, wi<; untun im
<.'.i.[n.<- irit. η diükiitit rt wird.
Di-; vurlJi.'/;L-ii(Jü Lrfindung bufaiit ijio.li mit tiur Architektur
i.-iri'.'U Hc-chntJi^iy.iLerriü und schafft eine erhühtu üjn.'ral,ionti-(■;c:;cliv.indigkoit
und Leistungsfähigkeit und go;;tattet e:;,
ein Rechnercystem an sich ändernde Anforderungen des Benut::i;r.j
anz,U|)assen. Die Architektur weist einen Prozessorzum
'.Ί rarboitun von Daten in Maschinensprache1 auf, einen
opf'icher, um mindestens Befehle in Maschinensprache zur
Benutzung durch den Prozessor zu speichern, einen
;]pe j cher-Ein^abe-Bus und einen Speicher-Aus^abe-Bus ,
um mindestens Befehle zwischen dem Speicher und dem Prozessor zu übertragen und ij/A-Module zum Übertragen
von "ianalen zwischen dem Rechnersystem und externen
Geräten. Die Architektur weist andere Schaltungen zur Krhühung der Geschwindigkeit, der LeistungsfähickuiL
und aer Anpassungsfälligkeit des Rechnersysteme auf.
Uni..·!· diesen Schaltungen sind ein schneller Speicher
un ι Jr i.-iclior-Busce , die eine große Speicher-Bus-Bandbro jte
;iüu (ine einfache Speicher-Bus-Schnittste lluiischaltung
ergebeii. Hin weiteres Merkmal ist eine Befehls-Bereitstf'J
J uni-s-rJinri chtung , um Befehle aus dem Speicher
030020/0815
abzurufen und zu speichern, bevor diese Befühle
durch den Prozessor ausgeführt werden· Wieder ein anderes Merkmal ist eine Schaltung, die einen schnellen
Beginn und eine schnelle Durchführung von Befehifolgen
erlaubt. Ein weiteres Merkmal ist eine E/A-Schaltung, die eine leichte Verbindung eines Rechnersystems mit
eiiii;r Vielzahl von externen Geräten oder eine leichte
Anpassung an Änderungen in der Maschinensprache oder in den Defehlen des Rechners erlaubt.
Es ist daher vorteilhaft, die vorliegende Erfindung in einem Rechnersyutem zu verwirklichen, v»eil die Geschwin
digkeit, mit der Befehle vom Speicher zum Prozessor übertragen werden, vergrößert v/i rd und die Rechner-Gemeinkostenzeit
verringert wird, die benötigt wird, um Befehle aus dem Speicher abzurufen. Die vorliegende:
Erfindung ist weiterhin vorteilhaft, weil die Geschwindigkeit, mit der Befehlsfolgen veranlaßt und
ausgeführt werden, erhöht ist· Zusätzlich vergrößert die vorliegende Erfindung die Anpassungsfähigkeit
eines Rechners hinsichtlich seiner Verbindung mit externen Geräten und gestattet es, daß die Brauchbarkeit
des Rechnersystems vergrößert wird, um steigende Anforderungen der Benutzer zu erfüllen·
Es ist somit ein Vorteil der vorliegenden Erfindung, daß sie ein verbessertes Digitalrechnersystem schafft.
Ein weiterer Vorteil der vorliegenden Erfindung liegt darin, daß ein verbesserter Rechnerspeicher und
Speicher-Bus-System geschaffen wird, die erweiterungsfähig
sind, um die Anforderungen der Benutzer zu erfüllen.
030020/0815
29U419
Wilder ein anderer Vorbei L der vorliegenden Erfindung
besteht darin, daß eine Schaltung ^um Bereitstellen
von Be fehlen geschaffen wird, die Befehle aiu dem
Speicher vor gerade durch den Prozessor in Ausführung
befindlichen Befehlen abruft.
,-!in woiLei'or Vorteil der vorliegenden Erfindung bestellt
dai'in, daß eine Schaltung zum Erhöhen der Geschwindigkeit
geschaffen wird, mit der Befehlsfolgen durch den Prozessor veranlaßt und ausgeführt werden.
Wiederum ein anderer Vorteil der vorliegenden Erfindung
besteht in der Schaffung einer E/A-Schaitung, die es gestattet, daß ein Rechnersystem leicht mit einer
Vielzahl von externen Geräten verbunden werden kann oder leicht an Änderungen der Maschinensprache oder
der Befühle im Rechner angepaßt werden kann.
'Weitere Merkmale und Vorteile der vorliegenden Erfindung
ergeben sich aus der nachfolgenden Beschreibung von bevorzugten Ausführungsbeispielen der Erfindung
anhand tier Zeichnung, und aus den Ansprüchen.
Fig. 1 ist ein teilweises Blockschaltbild eines Rechners gemäß dem Stand der Technik;
Fig". 2 ist ein teilweises Blockschaltbild eines die
vorliegende Erfindung enthaltenden Rechner;;;
Fig. ''j 1st ein detailliertes Blockschaltbild eines
die vorliegende Erfindung enthaltenden Rechners;
Kig. l\ stellt im vorliegenden Rechner verwendete Bef
e h L s - und Da t e η wo r t e da r ;
030020/0815
/τη
F if,. 5 i-'t ein Blockschaltbild eines Unterspeiche rs;
Fig· b ist ein Zeitdiagramm, das einen Lesezyklus ei
Unterupeichers zeigt;
Fi(';. V ist ein Zeitdiagramm, das einen schreibzykJus
'ines Unterspeichere zeigt;
Fig. 8 ist ein Zeitdiagramm, das einen Auffrischzyklus
des Rechnerspeichers zeigt;
Fig. 9 ist ein Zeitdiagramm, das einen sputen Auffrischzyklus
des Rechnerspeichers zeigt;
Fig.10 ist ein Zeitdiagramm, das einen verzögerten Lese-Schreib-Zyklus des Rechnerspeichers
zeigt;
Fig.11 ist ein Zeitdiagramm, das das Umschalten des Rechnerspeichers auf Batterie-Aushilfsbetrieb
zeigt;
Vif. 1c- int ein Zeitdiagramm, das einen Rechner-Auffrischsyklus
bei Batterie-Aushilfsbetrieb zeigt;
Fig.13 ict ein Zeitdiagramm, das das Herausschälten des
Rochnerspeichers aus dem Batterie-Aushiifsbetrieb
zeigt;
Fig.W) ist eine schematische Darstellung einer opeichermodulbank;
Firo Iy ist uin Blockschaltbild eines Speicherelements;
030020/0815
16 und IGA sind johemutische barstell ungen von :jpeicherausgabeschaltungen;
Fif;· 17 iijt, üine schematische Darstellung einer ^poi-
cher-riingabeschaltung;
Fig.Io ist eine schematische Darstellung
SpoichermoduleincabeGchaltung;
Fit,.i7 i-'jt eine uchoraatische Darstellun/j einer
Spoicherniodulbank-Treiberschaltunf;
Fi-O^O i;;t eiin: cchematiache Darstellung oinoi· Modul-
ctcuerschaltunß;
Fir·'--! iüt eine schematische Darstellung der Speicher·
iJteuercchaltung;
Fir;n.
dd und 22Λ sind schematioche Darstellungen der SpeicherausßabeGteuerschaltung;
Fign. 2J,t
2.yA u, 2.5B sind schematische Darstellungen der Speicherauffrisch-
und Hilfsbatterie-oteuerschaltung;
Fi;;. 2.i\ ist eine schematische Dar-stellung der Speicher-Gingäbe-Taktεchaltung;
Fign ·
el1} und 2.I)A sind ßcliematisclie Darstellungen der ßefehlsanforderungsschaltung
des Bereitstellungs-Prozessors ;
0/0 030020/0815
29U419
26 und 26a sind schematische Darstellungen der Speicherschaltung
des Bereitstellungs-Prozessors;
27 und 27A sind schematische Darstellungen der Steuerschaltung
des Bereitstellungs-Prozessors;
Fig. 28 ist ein Blockschaltbild einer Rechner-Mikrobefehl-Logik;
Fig. 29 zeigt den Zusammenhang zwischen Folgen von Makrobefehlen und Mikrobefehlen des Rechnersystems;
und
Fig. 30 ist eine schematische Darstellung eines Teils
der Mikrobefehl-Logik (SAGE) des Rechnersystems.
Die folgende Diskussion legt die Architektur und die Arbeitsweise eines Rechners, der die vorliegende Erfindung
enthält, dar. Wie im folgenden Inhaltsverzeichnis angezeigt ist, wird die allgemeine Architektur und Wirkungsweise
eiru;;.; Rechners jomili duni Stand der Technik
zuerst gezeigt. Als nächstes wird die allgemeine Architektur und Arbeitsweise eines Rechners entsprechend der
vorliegenden Erfindung gezeigt und mit dem bekannten Rechner verglichen. Eine kurze Diskussion gewisser Merkmale
der vorliegenden Erfindung folgt. Die Architektur und Arbeitsweise des Rechners der vorliegenden Erfindung
wird dann auf der Ebene von Blockdiagramraen beschrieben. Ausgewählte Abschnitte des Rechners, beispielsweise der
030020/0815
Speicher, der Bereitstellungsprozessor, die Mikrobefehls-Steuerlogik,
und eine Softkonsole werden dann einzeln beschrieben.
Aus Gründen der Deutlichkeit der Darstellung werden in usr
folgenden Diskussion gewisse Vereinbarungen benutzt. Wenn auf wesentliche Anzahlen von Signalen während der Diskussion,
beispielsweise des Speichers oder des Bereitstellungsprozessors,
Bezug genommen wird, wird der Diskusaion ein Glossar vorausgehen, das die genannten
Signale nennt und definiert. Weitere Signale können in der Diskussion eingeführt werden, wenn erforderlich. Eine
Gruppe von ähnlichen Signalen ist beispielsweise durch MODSTART(512,5H,516,518) bezeichnet. Auf ein einzelnes
Signal dieser Gruppe wird beispielsweise durch MODSTART512 Bezug genommen, und auf die Gruppe im allgemeinen
durch MODSTART, Invertierte Signale werden durch einen Strich oberhalb des Signalnamens bezeichnet, beispielsweise
MODRDY und MODRDY. Wo in zwei oder mehr Figuren miteinander zusammenhängende Schaltungen gezeigt
sind, haben die Figuren eine gemeinsame Figuren-Nummer
mit einer Unterscheidung durch einen Buchstaben, beispielsweise Fig.12, 12A, 12B. Gemeinsame elektrische
Anschlüsse zwischen solchen Schaltungen werden durch eine Klammer angezeigt, die eine Leitung zu einem
solchen Anschluß einschließt, und eine Bezeichnung "a-b" bezeichnet; "a" zeigt andere Figuren an, die
denselben gemeinsamen Anschluß haben, und "b" ist eine
einem speziellen gemeinsamen elektrischen Anschlußpunkt zugeordnete Buchstabonbezeichnung. Bezugszeichen
enthalten eine Zahl mit zwei Ziffern (00-99), der die Zahl der Figur, in der sie erscheinen, vorausgeht, beispielsweise
100 bis 199 in Figur 1 oder 2500 bis 2599 in Figur 25.
030020/081 5
Wenn miLeinander· in Verbindung stehende ^cha!Lunten in
zwei odur melir Figuren gezeigt sind, wird die verwendete
Figuren-Nummer diejenige der ernten FJ£"ur der miteinander
in Verbindung stehenden Gruppe sein. Bezur;szcichen
werden in der miteinander in Verbindung stehenden Gruppe von Figuren aufeinanderfolgend zugewiesen.
030020/0815
lnhaltsverzeichni g
1. Einführung (Fign. 1 und 2) 12
2. Hechnerarchitektur und Arbeitsweise (Fign.3 u.4) 17
A. Struktur (Fig. 3) 17
B. Befehlswörter und Datenwörter (Fig. 4) 19
G. Arbeitsweise (Fig. 3 22
3. Unterspeicher 313 (Fign. 5-24) 27
A. Unterspeicher 313, Struktur (Fig. 5) 28
B. Unterspeicher 313, Signa]-Glossar 31
C. Arbeitsweise des Unterspeichers 313 (Fig. 5) 37
D. Speicher 313, Zeitdiagramme (Fign. 6 - 13) 46
E. Unterspeicher 313, Schaltung (Fign. 14 - 24) 56
F. Zusammenfassung von Merkmalen des Unterspeichers 81
313
4. Bereitstellungsprozessor (PFP) 312 (Fign. 3, 85
25 - 27)
A. PFP 312, Signal-Glossar 86
B. Wirkungsweise des PFP 312 (Fig. 3) 92
C. PFP 312, Schaltung (Fign. 25 - 27) 98
D. Zusammenfassung der Merkmale des PFP 312 113
5. Mikrobefehl-Logik 342 (Fign. 3, 28, 30) 115
A. Mikrobefehl-Logik 3^2, Aufbau und Wirkungsweise 116
(Fign. 3, 28)
B. SAGE 2824 (Fign. 29 und 30) 119
6. Konsolen-ROM 358 (Fig. 3) 126
7. Stückliste (Fign. 14 - 27, 30) 129
030020/0815
1. Einführung (Fign. 1 und 2)
In Fig, 1 ist ein teilweises Bloclischaltbild eines Rechners
110 gemäß dem Stand der Technik gezeigt. Die Hauptelemente des Rechners 110 sind ein Speicher 111, eine
Zentraleinheit (CPU) 11/f, und Ein/Ausgabe(E/A)-Geräte 116.
Das Programm des Benutzers, beispielsweise Daten und Makrobefehle, werden im Speicher 111 gespeichert und
zur CPU \1k auf Anforderung durch die CPU 1 1 /f durch einen
Speicherausgabe-MEMOUT-Bus 118 übertragen. Die Übertragung
von Daten/Befehlen aus dem Speicher 111 heraus und ihr Einschreiben in den Speicher 111 werden durch ein
Speichereingabe-(MEMIN)-Register 162 hindurch vorgenommen. Das MEMIN-Register 162 weist ein Adressregister 162a und
ein Datenregister 162b auf, die mit einem Adress-Bus
(ADR) 120a und einem Daten-Bus (DATA) 120b verbunden sind. Daten und einige Befehle, die auf dem MEMOUT-Bus
118 erscheinen, werden in ein Speicherausgabe-(MEMOUT)-Register
1/fO übertragen. Daten/Befehle im MEMOUT-Register
I/4O werden durch einen ALU-Eingabe-(ALUIN)»Bus 12ij zu
einer ALU(arithmetisch-logische Einheit) 156 zur Verwendung bei der Ausführung der Progranunschritte übertragen.
Im allgemeinen werden die Befehle vom MEMOUT-Bus 118 in ein Befehlsregister (IR) 1 Zf6 übertragen. Gewisse
Typen von Befehlen können vom Befehlsregister Hfb direkt zur ALU 156 durch den ALUIN-Bus 12if übertragen
werden. Häufig benutzte Befehlsfolgen werden jedoch in einer Mikrobefehl-Logik \l\2. gespeichert und nicht im
Speicher 111. In solchen Fällen weist der im Befehlsregister
]L\6 erscheinende Makrobefehl einen Befehl für
die Mikrobefehl-Logik 1Z+2 auf. Die Mikrobefehl-Logik 1/+2
ruft dann nacheinander Schritte der Mikrobefehlsfolge
aus ihrem internen Speicher auf und liefert die Mikrobefehle an die CPU 11 if.
03QU?U/0015
Nach dem Abschluß eines Makrobefehls oder einer Mi kr ο-bcfehlsfolge
fordert die ALU ]% den nächsten Befehl des Benutzerpi-ogramins vorn Speicher 111 an, indem sie die
entsprechende Adresse an den Speicher 111 durch den
ALU-Ausgabe-(ALUOUT)-Bua 126, die MEMIN-Kegister 162 und
den ADR-Buij 120a liefert.
Im allgemeinen wird ein Benutzerprogramm mit einer
Folge von Makrobefehlen im Speicher 111 in einer entsprechenden
Folge von Adressen gespeichert. Die CPU 11/| verfolgt daher das Programm durch Speicherung der
Adresse des zur Zeit ausgeführten Befehle, bezeichnet als Befehlszähler (PC). PC wird beim Abschluß jedes
Befehlsschritts inkrementiert und als Adrosseingangssignal für den Speicher 111 verwendet.
Kin externer Zugriff zur CPU 1 11\ und zum Speicher 111
wird über die E/A-Geräte 116 erhalt, en. Speziell können
parallele Digitalworter durch einen E/A-Daten-Bus 16Ö
übertragen werden. Serielle alphanumerische Eingangssignale und Ausgangssignale werden durch einen E/A-AScH-K-anal
17^ übertragen. Die E/A-Geräte 116 haben
direkten Zugriff zum ALUIN-Bus 12/+ und zum ALOOUT-Bus
126 und somit zur ALU 156· Der Zugriff in den Speicher
111 wird über den Weg erhalten, der den ALUIN-Bus 126, die ALU 156, den ALUOUT-Bus 12/+ und die
MEMIN-Register 162 aufweist. Ein Zugriff aus dem
Speicher 111 heraus wird erhalten durch das MKMOUT-Hegister 1if0, den ALUIN-Bus 12/+, die ALU 156 und einen
ALUOUT-Bus 126. Die über den Daten-Bus 168 übertragenen
Daten sind im allgemeinen im Format kompatibel mit der CPU I]I) und dem Speicher 111. Das ASC Il-Eingangssignal
muß jedoch in ein mit der CPU 11/+ und dem
030020/081 5
Speicher 111 kompatibles Format umgewandelt werden. Dies wird im allgemeinen im E/A-Gerät 116 erreicht oder als
getrennte Operation in der ALU 156 ausgeführt.
In Fig. 2 ist ein teilweise^ Blockdiagramm dargestellt,
das die Architektur eines die vorliegende Erfindung verwirklichenden Rechners 210 zeigt. Die Speicher-Eingabe-Busse
ADH 120a und DATA 120b wurden durch einen einzigen MEMIN-Bus 220 ersetzt. Ein Speicher 211 besteht aus
einem oder mehr Unterspeichern 21.5» von denen jeder ein vollständiger und in sich abgeschlossener Speicher ist,
der unabhängig arbeiten kann. Ein oder mehr UnterSpeicher 213 können parallel mit dem MEMIN-Bus 220 und
MEMOUT-Bus 218 verbunden sein, und wenn sie so angeschlossen sind, arbeiten sie gemeinsam als Rechner-Speicher
211. Dies erlaubt es, die Kapazität des Rechner-Speichers 211 entsprechend den Anforderung
des Benutzers zu strukturieren.
Die CPU 21 if hat zu den Ausgängen des Speichers 211 direkten
Zugriff durch den MEMOUT-Bus 218 und sein MEMOUT-Register 2/+0. Die CPU 21/+ hat auch einen direkten Eingabezugriff
durch sein MEMIN-Register 262. Der Speicher 211 überträgt jedoch nicht mehr die Befehle direkt zur
CPU 2Ii+ und zur ALU 256 durch den MEMOUT-Bus 218 und das
Befehlsregister 2/+6. Im Rechner 210 werden die Befehle
durch den MEMOUT-Bus 218 in einen Bereitstellungs-(pre-fetch)-prozessor
(PFP) 212 übertragen. Die Befehle werden vom PFP 212 zum Befehlsregister ZkG durch einen PFP-Bus ZZZ
übertragen. Zusätzlich empfängt die Mikrobefehl-Logik ZkZ Befohle direkt vom PFP 212 und nicht vom Befehlsregister
2/46. Diese Änderung in der Architektur
spiegelt eine Änderung in der internen Architektur der
030020/0815
29A4A19
Hihr\jbej'ehL-Iiogi!■ ^.ίμΐ wieder, die unten weiter bi.'schrirfbon
wird. Wi..; darp.-stej 11, hat. der I3FP 212 durch dun
HKH111-Bus 220 parallel mit der Gi1LJ 214 einen direkten Zugriff
".um Speicher 211.
Kim.· weitere Änderung in der Architektur de·υ Rechners
210 iot. do· Ki hl; chi uli eines Konsolen-ROM dv)6, der zwischen
den ALUOUT-Bus 22ü und den ALUIN-Bus 2^i1 eirige-
:;(;haltüt ist.
W>;i U.-re Herkmaj e des vorliegenden Rechnei-s, die ^o nie insam
mit andej'en später in dieser Anmeldung weiter ausge-((.-füiii'L
wi.Tclüii, .sind: Der ,'speicher 211 kann aus einer
An;:ah! von ein bis acht Unterspeichern 21 > bestellen. DIe1S
(■■estattet es, daii der Speicher 211 entsprechend den
BenutZijraniorderungen strukturiert wird.
Die Unterspeicher 213 der vorliegenden hrfindung sind
schnelle vierfach überlappte Speicher, die synchrone und unabhängige MEMIN- und MEMOUT-Busse versorgen. Die
Architektur des Unterspeichers 213 sieht eine Gpeicher-Eingabe/Ausgabe-Bus-Architektur
vor, die eine stark vereinfachte Schnittstellenschaltung zwischen der CPU 21^
oder anderen Geräten und dem MfclMIN-Bus 220 und MKMOUT-Bus
218 erlaubt. Ein weiteres Merkmal dieser Architektur
ist die Einfachheit, mit der eine interne Steuerung des Unterspeichers 213 durchgeführt wird. Die Architektur
des Unterspeichers 213 weist auch eine Datenwegstfuktur
auf, die es erlaubt, daß innerhalb einer einzelnen gedruckten Leiterplatte eine wesentlich größere
.Speicherkapazität untergebracht werden kann.
Das Auffrischen des Unterspeichers 213 wird durch eine
030020/0815
-H-
innerhalb des Unterspoichers 213 angeordnete Schaltung
erreicht, wodurch die der CPU 2Uf belasteten Gemeinkosten
verringert werden, und benutzt Speicherzugriffzyklen,
die nicht durch die CPU 21/4 oder den PFP 212 benötigt
werden, wodurch die nutzbare Zugriffszeit des Unterspeichers 213 vergrößert wird. Der Unterspeicher
213 ist transparent für eine Anordnung von Datenbits
in darin gespeicherten Datenwörtern, einschließlich Bits eines fehlerkorrigierenden Codes, wodurch eine
maximale Flexibilität bei der Daten-Befehls-Wortspeicherung geschaffen wird. Die Transparenz des
Unterspeichers 213 f"ur fehlerkorrigierende Codes
steigert die Durchlaufgeschwindigkeit des Unterspeichers
213 durch Übertragen der Fehlerkorrekturfunktion auf die CPU 21Z+.
Der PFP 312 führt eine Befehlsvorausschau für die CPU 21^ aus, indem er vom Speicher 211 eine Folge von Befehlen
vor dem gerade in der Ausführung durch die CPU 2 befindlichen Befehl abruft und speichert. Der PFP 212
verwendet Speicherzugriff-Zyklen, die nicht durch die
CPU 211+ benötigt werden, um die Bereitstellungsoperation
durchzuführen; dadurch vergrößert er die Befehlsausführungsgeschwindigkeit der CPU 21 i+, indem er die
von der CPU 21^ benötigte Zeit für den Zugriff zu Befehlen
verringert.
Die oben genannte interne Änderung in der Mikrobefehl-Logik 2if2 beinhaltet die Tatsache, daß ein internes
Register (in Fig. 28 gezeigt) für die Makrobefehl-Speicherung vorgesehen ist; dadurch wird das Befehls-Regioter
2^6 für eine andere Verwendung frei. Die Mikro
befehl-Logik 2^f2 weist außerdem eine Startadressengenerator(SAGH)-ochaltung
auf (in Fig. 28 gezeigt). Der
030020/0815
.'J AG I·; decoiliort direkt Befehle, die er vorn PFP 512
empfangen hat, um die ersten Adressen von Mikrobefehlsfolgen zu erzeugen· Der SAGE liefert dadurch einen unmittelbaren
Zugriff zu Mikrobefehlsfolgen, wobei er
die zum Veranlassen der Ausführung einer Mikrobefehlsfolge benötigte Zeit verringert.
Der Konsolen-ROM 2.^S gestattet «3, daß jedes externe
ASC II-Interface-Gerat die Tätigkeit des Rechners 210
direkt kontrolliert.
AiJC ll-ßefehle von einer externen Quelie werden direkt
in das im Rechner 210 verwendete entsprechende Maschinensprache
format umgewandelt. Dies verkleinert die zum Kontrollieren des Rechners 210 benötigte zugeordnete externe
Konsole. Die Übersetzung von ASC Il-Kingangsuigrialen in
KoIgon der Maschinensprache wird durch Lesespeicher (ROM)
gesteuert, so daß der Konsolen-ROM 258 leicht zur Anpassung
an ,jedes Eingabeformat und an jedes Maschinensprachen
format modifiziert oder vergrößert werden kann.
Nachdem die Struktur der Architektur und gewisse Merkmale
eines die bevorzugte Ausführungsform der vorliegenden
Erfindung verwirklichenden Rechners kurz beschrieben wurden, wird die Architektur und Wirkungsweise nun Im
einzelnen beschrieben.
2_j Rechnerarchitektur und Arbeitsweise (Fig. 3 und Ii)
A. struktur (Fig. 3).
in Fig. 3 ist ein detailliertes Blockdiagramm eines
Rechners '310 gezeigt, dessen Architektur die vorliegende
Erfindung verwirklicht. Wie oben für den Rechner 210 beschrieben wurde, weist der Speicher· 311 des Rechners
030020/0815
- ftf 35
29A4419
ein oder mohr Unterspeicher 315 auf. Der Ausgang des
Speichere 511 ist durch den MEMOUT-Bue 31b1 mit Eingängen
des MEMOUT-Registers 3^0 in der CPU 31 ^ und eines
Speichers 330 im PFP 312 verbunden. Der MEMOUT-Bus ist auch mit einer Fehlerkorrektur-Logik 319 (KRCC)
in der CPU 311\ verbunden. Der Ausgang des MEMOUT-Registers
-jl\0 ist mit dem ALUIN-Bus 32't verbunden und
der Ausgang des PFP-Speichers 330 ist mit einem PFP-Bus
322 verbunden. Der PFP-Bus 322 ist mit dem ALUIN-Bus 32^ verbunden durch einen Transfer-Bus 3^8, einen
Bus "kurze effektive Adresse" (EFA) 350 und das Befehlsregister
3^6. Der PFP-Bus 322 ist mit Eingängen
der Mikrobefehl-Logik 3*f2 und einer Speicher-Zuordnungsund
-Schutz-Schaltung (MAP) 35*t verbunden. Der Ausgang
der Mikrobefehl-Logik J>l\2 ist über ein Mikrobefehlregister
(uIR) 3kk mit dem ALUIN-Bus 32-k verbunden.
Der ALUIN-Bus 32^i ist mit einem Eingang der ALU 356
verbunden. Ein erster Ausgang der ALU 356 ist mit dem
ALUOUT-Bus 326 verbunden, und ein zweiter Ausgang ist
mit einem Eingang des MAP 35*f verbunden. Der ALUIN-Bus
326 ist mit dem ALUIN-Bus 32/f durch einen SWAP-Bus
36O und den Konsolen-ROM 358 verbunden, und mit dem PFP-Bus 322 durch ein Register 352. Der ALUOUT-Bus
326 ist mit Eingängen eines CPU-Befehlszähler (CPUPC)-Registers 364 und eines Registers332 "Befehlszähler
für den vom PFP abgerufenen Befehl (PCF)". Der Ausgang des CPUPC-Registers j>6k ist verbunden mit dem
ALUIN-Bus 32k, einem Eingang einer PFP-Bereit(PFPRDY)-Logik
33*f, und mit dem Leseadresseneingang des PFP-Speichers
33O. Der Ausgang des PFPPCF-Registers 332
ist mit einem anderen Eingang der PFPRDY-Logik 334
verbunden, und mit dem Schreibadresseneingang des PFP-Speichers 330. Der ALUOUT-Bus 326 ist mit einem
030020/081 5
Eingang des Mi'JMIN-Registers 362 durch einen Bus 326a verbunden,
mit einem "Hoher-Stellenwert-Adresse" (HIADR)-Bus 328 durch einen Bus 328b, und mit einem Eingang eines
Registers 336 "Befehlszähler für den vom PFP angeforderten
Befehl (PCR)". Die Ausgänge des MAP 3^4 sind mit dem ALUIN-ßus
324 und dem HlADR-Bus 328 verbunden. Der HIADR-Bus 328 ist
mit dem ALUIN-Bus 324 durch den Transferbus 366 verbunden. Der HIADR-Bus 328 ist mit Eingängen des MEMIN-Registers
362 und des PFP PCR-Registers 336 verbunden. Die Ausgänge des MEMIN-Registers 362 und des PFP PCR-Registers
336 sind mit dem MEMIN-Bus 320 verbunden, der mit dem Eingang des Speichers 311 und mit dem ERCC 319 verbunden
ist. Der Ausgang des PFP PCR-Registers 336 ist mit einem Eingang einer"Schreiben Laufender Block"-Logik (WCB)
538 verbunden, und der MEMIN-Bus 3?0 ist mit einem anderen
Eingang des WCB 338 verbunden. Ein Takt- und Steuer-Bus
(CC) 321 ist zwischen den Speicher 311, die CPU 3I4
und den PFP 312 eingeschaltet. Der Daten-E/A-Bus 368 ist mit dem ALUIN-Bus 324 durch einen Bus 370 verbunden,
und mit dem ALUOUT-Bus 326 durch einen Bus 372.· Der
E/A-ASC II-Kanal 374 ist mit dem ALUIN-Bus 324 und dem
ALUOUT-Bus 326 durch einen Universellen-Asynchronen-Empfänger/Sender
(UART) 376 verbunden.
B. Befehlswö'rterund Datenwörter (Fig. 4)
In Fig. 4 sind bestimmte im Rechner 310 verwendete Befehlswörter und Datenwörtergezeigt. Es sind dies Wörtermit 21 Bit,
die in der CPU 314, im PFP 312 und im Speicher 311 verwendet
werden.
In Zeile 1 der Fig. 4 enthalten die Bits 0 bis I5 eines
Datenworts aktuelle Daten; die Bits 16 bis 20 umfassen 5 Bits eines fehlerkorrigierenden Codes.Obwohl diese Struktur
030020/081 5
-2G-
bei der hier beschriebenen bevorzugten Ausführungsform verwendet wird, ist der Speicher 311 für die Datenwortorganisation
transparent und wird jedes Wort bis zu 21 Bit annehmen, speichern und auslesen.
In Zeile 2 der Fig. ^ ist ein logisches Adresswort gezeigt.
Wie unten weiter ausgeführt wird, wird ein Abschnitt des logischen Adressworts in dem CPU PC-Register 5£>k als
CPUPC gespeichert. CPUPC wird durch die CPU 31k verwendet,
um die Adresse des Spoichers 311 für den gerade in Ausführung
befindlichen Programmschritt einer Folge von solchen Schritten und Adressen anzuzeigen. CPUPC wird
in geeigneter Weise bei der Ausführung jedes Programmschritts inkrementiert. Das Bit 0 der logischen Adresse
wird im allgemeinen, aber nicht notwendigerweise als ein indirektes Adress-Bit verwendet; es zeigt dabei an,
daß der unter diese Adresse im Speicher 311 gespeicherte Befehl eine Adresse ist, die zu dem gewünschten Befehl
führt. Die Bits 1 bis 15 enthalten die aktuelle logische Adresse. Von diesen Bits sind die Bits 6 bis 15 die niedrigwertigen
Bits der Adresse und sie werden beim Adressieren des Speichers 311 direkt verwendet. Die Bits 1 bis 5 umfassen
die hohen Stellenwerte der Adresse und sie können, wie unten noch erläutert wird, als direkte echte Adresse
verwendet werden. Die Bits 1 bis 5 können auch, wie unten noch weiter erläutert wird, als kartierte (MAPped) oder durch
MAP verarbeitete Bits bei Übersetzung einer logischen Adresse in eine echte Adresse im Speicher 311 verwendet werden. Das
kartierte Adressieren gestattet einem Benutzer den Zugriff zu einem Speicherraum innerhalb des Speichers 3111 dur größer
sein kann als bei direkter Adressierung mit 15 Bits der logischen Adresse. Das Kartieren wird auch verwendet, um
030020/0815
Adressenblcicki.; innerhalb des Speichers .511 unterschiedlichen
konKurrierenden Benutzern zuzuordnen. In ,jedem
Falle werden 15 Bits der lugischen Adresse in dO Bits der
echten Adresse übersetzt.
Zeile 3 von Fig. /j zeigt die echte Adresse, wie sie auf
dem MEMIN-I3ua 320 an den Speicher 311 geliefert wird. Wie
unten noch naher beschrieben wird, hat ein Unterspeicher 313 innerhalb des Speichers 311 die Struktur von vier
Speicher-Moduln, von denen jeder zwei Speicherbänke enthalt, wobei .iede Speicherbank als ein Adressenraum mit
128 Reihen mal 128 Spalten organisiert ist. Jeder Unterspeicher 31 *>
ist vorzugsweise innerhalb einer einzelnen
Leiterplatte enthalten, und der Speicher 511 kann bis zu
acht solche Unterspeicher 313 enthalten. Demzufolge enthalten
die BiLs 1b bis 18 der echten Adresse die Leiterplatten-Auswahl-Bits der Unterspeicher 313·
Die Bits 1/+ und 15 enthalten Modul-Auswahl-Bits innerhalb
eines Unterspeichers 513. Das Bit 19 bildet ein Bankauswahlbit
innerhalb eines von vier Moduln eines Unterspeichers 313. Die Bits 0 bis 6 werden als Zeilenadressbits
innerhalb einer solchen Bank verwendet, und die Bits 7 bis 13 werden als Spaltenadressbits verwendet. Das Bit
20 wird nicht verwendet, es ist für eine zukünftige Erweiterung des Speichers 3I1 reserviert.
Zeile if von Fig. if zeigt die Verwendung einer logischen
Adresse als direkte echte Adresse. Die Bits 1 bis IS der logischen Adresse werden direkt als Bits 1 bis ]L) uer
echten Adresse verwendet. Das Bit 0 und die Bits Io bis der echten Adresse werden zwangsweise auf O gebracht.
Wie durch .iaü echte Adreaawort in Zeile ;■ gezeigt ist,
030020/0815
hat jeder Unterspeicher 313 t?ine Adressierfähigkeit von
128K Worten (K = 102i+), und der Speicher 311 hat mit acht
Unterspeichern 313 eine maximale Kapazität von 1.000.000
Worten. Wie in Zeile k gezeigt ist, erlaubt das direkte echte Adressieren (Adressenbits 1 bis 15) einem Benutzer
einen Zugriff zu nur 32K (215) Worten des Speichers. Eine
direkte echte Adresse kann eine Leiterplatte des Speichers 313 (die Bits 16 bis 19 sind 0), alle vier Module der
Leiterplatte (Bit 1/f und 15) und eine Bank in jedem Modul
(Bit 19 ist 0) adressieren. In jeder Bank sind alle 128 Spalten verfügbar (Bits 7 bis 13), aber nur die Hälfte der
Zeilen (Bit 0 ist 0). Kartieren ist erforderlich, um einen Zugriff zum gesamten Speicherraum des Speichers 311 oder
eines Unterspeichers 313 zu gewinnen.
Zeile 5 der Fig. k zeigt die übersetzung einer logischen
Adresse in eine kartierte echte Adresse. Die Bits 6 bis der logischen Adresse werden als Bits 6 bis 15 der echten
Adresse verwendet. Die Bits 1 bis 5 der logischen Adresse werden durch MAP übersetzt in die Bits 0 bis 5 und 16 bie
19 der echten Adresse. Zwanzig Adressbits 0 bis 19 erlauben daher dem Benutzer den Zugriff zur vollen Kapazität
des Speichers 311 oder eines Unterspeichers 313·
C. Arbeitsweise (Fig. 3)
Es wird wieder auf Fig. 3 Bezug genommen; die CPU 3H hat
direkten Zugriff zum Speicher 311» um Befehle und Daten in den Speicher 311 einzuschreiben oder aus ihm auszulesen.
Die CPU 3H hat auch einen indirekten Zugriff zum Speicher 311 durch den PFP 312, der die vor dem gerade
durch die CPU 3H ausgeführten Befehle liegenden Befehle
abruft und speichert.
030020/0815
Zunächst wird der direkte Zugriff zwischen der CPU 314
und dem Speicher 311 betrachtet. Das Ausgangssignal des Speichers 311 wird direkt dem ALUIN-Bus 324 und der ALU
356 durch das MEMOUT-Register 340 zugeführt. In ähnlicher
Weise hat die ALU 356 direkten Zugriff zum Eingang des Speichers 310, um direkt Daten oder Befehle durch den
ALUOUT-Bis 326 und das KEMIN-Register 362 einzugeben oder
anzufordern. Datenworte werden dem MEMIN-Register 362 direkt von dem ALUOUT-Bus 326 zugeführt, jedoch hängt die
Lieferung von Adressen an den Speicher 310 davon ab, ob
der Benutzer eine direkte Adressierung des Speichers oder eine kartierte Adressierung verwendet. Beim direkten
Adressieren werden die logischen Adress-Bits 6 bis 15 dem
MEMIN-Register 362 durch den Bus 326a zugeführt; die logischen Adressbits O bis 5 und die Bits 16 bis 19 werden
durch den Bus 326b und den HIADR-Bus 328 hindurchgeliefert. Wenn eine Kartierung verwendet wird, werden die logischen
Adressbits 6 bis 15 dem MEMIN-Register 362 von dem ALUOUT-Bus 326 und dem Bus 326a zugeführt. Die logischen Adressbits
1 bis 5 werden von der ALU 356 der MAP 354 zugeführt·
Die MAP 354 übersetzt die logischen Adressbits 1 bis 5
in entsprechende Bits O bis 5 und 16 bis 19 der echten Adresse und liefert diese Bits durch den HIADR-Bus 328
an das MEMIN-Register 362.
Es wird nun der indirekte Zugriff zwischen der CPU 314
und dem Speicher 311 betrachtet. Der PFP 312 führt eine
Befehlsvorausschau für die CPU 314 durch, indem er eine
Folge von Befehlen vor dem augenblicklich durch die CPU 314 ausgeführten Befehle aus dem Speicher 31O abruft und
speichert. Die CPU 314 verfolgt das gerade ausgeführte
Programm durch Speicherung eines Teils der logischen Adresse des gerade ausgeführten Befehls in dem CPU PC-Register
364; diese Zahl wird als CPU-Befehlszählerstand
030020/0815
(CPUPC) bezeichnet. Der anfängliche Befehlszählersland
einer Befehlsfolge wird in das CPUPC-Registor f>bh von
der AHJ 3% durch den ALUOUT-Bus 326 geladen. Der Befehlszählers
tand wird dann jedes Mal, wenn ein Befehl ausgeführt lot, um 1 inkrementiert, falls Befehle aus dem
Speicher 311 aufeinanderfolgend abgerufen v/erden müssen.
Falls der laufende Befehl einen Sprung oder eine ähnliche Operation erfordert, wird ein neuer Befehlszählcrstand
in das CPUPC-Register ^Gk geladen. Die echte Adresse
des ersten Befehls der Befohlsfolge wird in das PFPPCR-Register 336 als Wert PFPPCR geladen. Wie beim Laden der
Adressen in das MEMIN-Register 362 können die echten
Adressen direkt oder kartiert sein. Wenn sie direkte Adressen sind, wird die echte Adresse von der ALLf 3% durch
den Bus 526c geliefert. Wenn die MAP 35^ arbeitet, werden
die Bits 6 bis 1S durch den Bus 326c und die kartierten
Bits I bis lj und 6 bis 9 durch den HIADR-Bus 328 hindurch
von der MAP 35*t her geladen. Zur gleichen Zeit werden die
niedrigstwertigen Bits 12 bis 15 der echten Adresse in das
PFP PCF 332 als PFPPCF geladen. Daher repräsentiert der Befehlszählerstand (CPUPC) die erste logische Adresse der
Folge oder Sequenz, während Pi1PPCR und PFPPCF die erste
echte Adresse repräsentieren.
Danach kann bei jedem verfügbaren SpeicherzugriffZyklus,
der nicht für andere Zwecke, beispielsweise von der CPU 3H oder den E/A-Geräten 316 benötigt wird, die echte
Adresse PFPPCR im PFPPCR-Register 336 auf den MEMIN-Bus
520 gegeben werden, um den entsprechenden gespeicherten
Befehl aus dem Speicher 311 zu lesen. Ein durch PFPPCR angefordertes Wort, das auf dem MEMOUT-Bus 318 erscheint,
wird im PFP-Speicher 330 unter einer durch PFPPCP1 bestimmten
Adresse gespeichert. PFPPCR und PFPPCF worden immer
030020/0815
dann inkremeritlert, wenn ein Wort aus Jörn Speichor 31
gelesen wird. Das PFPPCR-Register 336 erzeugt hierdurch
und verfolgt angeforderte Adressen; das PFPPCR-Register 332 verfolgt abgerufene Adressen und wählt die Speicheradressen
im PFP-Speicher 330. Das WCB 338 vergleicht die durch PFPPCR angeforderten Adressen mit durch die CPU 3 H
eingeschriebenen Adressen und gibt eine Warnung ab, falls die CPU 31k in die durch den PFP 312 angeforderten Befehlsadressen
schreibt.
Die Übertragung von Wörtern von PFP-Speicher 330 zur
CPU 3H wird durch das CPUPC-Register 36if und die PFPRDY-Logik
33h gesteuert. Der im CPUPC-Register 364 gespeicherte
Befehlszählerstand (CPUPC) wird als Leseadresse zum PFP-Speicher 330 geliefert. Dadurch werden
Befehle im PFP-Speicher 330 auf den PFP-Bus 32.2 übertragen
und sind für die Mikrobefehl-Logik 3k2 und das
Befehlsregister 546 zur Benutzung verfügbar, wie es vom
Programm verlangt wird. Der PFPRDY 33h vergleicht PFPPCF-Schreibadressen
mit CPUPC-Leseadressen und zeigt der CPU 314 an, ob der PFP 312 den von der CPU 314 angeforderten
nächsten Befehl hat.
Ks werden nun andere Merkmale der CPU 314 besprochen.
Die ERCC-Logik 319 überwacht alle Datenwörter oder Befehlswörter, die in don Speicher 311 eingeschrieben oder
aus ihm ausgelesen werden. Die ERCC-Logik 319 erzeugt FehlerkorrekturbüB der durch den MEMIN-Bus 320 in den
Speicher 311 geschriebenen Wörter. Wenn ein einen Fehler
enthaltendes ausgolesenes Wort auf dem MEMOUT-Bus 318
erscheint, verhindert die ERCC-Logik 319 eine Ausgabe des Speichers 311 und erzeugt ein korrigiertes Wort. Die
ERCC-Logik 319 bringt das korrigierte Wort auf den
030020/081 5
HHM(J UT- Bus 31Ö anstatt des fehlerhaften Worts. Der Transfer-Bus
yL\a gestattet es, das:.; Wörter auf dem PFP-Bus Ü2
direkt zur ALU ■■>% durch den ALUIN-Bus ;j2i\ übertragen werden.
Der Bus "kurze effektive Adresse" 350 gestattet es,
daß die acht niedrigstwertigen Bits des Worts auf dem PFP-ßUG :)22 zum ALUIN-Bus 32*+ als eine kurze effektive
Adresse übertragen werden, d.h., zum Erzeugen ein.: r
SpeicheradresGe, die mit einer z.Zt. bekannten Speicheradresse in Beziehung stellt. Das Register 352 gestattet es,
dall das Ausgangssignal der ALU 356 auf dem ALUülJT-ßus ->2G
auf den LJFP-Bus 322 übertragen wird, beispielsweise als
Eingangssignal für die Mikrobefehl-Logik 3'f2, üas Befehlsregister
yiy(j oder den MAP :öl\. Dor SWAP-Bus 360 gestattet
es, daß Bytes auf dem ALUÜUT-Bus 326 umgekehrt werden
und auf dem ALUIN-Bus 32/| als ein Eingangssignal für die
ALU 356 angeordnet werden. Der Transferbus 366 gestattet
es, daß eine Adresse auf dem HIAÜR-Bus 523 auf den
ALUIN-Bus yZk übertragen wird.
Es wird nun auf die E/A-Geräte 316 und den Konsolen-ROM y_?8
Bezug genommen. Der E/A-Datenkanal 368 und die E/A-Busse 370 und 372 gestatten es, daß Daten zwischen dem ALUIIi-Bus
32^f oder dem ALUOUT-Bus 326 und einem externen Gerät
übertragen werden. In ähnlicher Weise gestattet der UART 376 eine Übertragung von Daten und Befehlen zwischen
dem ALUIN-Bus 32Z1. oder dem ALUOUT-Bus 326 und einem
externen Gerät, das am E/A-ASCII-Bus 37^ angeschlossen
ist. Der Konsolen-ROM 358 ist ein Interface-Gerät, das
es gestattet, daß irgendein externes Gerät mit beispielsweise einer ASCII-Schnittstelle als Rechnerkonsole arbeitet.
Externe ASCII-Zeichen werden durch den UART 376 empfangen, in einen binären Code umgesetzt und auf den
ALUIH-Bus 52if gebracht. Sie werden unter Verwendung der
030020/0815
- '47 -
ALU VjC verarbeitet und erscheinen auf ALUOUT >2t, als
Konsolon-h'OM (//je")-Adressen. Die Adressen auf dem ALUOUT-Bus
>-'C werden dann in Befehle in Maschinensprache durch
den Konsolen-ROM j'jti übersetzt.
Nach der Beschreibung der Architektur und der Arbeitsweise
des K'eclrers j>10 auf der "-Jbene eines Blockdiagramms wird
nun im einzelnen die Struktur und Arbeitsweise einos Unter
speichers 313, des PFP 312, der Mikrobefehl-Logik ^i[Z und
des Konsolen-ROM 3bÖ beschrieben.
Unteropeiclicr
p\'^i
(Fign«
Jeder Unterspeicher ~j>] j>
mag zugänglich sein als ein dynamischer .Speicher mit 128K (K = 102^) Wörtern mit einer
Länge von 21 Bit, der auf einer einzelnen Leiterplatte montiert ist, Vierfach-Uberlappung und getrennte Kingangsund
Ausgangs-Busse aufweist. Eine spezielle Struktur des Unterspeichers 313 gestattet es, daß bis zu acht solche
Leiterplatten parallel geschaltet werden, so daß hierdurch
für den Speicher 311 eine Kapazität von bis zu
1.000.000 Wortern geschaffen wird. Man beachte, daß andere Strukturen für den Unterspeicher 313 verwendet werden
können. Beispielsweise kann der Unterspeicher 313 eine
Wortlänge von 16 oder 32 Bit haben, oder er kann eine andere
Anzahl als 128K Wörter enthalten. Die Dauer der Zyklusperiode dos Unterspeichers 313 beträgt ifOO ns und die
Dauer der Zyklusperiode des i^ingangs/Ausgangs-Bus ist 100 ns. Die Zugriffszeit zum Lesen betragt 500ns, die
Zugriffszeit zum Schreiben 200 ns, und das Auffrischintervall beträgt 12,8/^3. Ea wird darauf hingewiesen, daß
andere Parameter und Perioden verwendet werden können.
Di*.· Struktur des Unterspeichers yi y wird zuerst auf dor
030020/081 5
0-5
i11)l:iu.: '.UiIUiJ Blockuiagrnr.mis beschrieben, gefolgt vom einem
dom liLockdiagrarun angepaßten Glossar, das die sun Verständnis
der Arbeitsweise dec Untorspeichers IAy nützlichen
Signale dos Unterspeichers 'Ay definiert. Die Arbeitsweise
aas Unlercpeichers 31.3 wird dann auf der Ebene decs Bloekdiagramms
und mit Hilfe von Zeitdiagramnien diskut\ ort.
i'.!s worden dann detaillierte ,Schemata von ochaltunjTon darpele/^t,
die bei einer bevorzugten Ausfuhruu^sform der>
Unterspeichers 313 verwendet sind, und einige Merkr.ia.le
des Unterapciciiers 313 werden aufgeführt.
Λ. ünterspeicher 313, Struktur (Fig· b)
In Fig. lj ist ein Blockdiagramm des Unterspeicliers 313 gezeigt.
Diu Organisation des ünterspeichers 313 v/eist
vier identische opeichermodule 512, 51^, 516 und 518 auf.
Die Module 51 i|, 516 und 51 ο sind als Skelett ohne die
im Modul 512 gezeigten Einzelheiten aus Gründen der Klarheit der Darstellung gezeigt. Es wird daher die Struktur
und Arbeitsweise der Module 512 bis 518 anhand des Moduls
512 diskutiert. Daten- und Adress-Busse worden durch
parallele Linien angezeigt, und .Steuerbusse durch einzelne
ausgezogene Linien.
Joder Modul weist zwei identische Bänke 520, 522 mit wahlfreiem
Zugriff (RAM) auf, einen Zoitgebergeneratur 52/),
ein Zeilenadress-Spoicher-Flipflop (latch) 526, ein Spaltenadress-Speicher-Flipflop 528 und Speicher-Treiberschaltungen
532 auf. Wie unten in der Schaltungsboschreibung gezeigt wird, kann jede Speicherbank 520 oder 522
21 Speicherelemente aufweisen. Jedes Element kann ein Speicher mit wahlfreiem Zugriff (RAM) mit einer Länge von
030020/081 5
IbK (Ib./Ö^i «Vortor) und einer Breite von 1 Bit soin, dor intern
eine Anordnung; mil 12o Zeilen mal 12ΰ Spalten aufweist»
Die 21 opiicherelemen Lo sind daher in der Lage,
IbK .? T "bit-Wort or zu speichern.
Der !-11','HIN-BUiJ >'O ist mit Kingängon einer Pufferachaltung
534 verbunden, die entsprechende AuGgangssignale an einen
'ftpeichoroingari^O-llJ-BuG 535 liefert. 21 Zeilen des MI-Bug
5;55 Gxnd mit Kin^än^en eineü Üaten-Gpeicher-Flipflop 1J^G
verbunden, und ein"Dateneinf;an^" (DI)-Buü l)Yf iat direkt
mit den Dativnein^änncn der Bänke v/cl0 und l}'dcl der Module
\A'il bi.:j \A6 verbunden.
lüii Ij' iti-M-platten-, Modul- und Bank-Auswahlbuc
\>y)) i:;t zwinchon den MI-Buu 53i? und Eingänge einer
;;peicherlü{;ik 1JyIi eingeschaltet. Kin ZeilenadroG3(RA)-Bua
ι)Ζ'ί und ein jpaltenadreüs(CA)-BuG '^29 verlaufen vom
Hi-Bins iyy.>
zu Kinßängen der Zeilenadress-.Speicher-['nlipfiopij
hZb bzw. der Spaltenadress-Speicher-Flipf 1 opa ^28
der Module 51,2 bic !51 ö. Die Aufgänge der Speicher-Klipi'lop.'j
526 und 52Ö v/erden als Adress-Bus (ADL'-Buu) i?30
zu Kingängen der Treibcrcchaltungui 532 geführt, rJin
AdrecGenauffriach-BuG 531 (I^FADK-Bug) von der opeicher-Logik
ly)'o Gteht mit anderen Eingängen der TreiberGchaltun/,O!i
5>2 der Module 512 biG 51 ο in Verbindung. FeIdadre-GGen
(A)-ßUG:je 53t Gind mit den Treibercchaitungon
l)-j2. zum AdroGGiereri der ivingängo der Bänke 520 und 522
verbunden»
I)i(j DatenauGgängu der Bänke 520 und 522 jeuea Gpeicher-Moduls
Gj.nd durch verdrahtete ODKH-Funktioneii beschallet,
um DatenaUor:ani;G-(DO)BuSGC DoA-Bug 513 biG DOD-Bus 519
der entsprechenden Module 512 bis 518 zu schaffen»
030020/0815
29444Ί9
DOA-Bus 513 bis DOD-Bus 519 sind mit Eingängen eines Ausgangsmultiplexers
(MUX) 540 verbunden. Ein Multiplexerausgang (MO)-Bus 5Ί1 ist mit Eingängen von Ausgaberegistern
542 bis 548 verbunden. Registerausgangs(RO)-Busse 543 bis
549 sind mit verdrahteten ODER-Funktionen versehen, um
einen Ausgabe(O)-Bus 551» der zum Eingang einer Bustreiberschaltung
550 führt, zu schaffen. Der Ausgang der Buctreiberschaltung
550 ist mit dem MEMOUT 318 verbunden. Eine Steuerleitung MOENB (aus Gründen der Deutlichkeit der Darstellung
nicht gezeigt) ist vom Ausgang der Bustreiber-Gchaltune;
550 zu einem Eingang, beispielsweise der CPU 314
geführt.
Ein Steuer- und Takt(CC)-Bus 321 ist zwischen die Speicher-Logik 53Ö, den Puffer 534, die CPU 314 und den PFP >12 geschaltet.
Die Speicherlogik 538 und die Zeitgebergeneratoren
524 der Module 512 bis 518 sind untereinander durch
einen Speichersteuer(CTL)-Bus 555 verbunden. Ein Auffrischsteuer(REF)-Bus 557 von der Logik 538 ist mit Eingangen
der Zeitgebergeneratoren 524 und der Speicher-Treiberschaltungen
532 der Module 512 bis 518 verbunden.
Ein Ausgäbesteuer(OUTCNTL)-Bus 559 von der Speicherlogik
538 ist mit Eingängen des Multiplexers 540, der Ausgaberogister 542 bis 548 und der Bustreiberschaltung 550 verbunden.
Obwohl aus Gründen der Deutlichkeit der Darstellung nicht gezeigt, verläuft eine Steuerleitung DATAINLATCH
von der Speicherlogik 538 zu einem Eingang des Daten-Speicher-Flipflop 536, und eine Steuerleitung MEMWRITE
ist von der Pufferschaltung 534 zu Eingängen der Speicher-Flipflops
526 und 528 geführt. Eine Steuerleitung MEMSTART vom Puffer 534 ist mit einem Eingang der Speicherlogik 538
verbunden.
030020/0815
- rf -
561 sind mil Eingang«.;η der
Spoiciior-Flipflops 526 und 52ü dor Modulo 512 bis 51 δ verbunden.
Müdul-Steuur-(MEM)-Buose 563 sind über die
Speicher-Treiberschaltungen 532 mit Eingängen der Bänke und 522 der Module 512 bis 51S verbunden.
B. Unterspeicher 313, Signal-Glossar
Das folgende Glossar identifiziert und definiert für die
Zwecke der folgenden Diskussion jedes Signal, das in den Bussen und Steuerleitungen vorhanden ist, die oben
in der Struktur des Unterspeichers 313 genannt wurden.
Andere Signale werden, wenn nötig, während der Diskussion der detaillierten Schaltung des Unterspeichers 313 eingeführt
und definiert werden.
(1) MEMIN-Bus 320: (MEMORY IN) Eingabebus mit 21 Leitungen von der CPU 3Uf oder dem PFP 312, der
Daten und Adressen transportiert.
(2) CC-Bus 553: (Control and Clock) führt Steuer- und Taktsignale zwischen dem Puffer 534, der
Speicherlogik 538, der CPU 31k und dem PFP 312.
(a) MEMWRITE: (MEMORY WRITE) Steuersignal, das anzeigt, daß Daten in den Unterspeicher 313 geschrieben
werden sollen.
(b) MEMSTAHTi (MEMORY START) Steuersignal, das anzeigt,
daß ein Lese- oder Schreibzyklus des Unterspeichers 313 veranlaßt werden soll.
(c) INHSEL: (INHIBIT SELECT) Inhibit «Tür den Unterspeicher
313; gestattet, daß eine Mehrzahl von Geräten, die dasselbe Adressenfeld wie der
Speicher 311 verwenden, mit dem MEMIN-Bus 320 und dem MEMOUT-Bus 31B ohne Adressierungskonfl-uit
verbunden werdenβ
•(Blockiersignal)
030020/081 5
(d) MEMWAITz(MEMORY WAIT) verzögert die Tätigkeit des
Unterspeichers 313 nach dem Adresaeren des Unterspeichers 313; wird verwendet, wenn der Unterspeicher
313 beispielsweise mit einem langsameren
Speicher in Verbindung steht.
(e) 20CLK: 50 ns-Taktsignal·
(f) MEMCLK: 100 ns-Takt in Phase mit 20CLK.
10CLK: 100 ns-Takt, phasensynchronisiert mit 20CLK.
(g) PWROK: (POWER OKAY) Signal von der Stromversorgung des Rechners, das bevorstehende Auftreten eines
Fehlers der Stromversorgung anzeigt.
(h) MEMSORRY: (MEMORY SORRY) Steuersignal vom Unterspeicher 313 an die CPU 31 *f» das anzeigt, daß eine
angeforderte Speicheradresse gegenwärtig nicht verfügbar ist; der Speichermodul, in dem sie angeordnet
ist, führt z.Zt. gerade einen Speicherlese- oder Schreibzyklus aus.
(i) MOENB: (MEMORY OUTPUT ENABLE) Signal vom Bustreiber 550 an beispielsweise die CPU 3Hf, das anzeigt, daß
ein ausgelesenes Wort vom Speicher 313 auf dem MEMOUT-Bus 318 vorhanden ist.
(j) MODIS: (MEMORY OUTPUT DATA INHIBIT) Inhibitsignal
von beispielsweise der ERCO-Logik 319 in der CPU 314, das eine Ausgabe des Unterspeichers 313 an
den MEMOUT-Bus 318 verhindert.
(3) MEMOUT-Bus 318: (MEMORY OUT) Ausgabebus des Unterspeichers
313 mit 21 Leitungen. Interne-Daten- und Adress-Busse:
(a) MI-Bus 535: (BUFFERED MEMORY IN) Daten- und Adress-Bus
mit 21 Leitungen.
(b) DI-Bus 537: (DATA IN) Datenbus mit 21 Leitungen an
alle Bänke 520 und 522.
(c) DOA/DOD-Busse 513/519: Datenausgabebusse mit 21 Leitungen von den Speichermodulen 512 bis 518.
030020/0815
(d) MO-Bua 1JW: (MEMORY MULTIPLEXOR OUTPUT) Datenausgabebus
rait 21 Leitungen vom Ausgabemultilexer
5^+0·
(e) RO-Busse 5^3 - 5^9: Ausgabebusse mit 2.\ Leitungen
von den Registern 5^2 bis 5^-8.
(f) O-Bus 521: (OUTPUT) Eingabebus mit 21 Leitungen für
die Bustreiberschaltung 550.
(g) RA-Bus 527: (ROW ADDRESS) Bus mit sieben Leitungen
für die Zeilenadressinformation vom MI-Bus 535·
(h) CA-Bus 529: (COLUMN ADDRESS) Bus mit sieben Leitungen
für die Spaltenadressinformation vom MI-Bus 535.
(i) ADR-Bus 530: (READ/WRITE ADDRESS) Bus mit Zeilenoder Spaltenadressinformation mit sieben Leitungen,
(j) REFADR-Bus 531: (REFRESH ADDRESS) Bus mit Auffrischadresseninformation
mit sieben Leitungen, (k) A-Bus 533: (ADDRESS) Bus mit Adresseninformation
vom ADR-Bus 530 oder REFADR-Bus 531 mit sieben Leitungen.
(1) BMS-Bus 539: Adressbits für die Auswahl der Leiterplatte,
des Moduls und der Bank vom MI-Bus 535. (5) Steuer-Busse und -Leitungen:
(a) CNTL-ßus 555: (MEMORY CONTROL)
(al) MODSTART (512, 5H, 516, 518): (MODULE START)
Signale von der Speicherlogik 538 an die Zeitgebergeneratoren 52^f der Module 512 bis 518,
die anzeigen, daß der entsprechende Modul einen Spoicher-Lese- oder Schreibzyklus
veranlassen soll»
(a2) MOD (512, 51 if, 516, 518) SEL (O, 1): (MODULE
SELECT) Signale von der Speicherlogik 533 an die Zeitgebergeneratoren 52-k der Module
üb 518, die anzeigen, daß die Adresse in der Bank 520 (O) oder der Bank 522 (1) des zugeordneten
Moduls liegt.
030020/0815
(a.5) MOD (512, 514, 516, 51Ö) RDY: (MODULE READY)
Signale von den zugeordneten Zeitgebergeneratoren 52if der Module 512 bis 518, die anzeigen,
ob die zugeordneten Speichermodule einen Lese/ Schreib-Zyklus ausführen, oder ob sie für einen
Zugriff verfügbar sind.
(a/f) ACCESSMOD (512, 5H, 516, 518) : (ACCKSS
MODULE) Signale von den zugeordneten Zeitgebergeneratoren 52if der Module 512 bis 518 an die
Speicherlogik 538, die anzeigen, daß vom
entsprechenden Modul angeforderte Daten auf dem zugeordneten Modul-Ausgabe-Bus DOA-Bus
513 bis DOD-Bus 519 verfugbar sind.
(a5) MEMCLK, 10CLK, 20CLK: Gepufferte Taktsignale
von der Speicherlogik 538 an die Zeitgebergeneratoren 52if der Module 512 bis 518;
MEMCLK, lOCLK, 20CLK werden in der Speichorlogik 538 verwendet,
(b) MUX-Bus 561: (ROW/COLUMN ADDRESS MULTIPLEX)
(b1) RADRENBMOD (512, 51 if, 516, 518) (ROW ADDRESS
ENABLE) Aktivierungssignal an das Zeilenadressen-Speicher-Flipflop
526 zum Übertragen der Zeilenadresse auf den ADR-Bus 530.
(b2) CADRENBMOD (512, 51if, 516, 518) (COLUMN ADRESS ENABLE) Aktivierungssignal an das
Spaltenadress-Sjaeicher-Flipflop 528 zur Übertragung
der Spaltenadresse auf den ADR-Bus 530.
(b3) MOD (512, 51if, 516, 518) LATCH: Taktsignal
an die Speicher-Flipflops 526 und 528 zur
Übertragung der Zeilen- und Spalten-Adresse auf dem RA-Bus 52? und dem CA-Bus 529 in die
Speicher-Flipflops 526 und 528.
030020/0815
- *fj -
(c) MWM-ßus %S>: (MODULE CON'J'ROL)
(el) WE: (WRITE ENABLE) Schreibaktiviersignal an
die Speicherelemente in den Banken 520 und 522.
(c2) CAS: (COLUMN ADDRESS STROBE) Spaltenadreoe-
einblendsignal an die Speicherelemente in den Bänken 520 und 522, das bewirkt, daß die
Speicheradressen auf dem A-Bus 533 in die Speicherelemente übertragen werden·
(c3) RAS (0, 1): (ROW ADDRESS STKOBE) Zeilen-
adresseinblendsignal an die Bänke 520 bzw. ^ZZ1 das bewirkt, daß die Zeilenadressinformation
auf dem A-Bus 533 in die Speicherelemente der Bänke 520 bzw, 522 übertragen
wird,
(d) REF-Bus 557: (REFRESH COOTROL)
(dl) REFADRSET: (REFRESH ADDRESS SET) Auffrischsteuersignal
an die Zeitgebergeneratoren 524»
das für die Dauer eines Auffrischzyklus den Ausgang des Zeilenadressen-Speicher-Flipflop
526 abschaltet.
(d2) REFADRCLR: (REFRESH ADDRESS CLEAR) Auffrischsteuersignal für die Zeitgebergeneratoren
52^, das den Ausgang des Spaltenadress-Speicher-Flipflops
528 für die Dauer eines Auffrischzyklus abschaltet; es bewirkt auch
eine Voreinstellung der Schaltung der Zeitgebergeneratoren 524 für eine normale nichtauffrischende
Operation nach dem Auffrischzyklus .
(d3) REFRASSET: (REFRESH ROW ADDRESS STROBE SET)
Auffrischsteuersignal für die Zeitgebergeneratoren 52^, das die Signale RAS (0, 1) von
den Zeitgebergeneratoren 524 an die RAM-Feld-Bänke
520 und ^22. wirksam macht.
030020/0815
(d4) REFRASCLR: (REFRESH ROW ADDRESS STROBE CLEAR) Auffrischsteuersignal für die Zeitgebergeneratoren
524, das die Signale RAS (O, 1) beim Abschluß eines Auffrischzyklus unwirksam macht;
dieses Signal wird auch zu den Treiberschaltungen 532 geführt und macht das Signal CAS
während einer Batteriehilfsbetrieb-Operation unwirksam, das von den Zeitgebergeneratoren
524 zu den RAM-Feld-Bänken 520 und 522 gelangt.
(e) OUTCNTL-Bus 559: (OUTPUT CONTROL)
(el) OUTSEL(U,V): (OUTPUT SELECT) Ein Steuersignal
mit zwei Binärbit an den Ausgabemultiplexer 540, das Daten auf einem der Busse DOA, DOB,
DOC, oder DOD auswählt, die dann auf dem MO-Bus 541 erscheinen·
(e2) ACCESSCLK (542, 544, 546, 548): (ACCESS CLOCK)
Taktsignale an die Register 542 bis 548, die
bewirken, daß die auf dem MO-Bus 54I vorhandenen Auegabedaten in das zugeordnete Ausgabe-Register
übertragen werden.
(e3) OUTPUSEL (542, 544, 546, 548): (OUTPUT SELECT)
Aktivierungssignal an die Ausgaberegister 542 bis 548, das bewirkt, daß der Inhalt des ausgewählten
Registers auf dem O-Bus 551 erscheint.
(eif) MEMDRIVE: (MEMORY DRIVE) Aktivierungssignal an die Bustreiberschaltung 550, das bewirkt,
daß auf dem O-Bus 551 erscheinende Daten auf dem MEMOUT 318 erscheinen.
(f) DATAINLATCH: (DATA INPUT LATCH) Taktsignal von der Speicherlogik 538 an das Daten-Speicher-Flipflop
536, das bewirkt, daß Daten auf dem MI-Bus in das Daten-Speicher-Flipflop 536 übertragen werden.
030020/0815
(g) MEMWRITE: (MEMORY WRITE) Schreibaktiviersignal vom Puffer 534 an die Zeitgebergeneratoren 524.
(h) MEMSTART: (MEMORY START) Signal vom Puffer 534 an die Speicherlogik 538, das einen Lese- oder
Schreibzyklus des Speichers 313 veranlaßt.
C. Arbeitsweise des Unterspeichers 313 (Fig. 5)
Die Arbeitsweise des Unterspeichers 313 wird mit Hilfe der Fig. 5 beschrieben. Die Diskussion der im obigen Signal-Glossar
genannten Signale wird im allgemeinen auf die folgenden Zeitdiagramme und die detaillierten Schaltungsbeschreibungen
des Unterspeichers 313 verschoben; auf die Signale wird Bezug genommen werden, wo dies zweckmäßig ist,
um die Arbeitsweise des Unterspeichers 313 zu zeigen.
Vier grundlegende Betriebsarten des Unterspeichers 313
sind Speicherlesen, Speicherschreiben, Auffrischen und Batteriehilfsbetrieb. Das Speicherlesen und das Speicherschreiben
werden von der CPU 314 oder dem PFP (Bereitstellungsprozessor)
veranlaßt. Die Betriebsarten auffrischen und Batteriehilfsbetrieb werden in erster Linie
durch den Unterspeicher 313 gesteuert. Zuerst werden die
Lese- und Schreibzyklen beschrieben, gefolgt von einer Beschreibung der Auffrisch-Operation und schließlich von
der Betriebsart Batteriehilfsbetrieb.
Während einer Schreiboperation arbeiten die Speichermodule 512 bis 518 jeder als eine getrennte und unabhängige
Speichereinheit. Jeder Modul kann 4OO ns benötigen,
um einen Lese- oder Schreibzyklus auszuführen. Wegen der unabhängigen Arbeit jedes Moduls kann die CPU 314oder der
PFP J>\2. das Lesen oder Schreiben in Intervallen von 100 ns
veranlassen, d.i. ist die Speicherbus-Zyklusperiode, wie
030020/0815
sie durch 20CLK und MEMCLK bestimmt wird. Ein Lese- oder Schreibzyklus eines einzelnen Speichermoduls kann jedoch
nur bei jedem vierten Speicherbuszyklus veranlaßt werden, also alle i+00 ns. Die Lese- oder Schreibzyklen der Module
512 bis 518 können in jeder gewünschten Folge veranlaßt
werden, so lange die Begrenzung von ifOO ns bei aufeinaderfolgenden
Lese- oder Schreibzyklen beachtet wird. Ausgelesene Speicherwörter erscheinen auf dem MEMOUT-Bus 318
in der Folge, in welcher die Lesezyklen veranlaßt werden; jedes ausgelesene Wort erscheint i+00 ns nach dem Zeitpunkt,
zu dem der Lesezyklus veranlaßt wird.
Es wird zunächst der Lesezyklus betrachtet. Jede Leseanforderung weist eine Adresse auf dem MEMIN-Bus 520 und
einen durch den CC-Bus 553 gesendeten MEMSTART-Impuls
auf. MEMSTAHT wird der Speicherlogik 538 vom Puffer 53*t
geliefert, und die Adresse wird auf dem MI-Bus 535 erscheinen.
Seche Adressbits zur Auswahl der Leiterplatte, des Moduls und der Bank werden an die Speicherlogik 538
durch den BMS-Bus 539 geliefert. Sieben Bits von der Zeilenadresse und sieben Bits von der Spaltenadresse
erscheinen auf dem RA-Bus 52? bzw. dem CA-Bus 529·
Unter der Annahme, daß die ausgewählte Adresse innerhalb des Speichermoduls 512 angeordnet ist, wird die
Speicherlogik 538 die Adressbits für die Leiterplatte, den Modul und die Bank decodieren und einen Lesezyklus
des Moduls 512 veranlassen. Die Zeilen- und Spaltenadressinformation auf dem RA-Bus 527 und dem CA-Bus 529
wird in das Zeilenadress-Speicher-Flipflop 526 bzw. das
Spaltenadress-Speicher-Flipflop 528 übertragen werden.
Die Zeilen- und Spaltenadressen werden dann sequentiell auf den ADR-Bus 530 und durch die Treiberschaltung 532
und den A-Bus 533 zu den Adresaeneingangen der Bänke 520
030020/0815
und Ly<-2 übertragen. Die Zeilen- und Spaltenadressen werden
von Banksteuersignalen auf dem MEM-Bus 563 begleitet sein·
Die baten des angeforderten Worts von der Bank 520 oder
1J1ZZ wurden auf dem DOA-Bus 513 erscheinen. Der Zeitgebergenerator
iyai\ liefert ACCESSMOD 512 an die Speicherlogik
538, um die Anwesenheit eines ausgelesenen Worts auf dem DOA-Bus 51 5 anzuzejgpn. Die Speicherlogik 538 liefert dann
Ü(JTSEL(U, V) an den Ausgabemultiplexer 5*fO, um das ausgelesen»;
Wort auf dem DOA-Bus 513 auf den MO-Bus 5^1 und
somit zu den Eingängen der Register 5^+2 bis 5^+8 zu übertragen.
Die Speicherlogik 533 liefert dann das Signal
ACCESSCLK, wie weiter unten noch beschrieben wird, an eines der Register 5*+2 bis 5^8, um das ausgelesene Wort
auf dem MO-Bus 5/+I in das ausgewählte Register zu übertragen.
Die Speicherlogik 538 wird dann, wie wiederum
später noch beschrieben wird, das Signal OUTPUTSEL an das ausgewählte Register liefern und das Signal MEMDRIVE
an den Bustreiber 550, um das ausgelesene Wort vom ausgewählten Register durch den O-Bus 551 und auf den MEMOUT-Bus
31ö zu übertragen. Das Signal MEMDRIVE bewirkt, daß der Bustreiber 550 das Signal MOENB erzeugt zur Anzeige,
dass das aufgelesene Wort auf dem MEMOUT-Bus 318 vorhanden
ist.
Nach der Beschreibung eines Lesezyklus eties einzelnen
Moduls wird nun eine überlappte Leseoperation der vier Module des Unterspeichers 313 beschrieben. Wie oben dargelegt,
können Leseanforderungen an die Module 512 bis
518 in jeder gewünschten FoltSe gemacht werden, wobei jedoch
die Begrenzung auf hfiO ns beachtet werden muß. Ausgelesene
Wörter erscheinen auf dem MEMOUT-Bus 318 in der angeforderten Folge, wobei jedes ausgelesene Wort /fOO ns
nach dem Beginn des Lesens erscheint. Es wurde auch beschrieben, daß der MEMIN-Bus 320 und der MEMOUT-Bus 318
030020/0815
asynchron und unabhängig sind.
Die Sequenz der Leseanforderungen und der ausgelesenen
Wörter, und der Synchronismus zwischen dem MEMIN-Bus 320 und dem MEMOUT-Bus 318 wird durch den Ausgabemultiplexer
5^0, die Register 542 bis 548 und den Bustreiber 550 aufrechterhalten.
Wegen dar unabhängigen Arbeit der Module bis 518 erscheinen die ausgelesenen Wörter auf den Bussen
DOA 513 bis DOD 519 in der Folge, in der Lesezyklen der
Speichermodule 512 bis 518 veranlaßt worden cind. Wegen
des minimalen Intervalls von 100 ns zwischen Leseanforderungen für den Speicher 313 wird nur auf einem einzigen
der Busse DOA 513 bis DOD 519 ein gültiges Wort an irgendeinem
bestimmten Zeitpunkt vorhnden sein. Es besteht ein minimaler Zeitraum von 100 ns zwischen dem Erscheinen von
aufeinanderfolgenden Worten auf den Bussen DOA 513 bis DOD 519. Die Signale ACCESSMOD(CNTL-Bus 555) von den Zeitgebergeneratoren
524 der Module 512 bis 518 werden durch
die Speicherlogik 538 verwendet, um den Multiplexer 540
zu steuern; so daß ausgelesene Wörter von den Speichermodulen 512 bis 518 auf dem MO-Bus 541 in derselben Reihenfolge
erscheinen wie auf den Bussen DOA 513 bis DOD 519, d.h. in der Reihenfolge der Leseanforderungen· Für jedes
Signal ACCESSMOD von einem Speichermodul erzeugt die Speicherlogik
538 ein Signal ACCESSCLK (OUTCNTL-Bus 559) für eines der Register 542 bis 548, und tut dies in einer
festen Reihenfolge.Das erste Wort wird in das Register
übertrq^n, das zweite ins Register 544, usw.. Das fünfte
Wort wird wieder in das Register 542 geladen, usw..
Die Speicherlogik 538 liefert das Signal OUTPÜTSEL
(OUTCNTL-Bus 559) an die Ausgaberegister 542 bis 548, um den Inhalt der Ausgaberegister auf den O-Bus 551 zu übertragen.
Die Signale OUTPÜTSEL werden in der gleichen Folge
030020/0815
erzeugt wie ACCESSCLK, go dab die aufgelesenen Wörter auf
den MEMÜUT-Bus 318 in der gleiden Folge ausgelesen wie die
Leseanforderungen.
Wie im obigen Signal-Glossar angegeben ist, wird der Unterijpeicher
513 niit zwei Taktsignalen mit der Speicherbuszyklusrate
versorgt, nämlich 10CLK und MKMCLK. Im
allgemeinen wird die Arbeit der Speichermodule ,512 bis
!318 durch 10CLK gesteuert. Die Übertragung von Daten
durch den Multiplexer 5^0 und in die Ausgaberegister 5^f2
bis 5zf8 wird auch durch 10CLK gesteuert. Die Übertragung
von Wörtern aus den Ausgaberegistern 5*f2 bis 5^8 heraus
und auf den MEMOUT-Bus 318 (das ist OUTPUTSEL und
MEMDRIVE) wird durch MEMCLK gesteuert. Dies gestattet, daß der MEMOUT-Bus 318 unabhängig vom MEMIN-Bus 320 arbeitet.
Die Übertragung von Wörtern auf den MEMOUT-Buc 3i8 kann durch das sperrende Signal MEMCLK ausgeschlossen
werden. Früher angeforderte ausgelesene Wörter werden weiterhin in die Ausgaberegister 5^2 bis 548 übertragen,
wo sie gespeichert werden, bis die Arbeit des MEMOUT-Bus 318 wieder beginnt. Es wird kein angefordertes
ausgelesenes Wort verlorengehend, weil der Unterspeicher 313 die Annahme von Lese- und Schreibanforderungen einstellt,
bis die Arbeit des MEMOUT-Bus 518 wieder beginnt. Die Arbeit des MEMOUT-Bus 318 kann daher für eine unbegrenzte
Zeit eingestellt werden, und der Unterspeicher 315 ist in der Lage, vier ausstehende Speicheranforderungen
zu behandeln.
Es wird nun auf den Schreibzyklus Bezug genommen. Eine
Schreibanforderung erfordert eine Schreibadresse auf dem MEMIN-Bus 320 und gleichzeitig auftretende Signale
MEMSTART und MEMWRITE durch den CC-Bus 553. Das in den
030020/0815
Unterspeicher 313 einzuschreibende Wort wird auf den MEMIN-Bus 320 während des 100 ns-Bus-Zykluö gebracht,
der unmittelbar der Schreibadresse, MEMSTART und MEMWRITE folgt. Eine Schreibanforderung erfordert daher
zwei aufeinander folgende Speicherbuszyklen, also 200 ns· Wie beim Lesezyklus werden die Adressbits durch die Busse
BMS 539, RA 527 und CA 529 zur Speicherlogik 538 und zu
Eingängen der Zeilen- und Spalten-Adress-Speicher-Flipflops
526 und 528 der Module 512 bis 518 gebracht. Das
Signal MEMWRITE wird direkt vom Puffer 534 an die Speicher-Flipflops
526 und 528 geliefert. Die Speicherlogik 538 decodiert die Adressbits auf dem BMS-Bus 539 und das
Signal MEMWRITE und veranlaßt einen Schreibzyklus des Zeitgebergeneratore 524 des Speichermoduls, der die
Schreibadresse enthält. Das in den Speicher 313 einzuschreibende
Wort erscheint auf dem MI-Bus 535 100 ns nach der Schreibadresse, und es wild in das Daten-Speicher-Flipflop
536 durch das Signal DATALATCH von der Speicherlogik 538 übertragen. Das Wort erscheint auf dem
DI-Bus 537 und wird gleichzeitig an die Dateneingänge
der Bänke 520 und 522 der Module 512 bis 518 geliefert.
Wie bei einem Lesezyklus überträgt der Zeitgebergenerator 524 des ausgewählten Speichermoduls aufeinanderfolgend
Zeilen- und Spaltenadressen durch den ADR-Bus 530 und den A-Bus 533 zu den Bänken 520 und 522. Steuersignale
werden gleichzeitig durch den MEM-Bus 563 geliefert, und das Wort wird in die ausgewählte Adresse übertragen.
4OO ns mögen normalerweise erforderlich sein, um einen Schreibzyklus auszuführen. Es können wiederum
wegen der unabhängigen Arbeitsweise der Speichermodule Schreibanforderungen in jeder gewünschten Folge veranlaßt
werden, so lange ein einzelner Modul nicht zweimal innerhalb von 400 ns verlangt wird. In ähnlicher Weise
030020/0815
können Speicher-Lese- und Schreibanforderungen in jeder ge
wünschten Folge miteinander vermischt werden, wenn man die Begrenzung auf ifOO ns für einen einzelnen Modul beachtet.
Die tatsächlichen Speicherelemente der Bänke 520 und 522
sind, wie oben angegeben, dynamische MOS-RAMs und erfordern ein periodisches Auffrischen, um einen Datenverlust
zu verhindern. Wie oben angegeben, wird eine Auffrischoperation in erster Linie durch den Unterspeicher 313 gesteuert
und das maximal zulässige Intervall zwischen Auffrischzyklen für die speziellen bei der bevorzugten Ausführungsform
verwendeten RAMs beträgt 15,625 ylis. Die
Auffrischschaltung in der Speicherlogik 538 zählt Intervalle
mit 12,8/us. Nach 6,4/ts beginnt die Auffrischschaltung
eine Überwachung auf einen Speicherbuszyklus, in dem keiner der vier Speichermodule einen Lese- oder
Schreibzyklus ausführt. Wenn ein soldier Buszyklus vor dem Ablauf von 6,ityics nach dem Start des 12,8 yus-Auffrischintervalls
auftritt, belegt die Auffrischschaltung den Zyklus mit Beschlag und führt einen gleichzeitigen
Auffrischzyklus bei allen vier Speichermodulen durch. Falls ein solcher Zyklus nicht innerhalb von 6,k /^s
erscheint, übernimmt die Auffrischschaltung die
Steuerung des Unterspeichers 313 und führt
einen Auffrischzyklus aus. Während des Auffrischen steuert die Speicherlogik 538 die Zeitgebergeneratoren
52if über den REF-Bus 557, um Steuersignale an die Bänke
520 und 522 über den MEM-Bus 563 zu liefern. Gleichzeitig übertragen über den REF-Bus 557 an die Treiberschaltungen
532 gelieferte Steuersignale die Auffrischadressen auf
dem REFADR-Bus 531 auf den A-Bus 533. Alle Spalten einer einzelnen Reihe von Adressen innerhalb der Bänke 520 und
522 werden während eines einzelnen Auffrischzyklus
030020/081B
aufgefrischt. Die Auffrischschaltung erzeugt aufeinanderfolgende
Zeilenadressen in aufeinanderfolgenden Auffrischzyklen, so daß alle Zeilen der Bänke 520 und 522 nach
Auffrischzyklen aufgefrischt sind.
Wie oben ausgeführt wurde, können nicht zwei aufeinanderfol gende Lese- oder Schreibanforderungen demselben Speichermodul
innerhalb eines Intervalls von JfOO ns zugeführt
werden; eine solche Anforderung kann auch nicht während einer Auffrischung gemacht werden. Wenn eine derartige
Störung der Anforderung auftritt, wird dieses Ereignis durch die Speicherlogik 538 erkannt durch einen Vergleich
der decodierten BMS-Adressbits mit den Signalen MODRDY, die durch die Modul-Zeitgebergeneratoren 52-k geliefert
werden. Die Speicherlogik 538 liefert dann das Signal
MEMSORRY an die CPU 31k über den CC-Bus 553. Wenn das
Signal MEMSORRY auftritt, wird das Signal MEMCLK für die CPU 31 if, den PFP 312 und alle anderen mit dem MEMOUT-Bus
318 in Verbindung stehenden Geräte ausgesetzt. Das Signal MEMCLK erscheint wieder, wenn der früher angeforderte
Lese- oder Schreibzyklus vollendet ist. Dieser Vorgang wird bezeichnet als erweiterter Speichertaktzyklus
.
Wie unten mit Bezug auf den PFP 312 besprochen werden wird, werden Anforderungsstörungen zwischen dem PFP 312 und
der CPU 31k oder anderen Geräten vermieden. Ein Signal
von der CPU 3H an den PFP 312 zeigt an, wenn die CPU 31k gerade einen Speicherzugriff anfordert, wodurch
bewirkt wird, daß der PFP 312 Speicheranforderungen auf
den nächsten verfügbaren Speicherbuszyklus verschiebt. In gleicher Weise veranlaßt ein Signal MEMSORRY, das von
einer vom PFP 312 erzeugten Anforderung stammt, und eine
030020/0815
29A4419
frühere Anforderung von einem anderen Gerät den PFP 312,
eine Anforderung zu verschieben, blockiert aber nicht das Signal MEMCLK.
Es wird nun auf den Batteriehilfsbetrieb Bezug genommen.
In dieue Betriebsart wird durch den Unterspeicher 313 eingetreten,
wenn es einen Fehler in der Energieversorgung des Rechners 310 gibt. Der Fehler wird der Speicherlogik
538 über den CC-Bus 533 von der Stromversorgung des
Rechners 510 durch das Signal PWROK angezeigt. In einem
solchen Fall geht die Schaltung des Unterspeichers 313
auf Stromausfall-Bereitschaft, mit Ausnahme der Auffrischschaltung,
Teilen der Zeitgebergeneratoren 52i+, der
Treiberschaltungen 532 und der Bänke 520 und 522. Der
Unterspeicher 313 kehrt aus dem Batteriehilfsbetrieb-Betriebszustand
zurück, wenn die Stromversorgung des Rechners 310 wieder vorhanden ist. Während des Batteriehilf
sbetriebs werden die Bänke 520 und 522 aller vier Module periodisch aufgefrischt, um einen Datenverlust
zu verhindern. In dieser Betriebsart ist die Auffrischperiode 12,8 /»s. Der Unterspeicher 313 schaltet lediglich
während der Ausführung eines Auffrischzyklus in den Batteriehilfsbetrieb und aus dem Batteriehilfsbetrieb
heraus. Zu allen anderen Zeiten als während eines Auffrischvorgangs ist es wegen der unabhängigen Arbeit
der Module 512 bis 518 äußerst schwierig, den augenblicklichen
Operationszustand des Unterspeichers 313 zu ermitteln.
Weiterhin bringt das Schalten in den Batteriehilfsbetrieb und aus dem Batterißhilfsbetrieb heraus
ein Schalten der Stromversorgung zu Teilen der Speicherlogik 538 und der Zeitgebergeneratoren ^2.i\ mit sich mit
der Möglichkeit einer zufälligen Operation des Unterspeichers 313. Während des Auffrischzyklus ist jedoch
030020/0815
il
294A419
der Operationszustand des Unterspeichers 313 genau bekannt und steuerbar· Das Schalten wird daher während des Auffrischens
vorgenommen, um Datenverluste zu vermeiden.
Nach dieser kurzen Beschreibung der Wirkungsweise des Unterspeichers 313 auf der Ebene eines Blockdiagramms
wird als nächstes die Arbeitsweise des Unterspeichers 313 unter Zuhilfenahme von Zeitdiagrammen dargelegt.
D. Speicher 313. Zeitdiagramme (Fign. 6 - 13)
Die Arbeitsweise der Speichersteuerlogik 538 und des
Speichermoduls 512 wird nun unter Zuhilfenahme der in den
Fign. 6-13 gezeigten Zeitdiagramme weiter beschrieben. Der größte Teil der Signale der Zeitdiagramme sind oben im
Signal-Glossar oder in der Beschreibung des Blockdiigramms
definiert und diskutiert worden. Vorher nicht definierte Signale werden bei ihrer Einführung definiert und diskutiert
werden. Die Reihenfolge der folgenden Diskussion folgt der obigen Beschreibung der Arbeitsweise des Blockdiagramms
.
Die Zeitpunkte des Auftretens von Ereignissen, die in der folgenden Diskussion beschrieben sind, sollen lediglich
als Beispiele betrachtet werden und nicht als Beschränkung. Lediglich um die Klarheit der Darstellung zu unterstützen,
wird eine Zeitskale angegeben und auf diese Bezug genommen. Die tatsächlichen Zeiten des Auftretens werden sich ändern,
beispielsweise Wegen Bauteiltoleranzen in den Schaltungen. Auch können sich die Zeitpunkte ändern, falls die Frequenzen
von 2OCLK, 1OCLK und MEMCLK sich ändern.
In Fig. 6 ist ein Zeitdiagramm gezeigt, das einen Lesezyklus des Moduls 512 darstellte Die am oberen Ende der
030020/0815
29Α44Ί9
Fig. 5 quer verlaufende Zahlenskala stellt eine vom Start
der Lesezyklusfolge an ansteigende Zeit in Nanosekunden
dar. Die ersten drei Zeilen der· Fig. 6 zeigen die Taktsignale 20CLK, 10CLK und MEMCLK. Der Speicherauslesezyklus
wird uurch ein Signal MEMSTAKT veranlaßt, das im Zeitpunkt
ΰ auftritt und 100 ns dauert und durch eine gültige Adresse auf dem MEMIN-Bus 320. Ein Signal WINDOW, das
hier zum ersten Mal gezeigt ist, wird in der Speicherlogik -,OO wahrend jedes Speicherbuszyklus erzeugt, wenn
erwartet wird, daß eine gültige Adresse oder ein Datenwort auf dom MEMIN-ßus 520 vorhanden ist. WINDOW wird gleichzeitig
an die Module 512 bis 518 geliefert und wird mit
individuellen MODRDY-Signalen kombiniert, um in jedem
Speichermodul das Signal MODLATCH zu liefern. MODLATCH wiederum überträgt die Adressen auf dem RA-ßus 52? und
dem CA-ßuü 529 in die Speicher-Flipflops 526 und 528 jedes
Moduls. Im Modul 512 folgt den Signalen WINDOW und
M0D12LATCH die Signale M0DSTART512 und M0D512SEL0 oder
MODpI23EL1 von der Speicherlogik 538 zum Zeitgebergenerator
52i|. Ob das Signal MOD512SELO oder MOD512SEL1 an
den Zeitgebergenerator 52^ geliefert wird, hängt davon
ab, ob die Adresse innerhalb der Bank 520 oder Bank 522 liegt. Diese Signale veranlassen die Operation des Zeitgebergenerators
52^f, wie durch das Signal M0D512RDY bei
100 ns angezeigt wird. M0D512RDY zeigt an, daß der Modul
512 ,gerade einen Speicherzyklus ausführt. M0D512RDY
blockiert das Signal WINDOW im Modul 512, so daß die nachfolgenden MOD512LATCH-Triggersignale nicht erzeugt werden;
die in die Speicher-Flipflops 526 und 528 übertragenen
Zeilen- und Spaltenadressen verbleiben dort. WINDOW in den Modulen 51^ bis 516 überträgt weiterhin
nachfolgende auf dem MEMIN-Bus 520 erscheinende Adressen
in die Speicher-Flipflops 526 und 528 jener Module. Die
030020/081 5
Module 514 bis 518 nehmen dadurch weiterhin Adressen an,
bis ihnen die Signale MODSTART und MODSEL zugeführt werden, die anzeigen, daß die zuletzt empfangene Adresse zu
einem bestimmten Modul gehörte und die Tätigkeit dieses bestimmten Moduls veranlassen.
Zurück zu Fig. 6. Das vom Zeitgebergenerator 524 an das
Zeilenadress-Speicher-Flipflop 526 gelieferte Signal
RADENBM0D512 bewirkt, daß die Zeilenadressinformation
auf den ADR-Bus 530 und den A-Bus 533 übertragen wird. Bei 100 ns liefert der Generator 524 die Signale M0D512RAS0
oder M0D512RAS1 an die Bänke 520 bzw. 522 und bewirkt, daß
die Zeilenadresse in die ausgewählte Bank übertragen wird. Bei 150 ns liefert der Zeitgebergenerator 524 das Signal
CADRENBM0D512 an das Speicher-Flipflop 528 und bewirkt, daß die Spaltenadresse auf den ADR-Bus 530 und den
A-Bus 533 übertragen wird. Auch beginnt der Zeitgebergenerator 524 mit der Erzeugung der Signale ATG1 bis ATGb in
Intervallen von 50 ns. ATG1 bis ATG6 werden durch den Zeitgebergenerator 524 intern verwendet und werden unten
unter Bezugnahme auf die detaillierten schematischen Darstellungen diskutiert. Bei 200 ns liefert der Zeitgebergenerator
524 das Signal M0D512CAS an die Bänke 520 und
522 und bewirkt, daß die Spaltenadresse in die Bänke 520 und 522 übertragen wird. Dieser Vorgang vervollständigt
das Adressieren des Moduls 512,und das ausgelesene Wort erscheint auf dem DOA-Bus 513· Das ausgelesone Wort erscheint
auf DOA-Bus 513 vor dem Zeitpunkt 350 ns, und
der Zeitgebergenerator 524 liefert das Sjgnal ACCESSMOD512
an die Speicherlogik 538 zum Zeitpunkt 350 ns. ACCESSM0D512
zeigt an, daß ein ausgelesenes Wort auf dem DOA-Bus 513 verfügbar sein wird. Die Speicherlogik 538 erzeugt dann
OUTSEL(U, V) für den Multiplexer 54O, um den DOA-Bus 513
030020/081 5
29A4419
mit dem MO-Bus 5^-1 zu verbinden. Das ausgelesene Wort erscheint
dann an den Hingängen der Ausgaberegister 5^ bis 5if8. Bei i+OO ns erzeugt die Speicherlogik 538 das Signal
ACCKSSCLK für ein ausgewähltes Ausgaberegister und bewirkt, daß das ausgelesene Wort in das ausgewählte Register
übertragen wird. Die Speicherlogik 538 kann dann OUTPUTSEL
an das ausgewählte Register liefern und das Signal MKMDRIVbJ an den Ausgabe treiber 5'1X), wodurch bewirkt wird,
daß '-las ausgeleseno Wort auf dem MEMOUT-Bus %lo erscheint.
In FIc;. 7 ist ein Zeitdiagramm gezeigt, das die Ausführung
eines Schreibzyklus durch den Modul 512 erläutert. Die
Aufeinanderfolge von Ereignissen in einem Schreibzyklus ist sehr ähnlich der bei einem Lesezyklus; es werden hier
lediglich die Unterschiede zwischen Schreib- und Lesezyklen diskutiert.
Wie in Fig. 7 gezeigt ist, ist die Aufeinanderfolge der Ereignisse identisch zu der eines Lesezyklus bis zum
Zeitpunkt 100 ns; mit der Ausnahme, daß MEMSTART durch das Signal MEMWRITE begleitet wird, das anzeigt, daß
ein Schreibzyklus gerade ausgeführt wird. Bei 100 ns erscheint ein gültiges Datenwort auf dem MEMIN-Bus 320.
Die Speicherlogik 538 erzeugt das Signal DATAINLATCH,
das das Wort in das Daten-Spoicher-Flipflop 536 überträgt.
Das Wort erscheint auf dem DI-Bus 537 und wird gleichzeitig
an die Dateneingänge der Bänke 520 und 522 der
Module 512 bis 518 geliefert. Der Zeitgebergenorator
52/f liefert die Signale RADRENBM0D512, MOD512RASO odor
M0D512RAS1, CADRENBM0D512 und M0D512CAS an die Bänke
520 und 522 wie bei einem Lesezyklus.
Das Signal CADRENBMOD512 wird durch MOD512WE begleitet,
030020/0815
und es wird bewirkt, daß das Wort auf dem DI-Bus 537 in
die Bank 520 oder die Bank 522 geschrieben wird, je nach
der durch M0D512RAS0 oder M0D512RAS1 getroffenen Auswahl.
Der Schreibzyklus ist spätestens bei 400 ns vollständig.
Der Zeitgebergenerator 52^ liefert ACCESSM0D512, und die
Speicherlogik 538 liefert OUTCNTL-Bus 559-Signale an den
Multiplexer 5^0, die Register 5^+2 bis 5^8, und den Ausgabetreiber
550. Das auf dem MEMOUT-Bus 318 erscheinende
Wort stellt jedoch zufällige Daten dar, aber es wird, wie aus der unten gegebenen Beschreibung des PFP 312 deutlich
werden wird, nicht akzeptiert, z.B. durch den PFP 312, weil es nach einer Schreibanforderung erscheint, aber
nicht nach einer Leseanforderung.
In Fig. 8 ist ein Zeitdiagramm gezeigt, das die Ausführung eines Auffrischzyklus durch den Unterspeicher 313 erläutert.
Das Auffrischen wird in den Modulen 512 bis 518 gleichzeitig durchgeführt. Die Auffrischschaltung
der Speicherlogik 538 erzeugt ein Auffrischanforderungssignal
REFREQ in Intervallen von 12,8/is. Die Auffrischschaltung
vergleicht das Signal REFREQ mit dem Signal MODSRDY, das innerhalb der Speicherlogik 538 aus den
Signalen M0D512RDY bis MOD518RDY erzeugt wird. MODSRDY
zeigt an, wie unten näher erläutert wird, daß keiner der Module 512 bis 518 z.Zt. einen Speicherzyklus ausführt.
Wenn MODSRDY anzeigt, daß die Module 512 bis 518 für
einen noch zu erledigenden Auffrischzyklus zur Verfügung stehen, und der Speicher 313 nicht ein Signal MEMSTART
empfangen hat, wie in Fig. 8 bei 0 ns angezeigt ist, übernimmt die Auffrischschaltung die Steuerung des Unterspeichers
313·
Die Auffrischschaltung erzeugt das Signal REFRESHING bei
030020/0815
100 ns, das durch die Speicherlogik 53Ö intern verwendet
wird, um zu verhindern, daß der Unterspeicher 515 aufeinanderfolgende
Speicheranforderungen annimmt. Eine Speichoranförderung, die empfangen wird, nachdem
RKFRESHING erscheint, wird zu einer Antwort MEMSORRY
an den Anforderer führen· Die Auffrischlogik erzeugt
gleichzeitig Signale REFADRßET und REFADRCLR für die
Zeitgebergeneratoren 52^ der Module 512 bis 518.
RtIFAJJRSET und REFADRCLR schalten die von den Zoitgebergenoratoren
52^ kommenden Ausgangssiganle RADENBMOD
und CADRENBMOD ab und machen dadurch die Zeilen- und Spaltenadressausgänge der Speicher-Flipflops 526 und
523 der Module 512 bis 518 unwirksam. Das Signal
REFRASCLR wird auch den Treiberschaltungen 532 zugeführt,
wo es als Inhibit-Eingangssignal für die Signale CAS und l/l/E vom Zeitgebergenerator 52^ an die Bänke 520 und 522
dient. Es ist nicht beabsichtigt, daß dieses Signal während einer normalen Auffrischoperation wirksam ist, aber
en blockiert, wie unten beschrieben wird, die Signale
CAS und WE während des Batteriehilfsbetriebs. Das Signal REFRESHING blockiert die Erzeugung der Signale MODSTART
und MODSEL durch die Speicherlogik 538, so daß die Zeitgebergeneratoren
52^- während des Auffrischzyklus unaktiv
bleiben und keine MEM-Bus 563-Signale an die Bänke 520 und 522 liefern, ausgenommen, wo solche Ausgangssignale
durch REFRESSET und REFRESCLR erzwungen werden. Auch bei 100 ns erscheint eine gültige Auffrischadresse
auf dem REFADR-Bus 531 und somit auf dem A-Bus 533 und
an den Adresseneingängen der Bänke 520 und 522 der Module 512 bis 518. REFADRENB wird durch die Auffrischschaltung
intern benutzt, um den REFADR-Bus 531 zu aktivieren und wird unten diskutiert. Die Signale RTGO bis RTG3 sind
ebenfalls interne Signale der Auffrischschaltung, wie
030020/0815
unten beschrieben wird, und sie steuern die Auffrischzyklusfolge. Bei 200 ns erzeugt die Auffrischschaltung das Signal
REFRASSET für die Zeitgebergeneratoren 524 der Module 512
bis 518. REFRASSET aktiviert die Ausgangssignale MODRASO und MODRAS 1 der Zeitgebergeneratoren 524 zur Übertragung
der Auffrischadresse in die Adresseneingänge der Bänke
520 und 522 der Module 512 bis 518. Die Übertragung der
Adressen durch das Signal MODRAS beginnt die Auffrischoperation innerhalb der Bank 520 und 522,
Das Auffrischen ist spätestens zum Zeitpunkt /+00 ns beendet,
zu welchem Zeitpunkt die Auffrischschaltung das Signal REFRASCLR für die Zeitgebergeneratoren 524 erzeugt.
Zu diesem Zeitpunkt wird auch das Signal REFADRßET ausgeschaltet, während REFADRCLR aktiv bleibt4 dies setzt den
Zeitgebergenerator 524 zurück auf den richtigen Zustand
für die Wiederaufnahme der Nicht-Auffrisch-Tätigkeit.
HEFADRCLR wird bei 500 ns ausgeschaltet. BEFRASSET wird
zu dieser Zeit ebenfalls ausgeschaltet, während SEFRASCLR
aktiv bleibt, wobei es auch das Einstellen der Zeitgebergeneratoren
524 auf den zur Wiederaufnahme der Nicht-Auffrisch-Tätigkeit
geeigneten Zustand bewirkt. Das Abschalten von REFRASSET beendet die Signale MODRASO und
MODRASI, REFRASCLR wird dann bei 600 ns abgeschaltet,und
der Auffriachzyklus ist vollständig. Ein totaler Auffrischzyklus mag normalerweise 600 ns Zeit der Auffrischschaltung
benötigen, aber das Auffrischen der Module 512 bis 518 mag normalerweise in 400 ns abgeschlossen sein,
so daß die Module 512 bis 518 die Schreibe- und Lesezyklusoperation
wieder aufnehmen können.
In Fig. 9 ist ein Zeitdiagramm gezeigt, das die Ausführung eines spaten Auffrischzyklus erläutert. Ein später Auffrischzyklus
ist mit Ausnahme der ersten 100 ns identisch mit einem normalen oben beschriebenen Auffrischzyklus.
Daher wird der späte Auffrischzyklus hier nur bis zum Zeitpunkt 100 ns beschrieben. Das Signal REFREQ ist so
dargestellt, daß es seit dem Start des gegenwärtigen Auffrischintervalls aktiv ist. Gemäß der Figur zeigt das
030020/0815 ./.
Signal MODSRDY keinen verfügbaren Speicherbuszyklus seit dem Start von REFREQ an. Bei 6,if/is nach dem Start des
gegenwärtigen Auffrischintervalls, der bei 100 ns angezeigt
ist, erzeugt die Auffrischschaltung der Speicherlogik 538 das Signal LATEREFRESH. LATEREFRESH wird innerhalb
der Speicherlogik 538 verwendet, um willkürlich die
Steuerung des Unterspeichers 313 zu übernehmen und einen
Auffrischzyklus zu veranlassen, wie durch das Signal REFRESHING gezeigt ist, das bei 100 ns aktiv wird. Der
Auffrischzyklus beginnt bei 0 ns, und von dieser Zeit an ist der späte Auffrischzyklus identisch mit dem normalen
Auffrischzyklus.
In Fig. 10 ist ein Zeitdiagramm gezeigt, das einen erweiterton
Speicherbuszyklus erläutert, der von einer .Speicheranfragestörung herrührt, d.i. eine Speicheranforderung,
die während eines Auffrischzyklus erfolgt^ oder das Anfordern eines Zugriffs zu einem Speichermodul,
der z.Zt. ein Lese- oder Schreibzyklus ausführt. Gemäß der Zeichnung tritt das Signal MEMSTART bei 0 ns
auf, begleitet durch eine gültige Adresse auf dem MEMIN-Bus 520. Es ist entweder REFRESHING oder MODRDY
des die zuletzt angeforderte Adresse enthaltenden Speichermoduls aktiv. Die Speicherlogik 538 wird dann
zum Zeiipunkt 0ns das Signal MEMSORRY erzeugen. MEMSORRY
wird zui· anfordernden Einheit übertragen, um anzuzeigen, daß die angeforderte Adresse z.Zt. nicht verfügbar ist.
MEMSORRY (mit Ausnahme für Anforderungen des PFP 312) blockiert auch den Speicherbuctakt MEMCLK. MEMSORRY
bleibt aktiv, und MEMCLK blockiert bis zum Zeitpunkt N χ 100 ns, wobei N die Anzäi der Speicherbuszyklen ist,
um die die Anforderung hinausgeschoben wird. Die den
030020/0815
Speicher anfordernde Einheit fährt fort, das Signal MEMSTART und eine gültige Adresse auf dem MEMIN-Bus während
der gesamten zeitlichen Verzögerung zu liefern· Zum Zeitpunkt N χ 100 ns ist der Auffrischzyklus, oder der
Lese- oder Schreibzyklus des adressierten Moduls abgeschlossen. MEMSORRY nimmt wieder den inaktiven Zustand
ein. Der Unterspeicher 313 nimmt dann das Signal MEMSTART und die Adresse auf dem MEMIN-Bus 320 an, wie
durch die Signale MODSTART und M0D512RDY angezeigt ist, die zum Zeitpunkt (N+1) χ 100 ns nach der Beendigung von
MEMSORRY auftreten. Der adressierte Modul führt den angeforderten Lese- oder Schreibzyklus aus. Wie dargestellt
ist, beginnt das Signal MEMCLK 100 ns nach dem Abschalten von MEMSORRY wieder.
In Fig. 11 ist ein Zeitdiagramm gezeigt, das das Schalten
des Unterspeichers 313 in den Betriebszustand Batteriehilfsbetrieb
erläutert. Der in Fig. 11 gezeigte Auffrischzyklus läuft identisch mit dem unter Bezugnahme auf
Fig. 8 gezeigten und erläuterten Zyklus ab bis zum Zeitpunkt 300 ns. Bei 300 ns tastet ein innerhalb der Auffrischschaltung
der Speicherlogik 538 vorhandenes Zeitgabesignal
RTG2 das Signal PWROK ab. Einige Zeit vor dem Zeitpunkt 300 ns, hier gezeigt bei 100 ns, beginnt
PWROK, um anzuzeigen, daß ein Stromversorgungsfehler aufgetreten ist. Dies führt zur Erzeugung des Signals
BBU, das anzeigt, daß der Unterspeicher 313 in den Batteriehilfsbetrieb
eintreten soll.
BBU bewirkt die Erzeugung des Signals MEMRESET. MEMRESET wird an die Zeitgebergeneratoren 52k und an andere Schaltungen
innerhalb der Speicherlogik 538 geliefert, wo es,
wie oben beschrieben, die Schaltung in einen bekannten
030020/0815
Operationszustand zwingt. MEIiRI-JSiIT wird auch an die Auffrischschaltung
geliefert, wo es, wie in Fig. 11 angezeigt ist, das Signal REFRESCLR weiterhin im blockierenden Zustand
hält, nachdem ein Auffrischzyklus abgeschlossen 1st«
In ahnlicher Weise erzwingt das Signal BBU, daß das Signal KFJFADRUNB im aktiven Zustand bleibt, nachdem ein Auffrischzyklus
abgeschlossen ist. Mit Ausnahme von REFADREMB und REFRESCLR läuft der Auffrischzyklus bis zum Ende in einer
ähnlichen Weise ab, wie unter Bezugnahme auf Fig. 8 erläutert wurde. BBU und MEMRESET bleiben in der gezeigten
V/eise weiter bestehen, wie weiter unten noch beschrieben wird, bis der Unterspeicher 313 aus dem BBU-Betriebszustand
(Batteriehilfsbetrieb) herausschaltet.
Fig. 12 zeigt ein Zeitdiagramm, das die Ausführung eines Auffrischzyklus erläutert, während der Unterspeicher 313
sich im Betriebszustand Batteriehilfsbetrieb befindet. Wie oben bei der Beschreibung der Wirkungsweise des Blockdiagramms
beschrieben wurde, v/erden Auffrischzyklen während des Batteriehilfsbetriebs durch das Signal
LATEREFRESH veranlaßt und nicht durch REFREQ. Der in Fig.12 dargestellte Auffrischzyklus ist identisch mit einem
normalen Auffrischzyklus mit der Ausnahme, daß das Signal REFRASCLR in einem blockierenden Zustand und REFADRENB
in einem aktiven Zustand durch MEMRESET und BBU gehalten wird.
In Fig. 13 schließlich ist ein Zeitdiagramm gezeigt, das
einen Auffrischzyklus erläutert, wobei der Unterspeicher 313 aus dem Batteriehilfsbetrieb herausschaltet. Der in
Fig. 13 gezeigte Auffrischzyklus läuft in einer Weise ab, die ähnlich der in Fig. 12 gezeigten ist, mit der Ausnahme,
daß das Signal PWROK gemäß der Darstellung eine Ruckkehr
030020/0815
29Α4419
der Stromversorgung bei 100 ns anzeigt. Dieses Ereignis
wird durch RTG 2 bei 300 ns festgestellt, und bewirkt, daß
BBU und MEMRESET zur normalen Operation zurückkehren. Wie durch das Signal PWROK angezeigt ist, war die Stromversorgung
zurückgekehrt, bevor das Signal MEMRESET abgeschaltet wurde. MEMIiESET hatte daher vorher die nicht mit Energie
versorgten Abschnitte der Speicherlogik 538 und der Speichermodule 512 bis 518 in den für die Wiederaufnahme
der normalen Tätigkeit nach dem Abschluß eines Auffrischzyklus geeigneten Zustand gebracht. Der Auffriechzyklus
läuft bis zum Ende ab, wie anhand der Fign. 8, 9 und 12
oben gezeigt und beschrieben wurde, und der Unterspeichor 313 kehr zur normalen Lese- und Schreiboperation zurück.
Nach der Beschreibung der Struktur und Arbeitsweise des Unterspeichers 313 auf der Ebene eines Blockdiagramms unter
Zuhilfenahme von Zeitdiagrammen wird nun die bei einer bevorzugten Ausführungsform des Speichers 313 verwendete
Schaltung dargestellt.
E, Unterspeicher 313t Schaltung (Fign. 1/+ - 2/+)
Schematische Darstellungen der bei einer bevorzugten Auüführungsform
des Unterspeichers 313 verwendeten Schaltung
werden nun in den Fign. 1k - 24 unter Bezugnahme auf die
obige Diskussion des Blockdiagramras und der Zeitabläuft
beschrieben. Die Struktur und die gegenseitige Verbindung der Schaltung des Unterspeichers 313 ist in den Fign. Ii+
bis 2/f gezeigt und wird nicht weiter beschrieben werden,
außer wo es notwendig ist, um die Wirkungsweise des Unterspeichers
313 zu erläutern. Ähnlich werden die Funktionen
und die Wirkungsweise der spezifischen Schaltungskomponenten im Detail nur dort diskutiert, wo dies notwendig
ist. Durchwegs sind genormte und übliche Schaltungssymbole
030020/0815
verwendet. Alle Komponenten, die identisch zu einer im Text und in der Stuckliste aufgeführten Komponente gezeichnet
sind, sind dieser Komponente gleich. Gewisse Komponenten in den folgenden schematischen Darstellungen
sind mit einer Fußnote BBU gekennzeichnet. Dieser Hinweis kennzeichnet jene Komponenten, denen während des
Batteriehilfsbetriebs Strom zugeführt wird; nicht auf diese Weise gekennzeichnete Komponenten werden mit Strom
lediglich während des normalen Betriebs versorgt.
In Fig. 1 if ist ein schematisches Diagramm der Bank 520
des Moduls 512 gezeigt. Die Bänke 520 und 522 der Module
512 bis 518 sind ähnlich. Die Bank 520 mag 21 identische Speicherelemente ii+10 bis 1^50 aufweisen, von denen jedes
ein einzelnes Bit des in Fig. k gezeigten Worts mit 21 Bit speichert. Jedes Speicherelement hat einen einzelnen
Dateneingang DI (DIO bis DI20) und einen einzelnen Datenausgang DOA (DOAO bis D0A20). Jeder Datenausgang ist mit
einem separaten Leiter des DOA-Bus 513 und parallel mit
einem ähnlichen Datenausgang der Bank 522 verbunden. Die Dateneingänge DI sind jeweils mit einem separaten Leiter
des DI-Bus 533 verbunden, parallel mit ähnlichen Dateneingängen
DI alle anderen Bänke 520 und 522 des Speichers 313. Jedes Element hat sieben Adresseingänge AO bis A6.
Die Adresseingänge der Elemente I410 bis 1 ^+30 sind parallel
mit einem gemeinsamen Adressenbus AOR bis A6R verbunden. Die Adresseneingänge der Elemente 1^32 bis
I/+50 sind parallel mit einem zweiten Adresseneingabebus
AOL bis A6L verbunden. Die auf dem Bus AOR bis A6R und AOL bis A6L erscheinenden Adressbits sind identisch.
Die Aufteilung der Bank 520 in zwei Gruppen von Elementen IZtIO bis 1430 und 1 i&Z bis I45O dient, wie unten näher
erläutert wird, dazu, die Belastung an den Adresstreibern
030020/0815
der Treiberschaltungen 532 au verringern. Die Adresseneingänge
der Elemente 1 /+1O bis 1450 sind tatsächlich über
die Treiberschaltungen 532 parallel mit dem A-Bus 533
verbunden. Die Aufteilung der Bank 520 in zwei Busse zeigt sich auch in den Eingängen Zeilenadressabtastung
(row address strobe, RAS), Spaltenadressabtastung (column address strobe (CAS) und Schreibaktivierung (write enable
(WE) der Elemente I410 bis 1 i+50. Die Bank 520 ist ebenfalls
in einen Block von Speicheretaenten 1410 bis 1440 unterteilt,
in dem Datenbits gespeichert werden, und in Speicherelemente I442 bis 1450,in denen die Fehlerkorrekturbits
gespeichert werden« Diese interne Unterteilung in 16 Bits für die Datenspeicherung und 5 Bits für die Fehlerkorrekturcodspeicherung
ist nicht durch die Struktur des Unterspeichers 313 bedingt. Funktionell ist der Unterspeicher
313 ein Speicher mit 21 Bit Länge und legt keine
Beschränkungen für die in ihm gespeicherten Daten auf; beispielsweise können alle 21 Bits für die Speicherung
von Daten verwendet werden. Es können auch Speicherelemente von den Bänken 520 und 522 entfernt werden
oder zu diesen hinzugefügt werden; beispielsweise so, daß der Unterspeicher 313 eine Länge von 16 Bits aufweist.
Die Arbeitsweise der Bank 520 wird in der folgenden Beschreibung des Speicherelements I410 deutlich werden.
In Fig. 15 ist ein Blakdiagramm des Speicherelements I410
der Bank 520 gezeigt. In den obigen Ausführungen war festgestellt worden, daß die Zeilenadresse und die Zeilenadressabtastung
(RASR) der Bank 520 zuerst angeboten werden, gefolgt von der Spaltenadresse und der Spaltenadressabtastung
(CASR). Der Adresseneingabebus I510 (AOR bis A6R)
ist intern mit Eingängen eines Zeilenadressregister 1512
und eines Spaltenadressregisters 1514 verbunden. Die Signale
030020/0815
RASR und CASR werden ebenfalls Eingängen der Register 1512 bzw. 15H zugeführt. Ausgänge des Registers 1512
sind mit Eingängen eines Zeilendecoders I516 und Ausgänge
des Registers 151k sind mit Eingängen eines Spaltenadressdecoders
151 β verbunden. Ausgänge des Zeilendecoders
1516 sind mit Zeilenselektionseingängen eines Speicherfelds 1520 verbunden. Das Speicherfeld 1520
ist in Form von 128 Zeilen mal 128 Spalten von Speicherstellen organisiert, wobei jede Stelle 1 Bit der Information
speichert. Die Spaltenausgänge des Speicherfelds 1520 werden durch Abtastverstärker 1522 und den Spaltenadressdecoder
1518 ausgewählt. Die Abtastverstärker 1522
liefern das Datenausgangssignal DOAO des Speichereüanents HIO durch einen Datenpuffer 152*+. DIO vom DI-Bus 537
ist mit einem Eingang des Datenpuffers 1524 verbunden,
dies gilt auch für WER.
Bei der Arbeit wird, wenn man einen Speicherlesezyklus betrachtet,
die Zeilenadreesinformation auf dem A-Bus
durch den Bus 1510 zu den Eingängen des Registers 1512 geliefert. Das Signal RASR überträgt die Zeilenadresse
in das Register 1512. Die Zeilenadresse im Register 1512 wird durch den Zeilendecoder I5I6 decodiert, um eine
der 128 Zeilen des Speicherfelds 1520 zu aktivieren. Die in der ausgewählten Zeile gespeicherte Information wird
dann zum Abtastverstärker 1522 übertragen. Die als nächstes auf dem A-Bus 533 erscheinende Spaltenadressinformation
wird durch den Bus I5IO zum Spaltenadressregister 1514
übertragen und in das Register 1514 durch das Signal CASR
übertragen. Die Spaltenadresse im Register 1514 wird durch
den Decoder I5I6 decodiert, um eines der 128 Informations-Bits
aus der ausgewählten Zeile in den Verstärkern 1522 auszuwählen. Das ausgewählte Bit erscheint am Ausgang des
030020/081Π
-60-
Datunpuffers 152^· Die Fähigkeit dos Speicherelements
H10, Zeilen- und Spalteriadressinformation sequentiell
auf einem einzelnen Bus zu empfangen, vereinfacht die Anordnungen zum übertragen der Adressen innerhalb der
Speichermodule 512 bis 518, worauf unten noch Bezug genommen
wird #
Ein Schreibzyklus ist identisch mit einem Losozyklus,
mit der Ausnahme, daß WER aktiviert ist, wie in den Zeit diagrammen oben gezeigt wurde. In diesem Fall wird DIO
durch den Abtastverstärker 1520 in die durch den Decoder 1516 ausgewählte Spaltenstelle und die durch den Decoder
1516 ausgewählte Zeilenstelle übertragen. Bei einem Auffrischzyklus
wird an das Speicherelement ii+10 nur eine
Zeilenadresse geliefert und CAS ist blockiert. Alle 128 Spaltenstellen der ausgewählten Zeile werden durch die
Abtastverstärker 1522 übertragen und tatsächlich zurückgeschrieben
in ihre identischen Stellen in der ausgewähl ten Zeile. Die in der ausgewählten Zeile gespeicherte In
formation wird dadurch durch Wiedereinschreiben aufgefrischt.
Es wird nun die Schaltung beschrieben, durch die die Information aus den Speichermodulen 512 bis 518 heraus auf
den MEMOUT-Bus 518 übertragen wird. In den Fign. 16 und 16A sind der Ausgabemultiplexer 5^0, die Ausgaberegister
bis 548 und der Bustreiber 550 gezeigt.
In Fig. 16 weist der Ausgabemultiplexer 54Ο 21 Multiplexer
von vier Leitungen auf eine Leitung auf, der verwirklicht ist durch zehn integrierte 2-fach Vierleitungs-Multiplexer-Schaltungen
1610. Die Ausgabebusse DOA-Bus 513 bis DOD-Bus 519 sind mit den Eingängen der
030020/0815
- ftf -
Multiplexer 1610 verbunden. Jeder Multiplexer 1610 empfängt
ein (1) Ausgangssignal von jedem der Busse DOA-Bus 513 bis
DOD-Bus 519 (z.B. D0A2, D0B2, D0C2, und D0D2). Steuereingänge der Multiplexer 1610 sind mit OUTSELU und OUTSELV
des OUTCNTL-Bus 559 verbunden. Wie oben beschrieben wurde, steuern OUTSELU und OUTSELV die Multiplexer 1610 so, daß
ein ausgelesenes Wort mit 2.1 Bit auf einem der Busse DOA-Bus 513 bis DOD-Bus 519 auf dem MO-Bus 541 erscheint.
Es wird darauf hingewiesen, daß der Ausgabemultiplexer 540 der einzige tatsächliche echte Multiplexer im Unterspeicher
j$l3 ist. Alle anderen Multiplexoperationen werden
durch sequentielle Übertragung der Daten durch einen gemeinsamen Bus ausgeführt, oder durch Schaltungen, die Ausgänge
mit drei Zuständen haben.
Die Ausgaberegister 5^f2 bis 548 weisen jeweils 21
Speicherbits in Registern 1612 mit Dreizustandslogik auf. 21 Leitungen des MO-Bus 541 sind mit 21 entsprechenden
Dateneingängen MOI des Ausgaberegister 542 verbunden. Der
MO-Bus 541 ist in ähnlicher Weise mit entsprechenden Eingängen
der Ausgaberegister 544 bis 548 verbunden. Der Takteingang
des Ausgaberegisters 542 ist mit ACCESSCLKW des OUTCNTL-Bus 559 verbunden. Die Takteingänge der Ausgaberegister
544 bis 548 sind mit ACCESSCLK X,Y und Z verbunden. In ähnlicher Weise ist der Steuereingang des Ausgaberegisters
5^2 mit OUTPUTSELW des OUTCNTL-Bus 559
verbunden; die Steuereingänge der AusgaberqgLster 544 bis
548 sind mit OUTPUTSEL X, Y bzw. Z verbunden. Wie oben beschrieben, wird ein Signal ACCESSCLK für eines der
Ausgaberegister 5l\2. bi 548 die Information auf dem
MO-Bus 541 in die Register 1612 dieses Ausgaberegisters
übertragen. Wie ebenfalls oben beschrieben wurde, wird
030020/0815
ein Aktivierungssignal OUTPUTSEL, das an eines der Ausgaberegister 542 bis 548 gegeben wird, den Inhalt der
Register 1612 des ausgewählten Ausgaberegisters auf den O-Bus 551 übertragen.
In Fig· 16A ist der Ausgabetreiber 550 gezeigt. Der Ausgabetreiber
550 ist ein Puffer, der aus Dreizustandslogik-Puffertreibern 1614 besteht. 21 Leitungen des O-Bus
sind mit Ausgängen der Puffertreiber 1614 verbunden.
Korrespondierende Ausgänge der Puffertreiber 1614 siü
mit dem MEMOUT-Bus 318 verbunden. Das Signal MEMDRIVE
des OUTCNTL-Bus 559 wird Aktivierungseingängen der Puffertreiber 1614 zugeführt und aktiviert die übertragung von
Wörtern vom O-Bus 551 auf den MEMOUT-Bus 318. Der dem Ausgangssignal
MOENB zugeordnete Eingang des Bustreibers 550 ist mit einem anderen Ausgang des Bustreibers 550 verbunden,
und der diesem anderen Ausgang zugeordnet Eingang des Bustreibers 550 ist mit Masse verbunden. MOENB wird
daher logisch O sein, wenndas Signal MEM)RIVE den Bustreiber
550 aktiviert, und anzeigen, daß ein gültiges ausgelesenes Wort auf dem MEMOUT-Bus 318 vorhanden ist.
Nach der Beschreibung der Schaltung, durch die ausgelesene Wörter vom Unterspeicher313 auf den MEMOUT-Bus
übertragen waden, wird als nächstes die Schaltung beschrieben, durch die Adressen und Daten vom MEMIN-Bus
zu den Bänken 520 und 522 übertragen werden. Die folgenden Besprechungen werden den Puffer 534» das Daten-Speicher-Flipflop
536, die Zeilen- und Spaltenadress-Speicher-Flipflops 526 und 528 und die Treiberschaltungen 532 in
dieser Reihenfolge behandeln.
In Fig. 17 sind der Puffer 534 und das Daten-Speicher-
030020/0815
Flipflop 536 gezeigt. 21 Leitungen von MEMIN,MtSMSTART und
MEMWRITE sind mit Eingängen von Pufferverstärkerschaltungen
1710 des Puffers 'yjk verbunden. Die Ausgänge MIO bis MI20
der Pufferverstärker 1710 sind mit dem MI-Bus 535 verbunden.
MIO bis MI20 sind mit Eingängen von Registern 1712 des Daten-3peicher-Flipflop
536 verbunden. MIO bis MI6 sind mit dem RA-Bus ^Zl verbunden. MI7 bis MI13 sind mit dem CA-Bu s
529 verbunden,und MIUf bis MI19 sind mit dem BMS-Bus
verbunden. Die Ausgänge MiMSTART und MEMWRITE der Pufferverstärker
1710 sind der Speicherlogik 538 bzw. den Zeitgebergeneratoren
524 zugeführt. Aktivierungseingänge der
Register1712 sind mit DATAINLATCH von der Speicherlogik
538 verbunden. Die auf MIO bis MI20 vorhandene Information
wird in die Register 1712 übertragen und erscheinen an den Registerausgängen DIO bis DI20, die mit dem
DI-Bus 527 verbunden sind, wenn das Signal DATAINLATCH
an den Aktivierungseingängen der Register 1712 erscheint.
In Fig. 18 sind das Zeilenadress-Speicher-Flifplog 526
und das Spaltenadress-Speicher-Flipflop 528 gezeigt. Sieben Leitungen des RA-Bus 527 sind mit Eingängen des
Speicher-Flipflops 526 verbunden. Sieben Leitungen des CA-Bus 529 sind mit Eingängen des Speicher-Flipflops
verbunden. Ein Eingang des Speicher-Flipflop 528 ist mit MEMWRITE vom Puffer 53/f verbunden, und ein entsprechender
Eingang des Speicher-Flipflops 526 ist mit Masse verbunden.
Eingabe-Aktivierungseingänge der Speicherflißflops 526 und 528 sind mit M0D512LATCH verbunden. M0D512LATCH Über
trägt die Adressen auf dem RA-Bus 527 und dem CA-Bus 529 in die Speicher-Flipflops 526 und 528. Entsprechende
Ausgangssignale der Speicher-Flipflops 526
und 528, nämlich ADRO bis ADR6, sind miteinander verbunden, und umfassen den zu den Treiberschaltungen 532
030020/0815
führenden ADR-Bus 530. Die Ausgangssignale M0D.512WE, die
dem Eingangssignal MEMWRITE und dem Massepotential-Eingangssignal des Speicher-Flipflops 526 entsprechen,
sind miteinander verbunden,um das Signal M0D512WE an
die Treiberschaltungen 532 zu liefern. Ausgabeaktivierungseingängen der Speicher-Flipflops 526 und 528 werden die
Signafe RADRENBM0D512 bzw. CADRENBM0D512 vom Zeitgebergenerator
52if zugeführt. Die Adressen in den Speicher-Flipflops
526 und 528 werden auf den ADR-Bus 530 übertragen,
wenn RADRENBM0D512 oder CADRENBM0D512 aktiv ist. Wenn
RADRENBM0D512 aktiv ist, wird die Zeilenadresse des Speicher-Flipflops 526 auf dem ADR-Bus 530 erscheinen;
wenn CADRENBM0D512 aktiv ist, wird die Spaltenadresse des Speicher-Flipflops 528 auf dem ADR-Bus 530 erscheinen.
Wenn CADRENBM0D512 aktiv ist, wird das Signal MOD512WE
Massepotential haben, falls nicht das Signal MEMWRITE existiert, und es wird aktiv sein, wenn ein Signal
MEMWRITE vorhanden ist.
Die Treiberschaltungen 532 der Bank 520 des Moduls 512 sind in Fig. 19 gezeigt. Die Treiberschaltungen 552 der Bänke
520 und 522 der Module 512 bis 518 sind identisch. Die
Adresseneingangssignale der Bank 520 werden durch Verknpfungsglieder 1912 bis 1924 geliefert, die, wie oben beschrieben,
getrennte R- und L-Ausgänge für die R-Hälfte und die L-Hälfte der Bank 520 haben. Jedes Verknüfungsglied
1912 bis 1924 hat ein erstes Eingangssignal vom ADR-Bus
und ein zweites Eingangssignal vom REFADR-Bus 531· Die Eingangssignale vom ADR-Bus 530 sind Lese- und Schreibadressen.
Die Eingangssignale vom REFADR-Bus 531 sind Auffrischadressen. Die Verknufungsglieder 1912 bis
führen eine ODER-Funktion aus, um die Eingangssignale von dem ADR-Bus 530 oder dem REFADR-Bus 531 auf den
030020/0815
Α-Bus 533 zu übertragen. Der ADR-Bus 530 oder der REFADR-Bus
531 werden nur einzeln aktiv sein, der jeweils andere führt die Werte logisch 0. Die Verknüpfungsglieder 1926 bis
I93O haben wieder jeweils Ausgänge für die R- und L-Hälften
der Bank 520. Das Verknifcfungsglied 1926 empfängt das Signal
MOD512RASO um Ausgangssignale RASR und RASL an die
Bank 520 zu liefern; ein ähnliches Verknüpfungsglied (aus Gründen der Deutlichkeit der Darstellung nicht gezeigt)
empfängt das Signal MOD512RAS1 und liefert
RASR und RASL an die Bank 522 des Moduls 512. Das Bereitstellen von separaten M0D512RAS-Ausgangssignalen an die
Bänke 520 und 522 wird beim Adressieren des Speichers verwendet. Die Adressen werden in der Bank 520 oder 522
selectiert, beispielsweise durch das Aktivieren von M0D512RAS0, um die Speicherelemente in der Bank 520 mit
Energie zu versorgen, wenn die Adresse in der Bank 520 liegt. Die Verknüpfungsglieder 1928 und 1930 liefern
Steuersignale M0D512CAS bzw. M0D512WE an die Bank 520
und können, wie oben beschrieben, durch REFRASCLR während des Auffrischens blockiert werden. Pull-up-Widerstände
1932 bewirken eine Impedanzanpassung an die Eingänge der Speicherelemente des Moduls 512. Die Register
1932 verlangsamen auch die Schaltübergänge, um Übersprechen
zu vermeiden.
Der Zeitgebergenerator 52^ des Moduls 512 ist in Fig. 20
gezeigt. Der Zeitgebergenerator 524 weist einen Zeitgebersequenzgenerator
2010 auf, Steuerregister 2012 bis 2022, und ein Verknüpfungsglied 202^. Der Zeitgebersequenzgenerator
2010 und die Steuerregister 2012 bis 2022 werden durch 20CLK getaktet. Der Zeitgebersequenzgenerator
2010 ist ein Schieberegister. Eine logische 1 wird in den Zeitgebersequenzgenerator 2010 geladen,
030020/0815
wenn der Zeitgebergenerator 52/+ gestartet wird. Der Zoitgebersequenzgenerator
2010 liefert dann eine Folge von Ausgangsimpulsen ATGI bis ATG6, die wiederum Steuerausgänge
der Steuerregister 2012 bis 2022 aktivieren. ATG1 erscheint eine Periode von 20CLK nachdem der Zeitgebergenerator
52/+ gestartet worden ist. Ausgangssignale
ATG/+,5 und 6 erscheinen nach /+,5 bzw. 6 Perioden von
20CLK nach dem Start.
Es wird nun auf die Fig. 20 und die Zeitdiagramme der Fign. 6 und 7 Bezug genommen. CADRENBMOD512 wird logisch 1 am Ende
eines Auffrischzyklus oder eines Lese- oder Schreibzyklus des Moduls 512. CADRENDMOD512 aktiviert dadurch den Ein-
£uig des Zeitgebersequenzgenerators 2010 für Annahme eines
Startbefehls von der Speicherlogik 538. Den Eingängen der Steuerregister 201/+, 2022, und des Verknüpfungsglieds 202/+
werden die Signale M0DSTART512, M0D512SEL0 und M0D512SEL1
zugeführt. Das Auftreten dieser von der Speicherlogik kommenden Speichersignale, gemeinsam mit einem Signal
WINDOW zum Verknüpfungsglied 202/+ wird den Zeitgebergenerator 52/+ starten. Zum Zeitpunkt 50 ns werden M0D512RDY
(vom Steuerregister 201/+) und WINDOW durch das Verknüpfungsglied
202/+ miteinander verknüpft, um das Signal M0D512LATCH
an die Zeilen- und Spaltenadress-Speicher-Flipflops 526 und 528 zu liefern. M0D512LATCH überträgt die Zeilen- und
Spaltenadressen vom RA-Bus 527 und CA-Bus 529 in die Speicher-Fllpflops 526 und 528. RADRENBMOD512 ist aktiv,
um die Zeilenadresse des Speicher-Flipflops 526 auf den ADR-Bus 530 zu übertragen; CADRENBMOD512 blockiert den
Ausgang des Speicher-Flipflops 528· Beim nächsten 20CLK-Impuls
(100 ns) werden M0DSTART512, und M0D512SEL0 oder M0D512SEL1 in die Steuerregister 201/+ und 2020 oder 2022
030020/0815
geladen. M0D512RAS0 oder M0D512HAS1 wird aktiv. MOD512RDY,
das zur Speicherlogik 538 gelangt, wird logisch 0 werden,
wodurch es anzeigt, daß der Modul 512 gerade einen Speicherzyklus
ausführt. Gleichzeitig wird MOD512RDY logisch 1 und
aktiviert dadurch den Zeitgebersequenzgenerator 2010 und einen Eingang des Steuerregisters 20.12. Beim nächsten
20CLK-Impuls (150 ns) wird CADRENBM0D512A aktiv werden,
um die Speicheradresse von dem Speicher-Flipflop 528 auf den ADR-Bus 530 zu übertragen, während RADRENBM0D512 den
Ausgang des Speicher-Flipflops 526 blockiert. Gleichzeitig wird das vom Zeitgebersequenzgenerator 2010 zum Steuerregister
2018 gelangende Signal ATGI aktiv, so daß M0D512CAS beim nächsten folgenden 20CLK (200 ns) aktiv wird. Das zu
den Eingängen der Steuerregister 2016, 2020 und 2022 geführte Signal ATGi+ wird drei 20CLK-Impulse nach ATGI
(300 ns) aktiv. Beim nächsten 20CLK-Impuls (350 ns) wird ACCESSM0D512 aktiv, während M0D512RAS0/M0D512RAS1 beendet
wird. Einen 20CLK-Impuls nach ATG4 (350 ns) wird ATG5 aktiv und aktiviert die Eingänge der Steuerregister
2012 und 2014. Beim nächsten 20CLK-Impuls (400 ns) wird
RADRENBM0D512 aktiv, während CADRENBM0D512 das Speicher-Flipflop
526 sperrt. Zu dieser Zeit wird das zur Speicherlogik 538 gelangende Signal M0D512RDY logisch 1, wodurch
es anzeigt, daß der Modul 512 bereit ist, einen anderen
Speicherzyklus anzunehmen. M0D512RDY blockiert auch die
Eingänge des Zeltgebersequenzgenerators 2010 und des Steuerregisters 2012. Gleichzeitig wird ATG6 aktiv, um
die Eingänge der Steuerregister 2016 und 2018 zu aktivieren, so daß beim nächsten 20CLK-Impuls (450 ns) ACCESSM0D512
und M0D512CAS beendet werden. Dies beendet einen Zyklus des
Zeitgebergenerators 52/f.
Den Steuerregistern 2012 bis 2022 werden Setz/Lösch-Eingangssignale
REFADRSET , REFADRCLR, REFRASSET und REFRASCLR
030020/0815
vom REF-Bus 557 zugeführt· Diese Eingangssignale steuern
den Zeitgebergenerator 52i+ während des Auffrischens,
wie früher diskutiert wurde, und was unten noch weiter besprochen wird. Den Steuerregistern 2012 bis 2022 werden
auch Setz/Lösch-Eingangssignale MEMRESET zugeführt, wie
früher besprochen wird und was unten noch weiter erörtert wird. Die Steuerregister 201 ^, 2016 und 2018 empfangen
auch das früher nicht erwähnte Signal GPPRESET. GPPRESET ist ein Mehrzweck-Voreinstellsignal des Rechners
310, das verwendet wird, um den Zeitgebergenerator 52if
zurückzusetzen, wenn der Unterspeicher 313 zurückgesetzt wird.
Die Speicherlogik 538 ist in den Fign. 21 bis Zk gezeigt
und wird nun beschrieben.
In Fig. 21 ist die Schaltung gezeigt, die die Adressbits für die Leiterplatten-, Modul- und Bankauswahl vom
BMS-Bus 539 empfängt und decodiert. Diese Schaltung liefert Signale MODSTART (512, 51If1 516, 518), M0D(512,5H,
516,518)SEL(O,1), MEMSORRY und andere innerhalb der Speicherlogik 538 verwendete Signale,
Wie oben ausgeführt wurde, können bis zu acht Unterspeicher 313 parallel geschaltet werden, um eine Kapazität
von 1 Megawort (1.000.000 Wörter) für den Rechner 310 bereitzustellen. Daher ist es nötig, jeden einzelnen
der acht möglichen Unterspeicher 313 selectiv zu adressieren. UND-Glieder 2110 mit drei Eingängen und ihre zugeordneten
Eingangsschaltungen führen diese Adressierfunktion aus. Die Glieder 2110 empfangen und decodieren
Adressbits MH 6, M117 und MH 8 und werden durch MEMSTART
und INHSEL zur Lieferung von BOARDSELECT aktiviert.
030020/0815
BOARDSKLECT zeigt dann an, daß die selektierte Adresse
innerhalb des speziellen Unterspeichers 313 liegt und veranlaßt die Tätigkeit dieses Unterspeichers 313·
INIBEL ist ein separates Steuereingangssignal für den Unterspeicher 313, das den Beginn der Tätigkeit des
Unterspeichors 313 blockiert und tatsächlich als zusatzliches
Adressbit dient. INHSEL ermöglicht es, daß eine Vielzahl von Geräten, die dasselbe 20-Bit-Adressfeld
wie der Speicher 311 haben, an die MEMIN- und MEMOUT-Bus3o
520 und 318 angeschlossen werden können und selektiv
aktiviert werden können, so daß hierdurch Konflikte beim Adressieren vermieden werden« Die Adressbits
MI16 bis MH8 können den Eingängen der Verknüpfungsglieder 2110 direkt oder durch Inverter 2112 zugeführt
werden, je nachdem wie dies durch ein Schaltdraht-Programmiernetzwerk 211/+ wahlweise bestimmt ist. Das
Schaltdrahtnetzwerk 211^ gestattet es, daß jeder Unterspeicher
313 individuell so programmiert wird, daß er auf eine separate Kombination von Leiterplattenauswahlbits
MI16 bis MI18 anspricht, wodurch eine Decodierfunktion
eins aus acht durchgeführt wird. Ebenfalls gezeigt sind vier Reserveeingänge zu den Verknüpfungsgliedern
2110. Die Reserveeingänge erlauben eine Flexibilität beim Programmieren der Verknüpfungsglieder
2110, z.B. um eine Änderung der Anordnung der Leiterplattenauswahladressbits innerhalb des Adressworts zu
ermöglichen.
Ein 1-Aus-8-Decoder2116 empfängt das Bankauswahlbit M119 und die Modulauswahlbits MHi+ und M115 vom BMS-Bus
539· Der Decoder 2116 liefert Ausgangssignale
MDD(512,51 Jf1516,510)SEU0,1)· Diese acht Ausgangssignale
zeigen an, ob die ausgewählte Adresse im Modul 512, 51 *t,
030020/0815
29ΑΑ419
516 oder 518 und in der Bank 520 oder 522 des ausgewählten
Moduls liegt. Die Signale MOD(512,51*+,516,510)SEL(0,1)
werden durch Inverter 212if invertiert, die Signale MOD(512,51^,516,518)SEL(O,1) an die Zeitgebergeneratoren
524 der Speichermodule 512 bis 5I8 liefern. Die Ausgangssignale
nODC5l2,51i+,516,51ö)SEL(0,1) werden mittels der
ODER-Glieder 2126 mittels einer ODER-Funktion verknüpft, um mOdSTART(512,51/+,516,518) an die entsprechenden
Speichermodule 512 bis 518 zu liefern.
Inverter 2120 invertieren die Modulauswahlbits Mil if und
MII5, um Signale mit der richtigen Polarität an den
Decoder 2116 zu liefern. MI19 ist ein Bankauswahlbit, es sind jedoch drei wahlweise verwendbare Bankauswahleingänge
mittels eines Schaltdrahtnetzwerks 2118 vorgesehen, um die Bankauswahlsignale innerhalb des Adressworts
flexibel anordnen zu können·
Der Decoder 2116 wird durch das Signal REFRESHING über
die Verknüpfungsglieder 2122 angesteuert, um eine Tätigkeit des Decoders 2116 während eines Auffrischzyklus
zu blockieren· 10CLK wird dem Eingang der Verknüpfungsglieder 2122 zugeführt, um die zeitliche Lage der Ausgangssignale
des Decoders 2116 zu steuern.
Das früher beschriebene Signal MEMWAIT wird einem Aktivierungseingang
des Decoders 2116 zugeführt, um die Ausgänge des Decoders 2116 zu blockieren und die Erzeugung
des Signals M0DSTART(512,51if,516,518) zu verzögern·
Beispielsweise dann,wenn Daten zwischen dem Speicher 311 und einem langsameren Speicher übertragen werden
müssen, mögen beide Speicher gleichzeitig adressiert werden und der Unterspeicher 313 verzögert werden, bis
030020/0815
dei· lan gs;j Me ro .Speicher fur die Übertragung bereit ist.
Der Decoder 2116 empfängt auch ein aktivierendes Eingangssignal
STAfiTREADY von NAND-Gliedern 2128 mit vier Eingängen·
Die NAND-Glieder 2128 vergleichen das Signal MODRDY von den Modulen 512 bis 518 mit den Modulauswahladressbits
MHi+ und MH 5. Jedes NAND-Glied 2128 liefert
ein Ausgangssignal, das anzeigt, ob der ausgewählte Speichermodul gerade einen Speicherzyklus ausführt.
STARTREADY aktiviert den Decoder 2116, falls der adressierte Modul nicht gerade einen Zyklus ausfuhrt.
Der Decoder 2116 wird blockiert, falls der ausgewählte
Modul gerade einen Zyklus ausführt.
STARTREADY und REFRESHING werden durch ein Verknüpfungsglied 2130 mit BOARDSELECT verglichen, um das Signal
MEMSORRY zu erzeugen, falls der Unterspeicher 313 gerade
mit einem Auffrischzyklus beschäftigt ist, oder falls
der ausgewählte Modul gerade einen Lese- oder Schreibzyklus ausführt.
In den Fi gn. Z2. und 22A ist die Schaltung der Speicherlogik
530 gezeigt, die DATAINLATCH und die Signale des
OUTCNTL-Bus 559 erzeugt, das sind OUTSEL(O1I)1
ACCESSCLK(W,X,Y,Z), OUTPUTSEL(W1X1Y1Z), und MSMDRIVE.
Diese Schaltung ist in erster Linie mit der Übertragung von Daten von den Modulen 512 bis 518 zum MEMOUT-Bus 318
befaßt.
In Fig. 22 empfangen NAND-Glieder 2210 mit zwei Eingängen
die Signale ACCESSM0D512, 51 Zf und 516 von den Modulen
512 bis 516. Die NAND-Glieder 2210 decodieren diese Eingmgssignale,
um Signale OUTSELO und 0UTSEL1 an den
030020/081 5
Ausgabernultiplexer 540 zu liefern. Wie oben beschrieben,
steuern OUTSELO und OUTSELl die Übertragung von Daten von
den Bussen ϋΟΛ-Bus 513 bis DOD-Bus 519 auf den MO-Bus 541.
ACCESSMOD518 wird nicht für diese Decodierfunktion benötigt
und wird nicht benutzt.
Ebenfalls in Fig. 22 gezeigt ist die Schaltung zum Erzeugen von ACCKSCLK(W,X,Y1Z), Diese Schaltung erzeugt sequentiell
ACCESSCLK-Signale für die Ausgaberegister 5L\2 bis
548, um Daten von den Modulen 512 bis 518 zu den Ausgaberegistern
542 bis 548 zu übertragen. Die Signale
ACCESSCLK(W1X^1Z) werden von Flipflops 2212, 2214,
2216 bzw, 2218 geliefert, die ein 4-Bit-SchBberegister
bilden. MEMRESET und GPPRESET werden den Setzeingängen und Löscheingängen der Flipflops 2212 bis 2218 zugeführt,
um das Schieberegister am Anfang so zu setzen, daß das Flipflop 2212 eine logische 1 und die Flipflopu 2214 bis
2218 jeweils eine logische 0 enthalten. Die Ausgänge der Flipflops 2212 bis 2214 sind mit Eingängen eines Vierfachmultiplexers
2220 von zwei Leitungen auf eine Leitung verbunden, dessen Ausgänge mit Eingängen der Flipflops
2212 bis 2218 verbunden sind. Der Multiplexer 2220 kann Ausgangssignale der Flipflops 2212 bis 2218 zu ihren zugeordneten
Eingängen übertragen oder zu Eingängen der nächst-benachbarten Flipflops, Eine zuerst im Flipflop
2212 erscheinende logische 1 kann dadurch so übertragen werden, daß sie nacheinander an den Ausgängen der Flipflops
221 4, 2216 und 2218 in dieser Reihenfolge erscheint,
und dann wieder am Ausgang des Flipflops 2212. Die Ubertragungsoperation, d,h, ob ein Ausgangesignal
eines Flipflops zu seinen Eingängen zurückgeführt wird oder zu dem Eingang des nächst-benachbarten Flipflops
gelangt, wird durch Eingangssignale ATGZf eines NOR-Glieds
2.Z2.2. von den Spoichermodulcn 512 bis 518 gesteuert.
030020/081 5
Das Ausgangssignal des NOR-Glieds 2.2.2.2 wird durch ein
Flipflop 2223 um eine Periode des Signals 20CLK verzögert und dem Auswahleingang (select) des Multiplexers 2220
zugeführt. Das Auftreten eines Signals ATG^ wird daher
eine logische 1 in einem Flipflop zur Folge haben, das anzeigt, daß das Ausgaberegister, in dem ein Wort bei
einem früheren Lesezyklus gespeichert worden war, in das nächste Flipflop übertragen werden soll, um das nächste
Ausgaberegister in der Folge zu takten. Wie oben erläutert, liefern die Zeitgebersequenzgeneratoren 2010 der Zeitgebergeneratoren
52i| ein Signal ATG5 gleichzeitig mit
ACCi]SSMOD. ACCESSMOD zeigt an, daß ein gültiges Wort auf
dem Ausgabebus des Speichermoduls vorhanden ist. Dadurch erfolgt eine Schieberegiaterübertragung bei jedem Speicherlesezyklus,
so daß aufeinanderfolgend ausgelesene Wörter aufeinanderfolgend in den Ausgaberegistern 5^+2 bis 31S
gespeichert werden. Die Flipflops 2212 bis 2218 werden durch 20CLK getaktet, ebenso die Zeitgebersequenzgeneratoren
2010, so daß die Auswahl eines Ausgaberegisters und die Übertragung der Daten synchronisiert sind.
In Fig. 22A ist die Schaltung gezeigt, die OUTPUTSEL(W,X,Y,Z)
erzeugt. Die Signale OUTPUTSEL(W,X,Y,Z) werden durch ein
if-Bit-Schieberegistor erzeugt, das Flipflops 2ZZh, bis
223Ο und einen Multiplexer 2232 aufweist, die in der
gleichen Weise arbeiten wie das Schieberegister von Fig. 22. Die invertierten Ausgänge $ der Flipflops 222**
bis 223Ο liefern OUTPUTSEL(W,X,Y,Z). Wiederum werden die
Flipflops 22.Zk bis 2230 durch MEMRESET und GPPRESET gesetzt
und gelöscht. Sie werden jedoch durch MEMCLK getaktet.
Eine logische 1 wird sequentiell vom Flipflop 222k zum Flipflop 2230 und zurück zum Flipflop 222k durch den
Multiplexer 2232 übertragen, der durch ITG3 gesteuert wird.
030020/081 5
29U419
ΙΤΰ5 wird durch ein if-Bit-wchieboregister erzeugt, das
Flipflüps 223*+ bis 22/+0 aufweist. Die Flipflops 22^/+ bis
22A+0 werden ebenfalls durch MEMCLIv getaktet ,und ihr
ursprünglicher Startzustand wird durch MEMRESET und GPPRESET gesetzt. In diesem Fall werden die Flipflops
223^ bis 22/+0 anfanglich so gesetzt, daß sie alle eine
logische 0 enthalten. Das Flipflop ZZJ>k, das erste Flipflop im Schieberegister, wird mit einem Eingangssignal
STARTITU von Verknüpfungsgliedern ZZkZ und 22/|if versorgt.
STARTITG mag geliefert werden, wenn das Verknüpfungsglied ZZkk das Signal BOARDSELECT empfängt (der Speicher
31J) soll einen Lese- oder Schreibzyklus ausführen),
aber es kann durch das Verknüpfungsglied 22^2 blockiert
werden mittels der Signale STARTREADY und REFRESHING (der Unterspeicher 313 führt gerade einen Auffrischzyklus
auf oder es ist eine Anforderungsstörung aufgetreten).
Wenn STARTITG erscheint, läuft eine logische 1 durch das
Schieberegister und erscheint am Ausgang des Flipflops
22IfO als ITG3 vier Perioden des Signals MEMCLK später,
d.h. /+00 ns. Dies ist die Verzögerungszeit zwischen dem
Beginn einer Speicheranforderung und dem Erscheinen eines ausgelesenen Worts auf einem der Busse DOA-Bus 513 bis
DOD-Bus 519· Das zum Multiplexer 2232 gelangende Signal
ITG3 bewirkt, daß STARTITG in den Flipflops ZZZk bis 2230 vorwärtsrückt, wenn MEMCLK auftritt, wodurch nacheinander
die- Ausgänge der Ausgaberegister ^kZ bis 5^8 aktiviert
werden. STARTITG ist solange aktiv, wie BOARDSELECT aktiv
ist und nicht durch STARTREADY oder REFRESHING blockiert ist. Es wird daher eine kontinuierliche Zeichenreihe von
logischen Einsen durch die Flipflops 223** bis 22ifO fließen,
und es v/ird eine sequentielle Datenübertragung zwischen den Ausgaberegistern 5'+2 bis 51$ und dem MEMOUT-Bus
in MEMCLK-Intervallen erfolgen.
030020/0815
- .75 -
Z94U19
W'.nn BOARDSELECT inaktiv wird, oder STARTITG durch
STALTREADY oder REFRESHING blockiert wird, endet ITG/3
/|00 ns danach. Dies ist die Verzögerungszeit dafür, daß
das zuletzt angeforderte ausgele.sene Speicherwort in die
Ausgaberegister ^Zf2 bis ^h'd durch ACCESSCLK(W, X, Y, Z) und
auf 1-!"!HOIJT durch OUTPUTS EL (W, X, Y, Z) übertragen wird. Wenn
MEMCLK beendet wird, z.B. wegen des Signals MEMSORRY, wird die Arbeit der Flipflops 22.5^ bis 22/fO und Z2.Z>\ bis
ji,_'5O der Schieberegister eingestellt und die Übertragung
von Wörtern von den Ausgabe-Registern 5Ί-2 bis s^ü wird
ITG'' ist ein Eingangssignal eines Verknüpfungsglieds 22/f6
um 1 in Signal FffÜMTTW für den Ausgabetreiber cj%) zu erzeugen.
ITG5 wird durchgeschaltet mit MODIS, einem externen
Sperrsignal, beispielsweise von der ERCC-Logik 519,
das eine Datenübertragung vom O-Bus !551 auf den MEMOUT-Bus
;'A6 verhindert.
Ebenfalls gezeigt ist ein Flipflop 22/f8, dem als Takt das
Signal 20CLK und als Löschsignal 10CLK zugeführt wird. Das Flipflop 22^8 erzeugt das Signal WINDOW, wie oben
beschrieben· WTrDÜW wird als das eine Eingangssignal zu
einem Verknüpfungsglied 2250 geliefert, ebenso das Signal
ITGO vor. Fl.i.pflop 223h, um das Signal DATAINLATCtI für das
Daten-Speichor-Flipflop 5>6 zu liefern. ITGO erscheint
cine ILIMCLK-Periode nach dem Erscheinen von ßOARDSELECT
und somit zur gewünschten Zeit, um Datenwörter vorn MI-!ius :<-ö in das Daten-Speicher-Flipflop 5:;o :-,u übertragen.
In den Fign. 2j5, 23A und 2'3B ist die Schaltung der Speicherlogik
538 gezeigt, die das Auffrischen des Speichers und
(ten ßaUeriehilfsbetrieb (BBU) steuert.
030020/0815
In Fi;1;. ,'.■'· Weraeti Zähl err! A () und d ;'.·]<: durcti IOCLK ;;;e tai" t"i.
un I :ιΚ:;;;;;·.ίι Jie Zeit zwischen eiiu;r (Yiiheivr. Aui'frischanioruerun,1;,
tier nächsten Auffri^chanionierurii;, LuIi11RiA1 1 und der Bedingung
LATKR KFR Κ:; Ii. Der Zähler ?--)\d liefert da:: Λα:;;:ηπ; ;:.;-signal
k'KFrlNB, da:j die i'Irzeu/'un/'; du;; i;i/';naio i-iι·;Ki-ii!'J aktiviert,
ua:; .Signal LATKRiVi^Ri',1^!!, da;J anzeigt, dali die
ma,:.imal. ::ul u;;;;i.(-;e Zeit verstrichen i.Jt, und ΠΚίιΡ^ίΤΠίΐίίι,
d;iu ; -■. rv/e ndo-1 wird, urn die Batteriehiif sbe ti-ieb-Operai ion
(liBlj) eiiu'.u'ltii ten, wenn das LATrli-i^li^IiKGII-Interval Luhtseiir'iL
Leu v/ordeu ist. id'iFKNB wii'd an ein Fiipfluo
<'51i| .^elit;j.V'rt,
(ias durch K)CLK r.etaktet wird und t<i-;F.;!.'') li.'LVrt.
ΙΤΤΡΤΓΤ^ v/ird ^uriicl". :'AU:i .'m; t^oiiifiarii; deu Flipfiop:; 'd >\l\ rvi'ührt,
um darj FIiT)TlO]) 2.y]!\ im liill'Ta/^-Zu^taiid ::u blockieren,
bi>j ein Auf Criüchzykluü ein/';oleitet wird. JJie d;i:;
;>jr;i;,-.l IsJiU erzijUi,ende .")Clialtuat'; i:.;t cbenfall.; in )''i;:. J-'-
, /".:c 1 r. L , aber die Becprochuni·; dl<:.;er ,''paltun.;' v;.ir-ti ver·-
.;eiioi>, .·η , bir, die Auf fr L;;clii'.elialtunr; in d«in Fi.-:n. Il '3 Λ uiui
.-! >ij ai.;i;ut ie rl warden id. o
In Fi,-. <-".■ Λ v:ii'd ein Zahler 2 516 durch U)CLK r;ot iktet und
liufert Zeitimpuiaauüpi.ngiifji^nalc RTGü bis k'i'G';, die die
Foi;;e von !rei^niüoen während eines Auffi'iuchzykJ.uu
:;t,;uei-n. Die Täti^kx-it dou Zahlern 2\j1b wird durch oiu
Kin^an^G^irnal von dem eine Mehrzahl von Kinc; ui/;en aui'-weiijonden
Verknupfunc^/^lied 'd 51 ο veranlalito Ua;j Verknupl'unr;j(,"Liod
2.j>\'6 ermittelt drei Bedin^un; 1^n :',uta V'finia;;Gen
eineu Auf f ri.'/.chiiykiuu, und ein AuGr;an/,';;;; irna L de.·.;
/i^iiil· rr; .-'5i6,da3 den Auf frisohzykl us beendet.
Ijj t;
>.r:jte de-dinr;un,^ verlangt, daii dt.:r üiitor:j[n:icher ■'·]■'<
u'i:t er.; ten verf urbaren ,Speiciwr^ykiu.'; nach ei.iu.-r· Auffriijcli
aiiford'.-riin,!'; mit Bencliiaf·; bcle^jt, um einen Aui'friGciiiiyklu^;
au-.^Uf uhren β l)i^-.';e bedingurii1; tritt auf, wejin ΐ3οΑΠΐλΓ;ί!Κ:·"!0ΐΓ ,
030020/081 5
BAD ORIGINAL
invertiert durch einen Inverter 2 520, anzeigt, daß augenblicklich
keine Anforderung des Speichers 31'; gemacht wird;
BBtJ zeigt an, daß der Unterspeicher 513 augenblicklich nicht im Batteriehilfsbetrieb ist; MOD.JRDY von einem Verlinüpfungsgllud
2 522 mit den Eingangssignalen MOD ( 512,51 h, 516, 51 o1
von don Modulen Ή2 biG 51 ö zeigt an, daß keiner der Module
512 Ij:L· 51 ο gerade einen Logo- oder Schreibzyklus ausführt;
und RI-IFRlIv1I zeigt an, daß ein Auffrischzyklus angefordert
Die i'.Ki'·, i U; Bedingung stellt den ßeginn eines späten .'uii'r
i:;chzyl:lus dar; ein Auf lYisehzyklu:.1. ist angefordert worden,
aber ein Spelcherzyklus .ist nicht verfügbar gewesen,
bi;: u, l\ /US abgelaufen waren. In diesem Fall empfängt das
Verknüpfungsglied 231 υ BBÜ und Eingangssignale von Verknüpfungsgliedern
'<±-j2.l\ und 2326. Das Verknüpfungsglied
232'| erhält Eingangssignal REFREü und IJITEREFRESII, die
anzeigen, daß ein Auffrischen angefordert v/urde und sich
über 6,^xas hinaus erstreckt hat. Das Verknüpfungsglied
2326 erhält ein !'Eingangssignal MODSRDY, das anzeigt, daß die Module 512 bis 51Ö gerade keinen Lese- oder Schrcibzyklus
ausführen.
Bei der dritten Bedingung empfängt das Verknüpfungsglied
2518 die Signale REFREQ, BBU und LATEREFRESH; dieser Fall stellt den Beginn eines Auffrischzyklus dar, während der
Unterspeicher 313 im Batteriehilfsbetrieb ist.
Das Verknüpfungsglied 231 '6 liefert eine logische 1 über
einen Inverter 2319 an den Dateneingang des Schieberegisters
2;.;16, falls irgendexiie dieser Bedingungen erfüllt
ist. Die logische 1 erscheint dann nacheinander an den Ausgängen RTGO bis RTG3, wobei sich die Ausgangssignale
030020/0815
294U19
miL άι,ιη ViiuJ't logisch 1 von KTGU bio ί zeitlich überlappen,
wie i)i uon Zeituiaf:rai:u;icn Fig. 7 und ') bic 15 gezeigt i;;t,
UtiLei· Bezugnahme auf beide Figuren 2 >A und 2vB sind UTGO
bi;·. i\";'(i;) wingangsuignale für eine Schaltung, die Inverter
ii-)cio und NAND-Glieder 2330 mit zwei Hingängen aufweist.
Die NAND-Glieder 2330 wiederum erzeugen BEFADRr1 KT,
Yi :FADnCTJi,und zwei RiCFliASSET-AusgangGsignalo.
Zwei R
signale werden erzeugt, um die Belastung für die I]AHl)-Glieder
2330 zu trennen.
Di. von den Hingängen der Inverter 2328 den Verknüpfungsgliedern
2318 und 2r32 zugo führt en ilingangsoignalu P; TG 3
uiKi UTGO beenden die Kingabe der Auffrischsteuersequenz
in dan Schieberegister 2316 und beenden dadurch den Auff
ri schzyklus.
RTO und RTG3 sind isingangSGignale für ein Verknüpfungsglied
2335· Das Ausgangssignal des VerknüpfungsgliuüG
2353 und BBU sind Eingangesignale eines NOR-Glieds 2voi(, das
das Signal RK1FADREHB erzeugt. REFADRENk ist ein Aktivierungssignal
für Zähler 2336 und 2338 und Multiplexer 23^0 und 23A2, die Auffrischadressen RlCFADR (0-6) erzeugen·
Die Zähler 2536 und 2"53o werden durch RTG2 getaktet und
erzeugen aufeinanderfolgende AuffrischadreGsen für jeden
Auffrischzyklus· Die Multiplexer 25^0 und 23^2 invertieren,
gesteuert durch REFADRSKT die Ausgangssignalo der Zähler 2356 und 2338, um das Signal REFADRC0-6) auf den
Ki'lFADR-BuG 531 während des Auffrischer^ ^:u bringen, und
logische Nullen zu allen anderen Zeiten.
Die XJngangGöignale LATREFRrXH und R-."IFRi-^ eines NAND-GliecL
Z"A\l\ und die iJingangssignale RTGO und RTG3 eines
030020/0815
BAD ORIGINAL
IJOK'-Glieds 2;>if6 zeigen an, daß ein später Auffrischzyklus
gerade erzwungen wird bzw« daß ein Auffrischzyklus gerade
ausgeführt wird. Die Ausgänge der Verknüpfungsgliede 234Λ
und 23Ί6 sind mit den beiden Eingängen eines ODER-Glieds
23/18 verbunden, das REFRESHING erzeugt.
Wir kehren zurück zur Fig. 23 und der BBU-Schaltung (Batteriehilf
sbetrieb). PWROK wird dem D-Eingang eines Flipflops 2356 zugeführt, und das Flipflop 2356 wird durch RTG2 getaktet,
wodurch bewirkt wird, daß PWROK, wie oben beschrieben, während jedes Auffrischzyklus abgetastet wird.
Ausgangssignale BBU und BB\J werden an die Schaltung der Fign. 23A und 23B geliefert, wie oben beschrieben wurde.
Eingangssignale LATIiREFRESH und HELPSETBBU eines Verknüpfungsglieds
2350 erzeugen ein Signal für ein Verknüpfungsglied
2352, das anzeigt, daß die Periode für
die Einleitung eines spaten Auffrischzyklus überschritten worden ist. Die Eingangssignale 10CLK und REFREQ eines
Verlcnüpfungsglieds 2354 liefern ein getaktetes Signal an
das Verlaiupfungsglied 2352, das ein Auffrischen angefordert
v/orden ist. Das Ausgangssignal des Verknüpfungsglieds 2352 wird dem Setzeingang des Flipflops 23% zugeführt,
um die Erzeugung von BBU zu erzwingen und dadurch den Speicher 313 in den Batteriehilfsbetrieb zu
bringen. Dieses Merkmal schützt dagegen, daß möglicherweise
ein Auffrischen des Speichers 313 wegen eines unentdeckten
Fehlers der Stromversorgung oder beim Anschalten des Rechners unterbleibt.
In Fig. 23A sind BBU und gPrESET Eingangssignale eines
ODER-Glieds 2358. Das ODER-Glied 2358 liefert ein Ausgangssignal an eine mit großer Leistung versorgte Treiberschaltung
2359, die einen Transistor 2360, eine Diode 2362,
030020/081 5
29A44
Widerstände ZjGl\ bis 2368, und einen Kondensator cij'b'J
enthalt. Die Treiberschaltung 2359 wiederum liefert ein
Signal MEMRKSFlT an die Schaltung des Speichers 5Γ'·
immer dann, v/enn der Speicher 31 rJ in den Batteriehilf.';-bolriob
überseht oder ein Signal GPRTSET empfängt.
Ks wird nun mit Fig. ZyQ fortgefahren. Kf]MRESET uiv-\
RTG."'' sind Eingangssignale eines ODER-Glieds <·7/0. l)as
ODER-Glied steuert eine mit großer Lcistunr; versorp:te
c ?.V/\ au, die gleich ist cior :!.'.--oiboi%-
jciia Ltun,.',· f!;.)';'/1 für da;; ,^irnal KEMRES 17I1, wobei s Io das
R^CLTi immor dann liefert, wenn MT!m1T:7;?TET
auftritt, oder beim Auftreten von RTG3 wahrend e:ines
AuffrischZyklus,
Schließlich wird auf Fig. Zi\ Boaug genommen, in der Taktverteilschaltungen
des Unterspeichers 313 geneigt sind.
Die .Signale 10CLK und 1"DjIMCLK werden durch Troibor-Voi—
luiüpiungsschaltungon 2i|-10 bzw. 2i|-12 gepuffert, um in der
Schaltung dos Unterspeichers 313 verteilt zu werden, wie oben beschrieben. 20CLK wird durch ein Verknüpfungsglied
2^1i+ invertiert und gepuffert, und es wird wiederum
durch einen Leistungsinverter 2i|l6 gepuffert, um 20GLK-Ausgangssignale
an den Untorspeicher 313 ^u liefern.
Es ist eine Mehrzahl von 20CLK-Ausgangssignaleri vorgesehen wegen der umfangreichen Verwendung des Signals
20CLK im Unterspeicher 313» und dadurch v/ird die Belastung
für ,jedes 20CLK-AusgangSoignal verringert.
Die Besprechung der Schaltung und Arbeitsweise des Unterspc'ichers
313 ist hiermit abgeschlossen und einige Merkmale
des Unterspeichers 313 werden unten zusammengefaßt.
030020/0815
BAD ORIGINAL
F. Zusammenfassung von Merkmalen dos Unterspeichers ~fAJ>
Bestimmte Merkmale des Unterspoiehers yi.y, die neben anderen
oben beschrieben sind, sind:
1.: i'is sind voneinander getrennte Busse MEMIN-Bus 520 und
MEMOUT-Bus 51 ϋ vorgesehen. Jeder Bus hat daher entweder
eine einzelne Treiberschaltung und eine Mehrzahl von Empfängern oder eine Mehrzahl von Treibern und einen einzelnen
Empfänger, Dieses Merkmal verringert die kapazitive Belastung des MEMIN-ßus 320 und des MEMOUT-Bus 318, z.B.
aufgrund der Verdrahtung der Busse, der Stecker auf der Rücksuite des Pults,und dor I/C-Eingänge und Ausgänge,
und verringert auf der Vielzahl von Abschlüssen beruhende Busroflexioncn. Dies gestattet es, daß der Entwerfer eines
kochners bestimmt, wo jeder einzelne Bus abgeschlossen wird, um minimales Rauschen zu erzielen, und vergrößert
durch Verringerung der Belastung der Busse die Datenbandbreite,
die durch die ΜΕΜΙΠ- und MEMOUT-Busse zur
Verfugung gestellt werden kann.
2.: Die Speichermodule 512 bis '318 und die Speicherlogik
53Ö führen innerhalb desselben Intervalle (das normalerweise
^|00 ns betragen mag) alle Spoicheroperationen aus,
das sind Lesezyklen, Schreibzyklen, und Auffrischz.yklcn.
Die Z.yklusperiodo des Unterspeichers 31 5 wiederum ist ein
Vie Lfaches der Zyklusperiode des Speicherbusses (die 100 ns
betragen mag). Dies gestattet, gemeinsam mit der unabhängigen und überlappten Arbeitsweise der Module 512 bis 518,
einen Speichorzugriff in Intervallen des Speicherbuszyklus.
Zusätzlich ist die Verbindung(interface) zwischen beispielsweise der GPU 31 *l· oder dem PFP 312 und den
MEMIIi- und IIEMOUT-Bussen vereinfacht. Wie unten unter
030020/0815
- 82 -
Bezugnahme auf PFP 312 weiter erläutert wird, führt ein
mit dem Speicher 513 in Verbindung stehendes Gerät einen
Schreibzyklus dadurch aus, daß es die Schreibadresse auf
den MEMIN-Bus während eines ersten Speicherbuszyklus und die einzuschreibenden Daten auf den MEMIN-Bus beim nächsten
Speicherbuszyklus bringt. Ein Lesezyklus erfordert nur, daß ein anforderndes Gerät auf den MEMIN-Bus 320 während
eines Speicherbuszyklus bringt, eine ganze Anzahl (z.B. Jf) Speicherbuszyklen wartet und die Daten auf dem MRMOUT-Bus
318 in seine eigenen Eingaberegister überträgt» Das
Lesezyklus-Interface ist weiter dadurch vereinfacht, daß vorgesehen ist, daß MEMSORRY einen erweiterten Buszyklus
erzeugt, wenn eine Störung bei der Speicheranfrage auftritt.
3·: Die Transparenz des Unterspeichers 313 für Fehlerkorrekturcodebits
von Wörtern ergibt eine erhöhte Flexibilität bei der Benutzung des Speichers 313· Die Wörter
können vom Benutzer in jeder gewünschten Weise organisiert werden. Weiterhin ist durch Ausführen der Fehlerkorrektur
in der CPU 31kf nicht jedoch innerhalb des Unterspeichers
313, die Komplexität der Schaltung des Unterspeichers
verringert. Dies gestattet eine größere Speicherkapazität auf einer einzelnen Schaltungsplatte und verringert die
Durchlaufzeitverzögerung des Unterspeichers 313·
4·: Die Gemeinkostenbelastung der CPU 31^ wird dadurch verringert,
daß man das Auffrischen zu einer internen Funktion des Unterspeichers 313 macht. Weiterhin ergibt das Auffrischen
des Unterspeichers 313 einen maximalen Zugriff
zum Speicher 313· Der Unterspeicher 313 führt die Auffrjjschoperationen
nur während jener Speicherzyklen aus, die von der CPU 31 Zf, dem PFP 312 oder anderen Geräten nicht
• eine Leseadrease ./.
030020/0815
für (ion Zugriff benötigt werdon. Dies verringert auch v/irkungsvoll
die GemoirikoGtonzoit dos Unterspeichern ?1 >·
5. ι -Dadurch, daß für jeden dot· Spuichermodule [Ad bis 51Ö
eine eigene oequenzsteuerschaltung vorgesehen ist, wird
eine maximale Flexibilität der Operation dos Untcrspeichers
313 erzielt. J.iin weiteres Merkmai der Schaltung des Unter-Gpoiclier.'j
31 >, z.B. der Zeitgebor^eneratoron S'2if, ict die
iinfachliei t, mit der Zeitceberaenuenzc-n er^eur't werden.
Die Zuii-jjebv/rüequenaen v/ei'den durch ein 3chii.'bi!i'e(!;istor ei·-
z.jiift, doGGon '!.'ati^-hoit durch irgendein /Irci^nia veranlaßt
wird, und dan aufoinndcrfol^ende Zeit^eberauüran^üimpulse
liefert.
6«: Dio übi;L'Li'aLjun·; von Daten und Adressen durch BuGGe im
UntoTGpoicher 313 verringert dac insgesamt von Bucsen eingenommene
Gebiet der Schaltung plat te des UnterGpeichers
313· Dies gestattet C3, daß der Unterspeicher 313 auf einer
einzelnen ochaltungsplatte konstruiert werden kann, wobei ein maximales Gebiet auf ihr für die Datenspeicherung vorgesehen
ist, Jiin Gesichtspunkt der Busanordnung des Unterspeichers
313 ist die Verwendung eines einzelnen gemeinsamen
Busses zur parallelen übertragung von Datenwörtern oder Adressen zu einer Vielzahl von empfangenden Punkten;
Steuersignale; übertragen dann die durch Busse transportierten Wörter in die ausgewählten empfangenden Punkte.
Dies zeigt eich bei den Bussen MI, DI, RA, CA, MO und
REFADl?. Der ADIi-Bus 530 stellt eine weitere Entwicklung
dieses Gesichtspunkts dar; die Adressen für die Bänke und ^Z?, werden sequentiell übertragen, wodurch die Anforderungen
an cum Adressbus der Bänke 520 und 52.2. halbiert
werden» Win besonderes Merkmal des ADR- und des A-Bussos ist die Verwendung von Speicherelementen 1 /f 10,
030020/081 5
_ hl _
die in der Lage sind, Zeilen- und Spaltenadrossen sequentiell anzunehmen· Kino zweite Kntwicklung erscheint
bei den Bussen IiA und CA, bei denon die Adressen kontinuierlich
parallel zu den Spoicher-Flipflops 526 und 52Ö de.·
Module 512 bis 51B übertreg)η werden· Kin adressierter
Modul belegt eine Adresse dabei lediglich dadurch mit Beschlag, daß er die Annahme von nachfolgenden Adressen
beendet. Dies verringert die zum Adressieren irgendeines speziollen Speichermoduls benötigte Zeit,
Hin zweiter Aspekt der Datenübertragung durch Busse beim Untorspcichor >13 zeigt sich beim O-Bus 551; die l'cgister
5^-2 bis 5^3 verwenden eine Ürei-Zustands-Logik, um die
Daten auf dem O-Bus 551 zu multiplexen. Diese Methode
wird nicht zwischen dem DOA-Bus 513 bis DOD-Bus 519 und
dem KO-Bus 5^1 verwendet; Drei-Zustands-Speiehorolemonto
1üiO schalten zu langsam, um eine gegenseitige Störung
bei den verwendeten Datenraten zu vermeiden. Stattdessen wird der Ausgabemultiplexor 5^0 verwendet. Wie In Kig,
gezeigt ist, ist der Ausgittmultiplexcr l_j>l\0 der einzige
tatsächliche echte Multiplexer im Unterspeichcr bi :3,
7·: Das Schalton des Unterspeichers 513 in den Batteriohilfsbotrieb
(BBU) und aus dom Batteriehilfsbotrieb heraus
erfolgt lediglich während eines Auffrischzyklus, Die Operationszustände der Speichermodule 512 bis plö und
der Speichorlogik 53^ sind daher bekannt, wodurch eine
mögliche zufällige Arbeitsweise des Speichers .'öl3 und
ein Datenverlust vermieden v/erden,
Ein achtes Merkmal ist das Abschalten der Stromversorgung für überwiegende Teile der Speiherlogik 538 und der
030020/0815
1OZ
2944A19
.Speichermodule l;12 bi G ?]o wahrend des Batteriohiiiabetriebs.
Dies verringert die Anforderungen des UnteropoichorG
'Ά'j hinsichtlich der .'3tromvorsorgung für die
Bänke !32O und 'j2.2 und die schaltung für den Batteriehilfsbetrieb
und die Auf f rischs luierung.
.Schließlich sollte beachtet v/erden, daß noch weitere Morktnaie
des Unterspeichers 313 exiütieren und daß dei- UnterapeicxKJP
■>] ■) Leicht go um^ustaltet werden kann, daß or
dem .Speicher 111 des Rechners 110 ähnlich isI, wobei getrennte
Daten- und Adresa-i'Jiiic'abobUiiuo vorgesehen sind.
ijs wurde hierbei ein zweiter Puffer to4 für den Dateneinr;abebu3
L?Ob vorp;oGehen werden, dor Datenaus^an^e ^um
DaLen-opciciier-Flipflop 53ό boreitütellt. Der MMMIN-Bus
^20 und der Puffer 'ö'5h von l''ir;· 3 übertragen dann nur
AdreG^eninforination in den Unterspeicher 313· Dies würde
die ochreibzu[.;riffzoit des Unterspoichers 313 von zv/oi
Zyklen des MDMIN-Busses 320, das sind 200 ns, verringern
auf einen einzigen Buszyklus, in dem es ermöglicht wird, daß die flchreibadresGcn und die Daten parallel in den
Unterspeicher 513 golangen. Dies macht es notif;, die Zeit
des Auftretens von DATAINLATCIi zu ändern, beispielsweise
dadurch, daß das Signal WIIJDOW al·: DATAINLATCH verwendet
wird.
Die Beschreibung des Unterspeichera 31 :>
ist hiermit beendet und als naciujteG wird der Bereitstellprozessor 312 beschrieben·
Bereitstellungsprozessor (PFP) 312 (Fign· H,
Der PFP >12 führt eine Vorausschau nach Befehlen für die
CPU 31^ durch, indem er vom Speicher 311 eine Folge von
030020/081 5
Befehlen vor dem gerade in der Ausführung durch die CPU 31k
befindlichen Befehl abruft und im PFP-Speicher 330 speichert.
Die Struktur und die allgemeine Arbeitsweise des PFP 312 sind oben bei der Diskussion der Architektur und Arbeitsweise
des Rechners 310 beschrieben worden. Die folgende Diskussion beginnt mit einem Glossar der im PFP 312 vorhandenen
Signale, gefolgt von einer Diskussion der Arbeitsweise des PFP 312 auf der Ebene eines Blockdiagramms. Die
Schaltung des PFP 312wird dann dargestellt und schließlich
werden gewisse Merkmale des PFP 312 zusammengefaßt.
A. PFP 312, Signal-Glossar
(1)Bussignale:
(a) MEM0UT(0-19): (MüMORY OUT) 20-Bit-Befehlswort,
das auf dem MEMOUT-Bus 318 erscheint.
(b) MEMIN(0-19): (MEMORY INPUT) echte Adresse mit 20 Bit für den Speicher 311.
(c) CPUPC(O1-^): (CPU PROGRAM COUNT) die acht
niedrigstwertigen logischen Adressbits im CPU PC-Register 36^; verwendet als Befehlszähler
und als Leseadresseneingangssignal für den PFP-Speicher 330.
(d) PFPPCR(O-I9): (PFP PROGRAM COUNT, REQUESTED) echte Adresse mit 20 Bit im PFP PCR-Register
336.
(e) PFPPCFd2-15): (PFP PROGRAM COUNT, FETCHED)
niedrigwertige logische Adressbits im PFP PCF-Register 332, verwendet als Schreibadresseneingangssignale
für den PFP-Speicher 330«
(f) HIADR(0-5, 16-19): (HIGH ORDER ADDRESS) direkte oder kartierte hochwertige echte
Adressbits, die auf dem HIADR-Bus 328 erscheinen«
030020/0815
-.87 -
(g) AL1JOUT(9-1>): (ALU OUTPUT) niedrigwertige
ochto Adroijsbitü, die auf dem ALUOUT-Bus
und dem Bus 526c erscheinen. (2) Einzelne Steuersignale
(a) ALCCRFEXT: (ALC CUl1AII TO K1EQUFJST FETCH, UiCl1ENDUD)
Signal, das anzeigt, daß die CPU .5Tf einen ALC-Befehl
ausführt, der es der PFP j,12 gestattet,
eine Abrufoperation auszuführen.
(b) ALC CYCLE: (ALC CYCLE) Signal, das anzeigt, daß die CPU 3Tf dabei ist, einen Befehl der
arithmetischen und Igischcn Klasse (ALC) auszuführen.
(c) CONSOLKHODK: (CONSOLE MODiI) Signal, das anzeigt,
daß der Rechner 310 unter Steuerung einer externen Konsole arbeitet.
(d) CBS': (CLKAR TO REQUEST FETCH) Signal, das den PFP 312 zur Ausführung einer Abrufoperation
aktiviert.
(c) CTEOO: Signal, das anzeigt, daß der PFP 312
keine Befehle für die CPU 31 /f hat.
(f) CTEQl: Signal, das anzeigt, daß der PFP 312
nur einen verbleibenden Befehl im Speicher YjQi für die CPU 31K hato
(g) CTGTl: Signal, das anzeigt, daß der PFP 312
mehr als einen Befehl im Speicher 330 für die CPU 3Tf gespeichert.
(h) DON FCC URRBLK: (DONE CURRENT BLOCK) Signal, das anzeigt, daß der PFP 312 da« Ende des
Blocks der zeZt. für den PFP 312 verfügbaren Adressen des Speichors 311 erreicht hato
(i) ENBlOCLK: (ENABLE lOCLK) Allgemeines Aktivierungssignal,
das zum Synchronisieren von MFJMCLIi und USJiIQCLK mit lOCLK und somit
mit ifO CLK verwendet wird.
030020/0815
2944A19
(j) RMDUCYCLE: (KlID MICROCYCLE) Signal, das anzeigt,
daß die Mikrobefehllogik j>l\2 dabei ist, eine
laufende Mikrobe!'chlssequonz abzuschließen,
und daß ein neuer Mikrobefehl beginnen wird.
(k) KOCB: (END OF CUHKENT BLOCK) Signal, das anzeigt,
daß der PFP 312 die letzte verfügbare Adresse des z,Zt. für den PFP 312 verfügbaren
Blocks von Adressen des Speichers 311 abgerufen
hat.
(1) FETCHTfAM1ED: (FETCH STAKTED) Signal, das anzeigt,
daß der PFP 312 gerade eine Bereitslelloperation
ausführt.
(m) FULL(FULL) Signal, das anzeigt, daß dor PFP-Spoicher
330 voll ist und daß der PFP 312 keine weiteren Befehle abrufen sollte.
(n) GPPIMvSr1T: (GENERAL PUHPOSE PHESST) Vielzweck-Voreins
tellsignal für den Rechner 310.
(o) GPHESET: (GENERAL PURPOSE RESET) Vielzweck-Rücksetzsignal für den Rechner 310.
(p) HSCREQ: (HIGH-SPEED CHANNEL REQUEST) Signal,
das anzeigt, daß ein Gerät mit einem Ilochgeschwindxgkeitskanal
einen Zugriff zum Speicher 311 belegt hat.
(q) INCPC: (INCREMENT PROGRAM COUNT) Taktsignal zum CPUPC-Register 36^ zürn Incrementieren von
CPUPC (Befehlszählerstand).
030020/081 5
294U19
(r) INGPGENB: (INCREMENT PROGRAM COUNT ENABLE) Signal,
das anzeigt, daß PC (Befehlszählerstand) inkrementiert
werden muß.
(s) INSTSAGEALC: (INSTRUCTION SAGE ALC) Signal für die
Mikrobefehllogik 542, das anzeigt, daß die CPU 314
dabei ist, einen ALC-Befehl auszuführen; es zeigt an,
der PFP 314 eine Abrufoperation ausführen darf.
(t) LOADINST: (LOAD INSTRUCTION) Taktimpuls, der anzeigt,
daß ein angefordertes Befehlswort auf dem MEMOUT-Bus 318 vorhanden ist; verwendet, um das Befehlswort
vom MEMOUT-Bus 318 in den PFP-Speicher 330 zu laden; verwendet, um den PFPPCF mit vier Bit im PFPPCF-Register
332 zu inkrementieren.
(u) MEMCLK: (MEMORY CLOCK) Speicherbustakt mit 100 Nanosekunden,
phasensynchronisiert mit 40CLK.
(v) MEMCLKENB: (MEMCLK ENABLE) Signal, das MEMCLK beim
Auftreten von MEMSORRY oder MEMWAIT blockiert.
(w) MEMSORRY: (MEMORY SORRY) Signal, das anzeigt, daß
eine Störung bei einer Anforderung des Speichers aufgetreten ist.
(x) MEMSTART: (MEMORY START) Signal für den Speicher 311, das einen Lese- oder Schreibzyklus des Speichers
veranlasst.
(y) MEMSTARTCPU: (MEMORY START, CPU) Das durch die CPU 314 gelieferte Signal MEMSTART.
(z) MEMSTARTPFP: (MEMORY START, PFP) Das durch den PFP
312 gelieferte Signal MEMSTART. (aa) MEMWAIT: (MEMORY WAIT) Signal, das die Tätigkeit des
Speichers 311 verzögert, nachdem ein Lese- oder Schreibzyklus veranlasst worden ist; verwendet, um die Tätigkeit
des Speichers 311 und eines anderen Geräts mit einer niedrigeren Datenübertragungsrate zu koordinieren.
030020/081 5
294A419
(bb),uSEqCJLK: (MICBOSEQUENCE CLOCK) Durch die Mikrobefehllogik 342 geliefertes Taktsignal; verwendet, um die
hochwertigen Bits der echten Adresse in das PFPPCB-Begister 336 zu laden.
(cc)/USE^TEST: (MICBOSEQUENCE TEST) Signal, das anzeigt,
daß gerade eine Bedingung durch den Rechner 310 geprüft wird.
(dd) MAIfOCLK: (NANOCLOCK) Vom MEMCLK abgeleitetes innerhalb des PFP 312 verwendetes Taktsignal; es ist für
einzelne MEMCLK-Perioden blockiert, wenn der Zugriff zum Speicher 311 durch einen Hochgeschwindigkeitskanal
belegt ist.
(ee) PCDEST: (PBOGEAM COUNT DESTINATION) Signal, verwendet,
um die niedrig— wertigen Bits der logischen Adresse
in das CPUPC-Begister 364 zur Benutzung als Befehlszählerstand zu laden.
(ff) PCDESTENB: (PBOGBAM COUNT DESTINATION ENABLE) Signal, das anzeigt, daß ein Abruf eines neuen Blocks von
Befehlsadressen im Speicher 311 veranlasst werden muß; es aktiviert das Laden von neuen logischen und
echten Adressen in das PFPPCB-Begieter 336, das CPUPC-Begister 364 und das PFPPCF-Begister 332; verwendet zur Aktivierung der Ausgänge des Speichers
330, um ein gespeichertes Befehlswort auf den PFP-BuB 322 zu übertragen; verwendet, um die vier niedrigstwertigen Bits der logischen Adresse in das PFPPCF-Begister 332 zu laden.
(gg) PCSBCENB: (PBOGBAMM COUNT SOUBCE ENABLE) Aktivierungesignal an das CPUPC-Begister 364 zur Übertragung von
CPUPC auf den ALUIN-Bus 324.
(hh) PFPDESTENB: (PFP DESTINATION ENABLE) Aktivierungesignal an den PFP-Speicher 330 zum Übertragen eines Befehls
auf den PFP-Bus 322.
030020/0QU'
'Toi 294U19
(ii) PFPPCTC2: (PFP PROGRAM COUNT TERMINAL COUNT 2) Signal, das anzeigt, daß der PFP 312 die letzte
verfügbare Adresse im Block der Adressen des Speichers 311 erreicht hat, der augenblicklich für den PFP
zugänglich ist.
(jj) PFPREADY: (PFP READY) Signal an die CPU 314, das anzeigt,
daß ein durch die CPU 314 angeforderter Befehl
im PFP 312 verfügbar ist.
(kk) PFPREQ: (PFP REQUEST) Signal, das anzeigt, daß der PFP 3^2 gerade einen Zugriff zum Speicher 311 anfordert,
um eine Bereitstelloperation auszuführen.
(11) PFPRECiFETCH: (PFP REQUEST FETCH) Signal, das anzeigt,
daß der PFP 312 aktiviert ist, einen Zugriff zum Speicher 311 für eine Bereitstelloperation anzufordern.
(mm) RANDCRF: (RANDOM MICROINSTRUCTION CLEAR TO REQUEST FETCH) Signal von der Mikrobefehl-Logik 54-2, das anzeigt,
daß gerade ein Mikrobefehl ausgeführt wird, der dem PFP 312 gestattet, eine Abrufoperation auszuführen.
(nn) SAGDUPDATEPC: (SAGE UPDATE PROGRAM COUNT) Signal von der Mikrobefehl-Logik 3^-2, das anzeigt, daß der Befehlszählerstand
CPUPC inkrementiert werden muß.
(oo) TESTRESET: (TEST RESET) Während der Prüfsequenz des
Rechners 310 verwendetes Rücksetζsignal.
(pp) UPDATEPC: (UPDATE PROGRAM COUNT) Signal von der ALU
356, das anzeigt, daß der Befehlszählerstand (CPUPC) inkrementiert werden muß.
(qq) WCBF: (WRITE CURRENT BLOCK FAULT) Signal, das anzeigt, daß ein möglicher Befehlskonflikt besteht zwischen
einem modifizierten Befehl im für den PFP 312 zugänglichen
Block von Adressen des Speichers 311 und einem im Speicher 330 gespeicherten Befehl.
030020/0815
(rr) WRITECURRCLK: (WHITE CURRENT CLOCK) Signal, das an
zeigt, daß ein Schreibzyklus des Speichers 311 in dem Block von Adressen des Speichers $11 gerade auftritt, der zur Zeit für den PFP $12 zugänglich ist.
(ss) 1OCLK: 100 ns-Takt, phasensynchronisiert mit 10CLK.
(tt) 20CLK: 50 ns-Takt, phasensynchronisiert mit 40CLK.
(uu) 40CLK: 25 ns-Takt,
_B^ Wirkungsweise des PFP $12 (Fig. $)
In Fig. $ wird, wie oben diskutiert, eine Folge von Befehlen,
die ein üenutzerprogramm bilden, im allgemeinen in aufeinanderfolgenden Adressenstellen im Speicher $11
gespeichert. Die CPU $14 verfolgt die Ausführung des Programms durch Speichern eines Teils der logischen Adresse
eines gerade durch die CPU $14 in Ausführung befindlichen Befehls im CPUPC-Register $64 als CPU-Befehlszählerstand
(CPUPC). CPUPC wird teilweise durch die ALU $56 und den
MAP $54 verwendet, um direkte und kartierte echte Adressen für den Speicher $11 zu erzeugen.
Wenn ein Programm ausgeführt wird, wird CPUPC der ersten Befehlsadresse in das CPUPC-Register $64 geladen. Dieser
anfängliche CPUPC wird dann verwendet, um eine anfängliche echte Adresse zu bilden, die, wie oben beschrieben,
in das PFPPCR-Register $$6 geladen wird. Ein Teil des Anfangs-CPUPC wird auch in das PFPPCF-Register $$2 geladen.
CPUPC wird nachfolgend inkrementiert, während dieser oder
nachfolgende Befehlsschritte durch die CPU $14 ausgeführt werden, um aufeinanderfolgende Befehle vom PFP $$0 abzurufen. Wenn Befehle nicht in aufeinanderfolgenden Adressen
des Speichers 311 angeordnet sind, z.B. wegen eines Sprungbefehls, wird ein neuer Anfangs-CPUPC in das CPUPC-Register
364 geladen. Der neue CPUPC erzeugt dann eine neue anfängliche echte Adresse für den neuen Block der sequentiellen
Befehle.
./. 030020/0815
Die vom GPUPC beim Start jedes Blocks der sequenztiellen
Befehle gebildeten anfänglichen echten Adressen werden in das "Bereitstell-Prozessor-Befehlszähler-Anforderung"-(PFPPCR)-Register
336 (pre-fetch processor program count requesting)als PFPPGR geladen. Zur selben Zeit werden die
niedrigwertigen Bits 12 bis 15 von CPUPC in das "Bereitst
eil-Prozessor-Befehlszähler-abgerufen"-(PFPPCP)-Register
332 (pre-fetch processor program count fetched) als PFPPCP geladen. Wie oben beschrieben (Befehls- und Datenwörter),
sind die niedrigwertigen Bits 6 bis 15 der logischen und
direkten oder kartierten echten Adressen identisch. Die niedrigwertigen Bits der Anfangsadresse, die in den Registern
364, 336 und 332 gespeichert sind, sind daher beim
Start eines Befehlsblocks identisch.
Nach dem Empfang des Anfangs-PFPPGR und PFPPCF verwendet
der PFP 312 Speicherbuszyklen zur Durchführung der Bereitstellung,
die nicht durch die CPU 314 oder andere Geräte
benötigt werden. Wie unten näher beschrieben wird, empfängt der PPP 312 Signale, die anzeigen, wann kein anderes Rechnerelement
gerade einen Zugriff zum Speicher 311 verlangt.
Der PFP 312 überträgt dann den Anfangs-PFPPCR auf den
MEMIN-Bus 320, erzeugt MEMSTARTPFP, und erzeugt das Bereitstell-Anforderungs-Signal
PRFREQ (pre-fetch request signal). PRFREQ wird mit dem Signal MEMSORRY vom Speicher
311 verglichen. Falls MEMSORRY anzeigt, daß eine Anforderungsstörung stattgefunden hat, verzögert der PFP 312
seine Anforderung auf einen nachfolgenden Speicherbuszyklus. PFP 312 wird fortfahren, diese Adresse bei jedem Speicherbuszyklus
anzufordern, bis der Zugriff gewährt wird.
030020/0815
Wenn der Zugriff gewährt ist, beginnt PFP 312 die Zyklen des MEMIN-Busses 320 zu zählen, wie oben beschrieben.
Zur selben Zeit werden die sieben niedrigstwertigen Bits 9 bis 15 von PPPPGB um 1 inkrementiert, um einen neuen
PFPPGR zu erzeugen. Der neue PFPPCR ist die echte Adresse
des nächsten abzurufenden Befehls. PFP 312 fährt fort,
Befehle vom Speicher 311 anzufordern, wie eben beschrieben;
das PFPPCR-Register 336 erzeugt dadurch aufeinanderfolgend
PFPPCR-Leseadressen für den Speicher 311 und verfolgt die
vom Speicher 311 angeforderten Befehle.
Die durch das PFPPCR-Register 336 angeforderten Befehle erscheinen auf dem MEMOUT-Bus 318 vier Speicherbuszyklen
nach dem Veranlassen der Anfrage, und sie werden in den PFP-Speicher 330 übertragen. Der PFP-Speicher 330 mag
16 Adressteilen enthalten. Die Stellen der Befehle im PFP-Speicher 330 werden durch die PFPPC- Schreibadresse mit 4 Bit
im PFPPCF-Register 332 ausgewählt. PFPPCF wird inkrementiert,
während jeder Befehl empfangen wird. Die Befehle werden dadurch in aufeinanderfolgenden Adressen im PFP-Speicher
330 gespeichert (z.B. in den Stellen 0 bis 15;
dann wieder 0, u.s.w.), und das PFPPCF-Register 332 verfolgt die abgerufenen Befehle.
Wie oben beschrieben, repräsentiert CPUPC einen durch die
CPU 314 auszuführenden Befehl, und wird beim oder nahe
beim Beginn der Ausführung dieses Befehls inkrementiert. Die vier niedrigstwertigen Bits 12 bis 15 von CPUPC werden
als Leseadresse für den PFP-Speicher 330 verwendet, so daß der nächste auszuführende Befehl vom PFP-Speicher 330 angefordert
wird, während ein laufender Befehl gerade ausge-
030020/0815
29ΑΛ4Ί 9
führt wird. Da GPUPG und PFPPGF anfänglich identisch sind, und da sie beide sequentiell inkrementiert werden,
werden die Befehle aus dem PFP-Speicher 330 in der selben Reihenfolge ausgelesen, in der sie eingeschrieben sind.
Die CPU 314 wird daher die Befehle in der selben Sequenz
empfangen, in der sie ursprünglich im Speicher 311 gespeichert wurden.
Es können gewisse Beschränkungen der Tätigkeit des PFP 312 auferlegt sein, um Fehler beim Abrufen von Befehlen
zu vermeiden und eine wirkungsvolle Arbeitsweise sicherzustellen. Zunächst mag, wie oben angedeutet, das PFPPCR-Register
336 nur die sieben niedrigstwertigen Bits 8 bis 15 der echten Adresse PFPPCR ändern. Die höherwertigen
Bits 0 bis 5 und 16 bis 19 von PFPPCR können nur durch
Laden eines neuen Anfangswerts PFPPCR in das PFPPCR-Register 366 geändert werden. Wie früher beschrieben
wurde besteht eine genaue Zuordnung zwischen den niedrigwertigen Bits 6 bis 15 der logischen und der echten Adresse.
Die höherwertigen Bits 0 bis 5 der logischen Adresse können
jedoch in die Bits 0 bis 5 und 16 bis 19 der echten Adresse kartiert werden. Daher konnte es zum Auslesen von Befehlen aus
einem anderen Benutzerprogramm führen, wenn es dem PFP 312
möglich wäre, die höherwertigen Bits O bis 5 und 16 bis
19 von PFPPCR zu modifizieren. Dies kann dadurch vermieden
werden, daß der PFP 312 auf eine Arbeit mit den sieben niedrigwertigen Bits 9 bis 15 von PFPPCR beschränkt wird.
Zweitens entsprechen die Bits 12 bis 15 von PFPPCF den
vier niedrigstwertigen Bits 12 bis 15 von CPUPG. Dies kann
das Abrufen durch den PFP 312 auf höchstens 16 Befehle vor
dem gerade durch die GPU 314 in Ausführung befindlichen Be-
030020/081 5
fehl begrenzen. Diese Begrenzung kann vorgesehen sein wegen der Möglichkeit, daß ein Sprungbefehl in einer Sequenz von
Befehlen auftritt. Ein Sprung erfordert das Ablegen von im PFP-Speicher 330 gespeicherten bereitgestellten Befehlen
und das Abrufen eines neuen Blocks von Befehlen, auf den gesprungen wurde. Die Arbeitsleistung des PPP 312 wird
daher dadurch vergrößert, daß ein ausreichender Vorgriff vorgesehen wird, so daß die CPU 314 selten auf Befehle
warten muß, während das Ablegen von unnötigerweise abgerufenen
Befehlen minimiert wird.
Zusammengefaßt, hat der PFP 312 einen Bereitstell-Zugriff
zu einem Block von 128 aufeinanderfolgenden Adreßsteilen
im Speicher 311, wie er durch die sieben variablen Bits
9-15 von PFPPGR bestimmt ist. Die erste Adresse im Block wird durch die ins PFPPCR-Register 336 geladene anfängliche
echte Adresse PFPPGR bestimmt. Das Bereitstellen wird innerhalb des Blocks innerhalb eines sich bewegenden Fensters
ausgeführt. Das Bereitstellfenster ist maximal 16 Adressen lang. Die erste Fensteradresse wird durch GPUPG bestimmt,
und die letzte abgerufene Fensteradresse wird durch PFPPGF bestimmt. PFP 312 mag das Ende des laufenden Blocks mit
128 Adressen erreichen, bevor er einen neuen Anfangswert PFPPCR empfängt. Wenn dies eintritt, erzeugt PFP 312 das
Signal DONECURRBLK, das anzeigt, daß er das Ende seines zugänglichen Adressenraums erreicht hat. DONECURBLK blokkiert
die Tätigkeit des PFP 312, bis neue Anfangswerte PFPPCR und PFPPCF geliefert werden. Es wird darauf hingewiesen,
daß andere Längen des Abruffensters und des zugänglichen
Befehlsblock beim PFP 312 verwendet werden können.
030020/0815
294U19
£a wird nun auf andere Elemente des PFP 312 Bezug genommen.
Die PFP-Bereit-Logik (PFPRDI) 334- vergleicht
PFPPGF und CPUPC1 um Ausgangssignale zu liefern, die
anzeigen, ob der PFP-Speicher 330 nur 1 oder mehrere Befehle vor dem gerade durch die CPU 314- in Ausführung
befindlichen Befehl enthält. Diese Auagangssignale wiederum erzeugen PFPREADY, das anzeigt, ob PFP 312 bereit ist,
einen durch CPUPC angeforderten Befehl zu liefern. PFPRDY 334·
liefert auch ein Ausgangssignal FULL, das anzeigt, daß der PFP-Speicher 330 voll ist und somit nicht in der Lage
ist, weitere Befehle aufzunehmen. In diesem Falle wird die Tätigkeit des PFP 312 angehalten, bis die CPU 314-mindestens
einen Befehl aus dem PFP-Speicher 330 ausgelesen hat.
Die WCB-Logik 338 (Write Current Block - Schreiben laufender
Block) überwacht die beispielsweise durch die CPU 314· durchgeführten Schreiboperationen im Speicher 311. Die
WCB-Logik 338 vergleicht PFPPCR mit jeder auf dem MEMIN-Bus 320 erscheinenden Schreibadresse der CPU 314. Falls
die CPU 314- in eine Adresse des Speichers 311 einschreibt,
die innerhalb des Befehlsblocks liegt, der zur Zeit durch PFPPCR 336 zugänglich ist, liefert die WCB-Logik 338 eine
Anzeige für dieses Ereignis. Dieses Merkmal warnt vor einem möglichen Konflikt zwischen einem nachfolgend modifizierten
Befehl im Speicher 311 und einem entsprechenden früher abgerufenen unmodifizierten Befehl im PFP-Speicher
330.
030020/0815
ΊΊζ
C. PFP 312. Schaltung (FIr. 25 - 27)
Die bei der vorliegenden bevorzugten Ausführungsform des
PFP 312 verwendete Schaltung ist in den Fig. 25, 26 und dargestellt. Wie bei der Beschreibung des Speichers 311
wird die detaillierte Struktur und Arbeitsweise dieser Schaltung nur beschrieben, wo dies nötig ist, um die
Wirkungsweise des PFP 312 darzustellen. Es sind durchwegs übliche Schaltungssymbole verwendet, und die Struktur
und Arbeitsweise der Schaltung ist dem Fachmann verständlich. Lediglich jene Komponenten, die zur Erläuterung
der Arbeitsweise des PFP 312 nötig sind, werden durch ein
Bezugszeichen und in der folgenden Stückliste bezeichnet. Alle in der gleichen Weise wie die mit Bezugszeichen versehenen
Teile gezeichnete Bauteile sollen mit diesen mit Bezugszeichen versehenen Teilen gleich und in der gleichen
Weise wirkend angesehen werden.
030020/0815
In den Figuren d^ und 25 A sind das Pi1P PCft-rtegister
336 und die WGß-Logik 338 gezeigt. In Fig. 25 weist
das PFP PCR-Register 336 Register 2510 und 2512, Zähler
2514 und 2516, und puffertreiber 2518 mit drei Zuständen
auf. Wie oben beschrieben, erscheinen die höherwertigen Bits 0 bis 5 und 16 bis 19 der echten Adresse auf dem
HIADR-Bus 328 als Signale HIADR 0 bis 5 und 16 bis 19.
HIADR 0 bis 5 und 16 bis 19 sind Eingängen der Register 2510 und 2512 zugeführt. Die niedrigwertigen Bits 6 bis
15 der echten Adresse erscheinen auf dem ALUOUT-Bus 326 als Signale ALUOUT 6 bis I5. ALUOUT 9 bis I5, die
den sieben variablen Bits 9 bis I5 von PFP PGR entsprechen,
werden Eingängen der Zähler 2514 und 2516 zugeführt.
Die niedrigwertigen Adressbits ALUOUT 6 bis 8, die den nicht-variablen Bits 6,7 und 8 von PFP PCR entsprechen,
werden Eingängen des Registers 2512 zugeführt. PFP PCR erscheint an Ausgängen der Register 2510 und
2512 und der Zähler 2514 und 2516 als PFP PCR 0 bis 19.
PFP PCR wird Eingängen der Puffertreiber 2518 zugeführt. Entsprechende echte Adressbits MEMIN 0 bis 19 erscheinen
an Ausgängen der Puffertreiber 2518, die mit dem MEMIN-Bus 320 verbunden sind.
Eine anfängliche echte Adresse, die auf dem ALUOUT-Bus 326 und dem HIADR-Bus 328 erscheint, wird in die Register
2510 und 2512 und die Zähler 2514 und 2516 beim Auftreten
von PCDESfEirB geladen. PCDESTENB aktiviert die Paralleleingang-(PE)-Eingänge
der Zähler 2514 und 2516. Die anfängliche
echte Adresse wird dann in die Zähler 2514
und 25I6 durch ein den Takteingängen der Zähler 2514
und 25I6 zugeführtes Signal MEMCLK übertragen. In den
Registern 2510 und 2512 aktiviert PCDESTENB ein Verknüpfungsglied 2520 zur Lieferung eines Signals ^SEQCLK durch
030020/0815
294U19
einen Inverter 2522 an die Takteingänge der Register
2510 und 2512. Danach wird PFP PCH 9 bis I5 in den Zählern
2514 und 2516 durch MEMCLK jedesmal inkrementiert, wenn
die Zähler 2514 und 2516 ein Zählaktiviereingangssignal
FETCHSTAHTED empfängt. Wie unten bei der Beschreibung
der Fig. 22 beschrieben wird, tritt FETCHSTAHTED jedesmal auf, wenn PFP 312 einen Befehl vom Speicher 311 abruft.
Das den Löscheingängen der Zähler 2514 und 2516
zugeführte Signal TESTRESEf wird verwendet, um PFPPCR
9 bis 15 auf null zurückzusetzen, z.B. während einer Testsequenz des Rechners 310.
Die Zähler 2514 und 2516 liefern auch Ausgangssignale
EOCB und PFPPCTC2 an die in Fig. 27 gezeigte Steuerschaltung des PFP 312. EOCB zeigt an, daß die zuletzt verfügbare
Adresse des laufenden Blocks gerade angefordert wird. PFPPCTC2 wird aktiv, wenn die zuletzt verfügbare
Adresse gerade angefordert wird, und blockiert weitere Bereitsteil-Anforderungen.
Die Euffertreiber 2518 werden aktiviert, um das Signal PFPPCH durch PFPREQFETCH auf den MEMIN-Bus 320 zu bringen.
PFPREQFETCH wird durch PFP 312 erzeugt, wenn, wie oben beschrieben, PFP 312 einen Zugriff zum Speicher 511 angefordert
und diesen erhalten hat. PFPRECiFETCH bewirkt auch, daß die Pufferspeicher 2518 das Signal MEMSTARTPFP erzeugen.
MEMSTARTPFP ist mit dem Signal MEMSTARTCPU von der
CPU 314 durch eine verdrahtete ODER-Schaltung verknüpft,
um das Signal MEMSTART an den Speicher 311 zu liefern. In ähnlicher Weise erzeugen die Puffertreiber 2518 das
Signal PFPREQ für die Steuerschaltung des PFP 312, um anzuzeigen, daß eine PFP-Anforderung veranlasst worden ist.
030020/0815
Wie unten näher beschrieben wird, wird PFPREQ mit MEMSORHY verglichen, um einen PFP 312-Abruf zu verschieben,
falls eine Störung der Speicheranforderung auftritt.
In Fig. 25 A enthält die WCB-Logik 338 Komparatoren
2524 und ein Verknüpfungsglied 2526. Die Komparatoren
2524 vergleichen die echten Adressbits PFPPCR 0 bis 7
und 16 bis 19 mit den entsprechenden Adressbits MEMIN 0 bis 7 und 16 bis 19 des MEMIN-Bus 320. Die Komparatoren
2524 werden über das Verknüpfungsglied 2526
aktiviert durch das gleichzeitige Auftreten von HEHSTAHT und MEMVRITE beim Speicher 311. MEMVRITE erscheint nur,
wenn irgendein anderes Element des Rechners 310 als PFP 312, z.B. die CPU 314, in den Speicher 31I schreibt.
Die Komparatoren 2524 erzeugen WRITECURRBLK, falls der
Vergleich von PFPPCR und MEMIN anzeigt, daß ein Schreiben in dem Block von Adressen stattgefunden hat, der augenblicklich
für den PFP 312 zugänglich ist.
In Fig. 26 und 26A sind das CPU PC-Register 364, das PFP PCF-Register 332 und der PFP-Speicher 330 gezeigt.
In Fig. 26 weist das CPU PC-Register 364 Zähler 2610 und 2612 und einen Puffertreiber 2614 auf. Den Dateneingängen
der Zähler 2610 und 2612 werden die niedrigwertigen logischen Adressbits ALUOUT 9 bis 15 vom ALUOUT-Bus 326 zugeführt.
ALUOUT 9 bis 15 entsprechen den sieben variablen Adressbits PFPPCR 9 bis 15 als Dateneingangssignale. Ein
achter Datenbiteingang der Zähler 2610 und 2612 ist mit logisch O (Masse) verbunden und entspricht dem Signal
ALUOUT 8 und PFPPCR 8. ALUOUT 9 bis 15 und das achte Bit mit dem Wert logisch 0 werden in die Zähler 2610 und 2612
030020/0815
294A419
durch das die parallele Eingabe aktivierende Eingangssignal PDCEST und das Takteingangssignal MEMCLK geladen.
CPUPC erscheint an den Ausgängen der Zähler 2610 und
2612 als CPUPC 8 bis 15 und wird durch MEMCLK inkrementiert,
wenn das Zählaktiverungseingangssignal INCPC aktiv ist. INCPC aktiviert die Zähler 2610 und 2612,
während Befehle durch die ALU 356 ausgeführt werden.
Das Löscheingangssignal TESTRESÜT wird wiederum geliefert,
um CPU PC 8 bis 15 auf 0 zurückzusetzen.
CPUPC 8 bis 15 werden Eingängen der invertierenden Pufferverstärker
2614 zugeführt. Die Pufferverstärker 2614 werden aktiviert, um das invertierte CPUPC auf den ALUIN-Bus 324
zu bringen.
Wie anhand der Fig. 26A beschrieben werden wird, wird CPUPC Leseadresseneingängen des PFP-Speichers 330 und
Eingängen von PFPEDY 334 zugeführt.
In Fig. 26A ist der PFP-Speicher 330 gezeigt. Der PFP-Speicher 330 weist Speicher mit wahlfreiem Zugriff (RAM)
2618, 2620, 2622 und 2624 auf. Die RAMs 2618 bis 2624 mögen jeweils ein Speicher mit 16 Worten und 4 Bit Länge
sein, die parallel erfasst werden, so daß der PFP-Speicher 330 einen 16-Wort-Speicher mit 16 Bit Länge bilden mag.
Wie oben festgestellt, kann der PFP-Speicher 330 eine
andere Kapazität haben als 16 Wörter mit 16 Bit Länge.
CPUPC 12 bis 15 vom CPU PC-Register 364 werden Leseadresseneingängen
der RAMs 2618 bis 2624 zugeführt. PFPPCF 12 bis 15 vom PFPPCF-Reigster 332 werden Schreibadresseneingängen
030020/0815
der RAJIs 2618 bis 2624 zugeführt. Die Dateneingänge der
RAMs 2618 bis 2624 sind mit dem MEMOUT-Bus $18 (MEMOUT
0 bis 19) verbunden. MEMOUTO bis MEM0UT3 sind mit Dateneingängen des RAM 2618 verbunden, und MEM0UT4 bis MEM0UT7
sind Dateneingängen des RAM 2620 zugeführt. MEM0UT8 bis MEM0UT11 sind Dateneingängen des RAM 2622 zugeführt, und
MEM0UT12 bis MEM0UT15 sind Dateneingängen des RAM 2624 zugeführt.
MEMOUT 15 bis 19 sind, wie früher besprochen, Fehlerkorrekturbits, die durch die ERCC-Logik 519 verwendet
werden, und werden nicht im PFP-Speicher 330 gespeichert.
Die Ausgangsdaten PFP 0 bis PFP 15 der BAMs
2618 bis 2624 werden dem PFP-Bus 322 zugeführt. Die Befehle
auf dem MEMOUT-Bus 318 werden in den PFP-Speicher 330 eingeschrieben, wenn die RAMs 2618 bis 2624 gleichzeitige
Schreibaktiviereingangssignale MEMCLK und LOADINST empfangen. Gespeicherte Befehle werden aus dem
PFP-Speicher 330 ausgelesen, wenn die RAMs 2618 bis 2624 Ausgabeaktiviereingangssignale ΡϋΊ-Ίΐβϋ'ΓΕΝΒ empfangen.
Dies würde die normale Bedingung sein.
In den Fig. 27 und 27A sind PFPRDI 334 und die Steuerschaltung
des PFP 312 gezeigt. In Fig. 27 weist der PFP RDY 334 einen programmierbaren Lesespeicher (PROM) 2710,
ein Flip-Flop 2712 und Verknüpfungsglieder 2714, 2715
und 2716 auf. Der PBOM 2710 wirkt als ein Komparator für
die Leseadressen (CPUPC) und Schreibadreseen (PFPPCF)
für den PFP-Speicher 330. Der PBOM 2710 liefert ein Ausgangssignal
FULL, das anzeigt, daß der PFP-Speicher 330
voll ist; ein Signal CTGT1, das anzeigt, daß mehr als ein
Befehl für die CPU 314 verfügbar ist; ein Signal CTEQ1,
das anzeigt, daß der PFP-Speicher 330 nur einen Befehl vor dem augenblicklich in Ausführung durch die CPU 314 befindlichen
Befehl enthält; und ein Signal CTEQO, das anzeigt, daß der PFP-Speicher 330 keine Befehle enthält.
CTE(^I und INCPC werden Eingängen des Verknüpfungsglieds
2714 zugeführt, das ein Ausgangssignal liefert, daß der
PFP-Speicher 330 nur einen Befehl enthält. Das weiter unten besprochene Signal INCPC ist ein Signal, das anzeigt,
ob die CPU 314 dabei ist, einen Befehl aus dem
PFP-Speicher 330 zu lesen. Das Ausgangssignal des Verknüpfungsglieds
2714 ist mit einer verdrahteten ODER-Funktion mit CTGT1 und dem Auegangssignal des Verknüpfungsglieds
2713 verknüpft. CTGT1 stellt dar, daß mehr
als ein Befehl im PFP-Speicher 330 verfügbar ist. Das Eingangssignal LOADINST des Verknüpfungsglieds 2713 zeigt
an, daß der PFP 312 zur Zeit einen Befehl vom Speicher in den PFP-Speicher 330 überträgt. Das Ausgangssignal
des Verknüpfungsblieds 2713 zeigt dadurch an, daß der PFP 312 zur Zeit keinen Befehl für die CPU 314 hat, aber
daß ein Befehl am Ende des laufenden MEMCLK-Zyklus verfügbar
sein wird. Das Ausgangssignal eines Verknüpfungsglieds 2713 wird dann durch das Verknüpfungsglied 2715 mit IHCPC
durch eine UND-Funktion verknüpft, um das Ausgangssignal des Verknüpfungsgiieds 2713 zu liefern. Das durch eine
ODEH-Funktion verknüpfte Ausgangssignal des Verknüpfungsglieds 2714 wird einem Eingang des Verknüpfungsglieds
27I6 zugeführt, dies gilt auch für WCBF (Schreiben Laufender
Block Fehler, Write Current Block Fault, wird unten erläutert). Das Ausgangssignal PREREADY des Verknüpfungsglieds 27I6 zeigt an, ob PFP 312 nicht in der Lage sein
wird, Befehle an die CPU 314 zu liefern; entweder weil Befehle
nicht verfügbar sind oder weil ein möglicher Konflikt zwischen Befehlen besteht, die in den Speichern
und 311 gespeichert sind. FREHEADT wird dem Dateneingang
des Flip-Flops 2712 zugeführt. Das Takteingangssignal
NANOCLK des Flip-Flops 2712, das unten beschrieben wird,
030020/0815
-ms-
294U19
tastet PHEREÄDY ab, um das Ausgangssignal PFPBEADY zu
erzeugen. PFPREADY zeigt an, ob PFP 312 bereit ist, Befehle an die CPU 314 zu liefern.
Die Steuerschaltung PFP 312 wird nun beschrieben. In Fig.
27A wird zunächst die Schaltung beschrieben, die die obengenannten
Signale INGPC, WCBF und NANOCLK erzeugt.
INCPC wird durch Verkniipfungsglieder 2718 bis 2724 und
zugeordnete Inverter 2726 erzeugt. Wie oben festgestellt, tritt INCPC auf, wenn ein Befehl aus dem PFP-Speicher
gelesen werden soll. Insbesondere zeigt INCPC an, daß CPUPC durch das zum CPUPC-Hegister 364 geleitete Signal
MEMCLK inkrementiert werden soll, beispielsweise bei einem Skipbefehl (Überspringen).
Eingangssignale INCPCENB, UPUATEPC und SAGEUPDATEPC des
Verknüpfungsgiiede 2718 zeigen an, daß CPUPC inkrementiert
werden muß. Dies sind Eingangssignale von einer fest verdrahteten Logik, die Mikrobefehlbedingungen detektiert,
die es erfordern, daß CPUPC inkrementiert wird. Das Ausgangssignal des Verknüpfungsglieds 2718 und END/uCYCLE
werden Eingängen des Verknüpfungsglieds 2720 zugeführt. END/iCYCLE zeigt an, daß ein laufender Mikrobefehl gerade
endet und daß ein neuer Mikrobefehl beginnen muß.
Ein Eingangssignal ALCCYCLE des Verknüpfungsglieds 2722
zeigt an, daß CPUPC wegen eines ALC-Skipbefehls
zwingend inkrementiert werden muß. Das Eingangssignal yuSEQTEST des Verknüpfungsglieds 2722 von der Mikrobefehl-Logik
3^2 repräsentiert eine Mikrobefehl-Prüfbedingung,
die anzeigt, ob ein ALC-Skipbefehl wahr ist. Das Eingangssignal NANOCLK des Verknüpfungsglieds 2722 ist ein Sperrsignal
für PFP 312, das unten beschrieben wird.
030020/081 5
Schließlich sind die Ausgänge der Verknüpfungsglieder
2720 und 2722 durch das Verknüpfungsglied 2724 mit einer
ODER-Funktion verknüpft, das das Ausgangssignal INCFC
liefert. Inverter 2725 und 2726 invertieren die Ausgangs
signale der Verknüpfungsgiieder 2724 und 2718, um Signale
mit der gewünschten Polarität an die Verknüpfungsglieder 272O und 2714 zu liefern.
WCBF wird durch ein Flip-Flop 2728 erzeugt. Das «!-Eingangs
signal WRITE CURHBLK des Flip-Flops 2728, das oben beschrieben
wurde, zeigt an, daß ein Schreibzyklus in dem Befehlsblock im Speicher 311 aufgetreten ist, der gerade durch
den PFP 312 zugänglich ist. Das ebenfalls früher besprochene Signal PCDESTENB zeigt an, daß eine neue echte
Adresse in das PFP PCR-Register 336 geladen werden muß,
um einen neuen Block von Befehlen dem PFP 312 zuzuordnen. Das Takteingangssignal MEMCLK des Flip-Flops 2728 tastet
WRITECUREBLK und PCDESTENB ab. Dadurch zeigt WCB? nach einem Signal WRITECURRBLK an, daß eine mögliche Befehlsstörung vorhanden ist, und nach einem Signal PCDSTENB, daß
die Störung durch einen Neubeginn der Abrufoperation des
PFP 312 gelöst worden ist. Die Setz- und Löscheingangssig
nale GPPRESET" und TESTRESET des Flip-Flops 2728 können das Flip-Flop 2728 löschen oder setzen, wodurch WCBF erzeugt wird.
030020/0815
29ΑΛ419
- -us? -
Die NAIiOCLK und MEMCLK erzeugende Schaltung wird als Teil
der CPU 314- betrachtet, wird aber hier beschrieben, um das
Verständnis des PFP 312 zu unterstützen. NANOCLK wird durch ein Flip-Flop 2730 und ein Verknüpfungsglied 2732 aus
MiHCLK erzeugt. Das Ausgangssignal NANOCLK des Flip-Flop 273O wird dem Dateneingang des Flip-Flop 2730 durch das
Verknüpfungsglied 2732 zugeführt, das NANOCLK invertiert. Dadurch wird das invertierte NANOCLK durch MEMCLK abgetastet,
so daß NANOCLK mit der halben Frequenz von MEMCLK auftritt. Das Eingangssignal HSCREQ des Verknüpfungsglieds
2732 blockiert den Dateneingang des Flip-Flops 2730, und somit NANOCLK und die Arbeit von PFP 312, wenn ein Gerät
mit einem Hochgeschwindigkeitskanal den Zugriff zum Speicher 311 belegt hat. Ein Gerät mit einem Hochgeschwindigkeitskanal,
das in Fig. 3 aus Gründen der Klarheit der Darstellung nicht gezeigt ist, ist direkt mit dem MEMIN-Bus
320 und dem MEMOUT-Bus 318 in Verbindung, um schnell Daten direkt in den Speicher 311 und aus ihm heraus zu
übertragen. Dem Setz- und Löscheingang des Flip-Flops 2730 werden werden die Signale G-FPRESET und GPRESET
zugeführt, wodurch es ermöglicht wird, daß diese Eingangssignale die Signale NANOCLK und den PFP 312 aktivieren
oder blockieren.
Als nächstes wird die das Signal MEMCLK erzeugende Schaltung diskutiert, gefolgt von der Schaltung, die die Abrufoperation
des PFP 312 veranlaßt. Am Ende wird die die
Verbindung des PFP 312 mit dem MEMLN-Bus 320 und dem MEMOUT-Bus 380 enthaltende Schaltung beschrieben, wiederum
unter Bezugnahme auf Fig. 27·
030020/081 5
In Fig. 27A wird MEMCLK durch ein Flip-Flop 2734, einen
Inverter 2736, und Verknüpfungsglieder 2738 - 2742 erzeugt.
20GLK wird dem K-Eingang des Flip-Flops 2734 zugeführt,
und 40CLK wird dem Takteingang des Flip-Flops 2734
zugeführt. Das Signal 40CLK tastet das Signal 20CLK ab,
so daß die Ausgänge Q und $ des Flip-Flops 2734 die
Signale MIMGLK und KEMCLK liefern. Das Verknüpfungsglied
2742 ist ein Pufferverstärker, der benutzt wird,
um die Belastung des Ausgangssignals MEMCLK des Flip-Flops 2734 zu verringern.
Das dem J-£ingang des Flip-Flops 2734 vom Verknüpfungsglied 2740 zugeführte Signal MEMCLKENB ist ein Aktivierung
seingangssignal, das MEMCLK und somit den PFP 312
blockiert. Eingangssignale des Verknüpfungsglieds 2740 sind MEMWAIT, ENB10CLK, und SORBY vom Ausgang des Verknüpf
ungsgli ed s 2738. METlWAIT ist früher unter Bezugnahme
auf den PFP-Speicher 310 beschrieben worden.
ENBIOBLt wird verwendet, um MEMCLK mit 40CLK zu synchronisieren.
Das Eingangssignal PRFREQ des Inverters 2736 wird, wie früher erläutert, erzeugt, wenn es dem PFP 312 gestattet
ist, eine Leseanfrage an den Speicher 311 zu erzeugen. Wie mit Bezugnahme auf den Speicher 311 beschrieben,
wird dann, falls eine Anfrage des PFP 312 zu einer
Speicheranfragenstörung führt, der Speicher 311 durch Lieferung von MEMbORRT antworten. Die Eingangssignale
PFPREQ und MEMSORRY des Verknüpfungsglieds 2738 erzeugen
das Ausgangssignal SORRY, das anzeigt, daß eine Leseanfrage des PFP 312 zu einer Speicherstörungsbedingung
geführt hat. SORRY blockiert dann die Erzeugung
030020/0815
124
29A4419
von MEMCLK, um die Tätigkeit des PFP zu blockieren, bis MiMSORBI anzeigt, daß die Anfragestörung bereinigt ist.
Wie oben diskutiert, wird dann der PFP 312 fortfahren, die früher störende Speicheranfrage zu wiederholen. Dem
Setz- und Löscheingang des Flip-Flops 2734- sind die
Signal GPPRESET und GPRESET zugeführt. Diese Eingangssignale gestatten es, daß MEMCLK ausgesetzt wird, und sie
werden verwendet, um die Startbedingung von MEMCLK zu setzen.
In den Fig. 27 und 27k werden die Bereitstellzyklsen des
PFP 312 durch das Ausgangssignal PPFREQFETCH eines Flip-Flops 2744 veranlaßt, das anzeigt, daß ein Abruf veranlaßt
worden ist.
Wie oben diskutiert, wird der PFP 312 zur Durchführung
von Bereitstelloperationen aktiviert, wenn ein Gerät mit höherer Priorität, z.B. die CPU 314, keinen Zugriff zum
Speicher 311 verlangt. Dem Dateneingang des Flip-Flops
2744 wird ein Aktivierungssignal vom Ausgang eines Verknüpfungsglieds
2746 zugeführt, so daß das Ausgangssignal
des Verknüpfungsglieds 2746 durch das Takteingangesignal MEMCLK abgetastet wird. Das Verknüpfungsglied 2746
hat vier Sperrsignaleingänge. I)UNEUUKKuIA wird durch
einen Inverter 2748 von einem Verknüpfungsglied 2750 und
2752 geliefert. Dem Verknüpfungsglied 2752 werden Eingangssignale PFPCT2 und PFPREQFETCH zugeführt. PPPCTC2
vom PFPPCR-Register 336 zeigt an, daß PFPPCR nicht weiter
als eine Adresse vom Blockende der zur Zeit für den PFP 312 verfügbaren Befehle entfernt ist. PFPREQFETCH
vom Ausgang des Flip-Flops 2744 zeigt an, daß ein Abruf
030020/081 5
29U419
veranlaßt worden ist. Das Ausgangssignal LOCB des Verknüpfungsglieds
2752 blockiert dadurch die Veranlassung einer nachfolgenden PFP 312-Anforderung, während der
zuletzt zugängliche Befehl gerade abgerufen wird. LOCB und EOCB sind Eingangssignale der Verknüpfungsglieder
2750. IC7Sb" vom PFPPCR-Regist er 336 zeigt an, daß
der PFP 312 den letzten verfügbaren Befehl abgerufen hat. Das Ausgangssignal DONECURRBLK des Verknüpfungsglieds 2750 und des Inverters 2748 hindert dadurch den
PFP 312 daran, Befehle außerhalb des gerade verfügbaren
Befehlsblocks abzurufen.
Das Eingangssignal FULL des Verknüpfungsglieds 2746 vom
PROM 2710 im PFPRDY 334 zeigt an, daß der PFP-Speicher 330 voll ist. FULL blockiert die Erzeugung von Abrufanforderungen
durch den PFP 312, bis die CPU 314 weitere Befehle vom PFP-Speicher 330 anfordert und mindestens
eine Adressenstelle des PFP-Speichers 330 für die Annahme weiterer Befehle freimacht.
Das dem Verknüpfungsglied 2746 vom Verknüpfungsglied 2758 zugeführte Eingangssignal ist auch ein Sperrsignal. Das
Eingangssignal HSCREQ des Verknüpfungsglieds 2758, das oben diskutiert wurde, zeigt an, daß ein Gerät mit einem
Hochgeschwindigkeitskanal einen Prioritätszugriff zum Speicher 311 beansprucht. Der PFP 312 wird daran gehindert,
einen Zugriff zum Speicher 311 anzufordern, bis HSCREQ beendet ist. CONSOLEMODE zeigt an, wie unten mit Bezug
auf das Soft-Konsole-ROM 358 diskutiert wird, daß der
Rechner 310 im Konsolen-Betriebszustand arbeitet. Im Eonsolen-Betriebszustand wird die gesamte normale Operation
des Rechners 310 ausgesetzt, einschließlich dem Bereitstellen;
der Rechner 310 wird dann durch einen externen
030020/0815
Fernschreiber gesteuert, der durch die Soft-rXonsole 358
arbeitet.
Das Eingangssignal CRF des Verknüpfungsglieds 2746 vom Verknüpfungsglied 2754 ist ein Aktivierungssignal, das
anzeigt, daß es dem PFP 312 gestattet ist, Bereitstelloperationen auszuführen. Das Eingangssignal RANDGKF des
Verknüpfungsglieds 2754 von der Mikrobefehl-Logik 342 zeigt an, daß es dem PFP 312 gestattet ist, während eines
Mikrobefehls, der RANDCRF bestätigt, abzurufen. AJjCCHJfJUCT
ist ein fest verdrahtetes Signal, das anzeigt, daß es dem PFP 312 gestattet ist, während der Ausführung eines Befehle
der arithmetischen und logischen Klasse (ALC) abzurufen. Das Eingangssignal ALCCJiF eines Verknüpfungsglieds 2754
von einem Verknüpfungsglied 2756 ist ähnlich ALCCRFEXT und zeigt an, daß es dem PFP 312 gestattet ist, während
eines ALC-Befehls abzurufen. Das Eingangssignal INSTSAGEALC
des Verknüpfungsglieds 2756 zeigt an, daß ein ALC-Befehl
gerade auftritt, während dem es dem PFP 312 erlaubt sein
kann, abzurufen. Das Eingangssignal /USEOTEST des Verknüpfungsglieds
2756 von der Mikrobefehl-Logik 342 ist eine Prüfbedienung, die anzeigt, ob der PFP 312 während
dieses ALC-Befehls abrufen darf. Das CRF-Ausgangssignal des Verknüpfungsglieds 2754 zeigt dabei an, daß der .
PFP 312 eine Bereitstellung während eines Mikrobefehls oder eines ALC-Befehls ausführen darf.
Dabei erzeugt das Flip-Flop 2744 PFPREQFETCH, wenn es
durch CRF aktiviert ist und nicht durch DENECURRBLK, FULL, CONSOLEMODE, oder HSCREQ blockiert ist. Wie oben
030020/081 5
festgestellt, aktiviert dann PFPRKQFETCH den PFP 312 zur
Ausführung einer Bereitstelloperation.
Schließlich ist in Fig. 27 die Schaltung gezeigt, die die Verbindung des PFP 312 mit dem MEMIN-Bus 320 und dem
ilEMOUT-Bus 318 aufweist. Die Verbindungsschaltung oder
Interfaceschaltung des PFP 312 weist ein Schieberegister
2760, ein Verknüpfungsglied 2762 und einen Inverter 2764-auf.
Das Eingangssignal PFPREQFETCH des Verknüpfungsglieds 2762 zeigt, wie diskutiert, an, daß der PFP 312
zum Ausführen eines Bereitstellzyklus aktiviert ist. PFPREQFETCH überträgt die echte Adresse PFPPCR auf den
MEMIN-Bus 320 und erzeugt MEMSTARTPFP und PFPREQ . PFPREQ wird mit MEMSORRI verglichen, um zu bestimmen,
ob eine Anforderungsstörung aufgetreten ist. MEMSORRY wird auch einem anderen Eingang des Verknüpfungsglieds
2762 zugeführt, um das Ausgangssignal FETCHSTARTED des Verknüpfungsglieds 2762 zu blockieren, falls eine Speicheranforderungsstörung
auftritt. Wenn keine Störung auftritt, erzeugt das Verknüpfungsglied 2762 FETCHSTARTED,
das anzeigt, daß ein Abruf angefordert wurde und vom Speicher 311 angenommen wurde. FETCHSTARTED liefert eine
logische 1 an den Dateneingang des Schieberegisters 2760. Die logische 1 wird dann durch MEMCLK durch das Register
2760 geschoben. FETCHSTARTED wird dadurch im Ausgangssignal LOADINST des Schieberegisters 7260 vier MEMCLK-Perioden
(das sind 400 Nanosekunden) , nachdem der Abruf veranlaßt worden ist, erscheinen. Wie oben diskutiert.,
ist dann der angeforderte Befehl auf dem MEMOUT-Bus $18
verfügbar, und LOADTUST übertragt den Befehl in den
PFP-Speicher 330.
030020/0815
I3o
Nach der Beschreibung der Struktur und Arbeitsweise des PFP 312 werden unten gewisse Merkmale des PFP 312 zusammengefaßt.
D. Zusammenfassung: der Merkmale des PFP 312
Gewisse Merkmale des PFP 312, die neben anderen oben beschrieben
wurden, sind:
Erstens: Der PFP 312 verbessert die Arbeitsleistung des Rechners 310 dadurch, daß er Befehle vor dem gerade in
der Ausführung durch die CPU 314· befindlichen Befehl aus
dem Speicher 311 abruft und im PFP-Speicher 330 speichert. Die CPU 314 muß daher nur selten ihre Tätigkeit einstellen,
um einen Lesezyklus im Speicher 311 mit 400 Nanosekunden
auszuführen, um Befehle zu erhalten. Stattdessen ist der nächste von der CPU 314 angeforderte Befehl auf dem PFP-Bus
322 vorhanden, wenn die CPU 314 die Ausführung des laufenden Befehls abschließt. Weiterhin kann die CPU 314
im PFP-Speicher 330 gespeicherte Befehle während Intervallen ausführen, wenn Geräte mit hoher Priorität (z.B.
ein Hochgeschwindigkeitskanal) einen bevorzugten Zugriff zum Speicher 311 erhalten. Die CPU 314 kann daher mit der
Arbeit fortfahren, während ihr der Zugriff zum Speicher verwehrt ist.
Zweitens: Durch Minimierung der Speicheranforderungen der CPU ^14 steigert der PiT 312 die Verfügbarkeit des Speichers
311 für andere Gerate.
030020/0815
29U419
Drittens: Der PFP 312 führt das Bereitstellen während
Speicherbus-Zyklen durch, die nicht durch Geräte mit
höherer Priorität angefordert werden, wie beispielsweise die CPU 314 oder ein Hochgeschwindigkeitskanal.
Dies wiederum vergrößert die Verfügbarkeit des Speichers 311 für diese Geräte.
Viertens: Der Zugriff des PFP 312 zum Speicher 311 kann
auf einen einzelnen Block von 128 Befehlen bei einem einmaligen Zugriff beschränkt werden. Dies verhindert,
daß der PFP 312 irrtümlich Befehle von einem anderen
Benutzerprogramm abruft.
Fünftens: Die Vorgriffskapazität des PFP 312 mag auf
16 Befehle beschränkt werden. Dies steigert die Wirksamkeit des PFP 312, indem sie einen angemessenen Vorgriff
gestattet, während das Ablegen von abgerufenen Befehlen dann, wenn die CPU 314 eine neue Folge von Befehlen beginnt, minimiert wird.
Sechstena: Der PFP 312 überwacht die Schreiboperationen
des Speichers 311· Dies verhindert einen Konflikt zwischen modifizierten Befehlen im Speicher 311 und früher abgerufenen unmodifizierten Befehlen im PFP-Speicher 330.
030020/0815
Die Beschreibung des PFP 312 ist hiermit abgeschlossen
und als nächstes wird die Mikrobefehl-Logik 342 beschrieben.
5. Mikrobefehl-Logik 342 (FiR. 28 - 30):
In Fig. 3 wird die Mikrobefehl-Logik 342 vom PFP-Bus 322 versorgt und liefert ein Ausgangssignal an das Mikrobefehl-Hegist
er 344. Das Mikrobefehl-Register 344 wiederum
liefert ein Ausgangssignal an den ALUIN-Bus 324. Wie oben beschrieben, werden häufig verwendete Sequenzen von Befehlen,
die als Mikrobefehle bezeichnet werden, in der Mikrobefehl-Logik 342 gespeichert. Wenn eine Sequenz von
Mikrobefehlen ausgeführt werden soll, enthält ein auf dem PFP-Bus 322 erscheinender Befehl, der als ein Macrobefehl
bezeichnet wird, in einem Teil eine Anweisung an die Mikrobefehl-Logik 342. Die Mikrobefehl-Logik 342 antwortet
auf einen Macrobefehl durch Lieferung einer entsprechenden Sequenz von Mikrobefehlen an die CPU 314.
Die Struktur der Mikrobefehl-Logik 342 wird zunächst auf der Ebene eines Blockdiagramms beschrieben, gefolgt von
einer Diskussion der Arbeitsweise der Mikrobefehl-Logik 342. Diese Darlegungen werden die Unterschiede zwischen der Mikrobefhel-Logik
342 des Rechners 310 und der Mikrobefehl-Logik
142 des bekannten Rechners 110, auf den früher Bezug genommen wurde, veranschaulichen.
030020/0815
A. Mikrobefehl-Logik 342, Aufbau und Wirkungsweise
(. 28)
In l''ig. 28 ist ein Blockdiagramm der Mikrobefehl-Logik
342 gezeigt. Es werden zunächst jene Elemente betrachtet,
die bei der bekannten Mikrobefehl-Logik 142 vorhanden sein könnten. Ein Eingang eines Decodier — ROM 2810
ist mit dem PFP-Bus 322 verbunden und sein Ausgang ist mit einem Eingang eines Decodier-Registers 2812 verbunden.
Der Ausgang des Decodier-Registers 2812 ist mit dem Mikrobefehladressen (uIADR)-Bus 2814 verbunden, der mit
Eingängen eines Mikrobefehl-Speichers 2816 und einer Mikrobefehlsequenz-Steuereinrichtung
2818 verbunden ist. Der Ausgang des Mikrobefehl-Speichers 2816 ist mit einem Eingang
des Mikrobefehl-Registers (/jIR) verbunden. Ein Ausgang
des Mikrobefehl-Registers 344 ist mit einem Eingang
einer Zustandsänderungslogik 2822 verbunden, und der Ausgang der Zustandsänderungslogik 2822 ist mit einem anderen
Eingang der Sequenz-Steuereinrichtung 2818 verbunden. Der Ausgang der Sequenz-Steuereinrichtung 2818 ist mit dem
/alRADR-Bus 2814 verbunden. In-dem wir uns zu den Unterschieden
der bekannten Mikrobefehl-Logik 142 und der vorliegenden Mikrobefehl-Logik 342 wenden, ist der PFP-Bus
322 mit dem Eingang einer Startadressengenerator-Logik (SAGE) 2824 verbunden, und der Ausgang der SAGE 2824 ist
mit dem jjIADR-Bus 2814 verbunden.
030020/081 5
29Α4Α19
Die Arbeitsweise der Mikrobefehl-Logik 342 wird zunächst
ohne die SAGE 2824· beschrieben, um die Arbeitsweise beim Stand der Technik zu erläutern. Als nächstes wird die
Arbeitsweise dann unter Einschluß der SAGE 2824- beschrieben werden, um die Arbeitsweise der vorliegenden Erfindung
zu erläutern.
Bei der Arbeit ohne die SAGE 2824- wird ein auf dem PFP-Bus
322 während eines ersten Zyklus des Prozessors erscheinender Macrobefehl durch den Decodier-ROM 2810 decodiert.
Der ROM 2810 erzeugt eine Mikrobefehl-Speicheradresse des ersten Mikrobefehls der entsprechenden Sequenz.
Zuerst wird die Adresse in das Decodierregister 2812 während des zweiten Prozessor-Zyklus übertragen und wird dem
Mikrobefehl-Speicher 2816 durch den jjIADR-Bus 2814- zugeführt.
Der Mikrobefehl-Speicher 2816 liefert einen entsprechenden ersten Mikrobefehl an das Mikrobefehl-Register
344. Der erste Mikrobefehl erscheint am Ausgang des Mikrobefehlregisters
344 beim Start des dritten Prozessor-Zyklus. Ausgewählte Bits des ersten und nachfolgenden Mikrobefehls
der Sequenz werden vom Mikrobefehl-Register 344 an die Zustandsänderungs-Logik
2822 geliefert. Die Zustandsänderungs-Logik
2822 liefert Steuersignale an die Sequenz-Steuereinrichtung 2818. Die Sequenz-Steuereinrichtung 2818 erzeugt
unter Verwendung der vom Decodier-Register 2812 gelieferten
Adressen und ihres eigenen Ausgangssignals Adressen für die
nachfolgenden Mikrobefehle der Sequenz. Die durch die Sequenz-Steuereinrichtung 2818 erzeugten Adressen werden dem
Mikrobefehl-Speicher 2816 und zu ihrem eigenen Eingang über den jiIADR-Bus 2814· geliefert. Neue Anfangsadressen
030020/08 15
werden, wenn sie während einer Sequenz benötigt werden, oder um eine neue Sequenz zu veranlassen, durch neue vom
PFP 312 über den PFP-Bus 322 gelieferte Macrobefehle
erzeugt.
Bei der Arbeit mit der SAGE 2824 verringert die SAGE 2824 die zum Veranlassen der Mikrobefehl-Sequenzen benötigte
Zeit. Wie oben beschrieben, war beim Stand der Technik ein erster Prozessor-Zyklus erforderlich, un einen Macrobefehl
zur Erzeugung einer Anfangsadresse für eine Sequenz zu decodieren. Die Anfangsadresse wurde zum Mikrobefehl-Speicher
2816 während des zweiten Prozessor-Zyklus geliefert. Der erste Mikrobefehl war dann für die Benutzung
durch die CPU 314 beim dritten Prozessor-Zyklus verfügbar.
Die SAGE 2824 führt eine teilweise Decodierung von bestimmten Macrobefehlen aus, um eine Anfangsadresse an den
Mikroprogramm-Speicher 2816 während des ersten Prozessor-Zyklus zu liefern. Der erste Mikrobefehl einer Sequenz
wird dadurch für die CPU 314 beim zweiten Prozessor-Zyklus
verfügbar. Der Decodier-ßOM 2810 führt gleichzeitig eine volle Decodierung des Macrobefehls aus, um eine Adresse
an den Mikroprogramm-Speicher 2816 in einem nachfolgenden Prozessor-Zyklus zu liefern. Die durch den Decodier-ROM
2810 gelieferten Adressen werden z.B. zum Auswählen einer bestimmten Sequenz aus einer Familie von Sequenzen (Zweigen)
mit einer gemeinsamen ersten Mikrobefehl-Sequenz verwendet. In solchen Fällen ruft die SAGE 2824 den ersten
Mikrobefehl aus einer Sequenz ab, und der Decodier-ROM 2810 ruft den ersten Mikrobefehl einer speziellen nachfolgenden
Zweigsequenz ab. Während der Ausführung einer speziellen
030020/081 5
Sequenz kann die Auswahl einer neuen Sequenz durch einen neuen Makrobefehl vom PFP 512 durchgeführt werden. Es
kann wiederum ein Makrobefehl für eine Zweigauswahl entweder durch die οAGE 2824 oder durch den Decodier-ROM 2810
decodiert werden; die Decodierung durch die SAGE 2824 kann
daher verwendet werden, um die zum Starten eines ausgewähl-. ten Zweiges benötigte Zeit zu verringern.
Nach der Diskussion der Struktur und Arbeitsweise der Mikrobefehl-Logik
322 auf der Ebene eines Blockdiagramms wird
nun die SAGE 2824 weiter besprochen.
B. SAGE 2824 (Fig. 29 und 30)
Die Decodierung durch die SAGE 2824 wird vorzugsweise verwendet, um häufig verwendete Mikrobefehlsequenzen zu starten.
Beispiele solcher Sequenzen sind ALC-Befehle und Rechnungen mit langen und kurzen effektiven Adressen (EFA). Ein weiteres
Beispiel sind E/A-Befehle, um schnell Daten in den Rechner 310 oder aus diesem heraus zu übertragen. Noch ein weiteres
Beispiel wird bezeichnet als Sequenzen eines erweiterten Befehlsvorrats (EIS-Sequenzen). Beispiele von EIS-Mikrobefehl-Sequenzen
sind einige arithmetische Fest- und Gleitkomma-Operationen,
logische Operationen, Bit-Manipulationen, Datenbewegungen, Stapelspeicher-Manipulationen, Datenfolge-Manipulationen
und Manipulationen mit Dezimalzahlen.
030020/0815
In Pig. 29 ist eine Tabelle gezeigt, die ausgewählte signifikante Bits der obengenannten Makrobefehle in Beziehung
setzt zu Mikrobefehl-Speicheradressen der Anfangs-Mikrobefehle der entsprechenden Mikrobefehlsfolgen. Um
die Schaltung der SAGE 2824 zu vereinfachen, ist es vorzuziehen, daß ausgewählte signifikante Bits dieser Makrobefehle
logisch miteinander in Verbindung stehen. Wie in Zeile 1 der Fig. 29 gezeigt ist, hat bei ALG-Befehlen das
Bit 0 den Wert 1. Die Bits 1 und 2 bezeichnen einen Quellenakkumulator (source accumulator ACS) und die Bits 3
und 4 bezeichnen einen Zielakkumulator (destination accumulator, ACD). Die Bits 5 bis 7 (FUN) enthalten den Operationscode, z.B. Addieren und Subtrahieren. Die Bits 8 und 9
(SH) definieren eine Verschiebeoperation, z.B. nach rechts oder links Schieben oder das Vertauschen der Hälften eines
Ergebnisses. Die Bits 10 und 11 (C) bezeichnen den Anfangswert eines Ubertragsbit-Eingangssignals in eine Operation.
Das Bit 12 (L) definiert, ob das Ergebnis der Operation in den ACD geladen werden wird, und ob das Übertragsbit
auf den neuesten Stand gebracht wird. Die Bits 13 bis 15 definieren einen Skiptest, d.h., ob ein Skip ausgeführt
werden soll. EIS-Sequenzen, die in Zeile 2 der Fig. gezeigt sind, werden dadurch definiert, daß die Bits 0 und
12 den Wert logisch 1 haben und daß die Bits 13 bis 15 den
Wert logisch 0 haben. Tatsächlich sind die EIS-Sequenzen ALC-Sequenzen, bei denen kein Laden oder Skip auftritt
(eine Leerbefehl-Bedienung). Die EIS-Befehle können daher
als Leerbefehl-ALC-Befehle betrachtet werden, die zum
Ausführen von Nicht-ALC-Mikrobefehlssequenzen verwendet werden. Die significanten Bits von Macrobefehlen mit langer
030020/081 5
effektiver Adresse (LONG KFA) sind in Zeile 3 gezeigt.
Derartige Befehle sind ähnlich den Befehlen mit kurzer effektiver Adresse, die früher beschrieben wurden, aber
sie erfordern zwei aufeinanderfolgende Macrobefehle zum Bestimmen der relativen Adresse. Macrobefehle mit langer
effektiver Adresse sind, gleich den EIS-Macrobefehlen,
definiert durch eine logische 1 in den Bits 1 und 12 und durch eine logische 0 in den Bits 13 bis 15· Macrobefehle
mit langer effektiver Adresse sind von EIS-Macrobefehlen
unterschieden durch die Bits 5, 8, 9, 10 und 11. Die Bits 5, 10 und 11 sind logisch 1 und Bit 9 ist logisch 0. Die
Bits 6 und 7 werden durch SAGE 2824 verwendet, um eine weitere teilweise Decodierung eines Macrobefehls mit langer
effektiver Adresse durchzuführen. Dies gestattet es, daß die SAGE 2824 den ersten Mikrobefehl der Sequenz eines
speziellen Macrobefehls mit langer effektiver Adresse aus einer Gruppe solcher Sequenzen auswählt, ohne darauf zu
warten, daß der Decodier-ROM 2810 eine zusätzliche Auswahldecodierung
durchführt. Macrobefehle mit kurzer effektiver Adresse (Short Ei1A) sind in Zeile 4 von Fig. 29 gezeigt.
Diese Macrobefehle sind dadurch unterschieden, daß das Bit 0 logisch 0 und die Bits 1 und 2 00, 01 oder 10 sind.
Die Bits 1 und 2 haben jedoch niemals beide den Wert logisch 1. Vier mögliche Kombinationen der Bits 6 und 7 werden
verwendet, ähnlich den Bits 6 und 7 bei den langen effektiven Adressen, um es zu ermöglichen, daß die SAGE
2824 eine weitere teilweise Decodierung ausführt. E/A-Macrobefehle sind in Zeile 5 gezeigt und werden ebenfalls
dadurch unterschieden, daß das Bit 0 den Wert logisch 0 hat. In diesem Fall sind die Bits 1 und 2 beide logisch 1,
wodurch sich die E/A-Macrobefehle von den Macrobefehlen mit kurzer effektiver Adresse unterscheiden.
030020/0815
29U419
In der rechten Spalte der Fig. 29 sind Speicheradressen des Mikroprogrammspeichers 2816 gezeigt, die die ersten
Mikrobefehle derjenigen Sequenzen enthalten, die den Macrobefehlen ALG, EIS, EFA und E/A entsprechen. Die in
Fig. 29 gezeigten Mikroprogramm-Speicheradressen sind als Zahlen zur Basis 8 (Oktalzahlen) ausgedrückt. Wie
dargestellt, stehen die einer Gruppe von Macrobefehlen entsprechenden Mikroprogrammspeicheradressen wieder miteinander
logisch in Beziehung. Zum Beispiel werden die Mikroprogrammspeicheradressen der ersten Mikrobefehle
von Sequenzen für kurze effektive Adressen in den Stellen 3701, 3721, 3741 und 3761 des Mikroprogramm-Speichers
2816 gespeichert. Die Auswahl der Mikroprogrammspeicher-Adressen in der Weise, daß alle ersten Mikrobefehladressen,
die einer gegebenen Gruppe von Macrobefehlen entsprechen, miteinander in logischer Beziehung stehen, vereinfacht die
Schaltung der SAGE 2824.
In Fig. 30 ist die bei einem speziellen Ausführungsbeispiel der SAGE 2824 verwendete Schaltung gezeigt. Wie beim
Unterspeicher 313 und beim PFP 312 wird die Schaltung der
SAGE 2824 nur insoweit besprochen werden, als dies zur Erläuterung der Wirkungsweise der SAGE 2824 nötig ist.
Verknüpfungsschaltungen 3010 bis 3018 und Inverter 3020 und 3022 bilden eine Prioritätsdecodierschaltung, um eine
Auswahl zwischen widerstreitenden Anforderungen nach der Ausführung von Mikrobefehl-Sequenzen zu treffen. Das eine
Ausgangssignal dieser Schaltung ist INSTSAGE (instruction
sage), das anzeigt, daß eine SAGE-Befehlssequenz der
oben diskutierten Gruppe ausgeführt werden soll. Drei
030020/0815
andere Ausgangssignale repräsentieren Anforderungen nach bisher nicht diskutierten Sequenzen. PFPSAGE (PFP SAGE)
zeigt an, daß eine Sequenz zum Unterstützen des PFP 312 (Dienst-Programm-Sequenz) ausgeführt werden soll; NMI +
INTSAGE (nicht-maskierbarer Interrupt oder SAGE - Interrupt) zeigt an, daß eine Sequenz für eine Interrupt-Routine ausgeführt
werden muß; und DCIISAGE (Data channel Sage) zeigt an, daß eine Sequenz ausgeführt werden muß, die eine von
einem E/A-Gerät veranlaßte Datenübertragung unterstützt. wie dargestellt, sind diese Ausgänge miteinander durch
eine verdrahtete ODER-Schaltung verknüpft, so daß zur gleichen Zeit nur ein Ausgangssignal aktiv ist. Die Priorität
der SAGE-Mikrobefehlssequenzen, die durch diese Ausgangssignale ausgewählt werden, ist umgekehrt zu der genannten
.Reihenfolge.
Die Eingangssignale der Prioritätsschaltung sind: SYNGDGH (Synch Data Channel) ist ein Prüfergebniseingangssignal
von der CPU 314-, das anzeigt, daß ein Datenkanal
unterstützt werden muß. Das Eingangssignal NMI + INTREQ (Nicht-maskierbarer Interrupt oder Interrupt-Anforderung)
zeigt eine Anfrage nach einer Mikrobefehlssequenz an, die einen Interrupt unterstützt. Das Eingangssignal PI1PREADY
(PFP READY) zeigt an, daß PFP 312 leer ist und eine Sequenz benötigt, die es erlaubt, daß Befehle aus dem
Speicher 311 abgerufen werden. Das Eingangssignal INH-PFPEMPTY
(Inhibit PFP Empty) ist ein Eingangssignal von der CPU 314, das die Unterstützung des PFP 312 blockiert
und das unten näher beschrieben wird. Das Eingangssignal ^iSEQ3 ist ein Eingangssignal von der Zustandeänderungslogik
2822, das anzeigt, daß eine SAGE-Decodierung ausgeführt werden muß.
030020/081 5
Puffer-Verknüpfungsglieder 3024, $026 und 3028 liefern
die teilweise decodierten Adressbits joIADR 3 bis 9 des
Speichers 2618 an den uIADfi-Bus 2814 und somit an den
Speicher 2816. Alle Adresseneingänge des Speichers 2618 sind mit Pull-Up-Widerständen versehen. Die Adresseneingänge
des Speichers 2618 liegen daher auf logisch 1, wenn sie nicht auf den Wert 0, beispielsweise durch die Puffer
3024 bis 3026 gebracht werden. Die Ausgangssignale /aIADR
3, 4, 5 und 7 des Puffers 3024 sind als Anfangsadressbits der ersten Mikrobefehle vom Sequenzen zur Unterstützung
von Datenkanälen, Interrupts und des PFP 312 vorgesehen.
Eingangssignale des Puffers 3024 sind DCHSAGE, NMI + INTSAGE und Pi1PSAGE von der Prioritätsschaltung. Der
Puffer 3024 wird durch μΒΕ^ und INSTSAGE über ein Verknüpfungsglied
3Ο3Ο aktiviert. Das Ausgangssignal des
Verknüpfungsglieds 3030 zeigt an, daß eine Datenkanal-, Interrupt- oder PFPSAGE-Decodierung ausgeführt werden
muß.
Die Puffer 3026 und 3028 liefern teilweise decodierte Adressbits des Speichers 2816 yuuIADfi 3 bis 9, wenn Sequenzen
für ALC-, EIS-Mikrobefehle, Mikrobefehle mit langer
und kurzer effektiver Adresse, oder für E/A-Mikrobefehle ausgeführt werden sollen. Das den Puffern 3026 und 3028
durch den Inverter 3032 zugeführte Eingangssignal INST-SAGE
zeigt an, daß eine SAGE-Decodierung für einen aus dieser Gruppe von Makrobefehlen. Verknüpfungsglieder 3034
und 3036 decodieren die Makrobefehlsbits PFP 0 und 12 bis
15 vom PFP-Bus 322 und liefern PFPEIS an den Puffer 3028.
PFPEIS zeigt an, daß ein Makrobefehl vom EIS-Typ durch
SAGE 2024 decodiert werden muß. Verknüpfungsglieder 3038 und 3040 decodieren die Makrobefehlsbits PFP 0, 5, 9, 10
x) durchgeführt werden muß. ./,
03QQ20/0815
294AA19
und 11 und liefern ein Signal EEA an den Puffer 3028. EEA zeigt an, daß ein Makrobefehl mit langer effektiver Adresse
dekodiert werden muß. Das Ausgangssignal eines Verknüpfungsglieds 3042 wird an den Puffer 3028 geliefert.
Die Makrobefehlsbits PFP 0, 6 und 7 werden direkt an Eingänge der Puffer 3026 und 3028 geliefert, z.B. für
kurze und lange effektive Adressen. Ein Eingangssignal IODEGODE des Puffers 3026 zeigt an, daß ein E/A-Makrobefehl
dekodiert werden muß.
Zusammengefasst selektiert SAGE 2824 dadurch die ersten Mikrobefehle bestimmter im Speicher 2816 gespeicherter
Sequenzen durch Dekodieren von ausgewählten Makrobefehlsbits, um entsprechende ausgewählte Mikrobefehlsadressbits
zu liefern. Eine einzelne Klasse von derart dekodierten Makrobefehlen mag mehr als eine Mikrobefehlssequenz enthalten.
Eine Gruppe von Sequenzen, die einem Makrobefehl entspricht, haben jedoch im allgemeinen alle eine gleiche
erste Mikrobefehlssequenz. SAGE 2824 führt eine teilweise Dekodierung aus, wo nötig, um eine Auswahl zwischen miteinander
in Beziehung stehenden Mikrobefehlssequenzen zu treffen, aber im allgemeinen wird eine solche Auswahl
durch den Dekodier-fiOM 2810 getroffen. Werden z.B. die Makrobefehle mit kurzer effektiver Adresse und die E/A-Makrobefehle
betrachtet, so liefert SAGE 2824 Adressbits, die ausreichen, um alle Adressen auszuwählen, die durch
37^1 repräsentiert sind. SAGE 2824 liefert dann weitere
Adressbits, die ausreichen, um anzuzeigen, ob X gerade ist (0, 2, 4, 6) oder ungerade (1, 3, 5, 7).
Die Besprechung der Mikrobefehls-Logik 342 und von SAGE 2824 ist somit abgeschlossen und der Konsole-ROM 358 wird
als nächstes besprochen.
030020/0815
- 126 -
6. Konsole-ROM $58 (Fig. 3)
In Fig. 3 ist der Konsole-ROM 358 in den Weg vom ALUOUT-Bus 358 zum ALUIN-Bus 324 eingeschaltet. Kurz gesagt, ersetzt
der Konsole-ROM 358 die Mehrzahl von Schaltern und Lampen eines Konsolengeräts, die normalerweise zur Kontrolle
des Rechners 310 verwendet werden. Dadurch benötigt der Rechner 310 nur ein kleines Konsolengerät, und jedes
externe Gerät mit einem ASCII-Anschluß kann den Rechner 310 steuern. Der Konsolen-ROM 358 enthält Makrobefehle
des Konsolenprogramms für den Konsolenbetrieb des Rechners 310. Diese enthalten die Prüfung und Modifizierung
des laufenden Inhalts des Rechners 310, Ureingabe von Programmen, und die Ausführung von Testprogrammen.
Bei der Arbeit schaltet der Rechner 310 in den Konsolenbetrieb,
wenn die Stromversorgung zuerst eingeschaltet wird, ein Haltebefehl vom Konsolengerät (aus Gründen der
deutlichen Darstellung nicht gezeigt) oder einem Makrobefehl empfangen wird, oder wenn ein Befehl des Konsolengeräts
empfangen wird. Beim Eintreten in den Konsolenbetriebszustand wird das CPUPC-Register 364 mit der Adresse
des Konsolen-ROM 358 für den ersten Befehl der im Konsolen-ROM 358 enthaltenen Konsolenbefehlsfolge geladen.
Daneben blockiert das Signal CONSOLEMODE die Tätigkeit des PFP 312. Gleichzeitig wird ein Signal PCDEST an den
PFP 312 geliefert, um PFPPCF und PFPPCR zu initialisieren und um den Status des PFP 312 in die Grundstellung zu
bringen. Das zur CPU 314 gelangende Signal PFPREADT fordert daneben die Mikrobefehl-Logik 342 zum Ausführen eines Bereitstell-Serviceprogramms
auf. Die Prüfungen der Mikrobefehl-Logik 342 stellen jedoch fest, daß der Rechner 310
im Konsolenbetriebszustand ist. CPUPC (das ist die erste
030020/0815
29ΑΑ419
Adresse der Konsolenprogrammsequenz) wird vom CPUPC-Register
364 über den ALUIN-Bus 324 zur ALU 356 übertragen.
Die ALU 356 überträgt CPUPG auf den ALUOUT-Bus
326 und somit zum Adresseneingang des Konsole-ROM 358.
Der erste Befehl des Konsolenprogramms erscheint dann am Ausgang des Konsolen-ROM 358 und wird durch den ALUIN-Bus
324 in die ALU 356 übertragen. Die ALU 356 überträgt'
den ersten Befehl des Konsolenprogramms auf den ALUOUT-Bus
326 und von dort durch das Register 352 zum PFP-Bus
322. Die Mikrobefehl-Logik 342 empfängt den ersten Befehl des Konsolenprogramms und führt eine SAGE 2824-Dekodierung aus, um die Ausführung des Xonsolenprogramms
zu beginnen. pTPFP5EaT3T hat ein PFP-Serviceprogramm angefordert, wie oben beschrieben, wird durch INHEMPTY beim
Start des Konsolenprogramms blockiert. Die Mikrobefehl-Logik 342 steuert die Anforderung von nachfolgenden Kon-8ölenprogrammbefehlen dadurch, daß sie geeignete Adressen
für den Konsolen-fiOM 358 über jiIH 3^4, ALU 356 und den
ALUOUT-Bus 326 liefert. Die auf diese Art angeforderten Befehle werden vom Konsolen-ROM 358 zur ALU 356 übertragen und von dort zur Mikrobefehl^Logik 3^-2 über den
ALUOUT-Bus 326, das Register 352, und den PEP-Bus 322.
Wenn einmal das Konsolenprogramm gestartet worden ist, mag eine bestimmte Konsolenprogrammsequenz, z.B. zur
Ausführung eines Testprogramms, durch ein externes ASCII-Gerät über den E/A-ASCII-Kanal '^h, angefordert
werden. Vorbestimmte Folgen von ASCII-Codezeichen, die z.B. ein Testprogramm darstellen, werden seriell von
einem externen Gerät zum UART 376 über den E/A-ASCII-Kanal
3k7 übertragen. Der UART 376 übersetzt die seriellen
ASCII-Codebits in parallele ASCII-Zeichen und sendet die Zeichen über den ALUIN-Bus ~$ΖΙ\ zur ALU 356. Eine
030020/081 5
Steuersequenz von Befehlen im Konsolenprogramm sammelt die Zeichen, bis eine vollständige Sequenz, die eine
Anfrage nach einer Konsolenprammsequenz entspricht, empfangen worden ist. Die Zeichen werden in einem
Zwischenregisterspeicher gesammelt, der im MAP 35zf
angeordnet ist. Diß Steuersequenz interpretiert dann die Sequenz und richtet sich nach dieser mittels zusätzlicher
Befehle im Konsolenprogramm. Es erscheint eine entsprechende Konsolenprogrammbefehlssequenz am
Ausgang des Konsolen-ROM 358 und wird zur Mikrobefehllogik 3^-2 über ALU 356 übertragen, wie oben beschrieben,
um die angeforderte Konsolenprograrnmtätigkeit zu bewirken. Während der Ausführung der angeforderten
Konsolenprogrammsequenz mag die Mikrobefehl-Logik 3^2
weitere Befehle vom Konsolen-ROM 358 anfordern, wie oben beschrieben.
Zusammengefaßt erlaubt der Konsolen-ROM 358, daß jedes externe ASCII-Schnittstellen-Gerät den Rechner 310
extern zur Ausführung von auf die Konsole bezogenen Operationen steuern kann. Speziell übersetzt der Konsolen-ROM
358 vorbestimmte Sequenzen von extern gelieferten Codezeichen, z.B. ASCII-Zeichen, in Maschinensprachen-Makrobefehle,
die durch den Rechner 310 bei der Ausführung von Konsolen-Operationen verwendbar sind.
Der Konsolen-ROM 358 tut dies durch Speichern von Befehlssequenzen,
die bei der Ausführung solcher auf die Konsole bezogenen Operationen benötigt worden. Der Konsolen-ROM
358 wird vorzugsweise unter Verwendung von leicht austauschbaren Lesespeichern (ROMs) verwirklicht.
Dies ermöglicht es, daß der Konsolen-ROM 358 leicht geändert werden kann, um ihn z.B. an ASCIV-Eingangssignale
anzupassen oder an eine Änderung bei den Makrobefehlen oder Mikrobefehlen im Rechner 310.
030020/081 5
29Α4419
Li ir· Besprechung des Konsolen-KOK 558 und des Rechners
510 int hiermit beendet.
7. Stückliste (Fign. 1^-27, 50)
Die Schaltungselemente, die bei der z.Zt. besten bekannten
Art der Ausführung der hier offenbarten Erfindung
benutzt werden, werden in der Tabelle unten beschrieben. Jene· Bauelemente, die nicht mit Bezugszeichen versehen
und im Text beschrieben sind, sind in den Fign. 14 - 27
und in Fig. ;30 getrennt angegeben. Alle Widerstände
sind Kohlewiderstände mit 0,2D W Belastbarkeit und 5 %
Toleranz und alle Kondensatoren haben 10 % Toleranz.
Bauelement Hjgrstel l_e_r Teil nummer
Verknüpfungsglied:
2126, 22J|6, Z'Ah* 23^8, Texas Instruments, Inc. SN7V3OO
2^0, ZYjZ, 2 558, 2 370,
2750, 2752, 2725
2122, Z21+2, 2250, 2532, Texas Instruments, Inc. SU71&02
Zy:,lu 23^6, 235^, 2520,
2526, 271.3, 2732, Ξ738,
2758
Inverter: 2112, 2319, Texas Instruments, Inc. SN7'|S0^
23 58, 2416, 2522, 2726,
27-36, 2748, 3032
Inverter: 5020, 3022 Texas Instruments, Inc. SN74^
Verknüpfungsglied:
202/|, 22Vi, 232^|, 2326, Texas Instruments, Inc. S
2 55-;, 5010, 3012, 301^1
•5016, 5013 Texas Instruments, Inc.
2718, 275/|, 2756, 3036, Texas Instrument s, Inc. SN74S1O
2762 Texas Instruments, Inc. SN74S11
2110 Texas Instruments, Inc. SN74S15
030020/081 5
Verknüpfungsglied: 2128,
2716,
Texas Instruments, Inc. SN7i+S22
Texas Instruments, Inc. SN7^S32
Texas Instruments, Inc. SlVi>h537
2715 Texas Instruments, Inc. SN7/+S38
Texas Instruments, Inc.
213O, 2210, 2318
Flipflop:
2212, 221if, 2216, 2218, Texas Instruments, Inc. SN74S74
ZZZ'6, ZZZh, 2226, 2228,
223O, 2234, 2236, 2238,
l·, 2356, 2712, 273O,
Texas Instruments, Inc. SN7Z+S112
Texas Instruments, Inc. SN7/4SI38
Texas Instruments, Inc. SN7/fS158
Texas Instruments, Inc.
Texas Instruments, Inc. UI
Texas Instruments, Inc. Π
Texas Instruments, Inc. S
Texas Instruments, Inc. f. Fairchild S
Texas Instruments, Inc. SN7/fS260
Texas Instruments, Inc.
Texas Instruments, Inc.
Texas Instruments, Inc SN7J+LS393
Flipflop:
2012, 201/+, 2016, 2018,
2020, 2022, 2728, Z73h,
2748
Multiplexer: 2116
Multiplexer: 2220, 2232, 2340, Zähler: 2312 Schieberegister: 2110
Schieberegister: 2316 ,
2760
Pu ff υ-·:
1OU, 1/10, 212Z1, 2614,
302h, 3026, 3028 Puffer: 2518 Multiplexer: 1610
Verknüpfungsglied: 2222, 2322, 2722, 3034, 3038
Speicher-Flipflop: 526, 528, 1712
Speicher-Flipflop: 1612, 25IO, 2512
Zählor: 2236, 2238
030020/081 5
29A4A19
RAM:
261Ö, 2620, 2622, 262/|
IiOK: 2710
Zähler:
2'31i|, 2516, 2610, 2612, 2616
Komparator: 252i\.
RAM:
1410, 12+12, MoO, 1/02,
, 1442, 1/f50
Verknüpfungsglied: 1912, 1914, 1924, 1926,
1928, 1930, 2330
Tranei |
stör: 236O |
Diode: |
2362 |
Widers
1932 |
tände: |
2366
2363 |
|
Konden.
2369 |
satoren: |
Advanced Mic ro Devices, AM29705
Inc.
Intersil, Inc.
Fairchild, Inc.
Fairchild, Inc.
Mostek, Inc.
Motorola, Inc.
IM56OJ5
93^16
93S46
ΜΚ4116-2
MC3459 ausgesucht für
'Schaltzeiten von weniger als 15 ns
7N5713
Oom, 5 %,1 AV/,Kohle
Ohm, 5 #, IAW,Kohle
Ohm, 5 ·#, lAV/,Kohle
k?0 Ohm, 5 %, 1AW,Kohle
pf, 5 %t Keramik
Die Erfindung kann noch in anderen speziellen Ausführungsformen verwirklicht sein, ohne vom Kern und den wesentlichen
Eigenschaften der Erfindung abzuweichen. Beispielsweise kann die Länge oder Breite des Unterspeichers 313
verändert werden oder der Unterspeicher 313 kann mit getrennten
Dateneingabe- und Adresseingabe-Bussen versehen werden. In gleicher Weise kann der Speicher 311 mehr als
acht Unterspeicher 313 enthalten. Weiterhin kann die in den Figuren 20, 22, 22A, 23A und 27A gezeigte Zeitgeberschaltung
anstatt mit Schieberegistern mit Zählern
030020/0815
verwirklicht sein. Die im PFP 312 gezeigte Speicherausgabebus-Intorface-Schaltung
^ann in ähnlicher Weise
bei jedem anderen Gerät, das mit Speicher 311 in Verbindung
steht, verwendet werden. Auch kann der SAGE 282Af für eine Anfangsdecodierimg von anderen Makrobefehlen
als jenen, die gezeigt wurden, verwendet werden, in Abhängigkeit von im Rechner 310 verwendeten spezifischen
Makrobefehls- und Mikrobefehls-Sequenzen. In gleicher Weise kann der Konsolen-ROM 353 sowohl für die Umsetzung
von Daten als auch von Befehlen verwendet werden. Daher sollen die vorliegenden Ausführungsformen in jeder Hinsicht
nur als Erläuterung und nicht als Beschränkung betrachtet v/erden und alle Äquivalente sollen miterfaßt
werden.
Es wurde die Architektur eines sehr schnellen Digitalrechnersystems
beschrieben. Die Architektur des Systems weist einen Prozessor zur Verarbeitung von digitalen
Daten in Maschinensprache auf und einen Speicher zum Speichern von mindestens Maschinensprache-Befehlen für
die Verwendung durch den Prozessor. Befehle oder Daten werden zwischen dem Speicher und dem Prozessor durch
Speicher-Ein/Ausgabe-Busse übertragen. Signale werden zwischen dem Rechnersystem und externen Geräten durch
E/A-Module übertragen. Es wurde eine Befehl-Bereitstellungsschaltung offenbart, um Befehle vor gerade
durch den Prozessor in Ausführung befindlichen Befehlen aus dem Speicher abzurufen und zu speichern. Ebenfalls
offenbart sind ein schneller Speicher und Speichereingabe- und Ausgabe-Busse, die eine große Spoicherbusbandbreite
und eine einfache Speicherbus-Interface-Schaltung schaffen. Die Prozessorschaltung gestattet
eine schnelle Veranlassung oder einen schnellen Beginn und eine schnelle Ausführung von Befehlssequenzen. Es
030020/0815
wird eine I·'/K-,'clialtun;" beschrieben, dio es gestattet,
daß die K-A-Module leicht an uine Vielzahl von externen
Geräten oder an Änderungen in der Maschinensprache des
Rechners oder in den Befehlen angepaßt werden.
Soweit die Art der in den Zeichnungen gezeigten Verknüpfungsglieder
(z.B. UND-Glied) in der Beschreibung nicht genannt ist, kann sie der Zeichnung entnommen
werden.
030020/081 5
/161
Leerseite