DE2902766A1 - Zwei-term-vektor-multiplizierschaltung - Google Patents

Zwei-term-vektor-multiplizierschaltung

Info

Publication number
DE2902766A1
DE2902766A1 DE19792902766 DE2902766A DE2902766A1 DE 2902766 A1 DE2902766 A1 DE 2902766A1 DE 19792902766 DE19792902766 DE 19792902766 DE 2902766 A DE2902766 A DE 2902766A DE 2902766 A1 DE2902766 A1 DE 2902766A1
Authority
DE
Germany
Prior art keywords
circuit
equation
representation
code
variable
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
DE19792902766
Other languages
English (en)
Inventor
Takao Nishitani
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
Nippon Electric Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Publication of DE2902766A1 publication Critical patent/DE2902766A1/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/4806Computations with complex numbers
    • G06F7/4812Complex multiplication

Landscapes

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

Description

- 3 - I NACHaEREICHT I
Beschreibung
Die vorliegende Erfindung bezieht sich auf eine Zwei-Term-Vektor- Multiplizierschaltung zum Berechnen von AX -t* BY.
Die Zwei-Term-Vektormultxplikation, im folgenden' als Zwei-Term-Multiplikation bezeichnet, ist eine Grundoperation sowohl bei der Realisierung von Spektralanalysatoren, die zur digitalen Signalverarbeitung die schnelle Fourier-Transformation (FFT) verwenden, als auch bei der Realisierung von Übertragungssystemen, die digitale Filter verwenden.
Bspw. umfaßt die FFT komplexe Operationen mit den unten genannten komplexen Multiplikationen, wobei der reale und der imaginäre Teil einer solchen komplexen Multiplikation durch die Zwei-Term-Multiplikation berechnet wird:
S-T = (SR + S1) · (TR -!- JT1)
= (SrTr - S1T1) + J(SrT1 + SrTi) (D
wobei SRS S-j- und TR, T1 die realen und imaginären Teile von S bzw. T darstellen.
Bei digitalen Filtern wird die folgende Operation, die eine Zwei-Term-Multiplikation enthält, stets erreicht. Im Hinblick auf die Stabilität der Koeffizienten, die den digitalen Filtern die Kennlinien geben, ist ein solches Filter im allgemeinen aus einer Kombination von Filtern zweiter Ordnung zusammengesetzt, deren Operationen durch die folgenden Gleichungspaare dargestellt werden:
■ 909831/0724
= Xi - (eiwi + ^Wi.ι)
JNACHSEREICHT
2902768
wobei x. die Eingangsdaten, y. die Ausgangsdaten und w. der innere Zustand eines Filters zweiter Ordnung zur Sampling- bzw. Abtastzeit i ist, und wobeioC, ji , % und (T Koeffizienten des Filters zweiter Ordnung sind. Die Klammerausdrücke in Gleichung (2) sind Zwei-Term-Multiplikationen.
Zwei-Term-Multiplikationen sind somit die Grundoperation auf dem Gebiet der digitalen Signalverarbeitung und ihre wirksame Berechnung trägt wesentlich zur Verbesserung der Leistungsfähigkeit von digitalen Signalprozessoren bei.
Bezüglich der Einzelheiten von FFT und digitalen Filtern sei auf folgende Literaturstelle hingewiesen:
"Theory and Application of Digital Signal Processing", von Lawrence R. Rqbiner et al, veröffentlich durch. PRENTICE-HALL, Inc., 1975,Seiten 356-437 bzw. Seiten 75-295.
Um die Zwei-Term-Multiplikationen, die die FFT und/oder digitale Filter verwenden, auf einer realen Zcxtbasis auszuführen, benötigt man einen Arithmetikschaltkreis mit geringerem Energierverbrauch und hoher Verarbextungskapazität. Für diese Anwendung wurde ein Serien-Parallel-Basismultiplikator, im folgenden als Basismultiplizierschaltung bezeichnet, in der Literaturstelle "Digital Computer Design Fundamentals", von Yaohan Chu, veröffentlicht durch McGraw-Hill Book Company, Inc., 1962, Seiten 24-35, vorgeschlagen. Das Operationsprinzip dieser Basismultiplxzierschaltung sei wie
909831/0724
folgt zusammengefaßt/ Variable X und A werden derart berechnet, daß sich ein Produkt Z in folgender Weise ergibt:
Z=X-A
wobei A gleich
= χ· n-1
Σ
i=0
ai2i
n-1
i=0 ajX)
n-1
21
i=0
ai2i , ist, mit
wobei das
16 fo. 1]
Symbol n K " angibt, daß a. ein Element der Menge *0,ll ist. Die Gleichung (3) kann auch dadurch gelöst werden, daß die folgende rekursive bzw. wiederholbare Formel errechnet wird, wobei η die gesamte Bit-Zahl der Varaiblen A und der Index i die i-te rekursive Operation und die i-te Bit-Stelle der Variablen A darstellen:
R_! = 0
= «n-1
X (if aj = 1) 0 (if &i = 0)
Ein etwas verbessertes Beispiel einer Serien-Parallel-Basismultiplizierschaltung ist die in der US-PS 3 885 141 beschriebene sog. Pipeline-Multiplizierschaltung. Diese Multiplizierschaltung soll
-$03831/07*4
die Berechnungszeit pro Multiplikation verringern, was auf der Tatsache basiert, daß der Teil, der der Anzahl von Bits des Multiplikators entspricht, auf der LSB (geringswertiges Bit)-Seite im Multiplikationsergebnis nicht verwendet wird. Infolgedessen wird die Multiplikationsgeschwindigkeit verglichen mit der der Basismultiplizierschaltung dadurch verdoppelt, daß die folgende Multiplikation bei der Vollendung der LSB-Seiten-Operation einer ersten Multiplikation begonnen wird, während die MSB (höchstwertiges Bit)-Seiten-Operation der ersten Multiplikation nicht beendet ist. Diese Multiplizierschaltung erfordert jedoch nicht nur eine komplizierte Steuerung, sondern auch einen komplizierten Aufbau, in welchem sechs Flipflops pro Addierer zum Verarbeiten jedes Bits benötigt werden, wie dies aus Fig. 5 hervorgeht.
Eine andere, verbesserte Serien-Parallel-Multiplizierschaltung ist aus Fig. 7 der US-PS 3 777 130 ersichtlich. Diese Multiplizierschaltung verwendet einen ROM (Festwertspeicher) und einen Schaltkreis, der etwa dieselbe Funktion wie die Basismultiplizierschaltung besitzt, um A1 · X1 + A2 · X2 ^m " XM ^n
einer Zeit zu berechnen, die gleich derjenigen ist, die die Basismultiplizierschaltung braucht, um eine Multiplikation zu vollenden. Dies ergibt sieh aufgrund der Tatsache, daß die Summen, die sich aus den verschiedenen Kombinationen der Koeffizienten A1, A2, ... A ergeben, im ROM im voraus errechnet und gespeichert werden. Demgemäß ist diese Multiplizierschaltung, die den ROM verwendet, nur dann verwendbar, wenn die Koeffizienten A1, A2, ... AM feste Größen sind, jedoch nicht dazu verwendbar, digitale Filter unterschiedlicher Kennlinien durch Mehrfachverwendung dieser Multiplizierschaltung auf einer Zeitteilungsbasis zu realisieren.
Aufgabe der vorliegenden Erfindung ist es deshalb, eine Zwei-Term-Vektor-Multiplizierschaltung in Serien-Parallel-Technik zu schaffen, die die oben genannten Nachteile vermeidet und mit der in vereinfachter Weise eine Hochgeschwindigkeitsmultiplikation von AX + BY erreicht werden kann.
909831/0724
— 7 —
290276S
Diese Aufgabe wird erfindungsgemäß durch die im Kennzeichen der, Anspruchs 1 angegebenen Merkmale gelöst.
Die vorliegende Erfindung ermöglicht die Herstellung einer Multiplizierschaltung mit einem Aufwand an Hardware, der dem der herkömmlichen Basismultiplizierschaltung ähnlich ist, mit einer Verarbeitungskapazität, die mit der oben genannten Pipeline-Multiplizierschaltung vergleichbar ist und mit einer verglichen mit der einen ROM verwendenden Multiplizierschaltung großen Flexibilität.
Das theoretische Merkmal dieser Erfindung liegt darin, daß die zeitlich seriellen und zeitlich parallelen (im folgenden einfach als seriell bzw. parallel bezeichnet) Eingangsvariablen durch A, B und X und Y dargestellt sind, und daß man Tupel (f.), (k.) und (c.) zum Entwickeln der Zwei-Term-Multiplikation wie folgt erhält:
Z = AX + ΒΎ
n+1
wobei η die gesamte Bit-Zahl jeder Variablen A und B ist, i die Bit-Stelle anzeigt und der Balken "-" über den Symbolen ihre Negation anzeigt. Darüber hinaus haben die Tupel (f.), (k.) und (c) die folgende Beziehung:
fir- <-4 Ω 1 Y χ ' Ki ^\ ' *■}
ci6{o.*i} j (6)
BAD ORKfU^8 3 1/0724
wobei ^1 kennzeichnet, daß i jeden Wert im Bereich von 0 C i £j η + 1 besitzen kann.
Obwohl das Verfahren zur Bestimmung der Tupel (f.), (k.) und (c·) weiter unten erklärt werden wird, sei im folgenden das Prinzip vorliegender Erfindung dargelegt, wobei' angenommen wird, dal?· die Entwicklung der Gleichung (5) erreicht worden ist. Die Gleichung (5) kann durch den den folgenden Satz rekursiver Formeln errechnet werden:
= 0
1^ {φ
Z = Rn+1 χ 2Π
E. kann gemäß den Kombinationen der Elemente f., k. und c der Tupel (f.), (k.) und (c.) wie folgt weiter entwickelt werden:
f+X (hei fi = 1, C1 = 1) -X (" fi = 1, Ci = -1)
Ri = Ri-I · 2
-1 w
(* fi = 0, ei = 1, ki = 0)
-Y (* fi = 0, C1= -1, ki = 0) V (8>
+ γ (" fj = 0, ei = I1 ki = 1) -γ (* fi = 0, ei = -I, ki = 1) +0 (# Ci = 0)
Der Vergleich der Gleichungen (8) und (4) zeigt deutlich, daß die Anzahl der Berechnungen, die zum Erhalten des Wertes Z be-
3 1/07 2*
nötigt werden j nahezu dieselbe ist, und daß der einzige Unterschied darin besteht, daß die Gleichung (8) eine größere Auswahl für das zweite Term besitzt als die Gleichung (1O.
Im folgenden sei das Verfahren zur Bestimmung der Tupel IF= (f.7, 1^= (k.) und C= (c) beschrieben. Bei diesem Verfahren gilt folgendes:
1) Die Variablen A und B werden in Standard-Minimaldarstellungs-Codes (a1.) und (bT.) umgewandelt.
Eine solche Standard-Minimaldarstellung bzw. -Schreibweise, abgekürzt als s-Darstellung bezeichnet, ist im einzelnen in folgender Literaturstelle erörtert:
"Arithmetic Norms and Bounds of the Arithmetic AN Codes", von Albert C. L. CHIANG, veröffentlicht in "IEEE Transactions on Information Theory", Band IT-16, Nr. 4, JuIi 1970, Seiten 470-476.
Im folgenden sei eine kurze Erläuterung der Minimaldarstellung bzw. -Schreibweise (m-Darstellung) gegeben. Die m-Darstellung ist eine Art numerische Ausdrucksweise in Padix (Wurzel)-2-System, bei dem jede Ziffer einen von drei Werten 0, +1 und -1 haben kann und das die kleinstmögliche Anzahl von Ziffern besitzt, die nicht 0 sind. Bei diesem Verfahren kann ein gegebener Viert als eine Anzahl von verschiedenen m-Darstellungs-Codes dargestellt werden. Bspw. besitzt die Dezimalzahl 11 einen
3 2 m-Darstellungs-Code (10 11), weil sie als 1x2 +0x2 +- 1x2. +1x2 dargestellt werden kann, und einen anderen Code (1 1 0 T) , weil sie auch als 1 χ 23 f 1 χ 22 -f- 0 χ 21 +- (-1) χ 2 dargestellt werden kann, wobei 1 die -1 bezeichnet. Bei jeder Ausdrucksweise ist die Anzahl der Ziffern, die nicht 0 sind, drei, was die kleinste Anzahl von allen m-Darstellungs-Codes der Dezimalzahl 11 ist. In diesem Falle kennen solche m-Darstellungs-Codes eine um eine Ziffer größere Ziffernl-nnge als
909831/0724
BAD ORiQ/NAL - 10 -
NACl-iagREICHTJ
die normalen Binär-Codes für denselben Wert besitzen.
Aus der Anzahl der möglichen m-Darstellungs-Codes eines gegebenen Wertes gibt es immer einen, bei welchem das Produkt jedes Paares benachbarter Ziffern 0 ist. Für jeden Wert gibt es nur einen m-Darstellungs-Code, der s-Darstellungs-Code eines gegebenen Wertes genannt wird. Nimmt man die Dezimalzahl 11, so ist ihr s-Darstellungs-Code (1 0 T 0 T), weil 11 dargestellt werden kann als 1 χ 2^ -l· 0 χ 2g + (-1) χ 22 +- 0 χ 21 -|- (-1) χ 2° und weil das Produkt jedes Paares benachbarter Ziffern in ( 10101) Null ist.
In diesem Fall bestehen wegen der Natur der s-Darstellung (a1.) und (b1.) jeweils aus n+1 Tupel, und es kann die folgende Gleichung aufgestellt werden:
a'i+l · a'i = 0 1
r \ (9)
. b'i+1 · b'i = o ;
2) Ein Satz von Ziffern, der weder (a?.) noch (b1.) zu Null macht, wird gebildet, d.h., es gilt die folgende Gleichung :
3) Das Tupel Jp ist auf der Basis der folgenden Gleichung gebildet:
F = (Pi |Pi = b'i -
(H)
wobei Sgi eine charakteristische Funktion ist. Es gilt:
- 11 -
909831/072 4
BAD ORIGINAL
NACHGEREICHT J
wobei das Symbol ft bezeichnet, daß es kein Element von Jfj ist. Mit anderen Worten, das Tupel P erhält man durch das Ersetzen der Elemente in (b'^) mit dem Index iclH durch Null.
H) Das Tupel Q, ist in Abhängigkeit von der folgenden Gleichung gebildet:
i = Pi+ Sw^ - Dfc'i-i) (13)
somit ergibt sich Q aus dem Ersetzen der Elemente in (b^), mit dem Index i £ (f-| durch (b1^).-
5) Die Tupel £ , (p und Jf^ sind durch die folgende Gleichung bestimmt:
C = (ci|c4
(14) = SH(i- I))
Es wird im folgenden gezeigt, daß durch das obige Verfahren die Tupel C. » IF und (K bestimmt und das Zwei-Term-Vektorprodukt der Gleichung (5) durch das obige Verfahren errechnet werden können.
Das Zwei-Term-Vektorprodukt Z kann durch die folgende Gleichung dargestellt werden, die o-Darstellungs-Codes (af.) und (b!^) verwendet, wobei die <ϊ-Darstellungs-Codes (a'.)und (b1.) eine um
909831/0724
BAD OaiGSWAL
eine Ziffer größere Ziffernlänge besitzen aid die der gewöhnlichen Binärcodes (a.) und (b.) von Variablen A bzw. B:
Z = AX + BY
n-1
= 27 (aiX + biY)2i ; (15)
η
= .ZJ (a'iX + b
Wenn sowohl das Element a'· von (a'·) als auch das Element b'. von (bT.) für einen gegebenen Index i nicht gleichzeitig nicht Null sind, d.h.
: <6 (6 bedeutet Nullmenge) ,.,.
dann unterzieht sich entweder X oder Y, jedoch nicht beide, in der Gleichung (15) der Addition, so daß diese Gleichung wie die Gleichung (5) mit einem einzigen Akkumulator berechnet werden kann. Da jedoch die Bedingung der Gleichung (16) nicht immer hergestellt werden kann, wird (b^) mit dem Tupel (P der Gleichung (11) ersetzt. Infolgedessen wird die Variable B um den Betrag kleiner, der durch die folgende Gleichung angezeigt ist: .
η η
S b-i2i - 2
i=0 i=0
Um dieses Dekrement zu kompensieren, wird das Tupel Q der Gleichung (13) verwendet und die folgende Gleichung aus Gleichung (13) abgeleitet:
- 13 -
909831/0724
BAD ORIGINAL
= Pi +
NACHQEREIOHT
2902761
Pi
Pi
(i-ΐφ
was unter Verwendung der Beziehung von Gleichung (9) führt zu:
Pi = O
(19)
Es sei angemerkt, daß das Tupel ^ eine um eine Ziffer größere Ziffernlänge besitzt als das Tupel JP s weil das erstere ein Glied von Sw^i ~ D x b'*-i besitzt, das im letzteren fehlt.
Da man ferner die folgende Ausdrucksweise erhält
(20)
kann man den Wert B in Ausdrücken der Tupel ^ und ||C unter Verwendung der Gleichungen (18) und (20) wie folgt ausdrücken:
B =
i=0
i=0
Σ3 (1 - i
i=0 i
(21)
909831/0724
Setzt man die Gleichung (21) für B in die Gleichung (15) ein, erhält man die folgende Gleichung:
n+1
ζ- S ί.·,χ ♦ » --f )qiWi (22)
wobei angenommen wird, daß a1 ., gleich Null ist.
Wie ebenfalls aus dem Aufbau des Tupel Q und aus Gleichung (9) leicht verständlich ist, wird, da beide Elemente a'^ und q^ für jeden gegebenen Index niemals gleichzeitig Null sein können, wird die Gleichung (22) durch Verwendung des Tupel [F der Gleichung (14) wie folgt umgekehrt:
S (fja'iX + (1 __L)f-.q.Y)2i (23)
Andererseits nehmen, da die Beziehungen
und
aufrecht erhalten werden, die Elemente a'. und q. den Wert 0, *1 oder -1 ein, so daß die Operationen in Gleichung (23), die die Additionen und die Subtraktionen enthalten, durchgeführt werden können. Deshalb kann die Gleichung (23) zur1 Ableitung der Gleichung (5) unter Verwendung des Tupel (£" umgeformt werden in:
Im folgenden wird nun die vorliegende Erfindung im einzelnen anhand der beigefügten Zeichnungen beschrieben. Es zeigen:
Fig. 1 das Blockschaltbild einer Multiplizierschal
tung gemäß einem Ausführungsbeispiel vorliegender Erfindung und
909831/0724
- 15 -
Fig. 2 bis 5 Schaltbilder von Schaltungsteilen des Ausführungsbeispieles der Fig. 1 im einzelnen.
In der folgenden Beschreibung entsprechen die lateinischen Buchstaben und Symbole, wie A, B, X, Y, (f.), in der Beschreibungseinleitung genannten.
stäben und Symbole, wie A, B, X, Y, (f.), (c), (k.) usw., den
Wie sich aus Fig. ergibt, enthält ein Ausführungsbeispiel vorliegender Erfindung Eingangsklemmen 101, 102, 103 und 104, eine Zwei-Term-Vektorprodukt-Ausgangsklemme 105, Zwischenklemmen 106, 107, 108, 109 und 110, einen s-Darstellung erzeugenden Schaltkreis 200s einen Steuerschaltkreis 300, einen Auswahlschaltkreis UOO und einen Akkumulator 500. Die Schaltkreise 200, 300, 400 und 500 werden unten anhand der Figuren 2, 3,4 bzw. 5 im einzelnen beschrieben.
In Fig. 1 zeigen die dicken bzw. breiten Pfeile an den Leitungswegen 103, 104, 110 und 105 die parallele Zuführung von Eingangsvariablen X und Y, von einem der Werte (X, Y, Y/2 und 0), der vom Auswahlkreis 400 ausgewählt ist und des Ausgangssignals Z, und die dünnen Pfeile an den Leitungswegen 101, 102, 1060, 1061, 1070, 1071, 1080 bis 1083 und 109 die serielle Zuführung von Eingangsvariablen A und B, des Absolutwertcodes'und des Plaritätscodes des s-Darstellungscodes der Variablen A, des Absolutwertcodes und des Polaritätscodes des s-Darstellungscodes der Variablen B, von vier Steuersignalen zum Schaltkreis 400 und eines Steuersignals zum Schaltkreis 500. Die Variablen A und B werden den Klemmen 101 bzw. 102 zugeführt und von der LSB-Seite in ihre betreffenden s-Darstellungscodes (a1■) und (b1·) sequentiell umgewandelt. Der Absolutwertcode und der Polaritätscode von (a'.) werden dann über den Leitungsweg 1060 bzw. 1061 dem Steuerschaltkreis 300 zugeführt. In ähnlicher Weise werden der Absolutwertcode und der Polaritätscode von (b1.) über den Leitungsweg 1070 bzw. 1071 an den Steuerschaltkreis 300 weitergegeben. Der Schaltkreis 300 erzeugt sequentiell von der LSB-Seite Steuervariable (f.), (c.) und (k.) gemäß Gleichung (14), die auf den s-Darstellungscodes (a1^) und
909831/0724
- 16 -
(b'.) basieren, und Steuersignale zur Auswahl des zweiten der Gleichung (8), d.h. zur Auswahl eines Wertes aus X, Y, Y/2 und O, was von geeigneten Kombinationen der Elemente f · , c· und k. abhängig ist. Die Steuersignale, die vom Schaltkreis 300 abgegeben werden, werden über die Leitungswege 1080, 1081, 1082 und 1083 sequentiell an den Schaltkreis 1IOO übertragen, und gleichzeitig erzeugt der Schaltkreis 300 Additions-Subtraktions-Steuersignale über die Klemme 109 an den Akkumulator 500 sofort dann, wenn das Element c. zu 1 wird. Die Variablen X und Y werden von den Klemmen 103 bzw. 104 an den Schaltkreis HOO geliefert, so daß in Reaktion auf die Steuersignale 1801 bis 1803 vom Steuerschaltkreis 300 ein Wert aus X, Y, Y/2 und 0 erzeugt und an die Eingangsklemme des Akkumulators 500 abgegeben wird. Ein Akkumulatorregister 504 (siehe Fig. 5) des Akkumulators 500 speichert zeitweise ρ ^ der Gleichung (7) und führt die Gleichung (8) entsprechend dem Wert, der vom Schaltkreis "+00 aus den Werten X, Y, Y/2 und 0 ausgewählt worden ist, und entsprechend dem Additions-Subtraktions-Steuersignal, das vom Steuerschaltkreis 300 über den Leitungsweg 109 abgegeben wird, sequentiell aus. Infolgedessen wird zu einem (n + 2)-ten Zeitpunkt das Ergebnis Z der Zwei-Term-Vektorprodukt-Berechnung, wie sie durch die Gleichung (7) dargestellt ist, an die Klemme 105 abgegeben. -·
Bspw. sei nun die Rechnung 11 χ 21 + 5 χ 38 betrachtet. Den Klemmen 103 und 101I werden die. Dezimalzahl 21 als Variable X und die Dezimalzahl 38 als Variable Y in Parallel-6-Bits-Codes und den Klemmen 101 und 102 4-Bit-Codes, die die Dezimalzahlen 11 und 5 als die Variablen A und B von der LSB-Seite her auf serieller Zeitbasis zugeführt. Mit anderen Worten, (1011) wird der Klemme 101 und (0101) der Klemme 102 auf serieller Zeitbasis zugeführt. Diese seriellen Daten werden durch den Schaltkreis 200 in s-Darstellungscodes umgewandelt. Infolgedessen werden an die Zwischenklemmen 1060 und 1061 die Absolutwertcodefolge (10101) und die Polaritätscode folge (00101) des s-Darstellungscodes (loToT) des Dezimal-
90983 1/072
- 17 - NACHGEREICHT j
wertes 11 und den Klemmen 1070 und 1071 die Absolutwertcodefolge (00101) und die Polaritätscodefolge (00000) des s-Darstellungscodes (00101) des Dezimalwertes 5 zugeführt. Es sei nun angenommen, daß 0 und 1 die positiven bzw. negativen Polaritätscodes sind. Der Steuerschaltkreis 300 erzeugt die Tupel <C , {/- und Ij^ ,die auf diesen beiden s-Darstellungscodes in Abhängigkeit der Gleichung (14) basieren. In diesem Falle werden die Tupel wie folgt dargestellt:
(L = (011Ϊ1Ϊ)
f = (010101)
= (001010)
Demzufolge kann die folgende Auswahlfolge in geeigneten Kombinatio nen von Tupel , JP und J^ an den Klemmen 1080 bis 1083 dadurch gemacht werden, daß die entsprechenden Klemmen in der Auswahlreihenfolge
(X, Y/2, X, Y/2, X und 0)
aktiviert werden..
Inzwischen erscheinen in Abhängigkeit des Tupel an der Klemme 109 aufeinanderfolgende Steuersignale, die die Subtraktion, Addition, Subtraktion, Addition» Addition und Subtraktion anzeigen.
Der Auswahlschaltkreis HOO liefert in Reaktion auf die Signale, die
909831 /0724
"■-18-BAD OBlGINAL
von den Klemmen 1080bis 1083 geliefert werden, Binärzahlen, die den Dezimalzahlen 21, 38/2, 21, 38/2, 21 und 0 entsprechen, an die Klemme 110.
Der Akkumulator 500 vollendet die Akkumulation in Reaktion auf die Steuersignale, die an der Klemme 109 erscheinen, und in Reaktion auf die Ausgangssignale des Schaltkreises 400, woraus sich ergibt, daß der Ausgangsklemme 105 die folgende richtige Lösung geliefert wird:
Z = |o + 21 χ 2"1 + (38/2) χ Ζ"2 - 21 χ 2"3 + (38/2) χ 2"4
- 21 χ 2"5J χ 25
= 21 χ 24 - 21 χ 22 - 21 + 38 χ 22 + 38 = 21x{24.22 -20J + 3S
= 21 χ 11 + 38 χ 5
Gemäß Fig. 2 enthält der Schaltkreis 200 die Eingangsklemme 101, eine s-Darstellungs-Absolutwert-Ausgangsklemme 1060, eine s-Darstellungs-Vorzeichenbit-Ausgangsklemme 1061, Flipflops 204, 205, 206, einen Volladdierer 207, ein exklusives ODER-Gatter 208, ein UND-Gatter 209 und eine Polaritätscode-Expansionsschaltung 210. Die Umwandlung einer Binärzahl in ihren s-Darstellungscode wird wie folgt durchgeführt: Eine gegebene Binärzahl sei durch W dargestellt; von der arithmetischen Summe aus W und 2 W wird auf ei ner Bit-um-Bit-Basis subtrahiert und das Ergebnis mit 1/2 multipliziert. Die Bit-um-Bit-Subtraktion liefert den s-Darstellungs-
909Ό 31/0724 BAD OBIGINAL
code dreier Werte (0, M). Bezüglich Einzelheiten dieser ο.p. Umwandlungstechnik wird Bezug genommen auf "Error Correcting Codes", 2. Auflage, Seiten 450-453, von Peterson & Weldon, veröffentlicht 19 7? durch MIT Press.
'■'ie man die s-Darstellungs des weiter vorne genannten Dezimalwertes 11 erhält, wird im folgenden beschrieben. Die Dezimalzahl 11 kann in Binärschreibweise als (1011) dargestellt werden. Dieser Wert und sein Zweifaches werden arithmetisch addiert:
0 10 11 11
+) 1 0 1 1 0 -,·--· 22
10 0 0 0 1
Die Subtraktion der Dezimalzahl 11 vom Endergebnis ClOOOOl) auf einer Bit-um-Bit-Basis gefolgt von der Eliminierung des LSB, oder nit anderen Worten, der Multiplikation des Ergebnisses mit 1/2, gibt die s-Darstellung:
10 0 0 0 1
-) 001011 -· « * · H
1010Ϊ0
10Ϊ0Ϊ »»-- s-Darstellungscode von 11
Es sei in Füg. 2 Angenommen, daß jedes der fünf Bits der Variablen A von seinem LSB aus in die Klemme 101 sequentiell eingegeben wird. Da das FIiDflop 204 die Variable A um ein Bit verzögert, ist ihr Ausgang 2A. Der Volladdierer 207 addiert den Ausgang 2Λ des Flipflops 204 und die Variable A, dessen Polaritntscode durch den Polaritätscode-Expansionsschaltkreis 210 um ein Bit erweitert wird.
1 /07 BAD ORIGINAL '
j NACHGiERElCHT
Bei dieser Addition wird das Flipflop 205 dazu verwendet, den Obertrag zu erhalten. Der resultierende Ausgang des Volladdierers 207 ist 3A. Das Flipflop 206 zum Verzögern des Ausganges 3A um ein Bit erzeugt einen Ausgang A. Um zu ermöglichen, daß 3A und A der arithmetischen Operation unterzogen werden, wird dem Ausgang des Flipflops 204 durch den Schaltkreis 210 dieselbe Bitlänge gegeben wie dem von 3A, das am Flipflop 206 erzeugt wird; die Bitum-Bit-Subtraktionen werden durch die Gatter 208 und' 209 mit dem Ergebnis ausgeführt, daß man den s-Darstellungscode an der Ausgangsklemme 1060 und der Klemme 1061 erhält. Der Schaltkreis 210 ist ein Flipflop, der das MSB eines gegebenen Datums um ein Bit erweitert, Das den Obertrag haltende Flipflop 205 muß vor der Additionsoperation zurückgestellt werden.
Gemäß Fig. 3 besitzt der Steuerschaltkreis 300 Absolutwertcode-Eingangsklemmen 1060 und 1070, Polaritätscode-Eingangsklemmen 1061 und 1071, Zwischenklemmen 305, 306, 307 und 308, Auswahlsignal-Ausgangsklemmen 1080, 1081, 1082 und 1083, ein Additions-Subtraktions-Steuersignal 109, UND-Gatter 314, 322, 323, 325 und 326, ODER-Gatter 320 und 321, ein Invertergatter 324, Flipflops 315, 316 und 317 und 2-1-Auswahlkreise 318 und 319. Ein erster s-Darstellungscode (a1·) wird von den Klemmen 1060 und 1061 abgegeben und ein zweiter s-Darstellungscode (b1.) wi^d in ähnlciher Weise von den Klemmen 1070 und 1071 geliefert. Es sei angenommen, daß die Absolutwertcodes dieser s-Darstellungscodes (a1^.) und (b1^) sequentiell an die Klemme 1060 bzw. 1070 abgegeben werden, dann tastet das UND-Gatter 314 die Bitpositionen ab, in denen beide nicht Null sind. Da dasFlipflop 316 den Ausgang des Gatters 314 um ein Bit verzögert, wird die Klemme 307 mit dem Tupel (k.) gespeist, das durch das Tupel JJ^ der recursiven Gleichungen (14) dargestellt ist. Den Absolutwertcode dieses Codes (a 1^) zeigt das Tupel (f^) der Gleichungen (14), und (f.) wird sequentiell der Klemme 305 zugeführt. Dieser Code (b.^) , der von den Klemmen 1070 und 1071 geliefert wird, unterzieht sich der Steuerung durch die 2-1-Auswahlschaltkreise 318 und 319 als Reaktion auf den Ausgang des Flipflops 316, d.h.,,auf ein Signal, das dem, Tvtpel (k^) der Gleichung (14) entspricht, und wird als Ausgang entweder so, wie
909831/0724
- 21 -
NACHGEREIQHT j 2902768
er ist, oder durch die Flipflops 316 und 317 um ein Bit verzögert geliefert. Dies bedeutet, daß (q.) der Gleichung (18) erzeugt worden ist. Dementsprechend wird der Absolutwert code (cu) der Gleichung (18) als Ausgang des 2-1-Auswahlkreises 318 erzeugt, und auch der Polaritätscode der Gleichung (18) wird als Ausgang des 2-1-Auswahlkreises 319 geliefert. Da die ODER-Gatter 3 20 und 3 so funktionieren, daß sie den Absolutwertcode bzw. den Polaritätscode des s-Darstellungscodes (a'.)s die an die Klemmen 1060 bzw. 1061 geliefert werden, zu den entsprechenden von (q^) der Gleichung (18), die von den Schaltkreises 318 und 319 geliefert werden, addieren, erhält man den Absolutwertcode und den Polaritätscode des Tupels (c·) der Gleichung (14) an der Klemme 306 bzw. 308. Der Ausgang des ODER-Gatters 321, der an der Klemme 308 erscheint, wird unmittelbar als Additions-Subtraktions-Steuersignal zur Ausgangsklemme 109 geführt, um den Akkumulator 500 der Fig. 1 zu steuern. Das UND-Gatter 3 22 schafft die Bedingungen, die der ersten und der zweiten Zeile der Gleichung (8) entsprechen, die auf den Absolutwertcodes basieren, die (f^) bzw. (c.) der Gleichung (IH) entsprechen und die an den Klemmen 305 und 306 auftreten, und überträgt an die Klemme 1080 ein Signal, das der Auswahlschaltkreis 400 der Fig. 1 anfordert, um die an die Klemme 103 abgegebene Variable X auszuwählen. Die UND-Gatter 32 3 und schaffen die Bedingungen, die der dritten und der vierten Zeile der Gleichung (8) entsprechen, von den Signalen, die an den Klemmen 305, 306 bzw. 307 erscheinen und die den Absolutwertcodes von Tupeln (fi) zbd (^) und (k^ der Gleichung (14) entsprechen. Dementsprechend wird ein Signal, das der Auswahlschaltkreis 400 anfordert, um die an die Klemme 104 abgegebene Variable Y auszuwählen, über das UND-Gatter 325 an die Klemme 1082 geliefert. Die UND-Gatter 323 und 326 geben die Bedingungen, die der fünften und der sechsten Zeile der Gleichung (8) entsprechen von den Signalen, die an den Klemmen 305, 306 bzw. 307 erzeugt werden und die den Absolutwertcodes der Tupeln (f.) und (c) unf Ck^) der Gleichungen (14) entsprechen. Als Ergebnis wird ein Signal, das der Schalt-
- 22 -
909831/0724
" 22 ~ NACHGEREICHT I
kreis 400 anfordert, um 1/2 der Variablen Y, d.h. Y/2 auszuwählen, durch das Gatter 326 an die Klemme 1083 abgegeben. Das Gatter 3 24 gibt die Bedingung, die der siebten Zeile der Gleichung (8) entspricht, durch Umkehrung des Absolutwertcodes von (c.) der Gleichung (14), der an der Klemme 306 gegeben ist, und überträgt an die Klemme 1081 ein Signal, das der Schaltkreis 400 anfordert, um die Null auszuwählen.
Gemäß Fig. 4 besteht der Auswahlschaltkreis 400 aus Eingangsklemmen 1080 bis 1083, einer Null-Eingangsklemme 405, einer dritten Parallel-Eingangsklemme 103 für die Variable X, einer vierten Parallel-Eingangsklemme 104 für die Variable Y, Auswahlgattern 410, 411, 412 und 413 und einer Ausgangsklemme 110·«. Da die für die Variable Y bestimmte Eingangsklemme 104 mit dem Gatter 413 in einer Form verbunden ist, die um ein Bit nach; unten verschoben ist, ist der Ausgang des Gatters 413 gleich Y/2. Das Auswahlsignal, das vom Steuerschaltkreis 300 erzeugt ist, wird den Klemmen 1082, 1083, 1080 und 1081 zugeführt und aktiviert eines der Gatter 410, 411, 412 und 413. Die aktivierten Gatter übertragen einen der vier Werte 0, X, Y und Y/2 an die Klemme 110.
Gemäß Fig. 5 besteht der Akkumulator 500 aus einer Steuersignal-Eingangsklemme 109, einer Akkumulator-Eingangsklemme 110, einer Akkumulatox^-Ausgangsklemme 105, einem Akkumulator-Register 504 und einem Adcii„ions-Subtraktions-Schaltkreis 505. Hierbei ist der Ausgang des Akkumulators 504 mit dem Eingang des Schaltkreises 505 in Form einer Abwärtsverschiebung verbunden, so daß der Ausgang mit 1/2 multipliziert werden kann. Der Akkumulator 504 speichert zeitweise das Teilprodukt p. der Gleichung (7). Somit wird die Gleichung (7) ausgeführt, um den Ausgang des Schaltkreises 505 als Reaktion auf ein Signal, das vom Schaltkreis 300 über die Klemme 109 abgegeben wird und auf die Daten (X, Y, 0 oder Y/2) abzugeben, die vom Schaltkreis 400 ausgewählt sind; als Ergebnis wird somit das neue Teilprodukt p. zum Register 504 übertragen.
- 23 -
909831/0724
Durch Wiederholung dieses Vorganges (η+2)-mal erhält man Z gemäß Gleichung (7), welches das Zwei-Term-Vektorprodukt der Glei chung (5) ergibt.
Auf diese Weise erreicht man mit der Erfindung eine Zwei-Term-Vektormultiplikation mit einfachen Schaltkreisen.
- Ende der Beschreibung -
909831/0724
Leerseite

Claims (1)

  1. Titel: Zwei-Term-Vektor-Multiplizierschaltung
    Patentanspruch
    Zwei-Term-Vektor-Multiplizierschaltung zum Berechnen von
    AX +BY, gekennzeichnet durch
    einen ersten und einen zweiten eine Minimaldarstellung erzeugenden Schaltkreis (200) zum getrennten Umwandeln einer ersten und
    einer zweiten Variablen A bzw. B in Standard-Minimaldarstellungs-Codes j
    einen auf die Minimaldarstellungs-Codes der ersten und der zweiten Variablen ansprechenden Steuerschaltkreis (300) zum Erzeugen eines Auswahlsignals und eines Additions-Subtraktions-Steuersignals,
    — 2 —
    einen auf die dritte und vierte Variable X und Y und das Auswahlsignal ansprechenden Auswahlschaltkreis (400) zum Auswählen entweder der dritten Variablen oder der vierten Variablen oder 1/2 des Wertes der vierten Variablen oder von Null, und
    einen mit dem Auswahlschaltkreis (400) verbundenen Akkumulator (500), der in Reaktion auf das Additions-Subtraktions-Steuersignal vom Steuerschaltkreis (300) eine Addition und eine Subtraktion zwischen 1/2 des. akkumulierten Wertes und dem Ausgang des Auswahlschaltkreises durchführt, so daß ein neuer akkumulierter Wert erzeugt wird.
    - Ende des Patentanspruchs -
    1/072
DE19792902766 1978-01-27 1979-01-25 Zwei-term-vektor-multiplizierschaltung Withdrawn DE2902766A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP53008546A JPS6053907B2 (ja) 1978-01-27 1978-01-27 二項ベクトル乗算回路

Publications (1)

Publication Number Publication Date
DE2902766A1 true DE2902766A1 (de) 1979-08-02

Family

ID=11696128

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19792902766 Withdrawn DE2902766A1 (de) 1978-01-27 1979-01-25 Zwei-term-vektor-multiplizierschaltung

Country Status (5)

Country Link
US (1) US4215417A (de)
JP (1) JPS6053907B2 (de)
DE (1) DE2902766A1 (de)
FR (1) FR2415838B1 (de)
GB (1) GB2015215B (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL8005506A (nl) * 1980-10-06 1982-05-03 Philips Nv Inrichting voor het uitvoeren van een matnematische operatie en enkele toepassingen van deze inrichting.
US5055712A (en) * 1990-04-05 1991-10-08 National Semiconductor Corp. Register file with programmable control, decode and/or data manipulation
US5241492A (en) * 1991-05-06 1993-08-31 Motorola, Inc. Apparatus for performing multiply and accumulate instructions with reduced power and a method therefor
US5402452A (en) * 1992-08-25 1995-03-28 Alcatel Network Systems, Inc. Incremental phase smoothing desynchronizer and calculation apparatus
FR2811168B1 (fr) * 2000-06-30 2002-11-15 Gemplus Card Int Procede de conversion de la representation binaire d'un nombre dans une representation binaire signee
US9459832B2 (en) 2014-06-12 2016-10-04 Bank Of America Corporation Pipelined multiply-scan circuit
JP2022020088A (ja) * 2020-06-26 2022-02-01 キヤノン株式会社 冷却装置、半導体製造装置および半導体製造方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB892112A (en) * 1957-02-26 1962-03-21 Emi Ltd Improvements relating to serial digital multiplying and dividing devices
NL246808A (de) * 1958-12-27
FR2175261A5 (de) * 1972-03-06 1973-10-19 Inst Francais Du Petrole
US3737638A (en) * 1972-07-18 1973-06-05 Ibm A series-parallel multiplication device using modified two{40 s complement arithmetic
US4020334A (en) * 1975-09-10 1977-04-26 General Electric Company Integrated arithmetic unit for computing summed indexed products
US4150434A (en) * 1976-05-08 1979-04-17 Tokyo Shibaura Electric Co., Ltd. Matrix arithmetic apparatus
PL106470B1 (pl) * 1977-02-01 1979-12-31 Inst Maszyn Matematycznych Uklad cyfrowy do obliczania wartosci zlozonych wyrazen arytmetycznych

Also Published As

Publication number Publication date
GB2015215A (en) 1979-09-05
GB2015215B (en) 1982-03-31
FR2415838A1 (fr) 1979-08-24
FR2415838B1 (fr) 1986-02-07
US4215417A (en) 1980-07-29
JPS54101633A (en) 1979-08-10
JPS6053907B2 (ja) 1985-11-27

Similar Documents

Publication Publication Date Title
DE1956209C3 (de) Multipliziervorrichtung
DE2508706C2 (de) Schaltungsanordnung zur Codierung von Datenbitfolgen
DE1549584C3 (de) Datenverarbeitungsanlage
DE69031674T2 (de) Verfahren und Schaltungsanordnung zur zweidimensionalen diskreten Transformation
DE2947308C2 (de) Rekursives Digital-Filter
DE2619418A1 (de) Verfahren und vorrichtung zur umwandlung einer binaerzahl in eine zahl modulo m
DE2803425A1 (de) Digitaleinrichtung zur ermittlung des wertes von komplexen arithmetischen ausdruecken
DE2018452A1 (de) Arithmetische Einrichtung
DE4101004C2 (de) Paralleler Multiplizierer mit Sprungfeld und modifiziertem Wallac-Baum
DE2220784C2 (de) Anordnung zur Berechnung der diskreten Fourier-Transformierten aufgrund von N reellen Abtastwerten
DE1549508C3 (de) Anordnung zur Übertragsberechnung mit kurzer Signallaufzeit
DE3689356T2 (de) Verfahren und Schaltung zum Generieren von binären Signalen und modifizierter Bitfolge.
DE2729912A1 (de) Digitale signalverarbeitungsanordnung
DE69227791T2 (de) Booth&#39;s Multiplikationssystem zur Durchführung von A+/- X.Y
DE2707936B2 (de) Einseitenband-FrequerizmultiplexÜbertragungssystem
DE2902766A1 (de) Zwei-term-vektor-multiplizierschaltung
DE2517360A1 (de) System zum verbessern von informationen und von prozessregelungen
DE2732008A1 (de) Einrichtung zur reduzierung von fibonacci-p-codes auf die minimalform
DE2163621A1 (de) Schaltungsanordnung zur Durchführung der Fourier-Analyse
DE3434777A1 (de) Verfahren und vorrichtung zur vorzeichenerzeugung fuer einen uebertragsicherstellungsaddierer
DE3424078A1 (de) Dezimalmultiplikations-einrichtung
DE2712582C2 (de) DDA-Rechner (Digital-Differential-Analysator)
DE2727051B2 (de) Einrichtung zur binären Multiplikation einer ersten Zahl als Multiplikand mit einer den Multiplikator ergebenden Summe aus einer zweiten und dritten Zahl im Binärcode
DE2456245C2 (de) Schaltungsanordnung für ein digitales Filter
DE3540800A1 (de) Binaeraddierer-zelle und aus solchen binaeraddierer-zellen zusammengesetztes schnelles addier- und multiplizierwerk

Legal Events

Date Code Title Description
OAR Request for search filed
OB Request for examination as to novelty
OC Search report available
OD Request for examination
8130 Withdrawal