DE1449531C3 - Prozessor, vorzugsweise für ein modul ares Mehrprozessorsystem - Google Patents
Prozessor, vorzugsweise für ein modul ares MehrprozessorsystemInfo
- Publication number
- DE1449531C3 DE1449531C3 DE1449531A DE1449531A DE1449531C3 DE 1449531 C3 DE1449531 C3 DE 1449531C3 DE 1449531 A DE1449531 A DE 1449531A DE 1449531 A DE1449531 A DE 1449531A DE 1449531 C3 DE1449531 C3 DE 1449531C3
- Authority
- DE
- Germany
- Prior art keywords
- register
- memory
- address
- program
- syllable
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Executing Machine-Instructions (AREA)
Description
Die Erfindung betrifft einen Prozessor für eine Datenverarbeitungsanlage zur Verarbeitung von Befehlen
unterschiedlicher Länge, mit einem Register zum Speichern des Operationsteils eines Befehls und
mit einer an dieses Register angeschlossenen Verknüpfungsschaltung zum Steuern der Ausführung
des Befehls.
Aus der Literaturstelle »THE ENGINEERING DESIGN of the STRETCH COMPUTER« von
Erich Bloch, 1959 Proceedings of the EJCC, S. 48 und 49, ist eine Datenverarbeitungsanlage (DVA)
bekannt, die einen einzigen zentralen Prozessor und einen einzigen Arbeitsspeicher aufweist, aus dem der
Prozessor die zu verarbeitenden Daten abruft. Die DVA hat eine Wortlänge der Datenworte von 64 Bits
plus Paritätsbits. Ein Teil der verwendeten Befehle (Indizier- und Gleitkommabefehle) hat -die Länge
eines halben Worts, der Rest die Länge eines ganzen Worts; die Wortlänge ist. für jeden Befehl in der
Befehlsliste festgelegt. Zum Beispiel enthält ein Befehl mit der Länge eines ganzen Worts zwei Adressen,
von denen die eine der Akkumulator ist. wobei im Befehl die Anfangsstelle des implizierten Operanden
im Akkumulator angegeben wird. Beide Adressen sind indizierbar, und der Befehl enthält deshalb entsprechende
Indexstellen für beide Adressen. — Man erkennt ohne weiteres, daß ein solcher Aufbau einer
DVA eine schlechte Ausnutzung des Arbeitsspeichers ergibt, dann auch dann, wenn z. B. bei einem Zwei-Adreß-Befehl
beide Adressen nicht indiziert werden
ίο sollen, müssen doch alle Indexstellen gespeichert
werden. Dies zwingt andererseits dazu, die Zahl der Indexstellen möglichst klein zu halten, obwohl bei
bestimmten Anwendungsfällen, z. B. Flugbahnberechnungen, wo man in drei Koordinaten rechnen muß,
eine möglichst große Zahl verschiedener adressierbarer Indexregister pro Adresse sehr erwünscht wäre.
Ferner ist aus "der Literaturstelle »The System Organization of MobidicB« von Stanley K. Chao,
1959 Proceedings of the EJCC, S. 101 bis 107, eine DVA für militärische Zwecke bekannt, bei der man
aus Sicherheitsgründen zwei identische Prozessoren verwendet, von denen jeder einen Kernspeicher enthält.
Die Länge eines Datenworts beträgt bei dieser DVA 36+1 Bits, und diese Länge haben auch die.
Befehle, welche je nach der Befehlsart Ein- oder Zweiadreßbefehle sein können. Da bei diesen Prozessoren
viele der (meist im zugeordneten Kernspeicher simulierten) Register adressierbar sind, kann
statt einer Kernspeicheradresse, welche 12+3 Bits benötigt, auch eine Registeradresse angegeben werden,
welche nur 5+3 Bits benötigt. Wenn also, wie das bei bestimmten Rechenoperationen häufig vorkommen
kann, Operanden verwendet werden, die sich in einem Register des Prozessors befinden, so
wird viel Speicherraum im Arbeitsspeicher verschenkt. Dasselbe gilt bei Einadreßbefehlen, da
hierbei nur 20% des für die zweite Adresse verfügbaren Speicherraums als Indexstellen ausgenutzt
werden. (Bei Zweiadreßbefehleri ist hier offenbar keine Indexstelle vorgesehen.)
Aus der deutschen Auslegeschrift 1 119 566 ist eine Anordunng zur Adressenauswahl bei Magnettrommelspeichern
bekannt, um an bestimmten Stellen -des Trommelspeichers Daten zu schreiben oder zu
lesen. Der Gegenstand dieser deutschen Patentschrift bezieht sich auf die Verkürzung der Zugriffszeit zu
den einzelnen Adressen.
' Ferner ist es aus der deutschen Auslegeschrift 1 119 563 bekannt, beim Lesen oder Schreiben von
Daten unterschiedlicher Länge die Speicheradresse weiterzuschalten.
Es ist deshalb eine Aufgabe der Erfindung, einen Prozessor zu schaffen, welcher eine bessere Ausnutzung
der Speicherkapazität einer Datenverarbeitungsanlage im Hinblick auf die Programmspeicherung
ermöglicht.
Erfindungsgemäß wird dies bei einem eingangs genannten Prozessor dadurch erreicht, daß ein Prögrammspeicherregister
vorgesehen ist, welches Speicherplätze zur Aufnahme des Operationsteils eines Befehls und gegebenenfalls vorgesehener Operändenteile
des eine variable Länge aufweisenden Befehls aufweist, und daß das zum Speichern des Operationsteils
vorgesehene Register im geladenen Zustand über die an es angeschlossene Verknüpfungsschaltung
die Zahl der auszulesenden, Operandenteile enthaltenden Speicherplätze des Programmspeicherregisters
festlegt sowie die Übertragung dieser Operandenteile
5 6
aus diesen Speicherplätzen in entsprechende Register Speichers, wobei gegebenenfalls ein Befehl auch über
steuert. Ein auf diese Weise ausgebildeter Prozessor die Wortgrenzen hinaus geschrieben werden kann,
kann Befehle verschiedener Länge erkennen und Nach einer weiteren vorteilhaften Ausgestaltung verarbeiten. Wird bei einem solchen Prozessor z. B. der Erfindung wird der Prozessor so ausgebildet, daß bei einer bestimmten Adresse keine Indexinformation 5 im Programmspeicherregister Speicherplätze zum benötigt, so brauchen keine entsprechenden Leer- Speichern zweier vollständiger Worte der im äußeren stellen gespeichert und auch nicht übertragen zu Speicher gespeicherten Art vorgesehen sind und daß werden, wodurch sich eine bessere Ausnutzung der eine Vorrichtung vorgesehen ist, welche bei der AusSpeicherkapazität und auch eine Verkürzung der führung längerer Rechenoperationen (z. B. Multipli-Rechenzeiten ergibt. Dies steht also im Gegensatz io kationen oder Dividieren) eine Übertragung eines zur eingangs genannten Literaturstelle von Bloch: neuen Programmworts in die Speicherplätze für das Während dort eine vorgegebene Befehlsart, z. B. eine Wort während der Zeit bewirkt, während der »Binär addieren« immer dieselbe Länge haben muß, das in den Speicherplätzen für das andere Wort wie in der Befehlsliste festgelegt ist, kann bei einem befindliche Programmwort verarbeitet wird. Man erfindungsgemäßen Prozessor die Befehlslänge bei i5 ermöglicht so auch bei längeren Rechenoperationen, einem solchen Befehl unterschiedlich groß und an denen normalerweise auch längere Befehle entspredas zu lösende Problem angepaßt sein. — Gleich- chen, eine kurze Rechenzeit, da die benötigte Inforzeitig erhält man eine größere Freiheit beim Indi- mation im Programmspeicherregister bereits zur Verzieren, was z. B. ein mehrfaches Indizieren jeder fügung steht, wenn sie im Verlauf der Rechenopera-Adresse erlaubt (bei dem im folgenden beschriebenen 2o tion benötigt wird.
kann Befehle verschiedener Länge erkennen und Nach einer weiteren vorteilhaften Ausgestaltung verarbeiten. Wird bei einem solchen Prozessor z. B. der Erfindung wird der Prozessor so ausgebildet, daß bei einer bestimmten Adresse keine Indexinformation 5 im Programmspeicherregister Speicherplätze zum benötigt, so brauchen keine entsprechenden Leer- Speichern zweier vollständiger Worte der im äußeren stellen gespeichert und auch nicht übertragen zu Speicher gespeicherten Art vorgesehen sind und daß werden, wodurch sich eine bessere Ausnutzung der eine Vorrichtung vorgesehen ist, welche bei der AusSpeicherkapazität und auch eine Verkürzung der führung längerer Rechenoperationen (z. B. Multipli-Rechenzeiten ergibt. Dies steht also im Gegensatz io kationen oder Dividieren) eine Übertragung eines zur eingangs genannten Literaturstelle von Bloch: neuen Programmworts in die Speicherplätze für das Während dort eine vorgegebene Befehlsart, z. B. eine Wort während der Zeit bewirkt, während der »Binär addieren« immer dieselbe Länge haben muß, das in den Speicherplätzen für das andere Wort wie in der Befehlsliste festgelegt ist, kann bei einem befindliche Programmwort verarbeitet wird. Man erfindungsgemäßen Prozessor die Befehlslänge bei i5 ermöglicht so auch bei längeren Rechenoperationen, einem solchen Befehl unterschiedlich groß und an denen normalerweise auch längere Befehle entspredas zu lösende Problem angepaßt sein. — Gleich- chen, eine kurze Rechenzeit, da die benötigte Inforzeitig erhält man eine größere Freiheit beim Indi- mation im Programmspeicherregister bereits zur Verzieren, was z. B. ein mehrfaches Indizieren jeder fügung steht, wenn sie im Verlauf der Rechenopera-Adresse erlaubt (bei dem im folgenden beschriebenen 2o tion benötigt wird.
Ausführungsbeispiel können z. B. zu jeder durch Eine besonders vorteilhafte und wertvolle Auseinen
Operandenteil angegebenen relativen Adresse gestaltung der Erfindung ist dadurch gekennzeichnet,
die Inhalte von bis zu drei Indexregistern addiert daß der Prozessor einen inneren Speicher aufweist,
werden), was besonders bei Systemen mit mehreren welcher Speicherstellen zur Aufnahme mindestens
Koordinaten, z. B. der Wettervorhersage, Flugbahn- 25 eines Operanden aufweist, und daß das zum Speiberechnungen,
Flugüberwachung usw. besonders vor- ehern des Operationsteils vorgesehene Register und
teilhaft ist. Ferner ermöglicht es ein solcher Aufbau, die an es angeschlossene Verknüpfungsschaltung die
auch Befehle mit drei Adressen zu verwenden, da Übertragung dieses oder dieser Operanden vom oder
die hierfür erforderliche relativ große Befehlslänge zum inneren Speicher steuert. Auf diese Weise wird
auf die Länge der Befehle mit zwei Adressen, einer 30 in einer großen Zahl von Fällen eine wesentliche
Adresse oder keiner Adresse keinen wesentlichen weitere Reduzierung der zu speichernden Befehls-Einfluß
hat. länge möglich, nämlich dann, wenn z. B. immer
Die Zahl der Operandenteile (z. B. Operanden- wieder dieselbe Zahl benötigt wird, oder wenn das
adressen, Indexadressen, Inkrementangaben, An- Resultat der vorhergehenden Rechenoperation bei
gaben über die Zahl von Befehlswiederholungen usw.) 35 der darauffolgenden Operation benötigt wird. Eine
hängt also praktisch davon ab, was bei der Ausfüh- solche Zahl oder ein solches Resultat wird dann in
rung eines Befehls benötigt wird. Bei einem Drei- dem inneren Speicher gespeichert, und man benötigt
Adreß-Befehl, bei welchem jede Adresse indiziert deshalb keine Speicheradresse für einen äußeren
werden soll, benötigt man also drei Operandenteile Speicher, so daß dieser Teil des Befehls nicht benötigt
mit Adressenangaben und drei Operandenteile mit 40 wird und daher auch keine Speicherkapazität erfor-
Indexregisteradressen, so daß ein solcher Befehl dert. Bei einem Drei-Adreß-Befehl, bei dem sich
naturgemäß lang wird und viel Speicherraum be- zwei Operanden im inneren Speicher befinden und
nötigt. Bei einem Drei-Adreß-Befehl ohne Indizie- das Resultat ebenfalls dort gespeichert werden soll,
rung dagegen benötigt man nur drei Operandenteile benötigt man also beispielsweise keinerlei Adressen
für die Operandenadressen, so daß ein solcher Befehl 45 zum Adressieren eines äußeren Speichers, so daß
wesentlich kürzer wird. Sollen nur eine oder zwei selbst ein Drei-Adreß-Befehl extrem kurz sein kann,
der drei Adressen indiziert werden, so ergeben sich Eine besonders vorteilhafte Ausführungsform
entsprechende Zwischenlängen, aber es wird prak- ergibt sich dabei nach einer weiteren Ausgestaltung
tisch immer nur so viel gespeichert — und muß nur der Erfindung dadurch, daß der innere Speicher als
so viel aus dem Speicher übertragen werden—,wie 50 Kellerspeicher ausgebildet ist. Bei einem solchen
für die Ausführung des Befehls notwendig ist. Kellerspeicher wird jeweils nur das »oberste« Spei-
In Ausgestaltung der Erfindung wird der Prozessor cherelement aufgerufen, so daß für die Adressierung
so ausgebildet, daß ein Programmsilbenadressen- kein wesentlicher Aufwand erforderlich ist und sich
zähler vorgesehen ist, der die aus dem Programm- ein sehr schneller Zugriff ergibt. Ein 'solcher Kellerspeicherregister
ausgelesenen Programmteile zählt, 55 speicher eignet sich hervorragend für Rechenauf-
und daß mindestens ein Steuerflipflop vorgesehen ist, gaben, bei welchen z. B. immer wieder dieselbe Zahl
das gesetzt wird, wenn sich Programmteile in dem benötigt wird, wobei dann, gesteuert von dem zum
ihm zugeordneten Teil des Programmseicherregisters Speichern des Operationsteils dienenden Register,
befinden. Dies ermöglicht in einfacher Weise eine das oberste Speicherelement »gehalten« wird, oder
sequentielle Adressierung der einzelnen Teile eines 60 auch für Rechenoperationen, bei denen jeweils das
Befehls und damit eine einfache Steuerung des Pro- Ergebnis einer Operation zwischengespeichert werden
grammspeicherregisters. soll, damit es für die nächste Operation zur Ver-
Eine weitere Verbesserung und Vereinfachung fügung steht. Dabei kann jeweils nach der Ausgabe
ergibt sich nach einer weiteren Ausgestaltung der oder vor einer Eingabe, ebenfalls gesteuert von dem
Erfindung dadurch, daß die Befehle variabler Länge 65 zum Speichern des Operationsteils dienenden Regi-
in den Speicherplätzen eines äußeren Speichers ster, der Kellerspeicher um ein Speicherelement
unmittelbar aufeinanderfolgend gespeichert werden. weitergeschaltet werden, so daß man ein neues Spel·
Dies ergibt eine sehr gute Ausnutzung des äußeren cherelement des Kellerspeichers aufrufen kann.
7 8 '
Ein besonders zweckmäßiger Aufbau eines erfin- die für die Aufnahme des Operationsteils und der
dunasgemäßen Prozessors ist dadurch gekennzeich- Operandenteile eines Befehls vorgesehenen Speichernet,~daß
der Operationsteil aus einem Befehlscode platze des Programmspeicherregisters jeweils die
und individuell einstellbaren Bitstellen besteht und gleiche Zahl von Binärstellen aufweisen. Man arbeitet
daß die Verknüpfungsschaltung besondere Teile zur 5 also innerhalb der Befehle sozusagen mit Einheiten
Auswertung des Befehlscodes und der individuell normierter Länge, die je nach Bedarf zu einer Folge
einstellbaren Bitstellen aufweist. Während der Be- oder Kette zusammengefügt werden. Diese Baueinfehlscode
durch die Befehlsliste vorgegeben ist, heiten könnten z. B. jeweils die Länge von einemergeben
sich bei den individuell einstellbaren Bit- Byte haben; beim Ausführungsbeispiel haben sie die
stellen zahlreiche vom Befehlscode weitgehend unab- io Länge von 12 Bits und werden deshalb, um hierfür
hängige Varitionsmöglichkeiten. Daher hat sich ein einen passenden sprachlichen Ausdruck zur Hand.
solcher Aufbau für eine flexible Adressensteuerung zu haben, als »Silben« bezeichnet,
als sehr günstig erwiesen, wobei man mit besonderem Diese Einheiten oder »Silben« sollen natürlich so
Vorteil so vorgeht, daß die zur Auswertung der kurz wie möglich sein, um Speicherkapazität zu
individuell einstellbaren' Bitstellen dienenden Teile 15 sparen. Da ihre Länge im wesentlichen durch dieder
Verknüpfungsschaltung zur Steuerung des Zu- jenigen Operandenteile bestimmt wird, die als Adreßeriffs
zu dem im Prozessor vorgesehenen inneren teile dienen, geht man zur Erreichung dieses Zieles
Speicher ausgebildet sind, um-von dort einen Ope- mit Vorteil so vor, daß ein Basisadressenregister vorranden
in ein Bestimmungsregister zu übertragen gesehen ist, dessen Binärstellenzahl größer ist als die.
oder um ein Ergebnis aus einem Register des Rechen- ao Zahl der in den einzelnen Speicherplätzen des Prowerks
in diesen inneren Speicher zu übertragen. grammspeicherregisters für die die relativen Adressen
Dies ermöglicht einen sehr schnellen Zugriff zu einem angebenden Bitgruppen vorgesehenen Binärstellen,
solchen Operanden, wobei naturgemäß auch eine Man braucht also in den Adreßteilen jeweils nicht
übertragung eines solchen Operanden in umgekehrter die absolute Adresse zu speichern, welche gewöhnlich
Richtung auf die gleiche Weise möglich ist. 25 ziemlich lang ist, sondern nur die kürzere, relative
Ferner wird der Prozessor in vorteilhafter Weise Adresse, und erhält dadurch kurze Einheiten oder
so ausgebildet, daß das zum Speichern des Opera- »Silben«. Während nämlich z. B. bei dem Prozessor
tionsteils vorgesehene Register über die an es ange- nach der eingangs genannten Literaturstelle von
schlossene Verknüpfungsschaltung die Übertragung Stanley K. Chao in jedem Befehl besondere Biteiner
einer bestimmten Adresse zugeordneten Index- 30 stellen vorgesehen werden müssen, welche angeben,
information in ein entsprechendes Indexregister auf welchen äußeren Speicher sich, die jeweilige
stcueil, wobei man zweckmäßig so vorgeht, daß die Adresse bezieht, wobei für die einzelnen Speicherzur
Auswertung der individuell einstellbaren Bit- stellen dann absolute Adressen verwendet werden
stellen dienenden Teile der Verknüpfungsschaltung und man so sehr lange Adreßteile erhält, die viel
zur Steuerung der Übertragung einer Index-Bitgruppe 35 .Speicherraum benötigen, gelingt es durch das angeaus
dem Programmspeicherregister zu einem Index- gebene Merkmal, die' Länge der »Silben« klein zu
register dienen. ., halten, wobei sich außerdem wesentliche Vorteile
"Bei einem in erfindungsgemäßer Weise ausgebilde- bei der Programmierung ergeben, besonders bei
ten Prozessor hat es sich ferner als sehr zweckmäßig Verwendung eines Betriebssystems,
erwiesen, daß in ihm ein Progrämmzählregister vor- 40 Weitere vorteilhafte Weiterbildungen der Erfindung
gesehen ist, das durch den in ihm gespeicherten Inhalt . ergeben sich aus den weiteren Unteransprüchen. Im
die absolute Adresse der augenblicklich ausgeführt folgenden ist ein Ausführungsbeispiel der Erfindung
werdenden Befehlsteile in einem äußeren Haupt- beschrieben und in der Zeichnung dargestellt. Es zeigt
speicher angibt, daß dieser Inhalt zu einem vor- F i g. 1 ein Blockschaltbild eines bevorzugten Ausgegebenen
Zeitpunkt um 1 inkrementierbar und in 45 aührungsbeispiels eines erfindungsgemäßen P10-einem
Hauptspeicheradressenregister speicherbar ist zessors,
und daß der Inhalt des durch die vom letztgenannten Fig. 2 ein Blockschaltbild des Rechenwerks des
Register angegebene Adresse bestimmten Speicher- Prozessors nach Fig. 1,
platzcs im äußeren Hauptspeicher, gesteuert von F i g. .3 eine schematische Darstellung eines Mehr-
einem Zähler, in das Programmspeicherregister über- 50 Prozessorsystems, bei welchem mehrere erfindungs-
tragen wird. Man überträgt also im Normalfall nicht gemäße Prozessoren verwendet werden können,
spezifische Befehle aus dem äußeren Speicher in das Fi g. 4 eine Darstellung des Bedienungsfeldes für
Programmspeicherregister, sondern Programmteile, den Prozessor nach F i g. 1,
die gewöhnlich Teil eines im äußeren Speicher ge- Fig. 5 eine Darstellung der W'ortstruktur, wie sie
speicherten Objektprogrammblocks oder Maschinen- 55 beim Prozessor nach F i g. 1 verwendet wird,
Programmblocks sind. Man kann so über ein Basis- Fig. 6 eine schematische Darstellung zur Erläu-
programmregister und einen durch einen Verzwei- terung der Wirkungsweise des Kellerspeichers, der
gungsbefehl angegebenen Wert das. Programmzähl- im inneren Speicher des Prozessors nach Fig. 1 vor-
[egister in einfacher Weise steuern und daher diese gesehen ist,
Blöcke an beliebiger Stelle des äußeren Speichers 60 Fig. 7 eine schematische Darstellung der Silbenspeichern, ohne daß hierzu für jeden einzelnen Be- folge oder -kette bei einem typischen Befehl für den
fehl eine neue- Adressenrechnung, z.B. durch Indi- . Prozessor nach Fig. i,
zieren, erforderlich ist. Infolgedessen braucht man F i g. 8 eine Darstellung des Aufbaus der verschiebe!
der Belegung des äußeren. Speichers auf. die denen Silbenarten, wie sie bei den Befehlen für den
Belnnge des Prozessors relativ wenig Rücksicht zu 65 Prozessor nach Fig. 1 verwendet werden,
nchmen· Fig. 9 eine Befehlsliste der wichtigsten Befehle
Als sehr zweckmäßig hat sich eine Ausgestaltung für den Prozessor nach Fig. 1, geordnet nach der
erwiesen, welche dadurch gekennzeichnet ist, daß Zahl der verwendeten Adressen,
ίο
Fig. 10 einen Programmablaufplan, welcher schematisch
die phasenweise Ausführung von Ein-, Zwei- und Drei-Adreß-Befehlen sowie von Befehlen ohne
Adresse beim Prozessor nach Fig. 1 zeigt,
Fig. 11 bis 41 verschiedene Programmablaufpläne zur Erläuterung von Aufbau und Wirkungsweise
des Prozessors nach Fig. 1; in den einzelnen Figuren ist jeweils schriftlich angegeben, auf was
sich der Programmablaufplan bezieht, so daß auf die Beschriftung der einzelnen Figuren verwiesen werden
kann,
F i g. 42 eine allgemeine Darstellung der Operationsteilsilbe,
Fig. 43 eine Darstellung eines speziellen Beispiels des Operationsteils, nämlich für binäres' Multiplizieren,
Fig. 44 eine Darstellung eines Beispiels eines vollständigen Befehls »FAD« (gleitendes Addieren),
bei welchem eine Iridexsilbe verwendet wird,
Fig. 45 ein zweites Beispiel eines Befehls,
F i g. 46 ein drittes Beispiel eines Befehls,
F i g. 47 eine Darstellung der logischen Bausteine , eines Teiles der Decodierer im F-Register, das den :
Operationsteil eines Befehles aufnimmt und decodiert; ■ hierbei ist die jeweilige Phase mit den Signalen logisch ;
verknüpft, so daß man bei einer bestimmten Phase = jeweils das gewünschte Ausgangssignal erhält, ;
F i g. 48 eine Darstellung eines mit Oktalzahlen geschriebenen Musterprogramms, so, wie es im
Hauptspeicher gespeichert wird; die Grenzen der
ίο einzelnen Befehle sind jeweils durch senkrechte
Striche angedeutet, so daß man gut erkennt, wie einzelne Befehle die Wortgrenzen überschreiten.
Für die Begriffe der vorliegenden Beschreibung wurden soweit passend die genormten Begriffe nach
DIN 44 300, Ausgabe März 1972 verwendet, wobei gemäß den Erläuterungen dieser Norm der Plural
den Singular nicht ausschließt. Ferner wurde verwendet DIN 19 226, Ausgabe Mai 1968, sowie
Löbel-Müller-Schmid, Lexikon der Datenverarbeitung,
2. Auflage, München 1969.
Ferner werden im Text und in der Zeichnung für häufig wiederkehrende Begriffe Abkürzungen gemäß
der folgenden Liste verwendet (Fig. 9 gibt die Abkürzungen der Befehle an, so daß hierzu auf diese
Figur verwiesen wird):
Abkürzung | Funktion | Bezugs zeichen |
A -Register | Akkumulator | 3033 |
BAR | Basisadressenregister | 055 |
in 3001 |
||
B-Register | Operandenregister | 3031 |
C-Register | Arbeitsregister im | 3034 |
Rechenwerk | ||
£>-Register | Verschiebe- und Iterations | 3546 |
E-Register | zahler Dünnfilm-Pufferregister |
3005 |
F-Register | Speichern des Operationsteils | 3015 |
eines Befehls | ||
Fy4i?-Register | Dünnfilm-Adressenregister | 3510 |
/-Register | Unterbrechungsregister | 3002 |
K-Register | Fortsetzung des ^-Registers | 3004 |
KSP | Kellerspeicher | 3099 |
L-Register | Fortsetzung des M-Registers; | 3006 |
Adresse im Hauptspeicher | ||
A/-Register | Hauptspeicher-Pufferregister; | 3007 |
Adressenakkumulator | ||
P-Register | Maske für äußere Anfragen | 3016 |
Ö-Register | Unterbrechungsmaske | 3016 |
S-Register | Register für Index- und | 3017 |
Variantensilben | ||
Γ-Verteiler | Zeitsteuerungsverteiler | 3502 |
(15-Bit-Schieberegister) | ||
JF-Register | Einmal-Ausgang zum Dünn- | |
film | ||
TM-Zähler (rMlbis TMS) |
Speicher-Zeitsteuerung | 3503 |
A'-Register | ||
y-Register | Obere Speichergrenze | 3012 |
Untere Speichergrenze | 3013 |
Das Wort Register wird im folgenden mit Reg. abgekürzt, also z. B. »L/M-Reg.«.
In F i g. 4 werden zusätzlich folgende Abkürzungen verwendet; die Funktionsangabe enthält teilweise
auch bereits" eine ausführliche Erläuterung:
Beim Unterbrechungsregister 3002 in F i g. 4 bedeuten die 10 Stellen beim Aufleuchten der Lampen
folgendes:
Abkürzungen | Fi ι nW tion | Bezugs |
der Flipflops | zeichen | |
AES | /!-Register gleich obersten | 3548 |
Register des Keller | ||
speichers 3099 | ||
BRF | Verzweigungs-Flipflop | 3548 |
CRT | Fange Echtzeitimpuls vom | 3002 |
100-Hz-Oszillator | ||
DZ | D-Register = Null | 3546 |
FRP | Erster Wiederholungs- | 3548 |
Flipflop (Iteration) | ||
FIC | Eingabe in Speicher 3001 | 3509 |
(Dünnfilm-Einfügung) | ||
IAF | Flipflop für indirektes | 3548 |
Adressieren | ||
INT | Flipflop für Unterbrechung | 3540 |
bzw. Steuerbetriebsart | ||
IOA | Deskriptor-Anforderung für | 3551 |
Gerät auf EA -Sammel | ||
leitung A | ||
IOB | Ditto auf Sammelleitung B | 3551 |
IPF | Unterbrechung wegen | 3002 |
Netzausfall | ||
IRJ | Sprung zu Unterbrechungs | 3545 |
routine, also Übergang in die | ||
Steuerbetriebsart | ||
IRT | Echtzeit-Unterbrechung zum | 3002 |
auf-den-neuesten-Stand- | ||
bringen des Echtzeit- | ||
Taktgebers | ||
ISl, IS 2 | Programmsilbenzähler | 3506 |
ITE | Flipflop für Unterbrechung | 3550 |
MClbisMCS | Hauptsteuer-Flipflops 1 bis 5 | 3549 |
OV | Überlauf vom Addierglied | 3541 |
PAR | Paritäts-Flipflop | 3551 |
PFl, PF 2 | Anzeigen für den Füllzustand | 3505 |
der Programmspeicher | ||
register 1 und 2 | ||
(Programm-Voll-Flipflops) | ||
PNN | Operand ist ein nicht norma | 3544 |
lisiertes Gleitkommawort | ||
POV | Überlauf bei Rechenbefehl | 3544 |
PS 1 bis PS3 | Programmsilbenadressen- | 3504 |
zählerlbis3 , | ||
PUN | Unterlauf bei Rechenbefehl | 3544 |
(Rechenergebnis mit Gleit | ||
komma zu klein für die | ||
Darstellung) | ||
RFF | Speicheranforderungs- | 3551 |
n*\p | Flipflop | 3545 |
RPF O CE* |
Wiederholungs-Flipflop | |
RSF | Umkehr der Kellerspeicher- | 3543 |
Zählrichtung | ||
(Hinauf-Herunter) | ||
^A 1, SA 2 | Adresse des obersten | 3508 |
Registers des Kellerspeichers | ||
·»* ι» sy 2 | Silbenzäher | 3507 |
TAfZ | Register TM 3503 = Null | 3503 |
Binär stelle . |
ao | , 9 | Bezeich nung |
Unterbrechungsursache |
1 | PF | Wiederanlauf nach Netzausfall | ||
IO 2 | as 10 | ER | Äußere Anfrage | |
3 | IO | Ein EA -Deskriptor ist zurück | ||
geleitet worden | ||||
4 | ICN | Unterbrechung durch anderen | ||
Prozessor | ||||
5 | RT | Echtzeit-Taktgeber-Überlauf | ||
6 | MB | Versuch, über Speichergrenzen | ||
zu schreiben | ||||
7 | II | Unerlaubter Befehl | ||
8 | PE | Paritätsfehler, oder kein An | ||
sprechen auf Speicher | ||||
anforderung während mindestens | ||||
10 msec | ||||
OV | Überlauf am Ende einer | |||
Rechenoperation | ||||
NH | Halt in der Normalbetriebsart, | |||
oder Zeichenbit in einem | ||||
indirekt adressierten Wort |
Weitere Abkürzungen, die in Fig. 4 verwendet
werden, folgen bei der Beschreibung von F i g. 4.
Fig. 3 zeigt einen allgemeinen Überblick über ein Mehrprozessorsystem, das 1 bis 4 Prozessoren nach
der Erfindung enthalten kann, dazu Speicher, EA-Werke usw., wie sie näher in den deutschen Offenlegungsschriften
bzw. deutschen Auslegeschriften 1449 529, 1 449 530 und 1449 532 beschrieben sind,
so daß der Kürze halber auf diese Schriften verwiesen werden kann. — Wie in F i g. 3 dargestellt, kann man
entweder einen Satz 2L4-Werke und vier Prozessoren oder zwei Sätze ZL4-Werke und 3 Prozessoren verwenden.
Jeder Prozessor steht über eine ihm zugeordnete Datensammelleitung mit einer Schaltverriegelung
in Verbindung, über die er mit jedem der vorhandenen Hauptspeicher verbunden werden kann.
Jede Gruppe von EA -Werken ist über eine automatische EA -Vermittlung mit zahlreichen EA -Geräten
verbunden. Bei gleichzeitigem Zugriff zu einem 1 Hauptspeicher löst die Schaltverriegelung automatisch
nach vorgegebenen Prioritäten den Konflikt und setzt die nicht bediente Anfrage auf eine Warteliste.
Die Prozessoren sind zur Verarbeitung von 3- Adreß^ Befehlen ausgebildet, jedoch können — unter entsprechender
Ersparnis an Befehlszeit und Speicherkapazität — weniger als 3 Adressen verarbeitet
werden.
Die Hauptspeicher sind Kernspeicher mit je 4096 Worten zu 48 Bits + Parität. Ein voll ausgebautes
System mit 16 Hauptspeichern kann also über 65 500 Worte speichern.
Die EA -Werke stellen ebenfalls Prozessoren dar, jedes E/4-Werk kann jedes IL4-Gerät steuern, und
es sind so viele gleichzeitige EA -Vorgänge möglich, wie E/t-Werke vorgesehen sind. Gesteuert von den
Prozessoren verbindet die E/4-Vermittlung automatisch
ein JS/1-Werk mit einem bestimmten E/4-Gerät,
z. B. einem Streifenlocher.
F i g. 1 zeigt das Blockschaltbild eines, Prozessors,
der mit einem Datenwort von 48 Bits + Paritätsbits
arbeitet. Die Operanden werden aus einem äußeren Hauptspeicher oder einem Kellerspeicher KSP im
inneren Speicher 3001 des Prozessors geholt, und die Resultate werden entweder im Hauptspeicher oder
im KSP gespeichert.
Der Kellerspeicher KSP 3009 hat vier Register 140 bis 143, 144 bis 147, 150 bis 153 und 154 bis 157
zu je 48 Bits. Jedes Register enthält also 12 Bits, d. h. eine Silbe eines viersilbigen Worts. Man kann also in
ihm vier Datenworte zwischenspeichern, und zwar wesentlich schneller als im Hauptspeicher. Für eine
Ausgabe ist, wie in F i g. 6 dargestellt, jeweils nur das »oberste« Wort des KSP zugänglich, während für
eine Eingabe entweder das oberste Wort oder das nächste Niveau verfügbar ist (vgl. auch F i g. 38 und
die zugehörige Beschreibung). Man kann also den KSP »halten«, oder ihn um einen Schritt weiterschalten.
Gewöhnlich schaltet man ihn bei jedem Zugriff (Eingabe oder Ausgabe) weiter, und zwar vor
der Eingabe und nach der Ausgabe. Die Weiterschaltrichtung ist in F i g. 6 B dargestellt. »KSP normal«
bedeutet deshalb weiterschalten, »KSP Halten« dagegen ein Festhalten des obersten Wortes.
Da bei der Ein- oder Ausgabe eines Operanden in den bzw. aus dem KSP keine Adresse im Hauptspeicher
benötigt wird, entfällt eine entsprechende Silbe in dem betreffenden Befehl, d. h. der Befehl
wird kürzer.
Befehlsaufbau
Wie bereits' erläutert, sind die Befehle aus gleich langen Bitgruppen aufgebaut, die als »Silben« bezeichnet
werden und die je nach Bedarf in einer verschieden langen Kette oder Folge von Silben zusammengestellt
werden. Die erste Silbe ist jeweils der Operationsteil, und ihm folgen — falls vorhanden —
Operandenteile.
Fig..8 zeigt den Aufbau der 18 verwendeten
Silbenarten, F i g. 43 bis 46 Beispiele für verschiedene Silbenketten.
In Fig. 8 ist die Operationsteils-Silbe mit »0« bezeichnet. Ihre Bitstellen 1 bis 6 stellen den Operationscode
dar, und ihre Bitstellen 7 bis 12 sind Markierer Al, A 2 und A3 zn je 2 Bits. Diese Markierer
zeigen zusammen mit dem Befehlscode an, wieviele Operandenteilsilben folgen. Handelt es sich z. B. um
einen 3-Adreß-Befehl, so können der Operationsteilssilbe bis zu sechs Silben folgen, und die Markierer Λ 1
bis A 3 zeigen deshalb z. B. bei dem Befehl BAD (Fig. 9Ä) an, ob null Silben eine Silbe, zwei Silben,
drei Silben, vier, fünf oder sechs Silben folgen.
Genauso können bei einem 2-Adreß-Befehl auf den Operationsteil bis zu vier Silben folgen, und die
Markierer A 1 und A 2 zeigen dann z. B. bei dem Befehl »TRS« (Fig. 9B) an, ob null, eine, zwei, drei
oder vier Silben folgen. '
. Bei einem 1-Adreß-Befehl können der Operationsteilssilbe
bis zu zwei Silben folgen, und der Markierer Al zeigt dann z.B. bei dem Befehl »CLA«.
(Fig;9B) an, ob null, eine oder zwei Silben dem
Operationsteil folgen.
Bei einem Befehl ohne Adresse sind die Markierer A1 bis A 3 Leerstellen, da dieser Befehl nur aus
einer Operationsteilsilbe besteht.
Bestimmte Befehle benötigen zu ihrer Ausführung Sondersilben, wie das aus der folgenden Beschreibung
klar hervorgeht. In Fig. 9B ist dies z.B. der Befehl RPT, der zu seiner Ausführung drei Sondersilben
Rc, Ri und B benötigt, deren Aufbau bei
F i g. 8 im folgenden erläutert wird. Diese Sondersilben können Ergänzungen des Befehls darstellen,
z. B. beim Befehl RPT die Zahl der Befehlswiederholungen.
Für die Markierer A 1 bis A 3 ist folgende Vereinbarung
getroffen:
IO | Code | Definition | KSP normal |
00 | KSP Halten | ||
OL | Es folgt eine nicht indizierte Silbe | ||
LO | Es folgt eine indizierte Silbe, d. h. zu | ||
15 | LL | nächst eine Indexsilbe und darauf die | |
zugehörige Silbe mit der zu indizie | |||
renden Information | |||
Beim Code 00 oder OL befindet sich also entweder der Operand im KSP oder soll dorthin gebracht werden,
wobei man die Wahl hat, ob man den KSP Halten oder weiterschalten will.
Beim Code LO oder LL dagegen wird nicht der KSP 3099 benutzt, sondern der äußere Hauptspeicher,
und es muß deshalb in der Silbenkette eine entsprechende Operandenteilsilbe folgen, beim Indizieren
sogar zwei.
Ein Beispiel (Fi g. 43) soll dies verdeutlichen:
Die ersten sechs Bitstellen des in Fig. 43 dargestellten
Befehls sind der Operationscode für binäres Multiplizieren. Das OL in den Bitstellen 7 und 8 be-.
deutet »KSP halten«, d. h., daß die Zahl (der Multiplikand)
im derzeit obersten Register des KSP entnommen und die Adresse des KSP nicht verändert
wird. Das 00 in den Bitstellen 9 und 10 bedeutet »KSP normal«, d. h., es wird wiederum die Zahl (der
Multiplikator) aus dem obersten Register des KSP entnommen, oder, mit anderen Worten gesagt, die
Zahl im obersten Register des KSP wird mit sich selbst multipliziert. Danach wird der KSP weitergeschaltet.
Das 00 in den Bitstellen 11 und 12 bedeutet, daß das Ergebnis im KSP gespeichert wird, wobei
zuvor der KSP weitergeschaltet wird.
Der Befehl nach F i g. 43 ist also ein 3-Adreß-Befehl,
der nur aus der Operationsteilsilbe besteht, da alle Vorgänge über den KSP 3099 abgewickelt werden.
Andere Silbenarten im Befehl (F i g. 8)
»M« ist die relative Operandenadresse im Hauptspeicher.
Sie enthält 11 Adressenbits, und ein erstes Bit »7^«, welches angibt, ob dies eine indirekte
Adresse ist (IA =.L) oder nicht (IA = 0). Im inneren
Speicher 3001 des Prozessors, welcher Speicher wegen seines Aufbaus ini folgenden auch als Dünnfilm-.
speicher 3001 bezeichnet wird, befindet sich ein . Basisadressenregister BAR 055 mit 16 Binärstellen,
zu Jenen die 11 Stellen der Silbe M jeweils addiert, werden, um die absolute Adresse im Hauptspeicher
zu erhalten. Beim indirekten Adressieren befindet sich an dieser Stelle eine neue Hauptspeicheradresse, beim
direkten Adressieren der gewünschte Operand, oder es soll an dieser Stelle ein Ergebnis im Hauptspeicher
gespeichert werden.
»M« bedeutet eine Adresse im Hauptspeicher. (M) bedeutet eine wahlweise Hauptspeicheradresse,
die durch Verwendung des KSP ersetzbar ist (vgl. die Darstellung in den F i g. 9, 34 und 35).
»/« ist die Indexsilbe. Sie kann in Verbindung mit den meisten Silben verwendet werden, nicht aber mit
sich selbst, mit der Operationsteilsilbe oder mit einer Silbe in einem wiederholten Befehl.
Im inneren Speicher 3001 sind 15 Indexregister,
nämlich oktal 001 bis 017 vorgesehen. Jede Indexsilbe kann die Adresse von dreien dieser Indexregister
enthalten, und zwar in drei Gruppen zu je vier Bits. Die Inhalte dieser drei Register werden
dann zu der folgenden Silbe addiert. Die Indexregisteradresse 0 bedeutet »kein Indizieren«. Falls
indirektes Adressieren durch das Bit lA = L angegeben
ist, v/ird der Inhalt der Indexregister erst zum Ergebnis des indirekten Adressierens (das mehrstufig
sein kann) addiert.
Ein Beispiel für die Verwendung der Indexsilbe/ zeigt F i g. 44, und zwar einen 3-Adreß-Befehl FAD
(gleitendes Addieren). Das LL in den Bitstellen 7 und 8 des Operationsteils (J) bedeutet dort, daß als
erstes eine Indexsilbe φ und dann eine relative Adressensilbe φ folgt. — Die Indexsilbe φ gibt zwei
Indexregister an, nämlich Indexregister 15 (= LLLL) und Indexregister 2 (= OOLO). Indexregister 15 möge
den Wertö enthalten, Indexregister 2 den Werte.'
Dann wird zunächst die Adressenrechnung durchgeführt und es werden addiert: Inhalt des Basisadressenregisters
BAR 055 plus relative Adresse (α) plus (b) plus (c), was die absolute Adresse im Hauptspeicher
ergibt, und dort wird der erste Operand geholt.
Da die Bitstellen 9, 10, 11 und 12 im Operationsteil jeweils 0 anzeigen, wird der zweite Operand aus
dem KSP 3009 geholt, und das Resultat der Addition wird im KSP gespeichert. (In F i g. 44 bedeutet der
Inhalt 0 in der Bitstelle 1 der Silbe φ, daß ein direktes
Adressieren vorliegt.) — Fig. 44 ist also ein Beispiel für einen 3-Adreß-Befehl, der aus drei Silben
besteht.
F i g. 45 zeigt ein weiteres Beispiel eines 3-Adreß-Befehls BAD (binär addieren), der hier aus zwei
Silben aufgebaut ist. Das LO in der siebten und achten Bitstelle des Operationsteils bedeutet, daß dem Operationsteil
φ eine nicht indizierte" relative Adressensilbe φ folgt, während die Nullen in den Bitstellen 9
bis 12 des Operationsteils anzeigen, daß der zweite Operand aus dem KSP geholt und das Ergebnis
ebenda gespeichert werden soll.
Da das erste Bit der Adressensilbe φ gleich L ist, ist die Speicheradresse, die man durch
Addition dieser relativen Adresse (α) zum Inhalt des BAR 055 erhält, eine indirekte Adresse und ergibt
die Adresse des zweiten Niveaus. Falls dort Z4 = 0
ist. befindet sich dann an dieser Stelle der Operand. Falls dort aber wiederum IA = L ist, geht das indirekte
Adressieren so lange weiter, bis /4 = 0 ist.
(Im Speicherwort, das 48 Bits hat, findet man die indirekten Adressen als Bit 33 bis 48, während Bit 32
das /.., — Bit ist.)
»B« bedeutet eine Silbe mit einer relativen Verzweigungsadresse.
Wird ihr Inhalt (12 Bits) zum Inhalt des Basisprogrammregisters BPR 054 (16 Bits)
addiert, so erhält man eine absolute Adresse im Hauptspeicher, aus welcher ein Programmwort für
die Verzweigung geholt wird.
Ein Beispiel hierfür zeigt F i g. 46, und zwar den 1-Adreß-Befehl UTC (unbedingter Sprung). Wie aus
dem Code LO in den Bitstellen 7 und 8 des Operationsteils hervorgeht, folgt dem Operationsteil eine
einzige, nicht indizierte relative Adresse eines Programmworts, zu welcher Adresse der Inhalt des
Basisprogrammregisters BPR 054 addiert werden muß, um die absolute Adresse im Hauptspeicher zu
erhalten. — In allen Fällen einer Programmverzweigung muß die Vereinbarung eingehalten werden, daß
die erste Silbe des adressierten Programmworts im Speicher die Operationsteilssilbe des nächsten Befehls
sein muß, der verarbeitet wird. Bei einer Verzweigung wird automatisch das Programmzählregister PCR 057
mit der Adresse der Verzweigung geladen.
»C« ist die Zeichensuchsilbe (Fig. 8). Sie wird im
Zeichensuchbefehl verwendet, wobei ihre Bits 7 bis 12 das Zeichen darstellen, nach dem gesucht werden
soll.
»F« ist die Felddefinitionssilbe (F i g. 8). Ein Feld besteht aus 1 bis 6 physikalisch benachbarten 6-Bit-Zeichen
in einem 48-Bit-Wort. Die Bits 10 bis 12 definieren die Zahl (0 bis 7) des Anfangszeichens, die
Bits 6 bis 8 die Feldlänge (1 bis 8 Zeichen), und die Bits 2 bis 4 geben den Betrag an, um den das Ergebnis
der Feldoperation verschoben werden soll.
»7U« gibt den Betrag an, der vom Inhalt eines
Indexregisters subtrahiert oder zu diesem addiert werden soll. -
»/v« dient für einen Indexgrenzenvergleich. F i g. 8
zeigt die Bedeutung der einzelnen Bitstellen.
»70« ist die EA-SUbe, die bei EA-Operationen
verwendet wird.
»/„«. Diese Silbe wird beim S7?/-Befehl nach
Fig. 39 verwendet. Sie enthält eine relative Adresse
von 12 Bits, die zum Inhalt (16 Bits) des Unterroutinen-Basisadressenregisters SAR 060 addiert
wird, um die absolute Adresse im Hauptspeicher für die Anfangsadresse der Unterroutine zu erhalten,
vgl. weiter die Beschreibung zu F i g: 39.
»/,·« dient zur Ermittlung der Basisadresse für die Daten der Unterroutine,
»L« diese Silbe gibt die Bedingung an, unter der
eine bedingte Verzweigung erfolgt,
»Rc« gibt die Anzahl der Wiederholungen bei einem
Wiederholungsbefehl an,
»/?,« auch diese Silbe wird bei einem Wiederholungsbefehl
verwendet und gibt in ihren Bitstellen 1 bis 4, 5 bis 8 und 9 bis 12 die Beträge
an, um welche die zweite, dritte und vierte Silbe des wiederholten Befehls bei jeder
Wiederholung inkrementiert werden soll,
»5« ist die Verschiebesilbe. Die Bitstellen 3 bis 6 geben die Modalitäten der Verschiebung an und die Bitstellen 7 bis 12 den gewünschten Verschiebebetrag, ·
»5« ist die Verschiebesilbe. Die Bitstellen 3 bis 6 geben die Modalitäten der Verschiebung an und die Bitstellen 7 bis 12 den gewünschten Verschiebebetrag, ·
»Γ« dies ist die Adressensilbe für den inneren
Dünnfilmspeicher. Ihre Bitstellen 3 und 6 geben die Art des adressierten Dünnfilmregisters
an und die Bitstellen 7 bis 12 seine Adresse bzw. Anfangsadresse (bei mehrsilbigen
Registern),
»Vs« dies ist eine Silbe für Sonderaufgaben,
»F(« dies ist eine Silbe zur Steuerung der Übertragung
von abgewandelten Befehlen.
Innerer Speicher 3001 (Dünnfilmspeicher)
des Prozessors
Dieser Speicher enthält den bereits beschriebenen Kellerspeicher KSP 3099 (vgl. Fig. 6 A und 6B),
der als schneller Hilfsspeicher dient.
Insgesamt speichert der innere Speicher 3001 Worte, welche die oktalen Adressen von 000
bis 177 haben. Die oktalen Adressen 000 bis 077 sind 16-Bit-Worte, und. die oktalen Adressen 100
bis 177 12-Bit-Worte. Sie dienen im Verhältnis zum Prozessor als Register, die bei Zusammenfassung zu
größeren Einheiten sequentiell adressiert werden. Die Register von 3001 werden über eine 7-Bit-Adresse
über das Adressenregister 3510 adressiert.
bis 017 sind die 15 Indexregister XR,
bis 037 sind 15 Grenzenregister LIM,
bis 042 ist ein Unterbrechungs-Speicherregister, ist das bereits erläuterte Basisprogrammregister BPR,
bis 037 sind 15 Grenzenregister LIM,
bis 042 ist ein Unterbrechungs-Speicherregister, ist das bereits erläuterte Basisprogrammregister BPR,
ist das bereits erläuterte Basisadressenregister BAR,
ist das Programmzählregister PCR.
Bei einer Unterbrechung werden die Inhalte der Register 054, 055 und 057 im Register 040 bis 042
gespeichert.
bis 047 ist ein Programmwiederholungsregister RPR und wird beim Wiederholungsbefehl
verwendet, und zwar wird der zu wiederholende Befehl dann dort gespeichert anstatt in PSR1 und PSR 2.
bis 052 dient als Unterroutinen-Speicherregister SSR, das bei einem Unterroutinen-Sprungbefehl
(vgl. F i g. 39) die Daten aus den Registern 054, 055 und 057 speichert.
und 055 dienen zum Speichern der Basiswerte für das Programm bzw. die Daten und
057 für das sequentielle Adressieren des Speichers zum Abrufen des Programms.
Bei Sprüngen im Programm erhält man die Sprungadresse so, wie oben bei F i g. 8, Silbe »ß« erläutert.
ist das bereits erläuterte Unterroutinen-
Basisadressenregister SAR (vgl. Erläuterung der Silbe »/„« bei Fig. 8 und
Fig. 39).
ist ein Index-Inkrementregister für die Indexgrenzen und -vergleichs-Operation.
Bei der Indexgrenzen-Vergleichs-Operation wird der Inhalt von 062 zum
Inhalt eines der Register 001 bis 017 addiert und dann mit dem Inhalt eines
der Register 021 bis 037 verglichen, welches durch das Programm angegeben
wird. Falls die geprüfte Bedingung zutrifft, erfolgt eine Verzweigung.
ist ein Unterbrechungs-Basisadressenregister L4i?. Bei Auftreten einer Unterbrechung
entsprechendes Inkrement zum Inhalt von IAR 063 addiert, um die Hauptspeicheradresse zu bestimmen,
welche einen unbedingten Übertragungsbefehl UCT zu einem Programmgebiet enthält, das diese Unterbrechung bedient.
064/065 ist ein Leistungsausfall-Ablageregister PDR. Bei einem Leistungsausfall rechnet
der Prozessor noch kurz (500 ysec)
seinen Befehl fertig und speichert dann 070
bis 077
ίο 100 bis 103
bis 107
bis 113
bis 115
bis 115
25
30 123
124 bis 127
40 130 bis 132
bis 157
bis 177
bis 177
in PDR die Daten, die für einen automatischen Wiederanlauf erforderlich
sind. ■ ' ,
ist ein Unterbrechungs-Ablageregister IDR. Dieses speichert bei einer normalen
Unterbrechung verschiedene Registerinhalte (analog zur Funktion von PDR).
sind Reserveregister,
ist das Programmspeicherregister PSR1. ist das Programmspeicherregister PSR 2. Diese werden zum Laden des Programms in den Hauptspeicher und bei der Befehlsverarbeitung benutzt. PSR2 wird nur bei langen Befehlen benutzt, um eine Überlappung zu erreichen. Dies wird im folgenden noch ausführlich beschrieben.
ist das Programmspeicherregister PSR1. ist das Programmspeicherregister PSR 2. Diese werden zum Laden des Programms in den Hauptspeicher und bei der Befehlsverarbeitung benutzt. PSR2 wird nur bei langen Befehlen benutzt, um eine Überlappung zu erreichen. Dies wird im folgenden noch ausführlich beschrieben.
ist ein Unterbrechungs-Programmregi- StQTlPR. Es speichert bei einer Unterbrechung
den Inhalt des gerade verwendeten PSR.
ist ein Grundtaktregister R TC. Dies ist ein Zähler, der alle 10 msec hinauf gezählt
wird, und zwar mittels eines Oszillators, der alle 10 msec den Registerinhalt herausbringt, logisch zu ihm addiert
und das Resultat wieder in das RTC zurückbringt. ' , :
ist ein Wiederholungszählregister RCR, das die Angabe enthält, wie oft der betreffende
Befehl wiederholt werden soll, ist ein Zeichenzählregister CCR für den
Zeichensuchbefehl.
ist ein Dünnfilm-C-Register TFC, das
zusammen mit dem Flipflop-C-Register 3034 im Rechenwerk 3030 verwendet
wird. Jedesmal, wenn im C-Register 3034 12 Bits gesammelt sind, werden
sie nach TFC übertragen, und 3034 akkumuliert dann die nächsten 12 Bits.
Am Ende eines Rechenvorgangs befindet sich dann ein ganzes Wort (48 Bits) in TFC.
sind drei Wiederholungsinkrementregister RIR (vgl. Beschreibung zur Silbe
»Ä,« bei Fig. 8).
ist der Kellerspeicher KSP 3099. sind Reserveregister.
ist der Kellerspeicher KSP 3099. sind Reserveregister.
Ein- und Ausgabe in den inneren Speicher 3001
Das AT-Reg. 3004 und das £-Reg. 3005 dienen
hauptsächlich zur Ein- und Ausgabe für den Speieher 3001. Das L-Reg. 3006 und das M.-Reg. 3007
dienen zur Übertragung vom Prozessor zu den Hauptspeichern und umgekehrt. Die L- und M-Addierglieder
3008 bzw. 3009 dienen zur Addition der Inhalte von K- und L-Register bzw. von E- und
M-Register, wobei das Ergebnis im L-Register bzw. im M-Register gespeichert wird. 3008 und 3009 dienen
hauptsächlich zur Adressenrechnung, also zur Addition einer relativen Adressensilbe zum Inhalt
von BPR 054 oder BAR 055 und zum Inhalt der
Indexregister, um die absolute Adrese im Hauptspeicher zu erhalten. Ferner dienen 3008 und 3009
zum Hinauszählen von PCR 057.
Das K/E-Reg. 3004/3005 bildet einen 17-Bit-
19 20
Pufferspeicher für Daten. Das 7-Bit-Dünnfilm- genannten Parallelanmeldungen verwiesen. Der
Adressenregister 3510 (Fig. IA oben rechts) dient äußere Speicher überträgt das adressierte Wort wäh-
zur Adressenspeicherung. · . rend vier aufeinanderfolgenden Taktgeberzeiten in
Die einzelnen Adressen im inneren Speicher 3001 das M-Register, beginnend mit der niedrigsten Silbe,
müssen berechnet werden, wenn man sie benötigt. 5 Wenn die nächste Silbe übertragen wird, wird die
Kurze Register, z. B. BAR 055, brauchen nur die di- vorhergehende aus dem M-Register in ein Bestim-
rekte Codierung ihrer 7-Bit-Adresse. Größere Re- mungsregister des Prozessors übertragen, wie das im
gister mit mehreren Adressen, z. B. der KSP 3099, folgenden noch ausführlich erläutert wird. Während
benötigen ein Hinauszählen der Adresse, bis das einer fünften Taktgeberzeit wird das Paritätsbit (vgl.
ganze Wort ausgelesen ist. Um den Speicher 3001 io F i g. 5) übertragen.
als Direktzugriffsspeicher verwenden zu können, Die Eingabe in einen äußeren Hauptspeicher ver-
muß die Möglichkeit gegeben sein, eine 7-Bit-Adresse läuft umgekehrt, ebenfalls beginnend mit der nied-
in das Adressenregister 3510 zu übertragen. Hierzu rigsten Silbe eines Wortes.
dienen Steuerflipflops (F i g. 4), nämlich Programm- Für den inneren Speicher 3001 wird keine Adressilben-Adressenzähler-Flipflops3504
(3 Bits), Keller- »5 senrechnung benötigt, da das Leitwerk 3020 das bespeicher-Adressen-Flipflops
3508 (2 Bits), Silben- treffende Register direkt adressiert. Hier wird bei der
zähler 3507 (2 Bits), Eingangsilbenzähler 3506 Ausgabe' zunächst die niedrigste Silbe in das K/E-(2
Bits). Diese Register, die sich im Leitwerk 3020 Register übertragen, und wenn die nächste Silbe
befinden, steuern den Codierer des inneren Speichers übertragen wird, wird gleichzeitig die vorhergehende
3001. Ferner wird dieser Codierer gespeist vom 20 Silbe aus dem /i/E-Register in das Bestimmungs-Silbenregister
3017 (F i g. 1 B) und den Dünnfilm- register des Prozessors übertragen. Die Eingabe in
adressenschaltern 3510. Die entsprechenden Anzei- den Speicher 3001 verläuft in umgekehrter Reihengen
sind in F i g. 4 dargestellt. Bei der Eingabe wer- folge.
den die Daten aus dem K/E-Reg. 3004/3005 in den F-Ree 3015
inneren Speicher 3001 übertragen. Bei der Ausgabe 25 **'
erfolgt, gesteuert vom Unterbefehl TTFE, die Über- Dieses speichert die Operationsteilssilbe eines Betragung
aus dem Speicher 3001 in das X/E-Register. fehls, die aus dem Ε-Register oder dem M-Register
Bei Ein-oder Ausgabe in ein bzw. aus einem länge- in das F-Register übertragen wurde
ren Register, z.B. 140 bis 143, muß nacheinander . . _
vom Leitwerk 3020 eine Adresse für jedes Register, 30 Silbenregister 3017
also z. B. jede Silbe eines Worts, bereitgestellt wer- Dieses speichert bei einer Indizierung eine Indexden, d. h. die Anfangsadresse muß nacheinander hin- silbe des Befehls. Falls es hierfür nicht verwendet aufgerechnet werden. wird, dient es zum Speichern von Sondersilben, die
ren Register, z.B. 140 bis 143, muß nacheinander . . _
vom Leitwerk 3020 eine Adresse für jedes Register, 30 Silbenregister 3017
also z. B. jede Silbe eines Worts, bereitgestellt wer- Dieses speichert bei einer Indizierung eine Indexden, d. h. die Anfangsadresse muß nacheinander hin- silbe des Befehls. Falls es hierfür nicht verwendet aufgerechnet werden. wird, dient es zum Speichern von Sondersilben, die
o . . , . ■ zum Modifizieren der Daten im F-Reg. 3015 dienen.
Speicherschutz 35
Es sind zwei Grenzenregister 3012 und 3013 für Unterbrechungs-Register 3002
obere und untere Grenze (X bzw. Y) vorhanden. Dieses spricht auf innere und äußere Unter-
Diese Register können vom Programm geladen wer- brechungsbedingungen an.
den. Falls über die Speichergrenzen hinausgeschrie- Der Prozessor läuft bei normalem Rechnen in der
ben werden soll, spricht ein Unterbrechungsregister 40 Normalbetriebsart, bei. Vorliegen einer Unter-
3002 an. Der Vergleich erfolgt über die Kompara- brechung in der Steuerbetriebsart. Wenn eine Untertoren
3010 und 3011. brechung vorkommt, wird eine bestimmte zugeord-Speichervermittlung
f * Binärstelle des /-Reg. 3002 gesetzt. Bei einer
r ° Abfragung kann sich zeigen, daß mehr als eine
Der Prozessor enthält auch eine Speichervermitt- 45 Unterbrechungs-Binärstelle gesetzt ist. Gesetzte Bi-
lung zum Verkehr mit den äußeren Hauptspeichern närstellen setzen den Unterbrechungs-Flipflop 3540
(vgl. F i g. 3) oder dem inneren Speicher 3001. (INT), so daß der Prozessor in die Steuerbetriebsart
Diese Vermittlung enthält die bereits beschriebe- übergeht. Die höchste gesetzte Bit des /-Reg. 3002
nen Reg. 3004 bis 3007 und Addierglieder 3008 und wu-d rückgestellt, wenn bei der Bedienung der Ünter-
3009. Ihre Hauptaufgaben sind: 50 brechung ein Unterbefehl zur Übertragung des Inhalts
des /-Registers in das M-Register gegeben wird.
1. Berechnung einer absoluten Adresse für den Zur Bedienung einer Unterbrechung erfolgt ein
Hauptpeicher, Sprung zu einer Unterbrechungsroutine, d. h. die
2. Handhabung von Daten beim Verkehr mit Steuerung wird auf ein anderes Programm (ein Maeinem
Hauptspeicher oder mit dem inneren 55 schinenprogramm) übertragen.
Speicher 3001. ,, „ . „Λ^ ~
Maskenregister 3016
Nach Berechnung einer absoluten Speicher-. Dieses liegt zwischen dem Rechenwerk 3030 und
adresse befinden sich die vier höchsten Bits im L-Re- dem /-Reg. 3002 und dient zum Setzen des letzteren,
gister und geben an, welcher der 16 Hauptspeicher 60 Es umfaßt ein P-Register (7 Binärstellen) und ein
verwendet wird, und die 12 übrigen Bits im M-Re- ß-Register (16 Binärstellen), also zusammen 23 Bi-
gister geben eine Adresse in diesem Hauptpeicher an. närstellen. Die 16 Binärstellen des ß-Registers die-
Nach Berechnen der absoluten Adresse wird Zu- nen als Masken für 16 äußere Anfrageleitungen für
griff zu einem bestimmten Hauptspeicher gefordert. äußere Unterbrechungen. Das Signal TAQ überträgt
Ist dieser Zugriff gewährt, so nimmt dessen Speicher- 65 die Bits A 21 bis A 36 des A -Reg. 3033 in die Bitadressenregister
die 12-Bit-Adresse aus dem M-Re- stellen E1 bis E16 und die Bitstellen A 39, A 41,
gister auf und es wird eine Speicherausgabe einge- A 45, A 47 und A 48 in die Bitstellen Q 3, QS, Q 9,
leitet. Betreffend Einzelheiten wird auf die eingangs QIl und β 12 des Maskenregisters 3016. Es sind
also dort nur 5 Masken vorgesehen. Der Unterbefehl RQ stellt den P-Teil und diese Bitstellen des ß-Teils
von 3016 zurück.
Die 16 Binärstellen im P-Register werden mit den Signalen von den 16 Anfrageleitungen logisch verknüpft,
um jeweils ein Unterbrechungsbit im Unterbrechungsregister 3002 zu setzen; es gibt im Register
3002 nur einen Flipflop für äußere Unterbrechungen.
Man kann die Binärstellen des Maskenregisters 3016 durch das Programm setzen oder rückstellen.
Man kann so z. B. erreichen, daß bestimmte äußere Anfrageleitungen nicht bedient werden.
Das ß-Register mit seinen sieben Binärstellen bedient
7 bestimmte Binärstellen des Unterbrechungsregisters 3002. — Das Maskenregister 3016 kann
also dem Unterbrechungsregister 3002 maximal 8 Bits (7 von Q, eines von P) zuführen.
Wird auf diese Weise in einer der Binärstellen des Unterbrechungsregisters 3002 eine Eins gesetzt, so
erfolgt eine Programmunterbrechung. Die entsprechenden Daten werden gespeichert, und die Unterbrechung
wird durch das Betriebssystem der DVA bedient. Neben den bereits erwähnten 16 äußeren
Anfrageleitungen werden dem Unterbrechungsregister 3002 über 14 weitere Leitungen andere Unterbrechungssignale
von äußeren Geräten zugeführt, ferner sieben interne Leitungen, z. B. Paritätsfehler
kein. Zugriff zum Speicher usw.
Multiplizier-Dividier-Zähler 3021
Dieser liegt zwischen Leitwerk 3020 und Rechenwerk 3030 und ist ein 6-Bit-Flipflopregister, das für
verschiedene Rechenoperationen verwendet wird, z. B. als Schiebezähler bei Verschiebeoperationen.
Auch dient er, wie sein Name sagt, dazu, die Zahl von Additionen oder Subtraktionen bei Multiplizierbzw.
Dividiervorgängen zu zählen.
Dünnfilm-Adressen-Verknüpfungseinheit 3018
Dies ist ein 7-Bit-Adressencodierer und codiert die Signale vom Leitwerk 3020. Über 14 Leitungen
ist diese Einheit mit dem Dünnfilm-Adressenregister FAR 3510 verbunden.
Leitwerk 3020
Dieses erzeugt Unterbefehle zum Ausführen aller Befehle. Es enthält den Zeitsteuerungsverteiler 3502,
welcher als 15-Bit-Schieberegister ausgebildet ist, ferner ein Phasenverteilungsregister 3501 mit 6 Binärstellen
PH1 bis PH 6, und einen Zeitsteuerungszähler 3503 für den Speicher mit 5 Binärstellen TMl
bis TMS, der zur zeitlichen Steuerung der Datenübertragung
zwischen Prozessor und äußerem Hauptspeicher dient.
Ferner enthält das Leitwerk Decodierer, welchen die Ausgangssignale des Zeitsteuerungsverteilers
3502, des Phasenverteilers 3501, des Zeitsteuerungszählers 3503 und die decodierten Ausgangssignale
des F-Registers 3015 zugeführt werden, um Unterbefehle für die Ausführung der Befehle zu erzeugen.
Der Phasenverteiler 3501 hat, wie dargelegt, 6 Flipflops für die Arbeitsphasen PH1 bis PH 6. Die
Phase 0 (PH 0) ist durch den Zustand definiert, bei welchem alle anderen Phasen ausgeschaltet sind. Es
wird jeweils nur eine Phase gesetzt. Ein Sprung-Unterbcfehl schaltet jeweils von Phase zu Phase
weiter; er wird zeitlich durch den Befehl gesteuert, welcher gerade ausgeführt wird.
Der Zeitsteuerungsverteiler 3502 besteht aus einem Schieberegister mit 15 Flipflops, welche die
Zeitintervalle T von Tl bis Γ15 liefern. Ebenso wie
beim Phasenverteiler 3501 ist jeweils nur ein Flipflop gesetzt. Normalerweise wird 3502 sequentiell
durchgeschaltet, falls nicht ein Sprung von einem anderen T erforderlich ist. Arn Ende einer Phase
ίο wird dieser Verteiler auf 7*1 rückgestellt. Er arbeitet
mit einer Taktgeberfrequenz von drei MHz, so daß jede T-Periode eine Dauer von 1Is Mikrosekunde hat.
Man kann jedoch bei 7*1 langer verweilen, und zwar beliebig lang, z. B., um in einen Speicherzyklus überzugehen,
ein Programmwort zu holen, und dieses in PSR 1 oder PSR 2 zu speichern. Hierzu wird während
dieser Zeit das Γ-Schieberegister 3502 am Verschieben gehindert, und zwar durch das Leitwerk
3020. Wird z. B. ein Programmwort aus dem äüßeren Speicher geholt, so arbeitet der Speicher-Zeitsteuerungszähler
ΓΜ3503 mit 3501 zusammen. 3503 ist ein echter Zähler, und beim Hinaufzählen
werden seine Zählerstände decodiert als TM 3 bis . TM 8 für Eingabe und TM15 oder TM19 bis TM 28
für Ausgabe. Der Übergang zum TM-Zähler 3503 kann zu den Zeitpunkten TM 3, TM15 oder TM19
erfolgen und hängt vom jeweiligen Vorgang ab'. Bei einer Ausgabe aus dem Speicher geht man z. B. beim
Takt TM15 auf Steuerung durch 3503 über, und während 3503 auf TM 28 zählt, wird 3502 in der betreffenden
Γ-Zeit festgehalten, in der er sich befindet, also Tl oder Γ 2 für das Holen eines Programmworts
oder Γ15 für das Holen eines Datenworts. Auch kann ein Sprung von einer späteren Γ-Zeit zurück
zu einer früheren erfolgen, wie das im folgenden an Beispielen erläutert wird. In Fig. 47 sind die
Phasen und Zeiten angegeben, z.B.PH5-3 = Phase 5,
Zeitpunkt 3.
F i g. 4 zeigt das Bedienungsfeld des Prozessors nach Fig. 1. Dieses Feld hat Anzeigelampen für die
Register, Zähler, Verteiler und Flipflops des Prozessors. Leuchtet eine Lampe, so bedeutet dies, daß die
betreffende Binärstelle bzw. Flipflop gesetzt ist.
Oben links ist die Anzeigelampe des Flipflops INT3540 für die Steuerbetriebsart des Prozessors.
Befindet sich der Prozessor in seiner Normalbetriebsart, so ist dieser Flipflop rückgestellt. Das 2?-Regisier
zeigt den zweiten Operanden eines Drei-Adreß-Befehls, der sich im 5-Reg. 3031 des Rechenwerks 3030
befindet. Der Übertragsflipflop OV 3541 wird gesetzt bei einem Überlauf aus dem Addierglied 3032 des
Rechenwerks 3030, und rückgestellt, wenn kein Überlauf vorliegt. Die Lampen des A-Rpg. 3033 zeigen
die Bits 1 bis 48 entweder des ersten Operanden oder des Ergebnisses. Die Lampen des F-Reg. 3015 zeigen
die Operationsteilsilbe des Befehls, der gerade ausgeführt wird. Die Lampen desselben Reg. 3017 zeigen
an, daß eine Sondersilbe oder eine Indexsilbe verwendet wird.
Der Programmsilbenadressenzähler 3504 ist ein Zähler mit drei Binärstellen. Sein Zählerstand zeigt
jeweils an, welche der insgesamt acht Silben im PSR (also PSR 1 oder PSR 2) als nächstes geholt wird.
Dieser Zähler hat die Flipflops PS 1, PS 2, PS 3.
- Normalerweise wird dieser Zähler auf OLL rückgestellt,
was bedeutet, daß als nächstes die höchste ■ Silbe von PSR 1 geholt wird. Nach diesem Vorgang
wird der Zähler auf OLO heruntergezählt, um die
nächsthöchste Silbe holen zu können. Die nächsten Zählerstände für die folgenden Silben sind dann 0OL
und 000.
Falls das PSR 2 ein unbenutztes Programmwort speichert, d. h. bei einer Überlappung (hierzu folgt
noch eine ausführlichere Erläuterung) wird der Zähler 3504 als nächstes auf LLL heruntergezählt,
und dabei wird die höchste Silbe aus PSR 2 geholt. Für die übrigen Silben aus PSR 2 werden die Zählerstände
LLO, LOL und LOO verwendet. Falls jedoch PSR 2 leer ist, d. h. keine Überlappung vorliegt,
wird der Zähler 3504 wieder auf OLL rückgestellt.
Viele der in F i g. 4 dargestellten Flipflops wurden
bereits früher beschrieben, so daß auf die dortigen Beschreibungen, z.B. die Liste am Anfang, verwiesen
werden kann.
PFi (PF 2) in 3505 ist gesetzt, wenn PSR1 (PSR 2)
noch unbenutzte Silben eines Programmworts enthält, und er wird rückgestellt, wenn alle vier Silben in
PSR 1 (PSR 2) verwendet worden sind. Beide Flipflops PFl und PF 2 sind also nur während einer
Überlappung gesetzt. SindPFl undPF2 rückgestellt,
so zeigt dies, daß PSR 1 und PSR 2 leer ist" und ein neues Programmwort aus dem Hauptspeicher geholt
werden muß.
Es soll hier erwähnt werden, daß beim Prozessor nach dem Ausführungsbeispiel der XSP 3099 nur
Datenworte aufnimmt, nicht aber Programmworte. Letzteres wäre möglich, aber bei Ausführung eines
Programms müssen die Programmworte vom äußeren Speicher in die Programmspeicherregister PSR1 und
PSR 2 gebracht werden. . ■
TMZ zeigt bei Aufleuchten an, daß der äußere Speicher nicht benutzt wird; fehlendes Aufleuchten
von TMZ zeigt, daß der äußere Speicher verwendet wird, und die Lampen TM1 bis TM 5 zeigen dann
die spezifischen Speichertakte an.
Der Eingangssilbenzähler/51 und IS 2 3506 dient
zum Einfügen eines viersilbigen Speicherprogrammworts in den inneren Speicher 3001. Er zählt die
Silben, die in PSR 1 und PSR 2 · eingegeben werden, und zwar zählt er von 0 nach 3 und wird dann
wieder nach 0 rückgestellt. Er stellt sicher, daß die niedrigste Silbe, die zuerst vom' äußeren Speicher
kommt, in den niedrigsten Binärstellen von PSR 1 oder PSR 2 gespeichert wird. Beim ersten Zählerstand
wird also der niedrigstwertige Datenabschnitt in der adressierten Speicherstelle des Hauptspeichers
in den Abschnitt 100 von PSR 1 oder den Abschnitt 104 von PSR 2 verschoben. Die höchstwertige Silbe
aus der Speicherstelle des Hauptspeichers geht also in die höchstwertige Speicherstelle des PSR, also in
103 von PSRl oder in 107 von PSR 2. PFl und
PF 2 bestimmen, in welches PSR das Programmwort aus dem äußeren Speicher gebracht wird.
Wenn Daten aus den Programmspeicherregistern entnommen werden, wird die höchste Silbe des adressierten
Registers zuerst adressiert und mit Hilfe der Programmsilbenflipflops 3504 entnommen. Zu diesem
Zweck wird der Programmsilbenadressenzähler 3504 immer zuerst auf binär OLL (= 3) eingestellt. Danach
wird er beim Holen von Silben, wie beschrieben, jeweils um Eins heruntergezählt. '
Ein Silbenzähler 3507 dient zum Zählen der Silben beim Übertragen von Datenworten und zählt dabei
von 0 bis 3 (ebenso wie 3506 bei Pro^rammwörtern).
Ein Kellerspeicher-Adressenzähler 3508 bestimmt, welches der vier Register des Kellerspeichers 3099
bei einem Aus- oder Eingabevorgang gerade verwendet wird, vgl. die Beschreibung zu Fig. 6. Die
höchsten drei Bits der Kellerspeicheradresse werden in dem Dünnfilm-Adressenregister 3510 codiert. Die
beiden nächsten Bits erhält man über den Kellerspeicher-Adressenzähler 3508. Die beiden letzten
Bits, die zwischen 0 und 3 liegen, werden mit dem Silbenzähler 3507 erzeugt. Jedesmal, wenn Daten in
das Rechenwerk oder aus diesem übertragen werden,
ίο wird der Silbenzähler 3507 entsprechend hinauf gezählt.
Speichert man also z.B. Daten aus dem A-Reg. 3033 im Register 140 bis 143 des KSP 3099, so wird
zunächst die niedrigste Silbe 3033 D des /1-Reg. 3033
(vgl. F i g. 2) zur /WP-Adresse 140 übertragen, dann
die zweitniedrigste Silbe zur Adresse 141 usw. Das Leitwerk 3020 erzeugt den Unterbefehl ASTP (adressiere
den Kellerspeicher), wenn im Operationsteil eines Befehls ein entsprechender Markierer gesetzt
ist, wie das eingangs beschrieben wurde. Über die Dünnfilm-Adressenverknüpfung 3018 werden die
ersten drei Flipflops im Dünnfilm-Adressenregister 3510 dann auf LLO eingestellt. Abhängig von der
jeweiligen 7£SP-Adresse im XSP-Adressenzähler 3508
werden die nächsten beiden Flipflops des Adressenregisters 3510 dann auf 00, OL, LO oder LL eingestellt.
Die beiden letzten Flipflops von 3510 werden gesteuert vom Silbenzähler 3507 auf 00, OL, LO oder
LL eingestellt.
Die Einstellung LLO in den ersten drei Flipflops von FAR 3510 gilt nur für den Kellerspeicher, sonst
für kein Register im inneren Speicher 3001.
F/C3509 hat die Stellung L für Eingabe in den
inneren Speicher 3001, und die Stellung 0 für Ausgabe.
Vom ß-Reg. 3016 (Maskenregister) werden in Fig. 4 nur die Binärstellen 3, 5, 9, 11 und 12 angezeigt.
Die einzelnen Lampen des /-Reg. 3003 wurden hinsichtlich ihrer Bedeutung bereits in der Liste am
Anfang der Beschreibung aufgezählt.
Operationsphasen (vgl. Fig. 10)
Bei der Ausführung der Befehle wird mindestens eine Phase verwendet, nicht aber mehr als sechs
Phasen. Hierzu dienen Phasenverteiler 3501 und Zeitsteuerungsverteiler 3502.
Jede Phase dient zur Ausführung eines Befehlsabschnitts. Der normale Ablauf ist, von Phase 1 zu
Phase 2 zu Phase 3 usw. zu gehen, und zwar bis zur erforderlichen Zahl von Phasen.
Nur eine Phase ist erforderlich für bestimmte Befehle ohne Adresse, während für bestimmte 3-Adreß-Befehle
sechs Phasen erforderlich sind.
Kurze Beschreibung der Phasen
1. Phase Null (PHO). Diesen Zustand nimmt der
Prozessor direkt nach dem Einschalten ein. Falls der Startschalter für automatisches Programm eingeschaltet
ist, versucht der Prozessor, automatisch anzulaufen. Diese Phase wird hauptsächlich für manuelle
Ausgabe aus dem oder manuelle Eingabe in den inneren Speicher 3001 beim Aufstellen eines Programms
benutzt.
2. Phase Eins (PH 1). In dieser Phase wird im allgemeinen
die Operationsteilsilbe aus PSR1 oder PSR 2 geholt und — über das E-Reg. 3005 — im
F-Reg. 3015 gespeichert. Das nachfolgende Decodieren der Silbe ergibt den auszuführenden Befehl.
409 621/183
Phase 1 wird immer benutzt, so daß bei jedem Befehl mindestens eine Phase, aber nicht mehr als sechs
Phasen benutzt werden.
3. Phase Zwei (PH 2). Abhängig vom Befehl wird
in dieser Phase folgendes ausgeführt:
a) Holen eines Operanden, also eines Datenworts, aus dem äußeren oder inneren Speicher und
Speichern dieses Operanden im Λ-Reg. 3033.
b) Speichern eines Ergebnisses (Datenworts) im äußeren oder inneren Speicher.
c) Holen eines Verzweigungs-Programmworts aus dem Hauptspeicher und Speichern dieses Worts
in PSR 1 oder PSR 2.
d) Holen einer Sondersilbe aus PSR 1 oder PST? 2
und Speichern im entsprechenden Arbeitsregister.
4. Phase Drei (PH 3). Reserviert für den Äusführungsabschnitt
einiger Befehle.
5. Phase Vier (PH 4). Ähnlich PH 2, wobei aber der zweite vom inneren oder äußeren Speicher geholte
Operand im B-Reg. 3031 gespeichert wird.
6. Phase Fünf (PHS). Ebenfalls reserviert für den
Ausführungsabschnitt einiger Befehle.
7. Phase Sechs (PH 6). Abhängig vom Befehl dient diese Phase folgendem Zweck:
a) Speichern eines Ergebnisses aus dem Λ-Reg. 3033.
b) Holen eines Verzweigungs-Programmworts aus dem Hauptspeicher und Speichern in PSR1
oder PSR 2.
Die Lampen des Phasenverteilers 3501 (Fig. 4) zeigen das Fortschreiten von PHl nach PH 6.
Der Zeitsteuerungsverteiler 3502 wird während jeder Phase dazu benutzt, die in dieser Phase aufeinanderfolgenden
Schritte auszuführen; am Ende einer Phase wird er jeweils auf Tl rückgestellt. Seine
Arbeitsweise wurde bereits weiter oben beschrieben.
Rechenwerk 3020 (F i g. 2)
In F i g. 2 bedeuten die in Klammern gesetzten Zahlen die Anzahl der Binärstellen. Zwischen Ä-Reg.
3033 und B-Reg. 3031 liegt ein Addierglied 3032. Ferner ist das C-Reg. 3034 vorgesehen, das, wie beschrieben,
als Pufferspeicher für TFC124 bis TFC1Π dient, wobei in ihm die Daten bearbeitet
werden. Ferner enthält das Rechenwerk Feldauswahllogik sowie spezielle, dem A -Register zugeordnete
Datenverschiebewege, die nicht mit Bezugszeichen versehen sind.
Das Λ-Register speichert AUGEND, MINUEND, Produkt oder Dividend beim Addieren, Subtrahieren,
Multiplizieren bzw. Dividieren. Entsprechend speichert dabei das B-Register Addend bzw. Subtrahend
bzw. Multiplikant bzw. Divisor. Das C-Register speichert beim Multiplizieren oder Dividieren Multiplikator
oder Quotient.
Alle Übertragungen erfolgen mit 12 Bits gleichzeitig und seriell, viermal für insgesamt 48 Bits. Dies ist
eine Serien-Parallel-Übertragung. Wie bereits beschrieben, werden bei der Eingabe in ein Register
zuerst die niedrigsten 12 Bits in das höchste Register übertragen, also z. B. in 3033,4 oder 3031Λ. Bei der
nächsten Übertragung wird dann z. B. der Inhalt von 3033 Λ nach 3033 B verschoben usw. Bei Ausgabe
verläuft der Vorgang umgekehrt, d. h., zuerst wird z. B. die niedrigste Silbe aus 3033 D heraus übertragen
usw.
Alle Resultate gelangen in das /4-Register, von wo
aus sie dann in den äußeren oder inneren Speicher gelangen (gesteuert vom F-Reg. 3015).
Das C-Reg. 3034 dient während der Rechenoperationen als Akkumulator und überträgt jeweils zwölf
errechnete Bits zum TFC-Reg. 124 bis 127. Bei Multiplikationen erhält es jeweils 12 Bits des Multiplikators
aus dem TFC-Reg. 124 bis 127, und es überträgt das Ergebnis zurück nach TFC. Bei der
ίο doppelten Verschiebung ergibt sich eine doppelte
. Genauigkeit, wenn alle 96 Bits eines 2-Wort-Ergebnisses verschoben werden sollen., (Bei Rechnen mit
doppelter Genauigkeit erhält man ein Ergebnis, das 96 statt 48 Bits hat.)
«5 Man kann sich das Λ-Register als in zwei Sektionen
geteilt vorstellen, nämlich 1 W mit den Binärstellen 1 bis 12 und IW mit den Binärstellen 13 bis
48. Die meisten Befehle betreffen beide Sektionen, aber einige Unterbefehle betreffen nur 1W oder 2 W.
Analog kann man sich auch das B-Register in zwei Sektionen 1 Z und 2 Z aufgeteilt denken.
Betrieb des Prozessors
Der Aufbau der einzelnen Programmsilben und ihre Zusammenstellung zu Befehlen wurde eingangs
bereits ausführlich beschrieben. Die Befehle werden direkt aufeinanderfolgend geschrieben, wobei der Beginn
des ersten Befehls mit dem Beginn eines Speicherworts zusammenfällt. Vor dem Laden eines vom
Programmierer geschriebenen Programms wird das Organisationsprogramm für die ganze Anlage geladen.
Hierzu werden ■> auf dem Bedienungsfeld von
Hand die dort vorgesehenen Schalter eingestellt, um einen Eingabe-Deskriptor zu simulieren. Dieser Deskriptor
sendet ein Signal zum Streifenabtaster oder Magnetband-Transport (vgl. F i g. 3), um das Organisationsprogramm
in den Hauptspeicher einzugeben. Der Deskriptor (ein binäres Signal) gibt an, welches
der peripheren Geräte benutzt wird, ob eine Ein- oder eine Ausgabe vorliegt, wieviele Worte in den
Hauptspeicher geladen werden sollen, und welches die Anfangsadresse im Hauptspeicher ist, ab welcher
geladen werden soll. Das Organisationsprogramm oder Betriebssystem bewirkt dann das Laden spezifischer
Programme an bestimmten Stellen des Hauptspeichers.
Zum Laden eines Programms wird dann das Programmzählregister
057 von Hand geladen, und das Programm läuft darauf hin automatisch an und lädt
als erstes das Basisadressenregister BAR 055 und das Basisprogrammregister BPR 056. Letzteres wird aber
nur benötigt, wenn das Programm eine Verzweigung enthält. Nach dem erstmaligen Laden ändert sich der
Inhalt von BAR 055 und BPR 056 während des Ablaufs eines Programms vielmals.
Wie bereits erläutert, zeigen PFl und PF 2 3505
an, ob PSR 1 und PSR 2 voll oder leer sind. Jedesmal, wenn eine Silbe aus PSR 1 oder PSR 2 entnommen
wird, kann dies die letzte Silbe in diesem Register sein, so daß das Programmspeicherregister
dann leer ist. Dies wird von PF1 und PF 2 angezeigt.
Zu einem solchen Zeitpunkt wird der Inhalt von PCR0S7 in das ÜT/E-Register übertragen; der Inhalt
des Ä/E-Registers w'r£* sodann um »1« hinaufgezählt
(in 3008 und 3009). Das Resultat wird in das LIM-Register übertragen, und zwar gesteuert vom Leitwerk
3020. Jetzt enthält das L/M-Register die Adresse
jes nächsten Programmworts im Hauptspeicher, und
der Speicheranforderungsflipflop RFF in der Speichersteuereinheit
3551 des Leitwerks wird gesetzt, um Zusriff zu dieser Speicheradresse zu erhalten. Ist der
betreffende Speicher frei, so wird das betreffende Prosrammwort in das M-Reg. 3007 übertragen und
von" dort über das E-Reg. 3005 in das PSR 1 verschoben.
Der Eingangssilbenzähler 3506 bewirkt, daß Jie erste Silbe vom E-Reg. 3005 in das Reg. 100 von
PSR 1 eingegeben wird, die zweite in das Reg. 101 usw. Gleichzeitig wird PF 1 wieder gesetzt und zeigt
an. daß PSR 1 wieder ein Programmwort enthält.
Bei der Übertragung vom Hauptspeicher wird die. niedrigste Silbe zuerst übertragen, während beim
Programmablauf zuerst die höchste Silbe verwendet wird. Deshalb zählt der Programmsilbenadressenzähler
3504 im Leitwerk herunter, wenn die Programmsilben nacheinander verwendet werden, so daß
zuerst die Silbe im Reg. 103 von PSR 1 verwendet wird, dann die Silbe im Reg. 102 usw.
PSR 2 wird nur verwendet, wenn eine Programmüberlappung
vorliegt, nämlich bei der Ausführung langer Befehle, wenn die K-, E-, L- Und M-Register
nicht zur Befehlsausführung verwendet werden. Gleichzeitig mit der Befehlsausführung wird das
Holen eines Programmworts eingeleitet, und dieses wird in PSR 2 geladen, und PF 2 wird gesetzt. Dies
wird im folgenden noch ausführlicher beschrieben.
Nimmt man an, die erste Silbe des im PSR 1 gespeicherten Programmworts sei ein Operationsteil
(was keineswegs immer zutrifft, da die Befehlsgrenzen nicht mit den Wortgrenzen zusammenfallen müssen),
so wird diese Silbe von PSR 1 in das E-Reg. 3005 und von dort in das F-Reg. 3015 übertragen. Der
Operationscode des Operationsteils wird decodiert, und der erste Markierer A 1 (vergleiche z. B. F i g. 7
links oder F i g. 8 links oben) wird untersucht. (Die Bedeutung der Markierer A 1 bis A 3 wurde eingangs
bereits ausführlich erläutert.)
Es sei angenommen, der Inhalt von A 1 sei »00«, d.h. »KSP normal«. Dies heißt, daß die Daten aus
dem KSP 3099 geholt werden, und zwar aus dem vom £SP-Adressenzähler 3508 adressierten Register, und
daß 3508 dann weitergezählt wird. (Zum Adressieren der Silben in dem adressierten Register des KSP dient
der KSP-Silbenzähler 3507).
Die Daten aus dem betreffenden Register des KSP werden über das Ε-Register zum Λ-Register gebracht.
Falls der Befehl ein Befehl mit zwei Operanden ist, wird der zweite Operand in ähnlicher Weise in das
5-Register gebracht.
Falls der Markierer A 1 die Daten »L0« enthält, wird die auf den Operationsteil folgende Silbe, die
dann eine relative Speicheradresse enthält (vgl. die
Erläuterung zu Fig. 45), aus dem PSR1 in das
E-Reg. 3005 übertragen. Die elf niedrigsten Bits dieser Silbe werden in die niedrigsten 11 Binärstellen
des Λί-Reg. 3007 übertragen, während die höchste Bitstelle IA (vgl. die Silbe »M« in Fig. 8) in den
Flipflop IAF 3548 (F i g. 4) für indirektes Adressieren übertragen wird. Dann wird der Inhalt (16 Bits) des
BAR 055 aus dem inneren Speicher 3001 in die ^/Ε-Register übertragen, und über die Addierglieder
3008 und 3009 zum Inhalt der L/M-Register addiert. Das Resultat wird im L/M-Register gespeichert und
stellt die absolute Adresse im Hauptspeicher dar. Der betreffende Speicher wird dann adressiert, und es
wird ein Datenwort über das M-Register in das /!-Register übertragen. (Dies gilt natürlich für den
Fall ohne indirektes Adressieren, also mit IA = 0.)
Falls /λ = L ist, werden beim Übertragen des
Datenworts aus dem Speicher seine zwölf niedrigsten Bits über das M-Register zum Ε-Register übertragen.
Die nächsthöheren vier Bits werden dagegen über das M-Register zum K-Reg. 3004 übertragen, während
Bit 8 dieser zweiten Übertragung über das M-Register zum IAF 3548 übertragen wird. Bit 7 im M-Register
ίο wird als Zeichenbit untersucht und bewirkt, falls vorhanden,
daß eine Halteunterbrechung im Unterbrechungsregister 3002 gesetzt wird.
Danach werden die 16 Bits aus dem X/E-Register,
welche eine neue absolute Speicheradresse darstellen, in das L/M-Register übertragen, und der Hauptspeicher
wird erneut adressiert.
' Falls im neuen Datenwort wieder IA = L ist, geht das indirekte Adressieren weiter. Sonst wird dieses Datenwort als Operand verwendet und in das A-Register übertragen.
' Falls im neuen Datenwort wieder IA = L ist, geht das indirekte Adressieren weiter. Sonst wird dieses Datenwort als Operand verwendet und in das A-Register übertragen.
Als nächstes soll ein Befehl betrachtet werden, bei welchem der Markierer A 1 den Wert LL hat (vgl.
z. B. den bereits beschriebenen Befehl nach F i g. 44).' Dies bedeutet, daß die nachfolgende Speicheradresse
as" indiziert ist. — Die erste, auf die Operationsteilsilbe
folgende Silbe wird aus PSR1 geholt und über das
Ε-Register in das Silbenregister 3017 übertragen. Dies ist die Indexsilbe. — Die nächste Silbe wird in
das Ε-Register übertragen, und von dort werden ihre elf niedrigsten Bits in das M-Register gebracht, und
das höchste Bit kommt nach L4F 3548. Die 16 Bits
von BAR 055 werden in das ÄVE-Register übertragen,
zum Inhalt des L/M-Registers addiert, und das Resultat wird in das L/M-Register gebracht. Zu-
nächst wird in der beschriebenen Weise das indirekte Adressieren durchgeführt, und dann wird am Resultat
des indirekten Adressierens, also relative Adresse :
+ BAR, das Indizieren durchgeführt.
Die Binärstellen des Silbenregisters 3017 enthalten drei Indexregisteradressen, nämlich die Adressen von drei der 15 Indexregister oktal 001 bis 017. Zunächst wird die erste Indexregisteradresse im Silbenregister 3017 geprüft, der Inhalt des angegebenen Indexregisters wird in. das K/E-Register übertragen, zum Inhalt des L/M-Registers addiert und im L/M-Register zwischengespeichert.
Die Binärstellen des Silbenregisters 3017 enthalten drei Indexregisteradressen, nämlich die Adressen von drei der 15 Indexregister oktal 001 bis 017. Zunächst wird die erste Indexregisteradresse im Silbenregister 3017 geprüft, der Inhalt des angegebenen Indexregisters wird in. das K/E-Register übertragen, zum Inhalt des L/M-Registers addiert und im L/M-Register zwischengespeichert.
Auf die gleiche Weise werden die Inhalte derjenigen Indexregister, die durch die beiden anderen
4-Bit-Adressen im Silbenregister 3017 angegeben werden, jeweils in das /C/E-Register übertragen, von
dort zum Inhalt des L/M-Registers addiert, und in jedem dieser beiden Fälle wird das Resultat in das
L/M-Register gebracht. Man erhält also dann, wie oben bei F i g. 44 bereits beschrieben, als absolute
Adresse im L/M-Register die relative Adresse plus Inhalt von BAR 055 plus Inhalte der drei adressierten
Indexregister. (Es können natürlich auch weniger Indexregister verwendet werden, indem man in der
Indexsilbe als Adresse für ein nicht verwendetes Indexregister 0000 angibt, wie das in Fig. 44 im
Beispiel dargestellt ist.)
Falls der Befehl zwei Operanden enthält, verläuft der Vorgang beim zweiten Adressenmarkierer A 2
völlig analog, und das Datenwort wird in das B-Re-
S5 gister gebracht.
Bei einem Befehl mit zwei Operanden kommt der erste ins Λ-Register, der zweite ins B-Register, und
der dritte Markierer A 3 zeigt dann an, wo das
Resultat gespeichert werden soll. Bei einem Befehl mit nur einem Operanden zeigt dagegen der zweite
Markierer A 2 an, wo das Resultat gespeichert werden soll.
Wenn der Befehl ausgeführt ist, erscheint das Ergebnis im .^-Register. Dann wird die Speicheradresse
errechnet, falls im Hauptspeicher gespeichert werden soll, wobei die Adressenrechnung genau wie bei den
Operanden verläuft. Die Übertragung in den Hauptspeicher erfolgt, beginnend mit der niedrigsten Silbe,
aus dem A -Register über das M-Register zum Hauptspeicher. Die Übertragung zum KSP 3Q99 erfolgt
analog, aber über das is-Register.
Bei Speicherung im Hauptspeicher berechnet der Prozessor die Parität des übertragenen Datenwortes
und sendet sie zum Hauptspeicher. Diese Parität wird bei einer Übertragung aus dem Hauptspeicher vom
Prozessor oder vom 2L4-Werk (Fig. 3) geprüft. Der
Hauptspeicher selbst prüft die Parität nicht.
Einige Befehle enthalten Variantensilben, die eingangs bei F i g. 8 bereits erläutert wurden. Sie dienen
zum Modifizieren der Daten oder liefern zusätzliche Daten für die Befehlsausführung. Gesteuert vom
F-Register 3015 werden diese Silben aus dem PSR1
oder PSR 2 über das ^-Register in das M-Register übertragen. Sie können ähnlich wie die »M«-Silben
indiziert werden. Wenn Indizieren angezeigt ist, werden die Varinantensilben aus dem M-Register in das
Silbenregister 3017 übertragen und dort für das Ausführen des Befehls verwendet.
Arbeitsweise
Im folgenden werden die Befehlsarten, die Phasen, die Maschinenprogramme (Routinen) und ihre Ausführung
erörtert. Schließlich werden noch Beispiele für die Ausführung einiger Befehle erläutert.
Befehlsarten
F i g. 9 zeigt die Befehlsarten nach der Zahl von Adressen geordnet.
Ein Befehl ohne Adresse ist der Befehl HALT. Dieser besteht nur aus dem Operationscode, also
6 Bitstellen. A1, A 2 und A 3 werden nicht benötigt und sind Leerstellen, da keine Adressen verwendet
werden.
Ein Befehl mit einer einzigen Adresse ist der Befehl »Lösche« (CLA). Er kann eine Stelle des KSP
oder eine Speicherstelle im Hauptspeicher löschen. Hierzu wird das v4-Register gelöscht und dann sein
Inhalt zur betreffenden Adresse übertragen. Der Markierer A 1 gibt dabei an, ob im KSP oder im
äußeren Hauptspeicher gelöscht werden soll. Die Markierer A 2 und A 3 werden nicht benötigt.
F i g. 48 zeigt, wie der Programmierer vorgeht, wenn er ein Programm aus 10 Worten in den ersten
zehn Speicherstellen des Hauptspeichers 3 speichern will. Hierzu stellt er das Programmzählregister
PCR 057 (F i g. 1 A) auf den ersten Programmschritt minus Eins. Falls dies z. B. die Speicherstelle 0000
im Hauptspeicher 3 ist, stellt er das PCR 057 auf oktal 027777 ein. Dies ist das letzte Wort, das im
Hauptspeicher Nr. 2 gespeichert werden kann, so daß das nächstfolgende Wort das erste Wort im Hauptspeicher
Nr. 3 sein wird.
Sodann stellt der Programmierer das Grenzenregister 1 (021) auf oktal 7765. Zwölf Worte oktal
sind gleich zehn Worte dezimal, d.. h. 7765 ist 12 Worte weniger als 7777. Oktal 7777 ist das Äquivalent
von dezimal 4096 Worten, was, wie eingangs angegeben, die Zahl von Worten ist, die in jedem der
maximal 16 Hauptspeicher gespeichert werden kann., Dies ermöglicht dem Programmierer, den Speicher
zu testen, in dem sich dieses Programm befindet.
Das Programm nach Fig. 48A wird also in die
ersten 10 Speicherstellen des Hauptspeichers Nr. 3, also die Stellen oktal 0000 bis oktal 0011, beschrieben.
Auch das Musterprogramm ist oktal geschrieben, d. h. jeweils 12 Bits entsprechen 4 Oktalziffern.
Wie die Rechtecke zeigen, die um die einzelnen Befehle herumgezeichnet sind, kann die Befehlslänge
ganz verschieden sein, und die Befehle können Längen zwischen einer und sieben Silben (aus je vier
Oktalziffern) haben. (Im Beispiel nach F i g. 48 ist die größte dargestellte Befehlslänge sechs Silben; es
ist also zufällig ein Befehl mit sieben Silben dargestellt.) ■ ' .
a0 Die erste Oktalzahl 1544 ist eine Operationsteilssilbe und steht für binär 00LL0LL00L00 (vgl.
Fi g. 48 B). Dies ist der Befehl STF »Speichere Dünnfilm«. Al hat den Wert LO, A2 den Wert OL, und
A 3 ist 00. (A 3 wird nicht benötigt, da STF ein Zwei-Adreß-Befehl
ist [vgl. Fig. 9]).
Da die Befehle im Hauptspeicher direkt aneinander anschließen und da die einzelnen Befehle jeweils
nur so viele Silben haben, wie benötigt werden, wird sehr viel Speicherkapazität und Rechenzeit gespart.
Gewisse Leerstellen im Hauptspeicher lassen sich aber bei Verzweigungen nicht vermeiden, da bei einer
Verzweigung zu einem anderen Programm das erste Programmwort im Speicher immer mit einer Operationsteilssilbe
beginnen muß, denn definitionsgemäß ist immer die erste Silbe eines Programms ein Operationsteil,
und eine Verzweigung kann folglich nur zum Beginn eines Programmworts erfolgen, nie zu
dessen zweiter, dritter oder vierter Silbe. Wenn also die Verzweigung nicht gerade mit der vierten Silbe
eines Programmworts endet, wird dieser Teil des betreffenden Wortes nicht benutzt.
Betrachtet man nun das erste Programmwort in Fig. 48A, so sieht man, daß seine niedrigste Silbe
den Inhalt »0055 oktal« hat. Beim Übertragen in das PSR1 wird diese Silbe als erste übertragen und
kommt also in die Adresse 100 von PSR1. Die zweitniedrigste
Silbe »3030 oktal« dieses Wortes kommt dann in die Adresse 101 von PSR1, usw.
Da nach dem Übertragen dieses ersten Wortes nach PSR1 der Programmsilbenadressenzähler 3504 wie beschrieben auf OLL steht, wird bei der Verarbeitung dieses .Programmwortes als erstes (in Phase 1) dessen höchste Silbe (1544 oktal) in das F-Register 3015 übertragen. Da der Prozessor erkennt, daß dies ein Befehl ist (erste Silbe im ersten Wort eines Programmblocks), erfolgt die Übertragung in das F-Register 3015.
Da nach dem Übertragen dieses ersten Wortes nach PSR1 der Programmsilbenadressenzähler 3504 wie beschrieben auf OLL steht, wird bei der Verarbeitung dieses .Programmwortes als erstes (in Phase 1) dessen höchste Silbe (1544 oktal) in das F-Register 3015 übertragen. Da der Prozessor erkennt, daß dies ein Befehl ist (erste Silbe im ersten Wort eines Programmblocks), erfolgt die Übertragung in das F-Register 3015.
In Phase 1 wkd ferner der Inhalt des F-Registers
3015 decodiert, und zwar stellt »15 oktal« den Befehl »Speichere Dünnfilm« dar. Al hat binär den
Inhalt »L0«, was bedeutet, daß auf die Operationsteilssilbe als erstes eine nicht indizierte Operandensilbe folgt, nämlich die "Silbe »0057 oktal«. A2 mit
dem binären Wert »ÖL« bedeutet, daß das Resultat Tm KSP 3099 gespeichert werden soll, wes'halb hierfür
keine Operandensilbe mehr folgt, d. h. dieser Befehl hat laut Angabe in Al und A 2 nur eine
Länge von 2 Silben. ·. .
Der Befehl »Speichere Dünnfilm« (STF) enthält t-emäß Fig. 9B eine Sondersilbe »T«, deren Aufbau
fn Fig. 8 rechts dargestellt ist. Diese Silbe wird in
Phase 2 in das Silbenregister 3017 übertragen. Sie enthält also eine Dünnfilmadresse, d. h. eine Adresse
im inneren Speicher 3001. Diese Adresse in der zweiten Silbe »0057 oktal« ist »057«, nämlich die oktale
Adresse des Programmzählregisters PCR 057.
In Phase 3 wird der Inhalt des PCR 057 in das
.(-Reg. 3033 übertragen.
In Phase 4 wird der Inhalt des A-Reg. 3033 in
diejenige Kellerspeicheradresse übertragen, die im Markierer Al (OL) angegeben ist, also das oberste
Register des KSP 3099. Dann springt der Phasenverteiler
3501 wieder auf Phase 1 zurück, und der Zeitsteuerungsverteiler 3502 springt auf den Zeitpunkt
Tl. Dies erfolgt automatisch durch das Leitwerk 3020, da der Befehl STF nur vier Phasen benötigt.
Während des ersten Befehls wurde also eine im Programmzählregister PCR 057 eingestellte Zahl (die
der Programmierer z. B. von Hand am Bedienungsfeld eingestellt hatte) in den Kellerspeicher 3099
übertragen. (Der genaue Ablauf dieses Befehls ist in Fig. 72 der zugehörigen DOS dargestellt und dort
ausführlich beschrieben.)
Nach Ablauf des ersten Befehls wird der zweite Befehl »3030 0055« verarbeitet. »3030 oktal« ist die
Operationsteilssilbe und wird in das F-Reg. 3015 übertragen und dort decodiert. Die erste Hälfte dieser
Silbe, nämlich »30 oktal«, ist der Befehl »Lade den Dünnfilm« (LTF), also ebenfalls ein 2-Adreß-Befehl
(vgl. Fig. 9B), dessen Operandensilbe »0055 oktal« ebenfalls eine »T«-Silbe gemäß Fig. 8 ist und
die Adresse im inneren Speicher 3001 angibt, zu welcher übertragen werden soll, hier also die Adresse
055, d. h. die Adresse des Basisadressenregisters BAR 055.
Im zweiten Befehl wird also der Wert, der im ersten Befehl im KSP 3099 gespeichert worden war,
nach BAR 055 übertragen.
Die beiden ersten Befehle waren Sonderbefehle. Nun ein Beispiel für eine andere Befehlsart. Das
vierte Wort 0003 enthält einen viersilbigen Befehl, dessen Operationsteilsilbe »3554 oktal« angibt, daß
es sich um den 2-Adreß-Befehl »Übertrage« (TRS) handelt, bei welchem der Inhalt einer ersten Speicherstelle
(im inneren oder äußeren Speicher) in eine zweite Speicherstelle (im inneren oder äußeren Speicher)
übertragen wird.
Das binäre Äquivalent des Operationsteils »3554 oktal« ist OLL LOL/LO/LL/00. Der Markierer A 1
hat also den Wert LO, d. h. daß als erstes eine nichtindizierte Adressensilbe auf den Operationsteil folgt.
(Dies ist die Silbe »0011 oktal«.) Der Markierer A 2
hat den Wert LL, was bedeutet, daß als nächstes eine Indexsilbe (0001 oktal) folgt und dann eine indizierte
Adressensilbe 0012 oktal). Aus der Indexsilbe entnimmt man, daß nur das Indexregister 001 im inneren
Speicher 3001 verwendet wird. (Die beiden anderen Indexregisteradressen in dieser Silbe sind also
leer.) Es wird also bei der Adressenrechnung wie bereits beschrieben der Inhalt des BAR 055 zur relativen
Adresse in der vierten Silbe (oktal 0012) addiert, und dann wird zu dieser Summe der Inhalt des
Indexregisters XROOl addiert, um die obsolute Adresse im Hauptspeicher zu erhalten. (Der Markierer
A 3 wird bei diesem Befehl nicht benötigt, da es sich um einen 2-Adreß-Befehl handelt. Dies wird
dadurch erreicht, daß das Leitwerk 3020 nach Ablauf von Phase 4 zur Phase 1, Γ1 zurückspringt.)
Die übrigen Teile des Musterprogramms nach F i g. 48 A werden analog ausgeführt und werden
deshalb nicht erläutert. Es sei noch darauf hingewiesen, daß die Worte 0005 und 0006 zusammen
einen Befehl mit 6 Silben enthalten, der sich ersichtlich auch über drei Worte hinweg erstrecken könnte:
Speichern zweier Programmworte in PSR1 und PSR 2
bei einer sogenannten Überlappung
Bei der Erläuterung des Programmsilbenadressenzählers 3504 und von PFl und PF 2 wurde bereits
die sogenannte Überlappung erwähnt. Hierunter wird verstanden, daß im Verlauf eines langen Befehls.
z.B. BDV, BSU, FDV, FMU (vgl. Fig. 9A), also eines Multiplizier- oder Dividierbefehls, ein zusätzliches
Programmwort im Verlauf der Befehlsausführung aus dem äußeren Hauptspeicher in ein sonst
leeres Programmspeicherregister, meist also PSR 2, übertragen wird, und zwar während der Phasen 3
oder 5 der Befehlsausführung. Dies erfolgt also gleichzeitig mit dem Verarbeiten von Programmsilben
aus dem anderen Programmspeicherregister durch den Prozessor, so daß der Programmablauf beschleunigt
wird, da unmittelbar nach Verarbeitung der Programmsilben in PSRl die Silben in PSR2
(oder umgekehrt) verarbeitet werden können.
Multiplizier- oder Dividiervorgänge eignen sich besonders gut für eine solche Überlappung, da im
Rechenwerk bei der Befehlsausführung zahlreiche Schiebevorgänge erforderlich sind und hierfür einige
Zeittakte T des Zeitsteuerungsverteilers 3502 benötigt werden, so daß während dieser zweiten Phase (gewohnlich
in Phase 5) genügend Zeit für eine. Übertragung eines Programmworts aus dem äußeren Hauptspeicher
in das PSR zur Verfügung steht.
Voraussetzung für eine solche »Überlappung« ist naturgemäß, daß mindestens eines der PSR leer ist,
was durch PF1 und PF 2 angezeigt wird.
Vorgänge während der einzelnen Phasen
Bei jedem Befehl des Prozessors läuft gemäß dem in Fig. 10 dargestellten Ablaufplan eine Folge von
Operationen in spezifischen Phasen ab, und zwar gesteuert vom Leitwerk 3020. Dies wurde bereits weiter
oben kurz beschrieben. Im folgenden werden die einzelnen Phasen an Hand von Programmablaufplänen
näher beschrieben.
Phase Null
PH 0, Γ 0 ist der Zustand des Prozessors nach dem
Ablauf der Einschaltvorgänge. Hierbei werden alle Flipflops durch ein Signal auf ihre Anfangszustände
eingestellt. Der Prozessor versucht dann bei entsprechender Einstellung, automatisch anzulaufen und
hält in PH l,T0 an. Ein automatischer Anlauf eines
Prozessors kann auch durch einen anderen Prozessor oder durch ein manuelles Betätigen des Startknopfs
(Fig. 4) erreicht werden. Befindet sich der Funktionsschalter (Fi g. 4, unten rechts) in der Stellung
»Lese Dünnfilm«, so werden die Daten aus demjenigen Speicherplatz des inneren Speichers 3001, der
durch die Adressenschalter TFA1 bis TFA 3 (F i g. 4, unten) festgelegt ist, nach Drücken des
Startknopfs in das K/E-Register übertragen. Befindet
sich dagegen der Funktionsschalter in der Stellung
409 621/183
stellen des /-Reg. 3002 im PDR 065 gespeichert. Bei
Phase Eins (Holen des Operationsteils) d) springt das Leitwerk dann auf PH1, TO, und die
(vgl.hierzuFig.il) 20 Betriebslampe des Prozessors erlischt.
F i g. 12 B zeigt den Wiederanlauf nach einem
In Phase 1, Zeitpunkt 1 (im folgenden abgekürzt Leistungsausfall. Hierzu wird zunächst bei a) unterals
PHl, Tl) werden folgende Operationen vorge- sucht, ob der (nicht dargestellte) Schalter für autonommen:
Rückstellen von: F-Reg. 3015, L/M-Re- matischen Programmanlauf eingeschaltet ist. Falls
gister, D-Reg. 3546, Silbenzähler 3507 (SY 1 und 25 dies nicht der Fall ist, bleibt gemäß b) der Zeitsteue-
SY2), Eingangssilbenzähler 3506, MC-Flipflops, rungsverteiler 3502 auf TO stehen. — Als nächstes
BRF3548, und IRJ 3545. Bei b) wird geprüft, ob wird bei c) der Furiktionsschalter in Fig. 4 rechts
IPF 3545 gesetzt ist, d. h. ob ein Netzausfall vorliegt, unten untersucht, ob er in einer der folgenden vier
worauf gegebenenfalls die Routine nach Fi g. 12 ein- Stellungen steht: Betrieb; bedingter Stillstand; einzelgeleitet
wird. Im Block c) wird geprüft, ob ein Flip- 30 ner Befehle; einzelne Phase. Steht er in keiner dieser
flop HTC für die Stillstandsbedingung gesetzt ist. Stellungen, so muß er sich in einer der drei folgenden
Falls ja, wird der Zeitsteuerungsverteiler 3502 zum Stellungen befinden: Einzelner Impuls; Lade Dünn-Takt
TO zurückgeschaltet und dort angehalten, und film; Lese Dünnfilm. In jedem dieser drei Fälle bleibt
die Betriebsanzeigelampe des Prozessors erlischt. der Prozessor bei T 0 stehen.
Als nächstes wird immer noch bei PH 1,Tl der 35 In den erstgenannten vier Fällen geht der Prozessor
/ΛΓ-Flipflop 3545 geprüft (Block e). Falls er gesetzt zum Schritt d), wo der Inhalt von PDR 064 in das
ist, läuft die Routine nach F i g. 13 b. K/Zs-Register übertragen wird. Bei e) wird die Binär-
AIs nächstes wird bei f) das /-Reg. 3002 daraufhin stelle 10 des Zs-Reg. 3005 (die der Stellung von
geprüft, ob eine seiner Binärstellen gesetzt ist, und IPF 3545 entspricht) untersucht, und falls diese Stel-
gegebenenfalls die Routine nach Fig. 14 eingeleitet. 4° lung Eins ist, zeigt dies an, daß ein Leistungsausfall
Dann wird bei g) der RPF 3545 geprüft, ob ein vorausgegangen ist. Ist dagegen diese Stellung Null,
Wiederholungsbefehl vorliegt und gegebenenfalls die so zeigt dies an, daß kein Leistungsausfall vorher-
Routine nach F i g. 15 eingeleitet. ging, und dann wird bei f) der Flipflop HTC für die
Als nächstes werden bei h) PF1 und PF 2 3305 Haltebedingung gesetzt und danach bei h) der Inhalt
untersucht, und es wird gegebenenfalls das PSR mit 45 von PDR 065 in das K/E-Reg. übertragen und das
einem neuen Programmwort gefüllt (Routine nach /-Reg. 3002 auf seinen Zustand vor dem Leistungs-
F i g. 24). ausfall rückgestellt.
Bei i) wird dann in PHl in den Takten Tl, T2, Bei i) wird PDR064 gelöscht, und das Leitwerk
T 3 die Operationsteilssilbe aus PSR 1 oder PSR 2 springt dann auf PH1, T1 zurück,
geholt und im F-Reg. 3015 gespeichert. 50 Falls die Binärstelle 10 des E-Registers gesetzt
geholt und im F-Reg. 3015 gespeichert. 50 Falls die Binärstelle 10 des E-Registers gesetzt
Bei PHl, TA wird vom Prozessor der Operations- war, also den Inhalt Eins hatte, zeigt dies das Vorcode
der Operationsteilsilbe, also deren Bits 1 bis 6 ausgehen eines Leistungsausfalls an. Hier werden
(F i g. 42), untersucht, um zu sehen, ob ein Befehl bei g) folgende Flipflops in ihren Zustand vor dem
ohne Adresse vorliegt oder nicht. Fig. 11 enthält die Leistungsausfall gebracht: PFl und PF2, SA 1 und
Beschreibung einiger weiterer Zeittakte, auf die der 55 SA 2, INT, RSF, PSl, PS 2 und PS 3, RPF, FRP,
Kürze halber verwiesen wird. (HLT, SRR und IRR POV, PUN und PNN. Auch wird die erste Binärsind
Befehle, vgl. Fig. 9.) stellel des I-Reg. 3002 gesetzt, um dem Program-
Bei p) prüft der Prozessor am Flipflop INT 3540, mierer anzuzeigen, daß gerade die Routine nach
ob die Steuerbetriebsart vorliegt. Falls ja, wird der Fig. 12B ausgeführt wurde. Die weiteren Schritte
Flipflop HTC (Haltebedingung) gesetzt, der Befehl 60 h, 1 und j wurden bereits beschrieben. Schritt i) erbeendet,
und das Leitwerk springt nach PH 1,Tl zu- folgt deshalb, weil gleichzeitig die Binärstelle 10 des
rück. Falls nein, wird bei Block q) die Binärstelle 10 Ε-Registers gelöscht wird, sofern nicht ein neuer
des Unterbrechungsregisters 3002 gesetzt, der Befehl Leistungsausfall eintritt,
beendet, und das Leitwerk springt ebenfalls nach
PH1, T1, zurück. 65 Routine für Berichtigen des Grundtakts (Fig. 13)
beendet, und das Leitwerk springt ebenfalls nach
PH1, T1, zurück. 65 Routine für Berichtigen des Grundtakts (Fig. 13)
In Phase 1 verlaufen auch einige weitere Maschinenprogramme
(Routinen), die ebenfalls hier be- Die Basis des Grundtaktsystems ist ein 100-Hz-
schrieben werden: . Oszillator. Dieser hat einen Ausgangsimpuls mit
33 34
»Lade Dünnfilm«, so werden die durch die Stellung Routine für Leistungsausfall (F i g. 12)
. der Ladeschalter D/A 1 bis D/A 6 vorgegebenen
. der Ladeschalter D/A 1 bis D/A 6 vorgegebenen
Daten einmal in derjenigen Speicherstelle des inne- Bei Netzausfall müssen die Inhalte aller wichtigen
ren Speichers 3001 gespeichert, die durch die Adres- Register in dem energieunabhängigen Speicher 3001
senschalter TFA 1 bis TFA 3vorgegeben ist. 5 gespeichert werden, und zwar innerhalb von 500 Mi- ·
Phase Null kann also "auch vom Operateur oder· krosekunden. Diese Unterbrechung (PF im/-Register
>
vom Programmierer verwendet werden, um das Pro- 3002) hat höchste Priorität. In Fig. 12 A bedeutet a) '··
gramm fehlerfrei zu machen oder um Daten in die den Sprung der Zeitverteilungssteuerung zum Takt <
Register des inneren Speichers 3001 einzugeben. 12, wenn erkannt wird, daß IPF 3545 gesetzt ist.
An dieser Stelle sei nochmals wiederholt, daß ein 10 Bei b) (PHl, T12) werden folgende Speichervor-
Programmwort nicht mit einem Befehl verwechselt gänge vorgenommen: In dem Reg. PDR 064 des in-
werden sollte, denn ein Programmwort enthält immer neren Speichers 3001 werden die Inhalte folgender -
vier Silben (48 Bits), während die Länge eines Be- Flipflops gespeichert: PSl bis PS 3 3504; RPF,
fehls von einer Silbe bis zu sieben Silben variieren FRP 3545, PFl und PF 2 3505, POV, PUN und
kann, so daß ein einziger Befehl in bis zu drei Pro- 15 PNN 3544, SA 1 und SA 2 3508, INT 3540, IPF
grammwörtern enthalten sein kann, aber auch nur 3545, RFS 3543. s
einen Bruchteil eines Programmworts ausfüllen kann. Bei c) (PH 1, T13) wird der Inhalt aller Binär-
ciner Länge von 0,5 Mikrosekunden, welcher den
Flipflop IRT 3545 setzt. Dieser bewirkt seinerseits eine Unterbrechung, die zweckmäßig. Nr. 2 in der
Prioritätsfolge (nach Leistungsausfall) ist, um die Register RTC 114 und RTC 115 im inneren Speicher
3001 auf den neuesten Stand zu bringen. Wenn diese ihren höchsten Zählerstand erreicht haben, d. h. wenn
sie alle von Eins nach Null übergehen, wird die Binärstelle 5 im /-Reg. 3002 gesetzt. RTC114 und
RTC115 sollen alle 10 msec berichtigt werden.
Der 100-Hz-Oszillator sollte für Echtzeitberechnungen
äußerst genau sein (1 Teil in einer Million), da z. B. zur genauen Voraussage des Ziels von sich
mit äußerst hoher Geschwindigkeit bewegenden Körpern es sehr wichtig sein kann, daß das System in
Echtzeit arbeitet.
Die Beschriftung in Fig. 13 gibt die nötigen Erläuterungen
für diese Routine/ so daß hierauf verwiesen werden kann.
Routine bei normaler Unterbrechung (F i g. 14)
Wenn bei einer Unterbrechung die entsprechende Binärstelle des /-Reg. 3002 gesetzt wird, wird bei a)
der /TE-Flipflop 3550 vom nächsten Taktgeberimpuls gesetzt. Solche Unterbrechungen sind z. B.:
Paritätsfehler; Programm-Überlauf oder -Unterlauf; Unzulässiger Befehl; Leistungsausfall. (Das Setzen
der Binärstellen des /-Reg. 3002 wurde bereits weiter oben im Zusammenhang mit dem P- und ß-Register
beschrieben.) Diese Unterbrechungen haben eine gewisse, vorher festgelegte Prioritätsfolge. Wenn ITE
3500 gesetzt wird, wird auch der Flipflop IRJ, 3545 gesetzt. Ferner werden die Inhalte folgender Flipflops in IDR 070 im inneren Speicher 3001 gespeichert:
PSl bis PS 3 3504, RPF, FRP 3545, PFl und PF 2 3505, POV, PUN, PNN, SA 1 und SA 2,
INT, IPF, RSF. Die Speicherung erfolgt in den Binärstellen 1 bis 15 von IDR 070, beginnend mit PS 1
in der höchsten Binärstelle.
Bei b) wird der Inhalt des gerade verwendeten PSR im /Pi? 110 bis IPR113 von 3001 gespeichert
und INT 3540 wird gesetzt, d. h., der Prozessor geht in die Steuerbetriebsart über, in welcher er nicht
vom laufenden Programm gesteuert wird, sondern von seinem Betriebssystem. (Die Rückkehr zur
Normalbetriebsart erfolgt durch den Befehl IRR, vgl. Fig. 37.)
Bei c) wird der Inhalt von BAR 055 im Register 040 des ISR gespeichert. Bei d) wird der Inhalt von
BPi? 054 im Reg. 041 von ISR gespeichert. Bei e) wird der Inhalt von PCR 057 in das ÄT/E-Register
übertragen. Bei f) wird untersucht, ob direkt vor der Unterbrechung eine Überlappung (s. oben) aufgetreten
ist, und falls ja, wird bei g) die Zahl Eins vom Inhalt des PCR 057 abgezogen, damit kein Programmwort
verlorengeht. Bei h) wird sodann der gegebenenfalls berichtigte Stand von PCR 057 im Register
042 von ISR gespeichert. (Die Überlappung wird dadurch festgestellt, daß dann sowohl PF1 wie
PF 2 gesetzt sind.)
Bei i) wird der Inhalt von IAR 063 im BAR 055
und ΒΡΛ054 gespeichert. Bei j) wird die Binärzahl,
die der gerade bedienten Unterbrechung entspricht, also deren Stelle im /-Reg. 3002, in das M-Reg. 3007
übertragen. Wenn z. B. die Binärstelle 3 im /-Reg. 3002, die in F i g. 4 mit IO (Eingabe/Ausgabe) bezeichnet
ist, bedient wird, wird die Binärzahl OLL in die niedrigsten drei Binärstellen des M-Reg. 3007 gebracht.
Diese Zahl wird dann zur Unterbrechungs-Basisadresse addiert, die sich zu diesem Zeitpunkt im
K/E-Register befindet (Addition über 3008/3009), und das Resultat wird über das L/M-Register zum
PCR 057 übertragen. Bei k) ist das Maschinenprogramm beendet und es erfolgt ein Sprung nach
ΡΗΙ,ΤΙ.
Als Beispiel sei angenommen, daß IAR 063 auf 1000 eingestellt war und daß die dritte Unterbrechung
IO bedient wird, so daß, wie bereits beschrieben, im M-Register die Zahl 3 (binär OLL) erscheint.
Zu 1000 addiert ergibt dies 1003. Da der erste Programmschritt der Unterbrechungsroute in
das PSR geladen werden muß, muß zum Inhalt des PCR 057, der gemäß Fig. 14, j, 1003 beträgt, die
Zahl Eins addiert werden, so daß man dort die Adresse 1004 erhält. An dieser Adresse im äußeren
Speicher befindet sich ein unbedingter Sprungbefehl (UCT), der einen Sprung im Speicher zum ersten
Programmschritt der Unterbrechungsroutine für die Untebrechung Nr. 3 (Eingabe/Ausgabe) bewirkt. Genau
derselbe Vorgang spielt sich bei den übrigen Unterbrechungsarten ab.
Routine für Befehlswiederholung (Fig. 15)
Der Wiederholungsbefehl RPT (vgl. Fi g. 9 B) enthält
nach der Operationsteilssilbe »0« gemäß F i g. 9 B zuerst die Silbe »i?c« (Zahl der Befehlswiederholungen,
vgl. Fig. 8) und dann die Silbe »/?,·«, welche
gemäß F i g. 8 Inkrementangaben enthält. Als vierte Silbe folgt die relative Adresse des zu wiederholenden
Befehls. Es können deshalb nur Befehle wiederholt werden, die nicht länger sind als ein Programmwort.
Wenn in einem Programm der Wiederholungsbefehl vorkommt, holt der Prozessor den zu wiederholenden
Befehl aus dem äußeren Hauptspeicher und überträgt ihn in das RPR 044 bis RPR 047. Dann
folgt die Routine gemäß Fig. 15. Bei a) wird der RPF 3545 gesetzt. Bei b) wird der Wiederholungs-Zählerstand
aus dem RCR 120 abgelesen und um Eins heruntergezählt. Bei c) wird festgestellt, ob jetzt
dieser Zählerstand gleich Null ist oder nicht. Falls nicht, d. h., falls weitere Wiederholungen folgen sollen,
wird gemäß d) der heruntergezählte Zählerstand in RCR120 gespeichert. Falls dagegen dieser Zählerstand
gleich Null war, ist die Wiederholung beendet, •und bei g) werden RPF und FRP rückgestellt, wonach
bei h) das Leitwerk auf PHl, T1 zurückspringt.
Die Fortsetzung von d) ist bei e). Dort wird die Operationsteilssilbe vom RPR 044 bis 047 geholt und
im F-Reg. 3015 gespeichert. In-den folgenden Phasen
wird dann bei f) dieser Befehl ausgeführt.
Phase 2 -
Die F i g. 16 bis 18 fassen die Operationen in PH 2 zusammen, nämlich Holen eines Operanden in PH 2,
Speichern eines Ergebnisses in PH 2 bzw. Verzweigung in PH 2.
Fig. 16
Es sei angenommen, daß in einem Befehl das Holen eines Operanden erforderlich wird. Bei PH 2,
T1 wird der Markierer A 1 (vgl. F i g. 42) der Operationsteilssilbe
ausgewertet, um festzustellen, ob die Daten aus dem inneren Speicher (.KSP 3009) oder
dem äußeren Hauptspeicher geholt werden sollen. Falls letzteres der Fall ist, wird bei PH 2 während der
Takte Tl bis T 9 die absolute Adresse nach der Routine gemäß F i g. 27 berechnet. Dann wird während
der Takte Γ10, TlS entsprechend den Speichertakten
TM19 bis TM 28, der Operand aus der berechneten Hauptspeicheradresse zum Rechenwerk
3030 übertragen, und zwar gemäß dem in Fig. 29 dargestellten Maschinenprogramm, so daß der Operand
in das Λ-Reg. kommt. Falls der Befehl BRB, CBF oder LCM ist (vgl. hierzu F i g. 9), erfolgt ein
Sprung nach PH3, Tl (in den Ablaufplänen steht jeweils das »/«' als Abkürzung für »Springe«, als z. B.
/ PH 3 = Springe nach Phase 3), und der Holvorgang ist beendet. Falls es sich um keinen dieser drei
Befehle handelt, erfolgt ein Sprung nach PH 4, Tl, und der Holvorgang ist ebenfalls beendet. — Der Befehl
BRB (Verzweige bei Bit) leitet dann eine Verzweigung ein, wenn das Bit 48 des Α-Reg, eine Eins
ist. ■ .
Die Vorgänge beim Holen vom KSP 3099 gehen aus F i g. 16 hervor. Wie dort dargestellt ist, wird bei
PHl, Tl bis T9 die absolute Adresse (16 Bits) gemäß F i g. 27 berechnet. Dies ist eine der Schlüsselfunktionen
des Prozessors und wird deshalb hier beschrieben.
In Fig. 27 wird bei b) festgestellt, ob es sich um
einen wiederholten Befehl handelt, und bei c), ob der Operand dem KSP 3099 oder dem Hauptspeicher
zuzuordnen ist. Bei d) wird geprüft, ob die Füllroutine gemäß F i g. 24 erforderlich ist, d. h. ob das
PSR leer. ist. Bei f) wird das entsprechende PSR adressiert, und gleichzeitig wird der Programmsilbenadressenzähler
3504 um Eins heruntergezählt. Bei g) wird am Markierer A1 (vgl. Fig. 42) festgestellt, ob
die Adressensilbe indiziert ist, vgl. die Beschreibung zu Fig. 44. Falls ja, wird bei h) die Indexsilbe aus
dem verwendeten PSR zum Ε-Reg, übertragen, und währenddessen wird das verwendete PSR mit dem
Programmsilbenadressenzähler 3504 adressiert, und zwar wird dessen Inhalt in das F^Ä-Register 3510
(Fig. 1 A) übertragen, so daß eine Silbe des verwendeten PSR beim nächsten T-Takt in das £-Reg. übertragen
werden kann. Bei i) wird festgestellt, ob das PSR gefüllt werden muß, bevor die Speicheradresse
gelesen wird. Falls ein Füllen erforderlich ist, wird bei j) der Flipflop MC 1 gesetzt, und die Füllroutine
gemäß F i g. 24 läuft ab. Falls kein Füllen erforderlich ist, wird bei k) die relative Adressensilbe aus
dem verwendeten PSR zum Ε-Reg, übertragen, und das L/M-Reg. und der Λ/C-Flipflop 3549 werden
rückgestellt, und zwar das L/M-Reg. auf Null. Bei 1) wird BAR 0555 adressiert. Gleichzeitig wird, falls
MC 1 rückgestellt ist (Entscheidung m), die Indexsilbe bei n) aus dem £-Reg. zum Silbenregister 3017
übertragen. Falls MCl gesetzt ist (Entscheidung m), erfolgt diese Übertragung nicht.
Bei o) wird der Inhalt des BAR 055 zum K/E-Reg. übertragen. Gleichzeitig wird bei p) die relative
Adressensilbe aus dem K/E-Reg. in das L/M-Reg. übertragen, wobei die Übertragung des höchsten Bits
im Ε-Reg, in die höchste Binärstelle des M-Reg. gesperrt wird. Dieses Bit bestimmt, ob es sich um eine
indirekte Adresse handelt oder nicht; falls ja, ist dieses Bit eine Eins. Dieses Bit wird statt dessen zu
IAF3548 übertragen. — Bei q) wird die Basisadresse
durch die Addierglieder 3008 und 3009 zur Speicheradresse (im L/M-Reg.) addiert und das Ergebnis im
L/M-Reg. gespeichert. Gleichzeitig wird bei r) der IAF3548 untersucht, und falls er durch eine Eins
gesetzt worden ist, läuft bei s) die Routine gemäß Fig. 26 für indirektes Adressieren ab. Bei t) wird
geprüft, ob die Speicherzeit Null vorliegt, da während
des indirekten Adressierens die Speicherzeit TM
S den Vorgang so lange bestimmt, bis das indirekte ;
Adressieren beendet ist. Falls kein indirektes Adressieren vorliegt, wird bei u) der Markierer A 1 (vgl. :
F i g. 42) geprüft, um zu sehen, ob die relative Adressensilbe indiziert ist. Falls ja, läuft bei v) die Index- '}
ίο routine gemäß Fig. 25 ab, und zwar während PH3,
TS bis T 9. An ihrem Ende findet ein Sprung nach
PH3, Γ10 satt, ebenso, falls bei u) die Silbe nicht
indiziert war. Zu diesem Zeitpunkt enthält das L/M-Reg. die absolute Adresse (16 Bits) des Operanden
bzw. die absolute Speicheradresse für ein Ergebnis. F i g. 29 zeigt die Operationen bei der Übertragung
eines Operanden vom Hauptspeicher in das Rechenwerk 3030. Zum ZeitpunktPH2, TlO der Fig. 16
erfolgt bei b) in F i g. 29 ein Sprung zur Speicherzeit TM19, und durch Setzen von RFF 3551 wird gemäß
c) Zugriff zum Hauptspeicher verlangt. Falls letzterer belegt ist, und nicht innerhalb von zwei Echtzeittakten
Speicherzugriff gewährt wird, wird gemäß d) < die Binärstelle 8 im /-Reg. 3002 gesetzt, um dies t
anzuzeigen. In diesem Fall bewirkt die Unterbrechung, daß der Prozessor in die Steuerbetriebsart übergeht
und das Betriebssystem die Unterbrechung bedient.
Falls Speicherzugriff gewährt wird, nimmt gemäß e) zur Speicherzeit TM 21 die Speicher-Adressenschaltung
(nicht dargestellt) die absolute Adresse (16 Bits) vom L/M-Reg. auf. Bei f) wird dann
RFF 3551 rückgestellt, und nach einer Verzögerung bei g) wird bei h) die niedrigste Operandensilbe aus
dem adressierten Speicherwort zum M-Reg. übertragen. Gleichzeitig wird der Paritätsflipfiop PAR 3551
rückgestellt.
Bei i) wird die nächsthöhere Operandensilbe zum M-Reg. übertragen, wobei gleichzeitig, falls sich der
Prozessor in Phase 2 befindet, der Inhalt des M-Reg.
bei 1) in die höchsten 12 Binärstellen des A-Reg.
übertragen wird.
■ Falls der Prozessor in Phase 4 ist, erfolgt gemäß
m) die Übertragung in die höchsten 12 Binärstellen desß-Reg.
Die weiteren Silben werden analog übertragen: n) Übertrage nächste Speichersilbe zum M-Reg. Falls
Phase 2, folgt q) Übertrage nächste Operandensilbe vom M-Reg. zum Λ-Reg. und verschiebe den Inhalt
des letzteren um 12 Stellen nach rechts. Falls Phase 4, folgt r) mit dem entsprechenden Vorgang beim
B-Reg,
Bei s) wird die höchste Operandensilbe vom äußeren Speicher zum M-Reg. übertragen. Falls Phase 2,
geht diese gemäß v) in das R-Reg., und dort wird um 12 Stellen verschoben, und falls Phase 4, geschieht
bei w) dasselbe beim B-Reg.
Bei x) wird das L/M-Reg. rückgestellt, und die Parität geprüft, RFF rückgestellt und es erfolgt ein
Sprung zur Speicherzeit Null. Falls Phase 2, wird bei aa) die höchste Operandensilbe vom M-Reg. in das
Α-Reg, übertragen und letzteres um 12 Stellen nach
rechts verschoben. Falls Phase 4, geschieht bei bb) dasselbe im Z?-Reg.
Falls bei x) ein Paritätsfehler festgestellt wird, wird die Binärstelle 8 des /-Reg. 3002 gesetzt, und der
Prozessor geht in die Steuerbetriebsart über.
Fig. 30 zeigt den Programmablaufplan für das Holen des Operanden aus dem KSP 3099 in das
Rechenwerk 3030. Dieser Vorgang wird gesteuert vom Markierer Al (Fig. 42) und erfolgt in Phase 2.
Falls derselbe Vorgang für einen zweiten Operanden im Befehl erfolgen wird, wird er gesteuert vom Markierer
Al (Fig. 42) und erfolgt dann in Phase 4.
(Falls ein Resultat im KSP 3099 gespeichert werden soll, wird dies vom Markierer A3 (Fig. 42) angezeigt,
und der Vorgang erfolgt dann in Phase 6 gemäß F i g. 32.)
Falls bei Phase 2 der Inhalt des Α-Reg, mit dem
Inhalt des obersten Registers des KSP 3099 übereinstimmt, ist der AES-F\ipf\op 3548 gesetzt. Dies wird
bei c) geprüft, da man dann keine Übertragung vom KSP zum A -Reg. benötigt. Bei h) wird in diesem Fall
untersucht, ob die zweite Bitstelle im Markierer A1
(also Bit 8 in F i g. 42) gleich L oder gleich 0 ist. L bedeutet, wie oben unter »Befehlsaufbau« beschrieben,
den Befehl »KSP Halten«, und 0 bedeutet »KSP normal«. Der Flipflop RSF 3543 bestimmt, in welcher
Richtung sich der KSP (bildlich gesprochen) dreht, vgl. die Darstellung nach Fig. 6 und nach
F i g. 38, d. h., wenn RSF rückgestellt ist, wird der
KSP3099 bei i) durch SAl und SAl 3508 von unten
nach oben durchgeschaltet, also vom Register 140 zum Register 157, und dies ist das normale. Gleichzeitig
wird bei e) untersucht, ob einer der Befehle BRB, CBF oder LCM vorliegt (vgl. F i g. 9), und in
diesem Fall springt das Leitwerk bei f) zu PH 3, Tl, sonst bei g) zu PH4, Ti.
Die vorstehenden Operationen werden nur durchgeführt, wenn AES gesetzt ist, also der Inhalt des
Λ-Reg. mit dem Inhalt des obersten Registers des KSP 3099 übereinstimmt. Ist dies nicht der Fall, so
wird bei d) mittels SA 1 und SA 2 3508 der KSP3099
adressiert, wobei der Silbenzähler 5Yl und SF 2 3507
bestimmt, welche Silbe dieser XSP-Adresse gerade adressiert wird (z. B. sagen SAl und 5^4 2, daß der
KSPlSO bis 153 [Fig. IA] adressiert ist, und 5Fl
und SY2 sagen dann, daß darin z. B. das Register
152 adressiert ist).
Bei j) wird die niedrigste Operandensilbe im KSP3099 von dort zum K/E-Reg. übertragen, und
der KSP wird dann sequentiell mittels 3507 Silbe um Siibe adressiert, bis das volle Wort-übertragen ist.
Falls der Vorgang in Phase 2 abläuft, erfolgt die Übertragung in das Α-Reg., und falls er in Phase 4
abläuft, ins B-Reg., und zwar bedeuten:
1): Verschiebe A-Reg. um 12 Stellen nach rechts,
n): Verschiebe B-Reg. um 12 Stellen nach rechts, o), t) und y): Übertrage nächste Silbe vom KSP
zum £-Reg. Adressiere KSP. Zähle SF 3507 hinauf,
q), w), aa) und ff): Verschiebe Α-Reg, um 12 Stellen nach rechts. Übertrage Inhalt des Ε-Reg, in
höchste Stellen des A-Reg.~
s), x), cc) und gg): Verschiebe B-Reg. um 12 Stellen nach rechts. Übertrage Inhalt des 2s-Reg. in
höchste Stellen des B-Reg.
Falls nach dieser Übertragung Phase 2 festgestellt wird, wird bei ii) untersucht, ob einer der Befehle
BRB, CBF oder LCM vorliegt, und falls ja, erfolgt
bei jj) der Sprung nach PH3, Tl. Falls nein, erfolgt der Sprung nach PH4, Tl. kk) bedeutet Sprung
nach PH3, Tl. Fails Phase 4 vorliegt, wird bei 11)
untersucht, ob ein Gleitpunktbefehl vorliegt, und falls nein, erfolgt bei mm) Sprung nach PH5,^.Tl.
Fig. 17 zeigt den Ablauf für Speichern eines
Ergebnisses in Phase 2. Dies ist nur möglich bei zwei Befehlen, nämlich dem Löschbefehl CLA und
dem Befehl SER. Speichere äußere Anfrage (beides 1-Adreß-Befehlc, vgl. Fig. 9B). Falls SER vorliegt,
werden die äußeren Anfrageleitungen direkt zum /!-Register übertragen. Falls der Befehl CLA ist.
wurde das Λ-Regisfer bereits bei PHl, T4 gelöscht,
so daß in PH2 der Inhalt des /!-Registers (lauter Nullen) zur angegebenen Adresse (KSP oder äußerer
Hauptspeicher) übertragen werden muß. Falls im /CSP gelöscht werden soll, wird also dieser Inhalt
des /!-Registers gemäß Fig. 32 in den KSP übertragen. Falls eine Stelle im äußeren Hauptspeicher
gelöscht werden soll, wird während PH2, Tl bis Γ9
die Speicheradresse gemäß F i g. 27 berechnet und dann gemäß Fig. 31 der Inhalt des ^-Registers in
den betreffenden äußeren Speicher übertragen. Danach erfolgt ein Sprung (Symbol: »/«) nach PH1,
Tl, und der nächste Befehl wird bedient.
Fig. 18 zeigt den Ablauf für den Befehl UCT
(Unbedingte Verzweigung) in Phase 2. Der Ablauf ergibt sich aus der zeichnerischen Darstellung.
Phase 3
Dies ist eine Phase zum Ausführen oder teilweisen Ausführen eines Befehls.
Phase 4
Fig. 19 zeigt den Ablauf für das Holen eines
Operanden in Phase 4. Dies entspricht weitgehend demselben Vorgang in Phase 2 (F i g. 16), wobei aber
der Operand im ß-Register gespeichert wird.
Fig. 20 zeigt den Ablauf für das Speichern eines Ergebnisses in Phase 4, das nur bei den Befehlsarten
BRB, CBF, LCM, STF oder- TRS (vgl. hierzu Fig. 9) vorkommt.
Fig. 21 zeigt den Ablauf für das Verzweigen in Phase 4, das nur bei dem BefehlBRC (Fig. 9) vorkommt.
Phase 5
Dies ist eine Auslührungsphase.
Dies ist eine Auslührungsphase.
Phase 6 (Speichern oder Verzweigung)
PH 6 ist die Phase für Speichern oder Verzweigung bei 3-Adrcß-Befehlen.
Fig. 22 zeigt den Ablauf für das Speichern des Ergebnisses in Phase 6 gemäß den Anweisungen im
Markierer A3 (Fig. 42).
Fig. 23 zeigt den Ablauf für das Verzweigen in Phase 6. Der Ablauf entspricht im wesentlichen demjenigen
nach Fig. 21.
Fig. 28 zeigt den Ablauf für die Berechnung der
Verzweigungsadrcsse, der dem Ablauf nach Fig. 27 sehr ähnlich ist, wobei aber ein indirektes Adressieren
nicht möglich ist. Während bei F i g. 27 zum Errechnen der absoluten Adresse der Inhalt des BAR 055
verwendet wird, wird bei F i g. 28 der Inhalt des BPR054 verwendet. Die einzelnen Blöcke in Fig.28
bedeuten: b) wiederholter Befehl? c) Füllen erforderlich? d) Füllroutine (Fig. 24). e) Adresse PSR mit
dem Programmsilbenadresscnzähler 3504. f) Ist die Silbe indiziert? g) Falls ja, übertrage die Indexsilbe
vom PSR zum E-Rcgister. Adressiere das PSR mit dem Programmsilbcnadressenzähler. h) Füllen erforderlich,
i) Setze MCl. Füllroutine gemäß Fig. 24. j) Übertrage die Verzweigungs-Adressensilbe vom
PSR zum Ε-Register. Rückstelle L/M-Register und
409 621/183
41 42
MCl. k) Liegt Phase 2, UCT vor? 1) Falls nein, liegt rückgestellt. Ferner erfolgt ein Sprung zur Speicher-Phase
4, BRC vor? m) Falls nein, liegt Phase 6, OÖB, zeit TM 0.
FLDB, BRB, CSE, TIO oder XLC vor? n) Falls ja, Fig. 32 zeigt den Ablauf für das Speichern des
ist der Verzweigungsflipflop BRF 3548 gesetzt? Ergebnisses im KSP 3099, welches in Phase 2, 4 j
ο) Falls bei 1) die Antwort ja ist, ist BRF 3548 ge- 5 oder 6 möglich ist. Hierzu befindet sich das Ergebnis i
setzt? p) Adressiere BPR 054. q) Ist MCl gesetzt? immer zuerst im /4-Register. — Bei b) wird festr)
Falls ja, übertrage die Indexsilbe vom Ε-Register gestellt, ob es sich um Phase 2, 4 oder 6 handelt,
zum Silbenregister 3017. s) Übertrage Verzweigungs- Falls Phase 2, wird bei c) der /4£S-Flipflop 3548
adresse vom Ε-Register zum M-Register. t) Addiere rückgestellt. Ferner wird d) an den Markierern A 1
die Basisadresse des Programms (aus BPR 054; io bis A 3 (Fig. 42) festgestellt, ob der Vorgang »KSP
16 Bits) zur Verzweigungsadressensilbe (12 Bits) und normal« oder »KSP Halten« ist (vgl. hierzu die einbilde
die absolute Verzweigungsadresse (16 Bits). gangs gemachten Erläuterungen unter Befehlsu)
Ist die Silbe indiziert? v) Falls ja, so folgt die ablauf«). Falls es »KSP normal« ist, muß bei e) die
Indexroutine gemäß F i g. 25. /CSP-Adresse heruntergezählt werden, und zwar durch
Fig. 31 zeigt den Ablauf für das Speichern des 15 Herunterzählen des XSP-Adressenzählers 3508. Falls
Ergebnisses im Hauptspeicher. Diese Routine geht es »KSP-Halten ist, wird 3508 nicht gezählt. In
davon aus, daß sich die absolute Adresse im L/M- beiden Fällen erfolgt jetzt bei f) ein Sprung zum
Register befindet. Bei b) wird die niedrigste Silbe Zeittakt TlO. Bei g) wird der KSP 3099 mit dem
vom /4-Register zum Ε-Register übertragen, und das XSP-Adressenzähler 3508 adressiert. Dann wird die
/4-Register wird dann im Umlauf nach rechts um ao niedrigste Silbe aus dem /4-Register zum E-Register
12 Stellen verschoben. Gleichzeitig mit der Verschie- übertragen. Gleichzeitig erfolgt im /4-Register eine
bung in das Ε-Register wird die niedrigste Silbe in Rechtsverschiebung um 12 Stellen, so daß die nieddie
höchste Stelle des A -Registers verschoben, und rigste Silbe dieses Registers in die höchste Stelle ~g
die anderen Silben des A -Registers werden entspre- kommt. Ferner wird der Silbenzähler 3507 hinaus- ψ
chend um 12 Bitstellen nach rechts verschoben. Bei 25 gezählt. Bei h) wird dieser Vorgang zweimal wiederc)
wird die Adresse im L/M-Register geprüft, um holt, und dann bei i) für die vierte Silbe nochmals
zu sehen, ob die Speicheradresse innerhalb der vor- wiederholt. Dabei wird das /4-Register um 12 Stellen
geschriebenen Grenzen liegt. (Hierzu dienen die nach rechts verschoben, so daß es eine Kopie seines
Teile 3010 bis 3013 in Fig. IA). Liegt die Adresse ursprünglichen Inhalts enthält, und der Silbenzähler
außerhalb dieser Grenzen, so wird bei d) die Binär- 30 3507 wird auf Null heruntergezählt, da das gesamte
stelle 6 des /-Reg. 3002 gesetzt, und es erfolgt ein Wort jetzt im KSP 3099 gespeichert ist. Danach wird
Sprung zur Speicherzeit TMO. Dann erfolgt ein bei j) der Flipflop AES 3548 gesetzt, was eine erheb-Sprung
nach PHl, Tl, um die Unterbrechung in liehe Beschleunigung bewirken kann, da das A-Registelle
des /-Reg. 3002 gesetzt, ein Sprung zur Spei- ster jetzt dieselben Daten enthält, wie das oberste
cheradresse innerhalb der Grenzen liegt, wird bei e) 35 Register des KSP 3099. Wenn nämlich beim nächsten
RFF 3551 gesetzt und bewirkt eine Anfrage an den Befehl der Operand aus dem obersten Register des
äußeren Hauptspeicher. PAR 3551 wird bei f) rück- KSP 3099 geholt werden muß, entfällt dies, da sich
gestellt, so daß das Paritätsbit erzeugt werden kann. dieser Operand bereits im /4-Register befindet, und
Falls der betreffende Hauptspeicher belegt ist und man spart fünf Impulstakte an Rechenzeit,
nicht innerhalb von zwei Grundtakten Zugriff ge- 40 .
währt wird (Entscheidung g), wird bei j) die Binär- . Fullroutine (Fig. 24)
stelle des /-Reg. 3002 gesetzt, ein Sprung zur Spei- Da diese Routine der Verzweigungsroutine sehr cherzeit TM 0 vorgenommen und eine Unter- ähnlich ist, soll sie jetzt beschrieben werden. — Wie brechungsroutine eingeleitet. Wird dagegen Zugriff bereits mehrfach erläutert, werden bei dem Prozessor gewährt, so wird bei h) die niedrigste Datensilbe 45 gemäß dem vorliegenden Ausführungsbeispiel die aus dem /4-Register, welche sich jetzt im Ε-Register Befehle in Form von jeweils aus vier gleich langen befindet, zum M-Register übertragen. Vor dieser Abschnitte (»Silben«) bestehenden Programmworten Übertragung wird bei Gewährung des Speicherzugriffs in den äußeren Speicher gepackt, so wie das F i g. 48 der ursprüngliche Inhalt des L/M-Registers, also die zeigt. Die einzelnen Programmworte sind adressierabsolute Adresse von 16 Bits, der Speicheradressen- 50 bar. Sie dürfen nicht mit den Befehlen verwechselt schaltung zugeführt und im Hauptspeicher decodiert, werden, denn ein Programmwort hat immer vier so daß, wenn das Datenwort in das 49 Binärstellen Silben, während ein Befehl zwischen einer und sieben umfassende Speicherinformationsregister (nicht dar- Silben haben kann. Da die Befehle Silbe nach Silbe gestellt) gelangt, es in die richtige Speicherstelle im verarbeitet werden, erhält man eine erhebliche Veräußeren Speicher gebracht wird. —τ Bei i) wird die 55 minderung der Zugriffszeit zu den Silben dadurch, j nächsthöhere Datensilbe des A -Registers direkt zum daß man sie nicht aus dem äußeren Hauptspeicher M-Register übertragen, und gleichzeitig erfolgt in der abliest, sondern aus. einem inneren Speicher des bereits beschriebenen Weise eine Verschiebung nach Prozessors, dem Programmspeicherregister PSR. Der S rechts im /4-Register, und die niedrigsten Bits werden Vorgang der Übertragung eines Programmworts vom j im Umlauf verschoben, um die Übertragung der 60 äußeren Speicher zum PSR — ausgenommen als Teil j nächsten 12 Bits vom/4-Register zum M-Register zu einer Verzweigungsroutine — wird als Füllen beermöglichen. — Bei k) wird dieser Schritt für die zeichnet. Identisch damit ist der zuvor als Über- j dritte und die vierte Silbe wiederholt, und das ge- lappung beschriebene Vorgang, bei dem ein zweites samte Datenwort, das durch die vier Umlaufverschie- Programmwort im PSR gespeichert wird, während bungen im /4-Register verbleibt, ist eine Kopie des 65 das erste verarbeitet wird.
nicht innerhalb von zwei Grundtakten Zugriff ge- 40 .
währt wird (Entscheidung g), wird bei j) die Binär- . Fullroutine (Fig. 24)
stelle des /-Reg. 3002 gesetzt, ein Sprung zur Spei- Da diese Routine der Verzweigungsroutine sehr cherzeit TM 0 vorgenommen und eine Unter- ähnlich ist, soll sie jetzt beschrieben werden. — Wie brechungsroutine eingeleitet. Wird dagegen Zugriff bereits mehrfach erläutert, werden bei dem Prozessor gewährt, so wird bei h) die niedrigste Datensilbe 45 gemäß dem vorliegenden Ausführungsbeispiel die aus dem /4-Register, welche sich jetzt im Ε-Register Befehle in Form von jeweils aus vier gleich langen befindet, zum M-Register übertragen. Vor dieser Abschnitte (»Silben«) bestehenden Programmworten Übertragung wird bei Gewährung des Speicherzugriffs in den äußeren Speicher gepackt, so wie das F i g. 48 der ursprüngliche Inhalt des L/M-Registers, also die zeigt. Die einzelnen Programmworte sind adressierabsolute Adresse von 16 Bits, der Speicheradressen- 50 bar. Sie dürfen nicht mit den Befehlen verwechselt schaltung zugeführt und im Hauptspeicher decodiert, werden, denn ein Programmwort hat immer vier so daß, wenn das Datenwort in das 49 Binärstellen Silben, während ein Befehl zwischen einer und sieben umfassende Speicherinformationsregister (nicht dar- Silben haben kann. Da die Befehle Silbe nach Silbe gestellt) gelangt, es in die richtige Speicherstelle im verarbeitet werden, erhält man eine erhebliche Veräußeren Speicher gebracht wird. —τ Bei i) wird die 55 minderung der Zugriffszeit zu den Silben dadurch, j nächsthöhere Datensilbe des A -Registers direkt zum daß man sie nicht aus dem äußeren Hauptspeicher M-Register übertragen, und gleichzeitig erfolgt in der abliest, sondern aus. einem inneren Speicher des bereits beschriebenen Weise eine Verschiebung nach Prozessors, dem Programmspeicherregister PSR. Der S rechts im /4-Register, und die niedrigsten Bits werden Vorgang der Übertragung eines Programmworts vom j im Umlauf verschoben, um die Übertragung der 60 äußeren Speicher zum PSR — ausgenommen als Teil j nächsten 12 Bits vom/4-Register zum M-Register zu einer Verzweigungsroutine — wird als Füllen beermöglichen. — Bei k) wird dieser Schritt für die zeichnet. Identisch damit ist der zuvor als Über- j dritte und die vierte Silbe wiederholt, und das ge- lappung beschriebene Vorgang, bei dem ein zweites samte Datenwort, das durch die vier Umlaufverschie- Programmwort im PSR gespeichert wird, während bungen im /4-Register verbleibt, ist eine Kopie des 65 das erste verarbeitet wird.
Wortes, das sich jetzt im Speicher-Ihformations- Wie bereits beschrieben,, wird der Füllvorgang
register befindet. Bei 1) wird das erzeugte Paritätsbit dadurch ausgelöst, daß sowohl PFl wie PF 2 3505
zum M-Register übertragen, und RFF 3551 wird rückgestellt sind. Es erfolgt dann ein Sprung zum
Speicherzeittakt TM 15. Dann wird b) der Inhalt des PCR 057 in das L/M-Register übertragen, bei c)
um Eins erhöht, und mit dieser Adresse wird das nächste Programmwort im äußeren Hauptspeicher
adressiert. Ferner bei e) der erhöhte Zählerstand im PCR 057 rückgespeichert, um eine Aufzeichnung
über das gegenwärtig im PSR1 gespeicherte Programmwort
zu haben. Bei f) wird untersucht, ob Speicherzugriff gewährt wurde. Falls ja, erhält bei h)
die Speicheradressierschaltung die absolute Adresse dieses Worts und überträgt das Programmwort in
das Speicher-Informationsregister (nicht dargestellt). Mit Hilfe der Zählerstände 00 bis LL von IS 3506
wird das Programmwort im PSR1 gespeichert (Schritte i) bis m)) in F i g. 24. Nach dem Füllen wird
bei m) PFl wieder gesetzt und ein Sprung zur Speicherzeit TMO vorgenommen. Ferner wird PSl
bis PS 3 3504 auf OLL rückgestellt. Mit dem Setzen von PFl verschwindet das Füll-Signal, und die Prozessor-Zeitsteuerung
übernimmt wieder. Dies gilt für alle Füllvorgänge, d. h., die vorherige Γ-Taktzeit des
Prozessors wird festgehalten, bis die Füllroutine fertig ist, und dann wird zu dieser selben Γ-Taktzeit die
Arbeit des Prozessors wieder aufgenommen.
Routine für das Indizieren (F i g. 25)
Beim Indizieren geht der zu indizierenden Silbe eine Indexsilbe voraus. Letztere wird zunächst aus
dem verwendeten PSR zum E-Register und dann zum Silbenregister 3017 übertragen. Als nächstes wird die
zu indizierende Silbe vom PSR über das E-Register zum M-Register übertragen. Falls die zu indizierende
Silbe eine relative Adressensilbe ist, wird der Inhalt von BAR 055 oder BPR 054 zum L/M-Register
addiert, und dann wird das Indizieren durchgeführt. Ist die zu indizierende Silbe eine Sondersilbe, z. B.
eine Variantensübe oder eine Dünnfilmadresse (Silbe »T« in F i g. 8), so erfolgt das Indizieren mittels
K-, E-, L- und M-Registern, wonach die indizierte Sondersilbe vom iW-Register zum Silbenregister 3017
übertragen wird. — Bei Fig. 25 erscheint am Start die Indexsilbe im Silbenregister 3017 in Form von
drei Adressen zu je vier Bits, die mit XRA, XRB und XRC bezeichnet werden können. Wie F i g. 1
zeigt, hat der innere Speicher 15 Indexregister oktal 001... 017, von denen jedes über das Silbenregister
3017 adressiert werden kann. Naturgemäß können sich auch zwei oder drei der Indexregisteradressen
auf dasselbe Indexregister beziehen.
Nimmt man hier an, daß vom Silbenregister 3017 drei verschiedene Indexregister adressiert werden, so
wird bei der Adressenrechnung der Inhalt dieser drei Register zu dem Wert im L/M-Register addiert, um
die obsolute Adresse zu erhalten.
Falls die XRA -Adresse Null ist, bedeutet dies, daß hier kein Indexregister adressiert wird, und es
erfolgt dann dort keine Adressenrechnung. Dasselbe gilt gegebenenfalls für XRB und XRC. Falls die
Adresse von XRA ungleich Null ist, wird zuerst bei c) die vollständige Indexregisteradresse (7 Bits) errechnet.
Dann wird der Inhalt des adressierten Indexregisters in das jK/£-Register übertragen. Darauf wird
untersucht, ob die Adresse von XRB = Null ist. Falls nein, wird bei f) die vollständige Indexregisteradresse
(7 Bits) errechnet, und bei g) wird der Inhalt des Indexregisters A zum Inhalt des L/M-Registers
addiert, und der Inhalt des Indexregisters B wird zum Ε-Register übertragen. Hierauf wird untersucht,
ob die Adresse von XRC gleich Null ist. Falls nein, wird bei i) die vollständige Indexregisteradresse
errechnet, und bei j) wird der Inhalt des Indexregisters B zum Inhalt des L/M-Registers addiert und
in das Ε-Register übertragen. Schließlich wird der Inhalt des dritten Indexregisters zum Inhalt des
L/M-Registers addiert, und man erhält dann dort die - gewünschte absolute Adresse.
Routine für indirektes Adressieren (F i g. 26)
Wie bereits erläutert, zeigt das erste Bit einer relativen Adressensilbe (T4 in der Silbe »M« der
F i g. 8, oder in den F i g. 44 und 45) eine indirekte Adresse an, wenn es den Wert »L« hat. Dieses Bit
setzt dann den L4F-Flipflop 3548, so daß man weiß, daß die errechnete absolute Adresse die Adresse einer
Adresse ist. Die Errechnung über" das E-Register wurde oben bereits beschrieben und ist in Fig. 26
dargestellt. Zur Speicherzeit TM19 wird der Flipflop
RFF 3551 gesetzt, d. h., es wird Zugriff zum Hauptspeicher verlangt. Falls zur Speicherzeit TM 20 Speicherzugriff
gewährt wird, wird die indirekte Adresse im L/M-Register (16 Bits) von der Speicher-Adressenschaltung
des gewählten Hauptspeichers angenommen. Es folgt dann bei TM 23 und TM 24 eine
Speicherverzögerung. Bei TM 25 wird die Adressensilbe
vom M-Register zum E-Register übertragen, und die nächsthöhere Speichersilbe, d. h. die Speicheradresse
Bits M 9 bis M12 vom Speicher-Informationsregister
plus dem Anzeigebit M 8 für indirektes Adressieren und das Zeichenbit M 7 (zum Setzen des
Unterbrechungsflipflops ITE 3550) werden zum M-Register übertragen.
Zum Zeitpunkt ΓΜ26 ist der Flipflop IAF 3548
noch gesetzt und es geschieht folgendes:
1. die Speicheradresse (4 Bits) wird vom M-Register zum /C-Register übertragen. Dies ist die
zweitniedrigste Silbe, die im Speicher-Informationsregister war.
2. M 8, das Anzeigebit für indirekte Adresse, wird zum L4F 3548 übertragen. Falls es Null ist,
wird keine weitere indirekte Adresse angezeigt, und IAF wird rückgestellt. Falls das Zeichenbit
M 7 = Eins ist, wird die Binärstelle 10 des /-Reg. 3002 gesetzt. Dies dient als Zeichen für
den Programmierer und bewirkt eine Unterbrechung, die in der Steuerbetriebsart bedient
wird.
Falls M 8 = L ist, enthält das K/E-Register jetzt eine indirekte Adresse, und wenn M 8 = 0 ist, speichert
das K/E-Register jetzt eine möglicherweise noch zu indizierende Datenadresse. Zur Speicherzeit
TM 27 werden die restlichen beiden Silben in das M-Register gebracht, da zurTaritätsprüfung alle vier
Silben benötigt werden. Bei M 28 wird die Parität geprüft, das L/M-Register rückgestellt, und die Speicherzeit
springt nach Null, so daß der Flipflop TMZ 3503 gesetzt wird, worauf die Zeitsteuerung des
Prozessors wieder einsetzt und der Zustand des Flipflops IAF 3548 geprüft wird. Falls er gesetzt ist,
ist die Adresse im /C/E-Register eine indirekte Adresse, so daß sofort ein Sprung zum Zeittakt Γ18
erfolgt und die obige Routine wiederholt wird. Falls IAF rückgestellt ist, d. h. den Inhalt Null hat, wird
die Zeitsteuerung durch den Prozessor fortgesetzt. Falls hier eine Indizierung erforderlich ist, folgt sie
an dieser Stelle.
45 46
Fig. 33 zeigt den Ablauf einer Verzweigungs- chert. Bei h) wird ferner MCl geprüft. Falls dieser
routine, die in vielen Aspekten der Füllroutine nach Flipflop rückgestellt ist und der Flipflop OV 3541
F i g. 24 entspricht. Zu Anfang sei angenommen, daß für Überlauf gesetzt ist, wird bei i) der Fliprlop
BRF 3548 durch entsprechende Bedingungen gesetzt POV 3544 gesetzt. Unabhängig davon wird bei 1) der
wurde. Zu Beginn befindet sich im L/M-Register 5 Inhalt des A-Keg. 3033 in Phase 6 im KSP 3033 oder
eine absolute Adresse (16 Bits). Zur Speicherzeit im Hauptspeicher gespeichert (letzteres gesteuert vom
TM19 wird diese Adresse in das Programmzähl- Markierer Λ 3), und der Befehl ist dann beendet,
register PCR 057 gebracht. Der Programmsilben- — Falls bei j) MCl gesetzt und POV rückgestellt
adressenzähler 3504 wird auf OLL rückgestellt. ist, wird bei k) das Komplement des Inhalts des
Ebenso werden PFl und PF 2 3505 rückgestellt. ίο Λ-Reg. 3033 gebildet und MCl rückgcstellt. Auch
Durch Setzen von RFF 3551 wird Zugriff zum danach erfolgt der bereits beschriebene Schritt 1) in
Speicher gefordert. Bei TMlS wird die niedrigste Phase 6.
Speichersilbe vom M-Register über das Ε-Register Fig. 35 zeigt den Ablauf des BefehlsCLA-Lösche,
zum PSRl übertragen, in welchem Verzweigungs- der gemäß Fig. 9B ein 1-Adress-Befehl ist. Bei a)
programmworte immer gespeichert werden. Zur Zeit 15 wird der Operationsteil aus dem PSR in das F-Reg.
dieser Übertragung wird die zweitniedrigste Speicher- 3015 geholt und dort decodiert. Bei b) wird das
silbe vom Speicherinformationsregister in das M-Re- A-Reg. 3033 rückgestellt, so daß es nur Nullen entgister
übertragen. Bei TM26 und TM27 folgen so hält. Bei c) wird dieser Inhalt zu derjenigen Stelle
die beiden nächsten Silben. Schließlich wird das . (KSP 3099 oder äußerer Hauptspeicher) übertragen,
Paritätsbit in die Prüfschaltung übertragen, und die 20 die durch den Markierer A1 und die relative Adreshöchste
Silbe wird in der Adresse von PSR1 ge- sensilbe (falls vorhanden) angegeben wird. Bei d) erspeichert.
Ferner wird PFl 3505 gesetzt, das UM- folgt dann ein Sprung nach PHl, Tl.
Register rückgestellt und die Parität geprüft. Dann F i g. 36 zeigt den Befehl ÄLT-Stillstand, der keine erfolgt ein Sprung zur Speicherzeit TMO. Adresse hat. Bei a) wird der Operationsteil aus dem
Register rückgestellt und die Parität geprüft. Dann F i g. 36 zeigt den Befehl ÄLT-Stillstand, der keine erfolgt ein Sprung zur Speicherzeit TMO. Adresse hat. Bei a) wird der Operationsteil aus dem
Vorstehend wurde also an Hand der wichtigsten 25 PSR in das F-Reg. 3015 gebracht und dort decodiert.
Programmablaufpläne der .Ablauf in den einzelnen bei b) wird untersucht, ob der Vorgang in der Steuer-Phasen
erläutert, und es wurden anschließend einige betriebsart ausgeführt wird, d. h. ob der Flip-Flop
für mehrere Phasen gemeinsame Routinen erklärt. INT3540 (Fig. 4 oben links) gesetzt ist. Falls ja,
Im folgenden werden nun einige typische Befehls- wird bei d) der Flipflop für die Haltebedingung ge-
abläufe erläutert, um das Bild von der Arbeitsweise 30 setzt, und bei e) ist der Befehl beendet und es erfolgt
des vorliegenden Ausführungsbeispiels eines erfin- ein Sprung nach TO, und der Prozessor hält an. Falls
dungsgemäßen Prozessors abzurunden und Fig. 10 der Vorgang nicht in der Steuerbetriebsart ausgeführt
durch Beispiele noch anschaulicher zu machen. Da wird, wird im /-Reg. 3002 die Binärstelle 10 gesetzt,
die Schaltung aus der vorstehenden Beschreibung um die Normalbetriebsart zu unterbrechen. Danach
und auch aus den nachfolgenden Ausführungen mit 35 ist bei f) der Befehl beendet und es erfolgt ein Sprung
der erforderlichen Klarheit hervorgeht, wird nur nach Tl.
(in Fig. 47) die Schaltung des F-Reg. 3015 dar- Fig. 37 zeigt den Befehl IRR -Wiederanlauf nach
gestellt. In der zugehörigen DOS ist die Schaltung Unterbrechungsroutine, ebenfalls einen Befehl ohne
in größerer Ausführlichkeit dargestellt, so daß bei Adresse. Dieser 'Befehl kann nur in der Steuerbe-
Bedärf hierauf zurückgegriffen werden kann. 4° triebsart ausgeführt werden. Dieser Befehl bereitet
F i g. 34 zeigt den Programmablaufplan des Befehls den Prozessor für den Wiederanlauf des normalen
»BAD« — Binär addieren, der gemäß Fig. 9A ein Programms vor; hierzu werden die verschiedenen Re-
3-Adreß-Befehl ist. (Dieser Befehl wurde auch für. gister wieder gefüllt, und danach wird der nächste
das Beispiel in Fig. 7 verwendet.) — Bei a).wird Befehl aus dem PSR ausgeführt. — Bei a) wird der
in Phase 1 der Operationsteil aus dem PSR in das 45 Operationsteil in das F-Reg. 3015 geholt. Bei b) wer-
F-Reg. 3015 geholt und decodiert, so daß das Leit- den die Inhalte der Binärstellen von IDR070 geholt,
werk 3020 entsprechend gesteuert wird. Bei b) wird die dort bei der Routine nach Fig. 14 bei a) gespei-
in Phase 2 der erste Operand, also der Augend, chert worden waren, also PSl, PS2, PS3, RPF, FRP,
gemäß der Einstellung des Markierers Al (vgl. -PFl, PF2, POV, PUN und PAW. Bei c) wird der
Fig. 7) entweder vom KSP 3099 oder vom äußeren 50 Inhalt von IPRIlO bis IPR113 in das PSi? 100 bis
Hauptspeicher geholt und im A -Reg. 3033 gespei- PSR103 oder PSR104 bis PSR107 zurückgebracht,
chert. Bei c) wird in Phase 4 der zweite Operand, Bei d) wird der Flipflop INT 3540 gesetzt. Bei e)
also der Addend, abhängig vom Markierer A 2 ent- wird der Inhalt des niedrigsten Abschnittes von
weder aus dem KSP3099 oder dem äußeren Haupt- ISR 040 bis ISR 042 zum BAR 055 übertragen. Bei f)
speicher geholt und im ß-Reg. 3031 gespeichert. 55 wird der Inhalt des nächsthöheren Abschnitts von
Bei d) wird in Phase 5, Zeittakt T1 durch Vergleich /57? 040 bis ISR 042 zum BPR 054 übertragen. Bei
der höchsten Bits untersucht, ob die Vorzeichen der g) schließlich wird der höchste Abschnitt von ISR 040
beiden Operanden gleich sind. (Zum Vorzeichenbit bis ISR 042 in das PCR 057 übertragen. Bei h) ist
vgl. den Wortauibau in Fig. 5.) Falls nein, also falls der Befehl beendet, und es erfolgt ein Sprung nach
die Vorzeichen verschieden sind, wird bei e) das 60 PHl, Tl. — Falls versucht würde, diesen Befehl in
Komplement des /(-Register-Inhalts gebildet und der Normalbetriebsart auszuführen, würde eine Un-
AiC 1 3549 gesetzt. Daraufhin wird bei d) erneut terbrechung wegen unzulässigen Befehls erfolgen,
geprüft, ob die Vorzeichen gleich sind. Sodann wird Fig. 38 zeigt den Ablauf der BefehleNOP — Keine
bei f) in PH5, Tl eine Verschiebung durchgeführt, Operation, RVS — Kehre Kellerspeicher um, SSU—
und zwar eine Umlaufverschiebung, also eine Ver- 65 Schalte den Kellerspeicher hinaus, und SSD—Schalte
Schiebung im Kreis. Bei g) werden im Addierglied den Kellerspeicher herunter. — Wie. Fig. 38 zeigt,
3032 die Inhalte von Λ-Registcr und ß-Register springt der Prozessor beim Befehl NOP sofort nach
addiert, und die Summe wird im Λ-Register gespci- P//1, Tl. Beim Befehl RVS wird —- bildlich gc-
sprachen — die Drehrichtung des KSP 3099 umgekehrt,
wie das in Fig. 38 bei »A« dargestellt ist. Hierzu wird bei d) das Komplement des Inhalts von
RSF3543 gebildet. Danach erfolgt Sprung nach PHl, Tl.
Beim Befehl SSU wird der KSP 3099 einmal in der Hol-Richtung weitergeschaltet, und zwar bei f)
durch einmaliges Weiterschalten des Kellerspeicheradressenzählers SA 3508. F i g. 38 zeigt bei »ß« das
Ergebnis.
Beim Befehl SSD wird bei h) der Kellerspeicheradressenzähler
SA 3508 einmal in der Speicherrichtung weitergeschaltet. F i g. 38 zeigt bei »C« das Ergebnis.
F i g. 39 zeigt den 2-Adress-Befehl Si?/-Unterroutinensprung.
Dieser Befehl benötigt die beiden Sondersilben /„ und /,·, die bei der F i g. 8 bereits erläutert
wurden. Bei diesem Befehl werden die Inhalte einiger Register in SSR 050 bis SSR 052 im inneren
Speicher 3001 gespeichert: Ferner wird die Adresse eines Programmworts berechnet.
Hierzu wird-bei a) der Operationsteil geholt und
decodiert. Bei b) wird die Sondersilbe /„ (Sprungadresse) geholt, zum Inhalt des Unterroutinen-Basisadressenregisters
060 addiert, und das Ergebnis im L/M-Reg. gespeichert. Hiermit wird dann vom Speicher
die Unterroutinen-Startadresse zum K/E-Reg. geholt. Bei c) wird diese Startadresse vom .K/E-Reg.
zum L/M-Reg. übertragen. Bei d) wird der Inhalt von BAR 055 in der niedrigsten Stelle von SSR 050
bis SSR 052 gespeichert, und bei e) der Inhalt von BPR 054 in der nächsthöheren Stelle, bei f)
wird die Startadresse vom L/M-Reg. zum BP./? 054
übertragen. Bei g) wird die Sondersilbe 7,- (Sprunginkrement) geholt und zum Inhalt von BAR055
addiert und dann dort gespeichert. Dies ist dann die neue Basisadresse der Unterroutine.
Bei h) wird der neue Inhalt von BAR055 zum
L/M-Reg. übertragen. Bei i) wird der Inhalt von BPi? 054 zum K/E-Reg. übertragen. Bei j) wird die
Unterroutinen-Basisadresse von der Unterroutinen-Startadresse abgezogen, und das Ergebnis wird im
Indexregister 15 (017 oktal) gespeichert. Bei k) wird untersucht, ob der Prozessor unmittelbar vor diesem
Befehl eine Überlappung durchgeführt hat. In diesem Fall wird bei m) Eins vom Inhalt des PCi? 057 subtrahiert,
und das Ergebnis wird im höchsten Abschnitt von SSR 050 bis SSR 052 gespeichert. Dann
wird bei n) die Unterroutinen-Startadresse aus dem BPR 054 abgelesen und im PCR 057 gespeichert. Bei
o) wird der Inhalt von PCR 057 dazu benutzt, um das erste Programmwort der Unterroutine aus dem
Hauptspeicher zu holen, und dieses wird im PSR gespeichert. Danach folgt ein Sprung nach PHl, Tl
für den nächsten Befehl.
Falls bei k) die Antwort Nein ist, d. h. keine Überlappung vorherging, wird bei 1) der Inhalt von
PCR057 im höchsten Abschnitt von SSROSO bis
SSi? 052 gespeichert. Die übrigen Schritte n), o) und p) sind dann dieselben.
F i g. 40 zeigt den Befehl SSi?-Unterroutinen-Wiederanlauf. Dieser Befehl hat keine Adresse. Er
stellt in gewissem Sinn das Spiegelbild des Befehls nach F i g. 39 dar. — Bei a) wird der Operationsteil
geholt, in das F-Reg. 3015 gebracht und dort decodiert. Bei b) wird der Inhalt der niedrigsten Stufe von
SSR 050 bis SSR052 im BAR 055 gespeichert. Bei c)
wird der Inhalt der nächstniedrigen Stufe von SSR im BPR 054 gespeichert. Bei d) wird der Inhalt der
höchsten Stufe von SSR im PCR 057 gespeichert. Bei e) wird der so erneuerte Inhalt von BAR 055 geholt
und im L/M-Reg. gespeichert. Ebenso wird bei f) der Inhalt von BPk 054 geholt und im K/E-Reg. gespeichert.
Bei g) wird der Inhalt von BAR vom In-
halt des BPR subtrahiert und das Ergebnis im Indexregister Nr. 15 (oktal 017) gespeichert. Bei h) ist der
Befehl beendet, und es erfolgt ein Sprung nach PHl, Tl für den nächsten Befehl.
F i g. 41 zeigt einen Programmablaufplan für das
F i g. 41 zeigt einen Programmablaufplan für das
indirekte Adressieren, welcher zusammen mit dem Ablaufplän gemäß F i g. 26 für die Routine zum indirekten
Adressieren die Abläufe im Leitwerk beim indirekten Adressieren zeigt, und zwar beim indirekten
Adressieren auf mehreren Niveaus, wie das eingangs bereits beschrieben wurde.
Die F i g. 42 bis 46 wurden bereits am Anfang beschrieben.
Viele der in F i g. 1 dargestellten Funktionseinheiten sind handelsübliche Teile, die deshalb nicht
näher dargestellt oder beschrieben werden. Zum Beispiel
kann das Λ-Reg. 3033 (im Rechenwerk) ein übliches 48-Bit-Akkumulatorregister sein, bei dem
jede Binärstelle eine Anzahl von UND-Gliedern aufweist, die Eingangssignale für entsprechende ODER-
Glieder liefern. Eine dritte Anzahl von UND-Gliedern weist Eingänge, z. B. Verschiebesignal-Eingänge
zusätzlich zu den Eingängen von den ODER-Gliedern auf.
Von diesen UND-Gliedern werden dann ihrerseits je zwei ODER-Glieder gesteuert, von denen das eine
die Null-Seite der einzelnen Flipflops des ,4-Reg. steuert und das andere die Eins-Seite.
F i g. 47 zeigt einen Teil der Decodierer des F-Registers
3015, weiche gesteuert von den Binärstellen des F-Registers die Erzeugung der nötigen Signale
für das Leitwerk 3020 bewirken. Die nicht dargestellten Decodierer sehen ähnlich aus, und ihr Aufbau
ergibt sich für den Fachmann aus der Natur der entsprechenden Unterbefehle. Sie enthalten nur
UND-Glieder, ODER-Glieder und Pufferverstärker, und zwar in dieser Reihenfolge.
In Fig. 47 ist dargestellt, wie bestimmte Signale, unter anderem vom Phasenverteiler 3501 (z. B. PH 5)
und vom Zeitsteuerungsverteiler 3503 (Beispiel PH 5-1) mit Signalen von den einzelnen Flipflops Fl
bis F12 des F-Reg. 3015 verknüpft werden, um bestimmte
Befehle oder Teile davon zu erhalten. Die verwendeten Abkürzungen ergeben sich zum Teil
aus der Tabelle nach Fig. 9, z. B. FMU, FDV usw.
Es werden jedoch auch Abkürzungen für Befehlsgruppen verwendet, und zwar FFA = FAD oder
FSU; BRCEQ = CEF oder ACE oder CEQ; BRCLS = (ACL oder CLS oder CLP) in Phase 5, Hauptsteuerflipflops
MC5; BRCGR = CGF oder ACG
oder CGR; FDM = FDV oder FMU;BFDV = BDV
oder FDV; BFAA = BAD oder BSU oder FAD oder FSU. BFSU = BSU oder FSU; BFMU = BMU
oder 'FMU; BFMD = BDV oder BMU oder FDV
oder FMi7. Mit einem liegenden S sind die Pufferverstärker bezeichnet.
Hierzu 13 Blatt Zeichnungen
Λ09 Λ-21 /183
Claims (20)
1. Prozessor für eine Datenverarbeitungsanlage zur Verarbeitung von Befehlen unterschiedlicher
Länge, mit einem Register zum Speichern des Operationsteils eines Befehls und mit einer an
dieses Register angeschlossenen Verknüpfungsschaltung zum Steuern der Ausführung des Befehls,
dadurch gekennzeichnet, daß ein Programmspeicherregister (PSRl, PSR2) vorgesehen
ist, welches Speicherplätze zur Aufnahme des Operationsteils eines Befehls und gegebenenfalls
vorgesehener Operandenteile des eine variable Länge aufweisenden Befehls (vgl. F i g. 7)
aufweist, und daß das zum Speichern des Operationsteils vorgesehene Register (3015) im geladenen
Zustand über die an es angeschlossene Verknüpfungsschaltung (3020, F i g. 92) die Zahl
der auszulesenden Operandenteile enthaltenden Speicherplätze des Programmspeicherregisters
(100 bis 107 in PSR1 und PSR 2) festlegt sowie
die Übertragung dieser Operandenteile aus diesen. Speicherplätzen in entsprechende Register (z. B.
3006/7) steuert.
2. Prozessor nach Anspruch 1, dadurch gekennzeichnet, daß ein Programmsilbenadressenzähler
(3504) vorgesehen ist, der die aus dem Programmspeicherregister (PSRl, PSRl) ausgelesenen
Programmteile zählt, und daß mindestens ein Steuerflipfiop (Programm-Voll-Flipflops
PFl und PF 2 der Vorrichtung 3505) vorgesehen
ist, das gesetzt wird, wenn sich Programmteile in dem ihm zugeordneten Teil des Programmspeicherregisters
befinden.
3. Prozessor nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß die Befehle variabler Länge
in den Speicherplätzen eines äußeren Speichers unmittelbar aufeinanderfolgend (F i g. 48 A) gespeichert
werden. .
4. Prozessor nach Anspruch 3, dadurch gekennzeichnet, daß im Programmspeicherregister
(PSR 1, PSR2) Speicherplätze (100 bis 107) zum Speichern zweier vollständiger Worte der im
äußeren Speicher gespeicherten Art vorgesehen sind und daß eine Vorrichtung (3505, 3020) vorgesehen
ist, welche bei der Ausführung längerer Rechenoperationen (z. B. Multiplizieren, Dividieren)
eine Übertragung eines neuen Programmworts in die Speicherplätze für das eine Wort
(z. B. PSR 2) während der Zeit bewirkt, während der das in den Speicherplätzen für das andere
Wort (z. B. PSRl) befindliche Programmwort verarbeitet wird.
5. Prozessor nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß der
Prozessor einen inneren Speicher (3001) aufweist, welcher Speicherstellen (140 bis 157) zur Aufnahme
mindestens eines Operanden aufweist, und daß das zum Speichern des Operationsteils vorgesehene
Register (3015) und die an es angeschlossene Verknüpfungsschaltung (3020, F i g. 47)
die Übertragung dieses oder dieser Operanden vom oder zum inneren1 Speicher (3001) steuert.
6. Prozessor nach Anspruch 5, dadurch gekennzeichnet, daß der innere Speicher als Kellerspeicher
(140 bis 157) ausgebildet ist.
7. Prozessor nach einem der vorhergehenden
Ansprüche, dadurch gekennzeichnet, daß der Operationsteil aus einem Befehlscode (Stellen 1
bis 6, F i g. 7 oder F i g. 42) und individuell einstellbaren Bitstellen (Stellen 7 bis 12, Fig. 7
oder 42) besteht und daß die Verknüpfungsschaltung (3020) besondere Teile zur Auswertung
des Befehlscodes und der individuell einstellbaren Bitstellen aufweist.
8. Prozessor nach Anspruch 5 oder 6 und nach Anspruch 7, dadurch gekennzeichnet, daß
die zur Auswertung der individuell einstellbaren Bitstellen dienenden Teile der Verknüpfungsschaltung
(3020, F i g. 47) zur Steuerung des Zugriffs zu dem im Prozessor vorgesehenen inneren
Speicher (3001) ausgebildet sind, um von dort einen Operanden in ein Bestimmungsregister
(3031 oder 3033) zu übertragen (F i g. 30) oder um ein Ergebnis aus einem Register (^4-Register
3033) des Rechenwerks (3030) in diesen inneren Speicher zu übertragen (F i g. 32).
9. Prozessor nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, daß das zum Speichern
des Operationsteils vorgesehene Register (3015) ξ über die an es angeschlossene Verknüpfungsschaltung
(3020) die Übertragung einer einer bestimmten Adresse zugeordneten Indexinformation
in ein entsprechendes Indexregister (3017) steuert.
10. Prozessor nach den Ansprüchen 7 und 9, dadurch gekennzeichnet, daß die zur Auswertung
der individuell einstellbaren Bitstellen dienenden Teile der Verknüpfungsschaltung (3020, Fig.47)
zur Steuerung der Übertragung einer Index-Bitgruppe aus dem Programmspeicherregister (PSR 1,
PSR 2) zu einem Indexregister (3017) dienen.
11. Prozessor nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß in ihm
ein Programmzählregister (PCR 057) vorgesehen ist, das durch den in ihm gespeicherten Inhalt
die absolute Adresse der augenblicklich ausgeführt werdenden Befehlsteile in einem äußeren
Hauptspeicher (Fig. 3) angibt, daß dieser Inhalt zu einem vorgegebenen Zeitpunkt um 1 inkrementierbar
und in einem Hauptspeicheradressenregister (3006/7) speicherbar ist und daß der ,
Inhalt des durch die vom letztgenannten Register * angegebene Adresse bestimmten Speicherplatzes
im äußeren Hauptspeicher, gesteuert von einem Zähler (3506), in das Programmspeicherregister
(PSRl, PSR2) übertragen wird.
12. Prozessor nach mindestens einem der vorhergehenden Ansprüche, dadurch gekennzeichnet,
daß die für die Aufnahme des Operationsteils und der·Operandenteile eines Befehls vorgesehenen
Speicherplätze des Programmspeicherregisters , (PSR 1, PSR 2) jeweils die gleiche Zahl von Binärstellen
aufweisen.
13. Prozessor nach Anspruch 12, dadurch gekennzeichnet,
daß ein Basisadressenregister (BAR 055) vorgesehen ist, dessen Binärstellenzahl
größer ist als die Zahl der in den einzelnen Speicherplätzen des Programmspeicherregisters
(PSRl, PSR2) für die die relativen Adressen angebenden Bitgruppen vorgesehenen Binärstellen.
14. Prozessor nach mindestens einem der vorhergehenden Ansprüche, dadurch gekennzeichnet,
daß zur zeitlichen Steuerung (vgl. Fig. 10) der einzelnen Phasen eines Befehls und der hierfür
erforderlichen Übertragungen von Operandenteilen und Operanden eine Phasenverteilungsschaltung
(PHl bis PH6, 3501, Fig. 4) vorgesehen
ist.
15. Prozessor nach Anspruch 14, dadurch gekennzeichnet,
daß der Phasenverteilungsschaltung (3501) ein Zeitsteuerungsverteiler (Tl bis T 15,
3502, F i g. 4) untergeordnet ist, welcher in einzelnen Phasen zur Abgabe von Zeittakten (T 1
bis T15) dient.
16. Prozessor nach Anspruch 14 oder 15, dadurch
gekennzeichnet, daß die Phasenverteilungsschaltung (3501) mit zunehmender Zahl von
Adressen eines Befehls eine zunehmende Zahl von Phasen durchläuft.
17. Prozessor nach Anspruch 16, dadurch gekennzeichnet,
daß das Holen von Operanden bzw. das Speichern von Ergebnissen bestimmten Phasen
(PH 2, PH 4, PH 6) zugeordnet ist und daß die Befehlsausführung (z. B. Addieren, Multiplizieren)
anderen Phasen (PH 3, PH S) zugeordnet ist.
18. Prozessor nach Anspruch 3 oder 4 und nach mindestens einem der Ansprüche 14 bis 17,
dadurch gekennzeichnet, daß zu der in einzelnen Phasen erforderlichen zeitlichen Steuerung der
Übertragungen vom und zum äußeren Speicher ein gesonderter Speicher-Zeitsteuerungszähler
(TM3503, Fig. 4) vorgesehen ist, welcher bei
solchen Übertragungen die Aufgaben des Zeitsteuerungsverteilers (3502) des Prozessors zeitweilig
übernimmt.
19. Prozessor nach mindestens einem der vorhergehenden Ansprüche, gekennzeichnet durch
die Verwendung in einem vorzugsweise mehr als zwei Prozessoren aufweisenden Mehrprozessorsystem.
'
20. Prozessor nach Anspruch 19, gekennzeichnet durch die Verwendung in einem modularen
Mehrprozessorsystem.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US241273A US3319226A (en) | 1962-11-30 | 1962-11-30 | Data processor module for a modular data processing system for operation with a time-shared memory in the simultaneous execution of multi-tasks and multi-programs |
Publications (3)
Publication Number | Publication Date |
---|---|
DE1449531A1 DE1449531A1 (de) | 1969-04-03 |
DE1449531B2 DE1449531B2 (de) | 1973-10-25 |
DE1449531C3 true DE1449531C3 (de) | 1974-05-22 |
Family
ID=22909994
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE1449531A Expired DE1449531C3 (de) | 1962-11-30 | 1963-11-30 | Prozessor, vorzugsweise für ein modul ares Mehrprozessorsystem |
Country Status (4)
Country | Link |
---|---|
US (1) | US3319226A (de) |
DE (1) | DE1449531C3 (de) |
FR (1) | FR1390241A (de) |
GB (1) | GB1063142A (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2039040A1 (de) * | 1969-08-13 | 1971-04-01 | Burroughs Corp | Einrichtung und Verfahren zum UEbertragen von Daten zwischen einer zentralen Datenverarbeitungsanlage und mehreren fernen Datenendstationen |
Families Citing this family (53)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3774166A (en) * | 1963-09-30 | 1973-11-20 | F Vigliante | Short-range data processing transfers |
US3569939A (en) * | 1963-12-31 | 1971-03-09 | Bell Telephone Labor Inc | Program controlled data processing system |
GB1054725A (de) * | 1964-04-06 | |||
US3541516A (en) * | 1965-06-30 | 1970-11-17 | Ibm | Vector arithmetic multiprocessor computing system |
US3401376A (en) * | 1965-11-26 | 1968-09-10 | Burroughs Corp | Central processor |
US3435420A (en) * | 1966-01-03 | 1969-03-25 | Ibm | Contiguous bulk storage addressing |
US3411143A (en) * | 1966-01-13 | 1968-11-12 | Ibm | Instruction address control by peripheral devices |
US3426330A (en) * | 1966-02-14 | 1969-02-04 | Burroughs Corp | Central data processor |
US3426329A (en) * | 1966-02-14 | 1969-02-04 | Burroughs Corp | Central data processor for computer system having a divided memory |
US3416139A (en) * | 1966-02-14 | 1968-12-10 | Burroughs Corp | Interface control module for modular computer system and plural peripheral devices |
US3473158A (en) * | 1966-03-07 | 1969-10-14 | Gen Electric | Apparatus providing common memory addressing in a symbolically addressed data processing system |
US3408630A (en) * | 1966-03-25 | 1968-10-29 | Burroughs Corp | Digital computer having high speed branch operation |
US3422405A (en) * | 1966-03-25 | 1969-01-14 | Burroughs Corp | Digital computer having an indirect field length operation |
US3417375A (en) * | 1966-03-25 | 1968-12-17 | Burroughs Corp | Circuitry for rotating fields of data in a digital computer |
SE313849B (de) * | 1966-03-25 | 1969-08-25 | Ericsson Telefon Ab L M | |
US3444525A (en) * | 1966-04-15 | 1969-05-13 | Gen Electric | Centrally controlled multicomputer system |
US3440616A (en) * | 1966-05-16 | 1969-04-22 | Gen Electric | Data storage access control apparatus for a multicomputer system |
US3541517A (en) * | 1966-05-19 | 1970-11-17 | Gen Electric | Apparatus providing inter-processor communication and program control in a multicomputer system |
US3413613A (en) * | 1966-06-17 | 1968-11-26 | Gen Electric | Reconfigurable data processing system |
US3473159A (en) * | 1966-07-07 | 1969-10-14 | Gen Electric | Data processing system including means for protecting predetermined areas of memory |
US3479649A (en) * | 1966-07-22 | 1969-11-18 | Gen Electric | Data processing system including means for masking program interrupt requests |
US3510845A (en) * | 1966-09-06 | 1970-05-05 | Gen Electric | Data processing system including program transfer means |
US3626427A (en) * | 1967-01-13 | 1971-12-07 | Ibm | Large-scale data processing system |
US3480916A (en) * | 1967-01-30 | 1969-11-25 | Gen Electric | Apparatus providing identification of programs in a multiprogrammed data processing system |
US3496550A (en) * | 1967-02-27 | 1970-02-17 | Burroughs Corp | Digital processor with variable field length operands using a first and second memory stack |
US3505652A (en) * | 1967-03-15 | 1970-04-07 | Gen Electric | Data storage access control apparatus for a multicomputer system |
US3492654A (en) * | 1967-05-29 | 1970-01-27 | Burroughs Corp | High speed modular data processing system |
US3496551A (en) * | 1967-07-13 | 1970-02-17 | Ibm | Task selection in a multi-processor computing system |
US3546677A (en) * | 1967-10-02 | 1970-12-08 | Burroughs Corp | Data processing system having tree structured stack implementation |
US3651482A (en) * | 1968-04-03 | 1972-03-21 | Honeywell Inc | Interlocking data subprocessors |
NL6806735A (de) * | 1968-05-11 | 1969-11-13 | ||
US3525077A (en) * | 1968-05-31 | 1970-08-18 | Sperry Rand Corp | Block parity generating and checking scheme for multi-computer system |
US3548382A (en) * | 1968-06-10 | 1970-12-15 | Burroughs Corp | High speed modular data processing system having magnetic core main memory modules of various storage capacities and operational speeds |
US3618040A (en) * | 1968-09-18 | 1971-11-02 | Hitachi Ltd | Memory control apparatus in multiprocessor system |
US3598980A (en) * | 1969-09-22 | 1971-08-10 | Mobil Oil Corp | Method of and apparatus for determining area gravity |
US3614741A (en) * | 1970-03-23 | 1971-10-19 | Digital Equipment Corp | Data processing system with instruction addresses identifying one of a plurality of registers including the program counter |
JPS5040738B1 (de) * | 1970-06-11 | 1975-12-26 | ||
US3668650A (en) * | 1970-07-23 | 1972-06-06 | Contrologic Inc | Single package basic processor unit with synchronous and asynchronous timing control |
US3725873A (en) * | 1971-04-07 | 1973-04-03 | Singer Co | Calculator having a sequential access stack |
FR2177284A5 (de) * | 1972-03-23 | 1973-11-02 | Burroughs Corp | |
US3805247A (en) * | 1972-05-16 | 1974-04-16 | Burroughs Corp | Description driven microprogrammable multiprocessor system |
US3905023A (en) * | 1973-08-15 | 1975-09-09 | Burroughs Corp | Large scale multi-level information processing system employing improved failsaft techniques |
US4249241A (en) * | 1978-10-23 | 1981-02-03 | International Business Machines Corporation | Object access serialization apparatus for a data processing system |
JPS5730016A (en) * | 1980-07-31 | 1982-02-18 | Hitachi Ltd | Interface controlling system |
US4468736A (en) * | 1982-06-08 | 1984-08-28 | Burroughs Corporation | Mechanism for creating dependency free code for multiple processing elements |
US4466061A (en) * | 1982-06-08 | 1984-08-14 | Burroughs Corporation | Concurrent processing elements for using dependency free code |
US5007018A (en) * | 1983-11-10 | 1991-04-09 | General Signal Corp. | Vital processor implemented with non-vital hardware |
US4831521A (en) * | 1983-11-10 | 1989-05-16 | General Signal Corporation | Vital processor implemented with non-vital hardware |
DE102004061891A1 (de) * | 2004-12-22 | 2006-09-21 | BSH Bosch und Siemens Hausgeräte GmbH | Verfahren und Schaltungsanordnung zur Ausführung von Initialisierungs- bzw. Registrierungsvorgängen für ein Gerät, insbesondere ein Hausgerät |
US8139668B2 (en) * | 2009-03-31 | 2012-03-20 | Mitsubishi Electric Research Laboratories, Inc. | Unified STTC encoder for WAVE transceivers |
US10818314B1 (en) | 2019-05-07 | 2020-10-27 | International Business Machines Corporation | Storing multiple instances of a housekeeping data set on a magnetic recording tape |
US11182160B1 (en) * | 2020-11-24 | 2021-11-23 | Nxp Usa, Inc. | Generating source and destination addresses for repeated accelerator instruction |
CN113204608A (zh) * | 2021-05-27 | 2021-08-03 | 广州大学 | 一种基于遥感影像的地图自动更新方法、存储介质及*** |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US2936116A (en) * | 1952-11-12 | 1960-05-10 | Hnghes Aircraft Company | Electronic digital computer |
US2957626A (en) * | 1955-11-21 | 1960-10-25 | Ibm | High-speed electronic calculator |
US3074636A (en) * | 1958-12-31 | 1963-01-22 | Texas Instruments Inc | Digital computer with simultaneous internal data transfer |
NL255604A (de) * | 1959-09-08 |
-
1962
- 1962-11-30 US US241273A patent/US3319226A/en not_active Expired - Lifetime
-
1963
- 1963-11-13 GB GB44731/63A patent/GB1063142A/en not_active Expired
- 1963-11-29 FR FR955432A patent/FR1390241A/fr not_active Expired
- 1963-11-30 DE DE1449531A patent/DE1449531C3/de not_active Expired
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2039040A1 (de) * | 1969-08-13 | 1971-04-01 | Burroughs Corp | Einrichtung und Verfahren zum UEbertragen von Daten zwischen einer zentralen Datenverarbeitungsanlage und mehreren fernen Datenendstationen |
Also Published As
Publication number | Publication date |
---|---|
US3319226A (en) | 1967-05-09 |
DE1449531B2 (de) | 1973-10-25 |
FR1390241A (fr) | 1965-02-26 |
DE1449531A1 (de) | 1969-04-03 |
GB1063142A (en) | 1967-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE1449531C3 (de) | Prozessor, vorzugsweise für ein modul ares Mehrprozessorsystem | |
DE2318069C2 (de) | Mikroprogrammierte Rechenanlage mit Erweiterung von Steuerfunktionen mittels festverdrahteter logischer Matrix | |
DE1524103C3 (de) | Datenverarbeitungsgerät | |
DE2855106C2 (de) | Einrichtung zur Durchführung von bedingten Verzweigungen | |
DE2555963C2 (de) | Einrichtung zur Funktionsmodifizierung | |
DE2306115C2 (de) | Datenprozessor mit Mikroprogrammspeicherüberlagerung | |
DE2829668C3 (de) | Kanaldatenpufferspeicher | |
DE1774296C2 (de) | Restruktuierbare Steuereinheit für elektronische Digitalrechner | |
DE2322674C3 (de) | Mikroprogramm-Steuereinrichtung | |
DE2424810C2 (de) | Mikroprogrammierbare Datenverarbeitungsanlage | |
CH650600A5 (de) | Zentralprozessoreinheit einer datenverarbeitungsanlage mit operationscode-erweiterungsregister. | |
DE1499200B2 (de) | Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung | |
DE2411963B2 (de) | Datenverarbeitungsanlage | |
DE1282337B (de) | Programmgesteuerte elektronische Rechenanlage | |
DE1942005B2 (de) | Datenverarbeitungsanlage zur aufnahme und abgabe von digitalen daten und zur ausfuehrung von operationen an den daten | |
DE1929010B2 (de) | Modular aufgebaute datenverarbeitungsanlage | |
DE2725522A1 (de) | Datenverarbeitungsvorrichtung | |
DE2360303A1 (de) | Datenverarbeitungssystem mit dynamischer adressuebersetzung | |
DE3031964A1 (de) | Rechnersystem, bei dem sich der programmspeicher zum durchlaufen eignet, wobei einem befehl nicht zugeordnete daten einzeln detektiert werden | |
DE2364323A1 (de) | Unterbrechungssystem fuer eine datenverarbeitende maschine | |
DE1499224C3 (de) | Datenverarbeitungsanlage mit Kellerspeichereinrichtungen | |
DE1180171B (de) | Zahlenrechner | |
DE2704560B1 (de) | Datenverarbeitende Anlage mit paralleler Bereitstellung und Ausfuehrung von Maschinenbefehlen | |
DE1549449A1 (de) | Einrichtung zur Verarbeitung von Gleitkommazahlen | |
DE2237427C3 (de) | Steueranordnung in einer Datenverarbeitungsanlage mit Mikroprogrammsteuerung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C3 | Grant after two publication steps (3rd publication) | ||
E77 | Valid patent as to the heymanns-index 1977 |