DE2611598A1 - Uebersetzungseinrichtung fuer speicheradressen - Google Patents

Uebersetzungseinrichtung fuer speicheradressen

Info

Publication number
DE2611598A1
DE2611598A1 DE19762611598 DE2611598A DE2611598A1 DE 2611598 A1 DE2611598 A1 DE 2611598A1 DE 19762611598 DE19762611598 DE 19762611598 DE 2611598 A DE2611598 A DE 2611598A DE 2611598 A1 DE2611598 A1 DE 2611598A1
Authority
DE
Germany
Prior art keywords
register
memory
address
card
instruction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE19762611598
Other languages
English (en)
Inventor
John S Elward
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HP Inc
Original Assignee
Hewlett Packard Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of DE2611598A1 publication Critical patent/DE2611598A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)
  • Executing Machine-Instructions (AREA)

Description

Int. Az.: Case 950 5. März 1976
Hewlett-Packard Company 26115 98
ÜBERSETZÜNGSEINRICHTÜNG FÜR SPEICHERADRESSEN
Die vorliegende Erfindung betrifft eine Übersetzungseinrichtung für Speicheradressen gemäß dem Oberbegriff des Anspruchs 1. Das Anwendungsgebiet von sogenannten Minicomputern hat sich inzwischen derart erweitert, daß die Anforderungen an die Speicheradressierungskapazität so groß geworden sind, daß die Anzahl der verfügbaren Bits in der Wortlänge des Computers weit überschritten worden ist. Die Wortlänge beträgt typischerweise 16 Bits, wodurch der Hauptspeicher des Computers auf 32 76 8 Worte bei unbegrenzter indirekter Adressierung oder auf 65 536 Worte beschränkt ist, wenn nur eine Ebene der indirekten Adressierung erlaubt ist.
Da die Kernspeichertechnik keine wirtschaftlich attraktive Methode für die Bereitstellung großer Speicherkapazitäten innerhalb eines Computers war, haben sich in der Vergangenheit die Bemühungen auf Massenspeicher wie Magnetplattenoder Magnetbandeinheiten gerichtet. Solche Massenspeicher konnten viele Millionen Bits für einen kleinen Bruchteil der Kosten bereitstellen, die ein entsprechender Kernspeicher verursacht hätte. Solche Vorrichtungen sind jedoch langsam. In einigen Fällen wurden komplexe Software-Betriebssysteme verwendet, damit diese Vorrichtungen für den Benutzer als Erweiterung des Computer-Hauptspeichers erschienen. Diese Technik, oft als "virtueller Speicher" bezeichnet, hatte den Nachteil der Langsamkeit und war schwierig wirkungsvoll zu benutzen.
Eine andere naheliegende Wahlmöglichkeit für den Entwickler bestand darin, die Wortlänge des Computers zu vergrößern und den Aufbau der Maschine so zu verändern, daß für die Speicher-
609842/0882
adressierung eine größere Wortlänge zur Verfügung stand. Diese Lösung war zwar die konsequenteste, jedoch auch die teuerste. Zum Beispiel ist es möglich, die Register, Sammelschienen und die Wortlänge in einem Computer von 16 Bits auf 20 Bits zu erweitern, wodurch die Speicheradressierungskapazität von 65 536 auf über eine Million Worte erweitert wird. Diese Wahl ist aber speziell dann nicht attraktiv, wenn eine Kompatibilität der Software mit bestehenden Computern aufrechterhalten werden soll. Der Aufbau einer umfangreichen Software-Bibliothek erfordert nämlich viel Zeit und Geld.
Eine andere Wahlmöglichkeit für den Entwickler war das Verfahren der Stufenschaltung. Ein Beispiel dafür ist in der Patentanmeldung P 24 22 802.2-53 beschrieben. Nachteilig ist dabei hauptsächlich das Erfordernis einer zusätzlichen Speichersteuerung für jede im System benutzte Stufe.
Weiterhin verfügbar war die Benutzung von übersetzungstabellen. Die bekannten Konstruktionen mit Übersetzungstabellen ließen jedoch die Vielseitigkeit vermissen, die für komplizierte und ausbaufähige Software-Betriebssysteme erforderlich ist. In einem Übersetzungstabellensystem ist es erwünscht, Worte zwischen Speicherbereichen zu übertragen, wobei die Speicherbereiche durch verschiedene Übersetzungstabellen ausgewählt werden, so daß Subroutinen in einem
Speicherbereich ausgeführt werden können, der durch eine
andere Andressentabelle adressiert ist, und daß die Programmsteuerung zu einem Programm in einem Speicherbereich übertragen werden kann, der durch eine andere Übersetzungstabelle adressiert ist. Weiterhin ist es erwünscht, einige
physikalische Speicherplätze allen Benutzern zugänglich zu machen, so daß jeder Benutzer sich einen Teil des tatsächlichen Speichers für die ausschließliche Benutzung reservieren kann.
Der vorliegenden Erfindung liegt die Aufgabe zugrunde, eine
609842/0882
Übersetzungseinrichtung für Speicheradressen zu schaffen, mittels -welcher ohne großen Aufwand große Speicher realisiert werden können. Die Lösung dieser Aufgabe ist im Anspruch 1 gekennzeichnet.
Gemäß einer bevorzugten Ausfuhrungsform der vorliegenden Erfindung werden von der zentralen Prozessoreinheit (CPU) kommende Speicheradressen aus einer logischen Seitenadresse und einer Wortadresse zusammengesetzt. Die logische Seitenadresse wird zur Adressierung von Registern in einer Übersetzungstabelle benutzt, die die physikalische Seitenadressen enthält. Physikalische Seitenadressen unterscheiden sich von den logischen Seitenadressen dadurch, daß sie mehr Bits enthalten und einen bestimmten Bereich im tatsächlichen (physikalischen) Speicher adressieren. Die physikalische Seitenadresse ist an die Wortadresse angehängt, so daß eine vollständige physikalische Speicheradresse eines physikalischen Speichers gebildet wird, die vom Computer eingegeben oder ausgelesen wird. Jede logische Seite kann in irgendeine physikalische Seite übersetzt werden, indem die passende Information in die Register der Übersetzungstabelle eingegeben wird. Da weiterhin eine Vielzahl von Ubersetzungstabellen vorgesehen ist, hängt die schließlich ausgewählte physikalische Adresse von der jeweils freigegebenen speziellen Übersetzungstabelle ab.
Eine Freigabeschaltung für die Übersetzungstabellen sorgt dafür, daß der Zustand der Übersetzungstabellen wahlweise verändert werden kann, wobei sich die Schaltung an den vorherigen Zustand erinnert. Diese Schaltung ist nützlich bei der Ausführung von Instruktionen, die einem Speicherbenutzer die Eingabe und das Auslesen in einen bzw. aus einem Speicherplatz erlauben, der durch andere ubersetzungstabellen adressiert ist. Andere Instruktionen erlauben eine andauernde Übertragung der Programmsteuerung von einem Programm in einem ersten, durch eine erste Übersetzungstabelle adressierten Speicherbereich zu einem Programm, das durch
609842/0882
Eine zweite Übersetzungstabelle adressiert ist. Dies geschieht durch Sperren der ersten Übersetzungstabelle, Freigabe der zweiten Übersetzungstabelle und Übertragung der Programmsteuerung zu einer spezifizierten Adresse im physikalischen Speicher durch die zweite Übersetzungstabelle. Andere Instruktionen sorgen für eine zeitweilige Übertragung der Programmsteuerung von einem Hauptprogramm in einem Speicherbereich, der durch eine erste Übersetzungstabelle ausgewählt wurde, zu einer Subroutine in einem Speicherbereich, der durch eine zweite Übersetzungstabelle ausgewählt wurde, und zwar durch Sperren der ersten und Freigabe der zweiten Übersetzungstabelle. Die Rückkehr zum Hauptprogramm wird dadurch bewerkstelligt, daß die erste Übersetzungstabelle wieder freigegeben wird und die zweite Übersetzungstabelle nach Fertigstellung der Subroutine gesperrt wird.
Gemäß der vorliegenden Erfindung ist auch ein Register vorgesehen, das im folgenden als "Umgrenzungsregister" bezeichnet wird und eine logische Basisseitenwort-Adresse speichert. Wenn die adressierte logische Seite die Basisseite ist, wird der Inhalt dieses Registers mit der Wortadresse von der CPU verglichen. Auf der Grundlage dieses Vergleichsergebnisses wird die logische Basisseite in eine physikalische Seite übersetzt, die in den Übersetzungstabellen enthalten ist, oder die Adresse von der CPU wird zur direkten Adressierung eines physikalischen Speicherplatzes benutzt. Durch direkte Adressierung des physikalischen Speichers mit der Adresse von der CPU wird, wenn durch die Ergebnisse des Vergleichs/angezeigt, ein gemeinsamer Bereich im physikalischen Speicher geschaffen, der unabhängig von jeglichem Registerinhalt für die Basisseite einer Übersetzungstabelle ist.
Die Erfindung wird im folgenden anhand von Ausführungsbeispielen in Verbindung mit der zugehörigen Zeichnung erläutert. In der Zeichnung zeigen:
B09842/0882
Figur 1 das Speicheradressenformat eines Minicomputers gemäß einem bevorzugten Ausführungsbeispiel;
Figur 2 das Referenzinstruktionsformat für den Speicher eines Minicomputers;
Figur 3 eine Darstellung der Adressenübersetzung gemäß dem bevorzugten Ausführungsbeispiel;
Figur 4 eine Darstellung zur Beschreibung des Adressenübersetzungsvorgangs gemäß dem bevorzugten Ausführungsbeispiel ;
Figur 5 ein Blockschaltbild der bevorzugten Ausführungsform;
Figur 6 eine schematische Darstellung der logischen Schaltungen gemäß dem bevorzugten Ausführungsbeispiel;
Figur 7 eine vereinfachte Darstellung von Schaltelementen, die zum Übertragen von Daten zwischen Speicherbereichen dienen, zu denen von verschiedenen Übersetzungstabellen Zugriff genommen wurde;
Figur 8 ein Flußdiagramm der Datenübertragung zwischen Speicherbereichen, zu denen über verschiedene Übersetzungstabellen Zugriff genommen wurde;
Figur 9 eine logische Schaltung entsprechend einem Teil der bevorzugten Ausführungsform;
Figur 10 eine logische Schaltung eines weiteren Teils der be-
vorzugten Ausführungsform;
Figur 11 ein F-lußdiagramm, das die logischen Schritte für die Ermittlung eines falschen Auslesens zeigt.
In Figur 1 ist das Speicheradressierungsschema eines Minicomputers dargestellt,· wobei die Speicheradresse in eine Seitenadresse und eine Wortadresse aufgeteilt ist. Der Umfang der Seiten- und der Wortadresse wurde im Definitionsstadium des Instruktionssatzes für den Computer willkürlich gewählt und hat nichts mit einer physikalischen Aufteilung des Speichers zu tun.
Unabhängig davon, welche Seite ausgewählt wird, liegt die Wortadresse zwischen 000O0 (0000._) und 1777O (1024.„). Wenn man
O IU ο IU
die Speicheradresse erhöht, sind die Bits null bis neunalle
609842/0882
2000g oder 1O241Q Worte gleich 0000, wodurch der Seitenumfang bei dieser Ausführungsform definiert ist. Diese Seitenabgrenzungen sind in Figur 1 dargestellt. Die Nützlichkeit des Seitenkonzeptes wird klar, wenn man das Format der Speicher-Referenzinstruktionen in Figur 2 betrachtet. Der Operationscode 53 spezifiziert die mit dem aus dem Speicher ausgelesenen Wort durchzuführende Operation. Typische Operationen sind ADD, AND oder XOR für den Inhalt eines Speicherplatzes und den Inhalt eines Registers. Die Wortadresse 57 der aus dem Speicher zu lesenden Daten wird durch Bits null bis neun der Instruktion spezifiziert. Die Seitenadresse des aus dem Speicher auszulesenden Wortes wird durch das Bit 55 bestimmt und ist entweder die laufende Seite, definiert als die Seite, auf die sich die Instruktion bezieht, oder ist die Null-Seite. Bei den derzeitig verfügbaren CPUs mit Seitenadressenschemen sind daher die Null-Seitenadressen extrem wichtig, da zu ihnen von der CPU von einer beliebigen Stelle im Speicher direkt Zugriff genommen werden kann. Wegen dieser Einschränkung auf die direkte Adressierung lediglich der Speicherplätze der laufenden Seite und der Nullseite haben Minicomputer-Programmierer vielfältige Programmschemata entwickelt und ihre'Programme in Segmente aufgeteilt, um diese Begrenzung zu minimisieren. In Anpassung an diese Begrenzungen werden gemäß der vorliegenden Erfindung mehr Seiten des physikalischen Speichers für die Auswahl verfügbar gemacht, während der sofort adressierbare Speicherraum bei den vorherigen logischen Seiten belassen wird. Der Speicherbenutzer hat die Wahlmöglichkeit, den Inhalt der Übersetzungstabellenregister zu ändern oder eine andere übersetzungstabelle zu benutzen, um den von der jeweils freigegebenen Übersetzungstabelle nicht adressierten Speicherbereich zu adressieren.
Gemäß Figur 3 wird eine durch den Computer spezifizierte Seitenadresse 60 benutzt, um eine der 32 Register in einer übersetzungstabelle 64 zu adressieren, welche ein 12-Bit-Wort erzeugt, das eine physikalische 10-Bit-Seitenadresse 65 und
B0 9842/0882
Bits 66 und 67 enthält. Die Bits 66 und 67 zeigen an, ob die Seite lese- oder schreibgeschützt ist, wenn die Speicherschutzschaltung freigegeben ist. Die physikalische 10-Bit-Seitenadresse 65 wird an die 10-Bit-Wortadresse 57 angehängt, wodurch eine 2O-Bit-Adresse 69 entsteht.
Auch Figur 4 zeigt die Betriebsweise der Übersetzungstabelle. Die fünf Bits der logischen Seitenadresse 60 adressieren eines von 32 Registern in der Übersetzungstabelle 64. Das Ausgangssignal des adressierten Registers ist eine physikalische 10-Bit-Seitenadresse 66. Obwohl bei Benutzung von 10 Bits für die Seitenadressierung 1024,. Seiten des Speichers auswählbar sind, werden von einer einzelnen Übersetzungstabelle nur 32. Seiten zu jeder beliebigen Zeit ausgewählt, da die Seitenadressierung noch durch die fünf Bits der logischen Seitenadresse 60 von der CPU begrenzt ist.
Unter Bezugnahme auf Figur 5 wird das System zunächst beschrieben, nachdem anfänglich die Leistungszufuhr eingeschaltet wurde. Der Zustand von vier hauptsächlichen Steuersignalen sperrt das Speichererweiterungssystem, und die gesamte Kommunikation zwischen CPU und Speicher wird durchgeführt, als wenn der Gegenstand der Erfindung nicht vorhanden wäre ( die CPU und der allgemeine Speicherbetrieb sind in der Patentanmeldung P 24 22 802.2-53 beschrieben. Die CPU 150 ist auch im HP Journal Oktober 1974 beschrieben.)
Signale 101, 102 und 103 werden zusammen benutzt, um das System in einen von acht Zuständen zu steuern, die mit QO bis Q7 bezeichnet sind und in Tabelle 1 beschrieben sind. Bei Einschaltung der Leistungszufuhr sind die Signale 101, 102.und 103 alle im logischen Zustand "1", der in Tabelle I mit Q7 bezeichnet ist und den NOP-Zustand (kein Betrieb) des Systems darstellt. Diese drei Signale bewirken, daß eine Freigabe und eine Adressierungsschaltung 105 alle Eingangssignale ignoriert und ein Signal 108 im logischen Zustand
6 f) 9 84 2 / 0 8 8 2
-B-
"O" hält. (Das Signal 108 wird in den logischen Zustand "0" übersetzt, wenn die Energiezufuhr eingeschaltet wird.) Dementsprechend wird ein Multiplexer-Steuergatter 109 gesperrt. Das Multiplexer-Steuergatter 109 erzeugt ein Signal 11ü mit dem logischen Zustand 11O" das den B-Eingang eines Multiplexers 111 auswählt und zu einem Register 182 für physikalische Speicheradressen durchschaltet. Die CPU 150 kann nur zu den untersten 32 K des physikalischen Speichers Zugriff nehmen, wenn der B-Eingang des Multiplexers 111 gewählt ist, da die den fünf Bits mit den höchsten Stellenwerten des B-Eingangs entsprechenden Leitungen geerdet sind.
Die Register der Übersetzungstabelle werden aufeinanderfolgend adressiert, beginnend mit Null für das erste Register in der Übersetzungstabelle 130 und endend mit 1271Q für das letzte Register in der Übersetzungstabelle 145. Die übersetzungstabellen-Register werden mit Adresseninformation geladen, wie nachfolgend beschrieben ist. Zuerst wird die Adresse des zu ladenden Registers von der CPU 150 über eine S-Sammelschiene 155 zu einem Tabellen-Adressenregister innerhalb der Freigabe- und Adressierungsschaltung 105 gesandt. Sie wird in das Tabellenadressenregister 106 durch gleichzeitige Ausführung des System-Zustandsbefehls Q5 eingetaktet, wie in Tabelle I beschrieben ist. (Spezielle Konfigurationen von Daten auf der S-Sammelschiene 155 und ihr Effekt im Zusammenhang mit der Ausführung der Zustandsbefehle nach Tabelle I sind in Tabelle II dargestellt).
Danach wird die physikalische Seitenadresse und Schreib/ Lese-Schutzinformation auf die S-Sammelschiene 155, bzw. auf Leitungen 0 bis 9, 14 und 15 gegeben und im ausgewählten Übersetzungstabellen-Register durch gleichzeitige Ausführung des Zustandsbefehls Q1 gespeichert, wie in den Tabellen I und II beschrieben ist. Die obige Prozedur wird solange wiederholt, bis alle Übersetzungstabellen-Register mit der
6 0 9 8 4 11 0 8 8 2
gewünschten Information geladen sind. Spezielle Instruktionen für den gradlinigen Betrieb des Systems sind im Anhang A beschrieben.
Gemäß Figur 6A ist es erforderlich, ein Steuerwort zu einem Zustandsregister 268 zu übertragen und den Zustandsbefehl Q5 auszuführen, um die Übersetzung der logischen Seitenadressen zu starten. Dies geschieht durch gleichzeitige Eingabe eines Steuerwortes in die S-Sammelschiene 155, wobei der logische Zustand der Bits über Tabelle II ausgewählt ist, und durch Ausführung des Systemzustandsbefehls Q5, der in Tabelle I beschrieben ist. Wenn z.B. mit der Übersetzung logischer Seitenadressen vom Computer über die Übersetzungstabelle begonnen werden soll, muß das Steuerwort für die S-Sammelschiene alle Bits im logischen Zustand "0" haben, mit Ausnahme der Leitung 14. Die Decodierung des Systemzustandsbefehls Q5 durch einen Zustandsbefehlsdecoder 201 bewirkt das Setzen eines Flipflops (FF) 205 und die Rückstellung eines FF 210. Der Q-Ausgang des FF 205 ist mit einem Gatter 215 verbunden, welches daraus eine logische "1" erzeugt. Das "1" Ausgangssignal vom Gatter 215 erzeugt bei einem Gatter 220 ein Ausgangssignal "0". Das Ausgangssignal des Gatters 220 wird einem Inverter 225 zugeführt, der ein Signal 22 7 erzeugt, welches sich im logischen Zustand "1" befindet. Das Signal 227 und ein Signal 226 sind die Freigabesignale für Übersetzungstabellen 130 bzw. 135. Das FF 210 wird zurückgestellt und erzeugt ein Signal im logischen Zustand "1". Daher wird die Übersetzung der logischen Seitenadresse durch die Übersetzungstabelle 130 freigegeben .
Wie in Figur 5 dargestellt ist, wird eine logische Seitenadresse 160 von der CPU 150 zur Übersetzungstabelle 130 durchgeschaltet. Der Inhalt des Übersetzungstabellen-Registers, das durch die logische Seitenadresse 160 adressiert wird, wird zu einer Sammelschiene 115 ausgegeben und dem Α-Eingang des Multiplexers 111 zugeführt. Das Signal 108 befindet sich im logischen Zustand "1", und da sich das Ausgangssignal eines
0-984 2/-Ü8 &2
!Comparators 165 (Benutzung weiter unten beschrieben) sich zu diesem Zeitpunkt im Zustand "1" befindet, erzeugt ein UND-Glied 109 ein Signal 110 im logischen Zustand "1". Der Multiplexer 111 wählt den Α-Eingang, den Registerinhalt der Übersetzungstabelle auf Sammelschiene 115 und verbindet ihn mit dem zehnten bis neunzehnten Bit des Registers 182 für physikalische Speicheradressen. Die Wortadresse 125 wird mit den Bits 0 bis 9 des Registers 182 verbunden.
Wenn ein Lese-Befehl 186 oder ein Schreib-Befehl 187 von der CPU 150 an eine Speicherzeitgeber- und Steuereinrichtung 180 ausgegeben wird, taktet ein Taktsignal auf einer Leitung 123 sowohl das Ausgangssignal vom Multiplexer 111 als auch die Wortadresse 125 in das Register 182 ein. Außerdem werden Zeitgeber- und Steuersignal 184 in den physikalischen Speicher 190 gegeben. Die Ausführung des Lesebefehls 186 bewirkt ein Auslesen der Daten aus dem physikalischen Speicher 190 in ein Speicherdatenregister 192. Die Übertragung von Daten vom Speicherdatenregister 192 zur CPU 150 wird weiter unten im Zusammenhang mit einer Schutzschaltung 199 beschrieben. Der Ausführung des Schreibbefehls 187 geht die Speicherung des in den Speicher einzuschreibenden Wortes dem Speicherdatenregister 192 voraus.
Nimmt man an, daß alle Register der Übersetzungstabelle mit den gewünschten physikalischen Adressen geladen sind, kann die CPU 150 Zugriff zu Speicherplätzen durch jede der Übersetzungstabellen nehmen oder kann die Übersetzungstabellen sperren, indem sie den Zustandsbefehl Q5 (Tabelle I) ausführt, und die logische Seitenadresse 160 mit der Wortadresse 125 benutzen, um direkten Zugriff zu den untersten 32 Seiten des physikalischen Speichers zu nehmen.
In Figur 6A ist eine Schaltung der bevorzugten Ausführungsform gezeigt, die den freigegebenen Zustand der Übersetzungstabelle im Betrieb bewahrt, nachdem irgendeine CPU-Unterbrechung aufgetreten ist. Diese Schaltung wählt dann die
60 9 842/0882
Übersetzungstabelle aus, die den Speicherbereich adressiert, welcher das Programm zum Beheben der Unterbrechung enthält. Daraufhin kann die Übersetzungstabelle, die zum Zeitpunkt der Unterbrechung in Benutzung war, wieder in ihren freigegebenen Zustand zurückversetzt v7erden. Der Inhalt eines Zustandsregisters 268 wird in einem Bewahrungsregister 250 auf ein Signal 265 hin gespeichert, wo er für die nachfolgende Rückspeieherung in das Zustandsregister 268 benutzt wird. Außerdem wird die Übersetzungstabelle 130 durch ein Gatter 266 freigegeben. Das Signal 265 wird auch an ein Gatter 220 gegeben, welches einem Gatter 225 äne logische "0" zuführt, wodurch ein Signal 22 7 erzeugt wird und die Übersetzungstabelle 130 ausgewählt wird. Die Schaltung in der CPU 150 reagiert auf das Signal 265 und bewirkt, daß die nächste Instruktion von der Speicheradresse abgerufen wird, die den gleichen Binärwert wie der Auswahlcode der unterbrechenden Vorrichtung hat. FF 205 ist mit dem Gatter 215 verbunden, welches an ein Gatter 220 ein Ausgangssignal mit niedrigem Pegel liefert. Das Gatter 220 erzeugt ebenfalls ein niedriges Ausgangssignal, nachdem das Signal 265 auf den logischen Zustand "0" gegangen ist. FF 260 wird auch durch das Signal 265 gesetzt.
Nachdem durch die CPU eine Unterbrechung verarbeitet worden ist, stellt das Unterbrechungsprogram den Originalzustand der Zustandsregister wieder her. Das Bewahrungsregister 250 wird auf die S-Sammelschiene 155 ausgelesen, indem der Systemzustandsbefehl Q6 (Tabelle I) ausgeführt wird. Der Zustandsbefehldecoder 201 gibt das Signal Q6 an ein Gatter 2 86, welches bewirkt, daß ein Signal 2 85 den Inhalt des Bewahrungsregisters 250 auf die Leitungen 15 und 14 der S-Sammelschiene 155 ausliest. (FF 279 ist zu diesem Zeitpunkt als gesetzt angenommen. FF 2 79 wird benutzt, wenn erwünscht ist, das weiter unten beschriebene Verletzungsregister anstelle des Zustandsregisters zu lesen. Dies geschieht durch Ausführung des Zustandsbefehls Q4 unmittelbar vor der Ausführung des Zustandsbefehls Q6, wodurch FF 279 gesetzt wird, was daraufhin das Gatter 268 sperrt und stattdessen das Gatter 227 freigibt.)
B09H42/0882
Die CPU 150 verschiebt dann die aus dem Bewahrungsregister 250 ausgelesenen Bits so, daß sie auf den Leitungen 9 und der S-Sammeischiene 155 anstehen. Die CPU mischt dann diese verschobenen Bits mit einem ^atenwort, das bei Bit 14 eine logische "1" hat und liest sie dann zurück auf die Sammelschiene 155, während wieder der Systemzustandsbefehl Q5 (Tabelle I) ausgeführt wird. Die Information auf den Leitungen 8 und 9 der S-Samme!schiene wird in das Zustandsregister 168 eingetaktet und der Originalzustand der Übersetzungstabellen ist damit wiederhergestellt. Nur zwei Übersetzungstabellen werden durch die Schaltung gemäß Figur 6 gesteuert, jedoch könnte eine beliebige Zahl von Übersetzungstabellen auf diese Weise gesteuert werden, indem zusätzliche Speicherelemente dem Zustandsregister 268 und dem Bewahrungsregister 250 angefügt würden.
Eine andere in Figur 6 dargestellte Schaltung eignet sich insbesondere für Anwendungen, bei denen erwünscht ist, abwechselnd zwei verschiedene Übersetzungstabellen freizugeben, um Datenblocks von einem durch die eine Übersetzungstabelle ausgewählten Speicherbereich zu einem von der anderen Übersetzungstabelle ausgewählten Speicherbereich zu übertragen oder Subroutinen in einem Speicherbereich auszuführen, der durch eine andere Übersetzungstabelle ausgewählt wurde. In Figur 7 sind als Auszug aus Figur 6 einige Elemente dieser Schaltung dargestellt. Sobald FF 205 gesetzt ist, wird ein Signal 227 im logischen Zustand "1" vom Gatter 225 ausgegeben. Die Übersetzungstabelle 130 wird freigegeben und die Übersetzungstabelle 135 wird gesperrt. Um die beiden Übersetzungstabellen 130 und 135 abwechselnd freizugeben, ist es erforderlich, den Systemzustandsbefehl Q3 (Tabelle I) auszuführen. Der Betrieb dieser Schaltung wird nachfolgend beschrieben.
Es sei angenommen, daß FF 260 zunächst rückgestellt und FF gesetzt ist, daß das Gatter 220 an seinem Ausgang eine "0" abgibt und daß das Eingangssignal des Gatters 225 logisch "1" ist. Dementsprechend ist die Übersetzungstabelle 130 freigegeben.
B [l 9 H 4 2 / 0 8 8 2
Die Ausführung des Systemzustandsbefehls Q3 gibt ein Signal "1" vom Ausgang des Gatters 345 an den J-Eingang und eine logische "0" an den invertierenden K-Eingang des FF 260. Ein Taktsignal 346 bewirkt, daß FF 260 in den gesetzten Zustand schaltet. Dadurch wird am Gatter 215 ein niedriges Ausgangssignal erzeugt, wodurch die Übersetzungstabelle 130 durch das Gatter 225 gesperrt und die Übersetzungstabelle 135 freigegeben wird. Zugriff zum Speicher wird von da an, durch die Übersetzungstabelle 135 genommen. Die Ausführung des Systemzustandsbefehls Q3 stellt den freigegebenen Zustand der Übersetzungstabelle 130 wieder her und sperrt die Übersetzungstabelle 135. Die Nützlichkeit dieser Schaltung ist im Flußdiagramm in Figur 8 dargestellt.
Das Verfahren gemäß dem Flußdiagramm kammittels eines Softwareprogramms, eines Mikroprogramms oder einer Hardwareschaltung ausgeführt werden. Vorzugsweise wird ein Mikroprogramm wegen der Ausführungsgeschwindigkeit benutzt. (Alle Mikroprogramme der Systembefehle sind im Anhang C aufgelistet. Definitionen der Mikroinstruktionen finden sich im Anhang B.) Es gibt zwei Eingangspunkte. Es sei zunächst einmal angenommen, daß die Übersetzungstabelle 130 freigegeben ist und ein Programm im Speicherbereich 335 ausgeführt wird. Wenn gewünscht wird, aus dem Speicherbereich 335 durch die Übersetzungstabelle 130 auszulesen und in den Speicherbereich 340 durch die Übersetzungstabelle 135 zu schreiben, wird der Eingangspunkt 2 benutzt. Wenn der Eingangspunkt 1 benutzt wird, werden Worte aus dem Speicherbereich 340 ausgelesen und in den Speicherbereich 335 eingeschrieben.
Die obigen Ausführungen gehen davon aus, daß zu Daten in einer Speicheradresse durch eine andere Übersetzungstabelle Zugriff genommen wird. Diese Schaltungen sind aber auch wirksam bei der Ausführung von Subroutinen in Speicherbereichen, die durch andere Übersetzungstabellen adressiert sind. Spezielle Instruktionen sind im Anhang A aufgelistet.
6 0 9 8 4-2/0882
Unter Bezugnahme auf Figur 5 soll nun das Verfahren beschrieben werden, wie die Wortadressen der logischen Basisseite entweder für die Übersetzung durch die Übersetzungstabelle, wenn diese freigegeben ist, oder für die direkte Adressierung des physikalischen Speichers ausgewählt werden. Vor Betriebsbeginn wird ein Umgrenzungsregister 168 durch Ausführung des Systemzustandsbefehls Q5 (Tabelle I) geladen, während Daten in dem in Tabelle II dargestellten Format auf die S-Sammelschiene 155 ausgelesen werden. Wenn danach das System freigegeben wird und die logische Basisseitenadresse 160 die Basisseite adressiert, gibt ein Komparator 170 ein Freigabesignal· an den Komparator 165 ab. Der Komparator 165 vergleicht dann die Wortadresse 125 mit dem Inhalt des Umgrenzungsregisters 168. Wenn die Wortadresse 125 innerhalb des Bereichs der logischen Basisseite liegt, der für die direkte Adressierung des physikalischen Speichers ausgewählt ist, ist das Ausgangssignal vom Komparator 165 logisch 11O". Dadurch wird das Gatter 109 gesperrt und der B-Eingang des Multiplexers 111 wird auf das Register 182 für die physikalischen Speicheradressen geschaltet. Wenn der Vergleich der logischen Wortadressen 125 mit dem Inhalt des Umgrenzungsregisters 268 nicht ergibt, daß die Wortadresse zur direkten Adressierung des physikalischen Speichers dient, wird das Gatter 109 nicht gesperrt, und der Registerinhalt der Übersetzungstabelle auf einer ME-Sammelschiene 115 wird vom Α-Eingang des Multiplexers 111 zum Regisfcs: 182 durchgeschaltet.
Die für direkte Adressierung ausgewählten Wortadressen der Basisseite stellen daher einen gemeinsamen Bereich des physikalischen Speichers zur Verfugung, zu dem jeder Speicherbenutzer Zugriff nimmt, ohne Rücksicht auf die Registerinhalte der Übersetzungstabelle. Die verbleibenden Wortadressen auf der logischen Basisseite werden durch die Register der Übersetzungstabelle übersetzt und können dazu dienen, zu jedem Bereich des physikalischen Speichers 19O Zugriff zu nehmen, indem verschiedene physikalischen Seitenadressen in den Registern der Übersetzungstabellen 130, 135, 140 und 145 gespeichert werden, die adressiert werden, wenn die logische
609842/0882
?6 Ί1598
Seitenadresse 160 die Basisseite adressiert. Die als Teilungspunkt zwischen den zugeordneten und den gemeinsamen Bereichen ausgewählte Adresse wird vom Systemprogrammierer ausgewählt.
Die in Figur 5 dargestellte Schutzschaltung prüft solange nicht auf fehlerhaftes Schreiben, bis die CPU 150 ein Signal MPCND 500 mit dem logischen Zustand "1" erzeugt. Jede Instruktion, die eine Schreib- oder Sprungoperation versucht, hat einen Mikroinstruktionsschritt, mit dem MPCK ausgeführt wird (Anhang B) und die verdächtige Adresse auf die S-Sammelschiene 155 ausliest. Wenn ein geschützter Speicherbereich adressiert wird, bewirkt die Ausführung der Mikroinstruktion MPCK durch die CPU 150 die Abgabe eines Signals 500 an die Schutzschaltung 199. Erfaßte Versuche einen geschützten Speicherbereich zu verletzen führen zur Erzeugung eines Signals 505 und seine Abgabe an die CPU 150, die dann die Instruktion hemmt.
Gemäß Figur 9A speichert ein Verletzungsregister 550 die logische Seitenadresse 160 .und die aufgetretene Verletzungsart. Der Takt für das Verletzungsregister wird durch das Signal 500, ein Signal 514 oder ein Signal 186 erzeugt, je nach Art der Verletzung. Sobald eine Verletzung stattgefunden hat, wird durch die Erzeugung des Signals 505 ein Flipflop 506 gesetzt, welches das Verletzungsregister vor einer Veränderung schützt, solange bis es durch die CPU 150 zurückgestellt wird.
Die vier Verletzungsarten sind Leseschutz-Verletzung, Schreibschutz-Verletzung, Basisseiten-Verletzung und Unterbrechung von priviligierten Instruktionen. Ein detaillierte Beschreibung findet sich im Anhang A. Diese Verletzungen werden durch Signale 511, 512, 513 bzw. 514 angezeigt. Der Zustand der Signale wird im Verletzungsregister 550 festgehalten, wenn die Verletzung erfaßt worden ist. Das Format des im Verletzungsregister festgehaltenen Wortes ist in Tabelle III dargestellt.
Das Wort "Karte" ist synonym mit "Übersetzungstabelle " und wird in den Tabellen, Kommentaren zu den Erogrammlisten und den In-
6 0 9842/ÜHB2-
struktionsbeschrexbungen genutzt. Das Wort "tabelliert" zeigt an, daß die logische Seitenadresse durch die Übersetzungstabellen in eine physikalische Seitenadresse übersetzt worden ist.
Weitere Information über den Zustand des Systems ist für die CPU 150 vom Zustandsregister 279 erhältlich, welches in Figur 6B dargestellt ist. Es gibt Zustandsinformationen in dem in Tabelle III dargestellten Format auf den Systemzustandsbefehl Q6 hin ab. Das Signal 285 gibt Gatter 2 78 und 280 frei, um Zustandsinformation auf die Ξ-Sammelschiene 155 auszulesen. Wie in Figur 6A dargestellt ist, ist der Zustandsbefehl-Decoder 201 mit seinem Ausgang an das Gatter 286 angeschlossen, welches nur dann ein Signal 285 erzeugt, wenn FF 279 durch die Ausführung des Systemzustandsbefehls Q4 (Tabelle I) zurückgestellt worden ist.
Alle versuchten Verletzungen eines geschützten Speicherbereichs' oder Versuche, verbotene Instruktionen auszuführen, werden erfaßt und zum Zeitpunkt des Beginns der Instruktion gehemmt, mit der Ausnahme des Leseschutzes. Bei modernen CPU-Schaltungen ist eine "vorausschauende" Leseschaltung vorhanden, die den Speicherplatz liest, der höchstwahrscheinlich als nächster angefordert wird, bevor ein Lesebefehl ausgegeben wird. Die Verletzungsschaltung erzeugt daher solange kein Unterbrechungssignal bis die CPU 150 tatsächlich Daten anfordert. Dies wird durch Erzeugung eines Signals 510 (Figur 5) durch die CPU 150 und seine Abgabe an das Speicherdatenregister 192 über ein Gatter 194 angezeigt. Wenn diese Datenanforderung auftritt und durch eine Leseschutz-Bit 516 ein Leseschutz angezeigt wird, erzeugt die Schutzschaltung 129 ein Signal METDIS 188 im Zustand 11O". Dadurch wird das Lesendes Inhalts des geschützten Speicherplatzes zurück in die CPU 150 über die S-Sammeischiene 155 gehemmt. Das detaillierte Schaltbild dieses Teils der Schutzlogik ist in Figur 6B dargestellt.
Das Flußdiagramm in Figur 11 zeigt die logischen Schritte,
B 0 H fU 2 I O 8 8 2 -
die von der Schaltung ausgeführt werden, um festzustellen, ob eine Leseverletzung versucht wird.
609 8-4 2/0882 GOPY
TABELLE I
Systemzustandsbefehle Befehl Systembenutzung
Q 1. Auslesen der SYS/USR-Karte an die S-Sammel-
schiene freigeben (über Register 106, Bit 5)
2. S-Sammelschiene in Karten speichern (über Register 106, Bit 7)
3. Relative Kartenadresse durch Register 106, Bits (0 - 4) spezifiziert.
Q 1. S-Sammelschiene in Karten speichern (über
Register 106, Bits 5, 6)
2. Kartenregisteradresse spezifiziert durch Register 106, Bits (0 - 4)
Q 1. Karten an S-Sammelschiene freigeben (über
Register 106, Bits 5, 6)
2. S-Sammelschienen-Bits (10 - 13) sind immer niedrig.
3. Kartenregister, Adresse spezifiziert durch Register 106, Bits (0 - 4)
Q_ 1. Entgegengesetzte Programmkarte auswählen
Q. 1. Hinweismarke "Zustandsbefehl" durch nächsten
Mikroprozessorzyklus setzen (siehe Qfi)
2. Auf gerade ausgewählte Programmkarte zurückstellen
. QOPY
- 1 y -
2 B I 1 S 9 B
Q_ 1 . S-Sammelschiene speichern in
a) MEM-Zustandsregister (2 Bits)
b) MEM-Zaunregister (11 Bits)
c) MEM-Adressenregister (8 Bits)
2. Obige Register ausgewählt durch S-Sammelschienen-Bits (15 - 13)
Q, . 1. Zustandsdaten auf S-Sammelschiene freigeben ο
a) Normalerweise liest Verletzungsregister
b) Bei vorangehendem Q.-Befehl wird Zustandsregister gelesen
Q 1. Kein Mikrocode spezifiziert
2. NOP-Zustand
h I.I H H A 11 U b B 2 COPY
TABELjjjc. II
Zustandsbefehl
S-Sammelschienen-Bits Bedeutung der S-Sammelschienen-Bits
0-9
14
15
0-9, 14,
10 N /A N/A
14
S-Sammelschienen-Bits 0-9 stellen in ein ausgewähltes Kartenregister eingespeicherte Adressendaten dar.
S-Sammelschienen-Bit 14 stellt das Schreibschutz-Bit dar. S-Sainmelschienen-Bit 15 stellt das Leseschutz-Bit dar.
S-Sammelschienen-Bits 0-9 stellen in ein ausgewähltes Kartenregister eingespeicherte Daten dar.
S-Sammelschienen-Bit 14 stellt das Schreibschutz-Bit dar. S-Sammelschienen-Bit 15 stellt das Leseschutz-Bit dar.
S-Sammelschienen-Bits stellen vom ausgewählten Kartenregister lesende Daten dar.
Immer im Null-Zustand.
Keine besondere Bedeutung Keine besondere Bedeutung
Bevorzugte Operation erlauben. Zustandsregister 268 über S-Sammelschienen-Bits 8, 9 laden. Register 106 über S-Sammelschienen-Bits 0-10 laden.
609842/0882
Q 0-15 Zustandsregister nach Tabelle I
oder Verletzungsregister nach Tabelle IV
Q N/A Keine besondere Bedeutung
609842/0882
TABELLE III
Zustandsregister Bedeutung
15 MEM Aus/Ein (0/1) bei letzter Unterbrechung
14 System/Benutzer (0/1) ausgewählt bei
letzter Unterbrechung
13 MEM"Aus/Ein (0/1) momentan
12 System/Benutzer (0/1) momentan ausgewählt
11 PM momentan freigegeben
10 Teil tabelliert
9 Basisseiten-Eingrenzungsbit 9
8 Basisseiten-Eingrenzungsbit 8
7 Basisseiten-Eingrenzungsbit 7
6 Basisseiten-Eingrenzungsbit 6
5 Basisseiten-Eingr.enzungsbit 5
4 Basisseiten-Eingrenzungsbit 4
3 Basisseiten-Eingrenzungsbit 3
2 Basisseiten-Eingrenzungsbit 2
1 Basisäeiten-Eingrenzungsbit 1
O Basisseiten-Eingrenzungsbit O
Bit 10 Tabellierte Adressen
0 Umgrenzung <. M <- 2000 o
1 1 < M < Umgrenzung
609842/0882
TABELLE IV
Verletzungsregister Bedeutung
Leseverletzung SchreibVerletzung Basisseiten-Verletzung
I 2 Verletzung bevorzugter Instruktion
Reserviert Reserviert
9 Reserviert
8 Reserviert
7 ME-Saitimelschiene freigegeben
6 MEM-Karten freigegeben
5 System/Benutzer (0/1) freigegeben
4 Kartenregister-Bit
3 Kartenregister-Bit
2 Kartenregister-Bit
1 Kartenregister-Bit
0 Kartenregister-Bit
B Ü 9 H /♦ 2 / (J 8 8 2
ANHANG A
Spezielle Begriffe und spezielle Anmerkungen einschließlich Abkürzungen, die bei der Interpretation der Instruktionsbeschreibungen nützlich sind. "MEM" bezieht sich auf das System gemäß der bevorzugten Ausführungsform.
Geschützter Betrieb (PM)
Durch die CPU hergestellter Programmzustand. Der geschützte Betrieb beginnt mit der Ausführung einer· Instruktion STC 05B.
Der geschützte Betrieb endet, wenn die CPU eine Unterbrechung erkennt.
Voreinstellung sperrt die Tabellierungsfunktionen und beendet den geschützten Betrieb.
MEM-Verletzung (MEMV) Eine von verschiedenen Bedingungen die beim bevorzugten Ausführungsbeispiel nicht erlaubt sind. Kann nur bei PM eintreten.
Angezeigt durch eine Unterbrechungsanforderung zum Kanal 5 mit gesetzter I/O-Marke (d.h. man kann programmatisch feststellen, ob die CPU oder MEM die Unterbrechung durch Ausführung entweder von SFS 05 oder SFC 05 verursacht hat). N.B. ein STF 05 oder CLF 05 gibt noch die paritätsbezogenen Funktionen von MP frei oder sperrt sie.
MEM-Verletzungsregister (MVR)
Das MVR wird solange nicht mit irgendwelchen Daten geladen, bis Steuerung 5 gesetzt ist.
Es wird dann kontinuierlich eingeblendet, bis ein MEMV auftritt oder Steuerung 5 gelöscht wird.
Daher ist der auf ein MEMV folgende Inhalt gültig bis STC 05 ausgegeben wird.
Voreinstellung löscht MVR.
B Ü 9 8 k 2 I Cl 8 8 2
--25 -
Basisseitenumgrenzung (BPF)
Erlaubt einem Teil der Basisseite (00000-01777) der zugehörigen physikalischen Adressen zu entsprechen ohne Rücksicht darauf, welche Karte freigegeben ist. Ob der Teil oberhalb oder unterhalb der Umgrenzungsadresse liegt, ist vom Programm festlegbar, wenn die Umgrenzung gesetzt wird.
Logische Adressen 00000 und 00001 (z.B. A/B) werden nicht tabelliert, wenn der Standardsatz von Assembler-Sprache-Instruktionen benutzt wird.
Voreinstellung löscht BPF.
Netzausfall/Automatisches Wiederstarten
Alle Register auf dem MEM sind energieabhängig, und der Inhalt sollte im Hauptspeicher durch die Leistungsausfallroutinen festgehalten werden, wenn automatisches Wiederstarten gewünscht wird.
Nach Wiederherstellung der Energiezufuhr werden alle Karten gesperrt und müssen vor Freigabe unter Programmsteuerung geladen werden.
MVR und BPF werden automatisch gelöscht, wenn die Leistungszufuhr wiederhergestellt wird.
Karte Wechseln
Das MEM hat vier bestimmte Karten.
Zwei dienen zur Programmausführung.
Die Programmkarte die speziell freigegeben ist, wird als
die "laufende Karte" bezeichnet.
Die andere Programmkarte wird als "Wechselkarte" bezeichnet.
Die Karten für Zugang A und Zugang B werden in keinem Fall als laufende oder Wechselkarte bezeichnet. Sie werden von anderen Vorrichtungen für die Kommunikation mit den Speicher
benutzt.
Beispiel: SJP macht aus der Systemkarte die laufende Karte
und die Benutzer-Karte ist dann die Wechselkarte.
G 0 9 B k 2 / (J B 8 2
- 2δ -
MEM MAKROINSTRUKTIONEN
CODE MNEMONIK LEN PRV INT
02 MBI 1 A Y
03 MBF 1 M Y
04 MBW 1 A Y
05 MWI 1 A Y
06 MWF 1 M Y
07 MWW 1 A Y
10 SYA/B 1 M N
11 USA/B 1 M N
12 PAA/B 1 M N
13 PBA/B 1 M N
14 SSM 2 M N
15 JRS 3 M N
20 XMM 1 M Y
21 XMS 1 M Y
22 XMA/B t A N
24 XLA/B 2 M N
25 XSA/B 2 A N
26 XCA/B 2 M N
27 LFA/B 1 A N
30 RSA/B 1 N N
31 RVA/B 1 N N
32 DJP 2 M N
33 DJS 2 M N
34 SJP 2 M N
35 SJS 2 M N
36 UJP 2 M N
37 IJS 2 M N
BESCHREIBUNG
Bytes hineinbewegen Bytes herausbewegen Bytes innerhalb bewegen Worte hineinbewegen Worte hinausbewegen Worte innerhalb bewegen System laden/speichern Benutzer laden/speichern Zugang A laden/speichern Zugang B laden/speichern Zustand im Speicher speichern
Springen und Zustand wiederherstellen Karte oder Speicher übertragen
Karte aufananderfolgend übertra-Karte intern übertragen Kreuzung laden
Kreuzung speichern Kreuzung vergleichen Umgrenzung laden Zustand lesen
Verletzung lesen Sperren und JMP Sperren und JSB System freigeben und JMP System freigeben und JSB Benutzer freigeben und JMP Benutzer freigeben und JSB
" Letzte zwei Oktalziffern. Vorausgeht 1017 oder 1057 ..
wie für A/B-Registerbedeutung benötigt wird. Instruktionen, die sich nicht explizit auf A/B beziehen, empfangen 1057 .. vom Assembler.
6 0 9842/Ü882
Die Spaltenüberschriften sind folgendermaßen definiert:
LEN - Anzahl der Worte für diese Makroinstruktion. PEY — Diese Instruktion wird besonders beachtet wenn eine. Ausführung bei geschütztem Betrieb erfolgt (d^h. wenn Steuerung 5 gesetzt ist). Bei "A" (immer) ist diese Instruktion bei PM unerlaubt und erzeugt immer eine MEM-Verletzung. Bei "M" (manchmal) kann die spezielle Instruktion ein MEMV verursachen, wie in der Instruktionsbeschreibung erklärt ist- Bei 41N" (nie) erzeugt diese Instruktion auf keinen Fall ein MEMV in irgendeinem Betrieb.
INT - Zeigt an ob die Ausfuhrungsroutine der Instruktion unterbrechbar igt oder nicht.
MEM sperren und springen (JUMP) Mnemonik: DJP Oktal-Code: 1O5732 Format: DJP DEF ADR (,I)
Bewirkt die Sperrung der Übersetzungs- und Schutzmerkmale von MEM. Das P-Register wird dann auf die Adresse gesetzt, die sich aus ADR(,I) vor der Sperrung ergeben hat. Als Ergebnis der Ausführung dieser Instruktion werden normale I/O-ünterbrechungen solange herausgehalten, bis zur ersten Möglichkeit, die auf den Abruf der nächsten Instruktion folgt, solange drei oder mehr Indirekt-Niveaus benutztwerden.
Wenn keine Karten freigegeben sind, wird die In-
struktion zu einem JMP +1,1. Diese Instruktion erzeugt normalerweise ein MEMV, wenn sie in PM ausgeführt wird. Wenn jedoch die Systemkarte freigegeben ist, ist sie in PM erlaubt.
MEM sperren und zur Subroutine springen Mnemonik: DJS Oktal-Code: 1O5733 Format DJS DEF ADR(,I)
609842/Ü882
Bewirkt die Sperrung der Übersetzungs- und Schutzmerkmale von MEME. Das P-Register wird auf die Adresse gesetzt, die um Eins hirfer der Adresse liegt, die vor der Sperrung aus ADR(,I) erhalten wurde. Die Rückkehradresse wird in ADR(,I) eingeschrieben. Als Ergebnis der Ausführung dieser Instruktion werden normale I/O-Unterbrechungen herausgehalten bis zur ersten Möglichkeit, die dem Abruf der nächsten Instruktion folgt, es sei denn, daß drei oder mehr Indirekt-Niveaus benutzt werden. Diese Instruktion erzeugt normalerweise ein MEMV, wenn sie in PM ausgeführt wird. Wenn jedoch die Systemkarte freigegeben ist, ist sie in PM erlaubt.
Springen und Zustand wieder speichern Mnemonik: JRS Oktalcode: 105715 Format: JRS DEF STS (,I) DEF ADR(,I)
Bewirkt, daß der Zustand von MEM (d.h. freigeben/ sperren und System/Benutzer) wieder gespeichert wird, wie durch die Bits 15, 14 von STS (,I) angezeigt ist. Die Bits (13-0) werden ignoriert. Das P-Register wird auf ADR(I,) gesetzt. Als Ergebnis der Ausführung dieser Instruktion werden normale I/O-Unterbrechungen herausgehalten bis zur ersten Möglichkeit, die dem Abruf der nächsten Instruktion folgt, es sei denn drei oder mehr Indirekt-Niveaus werden benutzt. Diese Instruktion erzeugt normalerweise ein MEMV, wenn sie in PM ausgeführt wird. Wenn jedoch die Systemkarte freigegeben ist, ist sie in PM erlaubt.
Umgrenzung vom A/B-Register laden Mnemonik: LFA, LFB Oktalcode: 101727, 103727 Format:LFA
Lädt das Umgrenzungsregister (Zaun-Register) der Basisseite -vom Α-Register oder B-Register. Die Bits (9-0)
609842/0882
spezifizieren die Adresse auf Seite O, wo der geteilte (untabellierte) Speicher vom reservierten (tabellierten) Speicher abgesondert ist. Bit 10 wird zur Spezifikation des tabellierten Teils benutzt.
Bit 10
Tabellierte Adressen (M) Umgrenzung < M ^ 200O0 ~ ο
M < Umgrenzung
Diese Instruktion erzeugt normalerweise ein MEMV, wenn sie in PM ausgeführt wird. Jedoch wenn die Systemkarte freigegeben ist, ist sie in PM erlaubt. Wenn ein MEMV auftritt, wird die Umgrenzung nicht verändert.
Bytes von der Wechselkarte wegbewegen
Mnemonik: MBF
Oktalcode: 105703
Format: LDA SRC
LDB DST
LDX CNT
MBF
Bewegt eine Byte-Kette unter Benutzung der Wechselkarte für das Lesen von Quellen und unter Benutzung der augenblicklich freigegebenen Karte für das Schreiben von Zielplätzen. Das A-Register enthält die Quellen-Byte-Adresse. Das B-Register enthält die Ziel-Byte-Adresse. Das X-Register enthält die Anzahl der zu bewegenden Bytes. Sowohl Quelle als auch Ziel müssen bei Wortbegrenzungen beginnen. Die Instruktion ist bei einer geraden Zahl von Byte-Übertragungen unterbrechbar, so daß die geraden Wortbegrenzungen in A und B aufrechterhalten werden. Zum Zeitpunkt der Unterbrechung werden A, B und X zurückgestellt, um die Fortsetzung der Instruktion beim nächsten Eingang zu ermöglichen. Nach Abschluß ist das X-Register immer Null; A und B sind gleich
609842/0882
der Originaladresse plus Anzahl der bewegten Bytes. Diese Instruktion kann nur dann ein MEMV hervorrufen, wenn die Regeln des Lese- oder Schreibschutzes verletzt werden.
Bytes in die Wechselkarte einbewegen:
Mnemonik: MBI
Oktalcode: 105 702
Format: LDA SRC LDB DST LDX CNT MBT
Bewegt eine Byte-Kette unter Benutzung der freigegebenen laufenden Karte für das Lesen von Quellen und der Wechselkarte für das Schreiben von Zielplätzen. Das A-Register enthält die Quellen-Byte-Adresse. Das B-Register enthält die Ziel-Byte-Adresse. Das X-Register enthält die Anzahl der zu bewegenden Bytes. Sowohl Quelle als auch Ziel müssen an Wortbegrenzungen beginnen. Die Instruktion ist bei einer geraden Zahl von Byte-Übertragungen unterbrechbar, wodurch die geraden Wortbegrenzungen in A und B aufrechterhalten werden. Zum Zeitpunkt der Unterbrechung werden A, B und X zurückgestellt, um die Fortsetzung der Instruktion beim nächsten Eingang zu erlauben. Nach Abschluß ist das X-Register immer Null; A und B sind gleich der Originaladresse plus der Anzahl der bewegten Bytes. Diese Instruktion bewirkt ein MEMV, wenn sie in PM ausgeführt wird, und keine Bits werden übertragen, wenn dies durch das Schreibschutz-Bit angezeigt wird.
Bytes innerhalb der Wechselkarte bewegen Mnemonik: MBW
Oktalcode: 105704 Format: LDA SRC
LDB DST
LDX CNT
MBW
609842/0882
Bewegt eine Byte—Kette, wobei sowohl die Quellenais auch die Zieladresse durch die Wechselkarte aufgestellt werden. Das Α-Register enthält die Quellen-Byte-Adresse. Das B-Hegister enthält die Ziel-Byte. Adresse. Das X-Register enthält die Anzahl der zu bewegenden Bytes. Sowohl Quelle als auch Ziel müssen bei Wortgrenzen beginnen. Die Instruktion ist bei einer geraden Zahl von Byteübertragungen unterbrechbar, wodurch die geraden Wortbegrenzungen in A und B erhalten bleiben. Zum Zeitpunkt der Unterbrechung werden A, B und X zurückgestellt, um die Fortsetzung der Instruktion beim nächsten Eingang zu ermöglichen. Nach Abschluß ist das X-Register immer Null. A und B sind gleich der Originaladresse plus der Anzahl der bewegten Bytes. Diese Instruktion bewirkt ein MEMV,
• wenn sie in PM ausgeführt wird, und keine Bytes werden übertragen, wenn dies durch das Schreib-
.schutz-Bit angezeigt ist.
Worte von der Wechselkarte bewegen " Mnemonik: MWF Oktalcode: 105706 Format: LDA SRC . LDB DST
- LDX ■ CNT .·■:■.--
■ MWF ' ·
• . "-. .. Bewegt eine Wortserie unter Benutzung der Wechsel-. ... ·."-."· karte für das Lesen von Quellen und der laufenden • ■ Karte-für das Schreiben von Zielen. Das A-Register enthält die Quellenadresse. Das B-Register enthält die Zieladresse. Das X-Register enthält die Anzahl der zu bewegenden Worte. Die Instruktion ist nach jeder Wortbewagung unterbrechbar, zu welchem Zeitpunkt A, B und X zurückgestellt werden, um die Fortsetzung beim nächsten Eingang zu ermöglichen. Nach
609842/0882
Abschluß ist das X-Register immer Null; A und B sind gleich der Originaladresse plus der Anzahl der bewegten Worte. Diese Instruktion kann nur dann ein MEMV bewirken, wenn Lese- oder Schreibschutzregeln verletzt werden.
Worte in die Wechselkarte hineinbewegen.
Mnemonik: MWI
Oktalcode: 105705
Format: LDA SRC LDB DST LDX CNT MWT
Bewegt eine Serie von Worten unter Benutzung der laufenden Karte für das Lesen von Quellen und der Wechselkarte für das Schreiben von Zielen. Das Α-Register enthält die Quellenadresse. Das B-Register enthält die Zieladresse. Das X-Register enthält die Anzahl der zu bewegenden Worte. Die Instruktion ist nach jeder Wortbewegung unterbrechbar, zu welchem Zeitpunkt A, B und X zurückgestellt werden, um die Fortsetzung beim nächsten Eingang zu erlauben. Nach Abschluß ist das X-Register immer Null; A und B sind gleich den Originaladressen plus der Anzahl der bewegten Worte. Diese Instruktion bewirkt ein MEMV, wenn sie in PM ausgeführt wird, und keine Worte werden übertragen, wenn dies durch das Schreibschutzbit angezeigt ist.
Worte innerhalb der Wechselkarte bewegen.
Mnemonik: MWW
Oktalcode: 105707
Format: LDA SRC LDB DST LDX CNT MWW
Bewegt eine Serie von Werten, wobei sowohl die Quellenais auch die Zieladressen durch die Wechselkarte auf-
B 0 9 0 4 2/0882
gestellt werden. Das Α-Register enthält die Quellenadresse. Das B-Register enthält die Zieladresse. Das X-Register enthält die Anzahl der zu bewegenden Worte. Die Instruktion ist nach jeder Fortbewegung unterbrechbar, zu welchem Zeitpunkt A, B und X zurückgestellt werden, um die Fortsetzung beim nächsten Eingang zu ermöglichen. Nach Abschluß ist das X-Register immer Null; A und B sind gleich der Originaladresse plus der Anzahl der bewegten Worte. Die Instruktion bewirkt ein MEMV, wenn sie in PM ausgeführt wird, und keine Worte werden übertragen, wenn dies durch das Schreibschutz-Bit angezeigt ist.
Karte für Zugang A laden/speichern über A/B Mnemonik: PAA, PAB Oktalcode: 101712, 105712
Format: LDA TBL PAA
Überträgt 32 Kartenregister zum oder vom Speicher. Wenn Bit 15 von A/B gelöscht ist, wird die Karte für Zugang A vom Speicher geladen, beginnend mit der Adresse, die in den Bits 14-0 von A/B spezifiziert ist. Wenn Bit 15 von A/B 1 ist, wird die Karte für Zugang A in den Speicher gespeichert, beginnend mit der in A/B spezifizierten Adresse. Das A/B-Register wird um 32 erhöht, um mehrfach Karteninstruktionen zu ermöglichen. Ein Versuch, irgendwelche Kartenregister in PM zu laden, bewirkt ein MEMV. Ein Versuch, die Karte für Zugang A zu laden ist innerhalb der Beschränkungen eines schreibgeschützten Speichers erlaubt.
Karte für Zugang B laden/speichern über A/B Mnemonik: P.BA, PBB Oktalcode: 101713, 105713
Format: LDA TBL PBA
Überträgt 32 Kartenregister zum oder vom Speicher. Wenn Bit 15 von A/B gelöscht ist, wird die Karte für Zugang
B 0 9 8 4 2 / 0 8 8 2
B geladen, beginnend bei der Adresse, die in Bits 14-0 von A/B spezifiziert ist. Wenn Bit 15 von A/B gesetzt ist, wird die Karte für Zugang B in den Speicher gespeichert, beginnend mit der in A/B spezifizierten Adresse. Dieses A/B-Register wird um 32 erhöht, um mehrfach Karteninstruktionen zu ermöglichen. Ein Versuch während PM irgendein Kartenregister zu laden, bewirkt ein MEMV. Ein Versuch die Karte für Zugang B zu speichern, ist innerhalb der Beschränkungen des schreibgeschützten Speichers erlaubt.
Zustandsregister in A/B-Register lesen.
Mnemonik: RSA, RSB Oktalcode: 101730, 105730 Format: RSA
überträgt den 16-Bit-Inhalt des MEM-Zustandsregisters nach A/B. Diese Instruktion kann zu jeder Zeit ausgeführt werden. Das Format des Zustandsregisters ist in Tabelle III aufgelistet.
Verletzungsregister in A/B-Register lesen Mnemonik: RVA, RVB Oktalcode: 101731, 105731 Format: RVA
Überträgt den 16-Bit-Inhalt des MEM-Verletzungsregisters nach A/B. Diese Instruktion kann zu jeder Zeit ausgeführt werden. Das Verletzungsregisterformat ist in Tabelle IV aufgelistet.
Systemkarte freigeben und springen Mnemonik: SJP Oktalcode: 105734 Format: SJD
DEF ADR(,I)
Bewirkt, daß die MEM-Hardware den Satz von 32 Kartenregistern (als Systemkarte bezeichnet) für die Über-
609842/0882
Setzung aller programmierten Speicherzuordnungen benutzt-.Das B-Register wird dann auf die Adresse gesetzt, die aus ADR (,I) vor der Freigabe erhalten wurde. Als Ergebnis der Ausführung dieser Instruktion werden normale I/O-Unterbrechungen bis zur ersten Möglichkeit herausgehalten, die auf den Abruf der nächsten Instruktion folgt, es sei denn, daß drei oder mehr Indirekt-Niveaus benutzt werden. Diese Instruktion erzeugt normalerweise ein MEMV, wenn sie in PM ausgeführt wird. Wenn jedoch die Systemkarte freigegeben ist, ist sie erlaubt und erzeugt effektiv ein JMP +1,1.
Systemkarte freigeben und zur Subroutine springen Mnemonik: SJS
Oktalcode: 105735
Format: SJS
DEF ADR (,I)
Bewirkt, daß die MEM-Hardware den Satz von 32 Kartenregistern (als Systemkarte bezeichnet) für die Übersetzung aller programmierten Speicherzuordnungen benutzt. Das P-Register wird dann auf die Adresse hinter der Adresse gesetzt, die vor der Freigabe aus ADR(,I) erhalten wurde. Die Rückkehradresse wird in ADR(,I) eingeschrieben. Als Ergebnis der Ausführung dieser Instruktion werden normale I/O-Unterbrechungen bis zur ersten Möglichkeit herausgehalten, die dem Abruf der nächsten Instruktion folgt, es sei denn, es werden drei oder mehr Indirekt-Niveaus benutzt. Diese Instruktion erzeugt normalerweise ein MEMV, wenn sie in PM ausgeführt wird. Wenn jedoch die Systemkarte freigegeben ist, ist sie erlaubt und erzeugt effektiv ein JSB +1,1.
Zustandsregister im Speicher speichern
Mnemonik: SSM
B0 9342/U882
Oktalcode: 105714 Format: SSM
DEF STS (> I)
Speichert den 16-Bit-Inhalt eines MEM-Zustandsregisters in den Speicherplatz, auf den durch STS(,I) gezeigt wird. Diese Instruktion wird in Verbindung mit der JRS-Instruktion benutzt, um eine leichte Verarbeitung von Unterbrechungen zu ermöglichen,die immer die Systemkarte freigeben (wenn MEM freigegeben ist). Das Format des Zustandsregisters ist in Tabelle III aufgelistet. Diese Instruktion kann nur dann ein MEMV bewirken, wenn Schreibschutzregeln verletzt werden.
Systemkarte laden/speichern über A/B Mnemonik: SYA, SYB Oktalccde: 101710, 105710
Format: LDA TBL SYA
Überträgt 32 Kartenregister zum oder vom Speicher. Wenn Bit 15 von A/B gelöscht ist, wird die Systemkarte vom Speicher geladen, beginnend mit der Adresse, die in Bits 14-0 von A/B spezifiziert ist. Wenn Bit 15 von A/B gesetzt ist, wird die Systemkarte in den Speicher geladen, beginnend mit der in A/B spezifizierten Adresse, MEM bietet keinen " Schutz (wenn nicht in PM) gegen Änderung des Inhalts der Karten, während sie gerade freigegeben sind. Das A/B-Register wird um 32 erhöht, um vielfach Karteninstruktionen zu ermöglichen. Ein Versuch, irgendeine Karte in PM zu laden, bewirkt ein MEMV. Ein Versuch, die Systemkarte zu speichern, ist innerhalb der Beschränkungen des ächreibgeschützten Speichers erlaubt.
Benutzerkarte freigeben und springen Mnemonik: UJP Oktalcode: 105736
6 09842/0882
Format: UJP
DEF ADR (ν I)
Bewirkt, daß die MEM-Hardware den Satz von 32 Kartenregistern (als Benutzerkarte bezeichnet) zur Übersetzung aller programmierten Speicherzuordnungen benutzt. Das P-Register wird dann auf die Adresse gesetzt, die aus ADR(I) vor der Freigabe erhalten wurde. Als Ergebnis der Ausführung dieser Instruktion wird eine normale I/O-Unterbrechung bis zur ersten Gelegenheit herausgehalten, die auf den Abruf der nächsten Instruktion folgt, es sei denn drei oder mehr Indirekt-Niveaus werden benutzt. Wenn die Benutzerkarte schon freigegeben ist, wird die Instruktion zu einem JMP +1,1. Diese Instruktion erzeugt normalerweise ein MEMV, wenn sie in PM ausgeführt wird. Wenn jedoch die Systemkarte freigegeben ist,, ist sie in PM erlaubt.
Benutzerkarte freigeben und zur Subroutine springen Mnemonik: UJS
Oktalcode: 105737
Format: UJS
DEF (ADR (,I)
Bewirkt,daß die MEM-Hardware den Satz von 32 Kartenregistern (als Benutzerkarte bezeichnet) für die Übersetzung aller programmierten Speicherzuordnungen benutzt. Das P-Register wird dann auf die Adresse gesetzt, die hinter der Adresse liegt, die vor der Freigabe von ADR(,I) erhalten wurde. Die Rückkehradresse wird in ADR(,I) eingeschrieben. Als Ergebnis der Ausführung dieser Instruktion werden normale I/O-Unterbrechungen bis zur ersten Gelegenheit herausgehalten, die dem Abruf der nächsten Instruktion folgt, es sei denn drei oder mehr Indirekt-Niveaus werden benutzt. Wenn die Benutzerkarte schon freigegeben ist, wird die Instruktion zu einem JSB +1,1. Diese Instruktion
6 0 9842/0882
erzeugt normalerweise ein MEMV, wenn sie in PM aufgeführt wird. Wenn jedoch die Systemkarte freigegeben ist/ ist sie in PM erlaubt.
Benutzerkarte laden/speichern Mnemonik: USA, USB Oktalcode: 101711, 105711
Format: LDA TBL USA
überträgt 32 Kartenregister zum oder vom Speicher. Wenn Bit 15 von A/B gelöscht ist,wird die Benutzerkarte vom Speicher geladen, beginnend mit der Adresse, die in Bits 14-0 von A/B spezifiziert ist. Wenn Bit 15 von A/B gesetzt ist, wird die Benutzerkarte in den Speicher gegeben, beginnend mit der in A/B spezifizierten Adresse. MEM bewirkt keinen schutz ( wenn nicht in PM) gegen Änderung des Inhalts der Karten, während sie gerade freigegeben sind. Das A/B-Register wird um 32 erhöht, um vielfach Karten-Instruktionen zu ermöglichen. Ein Versuch, irgendeine Karte während PM zu laden, bewirkt ein MEMV. Ein Versuch, die Benutzerkarte zu speichern, ist innerhalb der Beschränkungen des lesegeschützten Speichers erlaubt.
Kreuzung vergleichen Mnemonik: XCA, XCB Oktalcode: 101726, 105726 Format: XCA DEF ADR (, I)
Vergleicht den Inhalt des A/B-Registers mit einem zweiten Operanden im Speicher. Wenn sie gleich sind, wird die nächste Instruktion in numerischer Reihenfolge ausgeführt. Wenn sie nicht gleich sind, wird die nächste Instruktion übersprungen. Der zweite Operand wird dadurch erhalten, daß ADR(,I) aufgelöst wird und die Wechselkarte für die Leseoperation be-
609842/0882
V R11 ζ 9
nutzt wird, Wenn weder die Systemkarte norhtdie Benutzerkarte freigegeben ist{Zustand MEM gesperrt) erfolgt ein direkter Vergleich mit dem physikalischen Speicher. Diese Instruktion erzeugt ein MEMV nur dann, wenn Leseschutzregeln verletzt werden.
Kreuzung laden Mnemonik: XLA, XLB Oktalcode: 1O17247 105724 Format: XLA
DEF ADRCD
Lädt das A/B-Register vom Speicher. Der Operand wird dadurch erhalten, daß ADR(,I) aufgelöst wird und die Wechselkarte für die Leseoperation benutzt wird. Wenn weder die Systemkarte noch die Benutzerkarte freigegeben ist (d.h. Zustand MEM gesperrt) erfolgt eine Ladung direkt vom physikalischen Speicher. Diese Instruktion erzeugt ein MEMV nur dann, wenn Leseschutzregeln verletzt werden.
Karten intern übertragen über A/B Mnemonik: XMA, XMB Oktalcode: 101722, 105722
Format: LDA CTL XMA
überträgt den gesamten Inhalt (32 Kartenregister) der Systemkarte oder Benutzerkarte zur Karte für den Zugang A oder zur Karte für den Zugang B entsprechend der Festlegung durch das Steuerwort im A/B-Register.
Bit Bedeutung
15 System/Benutzer (0/1)
0 Zugang A/Zucang B (0/1)
14-1 Ignoriert
609842/0882
Diese Instruktion erzeugt immer ein MEMV, wenn sie während PM ausgeführt wird.
Karte oder Speicher übertragen
Mnemonik: XMM
Oktalcode: 105720
Format: LDA FST
LDB TBL
LDX CNT
XMM
. Überträgt (CNT) die Anzahl der Worte entweder von aufeinanderfolgenden Speicherplätzen zu aufeinanderfolgenden Kartenregistern oder von Karten zum Speicher. Bits 0-9 des Speichers entsprechen 0-9 der Karte und Bits 14, 15 des Speichers sind bezogen auf Bits 10, 11 der Karte.
SPEICHER
KARTE
15 14 X / X 9 0
10 9
Das A-Register zeigt auf das erste Register, zu dem Zugriff genommen werden soll. Das B-Register zeigt auf die Startadresse der Tabelle im Speicher.
127
Zugang B
Zugang A
Benutzer
System
96 95 64 63 32 31 0
Die Karten werden als aneinanderstoßender Raum adressiert. Ein Umwickeln von 127 bis 0 kann auftreten
60984 2/0882
und tritt auch auf. Der Programmierer ist dafür verantwortlich, daß dieser Fehler vermieden wird. Das X-Register zeigt die Anzahl der Kartenregister an, die übertragen werden sollen (1 ^c JCNTJ ^ 128) . Eine positive Zahl in X bewirkt, daß die Karten mit den zugehörigen Daten vom Speicher geladen werden soll. Eine negative (Zweier-Komplement) Zahl in X bewirkt, daß die Karten in die zugehörigen Speicherplätze gespeichert werden. Die Instruktion ist nach der Übertragung von jeder Gruppe von 16 Registern unterbrechbar. A, B und X werden zurückgestellt, um eine erneute Eingabe zu einem späteren Zeitpunkt zu ermöglichen. Das X-Register ist bei Abschluß dieser Instruktion immer Null. A und B werden um die Anzahl der bewegten Register vorgeschoben. Ein Verusch, irgendein Kartenregister in PM zu laden, erzeugt ein MEMV. Ein Versuch Kartenregister zu speichern ist innerhalb der Einschränkungen des schreibgeschützten Speichers erlaubt.
Karten aufeinanderfolgerfi. übertragen Mnemonik: XMS
Oktalcode: 105721
Format: LDA FST LDB TBL LDX CNT XMS
überträgt (CNT) die Anzahl von Worten entweder zu aufeinanderfolgenden Kartenregistern zu aufeinanderfolgende Speicherplätzen. Das Α-Register zeigt auf das erste Register, zu dem Zugriff genommen werden soll. Das B-Register zeigt auf die Startadresse der Tabelle im Speicher. Das X-Register zeigt die Anzahl der Kartenregister an, die betroffen sind. Eine positive Größe bewirkt, daß das im Speicherplatz TBL gefundene Wort als Grundmenge zum Laden in das erste Register benutzt wird. Das nächste Register wird mit
6098 42/0882
, J?e 11538
(CNTT bis
der Grundmenge plus eins geladen usw zur Gesamtzahl der Register. Wenn jedoch X eine negative Größe enthält, werden die Kartenregister zu aufeinanderfolgenden Speicherplätzen auf einer eins-zu-eins Basis wie in XMM übertragen, beginnend mit Speicherplatz TBL. Bits 0-9, 14, 15 werden benutzt wie in XMM beschrieben. Ein Versuch während PM irgendein Kartenregister zu laden, erzeugt ein
MEMV. Ein Versuch Kartenregister zu speichern ist innerhalb der Beschränkungen des schreibgeschützten Speichers erlaubt.
Kreuzung speichern Mnemonik: XSA, XSB Oktalcode: 101725, 105723 Format: XSA DEF (ADR (,I)
Speichert den Inhalt des A/B-Registers in den Speicher. Das Ziel wird durch Auflösen von ADR(,I) und Benutzung der Wechselkarte für die Schreiboperation bestimmt. Wenn weder die Systemkarte noch die Benutzerkarte freigegeben ist (d.h. Zustand MEM gesperrt) erfolgt eine Speicherung direkt in den physikalischen Speicher. Diese Instruktion erzeugt immer ein MEMV, wenn sie während PM ausgeführt wird.
6 0 9 8 4 2/0882
ANHANG B
MIKRO SsiSTJRUKT IONSFORMATE UND AUSFÜHRUNG
Dieser Abschnitt enthält eine Beschreibung der Form der Mikroinstruktioiis-Worttypen und eine Beschreibung von Form und Wirkung jedes Mikroinstruktionsfeldes innerhalb eines Worttyps.
Ein Diagramm der Form jedes Worttyps befindet sich in Tabelle V. Tabelle VI zeigt die binäre und mnemonisehe Form jedes Feldes der Mikroinstruktionsworte.
Worttyp 4
Worttyp 4 führt unbedingte Sprünge oder Subroutinensprünge zu jedem P-latz in dem Festwertspeicher (ROM)-Adressenraum aus. Die einzige Differenz zwischen JMP und JSB besteht darin , daß JSB die Ladung des Halteregisters bei P 2 bewirkt. Bei P2 wird RAR mit der 12-Bit-Adresse geladen, die in Bits 16-5 spezifiziert ist. Die Adresse wird jedoch vor dem Laden durch eines der acht Tabellierungssehernen modifiziert, die durch das Spezialfeld festgelegt sind.
Worttyp 4 wird durch das Vorhandensein von JMP oder JSB im OP-FeId festgelegt, sowie durch die Anwesenheit irgendeines Spezialfeldcodes mit Ausnahme von CNDX. Die Spezifizierung von JTAB, RTN oder eines anderen Spezialfeldcodes, der mit ~110„ oder -011 endet, führt nicht zu einem direkten JMP oder JSB, sondern lädt die JTAB- oder RTN-Adresse. Dies beruht auf der Natur des Adressen-Tabellierungsschemas, welches weiter unten beschrieben ist.
Die drei Bits niedriger Ordnung des Spezialfeldes (RIR2-RIR0) steuern dauernd die ROM-Adressenmultiplexer, die ein von acht möglichen Quellen auswählen und sie dem Eingang von RAR zuführen. DieserAufbau dient dazu, daß verschiedene Typen von indizierten Sprüngen und Rückkehr von Subroutinen verwendet werden können.
, 6 09842/0882
WORTTYP
TABELLE V
CPU MIKROINSTRUKTIONSFORMATE
S-SAMMEL-OP CODE ALU SCHIENE SPEICHERN SPEZIAL
23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 ο
JEDE OP
AUSSER JMP
JSB, IMM
JEDE ALU
JEDES S-FELD
JEDES
SPEICHERFELD
JEDER NICHT-S>RUNG SPEZIAL
IMM
PO C1
UO L1
OPERANDENFELD
JEDES
SPEICHERFELD
JEDER NICHTSPRUNG SPEZIAL
JMP
JEDE BEDINGUNG
= O
RJS
ADRESSE
(9 BITS)
CNDX
JMP JSB
ADRESSE
(12 BITS)
JEDER SPRUNG SPEZIAL
ABER CNDX
Anmerkung:
Worttyp 2 Bit 19: Wenn Null, ALU läßt anderes Einer-Komplement durch.
Bit 18: Wenn Null, oberes Byte anderes urteres Byte.
Worttyp 3 Bit 14: Wenn Null, dann umgekehrten Sprung
erfassen
6 0 9842/0882
Tabelle VI MIKROINSTRUKTIONS-MNEMONIKEN
BITS POS. 20-23 0-4
BINÄR OP (4) SPEZIAL(5)
,cc co, J> rc
CD CO OO
00000 NOP IOFF
00001 ARS SRG 2
00010 CRS Ll
00011 LGS L4
00100 MPY Rl
00101 DIV ION
00110 LWF SRGl
00111 WRTE RES2
01000 ASG STFL
01001 READ CLFL
01010 ENV FTCH
01011 ENVE SOV
01100 JSB COV
01101 JMP RPT
OHIO IMM SRGE
01111 (BLANK) NOP
10000 MESP
10001 MPCK
10010 IOG
10011 ICNT
15-19 15-19 10-14
ALU (5) BEDINGUNG(5) S-SAMMEL
SCHIENE (5)
INC TBZ TAB
OPl ONES CAB
OP 2 COUT T
ZERO AL0 CIR
0P3 AL15 ΙΟΙ
0P4 NMLS CNTR
SUB CNT 8 DSPL
0P5 FPSP DSPI
OP 6 FLAG ADR
ADD E M
0P7 OVFL B
OP 8 RUN A
0P9 NHOI LDR
ΟΡΙΟ SKPF RES 2
OPH ASGN MEU
DEC IR2 NOP
CMPS NLDR Sl
NOR NSNG S2
NSAL NINC S3
0P13 NDEC S4
5-9 18-19 SPEICHERN(5) IMM(2)
TAB
CAB
100
CNTR
DSPL
DSPI
IR
MEU
CM
PNM
NOP
Sl
S"2
S3
S4
HIGH LOW CMHI CMLO
CD
cn
CO QO
O CD CO
CD OO OO
BITS POS. 20-23 0-4 15-19 15-19 10-14 5-9 18-19
BINÄR 0P(4) SPEZIAL(5) ALU(5) BEDINGUNG(5) S-SAMMEL
SCHIENE (5)
SPEICHERN(5) IMM (2)
10100 SHLT NAND NRT S5 S5
10101 INCI CMPL NLT se S6
10110 RESl XOR NSTR S7 S7
10111 SRUN SANL NRST S8 S8
11000 UNCD NSOL NSTB S9 S9
11001 CNDX XNOR NSFP SlO SlO
11010 JIO PASL INT SIl SIl
11011 JTAB AND SRGL S12 S12
11100 J74 ONE RUNE X X
11101 J30 SONL NOP Y Y
11110 RTN I OR CNT 4 P P
11111 JEAU PASS NMEU S S
CT\
Tabelle VII CPU-Mikroinstruktion
Etikett Op Spezifikation ALU Speichern S-Sammel-
Schiene
Zustands-
Befehl
(ά -.ο MESP d MEU MEU : Q
ld d MESP d MEU $ Ql
Si MESP $ MEU Q2
id d MESP !d S $ Q3
id 'd * d MEU MEU Q4
(θ & d MEU S Q5
id ii is d $ MEU 6
id vd ά d ■cn $ ! Q-7
d - jeder erlaubte Code Ä - jeder erlaubte Code mit Ausnahme von MESP $ - jeder erlaubte Code mit Ausnahme von MEU
Wort Typ 3
Wort Typ 3 unterscheidet sich durch JMP im OP-FeId und CNDX im Spezialfeld. RAR8-RAR0 werden während P2 mit der Adresse geladen, die in RIR13-RIR5 (RAR11-RAR9 unverändert) spezifiziert ist, wenn die Bedingung eintrifft, die in den Bedingungs- und RJS {Rückwärtssprung feststellen)-Feldern spezifiziert ist (siehe Abschnitt über Bedingungslogik). Wenn RJS (RIR14) 0 ist, wird JMP genommen, wenn die Bedingung nicht eintrifft. ..
Im folgenden werden die Bedingungs-Feld-Mnemoniken beschrieben. Diese sind sorgfältig zu lesen, da einige Bedingungen eintreffe wenn das getestete Signal falsch ist. Die Bedingung, die bewirkt, daß JMP auftritt (für RJS = 1) wird nach der Bedingungs-
609842/0882
feld-Mnemonik definiert. Der tatsächliche Signalname, der in die Bedingungslogik auf der CPU eingegeben wird, ist in Klammern angegeben, wenn er von der Mnemonik des Mikroinstruktionsfeldes abweicht.
Bedingungsmnemoniken
TBZ CTBZF) Die T-Sammelschiene war 000000g nach dem letzten
Worttyp 1 oder 2 μ-Instruktion.
ONES (ONESF) Der Ausgang von ALU war 177777g nach dem letzten
Worttyp 1 oder 2 μ-Instruktion. COUT (COUTF) Es war ein Austrag aus der ALU aufgetreten nach
dem letzten Worttyp 1 oder 2 μ-Instruktion. ALO (ALUOF) ALU Bit 0 war 1 nach dem letzten Worttyp 1 oder
2 μ-Instruktion.
AL15 (ALU15F)ALU Bit 15 war 1 nach dem letzten Worttyp 1 oder
2 μ-Instruktion.
NMLS (MLSTF) Leistungszufuhr zum Speicher war nicht ausgefallen (Bedingung nicht eingetroffen nach einem Netzausfall mit Verlust der Energiezufuhr zum Speicher). Der Speicher sollte bei Zutreffen in Ordnung sein.
CNT8 Zählerausgang 1111111I2.
FPSP Sondertest für Frontplatte. Kein Sprung für Standardfrontplatte. Signal geerdet auf der Standardfrontplatte.
FLAG (FLAGFF)Marken-Flipflop gesetzt.
E (EXFF) Ausweitungsflipflop gesetzt.
OVFL (OVERFF) Überlauf-Flipflop gesetzt.
RUN (RUNFF) Lauf-Flipflop gesetzt.
NHOI(HOI) Keine schwebende Unterbrechung und Lauf-Flipflop
gesetzt.
SKPF Eine I/O Instruktions-Überspringungsbedingung
(SFS, SFC) traf ein. Eingetroffen nur während
I/O Steuertyp Instruktionen.
ASGN (ASGNj Mikro-Instruktions-Überspringbedingung trifft zu, wenn ASG-Instruktions-Überspringbedingung nicht zutrifft. Nur von Bedeutung bei Ausführung von ASG-Instruktionen. ASGN ist niedrig, wenn
609842/0882
die Bedingungen für ein ASG-Überspringen zutreffen.
Für ASG-Instruktionen sind die IR-Bits, die die Überspringtests spezifizieren:
IRO: RSS — Rückwärtssprung Erfassung IRl: SZ(A/B) — Überspringen, wenn A/B-Register null ist.
IR2: IN(A/B) — A/B-Register erhöhen. IR3: SL(A/B) — Überspringen, wenn Bit mit dem niedrigsten Stellenwert (Bit 0) von A/B null ist.
IR4: SS(A/B) — Überspringen, wenn Vorzeichenbit (Bit 15) von A/B null ist. IR5: SEZ — Überspringen, wenn Erweiterungsbit null ist.
ASGN testet alle Überspringungsbedingungen gleichzeitig. Es gibt so zwei Bedingungen, die bewirken, daß der SZ(A/B)-Test erfolgreich ist: Entweder ist IN(A/B) auszuführen und das A/B-Register ist auf allen Stufen 1, oder (IN(A/B) ist nicht auszuführen und das A/B-Register ist durchgehend null.
Die Gleichung für die Überspringung (ASGN ist
niedrig) ist dann: SKIP (ASGN niedrig) = ((TBZF-
IR2+ONESF-IR2) OIR0) *IR1 + (EXFFOIR0)· IR5 + MULTIPLEXER SKIP
Das Ausgangssignal des ASG-Multiplexers zeigt eine Überspringung gemäß den folgenden Kombinationen von IR4, IR3 und IRO:
B0 9842/0882
IR4
(SS")
IR3
(SL*)
IRO
(RSS)
Überspringung
erzeugende
; Bedingung
1
0

0
0 KEINE
0 0 1 IR5·IRI
0
0
1
1
0
1
ALU0F
ALUOF j
1
1
0
0
0
1
ALU15F
ALU15F
1
1
1
1
0
1 i
ALU0F+ALU15F
ÄLU0F·ALU15F _
IR Bit 2 ist "hoch".
Die folgenden 8 Mnemoniken testen den Zustand der Druckknöpfe auf der Frontplatte. Die Bedingungen treffen zu, wenn die Knöpfe nicht gedrückt sind.
NLDR(IBL): IBL Knopf
NSNG(INSTEP) : NINC(INCM) : NDEC(DECM):
NRT(RIGHT) NLT(LEFT) NSTR(STORE):
NRST(DISPLAY)
INSTR SCHRITT Knopf INC M Knopf DEC M Knopf RECHTER Knopf LINKER Knopf Knopf SPEICHERN :ANZEIGE Knopf
NSTB (STROBE)
NSFP (SFP)
INT
SRGL
Kein Druckknopf auf der Frontplatte gedrückt. Keine Standardfrontplatte installiert.
SFP wird durch die Standardfrontplatte geerdet. Unterbrechung, Service wird erwartet. IR3 ist "1" und das ALU-Bit 0 war 1 hinter dem letzten Worttypl oder 2 μ-Instruktion. Benutzt als Teil der SRG-Routine für Test auf Überspringungsbedingung.
6Ü9842/Ü882
RUNE (RUNEN) Taste für den Benutzerschlüssel ist nicht
in der Stellung "ABGESCHLOSSEN".
HOP(GROUND) Springen wenn RJS = O
CNT4 Die.4 Bits niedriger Ordnung des Zählers
sind
NMEU Spezielle Bedingung die für die Benutzung
durch Speicherverwaltung reserviert ist.
Worttyp 2
Dieser Typ von Makroinstruktionen ist durch IMM im OP-FeId unterschieden. Das 8-Bit Zeichen in RIR17-RIR10 wird auf die S-Sammelschine geschaltet und in dem Register gespeichert, welches im Speicherfeld am Ende des Instruktionszyklus spezifiziert ist.
RIR18 spezifiziert ob das Zeichen auf die hohen CO) oder niedrigen (1) 8 Bits der S-Sammelschiene gegeben werden soll. Die andere Hälfte der S-Sammelschiene besteht aus Einsen, wenn sie nicht durch irgendwelche Gatterschaltungen angesteuert wird. RIR19 spezifiziert, die S-Sammelschiene durch die ALU einer-komplementiert wird (RIR19 = 1) oder durchgelassen wird (RIR19 = O)."Wenn das Speicherfeld ein Register spezifiziert, das aus der S-Sammelschiene herausgeladen wird, können die Daten nicht komplementiert werden, bevor sie im Register gespeichert werden. (Die ALU komplementiert jedoch noch.) Das Spezialfeld wird ausgeführt wie in den Mikroinstruktionen des Worttyps 1.
Worttyp 1 ,
Dieser Mikroinstruktiohstyp wird zur Durchführung aller arithmetischen, logischen, I/O und Speicheroperationen benutzt/ sowie zur Verwaltung der Kommunikation zwischen speziell wählbaren Betriebsweisen, wie Speicherschutz und Speicherverwaltüng.
6098 42/0 882
Die in OP, ALU und Spezialfeldern spezifizierten Signale werden am Ausgang der Felddekoder während des Mikroinstruktionszyklus geltend gemacht. Sie sind so getaktet oder geschaltet, daß sie mit dem System richtig zusammenwirken.
Während PO-P2 sind RIR10-RIR13 des S-Sammelschienen-Feldes zur Adressierung der "Radierblock"-RAMS. Die Ausgangssignale der RAMS werden am Ende von P2 in das Halteregister gegeben. Diese Daten werden auf die S-Sammelschiene gegeben, wenn RIR14 "hoch" ist. RIR14 = 1 in der S-Sammelschiene bestimmt, daß die S-Sammelschiene durch die "Radierblock"-Register (S1-S12, X, Y, P und S) angesteuert werden. RIR14=14 in der S-Sammelschiene wählt eines der diskreten Register aus, um es auf die S-Sammelschiene zu schalten.
Wenn ein Zeitgabe- oder Quellenkonflikt entsteht, wird das Flipflop FRZ (einfrieren) am Ende von P2 gesetzt, wodurch die meisten CPU-Takte gesperrt werden, was ein "Einfrieren" der Mikroinstruktion bewirkt und sie vor der Vervollständigung bewahrt. Das Flipflop FRZ wird am Ende von P2 zurückgestellt, folgend auf das Ende des Konflikts, und die Instruktion kann angeschlossen werden.
Während Zyklen direkten Speicherzugriffs ist DMAFRZ während T3 niedrig. Dieses Signal hemmt den S-Sammelschienen-Feld-Dekoder und hindert die CPU an der Ansteuerung der S-Sammelschiene, so daß DCPC diese benutzen kann. Wenn nicht ein Worttyp 3 oder 4 zu dieser Zeit ausgeführt wird, wird der Prozessor für einen Zyklus eingefroren.
Während P3-P5 sind RIR8-RIR5 so gewählt, daß sie die "Radierblock" -RAMs adressieren, das Register auszuwählen, in das die T-Sammelschiene gespeichert werden soll. Das Speicherfeld wird durch JORJ gesperrt, wenn JMP oder JSB im OP-FeId auftritt, wodurch ungewählte Registeränderungen verhindert werden.
609 8k2/0882
Bei P5 wird das ausgewählte Register mit den Daten an seinen Eingängen geladen. RAMWEN ist während P5 niedrig, um die T-Sammelschiene in die "Radierblöcke" zu laden, wenn RIR9=1 oder wenn PNM im Speicherfeld spezifiziert ist. Es wird daran gehindert, niedrig zu werden, während die CPU eingefroren ist, während JMP oder JSB im OP-FeId oder wenn eine Speicherschutzverletzung (MPV) auftritt und das P-oder S-Register durch RIR8-RIR5 ausgewählt ist. ·
Das Spezialfeld wird solange bedingungslos dekodiert, wie die Mikroinstruktion im RIR ist. Dekoder-Ausgänge werden für eine Vielfalt von Steuerfunktionen benutzt und werden zu verschiedenen Zeitperioden benutzt.
Mikro-Befehle
Dieser Abschnitt enthält eine detaillierte Beschreibung der Funktion bzw. der Wirkung jeder Mikroinstruktions-Mnemonik, ausgenommen für Bedingungsfelder und die Sprung-Spezialbefehle. Zunächst wird die Mnemonik angegeben, dann der CPU Signalname davon in Klammern und schließlich eine Beschreibung der Wirkung.
OP-FeId
NOP ( ) Keine Verbindung an der CPU. Keine Wirkung.
ARS (ARSOP) Arithmetische 32-Bit-Verschiebung. Die Mikroinstruktion muß die folgende Form haben:
i ARS
PASS
Ll OR Rl
OP ALU S-Sammel- Speichern SPEC
Schiene
a) Wenn Ll: ASl=I, ASO=O, was das A-Register um 1 nach links verschiebt. Das B-Register wird durch die ALU hindurchgelassen und durch den Schieber (TBSl-O, TBSO=I), um 1 nach links verschoben, mit ALX14=ALU15 und LSI=AR15,
BO 9 8 A 2/Q8 8 2
Die T-Sammelschiene wird dann ins B-Register gespeichert, überlauf wird gesetzt, wenn ALU14 f ALU15 (Zeichen ψ original B-Register-Bit-14). Die Wirkung ist unten gezeigt. Wenn Rl: ASl=O, ASO=I, was das Α-Register um nach rechts verschiebt, wobei B-Register 0 -»· A-Register 15. A-Register 0 geht verloren. Das B-Register wird durch die ALU durchgelassen und durch den Schieber (TBSO=O, TBSl=O) um 1 nach rechtsverschoben, wobei ALX16=ALU15 (Zeichen erweiterte Verschiebung). Die T-Sammelschiene wird dann in das B-Register gespeichert. Die Wirkung ist im folgenden gezeigt:
ARS mit Ll:
L5
14
13
B-REG
L5
B-REG 1
1514 A-REG
ASHI=O
A-REG
ARS mit Rl:
L514
B-REG
L5
14 B
B-REG
A-REG Il IO l 1
\\VERLOREN
1514! A-REG !θ
CRS (CRSOP) Zirkulare 32-Bit-Verschiebung. Anforderungen:
■CRS
PASS
Ll OR Rl
OP
ALU S-Sammel- Speichern SPEC Schiene
a) Wenn Ll: ASl=I, ASO=O, was das A-Register um 1 nach links verschiebt, wobei ARO-ASHI = ALU15. Das B-Register wird durch die ALU hin-
60 9 842/0882
hindurchgelassen und im Schieber (TBSl=O, TBSO=I) nach links verschoben, wobei ALX14= ALU14 und LSI=AR15. Die T-Sammelschiene wird zurück ins B-Register gespeichert.
b) Wenn Rl: ASl=O, ASO=I, was das Α-Register um
eins nach rechts verschiebt, wobei AR15«-B-Register 0. B wird durch die ALU hindurchgelassen und dann nach rechts verschoben (TBS0=O, TBSl=O), wobei ALX16=ARO. Die T-Sammelschiene wird zurück ins B-Register gespeichert.
CRS mit Ll:
B-REG O
X
4i
B-REG
CRS mit Rl:
1514
L5 B-REG 1 0
B-REG
14
A-REG
ASHI
A-REG
L5
A-REG
AXL16
L514
A-REG
1 i 0
Ii
LGS CLGSOP) Logische 32-Bit-Verschiebung. Anforderungen:
LGS
PASS
Ll OR Rl
OP
ALU
S-Sammel- Speichern SPEC Schiene
Die Operation ist ähnlich CRS, ARS (oben)
a) Ll: Wenn B im Schieber verschoben wird,
gilt ALX14=ALUle, LSI=AR15. ASHI schiebt 0 ins A-Register.
609842/0882
b) Rl: Wenn B im Schieber verschoben wird, ist ALX16=O, Α-Register 15-B-Register 0.
LGS mit Ll:
1514
B-REG 10
VERLOREN
B-REG
LGS mit Rl:
B-REG
ALX 16=^.0
JJ
B 14 A-REG 0
LSI/
B M B-REG O
A-REG
A-REG
ASHI=O
10
B A-REG Φ
_}
MPY (MPYOP)
Multiplikationsschritt. Normalerweise in einer Wiederholungsschleife als Teil eines Multiplikationsalgorithmus benutzt. Erfordernisse für richtige Operation:
MPY ADD B B Rl
OP
ALU S-Sammel- Speichern SPEC Schiene
Das Α-Register wird intern nach rechts verschoben, AR15-ALU0. Das B-Register wird auf die S-Sammelschiene geschaltet. Die ALU addiert die S-Sammelschiene zum L-Register, wenn A-Register-Bit-0 eine Eins ist und läßt die S-Sammelschiene durch, wenn S null ist. Das Ausgangssignal der ALU wird um eins nach rechts verschoben, wobei ALX16=COUT (Austragung von ALU) ist. Dies wird zurück ins B-Register über die T-Sammelschiene gespeichert.
609842/0882
15 L-REG
Oi
B-REG
!_ S-Sammel^.
!" Schiene
ALU
\ Addiere Verriegelung + B /
\ wenn A-REG 0=1, andern- /
\falls B durchlassen /
3-REG
Ol
A-REG
Γ"
interne
Verschie
bung
i__T-Sammel-_ , Rotation^il" Schiene V. Verschie
J1314J A-REG j θ!
DIV (DiVÖP)
16 Wiederholungen führen die Funktion B+A'L aus und lassen das Ergebnis im B- und A-Register, wobei das Bit mit dem niedrigsten Stellenwert im A-Register 0 und das Bit mit dem höchsten Stellenwert im B-Register 15 ist,
Divisionsschritt. Normalerweise in einer Wiederholungsschleife als Teil eines Divisionsalgorithmus benutzt, Erfordernisse für richtige Operation:
DIV
SUB
Ll
OP
ALU S-Sammel- Speichern
Schiene
SPEC
Das A-Register wird intern um eins.nach links verschoben, wobei ASHI=COUT (Austrag von ALU). Die ALU subtrahiert das L-Register vom B-Register. Das Resultat wird im Schieber um eins nach links verschoben, wobei ALX14=ALU14 und LSI=AR15. Wenn COUT=I (kein"Leihen"), wird dieses Resultat über die T-Sammelschiene ins B-Register gespeichert. Wenn COUT=O ("Leihen"), wird das B-Register intern nach links verschoben (Subtraktion wird effektiv nicht durchgeführt) , wobei B-Register-Bit O4-AR15. 609842/0882
Sechzehn Wiederholungen dieser Instruktion bewirken (B,A) -rL=Quotient in B, Rest in A, wobei angenommen ist, daß (B,A) eine positive Zahl repräsentiert.
15 L-REG
15 B-REG !o} IBM.
' S-Sammel-'"
J Schiene
A-REG 1Qi
ALU
^Verriegelung von B subtrahier 14 10
Interne
Verschief
bung
Eingang verschieben wenr COUT=0
15 A-REG
Interne Verschiebung wenn COUT=0
LWF (LWFOP) Mit Marke verbinden. Wenn Ll oder Rl im
Spezialfeld spezifiziert ist, wird das Marken-Flipflop mit der ALU verbunden, wodurch eine 17-Bit-Rotation durch die R/S-Logik erfolgt. Für Ll ist LSI=FLAGFF und FLAGFF<-ALUl5. Für Rl ist ALXIo=FLAGFF und FLAGFF*ALU0.
WRTE (WRTEOP) Wenn der Speicher im Betrieb ist, wenn WRTEOP
überstrichen auftritt (REFRESH oder MSRDY oder
DMALO niedrig), wird die CPU "eingefroren" t bis der Speicher frei ist. Dann wird am Ende des nächsten P5 das Schreib-Flipflop gesetzt. Das Schreib-Flipflop wird beim folgenden P2 zurückgestellt. Setzt einen Schreibzyklus im Speicher in Gang. Das T-Register sollte in der gleichen Instruktion geladen werden, in welcher WRTE K09842/0882
spezifiziert ist, da DCPC den T-Registerinhalt zerstören könnte, wenn es eher geladen worden wäre.
ASG (ASGOP)
READ (READOP) ENV (ENVOP)
ENVE (ENVEOP)
Während ASG-Instruktions-Routinen benutzt. Setzt, löscht, komplementiert das Erweiterungsflipflop entsprechend der Kombination von IRfj, IR7. Löscht außerdem das L-Register während P5, so daß die Überlauf/Erweiterungs-Logik während Erhöhungen richtig arbeitet.
Wenn der Speicher arbeitet, wenn READOP
auftritt (REFRESH oder MSRDY oder
DMALO niedrig), wird die CPU "eingefroren", bis der Speicher frei ist. Dann wird am Ende vom nächsten P5 das Lese-Flipflop gesetzt. Es wird beim folgenden P2 zurückgestellt. Dadurch wird ein Lesen vom Speicher eingeleitet. Das M-Register muß vor oder während der Instruktion mit READ im OP-FeId geladen werden. Die Daten müssen genau zwei Instruktionszyklen nach READ aus dem T-Register entfernt werden, anderenfalls könnte DCPC den Inhalt des T-Registers zerstören und der Speicher sperrt T nach dieser Zeit.
Gibt die überlauflogik für die laufende ALU-Operation frei. Das Überlauf-Flipflop wird am Ende von P5 gesetzt, wenn L-Register und S-Sammelschiene das gleiche Vorzeichenbit (Bit 15) haben und ALU15 verschieden ist. Vorsicht ist am Platze, damit das Vorzeichenbit des L-Registers richtig gesetzt wird.
Gibt die Überlauf-(siehe oben) und Erweiterungslogik für die laufende ALU-Operation frei. Das Erweiterungsflipflop wird am Ende von P5 gesetzt,
BO9842/ü882
JSB (JSBOP)N
JMP (JMPOP)/
IMM (IMMOP)
wenn COUT=I (Austrag von ALU).
Sprung oder Subroutinensprung zu neuen Platz im Mikrocode spezifizieren. Siehe Abschnitte über Worttypen 3,4. Das AND von JSBOP und JMPOP (=JORJ) verhindert das Speichern in die "Radierblöcke", sperrt den Speicherfeld-Dekoder, sperrt Eintakten des Zustandsmarken-Registers und gibt die RAR-Ladelogik frei.
Spezifiziert Worttyp 2. IMMOP gibt RIR auf der S-Sammelschiene frei, spezifiziert PASS (durchlassen) durch die ALU oder SMPS, wenn RIR19=1 und verhindert die Ansteuerung der S-Sammelschine durch das Halteregister.
Spezialfeld
Das Spezialfeld wird zur Steuerung spezieller Computeroptionen wie Speicherschutz oder Speicherverwaltung, zur Steuerung einer Unterbrechungserkennung, zur Durchführung spezieller arithmetischer/logischer Operationen, zur Ingangsetzung spezieller CPU-Steuermerkmale und zum spezifizieren von Sprungschemen benutzt.
IOFF (IOFFSP) Löscht das INTEN Flipflop am Ende der laufenden
Instruktion. Dies verhindert Erkennung von Unterbrechungen von Vorrichtungen, die Codes auswählen, welche größer als 5 sind (d.h. nur Speicherschutz-Netzausfall- oder HALT-Betrieb können RAR auf 4 zwingen, wenn ein Sprung nach 0 versucht wird). Benutzt während JMP, I und JSB,I Maschinen-Instrukitonsroutinen, um Unterbrechungen solange herauszuhalten, bis eine weitere Instruktion ausgeführt ist.
SRG2 (SRG2SP) Gibt IR-Bits 0, 1, 2, 4 für SRG-Schiebe/Rota-
tionsdekoder frei. Dies bewirkt ein Schieben oder Ro/tieren der ALU auf die T-Sammelschiene,
Ll (LISP)
wie von der SRG-Instruktion angefordert.
Bewirkt eine Linksverschiebung (TBS0=1, TBS1=0) in den Schiebemultiplexern. Ohne einen qualifizierenden OP-Feld-Befehl (LWF, ARS, CRS, LGS, MPY, DIV) schiebt dieser Befehl in der nachfolgend gezeigten Weise.
1514 ALU k
LO
j R/S MUXRS
I J
,A T-Sammel- . ,
Schiene
L4 (L4SP) Rl (RlSP)
Bewirkt eine zirkuläre Linksverschiebung um 4 Bit-Positionen (TBS0=O, TBSl=I) in den Schiebemultiplexern. Rotiert die ALU um vier Positionen, bevor sie auf die T-Sammel-Schiene gegeben wird.
Bewirkt eine Rechtsverschiebung (TBS0=0, TBSl=O) in den Schiebemultiplexern. Ohne einen qualifizierenden OP-Feld-Befehl (LWF, ARS, CRS, LGS, MPY, DIV), schiebt dieser Befehl wie nachfolgend gezeigt. s
jl5l ALU j ( R/S MUXRS lJo ·- i/
1
y
I ι j
i°\
H1
BO 9842-/0882
ION (IONSP)
SRGL (SRGlSP)
Schaltet das INTEN-Flipflop am Ende der laufenden Mikroinstruktion ein. Erlaubt, daß bei normalen Unterbrechungen das RAR auf 4o gezwungen wird, wenn ein Sprung order
RTN zur Adresse O0 versucht wird.
Gibt die IT-Bits 9 , 8, 7, 6 für den Schiebe/ Rotationsdekoder frei. Dies bewirkt eine Verschiebung oder Rotation der ALU auf der T-Sammelschiene, wie von SRG-Maschineninstruktionen benötigt.
RES2 (XCHSP)
Wird dem Mikroprogrammierer nicht angeboten. Marken-Flipflop mit Erweiterungsflipflop vertauschen.
STFL (STFLSP)
CPU-Markenflipflop setzen.
CLFL (CLFLSP)
CPU-Markenflipflop löschen.
FTCH (FTCH)
Interface-Signal zum Speicherschutz. Ergebnisse: Verletzungsregister von der M-Sammelschiene während P5 verriegeln; MPV am Ende von P5 löschen; Indirektzähler zurückstellen. Zu benutzen, während die Adresse der laufenden Maschinen-Instruktion von Ihrer Ausführung auf der M-Sammelschiene ist. Benutzt zur Ingangsetzung der Speicherschutz-Fehlererkennungs-Logik.
SOV (SOVSP)
Überlauf-Flipflop setzen.
COV (COVSP)
Überlauf-Flipflop löschen,
RPT (RPTSP)
Wiederholungs-Flipflop setzen. Der RIR-Takt wird nach P5 gesperrt und die RAR-Erhöhung wird nach dem folgenden P2 gesperrt. Die nächste MjJcro-Instruktion wird
B0 9842/0882
CSRGESP)
wiederholt und der Zähler wird bei jedem folgenden P5 erhöht, bis die unteren 4 Bits des Zählers 1111„ sind. Dann wird das Wieder— holungs-Flipflop bei P4 gelöscht, und die normale Steuerung wird wieder hergestellt. Die Makroinstruktion hinter RPT wird wiederholt das Zweierkomplement des Wertes in den unteren 4 Bits des Zählers {mit QOOO2= IS mal)
Erweiterungsflipflop löschen, wenn IR5=1.
Keine besonderen Signale erzeugt,
(MESP)
Signal zur besonderen Verwendung für Speicherverwaltung.
MPCK CMPCK)
Speicherschutzprüfung. Interface-Signal für Speicherschutz. Muß spezifiziert werden, während die Adresse eines schwebenden Speicherbezugs auf der S-Sammelschiene ist. Dieser Wert wird mit dem Umgrenzungsregister verglichen, um festzustellen, ob eine Verletzung stattgefunden hat. Wenn S-Sammelschiene < Umgrenzungsregister, wird MPV niedrig, wenn Speicherschutz freigegeben ist. Wenn MPV niedrig ist, beeinträchtigen Speicherbezüge nicht den Speicher, und die Speicherdaten erscheinen als 0, keine I/O Signale können erzeugt werden, und P- und S-Register können nicht verändert werden. FTCH oder IAK löschen die MPV-Bedingung.
IOG (IOGSP)
Der Prozessor wird bis T2 "eingefroren".
Am Ende von T2 wird das lO-Gruppen-Freigabe-
6 (J B 8 4 2 / U B 8 2
Flipflop gesetzt, wodurchdie Erzeugung eines I/O-Signals für einen I/O Zyklus freigegeben wird.
ICNT (ICNTSP) Zähler erhöhen.
SHLT (SHLTSP)
Das Lauf-Flipflop wird am Ende der nächsten Makroinstruktion gelöscht.
INCI (INCISP)
Der Indirekt-Zähler wird auf der Speicherschutzplatte erhöht. Wird benutzt, nachdem ein Indirekt-Adressenniveau erfaßt worden ist, um unbegrenzte Schleifen daran zu hindern, Unterbrechunganforderungen zu erfassen. Das INTEN-Flipflop wird nach drei Erhöhungen gesetzt.
Kein Signal.
SRUN (SRUNSP)
Lauf-Flipflop am Ende der laufenden Makroinstruktion setzen.
JTAB (JTABSP) RAR bei P2 von der JTAB-Karte laden.
RTN (RTNSP) RAR bei P2 vom Bewahrungsregister laden und
Bewahrungsregister bei P5 löschen.
609842/Ü882
SPEICHER- UND S-SAMMELSCHIENEN-FELDER
Es folgt eine Beschreibung der Mnemoniken für die S-Sammelschäanen und Speicherfelder. Die "Radierblock"-Register sind S1-S12, X, Y, P, S. Einige der anderen Mnemoniken haben spezielle Bedeutungen und Anwendungen und sind weiter unten beschrieben. Die "Radierblöcke" werden direkt durch RIR adressiert. Die aus den Felddecodern kommenden Signalnamen sind in Klammer angegeben.
Der Speicherfelddecoder wird durch JMP, JSB oder RIR19=1 gesperrt. Der S-Sammelschienen-Feld-Decoder wird durch JMP, JSB, IMM oder DMAFRZ (T3 eines DCPC-,-Zyklus) gesperrt.
TAB Speichern (TABST) und S-Sammelschiene (TABEN). Wählt das T-, A- oder B-Register aus, abhängig von dem Setzen von AAFF und BAFF, welche entsprechend dem Wert der T-Sammelschiene gesetzt werden, jedes Mal wenn das M-Register geändert wird. Erlaubt Zugriff zu A, B anstatt zu den Plätzen 0, 1 des Hauptspeichers, Siehe Beschreibung von T unten für T zugeordnete Zeitgabe.
DURCH TAB AUSGEWÄHLTES REGISTER
T-SAMMELSCHIENE RESULTIERENDE BAFF
BEIM SPEICHERN WERTE 1
IN M AAFF 1
0 1 0
1 0 1
2 1
2 1
T A B T
CAB Speichern (CABST) und S-Sammelschiene (CABENi.Wählt das Α-Register aus, wenn IR-11 gleich Null ist oder das B-Register, wenn IR-11 gleich Eins ist.
T Speichern (TST) und S-Sammelschiene (TREN). Wenn vom Speicherfeld, wird TST zum Speicher gesandt, wenn der Prozessor nicht "eingefroren" ist. Wird zum Eintakten
6 09 8 42/0882
CIR (CIREN)
-· 66 -
der S-Sammelschiene in das T-Registerbenutzt. Wenn vom S-Sammelschienen-Feld, führt es den Prozessor ein, bis der Speicher bereit ist.
Prozessor bis T6 einfrieren, dann während P3-P5 CIR von der Unterbrechungs-Adressensammelschiene laden, IAC ausgeben und CIR auf die S-Sammelschiene schalten, wobei die zehn Bits hoher Ordnung Null sind.
(LST)
L-Register von S-Sammelschiene laden.
ΙΟΙ (IOIEN)
S-Sammelschiene von der Quelle steuern, die durch die Auswahlcode-Sammelschiene festgelegt ist, wie unten dargestellt. Beachten: IOIEN erzeugt ΙΟΙ auf dem I/O-System (um das Abladen des Ausgabepuffers auf die I/0-Sammelschiene zu bewirken) nur während T4 oder T5 oder wenn das 1/0-Freigabeflipflop gesetzt ist.
auswahlcode-
sammelschiene
DURCH ΙΟΙ AUSGEWÄHLTE
QUELLE
00 I/0-Sammelschiene (=O)
01 Frontplatten-Anzeige
02 Wortzählregister DPPC
Kanal 1
03 Wortzählregister DCPC
Kanal 2
04 Zentrales Unterbrechungs-
register
05 Register für Speicherschutz
verletzung
06 Nichts = 177777g
07 Nichts = 177777g
10S-77S I/O-Samme!schiene (vom
Ausgabepuffer der Ϊ/0-
Einrichtung geladen)
609842/0882
100 (IOOST)
Dies ist unabhängig vom IOO-Signal, welches durch die I/O-Signalgeneratoren erzeugt werden. Schaltet die S-Sammelschiene auf die I/O-Sammelschiene wenn das IO-Gruppen-Freigabeflipflop gesetzt ist.
CNTR
S-Sammelschiene (CNTREN) und Speichern (CNTRST).
CNTRST speichert die acht Bits niedriger Ordnung der S-Sammelschiene in den Speicher. CNTREN gibt den acht-Bit-Zähler auf die unteren vier Bits der S-Sammelschiene frei. Die oberen acht Bits der S-Sammelschiene sind alle eins.
DSPL
S-Sammelschiene Ö3SPLEN) , Speichern (DSPLST) . Wählt das Register für die Frontplatten-Änzeige aus.
DSPI
S-Sammelschiene (DIEN): Wählt das Indikatorregister für die Anzeige auf der Frontplatte auf den Bits 5-0 der S-Sammelschiene aus. Die Bits
höherer Ordnung sind eins. Speichern (DIST): speichert die unteren sechs Bits der S-Sammelschiene in das Indikator register ..für die Anzeige auf der Frontplatte. Bits höherer Ordnung werden ignoriert. Zu beachten: niedrige Bits entsprechen den Leuchtdioden-Indikatoren, die auf dem Anzeigeindikator erleuchtet sind, wie im folgenden gezeigt:
S-SAMMELSCHIENEN-BITS NIEDRIG BEI GEGEBENEN DSPI 5 4 3 2 ERLEUCHTETER REGISTERINDIKATOR SPTMBA
ADR (ADREN)
Gibt Bits 9-0 des M-Registers auf Bits 9-0 der S-Sammelschiene. Wenn IRIO=O, Nullen auf Bits 15-10 der S-Sammelschiene geben. Wenn IR1O=1, M-Register Bits 15-10 auf die S-Sammelschiene schalten. Führt Adressierung der Null- und der laufenden Seite für Maschineninstruktionen des
-609842/0-8 82
MRG-Typs durch.
IR (IRST)
IR von der S-Sammelschiene laden.
Das M-Register hat nur 15 Bits. Wenn es auf der S-Sammelschiene freigegeben ist, ist das Bit 15 niedrig.
LDR (LDREN)
Komplement des Inhalts des Lader-ROM freigeben, welches durch IR15, IR14 ausgewählt ist und durch Zählerbits 7-0 auf den S-Sammelschienenbits 3-0 adressiert ist. Bits 15-4 werden hochgezogen.
MEU (MEST)
Speichererweiterungseinheit von S-Sammelschiene geladen.
CM (CMST)
Kein Register steuert die S-Sammelschiene an.
S-Sammelschiene ist 177777O.
S-Sammelschiene dann und nur dann in M-Register speichern, wenn IR eine Instruktion des MRG-Typs enthält, aber nicht direkt springen. In Hardware wird M geladen, wenn CMST niedrig ist und (IR12+IR14+IR13(IR15+IR11)=1.
MEU (MEEN)
Speichererweiterungseinheit wird auf S-Sammelschiene geschaltet.
PNM (PNMST)
S-Sammelschiene in M-Register laden und T-Sammelschiene in P-Register (Teil der "Radierblöcke") laden.
X, Y, P, S,
Diese Register sind alle in den 16X4-Bit-"Radierblock "-Registern und werden durch RIR durch einen Multiplexer adressiert.
6 09842/0882
Das ALU-Feld gibt direkt in die ALU ohne Decodierung ein. Die ALU führt kontinuierlich die Operation aus, die durch RIR19-15 spezifiziert ist, es sei denn, daß diese durch eine IMM- oder MPY-Mikroinstruktion überfahren wird und stattdessen ein PASS oder CMPS ausführt. Die möglichen Operationen sind nachstehend dargestellt (S = S-Sammelschiene, L = L-Register). Die Arithmetik ist Zweier-Komplement, "+" = logisches ODER. INC S PLUS 1
OP1 (S+L) PLUS 1
OP2 (S+L) PLUS 1
ZERO AUSGANG NUR NULLEN
0P3 S PLUS (S · L) PLUS
0P4 (S+L) PLUS (S · L) PLUS
SUB S MINUS L
0P5 S · L
0P6 S PLUS (S · L)
ADD S PLUS L
0P7 (S+L) PLUS (S · L)
0P8 S · L MINUS
0P9 S PLUS S (LOGISCHE LINKSVERSCHIEBUNG)
OP10 (S+L) PLUS S
OP11 (S+L) PLUS S
DEC" S MINUS 1
Zu beachten: Folgendes sind logische Operationen
CMPS NICHT S
NOR NICHT (S ODER L)
NSAL (NICHT S) UND L
OP13 ALLES NULLEN
NAND NICHT (S UND L)
CMPL NICHT L
XOR S (EXKLUSIV - ODER) L
SANL S UND (NICHT L)
NSOL (NICHT S) ODER L
XNOR NICHT (S (EXKLUSIV - ODER) L)
PASL L
609842/0882
AND S UND L
ONE ALLES EINSEN
SONL S ODER (NICHT L)
IOR· S ODER L
PASS S
M-REGISTER-OPERATION
Das M-Register muß mit der Adresse des Hauptspeichers geladen werden, der zu lesen ist, bevor der Mikrobefehl READ erscheint, oder mit ihm zusammenfällt. Das M-Register wird beim Start von P4 geladen. Wenn der Mikrobefehl CM benutzt wird, wird M nur geladen, wenn eine Instruktion des MRG-Typs in IR ist. M kann nach Ingangsetzung eines Bezugs geändert werden, da die M-Sammeischiene in ein Halteregister im Speicher eingetaktet wird, und zwar nach 200us in den Speicherzyklus. Das M-Register muß vor der Benutzung eines WRTE-Befehls geladen werden, da "Datenschreiben" in T geladen wird, wenn WRTE gegeben ist.
TAB-LOGIK
Immer wenn M geladen wird, werden die A-adressierbaren und B-adressierbaren Flipflops (AAFF, BAFF) entsprechend dem Wert der T-Sammelschiene gesetzt, wie im folgenden dargestellt ist.
T-SAMMELSCHIENE AAFF BAFF
1 2
ANDERE
Diese Flipflops legen fest, ob das A-, B- oder T-Register benutzt wird, wenn der TAB-Mikrobefehl spezifiziert ist (da die Register A und B als Speicherplätze O, 1 adressiert sind, obwohl sie in Wirklichkeit Hardware-Register sind). Wenn M eine Null oder eine Eins empfangen könnte sollte im ALU-Feld der Mikrobefehl INC benutzt werden. Dieses T-Sammelschienenschema mit INC wird benutzt, um Operandenabrufe während der Ausführung der Instruktion zu vereinfachen. Die Standardfolge ist folgende:
609842/0882
1 0
O 1
0 0
READ INC PBM P M P, P P+; , TAB-Logik setzen, READ initiieren.
(Warten)
PASS S1 TAB Daten vom T-, A- oder B-Register nehmen,
entsprechend TAB-Logik.
LESE-OPERATIONEN Einfrieren
MSRDY (Speicher bald fertig)ist bis P2 hoch, wenn der Speicher für einen anderen Bezug bis zum Ende des nächsten P5 fertig ist.
Wenn es nicht bei P2 hoch ist, oder DMALO niedrig ist, oder REFRESH niedrig ist (Speichererneuerung), erfolgt ein Einfrieren, wenn READ spezifiziert ist, bis ein Fortfahren sicher ist.
Ingangsetzung
Ein Speicherlesezyklus wird durch das Lese-Flipflop am Ende von P5 inganggesetzt, wenn der Mikrobefehl READ spezifiziert ist.
READ ist niedrig von P5 bis P1, die Abfallflanke setzt jedoch den Zyklus ingang.
Datenwiedergewinnung
Die Daten müssen vom Speicher genau zwei Mikroinstruktionen nach READ wiedergewonnen werden. Nach dieser Zeit sperrt der Speicher das T-Register. Wenn die Mikrobefehle T oder TAB (wenn AAFF gleich BAFF=O) im S-Sammelschienenfeld sind und MSRDY niedrig ist, erfolgt ein Einfrieren bis MSRDY hoch ist. Wenn die TAB-Logik A oder B spezifiziert, wird auf das T-Register überhaupt kein Bezug genommen und ein Einfrieren findet nicht statt. Auf Speicherplatz 0, 1 des Hauptspeichers kann Bezug genommen werden, wenn die TAB-Logik nicht wie vorbeschrieben benutzt wird.
SCHREIBOPERATIONEN Einfrieren _ R fJ 9 8 4 2 / 0 8 8 2
Der Mikrobefehl WRTE erfordert die gleiche Einfrieroperation wie READ.
Ingangsetzung
Ein Schreibzyklus wird durch das Schreibflipflop am Ende von P5 in Gang gesetzt, wenn der Mikrobefehl WRTE gegeben ist.
WRITE ist von P5 bis P1 niedrig, jedoch setzt die Abfallflanke von P5 den Zyklus in Gang-
9842/0882
ANHANG
ETIKETT MAKRO-SPRUNG-PUNKT RTN JMP PASS RTN JMP RTN JSB MEU JTABL BINÄRCODE
UND MNEMONIK JMP RTN PASS JMP RTN CAB XMM
0001 NEUMACRO JMP J30 JMP JMP JMP MESP XMx 1000X0111100XXXX
0002 JMP STFL JMP JMP JMP 1000X01111010001
0003 JMP JMP JMP MESP XLx 1000X01111010010
0004 JMP ■ JMP MESP XSx 1000X01111010011
0005 JMP JMP XCh 1000X01111010100
0006 JMP JMP LFk 1000X01111010101
0007 JMP JMP MEU 1000X01111010110
0008 JMP MEU 1000X01111010111
0009 RS* JMP DJP 1000X01111011000
0010 RVX JMP DJS 1000X01111011001
0011 SJP 1000X01111011010
0012 SJS 1000X01111011011
0013 UJP 1000X01111011100
0014 UJS 1000X01111011101
0015 XMM 1000X01111011110
0016 1000X01111011111
0017 JTABL MBI 1000X011110X0000
0018 MBF 1000X01111000001
0019 MBW 1000X01111000010
0020 MWI 1000X01111000011
0021 MWI 1000X01111000100
0022 MWW 1000X01111000101
0023 SYh 1000X01111000110
0024 USx 1000X01111000111
0025 PAx 1000X01111001000
0026 PBx 1000X01111001001
0027 SSM 1000X01111001010
0028 JRS 1000X01111001011
0029 1000X01111001100
0030 1000X011110011Oq
0031 OPGET 1000X01111001110
0032 1000X01111001111
0033 X H H H UTIL IT YX X H H
6Ü98 "4 2/0882
ZEILE
ETIKETT
MIKROINSTRUKTIONEN
BEMERKUNGEN
CD OO 4>-NJ •^. O CO CO
0034 0035
0036 0037 0038
0039 0040 0041 0042 0043 0044 0045 0046 0047 0048 0049
0050
XMM
PASS S3 CMPS S2
P X
MELOOP1
JMP CNDX ONES L RTN*
IMM LOW S1 %200
SANL L A
IMM HIGH S1 %337
SONL MEU S1
PASS P S1
PASS CNTR B
PASS S2
JMP CNDX FLAG RJX XMS
JMP CNDX AL 15 PNK READMAP
READ INC S4 P
PASS MEU TAB
MESP PASS PNM S4
READ ICNT INC RJS P
JMP CNDX CNT 4 MELOOP1
53 <= P; P BEFAHREN
S2 < = EINER-KOMPLEMENT DER ZÄHLUNG
AUF NULLZÄHLUNG PRÜFEN L <= 111111111000000 UNTERE SIEBEN BITS DES Α-REGISTERS MASKIEREN L< = 1101111111111111 STEUERBIT ADDIEREN (13) SPEICHERADRESSENREGISTER <= Sl P< = B(TABELLENADRESSE) CNTR < = S2
AUF XMS-INSTRUKTION PRÜFEN AUF NEGATIVE ZÄHLUNG PRÜFEN ERSTES WORT LESEN P<=P+1
54 <= KARTENDATEN KARTENREGISTER <= DATEN NÄCHSTES WORT LESEN, CNTR UND P ERHÖHEN
SCHLEIFE FÜR 16X
ZEILE
ETIKETT
MIKROINSTRUKTIONEN BEMERKUNGEN
0051 0052 0053 0054
JMP CNDX CNT8 READ
XMM,RTN
JMP CNDX INT RJS MELOOP1
DEC S3 S3
9842 0055
0056
XMM,RTN JMP RTN PASS 8 XMM,RTN
M
/0882 0057
0058
XMS,RTN CNDX INC
PASS
S1
L
CNTR
X
0059 MESP CMPS X CNTR
0060 ICNT ADD S1 S1
0061 CNDX PASS L S1
0062 CNDX ADD A A
0063 P. RTN PASS P S3
0064 XMS JMP AL15 RJS P. RTN
0065 MELOOP2 PASS MEU B
0066 INC B B
006 7 JMP CNT 4 RJS MELOOP2
0068 JMP CNT8 XMS,RTN
IST GESAMTE SCHLEIFE BEENDET? LESEN BEI GLEICHER ADRESSE WIEDER STARTEN
AUF NICHTVORHANDENE UNTERBRECHUNG PRÜFEN
P-REGISTER FÜR WIEDERSTART ZURÜCKSTELLEN
ANDERE SERVICEUNTERBRECHUNG B-REGISTER ZURÜCKSTELLEN
S1<= VERBLEIBENDE ZÄHLUNG (ZWEIER KOMPLEMENT)
L * = ORIGINALZÄHLUNG (POSITIV) X<= VERBLEIBENDE ZÄHLUNG (POSITIV) SK = ORIGINAL-BLEIBEND
L < = WORTE VOLLSTÄNDIG
A< = A + TOTAL VOLLSTÄNDIG P<= NÄCHSTE INSTRUKTION
TESTEN AUF X O ... NOP
KARTENREGISTER<= DATEN
B < = B + 1; CNTR ERHÖHEN
SCHLEIFE FÜR 16X
IST GESAMTE SCHLEIFE BEENDET?
ZEILE
ETIKETT
MIKROINSTRUKTIONEN
BEMERKUNGEN
CD
O
CD
CD
O
OO
OD
FO
0069 0070
0071 0072 0073 0074 0075 0076 0077 0078 0079
0080
0081 0082 0083 0084 0085
0086
JMP CNDX
JMP
READMAP
MELOOP3
WRTE
JMP
JMP
JMP
MPCK MESP ICNT CNDX CNDX CNDX
JMP
XMM,RTN
INT DEC
DEC
PASS
INC
P-ASS
PASS
CNT4
CNT 8
INT
DEC
RJS S3
S4
CNTR
PNM
S1
TAB
RJS
RJS S3
MELOOP2 S3
XMS7RTN
S4
MEU
S1
MELOOP3
XMM, RTN**"
MEL00P3
S3
B XMM,RTN
PASS L P
PASS X X
INC S1 CNTR
SUB X
AUF NICHT VORHANDENE UNTERBRECHUNG PRÜFEN
P-REGISTER FÜR ERNEUTEN START ZURÜCKSTELLEN
ANDERE SERVICE UNTERBRECHUNG S4 4= X-1
CNTR = CNT+1 (ZWEIERKOMPLEMENT) M.P.PRÜFUNG: P <= P+1 S1 <= KARTENREGISTER
DATEN IN TABELLE SCHREIBEN SCHLEIFE FÜR 16X
AUF NICHTVORHANDENE UNTERBRECHUNG PRÜFEN
P-REGISTER FÜR ERNEUTEN START ZURÜCKSTELLEN
ANDERE SERVICE UNTERBRECHUNG
B-REGISTER ZURÜCKSTELLEN L < = ORIGINALZÄHLUNG (NEGATIV) X < = VERBLEIBENDE ZÄHLUNG (ZWEIER KOMPLEMENT)
SK = ORIGINAL - VERBLEIBEND
cn co oo
ZEILE
ETIKETT
MIKROINSTRUKTIONEN
BEMERKUNGEN
0087
0088
0089
0090
0091
0092
'860 0093
0094
■F- 0095
O 0096
882 0097
0098
0099
0100
0101
0102
0103
XM
PA. PB
SY.US
XPER
IMM LWF
JMP IMM
JMP IMM
IMM
RTN
L1
CNDX
CNDX
IMM
RTN
RPT
MESP
RPT
MESP
RTN
PASS L S1
ADD A A
PASS P S3
CMHI SL %337
PASS CAB
ALO RJS SY.US
LOW L %177
SONL S1 S1
FLAG RJS XFER
LOW L %337
SONL S1 S1
PASS MEU S1
LOW CNTR %000
PASS MEU MEU
LOW CNTR %000
PASS MEU MEU
L < = WORTE VOLLSTÄNDIG A< = A + TOTALVERVOLLSTÄNDIGT P < = NÄCHSTE INSTRUKTION S1< = 0010000000000000
T-SAMMELSCHIENE < = A/B ,-MARKE <= Α/Β (15)
PRÜFUNG AUF KARTE FÜR ZUGANG A L <= 1111111101111111 SK = 0010000010000000 PRÜFUNG AUF SYSTEMKARTE L < = 1111111111011111 S1< = 00100000X0100000 SPEICHERADRESSENREGISTER <=S1 (7-3)) CNRT <. - O; WIEDERHOLUNGSFLIPFLOP 16X SETZEN
SPEICHERZUGANGSREGISTER = SPEICHERPROGRAMMREGISTER CNTR< = O; WIEDERHOLUNGSFLIPFLOP 16X SETZEN
SPEICHERZUGANG NEHMEN <= SPEICHERPROGRAMMREGISTER ZURÜCK
ZEILE
ETIKETT
MIKROINSTRUKTIONEN
BEMERKUNGEN
0104
0105
0106
0107
609 0108
0109
OO
to 0110
σ 0111
OO
00
0112
0113
0114
T 0115
0116
0117
0118
0119
0120
OPGET
XS"
XC
MESP INC P P
INC M M
PASS MEU MEU
RTN PASS CAB TAB
OPGET
MESP INC P P
MPCK INC M M
PASS TAB CAB
RTN PASS MEU MEU
OPGET
MESP PASS L CAB
INC M M
MESP INC P P
XOR TAB
CNDX TBZ RTN *
RTN INC P P
OPERANDENADRESSE VON INSTRUKTION + 1 NEHMEN
KARTEN SCHALTEN; TATSÄCHLICHEN OPERANDEN NEHMEN
KARTENZUSTAND ZURÜCKSTELLEN
OPERANDENADRESSE VON INSTRUKTION + 1 NEHMEN
KARTENZUSTAND SCHALTEN
KARTENZUSTAND ZURÜCKSTELLEN OPERANDENADRESSE VON INSTRUKTION + 1 NEHMEN
L<= A/B; WECHSELKARTE SETZEN TATSÄCHLICHEN OPERANDEN NEHMEN P< = INSTRUKTION + 1; KARTE ZURÜCKSTELLEN
A/B MIT SPEICHER VERGLEICHEN RTN-NICHT ÜBERSPRINGEN WENN GLEICH P< = INSTRUKTION + 2; ZURÜCK
(JD CO
ZEILE ETIKETT
0121 LF *
0122
0123
0124
0125 DJP
0126
0127 SJP
0128
0129 UJP
0130 JP *
0131 SETSTAT
MIKROINSTRUKTIONEN
BEMERKUNGEN
0132
0133 0134 0135 0136 0137 0138
IMM RTN IMM HIGH L %007
JMP AND S1 CAB
IMM PASS MEU MEU
JMP PASS MEU S1
IMM HIGH S2 %ioo
JSB IOFF JP *
HIGH S2 %102
JP *·
HIGH S2 %103
OPGET
PASS MEU S2
DJS
SJS
UJS
MPCK PASS P M
RTN PASS S2 M
IMM HIGH %100
JMP S2 JS *
IMM HIGH %102
JMP S2 JS8
IMM HIGH %103
L < = 000001111111 1111
S1< = A/B (10-0)
UMGRENZUNGSDIREKTIVE SENDEN SPEICHERUMGRENZUNG = S1; ZURÜCK
S2< = 0100000011111111
S2< = 0100001011111111
S2 < = 0100001111111111 OPERANDENADRESSE VON INSTRUKTION + 1 NEHMEN
SPEICHERZUSTAND IST HIER GESETZT
S-SAMMELSCHIENE = ADRESSE; ZIEL PRÜFEN
P< = ZIELADRESSE; ZURÜCK S2< = 0100000011111111
S2 «= 0100001011111111 S2 <= 0100001111111111
ZEILE
ETIKETT
MIKROINSTRUKTIONEN
BEMERKUNGEN
CO O CD OO ■P-
O CO CD NJ
0139
0140 0141 0142 0143 o144 0145
0146 0147 0148
0149 0150 0151 0152 0153
0154 0155
0156 0157
JS
JSB
IOPF
OPGET
MBP
MBI
MPCK INC S3 P
PASS MEU S2
RTN PASS M
WRTE MESP PASS TAB S3
R1' INC P M
IMM R1 HIGH L %000
R1 PASS A A
PASS B B
LWF PASS X X
JSB CNDX X.LOOP-1
CNDX PASS X
JMP MESP TBZ RJS B.RESET
JMP CNDX FLAG RJS B.RESET
MESP PASS i&R
JMP ALO *+2
IMM L1 HIGH L %000
READ INC M A
PASS A A
OPERANDENADRESSE VON INSTRUKTION + 1 NEHMEN
S3 <= RÜCKKEHRADRESSE
SPEICHERZUSTAND IST HIER GESETZT S-SAMMELSCHIENE = ADRESSE RÜCKKEHRADRESSE AM ZIEL SCHREIBEN P <= ZIEL + 1
L <= 0000000011111111;
WECHSELKARTE SETZEN
A < = QUELLENWORTADRESSE B < = ZIELWORTADRESSE
X < = WORTZÄHLUNG; MARKE <= UNGERADES BYTE
BYTES PAARWEISE BEWEGEN T-SAMMELSCHIENE <= X
AUF UNTERBROCHENE BEWEGUNG PRÜFEN AUF NICHT UNGERADES BYTE PRÜFEN ALO <= IR(O); WECHSELKARTE SETZEN
AUF MBF-INSTRUKTION PRÜFEN L <= 0000000011111111; WECHSELKARTE SETZEN
M <= QUELLENADRESSE
BYTE-ADRESSE IN A FORMEN
CjO OO
ZEILE
ETIKETT
MIKROINSTRUKTIONEN
BEMERKUNGEN
CO
N-"
0158 0159 0160 0161 0162
0163 0164
0165 0166
0167 0168 0169 0170 0171 0172 0173 0174 0175
MBW
MESP SANL S2 TAB
JMP R1 MB *
R1 PASS A A
R1 PASS B B
LWF PASS X X
JSB MESP W. LOOP-1
PASS X
MB**
JMP CNDX TBZ RJS B.RESET
JMP CNDX FLAG RJS B.RESET
+ 1
IMM HIGH L %000
READ PASS M A
L1 PASS A A
SANL S2 TAB
READ MPCK INC M B
L1 PASS B B
AND S1 TAB
PASS L S1
IOR S2 S2
S2 <= ΑΑΑΑΑΑΑΑΟΟΟΟΟΟΟΟ
A = QUELLENWORTADRESSE B <= ZIELWORTADRESSE X <= WORTZÄHLUNG; MARKE
<.= UNGERADES BYTE BYTES PAARWEISE BEWEGEN T-SAMMELSCHIENE = X; WECHSELKARTE AUSWÄHLEN AUF UNTERBROCHENE BEWEGUNG PRÜFEN
AUF NICHT UNGERADES BYTE PRÜFEN
L <= 0000000011111111 M < = QUELLENADRESSE BYTE ADRESSE IN A FORMEN S2 <= ΑΑΑΑΑΑΑΑΟΟΟΟΟΟΟΟ MC= ZIELADRESSE BYTEADRESSE IN B FORMEN
51 = OOOOOOOOBBBBBBBB L <= S1
52 < = AAAAAAAABBBBBBBB
TN5 CD
ZEILE
ETIKETT
MIKROINSTRUKTIONEN
BEMERKUNGEN
CTJ
O
CO
OD
0176 0177 0178 0179 0180 0181 0182 0183
0184 0185 0186 0187 o188 0189
0190 0191 0192 0193 0194
B.RESET
MWI
X.LOOP
WRTE RTN PASS TAB S2
L1 PASS MEU MEU
L1 INC A A
L1 INC B B
LWF RTN PASS X X
PASS A A
CNDX PASS B B
PASS MEU MEU
MESP PASS X
JMP TBZ MW*
READ MPCK INC M A
INC A A
PASS S2 TAB
MESP INC M B
WRTE CNDX PASS TAB S2
CNDX INC B B
DEC X X
JMP TBZ MW*
JMP INT RJS X.LOOP
AUSGEWÄHLTE KARTE ZURÜCKSTELLEN A <= A + 1
B <= B + 1
AUSGEWÄHLTE KARTE ZURÜCKSTELLEN; ZURÜCK ι
T-SAMMELSCHIENE <= X °5
AUF X=O PRÜFEN ι
QUELLENWORT LESEN
QUELLENADRESSE ERHÖHEN; KARTEN SCHALTEN S2 <= DATEN
M.P. PRÜFUNG; M <= BESTIMMUNGSADRESSE
DATEN IN ZIEL SCHREIBEN BESTIMMUNGSADRESSE ERHÖHEN ZÄHLUNG ERNIEDRIGEN; KARTEN SCHALTEN^ PRÜFEN OB BEWEGUNG KOMPLETT AUF NICHT VORHANDENE UNTERBRECHUNG PRÜFEN
ETIKETT
MIKROINSTRUKTIONEN BEMERKUNGEN
RTN
MWW
DEC P PASS MEU
PASS
0198 Y.LOOP JMP CNDX TBZ M MW*
CJ? 0199 READ INC A A
CO 0200 INC S2 A
CO
.t—
0201 PASS M TAB
N." 0202 MPCK INC TAB B
t Λ
OC
CO
0203 WRTE PASS B S2
N> 0204 INC X B
0205 DEC X
0206 JMP CNDX TBZ RJS MW**
0207 JMP CNDX INT P W. LOOP
0208 MW * DEC MEU P
0209 SY * RTN PASS S1 MEU
0210 IMM CMHI %337
0211 PA * JMP Sl MAPMOVE
0212 IMM R1 CMHI S1 %176
0213 R1 PASS S1
P <= INSTRUKTIONSADRESSE AUSGEWÄHLTE KARTE ZURÜCKSTELLEN; ZURÜCK
WECHSELKARTE SETZEN; T-SAMMEL-SCHIENE <= X
AUF X=O PRÜFEN
QUELLENWORT LESEN
QUELLENADRESSE ERHÖHEN S2 <= DATEN
M.P. PRÜFUNG; M<= BESTIMMUNGSADRESSE
DATEN IN ZIEL SCHREIBEN BESTIMMUNGSADRESSE ERHÖHEN ZÄHLUNG ERNIEDRIGEN
PRÜFEN OB BEWEGUNG KOMPLETT AUF NICHTVORHANDENE UNTERBRECHUNG PRÜFEN
P <= INSTRUKTIONSADRESSE AUSGEWÄHLTE KARTE ZURÜCKSTELLEN; ZURÜCK
S1 <= 001000000000000
S1 <>= 0100000010000000 S1 <·= 0010000001000000
TNT CO
cn CD OO
ZEILE
ETIKETT
MIKROINSTRUKTIONEN
BEMERKUNGEN
0214 0215 0216 0217 0218 0219 0220 0221
0222 0223 0224 0225 Ο226 0227 0228 0229
0230 0231 0232 0233 0234
PB*
US
MAPMOVE
JMP IMM JMP
IMM IMM
LOW S1
MAPMOVE %237 US +1
LOW S1 %337
HIGH L %337
XOR S1 S1
PASS MEU S1
MELOOP4
MELOOP5
IMM CNDX LOW CNTR %337
PASS S3 P
PASS P CAB
JMP MESP AL15 MELOOP5
READ ICNT INC PNM P
CNDX PASS S4 TAB
PASS MEU S4
READ RTN INC PNM P
JMP MPCK CNTB RJS MELOOP4
MESP PASS CAB M
PASS P S3
INC PNM P
PASS S1 MEU
S1 <= 1111111110011111 L *= 1101111111111111 S1 <= 0010000001100000 S1 <= 1111111111011111 L C = 1101111111111 111 S1 <·= 0010000000100000 SPEICHERADRESSENREGISTER < = 1
CNTR <= 11011111 (-41B)
53 <= P
P <= A/B
AL 15=1 => KARTEN LESEN ERSTES WORT LESEN; P.<= P+1
54 <= KARTENDATEN KARTENREGISTER = DATEN NÄCHSTES WORT LESEN; P <= P + 1
SCHLEIFE FÜR 32X A/B <= A/B + 32 P <= INSTR + 1 M.P. PRÜFUNG; P*= P + S1 <= KARTENREGISTER
JSJJ CD
<jD QO
ZEILE
ETIKETT
MIKROINSTRUKTIONEN
BEMERKUNGEN
0235 0236 0237 0238 0239 SSM
0240 0241 0242
0243 0244 JRS
0245 0246 0247
0248 0249
0250 ON.OFF
0251 0252 SY.USR
WRTE JMP
ICNT
CNDX
RTN
RTN
MPCK
JSB
LWF
READ JSB
JMP
IMM LWF
RTN
IOFF
L1
PASS TAB
CNT8 RJS
PASS CAB
PASS P
PASS M
PASS MEU
PASS TAB
INC P
INC M HIGH S2 PASS S1
CNDX
R1
INC
FLAG
HIGH
PASS
S2
S1
S1 DATEN IN TAFEL SCHREIBEN MELOOP5 SCHLEIFE FÜR 32X
P Α/Β 4= Α/Β + 32
S3 P 4= INSTR + 1
OPGET OPERANDENADRESSE VON INSTRUKTDN + 1 NEHMEN M.P. PRÜFUNG VOR SCHREIBEN
MEU ZUSTANDSDIREKTIVE SENDEN
MEU ZUSTANDSWORT IN SPEICHER SCHREIBEN
P T? < = INSTRUKTION + 2; ZURÜCK
OPGET OPERANDENADRESSE VON INSTRUKTION + 1 NEHMEN
M ZUSTANDSWORT LESEN
%103 S2 <= 01000001111111111
TAB MARKE <= ZUSTAND (15); S1 (15) (=ZUSTAND(14)
S3 JMP-ZIEL LESEN
OPGET+2 ZIELADRESSE VON INSTRUKTION + 2 NEHMEN
SY.USR PRÜFEN OB SPEICHER EINGESCHALTET WAR
%101 WBNNAUS, S3 <= 01000000111111111 S1 S1 <= ZUSTAND; AL15 <= ZUSTAND(14)
CiD CD
ZEILE
ETIKETT
MIKROINSTRUKTIONEN BEMERKUNGEN
0253
JMP CNDX AL15
0254 OPGET
0255
0256
0257
0258
0259
0260 INDLEVEL
0261
0262 INDIRECT
0263
0264
0265 IND 2
0266
0267
0268
IMM
JMP
READ
HIGH AND
INC INC
L S2
M S3
SETSTAT
%102 S2
SETSTAT
P P
PASS
JMP CNDX AL15 JMP LISTE DER INDLEVEL
M TAB RJS RTH * INDLEVEL
ROUTINE (NUR ALS BEZUG)
ZUSTAND (14) FÜR AUSGEWÄHLTEN BENUTZER PRÜFEN
WENN SYS, L <= 0100001011111111 DANN S2 <= 010000X011111111 ZUSTAND DES SPEICHERS SETZEN: AUCH P SETZEN
S3 <= P + 1; S3
<= INSTRUKTION + 2
M <= NÄCHSTE ADRESSE
AUF "NICHT INDIREKT" PRÜFEN
READ INC M M
JMP CNDX NHOI RJS IND2
CNDX PASS M TAB
JMP CNDX AL15 INDLEVEL
READ RTN INC M M
INCI PASS M TAB
NÄCHSTES NIVEAU LESEN
HALTEN ODER UNTERBRECHEN? M(=(/A/B; INDIREKT-ZÄHLER ERHÖHEN
AUF EIN ANDERES INDIREKTNIVEAU PRÜFEN
EFFEKTIVE ADRESSE LESEN, ZURÜCK
M <= T/A/B; INDIREKT-ZÄHLER ERHÖHEN
ZEILE ETIKETT MIKROINSTRUKTIONEN BEMERKUNGEN
0269 ' JMP CNDX NSNG RJS INDIRECT+1 FÜR EINZELNE INSTRUKTIONEN
ZURÜCKSPRINGEN
0270 DEC PP P ZURÜCKSTELLEN
0271 JMP HORI HALTEN ODER UNTERBRECHEN
05 O CD CO •J>-K) "^. O OD OO
OO
CD
cn
CD QO

Claims (7)

  1. Patentansprüche
    Rechenanlage zur Übersetzung von vom zentralen Prozessor kommenden logischen Adressen in physikalische Speicherplatzadressen, dadurch gekennzeichnet , daß die logischen Adressen jeweils aus einem Seiten- (160, Fig. 5) und einem Wortanteil (125) bestehen, daß eine Vielzahl von Übersetzern (129, 130, 135, 140, 145) vorgesehen ist, die freigegeben und gesperrt werden können und aus einer logischen Seitenadresse eine physikalische Seitenadresse erzeugen, und daß eine Freigabe- und Adressierungsschaltung (105) vorgesehen ist,- die vom zentralen Prozessor (150) Befehlsignale (101, 102, 103) und die logische Seitenadresse empfängt und an die Übersetzer Steuersignale und die logische Seitenadresse weitergibt.
  2. 2. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß eine Zustandsschaltung (250, 268, Fig. 6A) elektrische Signale speichert, die den jeweiligen Zustand der Übersetzer (129, 130, 135, 140, 145) darstellen, wenn dieser Zustand durch die Befehlssignale (101, 102, 103) vom zentralen Prozessor (150) verändert wird, wobei mittels dieser elektrischen Signale die Übersetzer hinterher in den ursprünglichen Zustand zurückversetzbar sind.
  3. 3. Einrichtung nach Anspruch 1 und/oder 2, dadurch gekennzeichnet, daß die Freigabe- und Adressierungsschaltung (105, Fig. 5) zusätzlich ein erstes Signal (108, 110) erzeugt,
    welches zwei logische Zustände annehmen kann, deren zweiter die Freigabe eines der Übersetzer (129, 130, 135, 140, 145) anzeigt, und daß eine Wähleinrichtung (111) die logische Seitenadresse (160) auf den ersten logischen Zustand hin erzeugt und die physikalische Seitenadresse auf* den zweiten logischen Zustand hin erzeugt.
    609842/0882
  4. 4. Einrichtung nach einem der Ansprüche 1 bis 3, dadurch
    gekennzeichnet , daß eine erste Komparatorschaltung (170) ein zweites Signal erzeugt, wenn die logische Seitenadresse (160) gleich einer vorbestimmten Seitenadresse ist, daß ein Umgrenzungsregister (168) eine vorgewählte Wortadresse speichert, daß eine zweite Komparatorschaltung (165) auf das zweite Signal hin ein drittes Signal erzeugt, wenn das Verhältnis von Wortadresse zum Inhalt des Umgrenzungsregisters größer als ein erster und kleiner als ein zweiter vorbestimmter Wert ist, und daß eine Torschaltung (111, 109) die logische Seitenadresse auf das dritte Signal hin erzeugt, ohne Rücksicht auf den logischen Zustand des ersten Signals.
  5. 5. Einrichtung nach einem der Ansprüche 1 bis 4, dadurch g e kennzeichnet , daß jeder Übersetzer (129, 130, 135, 140, 145) Gruppen von adressierbaren Speicherregistern enthält.
  6. 6. Einrichtung nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet , daß eine erste Schaltung (265, 266, 205, Fig. 6A) einen ausgewählten Übersetzer (129, 130, 135, 140, 145) auf Steuersignale hin freigibt, die anzeigen, wenn der zentrale Prozessor (150) ein Unterbrechungssignal von der Eingabe/Ausgabe-Vorrichtung empfängt.
  7. 7. Vorrichtung nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet , daß eine zweite Schaltung (345, 260, 215, Fig. 7, Fig. 6A) auf die Befehlssignale hin abwechselnd einen ersten und einen zweiten ausgewählten Übersetzer freigibt, wobei die zweite Schaltung zur Ausführung von Subroutinen in einem Speicherbereich dient, zu dem durch den ersten Übersetzer von einem Programm Zugriff genommen wird, welches sich in einem zweiten Speicherbereich befindet,zu dem durch den zweiten der Übersetzer Zugriff genommen wird, und daß die zweite Schaltung außerdem zur Übertragung von Daten vom einen zum anderen Speicherbereich
    dient.
    609842/0882
    3*
    Leerseite
DE19762611598 1975-03-24 1976-03-19 Uebersetzungseinrichtung fuer speicheradressen Ceased DE2611598A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/561,470 US3970999A (en) 1975-03-24 1975-03-24 Memory expansion apparatus

Publications (1)

Publication Number Publication Date
DE2611598A1 true DE2611598A1 (de) 1976-10-14

Family

ID=24242114

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19762611598 Ceased DE2611598A1 (de) 1975-03-24 1976-03-19 Uebersetzungseinrichtung fuer speicheradressen

Country Status (5)

Country Link
US (1) US3970999A (de)
JP (1) JPS51118928A (de)
BR (1) BR7601815A (de)
DE (1) DE2611598A1 (de)
FR (2) FR2304962A1 (de)

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4042911A (en) * 1976-04-30 1977-08-16 International Business Machines Corporation Outer and asynchronous storage extension system
US4092715A (en) * 1976-09-22 1978-05-30 Honeywell Information Systems Inc. Input-output unit having extended addressing capability
US4086658A (en) * 1976-10-04 1978-04-25 International Business Machines Corporation Input/output and diagnostic arrangements for programmable machine controllers having multiprogramming capabilities
US4093986A (en) * 1976-12-27 1978-06-06 International Business Machines Corporation Address translation with storage protection
FR2400729A1 (fr) * 1977-08-17 1979-03-16 Cii Honeywell Bull Dispositif pour la transformation d'adresses virtuelles en adresses physiques dans un systeme de traitement de donnees
US4320455A (en) * 1978-01-09 1982-03-16 Honeywell Information Systems Inc. Queue structure for a data processing system
US4500952A (en) * 1980-05-23 1985-02-19 International Business Machines Corporation Mechanism for control of address translation by a program using a plurality of translation tables
US4403283A (en) * 1980-07-28 1983-09-06 Ncr Corporation Extended memory system and method
US4374417A (en) * 1981-02-05 1983-02-15 International Business Machines Corp. Method for using page addressing mechanism
US4481570A (en) * 1981-08-07 1984-11-06 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Automatic multi-banking of memory for microprocessors
US4513371A (en) * 1982-07-29 1985-04-23 Ncr Corporation Computer interface apparatus using split-cycle lookahead addressing for faster access to paged memory
US4488228A (en) * 1982-12-03 1984-12-11 Motorola, Inc. Virtual memory data processor
JPH0652511B2 (ja) * 1984-12-14 1994-07-06 株式会社日立製作所 情報処理装置のアドレス変換方式
JPS61160091U (de) * 1985-03-22 1986-10-03
US4727485A (en) * 1986-01-02 1988-02-23 Motorola, Inc. Paged memory management unit which locks translators in translation cache if lock specified in translation table
US4761736A (en) * 1986-01-02 1988-08-02 Commodore Business Machines, Inc. Memory management unit for addressing an expanded memory in groups of non-contiguous blocks
JPS62134151U (de) * 1986-05-23 1987-08-24
US4907190A (en) * 1986-08-08 1990-03-06 Toshiba Kikai Kabushiki Kaisha Computer control system and method for effecting sequence controls and servo-controls
US5109492A (en) * 1986-09-19 1992-04-28 Hitachi, Ltd. Microprocessor which terminates bus cycle when access address falls within a predetermined processor system address space
US4831522A (en) * 1987-02-17 1989-05-16 Microlytics, Inc. Circuit and method for page addressing read only memory
DE3890141T1 (de) * 1987-03-03 1989-04-13 Tandon Corp Computersystem mit computeradressenmodifiziersystem
US4849875A (en) * 1987-03-03 1989-07-18 Tandon Corporation Computer address modification system with optional DMA paging
US4891752A (en) * 1987-03-03 1990-01-02 Tandon Corporation Multimode expanded memory space addressing system using independently generated DMA channel selection and DMA page address signals
US5101339A (en) * 1987-08-10 1992-03-31 Tandon Corporation Computer address modification system using writable mapping and page stores
US5327542A (en) * 1987-09-30 1994-07-05 Mitsubishi Denki Kabushiki Kaisha Data processor implementing a two's complement addressing technique
US5307474A (en) * 1987-09-30 1994-04-26 Mitsubishi Denki Kabushiki Kaisha Apparatus and method for processing literal operand computer instructions
US4903194A (en) * 1987-11-12 1990-02-20 International Business Machines Corporation Storage addressing error detection circuitry
US4965720A (en) * 1988-07-18 1990-10-23 International Business Machines Corporation Directed address generation for virtual-address data processors
US5123098A (en) * 1989-02-28 1992-06-16 Hewlett-Packard Company Method for executing programs within expanded memory of a computer system using MS or PC DOS
US5247655A (en) * 1989-11-07 1993-09-21 Chips And Technologies, Inc. Sleep mode refresh apparatus
US5161218A (en) * 1989-11-13 1992-11-03 Chips And Technologies, Inc. Memory controller for using reserved DRAM addresses for EMS
US5317706A (en) * 1989-11-15 1994-05-31 Ncr Corporation Memory expansion method and apparatus in a virtual memory system
EP0429780B1 (de) * 1989-11-29 1997-11-12 Kabushiki Kaisha Toshiba Zum Anschluss einer Erweiterungseinheit geeignetes Rechnersystem
EP0443876A3 (en) * 1990-02-23 1992-01-02 Kabushiki Kaisha Toshiba Computer system capable of connecting expansion unit
US5282172A (en) * 1991-02-22 1994-01-25 Vlsi Technology, Inc. Look-ahead circuit for fast decode of bankselect signals in EMS systems
US5206935A (en) * 1991-03-26 1993-04-27 Sinks Rod G Apparatus and method for fast i/o data transfer in an intelligent cell
US5640531A (en) * 1993-06-22 1997-06-17 Unisys Corporation Enhanced computer operational system using auxiliary mini-cache for enhancement to general cache
US5537609A (en) * 1993-06-22 1996-07-16 Unisys Corporation Mini cache operational module for enhancement to general cache
US6460131B1 (en) * 1993-08-03 2002-10-01 Xilinx Inc. FPGA input output buffer with registered tristate enable
US5651139A (en) * 1993-12-23 1997-07-22 International Business Machines Corporation Protected system partition read/write access on a SCSI controlled DASD
FR2740237B1 (fr) * 1995-10-18 1997-11-14 Schlumberger Ind Sa Composant electronique a memoire synchronisee
US5974498A (en) * 1996-09-24 1999-10-26 Texas Instruments Incorporated Loading page register with page value in branch instruction for as fast access to memory extension as in-page access
JP3052857B2 (ja) * 1996-10-31 2000-06-19 日本電気株式会社 クラスタ間共有メモリアクセス方式
US5987581A (en) * 1997-04-02 1999-11-16 Intel Corporation Configurable address line inverter for remapping memory
US7631160B2 (en) * 2001-04-04 2009-12-08 Advanced Micro Devices, Inc. Method and apparatus for securing portions of memory
GB2378277B (en) * 2001-07-31 2003-06-25 Sun Microsystems Inc Multiple address translations
DE10163342A1 (de) * 2001-12-21 2003-07-10 Elektro Beckhoff Gmbh Unterneh Datenübertragungsverfahren, serielles Bussystem und Anschalteinheit für einen passiven Busteilnehmer
JP2003233534A (ja) * 2002-02-07 2003-08-22 Hitachi Ltd メモリシステム
EP1563374A2 (de) * 2002-06-07 2005-08-17 Sun Microsystems, Inc. Verwendung kurzer referenzen zum zugriff auf programmelemente in einem grossen adressenraum
US7480784B2 (en) * 2005-08-12 2009-01-20 Advanced Micro Devices, Inc. Ensuring deadlock free operation for peer to peer traffic in an input/output memory management unit (IOMMU)
US7793067B2 (en) * 2005-08-12 2010-09-07 Globalfoundries Inc. Translation data prefetch in an IOMMU
US7543131B2 (en) * 2005-08-12 2009-06-02 Advanced Micro Devices, Inc. Controlling an I/O MMU
US7548999B2 (en) * 2006-01-17 2009-06-16 Advanced Micro Devices, Inc. Chained hybrid input/output memory management unit
US8631212B2 (en) 2011-09-25 2014-01-14 Advanced Micro Devices, Inc. Input/output memory management unit with protection mode for preventing memory access by I/O devices
US9606803B2 (en) 2013-07-15 2017-03-28 Texas Instruments Incorporated Highly integrated scalable, flexible DSP megamodule architecture
US9715342B2 (en) 2015-07-03 2017-07-25 Xitore, Inc. Apparatus, system, and method of logical address translation for non-volatile storage memory

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3533075A (en) * 1967-10-19 1970-10-06 Ibm Dynamic address translation unit with look-ahead

Also Published As

Publication number Publication date
FR119649A (de)
BR7601815A (pt) 1976-09-21
JPS6122331B2 (de) 1986-05-31
FR2304962A1 (fr) 1976-10-15
US3970999A (en) 1976-07-20
JPS51118928A (en) 1976-10-19

Similar Documents

Publication Publication Date Title
DE2611598A1 (de) Uebersetzungseinrichtung fuer speicheradressen
DE69533005T2 (de) Bytecodeprogramminterpreter, Verfahren und Anordnung mit Vorprüfung von Datentyprestriktionen
DE69833008T2 (de) Prozessor mit instruktionskodierung mittels eines schablonenfeldes
DE2417795C2 (de) Datenverarbeitungsanlage
DE69229319T2 (de) System und Verfahren zur Konservierung der Unteilbarkeit eines Quellbefehls in übertragenen Programmbefehlen
DE69433339T2 (de) Lade-/Speicherfunktionseinheiten und Datencachespeicher für Mikroprozessoren
DE2517276A1 (de) Datenverarbeitungssystem
DE2714805C2 (de)
DE3685913T2 (de) Vektorenverarbeitung.
DE3689389T2 (de) Datenverarbeitungsprozessor.
DE2357003A1 (de) Programmierbarer prozessor
DE2756768A1 (de) Mikroprozessor-architektur
DE2720578A1 (de) Rechnersystem mit mehrprogrammbetrieb/mehrprogrammverarbeitung sowie verfahren zum betrieb eines solchen rechnersystems
DE112009000344T5 (de) Zugriffsrechte auf eine Speicher-Map
DE2657848A1 (de) Steuereinheit fuer ein datenverarbeitungssystem
EP0010186B1 (de) Vorrichtung zum Bearbeiten bezeichneter Hinweise
DE69130513T2 (de) Verfahren zur Durchführung boolescher Operationen zwischen zwei beliebigen Bits von zwei beliebigen Registern
DE69732793T2 (de) Acht-bit-mikrokontroller mit risc-architektur
DE69922238T2 (de) Mechanismus zur blockierung von ladeoperationen auf adressengeneration von speicherbefehlen und universeller abhängigkeitsvektor
DE2626703A1 (de) Intern programmierbares datenverarbeitungssystem
DE1549531A1 (de) Digitale Rechenanlage
DE2533737A1 (de) Datenprozessor
DE19824289A1 (de) Pipelineverarbeitungsmaschine
DE2617127A1 (de) Mehrfachprogramm-datenverarbeitungssystem
DE2948442C2 (de) Digitalrechenanlage

Legal Events

Date Code Title Description
8131 Rejection