DE3751758T2 - Mikroprozessor - Google Patents

Mikroprozessor

Info

Publication number
DE3751758T2
DE3751758T2 DE3751758T DE3751758T DE3751758T2 DE 3751758 T2 DE3751758 T2 DE 3751758T2 DE 3751758 T DE3751758 T DE 3751758T DE 3751758 T DE3751758 T DE 3751758T DE 3751758 T2 DE3751758 T2 DE 3751758T2
Authority
DE
Germany
Prior art keywords
instruction
register
data
bit field
alu
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.)
Expired - Fee Related
Application number
DE3751758T
Other languages
English (en)
Other versions
DE3751758D1 (de
Inventor
Atsushi Hasegawa
Kazuhiko Iwasaki
Ikuya Kawasaki
Ken Sakamura
Motonobu Tonomura
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.)
Hitachi Microcomputer System Ltd
Hitachi Ltd
Original Assignee
Hitachi Microcomputer System Ltd
Hitachi Ltd
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 Hitachi Microcomputer System Ltd, Hitachi Ltd filed Critical Hitachi Microcomputer System Ltd
Application granted granted Critical
Publication of DE3751758D1 publication Critical patent/DE3751758D1/de
Publication of DE3751758T2 publication Critical patent/DE3751758T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30018Bit or string instructions
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)

Description

    HINTERGRUND DER ERFINDUNG
  • Herkömmlicherweise sind Mikroprozessoren mit verschiedenen Befehlen für logische Operationen versehen, wie für das logische Produkt (UND), die logische Summe (ODER), exklusiv-ODER (XOR) und dergleichen, zusätzlich zu Befehlen für arithmetische Operationen wie Addition, Subtraktion, Multiplikation, Division, Vergleich und dergleichen.
  • Beim Befehlssystem herkömmlicher Mikroprozessoren wird die Befehlsart durch einen Befehl (Operationscode) spezifiziert. Anders gesagt, wird für jede Operation ein Befehl bereitgestellt, und die Operationsart ist in einem Programm festgelegt und kann, abweichend von Daten, nicht geändert werden. Daher ist es, wenn ein Programm im ROM (Festwertspeicher) abgespeichert ist, nicht möglich, Operationen zu ändern.
  • Wenn eine graphische Verarbeitung wie sogenanntes "Verschmieren" oder "Transparenz" dadurch ausgeführt wird, daß logische Operationen von Daten in einem Bitfeld auf technischen Gebieten wie z. B. dem der Computergraphik ausgeführt werden, könnte ein Programm einfacher entwickelt werden, wenn die Operationsart dynamisch unter Betrachtung der Anzeigefläche bestimmt werden könnte.
  • Jedoch muß bei herkömmlichen Mikroprozessoren, in denen Befehle abhängig von der Operationsart bestimmt sind, der Operationsbefehl in einem Programm umgeschrieben werden, um den Inhalt der Operationsverarbeitung zu ändern, und das Programm verfügt über keine Flexibilität.
  • Andererseits müssen zum Bestimmen der nächsten Operation oder der Operationsart auf Grundlage des Ergebnisses, wie es durch Ausführung eines bestimmten vorangehenden Befehls erhalten wird, diejenigen Befehle oder Operationen, die als nächste ausgeführt werden können, aufgelistet werden. Anders gesagt, muß ein Programm auf solche Weise erstellt werden, daß ein Befehl oder eine Operation unter den aufgelisteten auf Grundlage des Ergebnisses ausgewählt wird, das durch Ausführen eines bestimmten Befehls erhalten wurde. Daher entsteht zusätzlich zur geringen Flexibilität des Programms eine andere Schwierigkeit dahingehend, daß eine Befehlsauswahlverarbeitung ausgeführt werden muß, und Betrieb mit hoher Geschwindigkeit ist begrenzt, wenn eine Reihe von Befehlen ausgeführt wird.
  • Aus dem Dokument US-A-4,293,907 ist ein Mikrocomputer bekannt, der ein Operationscode-Erweiterungsregister enthält, um einen Code für programmierbare Auswahl wahlweiser Merkmale einzuspeichern, um die durch den Operationscode in jedem Befehl definierten Mikrocomputeroperationen zu modifizieren.
  • Ein Steuerabschnitt im Mikrocomputer decodiert sowohl den Operationscode eines aktuellen Befehls als auch den Code des Operationscode-Erweiterungsregisters, und er kombiniert die zwei Codes, um einen erweiterten Operationscode zu erzeugen.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Der Erfindung liegt die Aufgabe zugrunde, eine Mikrocomputerarchitektur, die hohe Flexiblität und Funktion mit hoher Geschwindigkeit hinsichtlich der auszuführenden Operationsart erlaubt, und ein Verfahren zum Steuern eines derartigen Mikrocomputers zu schaffen.
  • Diese Aufgabe wird durch den Mikrocomputer gemäß Anspruch 1 und das Verfahren gemäß Anspruch 7 gelöst. Bevorzugte Ausführungsformen sind in den Unteransprüchen offenbart.
  • Gemäß der Erfindung wird eine gewünschte Operation durch einen Befehl ausgeführt, zu dem Operandeninformation zum Spezifizieren der Operationsart außerhalb oder in einem Operationsspezifizierabschnitt hinzugefügt ist, der einen gemeinsamen Operationscode von "Operationen" (im weiten Sinn des Worts) einspeichert, der als einer der Operanden die Operationsart angibt.
  • Gemäß der Erfindung wird der Inhalt des Operanden zum Spezifizieren der Operationsart auf Grundlage des Ergebnisses der Ausführung eines bestimmten Befehls vorab eingestellt, und die Operation kann durch einen nächsten Befehl abhängig vom Inhalt des obenbeschriebenen Operanden ausgeführt werden. Daher kann die Operationsart im Programm dynamisch geändert werden, und die obenangegebenen Ziele zum Verleihen von Flexibilität an ein Programm und zum einfachen Entwickeln eines Programms für graphische Verarbeitung können erreicht werden.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Fig. 1 und 2 sind erläuternde Ansichten, die Strukturbeispiele von Interbitfeldern bei Bitfeldoperations-Befehlen zeigen, worauf die Erfindung angewandt wird;
  • Fig. 3 ist ein Blockdiagramm, das ein Strukturbeispiel eines Mikroprozessors zum Ausführen eines Bitfeldbefehls gemäß der Erfindung;
  • Fig. 4 ist ein Blockdiagramm, das die interne Struktur der in Fig. 3 dargestellten Ausführungseinheit zeigt;
  • Fig. 5, 6A und 6B sind Strukturansichten der in Fig. 4 dargestellten Arithmetik- und Logikeinheit ALU;
  • Fig. 7 ist ein Flußdiagramm, das die Ausführungsfolge des Interbitfeldoperations-Befehls zeigt, auf den die Erfindung angewandt wird;
  • Fig. 8 zeigt eine Ausführungsfolge, die zum detaillierteren Erläutern eines Schritts S1 in Fig. 7 von Nutzen ist;
  • Fig. 9A und 9B zeigen Beispiele von Befehlsformaten, auf die die Erfindung angewandt wird; und
  • Fig. 10 und 11 sind erläuternde Ansichten, die zum Erläutern der Operationen in der in Fig. 8 dargestellten Ausführungsfolge von Nutzen sind.
  • BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSBEISPIELE
  • Nachfolgend wird ein Ausführungsbeispiel der Erfindung beschrieben, das auf einen Befehl angewandt ist, der die Handhabung von Daten ab einem wahlfreien Bit bis zu einem wahlfreien Bit innerhalb eines Speichers, als "Bitfeld" bezeichnet (nachfolgend als "Bitfeldbefehl" bezeichnet), betrifft.
  • Wie es in den Fig. 1 und 2 der beigefügten Zeichnungen dargestellt ist, liefert der Bitfeldbefehl als Operanden drei Werte, nämlich eine Basisadresse BA, einen Versatz Off gegenüber dieser Basisadresse und eine Feldbreite WD, die die Feldlänge (Bitzahl) repräsentiert und ein gewünschtes Feld innerhalb eines Speichers spezifiziert, um eine Logikoperationsverarbeitung wie UND und ODER auszuführen. Übrigens ist ein derartiger Bitfeldbefehl bereits in Mikroprozessoren wie dem Prozessor Motorola MC6802 bereitgestellt. In diesem Bitfeldbefehl sind die Basisadresse BA, der Versatz Off und die Feldbreite WD durch Operanden nach dem Operationscode angegeben.
  • Dieses Ausführungsbeispiel spezifiziert auch die Operationsart durch den Operanden. Als bestimmtes Verfahren zum Spezifizieren einer Operation durch den Operanden verwendet das in Fig. 9A dargestellte Ausführungsbeispiel z. B. ein direktes Registeradressiersystem mit einer Registernummer. Anders gesagt, wird ein die Art von Operationen repräsentierender Code vorab in ein vorgegebenes Register R5 eingetragen, und die Nummer des den Code speichernden Registers und ein Adressiermodus werden in den Operanden eingetragen. Beim in Fig. 9B dargestellten Ausführungsbeispiel ist dagegen Information zum Bewirken, daß die Operationsart auf Grundlage des Inhalts des Registers R5 bestimmt wird, zum Operationscode hinzugefügt. Wenn der in Fig. 9A oder 9B dargestellte Befehl ausgeführt wird, wird der die Operationsart repräsentierende Code vorab als Datenwert durch den Befehl MOVE oder dergleichen aus dem Speicher ausgelesen und in das vorgegebene Register R5 eingespeichert.
  • Auf ähnliche Weise werden die in vorgegebenen Registern abgespeicherten Werte für die Basisadresse BA, den Versatz Off und die Feldbreite WD verwendet, um einen Befehl auszuführen.
  • Der in Fig. 9A oder 9B dargestellte Befehl ist z. B. ein Bitfeldbefehl, bei dem es sich um einen sogenannten "Interbitfeldoperations"-Befehl handelt, der den logischen Wert zwischen den Daten eines bestimmten Bitfelds (Quellenseite) und den Daten eines anderen Bitfelds (Zielseite) berechnet und den logischen Wert in das Bitfeld der Zielseite einträgt. Die Ausführung dieses Befehls benötigt Register zum Einspeichern der Basisadresse BAS, das Versatzes Offs und der Feldbreite WDs zum Spezifizieren des Bitfelds auf der Quellenseite, Register zum Einspeichern der Basisadresse BAD, des Versatzes OFFd und der Basisbreite WDd zum Spezifizieren des Bitfelds auf der Zielseite sowie ein Register zum Einspeichern des Codes zum Spezifizieren der Operationsart. Jedoch ist in einem Befehl, der den logischen Wert zwischen diesen zwei Bitfeldern berechnet, die Feldbreite WD im wesentlichen dieselbe, und aus diesem Grund kann ein Register gemeinsam verwendet werden.
  • Die Tabelle 1 zeigt ein Beispiel für die Beziehung zwischen den für den Interbitfeldoperations-Befehl verwendeten Registern und den in den Registern abgespeicherten Daten. Tabelle 1 BA des Bitfelds auf der Quellenseite Off des Bitfelds auf der Quellenseite Feldbreite (WD) BA des Bitfelds auf der Zielseite Off des Bitfelds auf der Zielseite Operationsart
  • Das Symbol BA repräsentiert die Basisadresse und Off repräsentiert den Versatz.
  • Die Tabelle 2 veranschaulicht Operationsarten, wie sie durch das obenangegebene Register R5 spezifiziert werden. Tabelle 2 Art von Operationen Inhalt True False AND Or NotAnd NotOr AndNot OrNot NotAndNot NotOrNot
  • In der obigen Tabelle 2 bedeutet die durch True repräsentierte Operation eine Operation, die alle Bits im Bitfeld auf der Zielseite auf "1" setzt, und die Operation False setzt alle Bits im Bitfeld auf der Zielseite auf "0". Die Operation Notdest repräsentiert eine Operation, die die Daten aller Bits des Bitfelds auf der Zielseite invertiert und sie zum ursprünglichen Bitfeld zurückliefert, und die Operation Dest liefert die Daten im Bitfeld auf der Zielseite an das ursprüngliche Bitfeld zurück. Die Operation Not invertiert die Daten aller Bits im Bitfeld auf der Quellenseite und trägt sie in das Bitfeld auf der Zielseite ein, und die Operation Src trägt die Daten im Bitfeld auf der Quellenseite in das Bitfeld auf der Zielseite ein.
  • Ferner berechnet die Operation AND das logische Produkt zwischen den Daten der Bitfelder auf der Quellen- und der Zielseite und trägt das Ergebnis in das Bitfeld auf der Zielseite ein, und die Operation Or berechnet die logische Summe zwischen den Daten in den Bitfeldern auf der Quellenseite und der Zielseite und trägt das Ergebnis in das Bitfeld auf der Zielseite ein. Die Operation Xor berechnet den Exklusiv- Oder-Wert zwischen den Daten in den Bitfeldern auf der Ziel- und der Quellenseite und trägt das Ergebnis in das Bitfeld auf der Zielseite ein. Die Operation Notand berechnet das logische Produkt zwischen dem invertierten Wert der Daten im Bitfeld auf der Zielseite und den Daten im Bitfeld auf der Quellenseite und trägt das Ergebnis in das Bitfeld auf der Zielseite ein. Die Operation Notor berechnet die logische Summe zwischen dem invertierten Wert der Daten im Bitfeld auf der Zielseite und den Daten im Bitfeld auf der Quellenseite und trägt das Ergebnis in das Bitfeld auf der Zielseite ein, und die Operation AndNot berechnet das logische Produkt aus den Daten im Bitfeld auf der Zielseite und dem invertierten Wert der Daten im Bitfeld auf der Quellenseite und trägt das Ergebnis in das Bitfeld auf der Zielseite ein. Die Operation OrNot berechnet die logische Summe aus den Daten im Bitfeld auf der Zielseite und dem invertierten Wert der Daten im Bitfeld auf der Quellenseite und trägt das Ergebnis in das Bitfeld auf der Zielseite ein, und die Operation Notandnot berechnet das logische Produkt zwischen den invertierten Werten der Daten in den Bitfeldern auf der Quellen- und der Zielseite und trägt das Ergebnis in das Bitfeld auf der Zielseite ein, und die Operation NotOrNot berechnet die logische Summe aus den invertierten Werten der Daten in den Bitfeldern auf der Quellen- und der Zielseite und trägt die Ergebnisse in das Bitfeld auf der Zielseite ein. Die Operation NotXor berechnet den Exklusiv-Oder-Wert zwischen dem invertierten Wert der Daten im Bitfeld auf der Zielseite und den Daten im Bitfeld auf der Quellenseite und trägt das Ergebnis in das Bitfeld auf der Zielseite ein.
  • Die vorstehend beschriebenen verschiedenen Operationen können z. B. durch die unteren vier Bits im Register R5 unterschieden werden.
  • Wenn der obenbeschriebene Interbitfeldoperations-Befehl verwendet wird, ist die Operationsart als einer der Operanden vorgegeben, so daß die Operationsart während der Ausführung des Programms dynamisch dadurch geändert werden kann, daß lediglich die Daten im Speicher geändert werden oder die vom Speicher geladenen Daten geändert werden. Jedoch ist es erforderlich, die Basisadresse und den Versatz, wie vorab vergeben, als Operanden und als die Operationsarten repräsentierenden Code in vorbestimmte Register (R&sub0; - R&sub5;) einzutragen.
  • Die Tabelle 3 zeigt ein Beispiel für ein Graphikanzeigeprogramm unter Verwendung des obenbeschriebenen Interbitfeldoperations-Befehls (mit "BVMAP" abgekürzt). Tabelle 3 LOOP MOVE SUB LINE, -1 LOOP
  • Der Inhalt der Verarbeitung des obenbeschriebenen Programms dient dazu, wiederholt den durch BVMAP angegebenen Interbitfeldoperations-Befehl dadurch zu wiederholen, daß der Inhalt der Register R0 bis R5 durch nachträgliche Inkrementierung für jede Zeile geändert wird. Z. B. ist MOVE (R10) +1, R0 ein Befehl, der den Inhalt des Register R10 aktualisiert und ihn im Register R0 einspeichert. Der Befehl SUB LINE, -1 ist ein Befehl, der von der Gesamtzeilenzahl den Wert 1 subtrahiert.
  • Daher wird beim obenbeschriebenen Programm dann, wenn die im Register R5 abgespeicherte Operationsart wiederholt ausgeführt wird, während sie jedesmal geändert wird, auf der Anzeigefläche das Ergebnis der Bitfeldverarbeitung mit verschiedenem Operationsinhalt für jede Zeile als Bild dargestellt.
  • Beim obenbeschriebenen Ausführungsbeispiel wird die Operationsart durch Ändern des Inhalts des Registers R5 für jede Zeile geändert. Jedoch ist die Erfindung nicht speziell auf dieses Ausführungsbeispiel begrenzt. Z. B. kann das Programm ausgeführt werden, ohne den Inhalt des Registers R5 zu aktualisieren, und zwar durch Einspeichern des Ergebnisses in das Register R5, das durch ein Programm erhalten wurde, das vor dem obenbeschriebenen Programm ausgeführt wurde. Auf diese Weise kann die Operationsart während der Ausführung eines Programms dynamisch geändert werden.
  • Fig. 7 zeigt ein Flußdiagramm für den Interbitfeldoperations-Befehl BVMAP. Das Bitfeld auf der Quellenseite wird unter Verwendung des Inhalts der Register R0, R1 und R5 in einem Schritt S1 abgerufen. Dann wird das Bitfeld auf der Zielseite unter Verwendung des Inhalts der Register R2, R3 und R4 in einem Schritt S2 abgerufen. In einem Schritt S3 wird die Operation unter Verwendung des Inhalts des Registers R5 ausgeführt. Die Endbedingung wird in einem Schritt S4 überprüft. D. h., daß dann, wenn die Endbedingung erfüllt ist, der Befehl beendet wird, aber andernfalls der Ablauf zum Schritt S1 zurückkehrt Die Bitzahl der Daten, die auf einmal abgerufen werden können, ist durch die Datenbuslänge des Mikroprozessors bestimmt. Daher ist es zum Abrufen aller Bitfelder und zum Vornehmen von Berechnungen auf Grundlage der Bitfelder manchmal erforderlich, die Schritte S1 bis S3 wiederholt und mehrfach auszuführen.
  • Beim vorstehend beschriebenen Ausführungsbeispiel ist der Befehl betreffend die Handhabung wechselseitiger Daten der zwei Bitfelder beispielhaft als Bitfeldbefehl beschrieben. Jedoch enthalten andere Bitfeldbefehle, wie sie für Graphikverarbeitung geeignet sind, beispielsweise einen Befehl zum wiederholten Abspeichern der Bitmuster für wahlfreie Register für das durch die Basisadresse, den Versatz und die Feldbreite spezifizierte Bitfeld. Wenn ein derartiger Befehl verwendet wird, kann auf einfache Weise eine Art Verschmierungsoperation ausgeführt werden, die einen wahlfreien Bereich oder Bereiche auf der Bildfläche mit wahlfreien Mustern (Grundfiguren, die ein Muster bilden) ausgeführt werden.
  • Fig. 3 zeigt ein Beispiel des Hardwareaufbaus eines Mikroprozessors, der gemäß dem Befehlssystem mit Bitfeldbefehl gemäß dem obenbeschriebenen Ausführungsbeispiel arbeitet.
  • Der Mikroprozessor dieses Ausführungsbeispiels ist mit einer Steuereinheit eines Mikroprogramm-Steuersystems versehen. Anders gesagt, enthält ein den Mikroprozessor bildender LSI- Chip 1 einen Mikro-ROM (Festwertspeicher) 2, der ein Mikroprogramm speichert. Der Zugriff auf diesen Mikro-ROM 2 erfolgt über eine Mikroadressengenerator-Schaltung 5, und Mikrobefehle, die das Mikroprogramm bilden, werden sequentiell ausgegeben.
  • Ein durch Decodieren des Codes des Mikrobefehls, wie er in ein Befehlsregister 3 abgerufen wurde, von einem Befehlsdecodierer 4 erhaltenes Signal wird an die Mikroadressengenerator-Schaltung 5 geliefert. Diese Mikroadressengenerator- Schaltung 5 erzeugt die entsprechende Mikroadresse auf Grundlage dieses Signals, und sie liefert es an den Mikro- ROM 2. Demgemäß wird der erste Befehl einer Reihe in einer Mikrobefehlsgruppe zum Ausführen des Mikrobefehls ausgelesen. Dieser Mikrobefehlscode erzeugt ein Steuersignal für eine Ausführungseinheit 6, die aus verschiedenen Registern, Datenpuffern und einer Arithmetik-Logik-Einheit besteht. Die beim obenbeschriebenen Ausführungsbeispiel verwendeten Universalregister R0 bis R15 sind in dieser Ausführungseinheit 6 enthalten.
  • Der Auslesevorgang des zweiten Befehls der Reihe in der Mikrobefehlsgruppe, wie dem Mikrobefehl entsprechend, wird als Code des nächsten Adreßfelds des Mikrobefehls ausgeführt, der unmittelbar vor seiner Lieferung an den Mikro-ROM 2 ausgelesen wurde, und zwar auf Grundlage der nächsten Adresse im Mikrobefehl unmittelbar davor und der Adresse von der Mikroadressengenerator-Schaltung 5. Auf diese Weise wird die Reihe von Mikrobefehlen ausgelesen, um das Steuersignal zu erzeugen, das dann die Ausführungseinheit 6 so steuert, daß sie den Mikrobefehl ausführt.
  • Obwohl keine spezielle Beschränkung besteht, verwendet dieses Ausführungsbeispiel ein Pufferspeichersystem. Im Mikroprozessor LSI ist ein Speicher CACHE 7 vorhanden, und Programmdaten mit hoher Zugriffshäufigkeit unter den Daten innerhalb eines externen Speichers 8 werden in den Speicher CACHE 7 eingeschrieben, um die Zugriffsgeschwindigkeit des Programms zu verbessern.
  • Übrigens behandelt die obenangegebene Ausführungsform beispielhaft die Anwendung der Erfindung auf einen für Graphikverarbeitung geeigneten Bitfeldbefehl, jedoch kann selbstverständlich eine Anweisung auf andere Berechnungsbefehle erfolgen.
  • Im obenangegebenen Ausführungsbeispiel ist die durch den Operanden spezifizierte Befehlsart auf eine logische Operation wie UND und ODER begrenzt, jedoch ist es hinsichtlich Befehlen zum Ausführen einer Arithmetikoperation in gleicher Weise möglich, denselben Operationscode zu verwenden und die Operationsart durch den Operanden zu spezifizieren.
  • Fig. 4 zeigt den internen Block der in Fig. 3 dargestellten Ausführungseinheit 6.
  • In der in Fig. 4 dargestellten Ausführungseinheit repräsentiert ein Schaltungssymbol CBS ein Register zum Zwischenspeichern von Erweiterungsdaten wie des Versatzwerts, der Feldbreite und dergleichen; DOR ist ein Datenausgaberegister zum Zwischenspeichern der in einen Speicher einzuspeichernden Daten; DIR ist ein Dateneingangsregister zum Zwischenspeichern von aus dem Speicher ausgelesenen Daten; und ALN ist eine Ausrichteinrichtung zum Ausrichten der eingegebenen und ausgegebenen Daten. Diese Ausrichteinrichtung ALN ist über eine Daten-E/A-Schnittstelle (in der Zeichnung nicht dargestellt) mit externen Datenbussen verbunden.
  • Ein Schaltungssymbol BSF repräsentiert ein Umlaufschieberegister, das wahlfrei 32 Bits unter 64-Bit-Daten, die gleichzeitig mit 32-Bit-Einheiten eingegeben werden, entnimmt.
  • Dieses Umlaufschieberegister BSF ist auf solche Weise aufgebaut, daß eine Konstante wie 0 direkt eingegeben werden kann. BCNT repräsentiert einen Umlaufschieberegister-Zähler zum Spezifizieren der Entnahmeposition für das Umlaufschieberegister BSF, und BSFO ist ein Register zum Zwischenspeichern des Ausgangssignals des Umlaufschieberegisters BSF. Ein Symbol FB repräsentiert einen Funktionsblock zum Maskieren und Ausgeben der oberen 27 Bits durch Eingeben der Daten, und FBO ist ein Register zum Zwischenspeichern des Ausgangssignals des Funktionsblocks FB.
  • Das Schaltungssymbol AU repräsentiert eine Adressenberechnungseinheit zum Berechnen der Effektivadresse. Diese Adressenberechnungseinheit AU ist auf solche Weise aufgebaut, daß eine Konstante wie 0 direkt eingegeben werden kann. Das Symbol AUO repräsentiert ein Register zum Zwischenspeichern des Ausgangssignals dieser Adressenberechnungseinheit AU, SFT ist ein Schieberegister zum Verschieben der Daten vor der Berechnung durch die Berechnungseinheit, AOT ist eine Latchstufe zum Zwischenspeichern des Werts des Register AUO, das das Berechnungsergebnis speichert, wenn dieser Wert an die später auftretenden Zwischenspeicherungsregister DTE0 - DTE3 übertragen wird, und AOR ist ein Adressenausgaberegister zum Zwischenspeichern des Adreßwerts des Registers AUO, wenn der Adreßwert nach außen ausgegeben wird. Dieses Register AOR ist über eine Adressen-E/A-Schnittstelle (nicht dargestellt) mit dem externen Adressenbus verbunden.
  • Andererseits repräsentiert das Schaltungssymbol ALU eine Arithmetik-Logik-Einheit zum Ausführen fundamentaler Arithmetikoperationen wie Addition, Subtraktion usw. sowie logischer Operationen, ALUO ist ein Register zum Zwischenspeichern des Berechnungsergebnisses von der Arithmetik-Logik- Einheit ALU, und DTE0 - DTE3 sind Registergruppen, die dazu dienen, Zwischenwerte zwischenzuspeichern, die von außen nicht eingesehen werden können (oder die für die Benutzer nicht offen sind). Symbole R&sub0;, R&sub1;, ..., R&sub1;&sub5; repräsentieren eine Universalregistergruppe, die für Benutzer offen ist. Die verschiedenen Register, Latchstufen, Berechnungseinrichtungen und dergleichen, wie oben beschrieben, sind über vier Arten von Bussen ECB, BA, BB und BC miteinander verbunden, und sie werden durch das von der aus einem Mikro-ROM bestehenden Steuereinheit gelieferte Steuersignal sequentiell betrieben, um den entsprechenden Mikrobefehl auszuführen.
  • Gemäß der Erfindung können die Arithmetik-Logik-Einheit ALU und dergleichen durch den Inhalt des Universalregisters wie des Registers R5 gesteuert werden.
  • Fig. 5 zeigt die Beziehung zwischen der in Fig. 4 dargestellten Arithmetik-Logik-Einheit ALU und dem Register R5 zum Steuern des ersteren. Obwohl keine spezielle Beschränkung besteht, wird der Inhalt des Universalregisters einmal in ein anderes Register IFR eingespeichert, das die Steuersignale I1 bis I5 ausgibt. Obwohl es in Fig. 4 nicht dargestellt ist, ist dieses Register INFR dieselbe Art von Register wie die Zwischenregister DTEO und dergleichen, und es ist innerhalb der Ausführungseinheit angeordnet. Das Steuersignal I1 ist ein Signal zum Auswählen von Daten auf dem Bus BB oder einer für Daten mit lauter Nullen (0). Das Steuersignal 12 ist ein Signal zum Steuern des Betriebs der Inverterschaltung INV und zum Vornehmen einer Auswahl, ob das Eingangssignal nach Inversion oder ohne Inversion ausgegeben wird. Das Steuersignal 13 wählt die Arithmetikfunktionen der Arithmetik-Logik-Einheit ALU aus. Diese Einheit ALU verfügt über Arithmetikfunktionen wie das logische Produkt (UND), die logische Summe (ODER) und Exklusiv-Oder (XOR), und jede dieser Operationen wird durch das Steuersignal 13 ausgewählt. Das Steuersignal 15 wählt aus, ob die durch das Register ALUO zwischengespeicherten Daten an den Bus BC geliefert werden oder ob sie an die Eingangsseite der Arithmetik- Logik-Einheit ALU zurückgeliefert werden. Das Steuersignal I4 wählt die an die Eingangsseite zurückgekoppelten Daten oder einen der Datenwerte mit lauter Nullen (0) aus. Der vom Steuersignal 11 ausgewählte Datenwert wird als einer der Eingangsdaten der Arithmetik-Logik-Einheit ALU über die Inverterschaltung INV verwendet, und der durch das Steuersignal 14 ausgewählte Datenwert wird als der andere Eingangsdatenwert der Arithmetik-Logik-Einheit ALU verwendet. Der Betrieb dieser Arithmetik-Logik-Einheit ist in zwei Stufen unterteilt. Z. B. ist für den Fall, daß die in der vorstehenden Tabelle 2 aufgelisteten Operationen ausgeführt werden, der Operationszustand in der ersten Stufe in Fig. 6A dargestellt, und der Operationszustand in der zweiten Stufe ist in Fig. 6B dargestellt. Tabelle 4 Auswahl durch I&sub1; KEINE INVERSION INVERSION Tabelle 5 Auswahl durch I&sub1; INVERSION KEINE INVERSION OR AND
  • Die Tabellen 4 und 5 veranschaulichen im einzelnen die in den Fig. 6A bzw. 6B veranschaulichten Betriebszustände. Wenn z. B. die in der Tabelle 2 dargestellte erste Berechnung 1 T dest ausgeführt wird, wird in Fig. 6A die in der ersten Zeile der Tabelle 4 beschriebene Steuerung bewirkt. Anders gesagt, wählt das Steuersignal I1 alle Werte zu Null (0) aus, wie als einer der Eingangsdatenwerte für die Arithmetik-Logik-Einheit ALU ohne Inversion verwendet. Der andere Eingangsdatenwert für die Arithmetik-Logik-Einheit ALU ist ein solcher mit lauter Nullen (0). Die Berechnungsfunktion dieser Arithmetik-Logik-Einheit ALU wird durch das Steuersignal 13 auf die logische Summenbildung (OR) eingestellt, und das Berechnungsergebnis sind lauter Nullen (0). Danach erfolgt in Fig. 6B die Steuerung in der ersten Zeile der Tabelle 5. Anders gesagt, wird durch das Steuersignal I1 ein Datenwert mit lauter Nullen (0) ausgewählt und durch die Inverterschaltung INV auf lauter Einsen (1) invertiert und als Eingangsdatenwert für die Arithmetik-Logik-Einheit verwendet. Der andere Eingangsdatenwert für die Arithmetik- Logik-Einheit ALU ist das Ergebnis aus der obenbeschriebenen Berechnung (lauter Nullen). Da die Berechnungsfunktion der Arithmetik-Logik-Einheit ALU durch das Steuersignal 13 auf die logische Summenbildung (OR) eingestellt ist, ist das Berechnungsergebnis ein Wert mit lauter Einsen (1). Wenn dieser Datenwert in das Bitfeld auf der Zielseite eingespeichert wird, ist die Ausführung der Berechnung 1 T dest abgeschlossen.
  • Auf ähnliche Weise wird die zehnte Operation dest.AND.src T dest auf die folgende Weise ausgeführt. In Fig. 6A wird die Steuerung der zehnten Zeile der Tabelle 4 ausgeführt. Anders gesagt, wählt das Steuersignal I1 den Datenwert src auf dem Bus BB (in diesem Fall den Wert des Bitfelds auf der Quellenseite) aus, und dieser Datenwert wird als einer der Eingangsdatenwerte ohne Inversion für die Arithmetik-Logik-Einheit ALU verwendet. Der andere Eingangsdatenwert für die Arithmetik-Logik-Einheit ALU ist ein Wert mit lauter Nullen (0). Da die Berechnungsfunktion dieser Arithmetik-Logik-Einheit ALU durch das Steuersignal I3 z. B. auf die logische Summenbildung (OR) eingestellt ist, ist das Berechnungsergebnis der Wert des Bitfelds auf der Quellenseite (src). Danach wird in Fig. 6 die Steuerung in der zehnten Zeile der Tabelle 5 ausgeführt. Anders gesagt, wählt das Steuersignal 11 den Datenwert dest auf dem Bus BB (in diesem Fall den Wert des Bitfelds auf der Zielseite) aus, und dieser Datenwert wird durch die Inverterschaltung INV (auf dest) invertiert und als einer der Eingangsdatenwerte der Arithmetik- Logik-Einheit ALU verwendet. Das obenbeschriebene Berechnungsergebnis (src) wird als anderer Eingangsdatenwert verwendet. Da die Berechnungsfunktion der Arithmetik-Logik-Einheit ALU durch das Steuersignal I3 auf die logische Produktbildung (AND) eingestellt ist, ist das Ergebnis der Berechnung dest AND src. Wenn dieser Datenwert im Bitfeld auf der Zielseite eingespeichert wird, ist die Ausführung von dest AND src vollständig.
  • Bei diesem Ausführungsbeispiel werden die Arithmetik-Logik- Einheit ALU und dergleichen direkt durch den Inhalt des Registers R5 gesteuert. Dies steht im Gegensatz zu einem System, bei dem die Arithmetik-Logik-Einheit ALU usw. indirekt durch den Inhalt des Universalregisters R5 gesteuert werden können. Z. B. wird der Inhalt des Registers RS an den Befehlsdecodierer 4 oder dergleichen geliefert, um vom Mikro- ROM 2 die Steuersignale I1 bis I5 zu erhalten. Beim obenbeschriebenen Ausführungsbeispiel ist das Steuersignal I1 das Auswahlsignal zum Auswählen der Daten auf dem Bus BB oder nicht, jedoch besteht keine spezielle Beschränkung hierauf. Z. B. kann durch dieses Steuersignal I1 eine Lieferquelle zum Liefern der Daten an den Bus BB und dergleichen gesteuert werden. Übrigens wird der Wert src des Bitfelds auf der Quellenseite oder der Wert dest des Bitfelds auf der Zielseite durch das Ausgangszwischenregister BSFO des Umlaufschieberegister BSFO an den Bus BB geliefert.
  • Fig. 8 zeigt detaillierter die Ausführungsfolge des Schritts S1 im in Fig. 7 dargestellten Flußdiagramm. Dieser Schritt S1 besteht aus Schritten S01 bis S12.
  • Übrigens sind unter den in Fig. 4 dargestellten Universalregistern R&sub0; bis R&sub1;&sub5; diejenigen mit den Symbolen Ra, Rb, Rx und Ry Register zum Einspeichern der Quellenbasisadresse, der Zieladresse, der Versatzwertadresse bzw. der Bitfeldbreite. Es ist möglich, die jeweilige Nummer der Universalregister R&sub0; bis R&sub1;&sub5; wahlfrei zu spezifizieren und sie als diese Register Ra, Rb, Rx und Ry zu verwenden.
  • Im ersten Schritt S01 wird der Wert des Registers Rx, d. h. die die Speicherposition des Versatzwerts repräsentierende Adresse, über den Bus BA oder BB in die Adressenberechnungseinheit AU eingegeben, und durch die Konstanteneingabefunktion wird auch 0 in die Einheit AU eingegeben, und das Additionsergebnis wird in das Register AUO eingespeichert.
  • Im zweiten Schritt S02 wird der im ersten Schritt S01 im Register AUO eingespeicherte Adressenwert (Versatzwertadresse) an das Register AOR übertragen, und gleichzeitig wird an die E/A-Schnittstelle ein Anforderungsbefehl gegeben, um die Daten auf dem externen Datenbus abzurufen. Demgemäß wird der Adressenwert im Register AOR über die E/A-Schnittstelle an den externen Adressenbus ausgegeben, und es erfolgt ein Zugriff auf den externen Speicher in solcher Weise, daß der Inhalt des Speichers an den Datenbus ausgegeben wird. Dann wird der aus dem Speicher ausgelesene Datenwert, d. h. der Versatzwert Off, von der E/A-Schnittstelle aufgenommen.
  • Im Schritt S03 wird auf Grundlage des von der E/A-Schnittstelle ausgegebenen Signals klargestellt, ob der abgerufene Datenwert bestimmt ist oder nicht. So wird der Datenwert in das Dateneingangsregister DIR aufgenommen. Gleichzeitig wird im Schritt S03 der Wert im Register Ra, d. h. die Quellenbasisadresse BAD, über den Bus BA oder BB in die Adressenberechnungseinheit AU eingegeben, und über die Konstanteneingabefunktion wird auch 0 in die Einheit AU eingegeben, und das Additionsergebnis wird in das Register AUO eingespeichert.
  • Danach wird im vierten Schritt S04 der Wert im Register AUO, wie oben beschrieben (Quellenbasisadresse), an das Register AOR und über den Bus BC ferner an das Zwischenregister DTEO übertragen.
  • Wenn das Berechnungsergebnis aus der Adressenberechnungseinheit vom Register AUO oder AOR in Verbindung mit anderen Verarbeitungen übertragen wird, wird es auch automatisch an das Register AOT übertragen. Hierbei hat die Übertragung des Ergebnisses an das Register AOT keinerlei spezielle Bedeutung. Parallel zum obenbeschriebenen Vorgang wird über die Konstanteneingabefunktion 0 in die Adressenberechnungseinheit AU eingegeben, und der Inhalt des Dateneingangsregisters DIR (der Versatzwert) wird nach einer Codeexpansion über den Bus BB eingegeben, und das Berechnungsergebnis wird in das Register AUO eingespeichert. Ferner wird der Speicherwert, d. h. die Bitfeldbreite WB, vom Register Ry über den Bus BA an den Funktionsblock FB geliefert, und der Funktionsblock FB maskiert die oberen 27 Bits, die nicht die unteren Bits sind, wobei das Ergebnis in das Register FBO eingespeichert wird. Wenn der Vorgang mathematisch ausgedrückt wird, entspricht die Entnahme nur der unteren fünf Bits der Bitfeldbreite der Bestimmung des Rests bei Division der Bitfeldbreite durch "32". Nachfolgend werden die unteren fünf Bits der Bitfeldbreite als "Endzahl WD*" bezeichnet. Hierbei wird die Endzahl WD* bestimmt, um Grenzüberquerungen im später erscheinenden Schritt S09 zu beurteilen.
  • Danach wird im Schritt S06 der Wert im Register AUO, d. h. der Versatzwert Off, über den Bus BC an das Zwischenregister DTE1 übertragen. Gleichzeitig werden der Wert im Register AUO (der Versatzwert) und der Wert im Zwischenregister DTE0, d. h. der durch Verschieben der Quellenbasisadresse BAD um drei Bits zur höheren Seite durch das Schieberegister SFT erhaltene Wert, an die Adressenberechnungseinheit AU geliefert, und das Additionsergebnis wird in das Register AUO eingespeichert. Der Grund, weswegen die Quellenbasisadresse BAD um drei Bits zur höherrangigen Seite verschoben wird, ist der, die Basisadresse BAD zu erweitern, die auf solche Weise beschaffen ist, daß der Speicherraum unterteilt und mit Byteeinheit spezifiziert werden kann, wodurch durch die Erweiterung die Position innerhalb des Speicherraums mit Biteinheit spezifiziert werden kann. Daher ist das, was zu diesem Zeitpunkt in das Register AUO eingespeichert ist, der durch die Bitzahl ausgedrückte Abstand gegen die Adresse 0 des zu bestimmenden Bitfelds. Dieser Abstand wird als "L" bezeichnet.
  • Im Schritt S06 wird der obenbeschriebene Wert des Registers AUO, d. h. die Summe aus dem Versatzwert Off und dem Wert, der durch Verschieben der Basisadresse zur höherrangigen Seite um drei Bits erhalten wurde, an das Register AOT übertragen. Andererseits wird die Quellenbasisadresse BAD vom Zwischenregister DETO über den Bus BA in die Adressenberechnungseinheit AU eingegeben, und der Wert, der durch Verschieben des vom Zwischenregister DET1 über den Bus BB übertragenen Versatzwerts Off zur niederrangigen Seite um drei Bits durch das Schieberegister SET erhalten wurde, wird eingegeben und zur Quellenbasisadresse BAD addiert, und der durch Maskieren der unteren zwei Bits des Additionsergebnisses erhaltene Wert wird in das Register AUO eingespeichert. Gleichzeitig wird der Wert WD* im Register FBO, d. h. die unteren fünf Bits der Bitfeldbreite, über den Bus BC an das Zwischenregister DTE3 übertragen.
  • Im obenangegebenen Fall berechnet die Adressenberechnungseinheit AU den Additionswert aus der Basisadresse und dem Wert, der durch Verschieben des Versatzwertes um drei Bits zur niederrangigen Seite erhalten wurde, um als Objekt die Ausführungsadresse der Byteeinheit zu bestimmen, die am nächsten beim Start des Bitfelds liegt. Der Grund, weswegen die unteren zwei Bits des Additionsergebnisses in der Adressenberechnungseinheit AU maskiert werden, ist der, daß als Objekt die Adresse des Bitfelds ingesamt oder als 32-Bit- Wort erhalten wird, das sie im führenden Abschnitt enthält.
  • Im siebten Schritt S07 wird die auf die obenbeschriebene Weise erhaltene Wortadresse im Register AUO an das Adressenausgangsregister AOR übertragen und über die E/A-Schnittstelle nach außen ausgegeben. Gleichzeitig wird an die E/A- Schnittstelle ein Befehl geliefert, der den Abruf von Daten auf dem externen Datenbus anfordert. Daher wird mit dem Abruf des Worts begonnen, das den vorderen Abschnitt des zu bestimmenden Bitfelds enthält. Parallel dazu wird die im Register AUO abgespeicherte Adresse über den Bus BC an das Zwischenregister DTE2 übertragen. Der die Bitposition ab der Adresse 0 des Bitfelds repräsentierende Wert, wie im Schritt S05 erhalten, wird über den Bus BA vom Register AOT an den Funktionsblock FB übertragen, und das Ergebnis wird in das Register FBO eingespeichert. Demgemäß wird im Register FBO die führende Position Off* des Bitfelds (wobei es sich um einen der Versatzwerte handelt, der nachfolgend als "Sekundärversatz" bezeichnet wird) von der Wortadresse, die den vorderen Abschnitt des Bitfelds enthält (wie im Schritt S06 erhalten, in Übereinstimmung mit der Basisadresse, wenn der Versatz unter 31 liegt), abgespeichert.
  • Anschließend wird im Schritt S08 der obenbeschriebene Wert Off* (Sekundärversatz) im Register FBO über den Bus BC an das Zwischenregister DTE2 übertragen, und gleichzeitig wird der Wert WD* (die unteren fünf Bits der Bitfeldbreite) im Zwischenregister DTE3 über die Busse BA und BB an die Arithmetik-Logik-Einheit ALU geliefert und durch diese addiert, und das Additionsergebnis wird in das Register ALUO eingespeichert. Dann wird die Konstante "33" seitens der Steuereinheit in das Register DSB eingetragen. Die Zahl "33" ist die Summe aus der Bitzahl "32" eines Worts und der Zahl "1". Auch wird auf Grundlage des Signals von der E/A-Schnittstelle dargestellt, ob die abgerufenen Daten, d. h. der Inhalt des zu bestimmenden Bitfelds, bestimmt sind oder nicht. Wenn die Daten bestimmt sind, werden die Daten in das Dateneingangsregister DIR aufgenommen.
  • Im nächsten Schritt S09 werden die von der E/A-Schnittstelle abgerufenen Daten vom Dateneingangsregister DIR über den Bus BC an das Zwischenregister DTE2 übertragen. Parallel zu diesem Vorgang subtrahiert die Arithmetik-Logik-Einheit ALU den Wert "33" im Register CBS vom Wert im Register ALUO (Off* + WD*), und das Ergebnis wird in das Register ALUO eingespeichert. Hierbei bedeutet es, wenn das Subtraktionsergebnis positiv ist, daß sich das Bitfeld über zwei Wörter erstreckt, und wenn das Ergebnis negativ ist, bedeutet dies, daß das Bitfeld innerhalb eines Worts liegt.
  • Im Schritt S09 werden die Verschieberichtung und das Verschiebeausmaß der im Umlaufschieberegister BSF im nächsten Schritt auszuführenden Bitverschiebeverarbeitung spezifiziert. Genauer gesagt, wird an den Umlaufschieberegister- Zähler BCNT eine Anweisung nach rechts vergeben, und der Wert Off* im Register FBO wird über den Bus BA als Verschiebeausmaß an den Umlaufschieberegister-Zähler BCNT geliefert.
  • Im Schritt S10 wird der Wert im Zwischenregister DTE2, d. h. der Inhalt des aus dem Speicher abgerufenen Bitfelds, über den Bus BB an das Umlaufschieberegister BSF geliefert, und gleichzeitig wird durch die Konstanteneingabefunktion der Wert 0 eingegeben, so daß der Umlaufschieberegister-Zähler BCNT einen Verschiebevorgang entsprechend dem Befehl ausführt, und das Ergebnis wird in das Register BSFO eingespeichert. Demgemäß wird der Inhalt des abgerufenen Bitfelds in das 32-Bit-Register BSFO eingespeichert, während eine Pakkung nach links erfolgt, oder dies erfolgt im gepackten Zustand von der Seite der oberen Bits im Register her fortlaufend, wie in Fig. 8 dargestellt. Parallel zu diesem Vorgang erfolgt in diesem Schritt Sb ein Befehl für die Verschieberichtung und das Verschiebeausmaß, wie im nächsten Schritt im Umlaufschieberegister BSF auszuführen. Anders gesagt, wird der Befehl zum Verschieben nach rechts an den Umlaufschieberegister-Zähler BCNT gegeben, und die Bitfeldbreite WD* im Zwischenregister DTE3 wird als Verschiebeausmaß über den Bus BA geliefert.
  • Im Schritt S11 werden der Wert vom Register BSFO und "0" in das Umlaufschieberegister BSF eingegeben, der Verschiebevorgang wird mit der Richtung und dem Verschiebeausmaß gemäß Spezifizierung ausgeführt, und das Ergebnis wird in das Register BSFO eingespeichert. Wenn der Inhalt des im Register BSFO eingespeicherten Bitfelds um ein Stück nach rechts verschoben wird, das der Feldbreite WD* entspricht, wird der Inhalt des abgerufenen Bitfelds an das rechte Ende des 32- Bit-Registers BSFO gepackt, oder es befindet sich im gewünschten gepackten Zustand, aufeinanderfolgend von der niederrangigen Seite des Registers.
  • Der so erhaltene Inhalt des Bitfelds wird im nächsten Schritt S12 vom Register BSFO über den Bus BC in eines der Universalregister Rb eingespeichert.
  • Ferner kehrt, wenn im Schritt S09 erkannt wird, daß das Ergebnis der Subtraktion aus der Summe von Off* und WD* sowie der Konstanten "33" positiv ist und das Bitfeld die Grenze überquert, der Ablauf vom Schritt S12 erneut zum Schritt S08 zurück, und die obenbeschriebenen Vorgänge werden wiederholt, so daß der gesamte Inhalt des ich über mehrere Wörter erstreckenden Bitfelds ausgelesen wird.
  • Fig. 10 zeigt die Beziehung zwischen dem Versatzwert Off und der Bitfeldbreite Wd sowie dem Sekundärversatz Off* und der Endnummer WD* im obenbeschriebenen Mikro-Flußablauf.
  • Übrigens wird bei der Ausführungsfolge des Bitfeldbefehls ohne Begrenzung gemäß dem in Fig. 8 dargestellten Mikro- Flußablauf eine Grenzenüberquerung abhängig davon beurteilt, ob das Ergebnis bei der Subtraktion der Zahl "33" von der Summe aus dem Sekundärversatz Off* und der Endnummer WD* des Bitfelds positiv oder negativ ist. Eigentlich sollte die Beurteilung einer Grenzüberquerung ausgehend vom Primärversatz Off und der Bitfeldbreite WD erfolgen, und es kann eine Beschreibung für einen derartigen Mikro-Flußablauf erfolgen. Jedoch ist es aus Fig. 7 auch offensichtlich, daß dasselbe Ergebnis erzielt werden kann, wenn die Beurteilung einer Grenzüberquerung abhängig davon erfolgt, ob die Summe aus dem Sekundärversatz Off* und der Endnummer WD* eines Bitfelds die Zahl "32" überschreitet oder nicht, wie beim obenbeschriebenen Ausführungsbeispiel, entsprechend wie dann, wenn eine Beurteilung dadurch erfolgt, daß die Bitfeldbreite WD zum Primärversatz addiert wird und dann die Summe durch 32 Bits ab der Basisadresse BAD geteilt wird.
  • Obwohl die Erfindung demgemäß unter Bezugnahme auf das bevorzugte Ausführungsbeispiel derselben auf bestimmte Weise beschrieben wurde, ist die Erfindung hierauf nicht speziell begrenzt, sondern sie kann selbstverständlich auf verschiedene Arten geändert oder modifiziert werden. Z. B. sind beim obenangegebenen Ausführungsbeispiel die Basisadresse, der Versatz und die Feldbreite des Bitfelds und die Operationsart durch die Operanden gegeben, jedoch können sie anstelle durch die Operanden durch eine Effektivadreßeinheit gegeben sein.
  • Der erfindungsgemäße Operationsbefehl, der die Art von Operationen durch einen Operanden spezifiziert, kann entweder anstelle herkömmlicher, festgelegter Operationen oder in Kombination mit den letzteren vorhanden sein.
  • Obwohl die vorstehende Beschreibung hauptsächlich das Anwenden der Erfindung auf ein Mikroprozessor-Befehlssystem behandelt, das den Hintergrund der Erfindung bildet und deren Anwendungsbereich ist, ist die Erfindung nicht speziell hierauf beschränkt, sondern sie kann allgemein auf Befehlssysteme in Datenverarbeitungssystemen wie Computer und Minicomputer mit einem Programmsteuerungssystem angewandt werden.
  • Der durch das typische Beispiel der Erfindung hervorgebrachte Effekt ist der folgende.
  • D. h., daß die Erfindung einem Programm Flexibilität verleihen kann und z. B. ein Programm für Graphikverarbeitung leicht entwickelt werden kann.

Claims (7)

1. Mikroprozessor mit
einer Befehlspeichereinrichtung (3, 7, 8) zum Speichern von Befehlen eines vorbestimmten, auszuführenden Programms in sequentieller Reihenfolge,
einer mit der Befehlspeichereinrichtung verbundenen Steuereinrichtung (2) zum Steuern des Mikroprozessors in Übereinstimmung mit den gespeicherten Befehlen, und einer mit der Steuereinrichtung verbundenen Befehlsausführeinrichtung (6) zum Ausführen von Operationen in Übereinstimmung mit den gespeicherten Befehlen, wobei die Befehlsausführeinrichtung eine Informationshalteeinrichtung (R5) und eine Arithmetik-Logik-Einheit (ALU) aufweist,
dadurch gekennzeichnet, daß
die Befehlsausführeinrichtung (6) mit einer Datenspeichereinrichtung verbunden ist, um Daten, die eine Operationsart, die eine auszuführende ALU-Operation enthält, kennzeichnen, in die Informationshalteeinrichtung (R5) in Reaktion auf einen ersten Befehl zu laden, wobei die Daten in der Datenspeichereinrichtung veränderbar gespeichert sind, und
daß die Arithmetik-Logik-Einheit (ALU) mit der Informationshalteeinrichtung verbunden ist, um die enthaltene ALU- Operation, die ausschließlich durch die Daten, die in der Informationshalteeinrichtung (R5) gespeichert sind, gekennzeichnet ist, in Reaktion auf einen zweiten Befehl direkt, ohne Dekodieren, auszuführen.
2. Mikroprozessor gemäß Anspruch 1, wobei die Operationsart eine Additionsoperation, eine Subtraktionsoperation oder eine logische Operation ist.
3. Mikroprozessor gemäß einem der Ansprüche 1 oder 2, wobei die Informationshalteeinrichtung (R5) ein allgemeines Register ist.
4. Mikroprozessor gemäß einen der Ansprüche 1 bis 3, der weiter einen Befehlsdecoder (4) zum Dekodieren der von der Befehlspeichereinrichtung (3, 7, 8) angelegten Befehlscode aufweist.
5. Mikroprozessor gemäß Anspruch 4, wobei eine Adressenerzeugungseinrichtung (5) zwischen den Befehlsdecoder (4) und die Steuereinrichtung (2) gekoppelt ist, um den dekodierten Befehlen entsprechende Adressen zu erzeugen.
6. Mikroprozessor gemäß einem der Ansprüche 1 bis 5, wobei die Befehlspeichereinrichtung (3, 7, 8) weiter wenigstens einen Cache-Speicher (7) oder ein Befehlsregister (3) aufweist.
7. Verfahren zum Steuern eines Vorgangs, um eine in einem Mikroprozessor auszuführende Operationsart anzuzeigen, wobei der Mikroprozessor
eine Befehlspeichereinrichtung (3, 7, 8) zum Speichern von Befehlen eines vorbestimmten, auszuführenden Programm in sequentieller Reihenfolge,
eine mit der Befehlspeichereinrichtung verbundene Steuereinrichtung (2) zum Steuern des Mikroprozessors in Übereinstimmung mit den gespeicherten Befehlen, und
eine mit der Steuereinrichtung verbundene Befehlsausführeinrichtung (6) zum Ausführen von Operationen in Übereinstimmung mit den gespeicherten Befehlen, wobei die Befehlsausführeinrichtung eine Informationshalteeinrichtung (R5) und eine Arithmetik-Logik-Einheit (ALU) aufweist, enthält,
gekennzeichnet durch die Schritte:
Laden von Daten, die eine Operationsart, die eine auszuführende ALU-Operation enthält, kennzeichnen, aus einer Datenspeichereinrichtung in die Informationshalteeinrichtung (R5) in Reaktion auf einen ersten Befehl, wobei die Daten in der Datenspeichereinrichtung veränderbar gespeichert sind, und
Veranlassen der Arithmetik-Logik-Einheit (ALU) zum Ausführen der enthaltenen ALU-Operation, die ausschließlich durch die in der Informationshalteeinrichtung (R5) gespeicherten Daten gekennzeichnet ist, direkt, ohne Dekodieren, in Reaktion auf einen zweiten Befehl.
DE3751758T 1986-08-27 1987-08-27 Mikroprozessor Expired - Fee Related DE3751758T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61198871A JP2565495B2 (ja) 1986-08-27 1986-08-27 デ−タ処理システム

Publications (2)

Publication Number Publication Date
DE3751758D1 DE3751758D1 (de) 1996-05-02
DE3751758T2 true DE3751758T2 (de) 1996-11-07

Family

ID=16398308

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3751758T Expired - Fee Related DE3751758T2 (de) 1986-08-27 1987-08-27 Mikroprozessor

Country Status (5)

Country Link
US (1) US5398319A (de)
EP (1) EP0257650B1 (de)
JP (1) JP2565495B2 (de)
KR (1) KR950012089B1 (de)
DE (1) DE3751758T2 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2932963B2 (ja) * 1994-01-21 1999-08-09 モトローラ・インコーポレイテッド 効率的なビット移動能力を有するデータ・プロセッサとその方法
JPH08305638A (ja) * 1995-05-01 1996-11-22 Nec Corp Romデータ検査方法
US5764994A (en) * 1996-09-16 1998-06-09 International Business Machines Corporation Method and system for compressing compiled microcode to be executed within a data processing system
US6038659A (en) * 1997-11-12 2000-03-14 International Business Machines Corporation Method for using read-only memory to generate controls for microprocessor
US9785565B2 (en) * 2014-06-30 2017-10-10 Microunity Systems Engineering, Inc. System and methods for expandably wide processor instructions
US11157281B2 (en) * 2018-05-24 2021-10-26 International Business Machines Corporation Prefetching data based on register-activity patterns

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3411147A (en) * 1966-03-24 1968-11-12 Burroughs Corp Apparatus for executing halt instructions in a multi-program processor
US3982229A (en) * 1975-01-08 1976-09-21 Bell Telephone Laboratories, Incorporated Combinational logic arrangement
JPS5842891B2 (ja) * 1975-10-15 1983-09-22 株式会社東芝 メイレイセイギヨホウシキ
US4194241A (en) * 1977-07-08 1980-03-18 Xerox Corporation Bit manipulation circuitry in a microprocessor
US4298933A (en) * 1978-07-08 1981-11-03 Tokyo Shibaura Denki Kabushiki Kaisha Data-processing device including means to suppress the execution of unnecessary instructions
US4250545A (en) * 1978-12-29 1981-02-10 Bell Telephone Laboratories, Incorporated Data processing apparatus providing autoloading of memory pointer registers
US4293907A (en) * 1978-12-29 1981-10-06 Bell Telephone Laboratories, Incorporated Data processing apparatus having op-code extension register
JPS56149646A (en) * 1980-04-21 1981-11-19 Toshiba Corp Operation controller
US4525776A (en) * 1980-06-02 1985-06-25 Bell Telephone Laboratories, Incorporated Arithmetic logic unit arranged for manipulating bits
US4373180A (en) * 1980-07-09 1983-02-08 Sperry Corporation Microprogrammed control system capable of pipelining even when executing a conditional branch instruction
US4441153A (en) * 1981-04-03 1984-04-03 International Business Machines Corp. Instruction register content modification using plural input gates and a data flow register
JPS60245062A (ja) * 1984-05-18 1985-12-04 Matsushita Electric Ind Co Ltd デ−タ転送装置
JPS6151242A (ja) * 1984-08-20 1986-03-13 Fujitsu Ltd 命令デコ−ド回路
JPH0789319B2 (ja) * 1985-04-22 1995-09-27 株式会社日立製作所 デ−タ処理装置における先行制御装置
US4763253A (en) * 1986-09-26 1988-08-09 Motorola, Inc. Microcomputer with change of flow

Also Published As

Publication number Publication date
JPS6355635A (ja) 1988-03-10
JP2565495B2 (ja) 1996-12-18
EP0257650A2 (de) 1988-03-02
US5398319A (en) 1995-03-14
DE3751758D1 (de) 1996-05-02
KR880003243A (ko) 1988-05-14
EP0257650A3 (de) 1991-04-10
KR950012089B1 (ko) 1995-10-13
EP0257650B1 (de) 1996-03-27

Similar Documents

Publication Publication Date Title
DE2714805C2 (de)
DE3210816C2 (de)
DE3485929T2 (de) Bedingungsregisterarchitektur fuer eine maschine mit primitivem befehlssatz.
DE69233361T2 (de) Ein-Chip-Mikrocomputer
DE60018078T2 (de) Einstellung von bedingungswerten in einem rechner
DE2903349C2 (de) Prozessor und Verfahren zur Datenverarbeitung
DE2230102A1 (de) Rechenwerk fuer variable wortlaengen
DE19581873C2 (de) Prozessor zum Ausführen von Schiebeoperationen an gepackten Daten
DE3688824T2 (de) Datenverarbeitungssystem.
DE3851746T2 (de) Sprungvorhersage.
DE68927029T2 (de) Pipelineprozessor
DE3882487T2 (de) Vektorprozessor zur schnellen verarbeitung von rekursiven gleichungen.
DE1237363B (de) Arithmetisch-Logische-Einheit
DE68925397T2 (de) Pipelineprozessor
DE1302494B (de)
DE2910839A1 (de) Einrichtung zur ausfuehrung einer speziellen verzweigungsinstruktion
DE3689389T2 (de) Datenverarbeitungsprozessor.
DE3855524T2 (de) Arithmetik-Parallelverarbeitungseinheit und zugehöriger Kompilator
DE3900246C2 (de)
DE3751758T2 (de) Mikroprozessor
DE69030295T2 (de) Speicherverwaltung für hierarchische graphische Strukturen
DE2702722C2 (de) Einrichtung zur Verarbeitung nicht direkt ausführbarer Instruktionen
DE3314035C2 (de)
DE69629646T2 (de) Verfahren zur durchführung einer "rotate through carry" operatiion
DE3932695A1 (de) Datenverarbeitungssystem vom mehrfach virtuellen adressraum-typ

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee