DE4123186A1 - Multiplikationseinrichtung vom typ fuer unterteilte produkte, die zum ausfuehren einer multiplikation numerischer werte mit vielen stellen bei hoher genauigkeit faehig ist - Google Patents

Multiplikationseinrichtung vom typ fuer unterteilte produkte, die zum ausfuehren einer multiplikation numerischer werte mit vielen stellen bei hoher genauigkeit faehig ist

Info

Publication number
DE4123186A1
DE4123186A1 DE19914123186 DE4123186A DE4123186A1 DE 4123186 A1 DE4123186 A1 DE 4123186A1 DE 19914123186 DE19914123186 DE 19914123186 DE 4123186 A DE4123186 A DE 4123186A DE 4123186 A1 DE4123186 A1 DE 4123186A1
Authority
DE
Germany
Prior art keywords
multiplier
multiplicand
product
zeroth
exponent
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.)
Withdrawn
Application number
DE19914123186
Other languages
English (en)
Inventor
Aisuke Katayama
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Publication of DE4123186A1 publication Critical patent/DE4123186A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/525Multiplying only in serial-serial fashion, i.e. both operands being entered serially

Landscapes

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

Description

Die Erfindung betrifft eine Multiplikationseinrichtung zum Multiplizieren zweier numerischer Werte, nämlich eines Multiplikanden X mit einem Multiplikator Y, um ein Produkt Q aus dem Multiplikanden X und dem Multiplikator Y zu erzeugen. Im allgemeinen besteht der Multiplikand X aus N Ziffern, wohingegen der Multiplikator Y aus M Ziffern besteht, wobei M und N jeweils erste und zweite vorgegebene natürliche Zahlen darstellen. Auf diese Art und Weise besteht das Produkt Q aus (N+M) Ziffern.
Unter diesen Umständen wird der Multiplikand X durch nullte bis (N-1)te Multiplikandenelemente x(0) bis x(N-1) dargestellt, welche durch nullte bis (N-1)te Ziffern bzw. in nullten bis (N-1)ten Stellen angeordnet sind, die durch L⁰ bis LN-1 jeweils spezifiziert sind, wobei L eine vorgegebene ganze Zahl ist, die nicht kleiner als zwei ist. Der Multiplikator Y wird durch nullte bis (M-1)te Multiplikatorelemente von y(0) bis y(M-1) dargestellt, die in nullten bis (M-1)ten Stellen bzw. Ziffern angeordnet sind, die durch L⁰ bis LM-1 spezifiziert sind. Das Produkt Q wird durch nullte bis (N+M-1)te Produktelemente q(0) bis q(N+M-1) dargestellt, die in nullten bis (N+M-1)ten Stellen bzw. Ziffern (digits) angeordnet sind, welche jeweils durch L⁰ bis L(N+M-1) spezifiziert sind.
Eine Multiplikation von zwei numerischen Werten mit vielen Stellen fällt oft bei Prozessen an, die ein nicht-lineares Programmierungsproblem beim Vorgang einer wissenschaftlichen numerischen Berechnung lösen, das eine Faktorenberechnung (factorial calculation) enthält. Wenn jeder numerische Wert im Dezimalen, nämlich bei L=10, durch eine Zahl repräsentiert wird, die nicht größer ist als zwei Milliarden, wird der numerische Wert durch 32 Bits im Binären oder bei L=2 repräsentiert. Wenn beide numerischen Werte durch 32 Bit repräsentiert werden, kann die Multiplikation durch einen 32 Bit multiplizierenden Prozessor in einem Maschinenzyklus durchgeführt werden. Der 32 Bit multiplizierende Prozessor führt die Multiplikation unter Einsatz einer Festpunktarithmetik durch.
Nach dem Stand der Technik muß eine Multiplikation unter Einsatz einer Gleitpunktarithmetik ausgeführt werden, wenn irgendein numerischer Wert durch eine Zahl repräsentiert wird, die größer ist als 32 Binärbits. In diesem Fall ist es unmöglich, eine Multiplikation bei hoher Genauigkeit durchzuführen. Im Fall, wo leichte Fehler vernachlässigt werden können, kann die Multiplikation durchgeführt werden, indem Gleitpunktarithmetik eingesetzt wird. Es gibt jedoch einige Fälle, wo eine Anhäufung bzw. Akkumulation von Fehlern nicht erlaubt wird, so daß sich Probleme erhöhen, die nicht unter Einsatz einer Gleitpunktarithmetik gelöst werden können. In den letzten Jahren ist es immer notwendiger geworden, eine Multiplikation numerischer Werte mit vielen Stellen mit hoher Genauigkeit auszuführen.
Im nachfolgenden wird eine detaillierte Beschreibung einer herkömmlichen Multiplikationseinrichtung gegeben. Beim Ausführen einer Multiplikation unter Einsatz eines Computers wird jeder numerische Wert durch eine binäre Zahl, nämlich L=2, wiedergegeben. Unter diesen Umständen hat jedes der Multiplikandenelemente x(0) bis x(N-1) und der Multiplikatorelemente y(0) bis y(M-1) einen logischen oder binären Null- oder Einswert. Bei der herkömmlichen Multiplikationseinrichtung wir die Multiplikation des Multiplikanden X und des Multiplikators Y normalerweise durch eine Addition einer Anzahl von Partialprodukten durchgeführt, die in ihrer Anzahl gleich der zweiten vorgegebenen natürlichen Zahl M sind. Es ist möglich, auf einige der Partialprodukte zu verzichten bzw. diese wegzulassen, welche den Bits des Multiplikators Y entsprechen, von denen jedes die binäre Null hat. In jedem Fall muß die herkömmliche Multiplikationseinrichtung Multiplikationen als Addition einer großen Anzahl von Partialprodukten durchführen, von denen jedes durch eine große Anzahl von Stellen vorgegeben ist, wenn irgendein numerischer Wert durch mehr als 32 Bits gegeben ist. Im Ergebnis erfordert die herkömmliche Multiplikationseinrichtung einen größeren Speicherbereich für die Multiplikation.
Viele Verbesserungen bezüglich Multiplikationseinrichtungen sind vorgestellt worden, wie z. B. ein modifizierter Booth Algorithmus, der die Anzahl der Partialprodukte reduziert, und ein Wallace Baum, der weniger Übertragsicherungsaddierer erfordert, um die Partialprodukte aufzusummieren.
Trotz der vielen Verbesserungen für Multiplikationseinrichtungen ist es unmöglich, eine Multiplikation von zwei numerischen Werten unter Einsatz der Festpunktarithmetik durchzuführen, wenn irgendeiner der numerischen Werte durch mehr als 32 Bits im Binären repräsentiert wird, wie es oben erwähnt wurde.
Aufgabe der vorliegenden Erfindung ist es, eine Multiplikationseinrichtung anzugeben, die fähig zum Ausführen einer Multiplikation zweier numerischer Werte ist, von denen jeder viele Stellen hat, und zwar bei hoher Genauigkeit.
Diese Aufgabe wird durch die Multiplikationseinrichtung nach Anspruch 1 oder durch die Multiplikationseinrichtung nach Anspruch 5 gelöst.
Wie gesagt, ist eine Multiplikationseinrichtung zum Multiplizieren eines Multiplikanden X mit einem Multiplikator Y vorgesehen, um ein Produkt Q aus dem Multiplikanden X und dem Multiplikator Y zu erzeugen. Der Multiplikand X hat N Stellen und wird durch nullte bis (N-1)te Multiplikandenelemente x(0) bis x(N-1) wiedergegeben, die in nullten bis (N-1)ten Stellen angeordnet sind, welche durch L⁰ bis LN-1 spezifiziert sind, wobei N eine erste vorgegebene natürliche Zahl und L eine vorgegebene ganze Zahl wiedergibt, die nicht kleiner als 2 ist. Der Multiplikator Y besteht aus M Stellen und wird durch nullte bis (M-1)te Multiplikatorelemente y(0) bis y(M-1) wiedergegeben, die in nullten bis (M-1)ten Stellen angeordnet sind, welche entsprechend durch L⁰ bis LM-1 spezifiziert sind, wobei M eine zweite vorgegebene natürliche Zahl wiedergibt. Das Produkt Q besteht aus (N+M) Stellen und wird durch nullte bis (N+M-1)te Produktelemente q(0) bis q(N+M-1) wiedergegeben, die in nullten bis (N+M-1)ten Stellen angeordnet sind, welche entsprechend durch L⁰ bis L(N+M-1) spezifiziert sind.
Gemäß einer Ausführungsform der vorliegenden Erfindung weist die erfindungsgemäße Multiplikationseinrichtung eine Berechnungseinrichtung für unterteilte Produkte auf, die mit dem Multiplikanden X und dem Multiplikator Y zum Berechnen einer Sequenz aus unterteilten Produkten p(x(i), y(j)) eines i-ten Multiplikandenelements x(i) und eines j-ten Multiplikatorelements y(j) versorgt wird, wobei i eine erste Variable angibt, die variabel von null bis (N-1) mit beiden Grenzen inklusive ist und j eine zweite Variable angibt, die variabel von 0 bis (M-1) mit beiden Grenzen inklusive ist. Die unterteilten Produkte p(x(i), y(j)) werden durch ein hintereinanderfolgendes Ändern einer Eigenzahl k berechnet, die gleich einer Summe der ersten Variablen i und einer zweiten Variablen j ist. Mit der Berechnungseinrichtung für unterteilte Produkte ist eine Akkumulationseinrichtung verbunden, die hintereinanderfolgend die unterteilten Produkte p(x(i), y(j)) auf der Basis der Eigenzahl k akkumuliert, indem diejenigen unterteilten Produkte selektiert werden, die eine der Eigenzahlen gemeinsam haben. Die Akkumulationseinrichtung erzeugt hintereinanderfolgend das Produkt Q in einer ansteigenden Reihenfolge vom nullten Produktelement q(0) bis zum (N+M-1)ten Produktelement q(N+M-1).
Gemäß einem weiteren Aspekt der Erfindung weist die zuvor definierte Multiplikationseinrichtung eine Multiplikandenspeichereinrichtung auf, die durch nullte bis (N-1)te Multiplikandenadressen zum Speichern der nullten bis (N-1)ten Multiplikandenelemente x(0) bis x(N-1) unter den nullten bis (N-1)ten Multiplikandenadressen zugewiesen wird, und weiterhin eine Multiplikatorspeichereinrichtung aufweist, die durch nullte bis (M-1)te Multiplikatoradressen zum Speichern der nullten bis (M-1)ten Multiplikatorelemente y(0) bis y(M-1) unter entsprechend nullten bis (M-1)ten Multiplikatoradressen zugewiesen wird. Mit der Multiplikandenspeichereinrichtung und der Multiplikatorspeichereinrichtung ist eine Leseeinrichtung verbunden, die hintereinanderfolgend durch hintereinanderfolgendes Ändern einer Eigenzahl k in einer aufsteigenden Reihenfolge von null bis (N+M-2) ein i-tes Multiplikandenelement x(i) und ein j-tes Multiplikatorelement y(j) aus einer i-ten Multiplikandenadresse der Multiplikandenspeichereinrichtung bzw. einer j-ten Multiplikatoradresse der Multiplikatorspeichereinrichtung liest, wobei i eine erste Variable angibt, die variabel von null bis (N-1) ist, einschließlich beider Grenzen, und j eine zweite Variable repräsentiert, die von null bis (M-1) einschließlich beider Grenzen variabel ist. Die Eigenzahl k ist gleich einer Summe aus der ersten Variablen i und der zweiten Variablen j. Mit der Multiplikandenspeichereinrichtung und der Multiplikatorspeichereinrichtung ist eine Erzeugungseinrichtung verbunden, die sukzessiver Weise ein Paar aus i-ten Multiplikandenelementen x(i) und j-ten Multiplikatorelementen y(j) erzeugt. Mit der Erzeugungseinrichtung ist eine Berechnungseinrichtung für geteilte bzw. unterteilte Produkte verbunden, die eine Sequenz aus unterteilten Produkten p(x(i), y(j)) des i-ten Multiplikandenelements x(i) und des j-ten Multiplikatorelements y(j) berechnet. Mit der Berechnungseinrichtung für unterteilte Produkte ist eine Akkumulationseinrichtung verbunden, die in sukzessiver Weise die unterteilten Produkte p(x(i), y(j)) auf der Basis der Eigenzahl k durch Auswählen der unterteilten Produkte akkumuliert, die eine gemeinsame Eigenzahl haben. Die Akkumulationseinrichtung erzeugt hintereinanderfolgend das Produkt Q in einer ansteigenden Reihenfolge von dem nullten Produktelement q(0) bis zum (N+M-1)ten Produktelement q(N+M-1).
Die erfindungsgemäße Einrichtung hat den Vorteil, daß eine Multiplikationseinrichtung angegeben wird, die einen kleineren Speicherbereich für die Multiplikation erfordert, als die oben beschriebenen bekannten Multiplikationseinrichtungen.
Vorteilhafte Weiterbildungen der Erfindung sind den Unteransprüchen zu entnehmen.
Weitere Vorteile, Anwendungsmöglichkeiten und Eigenschaften der vorliegenden Erfindung sind aus der nachfolgenden Beschreibung von Ausführungsformen in Verbindung mit den Zeichnungen ersichtlich.
Es zeigt
Fig. 1 ein Blockdiagramm einer Multiplikationseinrichtung gemäß einer Ausführungsform der vorliegenden Erfindung;
Fig. 2 eine Blockdiagramm einer Multiplikationseinheit zum Einsatz in der Multiplikationseinrichtung nach Fig. 1;
Fig. 3 ein Blockdiagramm einer Akkumulationseinheit zum Einsatz in der Multiplikationseinrichtung nach Fig. 1;
Fig. 4 ein Blockdiagramm einer Leseeinheit zum Einsatz in der Multiplikationseinrichtung nach Fig. 1 und
Fig. 5 eine Adressenzuordnung zum Einsatz beim Beschreiben des Betriebs der Leseeinheit nach Fig. 4.
Die Beschreibung wird zuerst auf die Prinzipien in der vorliegenden Erfindung gerichtet, um ein Verständnis der Erfindung zu fordern. Um eine Multiplikation auszuführen, arbeitet eine Multiplikationseinrichtung gemäß der vorliegenden Erfindung, indem zerlegte Produkte verwendet werden, die unterschiedlich zu Partialprodukten zum Einsatz in den oben erwähnten bekannten Multiplikationseinrichtungen sind. In dieser Beschreibung werden diese zerlegten Produkte unterteilte Produkte genannt. Dementsprechend wird die Multiplikationseinrichtung gemäß der vorliegenden Erfindung als Multiplikationseinrichtung vom Typ für unterteilte Produkte bezeichnet.
Wie es aus dem Stand der Technik bestens bekannt ist, ist eine Multiplikationseinrichtung eine Einrichtung zum Multiplizieren zweier numerischer Werte, nämlich eines Multiplikanden X und eines Multiplikators Y, um ein Produkt Q aus dem Multiplikanden X und dem Multiplikator Y zu erzeugen. Im allgemeinen besteht der Multiplikand S aus N Stellen bzw. Ziffern, wohingegen der Multiplikator Y aus M Stellen bzw. Ziffern besteht, wobei N und M erste bzw. zweite vorgegebene natürliche Zahlen wiedergeben. In diesem Fall besteht das Produkt Q aus (N+M) Stellen. Sowohl der Multiplikand X bzw. der Multiplikator Y als auch das Produkt Q ist im allgemeinen durch ein L-Basis-Zahlensystem gegeben, wobei L eine vorgegebene ganze Zahl ist, die nicht kleiner als zwei ist.
Unter diesen Umständen ist der Multiplikand X durch nullte bis (N-1)te Multiplikandenelemente x(0) bis x(N-1) dargestellt, die in nullter bis (N-1)ten Stellen angeordnet sind, welche durch L⁰ bis LN-1 spezifiziert sind. Der Multiplikator Y wird durch nullte bis (M-1)te Multiplikatorelemente y(0) bis y(M-1) wiedergegeben, die in nullten bis (M-1)ten Stellen angeordnet sind, die durch L⁰ bis LM-1 spezifiziert sind. Das Produkt Q wird durch nullte bis (N+M-1)te Produktelemente q(0) bis q(N+M-1) wiedergegeben, die in nullten bis (N+M-1)ten Stellen angeordnet sind, welche durch L⁰ bis L(N+M-1) spezifiziert sind.
Wenn der Multiplikand X, der Multiplikator Y und das Produkt Q durch ein Dezimalzahlensystem, nämlich L=10, wiedergegeben werden, wird jedes Element des Multiplikanden X, des Multiplikators Y bzw. des Produktes Q durch 4 Bits oder einen binärkodierten Dezimalcode (BCD) wiedergegeben. Wenn der Multiplikand X und der Multiplikator Y aus 4 Ziffern besteht, nämlich N=M=4, und durch dezimal X=2867 bzw. dezimal Y=5304 gegeben sind, werden der Multiplikand X bzw. der Multiplikator Y durch nullte bis dritte Multiplikandenelemente x(0) bis x(3) bzw. nullte bis dritte Multiplikatorelemente y(0) bis y(3) wiedergegeben, welche gegeben sind durch
x(0) = 7, x(1) = 6, x(2) = 8, x(3) = 2 und
y(0) = 4, y(1) = 0, y(2) = 3, y(3) = 5.
Die Aufmerksamkeit wird nun auf ein i-tes Multiplikandenelement x(i) und ein j-tes Multiplikatorelement y(j) gerichtet, wobei i eine erste Variable repräsentiert, die variabel von null bis (N-1) ist, einschließlich beider Grenzwerte, und wobei j eine zweite Variable repräsentiert, die variabel von null bis (M-1) ist, wobei beide Grenzwerte eingeschlossen sind. Ein unterteiltes Produkt p(x(i)), y(j)) wird durch ein Produkt aus dem i-ten Multiplikandenelement x(i) und dem j-ten Multiplikatorelement y(j) definiert; d. h.:
p(x(i), y(j)) = x(i) × y(j). (1)
Eine Summe aus der ersten Variablen i und der zweiten Variablen j definiert eine ganze Zahl k, nämlich:
i + j =k (2)
wobei k als eine Eigenzahl des unterteilten Produkts p(x(i), y(j)) bezeichnet wird. Wenn das zweite Multiplikandenelement x(2) und das nullte Multiplikatorelement y(0) gleich acht bzw. vier sind, nämlich wenn x(2)=8 und y(0)=4 als Beispiel sind, ist das unterteilte Produkt p(x(2), y(0)) gleich zweiunddreißig oder p(x(2), y(0))=32 und die Eigenzahl k ist gleich zwei oder k=2. Das unterteilte Produkt p(x(2), y(0)) ist an der zweiten Stelle 10² des Produkts Q lokalisiert. Im allgemeinen sind die unterteilten Produkte p(x(i), y(j)) mit der Eigenzahl k in der k-ten Stelle Lk des Produkts Q lokalisiert.
Dementsprechend, wie oben erwähnt, wird das Produkt Q hintereinanderfolgend in aufsteigender Reihenfolge von dem nullten Produktelement q(0) bis zum (N+M-1)ten Produktelement q(N+M-1) durch sukzessives Akkumulieren der unterteilten Produkte p(x(i), y(j)) auf der Basis der Eigenzahl k erhalten, wobei die unterteilten Produkte mit gemeinsamer Eigenzahl ausgewählt werden.
Die unterteilten Produkte p(x(i), y(j)) können als zweidimensionales Array bzw. Feld aus INTEGER Elementen mit N Reihen und M Spalten aufgebaut werden. Anders ausgedrückt, die unterteilten Produkte p(x(i), y(j)) entsprechen den INTEGER Elementen beim Schnittpunkt einer (i+1)ten Reihe und einer (j+1)ten Spalte des zweidimensionalen Arrays. Solch ein zweidimensionales Array ist einer Einrichtung äquivalent, die bereits von J. Napier (1550-1617) vorgeschlagen worden ist, einem schottischen Mathematiker, wie "Napiers Knochen". Diese Einrichtung erleichtert das Berechnen einer Multiplikation oder einer Division. Sie besteht aus Knochenreihen, von denen jede in neun gleiche Unterteilungen unterteilt ist. Ein solches zweidimensionales Array erfordert jedoch einen großen Speicherbereich, wenn sowohl der Multiplikand X als auch der Multiplikator Y durch eine große Anzahl von Stellen gegeben ist. Wie später beschrieben wird, führt die Multiplikationseinrichtung vom unterteilten Produkttyp eine Multiplikation ohne einen größeren Speicherbereich aus.
Nach Fig. 1 ist die Multiplikationseinrichtung vom Typ für unterteilte Produkte gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung zum Multiplizieren zweier numerischer Werte vorgesehen, nämlich eines Multiplikanden X mit einem Multiplikator Y, um ein Produkt Q aus dem Multiplikanden X und einem Multiplikator Y zu bilden. Im allgemeinen besteht der Multiplikand X aus N Stellen, wohingegen der Multiplikator Y aus M Stellen besteht, wobei N und M erste bzw. zweite vorgegebene natürliche Zahlen repräsentieren. In diesem Fall besteht das Produkt Q aus (N+M) Stellen. Sowohl der Multiplikand X, der Multiplikator Y als auch das Produkt Q sind im allgemeinen durch ein L-Basis-Zahlensystem gegeben, wobei L eine vorgegebene ganze Zahl (Integer) wiedergibt, die nicht kleiner als zwei ist.
Unter diesen Umständen ist der Multiplikand X durch nullte bis (N-1)te Multiplikandenelemente x(0) bis x(N-1) gegeben, die in nullten bis (N-1)ten Stellen angeordnet sind, welche durch L⁰ bis LN-1 spezifiziert sind. Der Multiplikator Y wird durch nullte bis (N-1)te Multiplikatorelemente y(0) bis y(M-1) wiedergegeben, die in nullten bis (M-1)ten Stellen angeordnet sind, welche durch L⁰ bis LM-1 spezifiziert sind. Das Produkt Q ist durch nullte bis (N+M-1)te Produktelemente q(0) bis q(N+M-1) gegeben, die in nullten bis (N+M-1)ten Stellen angeordnet sind, welche durch L⁰ bis LN+M-1 spezifiziert sind.
Die Multiplikationseinrichtung vom unterteilten Produkttyp weist einen Multiplikandenspeicher 11 und einen Multiplikatorspeicher 12 auf. Der Multiplikandenspeicher 11 ist auch nullte bis (N-1)te Multiplikandenadressen Ax(0) bis Ax(N-1) zugewiesen, wohingegen der Multiplikatorspeicher 12 durch nullte bis (M-1)te Multiplikatoradressen Ay(0) bis Ay(M-1) zugewiesen ist. Der Multiplikandenspeicher 11 speichert die nullten bis (N-1)ten Multiplikandenelemente x(0) bis x(N-1) unter den entsprechenden nullten bis (N-1)ten Multiplikandenadressen Ax(0) bis Ax(N-1) ab. Der Multiplikatorspeicher 12 speichert die nullten bis (M-1)ten Multiplikatorelemente y(0) bis y(M-1) unter den entsprechenden nullten bis (M-1) Multiplikatoradressen Ay(0) bis Ay(M-1) ab.
Der Multiplikandenspeicher 11 und der Multiplikatorspeicher 12 sind durch eine Leseeinheit 13 verbunden. Die Leseeinheit 13 liest sukzessive durch sukzessives Ändern einer Eigenzahl k in einer aufsteigenden Reihenfolge von 0 bis (N+M-2) ein i-tes Multiplikandenelement x(i) und ein j-tes Multiplikandenelement y(j) aus einer i-ten Multiplikandenadresse Ax(i) des Multiplikandenspeichers 11 bzw. einer j-ten Multiplikatoradresse Ay(j) des Multiplikatorspeichers 12 aus, wobei i eine erste Variable repräsentiert, die varialbel von 0 bis N-1 ist, einschließlich beider Grenzen, und j eine zweite Variable repräsentiert, die variabel von 0 bis M-1 ist, wobei beide Grenzen eingeschlossen sind. Die Eigenzahl k ist gleich einer Summe aus einer ersten Variablen i und einer zweiten Variablen j.
Der Multiplikandenspeicher 11 und der Multiplikatorspeicher 12 sind mit einer Multiplikationseinheit 14 über erste und zweite Datenleitungen 16 und 17 verbunden. Ein Paar aus dem i-ten Multiplikandenelement x(i) und dem j-ten Multiplikatorelement y(j) wird von dem Multiplikandenspeicher 11 bzw. dem Multiplikatorspeicher 12 über die ersten und zweiten Datenleitungen 16 und 17 der Multiplikationseinheit 14 zugeführt. Deshalb arbeiten die ersten und zweiten Datenleitungen 16 und 17 kollektiv als Erzeugungsanordnung zum hintereinanderfolgenden Erzeugen eines Paares aus einem i-ten Multiplikandenelement x(i) und einem j-ten Multiplikatorelement y(j). Anders ausgedrückt, die ersten und zweiten Datenleitungen 16 und 17 dienen zusammen als Zuführanordnung zum sukzessiven Zuführen zu der Multiplikationseinheit 14 des i-ten Multiplikandenelements x(i) und des j-ten Multiplikatorelements y(j).
Die Multiplikationseinheit 14 berechnet eine Sequenz aus unterteilten Produkten p(x(i), y(j)) des i-ten Multiplikandenelements x(i) und des j-ten Multiplikatorelements y(j). Die Multiplikationseinheit 14 ist als unterteilte Produktberechnungsanordnung ausgelegt.
Die Multiplikationseinheit 14 ist mit einer Akkumulationseinheit 18 verbunden. Die Akkumulationseinheit 18 akkumuliert hintereinanderfolgend die unterteilten Produkte p(x(i), y(j)) auf der Basis der Eigenzahl k durch Auswählen der unterteilten Produkte mit einer gemeinsamen Eigenzahl. Die Akkumulationseinheit 18 erzeugt hintereinanderfolgend das Produkt Q oder ein d-tes Produktelement q(d) in einer aufsteigenden Reihenfolge von dem nullten Produktelement q(0) bis zum (N+M-1)ten Produktelement q (N+M-1).
Ein Produktspeicher 19 ist durch nullte bis (N+M-1)te Produktadressen Aq(0) bis Aq(N+M-1) zum Speichern des Produkts Q zugewiesen. Der Produktspeicher 19 und die Akkumulationseinheit 18 sind mit einer Speichereinheit 20 verbunden. Die Speichereinheit 20 speichert sukzessiverweise die nullten bis (N+M-1)ten Produktelemente 1(0) bis p(N+M-1) unter der nullten bis (N+M-1)ten Produktadresse Aq(0) bis Aq (N+M-1).
Die Multiplikationseinheit 14 kann ein Multiplizierer vom Exponententransformationstyp sein. Der Exponententransformationstyp-Multiplizierer wird mit dem i-ten Multiplikandenelement x(i) und dem j-ten Multiplikatorelement y(j) als ein Paar von Residuen versehen. Wenn notwendig, wird bezüglich eines solchen Exponententransformationstyp-Multiplizierers auf das US-Patent Nr. 43 46 451 verwiesen.
Mit Bezug auf Fig. 2 weist die Multiplikationseinheit, nämlich der Exponententransformationstyp-Multiplizierer 14, ein Multiplikanden-Exponenten-Transformationseinheit 21, eine Multiplikator-Exponenten-Transformationseinheit 22, einen Addierer 23 und eine Invers-Exponenten-Transformationseinheit 24 auf. Die Multiplikanden-Exponenten-Transformationseinheit 21 führt eine Exponententransformation des i-ten Multiplikandenelements x(i) in ein i-tes Primärexponentenelement a(i) durch. Ähnlicherweise führt die Multiplikator-Exponenten-Transformationseinheit 22 die Exponententransformation eines j-ten Multiplikatorelements y(j) in ein j-tes Sekundär-Exponentenelement b(j) durch. Das i-te Primärexponentenelement a(i) und das j-te Sekundärexponentenelement b(j) werden zu Modulo-L² durch den Addierer 23 aufsummiert. Der Addierer 23 erzeugt eine Exponentensumme (a(i)+b(j) mod L² des i-ten Primärexponentenelements a(i) und des j-ten Sekundärexponentenelements b(j). Die Exponentensumme (a(i)+b(j)) mod L² wird der Invers-Exponententransformationseinheit 24 zugeführt. Die Invers-Exponententransformationseinheit 24 führt eine inverse Exponententransformation der Exponentensumme (a(i)+b(j)) mod L² bezüglich des unterteilten Produkts p(x(i), y(j)) durch.
Die Multiplikanden-Exponenten-Transformationseinheit 21 und die Multiplikator-Exponententransformationseinheit 22 führen eine Exponententransformation gemäß Tabelle 1 durch. Tabelle 1 zeigt die entsprechenden Beziehungen zwischen den Residuen und den Exponenten, wobei die vorgegebene ganze Zahl L gleich 10 ist. Die Invers-Exponententransformationseinheit 24 führt die inverse Exponententransformation gemäß Tabelle 2 aus. Tabelle 2 zeigt die Korrespondenzen zwischen Exponenten und Residuen.
Zum Beispiel, wenn das i-te Multiplikandenelement x(i) bzw. das j-te Multiplikatorelement y(j) gleich sieben bzw. gleich 9 sind, sind das i-te Primärexponentenelement a(i) bzw. das j-te Sekundärexponentenelement b(j) 9 bzw. 38, wie es aus Tabelle 1 ersichtlich ist. Die Exponentensumme (a(i)+b(j)) mod L² ist gleich 47. Deshalb ist das unterteilte Produkt p(x(i), y(j)) gleich 63, wie es aus der Tabelle 2 hervorgeht.
Natürlich kann die Multiplikationseinheit 14 ein bekannter Multiplizierer sein, z. B. der oben erwähnte 32-Bit-Multiplizierer sein, z. B. der oben erwähnte 32-Bit-Multiplizierer-Prozessor. In diesem Fall ist die vorgegebene ganze Zahl L gleich 2³².
Nach Fig. 3 weist die Akkumulationseinheit 18 ein MD-Register 26, einen Addierer 27, ein ACC-Register 28 und ein MQ-Register 29 auf. Das ACC-Register 28 und das MQ-Register 29 sind miteinander verbunden und arbeiten als ein großes Schieberegister zusammen. Das ACC-Register 28 und das MQ-Register 29 werden zusammen als ACC-MQ-Register bezeichnet. Das MD-Register 26 wird hintereinanderfolgend mit den unterteilten Produkten p(x(i), y(j)) von der Multiplikationseinheit 14 (Fig. 1) geladen. Das MD-Register 26 ist mit einem linksseitigen Eingangsanschluß des Addierers 27 verbunden. Der Addierer 27 hat einen Ausgangsanschluß, der mit dem ACC-MQ-Register verbunden ist. Das ACC-MQ-Register ist mit einem rechtsseitigen Eingangsanschluß des Addierers 27 verbunden. Das ACC-MQ-Register wird mit einem rechten Schiebeimpuls (RS) in der Art und Weise, wie sie weiter unten beschrieben wird, angesteuert.
Um einen Akkumulationsbetrieb zu beginnen, wird das ACC-MQ-Register gecleart bzw. gelöscht oder auf null gesetzt.
In einer ersten Stufe bzw. bei einem ersten Schritt wird das MD-Register 26 mit dem unterteilten Produkt p(x(0), y(0)) geladen. Die Inhalte des MD-Registers 26 und die Inhalte des ACC-MQ-Registers werden von dem Addierer 27 addiert. Die sich ergebende Summe wird in das ACC-MQ-Register zurückplaziert. Danach wird der rechte Schiebeimpuls angelegt, und das ACC-MQ-Register wird nach rechts um eine Stelle verschoben. Im Ergebnis werden die Inhalte des MQ-Registers 29 als nulltes Produktelement q(0) herausgeschoben, und eine niedrigste Ziffer bzw. Stelle des ACC-Registers 28 wird in das MQ-Register 29 als dessen neue Inhalte geladen.
Der nächste oder der zweite Schritt beginnt. Das MD-Register 26 wird mit dem unterteilten Produkt p(x(1), y(0)) geladen. Die Inhalte des MD-Registers 26 und die Inhalte des ACC-MQ-Registers werden von dem Addierer 27 addiert. Die sich ergebende Summe wird zurück in das ACC-MQ-Register geschickt. Danach wird das MD-Register 26 mit dem unterteilten Produkt p(x(0), y(1)) geladen. Die Inhalte des MD-Registers 26 und die Inhalte des ACC-MQ-Registers werden von dem Addierer 27 addiert. Die sich ergebende Summe wird zurück in das ACC-MQ-Register gegeben. Deshalb wird eine Akkumulation bezüglich der unterteilten Produkte p(x(1), y(0)) und p(x(0), y(1)) ausgeführt, die gemeinsam die Eigenzahl k gleich Eins haben. Wenn der rechte Schiebeimpuls zugeführt wird, wird das ACC-MQ-Register um eine Stelle nach rechts verschoben. Im Ergebnis werden die Inhalte des MQ-Registers 29 als erstes Produktelement p(1) herausgeschoben, und eine niedrigste Stelle des ACC-Registers 28 wird in das MQ-Register 29 als dessen neuer Inhalt geladen.
Ein ähnlicher Betrieb wird wiederholt, bis die unterteilten Produkte p(x(N-1), y(M-1)) abgearbeitet worden sind. Die Beschreibung schreitet nun zu dem praktischen Betrieb der Multiplikationseinrichtung fort, soweit dieser mit Bezug auf die Fig. 1 und 3 beschreibbar ist. Es wird folgendes angenommen. Die erste vorgegebene natürliche Zahl N ist gleich 3. Die zweite vorgegebene natürliche Zahl M ist gleich der ersten vorgegebenen natürlichen Zahl N. Die vorgegebene ganze Zahl L ist gleich 10. Die Multiplikationseinrichtung berechnet das Produkt aus dem Multiplikanden X und dem Multiplikator Y, die gleich Dezimal 456 bzw. 789 sind. Das MQ-Register 29 ist ein 4-Bit-Register, wohingegen das ACC-Register 28 ein 16-Bit-Register ist.
In dem dargestellten Beispiel ist der Multiplikand X durch ein nulltes bis zweites Multiplikandenelement x(0) bis x(2) wiedergegeben, die gegeben sind durch:
x(0) = 6,
x(1) = 5,
x(2) = 4.
In ähnlicher Weise ist der Multiplikator Y durch nullte bis zweite Multiplikatorelemente y(0) bis y(2) gegeben, welche gegeben sind durch:
y(0) = 9,
y(1) = 8,
y(2) = 7.
Durch den Einsatz der Multiplikationseinheit 14 sind unterteilte Produkte p(x(0), y(0)), p(x(1), y(0)), p(x(0), y(1)), p(x(0), y(2)), p(x(1), y(1)), p(x(2), y(0)), p(x(2), y(1)), p(x(1), y(2)) und p(x(2), y(2)) hintereinanderfolgend gegeben durch:
p(x(0), y(0)) = 54,
p(x(1), y(0)) = 45,
p(x(0), y(1)) = 48,
p(x(0), y(2)) = 42,
p(x(1), y(1)) = 40,
p(x(2), y(0)) = 36,
p(x(2), y(1)) = 32,
p(x(1), y(2)) = 35 und
p(x(2), y(2)) = 28.
Um die Akkumulationsoperation zu beginnen, wird das ACC-MQ-Register gecleart; das heißt:
ACC-MQ 0 0 0 0 0.
In dem ersten Schritt der Akkumulationsoperation wird das unterteilte Produkt p(x(0), y(0)) oder vierundfünfzig zu den Inhalten des ACC-MQ-Registers oder null hinzuaddiert und die sich daraus ergebende Summe wird zurück ins ACC-MQ-Register geladen; das heißt:
ACC-MQ 0 0 0 5 4.
Wenn der rechte Schiebeimpuls angelegt wird, wird das ACC-MQ-Register nach rechts um eine Stelle verschoben und dann wird das nullte Produktelement p(0), nämlich vier, aus dem MQ-Register 29 herausgeschoben; das heißt:
ACC-MQ 0 0 0 0 5. =< 4 p(0) = 4.
In einem zweiten Schritt der Akkumulationsoperation wird das unterteilte Produkt p(x(1), y(0)) oder fünfundvierzig zu den Inhalten des ACC-MQ-Registers oder fünf hinzuaddiert und die sich ergebende Summe wird zurück ins ACC-MQ-Register geladen; das heißt:
ACC-MQ 0 0 0 5 0.
Danach wird das unterteilte Produkt p(x(0), y(1)) oder achtundvierzig zu den Inhalten des ACC-MQ-Registers oder fünfzig hinzuaddiert, und die sich daraus ergebende Summe wird zurück ins ACC-MQ-Register gegeben; das heißt:
ACC-MQ 0 0 0 9 8.
Wenn der rechte Schiebeimpuls zugeführt wird, wird das ACC-MQ-Register nach rechts um eine Stelle geschoben, und dann wird das erste Produktelement p(1), nämlich acht, aus dem MQ-Register 29 herausgeschoben; das heißt:
ACC-MQ 0 0 0 0 9. =<8 p(1) = 8.
Bei einem dritten Schritt der Akkumulationsoperation wird das unterteilte Produkt p(x(0), y(2)) oder zweiundvierzig zu den Inhalten des ACC-MQ-Registers oder neun hinzuaddiert, und die sich daraus ergebende Summe wird zurück ins ACC-MQ-Register geladen; das heißt:
ACC-MQ 0 0 0 5 1.
Danach wird das unterteilte Produkt p(x(1), y(1)) oder vierzig zu den Inhalten des ACC-MQ-Registers oder einundfünfzig hinzuaddiert, und die sich ergebende Summe wird zurück in das ACC-MQ-Register gegeben; das heißt:
ACC-MQ 0 0 0 9 1.
Danach wird das unterteilte Produkt p(x(2), y(0)) oder sechsunddreißig den Inhalten des ACC-MQ-Registers oder einundneunzig hinzuaddiert, und das sich daraus ergebende Ergebnis wird zurück in das ACC-MQ-Register geladen; das heißt:
ACC-MQ 0 0 1 2 7.
Wird ein rechter Schiebeimpuls zugeführt, wird das ACC-MQ-Register nach rechts um eine Stelle verschoben, und dann wird das zweite Produktelement p(2), nämlich sieben, aus dem MQ-Register 29 herausgeschoben; das heißt:
ACC-MQ 0 0 0 1 2. =<7 p(2) = 7.
Bei einem vierten Schritt der Akkumulationsoperation wird das unterteilte Produkt p(x(2), y(1)) oder zweiunddreißig den Inhalten des ACC-MQ-Registers oder zwölf hinzuaddiert, und die sich daraus ergebende Summe wird zurück ins ACC-MQ-Register gegeben; das heißt:
ACC-MQ 0 0 0 4 4.
Danach wird das unterteilte Produkt p(x(1), y(2)) oder fünfunddreißig den Inhalten des ACC-MQ-Registers oder vierundvierzig hinzuaddiert, und die sich ergebende Summe wird zurück ins ACC-MQ-Register gegeben; das heißt:
ACC-MQ 0 0 0 7 9.
Wenn ein rechter Schiebeimpuls zugeführt wird, wird das ACC-MQ-Register nach rechts um eine Stelle verschoben, und dann wird das dritte Produktelement p(3), nämlich neun, aus dem MQ-Register herausgeschoben; das heißt:
ACC-MQ 0 0 0 0 7. =<9 q(3) = 9.
Bei einem fünften Schritt der Akkumulationsoperation wird das unterteilte Produkt p(x(2), y(2)) oder achtundzwanzig den Inhalten des ACC-MQ-Registers oder sieben hinzuaddiert, und die sich daraus ergebende Summe wird zurück ins ACC-MQ-Register gegeben; das heißt:
ACC-MQ 0 0 0 3 5.
Wenn der rechte Schiebeimpuls zugeführt wird, wird das ACC-MQ-Register nach rechts um eine Stelle verschoben, und dann wird das vierte Produktelement p(4), nämlich 5, aus dem MQ-Register 29 herausgeschoben; das heißt:
ACC-MQ 0 0 0 0 3. =5 q(4) = 5.
Bei einem sechsten und letzten Schritt der Akkumulationsoperation wird, wenn der rechte Schiebeimpuls zugeführt wird, das ACC-MQ-Registers nach rechts um eine Stelle verschoben, und dann wird das fünfte Produktelement p(5), nämlich drei, aus dem MQ-Register herausgeschoben; das heißt:
ACC-MQ 0 0 0 0 0. =3 q(5) = 3.
Im Ergebnis ist das Produkt Q gleich der Dezimalzahl 359 784.
Nach Fig. 4 weist die Leseeinheit 13 erste und zweite Aufwärts/Abwärts-Zähler 31 und 32, erste bis vierte Komparatoren 36, 37, 38 und 39 und einen Kontroller 40 auf. Es wird folgendes angenommen: Die nullten bis (N-1)ten Multiplikandenadressen Ax(0) bis Ax(N-1) sind entsprechend gleich null bis (N-1). Die nullten bis (M-1)ten Multiplikatoradressen Ay(0) bis Ay(M-1) sind entsprechend gleich null bis (M-1).
Der erste Aufwärts/Abwärts-Zähler 31 wird anfänglich mit null geladen und führt einen Aufwärts/Abwärts-Zählbetrieb unter der Steuerung des Kontrollers 40 durch. Der erste Aufwärts/Abwärts-Zähler 31 führt die i-te Multiplikandenadresse Ax(i) oder i dem Multiplikandenspeicher 11 (Fig. 1) zu. In ähnlicher Weise wird der zweite Aufwärts/Abwärts-Zähler anfänglich mit null geladen und führt einen anderen Aufwärts/Abwärts-Zählbetrieb unter der Steuerung des Controllers 40 durch. Der zweite Aufwärts/Abwärts-Zähler 32 führt die j-te Multiplikatoradresse Ay(j) oder j dem Multiplikatorspeicher 12 (Fig. 1) zu.
Dem ersten Komparator 36 und dem zweiten Komparator 37 werden jeweils null zugeführt. Die ersten und zweiten Komparatoren 36 und 37 werden mit den i-ten Multiplikandenadressen Ax(i) und der j-ten Multiplikatoradresse Ay(j) von dem ersten bzw. zweiten Aufwärts/Abwärts-Zählern 31 bzw. 32 versorgt. Der erste Komparator 36 vergleicht die i-te Multiplikandenadresse Ax(i) oder i mit null. Der erste Komparator 36 führt dem Kontroller 40 ein erstes Koinzidenzsignal zu, wenn die i-te Multiplikandenadresse Ax(i) oder i mit null zusammentrifft. Ähnlich vergleicht der zweite Komparator 37 die j-te Multiplikatoradresse Ay(j) oder j mit null. Der zweite Komparator 37 führt dem Kontroller 40 ein zweites Koinzidenzsignal zu, wenn die j-te Multiplikatoradresse Ay(j) oder j mit null koinzidiert.
Die dritten und vierten Komparatoren 38 und 39 werden mit i-ten Multiplikandenadressen Ax(i), nämlich i, bzw. den j-ten Multiplikatoradressen Ay(j), nämlich j, von dem ersten Aufwärts/Abwärts-Zähler 31 bzw. dem zweiten Aufwärts/Abwärts-Zähler 32 versorgt. Die dritten und vierten Komparatoren 38 und 39 werden mit (N-1) bzw. (M-1) versehen. Der dritte Komparator 38 vergleicht die i-te Multiplikandenadresse Ax(i) oder i mit (N-1). Der dritte Komparator 38 führt dem Kontroller 40 ein drittes Koinzidenzsignal zu, wenn die i-te Multiplikandenadresse Ax(i) oder i mit (N-1) zusammentrifft. Ähnlicherweise vergleicht der vierte Komparator 39 die j-te Multiplikatoradresse Ay(j) oder j mit (M-1). Der vierte Komparator 39 führt dem Kontroller 40 ein viertes Koinzidenzsignal zu, wenn die j-te Multiplikatoradresse Ay(j) oder j mit (M-1) zusammentrifft.
Der mit den ersten bis vierten Koinzidenzsignalen versehene Kontroller 40 steuert auf der Basis der Eigenzahl k die Aufwärts/Abwärts-Zähloperationen der ersten und zweiten Aufwärts/Abwärts-Zähler 31 und 32 auf eine Art und Weise, wie sie nachfolgend beschrieben wird.
Fig. 5 zeigt eine Adreßzuordnung, die dazu verwendet wird, den Betrieb der Leseeinheit 13, die in Fig. 4 angegeben ist, zu beschreiben. In der dargestellten Adressenzuordnung ist die i-te Multiplikandenadresse Ax(i), nämlich i, variabel zwischen null und (N-1), wie es entsprechend durch die ersten bis N-ten Reihen in der Adressenzuordnung angegeben ist. Ähnlich ist die j-te Multiplikatoradresse Ay(j), nämlich j, zwischen 0 und (M-1) variabel, wie es entsprechend mit den ersten bis M-ten Spalten in der Adressenanordnung angegeben ist.
Wie oben beschrieben worden ist, führt die Leseeinheit 13 die i-te Multiplikandenadresse Ax(i) oder i und die j-te Multiplikatoradresse Ay(j) oder j dem Multiplikandenspeicher 11 bzw. dem Multiplikatorspeicher 12 zu.
Im Fall, wo die Eigenzahl k gleich null ist, setzt der Kontroller 40 anfänglich beide ersten und zweiten Aufwärts/Abwärts-Zähler 31 und 32 auf null. Deshalb erzeugt der erste Aufwärts/Abwärts-Zähler 31 null und der zweite Aufwärts/Abwärts-Zähler 32 null als i-te Multiplikandenadresse Ax(i) bzw. als j-te Multiplikatoradresse Ay(j), wie es in der ersten Reihe und der ersten Spalte der Adressenzuordnung gezeigt wird. In diesem Fall erzeugen die ersten und zweiten Komparatoren 36 und 37 die ersten und zweiten Koinzidenzsignale. In Antwort auf das erste Koinzidenzsignal und das zweite Koinzidenzsignal inkrementiert der Kontroller 40 die Eigenzahl k um 1. Im Ergebnis ist die Eigenzahl k gleich 1.
Wenn die Eigenzahl k gleich eins ist, veranlaßt der Kontroller 40 den ersten Aufwärts/Abwärts-Zähler 31, um eins aufwärts zu wählen. Deshalb erzeugen der erste Aufwärts/Abwärts-Zähler 31 und der zweite Aufwärts/Abwärts-Zähler 32 eins bzw. null als i-te Multiplikandenadresse Ax(i) bzw. als j-te Multiplikatoradresse Ay(j), wie es in der zweiten Reihe und der ersten Spalte der Adreßzuordnung gezeigt wird. In diesem Fall erzeugt der zweite Komparator 37 das zweite Koinzidenzsignal.
In Antwort auf das zweite Koinzidenzsignal veranlaßt der Kontroller 40 die ersten und zweiten Aufwärts/Abwärts-Zähler 31 und 32 abwärts bzw. aufwärts um eins zu zählen. Deshalb erzeugt der erste bzw. der zweite Aufwärts/Abwärts-Zähler 31 und 32 null bzw. eins als i-te Multiplikandenadresse Ax(i) bzw. als j-te Multiplikatoradresse Ay(j), wie es in der ersten Reihe und der zweiten Spalte der Adressenzuordnung gezeigt wird. In diesem Fall erzeugt der erste Komparator 36 das erste Koinzidenzsignal. In Antwort auf das erste Koinzidenzsignal inkrementiert der Kontroller 40 die Eigenzahl k um eins. Als Ergebnis ist die Eigenzahl k gleich zwei.
Wenn die Eigenzahl k gleich zwei ist, veranlaßt der Kontroller 40 den zweiten Aufwärts/Abwärts-Zähler 31, um eins aufwärts zu zählen. Deshalb erzeugt der erste bzw. zweite Aufwärts/Abwärts-Zähler 31 bzw. 32 null bzw. zwei als i-te Multiplikandenadresse Ax(i) bzw. als j-te Multiplikatoradresse Ay(j), wie in der ersten Reihe und der dritten Spalte der Adressenzuordnung gezeigt wird. In diesem Fall erzeugt der erste Komparator 36 das erste Koinzidenzsignal. In Antwort auf das erste Koinzidenzsignal veranlaßt der Kontroller 40 den ersten bzw. zweiten Aufwärts/Abwärts-Zähler 31 bzw. 32 aufwärts bzw. abwärts um eins zu zählen. Deshalb erzeugen der erste bzw. der zweite Aufwärts/Abwärts-Zähler 31 bzw. 32 eins bzw. eins als i-te Multiplikandenadresse Ax(i) bzw. als j-te Multiplikatoradresse Ay(j), wie es in der zweiten Reihe und der zweiten Spalte der Adressenzuordnung gezeigt wird. Insoweit wie der Kontroller 40 mit keinem der ersten bis vierten Koinzidenzsignale versehen wird, veranlaßt der Kontroller 40 den ersten bzw. den zweiten Aufwärts/Abwärts-Zähler 31 bzw. 32 dazu, aufwärts bzw. abwärts um eins zu zählen. Deshalb erzeugen der erste bzw. der zweite Aufwärts/Abwärts-Zähler 31 bzw. 32 zwei bzw null als i-te Multiplikandenadresse Ax(i) bzw. als j-te Multiplikatoradresse Ay(j), wie es in der dritten Reihe und der ersten Spalte der Adressenzuordnung gezeigt wird. In diesem Fall erzeugt der zweite Komparator 37 das zweite Koinzidenzsignal. In Antwort auf das zweite Koinzidenzsignal inkrementiert der Kontroller 40 die Eigenzahl k um 1. Im Ergebnis ist die Eigenzahl k gleich 3.
Ein ähnlicher Betrieb wird wiederholterweise ausgeführt. In Antwort auf das dritte Koinzidenzsignal inkrementiert der Kontroller 40 die Eigenzahl k um 1 und veranlaßt den ersten bzw. den zweiten Aufwärts/Abwärts-Zähler 31 bzw. 32 abwärts bzw. aufwärts um eins zu zählen. In Antwort auf das vierte Koinzidenzsignal inkrementiert der Kontroller 40 die Eigenzahl k um eins und veranlaßt den ersten bzw. zweiten Aufwärts/Abwärts-Zähler 31 bzw. 32 aufwärts bzw. abwärts um eins zu zählen.
Schließlich erzeugen die ersten bzw. zweiten Aufwärts/Abwärts-Zähler 31 bzw. 32 (N-1) bzw. (M-1) als i-te Multiplikandenadresse Ax(i) bzw. als j-te Multiplikatoradresse Ay(i), wie in der N-ten Reihe und der M-ten Spalte der Adressenzuordnung gezeigt wird. Wie aus der oben angegebenen Beschreibung ersichtlich ist, erzeugt die Leseeinheit 13 hintereinanderfolgend ein Paar aus i-ten Multiplikandenadressen Ax(i) oder i und j-ten Multiplikatoradressen Ay(j) oder j entlang eines Weges bzw. Trajektors, wie er mit dem Pfeil in der Adressenzuordnung angegeben ist.
Tabelle 1
Residuum =< Exponent
Tabelle 2
Exponent =< Residuum

Claims (7)

1. Multiplikationseinrichtung zum Multiplizieren eines Multiplikanden X mit einem Multiplikator Y, um ein Produkt Q aus dem Multiplikanden X und dem Multiplikator Y zu erzeugen, wobei der Multiplikand X und N Stellen besteht und durch nullte bis (N-1)te Multiplikandenelemente x(0) bis x(N-1) wiedergegeben ist, die in nullten bis (N-1)ten Stellen angeordnet sind, welche entsprechend durch L⁰ bis LN-1 spezifiziert sind, wobei N eine erste vorgegebene natürliche Zahl und L eine vorgegebene ganze Zahl repräsentieren, die nicht kleiner als zwei ist, und wobei der Multiplikator Y aus M Stellen besteht und durch nullte bis (M-1)te Multiplikatorelemente y(0) bis y(M-1) gegeben ist, die in nullten bis (M-1)ten Stellen angeordnet sind, welche entsprechend durch L⁰ bzw. LM-1 spezifiziert sind, wobei M eine zweite vorgegebene natürliche Zahl repräsentiert, und wobei das Produkt Q aus (N+M) Stellen besteht und repräsentiert ist durch nullte bis (N+M-1)te Produktelemente q(0) bis q(N+M-1), die in nullten bis (N+M-1)ten Stellen angeordnet sind, welche entsprechend durch L⁰ bis L(N+M-1) spezifiziert sind, wobei die Multiplikationseinrichtung aufweist:
eine Berechnungseinrichtung für unterteilte Produkte, der der Multiplikand X und der Multiplikator Y zum Berechnen einer Sequenz aus unterteilten Produkten p(x(i), y(j)) eines i-ten Multiplikandenelements x(i) und eines j-ten Multiplikatorelements y(i) zugeführt werden, wobei i eine erste Variable repräsentiert, die variabel von null bis (N-1) mit beiden Grenzwerten inklusive ist, und j eine zweite Variable repräsentiert, die variabel von null bis (M-1) mit beiden Grenzwerten inklusive ist, wobei die unterteilten Produkte p(x(i), y(j)) durch hintereinanderfolgendes Ändern einer Eigenzahl k berechnet werden, die gleich einer Summe aus der ersten Variablen i und der zweiten Variablen j ist; und
eine Akkumulationseinrichtung, die mit der Berechnungseinrichtung für unterteilte Produkte verbunden ist, zum hintereinanderfolgenden Akkumulieren der unterteilten Produkte p(x(i), y(j)) auf der Basis der Eigenzahl k, indem die unterteilten Produkte ausgewählt werden, die eine gemeinsame Eigenzahl haben, wobei die Akkumulationseinrichtung hintereinanderfolgend das Produkt Q in einer aufsteigenden Reihenfolge von einem nullten Produktelement q(0) bis zu einem (N+M-1)ten Produktelement q(N+M-1) erzeugt.
2. Multiplikationseinrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Berechnungseinrichtung für unterteilte Produkte weiterhin aufweist:
eine Multiplikanden-Exponenten-Transformationseinrichtung, der das i-te Multiplikandenelement x(i) zum Durchführen einer Exponententransformation des i-ten Multiplikandenelements x(i) in ein i-tes Primärexponentenelement a(i) zugeführt wird,
eine Multiplikator-Exponenten-Transformationseinrichtung, der das j-te Multiplikatorelement y(j) zum Durchführen der Exponententransformation des j-ten Multiplikatorelements y(j) in ein j-tes Sekundärexponentenelement b(j) zugeführt wird,
eine Modulo-L²-Summiereinrichtung, die mit der Multiplikanden-Exponenten-Transformationseinrichtung und der Multiplikator-Exponenten-Transformationseinrichtung zum Berechnen einer Modulo-L²-Summe des i-ten Primärexponentenelements a(i) und des j-ten Sekundärexponentenelements b(j) verbunden ist, um eine Exponentensumme (a(i)+b(j)) mod L² zu erzeugen, die die Modulo-L²-Summe angibt, und
eine Invers-Exponenten-Transformationseinrichtung, die mit der Modulo-L²-Summiereinrichtung zum Durchführen einer inversen Exponententransformation der Exponentensumme (a(i)+b(j)) mod L² in das unterteilte Produkt p(x(i), y(j)) verbunden ist.
3. Multiplikationseinrichtung nach Anspruch 1, gekennzeichnet durch:
eine Multiplikandenspeichereinrichtung, die durch nullte bis (N-1)te Multiplikandenadressen zugewiesen wird und mit der Berechnungseinrichtung für unterteilte Produkte zum Speichern der nullten bis (N-1)ten Multiplikandenelemente x(0) bis x(N-1) unter der entsprechenden nullten bis (N-1)ten Multiplikandenadresse verbunden ist,
eine Multiplikatorspeichereinrichtung, die der nullten bis (M-1)ten Multiplikatoradresse zugewiesen ist und die mit der Berechnungseinrichtung für unterteilte Produkte zum Speichern der nullten bis (M-1)ten Multiplikatorelemente y(0) bis y(M-1) unter der entsprechenden nullten bis (M-1)ten Multiplikatoradresse verbunden ist, und
eine Leseeinrichtung, die mit der Multiplikandenspeichereinrichtung und der Multiplikatorspeichereinrichtung zum hintereinanderfolgenden Lesen mit Bezug auf die Eigenzahl k des i-ten Multiplikandenelements x(i) und des j-ten Multiplikatorelements y(j) aus einer i-ten Multiplikandenadresse der Multiplikandenspeichereinrichtung bzw. einer j-ten Multiplikatoradresse der Multiplikatorspeichereinrichtung verbunden ist, und
eine Zuführeinrichtung, die mit der Multiplikandenspeichereinrichtung, der Multiplikatorspeichereinrichtung und der Berechnungseinrichtung für unterteilte Produkte zum hintereinanderfolgenden Zuführen des i-ten Multiplikandenelements x(i) bzw. des j-ten Multiplikatorelements y(j) von der Multiplikandenspeichereinrichtung bzw. der Multiplikatorspeichereinrichtung zu der Berechnungseinrichtung für unterteilte Produkte verbunden ist.
4. Multiplikationseinrichtung nach Anspruch 1, gekennzeichnet durch:
eine Produktspeichereinrichtung, die durch nullte bis (N+M-1)te Produktadressen zugewiesen wird, zum Speichern des Produkt Q und
eine Speichereinrichtung, die mit der Produktspeichereinrichtung und der Akkumulationseinrichtung zum hintereinanderfolgenden Speichern der nullten bis (N+M-1)ten Produktelemente q(0) bis q(N+M-1) in der nullten bis (N+M-1)ten Produktadresse der Produktspeichereinrichtung verbunden ist.
5. Multiplikationseinrichtung zum Multiplizieren eines Multiplikanden X mit einem Multiplikator Y, um ein Produkt Q aus einem Multiplikanden X und einem Multiplikator y zu erzeugen, wobei der Multiplikand X aus N Stellen bzw. Ziffern besteht und durch nullte bis (N-1)te Multiplikandenelemente x(0) bis x(N-1) repräsentiert wird, die in nullten bis (N-1)ten Stellen angeordnet sind, welche durch L⁰ bis LN-1 spezifiziert sind, wobei N eine erste vorgegebene natürliche Zahl und L eine vorgegebene ganze Zahl repräsentieren, die nicht kleiner als zwei ist, wobei der Multiplikator Y aus M Ziffern bzw. Stellen besteht und durch nullte bis (N-1)te Multiplikatorelemente y(0) bis y(M-1) repräsentiert wird, die in nullten bis (M-1)ten Stellen angeordnet sind, welche durch jeweils L⁰ bis LM-1 spezifiziert sind, wobei M eine zweite vorgegebene natürliche Zahl repräsentiert, und wobei das Produkt Q aus (N+M) Stellen bzw. Ziffern besteht und durch nullte bis (N+M-1)te Produktelemente q(0) bis q(N+M-1) repräsentiert wird, die in nullten bis (N+M-1)ten Stellen angeordnet sind, welche durch L⁰ bis LN+M-1 jeweils spezifiziert werden, wobei die Multiplikationseinrichtung aufweist:
eine Multiplikandenspeichereinrichtung, die durch nullte bis (N-1)te Multiplikandenadressen zugewiesen wird, zum Speichern der nullten bis (N-1)ten Multiplikandenelemente x(0) bis x(N-1) unter den nullten bis (N-1)ten Multiplikandenadressen,
eine Multiplikatorspeichereinrichtung, die durch nullte bis (N-1)te Multiplikatoradressen zugewiesen wird, zum Speichern der nullten bis (M-1)ten Multiplikatorelemente y(0) bis y(M-1) unter der nullten bis (M-1)ten Multiplikatoradressen und
eine Leseeinrichtung, die mit der Multiplikandenspeichereinrichtung und der Multiplikatorspeichereinrichtung zum hintereinanderfolgenden Auslesen durch hintereinanderfolgendes Ändern einer Eigenzahl k in aufsteigender Reihenfolge von null bis (N+M-2) eines i-ten Multiplikandenelements x(i) und eines j-ten Multiplikatorelements y(j) aus einer i-ten Multiplikandenadresse der Multiplikandenspeichereinrichtung und einer j-ten Multiplikatoradresse der Multiplikatorspeichereinrichtung verbunden ist, wobei i eine erste Variable repräsentiert, die von null bis (N-1) inklusive beider Grenzen variabel ist, und wobei j eine zweite Variable repräsentiert, die variabel von null bis (M-1) inklusive beider Grenzen ist und wobei die Eigenzahl k gleich der Summe aus der ersten Variablen i und der zweiten Variablen j ist,
eine Erzeugungseinrichtung, die mit der Multiplikandenspeichereinrichtung und der Multiplikatorspeichereinrichtung zum hintereinanderfolgenden Erzeugen eines Paares aus dem i-ten Multiplikandenelement x(i) und dem j-ten Multiplikatorelement y(j) verbunden ist,
eine Berechnungseinrichtung für ein unterteiltes Produkt, die mit der Erzeugungseinrichtung zum Berechnen einer Sequenz aus unterteilten Produkten p(x(i), y(j)) aus dem i-ten Multiplikandenelement x(i) und dem j-ten Multiplikatorelement y(j) verbunden ist, und
eine Akkumulationseinrichtung, die mit der Berechnungseinrichtung für unterteilte Produkte zum hintereinanderfolgenden Akkumulieren der unterteilten Produkte p(x(i), y(j)) auf der Basis der Eigenzahl k durch Auswählen der unterteilten Produkte verbunden ist, die eine gemeinsame Eigenzahl haben, wobei die Akkumulationseinrichtung hintereinanderfolgend das Produkt Q in einer aufsteigenden Reihenfolge vom nullten Produktelement q(0) bis zum (N+M-1)ten Produktelement q(N+M-1) erzeugt,
6. Multiplikationseinrichtung nach Anspruch 5, dadurch gekennzeichnet, daß die Berechnungseinrichtung für unterteilte Produkte aufweist:
eine Multiplikanden-Exponenten-Transformationseinrichtung, der das i-te Multiplikandenelement x(i) zum Durchführen einer Exponententransformation des i-ten Multiplikandenelements x(i) in ein i-tes Primärexponentenelement a(i) zugeführt wird,
eine Multiplikator-Exponenten-Transformationseinrichtung, der das j-te Multiplikatorelement y(j) zum Durchführen der Exponententransformation des j-ten Multiplikatorelements y(j) zu einem j-ten Sekundärexponentenelement b(j) zugeführt wird,
eine Modulo-L²-Summiereinrichtung, die mit der Multiplikanden-Exponenten-Transformationseinrichtung und der Multiplikator-Exponenten-Transformationseinrichtung zum Berechnen einer Modulo-L²-Summe aus dem i-ten Primärexponentenelement a(i) und dem j-ten Sekundärexponentenelement b(j) verbunden ist, um eine Exponentensumme (a(i)+b(j)) mod L² zu erzeugen, die die Modulo-L²-Summe angibt, und
eine Invers-Exponenten-Transformationseinrichtung, die mit der Modulo-L²-Summiereinrichtung zum Durchführen einer inversen Exponententransformation der Exponentensumme (a(i)+b(j) mod L² in das unterteilte Produkt p(x(i), y(j)) verbunden ist.
7. Multiplikationseinrichtung nach Anspruch 5, gekennzeichnet durch:
eine Produktspeichereinrichtung, die durch nullte bis (N+M-1)te Produktadressen zum Speichern des Produkts Q zugewiesen wird, und
eine Speichereinrichtung, die der Produktspeichereinrichtung und der Akkumulationseinrichtung zum hintereinanderfolgenden Speichern der nullten bis (N+M-1)ten Produktelemente q(0) bis q(N+M-1) in entsprechenden nullten bis (N+M-1)ten Produktadressen der Produktspeichereinrichtung verbunden ist.
DE19914123186 1990-07-13 1991-07-12 Multiplikationseinrichtung vom typ fuer unterteilte produkte, die zum ausfuehren einer multiplikation numerischer werte mit vielen stellen bei hoher genauigkeit faehig ist Withdrawn DE4123186A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP18407690 1990-07-13

Publications (1)

Publication Number Publication Date
DE4123186A1 true DE4123186A1 (de) 1992-01-23

Family

ID=16146970

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19914123186 Withdrawn DE4123186A1 (de) 1990-07-13 1991-07-12 Multiplikationseinrichtung vom typ fuer unterteilte produkte, die zum ausfuehren einer multiplikation numerischer werte mit vielen stellen bei hoher genauigkeit faehig ist

Country Status (1)

Country Link
DE (1) DE4123186A1 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0967544A2 (de) * 1998-06-25 1999-12-29 Texas Instruments Incorporated Digitaler Signalprozessor für Daten mit grosser Bitlänge
CN112292663A (zh) * 2018-06-19 2021-01-29 罗伯特·博世有限公司 使至少两个被乘数相乘的计算单元、方法和计算机程序

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2142636B2 (de) * 1971-08-25 1978-12-07 Siemens Ag, 1000 Berlin Und 8000 Muenchen Rechenwerk für die Durchführung digitaler Multiplikationen
DE3636106A1 (de) * 1985-10-23 1987-04-23 Mitsubishi Electric Corp Digitaler signalprozessor

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2142636B2 (de) * 1971-08-25 1978-12-07 Siemens Ag, 1000 Berlin Und 8000 Muenchen Rechenwerk für die Durchführung digitaler Multiplikationen
DE3636106A1 (de) * 1985-10-23 1987-04-23 Mitsubishi Electric Corp Digitaler signalprozessor

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
IBM Techn. Disclos. Bull., Vol. 17, No. 8, Jan. 1971 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0967544A2 (de) * 1998-06-25 1999-12-29 Texas Instruments Incorporated Digitaler Signalprozessor für Daten mit grosser Bitlänge
EP0967544A3 (de) * 1998-06-25 2001-02-14 Texas Instruments Incorporated Digitaler Signalprozessor für Daten mit grosser Bitlänge
CN112292663A (zh) * 2018-06-19 2021-01-29 罗伯特·博世有限公司 使至少两个被乘数相乘的计算单元、方法和计算机程序
CN112292663B (zh) * 2018-06-19 2023-12-12 罗伯特·博世有限公司 使至少两个被乘数相乘的计算单元、方法和计算机程序

Similar Documents

Publication Publication Date Title
DE1181461B (de) Adressenaddierwerk einer programm-gesteuerten Rechenmaschine
DE19758079A1 (de) Verfahren und Vorrichtung zur Galoisfeld-Multiplikation
DE1146290B (de) Elektronisches Datenverarbeitungssystem
DE3326583C2 (de)
DE2712224A1 (de) Datenverarbeitungsanlage
DE69325618T2 (de) Architektur zur Erzeugung einer kovarianten Matrize
DE2934344C2 (de)
DE4038240A1 (de) Prozessor zum durchfuehren einer orthogonaltransformation
DE2338469A1 (de) Programmierbares digitales datenverarbeitungsgeraet
DE3507584C2 (de)
DE102007056104A1 (de) Verfahren und Vorrichtung zur Multiplikation von Binäroperanden
DE1499281B1 (de) Rechenmaschine fuer logarithmische Rechnungen
DE2758505C3 (de) Spezialisierter Digitalrechner zur statistischen Informationsverarbeitung
DE69315250T2 (de) Neuronaler Prozessor mit Datennormalisierungsanlage
DE69326968T2 (de) Datenverteilungsverfahren und -gerät
DE4123186A1 (de) Multiplikationseinrichtung vom typ fuer unterteilte produkte, die zum ausfuehren einer multiplikation numerischer werte mit vielen stellen bei hoher genauigkeit faehig ist
EP0598112B1 (de) Verfahren und anordnung zum bilden der summe einer kette von produkten
DE2024304C3 (de) Adressenwandler zur Bestimmung eines Speicherplatzes in einem von mehreren Umlaufspeichern
DE2809341C2 (de)
DE19827238B4 (de) Verfahren zum Betrieb eines Vektorrechners
DE3341339C2 (de) Befehlsfolgegenerator
DE1125685B (de) Rechenmaschine
DE1934441C3 (de) Befehlswerkgesteuertes Rechenwerk für einen Digitalrechner
EP0004340B1 (de) Pseudozufällige Erzeugung von orthogonalen Matrizen für Verschlüsselungszwecke
DE69227887T2 (de) Verfahren und Geräte zur Feststellung des Produkts zweier Zahlen

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8130 Withdrawal