DE69430053T2 - Ganzzahldivisionsvorrichtung und -verfahren - Google Patents
Ganzzahldivisionsvorrichtung und -verfahrenInfo
- Publication number
- DE69430053T2 DE69430053T2 DE69430053T DE69430053T DE69430053T2 DE 69430053 T2 DE69430053 T2 DE 69430053T2 DE 69430053 T DE69430053 T DE 69430053T DE 69430053 T DE69430053 T DE 69430053T DE 69430053 T2 DE69430053 T2 DE 69430053T2
- Authority
- DE
- Germany
- Prior art keywords
- dividend
- divisor
- bit
- bits
- quotient
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims description 36
- 230000007246 mechanism Effects 0.000 description 24
- 238000010586 diagram Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 238000012512 characterization method Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000001360 synchronised effect 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
- 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
-
- 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
- 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/5353—Restoring division
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Executing Machine-Instructions (AREA)
- Complex Calculations (AREA)
- Image Processing (AREA)
Description
- Die vorliegende Erfindung bezieht sich auf einen Mechanismus und ein Verfahren zur Durchführung einer Ganzzahlteilung in einem Computersystem.
- Die meisten Computersysteme beinhalten einen Mechanismus zur Durchführung einer Ganzzahlteilungs-Operation, bei welcher ein ganzzahliger Dividend durch einen ganzzahligen Divisor geteilt wird. Herkömmliche Ganzzahlteilungsmechanismen arbeiten durch die iterative Ausführung von Verschiebungs- und Subtraktions-Operationen an dem Dividenden und dem Divisor. Solche herkömmlichen Ganzzahlteilungsmechanismen werden in vielen öffentlichen zugänglichen Dokumenten beschrieben, wie zum Beispiel John L. Hennessy und David A. Patterson, Computer Architecture - A Quantitive Approach, (Morgan Kaufmann Publishers, Inc., San Mateo, California, U.S.A., 1990).
- Wie man weiß sind Verschiebungs- und Subtraktions-Operationen zeitaufwendig und rechenintensiv. Ganzzahlteilungs- Operationen, wie sie durch herkömmliche Ganzzahlteilungsmechanismen ausgeführt werden, sind zeitaufwendig und rechenintensiv, da sie die iterative Ausführung von Verschiebungs- und Subtraktions-Operationen am Dividenden und Divisor beinhalten.
- Dokument US-A-4 460 970 beschriebt ein digitales Datenverarbeitungssystem, bei dem die Zahl der führenden Ziffern bzw. Digits, welche numerische Nullwerte enthalten, für einen Operanden bestimmt wird, und die führenden Nullziffern in solchen Operanden verworfen werden. Dann wir eine gewünschte Arithmetik-Operation an den verbleibenden Ziffern durchgeführt, um die Zahl der Schritte zu reduzieren, die erforderlich ist, um ein Arithmetik-Ergebnis bereitzustellen. Gemäß dem in diesem Dokument offenbarten Verfahren wird die Zahl der führenden Nullziffern in einem Divisor und einem Dividenden bestimmt. Ein Verschiebungsfaktorwert wird dann erhalten, indem der führende Nullwert für den Divisor vom führenden Nullwert für den Dividenden subtrahiert wird, und der sich aus jener Subtraktion ergebenden Differenz 1 hinzuaddiert wird. Der Divisor wird in einen sogenannten "berechtigten Divisor" transformiert, indem der Absolutwert für den Divisor um die Zahl von Bits nach links verschoben wird, welche durch den Verschiebungsfaktorwert spezifiziert wird. Alle Quotientenbits werden zurückgesetzt und eine Teilungsschleife wird durchgeführt. Ein erstes Teilresultat wird erhalten, indem der berechtigte Divisor vom Absolutwert des Dividenden subtrahiert wird, und die Differenz um ein Bit nach links verschoben wird. Dann werden Bits des Quotienten bestimmt, welche größer sind als das geringstwertige Bit, durch Iteration des Subtrahierens des berechtigten Divisors vom Teilprodukt, Speichern der Differenz, Verschieben des Teilresultats um ein Bit nach links, Verschieben des Quotienten um einen Bit nach links, und Durchführen eines Tests, welcher vom Vorzeichen der Differenz abhängt.
- Die Offenbarung IEEE Transactions on Acoustics, Speech and Signal Processing, Band 36, Nr. 2, 1. Februar 1988, Seiten 265-283, XP 000098757, Catthoor F. et al. "Architectural Strategies for an Application-Specific Synchronous Multiprocessor Environment" beschreibt eine spezifische, iterative Teiler-Implementierung, bei welcher Do-Operanden eine korrekte Anfangsausrichtung haben müssen. Es wird als vorteilhaft beschrieben die Ausrichtung und die Teilung in einem einzigen Algorithmus zu kombinieren. Nach diesem Dokument erfordern die Grundoperationen im Teilungsalgorithmus das Subtrahieren oder das Addieren des Nenners vom Zähler (ursprünglich) oder den Zwischenresultaten. Um bei einem korrekten Quotienten anzugelangen, sollte der Zähler so ausgerichtet sein, dass das Resultat der ersten Addier/Subtrahier-Operation (ein Absolutwert) nicht den Wert des Nenners selbst überschreitet.
- Was somit erforderlich ist, ist ein effizienterer Ganzzahlteilungsmechanismus und -Verfahren.
- Um die oben beschriebenen Probleme zu lösen wird die vorliegende Erfindung vorgeschlagen, um einen Mechanismus und ein Verfahren bereitzustellen, wie sie in den unabhängigen Ansprüchen 8, 1, 15 bzw. 16 definiert sind. Einer der Aspekte der Erfindung beschäftigt sich mit einem Verfahren zum Teilen eines ganzzahligen Dividenden durch einen ganzzahligen Divisor, um einen ganzzahligen Quotienten zu erzeugen. Der Mechanismus der vorliegenden Erfindung arbeitet durch Ausrichten des Divisors relativ zum Dividenden, so dass ein rechtestes Bit des Divisors mit einem Bit M des Dividenden ausgerichtet ist. M ist ein positiver ganzzahliger Wert, welcher eine Bitposition des Dividenden identifiziert. Der Divisor wird mit einem ganzzahligen Wert verglichen, dessen am rechtesten liegende Bits gleich den Bits des Dividenden sind, welche mit Bits des Divisors ausgerichtet sind.
- Als Resultat dieses Vergleichs werden Quotientenbits, welche positionsmäßig dem Divendenbit M und Bits des Dividenden entsprechen, welche sich links des Dividendenbits M befinden, auf Null gelöscht. Auch als Ergebnis des Vergleichs wird der Dividend durch den Divisor geteilt, wie vorher relativ zum Dividenden ausgerichtet, um dadurch Werte für nicht-gelöschte Quotientenbits zu erzeugen.
- Weitere Ausführungen der unterschiedlichen Aspekte der Erfindung werden in den angehängten abhängigen Ansprüchen spezifiziert.
- Fig. 1 ist ein Flussdiagramm, welches den Betrieb des Ganzzahlteilungsmechanismus gemäß einer Ausführung der vorliegenden Erfindung zeigt;
- Fig. 2A-2C zeigen die Verarbeitung einer beispielhaften Ganzzahlteilungsoperation gemäß einer Ausführung der vorliegenden Erfindung;
- Fig. 3 ist ein Flussdiagramm, welches den Betrieb einer Ausrichtungsprozedur wiedergibt, bei der ein Divisor relativ zu einem Dividenden ausgerichtet wird, gemäß einer Ausführung der vorliegenden Erfindung;
- Fig. 4A-4L geben die Verarbeitung einer zweiten beispielhaften Ganzzahlteilungsoperation wieder, und werden verwendet, um die Merkmale der vorliegenden Erfindung zu
- veranschaulichen;
- Fig. 5 veranschaulicht diagrammartig eine Ganzzahlteilungsoperation;
- Fig. 6 ist ein Blockdiagramm eines Ganzzahlteilers nach einer ersten Ausführung der vorliegenden Erfindung;
- Fig. 7 ist ein Blockdiagramm eines Ganzzahlteilers nach einer zweiten Ausführung der vorliegenden Erfindung; und
- Fig. 8 ist ein Blockdiagramm eines Ganzzahlteilers nach einer dritten Ausführung der vorliegenden Erfindung.
- Die Merkmale und Vorteile der vorliegenden Erfindung, sowie die Struktur und der Betrieb der verschiedenen Ausführungen der vorliegenden Erfindung werden unten ausführlich beschrieben, unter Bezugnahme auf die begleitenden Zeichnungen. In den Zeichnungen geben gleiche Bezugszeichen identische oder funktionell ähnliche Elemente an.
- Die vorliegende Erfindung richtet sich auf einen Ganzzahlungsteilungsmechanismus, welcher nicht zeitaufwendig oder rechenintensiv ist, verglichen mit herkömmlichen Ganzzahlenteilungsmechanismen und -verfahren. Die Vorteile der vorliegenden Erfindung gehen besonders klar hervor, wenn der Quotient der Ganzzahlteilungsoperation kurz ist, d. h. wenn die Zahl der führenden Nullen im Quotienten groß ist im Verhältnis zur Gesamtzahl von Bits des Quotienten, oder der Dividend kurz ist. Die vorliegende Erfindung ist ausgebildet für die Verwendung mit jeder beliebigen Datenverarbeitungsvorrichtung, welche die Fähigkeit zur Durchführung von Ganzzahlteilungsoperationen erfordert. Zum Beispiel ist die vorliegende Erfindung ausgebildet für die Verwendung mit Computer-Prozessoren, welche eine RISC- Architektur (reduced instruction set computer) haben. Die folgenden Dokumente diskutieren solche Computer-Prozessoren: G. Kane und J. Heinrich, MIPS RISC Architecture (Prentice Hall, Englewood Cliffs, New Jersey, U.S.A., 1992); Mike Johnson, Superscalar Microprocessor Design (Prentice Hall, Englewood Cliffs, New Jersey, U.S.A., 1991); und Stephen B. Furber, VLSI RISC Architecture and Organization (Marcel Dekker, Inc., New York, New York, U.S.A., 1989).
- Der Ganzzahlteilungsmechanismus der vorliegenden Erfindung kann verwendet werden, um eine Ganzzahlteilung mit oder ohne Vorzeichen durchzuführen. Der Einfachheit halber wird die vorliegende Erfindung jedoch zunächst bezüglich der Ganzzahlteilung ohne Vorzeichen beschrieben. Die Ganzzahlteilung mit Vorzeichen wird nach der Diskussion der Ganzzahlteilung ohne Vorzeichen betrachtet.
- Vor der ausführlichen Beschreibung der vorliegenden Erfindung ist es nützlich zu betrachten, wie die folgende Ganzzahlteilungsoperation von einem herkömmlichen Ganzzahlteilungsmechanismus durchgeführt wird: 9 ÷ 3. Unterdessen werden herkömmliche Ganzzahlteilungsmechanismen in vielen öffentlichen erhältlichen Dokumente beschrieben, wie Computer Architecture, A Quantitative Approach, von Hennessy und Patterson. Die binären Darstellungen von 9 (der Dividend) und 3 (der Divisor) sind in Fig. 4A gezeigt. Zum Zwecke der Bezugnahme sind die Bits des Dividenden dargestellt durch DD0, DD1, ..., DD7 (wobei DD0 das rechteste oder geringstwertige Bit und DD7 das am weitesten links liegende oder höchstwertige Bit ist), die Bits des Divisors werden dargestellt als DS0, DS1, ...,DS7 (wobei DS0 das am weitesten rechts liegende Bit und DS7 das am weitesten links liegende Bit ist), und die Bits des Quotienten werden dargestellt als Q0, Q1, ..., Q7 (wobei Q0 das am weitesten rechts liegende Bit und Q7 das am weitesten links liegende Bit ist). Siehe Fig. 5, welche diese Bits zeigt.
- Ein herkömmlicher Ganzzahlteilungsmechanismus arbeitet dem Konzept nach durch Ausrichten des am weitesten rechts liegenden Bits DS0 des Divisors mit dem am weitesten links liegenden Bit DD7 des Dividenden (siehe Fig. 4B), und dann Subtrahieren des Divisors von einem ganzzahligen Wert, dessen am weitesten rechts liegende Bits gleich den Bits des Dividenden sind, welche mit dem Divisor ausgerichtet sind (in diesem Fall Bit DD7). Somit wird 3 (der Divisor) von 0 (dem ganzzahligen Wert, dessen am weitesten rechts liegende Bits dem Bit DD7 des Dividenden entsprechen, der mit dem Divisor ausgerichtet ist) subtrahiert, und das Ergebnis ist -3. Wenn das Ergebnis der Subtraktion negativ ist, dann wird das Quotientenbit Q7 auf Null eingestellt. Wenn das Ergebnis der Subtraktion positiv ist (einschließlich Null), dann wird das Quotientenbit Q7 auf eins eingestellt. Hier wird das Quotientenbit Q7 auf Null eingestellt.
- Als nächstes wird der Divisor um ein Bit nach rechts verschoben (siehe Fig. 4C). Dann wird der Divisor von einem ganzzahligen Wert subtrahiert, dessen am rechtesten liegende Bits gleich den Bits des Dividenden sind, welche mit dem Divisor ausgerichtet sind (in diesem Fall Bits DD7 und DD6). Somit wird 3 (der Divisor) von 0 (der ganzzahlige Wert, dessen am weitesten rechts liegende Bits den Bits DD7 und DD6 des Dividenden entsprechen, die mit dem Divisor ausgerichtet sind), subtrahiert, und das Resultat ist -3. Wenn das Resultat der Subtrakion negativ ist, dann wird das Quotientenbit Q6 auf Null eingestellt. Ansonsten wird es auf eins eingestellt. Hier wird das Quotientenbit Q6 auf Null eingestellt.
- Auf ähnliche Weise werden die Quotientenbits Q5-Q2 auf Null eingestellt (siehe jeweils Fig. 4D-4G).
- Nachdem das Quotientenbit Q2 auf Null eingestellt wurde, wird der Divisor um ein Bit nach rechts verschoben (siehe Fig. 4H), und von einem ganzzahligen Wert subtrahiert, dessen am weitesten rechts liegende Bits gleich den Bits des Dividenden sind, die mit dem Divisor ausgerichtet sind (in diesem Fall Bits DD7-DD1). Somit wird 3 (der Divisor) von 4 (der ganzzahlige Wert, dessen am weitesten rechts liegende Bits den Bits DD7-DD1 des Dividenden entsprechen, die mit dem Divisor ausgerichtet sind) subtrahiert, und das Ergebnis ist 1. Da das Ergebnis positiv ist, wird der Quotientenbit Q1 auf eins eingestellt. Auch wird der Dividend modifiziert, um diese Subtraktionsoperation wiederzugeben, wie in Fig. 4I gezeigt.
- Dann wird der Divisor um ein Bit nach rechts verschoben (siehe Fig. 4I) und von einem ganzzahligen Wert subtrahiert, dessen am weitesten rechts liegende Bits jene Bits des modifizierten Dividenden sind, welche mit dem Divisor ausgerichtet sind (in diesem Fall die Bits DD7-DD0). Somit wird 3 (der Divisor) von 3 (der ganzzahlige Wert, dessen am weitesten rechts liegende Bit den Bits DD7-DD0 des Dividenden entsprechen, welche mit dem Divisor ausgerichtet sind) subtrahiert, und das Ergebnis ist 0. Da das Resultat positiv ist, wird das Quotientenbit Q0 auf eins eingestellt. Die Ganzzahlteilungsoperation ist dann vollständig, da das rechteste Bit DS0 des Divisors mit dem rechtesten Bit DD0 des Dividenden ausgerichtet ist.
- Man beachte, dass die Quotientenbits, welche allen führenden Nullen des Dividenden entsprechen, während der Operation des herkömmlichen Ganzzahlteilungsmechanismus gleich Null eingestellt werden. Dies ist bei Ganzzahlteilung ohne Vorzeichen immer der Fall, da ein Divisor, welcher nicht Null ist, von Null subtrahiert wird.
- Somit, wie von den Erfindern erkannt, ist es möglich, dass eine große Zahl von Verschiebungs- und Subtraktionsoperationen während der Ganzzahlteilungsoperationen eliminiert werden können, indem die Quotientenbits, welche positionsmäßig führenden Nullen im Dividenden entsprechen (d. h. welche die gleichen Bitpositionen wie die führenden Nullbits des Dividenden haben) gelöscht werden (d. h. auf Null eingestellt werden), und durch Beginnen des herkömmlichen Ganzzahlteilungsprozesses (wie oben beschrieben) wenn das rechteste Bit DS0 des Divisors ausgerichtet ist mit dem am weitesten links liegenden Bit des Dividenden, das gleich eins ist (dieses wird auch als das führende Nicht-Null- Dividendenbit bezeichnet.
- Die Erfinder haben identifiziert, dass durch Eliminieren von Verschiebungs- und Subtraktionsoperationen, das Verhalten der Ganzzahlteilungsoperationen weniger zeitaufwendig und weniger rechenintensiv wird. Die tatsächlichen Aufwandsersparnisse hängen ab von den besonderen Werten des Dividenden, Divisors und Quotienten. Im allgemeinen werden bessere Aufwandseinsparungen erzielt, wenn der Quotient kurz ist (d. h. wo die Zahl der führenden Nullen im Quotienten groß ist im Verhältnis zur Gesamtzahl von Bits des Quotienten), oder äquivalent, wo der Dividend kurz ist.
- Gemäß einer ersten Ausführung der vorliegenden Erfindung wird eine Ganzzahlteilung durchgeführt, indem der Dividend von links nach rechts abgetastet wird, um das erste Nicht-Null- Dividendenbit zu lokalisieren (d. h. das führende Bit des Dividenden zu lokalisieren, das nicht Null ist). Das am weitesten rechts liegende Bit DS0 des Divisors wird dann mit diesem Bit des Dividenden vorausgerichtet, und die Quotientenbits, welche den Dividendenbits links vom führenden Nicht-Null-Dividendenbit entsprechen, werden gleich Null gesetzt. Dann beginnt der herkömmliche Ganzzahlteilungsprozess (wie oben unter Bezugnahme auf die Fig. 4A-4I diskutiert), mit dem relativ zum Dividenden vorausgerichteten Divisor, und der passenden Zahl von führenden Nullen im Quotienten gespeichert, wie gerade beschrieben.
- Der Betrieb der ersten Ausführung der vorliegenden Erfindung ist in Fig. 4 J veranschaulicht, wo das führende Nicht-Null- Dividendbit DD3 ist. Das rechteste Bit DS0 des Divisors wird mit dem Dividendbit DD3 vorausgerichtet, und Quotientenbits Q7-Q4, welche den Dividenbits DD7-DD4 links vom führenden Nicht-Null-Dividendbit DD3 entsprechen, werden gleich Null gesetzt.
- Die erste Ausführung der vorliegenden Erfindung wird vorzugsweise wie in Fig. 6 gezeigt implementiert, in welcher ein Blockdiagramm eines Ganzzahlteilers 602 abgebildet ist. Der Ganzzahlteiler 602 enthält Register 604 und 606, um einen Dividenden bzw. einen Divisor abzuspeichern.
- Eine Schaltung 608 zum Auffinden der ersten eins (FFO- Schaltung für "Find First One") tastet den Dividenden aus Register 604 von links nach rechts ab, um das führende Nicht- Null-Dividendbit zu finden. Eine Bitposition W des führenden Nicht-Null-Dividendbits wird dann einer Steuerzustandmaschine 610 bereitgetstellt. Im Beispiel der Fig. 4J ist W gleich 3.
- Die Steuerzustandmaschine 610 befiehlt einem vollen 1-bis-63- Bitrechtsverschiebungsregister 612 (d. h. ein Rechtsverschiebungsregister, welches einen Operanden um 1 bis 63 Bits verschieben kann) den Dividenden um W Bitpositionen nach rechts logisch zu verschieben (Nullen werden in die linke Endbitposition des Rechtsverschiebungsregisters 612 verschoben). Der nach rechts verschobene Dividend wird dann über Multiplexer 616 und 620 im Register 604 gespeichert (gemäß geeigneter Befehle aus der Steuerzustandmaschine).
- Die Bits des Dividenden, welche aus dem Rechtsverschiebungsregister 612 geschoben werden, werden in einem Temporärregister (nicht abgebildet) gespeichert, welches mit dem Rechtsverschiebungsregister 612 gekoppelt ist, und mit einem Linksverschiebungsregister 614 und einem Linksverschiebungsregister 622 (welche unten beschrieben werden). Im Beispiel der Fig. 4J werden Bits "001" in diesem Temporärregister gespeichert.
- Die Steuerzustandsmaschine 610 setzt auch Quotientenbits auf Null, welche den Dividendenbits links des Dividendenbits W entsprechen (diese Quotientenbits werden vorzugsweise in einem nicht abgebildeten Register gespeichert). Im Beispiel der Fig. 4J werden die Quotientenbits Q7-Q4 auf Null gesetzt.
- An diesem Punkt ist der Divisor mit dem Dividenden vorausgerichtet, und die passende Zahl von führenden Nullen ist im Quotienten gespeichert (d. h. im Register, welches den Quotienten speichert). Eine herkömmliche Ganzzahlteilungsoperation beginnt dann unter Verwendung der Komponenten der Fig. 6.
- Speziell wird der Divisor (aus Register 606) von dem momentanen Wert des Divendenden (aus Register 604) in einem Subtrahierer 618 subtrahiert. Wenn die Steuerzustandsmaschine 610 bestimmt, dass das Resultat negativ ist, wie im Fall des Beispiels der Fig. 4 J (wo 3 von 1 subtrahiert wird), dann setzt die Steuerzustandsmaschine 610 das Quotientenbit Q3 auf Null, und befiehlt dem Linksverschiebungsregister 614 den Dividenden (aus dem Register 604) um ein Bit nach links zu verschieben, wobei das am weitesten links liegende Bit des Werts im Temporärregister in die am weitesten rechts liegende Position des Linksverschiebungsregisters geschoben wird. Dieser linksverschobene Dividendenwert wird über Multiplexer 616 und 620 im Register 604 gespeichert. Im Beispiel der Fig. 4 J wird an diesem Punkt Binärwert "10" im Register 604 gespeichert.
- Die Steuerzustandsmaschine 610 bewirkt, dass dieser Zyklus wiederholt wird, so dass das Quotientenbit Q2 auf Null gesetzt wird, und der Binärwert "100" wird im Register 604 gespeichert.
- Dieser Zyklus wird gemäß geeigneter Befehle der Steuerzustandsmaschine 610 erneut wiederholt. Unter Bezugnahme auf das Beispiel der Fig. 4 J ergibt jedoch die Subtraktion des Divisors (aus Register 606) vom Momentanwert des Dividenden (aus Register 604) im Subtrahierer 618 einen positiven Wert "1" (3 wird von 4 subtrahiert).
- Dementsprechend setzt die Steuerzustandsmaschine 610 das Quotientenbit Q1 auf eins und befiehlt dann dem Linksverschiebungsregister 622 die Ausgabe des Subtrahierers 618 um ein Bit nach links zu verschieben, wobei das am weitesten links liegende Bit des Werts im Temporärregister in die am weitesten rechts liegende Position dieses verschobenen Werts geschoben wird. Dieser geschobene Wert, welcher den momentanen Wert des Dividenden darstellt, wird über Multiplexer 616 und 620 im Register 604 gespeichert. Im Beispiel der Fig. 4J wird an diesem Punkt der Binärwert "11" im Register 604 gespeichert.
- Der Zyklus wird erneut gemäß geeigneter Befehle aus der Steuerzustandsmaschine 610 wiederholt. Dieses mal ergibt die Subtraktion des Divisors (aus Register 606) vom momentanen Wert des Dividenden (aus Register 604) im Subtrahierer 618 einen positiven Wert "0". Dementsprechend setzt die Steuerzustandsmaschine 610 das Quotientenbit Q0 auf eins. Die Ganzzahlteilungsoperation ist dann vollendet.
- Die Steuerzustandsmaschine 610 im Ganzzahlteiler 602 der Fig. 6 ist vorzugsweise als eine Hardware-Zustandsmaschine implementiert, welche wie oben beschrieben arbeitet. Alternativ ist die Steuerzustandsmaschine 610 ein Prozessor, der gemäß Computersoftware arbeitet. Die FFO 608 ist ähnlich der Normierungssteuerung eines Fließkomma-Addierers. Ihre Struktur und ihr Betrieb geht für den Fachmann aus der vorliegenden Diskussion hervor. Andere Aspekte der in Fig. 6 gezeigten Komponenten sind für Fachleute erkennbar.
- Gemäß einer zweiten Ausführung der vorliegenden Erfindung wird eine Ganzzahlteilung durchgeführt, indem der Dividend von links nach rechts abgetastet wird, um das erste Nicht- Null-Dividendbit zu lokalisieren (d. h. um das führende Nicht- Null-Bit des Dividenden zu lokalisieren). Der Divisor wird dann von links nach rechts abgetastet, um das erste Nicht- Null-Divisorbit zu lokalisieren (d. h. um das führende Nicht- Null-Bit des Divisors zu lokalisieren). Die Bitposition des führenden Nicht-Null-Divisorbits wird von der Bitposition des führenden Nicht-Null-Dividendenbits subtrahiert, um dadurch eine Vorausrichtungs-Bitposition zu erzeugen.
- Das am weitesten rechts liegende Bit DS0 des Divisors wird dann mit dem Dividendenbit, welches diese Vorausrichtungs- Bitposition hat, vorausgerichtet (dieses Dividendbit wird zum Zwecke der Bezugnahme als Vorausrichtungs-Dividendbit bezeichnet) und die Quotientenbits, welche dem Vorausrichtungs-Dividendbit und den Dividendbits links vom Vorausrichtungs-Dividendbit entsprechen, werden gleich Null gesetzt. Dann beginnt der herkömmliche Ganzzahlteilungsprozess (wie oben unter Bezugnahme auf die Fig. 4A-4I diskutiert), mit dem relativ zum Dividenden vorausgerichteten Divisor und der passenden Zahl von im Quotienten gespeicherten führenden Nullen, wie gerade beschrieben.
- Der Betrieb der zweiten Ausführung der vorliegenden Erfindung ist in Fig. 4L dargestellt, wo das führende Nicht-Null- Dividendbit DD3 ist, und das führenden Nicht-Null-Divisorbit DS1 ist, so dass die Vorausrichtungs-Bitposition gleich 2 ist. Das am weitesten rechts liegende Bit DS0 des Divisors wird mit dem Dividendbit DD2 vorausgerichtet, und Quotientenbits Q2 und Q7-Q3, welche dem Vorausrichtungs- Dividendbit DD2 bzw. dem Dividendbit DD7-DD3 links vom Vorausrichtungs-Dividendbit DD2 entsprechen, werden gleich Null gesetzt.
- Die zweite Ausführung führt eine Vorausrichtung des Divisors an der vorteilhaftest möglichen Position relativ zum Dividenden durch, da eine solche Ausrichtung des Divisors sowohl auf der Position des führenden Nicht-Null- Dividendenbits und der Position des führenden Nicht-Null- Divisorbits beruht.
- Die zweite Ausführung der vorliegenden Erfindung ist vorzugsweise wie in Fig. 7 implementiert, wobei ein Blockdiagramm eines Ganzzahlteilers 702 abgebildet ist. Der Ganzzahlteiler 702 enthält Register 704 und 706 zur Speicherung eines Dividenden bzw. eines Divisors.
- Eine erste Schaltung 708 zum Auffinden einer ersten eins (FFO-Schaltung) tastet den Dividenden aus Register 704 von links nach rechts ab, um das führenden Nicht-Null-Dividendbit zu finden. Eine Bitposition X des führenden Nicht-Null- Dividendbits wird dann einem Subtrahierer 712 bereitgestellt. Im Beispiel der Fig. 4L ist X gleich 3.
- Eine zweite FFO-Schaltung 710 tastet den Divisor aus Register 706 von links nach rechts ab, um das führenden Nicht-Null- Divisorbit zu lokalisieren. Eine Bitposition Y des führenden Nicht-Null-Dividendenbits wird dann dem Subtrahierer 712 bereitgestellt. Im Beispiel der Fig. 4L ist Y gleich 1. Der Subtrahierer 712 erzeugt dann die Vorausrichtungs- Bitposition (oben diskutiert) indem Y von X subtrahiert wird. Im Beispiel der Fig. 4L ist die Vorausrichtungs-Bitposition gleich 2. Der Wert der Vorausrichtungs-Bitposition wird an eine Steuerzustandsmaschine 714 übergeben.
- Die Steuerzustandsmaschine 714 befiehlt einem vollen 1-bis- 63-Rechtsbitverschiebungsregister 716 den Dividenden logisch um eine Anzahl von Bitpositionen nach rechts zu verschieben, welche gleich dem Wert der Vorausrichtungs-Bitposition ist. Der nach rechts verschobene Dividend wird dann über Multiplexer 720 und 726 im Register 704 gespeichert (gemäß geeigneter Befehle aus der Steuerzustandsmaschine 714).
- Die Bits des Dividenden, welche aus dem Rechtsverschiebungsregister 716 herausgeschoben werden, werden in einem Temporärregister (nicht abgebildet) gespeichert, welches mit dem Rechtsverschiebungsregister 716 und einem Linksverschiebungsregister 718 und einem Linksverschiebungsregister 724 verbunden ist. Im Beispiel der Fig. 4J werden Bits "01" in diesem Temporärregister gespeichert.
- Die Steuerzustandsmaschine 714 setzt auch Quotientenbits zu Null, welche Bitpositionen haben, die größer sind als die Vorausrichtungs-Bitposition (diese Quotientenbits werden vorzugsweise in einem nicht abgebildeten Register gespeichert). Im Beispiel der Fig. 4J werden die Quotientenbits Q7-Q2 auf Null gesetzt.
- An diesem Punkt ist der Divisor mit dem Dividenden vorausgerichtet worden, und die passende Zahl von führenden Nullen ist im Quotienten gespeichert worden (d. h. im Register, welches den Quotienten speichert). Eine herkömmliche Ganzzahlteilungsoperation beginnt dann unter Verwendung der Komponenten der Fig. 7. Diese Ganzzahlteilungsoperation ist der unter Bezugnahme auf Fig. 6 beschriebenen ähnlich, und wird daher nicht weiter diskutiert.
- Die Steuerzustandsmaschine 714 im Ganzzahlteiler 702 der Fig. 7 ist vorzugsweise als Hardware-Zustandsmaschine implementiert, welche wie oben beschrieben arbeitet.
- Alternativ ist die Steuerzustandsmaschine 714 ein Prozessor, der in Übereinstimmung mit Computersoftware arbeitet. Die FFOs 716 und 718 sind der Normierungsteuerung eines Fließkomma-Addierers ähnlich. Ihre Struktur und ihr Betrieb erschließt sich Fachleuten auf der Grundlage der vorliegenden Diskussion. Weitere Aspekte und Komponenten, welche in Fig. 7 gezeigt sind, erschließen sich Fachleuten.
- Nach einer dritten Ausführung der vorliegenden Erfindung wird eine Ganzzahlteilung durchgeführt durch Vorausrichten des am weitesten rechts liegenden Divisorbits DS0 mit einem vorbestimmten Bit des Dividenden. Dann wird der Divisor von einem ganzzahligen Wert subtrahiert, dessen am weitesten rechts liegende Bits gleich den Bits des Dividenden sind, die mit dem Divisor ausgerichtet sind.
- Wenn das Resultat gleich einem negativen Wert ist, dann werden die Quotientenbits, welche dem vorbestimmten Dividendbit und den Dividendbits links des vorbestimmten Dividendbits entsprechen, gleich Null gesetzt, und die herkömmliche Ganzzahlteilungsprozedur beginnt unter Verwendung des Dividenden und des vorausgerichteten Divisors. Wenn stattdessen das Resultat gleich einem positiven Wert (einschließlich Null) ist, dann beginnt die herkömmliche Ganzzahlteilung unter Verwendung des Dividenden und nichtausgerichteten Divisors. Die dritte Ausführung der vorliegenden Erfindung wird unten ausführlicher beschrieben.
- Der Betrieb der dritten Ausführung der vorliegenden Erfindung wird in Fig. 4K veranschaulicht, wo DD4 das vorbestimmte Bit des Dividenden darstellt. Das am weitesten rechts liegende Bit DS0 des Divisors wird mit diesem Dividendbit DD4 vorausgerichtet, und die Quotientenbits Q4 und Q7-Q5, welche dem vorbestimmten Dividendbit DD4 bzw. den Dividendbits DD7- DD5 links vom vorbestimmten Dividendbit DD4 entsprechen, werden gleich Null gesetzt.
- Die dritte Ausführung der vorliegenden Erfindung wird nun ausführlicher beschrieben. Fig. 1 ist ein Flussdiagramm, welches den Betrieb des Ganzzahlteilungsmechanismus gemäß der dritten Ausführung der vorliegenden Erfindung darstellt. Das Flussdiagramm der Fig. 1 wird beschrieben unter Bezugnahme auf eine beispielhafte Ganzzahlteilungsoperation, welche in den Fig. 2A-2C gezeigt ist, wobei ein 16-Bit-Dividend 202 und ein 16-Bit-Divisor 204 gezeigt werden (erfindungsgemäß haben der Dividend, der Divisor und der Quotient vorzugsweise die gleiche Länge). Das Flussdiagramm der Fig. 1 beginnt mit Schritt 102, wo die Steuerung sofort auf Schritt 104 übergeht.
- In Schritt 104 wird das am weitesten rechts liegende Bit DS0 des Divisors 204 mit einem Bit M des Dividenden 202 ausgerichtet (dieses Dividendbit wird als erstes vorbestimmtes Dividendbit bezeichnet). In anderen Worten, der Divisor 204 wird relativ zum Dividenden 202 ausgerichtet, so dass das am weitesten rechts liegende Bit DS0 des Divisors 204 mit dem Bit M des Dividenden 202 ausgerichtet wird. M ist ein vorbestimmter Wert. Im Beispiel der Fig. 2A-2C ist M gleich 4, so dass das am weitesten rechts liegenden Bit DS0 des Divisors 204 mit einem Bit DD4 des Dividenden 202 ausgerichtet wird (siehe Fig. 2B).
- Dann, in Schritt 104, wird der Divisor 204 von einem ganzzahligen Wert subtrahiert, dessen am weitesten rechts liegende Bits gleich den Bits des Dividenden 202 sind, welche mit dem Divisor 204 ausgerichtet sind (im Beispiel der Fig. 2B, Bits DD15-DD4). Somit wird im Beispiel der Fig. 2B 4 von 32 subtrahiert, um ein Ergebnis von 28 zu erhalten.
- Im Schritt 106 wird bestimmt, ob die in Schritt 104 durchgeführte Subtraktionsoperation einen negativen Wert ergibt. Das Ziel des Schritts 106 ist zu bestimmen, ob die folgende Beziehung wahr ist:
- 2 hoch M *Divisor > Dividend
- wobei "*" das Multiplikationssymbol darstellt.
- Wenn die in Schritt 104 durchgeführte Subtraktionsoperation nicht zu einem negativen Wert führt (d. h. die obige Beziehung nicht wahr ist), wie im Fall des Beispiels der Fig. 2A-2C, dann wird die Reihe von Schritten beginnend mit Schritt 112 durchgeführt (unten beschrieben). Wenn die in Schritt 104 durchgeführt Subtraktionsoperation zu einem negativen Wert führt (d. h. die obige Beziehung wahr ist), wird die mit Schritt 108 beginnende Reihe von Schritten durchgeführt.
- In Schritt 108 werden (K-M) führende Nullen in den Quotienten eingefügt (der Quotient kann zum Beispiel in einem Register gehalten werden), wobei K gleich der Zahl von Bits im Dividenden 202 ist (oder, äquivalent, im Divisor 204 oder im Quotienten). Auf diese Weise werden die Quotientenbits, welche dem ersten vorbestimmten Dividendbit DD4 und den Dividendbit DD15-DD5 links des ersten vorbestimmten Dividendbits DD4 entsprechen, gleich Null gesetzt.
- Nach der Vollendung von Schritt 108 ist der erste Schritt in einer herkömmlichen Ganzzahlteilungsprozedur (wie jene, welche oben unter Bezugnahme auf die Fig. 4A-4I beschrieben wurde, obwohl alternativ andere bekannte Ganzzahlteilungsprozeduren verwendet werden könne), welche mit dem an weitesten rechts liegenden Bit DS0 des Divisors 204 beginnt, das mit dem ersten vorbestimmten Dividendbit DD4 vorausgerichtet ist, vollendet (dies ist der Fall, da ein Wert erzeugt worden ist für das Quotientenbit Q4, welches dem ersten vorbestimmten Dividendenbit DD4 entspricht). Im Schritt 110 wird die herkömmliche Ganzzahlteilungsprozedur fortgesetzt (wie oben unter Bezugnahme auf die Fig. 4A-4I beschrieben), so dass Werte für eventuelle Quotientenbits, welche im Schritt 108 nicht auf Null gesetzt wurden, erzeugt werden. Der Rest der Teilungsoperation wird während Schritt 110 ebenfalls auf bekannte Weise erzeugt. Nach der Vollendung von Schritt 110 ist die Ganzzahlteilungsoperation abgeschlossen, wie durch das Oval 122 angegeben.
- Unter erneuter Bezugnahme auf Schritt 106, wenn die in Schritt 104 durchgeführte Subtraktionsoperation nicht zu einem negativen Wert führt, dann wird die Reihe von Schritten, welche mit Schritt 112 beginnt, durchgeführt.
- In Schritt 112 wird das am weitesten rechts liegende Bit DS0 des Divisors 204 mit einem Bit N des Dividenden 202 ausgerichtet (dieses Dividendbit wird als zweites vorbestimmtes Dividenbit bezeichnet). N ist ein vorbestimmter positiver ganzzahliger Wert. Im Beispiel der Fig. 2A-2C ist N gleich 8, so dass das am weitesten rechts liegende Bit DS0 des Divisors 204 mit einem Bit DD8 des Dividenden 202 ausgerichtet ist (siehe Fig. 2C). Dann wird der Divisor 204 von einem ganzzahligen Wert subtrahiert, dessen am weitesten rechts liegende Bits gleich den Bits des Dividenden 202 sind, welche mit dem Divisor 204 ausgerichtet sind (in diesem Fall Bits DD15-DD8). Somit wird im Beispiel der Fig. 2B 4 von 2 subtrahiert, um ein Ergebnis von -2 zu erhalten.
- In Schritt 114 wird bestimmt, ob die in Schritt 112 durchgeführte Subtraktionsoperation einen negativen Wert ergibt. Wenn die in Schritt 112 durchgeführte Subtraktionsoperation keine negativen Wert ergibt, dann wird die mit Schritt 120 beginnende Reihe von Schritten durchgeführt (unten beschrieben). Ansonsten wird die mit Schritt 116 beginnende Reihe von Schritten durchgeführt (dies geschieht im Beispiel der Fig. 2A-2C).
- Im Schritt 116 werden (K-N) führende Nullen in den Quotienten eingefügt. Auf diese Weise werden die Quotientenbits, welche dem zweiten vorbestimmten Dividendbit DD8 und den Dividendbit DD15-DD9 links vom zweiten vorbestimmten Dividendbit DD8 entsprechen, gleich Null gesetzt.
- Nach der Vollendung des Schritts 116 ist der erste Schritt in einer herkömmlichen Ganzzahlteilungsprozedur (wie jener, welche oben unter Bezugnahme auf die Fig. 4A-4I beschrieben wurde, obwohl alternativ andere bekannt Ganzzahlteilungsprozeduren verwendet werden können), welche mit dem am weitesten rechts liegenden Bit DS0 des Divisors 204 beginnt, das mit dem zweiten vorbestimmten Dividendbit DD8 ausgerichtet ist, vollendet (dies ist der Fall, da ein Wert erzeugt wurde für das Quotientenbit Q8, das dem zweiten vorbestimmten Dividendbit DD8 entspricht). In Schritt 118 wird die herkömmliche Ganzzahlteilungsprozedur fortgesetzt (wie oben unter Bezugnahme auf Fig. 4A-4I beschrieben), so dass Werte für eventuelle Quotientenbits, welche in Schritt 116 nicht auf Null gesetzt wurden, erzeugt werden. Der Rest der Teilungsoperation wird ebenfalls auf bekannte Weise während Schritt 118 erzeugt. Nach der Vollendung des Schritts 118 ist die Ganzzahlteilungsoperation vollendet, wie durch Oval 122 angegeben.
- Unter erneuter Bezugnahme auf Schritt 114, wenn die in Schritt 112 durchgeführte Subtraktionsoperation nicht zu einem negativen Wert führt, dann wird die Reihe von Schritten, welche mit Schritt 120 beginnt, durchgeführt. In Schritt 120 beginnt eine herkömmliche Ganzzahlteilungsprozedur (wie die oben beschriebene, obwohl alternativ andere bekannte Ganzzahlteilungsprozeduren verwendet werden können), welche mit dem am weitesten rechts liegenden Bit DS0 des Divisors 204 beginnt, das mit Bit (K-1) des Dividenden 202 ausgerichtet ist (d. h. dem am weitesten links liegenden Dividendenbit), um dadurch Werte für alle Quotientenbits zu erzeugen. Man beachte, dass der Quotient nicht mit irgendwelchen führenden Nullen vorgeladen wird, und der Divisor ist nicht mit irgendwelchen inneren Bits des Dividenden 202 ausgerichtet. In anderen Worten, die herkömmliche Ganzzahlteilungsprozedur geschieht ohne Modifikation. Ebenfalls wird während Schritt 110 auf bekannte Weise der Rest der Teilungsoperation erzeugt. Nach der Vollendung des Schritts 120 ist die Ganzzahlteilungsoperation vollendet, wie durch Oval 122 angegeben.
- Nach der dritten Ausführung der vorliegenden Erfindung werden zwei Versuche unternommen, um die Ganzzahlteilungsprozedur zu optimieren. Der erste Versuch entspricht Schritten 104, 106, 108 und 110, wo das am weitesten rechts liegende Bit des Divisors 204 mit dem Bit M des Dividenden 202 ausgerichtet wird. Der zweite Versuch entspricht Schritten 112, 114, 116 und 118, wo das am weitesten rechts liegende Bit des Divisors 204 mit dem Bit N des Dividenden 202 ausgerichtet wird.
- Alternative Ausführungen der vorliegenden Erfindung können einen einzigen Versuch zur Optimierung der Ganzzahlteilungsprozedur enthalten, oder können drei oder mehr Versuche zur Optimierung der Ganzzahlteilungsprozedur enthalten. In jedem aufeinanderfolgenden Versuch wird die Bitposition des vorbestimmten Dividendenbits, mit welchem das am weitesten rechts liegende Bit des Divisors vorausgerichtet ist, im Wert erhöht. Die Implementierung dieser alternativen Ausführungen erschließen sich Fachleuten.
- Vorzugsweise ist K gleich 64, M ist gleich 16 und N ist gleich 32, obwohl andere Werte verwendet werden können. Die Werte von K, M und/oder N können permanent eingestellt sein, oder über geeignete Software-Befehle durch Programmierer einstellbar sein.
- Fig. 3 ist ein Flussdiagramm, welches den Betrieb des Schritts 104 (Fig. 1) ausführlicher darstellt. Das Flussdiagramm der Fig. 3 beginnt mit Schritt 302, wobei die Steuerung unmittelbar auf Schritt 304 übergeht.
- Im Schritt 304 wird der Dividend um M Bits nach rechts verschoben, wobei Nullen in die linke Endbitposition des Dividenden geschoben werden (dies wird als logische Rechtsverschiebung bezeichnet).
- Im Schritt 306 wird der Divisor vom nach rechts verschobenen Dividenden subtrahiert.
- Der Betrieb des Schritts 112 ist dem Betrieb des Schritts 104, wie er in Fig. 3 gezeigt ist, ähnlich, außer dass im Schritt 304 "M" durch "N" ersetzt ist. Andere Implementierungen der Schritte 104 und 112 erschließen sich Fachleuten.
- Die dritte Ausführung der vorliegenden Erfindung ist vorzugsweise wie in Fig. 8 gezeigt implementiert, in der ein Blockdiagramm eines Ganzzahlteilers 802 abgebildet ist. Der Ganzzahlteiler 802 enthält Register 804 und 806 zur Speicherung eines Dividenden bzw. eines Divisors.
- Eine Steuerzustandsmaschine 814 befiehlt einem Rechtsverschiebungsregister 808 den Dividenden (im Register 804) um M Bits (M ist vorzugsweise gleich 16 Bits, obwohl alternativ andere Werte verwendet werden können) logisch nach rechts zu verschieben. Der nach rechts verschobene Dividend wird dann über Multiplexer 812 und 820 im Register 804 gespeichert (gemäß geeigneter Befehle aus der Steuerzustandsmaschine 814). Die Bits des Dividenden, welche aus dem Rechtsverschiebungsregister 808 herausgeschoben werden, werden in einem Temporärregister (nicht abgebildet) gespeichert, welches mit dem Rechtsverschiebungsregister 808 und einem Linksverschiebungsregister 810 und einem Linksverschiebungsregister 818 gekoppelt ist. Im Beispiel der Fig. 4K ist M gleich 4, so dass Bits "1001" in diesem Temporärregister gespeichert werden.
- Die Steuerzustandsmaschine 814 befiehlt dann einem Subtrahierer 816 den Divisor (in Register 806) vom momentanen Wert des Dividenden (in Register 804) zu subtrahieren. Das Ergebnis dieser Subtraktion wird dann an die Steuerzustandsmaschine 814 übermittelt. Wenn das Ergebnis dieser Subtraktion ein negativer Wert ist, dann setzt die Steuerzustandsmaschine 814 Quotientenbits auf Null, welche Bitpositionen haben, die größer oder gleich M sind (diese Quotientenbits werden vorzugsweise in einem nicht abgebildeten Register gespeichert). Im Beispiel der Fig. 4K werden die Quotientenbits Q7-Q4 auf Null gesetzt.
- An diesem Punkt ist der Divisor mit dem Dividenden vorausgerichtet worden, und die passende Zahl von führenden Nullen ist im Quotienten gespeichert worden (d. h. im Register, welches den Quotienten speichert). Eine herkömmliche Ganzzahlteilungsoperation beginnt dann unter Verwendung der Komponenten der Fig. 8. Diese Ganzzahlteilungsoperation ist jener bezüglich Fig. 6 beschriebenen ähnlich und wird daher nicht weiter diskutiert.
- Wenn stattdessen das Resultat der Subtraktionsoperation durch den Subtrahierer 816 ein positiver Wert ist, dann befiehlt die Steuerzustandsmaschine 814 dem Rechtsverschiebungsregister 808 den momentanen Dividendwert (im Register 804) um zusätzliche M Bits zu verschieben, so dass der ursprüngliche Dividend um insgesamt N Bits (wobei N = M + M) nach rechts verschoben wurde. Der nach rechts verschobene Dividend wird dann über Multiplexer 812 und 820 im Register 804 gespeichert (gemäß geeigneter Befehle aus der Steuerzustandsmaschine 814). Die Bits des Dividenden, welche aus dem Rechtsverschiebungsregister 808 herausgeschoben werden, werden nach rechts in ein Temporärregister verschoben.
- Die Steuerzustandsmaschine 814 befiehlt dann dem Subtrahierer 816 den Divisor (in Register 806) vom momentanen Wert des Dividenden (in Register 804) zu subtrahieren. Das Ergebnis dieser Subtraktion wird der Steuerzustandsmaschine 814 übermittelt. Wenn das Ergebnis dieser Subtraktion ein negativer Wert ist, setzt die Steuerzustandsmaschine 814 Quotientenbits auf Null, welche Bitposition haben, die größer oder gleich N sind (diese Quotientenbits werden vorzugsweise in einem nicht abgebildeten Register gespeichert).
- An diesem Punkt ist der Divisor mit dem Dividenden vorausgerichtet worden, und die passende Zahl von führenden Nullen ist im Quotienten gespeichert worden (d. h. im Register, welches den Quotienten speichert). Eine herkömmliche Ganzzahlteilungsoperation beginnt dann unter Verwendung der Komponenten der Fig. 8. Wie oben angemerkt, ist diese Ganzzahlteilunsoperation der unter Bezugnahme auf Fig. 6 beschriebenen ähnlich, und wird daher nicht weiter diskutiert.
- Wenn das Ergebnis der zweiten Subtraktionsoperation stattdessen ein positiver Wert ist, dann bewirkt die Steuerzustandsmaschine 814, dass der ursprüngliche Dividendwert erneut in das Register 804 geladen wird. Dann beginnt eine herkömmliche Ganzzahlteilungsoperation unter Verwendung der Komponenten der Fig. 8, wobei das am weitesten rechts liegende Bit des Divisors mit dem am weitesten links liegenden Bit des Dividenden ausgerichtet ist.
- Die Steuerzustandsmaschine 814 im Ganzzahlteiler 802 der Fig. 8 ist vorzugsweise als eine Hardware-Zustandsmaschine implementiert, welche wie oben beschrieben arbeitet.
- Alternativ ist die Steuerzustandsmaschine 814 ein Prozessor, welche in Übereinstimmung mit Computersoftware arbeitet. Andere Aspekte der in Fig. 6 gezeigten Komponenten erschließen sich Fachleuten.
- Der Ganzzahlteilungsmechanismus der vorliegenden Erfindung wurde bislang bezüglich einer Ganzzahlteilung ohne Vorzeichen beschrieben. Mit geringfügigen Modifikationen können sowohl die erste, zweite als auch dritte Ausführung der vorliegenden Erfindung auch Ganzzahlteilungen mit Vorzeichnen durchführen.
- Zum Beispiel wird für alle Ausführungen der vorliegenden Erfindung eine erste Schaltung hinzugefügt, um den Absolutwert sowohl des Dividenden als auch des Divisors vor der Durchführung der oben beschriebenen Ganzzahlteilungsalgorithmen zu erzeugen. Eine Zweite Schaltung wird hinzugefügt, um das Vorzeichen des Quotienten in Übereinstimmung mit dem jeweiligen Vorzeichen des Dividenden bzw. Divisors einzustellen (zum Beispiel wird das Vorzeichenbit des Quotienten eingestellt, um einen positiven Wert anzugeben, wenn der Dividend und Divisor beide positive Werte oder beide negative Werte waren, vor der Durchführung der Absolutwert-Operation).
- Die Implementierung der ersten und zweiten Schaltungen erschließt sich dem Fachmann. Ebenso erschließen sich Fachleuten aus dem Stand der Technik auf der Grundlage der vorliegenden Diskussion weitere Modifikationen des Ganzzahlteilungsmechanismus der vorliegenden Erfindung, um die Ganzzahlteilung mit Vorzeichen einzurichten.
- Allgemein arbeitet der Ganzzahlteilungsmechanismus der zweiten Ausführung schneller als der Ganzzahlteilungsmechanismus der dritten Ausführung, da: (1) die zweite Ausführung den Divisor relativ zum Dividenden an der vorteilhaftesten Position für die Teilung vorausrichtet, während die dritte Ausführung den Divisor an beliebig ausgewählten Bitpositionen bezüglich des Dividenden vorausrichtet; und (2) die zweite Ausführung erfordert keine iterative Durchführung von Verschiebungs- und Subtraktions- Operationen, um die Vorausrichtungsposition des Divisors zu bestimmen.
- Der Ganzzahlteilungsmechanismus der dritten Ausführung erfordert jedoch im allgemeinen weniger Hardware für die Implementierung, als der Ganzzahlteilungsmechanismus der zweiten Ausführung, da im Gegensatz zur zweiten Ausführung: (1) die dritte Ausführung keine volle Rechtsverschiebungseinrichtung erfordert (d. h. die dritte Ausführung erfordert keine Rechtsverschiebungseinrichtung, welche um 1 bis K-1 Bits verschieben kann, wobei K die Länge des Divisors ist); (2) die dritte Ausführung erfordert keine zwei FFO-Detektoren; und (3) die dritte Ausführung erfordert im allgemeinen eine weniger komplizierte Zustandsmaschine als die zweite Ausführung.
- Der Ganzzahlteilungsmechanismus der ersten Ausführung stellt einen Kompromiss zwischen den Vorteilen und Nachteilen der zweiten und dritten Ausführungen dar. Man versteht jedoch, dass diese allgemeinen Charakterisierungen nicht unbedingt für alle Implementierungen der vorliegenden Erfindung zutreffen.
- Herkömmliche Teilungsprozeduren können während aller Teilungsschritte angewendet werden.
- Die oben beschriebenen Ausführungen stellen verschiedene Prozeduren und Techniken dar, um das Ausmaß zu bestimmen, in dem der Divisor relativ zum Dividenden vorausgerichtet wird, vor dem Beginn der herkömmlichen Teilungsoperation.
- Während verschiedene Ausführungen der vorliegenden Erfindung oben beschrieben wurden, ist zu beachten, dass sie als Beispiele präsentiert wurden, und nicht als Beschränkung. Somit ist der Umfang der vorliegenden Erfindung nicht auf irgendeine der oben beschriebenen Beispielsausführungen beschränkt, sondern sollte nur in Übereinstimmung mit den folgenden Ansprüchen definiert werden.
Claims (16)
1. Verfahren zum Dividieren eines ganzzahligen Dividenden
durch einen ganzzahligen Divisor, um einen ganzzahligen
Quotienten zu erzeugen, mit den Schritten:
(1) Ausrichten (104) des Divisors bezogen auf den
Dividenden derart, dass ein am weitesten rechts
stehendes Bit des Divisors ausgerichtet ist mit
einem Bit M des Dividenden, wobei M ein
ganzzahliger Wert ist, der eine Bit-Stelle des
Dividenden identifiziert;
(2) Vergleichen (104) des Divisors mit einem
ganzzahligen Wert, dessen am weitesten rechts
stehende Bits gleich Bits des Dividenden sind,
die mit den Bits des Divisors ausgerichtet sind;
(3) Löschen (106, 108) auf Null, als ein Ergebnis
des Vergleichs, der Quotienten-Bits, die
stellenmäßig dem Dividenden-Bit M entsprechen,
und auf Bits des Dividenden, die links von dem
Dividenden-Bit M angeordnet sind; und
(4) Dividieren (110), als das Ergebnis des
Vergleichs, des Dividenden durch den Divisor,
wie in Schritt (1) ausgerichtet, um dadurch
Werte für irgendwelche ungelöschten Quotienten-
Bits zu erzeugen.
2. Verfahren nach Anspruch 1, bei dem Schritt (1) den
Schritt des logischen Nach-Rechts-Verschiebens des
Dividenden um M Bits umfasst.
3. Verfahren nach Anspruch 1, bei dem Schritt (2) den
Schritt des Feststellens, ob ein Wert 2M*Divisor größer
ist als der Dividend, umfasst.
4. Verfahren nach Anspruch 1, bei dem Schritt (2) die
Schritte umfasst:
Subtrahieren des Divisors von dem ganzzahligen Wert, um
ein Subtraktionsergebnis zu erzeugen; und
Feststellen, dass der Divisor größer ist als der
ganzzahlige Wert, falls das Subtraktionsergebnis ein
negativer Wert ist, wobei die Schritte (3) und (4)
ausgeführt werden, falls festgestellt wird, dass der
Divisor größer ist als der ganzzahlige Wert.
5. Verfahren nach Anspruch 4, bei dem der Dividend und
der Quotient jeweils eine Länge von K-Bits besitzen,
wobei Schritt (3) den Schritt des Einfügens von (K-M)
führenden Nullen in den Quotienten umfasst, falls der
Divisor größer ist als der ganzzahlige Wert.
6. Verfahren nach Anspruch 4 ferner mit den folgenden
Schritten, die ausgeführt werden falls festgestellt
wird, dass der Divisor nicht größer ist als der
ganzzahlige Wert:
(5) Ausrichten des Divisors bezüglich des Dividenden
derart, dass ein am weitesten rechts stehendes Bit
des Divisors ausgerichtet wird mit einem Bit N des
Dividenden, wobei N ein ganzzahliger Wert ist, der
eine Bitstelle des Dividenden identifiziert;
(6) Vergleichen des Divisors mit einem zweiten
ganzzahligen Wert, dessen am weitesten rechts
stehende Bits gleich Bits des Dividenden sind, die
mit Bits des Divisors als Ergebnis der in Schritt
(5) durchgeführten Ausrichtungsoperation
ausgerichtet sind;
(7) Löschen auf Null, als ein Ergebnis des Vergleichs
in Schritt (6), von Quotienten-Bits, die
stellenmäßig dem Dividenden-Bit N entsprechen, und
auf Bits des Dividenden, die links von dem
Dividenden-Bit N angeordnet sind; und
(8) Dividieren, als ein Ergebnis des Vergleichs aus
Schritt (6), des Dividenden durch den Divisor, wie
in Schritt (5) ausgerichtet, um dadurch Werte für
irgendwelche ungelöschten Quotienten-Bits zu
erzeugen.
7. Verfahren nach Anspruch 6, bei dem der Dividend, der
Divisor und der Quotient jeweils eine Länge von K-Bits
besitzen, wobei K = 64, M = 16 und N = 32.
8. Vorrichtung zum Dividieren eines ganzzahligen
Dividenden durch einen ganzzahligen Divisor, um einen
ganzzahligen Quotienten zu erzeugen, mit:
Mitteln (104) zum Ausrichten des Divisors bezogen auf
den Dividenden derart, dass ein am weitesten rechts
stehendes Bit des Divisors ausgerichtet ist mit einem
Bit M des Dividenden, wobei M ein ganzzahliger Wert
ist, der eine Bit-Stelle des Dividenden identifiziert;
Mitteln (104) zum Vergleichen des Divisors mit einem
ganzzahligen Wert, dessen am weitesten rechts stehende
Bits gleich Bits des Dividenden sind, die mit den Bits
des Divisors ausgerichtet sind;
Mitteln (108), die auf die Vergleichsmittel ansprechen,
zum Löschen auf Null der Quotienten-Bits, die
stellenmäßig dem Dividenden-Bit M entsprechen, und auf
Bits des Dividenden, die links von dem Dividenden-Bit M
angeordnet sind; und
Mittel (110), die auf die Vergleichsmittel
ansprechen, zum Dividieren des Dividenden durch den
Divisor, wie durch die Ausrichtungsmittel
ausgerichtet, um dadurch Werte für irgendwelche
ungelöschten Quotienten-Bits zu erzeugen.
9. Vorrichtung nach Anspruch 8, bei der die
Ausrichtungsmittel den Dividenden logisch um M Bits
nach rechts verschieben.
10. Vorrichtung nach Anspruch 8, bei der die
Vergleichsmittel feststellen, ob ein Wert des 2M*Divisor
größer ist als der Dividend.
11. Vorrichtung nach Anspruch 8, bei der die
Vergleichsmittel umfassen:
Mittel zum Subtrahieren des Divisors von dem
ganzzahligen Wert, um ein Subtraktionsergebnis zu
erzeugen; und
Mittel zum Feststellen, dass der Divisor größer ist als
der ganzzahlige Wert, falls das Subtraktionsergebnis
ein negativer Wert ist, wobei die Löschmittel und die
Feststellmittel auf das Feststellen ansprechen, dass
der Divisor größer ist als der ganzzahlige Wert.
12. Vorrichtung nach Anspruch 11, bei der der Dividend und
der Quotient jeweils eine Länge von K-Bits besitzen,
wobei die Löschmittel (K-M) führende Nullen in den
Quotienten einfügen, falls der Divisor größer ist als
der ganzzahlige Wert.
13. Vorrichtung nach Anspruch 11 ferner mit:
zweiten Ausrichtmitteln, die auf die ersten
Vergleichsmittel ansprechen, zum Ausrichten des
Divisors bezüglich des Dividenden derart, dass ein am
weitesten rechts stehendes Bit des Divisors
ausgerichtet wird mit einem Bit N des Dividenden, wobei
N ein ganzzahliger Wert ist, der eine Bit-Stelle des
Dividenden identifiziert;
zweiten Vergleichsmitteln zum Vergleichen des Divisors
mit einem zweiten ganzzahligen Wert, dessen am
weitesten rechts stehende Bits gleich Bits des
Dividenden sind, die mit Bits des Divisors als Ergebnis
der von den zweiten Ausriochtmitteln durchgeführten
Ausrichtungsoperation ausgerichtet sind;
zweiten Löschmitteln, die auf die zweiten
Vergleichsmittel ansprechen, zum Löschen auf Null von
Quotienten-Bits, die stellenmäßig dem Dividenden-Bit N
entsprechen, und auf Bits des Dividenden, die links von
dem Dividenden-Bit N angeordnet sind; und
zweiten Dividiermitteln, die auf die zweiten
Vergleichsmittel ansprechen, zum Dividieren des
Dividenden durch den Divisor, wie von den zweiten
Ausrichtmitteln ausgerichtet, um dadurch Werte für
irgendwelche ungelöschten Quotienten-Bits zu erzeugen.
14. Vorrichtung nach Anspruch 13, bei der der Dividend, der
Divisor und der Quotient jeweils eine Länge von K-Bits
besitzen, wobei K = 64, M = 16 und N = 32.
15. Verfahren zum Dividieren eines ganzzahligen Dividenden
durch einen ganzzahligen Divisor, um einen ganzzahligen
Quotienten zu erzeugen, mit den Schritten:
(1) Auffinden eines führenden Nicht-Null-Bits im
Dividenden;
(2) Ausrichten des Divisors in Bezug auf den
Dividenden derart, dass ein am weitesten rechts
stehendes Bit des Divisors ausgerichtet ist mit
dem führenden Dividenden-Bit (Fig. 4J);
(3) Löschen auf Null von Quotienten-Bits, die
stellenmäßig Bits des Dividenden entsprechen,
die links von dem führenden Dividenden-Bit
angeordnet sind; und
(4) Dividieren des Dividenden durch den Divisor, wie
ausgerichtet in Schritt (2), um dadurch Werte
für irgendwelche ungelöschten Quotienten-Bits zu
erzeugen.
16. Verfahren zum Dividieren eines ganzzahligen Dividenden
durch einen ganzzahligen Divisor, um einen ganzzahligen
Quotienten zu erzeugen, mit den Schritten:
(1) Auffinden eines führenden Nicht-Null-Bits im
Dividenden und eines führenden Nicht-Null-Bits
im Divisor;
(2) Subtrahieren einer Bit-Stelle des führenden
Nicht-Null-Divisor-Bits von einer Bit-Stelle des
führenden Nicht-Null-Dividenden-Bits, um dadurch
einen Vor-Ausrichtungs-Bit-Wert zu erzeugen;
(3) Ausrichten (Fig. 4L) des Divisors bezogen auf
den Dividenden derart, dass ein am weitesten
rechts stehendes Bit des Divisors ausgerichtet
ist mit einem Bit des Dividenden, das eine Bit-
Stelle gleich dem Vor-Ausrichtungs-Bit-Wert hat;
(4) Löschen auf Null von Quotienten-Bits, die Bit-
Stellen gleich oder größer dem Vor-Ausrichtungs-
Bit-Wert haben; und
(5) Dividieren des Dividenden durch den Divisor, wie
ausgerichtet in Schritt (3), um dadurch Werte
für irgendwelche ungelöschten Quotienten-Bits zu
erzeugen.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/167,006 US5493523A (en) | 1993-12-15 | 1993-12-15 | Mechanism and method for integer divide involving pre-alignment of the divisor relative to the dividend |
PCT/JP1994/002109 WO1995016951A1 (fr) | 1993-12-15 | 1994-12-15 | Procede et dispositif de division d'un nombre entier |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69430053D1 DE69430053D1 (de) | 2002-04-11 |
DE69430053T2 true DE69430053T2 (de) | 2002-11-21 |
Family
ID=22605562
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69430053T Expired - Lifetime DE69430053T2 (de) | 1993-12-15 | 1994-12-15 | Ganzzahldivisionsvorrichtung und -verfahren |
Country Status (9)
Country | Link |
---|---|
US (1) | US5493523A (de) |
EP (1) | EP0684548B1 (de) |
JP (1) | JP3564138B2 (de) |
KR (1) | KR100305544B1 (de) |
CN (1) | CN1103077C (de) |
DE (1) | DE69430053T2 (de) |
HK (1) | HK1018168A1 (de) |
TW (1) | TW280891B (de) |
WO (1) | WO1995016951A1 (de) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5754460A (en) * | 1995-05-26 | 1998-05-19 | National Semiconductor Corporation | Method for performing signed division |
US5946223A (en) * | 1995-12-08 | 1999-08-31 | Matsushita Electric Industrial Co. Ltd. | Subtraction/shift-type dividing device producing a 2-bit partial quotient in each cycle |
US5805489A (en) * | 1996-05-07 | 1998-09-08 | Lucent Technologies Inc. | Digital microprocessor device having variable-delay division hardware |
US5768573A (en) * | 1996-11-20 | 1998-06-16 | International Business Machines Corporation | Method and apparatus for computing a real time clock divisor |
TW374885B (en) * | 1997-06-06 | 1999-11-21 | Matsushita Electric Ind Co Ltd | The arithmetic unit |
US6317771B1 (en) * | 1998-01-15 | 2001-11-13 | Altera Corporation | Method and apparatus for performing digital division |
US20040249877A1 (en) * | 2003-06-05 | 2004-12-09 | International Business Machines Corporation | Fast integer division with minimum number of iterations in substraction-based hardware divide processor |
US7403966B2 (en) * | 2003-12-08 | 2008-07-22 | Freescale Semiconductor, Inc. | Hardware for performing an arithmetic function |
US7711934B2 (en) * | 2005-10-31 | 2010-05-04 | Mips Technologies, Inc. | Processor core and method for managing branch misprediction in an out-of-order processor pipeline |
US7734901B2 (en) * | 2005-10-31 | 2010-06-08 | Mips Technologies, Inc. | Processor core and method for managing program counter redirection in an out-of-order processor pipeline |
US20070204139A1 (en) | 2006-02-28 | 2007-08-30 | Mips Technologies, Inc. | Compact linked-list-based multi-threaded instruction graduation buffer |
US7721071B2 (en) * | 2006-02-28 | 2010-05-18 | Mips Technologies, Inc. | System and method for propagating operand availability prediction bits with instructions through a pipeline in an out-of-order processor |
US20080016326A1 (en) | 2006-07-14 | 2008-01-17 | Mips Technologies, Inc. | Latest producer tracking in an out-of-order processor, and applications thereof |
US7370178B1 (en) * | 2006-07-14 | 2008-05-06 | Mips Technologies, Inc. | Method for latest producer tracking in an out-of-order processor, and applications thereof |
US7657708B2 (en) * | 2006-08-18 | 2010-02-02 | Mips Technologies, Inc. | Methods for reducing data cache access power in a processor using way selection bits |
US7650465B2 (en) | 2006-08-18 | 2010-01-19 | Mips Technologies, Inc. | Micro tag array having way selection bits for reducing data cache access power |
US7647475B2 (en) * | 2006-09-06 | 2010-01-12 | Mips Technologies, Inc. | System for synchronizing an in-order co-processor with an out-of-order processor using a co-processor interface store data queue |
US8032734B2 (en) * | 2006-09-06 | 2011-10-04 | Mips Technologies, Inc. | Coprocessor load data queue for interfacing an out-of-order execution unit with an in-order coprocessor |
US20080082793A1 (en) * | 2006-09-29 | 2008-04-03 | Mips Technologies, Inc. | Detection and prevention of write-after-write hazards, and applications thereof |
US8078846B2 (en) | 2006-09-29 | 2011-12-13 | Mips Technologies, Inc. | Conditional move instruction formed into one decoded instruction to be graduated and another decoded instruction to be invalidated |
US9946547B2 (en) | 2006-09-29 | 2018-04-17 | Arm Finance Overseas Limited | Load/store unit for a processor, and applications thereof |
US7594079B2 (en) | 2006-09-29 | 2009-09-22 | Mips Technologies, Inc. | Data cache virtual hint way prediction, and applications thereof |
JP2009175958A (ja) * | 2008-01-23 | 2009-08-06 | Seiko Epson Corp | 除算器および除算方法、並びに除算器を用いた画像符号化装置 |
JP5397061B2 (ja) * | 2009-07-21 | 2014-01-22 | 富士通株式会社 | 演算処理装置、その制御方法および演算処理プログラム |
RU2498393C1 (ru) * | 2012-07-27 | 2013-11-10 | Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Вятский государственный университет ФГБОУ ВПО "ВятГУ" | Способ деления целых двоичных чисел без остатка начиная с младших разрядов |
US9747074B2 (en) | 2014-02-25 | 2017-08-29 | Kabushiki Kaisha Toshiba | Division circuit and microprocessor |
CN111104092B (zh) * | 2019-12-06 | 2022-10-11 | 北京多思安全芯片科技有限公司 | 一种快速除法器和除法运算方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3293418A (en) * | 1964-07-08 | 1966-12-20 | Control Data Corp | High speed divider |
US4380051A (en) * | 1980-11-28 | 1983-04-12 | Motorola, Inc. | High speed digital divider having normalizing circuitry |
US4460970A (en) * | 1981-05-22 | 1984-07-17 | Data General Corporation | Digital data processing system using unique techniques for handling the leading digits and the signs of operands in arithmetic operations |
US4760550A (en) * | 1986-09-11 | 1988-07-26 | Amdahl Corporation | Saving cycles in floating point division |
JP2585649B2 (ja) * | 1987-11-30 | 1997-02-26 | インデータシステムズ株式会社 | 除算回路 |
EP0356996B1 (de) * | 1988-08-29 | 1996-10-30 | Nec Corporation | Digitale Divisionsschaltung mit einem N/2-Bit-Subtrahierer für N-Subtraktionen |
US5097435A (en) * | 1988-12-24 | 1992-03-17 | Kabushiki Kaisha Toshiba | High speed dividing apparatus |
JPH02194430A (ja) * | 1989-01-24 | 1990-08-01 | Oki Electric Ind Co Ltd | 除算器 |
JPH04283832A (ja) * | 1991-03-13 | 1992-10-08 | Fujitsu Ltd | 除算回路 |
JPH0540609A (ja) * | 1991-08-02 | 1993-02-19 | Toshiba Corp | 浮動小数点除算装置 |
JPH0553768A (ja) * | 1991-08-23 | 1993-03-05 | Mitsubishi Electric Corp | 除算器 |
JPH0573271A (ja) * | 1991-09-17 | 1993-03-26 | Nec Ic Microcomput Syst Ltd | 除算回路 |
US5317531A (en) * | 1992-04-02 | 1994-05-31 | Intel Corporation | Apparatus for reducing the size of an arithmetic and logic unit necessary to practice non-restore division |
US5297073A (en) * | 1992-08-19 | 1994-03-22 | Nec Electronics, Inc. | Integer divide using shift and subtract |
-
1993
- 1993-12-15 US US08/167,006 patent/US5493523A/en not_active Expired - Lifetime
-
1994
- 1994-12-15 WO PCT/JP1994/002109 patent/WO1995016951A1/ja active IP Right Grant
- 1994-12-15 DE DE69430053T patent/DE69430053T2/de not_active Expired - Lifetime
- 1994-12-15 CN CN94191178A patent/CN1103077C/zh not_active Expired - Lifetime
- 1994-12-15 EP EP95902962A patent/EP0684548B1/de not_active Expired - Lifetime
- 1994-12-15 JP JP51666695A patent/JP3564138B2/ja not_active Expired - Lifetime
- 1994-12-15 KR KR1019950703430A patent/KR100305544B1/ko not_active IP Right Cessation
-
1995
- 1995-02-11 TW TW084101214A patent/TW280891B/zh not_active IP Right Cessation
-
1998
- 1998-12-22 HK HK98114553A patent/HK1018168A1/xx not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR960701397A (ko) | 1996-02-24 |
US5493523A (en) | 1996-02-20 |
JP3564138B2 (ja) | 2004-09-08 |
KR100305544B1 (ko) | 2001-11-22 |
EP0684548B1 (de) | 2002-03-06 |
DE69430053D1 (de) | 2002-04-11 |
HK1018168A1 (en) | 1999-12-10 |
EP0684548A4 (de) | 1996-04-03 |
TW280891B (de) | 1996-07-11 |
WO1995016951A1 (fr) | 1995-06-22 |
EP0684548A1 (de) | 1995-11-29 |
CN1103077C (zh) | 2003-03-12 |
CN1117763A (zh) | 1996-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69430053T2 (de) | Ganzzahldivisionsvorrichtung und -verfahren | |
DE69131458T2 (de) | Hardware-Anordnung zur Addition und Subtraktion von Gleitkommazahlen | |
DE69328070T2 (de) | Maske zum Auswählen von Kompenenten in einem Verbundoperand | |
DE19540102C2 (de) | Verfahren und Gleitkomma-Recheneinheit mit einer Logik für eine Vierfach-Präzisions-Arithmetik | |
DE69326314T2 (de) | Durchführung aritmetische Operationen auf Daten | |
DE10085322B4 (de) | Schaltungsanordnung, Verfahren und Datenverarbeitungs-Einrichtung zum Durchführen einer Ein-Zyklus-Addition oder -Subtraktion und eines Vergleichs bei einer Arithmetik redundanter Form | |
DE19983860B4 (de) | Ein Verfahren und eine Einrichtung zur verbesserten Prädikatvorhersage | |
DE68928376T2 (de) | Vorrichtung zum multiplizieren, teilen und ziehen der quadratwurzel | |
DE69130653T2 (de) | "Pipelined" Verarbeitungseinheit für Fliesskommazahlen | |
DE68926330T2 (de) | Antizipator für die Anzahl vorhergehender Nullen/Einsen | |
DE69132597T2 (de) | Verfahren und Gerät zur Berechnung von Gleitkommadaten | |
DE69416283T2 (de) | Überlaufsteuerung für arithmetische Operationen | |
DE60210494T2 (de) | Hochgeschwindigkeitsberechnung in einer arithmetik- und logikschaltung | |
DE112008002158B4 (de) | Verfahren und System zur Multiplikation großer Zahlen | |
DE4414172A1 (de) | Gleit-Komma-Arithmetikeinheit zur Division und Quadratwurzelberechnung, die eine modifizierte Newton-Raphson Technik verwendet | |
DE69130510T2 (de) | Arithmetisches Gerät zur Berechnung von transzendenten Elementarfunktionen | |
DE69030128T2 (de) | Signalprozessor | |
DE69132517T2 (de) | Gleitkommaprozessor | |
DE60216210T2 (de) | Binärer Grösse-Vergleicher | |
DE1549476A1 (de) | Anordnung zur Ausfuehrung von Divisionen | |
DE68924386T2 (de) | Verfahren und Gerät zur Radix-2**n-Division mit überlappender Quotientenbitauswahl und gleichzeitiger Rundung und Korrektur des Quotienten. | |
DE3701599C2 (de) | ||
DE69227348T2 (de) | DIVIDIERSCHALTUNG FüR GLEITKOMMAZAHLEN | |
DE10013068C2 (de) | Potenzierungsoperationsvorrichtung | |
DE69519448T2 (de) | Digitale Verarbeitungsanlage mit Befehlen zum Suchen des Minimums und Maximums |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |