DE2756762A1 - Verfahren und anordnung zum zugriff zu beliebigen bitfeldern im hauptspeicher einer datenverarbeitungsanlage - Google Patents

Verfahren und anordnung zum zugriff zu beliebigen bitfeldern im hauptspeicher einer datenverarbeitungsanlage

Info

Publication number
DE2756762A1
DE2756762A1 DE19772756762 DE2756762A DE2756762A1 DE 2756762 A1 DE2756762 A1 DE 2756762A1 DE 19772756762 DE19772756762 DE 19772756762 DE 2756762 A DE2756762 A DE 2756762A DE 2756762 A1 DE2756762 A1 DE 2756762A1
Authority
DE
Germany
Prior art keywords
register
address
bit
bit field
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE19772756762
Other languages
English (en)
Inventor
Michael Ian Davis
Robert Allen Hood
Gary Wayne Mayes
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE2756762A1 publication Critical patent/DE2756762A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/04Addressing variable-length words or parts of words

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Memory System (AREA)
  • Storage Device Security (AREA)

Description

Anmelderin: International Business Machines Corporation, Armonk, N.Y. 1050M
te-bz
Verfahren und Anordnung zum Zugriff zu beliebigen Bitfeldern im Hauptspeicher einer Datenverarbeitungsanlage.
Die Erfindung betrifft ein Verfahren und eine Anordnung zum Zugriff zu beliebigen Bitfeldern im Hauptspeicher einer Datenverarbeitungsanlage, wobei die Grenzen der Bitfelder unabhängig von der adressierbaren Struktur des Hauptspeichers wählbar sind.
In bekannten Datenverarbeitungssystemen wird der Inhalt des Hauptspeichers zur Adressierung in kleine Bitgr-ippen unterteilt. Diese Gruppen oder Dateneinheiten können z.B. Bytes (8 Bits zur Darstellung je eines Zeichens) oder Wörter aus je zwei Bytes sein. Wichtig ist die Feststellung, dass die ganze Speicheradresseinrichtung nur Information an der Grenze einer adressierbaren Einheit ansteuern kann, und dass Daten vom Hauptspeicher als einfache oder mehrfache Dateneinheiten abgerufen oder dorthin gespeichert werden.
Benutzer oder Programmierer herkömmlicher Datenverarbeitungssysteme müssen besondere Vorkehrungen treffen, wenn sie versuchen, mit Hauptspeicheroperanden zu arbeiten, die nicht auf die Grenzen der adressierbaren Einheiten ausgerichtet sind oder nicht dieselbe Grosse wie eine Einheit oder ein ganzes Vielfaches davon haben.
In der Vergangenheit gehörte zum Abruf, d.h. zum Lesen, eines beliebigen Bitfeldes das Laden des Wortes oder Bytes (oder mehrerer Wörter bzw. Bytes), die das gewünschte Bitfeld enthielten, in ein Register, und dann wurde das betreffende Bitfeld mit zwei Verschiebungen oder dergleichen isoliert und ausgerichtet. Die Emulations- und
809821/0746
£> - ?- -iC9-'6-022
Interpretationstechniken machen hiervon starken Cebrauch. Die
umgekehrte Operation, d.h. das Speichern eines beliebigen Bitfeldes, verlangte bisher eine dermassen extensive Manipulation, dass die Daten im Speicher oft nicht gepackt waren, wenn sie hinterher nochmals in beliebiger Reihenfolge benutzt werden mussten (und daraus ergab sich eine Verringerung des Wirkungsgrades des Speichers).
Der Stand der Technik beschreibt bisher Teillösungen dieses Problems insofern, als Einrichtungen beschrieben werden, durch die der Anfang eines nicht ausgerichteten Operanden angesteuert werden kann. In der bisherigen Technik werden jedoch Situationen behandelt, in denen der Operand Hon Anfang der nächsten adressierbaren Einheit nicht überlappt. Das bedeutet, dass alle direkt zugänglichen, nicht ausgerichteten Operanden vollständig innerhalb einer Adressiereinheit liegen müssen. Obgleich die Belastung des Benutzers geringer wird, weil der Programmierer weniger mit der Spezialadressierung von Bitfeldern belastet ist, wird das Problem dadurch doch nicht völlig gelöst. Im Gequnsatz zur vorliegenden Erfindung gestattet die Technik bisher nicht die vollständig freie Adressierung beliebiger nicht ausgerichteter Bitfelder unterschiedlicher Länge ohne Rücksicht auf Grenzen von Adressiereinheiten im System.
Der Erfindung liegt die Aufgabe zugrunde, die oben aufgezeigten Schwierigkeiten zu überwinden und eine leichte Handhabung nicht ausgerichteter Bitfelder unterschiedlicher Länge mit einem einzelnen Maschinenbefehl zu bewirken. Dadurch soll eine Speicheroptimierung für Daten möglich werden, die als Bitfelder beliebiger Länge (bis zu einer vorgegebenen Höchstlänge) vorliegen, ohne dass Bytegrenzen oder Wortgrenzen berücksichtigt zu werden brauchen.
Der Gegenstand der Erfindung ist in den Patentansprüchen dargestellt. Ein Ausführungsbeispiel der Erfindung ist in den Zeichnungen dargestellt und wird anschliessend näher beschrieben. Es zeigen: Fig. 1 ein Blockdiagramm einer Datenverarbeitungsanlage, in der die vorliegende Erfindung beschrieben wird,
Fig. 2Λ-2Η die Hauptbestandteile und den Datenfluss des bevorzugten Ausführungsbeispiels eines Prozessors einer Datenverarbeitungsanlage gemäss Fig. 1,
Fig. 3 eine Uebersicht zur Darstellung des Zusammenwirkens einiger Funktionseinheiten der beschriebenen DV-Anlagen bei der Bearbeitung von Aufgaben,
809823/0746
Fig. 7
Fig. 8
Fig. 9
Fig. 10& 11
1- -af- hC9- '6-022
Fig. 4 eine Uebersicht des Registerstapels aus Fig. 2 und Fig. 3, Fig. 5 in einem Blockdiagramm die Verbindungen zwischen den verschiedenen Stufenregistern und einer damit zusammenarbeitenden Unterbrechungsbehandlungseinrichtung,
Fig. 6 schematisch die Festspeichersteuerung (ROS-Steuerung) des in Fig. 2 gezeigten Prozessors,
das Format der Mikroprogramminstruktionen, die Taktierungsgrundsignale für die Ausführung des Mikroprogramme s,
eine Uebersicht der verschiedenen Bereiche im Festspeicher (ROS) des beschriebenen Prozessors,
die für einen als Beispiel gezeigten Maschinenbefehl "Direkt Addieren" ausgeführte Mikroprogrammroutine sowie die Taktgrundzyklen für diese Routine, Fig. 12 die Taktierung der Speicherzyklen,
Fig. 13 & 14 Taktierungsdiagranme für die Ausführung der letzten Mikroprogramminstruktion einer Routine zur Maschinenbefehls-Ausführung,
Fig. 15 bestimmte Teile der Steuerschaltung für bedingte Verzweigungen, die im beschriebenen Ausführungsbeispiel benutzt wird,
Fig. 16 das Format von vier neuen Befehlen, welche zur Ausführung der Erfindung in der beschriebenen DV-Anlage vorgesehen sind,
Fig. 17 schematisch die Anordnung mehrerer aufeinanderfolgend gespeicherter Bitfelder variabler Länge, zur Veranschaulichung der Vorgänge bei Durchführung des Befehls "Feld laden und erhöhen", und
Fig. 18 ein Ablaufdiagramm eines Mikroprogramms, das im beschriebenen DV-System für die Ausführung der Erfindung benutzt werden kann.
Gemäss dem Ausführungsbeispiel der Erfindung ist eine Anlage zum Erkennen und Ausführen von vier neuen Befehlen vorgesehen. Drei dieser Befehle sind Ladebefehle, durch die ein bestimmtes Bitfeld vom Speicher in ein angegebenes Register geladen wird. Der vierte Befehl ist ein Speicherbefehl, durch den ein in einem angegebenen Register enthaltenes Bitfeld in den Speicher eingegeben wird. Im Ausführungsbeispiel enthält
80982^/0746
^- l/- I5C9-76-O22
jeder dieser Befehle zusätzlich zum Operationscode:(1.) eine Angabe eines Maschinenregisters, das die Quelle oder der Bestimmungsort des Bitfeldes ist, (2.) eine Angabe eines Registers, das die Speicherbyte-Basisadresse enthält,und (3.) eine Angabe der Länge des Bitfeldes (im Ausführungsbeispit'l ein Wert, der um eins kleiner ist als die tatsächliche Länge des Bitfeldes). Die Bitstelle des Bitfeldanfanges im Speicher erhält man durch Summieren des Inhaltes des Byte-Basisadressregisters und des Inhaltes eines bestimmten vorgegebenen Maschinenregisters (Distanzadressregister), der den Betrag angibt, um den das Bitfeld gegenüber der Basisadresse im Speicher versetzt ist. Im Ausführungsbeispiel sind ausserdem Einrichtungen zur Fortschreibung des Inhaltes des Distanzadressregisters vorgesehen, wenn aufeinanderfolgende Bitfelder mit unterschiedlicher Länge geladen oder abgespeichert werden.
Sonstige Einzelheiten der für das Ausführungsbeispiel gewählten Datenverarbeitungsanlage sind in folgenden deutschen Patentanmeldungen beschrieben: a) P 27 16051.6, b) P 27 18051.4, und c) P 27 19253.6 .
8098 2*7 0746
-/- BC9-76-022
Fig.l zeißt ein Uebersichtsblockdiogrcmrn eines Systems, in dem die voiliegende Erfindung verwendbar ist. Der Prozessor 1 ist das Hauptclcment des Systems und ist im einzelnen in den Fign. 2A bis 2H dargestellt. Er führt Befehle aus und steuert die Signale auf den beiden Houptschniltstellen des Systems, nämlich der Eingabe/Ausgabe-Schnittstelle 2 und der Speicher/ Uebeisetzerschnitistelle 3 .
Mehrere Eingabe/ Ausgabe-Geräte 4-1 bis 4-n sind mit der E/A - Schnittstelle 2 über entsprechende Geräteanschlüsse 5-1 bis 5-n verbunden. Die Geräteanschlüsse 5-1 bis 5-n steuern zusammen mit dem Prozessor die Datenübertragung zwischen dem Prozessor 1 und den E/A- Geräten 4 -1 bis 4 -n.
Die Speicher-Uebersetzer-Schnittstelle 3 koppelt den Prozessor 1 mit einem Hauptspeicher 8 und einem Verschiebungsübersetzer 9 ( Adressübersetzer) Eine Schnittstelle 11 koppelt den Adressübersetzer 9 mit einem asynchronen Speicher 10. Der Hauptspeicher 8 enthält einen inneren Speicherteil 14 ( Innenspeicher ) und einen äusseren Speicherteil 15 ( Aussenspeicher). Eine Schnittstelle 12 koppelt den Prozessor 1 mit dem Hauptspeicher 8, um die Datenübertragung zwischen dem Prozesoor und dem inneren Speicher 14 zu steuern. Eine Schnittstelle 13 koppelt den Hauptspeicher 8 mit dem Adressübersetzer 9, um die Datenübertragung zwischen dem Prozessor 1 und dem äusseren Speicher 15 zu steuern. Eine Bedienkonsole ist mit dem Prozessor über eine Schnittstelle 7 gekoppelt.
80982Ϊ/0746
/ bC9- 76-022
Die Schnittstelle 2 enthalt eine E/A-Adiosssammi;llei(ung , eine E/A-Dateri.r,ammclleifung und führt E/A-Sclinitlstellensteucrsignale, die noch genauer im Zusammenhang mit Fig.2 beschrieben werden. Die Schnittstelle 3 enlha.lt eine Hauplspeictiersummelleitung und Steuersignalsammei leitungen zwischen Prozessor und Uebeisetzer. Die Schnittstellen 12 b/.w. 13 sind der Wog für die Innenrpeichersteuersignale und die Aussenspeichersteuersignole wahrend der Dalenübertragungeo. Die Schnittstelle enthüll eine Datenausgangssammelleitung und eine Dateneingangssammelleiluiig zusammen mit Schnittstellensteuersignalleitungen. Soweit diese Schniltstellen mit der votliegenden Erfindung zu tun haben, werden sie nachfolgend beschrieben. Datenfluss im Pro7.essor(Fig. 2A bis 2H)
Der Prozessor enthalt ein Rechenwerk (ALU) 51 (Fig. 2E) konventioneller Bauweise. Ein Paar Eingangsregister ist für das Rechenweik 51 vorgesehen, und zwar das WA-Register 52 und das Y-Registcr 53, und diese Register sind über die Sammelleitungen 54 und 55 mit dem Rechenweik 51 verbunden. Das Rechenwerk 51 hat eine Ausgangssammelleifung 56, die mit der Prozessorsammei leitung 57 über das UND-Glied 53 verbunden ist. Die Prozessorsammelleitung 57 ist an die Register 52 und 53 durch die UND-Glieder 60 und 61 gekoppelt zur Lieferung der Eingabedaten an das Rechenweik 51.
Die Prozessorsammelleitung 57 wirkt als Hauptdatensammelleitung für Quellen und Bestimmungsdaten. Daher ist jede als Quelle wirkende Funktionseinheit des Prozessors mit der Piozessorsammelleitung 57 über ein UND-Glied verbunden und jede Funktionseinheit des Prozessors 1, die Be-Stimmung scinheit ( Empfcingseinheit) sein kann, ist mit der Prozessorsammclleitung über ein, onderes UND-Glied verbunden. Die meisten Funktions -
80982^/0746
- /- flC9-76-O2k
einlieitf.n des Systems wirken sowohl als Quelle wie auch als Bestimmung für Daten und sind dnhcr mit der ProzessoiSammelleitung 57 durch Quellen-UN D- Glieder und duich Bestimmungs-UND-Gliedcr verbunden.
Die Prozcssoreiisamrnellcitung 57 ist an ein Z-Rcgister 65 angeschlossen über ein Bestimmungs-UND-Glied 66 und ein Quellen-UND-Glied 67, an- ein Prozessoispeicheidafenregister 70 über ein Bestimmungs-UND-Glicd 71 und ein Quellen-UND-Glied 72, an einen Zähler 75 durch ein Bestimmungs-UND-Glied 76 und ein Quellen-UND-Glied 77, an einen l'egisterstnpcl 80 durch ein Bestimmungs-UND-Glied 81 und ein Quellen-UND-Glied 82, an ein Adressschlüsselregister 85 durch ein Bestimmungs-UNO-Glied 86 und ein Quellen-UND-Glied 87, an ein Stuienstatusregister 90 durch ein Bestimmungs-UND-Glied 91 und ein Quellen-UND-Glied 92 und an ein Prozessorsspeicheradressregister 95 durch ein Bestimmungs-UND-Glied 96 und ein Quellen UND-Glied 97.
Die Prozessorsammelleitung 57 ist an die Konsole 6 (Fig. 2A) angeschlossen durch ein Quellen-UND-Glied 100 und eine Schnittstellensammelleitung 7a. Daten werden von der Prozessorsammelleitung 57 an die Konsole gerichtet über das UND-Glied 66, das Z-Register 65 und die Schnittstellensammelleitung 7b. Ein Operationsregister 101 (Fig.2F) ist an die Prozcssorsammclleitung 57 angeschlossen über Quellen-UND-Glied 102. Operationscode werden im OP-Register 101 vom Prozessorspcicherdatemegisler 70 über ein UND-Glied 103 gespeichert. Ein Stapeladressregisler ( Fig. 2G) iit mit der Prozessorsammelleitung 57 über ein Bestimmungs-UND-
80982^/0746
BC9-76-022
Ma
Glied 10ό verbunden.Ein Adreßregister 107 für den aktiven ( laufenden) Befehl ist mit der Piozessorsommelleitung 57 über ein Quellen-UND-Glied
109 verbunden. Der Eingang des Registers 107 wird auf den Ausgang des Registcrstapels BO durch eine Sammelleitung 108 gekoppelt. Eine Speicherschutzanoidmmg 1 10 (fiy. 2H) isl mit der PiO/.tissorssaiiirm;! leitung 57 durch das Bestimmungs-UND-Glied 111 und das Qucllc-n-UND" Glied 112 vribunden.
Ein Programmstatuswortregister (PSW-Rcgistcr) 1 15 ist nii! '.·- i'ein Ausgang 1 16 an die Piozcssoisammelleitung 57 angeschlossen über ein UND-Glied 117. Die Eingangssignale zum Register 115 kommen von verschiedenen Systernprüfeingangsleitungen 120, von einem Schlüsselvergleichsregister 121 und von einer Speicherprüfbedingungssammelleitung 136.
Eingangssignal zum Schlüssel Vergleichsregister 121 worden vom Speicher-Schutzregister 110 über die Ausgangssammelleilung 125 der Einrichtung
110 und von einer Schlüsselwahl-Logikschaltung 126 über eine Sammelleitung 127 geliefert. Der Ausgang 128 vom Register 85 ist auf einen Eingang der Schaltung 126 gekoppelt, deren zweiter Eingang 129 von den Cycle-Steal-Schutzkippgliedern 130 ( Fig. 2D) kommt. Die Eingangssammelleilung 129 von den Kippgliedern 130 istauch mit dem Register 90 gekoppelt.
Den Ausgang der Schlüsbelwahl-Logikschali .ng 126 wird auch auf den Hauptspeicher 8 und den Adressübersetzer 9 durch die Ausgangssarnmel leitung gekoppelt, die einen Teil der Schnittstelle 3 zwischen Speicher und Uebersetzer bildet.
Die Schnittstelle 3 enthält auch eine Synchronisationssammclleitung 135 ( Fig. 2H), eine Piüfbedingungssammelleiturig 136, eine Adrcsssammel lei lung
80982V0746
-j/- BCy-76-022
/13
und die Eingabe- und Ausgabesammelleitungen 138 und 139. Der Ausgang 140 des Prozessoren;icheradrcssrogister 95 ist über das UND-Glied 141 mir der Adressrarnmelleilung 137 gekoppelt. Das Cycle-Srcal-Speicheradressrngister 14/1 ist mit seinem Ausgang 143 über das UND-Glied 144 an die Adrewsammelleitung 137 angeschlossen.
Der Eingang eines Null-Detektors 150 (Fig. 2C) ist mil der Prozessorsarnmelleitung 57 gekoppelt und der Ausgang 151 mit der Steuerschaltung 152 für bedingte Verzweigungen ( Fig. 2A). Der Ausgang 151 des Null-Detektors 150 ist ausserdem mit dem Eingang einer Ergebnisanzeigeschaltung 153 (Fig. 2G) verbunden. Ein zweites Eingangssignal 154 zur Ergebnisanzeigeschaltung 153 wird abgeleitet von einem Ausgangssignal des Prozessors 51. Die Prozessor — Sammelleitung 57 bildet auch einen Eingang zur bedingten Verzweigungs — schaltung 152.
Der Ausgang 160 des Zählers 75 (Fig. 2F) liefert Eingangssignale zu einem Anhalte- E/A- Decodierer 161 und zu den Cycle-Steal-Speicheradressregistern 142. Der Ausgang 162 des Decodieren 161 ist mit einer SchnittstellensSeuerschaltung 239 ( Fig. 2D) verbunden. Die Eingangsdatensammellcitung 138 vom Hauptspeicher ist mit dem Prozcssorspeicherdateniegister 70 ( Fig. 2E) über ein UND-Glied 165 und mit dem Cycle-Steal-Speichcrdatenrcgisrer 166 über ein UND-Glied 167 verbunden. Der Ausgang 168 vom Prozessors Speicherdatenregister 70 ist mit der Ausgangsdatensammelleitung 139 zum Haupt speicher verbunden über ein UND-Glied 169. Das Register 166 ist über ein UND-Glied 170 mit der Sammelleitung 139 gekoppelt. Die Ausgänge der Register 70 und 166 sind ebenfalls mit der Speicherparitätsprüfschaltung
80982^/0746
- Jto - BC9-76-022
Ak
(F ig. 2F) veibunden. Die Piüfschal tung 171 liefert Pari teils bits auf die Ausgurig:doterisariiincl Initung 139, wenn kein Paritcitsfcliler vorliegt, und sie gibt ein Ausgang«ignuI auf die Leitung 173, wenn ein Speicrierparilüisfehler eikannt wird.
Ein Maskenregisler 175 (Fig. ?A) ist mit der Prozessoisammel leitung 57 ( Bits 12, 13) über die Eingang,-und Ausgangstore 1 76 und 177 verbunden.
Der Ausgang 173 des Maskenregislers 175 ist auch mit einem Aklivstufeniegister 181 über die Treiberschaltungen 130 und eine Sammel leitung 182a verbunden.
Ein Voiwahlstufenregister 185 ist mit der Prozessorsammelleitung 57 ( BiIs 14,15) über den Eingang gekoppelt. Ein Ausgang 185a des Registers 185 ist mil dem Stapel·· Adressregister 105 ( Fig. 2G) über eine Toischaltung 185b verbunden. Der Ausgang 185a ist ausseidem mil dem Aktivstufenregisler 181 über die Decodiei— schaltung 190 und den Aus gang 191 der Decodierschallung 190 verbi-nlm. Der Ausgang 192 des Aktivstufenregisters 181 ist mit dem Fcsbpeicher-Adressregisler (ROSAR) 193 ( Fig. 2B) einer Mikroprogrammsteuerung 200 des Prozessois verbunden. Der Ausgang 181a des Registers 181 ist rnil dem Stapel-Adressregister 105 über eine Torschaltung 181b verbunden,, wobei durch den Codierer 181c eine Reduzierung von vier auf zwei Bits erfolgt.
Die Mikroprogrammsteuerung 200 enthält einen Festspeichci (ROS) 201, der mit der Prozessorsammelleitung 57 über ein ROS-Ausgabcdatenregister 202 und ein Quellen-UND-Glied 203 verbunden isl. Ein zweiter Ausgang 204 des ROS-Ausgabedatenregisters 202 ist mit einer Quellen-Decodiersduiltung 205, einer ßestimrnungs-DecD dierschaltung 206, einer Speichcisteuer-Decodicr -
80982^/0746
- 1Λ - BC9-76-022
AS
schal lung 207, einer Rechuriwcik-FunkMons-Decodierschallung 203, weiteren Sleueidecodieischaltungcn 209 und dem Festspeicher-Adressregister (ROSAU) 193 verbunden.
Die Adresse für den Festspeicher ROS 201 wird van ROSAR 193 über die Sammelleitung 212 /u einer Adieisdecodierschaltung 213 gegeben. Die Eingänge eines ersten Veibindungsregisters 210 und eines zweiten Verbindungsregister 211 sind mit dem ROSAR 193 über die Sammolleitung 212 gekoppelt. Diese Register haben Ausgänge 214,215. Das Prozessorspeicheidatenregister 70 (Fig. 2E) bildet einen v/eiteren Eingang zum ROSAU 193 über die Sammelleitung 73. Die bedingte Verzweigungsschaltung 152 bildet einen Eingang zum ROSAR 193 über die Sammelleitung 216.
Die Quellen-Decodierschaltung 205 enthält die Ausgangsquellensteuerleitungen 231, über die iiie verschiedenen Quellen-UND-Glieder ( wie das UND-Glied 102) für den Zugriff zu Quellendaten gesteuert werden. Der Bestimmungsdecodierer 20ό enlhält Ausgangsbestimmungssteuerleitungen 232, die verschiedene Bestimmungs-UND-Glieder ( wie das UND-Glied 76) zur Weitergabe von Bestimmungs-Daten an die richtigen Register oder andere Funktionseinheiten steuern. Die Rechenwerk-Funktions-Decodierschaltung 208 enthält Rechenwerk-Funktionssteuerleitungen 233, über die die verschiedenen Funktionen des Rechenwerks währenc der Prozessor zyklon gesteuert werden. Die Bestirnmungssteuerungen, Quellensteuerungen und Rechenwerk-Funktionssteuerungen werden nachfolgend noch insoweit genauer beschrieben, als sie mit der Erfindung der vorliegenden Anmeldung zu tun haben.
B0982|/0746
ί y-76-022
Die Speiclierstf-ufi-DecodieiT-cliultung 207 hat einen Ausgang 235, del mit einer Speicherstt'ijuischaltuny 236 verbunden ist, die einen zweiten f.ingang aufweist.dei mit der Decodicischoltung 209 verbunden ist, und einen dritten Eingang 238 von der KanaUchnittstellensfeuerschal rung 239 (Fig. 2D). Die Sammelleitung 230 ist in beiden Richtungen benutzbar ( Zwcirichfungs-Leitung) und wird während di-r Datenübertragungen zwischen den E/A"Geräten 4-1 bis 4-10 und dein Prozessor 1 benutzt. Die Schnittstellensammelleiturig 12 und die Synchronisationssurnmelleitung 135 sind beide mit der Speichcrsteuerschaliuiig 236 gekoppelt.
Die Decodicrschalhingen 209 haben einen Statussteucrausgang 240, einen Abtaslunterbrechung;- Anforderungsausgang 241 und einen Fehleranzeigeausgang 242. Ausserdem ist ein Ausgang 243 von den Decodierschaltungen mit den Taktsteuerschal tungen 245 (Fig. 2C) gekoppelt. Ein Kristalloszillator 246 liefert Signale an einen Frequenzteiler 247, der seinerseits mit dem Eingang der Taktsteucrung 245 gekoppelt ist und die Taktimpulse für den Dalenfluss und die Steuerungen des Prozessors 1 liefert. Diese Taktimpulse für den Datenfluss und die Steuerungen des Prozessors werden über die Ausgangsleitungcn 248-1 bis 248-n der Taktsteuerschaltung 245 geliefert. Die Synchronisationssamrnelleitung 135 ist mit der Taktsteuerschaltung 245 gekoppelt. Sie ist eine Zweirichtungs-Uebertragungsleitung.
Die Kanalschallungsanordnung 250 (Fig.2A,2D) wird anschliessend im einzelnen beschrieben. Sie enthält mehrere Treiber- und Empfängerschaltungen 251
982^70746
- /4 - BC9-76-022
bis 256, die mit den verschiedenen Einzelleitungen und Scimmelleitungen der E/A-Schnittslellc 2 gekoppelt sind. Der Empfänger 251 ist mit einer Anforderungseingaiigssamrr.ellnitung 261 (Bits 0 bis 3) gekoppelt, der Empfänger 252 mit einer Anforderungsfingangssa minelleitung 262 ( Bit 16). Eine Gruppe von Treiberund Empfängerschaltungen 253 ist mit der Aufrufleitung 263, der Aufruflücklcitung 264 und der Bündelrückleitung 265 verbunden. Die Treiberschaltung 254 ist mit dor Aufiufidentifiziersammelleitung 266 ( Bits 0 bis 4) gekoppelt. Die Treiber- und Empfängerschaltungen 255 sind mit den Leitungen 267-1 bis 267-10 verbunden, bei denen es sich um die Leitungen für das Serviceschaltsignal, das Serviceschalt-Rücksignal, das Adressschaltsignal, das Adresschcilt-Rücksignal, das Datentastsignal, das Anhalte- oder Maschinenfehlersignal, das Systeinrückstellsignal, das Wort/Byte-Anzeigesignal, das Eingangs/Ausgcingsanzeigesignal und die Leitungen für die Bits 0 bis 3 der Cycle-Stenl-Zustandssammelleitung handelt. Die Empfänger 256 sind mit der Bedingungscode-Eingangssammelleitung 268 ( Bits 0 bis 2) verbunden. Die E/A-Schnittstelle 2 enthält auch eine Datensammelleitung 269, eine Adresssammelleitung270 ( Bits 0 bis 15) und eine Adrcsssammelleitung 272 (Bits 16) sowie eine Stromeinschalt-Rückstelleitung 271.
Die Datensummelleitung 269 ist mit dem Eingang einer E/A-Schnittstellen-Paritätsprüf- und Paritätsgeneratorschaltung 275 verbunden. Die Schaltung enthält einen ersten Ausgang 276, der Paritütsbits an die E/A~Schnittstellen-Datensammelleitung 269 liefert, wenn kein Fehler in den von dem E/A-Gerät an den Prozessor 1 übertragenen Daten vorliegt.
809829/0746
- yC - UC9-76-022
Die Schaltung 2/5 enthält einen zweiten Ausgang 777, der ein Signal liefert, wenn ein Paritätsfehlor auf der Dütcnsainmel leitung 269 auftritt. Die DaiensammIleitung 269 ist mit der Piozessoisanimelleilung WI über ein Quellen-UND-Glied 2/8 verbunden. Die Daieiisammellei tunjj ?ό9 ist mir dem Eingang des Cycle - Siecil-Speicheidatenregister 166 über das UND-Glied 280 und mit dem Ausgang dieses Registers über dis UND-Glied 2/9 sowie mit dem Ausgang 55 des Y-Regislers 53 über da: UND-Glied 281 veibunden.
Die Adresssammelleitung 270 ist mit dem Eingang des Cycle-Steal-Speicheradressiegisteis 142 und mit dem Ausgang des Zählers 75 über eine Torschaltung 273 gekoppelt.
Der Ausgang 182b der Empfängerschaltung 251 ist mit einem Eingang des Registers für die aktive Stufe (181) über ein UND-Glied 187c gekoppelt, dessen anderer Eingang der Maskenlreiberausgang 182a ist. Die Treiberund Empfängerschaltungen 252, 253,254 sind mit einer Aufruffolge-Steuerschaiiung 285 gekoppelt. Das Regisler 181 für die aktive Stufe bildet einen weiteren Eingang für die Schaltung 235 über den Ausgang 131a. Eine Anforderungsbestütigungsleitung 286 bildet einen weiteren Eingang zur Aufruffolge-Steuerschaltung 285, die ebenfalls mit der Schnittstellensteuerschaltung 239 über eine Leitung 289 veibunden ist. Eine Steuerschaltung 288 für die Schnittstellen-Folgesteuerung und zur Zeitl imitierung (Abschaltung nach vorgegebener Maximalzeit) ist mit der Aufruffolge-Steuerschciltung über eine Leitung 287 verbunden. Die Stronieinschalt-Rückstellcilung 271 bildet einen weiterer) Eingang für die Steuerschaltung 285.
80982 ty 0746
a ßC9-76-022
Die Leitungen 290-1 bis 290-10 koppeln die Tieiber- und Empfänger schaltungen 255 mil der Schnittstdlensteuerscholtung 239.
Die Piozessorsammelleitung 57 ist 16 Bit breil und dienl zur Informationsübertragung zwischen Quellen- und Bestimmungseinheiten im Datenfluss des Prozessots, die durch Mikroprogrammsteuerung ausgewühlt sind.
Das Operationsregister (OP-REG) 101 ist 16 Bits lang und enthält das erste Befehlswort einsehtiesslich der RegisteradressargumcMte für den Registerstapel 80 während der Befehlsdecodierung. Es wird ausserdem als Datenzwischenregister benutzt, wenn es nicht das erste Befehlswort enthält. Sein Ausgang ist eine der Quellen für die Prozessorsammelbitung 57. Es empfängt seine Daten vom Speicherdateoregister 70.
Das Rechenwetk ist 16 Bit breit und führt arithmetische und logische Funktionen aus nach Vorschrift durch die Befehle. Sein Ausgang 56 ist eine weitere Quelle für die Prozessorsammei leitung 57. Es empfängt seine Eingangsdaten vom WA-Register 52 und vom Y-Register 53.
Das WA-Register 52 ist 16 Bits lang . Es:ist der primäre Eingang für das Rechenwerk 51 für arithmetische und logische Operationen. Es empfängt seine Eingangsdaten als Bestimmungseinheit von der Prozessoisammelleitung 57.
Das Y-Register 53 ist 16 Bits lang. Es ist der Sekundäreingang für das Rechenwerk 51 für arithmetische und logische Operationen. Mit dem WA- Register zusammen übernimmt es die Verschiebung bei Doppelwort-Schiebcoperationen. Es empfängt seine Eingangsdaten als Bestimmungseinheit von der Prozessorsammei-
Β0982Φ/0746
ά bC9-76-022
teilung 57. Dieses Register 53 stellt auch die Duti.'iihahn dai für ausgehende Daten an die L/A--Ou1ensammelleilung 269 für die direkten f/A-Operationen unter Progiammsleucrung.
Das Prozessorspeicherdatenregister (PROZ.-SDR^ 70 ist 16 Üi!s lang, und durch dieses Register weiden alle Daten vom und zum Hauptspeicher ( mit Ausnahme der Cycle-Steal -Daten) übertragen. Des erste Wort eines jeden Befehles, der vom Hauptspeicher 8 geholt wird, wird durch dieses Register 70 in das OP-Register 101 übertrugen. Wahrend anderer Prozessoioperationen dient das Register 70 auch als Datenzwischenspeicher. Es kann daher seine Eingabedaten als Beslimmungseinheit von der Prozessorsammelleitung 57 empfangen, und es gibt Daten als Quelle Ouf diesel PiozessorsammeIleitung 57 aus.
Das Cycle-Steul-Speicherdateriregister (CS-SDR) 166 ist 16 Bits lang, und durch dieses Register werden alle Doten vom und zum Haupt speicher 8 über die E/A-Datensammelleitung 269 und über die Speichereingabe- oder Ausgabesammelleilung bzw. 139 während der Cycle-Steal-Operationen übertragen.
Die acht wertniederen Bits des 16 Bit langen Zählers 75 werden bei Proto kollierung der verschiedenen Prozessoroperati onen als Zähler und auch als vorübergehendes Speicherregister für andere Prozessoroperationen benutzt. Es handelt sich daher um eine Quelle- und Bestimmungseinheit für die Prozessorsammelleitung 57 und wird auch zum Festhalten der Gciätcadressc für die Gerätewahl benutzt. Der E/A-Befehl wird über die Torschaltung 273 an die E/A-Adresssammelleitung 270 wührend der direkten Programmsteuer operationen geleitet.
e0982»/0746
i Cy-76-022
Das Prozessorspeicht rciclressrcgister (PROZ. -SAR) 95 ist ein 16 IUl langer. Register in dem primär die llauptspeiclieradrcsse fcstgchallen wird. Der Inhalt des Registers wird über die Torschaltung 141 an die Speichorciflrosssommolleitung 137 für Speicherzugriffe während der normalen Verarbeitung und der direkten Piogrammstcueropeiationen übertragen. Ausserdem dient dieses Register als Vorübergehendes Speicherdatenregister, wenn es nicht fUr die Adressierung des Hauptspeichers benutzt wird.
Das Cycle -Steal- Speicheradressiegisters (CS-SAR) 142 isf 16 Bits lang und hält die über die E/A-Adresssammelleitung 270 vom E/A- Gerät während der Cycle-Steal-DalenüberhPgungsoperationen übertragene Hauptspeicheradresse. Der Regislerinhaltwird über die Torschaltung 141 an die Speicheradresssammelleitung 137 nur für Speicherzugriffe im Cycle-Steal-Vcrfahren übertragen.
Das 16 Bit lange Z -Register 65 dient hauptsächlich zum Fcsthclten der Daten für die Bedienungsdatenanzeige (nicht dargestellt) der Konsole 6. Es wird ausserdem eis vorübergehendes Speicherregister bei anderen Prozessoroperationen benutzt und ist Quellen - und Besiimmungseinheit für die Prozessorsammelleitung
Der Registerstapel 80 in Fig. 3 ist eine Anordnung monolithischer bistabiler Speicherglieder (Kippglieder) zum Festhalten der Registerinhalte des Stufenstatus, (SSR)(des Adressschlüssels (ASR) und der Befehlsadresse(BAR) für jede der vier Unterbrechungsstufen. Er enthält uusserdem Arbei tsregister, die vom Mikroprogramm benutzt werden, d.h., TEMP, TEMP 1 .... TEMP 3, DBUF,SOA 1,
80982^/0746
- ya - 3C9-76-022
5a
SOA/, sowie k(-i)htci zur Rettur.n (Ab5poichoiunf;j der uhlivn Stufe uirl de:, /Nd rc rs sch I ir. U1I:;, üif.|'ii;ir,idt nach Dcn;lelluiKj in Firj. 3.
Die Register TEMP und TEMP 1 ... TEMP 3 enthalten, vom Mil,ι ορι G;jt'i"im v.ährend der noimalcn Verarbeitung benutzte Kur?zeitdjten. SOA 1 enthält dl·.· manuell eingoci'.'bene Adresse, die für die Adress- Stopopera iioncn zu benutzen iit.
SOA 2 enthält den Konsolenopeicherschlüsscl in den unteien drei BiI^, die überiycn Bits sind Null. Das DBUI'-Register ist der Konsolendcifenpufici .
Der Inhalt dieses Puffers speist die Datenanzeicjer ( nicht dcngestellt ) auf der Konsole 6 . Das Register für die aktive Stufe enthalt die Kennzeichnung der Stufe, die bei Eintritt des Stopzustandcs aktiv war. Dos ASR-Register enthält eine Kopie des Adressschlüsscls der aktiven Stufe.
Die Daten in den Registern SSR, ASR, und BAR des Stapels 80 für die aktive Stufe werden ebenfalls in zugeordneten(als separate Schaltungen ausgebildeten Registern 90, 85, 107 aus Leistungsgründen festgehalten, d.h., um die Anzahl der Stapelzugriffe zu reduzieren. Der Stapel 80 des Aucführungsbeispiels besteht aus zwei Gruppen zu je 64 χ 9 Speicherplätzen in Parallelschaltung zur Bildung einer Speichergiuppe von 64 χ 18 Speicherplätzen.
Das Stapeladressregister 105 ist ein sechs Bit langes Register zur Adressierung des Stapels 80. Die Eingangsdaten zum Register 105 ko.nmcn von einer Addierschaltung 320 über ein Stapelvcrbindungsrcgister 321 und eine Torschaltung 322, vom Register 185 für die vorgewählte Stufe über die Sammelleitung 185a und die Torschaltung 185b, vom Register 181 für die aktive Stufe über die Sammelleitung 181a und die Torschaltung 181b, vom OP-Regisler 101 über die Sammelleitung
80982^/0746
- yf - BC9-76-022
.23
101α und die Torschaltung 101b, und von der Prozessorsrmrncl leitung 57. Das Siapelodiessiegislcr 105 wird von der Prozessorsammei Iei lung 57 über die Torschaltung 106 geladen.
Das separate Stufenstatusregister (SSR) 90 ist ein 16 ßit langes separates Register zum Festhalten des aktiven Stufenslatus. Während der Arbeit auf einer bestimmten Stufe ändert sich der Inhalt des Registers SSR 90 aufgrund arithmetischer und logischer Operationen. Das Aktivstufenregister im Registerstapel 80 bleibt unverändert, bis ein Stufenwechsel erfolgt. Zu diesem Zeitpunkt wird der Inhalt des SSR-Registers 90 in das SSR-Register im Registerstapel 80 der verlassenen Stufe gesetzt, und der neue Stufenstotus vom Registcrstapel 80 wird in das SSR-Registcr 90 gesetzt.
Ein Teil des Inhaltes des SSR-Registers 90 ist folgender : TABELLE 1 Stufenstatusregister Bit Bedeutung
0 Geradeanzeiger
1 Uebertragsanzeiger
2 Ueberlaufanzeiger
3 Anzeiger negatives Ergebnis
4 Anzeiger Null-Ergebnis
8 Ueberwachungszustand
9 In Verarbeitung Zustandssteuerungcn
10 Protokollierung
11 Summenmaske
809821/0746
HC9-76-022
3k
Die Eryebnisanzciger werden von den Programmen für die Entschoidungsfindung benutzt.
Die Anzeige für "Gerade","Uebeitragend "Ueberlauf" werden auch bei E/A-Operationen benutzt, um die an den Prozessor 1 von den E/AGeräten 4-1 bis 4-n gesendeten Bedingungscodes festzuhalten.
Während der Ausführung eines E/A-Befehls werden folgende Bedingungscodewerte den Anzeigern für "Gerade","Uebertrag" und'Ueberlauf" zugeordnet :
TABELLE 2
Bedingungscode Gerade 0 Uebertrag Ueberlauf Bedeutung
0 0 0 0 Gerät nicht angeschlossen
1 0 0 1 Belegt
2 0 1 0 Belegt nach Rückstellung
3 1 1 1 Kommaridozurückweisung
4 ) 0 0 Eingreifen erforderlich
5 1 0 1 Schnitfstel lendatenprüfung
6 1 1 0 Steuerung belegt
7 1 1 Zufriedenstellend
Während der Unterbrechungsannahme werden alle Bedingungscodes durch das
betreffende Gerät abgegeben. Die Anzeiger für "Gerade", "Ueberirag" und "Ueberfauf" erhalten dann folgenden Bedingungscodewerte zugeordnet :
809829/0746
0 0 - >f-
SS
Definitionen der Slufenstatusregisterbits i>C 9-76-022
2756762
TABELLE 3
0 0 Ueberlauf Bedeutung
BedingungscofJe Gerade Ueberirag 0 Steuerung Ende
0 0 1 1 Programmgesteuerte Unter
1 0 1 brechung
1 0 0 Ausnahme
2 1 0 1 Geräteende
3 0 Achtung
4 1 1 1 Achtung und prograinmgesteuei i
5 1 1 Unterbrechung
TABELLE 4 0 Achtung und Ausnahme
ό 1 Achtung und Geräteende
7
Geradeanzeiger ~ auf Eins gesetzt, wenn das wertniedere Bit des Ergebnisses
Null ist, sonst auf Null gesetzt.
Uebertragsanzeiger- auf Eins gesetzt, wenn das Ergebnis von Addjtionen oder
Subtraktionen nicht als Zahl ohne Vorzeichen dargestellt werden kann, sonst auf Null gesetzt.
Ueberlaufanzeiger- auf Eins gesetzt, wenn das Ergebnis einer Rechenoperation
nicht als Zahl mit Vorzeichen dargestellt werden kann, sonst auf Null gesetzt.
809829/0746
- lit -
3C9-76-02
Ueberwachungs-zustand
Negativanzeiger auf Eins gesetzt, wenn Bit Null des Ergebnis Eins ist.
sonst auf Null gesetzt.
Nullanzeigcr - auf Eins gesetzt, wenn das Ergebnis aus lauter Nullen besteh',
sonst auf Null gesetzt.
auf Eins gesetzt, sobald der Prozessor 1 in den Ueberwachuny zustand eintritt. Der Eintritt in den Ueberwachuncjszustand erfolgt wenn :
ein Ueberwachungsaufrufbefehl ausgeführt wird, eine Klassenunterbrechung auftritt^
eine E/A-Unterbrechung angenommen wird
In Verarbeitung - dieses Bit wird ein- oder ausgeschaltet durch das entsprechen Bit im SSR des Speicherstufenstatusblocks (SSB), sobald der Ladebefehl für den Slufenstatusblock (SSB-LD) ausgeführt wire Dieser Befehl lädt einen SSB vom Speicher 3 in den SSB der bezeichneten Stufe im Stapel 80.
dieses Bit wird durch das entsprechende Bit im SSR-Register de Speichers SSB gesetzt oder zurückgestellt,sobald der lokale Stufensfatusblockbefehl ausgeführt ist.SSB-LD lädt einen SSf' vom Speicher 8 in die bezeichnete Stufe SSB im Stapel 30. wenn die Summenmaske gleich Null ist, werden alle Prioritüi Unterbrechungen auf allen Stufen abgeschaltet. Wenn die Maske gleich Eins ist, werden alle Prioritätsunlerbrechungcn auf allen Stufen eingeschaltet. Die Summenmaske wird durch folgende Vorgänge auf Eins gesetzt(eingeschaltet) :
Protokoll -
Summenmaske -
60982^/0746
- rf - 3C9-76-022
3?
Ausführung des Freistil >obefeh!s mil Diί" 10 r;
Systemrückstellung, Rückstellung I -i Slromcin'diCiltung,!!'!.
Ausführung eines SSB-LD-licfehls, wobei BiI 11 des
Speicher - SSR ^ 1
Annahme einer PriorUciteunleiLiciilsung auf de·
unterbrechenden Stufe.
Die Summenmaske wird dutch fclyt-nde Vorg^nyo ouf Null
gesetzt ( abgeschaltet) :
Ausf ührung des Aufrufbefehls für drss Uoberwochungs -
programm (SVC).
Ausführung des Sperrbefehls mit Bii 15 =
Jede Klassen-Unterbrechung : Maschinenfehler Prograrnmfehler Weiche Ausnahmeverzweigung Strom thennowarnung Ueberv/achungsaufruf Protokollierung
Konsole
Ausführung des SSB-LD-Befehls mit Bit 11 des Speicher -
SSR = 0 .
Der Prozessor 1 betrachtet die Zahlen nicht als solche mit oder ohne Vorzeichen, sondern führt die bezeichneten Operationen auf den gegebenen Werten aus. Alle Anzeiger geben dos Ergebnis der Operation wieder. Dadurch kann der Programmierer
80982^/0746
_ y( - BC9-76-022
Ergebnisse des ausgeführlen Opeiatioiistyps überprüfen.
Das Progiorriinslatusvvortregistcir (PSW) 115 ist 16 Bits lang und enthält Fehler- und Ausnahmeinformation, die zu einem Piogrammfchler , einem Maschinenfehler, einer weichen Ausnahmeverzweigung oder zum Auftreten einer Slromlhermowainung führ). Drei Statuskennzeichen sind ebenfalls im PSW-Register 115 enthalten. Das PSW-Register 115 wird über separate Schaltungen und vom Mikroprogramm abgefühlte Bedingungen gesetzt.
8098 2^/0746
2756762
TABELLE
- Weiche Ausnahme - "jii - BC9-76-022
39
5
Bedeutung
Verzweigung Prozessorstaluswort SpezifiUationsprüfung
Bit Ungültige Speicheradresse
0 Vorrecht verletzt
1 Schutzfehler
Programmfehler 2 Ungültige Funktion ( entweder Programmfehlci oder
3 weiche Ausnahme/
4 GI e i tkomma-Aus nähme
Stapelausnahme
5
6
7 Reserviert
8 Speicherparitätsprüfung
Maschinenfehler 9 Reserviert
10 Prozessorsteuerprüfung
η E/A - P rüfung
12 Rcihenfolgeanzeiger
Slatuskennzeichen 13 Auto- IPL
14 Ueberserzer eingeschaltet
Strom/Theimo 15 Strom/Thermowarnung
Das Adressschlüsselregister ( ASR) 85 in Fig. 2G ist ein 16 Bit langes separates Register und enthält während der Verarbeitung auf einer Stufe jeweils den
80982^/0746
Adresschlüssel der aktiven Stufe. Dus ASR-Register 85 liefert den Adressschlüssel, der in der ScI, eil lung 121 mil dein Schlitzschlüssel der Speichoranordnung 110 verglichen wird. Dieser Vergleich wird für jeden Speicherzugriff mit Ausnahme der Cyclc-Steal-Operationen vorgenommen. Das Schlüsselfcld (ISS) des ASR für den ßefehlsadressbereich wird ebenfalls als Konsoladressschlüssel für manuelle Speicherzugriffe von der Konsole 6 aus benutzt.
80982^/0746
- *fl - BC9-76-O22
31
TABELLE 6
Adi esschlüssel register
Bit Bedeutung
O Operandenberei die Gleichsetzung
5 Operand 1 Schlüsselbit 0
6 Operand 1 Schlüsselbit 1
7 Operand 1 Schlüsselbit 2
9 Operand 2 Schlüsselbit 0
10 Operand 2 Schlüsselbit 1
11 Operand 2 Schlüsselbit 2
13 Befehlsbereichschlüsselbit
14 Befehlsbereichschlüsselbit
15 Befehlsbereichschlüsselbit
Das Adressregister für den laufenden (akuten) Befehl (LPAR) 107 (Fig.2G) enhäl» die Adresse des ausgeführten Befehls. Das LBAR-Register 107 wird arn Anfang eines jeden Befehls g eladen, und während der Ausführung wird das Stufen - BAR im Stapel 80 auf die nächste Befehlsadresse fortgeschrieben. Sollte die vollständige Ausführung des laufenden Befehls durch eine Klassenunterbrechung gestoppt werden, wird die Klassenunterbrechung verarbeitet und dann mit dem Inhalt des LBAR-Registers 107 der unterbrochene Befehl wieder adressiert und dann noch einmal ausgeführt.
80982^/0746
- ZU - BC9-76-O22
39.
Die Spei ehe ι schul/anordnung 110 (Fig. 2H) besteht aus 32 Spcicheischlüsse'lregislem ( nicht dargestellt). Die Anordnung wild eingeschaltet, wenn der Speicherschutz eingebaut und freigegeben ist. Jedes Register enthält den Sc hutzschlüssel und ein Nur-Lescbit, um einen 2048 Byte grossen Block des Speichers 8 anzusteuern. Der Speicherschlüssel-Eingabebefehl setzt den Schlüssel und dus Nur-Lesebit in ein bestimmtes Speicheischlüsselregister. Der Spe icherschlüssel-Kopieibefehl liest ein bestimmtes Speicherschlüsselregister aus.
Das Aktiv-Stufeniegisfer 185 ( Fig. 2A) besteht aus einem zwei Bit grossen Register, indem der Anzeiger für die aktive, gegenwärtige v/irksam Stufe festgehalten wird. Das Register 185 wird geladen, sobald die Stufe wechselt. Das Register 185 wird bei der Adressierung des Stufcnstatusblocks im Speicherslapel 80 und auch bei der Entscheidung über eine Unterbrechungsannahme benutzt. Für den letzteren Zweck wird ein Zwei-in-Vier-Bit-Stufendecodierer verwendet. Das Register 185 ist eine Quellcn-und Bestimmungseinheit für die Prozessorsammelleitung 57.
Das Maskenregister 175 ( Fi g. 2A) istein vier Bit langes Register und dient dazu, die Prioritätsunterbrechungen auf den vier Unterbrechungsstufen wie folgt freizugeben oder zu sperren :
TABELLE 7
Bit 0 = 0 Stufe 0 Unterbrechungen gesperrt
Bit 1 - 0 Stufe 1 Unterbrechungen gesperrt
Bit 2 = 0 Stufe 2 Unterbrechungen gesperrt
609821/0746
- Λ - BC9-76-022
Bit 3 = 0 Stufe 3 Unterbrechungen gesperrt
Bit 0 = 1 Stufe 0 Unterbrechungen freigeben
Bit 1 = 1 Stufe 1 Unterbrechungen freigeben
Bit 2 = 1 Stufe 2 Unterbrechungen freigeben
Bit 3 = 1 Stufe 3 Unterbrechungen freigeben
Die Bits im Maskenregister 175 werden durch den Maskenladebefehl gesetzt. Das Register ist eine Quellen - und Bestimmungseinheit für die Prozessor Sammelleitung 57.
Die Maskenregisterausgänge 178 sind ebenfalls mit den Maskentreibern 180 verbunden, so dass die vier Bits des Maskenregisters 175 mit den entsprechenden Prioritäisunterbrechungsanforderungsbits von den E/A-Schnittstellenempfängern 251 und der Sammelleitung 261 UND- verknüpft werden können , um die Unterbrechungsannahme festzulegen.
Ein Kristalloszillator 246 erzeugt eine Taktgrundfrequenz für den Prozessor 1 Ein Frequenzteiler 247 erzeugt die freilaufenden Taktimpulse A,B,C und D nach Darstellung in Fig. 8. Der obere Pegel bezeichnet die logische Eins. Die Impulse dauern 55 Nanosekunden und erscheinen alle 220 Nanosekunden.
Die Taktsteuerungen 245 steuern das Stoppen und Starten der Taktimpulse, verteilen die Taktimpulse auf den Datenfluss und die Steuereinrichtungen und erzeugen bestimmte Spezialtaktimpulse für die Hauptspeichertaktierung. Die geschalteten Taktimpulse haben dieselbe Form wie die oben beschriebenen Impulse A, P>, C und D, können jedoch durch Bedingungen gestoppt und ge -
609821/0746
- pt - BC9-76-022
startet v/erden, die im Mikroprogramm entstehen.
Die Sammclleitungs-Null-Detektorschaltung 150 besteht aw> einer Gruppe von logischen Elementen, die feststellen können , ob der Wert auf der Prozessoisammelleitung Null ist. Ihr Ausgangssignal wird vom Mikroprogiamm bei der Entscheidungsfindung verwendet.
Die Pari töisprüf- und Pari tätsgeneralorschaltung 171 prüft alle vom Hauptspeichers durch den Prozessor empfangenen Bytes auf ungerade Parität, und erzeugt die Parität für alle Bytes, die vom Prozessor 1 an den Hauptspeicher 8 gesendet werden. Das Erkennen eines paritätsfehlers bei einkommenden Daten setzt das Speicherparitätsbit im PSW-Register 115 und löst eine Unterbrechung in der Klasse Maschinenfehler aus. Das Erkennen eines Paritätsfehlers in der Cycle-Steal-Anordnung fürht dazu, dass dem aktiven E/A-Gerät eine Fehletbedingung signalisiert wird.
Die E/A- Schnittstellen- Paritatsprüf- und PariUitsgeneratorschaltung 275 prüft alle über die E/A- Schnitlstellendatensammelleitung 2 empfangenen Bytes auf ungerade Parität. Sie erzeugt die ungerade Parität für alle über die E/A-Schniltslellendatensammelleitung 2 übertragenen Bytes. Wenn auf hereinkommenden Daten ein Paritätsfehler erkannt wird, wird die Fehlerbedingung dem aktiven E/A-Gerät signalisiert.
Der Anhalt-E/A-Decodierer 161 decodiert den Anhalt-E/A-Befehl, der durch den Kanal 250 und nicht durch ein E/A-Gerät ausgeführt wird. Dadurch werden alle E/A-Gerüte 4-1 bis 4-n rückgestellt, die an das Sysiern angeschlossen sind.
80982^/0746
Mit der Schlüsselwahllogik 126 wird einer der drei ASR-Schlüssel im Uegistcr 85 oder der Cyclc-Steol-Sc.hlüssel über die Sammelleitung 129 für den Hauptspcicherzutirifi gewählt. Vv.ihrend der Cycle-Steol-Operationen wird der E/A-Cycle-Steal-Schlüssel an den prozessor 1 auf der Redingungscodegangssammelleitung 268 der E/A-Schnittstelle 2 Ubeitragen. Die Ausgangsdcitcn 127 dieser Schaltunq 1Π6 werden an den Ueberselzer 9 und an die Schlüsselvergleichsschaltung 121 gesendet.
In der Schlüsielvergleichsschaltung 121 wird der gewählte Schlüssel mit dem Speicherschutzschlüssel von der Speicherschutzanordnung 110 verglichen. Bei einer Verletzung wird das Speicherschutzfehlerbit im PSW gesetzt, und es tritt eine Unterbrechung ein.
Die Aufruffolgestcuerung 285 erzeugt das Aufrufsignal auf der Leitung 263 und das Aufrufkennzeichen auf der Sammelleitung 266, und liefert Signale an die Schnittstollonsteuerschaltung 239 für die Service-Durchschaltoperation und an die Steuerschaltung 288 (Schnittstellen-Folgesteuerung· und Zeitlimitierung) für die Fehlerprüfung. Mit dieser Anordnung soll ein Wettbewerb zwischen mehreren Geräten aufgelöst v/erden, die eine Verbindung zur gleichen Quellencinheit im Prozessor anfordern.
Die Schnittstellensteuerschaltung 239 erzeugt die Adresse und die Service-Durchschaltsignale für die Schnittstelle und sorgt für die Auflösung von Konfliktsituationen, registriert Cycle-Steal-Speicherzugriffsfehler zur Präsentation an das Gerät, besorgt die Signalisierung von und zu den Speichersteuerungen, korrigiert die Signale auf den Schnitlstellensarnmelleitungen und steuert den Bedingungscode in den Kippgliedern 130.
B0 98 2V 07 4 6
- yf- BC9-76-022
Die Steuerschaltung 288 für Schnittstellen-Folgesteuerung und Zeiflimitieiung besorgt die Maximalzeitsteuerung für die Reihenfolgefehleiprüfung auf der Schnittstelle 'J1 cnldcckt ungültige Kombinationen von Schnilfstellensignalen und berichtet die Erkennung von Maschinenfehlerbedingungen auf der Schnittstelle an den Prozessor 1.
Die E/A-Schniüstelle 2 verbindet den Prozessor 250 mit den Geiäteanschlüsscn 5-1 bis 5-n . Sie besteht aus den nachfolgeno beschriebenen Elementen.
Die t/A-Dc!lensam,nelleitung 269 ist eine Zweirichtungs-Sammelleitung mit 16 Daten und zwei Paritütsleitungen. Sie dient der Datenübertragung von und zu den C/A-Geröfcii 4-1 bis 4-n während der direkten Programmsteueroperationen und der Cycle-Steal-Oper*; tionpn, und sie dient der Uebertragung der Einheitenadresse und des Unterbrechungsstatus byte an den Prozessor 1 während der Unterbrechungsannahme.
Die E/A-Adresssammelleitung 270 ist eine Zweirichtungs-Sammelleitung mit 16 Leitungen für Geräteadressen für die Gerätewahl und für E/A-Befehle an die E/A-Geräte 4-1 bis 4-n, während der direkten programmgesteuerten Operationen. Sie dient der Uebertragung von Hauptspeicheradressen vom aktiven E/A-Gerät an den Prozessor 1, während der Cycöe-Steal- Operation.
Die E/A Schnittstellensteuersignale auf den Leitungen 267-1 bis 267-10 sind eine Gruppe von Signalen mit denen Bedingungscodes an den Prozessor 1 geleitet, der jeweiligen Zustand an die E/A-Geräte 4-1 bis 4-n gegeben, E/A-Operationen gewählt und gesteuert werden, mit denen Unterbrechungs- und Cycle-Steal-Anforderungen an den Prozessor 1 übertragen, Reihenfolgen für Unterbrechungs-
- /J - BC9- 76-022
3?
und Cycle-Slcal-Operotionen gesteuert werden, mit denen Rückstellungen gesteuert werden, und die die richtige Reihenfolge der direkten Programmsteueroperationen und der Cycle-Steal-Operationen bewirken.
Die Geräteanschlüsse 5-1 bis 5-n steuern die E/A-Geräte 4-1 bis 4-n und schalten sie an die E/A-Schnittstelle an. Ein Anschluss ( wie beispielsweise der Anschluss 5-1) kann mehr als ein E/A-Gerät (z.B. das Gerät 4-1) steuern.
Die Speicher/Uebersetzer-Schnitrstelle 3 enthält eine Hauptspeichersammel leitung. Die besteht aus der Adresssammelleitung 137 für die Adressierung des Hauptspeichers 8 und fUr die Uebertragung logischer und physischer Speicheradressen zwischen dem Prozessor 1 und dem Verschiebungsübersetzer ( Adressübersetzer) 9, sowie aus den Sammelleitungen 138 und 139 zur Datenübertragung zwischen dem Hauptspeicher 8 und dem Prozessor 1, und zwischen dem Adressübersetzer 9 und dem Prozessor 1.
Die Schnittstelle 3 enthält ausserdem die Steuersignal leitungen 127, 135 und 136 zwischen Prozessor und Uebersetzer für die Uebertragung aktiver AdressschJUssel, der Prüfungsbedingungen und der Synchronisationssignale zwischen dem Prozessor und dem Adressübersetzer 9.
Die Innenspeicher-Steuersignal leitung 12 übernimmt die physische Wahl des inneren Speicherbereiches 14, die Teilgruppenwahl im gewählten Bereich und die richtige Reihenfolgeschaltung der Lese/Schreibsteuersignale zur Adressierung des Bereiches zwischen 0 und 64 Kilobyte des inneren Hauptspeicherbereiches
80982^/0746
- K" - BC9-76-022
Die Bedienungskonsole 6 bietet dem Bediener und dem Programmierer umfassenden Zugriff zu den Datenflusselementen im Prozessoi 1 und zum Hauptspeicher 8. Sie ist on den Prozessor 1 über eine Mikroprogramm-gesteuerte Schnittsteile angeschaltet, die in den Datenfluss des Prozessors I integriert ist.
Mikroprogrammsteuerung ( Fign. 6 bis 9 )
Die Fign. 6 und 7 zeigen den Datenfluss und das Format des Prozessors 1 und der Festspeicher-Steuerungen, Fig. 8 zeigt die Zyklustaktierung und Fig. 9 einen Plan des Festspeichers ROS 201. Die Mikroprogrammsteuerung arbeitet nach dem Prinzip, dass jeder Maschinenbefehl nur soviele Mikrozyklen wie nötig benutzt. Während eines jeden Mikrozyklus kann eine "Quelleneinheit" zur -Zweirichtungs-Prozessorsommlleitung 57 durchgeschaltet werden, und eine oder mehrere "Bestimmungseinheiten" können aus dieser Sammelleitung 57 geladen werden. Im Ausfuhrungsbeispiel wird angenommen, dass der Prozessor 1 einen 32 Bit breiten Festspeicher ROS 201 benutzt. 22 Bits werden zum Steuern des Datenflusses des Prozessors I Über die Sammelleitung 204b benutzt. Das Feld "nächste Adresse" (NA) (Bits 22 bis 31) eines jeden ROS -Wortes liefert Über die Sammelleitung 204a die zehn wertniederen Bits an das Festspei eher-Adressregister ROSAR 193 (Fig.o). Das eine werthohe Bit des ROSAR 193 wird (durch Schaltungselemente oder durch Mikroprogramm) über ein Kippglied "ROSAR Bit 0 setzen"302 und ein UND-Glied 303 geliefert. Die Sammelleitungen 204a und 204b bilden zusammen die in Fig. 2ß gezeigte Sammelleitung 204.
8O982V0746
- ?S - BC9-76-022
Einleitung der Befehlsausfühumg
Im ROS gibt es nach Darstellung in Fig. 2B fünf Eintritts+ellen für Zwangsadressen. Für jede gib! es eine oder mehrere, schaltongsabhängige Eintritts— bedingungen ( im Gegensatz zu Befehlen.)
Wenn keine schaltungsbedingte Zwangseingabe erfolgt, erzwingen die ersten fünf Bits des Befehles eine ROS-Eingabe nach Darstellung im oberen rechten Teil der Fig. 9. Bei befehlsbedingten Eingaben wird das Kippglied "ROSAR Bit 0 setzen" 302 in Fig. 6 gesetzt. Von diesem Punkt an bis zum Ende des Befehles gibt das Kippglied 302 zusammen entweder mit dem zehn Bit langen Feld "nächste Adresse" ( NA) vom ROS-Datenregister (ROS DR) 202 oder mit dsm Inhalt eines der zehn Bit langen Verbindungsregister 210 oder 211 das nächste auszuführende ROS-Wort an.
Bcendingung einer Befehlsausführung
Gewählte"nächste Adressen" in Hexadezimaldarstellung werden durch die Decodierschallung decodiert, um einen letzten Mikroz yklus zur Beendingung des ausgeführten Befehles zu wählen, die Kippglieder SR 1 und SR 2 305 und zurückzustellen und einen neuen Befehl über eine Anfangseingabe einzuleiten. Eine rückstellendes Laden oder eine Klassenunterbrechung beendet ebenfalls die Befehlsausführung, stellt die.Kippglieder SR 1 und SR 2 305 und 306 zur ück und erzwingt eine Verzweigung zum Start des Mikroprogramms.
80982^/0746
- la - BC9-76-022
ROS - Verbindung! egister und Taktierung
Jeder Impuls des Zeitsignals C ;taktet das ROS-Adressregister (ROSAR) 193. Jeder Impuls des Zeitsignals A taktet des ROS- Darenregister (ROSDR) 202. Jeder Zeitimpuls A leitel die ROSAR-Bits 1 bis 8 in das ROS Verbindungsregister (210), Bit 1 bis 8 , während die ROSAR-Bits 9 bis 10 durch eine Inkrementierschaltung 307 in die Bits 9 bis 10 des ROS- Verbindungsregisters 1 gelangen, wenn nicht das Unterroutinen-Kippglied 305 (SR 1) gesetzt ist. Dadurch wird das Verbindungsregister 210 auf den Wert des ROSAR + 1 gesetzt, ausser wenn die letzten zwei Bits des ROSAR 193 beide gesetzt sind. Dann wird das Ver bindungsregister 210 auf den Wert des ROSAR -3 gesetzt. Das ist die Rückkehradresse von der Unterroutine der ersten Stufe zurück in das Hauptprogramm. Ausser wenn das Kippglied SR 2 (306) eingeschaltet ist, leitet jeder Zeitimpuls A genau denselben Wert in das Verbindungsregister2(211), wie es oben für das Verbindungsregister 1 (210) beschrieben wurde. Das ist die Rückkehradresse für die zweite Stufe. Das Kippglied SRl ( 305) und das Kippglied SR 2 ( 306), die den Zustand des Verbindungsregister 1 (210) bzw. Verbindungsregister 2 ( 211) einfrieren, werden durch das Zeitsignal D getaktet.
Unterroutinenaufruf der ersten Stufe
Ein Unterroutinenaufruf besteht aus einer Verzweigung zu einem bestimmten Bereich ( Gruppe von ROS-Adiessen). Wenn eine Verzweigung vom unteren Hauptprogrammbereich zum Unterroutinenbereich 1 erfolgt (Fig. 9 ), steht am Ende des Zeitimpuls A die UnterroutinenrUckkehradresse im Verbindungsregister (210). Während des Zeitimpuls D wird das SR 1 Kippglied 305 gesetzt und so
809829/0746
- ϊί - BC9-76-022
der Wert im Verbindungsregister 1 (210) eingefroren. Die Unterroutine der ersten Stufe kann alle ROS-Adressen benutzen mit Ausnahme derjenigen im Unterroutinenbereich 2. Wenn eine Verzweigung vom hohen Bereich des
Hauptprogramms zum Bereich oberhalb des ROS 201 erfolgt, d.h. HX XXXX XXXX, wird das UND-Glied 303 zwischen dem Setzkippglied 30 und
der ROSAR-BitsteHe 0 getaktet, was in einer Verzweigung nach 01 X XXXX XXXX resultiert. Das bedeutet denselben Unterroutinenaufruf wie vom unteren Hauptprogrammbereich.
Unterroutinenrückkehr der ersten Stufe
Die Unterroutine der ersten Stufe kehrt zum Hauptprogramm zurück durch eine "nächste Adresse" (NA) mit dem Hexadezimalwert 03 F, der durch die Schaltung 209 decodiert wird. Beim Zeitimpuls C wird das ROSAR 193 vom Verbindungsregister 1 (210) geladen, so dass das Hauptprogramm an der früher eingefrorenen Unterroutinenrückkehradresse wieder aufgenommen wird. Beim nächsten Zeitimpuls D wird das Kippglied SR 1 (305) zurückgestellt. Wenn die rufende Stelle im hohen Hauptprogrammbereich lag, erfolgt die Rückkehr zurück zum hohen Hauptprogrammbereich, da das Kippglied 302 noch eingeschaltet ist und das ROSAR-Bit 1 auf Null gesetzt ist. Die letzte Mikrozyklusdecodierung erzwingt auch die Unterroutinenrückkehr.
809829/0746
- /6 - BC9-76-022
te
Unterroutinenaufruf der zweiten Stufe
Wenn zum Unterroutinenbereich zwei verzweigt wird, wird die Unterroutinenrückkehradresse im Verbindungsregister 2 (211) über das Kippglied SR 2 (306) genauso eingefroren, wie es oben für den Aufruf der ersten Stufe beschrieben wurde. Die Unterroutine der zweiten Stufe kann jede ROS-Adresse benutzen.
Unterroutinenrückkehr der zweiten Stufe
Die Unterroutine der zweiten Stufe kehrt zur Unterroutine der ersten Stufe zurück durch eine "nächste Adresse" mit dem NA-Hexadezimalwert 03 E. Zur Zeit C wird das ROSAR 193 vom Verbindungsregister 2 (211) geladen und nimmt so die Unterroutine der ersten Stufe an der vorher eingefrorenen Unterroutinenrückkehradresse wieder auf. Bein nächsten Zeitimpuls D wird das Kippglied SR 2 (306) zurückgestellt. Die letzte Mikrozyklusdecodierung erzwingt auch eine Unterroutinenrückkehr.
Eine Unterroutine der zweiten Stufe kann direkt zum Hauptprogramm zurückkehren über eine "nächste Adresse" 03 F. Zur Zeit C wird das ROSAR geladen vom Verbindungsregister 1 (210) und nimmt so das Hauptprogramm an der vorher eingefrorenen Unterroutinenrückkehradresse wieder auf. Zur nächsten Zeit D werden die beiden Kippglieder 305 und 306 für SR 1 bzw. SR 2 zurückgestellt, so dass ein neuer Unterroutinenaufruf nach nur einem Wort des Hauptprogramms erfolgen kann.
8098 2^/074
?* BC9-76-022
Unterroutine der ersten Stufe im Unterroutinen bereich 2
Wenn eine Verzweigung direkt von einem Hauptproyramm zum Unterroutinenbereich 2 vorgenommen wird (NA-Bits 1, 2 = 1, 1), wird dus Kippglied SR 2 (306) gesetzt und das Verbindungsregister 2 (211) eingefroren genau wie für einen Aufruf der zweiten Stufe. Der Ausgang zurück zum Hauptprogramm ist die " nächste Adresse " 03 E, genau wie für einen Ausgang der zweiten Stufe. Dadurch kann eine Unterroutine im Bereich 2 entweder als Unterroutine der ersten Stufe oder als Routine der zweiten Stufe benutzt werden. Die Rückwege sind nachfolgend zusammengefasst.
TABtLLE 8
ROSAR 193 ( NA = "nächste Adresse" ) NA geladen von SRI 305-SR2 306 zurück an von ID
03F Register 1 ein aus Hauptprogramm 1. Stufe Bereich 1
03F Register 1 ein ein Hauptprogramm 2. Stufe Bereich 2
03E Register 2 ein ein I.Stufe 2. Stufe Bereich 2
03E Register 2 aus ein Hauptprogramm I.Stufe Bereich 2
03F stellt beide Kippglieder SRI und SR2 zurück. 03E stellt nur das Kippglied SR 2 zurück
80982^/0746
f BC9-76-022
Stcuersc haltung 152 für bedingte ROS-Verzweigung Dei Prozessor hat bedingte ROS-Verzweigungen mit 4, 8 und 16 Wegen.
Wenn eine bedingte Verzweigung vorgegeben und die Bedingung erfüllt ist, wird das enliprechende NA-Bit. zwangsweise gesetzt. Wenn eines der NA-BiIs bereils gesetzt ist, handelt es sich um einen Neutralitätszustand, so dass alle Vier-Weg-Verzwcigungen in Z wei-Weg-Vei zweigungen unterteilt weiden können, Ιό-Weg-Verzweigungen können 12-Weg-Verzweigungen werden usw.
Die NA-Bits, die an den bedingten ROS-Verzweigungen teilnehmen, sind die Bits 5 bis 8. Da für die Rückkehr die NA-Bits 9 bis 10 benutzt werden, können diese bei bedingten ROS-Verzweigungen für bedingte Unterroutinenrückkehr benutzt werden.
Wenn z.B. die Stelle 0001 10000 11 einen Unterroutinenaufruf der ersten Stufe abgab und die Unterroutine eine bedingte Vier-Weg-ROS-Verzweigungsrückkehr ausführte, sind die vier Rückkehradressen folgende :
00011000011 . . ·
00011010011
00011100011
00011110011
80 98 2V 074 6
ROS-Bi r-Dccodiersignale ( Anweisungen)
Die durch Decodierung gewonnenen Steuersignale (Anweisungen) steuern verschiedene Operationen im Prozessor 1. Die bedingten ROS-Verzweigungen gestatten dem Mikroprogramm die Verzweigung zu verschiedenen Plälzen abhängig von den Maschinenbedingungen. Das Quellenfeld gibt an, welche Quelle auf die Prozessorsammelleitung 57 durchzuschalten ist. Das Bestimmungsfeld gibt einen oder mehrere Bestimmungsorte an, die von der Prozessorsammelleitung 57 zu laden sind. Das Feld "nächste Adresse" gib1 das als nächstes auszuführende ROS-Wort an.
Emitterfeld
Es gibt vier Decodier-Steuersignale (Anweisungen), die nicht nur die Bestimmungseinheit angeben, sondern auch die Abgabe der ROS-Bits O bis 15 an die Prozessorsammelleitung 57 bewirken. Es gibt 12 Decodier- Steuersignale (Anweisungen), die die Abgabe der ROS-Bits 8 bis 15 ah die Prozessorsammelleitung 57 bewirken. Dadurch kann das Feld " Steuerung bedingte Verzweigung" in demselben ROS-Wort als 8-Bit-Emitter benutzt werden. Hauptspeichersteuersignale ( Anweisungen)- ROS-Bits 13 bis 15 ( NichtEmitter) : .
Wert Funktion
0 Kein Speicherzyklus
1 SR - die nächsten Anweisungen LW ( oder SW)ändern in "Laden(oder Abspeichern) Segmentregister", wenn Uebersetzer
809821/0746
->2 - BC9-76-022
kto
eingebaut ist. Wenn Uebersetzer nicht eingebaut ist, Programmfehleranzeige " ungültige Funktion" setzen
2 BR- die nächsten Anweisungen LW oder SW sperren. Der Nächste Befehl
LlW, LUW, LW oder SW kann im zweiten Mikrozyklus nach dem gesperrten LW oder SW ausgeführt werden.
3 SBY- die nächsten Anweisungen LW oder SW in eine Byteanforderung anstelle
einer Wortanforderung ändern.
Den nächsten Taktergebnisanzeiger in einen Taktbyteergebnisanzeiger ändern und Veränderung von Byte 0 in demselben Wort sperren.
4 LIW- Befehlswort in SDR mit ISS ( Befehlsabrufschlüssel) laden
5 LUW- unbedingtes Wort in SDR mit OPS ( Operandenzugriff-Schlüssel) laden
6 LW-Datenwort ( zwei Bytes) in SDR laden.
7 SW-Datenworf vom SDR in Speicher abspeichern.
Arbe its v/eise
Die normalen Speicheianforderungen sind LIW,LW und SW. Alle anderen modifizieren diese. Die vier modifizierenden Speichersteueranweisungen werden zum Verändern gemeinsamer Unterroutinen benutzt. Die Anweisungen SR, BR, und SBY werden vor einer gemeinsamen Unterroutine ausgeführt, die LW oder SW enthält , die sie zu modifizieren haben. Diese drei haben keinen Einfluss auf LIW. Die BTR- Anweisung wird unmittelbar nach LIW, LW oder SW im letzten-Wort einer gemeinsamen Unterroutine ausgeführt.
80982^/0746
- ψ- BC9-76-022
Die SBY-Anweisung verändert nicht nut die beiden Spcichersleueranweisungen LW und SW, sondern auch die Taktierung der Ergnbnisanzeigor zum Betreiben von nur acht Bits anstelle von 16 Bits.
Priorität der modifizierenden Anweisungen
BR hat die oberste Priorität und stellt SR und SBY zurück . SR hat die zweite Priorität und stellt SBY zurück SBY hat die niedrigste Priorität.
Die Figo. 10 bis 14 zeigen verschiedene Zyklustaktierungen im Prozessor, der als Ausfuhrungsbeispiel der Erfindung gewählt wurde.
Fig.10 zeigt die fünf Mikroinstruktionen, die ausgeführt werden zur Durchführung eines direkten Additionsbefehls auf Maschinenebene, und Fig.11 zeigt die Taktierung von Quelle, Bestimmung und Speicherzugriff während der Ausführung der fUnf Mikroinstruktionen.
Fig.12 zeigt die Zyklustaktierungen der Hauptspeichersteuerungen. Fign. 13 und 14 zeigen die Zyklustaktierungen des Mikroinstruktionstyps,
der als letzte Makroinstruktion einer jeden Routine zur Ausführung der
Maschinenstufenbefehle ausgeführt wird. Abhängig von der Erkennung
( oder Nichterkennung) einer Ausnahme-Bedingung wird entweder die Taktierung der Fig. 13 oder die der Fig. 14 wirksam.
80982^/0746
- ^r - BC9-76-022
Untorbiechungen
Der wirksame Betrieb eines Zentralprozessors hängt von der prompten Antwort auf Bedienungsanforderungen von F/A-Gcräten ab. Diese prompte Reaktion erfolgt nach einem Unterbrechungsschema, das die laufende Prozessoropeiation stoppt, zu einer Peripheriegeräte-Bedienungsroutine verzweigt, die Gerälebedicnung abwickelt und dann zur Fortsetzung der unterbrochenen Operation zurückgekehrt. Ein Prozessor 1 kann viele E/A-Geräte 4-1 bis 4-17 steuern, und daher wird eine Unterbrechungspriorität festgelegt, um die wichtigeren Operationen vor den unwichtigeren abzuwickeln. Bestimmte Fehler- oder Ausnahmebedingungen ( z.B. Maschinenfehler) lösen ebenfalls Unterbrechungen aus. Diese werden Klassenunterbrechungen genannt und ähnlich gehandhabt wie die E/A-Unterbrechungen.
Die Unterbrechungspriorität witd fesgelegt durch vier Priori tätsunterbrechungsslufen, die in der Prioritätsreihenfolge 0, 1, 2, 3 aufgelistet sind, wobei die Stufe 0 die höchste Priorität hat. Unterbrechungsstufen werden den E/A-Geräten 4-1 bis 4-n über Programmsfeuerung zugeordnet. Dadurch erhält man die nötige Beweglichkeit, um die Geräteprioritäten bei wechselnden Anwendungen neu zuzuordnen.
Jeder der vier Prioritätsstufen hat nach Darstellung in Fig. 4 ihren eigenen Registersatz oder Stufenstatusblock ( SSB Stufe 0 bis SSB Stufe 3). Diese bestehen aus dem Adressschlüssclrcgister ( ASR), einem Stufenstatusregister (SSR), acht allgemeinen Register ( R 0 bis R 7) und einem Befehlsadressenregister ( BAR). Information über eine Stufe wird automatisch in diesen separaten
60982?/0746
Stapelregistern gerettet, wenn eine Unterbrechung auftritt.
E/A- und Klassenunterbrechungen enthalten eine automatische Verzweigung zu einer Bedienungsroutine. Feste Stellen im Hauptspeicher 8 sind für Verzweigungsadressen oder Zeiger reserviert, die während der Unterbrechungsverarbeitung angezogen werden. Die Verarbeitung einer Unterbrechung durch separate Schaltungseinrichtungen enthält die automatische Verzweigung zu einer Bedienungsroutine. Der Prozessor 1 benutzt einen reservierten Speicherbereich im Hauptspeicher 8 für die Verzweigungsinformation. Der reservierte Bereich beginnt an der Hauptspeicheradresse 0030. Die Gesamtgrösse des Bereiches hängt ab von der Anzahl der angeschlossenen unterbrechenden Geräte 4-1 bis 4-n. Ein Wori ( zwei Bytes) ist für jedes unterbrechende Gerät reserviert.
Die für eine Klassenunterbrechung benutzten Speicherstellen enthalten jeweils einen Stufenstatusblockzeiger ( SSB-Zeiger), der auf die erste Adresse eines Bereiches im Hauptspeicher 8 zeigt, wo ein Stufenstatusblock gespeichert ist, und eine Startinstruktionsadresse (SlA), die auf die erste Instruktion der Bedienungsroutine zeigt.
Jedes für eine E/A-Unterbrechung benutzte Speicherwort enthält einen Geratedatenblockzeiger (GDB), der die Adresse des ersten Wortes eines Gerätedatenblocks ist. Dieses Wort wird benutzt, um die Startinstruktionsadresse für die Bedienungsroutine zu bekommen.
609829/0746
Möglichkeiten zur Unterbrechungsmaskierung bilden eine weitere Programmsteuerung der vier Prioritätsstufen. System- und Stufenmaskierung werden durch eine Summenmaske und das Unlcrbiechungsstufenmaskenregister 175 gesteuert. Die Gerätemaskioiung wird gesleuert durch eine Gerätemaske in der durch den E/A-Vorbereitungsbefehl übertragenen Information. Die Manipulation der Maskenbits kann Unterbrechungen auf allen Stufen, einer bestimmten Stufe oder für ein bestimmtes Gerät freigeben oder sperren.
Es existieren, wie schon gesagt, vier Priori tälsunlerbrechungsstufen. · Jedem E/A-Gerät 4-1 bis 4-n wird eine Stufe abhängig von der Anwendung dynamsich zugeordnet. Wenn eine Unterbrechung auf einer gegebenen Stufe akzeptiert wird, bleibt diese Stufe aktiv, bis eine Stufenausgangsinstruktion (LcX) ausgeführt oder eine Unterbrechung mit höherer Priorität akzeptiert wird. In letzterem Fall schal tet der Prozessor 1 auf die höhere Stufe um, erledigt die Ausführung ( ein- schliessl ich einer LE X-|nstruktion) und kehrt dann zu der Stufe zurück, auf der die Unterbrechung erfolgte . Diese automatische Rückkehr kann durch andere Unterbrechungen mit noch höherer Priorität verzögert werden .
Eine auf der gegenwärtig aktiven Stufe wartende Unterbrechungsanforderung wird erst nach Ausführung einer LEX-|nstruktion durch das laufende Programm akzeptiert. Wenn keine andere Unterbrechungsstufe wartet bei Ausführung einer Stufenausgangsinstruktion, geht der Prozessor 1 in den Wartezustand, in dem keine Verarbeitung stattfindet, der Prozessor jedoch Unterbrechungen annehmen kann , die erwartet werden.
8098 21/0746
OC9-76-G22
Der Ueberwachungszustand wird angefangen bei jedem Empfang einer Prioritätsunterbrechung. Der Prioritätsunterbrechungsalgorithmus ist folgender:
1. Die Summenmaske muss freigegeben sein.
2. Das Maskenbit (Unterbrechungsstufenmaskenregister 175) für die unterbrechende Stufe muss eingeschaltet sein.
3. Für E/A-Unterbrechungen muss das Gerät sein Gerätemaskenbit eingeschaltet haben.
4. Die Unterbrechungsanforderung muss die höchste Priorität der ausstehenden Anforderungen und eine höhere Priorität als die aktive Stufe des Prozessors haben.
5. Der Prozessor darf nicht gestoppt sein.
Klassenunterbrechungen ändern die Prioritätsstufen nicht und werden auf der gegenwärtig aktiven Stufe verarbeitet. Wenn sich der Prozessor beim Auftreten einer Klassenunterbrechung im Wartezustand befindet, wird zur Verarbeitung der Unterbrechung die Prioritätsstufe 0 benutzt.
Ausser aufgrund der oben beschriebenen Unterbrechungsbedingungen sind noch Unterbrechungsumschaltungen durch Programmsteuerung mittels der Befehle "Steuerstatusblock laden" (SSB-LD) und "Steuerstatusblock abspeichern" (SSB-SP) vorgesehen. Einzelheiten hierzu sind beschrieben in der deutschen Patentanmeldung P 27 18051.4, wobei die zugehörigen Zeichnungen auch im Zeichnungssatz der vorliegenden Beschreibung enthalten sind.
Bitfeld-Befehle
Um Bitfelder unterschiedlicher Länge im Speicher abspeichern und aus dem Speicher in ein Register unabhängig von den Grenzen adressierbarer Speicherelemente laden zu können, ist die Erkennung und Ausführung von vier neuen Befehlen vorgesehen. Ihr Format ist in Fig. 16 gezeigt. Jeder dieser Befehle ist im Ausführungsbeispiel 16 Bits lang. Die ersten fünf Bits 0 bis 4 sind der Operationscode, der für alle vier Befehle gleich ist (10110). Die nächsten drei Bits 5 bis 7 bezeichnen ein Maschinenregister R als Quelle bei der Ausführung eines Abspeicher-Befehls, oder als Bestimmungsort eines Bitfeldes, wenn einer der drei Ladebefehle ausgeführt wird. Die beiden nächsten Bits 8 und 9 bezeichnen ein Register RB, das die Adresse einer adressierbaren Speicherungseinheit (Adressiereinheit) innerhalb des Speichers (z.B. ein Byte oder ein Wort) enthält. Diese Adresse dient als Basisadresse. Die nächsten
80982^/0746
beiden Bits (FN) im Befehl, nämlich die Bits 10 und 11, werden durch das System decodiert, um anzuzeigen, welcher der vier neuen Befehle auszuführen ist. Die letzten vier Bits L (Bits 12 bis 15) enthalten eine Dualzahl, die um Eins kleiner ist als die Länge des Bitfeldes. Somit kann man bis zu 16 Bits lange Felder behandeln. Ausser den durch den in Fig. 16 gezeigten Befehl explizit angegebenen Maschinenregistern ist als weiteres Maschinenregister das allgemeine Register 7 (R7) von besonderer Bedeutung, weil in ihm immer eine Distanzadresse mit Vorzeichen enthalten ist, welche die Verschiebung des Bitfeldanfangs gegenüber der durch den Inhalt von RB angegebenen Adresse angibt. Diese Distanzadresse mit Vorzeichen in R7 bestellt aus einer Byte-Distanzadresse mit Vorzeichen in den oberen 13 Bits des Registers und einer Bitverschiebung (= Verschiebung gegenüber der Bytegrenze) in den unteren drei Bits des Registers.
Bei der Ausführung eines dieser Befehle bestimmt man zur Errechnung der effektiven Bitadresse des ersten Bits im Bitfeld zuerst die Speicherbteile (Byte), in der das Bitfeld beginnt. Hierfür addiert man den Inhalt des durch RB angegebenen Registers zu der Byte-Di'stanzadresse (13 werthohe Bits) von R7. Bei der Ausführung dieser Addition müssen die Bits der Byte-üistanzadrcsse von R7 rechtsbündig stehen. Die ursprünglichen drei wertniederen Bits von R7 bestimmen diejenige Bitposition dieses Bytes, welche der Anfang des gewünschten Bitfeldes ist.
Die vier erwähnten Befehle sind drei Befehle, mit denen jeweils ein Bitfeld in ein angegebenes Register vom Speicher geladen werden kann, und ein Abspeicherbcfehl, mit dem ein in einem angegebenen Register enthaltenes Bitield in den Speicher eingegeben wird. Die Funktion der vier Befehle wird ansc.hl i essend beschrieben.
Feld laden (IJ): FN = 00.
Das angegebene Bitield wird vom Speicher in das Register R geladen. Das Feld steht im Register R rechtsbündig, die wert hohen Bits werden mit Nullen auf gel ül 11. . Die Sys t em-Ergebni sanzei ger worden so eingestellt, dass sie den in das Register R geladenen Kndwert anzeigen.
Feld laden und erhöhen (LF+): FN = 01.
Das angegebene Bitfeld wird in das Register R geladen und steht dort rechtsbündig, wobei die werthohen Bits mit Nullen aufgefüllt sind. Der Wert L ^ 1 wild zum Inhalt von R7 addiert und ersetzt diesen, wodurch der Inhalt aiii ilen Anfang de:; nächsten Bitfeldes zeigt . Die System—Ergebnisanzeiger werden so eingestellt, dass sie den in das Register R geladenen Kndweit .πι/ei gen.
80982^/0746
- ψ9 - CJO BC9-76-022
Vermindern und Feld laden (LF-): FN = 10.
Vom Inhalt des Registers R7 wird der Wert L + 1 subtrahiert und der Inhalt von R7 dadurch ersetzt. Das angegebene Bitfeld wird dann rechtsbündig in das Register R geladen, das in den werthohen Bits mit Nullen aufgefüllt wird. Dadurch kann eine Kette von Bitfeldern von rechts nach links verarbeitet werden. Die System-Ergebnisanzeiger werden so eingestellt, dass sie den in das Register R geladenen Endwert wiedergeben.
Feld abspeichern (STF): FN = 11.
Die wertniederen L + 1 Bits des Registers R werden in das angegebene Speicherfeld gespeichert, ohne dass andere Bits gestört werden.
Als Beispiel für die Benutzung der Anweisung "Feld laden und erhöhen" (LF+) zeigt Fig. 17 einen Teil eines Speichers, der 5 Bitfelder A, B, C, D und E mit 7, 11, 8, 5 bzw. 7 Bits enthält. Es wird angenommen, dass das erste Bit im Feld A um zwei Bits gegenüber der Anfangsgrenze der Bytestelle 1000 versetzt ist (d.h., das erste Bit des Feldes A steht in der dritten Bitstelle im Byte Nr. 1000 im Speicher). Wenn jetzt angenommen wird, dass die Felder A, B, C, D und E in die fünf Maschinenregister Rl, R2, R3, R4 bzw. R5 geladen werden sollen, dann muss das hierzu erforderliche Computerprogramm zuerst ein Basisregister RB und das Register R7 initialisieren. Wenn RO als Basisregister dienen soll, dann besteht die Initialisierung aus einer Anweisung, die RO mit dem Wert 1000 lädt und einer Anweisung, die R7 mit dem Wert 2 lädt. (Die werthohen 13 Bits von R7 würden in diesem Beispiel eine Byteverschiebung von 0 angeben.) Nach der Initialisierung könnten die fünf Register Rl bis R5 leicht mit folgenden fünf Befehlen geladen werden: LF+ R= Rl, RB = RO, L = 6
LF+ R= R2, RB = RO, L = 10
LF+ R= R3, RB = RO, L = 7
LF+ R = R4, RB = RO, L = 4
LF+ R= R5, RB = RO, L = 6 .
Nach der Ausführung dieser fünf Befehle sind die Register Rl bis R5 mit den Bitfeldern Λ bis E geladen. Jedes Bitfeld steht rechtsbündig in seinem Register, und die werthohen Registerpositionen sind mit Nullen gefüllt. Der Inhalt von R7 wurde so erhöht, dass er die Dualzahl lOlOOO (gleich der Dezimalzahl 40) enthält, und das System ist jetzt zum Laden des nächsten Feldes F bereit. (Wenn das Feld F nicht von Interesse ist, kann die fünfte der obigen Instruktionen auch die Anweisung LF sein,
60982^/0746
anstelle von LF+.) In diesem Beispiel stellt die binäre Zahl lOlOOO in R7 eine Byteverschiebung (Byte-Distanzadresse) von 101 (gleich dezimal 5) und eine Bitverschiebung von 000 dar. Damit zeigt sie genau auf den Anfang des Bitfeldes F, das um fünf Bytes gegenüber der im Basisregister RO angegebenen Adresse verschoben ist. Das Beispiel gilt natürlich genauso, wenn RO mit einer anderen Zahl initialisiert wird, z.B. 456, und der werthohe Teil von R7 (Byteverschiebung/Byte-Distanzadresse) mit einer Zahl initialisiert wird, die gleich 100 minus dem Inhalt von RO, in diesem Fall 544, ist.
Die Erfindung lässt sich auf einem gegebenen Prozessor mit speziellen Schaltungsanordnungen oder durch Mikroprogrammierung oder mittels einer Kombination der beiden Techniken ausführen. Die spezielle Ausführungsform hängt dabei stark von den durch das System bedingten Beschränkungen ab. Anschliessend werden die Grundschritte für die Ausführung obiger Befehle beschrieben.
Anfangsbedingungen: Folgendes wird angenommen:
Einer der obigen Befehle steht im OP-Register; seine Adresse steht im Arbeitsregister (WA); die Basis-Byteadresse steht im Register RB; die Distanzadresse steht im allgemeinen Register R7, und das Zielregister ist R. In Fig. 18 sind die nachfolgend beschriebenen Steuerungen gezeigt.
Die Befehlsadresse wird um Zwei erhöht und in das Speicheradressregister und in das Befehlsadressregister für den Abruf des diesem Befehl folgenden Befehls gespeichert (siehe Block 1). (Wie später gezeigt wird, wird das Speicheradressregister tatsächlich während der Ausführung der Anweisung überschrieben. Die Bestinimungssteuerung ist jedoch dem Speicheradressregister und dem Befehlsadressregister gemeinsam, so dass es am bequemsten ist, die fortgeschriebene Befehlsadresse in beide Register einzugeben.) Ausserdem wird der Wert 3 in das Arbeitsregister WA und an einen Zähler ausgegeben. (Soweit nichts anderes angegeben ist, werden in dieser Beschreibung alle Werte dezimal dargestellt.) Die nächsten zehn Blöcke bilden eine Maske rechtsbündiger Kinerbits, deren Länge um Eins grosser ist als die im L-FeId des Befehls angegebene Länge. Dazu werden die werthöchsten Bit des L-Feldes im !Hock 2 abgefragt (d.h. die Bits 12 und IJ) und ein Einerkoinp lementwer t an das Y-Register ausgegeben. (In den Blöcken i, 4, 5 und 6 als Hexadezimalzahlen dargestellt.) Nach Darstellung in Block 7 werden die beiden wertniedersten Bits I \ und 15 abgefragt und der Wert im Y-Register nach links oder rechts /.i
80982^/07A 6
*}5 BC9-76-O22
Bildung der Einerkomplementmaske um den entsprechenden Betrag verschoben (Blöcke 8, 9 und 10). Die Maske wird dann invertiert und in der Stelle TEMP im Stapel gespeichert (Block 11). Der Inhalt des OP-Registers (der Befehl) wird in das Arbeiteregister WA eingegeben (Block 12) und unmittelbar danach ein Feld "OOOF" (hexadezimal) in das Y-Register eingegeben (Block 13). Dann werden der Inhalt von WA und Y miteinander UND-verknüpft (Block 14) und das Ergebnis in das Speicherdatenregister SDR eingegeben. Durch die in den Blöcken 12, 13 und 14 dargestellten Operationen wird nur das Längenfeld vom Befehl in das Speicherdatenregister kopiert, wo es zur späteren Benutzung festgehalten wird. Dann wird der Inhalt des Registers 7, die Bitverschiebung mit Vorzeichen, abgerufen und in das Arbeitsregister WA eingegeben (Block 15). In demselben Zyklus wird der Inhalt des Y-Registers um eine Position nach rechts verschoben, so dass der darin enthaltene Wert am Ende des Mikrozyklus 0007 ist. Dann werden die beiden Werte vom Arbeitsregister und vom Y-Register miteinander UND-verknüpf t und wieder in den Platz 11TEMP 1" im Speicherstapel eingegeben. Am Ende enthält TEMP 1 die wertniederen drei Bits der Bitverschiebung, mit denen nachher die Anfangsbitposition für das gewählte Bitfeld bezeichnet wird. Nach Darstellung in Block 17 werden im OP-Register dann die Bits 10 und 11 abgefragt (geprüft). Der Wert 00 in diesem Feld entspricht "Feld laden". 01 entspricht der Anweisung "Feld laden und erhöhen", 10 entspricht de Anweisung "Vermindern und Feld laden", und 11 entspricht "Feld abspeichern".
Verlässt man den Block 17 über den Zweig 01 (Feld laden und erhöhen), so nimmt das System die vorher (s. Block 14) im Speicherdatenregister SDR gespeicherte Längenangabe des Bitfeldes wieder auf (s. Block 18), addiert dann den Originalwert der Bitverschiebung, der im WA steht, zum Längenweit der laufenden Bitfeldoperation, der in Y steht, und eine weitere Eins (Block 19), so dass das Ergebnis direkt auf den Anfang des Bitfelds zeigt, das über die nacbi öl gonde Feldanweisiing zu behandeln ist. Das Ergebnis wird in d'-πι Registei stapel in das Register 7 der laufenden Stufe gesetzt. Durch dr-n in den BlöfI-en 18 und 19 dargestellten Vorgang wurde der Wert der Bitversrhiebung (mit Vorzeichen) um +1 erhöht, um den Bit zeiger automatisch fortzusc-lireiben.
Di-i aiisclil icssend beschriebene Vorgang gilt für die beiden Λην.τ i sungen "l'fld laden" und "Feld laden und erhüben". Das System erzeugt die Byl(>.idrcsso. derjenigen Stelle, die das erste Bit des Feldes enthält. Der Inhalt des die Bitverschiebung enthaltenden Arbeitsregisters wird um drei
80982^/0746
/OO BC9-76-O22
Stellen nach rechts verschoben (Block 20), um eben die Bitverschiebung zu eliminieren und eine Byteadresse zurückzulassen. In demselben Zyklus wird die Basisadresse von RB vom Registerstapel geholt und in das Y-Register eingegeben. Nach Darstellung in Block 21 werden die Inhalte von WA und Y dann addiert und das Ergebnis in das Speicheradressregister SAR eingegeben, das dann die effektive Adresse desjenigen Byte enthält, das das erste Bit des gewählten Feldes enthält. Dann wird das Speicherdatenregister SDR in das Arbeitsregister WA kopiert (Block 22). Das die Länge des Bitfeldes enthaltende Speicherdatenregister muss jetzt als flüchtig betrachtet werden, da ein Speicherzyklus stattfindet. Bei allen Speicherzyklen werden in das Speicherdatenregister SDR Daten aus dem Speicher eingegeben, so dass man es vorher in das Arbeitsregister kopieren muss, um seinen Inhalt zu retten. In diesem Zyklus wird ausserdem der Hauptspeicher gelesen, um das erste Byte zu bekommen. Die Bitanzahl wird von Register TEMP 1 vom Registerstapel geholt und in das Y-Register eingegeben (Block 23). (Referenzen auf den Registerstapel beziehen sich auf den Teil der Maschinenausrüstung im Ausführungsbeispiel, der die allgemeinen Register, die Stufenstatusregister, die Adressschlüsselregister und interne Register, wie TEMP und TEMP I enthält, die als interne Arbeitsbereiche dienen und vom Programmierer aus nicht direkt adressierbar sind.) Die Bitanzahl steht jetzt wieder im Y-Register. Sie wird zur Länge addiert, und dann wird von der Summe die Konstante 8 subtrahiert (Blöcke 25 und 26). Dadurch soll festgestellt werden, ob bei der jeweiligen Startbitposition und Länge des Bitfeldes ein Ueberlauf in das nächste Hauptspeicherbyte erfolgen wird. Diese Prüfung ist im Block 27 dargestellt.
Wenn die im Block 26 dargestellte Subtraktion ein negatives Ergebnis hat, bedeutet das, dass ein Bitfeld nicht in die nächste Byteposition hineinreicht. Dann wird der Inhalt des Speicherdatenregisters in das Y-Register eingegeben (Block 28). Das vom Speicherdatenregister in das Y-Register verschobene Byte enthält in diesem Fall Anfang und Ende des Bitfeldes, da festgestellt wurde, dass das Bitfeld nicht über die Grenzen dieses Byte hinausläuft. Dann wird der Inhalt der Register WA und Y nach rechts verschoben und ein Zählerinhalt mit jeder Verschiebung um 1 vermindert, bis er den Wert Null erreicht. (Nach Darstellung in 27 wurde der Zähler auf den entsprechenden Anfangswert gesetzt). Wenn der Zähler Null erreicht hat, ist das Byte entsprechend
60982Y/0746
weit nach rechts verschoben worden und steht in der äussersten rechten Byteposition des Y-Kegisters. Der Inhalt des Befehlsadressregisters BAR wird dann an das Speicheradressregister übertragen, um die Adressierung des nächstfolgenden Befehls einzuleiten (Block 30). Nach Darstellung in Block 31 wird der Wert im TEMP-Register, der die nach Darstellung in den Blöcken 2 bis 11 festgelegte Maske enthält, in das Arbeitsregister WA geladen und der Hauptspeicher gelesen, um den nächstfolgenden Befehl zu holen, vorzugsweise (für eine optimale Leistung) überlappt mit dem Ende der Ausführung des laufenden Befehls. Dann werden der Inhalt des Arbeitsregisters WA und des Y-Registers UND-verknüpft und in das Zielregister im Registerstapel eingegeben (Block 32). Dadurch werden bestimmte Bits des Byte vom Y-Register nach den Angaben der Bitfeldparameter in das Register eingegeben, das durch das R-FeId angegeben ist. Durch die Einstellung der Ergebnisanzeiger zur Wiedergabe der Charakteristik des gerade in das Register gespeicherten Wertes wird dann die Befehlsausführung beendet.
Wenn die im Block 27 dargestellte Prüfung nicht negativ war, reicht das Bitfeld ganz bestimmt in das nächste und vielleicht auch noch in ein drittes Byte hinein. In diesem Fall wird die Konstante 8 im Y-Register wieder von der Summe Längenwert plus Bitzahl (Block 34) subtrahiert, um festzustellen, ob die Länge des Bitfeldes in ein oder zwei weitere Bytes hineinreicht. Das Ergebnis der Subtraktion wird invertiert und dann wieder auf einen negativen Wert abgefragt (Block 35).
Wenn das Ergebnis negativ ist (d.h. wenn das Bitfeld zwei Bytes belegt), wird die für das erste Byte benutzte Speicheradresse in das Arbeitsregister verschoben (Block 36). Nach Darstellung in Block 37 wird das Speicherdatenregister, das das erste gemäss Block 22 abgerufene Byte enthält, in das Y-Register geladen. Die frühere Speicheradresse für das erste Byte wird dann um Eins erhöht und in das Speicheradressregister zurückgespeichert. Es folgt ein weiterer Abruf im Hauptspeicher (Block 38). Das Y-Register wird um acht Positionen nach links verschoben (Block 39), um das frühere Byte und das laufende Byte hinterher kombinieren zu können. Inzwischen wurde das Byte in die wertniedere Byteposition des Speicherdatenregisters eingelesen und in das Arbeitsregister kopiert (Block 30). Der Inhalt des Arbeitsregisters WA wird dann mit demjenigen des Y-Registers ODER-verknüpft und das Ergebnis in das Y-Register eingegeben (Block 41). Dadurch werden die beiden betreffenden Bytes im
60982^/0746
K § BC9-76-022
Y-Register kombiniert, wobei das werthöhere die Bitpositionen 0 bis 7 und das wertniedere die Bitpositionen 8 bis 15 belegt. Die Ausführungszweige werden jetzt wieder im Block 29 vereinigt, so dass als nächste Schritte folgen: Rechtsausrichtung des Bitfeldes, Laden des Zielregisters R, Takten der Ergebnisanzeiger und Abruf des nächsten Befehls. Wenn sich das Bitfeld über drei Bytes erstreckt, wird nach der Negativprüfung (Block 35) nochmals der Wert 8 vom Inhalt des Arbeitsregisters subtrahiert (Block 42) und die entsprechende Anzahl der Bitpositionen, um die verschoben werden muss, in den Zähler eingegeben (Block 43). Das Speicheradressregister wird in das Arbeitsregister kopiert (Block 44), die Operandenadresse im Hauptspeicher wieder um Eins erhöht (Block 45) und der Hauptspeicher gelesen. Der Inhalt des Speicherdatenregisters wird im Register TEMP I gerettet (Block 46), der bereits das erste vom Hauptspeicher geholte Byte enthält. Der Inhalt des Speicherdatenregisters (der durch den in Block 45 dargestellten Speicherabruf eingegeben wurde), wird in das Y-Register verschoben (Block 47). Dieses Register enthält dann das zweite zu dem Bitfeld gehörige Byte. Der Inhalt des Arbeitsregisters, also die Speicheradresse dieses Byte, wird um Eins erhöht und ins Speicheradressregister eingegeben, so dass er das dritte Byte adressiert (Block 48). In diesem Zyklus erfolgt dann ein HauptspeicherzugriEf. Dann wird der Inhalt des Y-Registers um acht Stellen nach links verschoben (Block 49), um das wertniederste Byte aufzunehmen, das gerade jetzt vom Hauptspeicher kommt und nach seiner Ankunft in das Arbeitsregister eingegeben wird (Block 50). Das zweite und dritte Byte werden miteinander ODER-verknüpft und auf diese Weise kombiniert (Block 51). Dann wird das werthöchste Byte aus dem TEMP 1-Register im Stapel gelesen und in das Arbeitsregister eingegeben (Block 52). Es folgen dann die Endschritte, welche für alle Zweige gleich sind (ab Block 29). Der gesamte Inhalt des Arbeitsregisters WA und des Y-Registers wird nun laut Darstellung im Block 29 nach rechts verschoben, bis der Zähler 0 enthält, und dann wird die Ausführung des Befehls weiter so beendet, wie schon oben beschrieben.
Aus der obigen genauen Darstellung der Befehle "Feld laden" und "Feld laden und erhöhen", lässt sich die Ausführung anderer Befehle leicht ableiten. Daher sind die Befehle "Feld speichern" sowie "Vermindern und Feld laden" nicht näher beschrieben.
8098 2^/07A 6
& J5 BC9-76-022
Für der. Fachmann dürfte es klar sein, dass zur Verwirklichung der Erfindung noch viele andere, vom beschriebenen Beispiel abweichende Ausführungsformen möglich sind. Die Variationen hängen hauptsächlich von zwei Faktoren ab: (1) Einschränkungen, die durch das vorhandene System gegeben sind, in dem die Erfindung benutzt werden soll, und (2) besondere Anforderungen des betreffenden Anwendungsbereichs.
Die maximal zulässige Länge des Bitfeldes könnte z.B. von 16 verschieden sein. Wenn im Befehlsformat für die Längenangabe L fünf Bitstellen zur Verfügung stehen, dann können Bitfelder von maximal 32 Bit Länge verarbeitet werden. Bei drei Bits für L wäre die mayimale Bitfeldlänge acht.
Auch muss das Distanzadressenregister (R7 im AusfUhrungsbeispiel) nicht auf jeden Fall vorher festgelegt werden. Wenn die Konstruktion des verwendeten DV-Systems es erlaubt, könnte auch der Programmierer das Distanzadressenregister festlegen.
Ausserdem könnten das Zielregister R und/oder das Basisregister RB vorher festgelegt werden, statt die Auswahl dem Programmierer zu überlassen. Bei den meisten Anwendungen ginge aber viel an Flexibilität verloren, wenn dem Programmierer die Möglichkeit genommen würde, wenigstens das Zielregister (oder Quellenregister) R auszuwählen.
Im beschriebenen Ausführungsbeispiel hatten alle vier Befehlsarten den gleichen Operationscode, wobei die eigentliche Unterscheidung durch das Feld FN gemacht wird. Es könnten aber auch ebensogut, je nach den gegebenen Umständen, zwei oder mehr voneinander verschiedene Operationscodee für die verschiedenen vorgesehenen Befehlsarten verwendet werden.
Es müssten auch nicht unbedingt genau drei Ladebefehle und ein einzelner Abspeicherbefehl sein. Man könnte mehr oder auch weniger als drei Ladebefehle vorsehen, und für die Abspeicherbefehle gelten die gleichen Variationsmöglichkeiten. Die Auswahl hängt hauptsächlich von der vorgesehenen Anwendung ab.
80982^/0746

Claims (9)

  1. BC9-76-022 PATENTANSPRUECHE ' 27567
    ( Iy Verfahren zum Zugriff zu beliebigen Bitfeldern im Hauptspeicher einer Datenverarbeitungsanlage, wobei die Grenzen der Bitfelder unabhängig von der adressierbaren Struktur des Hauptspeichers wählbar sind, dadurch gekennzeichnet, dass
    - in ein Basisregister (RB) die Adresse einer Adressiereinheit des Hauptspeichers als Basisadresse eingegeben wird; in ein Distanzadressregister (R7) ein Wert zur Darstellung des Abstandes zwischen dem Anfang eines gewünschten Bitfeldes und dem Anfang einer durch eine Basisadresse bezeichneten Adressiereinheit eingegeben wird;
    in ein Befehlsregister (OP) ein Zugriffsbefehl eingegeben wird, der in einem vorgegebenen Feld (L) einen Wert zur Angabe der Länge des Bitfeldes enthält, zu dem zugegriffen werden soll;
    - die Inhalte des Basisregisters und des Distanzadressregisters in einer Verarbeitungseinrichtung (51, 52, 53) verknüpft werden zur Erzeugung einer Kennzeichnung der Anfangsbitstelle des zu adressierenden Bitfeldes; und
    - mittels der so erzeugten Bitfeld-Anfangskennzeichnung und der im Befehlsregister enthaltenen Längenanpabe (L) zum gewünschten Bitfeld zugegriffen wird.
  2. 2. Verfahren nach Patentanspruch 1, dadurch gekennzeichnet, dass in das Distanzadressregister (R7) als Distanzadresse eingegeben wird die Kombination von
    (a) einem Wert, welcher den Abstand darstellt zwischen dem Anfang einer durch eine Basisadresse bezeichneten Adressiereinheit und dem Anfang der die erste Bitstelle des gewünschten Bitfeldes enthaltenden Adressiereinheit, und
    (b) einem Wert, welcher den Abstand zwischen dem Anfang der letztgenannten Adressiereinheit und der Anfangsbitstelle des gewünschten Bitfeldes darstellt.
    80982V0746
    - 5/ - BC9-76-022
  3. 3. Verfahren nach Patentanspruch 2, dadurch gekennzeichnet, dass zur Verknüpfung der Inhalte von Basisregister (RB) und Distanzadressregister (R7) zunächst in der Verarbeitungseinrichtung (51, 52, 53) der erste Wert aus dem Distanzadressregister zu dem Wert im Basisregister addiert wird, und dass zur Bildung der Bitfeld-Anfangskennzeichnung der zweite Wert aus dem Distanzadressregister mit dem Ergebnis der Addition durch Anhängen verkettet wird.
  4. 4. Verfahren nach Patentanspruch 1, 2 oder 3, dadurch gekennzeichnet, dass der jeweilige Inhalt des Distanzadressregisters (R7) mit der jeweiligen im Befehlsregister (OP) enthaltenen Längenangabe (L) in der Verarbeitungseinrichtung (51, 52, 53) miteinander verknüpft werden, und dass das Ergebnis als neue Distanzadresse für das nächstfolgende Bitfeld in das Distanzadressregister eingegeben wird.
  5. 5. Verfahren nach Patentanspruch 1, dadurch gekennzeichnet, dass das zu verwendende Basisregister (RB) aufgrund einer im Befehlsregister (OP) vorhandenen Angabe aus dem jeweiligen Zugriffsbefehl bestimmt wird, während das Distanzadressregister (R7) unabhängig vom jeweiligen Befehls registerinhalt vorgegeben ist.
  6. 6. Anordnung zum Zugriff zu beliebigen Bitfeldern im Hauptspeicher einer Datenverarbeitungsanlage,
    wobei die Grenzen der Bitfelder unabhängig von der adressierbaren Struk tur des Hauptspeichers wählbar sind, gekennzeichnet durch: - mindestens ein Basisregister (RB) zur Eingabe der Adresse einer adressierbaren Speicherungseinheit des Hauptspeichers als Basisadresse;
    ein Distanzadressregister (R7) zur Eingabe einer den Abstand zwischen dem Anfang eines gewünschten Bitfeldes und dem Anfang einer adressierbaren Speicherungseinheit darstellenden Distanzadresse ;
    ein Befehlsregister (OP) zur jeweiligen Aufnahme eines Zugriffsbefehls mit einer BitfeId-Längennngabe;
    8 0 9 8 2^/0 7 A R
    se9-75-022
    275S7&2
    Verknüpfungseinrichtungen (50, 51, 52) zur Verknüpfung der Inhalte eines Basisregisters und des Distaivzadressregisters zu einer Bitfeld-Anfangskennzeichnung; sowie Einrichtungen (Fig. 2) zur Steuerung der Entnahme von Daten aus oder Abspeicherung von Daten in einem Bitfeld des Hauptspeichers aufgrund einer ihnen zugeführten Bitfeld-Anfangskennzeichnung aus den Verknüpfungseinrichtungen und einer ihnen ausserdem zugeführten Längenangabe aus dem Befehlsregister.
    609821/0-746
    BC 976 022
  7. 7. Anordnung nach Anspruch 6, dadurch gekennzeichnet, daß
    aus dem Hauptspeicher vollständige adressierbare Speicherungseinheiten (z.B. Byte) ausgelesen werden und die darin enthaltenen adressierten Bitfelder in den Verknüpfungseinrichtungen (50, 51, 52) durch eine logische UND-Funktion zwischen der ausgelesenen Speicherungseinheit und einer entsprechend dem Bitfeld erzeugten Maske (TEMP) selektiert werden.
  8. 8. Datenverarbeitungsanlage mit einer Anordnung nach Anspruch 6 oder 7, dadurch gekennzeichnet, daß zum Auslesen bzw. Einspeichern von Bitfeldern, deren Lage im Bezug auf die Adreßgrenzen beliebig ist, Instruktionen des Formats "Op-Code, R, RB, FN, L" (Fig. 16) vorgesehen sind, wobei der Op-Code die Gruppe dieser Instruktionen bezeichnet, R ein Register ist, das als Quelle oder Bestimmungsort des Bitfeldes dient, RB ein Basisregister mit der Adresse der ersten adressierbaren Speichereinheit, in der ein Teil oder das ganze Bitfeld enthalten ist, FN Funktionsbits zur näheren Kennzeichnung der Instruktion und L die Länge des Bitfeldes.
  9. 9. Datenverarbeitungsanlage nach Anspruch 8, dadurch gekennzeichnet, daß die durch Funktionsbits unterschiedenen Funktionen sind: Einschreiben eines Bitfeldes in den Speicher, Auslesen eines Bitfeldes aus dem Speicher (Laden eines Registers), Auslesen eines Bitfeldes aus dem Speicher mit gleichzeitiger Erhöhung der Bitfeldadresse zum nächsten Bitfeld, Auslesen eines Bitfelds aus dem Speicher mit gleichzeitiger Erniedrigung der Bitfeldadresse.
    80982370746
DE19772756762 1976-12-28 1977-12-20 Verfahren und anordnung zum zugriff zu beliebigen bitfeldern im hauptspeicher einer datenverarbeitungsanlage Withdrawn DE2756762A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/755,105 US4103329A (en) 1976-12-28 1976-12-28 Data processing system with improved bit field handling

Publications (1)

Publication Number Publication Date
DE2756762A1 true DE2756762A1 (de) 1978-07-06

Family

ID=25037752

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19772756762 Withdrawn DE2756762A1 (de) 1976-12-28 1977-12-20 Verfahren und anordnung zum zugriff zu beliebigen bitfeldern im hauptspeicher einer datenverarbeitungsanlage

Country Status (8)

Country Link
US (1) US4103329A (de)
JP (1) JPS5847738B2 (de)
BR (1) BR7708707A (de)
DE (1) DE2756762A1 (de)
ES (1) ES464418A1 (de)
FR (1) FR2376460A1 (de)
GB (1) GB1593053A (de)
IT (1) IT1114166B (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3539129A1 (de) * 1985-11-05 1987-05-14 Kloeckner Moeller Elektrizit Schaltung zur aufbereitung externer daten fuer mikroprozessoren

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2754890C2 (de) * 1977-12-09 1982-10-28 Ibm Deutschland Gmbh, 7000 Stuttgart Einrichtung zur Programmunterbrechung
US4321665A (en) * 1979-01-31 1982-03-23 Honeywell Information Systems Inc. Data processing system having centralized data alignment for I/O controllers
US4307447A (en) * 1979-06-19 1981-12-22 Gould Inc. Programmable controller
US4388682A (en) * 1979-09-04 1983-06-14 Raytheon Company Microprogrammable instruction translator
JPS5652454A (en) * 1979-10-05 1981-05-11 Hitachi Ltd Input/output control method of variable word length memory
US4287563A (en) * 1979-11-13 1981-09-01 Motorola, Inc. Versatile microprocessor bus interface
US4342081A (en) * 1979-12-12 1982-07-27 Honeywell Information Systems Inc. Tape device adapter
US4520439A (en) * 1981-01-05 1985-05-28 Sperry Corporation Variable field partial write data merge
US4574349A (en) * 1981-03-30 1986-03-04 International Business Machines Corp. Apparatus for addressing a larger number of instruction addressable central processor registers than can be identified by a program instruction
JPS57201940A (en) * 1981-06-04 1982-12-10 Fujitsu Ltd Assignment system for memory digit
US4433377A (en) * 1981-06-29 1984-02-21 Eustis Mary S Data processing with format varying
US4680698A (en) * 1982-11-26 1987-07-14 Inmos Limited High density ROM in separate isolation well on single with chip
EP0187762A4 (de) * 1984-06-27 1987-10-19 Motorola Inc Verfahren und gerät für einen bitfeldbefehl.
US5265204A (en) * 1984-10-05 1993-11-23 Hitachi, Ltd. Method and apparatus for bit operational process
US6552730B1 (en) * 1984-10-05 2003-04-22 Hitachi, Ltd. Method and apparatus for bit operational process
US5034900A (en) * 1984-10-05 1991-07-23 Hitachi, Ltd. Method and apparatus for bit operational process
JP2914966B2 (ja) * 1984-10-05 1999-07-05 株式会社日立製作所 画像処理方法および装置
US4760515A (en) * 1985-10-28 1988-07-26 International Business Machines Corporation Arbitration apparatus for determining priority of access to a shared bus on a rotating priority basis
JP2520882B2 (ja) * 1986-08-27 1996-07-31 株式会社日立製作所 デ−タ処理装置およびデ−タ処理方法
US5210835A (en) * 1986-08-27 1993-05-11 Ken Sakamura Data processing system having apparatus for increasing the execution speed of bit field instructions
JPS63170736A (ja) * 1987-01-09 1988-07-14 Toshiba Corp マイクロプロセツサ
DE3837847A1 (de) * 1988-02-19 1989-08-31 Hercules Computer Technology N Einrichtung und verfahren zum verschieben eines bitfoermigen datenblocks
US4977497A (en) * 1988-03-23 1990-12-11 Mitsubishi Denki Kabushiki Kaisha Data processor
JPH02306339A (ja) * 1989-02-09 1990-12-19 Nec Corp ビット・アドレシング方式
EP0382246A3 (de) * 1989-02-09 1991-09-11 Nec Corporation Bitadressierungsanordnung
US5121354A (en) * 1990-03-12 1992-06-09 International Business Machines Corp. Random access memory with access on bit boundaries
JPH06180653A (ja) * 1992-10-02 1994-06-28 Hudson Soft Co Ltd 割り込み処理方法および装置
US5809524A (en) * 1994-01-04 1998-09-15 Intel Corporation Method and apparatus for cache memory replacement line identification
US6061783A (en) * 1996-11-13 2000-05-09 Nortel Networks Corporation Method and apparatus for manipulation of bit fields directly in a memory source
JP3110404B2 (ja) * 1998-11-18 2000-11-20 甲府日本電気株式会社 マイクロプロセッサ装置及びそのソフトウェア命令高速化方法並びにその制御プログラムを記録した記録媒体
US9176847B2 (en) 2013-05-22 2015-11-03 International Business Machines Corporation Managing diagnostic information

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3401375A (en) * 1965-10-01 1968-09-10 Digital Equipment Corp Apparatus for performing character operations
NL6815506A (de) * 1968-10-31 1970-05-04
BE758815A (fr) * 1969-11-28 1971-04-16 Burroughs Corp Systeme de traitement d'information presentant des moyens pour la preparation dynamique d'adresses de memoire
US3624616A (en) * 1969-12-04 1971-11-30 Burroughs Corp Dynamic allocation of multidimensional array memory space
BE752149A (nl) * 1970-06-18 1970-12-18 Bell Telephone Mfg Gegevens verwerkend systeem,

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3539129A1 (de) * 1985-11-05 1987-05-14 Kloeckner Moeller Elektrizit Schaltung zur aufbereitung externer daten fuer mikroprozessoren

Also Published As

Publication number Publication date
GB1593053A (en) 1981-07-15
ES464418A1 (es) 1978-09-01
JPS5847738B2 (ja) 1983-10-24
BR7708707A (pt) 1979-07-24
JPS5383537A (en) 1978-07-24
FR2376460B1 (de) 1980-08-22
US4103329A (en) 1978-07-25
FR2376460A1 (fr) 1978-07-28
IT1114166B (it) 1986-01-27

Similar Documents

Publication Publication Date Title
DE2756762A1 (de) Verfahren und anordnung zum zugriff zu beliebigen bitfeldern im hauptspeicher einer datenverarbeitungsanlage
DE2718051A1 (de) Datenverarbeitungsanlage mit einrichtungen zur wechselnden bearbeitung mehrerer aufgaben
DE2756768C2 (de) Mikroprozessor
DE2224537C2 (de) Einrichtung und Verfahren zur Instruktionsauswahl in einem Fließbandprozessor
DE2719295A1 (de) Programmsteuerung
DE1499200B2 (de) Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung
DE2322674A1 (de) Mikroprogramm-steuereinrichtung
DE2446224A1 (de) Vorrichtung zum steuern des mikroprogramms im operationssystem einer digitalen datenverarbeitungsanlage
DE68929080T2 (de) Anordnung zum Speichern von Informationen für einen Datenanbieterprozessor
DE1275800B (de) Steuerwerk fuer datenverarbeitende Maschinen
DE1931966B2 (de) Datenverarbeitungsanlage mit Assoziativspeichern
DE2629266A1 (de) Ein/ausgabe-system
EP0010185A1 (de) Virtuell-Adressiervorrichtung für einen Computer
DE69524379T2 (de) Verarbeitungssystem mit ausgerichtetem wortverzweigungsziel
DE2713685A1 (de) Mikroprogrammgesteuertes datenverarbeitungssystem
DE2926351A1 (de) Look-ahead-speicheradressen- steuereinrichtung
DE3688806T2 (de) Instruktionsprozessor.
DE2702722C2 (de) Einrichtung zur Verarbeitung nicht direkt ausführbarer Instruktionen
DE3587517T2 (de) Paralleler Registertransfermechanismus für Reduktionsprozessor zur Durchführung von Programmen die als binäre Graphen gespeichert sind und die Anwendungssprachenkodes ohne Variablen verwenden.
DE2245284A1 (de) Datenverarbeitungsanlage
DE2835110A1 (de) Schneller echtzeit-rechneremulator
DE2658950A1 (de) Mikroprogrammierte verarbeitungseinheit sowie verfahren zur organisation derselben
DE3650154T2 (de) Datenverarbeitendes Gerät.
DE2747304A1 (de) Einrichtung zur mikrobefehlssteuerung
DE2756767C2 (de) Mikroprozessor auf einem Halbleiterchip

Legal Events

Date Code Title Description
8139 Disposal/non-payment of the annual fee