-
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
-
Daten
doppelter Genauigkeit × Daten
einfacher Genauigkeit
-
Tabelle
2
Daten doppelter Genauigkeit × Daten doppelter Genauigkeit
-
Daten
doppelter Genauigkeit × Daten
einfacher Genauigkeit