DE69227348T2 - DIVIDIERSCHALTUNG FüR GLEITKOMMAZAHLEN - Google Patents

DIVIDIERSCHALTUNG FüR GLEITKOMMAZAHLEN

Info

Publication number
DE69227348T2
DE69227348T2 DE69227348T DE69227348T DE69227348T2 DE 69227348 T2 DE69227348 T2 DE 69227348T2 DE 69227348 T DE69227348 T DE 69227348T DE 69227348 T DE69227348 T DE 69227348T DE 69227348 T2 DE69227348 T2 DE 69227348T2
Authority
DE
Germany
Prior art keywords
section
division
quotient
signal
register
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69227348T
Other languages
English (en)
Other versions
DE69227348D1 (de
Inventor
Koichi Kuroiwa
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Application granted granted Critical
Publication of DE69227348D1 publication Critical patent/DE69227348D1/de
Publication of DE69227348T2 publication Critical patent/DE69227348T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/535Dividing only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/535Dividing only
    • G06F7/537Reduction of the number of iteration steps or stages, e.g. using the Sweeny-Robertson-Tocher [SRT] algorithm
    • G06F7/5375Non restoring calculation, where each digit is either negative, zero or positive, e.g. SRT
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/487Multiplying; Dividing
    • G06F7/4873Dividing

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Description

    GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft eine Gleitkomma-Divisionsschaltung und spezieller eine Divisionsschaltung zur Durchführung einer Division von Gleitkommadaten, die durch den Standard des Institute of Electrical and Electronics Engineers (IEEE) festgelegt sind.
  • Eine Vektor-Arithmetikeinheit in einem Vektorprozessor führt eine Addition, Subtraktion, Multiplikation und Division von Vektordaten durch. Solch eine Vektor-Arithmetikeinheit ist in einer Large-Scale-Halbleiterschaltung (LSI) montiert und die Division der Vektordaten wird in herkömmlicher Weise durch eine Multiplikationsschaltung in derselben durchgeführt. Da es wünschenswert ist, um die Geschwindigkeit und Betriebsgenauigkeit eines Vektorprozesses zu erhöhen, daß jede der arithmetischen Operationen in paralleler Weise durch spezialisierte Schaltkreise durchgeführt wird, wurden kürzlich Divisionsschaltungen getrennt von der Multiplikationsschaltung geschaffen.
  • Jedoch führt das Vorsehen einer Divisionsschaltung getrennt von einer Multiplikationsschaltung zu einem erhöhten Energieverbrauch der LSI aufgrund der Hinzufügung einer Divisionsschaltung. Diese Erhöhung erfordert zwangsläufig eine Reduzierung in dem Stromverbrauch einer Divisionsschaltung.
  • STAND DER TECHNIK
  • Eine Gleitkomma-Divisionsschaltung führt einen Befehl zur Division dadurch aus, indem eine rekursive Prozedur wiederholt wird, die durch die folgende Gleichung definiert ist:
  • R (j + 1) = r · R (j) - qj+1 · D (1)
  • Bei obengenannten Gleichung bildet j einen Exponenten einer Rekursionsformel und beträgt entweder 0 oder eine ganze Zahl in dem Bereich von 1 bis n - 1, D ist ein Divisor, qj+1 a(j + 1)-te Quotientenziffer, gezählt von einem Dezimalpunkt (g&sub0; ist ein Vorzeichen), n eine Ziffernlänge eines Quotienten, r eine Radix, r · R (j) ein Partialdividend, bevor die (j + 1)-te Quotientenziffer bestimmt wurde, R (j + 1) ein Partialrest, nachdem die (j + 1)-te Quotientenziffer bestimmt wurde, R (0) ein Dividend (Anfangswert des Partialdividenden), R (n) ein endgültiger Rest.
  • Der Quotient Q wird ausgedrückt durch eine Folge oder Serie von (n + 1) Quotientenziffern q&sub0; - qn, wie dies in der folgenden Gleichung gezeigt ist:
  • Q = q&sub0;, q&sub1;, q&sub2;, ..., qn-1, qn (2)
  • Demzufolge wird die meiste Zeit, die für die Ausführung einer Division erforderlich ist, für eine Wiederholung der oben angegebenen rekursiven Prozedur benötigt. Ein Versuch oder Annäherung, um die Wiederholungen dieses rekursiven Prozesses zu reduzieren, so daß die Division beschleunigt ausgeführt wird, ist als eine Divisionsmethode vom Nicht-Wiederverwertungstyp (non-recovery typ) bekannt. Bei dieser Divisionsmethode vom Nicht-Wiederverwertungstyp wird der Tatsache Aufmerksamkeit geschenkt, daß ein Satz von Quotienten, der zum Erzeugen einer Quotientenziffer qj+1 verwendet wird, aus einem Satz von mit Vorzeichen versehenen Quotienten, der keine 0 enthält, bestehen kann, bevor die Quotientenziffer aus dem Quotientensatz ausgewählt wird. Unter der Annahme, daß r eine Radix ist, kann der oben erwähnte Satz von mit Vorzeichen versehenen Quotienten wie folgt angegeben werden:
  • - (r - 1), - (r - 2), ..., -1, +1, ..., r - 2, r - 1
  • Dieses Divisionsverfahren vom Nicht-Wiederverwertungstyp ist dadurch gekennzeichnet, daß negative Zahlen Ziffern des Ergebnisses einer Operation wiedergeben dürfen, indem eine Umkehrung von einem positive zu einem negativen Dividenden nicht wiederverwertet wird, wobei die Umkehrung dann auftritt, wenn jede Ziffer des Ergebnisses der Operation bestimmt wird; und daß der Divisor oder ein Vielfaches des Divisors zu der Ziffer addiert oder von dieser abgezogen wird, abhängig von dem Vorzeichen des Dividenden; womit das Verfahren als Separationsverfahren bezeichnet wird.
  • Bei diesem Verfahren wird ein Quotient dadurch erhalten, indem zuerst in ein Divisorregister Daten für ein Vielfaches des Divisors eingebracht werden, der das k-fache des Divisors beträgt (erhalten durch Multiplizieren des Divisors mit jedem Quotienten des oben erwähnten Satzes von mit Vorzeichen versehenen Quotienten), Auswählen des oben erwähnten Divisorregisters auf der Grundlage eines Voraussagesignals, welches von einer Quotientenvoraussagevorrichtung ausgegeben wird, und Wiederholen der Addition oder Subtraktion des Vielfachen des Divisors, der das k-fache des Divisors beträgt.
  • Eine Variation dieses Divisionsverfahrens vom Nicht-Wiederverwertungstyp, die dann verwendet wird, wenn eine schnellere und genauere Division durchgeführt werden soll, ist als eine Großradix-Nicht-Wiederverwertungsdivisionsmethode bekannt, bei der die Zahl der Schleifen der Division dadurch reduziert wird, indem die Radix r er höht wird, so daß die Zahl der Bits, die als eine Operationseinheit dienen, relativ groß ist.
  • Eine Divisionsschaltung dieser Konfiguration kann eine Operation eines Vektorprozessors dadurch beschleunigen, indem sie eine Divisionsschaltung enthält, die parallel mit einer Additionsschaltung, einer Subtraktionsschaltung und einer Multiplikationsschaltung läuft. Es sei jedoch darauf hingewiesen, daß die Additions-, Subtraktions-, Multiplikations- und Divisionsschaltungen keinen Operationsbefehl während der gesamten Zeit erhalten; es gibt dabei Zeiten, bei denen sie keinerlei Operation ausführen. Es kann elektrische Energie vergeudet werden, da selbst dann, wenn diese Schaltungen in einen Ruhezustand versetzt werden und keine Operationen ausführen, das ledigliche Einspeisen eines Taktsignals an diese die Schaltungen aktiviert.
  • Demzufolge werden bei einer Zeitperiode, wenn die Additions-, Subtraktions-, Multiplikations- und Divisionsschaltungen in einen Ruhezustand versetzt sind und keine Operationen ausführen, interne Daten in jeder Schaltung beibehalten, und zwar in einem festen Zustand, indem das Verriegeln von Eingangsdaten mit Hilfe einer Eingabeverriegelung weggelassen wird; es wird der Stromverbrauch dadurch gesteuert, indem der Schaltvorgang von Transistoren, die in jeder Schaltung enthalten sind, gesteuert wird.
  • In einer Divisionsschaltung, die das Divisionsverfahren vom Großradix-Nicht-Wiederverwertungstyp verwendet, kann der Schaltvorgang der Transistoren, die in der Schaltung enthalten sind, nicht lediglich dadurch gesteuert werden, indem die Eingangsdaten mit Hilfe einer Eingabeverriegelung fixiert werden, die bei Abwesenheit eines Divisionsbefehls ausgeführt wird, da das oben erwähnte Trennungsverfahren bei dieser Methode angewendet wird, um eine höhere Betriebsgeschwindigkeit zu erhalten und derart konfiguriert wird, daß intern Schleifen ausgeführt werden. Somit ist im Gegensatz zu den anderen Schaltungen die Divisions schaltung nicht in der Lage, selbst bei Abwesenheit einer Divisionsinstruktion die Schaltoperationen der Transistoren darin zu halten, so daß sie ausgeführt werden aufgrund eines Eingangstaktes, es werden die Schaltoperationen genauso ausgeführt als ob ein Befehl für eine Division eingegeben worden wäre. Somit kann nicht nur der Stromverbrauch nicht gesteuert werden, sondern der Stromverbrauch nimmt selbst zu, da die Taktfrequenz darin auf eine hohe Rate für einen schnellen Betrieb eingestellt ist.
  • Die vorliegende Erfindung wurde im Hinblick auf die oben erläuterten Nachteile entwickelt und hat sich zum Ziel gesetzt, eine Gleitkomma-Divisionsschaltung zu schaffen, bei der der oben erläuterte Nachteil dadurch beseitigt wird, indem die Operation eines Quotienten-Generierungsabschnitts wenigstens dann angehalten wird, wenn kein Befehl für eine Division eingegeben wurde.
  • Ein anderes Ziel der vorliegenden Erfindung besteht darin, eine Gleitkomma-Divisionsschaltung zu schaffen, die dann, wenn ein Muster, welches keine arithmetische Operation bildet, während der Ausführung eines Befehls für eine Division detektiert wird, ein vorgeschriebenes Muster ausgeben kann, nachdem eine Operation eines Quotienten-Generierungsabschnitts angehalten worden ist.
  • Die US-A-4760550 beschreibt eine Gleitkomma-Divisionsschaltung, in der einige Vorbearbeitungen durchgeführt werden. In diesem Fall werden führend Null-Quotientenbits dadurch beseitigt, indem die Größen der höchstwertigen Ziffern von Bruchteilen des Dividenden und des Divisors verglichen werden.
  • Die EP-A-0 171088 beschreibt einen Mikroprozessor mit einer Ausführungseinheit, die unabhängig in einen Standby-Zustand verbracht werden kann. Ein zweiter Befehlsdekodierer wird in Betrieb gesetzt, um das Verbringen der Ausführungseinheit in den Standby-Zustand zu steuern.
  • Die EP-A-0 208287 beschreibt einen DMA-Regler, der die Taktanlegung an das DMA-Ausführungssystem gemäß den DMA-Steuersignalen verhindert. Die Steuerschaltung enthält einen Verriegelungskreis.
  • Gemäß der Erfindung wird eine Gleitkomma-Divisionsschaltung geschaffen, die aufweist: einen Schaltungsabschnitt zur Durchführung einer Vor-Teilungsverarbeitung an Gleitkommadaten, nämlich an jedem Divisor und einem Dividenden; einen Exponenten-Operationsabschnitt zur Durchführung einer Operation an Exponententeilen der Gleitkommadaten, wobei nämlich der Divisor und der Dividend der Vorverarbeitung durch den Schaltungsabschnitt unterworfen werden; einen Mantissendivisionsabschnitt, in den Mantissenteile der Gleitkommadaten, nämlich der Divisor und der Dividend, die der Vorverarbeitung durch den Schaltungsabschnitt unterworfen wurden, eingespeist werden, wobei Prozeduren, die auf einem vorbestimmten Algorithmus basieren, zu dem Zweck wiederholt werden, um Mantissenteildaten eines Quotienten zu generieren; und Quotienten-Generierungsabschnitte zum Generieren eines Quotienten, der aus einer vorbestimmten Zahl von Bits besteht, auf der Grundlage von Ausgangsdaten von wenigstens dem Exponenten-Operationsabschnitt und dem Mantissendivisionsabschnitt; dadurch gekennzeichnet, daß der Schaltungsabschnitt ferner eine Musterbestimmung an sowohl dem Gleitkommadivisor als auch Dividenden durchführt; ein Ausnahme-/Nichtbetriebs-Detektionsabschnitt vorgesehen ist, um ein vorbestimmtes Nichtbetriebsmuster auf der Grundlage eines Ergebnisses der Musterbestimmung zu bestimmen, die in dem Schaltungsabschnitt erhalten wurde, und zwar in bezug auf den Divisor und den Dividenden, um eine Ausgangsgröße für die Quotienten-Generierungsabschnitte zu erzeugen und um ein Stoppsignal zu erzeugen, wenn das Nichtbetriebsmuster detektiert wird; und wobei das Stoppsignal wiederholte Operationen des Mantissendivisionsabschnitts dadurch stoppt, indem eine Ver riegelungsoperation eines Registers in dem Mantissendivisionsabschnitt angehalten wird.
  • Gemäß der vorliegenden Erfindung wird der Stromverbrauch in einem Mantissendivisionsabschnitt zu einem Zeitpunkt reduziert, bei dem ein Nichtbetriebsmuster detektiert wird, da eine Verriegelungsoperation eines Registers in dem Mantissendivisionsabschnitt durch ein Stoppsignal angehalten wird, so daß die wiederholte Operation in dem Mantissendivisionsabschnitt angehalten wird.
  • Auch ist die vorliegende Erfindung mit einem Steuerabschnitt ausgestattet, um eine Generierung durchzuführen, welcher Abschnitt lediglich dann aktiv gemacht wird, wenn ein Befehl für eine Division nicht ausgeführt wird. Gemäß der vorliegenden Erfindung wird der Stromverbrauch in Schaltungen, die nicht bei der Ausführung eines Befehls für die Division beteiligt sind, abgesenkt, da eine Verriegelungsoperation eines Registers in dem Mantissendivisionsabschnitt durch ein Nichtausführungssignal angehalten wird.
  • Ferner ist die vorliegende Erfindung so konfiguriert, um dann, wenn ein Befehl für eine Division ausgeführt wird, ein Steuersignal auf der Grundlage eines Zählwertes auszugeben, welches durch Zählen von Taktsignalen erhalten wird; und um den Zählwert aufrechtzuerhalten, wenn ein Befehl für eine Division nicht ausgeführt wird, und zwar auf einem fixierten Wert durch Anhalten des Zählvorganges, woraufhin das oben erwähnte Steuersignal ungültig gemacht wird. Da gemäß der vorliegenden Erfindung eine Verriegelungsoperation eines Registers in einer Quotienten- Generierungsschaltung, wo eine Verriegelungsoperation durch das oben erwähnte Steuersignal gesteuert wird, während einer Zeit angehalten wird, wenn kein Befehl für eine Division ausgeführt wird, wird der Stromverbrauch der Schaltung reduziert, wenn kein Befehl für eine Division ausgeführt wird. Demzufolge kann die vorliegende Erfindung am besten bei einer Divisionsschaltung angewendet werden, die ein Divisionsverfahren vom Großradix-Nicht-Wiederverwertungstyp verwendet, welches dazu neigt, eine Large-Scale-Schaltung zu erfordern, während sie gleichzeitig eine Hochgeschwindigkeitsdivision ermöglicht.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Fig. 1 ist ein Diagramm, welches eine Gesamtkonfiguration eines Vektorprozessors herausgreift;
  • Fig. 2 ist ein Diagramm, welches die Ausführung von arithmetischen Operationen in einer Vektor-Arithmetikeinheit von Fig. 1 beschreibt;
  • Fig. 3 ist ein Diagramm, welches eine Gesamtkonfiguration einer Ausführungsform der vorliegenden Erfindung veranschaulicht;
  • Fig. 4 ist ein Diagramm, welches die Ausführung der Vorverarbeitung in einem Vordivisionsverarbeitungs-/ Musterbestimmungsabschnitt beschreibt;
  • Fig. 5 ist ein Blockschaltbild eines Steuerabschnitts von Fig. 3;
  • Fig. 6 zeigt ein Schaltungsdiagramm einer Ausführungsform einer Steuerschaltung von Fig. 5;
  • Fig. 7 ist ein Zeitplan, der eine Operation beschreibt, die in Fig. 5 und 6 durchgeführt wird;
  • Fig. 8 zeigt ein Diagramm, welches eine Konfiguration einer Ausführungsform eines Exponenten-Operationsabschnitts von Fig. 3 veranschaulicht;
  • Fig. 9 ist ein Schaltungsdiagramm eines Hauptabschnitts eines Ausnahme-/Nichtbetriebs-Detektionsabschnitts von Fig. 3;
  • Fig. 10 ist ein Zeitplan, der eine Operation eines Ausnahme-/Nichtbetriebs-Detektionsabschnitts von Fig. 3 beschreibt;
  • Fig. 11 ist ein Schaltungsdiagramm eines Partialrestregisters und eines Voraussage-Quotientenregisters von Fig. 3;
  • Fig. 12 ist ein Diagramm, welches eine Konfiguration einer Ausführungsform eines Mantissendivisionsabschnitts von Fig. 3 veranschaulicht;
  • Fig. 13 ist ein Diagramm, welches eine Bit-für- Bit-Konfiguration eines Partialquotientenregisters beschreibt;
  • Fig. 14 ist ein Diagramm, welches eine Konfiguration eines Abrundungsausgabebestimmungsabschnitts von Fig. 3 veranschaulicht;
  • Fig. 15 ist ein Zeitplan, der eine Operation in Fig. 3 beschreibt.
  • DIE BESTE ART, DIE ERFINDUNG DURCHZUFÜHREN
  • Die Gleitkomma-Divisionsschaltung der vorliegenden Erfindung wird in einem Vektorprozessor einer. Konfiguration verwendet, die beispielsweise in Fig. 1 veranschaulicht ist. Wie in der Figur dargestellt ist, umfaßt ein Vektorprozessor eine Vektor-Arithmetikeinheit (VU) 10, eine Buseinheit (BU) 20, eine Adresseneinheit (AU) 30, eine Steuereinheit 40 und eine Befehlspuffereinheit (CBU) 50, wobei diese Einheiten über einen Datenbus 61 und einen Adressenbus 62 miteinander verbunden sind.
  • Die Vektor-Arithmetikeinheit 10 umfaßt ein Vektorregister (VR) 11 zum Speichern von Vektordaten, ein Skalarregister (VSR) 12 zum Speichern von Skalardaten, ein Vektormaskenregister (VMR) 13 zum Speichern von Maskendaten, eine Additionsschaltung 14, eine Multiplikationsschaltung 15, eine Divisionsschaltung 16, eine Maskendatengenerierungsschaltung 17, eine Dateneingabeverriegelungsschaltung 18 und eine Datenausgabeverriegelungsschaltung 19. Die Divisionsschaltung 16 ist eine Gleitkomma-Divisionsschaltung der vorliegenden Erfindung.
  • Es werden 64-Bit-Daten in die Buseinheit 20 eingespeist oder aus dieser ausgegeben. Eine 32-Bit-Adresse wird in die Adresseneinheit 30 eingegeben oder aus dieser ausgegeben. Die Steuereinheit 40 umfaßt einen Pipeline-Reg ler 41, eine Einstellmarkenplatine 42 (score board) und eine Dekodiereinheit 43. Die Befehlspuffereinheit 50 besitzt einen Vektorbefehlspuffer (VCB) 51 mit einer Kapazität von 1 Kilobyte.
  • Es folgt unten eine Beschreibung einer Betriebsweise dieses Vektorprozessors. Der Vektorbefehlspuffer (VCB) 51 speichert Befehle. Eine Adresse für die Daten, um eine Operation durchzuführen, wird durch einen Ladebefehl in einer Adresseneinheit 30 erzeugt, woraufhin auf einen externen Speicher zugegriffen wird. Die relevanten Daten werden dann über die Buseinheit 20 eingegeben, und zwar über die Dateneingabeverriegelungsschaltung 18 in die Vektor-Arithmetikeinheit (VU) 10, und werden in dem Vektorregister (VR) 11 gespeichert. Wenn die Adresseneinheit 30 die Adresse erzeugt, werden ein Vektorübersetzungsregister (VTR) 31 und ein Übersetzungsnachschaupuffer (lookaside buffer) (TLB) 32 in einer Umkehrung von einer virtuellen Adresse zu einer physikalischen Adresse verwendet.
  • Dann wird ein Befehl in dem VCB 51 gespeichert und es wird der Vektorprozessor durch Schreiben einer "1" in eine Start-Bit-Position eines Befehlsstartregisters (nicht gezeigt) in der CPU 40 aktiviert. Die CPU dekodiert dann den Befehl in dem VCB 51 mit Hilfe einer Dekodiereinheit 43 und unterrichtet die W 10 darüber, welcher der Befehle in den Pipelines der VU 10 gegenwärtig ist. Der Dekodierungsvorgang durch die Dekodiereinheit 43 wird einmal in jedem Zyklus ausgeführt, was bedeutet, daß dieser einmal in jedem Zyklus gestartet wird.
  • Es kann dabei auftreten, daß unterschiedliche Arithmetikeinheiten das Vektorregister 11 gemeinsam benutzen. Eine solche gemeinsame Benutzung wird durch den Pipeline-Regler 41 und die Einstellmarkenplatine 42 in der CPU 40 überprüft. Die wieder gestarteten arithmetischen Einheiten in der VU 10 (die Additionsschaltung 14, die Multiplizierschaltung 15, die Gleitkomma-Divisionsschaltung 16 und die Maskendatengenerierschaltung 17) führen eine Operation aus. Das Ergebnis der erwähnten Operation wird in den externen Speicher auf der Grundlage eines Speicherbefehls abgespeichert.
  • Wie in Fig. 2 gezeigt ist, umfassen die arithmetischen Verarbeitungen in der VU 10 eine Lade-/Speicher- (L/S)-Pipelineverarbeitung 71, eine Masken-Pipelineverarbeitung 72, eine Graphik-Pipelineverarbeitung 73, eine Additions-/Subtraktions-Pipelineverarbeitung 74, eine Multiplikations-Pipelineverarbeitung 75 und eine Divisions-Pipelineverarbeitung 76.
  • Die Masken-Pipelineverarbeitung 72 wird durch die Maskendatengenerierschaltung 17 durchgeführt, die mit dem Vektormaskenregister 13 Daten zum Weglassen von Operationen austauscht. Die Graphik-Pipelineverarbeitung 73 besteht aus einer Pipelineverarbeitung von Graphikdaten und wird mit der Additions-/Subtraktions-Pipelineverarbeitung 74 durch die Additionsschaltung 14 durchgeführt. Die Multiplikations-Pipelineverarbeitung 75 wird durch die Multiplikationsschaltung 15 ausgeführt. Die Divisions-Pipelineverarbeitung 76 wird durch die Gleitkomma-Divisionsschaltung 16 ausgeführt.
  • Wie aus dem oben gesagten hervorgeht, ist die Gleitkomma-Divisionsschaltung 16 in der VU 10 getrennt von der Multiplikationsschaltung 15 vorgesehen, so daß die Divisions-Pipelineverarbeitung 76 parallel mit der Additions- /Subtraktions-Pipelineverarbeitung 74 und der Multiplikations-Pipelineverarbeitung 75 durchgeführt wird.
  • Es folgt als nächstes eine Beschreibung einer Konfiguration und einer Betriebsweise einer Ausführungsform der vorliegenden Erfindung, die in der oben geschilderten Weise als Gleitkomma-Divisionsschaltung 16 verwendet wird. Fig. 3 zeigt ein Diagramm, welches eine Gesamtkonfiguration einer Ausführungsform der vorliegenden Erfindung veranschaulicht. Diese Ausführungsform besteht aus einer Gleit komma-Divisionsschaltung zum Durchführen einer Division von Gleitkommadaten, die durch den IEEE-Standard festgelegt sind, indem das Divisionsverfahren vom Großradix-Nicht- Wiederverwertungstyp verwendet wird. Das Gleitkommadatenformat, welches durch die IEEE-Standard festgelegt ist, enthält ein 32-Bit-Einzelpräzisionsformat und ein 64-Bit- Doppelpräzisionsformat. Bei dieser Ausführungsform werden Doppelpräzisions-Gleitkommadaten als ein Dividend N und ein Divisor D eingegeben.
  • Bei Doppelpräzisions-Fließkommadaten sind von dem höchstwertigen Bit bis zum niedrigstwertigen Bit ein Ein- Bit-Zeichen bzw. -Vorzeichen S, ein 11-Bit-Exponententeil EXP und ein 52-Bit-Mantissenteil M angeordnet. Nach einer zeitweiligen Speicherung in den Eingaberegistern 81 und 82 von jeweils dem Dividenden N und dem Divisor D, die beide in Form von diesen Gleitkommadaten vorliegen, werden diese dem Vor-Divisionsverarbeitungs-/Musterbestimmungsabschnitt 83 zugeführt, durch den sie in der Weise festgelegt werden, daß sie entweder numerisch sind, null betragen, unendlich sind oder normal sind, und werden der Vorverarbeitung unterzogen.
  • Das Ergebnis der Bestimmung oder Festlegung durch den Vor-Divisionsverarbeitungs-/Musterbestimmungsabschnitt 83 wird in das Musterbestimmungsflagregister 84 eingesetzt. Der Vorverarbeitungsabschnitt des Vor-Divisionsverarbeitungs-/Musterbestimmungsabschnitts 83 führt eine Wiedergewinnung der versteckten Bits durch, indem der jeweiligen Mantissenteil aus dem Dividenden N und dem Divisor D in Form von Fließkommadaten extrahiert werden, wobei ein Absolutwert des Mantissenteiles des Dividenden N so eingestellt wird, daß er kleiner ist als der Absolutwert des Mantissenteiles des Divisors D. Wie an späterer Stelle noch beschrieben wird, dient dies dazu, das elfte Bit einzustellen, das versteckte Bit des Quotienten, der "1" sein soll, um die Forderung nach einer Linksverschiebung zu beseiti gen, die ansonsten erforderlich ist, und zwar zum Zwecke der Normierung, so daß das als Mantissenteil des endgültigen Quotienten verwendete Bit als das spezifische Bit des Partialquotienten bezeichnet wird. Das oben erwähnte versteckte Bit besteht aus einem Bit, welches höher ist als das höchstwertige Bit des Mantissenteiles M, wenn eine Prozedur der Normierung gemäß dem IEEE-Standard verwendet wird.
  • Es folgt eine weitere Beschreibung einer Operation des Vorverarbeitungsabschnitts des Vor-Divisionsverarbeitungs-/Musterbestimmungsabschnitts 83 unter Hinweis auf ein schematisches Diagramm von Fig. 4. In Fig. 4 sind Teile, welche die gleichen sind wie die Teile in Fig. 3 mit den gleichen Bezugszeichen wie in Fig. 3 versehen. Gemäß Fig. 4 werden die Mantissenteile MN und MD des Dividenden N und des Divisors D, die jeweils in den Eingaberegistern 81 und 82 eingestellt sind, extrahiert, so daß die versteckten Bits 830 N und 830D wiedergewonnen werden.
  • Diese zwei 53-Bit-Daten werden dann durch einen 53-Bit-Komparator 831 verglichen; wenn der Absolutwert MD des Mantissenteiles MN kleiner ist als der Absolutwert MD des Mantissenteiles MD, werden Daten, die aus einer Gesamtheit von 53 Bits bestehen und das entsprechende versteckte Bit enthalten, und der Exponent MN in ein Partialrestregister 89 gesetzt. Wenn andererseits MN ≥ MD , werden 53- Bit-Daten, die aus dem entsprechenden versteckten Bit und dem Mantissenteil MN bestehen, um ein Bit nach rechts verschoben, um eine Verkürzung um ein Bit zu erreichen, woraufhin die Daten in das Restregister 89 gesetzt werden. Gleichzeitig damit wird "1" zu dem Exponententeil EXPN des Dividenden N durch einen +1-Addierer 833 hinzugefügt, wenn MN ≥ MD , und es wird die Summe in das Register 83 gesetzt. Ein Vorzeichen SN des Dividenden N wird in ein Register 85 gesetzt und ein Vorzeichen SD des Divisors D wird in das Register 86 gesetzt.
  • Obwohl dies in Fig. 4 weggelassen ist, ist eine Wählvorrichtung 87 in dem Eingangsbereich des Partialrestregisters 89 vorgesehen, wie dies in Fig. 3 gezeigt ist. Bei dieser Ausführungsform beträgt die Zahl von Malen, die die Division durchgeführt wird, gleich 15 für 53-Bit- Mantissenteildaten, enthaltend ein verstecktes Bit; der davon erhaltene Quotient besteht aus 56 Bits (= 4 Bits · 14 Ziffern). Wie in Fig. 4 gezeigt ist, gibt bei den ersten dieser 15 Wiederholungen der Division die oben erwähnte Wählvorrichtung 87 selektiv die 53-Bit-Mantissenteildaten aus dem Vordivisionsverarbeitungsabschitt des Partialrestregisters 89 aus; bei den folgenden zweiten bis fünfzehnten Divisionen werden die 53-Bit-Daten von einem Addierer-/Subtrahiererabschnitt 92, der an späterer Stelle beschrieben werden soll, selektiv an das Partialrestregister 89 ausgegeben.
  • Die vorliegende Ausführungsform ist dadurch gekennzeichnet, daß sie ein Stoppsignal DSTOP#X als auch ein Nichtausführungssignal DRUN durch den Regler 90 erzeugt und daß sie auf der Grundlage dieser Signale eine Operation/Nicht-Operation des Partialrestregisters 89, eines Quotientenvoraussageregisters 96 und eines Registers 104 auswählt, wobei die letzeren zwei an späterer Stelle beschrieben werden.
  • Wie in Fig. 5 gezeigt ist, umfaßt der oben erwähnte Regler 90 eine Steuerschaltung 110 und einen Zähler 120. Die Steuerschaltung 110 ist so, wie in Fig. 6 gezeigt ist, konfiguriert. Gemäß Fig. 6 umfaßt die Steuerschaltung 110 einen Flip-Flop 111, der eine Eingangsgröße in Form eines Start-der-Division-Signals START#X an dessen Freigabeanschluß empfängt und eine Eingangsgröße in Form eines Taktsignals CLK an dessen Taktanschluß empfängt, und umfaßt ein Flip-Flop 112, welches eine Eingangsgröße in Form eines Ausgangssignals XQ von dem Flip-Flop 111 an dessen SET-Anschluß empfängt, eine Eingangsgröße eines Ende-der-Divi sion-Signals END#X an dessen Rückstellanschluß empfängt und eine Eingangsgröße eines Taktsignals CLK an dessen Taktanschluß empfängt.
  • Es folgt eine Beschreibung einer Operation dieser Steuerschaltung 110 unter Hinweis auf den Zeitplan von Fig. 7. Wie in Fig. 7(B) gezeigt ist, gibt dann, wenn das Start- der-Division-Signal START#X aktiv wird (L-Pegel) der Flip- Flop 111 ein L-Pegel-Steuersignal DCACT#X von einem XQ- Ausgangsanschluß desselben bei dem nächsten Anstieg des Taktsignals CLK aus, wie in Fig. 7(E) bzw. in Fig. 7(A) gezeigt ist.
  • Der Flip-Flop 112 wird in einen set-Status beim Anstieg des Taktsignals CLK gesetzt, und zwar unmittelbar, nachdem das oben erwähnte Steuersignal DCACT#X aktiv geworden ist (L-Pegel), woraufhin das L-Pegel-Nichtausführungssignal DRUN von dem XQ-Ausgangsanschluß ausgegeben wird, wie dies in Fig. 7(C) gezeigt ist. Danach wird, wie in Fig. 7(D) gezeigt ist, wenn das Ende-der-Division-Signal END#X in den Rückstelleingangsanschluß des Flip-Flops 112 eingegeben wird, der Flip-Flop 112 in einen Rückstellstatus bei dem nächsten Anstieg des Taktsignals CLK versetzt, woraufhin das H-Pegel-Nichtausführungssignal DRUN von dem XQ- Ausgangsanschluß ausgegeben wird, wie in Fig. 7(C) gezeigt ist.
  • Wie in Fig. 5 dargestellt ist, wird das zuvor erwähnte Steuersignal DCACT#X an einen Freigabeanschluß des Zählers 120 angelegt. Während das Signal auf einem L-Pegel gehalten wird, zählt der Zähler 120 die Taktsignale CLK, wie dies schematisch in Fig. 7(F) gezeigt ist. Wenn das Steuersignal DCACT#X sich auf dem H-Pegel befindet, hört der Zähler 120 mit dem Zählen auf.
  • Demzufolge gibt der Steuerabschnitt 90 nicht nur Steuersignal DCN0-15#X auf der Grundlage des Zählwertes aus, der durch Zählen der Taktsignale CLK während der Ausführung eines Divisionsbefehls erhalten wird, der in dem Moment beginnt, wenn das Start-der-Division-Signal START#X aktiv wird (L-Pegel) und endet in dem Moment, wenn das Ende-der-Division-Signal END#X aktiv wird (L-Pegel), sondern negiert auch (setzt auf den L-Pegel) das Nichtausführungssignal DRUN.
  • Ferner negiert der Steuerabschnitt 90 das Steuersignal DCACT#X, wenn das Ende-der-Division-Signal END#X aktiv wird, wobei die Zähloperation des Zählers 120 nicht mehr fortgesetzt wird, so daß der Zählwert des Zählers 120 fixiert wird und wobei die Steuersignale DCN0 - 15#X basierend auf dem Zählwert negiert werden.
  • Wie in Fig. 3 gezeigt ist, wird das Signal DCNT1#X, also eines der Steuersignale, basierend auf dem Zählwert in die Register 84-86, 88, 104 und 105 eingespeist; das Signal DCNT2#X wird in die Register 93 und 94 eingespeist, die an späterer Stelle vollständiger erläutert werden sollen; das Signal DCN0#X wird in die Register 101 und 102 eingegeben, die an späterer Stelle ausführlicher erläutert werden; die Signale DCNT3-15#X werden in das Quotientenregister 101 zum Starten einer Verriegelungsoperation eingegeben. Ferner wird das Nichtausführungssignal DRUN, welches von dem Steuerabschnitt 90 ausgegeben wurde, in die Register 89, 98 und 104 eingegeben.
  • Wie in Fig. 3 gezeigt ist, werden das Vorzeichen SN und der Exponententeil EXPN, die gemäß Fig. 3 in dem Register 85 gespeichert sind, als auch das Vorzeichen SD und der Exponententeil EXPD, die in dem Register 86 gespeichert sind, dem Exponenten-Operationsabschnitt 91 zur Durchführung einer Operation zugeführt. Die Musterbestimmungsdaten, die in das Register 84 eingetragen sind, werden dem Ausnahme-/Nichtbetriebsdetektionsabschnitt 92 zum Bestimmen der Ausnahme zugeführt. Wenn eine Entscheidung gemäß einer Ausnahme gegeben wird, werden das Stoppsignal DSTOP#X und das vorgeschriebene Muster ausgegeben, wie dies noch später beschrieben werden soll.
  • Wie in Fig. 8 gezeigt ist, umfaßt der oben erwähnte Exponentenoperationsabschnitt 91 beispielsweise ein Register 911, welches einen Vorspannwert speichert, einen Inverter 912, um einen Wert eines Komplements zu erhalten, einen Übertragssicherungsaddierer 913, einen Volladdierer 914 und eine 2-Eingangs-XOR-Schaltung 915. Der Exponententeil EXP der Doppelpräzisionsfließkommadaten gemäß dem IEEE-Standard besitzt 11 Bits, wie an früherer Stelle erwähnt wurde. Bei dieser Ausführungsform ist angenommen, daß der Exponententeil EXP als ein Komplement von 2 vertreten ist. Ein Vorspannwert besteht aus einem Wert zur Verwendung in einer vorgespannten Repräsentation des Exponententeile s EXP und ist auf "1023" festgelegt.
  • Der Exponententeil EXPD des Divisors, der in dem Register 86 eingestellt ist, wird durch den Inverter 912 in ein Komplement umgesetzt und wird danach zu dem Übertragssicherungsaddierer 913 zugeführt, bei dem sowohl der Exponententeil EXPM des Dividenden von dem Register 85 als auch der Vorspannwert aus dem Register 911 hinzuaddiert werden; er wird dann für eine Additionsoperation bei dem Volladdierer 914 weiter befördert, wobei das Ergebnis der Addition desselben in dem Register 93 gespeichert wird. Vor dieser Addition wird "0" an eine Position gemäß einem Bit höher als das höchstwertige Bit angehängt, um einen Bitüberlauf zu verhindern.
  • Andererseits werden das Vorzeichen SN des Dividenden N, der in das Register 85 eingeschrieben ist, und das Vorzeichen SD des Divisors D, welches in das Register 86 eingeschrieben ist, an der 2-Eingangs-XOR-Schaltung 915 XOR-verknüpft und werden in das Register 93 gesetzt.
  • Es folgt eine Beschreibung einer Konfiguration und einer Betriebsweise des Ausnahme-/Nichtbetriebsdetektionsabschnitts 92, der in Fig. 3 gezeigt ist. Der Ausnahme-/Nichtbetriebsdetektionsabschnitt 92, von dessen Schaltungskonfiguration der Hauptteil in Fig. 9 gezeigt ist, be steht aus einem Schaltungsabschnitt zum Bestimmen von Ausnahmen, inklusive einer Null-Division-Ausnahme und einer Ungültig-Operation-Ausnahme und zum Detektieren einer Nichtoperation. Eine der zwei Eingangsanschlüsse, die in jedem der 25 Sätze von 2-Eingangs-UND-Schaltungen 921 vorgesehen sind, empfängt von dem Register 84 eine Eingangsgröße eines Musterbestimmungsflags, welches auf der Grundlage der Daten des Divisors D bestimmt wurde; der andere Eingangsanschluß von jeder der 2-Eingangs-UND-Schaltungen 921 empfängt von dem Register 84 eine Eingangsgröße aus einem Musterbestimmungsflag, welches anhand der Daten des Dividenden N bestimmt wurde.
  • Die Muster, welche das zuvor erwähnte Musterbestimmungsflag zeigt, umfassen SNaN (Signalisierung, nicht eine Zahl) und QNaN (versteckt, nicht eine Zahl) unendlich (INF), null (ZERO) und normal (NORM) (IEEE 754-1985-Standard), wobei die ersten zwei nicht numerisch sind. Der Ausnahme-/Nichtbetriebsdetektionsabschnitt 92 detektiert auf der Grundlage dieser Eingangsmusterflags Nichtbetriebsmuster, die unten aufgelistet sind, und erzeugt ein Stoppsignal DSTOP#X, wenn ein Nichtbetriebsmuster detektiert wird.
  • SNaN÷SNaN QNaN÷SNaN INF÷SNaN NORM÷SNaN ZERO÷SNaN SNaN÷QNaN QNaN÷QNaN INF÷QNaN NORM÷QNan ZERO÷QNaN SNaN÷INF QNaN÷INF INF÷INF NORM÷INF ZERO÷INF SNaN÷ZERO QNaN÷ZERO INF÷ZERO NORM÷ZERO ZERO÷NORM SNaN÷NORM QNaN÷NORM INF÷NORM NORM÷NORM ZERO÷ZERO
  • Jede der UND-Schaltungen 921 besteht aus einer Schaltung zum Detektieren von jedem der oben erwähnten 25 Nichtbetriebsmuster; wenn irgendeines oder mehrere dieser Nichtbetriebsmuster eingegeben werden, wird die Ausgangsgröße von der entsprechenden UND-Schaltung 921 auf einen H- Pegel gebracht. Die H-Pegel-Ausgangssignale von den UND- Schaltungen 921 werden über eine 25-Eingangs-NOR-Schaltung 922 als ein L-Pegel-Stoppsignal DSTOP#X ausgegeben.
  • Wenn beispielsweise ein Musterflag ZERO der Dividendendaten, die in Fig. 10(B) gezeigt sind, und ein Musterflag INF der Divisordaten, die in Fig. 10(C) gezeigt sind, zur gleichen Zeit t&sub1; in das Register 84 synchron mit Taktsignalen, die in Fig. 10(A) gezeigt sind, gesetzt werden, detektiert der Ausnahme-/Nichtbetriebsdetektionsabschnitt 92 das Nichtbetriebsmuster ZERO÷INF, wie dies in Fig. 10(D) schematisch gezeigt ist, und generiert ein L-Pegel-Stoppsignal DSTOP÷X, wie in Fig. 10(E) gezeigt ist, und zwar unmittelbar, nachdem das nächste Taktsignal zu dem Zeitpunkt t&sub2; eingegeben wurde.
  • Obwohl in Fig. 9 eine Darstellung weggelassen ist, wird das zuvor erwähnte Stoppsignal DSTOP#X auf einem L-Pegel (aktiv) gehalten, bis es auf einen H-Pegel zu einem Ende-der-Operation-Zeitpunkt t&sub3; gebracht wird, wie dies in Fig. 10(E) gezeigt ist. Wenn der Ausnahme-/Nichtbetriebsdetektionsabschnitt 92 eine Ausnahme oder einen Nichtbetrieb bzw. Nichtoperation detektiert, erzeugt er ein entsprechendes vorgeschriebenes Muster und speichert das Muster in dem Ausnahmeregister 94, welches in Fig. 3 gezeigt ist.
  • Es folgt eine Beschreibung einer Konfiguration und eine Betriebsweise der Register 89 und 98, in die das oben erwähnte Stoppsignal DSTOP#X und das zuvor erwähnte Nichtausführungssignal DRUN als Freigabesignale eingespeist werden. Die Register 89 und 98 haben die gleiche Schaltungskonfiguration wie die eine, die in Fig. 11 gezeigt ist. Gemäß Fig. 11 empfängt eine Gatterschaltung 201 Eingangsgrößen eines Stoppsignals DSTOP#X und eines Nichtausführungssignal DRUN, gibt ein H-Pegel-Signal lediglich dann aus, wenn DSTOP#X sich auf dem H-Pegel (Negierung) befindet und sich DRUN auf dem L-Pegel (Negierung) befindet, und gibt ein L-Pegel-Signal aus, wenn entweder DSTOP#X oder DRUN aktiv ist.
  • Die Gatterschaltung 201 ist mit jedem einen der zwei Eingangsanschlüsse verbunden, die in jedem der Übertragungsgatter 204 und 205 vorgesehen sind, und zwar über einen Inverter 202, ist ferner mit jedem der anderen Eingangsanschlüsse verbunden, die in jedem der Übertragungsgatter 204 und 205 vorgesehen sind, und zwar über einen Inverter 203. Das Übertragungsgatter 204 wird eingeschaltet, wenn das Ausgangssignal aus dem Inverter 202 sich auf einem L-Pegel befindet und sich das Ausgangssignal aus dem Inverter 203 auf einem H-Pegel befindet, und erlaubt es den Eingangsdaten, hindurch zu gelangen, so daß diese zu einer Master-/Slave-Verriegelungsschaltung 206 zugeführt werden.
  • Die Master-/Slave-Verriegelungsschaltung 206 ist derart konfiguriert, daß ein Verriegelungsabschnitt, der aus einem getakteten Inverter 207, aus Invertern 208 und 209 besteht, und ein Verriegelungsabschnitt aus einem getakteten Inverter 210, Invertern 211 und 212 besteht, die in Reihe geschaltet sind; wobei das Ausgangsende des Inverters 211 in einer Rückkopplungsverbindung mit dem Eingangsende des getakteten Inverters 207 über das Übertragungsgatter 205' eingefügt ist.
  • Auf diese Weise wird das Übertragungsgatter 204 eingeschaltet und das Übertragungsgatter 205 wird lediglich dann ausgeschaltet, wenn das Nichtausführungssignal DRUN negiert wird (L-Pegel) und das Stoppsignal DSTOP#X negiert wird (H-Pegel); es werden die Eingangsdaten zu der Master- /Slave-Verriegelungsschaltung 206 zugeführt und in dieser verriegelt, und zwar über das Übertragungsgatter 204. Wenn entweder das Nichtausführungssignal DRUN oder das Stoppsignal DSTOP#X aktiv ist, werden die in der Master-/Slave- Verriegelungsschaltung 206 verriegelten Daten beibehalten und die Eingangsdaten werden nicht verriegelt, da das Über tragungsgatter 204 ausgeschaltet ist und das Übertragungsgatter 205 eingeschaltet ist.
  • Die Register 81, 82, 84-86, 88, 93, 94, 101 und 105, die in Fig. 3 gezeigt sind, sind derart konfiguriert, daß die Gatterschaltung 201 von Fig. 11 weggelassen ist und derart konfiguriert, daß sie Eingangsgrößen in Form der Steuersignale DCNT1#X und DCNT2#X entsprechend dem Inverter 202 empfangen.
  • Es werden 53-Bit-Dividendendaten, die ein verstecktes Bit des Dividenden N enthalten, in dem Partialrestregister 89 einer solchen Konfiguration gespeichert und werden in den Additions-/Subtraktionsabschnitt 96 innerhalb eines Mantissendivisionsabschnitts 100 eingegeben. Dieser Mantissendivisionsabschnitt 100, in dem eine Division gemäß einem Divisionsverfahren vom Großradix- Nichtwiederverwendungstyp durchgeführt wird, und zwar mit einer Radix r, die auf 16 eingestellt ist, umfaßt einen Divisor-Vielfachgenerierungsabschnitt 95, einen Addierer- /Subtrahiererabschnitt 96, einen Quotientenvoraussageabschnitt 97, ein Voraussage-Quotientenregister 98 und einen Quotientenkorrekturabschnitt 99, wie dies in Fig. 3 gezeigt ist.
  • Es sind demzufolge eine Gesamtheit von 30 Divisor-Vielfachdaten erforderlich, enthaltend -15xDivisor, -14xDivisor, ... -1xDivisor, 1xDivisior, ..., 14xDivisor und 15xDivisor. Der Divisor-Vielfachgenerierungsabschnitt 95 erzeugt diese 30 Divisor-Vielfachdaten.
  • Es folgt eine Beschreibung einer Konfiguration und einer Operation des Mantissendivisionsabschnitts 100 unter Hinweis auf Fig. 12. In der Figur sind Teile, welche die gleichen Teile wie in Fig. 3 sind, mit den gleichen Bezugszeichen wie in Fig. 3 versehen und eine Beschreibung derselben ist weggelassen. Gemäß Fig. 12 umfaßt der Divisor-Vielfachgenerierungsabschnitt 95 folgendes: einen Divisor-Vielfachgenerator 951, der aus einer Schiebevorrichtung und einer komplementären Schaltung besteht, um ±1-vielfache des Divisors zu generieren, und zwar durch Empfangen einer Eingangsgröße in Form des Divisors (der Mantissenteil MD des Divisors) von dem Divisorregister 88; einen Divisor- Vielfachgenerator 952 zum Erzeugen ±2/±4-vielfache des Dividenden; einen Divisor-Vielfachgenerator 953 zum Generieren von ±8/±16-vielfachen des Divisors; eine 3 : 1-Wählvorrichtung 954 zum Auswählen von einem der Divisor-Vielfachen; eine 5 : 1-Wählvorrichtung 955; und eine 5 : 1-Wählvorrichtung 956.
  • Die Wählvorrichtungen 954, 955 und 956 wählen eines der Divisor-Vielfachen auf der Grundlage eines Quotientenvoraussagesignals SQP aus, welches durch den Quotientenvoraussageabschnitt 97 generiert wird, der an späterer Stelle beschrieben wird, und über das Voraussage-Quotientenregister 98 eingespeist wird, und geben das ausgewählte Vielfache an den Addierer-/Subtrahiererabschnitt 96 aus, in welchem eine +n-Multiplikation erreicht wird, und zwar durch ledigliches Verschieben, und eine -n-Multiplikation erreicht wird, und zwar durch Verschieben nach der Komplementbildung.
  • Der Addierer-/Subtrahiererabschnitt 96 umfaßt einen 4-Eingangsübertrag-Festhalteaddierer 961 und einen Übertrag-Ausbreitungsaddierer 962, um einen Übertrag C und eine Summe S, die von diesem Addierer 961 ausgegeben wurde, hinzuzufügen, wobei eine Summe von drei Werten, die durch die Wählvorrichtungen 954, 955 und 956 ausgewählt wurden, von den Inhalten des zuvor erwähnten Partialdivisorregisters 89 subtrahiert wird und dann als Partialrest beim nächsten Zyklus der Operation bezeichnet wird.
  • Der Quotientenvoraussageabschnitt 97 besteht aus einer Partial-Quotientenvoraussageschaltung 971 und einem Partialquotientengenerator 972, wobei eine Ziffer-um-Ziffer-Voraussage eines Partialquotienten auf der Grundlage des Divisors von dem Divisorregister 86 und dem Partialrest von dem Addierer-/Subtrahiererabschnitt 96 durchgeführt wird, so daß das Voraussagequotientensignal in das Voraussage-Quotientenregister 98 gesetzt wird und das Quotientenvoraussagesignals SQP ausgegeben wird.
  • Der Quotientenkorrekturabschnitt 99 besitzt einen Quotientengenerator 991, korrigiert den vorausgesagten Partialquotienten, der in dem Quotientenvoraussageabschnitt 97 erzeugt wurde, und zwar auf der Grundlage des Vorzeichens des Partialrestes in dem laufenden oder momentanen Zyklus der Operation und anhand des Vorzeichens des Partialrestes in dem früheren Zyklus der Operation, und setzt die korrigierte Voraussage in das Partialquotientenregister 101 ein.
  • Bei der vorliegenden Ausführungsform liegt die Zahl von Malen, welche die Division wiederholt wird, bei 15 für 53-Bit-Mantissenteildaten, enthaltend ein verstecktes Bit. Da die numerischen Werte, die gehandhabt werden, aus Doppelpräzisionsfließkommadaten des Formats besteht, die durch den IEEE-Standard definiert sind, wird ein 56-Bit- Quotient (= 4 Bits · 14 Ziffern) erhalten. Unter Verwendung der folgenden Parameter und Funktionen wird diese Divisionsoperation in der folgenden Weise standardisiert:
  • Parameter: Mantissenteil des Dividenden: NM
  • Mantissenteil des Divisors: DM
  • Partialrest: PR (i)
  • Voraussagepartialquotient: QP (i)
  • Partialquotient: Q (i)
  • Funktionen: Voraussage (PR (i), DM). Der vorausgesagte Partialquotient QP (i) wird auf der Grundlage des Partialreste PR (i) und des Mantissenteiles des Divisors DM unter Bezugnahme bzw. Zugriff auf eine Voraussagetabelle erhalten.
  • Initialisierung:
  • PR (0) = NM
  • QP (0) = 0
  • erster Zyklus:
  • PR (1) = PR (0) - QP (0) · DM
  • QP (1) = Voraussage (PR (1), DM)
  • zweiter Zyklus:
  • PR (2) = PR (1) - QP (1) · DM
  • QP (2) = Voraussage (PR (2), DM)
  • Q (1) = QP (1) modifiziert durch PR (1) und das Vorzeichenbit von PR (2)
  • vierzehnter Zyklus:
  • PR (14) = PR (13) - QP (13) · DM
  • QP (14) = Voraussage (PR (14), DM)
  • Q (13) = QP (13) modifiziert durch PR (13) und das Vorzeichenbit von PR (14)
  • fünfzehnter Zyklus:
  • PR (15) = PR (14) - QP (14) · DM
  • Q (14) = QP (14) modifiziert durch PR (14) und das Vorzeichenbit von PR (15)
  • In Einklang mit den oben erläuterten Operationen wird der Quotient, so wie in Fig. 13 beschrieben ist, erhalten und wird in das Partialquotientenregister 101 in Abhängigkeit von dem Steuersignal DCN0, 3-15#X eingesetzt, wobei der letzte Partialrest PR (15) in dem Restregister 102 festgehalten wird.
  • Da die zuvor erläuterte Vorverarbeitung ein verstecktes Bit hinzufügt, so daß der Absolutwert des Mantissenteiles MN des Dividenden N kleiner ist als der Absolutwert des Mantissenteiles MD des Divisors D, wird der 4- Bit-Partialquotient Q (1) immer so gesteuert, daß er sich in dem Bereich von Hexadezimal 8 - F befindet. Daher beträgt das elfte Bit, das versteckte Bit, des Quotienten Q gleich "1" und der erhaltene Wert wird als nicht modifiziertes endgültiges Resultat betrachtet. Es besteht keine Notwendigkeit nach einer Linksverschiebung für die Normierung; die in dem Mantissenteil des endgültigen Quotienten verwendeten Bits reichen von dem ersten Bit des Partialquotienten Q (1) bis zum 0-ten Bit des Partialquotienten (14).
  • Ferner besteht das erste Bit des Partialquotienten Q (14) aus einem Schutzbit G, das zweite Bit des Partialquotienten Q (14) besteht aus einem Abrundungsbit R, eine ODER-Verknüpfung des dritten Bits des Partialquotienten Q (14) und all den Bits des Partialrestes PR (15) bestehen aus sog. Klebebits (sticky bits) S. Die Partialquotienten Q (1)-Q (14) und der Rest PR (15), die in dem Partialquotientenregister 101 und dem Restregister 102 jeweils gespeichert sind, werden einem Abrundungsausgabebestimmungsabschnitt 103 zusammen mit den Daten in den Registern 93 und 94 eingegeben, wie in Fig. 3 gezeigt ist.
  • Der Abrundungsausgangsbestimmungsabschnitt 103 führt eine Abrundungsoperation durch, die durch den IEEE- Standard definiert ist, so daß das Ergebnis der Division weniger Ziffern als der vorbestimmte Wert hat. Die Abrundungsoperationen, die durch den IEEE-Standard festgelegt sind, umfassen RN (nächstliegende Abrundung), RP (Abrundung plus), RM (Abrundung minus) und R2 (Abrundung null). Diese werden entweder dazu verwendet, um den Ein- Bit-Wert zu bestimmen, der durch einen vorgeschriebenen Operationsausdruck auf der Grundlage der vorbestimmten Bits abgerundet wird, die von irgendeinem der vier Arten von Bits genommen werden, nämlich dem Schutzbit G, dem Abrundungsbit R und dem Klebebit S oder dem Vorzeichenbit, oder es wird der Vorteil des vorbestimmten Wertes verwendet. Diese Ausführungsform erlaubt eine Auswahl aus diesen vier Verfahren einer Abrundung oder Aufrundung.
  • Wenn eine Operation ungültig ist, erzeugt der Abrundungsausgangsbestimmungsabschnitt 103 ein vorbestimmtes Muster, welches dieser zugeordnet ist. Wenn ein Ausnahmezustand entsteht, erzeugt er auch ein vorbestimmtes Muster, welches diesem zugeordnet ist, so daß der Ausgangswert gesteuert wird. Darüber hinaus erzeugt er auch ein Ausnahmeflag in Einklang mit dem IEEE-Standard.
  • Fig. 14 zeigt ein Diagramm, welches eine Konfiguration dieses Abrundungsausgangsbestimmungsabschnitts 103 veranschaulicht. Zuerst wird das dritte Bit des Partialquotienten Q (14) aus den Inhalten (den Partialquotienten Q (1)-Q (14)) des Partialquotientenregisters 101 gewonnen, welche Inhalte das Ergebnis der Operationen in dem Mantissendivisionsabschnitt 100 sind; und es werden all die Bits des Partialrestes PR (15) 202, welches die Inhalte des Restregisters 102 sind, ODER-verknüpft, und zwar durch eine ODER-Schaltung 203, so daß das Klebebit S generiert wird.
  • Nachfolgend wird das Klebebit S als auch das Schutzbit G, das Abrundungsbit R, LSB und das Vorzeichen dem Inkrement-/Abschneidungs-Steuerabschnitt 204 eingegeben. Der Inkrement-/Abschneidungs-Abschnitt 204 liefert eine Bestimmung von entweder einem Inkrement oder einer Abschneidung lediglich dann, wenn das Stoppsignal DSTOP#X negiert wird, und zwar auf der Grundlage eines Abrundungsmodussignals, welches einen Modus der Abrundung anzeigt (z. B. Beschneidung, Aufrundung), und es werden dann mit Hilfe der Wählvorrichtung 208 von irgendwelchen der drei Arten von Daten Auswahlen gemacht; dies sind nämlich die Mantissenteildaten MQ 205 des Quotienten Q, welches das nicht modifizierte Ergebnis der Operation in dem Mantissendivisionsabschnitt 100 darstellt, die Daten 206, die ein Ergebnis der Addierung von 1 zu dem Mantissenteil MQ des Quotienten Q bilden und das vorgeschriebene Muster 207.
  • Die drei Daten 205-207 werden parallel mit der oben erläuterten Bestimmung verarbeitet. Das Vorzeichen SQ des Quotienten Q wird durch XOR-Verknüpfung der Vorzeichen des Divisors D und des Dividenden N in der XOR-Schaltung 915 erzeugt. Die Wählvorrichtung 208 gibt den 52-Bit-Mantissenteil MQ des endgültigen Quotienten Q aus, welcher Teil in das Ausgangsregister 104 als der Quotient Q zusammen mit dem 1-Bit-Vorzeichen SQ des Quotienten Q eingestellt werden, und gibt den 11-Bit-Exponententeil EXPQ des Quotienten Q aus, der in dem Register 93 gespeichert ist. Dieses Ausgangsregister 104 führt keine Verriegelung aus, wenn Nichtausführungssignal aktiv ist. Das Ausführungsflag, welches in dem Abrundungsausgabebestimmungsabschnitt 103 erzeugt wird, wird in das Aufnahmeregister 105 gesetzt, wie dies in Fig. 3 gezeigt ist.
  • Es folgt eine aufeinanderfolgende Beschreibung der oben erläuterten Prozesse unter Hinweis auf Fig. 3 und die Zeitpläne von Fig. 15. Nachdem das Startsignal, welches in Fig. 15(B) gezeigt ist, eingegeben wurde, werden die Eingangsdaten (der Divisor D und der Dividend N), die in Fig. 15(C) gezeigt sind, in den Eingangsregistern 81 und 82 jeweils bei einem Maschinenzyklus M1 (Takt 0) verriegelt, der in Fig. 15(A) gezeigt ist. Bei einem Maschinenzyklus M2 führt der Vor-Divisionsverarbeitungs-/Musterbestimmungsabschnitt 83 eine Vorverarbeitung an den Eingangsdaten durch, wie dies in Fig. 15(D) gezeigt ist. Wie schematisch in den Fig. 15(E) und (F) dargestellt ist, wird das Ergebnis dieser Vorverarbeitung in den Eingangsregistern 85 und 86 in dem Exponentenoperationsabschnitt 91 verriegelt, das sind die Eingangsregister des Mantissendivisionsabschnitts 100, nämlich das Divisorregister 88 und das Partialrestregister 89.
  • Bei einem Maschinenzyklus M3 wird eine Wiederholung der Divisionsoperationen an den Inhalten, die in dem Divisorregister 83 und dem Partialrestregister 89 verriegelt sind, in dem Mantissendivisionsabschnitt 100 gestartet; d. h. der Partialrest PR (i) und der Partialquotient Q (i) werden in sich wiederholender Weise berechnet.
  • Diese Berechnung erneuert die Inhalte des Partialrestregisters 89, wie durch R1-R15 von Fig. 15(E) gezeigt ist; der Inhalt des Voraussage-Quotientenregisters 98 wird erneuert, wie dies durch QP1-QP14 in Fig. 15(G) gezeigt ist; und es wird darüber hinaus der Inhalt des Partialquotientenregisters 102 erneuert, wie dies durch Q1- Q14 in Fig. 15(H) gezeigt ist.
  • Nachdem die Berechnung fünfzehnmal wiederholt worden ist, hält die Wiederholung bei einem Maschinenzyklus M17 an. Die folgenden Inhalte werden in den Abrundungsausgangsbestimmungsabschnitt 103 für eine Abrundungsoperation eingegeben; dies sind nämlich der Inhalt Q14 des Partialquotientenregisters 101, welches den Mantissenteil QM des endgültig erhaltenen Quotienten speichert; der Inhalt des Restregisters 102, welches den endgültigen Partialrest PR (15) speichert; der Inhalt des Exponentenregisters 93, welches den Exponententeil EXPQ des Quotienten speichert; der Inhalt des Ausnahmeregisters 94, welches die Informationen speichert, wie beispielsweise das Ausnahmeflag. Bei einem Maschinenzyklus 18 wird das endgültige Ergebnis in dem Ausgangsregister 104 gespeichert, wie in Fig. 15(I) gezeigt ist; es werden die Ausnahmeflaginformationen, die den Ausgangsdaten zugeordnet sind, in dem Ausnahmeregister 105 verriegelt, wie dies in Fig. 15(J) gezeigt ist.
  • Es folgt als nächstes eine Beschreibung, auf welche Weise das Stoppsignal DSTOP#X, das Nichtausführungssignal DRUN und das Steuersignal DCN0-15#X die Divisionsoperationen von jedem der Schaltungsabschnitte steuern.
  • Es wird zuerst dann, wenn das Ausgangsmuster des Mantissenteiles MQ des Quotienten Q in dem Ausnahme-/Nichtoperationsdetektionsabschnitt 92 ohne die Ausführung von Operationen an dem Mantissenteil erkannt werden kann, d. h. wenn ein Nichtoperationsmuster gemäß dem zuvor erwähnten IEEE-Standard detektiert wurde, das Stoppsignal DSTOP#X aktiv gemacht, um die Verriegelungsoperationen des Partial restregisters 89, des Voraussagequotienten 98 und des Abrundungsausgangsbestimmungsabschnitts 103 negativ zu machen, so daß der Schaltvorgang der Schaltung des Mantissendivisionsabschnitts 100 nicht stattfinden kann. Das heißt, es wird das Stoppsignal DSTOP#X als Freigabesignal dem Partialrestregister 89, dem Voraussage-Quotientenregister 98 und dem Steuerabschnitt 204 des Abrundungsausgangsbestimmungsabschnitts 103 eingegeben. Wenn es aktiv ist, führt das Stoppsignal keine Verriegelung durch. Auf diese Weise wird der Stromverbrauch in dem Partialrestregister 89, dem Voraussage-Quotientenregister 98 und dem Steuerabschnitt 204 zum Zeitpunkt der Detektierung des Nichtoperationsmusters niedrig gehalten.
  • Da das Nichtausführungssignal DRUN von dem Steuerabschnitt 90 aktiv gemacht wird, wenn kein Divisionsbefehl ausgeführt wird, werden die Verriegelungssignale des Partialrestregisters 89, des Voraussage-Quotientenregisters 98 und des Ausgangsregisters 104 ungültig gemacht, mit dem Ergebnis, daß die Schaltungen nicht in Betrieb gesetzt werden und der Stromverbrauch in den Schaltungen niedrig gehalten wird. Das heißt, es wird das Nichtausführungssignal DRUN als Freigabesignal bzw. in Bereitschaft setzendes Signal des Partialrestregisters 89, des Voraussage-Quotientenregisters 98 und des Ausgangsregisters 104 eingegeben. Wenn das Nichtausführungssignal DRUN aktiv ist, werden Daten nicht verriegelt.
  • Da ferner das Steuersignal DCNT1#X in das Divisorregister 88 und das Musterbestimmungsflagregister 84 eingegeben werden, ferner das Steuersignal DCNT2#X in das Exponentenregister 93 und das Ausnahmeflagregister 94 eingegeben werden, die Steuersignale DCN0, 3-15#X in das Partialquotientenregister 101, das Steuersignal DCN0#X in das Restregister 102, das Steuersignal DCNT1#X in das Ausgangsregister 104 und das Ausnahmeregister 105 eingegeben werden, werden die Daten nicht verriegelt, wenn diese -Steuer signale negiert sind. Das heißt, wenn der Divisionsbefehl nicht ausgeführt wird, wird der Zählwert des Zählers 120 von Fig. 5 auf einem festen Wert gehalten, wie dies zuvor beschrieben wurde, und es werden die Steuersignale DCN0- 15#X negiert. Es werden somit die Operationen in jedem der oben erwähnten Register 88, 84, 93, 94, 101, 102, 104 und 105 angehalten, wenn die Divisionsbefehle nicht ausgeführt werden, wodurch der Stromverbrauch in diesen Schaltungen reduziert wird.
  • MÖGLICHE INDUSTRIELLE ANWENDUNG
  • Da, wie oben beschrieben wurde, die Gleitkommadivisionsschaltung nach der vorliegenden Erfindung die Fähigkeit hat, Divisionen bei minimalem Stromverbrauch durchzuführen, ist sie für eine Divisionsschaltung geeignet, die für die Ausführung von Divisionen bei hoher Geschwindigkeit mit einer Hardwarekonfiguration von relativ großem Maßstab geeignet, wie beispielsweise für eine Divisionsschaltung, die ein Divisionsverfahren vom Großradix-Nichtwiederverwertungstyp verwendet. Die Schaltung nach der vorliegenden Erfindung ist auch für eine schnelle Operation in einem Vektorprozessor geeignet, der in den letzten Jahren verwendet wurde.

Claims (19)

1. Gleitkomma-Divisionsschaltung mit:
einem Schaltungsabschnitt (83) zur Durchführung einer Vordivisionsverarbeitung an Gleitkommadaten, nämlich an jeden Daten eines Divisors (D) und eines Dividenden (N);
einem Exponenten-Operationsabschnitt (91) zur Durchführung einer Operation an Exponententeilen der Gleitkommadaten, nämlich dem Divisor (D) und dem Dividenden (N), die durch den Schaltungsabschnitt (83) einer Vorverarbeitung unterworfen werden;
einem Mantissendivisionsabschnitt (100), in den die Mantissenteile der Gleitkommadaten, nämlich der Divisor (D) und der Dividend (N), die einer Vorverarbeitung durch den Schaltungsabschnitt (83) unterworfen wurden, eingespeist werden, wobei Prozeduren, die auf einem vorbestimmten Algorithmus basieren, zu dem Zweck wiederholt werden, um Mantissenteildaten eines Quotienten zu generieren; und
Quotienten-Generierungsabschnitten (93, 94, 101, 103-105) zum Generieren eines Quotienten, der aus einer vorbestimmten Anzahl von Bits besteht, auf der Grundlage von Ausgangsdaten von wenigstens dem Exponenten-Operationsabschnitt (91) und dem Mantissendivisionsabschnitt (100); dadurch gekennzeichnet, daß
der Schaltungsabschnitt (38) ferner eine Musterbestimmung an jedem von dem Gleitkommadivisor (D) und Dividenden (N) durchführt;
ein Ausnahme-/Nichtoperations-Detektierungsabschnitt (92) vorgesehen ist, um ein vorbestimmtes Nichtoperationsmuster auf der Grundlage eines Ergebnisses der Musterbestimmung zu bestimmen, das in dem Schaltungsabschnitt (83) erhalten wurde, und zwar in bezug auf den Divisor (D) und den Dividenden (N), um eine Ausgangsgröße an die Quotienten-Generierungsabschnitte (93, 94, 101, 103-105) vorzusehen und um ein Stoppsignal (DSTOP#X) zu generieren, wenn das Nichtoperationsmuster detektiert wurde; und
das Stoppsignal (DSTOP#X) die wiederholten Operationen des Mantissendivisionsabschnitts (100) dadurch anhält, indem eine Verriegelungsoperation eines Registers in dem Mantissendivisionsabschnitt (100) angehalten wird.
2. Gleitkommadivisionsschaltung nach Anspruch 1, bei der
der Ausnahme-/Nichtoperations-Detektierungsabschnitt (92) folgendes aufweist:
eine logische Schaltung (921), die ein Anpassungssignal ausgibt, wenn eine Kombination aus einem Musterbestimmungsergebnis an dem Divisor (D) und einem Musterbestimmungsergebnis an dem Dividenden (N) mit irgendeinem einer Vielzahl von vorbestimmten Nichtoperationsmustern übereinstimmt; und
eine Schaltung (922) zum Generieren eines Stoppsignals auf der Grundlage eines Übereinstimmungssignals von der logischen Schaltung (921).
3. Gleitkommadivisionsschaltung nach Anspruch 1, mit:
einem ersten Register (89) zum Speichern eines Partialrestes, der von den Mantissenteilen des Dividenden (N) und des Divisors (D) abgeleitet wurde, die von dem Schaltungsabschnitt (83) ausgegeben wurden; und
einem zweiten Register (88) zum Speichern eines Mantissenteiles des Divisors (D), wobei
das Stoppsignal (DSTOP#X) in ein Register in dem Mantissendivisionsabschnitt (100) und das erste Register (89) als ein Signal zum Anhalten einer Verriegelungsoperation eingegeben wird.
4. Gleitkommadivisionsschaltung nach Anspruch 3, bei der
der Mantissendivisionsabschnitt (100) folgendes enthält:
einen Divisor-Vielfachgenerierungsabschnitt (95) zum Generieren einer Vielzahl von Divisor-Vielfachdaten in bezug auf eine Radix auf der Grundlage der Ausgangsdaten aus dem zweiten Register (88) und zum Ausgeben von ausgewählten Divisor-Vielfachdaten;
einen Addierer-/Subtrahiererabschnitt (96) zum Durchführen einer Addition und einer Subtraktion an den Ausgangsdaten von dem ersten Register (99) und an den Divisor-Vielfachdaten aus dem Divisor-Vielfachgenerierungsabschnitt (95), so daß ein Partialrest erhalten wird;
einen Quotientenvoraussageabschnitt (97) zum Voraussagen eines Partialquotienten auf der Grundlage eines Partialrestes, der von dem Addierer-/Subtrahiererabschnitt (96) ausgegeben wurde, und anhand von Daten aus dem zweiten Register (88), und um ein Quotientenvoraussagesignal zu erzeugen;
ein drittes Register, in welchem der Partialquotient und ein Quotientenvoraussagesignal aus dem Quotientenvoraussageabschnitt (97) eingestellt sind, wobei eines der Vielzahl der Divisor-Vielfachdaten selektiv auf der Grundlage des Quotientenvoraussagesignals ausgegeben wird; und
einen Quotientenkorrekturabschnitt (99), in den ein Partialquotient von dem dritten Register (98) und ein Partialrest, der von dem Addierer-/Subtrahiererabschnitt (96) ausgegeben wurde, eingespeist werden, so daß der Partialquotient korrigiert wird, wobei
Divisionen in Einklang mit einer Divisionsmethode vom Großradix-Nichtwiederverwertungstyp dadurch ausgeführt werden, indem ein Partialrest in Form einer Rückkopplung eingespeist wird, der von dem Addierer-/Subtrahiererabschnitt (96) ausgegeben wurde, und zwar eine vorbestimmte Anzahl von Malen.
5. Gleitkommadivisionsschaltung nach Anspruch 1, bei der
die Gleitkommadaten aus Gleitkommadaten in Einklang mit dem IEEE-Standard bestehen und bei der die Quotienten-Generierungsabschnitte (93, 94, 101, 103-105) einen Abrundungsausgangsbestimmungsabschnitt (103) umfassen, um eine Abrundungsoperation gemäß dem IEEE-Standard durchzuführen.
6. Gleitkommadivisionsschaltung nach Anspruch 1, ferner mit:
einem Steuerabschnitt (90) zum Generieren eines Nichtausführungssignals (DRUN), welches lediglich dann aktiv gemacht wird, wenn kein Befehl für eine Division durchgeführt wird;
wobei das Nichtausführungssignal (DRUN) die wiederholten Operationen des Mantissendivisionsabschnitts (100) anhält, indem sie Verriegelungsoperationen eines Registers in dem Mantissendivisionsabschnitt (100) stoppt.
7. Gleitkommadivisionsschaltung nach Anspruch 6, bei der
der Steuerabschnitt (19) folgendes aufweist:
ein erstes Flip-Flop (111), dessen Freigabeanschluß eine Eingangsgröße des Divisionsstartsignals (START#X) empfängt; und
ein zweites Flip-Flop (112), welches an einem Setz-Eingangsanschluß desselben ein Ausgangssignal von dem ersten Flip-Flop (111) empfängt, an einem Rückstellanschluß eine Eingangsgröße des Ende-der-Division-Signals (END#X) empfängt und welches, nachdem es in einen Setz-Status durch ein Ausgangssignal von dem ersten Flip-Flop (111) verbracht wurde, das Nichtausführungssignal ausgibt, welches aktiv gehalten wird, bis eine Rückstellung durch das Ende-der-Division-Signal erfolgt.
8. Gleitkommadivisionsschaltung nach Anspruch 6, mit:
einem ersten Register (89) zum Speichern eines Partialrestes, der von Mantissenteilen des Dividenden (N) und des Divisors (D) abgeleitet wurde, die von dem Schaltungsabschnitt (83) ausgegeben worden sind; und
einem zweiten Register (88) zum Speichern eines Mantissenteiles des Divisors (D), wobei
das Nichtausführungssignal (DRUN) in ein Register in dem Mantissendivisionsabschnitt (100) und in das erste Register (89) eingespeist wird, und zwar als ein Signal zum Anhalten einer Verriegelungsoperation.
9. Gleitkommadivisionsschaltung nach Anspruch 8, bei der
der Mantissendivisionsabschnitt (100) folgendes aufweist:
einen Divisor-Vielfachgenerierungsabschnitt (95) zum Generieren einer Vielzahl von Divisor-Vielfachdaten in bezug auf eine Radix und auf der Grundlage der Ausgangsdaten aus dem zweiten Register (88) und um ausgewählte Divisor-Vielfachdaten auszugeben;
einen Addierer-/Subtrahiererabschnitt (96) zum Durchführen einer Addition und einer Subtraktion an Ausgangsdaten aus dem ersten Register (99) und an Divisor- Vielfachdaten aus dem Divisor-Vielfachgenerierungsabschnitt (95), so daß ein Partialrest erhalten wird;
einen Quotientenvoraussageabschnitt (97) zum Voraussagen eines Partialquotienten auf der Grundlage eines Partialrestes, der von dem Addierer-/Subtrahiererabschnitt (96) ausgegeben wurde und auf der Grundlage von Daten aus dem zweiten Register (88), und um ein Quotientenvoraussagesignal zu erzeugen;
ein drittes Register, in welchem der Partialquotient und ein Quotientenvoraussagesignal aus dem Quotientenvoraussageabschnitt (97) gesetzt sind, wobei eines einer Vielzahl von Divisor-Vielfachdaten selektiv auf der Grundlage des Quotientenvoraussagesignals ausgegeben wird; und
einen Quotientenkorrekturabschnitt (99), in den ein Partialquotient aus dem dritten Register (98) und ein Partialrest, der von dem Addierer-/Subtrahiererabschnitt (96) ausgegeben wurde, eingespeist, werden, so daß der Partialquotient korrigiert wird, wobei
Divisionen in Einklang mit einer Divisionsmethode vom Großradix-Nichtwiederverwendungstyp dadurch ausgeführt werden, indem ein Partialrest, der von dem Addierer-/Subtrahiererabschnitt (96) ausgegeben wurde, eine vorbestimmte Anzahl von Malen gemäß einer Rückkopplung eingespeist wird.
10. Gleitkommadivisionsschaltung nach Anspruch 6, bei der
die Gleitkommadaten aus Gleitkommadaten bestehen, die in Einklang mit dem IEEE-Standard stehen und bei der die Quotienten-Generierungsabschnitte (93, 94, 101, 103- 105) einen Abrundungsausgangsbestimmungsabschnitt (103) umfassen, um eine Abrundungsoperation gemäß dem IEEE-Standard durchzuführen.
11. Gleitkommadivisionsschaltung nach Anspruch 1, ferner mit:
einem Steuerabschnitt (90), der ein Steuersignal (DCN0-15#X) auf der Grundlage eines Zählwertes ausgibt, der durch Zählen von Taktsignalen erhalten wurde, während ein Befehl für eine Division ausgeführt wird, und der den Zählwert fixiert hält, während ein Befehl für eine Division nicht ausgeführt wird, indem er den Zählwert festhält und das Steuersignal (DCN0-15#X) ungültig macht;
wobei das Steuersignal (DCN0-15#X) eine Verriegelungsoperation eines Registers in dem Quotienten- Generierungsschaltungsabschnitt (93, 94, 101, 103-105) steuert.
12. Gleitkommadivisionsschaltung nach Anspruch 11, bei der
der Steuerabschnitt (90) folgendes aufweist:
eine Steuerschaltung (110) zum Generieren eines Zählsteuersignals (DCACT#X), welches während einer Periode, die mit einer Eingabe eines Start-der-Division-Signals (START#X) beginnt und mit einer Eingabe eines Ende-der-Division-Signals (END#X) endet, aktiv gehalten wird; und
einen Zähler, dessen Freigabeanschluß eine Eingangsgröße des Zählsteuersignals (DCACT#X) empfängt, wobei Taktsignale gezählt werden, wenn das Zählsteuersignal (DCACT#X) aktiv ist, um das Steuersignal (DCN0-15#X) zu generieren.
13. Gleitkommadivisionsschaltung nach Anspruch 11, bei der
der Mantissendivisionsabschnitt (100) folgendes aufweist:
einen Divisor-Vielfachgenerierungsabschnitt (95) zum Generieren einer Vielzahl von Divisor-Vielfachdaten in bezug auf eine Radix und auf der Grundlage des Mantissenteiles des Divisors (D) und zum Ausgeben von ausgewählten Divisor-Vielfachdaten;
einen Addierer-/Subtrahiererabschnitt (96) zum Durchführen einer Addition und einer Subtraktion an dem Partialrest, der von den Mantissenteilen des Dividenden (N) und des Divisors (D) abgeleitet wurde, und an den Divisor- Vielfachdaten von dem Divisor-Vielfachgenerierungsabschnitt (95), so daß ein Partialrest erhalten wird;
einen Quotientenvoraussageabschnitt (97) zum Voraussagen eines Partialquotienten auf der Grundlage eines Partialrestes, der von dem Addierer-/Subtrahiererabschnitt (96) ausgegeben wurde, und auf der Grundlage des Mantissenteiles des Divisors (D), und um ein Quotientenvoraussagesignal zu generieren;
ein drittes Register, in welchem der Partialquotient und ein Quotientenvoraussagesignal aus dem Quotientenvoraussageabschnitt (97) eingestellt sind, wobei eines einer Vielzahl der Divisor-Vielfachdaten selektiv auf der Grundlage des Quotientenvoraussagesignals ausgegeben wird; und
einen Quotientenkorrekturabschnitt (99), in den ein Partialquotient aus dem dritten Register (98) und ein Partialrest, der von dem Addierer-/Substrahiererabschnitt (96) ausgegeben wurde, eingespeist werden, so daß der Partialquotient korrigiert wird, wobei
Divisionen in Einklang mit einer Divisionsmethode vom Großradix-Nichtwiederverwertungstyp dadurch ausgeführt werden, indem ein von dem Addierer-/Subtrahiererabschnitt (96) ausgegebener Partialrest eine vorbestimmte Anzahl von Malen in Form einer Rückkopplung eingespeist wird.
14. Gleitkommadivisionsschaltung nach Anspruch 11, bei der
die Gleitkommadaten aus Gleitkommadaten bestehen, die in Einklang mit dem IEEE-Standard stehen und bei der die Quotienten-Generierungsabschnitte (93, 94, 101, 103- 105) einen Abrundungsausgangsbestimmungsabschnitt (103) umfassen, um eine Abrundungsoperation gemäß dem IEEE-Standard durchzuführen.
15. Gleitkommadivisionsschaltung nach Anspruch 1,
bei der ein Nichtausführungssignal (DRUN) wiederholte Operationen des Mantissendivisionsabschnitts (100) dadurch anhält, indem eine Verriegelungsoperation eines Registers in dem Mantissendivisionsabschnitt (100) gestoppt wird.
16. Gleitkommadivisionsschaltung nach Anspruch 1, ferner mit:
einem Steuerabschnitt (90), der ein Steuersignal (DCN0-15#X) auf der Grundlage eines Zählwertes ausgibt, der durch Zählen von Taktsignalen erhalten wurde, während ein Befehl für eine Division ausgeführt wird, und der den Zählwert fixiert hält, während ein Befehl für eine Division nicht ausgeführt wird, indem der Zählwert gehalten wird, wobei das Steuersignal (DCN0-15#X) ungültig gemacht wird und das Nichtausführungssignal (DRUN) ausgegeben wird, welches nur dann aktiv gemacht wird, wenn ein Befehl für eine Division nicht ausgeführt wird,
wobei das Stoppsignal (DSTOP#X) eine Verriegelungsoperation eines Registers in dem Mantissendivisionsabschnitt (100) anhält und das Steuersignal (DCN0-15#X) eine Verriegelungsoperation eines Registers in dem Quotientengenerierungsschaltungsabschnitt (93, 94, 101, 103-15) steuert.
17. Gleitkommadivisionsschaltung nach Anspruch 16, bei der
der Ausnahme-/Nichtoperationsdetektierungsabschnitt (92) folgendes aufweist:
eine logische Schaltung (921), die ein Übereinstimmungssignal dann ausgibt, wenn eine Kombination aus einem Muster-Bestimmungsergebnis an dem Divisor (D) und ein Muster-Bestimmungsergebnis an dem Dividenden (N) mit irgendeinem einer Vielzahl von vorbestimmten Nichtoperationsmustern übereinstimmt; und
eine Schaltung (922) zum Erzeugen eines Stoppsignals auf der Grundlage eines Übereinstimmungssignals von der logischen Schaltung (921).
18. Gleitkommadivisionsschaltung nach Anspruch 17, mit:
einem ersten Register (89) zum Speichern eines Partialrestes, der von den Mantissenteilen des Dividenden (N) und des Divisors (D), die von dem Schaltungsabschnitt (83) ausgegeben werden, abgeleitet wurde; und
einem zweiten Register (88) zum Speichern eines Mantissenteiles des Divisors (D), wobei
das Stoppsignal (DSTOP#X) und das Nichtausführungssignal (DRUN) in ein Register in dem Mantissendivisionsabschnitt (100) und das erste Register (89) in Form eines Signals eingegeben werden, um eine Verriegelungsoperation zu stoppen.
19. Gleitkommadivisionsschaltung nach Anspruch 17, bei der
der Steuerabschnitt (90) folgendes aufweist:
eine Steuerschaltung (110) zum Generieren des Zählwertsteuersignals (DCACT#X), welches während einer Periode aktiv gehalten wird, die mit einer Eingabe eines Start-der-Division-Signals (START#X) beginnt und mit einer Eingabe eines Ende-der-Division-Signals (END#X) endet, und um das Nichtausführungssignal (DRUN) zu erzeugen, welches vor einer Eingabe des Start-der-Division-Signals (START#X) und nach einer Eingabe des Ende-der-Division-Signals (END#X) aktiv gemacht wird; und
einen Zähler, dessen Freigabeanschluß eine Eingangsgröße des Zählwertsteuersignals (DCACT#X) empfängt, wobei Taktsignale gezählt werden, wenn das Zählwertsteuersignal (DCACT#X) aktiv ist, um das Steuersignal (DCN0- 15#X) zu generieren.
DE69227348T 1991-03-13 1992-03-12 DIVIDIERSCHALTUNG FüR GLEITKOMMAZAHLEN Expired - Fee Related DE69227348T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP3048452A JPH04283831A (ja) 1991-03-13 1991-03-13 除算器
PCT/JP1992/000296 WO1992016892A1 (en) 1991-03-13 1992-03-12 Floating-point dividing circuit

Publications (2)

Publication Number Publication Date
DE69227348D1 DE69227348D1 (de) 1998-11-26
DE69227348T2 true DE69227348T2 (de) 1999-03-18

Family

ID=12803744

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69227348T Expired - Fee Related DE69227348T2 (de) 1991-03-13 1992-03-12 DIVIDIERSCHALTUNG FüR GLEITKOMMAZAHLEN

Country Status (6)

Country Link
US (1) US5309383A (de)
EP (1) EP0529101B1 (de)
JP (1) JPH04283831A (de)
KR (1) KR950006584B1 (de)
DE (1) DE69227348T2 (de)
WO (1) WO1992016892A1 (de)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2803506B2 (ja) * 1992-12-25 1998-09-24 三菱電機株式会社 除算器
US5404324A (en) * 1993-11-01 1995-04-04 Hewlett-Packard Company Methods and apparatus for performing division and square root computations in a computer
US5553015A (en) * 1994-04-15 1996-09-03 International Business Machines Corporation Efficient floating point overflow and underflow detection system
GB2296350B (en) * 1994-12-21 1999-10-06 Advanced Risc Mach Ltd Data processing divider
US5687106A (en) * 1995-03-31 1997-11-11 International Business Machines Corporation Implementation of binary floating point using hexadecimal floating point unit
US5757682A (en) * 1995-03-31 1998-05-26 International Business Machines Corporation Parallel calculation of exponent and sticky bit during normalization
US5771366A (en) * 1995-06-09 1998-06-23 International Business Machines Corporation Method and system for interchanging operands during complex instruction execution in a data processing system
USH1993H1 (en) * 1997-06-25 2001-09-04 Sun Microsystems, Inc. Floating-point division and squareroot circuit with early determination of resultant exponent
JP2005229312A (ja) * 2004-02-12 2005-08-25 Daihen Corp 適応型ディジタルフィルタ
US20050289208A1 (en) * 2004-06-23 2005-12-29 Harrison John R Methods and apparatus for determining quotients
US20060179092A1 (en) * 2005-02-10 2006-08-10 Schmookler Martin S System and method for executing fixed point divide operations using a floating point multiply-add pipeline
US8140608B1 (en) * 2007-05-31 2012-03-20 Nvidia Corporation Pipelined integer division using floating-point reciprocal
US9983850B2 (en) * 2015-07-13 2018-05-29 Samsung Electronics Co., Ltd. Shared hardware integer/floating point divider and square root logic unit and associated methods
US10353671B2 (en) * 2016-01-13 2019-07-16 Arm Limited Circuitry and method for performing division
US10359995B2 (en) 2016-04-29 2019-07-23 Texas Instruments Incorporated Architecture and instruction set to support integer division
US10635395B2 (en) * 2016-06-30 2020-04-28 Texas Instruments Incorporated Architecture and instruction set to support interruptible floating point division
KR20240033565A (ko) * 2022-09-05 2024-03-12 리벨리온 주식회사 뉴럴 프로세싱 장치, 그에 포함되는 프로세싱 엘리먼트 및 뉴럴 프로세싱 장치의 다양한 포맷 연산 방법

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4338675A (en) * 1980-02-13 1982-07-06 Intel Corporation Numeric data processor
JPS57169849A (en) * 1981-04-11 1982-10-19 Japan Radio Co Ltd Division circuit
US4507676A (en) * 1982-10-28 1985-03-26 Rca Corporation Digital matrixing system
JPS5979350A (ja) * 1982-10-29 1984-05-08 Toshiba Corp 浮動小数点演算装置
CA1231455A (en) * 1984-04-09 1988-01-12 Masayuki Ikeda Nonrestoring divider
JPS6145354A (ja) * 1984-08-10 1986-03-05 Nec Corp マイクロプロセツサ
JPH0789346B2 (ja) * 1985-07-05 1995-09-27 日本電気株式会社 Dmaコントローラ
JPS62145418A (ja) * 1985-12-20 1987-06-29 Nec Corp Aluのスタンバイ制御方式
US4760550A (en) * 1986-09-11 1988-07-26 Amdahl Corporation Saving cycles in floating point division
US4999801A (en) * 1988-07-15 1991-03-12 Fujitsu Limited Floating point operation unit in division and square root operations
DE68927398T2 (de) * 1988-08-29 1997-05-28 Nippon Electric Co Digitale Divisionsschaltung mit einem N/2-Bit-Subtrahierer für N-Subtraktionen
US4996660A (en) * 1989-04-17 1991-02-26 International Business Machines Corporation Selection of divisor multipliers in a floating point divide circuit
JPH0391028A (ja) * 1989-09-04 1991-04-16 Mitsubishi Electric Corp パイプライン処理装置

Also Published As

Publication number Publication date
EP0529101A4 (en) 1993-10-20
EP0529101A1 (de) 1993-03-03
WO1992016892A1 (en) 1992-10-01
EP0529101B1 (de) 1998-10-21
DE69227348D1 (de) 1998-11-26
US5309383A (en) 1994-05-03
KR950006584B1 (ko) 1995-06-19
JPH04283831A (ja) 1992-10-08
KR930700905A (ko) 1993-03-16

Similar Documents

Publication Publication Date Title
DE69227348T2 (de) DIVIDIERSCHALTUNG FüR GLEITKOMMAZAHLEN
DE3788965T2 (de) Steuerungsschaltung für Zweirichtungsverschiebung mit variabler Anzahl.
DE69430838T2 (de) Schaltung und Verfahren zur parallelen Verschiebung und Addition
DE2724125C2 (de)
DE68928376T2 (de) Vorrichtung zum multiplizieren, teilen und ziehen der quadratwurzel
DE3306084C2 (de)
DE69131187T2 (de) Hochgeschwindigkeitsdividierer
DE69326314T2 (de) Durchführung aritmetische Operationen auf Daten
DE69506675T2 (de) Verfahren zur Ausführung von modularen Reduktion nach der Montgomery-Methode
DE2900324A1 (de) Mikroprogrammierbare arithmetische fliesskommaeinheit
DE69130623T2 (de) Dividierer mit hoher Grundzahl
DE1956209C3 (de) Multipliziervorrichtung
DE2421130C2 (de)
DE68924386T2 (de) Verfahren und Gerät zur Radix-2**n-Division mit überlappender Quotientenbitauswahl und gleichzeitiger Rundung und Korrektur des Quotienten.
DE1549477B1 (de) Einrichtung zur schnellen akkumulation einer anzahl mehr stelliger binaerer operanden
DE3888230T2 (de) Einrichtung und Verfahren zur Durchführung einer Schiebeoperation mit einer Multipliziererschaltung.
DE68927652T2 (de) Dividierschaltung für ganze Zahlen, versehen mit einer Überlaufdetektionsschaltung
DE3701599C2 (de)
DE2222197B2 (de) Anordnung zum Auf- bzw. Abrunden von Binärzahlen
EP1543408A1 (de) Vorrichtung und verfahren zum berechnen einer multiplikation mit einer verschiebung des multiplikanden
DE3852576T2 (de) Einrichtung und Verfahren für eine erweiterte Arithmetik-Logik-Einheit zur Beschleunigung der ausgewählten Operationen.
DE68927398T2 (de) Digitale Divisionsschaltung mit einem N/2-Bit-Subtrahierer für N-Subtraktionen
DE3314035C2 (de)
DE3303269C2 (de)
DE2364865A1 (de) Erweitertes speicheradressenbildungssystem eines digitalen rechnersystems

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee