DE10025249C2 - Verfahren zur Ausführung sowohl von Divisions- als auch Restbefehlen und Datenverarbeitungsgerät, welches das Verfahren anwendet - Google Patents

Verfahren zur Ausführung sowohl von Divisions- als auch Restbefehlen und Datenverarbeitungsgerät, welches das Verfahren anwendet

Info

Publication number
DE10025249C2
DE10025249C2 DE10025249A DE10025249A DE10025249C2 DE 10025249 C2 DE10025249 C2 DE 10025249C2 DE 10025249 A DE10025249 A DE 10025249A DE 10025249 A DE10025249 A DE 10025249A DE 10025249 C2 DE10025249 C2 DE 10025249C2
Authority
DE
Germany
Prior art keywords
data
division
instruction
command
code
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
DE10025249A
Other languages
English (en)
Other versions
DE10025249A1 (de
Inventor
Sugako Otani
Hiroyuki Kondo
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of DE10025249A1 publication Critical patent/DE10025249A1/de
Application granted granted Critical
Publication of DE10025249C2 publication Critical patent/DE10025249C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/535Dividing only
    • 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/3001Arithmetic 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/325Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3812Devices capable of handling different types of numbers
    • G06F2207/3816Accepting numbers of variable word length
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/535Indexing scheme relating to groups G06F7/535 - G06F7/5375
    • G06F2207/5352Non-restoring division not covered by G06F7/5375

Landscapes

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

Abstract

Ein Datenverarbeitungsgerät enthält eine Befehlsdecodiereinheit, welche einen Code von entweder einem daran angelegten Divisionsbefehl oder einem Restbefehl decodiert, wobei der Befehlscode ein Größenfeld zur Speicherung einer Datengrößeinforamtion aufweist. Wenn eine Steuereinheit ein decodiertes Ergebnis von der Befehlsdecodiereinheit empfängt, wobei das decodierte Ergebnis die in dem Größenfeld des Befehlscodes gespeicherte Datengrößeninformation anzeigt, stellt sie eine Zahl, entsprechend welcher eine Schleifeniteration, die sich aus Schritten zusammensetzt, welche zur Ausführung von entweder des Divisionsbefehls oder des Restbefehls benötigt werden, durchzuführen ist, auf der Grundlage der Datengrößeninformation im voraus ein. Eine innerhalb einer arithmetischen Einheit angeordnete ALU führt die Schleifeniteration für entweder den Divisionsbefehl oder den Restbefehl lediglich die von der Steuereinheit voreingestellte Zahl aus.

Description

Die vorliegende Erfindung bezieht sich auf ein Verfah­ ren und auf ein Datenverarbeitungsgerät zur Ausführung so­ wohl von Divisions- als auch Restbefehlen (division and remainder instructions) mit Effizienz, wobei sowohl die Di­ visions- als auch Restbefehle einen Code aufweisen, bei welchem Informationen bezüglich der Größe von Dividentdaten plaziert sind.
Ein für 32-Bit-Mikroprozessoren bestimmter Befehl kann Divisions- und Restbefehle aufweisen. Sowohl in Divisions- als auch Restbefehlen kann ein Operand, welcher sowohl der Divisor als auch der Dividend sein kann, als 32-Bit-Binär­ wert behandelt. Fig. 10 zeigt ein Diagramm, welches den Code sowohl von Divisions- als auch Restbefehlen darstellt, welche in einem Befehlssatz enthalten sind, der von dem Da­ tenverarbeitungsgerät nach dem Stand der Technik bereitge­ stellt wird. Entsprechend der Figur bezeichnet Bezugszei­ chen OP1 einen ersten Operandencode, Bezugszeichen OP2 be­ zeichnet einen zweiten Operandencode, Bezugszeichen R1 be­ zeichnet eine Zielregisteridentifizierung, Bezugszeichen R2 bezeichnet eine Quellenregisteridentifizierung, und Bezugs­ zeichen C bezeichnet einen Konstantzahlabschnitt.
Üblicherweise können sowohl Divisions- als auch Restbe­ fehle, welche von einem Datenverarbeitungsgerät bereitge­ stellt werden, sowohl ein Zielregister als auch ein Quel­ lenregister unter Verwendung der Ziel- und Quellenregister­ identifizierungen davon identifizieren. Beispielsweise kön­ nen Divisionsbefehle ein Register, welches den Dividenden speichert, mit der Zielregisteridentifizierung R1 davon identifizieren, ein anderes Register, welches den Divisor speichert, mit der Quellenregisteridentifizierung R2 davon identifizieren und das Divisionsergebnis in dem von der Zielregisteridentifizierung R1 identifizierten Register speichern. Sowohl Divisions- als auch Restbefehle verwenden nicht Informationen, welche in dem Konstantzahlabschnitt C plaziert sind.
Die meisten Datenverarbeitungsgeräte nach dem Stand der Technik nehmen eine nicht wiederherstellende Division (non restoring division) als Divisionsalgorithmus an. Obwohl die nicht wiederherstellende Division ein typischer Divisions­ algorithmus ist, berechnet eine Iteration der Divisionsver­ arbeitung lediglich einen Ein-Bit-Ausgang, und daher wird viel Zeit bei der Berechnung aller Ein-Bit-Ausgänge ver­ bracht, um die Divisionsverarbeitung vollständig durchzu­ führen, was zu einer Verringerung der Divisionsverarbei­ tungsgeschwindigkeit führt.
In der US-Patentschrift Nr. 3,773,477 vom 15.05.1973 wird zum Beispiel ein iterativer Binärdividierer unter Verwendung von Mehrfachen des Divisors offenbart. Es wird ein Hochgeschwindigkeitsdividierer für einen Digitalrechner zum Erzeugen einer vorbestimmten Anzahl von Teilquo­ tientenbits je Iteration durch erstmaliges Verwenden einer Decodiertabelle, welche durch ein logisches Netzwerk implementiert ist, um eine vorbestimmte Anzahl von hoch­ wertigen Bits des Dividenden in der ersten Iteration bzw. des Teilrests in nachfolgenden Iterationen zu prüfen. Die Decodiertabelle wird unter Verwendung des Prinzips, daß für einen gegebenen Bereich des Divisors und Dividenden, hergestellt durch Festlegen der hochwertigen Digitalziffern davon, ein begrenzter Bereich möglicher Teilquotienten existiert. Die Anzahl von Unterscheidungsnetzwerken, die zum Ausbilden von Teilresten benötigt wird, ist auf die Anzahl dekodierter möglicher Werte für den zu erzeugenden Teilquotienten beschränkt. Eine Anzahl möglicher Teilreste wird zu Testzwecken durch die Unterscheidungsnetzwerke unter Verwendung der Mehrfachen des Divisors gleich den dekodierten möglichen Teilquotientwerten erzeugt. Eine zweite Decodiertabelle, welche durch ein logisches Netzwerk implementiert ist, bestimmt aus den zu den Unterscheidungsnetzwerken durchgelassenen Mehrfachen des Divisors und den darin ermittelten Ergebnissen, welche den neuen Teilrest für die nächste Iteration erzeugt hat. Die Bits des Teilquotienten werden durch einen Selektor, welcher die zu den Unterscheidungsnetzwerken durchgelassenen Mehrfachen des Divisors und das Netzwerk, aus dem der neue Teilrest hergeleitet wurde, prüft, be­ stimmt. Der Iterationsprozeß wird fortgesetzt, bis der gesamte Quotient erzeugt ist.
Die US-Patentschrift Nr. 5,574,677 vom 12.11.1996 of­ fenbart eine adaptive nicht wiederherstellende Ganzzah­ lendividiervorrichtung mit einer integrierten Überlaufer­ fassung. Die Anzahl der Schritte zum Ausführen einer Ganzzahlendivision wird durch Kombination einer Erfassung eines Restwertüberlaufs mit dem abschließenden Restwert­ wiederherstellungsschritt reduziert. Wenn das Signalbit des Teilrests während des Wiederherstellungsschritts umspringt, liegt kein Restwertüberlauf vor, anderenfalls wird ein Restwertüberlauf signalisiert. Bei einer vorzei­ chenbehafteten Division wird der letzte Quotient vor einer abschließenden Komplementierung ebenfalls überprüft. Dieser Quotient sollte eine positive Zahl sein, da der Dividend auf eine positive Zahl initialisiert wird und der Divisor bei jeder Iteration addiert oder subtrahiert wird unter der Annahme, daß er eine positive Zahl war. Falls der letzte Quotient negativ ist, wird ein Überlauf signalisiert bis auf einen speziellen Fall. Falls der Quotient die kleinste Ganzzahl (MININT) ist, die kleinste darstellbare negative Zahl, und das erwartete Vorzeichen negativ ist, dann ist kein Überlauf eingetreten. MININT wird durch Zusammen-ODERn der niedrigwertigen Bits in dem Quotienten ermittelt. Dies wird in einer kombinatorischen Logik ohne Verwendung des Hauptaddierers in einer ALU oder Verwendung eines zusätzlichen Schritts oder Taktzyklus erfaßt. Da die Restwertüberlaufermittlung während des abschließenden Restwertwiederherstellungsschritts durchgeführt wird, wird sie auch ohne zusätzliche Schritte bewerkstelligt. Somit werden keine zusätzlichen Schritte zur Überlaufermittlung benötigt. Sowohl n-Bit- als auch 2n-Bit-Dividenden, vorzeichenbehaftete und vorzeichenunbehaftete Operationen werden unterstützt.
Um zu den in dieser Anmeldung diskutierten 32-Bit- Systemen zurückzukehren, zeigt Fig. 11 ein Flußdiagramm, welches einen Divisionsalgorithmus darstellt, der gemäß "COMPUTER ORGANIZATION & DESIGN: THE HARDWARE/SOFTWARE INTERFACE, David A. Patterson/John L. Hennessy, Chapter 4.7: Division" von Datenverarbeitungsgeräten nach dem Stand der Technik angenommen wird. Fig. 12 zeigt ein Blockdiagramm, welches die Hardware zeigt, welche zur Durchführung des Divisionsalgorithmus wie in Fig. 11 darge­ stellt benötigt wird. Entsprechend Fig. 12 bezeichnet Be­ zugszeichen 121 eine 32-Bit-ALU zur Durchführung von arith­ metischen Operationen, Bezugszeichen 122 bezeichnet ein Festregister zur Speicherung eines Rests, wobei die rechts befindlichen 32 Bits des Restregisters ein erweitertes Re­ gister bilden, Bezugszeichen 122 bezeichnet ein Register, welches als Divisorregister bezeichnet wird, zur Speiche­ rung eines Divisors, und Bezugszeichen 124 bezeichnet eine Steuerschaltung zur Steuerung der ALU 121 und des Restregi­ sters 122.
Als nächstes folgt eine Beschreibung über den Fluss der Divisionsverarbeitung auf der Grundlage der nicht wieder­ herstellenden Division bei Datenverarbeitungsgeräten nach dem Stand der Technik, wobei angenommen wird, dass sowohl der Dividend als auch der Divisor positive Zahlen sind.
Zuerst speichert die Steuerschaltung 124 in einem Schritt ST111 die Dividendendaten in dem erweiterten Regi­ ster, d. h. in der rechten Hälfte des Restregisters 122, und legt danach alle links befindlichen 32 Bits des Restregi­ sters 122 auf null fest. Des weiteren veranlasst die Steu­ erschaltung 124 das Restregister 122 dazu die darin gelade­ nen Daten um eine Bitposition nach links zu schieben.
Danach subtrahiert die ALU 121 in dem Schritt ST112 den Inhalt des Divisorregisters 123 von dem Inhalt der linken Hälfte des Restregisters 122 und lädt danach das Subtrakti­ onsergebnis in die linke Hälfte des Restregisters 122.
Danach bestimmt die Steuerschaltung 124 in dem Schritt ST113, ob der in der linken Hälfte des Restregisters 122 gespeicherte Rest gleich oder größer als null ist oder nicht. Wenn der Rest gleich oder größer als null ist, be­ gibt sich die Steuerschaltung zu dem Schritt ST115, in wel­ chem sie das Restregister 122 dazu veranlasst, den Inhalt davon um eine Bitposition nach links zu schieben, und legt ein neues Bit an der weiter rechts befindlichen Position des Restregisters 122 auf eins fest. Danach begibt sich die Steuerschaltung 124 zu dem Schritt ST116.
Wenn bei der Durchführung des Schritts ST113 der Rest kleiner als null ist, begibt sich die Steuerschaltung zu dem Schritt ST114, bei welchem die ALU 121 den Inhalt des Divisorregisters 123 den in der linken Hälfte des Restregi­ sters 122 gespeicherten Daten hinzufügt, so dass die in der linken Hälfte des Restregisters 122 gespeicherten Daten auf ihren vor dem Schritt ST112 gespeicherten vorherigen Wert zurückkehren, und speichert danach das Additionsergebnis in der linken Hälfte des Restregisters 122. Danach veranlasst die Steuerschaltung 124 das Restregister 122 dazu, den Inhalt davon um eine Bitposition nach links zu schieben, und legt ein neues Bit an einer weit rechts befindlichen Posi­ tion des Restregisters 122 auf null fest. Danach begibt sich die Steuerschaltung 124 zu dem Schritt ST116.
Die aus den oben beschriebenen Schritten ST112 bis ST116 bestehende Schleifeniteration wird 32mal durchge­ führt. In dem Schritt ST116 bestimmt die Steuerschaltung 124, ob die Zahl von durchgeführten Schleifeniterationen, welche aus der Mehrzahl von Schritten bestehen, gleich oder größer als 32 ist. Wenn die Anzahl von durchgeführten Schleifeniterationen, welche aus der Mehrzahl von Schritten bestehen, kleiner als 32 ist, kehrt die Steuerschaltung 124 zu dem Schritt ST112 zurück und wiederholt danach die oben beschriebenen Prozesse. Nachdem die Schleifeniteration 32mal durchgeführt worden ist, begibt sich die Steuerschal­ tung 124 zu dem Schritt ST117, bei welchem sie das Restre­ gister 122 dazu veranlasst die in der linken Hälfte des Restregisters 122 gespeicherten Daten um eine Bitposition nach rechts zu schieben.
Eine Schwierigkeit bei den wie oben beschriebenen Da­ tenverarbeitungsgeräten nach dem Stand der Technik besteht darin, dass, da Daten, bezüglich denen eine arithmetische Operation durchgeführt werden soll, eine feste Länge von 32 Bit aufweisen, die Anzahl von durchgeführten Schleifenite­ rationen auf der Grundlage der nicht wiederherstellenden Division festgelegt ist, d. h. die Schleifeniteration muss 32mal durchgeführt werden.
Wenn entsprechend der nicht wiederherstellenden Divisi­ on Daten, welche von den Datenverarbeitungsgeräten nach dem Stand der Technik gehandhabt werden können, eine signifi­ kante Bitbreite von N-Bits aufweisen, kann die Anzahl von für jede Divisions- und Restberechnung durchzuführenden Schleifeniterationen N sein kann, wobei der Wert derselbe wie die Bitbreite der Daten ist. Da bei einem derartigen Datenverarbeitungsgerät nach dem Stand der Technik Operan­ den eine feste Länge von 32 Bits besitzen, muss die sowohl für die Divisions- als auch Restberechnungen benötigte Schleifeniteration eine feste Anzahl von Malen durchgeführt werden, d. h. 32mal, sogar wenn jeder Operand eine signifi­ kante Datenbreite von weniger als 32 Bits aufweist. Sowohl die Divisions- als auch Restberechnungen benötigen somit eine feste Anzahl von Taktzyklen jedes Mal. Wenn dement­ sprechend ein Operand in sowohl den Divisions- als auch Restbefehlen eine signifikante Datenbreite von weniger als 32 Bit aufweist, stellen einige Schleifeniterationen, die auf die Ausführung des Befehls erfolgen, eine Zeitver­ schwendung dar. Bei einer Bildverarbeitung, welche ein ty­ pisches Beispiel darstellt, bei welchem Divisions- und Restbefehle häufig erteilt werden, besitzen in den meisten Fällen die zu verarbeitenden Daten eine Länge von 8 oder 16 Bits. Ein 32-Bit-Datenbereich für die Dividendendaten be­ sitzt somit eine signifikante Bitbreite von 8 oder 16 Bits. Obwohl in diesem Fall 8 oder 16 Schleifeniterationen zur Durchführung sowohl der Divisions- als auch der Restberech­ nungen auf der Grundlage der nicht wiederherstellenden Di­ vision benötigt werden, werden tatsächlich 32 Schleifenite­ rationen durchgeführt. Auf diese Weise muss die für die Ausführung sowohl der Divisions- als auch Restbefehle benö­ tigte Schleifeniteration 32mal durchgeführt werden, obwohl die Bitlänge der zu verarbeitenden Daten kleiner als 32 Bits ist. Dementsprechend stellen einige auf die Ausführung sowohl der Divisions- als auch Restbefehle durchgeführten Schleifeniterationen in den meisten Fällen eine Zeitver­ schwendung dar, und daher wird viel Zeit mit der Ausführung sowohl der Divisions- als auch der Restbefehle verbracht.
Die vorliegende Erfindung zielt darauf ab die oben be­ schriebenen Schwierigkeiten zu überwinden. Aufgabe der vor­ liegenden Erfindung ist es daher ein Verfahren zur Festle­ gung einer Zahl bereitzustellen, entsprechend der eine arithmetische Schleifeniteration auf der Grundlage der nicht wieder herstellenden Division für die Ausführung so­ wohl von Divisions- als auch Restbefehlen durchgeführt wird, wobei die Zahl einer signifikanten Bitbreite der Di­ videndendaten entspricht, welche sowohl für die Divisions- als auch die Restbefehle verwendet werden, und ein Daten­ verarbeitungsgerät bereitzustellen, welches das Verfahren anwendet, wodurch die Anzahl von Zyklen, welche für die Ausführung sowohl der Divisions- als auch der Restbefehle benötigt werden, verringert wird, die Verarbeitungsge­ schwindigkeit verbessert wird, es ermöglicht wird die Divi­ dendendaten, welche eine willkürliche Bitlänge aufweisen, zu handhaben und die Hardwarekosten zu verringern, welche für die Ausführung sowohl der Divisions- als auch der Rest­ befehle mit Dividendendaten benötigt wird, die eine will­ kürliche Bitlänge aufweisen.
Entsprechend einem Gesichtspunkt der vorliegenden Er­ findung wird ein Datenverarbeitungsgerät bereitgestellt mit: einer Befehlsdecodiereinheit, welche einen Code entwe­ der eines daran angelegten Divisionsbefehls oder eines Restbefehls decodiert, wobei der Befehlscode ein Größenfeld zur Speicherung einer Datengrößeninformation aufweist; ei­ ner Steuereinheit, welche ein decodiertes Ergebnis von der Befehlsdecodiereinrichtung empfängt, wobei das decodierte Ergebnis die in dem Größenfeld des Befehlscodes gespei­ cherte Datengrößeninformation anzeigt, und eine Zahl, ent­ sprechend der eine Schleifeniteration auszuführen ist, wel­ che sich aus Schritten zusammensetzt, die zur Ausführung entweder des Divisionsbefehls oder des Restbefehls benötigt werden, auf der Grundlage der Datengrößeninformation vor­ einstellt; und einer arithmetischen Einheit, welche die Schleifeniteration entweder für den Divisionsbefehl oder den Restbefehl lediglich die Zahl von Malen durchführt, welche von der Steuereinrichtung voreingestellt worden ist.
Wenn der Befehlscode ein Code eines Divisionsbefehls ist, kann die Länge der Dividendendaten als die Datengrößeninformation in dem Größenfeld des Befehlscodes plaziert werden. Als Alternative kann ein Wert gleich der Länge der Daten, welche von dem Datenverarbeitungsgerät behandelt werden können, abzüglich der Länge der Dividendendaten als die Datengrößeninformation in dem Größenfeld des Befehls­ codes plaziert werden. Danach kann die Steuereinheit die Zahl, entsprechend der die für die Ausführung des Divisi­ onsbefehls benötigte Schleifeniteration von der arithmeti­ schen Einheit durchzuführen ist, auf der Grundlage der Da­ tengrößeninformation bezüglich der Dividendendaten, welche in dem Größenfeld des Befehlscodes plaziert sind, vorbe­ stimmen.
Wenn der Befehlscode ein Code eines Restbefehls ist, kann die Länge der Dividendendaten als die Datengrößenin­ formation in dem Größenfeld des Befehlscodes plaziert wer­ den. Als Alternative kann ein Wert gleich der Länge der Da­ ten, die von dem Datenverarbeitungsgerät behandelt werden können, abzüglich der Länge der Dividendendaten als die Datengrößeninformation in dem Größenfeld des Befehlscodes plaziert werden. Danach kann die Steuereinheit die Zahl, entsprechend der die für die Ausführung des Restbefehls be­ nötigte Schleifeniteration von der arithmetischen Einheit auszuführen ist, auf der Grundlage der Größeninformation bezüglich der Dividendendaten, welche in dem Größenfeld des Befehlscodes plaziert sind, vorbestimmen.
Entsprechend einem anderen Gesichtspunkt der vorliegen­ den Erfindung wird ein Datenverarbeitungsgerät bereitge­ stellt mit: einer Befehlsdecodiereinheit, welche einen Code von entweder einem daran angelegten Divisionsbefehl oder einem Restbefehl decodiert, wobei der Befehlscode ein Grö­ ßenfeld zur Speicherung einer Datengrößeninformation auf­ weist; einer Steuereinheit, welche ein decodiertes Ergebnis von der Befehlsdecodiereinheit empfängt, welches die in dem Größenfeld des Befehlscodes gespeicherte Datengrößeninfor­ mation anzeigt, und eine Zahl, entsprechend der eine Schleifeniteration, die sich aus für die Ausführung entwe­ der des Divisionsbefehls oder des Restbefehls benötigten Schritten zusammensetzt, auf der Grundlage einer nicht wie­ derherstellenden Division durchzuführen ist, auf der Grund­ lage der Datengrößeninformation voreinstellt; einer arith­ metischen Einheit, welche die Schleifeniteration für entwe­ der den Divisionsbefehl oder den Restbefehl auf der Grund­ lage der nicht wiederherstellenden Division lediglich die von der Steuereinheit voreingestellte Zahl von Malen durch­ führt; wobei die Steuereinheit eine Zahl von Bits, entspre­ chend der Dividendendaten, welche entweder dem Divisionsbe­ fehl oder dem Restbefehl zugeordnet sind, verschoben werden sollen, auf einen Wert gleich der Länge von Daten, welche von dem Datenverarbeitungsgerät behandelt werden können, abzüglich der Länge der Dividendendaten festlegt; wobei die arithmetische Einheit die Dividendendaten um die von der Steuereinrichtung voreingestellte Zahl von Bits nach links verschiebt; und die Dividendendaten, welche verschoben wor­ den sind, an die arithmetische Einrichtung als Eingangsda­ ten angelegt werden, welche zur Durchführung der Schleifen­ iteration für entweder den Divisionsbefehl oder den Restbe­ fehl auf der Grundlage der nicht wiederherstellenden Divi­ sion benötigt werden.
Wenn der Befehlscode ein Code eines Divisionsbefehls ist, kann die Länge der Dividendendaten als die Datengrö­ ßeninformation in dem Größenfeld des Befehlscodes plaziert werden. Als Alternative kann ein Wert gleich der Länge von Daten, welche von dem Datenverarbeitungsgerät behandelt werden können, abzüglich der Länge der Dividendendaten als die Datengrößeninformation in dem Größenfeld des Befehls­ codes plaziert werden.
Wenn der Befehlscode ein Code eines Restbefehls ist, kann die Länge der Dividendendaten als die Datengrößenin­ formation in dem Größenfeld des Befehlscodes plaziert wer­ den. Als Alternative kann ein Wert gleich der Länge der Daten, welche von dem Datenverarbeitungsgerät behandelt wer­ den können, abzüglich der Länge der Dividendendaten als die Datengrößeninformation in dem Größenfeld des Befehlscodes plaziert werden.
Wenn entsprechend einer bevorzugten Ausführungsform der vorliegenden Erfindung Daten, welche von dem Datenverarbei­ tungsgerät behandelt werden können, eine Länge von 2m Bit aufweisen, wobei m eine positive ganze Zahl ist, enthält die Steuereinheit einen (m + 1)-Bit-Zähler zum Zählen der Zahl, entsprechend der die Schleifeninteration von der arithmetischen Einheit wiederholt worden ist, legt einen Anfangswert des (m + 1)-Bit-Zählers auf einen Wert gleich der Länge von Daten, welche von dem Datenverarbeitungsgerät be­ handelt werden können, abzüglich der Datengrößeninformation im voraus fest und bestimmt, dass die Wiederholung der Schleife abgeschlossen ist, wenn das höchstwertige Bit des (m + 1)-Bit-Zählers sich von null auf eins ändert.
Entsprechend einem weiteren Gesichtspunkt der vorlie­ genden Erfindung wird ein Verfahren (oder Algorithmus) zur Durchführung sowohl von Divisions- als auch Restberechnun­ gen zur Verwendung mit einem Datenverarbeitungsgerät be­ reitgestellt, wobei das Verfahren die Schritte aufweist:
Schieben von Dividendendaten, welche entweder einem Divisi­ onsbefehl oder einem Restbefehl zugeordnet sind, um eine vorbestimmte Zahl von Bits entsprechend einem Wert gleich der Länge von Daten, welche von dem Datenverarbeitungsgerät behandelt werden können, abzüglich der Länge der Dividen­ dendaten nach links; Voreinstellen einer Anzahl, entspre­ chend welcher eine Schleifeniteration, die sich aus Schrit­ ten zusammensetzt, welche zur Ausführung entweder des Divi­ sionsbefehls oder des Restbefehls benötigt werden, auf der Grundlage einer nicht wiederherstellenden Division durchzu­ führen ist, auf einen Wert gleich der Länge der Dividenden­ daten; und Anwenden der Dividendendaten, welche um die vor­ bestimmte Zahl von Bits nach links verschoben worden sind, als Eingangsdaten auf die Schleife, welche auf der Grund­ lage der nicht wiederherstellenden Division wiederholt wird, zur Ausführung entweder des Divisionsbefehls oder des Restbefehls.
Die vorliegende Erfindung wird in der nachfolgenden Be­ schreibung unter Bezugnahme auf die Zeichnung erläutert.
Fig. 1 zeigt ein Blockdiagramm, welches die Struktur eines Datenverarbeitungsgeräts einer ersten Ausführungsform der vorliegenden Erfindung darstellt;
Fig. 2 zeigt ein Blockdiagramm, welches die Hardware darstellt, die für das in Fig. 1 dargestellte Datenverar­ beitungsgerät der ersten Ausführungsform zur Ausführung so­ wohl von Divisions- als auch Restbefehlen vorgesehen ist;
Fig. 3 zeigt ein Diagramm, welches einen Ort darstellt, wo Dividendendaten in ein 32-Bit-Register des in Fig. 1 dargestellten Datenverarbeitungsgeräts der ersten Ausfüh­ rungsform der vorliegenden Erfindung geladen werden;
Fig. 4 zeigt ein Flußdiagramm, welches die Ausführung einer Division durch das in Fig. 1 dargestellte Datenverar­ beitungsgerät der ersten Ausführungsform der vorliegenden Erfindung darstellt;
Fig. 5 zeigt ein Diagramm, welches den Befehlscode von sowohl Divisions- als auch Restbefehlen darstellt, welcher in dem Befehlssatz des in Fig. 1 dargestellten Datenverar­ beitungsgeräts der ersten Ausführungsform der vorliegenden Erfindung vorhanden ist;
Fig. 6 zeigt ein Diagramm, welches verschiedene Steuer­ signale zur Verwendung mit den in Fig. 2 dargestellten Hardwarekomponenten darstellt, die zur Ausführung sowohl von Divisions- als auch Restbefehlen vorgesehen sind;
Fig. 7 zeigt ein Blockdiagramm, welches die Struktur einer Schleifeniterationsvollendungserfassungseinheit des Datenverarbeitungsgeräts der ersten Ausführungsform der vorliegenden Erfindung darstellt;
Fig. 8 zeigt ein Blockdiagramm, welches die Struktur einer Schleifeniterationsvollendungserfassungseinheit eines Datenerfassungsgeräts einer zweiten Ausführungsform der vorliegenden Erfindung darstellt;
Fig. 9 zeigt eine Ansicht, welche eine Beziehung zwi­ schen den Bitlängen der Dividenden- und Divisordaten, der Zahl von Bits, um welche die Dividenddaten nach links zu verschieben sind, und dem Anfangswert darstellt, welcher für einen Zähler festgelegt wird;
Fig. 10 zeigt ein Diagramm, welches den Code von sowohl den Divisions- und Restbefehlen darstellt, welche in einem von einem Datenverarbeitungsgerät nach dem Stand der Tech­ nik bereitgestellten Befehlssatz enthalten ist;
Fig. 11 zeigt ein Flußdiagramm, welches einen Divisi­ onsalgorithmus darstellt, der von Datenverarbeitungsgeräten nach dem Stand der Technik angenommen wird; und
Fig. 12 zeigt ein Blockdiagramm, welches die Hardware darstellt, die zur Durchführung des in Fig. 11 dargestell­ ten Divisionsalgorithmus benötigt wird.
Erste Ausführungsform
Fig. 1 zeigt ein Blockdiagramm, welches die Struktur eines Datenverarbeitungsgeräts wie eines Mikroprozessors einer ersten Ausführungsform der vorliegenden Erfindung darstellt. Entsprechend der Figur bezeichnet Bezugszeichen 1 eine Steuereinheit zur Steuerung des Datenverarbeitungsgeräts, Bezugszeichen 2 bezeichnet eine Befehlsdecodierein­ heit, Bezugszeichen 3 bezeichnet eine Befehlsheranholein­ heit, Bezugszeichen 4 bezeichnet eine Befehlswarteschlan­ geneinheit, Bezugszeichen 5 bezeichnet eine Adressenerzeu­ gungseinheit, Bezugszeichen 6 bezeichnet einen Programmzäh­ ler oder PC, Bezugszeichen 7 bezeichnet einen universellen Registerordner, Bezugszeichen 8 bezeichnet eine arithmeti­ sche Einheit, Bezugszeichen 9 bezeichnet einen Datenwähler, Bezugszeichen 10 bezeichnet eine periphere Schaltung, Be­ zugszeichen 11 bezeichnet einen Speicher, und Bezugszeichen 12 bezeichnet eine Busschnittstelle. Die oben beschriebenen Komponenten des Datenverarbeitungsgeräts sind mittels eines internen Busses S1, S2 und D1 und dem Datenbus 13 miteinan­ der verbunden. Die arithmetische Einheit 8 enthält eine ALU-Einheit 81, eine Schiebeeinheit 82, eine Lade bzw. Lastspeichereinheit (load store unit) 83 und einen Multi­ plizierer 84.
Die Busschnittstelle 12 kann das Datenverarbeitungsge­ rät entweder mit einem (nicht dargestellten) externen Spei­ cher oder einem (nicht dargestellten) peripheren Gerät mit­ tels des Datenbusses entsprechend einem daran angelegten Steuersignal verbinden.
Der universelle Ordner (file) 7 weist 32 Bits in der Breite auf und besteht aus einer Gruppe von 16 Registern. Der universelle Ordner 7 kann Divisor- und Dividendendaten speichern, welche von dem Datenverarbeitungsgerät der vor­ liegenden Ausführungsform behandelt werden können.
Die Befehlsdecodiereinheit 2 setzt sich zusammen aus einem (nicht dargestellten) Befehlsdecodiereingangslatch und einem (nicht dargestellten) Befehlsdecoder. Das Be­ fehlsdecodiereingangslatch empfängt einen Befehlscode von der Befehlsheranholeinheit 3 und speichert den Befehlscode. Das Befehlsdecodiereingangslatch liefert ebenfalls ein si­ gnifikantes Teil der 32-Bit-Struktur des in dem Befehlsdecodiereingangslatch gespeicherten Befehlscodes. Der Be­ fehlsdecoder decodiert danach den Befehlscode und liefert das decodierte Ergebnis der Steuereinheit 1.
Die Steuereinheit 1 steuert alle Komponenten des Daten­ verarbeitungsgeräts entsprechend dem decodierten Ergebnis des von der Befehlsdecodiereinheit 2 gelieferten Befehls­ codes. Die Adressenerzeugungseinheit 5 setzt sich zusammen aus einer (nicht dargestellten) Verschiebeeinrichtung und einem (nicht dargestellten) Addierer und berechnet eine Adresse für einen Abzweigungsbefehl entsprechend einer Adressierbetriebsart.
Fig. 2 zeigt ein Blockdiagramm, welches eine für das in Fig. 1 dargestellte Datenverarbeitungsgerät der ersten Aus­ führungsform vorgesehene Hardware zur Ausführung sowohl ei­ nes Divisionsbefehls als auch eines Restbefehls darstellt. Entsprechend Fig. 2 bezeichnet Bezugszeichen 21 ein Restre­ gister, Bezugszeichen 211 bezeichnet ein innerhalb des Restregisters 21 angeordnetes erweitertes Register, Bezugs­ zeichen 22 bezeichnet eine Steuerlogikeinheit zur Steuerung der Ausführung entweder eines Divisionsbefehls oder eines Restbefehls, und Bezugszeichen 811 bezeichnet eine arithme­ tische Einheit oder ALU, welche die ALU-Einheit 81 bildet. Die Steuerlogikeinheit 22 kann in der in Fig. 1 dargestell­ ten Steuereinheit 1 aufgenommen werden.
Als nächstes wird der Betrieb des Datenverarbeitungsge­ räts der ersten Ausführungsform der vorliegenden Erfindung unter der Annahme beschrieben, dass sowohl der Dividend als auch der Devisor positive Zahlen sind. Das in Fig. 1 darge­ stellte Datenverarbeitungsgerät der ersten Ausführungsform der vorliegenden Erfindung kann Daten wie die Dividenddaten verarbeiten, welche eine willkürliche Bitlänge verarbeiten, d. h. n-Bit-Daten. Da jedoch Daten, welche von dem Datenver­ arbeitungsgerät der ersten Ausführungsform behandelt werden können, beispielsweise eine Länge von 32 Bit aufweisen, muss die Bitlängen der Dividendendaten eine ganze Zahl sein, welche der folgenden Ungleichung genügt: 0 < n ≦ 32.
Fig. 3 zeigt ein Diagramm, welches einen Ort darstellt, wo die Dividendendaten in einem 32-Bit-Register des in Fig. 1 dargestellten Datenverarbeitungsgeräts der ersten Ausfüh­ rungsform der vorliegenden Erfindung geladen werden. Bei der Ausführung entweder eines Divisionsbefehls oder eines Restbefehls bei dem Datenverarbeitungsgerät der ersten Aus­ führungsform werden n-Bit-Dividendendaten geladen und in einem n-Bit-Bereich vom Bit (32 - n) bis zum Bit 31 des 32- Bit-Registers wie in Fig. 3 dargestellt plaziert.
Fig. 4 zeigt ein Flußdiagramm, welches die Ausführung einer Division durch das in Fig. 1 dargestellte Datenverar­ beitungsgerät der ersten Ausführungsform darstellt. Fig. 5 zeigt ein Diagramm, welches den Befehlscode von sowohl den Divisons- als auch den Restbefehlen darstellt, welche in dem Befehlssatz des in Fig. 1 dargestellten Datenverarbei­ tungsgeräts enthalten sind. Entsprechend der Figur bezeich­ net Bezugszeichen OP1 einen ersten Operandencode, OP2 be­ zeichnet einen zweiten Operandencode, Bezugszeichen R1 be­ zeichnet eine Zielregisteridentifizierung, Bezugszeichen R2 bezeichnet eine Quellenregisteridentifizierung, und Bezugs­ zeichen S bezeichnet ein Größenfeld.
Sowohl die Divisions- als auch Restbefehle, welche von dem in Fig. 1 dargestellten Datenverarbeitungsgerät ausge­ führt werden können, können Ziel- und Quellenregister unter Verwendung von ihren Zielregister- und Quellenregisteriden­ tifizierungen identifizieren. Beispielsweise kann bei der Ausführung eines Datenbefehls das Datenverarbeitungsgerät ein erstes Register, welches den Dividenden speichert, auf der Grundlage der Zielregisteridentifizierung R1 des Divi­ sionsbefehls identifizieren, ein zweites Register, welches den Devisor speichert, auf der Grundlage der Quellenregi­ steridentifizierung R2 des Divisionsbefehls identifizieren und das Divisionsergebnis in dem ersten Register speichern, welches von der Zielregisteridentifizierung R1 identifi­ ziert worden ist. Darüber hinaus kann das Datenverarbei­ tungsgerät Informationen bezüglich der Größe der Dividen­ dendaten in dem Größenfeld des Divisionsbefehls speichern. Auf diese Weise verwendet das Datenverarbeitungsgerät der ersten Ausführungsform der vorliegenden Erfindung ein Teil des Konstantzahlabschnitts C des Befehlscodes sowohl der Division- als auch der Restbefehle als das Größenfeld S, wohingegen nach dem Stand der Technik sowohl die Divisions- als auch Restbefehle keine in dem Konstantzahlabschnitt C plazierten Informationen verwenden. Danach speichert das Datenverarbeitungsgerät die Informationen bezüglich der Größe des Dividenden in dem Größenfeld S.
Fig. 6 zeigt ein Diagramm, welches verschiedene Steuer­ signale zur Verwendung mit den in Fig. 2 dargestellten Hardwarekomponenten darstellt, welche für die Ausführung sowohl der Divisions- als auch der Restbefehle bereitge­ stellt werden.
Die Befehlsdecodiereinheit 2 decodiert den Befehlscode und liefert das decodierte Ergebnis dem Steuerlogikab­ schnitt 22 der Steuereinheit. Wenn das decodierte Ergebnis anzeigt, dass der Befehlscode entweder ein Divisionsbe­ fehlscode oder ein Restbefehlscode ist, beginnt der Steuer­ logikabschnitt 22 mit der Ausführung entweder des Divisi­ onsbefehls oder des Restbefehls. In diesem Fall speichert der universelle Ordner 7 Dividenden- und Divisordaten, wel­ che entweder dem Divisionsbefehlscode oder dem Restbe­ fehlscode zugeordnet sind. Der universelle Ordner 7 enthält ein Register, welches die Divisordaten speichert, welches hiernach als Divisorregister bezeichnet wird.
Die Dividenden- und Divisordaten können auf den inter­ nen Bussen S1 und S2 von dem universellen Ordner 7 ausge­ sendet werden. Der Steuerlogikabschnitt 22 der Steuereinheit 1 kann den Betrieb der arithmetischen Einheit 8 steu­ ern und eine Schleifeniterationsvollendungser­ fassungseinheit 70 starten, welche innerhalb des Steuerlo­ gikabschnitts 22 angeordnet ist.
Fig. 7 zeigt ein Blockdiagramm, welches die Struktur der Schleifeniterationsvollendungserfassungseinheit 70 dar­ stellt. Entsprechend der Figur bezeichnet Bezugszeichen 71 einen Zähler zum Zählen der Zahl entsprechend der durchge­ führten einen Schleifeniteration, welche unten beschrieben wird, Bezugszeichen 72 bezeichnet ein Schleifenzahlsteuer­ register bzw. Schleifenzeitensteuerregister (loop times control register), und Bezugszeichen 73 bezeichnet einen Komparator.
Die Ausführung sowohl von Divisions als auch Restbefeh­ len durch die ALU-Einheit 81 erzeugt ein arithmetisches Er­ gebnis, welches in einem 64-Bit-Restregister 21 gespeichert wird. Das Restregister 21 setzt sich zusammen aus einem 32- Bit-Register zur Speicherung des Quotienten, der sich aus der Ausführung sowohl von Divisons- als auch Restbefehlen ergibt, wobei das 32-Bit-Register in der linken Hälfte des Restregisters 21 lokalisiert ist, und dem erweiterten Regi­ ster 211 zur Speicherung des Rests, der sich aus der Aus­ führung sowohl von Divisions- als auch Restbefehlen ergibt. Das in dem Restregister 21 gespeicherte arithmetische Er­ gebnis wird weiter in den universellen Registerordner 7 mittels des internen Busses D1 geladen.
Als nächstes wird ein Verfahren (oder Algorithmus) zur Ausführung sowohl von Divisions- als auch Restbefehlen zur Verwendung mit dem Datenverarbeitungsgerät mit den oben be­ schriebenen Merkmalen bezüglich des in Fig. 4 dargestellten Flußdiagrammes gegeben.
Die Befehlsdecodiereinheit 2 decodiert den Befehlscode sowohl von Divisions- als auch Restbefehlen zuerst. Danach stellt die Befehlsdecodiereinheit 2 das decodierte Ergebnis dem Steuerlogikabschnitt 22 bereit. Wenn das decodierte Er­ gebnis anzeigt, dass der decodierte Befehl ein Divisionsbe­ fehl oder Restbefehl ist, beginnt der Steuerlogikabschnitt 22 mit der Ausführung einer Division. Danach erlangt der Steuerlogikabschnitt 22 Informationen bezüglich der Größe der Dividendendaten von dem Größenfeld S des Befehlscodes wieder. Der Steuerlogikabschnitt 22 substrahiert die Länge der Dividendendaten von der Länge (beispielsweise 32 Bit) von Daten, welche von dem Datenverarbeitungsgerät wie einem Mikroprozessor behandelt werden können und bestimmt danach die Zahl von Bits, um welche die Dividendendaten zu ver­ schieben sind, für das Subtraktionsergebnis, beispielsweise (32 - n), wobei n die Länge der Dividendendaten darstellt. Der Steuerlogikabschnitt sendet Schiebebreitendaten, welche die Anzahl von Bits anzeigen, beispielsweise (32 - n), um welche die Dividendendaten verschoben werden müssen, auf den internen Bus S2 aus und liest danach die Dividendenda­ ten von dem universellen Registerordner 7 und sendet die Dividendendaten auf den internen Bus S1 aus.
Die Schiebebreiten- und die Didvidendendaten werden da­ nach über die Pfade SF1 und SF2 der Verschiebeeinrichtung 82 geliefert. Ein von dem Steuerlogikabschnitt 22 geliefer­ tes Steuersignal CTS sorgt dafür, dass die Verschiebeein­ richtung 82 die daran angelegten Dividendendaten entspre­ chend den Schiebebreitendaten entsprechend nach links ver­ schiebt. Die durch die Verschiebeeinrichtung 82 werden über einen Pfad SF3 in das erweiterte Register 211 innerhalb des Restregisters 21 geladen. Alle Bits (beispielsweise 32 Bits) in der linken Hälfte des Restregisters 21 werden auf null gesetzt.
Auf diese Weise verschiebt die Verschiebeeinrichtung 82 in dem Schritt ST41 unter Steuerung des Steuerlogikab­ schnitts 22 die Dividendendaten (32 - n) Bits nach links, um nicht benötigte Daten zu überspringen, und lädt danach die verschobenen Dividendendaten in das erweiterte Register 211. Die Verschiebeeinrichtung 82 legt des weiteren alle 32 Bit in der linken Hälfte des Restregisters 21 auf null fest.
Die Steuerlogikeinheit 22 liefert danach in dem Schritt ST42 die Steuersignale CT1 und CT2 dem Restregister 21, um das Restregister 21 dazu zu veranlassen die darin gespei­ cherten Daten um eine Bitposition nach links zu verschie­ ben. Das Steuersignal CT1 zeigt die Richtung, in welche die in dem Restregister gespeicherten Daten zu verschieben sind. Das andere Steuersignal CT2 zeigt in dem LSB des Restregisters zu speichernde Daten an.
Als nächstes wird ein iterativer Prozess gestartet, der aus einer Mehrzahl von Schritten besteht. Zuerst wird ein Anfangswert von null für den Zähler 71 festgelegt, welcher innerhalb der in Fig. 7 dargestellten Schleifeniterations­ vollendungserfassungseinheit 70 angeordnet ist. Danach liest die Steuerlogikeinheit 22 die Divisordaten von einem (nicht dargestellten) Divisorregister des universellen Re­ gisterordners 7 und sendet die Divisordaten auf dem inter­ nen Bus S2 aus. Die Divisordaten werden über einen Pfad AU2 der ALU 811 der ALU-Einheit 81 übertragen. Mit anderen Wor­ ten, es werden die in der 32 Bits breiten linken Hälfte des Restregisters 21 gespeicherten Daten der ALU 811 über einen Pfad AU1 übertragen. Die ALU 811 führt danach einen Sub­ traktionsprozess im Ansprechen auf ein von der Steuerlo­ gikeinheit 22 erzeugtes Steuersignal CTA aus. In diesem Fall subtrahiert die ALU 811 die daran über den Pfad AU2 angelegten Daten von den daran über den Pfad AU1 angelegten anderen Daten. Das arithmetische Ergebnis wird danach in der 32 Bits breiten linken Hälfte des Restregisters 21 ge­ speichert.
Auf diese Weise subtrahiert die ALU 811 in dem Schritt ST43 den in dem (nicht dargestellten) Divisorregister innerhalb des universellen Registerordners 7 gespeicherten Divisor von dem Inhalt der 32 Bits breiten linken Hälfte des Restregisters 21 und lädt danach das Subtraktionsergeb­ nis in die 32 Bits breite linke Hälfte des Restregisters 21.
Danach bestimmt die Steuerlogik 22 in dem Schritt ST44, ob der Rest gleich oder größer als null ist. Die Steuerlo­ gikeinheit erlangt das höchstwertige Bit bzw. das MSB des Subtraktionsergebnisses als ein Steuersignal DVSGN. Wenn das Steuersignal DVSGN sich auf einem Zustand 0 befindet, welcher anzeigt, dass der Rest gleich oder größer als null ist, begibt sich der Operationsfluss des Datenverarbei­ tungsgeräts zu dem Schritt ST45. Wenn demgegenüber sich das Steuersignal DVSGN in dem Zustand 1 befindet, welcher an­ zeigt, dass der Rest kleiner als null ist, begibt sich der Operationsfluss des Datenverarbeitungsgeräts zu dem Schritt ST46.
Die Steuereinheit 22 erzeugt in dem Schritt ST45 ein Steuersignal CT1, welches anzeigt, dass in dem Restregister 21 gespeicherten Daten um eine Bitposition nach links zu verschieben sind, und ein Steuersignal CT2 in einem Zustand 1, welcher anzeigt, dass das niederwertigste Bit bzw. das LSB des Restregisters 21 auf eins zu setzen ist. Als Ergeb­ nis werden die in dem Restregister 21 gespeicherten Daten um eine Bitposition nach links geschoben, und es wird ein neues Bit an einer weit rechts befindlichen Position des Restregisters 21 auf eins gesetzt. Danach begibt sich die Steuerlogikeinheit 22 zu dem Schritt ST47. Demgegenüber überträgt die Steuerlogikeinheit 22 in dem Schritt ST46 die Divisordaten von dem internen Bus S5 der ALU 811 über den Pfad AU2. Die in der linken Hälfte des Restregisters 21 ge­ speicherten Daten werden ebenfalls der ALU 811 über den Pfad AU1 übertragen. Danach summiert die ALU 811 die über den Pfad AU1 daran angelegten Daten und die über den Pfad AU2 daran angelegten anderen Daten. Mit anderen Worten, die ALU 811 addiert den Wert des (nicht dargestellten) Divisor­ registers zu den in die linke Hälfte des Restregisters 21 geladenen Daten unter der Steuerung des Steuerlogikab­ schnitts 22, so dass der Inhalt des Restregisters 21 auf den vorhergehenden Wert zurückkehrt, den das Restregister 21 unmittelbar vor der Durchführung der Subtraktion in dem Schritt ST43 innehatte, und speichert danach das Additions­ ergebnis in der 32 Bit breiten linken Hälfte des Restregi­ sters 21. Die Steuerlogikeinheit 22 erzeugt danach ein Steuersignal CT1, welches anzeigt, dass die in dem Restre­ gister 21 gespeicherten Daten um eine Bitposition nach links zu schieben sind, und ein anderes Steuersignal CT2 in einem Zustand 0, wodurch anzeigt wird, dass das LSB des Restregisters 21 auf null zu setzen ist. Mit anderen Wor­ ten, die in dem Restregister 21 gespeicherten Daten werden um eine Bitposition nach links geschoben, und ein neues Bit an der weit rechts befindlichen Position des Restregisters 21 wird auf null gesetzt. Danach begibt sich die Steuerlo­ gikeinheit 22 zu dem Schritt ST47.
Bei der Durchführung des Schritts ST47 bestimmt der Steuerlogikabschnitt 22, ob die Zahl, entsprechend der die Schleifeniteration der Mehrzahl von Schritte ST43 bis ST47 ausgeführt worden ist, gleich oder größer als n ist. Wenn die Anzahl, entsprechend der der Iterationsprozess wieder­ holt worden ist, kleiner als n ist, kehrt die Steuerlo­ gikeinheit zu dem Schritt ST43 zurück, bei welchem der nächste Iterationsprozess wie oben beschrieben ausgeführt wird. Mit anderen Worten, die Steuerlogikeinheit führt die Schleifeniteration, welche sich aus den Schritten ST43 bis ST47 zusammensetzt, n-mal aus. Wenn demgegenüber die Schleifeniteration n-mal ausgeführt worden ist, begibt sich die Steuerlogikeinheit zu dem Schritt ST48.
Danach erzeugt die Steuerlogikeinheit 22 in dem Schritt ST48 ein Steuersignal CT 1, welches anzeigt, dass die in dem Restregister 21 gespeicherten Daten um eine Bitposition nach rechts zu schieben sind. Als Ergebnis werden die in dem Restregister 21 gespeicherten Daten um eine Bitposition nach rechts geschoben. Wenn ein Divisionsbefehl ausgeführt wird, werden die in dem erweiterten Register 211 gespei­ cherten Daten (d. h. der Quotient) über einen Pfad OUT1 auf dem internen Bus D1 ausgesendet. Wenn ein Restbefehl ausge­ führt wird, werden die in dem Restregister 21 gespeicherten Daten (d. h. der Rest) über einen Pfad OUT2 auf dem internen Bus D1 ausgesendet. Das arithmetische Ergebnis wird danach einem Register übertragen und darin gespeichert, welches durch die Zielregisteridentifizierung des Befehlscodes über den internen Bus D1 identifiziert wird.
Die Schleifeniterationsvollendungserfassungseinheit 70, welche die Vollendung aller von der ALU 801 durchgeführten notwendigen Schleifeniterationen wie oben erwähnt erfasst, handhabt die Zahl, entsprechend der der Iterationsprozess wiederholt worden ist, auf die folgende Weise. Das Schlei­ fenzahlsteuerregister 72 ist ein Register zur Speicherung der Zahl, entsprechend der die Schleifeniteration basierend auf der nicht wiederherstellenden Division ausgeführt wer­ den kann. Der Zähler 71 erhöht sich selbst jedes Mal um eins, wenn die Schleifeniteration, welche sich aus den Schritten ST43 bis ST47 zusammensetzt, einmal ausgeführt wird. Wenn Daten, welche von dem in Fig. 1 dargestellten Datenverarbeitungsgerät der ersten Ausführungsform der vor­ liegenden Erfindung gehandhabt werden können, eine Länge von 32 Bits aufweisen, muss die Größe n der Dividendendaten größer als 0 und gleich oder kleiner als 32 sein, und daher beträgt die maximale Zahl, entsprechend der die Schleifen­ iteration, welche sich aus den Schritten ST43 bis ST47 zu­ sammensetzt, durchgeführt werden kann, 32. Der Zähler 71 muss somit bis 32 heraufzählen und kann daher ein 6-Bit- Zähler sein, welcher zum Heraufzählen bis 32 = 25 hinrei­ chend ist. Der Komparator 73 vergleicht den Inhalt des Schleifenzahlsteuerregisters 72 mit dem Zählwert des Zäh­ lers 71 und liefert ein Schleifeniterationsvollendungssignal, welches ein Steuersignal ist, um die Steuerlogikein­ heit anzuweisen die Durchführung des Iterationsprozesses zu stoppen, wenn der Inhalt des Schleifenzahlsteuerregisters 72 mit dem Zählwert des Zählers 71 übereinstimmt.
Die Schleifeniterationsvollendungserfassungseinheit 70 erfasst die Vollendung des Iterationsprozesses auf die fol­ gende Weise. Zuerst erlangt die Befehlsdecodiereinheit 2 die Information bezüglich der Größe der Dividendendaten von dem Größenfeld S des Befehlscodes entweder von Divisions- oder Restbefehlen und erzeugt danach ein Signal, welches die Information bezüglich der Größe der Dividendendaten an­ zeigt. Der Anfangswert des Zählers 71 wird danach auf null festgelegt. Die Befehlsdecodiereinheit 2 liefert das Si­ gnal, welches die Information bezüglich der Größe der Divi­ dendendaten anzeigt, dem Schleifenzahlsteuerregister 72. Jedes Mal, wenn die Schleifeniteration, welche sich aus der Mehrzahl von Schritten zusammensetzt, einmal ausgeführt wird, inkrementiert sich der Zähler 71 selbst um eins. Der Komparator 73 erzeugt das Schleifeniterationsvollendungssi­ gnal, wenn der Wert des Zählers 71 mit dem Inhalt des Schleifenzahlsteuerregisters 72 übereinstimmt. Die Steuer­ logikeinheit beendet somit den Iterationsprozess.
Wie oben beschrieben kann bei der ersten Ausführungs­ form der vorliegenden Erfindung die Information bezüglich der Größe eines Dividenden in dem Größenfeld S gespeichert werden, welches in einem Konstantzahlabschnitt des Befehls­ codes sowohl von Divisions- als auch Restbefehlen vorgese­ hen ist. Anders als bei Datenverarbeitungsgeräten nach dem Stand der Technik kann dementsprechend das Datenverarbei­ tungsgerät der ersten Ausführungsform die Zahl festlegen, entsprechend der die Schleifeniteration basierend auf der nicht wiederherstellenden Division zur Durchführung einer Divisions- oder Restberechnung auf einen optimalen Wert entsprechend der signifikanten Bitbreite der Dividendenda­ ten durchgeführt wird, ohne dass die Zahl auf einen festen Wert festgelegt werden muss, wodurch die Zahl von Zyklen verringert wird, die zur Ausführung sowohl von Divisions- als auch Restbefehlen benötigt wird. Das Datenverarbei­ tungsgerät der ersten Ausführungsform kann somit Dividen­ dendaten einer willkürlichen Größe handhaben, während Da­ tenverarbeitungsgeräte nach dem Stand der Technik lediglich Daten mit einer festen Länge handhaben. Darüber hinaus kön­ nen die Kosten der für die Verarbeitung der Dividendendaten mit willkürlicher Größe benötigten Hardware verringert wer­ den.
Zweite Ausführungsform
Fig. 8 zeigt ein Blockdiagramm, welches die Struktur einer Schleifeniterationsvollendungserfassungseinheit 800 eines Datenverarbeitungsgeräts einer zweiten Ausführungs­ form der vorliegenden Erfindung darstellt. Entsprechend der Figur bezeichnet Bezugszeichen 801 einen Zähler, der inner­ halb der Schleifeniterationsvollendungserfassungseinheit angeordnet ist. Die anderen Komponenten des Datenverarbei­ tungsgeräts der zweiten Ausführungsform, welche mit densel­ ben Bezugszeichen wie in Fig. 1 und 2 bezeichnet sind, sind dieselben wie jene des Datenverarbeitungsgeräts der oben beschriebenen ersten Ausführungsform, und daher wird die Beschreibung der anderen Komponenten hiernach ausgelas­ sen.
Bei dem Datenverarbeitungsgerät der zweiten Ausfüh­ rungsform kann ein Wert gleich der Größe von Daten, welche von dem Datenverarbeitungsgerät gehandhabt werden können, abzüglich der Größe der Dividendendaten in dem Größenfeld S des Befehlscodes sowohl von Divisions- als auch Restbefeh­ len wie in Fig. 5 dargestellt vorgespeichert werden. Wenn Daten, welche von dem Datenverarbeitungsgerät gehandhabt werden können, eine Länge von 32 Bit besitzen, beträgt der in dem Größenfeld des Befehlscodes gespeicherte Wert (32 - n), wobei n die Größe der Dividendendaten darstellt.
Eine Schiebeeinheit 82 schiebt die daran angelegten Di­ videndendaten über einen Pfad SF in die durch ein Steuersi­ gnal CTS bestimmte Richtung (d. h. nach links), und um die Zahl von Bitpositionen, welche durch die in dem Größenfeld S gespeicherte Information spezifiziert ist, welche daran über einen Pfad SF1 angelegt werden, und lädt danach die verschobenen Dividendendaten in ein Restregister 21. Das Datenverarbeitungsgerät der zweiten Ausführungsform braucht somit nicht eine Information bezüglich der Größe der Divi­ dendendaten von dem Größenfeld S des Befehlscodes wiederer­ langen und subtrahiert die Länge der Dividendendaten von der Länge (beispielsweise 32 Bits) von Daten, welche von dem Datenverarbeitungsgerät wie einem Mikroprozessor ge­ handhabt werden können, um die Zahl von Bits zu berechnen, um die die Dividendendaten zu verschieben sind (beispielsweise 32 - n), wobei n die Länge der Dividendenda­ ten darstellt, anders als das Datenverarbeitungsgerät der oben beschriebenen ersten Ausführungsform. Dementsprechend kann die zweite Ausführungsform den Hardwareanteil und die zur Ausführung sowohl von Divisions- als auch von Restbe­ fehlen benötigte Zeit verringern.
Der Zähler 801 besitzt dieselbe Größe wie der Zähler 71 des Datenverarbeitungsgeräts der ersten Ausführungsform. Mit anderen Worten, wenn Daten, welche von dem Datenverar­ beitungsgerät der zweiten Ausführungsform der vorliegenden Erfindung gehandhabt werden können, eine Länge von 32 Bits besitzen, muss die Größe n der Dividendendaten größer als 0 und gleich oder kleiner als 32 sein, und daher ist die Ma­ ximalzahl, entsprechend der eine Schleifeniteration auf der Grundlage der nicht wiederherstellenden Division durchge­ führt werden kann, 32. Der Zähler 801 muss somit bis 32 heraufgezählt werden und kann daher ein 6-Bit-Zähler sein, was zum Heraufzählen bis 32 = 25 ausreichend ist. Der An­ fangswert des Zählers 801 wird auf (32 - n) festgelegt. Das MSB des Zählers 801 besitzt einen Anfangswert von null.
Wenn das MSB des Zählers 801 von null zu eins wird, zeigt der Zähler 801 ein Schleifeniterationsvollendungssignal, welches anzeigt, dass der Iterationsprozess vollendet ist.
Fig. 9 zeigt eine Ansicht, welche eine Beziehung zwi­ schen den Bitlängen der Dividenden- und Devisordaten, der Anzahl von Bits, um welche die Dividendendaten nach links zu verschieben sind, und dem Anfangswert, der für den Zäh­ ler 801 festgelegt wird. Die Befehlsdecodiereinheit 2 deco­ diert den Befehlscode zuerst. Das codierte Ergebnis wird einem Steuerlogikabschnitt 22 übertragen. Danach erlangt der Steuerlogikabschnitt 22 eine Information, welche die Anzahl von Bits anzeigt, um welche die die Dividendendaten zu verschieben sind, von dem Größenfeld S des Befehlscodes wie in Fig. 5 dargestellt wieder und erzeugt ein Signal, welches den Verschiebebetrag anzeigt. Der Steuerlogikab­ schnitt 22 liefert das Signal dem Zähler 801, um einen An­ fangswert entsprechend dem Wert des Signals für den Zähler 801 festzulegen.
Jedes Mal, wenn die Schleifeniteration von dem Schritt ST43 zu dem Schritt ST47 von Fig. 4 einmal durchgeführt wird, inkrementiert der Zähler 801 sich selbst um eins. Nachdem die Schleifeniteration n-mal durchgeführt worden ist, erreicht der Zähler 801 32 und wird das MSB des Zäh­ lers 801 von null auf eins verändert. Als Ergebnis zeigt der Zähler 801 das Schleifeniterationsvollendungssignal.
Wie oben beschrieben kann bei der zweiten Ausführungs­ farm das Datenverarbeitungsgerät einen Wert gleich der Größe der Daten, welche von dem Datenverarbeitungsgerät ge­ handhabt werden können, abzüglich der Dividendendaten in dem Größenfeld S des Befehlscodes von sowohl Divisions- als auch Restbefehlen speichern. Das Datenverarbeitungsgerät der zweiten Ausführungsform braucht nicht eine Information bezüglich der Größe der Dividendendaten von dem Größenfeld S des Befehlscodes wiedererlangen und die Länge der Dividendendaten von der Länge (beispielsweise 32 Bits) der Da­ ten zu subtrahieren, welche von dem Datenverarbeitungsgerät behandelt werden können, um die Zahl von Bits zu berechnen, um welche die Dividendendaten zu verschieben sind, bei­ spielsweise (32 - n), wobei n die Länge der Dividendendaten darstellt, anders als bei dem Datenverarbeitungsgerät der oben beschriebenen ersten Ausführungsform. Bei dem Daten­ verarbeitungsgerät kann somit der Zähler 801 das Schleifen­ iterationsvollendungssignal, welches sich zeigt, wenn das MSB des Zählers 801 sich von null auf eins ändert, durch Festlegen des Anfangswerts des Zählers 801 auf die Größe der Daten, welche von dem Datenverarbeitungsgerät behandelt werden können, abzüglich der Größe von Dividendendaten er­ zeugen, welches in dem Größenfeld S des Befehlscodes ge­ speichert wird.
Vorstehend wurden ein Verfahren zur Ausführung sowohl von Divisions- als auch Restbefehlen und ein Datenverarbei­ tungsgerät offenbart, welches das Verfahren anwendet. Ein Datenverarbeitungsgerät enthält eine Befehlsdecodiereinheit (2), welche einen Code von entweder einem daran angelegten Divisionsbefehl oder einem Restbefehl decodiert, wobei der Befehlscode ein Größenfeld zur Speicherung einer Datengrö­ ßeinformation aufweist. Wenn eine Steuereinheit (1) ein de­ codiertes Ergebnis von der Befehlsdecodiereinheit empfängt, wobei das decodierte Ergebnis die in dem Größenfeld des Be­ fehlscodes gespeicherte Datengrößeninformation anzeigt, stellt sie eine Zahl, entsprechend welcher eine Schleifen­ iteration, die sich aus Schritten zusammensetzt, welche zur Ausführung von entweder des Divisionsbefehls oder des Rest­ befehls benötigt werden, durchzuführen ist, auf der Grund­ lage der Datengrößeninformation im voraus ein. Eine inner­ halb einer arithmetischen Einheit (8) angeordnete ALU führt die Schleifeniteration für entweder den Divisionsbefehl oder den Restbefehl lediglich die von der Steuereinheit voreingestellte Zahl aus.

Claims (12)

1. Datenverarbeitungsgerät mit:
einer Befehlsdecodiereinrichtung (2), welche einen Code entweder eines daran angelegten Divisionsbefehls oder eines Restbefehls decodiert, wobei der Befehlscode ein Grö­ ßenfeld zur Speicherung einer Datengrößeninformation auf­ weist;
einer Steuereinrichtung (1), welche ein decodiertes Ergebnis von der Befehlsdecodiereinrichtung empfängt, wobei das decodierte Ergebnis die in dem Größenfeld des Befehls­ codes gespeicherte Datengrößeninformation anzeigt, und eine Zahl, entsprechend der eine Schleifeniteration auszuführen ist, welche sich aus Schritten zusammensetzt, die zur Aus­ führung entweder des Divisionsbefehls oder des Restbefehls benötigt werden, auf der Grundlage der Datengrößeninforma­ tion voreinstellt; und
einer arithmetischen Einrichtung (8), welche die Schleifeniteration entweder für den Divisionsbefehl oder den Restbefehl lediglich die Zahl von Malen durchführt, welche von der Steuereinrichtung voreingestellt worden ist.
2. Datenverarbeitungsgerät nach Anspruch 1, dadurch ge­ kennzeichnet, dass dann, wenn der Befehlscode ein Code ei­ nes Divisionsbefehls ist, die Länge von Dividendendaten als die Datengrößeninformation in dem Größenfeld des Befehls­ codes plaziert wird und dass die Steuereinrichtung die Zahl, entsprechend welcher die für die Ausführung des Divi­ sionsbefehls benötigte Schleifeniteration von der arithme­ tischen Einrichtung durchzuführen ist, auf der Grundlage der Datengrößeninformation bezüglich der in dem Größenfeld des Befehlscodes plazierten Dividendendaten voreinstellt.
3. Datenverarbeitungsgerät nach Anspruch 1, dadurch ge­ kennzeichnet, dass dann, wenn der Befehlscode ein Code ei­ nes Restbefehls ist, die Länge von Dividendendaten als Da­ tengrößeninformation in dem Größenfeld des Befehlscodes plaziert wird und dass die Steuereinrichtung die Zahl, ent­ sprechend welcher die für die Ausführung des Restbefehls benötigte Schleifeniteration durch die arithmetische durch­ zuführen ist, auf der Grundlage der Datengrößeninformation bezüglich der in dem Größenfeld des Befehlscodes plazierten Dividendendaten voreinstellt.
4. Datenverarbeitungsgerät nach Anspruch 1, dadurch ge­ kennzeichnet, dass dann, wenn der Befehlscode ein Code ei­ nes Divisionsbefehl ist, ein Wert gleich der Länge der Da­ ten, welche von dem Datenverarbeitungsgerät behandelt wer­ den können, abzüglich der Länge von Dividendendaten als die Datengrößeninformation in dem Größenfeld des Befehlscodes plaziert wird und dass die Steuereinrichtung die Zahl, ent­ sprechend welcher die für die Ausführung des Divisionsbe­ fehls benötigte Schleifeniteration von der arithmetischen Einrichtung durchzuführen ist, auf der Grundlage der Daten­ größeninformation bezüglich der in dem Größenfeld des Be­ fehlscodes plazierten Dividendendaten voreinstellt.
5. Datenverarbeitungsgerät nach Anspruch 1, dadurch ge­ kennzeichnet, dass dann, wenn der Befehlscode ein Code ei­ nes Restbefehls ist, ein Wert gleich der Länge von Daten, welche von dem Datenverarbeitungsgerät behandelt werden können, abzüglich der Länge von Dividendendaten als die Da­ tengrößeninformation in dem Größenfeld des Befehlscodes plaziert wird und dass die Steuereinrichtung die Zahl, ent­ sprechend welcher die für die Ausführung des Restbefehls benötigte Schleifeniteration von der arithmetischen Ein­ richtung durchzuführen ist, auf der Grundlage der Datengrö­ ßeninformation bezüglich der in dem Größenfeld des Befehls­ codes plazierten Dividendendaten voreinstellt.
6. Datenverarbeitungsgerät mit:
einer Befehlsdecodiereinrichtung (2), welche einen Code von entweder einem daran angelegten Divisionsbefehl oder einem Restbefehl decodiert, wobei der Befehlscode ein Größenfeld zur Speicherung einer Datengrößeninformation aufweist;
einer Steuereinrichtung (1), welche ein decodiertes Ergebnis von der Befehlsdecodiereinrichtung empfängt, wel­ ches die in dem Größenfeld des Befehlscodes gespeicherte Datengrößeninformation anzeigt, und eine Zahl, entsprechend der eine Schleifeniteration, die sich aus für die Ausfüh­ rung entweder des Divisionsbefehls oder des Restbefehls be­ nötigten Schritten zusammensetzt, auf der Grundlage einer nicht wiederherstellenden Division durchzuführen ist, auf der Grundlage der Datengrößeninformation voreinstellt;
einer arithmetischen Einrichtung (8), welche die Schleifeniteration für entweder den Divisionsbefehl oder den Restbefehl auf der Grundlage der nicht wiederherstel­ lenden Division lediglich die von der Steuereinrichtung voreingestellte Zahl von Malen durchführt;
wobei die Steuereinrichtung eine Zahl von Bits, ent­ sprechend der Dividendendaten, welche entweder dem Divisi­ onsbefehl oder dem Restbefehl zugeordnet sind, verschoben werden sollen, auf einen Wert gleich der Länge von Daten, welche von dem Datenverarbeitungsgerät behandelt werden können, abzüglich der Länge der Dividendendaten festlegt;
wobei die arithmetische Einrichtung die Dividendenda­ ten um die von der Steuereinrichtung voreingestellte Zahl von Bits nach links verschiebt; und
die Dividendendaten, welche verschoben worden sind, an die arithmetische Einrichtung als Eingangsdaten angelegt werden, welche zur Durchführung der Schleifeniteration für entweder den Divisionsbefehl oder den Restbefehl auf der Grundlage der nicht wiederherstellenden Division benötigt werden.
7. Datenverarbeitungsgerät nach Anspruch 6, dadurch ge­ kennzeichnet, dass dann, wenn der Befehlscode ein Code ei­ nes Divisionsbefehls ist, die Länge der Dividendendaten als die Datengrößeninformation in dem Datenfeld des Befehls­ codes plaziert wird.
8. Datenverarbeitungsgerät nach Anspruch 6, dadurch ge­ kennzeichnet, dass dann, wenn der Befehlscode ein Code ei­ nes Restbefehls ist, die Länge der Dividendendaten als die Datengrößeninformation in dem Größenfeld des Befehlscodes plaziert wird.
9. Datenverarbeitungsgerät nach Anspruch 6, dadurch ge­ kennzeichnet, dass dann, wenn der Befehlscode ein Code ei­ nes Divisionsbefehls ist, ein Wert gleich der Länge der Da­ ten, welche von dem Datenverarbeitungsgerät behandelt wer­ den können, abzüglich der Länge der Dividendendaten als die Datengrößeninformation in dem Größenfeld des Befehlscodes plaziert wird.
10. Datenverarbeitungsgerät nach Anspruch 6, dadurch ge­ kennzeichnet, dass dann, wenn der Befehlscode ein Code ei­ nes Restbefehls ist, ein Wert gleich der Länge der Daten, welche von dem Datenverarbeitungsgerät behandelt werden können, abzüglich der Länge der Dividendendaten als die Da­ tengrößeninformation in dem Größenfeld des Befehlscodes plaziert wird.
11. Datenverarbeitungsgerät nach einem der Ansprüche 7 bis 10, dadurch gekennzeichnet, dass dann, wenn Daten, welche von dem Datenverarbeitungsgerät behandelt werden können, eine Länge von 2m Bits aufweisen (m ist eine positive ganze Zahl), wobei die Steuereinrichtung einen (m + 1)-Bit-Zähler enthält, welcher die Zahl zählt, entsprechend der die Schleifeniteration von der arithmetischen Einrichtung wie­ derholt worden ist, einen Anfangswert des (m + 1)-Bit-Zählers auf einen Wert gleich der Länge von Daten, welche von dem Datenverarbeitungsgerät behandelt werden können, abzüglich der Datengrößeninformation voreinstellt und bestimmt, dass die Wiederholung der Schleife vollendet ist, wenn sich das höchstwertige Bit des (m + 1)-Bit-Zählers von null auf eins ändert.
12. Verfahren der Durchführung von entweder Divisions- oder Restberechnungen, welches von einem Datenverarbei­ tungsgerät nach den Ansprüchen 1 bis 11 verwendet wird, mit den Schritten:
Schieben von Dividendendaten, welche entweder einem Divisionsbefehl oder einem Restbefehl zugeordnet sind, um eine vorbestimmte Zahl von Bits entsprechend einem Wert gleich der Länge von Daten, welche von dem Datenverarbei­ tungsgerät behandelt werden können, abzüglich der Länge der Dividendendaten nach links;
Voreinstellen einer Anzahl, entsprechend welcher eine Schleifeniteration, die sich aus Schritten zusammensetzt, welche zur Ausführung entweder des Divisionsbefehls oder des Restbefehls benötigt werden, auf der Grundlage einer nicht wiederherstellenden Division durchzuführen ist, auf einen Wert gleich der Länge der Dividendendaten; und
Anwenden der Dividendendaten, welche um die vorbe­ stimmte Zahl von Bits nach links verschoben worden sind, als Eingangsdaten auf die Schleife, welche auf der Grund­ lage der nicht wiederherstellenden Division wiederholt wird, zur Ausführung entweder des Divisionsbefehls oder des Festbefehls.
DE10025249A 1999-07-16 2000-05-22 Verfahren zur Ausführung sowohl von Divisions- als auch Restbefehlen und Datenverarbeitungsgerät, welches das Verfahren anwendet Expired - Fee Related DE10025249C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11203650A JP2001034472A (ja) 1999-07-16 1999-07-16 データ処理装置および除算、剰余算アルゴリズム

Publications (2)

Publication Number Publication Date
DE10025249A1 DE10025249A1 (de) 2001-03-15
DE10025249C2 true DE10025249C2 (de) 2002-06-27

Family

ID=16477572

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10025249A Expired - Fee Related DE10025249C2 (de) 1999-07-16 2000-05-22 Verfahren zur Ausführung sowohl von Divisions- als auch Restbefehlen und Datenverarbeitungsgerät, welches das Verfahren anwendet

Country Status (5)

Country Link
US (1) US6560624B1 (de)
JP (1) JP2001034472A (de)
KR (1) KR100432401B1 (de)
DE (1) DE10025249C2 (de)
TW (1) TW519598B (de)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6779106B1 (en) * 2000-09-28 2004-08-17 International Business Machines Corporation Apparatus and method for an enhanced integer divide in an IA64 architecture
US6799262B1 (en) 2000-09-28 2004-09-28 International Business Machines Corporation Apparatus and method for creating instruction groups for explicity parallel architectures
US6883165B1 (en) 2000-09-28 2005-04-19 International Business Machines Corporation Apparatus and method for avoiding deadlocks in a multithreaded environment
US6912647B1 (en) 2000-09-28 2005-06-28 International Business Machines Corportion Apparatus and method for creating instruction bundles in an explicitly parallel architecture
US7181484B2 (en) * 2001-02-21 2007-02-20 Mips Technologies, Inc. Extended-precision accumulation of multiplier output
JP3886870B2 (ja) 2002-09-06 2007-02-28 株式会社ルネサステクノロジ データ処理装置
TW200540698A (en) * 2004-06-15 2005-12-16 Tatung Co Ltd Addressing type asynchronous divider
US8402078B2 (en) * 2008-02-26 2013-03-19 International Business Machines Corporation Method, system and computer program product for determining required precision in fixed-point divide operations
US8626816B2 (en) * 2008-02-26 2014-01-07 International Business Machines Corporation Method, system and computer program product for detecting errors in fixed point division operation results
JP4858794B2 (ja) * 2009-12-02 2012-01-18 日本電気株式会社 浮動小数点除算器、及びそれを用いた情報処理装置
JP5966763B2 (ja) * 2012-08-22 2016-08-10 富士通株式会社 除算装置及び除算方法
US10241757B2 (en) 2016-09-30 2019-03-26 International Business Machines Corporation Decimal shift and divide instruction
US10127015B2 (en) 2016-09-30 2018-11-13 International Business Machines Corporation Decimal multiply and shift instruction
JP7159696B2 (ja) * 2018-08-28 2022-10-25 富士通株式会社 情報処理装置,並列計算機システムおよび制御方法
US12008369B1 (en) 2021-08-31 2024-06-11 Apple Inc. Load instruction fusion

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3733477A (en) * 1972-02-04 1973-05-15 Control Data Corp Iterative binary divider utilizing multiples of the divisor
US5574677A (en) * 1994-11-23 1996-11-12 Exponential Technology, Inc. Adaptive non-restoring integer divide apparatus with integrated overflow detect

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2841403B2 (ja) * 1989-01-07 1998-12-24 富士通株式会社 ループ最適化処理方法
JPH0831028B2 (ja) * 1990-06-11 1996-03-27 松下電工株式会社 プログラマブルコントローラ用除算器
US5442581A (en) * 1993-11-30 1995-08-15 Texas Instruments Incorporated Iterative division apparatus, system and method forming plural quotient bits per iteration
US5517439A (en) * 1994-02-14 1996-05-14 Matsushita Electric Industrial Co., Ltd. Arithmetic unit for executing division
TW329485B (en) 1994-12-31 1998-04-11 Holtek Microelectronics Inc Fast division calculation method and apparatus
KR100195719B1 (ko) * 1995-12-28 1999-06-15 전주범 나눗셈기
US5805489A (en) * 1996-05-07 1998-09-08 Lucent Technologies Inc. Digital microprocessor device having variable-delay division hardware
US5784307A (en) 1996-05-31 1998-07-21 Intel Corporation Division algorithm for floating point or integer numbers
JP3544821B2 (ja) * 1997-04-07 2004-07-21 株式会社東芝 除算回路
US6061781A (en) * 1998-07-01 2000-05-09 Ip First Llc Concurrent execution of divide microinstructions in floating point unit and overflow detection microinstructions in integer unit for integer divide

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3733477A (en) * 1972-02-04 1973-05-15 Control Data Corp Iterative binary divider utilizing multiples of the divisor
US5574677A (en) * 1994-11-23 1996-11-12 Exponential Technology, Inc. Adaptive non-restoring integer divide apparatus with integrated overflow detect

Also Published As

Publication number Publication date
TW519598B (en) 2003-02-01
JP2001034472A (ja) 2001-02-09
KR20010014926A (ko) 2001-02-26
KR100432401B1 (ko) 2004-05-22
US6560624B1 (en) 2003-05-06
DE10025249A1 (de) 2001-03-15

Similar Documents

Publication Publication Date Title
DE10025249C2 (de) Verfahren zur Ausführung sowohl von Divisions- als auch Restbefehlen und Datenverarbeitungsgerät, welches das Verfahren anwendet
DE3306084C2 (de)
DE69233361T2 (de) Ein-Chip-Mikrocomputer
DE19540102C2 (de) Verfahren und Gleitkomma-Recheneinheit mit einer Logik für eine Vierfach-Präzisions-Arithmetik
DE4243374C2 (de) Rundungseinrichtung für eine Gleitkommazahl und Verfahren
DE3210816C2 (de)
DE3144015C2 (de)
DE2855722A1 (de) Einrichtung zur berechnung von produktsummen
DE1285219B (de) Steuerwerk zur Ausfuehrung von Unterprogrammen
DE2902496A1 (de) Digitale datenmultiplikationsanordnung
DE69925123T2 (de) Datenberechnungvorrichtung
DE69629646T2 (de) Verfahren zur durchführung einer &#34;rotate through carry&#34; operatiion
WO2004059463A1 (de) Vorrichtung und verfahren zum berechnen einer multiplikation mit einer verschiebung des multiplikanden
DE19746054B4 (de) Verfahren und Vorrichtung zum Ausführen einer Operation mit doppelter Genauigkeit
DE2830334C2 (de)
DE3447729C2 (de)
DE3440680C2 (de)
DE2952163A1 (de) Dv-anlage mit zwei datenprozessoren
DE3115119A1 (de) Exponentialoperationseinrichtung
DE112005000247T5 (de) Schnelles Verfahren zum Berechnen von Zweierpotenzen als ein Fliesskomma-Datentyp
DE2313246A1 (de) Spezialrechner
DE69930893T2 (de) Digitaler Signalprozessor für Daten mit grosser Bitlänge
DE10219164B4 (de) Vorrichtung und Verfahren zum Berechnen eines ganzzahligen Quotienten
DE10028064B4 (de) Computersystem mit ROM-Korrektureinheiten
DE69930544T2 (de) Verfahren und vorrichtung für bedingte vektoroperationen

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee