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 anwendetInfo
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 102
- 238000000034 method Methods 0.000 title claims description 25
- 238000004364 calculation method Methods 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 18
- QECABVMKPMRCRZ-UHFFFAOYSA-N acetyl(methoxy)phosphinic acid Chemical compound COP(O)(=O)C(C)=O QECABVMKPMRCRZ-UHFFFAOYSA-N 0.000 description 13
- 230000008569 process Effects 0.000 description 13
- 238000001514 detection method Methods 0.000 description 6
- 230000004069 differentiation Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- KRTSDMXIXPKRQR-AATRIKPKSA-N monocrotophos Chemical compound CNC(=O)\C=C(/C)OP(=O)(OC)OC KRTSDMXIXPKRQR-AATRIKPKSA-N 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/52—Multiplying; Dividing
- G06F7/535—Dividing only
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/325—Address 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/3808—Details concerning the type of numbers or the way they are handled
- G06F2207/3812—Devices capable of handling different types of numbers
- G06F2207/3816—Accepting numbers of variable word length
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/535—Indexing scheme relating to groups G06F7/535 - G06F7/5375
- G06F2207/5352—Non-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.
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.
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.
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.
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.
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.
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.
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)
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)
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)
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 |
-
1999
- 1999-07-16 JP JP11203650A patent/JP2001034472A/ja active Pending
-
2000
- 2000-01-03 US US09/477,001 patent/US6560624B1/en not_active Expired - Fee Related
- 2000-04-28 TW TW089108093A patent/TW519598B/zh not_active IP Right Cessation
- 2000-05-18 KR KR10-2000-0026613A patent/KR100432401B1/ko not_active IP Right Cessation
- 2000-05-22 DE DE10025249A patent/DE10025249C2/de not_active Expired - Fee Related
Patent Citations (2)
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 "rotate through carry" 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 |