DE69821408T2 - Multiplikationsverfahren und -vorrichtung - Google Patents

Multiplikationsverfahren und -vorrichtung Download PDF

Info

Publication number
DE69821408T2
DE69821408T2 DE69821408T DE69821408T DE69821408T2 DE 69821408 T2 DE69821408 T2 DE 69821408T2 DE 69821408 T DE69821408 T DE 69821408T DE 69821408 T DE69821408 T DE 69821408T DE 69821408 T2 DE69821408 T2 DE 69821408T2
Authority
DE
Germany
Prior art keywords
bit
precision
double
value
multiplier
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
DE69821408T
Other languages
English (en)
Other versions
DE69821408D1 (de
Inventor
Kazufumi Takatsuki-shi Tanoue
Hideyuki Kabuo
Ryutaro Konan-ku Yamanaka
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.)
Panasonic Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of DE69821408D1 publication Critical patent/DE69821408D1/de
Application granted granted Critical
Publication of DE69821408T2 publication Critical patent/DE69821408T2/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
    • 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/523Multiplying only
    • G06F7/53Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
    • G06F7/5324Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel partitioned, i.e. using repetitively a smaller parallel parallel multiplier or using an array of such smaller multipliers
    • 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/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49936Normalisation mentioned as feature 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/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49994Sign extension
    • 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/523Multiplying only
    • G06F7/533Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
    • G06F7/5334Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product
    • G06F7/5336Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product overlapped, i.e. with successive bitgroups sharing one or more bits being recoded into signed digit representation, e.g. using the Modified Booth Algorithm
    • G06F7/5338Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product overlapped, i.e. with successive bitgroups sharing one or more bits being recoded into signed digit representation, e.g. using the Modified Booth Algorithm each bitgroup having two new bits, e.g. 2nd order MBA

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (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)
  • Complex Calculations (AREA)
  • Executing Machine-Instructions (AREA)
  • Error Detection And Correction (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

  • Die Erfindung bezieht sich auf Rechenverfahren und auf ein Rechengerät, das eine Multiplikation mit doppelter Genauigkeit unter Verwendung einer Multipliziereinrichtung mit einfacher Genauigkeit ausführt.
  • Ein Multiplikationssystem doppelter Genauigkeit ist bekannt, bei dem Produkte des werthohen Wortes/wertniedrigen Wortes eines Multiplikanden doppelter Genauigkeit mit dem werthohen Wort/wertniedrigen Wort eines Multiplikators doppelter Genauigkeit gewonnen werden unter Verwendung einer Multipliziereinrichtung einfacher Genauigkeit, und eine Ziffernstellenausrichtungsadditionsoperation wird bezüglich eines jeden der Produkte ausgeführt, wodurch ein Multiplizierergebnis doppelter Genauigkeit gewonnen wird. Dieses System ist beispielsweise offenbart in der japanischen Patentveröffentlichung (Kokai) Nummer HEI8-30439. Im Beispiel des Standes der Technik, das in der japanischen Patentveröffentlichung (Kokai) Nummer HEI8-30439 offenbart ist, sind Mittel zum Halten des höchstwertigen Bits eines niedrigen Wortes eines Multiplikators doppelter Genauigkeit vorgesehen, und das höchstwertige Bit des wertniedrigen Wortes vom Multiplikators doppelter Genauigkeit wird verwendet beim Codieren des werthohen Wortes vom Multiplikator doppelter Genauigkeit, so daß das wertniedrige Wort des Multiplikators doppelter Genauigkeit behandelt wird als vorzeichenbehaftete Dualzahl. Um eine Multiplikation des wertniedrigen Wortes vom Multiplikanden doppelter Genauigkeit auszuführen, ist das System ausgestattet mit einem Multipliziermittel, das die Funktion besitzt, eine Multiplikation zu ermöglich, selbst wenn der Multiplikand eine nicht-vorzeichenbehaftete Dualzahl ist. Der Stand der Technik kann folglich eine Multiplikation doppelter Genauigkeit ausführen, ohne die Genauigkeit zu verschlechtern.
  • Im Beispiel des Standes der Technik, das offenbart ist in der japanischen Patentveröffentlichung (Kokai) Nummer HEI8-30439 wird jedoch angenommen, daß ein Vorzeichen eine positive Zahl bei dem Bit aufzeigt, das um ein Bit höher als das höchstwertige Bit des Multiplikanden ist, wenn das Multipliziermittel den Multiplikanden als eine nicht-vorzeichenbehaftete Dualzahl ansieht. Die Ziffernstelle des Vorzeichens vom Multiplizierergebnis unterscheidet sich folglich von demjenigen eines Ergebnisses einer Multiplikation, bei der der Multiplikand eine vorzeichenbehaftete Dualzahl ist. Die Verschiebungszahl für die Ziffernstellenausrichtung unterscheidet sich folglich in Additionen von Produkten des werthohen Wortes/wertniedrigen Wortes eines Multiplikanden doppelter Genauigkeit mit dem werthohen Wort/wertniedrigen Wort eines Multiplikators doppelter Genauigkeit, und von daher hat das Beispiel des Standes der Technik ein Problem darin, daß der Schaltungsumfang für das Ziffernstellenausrichtmittel groß wird.
  • Das Dokument JP-A-08305550 offenbart eine Produktsummenrecheneinheit, bei der die Anzahl von Eingängen zum Addierbaum verringert ist, um so den Hardwareumfang zu reduzieren und eine hohe Arbeitsgeschwindigkeit zu erreichen. Die Produktsummenrecheneinheit erzeugt Partialprodukte eines Multiplikanden mit einem Multiplikator.
  • Das Dokument JP-A-08328828 offenbart eine Recheneinheit einer Produktsumme, bei der die Anzahl von Eingängen in einen CSA-Baum reduziert ist, so daß der Hardwareumfang verringert ist und eine hohe Arbeitsgeschwindigkeit erreicht wird. Die Recheneinheit für das Summenprodukt erzeugt Partialprodukte eines Multiplikanden mit einem Multiplikator.
  • Eine Aufgabe der Erfindung ist es, ein Rechenverfahren und ein Rechengerät zu schaffen, das das zuvor angeführte Problem löst, wobei der Schaltungsumfang für das Ziffernstellenausrichtmittel verringert ist und eine Multiplikation doppelter Genauigkeit mit hervorragender Effizienz erreichbar ist.
  • Diese Aufgabe wird durch die Erfindung gemäß den unabhängigen Patentansprüchen 1 und 6 gelöst. Besondere Aspekte der Erfindung sind in den abhängigen Patentansprüchen angegeben.
  • Im Rechenverfahren nach der Erfindung wird in einem binären Festkommazahlensystem, bei dem das höchstwertige Bit ein Vorzeichenbit ist und ein Dezimalkomma zwischen dem höchstwertigen Bit und einem ein-bit-niedrigeren Bit steht, wenn die Produkte eines werthohen Wortes/wertniedrigen Wortes eines Multiplikanden doppelter Genauigkeit mit einem werthohen Wort/wertniedrigen Wort eines Multiplikators doppelter Genauigkeit zu erzielen sind unter Verwendung einer Multipliziereinrichtung mit einfacher Genauigkeit, und eine Ziffernstellenausrichtaddieroperation ist bezüglich der gewonnenen Produkte auszuführen, um das Multiplizierergebnis mit doppelter Genauigkeit zu gewinnen, wenigstens zwei Ziffern werden vor das Dezimalkomma gesetzt, wodurch jedes der Produkte des werthohen Wortes/wertniedrigen Wortes des Multiplikanden doppelter Genauigkeit mit dem werthohen Wort/wertniedrigen Wort des Multiplikators doppelter Genauigkeit zu gewinnen ist, um eine Bitbreite zu erzielen, die wenigstens ein Bit breiter ist als die Bitbreite bei doppelter Genauigkeit.
  • Wenn wenigstens zwei Ziffern vor dem Komma stehen, wie zuvor beschrieben, ist die Verschiebezahl für die Ziffernstellenausrichtung eines jeden Produktes, gewonnen bei einer Bitbreite, die breiter um wenigstens ein Bit als die Bitbreite bei doppelter Genauigkeit, relativ beschränkt auf dieselbe Bitbreite. Folglich kann der Schaltungsumfang für das Ziffernstellenausrichtmittel verringert werden, und eine Multiplikation mit doppelter Genauigkeit läßt sich in effizienter Weise realisieren.
  • Durch Einstellen von wenigstens drei Ziffern vor dem Komma, kann jedes der Produkte des werthohen Wortes/wertniedrigen Wortes eines Multiplikanden doppelter Genauigkeit mit dem werthohen Wort/wertniedrigen Wort eines Multiplikators doppelter Genauigkeit gewonnen werden bei einer Bitbreite, die um zwei, drei oder mehr Bits erhöht ist gegenüber einer Bitbreite doppelter Genauigkeit. Dies bedeutet keine Vorzeichenerweiterung eines Produktes, das mit einer Bitbreite gewonnen wird, die um ein Bit breiter ist, und von daher führt dies nur zu einem erhöhten Schaltungsumfang. Üblicherweise ist es folglich ausreichend, vor das Komma zwei Ziffern zu setzen, um so Produkte mit einer Bitbreite zu erhalten, die um ein Bit breiter ist als die Breite bei doppelter Genauigkeit. Das Rechenverfahren der Erfindung ist nachstehend unter der Annahme beschrieben, daß Produkte des werthohen Wortes/wertniedrigen Wortes eines Multiplikanden doppelter Genauigkeit mit dem werthohen Wort/wertniedrigen Wort eines Multiplikators doppelter Genauigkeit bei einer Bitbreite gewonnen werden, die um ein Bit breiter als die Bitbreite bei doppelter Genauigkeit ist.
  • Wenn im Rechenverfahren ein Produkt des wertniedrigen Wortes vom Multiplikanden doppelter Genauigkeit mit dem wertniedrigen Wort des Multiplikators doppelter Genauigkeit als Beispiel zu gewinnen ist, wird ein Datenwert, bei dem ein Vorzeichenbit einer positiven Zahl einer Ziffer hinzugefügt wird, die um ein Bit höher ist als das höchstwertige Bit des wertniedrigen Wortes vom Multiplikanden doppelter Genauigkeit, multipliziert mit einem Datenwert, bei dem das höchstwertige Bit des wertniedrigen Wortes eines Multiplikators mit doppelter Genauigkeit ein Vorzeichenbit ist, wobei ein Wert "0" der Ziffer hinzugefügt ist, die um ein Bit niedriger als das niedrigstwertige Bit eines Ergebnisses einer Multiplikation ist, und ein Ergebnis der Addition wird als gewünschtes Produkt abgegeben.
  • Wenn ein Produkt von einem werthohen Wort des Multiplikanden doppelter Genauigkeit mit dem wertniedrigen Wort des Multiplikators doppelter Genauigkeit als Beispiel zu erzielen ist, wird ein Datenwert, in dem ein Vorzeichenbit des höchstwertigen Bits vom werthohen Wort des Multiplikanden doppelter Genauigkeit einer Ein-Bit-Vorzeichenerweiterung unterzogen wird, multipliziert mit einem Datenwert, in dem das höchstwertige Bit des wertniedrigen Wortes vom Multiplikator doppelter Genauigkeit ein Vorzeichenbit ist, wobei ein wert "0" einer Ziffer hinzugefügt ist, die ein Bit niedriger ist als das niedrigstwertige Bit von einem Multiplikationsergebnis, und ein Ergebnis der Addition wird als gewünschtes Produkt abgegeben.
  • Wird ein Produkt eines wertniedrigen Wortes vom Multiplikanden doppelter Genauigkeit mit einem werthohen Wert vom Multiplikator doppelter Genauigkeit als Beispiel zu erzielen sein, wird ein Datenwert, bei dem ein Vorzeichen Bit eine positive Zahl aufzeigt, der Ziffer hinzugefügt, die um ein Bit höher als das höchstwertige Bit im wertniedrigen Wort der Multiplikanden doppelter Genauigkeit ist, multipliziert mit einem Datenwert, der einen Datenwert aufweist mit demselben Wert wie derjenige des höchstwertigen Bits im wertniedrigen Wort des Multiplikanden doppelter Genauigkeit der Ziffer des niedrigstwertigen Bits hinzugefügt vom werthohen Wort eines Multiplikators doppelter Genauigkeit, wobei ein Wert "0" einer Ziffer hinzugefügt ist, die um ein Bit niedriger als das niedrigstwertige Bit eines Ergebnisses der Multiplikation ist, und ein Ergebnis der Addition wird als gewünschtes Produkt abgegeben.
  • Wenn ein Produkt des werthohen Wortes vom Multiplikanden doppelter Genauigkeit mit dem werthohen Wort des Multiplikators doppelter Genauigkeit als Beispiel zu erzielen ist, wird ein Datenwert, bei dem ein Vorzeichenbit des höchstwertigen Bits vom werthohen Wort des Multiplikanden doppelter Genauigkeit einer Ein-Bit-Vorzeichenerweiterung unterzogen und multipliziert mit einem Datenwert, in dem ein Datenwert mit demselben Wert wie derjenigen des höchstwertigen Bits des wertniedrigen Wortes vom Multiplikator doppelter Genauigkeit einer Ziffer vom niedrigstwertigen Bit des werthohen Wortes vom Multiplikator doppelter Genauigkeit hinzugefügt, wobei ein Wert "0" einer Ziffer hinzugefügt wird, die um ein Bit niedriger als das niedrigstwertige Bit eines Multiplikationsergebnisses ist, und ein Additionsergebnis wird als gewünschtes Produkt abgegeben.
  • Eine Multipliziereinrichtung einfacher Genauigkeit, die üblicherweise Verwendung findet, führt eine Multiplikation von zwei Ziffern mit einfacher Genauigkeit aus, und ein Multiplikationsergebnis wird gewonnen als ein Datenwert mit einer Bitbreite, die um ein Bit schmaler ist als die Bitbreite bei doppelter Genauigkeit. Wegen der Ausrichtung des Dezimalkommas und des Ergebnisses bei einer Bitbreite doppelter Genauigkeit, wird ein Wert "0" einer Ziffer hinzugefügt, die um ein Bit niedriger als das niedrigstwertige Bit eines Multiplikationsergebnisses, und ein Datenwert doppelter Genauigkeit wird als Produkt abgegeben.
  • Eine Multipliziereinrichtung einfacher Genauigkeit, die verwendet wird zum Erzielen von Produkten des werthohen Wortes/wertniedrigen Wortes eines Multiplikanden doppelter Genauigkeit mit dem werthohen Wort/wertniedrigen Wort eines Multiplikators doppelter Genauigkeit führt eine Vorzeichenerweiterung bezüglich einer Ziffern aus, die um ein Bit höher ist als das höchstwertige Bit vom Multiplikanden, oder addiert ein Vorzeichenbit, das eine positive Zahl aufzeigt. Folglich ist die Bitbreite eines Multiplikationsergebnisses gleich derjenigen bei doppelter Genauigkeit. Selbst wenn eine Vorzeichenerweiterung ausgeführt wird oder ein Vorzeichenbit, das eine positive Zahl aufzeigt, hinzugefügt wird, bleibt jedoch die Position des Dezimalkommas vom Multiplikanden unverändert. Folglich hat ein Multiplikationsergebnis, gewonnen von der zuvor beschriebenen Multipliziereinrichtung einfacher Genauigkeit wenigstens zwei Ziffern vor dem Dezimalkomma, so daß das Ergebnis einen Datenwert hat, der um ein Bit größer ist als ein Multiplikationsergebnis, das mit einer herkömmlichen Multipliziereinrichtung einfacher Genauigkeit erzielt wird. Beim zuvor genannten Multiplikator einfacher Genauigkeit wird in Hinsicht auf die Beziehung zwischen Ziffernstellen ein Wert "0" hinzugefügt, wie zuvor beschrieben, und zwar einer Ziffer, die um ein Bit niedriger als das niedrigstwertige Bit vom Multiplikationsergebnis ist, so daß das Ergebnis vor dem Komma zwei Ziffern hat, wodurch ein Produkt mit einer Bitbreite gewonnen wird, die um ein Bit breiter ist als die Bitbreite doppelter Genauigkeit.
  • Das Rechengerät nach der Erfindung führt eine Multiplikation doppelter Genauigkeit aus unter Verwendung einer Multipliziereinrichtung einfacher Genauigkeit, die eine Multiplikation von zwei vorzeichenbehafteten Dualzahlen mit Festkommadaten hat, und das Gerät kann verfügen über: ein MSB-Haltemittel zum Halten eines höchstwertigen Bits eines Multiplikators, bestehend aus einem werthohen Wort/wertniedrigen Wort eines Multiplikators doppelter Genauigkeit; ein Datenauswahlmittel, das in selektiver Weise eines der gehaltenen Datenwerte vom MSB-Haltemittel und einen Wert "0" abgibt; ein Multipliziercodiermittel, das den Multiplikator unter Verwendung des Multiplikators und eines Ausgabendatenwerts vom Auswahlmittel codiert und den codierten Multiplikator abgibt; ein Multipliziermittel, das einen Multiplikanden aufnimmt, der aus einem werthohen Wort/wertniedrigen Wort eines Multiplikanden doppelter Genauigkeit besteht, einem Ausgabedatenwert des Multipliziercodiermittels und einem Multiplikandenbeurteilungssignal für den Fall, daß das Multiplikandenbeurteilungssignal aktiv ist, Erzielen eines Ergebnisses einer Multiplikation des Multiplikanden mit dem Ausgangsdatenwert des Multipliziercodiermittels, während eine 1-Bit-Vorzeichenerweiterung bezüglich eines Vorzeichenbits erfolgt, das ein höchstwertiges Bit des Multiplikanden ist, und wenn das Multiplikandenbeurteilungssignal inaktiv ist, Erzielen eines Ergebnisses einer Multiplikation des Multiplikanden mit dem Ausgangsdatenwert des Multipliziercodiermittels, während ein Vorzeichenbit hinzugefügt wird, das eine positive Zahl dem Bit aufzeigt, das um ein Bit höher ist als das höchstwertige Bit des Multiplikanden, und zur Abgabe des Multiplizierergebnisses, bei dem wenigstens zwei Bits vor einem Dezimalkomma stehen und das eine Bitbreite aufweist, die wenigstens ein Bit breiter als eine Bitbreite doppelter Genauigkeit ist; ein Addiermittel zum Ausführen einer Addition eines zweiten Summanden, der ein Ausgangsdatenwert des Multipliziermittels ist, mit einem ersten Summanden, bei dem wenigsten zwei Bits vor einem Dezimalkomma stehen und dessen Bitbreite um wenigstens ein Bit breiter ist als eine Bitbreite doppelter Genauigkeit und ein Addierergebnis abgibt, bei dem wenigstens zwei Bits vor einem Dezimalkomma stehen und das eine Bitbreite aufweist, die wenigstens um ein Bit breiter ist als die Bitbreite doppelter Genauigkeit; ein Additionsergebnishaltemittel, das das vom Addiermittel abgegebene Additionsergebnis hält; und durch ein Bitausrichtmittel, das einen der gehaltenen Datenwerte vom Additionsergebnishaltemittel und einen Wert "0" auswählt, um eine Bitausrichtung durch Durchführen einer Bitschiebeoperation in Einheit einer Breite eines Datenwertes einfacher Genauigkeit durchzuführen, um eine Bitausrichtung zu erreichen und zur Ausgabe eines Ergebnisses der Bitausrichtung als den ersten Summanden für das Addiermittel.
  • Nach dieser Konfiguration gibt das Multipliziermittel das Multiplizierergebnis ab, das wenigstens zwei Ziffern vor dem Komma hat, und daher ist die Bitbreite um wenigstens ein Bit breiter als die Bitbreite doppelter Genauigkeit. Folglich wird die Verschiebezahl für die Ziffernstellenausrichtung eines jeden Multiplikationsproduktes relativ beschränkt auf dieselbe Bitbreite. Der Schaltungsumfang des Ziffernstellenausrichtmittels kann folglich verkleinert werden und eine Multiplikation doppelter Genauigkeit läßt sich in effizienter Weise realisieren.
  • Beim Rechengerät wird während des Ausführens einer Multiplikation doppelter Genauigkeit als Beispiel das MSB-Haltemittel so arbeiten, daß, wenn ein Produkt des wertniedrigen Wortes vom Multiplikator doppelter Genauigkeit mit dem werthohen Wort/wertniedrigen Wort des Multiplikanden doppelter Genauigkeit zu erzielen ist, ein höchstwertiges Bit des wertniedrigen Wortes vom Multiplikator doppelter Genauigkeit gehalten wird.
  • Während der Ausübung einer Multiplikation doppelter Genauigkeit im Rechengerät als Beispiel arbeitet das Datenauswahlmittel so, daß, wenn ein Produkt des wertniedrigen Wortes vom Multiplikator doppelter Genauigkeit mit dem werthohen Wort/wertniedrigen Wort des Multiplikanden doppelter Genauigkeit zu erzielen ist, ein Wert "0" in selektiver Weise abgegeben wird, und wenn ein Produkt eines werthohen Wortes eines Multiplikators doppelter Genauigkeit mit einem werthohen Wort/wertniedrigen Wort des Multiplikanden doppelter Genauigkeit zu erzielen ist, wird das höchstwertige Bit des wertniedrigen Wortes vom Multiplikator doppelter Genauigkeit, das vom MSB-Haltemittel gehalten ist, in selektiver Weise abgegeben.
  • Im Rechengerät wird als Beispiel während des Ausführens einer Multiplikation doppelter Genauigkeit das Multipliziercodiermittel so arbeiten, daß, wenn ein Produkt des wertniedrigen Wortes vom Multiplikator doppelter Genauigkeit mit dem werthohen Wort/wertniedrigen Wort des Multiplikanden doppelter Genauigkeit zu erzielen ist, das eingegebene wertniedrige Wort des Multiplikators doppelter Genauigkeit und der abgegebene Datenwert "0", ausgewählt vom Datenauswahlmittel, codiert werden gemäß dem Booth-Algorithmus und dann abgegeben werden, und, wenn das Produkt des werthohen Wortes vom Multiplikator doppelter Genauigkeit mit dem werthohen Wort/wertniedrigen des Multiplikanden doppelter Genauigkeit zu erzielen ist, weiden die Ausgangsdaten des höchstwertigen Bits vom wertniedrigen Wort des Multiplikators doppelter Genauigkeit, der vom MSB-Haltemittel gehalten wird und vom Auswahlmittel ausgewählt wird, gemäß dem Booth-Algorithmus codiert und dann abgegeben.
  • Im Rechengerät enthält das Multipliziermittel beispielsweise ein Partialprodukterzeugungsmittel, das, wenn das Multiplikandenbeurteilungssignal aktiv ist, beurteilt, daß der eingegebene Multiplikand das wertniedrige Wort des Multiplikanden doppelter Genauigkeit ist, und erzielt ein Partialprodukt des Multiplikanden und der Ausgangsdaten vom Multipliziercodiermittel, während das Vorzeichenbit addiert wird, das die positive Zahl für eine Ziffer aufzeigt, die um ein Bit höher ist als das höchstwertige Bit des Multiplikanden, und dafür, daß, wenn das Multiplikandenbeurteilungssignal inaktiv ist, beurteilt wird, daß der eingegebene Multiplikand das werthohe Wort des Multiplikanden doppelter Genauigkeit ist und ein Partialprodukt des Multiplikanden und der Ausgangsdaten vom Multipliziercodiermittel gewinnt, während eine Ein-Bit-Vorzeichenerweiterung bezüglich des Vorzeichenbits ausgeführt wird, welches das höchstwertige Bit des Multiplikanden ist. Das Multipliziermittel umfaßt wenigstens drei Sätze von Partialprodukterzeugungsmittels, Summenpartialprodukte, die Ausgangsdaten der mehreren Partialprodukterzeugungsmittel sind, während das Ziffernausrichten stattfindet, addieren einen Datenwert "0" zu einer Ziffer, die um ein Bit niedriger als das niedrigstwertige Bit eines Ergebnisses der Partialproduktsummierung ist, und gibt ein Ergebnis der Addition als gewünschtes Produkt ab.
  • Im Rechengerät können das Multiplizierergebnishaltemittel zum zeitweiligen Halten der Ausgangsdaten vom Multipliziermittel und das Ausgeben der gehaltenen Daten als zweiter Summand für das Addiermittel vorgesehen sein, und das Multipliziermittel und das Addiermittel können parallel arbeiten. Gemäß dieser Konfiguration läßt sich die Verarbeitungszeit abkürzen.
  • Im Rechengerät kann das Multipliziercodiermittel eine Funktion haben, um wenigstens das niedrigstwertige Bit vom Multiplikator, der ein Eingangsdatenwert ist, zwangsweise auf "0" einzustellen, und das Multipliziermittel kann eine Funktion haben, die wenigstens das niedrigstwertige Bit vom Multiplikanden, der ein Eingangsdatenwert ist, zwangsweise auf "0" einstellt.
  • Eine Aufgabe der Erfindung ist es, in effizienter Weise eine Multiplikation doppelter Genauigkeit und hoher Präzision auszuführen. In einigen Anwendungen, die aktuell praktisch verwendet werden, sind Normen festgelegt, um so eine Multiplikation doppelter Genauigkeit einer niedrigen Genauigkeit zu verwenden. Solche Anwendungen enthalten beispielsweise einen Sprachcodierprozeß, der verwendet wird in einem digitalen portablen Telefon.
  • Da die Funktionen jeweiliger Zwangseinstellungen der niedrigstwertigen Bits vom Multiplikator und vom Multiplikanden mit dem Wert "0" in der zuvor beschriebenen weise vorgesehen sind, kann eine Kompatibilität mit der Anwendung unter Verwendung der Multiplikation doppelter Genauigkeit einer geringen Genauigkeit erzielt werden.
  • In dieser Beschreibung ist eine Multiplikation doppelter Genauigkeit eines Mittels geringer Genauigkeit eine Multiplikation doppelter Genauigkeit, in der, wenn eine Multiplikation unter Verwendung von Daten, wie dem wertniedrigen Wort des Multiplikators doppelter Genauigkeit mit dem wertniedrigen Wort des Multiplikanden doppelter Genauigkeit auszuführen ist während einer Ausübung der Multiplikation doppelter Genauigkeit, Daten, in denen das wertniedrige Wort des Multiplikators doppelter Genauigkeit oder das wertniedrige Wort des Multiplikanden doppelter Genauigkeit nach rechts um ein Bit sind und das Vorzeichenbit, das eine positive Zahl aufzeigt, einer Ziffer des höchstwertigen Bits hinzugefügt, vorher erzeugt, und die Multiplikation wird ausgeführt, während diese Daten verwendet werden anstelle der Daten des wertniedrigen Wortes vom Multiplikator doppelter Genauigkeit und dem wertniedrigen Wort des Multiplikanden doppelter Genauigkeit. Die Vorzeichenbits vom Multiplikator doppelter Genauigkeit und dem Multiplikanden doppelter Genauigkeit entsprechen jeweils den höchstwertigen Bits des werthohen Wortes vom Multiplikator doppelter Genauigkeit beziehungsweise des werthohen Wortes des Multiplikanden Genauigkeit. Das wertniedrige Wort des Multiplikators doppelter Genauigkeit und das wertniedrige Wort des Multiplikanden doppelter Genauigkeit sind Daten, die noch kein Vorzeichenbit haben und die lediglich aus Datenbits bestehend.
  • Eine übliche Multipliziereinrichtung einfacher Genauigkeit, die vorzeichenbehaftete Dualzeichen mit Festkommazahlen handhabt, ist nicht so konfiguriert, daß sie Daten handhabt, die lediglich aus Datenbits bestehen. Um dies zu bewerkstelligen, wird ein Vorzeichenbit den Daten hinzugefügt, das eine positive Zahl aufzeigt, da das wertniedrige Wort des Multiplikators doppelter Genauigkeit und das wertniedrige Wort des Multiplikanden doppelter Genauigkeit als positive Daten angesehen werden. Wenn keine weitere Gegenmaßnahme ergriffen wird, ist die Bitbreite um ein Bit größer als die Bitbreite bei einfacher Genauigkeit. Die Daten der niedrigstwertigen Bits werden folglich ausgegliedert durch Ausführen einer Ein-Bit-Verschiebungsoperation nach rechts, wodurch die Bitbreite gegenüber derjenigen bei einfacher Genauigkeit unterdrückt wird. Mit anderen Worten, die Daten der niedrigstwertigen Bits vom wertniedrigen Wort vom Multiplikator doppelter Genauigkeit und das wertniedrige Wort des Multiplikanden doppelter Genauigkeit werden ausrangiert, und von daher wird die Genauigkeit um den Umfang des Ausrangierens verschlechtert. Das Versetzen der Ziffernstelle, verursacht durch die Ein-Bit-Verschiebeoperation nach rechts, wird absorbiert bei der Ziffernstellenausrichtoperation bei der Addition der Produkte vom werthohen Wort/wertniedrigen Wort des Multiplikators doppelter Genauigkeit mit dem werthohen Wort/wertniedrigen Wort des Multiplikanden doppelter Genauigkeit.
  • Im Rechengerät kann das MSB-Haltemittel realisiert werden durch selektives eines der höchstwertigen Bits vom Multiplikator und eines Wertes "0", anstelle des Mittels zum Halten vom höchstwertigen Bit des Multiplikators, der eine vorzeichenbehaftete Dualzahl ist. Gemäß dieser Konfiguration können Befehle gemeinsam sowohl bei der Multiplikation von Daten doppelter Genauigkeit mit Daten doppelter Genauigkeit als auch bei der Multiplikation von Daten doppelter Genauigkeit mit Daten einfacher Genauigkeit verwendet werden, und von daher kann die Anzahl von Befehlen reduziert werden.
  • KURZE BESCHREIBUNG DER ZEICHNUNG
  • 1 ist ein Blockdiagramm, das die Konfiguration eines Rechengerätes zeigt, das ein erstes Ausführungsbeispiel der vorliegenden Erfindung bildet;
  • 2 ist ein Diagramm, das Datenteilung eines Multiplikators doppelter Genauigkeit veranschaulicht;
  • 3 ist ein Diagramm, das ein Datenausgabeformat eines Produktes vom werthohen Wort eines Multiplikanden mit dem werthohen Wort/wertniedrigen Wort eines Multiplikators darstellt;
  • 4 ist ein Diagramm, das ein Datenausgabeformat eines Produktes vom wertniedrigen Wort eines Multiplikanden mit dem werthohen Wort/wertniedrigen Wort eines Multiplikators darstellt;
  • 5 ist ein Diagramm, das eine Ziffernausrichtungsbitverschiebung nach dem Stand der Technik zeigt;
  • 6 ist ein Diagramm, das eine Ziffernausrichtungsbitverschiebung im ersten Ausführungsbeispiel der Erfindung zeigt;
  • 7 ist ein Schaltbild, das den Schaltungsaufbau eines Multipliziercodiermittels zeigt;
  • 8 ist ein Blockdiagramm, das die Konfiguration vom Multipliziermittel zeigt;
  • 9 ist ein Schaltbild, das den Schaltungsaufbau vom Multiplikandenerweiterungsmittel und vom Partialprodukterzeugungsmittel im Multipliziermittel zeigt;
  • 10 ist ein Diagramm, das eine Multiplizieroperation veranschaulicht;
  • 11 ist ein Schaltbild, das den Schaltungsaufbau eines Multipliziercodiermittels im zweiten Ausführungsbeispiel der vorliegenden Erfindung zeigt; und
  • 12 ist ein Blockdiagramm, das die Konfiguration des Multipliziermittels im zweiten Ausführungsbeispiel der Erfindung zeigt.
  • BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSBEISPIELE
  • Erstes Ausführungsbeispiel
  • Nachstehend anhand der beiliegenden Zeichnung beschrieben ist ein erstes Ausführungsbeispiel der Erfindung. 1 ist ein Diagramm, das die Konfiguration eines Rechengerätes zeigt, das ein Ausführungsbeispiel der Erfindung bildet.
  • Unter Bezug auf 1 hält ein MSB-Haltemittel 10 das höchstwertige Bit eines Multiplikators, der eine vorzeichenbehaftete binäre Festkommazahl ist. Ein Datenauswahlmittel 11 gibt in selektiver Weise eines der Ausgangsdaten vom MSB-Haltemittel 10 ab sowie einen Wert "0". Ein Multipliziercodiermittel 12 codiert den Multiplikator und das Ausgangssignal vom Datenauswahlmittel 11 gemäß dem Sekundär-Booth-Algorithmus.
  • Ein Multipliziermittel 13 empfängt einen Multiplikanden, der eine vorzeichenbehaftete Festkommadualzahl ist, das Ausgangssignal vom Multipliziercodiermittel 12, und ein Multiplikandenbeurteilungssignal C1. Wenn das Multiplikandenbeurteilungssignal C1 den Wert "0" hat oder inaktiv ist, beurteilt das Multipliziermittel, daß der Multiplikand das werthohe Wert eines Multiplikanden doppelter Genauigkeit ist und erzielt ein Ergebnis einer Multiplikation des Multiplikanden mit den Ausgangsdaten vom Multipliziercodiermittel 12, während eine 1-Bit-Vorzeichenerweiterung bezüglich eines Vorzeichenbits erfolgt, welches das höchstwertige Bit des Multiplikanden ist. Wenn im Gegensatz dazu das Multiplikandenbeurteilungssignal C1 den Wert "1" hat oder aktiv ist, beurteilt das Multipliziermittel, daß der Multiplikand das wertniedrige Wort eines Multiplikanden doppelter Genauigkeit ist und erzielt ein Ergebnis einer Multiplikation des Multiplikanden mit den Ausgangsdaten des Multipliziercodiermittels 12, während ein Vorzeichenbit eines Wertes "0" hinzugefügt wird, der als Vorzeichen dient und eine positive Zahl für eine Ziffer aufzeigt, die um 1 Bit höher ist als das höchstwertige Bit des Multiplikanden. Ein Datenwert "0" wird der Ziffer hinzugefügt, die um 1 Bit niedriger ist als das niedrigstwertige Bit vom gewonnenen Multiplikationsergebnis, das ausgegeben wird als Produkt, das die beiden Ziffern vor dem Dezimalkomma hat und von daher eine Bitbreite, die breiter als wenigstens 1 Bit ist einer Bitbreite doppelter Genauigkeit.
  • In der Erfindung wird angenommen, daß ein Datenwert einfacher Genauigkeit und ein Datenwert doppelter Genauigkeit ausgedrückt werden durch das binäre Festkommazahlensystem, bei dem das höchstwertige Bit ein Vorzeichenbit ist und das Dezimalkomma zwischen dem höchstwertigen Bit und einem Bit steht, das um 1 Bit niedriger als das höchstwertige Bit ist. Üblicherweise dient nur 1 Bit als Vorzeichenbit, das sich vor dem Dezimalkomma befindet. Mit anderen Worten, der Ausdruck "hat wenigstens 2 Ziffern vor dem Dezimalkomma" und "hat eine Bitbreite, die breiter ist um wenigstens 1 Bit als die Bitbreite doppelter Genauigkeit" hat dieselbe Bedeutung.
  • Ein Addiermittel 14 führt eine Addition eines zweiten Summanden aus, der das Ausgangssignal des Multipliziermittels 13 ist, mit einem ersten Summanden, der wenigstens 2 Ziffern vor dem Dezimalkomma hat und von daher eine Bitbreite, die um wenigstens 1 Bit breiter ist als eine Bitbreite doppelter Genauigkeit und gibt ein Additionsergebnis ab mit wenigstens zwei Ziffern vor dem Dezimalkomma und hat von daher eine Bitbreite, die um wenigstens 1 Bit breiter ist als die Bitbreite doppelter Genauigkeit. Ein Additionsergebnishaltemittel 15 hält das Ausgangssignal vom Addiermittel 14. Wenn ein Ziffernstellenausrichtsignal C2 (C2-1, C2-0) = (0, 1) ist, gibt das Ziffernstellenausrichtmittel 16 das Ausgangssignal vom Additionsergebnishaltemittel 15 ab, ohne daß eine Schiebeoperation stattfindet. Wenn das Ziffernstellenausrichtmittel C2 (C2-1, C2-0) = (1, 0) ist, gibt das Ziffernstellenausrichtmittel das Ausgangssignal des Addierergebnishaltemittels 15 mit Verschiebung nach rechts vom Ausgangssignal um 16 Bits ab. Wenn das Ziffernstellenausrichtmittel C2 (C2-1, C2-0) = (0, 0) ist, wählt das Ziffernstellenausrichtmittel einen Wert "0" aus und gibt diesen Wert ab.
  • Die Symbole C2-1 und C2-0 zeigen Bitkomponenten des jeweiligen Ziffernstellenausrichtsignals C2 auf. Das Bezugszeichen 20 bedeutet ein Speichermittel, das als Quelle und als Ziel von im Rechengerät der Erfindung auszuführenden Operationsbefehlen dient.
  • Die folgende Beschreibung erfolgt unter der Annahme, daß das Multiplikationsergebnishaltemittel 17 und die Auswahlmittel 18 und 19 nicht verwendet werden, und daß das Ausgangssignal vom Multipliziermittel 13 direkt zum Addiermittel 14 geliefert wird, und daß das Additionsergebnishaltemittel 15 direkt an das Ziffernstellenausrichtmittel 16 liefert. Das Multiplikationsergebnishaltemittel 17 und die Auswahlmittel 18 und 19 werden später beschrieben.
  • In 1 wird ein Multiplikatorsteuersignal C3 an das Multipliziercodiermittel 12 geliefert, sowie ein Multiplikandensteuersignal C4, das an das Multipliziermittel 13 geliefert wird, angefordert in einem zweiten Ausführungsbeispiel, aber nicht im ersten Ausführungsbeispiel. Wert "0" und ein Haltedatenauswahlsignal C5, die des weiteren an das MSB-Haltemittel 10 geliefert werden, sind in einem dritten Ausführungsbeispiel, nicht jedoch im ersten Ausführungsbeispiel erforderlich.
  • Die Arbeitsweise des solchermaßen aufgebauten Rechengerätes ist nachstehend beschrieben. Zur Vereinfachung wird angenommen, daß eine vorzeichenbehaftete 16-Bit-Festkommadualzahl ein Datenwert einfacher Genauigkeit ist, und eine vorzeichenbehaftete 32-Bit-Festkommadualzahl ist ein Datenwert doppelter Genauigkeit.
  • Nachstehend beschrieben ist die Multiplikation von Daten doppelter Genauigkeit mit Daten doppelter Genauigkeit. Ein Multiplikand doppelter Genauigkeit besteht aus einem werthohen Wort XH und einem wertniedrigen Wort XL, und ein Multiplikator doppelter Genauigkeit besteht aus einem werthohen Wort YH und einem wertniedrigen Wort YL. Das Datenauswahlmittel 11 wählt den Wert "0", wenn eine Multiplikation bezüglich eines wertniedrigen Wortes YL des Multiplikators doppelter Genauigkeit auszuführen ist, und wählt das Ausgangssignal vom MSB-Haltemittel 10, wenn eine Multiplikation bezüglich des werthohen Wortes YH vom Multiplikator doppelter Genauigkeit auszuführen ist. Das Multiplikandenbeurteilungssignal C1 ist ein Signal, das einen Wert von "1" hat oder aktiv ist, wenn eine Multiplikation bezüglich des wertniedrigen Wortes XL vom Multiplikanden doppelter Genauigkeit auszuführen ist, und wenn eine Multiplikation bezüglich des werthohen Wortes XH vom Multiplikanden doppelter Genauigkeit auszuführen ist, einen Wert "0" hat oder inaktiv ist.
  • Zuerst wird ein Produkt des wertniedrigen Wortes XL vom Multiplikanden doppelter Genauigkeit und dem wertniedrigen Wort XL des Multiplikators doppelter Genauigkeit gewonnen (wird nachstehend als XL × XL bezeichnet). Das wertniedrige Wort YL vom Multiplikator doppelter Genauigkeit wird geliefert an das Multipliziercodiermittel 12, und das höchstwertige Bit des Wortes wird im MSB-Haltemittel 10 gehalten. Das Datenauswahlmittel 11 wählt den Wert "0" und gibt diesen Wert an das Multipliziercodiermittel 12. Das Multipliziercodiermittel 12 codiert das wertniedrige Wort YL vom Multiplikator doppelter Genauigkeit mit den Ausgangsdaten des Datenauswahlmittels 11 gemäß dem Booth-Algorithmus. Der Wert "0", der vom Datenauswahlmittel 11 abgegeben ist, wird zum Codieren der niedrigen beiden Bits des wertniedrigen Wortes YL vom Multiplikator doppelter Genauigkeit verwendet. Das Multiplikandenbeurteilungssignal C1 hat einen Wert "1" oder ist aktiv. Das Signal zeigt nämlich auf, daß der eingegebene Multiplikand das wertniedrige Wort XL vom Multiplikanden doppelter Genauigkeit ist. Als Reaktion auf das Multiplikandenbeurteilungssignal C1 addiert das Multipliziermittel 13 ein Vorzeichenbit mit Wert "0", dienend als Vorzeichen, das eine positive Zahl für eine Ziffer aufzeigt, die um 1 Bit höher als das höchstwertige Bit des wertniedrigen Wortes XL vom Multiplikanden doppelter Genauigkeit ist und erzielt ein Produkt der Ergebnisdaten und das Ausgangssignal vom Multipliziercodiermittel 12. Das gewonnene Produkt wird abgegeben mit einer Breite von 32 Bits.
  • Zu dieser Zeit ist das Ziffernstellenausrichtsignal C1 (C2-1, C2-0) = (0,0), und das Ziffernstellenausrichtmittel 16 wählt den Wert "0" und gibt diesen ab. Das Addiermittel 14 gibt ein Ergebnis einer Addition vom Produkt XL × YL ab, welches das Ausgangssignal vom Multipliziermittel 13 ist, und ein Wert "0", der das Ausgangssignal vom Ziffernstellenausrichtmittel 16 ist. Das Additionsergebnishaltemittel 15 hält das Produkt XL × YL, welches das Ausgangssignal vom Addiermittel 14 ist.
  • Als nächstes gewonnen wird ein Produkt des werthohen Wortes XH vom Multiplikanden doppelter Genauigkeit mit dem wertniedrigen Wort YL vom Multiplikator doppelter Genauigkeit (nachstehend als XH × YL bezeichnet). Das wertniedrige Wort YL vom Multiplikator doppelter Genauigkeit wird an das Multipliziercodiermittel 12 geliefert, und das höchstwertige Bit vom Wort wird im MSB-Haltemittel 10 gehalten. Das Datenauswahlmittel 11 wählt den Wert "0" und gibt diesen an das Multipliziercodiermittel 12 ab. Das Multipliziercodiermittel 12 codiert das wertniedrige YL vom Multiplikator doppelter Genauigkeit mit den abgegebenen Daten vom Datenauswahlmittel 11 gemäß dem Booth-Algorithmus. Der Wert "0", der das Ausgangssignal vom Datenauswahlmittel 11 ist, wird verwendet zum Codieren der unteren beiden Bits vom wertniedrigen Wort YL des Multiplikators doppelter Genauigkeit. Das Multiplikandenbeurteilungssignal C1 hat Wert "0" oder ist inaktiv. Das Signal zeigt nämlich auf, daß der eingegebene Multiplikand das werthohe Wort XH vom Multiplikanden doppelter Genauigkeit ist. Als Reaktion auf das Multiplikandenbeurteilungssignal C1 führt das Multipliziermittel 13 eine 1-Bit-Vorzeichenerweiterung bezüglich des Vorzeichenbits aus, welches das höchstwertige Bit des werthohen Wortes XH vom Multiplikanden doppelter Genauigkeit ist, und erzielt ein Produkt der Ergebnisdaten und des Ausgangssignal vom Multipliziercodiermittel 12. Das gewonnene Produkt wird mit einer Breite von 33 Bits abgegeben.
  • Zu dieser Zeit ist das Ziffernstellenausrichtsitnal C2 (C2-1, C2-0) = (1,0), und das Ziffernstellenausrichtmittel 16 wählt das Produkt XL × YL, welches vom Additionsergebnishaltemittel 15 gehalten wird, und gibt das Produkt ab, während das Produkt um 16 Bits nach rechts verschoben wird, um die Ziffernstellenausrichtung zu erreichen. Das Addiermittel 14 gibt ein Ergebnis der Addition vom Produkt XH × YL ab, welches das Ausgangssignal vom Multipliziermittel 13 ist, und das Produkt XL × YL, welches das Ausgangssignal vom Ziffernstellenausrichtmittel 16 ist. Das Additionsergebnishaltemittel 15 hält XL × YL + XH × YL, welches das Ausgangssignal vom Addiermittel 14 ist.
  • Ein Produkt des wertniedrigen Wortes XL vom Multiplikanden doppelter Genauigkeit mit dem werthohen Wort YH vom Multiplikator doppelter Genauigkeit (wird nachstehend mit XL × XH bezeichnet) gewonnen. Das werthohe Wort YH vom Multiplikator doppelter Genauigkeit wird an das Multipliziercodiermittel 12 geliefert. Das Datenauswahlmittel 11 wählt das Ausgangssignal vom MSB-Haltemittel 10 und gibt die Daten des höchstwertigen Bit vom wertniedrigen Wort YL des Multiplikators doppelter Genauigkeit ab, das das MSB-Haltemittel hält, an das Multipliziercodiermittel 12. Das Multipliziercodiermittel 12 codiert das werthohe Wort YH vom Multiplikator doppelter Genauigkeit mit den Ausgangsdaten des Datenauswahlmittels 11 gemäß dem Booth-Algorithmus. Die Daten des höchstwertigen Bits vom wertniedrigen Wort YL des Multiplikators doppelter Genauigkeit wird verwendet zum Codieren der niedrigen beiden Bits vom werthohen Wort YH des Multiplikators doppelter Genauigkeit. Das Multiplikandenbeurteilungssignal C1 hat einen Wert von "1" oder ist aktiv. Das Signal zeigt nämlich auf, daß der eingegebene Multiplikand das wertniedrige Wort XL vom Multiplikanden doppelter Genauigkeit ist. Als Reaktion auf das Multiplikandenbeurteilungssignal C1 addiert das Multipliziermittel 13 ein Vorzeichenbit mit Wert "0", das als Vorzeichen dient, und das die positive Zahl für eine Ziffer aufzeigt, die um 1 Bit höher als das höchstwertige Bit des wertniedrigen Wortes XL vom Multiplikanden doppelter Genauigkeit ist und erzielt ein Produkt der Ergebnisdaten und das Ausgangssignal vom Multipliziercodiermittel 12. Das gewonnene Produkt wird mit einer Breite von 33 Bit abgegeben.
  • Zu dieser Zeit ist das Ziffernstellenausrichtsignal C2 (C2-1, C2-0) = (0, 1), und das Ziffernstellenausrichtmittel 16 wählt das Produkt XL × YL + XH × YL, das das Additionsergebnishaltemittel 15 hält, und gibt das Produkt ab. Das Addiermittel 14 gibt ein Ergebnis der Addition vom Produkt XL × XH ab, welches das Ausgangssignal vom Multipliziermittel 13 ist, und XL × YL × XH × YL, welches das Ausgangssignal vom Ziffernstellenausrichtmittel 16 ist. Das Additionsergebnishaltemittel 15 hält XL × YL + XH × YL + XL × YH, welches das Ausgangssignal vom Addiermittel 14 ist.
  • Ein Produkt des werthohen Wortes XH vom Multiplikanden doppelter Genauigkeit mit dem werthohen Wort YH vom Multiplikator doppelter Genauigkeit (wird nachstehend als XH × YL bezeichnet) wird letztlich gewonnen. Das werthohe Wort YH vom Multiplikator doppelter Genauigkeit wird geliefert an das Multipliziercodiermittel 12. Das Datenauswahlmittel 11 wählt das Ausgangssignal vom MSB-Haltemittel 11 und gibt die Daten des höchstwertigen Bits vom wertniedrigen Wort YL des Multiplikators doppelter Genauigkeit, den das MSB-Haltemittel 10 hält, an das Multipliziercodiermittel 12 ab. Das Multipliziercodiermittel 12 codiert das werthohe Wort YH vom Multiplikator doppelter Genauigkeit mit den Ausgangsdaten vom Datenauswahlmittel 11 gemäß dem Booth-Algorithmus. Die Daten des höchstwertigen Bits vom wertniedrigen Wort YL des Multiplikators, welches das Ausgangssignal vom Datenauswahlmittel 11 ist, wird verwendet zum Codieren der unteren beiden Bits vom werthohen Wort YH vom Multiplikator. Das Multiplikandenbeurteilungssignal C1 hat Wert "0" oder ist inaktiv. Das Signal zeigt nämlich auf, daß der eingegebene Multiplikand das werthohe Wort XH vom Multiplikanden doppelter Genauigkeit ist. Als Reaktion auf das Multiplikandenbeurteilungssignal C1 führt das Multipliziermittel 13 eine Ein-Bit-Vorzeichenerweiterung bezüglich des Vorzeichenbits aus, welches das höchstwertige Bit des werthohen Wortes XH vom Multiplikanden doppelter Genauigkeit ist und erzielt ein Produkt der sich ergebenden Daten mit dem Ausgangssignal vom Multipliziercodiermittel 12. Das gewonnene Produkt wird in einer Breite von 33 Bit abgegeben.
  • Zu dieser Zeit ist das Ziffernstellenausrichtsignal C2 (C2-1, C2-0) = (1, 0), und das Ziffernstellenausrichtmittel 16 wählt das Produkt XL × YL + XH × YL + XL × YH, welches das Additionsergebnishaltemittel 15 hält, und gibt das Produkt ab, während eine Rechtsverschiebung des Produktes um 16 Bits erfolgt, um die Ziffernstellenausrichtung zu bewirken. Das Addiermittel 14 führt eine Addition vom Produkt XH × YH aus, welches das Ausgangssignal vom Multipliziermittel 13 ist, und XL × YL + XH × YL + XL × YH, welches das Ausgangssignal vom Ziffernstellenausrichtmittel 16 ist, und gibt ein Ergebnis dieser Addition ab. Das Additionsergebnis XL × YL + XH × YL + XL × YH + XH × YH, welches das Ausgangssignal vom Addiermittel 14 ist, stellt das gewünschte Produkt der Multiplikation doppelter Genauigkeit dar.
  • Wenn in diesem Ausführungsbeispiel die Produkte des werthohen Wortes XH/wertniedrigen Wort XL eines Multiplikanden doppelter Genauigkeit mit dem werthohen Wort YH/wertniedrigen Wort YL eines Multiplikators doppelter Genauigkeit ist, wird gewonnen und der Ziffernstellenausrichtadditionsoperation unterzogen, wenigstens ein Produkt des wertniedrigen Wortes YL vom Multiplikator doppelter Genauigkeit wird gewonnen und das höchstwertige Bit des wertniedrigen Wortes YL vom Multiplikator doppelter Genauigkeit wird gehalten vom MSB-Haltemittel 10, bevor ein Produkt des werthohen Wortes YH vom Multiplikator doppelter Genauigkeit erzielt wird. Die Reihenfolge des Ausführens der Multiplikation zum Erzielen der Produkte XH × YL und XL × YH und die Ziffernstellenausrichtadditionsoperation können in diesem Ausführungsbeispiel umgekehrt werden. In einer Multiplikation eines Datenwertes doppelter Genauigkeit mit einem Datenwert einfacher Genauigkeit können die Daten einfacher Genauigkeit angenommen werden als Daten doppelter Genauigkeit, wobei es kein wertniedriges Wort gibt, und der Prozeß des Erzielens eines Produktes vom wertniedrigen Wort aus diesen Daten doppelter Genauigkeit kann entfallen. Mit anderen Worten, die Multiplikation läßt sich in derselben Weise ausführen wie die Multiplikation eines Datenwertes doppelter Genauigkeit mit einem Datenwert doppelter Genauigkeit.
  • Im obigen erfolgte die Beschreibung unter der Annahme, daß das Multiplikationsergebnishaltemittel 17 und die Auswahlmittel 18 und 19 nicht verwendet werden. In alternativer Weise kann das Multiplikationsergebnishaltemittel 17 zum Halten eines Multiplikationsergebnisses zwischen dem Multipliziermittel 13 und dem Addiermittel 14 angeordnet sein, so daß die Multiplikationsoperation und die Additionsoperation gleichzeitig erfolgen. Die Auswahlmittel 18 und 19, die in 1 gezeigt sind, werden verwendet zum Beaufschlagen von Daten aus einem Bus, wenn eine Multipliziereinrichtung und eine Addiereinrichtung doppelter Genauigkeit unabhängig voneinander arbeiten sollen, und von daher sind diese nicht direkt auf die Erfindung bezogen.
  • Der interne Aufbau und die Arbeitsweise der Komponenten vom Ausführungsbeispiel werden des weiteren nachstehend anhand der 2 bis 10 beschrieben.
  • 2 ist ein Diagramm, das Datenteilung eines Multiplikators doppelter Genauigkeit während des Ausführens einer Multiplikation mit doppelter Genauigkeit veranschaulicht. Ein bitangeheftetes Wellenformsymbol in 2 zeigt auf, daß das Bit eine negative Wichtung hat. Die Datenkette, die in der oberen Stufe gezeigt ist, zeigt einen Multiplikator doppelter Genauigkeit. Die Symbole Y31 bis Y0 zeigen Daten von jeweiligen Ziffern auf. Das höchstwertige Bit Y31 ist ein Vorzeichenbit und hat eine negative Wichtung. Die Ausdrücke "eine negative Wichtung haben" bedeutet einen Wert "–1", wenn das Bit 1 ist, und einen Wert "0", wenn das Bit 0 ist. Eine Mittelstufe zeigt ein Diagramm einer Abwandlung des Multiplikators doppelter Genauigkeit auf der Grundlage des Booth-Algorithmus. Die drei Daten in einem Kasten zeigen codierte Werte von einem Booth auf und haben einen Wert im Bereich von –2 bis +2 bei einer geradzahligen Ziffer. Da eine Aufgabe der Erfindung es ist, in effizienter Weise eine Multiplikation doppelter Genauigkeit mit hoher Präzision auszuführen unter Verwendung einer Multipliziereinrichtung einfacher Genauigkeit kann ein Multiplikator doppelter Genauigkeit nicht durch eine Operation gemäß dem Booth-Algorithmus codiert werden. Die Daten an der Schnittstelle der werthohen und der wertniedrigen Wörter des Multiplikators doppelter Genauigkeit wird folglich in Betracht gezogen. Es ist erkennbar, wenn Y15 welches das höchstwertige Bit des wertniedrigen Wortes vom Multiplikator doppelter Genauigkeit ist, verwendet werden kann bei der Operation des Codierens des werthohen Wortes vom Multiplikator doppelter Genauigkeit, wobei das Codieren des Multiplikators doppelter Genauigkeit in befriedigender Weise ausführbar ist. Die untere Stufe zeigt die Datenlieferung eines Multiplikators doppelter Genauigkeit in der Erfindung. Eine Errechnung des Erzielens eines Produkts vom wertniedrigen Wort des Multiplikators doppelter Genauigkeit kommt zuerst zur Ausführung. Während dieser Rechnung ist Y15 das höchstwertige Bit des wertniedrigen Wortes vom Multiplikator doppelter Genauigkeit, das gehalten wird. Wenn ein Produkt des werthohen Wortes vom Multiplikator doppelter Genauigkeit zu erzielen ist, wird das höchstwertige Bit Y15 vom wertniedrigen Wort des Multiplikators doppelter Genauigkeit, welches gehalten ist, verwendet in der Operation des Codierens des werthohen Wortes vom Multiplikator doppelter Genauigkeit. In 2 zeigt YH und YL das werthohe bzw. das wertniedrige Wort des Multiplikators doppelter Genauigkeit auf.
  • 3 ist ein Diagramm, das ein Datenausgabeformat in einer Ausführung einer Multiplikation werthohen Wortes XH vom Multiplikanden doppelter Genauigkeit mit dem werthohen Wort YH/wertniedrigen Wort YL vom Multiplikator doppelter Genauigkeit darstellt. In 3 zeigt das einem Bit angehängte Wellenformsymbol auf, daß das Bit eine negative Wichtung hat, und das Symbol S zeigt ein Vorzeichenbit auf. Wenn S maskiert ist, zeigt das maskierte Symbol S ein Vorzeichenbit auf, welches einer Ein-Bit-Vorzeichenerweiterung unterzogen worden ist, und das Symbol S bei der Ziffer, die um 1 Bit unter der des maskierten Symbols S liegt, zeigt auf, daß das Bit nicht ein Vorzeichenbit, sondern ein Datenbit ist, das denselben Wert wie das Vorzeichenbit hat. Das Symbol 0 zeigt auf, daß ein Wert "0" als Datenwert hinzugekommen ist. Die Werte 21, 20, 2–1, ..., 2–31 zeigen oben den Maßstab der jeweiligen Ziffern auf.
  • Wenn eine normale Multiplikation zweier Datenwerte einfacher Genauigkeit ausgeführt wird, ist das gewünschte Multiplikationsergebnis ein 31-Bit-Datenwert, der ein Vorzeichenbit an der Ziffer von 20 hat, und die Datenbits an den Ziffern 2–1 bis 2–30. Wert "0" wird folglich der Ziffer 2–31 hinzugefügt, und das Ergebnis wird abgegeben als ein Datenwert mit 32 Bit und doppelter Genauigkeit.
  • In der Erfindung wird das werthohe Wort XH des Multiplikanden einer 1-Bit-Vorzeichenerweiterung unterzogen, und das gewünschte Multiplikationsergebnis wird gewonnen als Datenwert, bei dem das Vorzeichenbit bei der Ziffer 20 einer 1-Bit-Vorzeichenerweiterung zur Ziffer 21 unterzogen worden ist. Wird das Ergebnis ausgegeben mit einer Bitbreite von 32 Bits, ist es vorzuziehen, die Ausgabe in einem Bereich durchzuführen, der in 3 aufgezeigt ist durch "32-Bit-Ausgabe", um die Anpassung mit dem Ausgangssignal zu erreichen mit den Daten, die bei einer Ausführung der zuvor beschriebenen Multiplikation von Daten einfacher Genauigkeit erfolgen. In diesem Falle dient die Ziffer 20 als Vorzeichenbit. In der Erfindung werden Daten mit einer Bitbreite, die wenigstens um 1 Bit breiter ist als die Breite doppelter Genauigkeit, ausgegeben durch Einstellen wenigstens zweier Ziffern, die vor dem Dezimalkomma stehen. Ein Datenwert kann ausgegeben werden mit einer Bitbreite von 2, 3 oder von mehr Bits. Dies bedeutet nichts anderes als eine Vorzeichenerweiterung eines Produktes, das gewonnen wird bei einer Bitbreite, die um 1 Bit breiter ist und führt von daher zu einem erhöhten Schaltungsumfang. Die nachfolgende Beschreibung erfolgt unter der Annahme, daß wenigstens zwei Ziffern vor dem Dezimalkomma stehen, so daß das gewünschte Produkt gewonnen wird mit einer Bitbreite von 33 Bits, die um 1 Bit breiter ist als die doppelter Genauigkeit.
  • Wenn ein Datenwert eines Multiplikators doppelter Genauigkeit in der in 2 gezeigten Weise geteilt wird, kann das höchstwertige Bit Y15 des wertniedrigen Wortes YL vom Multiplikator doppelter Genauigkeit behandelt werden als Datenwert mit negativer Wichtung. wenn ein Produkt vom werthohen Wort XH des Multiplikanden doppelter Genauigkeit mit dem wertniedrigen Wort YL des Multiplikators doppelter Genauigkeit zu erzielen ist, kann folglich das wertniedrige Wort YL des Multiplikators doppelter Genauigkeit codiert werden in unveränderter Form gemäß dem Booth-Algorithmus. Wenn im Gegensatz dazu ein Produkt des werthohen Wortes XH vom Multiplikanden doppelter Genauigkeit mit dem werthohen Wort YH des Multiplikators doppelter Genauigkeit zu erzielen ist, werden die Daten des höchstwertigen Bits X15 vom wertniedrigen Wort YL des Multiplikators doppelter Genauigkeit in der Operation des Codierens des werthohen Wortes YH vom Multiplikator doppelter Genauigkeit verwendet. Wegen des obigen wird in 3 das wertniedrige Wort YL des Multiplikators doppelter Genauigkeit in derselben Weise ausgedrückt wie eine vorzeichenbehaftete Festkommadualzahl einfacher Genauigkeit. Im Falle der Multiplikation des werthohen Wortes YH vom Multiplikator doppelter Genauigkeit müssen die Daten des höchstwertigen Bits X15 vom wertniedrigen Wort YL des Multiplikators doppelter Genauigkeit in der Figur gezeigt sein. Aufgabe dieser Beschreibung ist es, das Datenausgabeformat darzustellen. Zur Vereinfachung sind die Daten folglich in der Figur nicht dargestellt.
  • 4 ist ein Diagramm, das ein Datenausgabeformat bei Ausführung einer Multiplikation des wertniedrigen Wortes XL vom Multiplikanden doppelter Genauigkeit mit dem werthohen Wort YH/wertniedrigen Wort YL des Multiplikators doppelter Genauigkeit darstellt. In 4 zeigt das Wellenformsymbol, das einem Bit angehängt ist, auf, daß das Bit eine negative Wichtung hat, und das Symbol S zeigt ein Vorzeichenbit auf. Das Symbol 0 zeigt auf, daß ein Wert "0" als ein Datenwert addiert wird. Die Werte 21, 20, 2–1, ..., 2–31, die oben gezeigt sind, zeigten den Maßstab der jeweiligen Ziffern an.
  • Das höchstwertige Bit des wertniedrigen Wortes vom Multiplikanden doppelter Genauigkeit ist in dieser Erfindung ein Datenbit, und von daher wird ein Vorzeichenbit vom Wert "0" einem Vorzeichen hinzugefügt, das eine positive Zahl für die Ziffer aufzeigt, die um 1 Bit höher ist. Das gewünschte Multiplikationsergebnis ist ein 32-Bit-Datenwert, der ein Vorzeichenbit bei der Ziffer von 21 hat und den Datenbits bei den Ziffern von 20 bis 2–30. Wenn dieses Ergebnis mit einer Bitbreite von 32 Bits abzugeben ist, muß die Abgabe im Bereich ausgeführt werden, der mit "32-Bit-Ausgabe" in 4 aufgezeigt ist. Wenn dieser Ausgabebereich verglichen wird mit dem "32-Bit-Ausgabe"-Bereich, wie er in 3 gezeigt ist, läßt sich erkennen, daß jede der ausgegebenen Ziffernpositionen um eine Ziffer verschoben ist. Mit anderen Worten, es läßt sich erkennen, daß dies bedeutet, bei einer "32-Bit-Ausgabe", daß das Umschalten des Ausgangsbereichs erforderlich ist. Da andererseits in der Erfindung ein Datenwert mit einer Bitbreite von 33 Bits um 1 Bit breiter als die Bitbreite doppelter Genauigkeit ist und zur Ausgabe kommt durch Einstellen wenigstens zweier Ziffern, die vor dem Dezimalkomma vorhanden sind, kann ein Datenwert ausgegeben werden in der Beziehung der Ziffernpositionen, welches strikt identisch ist mit derjenigen der in 3 gezeigten "33-Bit-Ausgabe". Da die bei der Multiplikation gewonnenen Daten nicht bei der Ziffer von 2–31 vorhanden sind, wie in Verbindung mit 3 beschrieben, wird das Ergebnis abgegeben, während ein Wert von "0" der Ziffer von 2–31 hinzugefügt wird.
  • Wie im Falle von 3 wird das wertniedrige Wort YL des Multiplikators doppelter Genauigkeit ausgedrückt in derselben Weise wie eine vorzeichenbehaftete Festkommadualzahl einfacher Genauigkeit. Im Falle einer Multiplikation des werthohen Wortes YH des Multiplikators doppelter Genauigkeit müssen die Daten des höchstwertigen Bits Y15 der wertniedrigen Wortes YL des Multiplikators doppelter Genauigkeit in der Figur gezeigt werden. Der Gegenstand dieser Beschreibung gilt der Veranschaulichung des Datenausgabeformats. Zur Vereinfachung sind die Daten in der Figur nicht dargestellt.
  • 5 ist ein Diagramm, das eine Ziffernausrichtbitverschiebung nach dem Stand der Technik zeigt, wobei ein Multiplikationsergebnis mit einer Bitbreite von 32 Bits angegeben wird. Wenn ein Datenwert mit einer Bitbreite von 32 Bits abgegeben wird, wie in den 3 und 4 gezeigt, wird die Beziehung von den Ziffernpositionen in einem Produkt des werthohen Wortes XH eines Multiplikanden doppelter Genauigkeit um 1 Bit gegenüber derjenigen eines Produkts wertniedrigen Wortes XL vom Multiplikanden doppelter Genauigkeit verschoben. Wie in 5 gezeigt, muß folglich die Ziffernstellenausrichtung im Falle, bei dem das Ergebnis der Multiplikation doppelter Genauigkeit zu erzielen ist, mit unterschiedlichen Verschiebezahlen ausgeführt werden.
  • 6 ist ein Diagramm, das eine Ziffernausrichtbitverschiebung nach der Erfindung zeigt, wobei ein Multiplikationsergebnis mit einer Bitbreite von 33 abgegeben wird. Wenn ein Datenwert abgegeben wird mit einer Bitbreite von 33 Bits, ist die Beziehung der Ziffernpositionen in einem Produkt vom werthohen Wort XH des Multiplikanden doppelter Genauigkeit relativ identisch mit demjenigen eines Produktes vom wertniedrigen Wort XL des Multiplikanden doppelter Genauigkeit. Wie in 6 gezeigt, läßt sich folglich ersehen, daß die Schiebezahl für die Ziffernstellenausrichtung im Falle, bei dem das Ergebnis der Multiplikation doppelter Genauigkeit relativ beschränkt auf die Bitbreite einfacher Genauigkeit ist. Der Schaltungsumfang des Ziffernstellenausrichtmittels 16 kann folglich kleiner ausfallen als derjenige des Standes der Technik, bei dem ein Multiplikationsergebnis mit einer Bitbreite von 32 Bits abgegeben wird.
  • 7 ist ein Schaltbild, das den Schaltungsaufbau des Multipliziercodiermittels 12 zeigt. In 7 bedeutet Bezugszeichen 100 ein Booth-Codiermittel zum Erzeugen eines codierten Wertes. Ein Multiplizierer wird codiert gemäß dem zweiten Booth-Algorithmus. Ein Codierergebnis BEi einen von fünf Werten, nämlich –2, –1, 0, 1 und 2. Jeder der Werte wird ausgedrückt durch drei Bits von 1Ei, 2Ei und SEi. Der Absolutwert eines jeden Wertes ist aufgezeigt durch zwei Bits von 2Ei und 1Ei, und das Vorzeichen des Wertes ist aufgezeigt durch SEi, wobei 1 eingesetzt ist, wenn der Wert negativ ist. NSEi ist ein invertiertes Signal von SEi, das verwendet wird zum Erzeugen eines Partialproduktes. Im Ausführungsbeispiel ist i gleich 0, 2, 4, 6, 8, 10, 12 oder 14, und das Ausgangssignal vom Auswahlmittel 11 wird als Y-1 geliefert.
  • 8 ist ein Blockdiagramm, das den Aufbau des Multipliziermittels 13 zeigt. In 8 bedeutet Bezugszeichen 300 ein Multiplikandenerweiterungsmittel, Bezugszeichen 301 bedeutet ein Partialprodukterzeugungsmittel, und Bezugszeichen 302 bedeutet ein Partialproduktsummiermittel. Das Multiplikandenerweiterungsmittel 300 gibt das höchstwertige Bit X[15] vom Multiplikanden ab, wenn das Multiplikandenbeurteilungssignal C1 den Wert "0" hat, und gibt einen Wert von "0" ab, wenn das Multiplikandenbeurteilungssignal C1 den Wert "1" hat. Das Partialprodukterzeugungsmittel 301 erzeugt Partialprodukte aus den Ausgangssignalen des Multipliziercodiermittels 12 und des Multiplikandenerweiterungsmittels 300 und den Multiplikanden X. Das Partialproduktsummiermittel 302 führt eine Summierung der Partialprodukte aus, die das Partialprodukterzeugungsmittel 301 erzeugt, um ein Multiplikationsergebnis zu erzielen. Da keine Daten als Ergebnis der Multiplikation vorhanden sind, bei der Ziffer, die das niedrigstwertige Bit oder 0 hat, wird das Summierergebnis abgegeben, während der Ziffer ein Wert von "0" hinzugefügt wird.
  • 9 ist ein Schaltbild, das den Schaltungsaufbau des Multiplikandenerweiterungsmittels 300 und des Partialprodukterzeugungsmittels 301 vom Multipliziermittel 13 zeigt. In 9 bedeutet Bezugszeichen 303 eine Partialproduktvorzeichenbit-Invertiererzeugungsschaltung, die eine Bitinversion vom Vorzeichenbit eines erzeugten Partialprodukts erzeugt, Bezugszeichen 304 bedeutet eine Partialprodukterzeugungsschaltung für jedes Bit, und Bezugszeichen 305 bedeutet eine Partialproduktkorrekturausdruck-Erzeugungsschaltung, die einen Korrekturausdruck PPH erzeugt. Wenn das Multiplikandenbeurteilungssignal C1 den Wert "0" hat, wird das Vorzeichenbit vom Multiplikanden unverändert abgegeben an eine Ziffer, die um 1 Bit höher als das höchstwertige Bit des Multiplikanden ist, und wenn das Multiplikandenbeurteilungssignal C1 den Wert "1" hat, wird ein Wert "0" für die Ziffer abgegeben. Wenn das Codierergebnis BEi positiv ist, ist der Multiplikand einer Vorzeichenerweiterung unterzogen worden und wird unverändert ausgewählt, und wenn das Codierergebnis negativ ist, wird die Bitumkehr ausgewählt. Ein Composittor gibt den ausgewählten Wert vom zugehörigen Bit ab, wenn das Codierergebnis BEi 1 oder –1 ist, gibt den ausgewählten Wert vom 1-Bit niedrigeren Bit, wenn das Codierergebnis BEi gleich 2 oder –2 ist, und gibt 0 ab, wenn das Codierergebnis BEi gleich 0 ist. Das Ausgangssignal eines jeden Composittores ist ein Ausgangssignal PP0n eines Bit n vom Partialprodukt, das zu erzeugen ist. Der Korrekturausdruck PPH zum Ergänzen von 2 wird erzeugt durch NUND-Verknüpfung der Steuersignale NSEi, 2Ei und 1Ei. Dies ist wahr, wenn das Codierergebnis BEi gleich –1 oder gleich –2 ist. Der Korrekturausdruck wird abgegeben für die Ziffer des niedrigstwertigen Bits vom zu erzeugenden Partialprodukt.
  • 10 ist ein Diagramm, das eine Multiplizieroperation veranschaulicht. In 10 zeigen die Symbole D, E, F, G, H, I, J und K acht erzeugte Partialprodukte jeweils auf, und ein Symbol Z zeigt ein Produkt des Multiplikanden X mit dem Multiplikator Y auf. Die Werte 21, 20, 2-1, ..., 2-31, die in oben in 10 gezeigt sind, zeigen die Skalierung der jeweiligen Ziffern auf. Ein Strich über einem Symbol, das einen Datenwert aufzeigt, bedeutet eine Bitinversion. Ein Wert "1", gezeigt in 10, ist ein Datenwert, der anstelle einer Vorzeichenerweiterung hinzuzufügen ist.
  • Eine der Vorzeichenerweiterung äquivalente Operation muß ausgeführt werden für die Ziffernstellenausrichtung bei einer Summierung von Partialprodukten, die durchgeführt wird durch die Bitinversion vom Vorzeichenbit eines jeden Partialproduktes, welches durch den Strich aufgezeigt ist, und Addieren des Wertes "1", wie in 10 gezeigt. Dieses Verfahren wird häufig im Stand der Technik angewandt, und wird von daher nicht in Einzelheiten bei dieser Beschreibung berücksichtigt. Im Multipliziermittel 13, wie es in 8 gezeigt ist, werden Partialprodukte erzeugt durch das Partialprodukterzeugungsmittel 301 und dann summiert vom Partialproduktsummierungsmittel 302. Wegen der Stellung des Dezimalkommas werden die Beziehungen zwischen den Nummern, die den jeweiligen Partialproduktkomponenten in 10 angehängt sind, um 1 Bit in Hinsicht auf jene Komponenten verschoben, die die Komponenten der Ausgangsdaten Z angehängt haben. Da nicht jedes Partialprodukt ein Datenwert an der Ziffer von 2–31 hat, wird immer ein Wert "0" bei Z0 abgegeben.
  • In Tabelle 1 sind Befehle aufgelistet, die verwendet werden bei der Erweiterung einer Multiplikation von einem Datenwert doppelter Genauigkeit mit einem Datenwert doppelter Genauigkeit, und ein Datenwert doppelter Genauigkeit und demjenigen einfacher Genauigkeit im Rechengerät des Ausführungsbeispiels, bei dem das Multiplikationsergebnishaltemittel 17 zum Halten eines Multiplikationsergebnisses zwischen dem Multipliziermittel 13 und dem Addiermittel 14 vorgesehen ist. Tabelle 1
    1 Daten doppelter Genauigkeit × Daten doppelter Genauigkeit
    2 Befehl
    3 Codieroperation
    4 Multiplizieroperation (ein Zyklus)
    5 Addieroperation (zwei Zyklen)
    6 Daten doppelter Genauigkeit × Daten einfacher Genauigkeit
  • Vier Produkte XL × YL, XH × YL, XL × YH und XH × YH werden nacheinander gewonnen durch Ausführen der Befehle A bis D, die in 1 gezeigt sind, in Aufeinanderfolge, und diese Produkte werden einer Ziffernstellenausrichtaddieroperation unterzogen, womit eine Multiplikation des Datenwertes doppelter Genauigkeit mit dem Datenwert doppelter Genauigkeit ausgeführt wird. Die Produkte XL × XH und XH × YH werden nacheinander gewonnen durch Ausführen der Befehle E und F, wie in Tabelle 1 gezeigt, und zwar hintereinander, und diese Produkte werden einer Ziffernstellenausrichtaddieroperation unterzogen, wodurch eine Multiplikation des Datenwertes doppelter Genauigkeit mit dem Datenwert einfacher Genauigkeit ausgeführt wird. Tabelle 1 zeigt Datenabläufe und Inhalte der Multipliziercodieroperation, die ausgeführt wird vom MSB-Haltemittel 10, dem Datenauswahlmittel 11 und dem Multipliziercodiermittel 12, wobei die Multiplikationsoperation, die ausgeführt wird vom Multipliziermittel 13 und der Addieroperation, die das Addiermittel 14 ausführt und letztlich dem Ziffernstellenausrichtmittel 16. In Tabelle 1 bedeutet R0 das MSB-Haltemittel 10, R1 bedeutet das Multiplikationsergebnishaltemittel 17, und R2 bedeutet das Additionsergebnishaltemittel 15.
  • In Tabelle 1 ist jeder Befehl ein 2-Zyklus-Befehl. Die Spalte der Codieroperation zeigt einen Speicher von Daten auf, in den das MSB-Haltemittel 10 und ein Datenwert, der ausgewählt wird vom Datenauswahlmittel 11, gelangt. Die Beschreibung in Klammern (YL[15] in den Befehlen C und D) zeigt einen Datenwert, der im MSB-Haltemittel 10 während des Ausführens vom entsprechenden Befehl gehalten wird. Die Spalte der Multiplizieroperation, die das Multiplikationsergebnis zeigt, wird vom Multipliziermittel 13 gewonnen. Die Spalte der Addieroperation zeigt einen vom Ziffernstellenausrichtmittel 16 ausgewählten Datenwert, die An- oder Abwesenheit einer Schiebeoperation von 16 Bit nach rechts zur Ziffernstellenausrichtung und ein im Addiermittel 14 gewonnenes Additionsergebnis.
  • Das Multiplikationsergebnis vom Multipliziermittel 13 wird abgegeben mit einer Bandbreite, die um wenigstens 1 Bit breiter ist als die Bitbreite doppelter Genauigkeit, wie zuvor gemäß dem ersten Ausführungsbeispiel beschrieben, und beispielsweise mit einer Bitbreite von 33 Bits durch Einstellen wenigstens zweier Ziffern vor das Dezimalkomma. Die Schiebezahl zur Ziffernstellenausrichtung ist folglich relativ beschränkt auf die Bitbreite einfacher Genauigkeit. Der Schaltungsumfang des Ziffernstellenausrichtmittels 16 kann folglich enger sein als dasjenige des Beispiels zum Stande der Technik. Insbesondere ist ein 1-Bit-Schiebemittel nach rechts erforderlich zur Ausgabe einer 32-Bit-Genauigkeit vom Ergebnis einer Multiplikation, in der das wertniedrige Wort eines Multiplikanden als Quelle verwendet wird, nicht erforderlich ist.
  • Wenn das Multiplikationsergebnishaltemittel vorgesehen ist und das Multipliziermittel 13 und das Addiermittel 14 parallel betrieben werden, kann die Operationszeit verkürzt werden.
  • Zweites Ausführungsbeispiel
  • Nachstehend beschrieben ist ein zweites Ausführungsbeispiel der Erfindung.
  • Das zweite Ausführungsbeispiel ist so aufgebaut, daß im ersten Ausführungsbeispiel das Multipliziercodiermittel 12 die Funktion des zwangsweisen Einstellens vom niedrigstwertigen Bit des eingegebenen Multiplikators, wenn das Multiplikatorsteuersignal C3 den Wert "1" hat, auf den Wert "0", und das Multipliziermittel 13 hat die Funktion zwangsweisen Einstellens des niedrigstwertigen Bit vom eingegebenen Multiplikanden, wenn das Multiplikandensteuersignal C4 den Wert "1" hat, auf einen Wert "0".
  • 11 ist ein Schaltbild, das den Schaltungsaufbau des Multipliziercodiermittels 12 im zweiten Ausführungsbeispiel zeigt. In 11 bedeutet Bezugszeichen 201 ein Multipliziersteuermittel für den Fall, daß das Multipliziersteuersignal C3 den Wert "1" hat, zum zwangsweisen Einstellen des niedrigstwertigen Bits vom Multiplikator auf den Wert "0". Wenn im Multipliziersteuermittel 201 das Multipliziersteuersignal C3 den Wert "1" hat, welcher das niedrigstwertige Bit des Multiplikators ist, wird dieser zwangsweise auf "0" gesetzt durch UNDieren des niedrigstwertigen Bits Y0 vom Multiplikator mit einer logischen Inversion des Multipliziersteuersignals C3.
  • 12 ist ein Blockdiagramm, das die Konfiguration des Multipliziermittels 13 im zweiten Ausführungsbeispiel zeigt. In 12 bedeutet Bezugszeichen 306 ein Multiplikandensteuermittel für das zwangsweise Einstellen des niedrigstwertigen Bits vom Multiplikanden auf den Wert "0", wenn das Multiplikandensteuersignal C4 den Wert "1" hat. Im Multiplikandensteuermittel 305 erfolgt das zwangsweise Einstellen auf den Wert "0" durch UNDieren des niedrigstwertigen Bits X0 vom Multiplikanden, wenn das Multiplikandensteuersignal C4 den Wert "1" hat, wobei X0 das niedrigstwertige Bit vom Multiplikanden ist, und die logische Inversion des Multiplikandensteuersignals C4.
  • Nachstehend beschrieben ist die Arbeitsweise des solchermaßen konfigurierten Rechengerätes.
  • Wenn eine Multiplikation doppelter Genauigkeit auszuführen ist unter Verwendung einer Multipliziereinrichtung einfacher Genauigkeit, wird häufig folgendes Verfahren angewandt. Um jedes der wertniedrigen Wörter eines Multiplizierers mit dem wertniedrigen Wort eines Multiplikanden zu behandeln, wie eine vorzeichenbehaftete Festkommadualzahl einfacher Genauigkeit, wird eine 1-Bit-Schiebeoperation nach rechts ausgeführt, und ein Vorzeichenbit mit dem Wert "0", das als Vorzeichen dient, und eine positive Zahl wird dem höchstwertigen Bit hinzugefügt, und das niedrigstwertige Bit wird ausrangiert. Ein Ergebnis der Multiplikation von Daten doppelter Genauigkeit mit Daten doppelter Genauigkeit hat eine Genauigkeit von 31 Bit × 31 Bit, einer Multiplikation von Daten doppelter Genauigkeit mit Daten einfacher Genauigkeit hat eine Genauigkeit von 31 Bit × 16 Bit.
  • Im ersten Ausführungsbeispiel kann eine Multiplikation von Daten doppelter Genauigkeit mit Daten doppelter Genauigkeit mit einer Genauigkeit von 32 Bit × 32 Bit ausgeführt werden, und eine Multiplikation von Daten doppelter Genauigkeit mit Daten einfacher Genauigkeit kann ausgeführt werden mit einer Genauigkeit von 32 Bit × 16 Bit. Im zweiten Ausführungsbeispiel können die Multiplikationen mit doppelter Genauigkeit von 31 Bit × 31 Bit und der Genauigkeit 31 Bit × 16 Bit ausgeführt werden durch Hinzufügen einer kleinen Anzahl von Schaltungen zu dem Aufbau des ersten Ausführungsbeispiels und Hinzufügen des Multipliziersteuermittels 201 zum Multipliziercodiermittel 12 und dem Multiplikandensteuermittel 306 zum Multipliziermittel 13.
  • Wird das zweite Ausführungsbeispiel verwendet, dann ist das Rechengerät der Erfindung ausgestattet mit einer Funktion des zwangsweisen Einstellens des niedrigstwertigen Bits eines jeden Multiplikators und eines jeden Multiplikanden auf den Wert "0", wodurch die Kompatibilität einer Anwendung unter Verwendung einer Multiplikation doppelter Genauigkeit von einer geringen Genauigkeit erzielbar ist.
  • Drittes Ausführungsbeispiel
  • Nachstehend beschrieben ist ein drittes Ausführungsbeispiel der Erfindung.
  • Das dritte Ausführungsbeispiel ist so aufgebaut, daß im ersten Ausführungsbeispiel das MSB-Haltemittel die Funktion des Einstellens und Haltens vom höchstwertigen Bit eines Multiplikators hat, wenn das gehaltene Datenauswahlsignal C5 den Wert "1" hat, und wenn das gehaltene Datenauswahlsignal C5 den Wert "0" hat, wird der Wert "0" ausgewählt und gehalten.
  • In Tabelle 2 sind Befehle aufgelistet, die verwendet werden bei Ausübung einer Multiplikation eines Datenwertes doppelter Genauigkeit mit einem Datenwert doppelter Genauigkeit, und derjenigen von einem Datenwert doppelter Genauigkeit mit einem Datenwert einfacher Genauigkeit im Rechengerät des Ausführungsbeispiels, in dem das Multiplikationsergebnishaltemittel 17 zum Halten eines Multiplikationsergebnisses zwischen dem Multipliziermittel 13 und dem Addiermittel 14 vorgesehen ist.
  • Tabelle 2
  • Vier Produkte XL × YL, XH × YL, XL × YH und XH × YH werden nacheinander gewonnen durch Ausführen der Befehle A bis D, die in Tabelle 2 gezeigt sind, in Aufeinanderfolge, und diese Produkte werden einer Ziffernstellenausrichtaddieroperation unterzogen, wodurch die Multiplikation von Daten doppelter Genauigkeit mit Daten doppelter Genauigkeit geschieht. Die Produkte XL × YH und XH × YH werden nacheinander gewonnen durch Ausführen der Befehle A(E) und D(F), wie in 2 gezeigt, in Aufeinanderfolge, und diese Produkte werden einer Ziffernstellenausrichtaddieroperation unterzogen, wodurch eine Multiplikation der Daten doppelt Genauigkeit und der Daten einfacher Genauigkeit ausgeführt wird. Tabelle 2 zeigt Datenabläufe und Inhalte der Multiplikatorcodieroperation, die vom MSB-Haltemittel 10, dem Datenauswahlmittel 11 und dem Multiplikatorcodiermittel 12 ausgeführt werden, und die Multiplizieroperation, die das Multipliziermittel 13 ausführt, und die Addieroperation, die das Addiermittel 14 und das Ziffernstellenausrichtmittel 16 ausführen. In Tabelle 2 zeigen R0 das MSB-Haltemittel 10, R1 das Multiplikationsergebnishaltemittel 17 und R2 das Additionsergebnishaltemittel 15 auf.
  • In Tabelle 2 ist jeder Befehl ein Zwei-Zyklen-Befehl. Die Spalte der Codieroperation zeigt eine Speicherung der Daten im MSB-Haltemittel 10 und der Daten, die das Datenauswahlmittel 11 auswählt. Die Beschreibung (YL[15] in den Befehlen C und D und 0 im Befehl D(F)) zeigt einen Datenwert, der im MSB-Haltemittel 10 während des Ausführens vom zugehörigen Befehl gehalten wird. Die Spalte der Multiplizieroperation zeigt ein Multiplikationsergebnis, das das Multipliziermittel 13 erzielt. Die Spalte der Addieroperation zeigt einen Datenwert, der ausgewählt wird vom Ziffernstellenausrichtmittel 16, der An- oder Abwesenheit einer 16-Bit-Rechtsschiebeoperation zur Ziffernstellenausrichtung, und ein Addierergebnis, das das Addiermittel 14 erzielt.
  • Wenn die Tabelle verglichen wird mit der obigen Tabelle 1, veranlaßt der Befehl A in Tabelle 2 die Daten, die in das MSB-Haltemittel 10 gespeichert werden, einen Wert von "0" zu haben. Gemäß dieser Konfiguration kann eine Kombination der Befehle A und D eine Multiplikation eines Datenwertes doppelter Genauigkeit mit einem Datenwert einfacher Genauigkeit realisieren. Gemäß dem dritten Ausführungsbeispiel wird folglich die Anzahl von Befehlen, die in einer Multiplikation der Daten doppelter Genauigkeit mit Daten doppelter Genauigkeit und in derjenigen der Daten doppelter Genauigkeit mit Daten einfacher Genauigkeit erforderlich sind, durch gemeinsam verwendete Befehle reduziert.
  • In einem binären Festpunktzahlensystem, in dem das höchstwertige Bit ein Vorzeichenbit ist und das Dezimalkomma zwischen dem höchstwertigen und einem Bit steht, das um ein Bit geringer ist als das höchstwertige Bit, wird der Schaltungsumfang für das Ziffernstellenausrichtmittel verringert und eine Multiplikation für doppelte Genauigkeit mit hervorragender Effizienz wird erreicht. Produkte des werthohen Wortes/wertniedrigen Wortes eines Multiplikanden doppelter Genauigkeit mit einem werthohen Wort/wertniedrigen Wort eines Multiplikators doppelter Genauigkeit werden gewonnen unter Verwendung einer Multipliziereinrichtung einfacher Genauigkeit. Eine Ziffernstellenausrichtadditionsoperation läßt sich ausführen bezüglich gewonnener Produkte, um ein Multiplikationsergebnis doppelter Genauigkeit zu erzielen. Wenigstens zwei Ziffern werden in diesem Falle vor das Dezimalkomma gesetzt, wodurch einem jeden der Produkte vom werthohen Wort/wertniedrigen Wort eines Multiplikanden doppelter Genauigkeit mit dem werthohen Wort/wertniedrigen Wort des Multiplikators doppelter Genauigkeit ermöglicht wird, mit einer Bitbreite erzielt zu werden, die wenigstens um ein Bit breiter als die Bandbreite doppelter Genauigkeit ist.
  • Tabelle 1 Daten doppelter Genauigkeit × Daten doppelter Genauigkeit
    Figure 00370001
  • Daten doppelter Genauigkeit × Daten einfacher Genauigkeit
    Figure 00380001
  • Tabelle 2 Daten doppelter Genauigkeit × Daten doppelter Genauigkeit
    Figure 00380002
  • Daten doppelter Genauigkeit × Daten einfacher Genauigkeit
    Figure 00380003

Claims (15)

  1. Rechenverfahren, bei dem in einem binären Festkommazahlensystem, in dem ein höchstwertiges Bit ein Vorzeichenbit ist und zwischen dem höchstwertigen Bit und einem Bit, das um ein Bit niedriger als das höchstwertige Bit ist, ein Dezimalpunkt steht, Produkte eines werthohen Wortes/wertniedrigen Wortes eines Multiplikanden doppelter Genauigkeit mit einem werthohen Wort/wertniedrigen Wort eines Multiplikators mit doppelter Genauigkeit unter Verwendung einer Multipliziereinrichtung mit einfacher Genauigkeit erzielbar sind, bei dem eine Bitausrichtoperation bei jedem der gewonnenen Produkte und bei dem eine Addition dieser dann zur Erzielung eines Multiplizierergebnisses doppelter Genauigkeit erfolgt, gekennzeichnet durch die Verfahrensschritte Ändern des werthohen Wortes hoher Genauigkeit vom Multiplikanden doppelter Genauigkeit auf ein werthohes Wort eines erweiterten Multiplikanden doppelter Genauigkeit, indem ein Vorzeichenbit eines höchstwertigen Bits eines werthohen Wortes des Multiplikanden doppelter Genauigkeit der Vorzeichenerweiterung unterzogen wird, und der eine Bitbreite hat, die um wenigstens ein Bit breiter ist als eine Bitbreite einfacher Genauigkeit; Ändern des wertniedrigen Wortes vom Multiplikanden doppelter Genauigkeit in ein wertniedriges Wort eines erweiterten Multiplikanden doppelter Genauigkeit, indem ein eine positive Zahl aufzeigendes Vorzeichenbit einem Bit hinzugefügt wird, das um ein Bit höher als das höchstwertige Bit des wertniedrigen Wortes vom Multiplikanden doppelter Genauigkeit ist, und das eine Bitbreite aufweist, die wenigstens um ein Bit breiter ist als die Bitbreite einfacher Genauigkeit; Multiplizieren des werthohen Wortes vom Multiplikanden doppelter Genauigkeit beziehungsweise des wertniedrigen Wortes vom Multiplikanden doppelter Genauigkeit mit dem werthohen Wort vom Multiplikator doppelter Genauigkeit beziehungsweise dem wertniedrigen Wort des Multiplikators doppelter Genauigkeit, wodurch Produkte des werthohen Wortes vom Multiplikanden doppelter Genauigkeit mit dem wertniedrigen Wort des Multiplikanden doppelter Genauigkeit beziehungsweise dem werthohen Wort des Multiplikators doppelter Genauigkeit mit dem wertniedrigen Wort des Multiplikators doppelter Genauigkeit gewonnen werden bei einer Bitbreite, die wenigsten um ein Bit breiter ist als die Bitbreite der doppelten Genauigkeit in einem Zustand, bei dem wenigstens zwei Bits vor dem Dezimalpunkt stehen; und Erstellen einer Bitanordnung durch eine Bitverschiebungsoperation in Einheit einer Breite eines Datenwertes einfacher Genauigkeit, wenn die Produkte miteinander zu addieren sind.
  2. Rechenverfahren nach Anspruch 1, bei dem im Falle, daß ein Produkt des wertniedrigen Wortes vom Multiplikanden doppelter Genauigkeit mit dem wertniedrigen Wortes des Multiplikators doppelter Genauigkeit zu erzielen ist, die Multipliziereinrichtung einfacher Genauigkeit folgendes ausführt: Multiplizieren eines Datenwertes, der ein Vorzeichenbit aufweist, das eine positive Zahl bei einer Ziffer aufzeigt, die um ein Bit höher als ein höchstwertiges Bit vom wertniedrigen Wort des Multiplikanden doppelter Genauigkeit ist und eine Bitbreite hat, die um ein Bit breiter ist als eine Bitbreite einfacher Genauigkeit, mit einem Datenwert einer Bitbreite einfacher Genauigkeit, wobei ein höchstwertiges Bit des wertniedrigen Wortes vom Multiplikator doppelter Genauigkeit ein Vorzeichenbit ist, Addieren eines Datenwertes "0" mit einer Ziffer, die um ein Bit niedriger ist als ein niedrigstwertiges Bit eines Ergebnisses der Multiplikation, die eine Bitbreite doppelter Genauigkeit hat, und Ausgeben eines Datenwertes einer Bitbreite, die um ein Bit breiter als die Bitbreite doppelter Genauigkeit ist, als Produkt des wertniedrigen Wortes vom Multiplikanden doppelter Genauigkeit mit dem wertniedrigen Wort des Multiplikators doppelter Genauigkeit.
  3. Rechenverfahren nach Anspruch 1, bei dem im Falle, daß ein Produkt des werthohen Wortes vom Multiplikanden doppelter Genauigkeit mit dem wertniedrigen Wort des Multiplikators doppelter Genauigkeit zu erzielen ist, die Multipliziereinrichtung einfacher Genauigkeit folgendes ausführt: eine Multiplikation eines Datenwertes, wobei ein Vorzeichenbit eines höchstwertigen Bits im werthohen Wort des Multiplikanden doppelter Genauigkeit einer 1-Bit-Vorzeichenerweiterung unterzogen wird und eine Bitbreite hat, die um ein Bit breiter als eine Bitbreite einfacher Genauigkeit ist, mit einem Datenwert einer Bitbreite einfacher Genauigkeit, wobei ein höchstwertiges Bit des wertniedrigen Wortes eines Multiplikators doppelter Genauigkeit ein Vorzeichenbit ist, Addieren eines Datenwertes von "0" zu einer Ziffer, die um ein Bit niedriger als das niedrigstwertige Bit eines Ergebnisses der Multiplikation ist, die eine Bitbreite doppelter Genauigkeit hat, und Ausgeben eines Datenwertes einer Bitbreite, die um ein Bit größer ist als die Bitbreite doppelter Genauigkeit, als das Produkt des werthohen Wortes eines Multiplikanden doppelter Genauigkeit mit dem wertniedrigen Wort des Multiplikators doppelter Genauigkeit.
  4. Rechenverfahren nach Anspruch 1, bei dem im Falle, daß ein Produkt des wertniedrigen Wortes vom Multiplikanden doppelter Genauigkeit mit einem werthohen Wort des Multiplikators doppelter Genauigkeit zu erzielen ist, wobei die Multipliziereinrichtung einfacher Genauigkeit folgendes ausführt: eine Multiplikation eines Datenwertes, der ein Vorzeichenbit hat, das eine positive Zahl bei einer Ziffer aufzeigt, die um ein Bit höher als ein höchstwertiges Bit des wertniedrigen Wortes vom Multiplikanden doppelter Genauigkeit ist und eine Bitbreite hat, die um ein Bit breiter als eine Bitbreite einfacher Genauigkeit ist, mit einem Datenwert einer Bitbreite einfacher Genauigkeit, wobei ein Datenwert mit demselben Wert des höchstwertigen Bits im wertniedrigen Wort des Multiplikanden doppelter Genauigkeit der Ziffer eines niedrigstwertigen Bits des werthohen Wortes vom Multiplikator doppelter Genauigkeit hinzugefügt wird, Addieren eines Datenwertes "0" zu einer Ziffer, die um ein Bit niedriger ist als ein niedrigstwertiges Bit eines Ergebnisses der Multiplikation mit einer Bitbreite doppelter Genauigkeit, und Ausgeben eines Datenwertes einer Bitbreite, die um ein Bit breiter als die Bitbreite doppelter Genauigkeit ist, als das Produkt des wertniedrigen Wortes vom Multiplikanden doppelter Genauigkeit mit dem werthohen Wort des Multiplikators doppelter Genauigkeit.
  5. Rechenverfahren nach Anspruch 1, bei dem im Falle, daß ein Produkt der werthohen Wortes vom Multiplikanden doppelter Genauigkeit mit dem werthohen Wort des Multiplikators doppelter Genauigkeit zu erzielen ist, die Multipliziereinrichtung einfacher Genauigkeit folgendes ausführt: eine Multiplikation eines Datenwertes, bei dem ein Vorzeichenbit eines höchstwertigen Bits des werthohen Wortes vom Multiplikanden doppelter Genauigkeit einer 1-Bit-Vorzeichenerweiterung unterzogen wird und eine Bitbreite hat, die um ein Bit breiter als die Bitbreite einfacher Genauigkeit ist, mit einem Datenwert einer Bitbreite einfacher Genauigkeit, wobei Daten mit demselben Wert wie das höchstwertige Bit des wertniedrigen Wortes des Multiplikators doppelter Genauigkeit einer Ziffer eines niedrigstwertigen Bits von einem werthohen Wort des Multiplikators doppelter Genauigkeit hinzugefügt wird, Addieren eines Datenwertes "0" zu einer Ziffer, die um ein Bit niedriger als ein niedrigstwertiges Bit eines Ergebnisses der Multiplikation ist, die eine Bitbreite doppelter Genauigkeit hat, und Ausgeben eines Datenwertes einer Bitbreite, die um ein Bit größer als die Bitbreite doppelter Genauigkeit ist als das Produkt der werthohen Wortes vom Multiplikanden doppelter Genauigkeit mit dem werthohen Wort des Multiplikators doppelter Genauigkeit.
  6. Rechengerät, bei dem ein binäres Fixpunktzahlensystem, bei dem in einem binären Festkommazahlensystem, in dem ein höchstwertiges Bit ein Vorzeichenbit ist und zwischen dem höchstwertigen Bit und einem Bit, das um ein Bit niedriger als das höchstwertige Bit ist, ein Dezimalpunkt steht, Produkte eines werthohen Wortes/wertniedrigen Wortes eines Multiplikanden doppelter Genauigkeit mit einem werthohen Wort/wertniedrigen Wort eines Multiplikators mit doppelter Genauigkeit unter Verwendung einer Multipliziereinrichtung mit einfacher Genauigkeit erzielbar sind, bei dem eine Bitausrichtoperation bei jedem der gewonnenen Produkte und bei dem eine Addition dieser dann zur Erzielung eines Multiplizierergebnisses doppelter Genauigkeit erfolgt, gekennzeichnet durch ein MSB-Haltemittel (10) zum Halten eines höchstwertigen Bits eines Multiplikators, bestehend aus einem werthohen Wort/wertniedrigen Wort eines Multiplikators doppelter Genauigkeit; ein Datenauswahlmittel (11), das in selektiver Weise eines der gehaltenen Datenwerte vom MSB-Haltemittel (10) und einen Wert "0" abgibt; ein Multipliziercodiermittel 12, das den Multiplikator unter Verwendung des Multiplikators und eines Ausgabendatenwerts vom Auswahlmittel (11) codiert und den codierten Multiplikator abgibt; ein Multipliziermittel (13), das einen Multiplikanden aufnimmt, der aus einem werthohen Wort/wertniedrigen Wort eines Multiplikanden doppelter Genauigkeit besteht, einem Ausgabedatenwert des Multipliziercodiermittels (12) und einem Multiplikandenbeurteilungssignal (C1) für den Fall, daß das Multiplikandenbeurteilungssignal (C1) aktiv ist, Erzielen eines Ergebnisses einer Multiplikation des Multiplikanden mit dem Ausgangsdatenwert des Multipliziercodiermittels (12), während eine 1-Bit-Vorzeichenerweiterung bezüglich eines Vorzeichenbits erfolgt, das ein höchstwertiges Bit des Multiplikanden ist, und wenn das Multiplikandenbeurteilungssignal (C1) inaktiv ist, Erzielen eines Ergebnisses einer Multiplikation des Multiplikanden mit dem Ausgangsdatenwert des Multipliziercodiermittels (12), während ein Vorzeichenbit hinzugefügt wird, das eine positive Zahl dem Bit aufzeigt, das um ein Bit höher ist als das höchstwertige Bit des Multiplikanden, und zur Abgabe des Multiplizierergebnisses, bei dem wenigstens zwei Bits vor einem Dezimalpunkt stehen und das eine Bitbreite aufweist, die wenigstens ein Bit breiter als eine Bitbreite doppelter Genauigkeit ist; ein Addiermittel (14) zum Ausführen einer Addition eines zweiten Summanden, der ein Ausgangsdatenwert des Multipliziermittels (13) ist, mit einem ersten Summanden, bei dem wenigsten zwei Bits vor einem Dezimalpunkt stehen und dessen Bitbreite um wenigstens ein Bit breiter ist als eine Bitbreite doppelter Genauigkeit und ein Addierergebnis abgibt, bei dem wenigstens zwei Bits vor einem Dezimalpunkt stehen und das eine Bitbreite aufweist, die wenigstens um ein Bit breiter ist als die Bitbreite doppelter Genauigkeit; ein Additionsergebnishaltemittel (15), das das vom Addiermittel (14) abgegebene Additionsergebnis hält; und durch ein Bitausrichtmittel (16), das einen der gehaltenen Datenwerte vom Additionsergebnishaltemittel (15) und einen Wert "0" auswählt, um eine Bitausrichtung durch Durchführen einer Bitschiebeoperation in Einheit einer Breite eines Datenwertes einfacher Genauigkeit durchzuführen, um eine Bitausrichtung zu erreichen und zur Ausgabe eines Ergebnisses der Bitausrichtung als den ersten Summanden für das Addiermittel (14).
  7. Rechengerät nach Anspruch 6, bei dem während Ausführens einer Multiplikation doppelter Genauigkeit im Falle, daß ein Produkt des wertniedrigen Wortes vom Multiplikator doppelter Genauigkeit mit dem werthohen Wort/wertniedrigen Wort des Multiplikanden doppelter Genauigkeit zu erzielen ist, wobei das MSB-Haltemittel (10) ein höchstwertiges Bit des wertniedrigen Wortes vom Multiplikator doppelter Genauigkeit hält.
  8. Rechengerät nach Anspruch 6, bei dem während des Ausführens einer Multiplikation doppelter Genauigkeit im Falle, daß ein Produkt des wertniedrigen Wortes vom Multiplikator doppelter Genauigkeit mit dem werthohen Wort/wertniedrigen Wort des Multiplikanden doppelter Genauigkeit zu erzielen ist, das Datenauswahlmittel (11) in selektiver Weise einen Wert "0" ausgibt, und im Falle, daß ein Produkt vom werthohen Wort des Multiplikators doppelter Genauigkeit mit dem werthohen Wort/wertniedrigen Wort den Multiplikanden doppelter Genauigkeit zu erzielen ist, in selektiver Weise die Ausgabe des höchstwertigen Bits vom wertniedrigen Wort des Multiplikators doppelter Genauigkeit erfolgt, den das MSB-Haltemittel (10) hält.
  9. Rechengerät nach Anspruch 6, bei dem während des Ausführens der Multiplikation doppelter Genauigkeit im Falle, daß ein Produkt des wertniedrigen Wortes vom Multiplikator doppelter Genauigkeit mit dem werthohen Wort/wertniedrigen Wort des Multiplikanden doppelter Genauigkeit zu erzielen ist, das Multipliziercodiermittel (12) das eingegebene wertniedrige Wort des Multiplikators doppelter Genauigkeit und den vom Datenauswahlmittel (11) gemäß dem Booth-Algorithmus ausgewählten abgegebenen Datenwert von "0" codiert und dann das codierte Wort und Daten abgibt, und wenn ein Produkt des werthohen Wortes vom Multiplikator doppelter Genauigkeit mit dem werthohen Wort/wertniedrigen Wort des Multiplikanden doppelter Genauigkeit zu erzielen ist, ein Codieren der Ausgabedaten vom höchstwertigen Bit des vom MSB-Haltemittel 10 gehaltenen wertniedrigen Wortes vom Multiplikator doppelter Genauigkeit erfolgt, und bei dem es dann zu einer Auswahl vom Datenauswahlmittel (11) gemäß dem Booth-Algorithmus und der Ausgabe der codierten Daten kommt.
  10. Rechengerät nach Anspruch 6, dessen Multipliziermittel (13) über ein Partialprodukterzeugungsmittel für den Fall verfügt, daß das Multiplikandenbeurteilungssignal (C1) während Ausführens einer Multiplikation doppelter Genauigkeit aktiv ist und beurteilt, daß der eingegebene Multiplikand das wertniedrige Wort des Multiplikanden doppelter Genauigkeit ist, und erzielt ein Partialprodukt vom Multiplikanden mit den Ausgangsdaten vom Multipliziercodiermittel (12), während des Addierens vom Vorzeichenbit, das eine positive Zahl für eine Ziffer aufzeigt, die um ein Bit höher als das höchstwertige Bit vom Multiplikanden ist, um für den Fall inaktiven Multiplikandenbeurteilungssignals (C1) zu beurteilen, daß der eingegebene Multiplikand das werthohe Wort des Multiplikanden doppelter Genauigkeit ist, und ein Partialprodukt vom Multiplikanden mit den Ausgangsdaten vom Multipliziercodiermittel (12) während einer 1-Bit-Vorzeichenerweiterung bezüglich des Vorzeichenbits zu erzielen, welches das höchstwertige Bit des Multiplikanden ist.
  11. Rechengerät nach Anspruch 6, dessen Multipliziermittel (13) wenigstens zwei Sätze von Partialprodukterzeugungsmitteln besitztt, summiert Partialprodukte, die Ausgabedaten vom Mehrfachpartialprodukterzeugungsmittel sind, fügt während des Ausrichtens einer Ziffernstelle einen Datenwert von "0" einer Ziffer hinzu, die um ein Bit niedriger als das niedrigstwertige Bit eines Ergebnisses vom Partialproduktsummieren ist, und gibt ein Ergebnis der Addition als gewünschtes Produkt ab.
  12. Rechengerät nach Anspruch 6, das des weiteren über ein Multiplikationsergebnishaltemittel verfügt, das die Ausgangsdaten des Multipliziermittels (13) zeitweilig hält und die gehaltenen Daten als Summand für das Addiermittel (14) abgibt, wobei das Multipliziermittel (13) und das Addiermittel (14) parallel betriebsbereit sind.
  13. Rechengerät nach Anspruch 6, dessen Multipliziercodiermittel (12) die Funktion eines Zwangseinstellmittels für das niedrigstwertige Bit des Multiplikators hat, der ein Eingabedatenwert ist, um ihn auf "0" zu stellen.
  14. Rechengerät nach Anspruch 6, dessen Multipliziermittel (13) die Funktion eines Zwangseinstellmittels für das niedrigstwertige Bit des Multiplikanden hat, der ein Eingabedatenwert ist, um ihn auf "0" zu stellen.
  15. Rechengerät nach Anspruch 6, dessen MSB-Haltemittel (10) verwirklicht ist durch ein Mittel zum selektiven Halten eines der höchstwertigen Bits vom Multiplikator und einem Wert von "0" anstelle des Mittels zum Halten des höchstwertigen Bits vom Multiplikator.
DE69821408T 1997-07-09 1998-07-08 Multiplikationsverfahren und -vorrichtung Expired - Fee Related DE69821408T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP18388097 1997-07-09
JP18388097 1997-07-09

Publications (2)

Publication Number Publication Date
DE69821408D1 DE69821408D1 (de) 2004-03-11
DE69821408T2 true DE69821408T2 (de) 2004-12-16

Family

ID=16143454

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69821408T Expired - Fee Related DE69821408T2 (de) 1997-07-09 1998-07-08 Multiplikationsverfahren und -vorrichtung

Country Status (6)

Country Link
US (1) US6233597B1 (de)
EP (1) EP0890899B1 (de)
KR (1) KR19990013698A (de)
CN (1) CN1215862A (de)
DE (1) DE69821408T2 (de)
TW (1) TW436729B (de)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5864703A (en) * 1997-10-09 1999-01-26 Mips Technologies, Inc. Method for providing extended precision in SIMD vector arithmetic operations
US7197625B1 (en) * 1997-10-09 2007-03-27 Mips Technologies, Inc. Alignment and ordering of vector elements for single instruction multiple data processing
US6434584B1 (en) * 1998-06-04 2002-08-13 Texas Instruments Incorporated Flexible accumulator register file for use in high performance microprocessors
US6484194B1 (en) * 1998-06-17 2002-11-19 Texas Instruments Incorporated Low cost multiplier block with chain capability
US6692534B1 (en) * 1999-09-08 2004-02-17 Sun Microsystems, Inc. Specialized booth decoding apparatus
US6912557B1 (en) * 2000-06-09 2005-06-28 Cirrus Logic, Inc. Math coprocessor
US7599981B2 (en) * 2001-02-21 2009-10-06 Mips Technologies, Inc. Binary polynomial multiplier
US7711763B2 (en) * 2001-02-21 2010-05-04 Mips Technologies, Inc. Microprocessor instructions for performing polynomial arithmetic operations
US7181484B2 (en) * 2001-02-21 2007-02-20 Mips Technologies, Inc. Extended-precision accumulation of multiplier output
US7162621B2 (en) 2001-02-21 2007-01-09 Mips Technologies, Inc. Virtual instruction expansion based on template and parameter selector information specifying sign-extension or concentration
KR100402734B1 (ko) * 2001-12-21 2003-10-22 한국전자통신연구원 부호화된 피승수를 사용하는 고정 소수점 곱셈 장치 및 그방법
US7447310B2 (en) * 2002-08-06 2008-11-04 The State Of Oregon Acting By And Through The State Board Of Higher Education On Behalf Of Oregon State University Lean multiplication of multi-precision numbers over GF(2m)
US7401109B2 (en) * 2002-08-06 2008-07-15 The State Of Oregon Acting By And Through The State Board Of Higher Education On Behalf Of Oregon State University Multiplication of multi-precision numbers having a size of a power of two
FR2853425B1 (fr) * 2003-04-07 2006-01-13 Atmel Corp Sequence de multiplication efficace pour operandes a grands nombres entiers plus larges que le materiel multiplicateur
US7266580B2 (en) * 2003-05-12 2007-09-04 International Business Machines Corporation Modular binary multiplier for signed and unsigned operands of variable widths
US20060059221A1 (en) * 2004-09-10 2006-03-16 Cavium Networks Multiply instructions for modular exponentiation
JP4349265B2 (ja) * 2004-11-22 2009-10-21 ソニー株式会社 プロセッサ
JP2006227939A (ja) * 2005-02-17 2006-08-31 Matsushita Electric Ind Co Ltd 演算装置
US20070011222A1 (en) * 2005-07-07 2007-01-11 Dance Sherman M Floating-point processor for processing single-precision numbers
US20080046497A1 (en) * 2006-08-18 2008-02-21 Conexant Systems, Inc. Systems and Methods for Implementing a Double Precision Arithmetic Memory Architecture
US8495125B2 (en) * 2009-05-27 2013-07-23 Microchip Technology Incorporated DSP engine with implicit mixed sign operands
CN101697116B (zh) * 2009-10-27 2011-11-09 飞天诚信科技股份有限公司 数据变换方法及装置
US8566385B2 (en) * 2009-12-02 2013-10-22 International Business Machines Corporation Decimal floating point multiplier and design structure
US11847427B2 (en) 2015-04-04 2023-12-19 Texas Instruments Incorporated Load store circuit with dedicated single or dual bit shift circuit and opcodes for low power accelerator processor
US9817791B2 (en) 2015-04-04 2017-11-14 Texas Instruments Incorporated Low energy accelerator processor architecture with short parallel instruction word
US10503474B2 (en) 2015-12-31 2019-12-10 Texas Instruments Incorporated Methods and instructions for 32-bit arithmetic support using 16-bit multiply and 32-bit addition
US10401412B2 (en) 2016-12-16 2019-09-03 Texas Instruments Incorporated Line fault signature analysis
CN107423023B (zh) * 2017-08-10 2020-12-11 南京航空航天大学 一种16×16-digit冗余十进制乘法器
FR3101982B1 (fr) * 2019-10-11 2024-03-08 St Microelectronics Grenoble 2 Détermination d'un bit indicateur
US11599334B2 (en) * 2020-06-09 2023-03-07 VeriSilicon Microelectronics Enhanced multiply accumulate device for neural networks
US20230083270A1 (en) * 2021-09-14 2023-03-16 International Business Machines Corporation Mixed signal circuitry for bitwise multiplication with different accuracies

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH061438B2 (ja) 1984-04-26 1994-01-05 日本電気株式会社 倍精度乗算器
US4809212A (en) * 1985-06-19 1989-02-28 Advanced Micro Devices, Inc. High throughput extended-precision multiplier
US4754421A (en) * 1985-09-06 1988-06-28 Texas Instruments Incorporated Multiple precision multiplication device
US4876660A (en) 1987-03-20 1989-10-24 Bipolar Integrated Technology, Inc. Fixed-point multiplier-accumulator architecture
US5121431A (en) * 1990-07-02 1992-06-09 Northern Telecom Limited Processor method of multiplying large numbers
JPH05216626A (ja) 1992-02-03 1993-08-27 Nec Corp 乗算器
JP3096574B2 (ja) 1994-07-20 2000-10-10 松下電器産業株式会社 倍精度乗算を実行する方法及び演算装置
JP2705640B2 (ja) 1995-05-01 1998-01-28 日本電気株式会社 積和演算器
JP2765516B2 (ja) 1995-05-29 1998-06-18 日本電気株式会社 積和演算器
US5784305A (en) 1995-05-01 1998-07-21 Nec Corporation Multiply-adder unit
US5771186A (en) * 1995-06-07 1998-06-23 International Business Machines System and method for multiplying in a data processing system
US5764558A (en) * 1995-08-25 1998-06-09 International Business Machines Corporation Method and system for efficiently multiplying signed and unsigned variable width operands
US5751622A (en) 1995-10-10 1998-05-12 Chromatic Research, Inc. Structure and method for signed multiplication using large multiplier having two embedded signed multipliers
KR100222032B1 (ko) * 1996-12-24 1999-10-01 윤종용 디지탈 신호 처리기에서의 2배 정밀도 곱셈연산 수행방법

Also Published As

Publication number Publication date
TW436729B (en) 2001-05-28
KR19990013698A (ko) 1999-02-25
CN1215862A (zh) 1999-05-05
EP0890899B1 (de) 2004-02-04
US6233597B1 (en) 2001-05-15
DE69821408D1 (de) 2004-03-11
EP0890899A3 (de) 2000-01-05
EP0890899A2 (de) 1999-01-13

Similar Documents

Publication Publication Date Title
DE69821408T2 (de) Multiplikationsverfahren und -vorrichtung
DE3854321T2 (de) Populationszählung in Rechnersystemen.
DE19758079A1 (de) Verfahren und Vorrichtung zur Galoisfeld-Multiplikation
DE102020113922A1 (de) Multipliziererschaltungsanordnung mit reduzierter latenz für sehr grosse zahlen
DE2658248C2 (de)
DE69731700T2 (de) Arithmetischer Schaltkreis und arithmetisches Verfahren
DE1956209C3 (de) Multipliziervorrichtung
DE3927009A1 (de) Addierschaltung
DE10105945A1 (de) Linearsummierungsmultipliziererarrayimplementie-rung sowohl zur vorzeichenbehafteten als auch zur vorzeichenlosen Multipliaktion
DE1549477B1 (de) Einrichtung zur schnellen akkumulation einer anzahl mehr stelliger binaerer operanden
DE2946846A1 (de) Rundungs-korrekturlogik fuer multiplizierer fuer modifizierten booth-algorithmus
DE2018452A1 (de) Arithmetische Einrichtung
DE4101004A1 (de) Paralleler multiplizierer mit sprungfeld und modifiziertem wallac-baum
DE1549508C3 (de) Anordnung zur Übertragsberechnung mit kurzer Signallaufzeit
DE102007056104A1 (de) Verfahren und Vorrichtung zur Multiplikation von Binäroperanden
DE2221693B2 (de) Schaltungsanordnung zur Ausführung einer Multiplikation zwischen zwei Binärzahlen
DE3852576T2 (de) Einrichtung und Verfahren für eine erweiterte Arithmetik-Logik-Einheit zur Beschleunigung der ausgewählten Operationen.
DE10219158B4 (de) Vorrichtung und Verfahren zum Berechnen eines Ergebnisses einer modularen Multiplikation
DE10357661A1 (de) Modularer Montgomery-Multiplizierer und zugehöriges Multiplikationsverfahren
DE2730918A1 (de) Anordnung zum multiplizieren von binaerzahlen
DE2034841B2 (de) Matrixanordnung für Digital Rechenanlage
DE69026414T2 (de) Binäres Addiergerät
DE3434777A1 (de) Verfahren und vorrichtung zur vorzeichenerzeugung fuer einen uebertragsicherstellungsaddierer
DE19635114A1 (de) Multiplizierer
DE3909713C2 (de)

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: PANASONIC CORP., KADOMA, OSAKA, JP

8339 Ceased/non-payment of the annual fee