DE69428303T2 - Verfahren und Vorrichtung zum Datenarbeiten mit mehreren Statusbitgruppen - Google Patents
Verfahren und Vorrichtung zum Datenarbeiten mit mehreren StatusbitgruppenInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
- G06F9/30014—Arithmetic instructions with variable precision
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30058—Conditional branch instructions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30094—Condition 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
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
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)
| 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)
| 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 | 松下電器産業株式会社 | データ処理装置およびデータ処理方法 |
-
1993
- 1993-05-31 JP JP5129528A patent/JP2832899B2/ja not_active Expired - Lifetime
-
1994
- 1994-05-19 US US08/246,179 patent/US5991868A/en not_active Expired - Lifetime
- 1994-05-31 DE DE69433026T patent/DE69433026T2/de not_active Expired - Lifetime
- 1994-05-31 EP EP94303897A patent/EP0627681B1/de not_active Expired - Lifetime
- 1994-05-31 EP EP00121810A patent/EP1063586B1/de not_active Expired - Lifetime
- 1994-05-31 DE DE69428303T patent/DE69428303T2/de not_active Expired - Lifetime
-
1999
- 1999-09-22 US US09/401,479 patent/US6205534B1/en not_active Expired - Lifetime
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 |