DE1449531C3 - Prozessor, vorzugsweise für ein modul ares Mehrprozessorsystem - Google Patents

Prozessor, vorzugsweise für ein modul ares Mehrprozessorsystem

Info

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
Application number
DE1449531A
Other languages
English (en)
Other versions
DE1449531B2 (de
DE1449531A1 (de
Inventor
Simon Peter Malvern Beauregard
Ronald Bruce Broomall Lounsbury
Lucile Elizabeth Ardmore Mott
James Lee West Chester Murtaugh Jun.
August Albert Berwyn Sardinas
Blair Chester King Of Prussia Thompson
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Unisys Corp
Original Assignee
Burroughs Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Burroughs Corp filed Critical Burroughs Corp
Publication of DE1449531A1 publication Critical patent/DE1449531A1/de
Publication of DE1449531B2 publication Critical patent/DE1449531B2/de
Application granted granted Critical
Publication of DE1449531C3 publication Critical patent/DE1449531C3/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures 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.
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, ·
»Γ« 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,
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
25
30 123
124 bis 127
40 130 bis 132
bis 157
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 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.
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
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'* 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.
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.
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.
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
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)
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
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.
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.
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
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
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)

Patentansprüche:
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.
DE1449531A 1962-11-30 1963-11-30 Prozessor, vorzugsweise für ein modul ares Mehrprozessorsystem Expired DE1449531C3 (de)

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)

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

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

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

Cited By (1)

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