DE2658950A1 - Mikroprogrammierte verarbeitungseinheit sowie verfahren zur organisation derselben - Google Patents
Mikroprogrammierte verarbeitungseinheit sowie verfahren zur organisation derselbenInfo
- Publication number
- DE2658950A1 DE2658950A1 DE19762658950 DE2658950A DE2658950A1 DE 2658950 A1 DE2658950 A1 DE 2658950A1 DE 19762658950 DE19762658950 DE 19762658950 DE 2658950 A DE2658950 A DE 2658950A DE 2658950 A1 DE2658950 A1 DE 2658950A1
- Authority
- DE
- Germany
- Prior art keywords
- address
- microinstruction
- control
- register
- memory
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
5101581 Ge 1 22· Dezember 1976
HONEYWELL INFORMATION SYSTEMS INC.
200 Smith Street
Waltham, Mass.r USA
Waltham, Mass.r USA
Mikroprogrammierte Verarbeitungseinheit sowie Verfahren zur Organisation derselben.
Die Erfindung bezieht sich auf eine mikroprogrammierte Verarbeitungseinheit
nach dem Gattungsbegriff des Anspruches 1 sowie auf ein Verfahren zur Organisation dieser Verarbeitungseinheit.
Zur Ausführung von Befehlen gibt es bislang programmierte Steuereinheiten mit verschiedenartigem Aufbau. Diese Einheiten
besitzen normalerweise einen getrennten Zwischenspeicher, der zur Speicherung von Informationsparametern dient und zusätzlich
für die Steuerung und Datenverarbeitungsoperationen als temporärer Speicher herangezogen wird. Als Beispiel für die Art
des Aufbaus einer solchen Steuereinheit sei auf die US-PS 3 913 074 hingewiesen. Die dort beschriebene bekannte Einrichtung
erfordert zusätzliche Speicherschaltkreise, um die erforderlichen Speicherplätze des Zwischenspeichers zu bilden.
Ebenso erfordert die bekannte Einrichtung Schaltkreise, um sicherzustellen, daß die Zykluszeit des Steuerspeichers und
70 9 827/07B3
des Zwischenspeichers in geeigneter Weise synchronisiert ist. Durch diese Maßnahmen wird der Umfang hinsichtlich der Steuerung
und der Taktvorgabe der mikroprogrammierten Verarbeitungseinheit vergrößert.
Es ist daher die Aufgabe der vorliegenden Erfindung, eine mikroprogrammierte
Verarbeitungseinheit anzugeben, die sich durch einen verhältnismäßig einfachen Aufbau auszeichnet. Die Lösung
dieser Aufgabe gelingt gemäß der im Anspruch 1 gekennzeichneten Erfindung. Weitere vorteilhafte Ausgestaltungen der Erfindung
sowie eines Verfahrens zur Organisation der mikroprogrammierten Verarbeitungseinheit sind den Unteransprüchen entnehmbar.
Gemäß der Erfindung weist die mikroprogrammierte Verarbeitungseinheit eine adressierbare Steuerspeichereinheit mit einer Vielzahl
von Speicherplätzen auf, wobei jeder Speicherplatz Mikrobefehle (Firmware) speichern kann, die jeweils einen Operationscodeteil
aufweisen. Vor der Verarbeitung des Firmwarecodes kann die Anzahl der einen Zwischenspeicherbereich definierenden
Speicherplätze vergrößert oder vermindert werden, indem die gewünschte Anzahl von Speicherplätzen mit einem Hinweisfeld
oder einem Wortnamen, der den Speicherplatz als Zwischenspeicher-Speicherplatz
festlegt, definiert wird.
Insbesondere wird die in dem Steuerspeicher zu speichernde Information
symbolisch codiert und dieser Code in geeignete Bitmuster von "1" und "O" umgewandelt, die sodann in den Steuerspeicher
geladen werden. Die Größe des Zwischenspeicherbereiches wird durch symbolischen Hinweis auf die gewünschte Anzahl von Speicherplätzen
festgelegt, wobei diese Anzahl von Speicherplätzen einen Zwischenspeicherbereich hinsichtlich einer vorgegebenen
Operation bilden. Bei der vorliegenden Einrichtung wird ein 11O"-Bitmuster
in jeden Speicherplatz zusammen mit den geeigneten Prüfbits geladen.
709827/0753
Im Betrieb versetzt ein Adressregister den Steuerspeicher in die Lage, Mikrobefehlsworte zur übertragung in Ausgangsregister
abzurufen und diese durch Decodierschaltkreise zu decodieren. Mikrobefehle, die durch ihre Codierung das Auslesen oder Einschreiben
solcher Zwischenspeicher-Speicherplätze vorgeben, verhindern die Interpretation des Inhalts dieser Speicherplätze
als Mikrobefehle und interpretieren stattdessen diese Inhalte als Zwischenspeicher-Daten. Hierdurch wird eine Operationscode-Decodierung
und die Erzeugung von Subbefehlssignalen für normale Registerübertragungen vermieden. Stattdessen wird
der Zugriff auf einen durch ein zweites Adressregister festgelegten Speicherplatz für das Lesen und Einschreiben von Daten
freigegeben. Im bevorzugten Ausführungsbeispiel entspricht die Zwischenspeicheradresse dem Inhalt des zweiten Adressregisters,
das zuvor unter Mikroprogrammsteuerung vor der Ausführung des Lese- oder Schreib-Mikrobefehls geladen würde. Es sind Mittel
vorgesehen, um die Zwischenspeicheradresse nach dem Abruf eines jeden Lese- oder Schreib-Mikrobefehls automatisch um eins zu
erhöhen. Dieser Aufbau gestattet das Einschreiben in eine Anzahl aufeinanderfolgender Zwischenspeicher-Speicherplätze, ohne
daß ein weiteres Laden des zweiten Registers unter Mikroprogrammsteuerung erforderlich wäre.
Es ist somit ersichtlich, daß die gleichen Steuerspeicher-Speicherplätze,
die während der Ausführung einer Operationsart Mikrobefehle speichern, ebenfalls während der Ausführung einer anderen
Operationsart als Zwischenspeicher-Speicherplätze dienen können. Ein solcher Aufbau ist wünschenswert, wenn eine mikroprogrammierte
Verarbeitungseinheit Testroutinen vor der Ausführung von den normalen Operationen zugeordneten Aufgaben auszuführen hat. Es werden
daher als Zwischenspeicher-Speicherplätze benutzte Speicherplätze während normaler Operationen mit Mikrobefehlen verschiedener
Testroutinen geladen. Nach der Beendigung der Testoperatiori^
Speicherplätze sodann in der zuvor erwähnten Weise codiert,
709827/0753
um Zwischenspeicher-Speicherplätze zu bilden, wobei diese
Speicherplätze bei der Ausführung von Befehlen als Arbeitsspeicherplätze für die aus dem Hauptspeicher aufgenommenen
Adressen und Daten dienen.
Dadurch, daß ein getrennter Zwischenspeicher nicht benötigt wird, setzt die Anordnung gemäß der vorliegenden Erfindung
die mikroprogrammierte Verarbeitungseinheit in die Lage, die Mikrobefehlsausführung und die Speicheroperation hinsichtlich
des Zwischenspeichers innerhalb der Zykluszeit zu bewerkstelligen. Hierdurch wird der Aufwand hinsichtlich der Steuer- und
Taktschaltkreise,wie sie normalerweise bei der Ausführung solcher
Operationen benötigt werden, vermindert.
Weiterhin kann der Zwischenspeicherbereich in der zuvor erläuterten
Weise verändert werden, ohne daß hierzu Veränderungen hinsichtlich der Adressensteuerschaltkreise des Steuerspeichers
erforderlich wären. Wenn es daher erforderlich ist, den Zwischenspeicherbereich zu vergrößern, beispielsweise um eine Seitenunterteilung
durchzuführen, so macht dies lediglich die Definition einer größeren Anzahl unbenutzter Speicherplätze im Steuerspeicher
als Teil des Zwischenspeichers erforderlich.
Anhand eines in den Figuren der beiliegenden Zeichnung dargestellten
Ausführungsbeispieles sei nunmehr die erfindungsgemäße Verarbeitungseinheit sowie deren Organisation beschrieben. Es
zeigen:
709827/0753
Figur 1 ein Blockdiagramm eines Systems, in welchem das
Prinzip der vorliegenden Erfindung verwirklicht ist, Figur 2 in.näheren Einzelheiten den Prozessor-Schnittstellenadapter
200 gemäß Figur 1,
Figur 3 die verschiedenen Mikrobefehlsformate, wie sie von
dem Adapter 200 verarbeitet werden,
Figur 4 die Organisation des Steuerspeichers 210-10 gemäß Figur 2,
Figuren 5a bis 5h verschiedene Blöcke innerhalb von Figur 2 in näheren Einzelheiten und
Figuren 6a bis 6c Taktdiagramme zur Beschreibung der Wirkungsweise
des erfindungsgemäßen Systems.
Zentralsystem gemäß Figur 1
Aus Figur 1 geht hervor, daß das System einen Zentralprozessor 100 aufweist, der an eine Systemsteuereinheit SCU-IlO angeschlossen
ist, die ihrerseits verschiedenen Einheiten innerhalb des Systems den Zugriff auf irgendeinen aus einer Anzahl von Speichermodulen
innerhalb des Hauptspeichers 150 gestattet. Außer mit einer Anzahl verschiedener Anschlüsse des Hauptspeichers
150 ist die Systemsteuereinheit mit einer Anzahl von Anschlüssen einer Ein/Ausgabe-Steuereinheit oder Multiplexer IOM-120 verbunden,
der die Operation einer Anzahl von Ein/Ausgabe-Geräten durch Subsysteme 130 und 140 steuert. Das Subsystem 130 steuert
mehrere Bandeinrichtungen 130-1 bis 130-n. Das Subsystem 140 steuert mehrere Platteneinheiten 140-1 bis 140-n.
Im Hinblick auf die vorliegende Erfindung können die Einheiten
100 bis 150 in der Art ausgebildet sein, wie dies in den US-Patentschriften
3 413 613 und 3 514 772 beschrieben ist. Das Verwaltungs-Steuer-Subsystem oder die Betriebssystem-Software
für die Überwachung und Durchführung der Operation des im vorliegenden Ausführungsbeispiel benutzten Datenverarbeitungssystems kann die in dero UQrES, 3-6J.& 045 beschriebene Form aufweisen.
Gemäß Figur 1 ist eine Zentraleinheit S2P-3OO an einen
Prozessor-Schnittstellenadapter PIA-200 angeschlossen. Die Zentraleinheit 300 kann im Hinblick auf die vorliegende
Erfindung einen herkömmlichen Aufbau aufweisen. Beispielsweise kann sie von der Form sein, wie sie in der Veröffentlichung
"Model 3200 Summary Description", veröffentlicht durch Honeywell Inc., Copyright 1970, Bestell-Nr. 111.0015.
OOO.1-C52 beschrieben ist. Hinsichtlich des Aufbaus der
Zentraleinheit sei ferner auf die US-Patentschriften 3 323 110 und 3 811 114 verwiesen.
Der Prozessor-Schnittstellenadapter 200 ist ein mikroprogrammierter
Prozessor, der als Daten- und Steuerschnittstelle zwischen
dem äußeren Zentralprozessor 300 und dem Zentralsystem dient, wodurch das System zur Emulation von Zielsystemprogrammen befähigt
wird.. Der Adapter 200 ist direkt mit einem der Anschlüsse der Systemsteuereinheit 100 verbunden, so daß hinsichtlich
des Gesamtsystems keine Hardwaremodifikationen erforderlich sind. Zur Ausführung der vielfältigen Operationen,
wie sie erforderlich sind, um den Prozessor 300 in die Lage zu versetzen, direkt gewisse Befehlsarten eines Zielsystemprogrammes
auszuführen, muß der Adapter 200 eine Anzahl verschiedener Operationen ausführen können. Der Adapter 200 macht
von der vorliegenden Erfindung Gebrauch, um den Aufwand und die Speicheranforderungen der mikroprogrammierten Verarbeitungseinheit auf ein Minimum herabzudrücken.
Prozessor-Schnittstellenadapter 200
Aus Figur 2 ist ersichtlich, daß der Adapter 200 einen Steuerabschnitt
201 und einen Ein/Ausgabe-Verarbeitungsabschnitt aufweist. Der Steuerabschnitt 201 stellt im Hinblick auf die
vorliegende Erfindung den wichtigsten Abschnitt dar und erzeugt Subbefehlssignale zur Steuerung der Operation des Prozessors
709827/0753
in Abhängigkeit von Befehlen, wie sie von dem Zentralprozessor 100 empfangen werden. Insbesondere erzeugt dieser Abschnitt Subbefehlsignale,
die den Prozessor 300 steuern, Daten zu und aus dem Hauptspeicher 150 übertragen und eine vom dem Prozessor
benutzte Steuertafel ansteuern.
Der Ein/Ausgabe-Verarbeitungsabschnitt 210 umfaßt die Schnittstellenschaltkreise,
die den Adapter 200 an die Systemsteuereinheit SCU-IlO, die Steuertafel und die Datenleitungen des
Prozessors 300 anschließen. Dieser Abschnitt führt die verschiedenen Operationen hinsichtlich der Datenmanipulation und
der Speicheradressierung durch, wobei diese Operationen unter der Steuerung des Steuerabschnittes 201 oder unter der Steuerung
des Prozessors 300 stattfinden. Die beiden Hauptabschnitte seien nunmehr in näheren Einzelheiten erläutert.
Steuerabschnitt.
Gemäß Figur 2 ist ersichtlich, daß dieser Abschnitt einen Steuerspeicher
201-10 aufweist, der so organisiert ist, daß er ein Maximum von 5.120 Worten aufweist, wobei jedes Wort 36 Bits umfaßt.
Die Steuerspeicherorganisation ist schematisch in Figur dargestellt. Wie aus Figur 4 hervorgeht, umfassen die unteren
1.024 Speicherplätze die durch die Oktaladressen 00000 bis 01777 bezeichnet sind, vier Festwertspeicherschaltkreise (ROM), von
denen jeder eine Breite von 9 Bit aufweist. Diese Speicherplätze speichern eine Anzahl von Mikroprogrammen für einen
Hardware-Basislogiktest (BLT) wie sie bei einem vorausgehenden Test der Adapterschaltkreise und des Steuerabschnittes, bei der
Zugriffsgewinnung auf den Hauptspeicher 115 und beim Laden der
anderen Abschnitte des Steuerspeichers 110 mit Prüfroutinen und normalen Betriebsmikroprogrammen oder mit Firmware benutzt werden,
709827/0753
Die verbleibenden Speicherplätze wie sie gemäß Fig. 4 durch die Oktaladressen 02000 bis 11777 bezeichnet sind, umfassen
bis zu zwei Abschnitte von Speicherplätzen (RMI), in die Information
eingeschrieben v/erden kann. Diese Speicherplätze speichern die Prüfroutinenüberlagerung und individuelle
Firmware, die durch eine Mikroprogramm-Laderoutine geladen werden, wobei diese Laderoutine in dem Festwertspeicherbereich
des Steuerspeichers 201-10 gespeichert ist. Um die Anzahl der erforderlichen Speicherplätze auf ein Minimum zu reduzieren,
werden die Prüfroutinen in eine Anzahl verschiedener Lade- und Bearbeitungsfolgen unterteilt, die einander überlappen,
bis schließlich die individuelle Firmware in den Steuerspeicher 210-10 geladen wird. Hinsichtlich der vorliegenden Erfindung
kann der Steuerspeicher aus herkömmlichen Schaltkreisen aufgebaut sein, wobei diese Schaltkreise von der Art sein können,
wie sie in der Veröffentlichung "The Integrated Circuits Catalog for Design Engineers", veröffentlicht von Texas
Instruments, Inc., 1972 beschrieben sind.
Gemäß Figur 4 wird das Komplement der Signale CSAO3OO bis CSA1200
aus einem Speicheradressregister CSA-201-12 jedem der Festwertspeicherschaltkreise
ROM zugeführt, da jeder Festwertspeicherschaltkreis einen in Reihe mit jeder Adressenleitung geschalteten
Puffer-Inverterschaltkreis aufweist, der das Eingangs-Adressensignal
invertiert. Sowohl die bestätigten, als auch die negierten Adressignale des Registers 201-12 werden als Eingänge den
RAM-Speicherschaltkreisen zugeführt.
Die Signale CSCEOOO bis CSCE400 sind Freigabesignale für die Speicherschaltkreise, die bei der Decodierung der höchstrangigen
Adressbits des CSA-Registers 201-12, d. h bei der Decodierung der Bits 00 bis 02 erzeugt werden. Bei ihrer Erzeugung versetzen
diese Signale die geeigneten ROM- oder RAM-Schaltkreise in die
Lage, den Zugriff auf einen der Speicherplätze des Steuerspeichers 201-10 freizugeben. Ein Schreibimpuls CSWRTlO wird ebenfalls
als Eingangssignal jedem Speicherschaltkreis zugeführt,
709827/0753
fS
wodurch die Signale BSZOOlG bis BSZ351O in einen ausgewählten
Speicherplatz eingeschrieben werden können. Es sei vermerkt, daß Figur 4 ebenfalls das Anlegen des Signales CSWRTlO an die
ROM-Speicherschaltkreise zeigt, was erforderlichenfalls für Wartungszwecke einen Ersatz der ROM-Speicherschaltkreise durch
RAM-Speicherschaltkreise gestattet. Hinsichtlich weiterer Informationen in Bezug auf die Art der die Freigabesignale erzeugenden
Schaltkreise sei auf die US-PS 3 911 406 verwiesen.
Der Inhalt eines Speicherplatzes, auf den Zugriff genommen wird,
wird über eine Eingangsschiene ausgelesen und auf mehrere Verstärkerschaltkreise
des Blockes 201-14 gegeben. Diese Schaltkreise erzeugen frühe Datenausgangssignale CSN0030 bis CSN353O,
die 139 ns nach dem Auftreten eines Taktimpulses als gültige Signale vorliegen. Ein 4 MHz-Systemtakt, der nicht dargestellt
ist, erzeugt die Taktimpulse oder PDA-Impulse, die den Grundtakt des Systems darstellen. Zur Erläuterung der vorliegenden
Erfindung kann ein herkömmlicher Takt angenommen werden.
Alle frühen Registerübertragungs-Subbefehlssignale werden durch in dem Block 201-32 enthaltene Schaltkreise decodiert, wobei die
Ausgangssignale des Blockes 201-14 die zu decodierenden Signale bilden. Die Ausgangs signale CSN0.030 bis CSN 3 5 30 werden in ein
internes 36 Bit-Speicherregister übertragen, das durch die Verriegelungsschaltkreise
des Blockes 201-16 gebildet wird, wobei die Übertragung in Abhängigkeit eines Subbefehlsignales CSNFMOO
erfolgt, das durch Schaltkreise innerhalb des Blockes 301-32 erzeugt wird. Zusätzlich werden die Ausgangssignale CSN0030 bis
CSNO43O in ein 5 Bit-Operationscoderegister 201-30 übertragen,
wobei die übertragung in Abhängigkeit von einem Subbefehlsignal
CSNFM90 erfolgt, das durch Schaltkreise innerhalb des Blockes 201-32 erzeugt wird. Wie später noch anhand von Figur 5a zu
erläutern sein wird, weist das Signal CSNFM90 normalerweise den Binärwert "1" auf, vorausgesetzt, daß keine Verzweigungsbedingung und keine Nicht-Ausführungsbedingung vorliegt, wodurch
die Ausführung des nächsten Mikrobefehles verhindert würde
7 09827/07 5 3
bzw. wenn sich das System im Stop-Modus oder bei der Ausführung
eines Mikrobefehls vom Lese- oder Schreibtyp be-, findet.
Das Register 201-30 speichert immer den Operationscode des gerade ausgeführten Mikrobefehls. Somit werden die Bitsignale
CSNOO5O bis CSKO45O von den Signalen CSNOOlO bis CSN0410 abgeleitet.
Das Register 201-16 speichert immer den Inhalt desjenigen Speicherplatzes im Steuerspeicher, der durch die im CSA-Register
201-12 enthaltene Adresse während des vorausgegangenen Taktzyklus adressiert wird. Die Ausgangssignale des
internen Registers 201-16 werden mehreren Decodierschaltkreisen
der Blöcke 201-34, 201-36, 201-38 und 201-40 zugeführt, um alle Subbefehle, Datenübermittlungs- und MultiplizierSteuersignale,
Testfelder usw. zu decodieren. Die Ausgangssignale des Operationscoderegisters 201-30 werden Decodierschaltkreisen im Block 201-34
zugeführt, die Hauptgruppen-Decodiersignale und Subbefehls-Sperrsignale
für die Sperrung gewisser Übertragungsoperationen, wie zuvor erläutert, erzeugen.
Wie aus Figur 2 ersichtlich, werden den Schaltkreisen des Blockes 201-34 Signale des Blockes 201-50 zugeführt, wobei
diese eine Anzahl von Status-Flip-Flops für die Errichtung einer Anzahl verschiedener Operationsmoden für den Adapter
200 aufweisen. Jedes Status-Flip-Flop wird durch Subbefehlssignale gesetzt oder zurückgestellt, die durch Schaltkreise
des Blockes.201-32 oder aus Bits innerhalb des Mikrobefehls selbst erzeugt werden. Die Ausgangssignale verschiedener Status-Flip-Flops
werden als Eingangssignale den Steuerfeld-Schaltkreisen des Blockes 201-55 zugeführt. Diese Schaltkreise
erzeugen Signale hinsichtlich einer Steuerschnittstelle für die Steuerung der Operation des Prozessors S2P-3OO,
wobei dies über Steuerfeld-Schnittstellen-Logikschaltkreise erfolgt, die normalerweise einen Teil des Prozessors S2P-3OO
bilden. Beispielsweise geben diese Schaltkreise den Eintritt
709827/0753
bzw. die Darstellung der in dem Steuerspeicher des S2P-Prozessors enthaltenen Programm- bzw. Unterbrechungszähler,
die Operation des S2P-Prozessors für einen einzelnen Befehl, den ABLAUF- und STOP-Modus, die Löschung und Auslösung des
S2P-Prozessors und die Veränderung des Adressenmodus sowie die Fühlschaltereinstellung des S2P-Prozessors frei.
Die Schaltkreise liefern ferner Signale an ein Wartungsbzw. Steuerfeld, welches für alle externen Operator- oder
Wartungseingriffe vorgesehen ist, die zur Steuerung der Systemoperation erforderlich sind.
Die Wirkungsweise dieser Schaltkreise soll nur in dem für ein vollständiges Verständnis der vorliegenden Erfindung erforderlichen
Ausmaß beschrieben werden. Zur Informierung hinsichtlich der Art der erwähnten Operationen sei auf die US-Patentschriften
3 909 802 und 3 813 531 verwiesen.
Es ist aus Figur 2 ersichtlich, daß die frühen Datenausgangssignale
ebenfalls als Eingänge den Schaltkreisen des Blockes 201-15, dem CSA-Register 201-12 und einem Steuerspeicher-Unterbrechungsregister
CSI-201-26 zugeführt v/erden. Die Ausgangssignale
beeinflussen Schreibsteuerschaltkreise des Blockes 201-15, der in Figur 5g näher dargestellt ist und veranlassen
diese zur Erzeugung eines Schreibimpulssignales CSWRTlO. In
Abhängigkeit von bestimmten Typen von Mikrobefehlen, wie noch zu erläutern sein wird, setzen die Schaltkreise des Blockes
201-32 entsprechende Subbefehlsignale CSANElO und CSIFNlO auf den Binärwert "1", wodurch das CSA-Register 201-12 und das
CSI-Register 201-26 über die Datenübertragungswege 201-29 und 201-27 mit den Bitsignalen CSN05 bis CSN17 und CSN23 geladen
werden. Es sei darauf verwiesen, daß das CSA-Register 201-12 ebenfalls über einen Datenweg 201-31 mit einer Verzweigungsadresse und einem Paritätsprüfbit aus dem internen Speicherregister
201-16 geladen werden kann, wenn das Subbefehlssignal CSAFNlO auf den Binärwert "1" durch die Schaltkreise
des Blockes 201-32 gesetzt wird.
709827/0753
Betrachtet man die Steueradressregister und Schaltkreise des Abschnittes 201-10 so ist ersichtlich, daß das CSA-Register
201-22 als Steuerspeicher-Adressregister dient. Dieses stellt ein 14 Bit-Register dar, welches eine durch die Schaltkreise
des Abschnittes 201 erzeugte 13 Bit-Adresse und ein einzelnes Paritätsprüfbit speichert, das gemäß der vorliegenden Erfindung
zuvor während der Verarbeitung der Mikrobefehle der nacheinander in den Steuerspeicher 201-10 geladenen Mikroprogramme erzeugt
wird. Die Bitpositionen 0 bis 12 speichern die 13 Bit-Adresse und die Bitposition 13 speichert das Paritätsprüfbit. Die Bitpositionen
0 bis 12 des Registers liefern über den Datenweg 201-21 eine 13 Bit-Adresse, wodurch einer der 5120 Wortspeicherplätze
des Steuerspeichers 201-10 adressiert wird. Das Paritätsprüfbitsignal wird über die Leitung 201-11 der Bitposition 13
des Registers 201-12 durch das Ausgangssignal vom Bit 31 eines jeden Mikrobefehlswortes beim Auslesen durch die Verstärkerschaltkreise
des Blockes 201-14 zugeführt.
Die 13 Bit-Adresse und das Paritätsprüfbit des CSA-Registers 201-12 werden als Eingangssignale eines 14 Bit-Steuerspeicher-Rückkehradressregister
CSR-201-22 über einen Datenweg 201-17 und einem 14 Bit-Steuerspeicher-Standardenregister CSH-201-18
über einen Datenweg 201-19 zugeführt. Die Adresse und die Paritätsprüfsignale werden im CSR-Register 201-22 und im CSH-Register
201-18 gespeichert, wenn entsprechende Subbefehlsignale SCRFAlO und CSHFAlO mittels der Schaltkreise des Blockes 201-32
den Binärwert "1" einnehmen.
Das CSR-Register 201-22 wird zur Speicherung einer Rückkehradresse
für eine Mikroprogramm-Subroutine benutzt. Dieses Register wird mit einer Rückkehradresse in Abhängigkeit von Mikrobefehlen
des Verzweigungs- und Rückkehrtypes geladen. Die gespeicherte
Adresse wird dem CSA-Register 201-12 über den Datenweg 201-37 zugeführt. Die Adresse und die Paritätsprüfsignale
werden in das CSA-Register 201-12 geladen, wenn die Schaltkreise d<3S Blockes 201-32 das Signal CSAFRlO zur Annahme des
709827/0753
Binärwertes "1" veranlassen. Das CSA-Register 201-18 wird für die Darstellung des vorhergehenden Inhalts des CSA-Registers
201-12 verwendet. Dieses Register wird automatisch durch Steuerschaltkreise geladen und es kann auf dieses Re- .
gister durch Mikrobefehle kein Zugriff genommen werden.
Die 13 Bit-Adresse des CSA-Registers 201-12 wird zusätzlich
als Eingang einem 13 Bit-Addierschaltkreis CSB-201-20 zugeführt,
welcher automatisch die Adresse um eins erhöht. Der Addierschaltkreis 201-20 kann im Hinblick auf die vorliegende
Erfindung eine herkömmliche bekannte Ausgestaltung auf v/eisen. Die um eins erhöhte Adresse wird dem CSR-Register 201-22 über
einen Datenweg 201-33 und dem CSI-Register 201-26 über einen Datenweg 201-25 zugeführt. In gleicher Weise wird das Paritätsprüfbitsignal
auf der Leitung 201-11 über die zuvor erwähnten Datenübertragungswege der am wenigsten signifikanten Bitposition
des CSR-Registers 201-22 und des SCI-Registers 201-26 zugeführt. Die Adresse und die Paritätsprüfsignale werden im CSR-Register
201-22 und im CSI-Register 201-26 entsprechend gespeichert, wenn zugehörige Subbefehlssignale CSRFBlO und CSIFBlO durch die
Schaltkreise des Blockes 201-32 zur Annahme des Binärwertes "1" veranlaßt werden. Das CSI-Register 201-26 wird als zweites
Rückkehradressregister und als ein Adress/Arbeitsregister während Lese- und Schreiboperationen des SteuerSpeichers benutzt.
Das Register wird über den Datenweg 201-27 geladen, wenn das Subbefehlssignal CSIFNlO durch die Schaltkreise des Blockes
201-32 zur Annahme des Binärwertes "1" veranlaßt wird.
Sowohl die von dem Addierschaltkreis 201-20 erhöhte Adresse, als auch das auf der Leitung 201-11 anstehende Paritätsprüfsignal
werden als Eingänge dem CSA-Register 201-12 über einen Datenübertragungsweg 201-33 zugeführt. Die Adresse und die
Prüfbitsignale werden im CSA-Register 201-12 gespeichert, wenn ein Subbefehlsignal CSAFBlO durch die Schaltkreise des
Blockes 201-32 auf den Binärwert "1" gesetzt wird.
709827/0753
Wie aus Figur 2 ersichtlich, werden die Ausgangssignale des CSI-Registers 201-26 einem von zwei Eingängen eines Datenselektor-Multiplexerschaltkreises
201-24 über einen Datenweg 201-39 zugeführt. Der Multiplexerschaltkreis 201-24 ist mit
seinem anderen Eingang mit einer von einem Steuerfeld eingebbaren Adresse verbunden. In Abhängigkeit von Signalen
DPSAA-C werden die ausgewählten Ausgangssignale des Multiplexerschaltkreises
201-24 dem CSA-Register 201-12 über einen Datenweg 201-35 zugeführt. Während einer normalen Operation
wird das CSI-Register 201-26 als Quelle der Adressignale ausgewählt.
Die Adresse und die Paritätsprüfsignale werden in das CSR-Register 201-12 geladen, wenn ein Übertragungs-Subbefehlsignal
CSAFIlO durch die Schaltkreise des Blockes 201-32 zur
Annahme des Binärwertes "1" veranlaßt wird.
Es sei darauf verwiesen, daß jedes der durch das Mikroprogramm zugänglichen Adressregister CSA, CSR und CSI an einen Paritätsprüfschaltkreis,
beispielsweise die Schaltkreise 201-42, 201-43 und 201-44 angeschlossen ist. Jeder dieser Schaltkreise ist
immer wirksam und überprüft das zugeordnete Register auf übereinstimmende Parität. Das von jedem Paritätsprüfschaltkreis
erzeugte Ausgangssignal wird als Eingang Fehlerschaltkreisen zugeführt, die in einem Block 201-45 enthalten sind
und ein Anhalten der Systemoperation verursachen, sofern ein Fehlersignal auftritt, das einen Fehler innerhalb des Steuerabschnittes
201 anzeigt.
Der Steuerabschnitt 201 weist ferner einen 24 Bit-Zähler 201-56 und einen zugeordneten 24 Bit-Inkremen.t/Dekrementschaltkreis
201-58 auf. Der Zähler 201-56 ist ein Auf/Abwartszähler, der
durch das Mikroprogramm und die Hardwaresteuerung betätigt wird. Ein in den Zähler 201-56 zu ladender Zählstand und die
Zählrichtung kann durch gewisse Mikrobefehlstypen vorgegeben werden. Der Zähler 201-56 umfaßt ein Paar Flip-Flops (oberer
709827/0753
und unterer überlauf) zur Anzeige des Auftretens einer Grenzüberschreitung,
bezogen auf den zuletzt ausgegebenen Steuer-Mikrobefehl. Der Zähler 201-56 wird über die Eingangsleitungen
BSZ48 bis BSZ71 in Abhängigkeit eines Subbefehlsignales CSS861O
geladen. Zur gleichen Zeit werden beide Grenz-Flip-Flops auf
"O" zurückgestellt.
Die Wirkungsweise der Inkrement/Dekrementschaltkreise 201-58 wird durch den Zustand eines der Flip-Flops des Blockes 201-50
definiert. Je nachdem, ob das Flip-Flop den Wert "1" oder den Wert "0" anzeigt, führt der Schaltkreis 201-58 eine Zählstandserniedrigung
bzw. eine Zählstandserhöhung des Inhalts des Zählers 201-56 durch. Wenn das Signal CSMTClO auf Grund eines
Mikrobefehls den Wert "1" einnimmt, so wird der erhöhte oder erniedrigte Wert in den Zähler 201-56 geladen und das obere
bzw. untere überlauf-Flip-Flop markiert. Im Erhöhungsmodus
wird das obere überlauf-Flip-Flop nur auf "1" geschaltet, wenn
der Zählstand von 77777777 auf "0" in allen Bitstellen umschaltet. In gleicher Weise wird im Erniedrigungsmodus das untere
überlauf-Flip-Flop nur auf "1" umgeschaltet, wenn der Zählstand
von "0" in allen Bitstellen auf 77777777 umschaltet.
Ein/Ausgabe-Verarbeitungsabschnitt 210
Wie aus Figur 2 ersichtlich, weist dieser Abschnitt einen Eingangsr-Multiplexerschaltkreis
210-10, einen Datenabschnitt 210-6, einen Adressenabschnitt 210-2, einen Speicherschnittstellenabschnitt
S.Cü-210-4 und einen S2P-Schnittstellenabschnitt 210-8
auf. Der 36 Bit-Multiplexerschaltkreis 210-10 (Datenselektor)
erhält Eingangssignale von den dargestellten Datenquellen. Diese Datenquellen werden beispielsweise durch den Steuerspeicher
201-10, den Speicherschnittstellenabschnitt 210-4 usw. gebildet. Der Multiplexer schaltet die Signale der ausgewählten Quelle
sowohl auf den Abschnitt 210-2, als auch auf den Abschnitt 210-6
Durch den Zustand der Signale Pl, P2 und P3, die durch bestimmte
Mikrobefehlsfelder oder durch die Decodierung von Mikrobefehlen durch die Schaltkreise des Blockes 201-40 definiert
sind, wird die auszuwählende Quelle festgelegt. In ähnlicher Weise wird durch den Zustand der Gruppe von Signalen
P5, D6, MG2 sowie D5, D6, MG3, die in Abhängigkeit von bestimmten
Mikrobefehlsfeldern erzeugt werden,und durch die Schaltkreise des
Blockes 201-34 der Abschnitt 210-2 und der Abschnitt 210-6 als Empfänger der von dem Multiplexerschaltkreis 210-10 kommenden
Signalgruppe festgelegt.
Der in Figur 5f in näheren Einzelheiten dargestellte Datenabschnitt
210-6 bildet einen Verbindungsweg zu der Systemsteuereinheit SCU-IlO für den Adapter 200 und den Prozessor S2P-3OO.
Der Abschnitt 210-6 führt die erforderliche Datenbehandlung für die übertragung von Datenbytes und für die Sicherstellung der
geeigneten Ausrichtung der Datenbytes durch. Datenübertragungen innerhalb des Adapters 200 können durch ein Mikroprogramm oder
durch Hardware-Steuerschritte gesteuert werden. Sofern ein
Mikroprogramm nicht die Steuerung einer Gruppe von Hardware-Steuer schaltkreisen freigibt, die als ein Teil des Blockes
210-6 angesehen werden können, erfolgt die Steuerung der Register und Multiplexerschaltkreise unter direkter Steuerung
durch das Mikroprogramm. Wenn bestimmte Mikrobefehle ausgeführt werden, wie beispielsweise zum Starten einer Datenübertragungsoperation
zum Auslösen einer Steuerung, so steuern die Hardware-Steuerschaltkreise die übertragung bis zu deren
Beendigung.
Es ist somit ersichtlich, daß die Subbefehlssignale, z.B. Pl, P2, P3, D5, D6, MG3 usw., die die übertragung von Datensignalen
verursachen, durch Logikgatterschaltkreise erzeugt werden, die wenigstens zwei Gruppen von Eingängen aufweisen.
Eine Gruppe umfaßt ein Signal, das anzeigt, daß die Hardware-Steuer schaltkreise die übertragung von Signalen steuern, wobei
709827/0753
2658350
es sich um Signale von einem einen Teil der Kardware-Steuerschaltkreise
bildenden Zykluszähler und Signale entsprechend dem Systemzustand handelt. Die andere Gruppe beinhaltet das
Komplement desjenigen Signales, das anzeigt, daß die übertragung
durch die Mikroprogrammsteuerung stattfindet sowie ein Signal, das einen besonderen Typ von Mikrobefehl festlegt
und Signale entsprechend einem Bit bzw. Bits innerhalb des speziellen Mikrobefehls. Als Beispiel für diese Art von
Schaltkreisen, wie sie zur Erzeugung von Hardware-Schrittfolgen
benutzt werden, sei auf die US-PS 3 909 799 verwiesen.
Der Adressensteuerabschnitt 210-2 führt Operationen zur Adressierung
des Hauptspeichers 150 während Lese- und Schreiboperationen durch. Der Abschnitt verwirklicht ferner die erforderliche Adressenprüfoperation,
wie sie beim Speicherschutz und der Basisverschiebung auftreten. Dieser Abschnitt ist in einer ähnlichen
Weise organisiert, wie dies beim Datenabschnitt 210-6 der Fall war. ,
Der Speicherschnittstellenabschnitt 210-4 weist Register und
Schaltkreise zur Verbindung des Adapters 200 mit Leitungen auf, die die System-Anschlußschnittstelle der Systemsteuereinheit
SCU-IlO umfassen. Diese Leitungen umfassen bis zu 74 Zweirichtungs-Daten-
und Paritätsleitungen, 24 Adressleitungen, 5 Befehlsleitungen und eine Anzahl von Steuerleitungen. Die Steuerleitungen
umfassen Leitungen für die übertragung von Auslöse-,
übertragungs-, Unterbrechungs-, Bereitschafts- und Verbindungssignalen zwischen dem Adapter 200 und der Systemsteuereinheit
SCU-IlO.
Der S2P-Schnittstellenabschnitt 210-8 umfaßt ebenfalls Registerund
Schaltkreise für die Verbindung des Adapters 200 mit den SpeicherschnittStellenleitungen des Prozessors 300. Diese
709827/0 753
IH
Leitungen umfassen zwei Gruppen von 19 Speicheradressleitungen, 36 Datenleitungen (18 Eingangs- und 18 Ausgangsleitungen) und
eine Anzahl von Steuerleitungen zur Ausführung von S2P-Taktstillständen., einer S2P-VerSchiebung oder einer Schreibmaskierung.
Der Abschnitt 210-8 umfaßt ferner Datenauswahlschaltkreise für die Ausrichtung und übertragung von Zeichen mit
einer Geschwindigkeit, die an die Speicherschnittstelle des Prozessors 300 angepaßt ist. Im vorliegenden Ausführungsbeispiel
stellt der S2P-Prozessor 300 insbesondere einen Zwei-Zeichen-Prozessor dar, der während einer normalen Operation
aus seinem Hauptspeicher in einer Zykluszeit von einer Mikrosekunde zwei Datenzeichen entnimmt. Die zwei Daten/Adressschienen
bilden eine Schnittstelle mit zwei asynchronen Registern mit einer Ereite von einem Byte, die an ein Doppelkanal-Schaltnetzwerk
angeschlossen sind. Die Anordnung erlaubt dem Prozessor die Behandlung zweier Zeichen zur gleichen Zeit
(lesen oder schreiben), wobei dies in einer Weise erfolgt, die mit der normalen Betriebskonfiguration des Prozessors übereinstimmt.
Mikrobefehls-Formate
Bevor in näheren Einzelheiten die verschiedenen Blöcke gemäß Figur 2 beschrieben werden, sei auf die verschiedenen Arten
von Mikrobefehlenund ihre Formate im Zusammenhang mit Figur
eingegangen. Gemäß Figur 3 ist ersichtlich, daß der Adapter Operationen ausführen kann, die durch den Operationscode von
bis zu 25 verschiedenen Mikrobefehlen festgelegt werden, die in-8 Hauptgruppen organisiert sind. Jedes Mikrobefehlswort
enthält alle erforderlichen Operanden für eine vorgegebene Operation.
709827/0753
JiS
Die 8 Hauptgruppen und die Arten der durch sie festgelegten Operationen sind folgende:
Gruppe O: no-op Gruppe 1: MMRQ
Gruppe 2: ARCA ARCL
Gruppe 3: DRCA DRCL LDC
Gruppe 4: DCKl DCK2 Gruppe 5: CBOTN
CBOTE CBRTN
CBRTE Keine Operation
Anforderungsparameter und Steueroperation für den Hauptspeicher (SCU)
Arithmetische und Steueroperation des Adressregisters
Logische und Steueroperation des Adressregisters
Arithmetische und Steueroperation des Datenregisters
Logische und Steueroperation des Datenregisters
Ladeoperation einer Konstanten ins BSNl-Register
Leitoperation für Steuerung 1 Leitoperation für Steuerung 2
Bedingte Verzweigung beim Test- und Nicht-Bearbeitungsoperation
Bedingte Verzweigung beim Test- und Bearbeitungsoperation
Bedingte Verzweigung beim Test- und Lade-Rückkehrregister- und Nicht-Bearbeitungs-Operation
Bedingte Verzweigung beim Testund Lade-Rückkehrregister- und
Bearbeitungs-Operation
709827/0753
- VS -
Gruppe 6: LCSIK Gruppe 7: UCBK
UBRK
UBRK
RTNFI
RTFIR
RTNFR
RTFRR
CSMR
CSWR
CSWR
Lade-Steuerspeicher-Unterbrechungsregister- und Steuer-Operation
Bedingungslose Verzweige- und Steuer-Operation
Bedingungslose Verzweige- und Steuer- und Lade-Rückkehrregister-Operation
Rückkehr vom Unterbrechungsregister- und Steuer-Operation
Rückkehr vom Unterbrechungsregister- und Steuer- und Lade-Rückkehrregister-Operation
Rückkehr vom Rückkehrregister- und Steuer-Operation
Rückkehr vom Rückkehrregister- und Steuer- und Lade-Rückkehrregister-Operation
Steuerspeicher-Lese-Operation
Steuerspeicher-Schreib-Operation
Aus Figur 3 ist ersichtlich, daß jeder Mikrobefehl einen 5 Bit-Operationscode,
beispielsweise die Bits O bis 4, zur Festlegung der Art der auszuführenden Operation aufweist. Zusätzlich besitzt
jeder Mikrobefehl 26 Bits, z. B. die Bits 5 bis 30, die auf Grund ihrer Codierung Subbefehle, Konstanten, Adressen usw.
festlegen und er besitzt ferner 5 Paritätsprüfbits, z. B. die Bits 31 bis 35. Jedes der Paritätsbits 32 bis 35 ist einem unterschiedlichen
Byte des Mikrobefehlswortes zugeordnet. Dies bedeutet, daß jeweils eine Ergänzung auf ungerade Parität durch das
Bit 32 hinsichtlich der Bits O bis 7, durch das Bit 33 hinsichtlich
der Bits 8 bis 15, durch das Bit 34 hinsichtlich der Bits 16 bis 33 und durch das Bit 35 hinsichtlich der Bits 24 bis 30
709827/0753
265895Q - «a* -
vorgenommen wird. Das Bit 31 ist ein spezielles Paritätsprüfbit,
welches eine ungerade Parität hinsichtlich der nächsten absoluten Speicheradresse herstellt, auf die in der Folge als
nächstes zugegriffen wird. Der Wert für das Bit 31 wird während der Verarbeitung des Mikrobefehles vor seiner Einspeicherung
in den Steuerspeicher 201-10 gebildet.
Die verschiedenen Mikrobefehle gemäß Figur 3 sollen nun in näheren Einzelheiten erläutert werden. Der einzige Mikrobefehl
der Gruppe 0 weist einen Operationscode mit einem Binärwert von "0" in allen Bitstellen auf, wodurch eine Nicht-Operation festgelegt
wird. Der einzige Mikrobefehl der Gruppe 1 besitzt einen Operationscode von 00100 und er errichtet Parameter für Zyklen
des Hauptspeichers SCU. Die Bits 5 bis 9 kennzeichnen durch ihre
Codierung die Art des Speicherbefehls und die Bits 10 bis 13
legen durch ihre Codierung eine Zone fest. Die Bits 14, 15 und 16 verweisen durch ihre Codierung auf eine Verschiebung, Seitenunterteilung
und einen Grenz-Prüfmodus. Die Bits 20 bis 22, 25 bis 27 und 28 bis 30 legen durch ihre Codierung Subbefehlsgruppen
6, 7 und 8 fest.
Der erste Mikrobefehl der Gruppe 2 ARCA besitzt einen Operationscode von 01000. Dieser Mikrobefehl versetzt den Adressensteuerabschnitt
210-2 in die Lage, arithmetische Operationen hinsichtlich der in den Abschnittsregistern gespeicherten Adressen durchzuführen,
die bei der Hauptspeicheradressierung erforderlich sind. Die Bits 5 bis 10 definieren durch ihren Code die Art der arithmetischen
Operation (Modus), wie sie durch ein in dem Abschnitt 210-2 enthaltenes Rechenwerk ALU ausgeführt wird. Das Bit 10 stellt
hierbei ein Übertrags-Eingangsbit dar. Die Bits 15 bis 17 wählen durch ihre Codierung den gewünschten Anschluß einer an den Multiplexerschaltkreis
210-10 angeschlossenen Quelle aus. Die Bitpaare · 11 bis 12 und 18 bis 19 geben durch ihre Codierung an, welches
Register innerhalb der ersten und zweiten Registergruppen das Rechenwerksergebnis zugeführt erhält. Das Bitpaar 23 bis 24 gibt
7 09827/0753
durch seine Codierung an, welches Register innerhalb der
ersten Registergruppe die Ausgangssignale des Multiplexerschaltkreises 210-10 zugeführt erhält. Die Bits 20 bis 22,
23 bis 24 und 25 bis 26 legen Subbefehlsgruppen 6, 7 und 8
fest.
ersten Registergruppe die Ausgangssignale des Multiplexerschaltkreises 210-10 zugeführt erhält. Die Bits 20 bis 22,
23 bis 24 und 25 bis 26 legen Subbefehlsgruppen 6, 7 und 8
fest.
Der zweite Mikrobefehl der Gruppe 2 ARCL weist einen Operationscode OlOOl auf. Dieser Mikrobefehl ist in gleicher Weise wie
der Mikrobefehl ARCA codiert, mit der Ausnahme, daß die Bits 5 bis 10 die Art der logischen Operation definieren, wie sie
durch das Rechenwerk des Abschnitts auszuführen ist. Wenn
eine logische Operation vorliegt, so gibt es kein Übertrags-Eingangssignal und das Bit 10 weist den Wert "0" auf.
eine logische Operation vorliegt, so gibt es kein Übertrags-Eingangssignal und das Bit 10 weist den Wert "0" auf.
Der erste und zweite Mikrobefehl innerhalb der Mikrobefehle
der Gruppe 3 ist ähnlich den Mikrobefehlen der Gruppe 2 codiert. Der erste Mikrobefehl der Gruppe 3 DRCA besitzt einen Operationscode von 01100. Dieser Mikrobefehl versetzt den
Datenabschnitt 210-6 in die Lage, arithmetische Operationen
hinsichtlich des Dateninhalts der verschiedenen Register in
diesem Abschnitt durchzuführen. Die Operationen können hierbei getrennt oder gleichzeitig hinsichtlich der oberen 36 Bits (00 bis 35) oder der unteren 36 Bits (36 bis 71) eines jeden Registers ausgeführt werden. Die Bits 5 bis 10 legen die Art der durch das Rechenwerk ALU des Abschnittes durchzuführenden arithmetischen Operation fest. Die Bits 15 bis 17 wählen durch ihre Codierung den Anschluß der Bits 0 bis 35 des Multiplexerschaltkreises 210-10 aus und die Bits 20 bis 22 wählen in
gleicher Weise den Anschluß der Bits 36 bis 71 eines zweiten nicht .dargestellten MultiplexerSchaltkreises aus. Die Bitpaare 10 bis 11 und 13 bis 14 legen durch ihre Codierung fest, welches der Register innerhalb der ersten und zweiten Registergruppen mit dem-Ergebnis des Rechenwerks beaufschlagt wird.
Die Bitpaare 18 bis 19 und 23 bis 24 legen durch ihre Codierung fest, welches der Register innerhalb der ersten und zweiten Registergruppen mit den Ausgangssignalen des Multiplexer-
der Gruppe 3 ist ähnlich den Mikrobefehlen der Gruppe 2 codiert. Der erste Mikrobefehl der Gruppe 3 DRCA besitzt einen Operationscode von 01100. Dieser Mikrobefehl versetzt den
Datenabschnitt 210-6 in die Lage, arithmetische Operationen
hinsichtlich des Dateninhalts der verschiedenen Register in
diesem Abschnitt durchzuführen. Die Operationen können hierbei getrennt oder gleichzeitig hinsichtlich der oberen 36 Bits (00 bis 35) oder der unteren 36 Bits (36 bis 71) eines jeden Registers ausgeführt werden. Die Bits 5 bis 10 legen die Art der durch das Rechenwerk ALU des Abschnittes durchzuführenden arithmetischen Operation fest. Die Bits 15 bis 17 wählen durch ihre Codierung den Anschluß der Bits 0 bis 35 des Multiplexerschaltkreises 210-10 aus und die Bits 20 bis 22 wählen in
gleicher Weise den Anschluß der Bits 36 bis 71 eines zweiten nicht .dargestellten MultiplexerSchaltkreises aus. Die Bitpaare 10 bis 11 und 13 bis 14 legen durch ihre Codierung fest, welches der Register innerhalb der ersten und zweiten Registergruppen mit dem-Ergebnis des Rechenwerks beaufschlagt wird.
Die Bitpaare 18 bis 19 und 23 bis 24 legen durch ihre Codierung fest, welches der Register innerhalb der ersten und zweiten Registergruppen mit den Ausgangssignalen des Multiplexer-
709827/0753
Schaltkreises 210-10 und des zweiten nicht dargestellten Multiplexerschaltkreises beaufschlagt wird. Die Bits 25 bis
27 und 28 bis 30 legen durch ihre Codierung wiederum Subbefehle der Gruppe 7 und 8 fest.
Der zweite Mikrobefehl der Gruppe 3 DRCL besitzt einen Operationscode
von 01101. Dieser Mikrobefehl ist in der gleichen Weise wie der Mikrobefehl DRCA codiert, mit Ausnahme der
Modusbits 5 bis 10, die durch ihre Codierung die Art der logischen Operation festlegen, wie sie durch das Rechenwerk
des Abschnittes auszuführen ist.
Der letzte Befehl der Gruppe 3 LDC besitzt einen Operationscode von OHIO. Dieser Mikrobefehl veranlaßt die Abgabe einer
26 Bit-Konstanten (Bits 5 bis 30) an ein spezifisches Register BSNl innerhalb des Abschnittes 210-6, wobei diese Abgabe über
den Multiplexerschaltkreis 210-10 erfolgt.
Der erste und zweite Mikrobefehl innerhalb der Mikrobefehle der Gruppe 4 DCKl und DCK2 besitzen Operationscodes von 10000
und 10001. Der erste dieser Mikrobefehle besitzt Bitgruppen, die durch ihre Codierung Operationen festlegen, wie sie durch
die Subbefehlsgruppen i bis 8 bestimmt sind. Der zweite Mikrobefehl DCK2 besitzt Bitgruppen, die durch ihre Codierung
Operationen festlegen, wie sie durch die Subbefehlsgruppen 6 bis 13 bestimmt sind.
Die Mikrobefehle der Gruppe 5 sind bedingte Verzweigungs-Mikrobefehle,
wie sie zur Prüfung des Zustandes verschiedener Test-Anzeigeschaltkreise innerhalb des Adapters 200 und zu einer
Verzweigung nach einem Speicherplatz innerhalb des Steuerspeichers 201-10 benutzt werden, wobei der Speicherplatz
durch die Adressbits 5 bis 16 festgelegt ist, wenn die Resultate des Tests im Hinblick auf eine getroffene Vereinbarung keinen
Fehler aufweisen. Die Bits 17 bis 22 und 24 bis 29 bestimmen
709827/07 5 3
26589TT] 30
durch ihre Codierung die beiden Test-Anzeigeschaltkreise, deren
Zustände zu prüfen sind. Es sei darauf verwiesen, daß das niedrigrangige Verzweigungs-Adressbit (A12) in dem Mikrobefehl nicht enthalten
ist. Das Bit 23 ist ein ungerades Paritätsbit, das für die Adressbits 5 bis 16 während der Verarbeitung der Mikrobefehle und
vor deren Speicherung im Steuerspeicher 201-10 errechnet wird. Das Bit A12 wird bei der Berechnung mit "0" angenommen.
Bei der verwendeten Verzvreigungskonvention verzweigt ein Steuerspeicher-Mikroprogramm
zu dem Verzweigungs-Adressenspeicherplatz, wenn der Zustand des durch das Testfeld 1 festgelegten Indikators
nicht erfüllt und der Zustand des durch das Testfeld 2 festgelegten Indikators erfüllt ist. Das Bit 12 des CSA-Registers 201-12 wird
auf den Binärwert "0" gesetzt. Wenn der durch das Testfeld 1 festgelegte Indikatorzustand erfüllt ist und der durch das Testfeld 2
festgelegte Indikator zustand erfüllt bzv/. nicht erfüllt ist, so verzweigt das Mikroprogramm zu dem Verzweigungs-Adressenspeicherplatz
plus 1 und es wird das Bit 12 des CSA-Registers auf den Binärwert "1" gesetzt. Da das Bit 23 ein ungerades Paritätsbit
für die Verzweigungsadresse darstellt, wenn das Testfeld 1 einen erfüllten Indikatorzustand anzeigt, wodurch eine Erhöhung der Verzweigungsadresse
um 1 bewirkt wird, so wird der Zustand dieses Bits invertiert, bevor es im CSA-Register 201-12 gespeichert wird.
Die Art der Operationen, wie sie durch jeden der Mikrobefehle vom Verzweigungstyp ausgelöst werden, sei nun erläutert. Während der
Bearbeitung eines jeden Verzweigungs-Mikrobefehls verzweigt das Steuerspeicher-Mikroprogramm zu dem durch die Verzweigungsadresse
festgelegten Mikrobefehl, sofern der Anzeigestatus, der anhand der Testfelder 1 und 2 überprüft wird, erfüllt ist. Die verschiedenen
Mikrobefehle führen zu den folgenden verschiedenen Operationen.
Der Mikrobefehl CBOTN besitzt einen Operationscode von 10100. Bei seiner Ausführung sperrt er die Ausführung des nächsten Mikrobefehls
der Folge, wenn die getestete Verzweigungsbedingung erfüllt
709827/0753
ist. Wenn die getestete Verzweigungsbedingung nicht erfüllt ist, so schreitet das Mikroprogramm zu dem nächsten Mikrobefehl
weiter.
Der Mikrobefehl CBOTE besitzt einen Operationscode von 10101. Dieser Mikrobefehl wird in der gleichen Weise wie der Mikrobefehl
CBOTN ausgeführt, mit der Ausnahme, daß der unmittelbar folgende Mikrobefehl immer vor einer Verzweigung bearbeitet
wird.
Der Mikrobefehl CBRTN besitzt einen Operationscode von 10110.
Dieser Mikrobefehl wird in der gleichen Weise wie der Mikrobefehl CBOTN ausgeführt, mit der Ausnahme, daß er ein Laden
des CSR-Registers 201-22 mit der Adresse des unmittelbar auf
den Verzweigungs-Mikrobefehl folgenden Speicherplatzes veranlaßt.
Der Mikrobefehl CBRTE besitzt einen Operationscode von 10111.
Dieser Mikrobefehl wird in der gleichen Weise wie der Mikrobefehl
CBOTE ausgeführt, mit der Ausnahme, daß er ein Laden des CSR-Registers 201-22 mit der Adresse des Verzweigungs-Mikrobefehls
plus 2 verursacht. Hierdurch wird dem auf die Verzweigung folgenden Mikrobefehl Rechnung getragen.
Der einzige Mikrobefehl der Gruppe 6 LCSIK besitzt einen Operatiönscode von 11010. Dieser Mikrobefehl enthält eine
13 Bit-Adresse und ein ungerades Paritätsprüfbit entsprechend
den Eits 5 bis 17 und dem Bit 23, welches in das CSI-Register 201-26 geladen wird. Die Bits 20 bis 22, 25 bis
27 und 28 bis 30 legen durch ihre Codierung Subbefehlsgruppen 6, 7 und 8 fest.
Die Mikrobefehle der Gruppe 7 bewirken eine Modifikation des
Inhalts des CSA-Registers 201-10 vor ihrer Bearbeitung. Wie
aus Figur 3 ersichtlich, weist jeder dieser Mikrobefehle ein
709827/0753
13 Bit-Feld entsprechend den Bits 5 bis 17 auf, das durch seine Codierung eine Verzweigungsadresse oder den Binärwert
11O" in allen Bitstellen festlegt. Das Bit 23 gibt durch seine
Codierung.eine ungerade Parität für die Verzweigungsadressen
enthaltenden Mikrobefehle vor. In bestimmten Fällen sind die Bits 18 bis 19 und 23 bis 24 ebenfalls codiert, um die Art
des Mikrobefehls weiter festzulegen. Die Bits 20 bis 22, 25 bis 27 und 28 bis 30 geben durch ihre Codierung Subbefehlsgruppen
6,7 und 8 vor.
Betrachtet man jeden Mikrobefehl für sich, so ist ersichtlich, daß der Mikrobefehl UCBK einen Operationscode von 11100 aufweist.
Dieser Mikrobefehl veranlaßt das Steuerspeicher-Mikroprogramm zu einer Verzweigung zu dem durch die Adressbits 5
bis 17 vorgegebenen Speicherplatz. Der Mikrobefehl UBRK besitzt einen Operationscode von 11110 und wird in der gleichen
Weise wie der Mikrobefehl UCBK ausgeführt, mit der Ausnahme, daß er noch das Laden des CSR-Registers 201-22 mit einer Rückkehradresse
vom CSB-Inkrementierschaltkreis 201-20 verursacht.
Der Mikrobefehl RTNFI besitzt einen Operationscode von 11100. Dieser Mikrobefehl veranlaßt das Steuerspeicher-Mikroprogramm
zur Rückkehr zur Programinadresse, die durch den Inhalt des CSI-Registers 201-26 vorgegeben ist. Der Mikrobefehl RTFIR
besitzt einen Operationscode von 11110 und wird in der gleichen Weise wie der Mikrobefehl RTNFI ausgeführt, mit der Ausnahme,
daß er noch das Laden des CSR-Registers mit einer Rückkehradresse, wie sie durch den CSB-Inkrementierschaltkreis
201-20 vorgegeben ist, verursacht.
Der Mikrobefehl RTNFR besitzt einen Operationscode von 11100. Dieser Mikrobefehl veranlaßt das Steuerspeicher-Mikroprogramm
zur Rückkehr auf die durch den Inhalt des CSR-Registers 201-22 vorgegebene Programmadresse. Der Mikrobefehl RTFRR mit einem
Operationscode von 11110 wird in der gleichen Weise wie der
709827/0753
Mikrobefehl RTNFR bearbeitet, mit der Ausnahme, daß er noch das Laden des CSR~Registers 201-22 mit einer von dem CSB-Inkrementierschaltkreis
201-20 erhaltenen Rückkehradresse verursacht.
Der Mikrobefehl CSMR besitzt einen Operationscode von 11101. Dieser Mikrobefehl verursacht das Lesen des Inhalts des Speicherplatzes,
der durch den Inhalt des CSI-Registers 201-26 vorgegeben ist, aus dem Steuerspeicher 201-10 und das Laden in ein vorbestimmtes
Register des Datenabschnittes 210-6. Der Mikrobefehl CSMW mit dem gleichen Operationscode veranlaßt das Einschreiben
des Inhalts eines vorgegebenen Registers im Datenabschnitt 210-6 in einen Speicherplatz, der durch den Inhalt des CSI-Registers
201-26 festgelegt ist.
Die verschiedenen Blöcke gemäß Figur 2 sollen nunmehr unter Bezugnahme auf die Figuren 5a bis 5h näher erläutert werden.
Grundlegende Steuer-Decodierschaltkreise 201-32
Figur 5 zeigt die Schaltkreise 201-200 bis 201-272, die die verschiedenen Register-Übertragungssignale für die Konditionierung
der verschiedenen Register des Steuerabschnittes 201 für die Übertragungen während einer Mikrobefehlsbearbeitung erzeugen.
Aus Figur 5a ist ersichtlich, daß mehrere UND-Gatter 201-200 bis 201-202 zusammen mit einem Inverterschaltkreis 201-203
und einem Verstärker 201-204 der Erzeugung eines frühen Übertragungssignales CSANElO auf Grund verschiedener Mikrobefehle
der Gruppe 7, z.B. der Mikrobefehle UCBK und UBRK dienen. Das Signal CSINFlA nimmt auf Grund eines Mikrobefehles CBOTN oder
CBRTN den Binärwert "0" ein, wenn die durch das Testfeld 1 oder das Testfeld 2 vorgegebene Bedingung erfüllt ist. In diesem
Fall wird die Erzeugung des Signales CSANElO ebenso wie die Erzeugung eines frühen Ubertragungssignales CSIFNlO durch ein
UND-Gatter 201-253 gesperrt.
709827/0753
Die UND-Gatter 201-206 und 201-207 veranlassen den Verstärker
201-206 zur Ausgabe des Übertragungssignales CSRFBlO mit.dem
Binärwert "1" auf Grund gewisser Mikrobefehle der Gruppe 5 und Gruppe 7. Bei diesen Mikrobefehlen handelt es sich um den
Mikrobefehl CBRTE der Gruppe 5 und die Mikrobefehle UBRK, RTFIR und RTERR der Gruppe 7.
Das UND-Gatter 201-210 veranlaßt den Verstärker 201-211 zur Ausgabe des Übertragungssignales CSRFAlO in Abhängigkeit von
dem Mikrobefehl CBRTN der Gruppe 5. Die Gatter 201-212 und 201-213 verursachen die Ausgabe des Übertragungssignales CSAFRlO
mit dem Binärwert "1" durch den Verstärker 201-214 in Abhängigkeit von bestimmten Bedingungen und in Abhängigkeit von bestimmten
Mikrobefehlen der Gruppe 7. Die Bedingungen sind beispielsweise
durch das Ende einer Abtastoperation, CSASCOT = 0, beim Vorliegen eines Auslösesignales oder durch ein Speichersignal
während einer Vorabtastoperation, CSAFRIB = 0f vorgegeben.
Bei den Mikrobefehlen der Gruppe 7 handelt es sich beispielsweise um die Mikrobefehle RTNFR und RTFRR. Die Gatter
201-230 und 201-231 und die Inverterschaltkreise 201-232 bis 201-234 erzeugen das geeignete Konditionierungssignal für das
Gatter 201-212 in der dargestellten Weise.
Das Gatter 201-216 veranlaßt den Verstärker 201-218 zum übergang
des Signales CSIFBlO auf den Binärwert "1" während einer Hardware-Register-Ein/Auslagerungs-Operation (z.B. CSHRSlO = 1) ,
in welcher der Inhalt des CSI-Registers 201-26 mit einer von dem CSB-Inkrementierschaltkreis 201-20 während des Vorliegens
der Mikrobefehle CSMR und CSWR inkrementierten Adresse geladen wird. Das UND-Gatter 201-217 setzt über den Schaltkreis 201-218
das Signal CSIFBlO während der Abrufphase der Mikrobefehle CSMR und CSMW auf den Binärwert "1".
709827/0753
Das UND-Gatter 201-220 sperrt den Inverterschaltkreis 201-222,
so daß das Übertragungssignal CSHFAlO, das für die Ergänzung
des Stammdatenregisters 201-18 während der Ausführung der Verzweigungsmikrobefehle
CBOTN und CBRTN erforderlich ist, gesperrt wird, sofern irgendeine der getesteten Bedingungen erfüllt
ist (CSATTlO = 1). Das Gatter 201-221 verhindert ebenfalls, daß das Signal CSHFAlO den Binärwert "1" einnimmt, wenn
sich der Steuerabschnitt 201 nicht im Ablauf-Zustand befindet (z.B. CSRUNOO = 1). Die Bedingungen, die den Steuerabschnitt
in den Ablauf-Zustand versetzen, werden durch das Drücken eines Steuerfeld-Druckknopfes für einen Befehl, durch den Steuerfeld-Ablauf-Druckknopf
oder durch die Vervollständigung einer erfolgreichen Abtastoperation vorgegeben. Der Steuerabschnitt
schaltet von dem Ablaufzustand in den Haltezustand um, wenn
ein Steuerfeld-Auslösedruckknopf, der Druckknopf für den einen
Befehl oder ein Steuerfeld-Stopdruckknopf beim Vorliegen bestimmter Fehlerbedingungen gedrückt wird.
Die UND-Gatter 201-224, 201-226 und 201-227 sperren den Inverterschaltkreis
201-228, so daß dieser das übertragungssignal CSAFBlO beim Vorliegen bestimmter Arten von Mikrobefehlen
nicht auf den Binärwert "1" setzen kann. Beispielsweise verhindern die UND-Gatter 201-224 und 201-226 eine Umschaltung
des Signales CSAFBlO auf den Binärwert "1" während der Bearbeitung von Verzweigungs-Mikrobefehlen der Gruppe 5,
wenn entweder die durch das Testfeld 1 oder die durch das Testfeld 2 getestete Bedingung erfüllt ist. Hierdurch wird
die normale Erhöhung des Adresseninhalts des CSA-Registers 201-12 durch den CSB-Inkrementierschaltkreis 201-20 verhindert.
Das UND-Gatter 201-241 und das Gatter 201-240 verhindern ebenfalls
die Umschaltung des Signales CSAFBlO auf den Binärwert "1" beim Vorliegen von Mikrobefehlen des Types CSMR und CSMW.
Ferner sperrt das UND-Gatter 201-237 die Erzeugung des Signales CSAFBlO, wenn sich der Steuerabschnitt 201 nicht im Ablauf-Zustand
befindet (z.B. CSRUNOO = 1), wenn er nicht ausgelöst worden ist, sich nicht im Abtastmodus befindet (CSINTOO = 1,
CSASCOO = 1) oder wenn das Signal CSAFRlO den Binärwert "1"
709827/07 53
aufweist. Ein letztes UND-Gatter 201-236 verhindert die Umschaltung
des Signales CSAFBlO auf den Binärwert "1" während der Abrufphase von Mikrobefehlen der Gruppe 7.
Das Gatter 201-245 setzt über den Verstärker 201-247 das Übertragungssignal CSAFIlO auf den Binärwert "1", wenn ein
Mikrobefehl des Types CSMR oder CSMW beendigt wird oder wenn eine Steuerfeld-Schreiboperation über die Gatter 201-265 bis
201-268 abläuft, durch welche das Umschalt-Flip-Flop 201-270 für ein Taktimpulsintervall auf den Binärwert "1" umschaltet.
Die Rückstellung erfolgt über das UND-Gatter 201-269. In Abhängigkeit von den Mikrobefehlen RTNFI und RTFIR der Gruppe 7
verursacht das UND-Gatter 201-246 die Erzeugung des Signales CSAFIlO mit einem Binärwert "1".
Das Paar von UND-Gattern 201-248 und 201-249 veranlaßt den Verstärkerschaltkreis 201-250 zur Ausgabe des spaten Übertragungssignales
CSAFNlO mit einem Binärwert "1" während der Ausführung von bedingten Verzweigungsbefehlen der Gruppe 5,
wenn entweder die durch das Testfeld 1 oder die durch das Testfeld 2 geprüfte Bedingung erfüllt ist.
Die UND-Gatter 201-252 und 201-253 setzen über den Verstärkerschaltkreis
201-254 das frühe Übertragungssignal CSIFNlO während der Abrufphase des Mikrobefehls LCSIK aus der Gruppe 6
auf den Binärwert "1", wenn das Signal CSIFNlA unter den oben erläuterten Bedingungen den Binärwert "1" aufweist.
Die Gatter 201-256 und 201-257 sperren das Operationscode-Übertragungssignal
CSNFM90 gegen eine Umwandlung auf den Binärwert "1" während der Ausführung der Mikrobefehle CSMR
und CSMW der Gruppe 7. Das Gatter 201-258 sperrt das Signal CSNFM90 während der Ausführung von Mikrobefehlen CBOTN und
CBRTN der Gruppe 5, wenn die durch das Testfeld 1 oder das Testfeld 2 überprüfte Bedingung erfüllt ist. Bei erfüllter,
709827/0753
getesteter Bedingung und in Abhängigkeit der Mikrobefehle CBOTN und CBRTN veranlaßt das UND-Gatter 201-262 über den
Verstärker 201-263 die Umwandlung des Übertragungssignales CSNFMOO in den Binärwert "0".
Hauptgruppen- und Subbefehls-Decodierschaltkreise 201-34.
Die,Schaltkreise, die die verschiedenen, den Schaltkreisen des
Blockes 201-32 zugeführten Gruppen-Decodiersignale erzeugen,
sind in näheren Einzelheiten in Figur 5b dargestellt. Gemäß Figur 5b ist ersichtlich, daß die Hauptgruppensignale in
erster Linie durch die Decodierung verschiedener Kombinationen der Operationscodebits 0 bis 4 gebildet werden. Die Schaltkreise
umfassen eine Vielzahl von UND-Gattern 201-400 bis 201-411, die in Abhängigkeit von verschiedenen Operationscode-Bitmustern
der verschiedenen Mikrobefehlstypen ihre zugeordneten Verstärkerschaltkreise 201-414 bis 201-424
beaufschlagen.
In Figur 5c sind die Subbefehls-Decodierschaltkreise dargestellt, welche die für die Mikrobefehlsbearbeitung erforderlichen
Subbefehlssignale erzeugen. Wie aus Figur 5c ersichtlich,-
sind die Subbefehle in 13 getrennte Gruppen von 7 Subbef
ehlen unterteilt. Der Block 201-34 weist demnach 13 Binär/ Dezimal-Decodierschaltkreise 201-451 bis 201-463 auf, von denen
jeder eine spezifische Gruppe von Bits des internen Speicherregisters 201-16 decodiert. Der Bit-Eingang mit dem höchsten
Rang eines jeden DecodierSchaltkreises wird als Freigabeeingang benutzt und erhält Sperrsignale (z.B. CSGAIlO bis CSGDIlO)
zugeführt, die durch verschiedene der Schaltkreise 201-470 bis 201-487 erzeugt werden. Dies bedeutet bei einem Sperrsignal
mit dem Binärwert "1" eine Sperrung der Decodierung der Subbef ehlssignale, da die Eingangscodes nunmehr Werte besitzen,
die größer als die für die Erzeugung der 7 Subbefehle erforderlichen
Werte sind.
709827/0753
J*
Die Sperrsignale, die mit Gruppe A bis Gruppe D bezeichnet
sind, stellen sich folgendermaßen dar:
1. CSGAIlO = (Gruppe A) für die Subbefehls-Decodiergruppen
1 bis 5. Das Signal nimmt den Binärwert "0" nur dann ein, wenn ein Mikrobefehl DCKl vorliegt.
2. CSGBIlO = (Gruppe B) für die Subbefehls-Decodiergruppen
7 bis 8. Dieses Signal nimmt den Binärwert "0" hinsichtlich aller Mikrobefehlsgruppen mit Ausnahme
der Gruppe 0, der Gruppe 5 oder einem LDC-Mikrobefehl ein.
3. CSGBI30 = (Gruppe B) für die Subbefehls-Decodiergruppe 6.
Dieses Signal nimmt den Binärwert "0" beim Vorliegen aller Mikrobefehlsgruppen mit Ausnahme
der Gruppen 0, 3 und 5 ein.
4. CSGCIlO = (Gruppe C) für die Subbefehls-Decodiergruppen
9 bis 12. Dieses Signal nimmt den Binärwert "0" nur beim Vorliegen eines DCK2-Mikrobefehls ein.
5. CSGDIlO = (Gruppe D) für die Subbefehls-Decodiergruppe 13.
Dieses Signal nimmt den Binärwert "0" nur beim Vorliegen eines DCK2-Mikrobefehls ein.
Testanzeige- und Verzweigungsschaltkreise 201-36
Figur 5d zeigt die Schaltkreise zum Decodieren der beiden 6 Bit-Gruppen der Testfeldbits innerhalb der Mikrobefehle der
Gruppe 5. Wie aus der Zeichnung ersichtlich, weisen die Schaltkreise vier Gruppen von Multiplexerschaltkreisen auf. Zwei der
Gruppen entsprechend den Blöcken 201-600 und 201-602/umfassen
jeweils 8 Multiplexerschaltkreise. Die beiden anderen Gruppen,
709827/0753
entsprechend den Blöcken 201-604 und 201-606,umfassen jeweils
einen einzigen Multiplexerschaltkreis. Jeder Multiplexer-Auswahlschaltkreis
besitzt 8 Eingänge, von denen jeder an ein vorbestimmtes Indikatorsignal entsprechend einer speziellen
Bedingung angeschlossen ist.
Die spezielle durch jeden Multiplexerschaltkreis der Blöcke
201-600 und 201-602 auszuwählende Bedingung wird durch die Bits CSN2O-22 des Testfeldes 1 und die Bits CSN27 bis 29
des Testfeldes 2 festgelegt. Die verbleibenden drei Bits eines jeden Testfeldes werden zur Auswahl eines der 8 Ausgänge
aus jeder Gruppe der 8 Multiplexerschaltkreise benutzt.
Die Ausgänge der 8 Multiplexerschaltkreise werden durch die Signale CSTFlOA bis CSTFlOH und CSTF20A bis CSTF20H
gebildet. Ein UND-Gatter 201-610 und ein Inverterschaltkreis
201-611 kombiniert die Indikator-Ausgangssignale des Testfeldes 1 und des Testfeldes 2 und setzt das Signal CSATTlO
auf den Binärwert "1", wenn die durch das Testfeld 1 oder das Testfeld 2 geprüfte Bedingung erfüllt ist.
Hauptstatusschaltkreise 201-50
Die Hauptstatusschaltkreise umfassen mehrere Flip-Flops 201-500 bis 201-507, von denen eine Anzahl in Figur 5e dargestellt
ist. Zum Zwecke der Vereinfachung sind nur drei der Flip-Flops mit den zugeordneten Schaltkreisen dargestellt.
Die verbleibenden Flip-Flops sind jedoch an gleiche Schaltkreise
angeschlossen.
Das Flip-Flop 201-500 zeigt an, wenn der Steuerabschnitt initialisiert worden ist. Das UND-Gatter 201-510 setzt das
Flip-Flop 201-500 auf den Binärwert "1", wenn ein Steuerspeicher-Initialisierknopf
gedrückt wird. Das UND-Gatter 201-512 stellt das Flip-Flop bei der Freigabe des Druckknopfes
zurück, wenn das Signal CSNEMlA den hohen Pegel einnimmt. Das Signal CSINTlO wird zur Rückstellung der CSR- und
70 9 827/0753
CSI-Register 201-22 und 201-26 benutzt und es versetzt den
Adapter 200 und den S2P-Prozessor in einen bekannten Zustand.
Das Flip-Flop 201-501 gestattet dem Steuerabschnitt 201 das
Anhalten der Operation bei der Feststellung eines Hardware-Fehlers, eines Steuerspeicher-Paritätsfehlers, eines Register-Paritätsfehlers
oder eines nicht-existierenden Speicher-Prüffehlers. Das Gatter 201-514 schaltet das Flip-Flop auf den
Binärwert "1" entsprechend dem Subbefehlssignal CSS421O. Das Flip-Flop wird durch das Niederdrücken des Initialisierknopfes
oder durch das Subbefehlssignal CSS4110 zurückgestellt. Im
zurückgestellten Zustand verursacht das Flip-Flop 201-501 kein Anhalten der Systemoperation in Abhängigkeit von Steuerspeicherfehlern.
Die Fehler veranlassen lediglich das Setzen geeigneter Statusindikatoren. Es sei darauf verwiesen, daß
der Operationsmodus, der durch das Flip-Flop 201-501 freigegeben wird, mit Vorteil Verwendung findet, wenn das System
einen Basislogiktest und Wartungs-überprüfungsroutinen beim
Testen der Operation von Prüfschaltkreisen durchführt.
Das nächste Flip-Flop 201-502 gestattet entweder die Auswahl nicht-modifizierter 36 Bits zum Einschreiben in den Steuerspeicher
201-10 (z.B. wenn das Signal CSAHPlO = 0 ist) oder die Auswahl von Paritätsprüfbits, die durch Schaltkreise des
Blockes 201-15 zum Einschreiben in den Steuerspeicher 201-10 erzeugt werden (z.B. wenn das Signal CSAHPlO = 1 ist). Das
Flip-Flop 2Ol-5O^iubler das Gatter 201-524 durch das Subbefehlssignal
CSS761O auf den Binärwert "1" umgeschaltet. Durch das
Subbefehlssignal CSS770O wird es über das UND-Gatter 201-526
zurückgestellt.
Das Flip-Flop 201-503 zeigt einen Diagnostiziermodus an und wird während der Ausführung von Wartungsprüfroutinen als ein
Statusindikator .benutzt. Es wird durch das Subbefehlssignal
CSS231O auf den Binärwert "1" und durch das Haltesignal CSDIAlH auf den Binärwert "0" geschaltet. Das Flip-Flop 201-504 definiert
709827/0753
den Modus des CST-Zählers 201-54. Wenn es durch das Subbefehlssignal
CSS871O auf den Binärwert "1" gesetzt ist, zeigt es an, daß sich der Zähler in einem Abwarts-Zählmodus befindet. Ist es
durch das Subbefehlssignal CSS83OO auf den Binärwert "O" zurückgestellt,
so zeigt es an, daß sich der Zähler in einem Aufwarts-Zählmodus
befindet.
Das Flip-Flop 201-506 ist ein Status-Flip-Flop, welches im auf "1" gesetzten Zustand anzeigt, daß der Steuerspeicher 201-10 mit
individueller Firmware geladen ist. Es wird durch das Subbefehlssignal
CSS1210 auf "1" gesetzt und durch das Haltesignal CSFLDlH auf "0" zurückgestellt, wobei dieses Haltesignal den Wert "0"
aufweist, wenn der Steuerspeicher-Steuerfeld-Auslöseknopf gedrückt
ist.
Das letzte Flip-Flop 201-507 ist ein Start-Datenbewegungs-Flip-Flop,
das die Schaltkreise innerhalb des Datenabschnittes 210-20 aktiviert, um Daten durch den Adapter 200 zu bewegen. Es wird in
Abhängigkeit eines Subbefehlssignales CSS3110 auf "1" gesetzt. Das Flip-Flop wird auf "0" zurückgestellt, indem das Signal
CSINTOO zur Annahme des Binärwertes "0" veranlaßt wird. Das Signal CSINTOO wird durch die Datenabschnitts-Schaltkreise,
ein S2P-Auslösesignal oder durch Subbefehlssignale zur Annahme des Binärwertes "0" veranlaßt.
Daten-Steuer-Decodierschaltkreise 201-40
Diese Schaltkreise entsprechend größtenteils den Schaltkreisen gemäß den Figuren 5a bis 5c. Figur 5g zeigt in näheren Einzelheiten
die Schaltkreise, die den Datenabschnitt 210-6 und den Multiplexerschaltkreis 210-10 während der Bearbeitung von CSMR-
und LDC-Mikrobefehlen konditionieren. Gemäß Figur 5g ist ersichtlich,
daß das Steuersignal BSNFMlO erzeugt wird, wenn ein Flip-Flop 201-700 über ein UND-Gatter 201-702 oder ein UND-Gatter
201-704 auf Grund eines LDC-Mikrobefehls der Gruppe 3 oder eines
709827/0753
CSMR-Mikrobefehls der Gruppe 7 auf "1" geschaltet wird. Das
UND-Gatter 201-706 stellt das Flip-Flop beim Auftreten des nächsten Taktimpulses auf "1" zurück»
S2P-Steuerfeld-Logikschaltkreis 201-52
In Figur 5i sind die Schaltkreise dargestellt, die eine Vorabtastung
des SteuerSpeichers 201-10 durchführen. Für eine vereinfachte Erläuterung bilden diese Schaltkreise einen Teil des
Blockes 201-52. Aus Figur 5i ist ersichtlich, daß die Schaltkreise
ein Paar hintereinandergeschalteter Flip-Flops 201-550 und 201-552 aufweisen. Das erste Flip-Flop wird auf "1" immer
dann umgeschaltet, wenn der Steuerspeicher-Auslöseknopf freigegeben
wird und es verbleibt in diesem gesetzten Zustand, bis die Abtastung vollständig durchgeführt ist (z.B. Signal CSBO21O
= 1) oder ein Steuerspeicherfehler festgestellt wird.(z.B. Signal
CSAERlO = 1).
Das zweite Flip-Flop 201-552 wird über das Gatter 201-600 einen Taktimpuls nach dem Umschalten des Flip-Flops 201-550 auf "1"
umgeschaltet. Die Signale CSASCOO und CSASC30 sowie CSAEROO
werden zur Erzeugung des Signales CSASCOT benutzt, wodurch der Steuerabschnitt 201 beim Ende einer Festwertspeicherabtastung
zum Eintritt in einen Ablaufmodus veranlaßt wird, sofern die Abtastung erfolgreich verlief.
Lese/Schreib- und Paritäts-Erzeugungsschaltkreise 201-15.
Die Schaltkreise erzeugen bestimmte Steuersigale, wie sie bei der Ausführung einer Steuerspeicher-Schreiboperation erforderlich
sind. Wie aus Figur 5g hervorgeht, weisen die Schaltkreise ein Paar von in Reihe geschalteten Flip-Flops 201-150 und 201-151
auf. Die "1"-Ausgangssignale der Flip-Flops werden in einem UND-Gatter 201-159 miteinander kombiniert und veranlassen den
709827/0753
Verstärkerschaltkreis 201-160 zur Ausgabe eines Schreibsteuerimpulses
CSWRTlO.
Das Flip-Flop 201-151 wird durch ein Signal DPCSElO auf "1" umgeschaltet,
wobei das Signal DPCSElO durch Drücken des Steuerfeldknopfes erzeugt und über das Gatter 201-157 zugeführt wird.
Das UND-Gatter 201-158 schaltet das Flip-Flop 201-151 auf "1" auf Grund eines CSMW-Mikrobefehls um. Ein UND-Gatter 201-155
stellt das Flip-Flop auf "0" beim Auftreten des nächsten Taktimpulses
zurück.
Verschiedene der Schaltkreise, die durch die von dem Flip-Flop 201-151 erzeugten Signale konditioniert werden, v/eisen ein Paar
Flip-Flops 201-161 und 201-162 auf. Das Flip-Flop 201-161 wird
durch das Schreibsignal CSWRTlA über ein UND-Gatter 201-163 auf "1" geschaltet. Ein UND-Gatter 201-164 schaltet das Flip-Flop
ebenfalls auf "1" beim Vorliegen eines CSMR-Mikrobefehls der
Gruppe 7. Beim Auftritt eines nachfolgenden Taktimpulses stellt ein UND-Gatter 201-165 das Flip-Flop auf "0" zurück.
Das "!"-Signal des Flip-Flops 201-161 veranlaßt bei seiner Zuführung
über das Gatter 201-166 das Flip-Flop 201-162 zur Umschaltung auf "1". Das "1"-Signal dieses Flip-Flops wird zum
Sperren des Paritätsprüfschaltkreises 201-44 benutzt, so daß dieser keine Prüfung des Adresseninhalts des CSI-Registers 201-26
nach der Bearbeitung der CSMR- und CSMW-Mikrobefehle oder
nach einer durch das Steuerfeld ausgelösten Schreiboperation durchführen kann. Das Flip-Flop 201-162 wird über ein UND-Gatter
201-167 zurückgestellt, wenn ein LCSIK-Mikrobefehl der
Gruppe 6 (z.B. CSIFNlO = 1), ein Steuerspeicher-Auslösesignal (z.B. CSINTlO = 1) oder ein Subbefehlssignal (z.B. CSS731O = 1)
vorliegt. Somit sperrt das Flip-Flop 201-162 die Paritätsprüfung des CSI-Registers 201-26 nach einem Steuerspeicherlese-oder
Schreibzyklus bis das CSI-Register 201-26 erneut über einen LCSIK-Mikrobefehl, ein Auslösesignal oder einen Firmware-Subbefehl
mit der richtigen Parität geladen ist.
709827/07 5 3
Die Schaltungsanordnung gemäß Figur 5g umfaßt ferner die Paritäts-Generatorschaltkreise,
die neue Paritätsbits für ein während der Bearbeitung eines CSMW-Mikrobefehls in den Steuerspeicher
201-10 eingeschriebenes Wort erzeugen. Die Paritätsschaltkreise weisen einen herkömmlichen Aufbau auf.
Wie weiterhin aus Figur 5g ersichtlich, erzeugt jeder der vier Paritäts-Generatorschaltkreise ein ungerades Paritätsprüfbit
für die Bits der vier verschiedenen Bytes, die das Wort bilden. Das ungerade Prüfbit (z.B. die Signale BSZPIlO bis BSZP41O) eines
jeden Schaltkreises wird verschiedenen UND-Gattern 2Ο1-Γ74 bis 201-176 einer ersten Gruppe zugeführt. Die ursprünglichen unveränderten
Bits (d.h. die Signale BSZ321O bis BSZ351O) werden verschiedenen
UND-Gattern 201-175 bis 201-177 innerhalb einer zweiten Gruppe von Gattern zugeführt.
Die Schaltkreise 201-180 bis 201-184 dienen der Auswahl entweder der durch die Schaltkreise 201-170 bis 201-173 erzeugten
Paritätsbits (zfB. wenn das Signal CSAHPlO = 1 ist) oder der
Auswahl der unmodifizierten BSZ-Bits (wenn das Signal CSAHPlO
= 0 ist). Wie zuvor erwähnt, bildet der erste Operationsmodus einen normalen Operationsmodus, der das Einschreiben von Daten
in die Speicherplätze des im Steuerspeicher 201-10 enthaltenen Zwischenspeichers gestattet. Der zweite Operationsmodus wird
während der Ausführung von Lade-Steuerspeicher- und Basislogiktest-Routinen benutzt. Die Signale CSAUPlO und CSAGPlO
weisen die Werte "0" und "1" auf, wenn sich der Steuerspeicher 201-10 in einem Stopmodus befindet. Dies gestattet die Erzeugung
neuer Paritätsprüfbits in Abhängigkeit von Schreiboperationen, die vom Steuerfeld her ausgelöst werden, ungeachtet des Zustandes
des Signales CSAHPlO.
709827/0753
Paritatsprüfschaltkreise und Fehlerschaltkreise 201-42 bis 201-4
Figur 5h zeigt die Paritatsprüfschaltkreise der Blöcke 201-42,
201-43 und 201-44 zusammen mit zugeordneten Flip-Flops und Gatterschaltkreisen des Blockes 201-45. Lediglich einer der
Paritatsprüfschaltkreise ist näher dargestellt. Jeder Paritätsprüfschaltkreis
umfaßt zwei in Reihe geschaltete Paritäts-Generatorschaltkreise, z.B. die Schaltkreise 201-428 und 201-426,
die einen herkömmlichen Aufbau aufweisen.
Der erste Schaltkreis unterzieht die 8 höchstrangigsten Bits des zugeordneten Registers einer EXKLUSIV-ODER-Verknüpfung
während der zweite Schaltkreis eine EXKLUSIV-ODER-Verknüpfung mit den 8 niedrigrangigsten Bits des gleichen Registers durchführt,
wobei ein durch den ersten Schaltkreis erzeugter übertrag hinzuaddiert wird. Wenn die Anzahl der Bits mit dem Binärwert "1" gerade ist, so gibt der zweite Schaltkreis an seiner
Ausgangsklemme den Binärwert "1" (z. B. das Signal CSAPElA = 1)
aus, um einen Fehlerzustand anzuzeigen.
Es sei vermerkt, daß einige der Paritätsschaltkreise mehr als ein Freigabesignal erhalten (z.B. CSHRSOO, CSLOGlO, CSIICOO).
Normalerweise weisen diese Signale Bits mit dem Wert "1" auf, welche ihrerseits die Paritätsprüfschaltkreise während der
Systemoperation freigeben.
Jedes der Paritätsfehlersignale CSAPElA, CSRPElA und CSIPElA wird als Eingang einem entsprechenden Flip-Flop 201-800 bis
201-802 zugeführt. Das Flip-Flop 201-800 wird durch ein UND-Gatter 201-803 auf "1" gesetzt, wenn das Signal CSWRTOA den
Wert "1" aufweist, d. h. wenn keine Schreiboperation vorliegt, die durch das Steuerfeld oder einen CSMW-Mikrobefehl vorgegeben
ist. Die Flip-Flops 201-801 und 201-802 werden durch Signale CSRPElA und CSIPElA auf "1" gesetzt.
709827/0753
Die "O"-Ausgänge der Flip-Flops v/erden durch ein UND-Gatter
zusammengefaßt, wobei dessen Ausgang einem Gatter- und Inverterschaltkreis
201-812 und einem UND-Gatter 2OL-814 zugeführt wird. Der Schaltkreis 201-812 setzt das Signal CSARElO auf den Binärwert "1", wenn irgendeines der Fehler-Flip-Flops 201-800 bis
201-802 auf "1" gesetzt wird. Das UND-Gatter 201-814 kombiniert die verschiedenen Arten von Steuerspeicherfehlern und setzt den
Ausgang eines Inverterschaltkreises 201-816 auf den Binärwert "1" beim Vorliegen eines Fehlers. Die Fehlersignale umfassen
Steuerspeicher-Paritätsfehler, die festgestellt werden durch: Schaltkreise, die einen Teil des Speicher-Ausgangsregisters
201-16 bilden (Signale CSPEROO bis CSPER60), sowie durch Steuerspeicher-Adressierbedingungen
(Signal CSNEMOO) zusätzlich zu dem durch das Signal CSAERlA angezeigten Register-Paritätsfehler.
Datenabschnitt 210-8
Figur 5f zeigt einen Teil des Datenabschnittes 210-6. Wie zuvor bereits erwähnt, wird die gleiche Schaltungsanordnung zur Verarbeitung
der niedrigrangigen Bits 36 bis 71 benutzt, die von einem zweiten nicht dargestellten Multiplexerschaltkreis erhalten
werden.
Gemäß Figur 5f ist ersichtlich, daß der Abschnitt eine Gruppe von 3 Registern 210-900 bis 210-902 mit einer Breite von 36
Bit aufweist. Die Register BSY1-21O-9OO und BSX1-21O-9O1 bilden
die Eingänge für einen anderen Multiplexerschaltkreis 210-904.
Der Ausgang des MultiplexerSchaltkreises 210-904 bildet eine
Quelle von A-Operandensignalen für ein Rechenwerk ALU-210-906.
Das Register BSNl-210-902 dient als Quelle für B-Operandensignale.
709827/0753
Der Ausgang des Rechenwerks ALU-210-906 ist auf eine Datenschiene
BSZ geschaltet und dient zugleich als Eingang für
jedes der Register 210-900 bis 210-902. Jedes der Register
ist ferner an den Ausgang des Multiplexerschaltkreises 210-10 angeschlossen. Während der Bearbeitung von Mikrobefehlen der Gruppe 3 (MG310 = 1) gibt das Bitpaar Dl * D2 die Abgabe des Rechenwerkausganges an die Register BSXl, BSYl und BSNl frei. Das Bitpaar D5 · D6 schaltet den Ausgang BSMl des Multiplexerschaltkreises 210-10 auf die Register BSXl, BSYl und BSNl, wenn das Signal CSMG310 = 1 ist.
jedes der Register 210-900 bis 210-902. Jedes der Register
ist ferner an den Ausgang des Multiplexerschaltkreises 210-10 angeschlossen. Während der Bearbeitung von Mikrobefehlen der Gruppe 3 (MG310 = 1) gibt das Bitpaar Dl * D2 die Abgabe des Rechenwerkausganges an die Register BSXl, BSYl und BSNl frei. Das Bitpaar D5 · D6 schaltet den Ausgang BSMl des Multiplexerschaltkreises 210-10 auf die Register BSXl, BSYl und BSNl, wenn das Signal CSMG310 = 1 ist.
709827/0753
Anhand des vorstehend beschriebenen Systemaufbaus sei nunmehr
die Wirkungsweise der erfindungsgemäßen Einrichtung anhand der Figuren 6a und 6b beschrieben. Bevor jedoch auf diese Figuren
Bezug genommen wird, sei in dem erforderlichen Ausmaß beschrieben,
wie die Speicherplätze, die den Zwischenspeicher bilden, während der Verarbeitung der Mikroprogrammroutinen aufgerufen werden, um
sie in den Steuerspeicher 201-10 zu laden.
Mikroprogramm-Assembler-System
Es sei vorausgeschickt, daß die in den Steuerspeicher 201-10
zu ladenden Mikroprogramme durch ein Register-Übertragungspegel-Assemblersystem RTL umgewandelt werden. Im Falle der
vorliegenden Erfindung kann das System herkömmlicher Art sein. Solche Systeme sind in verschiedenen Veröffentlichungen erläutert
worden, beispielsweise in "RTL the Firmware Design Automation System" von Robert L. Hasterlik, veröffentlicht in
"Eleventh Design Automation Workshop Prodeedings", Juni 17-19,
1974.
Das System πι acht von einer Universalsprache Gebrauch, welche in
großem Umfang bei der Steuerspeicherverwirklichung benutzt wird. Parameter, die die Grundlage von Anweisungen bilden, kennzeichnen
die Steuerspeicher/Firmware-Verwirklichungsinformation durch den speziellen Entwurf des Assemblersystems. Solche Parameter
definieren die Größe des SteuerSpeichers oder dessen Länge, die Breite eines jeden Steuerspeicherwortes, die Felder eines jeden
Wortes usw.
Die zu der vorliegenden Erfindung gehörenden Parameter umfassen die Größe des Steuerspeichers, welche deklariert wird als: ROMDEF,
den "R0M"-Name, "die "Breite" und die "Länge". Der "R0M"-Name ist irgendein gültiger Name, der dem Steuerspeicher zur Bezugnahme
durch andere Parameter gegeben wird. Die "Breite" bezeichnet die
709827/0753
Anzahl der Bits in jedem SteuerSpeicherwort. Hier ist dieser
Wert durch 36 gegeben. Die "Länge" bezeichnet die Anzahl der Worte im Steuerspeicher. Dieser Wert ist im vorliegenden Fall
durch 5120 gegeben.
Jedes Steuerspeicherwort wird durch Voranstellung des Dollarzeichens
vor den symbolischen Namen gekennzeichnet. Jeder dem
fo3.ge.nde
DollarzeichenVund vor dem nächsten Dollarzeichen stehende symbolische Code wird umgewandelt und in einem Wortspeicher- . platz des Steuerspeichers abgelegt. Im allgemeinen v/erden Wortadressen durch den Assembler zugeordnet, wobei diese Adressen mit Null beginnen und der Reihe nach für jedes festgestellte Steuerspeicherwort fortschreiten. Um dies zu ändern, kann die Adresse auf einen Wert gesetzt werden, der von dem nächsten Wert der Folge abweicht, in dem der gewünschte Wert unmittelbar nach dem Namen des Steuerspeicherwortes oder dem das Wort definierenden Dollarzeichen in Klammern gesetzt wird. Die Adressenzuordnung sehreitet sodann von diesem neuen Wert der Reihe nach weiter.
DollarzeichenVund vor dem nächsten Dollarzeichen stehende symbolische Code wird umgewandelt und in einem Wortspeicher- . platz des Steuerspeichers abgelegt. Im allgemeinen v/erden Wortadressen durch den Assembler zugeordnet, wobei diese Adressen mit Null beginnen und der Reihe nach für jedes festgestellte Steuerspeicherwort fortschreiten. Um dies zu ändern, kann die Adresse auf einen Wert gesetzt werden, der von dem nächsten Wert der Folge abweicht, in dem der gewünschte Wert unmittelbar nach dem Namen des Steuerspeicherwortes oder dem das Wort definierenden Dollarzeichen in Klammern gesetzt wird. Die Adressenzuordnung sehreitet sodann von diesem neuen Wert der Reihe nach weiter.
Gemäß der vorliegenden Erfindung kennzeichnen die Mikrobefehlsworte LCSIK des Steuerspeichers auf Grund ihrer Codierung Speicherplätze
eines Zwischenspeichers. Jeder Zwischenspeicher-Speicherplatz ist mit $SPA bezeichnet, wobei 'SPA" den symbolischen
Code oder Hinweis darstellt, der zur Festlegung eines Zwischenspeicher-Speicherplatzes benutzt wird.
Ein Abschnitt des Assemblers umfaßt ein "Wörterbuch" oder eine
Tabelle, in der die Steuerspeicher-Mikrobefehle und ihre entsprechenden
Steuerspeicher-Wortstrukturen definiert sind.
Im Falle eines jeden mit einem Hinweis versehenen LCSIK-Mikrobefehlswortes
kann dieses Wort durch seine Codierung einen bestimmten Speicherplatz als Zwischenspeicher-Speicherplatz 1
($SPA1) festlegen, wobei auf diesen durch die Adresse 5700
709827/0753
so
hingewiesen wird. Die in dem LCSIK-Mikrobefehl enthaltene
Zwischenspeicheradresse wird durch das Verzweigungs-Adressenfeld
als ($SPA1) bestimmt. Das in den Zwischenspeicher-Speicherplatz
1 zu ladende Steuerspeicherwort wird jedoch mit £SPA1
(5700) keine Operation bezeichnet.
Alle Zwischenspeicher-Speicherplätze und unbenutzten Steuerspeicher-Speicherplätze
speichern ein Bitmuster, das auf einen Mikrobefehl "keine Operation" (no op) hinweist, wobei dieser
Mikrobefehl als ein Anfangswert (no op) spezifiziert ist. Ferner ist jedem Zwischenspeicher-Speicherplatz eine getrennte Hinweisadresse
zugeordnet, wodurch dieser Speicherplatz freigehalten wird. Im folgenden sei ein Beispiel für den Gebrauch des Zwischenspeicher-Speicherplatzes
während einer normalen Operation gegeben:
Steuerspeicher-Zwischenspeicherverzeichnis
(individuelles Laden)
Speicherplatz (oktal) Inhalt
05701 CMPW(00-26) Steuerspeicher-
Hinweisadressenwort
05702 CMPW(O9-35)
05703 2/SSA Hinweisadresse
05704 BAR
05705 Größe
05706 CSB Hinweisadresse
05707 Seitentabellenhinweisadresse
05710 Laufende CC-Hinweisadresse
05711 Nächste CC-Hinweisadresse
05712 Gesondertes CC-Wort (00-26)
05713 Gesondertes CC-Wort (09-35)
05714 Erstes Wort des laufenden CC
7 0 9 8 2 7 / 0 7 B 3
Si
05740 Arbeitsspeicherplatz Nr. 1
05741 Arbeitsspeicherplatz Nr. 2
05774 S2P-Speicherhinweisadresse
05775 S2P-Speiehergröße
05776 Zähler-Taktgeberkonstante
05777 S2P-Statusparameter
Aus vorstehendem wird ersichtlich, daß durch ledigliche Veränderung
der Codierung der £SPA-Mikrobefehle (Zwischenspeicherreservierung) die Größe des Zwischenspeicherbereiches verändert
werden kann. Das bedeutet, daß die Codierung modifiziert wird,· Um das Laden des CSI-Registers 201-26 mit einer neuen Adresse
zu spezifizieren, wodurch ein anderer Zwischenspeicher oder Arbeitsspeicherplatz aus der verbleibenden Gruppe unbenutzter
Speicherplätze definiert wird. Durch Codierung solcher Adressen in den LCSIK-Mikrobefehlen selbst kann somit der Zwischenspeicherbereich
in der gewünschten Weise definiert werden.
Das Assemblersystem wandelt die symbolischen Daten in das Steuerspeicherwort um. Ein Ladeprogramm bildet das Format der
Daten zum Laden in den veränderlichen wortorganisierten Steuerspeicher .
Bevor die Wirkungsweise des Systems gemäß Figur 2 beschrieben wird, sei zuerst Bezug auf Figur 6a genommen. Figur 6a stellt
schematisch die Art und Weise dar, in der Mikrobefehle abgerufen
werden und in der ausgeführte Operationen überlappt werden, um eine optimale Leistung des Systems zu erzielen. In
Figur 6a sind für zwei Mikrobefehle N und N+l typische Abruf-
und Bearbeitungsphasen dargestellt.
709827/0753
SZ
Es sei darauf verwiesen, daß jeder Mikrobefehl aus dem Steuerspeicher
201-10 abgerufen wird und während des 250 ns-Intervalles zwischen den PDA-Taktimpulsen in das interne CSNl-Speicherregister
201-16 geladen wird. Während dieser Zeit wird die in dem CSA-Register 201-12 enthaltene Adresse um
erhöht und der Inhalt des CSH-Registers 201-18 ergänzt. Beim Auftreten des nächsten Taktimpulses werden die Subbefehle, die
Verzweigungsbedingungen und die Rechenwerksoperationen ausgeführt. Gleichzeitig wird während des nächsten PDA-Taktimpulsintervalles
der nächste Mikrobefehl der Folge abgerufen und in das CSNI-Register 201-16 geladen. Ebenso werden während
dieser Zeit, d. h. während der Abrufphase des Mikrobefehls
N+l bestimmte Registerübertragungen durchgeführt, um die
Leistung des Systems noch weiter zu verbessern. Beispielsweise betreffen diese Übertragungen die frühen Übertragungssignale, wie sie durch die Schaltkreise des Blockes 201-32
während der Ausführung bestimmter Mikrobefehle der Gruppe und 7 erzeugt werden.
Das erfindungsgemäße System sei nunmehr anhand der Figuren 6b
und 6c beschrieben. Die Speicherplätze des Steuerspeichers 201-10, die den Zwischenspeicherbereich bilden, werden in
Abhängigkeit von Mikrobefehlen CSMR und CSMW ausgelesen und
eingeschrieben. Die Mikrobefehle CSMR und CSMW verhindern, daß der Inhalt eines Zwischenspeicher-Speicherplatzes als
Mikrobefehlswort interpretiert wird. Stattdessen wird der Inhalt dieser Speicherplätze als Dateninformation behandelt,
die aus dem Speicherplatz ausgelesen bzw. in den Speicherplatz eingeschrieben werden kann. Die Figuren 6b und 6c zeigen
die Takt- und Steuersignale, die während der Entnahme und der Bearbeitung der Mikrobefehle CSMR und CSMW erzeugt
werden. Das "P"-Zeichen bezeichnet den vorangegangenen Inhalt bestimmter Register (z.B. CSA, CSR, CSI usw.).
709827/0753
Leseoperation
Gemäß Figur 6b speichert das CSA-Register 201-12 während des ersten Taktzyklus eine Adresse N, die den Speicherplatz des
CSMR-Mikrobefehls definiert. Das CSI-Register 201-26 speichert
die Adresse, die sich aus einem zuvor ausgeführten LCSIK-Mikrobefehl
oder einem CSMW-, CSMR-Mikrobefehl ergibt. Diese Adresse bestimmt den Zwischenspeicher-Speicherplatz. Das CSN5-0perationscoderegister
201-30 enthält den Operationscode des gerade bearbeiteten Mikrobefehls.
Während dieses Zyklus lädt das Übertragungssignal CSAFIlO die Adresse im CSI-Register 201-26 in das CSA-Register 201-12.
Ebenso wird die Adresse im CSA-Register 201-12 um 1 erhöht und im CSI-Register in Abhängigkeit von dem Übertragungssignal
CSIFBlO gespeichert, wenn dieses durch das Gatter 201-217, d.h. durch die Signale CSMG710 und CSNO43O auf "1" gesetzt wird.
Auf diese Weise wird die Adresse des nächsten Mikrobefehls innerhalb des Mikroprogrammes im CSI-Register 201-26 gespeichert
und die auszulesende Zwischenspeicheradresse (der vorangegangene Inhalt des CSI-Registers 201-26) ist in das CSA-Register
201-12 übertragen worden.
Während des nächsten Zyklus hindert das Signal CSHRSlO das Übertragungssignal CSAFBlO daran, das CSA-Register 201-12 über
den Schaltkreis 201-20 zu laden. Ferner setzt dieses Signal das Übertragungssignal CSNFM90 auf den Binärwert 11O", wodurch
normale Registerübertragungen und eine Operationscodebearbeitung gesperrt werden. Ferner setzt das Signal CSHRSlO das Signal
CSMG71A auf den Binärwert 11O", wodurch frühe Registerübertragungen
gesperrt werden.
Während dieses Zyklus wird ferner der Inhalt des Zwischenspeicher-Speicherplatzes
(Ip) aus dem Steuerspeicher 201-10 in die Verriegelungsschaltkreise 201-16 ausgelesen. Wenn jedoch
709827/0753
das Signal CSNFM9O den Binärwert "O" aufweist, so werden hierdurch
die Bits des CSN5-Registers 2O1-3O ebenfalls auf "O" gesetzt.
Hierdurch werden alle normalen Registerübertragungen gesperrt usw.
Es sei darauf verwiesen, daß der Mikrobefehl LCSIK das CSI-Register
201-26 während des Abrufs des Mikrobefehls lädt, z. B. durch eine frühe Registerübertragung. Hierdurch wird das System
in die Lage versetzt, einen LCSIK-Mikrobefehl, der unmittelbar
einem CSMR- oder CSWR-Mikrobefehl folgt, auszuführen und von dem durch den LCSIK-Mikrobefehl spezifizierten Speicherplatz
Gebrauch zu machen.
Die zuvor im CSI-Register 201-26 gespeicherte Adresse wird in
das CSA-Register 201-12 zurückgeholt, wenn das Übertragungssignal CSAFIlO auf den Binärwert "1" gesetzt wird. Wie weiter
aus Figur 6b hervorgeht, wird die im CSA-Reglster 201-12 gespeicherte
Adresse um 1 erhöht und in Abhängigkeit von dem auf den Binärwert "1" gesetzten Übertragungssignal CSIFBlO
in das CSI-Register 201-26 zurückgeholt.
Während des zweiten Ausführungsintervalles wird der Inhalt des adressierten Zwischenspeicher-Speicherplatzes, der in das
CSNl-Register 201-16 ausgelesen worden ist, durch den Multiplexerschaltkreis
210-10 übertragen und in das BSNl-Register 210-902 gemäß Figur 5f geladen. Hierbei werden die Bits Pl
bis P3 auf "011" und die Überlieferungsbits D5 bis D6 auf "11" gesetzt, um die Übertragung des Dateninhalts zu dem
BSNl-Register 210-902 zu verursachen. Das Setzen der Bits Pl bis P3, D5 und D6 wird durch das Signal BSNFMlO bewirkt,
welches durch die Schaltkreise des Blockes 201-40 gemäß Figur 5g auf den Binärwert "1" gesetzt wird. Das Signal BSNFMlO wird in
Abhängigkeit von dem CSMR-Mikrobefehl über das UND-Gatter 201-704 auf den Binärwert "1" gesetzt. Ferner wird hierdurch, da
die Signale CSGBIlO und CSGBI30 den Binärwert "0" aufweisen,
709827/07B3
die Decodierung der Subbefehle der Gruppen 6, 7 und 8
gestattet.
Da nicht alle 36 Bit als Daten benutzt werden (z. B. werden einige Bits als Paritätsprüfbits benutzt), werden die Prüfbits
auf "O" gesetzt und das gesamte Wort um 9 Bits nach rechts verschoben. Die Verschiebung erfolgt durch den Multiplexer
schaltkreis 210-10, bevor das Wort in das BSNl-Register
210-902 geladen wird. Bevor die Daten zurück in den Zwischenspeicher-Speicherplatz
während der Ausführung einer Schreiboperation zurückgeschrieben werden, wird das Wort zuvor um
9 Bits nach links unter Steuerung durch das Mikroprogramm (Firmware) verschoben.
Während dieses zweiten Intervalles wird ebenfalls der Operationscode
des nächsten Mikrobefehlswortes N+l abgerufen und in das CSN5-Register 201-30 geladen, wie dies aus Figur 6b
hervorgeht. Das Signal CSIIClO wird auf den Binärwert "1"
gesetzt, worauf das Signal CSNFM90 auf "1" umgeschaltet wird. Das Signal CSIIClO hindert den Paritätsprüfschaltkreis
201-44 am Prüfen der Parität des CSI-Registers 201-26
solange, bis der nächste LCSIK-Mikrobefehl abgerufen und bearbeitet
ist. Wie erläutert, ist dies erforderlich, da das Bit 31 im Zwischenspeicher-Speicherplatz auf Grund der Modifikation
durch einen vorausgegangenen CSMW-Mikrobefehl nicht korrekt sein könnte.
: Schreiboperation
Anhand von Figur 6c sei nunmehr eine Schreiboperation erläutert.
Ein CSMW-Mikrobefehl verursacht das Einschreiben der im BSXl-Register
210-901 gespeicherten Daten in einen Zwischenspeicher-Speicherplatz,
der durch den Adresseninhalt des CSI-Registers 201-26 bezeichnet wird. Es sei angenommen, daß der CSMW-Mikrobefehl
im Speicherplatz N+l gespeichert ist.
709827/0753
St
Wie im Zusammenhang mit der Leseoperation bereits erläutert, wird das CSI-Register 201-25 durch einen zuvor ausgeführten
LCSIK-Mikrobefehl oder infolge eines vorausgegangenen CSMR-
oder CSMW-Mikrobefehls geladen. Wie aus Figur 6c hervorgeht, wird während der Abrufphase des CSMW-Mikrobefehls das CSA-Register
201-12 mit der Zwischenspeicheradresse vom CSI-Register 201-26 in Abhängigkeit von Übertragungssignal CSAFIlO
geladen. Das CSI-Register 201-26 wird ebenfalls mit der Rückkehradresse N+2 geladen, dae durch den CSB-Inkrementierschaltkreis
201-20 in Abhängigkeit von dem Übertragungssignal CSIFBlO gebildet wird. Der Adresseninhalt des CSH-Registers 201-18 wird
in der gleichen Weise fortgeschrieben, wie dies bei der Leseoperation der Fall war.
Während des ersten Ausführungsintervalles des CSMW-Mikrobefehls
weisen die Signale CSGBIlO und CSGBI30 den Binärwert "0" auf, wodurch die Decodierung der Subbefehle aus den Gruppen 6, 7
und 8 gestattet wird. Wie aus Figur 6c ersichtlich, erzeugen die Schaltkreise des Blockes 201-15 gemäß Figur 5g Schreibsignale
CSWRTlA und CSWRTlB,die zur Erzeugung des Steuerspeicher-Schreibimpulses
CSWRTlO miteinander verknüpft werden. Dieses Signal wird invertiert, bevor es den SteuerSpeicherschaltkreisen
zugeführt wird. Da der Schreibimpuls während des Auftretens eines Taktimpulses erzeugt wird, wobei die
Daten auf der Speicher-Datenschiene nicht gültig sein können, wird die Paritätsprüfung durch Schaltkreise, die einen Teil
der Verriegelungen des Blockes 201-16 bilden, gesperrt, wobei
dies durch das Signal CSWRTOA mit dem Binärwert "0" erfolgt.
Normalerweise verbindet der Multiplexerschaltkreis 201-904 gemäß Figur 5f das BSXl-Register 201-901 mit der BSZl-Datenschiene,
so daß die zuvor in dieses Register geladenen Signale in den Zwischenspeicher-Speicherplatz eingeschrieben werden.
Neue Paritätsbits werden durch die Schaltkreise gemäß Figur 5g erzeugt, wenn das Signal CSAIiPlO den Binärwert "1" aufweist.
709827/0753
Während des ersten Ausführungsintervalles wird ebenfalls das
Signal CSNFM9O auf den Binärwert "O" gesetzt. Wie im Falle
der Leseoperation wird hierbei die Decodierung des vorherigen Inhalts des Zwischenspeichers verhindert, indem der Inhalt des
CSN5-Registers 201-30 auf den Binärwert "0" gesetzt wird. Hierdurch verhindert der Inhalt des CSN5-Registers 201-30 die
Interpretation (Bearbeitung) des neuen Inhalts des Zwischenspeicher-Speicherplatzes
als ein Mikrobefehl während des zweiten Ausführungsintervalles.
Während des nächsten Ausführungsintervalles (III) wird der Adresseninhalt des CSI-Registers 201-25 in Abhängigkeit von
dem tibertragungssignal CSAFIlO in das CSA-Register 201-12
zurückgeholt. Gleichzeitig wird die im CSA-Register 201-12 gespeicherte Zwischenspeicheradresse um 1 erhöht und in
Abhängigkeit von dem Übertragungssignal CSIFBlO in das CSI-Register 201-26 zurückgeholt. Die Ubertragungssignale werden
hierbei auf den Binärwert "1" durch die Schaltkreise des Blockes 201-32 in Abhängigkeit von den Signalen CSHRSlO und
CSWRTOA gesetzt. Das Signal CSHRSlO hindert ebenfalls den Paritätsprüfschaltkreis 201-44 am Prüfen des Adresseninhalts
des CSI-Registers 201-26, indem es das Signal CSIIClO auf "0"
setzt. Wie im Falle der Leseoperation wird die Paritätsprüfung des CSI-Registers 201-26 solange gesperrt, bis ein anderer
LCSIK-Mikrobefehl abgerufen wird.
Systemoperation
Aus Vorstehendem geht hervor, wie der CSMR- und CSMW-Mikrobefehl das Lesen und das Einschreiben von Information aus und
in die Zwischenspeicher-Speicherplätze des Steuerspeichers ermöglicht. Die Anordnung gemäß der vorliegenden Erfindung
erleichtert das Schreiben und Lesen einer Anzahl von Zwischenspeicher-Speicherplätzen
in fortlaufender Folge. Ein Beispiel
709827/07B3
se
sei gegeben, wobei der Adapter 200 die Speicherung verschiedener
Informationsarten anfordert, wenn er mit der Bearbeitung eines von dem Zentralprozessor 100 erhaltenen Kanalbefehls beginnt.
In Abhängigkeit von einem Verbindungsimpuls löst der Adapter
eine Folge von Operationen aus, die dem Abruf eines Kanal-Briefkasten-Hinweisadressenwortes
(CMPW), eines Kanal-Briefkasten-Blockes (CMB) und eines Kanalbefehles (CC) vom Hauptspeicher
150 dienen. Das Wort CMPW wird von dem System für die Aufrechterhaltung
der Synchronisation während der Systemauslösung, der Ausführung und der Beendigung eines Kanalprogrammes benutzt.
Das Wort CMPW enthält eine Hinweisadresse, die die absolute
Adresse des ersten Wortes des Blockes CMB im Hauptspeicher 150 enthält. Das Wort CMPW wird ferner zur Auffindung des ersten
Wortes des Kanal-Programm-Blockes CPB benutzt, welcher N-Kanalbefehle
(CC) umfaßt, wobei jedes Wort durch seine Codierung eine in dem Adapter 200 auszuführende Operation festlegt.
Der Block CMB umfaßt 8 Worte und wird zur geeigneten Bearbeitung des Kanalprogrammes durch den Adapter 200 benutzt. Er umfaßt
eine Hinweisadresse zu einem Status-Sicherungsbereich (SSA), zu dem Wert eines Basisadressregisters (BAR) und zu anderen
Informationen. Der Status-Sicherungsbereich enthält die für den Adapter 200 erforderliche Information, um den Prozessor
S2P-3OO zu betreiben und während der Operation von dem Adapter
200 gelieferte Statusinformation zur Anzeige des Status des
S2P-Prozessors. Das Register BAR enthält eine absolute Adresse von 24 Bit, die von dem Adapter 200 benutzt wird, um alle
relativen Adressen in absolute Adressen umzuwandeln. Die andere Information umfaßt eine Hinweisadresse auf das erste Wort
in einem Kanalstatusblock und eine Seitentabellenhinweisadresse zum Verweis auf den Beginn einer Kanalseitentabelle.
709827/0753
SSi
Während der Operationsfolge verarbeitet der Adapter 200 eine
Reihe von CSMW-Mikrobefehlen, um die verschiedene Hinweisadresseninformation
in den Zwischenspeicher-Speicherplätzen des Steuerspeichers 201-10 zu speichern. Die Zwischenspeicherinformation
ist in der zuvor anhand eines Beispiels erläuterten Weise gespeichert. Ein LCSIK-Mikrobefehl wird vor der Reihe von
CSMW-Mikrobefehlen ausgeführt, wodurch das CSA-Register 201-12 mit der geeigneten Zwischenspeicher-Startadresse geladen wird.
Während eines jeden CSMW-Mikrobefehls wird das CSI-Register
201-26 nach einer jeden Schreiboperation automatisch um 1
erhöht. Solange die Zwischenspeicherinformation in aufeinanderfolgende
Speicherplätze geschrieben wird, ist kein weiterer LCSIK-Mikrobefehl erforderlich.
Es sei unterstellt, daß während der Bearbeitung des Kanalbefehles die Speicherung zusätzlicher Information, z. B. die
Speicherung von Adressen und Daten erforderlich sein kann. Diese Information würde wiederum durch die Ausführung weiterer
CSMW-Mikrobefehle zusammen mit LCSIK-Mikrobefehlen gespeichert.
Hierbei müssten die LCSIK-Mikrobefehle durch ihre
Codierung Adressen von Arbeitsspeicherplätzen des Zwischenspeichers festlegen.
Wenn der Adapter 200 die Bearbeitung des gespeicherten Kanalbefehles
beendigt, muß er den nächsten Befehl aus dem Block CPB im Hauptspeicher 150 abrufen. Dementsprechend führt er
einen CSMR-Mikrobefehl aus, durch den die CC-Hinweisadresse
aus dem zugeordneten Zwischenspeicher-Speicherplatz des Steuerspeichers
201-10 ausgelesen wird. Nach dem Abruf des nächsten Kanalbefehles (CC) führt der Adapter 200 sodann die angeforderten
Mikrobefehle LCSIK und CSMW aus, durch welche Signale entsprechend dem abgerufenen Kanalbefehl gespeichert werden.
709827/07 S3
Aus der vorstehenden Beschreibung geht hervor, wie durch die erfindungsgemäßen Maßnahmen ein einziger Steuerspeicher in die
Lage versetzt wird, einem doppelten Zweck zu dienen. Entweder durch Aufnahme zusätzlicher Mikrobefehle vom Ladetyp oder durch
Modifikation der durch solche Mikrobefehle spezifizierten Adressen kann die Größe des Zwischenspeicherbereiches erweitert oder vermindert
v/erden. Noch wichtiger ist, daß es nicht erforderlich ist, Veränderungen hinsichtlich der Steuerspeicherschaltkreise
vorzunehmen, wenn es gilt, den Zwischenspeicherbereich zu modifizieren. Das Versehen der Speicherplätze des Zwischenspeicherbereiches
mit einem Hinweis erfolgt hierbei in der zuvor beschriebenen Weise.
Es sei festgestellt, daß durch die vorliegende Erfindung der Umfang des Steuerabschnittes beträchtlich vermindert wird und
daß zusätzlich die Steuer- und Taktschaltkreise des Abschnittes vereinfacht werden. Durch eine Reduzierung der Anzahl von Schaltkreisen
wird auch deren Prüfung erleichtert und die Verfügbarkeit des Steuerabschnittes erhöht.
709827/0753
Claims (19)
- Patentansprüche(Ύ7) Mikroprogrammierte Verarbeitungseinheit in einem DV-System mit einem der Speicherung von Befehlen und Daten wenigstens eines Programmes dienenden Hauptspeicher, gekennzeichnet durcheinen zyklisch adressierbaren Steuerspeicher mit einer Vielzahl von Speicherplätzen zur Speicherung von Mikrobefehlsworten und wenigstens eines Mikroprogrammes, wobei jedes Mikrobefehlswort einen Befehlscodeteil aufweist, eine Gruppe aus der Vielzahl von Speicherplätzen der Speicherung von Worten zur Reservierung dieser Speicherplätze für den Gebrauch als Zwischenspeicher-Speicherplätze dient und wobei wenigstens eines dieser Mikrobefehlsworte von einem ersten Typ ist und einen Befehlscodeteil aufweist, der durch seine Codierung das Einschreiben von Daten in den Steuerspeicher festlegt, ein mit dem Steuerspeicher verbundenes Adressregister zum Speichern einer Adresse, die der Bezugnahme auf die Vielzahl der Speicherplätze dient, ein mit dem Steuerspeicher verbundenes Ausgangsregister zur Speicherung von wenigstens des Befehlscodeteiles eines jeden aus dem Speicherplatz ausgelesenen Mikrobefehlswortes undan das Ausgangsregister angeschlossene Decodierschaltkreise, welche auf Grund des Befehlscodeteiles mehrere Steuersignale für die Operationsdurchführung der mikroprogrammierten Verarbeitungseinheit erzeugen, wobei erste Schaltkreise innerhalb der Decodierschaltkreise, die auf ein Mikrobefehlswort ansprechen, Signale erzeugen, die dem Laden einer den Zwischenspeicher-Speicherplatz festlegenden Adresse in das Adressregister und der Bereitstellung des Steuerspeichers zum Einschreiben der Daten in den Zwischenspeicher dienen.709827/0753
- 2. Verarbeitungseinheit nach Anspruch 1, dadurch gekennzeichnet , daß die Decodierschaltkreise zweite auf eines der Mikrobefehlsworte ansprechende Schaltkreise aufweisen, um die übertragung des Befehlscodeteiles des aus dem Zwischenspeicher-Speicherplatzes ausgelesenen Wortes nach dem Ausgangsregister zu sperren, wodurch die Interpretation dieses Wortes als Daten anstelle eines Mikrobefehles gestattet wird.
- 3. Verarbeitungseinheit nach Anspruch 2, gekennzeichnet durchein an das Adressregister und den Steuerspeicher angeschlossenes Steueradressregister,wenigstens einen zweiten Mikrobefehlstyp innerhalb des Mikroprograrnmes, der an einem vorbestimmten Speicherplatz innerhalb der Vielzahl von Speicherplätzen gespeich'ert ist, wobei der zweite Mikrobefehlstyp einen durch seine Codierung eine Adressenübertragungsoperation festlegenden Befehlscodeteil und einen durch seine Codierung eine Adresse innerhalb der Gruppe von Speicherplätzen festlegenden Adressteil aufweist und eine._durch den Befehlscode des zweiten Mikrobefehlstypes bei dessen Einspeicherung in das Ausgangsregister bewirkte Steuerung der Decodierschaltkreise, um Signale zum Laden der Adresse in das Steueradressregister zu erzeugen, wobei die ersten Schaltkreise in Abhängigkeit vom Befehlscode die Signale zum Laden der Adresse in das Adressregister erzeugen.
- 4; Verarbeitungseinheit nach Anspruch 3, gekennzeichnet durcheinen an das Adressregister und das Steueradressregister angeschlossenen Inkrementierschaltkrexs zur Erhöhung der in dem Adressregister gespeicherten Adresse um 1 und709827/0753die Erzeugung von Signalen durch den Decodierschaltkreis in Abhängigkeit von dem einen Mikrobefehl zum Laden der erhöhten Adresse in das Steueradressregister gleichseitig mit dem Laden des Adressregisters mit dem Inhalt Steueradressregisters,- wodurch das Einschreiben von ^n in aufeinanderfolgende Speicherplätze des im Steuerspeit ier gebildeten Zwischensp0ichers ermöglicht wird.
- 5. Verarbeitungseinheit nach Anspruch 4f dadurch gekennzeichnet , daßdas eine Mikroprogramm eine Reihe von Mikrobefehlsworten des ersten Types mit jeweils einem Befehlscodeteil zur Festlegung einer Schreiboperation aufweist und die Decodierschaltkreise in Abhängigkeit von der Reihe der Mikrobefehlsworte des ersten Types Signale zum Einschreiben von Daten in aufeinanderfolgende Speicherplätze des im Steuerspeicher gebildeten Zwischenspeichers erzeugen,
- 6. Verarbeitungseinheit nach Anspruch 1, d"a d u r c h gekennzeichnet , daß jedes Wort in der Gruppe von Speicherplätzen einen Befehlscodeteil aufweist^ der durch seine Codierung eine Nicht-Operation f "legt.
- 7. Verarbeitungseinheit nach Anspruch 3, dadurch geke nn ζ ei c hn e t daß das Mikroprogramm mehrere Mikrobefehle des zweiten Types umfaßt, deren Adressteile jeweils durch ihre . Codierungen neue Adressen festlegen, wodurch die Größe des im Steuerspeicher gebildeten Zwischenspeichers modifiziert wird.
- 8. Verarbeitungseinheit nach Anspruch 1, dadurch gekennzeichnet , daß das Mikroprogramm eine zusätzliche Anzahl Mikrobefehle des zweiten Types zur Vergrößerung der Anzahl der Zwischenspeicher-Speicherplätze aufweist.709827/0753
- 9. Verarbeitungseinheit nach Anspruch 5, dadurch gekennzeichnet , daß die Decodierschaltkreise in Abhängigkeit einer jeden Reihe von Mikrobefehlen des ersten Types Signale erzeugen, die dem Einschreiben von aus dem Hauptspeicher erhaltenen Daten in aufeinanderfolgende Speicherplätze des Zwischenspeichers dienen.
- 10. Verfahren zur Organisation der mikroprogrammierten Verarbeitungseinheit nach Anspruch 1 oder einem der folgenden, gekennzeichnet durch folgende Schritte:a. Codierung einer Vielzahl von Speicherplätzen zum Gebrauch als Zv/ischenspeicherbereich,b. Speicherung einer ersten Anzahl von Mikrobefehlsworten des ersten Types an anderen Speicherplätzen, wobei die erste Anzahl von Mikrobefehlsworten durch ihre Codierung anzeigt, wann während der Ausführung des Mikroprogrammes in einen der Zwischenspeicher-Speicherplätze eingeschrieben oder aus diesen ausgelesen wird,c. Laden der Adresse eines der Zwischenspeicher-Speicherplätze in das Adressregister undd. Erzeugung von Steuersignalen durch die Decodierschaltkreise in Abhängigkeit irgendeines Mikrobefehlswortes aus der ersten Anzahl von Mikrobefehlsworten zum Einschreiben von Daten aus dem Datenabschnitt in den durch den Inhalt des Adressregisters festgelegten Zwischenspeicher-Speicherplatz oder zum Auslesen des Inhalts des Zwischenspeicher-Speicherplatzes in den Datenabschnitt.
- 11. Verfahren nach Anspruch 10, gekennzeichnet durch die Sperrung der Übertragung der ersten Anzahl von Mikrobefehlen des ersten Types zu dem Ausgangsregister, wodurch das Ausgangsregister zur Speicherung von Bits mit dem Wert "O" veranlaßt wird und die Decodierschaltkreise den Inhalt.des adressierten Speicherplatzes als Daten und nicht als Mikrobefehl deuten.709827/07 5 3*9
- 12. Verfahren nach Anspruch 10, gekennzaichnet durchSpeicherung einer zweiten Anzahl von Mikrobefehlsworten des zweiten Types in vorbestimmten Speicherplätzen des Steuer speicher s, wobei jedes der zv/eiten Mikrobefehlsworte durch seine Codierung eine Adresse eines der Zwischenspeicher-Speicherplätze festlegt/ Erzeugung von Signalen durch die Decodierschaltkreise in Abhängigkeit eines jeden Mikrobefehles innerhalb der zweiten Anzahl von Mikrobefehlen zum Laden der Adresse in das Steueradressregister und Erzeugung von Übertragungssignalen durch die Decodierschaltkreise in Abhängigkeit eines jeden Mikrobefehles innerhalb der ersten Anzahl von Mikrobefehlen, die der Reihe nach aus dem Steuerspeicher ausgelesen werden, um das Adressregister mit der im Steueradressregister gespeicherten Adresse zu laden.
- 13. Verfahren nach Anspruch 12, gekennzeichnet durchErhöhung der in dem Adressregister gespeicherten Adresse um 1 undErzeugung von Signalen durch die Decodierschaltkreise in Abhängigkeit von der ersten Anzahl von Mikrobefehlen, um die erhöhte Adresse in das Steueradressregister zu laden, wodurch das Einschreiben von Daten in aufeinanderfolgende Speicherplätze des Zwischenspeichers ermöglicht wird.
- 14. Verfahren nach Anspruch 13, gekennzeichnet durchCodierung einer jeden Gruppe der zweiten Anzahl von Mikrobefehlsworten des zweiten Types zur Festlegung einer Schreiboperation undSpeicherung dieser Gruppe von Mikrobefehlen der Reihe nach zur Freigabe der mikroprogrammierten Einheit zum Einschreiben von Daten in die aufeinanderfolgenden Speicherplätze des Zwischenspeicherbereiches.709827/0753
- 15. Verfahren nach Anspruch 10, dadurch gekennzeichnet , daß bei der Codierung einer Vielzahl von Speicherplätzen im Steuerspeicher anfänglich in jedem der Anzahl von Zwischenspeicher-Speicherplätzen ein Mikrobefehlswort gespeichert wird, das durch seinen Befehlscodeteil eine Nicht-Operation festlegt.
- 16. Verfahren nach Anspruch 12, dadurch gekennzeichnet , daß jeder Mikrobefehl innerhalb der zweiten Anzahl von Mikrobefehlen des zweiten Types einen Befehlscodeteil und einen Adressteil aufweist, wobei der Adressteil durch seine Codierung die Adresse eines Zwischenspeicher-Speicherplatzes festlegt und der Befehlscodeteil durch seine Codierung die Decodierschaltkreise in einen derartigen Zustand bringt, daß er die Signale zum Laden der Adresse in das Adressregister erzeugt.
- 17. Verfahren nach Anspruch 16, gekennzeichnet durch Modifikation der Adressteile verschiedener Mikrobefehle aus der zweiten Anzahl von Mikrobefehlen des zweiten Types, um die Größe des Zwischenspeicherbereiches zu verändern.
- 18. Verfahren nach Anspruch 16, gekennzeichnet durch die Speicherung zusätzlicher Mikrobefehle aus der Anzahl von Mikrobefehlen des zweiten Types zur Festlegung einer vergrößerten Anzahl von reservierten Speicherplätzen.
- 19. Verfahren nach Anspruch 14, gekennzeichnet durch die Erzeugung von Signalen durch die Decodierschaltkreise in Abhängigkeit der Mikrobefehlsworte des ersten Types, um den Datenabschnitt des Steuerspeichers zur Aufnahme von Daten aus dem Hauptspeicher vorzubereiten, wobei die Daten in die Zwischenspeicher-Speicherplätze eingeschrieben werden.709827/0753
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US05/644,777 US4084229A (en) | 1975-12-29 | 1975-12-29 | Control store system and method for storing selectively microinstructions and scratchpad information |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| DE2658950A1 true DE2658950A1 (de) | 1977-07-07 |
Family
ID=24586289
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE19762658950 Withdrawn DE2658950A1 (de) | 1975-12-29 | 1976-12-24 | Mikroprogrammierte verarbeitungseinheit sowie verfahren zur organisation derselben |
Country Status (7)
| Country | Link |
|---|---|
| US (1) | US4084229A (de) |
| JP (1) | JPS5282148A (de) |
| BE (1) | BE849913A (de) |
| CA (1) | CA1081854A (de) |
| DE (1) | DE2658950A1 (de) |
| FR (1) | FR2337372A1 (de) |
| GB (1) | GB1556874A (de) |
Families Citing this family (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4295205A (en) * | 1978-10-16 | 1981-10-13 | Kunstadt George H | Solid state mass memory system compatible with rotating disc memory equipment |
| US4224668A (en) * | 1979-01-03 | 1980-09-23 | Honeywell Information Systems Inc. | Control store address generation logic for a data processing system |
| DE3120713A1 (de) * | 1981-05-25 | 1982-12-09 | Siemens AG, 1000 Berlin und 8000 München | Schaltungsanordnung fuer ein prozessorsystem |
| US4490782A (en) * | 1981-06-05 | 1984-12-25 | International Business Machines Corporation | I/O Storage controller cache system with prefetch determined by requested record's position within data block |
| US4489378A (en) * | 1981-06-05 | 1984-12-18 | International Business Machines Corporation | Automatic adjustment of the quantity of prefetch data in a disk cache operation |
| US4553222A (en) * | 1983-03-14 | 1985-11-12 | Kurland Lawrence G | Integrated interactive restaurant communication system for food and entertainment processing |
| US4620274A (en) * | 1983-04-01 | 1986-10-28 | Honeywell Information Systems Inc. | Data available indicator for an exhausted operand string |
| US4910666A (en) * | 1986-12-18 | 1990-03-20 | Bull Hn Information Systems Inc. | Apparatus for loading and verifying a control store memory of a central subsystem |
| US4825356A (en) * | 1987-03-27 | 1989-04-25 | Tandem Computers Incorporated | Microcoded microprocessor with shared ram |
| US5081609A (en) * | 1989-01-10 | 1992-01-14 | Bull Hn Information Systems Inc. | Multiprocessor controller having time shared control store |
| US5553259A (en) * | 1993-07-16 | 1996-09-03 | Unisys Corporation | Apparatus and method for synchronizing the simultaneous loading of cache program word addresses in dual slice registers |
Family Cites Families (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3293610A (en) * | 1963-01-03 | 1966-12-20 | Bunker Ramo | Interrupt logic system for computers |
| US3380025A (en) * | 1964-12-04 | 1968-04-23 | Ibm | Microprogrammed addressing control system for a digital computer |
| US3391394A (en) * | 1965-10-22 | 1968-07-02 | Ibm | Microprogram control for a data processing system |
| US3434112A (en) * | 1966-08-01 | 1969-03-18 | Rca Corp | Computer system employing elementary operation memory |
| US3560933A (en) * | 1968-01-02 | 1971-02-02 | Honeywell Inc | Microprogram control apparatus |
| US3646522A (en) * | 1969-08-15 | 1972-02-29 | Interdata Inc | General purpose optimized microprogrammed miniprocessor |
| IT951233B (it) * | 1972-04-07 | 1973-06-30 | Honeywell Inf Systems | Sistema di comando di un calcola tore mediante microprogrammazione ed estensione dinamica delle fun zioni di controllo ottenuta da reti logiche |
| US3828320A (en) * | 1972-12-29 | 1974-08-06 | Burroughs Corp | Shared memory addressor |
| JPS5214900B2 (de) * | 1973-02-28 | 1977-04-25 | ||
| US3859636A (en) * | 1973-03-22 | 1975-01-07 | Bell Telephone Labor Inc | Microprogram controlled data processor for executing microprogram instructions from microprogram memory or main memory |
| US3900835A (en) * | 1973-09-24 | 1975-08-19 | Digital Equipment Corp | Branching circuit for microprogram controlled central processor unit |
| FR2253435A5 (de) * | 1973-11-30 | 1975-06-27 | Honeywell Bull Soc Ind | |
| US3914747A (en) * | 1974-02-26 | 1975-10-21 | Periphonics Corp | Memory having non-fixed relationships between addresses and storage locations |
| US3911406A (en) * | 1974-04-01 | 1975-10-07 | Honeywell Inf Systems | Correction apparatus for use with a read only memory system |
-
1975
- 1975-12-29 US US05/644,777 patent/US4084229A/en not_active Expired - Lifetime
-
1976
- 1976-11-24 CA CA266,458A patent/CA1081854A/en not_active Expired
- 1976-12-22 JP JP15483576A patent/JPS5282148A/ja active Pending
- 1976-12-22 GB GB53480/76A patent/GB1556874A/en not_active Expired
- 1976-12-24 DE DE19762658950 patent/DE2658950A1/de not_active Withdrawn
- 1976-12-28 FR FR7639341A patent/FR2337372A1/fr active Granted
- 1976-12-28 BE BE173685A patent/BE849913A/xx unknown
Also Published As
| Publication number | Publication date |
|---|---|
| CA1081854A (en) | 1980-07-15 |
| BE849913A (fr) | 1977-04-15 |
| FR2337372B1 (de) | 1983-04-01 |
| JPS5282148A (en) | 1977-07-09 |
| GB1556874A (en) | 1979-11-28 |
| FR2337372A1 (fr) | 1977-07-29 |
| US4084229A (en) | 1978-04-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE3751503T2 (de) | Datenprozessor in Pipelinestruktur mit der Fähigkeit mehrere Befehle parallel zu dekodieren und auszuführen. | |
| DE3607889C2 (de) | ||
| DE68921775T2 (de) | Prozessorssimulation. | |
| DE69129565T2 (de) | Hochleistungsfähiger Emulator mit Pipelining | |
| DE68921906T2 (de) | Verfahren für ein Multiprozessorsystem mit sich selbst zuordnenden Prozessoren. | |
| DE2847934A1 (de) | Datenverarbeitungseinrichtung mit einem mikrobefehlsspeicher | |
| DE2714805C2 (de) | ||
| DE2417795C2 (de) | Datenverarbeitungsanlage | |
| EP0097725B1 (de) | Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen | |
| DE2517276A1 (de) | Datenverarbeitungssystem | |
| DE2658864A1 (de) | Pruefsystem fuer eine mikroprogrammierte verarbeitungseinheit | |
| DE3689389T2 (de) | Datenverarbeitungsprozessor. | |
| DE2657848A1 (de) | Steuereinheit fuer ein datenverarbeitungssystem | |
| DE2756762A1 (de) | Verfahren und anordnung zum zugriff zu beliebigen bitfeldern im hauptspeicher einer datenverarbeitungsanlage | |
| DE1275800B (de) | Steuerwerk fuer datenverarbeitende Maschinen | |
| DE2758830A1 (de) | Rechenvorrichtung | |
| DE2721623C2 (de) | ||
| EP0010185A1 (de) | Virtuell-Adressiervorrichtung für einen Computer | |
| DE3855524T2 (de) | Arithmetik-Parallelverarbeitungseinheit und zugehöriger Kompilator | |
| DE2401364A1 (de) | Datenverarbeitungssystem | |
| DE2658950A1 (de) | Mikroprogrammierte verarbeitungseinheit sowie verfahren zur organisation derselben | |
| DE69219662T2 (de) | Verfahren zur On-Line-Modifizierung von komprimierten digitalen Prüfvektoren | |
| DE2830334C2 (de) | ||
| DE2245284A1 (de) | Datenverarbeitungsanlage | |
| DE2725614C2 (de) |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 8110 | Request for examination paragraph 44 | ||
| 8125 | Change of the main classification |
Ipc: G06F 9/22 |
|
| 8130 | Withdrawal |