[go: up one dir, main page]

DE69428303T2 - Verfahren und Vorrichtung zum Datenarbeiten mit mehreren Statusbitgruppen - Google Patents

Verfahren und Vorrichtung zum Datenarbeiten mit mehreren Statusbitgruppen

Info

Publication number
DE69428303T2
DE69428303T2 DE69428303T DE69428303T DE69428303T2 DE 69428303 T2 DE69428303 T2 DE 69428303T2 DE 69428303 T DE69428303 T DE 69428303T DE 69428303 T DE69428303 T DE 69428303T DE 69428303 T2 DE69428303 T2 DE 69428303T2
Authority
DE
Germany
Prior art keywords
flag
data
branch
calculator
instruction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69428303T
Other languages
English (en)
Other versions
DE69428303D1 (de
Inventor
Hiroshi Kamiyama
Shinya Miyaji
Masato Suzuki
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.)
Panasonic Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of DE69428303D1 publication Critical patent/DE69428303D1/de
Application granted granted Critical
Publication of DE69428303T2 publication Critical patent/DE69428303T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30058Conditional branch instructions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30094Condition code generation, e.g. Carry, Zero flag

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Description

    HINTERGRUND DER ERFINDUNG, (1) Erfindungsfeld
  • Die vorliegende Erfindung betrifft eine Vorrichtung und ein Verfahren zum Verarbeiten von Daten in Übereinstimmung mit Programmen und insbesondere eine Vorrichtung und ein Verfahren mit einer Vielzahl von Flag-Gruppen, die in Übereinstimmung mit den Berechnungsergebnissen einer Vielzahl von Daten mit unterschiedlichen Breiten zu ändern sind.
  • (2) Beschreibung des Standes der Technik
  • Vor kurzem wurde Datenverarbeitungsvorrichtungen wie Mikrocomputer mit 16-Bit- oder 32- Bit-MPUs (Mikroprozessoreinheiten) zusammen mit einer verbesserten Datenverarbeitungsleistung und der höheren Funktionsanforderung realisiert. Diese Datenverarbeitungsvorrichtungen können Daten mit einer Vielzahl von unterschiedlichen Breiten wie etwa 16 Bit und 32 Bit berechnen, wobei einige der Vorrichtungen zwei oder mehr Flag-Gruppen je nach dem Zweck der Berechnungen umfassen.
  • Fig. 1 ist ein Blockdiagramm, das den Aufbau einer ersten herkömmlichen Datenverarbeitungsvorrichtung mit zwei Flag-Gruppen zeigt, die in der offengelegten japanischen Patentanmeldung Nr. 54-117646 angegeben ist. Die Vorrichtung umfasst eine Befehlsdecodiereinheit 41 zum Decodieren von Befehlen, einen Berechner 42 zum Berechnen von 16-Bit-Daten, eine erste Flag-Gruppe 43 für eine bedingte Zweigentscheidung, eine zweite Flag-Gruppe 44 für arithmetische Operationen und eine Zweigentscheidungseinheit 45, um zu entscheiden, ob eine Verzweigung genommen werden soll oder nicht.
  • Wenn ein durch die Befehlsdecodiereinheit 41 decodierter Befehl ein Arithmetikoperationsbefehl ist, führt der Berechner 42 eine arithmetische Operation durch. Die Flags in der ersten Flag-Gruppe und in der zweiten Flag-Gruppe werden in Übereinstimmung mit den Ergebnissen der Operation geändert.
  • Wenn der nächste durch die Befehlsdecodiereinheit 41 decodierte Befehl wiederum ein Arithmetikoperationsbefehl ist, führt der Berechner 42 eine weitere arithmetische Operation mit Bezug auf die zweite Flag-Gruppe 44 durch. Die erste und die zweite Flag-Gruppe 43 und 44 werden in Übereinstimmung mit den Ergebnissen der arithmetischen Operation geändert.
  • Wenn andererseits der nächste Befehl ein bedingter Zweigbefehl ist, entscheidet die Zweigentscheidungseinheit 45, ob ein Zweig aus der ersten Flag-Gruppe 43 für eine bedingte Verzweigung genommen wird oder nicht.
  • Gemäß der ersten herkömmlichen Datenverarbeitungsvorrichtung sind diese Flag-Gruppen 43 und 44 jedoch beide für 16-Bit-Daten vorgesehen. Deshalb müssen Daten mit weniger Bits erweitert werden, um an die Datenbreite des Berechners 42 angepasst zu werden.
  • Fig. 2A und 2B zeigen als Beispiel der Datenerweiterung, wie 8-Bit-Daten in dem 16-Bit- Berechner 42 verarbeitet werden.
  • Wenn zwei 8-Bit-Daten 88H und F8H addiert werden (H steht für Hexadezimal), werden sie zu 16-Bit-Daten gewandelt, indem Nullen oder Einsen in höheren Bits eingefügt werden. Wenn eine Verzweigung auf 8-Bit-Daten ohne Vorzeichen wie in Fig. 2A gezeigt durchgeführt wird, werden die höheren 8 Bits mit Nullen aufgefüllt. Wen die Daten als 8-Bit- Daten mit Vorzeichen betrachtet werden, wird wie in Fig. 2B gezeigt der Wert 1 im 8-ten Bit zu den höheren 8 Bits erweitert. Deshalb ist ein zusätzlicher Prozess zum Erweitern von Daten unvermeidbar, was zu einer Erhöhung der Verarbeitungslast führt.
  • Fig. 3 ist ein Blockdiagramm, das den Aufbau einer zweiten herkömmlichen Datenverarbeitungsvorrichtung mit zwei Flag-Gruppen zeigt, die in Shokodo "16-Bit-Mikroprozessor 8086-Familie" vom März 1982 angegeben ist.
  • Die Vorrichtung umfasst eine Befehlsdecodiereinheit 61 zum Decodieren von Befehlen, einen 16-Bit-Berechner 62 zum Berechnen von Daten, eine Flag-Gruppe 63, die auf der Basis des Ergebnisses einer 8-Bit-Operation oder einer 16-Bit-Operation zu ändern ist, einen Auswähler 64 zum Auswählen der Eingabe der Flag-Gruppe 63, die auf der Basis von entweder der 8-Bit-Operation oder der 16-Bit-Operation geändert wird, eine Flag-Gruppe 65, die auf der Basis des Ergebnisses einer 4-Bit-Operation zu ändern ist, und eine Zweigentscheidungseinheit 66, um zu entscheiden, ob eine Verzweigung von der Flag-Gruppe 63 genommen wird oder nicht.
  • Fig. 4A zeigt die Bitkonfiguration eines Maschinensprachbefehls für die Befehle ADD, SUBTRACT und COMPARE, und Fig. 4B zeigt die Bitkonfiguration eines Maschinensprachbefehls für bedingte Zweigbefehle. In der in Fig. 4A gezeigten Bitkonfiguration wird ein Bit in dem ersten Byte (durch W angegeben) zugeordnet, um eine Datenbreite zusätzlich zu dem Typ der arithmetischen Operation anzugeben. Dem zweiten Byte sind zu operierende Register zugewiesen, wobei es Adressierungsmodi für Speicheroperanden angibt, während das dritte und vierte Byte Speicheradressen angeben. In der in Fig. 4B gezeigten Bitkonfiguration werden vier Bits in dem ersten Byte (Operationscode) zu einer Zweigbedingung zugewiesen.
  • Die oben genannte Datenverarbeitungsvorrichtung wird wie folgt betrieben.
  • Zuerst wird ein Befehl durch die Befehlsdecodierungseinheit 61 decodiert. Wenn der Befehl ein arithmetischer Operationsbefehl ist, führt der Berechner 62 eine arithmetische Operation durch. Die Flags in der Flag-Gruppe 63 und 65 werden auf der Basis der Ergebnisse der Operation geändert. Zu diesem Zeitpunkt gibt die Befehldecodiereinheit 61 eine Datenbreite (8 Bit oder 16 Bit) für den Berechner 62 an, wobei dann der Auswähler 64 Flag-Änderungsdaten in Entsprechung zu der Datenbreite an die Flag-Gruppe 63 ausgibt.
  • Der nächste Befehl wird durch die Befehlsdecodiereinheit 61 decodiert. Wenn der Befehl ein bedingter Zweigbefehl ist, entscheidet die Zweigentscheidungseinheit 66, ob die Verzweigung aus der Flag-Gruppe 63 genommen wird oder nicht. Wenn ein Befehl, der einer arithmetischen Operation folgt, eine arithmetische Operation für Dezimaldaten ist, führt der Berechner 62 die Operation mit Bezug auf die Flag-Gruppe 65 durch.
  • In Übereinstimmung mit der zweiten herkömmlichen Datenverarbeitungsvorrichtung ist die Verwendung der Flag-Gruppe 65 auf der Basis der 4-Bit-Operation, die gleichzeitig mit der Flag-Gruppe 63 auf der Basis von entweder einer 8-Bit-Operation oder einer 16-Bit- Operation geändert wird, auf arithmetische Operationen für Dezimaldaten beschränkt und kann nicht auf eine bedingte Verzweigung angewendet werden.
  • Die zweite herkömmliche Datenverarbeitungsvorrichtung hat also das Problem von Verarbeitungslasten erfolgreich überwunden, indem es zwischen den zwei Flag-Änderungsdaten in Abhängigkeit von den zwei Datenbreiten von 8 Bit und 16 Bit auswählt. Die Datenbreite wird jedoch in einem Befehl angegeben, so dass zwei Befehlscodezuweisungen (eine für 8-Bit- Daten und die andere für 16-Bit-Daten) für jede arithmetische Operation erforderlich sind.
  • Dies verkompliziert den Aufbau der Befehlsdecodiereinheit, wegen der Vergrößerung der Befehlscodezuweisung.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • In Anbetracht der vorstehend geschilderten Probleme ist es eine Aufgabe der vorliegenden Erfindung, eine Datenverarbeitungsvorrichtung anzugeben, die Verarbeitungslasten verhindern kann, wenn Daten mit einer Vielzahl von Datenoperationsbreiten verarbeitet werden, wobei die Vorrichtung eine bedingte Verzeigung für die Vielzahl von Datenoperationsbreiten verwendet und weiterhin in der Lage ist, die Zuweisung der Befehlscodes für jede Operation zu reduzieren.
  • Gemäß einem Aspekt der vorliegenden Erfindung ist eine Vorrichtung zum Verarbeiten von Daten angegeben, die umfasst: eine Einheit zum Decodieren von Befehlen, wobei die Befehle Arithmetikoperationsbefehle und bedingte Zweigbefehle umfassen, einen Berechner zum Operieren von N-Bit-Daten in Übereinstimmung mit den decodierten Befehlen, wobei N eine ganze Zahl ist, eine Vielzahl von Flag-Speichereinrichtungen, wobei jede Flag-Speichereinrichtung eine Flag-Gruppe speichert, wobei jede Flag-Gruppe auf der Basis einer anderen Bitbreite von N-Bit-Daten geändert wird, die durch die Operation des Berechners erhalten werden, eine Zweigentscheidungseinheit zum Empfangen einer Zweigbedingung von einem bedingten Zweigbefehl, der durch die Befehlsdecodiereinheit decodiert wird, dadurch gekennzeichnet, dass die Vorrichtung weiterhin umfasst: eine Flag-Gruppen-Auswahleinrichtung zum Auswählen von einer aus der Vielzahl von Flag-Speichereinrichtungen in Übereinstimmung mit der Datenbreite, die durch einen bedingten Zweigbefehl angegeben wird, der durch die Befehlsdecodiereinheit decodiert wird, und dass die Zweigentscheidungseinheit vorgesehen ist, um zu entscheiden, ob ein Zweig genommen wird oder nicht, indem auf die Flag-Gruppe Bezug genommen wird, die in der Flag-Speichereinrichtung gespeichert ist, die durch die Flag-Gruppen-Auswahleinrichtung ausgewählt wird.
  • Eine andere Aufgabe der vorliegenden Erfindung besteht darin, ein Datenverarbeitungsverfahren anzugeben, das in der Lage ist, Verarbeitungslasten zu verhindern, wenn Daten mit einer Vielzahl von Operationsbreiten verarbeitet werden, wobei das Verfahren eine bedingte Verzweigung für eine Vielzahl von Datenoperationsbreiten verwendet und weiterhin in der Lage ist, die Zuweisung der Befehlscodes zu jeder Operation zu reduzieren.
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung ist ein Verfahren zum Verarbeiten von Daten angegeben, um einen vorbestimmten Zweigprozess durchzuführen, wobei eine Einheit zum Decodieren von Befehlen, ein Berechner zum Ausführen von Operationen, eine Vielzahl von Flag-Speichereinheiten zum Speichern von zu ändernden Flag-Gruppen jeweils auf der Basis von unterschiedlichen Bitbreiten in einem Operationsergebnis und eine Zweigentscheidungseinheit zum Empfangen einer Zweigbedingung von einem bedingten Zweigbefehl, der durch die Befehlsdecodiereinheit decodiert wird, verwendet werden und wobei auf die Flag-Gruppen Bezug genommen wird, wobei das Verfahren umfasst: Decodieren der Befehle und Entscheiden, ob die Befehle arithmetische Operationsbefehle oder Zweigbefehle sind, Vorsehen von arithmetischen Operationen für N-Bit-Daten in Übereinstimmung mit decodierten arithmetischen Operationsbefehlen, wobei N eine ganze Zahl ist, Ändern der Flag-Gruppen auf der Basis eines Berechnungsoperationsergebnisses, das durch den Berechner erhalten wird, dadurch gekennzeichnet, dass das Verfahren weiterhin umfasst: wenn ein Zweigbefehl decodiert wird, Auswählen von einer der Flag- Gruppen in Übereinstimmung mit einer Datenbreite, die durch den Zweigbefehl angegeben wird, und Entscheiden, ob die Verzweigung genommen wird oder nicht, indem auf die ausgewählte Flag-Gruppe Bezug genommen wird.
  • In Übereinstimmung mit dem oben erläuterten Aufbau der Datenverarbeitungsvorrichtung und dem entsprechenden Verfahren können Verarbeitungsüberlastungen beim Verarbeiten von Daten mit einer Vielzahl von Datenoperationsbreiten verhindert werden, wobei eine bedingte Verzweigung für eine Vielzahl von Datenoperationsbreiten verwendet wird, und kann die Zuweisung von Befehlscodes zu jeder Operation reduziert werden.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Diese und andere Aufgaben, Vorteile und Merkmale der vorliegenden Erfindung werden durch die folgende Beschreibung in Verbindung mit den beigefügten Zeichnungen verdeutlicht, die eine spezifische Ausführungsform der vorliegenden Erfindung darstellen. In den Zeichnungen:
  • Fig. 1 ist ein Blockdiagramm, das den Aufbau einer herkömmlichen Datenverarbeitungsvorrichtung als erstes Beispiel zeigt,
  • Fig. 2A und 2B sind Beispiele für Datenprozesse, die durch die in Fig. 1 gezeigte Vorrichtung durchzuführen sind,
  • Fig. 3 ist ein Blockdiagramm, das den Aufbau einer anderen herkömmlichen Datenverarbeitungsvorrichtung als zweites Beispiel zeigt,
  • Fig. 4A und 4B sind Konfigurationen von Befehlscodes, die in der Vorrichtung von Fig. 3 verwendet werden,
  • Fig. 6 ist ein Blockdiagramm, das die Details des Hauptteils der Vorrichtung von Fig. 5 zeigt, und
  • Fig. 7A und 7B sind Konfigurationen von Befehlscodes, die in der Vorrichtung von Fig. 5 zu verwenden sind.
  • AUSFÜHRLICHE BESCHREIBUNG DER AUSFÜHRUNGSFORM
  • Der Gesamtaufbau der Datenverarbeitungsvorrichtung einer Ausführungsform der vorliegenden Erfindung ist in Fig. 5 gezeigt, und das Detail des Hauptteils der Vorrichtung ist in Fig. 6 gezeigt.
  • Die Datenverarbeitungsvorrichtung umfasst eine Busübertragungs-Steuereinheit 101 zum Steuern der Befehls-/Datenübertragung zu/von einer externen Einheit, eine Befehlsabrufeinheit 102 zum Steuern eines Befehlsauslesens, eine Befehlsdecodiereinheit 103 zum Decodieren von Befehlen, einen Berechner 104 zum Operieren auf 16-Bit-Daten, ein Register 105 zum Speichern von Daten für die Operation des Berechners 104, ein Programmstatuswort 106 (nachfolgend PSW 106) zum Speichern von Flag-Gruppen, die in Übereinstimmung mit den Berechnungsergebnissen des Berechners 104 zu ändern sind, eine Zweigentscheidungseinheit 107 zum Entscheiden, ob ein Zweig genommen wird oder nicht, und einen Programmzähler 108 zum Speichern der Adresse eines Befehls, der gerade ausgeführt wird.
  • Das PSW 106 speichert eine erste Flag-Gruppe 3, die aus den Flags 3-1 bis 3-4 besteht und der Operation auf 8-Bit-Daten entspricht, sowie eine zweite Flag-Gruppe 4, die aus den Flags 4-1 bis 4-4 besteht und der Operation auf 16-Bit-Daten entspricht. Die Flags werden in acht Registern von jeweils einer Länge von 1 Bit im PSW 106 gespeichert.
  • Die Flags Z8 (3-1) und Z16 (4-1) sind Null-Flags, die jeweils angeben, dass das Ergebnis der unteren 8 Bit und 16 Bit, die durch den Berechner 104 berechnet werden, alle Nullen sind. Die Ausgaben einer NOR-Schaltung mit 8 Eingängen und den Ausgängen einer anderen NOR-Schaltung mit 16 Eingängen sind jeweils mit diesen Flags Z8 und Z16 verbunden.
  • Die Flags N8 (3-2) und N16 (4-2) sind negative Flags, die angeben, dass das Berechnungsergebnis negativ ist. Das 8-te Bit und das 16-te Bit des Berechnungsergebnisses werden jeweils mit diesen Flags N8 und N16 verbunden.
  • Die Flags V8 (3-3) und V16 (4-3) sind Überlauf-Flags, die angeben, dass ein Überlauf in einer arithmetischen Operation auftritt. Die Ausgabe von XOR zwischen den Übertragseinheiten aus dem 7-ten Bit und dem 8-ten Bit sowie zwischen den Übertragseinheiten aus dem 15-ten Bit und dem 16-ten Bit im Berechner 104 werden jeweils mit diesen Flags V8 und V16 verbunden.
  • Die Flags C8 (3-4) und C16 (4-4) sind Übertragsflags, die das Auftreten der Übertragseinheiten angeben. Die Übertragseinheiten von dem 8-ten Bit und dem 16-Bit in dem Berechner 104 werden jeweils mit diesen Flags C8 und C16 verbunden.
  • Die Zweigentscheidungseinheit 107 umfasst die Auswähler 6-1 bis 6-4, um zwischen der ersten und den zweiten Flag-Gruppen 3 und 4 auszuwählen, sowie eine Bedingungsentscheidungseinheit 7, um zu entscheiden, ob eine Verzweigung aus der ausgewählten Flag-Gruppe genommen wird oder nicht.
  • Diese Auswähler 6-1 bis 6-4 wählen zwischen der ersten und der zweiten Flag-Gruppe 3 und 4 in Übereinstimmung mit einem Flag-Gruppe-Angabesignal, das von der Befehlsdecodiereinheit 103 gesendet wird, und geben die ausgewählte Flag-Gruppe an die Bedingungsentscheidungseinheit 7 aus.
  • Die Bedingungsentscheidungseinheit 7 umfasst eine logische Schaltung, die auf verschiedene Entscheidungsbedingungen reagiert und aus dem Bedingungscode, der die Typen der von der Befehlsdecodiereinheit 103 gesendeten bedingten Zweigbefehle angibt, und aus den von den Auswählern 6-1 bis 6-4 ausgegebenen Flag-Daten entscheidet, ob eine Verzweigung genommen wird oder nicht. Wenn eine Verzweigung genommen wird, wird die Ausführungssequenz zu einer Adresse verschoben, die durch den Zweigbefehl vorbestimmt wird, und wenn die Verzweigung nicht genommen wird, wird ein auf die Verzweigung folgender Befehl ausgeführt.
  • Im Folgenden wird die Operation der Datenverarbeitungsvorrichtung der vorliegenden Erfindung beschrieben.
  • Zuerst steuert die Befehlsabrufeinheit 102 die Busübertragungs-Steuereinheit 101, um einen Befehl aus einem externen ROM oder ähnlichem zu erhalten.
  • Dann decodiert die Befehlsdecodiereinheit 103 den abgerufenen Befehl. Fig. 7A zeigt die Konfiguration eines arithmetischen Operationsbefehls wie etwa ADD, SUBTRACT oder COMPARE, und Fig. 7B zeigt die Konfiguration eines bedingten Zweigbefehls.
  • In dem arithmetischen Zweigbefehl gibt das erste Byte Operationstypen an, gibt das zweite Byte Adressmodi für Speicheroperanden oder zu verwendende Register an und geben das dritte und vierte Byte Speicheradressen an.
  • In dem bedingten Zweigbefehl gibt das erste Byte Befehlstypen, Zweigbedingungen und die Breite der Datenoperation an, auf der die bedingte Entscheidung basiert (durch W angegeben). Das zweite Byte gibt eine Zweigzieladresse an:
  • Die Befehlsdecodiereinheit 103 decodiert einen empfangenen Befehl und sendet Steuersignale an den Berechner 104, das Register 105 und die Busübertragung-Steuereinheit 101 auf der Basis des decodierten Operationstyps, der Information zum Datenspeicherort und ähnlichem. Die folgenden Operationen dienen zum Verarbeiten von decodierten Arithmetikoperationsbefehlen und bedingten Zweigbefehlen.
  • "Arithmetikoperationsbefehle"
  • Der Berechner 104 berechnet eine durch den Befehl angegebene Operation unter Verwendung der aus dem Register 105 gelesenen 16-Bit-Daten, und das Operationsergebnis wird in dem Register 105 gespeichert. Die Flags 3-1 bis 3-4 der ersten Flag-Gruppe werden auf der Basis der unteren 8 Bit des Operationsergebnis geändert, und die Flags 4-1 bis 4-4 der zweiten Flag-Gruppe werden auf der Basis von allen 16 Bits des Operationsergebnisses geändert.
  • Um 32-Bit-Daten auszuführen (arithmetische Operation mehrfacher Länge), muss der Berechner 104 zuerst die unteren 16-Bit-Daten ausführen, die aus dem Register 105 gesendet werden. Die erste Flag-Gruppe 3 und die zweite Flag-Gruppe 4 werden auf der Basis des Ausführungsergebnisses geändert. Dann führt der Berechner 104 die höheren 16- Bit-Daten aus dem Register 105 mit Bezug auf die zweite Flag-Gruppe 4 aus. Die erste und die zweite Flag-Gruppe werden auf der Basis dieses Ergebnisses geändert.
  • "Bedingte Zweigbefehle"
  • Die Befehlsdecodiereinheit 103 sendet das Flag-Gruppe-Angabesignal an die Auswähler 6-1 bis 6-4 der Zweigentscheidungseinheit 107. Dieses Signal gibt die bedingte entschiedene Breite (8 Bit oder 16 Bit) an und wird durch das Bit W von Fig. 7B erzeugt. Die Auswähler 6-1 bis 6-4 wählen zwischen der ersten und der zweiten Flag-Gruppe 3 und 4 in Übereinstimmung mit dem Flag-Gruppe-Angabesignal. Wenn die angegeben Datenbreite beispielsweise 8 Bit ist, geben die Auswähler 6-1 bis 6-4 Flag-Daten aus, die von der ersten Flag- Gruppe 3 zu der Bedingungsentscheidungseinheit 7 gesendet werden. Wenn die angegebene Datenbreite andererseits 16 Bit ist, werden die aus der zweiten Flag-Gruppe 4 gesendeten Daten ausgegeben. Folglich entscheidet die Bedingungsentscheidungseinheit 7, ob eine Verzweigung genommen wird oder nicht, indem sie auf die Flags in der ausgewählten Flag-Gruppe Bezug nimmt.
  • Die Datenverarbeitungsvorrichtung der Ausführungsform der vorliegenden Erfindung weist eine Vielzahl von Flag-Gruppen auf und wählt eine Flag-Gruppe in Übereinstimmung mit der Datenbreie, die in einem bedingten Zweigbefehl zu verarbeiten ist und nicht in einem Arithmetikoperationsbefehl. Deshalb können im Vergleich zu dem herkömmlichen Fall, wo die Datenbreite in Arithmetikoperationsbefehlen angegeben wird und die Codelänge gleich ist, mehr Befehle zugewiesen werden. Während beispielsweise das in Fig. 7A gezeigte Befehlsformat 2&sup8; = 256 verschiedene Zuweisungen von Befehlscodes für die Angabe der arithmetischen Operationstypen erlaubt, erlaubt das in Fig. 7B gezeigte Befehlsformat, bei dem ein Bit zur Angabe der Datenbreite verwendet wird, 2³ = 8 verschiedene Zuweisungen von Befehlscodes. Dementsprechend sind 256+8 = 264 verschiedene Zuweisungen in der vorliegenden Erfindung möglich.
  • Im Gegensatz dazu sind in Übereinstimmung mit der oben genannten zweiten herkömmlichen Datenverarbeitungsvorrichtung 2&sup7; = 128 und 2&sup4; = 16 verschiedene Zuordnungen für jeweils Arithmetikoperationsbefehle und bedingte Zweigbefehle möglich, so dass dementsprechend insgesamt nicht mehr als 114 verschiedene Zuweisungen möglich sind. Die Datenverarbeitungsvorrichtung der vorliegenden Erfindung kann also 120 (264-144) Befehlscodes mehr zuweisen als die herkömmliche Vorrichtung.
  • Wenn andererseits Befehle mit denselben Funktionen zugeordnet werden, kann die Anzahl der Befehle beinahe auf die Hälfte reduziert werden, weil die Angabe der Datenbreite in dem Code der Arithmetikoperationsbefehle ausgelassen werden kann. Die Reduktion der Befehlsnummer kann den Aufbau der Befehlsdecodiereinheit 103 vereinfachen, um alle darin enthaltenen Befehle zu decodieren.
  • Auch wenn die Datenoperationsbreite N des Berechners 104 keine Potenz von 2 ist, können Datenoperationen, deren Breite größer als N und eine Potenz von 2 sind, ausgeführt werden, indem eine Flag-Gruppe verwendet wird, die auf dem Operationsergebnis der Datenbreite basiert, welche kleiner als N und eine Potenz von 2 ist.
  • Zum Beispiel kann ein 24-Bit-Berechner 32-Bit-Daten unter Verwendung einer Flag-Gruppe auf der Basis der Operationsergebnisse von 16-Bit-Daten verwalten. So ist es möglich, die Datenbreite des Berechners 104 in Entsprechung zu der zu verarbeitenden Datenbreite zu wählen.
  • Außerdem machen das gleichzeitige Ändern von zwei oder mehr Flag-Gruppen und die Auswahl von einer Flag-Gruppe, die auf den Operationsergebnissen der gewünschten Datenbreite basieren, wie in der ersten herkömmlichen Datenverarbeitungsvorrichtung erwähnte Datenerweiterungen unnötig, wodurch Verarbeitungsüberlastungen verhindert werden, wenn Daten mit einer Vielzahl von Datenoperationsbreiten unter Verwendung einer bedingten Verzweigung verarbeitet werden.
  • Die Flag-Gruppen in dieser Ausführungsform sind für 8-Bit-Daten und für 16-Bit-Daten vorgesehen, können jedoch auch für Daten mit einer beliebigen Anzahl von Bits vorgesehen werden.
  • Während in dieser Ausführungsform ein bedingter Zweigbefehl für die Angabe der Datenbreite verantwortlich ist, kann auch ein anderer Befehlscode beispielsweise vor dem bedingten Zweigbefehl vorgesehen werden, um eine zu verwendende Flag-Gruppe anzugeben.
  • Während in dieser Ausführungsform ein Berechner mit 16 Bit verwendet wird, kann auch ein Berechner mit 32 Bit oder einer beliebigen anderen Anzahl von Bit verwendet werden.
  • Die vorliegende Erfindung wurde vollständig mittels Beispielen und mit Bezug auf die beigefügten Zeichnungen beschrieben, wobei jedoch zu beachten ist, dass verschiedene Änderungen und Modifikationen vorgenommen werden können, ohne dass dadurch der Umfang der vorliegenden Erfindung verlassen wird, der in den beigefügten Ansprüchen definiert ist.

Claims (11)

1. Datenverarbeitungsvorrichtung mit:
einer Einheit (103) zum Decodieren von Befehlen, wobei die Befehle Arithmetikoperationsbefehle und bedingte Zweigbefehle umfassen,
einem Berechner (104) zum Betreiben von N-Bit-Daten in Übereinstimmung mit decodierten Befehlen, wobei N eine ganze Zahl ist,
eine Vielzahl von Flag-Speichereinrichtungen (106), wobei jede der Flag-Speichereinrichtungen eine Flag-Gruppe (3, 4) speichert, wobei jede Flag-Gruppe (3, 4) auf der Basis einer anderen Bitbreite von durch die Operation des Berechners (104) erhaltenen N-Bit- Daten geändert wird,
eine Zweigentscheidungseinheit (107) zum Empfangen einer Zweigbedingung von einem bedingten Zweigbefehl, der durch die Befehlsdecodiereinheit (103) decodiert wird, dadurch gekennzeichnet, dass die Vorrichtung weiterhin umfasst:
eine Flag-Gruppe-Auswahleinrichtung (6-1, 6-2, 6-3, 6-4), um eine aus der Vielzahl von Flag-Speichereinrichtungen in Entsprechung zu einer Datenbreite zu wählen, die durch einen bedingten Zweigbefehl angegeben wird, der durch die Befehlsdecodiereinheit (104) decodiert wird, und dass
die Zweigentscheidungseinheit (107) angeordnet ist, um zu entscheiden, ob eine Verzweigung genommen wird oder nicht, indem sie auf die Flag-Gruppe (3, 4) Bezug nimmt, die in der Flag-Speichereinrichtung gespeichert ist, die durch die Flag-Gruppe-Auswahleinrichtung (6-1, 6-2, 6-3, 6-4) ausgewählt wird.
2. Vorrichtung nach Anspruch 1, wobei die Vielzahl von Flag-Speichereinrichtungen (106) eine erste Flag-Speichereinheit zum Speichern einer Flag-Gruppe (4) umfasst, wobei die Flag-Gruppe (4) in Übereinstimmung mit allen Bits geändert wird, die in den durch eine Operation des Berechners (104) erhaltenen N-Bit-Daten enthalten sind.
3. Vorrichtung nach Anspruch 2, wobei der Berechner (104) auf N-Bit-Daten operiert, wobei N eine Potenz von 2 ist.
4. Vorrichtung nach Anspruch 2, wobei die Vielzahl von Flag-Speichereinrichtungen (106) eine zweite Flag-Speichereinheit zum Speichern von Flag-Gruppen (3) aufweist, wobei die Flag-Gruppen (3) in Übereinstimmung mit allen Bits geändert werden, die in den durch eine Operation des Berechners (104) erhaltenen N-Bit-Daten enthalten sind, wobei die Daten eine Breite kleiner N aufweisen, die eine Potenz von 2 ist.
5. Vorrichtung nach Anspruch 2, wobei der Berechner (104) auf N-Bit-Daten operiert, wobei N keine Potenz von 2 ist.
6. Vorrichtung nach Anspruch 5, wobei die erste Flag-Speichereinheit eine Flag-Gruppe speichert, wobei die Flag-Gruppe in Übereinstimmung mit allen Bits geändert wird, die in den N-Bit-Daten enthalten sind, die keine Potenz von 2 sind.
7. Vorrichtung nach Anspruch 6, wobei die Vielzahl von Flag-Speichereinheiten (106) eine zweite Flag-Speichereinheit zum Speichern von Flag-Gruppen aufweist, wobei die Flag- Gruppen in Übereinstimmung mit allen Bits geändert werden, die in den durch eine Operation des Berechners (104) erhaltenen Daten enthalten sind, wobei die Daten eine Breite kleiner N aufweisen.
8. Vorrichtung nach Anspruch 7, wobei die Befehlsdecodiereinheit (103) eine Zweigbefehlsdecodiereinheit zum Decodieren eines Datenbreite-Angabebits in einem Zweigbefehlscode aufweist, wobei die Auswahleinrichtung (6-1, 6-2, 6-3, 6-4) Informationen zu der Datenbreiteangabe von der Befehlsdecodiereinheit (103) empfängt und zwischen Flag-Gruppen (4), die aus der ersten Flag-Speichereinheit ausgelesen werden, und Flag-Gruppen (3), die aus der zweiten Flag-Speichereinheit ausgelesen werden, wählt, um ausgewählte Flag-Gruppen auszugeben.
9. Vorrichtung nach Anspruch 8, wobei der Berechner (104) auf 24-Bit-Daten operiert, wobei die erste Flag-Speichereinheit eine Flag-Gruppe (4) speichert, die in Übereinstimmung mit allen Bits geändert wird, in den durch eine Operation des Berechners (104) erhaltenen 24-Bit-Daten enthalten sind, und wobei die zweite Flag-Speichereinheit Flag-Gruppen (3) speichert, die in Übereinstimmung mit den unteren 16 Bit von 24-Bit-Daten geändert werden, die durch eine Operation des Berechners (104) erhalten werden.
10. Verfahren zum Verarbeiten von Daten, um einen vorbestimmten Zweigprozess durchzuführen, indem eine Einheit zum Decodieren von Befehlen (103), ein Berechner (104) zum Ausführen von Operationen, eine Vielzahl von Flag-Speichereinheiten (106) zum Speichern von Flag-Gruppen (3, 4), die jeweils auf der Basis von unterschiedlichen Bitbreiten in einem Operationsergebnis zu ändern sind, sowie eine Zweigentscheidungseinheit (107) zum Empfangen einer Zweigbedingung von einem bedingten Zweigbefehl, der durch die Befehlsdecodiereinheit (103) decodiert wird, verwendet werden und indem auf die Flag- Gruppen (3, 4) Bezug genommen wird, wobei das Verfahren umfasst:
Decodieren der Befehle und Entscheiden, ob die Befehle Arithmetikoperationsbefehle oder Zweigbefehle sind,
Vorsehen von arithmetischen Operationen für N-Bit-Daten in Übereinstimmung mit decodierten Operationsbefehlen, wobei N eine ganze Zahl ist,
Ändern der Flag-Gruppen (3, 4) auf der Basis einer Datenbreite eines Berechnungsoperationsergebnisses, das durch den Berechner (104) erhalten wird,
dadurch gekennzeichnet, dass das Verfahren weiterhin umfasst:
wenn ein Zweigbefehl decodiert wird, Auswählen von einer der Flag-Gruppen (3, 4) in Entsprechung zu einer Datenbreite, die durch den Zweigbefehl angegeben wird, und
Entscheiden, ob eine Verzweigung genommen wird oder nicht, indem auf die ausgewählte Flag-Gruppe (3, 4) Bezug genommen wird.
11. Verfahren nach Anspruch 10, wobei der Schritt zum Ändern der Flag-Gruppen (3, 4) das Speichern von vorbestimmten Flag-Gruppen in vorbestimmten Flag-Speichereinheiten (106) in Übereinstimmung mit Ergebnisse von arithmetischen Operationen mit einer Vielzahl von Bitbreiten umfasst.
DE69428303T 1993-05-31 1994-05-31 Verfahren und Vorrichtung zum Datenarbeiten mit mehreren Statusbitgruppen Expired - Lifetime DE69428303T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5129528A JP2832899B2 (ja) 1993-05-31 1993-05-31 データ処理装置およびデータ処理方法

Publications (2)

Publication Number Publication Date
DE69428303D1 DE69428303D1 (de) 2001-10-25
DE69428303T2 true DE69428303T2 (de) 2002-04-18

Family

ID=15011745

Family Applications (2)

Application Number Title Priority Date Filing Date
DE69433026T Expired - Lifetime DE69433026T2 (de) 1993-05-31 1994-05-31 Verfahren und Vorrichtung zum Datenverarbeiten mit mehreren Statusbitgruppen
DE69428303T Expired - Lifetime DE69428303T2 (de) 1993-05-31 1994-05-31 Verfahren und Vorrichtung zum Datenarbeiten mit mehreren Statusbitgruppen

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE69433026T Expired - Lifetime DE69433026T2 (de) 1993-05-31 1994-05-31 Verfahren und Vorrichtung zum Datenverarbeiten mit mehreren Statusbitgruppen

Country Status (4)

Country Link
US (2) US5991868A (de)
EP (2) EP0627681B1 (de)
JP (1) JP2832899B2 (de)
DE (2) DE69433026T2 (de)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2832899B2 (ja) * 1993-05-31 1998-12-09 松下電器産業株式会社 データ処理装置およびデータ処理方法
JP3599499B2 (ja) * 1996-10-25 2004-12-08 株式会社リコー 中央処理装置
JPH1173301A (ja) * 1997-08-29 1999-03-16 Matsushita Electric Ind Co Ltd 情報処理装置
US6366999B1 (en) * 1998-01-28 2002-04-02 Bops, Inc. Methods and apparatus to support conditional execution in a VLIW-based array processor with subword execution
GB2355084B (en) * 1999-07-21 2004-04-28 Element 14 Ltd Setting condition values in a computer
GB2352536A (en) 1999-07-21 2001-01-31 Element 14 Ltd Conditional instruction execution
US6574728B1 (en) * 1999-08-10 2003-06-03 Cirrus Logic, Inc. Condition code stack architecture systems and methods
US6625634B1 (en) * 1999-10-01 2003-09-23 Sun Microsystems, Inc. Efficient implementation of multiprecision arithmetic
US6968545B1 (en) * 2000-09-11 2005-11-22 Agilent Technologies, Inc. Method and apparatus for no-latency conditional branching
US7007172B2 (en) 2001-06-01 2006-02-28 Microchip Technology Incorporated Modified Harvard architecture processor having data memory space mapped to program memory space with erroneous execution protection
US7020788B2 (en) 2001-06-01 2006-03-28 Microchip Technology Incorporated Reduced power option
US6976158B2 (en) 2001-06-01 2005-12-13 Microchip Technology Incorporated Repeat instruction with interrupt
US20020184566A1 (en) 2001-06-01 2002-12-05 Michael Catherwood Register pointer trap
US6975679B2 (en) 2001-06-01 2005-12-13 Microchip Technology Incorporated Configuration fuses for setting PWM options
US7467178B2 (en) 2001-06-01 2008-12-16 Microchip Technology Incorporated Dual mode arithmetic saturation processing
US6952711B2 (en) 2001-06-01 2005-10-04 Microchip Technology Incorporated Maximally negative signed fractional number multiplication
US6937084B2 (en) 2001-06-01 2005-08-30 Microchip Technology Incorporated Processor with dual-deadtime pulse width modulation generator
US7003543B2 (en) * 2001-06-01 2006-02-21 Microchip Technology Incorporated Sticky z bit
US6934728B2 (en) 2001-06-01 2005-08-23 Microchip Technology Incorporated Euclidean distance instructions
US6985986B2 (en) 2001-06-01 2006-01-10 Microchip Technology Incorporated Variable cycle interrupt disabling
US7017032B2 (en) 2001-06-11 2006-03-21 Broadcom Corporation Setting execution conditions
US7861071B2 (en) 2001-06-11 2010-12-28 Broadcom Corporation Conditional branch instruction capable of testing a plurality of indicators in a predicate register
US7127593B2 (en) 2001-06-11 2006-10-24 Broadcom Corporation Conditional execution with multiple destination stores
US6986025B2 (en) 2001-06-11 2006-01-10 Broadcom Corporation Conditional execution per lane
JP2003186567A (ja) * 2001-12-19 2003-07-04 Matsushita Electric Ind Co Ltd マイクロプロセッサ
JP2003216418A (ja) * 2002-01-25 2003-07-31 Oki Electric Ind Co Ltd 演算回路
JP3813613B2 (ja) * 2004-01-19 2006-08-23 日本テキサス・インスツルメンツ株式会社 加算回路
JP2007122626A (ja) * 2005-10-31 2007-05-17 Matsushita Electric Ind Co Ltd マイクロプロセッサ
JP5193624B2 (ja) 2008-02-19 2013-05-08 ルネサスエレクトロニクス株式会社 データプロセッサ
US8549264B2 (en) 2009-12-22 2013-10-01 Intel Corporation Add instructions to add three source operands
JP5610551B2 (ja) * 2013-02-04 2014-10-22 ルネサスエレクトロニクス株式会社 データプロセッサ
US9756131B2 (en) * 2013-10-01 2017-09-05 Verizon Deutschland Gmbh Label for use in the internet of things
JP5767374B2 (ja) * 2014-07-30 2015-08-19 ルネサスエレクトロニクス株式会社 データプロセッサ

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS54117646A (en) * 1978-03-06 1979-09-12 Toshiba Corp Computer
US4812971A (en) * 1983-10-03 1989-03-14 Digital Equipment Corporation Central processing unit for a digital computer
US5034879A (en) * 1984-10-01 1991-07-23 Unisys Corp. (Formerly Burroughs Corp.) Programmable data path width in a programmable unit having plural levels of subinstruction sets
JPS61288226A (ja) * 1985-06-17 1986-12-18 Panafacom Ltd 外部コンデイシヨン制御方式
US4811266A (en) * 1986-11-05 1989-03-07 Honeywell Bull Inc. Multifunction arithmetic indicator
JPH01230125A (ja) * 1988-03-10 1989-09-13 Nec Corp レジスタの部分的更新機能を持つデータ処理装置
JPH02133827A (ja) * 1988-11-14 1990-05-23 Nec Corp 情報処理装置
US5001662A (en) * 1989-04-28 1991-03-19 Apple Computer, Inc. Method and apparatus for multi-gauge computation
JP2559868B2 (ja) * 1990-01-06 1996-12-04 富士通株式会社 情報処理装置
JPH04211826A (ja) * 1990-06-01 1992-08-03 Pioneer Electron Corp プログラム演算装置
JPH04195629A (ja) * 1990-11-28 1992-07-15 Matsushita Electric Ind Co Ltd 演算フラグ生成装置
JP2832899B2 (ja) * 1993-05-31 1998-12-09 松下電器産業株式会社 データ処理装置およびデータ処理方法

Also Published As

Publication number Publication date
DE69433026D1 (de) 2003-09-11
US6205534B1 (en) 2001-03-20
EP0627681A1 (de) 1994-12-07
EP1063586A2 (de) 2000-12-27
JP2832899B2 (ja) 1998-12-09
JPH06337783A (ja) 1994-12-06
DE69428303D1 (de) 2001-10-25
US5991868A (en) 1999-11-23
EP0627681B1 (de) 2001-09-19
DE69433026T2 (de) 2004-01-22
EP1063586A3 (de) 2001-01-24
EP1063586B1 (de) 2003-08-06

Similar Documents

Publication Publication Date Title
DE69428303T2 (de) Verfahren und Vorrichtung zum Datenarbeiten mit mehreren Statusbitgruppen
DE69900980T2 (de) Verfahren und vorrichtung zur ausführung von verschiebungsoperationen mit gepackten daten
DE69613071T2 (de) Prozessor und Kontrollverfahren zur Ausführung richtiger Saturationsoperation
DE69434967T2 (de) Programmumsetzungseinheit und verbesserter Prozessor für Adressierung
DE2935906C2 (de) Mikroprozessor
EP0010198B1 (de) Vorrichtung zur Steuerung des Seitenaustausches in einem Datenverarbeitungssystem mit virtuellem Speicher
DE69622676T2 (de) Datenverarbeitungsanordnung mit Erweiterung des Befehlssatzes
DE2712224C2 (de) Datenverarbeitungsanlage
DE3688824T2 (de) Datenverarbeitungssystem.
DE3650473T2 (de) Mikroprogrammsteuereinheit
DE3751540T2 (de) Verfahren und Vorrichtung zur Datenverarbeitung.
DE2230102A1 (de) Rechenwerk fuer variable wortlaengen
EP0010185A1 (de) Virtuell-Adressiervorrichtung für einen Computer
DE2517276A1 (de) Datenverarbeitungssystem
DE2714805A1 (de) Datenverarbeitungssystem
DE3856139T2 (de) Mikroprozessor
DE69231237T2 (de) Datenverarbeitungsvorrichtung
DE69616718T4 (de) Vorrichtung und verfahren zur bestimmung von adressen fehlausgerichteter daten
DE3121742C2 (de) Mikroprogramm-Steuereinrichtung
DE3854853T2 (de) Datenprozessor mit erweiterten Operationsfunktionen
DE69034246T2 (de) Gerät zur Verarbeitung von Grafikdaten
DE69503010T2 (de) Mikroprozessor zur Ausführung von Befehlen,von denen ein Teil des Operandfelds als Operationscode zu gebrauchen ist
DE19652290C2 (de) Mikrocomputer
DE69807412T2 (de) Prozessorarchitekturschema und Befehlssatz zur Maximierung verfügbarer Opcodes und zum Einsetzen verschiedener Adressierungsmodi
DE2830334C2 (de)

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: PANASONIC CORP., KADOMA, OSAKA, JP