DE2436963A1 - Verfahren und vorrichtung zur mikroprogrammierung in der zentraleinheit eines digitalrechners - Google Patents
Verfahren und vorrichtung zur mikroprogrammierung in der zentraleinheit eines digitalrechnersInfo
- Publication number
- DE2436963A1 DE2436963A1 DE2436963A DE2436963A DE2436963A1 DE 2436963 A1 DE2436963 A1 DE 2436963A1 DE 2436963 A DE2436963 A DE 2436963A DE 2436963 A DE2436963 A DE 2436963A DE 2436963 A1 DE2436963 A1 DE 2436963A1
- Authority
- DE
- Germany
- Prior art keywords
- field
- memory
- register
- command
- variable field
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 20
- 230000015654 memory Effects 0.000 claims description 139
- 230000006870 function Effects 0.000 claims description 24
- 238000012545 processing Methods 0.000 claims description 23
- 238000003860 storage Methods 0.000 claims description 18
- 230000000873 masking effect Effects 0.000 claims description 13
- 230000006978 adaptation Effects 0.000 claims description 6
- 238000012546 transfer Methods 0.000 claims description 5
- 230000008901 benefit Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 230000000295 complement effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 239000000543 intermediate Substances 0.000 description 3
- 230000000717 retained effect Effects 0.000 description 3
- 238000011982 device technology Methods 0.000 description 2
- 238000000980 resonant inelastic X-ray scattering Methods 0.000 description 2
- SQUHHTBVTRBESD-UHFFFAOYSA-N Hexa-Ac-myo-Inositol Natural products CC(=O)OC1C(OC(C)=O)C(OC(C)=O)C(OC(C)=O)C(OC(C)=O)C1OC(C)=O SQUHHTBVTRBESD-UHFFFAOYSA-N 0.000 description 1
- 101001022948 Homo sapiens LIM domain-binding protein 2 Proteins 0.000 description 1
- 238000012369 In process control Methods 0.000 description 1
- 102100035113 LIM domain-binding protein 2 Human genes 0.000 description 1
- 241001465754 Metazoa Species 0.000 description 1
- 101100064676 Mus musculus Edem1 gene Proteins 0.000 description 1
- 101100128278 Mus musculus Lins1 gene Proteins 0.000 description 1
- 241000283973 Oryctolagus cuniculus Species 0.000 description 1
- 101150094640 Siae gene Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000006071 cream Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010965 in-process control Methods 0.000 description 1
- CDAISMWEOUEBRE-GPIVLXJGSA-N inositol Chemical compound O[C@H]1[C@H](O)[C@@H](O)[C@H](O)[C@H](O)[C@@H]1O CDAISMWEOUEBRE-GPIVLXJGSA-N 0.000 description 1
- 229960000367 inositol Drugs 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- CDAISMWEOUEBRE-UHFFFAOYSA-N scyllo-inosotol Natural products OC1C(O)C(O)C(O)C(O)C1O CDAISMWEOUEBRE-UHFFFAOYSA-N 0.000 description 1
- 239000007858 starting material Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
- G06F9/226—Microinstruction function, e.g. input/output microinstruction; diagnostic microinstruction; microinstruction format
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Memory System (AREA)
Description
Xerox Square, Rochester, New York 14644, USA
Verfahren und Vorrichtung zur Mikroprogrammierung
in der Zentraleinheit eines Digitalrechners
Die Erfindung betrifft ein Verfahren zur Verwendung von in einem
Steuerspeicher eines Digitalrechners eingeschriebenen Mikroprogrammen zur Durchführung der Adressierung variabler Felder.
Die Erfindung betrifft weiterhin eine Digitalrechner-Anordnung zur Durchführung des erfindungsgemäßen Verfahrens mit einem
Hauptspeicher zur Speicherung von Befehlen fester Länge und
von Datenworten in Speicherplätzen* die feste Grenzen aufweisen, welche jeweils der Länge der Worte entsprechen und mit
einer Feldadressierungseinrichtung.,
509808/0824
Für den System-Programmierer tritt in der Datenverarbeitung
häufig das Problem auf, mit Feldern variabler Größe zu arbeiten,
und zwar innerhalb von Worten, weil in einer typischen Ausfuhrungsform von peripheren Geräten Daten verschiedener
Wortlängen und mit verschiedenen Formaten verlangt werden. \ Bei Prozeßsteuersystemen im Echtzeitbetrieb tri-tt dieses Problem
in verstärktem Maß auf. Die verschiedenen gerätetechnischen Anpassund
Steuereinheiten, die direkt vom Rechner gesteuert werden, sind in ihren typischen Ausführungsformen derart ausgebildet,
daß sie unter Verwendung von Steuerworten verschiedene Funktionen ausführen, wodurch die Leistungsfähigkeit der
gerätetechnischen Einrichtung auf ein Optimum gebracht wird, anstatt eine wirksame Anpassung der Peripherie an den Rechner -vorzunehmen»
Diese von peripheren Einrichtungen verwendeten Steuerworte weisen häufig eine variable Größe auf und sind
darüber.hinaus noch in Unterfelder aufgegliedert, die ihrerseits wiederum variabel sind. Außerdem muß ein Rechner, der
im Echtzeitbetrieb arbeitet, diese Operationen mit variablen Feldern in einem Minimum an Zeit ausführen. Diese Operationen
mit variablen Feldern werden gewöhnlich durch Programm-Unterroutinen ausgeführt, welche die variablen Felder aus den Standard-Speicherworten
herausholen, oder es können auch gerätetechnische Anpas s einheit en verwendet v/erden. Beispiele für
derartige Einheiten sind in den US-Patentschriften 3 680 O58
und 3 43O 202 beschrieben.
Ein in diesem Zusammenhang·, bei der Programmierung allgemein
auftretendes Problem, welches" jedoch für den Echtzeit-Programmierer
von besonderer Bedeutung ist, besteht darin, eine kurzzeitige Speicherung für Zwischenwerte mit hohem Wirkungsgrad zu
schaffen, während ein Programm läuft, und diese Zwischem^erte
abzuspeichern, während sich die zentrale Verarbeitungseinheit verzweigt oder von dem einen oder dem anderen Programm unterbrochen
wird. Diese Zwischenwerte werden geitföhnlich in einem
509808/0824
SenküLock gespeichert, cLho in einem Block, dessen Länge
variabel ist und bei welchem zwischen einzelnen Speicherworten nachträglich eine Zwischenspeicherung vorgenommen
werden kann, wodurch sich die Länge des Blockes vergrößert.
Ein derartiger Datenblock wird gewöhnlich in einem bestimmten
Bereich im Hauptspeicher eingeschrieben,, der für diesen
Zweck reserviert ist, wobei das erste oder das letzte Wort
in diesem Speicherblock in geeigneter Weise angezeigt wird und einige Befehle in der Befehlsliste zusammen mit der erforderlichen gerätetechnischen Einrichtung vorgesehen sind,
um diese Anzeige sowie den Zugriff zu den Worten in diesem Block handhaben zu können* Ein Senkblock wird auch oft als
Rückstellstapel "bezeichnet.
Der Erfindung liegt die Aufgabe zugrunde, ein Verfahren und
eine Vorrichtung der eingangs genannten Art zu schaffen, durch welche die Adressierung variabler Felder in einer
digitalen Datenverarbeitungsanlage im Hinblick auf einen Echtzeitbetrieb mit besonders geringem Aufwand an Gerätetechnik
einerseits und an Maschinenzeit andererseits gewährleistet ist«. ' ~ . ■ .
Zur Lösung dieser Aufgabe sieht die Erfindung vor, daß zunächst
ein Befehl zur Adressierung eines variablen Feldes vom Hauptspeicher aufgerufen wird, daß dieser Befehl dann
in ein internes Register der,zentralen Verarbeitungseinheit des Digitalrechners geladen wird, daß sich das Programm dann
in ein Mikroprogramm .im Steuerspeicher verzweigt, welches der
Funktion dieses Befehls entsprÜit, daß dann ein Datenwort
fester Länge aus dem Hauptspeicher aufgerufen wird, daß dieses Datenwort in ein erstes· und ein zweites internes Register
der zentralen Verarbeitungseinheit geladen wird, daß das variable Feld in dem ersten Register rechtsbündig angeordnet wird,
daß die Funktion des Befehls in dem variablen Feld im ersten Register abgearbeitet wird, daß das variable Feld in diejenige
Stellung surückverschoben wird, die.es vor der rechtsbündigen
Anordnung eingenommen hat, wenn dieser Befehl ein
50980 87 0824
Speicherbefehl ist, und daß dann der Inhalt des zweiten
Registers an seine ursprüngliche 'Stelle in dem Hauptspeicher gebracht wird, wenn der Befehl ein Speicherbefehl ist.
Eine besonders bevorzugte Anordnung zur Durchführung des erfindungsgemäßen Verfahrens zeichnet sich dadurch aus,
daß eine logische Schaltimg vorgesehen ist,' um mit den Worten fester Länge logische Operationen auszuführen, daß
weiterhin Register vorhanden sind, welche mit der logischen Einrichtung, derart gekoppelt sind, daß sie die V/orte fester
länge aufnehmen- können, und"zwar jeweils vor, während und
nach der Ausführung der logischen Operationen mit den Worten durch die logische Einrichtung, daß weiterhin eine Anpasseinrichtung
mit den Registern und mit der Speichereinrichtung gekoppelt ist, um die V/orte fester Länge zwischen
diesen beiden Einheiten zu übertragen, und daß eine Steuerspeichereinrichtung
vorgesehen ist, welche auf die in den Registern geladenen Befehlsworte anspricht, um einen einzelnen
Befehl, der ursprünglich aus der Hauptspeichereinrichtung übertragen wurde, in eine Folge von Mikrobefehlen
zu zerlegen, die intern in der Steuerspeichereinrichtung gespeichert sind, um die Befehle auszuführen, welche die Funktion
der Adressierung des variablen Feldes verlangt und um weiterhin die Mikrobefehlsfolge auszuführen, wobei die Steuerspeichereinrichtung
mit der Anpasseinrichtung und mit der Logikeinrichtung gekoppelt ist, um die gewünschte Funktion
in bezug auf das variable Feld zu erfüllen.
Weitere bevorzugte Ausführungsformen und vorteilhafte Weiterbildungen
der Erfindung ergeben sich aus den jeweiligen Unteransprüchen.
Ein wesentlicher Vorteil des Erfindungsgegenstandes besteht darin, daß in einem zu einer Einheit zusammengefaßten System
509808/0 8 24
aus Gerätetechnik und Systemprogrammierung zugleich die Möglichkeiten
zur Handhabung eines Senkblöckes und einer Adressierung
variabler Felder zusammengefaßt sind.
Gemäß der Erfindung ist weiterhin der Vorteil erreichbar, daß
sowohl der gerätetechnische Aufwand als auch die Anzahl der Befehle vermindert werden können, und zwar durch eine- besondere
Wechselwirkung zwischen Gerätetechnik und'Betriebssystem
der digitalen Datenverarbeitungsanlage. Gemäß der Erfindung werden nämlich die in Frage stehenden Funktionen in einem
Steuerspeicher einer Mikroprogrammier-Zentralverarbeitungseinheit ausgeführt, die im wesentlichen aus Karten besteht,
welche einen Speicher bilden, aus dem nur gelesen werden kann»
Ein weiterer Vorteil des Erfindungsgegenstandes liegt darin,'
daß dadurch erhebliche Kosten eingespart werden können, daß die gewöhnlich zur Adressierung variabler Felder und zur Handhabung
von Senkblöcken erforderliche gerätetechnische Einrichtung tie it gehend überflüssig wird.
Außerdem wird die Laufzeit verkürzt, da ein erfindungsgemäßes'
Mikroprogramm in einem Steuerspeicher aufgrund der geringeren
Zugriffszeit und der mit höherem Wirkungsgrad arbeitenden Kodierung
schneller läuft als ein entsprechendes Programm im "
Hauptspeicher. -
Eine Unterbringung von Daten im Hauptspeicher kann gemäß der Erfindung ebenfalls mit besonders gutem Wirkungsgrad erfolgen.
Um beispielsweise eine Reihe von η-Bit-Elementen im Hauptspeicher
unterzubringen, braucht der Programmierer lediglich an einer beliebigen Stelle im Speicher einen Block zu definieren,
welcher eine Länge von η Bits hat. Dann'kann das Programm gemäß der Erfindung Daten im Hauptspeicher ohne Berücksichtigung
von Wortgrenzen in diesen Block einschreiben. Andererseits wird nach demselben Verfahren ein direkter Zugriff zu einem beliebigen
Element in dieser Reihe ermöglicht.
509808/0824
_6_ 2U6963
Elementenreihen, wie sie nach dem erfindungsgemäßen Verfahren
erzeugt werden können, können besonders zweckmäßig dadurch verarbeitet werden, daß ein Elementenzähler als Schleifenendsteuerung
vorgesehen wird. Dann läßt sich ein Programm schreiben, mit welchem ein Zugriff zu jedem Element in der Reihe besteht,
wobei eine Zählerüberlaufanzeige vorgesehen ist, die abgefragt
wird, und wobei das Ende der Reihe entsprechend festgelegt ist. Gemäß der Erfindung ist somit weiterhin die Möglichkeit geboten,
bei der Ausführung solcher Operationen mit Bytes zu arbeiten.
Die Erfindung erleichtert weiterhin das Anlegen von komplizierten Tabellen, wobei der Hauptspeicher mit gutem Wirkungsgrad
ausgenutzt wird und ein direkter Zugriff zu einem beliebigen Element innerhalb solcher Tabellen besteht. Dies ist möglich,
da die Feldadressierungsbefehle in Verbindung mit einer Regisber-Indizierung
arbeiten. Wenn somit beispielsweise beliebige η Bits aus der Gesamtheit der Worte in einer Tabelle überprüft v/erden
sollen, wird eine Feldadressierungsbeschreibung gebildet, um auf diejenigen η Bits im ersten Wort in der Tabelle hinzuweisen,
und das Index-Register wird durch die Anzahl der Worte in der Tabelle incrementiert. Somit läßt sich ein Programm ausführen,
welches eine beliebige Gruppe von Bits in einer Tabelle ansprechen kann.
Die !fehlersuche in den entsprechenden Programmen ist besonders
einfach, da die Feldbeschreibungsworte für ein gesamtes Programm zweckmäßigerweise in einem speziellen Teil des Programms untergebracht-
werden können, wodurch es einfacher wird zu bestimmen, in welchem Teil des Hauptspeichers zu einer vorgegebenen Zeit
eingeschrieben wird oder aus welchem Teil gerade ausgelesen itfird. Dies kann besonders nützlich sein, wennibhler in Programmen
gesucht werden, die nicht laufen, und diese Eigenschaft ist weiterhin dann mit besonderem Vorteil anwendbar,
wenn gewährleistet sein muß, daß geschützte Bereiche im Hauptspeicher unangetastet geblieben sind.
509808/0824
Die Programme lassen sich auch leicht ändern, was bei jeglicher
nachträglicher Programmänderung von besonderem Vorteil ist. Weiterhin ist es besonders einfach, Tabellen von
einer Stelle im Hauptspeicher an,eine andere Stelle zu verschieben,
die Länge der verarbeiteten Elemente zu ändern oder die Anzahl der Elemente pro Tabelle zu erhöhen, weil'
dazu lediglich die entsprechenden Bits in einer hierzu vorgesehenen Feldbeschreibung zu ändern sind. Das übrige Programm
bleibt unveränderte Anstatt ein Programm- neu zu schreiben,
läßt sich^mä-3 der Erfindung, somit stattdessen eine einfache
Änderung der Feldbeschreibungsworte durchführen.
Die Erfindung wird nachfolgend beispielsweise anhand der Zeichnung
beschrieben; in dieser zeigen:
Fig. 1 das Format der Feldadressierungsbefehle, Fig«, 2 das Format der Feldbeschreibungen,
Fig. 3 eine Liste der Möglichkeiten,, welche vorgesehen werden '
können, um die effektive Adresse zu berechnen,
Fig. 4 eine Liste der Möglichkeiten zur Incrementierung,
Fig. 5 eine Liste der Möglichkeiten zur Tndizierung,
Fig. 6 eine Liste der Feldadressierungsbefehle (Operationskodes),
Fig. 7 ein Blöckdiagramm der gerätetechnischen Einrichtungen
der-Zentraleinheit,
Fig. 8 die vier verschiedenen.Möglichkeiten des Datenaustausche,
welche bestehen, wenn das I-Begi'ster geladen
wird, und
Fig.9A bis 9K Flu3diägramme des Feldadressierüngs-Mikropro-
gramms.· ■ . '■
'50980870824
_8„ 2 Λ 3 6 9 6
Zwei Typen von Befehlsworten bilden die Basis für dieses
System der variablen Feldadressierung. Gemäß Fig. 1 bilden
die Adressenbefehle den Operationskode, den Incrementierungs-
und den Indizierungsmodus und weisen auf die Feldbesciareibungen hin. Die Feldbeschreibungen enthalten
gemäß Fig. 2 die Adresse desjenigen Bits innerhalb des Wortes im Hauptspeicher, bei welchem dieses spezielle variable
Feld beginnt und geben die Anzahl der Felder und die Anzahl der Bits pro Feld in dieser speziellen Heihe an. Ein
vollständiger Satz von Möglichkeiten der indirekten Adressierung und der Register-'Indizierung sind vorgesehen, so daß
eine Steuerung ausgeübt werden kann, auf die von vielen Feldbeschreibungen zurückgegriffen werden kann, und zwar
durch einen Feldadressierungsbefehl und auf welche auch ein vielfältiger Indizierungsmodus anwendbar ist, und zwar in
bezug auf die ausgewählten Feldbeschreibungen«, Das resultierende System liefert eine beträchtliche Geschwindigkeit
und Flexibilität in der Verarbeitung von Datentabellen, die ungewöhnliche Formate aufweisen.
Die effektive Adresse eines Feldadressierungsbefehls ist die Adresse einer Feldbeschreibung. R, I, X, S und die Verschier
bungsfeider werden dazu benutzt, die effektive Adresse gemäß
Fig. 3 zu berechnen. Wenn das R-Bit und das S-Bit beide gleich Null sind, ist die effektive Adresse gleich dem Wert
in dem Verschiebungsfeld (d) des Befehls» Wenn das R-Bit gleich Eins ist, ist die effektive Adresse gleich dem Wert des Programmzähiers
-(P) plus dem Inhalt der Verschiebung. Wenn das I-Bit
gleich Eins ist, wird die effektive Adresse als eis indirekte Adresse behandelt. Dann ist die effektive Adresse der V/ert an
derjenigen Stelle, deren Adresse gleich der Verschiebung ist. Wenn das X-Bit gleich Eins ist, ist die effektive Adresse gleich
dem Wert in dem Index-Register #1 (X) plus der Verschiebung.
509808/082
Dies wird als "Nachindizierung" bezeichnet. Wenn das S-Bit
gleich Eins ist, ist die effektive Adresse gleich, dem Wert
der Verschiebung, plus dem Wert im Index-Register #2 (B). Dies wird als "Vorindizierung" bezeichnet. Die Vorindizierung
wird verwendet, wenn die effektive Adressenberechnung eine Indizierung erfordert, bevor "die indirekte Adresse berücksichtigt
ist. Bei der Nachindizierung.; wird der Inhalt, des Index-Registers addiert, nachdem die indirekte Adresse
berechnet ist. Alle möglichen Kombinationen der effektiven Adressenberechnung sind in der Pig. 3 dargestellt. SD bezieht
sich auf die Verschiebung mit Vorzeichenerstreckung.
Das Format der Feldbeschreibungsworte ist in der Fig. 2 dargestellt.
In der bevorzugten Ausführungsform enthält das
erste Feldbeschreibungswort die Adresse des Wortes im Hauptspeicher, welcher das Bit mit dem höchsten Stellenwert des variablen Feldes enthält. Die nächsten vier Bits geben .an, welches Bit innerhalb des Speicherwortes das Bit.mit dem
höchsten Stellenwert des Feldes ist. Somit kann bei dieser Ausführungsform ein beliebiges Bit innerhalb eines 16-Bit-Wortes in einem 64—K-Hauptspeicher als Beginn eines variablen Feldes festgelegt werden. Die Bits 4 bis 7 der zweiten Feldbeschreibung geben die Länge des Feldes, an, wobei hierfür bei der vorliegenden Ausführungsform maximal 16 Bit vorgesehen sind. Die Bits 8 bis 15 bilden ein 8-Bit-Zählfeld, welches in Verbindung mit der Selbstincrementierung und der Selbstdecrementierung verwendet wird, um eine Schleifenendsteuerung zu bilden, wenn der Betrieb in einer Elementenreihe beendet ist, oder um eine Anzeige dafür,zu liefern, daß in einer Senkblock-Operation der Block gefüllt ist.
erste Feldbeschreibungswort die Adresse des Wortes im Hauptspeicher, welcher das Bit mit dem höchsten Stellenwert des variablen Feldes enthält. Die nächsten vier Bits geben .an, welches Bit innerhalb des Speicherwortes das Bit.mit dem
höchsten Stellenwert des Feldes ist. Somit kann bei dieser Ausführungsform ein beliebiges Bit innerhalb eines 16-Bit-Wortes in einem 64—K-Hauptspeicher als Beginn eines variablen Feldes festgelegt werden. Die Bits 4 bis 7 der zweiten Feldbeschreibung geben die Länge des Feldes, an, wobei hierfür bei der vorliegenden Ausführungsform maximal 16 Bit vorgesehen sind. Die Bits 8 bis 15 bilden ein 8-Bit-Zählfeld, welches in Verbindung mit der Selbstincrementierung und der Selbstdecrementierung verwendet wird, um eine Schleifenendsteuerung zu bilden, wenn der Betrieb in einer Elementenreihe beendet ist, oder um eine Anzeige dafür,zu liefern, daß in einer Senkblock-Operation der Block gefüllt ist.
Gerade v/enn die Felder R, I, X und S in Verbindung mit der
Verschiebung der Feldadressierungsbefehle verwendet werden, um die effektive Adresse zu bestimmen, werden die Felder RX
509808/0824
~10 " ÜÄ3G963
und SX des ersten Peldadressierungsbefehls dazu verwendet, um
den effektiven Beginn der Feldadresse für die Feldbeschreibung zu bestimmen. Diese Möglichkeiten sind in den Fig. 4- und 5 dargelegt.
Wenn keine Selbstindizierung vorgesehen ist (SX=OOO) und keine Registerindizierung vorgesehen ist (RX=OOi), dann
ist der effektive Beginn der Feldadresse gleich dem Beginn der Feldadresse in der Feldbeschreibung. Wenn eine Selbstincrementierung
vorgesehen ist (SX=OO-I), wird die Bit-Adresse in der Feldbeschreibung um die Anzahl von Bits in der Feldlänge incrementiert,
und das Zählfeld wird um Eins incrementiert. Wenn die Bit-Ädresse einen Überlauf zeigt, wird der Beginn der Feldadresse
um Eins incrementiert, um zu zeigen, daß das erste Bit des variablen Feldes in dem nächsten V/ort im Speicher enthalten ist. Wenn
ein Überlauf auftritt, wenn das Zählfeld incrementiert ist, wird die Überlaufanzeige gesetzt. Eine Selbstincrementierung ist als
!Teil der inneren Schleife in einem Unterprogramm nützlich, wenn sequentiell {jedes Element in einer Elementenreihe identischer
Größe abgearbeitet wird. Wenn vor dem Abarbeiten einer Elementenreihe
identischer Größe das Zählfeld eine Zahl enthält, die gleich
2 , minus der Anzahl der Elemente in der Reihe ist, wird dann, wenn die Reihe dadurch abgearbeitet wird, daß Feldadressierungsbefehle
mit Selbstincrementierung verwendet werden, die Überlaufanzeige durch den Feldadressierungsbefehl gesetzt, welcher das
letzte Element abarbeitet. In diesem Falle kann das Zählfeld dazu verwendet werden, eine Unterprogramm-Schleifenendsteuerung
zu liefern, indem die Überlaufanzeige abgefragt wird.
Die Selbstincrementierung wird- auch bei der Abarbeitung von
Senkblöcken verwendet. Wenn ein Senkblock aus einer sequentiellen Reihe von Elementen identischer Größe besteht, v/obei
der laufende Beginn des Blockelementes eine Adresse auf v/eist, die größer ist als die Adresse der anderen Elemente in dem Block,
dann wird die Selbstincrementierung verwendet, um ein neues EIe-
509808/0824
ment in den Block hineinzuschieben. Wenn vor dem Feldadressierungsbefehl
die Feldbeschreibung auf das laufende oberste Element des Blockes hindeutet,jdann wird durch den Speicherfeldbefehl
mit Selbstincrementierung ein neues Element in den Block hineingeschoben, und die'Feldbeschreibung weist auf dieses
neue Element als laufendes oberstes Element des Blockes hin» In diesem Falle kann das Zählfeld dazu verwendet werden,
daß angezeigt wird, daß der Block voll ist. Wenn die Ausgängsbeschreibung,
welche gesetzt wurde, als der Senkblock leer war, eine Zahl im Zählfeld enthält, die gleich 2 , minus der maximal
zulässigen Größe des Senkblockes ist, dann wird die überlaufanzeige
gesetzt, und zwar anschließend an den Feldadressierungsbefehl,
welcher ein neues Element in den zuletzt verfügbaren Raum im 31ock hineingeschoben hat. · '
Nach der Selbstincrementierung wird der Inhalt des im Feld RX
bezeichneten Registers gemäß Fig. 5 zu dem Beginn der Feldadresse
hinzugefügt. Die Feldbeschreibungen im Hauptspeicher werden jedoch nicht verändert, was ein Ergebnis der Registerindizierung
darstellt. Dies ist eine wesentliche Unterschei- ,
dung zwischen Selbstincrementierung und Registerindizierung. Die Registerindizierung ist zweckmäßig, wenn bestimmte Bits
in einer Wortfolge abgearbeitet werden. Somit können die Feldbeschreibungen dazu verwendet werden, auf bestimmte Bits des
ersten Wortes hinzuweisen, und durch die Anwendung der Registerindizierung
kann eine Unterroutine durch'eine Reihe von Worten
in einer Tabelle durchprüfen, wobei nur diese speziellen Bits geprüft- werden. _ ■
Die Registerindisierung kann weiterhin dazu verwendet werden, auf bestimmte Elemente Bezug zu nehmen, die in einem Senkblock
enthalten sind, unter der Voraussetzung, daß die Elemente innerhalb des Senkblockes alle -16-Bit-Worte sind. Wenn bekannt ist,
daß ein bestimmtes Wort "n"-Worte unterhalb des laufenden obersten
Wortes im Block liegt, so kann dieses Wort dadurch ange-
509808/082
sprochen werden, daß ein Register mit einer ZaKL geladen
wird, die gleich M-nn ist. Dann würde ein Feldadressierungsbefehl
ausgeführt, und zwar mit einer Feldbeschreibung, welche auf das laufende oberste Wort im Block hinweist und eine
Registerindizierung auslöst, und zwar unter Verwendung des Registers, welches den Wert "~n" enthält. ·
Die Selbstdecrementierung (SX=IIi) ist im wesentlichen die
umgekehrte Operation zur Selbstincrementierung derart, daß .
die Bit-Adresse in der Feldbeschreibung um die Anzahl der Bits in der Feldlänge decrementiert wird und das Zählfeld
um Eins decrementiert wird» Ebenso werden Überläufe in ähnlicher
Weise behandelt- Wo jedoch die Selbstincrementierung die Feldbeschreibung verändert, bevor der Befehl auf dem
effektiven Feld vollständig ausgeführt ist, wird die Selbstincrementierung ausgeführt, nachdem der Befehl auf dem effektiven
Feld vollständig ausgeführt ist, und deshalb wird nur die Feldbeschreibung modifiziert, die im Hauptspeicher ist
und nachfolgende Befehle beeinflußt, ohne daß eine Auswirkung auf den 3sufenden Befehl besteht. Gemäß Fig. 4- können
Selbstincrementierung und Selbstdecrementierung nicht zugleich in demselben Feldadressierungsbefehl angesprochen
werden.
Die obige Beschreibung hat sich somit auf die Identifikation des effektiven Feldes bezogen. Dieser Abschnitt bringt eine
kurze Beschreibung des Befehls, der auf dem effektiven Feld
durch d"ie verschiedenen Feldädressierungsbefehle gemäß Fig„6
ausgeführt wird.
Es gibt zwei Ladebefehle, nämlich zua laden des logischen Feldes
und zum Laden des arithmetischen Feldes. Das Laden des logischen Feldes bewirkt, daß das effektive Feld an das Ende mit
dem geringsten Stellenwert im Akkumulator geladen wird und daß
509808/0824
der restliche Akkumulator mit Nullen gefüllt wird. Beim
Laden des arithmetischen Feldes wird das effektive Feld
in das Ende mit dem geringsten Stellenwert im Akkumulator geladen, und der Rest der Bits im Akkumulator wird
mit dem Bit mit dem höchsten Stellenwert des effektiven Feldes geladen. Bei dem Befehl zum Laden des .arithmetischen
Feldes ist angenommen, daß das Feld einen mit einem Vorzeichen versehenen Wert hat, und demgemäß erfolgt
beim Beladen des übrigen Akkumulators mit,dem Bit mit dem
höchsten Stellenwert des Feldes eine Vorzeichenerstreckung.
Es gibt drei Speicherbefehle, nämlich Speichernfeld, Speichernnull-Feld
und Speicherneins-Feld. Speichernfeld ersetzt das effektive Feld im Speicher'durch die η Bits mit
dem geringsten Stellenwert des Akkumulators, wobei gleich η gleich der Anzahl der Bits im effektiven Feld ist. Speichernnull-Feld
ersetzt jedes Bit des effektiven Feldes im Hauptspeicher mit der Ziffer Null. Speicherneins-Feld ersetzt
Jedes Bit des effektiven Feldes im Hauptspeicher,mit der
Ziffer Eins. Bei allen Speicherbefehlen werden, im Hauptspeicher nur diejenigen Bits ersetzt, die, einen Teil, des
effektiven Feldes darstellen.
Es gibt zwei jiefehle zum. Vergleichen, nämlich Vergleichen
logisches Feld und Vergleichen arithmetisches Feld. Vergleichen logisches Feld spricht ein 16-Bit-Wort an, welches
das effektive Feld am Ende mit dem geringsten Stellenwert enthält und Nullen in allen anderen Bitpositionen und
vergleicht dann dieses Wort mit dem Inhalt des Akkumulators, Die Anzeigen für Überlauf und Beibehalten werden gesetzt
oder zurückgestellt, um anzuzeigen., ob der Akkumulatorin- ,
halt größer, kleiner oder gleich "dem Vergleichswort ist. Vergleichen arithmetisches Feld ist dasselbe wie Vergleichen
logisches Feld, mit der Ausnahme, daß das mit dem Inhalt des Akkumulators zu vergleichende 16-Bit-Wort durch Vorzeichen-
509808/0824
erstreckung des Bits mit dem höchsten Stellenwert des effektiven
Feldes in alle anderen Bits des Worts gebildet wird.
Es gibt einen Abtastbefehl, Abtasten linkes Bit des Feldes. Durch diesen BefeüL wird das Bit mit dem höchsten Stellenwert
des effektiven Feldes in die Übertragungsanzeige geladen. Dies wird verwendet, um den Zustand eines bestimmten
Bits im Speicher zu prüfen, ohne daß der Inhalt des Akkumulators verändert wird.
Die zur Durchführung dieser Feldadressierung erforderlichen Einrichtungen sind im Blockdiagramm der Fig. 7 dargestellt
und lassen sich allgemein als zentrale Verarbeitungseinheit mit einem Mikroprogramm-Steuerspeicher bezeichnen. Die Fig.1
bis 6 beschreiben den Maschinenkode für alle Feldadressierungsbefehle und alle Feldbeschreibungen. Die Befehlsmaschinenkodes
v/erden von den Geräten in Steuerspeicheradressen übersetzt und werden dazu verwendet, die verschiedenen Feldadressierungs-Mikroprogramme
anzusteuern, die im Steuerspeicher enthalten sind, die alle innerhalb einer Seite von 256 mal 60 Bit untergebracht
sind. Diese Mikroprogramme verwenden die Information in den Feldbeschreibungen und den Feldadressierungsbefehlen,
um die entsprechenden Bits aus dem Hauptspeicher zu holen und sie gemäß den bezeichneten Befehlen zu verarbeiten.
Die zentrale Verarbeitungseinheit gemäß Fig. 7 ist um eine arithmetische Logikbaugruppe (ALU) 1 mit 16 Bit aufgebaut,
welche alle erforderlichen arithmetischen oder logischen
Funktionen ausführt. Die zwei Eingangsschienen sind die A-Schiene 2 und die B-Schiene 3, und der Ausgang wird über die
zentrale Verarbeitungseinheit auf die S-Schiene 4- verteilt. Linksverschiebungen und Rechtsverschiebungen der Daten wer-
.. den normalerv/eise im W-Register 5 ausgeführt. Das SW-Register
6 steuert das Laden und das Entladen des W-Registers auf die S-Schiene.
509808/0824
Der SA-Schalter 7 ist ein Multiplexer, welcher bestimmt, welche
Funktion .auf -die, ATSchiene mit .16 Bit zu bringen ist. Me wesentlichen
EinganssiurLkti-onen werden folgendermaßen definiert: P ist
der Ausgang des Speichers 9- F/2 ist der Speicherausgang, und zwar um eine Stelle nach rechts verschoben. Dies wird in Verbindung
mitvder Kultiplikationseinrichtung verwendet. 2F ist
der Ausgang des Speichers, ,und zwar um eine Stelle ,nach links
verschoben. Dies wird in Verbindung mit der Divisionseinrichtung verwendet. .PSW ist das Programmstatuswort, welches die
Überlauf- und die Ubertragungsanzeige jeweils enthält. I ist der Ausgang des I-Registers 10. Der DIO-Eingang wird auf einem
Satz von Datenleitungen von einer peripheren Steuereinheit 11 empfangen. Der FGA-Eingang ist die Adresse des laufenden
Mikrosteuerwortes plus Eins. Dies wird gewöhnlich für die
Anforderung der Mikrounterroutine "Verzweigen und Sichern" ver*-
wendet und als eines der Worte im Speicher abgespeichert. . ,
Der SB-Schaljber 8 ist ein. weiterer Multiplexer, welcher bestimmt, welche'Funktion auf die B-Schiene 2 mit 16 Bit zu
bringen ist, welche.den. anderen Eingang zu dem ALU 1 darstellt.
MBR ist der Dateneingang vom Hauptspeicher; 11» SD ist das untere Byte der MBR-Daten, und zwar mit dem Vorzeichen des Bytes (Bit 8),
welches über das obere Byte ausgedehnt .ist. Dies wird für die
Berechnung der effektiven Operandenadresse verwendet, D ist das
untere Byte der HBR-Da.ten, und zwar jeweils mit.der Ziffer O
im oberen Byte. Dies wird ebenfalls zur.Berechnung der effektiven
Operandenadresse verwendet. Die spezielle Anwendung dieser
zwei Eingänge ist in der-Fig. 5 dargestellt. W sind die .·
Daten vom. W-Register 5- CUT ist der Ausgang eines Zählers 15
mit 8 Bit, der in der zentralen Verarbeitungseinheit enthalt
ten ist. .-',--·'-'
Der Speicher 9 kann aus bipolaren Speicherkarten mit beliebigem
Zugriff aufgebaut sein und hat eine,Kapazität von 32 16-Bit-Worten.
Die. ersten.. 8 Worte haben spezielle Funktionen,
509808/0824
und zwar wie folgt: Z ist eine O-Quelle. P ist die Adresse
des im Hauptspeicherprogramm laufenden Befehls. L ist die Yerbindungsadresse. T dient zur vorübergehenden Speicherung.
X ist das Index-Register Nr. 1, welches zur Nachindizierung
verwendet wird. B ist das Index-Register Nr. 2, welches zur Yor indizierung verwendet wird. E ist die Erstreckung des
Akkumulators und A ist der Akkumulator. Die übrigen 24- Stellen können von der Mxkroprogrameinrichtung als Arbeitsspeicherplätze
verwendet werden und werden als Speicher 1 bis 24· bezeichnet. Das MBW-Register 13 enthält Daten, die in den
Hauptspeicher eingeschrieben werden. Das MBR-Register enthält Daten, die von dem Hauptspeicher ausgelesen wurden. Das
MA-Register 14- enthält die Adresse des Speicherplatzes im Hauptspeicher, zu welchem der laufende Zugriff erfolgt.
Der Steuerspeicher 20, der aus reinen Auslesespeicherkarten
aufgebaut sein kann, enthält das gesamte Mikroprogramm mit 60 Bit mal 256 Worten, welches den gesamten Adressierungsumfang
des variablen Feldes festlegt. Der nächste Adressengenerator 19 empfängt die Adresseninformation vom Steuerspeicher
und bestimmt die nächste Steuerspeicheradresse, die angesprochen werden soll, und zwar entweder direkt von
den Steuerspeichereingängen oder indem eine Verzweigung zu einer Adresse erzwungen wird, welche durch die Daten aus dem
I-Register 10 festgelegt ist.
Das I-Register 10 kann durch den I-Multiplexer 16 von einer
der folgenden vier Quellen geladen werden: vom I-Register, vom MBR-Register, von der S-Schiene oder vom W-Register.
Es können Daten in das I-Register auf einem der vier Wege geladen werden, die in der Fig.8 dargestellt sind, was zu
einer gerätetechnischen Konfiguration führt, die Byte-Daten und hexadezimale Daten innerhalb einer minimalen Ausführungszeit verarbeiten kann. Beispielsweise könnte ein Byte-Aus tausch
50980 8 /0824
durch eine kreisförmige Verschiebung von 8 Bits nach, rechts
erfolgt sein und ein Austausch einer, hexadezimalen Information (hex) könnte durch eine Reihe von Verschiebungen mit
entsprechender Maskierung ausgeführt sein. In dieser Ausfüh-.rungsform
werden jedoch eine hexadezimale Verschiebung und eine Byte-Verschiebung direkt mit einer entsprechenden Ersparnis
an Rechnerzeit und Programmierungsaufwand erreicht-
In der nachfolgenden Beschreibung des St euer speicherprogr amins
wird erklärt, wie die in der Fig.7 beschriebene gerätetechnische
Einrichtung dazu verwendet- wird, die oben beschriebenen
Feldadressierungsfunktionen auszuführen. Die Fig. 9A bis: 91
bilden ein detailliertes Flußdiagramm des gesamten Mikroprogramms für die variable Feldadressierung, welches im Steuerspeicher
enthalten ist. Jeder Kasten oder Block stellt ein Wort im Programm dar. Über jedem Block ist die symbolische
Stelle des Befehls angegeben und in .jedem Block ist eine symbolische Darstellung des Datenflußes angegeben, der erreicht
wird, wenn dieser Befehl ausgeführt wird.
In der Fig. 9A ist die Stelle X1 der grundlegende Ausgangspunkt
bei der Ausführung aller Befehle. An, diesem Punkt enthält
das MBR-Register die erste Hälfte des Feldadressierungsbefehls, der als Byte (siehe Fig.8) in das I-Register übertragen
wird. Dabei wird auch der Programmzähler um 1 incrementiert
und in das MA-Register abgespeichert, um später dazu
verwendet zu werden, die zweite Hälfte des Befehlswortes anzusprechen, wobei gleichzeitig eine Abspeicherung in das
W-Register zur späteren Verwendung erfolgt. An diesem Punkt tritt eine Verzweigung für den Inhalt des I-Registers auf. "
Wenn die Bits 0 bis 9 den in der Fig.1 dargestellten Wert haben, verzweigt sich das Programm an die Stelle FRD4-X2.
Für andere Befehle als Feldadressierungsbefehle verzweigt
sich das Programm an eine andere Stelle. An der Stelle FRD4X2
509808/0.8 2A
werden die SX- und RX-Felder auf das Vorhandensein der
Möglichkeit einer variablen Feldadressierung geprüft und wenn dies nicht der Fall ist, verzweigt sich das
Programm auf eine Fehlerroutine. Die nächsten drei Befehle verschieben die RX- und SX-Felder derart, daß das
RX-FeId an einer geraden hexadezimalen Grenze liegt und speichert das Ergebnis in der Speicherstelle 10 zur nachfolgenden
Verwendung. Schließlich wird der Inhalt des MBR-Registers, nämlich die zweite Hälfte des Feldadressierungsbefehls,
als Byte in das !-Register übertragen und weiterhin an der Speicherstelle 11 abgespeichert. Eine 12-V/ege-Verzweigung
erfolgt jetzt bezüglich des Inhaltes von I^ bis !/je» was den Feldern R, I, X und S entspricht.
Der übrige Teil der Fig.9A ist ein Flußdiagramm des Vorganges, durch den die effektive Adressenberechnung in der
Fig.3 durchgeführt wurde. Wenn beispielsweise das RIXS-FeId
0000 ist, verzweigt sich das Programm nach FROX6, v/o die
Verschiebung plus 1 in das MA-Register geladen wird. Eine 1 wird dem Mikroprogrammierer in diesem Falle zweckinäßigerweise
zugeführt, da das zweite Feldbeschreibungswort zweckmäßigerweise zuerst abgearbeitet wird. Diese Adresse wird
außerdem zur späteren Verwendung im W-Register abgespeichert. Wenn RIXS gleich 0001 ist, verzweigt sich das Programm nach
FR1X6. An dieser Stelle sei ein Hinweis auf die verwendete logische Symbolik gegeben. In der Fig. 3 bedeutet ein Buchstabe
B in Klammern "den Inhalt von B". Dadurch soll eine indirekte Adressierungsfunktion bezeichnet sein. Somit gibt
in der zweiten Zeile der Fig. 3 die effektive Adresse die Verlagerung plus den Inhalt des B-Registers an. Es sei darauf
hingewiesen, daß diese Bedeutung in der Fig. 3 beibehalten ist, so daß alle effektiven Adressenberechnungen genau festgelegt sind, während diese Bezeichnungsweise in den Flußdiagrammen
nicht beibehalten ist, da die funktionale Beziehung
509808/0824
, '·■■" 2Ä36963 19-·
aus dem Zusammenhang und der Beschreibung ohnehin deutlich
werden dürfte. Sie an den Stellen FR5X6 'enthaltenen Befehle
7 und 8 veranschaulichen eine doppelte indirekte Adressenberechnung.
In FR5X6 ist der Inhalt des B-Registers plus
der Verschiebung in das MA-Register geladen- " In FR4-X7 wird
das Wort' im Speicher ausgelesen und a^Ls diejenige Adresse
verwendet, welche schließlich in die'MA- und W-Register in
FR4-X8 geladen werden. Auf diese V/eise wird die Programmsteuerung
zur Fig. 9B des Flußdiägramms übergeleitet, wobei die effektive Adresse des zweiten Feldbeschreibungswortes
in den MA- und W-Registern berücksichtigt ist.
In der Fig.9B verzweigt sich das Programm neunfach auf die Bits 8 bis 11 des I-Registers, was den. vier Operationskode-Bits
entspricht. Für jeden ausgeführten Operationskode wird die Adresse der ersten Beschreibung in.das MA-Register geladen
und in den Speicher 12 zur späteren· Verwendung eingeschrieben,
und die zweite Beschreibung wird aus dem Hauptspeicher in das MBR-Register gebracht. Weiterhin werden die
YO-y Y1- und Y4-Markierungen in Abhängigkeit von jedem Operationskode
gemäß Fig. 6 gesetzt. Für nicht ausgeführte Operationskode-Bitkonfigurationen erfolgt eine Verzweigung
in eine Fehler-Unterroutine. ■■-.-·■■-..
Das Flußdiagramm in der Fig.9C' veranschaulicht die Durchführung der Selbstincrementierung, der Selbstdekrementierung und
der Indizierungsmöglichkeiten, welche dem Programmierer zur Modifizierung der Feldbeschreibungsworte zur Ausführungszeit
geboten werden. Bei FDISG1 wird das im MBR-Register enthaltene
Wort, das zweite Feldbeschreibungswort, vorübergehend in den
Speicher 14 eingeschrieben, und es wird weiterhin als Byte
bei FD1SC2 in das I-Register überführt, wobei' der Feldlängenteil
des I-Registers in das W-Register geladen wird und in den
5 09 8:0,87,0 8,2 4
Speicher 15 eingeschrieben wird und weiterhin das erste
Feldbeschreibungswort in das MBR-Register geladen wird. Bei FDISC3 wird der Inhalt des MBR-Registers, nämlich der
Beginn der Feldadresse, in den Speicher 13 eingeschrieben. Sie nächsten drei Plätze speichern das zweite Feldbeschreibungswort
im Speicher 16, maskieren und sichern die Bit-Adresse
im Speicher 17 und laden die RX- und die'SX-Bits
aus dem Speicher 10 in das I-Register zur späteren Verzweigung.
FDISC? und 8 berechnen die Endbit-Ädresse durch
Addierüng des Inhaltes aus dem Speicher 1?» der Bit-Adresse,
zu dem Inhalt von W, der Feldlänge. Dies könnte zu einer
Zahl zwischen 0 und 30 führen.
Mit der vorläufig vorgenommenen Bitverarbeitung erfolgt nun
eine sechsfache Verzweigung auf Io bis I.ri welche die sechs
SX- und RX-Möglichkeiten darstellt. Wenn keine dieser Möglichkeiten
benötigt wird, geht das Programm nach NXSHRX, wo der Speicher 13, der vorhergehende effektive Beginn der
Feldadresse, direkt in die MA- und W-Register geladen wird,
um für den nächsten effektiven Beginn der Feldadresse verwendet zu werden. Mit anderen Worten, der Beginn der Feldadresse
ist nicht modifiziert worden.
Wenn von der Möglichkeit der Indizierung Gebrauch gemacht
werden soll, setzt das Programm bei NSXRX ein, wo der Inhalt
des Speichers 13r nämlich der effektive Beginn der Feldadresse, zu dem Inhalt äes^spezifizierten Index hinzugefügt
wird, und dieses Ergebnis wird dazu verwendet, die MA- und
' W-Register zu laden. Wenn eine Selbstdecrementierung und eine
Index-Registrierung erforderlich sind, tritt das Programm bei
SDRX ein, wo der Inhalt des angegebenen Index-Registers plus *
dem effektiven Beginn der Feldadresse dazu verwendet werden,
den neuen effektiven Beginn der Feldadresse zu berechnen. Dies
ist identisch mit der Situation, in welcher von keiner Incre-
509808/0824
mentierungsmöglichkeit Gebrauch gemacht. wird, da. die Selbstdecrementierung
nicht ausgeführt wird,1 bevor ein Datenzugriff erfolgt. In ähnlicher Weise tritt dann, „wenn nur eine Selbstdecrementierung
verlangt wird, das Programm in SBKRX ein, .wo der effektive Beginn der Feldadresse.direkt; in die W- und MA-Register
geladen wird. In allen obigen Fällen wird das Programm
durch SRX2 und 3 fortgeeetzt, wo das Programm entsprechend vorbereitet
wird, sowohl bei einer YO-Markierung, als auch beim .
Inhalt des Speichers 16 verzweigt zu werden,, was-der .zweiten
Feldbeschreibung entspricht. Diese zwei SB-Modusarten setzen .._
eine Markierung X3> um später.im Programm eine-Selbstdecrementierung
auszulösen.
Wenn die Selbstincrementierung.vorgesehen.ist, tritt das Programm
bei SXNBX ein, wo der Inhalt des Speichers 19,1ISmIiCh
die Endbit-Adresse, um Eins erhöht.wird, um im; W-Register abgespeichert
zu werden. Dieser Wert wird um,Eins erhöht, .da es
eine Addition der Feldlänge und der Bit-Adresse ist, wo die
Feldlänge derart definiert ist, daß .sie um Eins kleiner ist
als die Anzahl der Bits im.Feld. Die Selbstincrementierung
und -indizierung führt zu einer Verzweigung nach SXRX, wo eine ähnliche Endbit-Adressenberechnung durchgeführt wird.
Zusätzlich wird eine Y2-Markierung derart gesetzt, daß diese zwei Möglichkeiten im Programm später voneinander, unterscheidbar
sind. BeiSX2 wird der Inhalt des Speichers 12, der Beginn ■
der Feldadresse in dem ersten Feldbeschreibungswort, in das MA-Register
geladen. Wenn keine Indizierung, erfolgt, so bleibt dies der effektive Beginn der Feldadresse. Außerdem wird W zumindest
teilweise in das I-Register gebracht. Wenn in den folgenden Programmschritten
die Bitzählung plus-der Feldlänge plus Eins gleich
einer Zahl ist, welche größer ist als 15» dann wird nach dieser
Übertragung der Überlauf in das Bit mit dem geringsten Stellenwert des !-Registers gebracht. Dies wird bei SX3 durch eine
Maske ausgesondert, in W geladen und zu dem effektiven Beginn
der Feldadresse bei SX4- addiert. Dies führt zu dem Ergebnis,
509808/Ό82Α
.- 22 -
daß bei einer Selbstincrementierung mit einem Wort, welches _
ausreichend groß ist, um eine Grenze zu überschreiten, der Speicher 1 um eine Einheit incrementiert wird, um anzuzeigen,
daß ein neuer effektiver Beginn der Feldadresse vorliegt·
Bei SX5 bis SX8 wird die zweite Feldbeschreibung assembliert.
Die Zählung wird um Eins erhöht, zusammen mit der im Speicher 15 enthaltenen Feldadresse in das I-Register gebracht, und das
Ergebnis mit der neuen Bit-Adresse, die in SX2 in I geladen wurde, wird zur Übertragung in den Hauptspeicher in das MBW-Register
gebracht. BeiSX9 wird der Inhalt des Speichers 12, der an dieser Stelle die Adresse der ersten Feldbeschreibung
enthält, vermehrt um Eins,.in das MA-Register geladen, so daß
die zweite Feldbeschreibung, die gerade assembliert wurde, an eine geeignete Stelle im Hauptspeicher gebracht wird. An dieser
Stelle erfolgt eine Vier-Wege-Verzweigung bei der Y2-Markierung und der entsprechenden Zählung. Die Y2-Markierung wird
gesetzt, wenn die SXRX-Möglichkeit gefordert ist. An dieser
Stelle im Programm ist die Selbstincrementierung abgeschlossen, und das Programm springt jetzt auf die anfängliche Sechs-Wege-Verzweigung
zurück, um den RX-Teil des Befehls abzuarbeiten. Bevor der Rücksprung erfolgt, wird die Y2-Markierung zurückgestellt
derart, daß die SX-Möglichkeit nicht erneut ausgeführt
wird, und das I-Register wird wieder auf seinen ursprünglichen Inhalt zurückgesetzt, so daß eine weitere Sechs-Wege-Verzweigung
erfolgen kann. Wenn keine Indizierung verlangt wird, werden die MA- und'W-Register aus dem Speicher 13 geladen, der den modifizierten
Beginn der Feldadresse enthält. Wenn schließlich die Zählung auf Null zurückgegangen ist, wird der Überlaufanzeiger zur
späteren Verwendung im Programm gesetzt.
Wenn; die YO-Markierung zurückgestellt ist, wodurch angezeigt ist, caß ein Ladebefehl ansteht, verzweigt sich das Programm
in Fig. 9D. An diesem Punkt enthält das I-Register das zweite
509808/0824
FeildbeschreibungsWort,, und. es.erfoigt eine Z
gung au;f die Bit-Adresse und die'" Feldlänge. Allgemein 3
ddie Flußdiägramme ''iö den -Fig,, fD und. 9E auf den
Wartes im Speicher, wobei"1 eine'reOtetsbiind^ge AjiO2?dniing
dej· Bits durch den Bef ehl "easforderlich is't,, wobei weiterhin
die übrigen Bits durch eine Maske ausj|©sonder4 werden "und
au^eiKdem eine geeignete ^o^zeioiieaa^Informa%ion gewälo?lels-tet;
ist., J)jL©se, Funfctio;nen Isönnten in. einer allgemeinen Unterrou-.durchgeführt
werden.. B^attdeSiSen■ .s:'±nä Jedoch ge^ennte
en zur Verarbeitung von geraden Worten vorgeae'hen,
v/eiterhin von geraden Bytes r vo;ii geraden fifejcade'isiinal"-·
agjalen, von ungeraden Feldern und'von: einzelnen Bits. Diese
Maßmahme wurde getroffBn^ weil das Pacteen, das Aussör'tiere-n
und; die Handhabung vom Byte-, Heixadezimal-- ujad BC^lnföimation
beim Frogrammieren häufig voricöymmt: und aiuf diese ¥eise ein beträGhtliehes'
Maß an'Has'chinenzeit. eingespart werden :k;ami, indem,
für jeden Fall spezielle Programme geschrieben werden. Die obigen
Bezeichnungen sind folgendermaßeh festgelegt» Ein gerades
Wort, hat 16 Bit, beginnend mit Bit1 0, ein gerades Byte hat 8 Bit,
beginnend mit Bit 0 oder 8, eine gerade Mekadezimalzahl hat 4- Bit,
beginnend mit Bit 0, 4, 8 öder \2_r ein einzelnes Bit ist' ein
Bit in einer beliebigen Position und ein ungerades Feld fällt'
unter keine der obigen Moglichiceiten.' ϊη allen Fällen verzweigt
sich das Programm aus diesen Unt err out in en heraus,' wobei die
erforderlichen Daten in dem W^Registersteheh,' in geeignetei1
Weise maskiert sind und rechtsbündig angeordnet sind, und der
Operdtipnsicpde steht im !-'Register.
Zur Verarbeitung eines geraden Wortes^ ist keine Maskierung, erforderlich
und auch nicht notwendig, daß das W;ört bündig angeordnet
ist. Deshalb verzweigt sichV das Programm nach IiDEIi, U)EWi
und I/DEW2, wo der Operationskode direkt in das !-^Register geladen
wird und die Daten in das Vi-Re gist ei? geladen werden. Im
speziellen Fall des Befehls, zum Abtasten des linken Bits eines
Feldes wird die Y4-Markierung gesetzt.. Diese HÖgiichkeit wird
509808/0824
■ : -i.v.'-: ORIGINAL INSPECTED
unten in Verbindlang mit Fig. 9E diskutiert.
Zum laden eines geraden rechten Bytes verzweigt sich das Programm nach EDSSB, wo die Daten direkt in den Speicher 16 eingeschrieben
werden. Wenn die Daten bereits rechtsbündig angeordnet sind, sind keine weiteren Maßnahmen erforderlich. Um
gerade linke Bytes zu laden, werden die Daten zunächst als Byte in das !-Register übertragen, um die interessierenden
Daten rechtsbündig anzuordnen, und dann werden sie in den Speicher 16 eingeschrieben. In jedem Falle verzweigt sich
das Programm auf X1, wo zwischen logischem und arithmetischem Einspeichern unterschieden wird. Für logisches Einspeichern
verzweigt sich das Programm nach LDB1XO, wo der Operationskode
in das !-Register geladen wird. Bei LDB2 und EDB3 werden
die Daten maskiert und zur Vervollständigung der Funktion in das W-Register geladen. Im Falle des aritlametischen Ladens
muß weiterhin ©ine geeignete Vorzeichenerstreckung erfolgen." In diesem Falle verzweigt sich das Programm durch 3JDB1X1, wo
d©r Speicher 15« die Feldlänge, ia das 1-Hegister geladen wird.
Bie übrigen Teile dieser Unterroutine werden in Verbindung mit äer figo9J§ diskutiert* Bie vier gerades hexadezimalen Schlei-
£©n ijiaoL süftnlieh. den Routinen für ein gerades Byc©s und ziirar
ia der U@ise9 daß die Baten rechtsbündig angeordnet und in den
Sjp<s>ieJh.©E' 16 ©izjgesehriefeen iirer&@n9 ΐ/otoei aiae Verzweigung auf
dl© Markierung Ti erfolgt und die Baten wie oben maskiert wor
in der Pig· ·_ 933 stellt das Programm- dar, wel-
slb.es ©rfo^&erlieh ist, um eis ungerades Feld sii lade3Qf- welches
fe©ia© Speielh,eBg2?enze überschreitet 9 7;jeit@rairL mim Laden eines
-welelaes sine Speiehergrsnge ül5erseireeitet2
¥srarbeitiane τοπ "aritMastiseliea l-adefeefehlen,
Iferarbeiten '/on 3efeiil©2i aim Äl3-cas"t82i des liafeen
Bits ©ia©s leides und sum !Laden eines einseinen Bits. Um ein
nagerades IsId9 uelohes lceine Spe-icnergrensse übersenreitet, zu
"509808/0824
laden, beginnt das Programm bei IDOW, wo das Einer-Komplement der Endbit-Adresse in den Maschinenzähler geladen wird. Das
Datenwort wird nun in das W-Register gebracht und so lange nach rechts verschoben, bis der Zähler auf Null geht. An diesem
Punkt sind die Daten rechtsbündig angeordnet und in den Speicher 16 eingeschrieben. Dann wird die Feldlänge in .das I-Register
geladen, und das Programm verzweigt sich auf eine Tabelle von Unterroutinen, welche das Vorzeichen identifizie-.
ren und eine Maske darstellen. Die ersten vier Sätze von Unterroutinen sind in der Fig.9K dargestellt. Die Peldlänge, eine
Anzahl von Null bis P in hexadezimaler Darstellung bestimmen
eine Verzweigung auf eine dieser Unterroutinen. Da die Peldlänge in I immer um eins kleiner ist als die tatsächliche Peldlänge,
erscheint ein 2-Bit-PeId als 0001 in. I und erzeugt eine
Verzweigung nach TABX4. Hier, nämlich in der Fig.9K, wird das
Bit mit dem höchsten Stellenwert des Datenwortes in das Vorzeichenbitregister bei TABX4 maskiert, und eine Maske für die
zwei Bits der rechtsbündigen Daten wird in das W-Eegister geladen.
Jetzt kehrt das Programm nach IDWD9 in der Fig.9E zurück,
wo der Operationskode in I geladen wird. Das Programm verzweigt sich dann auf das Vorzeichenbit, wie' es in der Fig.9K festgelegt
ist, und auf die Y1-Markierung, welche ein arithmetisches
PeId festlegt. In den zwei Pällen, in denen die YI-Markierung
gesetzt wurde, wird sie zurückgestellt, und in allen Pällen
wird das durch die Unterroutine gemäß Fxg,9K bestimmte' Vorzeichen
nach links über die maskierten Datenpositionen des Wortes erstreckt, um ein erstrecktes Vorzeichen zu bilden.
Das laden eines Feldes, welches eine Speichergrenze überschreitet,
' unterscheidet sich von dem obigen Programm dadurch, daß zwei Worte vom Speicher erforderlich sind, um diesen einen Befehl auszuführen. Bei IDDW wird die erste Datenwortadresse um
1 incrementiert und in das MA-Register geladen. Es sei bezüglich Fig.90 in Erinnerung gebracht, daß das MA-Register zuvor
die Adresse des ersten Datenwortes enthielt und das MBR-Register
5 09808/0824
das Datenwort selbst enthielt. Somit wird das erste Datenwort in den Speicher 16 übertragen, und zwar bei der Ausführung
des Befehls IDDWI, und das zweite Datenwort wird bei LDDW3
erfaßt. Die Endbit-Adresse wird in das Schieberegister geladen, und eine Reihe von doppelten Links verschiebungen, werden
mit Hilfe des W-Registers und des Speichers 16 in der Weise durchgeführt, daß dann, wenn der Zähler auf Null geht, die
richtigen Daten rechtsbündig im W-Register stehen.
Für einen Befehl zum Abtasten des linken Bits eines Feldes
für ein gerades Wort ist es nicht notwendig, das Datenwort rechtsbündig anzuordnen. Die Information steckt in dem Vorzeichenbit,
und diese Daten können direkt durch Verzweigung auf die entsprechende Maskierungs-Unterroutine erzeugt werden.
Deshalb wird der Speicher 16 mit dem Datenwort bei LDEW2 in der Fig.9D geladen und es erfolgt eine direkte Verzweigung
nach IIDWD5 in der Fig.9E, wo die geeignete. Vorzeichenunterroutine
aufgerufen wird. Dieses Vorzeichen wird in Verbindung mit der Y4--Markierung dazu verwendet, um später im Programm
die geeignete Funktion zu erzeugen.
Im Falle eines arithmetischen Ladebefehls wird das Vorzeichenbit des variablen Feldes über die übrigen Bits des Wortes nach
links des veränderlichen Feldabschnittes erstreckt. Anstatt die nicht benötigten Bits durch geeignete Maskierung abzutrennen,
verzweig sich deshalb das Programm direkt von LDB1X1 oder
LDN2X1 in der Fig.9D nach LDWD6 in der Fig.9E. Wenn somit
spater-im Programm bei MZNYJ usw. eine Vorzeichenerstreckung
erfolgt» wird somit ein Vorzeichen von Eins oder von Null anstatt einer automatischen Null im Falle des Ladens eines logischen
Feldes auftreten.
Definitionsgemäß ist das Datenwort das Vorzeichenbit im Falle des Befehls zum Laden eines einzelnen Bits. Anstatt einer rechtsbündigen
Anordnung der Daten ist in diesem Falle lediglich er-
509808/0824
forderlich, das Vorzeichen zu identifizieren und es über das gesamte Wort zu erstrecken, was in der Weise gesdaieht, wie es
nachfolgend erläutert wird. Bei LDSB wird das Datenwort in den
Speicher 16 eingeschrieben, welches in der Maskierungs- und der Vorzeichenunterroutine gemäß Fig.9& verwendet wird, um das
Vorzeichen' der Daten zu beiimmen. Bei LBSB2 wird das Einer-Komplement
der Bit-Adresse in das !-Register geladen, um eine
Verzweigungsinformation beim Erreichen der Maskierungs- und Vorzeichen-Unterroutine zu liefern. Schließlich wird bei LDSB3
die Rücksprungadresse in das I-Register geladen, und das Programm
verzweigt sich auf den vorhergehenden Inhalt des I-Registerso
Bei der Rückkehr wird die Ein-Bit-Maske in W geladen, der Operationskode wird in das '!-Register geladen, und
die Daten, die entweder eine Eins oder eine Null sein können,
werden in den Speicher 16 eingeschrieben.
Somit ist in allen Fällen ersichtlich, daß bei der Vervollständigung
dieses Abschnittes des Programms der Speicher 16 die rechtsbündigen Daten enthält', daß W die rechtsbündigen
und maskierten Daten enthält und daß I den Operationskode enthalte \
Das Speicherbefehlprogramm wird' in ähnlicher Weise aufgegliedert
in ein gerades Wort, ein gerades Byte9 eine gerade
Hexadezimalzahl, ein ungerades Feld und ein .-einzelnes Bit,
wobei den einzelnen Gliedern jeweils eine Schleife entspricht, deren Flußdiagramm in den Figo 9F9 9& und 9H jeweils dargestellt-
ist ο In allen Fällen-werden, die Daten9 die rechtsbündig
im Akkumulator angeordnet sind, - an ihre geeignete Stelle
verschoben und in den Speicher 16 eingeschriebeng die Maske wird in ¥'geladen und der Operationskode wird in I geladen,
bevor dieser Teil des Programms angesprochen wird» Für das
Speichern eines geraden Wortes wird das Programm bei SSEV/
begonnen, wo der Operationskode in das I-Register geladen An diesem Punkt erfolgt eine Verzweigung auf die Y1-
Markierung. Wenn YI zurückgestellt wird, muß entweder ein
Befehl zum Speichern eines Null-Feldes oder zum Speichern eines Einer-Feldes vorliegen. In beiden Fällen sind keine
entsprechenden Daten vorhanden. Eine Null-Maske wird in W g'eladenf und das Programm verzweigt sich» Wenn Y1 gesetzt
wird,, handelt es- sich· um einen Befehl zum Speichern eines
feldes«. Hier müssen Daten aus dem Akkumulator geholt und in
den Speicher 16 eingeschrieben werden, bevor die Schleife
Speichern eines geraden,. Wortes fortgesetzt wird. Zum
lern eines geraden rechten Bytes setzt das Programm EB ein«. Hier wird das Datenwort in das I-Hegister
ans d©ffl Akkumulator geladen,, und eine Verzweigung auf 11
©5?£©lgto Mr den Befehl zum Speichers eines Feldes werden
ÜL© ®at©a in den Speicher 16 eingeschrieben· Andernfalls
wirä. d@r Speicher 16 nicht zerstört» In g.edem Ea1IIe wird
i,©r Operationskode in I geladen, die. geeignete Maske wird
in U g©iad®a und das Programm verzweigt sich» Bas Speichern
@iae§ linken Bytes erfolgt in ähnlicher Weise wie das Spei-
©h,®3?n ©lass r@ehtaa Bytes 9 mit des? Ausnahm®0 daß bei STSLB1
fet©sa in I als Byte gegen Eisli sslbst ausgetauscht
im Qmm 2?θ©1γο© %*ts lisiksMin
11© 11§ο9& 'EfaMMlt fife l!I'ii£cltag2!SLiiHi90 yolote sis!i auf das
Sp©i©a@Sia &©s:acLsaiaiale3? Selalsifsa "beEie&.©ao Ia allen I1Sll@a
tm^fiea cLi® Ba'fc^sa ans- den Aldsuatilatos? geladen und in ge~
Qiga©t© ]h.@smd©giaal© Anordnung.ausgetauscht« In allen and©—
s>Q2a EaBsmlbsa®» giacl diese FlwSdiagraisM© ähnlich aufgebaut
ui© dis'l'liaidia.graaiEe für eüf gerades Byteffl Bis I1Ig · 9H entfeältdi©
IFlnScliagaMEBie für clis MögileMssitea in Terbindung
sit eiaea iaiig©2md©s feld isid siaeii ©ing®laea Bit· Mr den
1Έ11 ©la@a nsg@2?a!i[sa I?sides ^ vjelshss keine Spsleliergrenze
setst das ?rog]!?ajaH sei BTOW sin.
i'09808/0824
Daten aus dem Akkumulator werden in W geladen, und im Falle eines Befehls zum Laden eines Einer- oder eines Null-Feldes
wird das Einer-Komplement der Bit-Adresse dazu verwendet, die Maskierungs- und Vorzeichen-Unterroutine anzusprechen.
Beim Rücksprung wird die Endbit-Adresse in I geladen und dazu
verwendet, die linke Maskierungs-Unterroutine aufzurufen.
Die linke Maske wird alternativ mit der rechten Maske in W an der Stelle STOW13 berücksichtigt, und das Programm springt
an diesem Punkt in die Fig.91. Im Falle eines Befehls zum
Speichern eines Feldes erfolgt die Verzweigung von STOW nach STOWPfI. In diesem Falle wird die Endbit-Adresse· in den Schiebezähler
geladen und dazu benutzt, die W-Daten nach links bis in die richtige Stellung zu verschieben. Das Programm wird nunmehr
wie oben von der Stelle ST0W6 fortgesetzt. Im Falle des Speicherns über eine Speichergrenze hinweg-wird das Programm
bei STDV/ begonnen, wo die Akkumulatordaten in W geladen werden. Für einen Befehl zum Speichern eines Null-Feldes oder zum
Speichern eines Einer-Feldes wird das Programm bei STDW5 fortgesetzt, wo eine Verzweigung zu der Maskierungs-Unterroutine
zu einer Rechtsmaskierung führt, die in W geladen ist. Bei STDW8 wird die Endbit-Adresse dazu verwendet, um die linke
Maskierungs-Unterroutine aufzurufen, was dazu führt, daß eine
linke Maske in den Speicher 18 eingeschrieben wird. Schließlich wird der Operationskode in I geladen, bevor eine Verzweigung
nach TiTiF in der Fig. 91 erfolgt. Unter der Voraussetzung,
daß ein Befehl zum Speichern eines Feldes vorliegt, verzweigt sich das Programm nach STDW1, wo das Datenwort in den Speicher
16 eingeschrieben wird und-die Endbit-Adresse in den Maschinenzähler
geladen wird» Die Daten werden dann dappelt nach rechts
durch den Speicher 16 und durch W verschoben, bis die Daten in
geeigneter Weise in W und im Speicher 16 angeordnet sind. Die Daten in W werden dann in den Speicher 8 eingeschrieben, und das
Programm wird bei STDW5 fortgesetzt. Schließlich ist die Einzelbitschleife
bei STSB identisch mit dem Fall des Speicherns eines ungeraden Feldes, welches keine Speichergrenze überschreitet, und
somit erfolgt unverzüglich eine Verzweigung in diesen Teil des Programms.
509808/0824
Das Programm tritt jetzt in das in der Fig. 91 dargestellte
Flußdiagramm ein, und es erfolgt sofort eine 8-Wege-Verzweigung
auf den in I enthaltenen Operationskode. Für den Befehl zum laden eines logischen Feldes ist das Datenwort in W, welches
"bereits in geeigneter Weise maskiert und rechtsbündig angeordnet ist, in den Akkumulator geladen. Der Befehl zum
Laden eines arithmetischen Feldes wird in identischer Weise abgearbeitet. Für den Befehl zum Speichern eines Einer-Feldes
tritt das Programm bei SOF in Funktion, v/o das Einer-Komplement der Maske alternativ zu dem Inhalt des MBR-Registers verwendet
und in das MBW-Register zur Abspeicherung im Hauptspeicher geladen
wird. Für die Feldspeicherfunktion werden die nicht benötigten Bits aus dem Datenwort bei STF durch entsprechende
Maskierung ausgesondert, die Maske v/ird bei STFXO in V/ geladen, und die Daten werden alternativ zu der Maske bei STFX1 verwendet.
Das Speichern eines Null-Feldes bei SZF erfolgt in ähnlicher Weise wie das Speichern eines Einer-Feldes, mit der Ausnahme,
daß die Maske nicht als Einer-Komplement ausgebildet ist. In den obigen drei Fällen erfolgt jetzt eine Prüfung auf TO. Aus
den Fig. 9F, 9G und 9H ist ersichtlich, daß YO in allen Fällen
zurückgestellt wird, ausgenommen dann, wenn ein Wort im Hauptspeicher eine Wortgrenze überschreitet. In einem solchen Falle
sind zwei Speicheroperationen erforderlich. Kehrt man zur Fig. 91 zurück, wo YO zurückgestellt ist, so reicht eine Speicheroperation
aus, und das Programm verzweigt sich nach ST1X2- Wenn
jedoch YO gesetzt ist, verzweigt sich das Programm nach ST2X2 zur Ausführung der zweiten Speicheroperation. Zunächst wird YO
zurückgestellt, um ein weiteres Durchlaufen dieses Programmteils zu verhindern. Weiterhin wird der Inhalt des Speichers
10 plus 1, nämlich die Stelle des nächsten Wortes im Hauptspeicher, in das MA-Register geladen. Bei ST2X3 wird der Inhalt
des Speichers 8, nämlich der Teil mit geringerem Stellenwert der Akkumulatordaten, bündig für eine zweite Speicherung angeordnet,
in W geladen und von dort in den Speicher 16 eingeschrieben. Schließlich värd der Speicher 18, die rechte Maske, in W ge-
509808/0824
laden. Nun sind die Bedingungen für ein zweites Durchlaufen
der Schleife durch die Acht-Wege-Verzweigung erfüllt, weil
I noch den Operationskode enthält, W eine Maske enthält und der Speicher 16 den neuen Datensatz enthält. Wenn ein Befehl v
zum Vergleichen eines arithmetischen Feldes abgearbeitet wird,
setzt das Programm bei CAF ein, und z\mr mit Maskierurigsdaten
plus Vorzeichen j rechtsbündig, und zwar iri W. Dieser Wert,
subtrahiert vom Akkumulator, minus Eins-wird berechnet, und
das Vorzeichen der Ergebnisse wird von der Vergleichslogik
ausgewertet«. Das Vergleichen-eines logischen Feldes ist
identisch mit dem -Vergleichen eines arithmetischen Feldes mit der Ausnahme, daß I modifiziert werden muß (aus gerätetechnischen
Gründen)9 um eine Form aufzuweisen, I wie es für den .
Vergleich eines logischen Feldes erforderlich ist. Für das Abtasten des linken Bits eines Feldes wird das Vorzeichen
von I geprüft, und die Anzeigeeinrichtung zur Übertragung wird gesetzt oder zurückgestellt =>
In allen Fällen verzwe^; sich das Programm an die Stelle EM)E
in der Figo 9J9 wo eine Verzweigung auf die Y5-Markierung erfolgt
ο Wenn T5 gesetzt ist, ist keine Selbstdecrementierung
erforderlich, der Programmzähler und"das MA-Begister. werden *
vielmehr incrementiert9 und der Teil der variablen Feldadressierung
des Programms wird ausgeführte Wenn die Y3-Maskierung
gesetzt ist, muß eine Selbstdecrementierung erfolgen«, Zunächst
wird die T3-Markierung gesetzt, um zu vermeidsn9 daß das Programm
diese Schleife erneut durchläuft» Weiterhin, wird der
Speichejr 159 die Feldlängä plus Eins, in Vi geladen. Dies ist
deshalb der Fall, weil das Programm derart kodiert ist,, daß
die im Rechner berücksichtigte Feldlänge um Eins geringer ist als die tatsächliche Feldlänge«Bei SDX1 wird eine neue Bit-Adresse
berechnetg. indem dieser Wert, von der alten Bit-Adresse
abgezogen wird* Dies führt zu der richtigen Bit-Adresse nach
der Selbstdecrementierungο Bei SDX2 wird der Inhalt von I teil
weise übertragen, um,., gegebenenfalls einen Überlauf in das Bit
mit dem geringsten Stellenwert zu bringen, welches dann in ¥ masfeiert wird« Weiterhin wird die Adresse der ersten Beschreibung
in das MA-Hegister geladen, und zwar zur-Vorbereitung
des Ladens eines neuen Beginns der Peldadresse in
diese Stelle» BeiSDÄ w±t& der Beginn, der Peldadresse um
lins d©crementiert9 wenn dies erforderlich ist, und I wird
als Byte mit sich selbst ausgetauscht, um die Bit-Adresse in die Bits 0 bis 3 von I zu verlagern- Der Rest von I wird
dann bei SDX5 durch geeignete Maskierung ausgesondert. Die ursprüngliche Feldlänge, die sich niemals ändert, wird in
die Bits 4- bis 7 von I durch geeignete Maskierung hineingebracht,
und bei SDX? werden diese ursprünglichen zwei Werte alternativ berücksichtigt» Bei SDX8 und 9 wird das Zählerfeld
in den Maschinenzähler geladen und um Bins decremöntiert»
iffird die Adresse der zweiten Beschreibung berechnet
in das M-Begister geladen. Nun erfolgt sine Verzweigung
aiaf den irorhergehendsn Inhalt (SBSS) des Maschinenzählers und
di@ 11-Markierung ο In allen lallen wird der Inhalt von W9 der
seinerseits die Bit~iL&ress3 mxd die Feldlänge enthält, alternativ
im Maselaiagasählsr bez-üeksiolitigt, welcher die neue Sählimg
enthalte SelalisBli-s«. adM sisr Überlauf2äaler entweder g@~
ίϋθΐ^'ϋ ©cter siarlieisges'Gell'bj xmß, die TI-HarltienaEg 'wird
g©st@llt9 mn die Aiasfüis2?ii2ig dm} logisciaeii Operatiöaea in
f©lg©acl©n irrograaM©« zu sraögliclaeae Wenn tie Selbstdecr^men-
ialsti©2i 'beeaclst ist, verzweigt slot das irrograsM an
toll® SfDE9 -and ά®Έ -?ariaJöl3 leldadr-essenteil dieses likro-
Ia der ©feiges 3©s©!h5?©ibiing siad Terfaiires. und die iroeitsweise
km:ag -31ώ.©^ ''ras'iablsji I?3iclacb?9SsiisrTiagsia©tl2Ode zur
g la. siisi-äa DiVGsaTssarisitmigssystsai "besols^isben women,
si«s ia Fö^a ύοιι Sikroprograiaasn ausgebildete ssatrale
iaags θ inosit aiu'^eist* Obwohl ia Tsj^bindang axt dieser
it siae spssislle Aiisfühnmgsforia bssefeieben wurde,
hat eias solans aiasfiiln^isgsfora nur Beispialeharalcter, da andere
Befehle9 Formate und Einrishtnngen verwendet werden können, mn
5 098 08/082 4
die beschriebene Funktion auszuführen. Beispielsweise können andere Befehlssätze, andere Schaltungsanordnungen und andere
Methoden der Indizierung und der Incrementierung verwendet werden, um die beschriebenen'Funktionen auszuführen.
Somit ist die Erfindung nicht auf die obige Ausführungsform
beschränkt, sondern vielfältige Abwandlungen'sind im Rahmen
der Erfindung denkbar.
- Patentansprüche -
50980870824
Claims (1)
- Patentansprüche1. Verfahren zur Verwendung von in einem Steuerspeicher eines Digitalrechners eingeschriebenen Mikroprogrammen zur Durchführung der Adressierung variabler Felder, dadurch gekennzeichnet , daß zunächst ein Befehl zur Adressierung eines variablen Feldes vom Hauptspeicher aufgerufen wird,.daß dieser Befehl dann in ein internes Register der zentralen Verarbeitungseinheit des Digitalrechners geladen wird, daß sich das Programm dann in ein Mikroprogramm im Steuerspeicher verzweigt, welches der Funktion dieses Befehls entspricht, daß dann ein Datenwort fester Länge aus. dem Hauptspeicher aufgerufen wird, daß dieses Datenwort in ein erstes und ein zweites internes Register der zentralen Verarbeitungseinheit geladen wird, daß das variable Feld in dem ersten Register rechtsbündig angeordnet wird, daß die Funktion des Befehls in dem variablen Feld im ersten Register abgearbeitet wird, daß das variable Feld in diejenige Stellung zurückverschoben wird, die es vor der rechtsbündigen Anordnung eingenommen hat, wenn dieser Befehl ein Speicherbefehl ist, und daß dann der Inhalt des zweiten Registers an seine ursprüngliche Stelle in dem Hauptspeicher gebracht wird, wenn der Befehl' ein Speicherbefehl ist.2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß alle Schritte repetitiv und zyklisch fortgesetzt werden und daß der Status eines Zählers gegenüber einer vorgegebenen Anzahl verglichen wird, um eine Schleifenendsteuerung zu bilden, wobei der Zähler zu Beginn jedes Zyklus incrementiert wird.509808/0824· "Verfahren nach Anspruch 1, dadurch g e k e η η zeichnet,, daß beim Aufrufen eines Datenwortes fester Länge die Speicherstelle dieses Datenwortes im Hauptspeicher ermittelt wird? und zwar durch einen zweiten Zähler, und daß dieser zweite Zähler zu Beginn jedes Zyklus incrementiert wirdο'4-O Verfahren zum Laden eines variablen Feldes, welches in zwei benachbarten Datenworten fester Länge eingeschrieben ist, aus einem Hauptspeicher an das Ende mit dem geringsten Stellenwert eines internen Registers einer zentralen Verarbeitungseinheit eines Digitalrechners, dadurch gekennzeichnet, daß zunächst ein Befehl zur Adressierung eines variablen Feldes vom Hauptspeicher aufgerufen wird, daß dieser Befehl dann in ein internes Register der zentralen Verarbeitungseinheit des Digitalrechners geladen wird^ daß sich das Programm dann in ein Mikroprogramm im Steuerspeicher verzweigt, welches der Funktion dieses Befehls entspricht} daß dann die zwei Datenworte fester Länge aus dem Hauptspeicher aufgerufen werden 9 welcher das variable. Feld enthält9 daß dann die Batenworte jeweils"" in das zweite und das dritte interne Register der zentralen Verarbeitungseinheit geladen iferden? daß das variable Feld .an äas En.de mit dem Bit mit dem, geringsten Stellenwert des zweiten Registers verschoben wird und daß die Funktion des Befehls auf dem variablen Feld abgearbeitet wird.5ο 'Verfahren zum Speichern eines variablen Feldes in beliebige aneinander angrenzende Bereiche in einem Hauptspeicher eines Digitalrechners j ohne daß die.Speicherstellengrensen beachtet werden, dadurch g e-'k e_ η η ζ e i c h η e t 9 daß ssunächst ein Speicherbefehl für das variable Feld aus dem Hauptspeicher aufgerufen wird, daß dieser Befehl in ein erstes509800/0824internes Register der zentralen Verarbeitungseinheit geladen wird, daß sich dag Programm auf einen Teil des Mikroprogramms im Steuerspeicher verzweigt, welcher der Funktion des Befehls entspricht, daß zwei benachbarte Datenworte fester Länge aufgerufen werden, welche das Variable Feld enthalten, daß diese Datenworte in das zweite vxi& das dritte interne Register der zentralen Verarbeitungseinheit geladen werden, daß das variable Feld von der Seite des geringsten Stellenwertes eines vierten Registers verschoben wird, in welchem es gespeichert war, und zwar in die Stellung die es in den zwei Datenworten einnimmt, daß das variable Feld durch Maskierung in diesen zwei Datenworten angeordnet wird und daß die zwei Datenworte in ihre ursprünglichen Plätze im Speicher abgespeichert werden.Digitalrechner-Anordnung mit einem Hauptspeicher zur Speicherung) von Befehlen fester Länge und von Datenworten in Speicherplätzen,, die feste Grenzen aufweisen, welche jeweils der Länge der Worte entsprechen und mit einer Feldadressierungselnrichtung, dadurch gekennzeichnet , daß eine logische Schaltung (1) vorgesehen ist, um mit den Worten fester Länge logische Operationen auszuführen, daß weiterhin Register (5»6,10,12,13,14·) vorhanden sind, welche mit der logischen Einrichtung (1) derart gekoppelt sind, daß sie die Worte fester Länge aufnehmen können, und zwar jeweils vor, während und nach der Ausführung der logischen Operationen mit den·Worten durch die logische Einrichtung (1), daß weiterhin eine Anpasseinrichtung (SA, SB) mit den Registern (55 6,10,12,13,14·) und mit der Speichereinrichtung (11) gekoppelt ist, um die Worte fester Länge zwischen diesen beiden Einheiten zu übertragen, und daß eine Steuerspeichereinrichtung (20) vorgesehen ist, welche auf die in den Registern (5,6,10,12,13,14·) geladenen Befehlsworte an-K09808/0824spricht, um einen einzelnen Befehl, der ursprünglich aus der Hauptspeichereinrichtung (11) übertragen wurde, in eine Folge von Mikrobefehlen zu zerlegen, die intern in der Steuerspeichereinrichtung (20) gespeichert sind, um die Befehle auszuführen, welche die Funktion der Adressierung des variablen Feldes verlangt und um weiterhin die Mikrobefehlsfolge auszuführen, wobei die Steuerspeichereinrichtung (20) mit der Anpasseinrichtung (SA, SB) und mit der logikeinrichtung (1) gekoppelt ist, um die gewünschte Funktion in bezug auf das variable Feld zu erfüllen.Anordnung nach Anspruch 6, dadurch g e k e η η zeichnet , daß im Steuerspeicher eine Mikrobefehlseinrichtung vorgesehen ist, um den Typ, die Anzahl und die Folge der Befehle zu bestimmen, die von der Logikeinrichtung (1) und der Anpasseinrichtung (SA, SB) auszuführen sind, um die Durchführung der Adressierungsfunktion bezüglich des variablen Feldes auszuführen, daß der Steuerspeicher weiterhin eine Adressierungseinrichtung (19) aufweist, v/elche auf die Mikrobefehlseinrichtung anspricht und auf den Status der Register (5»6,10,12,13» 1*0»: um den Ort des nächsten Mikrobefehls zu bestimmen, der aμsgefühΓt werden soll und um diesen Befehl auszuführen, und daß die Steuerspeichereinrichtung weiterhin eine Steuerleitungseinrichtung (16) aufweist, welche auf die Mikrobefehlseinrichtung anspricht und~ mit der Anpass einrichtung (SA, SB) und mit der Logikeinrichtung (1) gekoppelt ist, wodurch die Logikeinrichtung (i) und die Anpasseinrichtung (SA, SB) zur Ausführung der durch die Mikrobefehlseinrichtung bestimmten Operationen gebracht wird.509808/08248. Anordnung nach einem der Ansprüche δ oder 7» dadurch . gekennzeichnet , daß die Logikeinrichtung eine Austauschschaltungseinrichtung aufweist, um Teile von Datenworten fester Länge, die in einem . Register (5»6,1O,12,13,14) gespeichert sind, während einer einzelnen Mikrobefehls-Ausführungs-Zykluszeit aus zutaus chen.9- Anordnung nach Anspruch 8, dadurch gekennzeichnet, daß im Hauptspeicher (11) folgende Daten gespeichert sind: Verzweigungsbefehle, welche es gestatten, daß die Befehle zur Adressierung eines variablen Feldes wiederholt ausgeführt werden, Zählbefehle, un die Anzahl der Wiederholungen zu bestimmen und um die Stelle in einem variablen Feld zu bestimmen, welche auf dieser Anzahl basiert, Vergleichsbefehle, um zur Ausführungszeit die Größe dieser Anzahl im Vergleich zu einer vorgegebenen Grenze zu vergleichen, und Befehle, welche dazu dienen, die Wiederholung zu beenden, wenn die vorgegebene Grenze erreicht ist.10. Anordnung nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet , daß die Register (5»6,1O, 12,13,14-) eine Indizierungseinrichtung zur Bestimmung der Adresse des Datenwortes fester Länge aufweisen, in welchem das laufende variable Feld gespeichert ist.509808/0824
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US05/385,763 US4109310A (en) | 1973-08-06 | 1973-08-06 | Variable field length addressing system having data byte interchange |
Publications (1)
Publication Number | Publication Date |
---|---|
DE2436963A1 true DE2436963A1 (de) | 1975-02-20 |
Family
ID=23522778
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2436963A Pending DE2436963A1 (de) | 1973-08-06 | 1974-07-31 | Verfahren und vorrichtung zur mikroprogrammierung in der zentraleinheit eines digitalrechners |
Country Status (5)
Country | Link |
---|---|
US (1) | US4109310A (de) |
JP (1) | JPS5040237A (de) |
CA (1) | CA1017068A (de) |
DE (1) | DE2436963A1 (de) |
GB (2) | GB1474280A (de) |
Families Citing this family (75)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5247639A (en) * | 1975-10-15 | 1977-04-15 | Toshiba Corp | Information processing device |
JPS5464933A (en) * | 1977-11-01 | 1979-05-25 | Panafacom Ltd | Main storage extension system |
US4219874A (en) * | 1978-03-17 | 1980-08-26 | Gusev Valery | Data processing device for variable length multibyte data fields |
US4447878A (en) * | 1978-05-30 | 1984-05-08 | Intel Corporation | Apparatus and method for providing byte and word compatible information transfers |
US4258419A (en) * | 1978-12-29 | 1981-03-24 | Bell Telephone Laboratories, Incorporated | Data processing apparatus providing variable operand width operation |
US4419727A (en) * | 1979-01-02 | 1983-12-06 | Honeywell Information Systems Inc. | Hardware for extending microprocessor addressing capability |
US4321665A (en) * | 1979-01-31 | 1982-03-23 | Honeywell Information Systems Inc. | Data processing system having centralized data alignment for I/O controllers |
US4374416A (en) * | 1979-06-27 | 1983-02-15 | Burroughs Corporation | Linear sequencing microprocessor having word and byte handling |
US4292667A (en) * | 1979-06-27 | 1981-09-29 | Burroughs Corporation | Microprocessor system facilitating repetition of instructions |
US4371931A (en) * | 1979-06-27 | 1983-02-01 | Burroughs Corporation | Linear micro-sequencer for micro-processor system utilizing specialized instruction format |
US4301505A (en) * | 1979-06-27 | 1981-11-17 | Burroughs Corporation | Microprocessor having word and byte handling |
US4291372A (en) * | 1979-06-27 | 1981-09-22 | Burroughs Corporation | Microprocessor system with specialized instruction format |
US4374418A (en) * | 1979-06-27 | 1983-02-15 | Burroughs Corporation | Linear microsequencer unit cooperating with microprocessor system having dual modes |
US4287560A (en) * | 1979-06-27 | 1981-09-01 | Burroughs Corporation | Dual mode microprocessor system |
US4293909A (en) * | 1979-06-27 | 1981-10-06 | Burroughs Corporation | Digital system for data transfer using universal input-output microprocessor |
US4346437A (en) * | 1979-08-31 | 1982-08-24 | Bell Telephone Laboratories, Incorporated | Microcomputer using a double opcode instruction |
US4412098A (en) * | 1979-09-10 | 1983-10-25 | Interstate Electronics Corporation | Audio signal recognition computer |
US4292470A (en) * | 1979-09-10 | 1981-09-29 | Interstate Electronics Corp. | Audio signal recognition computer |
JPS5652454A (en) * | 1979-10-05 | 1981-05-11 | Hitachi Ltd | Input/output control method of variable word length memory |
US4325118A (en) * | 1980-03-03 | 1982-04-13 | Western Digital Corporation | Instruction fetch circuitry for computers |
USRE32493E (en) * | 1980-05-19 | 1987-09-01 | Hitachi, Ltd. | Data processing unit with pipelined operands |
CA1174370A (en) * | 1980-05-19 | 1984-09-11 | Hidekazu Matsumoto | Data processing unit with pipelined operands |
US4424563A (en) | 1980-09-05 | 1984-01-03 | Hewlett-Packard Company | Data processor including a multiple word processing method and device |
US4520439A (en) * | 1981-01-05 | 1985-05-28 | Sperry Corporation | Variable field partial write data merge |
US4388495A (en) * | 1981-05-01 | 1983-06-14 | Interstate Electronics Corporation | Speech recognition microcomputer |
US4532586A (en) * | 1981-05-22 | 1985-07-30 | Data General Corporation | Digital data processing system with tripartite description-based addressing multi-level microcode control, and multi-level stacks |
US4502111A (en) * | 1981-05-29 | 1985-02-26 | Harris Corporation | Token generator |
US4530050A (en) * | 1981-08-26 | 1985-07-16 | Hitachi, Ltd. | Central processing unit for executing instructions of variable length having end information for operand specifiers |
US4654781A (en) * | 1981-10-02 | 1987-03-31 | Raytheon Company | Byte addressable memory for variable length instructions and data |
US4507732A (en) * | 1981-10-05 | 1985-03-26 | Burroughs Corporation | I/O subsystem using slow devices |
US4491908A (en) * | 1981-12-01 | 1985-01-01 | Honeywell Information Systems Inc. | Microprogrammed control of extended integer and commercial instruction processor instructions through use of a data type field in a central processor unit |
JPS58182754A (ja) * | 1982-04-19 | 1983-10-25 | Hitachi Ltd | 演算処理装置 |
US4667305A (en) * | 1982-06-30 | 1987-05-19 | International Business Machines Corporation | Circuits for accessing a variable width data bus with a variable width data field |
US4506345A (en) * | 1982-07-02 | 1985-03-19 | Honeywell Information Systems Inc. | Data alignment circuit |
IT1153668B (it) * | 1982-11-24 | 1987-01-14 | Honeywell Inf Systems | Organizzazione di memoria di controllo |
US4724517A (en) * | 1982-11-26 | 1988-02-09 | Inmos Limited | Microcomputer with prefixing functions |
US4761755A (en) * | 1984-07-11 | 1988-08-02 | Prime Computer, Inc. | Data processing system and method having an improved arithmetic unit |
US5034900A (en) * | 1984-10-05 | 1991-07-23 | Hitachi, Ltd. | Method and apparatus for bit operational process |
US6552730B1 (en) * | 1984-10-05 | 2003-04-22 | Hitachi, Ltd. | Method and apparatus for bit operational process |
US5265204A (en) * | 1984-10-05 | 1993-11-23 | Hitachi, Ltd. | Method and apparatus for bit operational process |
JP2520882B2 (ja) * | 1986-08-27 | 1996-07-31 | 株式会社日立製作所 | デ−タ処理装置およびデ−タ処理方法 |
US4956809A (en) * | 1986-11-24 | 1990-09-11 | Mark Williams Company | Method for canonical ordering of binary data for portable operating systems |
BG45007A1 (de) * | 1987-03-19 | 1989-03-15 | Khristo A Turlakov | |
US5241644A (en) * | 1987-07-15 | 1993-08-31 | Nec Corporation | Queue having long word length |
US4942520A (en) * | 1987-07-31 | 1990-07-17 | Prime Computer, Inc. | Method and apparatus for indexing, accessing and updating a memory |
US4965751A (en) * | 1987-08-18 | 1990-10-23 | Hewlett-Packard Company | Graphics system with programmable tile size and multiplexed pixel data and partial pixel addresses based on tile size |
JP2748957B2 (ja) * | 1987-09-30 | 1998-05-13 | 健 坂村 | データ処理装置 |
JPH0789328B2 (ja) * | 1988-05-31 | 1995-09-27 | 日本電気株式会社 | データ処理装置 |
US5222225A (en) * | 1988-10-07 | 1993-06-22 | International Business Machines Corporation | Apparatus for processing character string moves in a data processing system |
US5155820A (en) * | 1989-02-21 | 1992-10-13 | Gibson Glenn A | Instruction format with designations for operand lengths of byte, half word, word, or double word encoded in address bits |
US5072372A (en) * | 1989-03-03 | 1991-12-10 | Sanders Associates | Indirect literal expansion for computer instruction sets |
US5276891A (en) * | 1990-01-11 | 1994-01-04 | Bull Hn Information Systems Inc. | Alignment of sign, data, edit byte operand results for storage in memory |
US5442769A (en) * | 1990-03-13 | 1995-08-15 | At&T Corp. | Processor having general registers with subdivisions addressable in instructions by register number and subdivision type |
JP2502403B2 (ja) * | 1990-07-20 | 1996-05-29 | 三菱電機株式会社 | Dma制御装置 |
DE69124437T2 (de) * | 1990-08-09 | 1997-07-03 | Silicon Graphics Inc | Verfahren und Vorrichtung zum Umkehren von Byteordnung in einem Rechner |
US5357622A (en) * | 1990-09-27 | 1994-10-18 | Dell U.S.A., L.P. | Apparatus for queing and storing data writes into valid word patterns |
US5436627A (en) * | 1992-04-30 | 1995-07-25 | Ricoh Company, Ltd. | Method and system for processing mixed binary length encodings containing definite and indefinite length formats |
US5465374A (en) * | 1993-01-12 | 1995-11-07 | International Business Machines Corporation | Processor for processing data string by byte-by-byte |
GB9509988D0 (en) * | 1995-05-17 | 1995-07-12 | Sgs Thomson Microelectronics | Matrix transposition |
JP2889845B2 (ja) * | 1995-09-22 | 1999-05-10 | 松下電器産業株式会社 | 情報処理装置 |
US5754810A (en) * | 1996-03-12 | 1998-05-19 | International Business Machines Corporation | Specialized millicode instruction for certain decimal operations |
US5864703A (en) * | 1997-10-09 | 1999-01-26 | Mips Technologies, Inc. | Method for providing extended precision in SIMD vector arithmetic operations |
US7197625B1 (en) * | 1997-10-09 | 2007-03-27 | Mips Technologies, Inc. | Alignment and ordering of vector elements for single instruction multiple data processing |
US6064714A (en) * | 1998-07-31 | 2000-05-16 | Lucent Technologies Inc. | Shifter capable of split operation |
US20050188182A1 (en) * | 1999-12-30 | 2005-08-25 | Texas Instruments Incorporated | Microprocessor having a set of byte intermingling instructions |
GB0024312D0 (en) * | 2000-10-04 | 2000-11-15 | Advanced Risc Mach Ltd | Single instruction multiple data processing |
US6922773B2 (en) * | 2000-12-29 | 2005-07-26 | Stmicroelectronics, Inc. | System and method for encoding constant operands in a wide issue processor |
US7162621B2 (en) * | 2001-02-21 | 2007-01-09 | Mips Technologies, Inc. | Virtual instruction expansion based on template and parameter selector information specifying sign-extension or concentration |
US7181484B2 (en) * | 2001-02-21 | 2007-02-20 | Mips Technologies, Inc. | Extended-precision accumulation of multiplier output |
US7711763B2 (en) | 2001-02-21 | 2010-05-04 | Mips Technologies, Inc. | Microprocessor instructions for performing polynomial arithmetic operations |
US7599981B2 (en) * | 2001-02-21 | 2009-10-06 | Mips Technologies, Inc. | Binary polynomial multiplier |
US20080177980A1 (en) * | 2007-01-24 | 2008-07-24 | Daniel Citron | Instruction set architecture with overlapping fields |
KR20100002708A (ko) * | 2008-06-30 | 2010-01-07 | 삼성전자주식회사 | 반도체 소자 및 그 형성 방법 |
EP2223431A4 (de) * | 2008-08-15 | 2010-09-01 | Lsi Corp | Dekodierung von nahe codewörter in einem ram speicher |
GB2478731B (en) * | 2010-03-15 | 2013-08-21 | Advanced Risc Mach Ltd | Operand size control |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NL255604A (de) * | 1959-09-08 | |||
US3166668A (en) * | 1960-03-24 | 1965-01-19 | Ibm | Computer program system |
US3238508A (en) * | 1961-12-18 | 1966-03-01 | Ibm | Logical manipulator |
US3331056A (en) * | 1964-07-15 | 1967-07-11 | Honeywell Inc | Variable width addressing arrangement |
US3496550A (en) * | 1967-02-27 | 1970-02-17 | Burroughs Corp | Digital processor with variable field length operands using a first and second memory stack |
US3735355A (en) * | 1971-05-12 | 1973-05-22 | Burroughs Corp | Digital processor having variable length addressing |
US3739352A (en) * | 1971-06-28 | 1973-06-12 | Burroughs Corp | Variable word width processor control |
-
1973
- 1973-08-06 US US05/385,763 patent/US4109310A/en not_active Expired - Lifetime
-
1974
- 1974-05-09 CA CA199,565A patent/CA1017068A/en not_active Expired
- 1974-06-24 JP JP49072216A patent/JPS5040237A/ja active Pending
- 1974-07-31 DE DE2436963A patent/DE2436963A1/de active Pending
- 1974-08-06 GB GB5335576A patent/GB1474280A/en not_active Expired
- 1974-08-06 GB GB3456374A patent/GB1474279A/en not_active Expired
Also Published As
Publication number | Publication date |
---|---|
CA1017068A (en) | 1977-09-06 |
GB1474279A (en) | 1977-05-18 |
US4109310A (en) | 1978-08-22 |
JPS5040237A (de) | 1975-04-12 |
GB1474280A (en) | 1977-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2436963A1 (de) | Verfahren und vorrichtung zur mikroprogrammierung in der zentraleinheit eines digitalrechners | |
DE2555963C2 (de) | Einrichtung zur Funktionsmodifizierung | |
DE2113890C2 (de) | Zentrale Verarbeitungseinrichtung für Datenverarbeitungsanlagen | |
DE2251876C3 (de) | Elektronische Datenverarbeitungsanlage | |
DE2318069C2 (de) | Mikroprogrammierte Rechenanlage mit Erweiterung von Steuerfunktionen mittels festverdrahteter logischer Matrix | |
DE1499200B2 (de) | Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung | |
DE1931966C3 (de) | Datenverarbeitungsanlage mit Assoziativspeichern | |
CH650600A5 (de) | Zentralprozessoreinheit einer datenverarbeitungsanlage mit operationscode-erweiterungsregister. | |
DE2331589A1 (de) | Datenverarbeitungsanordnung | |
CH634939A5 (de) | Kanaldatenpufferanordnung in einer datenverarbeitungsanlage. | |
DE2540824A1 (de) | Auf verschiedene ausbaustufen veraenderbare abrechnungsmaschine | |
DE1275800B (de) | Steuerwerk fuer datenverarbeitende Maschinen | |
DE2713253A1 (de) | Programmlader fuer ein steuergeraet | |
DE1285219B (de) | Steuerwerk zur Ausfuehrung von Unterprogrammen | |
DE3148099C2 (de) | Anordnung zum Erkennen einer Digitalfolge | |
DE2101949A1 (de) | Verfahren zum Schutz von Datengruppen in einer Multiprocessing-Datenverarbeitungsanlage | |
DE3121742A1 (de) | Mikroprogrammsteuerverfahren und -einrichtung zu dessen durchfuehrung | |
DE2556617A1 (de) | Datenverarbeiter zum rotierbaren verschieben von bits eines datenwortes | |
DE2720864A1 (de) | Verfahren und anordnung zum lueckenfreien einspeichern einer anzahl von datenblocks unbestimmter laenge | |
DE2854400C2 (de) | Anordnung zum Wechsel zwischen verzahnt zu verarbeitenden Programmen | |
DE1499224C3 (de) | Datenverarbeitungsanlage mit Kellerspeichereinrichtungen | |
DE3000012A1 (de) | Schaltungsanordnung zur ausfuehrung eines uebertragungsbefehls in einer datenverarbeitungsanlage | |
DE1195074B (de) | Mikroprogramm-Steuerwerk einer programm-gesteuerten Rechenmaschine | |
DE10245367A1 (de) | Prozessor mit expliziter Angabe über zu sichernde Informationen bei Unterprogrammsprüngen | |
DE2954533C2 (de) |