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 datenverarbeitungsanlage

Info

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
Application number
DE19752529348
Other languages
English (en)
Inventor
Norbert Dipl Ing Haff
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens AG
Original Assignee
Siemens AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens AG filed Critical Siemens AG
Priority to DE19752529348 priority Critical patent/DE2529348A1/de
Priority to CH773476A priority patent/CH607137A5/xx
Priority to FR7619409A priority patent/FR2316658A1/fr
Priority to IT2470376A priority patent/IT1081213B/it
Priority to NL7607282A priority patent/NL7607282A/xx
Priority to BE168559A priority patent/BE843688A/xx
Publication of DE2529348A1 publication Critical patent/DE2529348A1/de
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/22Microcontrol or microprogram arrangements
    • G06F9/226Microinstruction 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.
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.
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)

  1. Patentanspr ü.c h e
    Verfahren 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. 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ßregister
    VPA 9/210/5001
    609882/0588
    des ersten Byteoperanden (0P1),
    d) ein zweites Adressenfeld (ADR2) für das Adreßregister v des zweiten Byteoperanden (0P2) tind
    e) 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. 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. 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. 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/5001
    609882/0588
    tes 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. 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/5001
    609882/0588
    Leerseite
DE19752529348 1975-07-01 1975-07-01 Verfahren zum verarbeiten von maschinenbefehlen mit bytefeldoperanden in einem mikroprogrammierten prozessor einer datenverarbeitungsanlage Pending DE2529348A1 (de)

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)

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

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

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