DE2902766A1 - Zwei-term-vektor-multiplizierschaltung - Google Patents
Zwei-term-vektor-multiplizierschaltungInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/4806—Computations with complex numbers
- G06F7/4812—Complex 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
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:
W· a'i+l · a'i = 0 1
r \ (9)
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)
= 27 (aiX + biY)2i ; (15)
η
= .ZJ (a'iX + b
= .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
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
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)
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..
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
-) 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)
- Titel: Zwei-Term-Vektor-MultiplizierschaltungPatentanspruchZwei-Term-Vektor-Multiplizierschaltung zum Berechnen von
AX +BY, gekennzeichnet durcheinen 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 jeinen 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, undeinen 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
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)
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)
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 |
-
1978
- 1978-01-27 JP JP53008546A patent/JPS6053907B2/ja not_active Expired
-
1979
- 1979-01-25 DE DE19792902766 patent/DE2902766A1/de not_active Withdrawn
- 1979-01-25 GB GB7902673A patent/GB2015215B/en not_active Expired
- 1979-01-26 FR FR7902135A patent/FR2415838B1/fr not_active Expired
- 1979-01-26 US US06/006,707 patent/US4215417A/en not_active Expired - Lifetime
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'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 |