DE2529348A1 - Verfahren zum verarbeiten von maschinenbefehlen mit bytefeldoperanden in einem mikroprogrammierten prozessor einer datenverarbeitungsanlage - Google Patents
Verfahren zum verarbeiten von maschinenbefehlen mit bytefeldoperanden in einem mikroprogrammierten prozessor einer datenverarbeitungsanlageInfo
- Publication number
- DE2529348A1 DE2529348A1 DE19752529348 DE2529348A DE2529348A1 DE 2529348 A1 DE2529348 A1 DE 2529348A1 DE 19752529348 DE19752529348 DE 19752529348 DE 2529348 A DE2529348 A DE 2529348A DE 2529348 A1 DE2529348 A1 DE 2529348A1
- Authority
- DE
- Germany
- Prior art keywords
- byte
- microinstruction
- field
- operands
- address
- 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
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
Description
Verfahren zum Verarbeiten von Maschinenbefehlen mit Bytefeldoperanden
in einem mikroprogrammierten Prozessor einer Datenverarbeitungsanlage
Die Erfindung bezieht sich auf ein Verfahren zum Verarbeiten von Maschinenbefehlen mit Bytefeldoperanden in einem mikroprogrammierten
Prozessor einer Datenverarbeitungsanlage gemäß dem Oberbegriff des Hauptanspruchs.
In kommerziellen Datenverarbeitungsanlagen wird häufig eine im
Arbeitsspeicher fortlaufend gespeicherte Datenmenge unterschiedlichen Umfanges einer bestimmten Operation unterzogen und das
Ergebnis an der ursprünglichen oder einer anderen Stelle des Arbeitsspeichers niedergelegt. Der Verarbeitung solcher Bytefelder
kommt daher große Bedeutung zu. Im Maschinenbefehlsvorrat bekannter Datenverarbeitungsanlagen können solche Bytefelder
mit Hilfe von logischen oder dezimalen SS-Befehlen oder SJ-Befehlen verarbeitet werden. Die erste Gruppe enthält neben dem
Operationscode, d. h. der Befehlsverschlüsselung die Anfangsadressen von zwei im Arbeitsspeicher niedergelegten Operanden
und deren - u. U. auch verschieden große - Längen, bezeichnet durch die Anzahl der Bytes des Operanden. Bei der zweiten
Gruppe von Maschinenbefehlen'wird der erste ein Byte lange
Operand durch die Adresse bezeichnet, während der zweite ein Direktoperand ist.
Die Verarbeitung solcher Maschinenbefehle mit Bytefeldoperanden geschieht bei mikroprogrammierten Prozessoren von Datenverarbeitungsanlagen
byteweise in einer Schleife eines Mikroprogrammes, In dieser werden die Operanden z. B. wortweise be-
VPA 9/210/5001 Go/FdI
609882/0B88
reitgestellt, jeweils einzelne Bytes ausgewählt und entsprechend der gewünschten Verarbeitungsoperation auch miteinander
verknüpft, die Ergebnisse zwischengespeichert und zugleich verschiedene Kontrollen oder Tests durchgeführt. Diese
beziehen sich insbesondere darauf, daß Längen gezählt und getestet und Adressen gezählt werden.
Das wesentliche Problem bei der byteweisen Verarbeitung von Bytefeldern besteht darin, daß diese unterschiedlich lang sein
können und im allgemeinen auch nicht an einer Wortgrenze im Arbeitsspeicher ausgerichtet sind, während Verarbeitungseinheiten
der Prozessoren im allgemeinen wortorientiert sind. Trotz einer mangelnden Übereinstimmung zwischen dem Aufbau der
Operanden eines Maschinenbefehls und der Struktur einer Verarbeitung seinheit müssen im allgemeinen Fall beliebige Bytes
beider Operanden bei der Verarbeitung von Bytefeldern miteinander verknüpfbar sein.
Der Erfindung liegt daher die Aufgabe zugrunde, ein Verfahren der eingangs genannten Art zu schaffen, das mit geringem
zusätzlichen Schaltungsaufwand eine leistungsfähige Verarbeitung
von Bytefeldern in einer Mikroprogrammschleife byteweise erlaubt. Das bedeutet, daß die aus dem Mikroprogramm in einer
Steuereinheit des Prozessors decodierten Steuersignale den Ablauf der Verarbeitungsoperationen in der Verarbeitungseinheit
des Prozessors möglichst einfach, also ohne großen schaltungsmäßigen Aufwand und zeitsparend, also ohne zu lange
Belegung der Verarbeitungseinheit zu steuern vermögen.
Erfindungsgemäß wird diese Aufgabe durch die im Kennzeichen des Hauptanspruches beschriebenen Merkmale gelöst. Diese
Lösung gestattet, den einmaligen Durchlauf durch eine Mikroprogrammschleife,
in der jeweils ein Byte der Operanden abgearbeitet wird, in einem einzigen Maschinenzyklus durchzuführen.
Das beruht insbesondere auf dem Aufbau der gewählten
VPA 9/210/5001
β09882/058£
Bytefeldmikrobefehle, wie sich aus einer im Patentanspruch 2 festgelegten Weiterbildung der Erfindung ergibt - mit dem
parallel zu der eigentlichen Hauptfunktion, d. h. der byteweisen
Verknüpfungsoperation der beiden Operanden eine Mehrzahl von Kontrollen und Tests in Nebenfunktionen durchführbar
ist -.
Diese Parallelarbeit wird im wesentlichen mit ohnehin vorhandenen Schaltungseinrichtungen der Steuer- und der Verarbeitungseinheit
des Prozessors durchgeführt, da die meisten Nebenfunktionen auch in anderen Mikrobefehlen benutzt werden.
Wie sich aus anderen, in weiteren Unteransprüchen gekennzeichneten Weiterbildungen der Erfindung ergibt, sind lediglich
für die- indizierte Byteauswahl aufgrund der beiden niederstwertigen
Bitstellen der Arbeitsspeicheradressen der Operanden und für die Prioritätsauswahl der durchgeführten Tests eigene
Steuereinrichtungen notwendig. Aufgrund dieser Prior^tätsausv/ahl
werden einem im Mikrobefehlsregister zwischen gespeicherten Bytefeldmikrobefehl bestimmte Folgeadressen entnommen, die zu
Sprüngen im Mikroprogramm führen, so daß sich Ergebnisse aus Arbeitsregistern der Verarbeitungseinheit des Prozessors im
Arbeitsspeicher niederlegen bzw. aus diesem noch zu verarbeitende Operandenteile in diese Arbeitsregister übertragen lassen.
Diese bei geringem zusätzlichen Schaltungsaufwand durch die
Ausgestaltung der Bytefeldmikrobefehle mögliche Parallelarbeit führt zu einem erheblichen Leistungsgewinn gegenüber Anlagen,
in denen eine Mikroprogrammschleife zur Verarbeitung eines Bytes eines Bytefeldes aus mehreren Mikrobefehlen gebildet
ist und bedeutet darüber hinaus auch eine Einsparung an Mikroprogrammspeicherplatz
.
Zur näheren Erläuterung der Erfindung wird im folgenden ein Ausführungsbeispiel anhand der Zeichnung beschrieben. Dabei
zeigt:
VPA 9/210/5001
609S82/0588
Fig. 1 das Blockschaltbild eines mikroprogrammierten Prozessors
mit einer Steuereinheit und einer Verarbeitungseinheit und das diesen über einen Koordinator zugeordnete Hauptspeichersystem
mit einem Arbeitsspeicher und einem beschreibbaren Mikroprogrammspeicher,
Fig. 2 schematisch den Aufbau eines Bytefeldmikrobefehls anhand seines Befehlsformats,
Fig. 3 ein funktioneiles Ablaufschema zur Darstellung der mit
einem Bytefeldmikrobefehl durchführbaren Elementaroperationen,
Fig. 4 eine schematische Darstellung der indizierten Byteauswahl
für eine Verknüpfungsoperation samt der Zwischenspeicherung des Teilergebnisses und
Fig. 5 in einer schematischen Darstellung die Bildung der
Folgeadressen in Abhängigkeit von verschiedenen Tests und damit verbundenen Verzweigungen im Ablauf des Mikroprogramms,
Es wird im folgenden anhand der Fig. 1 der schematisehe Aufbau
eines mikroprogrammgesteuerten Prozessors mit einer Steuereinheit SE und einer Verarbeitungseinheit VE zusammengefaßt erläutert,
um anschließend anhand eines derartigen Prozessors ein Verfahren zum Verarbeiten von Maschiraibefehlen mit Bytefeldoperanden
in einem mikroprogrammgesteuerten Prozessor beschreiben zu können. Fig. 1 zeigt neben dem Prozessor ein
Hauptspeichersystem HSP, das mit der Steuereinheit SE über
einen Koordinator KOOR verbunden ist. Das Hauptspeichersystem HSP enthält neben einem Arbeitsspeicher ASP einen beschreibbaren
Mikroprogrammspeicher MSP, in dem der größte Teil der Mikroprogramme niedergelegt ist. Zusätzlich ist schematisch
eine Speicheranschlußsteuerung SPS angedeutet, über die Speicherdaten in den Hauptspeicher eingegeben bzw. aus dem
Hauptspeicher ausgegeben werden.
Die Steuereinheit SE selbst zeigt, daß neben dem im Hauptspeicher liegenden langsamen Mikroprogrammspeicher MSP noch
VPA 9/210/5001
609882/0588
zwei weitere Mikroprogrammquellen vorgesehen sind: Über eine
Mikrobefehlsadressierung MBA kann nämlich sowohl der beschreibbare
Mikroprogrammspeicher MSP als auch ein Mikrobefehlspuffer MC oder ein Festwertspeicher ROM adressiert
werden. Der verhältnismäßig kleine Mikrobefehlspuffer MC nimmt laufende Mikroprogrammteile auf, so daß diese bei wiederholter
Verwendung nur einmal aus dem langsamen Mikroprogrammspeicher MSP gelesen werden müssen. Der darüber hinaus noch vorgesehene
Festwertspeicher ROM enthält verschiedene unveränderbare Teile des Mikroprogramms, insbesondere solche, die auch bei einem
Ausfall der Stromversorgung nicht verlorengehen dürfen, wie Urlaudeprogramme U3W.
Aus den drei genannten Mikroprogrammspeichern MSP, MC zw. ROM können wahlweise einzelne Mikrobefehle in ein Mikrobefehlsregister MBR übertragen v/erden. Über dieses wird einerseits
die Mikrobefehlsadressierung MBA, aber auch eine nur schematisch angegebene Decodiereinheit DEC angesteuert. Letztere
decodiert die einzelnen Bitstellen eines im Mikrobefehlsregister
MBR stehenden Mikrobefehls und wandelt sie in Steuersignale um, die in einer hier nicht mehr dargestellten Schaltung
den Datenfluß in der Verarbeitungseinheit VE steuern.
Darüber hinaus enthält die Steuereinheit SE analog der Mikrobefehlsadressierung MBA eine hier vereinfacht dargestellte,
als Arbeitsspeicheradrassierung SPA bezeichnete Einheit zur
Adressierung des Arbeitsspeichers ASP.
Der Steuereinheit SE ist eine Verarbeitungseinheit VS mit
Register-Bus-Struktur zugeordnet. Diese Verarbeitungseinheit
enthält dazu neben einem Registerspeicher, der vielfach auch als sogenanntes "Scratch Pad" bezeichnet wird, Adressregister,
von denen hier zwei im einzelnen mit A-REG bzw. B-RSG eigens
bezeichnet sind. Sie besitzt weiterhin Arbeitsregister, von denen hier nur zwei eigens dargestellt und mit U-REG bzw.
V-RSG bezeichnet sind. Neben weiteren Steuerregistern ST-REG weist die Verarbeitungseinheit VE eine arithmetische und logi-
VPA 9/210/5001
609882/0588
sche Verknüpfungseinheit ALU und eine Verschiebeeinheit SU auf, die zusammen mit den genannten Registern über drei jeweils ein
Speicherwort breite Sammelwege A-Bus, B-Bus bzw. C-Bus miteinander
verbunden sind.
Nach dieser zusammengefaßten Erläuterung eines mikroprogrammierten
Prozessors soll nun ein Verfahren zum Verarbeiten von Maschinenbefehlen mit BytefeXbperanden in einem solchen Prozessor beschrieben
werden. Ein wesentliches Merkmal dieses Verfahrens ist die Verwendung von Bytefeldmikrobefehlen, deren grundsätzlicher
Aufbau schematisch in Fig. 2 dargestellt ist. Für
dieses Beispiel ist angenommen, daß ein Maschinenwort und damit auch ein Mikrobefehl 32 Bitstellen umfassen möge. Diese Übereinstimmung
ergibt sich daraus, daß ein beschreibbarer Mikroprogrammspeicher MSP, wie erläutert, vorausgesetzt wird, der Teil des
Hauptspeichersystems HSP ist, und analog wie der eigentliche Arbeitsspeicher ASP angesteuert wird.
In dem in Fig. 2 dargestellten grundsätzlichen Aufbau eines Bytefeldmikrobefehls teilen sich diese 32 Bitstellen in eine
Anzahl von einzelnen Feldern auf: Von anderen Gruppen von Mikrobefehlen v/erden Bytefeldmikrobefehle durch ein drei Bit umfassendes
Gruppenkennzeichen GR unterschieden. Daneben ist in einem vier Bit breiten Feld das Funktionskennzeichen F des Bytefeldmikrobefehls
verschlüsselt, das seine Hauptfunktion festlegt. Dabei kann es sich ebenso um eine logische Verknüpfungsoperation
wie um eine binäre oder dezimale Addiererfunktion handeln.
Der Mikrobefehl enthält darüber hinaus zwei, jeweils fünf Bit breite Felder für Operandenadressen ADR1 bzw. ADR2, in denen
die Arbeitsregisteradressen für zwei miteinander zu verknüpfende Byteoperanden 0P1 bzw. 0P2 festgelegt sind. Er enthält darüber
hinaus ein ein Bit breites Kennzeichenfeld zur Festlegung der Verarbeitungsrichtung R, so daß beide Operanden entweder von
links oder von rechts verarbeitet werden können. Diesem schließt
VPA 9/210/5001
609882/0588
sich ein zwei Bit breites Feld für eine Zählerkontrolle an.
Damit ist das Yfeiterzählen der Operandenadressen zu steuern,
wobei ausgewählt werden kann, ob nur die Adresse des ersten oder nur die Adresse des zweiten oder die Adressen beider
Operanden gezählt werden sollen.
Das Format der Bytefeldmikrobefehle enthält darüber hinaus als weiteren wesentlichen Bestandteil drei vier Bit breite Felder
f olffe
für MikrobefehlSy&dressen FA1 bis FA3. 1Ae noch zu erläutern sein wird, werden mit diesen die bei den verschiedenen möglichen Verzweigungen der Mikroprogrammschleife benötigten Folgeadressen bereitgestellt.
für MikrobefehlSy&dressen FA1 bis FA3. 1Ae noch zu erläutern sein wird, werden mit diesen die bei den verschiedenen möglichen Verzweigungen der Mikroprogrammschleife benötigten Folgeadressen bereitgestellt.
Die Bedeutung dieses fonnalen Aufbaues des Befehlsformates
der Bytefeldmikrobefehle ergibt sich aus einem in Fig. 3 dargestellten Beispiel für den funktioneilen Ablauf eines bestimmten
logischen Verknüpfungsbefehls. Die gewählte graphische Darstellung
eines solchen AblaufSchemas ist in der Datenverarbeitung
als Darstellungsmethode geläufig und wird daher auch in diesem Fall verwendet. Das Ablaufdiagramm enthält einen durch
eine gestrichelte Linie umrissonen Bereich, der alle Funktionen eines Bytefeldmikrobefehles kennzeichnet. Für die darüber hinaus
in Fig. 3 dargestellten Verfahrensschritte v/erden andere Mikrobefehle benötigt, sie sind deshalb hier nur wegen des besseren
Verständnisses mit dargestellt. Außerdem v/ird bei der nachfolgenden Erläuterung einer byteweisen logischen Verknüpfungsoperation auch auf die anhand der Fig. 1 erläuterten Schaltungsanordnung
Bezug genommen.
Als Startbedingung für einen Bytefeldmikrobefehl müssen seine beiden Byteoperanden 0P1 und 0P2 in den beiden Arbeitsregistern
U-REG bzw, V-REG wortweise bereitgestellt sein. Dazu werden
diese aus dem Arbeitsspeicher ASP mit den beiden Operandenadressen in den Adressenregistern A-REG bzw. B-REG gelesen.
Damit ist 'im Ablauf schema
VPA 9/210/55001
609882/0588
der eine Anfangspunkt A als Startpunkt für die Ausführung des Bytefeldmikrobefehls erreicht.
Hier ist als Beispiel eines Bytefeldmikrobefehls ein logischer
"UND"-Verknüpfungsbefehl ausgewählt. Die im Block 1 schematisch
angedeutete byteweise Verknüpfungsoperation ergibt sich deutlicher
aus der Darstellung in Fig. 4. Dort sind zunächst zwei Arbeitsspeicherausschnitte
ASP1 bzw. ASP2 dargestellt, die den Beginn der beiden Operanden enthalten. Die Sehraffur in den beiden
Arbeitsspeicherausschnitten deutet an, daß/aer erste Operand 0P1
an einer V/ortgrenze V/G ausgerichtet ist. Bei der Bereitstellung von Operanden wird nun jeweils ein Arbeitsspeicherwort in die
beiden Arbeitsregister U-REG bzw. V-REG kopiert.
Für die Verknüpfung der beiden führenden Bytes der beiden, in den Arbeitsregistern U-REG und V-REG bereitgestellten Byteoperanden
0P1 bzw. 0P2 muß nun das erste Byte U0 und das zweite Byte V1 ausgewählt werden. Das geschieht aufgrund der beiden
niedrigstwertigen Bitstellen der Arbeitsspeicheradressen A, B, die in den beiden Adressregistern A-REG bzw. B-REG gespeichert
sind. In Fig. 4 sind diese beiden Bitstellen oberhalb der beiden Arbeitsspeicherausschnitte ASP1 bzw. ASP2 angedeutet. Im
gewählten Fall ist A 30, 31 = 00 bzw. B 30, 31 = 01. Die Auswertung
dieser beiden Bitstellen ergibt, daß im ersten Durchlauf der Mikroprogrammschleife das erste Byte U0 des ersten
Operanden mit dein zweiten Byte V1 des zweiten Operanden in einem schematisch dargestellten Verknüpfungsglied VG, das Teil der
arithmetischen und logischen Einheit ALU ist, verknüpft wird. Das Ergebnis wird in das ausgewählte erste Bytefeld U0 des
Arbeitsregisters U-REG zurückgeschrieben.
Bei der Verarbeitung von Bytefeldmikrobefehlen wird Jeweils mit der Übernahme des Ergebnisses in ein Byte des ersten Arbeitsregisters U-REG wird jeweils ein diesem Byte zugeordnetes
Anzeigeflipflop, der sogenannte Bytemerker, ζ. Β. ΒΜ0 gesetzt.
VPA 9/210/5001
609882/0588
ί. VvJ T W
Die Byteraerker BM0...BM3 werden beim Schreiben des zwischengespeicherten
Ergebnisses in den Arbeitsspeicher ASP ausgewertet: Im ausgewählten Arbeitsspeicherwort werden nur die Bytes verändert,
deren zugeordnete Bytemerker gesetzt sind. Sind die indizierten Bytes übertragen, so v/erden alle Bytemerker zurückgesetzt
und die Anzeigen bei der weiteren Ausführung von Bytefeldmikrobefehlen neu aufgebaut.
Im funktioneilen Ablauf des Mikrobefehls gemäß Fig. 3 vvird anschließend
im Block 2 geprüft, ob das Bytefeld ganz verarbeitet ist. Das geschieht durch einen im Block 2 angedeuteten Längentest.
Dieser ermöglicht eine mit a bezeichnete erste Verzweigung. Bei nicht erfülltem Test folgt ein zweiter, Im Block
3 angedeuteter Test, ob das laufende Wort des ersten Operanden 0P1 fertig bearbeitet ist. Der erfüllte Test führt zu einer
zweiten, mit b bezeichneten Verzweigung. Bei nichterfülltem
Test schließt sich ein dritter, im Block 4 angedeuteter Test an, ob das laufende V/ort des zweiten Operanden 0P2 fertig bearbeitet
ist. Dieser dritte Tost erlaubt eine dritte, mit c bezeichnete Verzweigung.
Wenn jedoch, wie in dem hier gewählten Beispiel, auch dieser
Test nicht erfüllt ist, dann wird automatisch nach d vorzweigt
und entsprechend Block 5 der Inhalt des Adreßfeldes FA1 in das
Hikrobsfehlsü.dreßregioter MBA übertragen. Außerdem v/erden entsprechend
den Angaben in den Blöcken 6, 7 und 8 der Längenzeiger L um 1 erniedrigt und die beiden Adressen der Byteopsranden 0P1
bzv/. 0P2 um 1 erhöht. Damit ist der Bytefeldmikrobefehl abgeschlossen,
Als nächster Mikrobefehl wird dann der durch das Adreßfeld FA1 adressierte Mikrobefehl ausgeführt, das ist hier
wieder der Bytefeldmikrobefehl, der einen Sprung auf sich
selbst ausgeführt hat.
Mindestens bei jedem vierten Durchlauf ist aber der im Block 3 dargestellte Test erfüllt. In der mit b bezeichneten Verzweigung
YPA 9/210/5001
609882/0BhA
wird der Inhalt des Mikrobefehlsadreßregisters MBA um 1 erhöht,
wie im Block 31 angedeutet ist. Entsprechend den Blöcken 32 bis 34 wird der Längenzeiger um 1 erniedrigt und es v/erden
die Adressen der beiden Byteoperanden 0P1 bzw. 0P2 um 1 erhöht.
Da das laufende Wort des ersten Operanden 0P1, wie der Test
ergeben hat, fertig bearbeitet ist, muß das im ersten Arbeitsregister U-REG stehende Teilergebnis nun abgespeichert werden.
Wie oben erläutert, werden dabei nur die durch gesetzte Bytemerker
BM0...BM3 indizierten Bytes übertragen und die Bytemerker
danach rückgesetzt. Anschließend wird ein neues Arbeitsspeicherwort des ersten Operanden OPI in diesem Register bereitgestellt.
Dies geschieht, wie in Block 35 angedeutet, aufgrund eirioa
eigenen Mikrobefehls, der mit der nunmehr im Mikrobefehlsadreßregister MBA stehenden neuen Adresse ausgewählt wird. Nach dieser
Bereitstellung eines neues Wortes des ersten Byteoperanden OPI wird weiterfin entsprechend dem Block. 36 getestet, ob etwa auch
das laufende Wort des zweiten Byteoperanden 0P2 fertig bearbeitet ist. Ist dieser Test erfüllt, so inuö bevor das Mikroprogramm
wieder zum Bytefeldmikrobefehl zurückkehren kann, (A) auch noch analog Block 37 ein neues Wort des zweiten Operanden im zweiten
Aiteitsreglster V-REG bereitgestellt werden.
Dieser eben geschilderten Verzweigung b entspricht im ■wesentlichen
auch die aus dem dritten Test im Block 4 hervorgehende dritte Verzweigung c, mit dem Unterschied, daß in diesem Zweig
keine Ergebnisse in den Arbeitsspeicher ASP übertragen werden müssen. Dieser funktionelle Unterschied läßt sich dadurch erreichen,
daß mit dem Block 41 der Inhalt des dritten Folgeadreßfeldes FA3 in das Mikrobefehlsadreßregister MBA übertragen wird.
Dem schließt sich die in den beiden Zweigen bereits geschilderten Erniedrigung des Bytolängenzeigers L um 1 und die jeweilige
Erhöhung der beiden Operandenadressen um 1 in den Blöcken 42 bis 44 an. Durch einen aufgrund der neuen Mikrobefehlsadresse
VPA 9/210/5001
609882/0588
bestimmten Mikrobefehl wird dann noch vor Eintritt des Mikroprogramms
in den Anfangspunkt A, wie im.Block 45 angedeutet,
ein neues Wort des zweiten Operanden im zweiten Arbeitsregister V-REG bereitgestellt.
Schließlich ist noch die Verzweigung a zu betrachten, in die automatisch bei erfülltem Längentest verzweigt wird. Ist der
Bytelängenzeiger L = -0, so ist das Bytefeld ganz verarbeitet. Aus dem im Mikrobefehlsregister stehenden Bytefeldmikrobefehl
wird nun das zweite Folgeadreßfeld FA2 in das Mikrobefohlsadreßregister
MBA übertragen. Damit wird ein neuer Mikrobefehl adressiert, mit dem der letzte Teil des im ersten Arbeitsregister
U-.RKG stehenden Ergebnisses im Arbeitsspeicher ASP abge~
speichert wird und danach das Mikroprogramm zur Verarbeitung von Bytefeldern endet, wie im Block 22 angegebenAst.
Wenn nun mit einem solchen Bytefeldaiikrobefehl ein Schleifendurchlauf
in jedem Maschinenzyklus abgeschlossen werden soll, se müssen neben der im Block 1 angegebenen Hauptfunktion
des Befehles auch alle anderen Funktionen innerhalb des gestrichelten Bereiches in Fig. 3 als Nebenfunktionen parallel
ausgeführt worden. Dies bedeutet jedoch schaltungstechnisch keinen erhöhten Aufwand, da in der eigentlichen Verarbeitungseinheit VE des Prozessors die schaltungsmäßigen Voraussetzungen
für jeden Test und jede Kontrolle en sich bereits vorhanden
sein müssen und solche Parallelarbeit in der Mikroprogrammierung
vielfach üblich ist.
Im vorliegenden Fall besteht jedoch noch insofern eine Besonderheit,
als insgesamt vier Zweige im Ablauf eines Mikrobefehls möglich sind und deshalb die Verzweigungen, deren Bedingungen
parallel getestet werden, priorisiert v/erden müssen. Höchste Priorität besitzt dabei die Verzweigung a. Dieser Priorität
ordnen sich die Verzweigungen b, c und d in der angegebenen
VPA 9/210/5001
609882/0588
25293A8
Reihenfolge unter.
Gesteuert wird diese Priorisierung durch eine Programmsteuereinheit
PSE, die in Fig. 5 schematisch dargestellt ist und in herkömmlicher Weise als fest verdrahtetes Prioritätsnetzwerk
ausgebildet ist. Sie ist zwischen das Mikrobefehlsregister MBR
adreß
und das Mikrobefehls/register MBA geschaltet und Teil der Decodierungs- und Steuereinheit DEC. Die Prioritätssteuereinheit schaltet, wie in Fig. 5 schematisch angedeutet, jeweils eines der Folgeadressfelder FA1 bis FA3 in Abhängigkeit von aus den erfüllten Tests abgeleiteten Steuersignalen auf das Mikrobefehlsadressregister MBA durch.
und das Mikrobefehls/register MBA geschaltet und Teil der Decodierungs- und Steuereinheit DEC. Die Prioritätssteuereinheit schaltet, wie in Fig. 5 schematisch angedeutet, jeweils eines der Folgeadressfelder FA1 bis FA3 in Abhängigkeit von aus den erfüllten Tests abgeleiteten Steuersignalen auf das Mikrobefehlsadressregister MBA durch.
Damit ist nun deutlich geworden,· daß für die Verarbeitung von
Bytefeldmikrobefehlen im wesentlichen lediglich Schaltungsanordnungen notwendig sind,die auch bei einer Mehrzahl von
anderen Mikrobefehlen benötigt werden. Zusätzlich erforderlich
ist lediglich eine Steuerung für die Priorisierung von impliziten Tests bzw. Folgeadressen, wie sie in Fig. 5 dargestellt
ist. Bei dem erreichten Leistungsgewinn und der Verringerung des benötigten Mikroprogrammspeicherplatzes ist dieser schaltungsmäßige
Aufwand denkbar gering, so daß der scheinbar sehr komplizierte Ablauf eines Bytefeldmikrobefehls, wie er sich aus Fig.
ergibt, in Y/irklichkeit eine bedeutende Vereinfachung in der
Verarbeitung von Bytefeldern durch einen mlkr©programmierten
Prozessor darstellt.
5 Figuren
6 Patentansprüche
VPA 9/210/5001
609882/0588
Claims (6)
- Patentanspr ü.c h eVerfahren zum Verarbeiten von Maschinenbefehlen mit Bytefeldoperanden in einem mikroprogrammierten Prozessor einer Datenverarbeitungsanlage mit V/ortorientierung, bei dem zum byteweisen Verarbeiten eines Bytefeldes immer wieder eine Mikroprogrammschleife durchlaufen wird, in der neben der Bereitstellung der Operanden die jeweils zu verarbeitenden Bytes ausgewählt und verknüpft, Ergebnisse zwischengaspeichert, Längen der noch nicht verarbeiteten Teile der Bytefelder gezählt und Adressen- bzw. Längentests durchgeführt v/erden, dadurch gekennzeichnet, daß die Adressen der jeweils gerr/insam zu verarbeitenden Ooeranden (0P1 bzw* 0P2) durch ein Mikroprogramm gesteuert in Adreßregister (A, B) eingeschrieben und diese selbst in jeweils ein Maschinenwort umfassenden Operandenregistern (U, V) bereitgestellt werden, daß der gosarnte weitere Durchlauf durch die Programmschleife mit einem einzigen gesonderten Mikrobefehl, einem sogenannten Bytefeldmikrobefehl, dessen Hauptfunktion und Sonderfunktion'in einem einzigen Maschinenzyklus parallel verarbeitet v/erden, gesteuert wird, und daß erst das Abspeichern von Teil- und Endergebnissen, sowie das Bereitstellen neuer Worte der Operanden v/i eder durch andere Mikrobefehls ausgelöst wird, deren Adressen mit Nebenfunktionen des Eytefeldraikrobefehls erzeugt v/erden.
- 2. Verfahren nach Anspruch 1,dadurch gekennzeichnet, daß die Bytefeldmikrobefehle in ihrem Befehlsformat folgende Felder enthalten:a) ein Gruppenkennzeichen (GR) zum Unterscheiden von Bytefeldmikrobefehlen von anderen Gruppen von Mikrobefehlen,b) ein Funktionskennzeichen (F) zum Definieren der mit dem Befehl auszuführenden Hauptfunktion,c) ein erstes Adressenfeld (ADR1) für das AdreßregisterVPA 9/210/5001609882/0588des ersten Byteoperanden (0P1),d) ein zweites Adressenfeld (ADR2) für das Adreßregister v des zweiten Byteoperanden (0P2) tinde) drei v/eitere Felder (FA1 bis FA3) zum Kennzeichnen von Mikrobefehlsfolgeadressen, in denen von Tests hinsichtlich der verarbeiteten Bytefeldlänge (L) und der fortschreitenden Verarbeitung der bereitgestellten Operanden abhängige Sprungadressen angegeben sind (Fig. 2).
- 3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß das Format der Bytefeldmikrobefehle darüber hinaus ein Feld für Zählerkontrolle (ZK) und ein weiteres für die Festlegung der Verarbeitungsrichtung (R) enthält (Fig. 2).
- 4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß die beim Ausführen eines Bytefeldmikrobefehls miteinander zu verknüpfenden Bytes (z. B. U0 und V1), die in Arbeitsregistern (U-REG, V-REG) bereitgestellt sind, aufgrund der beiden niedrigstwertigen Bitstellen (z. B. A30, 31 und B30, B31) der in Adreßregistern (α bzw. B) zwischsngespeicherten Arbeitsspeicheradressen (ADR (OPI)) bzw. (ADR'(0P2)) der beiden Byteoperanden (0P1 bzw. 0P2) indiziert ausgewählt werden, daß mit den ausgewählten Bytes in einer Verarbeitungseinheit (VE) die durch die Hauptfunktion festgelegte Verarbeitungsoperation durchgeführt wird und daß anschließend das darauf beruhende Ergebnis in das erste Arbeitsregister (U) an der Stelle des ausgewählten Bytes des ersten Operanden (U0) zwischengespeichert wird, bis das bereitgestellte Speicherwort dieses Operanden insgesamt verarbeitet ist und das Ergebnis daraus in den Arbeitsspeicher (ASP) übertragen wird. (Fig. 4).
- 5» Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß mit dem Zwischenspeichern des Ergebnisses einer Bytefeldoperation in einem Teil des ersten Arbeitsregisters (U-REG) ein diesem Byte des Registers .zugeordxis-VPA 9/210/5001609882/0588tes Anzeigeflipflop, der sogenannte Bytemerker (B140, BM1, BM2 bzw. BM3) gesetzt wird, daß beim Übertragen des Ergebnisses aus dem ersten Arboitsregister in den Arbeitsspeicher (ASP) von dem ausgewählten Arbeitsspeicherwort nur diejenigen Bytes adressierbar sind, deren zugeordneter Bytemerker gesetzt ist und daß bei dem so byteweise indizierten Übertragen des Ergebnisses sämtliche Bytemerker rückgesetzt werden.
- 6. Verfahren nach einem der Ansprüche 1 bis 5» dadurch gekennzeichnet, daß dieparallel zur Hauptfunktion eines Bytefeldmikrobefehls auszuführenden impliziten Tests durch eine Prioritätssteuereiriheit (PSE) gesteuert wirksam werden, in der dem Längentest (2), άοη jeweiligen Tests für Verarbeitung des ersten und des zweiten Operanden (3 bzw* 4) und der Bedingung "kein Test erfüllt" in absteigender Reihenfolge Prioritäten zugeordnet v/erden, daß mit dem jeweils erfüllten Test höchster Priorität durch die Prioritätssteuereinheit' die Übertragung v3ines Folgeadressenfeldes (FA1, FA2 bzw. FA3) des im Mikrobofehlsregister (I4BR) stehenden Mikrobefehles in das Mikrobefehlsadressenregister (MBA) oder die Erhöhung des Mikrobefehl.-sadrössenregister (MBA) um "1" ausgelöst wird und damit eine Folgeadresse des nächsten Mikrobefehls festgelegt ist, mit dem das Mikroprogramm fortgesetzt wird. (Fig. 3).VPA 9/210/5001609882/0588Leerseite
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19752529348 DE2529348A1 (de) | 1975-07-01 | 1975-07-01 | Verfahren zum verarbeiten von maschinenbefehlen mit bytefeldoperanden in einem mikroprogrammierten prozessor einer datenverarbeitungsanlage |
CH773476A CH607137A5 (de) | 1975-07-01 | 1976-06-17 | |
FR7619409A FR2316658A1 (fr) | 1975-07-01 | 1976-06-25 | Procede pour traiter des instructions machine comportant des operandes formes d'ensembles de multiplets dans un processeur microprogramme d'une installation de traitement des donnees |
IT2470376A IT1081213B (it) | 1975-07-01 | 1976-06-25 | Dispositivo per elaborare istruzioni di macchina con operandi di campo di byte in un elaboratore micro programmato di un impianto per la elaborazione di dati |
NL7607282A NL7607282A (nl) | 1975-07-01 | 1976-07-01 | Werkwijze voor het verwerken van machine-in- structies met byteveldoperanden in een mikro- -geprogrammeerde verwerkingseenheid van een informatieverwerkingsinrichting. |
BE168559A BE843688A (fr) | 1975-07-01 | 1976-07-01 | Procede pour traiter des instructions machine comportant des operandes formes d'ensembles de multiplets dans un processeur microprogramme |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19752529348 DE2529348A1 (de) | 1975-07-01 | 1975-07-01 | Verfahren zum verarbeiten von maschinenbefehlen mit bytefeldoperanden in einem mikroprogrammierten prozessor einer datenverarbeitungsanlage |
Publications (1)
Publication Number | Publication Date |
---|---|
DE2529348A1 true DE2529348A1 (de) | 1977-01-13 |
Family
ID=5950399
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19752529348 Pending DE2529348A1 (de) | 1975-07-01 | 1975-07-01 | Verfahren zum verarbeiten von maschinenbefehlen mit bytefeldoperanden in einem mikroprogrammierten prozessor einer datenverarbeitungsanlage |
Country Status (6)
Country | Link |
---|---|
BE (1) | BE843688A (de) |
CH (1) | CH607137A5 (de) |
DE (1) | DE2529348A1 (de) |
FR (1) | FR2316658A1 (de) |
IT (1) | IT1081213B (de) |
NL (1) | NL7607282A (de) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0648461B2 (ja) * | 1987-07-09 | 1994-06-22 | 日本電気株式会社 | マイクロプログラムの転送レジスタ指定方式 |
US4933847A (en) * | 1987-11-17 | 1990-06-12 | International Business Machines Corporation | Microcode branch based upon operand length and alignment |
US5168571A (en) * | 1990-01-24 | 1992-12-01 | International Business Machines Corporation | System for aligning bytes of variable multi-bytes length operand based on alu byte length and a number of unprocessed byte data |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3570006A (en) * | 1968-01-02 | 1971-03-09 | Honeywell Inc | Multiple branch technique |
GB1218656A (en) * | 1968-03-27 | 1971-01-06 | Int Computers Ltd | Improvements in or relating to computer system |
-
1975
- 1975-07-01 DE DE19752529348 patent/DE2529348A1/de active Pending
-
1976
- 1976-06-17 CH CH773476A patent/CH607137A5/xx not_active IP Right Cessation
- 1976-06-25 IT IT2470376A patent/IT1081213B/it active
- 1976-06-25 FR FR7619409A patent/FR2316658A1/fr not_active Withdrawn
- 1976-07-01 NL NL7607282A patent/NL7607282A/xx not_active Application Discontinuation
- 1976-07-01 BE BE168559A patent/BE843688A/xx unknown
Also Published As
Publication number | Publication date |
---|---|
BE843688A (fr) | 1977-01-03 |
IT1081213B (it) | 1985-05-16 |
NL7607282A (nl) | 1977-01-04 |
CH607137A5 (de) | 1978-11-30 |
FR2316658A1 (fr) | 1977-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2714805C2 (de) | ||
DE1931966C3 (de) | Datenverarbeitungsanlage mit Assoziativspeichern | |
DE1774296C2 (de) | Restruktuierbare Steuereinheit für elektronische Digitalrechner | |
DE2555963C2 (de) | Einrichtung zur Funktionsmodifizierung | |
DE2704842C2 (de) | Im Pipeline-Betrieb arbeitende Datenverarbeitungseinrichtung | |
EP0097725B1 (de) | Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen | |
DE1499200B2 (de) | Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung | |
EP0048767A1 (de) | Prioritätsstufengesteuerte Unterbrechungseinrichtung | |
DE2411963B2 (de) | Datenverarbeitungsanlage | |
DE2746505C2 (de) | ||
DE2318069A1 (de) | Rechnersteuersystem unter verwendung von mikroprogrammierung und statisch/dynamischer erweiterung von steuerfunktionen mittels festverdrahteter logischer matrix | |
DE2935906A1 (de) | Mikrokomputer | |
DE1774870C3 (de) | Einrichtung zur Adressierung einer Speicherzelle eines Speichers in einer Datenverarbeitungsanlage | |
EP0010185A1 (de) | Virtuell-Adressiervorrichtung für einen Computer | |
DE2164793A1 (de) | Verfahren und Datenverarbeitungsanlage zur Steuerung einer Vielzahl von Eingabe/ Ausgabe-Einheiten mittels eine Zentraleinheit | |
DE2426874A1 (de) | Verfahren und schaltungsanordnung zur bestimmung der adressenart eines befehls | |
DE2433436A1 (de) | Verfahren und anordnung zum mehrfachverzweigen des programms in einem digitalen computer | |
DE2617485A1 (de) | Verfahren und schaltungsanordnung zur abarbeitung von mikrobefehlsfolgen in datenverarbeitungsanlagen | |
DE2702722C2 (de) | Einrichtung zur Verarbeitung nicht direkt ausführbarer Instruktionen | |
DE2854400C2 (de) | Anordnung zum Wechsel zwischen verzahnt zu verarbeitenden Programmen | |
DE3121046C2 (de) | ||
DE2336676B2 (de) | Einrichtung zur Modifizierung von Mikroprogrammbefehlen | |
DE2245284A1 (de) | Datenverarbeitungsanlage | |
DE3344340C2 (de) | Datenverarbeitungsanordnung zum Durchführen von Mikrobefehlen | |
DE2529348A1 (de) | Verfahren zum verarbeiten von maschinenbefehlen mit bytefeldoperanden in einem mikroprogrammierten prozessor einer datenverarbeitungsanlage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OHW | Rejection |