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-basis

Info

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
Application number
DE19752543522
Other languages
English (en)
Other versions
DE2543522C2 (de
Inventor
Alastair George Macpherson
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Unisys Corp
Original Assignee
Burroughs Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Burroughs Corp filed Critical Burroughs Corp
Publication of DE2543522A1 publication Critical patent/DE2543522A1/de
Application granted granted Critical
Publication of DE2543522C2 publication Critical patent/DE2543522C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • G06F13/26Handling 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.
Einzelheiten des Systems
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)

Ansprüche
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
DE2543522A 1975-01-07 1975-09-30 Mikroprogrammierbare Datenverarbeitungseinrichtung Expired DE2543522C2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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