DE2543522A1 - Einrichtung in einem mikroprogramm- prozessor mit mehreren ebenen von unterbefehlsgruppen zur bedienung von peripherie-geraeten auf vorrang-basis - Google Patents
Einrichtung in einem mikroprogramm- prozessor mit mehreren ebenen von unterbefehlsgruppen zur bedienung von peripherie-geraeten auf vorrang-basisInfo
- Publication number
- DE2543522A1 DE2543522A1 DE19752543522 DE2543522A DE2543522A1 DE 2543522 A1 DE2543522 A1 DE 2543522A1 DE 19752543522 DE19752543522 DE 19752543522 DE 2543522 A DE2543522 A DE 2543522A DE 2543522 A1 DE2543522 A1 DE 2543522A1
- Authority
- DE
- Germany
- Prior art keywords
- memory
- microinstruction
- control
- processor
- data
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
- G06F13/26—Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control
Description
BURROUGHS CORPORATION, eine Gesellschaft nach den Gesetzen des Staates Michigan, Detroit, Burroughs Place,
Michigan 48232, V.St.A.
Einrichtung in einem Mikroprogramm-Prozessor mit mehreren Ebenen von Unterbefehlsgruppen zur Bedienung von Peripherie-Geräten
auf Vorrang-Basis
Die Erfindung beschäftigt sich mit einer kleinen Datenverarbeitungseinheit
für Buchhaltungs- und Kommunikations-Anwendungen, und zwar insbesondere mit einer kleinen Mikroprogramm-Prozessor-Einheit,
die von Peripherie-Geräten geforderte Unterbrechungen mikrobefehlsgesteuert bedient.
Viele Unternehmen haben nicht immer genügend der Datenverarbeitung
zugängliche Aufgaben, so daß die Verwendung einer vollen Allzweck-Datenverarbeitungsanlage oft nicht gerechtfertigt
ist. Häufig können die Bedürfnisse derartiger Unternehmen durch elektronische Buchungs- und Kassenmaschinen
erfüllt werden, die als kleine Spezial-Rechner angesehen werden können. Andererseits sind die bekannten kleinen
Speziairechner in ihrer Leistungsfähigkeit zu begrenzt, als daß sie Programme annehmen könnten, die in den sogenannten
höheren Programmiersprachen geschrieben sind.
HZ/gs
609828/0495
2543122
Ein alternatives Verfahren zur Befriedigung der Datenverarb e itungsaufgaben kleiner oder mittlerer Unternehmen
besteht darin, örtliche, entfernte Terminals zu verwenden, die an eine entfernte Groß-Datenverarbeitungsanlage auf
Zeitmultiplexbasis angeschlossen sind. In vielen Fällen sind die Datenverarbeitungs-Bedürfnisse einer Firma eine
Mischung aus Buchungs- und Rechnungsstellungsaufgaben sowie außerdem aus anderen Prozessen, die eine größere Rechenkapazität
erfordern. In Anpassung an diese Situation gibt es Terminal-Prozessoren, die nicht nur an einen größeren
Komputer zeitweise angeschlossen sind, sondern die außerdem gewisse spezielle Verarbe'itungsroutinen ausführen können.
Bei Terminalprozessoren wie auch bei kleinen Buchhaltungs-Prozessoren wird besonders auf die Kosten des Systems geachtet,
damit das System für eine große Zahl kleinerer Unternehmen zugänglich wird. Bislang hat dieser Gesichtspunkt
es dem potentiellen Benutzer schwergemacht, auf volle Allzweck-Datenverarbeitungssysteme überzugehen, weil
ein Wechsel des Systems eine Umsetzung der bisherigen Benutzerprogramme in die flexibleren Sprachen erforderte,
an die das größere System angepaßt ist.
Bislang fehlte bis zu einem gewissen Grade die Programm-Kompatibilität
zwischen Systemen vom gleichen Hersteller, fehlte jedoch umsomehr natürlich zwischen Systemen verschiedenen
Ursprungs, weil die Entwicklung der einzelnen Hersteller mit verschiedenen Befehlsformaten arbeitet,
die sich in ihrer Länge unterscheiden. Darüber hinaus werden verschiedene Feldgrößen innerhalb des Befehlsformats benutzt.
Um die Unterschiede in den "Maschinensprachen·1 zu überwinden,
wurden eine große Zahl höherer Programmiersprachen entwickelt, von denen die bekanntesten FORTRAN, COBOL
und ALGOL sind. Die in solchen Programmiersprachen beschriebenen Programme konnten in verschiedenen Rechnersystemen
kodiert und verwendet werden; zuerst jedoch mußten diese Programme in die Maschinensprache des jeweiligen Systems
609828/049S
übersetzt werden, wobei diese übersetzung durch ein Systemprogramm
ausgeführt wurde, das gewöhnlich Compiler genannt wird. Wenn ein derartiger Compiler für eine spezielle Prosprache
nicht vorgesehen war, dann mußte der Benutzer des Rechners sein Programm in einer Sprache neu schreiben, für
die das System einen Compiler besaß.
Die Mikroprogrammierung hat sich nun als besonders leicht an Programme anpaßbar erwiesen, die in höheren Programmiersprachen
beschrieben sind. Zunächst wurde das Mikroprogrammieren als ein Werkzeug des Entwicklungsingenieurs angesehen,
vermöge dessen der verdrahtete Maschinenbefehls-Dekodierer durch einen Tabellenspeicher ersetzt werden konnte, der
verschiedene Gruppen von Steuersignalen enthielt, die zur Konditionierung der verschiedenen Gatter und Register
für die vom Maschinensprachbefehl vorgeschriebene Datenübertragung enthielt. Auf diese Weise wurde der Maschinensprachenbefehl
durch schrittweises Durchlaufen durch mehrere Stellen in dem Tabellenspeicher ausgeführt. In komplizierteren
Prozessoren ist die Anzahl von Gattern und Registern jedoch beträchtlich, so daß die Anzahl der benötigten Steuersignale,
die gespeichert werden mußten, entsprechend zunahm, was wiederum zu einer Vergrößerung und damit Verteuerung des
Tabellenspeichers führte. Um die Größe dieses Tabellenspeichers zu reduzieren, wurden die jeweiligen Steuersignalgruppen
in einen Binärkode kodiert, so daß sich das gewöhnlich als Mikro-Operator oder Mikro-Befehl bezeichnete Gebilde
ergab, das dann durch einen verdrahteten Dekodierer dekodiert wurde, was natürlich weniger aufwendig ist als ein verdrahteter
Dekodierer für einen Maschinensprachenbefehl.
Die verbreitete Verwendung der groß-integrierten Schaltungen
( LSI-Technik) machte es praktisch möglich, den. Mikrobefehls-■
speicher als einen Lese-Schreibspeicher auszulegen. Dies ' wiederum ermöglichte, daß verschiedene Gruppen von Mikro-'
befehlen, die in diesem Speicher gespeichert sind, dynamisch ' geändert werden können, so daß der Prozessor von Beschrän-
'*£ 8U9828/Ö495 ;
CP
• ■ ν
kungen in seiner Funktionstüchtigkeit und Leistungsfähigkeit befreit werden konnte. Mit einer derartigen variablen
Mikroprogrammierung ist der Prozessor nicht auf eine spezielle Maschinensprache oder ein spezielles Befehlsformat
beschränkt. Da kein spezielles Befehlsformat bevorzugt wird, kann das Format jetzt in Entsprechung mit den Programmanforderungen
gewählt werden. Dies seinerseits ergibt einen kleinen Datenprozessor, der dynamisch an ein vollständiges
Spektrum von Applicationen anwendbar ist, die von wissenschaftlichen bis zu buchhaltungstechnischen Aufgaben
einschließlich Kontierung und Rechnungsstellung reicht. Eine der wenigen verbliebenen Beschränkungen des
Systems ist jedoch die Anzahl von Ein/Ausgabe-oder Peripherie-Kanälen,
mit denen das System ausgestattet werden kann.
Es ist daher ein Anliegen der Erfindung, einen preiswerten Datenprozessor zu schaffen, der gleichwohl mit mehreren
Peripheriekanälen zusammenarbeiten kann. Weiter soll die Erfindung einen mikroprogrammierten Datenprozessor schaffen,
der eine relativ einfache und wenig aufwendige Bedienung peripher verlangter Unterbrechungen auf Vorrang oder Prioritätsbasis
ermöglicht. Schließlich soll die Erfindung einen mikroprogrammierten Datenprozessor schaffen, der mehrere
Kanäle hat, und dessen Unterbrechungs-Vorrangsystem leicht und flexibel verändert werden kann.
Dazu schafft die Erfindung ein System, das einen durch Mikro*·
befehle betriebenen mikroprogrammierten Prozessor enthält, wobei die Mikrobefehle aus unterschiedlichen Anzahlen von
Silben bestehen, je nach Funktion und erforderlichen Literalwerten. Der Prozessor arbeitet mit zwei Ebenen von' Unterbefehlsgruppen,
wodurch Macro- oder Hauptbefehle durch Ketten von Mikrobefehlen dargestellt sind, von denen alle
ihrerseits in Form von Steuerbefehlen verwirklicht sind.
Jede Ebene von Befehlsgruppen kann in eigenen Abschnitten des Speichers gespeichert werden, oder auch in getrennten
6Ό9828/0496
Speichern gespeichert werden, wobei die Steuerbefehle in einem innerhalb des Prozessors untergebrachten Lesespeicher
gespeichert sind.
Ein Merkmal der Erfindung besteht also in einem programmierbaren Prozessor, der mit zwei Ebenen von Unterbefehlsgruppen
arbeitet, wobei Macro- oder Hauptbefehle durch Ketten von Mikrobefehlen verwirklicht sind, und alle ihrerseits durch
Steuerbefehle gebildet sind. Die VorrangbeStimmung unter
auftretenden, peripher herangetragenen Unterbrechungsanforderungen
wird durch einen Mikrobefehl ermöglicht, der sequentiell verschiedene Gruppen von Signalen erzeugen läßt,
die zu Vergleichszwecken mit sämtlichen ankommenden Anforderungsleitungen dienen. Jede Signalgruppe enthält nur ein
positives Signal. Die Ordnung eines Signals in jeder Signalgruppe repräsentiert die Priorität oder den Vorrang der
entsprechenden Anforderungsleitung. Der Mikrobefehl, der die Unterbrechungsanforderung bedient, setzt Aufrufe für
die Sequenz der Gruppen fort, bis ein gewünschtes Vergleichsergebnis erreicht ist, zu welchem Zeitpunkt dann die Sequenz
angehalten und die entsprechende Anforderungsleitung bedient wird.
Die genannten Merkmale und Vorteile sowie Ziele der Erfindung"
werden aus der nachfolgenden Beschreibung noch deutlicher
hervortreten, wobei auf die beigefügten Zeichnungen Bezug genommen wird. Im einzelnen zeigen:
Fig. 1 ein schematisches Diagramm des mit den Merkmalen
der Erfindung ausgerüsteten Systems;
Pig. 2 ein schematisches Diagramm des Prozessors gemäß der Erfindung;
Fig. 3 das Format eines S-Befehls gemäß der -Erfindung;"
Fig. 4 das Format eines Datendescriptors, der im Rahmen
der Erfindung verwendet wird;
609828/0495
Fig. 5a,5b und 5c Formate verschiedener Mikrobefehlsarten;
Fig. 6 das Format eines Steueroperators oder eines Steuerbefehls;
Fig. 7 ein schematisches Diagramm des Datenauswahlnetzwerkes
für die verschiedenen Datenregister gemäß der Erfindung;
Fig. 8 ein Zustandsdiagramm zur Erläuterung der Beziehung zwischen den verschiedenen Maschinenzuständen
gemäß der Erfindung;
Fig. 9 einige Kurvenzüge zur Erläuterung des zeitlichen Ablaufs der Hol- und Ausführungszyklen für einen
Mikrobefehl durch eine Anzahl von Maschinenzuständen;
Fig. 10 ein Zeitdiagramm zur Erläuterung der Parallelität oder der Überlappung beim Holen von Mikrobefehlen;
Fig. 11 ein Zeitdiagramm einer Hol-Operation für einen
Mikrobefehl ohne Parallelität zum Vergleich mit Fig. 10; und
Fig. 12 die Darstellung einer Vergleichsschaltung, die
im Rahmen der Erfindung verwendet werden kann.
Wie oben erwähnt, schafft die Erfindung ein wenig aufwendiges Syst em, um die Anforderungen sowohl der Kontoführung wie
auch der Rechnungslegung zu erfüllen und gleichzeitig ein kleines Allzweck-Datenverarbeitungssystem zu schaffen.
Im einzelnen jedoch ist das erfindungsgemäße System so ausgelegt, daß es den in höheren Programmiersprachen,wie beispielsweise
COBOL,geschriebenen Programmen angepaßt werden kann.
Dazu ist das erfindungsgemäße System ein Mikroprogrammsystem, in welchem in einer höheren Programmsprache abgefaßte Befehle
durch Ketten von Mikrobefehlen interpretiert werden. Um die Kosten für den Mikrobefehlsdekodierer zu reduzieren, und
außerdem eine größere Flexibilität für die Ausführung der Mikrobefehle zu ermöglichen, sind die jeweiligen Mikrobefehle
ihrerseits durch Steuerbefehle verwirklicht, die aus Signalgruppen bestehen, welche zur Konditionierung der verschiedenen
Gatter und Register zur Datenübertragung benötigt werden. Um weiter die Kosten des Systems zu senken, kann das
609828/0496
System an Mikrobefehle verschiedener Anzahlen von Mikrobefehls-Grundsilben
angepaßt werden, wobei die Silben sequentiell übertragen werden und dadurch die Notwendigkeit
für breite Datenpfade in dem Prozessor und der Prozessor-Speicher-Schnittstelle entfällt.
Das erfindungsgemäße System ist ein durch Mikrobefehle gesteuertes, die ihrerseits durch Steuerbefehle dargestellt
sind. D.h. sämtliche Datenbewegungen werden unter Steuerung der Steuerbefehle ausgeführt, die durch Mikrobefehle aufgerufen
worden sind.
Da die Mikrobefehle von variabler Länge aus Silben zusammengesetzt
werden sollen, die einen Operationscode und verschiedene Literalwerte enthalten, kann das erfindungsgemäße
System die jeweiligen Silben speichern, wobei die gewünschten Mikrobefehle durch Holen der geeigneten Silben
in Sequenz aus dem Mikroprogrammspeicher gebildet werden. Diese Technik erreicht eine Code-Konzentrierung in dem
Mikrospeicher und eliminiert die Redundanz.
Der Mikroprogrammierer kann die jeweiligen Mikrooperations-Code-Silben
so wählen, wie das zur Bezeichnung der Quellen- und Bestimmungsregister sowie der auszuführenden Funktionen
notwendig ist.
Das Holen eines Mikrobefehls überlappt sich mit der Ausführung
eines Mikrobefehls. Diese Parallelität reduziert die zur Ausführung
der verschiedenen Mikrobefehlsketten erforderliche Zeit. Weiter dient das überlappen von Holen aus Ausführen
eines Mikrobefehls zum Aufschließen der Ordnungen des Befehlsflußstroms,
wie das ein Mikrobefehl, der die übertragung einer Anzahl von Datensegmenten (bis zu 256 Bytes) im Prozessor
und zum sowie vom Speicher oder der Ein/Ausgabe-Peripherie angibt. Die durch einen Mikrobefehl vorgeschriebene
Datenströmung verkleinert die Anzahl der Mikrobefehle, die für
609828/0495
ein gegebenes Datenfeld auszuführen sind.
Ein System, in welchem die Erfindung verwirklicht ist, erläutert Fig. 1 und kann ein kleines, jedoch programmierbares
Allzweck-Datenverarbeitungssystem sein. Gemäß Fig.1 umfaßt das System einen Prozessor 10, der mit einem Speicher
11 und einem Kontrolldrucker 12 wie auch einem Schwarm von
Peripherie-Geräten wie etwa einem Leitungsdrucker 13, einer
Platte 14, einem Kartenleser und -Locher 15, sowie selbst Daten-Übertragungs-Steuergeräte 16, über eine für jede Peripherie-Einheit
gemeinsame Schnittstelle zusammen arbeiten kann.
Der erfindungsgemäße Prozessor ist in Fig. 2 dargestellt
und wird jetzt kurz beschrieben. Wie gezeigt, besteht der Prozessor aus einer Funktionseinheit 20, der Daten über einen
A-Bus 21 und einen B-Bus 22 zugeführt und von der Daten über einen F-Bus 23 entnommen werden. Die jeweiligen Buse
sind 8 Bits breit, die die Grundbreite sämtlicher Silben- und Datensegmente ist, die in dem System verwandt wird.
Der A-Bus 21 und der B-Bus 22 empfangen Informationssegmente
aus den jeweiligen Registern sowie vom Speicher über ein ü-Pufferregister 24, das auch zur Lieferung einer 8Bit-Adresse
an den Steuerspeicher 37 dient. Der F-Bus 23 ist an die Ein/Ausgabe-Schnittstelle 23a, das Ein/Ausgabe-Register
41 wie auch zu weiteren Registern angeschlossen, die im einzelnen weiter unten erläutert werden.
Wie oben angegeben, werden die Maschinenbefehle oder S-Befehle,
die in einer höheren Programmiersprache geschrieben sein können, durch Ketten von Mikrobefehlen verwirklicht,
die im Hauptspeicher 11 (Fig.1) gespeichert sind. Die S-Befehle
und andere Daten sind ebenfalls im Speicher.11 gespeichert.
Dazu können die jeweiligen Befehle und Daten in unterschiedlichen Abschnitten eines einzigen Lese-Schreibspeichers
gespeichert werden. In der bevorzugten Ausführungsform der Erfindung jedoch ist der Speicher 11
609828/0495
gemäß Fig. 1 in einzelne Abschnitte in nicht dargestellter Weise unterteilt, wobei ein Lese-Schreibabschnitt für die
S-Befehle, einige Mikrobefehle und Daten und ein Leseabschnitt für das bleibende Speichern von Mikrobefehlen
vorgesehen ist, so daß sich eine Art "Schnürsenkel"-Effekt ("bootstrap"facility).
Wie weiter bereits erwähnt wurde, werden die Mikrobefehle durch Steuerbefehle dargestellt, die im Steuerspeicher 37
gespeichert sind, der bezüglich des Prozessors intern ist, wie man aus Fig. 2 erkennt. Der Steuerspeicher 37 kann
ein Lese-Schreibspeicher in IC-Technik sein. In der erfindungsgemäßen
Ausführungsform ist der Steuerspeicher 37 jedoch ein Lesespeicher.
Das Format eines typischen STBefehls zeigt Fig. 3. Es kann aus einem Operatorfeld aus 8 Bits, einem Operandenfeld
aus 8 Bits und einem Indexfeld aus 8 Bits bestehen. Der Inhalt dieses Operandenfeldes kann zum Adressieren eines
Descriptors dienen, der seinerseits mit einem ähnlich gewonnen Index zur Schaffung einer Adresse für Daten in dem
Speicher kombiniert werden kann. Das Format eines derartigen Descriptors zeigt Fig. 4 und kann ein 16-Bit-Feld enthalten,
das ein Segment und eine Verschiebung angibt, um die Stellung des ersten Datensegments in dem adressierten Datenblock zu
definierten. Es kann weiter ein 1-Bit-Feld umfassen, um anzugeben,
ob die Daten beispielsweise in ASCII oder in EBCDIC-Code geschrieben sind; das Format kann weiter ein 1-Bit-Feld
umfassen, um das Vorzeichen der numerischen Daten aus 4 Bits zu bezeichnen und kann schließlich ein 11-Bit-Feld
enthalten, um die Länge des angesteuerten Datenblock anzugeben .
Wie erwähnt, werden die S-Befehle durch Ketten von Mikrobefehlen dargestellt. Gemäß der Erfindung können drei Arten
von Mikrobefehlen vorgesehen sein, deren Formate in den Fig. 5a,5b und 5c dargestellt sind. Fig. 5a zeigt einen
609828/0495
Mikrobefehl des Typs I, der aus einem einzelnen Zeichen besteht, welches auf einer eins-zu-eins-Basis in Steueroperatoren
aufzeichnet. Im wesentlichen ist dieses einzige Zeichen eine Adresse für den Steuerspeicher des Prozessors,
mit der ein zugehöriger Steuerbefehl bestimmt werden kann, der die dem Prozessorspeicher, der Prozessor-Ein/Ausgabe
und der übertragung zwischen den Prozessoren zugeordnete Funktionen beschreibt. Ein typischer Mikrobefehl dieser
Art kann sein COPY MAR 1 —*■ MAR 2.
Fig. 5b zeigt einen Mikrobefehl vom Typ II, der ein Mehrzeichen-Mikrobefehl ist und einen Literalwert "in-line"
im MikroSpeicher 11 hat, wobei der Literalwert dem aus 8
Bits bestehenden Operatorfeld oder ersten Zeichen folgt. Das Operatorfeld dieser Mikrobefehlsart trägt direkt in
einen Steueroperator ein, um eine Ausf ührungs ζ ählung für
den Datenpfad, Funktionen u.dgl. zu bestimmen, wobei die Länge des in-line-Literals durch die Ausführungsζählung
beschrieben ist.
Fig. 5c zeigt den Mikrobefehl vom Typ III, der ein Dreizeichen-Mikrobefehl
ist und zur Ausführung von Sprüngen und Unterroutinen-Sprüngen verwendet wird.Die ersten 8 Bits
beschreiben den Steueroperator, der mit dem Mikrobefehl verbunden ist und die folgenden zwei in-line-Zeichen stellen
die Adressen-Parameter dar.
Das erste Zeichen oder Operatorfeld der verschiedenen Mikrobefehle ist eine Adresse für den Steuerspeicher
und gibt die Stelle einer entsprechenden Steuerinstruktion an. Das Format eines derartigen Steuerbefehls zeigt Fig.6.
Man sieht, daß der Steuerbefehl eine Anzahl von Feldern enthält. Das A -Dekodierfeld ist ein 5-Bit-Feld und beschreibt
die Datenpfadeingänge zum A-Bus (21 in Fig.2).
Das B-Dekodierfeld ist ein 5-Bit-Feld und beschreibt die Datenpfadeingänge zum B-Bus (22 in Fig.2). Das F-Dekodier-
609828/0495
ist ein 5-Bit-Feldr das den Datenpfad-Ausgang aus dem
F-Bus.(23 aus Fig. 2) beschreibt. Das rciitinbegriffene
Speicheradressenfeld des Formats gemäß Fig. 6 ist ein Zweibitfeld und bestimmt ein Adressenregister zum Adressieren
des Speichers, das das MAR 1 Register 25 für das Incrementieren
oder Decrementieren, oder auch das MAR 2 Register 26 ebenfalls zum Incrementieren oder Decrementieren
sein kann (sämtliche Register und Buse sind in Fig.2 dargestellt). Das TMS Ladefeld in Fig. 6 ist ein 4-Bit-FeId
zur Ausführung einer automatischen Ausführungs-Zählungs-Zeitwahl
für Standard-Mikrobefehle. Das bedingte Abschlußfeld ist ein 1-Bit-Feld zur Auswahl bedingter
Beendigungen (exits) der Mikrobefehlsausführung. Das Funktionsfeld
ist ein 5-Bit-Feld, das arithmetische oder logische Operationen in der Funktionseinheit 20 der Fig. 2 auswählt.
Das Literal-Feld ist ein 8-Bit-Feld und gestattet, daß
Literalwerte aus den Steuerbefehlen herausgeholt werden können.
Der Mikrobefehl vom Typ I (ein Zeichenbefehl) kann einen von 256 Steueroperatoren bezeichnen. Die Mikrobefehle vom
Typ II und III ermöglichen das Bereitstellen von Ausdehnungsparametern
durch in-line-Literale in diesen Mikrobefehlen.
Die Existenz zweier Maschinen-Zustands-Zeitsteuerungen gestattet die Verwendung des TMS-HiIfsregisters {40 in Fig.2),
um eine Mikrobefehlsgruppe durch zugehörige Zählungszeiten zu erweitern, die von einem vorhergehenden Mikrobefehl mit
vorhandenen Steueroperatoren geladen wurden.
Wie bereits erwähnt, wird das erfindungsgemäße System
durch Mikrobefehle gesteuert, die ihrerseits durch .Steuerbefehle
gebildet sind. D.h. sämtliche Datenbewegungen werden unter Steuerung der Steuerbefehle ausgeführt, die
durch Mikrobefehle aufgerufen worden sind. Da die Mikrobefehle aus einer unterschiedlichen Anzahl von Silben zu-
609828/0495
sammengesetzt sind, die in Sequenz geholt werden müssen,
schwankt die zum Holen der aus verschiedenen Silben bestehenden Mikrobefehle erforderliche Zeit gemäß Angabe
in dem Zählerfeld des Steuerbefehls. Die Maschinenzustands-Steuerung 39 in Fig.2 kann einen von acht verschiedenen
Maschinenzuständen bezeichnen, die zwei Verzögerungszustände umfassen, welche in Verbindung mit den Zählerfeldern der
Steuerbefehle zum Holen der Mikrooperatoren und verschiedenen Silben verwendet werden. Dazu ist die Maschinenzustandssteuereinheit
39 mit einem nicht dargestellten 4-Bit-Zähler ausgerüstet, der die Mikrobefehlsausführzeit bezeichnet.
Dier Zähler wird vom Zählerfeld der Steuerbefehle geladen.
Zur Anpassung der erweiterten Datenübertragungen zwischen Peripheriegeräten und dem Speicher ist ein Hilfs-Maschinen-Zustandszähler
40 vorgesehen, der ein 8-Bit-Zähler zur Angabe von bis zu 256 derartigen Datenübertragungen ist. Bis zu
256 Datensegmente können also auf diese Weise zur Steuerung eines einzigen Mikrobefehls übertragen werden. Dieses Merkmal
kann beispielsweise bei der Vergleichsoperation verwendet werden, bei der eine Kette von Datensegmenten nach
einem speziellen Wert durchzusuchen ist und der Prozessor bedingungsabhängig die Ausführung des Mikrobefehls anhalten
kann, für den Fall, daß der gesuchte Wert gefunden ist. Dieses spezielle Merkmal wird bei der Erfindung besonders
vorteilhaft ausgenützt, in-dem die Folge von Signalgruppen aufgerufen wird, die die Priorität repräsentieren, in welcher
periphere ünterbrechungsanforderungen bedient werden sollen.
Zur Reduzierung der Ausführungszeit für eine Anzahl von
Mikrobefehlen, überlappt sich die Holoperation für einen
Mikrobefehl mit der Mikrobefehlsausführung. Ein Stapel (36a-d in Fig.2), der nach dem Keller-Prinzip arbeitet,
bei welchem die zuerst eingegebene Information zuletzt wiederherausgeholt wird, dient zur Aufbewahrung einer
609828/0495
Reihe von Mikrospeicher-Adressen, um das Iroxen λγοιχ Sprungoder
Unterroutinen-Mikrobefehlen zu beschleunigen.
Wie erwähnt, soll das erfindungsgemäße System eine flexible
Wahl der Sprachenstrukturen sowie der Ein/Ausgabe-Mechanismen erlauben und gleichwohl hinreichend frei von verdrahteten
Schaltungen sein, so daß die Kosten für kleine Spezial- und Allzweckrechner eingehalten werden.
Wie vorstehend allgemein beschrieben, zeigt Fig. 2 ein Diagramm des erfindungsgemäßen Prozessors. Wie dargestellt,
sind die Speicheradressregister 25 und 26 (MAR 1 und MAR 2) untereinander identische 16-Bit-Register, die in einem
von zwei möglichen Betriebszuständen arbeiten: Übertragung und Zählen. Im Übertragungsbetrieb ist jedes
Register als zwei 8-Bit-Byte-Register (25a,25b und 26a, 26b) angeordnet, die über den F Bus 23 von der Funktionseinheit 20 geladen werden können. Jedes Paar Byte-Register
kann in ein 2-Byte-Register aneinandergehängt werden, das von dem F-Bus 23 geladen wird. Im Übertragungsbetrieb und
ohne gültige Adresse kann ein Speicher-Adress-Register als Allzweck-Register verwendet werden. Im Zählbetrieb
dient jedes Speicher-Adress-Register zum Adressieren des Speichers. Der Speicher-Adress-Bus 44 ist ein 16-Bit-Bus,
der für diesen Zweck vorhanden ist. Dadurch können 64 K-Bytes des Speichers adressiert werden. Im Zählbetrieb
kann das Speicheradressenregister (25 und 26) auf Befehl incrementiert oder decrementiert werden. Die Increment-Einrichtung
(25c und 26c) dient zum Adressieren sequentieller Zeichen-Speicher und die Decrementier-Einrichtung dient
hauptsächlich zum Adressieren einer arithmetischen Information zum richtigen Anbieten für den Prozessor.-
BO-Register 27 ist ein Ein-Zeichen-Allzweck-Register, bestehend
aus zwei Abschnitten OU und OL, um sowohl im Byte--Betrieb
wie im Ziffernbetrieb arbeiten zu können. Im Ziffern-
609828/0495
betrieb kann jede Ziffer mit einer anderen Ziffer entsprechend einer beliebigen Funktion verknüpft werden,
die durch die Funktionseinheit 20 ausgeführt werden soll. Im. Byte-Betrieb können die beiden Ziffern in dem BO-Register
27 von der Funktionseinheit 20 geladen oder ungeladen sein.
Das B1-Register 28 ist ein Ein-Zeichen-Register mit einer
Einrichtung zur Bit-Markierung unter Steuerung eines Literalwertes aus dem Steuerspeicher 38 und ermöglicht die
Ausführung von Sprung-Mikro-Befehlen an einem beliebigen Bit im Register 28, das gesetzt oder nicht-gesetzt sein
kann. Im Übertragungsbetrieb kann das B1-Register in die Funktionseinheit 20 ungeladen sein oder aus der Funktions-Einheit
20 geladen sein. Das B2-Register 29a und B3-Register 29b sind ein Zeichen-Allzweck-Register, die zur Bildung
eines 2-Byte-Registers 29 aneinandergehängt werden können. Jedes der einzelnen Register kann zur Funktions-Einheit
20 ungeladen sein und kann von der Funktionseinheit 20 geladen werden.
Das WR-Register 34 ist ein Allzwecke-Arbeitsregister mit zwei Betriebsarten:
übertragung und Bit. Im Übertragungsbetrieb ist das WR-Register als zwei 8-Bit-Byte-Register (34a und 34b) angeordnet,
von denen jedes von der Funktionseinheit 20 geladen werden kann. Jedoch kann nur das untere Byte-Register
34a zur Funktions-Einheit 20 ungeladen sein. Im Bit-Betrieb ist das WR-Register 34 intern als ein serielles 16-Bit-Schieberegister
verbunden und kann Hinausschiebungen und Umläufe ausführen. Der Verschiebebetrag hängt von einem
Literalwert ab, der in den steuernden Maschinenzustands-Zähler eingesetzt ist, entweder der Normalzähler in der
Maschinenzustands-Steuereinheit 39 oder dem Hilfsmaschinen-Zustandszähler
40.
609828/0495
2543S22
Das Markierungsregister 30 ist ein Ein~Zeichen-Register,
das zum' Speichern eines allgemeinen Markierungsbytes dient. Das Bitsetzen wird durch einen Literalwert aus
dem Steuerspeicher 37 gesteuert. Im Übertragungsbetrieb kann das Register 30 zur Funktionseinheit 20 ungeladen
sein oder von der Funktionseinheit 20 geladen werden.
Die X-Register 33af33br33c und 33d sowie die Y-Register
31a,31b,31c und 31d können aneinandergehängt werden und
bilden dann zwei 4-Byte-Register, oder können so aneinandergehängt
werden, daß sie ein 8-Byte-oder 16-Ziffern-Register
(XY) bilden. Die- jeweiligen Register können von der Funktionseinheit 20 geladen und jedes in die Funktionseinheit 20 entladen werden. Bei der Zusammenarbeit mit der
Funktionseinheit 20 können diese Register eine Dezimal-Arithmetik
ausführen. Im Ziffernbetrieb kann die XY-Kombination von Registern dazu dienen, eine Zone abzustreifen
und anzuhängen.
Die Mikro-Speicher-Adress-Register 35a und 35b sind eine
Reihe von zwei 1-Byte-Registern, die ν on der Funktionseinheit
20 geladen werden oder sich in die Funktionseinheit 20 entladen können. Diese Register können außerdem Information
drei 16-Bit-Registern 36a,36b und 36c zuführen oder von
diesen empfangen, die zu einem Adressenstapel nach dem oben erwähnten Keller-Prinzip (LIFO) angeordnet sind, um
den Mikrospeicher zu adressieren. Programm zu speichern
und ünterbrechungs-Subroutinen-Adressen zu speichern.
Einen 16-Bit-Zähler 36d mit Incrementmöglichkeit ist außerdem
vorgesehen und kann direkt von den Registern 35a und 35b geladen werden. Der Mikrospeicher-Adressen-Bus 45
ist ein 16-Bit-Bus und empfängt Adressen aus dem Stapelregister
36c sowie vom Zähler 36d. Der Zähler 36d ist an die Incrementiereinheit 36e angeschlossen, welche die
Incrementier-Möglichkeit ergibt.
609828/0495
Das oben bereits kurz erwähnte TMS-HiIfsregister 40 ist
ein Ein-Zeichen-Register mit zwei Betriebsarten: Laden und Decrementieren. Im Ladebetrieb kann das Register von der
Funktionseinheit 20 geladen werden. Die Steuerung für den η ächstfolgenden Mikrobefehl wird von dem Maschinen-Zustandszähler
in der TMS-Steuereinheit 39 an dieses Register übertragen. Im Decrementierbetrieb steuert das
TMS-HiIfsregister 40 die Beendigung der laufenden Ausführung
eines Mikrobefehls, wenn es von einem Lade-TMS-Hilfsmikrobefehl
vorkonditioniert wurde.
Ein/Ausgabe-Adressen-Register 41 ist ein 8-Bit-Register und dient zum Adressieren von acht Zweirichtungs-Ein/
Ausgabekanälen oder Steuereinheiten. Dieses Register kann von der Funktionseinheit 2 0 geladen werden und kann sich
in die Funktionseinheit 20 entladen.
Die Funktionseinheit 20 besteht aus zwei arithmetischen
Logikeinheiten, deren Funktionen unten angegeben sind. Die Funktionseinheit-Datenpfade sind acht Bit breit entsprechend
der Datenpfad-Breite der Eingabe und Ausgabe-Busse (AA Bus 21, B Bus 22, und F Bus 23). Die unten
an-gegebene Tabelle führt den resultierenden Ausgang F als Funktion der beiden Eingänge A und B auf. Zusätzliche
Funktionen wie dezimale (BCD) Arithmetik, Zehner-Komplement und Zonen-Erweitern bzw. -Anhängen werden durch Datenpfad-Auswahl
und die Verwendung von Mikrobefehls-Literalen ermöglicht.
609828/0496
STEUER-CODE | FUNKTION |
11111 | TRANSFER A |
00001 | INVERT A |
10111 | LOGICAL 1AND1 A.B |
11101 | LOGICAL OR1 A + B |
01101 | EXCLUSIVE 1OR1 A + B |
10010 | BINARY ADD A PLUS B |
00000 | BINARY INCREMENT A |
11110 | A MINUS 1 |
01100 | A MINUS B MINUS 1 |
00100 | (A + B) |
00111 | ZERO |
00011 | A + B |
00101 | A-B |
01001 | A.B |
01011 | B |
01111 | A.B |
10001 | A + B |
10011 | A + B |
10101 | TRANSFER 8 |
11001 | 1 |
11011 | A + B |
00010 | A + B |
11010 | (A + B) PLUS A |
00110 | MINUS 1 |
01000 | A PLUS A.B |
01010 | (A + B) PLUS A.B |
01110 | A.B MINUS 1 |
10000 | A PLUS A.B |
10100 | (A + B) PLUS A.B |
10110 | A.B MINUS 1 |
11000 | A PLUS A |
11100 | (A + B) PLUS A |
Der beschriebene Abschnitt des Prozessors umfaßt somit die Registerorganisation und die Funktionseinheit. Es wird jetzt
im einzelnen die Mikrobefehlsdekodier-Organisation beschrieben, die das U-Puffer-Register 24 und den Steuerspeicher 37
umfaßt, wie auch die Maschinen-Zustands-Steuereinheit 39 gemäß Fig. 2.
Das U-Puffer-Register 24 ist ein 8-Bit-Register und dient zum Adressieren des Steuerspeichers 37 und zur Bereitstellung
von Information über den nächsten auszuführenden Mikfo-Befehl. Diese Information ist zur Erzeugung der Überlappung
der Mikrobefehls-Hol-Phase und der Ausführungsphasen notwendig.
Nach Zugriff auf den Steuerspeicher 37 wird ein
609828/0495
Steuerbefehl dem Steuerpufferregister 38 zugeführt. Wie bereits oben allgemein erläutert,steuert der Inhalt
des Steuerpuffers 38 (d.h. der Steuerbefehl) die Wahl des Quellenregisters und des Bestimmungsregisters sowie
die auszuführende Funktion.
Die Maschinenzustands-Steuereinheit 39 steuert die phasenrichtige
Behandlung aller Mikrobefehle in dem Prozessor (die jeweiligen Maschinenzustände werden weiter unten im
einzelnen erläutert). Eine Vorausschautechnik wird bei der Mikrobefehlsdekodierung benutzt und erscheint als
Überlappung der Hol-und Ausführungsphasen der Mikrobefehlsausführung. Die Vorausschaufunktion umfaßt eine Entscheidung
über den laufenden Mikrobefehls-Maschinenzustand und die Zählzeit, den Typ des laufenden Mikrobefehls, der von
dem Steuerbefehl aus dem Steuerspeicher erhalten wurde, und des Typs des nächsten Mikrobefehls, der im U-PufferRegister
24 enthalten ist, wenn der Inhalt jenes Registers als gültig erklärt wurde, d.h. eine Mikrooperatorsilbe vorhanden
ist. Der Maschinenzustand während der nächsten Zählzeit des Prozessors wird berechnet und Entscheidungen werden
getroffen, ob der Speicher zu adressieren ist und Speicher-Zugriff zu verlangen ist, um den nächsten Mikrobefehl
zu holen und das Mikro-Speicher-Adress-Register zu incrementieren und den Inhalt des U-Pufferregisters 24 als gültig
zu erklären. Wie oben angegeben, umfaßt die Maschinen-Zustands-Steuereinheit 39 einen nicht dargestellten 4-Bit-Zähler, der
von dem Steuerbefehl voreingestellt wird und die Anzahl der Ausführungsperioden für den laufenden Mikrobefehl steuert,
(ausgenommen wenn TMS Hilfsregister 40 durch den vorhergehenden Mikrobefehl aktiviert wurde).
Das TMS-HiIf sregister 40 wird zur Steuerung der übertra- ..
gung einr Anzahl von Datensegmenten (bis zu 256 Bytes) unter Steuerung eines einzigen Mikrobefehls verwendet.
Solche Mehrsegment-Übertragungen können aus dem Hauptspeicher
609828/0495
(11, aus Fig.1) oder in den Hauptspeicher 11 oder aus den
Ein/Ausgabe-Peripheriegeräten oder in die Ein/Ausgabe-Peripherie erfolgen. Weiter ist ein bedingungsabhängiger
Beendigungs-Mikrobefehl vorgesehen, unter dessen Regie die übertragene Datenkette abgefühlt wird und mit einem
Wert verglichen wird, der in einem der Datenregister enthalten ist, wobei bei Auftreten eines vorbestimmten Vergleichs-Ergebnisses
der Mikrobefehl endet und die Maschinen-Zustandssteuerung wieder zurück zu dem nicht dargestellten
4-Bit-Zähler in der Maschinen-Zustands-Steuereinheit 39
übertragen wird.
Es wird jetzt im Zusammenhang mit Fig. 4 die Art und Weise beschrieben, in der ein Steuerbefehl das Quellenregister
und das Bestimmungsregister sowie die auszuführende Funktion auswählt. Fig. 7 ist ein schematisches Diagramm der Auswahl-Netzwerke
A,B und F. Wie oben erläutert, enthält der Steuerbefehl drei 5-Bit-Felder zur Angabe des an den A-Bus
21 (siehe auch Fig.2) anzuschließenden Registers, des an den
B-Bus 22 anzuschließenden Registers und des an den F-Bus 23 anzuschließenden Registers. Außerdem enthält der Steuerbefehl
ein 5-Bit-Feld zur Angabe der arithmetischen oder logischen Operation, die von der Funktionseinheit 20 ausgeführt
werden soll. Diese Felder werden von dem Steuerpuffer 38 (Fig.2) empfangen und werden zu den jeweiligen Auswahl-Netzwerken
gemäß Fig. 7 übertragen. Ein Dekodierfeld wird zum A-Auswahlnetzwerk 46 übertragen und verbindet das jeweils angegebene Register mit dem A-Bus 21. Das B-Dekodierfeld wird zu dem B-Auswahl-Netzwerk 47 übertragen und verbindet
das jeweils angegebene Register mit dem B-Bus 22 und das F-Steuerfeld wird zu dem F-Aüswahl-Netzwerk 48
übertragen und gibt an, welches Register mit dem F-Bus 23 zu verbinden ist. Das Funktions-Auswahl-Dekodierfeld
wird direkt zur Funktionseinheit 20 übertragen. Sämtliche Felder können unabhängig voneinander ausgewählt werden.
809828/0495
Die Art und Weise, in der die verschiedenen Mikrobefehle und Steuerbefehle in Überlapp-Technik geholt werden,
wird jetzt im Zusammenhang mit Fig. 9 beschrieben, in welcher eine Reihe von Signalzügen die Abfolge der Schritte
darstellen, die an den verschiedenen entsprechenden Einheiten des Systems ausgeführt werden. Verwandte Schritte
bei den einzelnen Einheiten, die zum Dekodieren und Ausführen jedes Mikrobefehls notwendig sind, sind durch das
gleiche Bezugszeichen in jeder Kurve bezeichnet, so daß die Entwicklung des Dekodierens und der Ausführung jedes
einzeonen Mikrobefehls dadurch erhalten werden kann, daß die verwandten Bezugszeichen herab durch die verschiedenen
Kurven in Beziehung gesetzt werden.
In Fig. 9 stellt der Kurvenzug A lediglich den Systemtakt dar und soll hautpsächlich einen Zeitbezug für die anderen
Signale ermöglichen. Der Kurvenzug B ist eine Darstellung des Zeitpunkts, wenn das Mikrospeicher-Adressen-Register
(einschließlich seines Zählers) weitergestellt wird, um eine neue Adresse für den Mikrospeicher zu erhalten.
Der Kurvenzug C ist eine Darstellung der Zeiten, wenn das Mikrospeicher-Adressen-Register eine gültige Mikrospeicheradresse
enthält. Der Kurvenzug D ist eine Darstellung der Zeiten, wenn eine Speicheradresse zum Speicher gegeben wird,
um Daten oder Mikrobefehle zu holen, wobei die Mikrobefehle in dem Mikroteil des Hauptspeichers gemäß bevorzugter Ausführungsform
der Erfindung gespeichert sind. Der Kurvenzug E ist eine Darstellung der Zeiten, bei denen ein Ausgang
aus dem Hauptspeicher entweder in Form von D±en oder Mikrobefehlen
erhalten wird. Der Kurvenzug F stellt die Zeiten dar, wenn ein Ausgang aus dem Steuer speicher 37 (Fig. 2)*
erhalten wird, und zwar aufgrund der Tatsache, daß"jener
Steuerspeicher durch einen Operationskode eines Mikrobefehls adressiert wurde. Der Kurvenzug G ist eine Darstellung der
Zeiten, wenn der Steuerpuffer 38 vom Ausgang des Steuerspeichers 37 gesetzt wurde. Und schließlich stellt der Kurvenzug H die Zeiten dar, während denen die Signale aus dem
609828/0495
Steuerpuffer 38 dazu verwendet werden, die^Äusfunrung
der speziellen Funktionen und Datenübertragungen zu veranlassen, die von dem zugehörigen Mikrobefehl aufgerufen
wurden. Die umrandeten, gestrichelten Flächen in den verschiedenen Kurvenzügen stellen Zeiten dar, wenn der Mirko-Adress-Registerstapel
36 abwärts geschoben wird, um weitere Mikrospeicher-Adressen zu speichern.
Das Holen, Dekodieren und Ausführen der verschiedenen Mikrobefehlstypen wird in den jeweiligen Kurvenzügen der
Fig. 9 schrittweise erläutert, wobei die einzelnen Schritte zu der Gesamtzahl, zur Ausführung jedes Mikrobefehls benötigten
Schritte in Beziehung steht.Zusammengehörige Schritte tragen die gleiche Bezugszeichenangabe,was nun
erläutert wird. Bezugzeichen 1 bezeichnet die verschiedenen Schritte, die für einen einzigen Zählerzeit-Mikrobefehl
erforderlich sind, wobei ein Speicherholen (im Gegensatz zum Holen des Mikrobefehls) nicht benutzt wird. Bezugszeichen 2 stellt die verschiedenen Schritte dar, die für
das Holen eines Unterroutinen-Sprungmikro b efehls erforderlich
sind. Bezugszeichen 3 repräsentiert ein Speicherholen des ersten Bytes einer Sprungsadresse, erforderlich
durch den Subroutinen-Sprungmikrobefehl. Bezugszeichen 4
repräsentiert das Speicherholen des zweiten Bytes einer Sprungadresse. Das Bezugszeichen 5 repräsentiert das Aufstellen
'einer Subroutinen-Rückkehradresse. Bezugszeichen 6 stellt einen Drei-Zähler-Zeiten-Nichtspeicherhol-Mikrobefehl
dar. Bezugszeichen 7 stellt einen Mikrobefehl dar, der einen Zweizeichen-Literal besitzt. Bezugszeichen 8
stellt das Speicherholen des ersten Bytes jenes Literais dar. Bezugszeichen 9 repräsentiert das Speicherholen des
zweiten Bytes jenes Literais. Das Bezugszeichen 10" bezeichnet, das Holen eines Dreizeichen-Speicher-Lesemikrobefehls.
Bezugszeichen 11 bedeutet den tatsächlichen Speicherzugriff
zum Holen der drei Zeichen. D1, D2 und D3 stellen den tatsächlichen
Empfang aus dem Speicher des ersten, zweiten
609828/0495
repräsentier
und dritten Bytes dar, die diese Zeichen repräsentieren.
Die verschiedenen Kurvenzüge aus Fig. 9 sind in erster
Linie deswegen beschrieben worden, um das überlappte Verhältnis zwischen dem Holen (Kurve E) und Ausführen
(Kurve H) aufeinanderfolgender Mikrobefehle zu demonstrieren und ferner die Verwendung des push-down-stacks (Stapels)
(36a-d in Fig. 2) zum Bereithalten aufeinanderfolgender
MikroSpeicheradressen zu zeigen. Darüber hinaus zeigen die Kurvenzüge aus Fig. 9 weitere interessante Merkmale. Während
beispielsweise das Holen eines Subroutinen-Sprung Mikrobefehls (Bezugszeichen 2) durch Steuerbefehle (Kurve H)
aus dem Steuerspeicher verwirklicht ist, steht das Holen der
zwei Bytes der Sprungadresse (Zeichen 3 und 4) unter Steuerung jenes Mikrobefehls, so daß zusätzlicher Steuerspeicher-Ausgang
(Kurve F) nicht erforderlich ist. In ähnlicher Weise erfordert das Aufstellen der Unterroutinen Rückkehradresse
(Zeichen5) keinen weiteren Steuerspeicher-Ausgang (Kurve F). In ähnlicher Weise erfordert das Holen eines Zweizeichen-Literal-Mikrobefehls
(Mikrobefehltyp III, Zeichen 7) einen Steuerspeicherausgahg für eine Taktzeit; jedoch erfordern
aufeinanderfolgende Holungen von Zwei-Bytes des Literal (Zeichen 8 und 9) keinen Steuerspeicher-Ausgang, da jene
Holung unter Steuerung des vorher geholten Mikrobefehls
steht. In ähnlicher Weise erfordert das Holen von Datenzeichen aus dem Hauptspeicher (Zeichen 10) keinen Steuerspeicher-Ausgang,
wenn der Mikrobefehl, der jenen Ausgang aufruft, einmal zur Ausführung gelangt ist.
Das überlappen des Holvorgangs eines Mikrobefehls mit der
Ausführung zeigt besonders deutlich Fig. 9. Beispielsweise wird die Ausführung des ersten Mikrobefehls (Zeichen 1)
während der dritten Taktperiode gleichzeitig damit ausgeführt, daß der zweite Mikrobefehl aus dem Speicher geholt
wird, wobei die Adresse des zweiten Mikrobefehls in dem Stapel während der Speicher-Hol-Phase des ersten Mikrobefehls
609828/0495
gespeichert wurde. Entsprechend ist die Ausführung des Dreizähler-Zeiten-Nichtspeicherzugriffs-Mikrobefehls
(Zeichen 6) während aufeinanderfolgender Taktzeiten ausgeführt, während welcher der Zweizeichen-Literal-Mikrob
efehl aus dem Speicher geholt wird.
Vielleicht kann eine deutlichere Demonstration des überlappten Holens und Ausführens aus einem Vergleich der
Figuren 10 und 11 gewonnen werden, wobei Fig. 10 ein Zeitdiagramm
enthält, das die tiefgreifende Parallelität des Mikrobefehls-Holens wie auch der Mikrobefehls-Ausführung
für eine Anzahl verschiedener Arten von Mikrobefehlen trägt. Zum Vergleich bringt Fig. 11 ein ähnliches Zeitdiagramm,
das auch eine Parallelität oder eine Überlappung zwischen dem Incrementieren der MikroSpeicheradresse und der Ausführung
des Mikrobefehls besteht, wobei jedoch keine Überlappung zwischen dem Mikrospeicherholen und der Mikrobefehls—
Ausführung besteht. D.h. in Fig. 1 besteht keine Überlappung zwischen dem Mikrobefehlsholen aus dem Mikroabschnitt des
Hauptspeichers und dem Steuerbefehlsholen aus dem Steuerspeicher.
Wie Fig. 10 zeigt, ermöglicht die vorliegende Erfindung eine Parallelität oder ein überlappen zwischen dem Incrementieren des
Mikrospeicher-Adressregisters und dem Darbringen des Inhalts jenes Registers zum Mikrospeicher für aufeinanderfolgende
Befehle; die Parallelität oder die Überlappung zwischen dem Anbieten einer MikroSpeicheradresse an den
Mikrospeicher und außerdem einem Holen aus dem Mikrospeicher für aufeinanderfolgende Befehle; eine Parallelität zwischen
dem Holen eines Mikrobefehls aus dem Mikrospeicher und dem Holen eines Steuerbefehls aus dem Mikrospeicher für aufeinanderfolgende
Befehle. Eine derartige Parallelität und Überlappung kann als Schaffung eines "pipeline"-Effekt des Holens
aufeinanderfolgender Mikrobefehle angesehen werden, während die früher geholten Mikrobefehle weiter durch die "pipeline"
zum Steuerbefehlspuffer zur Ausführung geschoben werden. —
609828/049$
Auf diese Weise erfordert das Increraentieren der Mikrospeicheradresse,
der Zugriff auf den Mikrospeicher, der
Empfang des Mikrospeicher-Holens, der Empfang des Steuerspeicher-Holens
und der Ausführung für eine einzige Zählzeitregisterübertragung eines Mikrobefehls nur vier Taktzeiten,
wegen der erfindungsgemäßen Parallelität. Wie jedoch aus Fig. 11 hervorgeht, erfordert ein normaler Mikrobefehl
sechs Taktzeiten. Darüber hinaus können Einsparungen in der zum Holen und zur Ausführung verschiedener Mikrobefehlsarten
erforderlichen Taktzeiten durch Vergleich der Fig. 10 und 11 erkannt werden, welche Einsparungen
sich aufgrund des Umstandes ergeben, daß die Incrementierung der MikroSpeicheradresse zur Ableitung der nächsten Adresse
nicht wegen eines Mikrospeicherholens der vorhergehenden Adresse verzögert ist, und daß das Mikrospeicherholen nicht
durch das Steuerspeicherholen des vorhergehenden Mikrobefehls verzögert ist.
Wie bereits im Zusammenhang mit der Organisation der Mikrobefehl-Ausführung beschrieben, steuert die Maschinen-Zustandssteuereinheit
29 (Fig. 2) die phasenmäßige Behandlung und Verarbeitung der Mikrobefehle in dem Prozessor.
Wie weiter oben ausgeführt, wird eine Vorausschau-Technik benutzt, die eine Entscheidung über die laufende Mikrobefehls-Maschinen-Zustandszählzeit,
die Art des von dem Zustands-Maschinendekodierfeld in deren Steuerbefehl erhaltenen
laufenden Mikrobefehls und der Art des nächsten Mikrobefehls umfaßt, der in dem ü-Pufferregister 24 (Fig.2) enthalten
ist und aus dem Mikrobefehlsspeicher empfangen wurde. Der Maschinenzustand während der nächsten Zählzeit der Maschine
wird berechnet und es werden Entscheidungen darüber getroffen, ob der Speicher zu adressieren und Anforderungen nach Speicherzugriff
zu stellen, den nächste Mikrobefehl zu holen., das. Mikrospeicheradressenregister zu incrementieren und den
Inhalt, des Ü-Pufferregisters als gültig zu erklären ist.
609828/0496
Es gibt acht verschiedene Maschinenzustände und die Beziehung zwischen diesen Zuständen zeigt Fig. 8. Die
jeweiligen Zustände werden bezeichnet als Zwangseinleitung (111), Zwangsunterbrechung (000), Zwangsfehler (011),
Verschiebung (001), Ersetzen (101), Ausführen (100), Verzögerung 1 (110), Verzögerung 2 (010). Die Bedingungen,
unter denen jeder dieser Zustände angenommen wird, und die Funktion des Zustandes wird jetzt im einzelnen erörtert.
Die Funktion des Schiebe-(push)-Zustandes (001) in dem Prozessor besteht darin, das Mikrospexcheradressenregister
und den zugehörigen Stapel so zu manipulieren, daß die Unterroutinen-Sprungadressen und die Unterbrechungs-Rückkehradressen
in dem Stapel aufbewahrt werden. Die Bedingungen zum Eintritt in den Schiebe-Zustand liegen vor, wenn
der laufende Mikrobefehl ein erfolgreicher Unterroutinensprung in der Zählzeit 1 des Ausführungszustandes ist, oder
wenn eine Zwangsunterbrechungsbedingung, eine Zwangseinleitungbedingung oder ein Zwangsfehler während des laufenden
Maschinenzyklus1 als gültig auftreten.
Die Funktion des Ersatz-(replace)-Zustandes (101) besteht darin, zu veranlassen, daß unbedingte Sprungadressen und
erfolgreiche bedingte Sprungadressen aus dem Laderegister in den Mikrospeicheradressenstapel in das Mikrospexcheradressenregister
geladen werden. Die Bedingungen zum Eintritt in den Ersatzzustand liegen vor, wenn der laufende
Mikrobefehl ein erfolgreicher Sprung ist, jedoch keine Subroutine oder ein Subroutinen-Rückkehr ist, wenn der laufende
Mikrobefehl in der Zählzeit 1 der Ausführungsphase sich befindet.
Der Zwangsunterbrechungszustand veranlaßt, daß eine Mikroprogramm-Routinen-Adresse
in den Mikrospeicheradressenstapel zwangsweise geladen wird. Wenn eine Unterbrechung
609828/0495
auftritt, liegt eine Bedingung für den Eintritt in den
Zwangsunterbrechungszustand vor, wenn der laufende Maschinenzustand entweder Verschiebung (push ) oder Ersatz
(replace) ist; der laufende Mikrobefehl ist ein Nicht-Sprung-TMS.Ladebefehl
in Zählzeit 1 des Ausführungszustands und der Inhalt des Mikropuffers ist ungültig; der
laufende Mikrobefehl ist ein erfolgreicher bedingter Lesebefehl in dem Ausführungszustand, jedoch nicht in
Zählzeit 1 des Zustands und der Inhalt des Mikropuffers wird erneut als ungültig erklärt; der laufende Mikrobefehl
ist eine Subroutinen-Rückkehr in Zählzeit 1 des Ausführungszustands .
Der Zwangseinleitungszustand (111) wird erreicht bei Empfang eines Signals durch den Prozessor, das anzeigt, daß die
Versorgungsspannung vorhanden ist. Der Zwangsfehlerzustand (011) wird erreicht bei Feststellung eines Paritätsfehlers
aus dem Speicher, wenn eine Speicheraktivierleistung zum Prozessor angezeigt hat, daß ein Speicherzugriff dem Prozessor
gewährt wurde.
Der Verzögerungs-Zweit-Zustand soll es ermöglichen, daß
ein Mikrobefehl in dem Mikroabschnitt des Speichers geholt und in den Mikropuffer geladen wird, wenn der gerade ausgeführte,
vorhergehende Mikrobefehl entweder ein erfolgreicher bedingter Sprung, ein unbedingter Sprung, ein Subroutinensprung
oder eine Subroutinen-Rückkehr ist. Der Verzögerungs-Zweit-Zustand kann nur dann erreicht werden,
wenn keine Unterbrechung vorliegt und wenn der laufende Zustand des Mikroprozessors entweder verschieben (push)
oder Ersatz (replace) ist; der laufende Mikrobefehl ist eine Subroutinen-Rückkehr in den Ausführungszustand, der
laufende Mikrobefehl ist ein erfolgreiches bedingtes Lesen
in dem Ausführungszustand, jedoch in Zählzeit 1 jenes Zustands .
609828/0495
Der Verzögerungs 1-Zustand (110) dient zwei Zwecken.
Der wichtigere von beiden besteht darin, daß das Oberbringen des gerade im Mikropuffer befindlichen Mikrobefehls
zum Steuerspeicher und das Einbringen des entsprechenden
Steuerbefehls in den Steuerpuffer vor Ausführung veranlaßt wird. Darüber hinaus ist der Verzögerungs-1-Zustand notwendig
für die Speicherzugriffs-Zeit für Lese-Mikrobefehle,
da es unmöglich ist, im gleichen Zyklus auf ein von einem der MAR-Register adressiertes Zeichen im Speicher zuzugreifen und es in die Prozessor-Speicherregister zu bringen.
In diesem Fall ermöglicht der Verzögerungs-1-Zustand den
Zugriff auf das erste Zeichen, das in einem beliebigen Speicher-Lese-Mikrobefehl erforderlich ist, ehe der Prozessor
in den Ausführungszustand eintritt.
Der Ausführungszustand (100) steuert sämtliche Datenübertragungen innerhalb des Prozessors mit ausnähme jener
Stapelmanipulatxonen, die von dem Ersatz (replace)-Zwangs (force)- und Verschiebe (push)-Zustand gesteuert werden.
Ein regulärer Mikrobefehl, der keinen Speicherzugriff erfordert, kann in einer Taktzeit ausgeführt werden, wobei
Verzögerungen nicht erforderlich sind. Ein Speicher-Schreib-Mikrobefehl
erfordert einen Takt an Verzögerung nach Beendigung seiner Ausführung. Ein Speicher-Lesebefehl erfordert
eine Taktzeitverzögerung vor Ausführung und eine Taktzeitverzögerung nach Ausführung. Ein literaler Mikrobefehl
erfordert eine Taktzeit-Verzögerung nach Beendigung der Ausführung, damit die nächste Mikrosilbe wie oben beschrieben
geholt werden kann.
Ein unbedingter Sprung-Mikrobefehl und ein bedingter erfolgreicher
Sprungmikrobefehl erfordern zwei Taktzeitverzögerungen nach Beendigung der Ausführung. Ein bedingter, nicht erfolgreicher
Sprung-Mikrobefehl erfordert eine Taktzeitverzögerung nach Beendigung der Ausführung. Ein bedingter Speicher-
609828/0495
Ende-Mikrobefehl erfordert eine Taktzeitverzögerung nach
Beginn der Ausführung und zwei Taktzeiten-Verzögerung nach Abschluß der Ausführung.
Die Ein/Ausgabe-Schnittstelle des Prozessors (Fig.2)
umfaßt einen Ein/Ausgabe-Datenbus 23a, ein Ein/Ausgabe-Adressenregister 41, einen Ein/Ausgabe-Anforderungsbus
42 und einen Ein/Ausgabe-Adressenbus 42 sowie ein Maskierungsregister 49. Diese Einrichtungen können 8 Kanäle im Zweiweg
bedienen, und zwar mit programmgesteuerter Priorität. Sämtliche Übertragungen durch einen Ein/Ausgabekanal finden
unter Steuerung des Prozessors statt. Die Steuerparameter, Daten sowie Angabe- und Status-Anforderungen können von einem
Prozessor einem Ein/Ausgabe-Kanal-Steuergerät aus übertragen werden; Status-, Bezeichnungs- und Datensignale werden von
dem Steuergerät dem Prozessor zugeleitet. Sämtliche Datenübertragungen, die vom Prozessor eingeleitet werden, gewinnen
Zugang zum Prozessor über einen Ein/Ausgabe-Untexbrechungs-Aufruf;
Steuer-, Bezeichnungs- und Statusinformation kann nur durch einen Prozessor-Befehl übertragen werden. Bei
Verwendung der Datenunterbrechungsaufrufe können sämtliche
8 Ein/Ausgabe-Kanäle simultan arbeiten.
Der Ein/Ausgabe-Datenbus 23a ist mit einer Anzahl von Bedienungsleitungen
funktionsmäßig gekoppelt, die eine Kanaladressenleitung, eine Kanalaufruf-Leitung und Ein/Ausgabe-Ausführungsleitung,
eine Steuerleitung und Zweiphasen-Taktleitung, eine Leitung zur Peststellung von vorhandener
Spannung und eine Leitung für die Übertragungsrichtung umfassen. Der Datenbus selbst besteht aus 8 Zweirichtungs-Datenleitungen.
Eine besondere Kanaladressenleitung ist für jeden von dem Prozessor adressierten Kanal vorgesehen. Das Signal auf der
geeigneten Leitung wird jedesmal dann auftreten, wenn über einen speziellen Kanal eine Kommunikation erforderlich ist.
609828/0495
Wenn die Adressenleitung eines Kanals ein Signal führt, dann kann der Datenbus des Kanals mit dem Datenbus 23a
des Prozessors verbunden werden. Eine Kanal-Anforderungs-Leitung ist zwischen jeden Kanal und den Prozessor vorgesehen,
wobei eine der Kanal-Aufrufleitungen ein Signal führt, wenn der zugehörige Kanal Bedienung erfordert.
Alle acht Ein/Ausgabe-Kanal-Anforderungsleitungen sind logisch über eine ODER-Verbindung miteinander verbunden
und ergeben eine Ein/Ausgabe-Unterbrechungs-Anforderung für die Prozessor-Maschinen-Zustands-Steuerung 39 (Fig.2).
Die Aufrufe oder Anforderungen werden von dem Prozessor zur Bestimmung des Kanal-Vorrangs oder der Kanal-Priorität
abgefragt.Die Aufruf-Leitung für einen Kanal wird von einem
Ein/Ausgabe-Steuergerät zur Information des Prozessors benutzt, daß, wenn ein Datenbefehl vom Prozessor erfolgreich
war, und Datenübertragungen angefordert sind, ein gewähltes Gerät nicht auf Bereitschaft geschaltet hat, oder daß ein
nicht-gewähltes Gerät sich auf Bereitschaft geschaltet hat. Die Funktion der Anforderungsleitung ermöglicht auf diese
Weise, daß der Prozessor andere Verarbeitungsaufgaben erledigen kann, nachdem er einen Befehl an die Ein/Ausgabe-Steuereinheit
gegeben hat, während diese Steuereinheit dann wartet auf eine Bedienungsanforderung als Folge des
Befehls.
Die erfindungsgemäße Vorrang-Bestimmung unter Ein/Ausgabe-Unterbrechungen
wird jetzt im Zusammenhang mit Fig. 12 beschrieben. Wie vorstehend dargelegt, kann auf jeder Kanalanforderungsleitung
ein Signal auftreten und anzeigen, daß eine Bedienungsanforderung vorliegt. Die jeweiligen
Anforderungssignale werden einem Maskierungsregister 49 angeboten, das in Fig. 2 und 12 zu erkennen ist. Das Vorliegen
eines derartigen Signals läßt die Maschinenzustands-Steuereinheit 39 (Fig.2) die von dem Prozessor betriebene,
gerade laufende Routine (einschl.eines Ein/Ausgabe-Befehls) unterbrechen und eine Sub-Routine aufrufen, damit die ver-
609828/0495
schiedenen Anforderungssignale abgefragt und dasjenige mit der höchsten Priorität oder dem höchsten Vorrang
bestimmt werden kann. Gemäß Fig. 12 werden die verschiedenen
Aufrufsignale vom Register 49 entsprechenden UND-Gattern
51 zugeführt, und zwar entsprechend der jeweiligen Bitstelle der Signale im Register 49. Während diese Signale
den UND-Gattern zugeführt werden, wird eine Folge ν on Wörtern aus einer Vorrang-Tabelle in Speicher 53 zu Vergleichszwecken
geholt.
Wie man sus Fig. 12 erkennt, enthält jedes der geholten Wörter
nur ein einziges 1-Bit, während die übrigen Bits Nullen (Ziffer 0) sind. Die Bitstelle des 1-Bits entspricht einer
speziellen Ein/Ausgabe-Kanal-Aufrufleitung, und die Ordnung, in der die Wörter geholt werden, entspricht der Reihenfolge
des Vorrangs, der den Kanälen zugeordnet ist. Angenommen, die Bitstellen gemäß Fig. 12 seien linksbündig, d.h. die
Kanalreihenfolge läuft von links nach rechts, dann ist die höchste Priorität (niedrigste Wortadresse in Fig.12) dem
dritten Kanal zugeordnet, die zweite Priorität ist dem siebenten Kanal zugeordnet, die dritthöchste Priorität ist
dem ersten Kanal zugeordnet usw.
Als Beispiel einer Folge von Aufrufsignalen im Register
49 sei betrachtet ein 11010111. Wenn der Prozessor unterbrochen wurde, und Aufrufabfrage aufgerufen wurde, dann
wird der Adressenzähler 54 gemäß Fig. 12 das unterste Wort aus dem Speicher 53 holen, um es mit dem Inhalt des Registers
49 über UND-Gatter 51 zu vergleichen. Im betrachteten Beispiel ergibt sich keine Gleichheit und daher auch kein Ausgangssignal
aus den UND-Gattern 51. Daher wird der Adressenzähler 54 incrementiert und holt das nächst unterste Wort
aus dem Speicher 53. Jetzt ergibt sich eine Gleichheit und ein Ausgangssignal steht am Ausgang des siebenten (von links)
UND-Gatters 51. Man bemerke, daß jeweils nur ein UND-Gatter,
609828/0495
wenn überhaupt, ein Ausgangssignal führt. 4)xeses Signal
wird durch die entsprechende Diode 52 der Maschinen-Zuständs*i
Steuerung. 39 (Fig.2) zugeführt, damit die Sub-Routine angehalten
werden kann, wodurch weiter die Adressenleitung des entsprechenden Kanals ein Signal erhält, damit der Kanal-Datenbus
mit dem Datenbus 23a des Prozessors (Fig.2) verbunden werden kann.
Anstatt der Schaltung nach Fig. 12 kann die Vergleichsfunktion
der UND-Gatter 51 durch die Funktionseinheit 20 aus Fig. 2 ausgeführt werden, und die Vorrang-Tabelle kann im
Speicher 11 aus Fig. 1 gespeichert sein. In beiden Fällen
wird der bedingte Beendigungs-Mikrobefehl wie oben erläutert dazu benutzt, eine Speicher-Hol-Sequence einzuleiten, die
nur dann beendet wird, wenn ein vorbestimmtes Vergleichsergebnis, gemäß obigem Beispiel, also die Gleichheit, auftritt.
Die übrigen Bedxenungsleitungen des Ein/Ausgabe-Datenbus
23a gemäß Fig. 2 werden jetzt beschrieben. Die Ein/Ausgabe-Ausführungsleitung
steuert sämtliche Übertragungen von Information und Daten zwischen dem Prozessor und der Ein/
Ausgabe-Steuereinheit. Diese Leitung behält ein Signal während der Ausführung eines Mikrobefehls einer beliebigen
Informationsübertragung in einem Ein/Ausgabekanal und wirkt als Auslösesignal für die Systemübertragungstakte.
Die Steuerleitung der Ein/Ausgabe-Schnittstelle erhält ein Signal von dem Prozessor, das dem adressierten Kanal anzeigt,
daß ein Befehl oder Steuerinformation über den Kanal zu
übertragen ist.
Die Leitung, die das Vorhandensein von Spannung anzeigt, dient zur Einleitung der Zustände eines Geräts', das mit '
einem Ein/Ausgabe-Kanal verbunden ist. ■
609828/0495
Die Übertragungs-Richtungsleitung dient zur Anzeige der laufenden Übertragungsrichtung für Daten auf den Zwei-Richtungs-Datenleitungen.
Wenn diese Richtung in den Prozessor weist, und die oben beschriebene Steuerleitung
ein Signal führt, dann wird ein primäres Statuszeichen eines Ein/Ausgabegerätes zum Prozessor übertragen.
Über die Ein/Ausgabe-Schnittstelle können fünf Operationen
ausgeführt werden. Sie werden genannt "Abfrage-Status", "Elektronischer Befehl I", Elektronischer Befehl II",
"Peripherie-Gerät-zeitabhängig" Befehl sowie "Datenübertragung".
Der "Abfrage-Status"-Befehl arbeitet in üblicher Weise
auf dem System so, daß die in einem einzigen Byte von einer peripheren Steuereinheit vereinigte Statusinformation zum
Prozessor oder Speicher während des gleichen Zyklus' übertragen werden kann, wie eine Frage-Aufruf-Ab-Aktion von
dem Prozessor ausgeführt wird. Ein Status-Zeichen in einer peripheren Steuereinheit wird durch einen beliebigen Prozessor-Mikrobefehl
adressiert, der bewirkt, daß die oben erwähnte Steuerleitung ein Signal führt, und die Richtungsleitung über die Schnittstelle zwischen dem Prozessor und
der peripheren Steuereinheit kein Signal führt.
Der "Elektronik-Befehl I" ist von der Art, bei der kein sofort folgender Datenübertrag als Ergebnis auftritt.
Dieser erste Typ des "elektronischen Befehls" löst eine Aktion in der peripheren Steuereinheit aus, die die Steuereinheit
für eine Datenübertragung im nächsten Zyklus nicht vorbereitet. Beispiele dieser Art sind "Auswahl zum Lesen",
"Setze Betriebsart" sowie "Gebe frei".
Der "Elektronik-Befehl II" ist von der Art, daß die nächste
Ein/Ausgabe-Übertragung zu oder von dem befohlenen Peripheriegerät ein Prozessor-Register beteiligen muß, das
60982 8/0495
durch diesen Befehl vorbereitet wird. Diese Art Eerehl
bewirkt, daß ein Register in einer peripheren Steuereinheit vorkonditioniert wird, so, daß die nächste Ein/Ausgabe-Datenübertragung
zur Steuereinheit entweder Daten in das Register einschreibt oder Daten aus dem Register für den
Prozessor-Speicher ausliest. Eine auf den Befehl folgende Datenübertragung kann nach einer Anzahl von Zyklen Verzögerung
auftreten. Der Prozessor stellt sicher, daß beliebige Datenanforderungen als Folge von "Auswahl zum
Lesen" oder "Auswahl zum Schreiben"-Befehlen gesperrt werden bis die Datenübertragungs-Bedingung durch einen "Elektronik-Befehl
II" -Typ ausgeführt ist.
Der Typ "Peripherie-Gerät-zeitabhängig"-Befehl kann auf
zwei Weisen ausgeführt werden. Der erste Weg sieht vor, daß ein Befehl in dem Datenstrom an das Peripherie-Gerät
übertragen wird. In diesem Fall wird ein Befehl durch die periphere Steuereinheit wie Daten behandelt und die
Beendigung des Befehls wird dem Prozessor durch die peri phere Steuereinheit dadurch angezeigt, daß die Aufrufleitung
ein Signal führt. Die zweite Weise, in der dieser Art Befehl verwendet werden kann, besteht darin, daß
die oben erwähnte Steuer-und Richtungs-Leitung zur Anzeige einer Steuerzeichen-Übertragung verwendet wird.
Der "Daten-übertragungs"-Befehls-Typ umfaßt die "Auswahl
zum Lesen" und "Auswahl zum Schreiben"-Befehle und steuert die Informationsübertragung. Der "Auswahl zum Lesen"-Befehl
zeigt an, daß eine Übertragung von Daten, die aus dem Peripheriegerät gelesen wurden, stattfindet. Der "Auswahl
zum Schreiben"-Befehl leitet die Datenübertragung ein, wobei die Daten in ein Peripherie-Gerät aus dem Prozessor eingeschrieben
werden. Steuereinheiten können so definiert werden, daß sie entweder Blockübertragungen oder Einzelzeichen-Übertragungen
behandeln. Wenn eine Block-Übertragung oder eine Zeichenübertragung nach der Auswahl erforderlich ist, gibt
609828/0495
die periphere Steuereinheit ein Signal auf 4.hxe 'ft.nfxftfleitung
an den Prozessor. Der Prozessor spricht auf diesen Aufruf dadurch an, daß der Signalpegel auf der Steuerleitung
abgesenkt wird und ein Signal auf die Ein/Ausgabe-Ausführleitung während der Dauer der Übertragung gegeben wird.
Der mit dem Datenbus 23a assoziierte Richtungsleitung wird in ihrem Signalpegelabgesenkt, damit Daten aus dem
Peripheriegerät ausgelesen werden können, und es wird auf diese Leitung ein Signal gegeben, damit Daten in das Peripheriegerät
aus dem Prozessor geschrieben werden können. Der Prozessor gibt das Ende der Datenübertragung dadurch
an, daß ein "Antwort-Code", auf den Ein/Ausgabe-Datenbus nach übertragung des letzten Zeichens in einem Block gegeben
wird. Die periphere Steuereinheit muß dann den Signalpegel auf ihre Aufrufleitung absenken, bis weitere Datenübertragungen
möglich werden.
Informatxonsübertragungen unter Steuer der Befehlsarten "Peripherie-Gerät zeitabhängig" und "Datenübertragung"
sind der ünterbrechungssteuerung in dem Prozessor unterworfen.
Die ünterbrechungssteuerung existiert in der Maschinen-Zustands-Steuereinheit
39 (Fig.2) und ermöglicht, daß acht Zwei-Richtungs-Ein/Ausgabe-Kanalaufrufe angenommen
werden können und gibt ihren Eingang an den Prozessor durch Erzeugung einer "Unterbrechungs-Auflöse"-Markierung
oder eines dementsprechenden Signals weiter. Wenn das Unterbrechungs-Auslöse-Signal
eine logische "1" führt, kann ein beliebiger Aufruf aus einem Peripheriegerät die Steuerung
des Mikroprozessors dadurch übernehmen, daß die Maschinen-Zustandssteuerung 39 (Fig.2) in den Eintritt des Zwangszustandes
veranlaßt wird, wie er oben im Zusammenhang mit den verschiedenen Maschinen-Zuständen beschrieben wurde." Während
der Prozessor in dem Zwangszustand sich befindet, wird das.. Unterbrechungs-Auslösesignal auf eine logische "0" zurückgesetzt,
so daß keine weiteren Unterbrechungen erzeugt werden können,während der Prozessor die erste Unterbrechung
609828/0495
bedient. Nach der Bedienung der Unterbrechung muß der Prozessor das Unterbrechungs-Auslösesignal auf eine logische
"1" setzen, damit erneute Kanalaufrufe bedient werden können. Dies wird dadurch erreicht, daü der Prozessor einen Unterbrechungs-Rückkehr-Mikrobefehl
programmiert, der das Unterbrechungs-Ausiösesignal setzt und die Mikroprogramm-Steuerung
auf den Mikrobefehl zurückspeichert, der demjenigen Befehl folgt, der bei auftretender Unterbrechung gerade ausgeführt
wurde. Die Unterbrechungs-Auslösemarkierung kann auch durch Programm auf eine logische "0" gesetzt werden, indem ein
spezieller Sub-Routinen-Sprung-Mikrobefehl benutzt wird.
Die Funktion des Zwangsunterbrechungszustandes,wie oben beschrieben,
besteht darin, daß eine feste Adresse, die Startadresse der Behandlungsroutinen für periphere Angelegenheiten,
in den Mikrospeicher-Adressenstapel geladen wird und daß die normale Übertrags-Markierung auf die Unterbrechungs-Übertrags
-Markierung kopiert wird. Bei einem Unterbrechungs—
Rückkehr-Mikrobefehl wird der Unterbrechungsübertrag auf die Sprungübertrag-Markierung kopiert.
EPILOG
Insgesamt wurde ein System und ein Verfahren zum Betreiben
dieses Systems beschrieben, das mit einer Anzahl von Peripheriegeräten zusammenarbeiten kann, welche simultan arbeiten
und den Prozessor entsprechend der jedem Peripheriegerät zugeordneten Priorität unterbrechen kann. Weiter ist
das System mit seinem Verfahren so ausgelegt, daß die entstehenden Kosten denjenigen für kleine Allzweck-Verarbei- ■
tungssystemen und Spezialkomputern entsprechen bei einer
Leistungsfähigkeit, die mit Mikroprogrammsystemen mittlerer - *
Größe konkurrieren kann. Verschiedene Mikroprogrammsysteme sind gegenüber nicht-mikroprogrammierten Systemen darin
vorteilhaft, daß sie mehrere unterschiedliche höhere Pro-
grammsprachen schnell interpretieren können, was durch verschiedene Ketten von Mikrocodes oder Mikrobefehlen realisiert
wird.
609828/0495
Dieses Ziel wird von der Erfindung dadurch erreicht, daß mehrere Ebenen an Unterbefehlsgruppen verwendet
werden, die die verschiedene Programme repräsentierenden Befehlsgruppen höherer Ebene bilden. Da die verschiedenen
Ebenen der Unterbefehlsgruppen in verschiedenen Speichern gespeichert sind, können die jeweiligen Befehle
aus den ihnen zugehörigen Speichern mit Überlappung und parallel geholt werden.Dies führt zu dem erfindungsgemäßen
System paralleler Unterbefehlsströme.
Die jeweiligen Ebenen von Unterbefehlsgruppen sind konventionelle
Mikrobefehle und außerdem Steuerbefehle, von denen die letztere Gruppen von Steuersignalen sind, die
zur Vorbereitung der verschiedenen Gatter für die Datenübertragungen und andere Operationen erforderlich sind.
Das Format des Mikrobefehls kann variiert werden, und damit verschiedene Anzahlen von Grund-Silben umfassen, die dann
sequentiell vom Mikrospeicher geholt werden und den gewünschten Mikrobefehl bilden. Auf diese Weise wird redundanter
Speicherraum des Mikrobefehls-Speichers wesentlich reduziert. Weitere Merkmale der Erfindung wurden im Zusammenhang mit
der Erläuterung der Maschinenzustands-Steuerung beschrieben, gemäß denen die Ausführung aufeinanderfolgender Mikrobefehle
verzögert wird, um beispielsweise zu ermögliche, daß ein einziger Mikrobefehl eine große Anzahl von Datenübertragungen
aus dem Speicher und im Prozessor steuert. Das System kann ferner bedingungsabhängig die Ausführung des Mikrobefehls
anhalten, der eine solch große Anzahl von Datenübertragungen aufruft, und zwar bei Auftreten der geeignet spezifizierten
Bedingung. Dieses letzte Merkmal kann zwar dazu dienen, dieBestimmung der Priorität der Ein/Ausgabe-Unterbrechung
zu steuern, indem Prxoritätsbezeichnungssignale in Sequenz entsprechend ihrer Priorität aufgerufen werden und diese
Seqeunz anzuhalten, wenn ein Bedienungsaufruf mit höchster Priorität gefunden wurde.
609828/0495
Die Erfindung ist selbstverständlich auf Einzelheiten der oben beschriebenen Ausführungsform nicht beschränkt.
So wurde eine Prioritätstechnik für die Peripherie-Unterbrechung in einem Mikroprogrammsystem beschrieben, das mit
zwei Ebenen von Unterbefehlsgruppen arbeitet. Die erste Unterbefehlsebene, die Mikrobefehle umfaßt, wird durch eine
zweite Ebene von Steuerbefehlen dargestellt, die in einem Prozessor-Lese-Speicher gespeichert sein können. Die jeweiligen
Mikrobefehle werden durch Variieren der Anzahl von Silben gebildet, und zwar entsprechend der Funktion
der jeweiligen Mikrobefehle. Die verschiedenen Typen von Mikrobefehlssilben sind in einem Mikrobefehlsspeicher gespeichert
und können von diesem in Sequenz entsprechend den Anforderungen eines speziellen Makrobefehls oder Haaptbefehls
herausgeholt werden. Auf diese Weise kann eine große Vielzahl von Mikrobefehlen dadurch geschaffen werden,
daß mehrere verschiedene Silben aus dem Mikrobefehlsspeicher ausgewählt werden. Eine andere Mikrobefehlssilbe dient zur
Angabe jeder Kombination der auszuführenden Funktion und der Quellen- und Bestimmungsregister, die mit den jeweiligen
Bussen in dem Prozessor benutzt werden sollen.
Ein spezieller Mikrobefehl dient zum Steuern einer Anzahl von Datenübertragungen innerhalb des Prozessors und zu
sowie von dem Speicher und der Ein/Ausgabe-Peripherie, sowie ferner zum Anhalten einer derartigen Datenübertragung bei
Vorliegen bestimmter Umstände. Diese Art von Mikrobefehl kann auch dazu dienen, die Priorität der Bedienungsanforderungen
durch verschiedene Peripherie-Einheiten zu bestimmen, wobei die Aktion endet, wenn die Anforderung der höchsten
Priorität gefunden wurde.
609828/0495
Claims (8)
1. Einrichtung zur Bearbeitung von Daten mit mehreren
Peripherie-Geräten, von denen jedes an die Anlage über eine Bedienungsanforderungsleitung angeschlossen ist,
dadurch gekennzeichnet, daß ein Datenprozessor in der Anlage eine Prioritätsbestimmungseinrichtung aufweist,
an die die Bedienungsanforderungsleitungen herangeführt sind; und daß die Prioritätsbestimmungseinrichtung einen
Speicher zum Speichern von Signalgruppen umfaßt, wobei jede Gruppe ein Peripheriegerät repräsentiert, und wobei
die Prioritätsbestimmungseinrichtung eine Holeinrichtung zur Herbeischaffung der Signalgruppen aufweist, welche
die Signalgruppen mit gleichlaufenden Signalen auf allen Bedienungsanforderungsleitungen logisch verknüpft, wobei
die Signalgruppen in Sequenz von der höchsten Priorität bis zur niedrigsten Priorität herbeigeschafft werden.
2. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß ein erster Speicher vorgesehen ist; daß eine Funktionseinheit zur Ausführung von logischen Operationen an Daten
vorgesehen ist, daß ein Mikrobefehlsspeicher an die Funktionseinheit (20) angeschlossen ist und Mikrobefehle zur
Steuerung der Datenübertragungen zu und aus der Funktionseinheit enthält; daß eine Mikrobefehls-Holeinrichtung mit
dem Mikrobefehlsspeicher zum Holen einzelner Mikrobefehle verbunden ist; daß die Prioritätsbestimmungs-Einrichtung
mit dem ersten Speicher gekoppelt ist und Signalgruppen aus dem ersten Speicher zur logischen Verknüpfung mit den
Bedienungs-Anforderungssignalen auf den Bedienungsanforderungsleitungen empfängt.
609828/0495
irch qekenn-
3. Einrichtung nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß ein Steuerspeicher an die Funktionseinheit
angeschlossen ist und Steuerbefehle zum Steuern der Datenübertragungen von und zu der Funktionseinheit
enthält, daß eine Steuerbefehls-Holeinrichtung an die Mikrobefehls-Holeinrichtung und den Steuerspeicher zur
Beschaffung einzelner Steuerbefehle in Abhängigkeit von
Mikrobefehlen angeschlossen ist; und daß eine Signal-Holeinrichtung an den ersten Speicher,den Steuerspeicher
und die Prioritätsbestiiranungseinrichtung angeschlossen ist,
und das Holen von Signalgruppen in Sequenz gemäß ihrer Priorität, beginnend mit der höchsten Priorität unter
Steuerung eines Steuerbefehls erlaubt.
4. Einrichtung nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß die Prioritäts-Bestimmungseinrichtung
an die Punktionseinheit angeschlossen ist, die die logische Verknüpfung ausführt.
5. Einrichtung nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß eine weitere Einrichtung an die
Signalholeinrichtung angeschlossen ist und das Holen anhält, wenn eine der Signalgruppen bei der logischen Kombination
mit den Signalen, die eine Bedienungsanforderung für ein Peripheriegerät anzeigen, ein vorbestimtntes Ergebnis
liefert.
6. Einrichtung nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß an das eine Bedienung anfordernde
Peripherie-Gerät eine weitere Einrichtung angeschlossen ist, die den Datenverkehr mit dem Prozessor steuert.
7. Einrichtung nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß der Prozessor UND-Gatter aufweist,
die an ihrem Eingang die Signalgruppen sowie die eine Bedienungsanforderung repräsentierenden Signale aufnehmen
.
609828/0495
8. Einrichtung nach Anspruch 7, dadurch gekennzeichnet, daß die Datenübertragung zum Prozessor in Abhängigkeit
von Signalen stattfindet, die von den Ausgängen der Gatter geliefert werden.
6098 28/0495
Leerseite
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB51275A GB1468642A (en) | 1975-01-07 | 1975-01-07 | Data processing systems |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2543522A1 true DE2543522A1 (de) | 1976-07-08 |
DE2543522C2 DE2543522C2 (de) | 1986-02-27 |
Family
ID=9705666
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2543522A Expired DE2543522C2 (de) | 1975-01-07 | 1975-09-30 | Mikroprogrammierbare Datenverarbeitungseinrichtung |
Country Status (8)
Country | Link |
---|---|
US (1) | US4005391A (de) |
JP (1) | JPS5811654B2 (de) |
BE (1) | BE834072A (de) |
CA (1) | CA1036713A (de) |
DE (1) | DE2543522C2 (de) |
FR (1) | FR2297457A1 (de) |
GB (1) | GB1468642A (de) |
IN (1) | IN142073B (de) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IT1123613B (it) * | 1976-10-07 | 1986-04-30 | Sits Soc It Telecom Siemens | Unita' di controllo a microprogrammi per elaboratori di dati |
US4161026A (en) * | 1977-11-22 | 1979-07-10 | Honeywell Information Systems Inc. | Hardware controlled transfers to microprogram control apparatus and return via microinstruction restart codes |
JPS5523501A (en) * | 1978-06-29 | 1980-02-20 | Fujitsu Ltd | Shift operation unit |
US4271467A (en) * | 1979-01-02 | 1981-06-02 | Honeywell Information Systems Inc. | I/O Priority resolver |
JPS55134721A (en) * | 1979-04-06 | 1980-10-20 | Hitachi Ltd | Electronic engine controlling method |
JPS55137358A (en) * | 1979-04-16 | 1980-10-27 | Nissan Motor Co Ltd | Controller for automobile |
US4449183A (en) * | 1979-07-09 | 1984-05-15 | Digital Equipment Corporation | Arbitration scheme for a multiported shared functional device for use in multiprocessing systems |
JPS5638542A (en) * | 1979-09-05 | 1981-04-13 | Hitachi Ltd | Controlling method for engine |
US4349873A (en) * | 1980-04-02 | 1982-09-14 | Motorola, Inc. | Microprocessor interrupt processing |
US4382284A (en) * | 1981-04-15 | 1983-05-03 | Honeywell Inc. | Command and residual priority control of loads |
US4814974A (en) * | 1982-07-02 | 1989-03-21 | American Telephone And Telegraph Company, At&T Bell Laboratories | Programmable memory-based arbitration system for implementing fixed and flexible priority arrangements |
JPS6030944U (ja) * | 1983-08-05 | 1985-03-02 | 四変テック株式会社 | 給湯装置 |
JPS60105044A (ja) * | 1983-11-11 | 1985-06-10 | Fujitsu Ltd | マイクロプログラム制御方式 |
US4766533A (en) * | 1984-03-09 | 1988-08-23 | The United States Of America As Represented By The United States National Aeronautics And Space Administration | Nanosequencer digital logic controller |
US5062036A (en) * | 1985-06-10 | 1991-10-29 | Wang Laboratories, Inc. | Instruction prefetcher |
US4773852A (en) * | 1985-06-11 | 1988-09-27 | Denki Kagaku Kogyo Kabushiki Kaisha | Pyrolytic boron nitride crucible and method for producing the same |
KR0136594B1 (ko) * | 1988-09-30 | 1998-10-01 | 미다 가쓰시게 | 단일칩 마이크로 컴퓨터 |
US5319753A (en) * | 1992-09-29 | 1994-06-07 | Zilog, Inc. | Queued interrupt mechanism with supplementary command/status/message information |
US5544318A (en) * | 1993-04-16 | 1996-08-06 | Accom, Inc., | Asynchronous media server request processing system for servicing reprioritizing request from a client determines whether or not to delay executing said reprioritizing request |
EP0735472A3 (de) * | 1995-03-31 | 2000-01-19 | Sun Microsystems, Inc. | Verfahren und Gerät für Verschwörung zwischen Objekten |
US5819021A (en) * | 1995-12-11 | 1998-10-06 | Ab Initio Software Corporation | Overpartitioning system and method for increasing checkpoints in component-based parallel applications |
FR2793572B1 (fr) * | 1999-05-10 | 2001-10-05 | Cit Alcatel | Procede et dispositif pour commander l'ordre de depart d'informations ou d'objets stockes temporairement |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2249996A1 (de) * | 1972-10-12 | 1974-04-25 | Licentia Gmbh | Anordnung zur prioritaetsgerechten steuerung einer mehrzahl von zugriffswuenschen in einem datenverarbeitungssystem |
DE2358545A1 (de) * | 1972-11-29 | 1974-06-06 | Honeywell Inf Systems | Datenverarbeitungssystem mit dynamisch veraenderlichem vorrangzugriffssystem |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3434111A (en) * | 1966-06-29 | 1969-03-18 | Electronic Associates | Program interrupt system |
US3599162A (en) * | 1969-04-22 | 1971-08-10 | Comcet Inc | Priority tabling and processing of interrupts |
US3836889A (en) * | 1973-03-23 | 1974-09-17 | Digital Equipment Corp | Priority interruption circuits for digital computer systems |
-
1975
- 1975-01-07 GB GB51275A patent/GB1468642A/en not_active Expired
- 1975-06-06 US US05/584,359 patent/US4005391A/en not_active Expired - Lifetime
- 1975-08-04 IN IN1530/CAL/75A patent/IN142073B/en unknown
- 1975-09-09 CA CA235,104A patent/CA1036713A/en not_active Expired
- 1975-09-25 FR FR7529420A patent/FR2297457A1/fr active Granted
- 1975-09-30 DE DE2543522A patent/DE2543522C2/de not_active Expired
- 1975-09-30 JP JP50119331A patent/JPS5811654B2/ja not_active Expired
- 1975-10-01 BE BE160588A patent/BE834072A/xx not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2249996A1 (de) * | 1972-10-12 | 1974-04-25 | Licentia Gmbh | Anordnung zur prioritaetsgerechten steuerung einer mehrzahl von zugriffswuenschen in einem datenverarbeitungssystem |
DE2358545A1 (de) * | 1972-11-29 | 1974-06-06 | Honeywell Inf Systems | Datenverarbeitungssystem mit dynamisch veraenderlichem vorrangzugriffssystem |
Non-Patent Citations (1)
Title |
---|
In Betracht gezogenes älteres Patent: DE-PS 24 24 810 * |
Also Published As
Publication number | Publication date |
---|---|
DE2543522C2 (de) | 1986-02-27 |
FR2297457B1 (de) | 1982-07-02 |
FR2297457A1 (fr) | 1976-08-06 |
IN142073B (de) | 1977-05-28 |
US4005391A (en) | 1977-01-25 |
GB1468642A (en) | 1977-03-30 |
JPS5180734A (de) | 1976-07-14 |
BE834072A (fr) | 1976-02-02 |
JPS5811654B2 (ja) | 1983-03-04 |
CA1036713A (en) | 1978-08-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2543522A1 (de) | Einrichtung in einem mikroprogramm- prozessor mit mehreren ebenen von unterbefehlsgruppen zur bedienung von peripherie-geraeten auf vorrang-basis | |
DE2424931C2 (de) | Mikroprogrammierbare Datenverarbeitungsanlage | |
DE1774296C2 (de) | Restruktuierbare Steuereinheit für elektronische Digitalrechner | |
DE2424810C2 (de) | Mikroprogrammierbare Datenverarbeitungsanlage | |
DE2113890C2 (de) | Zentrale Verarbeitungseinrichtung für Datenverarbeitungsanlagen | |
DE2835095C2 (de) | Digitale Rechenanlage mit einem ersten und mindestens einem zweiten miteinander koppelbaren mikroprogrammierten Prozessoren | |
DE2907181C2 (de) | Prozessor mit einem Befehlssatz-Modifizierregister | |
DE2714805C2 (de) | ||
DE2847934A1 (de) | Datenverarbeitungseinrichtung mit einem mikrobefehlsspeicher | |
DE1499200B2 (de) | Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung | |
DE2715073C3 (de) | Mikroprogrammierte Rechner-Steuervorrichtung | |
DE2411963B2 (de) | Datenverarbeitungsanlage | |
DE2540975A1 (de) | Multi-mikro-prozessor-einheit | |
DE2230102A1 (de) | Rechenwerk fuer variable wortlaengen | |
DE2318069A1 (de) | Rechnersteuersystem unter verwendung von mikroprogrammierung und statisch/dynamischer erweiterung von steuerfunktionen mittels festverdrahteter logischer matrix | |
DE2054947A1 (de) | Adressenvorbereitungseinnchtung und verfahren und Speicherzugnffan forderungseinnchtung fur ein Infor mationsver arbeitungssystem | |
DE1806535B2 (de) | Seriell arbeitende digitale rechenanlage | |
DE2336676C3 (de) | Einrichtung zur Modifizierung von Mikroprogrammbefehlen | |
DE2617127A1 (de) | Mehrfachprogramm-datenverarbeitungssystem | |
EP0120194A2 (de) | Speicherprogrammierbare Steuerung mit Wort- und Bitprozessor | |
DE2725614C2 (de) | ||
DE2702722A1 (de) | Instruktionsinterpretation in elektronischen datenverarbeitungsanlagen | |
DE1499224C3 (de) | Datenverarbeitungsanlage mit Kellerspeichereinrichtungen | |
DE3344340A1 (de) | Datenprozessor mit einem steuerteil, der einen adressgenerator zum erzeugen von adressen enthaelt, die aus charakteristischen adressteilen zusammengesetzt sind | |
DE4010895A1 (de) | Mikroprozessor mit befehlsdecodiereinrichtung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
8128 | New person/name/address of the agent |
Representative=s name: EISENFUEHR, G., DIPL.-ING. SPEISER, D., DIPL.-ING. |
|
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |