DE2837852C2 - Prozessor zum gleichzeitigen Ermitteln und Bereitstellen zweier Adressen von Befehls- und/oder Datenwortregistern eines bereichsweise adressierbaren Hauptspeichers - Google Patents
Prozessor zum gleichzeitigen Ermitteln und Bereitstellen zweier Adressen von Befehls- und/oder Datenwortregistern eines bereichsweise adressierbaren HauptspeichersInfo
- Publication number
- DE2837852C2 DE2837852C2 DE2837852A DE2837852A DE2837852C2 DE 2837852 C2 DE2837852 C2 DE 2837852C2 DE 2837852 A DE2837852 A DE 2837852A DE 2837852 A DE2837852 A DE 2837852A DE 2837852 C2 DE2837852 C2 DE 2837852C2
- Authority
- DE
- Germany
- Prior art keywords
- control
- register
- word
- memory
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
- 230000015654 memory Effects 0.000 title claims description 363
- 230000006870 function Effects 0.000 claims description 231
- 239000013598 vector Substances 0.000 claims description 80
- 230000003068 static effect Effects 0.000 claims description 78
- 238000012545 processing Methods 0.000 claims description 46
- 238000003860 storage Methods 0.000 claims description 39
- 238000004364 calculation method Methods 0.000 claims description 31
- FVFVNNKYKYZTJU-UHFFFAOYSA-N 6-chloro-1,3,5-triazine-2,4-diamine Chemical compound NC1=NC(N)=NC(Cl)=N1 FVFVNNKYKYZTJU-UHFFFAOYSA-N 0.000 claims description 26
- 238000012546 transfer Methods 0.000 claims description 21
- 230000005540 biological transmission Effects 0.000 claims description 17
- 230000000295 complement effect Effects 0.000 claims description 16
- 238000000034 method Methods 0.000 claims description 16
- 230000008569 process Effects 0.000 claims description 15
- 238000010606 normalization Methods 0.000 claims description 14
- 101100236975 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) GAL11 gene Proteins 0.000 claims description 10
- 238000007792 addition Methods 0.000 claims description 10
- 238000006073 displacement reaction Methods 0.000 claims description 9
- 238000007667 floating Methods 0.000 claims description 6
- 238000011144 upstream manufacturing Methods 0.000 claims description 5
- 230000000873 masking effect Effects 0.000 claims description 4
- 230000010354 integration Effects 0.000 claims description 3
- 230000004913 activation Effects 0.000 claims 1
- 230000008447 perception Effects 0.000 claims 1
- 230000009471 action Effects 0.000 description 95
- 238000010586 diagram Methods 0.000 description 52
- 101100521334 Mus musculus Prom1 gene Proteins 0.000 description 19
- 230000000694 effects Effects 0.000 description 16
- 239000010432 diamond Substances 0.000 description 14
- 238000012360 testing method Methods 0.000 description 11
- 230000008901 benefit Effects 0.000 description 10
- 238000010276 construction Methods 0.000 description 9
- 229910003460 diamond Inorganic materials 0.000 description 9
- 230000009977 dual effect Effects 0.000 description 9
- 230000036961 partial effect Effects 0.000 description 9
- 101001100204 Homo sapiens Ras-related protein Rab-40A-like Proteins 0.000 description 8
- 102100038416 Ras-related protein Rab-40A-like Human genes 0.000 description 8
- 238000001514 detection method Methods 0.000 description 8
- 102100036409 Activated CDC42 kinase 1 Human genes 0.000 description 4
- 101000928956 Homo sapiens Activated CDC42 kinase 1 Proteins 0.000 description 4
- 101100518501 Mus musculus Spp1 gene Proteins 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000002349 favourable effect Effects 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 4
- 101150054327 RAR1 gene Proteins 0.000 description 2
- 101100011885 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) ERG12 gene Proteins 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 235000012431 wafers Nutrition 0.000 description 2
- 230000003936 working memory Effects 0.000 description 2
- 101100046653 Arabidopsis thaliana TOR1L1 gene Proteins 0.000 description 1
- 101100174180 Caenorhabditis elegans fos-1 gene Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000005714 functional activity Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000012447 hatching Effects 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 108091063445 miR-13 stem-loop Proteins 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000033764 rhythmic process Effects 0.000 description 1
- 210000003296 saliva Anatomy 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
- 230000001629 suppression Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
- G06F9/226—Microinstruction function, e.g. input/output microinstruction; diagnostic microinstruction; microinstruction format
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Executing Machine-Instructions (AREA)
- Complex Calculations (AREA)
Description
kende Lese- und Schreibschaltungen angeordnet; die wesentliche Aufgabe dieser Positionierschaltungen ist es,
beim Einschreiben der Zeichen (Teilwörter) jeweils ein Register des Hauptspeichers vollständig zu füllen, also
mit einem gesamten Wort aus 36 Bits zu belegen bzw. beim Auslesen eines solchen vollständigen Wortes aus
einem Register des Hauptspeichers in ein Halteregister dieses Wort in eine Folge von Teilwörtern zu zerlegen,
die jeweils ein Zeichen wiedergeben. Die Positionierschaltungen werden von zwei Feldern M.W und Ob eines
Jj-Registers des Steuerspeichers entsprechend der Länge der zu verschiebenden Teilwörter (Zeichen) eingestellt. Das jeweils passende Jj-Register wird durch ein j-Feld des im Befehlswort-Register vorübergehend
festgehaltenen Befehlswortes adressiert. Die Jj-Register verfügen noch über ein weiteres Feld Ow. von dem den
drei arithmetisch/logischen Funktionseinheiten eine weitere Größe zur Addition mit der vom Zustandsregister
ίο und adressierten Xx-Register des Steuerspeichers abgeänderten relativen Adresse aus dem u-Feld des Befehlswortes zur Verfügung gestellt wird, um eine absolute Adresse für den dritten Bereich des Hauptspeichers zu
ermitteln. Wegen der von den Funktionseinheiten zweimal hintereinander durchzuführenden Addition muß das
erste Rechenergebnis von ihren Ausgängen zum Eingang gegebenenfalls über ein Po-fferregister zurückgeführt
werden, um das zweite Rechenergebnis zu ermitteln. Ein viertes Feld 1 des adressierten Jj-Registers gibt an, ob
das vom selben Befehlswort adressierte Xx-Register nur ein Wort oder die bereits beschriebene Folge der sich
um einen festen Wert unterscheidenden Wörter an die arithmetisch/logischen Funktionseinheiten des Prozessors ausgibt.
Um die Einsatzmöglichkeiten dieser soweit beschriebenen Datenverarbeitungsanlagen auszuweiten, bietet
sich noch eine Vervollkommnung durch eine Verwendung des Steuerspeichers nach der britischen Patentschrift
Nr. 14 64 570 an.
Dieser Steuerspeicher weist als wesentliche Komponenten einen Mikroprogrammspeicher und fünf hauptsächlich dem Auslesen dienende Speicher auf, die jeweils ein Steuerfeld aus acht Bits, gemeinschaftlich aber ein
Steuerwort aus 40 Bits ausgeben. Die im Mikroprogrammspeicher enthaltenen Mikroprogramme werden je
durch den Operationscode des aus dem Hauptspeicher oder einem Nebenspeicher in das Befehlswort-Register
ausgelesenen Befehlswortes adressiert Sie enthalten nur wenige Mikrobefehlswörter, von denen nacheinander
jeweils eine Adresse in ein dem Speicher vorgeschaltetes Adreßregister eingegeben wird. Das vom ems;·.
Speicher ausgegebene Steuerfeld aus 8 Bits schaltet Verknüpfungsglieder des Prozessors, das des zweiten
Speichers bewirkt die Ein-/Ausgabe der Befehls- und/oder Datenwörter (Operanden) in den bzw. aus dem
Hauptspeicher und einem Nebenspeicher der Datenverarbeitungsanlage, das des dritten Speichers beeinflußt
einen Maskierungs-Mechanismus, der innerhalb der Befehls- und/oder Datenwörter gewisse Felder unterdrückt
und andere zur Weiterbearbeitung freigibt, das des vierten Speichers gelangt zu einer arithmetisch/logischen
eines assoziativen Speichers zusammen, um gewisse Prüffunktionen hervorzurufen.
Bitposition des gerade ausgegebenen Steuerfeldes aus so eingestellt wird, daß entweder das benachbart abgespeicherte Steuerfeld ausgelesen wird oder das als nächstes auszulesende Steuerfeld einer erneuten Adressierung durch eine in einem der drei Register bereitgestellte Adresse bedarf. Somit steuert der jeweilige Speicher
die Ausgabe seiner Steuerfelder selbst, oder er unterliegt einer Steuerung durch eine gesondert bereitgehaltene
Adresse. Schließlich kann noch durch die eine Bitposition des zuletzt aus dem einen Speicher ausgelesenen
Steuerfeldes die Adressierung eines benachbarten Speichers beeinflußt werden, was jedoch wegen der andersartigen Bestimmung des vom benachbarten Speicher ausgegebenen Steuerfeldes kaum eine Bedeutung hat
In dem Buch von Samir S. Husson mit dem Titel: »Microprogramming — Principles and Practices« aus dem
Verlag: Prentice-Hall Ine, Englewood Cliffs, N. J„ USA, (1970), Seiten 188 bis 193, ist eine Datenverarbeitungsanlage erläutert, die einen Hauptspeicher für 16 χ 106 Wörter enthält, der bei einer Adressierung durch eine von
einem Speicheradreß-Register ausgegebene Adresse Datenwörter zu einer arithmetisch/logischen Funktionseinheit und/oder ein Befehlswort zu einem Befehlswort-Register hin leitet Die arithmetisch/logische Funktionseinheit besteht aus drei parallelen Abschnitten, von denen der erste binäre Festkommawerte, der zweite
Gleitkommazahlen und der dritte Dezimalzahlen bearbeitet bzw. logische Operationen übernimmt Der erste
Abschnitt steht mit 16 Mehrzweckregistern im Datenaustausch, die ebenfalls von dem Speicheradreß-Register
so adressiert werden. Dem zweiten Abschnitt sind vier Gleitkomma-Register zur Aufnahme seiner Rechenergebnisse nachgeschaltet Die Mehrzweckregister und die Gleitkomma-Register gehören zu einem Nebenspeicher,
der dem Rechenwerk der Datenverarbeitungsanlage zuzuordnen ist Mit dem bereits genannten Befehlswort-Register wirkt ein mikroprogrammierter Steuerspeicher des Leitwerkes zusammen, der einen nur dem Auslesen
dienenden Speicher enthält, der von einem gesonderten Adreßregister über Decodier- und Treibschaltungen zur
Ausgabe eines oder zweier benachbarter Mikrobefehlswörter an ein bzw. zwei nachgeschaltete Datenregister
adressiert wird.
Bei einer speziellen Kombination der Speicher soll die Zykluszeit des Hauptspeichers 960 nsec, die der
zugehörigen Lese-/Schreibpuffer, sowie des nur dem Auslesen dienenden Speichers 80 nsec betragen, wobei der
letztere über eine Kapazität von 2 048 000 Wörtern mit je 108 Bits verfügt, während die sog. Nebenspeicher 24
Von dem im Datenregister vorübergehend aufgenommenen Mikrobefehlswort werden einige Bits in Form
eines »nächsten Adreßfeldes« unmittelbar, also ungeändert zu dem gesonderten Adreßregister zurückgeführt
damit in dem nur dem Auslesen dienenden Speicher an der nächsten Adresse das dort abgelegte Mikrobefehlswort ausgegeben wird. Weitere Bits, die als »Verzweigungsfeld« bezeichnet sind, laufen über einen Decodierer
und eine Verzweigungslogik, die über eine Datenbahn beeinflußt wird, auch zum gesonderten Adreßregister
zurück, um dem Speicher eine Verzweigungsadresse zuführen zu können. Die meisten Bits des Mikrobefehlswortes werden, in Gruppen (sog. Steuerfelder) eingeteilt, über je einen Decodierer und gegebenenfalls über ein
weiteres Zwischenregister zu Steuerschaltungen für Datenbahnen geleitet, die entweder einfache Verknüp-
fungsglieder ζ. B. zwischen Addierern und einem bzw. mehreren Registern oder auch Schiebeschaltungen sein
können, von denen eine Zahl um eine oder mehrere Stellen nach rechts oder links verschoben wird. Auch können
durch ein Steuerfeld Übertragsbits in ein vorgegebenes Register übertragen oder leere Stellen mit Bits aus
einem speziellen Register aufgefüllt werden.
Solche und ähnliche Funktionen werden für sich von einem einzigen Mikrobefehlswort aus dem Steuerspeieher
innerhalb eines Zyklus der Datenverarbeitungsanlage bewirkt. Dies gilt auch für die Ausführung einer
Addition von Binär- oder Dezimalzahlen oder für die Verschiebung des betreffenden Rechenergebnisses nach
links oder rechts oder für dessen Ablage in einem oder mehreren Registern. — Um die Zeitspanne für den
Zugriff auf den Steuerspeicher, also den nur dem Auslesen dienenden Speicher zu verkürzen und den Aufwand
an Adressier- und Verknüpfungsschaltungen zu verringern, werden, wie bereits erwähnt, zwei benachbarte
Mikrobefehlswörter, deren Adressen sich in der niedersten Stelle unterscheiden, gleichzeitig ausgelesen und in
den beiden nachgeschalteten Datenregistern vorübergehend festgehalten, damit sie möglichst spät innerhalb des
Zyklus der Datenverarbeitungsanlage geprüft und der endgültigen Auswahl unterzogen werden können, wobei
natürlich das jeweils andere Mikrobefehlswort verworfen wird.
Wie erinnert sei, ist bei der zuerst erläuterten Datenverarbeitungsanlage nach der USA-Patentschrift
Nr. 33 89 380 die Zeitspanne zur Ausführung eines Befehles, die sich mit dem Holen (Adressieren und Ausgeben)
des nächsten Befehlswortes zumindest teilweise deckt, mit 375 nsec angegeben, deren geringe Länge mit der
Unterteilung des Hauptspeichers in zwei unabhängig voneinander wirksame Bänke, der Befehls- und Datenbank
begründet wird. Bei der verbesserten Datenverarbeitungsanlage nach der deutschen Offenlegungsschrift
Nr. 24 25 574 ist diese Zeitspanne zum Adressieren und Auslesen eines Befehlswortes mit 368 nsec festgesetzt, in
der jedoch noch vier weitere Befehle ausgeführt werden, wobei ihr jeweiliges Befehlswort in einer dieser vier
vorangegangenen Zeitspannen aus dem Hauptspeicher ausgelesen wurden. Wenn man diese zeitlichen Überlappungen
bei der Ausführung der Befehle einmal außer Acht läßt, folgt der Zeitspanne zum Holen eines Befehls
von 368 nsec noch eine Zeitspanne von 1 167 usec zu seiner Ausführung.
Der Erfindung liegt die Aufgabe zugrunde, einen Prozessor der im Oberbegriff des Patentanspruchs 1 angegebenen
Art mit einer wesentlich gesteigerten Bearbeitungsgeschwindigkeit bei der Ausführung der vom Hauptspeicher
ausgegebenen Befehlswörter anzugeben.
Diese Aufgabe wird erfindungsgemäß dadurch gelöst, daß die arithmetisch/logischen Funktionseinheiten
jeweils aus mehreren unter sich parallel geschalteten Schaltungschips von hohem Integrationsgrad mit einem an
ihrem einen Eingang angeschlossenen Nebenspeicher und mit einem an ihrem Ausgang angeschlossenen Akkumulator
aufgebaut sind, und daß in Abhängigkeit von dem im Makrobefehlswort-Register vorübergehend
festgehaltenen Makrobefehlswort die arithmetisch/logischen Funktionseinheiten gemeinsam durch mehrere
Steuerfelder eines entsprechend im Steuerspeicher adressierten Mikrobefehlswortes zur gleichzeitigen Ausführung
eines Mikrobefehles in jeder Funktionseinheit beaufschlagbar sind.
Die hier angewendeten Schaltungschips von hohem Integrationsgrad, die in der Literatur abgekürzt auch als
»LSI-Chips« bezeichnet werden, übernehmen auf Grund ihrer hohen Komplexibilität eine vollständige Systemfunktion
wie die eines Mikroprozessors, im vorliegenden Fall bis zu 67 Funktionen. Obgleich das einzelne
LSI-Chip solch eine große Zahl arithmetischer und logischer Funktionen bewältigt, hat man bisher von seinem
Einsatz in den Datenverarbeitungsanlagen abgesehen, die für einen Durchsatz von ziemlich langen Befehls- und
Datenwörtern (mit mehr als 32 Bits) ausgelegt sind, weil man sich vor der Verwirklichung ihrer gegenseitigen
Verdrahtung und der mit anderen Bauelementen fürchtete, sowie die dabei auftauchenden Probleme nicht zu
lösen glaubte.
Wenn ein einzelnes als Mikroprozessor tätiges LSI-Chip, das von seiner Herstellung her nicht als kostspielig
angesehen werden kann, eine Folge dem Hauptspeicher der Datenverarbeitungsanlage entnommener Befehle
ausführt, kann unter günstigen Bedingungen eine Bearbeitungsgeschwindigkeit von etwa 200 0OO Befehlen je
Sekunde erreicht werden. Dadurch daß beim Prozessor gemäß der Erfindung diese Folge Befehle aus dem
Hauptspeicher in mehrere von je einem LSI-Chip auszuführenden Mikrobefehlsfolgen zerlegt wird, können bis
zu 1 200 000 Befehle je Sekunde bearbeitet werden.
Im folgenden wird die Erfindung anhand von Ausführungsbeispielen im Zusammenhang mit den Figuren
ausführlicher erläutert Es zeigt F i g. 2 ein vereinfachtes schematisches Blockschaltbild des Prozessors gemäß der vorliegenden Erfindung;
F i g. 3 ein Fiußdiagramrn der Struktur des bei dem Prozessor gemäß der vorliegenden Erfindung verwendeten
Mikrocodes;
F i g. 4 eine Darstellung des Formates und der Felder der Mikrobefehlssteuerworte, die bei dem Prozessor der
vorliegenden Erfindung verwendet werden; F i g. 5 ein detailliertes Blockschaltbild des Prozessors gemäß der vorliegenden Erfindung;
F i g. 6 ein schematisches Blockschaltbild eines Mikroprozessorscheibchens, das bei Realisierung der arithmetisch/logischen
Funktionseinheiten des Prozessors nach F i g. 5 verwendet wird;
Fig.7 ein Speicherdiagramm, das die Steuerworte für verzögerten Einsatz (DAC-Worte), die in einem
DAC-Tabellenspeicher gespeichert sind, zeigt;
F i g. 8 ein schematisches Blockschaltbild der in dem Prozessor von F i g. 5 verwendeten tabellengetriebenen
Steueriogik
Fig.9 ein Flußdiagramm, das den Steuerungsfluß eines Mikrobefehles des Prozessors der vorliegenden
Erfindung darstellt;
Fig. 10 ein Zeitdiagramm, das die Zeiteinteilung der verschiedenen Aktivitäten darstellt, die während eines
; Mikrozykluses des Prozessors der vorliegenden Erfindung auftreten;
F i g. 11 ein Zeitdiagramm, das die während eines Mikrozyklus des Prozessors der vorliegenden Erfindung
auftretenden Ereignisse darstellt, und zwar bezüglich einer dort verwendeten Überlappung von Drei-Wege-Mi-
krobefehlen-.
Fig. 12 ein Zeitdiagramm von drei aufeinanderfolgenden Mikrozyklen des Prozessors der vorliegenden
Erfindung, das die Überlappung der Drei-Wege-Mikrobefehle im Hinblick auf drei Zyklen darstellt;
Fig. 13 ein beispielhaftes Flußdiagramm, das drei aufeinanderfolgende Mikrozyklen des Prozessors der
vorliegenden Erfindung insbesondere im Hinblick auf tatsächliche und auf Phantom-Verzweigungen;
Fig. 14 ein Zeitdiagramm, das die während drei aufeinanderfolgender Mikrozyklen des Prozessors der
vorliegenden Erfindung auftretenden detaillierten Aktivitäten darstellt, insbesondere im Hinblick auf die Überlegung
der Drei-Wege-Mikrobefehle;
F i g. 15 ein Flußdiagramm, das den Mikrobefehl »GEMEINSAM« darstellt;
Fig. 16a—c Flußdiagramm, die die Mikroroutine für die »Rufe einzelnen Operanden direkt ab«-Makrorepertoireklassenbasis
(FETCH SINGLE OPERAND DIRECT) darstellen;
Fig. 17 ein Flußdiagramm, das die Mikroroutine für den Makrobefehl »Addiere direkt zu A« (ADD TO A
DIRECT) darstellt;
Fig. 18a—d Flußdiagramme, die die Mikroroutine für die Makrorepertoireklassenbasis »Rufe einzelnen
!5 Operanden indirekt ab« (FETCH SINGLE OPERAND INDIRECT) darstellt;
F i g. 19a—f Flußdiagramme, die die Mikroroutine für die Makrorepertoireklassenbasis »Rufe einzelnen Operanden
sofort ab« (FETCH SINGLE OPERAND IMMEDIATE) darstellt;
Fi g. 20 ein Flußdiagramm, das die Mikroroutine für den Makrobefehl »Addiere sofort zu A« (ADD TO A
IMMEDIATE) darstellt;
Fig. 21a—c Flußdiagramme, die die Mikroroutine für die Makrorepertoireklassenbasis »Springe auf größer
und dekrementiere« (JUMP GREATER AND DECREMENT) darstellen;
F i g. 22a—c Flußdiagramme, die die Mikroroutine für den Makrobefehl »Springe auf größer und dekrementiere«
(JUMP GREATER AND DECREMENT) darstellen;
Fig.23a—c Flußdiagramme, die die Mikroroutine für die Makrorepprtoireklassenbasis »Unbedingte Verzweigung«
(UNCONDITIONAL BRANCH) darstellen;
Fig.24a—f Rußdiagramme, die die Mikroroutine für den Makrobefehl »Speichere den Ort und Springe«
(STORE LOCATION AND JUMP)darstellen;
F i g. 25a—f Flußdiagramme, die die Mikroroutine für die Makrorepertoireklassenbasis »Speichere« (STORE)
darstellen;
Fig. 26a—b Flußdiagramme, die die Mikroroutine für den Makrobefehl »Speichere A« (STORE A) darstellen;
Fig.27a—c Flußdiagramme, die die Mikroroutine für die Makrorepertoireklassenbasis »Überspringe und
bedingte Verzweigung« (SKIP AND CONDITINAL BRANCH) darstellen;
Fig.28a—c Flußdiagramme, die die Mikroroutine für den Makrobefehl »Teste nicht gleich« (TEST NOT
EQUAL) darstellen;
Fig.29a—c Flußdiagramme, die die Mikroroutine für die Makrorepertoireklassenbasis »Schiebe« (SHIFT)
darstellen;
Fig.30a—b Flußdiagramme, die die Mikroroutine für den Makrobefehl »Einzelne algebraische Verschiebung«
(SINGLE SHIFT ALGEBRAIC) darstellen;
Fig.31 ein schematisches Blockschaltbild, das Einzelheiten der 36 Bit-Betriebsweise der arithmetisch/logischem
Funktionseinheit des Prozessors von F i g. 5 darstellt;
l· i g. 32 ein schematisches Blockschaltbild, das Einzelheiten der 2 χ 10-Bit-Betriebsweise der arithmetisch/logischen
Funktionseinheit des Prozessors von F i g. 5 darstellt;
F i g. 33 ein schematisches Schaltbild, das die Logik zum Kombinieren der Anordnungen von F i g. 31 und 32
darstellt;
F i g. 34 ein schematisches Blockschaltbild, das Einzelheiten des Makrobefehlsregisters und des Befehls- und
Adressen-Registers des Prozessors von F i g. 5 darstellt;
F i g. 35 ein schematisches Schaltbild, das die Logik zum Addressieren der Befehlsstatustabelle des Prozessors
von F i g. 5 darstellt;
so Fig. 35a eine Speicherkarte der Befehlsstatustabelle;
so Fig. 35a eine Speicherkarte der Befehlsstatustabelle;
Fig.36 ein schematisches Blockschaltbild, das Einzelheiten des B-Sammelschienen-Eingangs-Multiplexers,
der Hochgeschwindigkeitsverschiebeeinrichtungen, des Schiebe/Masken-Adressenspeichers und des Adressenmultiplexers
hierfür darstellt;
F i g. 36a eine Speicherkarte des Schiebe/Masken-Adressenspeichers;
Fig.37 ein schematisches Blockschaltbild, das Einzelheiten des Adressenmultiplexers des lokalen Speichers
des Prozessors von F i g. 5 darstellt;
F i g. 38 ein schematisches Blockschaltbild, das Einzelheiten der Nebenspeicher (lokalen Speicher), der Komplementiereinrichtungen
und der A-Sammelschienen-Register des Prozessors von F i g. 5 darstellt;
Fig.39 ein schematisches Blockschaltbild, das Einzelheiten des Schreib-Steuer-Schaltkreises, der bei den
Nebenspeichern des Prozessors nach F i g. 5 verwendet wird, darstellt;
F i g. 40 ein schematisches Blockschaltbild, das Einzelheiten des Adressierungsmultiplexers und der Verriegelung
für den Steuerspeicher des Prozessors von F i g. 5 darstellt;
Fig.41 ein schematisches Blockschaltbild, das Einzelheiten der Adressierungsverriegelung für die Speicher
der verschobenen Einsatzsteuerung des Prozessors nach F i g. 5 darstellt;
Fig. 42 ein schematisches Blockschaltbild, das die Verriegelungen der verschobenen Einsatzsteuerung für den
Prozessor von F i g. 5 darstellt;
Fig.43 ein schematisches logisches Schaltbild,das Einzelheiten der Hauptspeicher-Interface-Steuerlogik für
den Prozessor von F i g. 5 darstellt;
Fig.44 ein schematisches Blockschaltbild, das Einzelheiten des Speicherdatenleseregisters des Prozessors
nach F i g. 5 darstellt;
F i g. 45 ein schematisches Blockschaltbild, das Einzelheiten des Register-Adressenregisters des Prozessors
nach F i g. 5 darstellt;
F i g. 46, die aus den F i g. 4Ca und 46b besteht, ein schematisches Blockschaltbild, das Einzelheiten des Adressierungsmultiplexers
des Mehrzweck-Registerstapels des Prozessors nach F i g. 5 darstellt;
F i g. 46c ein schematisches Blockschaltbild zum Erzwingen eines »Null«-Ausgangssignals von dem allgemeinen
Registerstapel des Prozessors nach F i g. 5 unter vorbestimmten Umständen;
F i g. 47 ein schematisches Blockschaltbild, das Einzelheiten des lokalen Speicheradressierungsregisters des
Prozessors von F i g. 5 darstellt;
F i g. 48 ein schematisches Blockschaltbild, das Einzelheiten des B-Sammelschienenselektors des Prozessors
von F i g. 5 darstellt;
F i g. 49 ein Diagramm, das die Zeiteinteilung.für eine D-Sammelschienen- zu B-Sammelschienenübertragung
in dem Prozessor von F i g. 5 darstellt;
F i g. 50 ein schematisches Blockschaltbild, das Einzelheiten der Funktionsmultiplexer und Verriegelungen der
arithmetisch/logischen Funktionseinheit des Prozessors von F i g. 5 darstellt;
F i g. 51 ein schematisches Blockschaltbild, das Einzelheiten des Ausgangssteuerfunktionsmultiplexers und der
-Verriegelungen der arithmetisch/logischen Funktionseinheit des Prozessors von F i g. 5 darstellt;
F i g. 52 ein schematisches Blockschaltbild, das Einzelheiten der Stabilisierungs- und Steuersystemverriegelungen
(SCS-latches) für den Prozessor von F i g. 5 darstellt;
F i g. 53 ein schematisches logisches Schaltbild, das Einzelheiten bezüglich des Setzens der Verriegelungen der
statischen Steuervariablen des Prozessors von F i g. 5 darstellt;
F i g. 54 ein schematisches logisches Schaltbild, das Einzelheiten des EM-Sammelschienenmultiplexers der
arithmetisch/logsichen Funktionseinheit P4 des Prozessors von F i g. 5 darstellt;
F i g. 55 ein schematisches logisches Schaltbild, das Einzelheiten des Adressierungsmultiplexers für den Nebenspeicher
LM4 des Prozessors von F i g. 5 darstellt;
F i g. 56 ein schematisches Blockschaltbild, das Einzelheiten der Normalisierungs-Hilfseinrichtung des Prozessors
von F i g. 5 darstellt;
F i g. 57 ein schematisches Blockschaltbild, das Einzelheiten des Schiebesteuerregisters des Prozessors von
F i g. 5 darstellt und
F i g. 58 ein schematisches Blockschaltbild, das die Register darstellt, die zur Einsparung von Steuerfeldern i
über einen Mikrozyklus des Prozessors von F i g. 5 verwendet werden, bei Ausführung einer drei-wege-mikro- y
überlappten Betriebsweise. |
In der Fig.2 ist ein der Übersicht dienendes und in den Fig. 5a bis 5c ein ausführlicheres Blockschaltbild §
eines Prozessors 10 zu sehen, der die erfindungsgemäßen Merkmale aufweist. Mit ihm arbeitet ein Hauptspei- 35 ij
eher It der Datenverarbeitungsanlage (außerhalb des oberen und unteren Figurenrandes nicht dargestellt) i>1
zusammen, der in zwei unabhängig voneinander adressierbare Bänke, nämlich eine Befehlsbank und eine U
Datenbank unterteilt ist Zur Adressierung der einzelnen Register des Hauptspeichers 11 sind im Prozessor 10 ||
ein Befehlsadreß-Register 12 und zur Aufnahme cies jeweils ausgegebenen Befehlswortes ein Befehlswort-Regi- §|
ster 13 angeordnet. Ein Operandenadreß-Register 14 nimmt die Adresse desjenigen Registers des Hauptspei- 40 '|
chers 11 auf, in das ein Operand einzuspeisen bzw. aus dem dieser auszulesen ist. Dabei hält ein erstes
Speicherdaten-Register 15 diesen Operanden zur Eingabe an der im Operandenadreß-Register 14 festgehalte- |
nen Adresse bereit, so daß er entweder in ein Register der Datenbank oder in eines der Befehlsbank eingespeist
werden kann. Schließlich empfängt ein zweites Speicherdaten-Register 16 den Operanden aus demjenigen
Register des Hauptspeichers 11, das gerade durch die in das Operandenadreß-Register 14 eingegebene Adresse
bezeichnet ist.
Der Prozessor 10 enthält ferner mehrere arithmetisch/logische Funktionseinheiten 17,18 und 19 zur Übernahme
verschiedener logischer und/oder Rechenfunktionen an Binärwerten, die über Eingänge A und B herangeführt
oder von einem an einem Ausgang D vorgesehenen Akkumulator aus zurückgeführt werden. Diese
Funktionseinheiten 17 bis 19 können unterschiedlich betrieben werden, nämlich zur Bearbeitung eines Operanden
aus 36 Bits oder zur gleichzeitigen Bearbeitung zweier Gruppen von 20 Bits, die je eine Adresse aus 18 Bits
enthalten können. Mit ihren Eingängen B ist eine B-Sammelleitung 22 und mit ihren Ausgängen D eine
D-Sammelleitung 23 über ODER-Glieder (nicht gezeigt) zur gleichzeitigen Übertragung bis zu 40 Bits verbunden.
Weiterhin ist den Funktionseinheiten 17 bis 19 je ein Nebenspeicher 24, 25 bzw. 26 zugeordnet, der der
Zwischenspeicherung von ausgegebenen Werten und dem Bereithalten von für den Rechenvorgang benötigten
Konstanten dient. Somit kann der Nebenspeicher 24 Adressierungskonstanten BI, LLI und ULI für die Befehlsbank und der Nebenspeicher 25 Adressierungskonstanten BD, LLD und ULD für die Datenbank des Hauptspeichers
11 festhalten, die bei der Überprüfung von Bereichsgrenzen benutzt werden. Die Kapazität der Nebenspeicher
24 bis 26 beträgt 64 Wörter mit 40 Bits, die aus der D-Sammelleitung 23 aufgenommen oder an den
Eingang A der betreffenden Funktionseinheit 17 bis 19 abgegeben werden.
Im Prozessor 10 ist außerdem eine vierte arithmetisch/logische Funktionseinheit 27 mit einem Nebenspeicher
28 von beschränkter Aufnahmefähigkeit, nämlich für 16 Wörter mit jeweils 20 Bits angeordnet. Wie bei den
anderen Funktionseinheiten 17 bis 19 ist ihr Ausgang D mit dem Eingang des Nebenspeichers 28 verbunden,
dessen Ausgang am Eingang A der Funktionseinheit 27 liegt; jedoch verfügt diese Funktionseinheit 27 über eine
eigene B4-Sammelleitung 29 an ihrem Eingang B und über eine eigene D4-Sammelleitung 30 an ihrem Ausgang
D. Die B4-Sammelleitung 29 nimmt Wörter aus 20 Bits aus dem Befehlsadreß-Register 12 auf; auch können ihr
ein a-Feld und j-Feld des Befehlswortes aus dem Befehlswort-Register 13 zugeleitet werden. Die von der
Funktionseinheit 27 ausgegebenen Wörter mit 20 Bits laufen zu ihrem Nebenspeicher 28 zurück oder über die
Ü4-Sammelleitung 30 in ein Programmregister 31 hinein, das dem Befehlsadreß-Register 12 vorgeschaltet ist
Die wesentliche Aufgabe der vierten arithmetisch/logischen Funktionseinheit 27 besteht darin, die Adressen der
Register des Hauptspeichers 11 zu berechnen, aus denen im Rahmen des vom Prozessor 10 auszuführenden
Programms die Befehlswörter der Reihe nach ausgegeben werden sollen.
s Natürlich kann die Berechnung der auszugebenden Befehlswörter und Operanden auch von den Funktionseinheiten 17 bis 19 vorgenommen werden; die berechneten Adressen werden dann dem Befehlsadreß-Register
12 bzw. dem Operandenadreß-Register 14 über die D-Sammelleitung 23 zugeführt, die auch die von den
Funktionseinheiten 17 bis 19 berechneten Operanden dem Speicherdaten-Register 15 zum Einschreiben in den
Hauptspeicher 11 zuleitet
Der Prozessor (10) (im folgenden als Zentraleinheit 10 bezeichnet), enthält einen Mehrzweckregisterstapel
(general register stack (GRS)) 32, der einen Satz von Index- und Operandenregistern enthält, ähnlich denen, die
in dem UNIVAC-Rechner 1108 verwendet werdea Der Mehrzweckregisterstapel 32 empfängt zur Speicherung
in ihm Daten von der D-Sammelschiene 23. Die in dem Mehrzweckregisterstapel 32 enthaltenen Register
werden unter anderem zur indexierten Adressierung verwendet Ein einzelnes Register des Stapels 32 wird
mittels eines Register-Adress-Registers (RAR) 33 adressiert Die Adressinformation wird in das Register-Adress-Register 33 von der D-Sammelschiene 23 und von der D4-Sammelschiene 30 eingegeben. Der Mehrzweckregisterstapel 32 wird also von dem X-FeId aus dem Makrobefehlsregister 13 adressiert
An die B-Sammelschiene 22 werden Daten über einen Eingangsmultiplexer 34 und eine Höchstgeschwindigkeits-Datenverschiebeeinrichtung 35 angelegt Die Eingänge zu dem Multiplexer 34 werden von der D-Sammel-
schiene 23, der D4-Sammelschiene 30, dem Mehrzweckregisterstapel 32, dem Speicherdatenregister 16 und dem
U-FeId von dem Makrobefehlsregister 13 bereitgestellt Der Multiplexer 34 wählt die an die Verschiebeeinrichtung 35 anzulegenden Eingänge aus, wobei die Verschiebeeinrichtung 35 wahlweise die Daten für ihre Übertragung auf die B-Sammelschiene verschiebt in einer weiter unten zu beschreibenden Art und Weise.
Die Zentraleinheit 10 enthält weiterhin einen Steuerspeicher 36 zur Speicherung der Mikro-Code-Routinen,
die zur Emulierung der Makroinstruktionen des UNIVAC-Rechners 1108 angewandt werden. Die nachfolgend
zu beschreibenden Befehlsworte werden adressiert und zu einem Steuerspeicherregister 37 übertragen, von dem
die einzelnen Felder der Mikrobefehlsworte zu den Komponenten der Zentraleinheit 10 zur Steuerung deren
Operationen geleitet werden. Jeder der lokalen Prozessoren 17,18,19 und 27 wird durch ein einziges Feld in dem
Steuerspeicher 36 gesteuert Die Felder steuern nicht nur die durch sie auszuführenden arithmetischen und
logischen Funktionen, wie z. B. Addieren, logisches ODER etc, sondern auch, ob die Operanden der aktuelle
Wert auf der B-Sammelschiene 22, ein Wort von dem zugeordneten lokalen Speicher 24, 25 oder 26, dem
internen Akkumulator in dem lokalen Prozessor, oder eine Kombination aus zwei dieser Operandenquellen sind,
oder nicht Die Steuerspeicherfelder steuern ebenfalls, ob die Inhalte des Akkumulators des lokalen Prozessors
auf die D-Sammelschiene 23 ausgegeben werden sollen oder nicht und ob der Wert auf der D-Sammelschiene 23
in einen ausgewählten lokalen Speicher geschrieben werden soll. Eine der Adreßqu eilen zum Lesen und Schreiben des lokalen Speichers ist durch die Felder in dem Steuerspeicher 36 vorgesehen.
Der Steuerspeicher 36 sieht ebenfalls Felder zum Gebrauch durch jede der arithmetisch/logischen Funktionseinheiten (im folgenden lokale Prozessoren genannt) 17, 18, 19 und 27 vor, um die bedingte Verwendung
weiterer Felder zu steuern und um Kennzeichen Bits (sogenannte flag-Bits) in Abhängigkeit von bestimmten
Bedingungen zu setzen, die den Wert der errechneten logischen Funktionen von ausgewählten logischen
Variablen wie z. B. Vorzeichen Bits, Null-Erfassungs-Bits, anderen flag-Bits oder ähnlichem anzeigen. Die
Details der bedingten Steuerung der Zentraleinheit 10 werden weiter unten erläutert. Die Felder von dem
Steuerspeicher 36, die einzig für jeden der lokalen Prozessoren 17,18,19 und 27 vorgesehen sind, werden der
verständlicheren Terminologie wegen als lokale Steuerfelder bezeichnet Jeder der lokalen Prozessoren 17,18,
19 und 27 benötigt ungefähr 50 Bits in dem Steuerspeicher 36, um deren lokale Steuerfelder vorzusehen.
Zusätzlich zu den lokalen Steuerfeldern sehen die in dem Steuerspeicher 36 gespeicherten Mikrobefehlsworte
Felder vor, die zur Gesamtsteuerung der Zentraleinheit 10 verwendet werden. Diese Felder werden der verständlicheren Terminologie wegen als globale Steuerfelder bezeichnet Die globalen Steuerfelder steuern solche
Funktionen wie die Bereitstellung der Adressen des nächsten abzurufenden Mikrobefehles und ebenso die
so Bereitstellung von Feldern zur Steuerung der bedingten Auswahl der nächsten Adresse, das Bereitstellen von
Adressen zum Lesen und Schreiben für den Mehrzweckregisterstapel 32, zum Steuern der Quelle des Wertes auf
der B-Sammelschiene, 22, zum Steuern der Verschiebeeinrichtung 35, zum bedingten Steuern der Bestimmung
bzw. Zuordnung der errechneten Werte und zum Steuern der weiter unten beschriebenen Entscheidungslogik.
Der Steuerspeicher 36 benötigt über 100 Bits für die globalen Steuerfelder.
Folglich enthält ein Wort des Steuerspeichers 36 die zur Steuerung jedes der lokalen Prozessoren 17,18,19
und 27 benötigten Felder und zusätzlich die globalen Steuerfelder. Da jeder der lokalen Prozessoren 17,18,19
und 27 mit einer einzigen Steuerinformation von dem Steuerspeicher 36, zu dem er konkurrierenden Zugang mit
den anderen lokalen Prozessoren hat gesteuert wird und da die globalen Steuerfelder gleichzeitig für die
Zentraleinheit 10 bereitgestellt werden, führt jeder der lokalen Prozessoren 17, 18, 19 und 27 simultan bzw.
konkurrierend mit den anderen lokalen Prozessoren und mit den globalen Funktionen der Zentraleinheit 10 eine
Mikrooperation aus. Folglich führt die Zentraleinheit 10 mehrfache Mikrobefehlsfolgen konkurrierend und
gleichzeitig miteinander aus. Dieses nachfolgend detaillierter beschriebene Konzept ist die Quintessenz des
neuen Aufbaues der Zentraleinheit 10, bei der mehrfach-lokale (»Mikro«)-Prozesso:ren konkurrierend im Auftrag eines einzigen Makrobefehles (in dem Makrobefehlsregister 13) arbeiten, um eine wesentlich vergrößerte
Geschwindigkeit unerwarteter Größe im Vergleich mit der Geschwindigkeit, mit der ein Makrobefehl mit einem
einzigen lokalen (»Mikro«)-Prozessor ausgeführt würde, zu erzielen. Mit einem einzigen lokalen Prozessor
waren Geschwindigkeiten von ungefähr 200 000 Makrobefehlen pro Sekunde (0,2 MIPS) zu erreichen, während
mit dem neuen Aufbau der Zentraleinheit 10 unter Verwendung der vier lokalen Prozessoren 17,18,19 und 27
bis zu 1,5 MIPS (1 500 000 Makrobefehle pro Sekunde) zu erreichen sind.
Es sei darauf hingewiesen, daß, obwohl der Steuerspeicher 36 lokale Steuerfelder für jeden der lokalen
Es sei darauf hingewiesen, daß, obwohl der Steuerspeicher 36 lokale Steuerfelder für jeden der lokalen
Prozessoren 17,18,19 und 27 vorsieht, jeder lokale Prozessor durch Informationen gesteuert werden könnte, die
von seinem eigenen Steuerspeicher mit sehen eigenen Adressierungseinrichtungen bereitgestellt werden. Aller-
ψ, dings könnte mit dieser Anordnung die koordinierte Betriebsweise der Zentraleinheit 10 schwieriger zu erhalten s
ψ sein, als bei der vorliegenden Anordnung, die den Steuerspeicher 36 verwendet Der Steuerspeicher 36 ist
t' vorzugsweise als Direktzugriffsspeicher (RAM) ausgeführt, kann jedoch alternativ auch als programmierbarer
Nurlesespeicher (PROM) ausgeführt sein.
Der Steuerspeicher 36 enthält die Mikrobefehlsroutinen zum Emulieren der Makrobefehle des UNIVAC-
Der Steuerspeicher 36 enthält die Mikrobefehlsroutinen zum Emulieren der Makrobefehle des UNIVAC-
Rechners 1108, die in das Makrobefehlsregister 13 abgerufen werden. Zum Zwecke der effizienten Mikropro-τ
grammierung wird das Befehlsrepertoire des UNIVAC Rechners 1108 so verstanden, daß es aus Befehlen, die in
Klassenbasen gruppiert sind, besteht Die verschiedenen verwendeten Klassenbasen sind:
Rufe einzelnen Operanden direkt ab (Fetch Single Operand Direct);
'■ Rufe einzelnen Operanden indirekt ab (Fetch Single Operand Indirect);
], Rufe einzelnen Operanden sofort ab (Fetch Single Operand immediate);
ir; Springe größer und dekrementierte (Jump Greater and Decrement);
;v? Unbedingte Verzweigung (Unconditional Branch);
;' Speichern (Store);
Oberspringen (Skip); und
' Bedingte Verzweigung und Verschieben (Conditional Branch and Shift).
Im folgenden sei momentan auf Fig.3 Bezug genommen, in der die Struktur der bei der Emulierung
verwendeten Micro Software dargestellt ist Unabhängig von dem auszuführenden Makrobefehl ruft die Steue-
rung ein Mikrobefehlswort, das allen Routinen gemeinsam ist, ab. Dies ist in der ersten Ebene des Strukturbildes
der F i g. 3 dargestellt In Übereinstimmung mit dem Makrooperationscode (Felder f und j des in dem Register 13
gespeicherten Makrobefehlswortes) wird ein Sprung zu einer entsprechenden Klassenbasismikroroutine vorgenommen,
was durch die zweite Ebene des Strukturbildes der F i g. 3 gezeigt ist Nachdem die Klassenba.sisroutine
ausgeführt wurde, wird ein Sprung zu der spezifischen Mikroroutine für den einzelnen Makrobefehl durchgeführt
der wiederum durch die Makrooperationscodefelder f, j des Makrobefehlsregisters 13 gesteuert wird. Die
spezifischen Befehlsroutinen sind in der dritten Ebene des Mikro-Software-Strukturbildes der F i g. 3 dargestellt.
Wie in F i g. 3 dargestellt, geht die Steuerung nach Ausführung der einzelnen Befehlsroutine zu dem Ort des
Mikrobefehles »gemeinsam« zurück. In ähnlicher Weise, wenn der nächste Makrobefehl noch nicht abgerufen
wurde, geht die Routine nach Ausführung des Mikrobefehles »gemeinsam« in einer Schleife zu »gemeinsam«
zurück, wie dargestellt bis das Makrobefehlswort bereit ist
Zurück zu Fig.2. Die Zentraleinheit 10 enthält eine Befehlszustandstabelle 38, die durch einen Nur-Lese-Speicher
ausgeführt ist um über einen Multiplexer 39 Befehlszustandsworte zu liefern, um den Steuerspeicher
36 in Übereinstimmung mit dem Makrooperationscode des auszuführenden Makrobefehles zu adressieren.
Dementsprechend wird die Befehlszustandstabelle 38 von den f und j Operationscodefeldern des Makrobefehlsregisters adressiert, dessen Makrooperationscodeinformation ebenfalls direkt über den Multiplexer 39 zur
Adressierung des Steuerspeichers 36 angelegt wird. Die Befehlszustandstabelle 38 ist 256 Worte lang und 10 Bits
breit und liefert Adressinformation an den Steuerspeicher 36 über den Multiplexer 39 im Hinblick auf die
Klassenbasis des Mikrobefehles. Die Befehlszustandstabelle 38 stellt weiterhin Signale für den lokalen Speicher
28 des lokalen Prozessors 27 bereit um die richtige Basisadressen zum Lesen und Schreiben des Mehrzweckregisterstapels
32 zu liefern. Der Steuerspeicher 36 liefert ein Eingangssignal zu dem Multiplexer 39, um die
Adresse des nächsten abzurufenden Mikrobefehles bereitzustellen, in Übereinstimmung mit den Adreßdaten,
die von dem aktuellen Mikrobefehl bereitgestellt werden. Weitere Einzelheiten der Adressierung des Steuerspeichers
36 werden weiter unten beschrieben.
Die Zentraleinheit 10 enthält weiterhin eine Entscheidungslogik 40, die 12 Entscheidungspunkte, die als DPO
bis DPI 1 bezeichnet sind, vorsieht In einer weiter unten zu beschreibenden Art und Weise, liefert die Entschei- so
dungslogik 40 die Entscheidungspunktsignale in Übereinstimmung mit ausgewählten logischen Funktionen aus
ausgewählten Variablen. Die Entscheidungspunktsignale DPO bis DPI 1 liefern die überall in der Zentraleinheit
10 benötigte Entscheidungssteuerung. Zusätzlich enthält die Zentraleinheit 10 Steuerschaltkreise 41, die die
benötigten Steuersignale für die verschiedenen Komponenten des Rechners liefern. Wie weiter unten beschrieben
werden wird, enthalten die Steuerschaltkreise 41 eine Tabelle für verschobene Einsatzsteuerung (deferred
action control table) sowie verschiedene Flags und weiter unten beschriebene Parameterverriegelungen.
F i g. 4 zeigt das Format der in dem Steuerspeicher 36 gespeicherten Mikrobefehlsworte. Jedes Mikrobefehlswort enthält globale Steuerfelder zur Gesamtsteuerung der Zentraleinheit 10. Die Anzahl der Bits in jedem Feld
ist über dem Acronym für das Feld angegeben. Zusätzlich enthält das Mikrobefehlswort drei Gruppen lokaler
Steuerfelder für die drei lokalen Prozessoren 17, 18 und 19, die als Pl, P2 bzw. P3 bezeichnet sind. Das
Mikrobefehlswort enthält weiterhin eine Gruppe lokaler Steuerfelder zur Steuerung des als P4 bezeichneten
lokalen Prozessors 27. Der Steuerspeicher 36 liefert die Mikrobefehlsworte zu dem Steuerregister 37, von dem
die Bits der verschiedenen Felder mit den Komponenten der Zentraleinheit 10 in einer weiter unten detailliert
beschriebenen Art und Weise verbunden werden.
Generell steuern die Steuerspeicherfelder die Komponenten der Zentraleinheit 10 wie folgt:
JDS(JUMP DECISION SELECTOR) - Sprung-Entscheidungs-Auswahl
Das JDS-FeId ordnet einen logischen Funktionsrechner (LFC, logic function computer) in der Entscheidungslogik 40 dem Entscheidungspunkt 0 (DPO) zu, der die nächste Mikrobefehlsadresse bestimmt.
NAT, NAF(NEXT ADRESS, TRUE, FALSE) - Nächste Adresse, richtig, falsch
Diese Felder enthalten mögliche Adressen für den nächsten Mikrobefehl. Die NAT-Adresse (nächste Adresse
richtig) kann durch Vektoren in einer noch zu erläuternden Weise modifiziert werden oder durch die globalen
ίο Steuerfelder VDSO und VDSl (siehe unten). Die Adresse NAT wird ausgewählt, wenn der Entscheidungspunkt 0
richtig ist und die Adresse NAF wird ausgewählt, wenn der Entscheidungspunkt 0 falsch ist.
XF(INDEX FUNCTION) - Indexfunktion
Das XF-FeId steuert den Vektorsprur.g, wenn die Adresse NAT durch den Entscheidungspunkt 0 ausgewählt
wurde. Die Beziehung zwischen dem Feld XF und dem Ausgang des Entscheidungspunktes 0 ist in der nachfolgenden
Tabelle 1 darstellt.
VDSo(VECTOR DECISION SELECTORO) - Vektor-Entscheidungsauswahl 0
Das VDSO-FeId ordnet einen Logikfunktionsrechner (LFC) in der Entscheidungslogik 40 dem Entscheidungspunkt 1 zu. Der Entscheidungspunkt 1 wird mit dem letzten signifikanten Bit (2°) der NAT-Adresse ODER-verknüpft
VDSl (VECTOR DECISION SELECTOR 1) - Vektor-Entscheidungsauswahl 1
Das VDSl-FeId ordnet einen LFC der Entscheidungslogik 40 dem Entscheidungspunkt 2 zu. Der Entscheidungspunkt
2 wird mit dem vorletzten signifikanten Bit (21) der NAT-Adresse ODER-verknüpft.
Mikrobefehlsabrufung
XF DPO NächsteSteuerspeicheradresse
XX 0 NAF
00 1 NAT
01 1 NATODER-verknüpftmitdemKJassenbasisvektor
10 1 NATODER-verknüpft mit dem Befehlsvektor
10 1 NATODER-verknüpft mit dem Befehlsvektor
11 1 NATODER-verknüpft mit dem Unterbrechungsvektor
Wie oben im Zusammenhang mit F i g. 2 erläutert, wird der Klassenbasisvektor durch den auszuführenden
Makrobefehl bestimmt und wird in Abhängigkeit von den Operationscodefeldern f und j in dem Makrobefehlsregister 13 durch die Befehlszustandstabelle 38 bereitgestellt Sein Wert hängt von der Klasse des Makrobefehls
ab. Der Befehlsvektor wird direkt durch die Operationscodefelder f und j von dem Makrobefehlsregister 13
geliefert Der Befehlsvektor bezeichnet die auszuführende präzise Aktion. Der Unterbrechungsvektor wird in
herkömmlicher Weise durch einen nicht-dargestellten Schaltkreis geliefert, der Unterbrechungsanforderungen
erfaßt wobei der Wert des Vektors von der Art der Unterbrechung abhängt Es sei darauf hingewiesen, daß die
Entscheidungspunkte 1 und 2 die Möglichkeit einer bedingten Vier-Wege-Vektor-Verzweigung aufgrund jeglieher
tatsächlichen Sprunges steuern, zusätzlich zu der Möglichkeit der durch das XF-FeId gesteuerten Vektorverrweigung.
Die in Tabelle 1 aufgeführten ODER-Funktionen werden in dem Multiplexer 39 in einer noch zu
beschreibenden Weise durchgeführt
BR(B-BUS INPUT SELECTION) — B-Sammelschieneneingangsauswahl
Das BR-FeId wählt aus, welche von zwei Quellen die Auswahldaten für den B-Sammelschieneneingangsmultiplexer
34 liefert Die zwei möglichen Quellen sind ein Hardware-2-Bit-Register (BRG genannt) oder das
Mikrobefehlsfeld BIS.
BIS (B-INPUT SELECT) - B-Eingangsauswahl
Das BIS-FeId wählt einen Dateneingang für den B-Sammelschieneneingangsmultiplexer 34 aus.
SFT(SHIFTCONTROLSOURCe) — Verschiebungssteuerungsquelle
SFT(SHIFTCONTROLSOURCe) — Verschiebungssteuerungsquelle
Das SFT-FeId bestimmt die Datenquelle zur Steuerung der Verschiebeeinrichtung 35. Die Beziehung zwischen
den Feldern BR, BIS und SFT gehorcht im Hinblick auf die Quelle der Daten, die an die B-Sammelschienc
32 angelegt werden, der nachfolgenden Tabelle 2.
00 0 0 MDRR-v B-Sammelschiene, kein Verschieben
00 0 1 D-Sammelschiene —► B-Sammelschiene, kein Verschieben
00 1 0 D4 —♦ B-Sammelschiene, kein Verschieben
00 1 1 GRS —► B-Sammelschiene, kein Verschieben
01 0 0 MDDR-* B-Sammelschiene, Schieben durch SCR
01 0 1 D-Sammelschiene —► B-Sammelschiene, Verschieben durch SCR
1 0 D4-* B-Sammelschiene, Verschieben durch SCR
01 1 1 GRS-►B-Sammelschiene, Verschieben durch SCR
_ 10 0 0 MDRR-► B-Sammelschiene, Schieben durch j-Feld
10 1 1 GRS-* B-Sammelschiene, Schieben durch j-Feld
11 0 0 u* —► B-Sammelschiene
11 0 1 GRS* — B-Sammelschiene
wobei der Ausdruck MDRR das Register 16 und der Ausdruck GRS den Mehrzweckregisterstapel 32 der F i g. 2
bezeichnen. Das SCR (Shift Control Register) ist ein Hardware-Register, das einen zur Steuerung der Verschiebeeinrichtung verwendeten Wert enthält. In noch zu beschreibender Weise wählt das BR-FeId zwischen BRG
und BIS aus, um die B-Sammelschieneneingangsauswahl zu steuern. BRG ist ein Signal, das später im Zusammenhang mit der Steuerung der verschobenen Tätigkeit (deferred action control) beschrieben wird. Die Größen
u* und GRS* sind spezielle Eingänge zu der Verschiebeeinrichtung 35, die die u-Felddaten von dem Makrobefehlsregister 13 und die Daten von dem Mehrzweckregisterstapel 32 für die Adressenrechnungsarithmetik bei
der 2 χ 20-Betriebsweise der lokalen Prozessoren 17,18 und 19 ausrichtet.
Das GRA-FeId bestimmt die Adreßquelle für den Mehrzweckregisterstapel 32 beim Lesen.
GWA (GRS WRITE ADDRESS SOURCE) - GRS Schreibadreßquelle
Das GWA-FeId bestimmt die Adreßquelle des Mehrzweckregisterstapels 32 beim Schreiben. Die folgende 35 j
Tabelle 3 zeigt die Steuerfeldcodierung für diese Adreßquellen.
oder
GWA
00 x-Feld des Mikrobefehlsregisters 13
01 RARl )
10 RAR2 \ 33
11 RAR3 J
DADS(DEFERREDACnON DECISION SELECTION) — Entscheidungsauswahl
des aufgeschobenen Einsatzes
Das DADS-FeId ordnet einen Logikfunktionsrechner der Entscheidungslogik 40 dem Entscheidungspunkt 11
zu, der zur Auswahl entweder der DACT oder der DACF Adresse der Steuerungstabelle des aufgeschobenen
Einsatzes, die in den Steuerschaltkreisen 41 enthalten ist, auswählt Wenn der Entscheidungspunkt 11 richtig
(wahr) ist, wird das DACT-FeId als Adresse der Steuerungstabelle des aufgeschobenen Einsatzes ausgewählt
und wenn er falsch (unwahr) ist, wird DACF ausgewählt
DACT, DACf(DEFERRED ACHON CONTROL(TRUE, FALSE) - Steuerung
des aufgeschobenen Einsatzes (wahr, unwahr)
Diese globalen Steuerspeicherfelder liefern Adressen zu der Steuerungstabelle des aufgeschobenen Einsatzes,
wobei dessen adressierter Ausgang die aufgeschobene Weiterleitung von Daten und anderer aufgeschobener
Aktionen steuert Eine oder die andere diaer Adressen wird in Übereinstimmung mit dem Wert der ausgewähl-
ten logischen Funktion (wahr oder nicht-wahr) von dem DADS-FeId ausgewählt. Einzelheiten der Steuerung des
aufgeschobenen Einsatzes der Zentraleinheit 10 werden weiter unten erläutert.
SVO-SVS(STATICVARIABLESELECTIOn FIELDS(0-5) - Auswahlfelder
0—5 für statische Variable
Jedes der SVO- SV5-Felder wählt eine von 16 möglichen statischen Steuervariablen als einen der Eingänge
für zwei verschiedene Logikfunktionsrechner in einer weiter unten zu beschreibenden Art und Weise hinsichtlich
der Entscheidungssteuerlogik 'M) aus. Folglich können durch jeden Mikrobefehl 6 statische Steuervariablen
ίο ausgewählt werden.
DVO-DVS(DYNAMICVARIABLESELECTIOn FIELDS(0-5) - Auswahlfelder
0—5 für dynamische Variable
Jedes der DVO- DV5-Felder wählt eine von 24 möglichen dynamischen Steuervariablen als einen der Eingänge
für zwei verschiedene Logikfunktionsrechner, die weiter unten beschrieben werden, aus. Folglich können
durch jeden Mikrobefehl 6 dynamische Steuervariable ausgewählt werden. Die in der Zentraleinheit 10 verwendeten
statischen und dynamischen Steuervariablen sind in der nachfolgenden Tabelle 4 aufgeführt, wobei die
dort angegebenen Variablen weiter unten erläutert werden.
Tabelle 4
Entscheidungs-Steuer-Variable
Statisch
Tabeiie 4 (Fortsetzung)
Entscheidungs-Steuer-Variable
SC0-SC7 | Setzbare Steuervariable |
Ausgewählt durch das SCS-FeId in der lokalen Steuerung | |
und in Bedingung gesetzt aufgrund der DDS-Fehler in | |
der lokalen Steuerung | |
DO | PSR Übertragungsbezeichner |
Dl | Überlaufbezeichner |
D2 | Geschützter Betrieb & Speicher |
sicherung | |
D3 | Nur-Schreib-Speichersicherung |
D5 | doppelte Genauigkeits-Berechnungsunterschreitunj! |
D7 | Basisregister-Unterdrückung |
D8 | Gleitkomma Kompatibilität |
i | Indirektes Bit vom Makrobefehl |
h | Inkrementierungs-Indexbit vom Makrobefehl |
X | 1 wenn x-Feld = (XX), |
0 ansonsten | |
BRKPT | Programmunterbrechung |
INT | Unterbrechung |
SE | Vorzeichenausdehnung |
IDl | D7i |
ID2 | d2 + (D2 · D3) = D2 + D3 |
ID3 | jo (Bit niedriger Ordnung des j-Feldes) |
OARBZY | OAR BELEGT (geladen aber nicht abgerufen) |
Dynamisch (müssen durch 67 gesetzt werden)
Kurzbezeichn. Erläuterung
SPl R Sign Pl rechte Hälfte, 2 χ 20
SPl L Sign Pl linke Hälfte, 2 χ 20
SP2R Sign P2 rechte Hälfte, 2 χ 20
SP2L Sign P2 linke Hälfte, 2 χ 20
SP3R Sign P3 rechte Hälfte, 2 χ 20
SP3L Sign P3 linke Hälfte, 2 χ 20
SPl Sign Pl, 36 Bit
SP2 Sign P2,36 Bit
SP3 Sign P3,36 Bit
SP4 Sign P4
Tabelle 4 (Fortsetzung) Entscheidungs-Steuer-Variable
Dynamisch (müssen durch 67 gesetzt werden) Kurzbezeichn. Erläuterung
PlZD | Pl Null Erfassung,36 Bit |
P2ZD | P2 Null Erfassung, 36 Bit |
P3ZD | P3 Null Erfassung, 36 Bit |
P4ZD | P4 Null Erfassung, 36 Bit |
ORDY | Operand bereit |
IRDY | Befehl bereit |
Anmerkung: | |
SE = (XH1VXH2VT1VT2VT3) | |
XHl | Bereich linke Hälfte |
XH2 | Bereich rechte Hälfte |
Tl | Linkes Drittel |
T2 | Mittleres Drittel |
Τ3 | Rechtes Drittel |
IVS | Vorzeichenumkehr |
10
15
20
des logischen Funktionsrechners
Die Entscheidungslogik 40 enthält sechs Logikfunktionsrechner, von denen jeder 16 verschiedene Funktionen
von vier Variablen (2 dynamische und 2 statische) errechnen kann. Jedes der LFC-Felder wählt eine der 16 von
dem zugeordneten Logikfunktionsrechner zu berechnenden Funktionen aus.
Steuerspeicherfelder — Lokale Steuerung
PDS(PHANTOM BRANCH DECISION SELECTOR) — Phantomverzweigungsentscheidungsauswahl
35
Das PDS-Lokal-Steuerfeld für jeden der lokalen Prozessoren Pl, P2, P3, und P4 ordnet einen Logikfunktionsrechner in der Entscheidungslogik 40 den entsprechenden Phantomverzweigungsentscheidungspunkten
DP3—DP6 zu. Ist der Wert des Entscheidungspunktes wahr, so wird das zugeordnete LPFT-FeId verwendet,
andernfalls wird das LPFF-FeId benutzt
40
LPFT, LPFF(LOCAL PROCESSOR FUNCTION SPECIFICATION FIELDS (TRUE OR FALSE)
Spezifikationsfelder der Funktion des lokalen Prozessors (wahr oder nicht wahr)
Die LPFT- und LPFF-Felder liefern die Funktionssteuersignale für den lokalen Prozessor 17,18,19 und 27.
Während der Ausführung eines Mikrobefehls, der durch den Wert der durch das PDS-Feld spezifizierten
logischen Funktion bestimmt wird, wird nur eines der beiden Felder für jeden Prozessor verwendet
Die PDS-, LPFT- und LPFF-Felder geben der Zentraleinheit 10 die Möglichkeit zur Phantomverzweigung,
wobei jeder der lokalen Prozessoren 17,18,19 und 27 eine der Funktionen ausführen kann, die durch die LPFT-
und LPFF-Felder, die durch den zugeordneten Entscheidungspunkt ausgewählt werden, spezifiziert sind, wobei
der Entscheidungspunkt das Ergebnis einer von dem PDS-Feld ausgewählten logischen Funktionsberechnung so
liefert Die Fähigkeit zur bedingten Phantomverzweigung besteht zusätzlich zur Fähigkeit der realen Verzweigung, die durch die ober, erläuterten JDS-, NAT- und NAF-Felder vorgesehen ist Die Fähigkeiten zur realen
und zur Phantomverzweigung der Zentraleinheit 10 wird weiter unten detaillierter erläutert
Das den entsprechenden lokalen Prozessoren Pl, P2, P3 und P4 zugeordnete LMAS-FeId wählt die Adressen
zum Lesen und Schreiben der den lokalen Prozessoren zugeordneten Speicher 24, 25, 26 oder 28 aus. Die
folgende Tabelle 5 führt die spezifische Codierung des LMAS-Feldes auf, die den Adreßquellen für die lokalen
Prozessoren 17,18 und 19 zugeordnet ist
65
15
AdreBquelle des lokalen Speichers für Pl, P2, P3
LMAS Adreßquelle
00 LMA-FeId vom Steuerspeicher
01 LMAR (Local Memory Address Register) Adreßregister des lokalen Speichers
ίο 10 Verschiebungs/Masken-Speicher
wobei der LMAE- und der Verschiebungs/Masken-Speicher weiter unten erläutert werden. Die folgende
Tabelle 6 gibt die LM AS-Codiemng für den lokalen Prozessor 27 an.
Adreßquelle des lokalen Speichers für P4
0 LMA-FeId vom Steuerspeicher
1 D6 verkettet mit GB-FeId von IST
wobei D6 der Steuerregisterauswahlindikator des UNIVAC-Rechners 11^8 (bit 33) des Prozessorzustandsregisters
ist und dazu verwendet wird, zu spezifizieren, welches der X, A oder R-Register verwendet werden soll.
Das GB-FeId der Befehlszustandstabelle (IST) 38 gibt die GRS-Basisadresse an, die die richtige Basisadresse
zum Lesen und Schreiben des Mehrzweckregisterstapels (GRS) 32 in einer noch zu beschreibenden Weise
anzeigt
LMA (L(XAL MEMORY ADDRESS) - Adresse des lokalen Speichers
Das LMA-FeId für jeden der lokalen Prozessoren Pl, P2, P3 und P4 enthält eine von möglichen Adressen, die
durch das LMA-FeId zum Lesen oder Schreiben des Speichers des lokalen Prozessors ausgewählt werden kann.
CC (CONFIGURATION CONTROL) - Ausbaustufensteuerung
Das CC-FeId für die lokalen Prozessoren Pl, P2 und P3 wählt die arithmetische Ausbaustufe (configuration)
der Prozessoren in Übereinstimmung damit aus, ob der Prozessor in der 2 χ 20 oder der 36-Bit (tsb)-Betriebsweise
mit oder ohne Endübertragung (eac) (Übertrag des Überlaufs in die niedere Stelle) arbeiten wird. Die
Steuerungscodierung der arithmetischen Ausbaustufe für das CC-FeId ist in der folgenden Tabelle 7 aufgelistet
Tabelle 7
Ausbaustufensteuerung
Ausbaustufensteuerung
00 2x20eac
01 2 χ 20 eac
10 36
10 36
11 36 Verschiebungsende
(CiN = mbs des P auf der rechten Seite)
wobei Einzelheiten der verschiedenen arithmetischen Aufbaustufen weiter unten erläutert werden.
DDS(D-BUS DECISION SELECTOR) - D-Sammelschienenentscheidungsselektor
Jeder der lokalen Prozessoren Pl, P2, P3 und P4 besitzt ein zugeordnetes DDS-FeId, das einen logischen
Funktionsrechner in der Entscheidungslogik 40 den entsprechenden D-Sammelschienen-Entscheidungspunkten
DP7 —DPlO zugeordnet. Der Wert der ausgewählten logischen Funktion wird in Verbindung mit dem OUT-FeId
verwendet, um den Inhalt des Akkumulators in dem zugeordneten Prozessor für die Prozessoren 17,18 und
19 auf die zugeordnete D-Sammelschiene zu plazieren (die D-Sammelschiene 23 für die Prozessoren 17,18 und
19). Der Wert der ausgewählten logischen Funktion wird ebenfalls für die Prozessoren 17, 18, 19 und 27
verwendet in Verbindung mit dem WLM- und WLMA-Feldern zum bedingten Schreiben in den zugeordneten
lokalen Speicher und in Verbindung mit dem SCS-FeId zum bedingten Setzen der setzbaren statischen Steuervariablen
SC0-SC7.
OUT(ACCUMULATOROUTPuTCONTROL) - Akkumulator-Ausgangssteuerung
Das OUT-FeId für die Prozessoren Pl, P2-und P3 gibt den Prozessor-Akkumulator auf die D-Sammelschiene
23 in Abhängigkeit von dem Wert des zugeordneten Entscheidungspunktes (DP) wie durch die DDS-Auswahl,
die in der folgenden Tabelle dargestellt ist, bestimmt wird. 5
Tabelle 8
Akkumülator-Aüsgangssteuerung
Akkumülator-Aüsgangssteuerung
χ OO kein Ausgang auf die D-Sammelschiene
0 01 kein Ausgang
1 01 Akkumulator -*■ D-Sammelschiene 15
0 10 Akkumulator—► D-Sammelschiene
1 10 kein Ausgang
X 11 Akkumulator—►D-Sammelschiene
BBS (B4 BUS INPUT SELECTION) — B4-Sammelsehienen-Eingangsauswahl 20
Das dem lokalen Prozessor P4 zugeordnete BBS-FeId wählt die Quelle der Werte aus, die auf die B4-Sammelschiene
29 in Übereinstimmung mit der nachfolgenden Tabelle 9 plaziert werden, aus.
GRS Basisadresse
GB (BASE TO BE USED) Zu verwendende Basis
00 A-Register
01 X-Register
10 R-Register
11 j||a.J3J2Ji verkettet mit dem a-Feld wenn BBS = Osetzte j||aauf B4undlies
die Basis von 18 &s aus dem lokalen Speicher von P4, 35
wenn BBS = 1 setzte IAR auf B4.
Die Eingänge zu Tabelle 9 werden weiter unten im Zusammenhang mit der detaillierteren Erläuterung des
P4-lokalen Prozessors 27 erläutert.
WLM(WRITE LOCALMEMORY) - Lokalen Speicher/Schreiben
Das jedem lokalen Porzessor Pl, P2, P3 und P4 zugeordnete WLM-FeId steuert das Schreiben des zugeordneten
lokalen Speichers 24,25,26 und 28 in Bedingung von dem Wert des entsprechenden zugeordneten Entscheidungspunktes
DP7 bis DPlO, was durch das zugeordnete DDS-FeId in Übereinstimmung mit der folgenden 45
Tabelle 10 bestimmt wird.
Steuerung des Schreibens des lokalen Speichers so
DP WLM Ausführung
nicht Schreiben des lokalen Speichers
nicht Schreiben 55
D-Sammelschiene —» lokaler Speicher (LM) D-Sammelschiene -♦ lokaler Speicher (LM)
nicht Schreiben
D-Sammelschiene -+ lokaler Speicher (LM)
Die Daten für die Prozessoren Pl, P2 und P3 werden von der D-Sammelschiene 23 genommen und die
Adresse für das Schreiben wird von dem zugeordneten LMAS-FeId ausgewählt. Die Daten für den Prozessor P4
werden von der D4-Sammelschiene 30 genommen und die Adresse zum Schreiben wird von dem zugeordneten
LMAS-FeId ausgewählt.
WLMA (WRITE LOCAL MEMORY ADDRESS) - Schreibe die Adresse des lokalen Speichers
Das WLMA-FeId, das ausschließlich dem P4-Prozessor 27 zugeordnet ist, gibt die Adresse zum Schreiben in
17
X | 00 |
0 | 01 |
1 | 01 |
0 | 10 |
1 | 10 |
X | 11 |
dec mit diesem Prozessor zugeordneten Speicher 28 an. Die Anwendung und Verbindung des WLMA-lokalen
Steuerfeldes wird weiter unten in Verbindung mit dem lokalen Prozessor 27 und dem zugeordneten lokalen
Speicher 28 erläutert
Das SCS-FeId für jeden lokalen Prozessor Pl, P2, P3 und P4 wählt eine der sieben setzbaren statischen
Steuervariablen (SCl-SC7) zum Setzen aus, was durch den Wert des zugeordneten Entscheidungspunktes
DP7—DPlO, der durch die DDS-Auswahl bestimmt wird, bedingt ist Wenn der Wert des Entscheidungspunktes
wahr ist, so wird die statische Variable auf logisch EINS gesetzt, andernfalls wird er auf logisch NULL
zurückgesetzt Wenn keine statische Steuervariable zu verändern ist wird SCO ausgewählt (SCS = 000). Die
Werte für die statischen Steuervariablen SCl —SC7 werden in sieben Verriegelungen der statischen Steuervariablen in den Steuerschaltkreisen 4t gespeichert, was nachfolgend zu beschreiben sein wird.
Im folgenden wird auf Fig.5 Bezug genommen, bei der gleiche Bezugszeichen auf gleiche Bauteile im
Fi g. 5 zeigt ein schematisches Blockschaltbild der Zentraleinheit 10 unter Darstellung weiterer Einzelheiten.
Wie oben im Zusammenhang mit Fig.2 erläutert, enthält der Speicher des UNIVAC-Rechners 1108 zwei
Speichermodule oder -bänke, die als I-Bank und D-Bank bezeichnet wurden. Diese Speichermodule können
auch als MO und Ml bezeichnet werden, wobei Daten oder Befehle die von diesen Modulen in Abhängigkeit von
Anforderungssignalen R0 bzw. Ri geliefert werden, als D0 bzw. Di bezeichnet werden. Das Befehlsadreßregister
12 empfängt eine 18-Bit-Speicheradresse entweder von dem Programmregister 31 oder von den Bits 21—38 von
der 40-Bitweiten D-Sammelschiene 23. Die Adresse von dem Befehlsadreßregister 12 wird zu dem Speichermodul Ml durch einen Multiplexer 50 hindurch oder zu dem Speichermodul MO durch einen Multiplexer 51
hindurch geliefert
Das Operandenadreßregister 14 erhält die 18-Bit-Operandenadressen von den Bits 21 bis 38 der D-Sammelschiene 23 und liefert die Operandenadresse zu dem Speichermodul MO durch den Multiplexer 51 hindurch oder
zu dem Speichermodul Ml durch den Multiplexer 50 hindurch. Das signifikanteste Bit von den Registern 12 und
14 werden einem Logikschaltkreis 52 angelegt, der die Anforderungssignale R0 und Ri für die entsprechenden
Module M0 und Mi liefert, wobei die Anforderungssignale zur Steuerung der Multiplexer 50 und 51 verwendet
werden, so daß die Anforderung an den entsprechenden Modul gerichtet ist und die hierfür vorgesehene
Adresse in Übereinstimmung mit dem numerischen Wert der Anforderungsadresse ist. Die Logik 52 erzeugt
weiterhin Signale, die als D0 ->■ MDR und D0 -► MIR bezeichnet sind, die an einen MDR-Multiplexer 53 bzw.
einen MIR-Multiplexer 54 angelegt werden. Der Adressierschaltkreis des Arbeitsspeichers für die Zentraleinheit
10 enthält auch ein Teilwortregister (PW) 55, das ein Viertel-Wort Bit QW von einem (nicht dargestellten)
Bestimmungsflip-flop in den Steuerschaltkreisen 41 empfängt und weiterhin die j-Feld-Bits von einem Befehlsund Adressen-Register 56. Das Viertel-Wort und die j-Feldinformation wird neben der Operandenadresse von
dem Operandenadreßregister 14 an die Multiplexer 50 und 51 angelegt, um so den Arbeitsspeicher 11 in der
Teilwortbetriebsweise zu adressieren. Die hier verwendete Teilwortadressierung (einschließlich der Teilwortbetriebsweise) ist im wesentlichen der bei dem UNIVAC-Rechner 1108 verwendeten Adressierung identisch und
wird der Kürze halber hier nicht detaillierter beschrieben. Allerdings werden Einzelheiten des logischen Schaltkreises 52 nachfolgend beschrieben.
Kurz zusammengefaßt überträgt die D-Sammelschiene 23 (im folgenden auch mit D-Bus bezeichnet) die
Operandenadresse in das Register 14, wenn ein Operand in dem Arbeitsspeicher abgespeichert werden soll. In
Übereinstimmung mit dem numerischen Wert der Adresse bestimmt die Logik 52 den Speichermodul, in den der
Operand einzuschreiben ist und liefert ein passendes Anforderungssignal entweder auf der Leitung Ro oder der
Leitung Ri. Die adressierte Stelle in dem entsprechenden Modul empfängt dann den Operanden von dem
Register 15 zum Abspeichern darin. Wenn ein Operand aus dem Arbeitsspeicher abgerufen werden soll, so wird
die Operandenadresse in das Operandenadreßregister 14 übertragen und die Logik 52 leitet wiederum diese
Adresse zu dem entsprechenden Speichermodul über die Multiplexer 50 und 51 und liefert gleichzeitig eine
Anforderung zu diesem Modul über die Leitung Ro oder Ri. In Übereinstimmung mit dem Modul, von dem der
Operand benötigt wird, setzt der Logikschaltkreis 52 das D0 —<· MDR-Signal entweder in den »wahr«- oder
»nicht-wahr«-Zustand, wobei dieses Signal den Multiplexer 53 steuert, daß er den Operanden von dem entsprechenden Modul akzeptiert.
Wenn ein Makrobefehl von dem Arbeitsspeicher abgerufen wird, so wird die Befehlsadresse in das Befehls
adreßregister 12 übertragen und über die Multiplexer 50 und 51 zu dem entsprechenden Speichermodul unter
der Steuerung des Logikschaltkreises 52 geleitet. In Übereinstimmung mit dem Speichermodul, von dem der
Makrobefehl abgerufen ist, setzt der Logikschaltkreis 52 das D0-* MIR-Signal entweder in den »wahr«- oder
»nicht-wahr«-Zustand, um den Multiplexer 54 zu steuern, daß er den Befehl von dem entsprechenden Modul
akzeptiert.
Jeder der Multiplexer 53 und 54 enthält zwei Eingangsmultiplexer, die auf die Operanden- bzw. Befehlsworte
von den beiden Speichermodulen ansprechen. Die Logik 52 liefert ein entsprechendes Steuersignal an jeden der
Multiplexer 53 und 54 in Übereinstimmung mit dem Modul, von dem das Wort angefordert wurde und in
Übereinstimmung damit, ob das Wort ein Operand oder ein Befehl war, wobei die Operanden zu dem MDRR-Register 16 und die Makrobefehle zu dem MIR-Register 13 geleitet werden. Zwischen den Multiplexer 53 und
das Register 16 ist ein Übertragungstor 57 und in gleicher Weise zwischen den Multiplexer 54 und das Register
13 ein Übertragungstor 58 dazwischengeschaltet. Die Übertragungstore 57 und 58 werden durch ein Bestätigungssignal (ACK) von der Arbeitsspeicherelektronik des UNIVAC-Rechners 1108 in Bereitschaft gesetzt.
In Abhängigkeit von einem Befehlsübernahme-Signal (staticize) »STAT« von einem STAT-Speicherflip-flop,
das im Zusammenhang mit den Steuerschaltkreisen 41 zu erläutern sein wird, werden die f, j und a-Felder des in
dem Register 13 gespeicherten Makrobefehles zu den entsprechenden Feldern des Befehls- und Adressen-Registers
56 übertragen. Die f- und j-Felder von dem Register 56 bestimmen einen 8-Bit-Befehlsvektor, der in dem
Multiplexer 39 mit dem NAT-FeId des Müjobefehles kombiniert wird, um den Steuerspeicher 36 zu adressieren,
einen Vektorsprung zu der Steuerspeichermikroroutine vorzunehmen, um die Mikrobefehle zum Emulieren des
partiellen Makrobefehles, der angefordert war, zu liefern.
Die f- und j-Felder des Befehls- und Adressen-Registers 56 werden ebenfalls dazu verwendet, die Adressen in
die Befehlszustandstabelle 38 zu liefern. In einer nachfolgend detaillierter beschriebenen Weise, wird die 8-Bitadresse
A7-A0 der Befehlszustandstabelle wie folgt geliefert Wenn die f-Feld-Bits F5F4F3 Φ 7g, dann gilt:
A7 A6 A5 A4 A3 A2 A1 A0
0 J* F5 F4 F3 F2 F1 F0
wobei J* = J3AJjAJi.
Wenn allerdings die f-Feld-Bits FsF4F3 =
Wenn allerdings die f-Feld-Bits FsF4F3 =
A7 A^ A5 A4 A3 A2 A1 Ao
1 J3 J2 J1 J0 F2 F1 F0
7g, dann gilt:
Ausgangsfelder | der | Befehlszustandstabelle | 2 |
2 | 4 | 1 1 | |
MC | |||
GB | CB | FOS SL | |
Tabelle 11
Klassenbasisvektoren
Klassenbasisvektoren
CB
0000 (CBO) Gemeinsam (hin gerichtet, wenn IRDY)
0011 (CB3) Rufe einzelnen Operanden direkt ab
0100 (CB4) Rufe einzelnen Operanden sofort ab
0101 (CB5) Springe größer und dekrementiere
0110 (CB6) Unbedingte Verzweigung
0111(CB7) Speichere
0110 (CB6) Unbedingte Verzweigung
0111(CB7) Speichere
1011 (CBl 1) Überspringe und bedingte Verzweigung
1100 (CBl 2) Verschiebe
FOS(FETCH NEXT INSTRUCTION ON STATICIZE) - Rufe nächsten Befehl
auf Befehlsübernahine ab
auf Befehlsübernahine ab
Das FOS-FeId initiert das Abrufen des nächsten Makrobefehles, wenn das Befehlsübernahme(staticize)-Bit
der Steuertabelle des aufgeschobenen Einsatzes (deferred action control table) gesetzt ist.
20
Es sei darauf hingewiesen, daß das Adreßfeld A7-Ao für die Befehlszustandstabelle 38 den Vektor bildet, der
dazu verwendet wird, den Befehlsvektorsprung zu ermöglichen. Die Befehlszustandstabelle 38 besteht aus
einem programmierbaren Nur-Lese-Speicher mit einer Länge von 256 Worten und einer Breite von 10 Bits, der
das nachfolgende Ausgangsfeldformat aufweist
30
wobei die Felder wie folgt definiert sind:
GB (GRS BASE ADDRESS) - GRS-Basisadresse
Das GB-FeIa liefert die richtige Basisadresse an den lokalen Prozessor 27 zum Lesen und Schreiben des
Mehrzweckregisterstapels (GRS) 32 in Übereinstimmung mit der obigen Tabelle 9, wobei die A, X und R-Register
in dem Mehrzweckregisterstapel 32 untergebracht sind.
CB(CLASS BASE) - Klassenbasis
Der Klassenbasisvektor wird dann angewandt, wenn XF = 01 in Übereinstimmung mit der nachfolgenden
Tabelle 11:
50
55
60
65
SL(SHIFT LEFT) - Verschiebe nach links
Das SL-FeId der Befehlszustandstabelle steuert die Hochgeschwindigkeitsverschiebeeinrichtung 35 und veranlaßt,
daß Daten nach links verschoben werden, wenn SL = 1 und nach rechts, wenn SL = 0.
MC(MASKCONTROL) - Maskensteuerung
Das MC-Feld liefert eine Information zum Maskieren eines verschobenen Operanden in Übereinstimmung
mit der nachfolgenden Tabelle 12.
Maskensteuerung des verschobenen Operanden
MC Maske
MC Maske
01 Lies Maske vom lokalen Speicher basierend auf der Verschiebungsfortschreitung
10 Lies Komplement der Maske vom lokalen Speicher basierend auf der
Verschiebungsfortschreitung
11 Lies Maske vom lokalen Speicher basierend auf dem Komplement der
Verschiebungsfortschreitung je nach Vorzeichen des Operanden.
wobei die aufgelisteten Elemente und Tätigkeiten weiter unten beschrieben werden.
Das Klassenbasisfeid der Befehlszustandstabelle 38 wird dem Multiplexer 39 angelegt, je nach Zustand des
Befehlsvektors des Befehls- und Adressen-Registers 56, des Unterbrechungsvektors, der NAT- und NAF-Feldei
des Steuerspeichers und der Entscheidungspunkte DPI — DP2. Zusätzlich werden Steuereingänge DPO und XF
an den Multiplexer 39 angelegt Das Klassenbasisfeid des Registers 38 wird mit der statischen Variablen IDl bei
59 kombiniert Die statische Variable IDl ist die in Tabelle 4 gezeigte logische Kombination des Prozessorzustandsregisterdesignators
D7 und des i-Feldes des Makrobefehlsregisters 13. Die Logik zur Ausführung dei
statischen Variablen IDl ist in den Steuerschaltkreisen 41 enthalten, wobei das Ergebnis bei 59 vorgesehen ist
zur Kombination mit dem Klassenbasisvektor der Tabelle 38. Die 1-Bit-IDl-Variable wird mit dem 4-Bit-Klas
senbasisvektor kombiniert, um eine einzige Adresse zur indirekten Adressierung zu bilden. Das DPO-Signa
wählt aus, welche von den beiden Adressen NAT und NAF dazu benutzt wird, den nächsten Mikrobefeh
abzurufen und ein XF steuert den Vektorsprung, wenn NAT ausgewählt ist Die obige Tabelle 1 zeigt die
verschiedenen Adreßkombinationen, die in dem Multiplexer 39 zusammengestellt werden, um die Adresse de:
nächsten Mikrobefehles in dem Steuerspeicher 36 vorzusehen. Die Entscheidungspunkte 1 und 2 werder
entsprechend mit den beiden letzten signifikanten Bits des NAT ODER-verknüpft, um einen Vier-Wege-Vektorsprung
zu bilden. Die Adresse wird über eine Adreßverriegelung 60 zum Steuerspeicher 36 geliefert.
Die Eingänge zu dem B4-Bus 29 werden von dem Befehlsadreßregister 12 und von zwei 2-Eingangsmultiple·
xern 61 und 62 geliefert Die B4-Bus-Bits 7-4 und 3-0 werden von den Multiplexern 61 bzw. 62 geliefert, währenc
die B4-Bus-Bits 17-8 von den entsprechend bezifferten Bits des Registers 12 geliefert werden. Die Bits 7-4 au:
dem Register 12 werden als ein Eingang an den Multiplexer 61 angelegt, der an seinem zweiten Eingang de;
4-Bit-j-Feld von dem Register 56 empfängt. Die Bits 3-0 des Registers 12 werden als ein Eingang an derr
Multiplexer 62 angelegt, der das 4-Bit-a-Feld von dem Register 56 als seinen zweiten Eingang empfängt Da;
BBS-FeId des P4-Teiles des Mikrobefehlswortes (F i g. 4) liefert das Auswahlsignal für die Multiplexer 61 und 62
das bestimmt ob der B4-Bus die j- und a-Feldbits oder die Bits von dem Befehlsadreßregister 12 (Tabelle 9^
empfängt
Die 4-Bit-Adresse für den lokalen Speicher 28, der dem lokalen Prozessor 27 zugeordnet ist, wird vor
Multiplexern 63 und 64 und vom Bit 3 des 4-Bit-LMA-Feldes des P4-Teiles des Mikrobefehles (F i g. 4) geliefert
Die Bits 0-1 der Adresse werden von dem Multiplexer 63 geliefert, das Bit 2 von dem Multiplexer 64 und das Bit:
von dem LMA-FeId. Einer der 2-Bit-Eingänge des Multiplexers 63 wird durch die Bits 0 und 1 des LMA-Felde;
geliefert und der andere Eingang hierzu wird durch das 2-Bit-GB-Fcld der Tabelle 38 geliefert Die zwe
Eingangssignale zu dem Multiplexer 64 werden von dem D6-Bit des Prozessorzustandsregisters und dem Bit 2
des LMA-Feldes geliefert Die Auswahlvorgänge für die Multiplexer 63 und 64 geschehen in Übereinstimmung
mit dem LMAS-FeId des P4-Teiles des Mikrobefehlswortes. Folglich wählt LMAS aus, ob die Adresse für der
Speicher 28 durch das LMA-FeId des Steuerspeichers oder durch das D6-Bit, das mit dem GB-FeId verknüpft ist
wie oben im Zusammenhang mit Tabelle 6 erläutert, geliefert wird
Das WLMA-FeId wird ebenfalls dazu benützt, die Adresse für den lokalen Speicher wie folgt zu liefern. Das
LMA-Bit 3, der Ausgang des Multiplexers 64 und der Ausgang des Multiplexers 63 werden als Eingangssignal«
an die UND-Gatter 44,45 und 46 angelegt, deren Ausgänge verknüpft sind, um ein vier Bit-Eingangssignal füi
ODER-Gatter 47 zu bilden. Der Ausgang der ODER-Gatter 47 liefert eine 4-Bitadresse an den lokalen Speichel
28. Das oben erläuterte 4-Bit-WLMA-AdressenfeId wird über das UND-Gatter 48 als zweiter Eingang an die
ODER-Gatter 47 angelegt Folglich liefern die ODER-Gatter 47 das Adreßeingangssignal an den.lokaler
Speicher 28, und zwar entweder, wie oben erläutert von den UND-Gattern 44 bis 46 oder von dem WLMA
Adressenfeld des UND-Gatters 48. Ein Flip-Flop 49 (schreiben des lokalen Speichers 4) setzt entweder die
UND-Gatter 44 bis 46 oder das UND-Gatter 48 in Bereitschaft, um die geeignete Adresse zum Schreiben in der
lokalen Speicher 28 zu liefern. Das Flip-Flop 49 wird durch Zeitimpulse to und feo gesetzt bzw. zurückgesetzt
Wie oben im Zusammenhang mit F i g. 2 erläutert, enthält die Zentraleinheit 10 den Eingangsmultiplexer 34
zur wahlweisen Weiterleitung der Operanden und Adressen durch die Verschiebeeinrichtung 35 zu dem B-Bus
22 für die Verarbeitung in den lokalen Prozessoren 17,18 und 19. Der Multiplexer 34 empfängt Eingangssignale
von dem Mehrzweckregisterstapel 32, von dem D-Bus 23, dem Speicherdatenregister 16 und von dem D4-Bus
30. Die Auswahl dieser Eingangssignale zur Übertragung des Ausgangs des Multiplexers 34 wird durch einen
2-Bit-Steuereingang des Multiplexers 65 bewirkt. Der Multiplexer 65 empfängt Eingänge von dem BIS-FeId des
Mikrobefehles und von dem BRG-Register 66, das von dem Steuerspoicher für den aufgeschobenen Einsatz
(deferred action control memory) in einer nachstehend zu erläuternden Art und Weise geladen wird. Die
Eingänge zu dem Multiplexer 65 werden wahlweise unter der Steuerung des BR-Feldes der Mikrobefehle an
seinen Ausgang angelegt. Folglich kann die Auswahl der Quelle zum Anlegen des B4-Bus 22 entweder unter
direkter Mikroprogrammsteuerung oder als aufgeschobener Einsatz durchgeführt werden. ι ο
Der Ausgang des Multiplexers 34 wird als erster Eingang an die Hochgeschwindigkeitsverschiebeeinrichtung
35 angelegt, die durch die Multiplexer 67 und 68 schematisch dargestellt ist. Es sei darauf hingewiesen, daß der
Multiplexer 34 36 parallele Bits zu der Verschiebeeinrichtung 35 liefert. Jeder der Multiplexer 67 und 68 enthält
36 Multiplexersegmente (8 Eingänge auf einen Ausgang), wobei die Ausgänge der Multiplexersegmente auf der
Stufe 67 mit den Eingängen des Multiplexers auf der Stufe 68 verbunden werden, um so gleichzeitig ein
gesteuertes Verschieben von 0 bis 36 Stellungen (zirkulär) zu bewirken, in dem Maße, wie die Daten parallel
durch die Verschiebeeinrichtung 35 fließen. Die Größe der Verschiebung wird durch die 3-Bit-Auswahleingänge
zu den Multiplexerstufen 67 und 68 gesteuert, die gleichzeitig eine Eingangsauswahlsteuerung für jedes der
Multiplexersegmente in jeder Stufe liefern. Die Einzelheiten der Verbindungen und der Steuerung zur Durchführung
der Verschiebung wird nachfolgend beschrieben. Die Multiplexerstufe 68 empfängt das GRS*-Eingangssignal
von dem Mehrzweckregisterstapel 32 sowie einen U*-Eingang von dem U-FeId des Makrobefehlsregisters 13. Diese Eingänge werden an den Multiplexer 68 angelegt und aufgelistet zur Adreßberechnung in den
lokalen Prozessoren 17, 18 und 19. Der Multiplexer 67 empfängt zusätzlich ein Eingangssignal von einem
Schiebezählregister 69, um zu gestatten, daß der Schiebezählwert von den lokalen Prozessoren aufdatiert wird.
Die Eingänge zu der Verschiebeeinrichtung 35 von dem Schiebesteuerregister 69 sowie die als GRS* und U*
bezeichneten Eingänge brauchen nicht einer generellen 1 bis 36 Bitverschiebung unterzogen zu werden, sind
jedoch auf dem Verschiebeeinrichtungsausgang für den B-Bus in einer festen Stellung ausgerichtet. Folglich
können sie (und werden) in den Multiplexer 67 und 68 eher gebracht als in den Multiplexer 34, um die Hardware
zu verringern.
Die Steuersignale für die Multiplexerstufen 67 und 68 werden von einem Verschiebungs/Masken-Adressen-PROM
70 (programmierbarer-Nur-Lesespeicher) geliefert. Der Speicher 70 enthält 128 12-Bitworte zur Steuerung
der Größe der von der Verschiebeeinrichtung 35 durchgeführten Verschiebung und ebenfalls zur Lieferung
der Adreßintormationen für die Steuerung der Maskenbetriebsweise, die von den lokalen Prozessoren 17, 18
und 19 durchgeführt wird. Die Speichertabelle zur Durchführung der geforderten Operationen wird weiter
unten dargestellt Der Speicher 70 empfängt eine 7-Bitadresse von einem 4-Eingangsmultiplexer 71, in dem die
Eingänge selektiv mit dem Ausgang verbunden werden unter der Steuerung des SFT-Feldes des Mikrosteuerspeichers
36. Einer der Eingänge zu dem durch die Legende »NICHT VERSCHIEBEN« bezeichneten Multiplexer
liefert die O-Adresse an der ein Wort gespeichert ist für den Speicher 70, dessen Bits die »NICHT VERSCHIEBEVERBINDUNGEN«
in den Multiplexer^ 67 und 68 bewirken. Ein weiterer Eingang des Multiplexers
71, der mit »NICHT VERSCHOBENE EINGÄNGE« bezeichnet ist, ist für einen kleinen Satz ausgewählter
Konstanten-Adressen vorgesehen, die für die »NICHT SCHIEBEEINGÄNGE«, wie das obige U* und GRS*
verwendet werden. Diese Einrichtung wird zur Eingabe zusätzlicher Daten verwendet ohne die Notwendigkeit,
einen größeren Eingangsmultiplexer 34 benutzen zu müssen. Stattdessen werden Reserveeingänge (spare inputs)
in den Multiplexers 67 und 68 verwendet Hierdurch können Steuerworte in dem Speicher 70 gespeichert
sein, um die Multiplexer 67 und 68 so zu steuern, daß sie geeignete Bits zu dem B-Bus 22 forderungsgemäß leiten.
Ein weiterer Eingang des Multiplexers 71 wird durch das Schiebezählregister 69 geliefert der für den
Makrobefehl »SCHIEBE« oder zur Normalisierung angewandt wird. Der vierte Eingang des Multiplexers 71,
der durch die Legende »per j« bezeichnet ist liefert das Viertel-Wort Bit (QW), das mit dem j-Feld des
Makrobefehles für die j-Feld-bestimmte Verschiebung verkettet ist Dieser Eingang des Multiplexers 71 wird
durch einen Addierer 72 realisiert, der die Dezimalkonstante 36 zu dem j-Feld aus dem Register 56 addiert und
durch 73, wo das Viertel-Wort Bit durch Verkettung den Einfluß hat, daß eine zusätzliche Dezimalkonstante von
64 zu dem Ergebnis addiert wird. Die durch die Elemente 72 und 73 ausgeführte Kombination ist in einer Weise
und aus Gründen vorgesehen, die im Zusammenhang mit dem UNIVAC-Rechner 1108 ohne weiteres zu
verstehen sind.
Das Schiebezählregister 69 ist ein 7-Bitregister, wobei das signifikanteste Bit die Richtung der Verschiebung
steuert und die verbleibenden Bits die Anzahl der über die in dem Speicher 70 gespeicherten adressierten Worte
verschobene Anzahl von Plätzen steuert Wenn der Makrobefehl »Verschiebe« durchgeführt wird, empfängt das
Register 69 seine 6 letzten signifikanten Bits von den Bits 25—20 aus dem D-Bus 23 und sein signifikantestes Bit
von dem SL-FeId der Befehlszustandstabelle 38, wobei das SL-FeId bei 74 vorhanden ist Das durch die
Befehlszustandstabelle 38 gelieferte SL-FeId enthält, wie oben erläutert, ein einzelnes Bit das eine Linksver-Schiebung
bestimmt, wenn es in dem Zustand »1« ist, und eine Rechtsverschiebung, wenn es in dem Zustand »0«
ist
Das Schiebezählregister 69 wird ebenfalls verwendet wenn eine Normalisierung in Verbindung mit einem
Normalisierungshilfschaltkreis (NH, normalizer helper circuit) 75 durchgeführt wird Der Normalisierungshilfsschaltkreis
75 spricht auf die 36 Datenbits des D-Bus 23 an und liefert einen 7 Digit-Zählinhalt an das Register 69.
Das signifikanteste Bit der 7 Ausgangsbits von der Normalisierungshilfseinrichtung 75 ist ständig auf 1 gesetzt
um ausschließlich Linksverschiebungen durchzuführen, wie sie beim Normalisieren benötigt werden. Weitere
Einzelheiten der Elemente 69,74 und 75 werden weiter unten erläutert.
Wie oben im Zusammenhang mit F i g. 2 erläutert, enthält die Zentraleinheit 10 den Mehrzweckregisterstapel
32, der 128 36-Bitregister enthält. Die A, X und R-Register des UNIVAC-Rechners 1108 sind in dem Registersta-
pel 32 enthalten. Die Register des Stapels 32 werden durch eine 7-Bitadresse adressiert, die von der ODER-Gattereinrichtung
76 geliefert werden. Wie oben erläutert, werden Daten in das adressierte Register von dem D-Bus
23 eingeschrieben und aus ihm auf den B-Bus-Eingangs-Multiplexer 34 und den Verschiebemultipiexer 68
eingelesen. Für den Mehrzweckregisterstapel 32 sind vier Adreßquellen vorgesehen, von denen drei durch die
Register-Adreß-Register 33 vorgesehen sind, die aus den drei 7-Bit-Registern RARl, RAR2 und RAR3 zusam-
mengesetzt sind. Die vierte Adresse wird von dem X-FeId des Makrobefehlsregisters 13 geliefert, wobei das
D6-Bit hiermit bei 95 in einer weiter unten zu beschreibenden Art und Weise verkettet ist Das D6-Bit ist eines
der Designatorbits des UNIVAC-Rechners 1108 von dem PSR-Register wie oben erläutert und ist in der
Zentraleinheit 10 durch ein separates Flip-Flop in den Steuerschaltkreisen 41 vorgesehen. Die vier Adressen
werden als Eingänge an einen GRS-Lese-Adreßmultiplexer 77 und einen GRS-Scnreib-Multiplexer 78 angelegt.
Die GRA- und GWA-Felder des Steuerspeichers 36 werden als Auswahleingänge an die Multiplexer 77 bzw. 78
gelegt. Zusätzlich iegt ein Schreib-Bereitschaft-Flip-Fiop 79, das auf die Zeitsignaie ίο und 150 anspricht (diese
Zeitsignale werden später erläutert), Steuersignale an die Chip-Bereit-Eingänge der Multiplexer 77 und 78 an,
um die Zeitsteuerung für die GRS-Schreib- und -Lese-Operationen zu liefern.
In einer weiter unten zu beschreibenden Weise arbeitet die Zentraleinheit 10 mit einem 100 Nanosekunden-Mikrozyklus,
wobei Zeitabtastimpulse alle 10 Nanosekunden geliefert werden, wobei die Abtastimpulse mit ίο
bis <9o bezeichnet sind. Daher ist es günstig, daß zum Zeitpunkt ίο das Schreibbereitstellungs-Flip-Flop 79 gesetzt
wird und zum Zeitpunkt iM zurückgesetzt wird. Folglich ist während der ersten Hälfte des Mikrozykluses der
Multiplexer 78 schreibbereit und während der zweiten Hälfte des Mikrozyklus ist der Multiplexer 77 lesebereit
Daher wird, in Übereinstimmung mit den GRA- und GWA-Feldern des Mikrobefehlswortes, eine der vier
Eingangsadressen während der ersten Hälfte des Mikrozykluses durch das GWA-FeId ausgewählt und durch das
ODER-Gatter 76 hindurch übertragen, um den Mehrzweckregisterstapel 32 zum Schreiben zu adressie-c-n.
Während der zweiten Hälfte des Mikrozykluses wird eine der vier Eingangsadressen durch das GRA-FeId
ausgewählt und über das ODER-Gatter 76 übertragen, um den Mehrzweckregisterstapel 32 zum Lesen zu
adressieren. Das RARl enthält üblicherweise die absolute Adresse des Registers, das durch das a-Feld des
Makrobefehles bezeichnet ist, deren Wert generell zu Beginn der Makrobefehlsemulierung durch den lokalen
Prozessor 27 errechnet wird. Das RARl-Register empfängt diese Adresse von den sieben letzten signifikanten
Bits des D4-Bus 30. Das RAR2-Register wird üblicherweise dazu benützt, die Adresse von A8 + 1 für die Befehle
mit doppelter Stellenzahl des UNIVAC-Rechners 1108 zu enthalten und empfängt diese Adresse von den sieben
letzten signifikanten Bits des D4- Bus 30. Das Register RAR3 enthält üblicherweise die GRS-Adresse, die von
dem u-Feld des Makrobefehles geliefert wird, der, in Übereinstimmung mit der Adressierung des UNIVAC-Rechners
1108 der »verborgene« Speicher (»hidden« memory) ist. Einer der lokalen Prozessoren 17,18 und 19
kann diese Berechnungen durchführen, um die Adreßinformation an das RAR3-Register zu liefern, die von den
rechten sieben Bits der verbliebenen 20 Bits des 40 Bit-Breiten D-Bus 23 entnommen ist Die vierte Adreßquelle
wird direkt von dem x-Feld, das mit dem D6-Bit verkettet ist, von dem Makrobefehlsregister 13 geliefert D6
bestimmt, ob das x-Register in dem Benutzerzustand (user state) oder dem Ausführungszustand (executive state)
ist, und zwar in einer Weise, die identisch der in dem UNIVAC-Rechner 1108 benützten ist Aufgrund der durch
den UNIVAC-Rechner 1108 gewählten Grenzen, kann das D6-Bit nur in einer nachfolgend zu beschreibenden
Weise verkettet werden.
Die Adressierung für den Mehrzweckregisterstapel 32 wurde oben im Zusammenhang mit den Tabellen 3 und
9 grundsätzlich erläutert, aus denen zu entnehmen ist, daß die Basisadreßberechnungen durch den lokalen
Prozessor 27 in Abhängigkeit von dem GB-FeId des IST-Speichers 38 durchgeführt werden, wobei die Ergebnisse
an die Register-Adreß-Register 33 geliefert werden, was durch die GRA- und GWA-Felder in den Mikrobefehlen
in dem Steuerspeicher 36 angewiesen wird.
Wie oben erläutert, enthält die Zentraleinheit 10 lokale Prozessoren 17, 18 und 19, die als Pl1 P2 und P3
Wie oben erläutert, enthält die Zentraleinheit 10 lokale Prozessoren 17, 18 und 19, die als Pl1 P2 und P3
so bezeichnet sind, die ihnen zugeordnete lokale Speicher 24,25 bzw. 26 aufweisen. Jeder der lokalen Speicher 24,
25 und 26 ist 64 Worte lang und 10 Bits breit Der lokale Speicher 24 wird durch einen 6-Bit-Multiplexer 80 mit
drei Eingängen adressiert, wobei die Eingänge durch das LMAS-FeId des lokalen Steuerfeldes, das dem Prozessor
Pl zugeordnet ist, ausgewählt werden, und das, wie oben im Zusammenhang mit Tabelle 5 erläutert von dem
Steuerspeicher 36 geliefert wird. Einer der Eingänge des Multiplexers 80 wird von dem LMA-FeId des lokalen
Steuerfeldes, das dem Prozessor Pl zugeordnet ist, geliefert, wodurch der lokale Speicher direkt unter der
Mikroprogrammsteuerung adressiert werden kann. Ein zweiter Eingang des Multiplexers 80 wird von dem
Adreßregister des lokalen Speichers (LMAR) 81 geliefert, der von den letzten sechs signifikanten Bits des D-Bus
23 geladen wird, unter der Steuerung der Steuertabelle des aufgeschobenen Einsatzes in den Steuerschaltkreisen
41. Folglich kann der lokale Speicher 24, in einer weiter unten zu beschreibenden Weise, in Übereinstimmung mit
dem aufgeschobenen Einsatz adressiert werden. Der dritte Eingang des Multiplexers 80 wird von dem Schiebe/
Masken-Adreß-PROM 70 geliefert, der die 36 Plätze in dem lokalen Speicher 24 adressiert, die zur Speicherung
der bei den Berechnungen des lokalen Prozessors benötigten Masken verwendet werden.
Die adressierten Worte des lokalen Speichers 24 werden durch eine Komplementiereinrichtung 82 zu einem
A-Verriegelungs-Register 83 geliefert, das gleichzeitig seine 40-Biteingänge an den A-Eingangsanschluß des
lokalen Prozessors 17 liefert Die Komplementiereinrichtung 82 überträgt die adressierten Worte von dem
lokalen Speicher 24 zu dem A-Register 83 entweder in komplementierter oder nicht-komplementierter Form in
Übereinstimmung mit den Eingängen LMAS, MC und SE zu ihm. Es sei darauf hingewiesen, daß das Steuerfeld
LMAS von dem Steuerspeicher 36, das Feld MC von der Befehlszustandstabelle 38 und das Feld SE von dem
zugeordneten Flip-Flop der statischen Variablen in den Steuerschaltkreisen 41, wie oben im Zusammenhang mit
Tabelle 4 erläutert, geliefert wird. Die detailliertere Steuerung der Komplementiereinrichtung 82 wird später
erläutert. Die Verriegelungen, die durch das A-Register 83 vorgesehen sind, werden benötigt, da der A-Eingangsanschluß
des lokalen Prozessors 17 nicht mit einer internen Verriegelung ausgestattet ist. Der B-Eingang
des lokalen Prozessors 17 dagegen weist keine externe Verriegelung auf. Die Steuerung der selektiven Komplementierung
der Komplementierungseinrichtung 82 wird primär zur Maskenextraktion aus dem lokalen Speicher
24 benützt, unter der Steuerung des Verschiebungs-Masken-Adreß-PROM'S 70, so daß 36 Masken ebenso wie
ihre Komplemente selektiv von dem lokalen Speicher 24 geliefert werden können, wie oben im Zusammenhang
mit den Tabellen 5 und 12 erläutert.
Die Steuerung der Eingangs-, Ausgangs-, Arithmetik- und Logikfunktionen des lokalen Prozessors 17 wird
durch 16 Funktionsbits So—S15 durchgeführt In weiter unten detaillierter zu beschreibender Weise enthält der
lokale Prozessor 17 ein anwendbares Repertoire von ungefähr 67 Funktionen, wobei der 16-Bitfunktionscode
die Funktionen auswählt, unter Anwendung einer Halb-Haupt-Bit-Annäherung (semi-master-bitted approach).
14 der 16 Funktionsbits, nämlich S0-3,5-7,9-15 werden von einem Multiplexer 84 mit zwei Eingängen über eine
Funktionsverriegelung 85 geliefert. Die zwei Eingänge des Multiplexers 84 werden von dem Steuerspeicher 36
durch das LPFT- und LPFF-FeId des Teiles des Mikrosteuervvortes, das dem lokalen Prozessor Pl zugeordnet
ist, geliefert. Die Auswahl dieser Funktionssteuerfelder wird durch den Selektionseingang des Multiplexers 84
von dem Entscheidungspunkt 3 der Entscheidungslogik 40 geliefert. Folglich wird in Übereinstimmung mit dem
Zustand von DP3 die durch LPFT oder durch LPFF benannte Funktion von dem lokalen Prozessor 17 ausgeführt
werden, in Übereinstimmung mit der Steuereinrichtung für die Zentraleinheit 10, die weiter unten beschrieben
wird.
Das Sg-Funktionsbit des lokalen Prozessors 17 steuert den Ausgang des Akkumulators des lokalen Prozessors
zu dem D-Ausgangsanschluß. Das Se-Funktionsbit wird von einem Akkumulatorausgangssteuermultiplexer 86
über eine Se-Funktionsverriegelung 87 geliefert Die zwei Bits des OLJT-Feldes des Teiles des dem Prozessor Pl
zugeordneten Mikrosteuerwortes werden den entsprechenden zwei Eingängen des Multiplexers 86 zugeführt,
wobei die Auswahl zwischen ihnen durch das Signal des Entscheidungspunktes 7 der Entscheidungslogik 40
ausgeführt wird. Die ausgeführte spezielle Ausgangssteuerung wurde oben im Zusammenhang mit Tabelle 8
angegeben. Zur Klarstellung sei darauf hingewiesen, daß die Funktion des lokalen Prozessors, die durch das
S4-Funktionsbit gesteuert wird, bei dem Betrieb der Zentraleinheit 10 nicht benutzt wird. Sie wird durch Anlegen
eines permanenten »1 «-Signales an den S4-Eingang außer Funktion gesetzt Die Komponenten 80 und 82—87
werden der Einfachheit halber im folgenden als Block 88 bezeichnet.
Dem lokalen Prozessor 18 und dem lokalen Speicher 25 ist ein Block 88' und dem lokalen Prozessor 19 und
dem lokalen Speicher 26 ein Block 88" zugeordnet Die Blöcke 88' und 88" sind dem Block 88 identisch mit
Ausnahme, daß die in geeigneter Weise zugeordneten lokalen Steuerfelder von dem Steuerspeicher 36 an sie
angelegt werden. Das Adreßregister 81 des lokalen Speichers und der Schiebe/Masken-Adreß-PROM 70 liefern
Eingänge an die Blöcke 88' und 88" aus Gründen, die denen oben im Zusammenhang mit dem Block 88
erläuterten ähnlich sind.
Der lokale Prozessor 27 mit seinem zugeordneten lokalen Speicher 28 ist gegenüber dem Prozessor 17,18 und
19 etwa unterschiedlich ausgebildet Die Adressierung des lokalen Speichers 28 wurde oben im Zusammenhang
mit den Blocks 63 und 64 erläutert Der lokale Prozessor 27 verwendet 16 Funktionsbits So—S15 in ähnlicher
Weise, wie im Zusammenhang mit dem Prozessor 17 erläutert Die Funktionsbits S0-3,5-7.9-15 werden von einem
Funktionsauswahlmultiplexer 89 über eine Funktionsverriegelung 90 parallel geliefert Die beiden Eingänge des
Multiplexers 89 werden von dem Steuerspeicher 63 durch die Funktionsfelder des lokalen Prozessors LPFT und
LPFF des Teiles des Mikrosteuerwortes, das dem P4-Prozessor zugeordnet ist, geliefert, wie oben im Zusammenhang
mit F i g. 4 erläutert Die Auswahl zwischen LPFT und LPFF wird durch den Entscheidungspunkt 6 der
Entscheidungslogik 40 durchgeführt Der Übertragseingang (Cin, carry in input) des Prozessors 27 wird als
Funktionsbit behandelt und wird von einem der Funktionsbitausgänge des Multiplexers 89 geliefert Der
Sg-Eingang ist permanent durch einen »1 «-Eingang in Bereitschaft gesetzt, da der Prozessor 27 den eigenen
D4-Bus 30 verwendet, zu dem er ausschließlich Eingangssignale liefert Der S4-Eingang des Prozessors 27 ist
ständig außer Bereitschaft gesetzt auf eine Art und Weise und aus Gründen, die oben im Zusammenhang mit
dem Prozessor 17 erläutert wurden.
jeder der iokaien Prozessoren 17, 18,13 und 27 ist vorzugsvveise aus LSI-Chips der Mikroprczessorvielfalt
hergestellt Insbesondere wurde zur Realisierung der Motorola-4-Bitchip »ALU« 10 800 ausgewählt Detailliertere
Einzelheiten für diesen »ALU«-Chip sind aus der folgenden Veröffentlichung, die von Motorola Semiconductor
Products, Inc. erhältlich ist zu entnehmen: »MIO 800-HIGH PERFORMANCE MECL LSI PROCESSOR
FAMILY«, 1976. Es sei darauf hingewiesen, daß die dort verwendete Terminologie, nämlich, Α-Bus, B-Bus und
D-Bus mit der Motorola Terminologie A-Bus,O-Bus und I-Bus übereinstimmt
F i g. 6 zeigt ein schematisches Blockschaltbild des »ALU«-Chips der zur Ausführung der lokalen Prozessoren
17,18,19 und 27 verwendet wird, wobei die Komponenten und Verbindungen, die bei der Zentraleinheit 10
verwendet werden, dargestellt sind. Der Eingang von dem A-Register 83 (F i g. 5) zu dem A-Eingang wird als ein
Eingang an einem Multiplexer 100 angelegt, dessen Ausgang an den »ALU«-Chip 101 des Chips sowie an ein
Maskennetzwerk 102 ausgelegt ist Ein weiterer Eingang des Maskennetzwerkes 102 wird von einer B-Bus-Verriegelung
103, die zur Verriegelung der Werte von dem B-Bus 22 (F i g. 5) bei Beginn jedes Mikrozykluses
verwendet wird, geliefert Der Ausgang des Maskennetzwerkes 102 sowie der Ausgang der Verriegelung 103
liefert Eingänge zu dem »ALU«-Block 101. Der »ALU«-Block 101 empfängt die 16 Funktionsauswahlbits
So—S15, wie oben erläutert, sowie ein ÜbertragungssignaL Der »ALU«-Block 101 liefert weiterhin Übertragserzeugungs(G)-,
Übertragsweiterleitungs(P)-, sowie Überlauf- und Übertragsausgangssignale.
Der Ausgang des »ALU«-Blocks 101 wird an eine 1-Bit-Verschiebeeinrichtung 104 gelegt, deren Ausgang
einem Mikroakkumulator 105 zugeführt wird (mit a bezeichne»), dessen Ausgang seinerseits den Wert des
Ausgangs-D-Anschlusses des Prozessors liefert Der Ausgang des Akkumulators 105 wird weiterhin als ein
Eingang an den A-Bus-Multiplexer 100 angelegt sowie an die B-Bus-Verriegelung 103 und den »ALU«-Block
101. Die Verschiebeeinrichtung 104 enthält einen bi-direktionalen Eingang für das letzte signifikante Bit (LBS)
sowie einen bi-direktionalen Eingang für das signifikanteste Bit (MSB) und liefert weiterhin einen N U LL-Erfassung-Ausgang,
der als dynamische Variable in der Zentraleinheit 10 verwendet wird, die eine Anzeige liefert,
wenn alle der durch die Verschiebeeinrichtung übertragenden Bits 0 sind.
Der in F i g. 6 dargestellte Chip liefert Bool'sche logische Funktionen, binäre arithmetische Funktionen und ein
Satz von Datenleitfunktionen, wobei das Chip ein Repertoire von ungefähr 67 Funktionen aufweist Wie oben
erläutert, werden die Funktionen durch die Halb-Haupt-Bit-Eingänge S0-Su ausgewählt Wie weiterhin erläutert,
kann der D-Ausgang durch das Funktionsbit Se außer Betrieb gesetzt werden, wodurch ermöglicht wird,
daß der Phantom-ODER-Verknüpfungsausgang (wire-OR) zu dem D-Bus 23 gelangt Das arithmetische Grundrepertoire
besteht aus: Addieren, Subtrahieren, Komplementieren, um 1 Bit Verschieben und das logische
Grundrepertoire besteht aus UND, ODER, EXKLUSIV ODER und NICHT. Zusätzlich kann der Chip eine
Bool'sche logische Funktion auf die eine arithmetische Funktion folgt, in dem gleichen Mikrozyklus durchführen
unter Verwendung des Maskennetzwerkes 1OZ Da die Verschiebeeinrichtung 104 zu einer 1-Bitverschiebung
pro Zyklus gezwungen ist wird die externe Hochgeschwindigkeitsver schiebeeinrichtung 35, wie oben im Zusammenhang
mit F i g. 2 und 5 erläutert, verwendet Die Daten von dem B-Bus 22 werden in der B-Bus-Verriegelung
103 zu Beginn jedes Mikrozykluses verriegelt und das Ergebnis der letzten Operation wird in dem Akkumulator
105 am Ende jedes Zykluses verriegelt. Da für den A-Anschluß des Chips keine interne Verriegelung vorgesehen
ist, wird das externe A-Register 83 zur Ermöglichung dieser Fähigkeit vorgesehen. Das komplette Repertoire
des Chips sowie die Details seines Aufoaues und seines Betriebes sind in der oben angegebenen Motorola-Literaturstelle
beschrieben.
Jeder der verwendeten Chips ist 4-Bits weit und parallel für den Datenfluß aufgeteilt Der Chip ist auf die von den Prozessoren 17, 18 und 19 benötigten 40 Bits und die von dem Prozessor 27 benötigten 20 Bits durch parallele Verbindung der Schaltkreise erweitert Insbesondere werden bei Realisierung der lokalen Prozessoren 17,18 und 19 10 Chips mit einer Weite von 4-Bits, wie in F i g. 6 dargestellt verwendet, wobei die resultierenden 40-Bit weiten A-, B- und D-Anschlüsse parallel mit dem 40-Bit weiten A-Busregister 83, dem B-Bus 22 bzw. dem D-Bus 23 verbunden sind. Der lokale Prozessor 27 ist aus 5 solcher Chips zusammengesetzt wobei die resultierenden 20-Bit weiten A-, B- und D-Anschlüsse parallel mit dem 20-Bit weiten Speicher 28, dem B4-BuS 29 bzw. dem D4-BuS 30 verbunden sind. Für jeden der Prozessoren 17,18,19 und 27 werden die Funktionssteuerbits S0-SiS parallel an alle Chips, die der Prozessor enthält, angelegt Die Verschiebeschaltkreise 104 für alle Chips in einem Prozessor sind bezüglich jedem anderen seriell verbunden, wobei der MSB-Verschiebeeinrichtungsausgang eines Chips mit dem LSB des Chips nächsthöherer Ordnung verbunden ist Die »NULL-Erfassungs«-Ausgänge der in einem Prozessor enthaltenen Chips sind miteinander UN D-verknüpft, um die dynamische Variable »NULL-Erfassung« für den Prozessor, wie oben im Zusammenhang mit Tabelle 4 erläutert zu liefern. Die Überlaufausgänge des signifikantesten Chips von jedem der Prozessoren 17,18,19 und 27 liefert Eingänge zu der Entscheidungslogik 40 als Variable in die Entscheidungslogikschaltkreise, die nachfolgend beschrieben werden.
Jeder der verwendeten Chips ist 4-Bits weit und parallel für den Datenfluß aufgeteilt Der Chip ist auf die von den Prozessoren 17, 18 und 19 benötigten 40 Bits und die von dem Prozessor 27 benötigten 20 Bits durch parallele Verbindung der Schaltkreise erweitert Insbesondere werden bei Realisierung der lokalen Prozessoren 17,18 und 19 10 Chips mit einer Weite von 4-Bits, wie in F i g. 6 dargestellt verwendet, wobei die resultierenden 40-Bit weiten A-, B- und D-Anschlüsse parallel mit dem 40-Bit weiten A-Busregister 83, dem B-Bus 22 bzw. dem D-Bus 23 verbunden sind. Der lokale Prozessor 27 ist aus 5 solcher Chips zusammengesetzt wobei die resultierenden 20-Bit weiten A-, B- und D-Anschlüsse parallel mit dem 20-Bit weiten Speicher 28, dem B4-BuS 29 bzw. dem D4-BuS 30 verbunden sind. Für jeden der Prozessoren 17,18,19 und 27 werden die Funktionssteuerbits S0-SiS parallel an alle Chips, die der Prozessor enthält, angelegt Die Verschiebeschaltkreise 104 für alle Chips in einem Prozessor sind bezüglich jedem anderen seriell verbunden, wobei der MSB-Verschiebeeinrichtungsausgang eines Chips mit dem LSB des Chips nächsthöherer Ordnung verbunden ist Die »NULL-Erfassungs«-Ausgänge der in einem Prozessor enthaltenen Chips sind miteinander UN D-verknüpft, um die dynamische Variable »NULL-Erfassung« für den Prozessor, wie oben im Zusammenhang mit Tabelle 4 erläutert zu liefern. Die Überlaufausgänge des signifikantesten Chips von jedem der Prozessoren 17,18,19 und 27 liefert Eingänge zu der Entscheidungslogik 40 als Variable in die Entscheidungslogikschaltkreise, die nachfolgend beschrieben werden.
Wie oben erläutert können die 10 4-Bitchips, die in jedem der lokalen Prozessoren 17,18 und 19 enthalten
sind, in einer 36-Bitbetriebsweise oder als 2 20 Bit-Prozessoren in der 2 χ 20-Bitbetriebsweise verbunden sind.
Die verbindungen der Leitungen (G), (P), Übertragseingang und Übertragsausgang mit dem Übertragsvorgriffsschaltkreis
(look ahead circuritry) wird nachfolgend im Zusammenhang mit der Aufbausteuerung der
lokalen Prozessors beschriebe». Eine Vorzeichenanzeige des errechneten IS-Bit oder des 36-Bit-Wertes ist in
herkömmlicher Weise durch Verbindungen mit den entsprechenden Vorzeichendigits des Akkumulators vorgesehen.
Wie oben erläutert liefern die DACT- und DACF-Felder des Mikrosteuerwortes in dem Steuerspeicher 36
selektiv, in Übereinstimmung mit dem Entscheidungspunkt 11, Adressen in die Steuertabelle des aufgeschobenen
Einsatzes in den Steuerschaltkreisen 41 zur Steuerung der Durchführung der globalen aufgeschobenen
so Einsätze. In F i g. 7 ist die Steuertabelle 106 des aufgeschobenen Einsatzes dargestellt Die DAC-Tabelle 106
enthält einen Speicher zur Speicherung einer Vielzahl von Worten, die in Übereinstimmung mit DACT und
DACF adressiert sind, wobei deren Bits eine Haupt-Bit-Liste (master bittet list) der durchzuführenden Aktionen
liefert Beispielsweise enthält der Speicher 106 24 Worte von jeweils 21 Bit, wobei jedes Bit eine einzelne Aktion
steuert Die Bitausgänge aus dem Speicher 106 werden mit entsprechenden Steuerschaltkreisen verbunden zur
Ausführung der bezeichneten Aktion in Übereinstimmung mit den Zuständen der Bits. Beispielsweise steuert
das Bit 0, das die Aktion P —► IAR steuert die Übertragung des Inhaltes des Programmzählers 31 in das
Befehlsadreßrjgister 12 durch Verbindung des Bit-0-Ausganges des Speichers 106 mit dem Abtastimpulseingang
(strobe) des Registers 12. Folglich wird, wenn ein Wort in dem Speicher 106 entweder an der Adresse
DACT oder der Adresse DACF selektiv unter der Steuerung des DP 11 adressiert ist, die P —► I AR-Übertragung
stattfinden, wenn das Bit 0 dieses Wortes auf 1 gesetzt ist andernfalls nicht In ähnlicher Weise sind die anderen
Bits des Speichers 106 mit den durch die einzelne aufgelistete Aktion bezeichneten Komponenten verbunden,
um die hierzu aufgeschobenen Aktion zu steuern. Einzelheiten der Steuerungsverbindungen werden später
beschrieben. Folglich bezeichnen die zwei Steuerspeicherfelder DACT und DACF die einzelnen Auswahlen der
aufgeschobenen Aktion für einen Mikrobefehl. Die Tabelle 106 enthält ein Wort für jede Kombination der
gewünschten aufgeschobenen Aktion. Einzelne aufgeschobene Aktionen werden gleichzeitig auftreten, wenn
verschiedene Bits in dem aus dem Speicher gelesenen Wort gesetzt sind.
Die Auswahl, ob das Wort in dem Speicher 106, das durch das DACT-FsId oder das, das durch das DACF-FeId
adressiert ist, verwendet wird, wird durch den Zustand von DP 11 gesteuert Diese Auswahl wird durch Anwendung
zweier identischer Speicher durchgeführt, wobei einer durch DACT und der andere durch DACF adressiert
ist, wobei die korrespondierenden Bits von dem Speicher an der zu steuernden Einrichtung in Übereinstimmung
mit DP 11 torgesteuert werden. Beispielsweise werden die BRG-Bit-0-Bits von den DACT- und DACF-Speichern
mit der letzten signifikanten Stufe des BRG-Registers 66 verbunden und das Bit von einem oder dem
anderen Speicher wird unter der Steuerung von DP 11 in diese Stufe geladen. Die Details für die selektive
Steuerung der aufgeschobenen Aktion werden weiter unten beschrieben.
Viele der Kurzbezeichnungen, die die durchzuführende aufgeschobene Aktion bezeichnen, beziehen sich auf
Register und Verriegelungen, die oben im Zusammenhang mit F i g. 5 erläutert wurden. Beispielsweise steuert
die Größe D -► IAR das Plazieren des Wertes auf dem D-Bus 23 in das Befehlsadreßregister 12. Die »STORE
OP«-Aktion steuert das Abspeichern des Operanden in dem MDRW-Register 15 in den Arbeitsspeicher an der
Adresse, in dem Operandenadreßregister (OAR) 14. Der »FETCH NI«-Befehl bewirkt ein Abrufen des nächsten
Makrobefehles an der Adresse in dem IAR-Register 12 in das MIR-Register 13. Die »LOAD BRG-, BRG BIT 0-
und BRG BIT 1 «-Aktionen steuern das Laden des BRG-Registers 66 mit den Bits, die von den Bits 11 und 12 des is
Speichers 106 geliefert werden. Die »STATICIZE«-Aktion setzt eine Verriegelung in den Steuerschaitkreisen
41, die als »STAT MEM« bezeichnet wird. Der Ausgang der »STAT MEM«-Verriegelung liefert das »STAT«-Signal
für das Befehls- und Adressen-Register 56. Es sei darauf hingewiesen, daß die DO und Dl-Bestimmungen
sich auf die obigen im Zusammenhang mit Tabelle 4 erläuterten statischen Variablen beziehen und daß die
D—»GRS (R)- und die D-*GRS (L)-Aktionen beim Laden der rechten oder linken Seite des ausgewählten
Registers des Mehrzweckregisterstapels 32 von dem D-Bus 23 verwendet werden, wobei sich die linke Seite (L)
auf die linken 20 Hauptbits des D-Bus 23 und die rechte Hälfte (R) auf dessen rechten 20 Hauptbits bezieht
Tabellenangesteuerte Entscheidungslogik
Wie oben im Zusammenhang mit F i g. 4 erläutert, benötigt die Zentraleinheit 10 eine Vielzahl von Entscheidungen,
die getroffen werden massen, um die bedingte Steuerung des Rechners zu ermöglichen. Die Entscheidungslogik
40 (F i g. 2 und 5) hat 12 Entscheidungspunkte DPO- DPI 1 zur Ausführung der benötigten Steuerung
in einer nachfolgend im Zusammenhang mit den F i g. 8 und 9 zu beschreibenden Weise. Die Beziehungen
zwischen den Entscheidungspunkten und den in F i g. 4 dargestellten MikroSteuerfeldern wurden oben dargelegt,
wo die binären Zustände der Entscheidungspunkte die Auswahl bestimmen. In der folgenden kurzen
Darstellung wird auf F i g. 9 Bezug genommen.
steuert die tatsächliche Verzweigung durch Auswahl der Adresse NAT oder NAF in Übereinstimmung mit
der durch JDS ausgewählten Funktion, wobei die Adresse NAT modifiziert sein kann, um einen Vektorsprung
im Hinblick auf die Klassenbasis, den Befehl und die Unterbrechungsvektoren unter der Steuerung
des XF-Feldes durchzuführen. ||
DPI und DP2 sind mit den entscheidenden beiden letzten signifikanten Bits der Adresse NAT ODER-verknüpft, um eine
bedingte 4-Wege-Vektorverzweigung durchzuführen. Die logischen Funktionen, die DPI und DP2 liefern,
werden durch die Felder VDSO bzw. VDSl ausgewählt
DP3-DP6 wählen zwischen den LPFT- und LPFF-Funktionssteuerfeldern für die entsprechenden Prozessoren
Pl — P4 in Übereinstimmung mit den durch die entsprechenden PDS-Felder ausgewählten logischen Funktionen.
Diese Entscheidungspunkte steuern die Phantomverzweigung der Zentraleinheit 10 in einer weiter
unten zu beschreibenden Weise.
DP7-DP10
liefern die bedingte Steuerung für die aufgeschobene Aktion für die entsprechenden lokalen Prozessoren
Pl, P2, P3 und P4 in Übereinstimmung mit den durch die entsprechenden DDS-Felder ausgewählten
logischen Funktionen. Diese Entscheidungspunkte werden in Verbindung mit dem OUT-, WLM-, WLMA-
und SCS-FeId verwendet, um die Inhalte der Akkumulatoren der lokalen Prozessoren Pl, P2 und P3 auf den
D-Bus 23 bedingt zu plazieren, in die lokalen Speicher 24,25,26 und 28 einzuschreiben und die statischen
Steuervariablen SCl — SC7, wie oben im Zusammenhang mit Tabelle 4 erläutert, zu setzen.
steuert die globale aufgeschobene Aktion durch eine Wahl zwischen den DACT- und DACF-Adressen in
der Steuertabelle der aufgeschobenen Aktion von F i g. 7 in Übereinstimmung mit der von dem DADS-FeId
ausgewählten logischen Funktion.
Wie ersichtlich, werden die oben angeführten Entscheidungen durch die binären Zustände der Entscheidungspunkte in Übereinstimmung mit der ausgewählten logischen Funktion durchgeführt. Die Zentraleinheit 10
verwendet 24 statische Variable und 16 dynamische Variable, die wahlweise als Eingänge an die logischen
Funktionen angelegt werden, wobei die Variablen oben in F i g. 4 angegeben sind. Die statischen Variablen
besitzen Werte, die vor dem Start eines Mikrozyklus vorhanden sind und während mehrerer Mikrozyklen
vorhanden sein können. Die dynamischen Variablen werden während eines Mikrozyklus berechnet, etwa bei fez
des 100 Nanosekundenzyklus, wobei der Ergebnisentscheidungspunkt einen Wert bei ungefähr & benötigt
Generell könnten die Logikfunktionen für die Zentraleinheit 10 als Logik mit direkten Zugriff ausgeführt
werden, wobei die benötigten Variablen hiermit fest verdrahtet sind.
Um sowohl eine Flexibilität als auch die Wirtschaftlichkeit der Hardware zu erreichen, werden die logischen
Funktionen der Entscheidungslogik 40 dadurch berechnet, daß die Wahrheitstabellen der Funktionen in Speichern gespeichert werden, die als Logikfunktionsrechuer bezeichnet sind, und durch Aufsuchen des richtigen
Einganges der Wahrheitstabelle durch Anlegen der Werte der Variablen als Eingänge an die Adreßleitungen des
Speichers. Der Speicherausgang wird dann zu dem zugeordneten Entscheidungspunkt geleitet Wird z. B.
gewünscht, das »EXKLUSIV ODER« einer statischen Variablen SVl und einer dynamischen Variablen DVl zu
berechnen, wobei F = SVl · DVl + SVl · DVl, so lautet die Wahrheitstabelle für diese logische Funktion:
SVl
0 1
DVl
0 1 1 0
Diese Tabelle kann folglich in einem 4-Wort-zu-1-Bit-Speicher gespeichert sein, so daß die Inhalte des
Speichers sind:
ADRESSE
INHALTE
0 0
0 1
1 0 1 1
0
1
1
0
Folglich ist, wenn die Variablen SVl und DVl an die Adreßleitungen des Speichers angelegt sind, der Wert der
Ausgangsleitung gleich dem Wert der Funktion F. In einem einzelnen Speicher sind viele solche Wahrheitstabellen gespeichert, wobei die Adreßleitungen niedriger Ordnung mit den Steuervariablen und die Adreßleitung
höherer Ordnung mit den Steuerspeicherfeldern, die zur Auswahl der zu errechnenden Funktion benutzt
werden, verbunden sind.
Da die statischen Variablen zu Beginn des Mikrozykluses erhältlich sind und die dynamischen Variablen nur
bis zum Ende des Mikrozyklus erhältlich sind, kann die Geschwindigkeit der Entscheidungslogik 40 durch Falten
der Wahrheitstabelle für die logische Funktion in dem Speicher vergrößert werden, so daß sie breiter ist als das
oben beschriebene 1 Bit Das Speicherwort kann dann in Abhängigkeit nur von den statischen Variablen gelesen
werden, wobei die Auswahl zwischen den Auslesebits des durch die statischen Variablen adressierten Wortes
durch die dynamischen Variablen ausgeführt wird. Folglich könnten die Speicherinhalte in dem obigen Beispiel
wiefolgtsein: ADRESSE INHALTE
DVl =»1« -DVl =»0«
Hierbei wird es als günstig beurteilt, daß das Lesen des Speichers in Übereinstimmung mit den statischen
Variablen 2 Informationsbits liefert und daß die dynamische Variable dazu verwendet wird, auszuwählen,
welches der beiden Bits das richtige ist. Dies erlaubt, daß der Speicher gelesen wird, bevor die dynamische
Variable erhältlich ist, wodurch sich das Speicherlesen mit der Errechnung der dynamischen Variablen überlappt, wodurch die Geschwindigkeit des Entscheidungsnetzwerkes vergrößert wird.
Im folgenden wird auf F i g. 8, die aus den F i g. 8a—b zusammengesetzt ist, Bezug genommen, in der die in der
Zentraleinheit 10 verwendete Entscheidungslogik 40 dargestellt ist. Die überall in der Maschine verwendeten 24
ω statischen Variablen sind so dargestellt, als seien sie in einem 24-Bit-Pufferspeicher 110 gesammelt, wobei jedes
Bit den Momentanzustand der hierzu zugeordneten statischen Variablen liefert. In ähnlicher Weise sind die in
der Zentraleinheit 10 benutzten 16 dynamischen Variablen so dargestellt als seien sie in dem 16-Bit-Pufferspeicher 111 zusammengefaßt. Die 24 Ausgänge des Pufferspeichers 110 sind in 6 Gruppen von jeweils 16 Ausgängen zusammengefaßt und werden als Eingang an sechs l-aus-16-Multiplexers 112 angelegt, die als Selektoren
der statischen Variablen verwendet werden. Die Gruppen der 16 Eingänge der statischen Variablen zu jedem
der Multiplexer 112 sind geordnet, wodurch jede statische Variable als Eingang zu mindestens einem der
Multiplexer angelegt ist, wobei zur Bequemlichkeit in Übereinstimmung mit der Verwendung der Variablen
einige der Variablen an mehr als einen Multiplexer angelegt sind. Die Auswahl-Bit-Eingänge zu den entspre-
chenden Multiplexor! 112 werden von den Auswahlfeldern der statischen Variablen SVO-SV5 des Mikrobefehles
geliefert Folglich liefern die 4-Bit-Auswahlfelder SVO-SV5 während jedes Mikrozyklusses 6 statische
Variable SV0-SV5, die aus den 24 statischen Variablen, die von dem Pufferspeicher 110 geliefert werden,
ausgewählt werden.
In ähnlicher Weise werden die 16 dynamischen Variablen aus dem Pufferspeicher 111 als Eingänge zu sechs
i-aus-16-Multiplexern 113 geliefert die als Selektoren der dynamischen Variablen verwendet werden. Die
4-Bit-Auswahleingänge der Multiplexer 113 sind entsprechend verschaltet um die Auswahlfelder DVO-DV5
der dynamischen Variablen von dem Mikrobefehl zu empfangen. Folglich wählen während jedes Mikrozykluses
die Auswahlfelder der dynamischen Variablen 6 dynamische Variablen DVo-DVs aus den 16 von dem Pufferspeicher
111 gelieferten dynamischen Variablen aus, zur Anwendung als Eingänge zu den in der Maschine
verwendeten logischen Funktionen.
Die Entscheidungslogik 40 enthält 6 Logikfunktionsrechner 114, die als LFCO-LFC5 bezeichnet sind. Jeder
der Logikfunktionsrechner 114 enthält einen 64-Wort-zu-4-Bit-Wortspeicher zum Speichern von 16 logischen
Funktionen mit 4 Variablen, die aus 2 statischen und 2 dynamischen Variablen bestehen. Folglich benötigt die
Adressierung jedes der Logikfunktionsrechner 114 einen 6-Bit-Adreßeingang. Die 4 signifikantesten Adreßeingänge
werden zur Auswahl der einen benötigten von 16 gespeicherten Logikfunktionen verwendet und diese 4
Adreßeingänge zu den 6 Logikfunktionsrechner LFCO— LCF5 werden von den entsprechenden Logikfunktionscechnersteuerfeldern
LFCO—LFC5 des Mikrobefehles geliefert Die von den Selektoren 112 der statischen
Variablen gelieferten statischen Variable". SV0—SV5 werden, wie dargestellt, mit den beiden letzten signifikanten
Adreßeingangsbits des Logikfunktionsrechners 114 verbunden, wobei der Ausgang jedes der Selektoren 112
der statischen Variablen mit zwei verschiedenen Adreßeingängen des Logikfunktionsrechners 114 zur besseren
Flexibilität verbunden ist Folglich liefert jeder der Logikfunktionsrechner LFCO—LCF5 einen 4-Bit-Ausgang,
der das Ergebnis des Anlegens der 2 ausgewählten statischen Variablen SV an die Logikfunktion, die durch das
Logikfunktionsauswahlfeld LFC ausgewählt wurde, dargestellt Jedes der Ausgangsbits aus den Logikfunktionsrechnern
ist durch eine Legende mit 2 Ziffern bezeichnet, wobei die erste Ziffer den einzelnen Logikfunktionsrechner
und die zweite Ziffer die Bitzahl des Ausganges darstellt
Bezugsnehmend auf Fig.8 werden die Ausgänge der Logikfunktionsrechner 114 an 12 Entscheidungs- und
Funktionswertselektoren 115 bis 126 (gezeigt in Fig.8a) angelegt die, in Abhängigkeit von ausgewählten Bits
des Mikrosteuerwortes und der ausgewählten dynamischen Variablen die entsprechenden Entscheidungspunkte
DPO-DPI 1 liefern. Der Entscheidungs- und Funktionswertselektor 115 besteht aus einem Entscheidungsselektor
127, der aus vier l-aus-4-Multiplexern besteht, die Eingangssignale von 4 der Logikfunktionsrechner 114
erhalten. Die Eingänge der Multiplexer 127 werden gemeinsam durch das 2-Bit-JDS-Feld des Mikrosteuerwortes
ausgewählt Wie durch die Legenden angezeigt wird der entsprechende Eingang für jeden der Multiplexer
127 durch die 4 Ausgangsbit eines der Logikfunktionsrechner 114 geliefert. Der Entscheidungsselektor 127
empfängt daher die Ausgänge von den Logikfunktionsrechnern LFCO—LFC3, wobei er die Auswahl zwischen
ihnen auf der Basis des Wertes des JDS-Feldes trifft
Die 4-Bits des ausgewählten Logikfunktionsrechners werden als Eingänge zu einem Funktionswertselektor
128 angelegt der aus einem l-aus-4-Multiplexer besteht wobei dessen Ausgang den Entscheidungspunkt 0
liefert Die Auswahl der 4 Eingänge des Multiplexers 128 wird von den dynamischen Variablen DV0 und DV4 aus
den Selektoren 113 der dynamischen Variablen geliefert Folglich wird der Ausgang eines der Logikfunktionsrechner
LFCO—LFC3 durch das JDS-FeId ausgewählt, dessen Logikfunktionsrechnerausgang in Übereinstimmung
mit den ausgewählten statischen Variablen geliefert wird und wobei der Endwert des Entscheidungspunktes
0 dann durch die ausgewählten dynamischen Variablen bestimmt ist Folglich liefert der Entscheidungs- und
Funktionswertselektor 115 in Abhängigkeit von dem JDS-FeId den Wert des Entscheidungspunktes 0, der die
tatsächliche Verzweigung der Zentraleinheit 10 steuert.
In gleicher Weise werden die Werts der übrigen Entscheidungspunkte DPI — DPI 1 unter der Steuerung der
Mikrosteuerwortfelder bestimmt, die durch die Legenden bezeichnet sind, um die obige im Zusammenhang mit
diesen Feldern und Entscheidungspunkten erläuterte Möglichkeit der Entscheidungssteuerung vorzusehen.
Weitere Einzelheiten der Anwendung dieser Felder und Entscheidungspunkte werden weiter unten erläutert.
Als Beispiel für den Betrieb der Entscheidungslogik 40 sei eine Situation mit 2 statischen Variablen S und T
und 2 dynamischen Variablen D und E betrachtet Wenn die gewünschte Funktion F = (S V T) Λ (D V E) ist und
diese Funktion als dritte durch LFC3 berechnete Funktion gespeichert ist dann hätte der LFC3-programniierbare
Nur-Lesespeicher folgende Inhalte:
Wortadresse | S | T | Inhalt | Bit | Bit | Bit |
Bit | 2 | 1 | 0 | |||
LFC 3 | 3 | |||||
= OJ IE = U IE=O
0011, 00 0 0 0 0
0 0 1 1, 0 1 0 1 1 1
0 0 1 1, 1 0 0 1 1 1
0 0 1 1, 1 1 0 0 0 0
3. Funktion
Die S- und T-Bits sind die Adreßbus niedriger Ordnung des Speichers. Folglich, wenn S = 1 und T-O, wird
der Speicherausgang zu 0111. Die D- und E-Bits steuern dann, welcher Wert (I oder 0) an dem Entscheidungspunkt erhalten wird. Wenn entweder D oder E gleich 1 sind, dann wird eine 1 zu dem Entscheidungspunkt
geleitet. Sind D und E gleich 0, dann wird eine 0 zu dem Entscheidungspunkt geleitet In der Tabelle sind 16
Zellen vorgesehen, die mit den 16 Spalten einer herkömmlichen Darstellung einer Wahrheitstabelle mit 4
Eingangsvariablen und der gegebenen Funktion übereinstimmen. Folglich ist es als günstig anzusehen, daß,
während der Speicher in Übereinstimmung mit den Funktions- und den statischen Variablen adressiert ist, die
dynamischen Variablen für den abschließenden Weiterleitungsprozeß errechnet werden, wenn das Wort aus
dem Logikfunktionsrechner-PROM verfügbar ist.
Es sei darauf hingewiesen, daß weder eine binäre 1 noch eine binäre 0 als Variable in der Zentraleinheit 10
vorgesehen ist. Allerdings können die Logikfunktionsrechner 114 so codiert sein, daß »nicht wachsam«-Situationen
(«»don't care« situations) zugelassen sind, wenn weniger als 4 Variable bei der Errechnung einer logischen
Funktion verwendet werden. Beispielsweise, wenn gewünscht ist, die Funktion F -= S λ D zu errechnen, so kann
der programmierbare Nur-Lesespeicher zur Lieferung dieser Funktion wie folgt aufgebaut sein:
Wortadresse | S | T | Inhalt | Bit | Bit | Bit |
Bit | 2 | 1 | 0 | |||
LFC | 3 | |||||
0
0
0
0
0 0 1 1
5. Funktion
=o
e = i
e=o
e = ι
Folglich ist die Funktion das 2 Eingangs-UND, wobei die Variablen T und E ignoriert werden. Es sei darauf
hingewiesen, daß die Entscheidungsselektoren für DPI und DP2 (die errechneten Vektorsprungbits) als einen
Eingang eine logische 0 verfügbar haben, um zu vermeiden, daß ein Logikfunktionsrechner zur Lieferung dieser
primitiven jedoch allgemein verwendeten Funktion angewandt wird. Die logische 0 wird auf einer Leitung 129
(Fig.8a) zu dem 4. Eingang jedes der Entscheidungs- und Funktionswertselektoren 116 und 117 geliefert, die
DPI bzw. DP2 liefern.
Obwohl die Entscheidungslogik 40 so beschrieben wurde, daß zuerst die l^ogikfunktion in Übereinstimmung
mit den statischen Variablen ausgewählt wird und dann die Logikfunktionsausgangswerte mittels der dynamische
Variablen weitergeleitet werden, so kann die Entscheidungslogik 40 alternativ auch so ausgeführt sein, daß
sowohl statische und dynamische Variable verwendet werden, die Adressierung des Logikfunktionsrechners
durchzuführen, und zwar unter Verwendung von 1 Bit weiten Proms. Die oben beschriebene Anordnung wird
jedoch aufgrund der ermöglichten Geschwindigkeitsvorteile bevorzugt
Mehrdimensionale Entscheidung und Steuerung
Die Zentraleinheit 10 besitzt unter der Steuerung des im Zusammenhang mit Fig.4 dargestellten und
beschriebenen Mikrobefehlsformates die Fähigkeit drei verschiedene Arten von Entscheidungen während jedes
Mikrozykluses durchzuführen. Die Zentraleinheit 10 besitzt die Fähigkeit tatsächliche Verzweigungen, Phantomverzweigungen
und bedingte aufgeschobene Aktionen durchzuführen.
Bei einer tatsächlichen Verzweigung wählt DPO, das durch JDS bestimmt ist aus, ob entweder NAT oder NAF
als Adresse des nächsten Mikrobefehles abgerufen und ausgeführt wird. Wird NAF ausgewählt so wird diese
Adresse ohne Modifikation als Adresse des Steuerspeichers 36 für den nächsten Zykius verwendet Wird NAT
gewählt so können ihre beiden Bits niederer Ordnung durch DPI und DP2 modifiziert werden, was durch VDSO
bzw. VDSl ausgewählt wird, um die Vektorsprünge durchzuführen. Zusätzlich kann NAT mit einem Vektor
modifiziert werden, der von dem Inhalt des XF-Feldes abhängt wie oben im Zusammenhang mit Tabelle 1
erläutert
Die Zentraleinheit 10 besitzt weiterhin die Fähigkeit Phantomverzweigungen durchzuführen, wobei
DP3-DP6 für die lokalen Prozessoren 17,18,19 und 27 entweder das LPFT- oder LPFF-FeId auswählen, das
dem lokalen Prozessor zugeordnet ist um die Funktionsbits zur Steuerung dessen Betriebes zu liefern. Die
DP3—DP6 Entscheidungen werden unter der Steuerung der zugeordneten PDS-Felder durchgeführt Die
Möglichkeit der Phantomverzweigung eliminiert die Notwendigkeit, viele tatsächliche Verzweigungen, die
andernfalls benötigt würden, durchzuführea Aufgrund der beschriebenen 3-Wege-Mikrobefehlsüberlappung isi
es wünschenswert tatsächliche Verzweigungen zu vermeiden. Die 3-Wege-Mikrobefehlsüberlappung kann zi
Leer-Mikrozyklen (wasted mcro cycles) führen, wenn eine tatsächliche Verzweigung durchgeführt wird, da da!
Abrufen des Mikrobefehles mit der Ausführung des Mikrobefehles überlappt ist Folglich kann der ausgeführte
Befehl eine Bedingung errechnen, die anzeigt daß eine Verzweigung durchgeführt werden sollte, wobei jedocr
der nächste Mikrobefehl bereits abgerufen ist und ausgeführt werden muß. Die Fähigkeit zur Phantomverzwei
gung erlaubt daß zwei verschiedene Wege in einem Befehl codiert sind, woraus sich die Notwendigkeit einer
Befehl zu überspringen, wenn eine tatsächliche Verzweigung vorgenommen wird, erübrigt. Folglich schafft die
Phantomverzweigung die Möglichkeit, eine von zwei möglichen Funktionen für jeden lokalen Prozessor auszuführen,
während des Mikrozyklus n, basierend auf den verhältnismäßig spät aus dem Zyklus n-1 erhaltenen
arithmetischen Resultaten. Daher hat die Zentraleinheit 10 die Fähigkeit, eine Mikrobefehlssubroutine wirksam
in Abhängigkeit von einer Bedingung auszuführen, ohne daß eine tatsächliche Verzweigung mit dem dazugehörigen
Zeitverlust erforderlich ist. Es wird besonders geschätzt, daß die Möglichkeit zur Phantomverzweigung
wesentlich zur Geschwindigkeit der Zentraleinheit 10 beiträgt, wodurch eine beachtliche Anzahl von Entscheidungsausführungen
erhalten wird.
Die Zentraleinheit 10 besitzt weiterhin die Fähigkeit, aufgeschobene Aktionen in Abhängigkeit von Bedingungen
durchzuführen, aufgrund bedingter Steuerung der Weiterleitung der Daten, der in der Maschine errechneten
Variablen und Bedingungen sowie zu und von dem Hauptspeicher 11. Dieses Weiterleiten (routing) wird als
aufgeschobene Aktion (deferred action) bezeichnet, da es in dem Mikrozyklus auftritt, der auf den Zyklus folgt,
in dem der Mikrobefehl, in welchem er spezifiziert war, ausgeführt wurde. Wie oben beschrieben, sind lokale
aufgeschobene Aktionen den lokalen Prozessoren 17, 18, 19 und 27 zugeordnet, die durch das DDS-FeId
gesteuert werden. Im einzelnen enthält die Steuerung der lokalen aufgeschobenen Aktion das Plazieren des
Inhaltes des Akkumulators eines ausgewählten lokalen Prozessors auf den D-Bus 23 unter der Steuerung des
OUT-Feldes. Eine zusätzliche lokale aufgeschobene Aktion umfaßt das Schreiben des Wertes des D-Bus 23 in
den lokalen Speicher eines speziellen lokalen Prozessors unter der Steuerung des WLM-Feldes. Eine weitere
lokale aufgeschobene Aktion enthält das Laden des errechneten Bedingungswertes, um die Entscheidung der
aufgeschobenen Aktion für den speziellen lokalen Prozessor durchzuführen für eines von sieben Flip-Flops der
statischen Variablen in den Steuerkreisen 41. Das SCS-FeId spezifiziert die einzelne statische Variable, die, wie
oben im Zusammenhang mit F i g. 4 erläutert, gesetzt werden soll.
Einige aufgeschobene Aktionen sind globaler Art. Diese Aktionen wurden oben im Zusammenhang mit F i g. 7
erläutert und stehen unter der Steuerung des DADS-Feldes. Folglich wählt das DADS-FeId (deferred action
decision selector) die Aktion aus, die mit arithmetischen Ergebnissen ausgeführt werden soll. Das DDS, das lokal
ist, wählt einen von drei Prozessoren Pl, P2 und P3 aus, eine Quelle für den D-Bus 23 zu sein und DADS, das
global ist, wählt eine Bestimmung aus, die zum Beispiel die verschiedenen in F i g. 5 dargestellten und oben im
Zusammenhang mit dieser F i g. erläuterten Register enthält.
Im folgenden wird auf F i g. 9 Bezug genommen, in der ein Flußdiagramm dargestellt ist, das die Ausführung
eines Mikrobefehles darstellt, wobei die einzelnen hierdurch gesteuerten Entscheidungen abgebildet sind. Das
Flußdiagramm der F i g. 9 stellt den Mikrobefehl dar, der während des Mikrozyklus η ausgeführt werden soll.
Der Mikrobefehlseingangspunkt ist durch ein Oval 140 dargestellt, der mit einem Entscheidungsrhombus 141
verbunden ist. Der Entscheidungsrhombus 141 stellt die Entscheidung dar, die durch DPO in Übereinstimmung
mit dem von dem JDS-FeId des Mikrobefehies ausgewählten Logikfunktionsrechners ausgeführt wird. Der
Entscheidungsrhombus 141 wählt die Adresse des während des Zyklus η + 1 auszuführenden Mikrobefehles
aus. Eine Verzweigung der DPO-Entscheidung führt zu dem NAF-Adressenoval 142, während die andere
Verzweigung zu dem NAT-Adressenoval 143 führt Wenn die »NEIN«-Verzweigung des Entscheidungsrhombus
141 gewählt wird, so wird das Adressenfeld NAF des Mikrobefehles als Adresse des nächsten Mikrobefehies
ohne weitere Bedingung ausgewählt Wird die »JA«-Verzweigung des Entscheidungsrhombus 141 gewählt, so
wird das Adressenfeld NAT des Mikrobefehles als Adresse des nächsten Mikrobefehles ausgewählt, wobei das
NAT-FeId durch DPI und DP2 modifiziert werden kann in Übereinstimmung mit der durch die VDSO bis
VDSl-Felder ausgewählten logischen Funktionen, um eine steuerbare 4-Wege-Verzweigung aus dem Oval 143
auszuwählen, wie oben erläutert wurde. Die Adresse NAT kann auch in Übereinstimmung mit dem XF-FeId (in
F i g. 9 nicht dargestellt) modifiziert werden, wie oben im Zusammenhang mit Tabelle 1 erläutert wurde.
Ein Weg aus dem Entscheidungsrhombus 141, der »immer« genommen wird, führt zu Auswahlrhomben 144
bis 147 der Phantomverzweigungsentscheidung. Diese Rhomben stellen die Phantomverzweigungsentscheidungen
dar, die für die lokalen Prozessoren Pl, P2, P3 und P4 geliefert werden in Übereinstimmung mit den
entsprechenden binären Entscheidungspunkten DP3—DP6 unter der Steuerung der Logikfunktionsrechner, die
durch die entsprechenden PDS-Felder des Mikrobefehles ausgewählt werden. Die »JA«- und »NEIN«-Verzweigungen
aus jedem der Rhomben 144—147 führen zu zwei Aktionsblöcken, die mit einfach bzw. zweifach
gestrichenen Bezugszeichen entsprechend den Bezugszeichen des zugeordneten Entscheidungsrhombus bezeichnet
sind. Der Aktionsbiock, der mit der »JA«-Verzweigung des Phaniömverzweigurigsauswahlselektörs
führt, bezeichnet das LPFT-Funktionsfeld des Mikrobefehles und der Aktionsblock, der der »NEIN«-Verzweigung
zugeordnet ist, bezeichnet dessen »LPFF-Funktionsfeld. Folglich wird, in Übereinstimmung mit der in den
Rhomben 144—147 ausgeführten binären Entscheidung, der entsprechende zugeordnete lokale Prozessor
Pl _ P4 gesteuert, um die durch das ausgewählte der LPFT- oder LPFF-Felder spezifizierte Funktion auszuführen.
Das Mikrobefehlesflußdiagramm der F i g. 9 enthält weiterhin eine Linie zur Darstellung des Wertes auf dem
B-Bus 22, wie durch die Legende angedeutet, wobei dieser Wert an den B-Eingangsanschluß der lokalen
Prozessoren Pl, P2 und P3 angelegt ist «>
Die Funktionsblöcke für jeden der lokalen Prozessoren Pl-P4 führen zu entsprechenden geschwungenen
Klammern 148-151, die die Ausgangssteuerung der bedingten aufgeschobenen Aktion entnahm Die Entscheidungsklammem
148—151 steuern die Ausgabe und das Weiterleiten von Daten aus den lokalen Prozessoren in
Übereinstimmung mit den entsprechenden binären Entscheidungen an den Entscheidungspunkten DP7—DPlO
unter der Steuerung der von den zugeordneten DDS-Feldem ausgewählten Logikfunktionsrechnern. Die »JA«-
und »NEIN«-Verzweigungen aus jeder der Entscheidungsklammern 148—151 führen zu zwei Blöcken der
aufgeschobenen Aktion, die mit einfach bzw. zweifach gestrichenen Bezugszeichen entsprechend den der
Entscheidungsklammer zugeordneten Bezugszeichen. Die Entscheidungsklammern 148—151 und die zugeord-
neten Aktionsblöcke steuern wahlweise die Ausgabe und das Weiterleiten von Daten aus den lokalen Prozesso-
:: ren und können dazu verwendet werden, den Ausgang des zugeordneten lokalen Prozessors Pl, P2 oder P3 zu
'ß dem D-Bus 23 in Bereitschaft zu setzen oder können bewirken, daß der dem lokalen Prozessor zugeordnete
fl lokale Speicher in Übereinstimmung mit dem Wert auf dem D-Bus 23 beschrieben wird. Die Entscheidungsklam-
; 5 mern 148—151 und die zugeordneten Aktionsblöcke können auch dazu verwendet werden, eine der sieben
Hardware-flags in den Steuerkreisen 41 zu setzen oder zu löschen, wobei die Flags später abgefragt werden
: können, um zu erlauben, daß Entscheidungen auf dem Ausgeben der einzelners DDS-Entscheidung basieren.
L Das Mikrobefehlsflußbild enthält weiterhin eine Entscheidungsklammer 152, die die binäre Entscheidung
% DPI 1 darstellt, in Übereinstimmung mit dem von dem DADS-FeId ausgewählten Logikfunktionsrechner. Die
! to Entscheidung 152, die die Entscheidung der globalen aufgeschobenen Aktion liefert, wählt die Aktion aus, die mit
|.: den arithmetischen Resultaten ausgeführt werden soll, in Übereinstimmung mit den Aktionsblöcken 152' und
p; 152", die die Auswahl der Adressen DACT und DACF für die Steuertabelle der aufgeschobenen Aktion
ji; darstellen, die oben im Zusammenhang mit F i g. 4 erläutert wurde. Folglich sei dar?"f hingewiesen, daß DDS,
|,i« das lokal ist, einen der drei Prozessoren Pl, P2 und P3 in Übereinstimmung mii aen Entscheidungsklammern
ρ is 148—150 auswählen kann, eine Quelle für den D-Bus 23 zu sein, und das DADS-FeId, das global ist, eine
jT Bestimmung in übereinstimmuni; mit der Entscheidungsklammer 152 auswählt. Die Bestimmungen sind die
}| verschiedenen in F i g. 5 dargestellten und oben erläuterten Register.
P Obwohl die Entscheidungsklammern 148—152 der aufgeschobenen Aktion in dem Flußdiagramm für den
S während des Mikrozyklus η ausgeführten Mikrobefehl dargestellt sind, steuern die DDS- und DADS-Felder
ψ 20 tatsächlich die Aktion, die mit den während des Zyklus n— 1 erhaltenen Ergebnissen durchgeführt wird. Aus
II diesem Grunde sind diese Entscheidungsklammern mit einem schraffierten Teil in dem Flußdiagramm darge-
ψ stellt. Der Bequemlichkeit halber sind Entscheidungsklammern 148'"—152'" vorgesehen, um die bedingten
||| Ausgangssteuerentscheidungen aus den Klammern 148—152 des vorhergehenden Mikrozykluses zu wiederholen.
Wie oben beschrieben, stellt das Flußdiagramm der F i g. 6 den während des Zyklus η durchzuführenden
Mikrobefehl dar. Es sei darauf hiingewiesen, daß am Ende des Zyklus π — 1 alle zwölf Entscheidungspunk*.··.
DPO-DPIl Werte vorliegen haben, so daß die hierzu zugeordneten Entscheidungen ausgeführt werden können.
Die Entscheidungen, die DPO- DP6 zugeordnet sind, werden während des Mikrozyklus π ausgeführt und
die Entscheidungen, die DP7—DPIl zugeordnet sind, werden während des Mikrozyklus η + 1 durchgeführt
Folglich sind in den gesamten Entscheidungen drei Zyklen, nämlich π — 1, η und η + 1 enthalten. Dies kann als
Fähigkeit zur drei-dimensionalen Entscheidung angesehen werden.
Im folgenden wird auf Fig. 10 Bezug genommen, in der ein Zeitdiagramm der simultanen und sequentiellen
Operationen dargestellt ist, die in der Zentraleinheit 10 während eines Mikrozyklus auftreten. Die von den
Legenden bezeichneten Zeitintervalle sind in Nanosekunden angegeben und folglich wird darauf hingewiesen,
daß die Zentraleinheit 10 mit einem 100 Nanosekunden Mikrozyklus arbeitet Wie durch die Legenden angedeutet,
sind die Entscheidungspunkte DPO- DPIl zum Ende des vorhergehenden Mikrozyklus gültig und werden
durchgegeben und verriegelt zur Verwendung in dem laufenden Mikrozyklus.
Drei-Wege-Mikro-Überlappung
Um die Prozessorgeschwindigkeit wesentlich zu vergrößern, wurden die Zentraleinheit 10 und das in dem
Steuerspeicher 36 gespeicherte Mikrorepertoire entsprechend ausgebildet, wodurch die Ausführung der Mikrobefehle
mit einer »Tiefe« von drei überlappt wurde. Primär treten die drei nachfolgenden Aktivitäten in einem
einzigen Mikrozyklus auf, jedoch im Hinblick auf drei verschiedene Mikrobefehle.
1. Ausführen der aufgeschobenen Aktion für den Mikrobefehl π — 1.
2. Ausführen der Funktionen des lokalen Prozessors für den Mikrobefehl n.
3. Lesen des Mikrobefehles π + 1 aus dem Steuerspeicher 36. Zusätzlich Ausführen der Entscheidung für die
aufgeschobene Aktion für den Mikrobefehl n.
Die relative Zeiteinteilung für diese Aktionen während eines Mikrozykluses ist in F i g. 11 dargestellt
in Fig. 12 sind drei aufeinanderfolgende Mikrozyklen dargestellt, die die funktioncHc Überlappung der Zentraleinheit 10 zeigen. Es sei darauf hingewiesen, daß während des Mikrozyklus 3 der Mikrobefehl π + 2 abgerufen wird, das Rechnen für den Mikrobefehl π + 1 auftritt und die von dem Mikrobefehl η erhaltenen Ergebnisse gespeichert werden. Obwohl die Makrobefehle nicht überlappt sind, tritt ein Vorabrufen des nächsten Makrobefehles auf, wie oben im Zusammenhang mit der Steuertabelle der aufgeschobenen Aktion der F i g. 7 beschrieben, bei der die Zeiteinteilung des »FETCH NI«-Bit das Vorabrufen steuert
in Fig. 12 sind drei aufeinanderfolgende Mikrozyklen dargestellt, die die funktioncHc Überlappung der Zentraleinheit 10 zeigen. Es sei darauf hingewiesen, daß während des Mikrozyklus 3 der Mikrobefehl π + 2 abgerufen wird, das Rechnen für den Mikrobefehl π + 1 auftritt und die von dem Mikrobefehl η erhaltenen Ergebnisse gespeichert werden. Obwohl die Makrobefehle nicht überlappt sind, tritt ein Vorabrufen des nächsten Makrobefehles auf, wie oben im Zusammenhang mit der Steuertabelle der aufgeschobenen Aktion der F i g. 7 beschrieben, bei der die Zeiteinteilung des »FETCH NI«-Bit das Vorabrufen steuert
Es sei darauf hingewiesen, daß die überlappte Betriebsweise der Zentraleinheit 10 nicht durch Überspringen
von Zyklen herabgesetzt wird, wenn bedingte Sprünge von Mikrobefehlen ausgeführt werden, und zwar wegen
des bedingten Abrufens des nächsten Mikrobefehles in einer tatsächlichen Verzweigung unter der Steuerung
von DPO, DPI und DP2, aufgrund der phantomverzweigten bedingten Auswahl der richtigen Funktion, die durch
die lokalen Prozessoren unter der Steuerung von DP3—DP6 ausgeführt werden sollen und aufgrund der in
aufgeschobener Aktion vorgenommenen bedingten Speicherung von Werten, die während des vorhergehenden
Mikrozyklus unter Steuerung von DP7—DPI 1 berechnet wurden. Folglich wird die überlappte Ausführung (von
Befehlen) mit einem minimalen Zeitnachteil aufgrund der bedingten Sprünge und Verzweigungen durchgeführt
Jeder Mikrobefehl enthält die Adreßinformation NAF und NAT der tatsächlichen Verzweigung, die Phantomverzweigungsfunktionswahlen
LPFT und LPFF sowie die oben erläuterten Felder der aufgeschobenen Aktion, so daß die Zentraleinheit kontinuierlich tatsächliche Verzweigungen, Phantomverzweigungen und bedingte
Verzweigungen der aufgeschobenen Aktion in einem in Fig. 12 dargestellten, durchlaufenden Rhythmus ausführt,
wodurch die Möglichkeit übersprungener Zyklen vermindert wird.
Daher wird besonders geschätzt, daß die Phantomverzweigung dazu benützt werden kann, die Notwendigkeit
tatsächlicher Sprünge zur Ausführung zugeordneter Funktionen zu vermeiden und daß sie zusätzlich Zyklen
spart. Die bedingte aufgeschobene Aktion vermeidet ebenfalls Leerzyklen, wenn tatsächliche Sprünge ausgeführt
werden, da sie erlaubt, daß ein Sprung zu irgendeinem Mikrobefehl vorgenommen wird, ohne daß ein
Leerzyklus benötigt wird, um auf das Abspeichern errechneter Variabler zu warten. Alle Entscheidungen, die zu
einer Aktion in dem Mikrozyklus η führen, werden am Ende des Mikrozyklus η — 1 getroffen, basierend auf der
Information in dem Mikrozylus, der während des Mikrozyklus η — 2 aus dem Steuerspeicher 36 ausgelesen
wurde. Die während des Mikrozyklus η durchzuführende aufgeschobene Aktion wird in dem Mikrozyklus
spezifiziert, der während des Mikrozyklus π — 2 aus dem Steuerspeicher 36 ausgelesen und während des
Mikrozyklus η — 1 ausgewertet wurde. Die relevanten Steuerspeicherfelder DACT, DACF, OUT, WLM und
SCS werden während des Zyklus η — 1 zur Verwendung während des Zyklus η in einer weiter unten zu
beschreibenden Weise aufbewahrt
F i g. 13 zeigt ein Beispiel der Möglichkeit zur tatsächlichen Verzweigung und zur Phantomverzweigung der
Zentraleinheit 10. Die tatsächliche Verzweigung ist in einem ausgezogenen Rhombus dargestellt, während die
vier Phantomverzweigungen als gestrichelt ausgezogene Rhomben dargestellt sind. Die Phantomverzweigung
wird durch Lieferung des LPFT- und LPFF-Paares des ALU-Funktionsbitsatzes in dem Steuerspeicher 36 für
jeden lokalen Prozessor und durch Auswahl der richtigen Funktionsbits am Ende des Zyklus η — 1 ausgeführt.
Fig. 14 zeigt weitere Zeiteinteilungseinzelheiten des Effektes der Drei-Wege-Überlappung. Es werden die
Haupttätigkeiten, die von der Zentraleinheit 10 bei Ausführung eines Mikrobefehles η durchgeführt werden,
über die drei Mikrozyklen der F i g. verfolgt Es sei darauf hingewiesen, daß während der ersten Hälfte des
Mikrozyklus 3 drei Mikrooperationen gleichzeitig ausgeführt werden: der Mikrobefehl η + 1 wird von dem
Steuerspeicher 36 abgefragt; es werden Berechnungen im Namen des Mikrobefehles η ausgeführt; und es wird
eine aufgeschobene Aktion wie z. B. das Speichern in GRS und LM im Namen des Mikrobefehles π — \
durchgeführt Diese gleichzeitige Befehlsausführung zeigt grundsätzlich die Drei-Wege-Mikroüberlappung.
Es sei darauf hingewiesen, daß die SV-, DV- und LFC-Mikrobefehlsfelder durch einen Mikrobefehl ersetzt
werden. Obwohl diese Felder die Ergebnisabspeicherung für den Mikrobefehl η steuern, sind die Bits selbst in
dem Mikrobefehlsteuerspeicherwort enthalten, das dem Mikrobefehl η + \ zugeordnet ist Wie oben erläutert,
ist dies der Grund dafür, daß die DDS- und DADS-Felder auf dem Mikrobefehlsflußdiagramm der F i g. 9
gestrichelt dargestellt wurden. Die SV-, DV- und LFC-Felder wählen die statischen Variablen, die dynamischen
Variablen bzw. die Logikfunktionsrechner aus, die zur Bestimmung der binären Werte jedes der Entscheidungspunkte DPO-DPIl verwendet werden. Die statischen Variablen werden ausgewählt und die Speicher der
Logikfunktionsrechner werden gelesen, bevor die dynamischen Variablen verfügbar sind. Wie oben erläutert,
minimiert dieses unterschiedliche Behandeln der statischen und der dynamischen Variablen den Einfluß der
Forschreitungszeit der Entscheidungslogik auf die Zykluszeit Ungefähr beim Zeitpunkt (95 haben alle Entscheidungspunkte
DPO-DPIl ihren korrekten Wert erreicht und die nachfolgenden Auswahlen treten auf. Der
einzelne am Ende des Mikrozyklus 2 in F i g. 14 dargestellte Entscheidungspunkt bestimmt:
Aus obigem ist zu entnehmen, daß F i g. 5 eine spezifisch strukturierte Maschine darstellt, die ein Mikrobefehlssteuerwort
aufweist, das ein spezifisches Format hat, wie oben im Zusammenhang mit F i g. 4 erläutert. Die
spezifischen Felder des Mikrobefehlswortes werden aus dem Steuerregister 37 zu den einzelnen Komponenten
der Zentraleinheit 10, wie hier beschrieben, verbunden. Die Zentraleinheit 10 enthält einen Emulator, der in
Abhängigkeit von dem Steuerregister 37 arbeitet, wodurch die lokalen Prozessoren 17,18,19 und 27 simultan
arbeiten in Abhängigkeit von den spezifischen Feldern, wobei, wie oben erläutert, die drei-Wege-überlappte
Betriebsweise vorliegt Die einzelnen erläuterten Operationen, wie tatsächliche Verzweigung, Phantomverzweigung,
aufgeschobenen bedingte Steuerung, Makrobefehlsabrufung und ähnliches werden ebenfalls von den
Steuerfeldern gesteuert, die aus dem Steuerregister 37 stammen.
Ein spezifischer, in den Steuerspeicher 36 geladener Mikrocode bewirkt, daß spezifische Aktionen, wie die
oben erläuterten, auftreten, wobei der speziell gewünschte Makrobefehl in Obereinstimmung mit den in den
Steuerspeicher 36 geladenen Mikroroutinen emuliert wird.
Wie oben im Zusammenhang mit Fig.3 erläutert, ist die Mikro-Software strukturiert, wodurch aufgrund
eines gemeinsamen Mikrobefehles ein Sprung zu einer ausgewählten der Klassenbasismikroroutinen ausgeführt
wird und aufgrund der ausgewählten Klassenbasismikroroutine ein Sprung zu der Mikroroutine für den speziel-
Logisches Signal des | Mikrobefehlsfeld | Mikrobefehl | η | Auswahl |
Entscheidungspunktes | ||||
DPO | JDS | n + 2 | CS Adresse | |
DPI | VDSO | n + 2 | CS Adresse, Bit 2° | |
DP2 | VDSl | n + 2 | CS Adresse, Bit 2' | |
DP3-DP6 | PDS | n+ 1 | Funktionsbits zum ALU-Chip | |
(LPFT gegen LPFF) | ||||
DP7-DP10 | DDS | n ί | a — D-Bus | |
Schreibe LM | ||||
1 | SCS Verriegelungsbit | |||
DPIl | DADS | DACT gegen DACF als entsprechende | ||
DAC-Speicher-Adresse |
ίο
len Makrobefehl ausgeführt wird. Folglich ermöglicht diese Struktur einen höheren Grad von Verschachtelung
(sharing) des Mikrocodes unter den Klassen. Wie oben im Zusammenhang mit Tabelle 11 erläutert, sind die
ausgeführten KJa£ .^nbasen: gemeinsam, Rufe einzelnen Operanden direkt ab, Rufe einzelnen Operanden sofort
ab. Springe größer und dekrementiere, unbedingte Verzweigung, Speichere, Oberspringe und bedingte Verzweigung und Verschieben. Diese Klassenbasen sind entsprechend mit CBO, CB3, CB4, CB5, CB6, CB7, CBl 1 und
CB12 bezeichnet, wobei die zugeordneten binären Bezeichnungen wie in Tabelle 11 aufgeführt, sind.
Die Klassenbasis »gemeinsam« (CBO) ist streng genommen keine Makrobefehlsklassenbasis sondern wird mit
den anderen Klassenbasen durch die BefehJszustandstabelle 38 gesteuert Zur Ausführung der folgenden Makrobefehle, deren Mikroroutinen von den Klassenbasismikroroutinen eingegeben wurden, sind spezifische
Mikroroutinen wie folgt vorgesehen:
Rufe einzelnen Operanden direkt ab (CB3) Rufe einzelnen Operanden direkt ab (CB3i)
Rufe einzelnen Operanden sofort ab (CB4) Springe größer und dekrementiere (CB5)
Unbedingte Verzweigung (CB6)
Speichere (CB7)
Oberspringe und bedingte Verzweigung (CBl 1) Verschiebe (CBl 2)
F i g. 15 zeigt ein Mikrobefehlsflußdiagramm für den Mikrobefehl »gemeinsam«. Dieser Mikrobefehl wird als
erster Mikrobefehl in der Mikroroutine für jeden von der Zentraleinheit 10 emulierten Makrobefehl angesprungen und ausgeführt Wie durch die Legende angedeutet, ist der Mikrobefehl »gemeinsam« dem Mikrozyklus 1
der Emulierungsroutine für den einzelnen betroffenen Makrobefehl zugeordnet Allerdings werden aufgrund
der Mikrobefehlsüberlappung alle in F i g. 15 dargestellten Operationen nicht tatsächlich im ersten Mikrozyklus
ausgeführt Die Zeiteinteilung für die Durchführung der verschiedenen Operationen wurde oben im Zusammenhang mit der in den Fi g. 9 bis 14 dargestellten und im Zusammenhang mit ihnen erläuterten Mikrobefehlsüberlappung diskutiert
Im einzelnen sei angenommen, daß der in F i g. 15 gezeigte Mikrobefehl »gemeinsam« während des Mikrozyklus 1, der in Fig. 12 definiert ist aus dem Steuerspeicher gelesen wird. Der Mikrobefehl »gemeinsam« wird
einmalig mit dem Namen CBO bezeichnet wie in dem mit »SER. NO.« (Serial Number) bezeichneten Kästchen
von Fig. 15 gezeigt Gegen Ende des Zyklus 1 von Fig. 12 wird der Wert, der auf den B-Bus als einer der
Eingänge zu Pl, P2 und P3 plaziert werden soll, abgerufen. Dieses Abrufen tritt während der Zeit auf, die in
F i g. 12 mit GRS LESEN bezeichnet wurde, obwohl im Falle des Mikrobefehles CBO die B-Buswerte nicht von
dem GRS (Mehrzweckregisterstapel) abgerufen werden, sondern von dem Makrobefehlsregister (MIR). Der
einzelne anzulegende B-Buswert ist mit u* bezeichnet und besteht aus dem Wert u des u-Feldes des Makrobefehle?, wie in F i g. 1 gezeigt wobei vier Nullen, die mit der linken Seite verkettet sind (die einen 20-Bitwert
begründen) auf die linke und rechte Hälfte des B-Bus plaziert werden, wie in dem mit B-Buswert bezeichneten
Eingang von Fig. 15 dargestellt Die Auswahl des oben erläuterten B-Buswertes wird durch die BR-, SFT- und
BIS-Felder des Mikrobefehles gesteuert Um u# auszuwählen, muß der SFT-Wert gleich 11 und der BIS-Wert
gleich 00 sein, wie oben in Tabelle 2 gezeigt Das BR Bit sollte auf 0 gesetzt sein, was anzeigt, daß das BIS-FeId
anstelle des Registers BRG benutzt wird.
Der während des Zyklus 2 als B-Eingang für P4 auf den B4-Bus zu plazierende Wert wird ebenfalls während
des »GRS LESEN«-Teiles des Zyklus 1 abgerufen. In diesem Falle muß das A-FeId von dem MIR auf den B4-Bus
plaziert werden, was durch den linken der beiden Funktionsblöcke des lokalen Prozessors für P4 bezeichnet ist.
Die Auswahl des B4-Buswertes wird durch das BBS-FeId des lokalen Steuerfeldes für P4 gesteuert zusammen
mit dem GB-FeId aus der IST-Tabelle, wie in F i g. 9 dargestellt und oben erläutert.
Die jedem lokalen Prozessor an den A-Eingangsanschluß zu liefernden Operanden werden von den mit diesen
lokalen Prozessoren (Pl, P2, P3 und P4) zugeordneten lokalen Speichern abgefragt. Der einzelne abzufragende
Wert ist in einem der Funktionsblöcke des lokalen Prozessors für jeden lokalen Prozessor bezeichnet, wie in
Fi g. 15 gezeigt Die Auswahl dieses Wertes wird ohne Bedingung bestimmt durch die Werte, die in den LMASund LMA-Mikrobefehlsfeldern der lokalen Steuerung plaziert sind, wobei diese Mikrobefehlsfelder jedem
lokalen Prozessor wie oben im Zusammenhang mit Tabelle 5 erläutert zugeordnet sind. Folglich ist die Auswahl
der Operanden als Eingänge zu jedem lokalen Prozessor invariant gegenüber der Tatsache, ob der Mikrobefehl
codiert ist jedoch ist die aufgrund dieses Operanden durchgeführte Funktion in Abhängigkeit von einer Bedingung ausgewählt und zwar auf der Basis des dynamischen Zustandes gewisser Variabler, wenn der Befehl
ausgeführt wird, was oben erläutert wurde und als Fähigkeit zur »Phantomverzweigung« bezeichnet wurde. Der
aufgrund des Mikrobefehles CBO aus dem lokalen Speicher Pl ausgelesene Wert ist ein 40 Bit-Wert, der aus zwei
Konstanten zusammengesetzt ist, deren Bedeutung durch die Adreßdefinition des Sperry Univac-Rechners 1108
bestimmt ist Diese Konstanten sind die Arbeitsspeicher-Bank-Basis-Adresse Bi und die negative Arbeitsspeicher-Bank-Auswahlkonstante plus eins — (B5 + 1). Diese Konstanten werden in den lokalen Speicher von Pl
voreingeladen, so daß Bi in den linken 20 Bits eines gewissen Wortes entsprechend positioniert ist und so daß —
(B5 + 1) in den rechten 20 Bits des gleichen Wortes positioniert ist. Folglich wird beim Lesen dieses Wortes aus
dem lokalen Speicher von Pl der Wert Bi auf der linken Hälfte des Α-Einganges (Al) plaziert werden und der
Wert — (B5 + 1) auf der rechten Hälfte (Ar), was in dem Funktionsblock des lokalen Prozessors für Pl
dargestellt ist
In ähnlicher Weise wird der Eingangswert für den lokalen Prozessor P2 von dem lokalen Speicher von P2
geliefert, so daß die Arbeitsspeicher-Daten-Bank-Basis-Adresse auf der linken Hälfte des Α-Einganges und die
Konstante -20O8 auf der rechten Hälfte liegt Der Α-Eingang für P3 hat die linke Hälfte auf einen Wert gesetzt,
der nur Einsen enthält (AL = (20) »1«) und die rechte Hälfte vollständig auf Nullen gesetzt Der A-Eingangswert,
der zu P4 von dessen lokalen Speicher geliefert wird, ist die GRS-Adressenbasis, die durch das GB-FeId der
IST-Tabelle bestimmt wird, was durch das LMAS-Bit für P4 gesteuert wird, wie in der obigen Tabelle 6
beschrieben.
Wie in Fig. 12 dargestellt, werden am Ende jedes Mikrozyklus Entscheidungen durchgeführt die auf den
statischen und dynamischen Variablen basieren. Die am Ende des Zyklus 1 von Fig. 12 aufgrund des Mikrobefehles CBO von Fig. 15 ausgeführten Entscheidungen werden (in diesem Fall) nur bewirken, daß der nächste
Mikrobefehl abgerufen und ausgeführt wird. Der »Sprungsteuerung«-Teil von Fig. 15 beschreibt, wie der
nächste Mikrobefehl zu bestimmen ist Der Rhombus der Steuerung der tatsächlichen Verzweigung (in F i g. 9
mit 14 bezeichnet), bezieht sich auf das JDS-FeId des Globalsteuerteiles des Mikrobefehles CBO. Die Konstante
»EINS« ist in diesem Rhombus in Fig. 15 dargestellt um anzuzeigen, daß ein »JA« an den Ausgang des
Entscheidungspunktes DPO ohne eine Bedingung angelegt werden soll, was durch die Auswahl des richtigen
Logikfunktionsrechners gesteuert wird, um diesen Wert zu liefern, wie durch das JDS-FeId bestimmt wurde.
Mindestens einer der Logikfunktionsrechner, der Zugang zu DPO hat enthält die Wahrheitstabelle, die aus nur
Einsen besteht, um ohne Bedingung zu erzwingen, daß DPO in den logischen »EINS«-Zustand gelangt
Ein DPO-Wert von »EINS« bewirkt die Auswahl des NAT-Feldes des Mikrobefehles, der dazu verwendet
werden soll, die Adresse für den nächsten Befehl zu liefern (bzw. zumindest einen Teil davon). Die ovalen
Kästchen an beiden Seiten des Sprungsteuerrhombus werden dazu benützt, den möglichen nächsten Mikrobefehl
zu bezeichnen, wobei die NAT-Adresse dem ovalen Kästchen »JA« und die NAF-Adresse dem ovalen
Kästchen »NEIN« zugeordnet ist Im speziellen Beispiel des Mikrobefehles CBO von Fig. 15 wird das ovale
Kästchen »JA« stets ausgewählt und der Satz »VEKTOR ZUR KLASSE«, der in dem ovalen Kästchen »JA«
gezeigt ist bedeutet daß das oben im Zusammenhang mit Tabelle 1 beschriebene XF-FeId den Wert 01 aufweist,
was veranlaßt daß das NAT-FeId mit dem Klassenbasisvektor ODER-verknüpft wird, wodurch ein Vektorsprung
zu der Klassenbasis durchgeführt wird, wie durch den Makrobefehl »op-code« (f — Feld von F i g. 1), der
in dem MIR untergebracht ist bestimmt wird. Die Werte von DPI und DP2 (gesteuert durch die Mikrobefehlsfelder
VDSO bzw. VDSl) werden so ausgewählt daß sie logische Nullen sind, um so nicht zu behindern, daß die
Klassenbasis mit dem NAT-FeId ODER-verknüpft wird. Hieraus dürfte klar sein, daß die vier Bits niederer
Ordnung des NAT-Feldes logische Nullen sind, wenn ein Klassenbasis- (oder Befehls-) Vektorsprung stattfinden
soll, so daß der Vektor tatsächlich einen 1-aus-16-Wegesprung ausführt.
Weitere Entscheidungen, die normalerweise während des Zyklus 1 von Fig. 12 aufgrund des Mikrobefehles
COO ausgeführt würden, sind die Auswahl der von den lokalen Prozessoren auszuführenden Funktionen, was
durch die Auswahl des LPFT- oder LPFF-Feldes für jeden der lokalen Prozessoren gesteuert wird. Im Falle des
Mikrobefehles CBO zeigt das Fehlen jeglicher Information in den Bedingungsrhomben von Fig. 15 dsr lokalen
Prozessoren an, daß die auszuführende Prozessorfunktion unabhängig von der Funktion ist, die in dem Funktionsblock
des lokalen Prozessors unter dem Rhombus bezeichnet ist Aufgrund einer Konvention wird diese
Funktion in dem mit »JA« bezeichneten Block eingeschrieben, obwohl sie ebenso unzweideutig in den mit
»NEIN« bezeichneten Block eingeschrieben werden könnte oder in beide Blöcke.
Es gibt zwei Möglichkeiten zur Codierung der Mikrobefehlsfelder, um diese unbedingte Auswahl der Funktion
des lokalen Prozessors auszuführen. Die erste und einfachste Möglichkeit besteht darin, sowohl das LPFT-als
auch das LPFF-FeId des lokalen Prozessors mit dem gleichen Funktionscode zu codieren. Dann ist der in dem
Phantom-Entscheidungs-Selektor-Feld (PDS-Feld), das jedem Entscheidungsrhombus des lokalen Prozessors
zugeordnet ist ein »nicht beachten«. Die zweite Möglichkeit besteht darin, durch entsprechende Codierung der
PDS-Felder einen Logikfunktionsrechrier auszuwählen. Dieser wird eine logische Funktion errechnen (die durch
richtige Benennung des LFC-Feldes für den Logikfunktionsrechner ausgewählt wird), wobei der Wert der
Logikfunktion bekannt ist (die Wahrheitstabelle enthält nur Einsen oder Nullen). Weiterhin wird der Code der
von dem lokalen Prozessor auszuführenden Funktion in das Funktionsfeld (WAHR oder NICHT WAHR), das
dem bekannten logischen Funktionswert (WAHR oder NICHT WAHR) zugeordnet ist, eingegeben. Schließlich
wird zugelassen, daß das Funktionsfeld des anderen lokalen Prozessors ein »NICHT BEACHTEN« enthält.
Beispielsweise werden, wenn in den Bedingungsrhomben des lokalen Prozessors »EINSEN« plaziert sind, die in
den »J A«-Blöcken der lokalen Prozessoren bezeichneten Funktionen ausgeführt.
Die im Namen von CBO während des zweiten Zyklus von Fig. 12 erscheinende Haupttätigkeit ist die
Errechnung der Funktionen durch die lokalen Prozessoren. Wie in F i g. 15 gezeigt, errechnet der lokale Prozessor
Pl die Funktion A + B, wobei sich A auf den Wert an den A-Eingangsanschluß bezieht, B sich auf den Wert
an den B-Eingangsanschluß (B-Bus) und » + « die binäre Additionsoperation darstellt. Jeder lokale Prozessor Pl,
P2 und P3 kann, wie oben im Zusammenhang mit Tabelle 7 erläutert, so gesteuert werden, daß er in vier
Betriebsweisen hinsichtlich der Verschiebungen und Überträge arbeitet Der lokale Prozessor Pl soll, wie in
Fig. 15 ngegeben, in der »Zwei-mal-zwanzig«-Betriebsweise ohne Endübertrag (2x20 eac) arbeiten, was
durch das dem Prozessor Pl zugeordnete CC-FeId bei dem Mikrobefehl CBO gesteuert wird. Unter der »Zweimal-zwanzig«-Betriebsweise
ist zu verstehen, daß der Übertrag von der Bitposition 19 zu der Bitposition 20
unterbunden ist, wodurch ermöglicht wird, daß der lokale Prozessor arithmetische Funktionen an seinen Operanden
ausführt, als ob er aus zwei jeweils zwanzig Bits weiten Prozessoren anstelle eines einzelnen 36
Bitprozessors bestünde. Die Angabe des fehlenden Endübertrages (no-end around carry) bei der 2 χ 20-Betriebsweise
ist so zu verstehen, daß Überträge von der Bitposition 19 zu der Bitposition 0 (Endübertragung der rechten
Hälfte von Pl) und von der Bitposition 39 zu der Bitposition 20 (Endübertragung der linken Hälfte von Pl)
unterdrückt sind. Die Möglichkeit, diese Endübertragungen zu unterdrücken wird zur Anpassung an gewisse
Anomalien bei der Operandenadreßberechnung benötigt, die bei der Definition des Adressierungsalgorithmus
des Sperry Univac-Rechners 1108 auftreten.
Der lokale Prozessor P2 führt ebenfalls die binäre Addition seiner Α-Eingangs- und B-Eingangs-Operanden
bei der zwei-mal-zwanzig-Betriebsweise durch, ohne Endübertragungen. Der lokale Prozessor P3 führt die
logische UND-Operation seiner beiden A und B Operanden durch. Aufgrund einer Konvention soll der Prozessor
in der 36 Bitbetriebsweise arbeiten, solange keine Konfigurationsanweisung dafür in F i g. 15 gegeben ist Es
sei darauf hingewiesen, daß bei der 36 Bitbetriebsweise und der 2 χ 20 Bitbetriebsweise für logische Operationen
identische Ergebnisse erhalten werden. Der lokale Prozessor P4 führt die Operationen der binären Addition aus.
Dieser lokale Prozessor besitzt keine ihm zugeordnete Konfigurationssteuerung. Folglich kann eine Endübertragung
niemals verhindert werden und Berechnungen können nicht in zwei Hälften aufgeteilt werden wie bei
den Prozessoren Pl, P2 und P3.
Gegen Ende des Mikrozyklus werden von den lokalen Prozessoren errechnete Werte in den jedem Prozessor
zugeordneten Akkumulator 103 (Fig.6) verriegelt Am Ende des Zyklus 2 von Fig. 12, der auf Befehl des
Mikrobefehles CBO von Fig. 15 ausgeführt wird, enthalten die verschiedenen Akkumulatoren die folgenden
Werte:
linke Hälfte von Pl rechte Hälfte von Pl linke Hälfte von P2 rechte Hälfte von P2
linke Hälfte von P3 rechte Hälfte von P3 P4
u + Bi
u - (B5 + 1)
u + Bd
u-20O8
Nullen
Aa (Adresse des Operanden in dem Mehrzweckregisterstapel)
Die am Ende des Zyklus 2 auf Befehl des Mikrobefehles CBO ausgeführten Entscheidungen beziehen sich auf
die Steuerung des bedingten Ausganges und auf die Steuerung der aufgeschobenen Aktion. Die Spezifizierung
der auszuführenden Entscheidung (über die Mikrobefehlsfelder) ist nicht in dem Mikrobefehl CBO enthalten,
jedoch in dem während des Zyklus 2 abgerufenen Mikrobefehl. Die Schraffierung dieser Entscheidungsklammern
in F i g. 15 dient dazu, dies anzuzeigen. Alternativ hierzu könnte die Information des bedingten Ausganges
und der Entscheidung der aufgeschobenen Aktion in dem gleichen Mikrobefehl vorhanden sein, wie die weitere
Information (tatsächliche Verzweigung, Funktionen des lokalen Prozessors, usw.), die oben erläutert wurden,
wobei von dem Gesichtpunkt der Emulierung des Makrobefehles äquivalente Resultate erhalten werden.
Die einzige bei dem Mikrobefehl CBO auszuführende Entscheidung für den bedingten Ausgang ist dem
lokalen Prozessor P3 zugeordnet, wie in Fig. 15 gezeigt. Die Entscheidung soll auf der logischen Funktion Ü7
ODER (D7 und I) basieren, wobei D7 und i die in Tabelle 4 definierten statischen Variablen sind. Um zu
veranlassen, daß diese spezielle logische Funktion errechnet werden soll, wird die Logikfunktionswahrheitstabelle
für diese Funktion in einem speziellen Logikfunktionsrechner ausgewählt durch eines der LFC-Felder in
dem globalen Steuerteil des Mikrobefehles, wobei die beiden statischen Variablen mit den beiden SV-Feldern in
der globalen Steuerung ausgewählt werden, die so verdrahtet sind, daß sie den die Wahrheitstabelle enthaltenen
Logikfunktionsrechner betreiben (wie aus Fig.8 bestimmt werden kann), und wobei der Ausgang dieses
Logikfunktionsrechners mit dem Entscheidungspunkt 9 (P3 zugeordnet) verbunden wird, durch korrektes Setzen
des im Prozessor P3 zugeordneten DDS-Feldes mit der binären Darstellung der Zahl des ausgewählten
Logikfunktionsrechners. Für solche lokale Prozessoren, die keine bedingte Ausgangsentscheidung benötigen, ist
die Spezifizierung des DDS-Feldes ein »nicht beachten«.
Die in Fig. 15 bezeichnete Entscheidung der Steuerung der aufgeschobenen Aktion ist in Wirklichkeit
unabhängig von einer Bedingung. Um diese Bemerkung zu verstehen, sei daran erinnert, daß der Mikrobefehl
CBO auf sich selbst zurückspringen wird, bis der nächste auszuführende Makrobefehl abgerufen und übernommen
wurde. Folglich kann der während des Zyklus 2 der Fig. 12 abgerufene Mikrobefehl CBO selbst sein. Die
Spezifizierung der Entscheidung der Steuerung der aufgeschobenen Aktion (DADS, deferred action control
decision) von Fig. 15 kann daher entweder von CBO kommen oder dem ersten Mikrobefehl irgendeiner der
Klassenbasen. Wenn CBO tatsächlich auf sich selbst zurückspringt, so sollte die durch CBO durchgeführte Aktion
den Inhalt irgendeines Makrozustandsregisters nicht verändern. Die unschraffierte geschwungene Klammer Für
die Steuerung des bedingten Ausganges oben in F i g. 15 bezeichnet die Entscheidungsfunktion, die momentan in
dem Mikrobefehl CBO spezifiziert ist. Im Falle der Steuerung der aufgeschobenen Aktion sollte der an den
Entscheidungspunkt 11 gelieferte Wert unabhängig von einer Bedingung gleich »EINS« sein (in der gleichen
Weise wie für die Spningsteuerung in CBO spezifiziert). Wenn CBO auf sich selbst zurückspringt, so wird die dem
»JA«-Abschnitt von DPI 1 (DACT) zugeordnete aufgeschobene Aktion ausgeführt Andernfalls (CBO-Vektorverzweigung
zu einer anderen Klassenbasis) wird die dem »NEIN«-Abschnitt von DPIl (DACF) zugeordnete
aufgeschobene Aktion ausgeführt Es sei darauf hingewiesen, daß alle Mikrobefehle zu denen CBO verzweigen
kann (ausgenommen CBO selbst), die Spezifizierung »NULL« in der nicht-schraffierten geschwungenen Klammer
der Steuerung des bedingten Ausganges, die DPIl zugeordnet ist, haben muß. Weiterhin sei darauf
hingewiesen, daß in dem speziellen Fall von CBO die Spezifizierungen der nicht-schraffierten geschwungenen
Klammern der Steuerung des bedingten Ausganges, die DP7, DP8, DF^ und DPlO zugeordnet sind, ein »nicht
beachten« sind.
Die tatsächlichen aufgeschobenen Aktionen, die aufgrund des Mikrobefehles CBO ausgeführt werden können,
sind in der untersten Zeile von Fig. 15 gezeigt. Diese Aktionen wenden durch Felder gesteuert, die in dem
Mikrobefehl CBO spezifiziert sind und am Ende des Zyklus 1 von F i g. 12 verriegelt werden und in den Zyklus 3
übertragen werden, wo die am Ende des Zyklus 2 ausgewählten einzelnen Aktionen ausgeführt werden. Für die
lokalen Prozessoren Pl, P2 und P3 sind keine Ausgangssteueraktionen durchzuführen. Folglich sollten die
OUT-Mikrobefehlsfelder, die diesen lokalen Prozessoren zugeordnet sind, den Wert 00 (Tabelle 8) haben, die
WLM-Felder sollten ebenfalls den Wert 00 (Tabelle 10) haben und die SCS-Felder sollten den Wert 000 haben
(kann als statische Variable Null angesehen werden). Die dem Prozessor P3 zugeordneten OUT- und WLM-FeI-der
werden ebenfalls den Wert 00 haben, während das SCS-FeId als 001 spezifiziert sein sollte, um zu veranlassen,
daß die statische Variable SCl in Obereinstimmung mit dem Entscheidungspunkt 9 geändert wird. Das
DACT-FeId ist spezifiziert, die Aktion D4 —► RARl zu veranlassen, so daß es den Wert 00111
<F i g. 7) haben muß, während das DACF-FeId den Wert OOOOl haben muß, um die Aktion P-^lAR und D4-^RARl zu
spezifizie.-en. Die Aktion D4 —► RARl bewirkt, daß der Ausgang von P4 (Operandenadresse in GRS) in das
GRS-Adreßregister, das mit RARl bezeichnet ist, geladen wird, während die Aktion P —♦ IAR bewirkt, daß der
laufende Wert des Progranunzählregisters (P) in das Befehlsadreßregister geladen wird zur Vorbereitung zum
Abfragen des nächsten Befehles.
Wie in dem mit »ANMERKUNGEN« bezeichneten Teil von F i g. 15 gezeigt, tritt ein Setzen der statischen
Variablen SCl auf den Wert 1 dann und nur dann auf, wenn eine »Basisadressierung« (»based adressing«) von
dem momentan emulierten Makrobefehl verwendet werden sollte. Die »Basisadressierung« ist für den Sperry
Univac-Rechner 1108 in der Sperry Univac-Literatur veröffentlicht
Der Mikrobefehl »gemeinsam« von F i g. 15 ist an einem vorbestimmten Ort in dem Steuerspeicher 36
gespeichert und, wie oben im Zusammenhang mit F i g. 3 erläutert, kehrt die Steuerung zu diesem gemeinsamen
Ort zurück, wenn der letzte Mikrobefehl einer Routine ausgeführt wurde. Wenn die Steuerung zu »gemeinsam«
zurückkehrt, so wird eventuell der nächste Mikrobefehl abgerufen worden sein und von dem Befehls- und
Adressen-Register 56 (staticizer register) werden Steuersignale zu der IST-Tabelle 38 und zu dem Steuerspeichermultiplexer
39 geliefert, so daß der Klassenbasisvektor von IST 38 mit dem NAT-FeId des Mikrobefehls
»gemeinsam« verknüpft wird, wenn das XF-FeId des Mikrobefehles »gemeinsam« auf 01 und DPO auf 1 gesetzt
ist (Tabelle 1), um einen Vektorsprung zu dem ersten Mikrobefehl der zugeordneten Klassenbasismikroroutine
auszuführen.
In den F i g. 16a—c sind die Mikrobefehle dargestellt, die die Klassenbasis: rufe einzelnen Operanden direkt ab
(CB3) enthalten. Die Sprungsteuerung des Mikrobefehles »gemeinsam« (Fig. 15) veranlaßt einen Sprung zu
dem Mikrobefehl von F i g. 16a, wenn immer der in das Makrobefehlsregister 13 abgerufene Makrobefehls aus
dieser Klassenbasis stammt Die Sprungsteuerung für den Mikrobefehl von Fig. 16a bewirkt einen Sprung zu
dem Mikrobefehl von Fig. 16b, wobei diese Sprungsteuerung ihrerseits den Sprung zu dem Mikrobefehl von
Fig. 16c bewirkt der der letzte Mikrobefehl dieser Klassenbasis-Mikroroutine ist Es sei darauf hingewiesen,
daß die tatsächliche Verzweigung des Mikrobefehles von F i g. 16a einen bedingten Sprung zu der Programmunterbrechungsroutine
(breakpoint routine) steuert in Abhängigkeit von (nicht dargestellten) Wartungsfeldschaltern.
Wenn die Programmunterbrechung nicht abgerufen wird, so wird der nächste Mikrobefehl (Fig. 16b) für
die Mikroroutine abgerufen.
Die von dem Mikrobefehl CB3 + 0 errechneten Hauptfunktionen, die in Fig. 16a dargestellt sind, beziehen
sich auf das Errechnen der Operandenadresse, die von dem Arbeitsspeicher auf Befehl des Makrobefehles der
Einzeioperandenabrufklasse abgerufen werden. Der B-Bus enthält einen mit Xm bezeichneten Wert (abgerufen
von GRS unter der Verwendung des x-Feldes der Makrobefehle als eine Adresse und der GRS* B-Buseingangsauswahl),
der aus dem 18-Bit Xm-Feld in dem Indexregister besteht wobei dieser Wert auf beide Hälften des
B-Bus plaziert ist wobei zwei Einsen links von jedem xm-Wert angehängt sind, um Endüberträge in die 20-Bithälften
des lokalen Prozessors zu erleichtern. Dieser Wert Xm wird zu dem vorhandenen Inhalt der Akkumulatoren
des lokalen Prozessors in Pl, P2 und P3 addiert (errechnet durch den oben im Zusammenhang mit F i g. 15
erläuterten Mikrobefehl CBO). Diese Berechnung erzeugt drei mögliche Operandenadressen in den linken
Hälften von Pl, P2 und P3 und erzeugt die Werte SPlR (Vorzeichen von Pl rechte Hälfte) und SP2R (Vorzeichen
von P2 rechte Hälfte) der dynamischen Variablen aufgrund derer eine Entscheidung durchgeführt werden
kann, welche dieser drei Arbeitsspeicheradressen verwendet werden sollen. Die linke Hälfte von Pl enthält die
Befehlsbankadresse (in der Sperry Univac-Literatur als SI bezeichnet), die linke Hälfte von P2 enthält die
Datenbankadresse (SD) und die linke Hälfte von P3 enthält die Nichtbasisadresse (nonbased address) (u + Xm),
die dann verwendet wird, wenn durch den Makrobefehl eine absolute (Nicht-Basis)Adressierung angezeigt ist
oder wenn ein verborgener Speicher (hidden memory) verwendet werden soll (angezeigt durch SP2R). Die
bedingten Ausgangssteuerentscheidungen für CB3 + 0 wählt effektiv die richtige zu verwendende Operandenadresse
aus, indem der Akkumulator nur desjenigen lokalen Prozessors, dessen Akkumulator diese Adresse auf
dem D-Bus enthält, torgesteuert wird, wobei die Steuerung der aufgeschobenen Aktion diese Adresse zu dem
richtigen Adreßregister weiterleitet in Abhängigkeit davon, ob das Abrufen aus dem Arbeitsspeicher oder dem
verborgenen Speicher geschehen soll.
Der Mikrobefehl CB3 + 1 von Fig. 16b bezieht sich in Pl und P2 auf den ersten Schritt des Testens der
Operandenadresse für den Arbeitsspeicher, die durch CB3 + 0 erzeugt wurde (und noch in den Akkumulatoren
von Pl und P2 vorhanden ist), im Hinblick auf die hierfür von dem System (LLi oder LLd) definierten unteren
Grenzen. Der lokale Prozessor P3 inkrementiert den Indexwert (Xm) mit dem Inkrement (Xi) von dem B-Bus,
wenn die Inkrementierung in dem Makrobefehl (h-Bit auf »EINS« gesetzt) bezeichnet ist. Folglich ist die
Entscheidung des lokalen Prozessors für den lokalen Prozesse·- P3 in CB3 + 1 ein Ausführen einer »Phantomverzweigung«.
Der Mikrobefehl CB3 + 2 beendet den Testvorgang der Speicheroperandenadresse in Pl und P2, während P3
den GRS-Operanden (aus der Adresse Aa) in seinen Akkumulator einlädt, zur späteren Verknüpfung mit dem
aus dem Arbeitsspeicher abgerufenen Operanden.
10
20
25
30
40
45
50
55
60
65
Fig. 16c zeigt den letzten Mikrobefehl in der Klassenbasismikroroutine »rufe einzelnen Operanden direkt
ab«. Das XF-FeId dieses Mikrobefehles wird auf 10 gesetzt, wobei DPO unabhängig von einer Bedingung auf 1
gesetzt wird, wodurch ein Vektorsprung zu der Mikroroutine für den einzelnen Makrobefehl ausgeführt wird,
der durch Oder-Verknüpfung des Befehlsvektors aus dem Befehls- und Adressenregister 56 emuliert wird, wobei
der Mikrobefehl der N AT-Adresse von F i g. 16c so ist, wie oben im Zusammenhang mit Tabelle 1 beschrieben.
Wenn der Makrobefehlsoperationscode »ADDIERE ZU A DIREKT« in dem Befehls- und Adreßregister 56
(F i g. 5) vorhanden ist, so wird ein Sprung zu dem Mikrobefehl »ADDIERE A« von F i g. 17 ausgeführt, um die
einzelnen Operationen durchzuführen, die zur Ausführung des Makrobefehles »ADDIERE ZU A DIREKT«
notwendig sind.
Die Sprungsteuerung von »ADDIERE A« muß bestimmen, ob der von dem Arbeitsspeicher abgerufene
Operand zum benötigten Zeitpunkt angekommen ist. Wenn der Operand nicht angekommen ist, so wird der
Mikrobefehl auf sich selbst zurückspringen, bis der Operand ankommt, wobei der »NEIN«-Sprungweg verwendet
wird. Wenn der Operand angekommen ist oder kein Operand aus dem Arbeitsspeicher benötigt wird, da der
verborgene Speicher verwendet wurde, so wird die Addition der Operanden in P3 ausgeführt und es wird ein
4-\Vegc-Vcktorsprung vorgenommen, in. Abhängigkeit davon, ob eine Makrounterbrechung aufgetreten ist
(Vektor zu INT), ob die Operandenadresse den Grenzentest nicht passieren konnte (Vektor zu LIM), ob beide
Ereignisse aufgetreten sind (Vektor zu LIM und INT) oder ob keines von beiden Ereignissen aufgetreten ist
(Vektor zu CBO zum Starten eines anderen Makrobefehles). Die von P3 ausgeführte Additionsoperation wird
durch die Tatsache kompliziert, daß das j-Feld des Makrobefehles bestimmen kann, daß die Addition nur mit
einem bestimmten Feld des aus dem Speicher abgerufenen Operanden ausgeführt werden soll und daß dieses
Feld (sofern es durch die Verschiebeeinrichtung auf dem B-Bus richtig angeordnet ist) sich mit Vorzeichenbits
nach links ausdehnen kann oder nicht (abhängig von dem Vorzeichen des aus dem Arbeitsspeicher abgerufenen
Operanden). Die Phantomverzweigungsentscheidung für P3 führt zusammen mit dem Abrufschaltkreis des
lokalen Speichers, der die einzelne benötigte Maske als Funktion von j und SE abruft, die Addition ordnungsgemäß
aus, wie in der Dokumentation zum Univac-Rechner 1108 definiert
Im Zusammenhang mit dem Emulieren des in den F i g. 15 bis 17 dargestellten Makrobefehles »ADDIERE ZU
A«, werden im folgenden die primären funktionalen Tätigkeiten dargestellt, die während jedes Mikrozykluses
des »ADDIERE ZU A«-Befehles auftreten. Aufgrund der oben erläuterten MikroÜberlappung treten die durch
gestrichelte Linien eingegrenzten Tätigkeiten nicht tatsächlich in dem bezeichneten Zyklus auf, sondern werden
durch einen Teil eines Zyklus ersetzt Es sind fünf Mikrozyklen von jeweils 100 Nanosekunden vorgesehen, so
daß ein »ADDIERE ZU A« (des Univac-Rechners 1108) in 500 Nanosekunden vollständig ausgeführt werden
kann.
Dieser Zusammenhang ist in der nachfolgenden Tabelle erläutert
Gemeinsam
Rufe einzelnen Operanden ab
< Zyklus 1 Zyklus 2
Zyklus 3
Zyklus 4
Addiere A
Zyklus 5
»ADDIERE ZU A« Rufe nächsten Befehl ab
Addiere Basen zu u Erzeuge ABS. GRS-Adressen
Addiere Index zu (u + Basis) Wähle Adresse aus Rufe Operanden ab
Inkrementiere Index-Register Grenzentest beginnen
GRS zu Mikroakkumulator P-Register aufdatieren Grenztest beenden
Addiere, wenn Operand verfügbar Grenzenfehler testen Unterbrechung testen
Operanden speichern Übertrag und Überlauf setzen
In den Fig. 18a—d ist die Mikroroutine für die Klassenbasis »rufe einzelnen Operanden indirekt ab« (CB3i
dargestellt Von dem Mikrobefehl »gemeinsam« von F i g. 15 wird ein Vektorsprung zu der indirekten Routine
der F i g. 18a—d durchgeführt, wobei der CBS-Klassenbasisvektor aus der Befehlszustandstabelle 38 mittels dei
statischen Variablen IDl modifiziert wird, die, wie oben erläutert, bei 59 in Fig.5 vorhanden ist Der letzt«
Mikrobefehl der Klassenbasisroutine (Fig. 18d) liefert einen Vektorsprung in Abhängigkeit von dem Befehls
vektor von den Befehls- und Adressenregister 56 entweder zu dem in F i g. 18a dargestellten Mikrobefehl, dem ii
F i g. 15 dargestellten Mikrobefehl »gemeinsam« (wenn der neu abgerufene Befehl nicht bereit ist) oder zu dei
Klassenbasis »rufe einzelnen Operanden ab«, wenn in dem neu abgerufenen Befehl kein indirekt angezeigt ist
Die Fig. 19a—f stellen die Mikroroutine für die Klassenbasis »rufe einzelnen Operanden sofort ab« (CB4), ii
36
der sechs Mikrobefehle enthalten sind. In ähnlicher Weise wie oben beschrieben, wird der in F i g. 19a dargestellte
Mikrobefehl von dem Mikrobefehl »gemeinsam« von F i g. 15 gerichtet (vectored to) und der Mikrobefehl von
Fig. 19f steuert einen Vektorsprung zu den speziellen Mikroroutinen zum Emulieren der speziellen Makrobefehle
in der Klassenbasis. F i g. 20 zeigt den Mikrobefehl »ADDIERE A SOFORT« zu dem der Sprung gesteuert
werden kann.
Im folgenden wird auf die Fig. 21a—c und 22a—c Bezug genommen. Die Fig. 21a—c zeigen die drei
Mikrobefehle, die die Klassenbasis »größer und dekrementieren« (CB5) enthält. Die Fig.22a—c zeigen die
Mikroroutine zum Emulieren des Makrobefehles »SPRINGE GROSSER UND DEKREMENT1ERE«.
Im einzelnen ist, in bezug auf Fig.21c, die Funktion in der geschwungenen Entscheidungsklammer der
Steuerung des bedingten Ausganges, der P2 zugeordnet ist, generell für jeden Makrobefehl eines bedingten
Sprunges verschieden.
Ebenso bezeichnet, im Hinblick auf F i g. 22a, der Eingang zu der geschwungenen Entscheidungsklammer der
Steuerung der aufgeschobenen Aktion die drei möglichen nächsten Mikrobefehle, während Anmerkung 1 in
dem mit »Anmerkungen« bezeichneten Block die logische Funktion bezeichnet, die durch das DADS-FeId jeder
dieser Befehle bezeichnet wird. Derselbe Hinweis wird für den Mikrocode der F i g. 22 bis 30 zu beachten sein.
Im folgenden wird auf die Fig. 23a—c und 24a—g Bezug genommen, in den Fig. 23a—eist die Mikroroutine
für die Klassenbasis »unbedingte Verzweigung« (CB6) dargestellt. Die Fig.24a—g zeigen die Emulierung für
den Makrobefehl »SPEICHERE DEN ORT UND SPRINGE« (SLJ), zu dem ein Vektorsprung von der Klassenbasis
»unbedingte Verzweigung« vorgenommen werden kann.
Bezugnehmend auf die Fig.25a—f und 26a—b, ist in den Fig.a—f die Mikroroutine für die Klassenbasis
»Speichern« (CB7) dargestellt und in den Fig.26a—b die Mikroroutine für die spezielle Emulierung des
Makrobefehles »speichere A« (SA).
Im folgenden wird auf die F i g. 27a—c und 28a—c Bezug genommen. Durch die Mikrobefehle der F i g. 27a—c
ist die Mikroroutine für die Klassenbasis »Überspringe unbedingte Verzweigung« (CBl 1) dargestellt. Durch die
Mikrobefehle der F i g. 28a—c ist der Mikrocode für den speziellen Makrobefehl »teste ungleich« (TNE) dargestellt,
der im Hinblick auf diese Klassenbasis emuliert wird.
Bezugnehmend auf die F i g. 29a—c und die F i g. 30a und b ist durch die Mikrobefehle der F i g. 29a—c die
Mikroroutine für die Klassenbasis »verschieben« (CB 12) dargestellt und in den F i g. 30a und b ist die Emulierung
»EINZELNE VERSCHIEBUNG ALGEBRAISCH« (SSA), die geleitet wird von der Klassenbasis »verschieben«
gerichtet ist dargestellt.
Die Fig. 15—30 zeigen Mikrobefehlsflußdiagramme für den in dem Steuerspeicher 36 zu speichernden
Mikrocode, um die beschriebenen einzelnen Makrobefehlsemulierungen des Univac-Rechners 1108 zu liefern.
Der einzelne in den Steuerspeicher 36 einzuladende Code ist leicht aus den Tabellen 1 bis 12 abzuleiten, wobei
die F i g. mit diesen zusammenhängen und der Beschreibungsteil hierzu zugeordnet ist.
Wie oben im Zusammenhang mit den F i g. 8 und 9 erläutert, liefern die Logikfunktionsrechner der F i g. 8 die
Entscheidungspunktwerte für die mit durchgezogenen Linien gezeichneten Rhomben, die ovalen Sprungsteuerblöcke,
die gestrichelt gezeichneten Rhomben und die geschwungenen Entscheidungsklammern (F i g. 9) der
verschiedenen in den Fig. 15—30 dargestellten Mikrobefehle. Die Entscheidungsblöcke der Mikrobefehlsflußdiagramme,
die bestimmte logische Funktionen der bestimmten Variablen aufweisen, werden in den Logikfunktionsrechnern
der F i g. 8 realisiert Beispielsweise ist die Logikfunktion in der geschwungenen Entscheidungsklammer
der unteren linken Seite der F ig. 16a, d. h.: SCl UND SPlR und SP2R, als gefaltete Wahrheitstabelle
der oben im Zusammenhang mit F i g. 8 erläuterten Art in einem bestimmten der Logikfunktionsrechner 114
(Fig.8) gespeichert Die statische Variable SCl wird aus dem Pufferspeicher 110 geliefert, was durch die
SV-Felder des Mikrobefehles ausgewählt wird und sie wird als Eingang der statischen Variablen an den
entsprechenden Logikfunktionsrechner angelegt, der durch die LFC-Felder des Mikrobefehles ausgewählt wird.
In ähnlicher Weise werden die dynamischen Variablen SPlR und SP2R von dem Pufferspeicher 111 geliefert,
durch die DV-Felder des Mikrobefehles ausgewählt und an den zugeordneten Funktionswertselektor von F i g. 8
angelegt
Aus der vorhergehenden Beschreibung des Aufbaues der Zentraleinheit 10 und der Struktur ihrer Komponenten
ist zu ersehen, daß die Zentraleinheit 10 in hervorragender Weise dazu geeignet ist, unter Verwendung von
LSI-Mikroprozessorchips oder -scheibchen hergestellt werden. Beispielsweise kann die in den lokalen Prozessoren
17,18,19 und 27 benötigte arithmetische und logische Funktionsweise durch eine Vielzahl von entsprechend
verbundenen, im Handel erhältlichen Mikroprozessorchips oder -scheibchen erzeugt werden. Zusätzlich eignet
sich die korrekte Anordnung der mikroprogrammierbaren Steuerung der Zentraleinheit 10 für einen LSI-Aufbau,
verglichen mit der herkömmlichen Konstruktion der Logik mit direktem Zugriff.
Folglich ist es ein besonderer Vorteil, daß die Zentraleinheit 10 aufgrund der Realisierung mit LSI-Mikroprozessoren
wesentlich kleiner und billiger ist, als herkömmlich aufgebaute Rechner mit ähnlicher Leistung. Zusätzlich
besitzt die Zentraleinheit 10 nicht nur die oben beschriebenen Kosten- und Größenvorteile in bezug auf
bekannte Rechner, sondern übertrifft auch die Leistung der bekannten Rechner hinsichtlich der mittleren
störungsfreien Zeit der einfacheren Reparaturmöglichkeit und des Energieverbrauches. Diese Vorteile basieren
auf den folgenden Merkmalen: dem neuen Aufbau, der die Ausführung von mehrfachen Mikrobefehlsströmen
beim Emulieren eines einzelnen Makrobefehlsstromes erlaubt; der Drei-Wege-Mikro-Befehlsüberlappung mit
tatsächlicher Verzweigung, Phantomverzweigung und bedingter Verzweigung der aufgeschobenen Aktion;
sowie der tabellenbetriebenen Steuerlogik.
Aufbausteuerung der lokalen Prozessoren 17,18 und 19 (zwei mal zwanzig-und 36 Bit-Betriebsarten)
Wie oben im Zusammenhang mit den F i g. 2 und 5 erläutert, enthält jeder der lokalen Prozessoren 17,18 und
Wie oben im Zusammenhang mit den F i g. 2 und 5 erläutert, enthält jeder der lokalen Prozessoren 17,18 und
19 zehn 4-Bit-Mikroprozessorscheibchen, wie oben im Zusammenhang mit F i g. 6 beschrieben. Jeder der lokalen
i, Prozessoren 17, 18 und 19 ist so aufgebaut, daß er entweder in einer 2χ 20- oder einer 36-Bit-Betriebsweise
y arbeitet, und zwar mit oder ohne einer Endübertragung in Übereinstimmung mit dem Aufbau des Steuer-CC-
r λ Feldes, wie oben im Zusammenhang mit F i g. 4 beschrieben. Diese Anordnung wird verwendet, da der Arbeits-
speicher der Sperry Univac-Rechners 1108 36-Bit-Daten- und Befehlsworte liefert und der Adreßbereich des
' ;> Sperry Univac-Rechners 1108 256 K Worte ist, was 18 Bitadressen erfordert. Folglich ist es mit der Aufbausteue-
\y rung möglich, einen lokalen Prozessor zu verwenden, um 36 Bit-Datenberechnungen auszuführen und in einem
|f anderen Mikrozyklus 18 Bit-Adressenberechnungen auszuführen. Folglich ist jeder der lokalen Prozessoren 17,
!?;' 18 und 19 ein 40 Bit-Prozessor, wie oben beschrieben, wobei diese Größe benötigt wird, da die lokalen
f~; ίο Prozessoren aus 4 Bitchips aufgebaut sind, wobei 5 solcher Chips benötigt werden, eine 18 Bitadresse mit
w. eigenem Zugriff zu Vorzeichen-, Überlauf- und Übertrags-Indikatoren zu errechnen, wie oben im Zusammen-
ΐ;{ hang mit F i g. 6 erläutert Die Aufbauten und Verbindungen für den 36 Bit- und den 2 χ 20-Bit-Betrieb werden
\i separat beschrieben und danach wird der für kombinierten Aufbau benötigte Schalt'rr;;;- beschrieben.
ρ Fig. 31 zeigt den Aufbau der 36 Bit-Betriebsweise. Wie oben im Zusammenhang mit Fi g. 6 erläutert, besteht
l| is jeder der lokalen Prozessoren 17, 18 und 19 aus zehn 4-Bit-Mikroprozessorscheibchen. Die Scheibchen
p μΡο—μΡ9 sind mit den Bezugszeichen 160—169 bezeichnet. Jedes der Mikroprozessorscheibchen 16ö—i69
liefert Übertragserzeugungs- (G) und Übertragsweiterleitungs- (P)-Ausgänge, wie oben im Zusammenhang mit
H F i g. 6 erläutert, und wie durch die diesen Ausgängen zugeordneten, unter die Scheibchen gesetzten Legenden
E bezeichnet ist. Um eine angemessene Rechengeschwindigkeit zu ermöglichen, werden in den lokalen Prozessoll
20 ren Übertragsvorgriffschips 170—176 verwendet anstelle von Schnellübertragsanordnungen. Zusätzlich wird, in
einer nachfolgend zu beschreibenden Weise ein Endübertrag verwendet, da die Daten des Sperry Univac-Rechners
1108 in einer Komplementform dargestellt werden und die in der Zentraleinheit 10 verwendeten Mikroprozessorscheibchen
160—169 Zweier-Komplementaddierer enthalten anstelle von Einer-Komplement substrahierenden
Addierern, wie sie in dem Sperry Univae-Rechner 1108 verwendet werden. Wenn, wie in Fig.31
dargestellt, in der 36 Bit-Betriebsweise gearbeitet wird, so sind die 36 Bit-Datenworte, die den A- und B-Eingangsanschlüssen
des lokalen Prozessors (Fig.2, 5 und 6) zugeführt werden, hinsichtlich des 40 Bit-Fe!dis
rechtsbündig ausgerichtet, so daß nur die Scheibchen 160—168 bei dieser Betriebsweise verwendet werden,
wobei das ganz linke 4-Bit-Scheibchen 169 nicht verwendet wird.
Für jedes der Mikroprozessorscheibchen 160—169 ist der mit G bezeichnete Ausgang die Gruppen-Übertragserzeugungsleitung
für das Scheibchen und der P-Ausgang die Gruppen-Übertragsfortschaltleitung hierfür,
wobei der rechts-gelegene Eingang für jedes Scheibchen die oben im Zusammenhang mit F i g. 6 erläuterte und
durch die Legende an dem Mikroprozessorscheibchen 160 bezeichnete Übertragungseingangsleitung Qn ist
Betrachtet man irgendeines der Scheibchen μΡί, das die Bits 2', 2'+', 2' + 2 und 21 + 3 enthält, so können die vier
Eingangsbits eines Operanden als Xo, Xj, X2 und X3 und die vier Eingangsbits des anderen Operanden mit Yo, Yi,
Y2 und Y3 bezeichnet werden. Folglich ist für irgendein Bit w die Fortschaltbedingung Pw für dieses Bit und Gw
die Erzeugungsbedingung. Dies kann in der Form einer Bool'schen Gleichung wie folgt ausgedrückt werden:
Pw = Xw θ Yw und Gw = Xw · Y 2» Folglich können die Fortschalt- und Erzeugungssignale für das Chip wie folgt
ausgedrückt werden:
P = Po · Pi · P2 · P3
G = G3 + P3G2 + P3P2G1 + P3P2PiG0
Die Übertragsvorgriffsschaltkreise 170—176 sind von herkömmlicher Bauweise und können bequem durch
den Motorola-Vorgriffs-Übertragschip MC10179 ausgeführt sein, der vollständig in der von der Firma Motorola
Semiconductor Products, Inc. erhältlichen Literaturstelle »The Semiconductor Data Library«, Serie A, Band 4,
1974, beschrieben ist
Die Übertragsvorgriffschips 170—176 sind bezüglich der Mikroprozessorscheibchen 160—169 in einer in
dieser Literaturstelle beschriebenen Weise verbunden. Jedes der Übertragsvorgriffschips besitzt Eingänge für
die Gruppen-Übertragserzeugungsleitung und die Gruppen-Übertragsfortschaltleitung von den vier Mikropro-
zessorscheibchen sowie einen Übertragseingang Qn. Jeder Übertragsvorgriffschip liefert Gruppen-Fortschalt-
und Gruppen-Erzeugungsindikatoren aus den Eingängen zu dem Chip sowie zwei Übertragsausgangsindikatoren
Cn + 2 und Cn + 4. Beispielsweise empfängt der Übertragsvorgriffschip i7ö die Gruppen-Übertragserzeugungs-
und Gruppen-Übertragsfortschaltsignale von den Mikroprozessoren 160—163, die mit G0, Po, Gi1 Pi, G2,
P2 und G3, P3 bezeichnet sind.
Der Chip 170 liefert die Gruppen-Fortschalt- und Gruppen-Erzeugungsindikatoren Ga bzw. P„ aus den Eingängen
zu diesem Chip wie folgt:
G8= G3 + G2P3 + GiP2P3 + G0PiP2P3
P. = P0 · Pi · P2 - P3
P. = P0 · Pi · P2 - P3
Der Cn + 2 Übertragungsausgangsindikator erzeugt ein Übertragsausgangssignal, das auf dem Übertragseingangssignal
Qn und den Fortschalt- und Erzeugungssignalen aus den beiden letzten signifikanten Mikroprozessoren
160 und 161 wie folgt basiert:
Cn+2 = QnP0P1 + G0Pi +Go .
Der Cn + 4 Übertragsausgangsindikator basiert auf Qn und den Erzeugungs- und Fortschalt-Leitungen aus
allen Eingangsmikroprozessoren 160—163 wie folgt:
Cn + 4 = CinP0PiP2P3 + G3 + G2P3 + Gi P2P3 + G0
P1P2P3 = CinPa + G8
Mit dem Aufbau der 36 Bit-Betriebsweise für den lokalen Porzessor, wie in Fig.31 dargestellt, wird die
maximale Geschwindigkeit erreicht, daß der Schaltkreis so aufgebaut ist, daß das Cin-Signal für jedes Mikroprozessorscheibchen
160—169 von den Übertragsvorgriffchips 170—176 errechnet wird anstelle der Verwendung
eines Schnellübertrages von den vorhergehenden Mikroprozessorscheibchen, wobei die Übertragsvorgriffssignale
wie dargestellt geliefert werden. Beispielsweise liefert der Übertragsvorgriffschip 175 das Übertragseingangssignal
für das Mikroprozessorscheibchen 168 wie folgt:
Cin (μΡ8) = Gc + PcGa + P8PcPa
Das Endübertragssigna! C*, wird von dem Übertragsvorgriffchip 176 zu den Ci„-Eingänger. zu dem Mikroprozessorscheibchen
160 und der Übertragsvorgriffschips 170,171,173 und 174 geliefert. Das Endübertragssignal
QU besitzt zwei Komponenten, wobei eine Komponente von dem Übertragsausgang aus dem Mikroprozessorscheibchen
168 beigetragen wird. Allerdings wird, anstelle das auf den Übertragsausgang gewartet wird, der von
dem Scheibchen zu bilden ist, der Übertragsausgang aus Ge und Pe errechnet und die andere errechnete Gruppe
erzeugt sich und schaltet fort, war als Eingänge zu dem Chip 176 dargestellt ist. Ein Übertragsausgang aus dem
Mikroprozessorscheibchen 168 wird dann auftreten, wenn Ge eine logische Eins oder wenn Pe eine logische Eins
ist und wenn ein Übertragseingang zu dem Scheibchen 168 von anderen Scheibchen vorhanden ist. Folglich wird
ein Übertragseingang zu dem Scheibchen 168 vorhanden sein, wenn die Mikroprozessorscheibchen 164—167
einen Übertrag erzeugen, oder wenn die Mikroprozessorscheibchen 160—163 einen Übertrag erzeugen und die
Scheibchen 164—167 diesen Übertrag fortschalten. Mit anderen Worten wird entsprechend G0 + PcGa ein
Übertragseingang zu dem Scheibchen 168 vorhanden sein (der nicht durch den Endübertrag gebildet ist) und
folglich wird ein Übertragsausgang des Scheibchens 168 entsprechend Ge + Pe (Gc + PcGa) vorhanden sein.
Die andere Komponente des Endübertrages resultiert aus einem negativen Null (alles Einsen), die von den
Mikroprozessorscheibchen 160—168 erzeugt wird. In diesem Falle wird ein Endübertragssignal benötigt, um alle
Einsen in nur Nullen umzuwandeln aus Gründen, die weiter unten erläutert werden. Da
P, = Po · Pi · P2 · P3 · Pc = P4 ■ P5 · P6 · P7
und das Fortschreitsignal eines Mikroprozessorscheibchens dann und nur dann eine Eins ist, wenn das Ergebnis
ohne einen Übertrag nur aus Einsen besteht, so lautet die Bedingung für diesen Endübertrag:
Pa-Pc- P8-
Folglich wird das QS-Signal durch den Übertragsvorgriffschip 176 wie folgt erzeugt:
C*h = G8 + P8(G0 + PcGa) + PaPcPe
Das CiU wird mit dem ts'a-Signal mit einer verdrahteten UND-Verknüpfung 177 aus weiter unten erläuterten
Gründen verküpft
Bei der 2 χ 20 Betriebsweise ist der lokale Prozessor mit 40 Bits als zwei 20-Bit-Prozessoren aufgebaut, die die
gleiche Funktion durchführen in Abhängigkeit von den LPFT- oder LPFF-Feldern, jedoch mit unterschiedlichen
Daten an den A- und B-Eingangsanschlüssen. Bezugnehmend auf F i g. 32, in der gleiche Bezugszeichen gleiche
Komponenten in bezug auf F i g. 31 bezeichnen, ist der linksgelegene 20 Bit-Prozessor so dargestellt, daß er aus
den Mikroprozessorscheibchen 165—169 besteht. Die Übertragsvorgriffschips 180 bis 183 werden in einer
Weise und aus Gründen verwendet, die den oben im Zusammenhang mit F i g. 31 erläuterten ähnlich sind und sie
sind den Übertragungsvorgriffschips 170—176 identisch. A.us Gründen, ähnlich denen, die oben irr! Zusammenhang
mit der 36 Bit-Betriebsweise erläutert wurden, ist ein Endübertragssignal zu den Übertragseingangsanschlüssen
des Mikroprozessorscheibchens 165 ebenso vorgesehen, wie zu den Übertragsvorgriffchips 180 und
183. Der Endübertrag für den linksgelegenen halben 20 Bit-Prozessor wird durch den Übertragsvorgriffchip 181
in Übereinstimmung mit Gg + P9Gn geliefert Dieses Signal wird durch ein verdrahtetes UND-Gatter 184 unter
der Steuerung des eac-Signals, das noch zu beschreiben ist, angelegt Der Ausgang des Übertragsvorgriffschips
182 zu dem Übertragseingangsanschluß des Mikroprozessorscheibchens 169 wird wie folgt gebildet:
Qn(HP9) =Gh + (G9Ph + GhPhP9)eac
=Gh + eac(G9 + P9Gh)Ph
Es sei darauf hingewiesen, daß der Ausdruck (G9 + P9Gh) das C&idobertrags Signal ist, das von dem Cn + 2
Übertragsausgangsindikator aus dem Chip 181 geliefert wird.
Wenn der lokale Prozessor in der 2 χ 20 Betriebsweise arbeitet, so wird der rechtsgelegene 20 Bitprozessor
durch die Mikroprozessorscheibchen 160—164 und die Übertragsvorgriffschips 170 und 171 von Fig.31 gebildet
In der 2 χ 20 Betriebsweise ist das Signal tsb gleich Null und daher wird eine logische Null als Übertragseingang
zu dem Mikroprozessorscheibchen 160 geliefert sowie zu den Chips 170 und 171. Folglich arbeitet die
10
rechte Hälfte jedes der lokaler. Prozessoren 17,18 und 19 (F i g. 2 und 5) ohne einen Endübertrag.
Der Aufbau für die 36 Bit-Betriebsweise, die im Zusammenhang mit Fig.31 beschrieben wurde und der
Aufbau für die 2x20 Bit-Betriebsweise, die im Zusammenhang mit Fig.32 beschrieben wurde, wird unter
Verwendung einer Anordnung gemäß F i g. 33 kombiniert, wobei gleiche Bezugszeichen gleiche Komponenten
bezüglich der F i g. 31 und 32 bezeichnen. Wie oben im Zusammenhang mit F i g. 4 erläutert, liefert das CC-Mikrosteuerfeld
zwei Bits, die als tsb (36 Bit-Betriebsweise) und eac (Endübertrag) bezeichnet wurden, die den
Aufbau des lokalen Prozessors wie folgt steuern:
Bit Abkürzung Bedeutung
1 tsb Verwende 36 Bit-Aufbau, wenn das Bit = 1 ist,
andernfalls den 2 χ 20 Bit-Aufbau
2 eac Wenn in der 2 χ 20 Betriebsweise, so führe einen Endübertrag auf der linken
Hälfte aus, wenn eac = 1, andernfalls bilde keinen Endübertrag
Hälfte aus, wenn eac = 1, andernfalls bilde keinen Endübertrag
wie oben im Zusammenhang mit Tabelle 7 beschrieben.
Die Übertragungseingangseingänge zu den Mikroprozessorscheibchen 165—168, die in der 36 Bit-Betriebsweise
durch die Anordnung von F i g. 31 und in der 2 χ 20-Bit-Betriebsweise durch die Anordnung der F i g. 32
gebildet werden, werden miteinander ODER-verknüpft, um kombinierte Eingänge über oder Gatter 190—193
zu liefern. Die entsprechenden Ausgänge aus den Übertragsvorgriffschips von Fig.31 werden, wie durch die
Legenden bezeichnet, durch verdrahtete UND-Gatter 194—197 hindurch geliefert, um einen Eingang für die
entsprechenden ODER-Gatter 190—193 zu liefern. Die Übertragsvorgriffssignale von Fig.32 werden, wie
durch die Legenden bezeichnet, durch verdrahtete UND-Gatter 198—20* hindurch angelegt, um den zweiten
Eingang für die entsprechenden ODER-Gatter 190—193 zu liefern. Das tsD-Signal wird als zweiter Eingang an
jedes der UND-Gatter 194—197 und das inverse tsb-Signal als zweiter Eingang an die UND-Gatter 198—201
angelegt Folglich wird darauf hingewiesen, daß bei der 36 Bit-Betriebsweise das tsb-Signal die Gatter 194—197
in Bereitschaft setzt, während das tsb-Signal die Gatter 198—201 außer Bereitschaft setzt Umgekehrt setzt bei
der 2 χ 20 Betriebsweise das tsB-Signal die Gatter 198—201 in Bereitschaft, während das tsb-Signal die Gatter
194—197 außer Bereitschaft setzt Zusätzlich setzt das tsb-Signal, wie oben im Zusammenhang mit Fig.31
erläutert das QJ in dem Schaltkreis bei der 36 Bit-Betriebsweise in Bereitschaft und setzt Qt in der 2 χ 20
Betriebsweise außer Bereitschaft In F i g. 32 setzt das eac-Signal den Endübertrag zu dem linksgelegenen halben
Prozessor in der 2 χ 20 Betriebsweise in Bereitschaft zur Steuerung der arithmetischen Prozesse.
Jeder der lokalen Prozessoren 17,18 und 19 umfaßt die Aufbausteuerung und den Übertragsvorgriffsschaltkreis,
der oben im Zusammenhang mit den F i g. 31 —33 erläutert wurde. Der lokale Prozessor 27 mit 20 Bits ist in
Übereinstimmung mit dem Aufbau der rechten Hälfte, die in Fig.31 dargestellt ist, aufgebaut wobei er
Mikroprozessorscheibchen 160—164 und die Übertragsvorgriffschips 170 und 171 enthält, wobei Übertragseingänge
zu den Komponenten 160,170 und 171 vorhanden sind, an die eine logische Null angelegt ist
Folglich wird darauf hingewiesen, daß jeder lokale Prozessor 17,18 und 19 so aufgebaut sein kann, daß er als
ein 36 Bit-Prozessor oder als zwei unabhängige 20 Bit-Prozessoren arbeiten kann, wobei der Schaltkreis von
F J £ 34 die Trennung zwischen den Prozessorhälften bewirkt, wenn in der 2 χ 20 Betriebsweise gearbeitet wird.
Da die Daten des Sperry Univac-Rechners 1108, die zu den lokalen Prozessoren 17, 18 und 19 geliefert
werden, in einem Einerkomplementformat vorliegen und da die zur Ausführung der lokalen Prozessoren
verwendeten ALU-Scheibchen in Zweierkomplementarithmetik ausgebildet sind, werden die beschriebenen
Endübertragssignale dazu verwendet die richtigen arithmetischen Resultate zu liefern. Zum Beispiel, wie oben
im Zusammenhang mit F i g. 32 erläutert, liefert das Endübertragssignal G9Ph + GhPhP9 das benötigte Endübertragssignal.
Im Zusammenhang mit F i g. 32 wird das benötigte Endübertragssignal für die Einerkomplementarithmetik
von der G8 + Pe (Gc 4- PgG,)-Komponente des GJ-Signal geliefert. Die P11PcPe Komponente von CiS
wird dazu verwendet die Darstellung der negativen Null mit nur Einsen zu unterdrücken.
Bezüglich der im Zusammenhang mit den F i g. 31 — 33 beschriebenen Anordnungen der Aufbausteuerung und
der Übertragsfortschaltung sei darauf hingewiesen, daß eine Vielzahl anderer Konstruktionen in den lokalen
Prozessoren der Zentraleinheit 10 verwendet werden können, jedoch daß die beschriebene Konstruktion eine
besonders schnelle ist
Aus dem vorhergehenden ist zu entnehmen, daß die lokalen Prozessoren 17,18 und 19 in der 36 Bit-Betriebsweise
zur Berechnung von vollständigen Wortdaten verwendet werden, während in der 2 χ 20 Betriebsweise
Berechnungen der 18 Bitadresse sehr effektiv durchgeführt werden. Der lokale Prozessor 27 mit 20 Bits wird
ebenfalls primär hinsichtlich Adreßberechnungen verwendet. Der lokale Prozessor 27 kann auch dazu verwendet
werden, das Makro-P-Register 31 zu inkrementieren, um eine 100 Nanosekunden-Zeitbasis für indirekte
Ketten und Ausführungsketten zu liefern und zur Errechnung der absoluten Adresse des Registers des Mehrzweckregisterstapels
32, das durch ein Feld des Makrobefehles bezeichnet ist, was im Zusammenhang mit der
Befehlszustandstabelle 38 erläutert wurde.
Detaillierte Logikschaltkreise
Fig.34 zeigt Einzelheiten des Multiplexers 54, der UND-Gatter 58, des Makrobefehlsregisters 13 und des
Befehls- und Adreßregisters (Fig.5b). Das Makrobefehlsregister 13 besteht aus 36 D-Flip-FIop-Stapeln mit
dualen Eingängen, die mit den in F i g. 1 dargestellten Makrobefehlsfeldern korrespondieren. Jeder Stapel des
Registers 13 empfängt seine entsprechenden Bits von den beiden Speicherbänken (Di und Do), wobei die
Auswahl zwischen ihnen durch das Do —* MIR-Signal bewirkt wird, das an die A-Eingänge aller Stapel des
Register; angelegt wird. Die passend ausgewählten Daten werden in das Register 13 mittels eine ACK-Signales _
eingetaktet, das an die Takteingänge der Stapel angelegt wird. Folglich wird darauf hingewiesen, daß die |
Funktionen des Multiplexers 54 und des UND-Gatters 58, die in F i g. 5b als diskrete Komponenten dargestellt J
wurden, durch die dargestellten Verbindungen zu den integrierten Schaitkreiskomponenten bequem ausgeführt
werden können.
Die Ausgänge von den a, j und f-Stapeln des Makrobefehlsregisters 13 werden an die entsprechenden Stapel
des Befehls- und Adreßregisters 56 angelegt, das aus 14 Einzeleingangs-D-Flip-Flops besteht Die a, j und
f-Feldinforraation wird zu dem Befehls- und Adreßregister 56 mittels eines STAT-Signales übertragen, das an die
Takteingänge der Registerstapel angelegt wird. Die Ausgänge aus den f- und j-Stapeln des Registers 56 werden
an eine Logik angelegt, die im Zusammenhang mit F i g. 35 zu beschreiben sein wird, um die Adresse in den
Befehlszustandstabellenspeicher 38 zu liefern. Die j-Stapel des Registers 56 sind weiterhin mit dem Addierer 72
(Fig.5a) verbunden, aus Gründen, die oben im Zusammenhang mit der B-Bus-Eingangsauswahl erläutert
wurden. Die j- und a-Stapel des Registers 56 sind entsprechend mit den Multipiexern 61 und 62 (F i g. 5c)
verbunden, um Daten zu dem B-Eingangsanschluß des lokalen Prozessors 27 zu liefern. is
F i g. 35 zeigt einen Logikschaltkreis 205, der auf die Ausgänge von dem Befehls- und Adreßregister 56
anspricht um den Adreßeingang zu der Befehlszustandstabelle 38 als auch den Befehlsvektor zu dem Multiplexer
39 zu liefern. Eine Logik 210 bildet die Befehlszustandstabellenadresse sowie den Befehlsvektor in Übereinstimmung
mit der obigen Erläuterung der F i g. 5 im Zusammenhang mit der Befehlszustandstabelle 38.
Wie oben erläutert, ist die Befehlszustandstabelle 38, die als programmierbarer Nur-Lesespeicher ausgeführt
ist, 256 Worte lang und 10 Bits breit und liefert die oben beschriebenen Felder GB, CB, FOS, SL und MC. Die
Befehlszustandstabelle 38 decodiert das Befehlsformat des Sperry Univac-Rechners 1108 zu dessen wirksamer
Emulierung, wobei die Befehlszustandstabellenadresse durch die f- und j-Felder des emulierten Makrobefehles
geliefert wird. Die Speichertabelle von F i g. 35a zeigt die Zuordnung des Speichers zu den Hauptteilmengen der
Makrobefehle des Sperry Univac-Rechners 1108. Die Zahl in jedem Kästchen stellt die Anzahl von Dezimalworten
dar, die für jede Gruppe von Funktionscodes reserviert ist was durch die Legenden an der rechten Seite
dargestellt ist Makrobefehle, deren f-Feld kleiner ist als 70 (im Oktalsystem) erscheinen an zwei Stellen; an einer
Stelle, wenn ein Direktoperand abgerufen ist und an einer anderen Stelle, wenn ein Direktoperand nicht
abgerufen ist Die Befehlszustandstabelle 38 enthält ein Wort für jeden Makrobefehl mit einem f-Feld, das gleich
oder größer als 70 (oktal) ist
Das GB-Ausgangsfeld (GRS Basisadresse) aus der Befehlszustandstabelle 38 wird zur Errechnung der absoluten
Adresse der verschiedenen Arten von GRS-Registern verwendet die durch die a-Feldcodierung des Sperry
Univac-Rechners 1108 bezeichnet sind, d. h. X, A, R und EXEC gegenüber dem Anwendersatz (das D6 Bit in dem
Prozessorzustandswort). Die absolute Adresse des durch das X-FeId bezeichneten Registers wird durch die
Verbindung des X-Feldteiles aus dem Makrobefehlsregister 13 zu den GRS-Adreßmultiplexern 77 und 78
erzeugt, wobei das D6 Bit bei 77 hiermit verkettet ist Wie oben beschrieben, ist eine der Quellen für die Adresse
zu dem lokalen Speicher 28 (F i g. 5c) das GB-FeId aus der Befehlszustandstabelle 38, das mit dem D6 Bit und
dem Bit 3 des LMA-Feldes des Mikrosteuerspeichers 36 verkettet ist Die auf diese Weise abgeleitete Speicheradresse
liefert die Orte für die Basis des gewünschten Registersatzes. Wenn das LMA-Bit 3 auf Null gesetzt ist,
so kann das GB-FeId des in der Befehlszustandstabelle gespeicherten Wortes so codiert sein, daß es das folgende
Muster einnimmt:
Verwendung D6 GB
LA 0 00
LX 0 01 wui u ;;i
Adresse des | Inhalt des |
lokalen Speichers | lokalen Speichers |
0000 | 148 |
0001 | 0 |
0010 | 10O8 |
0011 | 0 |
0100 | 154 |
0101 | 14O8 |
0110 | 12O8 |
Olli | 0 |
LR 0 10
JGD 0 11 0011 0
LA 1 00
LX 1 01
LR 1 10
JGD 1 11
Zum gleichen Zeitpunkt, an dem die obige Adresse zu dem lokalen Speicher 28 geliefert wird, wird das a-Feld
aus dem Befehls- und Adreßregister 56 des emulierten Makrobefehles zu dem B4-Bus für den lokalen Prozessor
27 tormäßig geleitet (BBS = 0). Der lokale Prozessor 27 addiert die an seinen A-Eingangsanschluß von dem
lokalen Speicher 28 gelieferte Basis mit den verbleibenden Rest (das a-Feld), wobei das Ergebnis die absolute
Adresse des gewünschten GRS-Registers ist. Das Ergebnis wird in dem Register-Adreßregister 1 (RARl)
gespeichert und dort für die Dauer der speziellen Emulierung gehalten. Diese Operationen werden unter der
Steuerung iVs Mikrobefehles »gemeinsam«, wie oben im Zusammenhang mit Fig. 15 erläutert, durchgeführt.
Der lokale Prozessor 27 addiert dann die Konstante 1 zu seinem Mikroakkumulator, um einen Zugriff zu dem
zweiten Α-Register für doppelt lange Befehle zu ermöglichen, wobei dieser Wert in RAR2 gespeichert wird. ,-,
Diese Operationen werden von dem ersten Mikrobefehl von einigen der Klassenbasen gesteuert, was z. B. in 65 ||
F i g. 16a dargestellt und im Zusammenhang mit dieser Figur erläutert wurde. Alternativ kann die Konstante 1
dadurch addiert werden, daß das geeignete Bit von LPFF oder LPFT aus dem Mikrosteuerspeicher 36 in den
Cjn-Eingang des lokalen Prozessors 27 eingegeben wird.
Bei der Emulierung des Makrobefehles »SPRINGE GROSSER UND DEKREMENTIERE« wird das mit dem
A-FeId verknüpfte j-Feld zu dem B^-Bus 29 (Tabelle 9) geleitet, wobei das zugeordnete Wort in dem Befehlszustandstabellenspeicher
38 das GB-FeId auf 11 gesetzt hat und wobei BBS aus dem Mikrosteuerspeicher 36 gleich
Oist
Wie oben im Zusammenhang mit Tabelle 11 erläutert, liefert das Klassenbasisfcld (CB) aus dem Befehbzustandstabellenspeicher
38 eine weite Gruppierung der Arten von emulierten Makrobefehlen. Es sei darauf
hingewiesen, daß die in Tabelle 1 dargestellten acht Klassen (der Mikrobefehl »gemeinsam« ist keine echte
ίο Klasse) durch das i-Bit (indirektes Bit) des Makrobefehles zu 16 Klassen verdoppelt werden. Es sei darauf
hingewiesen, daß die Befehlszustandstabelle 38 (Fig. 35) aus im Handel erhältlichen PROM-Chips (programmierbarer
Nur-Lesespeicher) ausgeführt werden kann.
Ein »Befeh! nicht bereit«-Signal IRDY) kann an die Chipbereitschaftseingänge (CE) an die Chips angelegt
werden, so daß der CB-Vektor eine enge Schleife bilden wird, d h, CB wird als Klassenbasis 0 geliefert Das
IRDY-Signal wird von der IRDY-Verriegelung geliefert, die weiter unten im Zusammenhang mit dem FETCH
1N-Signal aus den DAC-Verriegelungen 250 von F i g. 42 erläutert wird.
Das »Ab: af-Bereitstellungs-Bit« (FOS, fetch on staticize) aus der Befehlszustandstabelle 38 beginnt, wenn es
auf 1 gesetzt ist, den nächsten Makrobefehl innerhalb einer Emulierung so schnell als möglich abzurufen. Das Bit
wird auf O gesetzt, um ein Abrufen des nächsten Befehles aufgrund eines Sprungbefehles zu vermeiden, wenn die
Adresse des nächsten Befehles noch nicht errechnet wurde.
Für die Fälle, bei denen FOS — 1, ist eine herkömmliche Hardware in den Steuerschaltkreisen 41 (F i g. 5a)
enthalten, um die Anwesenheit der 1 zu erfassen, wobei ein Flankendetektor verwendet wird, der von dem
FOS-Bit in dem Befehlszustandstabellenspeicher 38 getrieben wird Der Flankendetektor wird während der
Zugriffszeit der Befehlszustandstabelle gesperrt, um eine falsche Erfassung zu verhindern. Wenn FOS erfaßt
wurde, so überträgt die Hardware P —► IARO und ruft in Übereinstimmung mit der Adresse in IARO den
nächsten Befehl ab. Wenn FOS gleich O ist, so wird das FETCH NI-Bit 13 in der oben im Zusammenhang mit
F i g. 7 erläuterten DAC-Tabelle dazu verwendet, den Makrobefehl während eines bestimmten Mikrozyklus
abzufragen, welcher Steuerpegel im Einzelfalle bei der Emulierung des Sprungbefehles nützlich ist sowie in den
oben im Zusammenhang mit dem FOS-Bit erläuterten Fällen.
Das »Linksschiebe«-Bit (SL) aus dem Befehlszustandstabellenspeicher 38 wird für den Linksschiebe-Makrobefehl
auf 1 gesetzt und wird als Bit höherer Ordnung zu dem Schiebesteuerregister 69 (F i g. 5a) auf eine
D —► SCR-Übertragung geliefert, was bei 74 dargestellt ist
Das Maskensteuerfeld (MC) des Befehlszustandstabellenspeichers 38 wird dazu verwendet, die Inversion der
Masken, die in den lokalen Speichern 24,25 und 26 (F i g. 5) enthalten sind, in Übereinstimmung mit der obigen
Tabelle 12 zu steuern. Beispielsweise sei MC = Ol und die spezielle Maske bei 000777777777b, dann wird diese
Maske auf den Α-Bus des zugeordneten Prozessors geliefert, Wenn allerdings MC = 10, so liefert der zwischen
den lokalen Speicher und den A-Eingangsanschluß des lokalen Prozessors zwischengeschaltete Komplementierer
das Komplement der Maske an den A-Eingangsanschluß des Prozessors, wobei die komplementierte Maske
in dem vorliegenden Beispiel dann 77700000000Oe ist Folglich kann eine einzige Maske dazu verwendet werden,
die linken meisten 1 Bits auszublenden (AND; logische Rechtsverschiebung) oder die rechten meisten 1 Bits
auszublenden (logisches Rechtsverschieben). Wenn MC = 11, so wird die Maske selektiv komplementiert in
Übereinstimmung mit dem Vorzeichen des Operanden, um, unter anderem, eine Vorzeichenerweiterung (sign
extension) auf einzelne Wortoperanden zu erzeugen.
F i g. 36 zeigt Einzelheiten des Multiplexers 71, des Verschiebungs/Masken-Adreß-PROM'S 70, des B-Bus-Eingangsmultiplexers
34 und der Hochgeschwindigkeitsverschiebeeinrichtung 35, die aus den Multiplexern 67
und 68 besteht Der Multiplexer 34 enthält 36 4-zu-l Multiplexer, wobei die Eingangsauswahl durch die zwei
Leitungen von dem Multiplexer 65 (F i g. 5b) ausgeführt wird. Die 36 Bits jedes der bezeichneten Eingänge,
nämlich B-Bus, GRS, MDR und D4 sind mit den Eingängen der entsprechenden 36 Multiplexern verbunden. Die
Ausgänge 210 enthalten die 36 Ausgänge von den 36 entsprechenden Multiplexern, die den Multiplexer 34
so enthalten.
Die Hochgeschwindigkeitsverschiebeeinrichtung 35 besteht aus zwei Ebenen von Multiplexern 67 und 68,
wobei jede Ebene 36 8-zu-l Multiplexerchips, wie dargestellt, enthält Der Multiplexer 67 enthält die Chips M20
bis M235 und der Multiplexer 68 enthält Chips M3o bis M335. Die Auswahleingänge zu den Multiplexern 67
werden durch die drei Ausgangsleitungen 211 aus dem Speicher 70 geliefert und die Eingangsauswahl für den
Multiplexer 68 wird durch die Leitungen 212 von dem Speicher 70 durchgeführt Die 36 Ausgänge aus den
Multiplexern 34 sind mit den Eingängen der Multiplexer 67 verbunden, wodurch die 36 Eingangsbits zu den 36
Ausgängen der Multiplexer 67 übertragen werden, und zwar in Übereinstimmung mit der Eingangsauswahl, die
durch die Leitungen 211 durchgeführt wird, um 0,1, 2, 3,4 oder 5 Stellen nach rechts verschoben. In ähnlicher
Weise werden die 36 Ausgänge aus den Multiplexern 67 mit den Eingängen der Multiplexer 68 verbunden, wobei
die Bits parallel zu den 36 Ausgängen der Multiplexer 68 übertragen werden, und zwar in Übereinstimmung mit
der durch die Leitungen 212 durchgeführten Eingangsauswahl, um 0,6,12,18,24 oder 30 zusätzliche Stellen nach
rechts verschoben. Die Verbindungen zwischen den Multiplexerebenen Ml, M2 und M3 sind so, daß eine
zirkuläre Rechtsverschiebung der hierdurch übertragenen Daten von 0—35 Positionen gesteuert werden können
mittels der Multiplexeradreßeingänge 211 und 212. Der Effekt einer zirkulären Linksverschiebung wird
durch eine komplementäre Rechtsverschiebung erreicht.
Die Verbindungen zwischen den Multiplexern 34,37 und 68 zur Ausführung der gesteuerten Hochgeschwindigkeitsparallelverschiebung
sind generell bekannt, wobei in dem Sperry Univac-Rechner 1108 eine ähnliche
Anordnung verwendet wird. Jeder der 36 Ausgänge aus dem Multiplexer 34 ist mit sechs der Multiplexer 67
verbunden und jeder der 36 Ausgänge von den Multiplexern 67 ist mit sechs der Multiplexer 68 verbunden,
wodurch die oben beschriebenen gesteuerten Verschiebungen durchgeführt werden.
Wie oben beschrieben, wird die Verschiebeeinrichtung 35 von dem 128x12 PROM 70 gesteuert Der 7
Bit-AdreSeingang für den PROM 70 wird in der oben beschriebenen Weise durch den Adreßmultiplexer 7!
geliefert Im einzelnen besteht der Multiplexer 71 aus sieben 4-zu-l Multiplexersegmenten, die auf die entsprecbenden
Bits der Adreßquellen ansprechen, wie erläutert Die Mi'ltiplexereingangsauswahl wird durch das zwei
Bit-SFT-Feld aus dem Mikrosteuerspcicher 36 bewirkt Die Auswahl wird zwischen zwei nicht verschobenen
Eingängen GRS* und μ* durchgeführt mittels eines UND-Gatters 213, das auf das BIS-FeId aus dem Mikrosteuerspeicher
36 in Obereinstimmung mit der oben beschriebenen Tabelle 2 anspricht Es sei darauf hingewiesen,
daß der GRS*-Speicher und die μ'-Eingänge zu den Multiplexern 68 beispielsweise in Übereinstimmung mit den
B-Bus-Wenen, die in den Fig. 15 und 16a dargestellt sind, angeordnet sind, wobei die gezeigten Nullen und
Einsen an die entsprechenden Multiplexersegmente des Multiplexers 68 angelegt werden. Beispielsweise werden
für μ* Nullen an die Bits 216,2!7,2M und 235 angelegt Zusätzlich werden die sieben Bits aus dem SCR-Register
69 (F i g. 5a) an Reserveeingänge der sieben letzten signifikanten Multiplexersegmente 67 angelegt zum
Anlegen an die lokalen Prozessoren zur Modifikation darin. Die Adreßaufteilung für das Verschiebungs/Masken-Adreß-Prom
70 ist in F i g. 36a dargestellt
Der Speicher 70 hat also sechs Ausgänge 214, um Adressen zu den Adreßmultiplexern des lokalen Speichers
zu liefern, wie z. B. zu dem Multiplexer 80 des lokalen Speichers 24. Die über die Leitungen 214 gelieferte
Adresse kann dazu verwendet werden, Masken in den lokalen Speichern zu bezeichnen. Bei einem Verschieben
ist es öfters erforderlich, die Eingangsoperanden zu den lokalen Prozessoren 17,18 und 19 zu maskieren. Zum
Beispiel wird ein Maskieren zu einer j-Fe!dextraktion verwendet sowie für das Emulieren der logischen Verschiebebefehle.
Folglich sind 36 Plätze in jedem der lokalen Speicher 24,25 und 26 für Masken reserviert, die für
0—35 Platzverschiebungen geeignet sind. Im Oktalsystem sind die Masken wie folgt:
0 777777777777
1 377777777777
2 177777777777
3 077777777777
35 000000000000
Die Masken können in den lokalen Speichern an irgendeiner Stelle und in irgendeiner Folge vorhanden sein.
Allerdings müssen die lokalen Speicher 24, 25 und 26 die gleiche Adresse für jede entsprechende Maske
verwenden. Obvohl 36 Masken in dem Speicher gespeichert sind, werden tatsächlich 72 Masken benötigt Zum
Beispiel fordert eine logische Rechtsverschiebung Null-Bits hoher Ordnung für einen nachfolgenden UND-Befehl
in dem lokalen Speicher und eine logische Linksverschiebung erfordert Eins-Bits hoher Ordnung. Die
nachfolgend detaillierter zu beschreibenden Komplementiereinrichtung 82 (F i g. 5b) verdoppelt wirksam die
Anzahl der Masken unter der Steuerung des Mikrosteuerspeichers 36. Der Komplementierer 82 invertiert
unabhängig von einer Bedingung die Richtung der Bits in der Maske oder bewirkt deren Inversion, so daß sie in
Obereinstimmung mit dem Vorzeichen der Eingangsvariablen SE (Tabelle 4) auftreten. Diese Fähigkeit wird zur
Vorzeichenausdehnung (sign extension) verwendet wenn j = 03s. 04& usw. ist.
F i g. 37 zeigt Einzelheiten des Multiplexers 80 (F i g. 5b), der die Adressen für den lokalen Speicher 24 liefert.
Es sei darauf hingewiesen, daß hiermit identische Multiplexer dazu verwendet werden, die Adressen für die
lokalen Speicher 25 und 26 zu liefern. Das 6-Bit LMA-FeId von dem Mikrosteuerspeicher 36 werden in sechs
D-Flip-Flops 220 zum Zeitpunkt f«> verriegelt Die sechs verriegelten LMA-Bits von den Flip-Flops 220, die
LMAR-Adresse von dem Register 81 (F i g. 5a), sowie die sechs Bits von den Prom 70 (mit Verschiebe et
bezeichnet) werden als Eingänge an sechs 3-aus-l Multiplexer 221 gelegt, die die sechs Adressenbits für den
lokalen Speicher 24 liefern. Die Adreßauswahl wird durch das zwei-Bit-LMAS-Feld aus dem Mikrosteuerspeicher
36 über Verriegelungen 222 durchgeführt. Die Verriegelungen 222 werden zum Zeitpunkt ίβο getaktet und
zum Zeitpunkt to zurückgesetzt.
F i g. 38 zeigt Einzelheiten der Komponenten 24, 82 und 83 (F i g. 5b) im Zusammenhang mit dem lokalen
Prozessor Pi- Es sei darauf hingewiesen, daß ähnliche Einzelheiten bezüglich der lokalen Prozessoren P-2 und
P-3 verwendet werden. Der lokale Speicher 24 enthält ein 64-Wort-zu-64-Bit-RAM (Speicher mit direktem
Zugriff, random access memory), das durch die sechs Bits von dem Multiplexer 221 (F i g. 37) adressiert wird und
die 40 Bit-Worte zum Einschreiben aus dem D-Bus 23 empfängt Das Schreiben wird durch ein SCHRE1BH-LM-T-Signal
gesteuert, das auf einer Leitung 223 von einem im Zusammenhang mit F i g. 39 zu beschreibenden
Schaltkreis geliefert wird. Das aus dem Speicher 24 gelesene 40 Bitwort wird an den Komplementierer 82
angelegt.
Der Komplementierer 82 enthält 40 Exklusiv- ODER-Gattf 224 mit zwei Eingängen, wobei ein Eingang
durch die entsprechenden Datenbits aus dem lokalen Speicher 24 und der andere Eingang durch ein Komplement
LMI -Signal auf einer Leitung 225 getrieben wird. Wenn das Signal auf der Leitung 225 eine logische Null
ist so wird das Wort unkomplementiert übertragen, und wenn das Signal eine logische Eins ist, so wird das
Einer-Komplement der Daten übertragen. Das Signal auf der Leitung 225 wird durch zwei UND-Gatter 226 und
227 und ein NOR-Gatter 228 wie folgt erzeugt:
[LMAS = 10 Λ MC = 10] ν [LMAS = 10 ,Λ MC = 11 ASE]
Folglich wird aus der obigen Tabelle 5 darauf hingewieser^daß die Daten nur dann komplementiert werden,
wenn das LMAS-Mikrosteuerfeld die Adresse von dem Prom 70 (F i g. 5a) als Adreßquelle für den lokalen
Speicher 24 auswählt Eine selektive Komplementierung wird durch die MC-Bits aus der Befehlszustandstabelle
38 (F i g. 5b) in Übereinstimmung mit Tabelle 12 durchgeführt und das UND-Gatter 227 steuert die Komplementierung
in Übereinstimmung mit der Vorzeichenausdehnungs-(SE)-Variablen im Hinblick auf das j-Feld, das
QW-Bit und die entsprechende unverschobene Bit-Position. Dieses Merkmal wird für die j-Feldvorzeichenausdehnung
verwendet.
Die 40-Bit-Ausgänge aus den Exklusiv-ODER-Gattern 224 des Komplementierers 82 werden an das A-Register
83 (F i g. 5b) angelegt, das aus 40 D-Verriegelungen besteht, die zum Zeitpunkt f0 getaktet werden.
F i g. 39 zeigt die Schaltkreise zur Erzeugung des »SCHREIBENe-Signa! (vgl. Leitung 223 in F i g. 38) für die
lokalen Speicher 24,25,26 und 28. Der Schaltkreis besteht aus vier D-Flip-Flops 230 mit dualem Eingang, die die
»SCHREIBE LM«-Signale für die entsprechenden lokalen Speichern liefern. Die beiden D-Eingänge zu den
Flip-Flops 230 werden durch die zwei Bits der entsprechenden WLM-Felder für die zugeordneten Prozessoren
geliefert Die Auswahl zwischen den beiden D-Eingängen wird durch den zugeordneten Entscheidungspunkt
DP7 —DPlO ausgeführt Die Flip-Flops 230 werden zum Zeitpunkt fo getaktet und zum Zeitpunkt f<to zurückgesetzt
Die entsprechenden WLM-Felder (Tabelle 10) steuern die Schreibfunktion wie folgt:
WLMl WLMO
0 0 1 1
NOP (nicht schreiben) Schreibe, wenn DP = 1 Schreibe, wenn DP = 0 Schreibe
Im einzelnen wird das SCHREIBEN-Signal wie folgt erzeugt:
DP
DP
WLMl WLMO
0 0 1 1 0 0 1 1
0 1 0
1 0 1 0 1
SCHREIBEN
NOP
Schreibe, wenn DP = 1
Schreibe
Schreibe, wenn DP = 0
Fig.40 zeigt Einzelheiten des Multiplexers 39 und der Adreßverriegelung 60, die die 10-Bit-Adresse für den
Steuerspeicher 36 liefert Die Adreßverriegelung 60 besteht aus 10 D-Verriegelungen mit dualem Eingang, um
die entsprechenden 10 Adreßbits zu liefern. Wie oben im Zusammenhang mit Tabelle 1 erläutert, wird die
Adresse NAF als Steuerspeicheradresse ausgewählt wenn DPO gleich Null ist die Adresse NAT wird als
Steuerspeicheradresse gewählt, wenn DPO gleich eins ist und wenn DPO gleich eins ist wird NAT in Abhängigkeit
von dem KJassenbasisvekior ausgewählt, der der Befehlsvektor oder Unterbrechungsvektor in Übereinstimmung
mit dem XF-FeId ist Zusätzlich werden DPI bzw. DP2 mit den beiden letzten signifikanten Bits der
Steuerspeicheradresse ODER-verknüpft, wenn NAT ausgewählt wurde. Das DPO-Signal (F i g. 8a) wird an die
A-Eingänge der Verriegelungen 60 angelegt, um die Adreßauswahl zu bewirken. Die Verriegelung 235 liefert das
2° Adreßbit zu dem Steuerspeicher 36. Das letzte signifikante Bit von NAF wird an den Di-Eingang der
Verriegelung 235 angelegt und ausgewählt, wenn DPO gleich Null ist Die letzten signifikanten Bits des Befehlsvektors, des Klassenbasisvektors und des Unterbrechungsvektors werden über entsprechende UND-Gatter
236,237 und 238 angelegt, die zu einem ODER-Gatter 239 kombiniert sind, um den Do-Eingang der Verriegelung
235 zu erzeugen, wobei der Eingang ausgewählt wird, wenn DPO gleich eins ist Die beiden Bits des XF-Feldes
werden an die UND-Gatter 236,237 und 238 angelegt, um die Auswahl der Vektoren durchzuführen, wie in dei
obigen Tabelle angegeben. Das letzte signifikante Bit von NAT wird als ein Eingang an das ODER-Gatter 23S
angelegt, wo es mit den Ausgängen der UND-Gatter 236,237 und 238 kombiniert wird, um die Steuerfunktionen
die in Tabelle 1 aufgeführt sind, auszuführen. DPI wird ebenso als ein Eingang an das ODER-Gatter 239 als Teil
des Mechanismus angelegt, um den 4-Wege-Vektorsprung durchzuführen, der oben im Zusammenhang mit der
MikroSteuerfeldern VDSO und VDSl erläutert wurde.
Die Verriegelung 240 liefert das 2'-Steuerspeicheradreßbit und empfängt Eingänge in einer Weise, die der
oben im Zusammenhang mit dem 2°-Bit beschriebenen ähnlich ist, mit der Ausnahme, daß das zweitletzte
signifikante Bit von NAF, NAT, dem Befehlsvektor, dem Klassenbasisvektor und dem Unterbrechungsvektor
verwendet werden, wie im Zusammenhang mit DP2 gezeigt, wodurch der 4-Wege-Vektorsprungeingang unter
der Steuerung von VDSl geliefert wird.
Das 22-Adreßbit wird durch eine ähnliche Logik erzeugt, mit Ausnahme, daß das drittletzte signifikante Bit
von den verschiedenen Eingängen in ähnlicher Weise wie beschrieben verwendet wird. Es sei darauf hingewiesen,
daß die DPI- und DP2-Eingänge nur mit den beiden letzten signifikanten Bits verwendet werden und daher
ähnliche Eingänge nicht in den Bits höherer Ordnung enthalten sind.
Der Klassenbasisvektor, der Befehlsvektor und der Unterbrechungsvektor werden durch entsprechende
4-Bit-, 8-Bit- und 5-Bit-Felder geliefert. Folglich werden die 4-Bits des Klassenbasisvektors an die Steuerspeicheradreßbits
3-0 angelegt, die 8-Bits des Befehlsvektors an die Steuerspeicheradreßbits 7-0 und die 5-Unterbrechungsbits
an die Steuerspeicheradreßbits 4-0, wobei die verwendete XF-Auswahllogik bei diesen Befehlen
benötigt wurde.
Das signifikanteste Steuerspeicheradreßbit 29 wird von einer Verriegelung 241 geliefert, wobei die Dp und
Do-Eingänge durch das signifikanteste Bit von NAF bzw. NAT geliefert wird. Alle Verriegelungen 60 werden
zum Zeitpunkt to getaktet.
F i g. 41 zeigt Einzelheiten zur Adressierung der Steuertabelle der aufgeschobenen Aktion (DAC), die oben im
Zusammenhang mit Fig.7 erläutert wurde. Die 5 Bits des DACT-Feldes von dem Mikrosteuerspeicher 36
werden an die entsprechenden 5 Stapel des DACT-Adreßregisters 245 angelegt, das aus 5 D-Verriegelungen
besteht. In ähnlicher Weise wird das DACF-Adreßfeld von dem Mikrosteuerspeicher 36 an 5 Stapel des
DACF-Adreßregisters 246 angelegt Die Register 245 und 246 werden zum Zeitpunkt fo getaktet. Die in dem
Register 245 verriegelte 5 Bit-D ACT-Adresse wird an die Adreßeingänge eines 32-Wort-zu-21-Bit-Prom 106 Y
und die in dem Register 246 verriegelte 5 Bit-DACF-Adresse den Adreßeingängen eines 32-Wort-zu-21-Bit-Prom
106N angelegt. Es sei darauf hingewiesen, daß die Prom's 106Y und 106N zusammen die DAC-Tabelle
enthalten, die in Fig. 7 dargestellt und unter Bezugnahme auf diese Fig. erläutert wurde. Die Speicher 106Y
und 106N sind jeweils Duplikate des anderen, wobei jeder die 27 Worte von 21 Bits speichert, die in Fig. 7
dargestellt sind. Das 21 Bit-Wort, das durch das DACT-FeId adressiert ist wird an den Ausgang des Speichers
106Y geliefert und ist als DACY (ja)-Bit bezeichnet In ähnlicher Weise liefert der Speicher 106N die 21 DACN
(nein)-Bits in Abhängigkeit von der DACF-Adresse. Folglich wird darauf hingewiesen, daß in Abhängigkeit von
den DACT- und DACF-Feldern in einem Mikrobefehlswort zwei entsprechende Worte von 21 Bits jeweils von
den Speichern 106Y und 106N geliefert werden. Die Auswahl zwischen diesen DACY- und DACN-Bits in
Übereinstimmung mit DPI 1 zur Lieferung der Steuersignale der aufgeschobenen Aktion für die Zentraleinheit
10 wird im folgenden beschrieben.
Fig.42 zeigt Steuerverriegelungen 250 der aufgeschobenen Aktion zur Lieferung der Steuersignale der
aufgeschobenen Aktion an die Zentraleinheit 10. Die DAC-Verriegelungen 250 enthalten 21 D-Flip-Flops mit
dualem Eingang, entsprechend den 21 Bits des Steuerspeichers 106 der aufgeschobenen Aktion (Fig.41 und
F i g. 7). Die Dr und Do-Eingänge der Verriegelungen 250 sind verbunden, um die entsprechenden DACN- und
DACY-Bits von den Speichern 106N bzw. 106Y von F i g. 14 zu empfangen. Die Α-Eingänge aller Verriegelungen
250 sind so verschaltet daß sie das DPI 1-Signal (F i g. 8a) empfangen und die Verriegelungen werden zum
Zeitpunkt ft> getaktet. Da der DACN-Speicher 106N (Fig.41) durch das MikroSteuerfeld DACF adressiert ist
und der DACY-Speicher 106Y durch das MikroSteuerfeld DACT adressiert ist bestimmt DPIl, ob die DACT-
oder DACF-aufgeschobene Aktion durchgeführt wird. Die Ausgänge aus den DAC-Verriegelungen 250 sind mit
verschiedenen Punkten der Zentraleinheit verbunden, um die bezeichnete Aktion zu veranlassen. Das
D —► GRS(R)-Flip-Flop liefert die Schreibsteuerung für das Schreib-GRS-FHp-Flop 79, das oben im Zusammenhang
mit F i g. 5 beschrieben wurde. Das Flip-Flop 79 wurde zum Zeitpunkt ίο gesetzt in Übereinstimmung mit
dem Zustand der D —»· GRS(R)-Verriegelung und zum Zeitpunkt i» zurückgesetzt Folglich wird darauf hingewiesen,
daß ein Schreiben in das GRS während der ersten Hälfte eines Mikrozykluses verhindert werden kann,
wenn kein Schreiben gewünscht ist da das »SCHREIBE GRS«-Flip-Flop 79 nicht gesetzt ist, wenn D — GRS(R)
gleich Null ist
Wie oben erläutert, zeigt F i g. 7 die Speichertabelle für das DAC106. Das Steuer-Prom 106 der aufgeschobenen
Aktion ist im wesentlichen eine Haupt-Bit-Liste (master-bitted list) von möglichen Aktionen, die während
des Zyklus η durchgeführt werden sollen, mit den während des Zyklus π — 1 erhaltenen Ergebnissen. Wenn die
Tabelle anzeigt daß die Quelle der D-Bus 23 ist so bestimmen die OUT-Felder, welcher Akkumulator (Pl, P2
oder P3) die Quelle ist und der DAC-Tabelleneingang bestimmt das Ziel. Die meisten der Eingänge von F i g. 7
bezeichnen ein Bestimmungsregister, das oben im Zusammenhang mit den F i g. 2 und 5 erläutert wurde und
benötigen keine weitere Erläuterung. Allerdings werden einige der Eingänge, die sich auf ein Interface des
Arbeitsspeichers 11 beziehen, im folgenden erläutert
Befehlsübernahme (staticize)
Der Verriegelungs-Befehlsspeicher (latch STAT MEM) (nicht dargestellt) in den Steuerschaltkreisen 41, die
das STAT-Signal z. B. zu dem Register 56 (F i g. 5b) liefern, wird in Abhängigkeit von dem Befehlsübernahme-Bit «j
aus dem DAC gesetzt Das Befehlsübernahme-Bit aus dem DAC hat eine Lebensdauer von nur einem Mikrozyklus,
während das STAT MEM für mehrere Zyklen gesetzt bleiben kann. Wenn der Befehl übernommen wurde,
wird das STAT MEM gelöscht
FETCH NI (rufe nächsten Befehl ab)
Zuerst wird eine P —♦· IAR- oder D —► IAR-Übertragung, die in diesem DAC-Eingang bezeichnet ist durchgeführt
Der nächste Makrobefehl wird dann in Übereinstimmung mit der Adresse in dem IAR abgerufen. Wenn
der Befehl aus dem Arbeitsspeicher 11 empfangen wurde, so wird er zu MIR übertragen. Wenn das STAT MEM
gesetzt ist, so wird der Befehl aus dem MIR13 zu dem Befehls- und Adreßregister 56 übertragen. Wenn der
Makrobefehl so ankommt, daß er von dem IST 38 decodiert werden kann (für den Klassenbasisvektorsprung)
durch ίο des Zyklus n, so wird eine Verriegelung (nicht dargestellt) IRDY (Befehlbereit) in den Steuerschaltkrei-
sen 41 durch t67 des Zyklus π — 1 gesetzt. Dies geschieht, da dynamische Variable zur Weiterschaltung in der
Entscheidungslogik 40 durch t& verfügbar sein müssen. Beim nächsten Auftreten von FETCH NI oder FOS
(FETCH ON STATICIZE) wird IRDY gelöscht Der Makrobefehl wird nicht automatisch übernommen, um eine
Steuerung für indirekte Adreßketten vorzusehen. Die f, j und a-Felder werden von dem anfänglichen Makrobefehl
zurückgehalten, während x, h, i und u ersetzt werden, wenn i = 1 in Übereinstimmung mit den Programm-
ίο Steuerflußdiagrammen der F ig. 15—30.
Wenn FETCH NI und FETCH OP in dem gleichen DAC-Eingang gleich eins sind und beide Adressen in dem
gleichen Speichermodul vorhanden sind, dann hat ein Abrufen des Operanden eine Präzedenz vor dem Abrufen
des Befehls in Übereinstimmung mit der in dem Sperry Univac-Rechner 1108 verwe ,Λ:. !.;n Prozedur.
Rufe Operanden ab (FETCH OP)
Zuerst wird eine D -* OAR-Übertragung, die in diesem DAC-Eingang bezeichnet ist, durchgeführt. Wenn
diese Übertragung stattfindet, wird eine (nicht dargestellte) Verriegelung in den Steuerschaltkreisen 41, die mit
OARBZY bezeichnet ist, gesetzt und eine weitere (nicht dargestellte) Verriegelung, die mit ORDY (Operand
bereit) bezeichnet ist, gelöscht. Danach wird ein vollständiger Wortoperand in Übereinstimmung mit der
Adresse in dem OAR abgerufen. Die j-Feld-Operationen, die in den Mikroprogrammflußdiagrammen der
F i g. 15—30 bezeichnet sind, werden durchgeführt Wenn der Operand früh genug auftritt, um zu dem B-Bus 22
durch to des Zyklus π zu gelangen, so wird ORDY durch f67 des Zyklus π — 1 gesetzt Sobald der Arbeitsspeicher
11 anzeigt, daß er mit der Benutzung der Adresse in dem OAR aufgehört hat, wird OARBZ Y gelöscht.
Speichere den Operanden
Zuerst wird eine D —► MDRW oder D —► OAR-Übertragung, die in diesem DAC-Eingang bezeichnet ist
durchgeführt Wenn eine D —► OAR-Übertragung durchgeführt wird, wird OARBZY gesetzt Der Speicher 11
wird befehligt, an der in dem OAR bezeichneten Wortadresse und der in PW (Teilwort) bezeichneten Zeichenadresse
zu schreiben. Die Speicherung eines Operanden hat immer Präzedenz vor dem Abrufen eines Befehles,
so daß die Folge »Speichern« »Ausführen« toleriert wird, wobei beide Befehle sich auf die gleiche Adresse
beziehen. Es sei darauf hingewiesen, daß »Speichere den Operanden« die Bits der rechten Hälfte 17-00 des
MDRW auf einen SLJ-Befehl hin speichern, selbst wenn der SLJ-Befehl nicht üblicherweise als Speicherbefehl
angesehen wird.
Wenn der Arbeitsspeicher 11 mit der Verwendung des Inhaltes des OAR und des MDRW geendet hat so wird
die OARBZY-Verriegelung gelöscht Der Zustand des OARBZY wird vor dem Laden des OAR oder MDRW
getestet welches von beiden jeweils früher auftritt
Die Zeitsteuerung für die DAC-Operationen ist in F i g. 14 dargestellt, wo die beiden möglichen Adreßfelder DACT und DACF während des Zyklus 1 gelesen und am Ende dieses Zykluses verriegelt werden. Während des Zyklus 2 werden die beiden DAC-Speicher 106N und 106Y (F i g. 4!) gelesen. Ungefähr zum Zeitpunkt f95 des Zyklus 2 wird eine Entscheidung getroffen, welche von beiden Adressen DACT oder DACF die richtige Adresse war. Die ausgewählten Bits werden verriegelt sofern nötig, und die bezeichnete Aktion wird während des Zyklus 3 ausgeführt (oder eingeleitet).
Die Zeitsteuerung für die DAC-Operationen ist in F i g. 14 dargestellt, wo die beiden möglichen Adreßfelder DACT und DACF während des Zyklus 1 gelesen und am Ende dieses Zykluses verriegelt werden. Während des Zyklus 2 werden die beiden DAC-Speicher 106N und 106Y (F i g. 4!) gelesen. Ungefähr zum Zeitpunkt f95 des Zyklus 2 wird eine Entscheidung getroffen, welche von beiden Adressen DACT oder DACF die richtige Adresse war. Die ausgewählten Bits werden verriegelt sofern nötig, und die bezeichnete Aktion wird während des Zyklus 3 ausgeführt (oder eingeleitet).
Fig.43 zeigt Einzelheiten der Logik52(Fig.5c). Wie oben erläutert liefert die Logik52in Abhängigkeit von
den entsprechenden IAR)7 und OARn-Bits aus dem Befehlsadreßregister 12 (IAR) und dem Operandenadreßregister
14 (OAR) die Anforderung 0 (RO) und die Anforderung 1 (Rl) sowie die D0 —► MDR und D0 —► MIR-Signa-Ie,
wie oben im Zusammenhang mit F i g. 5 erläutert Die Logik 52 spricht auch auf die »rufe Operanden ab«- und
»FETCH NI«-Signale an, die von den entsprechenden Verriegelungen der F i g. 42 geliefert werden. Die Logik
52 spricht zusätzlich auf die Quittungssignale ACKO und ACKl an, die von der der entsprechenden Datenbank
des Arbeitsspeichers 11 zugeordneten Elektronik geliefert werden. Diese Signale werden zum Zeitpunkt £«
geliefert und in den entsprechenden Flip-Flop 255 bzw. 256 verriegelt
F i g. 44 zeigt Einzelheiten des Speicherdatenregisters (lesen) 16 sowie der zugeordneten Multiplexer 53 und
UND-Gatter 57. Das Register 16 enthält 36 D-Verriegelungen mit dualem Eingang, die die entsprechenden 36
Bits der aus dem Arbeitsspeicher gelesenen Datenworte des Sperry Univac-Rechners 1108 aufnehmen. Die
Funktion des Multiplexers 53 (F i g. 5b) wird durch die Di und Do Eingänge zu jeder Verriegelung durchgeführt,
die auf die entsprechenden korrespondierenden Bits aus den beiden Speichermodulen ansprechen. Die Auswahl
zwischen den beiden Modulen Mo und Mi wird durch das D0 —► MDR-Signal bewirkt das an die Α-Eingänge von
allen Verriegelungen des Registers 16 angelegt wird, wobei dieses Signal von dem Flip-Flop 257 der F i g. 43
geliefert wird. Die MDRR-Verriegelungen werden von der Logik 261 getaktet, die auf die oben im Zusammenhang
mit Fig.43 erläuterten Signale ACKO, ACKl, DO— MDR und Dl — MDR ansprechen. Der 36 Bitausgang
aus dem Register wird als ein Eingang zu dem Multiplexer 34 (F i g. 5b) geliefert
Fig.45 zeigt die den Mehrzweckregisterstapel (GRS) adressierenden Register 33, die aus den Registern
RARl, RAR2 und RAR3 (F i g. 5a) bestehen. Jedes der Register RARl, RAR2 und RAR3 liefert eine 7-Bitadresse
zu dem Mehrzweckregisterstapel 32 aus sieben D-Verriegelungen. Das Register RARl spricht auf die Bits
D0-D6 aus dem D4-Bus 30 an, wo die 7 Bits in das Register eingetaktet werden, durch das D4 -► RARl-Signal
aus der Steuertabelle der aufgeschobenen Aktion (Fig.42). Das Register RAR2 spricht ebenfalls auf das Bit
D0-D6 aus dem D4-Bus 30 an, wobei die Bits in das Register durch das D4 — RAR2-Signal (F i g. 42) eingetaktet
werden. Das Register RAR3 spricht auf die 7 rechts gelegenen Bits der 20 links gelegenen Bits des D-Bus 23
(D20- D26) an, wobei diese Bits in das Register durch das D — RAR3-Signal (F i g. 42) eingetaktet werden. Die in
die Register verriegelten 7 Bitadressen werden den Multiplexern 77 und 78 zugeführt, wie oben beschrieben.
Fig.46, die aus den Fig.46a und 46b besteht, zeigt Einzelheiten der Mehrzweckregisterstapel-Adressierungs-Multiplexer
77 und 78 sowie die ODER-Gatter 76 (F i g. 5a). Jeder der Multiplexer 77 und 78 besteht aus
sieben 4-zu-l-Multiplexersegmenten, die durch die entsprechenden Bezugszeichen bezeichnet sind, wobei die
Zahlen in den Klammern den Rang (order) des durch das Multiplexersegment gelieferten Adreßbits bezeichnet
Beispielsweise empfangen die Multiplexersegmente 77 (0) und 78 (0) als drei ihrer Eingänge das Bit 0 von RARl
RAR2 bzw. RAR3, wobei der vierte Eingang durch das O-Bit des x-Feldes aus dem Makrobefehlsregister 13
geliefert wird. Die Ausgänge aus den Multiplexersegmenten 77 (0) und 78 (0) werden in dem ODER-Gatter 76 (0)
kombiniert, um das Adreßbit 0 zu dem Mehrzweckregisterstapel 32 zu liefern. In gleicher Weise werden die
Adreßbits 1 -3 durch ähnlich aufgebaute Multiplexersegmente und ODER-Gatter geliefert. Der Aufbau für das
Adreßbit 3 ist dargestellt Die Anordnungen für die Adreßbits 4,5 und 6 sind die gleichen wie für die Bits 0-3 mit
der Ausnahme, daß der vierte Eingang zu den Multiplexersegmenten für das Bit 4 eine hart-verdrahtete »0« ist
und der vierte Eingang zu den Multiplexersegmenten für die Adreßbits 5 und 6 durch das oben beschriebene
D6-Signal geliefert wird. Wenn die x-Feldadressierung ausgewählt ist, ist der Benutzersatz (user set) der
Indexregister ausgewählt, wenn D6 = 0, und der Ausführungssatz des Indexregisters ist ausgewählt, wenn
D6 = 1. Die D6 und »0«-Eingänge zu den Multiplexersegmenten für die Adreßbits 4-6 addieren wirksam ein
14O8, um diese Registerauswahl durchzuführen.
Die Eingangsauswahl der Multiplexersegmente wird von den GRA- und GWA-Felder aus dem Mikrosteuerspeicher
36 geliefert, wie oben im Zusammenhang mit Fig.5a und Tabelle3 beschrieben. Das Schreiben des
Mehrzweckregisterstapels 32 wird durch das Flip-Flop 79 in einer im Zusammenhang mit den Fig 5a und 42
beschriebenen Weise gesteuert
Wenn der Mehrzweckregisterstapel 32 zum Lesen durch das Makrobefehls-x-Feld (GRA = 00) adressiert ist
und das Makrobefehls-x-Feld gleich 0 ist, so ist es wünschenswert, einen Null-Indexwert aus dem Mehrzweckregisterstapel
32 zu liefern. F i g. 46c zeigt die Logik um dieses auszuführen, wenn die bezeichneten Bedingungen
existieren. Ein UND-Gatter 265 legt über einen Inverter 266 ein Signal an den Chip-Bereitstellungseingang des
Mehrzweckregisterstapel-Speicherchips, wobei das Chip außer Bereitschaft gesetzt wird und wobei der gewünschte
Ausgang mit nur N ullen geliefert wird.
F i g. 47 zeigt Einzelheiten des Adreßregisters 81 (LMAR, F i g. 5a). Das LMAR 81 besteht aus sechs D-Verriegelungen,
die auf die entsprechenden sechs letzten signifikanten Bits des D-Bus 23 ansprechen. Die Verriegelungen
werden über die Chip-Bereitstellungseingänge in Bereitschaft gesetzt, und zwar in Abhängigkeit von dem
oben im Zusammenhang mit F i g. 42 beschriebenen D -» LMAR-Signal und zum Zeitpunkt r20 getaktet. Folglich
werden, wenn D -— LMAR vorhanden ist, die Adreßbits aus dem D-Bus 23 in das Register 81 zum Zeitpunkt 6n
eingetaktet.
Fig.48 zeigt Einzelheiten der B-Bus-Auswahlkomponenten 65 und 66 (Fig.5b). Das BRG-Register 66
besteht aus zwei D-Verriegelungen BRG BIT 1 und BRG BIT 0 mit zwei dualen Eingängen. Die D-Eingänge zu
dem BRG BIT 1 -Flip-Flop werden durch das DACN- und DACY-Bit 12 aus der oben im Zusammenhang mit den
F ι g. 7 und 41 beschriebenen Steuertabelle der aufgeschobenen Aktion geliefert. Die Auswahl zwischen den Bits
wird durch das DPI 1-Signal durchgeführt, das an die Α-Eingänge der Verriegelungen angelegt ist. Die Verriegelungen
des Registers 66 werden als aufgeschobene Aktion in Bereitschaft gesetzt durch den Ausgang aus der
oben im Zusammenhang mit F i g. 42 erläuterten Lade-BRG-Verriegelung (LOAD BRG latch), wobei das LOAD
BRG-Signal an die Chip-Bereitstellungseingänge der BRG-Register-Verriegelungen angelegt ist Die BRG BITS
EINS und NULL aus der Steuertabelle der aufgeschobenen Aktion, wie von DPI 1 ausgewählt, werden in das
Register 66 zum Zeitpunkt f20 eingetaktet Der Zwei-Bit-Ausgang aus dem BRG-Register 66 wird als ein
Eingang an den Multiplexer 65 angelegt der entweder die beiden Bits aus dem BRG-Register 66 oder die beiden
Bits aus dem BIS-FeId des Mikrobefehlsspeichers 36 auswählt in Übereinstimmung mit dem BR-FeId aus dem
Mikrosteuerspeicher. Die dargestellte Logik liefert die ausgewählten zwei Bits, die als BSLR-O und BSLR-I
bezeichnet sind, zu dem Auswahleingang des Multiplexers 34, um so die B-Bus-Eingangsquellenauswahl durchzuführen.
Wenn der Schaltkreis von Fig.48 den D-Bus als Quelle für den B-Bus-Eingangsmultiplexer 34 auswählt so
wird ein Weg zur Übertragung von Daten aus dem D-Bus 23 zu dem B-Bus 22 eröffnet wobei die Zeitsteuerung
hierfür in Fig.49 dargestellt ist Wenn ein Datenergebnis in dem Mikroakkumulator währenVd~e7z^idus'f
gespeichert ist so leitet der zugeordnete Prozessor die Daten in dem Akkumulator zu dem D-Bus 23 während
des Zyklus 2 und die Information gelangt während der letzten Hälfte des Zyklus durch die Verschiebeeinrichtung
35 hindurch. Die Daten sind dann auf dem B-Bus 22 verfügbar zur erneuten Berechnung während des Zyklus 3.
Wie oben im Zusammenhang mit Fig.5 erläutert, werden die Phantom-Verzweigungsfunktionen für den
lokalen Prozessor 17 durch den Multiplexer 84 und die Funktionsverriegelung 85 durchgeführt, die die LPFT-
oder LPFF-Felder zu dem lokalen Prozessor 17 liefern, um dessen Funktion in Übereinstimmung mit DP3 zu
steuern. Wenn das Logiksignal DP3 »wahr« ist, so wird das LPFT-FeId in dem Steuerspeicher 36 während des
nächsten Mikrozyklus ausgeführt Andernfalls wird LPFF ausgeführt Die Felder LPFF und LPFT (Fig.4)
enthalten jeweils 14 Bits, um die 14 Funktionsbits (durch die Legenden S0-3. 5-7. 9-15) bezeichnet) für den
Prozessor zu liefern. F i g. 50 zeigt die zur Lieferung des So-Funktionsbits zu dem lokalen Prozessor 17 verwendete
D-Multiplexer/Verriegelung mit dualem Eingang. Die D-Eingänge der Verriegelung sind so verbunden, daß
sie das letzte signifikante Bit yon LPFF und LPFT empfangen, wobei die Auswahl dazwischen durch das an ihren
Α-Eingang angelegte DP3-Signal erfolgt Die Verriegelung wird, wie dargestellt, zum Zeitpunkt to getaktet Es
sei darauf hingewiesen, daß für den lokalen Prozessor 17 dreizehn zusätzliche derartige Verriegelungen verwendet
werden, um die bezeichneten Funktionsbits zu liefern. Die 14 Verriegelungen, die die Multiplexer/Verriege-
ίο
20
25
30
lung 84, 85 enthält, sind mit den entsprechenden Bits der LPFF- LPFT-Mikrosteuerfelder für den lokalen
Prozessor Pl verbunden, wobei das DP3-Signal mit den A-Eingängen aller Verriegelungen verbunden ist, und
der «b-Zeitsteuerin puls an deren Takteingänge angelegt wird.
Eine ähnliche Anordnung wird dazu verwendet, die Fähigkeit zur Phantom-Verzweigung für die Prozessoren
18,19 und 27 zu schaffen, mit der Ausnahme, daß die verwendeten LPFF- und LPFT-Felder diejenigen sind, die
den entsprechenden Prozessoren zugeordnet sind, wobei die Signale DP4, DP5 bzw. DP6 dazu verwendet
werden, die Verzweigungsentscheidungen zu bewirken. Es sei darauf hingewiesen, daß der S4-Funktionsbit-Eingang
zu jedem der lokalen Prozessoren mit einer logischen 1 verdrahtet ist, da der Eingang nicht verwendet
wird. Die LPFT- und LPFF-Felder (F i g. 4) für den Prozessor P4 haben 15 Bits, wobei das zusätzliche Bit mit dem
Cm-Eingang zu dem Prozessor verwendet wird, wodurch die Fähigkeit des Addierens einer Konstanten +1 in
Abhängigkeit einer Bedingung unter der Steuerung der LPFT- und LPFF-Mikrosteuerfunktionsfelder für den
Prozessor geschaffen wird.
Es sei darauf hingewiesen, daß der Multiplexer 84 und die Funktionsverriegelung 85 von F i g. 5b, die durch die
D-Flip-Flops mit dualem Eingang von F i g. 50 ausgeführt sind, dazu verwendet werden, die Drei-Wege-Überlappungsoperation
im Hinblick auf die Überlappung der Mikrobefehlsabrufung des nächsten Mikrobefehles zu
schaffen, wobei die Errechnung der ausgewählten Funktion im Hinblick auf den vorher abgerufenen Mikrobefehl
geschieht Die Funktionsverriegeiung 85 liefert das ausgewählte Funktionsfeld des vorher abgerufenen
Mikrobefehles zu dem lokalen Prozessor 17 zur Ausführung durch ihn, wobei die Funktionsfelder von dem neu
abgerufenen Mikrobefehl aus dem Steuerregister 37 zu dem Multiplexer 84 von F i g. 5 angelegt werden. Diese
neu abgerufenen Funktionsfelder liegen an den Eingängen zu den Funktionsverriegelungen, die die Funktionsfeäder
des vorhergehenden Mikrobefehles speichern und in die Verriegelung zu Beginn des nächsten Mikrozyklus
eingetastet werden, um den lokalen Prozessor während desjenigen Zyklus zu steuern, während dem der
nächste Mikrobefehl wiederum abgerufen wird.
F i g. 51 zeigt die Anordnung zum Liefern des Sg-Funktionsbits zu jedem der lokalen Prozessoren 17,18,19
und 27. Der Multiplexer 86 und die Verriegelung 87 (F i g. 5b) ist durcu eine D-Mu!tiplexer/Verriegelung mit
dualem Eingang ausgeführt, wobei deren Dr und Do-Eingänge mit den zwei entsprechenden Bits des MikroSteuerfeldes
OUT für den Prozessor Pl verbunden sind. Die Auswahl zwischen den beiden Verriegelungseingängen
wird durch das DP7-Signal durchgeführt In ähnlicher Weise werden die Verriegelungen 270 und 271 verwendet,
um das Sg-Bit zu den Prozessoren P2 und P3 unter der Steuerung der DP8 bzw. DP9-Signale zu liefern. Die
Verriegelungen Sg1, Sg2 und Sg3 werden zum Zeitpunkt fo getaktet Eine Leitung 272 liefert ein logisches 1-Signal
zu dem Sg-Fingang des Prozessors P4, da dieser Prozessor keinen Ausgangs-D-Bus benützt, wie die Prozessoren
Pl,P2undP3.
Das Sg-Funktionsbit liefert die Akkumulatorausgangssteuerung für die lokalen Prozessoren in Übereinstimmung
mit der obigen Tabelle 8. Die einzelnen Werte für Sg in Übereinstimmung mit dem OUT-FeId und dem
zugeordneten DP-Signal sind wie folgt:
45
50
55
OUT, | OUT0 | S8=0 |
0 | O | S8 = f(x) |
0 | 1 | S8 =rfx5 |
1 | O | S8 = l |
1 | 1 | |
DP
0 0 0 0 1 1 1 1
OUT1
OUT,
S8
S8 = 0 - S8=f(x) • S8=Flx7
S 8 = 1
60
65
Wie oben im Zusammenhang mit F i g. 4 und Tabelle 4 erläutert, wählt das jedem der lokalen Prozessorer
zugeordnete SCS-FeId eine von sieben setzbaren statischen Steuervariablen (SCl-SC7) aus, die in Übereinstimmung
mit dem Wert des dem Prozessor zugeordneten Entscheidungspunktes (DP7 — DPI 0) zu setzen ist.
F i g. 52 zeigt die SCS-Verriegelungen zum Halten des jedem lokalen Prozessors zugeordneten drei Bit-SCS-Feldes.
Beispielsweise werden die drei Bits SCS0 1, SCSi1, SCS2 1 des SCS-Feldes, das dem lokalen Prozessor Pl
zugeordnet ist, an die entsprechenden D-Eingänge der D-Verriegelungen 275, 276 und 277 angelegt. Die drei
Ausgänge aus den Verriegelungen 275, 276 und 277 werden einem l-aus-8-Decodierer 278 zugeführt, der eine
der 8 Ausgangsleitungen in Übereinstimmung mit der setzbaren statischen Variablen, die von dem SCS-Felti
ausgewählt wurde, mit Energie versorgt. Beispielsweise, wenn das SCS-FeId die statische Variable SCI auswählt
so ist die SCS1 = 1-Leitung mit Energie versorgt In ähnlicher Weise werden die den lokalen Prozessoren P2, P3
und P4 zugeordneten SCS-Felder verriegelt und auf die l-aus-8-Leitungen decodiert Es sei darauf hingewiesen,
daß die SCS = O-Leitung zum Setzen einer statischen Variablen nicht verwendet wird. Wenn das SCS-Mikrosteuerfeld
= 000 ist, und die SCS = O-Leitung mit Energie versorgt ist, so wird keine statische Steuervariable
verändert Die SCS-Felder w -;rden in die SCS-Verriegelungen zum Zeitpunkt feo eingetaktet s
F i g. 53 zeigt die Logik zum Setzen der ausgewählten statischen Steuervariablen (SCl — SC7) für jeden der
lokalen Prozessoren (Pl-P4) in Obereinstimmung mit dem Wert des entsprechenden Entscheidungspunktes
(DP7—DPlO). Die Werte der statischen Steuervariablen SCl-SC7 werden in entsprechende R-S-Verriegelungen
280 gesetzt Beispielsweise ist der Wert der statischen Steuervariablen SCl in die SCl-Verriegelungen durch
die Verriegelungssetzlogik 281 und die Verriegelungsrücksetzlogik 282 gesetzt Die Verriegelung SCl kann im
Hinblick auf irgendeinen der lokalen Prozessoren in Obereinstimmung mit den zugeordneten DP7—DPlO-Signalen
gesetzt werden, was durch das SCS = 1-Signal (F i g. 52), das dem einzelnen Prozessor zugeordnet ist,
gesteuert wird. Eine ähnliche Logik fügt die Entscheidungspunktwerte in die verbleibenden Verriegelungen
SC2—SC7 ein. Die Werte der statischen Steuervariablen werden durch die Logik hindurch und in die Verriegelungen
zum Zeitpunkt Ib eingetaktet
Es wird darauf hingewiesen, daß die sieben Verriegelungen 280 der statischen Steuervariablen für die vier
lokalen Prozessoren gemeinsam benutzt werdea Der oben im Zusammenhang mit den F i g. 15 bis 30 erläuterte
Mikrocode ist derart, daß nicht gleichzeitig zwei lokale Prozessoren eine Änderung des Wertes der Verriegelung
der gleichen statischen Steuervariablen erfordern. Die in den F i g. 52 und 53 dargestellten Komponenten sind in
den Steuerschaltkreisen 41, die oben im Zusammenhang mit den F i g. 2 und 5 erläutert wurden, angeordnet
F i g. 54 zeigt Einzelheiten des B4-Bus 29 sowie der Eingangsmultiplexer 61 und 62 hierzu (F i g. 5c). Die
Multiplexer 61 und 62 sind durch UND-Gatter 285 und ODER-Gatter 286 ausgeführt die durch das BBS-FeId
direkt und durch einen Inverter 287 gesteuert werden, um entweder die a- und j-Bits oder die I AR-Bits aus dem
Befehlsadreßregister 12 wahlweise zu übertragen. Die Logik 285 und 286 liefert die Bits B0-B7 des B4-Bus. Die
Bits Be—Bi 7 werden direkt von dem Register 12 über Leitungen 288 geliefert
F i g. 55 zeigt Einzelheiten der Logik 44—49 (F i g. 5c) und der Multiplexer 63 und 64. Die Multiplexer 63 und
64 bestehen aus UND- und ODER-Gattern, die auf die GB-, D6- und LMA-Felder ansprechen, um entweder die
vier Bits des LMA oder das Bit 3 des LMA zu liefern, das mit D6 und GB unter der Steuerung des LMAS-Feldes
verknüpft ist, das direkt und über einen Inverter 290 an die UND-Gatter angelegt ist Die 4 Bits, die von den
Multiplexern 63 und 64 und der Leitung 291 geliefert werden, werden mit den vier Bits des WLMA-Feldes
mehrfach ausgenutzt (multiplexed) durch die UND- und ODER-Gatter 44—48 unter der Steuerung des |f
»SCHREIBE LM4«-Flip-Flops 49. Die 4 Bits von den ODER-Gattern 47 werden als Adreßeingang an den |
lokalen Speicher 28 angelegt.
F i g. 56 zeigt Einzelheiten der Normalisierungshilfseinrichtung (Normalizer Helper). Die Normalisierungshilfseinrichtung
ist dazu vorgesehen, die Geschwindigkeit des Normalisierungsvorganges für Gleitpunktbefehle
zu vergrößern. Die Normalisierungshilfseinrichtung legt die Position des linken einen Hauptbits in einem 36
Bit-Operanden von dem D-Bus 23 fest und wandelt diese Position in einen Zählwert um. Dieser Zählwert wird zu
dem Verschiebungssteuernetzwerk 69 (F i g. 5a und 57) übertragen, so daß die entsprechende Verschiebung
vorgesehen ist, um das linke Hauptbit in die Bitposition 235 zu bewegen. Der Verschiebezählbetrag des Verschiebezählregisters
69 wird ebenfalls durch die Verschiebeeinrichtung 35 hindurch, wie oben beschrieben, an den
B-Bus angelegt so daß die lokalen Prozessoren die Charakteristik der Gleitpunktzahl entsprechend anordnen
können, in Übereinstimmung mit der Anzahl der Verschiebungen, die gefordert wurde.
Die Normalisierungshilfseinrichtung enthält 5 Prioritäts-Chips 295, wobei die Ausgänge Qo, Qi und Q2 einen
Code liefern, der die Position des links außen gelegenen Einganges Do— D7 kennzeichnet, (wobei Do als der links
außen gelegene Eingang angesehen wird), der ein Eins-Bit hieran angelegt hat Der Q3-Ausgang zeigt an, ob
einer der Eingänge D0-D7 ein Eins-Bit hieran angelegt hat. Die D-Bus-Bits D0-D35 werden an die entsprechenden
Eingänge der Prioritäts-Chips A—E angelegt, wobei die Eingänge D2—D7 des Prioritätschips E nicht
benützt werden. Es kann ein solches Prioritätschip verwendet werden, das von der Firma Motorola Semiconductor
Products im Handel erhältlich ist, wie z. B. der Prioritätscodierer MCl 0165, der in der oben angegebenen
Literaturstelle »Data Library« vollständig beschrieben ist. so
Die entsprechenden Qß-Ausgänge von den Prioritätschips A—E werden mit den entsprechenden D0- D4-Emgängen
eines Prioritätschips F verbunden. Die resultierenden Ausgänge Q2-Q0 des Prioritätschips F werden als
Auswahleingänge eines 5-zu-l-Multiplexerchips 296 verwendet. Die Q2-Ausgänge von den fünf Prioritätschips
A—E sind mit den entsprechenden fünf Eingängen des Multiplexers A verbunden. In ähnlicher Weise sind die
Qi-Ausgänge von den Prioritätschips A-E mit den Eingängen des Multiplexers B verbunden, wobei die
Qo-Ausgänge des Prioritätschips mit den Eingängen des Multiplexers C verbunden sind. Folglich sei darauf
hingewiesen, daß in Übereinstimmung mit dem Ausgang des Prioritätschips F der Multiplexer 2% an seinen drei
entsprechenden Ausgängen die drei Ausgänge Q2, Qi und Qo eines der Prioritätschips A—E liefern wird, das in
Übereinstimmung mit dem Ausgangscode des Prioritätschips F ausgewählt wurde.
Die Q2, Qi und Q0-Ausgänge des Prioritätschips F und die drei Ausgänge der Multiplexer A-C liefern den
sechs-Bit-Ausgang NH5-NH0 der Normalisierungshilfseinrichtung, um durch das Schiebesteuerregister 69 hindurch
die \dresse in das Verschiebungs-/Masken-Adreß-Prom 70 zu liefern, zur Steuerung der benötigten
Normalisierungsdatenverschiebung.
F i g. 57 zeigt Einzelheiten des Verschiebungssteuerregisters 69 (F i g. 5a). Das Register 69 besteht aus sieben
D-Verriegelungen mit dualem Eingang, wobei die Di-Eingänge der Verriegelungen SCRO-SCR5 auf die
entsprechenden D-Bus-Bits D2O-D25 ansprechen. Die Do-Eingänge zu den Verriegelungen SCRo-SCR5 emp- |
fangen die entsprechenden NH0-NH5-Ausgänge von Fig.56. Der signifikanteste Stapel des Registers emp- jji
fängt das SL-Signal und eine hart-verdrahtete »Eins« an dessen entsprechenden Di und D0-Eingängen. Die |
49 I
Auswahl zwischen den D-Eingängen der Registerverriegelungen wird durch das D -♦ SCR-Signal von dem oben
beschriebenen Steuerschaltkreis der aufgeschobenen Aktion bewirkt Es sei darauf hingewiesen, daß, wenn
D -» SCR aktiv ist, die D)-Eingänge zu den Verriegelungen ausgewählt sind, und, wenn das Signal inaktiv ist,
wobei zu diesem Zeitpunkt das NH-* SCR-Signal aktiv sein kann, die Do-Eingänge zu den Verriegelungen
ausgewählt sind. Die Verriegelungen werden zum Zeitpunkt iso getaktet, wenn entweder das D — SCR oder das
NH -► SCR-Signal aktiv ist, was durch ein ODER-Gatter 300 und ein UND-Gatter 301 geliefert wird. Das
Register liefert die sieben Ausgangsbits SCRo und SCRe wie es für das Verschieben und die Normalisierungsfunktion erforderlich ist
F i g. 58 zeigt Register 310, die zum Zwischenspeichern der DACT, DACF, OUT, WLM und SCS-Felder für
ίο einen Mikrozyklus verwendet werden, wie oben im Zusammenhang mit der Drei-Wege-Überlappung beschrieben wurde. Die entsprechenden Felder aus dem Steuerspeicherregister 37 (F i g. 5) werden in das Register 310
j zum Zeitpunkt ίο eines einzelnen Mikrozyklus eingetastet und danach in die entsprechenden Verriegelungen
zum Zeitpunkt ίο des nächsten Mikrozyklus eingetastet Folglich wird die geforderte Verzögerung um einen
Mikrozyklus durchgeführt, um die oben beschriebene Drei-Wege-Überlappung vorzusehen.
Aus der vorhergehenden Beschreibung und den Zeichnungen der detaillierten Logik ist zu ersehen, daß der
dargestellte Schaltkreis leicht unter Verwendung von kommerziell erhältlichen LSI- und MSI-Komponenten
aufgebaut werden kann, wodurch die oben angegebenen wesentlichen Kosten- und Größenvorteile erhalten
werden. Im einzelnen sind die lokalen Prozessoren 17,18,19 und 27 in der oben beschriebenen LSI-Technologie
aufgebaut, wobei die Pheripherielogik aus kommerziell erhältlicher kompatibler Logik besteht, wobei das
Schwergewicht auf der Anwendung der verfügbaren vier und acht Eingangsmultiplexerchips und verschiedenen
PROMs und RAMs liegt
Folglich wird besonders geschätzt daß der Mikroprozessorchip eine komplette funktioneile Einheit ist,
verglichen mit der bekannten Logik mit direktem Zugriff (random logic). Der Mikroprozessorchip leidet allerdings unter dem Problem der Anschlußbegrenzung (pin limitation), das oben diskutiert wurde, wenn man sich
bemüht, den Chip in einer horizontal-mikroprogrammierten Umgebung anzuwenden, in der die parallele Verwendung des Chips gefordert ist Diese Verwendung ist durch eine Konstruktion mit Chips au: kommerziell
erhältlichen Mikroprozessorchips ausgeschlossen, die generell eine sequentielle Verwendung der Chips erforrr dert. Folglich begrenzt das Anschlußbegrenzungsproblem der verfügbaren Mikroprozessorchips die Anwen
dung dieser Technologie auf kleine und mittlere Prozessoren. Daher wird es besonders geschätzt daß der oben
ι 30 beschriebene neue Aufbau des Rechners in erster Linie die Anwendung der Mikroprozessortechnologie bei der
' Ausführung eines großen Prozessors (large scale processor) erlaubt, wobei ein überragendes Kostenverhältnis
bei einem Großrechner erzielt wird, wenn die Vorteile der Mikroprozessortechnologie der leichten Erhältlichkeit der geringen Kosten und der hohen Geschwindigkeit verwendet werden.
, In Übereinstimmung mit dem oben beschriebenen Ausführungsbeispiel der Erfindung ist der Makrobefehls-
jA 35 fluß in vier Mikrobefehlsflüsse aufgespalten, wobei jeder in einem entsprechenden separaten lokalen Prozessor
,, ausgeführt wird. Es sei darauf hingewiesen, daß diese Zahl nur beispielhaft ist und nicht begrenzend, wobei eine
' Aufteilung in andere Anzahlen einer Vielzahl von Mikrobefehlsströmen innerhalb des Erfindungsgedankens
liegt Obwohl die oben beschriebene Ausführungsform der Erfindung in Ausdrücken eines langen Mikrobefehls-
/ Wortes erläutert wurde, die globale Steuerfelder zusammen mit den lokalen Steuerfeldern für jeden lokalen
40 Prozessor enthalten, wird darauf hingewiesen, daß die lokalen Steuerfelder für jeden Prozessor in Kombination
mit den globalen Steuerfeldern so angesehen werden können, daß sie separate Mikrobefehle im Hinblick auf die
ι durch die vier lokalen Prozessoren strömenden Mikrobefehlsströme sind. Im Hinblick hierauf kann das Mikro-
' befehlswort in dem Steuerspeicher 36 als vier separate Befehlsworte angesehen werden.
ι Der oben beschriebene erfindungsgemäße neue Aufbau wurde in der Form einer Vielzahl von vertikal-mikro-
programmierten lokalen Prozessoren erklärt Es sei darauf hingewiesen, daß die Erfindung auch so ausgeführt
werden kann, daß horizontal-mikroprogrammierte lokale Prozessoren verwendet werden, um die Vorteile, die
dieses bringt zu erzielen.
X
Allerdings kann diese Anordnung die Anwendung von kommerziell erhältlichen Mikroprozessorchips Schwiele riger machen, als in dem oben beschriebenen bevorzugten Ausführungsbeispiel.
U
so Obwohl der grundlegend neue Aufbau unter Verwendung einer Vielzahl von Mikrobefehlsströmen zum
Emulieren eines einzelnen Makrobefehlsstromes, wie oben beschrieben, die erläuterten wirklichen Vorteile
bringt sei darauf hingewiesen, daß die vorliegende Erfindung eine Zentraleinheit schafft die wesentliche
Vorteile mit sich bringt, wie oben erläutert wodurch eine Zentraleinheit geschaffen wird, die beträchtlich
außerhalb der Grenzen liegt die bei dem Aufbau eines heutigen Großrechners zu beachten sind. Folglich erlaubt
die vorliegende Erfindung den Aufbau eines Großrechners, bei dem eine Vielzahl von Mikroprozessoren
verwendet wird, wobei wesentliche Kostenvorteile gegenüber den bekannten Konstruktionslösungen erhalten
werden.
Obwohl die vorliegende Erfindung in Ausdrücken eines Emulators des Sperry Univac-Rechners 1108 beschrieben wurde, sei darauf hingewiesen, daß die Erfindung generell auf die Konstruktion irgendeines Rechners
anwendbar ist, insbesondere wenn es wünschenswert ist, eine Vielzahl von Mikroprozessoren zu verwenden.
Claims (41)
1. Prozessor zum gleichzeitigen Ermitteln und Bereitstellen zweier Adressen von Makrobefehls- und/oder
i— Datenwortregistern eines bereichsweise adressierbaren Hauptspeichers durch zumindest vier arithmetisch/
logische Funktionseinheiten, sowie zur Ein-/Ausgabe eines derartigen Wortes in ein bzw. aus einem solchen
Register, enthaltend ein Makrobefehlswort-Register zur Aufnahme eines aus dem Hauptspeicher ausgelesenen
Makrobefehlswort mit mehreren Feldern zur Adressierung von Registern eines aus integrierten Schaltungen
aufgebauten Steuerspeichers, die mehrere Felder zur Steuerung an die arithmetisch/logischen Funktionseinheiten
ausgeben, dadurch gekennzeichnet, daß die arithmetisch/logischen Funktionseinheiten
(17—19, 27) jeweils aus mehreren unter sich parallel geschalteten (LSI-)Schaltungschlps (101) von
hohem Integrationsgrad mit einem an ihrem einen Eingang (A) angeschlossenen Nebenspeicher (24—26,28)
und mit einem an ihrem Ausgang (D) angeschlossenen Akkumulator (105) aufgebaut sind, und daß in
Abhängigkeit von dem im Makrobefehlswort-Register (13) vorübergehend festgehaltenen Makrobefehlswort die arithmetisch/logischen Funktionseinheiten (17—19, 27) gemeinsam durch mehrere Steuerfelder
is eines entsprechend im Steuerspeicher (36) adressierten Makrobefehiswortes zur gleichzeitigen Ausführung
eines Makrobefehls in jeder Funktionseinheit beaufschlagbar sind.
2. Prozessor nach dem Anspruch 1, dadurch gekennzeichnet, daß zwischen dem jeweiligen (LSI-)Schaltungschip
(101) und seinem Akkumulator (105) eine um ein Bit verschiebende Schaltung (104) angeschlossen
ist, zwischen der und den beiden um ein Bit verschiebenden Schaltungen (104) der benachbarten (LSI-)Schaltungschips
(101) das Bit von höchster Bedeutung (MSB) und das Bit niederster Bedeutung (LSB) übertragbar
sind.
3. Prozessor nach dem Anspruch 2, dadurch gekennzeichnet, daß von der um ein Bit verschiebenden
Schaltung (104) beim ausschließlichen Empfang von Nullen ein Anzeigesignal an ein UND-Glied abgebbar
ist, das mit allen um ein Bit verschiebenden Schaltungen (104) der arithmetisch/logischen Funktionseinheit
(17—19) in Verbindung steht
4. Prozessor nach dem Anspruch 1, dadurch gekennzeichnet, daß aus dem (LSI-)Schaltungschip (101) von
höchstem Rang der arithmetisch/logischen Funktionseinheiten (17—19,27) Uberlaufsignale als Variable an
eine Entscheidungsschaltung (40) ausgebbar sind.
5. Prozessor nach dem Anspruch 1, dadurch gekennzeichnet, daß durch ein (CC-)Steuerfeld des Mikrobefehlswortes
aus dem Steuerspeicher (36) die arithmetisch/logischen Funktionseinheiten (17—19) zur Bearbeitung
jeweils zweier Adreßwörter aus je 20 Bits mit oder ohne Endübertrag oder eines Operandenwortes aus
36 Bits mit Endverschiebung einstellbar sind.
6. Prozessor nach dem Anspruch 1, dadurch gekennzeichnet, daß der andere Eingang (B) der arithmetisch/
logischen Funktionseinheiten (17—19) an einem Wähler (34) angeschlossen ist, von dem ein Speicherdaten-Register
(16), ein allgemeiner Registerstapel (32) oder eine der arithmetisch/logischen Funktionseinheiten
(17—19,27) für eine Übertragung zum anderen Eingang (B) auswählbar ist.
7. Prozessor nach dem Anspruch 6, dadurch gekennzeichnet, daß der Wähler (34) durch ein (BlS-)Steuerfeld
des Mikrobefehlswortes aus dem Steuerspeicher (36) oder durch den Inhalt eines mit Hilfe einer
Aufschubsteuer-Tabelle (106) zu beladenden (BRG-)Registers (66) über einen weiteren Wähler (65) einstellbar
ist, dem zur Einstellung ein (BR-)Steuerfeld des Mikrobefehlswortes zuführbar ist.
8. Prozessor nach dem Anspruch 6, dadurch gekennzeichnet, daß zwischen dem Wähler (34) und einer zu
den anderen Eingängen (B) der arithmetisch/logischen Funktionseinheit (17—19) führenden (B-)Sammelleitung
(22) eine Schiebeschaltung (35) vorgesehen ist, die hinsichtlich der Größe der von ihr herbeizuführenden
Verschiebungen von einem dem Lesen dienenden Speicher (70) aus einstellbar ist, der über einen von einem
(SFT-)Steuerfeld des Mikrobefehlswortes einstellbaren Wähler (71) adressierbar ist.
9. Prozessor nach den Ansprüchen 6 und 8, dadurch gekennzeichnet, daß die Schiebeschaltung (35) zwei in
Reihe geschaltete Multiplexer (67 und 68) enthält, von denen der erste (67) mit dem Ausgang eines Schiebezähl-Registers
(69) und der zweite (68) mit dem Ausgang des allgemeinen Registerstapels (32) und mit dem
(u-)Feld des Makrobefehlswort-Registers (13) verbunden ist.
10. Prozessor nach den Ansprüchen 8 und 9, dadurch gekennzeichnet, daß dem zuletzt genannten Wähler
(71) eine Adresse zur Unterdrückung von Verschiebungen, mehrere Adressen für Konstanten zwecks Ausrichtung
der vom allgemeinen Registerstapel (32) und/oder (u-)Feld des Makrobefehlswort-Registers (13)
herangeführten Wörter bzw. Wortabschnitte, ferner Adressen aus dem Schiebezähl-Register (69) oder aus
dem (j-)Feld des Makrobefehlswort-Registers (13) zuführbar sind, das in einem Addierer (72) mit einer
Konstanten verknüpfbar ist.
11. Prozessor nach den Ansprüchen 9 und 10, dadurch gekennzeichnet, daß das Schiebezähl-Register (69)
von einer zur Normierung beitragenden Schaltung (75) belegbar ist, die an den Ausgängen (D) der arithme-
*· tisch/logischen Funktionseinheiten (17—19) angeschlossen ist.
12. Prozessor nach den Ansprüchen 9 und 10, dadurch gekennzeichnet, daß das Schiebezähl-Register (69)
durch ein (SL-)Feld eines von einer Befehlszustands-Tabelle (38) ausgegebenen Wortes und von den Ausgängen
(D) der arithmetisch/logischen Funktionseinheiten (17—19) her belegbar ist.
13. Prozessor nach den Ansprüchen 6,9 und 10, dadurch gekennzeichnet, daß drei Adressierungs-Register
(RARl — RAR3) und ein mit einem Anzeiger (D6) verknüpfbares (x-)Feld des Makrobefehlswort-Registers
(13) prallel an zwei Wählern (77 und 78) angeschlossen sind, und daß der eine Wähler (77) zum Auslesen eines
Wortes aus dem allgemeinen Registerstapcl (32) von einem (GRA-)Steuerfeld des Mikrobefehlswortes aus
dem Stcucrspeicher (36) und der andere Wähler (78) zum Belegen des allgemeinen Registerstapels (32) durch
ein Wort von einem (GWA-)Steuerfeld des Mikrobefehlswortes einstellbar ist.
14. Prozessor nach dem Anspruch 13, dadurch gekennzeichnet, daß mit den beiden Wählern (77 und 78) ein
Flipflop (79) zu ihrer abwechselnden Aktivierung verbunden ist
15. Prozessor nach dem Anspruch 13, dadurch gekennzeichnet, daß das erste Adressierungs-Register
(RARl) mit einer absoluten Adresse des allgemeinen Registerstapels (32) belegbar ist, die von einer der
arithmetisch/logischen Funktionseinheiten (27) mit Hilfe des (a-)Feldes aus dem Befehlswort-Register (13)
errechnet ist
16. Prozessor nach dem Anspruch 13, dadurch gekennzeichnet, daß das dritte Adressierungs-Register
(RAR3) mit einer Adresse des allgemeinen Registerstapels (32) belegbar ist, die von einer der arithmetisch/
logischen Funktionseinheiten (17—19) mit Hilfe des (u-)Feldes aus dem Makrobefehlswort-.Register (13)
errechnet ist
17. ?rozessor nach dem Anspruch 12, dadurch gekennzeichnet, daß entsprechend der Belegung eines
(GB-)Feldes des von der Befehlszustands-Tabelle (38) ausgegebenen Wortes von einem (BBS-)Steuerfeld des
Mikrobefehlswortes aus dem Steuerspeicher (36) entweder zumindest ein Teil des Inhaltes eines Befehlsadreß-Registers
(12) oder miteinander verknüpft (j- und a-)Felder aus dem Makrobefehlswort-Register (13)
als Basisadresse auswählbar sind, die zur Errechnung der absoluten Adresse des allgemeinen Registerstapels
(32) einer der arithmetisch/logischen Funktionseinheiten (27) zuführbar ist
18. Prozessor nach dem Anspruch 17, dadurch gekennzeichnet, daß ein erster Teil (Bits 17-8) des Inhaltes
des Befehlsadreß-Registers (12) unmittelbar der zuletzt genannten arithmetisch/logischen Funktionseinheit
(27), ein zweiter Teil (Bits 7-4) gemeinsam mit dem (j-)Feld des Makrobefehlswort-Registers (13) einem
ersten der Funktionseinheit (27) vorgeschalteten Wähler (61) und ein dritter Teil (Bits 3-0) gemeinsam mit
dem (a-)Feld aus dem Makrobefehlswort-Register (13) einem zweiten der Funktionseinheit (27) vorgeschalteten
Wähler (62) zuführbar sind, und daß die beiden Wähler (61 und 62) vom (BBS-)Steuerfeld des Mikrobefehlswortes
derart einstellbar sind, daß entweder der betreffende Teil (Bits 7-4 bzw. 3-0) des Inhaltes des
Befehlsadreß-Registers (12) oder das jeweilige (j- oder a-)Feld des Makrobefehlswort-Registers (13) zur
arithmetisch/logischen Funktionseinheit (27) übertragen wird.
19. Prozessor nach den Ansprüchen 1 und 7 bis 9, dadurch gekennzeichnet daß zur Adressierung des
Nebenspeichers (24) einer der arithmetisch/logischen Funktionseinheiten (17—19) ein von einem (LMAS-)
Steuerfeld des Mikrobefehlswortes einstellbarer Wähler (80) vorgesehen ist an dem eine Adresse aus einem
(LMA-)Steuerfeld des Mikrobefehlswortes, eine Adresse aus einem Adreßregister (81), das unter der Steuerung
der Aufschubsteuer-Tabelle (106) belegbar ist oder eine Adresse aus dem für die Einstellung der
Schiebeschaltung (35) vorgesehenen Speicher (70) auswählbar ist
20. Prozessor nach den Ansprüchen 17 und 19, dadurch gekennzeichnet daß jeweils zwischen dem Ausgang
des Nebenspeichers (24—26) und dem einen Eingang (A) der arithmetisch/logischen Funktionseinheit
(17—19) eine das Komplement bildende Schaltung (82) und ein Zwischenregister (83) in Reihe liegen, und daß
die das Komplement bildende Schaltung (82) durch ein (LMAS-)Steuerfeld des Mikrobefehlswortes, durch
ein (MC-)Feld des von der Befehlszustands-Tabelle (38) ausgegebenen Wortes oder durch ein (SE-)Feld eines
eine statische Variable festhaltenden Registers der Steuerschaltungen (41) betätigbar ist
21. Prozessor nach den Ansprüchen 1 und 20, dadurch gekennzeichnet, daß an dem einen Eingang (A) der
arithmetisch/logischen Funktionseinheiten (17—19) ein Multiplexer (100) angeschlossen ist, der mit dem
Zwischenregister (83) und dem Ausgang des Akkumulators (105) verbunden ist, und daß die Ausgangssignale
des Multiplexers (100) dem (LSI-)Schaltungschip (101) und einer Maskierschaltung (102) an dem anderen
Eingang (B) des (LSI-)Schaltungschip (101) zuführbar sind.
22. Prozessor nach dem Anspruch 1, dadurch gekennzeichnet, daß die arithmetisch/logischen Funktionseinheiten (17—19 und 27) für die Bestimmung der von ihnen zu übernehmenden Funktion mehrere Steuereingänge
(So—S15) aufweisen, an die Funktionsbits jeweils über Zwischenregister (85,87 bzw. 90) und Wähler
(84,86 bzw. 89) heranführbar sind.
23. Prozessor nach dem Anspruch 4, dadurch gekennzeichnet, daß die Entscheidungsschaltung (40) eine
erste Reihe Wähler (112), denen zahlreiche statische Variablen aus einem Pufferspeicher (110) und (SVO- bis
SV5-)SteuerfeIder des Mikrobefehlswortes aus dem Steuerspeicher (36) zuführbar sind, zur Ausgabe einer
dem betreffenden Wähler (112) zugeordneten statischen Variablen (SV0 bis SV5), sowie eine zweite Reihe
Wähler (113), denen zahlreiche dynamische Variablen aus einem weiteren Pufferspeicher (111) und (DVO- bis
DV5-)Steuerfelder des Mikrobefehlswortes aus dem Steuerspeicher (36) zuführbar sind, zur Ausgabe einer
dem betreffenden Wähler (113) zugeordneten dynamischen Variablen (DV0 bis DV5) enthält.
24. Prozessor nach dem Anspruch 4, dadurch gekennzeichnet, daß die Entscheidungsschaltung (40) logische
Funktionsrechner in Form von Speichern (114) zur Ausgabe logischer Funktionen aus zwei statischen
und zwei dynamischen Variablen (SV0 bis SV5 bzw. DVo bis DV5) enthält, die einzeln durch ein (LFCO- bis
LFC5-)Steuerfeld des Mikrobefehlswortes aus dem Steuerspeicher (36) und jeweils zwei der statischen
Variablen (SVo bis SV5) aus zwei Wählern (112) der ersten Reihe adressierbar sind.
25. Prozessor nach den Ansprüchen 23 und 24, dadurch gekennzeichnet, daß die von den Speichern (114)
ausgegebenen Signale (00 bis 03,10 bis 13,20 bis 23,...) Funktionswählern (115—126) zuführbar sind, die von
je einem der (JDS,- VDSO-, VDSl-, PDSl- bis PDS4-, DDSl- bis DDS4- und DADS-)Steuerfelder des
Mikrobefehlswortes aus dem Steuerspeicher (36) und von jeweils zwei der dynamischen Variablen (DVo bis
DV5) aus zwei Wählern (113) der zweiten Reihe zur Ausgabe eines von Entscheidungssignalen (DPO bis
DPIl) einstellbar sind.
26. Prozessor nach den Ansprüchen 22 und 25, dadurch gekennzeichnet, daß zur Anlegung der Funktionsbits an die Steuereingänge der arithmetisch/logischen Funktionseinheiten (17—19,27) jeweils einem Wähler
(84 bzw. 89) zwei (LPFT- und LPFF-)Steuerfelder des Mikrobefehlswortes aus dem Steuerspeicher (36)
zuführbar sind, von denen eines durch die Einstellung des Wählers (84 bzw. 89) mit Hilfe eines der Entscheidungssignale
(DP3 bis DP6) aus der Entscheidungsschaltung (40) auswählbar ist.
27. Prozessor nach dem Anspruch 26, dadurch gekennzeichnet, daß von einem der Wähler (89) ein Funktionsbit
einem gesonderten Eingang (CIN) einer der arithmetisch/logischen Funktionseinheiten (27) zuführbar
ist
28. Prozessor nach den Ansprüchen 22 und 25, dadurch gekennzeichnet, daß zum Anschluß des jeweiligen
Akkumultators (105) an den Ausgang (D) bestimmter arithmetisch/logischer Funktionseinheiten (17—19)
jeweils einem Wähler (86) ein (OUT-)Steuerfeld des Mikrobefehlswortes aus dem Steuerspeicher (36) über
zumindest zwei Eingänge zuführbar ist, von denen nur einer durch die Einstellung des Wählers (86) mit Hilfe
jeweils eines der Entscheidungssignale (DP7 — DP9) aus der Entscheidungsschaltung (40) auswählbar ist.
29. Prozessor nach den Ansprüchen 22, 25 oder 28, dadurch gekennzeichnet, daß in Gegenwart eines der
ίο Entscheidungssignale (DP7—DP9) von einem (WLM-)Steuerfeld des Mikrobefehlswortes aus dem Steuerspeicher
(36) der Vorgang des Einschreiben in den Nebenspeicher (24 bis 26) der jeweiligen arithmetisch/logischen
Funktionseinheit (17—19) einstellbar ist.
30. Prozessor nach den Ansprüchen 20 und 25, dadurch gekennzeichnet, daß in Gegenwart von Entscheidungssignalen
(DP7 — DPlO) von einem (SCS-)Steuerfeld des Mikrobefehlswortes aus dem Steuerspeicher
! 5 (36) eine von mehreren statischen Steuervariablen (SCO—SC7) in einem Register der Steuerschaltungen (41)
auswählbar ist
31. Prozessor nach den Ansprüchen 1 und 17, dadurch gekennzeichnet, daß als Adresse des Nebenspeichers
(28) einer der arithmetisch/logischen Funktionseinheiten (27) das (LMA-)Steuerfeld des Mikrobefehlswortes aus dem Steuerspeicher (36) verwendbar ist.
32. Prozessor nach dem Anspruch 31, dadurch gekennzeichnet, daß der erste Teil (Bits 0 und 1) des
(LM A-)Steuerfeldes des Mikrobefehlswortes über einen ersten Wähler (63) sowie der zweite Teil (Bit 2) über
einen zweiten Wähler (64) an den Nebenspeicher (28) heranführbar sind, und daß die beiden Wähler (63 und
64) durch ein (LMAS-)Steuerfeld des Mikrobefehlswortes derart einstellbar sind, daß entweder die betreffenden
Teile (Bits 0,1 bzw. 2) des (LMA-)Steuerfeldes oder das (GB-)Feld des von der Befehlszustands-Tabeile
(38) ausgegebenen Wortes, das mit einem Signal zur Ausgabe eines X-, R- oder Α-Registers des allgemeinen
Registerstapels (32) verknüpfbar ist durch die Wähler (63 und 64) zum Nebenspeicher (28) übertragen
werden.
33. Prozessor nach dem Anspruch 32, dadurch gekennzeichnet, daß der dritte Teil (Bit 3) des (LMA-)Steuerfeldes
des Mikrobefehlswortes aus dem Steuerspeicher (36) und die Ausgangssignale der beiden Wähler
(63 und 64) dem einen Eingang eines dem Nebenspeicher (28) vorgeschalteten ODER-Gliedes (47) und ein
(WLMA-)Steuerfeld des Mikrobefehlswortes dem zweiten Eingang des ODER-Gliedes (47) zuführbar sind,
und daß von einem Schaltflipflop (49) der eine oder andere Eingang des ODER-Gliedes (47) abgetrennt wird.
34. Prozessor nach dem Anspruch 1, dadurch gekennzeichnet daß zur Adressierung des Steuerspeichers
für einen Sprung zu einer Mikroroutine mehrere Felder (f, j und a) des Makrobefehlswortes aus dem
Makrobefehlswort-Register (13) in ein Halteregister (56) übertragbar sind, und daß zumindest zwei Felder (f
und j) zu einem zwischengeschalteten Multiplexer (39) übertragen und dort mit einem (NAT-)Steuerfeld
eines zuvor aus dem Steuerspeicher (36) ausgegebenen Mikrobefehlswortes verknüpft werden.
35. Prozessor nach den Ansprüchen 12, 17, 20, 32 und 34, dadurch gekennzeichnet, daß von den (f- und
j-)FeIdern des Makrobefehlswortes aus dem Halteregister (56) die Befehlszustands-Tabeile (38) in Form
eines dem Lesen dienenden Speichers adressierbar ist von dem ein Wort aus mehreren Feldern für zusätzliche
Adressierungen ausgegeben wird.
36. Prozessor nach den Ansprüchen 34 und 35, dadurch gekennzeichnet daß zur Adressierung des Steuerspeichers
(36) für einen Sprung zu einer von mehreren Klassenbasis-Mikroroutinen ein (CB-)Feld des von der
Befehlszustands-Tabeile (38) ausgegebenen Wortes als Klassenbasisvektor zum Multiplexer (39) übertragbar
ist
37. Prozessor nach den Ansprüchen 25 und 34, dadurch gekennzeichnet daß gemeinsam mit dem (NAT-)
Steuerfeld des Mikrobefehlswortes aus dem Steuerspeicher (36) dem Multiplexer (39) ein weiteres (NAF-)
Steuerfeld des Mikrobefehlswortes und aus der Entscheidungsschaltung (40) eines der Entscheidungssignale
(DPO) zuführbar sind, von dem eines der beiden (NAT- und NAF-)Steuerfelder unwirksam gemacht wird.
38. Prozessor nach den Ansprüchen 35 bis 37, dadurch gekennzeichnet daß dem Multiplexer (39) ein
(XF-!Steuerfeld des Mikrobefehlswortes aus dem Steuerspeicher (36) zuführbar ist von dem zur Adressierung
des Steuerspeichers (36) für einen Sprung eine ODER-Verknüpfung des (NAT-)Steuerfeldes mit dem
Klassenbasisvektor oder mit einem Unterbrechungsvektor herbeiführbar ist, der bei der Wahrnehmung
einer Unterbrechungsanforderung aufgestellt wird.
39. Prozessor nach den Ansprüchen 36 bis 38, dadurch gekennzeichnet, daß zur indirekten Adressierung
des Steuerspeichers (36) der Klassenbasisvektor bei seiner Übertragung zum Multiplexer (39) mit einer
statischen Variablen (IDl) kombinierbar ist die von dem (i-)Feld des Makrobefehlswortes aus dem Makrobefehlswort-Register
(13) und von einem Anzeigersignal (D7) abgeleitet wird.
40. Prozessor nach den Ansprüchen 25 und 38, dadurch gekennzeichnet, daß dem Multiplexer (39) eines der
weiteren Entscheidungssignale (DPI, DP2) aus der Entscheidungsschaltung (40) zuführbar ist, das mit einem
der beiden unbedeutendsten Bits des (NAT-)Steuerfeldes des Mikrobefehlswortes für einen Vierwegevektorsprung
logisch verknüpft wird.
41. Prozessor nach den Ansprüchen 7 und 19, dadurch gekennzeichnet daß die Aufschubsteuer-Tabelle
(106) durch eines von zwei (DACT- und DACF-)Steuerfeldern des Mikrobefehlswortes aus dem Steuerspeieher
(36) adressierbar ist und daß das von ihr (106) ausgegebene Wort eine aufgeschobene Adressenübertragung,
Makrobefehls- und/oder Datenwortübertragung oder einen anderen aufgeschobenen Vorgang bewirkt
42 Prozessor nach dem Anspruch 41, dadurch gekennzeichnet daß von einem der Entscheidungssignale
42 Prozessor nach dem Anspruch 41, dadurch gekennzeichnet daß von einem der Entscheidungssignale
(DPlI) aus der Entscheidungsschaltung (40) das eine der beiden (DACT- und DACF-)Steuerfelder des
Mikrobefehlswortes unwirksam gemacht wird.
Die Erfindung betrifft einen Prozessor zum gleichzeitigen Ermitteln und Bereitstellen zweier Adressen von 1
Makrobefehls- und/oder Datenwortregistern eines bereichsweise adressierbaren Hauptspeichers durch zumin- jf'
dest vier arithmetisch/logische Funktionseinheiten, sowie zur Ein-/Ausgabe eines derartigen Wortes in ein bzw. |
aus einem solchen Register, enthaltend ein Makrobefehlswort-Register zur Aufnahme eines aus dem Hauptspei- to §
eher ausgelesenen Makrobefehlswortes mit mehreren Feldern zur Adressierung von Registern eines aus inte- |·
grierten Schaltungen aufgebauten Steuerspeichers, die mehrere Felder zur Steuerung an die arithmetisch/logi- [·
sehen Funktionseinheiten ausgeben. >■
Aus der USA-Patentschrift Nr. 33 89 380 ist eine Datenverarbeitungsanlage mit einem umfangreichen Haupt- ?>
speicher bekannt, der zahlreiche Register mit jeweils 36 Bitplätzen aufweist, die willkürlich einzeln, aber auch 15 ;■
bereichsweise adressierbar sind. In dem einen Abschnitt dieses Hauptspeichers, der sog. Befehlsbank, werden die ~
Befehlswörter und in dem anderen Abschnitt, der sog. Datenbank, die Operanden, also Datenwörter und y.
Konstanten untergebracht. Dadurch daß während der Ausführung eines Befehles bei entsprechender Berech- i%
nung zweier Adressen abwechselnd auf die Befehls- und Datenbank des Hauptspeichers zugegriffen werden .';
kann, wird die Arbeitsgeschwindigkeit der Datenverarbeitungsanlage gesteigert. In ihrem Rechenwerk werden 20 έ'
die tatsächlichen Berechnungen, wie Additionen, Multiplikationen an den Datenwörtern mit Fest- oder Gleit- ; :
kommaformat, und logische Funktionen, wie Verschieben und Vergleichen, ausgeführt. Zur vorübergehenden .■
Speicherung von Zwischenergebnissen enthält das Rechenwerk mehrere innere Speicherregister, sog. A- und |
X-Register. Wenn durch ein vorgegebenes Befehlswort festgelegt ist, daß das Rechenwerk benutzt werden soll, V:
werden die Datenwörter von einem Programmsteuerwerk über die X-Register zu den Α-Registern übertragen, 25 :.
damit an ihnen durch arithmetisch/logische Funktionseinheiten die vorgeschriebenen Operationen ausgeführt
werden. Das Rechenergebnis läuft dann über ein oder mehrere X-Register zu in einem Steuerspeicher angeordneten
a-Registern, die aus integrierten Schaltungen bestehen, deren Zugriffszeit von nur 125 nsec klein gegen die
Schreib-/Lesezeit des Hauptspeichers von 750 nsec ist. Da der Steuerspeicher nur über 128 Register mit jeweils
36 Bitplätzen verfügt, unterscheidet sich seine Kapazität wesentlich von der des Hauptspeichers; wegen seiner 30
geringen Zugriffszeit kann während eines einzigen Lese-/Schreibzyklus des Hauptspeichers mehrmals auf den
Steuerspeicher zugegriffen werden.
Innerhalb dieser Datenverarbeitungsanlage ist ein Prozessor angeordnet, der sechs arithmetisch/logische
Funktionseinheiten zur Ermittlung zweier Adressen unter Mitwirkung eines im Steuerspeicher adressierten ~t
B-Registers aufweist. Mit Hilfe einer dritten Adresse aus einem schrittweise weitergeschalteten Programm-Re- 35 ,,
gister des Prozessors wird in einem ersten Adressiervorgang aus der Befehlsbank des Hauptspeichers ein ^
Befehlswort mit 36 Bits zu einem Befehlswort-Register hin ausgelesen, das in sieben Felder unterteilt ist. Von
einem b-Feld dieses Befehlswortes wird ein B-Register des Steuerspeichers adressiert, dessen Inhalt von nur 18 *·?
Bits zu drei der arithmetisch/logischen Funktionseinheiten hin ausgegeben wird. Einer von ihnen wird ein u-Feld ί|
des Befehlswort-Registers unmittelbar zugeleitet, das eine relative Adresse eines Befehles oder eines Operanden 40 ||
darstellt, während den beiden anderen (zweiten und dritten) Funktionseinheiten jeweils eine Größe zugeführt gf
wird, die durch eine Addition eines Teiles der genannten relativen Adresse mit dem Inhalt des einen oder ^
anderen von zwei Feldern eines Zustandsregisters des Prozessors gebildet ist. In den drei Funktionseinheiten W
werden Additionen bzw. Verknüpfungen vorgenommen, und das Ergebnis der ersten Funktionseinheit gelangt B
in die sechste arithmetisch/logische Funktionseinheit, in der es mit einer dritten Größe aus dem Zustandsregister 45
verglichen wird. Je nach dem Vergleichsergebnis wird die von der zweiten oder dritten Funktionseinheit
ermittelte Adresse, die sich dementsprechend entweder auf die Befehlsbank oder die Datenbank bezieht, in
einem zweiten Adressiervorgang des Hauptspeichers als absolute Adresse benutzt, während die andere überzählige
Adresse fallengelassen wird, also ungenutzt beseitigt wird. Bei diesem zweiten Adressiervorgang wird
der Inhalt des gerade adressierten Registers aus dem Hauptspeicher ausgelesen oder unter Löschung seines 50
bisherigen Inhaltes durch Einschreiben erneuert
Diese soweit erläuterte Datenverarbeitungsanlage aus dem jähre i9ö5 hat im jähre 1973 insofern eine
Erweiterung erfahren, als dem Hauptspeicher ein dritter Bereich zur Speicherung von Zeichen zugeordnet
wurde, die nicht durch ein volles Wort von 36 Bits, sondern durch ein Halb-, Drittel-, Viertel- oder Sechstelwort
dargestellt werden können. Wie aus der deutschen Offenlegungsschrift Nr. 24 25 574 hervorgeht, hat eine 55
derartige Erweiterung des Hauptspeichers eine weitergehende Nutzung der Register des Steuerspeichers, sowie
eine Unterteilung ihres Formates in mehrere Felder zur Folge, die je eine gesonderte Funktion übernehmen.
Der Adressierung eines der 16 B-Register des Steuerspeichers durch das b-Feld des im Befehlswort-Register
festgehaltenen Befehlswortes entspricht in dieser erweiterten Ausführungsform die Adressierung eines von
mehreren Xx-Registern durch ein x-Feld des Befehlswortes. Das jeweilige Xx-Register ist jedoch in zwei Felder 60
xm und χ, von je 18 Bits unterteilt Während das Feld xm wie der Inhalt eines B-Registers an der Berechnung der
absoluten Adresse des Hauptspeichers aus einer relativen Adresse in den drei arithmetisch/logischen Funktionseinheiten teilnimmt, dient das Feld Xj lediglich einer Abänderung des Feldes xm um feste Beträge, die in einem
nachgeschalteten Addierer erfolgt, dem die beiden Felder xm und x, gemeinsam zugeleitet werden. Das Rechenergebnis
tritt danach wieder in das Feld xm ein. Auf diese Weise bewirkt die Adressierung nur eines der 65
Xx-Register des Steuerspeichers durch das x-Feld des Befehlswortes die Ausgabe einer Folge sich um einen
festen Wert unterscheidender Wörter an die drei arithmetisch/logischen Funktionseinheiten des Prozessors.
An dem bereits genannten dritten Bereich des Hauptspeichers sind mit Positionierschaltungen zusammenwir-
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US05/830,303 US4199811A (en) | 1977-09-02 | 1977-09-02 | Microprogrammable computer utilizing concurrently operating processors |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2837852A1 DE2837852A1 (de) | 1979-03-08 |
DE2837852C2 true DE2837852C2 (de) | 1985-10-03 |
Family
ID=25256708
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2837852A Expired DE2837852C2 (de) | 1977-09-02 | 1978-08-30 | Prozessor zum gleichzeitigen Ermitteln und Bereitstellen zweier Adressen von Befehls- und/oder Datenwortregistern eines bereichsweise adressierbaren Hauptspeichers |
Country Status (7)
Country | Link |
---|---|
US (1) | US4199811A (de) |
JP (1) | JPS5496335A (de) |
CA (1) | CA1114955A (de) |
DE (1) | DE2837852C2 (de) |
FR (1) | FR2402251B1 (de) |
GB (1) | GB2005056B (de) |
IT (1) | IT1099022B (de) |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4312034A (en) * | 1979-05-21 | 1982-01-19 | Motorola, Inc. | ALU and Condition code control unit for data processor |
US4338661A (en) * | 1979-05-21 | 1982-07-06 | Motorola, Inc. | Conditional branch unit for microprogrammed data processor |
US4370709A (en) * | 1980-08-01 | 1983-01-25 | Tracor, Inc. | Computer emulator with three segment microcode memory and two separate microcontrollers for operand derivation and execution phases |
US4577282A (en) * | 1982-02-22 | 1986-03-18 | Texas Instruments Incorporated | Microcomputer system for digital signal processing |
US4519031A (en) * | 1982-02-22 | 1985-05-21 | Texas Instruments Incorporated | Microcomputer with accumulator saturation upon overflow |
US4592005A (en) * | 1982-07-06 | 1986-05-27 | Sperry Corporation | Masked arithmetic logic unit |
US4870644A (en) * | 1982-09-21 | 1989-09-26 | Xerox Corporation | Control crash diagnostic strategy and RAM display |
US4514846A (en) * | 1982-09-21 | 1985-04-30 | Xerox Corporation | Control fault detection for machine recovery and diagnostics prior to malfunction |
US4550382A (en) * | 1982-09-21 | 1985-10-29 | Xerox Corporation | Filtered inputs |
JPS59132070A (ja) * | 1983-01-18 | 1984-07-30 | Mitsubishi Electric Corp | アレイ演算用デ−タ処理装置 |
US4720784A (en) * | 1983-10-18 | 1988-01-19 | Thiruvengadam Radhakrishnan | Multicomputer network |
CA1223969A (en) * | 1984-10-31 | 1987-07-07 | William M. Johnson | Microcode control of a parallel architecture microprocessor |
JPH0766329B2 (ja) * | 1985-06-14 | 1995-07-19 | 株式会社日立製作所 | 情報処理装置 |
US4748585A (en) * | 1985-12-26 | 1988-05-31 | Chiarulli Donald M | Processor utilizing reconfigurable process segments to accomodate data word length |
US4833599A (en) * | 1987-04-20 | 1989-05-23 | Multiflow Computer, Inc. | Hierarchical priority branch handling for parallel execution in a parallel processor |
US5179703A (en) * | 1987-11-17 | 1993-01-12 | International Business Machines Corporation | Dynamically adaptive environment for computer programs |
JPH02190930A (ja) * | 1988-12-29 | 1990-07-26 | Internatl Business Mach Corp <Ibm> | ソフトウエア命令実行装置 |
EP0432075B1 (de) * | 1989-11-09 | 1997-02-26 | International Business Machines Corporation | Multiprozessor mit relativ atomaren Befehlen |
US5210839A (en) * | 1990-12-21 | 1993-05-11 | Sun Microsystems, Inc. | Method and apparatus for providing a memory address from a computer instruction using a mask register |
US5539911A (en) * | 1991-07-08 | 1996-07-23 | Seiko Epson Corporation | High-performance, superscalar-based computer system with out-of-order instruction execution |
US5673427A (en) * | 1994-03-01 | 1997-09-30 | Intel Corporation | Packing valid micro operations received from a parallel decoder into adjacent locations of an output queue |
US5586277A (en) * | 1994-03-01 | 1996-12-17 | Intel Corporation | Method for parallel steering of fixed length fields containing a variable length instruction from an instruction buffer to parallel decoders |
US5600806A (en) * | 1994-03-01 | 1997-02-04 | Intel Corporation | Method and apparatus for aligning an instruction boundary in variable length macroinstructions with an instruction buffer |
US5630083A (en) * | 1994-03-01 | 1997-05-13 | Intel Corporation | Decoder for decoding multiple instructions in parallel |
US5537629A (en) * | 1994-03-01 | 1996-07-16 | Intel Corporation | Decoder for single cycle decoding of single prefixes in variable length instructions |
US5559974A (en) * | 1994-03-01 | 1996-09-24 | Intel Corporation | Decoder having independently loaded micro-alias and macro-alias registers accessible simultaneously by one micro-operation |
US5566298A (en) * | 1994-03-01 | 1996-10-15 | Intel Corporation | Method for state recovery during assist and restart in a decoder having an alias mechanism |
US5758116A (en) * | 1994-09-30 | 1998-05-26 | Intel Corporation | Instruction length decoder for generating output length indicia to identity boundaries between variable length instructions |
US5867701A (en) * | 1995-06-12 | 1999-02-02 | Intel Corporation | System for inserting a supplemental micro-operation flow into a macroinstruction-generated micro-operation flow |
US5815724A (en) * | 1996-03-29 | 1998-09-29 | Intel Corporation | Method and apparatus for controlling power consumption in a microprocessor |
US6996813B1 (en) | 2000-10-31 | 2006-02-07 | Sun Microsystems, Inc. | Frameworks for loading and execution of object-based programs |
US7020874B2 (en) * | 2001-03-26 | 2006-03-28 | Sun Microsystems, Inc. | Techniques for loading class files into virtual machines |
US7096466B2 (en) | 2001-03-26 | 2006-08-22 | Sun Microsystems, Inc. | Loading attribute for partial loading of class files into virtual machines |
US7543288B2 (en) * | 2001-03-27 | 2009-06-02 | Sun Microsystems, Inc. | Reduced instruction set for Java virtual machines |
US6957428B2 (en) | 2001-03-27 | 2005-10-18 | Sun Microsystems, Inc. | Enhanced virtual machine instructions |
US7228533B2 (en) * | 2001-08-24 | 2007-06-05 | Sun Microsystems, Inc. | Frameworks for generation of Java macro instructions for performing programming loops |
US6988261B2 (en) * | 2001-08-24 | 2006-01-17 | Sun Microsystems, Inc. | Frameworks for generation of Java macro instructions in Java computing environments |
US7058934B2 (en) | 2001-08-24 | 2006-06-06 | Sun Microsystems, Inc. | Frameworks for generation of Java macro instructions for instantiating Java objects |
US7039904B2 (en) * | 2001-08-24 | 2006-05-02 | Sun Microsystems, Inc. | Frameworks for generation of Java macro instructions for storing values into local variables |
US6938241B1 (en) * | 2001-12-10 | 2005-08-30 | Lsi Logic Corporation | Compiler independent bit-field macros |
US7698539B1 (en) * | 2003-07-16 | 2010-04-13 | Banning John P | System and method of instruction modification |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3380025A (en) * | 1964-12-04 | 1968-04-23 | Ibm | Microprogrammed addressing control system for a digital computer |
US3421150A (en) * | 1966-08-26 | 1969-01-07 | Sperry Rand Corp | Multiprocessor interrupt directory |
US3470540A (en) * | 1967-04-24 | 1969-09-30 | Rca Corp | Multiprocessing computer system with special instruction sequencing |
US3593300A (en) * | 1967-11-13 | 1971-07-13 | Ibm | Arrangement for automatically selecting units for task executions in data processing systems |
US3641505A (en) * | 1969-06-25 | 1972-02-08 | Bell Telephone Labor Inc | Multiprocessor computer adapted for partitioning into a plurality of independently operating systems |
US3631405A (en) * | 1969-11-12 | 1971-12-28 | Honeywell Inc | Sharing of microprograms between processors |
FR2136845B1 (de) * | 1971-05-07 | 1973-05-11 | Inf Cie Intern | |
US3760365A (en) * | 1971-12-30 | 1973-09-18 | Ibm | Multiprocessing computing system with task assignment at the instruction level |
JPS495544A (de) * | 1972-05-04 | 1974-01-18 | ||
US3916383A (en) * | 1973-02-20 | 1975-10-28 | Memorex Corp | Multi-processor data processing system |
JPS49113541A (de) * | 1973-02-26 | 1974-10-30 | ||
US3848234A (en) * | 1973-04-04 | 1974-11-12 | Sperry Rand Corp | Multi-processor system with multiple cache memories |
US3905023A (en) * | 1973-08-15 | 1975-09-09 | Burroughs Corp | Large scale multi-level information processing system employing improved failsaft techniques |
US3875391A (en) * | 1973-11-02 | 1975-04-01 | Raytheon Co | Pipeline signal processor |
FR2253435A5 (de) * | 1973-11-30 | 1975-06-27 | Honeywell Bull Soc Ind | |
JPS537336B2 (de) * | 1973-12-29 | 1978-03-16 | ||
US4123794A (en) * | 1974-02-15 | 1978-10-31 | Tokyo Shibaura Electric Co., Limited | Multi-computer system |
US3943494A (en) * | 1974-06-26 | 1976-03-09 | International Business Machines Corporation | Distributed execution processor |
US3980992A (en) * | 1974-11-26 | 1976-09-14 | Burroughs Corporation | Multi-microprocessing unit on a single semiconductor chip |
GB1464570A (en) * | 1974-11-27 | 1977-02-16 | Ibm | Microprogramme control units |
JPS51144142A (en) * | 1975-06-06 | 1976-12-10 | Hitachi Ltd | Information processing |
US4041461A (en) * | 1975-07-25 | 1977-08-09 | International Business Machines Corporation | Signal analyzer system |
US4075687A (en) * | 1976-03-01 | 1978-02-21 | Raytheon Company | Microprogram controlled digital computer |
US4071890A (en) * | 1976-11-29 | 1978-01-31 | Data General Corporation | CPU-Synchronous parallel data processor apparatus |
US4077060A (en) * | 1976-12-27 | 1978-02-28 | International Business Machines Corporation | Asymmetrical multiprocessor system |
-
1977
- 1977-09-02 US US05/830,303 patent/US4199811A/en not_active Expired - Lifetime
-
1978
- 1978-08-03 CA CA308,638A patent/CA1114955A/en not_active Expired
- 1978-08-30 DE DE2837852A patent/DE2837852C2/de not_active Expired
- 1978-08-30 FR FR7824987A patent/FR2402251B1/fr not_active Expired
- 1978-08-31 IT IT27237/78A patent/IT1099022B/it active
- 1978-09-01 GB GB7835398A patent/GB2005056B/en not_active Expired
- 1978-09-01 JP JP10636378A patent/JPS5496335A/ja active Granted
Also Published As
Publication number | Publication date |
---|---|
IT7827237A0 (it) | 1978-08-31 |
JPS5496335A (en) | 1979-07-30 |
GB2005056B (en) | 1982-02-03 |
DE2837852A1 (de) | 1979-03-08 |
IT1099022B (it) | 1985-09-18 |
US4199811A (en) | 1980-04-22 |
GB2005056A (en) | 1979-04-11 |
FR2402251B1 (fr) | 1986-09-05 |
CA1114955A (en) | 1981-12-22 |
JPS6311697B2 (de) | 1988-03-15 |
FR2402251A1 (fr) | 1979-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2837852C2 (de) | Prozessor zum gleichzeitigen Ermitteln und Bereitstellen zweier Adressen von Befehls- und/oder Datenwortregistern eines bereichsweise adressierbaren Hauptspeichers | |
DE2837872A1 (de) | Digitalrechner mit ueberlappender betriebsweise unter verwendung einer bedingten steuerung zur minimierung von zeitverlusten | |
DE2357003C2 (de) | Prozessor für eine Mehrprogramm-Datenverarbeitungsanlage | |
DE69433339T2 (de) | Lade-/Speicherfunktionseinheiten und Datencachespeicher für Mikroprozessoren | |
DE3049437C2 (de) | Matrixanordnung einer Vielzahl von Verarbeitungselementen | |
DE69833008T2 (de) | Prozessor mit instruktionskodierung mittels eines schablonenfeldes | |
DE2540975C2 (de) | Datenverarbeitungseinrichtung zur Ausführung mehrerer gleichzeitig ablaufender Prozesse | |
DE2855106C2 (de) | Einrichtung zur Durchführung von bedingten Verzweigungen | |
DE2755273C2 (de) | ||
DE69129569T2 (de) | Maschine mit sehr langem Befehlswort für leistungsfähige Durchführung von Programmen mit bedingten Verzweigungen | |
DE2714805C2 (de) | ||
DE2230102C2 (de) | Mikroprogrammierter Prozessor mit bitparalleler Datenübertragung | |
DE2752298C2 (de) | ||
DE69132129T2 (de) | In der Grundzahl 4 arbeitende Übertragvorgriffsbäume | |
DE2023354C2 (de) | Datenverarbeitungsanlage mit einem Mikrobefehlsspeicher | |
DE2318069C2 (de) | Mikroprogrammierte Rechenanlage mit Erweiterung von Steuerfunktionen mittels festverdrahteter logischer Matrix | |
DE2524046C2 (de) | Elektronische Datenverarbeitungsanlage | |
DE1813916B2 (de) | Elektronische Datenverarbeitungsanlage | |
DE1549523B2 (de) | Datenverarbeitungsanlage | |
DE69826404T2 (de) | Datenverarbeitungssystem mit mehreren Prozessoren, die eine Registerbank gemeinsam benutzen | |
DE2524229A1 (de) | Datenverarbeitungssystem mit pyramidenfoermiger hierarchie des steuerflusses | |
EP0010185B1 (de) | Virtuell-Adressiervorrichtung für einen Computer | |
DE2517276A1 (de) | Datenverarbeitungssystem | |
DE4420703A1 (de) | Mikrocomputer | |
DE2835095A1 (de) | Gekoppeltes, mikroprogrammiertes prozessorsystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OAP | Request for examination filed | ||
OD | Request for examination | ||
OI | Miscellaneous see part 1 | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |