Datenverarbeitungsanlage mit einer Vorrichtung zum Entwickeln von Operandenadressen
Die Erfindung betrifft eine Datenverarbeitungsanlage mit einer Vorrichtung zum Entwickeln von Operandenadressen der in einem Speicher gruppenweise gespeicherten Befehlsworte.
Datenverarbeitungsanlagen, die eine Folge von Befehlsworten ausführen, d. h. einem Programm folgen, sollten in der Lage sein, ein Befehlswort, wie es in dem Speicher eingespeichert ist, durch Änderung des Adressenfeldes zu modifizieren, ohne den Befehlscode selbst zu ändern. Es ist üblich, das Adressenfeld eines Befehlswortes in dem Programm dadurch zu ändern, dass man eine beschränkte Anzahl von Indexregistern in der Datenverarbeitungsanlage vorsieht. Jedes dieser In dexregister enthält eine Information, die dazu verwendet werden kann, das Adressenfeld des Befehlswortes in arithmetischer oder logischer Weise zu modifizieren, nachdem das Befehlswort aus dem Speicher ausgelesen worden ist, jedoch noch vor der Durchführung des Befehls.
Wenn die Anzahl von Indexregistern in der Datenverarbeitungsanlage nur klein ist, ist es notwendig, eine grosse Anzahl unproduktiver Datenverarbeitungsschritte vorzunehmen, um entweder eine Adresse eines Zweiadressenbefehls zu entwickeln, um die Programmierung bestimmter Befehle zu verbessern, oder um die Befehlsworte zu modifizieren. Um die Adressenfelder mehrerer Befehle zu modifizieren und um den Inhalt solcher Indexregister zu ändern, müssen bestimmte Datenverarbeitungsbefehle verwendet werden.
Solche nicht produktive Datenverarbeitungsschritte machen das ganze Programm komplexer, erfordern ausserdem eine grosse Anzahl von Speicherplätzen, um die zusätzlichen Befehle zu speichern, und verschwenden ausserdem wertvolle Datenverarb eitungszeit. Eine fortschrittw liche Programmierungstechnik erfordert eine grosse Anzahl von Indexgrössen, um die Möglichkeiten der Datenverarbeitungsanlage möglichst günstig ausnützen zu können. Wenn man in einer Datenverarbeitungsanlage jedoch eine grosse Anzahl von Indexregistern verwendet, um die Anzahl der unproduktiven Datenverarbeitungsschritte zu vermindern und um eine komplexe Programmierung zu ermöglichen, so wird die ganze Datenverarbeitungsanlage sehr komplex und erfordert eine umfangreiche und kostspielige Schaltlogik.
Eine Forderung, die bei der Datenverarbeitung häufig auftritt, besteht in der Wiederholung einer Gruppe von Programmbefehlen. So können beispielsweise in einem Programm viele Punkte existieren, an denen eine Gruppe von Befehlen vorgesehen sein muss, um ein System simultaner Gleichungen lösen zu können. Hier könnte man zwar an jedem Punkt die Gruppe dieser Befehle wiederholen, die zur Lösung der Simultangleichungen erforderlich sind. Es ist jedoch günstiger, diese Gruppe von Befehlen erneut in das Programm einzuführen, und das Programm so einzurichten, dass ,die Datenverarbeitungsanlage auf ein Unterprogramm oder eine Subroutine abzweigt, wenn die Lösung simultaner Gleichungen erforderlich ist. In gleicher Weise kann es diese Subroutine notwendig machen, dass die Datenverarbeitungsanlage wiederholt zu einer anderen Subroutine übergeht.
Die hierbei auftretende Schwierigkeit besteht darin, der Datenverarbeitungsanlage denjenigen Punkt im Programm anzuzeigen, zu dem sie zurückkehren soll, wenn sie gerade eine vorgegebene Subroutine beendet hat. Dieses wird die Verkettung von Subroutinen genannt. Ähnliche Schwierigkeiten treten bei der Verarbeitung von mehrdimensionalen Matrizen und bei der Tabellierung auf.
In der Verarbeitung mehrdimensionaler Matrizen, Tabellierungsvorgängen und bei anderen komplexen Datenverarbeitungsoperationen werden Indexregister zur Unterstützung dieser Verkettung von Subroutinen verwendet. Die beschränkte Anzahl von Indexregistern in einer gewöhnlichen Datenverarbeitungsanlage stellt jedoch keine zufriedenstellende Lösung der Schwierigkeiten dar, die sich bei einer fortgeschrittenen Programmierung einer Datenverarbeitungsanlage ergeben.
Es ist daher wünschenswert, den Indexteil in einer Datenverarbeitungsanlage flexibler zu machen.
Wenn es sich um Zweiadressenbefehle handelt, ist es üblich, die zweite Adresse auf die gleiche Weise durch Verwendung eines Index zu gewinnen, in der die Gewinnung der Adresse eines Einadressenbefehles vor sich geht, d. h. durch Verwendung einer begrenzten Anzahl von Indexregistern in der Datenverarbeitungsanlage. Wenn die Anzahl der Indexregister in einer Datenverarbeitungsanlage nur klein ist, wird es notwendig, diese grosse Anzahl unproduktiver Datenverarbeitungsschritte durchzuführen, da Datenverarbeitungsbefehle dazu verwendet werden müssen, sowohl die zweiten als auch die ersten Adressen anderer Befehle zu modifizieren und den Inhalt der Indexregister zu ändern.
In Datenverarbeitungsanlagen ist es günstig, wenn ein einzelnes Befehlswort im Programm explizit zwei diskrete Speicherzellen adressieren kann. Ein solches Befehlswort wird Zweiadressenbefehl genannt. Ein Zweiadressenbefehl kann daher zwei Operanden verwenden, die in den beiden adressierten Speicherstellen vorhanden sind, um die Datenverarbeitungsfunktion durchzuführen, die aus dem Operationskode des Befehlwortes hervorgeht. Wenn in dem Befehlsvorrat der Datenverarbeitungsanlage Zwei-Adressenbefehle vorhanden sind, kann die Programmierung der Datenverarbeitungsanlage flexibler und fortschrittlicher gestaltet werden, so dass es möglich ist, das Programm kürzer zu machen und weniger Plätze im Speicher zu benutzen.
In einer Datenverarbeitungsanlage sollte es auch möglich sein, mit einer indirekten Adressierung zu arbeiten. Bei der indirekten Adressierung gibt das Adressenfeld des Befehlswortes den Platz im Speicher an, an dem die Adresse desjenigen Operanden, der von dem Befehlswort verarbeitet werden soll, gefunden werden kann. Durch die indirekte Adressierung ist es möglich, die Programmierung der Datenverarbeitungsanlage flexibler zu gestalten. Ausserdem ist die indirekte Adressierung auch bei der Durchführung von vielen Datenverarbeitungsoperationen von Wert. Durch diese indirekte Adressierung ist es möglich, die Datenverarbeitungsanlage fortschrittlicher zu programmieren und die Datenverarbeitungsanlage besser auszunutzen.
Selbst wenn es möglich ist, bei einer Datenverarbeitungsanlage mit indirekter Adressierung zu arbeiten, sind viele Datenverarbeitungsoperationen schwierig zu programmieren. Eine grössere FleXibilität in der indirekten Adressierung ist beispielsweise beim Sortieren, beim Verknüpfen von Subroutinen und beim Tabellieren von Vorteil, um eine fortschrittlichere Programmierung durchführen zu können.
Ziel der Erfindung sind daher Verbesserungen in einer Datenverarbeitungsanlage, und im besonderen Verbesserungen im Adressen- und Indexteil einer solchen Anlage, durch die die gesamte Anlage selbst und auch die Rechnerzeit besser als bisher ausgenutzt werden.
Die Erfindung ist dadurch gekennzeichnet, dass die Vorrichtung folgende Bauteile enthält: a) ein erstes Register, welches die Übertragung eines Befehlswortes oder Hilfswortes aus dem Speicher steuert, zwecks zwischenzeitlicher Speicherung mindestens eines Teiles des genannten Wortes in mindestens einem weiteren Register, b) ein zweites Register zur Speicherung einer beschränkten Anzahl von Bitstellen eines Befehls- oder Hilfswortes, im nachfolgenden mit Adressensteuerfeld bezeichnet, zwecks Modifizierung des Adressenteiles des in einem der genannten weiteren Register gespeicherten Wortes mittels eines Addierers, c) eine Operationssteuereinheit, eine Zeitgebersteuereinheit und eine Prüfeinheit zur Steuerung der durch die Modifizierung bedingten tÇbertragungsvor- gänge.
Es sind also mehrere Register vorgeschen, die in der Lage sein können, bestimmte Bits von Worten, die ihnen übertragen wurden, zu untersuchen. Die Bestimmung, um welche Art von Worten es sich handelt, also beispielsweise um ein Befehlswort, ein anderes spezielles Wort oder ein Hilfswort, kann durch die Untersuchung vorgegebener Bitstellen dieses Wortes durchgeführt werden, um die Konfiguration dieser Bitstellen zu bestimmen. Es kann dann eine Subroutine oder eine Mikrooperation ausgelöst werden, deren Folge von der Bitkonfiguration abhängt. Diese Subroutine kann durch die Übertragung des Befehlswortes zwischen Registern den Dateninhalt des Wortes in Abhängigkeit vom Informationsinhalt in dem Hilfswort modifizieren. Das Hilfswort selbst kann ebenfalls modifiziert werden.
Der Dateninhalt des modifizierten Wortes (hauptsächlich des Befehlswortes) kann weiterhin durch das gleiche oder durch ein anderes Hilfswort modifiziert werden.
Das hängt von Registern ab und kann von Registern gesteuert werden, deren Zustand mit der ursprüng eichen oder auch späteren Dekodierung eines dieser Worte in Abhängigkeit steht.
Die Modifizierung des Befehlswortes bezieht sich also auf die Modifizierung der Adresse des Operanden, der durch den Befehl verarbeitet oder beeinflusst werden soll. Es kann sich hier um eine einfache oder auch doppelte Adresse handeln. Es wird somit nicht mehr die Adresseninformation in dem Befehlswort als die zu verwendende übernommen, sondern es wird stattdessen eine Adressenmodifizierung ausgeführt, die im nachfolgenden Adressenentwicklung genannt werden soll.
Durch die -erfindungsgemässen Massnahmen hat der Programmierer wesentlich mehr Freiheit, Adressen zu entwickeln. Ausserdem wird die gesamte Rechenzeit bei einem minimalen apparativen Aufwand vermindert.
Nach einer Ausführungsform der Anlage sind in aufeinanderfolgenden Speicherplätzen, die auf das Be fehlswsrt folgen, das verarbeitet werden soll, ein oder mehrere Hilsworte gespeichert, die im folgenden AMS Worte genannt werden sollen. Wenn in bestimmten -Bitplätzen des Befehlswortes, die Adressensteuerfeld genannt werden, bestimmte binäre Ziffern vorhanden sind, wird ein AMS-Wort aus dem Speicher heraus in die Vorrichtung zum Entwickeln von Operandenadres- -sen eingelesen, in der dann bestimmt wird, ob das Wort ein Index, eine Indexstelle oder ein Indexsprung ist. Wenn sich das AMS-Wort selber als ein Index identifiziert, wird das Adressenfeld des AMS-Wortes dem Adressenfeld des Befehlswortes hinzuaddiert.
Wenn das AMS-Wort sich selbst als eine Indexstelle identifiziert, bedeutet das Adressenfeld des AMS-Wortes einen Speicherplatz, der einen Index enthält. Dieser Index wird aus dem Speicher ausgelesen und dem Adressenfeld des Befehlswortes in der Vorrichtung zum Entwickeln von Operandenadressen hinzuaddiert.
Wenn sich das AMS-Wort selbst als Indexsprung identifiziert, enthält sein Adressenfeld die Adresse einer anderen Art von Hilfswort, die entfernt liegendes AMS-Wort genannt werden soll. Dieses entfernt liegende AMS-Wort ist dann aus dem Speicher in die VQrrichtung zum Entwickeln von perandenadressen auszulesen. Der Zustand vorgegebener Bitstellen in dem entfernt liegenden AMS-Wort kann-dieses AMS Wort wiederum als Index, als Indexstelle oder als einen Indexsprung identifizieren. Diese Folge läuft un teer der Steuerung durch die Vorrichtung solange ab, bis eine Indexgrosse erhalten und dem Adressenfeld -des Befehlswortes hinzuaddiert worden ist.
Wenn das Adressenfeld des Befehiswortes durch Hinzuaddieren einer Indexgrösse aufgebaut worden ist, lehrt die Steuerung wieder zu dem AMS-Wort zurück, das diese Folge ausgelöst hat. In Abhängigkeit vorgegebener binärer Ziffern in -dem Adressensteuerfeld des AMS-Wortes kann ein anderes AMS-Wort aus dem Speicher heraus und in die Vorrichtung hineingelesen werden, so dass die Modifizierung und der Aufbau des Adressenfeldes eines Befehls fortgeführt werden kann, wie es oben beschrieben ist. Dieser Aufbau von Adressen, bei dem der Inhalt eines jeden beliebigen adressierbaren Speicherplatzes verwendet wird, wird dann unter der Steuerung durch die Vorrichtung solange fortgesetzt, bis die endgültige Adresse des Befehlswortes in der Vorrichtung aufgebaut ist.
Der Aufbau der endgültigen Adresse des Befehlswortes ist dann beendet, wenn das AMS-Wort, das -diese Folge zum Adressenaufbau ausgelöst hat, in seinem Adressenfeld keinen Kode mehr enthält, der bedeutet, dass ein anderes AMS-Wort aus dem Speicher auszulesen ist.
Nach einer Ausführungsform der Vorrichtung sind in dem Befehlswort Idrei Bits als Adressenste'uerfeld vorgesehen. Wenn der Befehl ein Zweiadressenbefehl ist, und wenn der Wert der Bits in dem Adressensteuerfeld im Bereich zwischen 1 und 6 liegt, dann wird dieser Wert als zweite Adresse des Befehls -genommen, und der Inhalt der entsprechenden Speicherstellen aus den Stellen 1-6 stellt den zweiten Operanden dar. Wenn das Adressensteuerfeld einen Wert von 7 hat, wird in der Vorrichtung die erste Adresse aufgebaut. Ist der Wert des Adressensteuerfeldes dagegen 0, wird die erste Adresse nicht aufgebaut. An einem Speicherplatz, der auf diejenigen Speicherstellen folgt, in dem ein zu verarbeitendes Zweiadressenbefehlswort gespeichert ist, ist ein weiteres Hilfswort gespeichert, das im folgenden als SAS-Wort bezeichnet werden soll.
Wenn der Wert des Adressensteuerfeldes nicht zwischen 1 und 6 liegt, wird das AMS-Wort dazu verwendet, die erste Adresse des Befehls aufzubauen, sofern ein solcher Adressenaufbau erforderlich ist. Dann wird ein SAS-Wort aus dem Speicher in die Vorrichtung hineingelassen, wo der Inhalt vorgegebener Bitstellen im Wort dieses Wort als einen Operanden eine Operandenstelle, oder auch als einen Operandensprung kennzeichnet, und zwar ganz ähnlich, wie es in Verbindung mit dem entfernt liegenden AMS-Wort bereits erwähnt worden ist. Wenn sich das SAS-Wort selbst als einen Operanden erkennt, ist die zweite Adresse des Zweiadressenbefehls die Adresse dieses SAS-Wortes und dieses SAS-Wort enthält den zweiten Operanden des Befehls. Wenn sich das SAS-Wort selbst als Operandenstelle identifiziert, enthält das Adressenfeld des SAS-Wortes die zweite Adresse des Befehls.
Der Programmverarbeiter verwendet dann diese Adresse, um den Operanden an demjenigen Speicherplatz auszulesen, der dieser zweiten Adresse entspricht. Dieser ope- rand wird dabei aus dem Speicher in das M-Register der Vorrichtung eingelesen. Wenn das SAS-Wort sich selbst als einen Operandensprung kennzeichnet, enthält sein Adressenfeld die Adresse eines Wortes, -das als entfernt liegendes SAS-Wort bezeichnet werden soll, und dann aus dem Speicher in die Vorrichtung eingelesen wird. Der Inhalt vorgegebener Bitplätze in diesem entfernt liegenden SAS-Wort lässt wiederum erkennen, ob es sich um einen Operanden, eine Operandenstelle oder einen Operariensprung handelt.
Diese Folge wird solange fortgesetzt, bis die zweite Adresse des Zwi- adressenbefehls definiert und der entsprechende Operand aus der richtigen Speicherstelle in das M-Register der Vorrichtung eingeschrieben worden ist.
Um mit einer indirekten Adressierung arbeiten zu können, sind an vorgegebenen Speicherplätzen zwei Arten von Hilfsworten eingespeichert. Die erste Art dieser Hilfsworte, die indirektes Adressenwort genannt wird, wird aus dem Speicher ausgelesen, wenn ein AMS-Wort einen ganz bestimmten Kode enthält. Die Adresse des indirekten Adressenwortes im Speicher wird aus dem Adressenbefehl des Befehlswortes unter der Steuerung des AMS-Wortes aufgebaut. Wenn das Adressensteuerfeld des indirekten Adressenwortes einen vorgegebenen Kode enthält, wird die zweite Art Hilfswort, die indirektes AMS-Wort genannt werden soll, aus demjenigen Platz im Speicher ausgelesen, der auf den Speicherplatz folgt, in dem das indirekte Adressenwort gespeichert war.
Vorgegebene Kodierungen an den Bitstellen 18 und 19 des indirekten AMS Wortes geben dann an, ob es sich bei dem indirekten AM9Wort um einen Index handelt, der dem Adres sehfeld des indirekten Adressenwortes hinzuaddiert werden soll, oder ob es sich um eine Indexstelle oder ein Richtungssignai handelt, dessen Adressenfeld den Ort einer Indexgrösse angibt, die dem Adressenfeld des indirekten Adressenwortes hinzuaddiert werden muss, oder ob es sich um einen Indexsprung handelt, dessen Adressenfeld den Ort im Speicher bezeichnet, an dem ein entfernt liegendes AMS-Wort eingespeichert ist, das seinerseits wieder ein Index, eine Indexstelle oder einen Indexsprung bedeuten kann.
Wenn man einen Index erhält, und diesen Index dem Adressenfeld des indirekten Adressenwortes hinzuaddiert, dann wird die Bitstelle 21 des indirekten AMS-Wortes untersucht.
Wenn die Bitstelle 21 einen vorgegebenen Wert hat, wenn dort also beispielsweise eine binäre 1 eingespeichert ist, so bedeutet dieses, dass das aufgebaute Adressenfeld des indirekten Adressenwortes selber wieder eine indirekte Adresse ist und dazu verwendet werden muss, ein weiteres indirektes Adressenwort zu erhalten.
Diese Programmfolge aus einem indirekten Adressenwort und einem darauffolgenden indirekten AMS Wort wird in der Datenverarbeitungsanlage automatisch solange wiederholt, bis entweder das Adressen steuerfeld des indirekten Adressenwortes kein indirektes AMS-Wort mehr erfordert oder bis die Bitstelle 21 des indirekten AMS-Wortes keine binäre' 1 ist, was sonst eine weitere indirekte Adressierung erforderlich machte. Das AMS-Wort, das die indirekte Adressierung ausgelöst hat, wird dann weiterhin überprüft, um zu bestimmen, ob ein weiterer Adressenaufbau zusammen mit einem anderen AMS-Wort notwendig ist.
Im folgenden soll ein Ausführungsbeispiel der Erfindung in Verbindung mit den Zeichnungen im einzelnen beschrieben werden.
Fig. 1 ist ein Blockschaltbild der Datenspeicherelemente, der lZatenübertragungswege zwischen diesen Elementen sowie der Hauptsteuerelemente in einer Datenverarbeitungsanlage;
Fig. 2 zeigt symbolisch, wie die Worte organisiert sind, die in der Anlage nach Fig. 1 verwendet werden;
Fig. 2a ist ein alphanumerisches Datenwort und zeigt die Zeichenstellen 0, 1, 2 und 3 sowie das Zeichen No. 3 im einzelnen, also Zonenbits (A) und Erkennungsbit (BCD).
Fig. 2b ist ein binäres Wort.
Fig. 2c ist ein Befehlswort und zeigt die Bitplätze für das Adressenfeld (AF), das Adressensteuerfeld (ACF) und den Operationskode (OC).
Fig. 2d ist ein Indexwort an einem festen Platz (wenn es zur Adressenmodifizierung verwendet ist) und zeigt das Adressenfeld (AF).
Fig. 2e ist ein AMS-Wort und zeigt wiederum die Bitplätze für das Adressenfeld (AF), das Adressensteuerfeld (ACF), die Klasse (CL) und das indirekte Adressenfeld (I/A).
Fig. 2f ist ein entfernt liegendes AMS-Wort und zeigt die Bitplätze für das Adressenfeld (AF) und für die Klasse (CL).
Fig. 2g ist ein indirektes Adressenwort und zeigt wiederum die Bitplätze für das Adressenfeld (AF) und das Adressensteuerfeld (ACF).
Fig. 2h ist ein indirektes AMS-Wort und zeigt die Bitplätze für das Adressenfeld (AF), die Klasse (CL) und das indirekte Adressenfeld (I/A).
Fig. 2i ist ein SAS-Wort und zeigt die Bitplätze für das Adressenfeld (AF) und die Klasse (CL).
Fig. 2j ist ein entfernt liegendes SAS-Wort und zeigt die Bitplätze für das Adressenfeld (AF) und die Klasse (CL).
In der vorliegenden Datenverarbeitungsanlage wird ein Binärkode verwendet. Hierin kann eine binäre 1 durch ein positives elektrisches Signal in der Grössenordnung von + 3,8 Volt dargestellt sein, während eine binäre 0 durch ein elektrisches Signal in der Grössenordnung von + 0,2 Volt dargestellt ist.
Die Datengrundeinheit, die für das Verarbeiten und für den Datenaustausch in der Anlage verwendet wird, ist das Wort. Dieses Datenwort enthält hier 24 Bits.
Wenn das Wort in dem Speicher erscheint, wird ein 25 igstes Bit zur Paritätsprüfung venvendet. Die erste binäre Ziffer in dem Datenwort ist die Ziffer mit dem höchsten Stellenwert, während die letzte binäre Ziffer die Ziffer mit dem niedrigsten Stellenwert des Wortes ist. Binäre Ziffern, die zwischen den beiden Ziffern mit dem höchsten und dem niedrigsten Stellenwert angeordnet sind, sind der Reihenfolge nach abnehmenden Stellenwerten zugeordnet.
Es werden drei allgemeine Kategorien von Worten venvendet, nämlich erstens Datenwort, zweitens Befehlswort und drittens Hilfsworte für die Adressierung und die Steuerung.
Datenworte kann man weiterhin in a) alphanumerische Datenworte und b) binäre Datenworte unterteilen.
Hilfsworte sind so aufgebaut, wie es in den Figuren 2d-2j dargestellt ist.
Die einzelnen Operationen, mit denen eine Datenverarbeitung durchgeführt wird, werden in der Anlage durch eine Folge von Befehlsworten gesteuert, die im Speicher 10 (Fig. 1) gespeichert sind. Zu einer Zeit wird immer nur ein Befehl ausgeführt. Die Reihenfolge, in der die Befehle ausgeführt werden, ist die sogenannte P-Folge oder Programmfolge. Diese Programmfolge wird durch einen Zähler gesteuert.
Die Organisation eines Befehlswortes ist in der Fig. 2c dargestellt. Der Operationskode des Befehlswortes (Bits 18-23, Feldmarkierung OC) gibt die durchzuführende Operation oder den Programmschritt an, und zeigt ausserdem, ob der Befehl ein Einadressenbefehl oder ein Zweiadressenbefehl ist. Das Adres sehfeld das mit AF bezeichnet ist (Bitplätze 0-14) ist eine numerische Darstellung eines vorläufigen, eines effektiven oder eines endgültigen Platzes im Speicher 10, aus dem während der Befehlsdurchführung Daten zur Verarbeitung ausgelesen werden sollen oder in den nach der Ausführung des Befehle verarbeitete Daten eingespeichert werden sollen. Im vorliegenden Fall sollen aus vorläufigen Adressen endgültige Adressen aufgebaut werden, so dass der Befehl ausgeführt werden kann.
Weiterhin sollen Adressen höherer Ordnung aus Mehradressenbefehlen aufgebaut bzw. gewonnen werden. Jeder Platz im Speicher ist durch eine unterschiedliche Adresse gekennzeichnet. Das Adressen steuerfeld oder ACF (Bits 15-17) bestimmt zusammen mit dem Operationscode, ob und wenn ja, welche Art des Adressenaufbaus durchgeführt werden soll. In be stimmte Befehlen enthält das Befehlsadressenfeld AF acuh andere Informationen ausser einer Speicheradresse. Diese Vielseitigkeit der Adressierung erhöht die Nützlichkeit der ganzen Anlage. Diese grössere Vielseitigkeit wird durch die Verwendung von Hilfsworten erreicht.
Die beschriebene Datenverarbeitungsanlage erlaubt es, bei einer verminderten Rechnerzeit und geringeren Anforderungen an den Programmspeicher ausgedehnte Adressenänderungen sowie einen Neuaufbau von Adressen vorzunehmen. Der Befehlsvorrat der Datenverarbeitungsanlage enthält sowohl Einadressen- als auch Zweiadressenbefehle. Einadressenbefehle bezeichnen einen einzigen Operanden im Speicher 10, während sich Zweidaressenbefehle mit zwei Operanden befassen. Während der Ausführung von Befehlen hält der zentrale Rechner der Datenverarbeitungsanlage die nachstehende allgemeine Folge ein:
1) Das Befehlswort wird aus dem Speicher ausgelesen.
2) Es wird jener Adressenaufbau durchgeführt, der von dem Adressensteuerfeld des Befehlswortes angegeben ist.
3) Wenn der Operationscode ergibt, dass der Befehl ein Zweiadressenbefehl ist, wird die zweite Adresse aufgebaut.
4) Der Befehl wird ausgeführt.
Die Erfindung befasst sich mit dem Adressen aufbau bzw. mit der Adressenge'winnung die unter Punkt 2) dieser Aufzählung angeführt ist, sowie mit der Gewinnung der zweiten Adresse nach Punkt 3). Diese eben ausgeführte Programmfolge wird in dem zentralen Rechner durch die Verwendung von einem oder mehreren Hilfsworten bewirkt. Hilfsworte sind im Speicher 10 auf die gleiche Weise wie Datenworte und Befehlsworte gespeichert.
In der Fig. 2d ist ein festliegendes Indexwort (FLIW) dargestellt. Während eines Adressenaufbaus unter der Verwendung eines festliegenden Indexwortes wird das Adressenfeld (Bit 0-14) des festliegenden Indexwortes dem Adressenfeld des Befehlswortes hinzuaddiert. Dann wird der Befehl unter Verwendung der modifizierten Adresse durchgeführt. Wenn der Opera tionseode des Befehle angibt, dass es sich um einen Zweiadressenbefehl handelt, wird das festliegende Indexwort zur Gewinnung der zweiten Adresse des Be fehles verwendet.
Die Befehls-Adressengewinnung oder der Befehls Adressenaufbau wird nicht. nur mit Hilfe festliegender Indexworte durchgeführt. Befehlsadressen können auch in dem zentralen Rechner der Datenverarbeitungsanlage durch die Verwendung eines AMS-Wortes (Fig. 2e) aufgebaut oder gewonnen werden. Ein AMS Wort ist ein Wort in der Programmfolge, dessen Aufgabe es ist, die Adresse desjenigen Befehls zu modifizieren, der in der Programmfolge der nächste ist.
Die Bits 18 und 19 des AMS-Wortes definieren die Klasse des Wortes wie folgt: Bits 18, 19 Klasse 00 Index 01 Indexzeiger 10 Indexsprung
Wenn das AMS-Wort als Index erkannt ist, wird das Adressenfeld (Bits 0-14) dem Adressenfeld oder der vorläufigen Adresse des Befehls hinzuaddiert, der durchgeführt werden soll. Wenn die Klassenbits des AMS-Wortes anzeigen, dass es sich um einen Indexzei- ger handelt, so bedeutet das Adressenfeld des AMS Wortes die Adresse eines Speicherortes einer Indexgrösse ausserhalb der Programmfolge', die zum Adres senfebd oder der vorläufigen Befehlsadresse hinzuaddiert werden muss. Wenn das AMS-Wort als ein Indexsprung klassifiziert ist, so bezeichnet seine Adresse einen Ort ausserhalb der Programmfolge, an dem ein entfernt liegendes AMS-Wort enthalten ist.
Der Bitplatz 21 des AMS-Wortes wird zur Steuerung des Adressenaufbaus mittels indirekter Adressierung verwendet. Eine binäre 1 an der Bitstelle 21 des AMS-Wortes zeigt an, dass die aufzubauende oder zu gewinnende Adresse eine effektive Adresse ist, die nicht als Operandenadresse' verwendet wird, sondern dafür, aus dem Speicher 10 ein indirektes Adressenwort zu gewinnen. Das Adressenfeld des indirekten Adressenwortes wird dann bei der Ausführung des Be fehls als eine vorläufige oder als eine endgültige Adresse verwendet.
Die Bitstelle'n 15-17 des AMS-Wortes werden dazu verwendet, anzuzeigen, ob die Indexoperationen fortgeführt werden sollen oder nicht. Wenn die Bitpositionen 15-17 binäre Einsen enthalten, werden die Indexoperationen fortgesetzt, Wenn die Adresse so weit aufgebaut worden ist, wie es das gerade vorliegende AMS-Wort erfordert, wird aus dem Speicher ein weiteres AMS-Wort abgerufen und zum weiteren Aufbau des Befehlsadressenfeldes benutzt. Jede andere Bitkonfiguration in den Bitstellen 15-17 zeigt an, dass zum weiteren Adressenaufbau ein anderes AMS-Wort nicht erforderlich ist. Das AMS-Wort ist das einzige, das daraufhin untersucht wird, ob die Indexoperationen fortgesetzt werden sollen. Die Bitstellen 20, 22 und 23 bleiben ausser Betracht.
Ein entfernt liegendes AMS-Wort ist ein AMS Wort ausserhalb der Programmfolge. Ein entfernt liegendes AMS-Wort wird durch ein AMS-Wort adressiert, das einen Indexsprung darstellt, ferner durch ein anderes entfernt liegendes AMS-Wort, das einen Indexsprung darstellt oder durch ein indirektes AMS Wort, das ebenfalls einen Indexsprung darstellt. Wie ein entfernt liegendes AMS-Wort organisiert ist, ist in der Fig. 2f gezeigt. Diese Organisation ist ähnlich wie die Organisation des AMS-Wortes getroffen, bis auf die Ausnahme, dass die Bitstellen 15-17 und 20-23 au:;ser Betracht bleiben, da ein entfernt liegendes AMS-Wort nur auf seine Klasse hin untersucht wird.
Wenn die Klassenbits eines entfernt liegenden AMS Wortes anzeigen, dass das Wort in Index ist, so wird sein A,dressenfeld der vorläufigen Adresse hinzuaddiert, um in dem Fall, in dem mit indirekter Adressierung gearbeitet wird, eine effektive Adresse zu gewinnen, oder um die endgültige Adresse aufzubauen.
Wenn das entfernt liegende AMS-Wort einen InFdexzei- ger bedeute't, so wird es dazu verwendet, aus dem Speicher 10 ein Wort abzuleiten, das eine Indexgrösse enthält. Wenn die Klassenbits des entfernt liegenden AMS-Wortes dieses Wort als einen Indexsprung kennzeichnen, wird das Adressenfeld des entferutliegenden A1S-Wortes dazu verwendet, ein weiteres entfernt liegendes AMS-Wort zu adressieren.
Ein AMS-Wort, wie es oben beschrieben ist, sorgt dafür, dass ein Index erhalten wird, mit dem das Adressenfeld eines Befehlswortes modifiziert wird. Anschliessend wird dann die Bitstelle 21 des AMS-Wortes untersucht. Wenn dort eine binäre 1 vorhanden ist, so bedeutet das, dass die gewonnene Adresse des Befehlswortes eine effektive Adresse ist und dazu verwendet werden muss, ein indirektes Adressenwort zu gewinnen. Die indirekte Adresse kennzeichnet einen Speicherort, an dem ein indirektes Adressenwort enthalten ist. In der Fig. 2g ist gezeigt, wie das indirekte Adressenwort organisiert ist. Diese Organisation stimmt mit der Organisation eines AMS-Wortes bis auf die Ausnahme überein, dass die Binärziffern in den Bitstellen 18-23 ausser Betracht bleiben.
Das Adressenfeld des indirekten Adressenwortes ersetzt die Adresse, die vorhergehend für den auszuführenden Befehl gewonnen worden ist.
Das Adressensteuerfeld des indirekten Adressenwortes kann mit Hilfe eines indirekten AMS-Wortes einen weiteren Adressenaufbau erforderlich machen.
Das indirekte AMS-Wort ist ein Spezialfall eines entfernt liegenden AMS-Wortes. Die Organisation des indirekten AMS-Wortes, die in der Fig. 2h gezeigt ist, stimmt mit der Organisation des entfernt liegenden AMS-Wortes bis auf die Bitstelle 21 überein, die dazu verwendet werden kann, weitere indirekte Adressierungen zu kennzeichnen. Das indirekte AMS-Wort kann als Index, als Indexzeiger oder als Indexsprung klassifiziert werden. Als Indexsprung wird das indirekte AMS-Wort dazu verwendet, ein entfernt liegendes AMS-Wort abzurufen und so den Adressenaufbau weiterzuführen. Diese Folge der indirekten Adressierung wird solange fortgesetzt, bis entweder das Adressen steuerfeid eines indirekten Adressenwortes ein weiteres indirektes AMS-Wort unnötig macht, oder bis ein indirektes AMS-Wort anzeigt, dass eine weitere indirekte Adressierung nicht mehr erforderlich ist.
Wenn diese Folge der indirekten Adressierung beendet ist, so kehrt die Steuerung zu demjenigen AMS-Wort zurück, das diese Folge der indirekten Adressierung ausgelöst hat.
Für solche Befehle, die eine zweite Adresse benötigen (hierbei bleibt die Adresse des festgelegten Index wortes ausser Betracht), wird eine zweite Adressenfolge ausgelöst, die nach der Gewinnung der ersten Adresse abläuft, Die Auslösung dieser zweiten Adressenfolge erfolgt durch das Auslesen des nächsten Wortes der Programmfolge aus dem Speicher. Dieses Wort ist ein SAS-Wort und ist so organisiert, wie es in der Fig. 2i dargestellt ist. Dieses SAS-Wort wird nur auf seine Klasse hin untersucht, die durch den Zustand der binären Ziffern an den Bitstellen 18 und 19 gegeben ist. Die Bitstellen 15-17 und 20-23 werden nicht berücksichtigt.
Die Klasse eines SAS-Wortes ist wie folgt definiert: Bits 19, 18 Klasse 00 Operand ol Operandenzeiger 10 oder 11 Operandensprung WO1-Block-Folgen
Wenn die Klassenbits des SAS-Wortes anzeigen, dass es sich um einen Operanden handelt, ist die zweite Adresse des Befehls die Adresse des SAS-Wor- tes. Ein Operand schliesst die zweite Adressenfolge und seine Selbsterkennung ab. Wenn das SAS-Wort als Operandenzeiger klassifiziert werden muss, so bedeutet dies, dass das Adressenfeld des Operandenzeigers die zweite Adresse des Zweiadressenbefehls enthält.
Wenn die Klassenbits des SAS-Wortes dagegen anzeigen, dass ein Operandensprung vorliegt, wird das Adressen- feld dazu verwendet, ein entfernt liegendes SAS-Wort abzurufen, das für den weiteren Aufbau der zweiten Adresse verwendet wird. Da die' ACF-Bitplätze 15-17 des SAS-Wortes immer ausser Betracht bleiben, wird nur ein SAS-Wort dazu verwendet, die zweite Adresse zu gewinnen.
Die Organisation eines entfernt liegenden SAS Wortes, das in Fig. 2j gezeigt ist, ist mit der Organisation eines entfernt liegenden AMS-Wortes identisch.
Das entfernt liegende SAS-Wort ist ein SAS-Wort, das ausserhalb der Programmfolge liegt und nur auf seine Klasse hin untersucht wird. Um die zweite Adresse eines Zeweiadressenbefehles zu gewinnen oder aufzubauen, kann jede beliebige Anzahl von entfernt liegenden SAS-Worten benutzt werden.
Die oben beschriebenen Hilsworte werden daher in der Datenverarbeitungsanlage zusammen mit den Adressenfeldern der Befehlsworte dazu verwendet, die Adressen von Operanden aufzubauen oder zu gewin nen, die denjenigen Operationen unterworfen werden sollen, die im Operationscode des Befehlswortes angegeben ist. Jeder Befehl verwendet daher ein Befehlswort, das sich auf ein festgelegtes Indexwort bezieht oder auf das ein oder mehrere AMS-Worte und wenn notwendig ein SAS-Wort folgen kann. Jedes AMS Wort kann sich auf ein indirektes Adressenwort bezie hen, auf das ein indirektes AMS-Wort folgen kann.
Jedes indirekte AMS-Wort kann sich auf ein anderes indirektes Adressenwort beziehen. AMS-Worte und SAS-Worte können sich auch auf entfernt liegende AMS-Worte und entfernt liegende SAS-Worte beziehen, die im Speicher 10 eingespeichert sind, die jedoch ausserhalb der Programmfolge liegen, um die zweite Befehlsadresse zu bestimmen oder aber die Art der Adressenänderung ABS.
Wie man sieht, ermöglicht die grosse Anzahl möglicher Kombinationen aus den in Frage kommenden Bits eine grosse Vielseitigkeit in der Programmierung. Der Binärwert der in Frage kommenden Bits wird in den Registern analysiert und dekodiert, in die die Worte' oder Teile von ihnen übertragen worden sind. Flipflops, die zusammenfassend als Steuersignalflipflops bezeichnet werden sollen und ein Teil der Steuersignaleinheit sind, werden in Übereinstimmung mit den dekodierten, in Frage kommenden Bits in den Nullzustand oder den 1-Zustand umgeschaltet, oder durch Signale, die logisch daraus abgeleitet werden. Diese Flipflops werden anschliiessend mit passenden Codebuchstaben bezeichnet. In der Beschreibung wird die Wirkungsweise und die Aufgabe solcher Flipflops erklärt werden.
Wie diese Flipflops jedoch speziell verbunden sind, ist in den Zeichnungen nicht dargestellt, da dieses dem Durchschnittsfachmann bekannt ist.
Von der allgemeinen Organisation der Datenverarbeitungsanlage vom Datenfluss, von der Ausführung von Befehlen, sowie von der Auswahl und der Erzeugung von Signalen wird nur soviel beschrieben, wie es für das Verständnis der Erfindung notwendig ist.
In der Fig. 1 ist nur soviel von der Datenverarbeitungsanlage dargestellt, wie es für das Verständnis der vorliegenden Erfindung nötig ist. Der Zweck der Fig. 1 ist es, die Elemente der Anlage darzutellen, in denen Daten gespeichert sind, ferner die Datenübertragungswege zwischen diesen Eleme'nten und die Hauptsteuerschaltkreise und Steuerelemente des Systems. Es sind alle solche Elemente weggelassen worden, die nach dem Stand der Technik üblich sind, oder die keinen unmittelbaren Zusammenhang mit der Erfindung haben. Da die gleichen Bausteine, beispielsweise Register, verschiedene Aufgaben haben können, sind diese Bausteine mit willkürlichen Codebezeichnungen in Form grosser Buchstaben versehen, um Verwechslungen zu vermeiden.
Ebenso sind auch Signale (die in der Anlage verfügbar sind) sowie Befehle' zur Erzeugung bestimmter Signale aus Gründen der Klarheit mit Codenamen, Buchstaben oder Zahl versehen. Es ist bekannt, dass man mit einem Zeitgebergenerator ganz nach Wunsch Zeitgebersignale oder Steuerbefehlssignale erzeugen kann. Weiterhin ist bekannt, durch logische Verknüpfung solcher Signale bei Bedarf andere Signale dieser Arten zu erzeugen.
Während der Beschreibung der Erfindung wird eine Anzahl von Signalen mit willkürlichen Codebezeichnungen versehen werden. Die Funktion dieser Signale und ihre' Wirkung gehen aus der Beschreibung hervor.
Wie diese Signale abgeleitet werden, wird jedoch nicht beschrieben. Solche Signale jedoch, die die beschriebenen Funktionen haben und die logische Folgen auslösen, die in der Beschreibung erörtert werden, können in der Datenverarbeitungsanlage durch logische Fortsetzung und Verknüpfung von Signalen und Zeitgebersignalen gewonnen werden, was bekannt ist. Da die meisten solcher Signale eine bestimmende Funktion haben, d. h. dass sie eine bestimmte Operation auslösen, wenn sie vorhanden sind, und eine andere Operation auslösen, wenn sie nicht vorhanden sind (oder wenn ihr inverse Signal anliegt), können diese Signale allgemein als Steuersignale angesprochen werden, die das Auftreten vorbestimmter Operationen steuern, das auf vorherbestimmten Ereignissen oder einer logischen Kombination von Ereignissen beruht.
Die Bezeichnung durch willkürliche Buchstaben wurde gewählt, um Unklarheiten in der Terminologie und die Wiederholung des Wortes Steuerung bzw. Steuersignal zu vermeiden.
In der Beschreibung ist die Bezeichnung nach den folgenden Gesichtspunkten durchgeführt worden. Ein Register ist mit einem grossen Buchstaben bezeichnet, dem Dezimalzahlen nachfolgen, die die einzelnen Stufen der Register oder die effektiven Zeitperioden einer jeden Stufe angeben. Signale, die von Flipflops abgeleitet sind, sind mit den Buchstaben F bezeichnet. Inverse Signale tragen einen Querstrich über der eigentlichen Bezeichnung. S und R bedeuten 1- und 0-Anschlüsse.
Diese Signale können das Ergebnis logischer Verknüpfungen anderer Signale sein, wobei die Boole'sche Algebra zugrunde gelegt ist. In den Zeichnungen ist nur die Schaltlogik dargestellt, da technische Ausführungsformen einer solchen Schaltlogik dem Durchschnittsfachmann bekannt sind.
Während Datenverarbeitungs operationen sind in dem Speicher 10 Béfehlsworte für die Datenverarbeitung gespeichert, sowie Befehlsworte für die Adressierung und die Steuerung, Datenworte, die verarbeitet werden sollen und Datenworte, die das Ergebnis einer Verarbeitung sind. Während der Datenverarbeitungsoperationen können in verschiedenen Registern der Anlage D atenworte zwischenzeitlich gespeichert werden. Die Übertragung von Daten zwischen den einzelnen Registern und anderen Elementen des Systems, die durch die Verbindungslinien in Fig. 1 angedeutet ist, wird durch Parallelübertragung binärer Ziffern aus einem Register in ein anderes Register oder Element durchgeführt. Im folgenden werden die wesentlichen Bauelemente sowie ihre Zusammenarbeit beschrieben.
Der Speicher 10 arbeitet mit den anderen Elementen des zentralen Rechners nicht synchron und enthält seine eigene Zeitgeberlogik, seine eigene Steuerlogik (nicht gezeigt) und ein Adressenregister. Der Speicher 10 arbeitet mit den anderen Elementen des zentralen Rechners zusammen, nämlich mit der Vorrichtung zum Entwickeln von Operandenadressen welche im folgenden als Programmverarbeiter bezeichnet wird und der Eingabe-Ausgabesteuereinheit, um binärkodierte Adressen zu erhalten, um weiterhin Datenworte anzunehmen oder zu liefern, um Befehlsworte und Hilfsworte anzunehmen oder abzugeben und um Steuersignale anzunehmen oder abzugeben, durch die es möglich ist, den Zeittakt des Speichers mit dem Zeittakt im restlichen zentralen Rechner zu synchronisieren.
Adresseninformationen werden dem Speicher 10 durch die B-Tore 317 zugeführt.
Das I-Regislter 313 speichert den Operationscode des Befehlswortes, der die Bits 18-23 enthält. Der Operationscode im I-Register 313 steuert die Art der Operation, die von der Anlage durchgeführt werden soll. Das Adressensteuerfeid des Befehlswortes, das aus den Bits 15 bis 17 besteht, ist in dem Q-Register 306 gespeichert.
Das Adressensteuerfeld im Q-Register 306 steuert den Aufbau des Befehls-Adressenfeldes und kann den Aufbau der zweiten Adresse eines Zweiadressenbefehles steuern. Das Adressenfeld des Befehlswortes, das aus den Bits 0-14 besteht, ist normalerweise im D Register 311 gespeichert, es kann jedoch während der Durchführung bestimmter Befehle auch im E-Register 303 gespeichert sein. Das Befehlsadressenfeld, das im D-Register 311 oder im E-Register 303 gespeichert ist, gibt den Ort im Speicher an, aus dem ein Operandenwort ausgelesen oder in den ein Operandenwort eingelesen werden soll. Die Adresse für den nächsten vom Programmverarbeiter ,durchzuführenden Befehl ist im P-Register 310 gespeichert.
Wenn ein Befehl fast voll ständig durchgeführt ist, wird die nächste Befehls adresse, die in dem P-Register 310 geslpeichert ist, an den Addierer 302 angelegt, so dass der zentrale Rechner in die Lage versetzt wird, den nächsten Befehl aus dem Speicher 10 abzurufen.
Alle Worte, die aus dem Speicher 10 ausgelsen oder in den Speicher 10 übertragen werden, müssen durch das M-Register 301 hindurchlaufen. Wenn somit aus dem Speicher 10 ein Befehl abgerufen werden soll, wird die Adresse in dem P-Register 310 über die Addierstufe 302 zum D-Register 311 und von dort durch die B-Tore 317 übertragen, und das Befehlswort wird aus der adressierten Speicherstelle in das M-Register eingelesen.
Der Operationscode, das Adressensteuerfeld und das Steuerfeld des Befehlswortes in dem M-Register werden dann an das I-Regisber 313, das Q-Register 306 und entweder an ,das D-Register 311 oder das E-Register 303 übe'rtragen. Sodann wird der Befehl ausgeführt. Operandenworte, die während der Durchführung von Befehlen verwendet werden, werden aus dem Speicher mittels des gleichen Vorganges abgerufen, d. h., dadurch, dass auch das Operandenwort zu Beginn in das M-Register 301 übertragen wird.
Wenn ein Wort aus dem Speicher 10 in das M Register 301 übetragen wird, wird der 25 igste Bit, der der Paritätsbit ist, an die Paritätsprüf- und Steuerlogik 316 übertragen. Die Paritätsprüf- und Steuerlogik 316 testet das Wort in dem M-Register 301 ab und bestimmt unter der Verwendung des Paritätsbits aus dem Speicher 10, ob in dem Wort, das aus dem Speicher 10 heraus übertrager worden ist, ein Paritätsfehler vorhandeln ist oder nicht. Wenn dagegen in dem M-Register 301 ein Wort zwischenzeitlich gespeichert ist, das an den Speicher 10 übertragen werden soll, tastet die Paritätsprüf- und Steuerlogik 316 das Wort in dem M-Register 301 ab und erzeugt den richtigen Paritätsbit, der als 25 igster Bit des Wortes in den Speicher 10 übertragen wird.
Arithmetische Operationen, Stellwertverschiebungen, Vergleichsoperationen, logische Operationen usw., denen das Operandenwort unterworfen werden soll, werden unter Verwendung des M-Registers 301 des Addierers 302 und des E-Registers 303 durchgeführt.
Der Addierer 302 ist in der Lage, die Addition solcher Informationen vorzunehmen, die gleichzeitig aus dem M-Register 301 und dem E-Register 303 einlaufen.
Der Addierer 302 führt auch die Additionen solcher Informationen durch, die ihn gleichzeitig vom M-Register 301 und vom P-Register 310, vom D-Register 311 oder auch von anderen Registern zugeführt werden.
Die Ausgangsgrösse des Addierers 302 kann an das E-Register 303, das M-Register 301 und D-Register 311, das P-Register 310 oder an irdgenein anderes passendes Register übertragen werden, wie es durch die Datenübertragungswege in Fig. 1 dargestellt ist.
Das Q-Register 306 kann während der Ausführung bestimmter Befehle als Zähler oder als Zwischenspeicherregister dienen.
Die Steuerung der Operationen im Zentralrechner wird in der Hauptsache durch die Operationssteuereinheit 318, die Zeitgebereinheit 319, das I-Register 313, das P-Register 310, das D-Register 311 und das A Register 312 durchgeführt. Der Inhalt des Registers 313 wird durch die Operationssteuereinheit 318 dekodiert, welche während der Durchführung des Befehls durch den Zentralrechner für die richtige Steuerlogik sorgt. Die Operationssteuereinheit 318 enthält ein Register, das W-Register genannt ist (nicht gezeigt).
Dieses Register dient dazu, die Folgen der besonderen Subroutine (oder Mikrooperation) auszuwählen, die W-Blöcke genannt werden, ebenso zur Auswahl der Steuerlogik, der Dekodierungslogik für das 1-Register 313 und für das Auswahlregister. Die Zeitgebersteuereinheit steuert die innere Zeitgebung des Zentralrech- ners und ermöglicht die Synchronisation des Programmverarbeiters, -der Operationssteuereinheit 318 und der Eingabe/Ausgabe-Steuereinheit 13 mit dem Speicher 10. Die Zeitgebersteuereinheit 319 enthält einen Generator, der Zeitgeberimpulse für den zentralen Rechner erzeugt, weiterhin logische Schaltkreise zur Steuerung der Zeitimpulserzeugung, sowie einen Zähler, der TL-Zähler genannt ist, und der in dem zentralen Rechner die einzelnen Zeitperioden definiert.
Das A-Regiter 312 wird dazu verwendet, die Teil Adresse des Wortes mit dem höchsten Stellenwert des Vierwort-Akkumulators im Speicher 10 zu speichern.
Ein Register 314 weist Flip-Flops PL2 und PL1 auf.
Dieses Register dient dazu, die Länge des Akkumulators anzuzeigen. Die im Register 314 enthaltene Zahl zeigt die Anzahl der Worte im Akkumulator auf. Die Inhalte des A-Registers 312 und des Registers 314 stellen die Adresse des Wortes mit dem höchsten Stellenwert des Akkumulators dar. Ein Akkumulator-Zählregister 315, das Flip-Flops AC2 und AC1 aufweist, arbeitet mit dem A-Register 312 zusammen, um nacheinander jedes Wort des Akkumulators zu adressieren.
Das D-Register 311 wird in der Hauptsache als ein Adressenregister verwendet, um eine Adresseninformation durch das B-Tor 317 hindurch in den Speicher 10 zu übertragen. Das P-Register 310 wind als Zähler verwendet, der periodisch vorgerückt wird, um die Adresse des nächsten Wortes zu bilden. Die Eingabel Ausgabe-Stenereinheit 13 enthält mehrere Kanäle.
Jedes äussere Zusatzgerät, das zusammen mit dem zentralen Rechner verwendet wird, ist mit einem dieser Eingabe/Ausgabe-Kanäle verbunden. Jeder Eingabel Ausgabe-Kanal erlaubt die Übertragung von Befehlen aus dem zentralen Rechner an das äussere Zusatzgerät, das mit diesem Kanal verbunden ist, weiterhin die Übertragung zwischen dem Speicher 10 und dem äusseren Zusatzgerät, sowie die Übertragung von Informationen, die dem Betriebszustand des äusseren Zusatzgerätes und des Kanals dem zentralen Rechner anzeigen.
Der zentrale Rechner erhält die Daten durch die Eingabe/Ausgabe-Steuereinheit 13 zugeführt. Diese Daten können von einer Schreibmaschine, von einem Kartenleser, einem Lochstreifenleser, von einem Magnetband oder einem Magnetscheibenspeicher oder auch von einer anderen Stelle herstammen, wie es symbolisch durch die' Leitung 323 angezeigt ist. Der zentrale Rechner gibt die Daten auf die erwähnten periphären Geräte über die Eingabe/Ausgabe-Steuereinheit 13 über die Leitung 324.
Der Speicher 10, der in der Fig. 1 schematisch dargestellt ist, speichert Worte, die verarbeitet werden sollen. Worte, die das Ergebnis von Bearbeitungsschritten sind, weiterhin Befehisworte, die für die Datenverarbeitung massgebend sind, sowie Hilfsworte, für die Adressierung und die Steuerung. Ein Speicher 10, der für die Verwendung in der dargestellten Verarbeitungs- anlage geeignet ist, kann bis zu 32 768 Worte von jeweils 25 Bits Länge speichern.
Die Information über die Speicheradresse läuft über die B-Tore 317 der Vorrichtung, die auch als Programmverarbeiter bezeichnet wird, ein und wird in einem B-Register gespeichert, das dem Speicher 10 zugeordnet, jedoch nicht gezeigt ist und das als Speicheradressenregister dient. Dieses B-Register empfängt die Ausgangssignale der B-Tore 317 des Programmverarbeiters, sobald zu Beginn einer jeden Speicherperiode ein Signal zur Verbindung der Ausgangsanschlüsse der B-Tore 317 mit den entsprechenden Eingangsanschlüssen der B-Register-Flip-Flops vorhanden ist. Zu Beginn einer jeden Speicherperiode ist daher der Inhalt des B-Speicherregisters immer auf den neuesten Stand gebracht.
Die Flip-Flops dieses B-Registers werden durch ein weiteres Signal immer nach auf Null zurück geschaltet, wenn die Datenverarbeitungsanlage zu Beginn eingeschaltet wird, sowie am Ende einer jeden Speicherperiode.
Das M-Register 301 des Programmverarbeiters speichert zwischenzeitlich ein Wort von 24 Bits, das in den Speicher 10 eingespeichert werden soll oder das gerade aus dem Speicher ausgelesen worden ist. Der 25 igste Bit, der der Paritätsbit ist, wird, wenn er aus dem Speicher 10 ausgelesen ist, über die Leitung 360 dem Paritätsprüfschaltkreis 316 der Vorrichtung zugeführt, während der Paritätsbit eines Wortes, das in dem Speicher 10 eingespeichert werden soll, von dem Pariprüfschaltkreis über Leitung 361 selbst geliefert wird.
Die Flip-Flops des M-Registers 301 werden durch ein Rückstelisignal auf Null zurückgestellt. Der Operationscode, der in den Befehlsworten enthalten ist, beherrscht die Operationen des Systems während der Durchführung eines Befehls. Der Ope'rationscode ist in dem 1-Register 313 gespeichert, das ein 6-Bit-Register ist und zur Speicherung der Bits 18-23 des Befehlswortes dient, das von dem zentralen Rechner ausgeführt werden soll. Der Operationscode des Befehlswortes ist so ausgewählt, dass er irgendeine von 53 verschiedenen Bitkombinationen darstellt. Jede dieser 53 Bitkombinationen betrifft eine grundsätzlich andere Datenverarbeitungsoperation der ganzen Anlage.
Das I-Register 313 ist dafür vorgesehen, die Inhalte der Flipflops 18-23 (nicht gezeigt) des M-Registers 301 aufzunehmen. Die hierzu nötige Übertragung erfolgt parallel, wenn ein Arbeitszeitgebersignal an den Eingangstoren anliegt, die die Ausgangsanschlüsse der Flipflops des M-Registers mit den entsprechenden Eingangsanschlüssen der sechs Flipflops des I-Registe,rs miteinander verbin,den. Der Inhalt des I-Registexs 313 wird der Dekodiermatrix für das I-Register zugeführt. Das P-Register ist ein 15-Bit-Zähler mit 15 Flip-Flops für das Adressenfeld, das mit Bit 0-14 bezeichnet ist. Das P-Register 310 empfängt die Bits Q-14 der Ausgangssignale der Addierstufe 302. Diese Bits werden dem P-Register parallel übertragen.
Die Übertragung wird durchgeführt, wenn ein Zeitgebersignal an den Eingangstoren anliegt, die die entsprechenden Ausgänge der Addierstufe mit den entsprechenden Eingangsanschlüssen der Flip-Flops des P-Registers verbinden. Der Inhalt des P-Registers 310 kann vom Programm her geändert werden. Die Folge, in der die aufeinanderfolgenden Befehle ausgeführt werden, wird vom P-Register 310 gesteuert, welches als sogenannter Prograrnzähier dient. Der Zählerstand im P-Register 310 wird jeweils um 1 erhöht, wenn ein bestimmtes Signal auftritt. Das ist immer der Fall, wenn ein Wort innerhalb der Programmfolge verwendet wird. Der Zäfrlerstand in dem P-Register 310 wird dazu verwendet, die Adresse für Befehlsworte, AMS- und SAS Hilfsworte im Speicher 10 zu gewinnen.
Zum Abrufen des in der Programmfolge nächsten Befehls oder Hilfswortes aus dem Speicher 10 wind die im P-Register 310 gespeicherte Adresse über den Addierer 302 an das D-Register 311 und von dort über die B-Tore 317 zum Speicher 10 übertragen, so dass der zentrale Rechner das Programm-Folge-Wort abrufen kann. Das P-Folge-Wort wird nun in das M-Register 301 übertragen. Hieran schliessen sich folgende Operationsschritte an: Paritätsprüfung durch die Paritätsprüfeinheit 316, Übertragung des Operationsccod,e an das Register, Übertragung des Adressensteuerfeldes an das Q-Register 306, Übertragung des Adressenfeides an das D Register 311, Übertragung des gesamten Wortes an das E-Registef 303.
Das D-Register 311 ist ein 15-Bitregister und enthält 15 Flip-Flops. Diese Flip-Flops enthalten normalerweise die Adresse eines Datenwortes, eines Hilfwortes ader eines Befehlswortes. In das Register 311 werden durch Parallelübertragungodie Bits 0-14 der Ausgangssignale der Addierstufe 302 übertragen, wenn ein Zeitgebersignal an den Eingangstoren anliegt, die die Eingangsanschlüsse der Registerflipflops und die Ausgangsanschlüsse der Addierstufe miteinander verbindet.
Wenn ein Befehl ausgeführt wird, bei dem ein Akkumulator der doppelten, dreifachen oder vierfachen Länge verwendet ist, wird das D-Register 311 dazu benutzt,, Zugriff zu den Operandenworten in der richtigen Reihenfolge zu erhalten, so dass die Operandenworte und die Akkumulatorworte zueinander passen. Die Adresse in der D-Register 311 wird auf ein Zeitgebersignal hin jeweils um 1 vermindert, so dass ich die Adressen der nachfolgenden Operandenworte ergeben.
Das D-Register 311 enthält noch Informatiorlen bezüglich der Schiebesteuerung, die durch Ausführung eines solchen Befehls notwendig sind. Der Inhalt des D Registers 311 kann entweder den B-Toren oder dem Addierer 302 zugeführt werden.
Das A-Register 312 ist ein 13-Bitregister mit 13 Flipflops. Das A-Register 312 wird dazu verwendet, die augenblickliche Teiladresse des Vierwort-Akkumu- lators im Speicher 10 zu speichern. Die Teiladresse dlie in dem A-Register 312 enthalten ist, ist die Adresse des Akkumulatorwortes mit dem höchsten Stellenwert. Wenn ein Zeitgebersignal auftritt, wird die Teilinformation (Adressenfeld) aus dem E-Register 303 an das A-Register 312 übertragen. Das Zeitgebersignal wird dabei den Eingangstoren zugeführt, die die Ausgänge der Addierstufe mit den entsprechenden Eingängen der Flip-Flops des A-Registers verbinden.
Die Information im ARegister 312 wird entweder an die B-Tore 317 oder an das E-Register 303 übertragen.
Die Flip-Flops des A-Registe'rs 312 werden durch ein Signal in den Nullzustand zurückgeschaltet, so dass das ARegister 312 gelöscht ist.
Das Register 314, dass die Akkumulatorlänge anzeigt, weist zwei Flip-Flops PL2 und PL1 auf, die die Arbeitslänge des Akkumulators speichern. Diese Arbeitslänge kann 1, 2J 3 oder 4 Worte betragen. Der Inhalt des Registers 314 bildet in Verbindung mit dem Inhalt des A-Registers 312 eine vollständige 15-Bit Adresse, die die Adresse des Akkumulatorwortes mit dem höchsten Stellenwert ist.
Die beiden Flip-Flops PL2 und PLI sind so eingerichtet, dass sie durch Par alielübertragung den Inhalt entweder des ersten und des zweiten Flip-Flops des I-Registets 313, den Inhalt der beiden e'rsten Flip-Flops des E-Registers 303 oder des zehnten und elften Flip-Flops des D-Reps.ters 311 aufnehmen können, wenn an die Eingangstore des Registers 314 ein passendes Überagungssignal angelegt wird.
Das Akkumulatorzählregister 315, das zwei Flip Flops AC2 und AC1 enthält, ergänzt die Adresse im A-Register 312, so dass sich die Adresse eines de'r vier Werte des Akkumulators ergibt. Dadurch, dass be stimmt wird, welches der vier möglichen Akkumulatorworte ausgewählt werden soll, kanrr man jedes Akku mulatorwort adressieren. Wenn beispielsweise das Register 315 im binären 10-Zustand ist, ist das dritte Wort zu adressieren. Der Zählerstand im Akkumula torzählerregister 315 wird während der Durchführung bestimmter Befehle durch den Zentralrechner jeweils um 1 erhöht oder um 1 vermindert, um vorgeschriebene Worte des Akkumulators adressieren zu können.
Die B-Tore 317 übertragen Adressen aus dem Pro graniffiverarbeiter und der Eingabe/Ausgabe-Steuerung an ein B-Register (nicht gezeigt des Speichers 10, Die B-Tore 317 erhalten ihre Eingangssignale aus dem D-Register 311, dem A-Register 312, dem Akkumula- torlängeuregister 314, dem Akkumulatorzählregister 315, dekn M-Register 301, dem Register 306 und der Eingabe/Ausgabesteuereinheit 13.
Während Datenoder Programmunterbrechungen wird die Adressenin- formation den B-Ten 317 von der Eingabe-Ausgabe'- steuereinheit 13 zugeführt. An die B-Tore 317 werden Tastslignale angelegt, um die passende Adresse an ein B-Rester übertragen zu können.
Datenverarbeitungsoperafionen im Zentralrechner werden unter der Steuerung eines Befehlswortes durch geführt. Der Opreationseode eines jeden Befehlswortes, durch den die Operation selbst bestimmt ist, wird im Register 313 gespeichert. Dieser Operationscode be steht im besonderen aus den Bits 18-23, die in fünf Flipflops gespeichert sind. Der Operationscode im I Register 313 steuert die Art der Operation, die von dem zentralen Rechner durchgeführt werden soll.
Das Adressenfeid des Befehlswortes kann in der arithmetischen Einheit modifiziert werden und wird normalerweise zuerst in das D-Register 311 übertragen, bevor der Befehl ausgeführt wird.
Das M-Register 301 ist ein 24-Bit-Register mit vierundzwanzig Flipflops. Dieses Register dient während der Ausführung von Befehlen und während der Durchführung von Eingale/Ausgabeoperationen als Operationsregistèr. Das M-Register 301 empfängt Signale' die die 24 Bits eines Wortes darstellen. Diese Signale werden während einer Leseoperation im Speicher von den Lesetreiberstufen abgegeben.
Sechs Flipflops (Adressenfeld) des M-Registers 301 können durch Parallelübertragung die Bits 0-5 des Ausgangssignales der Addierstufe 302 empfangen, wenn ein Zeitgebersignal an die Eingangstore des M-Registers 301 gelegt ist, die die entsprechenden Ausgänge der Addierstufe 301 mit den entsprechenden Eingängen der MRegisterflipflops verbinden.
Weitere neun Flip-Flops des M-Registers 301 können durch Parallelübertragung die Bits 614 (Adressenfeld) des Ausgangssignales der Addierstufe 302 empfangen, wenn an die Eingangstore des M-Registers ein weiteres Zeitgebersignal angelegt wird, die die entsprechenden Ausgangsanschlüsse der Addierstufe mit den entsprechenden Eingängen der Flipflops des Registers verbinden. Weitere neun Flipflops des M-Registers 301 können durch Parallelübertragung die Bits 15-23 des Ausgangssignales der Addierstufe 302 empfangen, wenn an die Eingangstore ein entsprechendes Zeitgebersignal angelegt wird. Diese Eingangstore verbinden ebenfalls die passenden Ausgangsanschlüsse der Addierstufe 302 mit den entsprechenden Eingängen der M-Registerflipflops.
Während einer Eingabe- oder Ausgabeoperation können die M-Registerflipflops Informationen aus der Eingabe/Ausgabesteuereinheit 13 aufnehmen, wenn ein solches Signal an die Eingangstore angelegt wird, wodurch die Eingabe/Ausgabesteuereinheit 13 mit den entsprechenden Eingängen der M-Registerflipflops verbunden werden. An die Eingänge der M-Registerflipflops werden zu bestimmten Zeitpunkten Signale angelegt, um die Flipflops des M-Registers 301 auf null zurückzuschalten und um damit das M-Register zu löschen. Zeitgebersi,gnale sorgen dafür, dass der Inhalt eines jeden Flipflops des M-Registers 301 in ein Flipflop des nächst niedrigeren Stellenwertes übertragen wird. Der Inhalt des Flipflops mit dem niedrigsten Stellenwert kann dabei an den Flipflop mit dem höchsten Stellenwert übertragen werden.
Die Information, die in dem M-Register 301 enthalten ist, kann an den Speicher 10, an die Eingabe/Ausgabesteuereinheit 13, an den Paritätsprüfkreis 316, an das Q-Register 306, an das B-Register und an das I-Regi- ster 313 übertragen werden.
Der Addierer 302 führt die logischen Funktionen durch, die bei der Durchführung eines Befehls für binäre und dezimal-arithmetische Operationen notwendig sind. Weiterhin dient der Addierer 302 als Mittels punkt für die meisten Datenübertragungen innerhalb des Zentralrechners. Der Addierer 302 weist zwei vollständige Addierwerke auf. Das erste vollständige AS dierwerk führt die arithmetischen Operationen und Datenübertragungen durch. Das zweite vollständige Addierwerk korrigiert die Ergebnisse, die im ersten vollständigen Addierwerk während ein er dezimal arithmetischen Operation entstehen. Die Addierstufe 302 dient nicht als statischer Speicher in dem Zentralrechner.
Die Information aus dem M-Register 301 wird an das erste vollständige Addierwerk angelegt, und zwar dadurch, dass man ein Signal an die Tore anlegt, die die Ausgangsanschlüsse der M-Registerflipflops mit den Eingängen der Addierstufe verbinden. Die Informationen, die in dem E-Register 303, dem D-RegisrDer 311, dem P-Registe'r 310 und dem CC-Register 304 enthalten sind, können auf ähnliche Weise durch Tastsignale an das erste vollständige Addierwerk angelegt werden. Hierzu sind diese Tastsignale an die Eingangstore des Addierers zu legen.
Ein Additions-Signal wird dazu benutzt, während einer arithmetischen Operation eine 1 hinzuzuaddieren, um einen Übertrag von der vorherigen Addition in der Summe aufzunehmen, oder aber, um eine 1 einem Komplement hinzuznaid- dieren, das an das erste vollständige Addierwerk angelegt ist. Die Ausgangssignale des Addierers 302 können an das M-Register 301, das CC-Register 304, das P-Register 310, das D-Register 311 und das E-Regi ster 303 übertragen werden.
Das E-Register 303 ist ein 24-Bit-Register und dient während der Durchführung eines Befehles als Operationsregister. Das E-Register enthält vierundzwanzig Flip-Flops für die Bits 0-23. Die E-Register- Flip-Flops sind in der Lage, durch Parallelübertragung die Ausgangssignaie des Addierers 302 aufzunehmen, wenn ein Zeitgebersignal an die Eingangstore angelegt wird, die die Ausgänge des Addierers mit den entspre chenden Eingängen der E-Register-Flip-Flops verbinden.
Neun Flip-Flops mit dem höheren Stellenwert sind in der Lage, durch Paralieiübertragung den Inhalt der neun Flip-Flops mit dem niedrigeren Stellenwert aufzunehmen, wenn ein Zeitgebersignal an die Eingangstore angelegt wird, das die Ausgänge der neun Flip-Flops mit dem niedrigeren Stellenwert an den entsprechenden Eingängen der neun Flip-Flops mit dlem höheren Stellenwert anlegt. Ein Zeitgebersignal sorgt dafür, dass das Komplement des Inhaltes des E-Registers 303 in dem E-Register gebildet wird. Ein Zeitgebersign,al sorgt dafür, dass der Inhalt der Flip-Flops in die Flip-Flops des E-Registers mit dem nächst niedrigeren Stellenwert übertragen wird.
Der Inhalt der Flip Flops mit dem niedrigsten Stellenwert wird aus dem E-Register heraus übertragen und kann während der Durchführung bestimmter Befehle an die Flip-Flops mit dem höchsten Stellenwert des M-Registers 301 übertragen werden. Der Inhalt des E-Registers 303 wird an das A-Register 312, an das Akkumulatorlängenregister 314 und an den Addierer 302 übertragen.
CC-Register 304 ist ein 5-Bit-Register und weist fünf Flip-Flops auf. Das CC-Register 304 wird hauptsächlich als Zähler verwendet. Das CC-Register 304 zählt während der Durchführung einiger Befehle die Über- träge der Stelienwerte und speichert ausserdem die Anzahl der Zeichen- oder Bitstellen durch die der Akkumulator während der Ausführung eines Schiebebefehls verschoben werden soll.
Die CC-Register-Flip-Flops sind m der Lage, den Inhalt der entsprechenden Flip Flops vom N-Register 305 durch Paralielübertragung aufzunehmen, wenn an die Eingangstore, die die Ausgangsanschlüsse der N-Register-Flip-Flops mit den ent sprechenden Eingängen der CC-Register-Flip-Flops verbinden, ein Zeitsignal angelegt wird. Die CC-Register-Flip-Flops können ausserdem die Bits 0-4 des Ausgangssignals der Addierstufe 302 aufnehmen, wenn ein Zeitgebersignal an den Eingangstoren erscheint, die die Ausgangsanschlüsse der Addierstufe mit den entsprechenden Eingängen der CC-Register-Flip-Flops verbinden.
Ein Löschsignal löscht das CC-Register 304, während der Zählerstand im CC-Register durch ein anderes Signal erhöht wird. Der Inhalt des CC Registers 304 kann entweder an den Addierer 302 oder an das N-Reçster 305 übertragen werden.
Das N-Register 305 ist ein 5-Bit-Register mit fünf Flip-Flops und dient als Zähler. Durch ein Signal wird dler Zähierstand im N-Register 305 um 1 erniedrigt.
Das Q-Register 306 ist mit seinen vier Flip-Flops ein 4-Bit-Register und wird während der Verschiebeoperation von Befehlen als Zähler verwendet. Die beiden Q-Register-F1ip-Flops mit dem geringeren Stellenwert können den Inhalt der Flip-Flops für die Bits, 15, 16, 17 (Adress.ensteuerfeld) des M-Registers 301 durch Parallelüberitragung aufnehmen, wenn ein Signal an die Eingangsltore angelegt wird, die die Ausgänge der Flip Flops des M-Registers 301 mit den entsprechenden Eingängen der Flip-Flops des Q-Registers 306 verbinden.
Die Flip-Flops des Q-Regissters 306 werden durch ein Signal auf 0 zurückgestellt, das ihren entsprechenden Eingängen zugeführt wird. Dadurch ist das Q- Register gelöscht. Der Inhalt des Q-Registers 306 kann an das N-Register 305 und an die B-Tore 317 übertragen werden.
Bevor irgendein Befehlswort ausgeführt werden kann, treten in dem zentralen Rechner normalerweise bestimmte Signale auf, die bestimmte Subroutinen oder Mikrooperationen auslösen. Diese bestimmten Signale bewirken die Übertragung ein es neuen Befehlswortes aus dem Speicher 10 an das M-Register 301, die Pari tätsprüfung dieses Befehlswortes, die Übertragung des Operationscode des Befehlswortes an das 1-Register 313, die Übertragung des Aldressensteue.rfelldes (ACF) des Befehlswortes an das.
Q-Register 306, die Übe'rtra- gung des Adressenfeides des Befehlswortes an das D-Register 311, die Übertriagung des Befehlswortes an das E-Register 303, und ausserdem erhöhen diese Signale den Zählerstand im P-Register 310. Diese Signale und die entspre'chenden Mikrooperationen treten zu Beginn als erste Operationsfolge oder Subroutine auf, die WOO-Block genannt wird. Während diese Blocks wird die Mikrooperation der Befehlssuche durchgeführt.
Wenn das Adressenfeld des Befehlswortes zur endgültigen Adresse entwickelt werden soll, oder wenn eine zweite Adresse zu entwickeln ist, treten andere vorbesltimmte Signale und Mikrooperationen vor der Befehlsausführung als Teil dieser anfänglichen Routine auf. Diese Signale und Mikrooperationen enthalten eine andere Zeit- und Operationsfolge oder Subroutine, die WO1-Block genannt wird. Die Mikrooperationen des WO1-Blockes ziehen aus dem Speicher Hilfsworte heraus und verwenden diese Hilfsworte zur Entwicklung der endgültigen Operandenadresse, die während de.r Ausführung des Befehls verwendet wird.
Wenn der Befehl ein Zwei-Adressenbefehl ist, entwickeln die Mikrooperationen des WO1-Blocks auf ähnliche Weise die zweite Adresse
Die Anfangsroutine, die der Ausführung aller Befehle in der Datenverarbeitungsanlage gemeinsam ist, enthält der Mikrooperationsblock WOO, der eine Mikrooperation durchführt, also alle Schritte auslöst bzw. veranlasst, die zur Befehissuche erforderlich sind.
Während des Mikrooperationsblockes WOO wird dasjenige Befehiswort, das die nächste Datenverarbeitungsoperation steuert, aus derjenigen Speicherstelle in das M-Register eingelesen, dessen Adresse durch die Adresse im P-Register gekennzeichnet ist. Nun wird die Parität des Befehlswortes überprüft. Zur Vorbereitung der Befehisausführung wird der Operationscode des Befehlswortes in dem 1-Register 313 und das Adressenfeld des Befehlswortes in dem D-Register 311 gespeichert.
Das Aldressensteuerfelld (ACF) des Be fehlswortes wird an das Q-Regisiter 306 übertragen.
Das Befehiswort wird dann an seine Stelle im Speicher zurückgespeichert. Nun wird der Zählerstand im P Register 310 um 1 erhöht, um die Adresse des näch sten Befehls oder des nächsten Wortes in der Programmfolge zu gewinnen, sofern das Adressenfeld des gerade anregenden Befehls aufgebaut werden soll, oder sofern der Befehl ein Zweiadressenbefehl ist. Am Ende des Blocks WOO führt der Programmverarbeiter die anderen Mikrooperationsblöcke aus, die zum Aufbau der Adresse und zur Durchführung des Befehls erfor deriich sind, sofern eine Adresse aufgebaut oder ein Befehl durchgeführt werden soll.
Die bis jetzt belschriebenetn Elemente arbeiten zusammen, um die Datenverarbeitungsanlage in die Lage zu versletzen, Adressen aufzubauen bzw. zu entwickeln.
Es werden drei Arten von Adressen verwendet: a) vor läufige Adressen, b) effektive Adressen und c) endgültige Adressen. Eine vorläufige Adresse ist eine Adresse, die durch Hinzuaddieren von einem oder mehreren Indizes modifiziert werden muss, um eine effektive oder eine endgültige Adresse zu erhalten.
Eine effektive Adresse ist eine Adresse, die' dazu verwendet wird, den Ort eines indirekten Adressenwortes im Speicher zu definieren. Die endgültige Adresse ist eine Adresse, die zusammen mit dem Operationscode eines Befehlswortes dazu verwendet wird, den Befehl auszuführen.
Der Mikrooperationsblock WO1 ist Bestandteil der Anfangsroutine aller Befehle, die den Aufbau oder die Entwicklung von Adressen erforderlich machen. Ein Ein-Ardcressenbefehl erfordert dann den Aufbau oder die Entwicklung einer Adresse, wenn das Adressenfeld des Befehlsworte's nicht die endgültige Adresse ist.
Zwei Adnesísenbefehle erfordern immer die Entwicklung der zweiten Adresse während des Mikroopera tionshlockes WO1, und können auch die Entwicklung der ersten Adresse erforderlich machen. Während des Mikrooperationsblockes WO 1 werden Hilfsworte aus dem Speicher herausgezogen und dazu verwendet, die endgültigen Adressen aufzubauen.
Der Mikrooperationsblock WO1 enthält 5 Folgen zum Aufbau von Adressen, die durch den Zustand der Flip-Flops XS2, XS1 des Indexfolgeregisters 493 und durch den Zustand eines Signals definiert sind. Das Signal ist in. der folgenden Tabelle mit DFXW bezeichnet, welche Tabelle die Folgen des WO1-Blocks zeigen: FXS2 FXS1 DFXW Folge O 0 - 0 O 1 1 1-DFXW 0 1 0 1-DFXW 1 0 - 2 1 1 - 3
Wenn während des Blockes WOO die Makrooperation der Befehlslsuche durchgeführt ist, kann entweder die Folge 0 oder die Folge 1-DFXW des Blockes WO1 begonnen werden.
Wenn bei der Durchführung einer Folge des Blocks WO 1 keine endgültige Adresse gewon- nen wird, geht der Block WO1 erneut zu dieser glei- chen Folge oder zu einer anderen Folge über. Das erneute Eintreten in den Block WO1 und die damit verbundene Durchführung einer passenden Operationsfolge wird solange wiederholt, bis aus dem Adressenfeld des Befehlswortes eine endgültige Adresse aufgebaut worden ist oder bis die zweite Adresse eines bestimmten Zweiadressenbefehls gewonnen worden ist Die nachfolgende Aufstellung zeigt die Operationsfol- gen des Blocks WO1 an, in die von einer vorgegebenen Folge aus eingetreten werten kann,
um die Adressenentwicklung fortzusetzen.
W01 -Block-Operationsfolgen von Folge zu Folge 0 0, 1-DFXW, 2 l-9FXW Adressenentwicklung vollständig 1-DFXW 0, 1-DFXW, 2 2 0,3 3 0, 1-DFXW, 2
Jede der Folgen des Blocks WO1 kann auf die Entwicklung einer endgültigen Adresse führen. Um somit einen gegebenen Befehl ausführen zu können, kann in die nachfolgenden Subroutinen, die zu dieser Befehlsausführung notwendig sind, von jeder möglichen Folge des Blocks WO1 her eingetreten werden.
Um anzuzeigen, dass die Adresse eines Einadressenbe fehls vollständig aufgebaut worden ist, tritt ein Fertig Signal auf für den Beginn der Subroutinien, die zur Ausführung dieses Befehls notwendig sind. Das Fertig- signal tritt auch dann auf, wenn angezeigt werden soll, dass die erste Adresse eines Zweiadressenbefehls fertig aufgebaut ist. Dann kann der Aufbau der zweiten Adresse ausgelöst werden. Wenn der Aufbau der zweiten Adresse eines Zweiadressenbefehles vollständig ist, tritt ein anderes Fertigsignal auf, um anzuzeigen, dass nun die Subroutinen ausgelöst werden können, die zur Durchführung dieses. Befehls notwendig sind.
Zu Beginn des Mikrooperationsblockes WO1, welcher durch einen nicht gezeigten Th-Zähler in bestimmte Zeitperioden aufgeteilt wird, tritt während der Zeitperiode TLO ein Hilfswortsignal auf, sofern eine der Folgen 0, 1-DFXW, 2 oder 3 durchgeführt werden soll. Der Zustand des Hilfswortsignals ist während des gesamten Blocks WO1 eine binäre 1. Dieses Signal tastet die B-Tore 317 auf, so dass die Adresse des Hilfswortes aus dem D-Register 311 in das B-Register des Speichers 10 übertragen werden kann, sobald die Adresse des Hilfswortes in dem D-Register 311 erscheint.
Wenn die Folge 1-DFXW ausgeführt werden soll, tritt ein Indexsignal auf, und tastet die B-Tore 317 auf, so dass die' Adresse eines an einem festen Platz eingespeicherten Indexwortes aus dem 0-Register 306 an das B-Register des Speichers 10 übertragen werden kann. Wenn während der Zeitperiode TLO ein erstes Zeitgeberarbeitssignal auftritt, wird ein Flipflop (nicht gezeigt) zur Auslösung einer Leseoperation im Speicher in den Einszustand umgeschaltet.
Wenn nun entweder die Folge 0 oder die Folge 3 durchgeführt werden soll, tritt zu diesem Zeitpunkt ebenso ein weiteres Zeitgeberarbeitssignal auf, um die Adresse eines AMS-Wortes oder eines SAS-Wortes oder die Adresse eines indirekten AMS-Wortes von dem Addierer 302 an das D-Register 311 zu übertragen, von wo aus sie durch das Hilfswortsignal an die B-Tore 317 übertragen werden kann.
Während der Zeitperiode TE1 werden verschiedene Flipflops in der Anlage und auch die Flipflops des M-Registers in den Nullzustand zurückgeschaltet. Der Zeitgebergenerator des Programmverarbeiters wird angehalten. Ausserdem wird der Zählerstand in dem TL-Zähler auf TL2 erhöht. Diese Folge von Mikrooperationen stellt die eine Halbiolge des Blocks WO1 dar.
Die zweite Haibfolge des Mikrooperationsblocks WO1 wird ausgelöst, wenn vom Speicher her ein Syn chronisiernngssignal auftritt, durch das der Zeitgebergenerator des Programmverarbeiters wieder anläuft. Zu diesem Zeitpunkt wird das Hilfswort aus dem Speicher in das M-Register 301 übertragen. Wenn während der Zeitperiode TL2 das erste Zeitgeberarbeitssignal auftritt, erscheint ein Schreibbefehisignal, das im Speicher 10 eine' Schreiboperation auslöst, mit der das Hilfswort an seinen früheren Platz zurückgespeichert wird; das Hilfswort wird ausserdem dem Addierer 302 zugeführt.
Wenn das Hilfswort ein Index ist, was durch ein Signal angezeigt ist, wird das Wort, das in dem E-Regster 303 gespeichert ist, an die anderen Eingänge des Addierers 302 angelegt, so dass der Index der vorläufigen Adresse hinzuaddiert wird.
Wenn eine Folge 0 durchgeführt wird, wird wäh rend der Zeitperiode TL3 der zweiten Halbfolge ein Flipflop CL1 in den Zustand umgeschaltet, sofern das Adressensteuerfeld eines AMS-Wortes einen Wert von 7 hat, was anzeigt, dass der Aufbau der Adresse milt einem anderen AMS-Wort fortgelsetzt werden muss; wird der Flipflop CL1 dagegen nicht in den 1 Zustand geschaltet, und ist der Befehl ein Einadressenbefehl, so ist der Aufbau der Adresse vollendet. Wie diese Operationen im einzelnen ablaufen, wird unten noch erklärt.
Wenn eine Folge 0 oder eine Foleg 3 durchgeführt wird, wird während der Zeitperiode TL3 der Flipflop CL2 in den Ejuszustand umgeschaltet, sofern der Bit 21 eines AMS-Wortes oder eines indirekten AMS Wortes eine binäre Eins ist. Der Flipflop CL2 zeigt an, dass die Adresse, die aufgebaut wird, eine effektive Adresse ist, (wie die bereits definiert wurde), die dazu verwendet wird, aus dem Speicher ein indirektes Adressenwort zu gewinnen. Wenn eine Folge 0 durchgeführt wird, tritt zu diesem Zeitpunkt auch ein Signal auf, das den Zählerstand in dem P-Register 310 um Eins erhöht. Der Inhalt des P-Registers 310 stellt dann die Adresse dies nächsten P-Folge-Wortes dar, das ein Befehlswort, ein AMS-Wort oder ein SAS-Wort sein kann.
Wenn während der Zeitperiode TL4 das erste Zeitgeberarbeitssignal, das in der Zeitperiode TL2 schon vorhanden war, auftritt, wird ein anderes Zeitgeberar beitssignai hervorgerufen, das die Adresse von dem Addierer 302 an das E-Register 303 überträgt, sofern ein Signal vorhanden ist, das anzeigt, dass die Indexvorgänge fortgesetzt werden können. Das zuletzt erwähnte Zeitigeberarbeitssignal tritt auch während der Folge 2 auf, um das indirekte Adressenwort vom Addierer 302 an das E-Register 303 zu übertragen.
Wenn die Folge 2 durchgeführt wird, wird während der Zeitperiode TL5 die Adresse des indirekten Adressenwortes aus dem D-Register 311 an den Addierer 302 übertragen, sofern das Adressensteuerfeld des indirekten Adressenwortes einen Wert von 7 hat. Durch diesen Wert ist angezeigt, dass das indirekte AMS Wort die nachfolgenden Speicherplätze einnimmt.
Wenn während der Durchführung einer Folge 2 das erste Zeitgeberarbeitssignal auftritt, das schon in den Zeitperioden TL2 und TL4 vorhanden war, wird ein Flipflop CAY in den Einszustand umgeschaltet, sofern das Adressensteuerfeld eines indirekten Adressenwortes einen Wert von 7 aufweist. Dadurch wird der Adresse des indirekten Adrf sisenwortes der Wert 1 hin zuaddiert, um die Adresse eines indirekten AMS-Wortes zu bilden. Wenn zu diesem Zeitpunkt das Signal DXNW vorhanden ist, das anzeigt, dass die Indexvor gälte mit einem AMS-Wort fortgesetzt werden müssen, wird der Zählerstand in dem P-Register 310 an den Addierer 302 übertragen.
Während der Folge 2 wird auch ein Flipflop PSY in dNen Einszustand umgeschaltet, wenn stich der Flipflop CL1 im 1-Zustand befindet, wodurch angezeigt ist, dass der Indexvorgang fortgeszt werden muss, und wenn das inverse Signal vorhanden ist, das anzeigt, dass die indirekte Adressierang nicht mit einem indirekten AMS-Wort fortgesetzt werden soll.
In allen Folgen tritt zu diesem Zeitpunkt das weitere in der Zeitperiode TL0 bereits einmal angelegte Zeitgeberarbeitssi,gnal auf, um eine Übertragung vom Addierer 302 zum DWRegister 311 zu bewirken, solange der Befehl kein Zweiadressenbefehl ist, oder, sofern es sich um einen Zweiadressenbefehl hande'lt, die zweite Adresse noch nicht entwickelt worden ist.
Die einzige Ausnahme, in der dieses Zeitgeberarbeitssi- gnal nicht auftritt, besteht während einer Folge 2 bei gleichzeitigem Vorhandensein eines Signales, das anzeigt, dass ein indirektes AMS-Wort verwendet werden soll.
Wenn während der Zeistpenode TLO ein Zeitgebersteuersignal auftritt, werden die Indexfolgeregister-Flip- flops XS2 und XS1 entweder in den Eins-Zustand oder in den Nullzustand geschaltdt. Das hängt von der Folge es Blocks WO1 ab, die als nächstes durchge- führt werden soll. Hierbei ist angenommen, dass der Aufbau der Adresse noch nicht vollständig durchgeführt worden ist. Während der Folgen 0, 1-DXFW oder 3 wird daher der Flipflop XS1 dann in den 1 Zustand geschaltet, wenn die Indexvorgänge noch nicht vollständig durchgeführt sind.
Während der Folge 2 wird der Flipflop XS1 dagegen dann in den Eins- Zustand umgeschaltet, wenn die Indexvorgänge mit einem indirekten AMS-Wort fortgesetzt werden sollen.
Der Flipflop XS1 wird dann in den Nullzustand ge schaltet, wenn es sich um einen Zweiadressenbefehl handelt, dessen erste Adresse bereits vollsltänditg ge wannen worden ist, und bei dem die Entwicklung der zweiten Adresse ausgelöst werden muss. Der-Flipflop XS1 wird aber auch dann in den Nullzustand zurückgeschaltet, wenn die Indexvorgänge mit einem AMS Wort fortgesetzt werden sollen.
Der Flipflop XS1 wird ausserdem auch dann in den Nullzustand zurückgeschaltet, wenn ein Index mittels indirekter Adressierung gewonnen werden soll.
Wenn der Aufbau einer Adresse mit Hilfe eines indirekten Adressenwortes fortgesetzt werden soll, wird der Flip-Fiop XS2 in Åaen-Einszustand umgeschaltet.
Wenn ein ZweiadreTslsenbefehl vorliegt, dessen erste Adresse bereits fertig aufgebaut ist, bei dem die Entwicklung der zweiten Adresse jedoch ausgelöst werden muss, oder wenn der Aufbau der Adresse mit einem AMS-Wort fortgesetzt werden muss, wird der Flipflop XS2 in den Nullzustand zurückgeschaltet.
Auch während der Durchführung von Folge 2 wird der Flipflop XS2 in den Nullzustand zurückgeschaltet, wenn die Indexvorgänge mit einem AMS-Wort fortgesetzt werden sollen, oder Wenn im Falle eines Zweiadressenbefehls die Gewinnung der ersten Adresse bereits vollständig ist, die Gewinnung der zweiten Adresse jedoch auslgelöst werden muss. ZusätzLich wird der Flipflop XS2 während der Folgen 0, 1-DFXW und 3 in den Nullzustand zurückgeschaltet, wenn der Aufbau der Adresse noch nicht vollständig ,durchgeführt worden ist.
Der Flipflop NXF wird in den Eins-Zusand umgeschaltet, wenn der Befehl ein Zwei;adressenbefehl ist, bei dem die Gewinnung der ersten Adresse bereits vollständig durchgeführt ist, die Gewinnung der zweiten Adresse jedoch ausgelöst werden mus;s. Während der Folge 2 wird der Flipflop NFX dagegen in den Einszustand umgeschaltet, wenn der Befehl ein Zweiadressenbefehl ist, und die Entwicklung der ersten Adresse nicht mit einem indirekten AMS-Wort¯fortgesetzt werden soll.
Während der Folgen 0, 1-DFXW oder 3 wird der Flipflop AO1 in den Einszustand umgeschaltet, wenn das Hilfswort ein Inidexanzeiger ist, der anzeigt, dass das nächste Wort, das aus dem Speicher ausgelesen werden soll, ein Index ist.
Der Flipflop AO1 wird in den Nullzustand zurück ges-chaltet, wenn das Signal auftritt, welches den Index des Hllfswortes anzeigt. Wenn ein Synchronisierungssi gnal vom Speicher 10 her erscheint, um den Zeitgeber generator-des Programmverarbeiters wieder anlaufen zu lassen, wird ein nicht gezeigter Flipflop in den Eins- zustand umgeschaltet. Damit ist die zweite Halbfolge des Mikro operations blocks WO1 vollständig durchgeführt, und der Programmverarbeiter kann erneut in den Mikrooperationsblock WO1 eintreten, um die Adressen vollständig zu gewinnen.
Er kann zu diesem Zeitpunkt aber auch in einen anderen Mikroopera tionsblock eilntneten, der durch den Zustand des W-Auswahlregisters der Operationssteuereinheit 319 definiert ist, um den Befehl durotzuführen. Die Flipflops XSl und XS2 des Indexfolgeregisters 493 sind SteuerfLipflops, die zusammen mit dem Signal DFXW fünf mögliche Folgen für die Adressengewinnung definieren, die in der Tabelle WO1 Blockfolgen aufge'führt sind.
Die Mikrooperationen zur Gewinnung der Adresse, -die während des Blocks WO1 auftreten, hängen von den Zuständen der Flipflops XS2 und XS1 und von dem Zustand des Signals DFXW ab. Die Kombination der Zustände, dieser beiden Flipflops und des Signals DFXW bestimmen die Art und die Reihenfolge bestimmter Mikrooperationen während des Blocks WO1, wie es oben erklärt wurde.
In der obigen Beschreibung wurden die Mikroope- rationen des Blocks WO1 in Betracht gezogen, die ganz allgemein während der Anfangsroutine für alle Einadres sen- und Zweindressenbefeh le auftreten. Zur Ve;rwendung mit bestimmten Befehlen können die Mikrooperationen des Blocks WO1 auf Wunsch auch variiert werden.
Folge O
Die Folge 0 des Blocks WO1 kann von einem Block WOO aus begonnen werden, oder von den Folgen 1-DFXW, 2 oder 3. Man kann die Folge 0 aber auch im Anschluss an eine gerade durchgeführte Folge 0 neu beginnen. Die Folge 0 des Blocks WO1 verwendet entweder ein AMS-Wort, um die Adresse eines Einadressen- befehls zu gewinnen, oder ein SAS-Wort, um eine zweite Adresse eines Zweiadressenbefehls zu gewinnen.
Wenn dem Addierer 302 ein AMS-Wort oder ein SAS-Wort zugeführt ist, wird die Art der Worte über prüft, dle durch den Zustand der Bits 18 und 19 gekennzeichnet ist. Wenn das Wort eine Verknüpfung darstellt, wird sein Adressenfeld aus dem Adierer 302 in das D-Register 311 übertragen, und im Block WO1 wird zur Folge 1-DFXW übergegangen, um den Index oder den Operanden zu gewinnen. Wenn das Wort ein Indexzeiger ist, was sich durch die Dekodierung daher Bilds 18 und 19 ergibt, wincl: das Adress;enfeld des Wortes vom Addierer 302 an das D-Regisér 311 übertragen.
Im Block WO1 wird zur Folge 1-DFXW übergeganges um den Index oder den Operanden zu gewinnen. Ausserdem wid ein weiterer Flipflop AO1 in den Einszustand umgeschaltet. Ist das Wort ein Operan'd, ist die Gewinnung der Adresse vollständig durch führt, und die passenden Mikrooperationsblöcke, wie sie durch das W-Ausfwahlregister definiert sind, werden zur Ausführung des Befehls vollzogen. Ist das Wort ein Index, wird die vorläufige Adresse aus dem E-Register 31)3 an den Addierer 302 angelegt, und durch den Index modifiziert.
Anschliessend wird das Adresslensteuerfeld (ACF) des AMS-Wortes überprüft. Zeigt das Adressenlsteue.r- feld einen Wert von 7, so wird der Flipflop CL1 in den Einszustand umgeschaltet. Anschliessend wird der Bit 21 des AMS-Wortes überprüft, und der Flipflop CL2 in den Einszustand umgeschaltet, sofern der Bit 71 ein binärer Einszustand ist. Dann wird der Zählerstand des P-Registers 310 um 1 erhöht, um die Adresse des nächsten AMS-Wortes zu erhalten.
Wenn der Flipflop CL2 in den 1-Zustand umgeschaltet worden ist, dann ist an diesem Punkt die entwickelte Adresse eine effektive Adresse. Sie wird dann vom Addierer 302 an das D-Register 311 übe.rtr.agen.
Anvehliessend wird die Operationsfoige 2 des Blocks WO1 begonnen, um durch indirekte Adressierung eine neue effektive Adresse, eine andere vorläufige Adresse oder eine endgültige Adresse zu entwickeln. Wenn der Flipflop CL2 nicht im 1Zustand ist, wird der Flipflop CL1 überprüft.
Wenn der Flipflop CL1 im 1Zustand ist, wird die entwickeite Adresse an das E-Register 303 übertragen, ausserdem wird die Adresse im P-Register 310 an den Addierer 302 übertragen, und die Opera- tionsfolge 0 des Blocks WO1 wird begonnen, um den Indexvorgang mit einem anderen AMS-Wort fortzuset- zen.
Wenn der Flipflop CL1 nicht im 1-Zustand ist und wenn es sich um die Adresse eines Einadressenbefehls handelt, !dann, ist die entwickelte Adresse eine endgül- tige Adresse, die dann vom Addierer 302 in das D Register 311 übertragen wird. Die Adreslslengewinnung ist dann vollständig und der zentrale Rechner führt die Mikrooperationsblöcke aus, die durch den Zustand des W-Auswahlregisters definiert sind, um den Befehl durchzuführen. Wenn der Flipflop CL1 nicht im Einszustand ist, wenn es sich aber um einen Zwei.adrelssen- befehl handelt, wird die endgültige erste Adresse vom Addierer 302 an das D-Register 311 übertragen.
Zusätzlich wird der Flipflop NXF in den 1-Zustand und der Flipflop AO1 in den Nffllzustand geschaltet. In manchen Fällen wird auch nun wieder die Operationsfolge Null des Blocks WO1 begonnen, um mit einem SAS-Wort die zweite Adresse zu entwickeln. Das hängt von der Art des B.efehls ab.
Folge 1-DFXW
Die Folge 1-DFXW wird von einem Block WOO ausgehend begonnen, wenn das Adressensteuerfeld eines Befehlswortes einen Wert aufweist, der im Bereich von 1-6 liegt. Das Adressensteuerfeld definiert dann den Ort eines Indexwortes im Speicher, d.as. an einem fest vorgegebenen Speicherort eingespeichert ist.
Das Adressensteuerfeld wird dann vom Q-Regisber 306 des Programmverarbeiters an den Speicher übertragen, um dieses an einem fest vorgegebenen Speicherplatz e.ugespeicherte Indexwort zu gewinnen.
Wenn der Befehl, der durch den Operationscode in dem 1-Register 313 definiert ist, ein Einadressenbefehl ist, ist das an dem festen Speicherplatz eingespeicherte Indexwort ein Index, der im Addierer 302 dem Adressenfeld des Befehiswortes hinzuaddiert wird, um eine endgültige Adresse zu bilden, die an ;das D-Register 311 übertragen wird. Damit ist die Adresse vollständig gewonnen und der Befehl wird ausgeführt.
Wenn der Befehl ein Zweiadressenbefehl ist, ist das an einem festen Speicherplatz eingespeicherte Indexwort ein Operand. Dann wind durch die Durchführung der pas senden Mikrooperationsblöcke dile Adresse vollständig aufgebaut und der Befehl durchgeführt.
Folge 1-DFXW
Die Folge 1-DFXW des Blocks WO1 kann entweder von dlen Operationsfolgen 0 oder 3 her begonnen werden, oder auch von einer gerade durchgeführten Folge 1-DFXW. Während der Folge 1-DFXW werden zum Aufbau bzw. zur Entwicklung von Adressen zusätzlich zu Indices entfernt liegende AMS-Worte und entfernt liegende SAS-Worte verwendet.
Wenn ein Hilswort aus dem Speicher ausgelesen worden ist, wird der Flipflop AO1 überprüft. Wenn stich der Flipflop AO1 im 1Zustand befindet, so handelt es sich bei dem Hilfswort um einen Index oder um einen Operanden. Befindet sich der Flipflop AO1 im Nullzustand, so ist das Hilfswort entweder ein entfernt liegendes AMS-Wort oder ein entfernt liegendes SAS Wort, dessen Art überprüft wird. Ist das Hilfswort ein Zeiger, oder stellt es eine Verknüpfung dar, so wird sein Adressenfeld an das D-Register 311 übertragen.
Ist das Hilfwort ein Zeiger, so wird der Flipflop AO1 in den 1-Zustand umgeschaltet. Die anschliessende Entwicklung der Adresse wird dann durch einen erneuten Beginn der Folge 1-DFXW des Blocks WO1 bewirkt.
Wenn sich zeigt, dass das Hilfswort ein Index oder ein Operand ist, entweder durch Selbsterkennung oder deswegen, weil der Flipflop AO1 in den 1-Zustand geschaltet ist, wind der Flipflop NXF überprüft. Befindet sich der Flipflop NXF im 1-Zustand, dann ist das Hilfswort ein Operand. Der Aufbau der Adresse ist dann beendet und der Befehl kann durch Durchführung der passenden Mikrooperationsblöcke durchgeführt werden. Befindet sich dagegen der Flipflop NXF im Zustand, so ist das Hilfswort ein Index und wird im Adldlierer der vorläufigen Adresse hinzuaddiert,
Anschliessend wird der Flipflop CL2 überprüft.
Befindet sich der Flipflop CL2 im 1-Zustand, so bedeutet dies, dass die Entwickelte Adresse eine effektive Adresse islt, die dazu zu verwenden ist, ein indirektes Adressenwort zu erhalten. In diesem Falle wird die effektive Adresse vom Addierer 302 zum D-Register 311 übertragen.
Daraufhin wird in die Folge 2 des Blocks WO1 eingetreten, um durch indirekte Adressierung eine neue effektive Adresse, eine neue vorläufige Adresse oder eine neue endgültige Adresse zu entwickeln. Wenn der Flipflop CL2 im Nullzustand ist, wird der Flipflop CL1 überprüft. Befindet er sich dann im 1-Zustand, so bedeutet dies, dass der Indexvorgang mit einem andere ren AMS-Wort fortgesetzt werden muss. In diesem Fall wird die Adresse des nächsten AMS-Wortes vom P-Register durch den Addierer 302 hindurch an das D-Register 311 übertragen. Ausserdem wird in die Folge 0 des Blocks WO1 eingetreten, um die Adres senentwicklung fortzusetzen. Wenn der Flipflop CL1.
jedoch im Zustand ist, und wenn die Adresse die Adresse eines Einadresjsenbefehls ist, so ist die gewonnene Adresse eine endgültige Adresse, die an das D-Register übertragen wird. Ans,chliessend wird der Befehl durch die Durchführung der passenden Mikro operationsblöcke ausgeführt. Handelt es sich jedoch um einen ZweiadZressenbefehl, so wird die endgültige erste Adresse im E-Register 303 gespeichert, der Flipflop NXF wird in den 1-Zustand und der Flip-Flop AO1 wird in den Nullzustand geschaltet. Bei Bedarf kann dann wieder in die Folge 0 des Blockes WO1 eingetreten werden, um auch die zweite Adresse zu entwickeln.
Folge 2 Die Folge 2 des Blockes WO1 kann im Anschluss an die Folgen 0, 1-DFXW oder 3 begonnen werden. Bei der Durchführung der Folge 2 wird ein indirektes Adressenwort aus dem Speicher gewonnen und dazu verwendet, die Entwicklung der Adresse eines Eins- adressenbefehls bzw. die Entwicklung der ersten Adresse einels Zweiadre senbefehls fortzusetzen. Wie derum wird wie bisher das Adressensteuerfeld daraufhin überprüft, ob es den Wert 7 aufweist. Hat es den Wert 7 , so tritt das bereits erwähnte Signal auf, was bedeutet, dass die indirekte Adressierung mit einem indirekten AMS-Wort fortgesetzt werden muss.
In diesem Fall wird die Adresse, an der das indirekte Adressenwort im Speicher 10 gespeichert war, vom D-Register 311 an den Addierer 302 übertragen. Dort wird diese Adresse um 1 ergänzt. Die neue Adresse wird dann an das D-Regislter 311 zurückübertragen.
Daraufhin wird die Folge 3 des Blocks WO1 begonnen, um in der Adressenentwicklung mit Hilfe eines indirekten AMS-Wortes fortzufahre'n. Zeigt dagegen das Adresslenslteuerfeld einen anderen Wert als 7 , so wird der Flipflop CLl überprüft. Befindet er sich im 1-Zustand, so bedeutet dies, dass die Indexvorgänge mit dem nächsten AMS-Wort, also nicht mehr wie oben mit einem indirekten AMS-Wort fortgesetzt werden müssen. In diesem Fall wird die Adresse aus dem P-Register 310 durch den Addierer 302 hindurch an das D-Regis,ter 311 übertragen.
Daraufhin wird erneut in die Folge 0 eingetreten. Befindet sich der Flipflop CL1 dagegen im Nullzustand und handelt es sich um einen Einadresrsenbefehl, so ist die Adresse fertig entwickelt und fder Befehl kann durchgeführt werden.
Handelt es sich dagegen um einen Zweiadressenbefehl, so kann zur Entwicklung der zweiten Adresse erneut in die Folge 0 eingetreten werden.
Folge 3
Die Folge 3 des Blocks WO1 kann nur im Anschluss an eine Folge 2 begonnen werden.Die Folge' 3 dient dazu, aus dem Speicher ein indirektes AMS-Wort zu erhalten um es zum weiteren Adressenaufbau zu verwenden.
Das indirekte AMS-Wort wird vom Speicher her erhalten und auf seine Art hin untersucht. Wenn das indirekte AMS-WoIt din Zeiger oder eine Verknüpfung ist, wird sein Adressenfeld an das D-Register 311 übertragen. Anschliessend wird in die Folge 1 DFXW eingetreten, um einen Index oder einen Operanden zu gewinnen. Wenn das indirekte AMS-Wort dagegen ein Index ist, wilid es der vorläufigen Adresse im Addierer 302 hinzuaddiert. Dann wird der Bit 21 daraufhin überprüft, ob eine weitere indirekte Adressierung er förderlich ist.
Wenn der Bit 21 eine binäre 1 ist, so ist die entwickelte Adresse eine effektive Adresse, die zur Gewinnung eines anderen indirekten Adressenwortes verwendet wird. In diesem Fall wind die effektive Adresse vom Addierer 302 an das D-Register 311 übertragen. Daraufhin wird in die Folge 2 eingetreten, um durch indirekte Adressierung eine neue effektive Adresse, eii,ne andere vorläufige Adresse oder eine endgültige Adresse zu gewinnen.
Wenn der Bit 21 eine binäre Null ist, wird der Flipflop CL1 überprüft. Befindet er sich im 1-Zustand, so bedeutet dies, dass die Indexvorgänge mit dem nächsten AMS-Wort fortgesetzt werden müssen. In diesem Fall wird die entwickelte Adresse an das E-Register 303 und die Adresse im P-Register 310 an das D Register 311 übertragen. Zur weiteren Adres,sen,ent- wicklung wird dann in dile Folge 0 eingjetreten. Wenn der Flipflop CL1 im Nullzustand ist und wenn es sich um die Adresse eines Einadressenbefehis handelt, so ist die Adresse eine endgültige Adresse, die an das D Register 311 übertragen wird.
Die Adressenentwicklung ist damit vollständig durchgeführt. Wenn es sich um einen Zweiadressenbefehl handelt, wird zur Entwicklung der zweiten Adresse erneut in die Folge 0 des Blocks WO1 eingetreten.
Es sind somit wirkungsvolle Massnahmen vogese hen, durch die durch die Verwendung von Hilfsworten Adressen gewonnen oder entwickelt werden können.
Zur zwischenzeitlichen Speicherung von Befehlsworten oder B efehlszeichen werden Ühertragungskomponenten beispielsweise die M-, E- und 1-Register und die Operationssteuerung der Steuereinheit 318 verwendet.
Gleichzeitig dienen diese Übertragungskomponenten dazu, nach Überprüfung bestimmter Bitstelillen in den Befehlsworten oder Zeichen bestimmte Hilfsworte zu gewinnen. Ein getrenntes Register (P-310) speichert die Adresse eines Hilfswortes oder eines Befehlswortes.
In Abhängigkeit von der Information, die in bestimm- ten Bits Ider Hilfswortie vorhanden ist, wirken wiederum weitere Komponenten der Datenverarbeitungsanlage (Q-Relgister 306; Addierer 302; E-Register 303) auf die Befehlsworte- oder Zeichen in den Speicherund tÇbertragungskomponenten (M-301 und E-303 Register) ein, um in Abhängigkeit von Informationen in bestimmten Teilen der Hilfsworte bestimmte Teile der Befehlsworte zu modifizieren. Die Übertragung von Daten von und zu den verschiedenen Registern wird von einer Zeitgebersteuerung 319 gesteuert, die während verschiedener TL-Perioden (Zeitgeberperioden) wirkt.
Wenn ein Befehlswort modifiziert worden ist, wie es eben beschrieben wurde, werden die vorgegebenen Bits erneut überprüft, um festzusteiien, ob das Befehls wort erneut modifiziert werden muss. Fällt diese Über- prüfung bejahend aus, so kann mit dieser Modifizierung auf die gleiche Weise fortgefahren werden, wie es gerade erläutert wurde. Auf diese Weise können aufeinanderfolgende Daten solange aus dem Speicher gewonnen werden, bis eine Überprüfung anzeigt, Idass das Datenwort vollständig ist und somit die endgültige Adresse derjenigen Daten darstellt, auf die der Befehl einwirken soll.
U'enn man bestimmte Bitplätze des Hilfswortes einem bestimmten Code zuordnet und wem man diese Cade in den Hilfsworten überprüft, kann man in Abhängigkeit von den Daten im Hilfswort selber mit der Entwicklung einer Adresse fortfahren. Daher kann die logische Anordnung der Daten im Hilfswort sehr fiexi- bei gestaltet werden. Man kann beispielsweise dem Code an bestimmten Bitplätzen des Hilfswortes eine solche Konfiguration geben, dass das Hilfswort selbst als Operand wirkt. Eine anidere Codekonfiguration an den selben Bitplätzen kann das Hilfswort als zusätzliche Adresse eines Mehradressenbefehles kennzeichnen.
Sie kann jedoch auch bedeuten, dass zur Entwicklung der Adresse des Hauptbefehls ein anderes Datenwort aus dem Speicher ausgelesen werden muss.