DE3854608T2 - Vektorrechnerschaltung, welche schnell eine Berechnung auf drei Eingangsvektoren ausführen kann. - Google Patents
Vektorrechnerschaltung, welche schnell eine Berechnung auf drei Eingangsvektoren ausführen kann.Info
- Publication number
- DE3854608T2 DE3854608T2 DE3854608T DE3854608T DE3854608T2 DE 3854608 T2 DE3854608 T2 DE 3854608T2 DE 3854608 T DE3854608 T DE 3854608T DE 3854608 T DE3854608 T DE 3854608T DE 3854608 T2 DE3854608 T2 DE 3854608T2
- Authority
- DE
- Germany
- Prior art keywords
- vector
- components
- vectors
- sum
- circuit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 239000013598 vector Substances 0.000 title claims description 279
- 238000010586 diagram Methods 0.000 description 4
- 238000000034 method Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 1
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/50—Adding; Subtracting
- G06F7/505—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
- G06F7/509—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination for multiple operands, e.g. digital integrators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Physics (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Complex Calculations (AREA)
Description
- Diese Erfindung betrifft eine Vektorrechnerschaltung, die eine Berechnung auf Vektoren ausführen kann. Es ist in der ganzen gegenwärtigen Beschreibung zu bemerken, daß jeder Vektor aus mehreren Vektorkomponenten oder -elementen besteht, die in Form von elektrischen Signalen gegeben sind und die elektrisch verarbeitet werden, obwohl nachstehend eine spezielle Beschreibung nicht ausgeführt werden wird.
- Eine jüngste Anforderung an einen elektronischen Digitalrechner ist es, eine Berechnung auf Vektoren mit einer hohen Geschwindigkeit zu bearbeiten. Als Beispiel für eine derartige Berechnung dient eine Vektoraddition, bei der ein Vektorenpaar addiert wird. In diesem Fall sollte die Vektoraddition zwischen den entsprechenden Komponenten des Vektors sehr viele Male wiederholt werden, da jeder Vektor aus vielen Komponenten besteht.
- Überdies kommt es oftmals vor, daß die Vektoraddition auf drei Vektoren ausgeführt werden muß, von denen jeder ebenfalls aus sehr vielen Komponenten besteht. In diesem Fall werden zwei der Komponenten von zwei der drei Vektoren ausgewählt und unter Verwendung einer Vektoraddiereinrichtung addiert, um eine vorläufige Summe zu erhalten. Danach wird eine der Komponenten von dem verbleibenden Vektor ausgewählt und durch die vorstehend erwähnte Vektoraddiereinrichtung zu der vorläufigen Summe addiert, um eine Hauptsumme zu liefern. Somit wird die Vektoraddiereinrichtung zweimal verwendet, um die Vektoraddition dreier Vektoren auszuführen.
- Desgleichen ist es häufig erforderlich, mit dem elektronischen Digitalrechner eine Gesamtsumme sehr vieler Komponenten eines einzigen Vektors zu berechnen. In diesem Fall werden von der Vektoraddiereinrichtung zuerst zwei der Komponenten addiert, um eine lokale Summe zu berechnen. Anschließend wird durch die Vektoraddiereinrichtung die lokale Summe zu einer anderen Komponente addiert. Eine ähnliche Addition wird unter Verwendung der Vektoraddiereinrichtung sukzessive wiederholt, um die Gesamtsumme der Komponenten zu berechnen.
- Auf jeden Fall sollte die Vektoraddiereinrichtung bei der Ausführung der Vektoraddition von drei Komponenten der drei Vektoren zweimal in Betrieb gesetzt werden. Dies bedeutet, daß die Vektoraddition dreier Komponenten sehr zeitaufwendig ist.
- Eine weitere Vektoraddiereinrichtung, die aus einer Kaskade von Übertragsicherungs-Addiereinrichtungen besteht, ist in A. Rulston, E. Reilly, Jr., Eds., Encyclopedia of Computer Science and Engineering von Nostrand Reinhold Company, 1983, Seiten 11 - 13 beschrieben.
- Es ist eine Aufgabe dieser Erfindung, eine Vektorrechnerschaltung bereitzustellen, die eine Vektoraddition von drei Vektoren mit hoher Geschwindigkeit ausführen kann.
- Es ist eine andere Aufgabe dieser Erfindung, eine Vektorrechnerschaltung der beschriebenen Art bereitzustellen, die schnell die Gesamtsumme von mehr als zwei Komponenten berechnen kann.
- Es ist noch eine andere Aufgabe dieser Erfindung, eine Vektorrechnerschaltung der beschriebenen Art bereitzustellen, die zur Verarbeitung eines Vektors oder von Vektoren mit enorm vielen Komponenten gut geeignet ist.
- Die Erfindung ist in den Patentansprüchen 1 und 3 dargestellt.
- Gemäß einem Gesichtspunkt dieser Erfindung wird eine Vektorrechnerschaltung bereitgestellt, die zum Ausführen einer Berechnung auf Vektoren verwendet wird, um ein Ergebnis der Berechnung als Antwort auf einen ersten Vektor, der aus einem ersten Satz mehrerer Komponenten besteht, und einen zweiten Vektor, der aus einem zweiten Satz mehrerer Komponenten besteht, und wahlweise einen dritten Vektor, der aus einem dritten Satz mehrerer Komponenten besteht, zu liefern. Die Vektorrechnerschaltung umfaßt eine Auswahleinrichtung, die auf ein Steuersignal anspricht, um eine ausgewählte Komponente des dritten Komponentensatzes oder einen festen Wert von Null als eine ausgewählte Komponente auszuwählen, eine auf die ausgewählte Komponente und die erforderlichen Komponenten des ersten und des zweiten Komponentensatzes ansprechende Übertragsicherungs-Addiereinrichtung zum Ausführen einer Übertragsicherungsaddition zwischen der ausgewählten Komponente und den erforderlichen Komponenten des ersten und des zweiten Komponentensatzes, um insgesamt eine lokale Summe und einen Übertrag als Ergebnis der Übertragsicherungsaddition zu erzeugen, eine auf die lokale Summe und den Übertrag ansprechende Zusatzaddiereinrichtung zum Addieren des Übertrags zu der lokalen Summe, um eine Hauptsumme der lokalen Summe und des Übertrags zu erzeugen, und eine Einrichtung zum Erzeugen der Hauptsumme als das Ergebnis der Vektorberechnung.
- Gemäß einem anderen Gesichtspunkt dieser Erfindung wird eine Vektorrechnerschaltung bereitgestellt, die zum Ausführen einer Berechnung auf Vektoren verwendet wird, um ein Ergebnis der Vektorberechnung als Antwort auf einen ersten Vektor, der aus einem ersten Satz mehrerer Komponenten besteht, und einen zweiten Vektor, der aus einem zweiten Satz mehrerer Komponenten besteht, und wahlweise einen dritten Vektor, der aus einem dritten Satz mehrerer Komponenten besteht, zu liefern. Die Vektorrechnerschaltung umfaßt eine übertragsicherungs-Addiereinrichtung, die auf den ersten, zweiten und dritten Vektor zum Ausführen einer Übertragsicherungsaddition erforderlicher Komponenten des ersten bis dritten Komponentensatzes anspricht, um insgesamt eine lokale Summe und einen Übertrag als die Übertragsicherungsaddition zu liefern, eine erste Auswahleinrichtung zum Auswählen entweder der lokalen Summe oder der erforderlichen Komponente des ersten Komponentensatzes als eine erste ausgewählte Komponente, eine zweite Auswahleinrichtung zum Auswählen entweder des Übertrags oder der erforderlichen Komponente des zweiten Komponentensatzes als eine zweite ausgewählte Komponente, eine Zusatzaddiereinrichtung, die mit der ersten und der zweiten Auswahleinrichtung zum Addieren der ersten ausgewählten Komponente zu der zweiten ausgewählten Komponente verbunden ist, um das Ergebnis der Vektorberechnung zu erzeugen.
- Fig. 1 ist ein Blockdiagramm einer herkömmlichen Vektorrechnerschaltung zur Verwendung beim Ausführen einer Vektoraddition;
- Fig. 2 ist ein Zeitdiagramm zur Beschreibung der Wirkungsweise der in Fig. 1 veranschaulichten Vektorrechnerschaltung;
- Fig. 3 ist ein anderes Zeitdiagramm zur Beschreibung einer anderen Wirkungsweise der in Fig. 1 veranschaulichten Vektorrechnerschaltung;
- Fig. 4 ist ein Blockdiagramm einer Vektorrechnerschaltung gemäß einer ersten Ausführungsform dieser Erfindung;
- Fig. 5 ist ein Zeitdiagramm zur Beschreibung der Wirkungsweise der in Fig. 4 veranschaulichten Vektorrechnerschaltung;
- Fig. 6 ist ein ähnliches Zeitdiagramm zur Beschreibung einer anderen Wirkungsweise der in Fig. 4 veranschaulichten Vektorrechnerschaltung;
- Fig. 7 ist ein anderes Zeitdiagramm zur Beschreibung einer weiteren Wirkungsweise der in Fig. 4 veranschaulichten Vektorrechnerschaltung;
- Fig. 8 ist ein Blockdiagramm einer Vektorrechnerschaltung gemäß einer zweiten Ausführungsform dieser Erfindung;
- Fig. 9 ist ein Zeitdiagramm zur Beschreibung der Wirkungsweise der in Fig. 8 veranschaulichten Vektorrechnerschaltung;
- Fig. 10 ist ein Blockdiagramm einer Vektorrechnerschaltung gemäß einer dritten Ausführungsform dieser Erfindung;
- Fig. 11 ist ein Zeitdiagramm zur Beschreibung der Wirkungsweise der in Fig. 10 veranschaulichten Vektorrechnerschaltung; und
- Fig. 12 ist ein anderes Zeitdiagramm zur Beschreibung einer anderen Wirkungsweise der in Fig. 10 veranschaulichten Vektorrechnerschaltung.
- Gemäß Fig. 1 wird zuerst zum besseren Verständnis dieser Erfindung eine herkömmliche Vektorrechnerschaltung beschrieben werden. Die herkömmliche Vektorrechnerschaltung wird zum Ausführen einer Vektoraddition mehrerer Vektoren verwendet. In diesem Zusammenhang ist die veranschaulichte Vektorrechnerschaltung durch eine Vektoraddiereinrichtung 15 bestimmt, die mit ersten und zweiten Eingabeleitungen 16 und 17 verbunden ist. Zwei der Vektoren werden jeweils durch die erste und die zweite Eingabeleitung 16 und 17 der Vektoraddiereinrichtung 15 zugeführt und können erste und zweite Vektoren A und B genannt werden (derartige Vektoren werden hier eher mit gewöhnlichen Buchstaben als mit fettgedruckten Buchstaben bezeichnet).
- Es wird angenommen, daß der erste Vektor A aus einer Reihe von Komponenten oder Elementen eines ersten Satzes (a&sub1;, a&sub2;, ..., an) besteht, die jeweils erste bis n-te Komponente des ersten Vektors A genannt werden. Desgleichen besteht der zweite Vektor B aus einer Reihe von Komponenten eines zweiten Satzes (b&sub1;, b&sub2;, ..., bn), auf die als erste bis n-te Komponente des zweiten Vektors B verwiesen wird. Somit wird bei dem veranschaulichten Beispiel angenommen, daß der erste Vektor A die gleiche Anzahl an Komponenten besitzt wie der zweite Vektor B.
- Die Vektoraddition des ersten und des zweiten Vektors A und B ist zum Berechnen eines Ausgabevektors (O, der aus einer Reihe von Ausgabekomponenten (O&sub1;, O&sub2;, ..., On) besteht, die erste bis n-te Ausgabekomponente genannt werden können. Insbesondere summiert die Vektoraddiereinrichtung 15 der Reihe nach die Komponenten des ersten und des zweiten Satzes (a&sub1;, a&sub2;, ..., an) und (b&sub1;, b&sub2;, ... bn) auf, um die ersten bis n-ten Ausgabekomponenten (O&sub1;, O&sub2;, ..., On) zu erzeugen, die auf einer Ausgabeleitung 18 erscheinen. Deshalb ist die Ausgabekomponente Oi insgesamt durch:
- Oi = ai + bi,
- gegeben, wobei i eine Variable zwischen 1 und n, beides eingeschlossen, ist.
- Es sollte hier bemerkt werden, daß die veranschaulichte Vektoraddiereinrichtung 15 ebenfalls zum Ausführen der Vektoraddition dreier Vektoren verwendet wird, die erster, zweiter und dritter Vektor A, B und C genannt werden und aus einem ersten, zweiten und dritten Komponentensatz (a&sub1;, a&sub2;, ..., an), (b&sub1;, b&sub2;, ..., bn) und (c&sub1;, c&sub2;, ..., cn) bestehen. In diesem Fall summiert die Vektoraddiereinrichtung 15 zuerst der Reihe nach die Komponenten ai des ersten Satzes und die entsprechenden Komponenten bi des zweiten Satzes auf, um einen lokalen Summenvektor D, bestehend aus lokalen Summenkomponenten di, zu erzeugen, wobei i ebenfalls eine Variable zwischen 1 und n, beides eingeschlossen, ist. Die vorstehend erwähnte Summierung ist deshalb durch
- di = ai + bi
- bestimmt. Die lokalen Summenkomponenten di werden der Reihe nach zu der Ausgabeleitung 18 gesendet.
- Danach werden die lokalen Summenkomponenten di durch die Vektoraddiereinrichtung 15 der Reihe nach zu den Komponenten ci des dritten Satzes addiert, um einen Ausgabevektor zu erzeugen, der wieder mit O bezeichnet wird und aus den Ausgabekomponenten O&sub1;, O&sub2;, ... On) besteht, die auf der Ausgabeleitung 18 erscheinen. Folglich werden die Ausgabekomponenten Oi insgesamt durch
- oi = ai + bi + ci
- dargestellt.
- Im allgemeinen werden alle lokalen Summenkomponenten d&sub1; bis dn durch die Vektoraddiereinrichtung 15 berechnet und danach jeweils zu den Komponenten des dritten Satzes addiert. Aus dieser Tatsache ist leicht verständlich, daß die lokalen Summenkomponenten di in einem Register oder Registern (nicht gezeigt) gehalten und danach der Vektoraddiereinrichtung 15 wieder zugeführt werden sollten.
- In der Praxis weist die Vektoraddiereinrichtung 15 zusätzlich zu einer Addiereinrichtung mehrere Flip-Flops auf, um die Vektoraddition in fortlaufender Weise auszuführen. Jedes Paar aus Komponenten des ersten und des zweiten Satzes wird nacheinander durch die Flip-Flops verzögert als Antwort auf eine Folge von Takten mit einer Taktperiode und wird berechnet, um als eine der Ausgabekomponenten nach einer bestimmten Dauer durch die Ausgabeleitung 18 erzeugt zu werden. Hier ist es möglich, die bestimmte Dauer als eine Berechnungszeit für das Berechnen der Vektoraddition eines einzigen Komponentenpaares zu bestimmen.
- Gemäß Fig. 2 zusammen mit Fig. 1 werden die ersten bis dritten Vektoren A, B und C unter Verwendung der in Fig. 1 veranschaulichten Vektoraddiereinrichtung 15 in einer später zu beschreibenden Weise addiert. In Fig. 2 wird angenommen, daß die Berechnungszeit gleich mT ist, wobei m eine ganze Zahl und T für die vorstehend erwähnte Taktperiode repräsentativ ist. Zusätzlich werden die ersten Komponenten a&sub1; und b&sub1; des ersten und des zweiten Vektors A und B durch die erste und die zweite Eingabeleitung 16 und 17 synchron mit einem nullten der Takte der Vektoraddiereinrichtung 15 übergeben. Danach werden durch die erste und die zweite Eingabeleitung 16 und 17 nacheinander die zweiten bis n-ten Komponenten a&sub2; und b&sub2; bis an und bn jeweils synchron mit ersten bis (n - 1)-ten der Takte der Vektoraddiereinrichtung 15 übergeben. Folglich werden erste bis n- te Komponentenpaare entsprechend in ersten bis n-ten Zeitintervallen oder Taktperioden angeordnet.
- Ansprechend auf die ersten Komponenten a&sub1; und b&sub1; des ersten und des zweiten Vektors A und B erzeugt die Vektoraddiereinrichtung 15 durch die Ausgabeleitung 18 eine erste Komponente d&sub1; der lokalen Summenkomponenten des lokalen Summenvektors D zeitlich abgestimmt auf einen m-ten Takt. Folglich erscheint auf der Ausgabeleitung 18 die erste lokale Summenkomponente d&sub1; synchron mit dem m-ten Takt (m), wie in Fig. 2 gezeigt ist. Desgleichen erscheint auf der Ausgabeleitung 18 die zweite bis n-te Komponente d&sub2; bis dn der lokalen Summenkomponenten jeweils synchron mit (m + 1)-ten bis (n + m - 1)-ten Takten. Die erste bis n-te lokale Summenkomponente d&sub1; bis dn wird zu den Registern gesendet, um wieder zu der Vektoraddiereinrichtung 15 gesendet zu werden.
- In Fig. 2 werden der dritte Vektor C und der lokale Summenvektor D durch die erste und die zweite Eingabeleitung 16 und 17 der Vektoraddiereinrichtung 15 übergeben. Insbesondere wird der Vektoraddiereinrichtung 15 gleichzeitig mit der ersten Komponente c&sub1; des dritten Vektors C die erste lokale Summenkomponente d&sub1; synchron mit dem (n + m - 1)-ten Takt zugeführt. Ähnlich werden die zweite bis n-te Komponente c&sub2; bis cn des dritten Vektors C und die zweite bis n-te lokale Summenkomponente d&sub2; bis dn synchron mit dem (n + m)-ten bis (2n + m - 1)-ten Takt paarweise der Vektoraddiereinrichtung 15 zugeführt.
- Folglich erscheint auf der Ausgabeleitung 18 eine erste Ausgabekomponente O&sub1; des Ausgabevektors O synchron mit einem (n + 2m - 1)-ten Takt. In gleicher Weise werden durch die Ausgabeleitung 18 die zweiten bis n-ten Ausgabekomponenten O&sub2; bis On entsprechend zeitlich abgestimmt auf den (n + 2m)-ten bis 2(n + m - 1)-ten Takt erzeugt.
- Demgemäß wird eine Zeitdauer von 2(n + m - 1)T benötigt, um die Vektoraddition dreier Vektoren auszuführen, von denen jeder aus n Komponenten besteht.
- Sei die in Fig. 1 veranschaulichte Vektoraddiereinrichtung 15 zum Berechnen einer Gesamtsumme von Komponenten verwendet. Es wird vorausgesetzt, daß die Anzahl der Komponenten gleich 2n ist, wobei n eine positive ganze Zahl ist. In diesem Fall werden die 2n Komponenten in eine erste und zweite Gruppe einge teilt, von denen jede aus 2n-1 Komponenten besteht. Die erste und die zweite Gruppe aus Komponenten kann jeweils als ein erster und zweiter Vektor A und B betrachtet werden. Die Komponenten des ersten und des zweiten Vektors A und B werden insgesamt mit ai und bi bezeichnet, und die Vektoraddition von ai und bi wird in der vorstehend erwähnten Weise ausgeführt, um lokale Summenkomponenten ci zu erzeugen, deren Anzahl gleich 2n-1 ist. Desgleichen werden 2n-1 lokale Summenkomponenten ci weiter in erste und zweite Teile geteilt, von denen jeder aus 2n-2 lokalen Summenkomponenten besteht. Die Vektoraddition wird zwischen den lokalen Summenkomponenten ai' des ersten Teils und denjenigen bi' des zweiten Teils ausgeführt, um 2n-2 Hilfssummenkomponenten ci' zu erzeugen. Danach werden ähnliche Verfahren wiederholt, indem derartige Hilfssummenkomponenten halbiert werden und die Vektoraddition zwischen eingeteilten Komponenten ausgeführt wird, bis die Berechnung der Gesamtsumme zu Ende geht.
- Sei eine Berechnungszeit zwischen zwei Komponenten durch mT bestimmt wie in dem vorstehend erwähnten Beispiel, wenn die Vektoraddiereinrichtung 15 verwendet wird, um die Gesamtsumme von den Komponenten zu berechnen, deren Anzahl gleich 2n ist.
- Gemäß Fig. 3 zusätzlich zu Fig. 1 werden erste a&sub1; und b&sub1; der Komponenten des ersten und des zweiten Vektors A und B zeitlich abgestimmt auf einen nullten der Takte durch die erste und die zweite Eingabeleitung 16 und 17 der Vektoraddiereinrichtung 15 übergeben. Anschließend werden der Reihe nach zweite bis 2n-1-te Komponenten des ersten und des zweiten Vektors A und B jeweils synchron mit ersten bis (2n-1 - 1)-ten Takten der Vektoraddiereinrichtung 15 zugeführt. In Fig. 3 ist 2n-1 durch ein vereinfachtes Symbol r lediglich zur Vereinfachung der Erläuterung ersetzt. Das vereinfachte Symbol wird im Folgenden ebenfalls verwendet werden.
- Erste bis r-te c&sub1; bis cr der lokalen Summenkomponenten erscheinen, wie in Fig. 3 gezeigt, auf der Ausgabeleitung 18 jeweils synchron mit m-ten bis (r + m - 1)-ten Takten. Deshalb ist eine Berechnungszeit von (2n-1 + m - 1)T erforderlich, um die 2n-1 lokalen Summenkomponenten zu berechnen. Dies zeigt, daß eine erste lokale Berechnungszeit von (r + m - 1)T benötigt wird, um eine erste lokale Summe der 2n-1 lokalen Summenkomponenten zu berechnen.
- Danach werden die ersten bis r-ten lokalen Summenkomponenten c&sub1; bis cr in die ersten und zweiten Teile eingeteilt, von denen jeder aus 2n-2 Komponenten besteht. Ein erstes Paar a&sub1;' und b&sub1;' der Komponenten des ersten und des zweiten Teils werden synchron mit einem (r + m - 1)-ten Takt der Vektoraddiereinrichtung 15 zugeführt. Anschließend werden der Reihe nach zweite bis s-te Paare a&sub2;' und b&sub2;' bis as' und bs' jeweils als Antwort auf (r + m + 5 - 2) Takte der Vektoraddiereinrichtung 15 zugeführt, wobei 5 gleich 2n-2 ist. Die sich ergebenden Hilfssummenkomponenten ci' erscheinen als Antwort auf die (r + 2m - 1) bis (r + 5 + 2m - 2) Takte, wobei i eine Variable zwischen 1 und s, beides eingeschlossen, ist. Demgemäß wird eine zweite lokale Berechnungszeit für eine zweite lokale Summe von 2n-2 lokalen Summenkomponenten gleich (2n-2 + (m-1))T.
- In ähnlicher Weise sollten die lokalen Berechnungszeiten addiert werden, um eine Gesamtberechnungszeit zum Berechnen der Gesamtsumme der 2n Komponenten zu erhalten. Deshalb ist die Gesamtberechnungszeit durch
- gegeben.
- Um 2n Komponenten auf 2k Komponenten durch Ausführen der Addition in der vorstehend erwähnten Weise zu verringern, wobei k eine positive ganze Zahl kleiner als n ist, ist eine Teilberechnungszeit durch
- gegeben.
- Wenn n, m und k jeweils gleich 4, 3 und 2 sind, sind die Gesamtberechnungszeit und die Teilberechnungszeit entsprechend 23T und 16T.
- Gemäß Fig. 4 wird eine Vektorrechnerschaltung 21 gemäß einer ersten Ausführungsform dieser Erfindung in Verbindung mit einer Vektorerzeugungsschaltung 22 und einer Rechensteuerschaltung 23 verwendet, von denen beide in einer später zu beschreibenden Weise betriebsbereit sind. Die Vektorerzeugungsschaltung 22 können zum Beispiel Vektorregister sein, während die Rechensteuerschaltung 23 zum Beispiel eine Zeitsteuerung sein kann, die auf eine Weise betriebsbereit ist, die in Verbindung mit Fig. 5 beschrieben wird.
- Der Vektorrechnerschaltung 21 werden von der Vektorerzeugungsschaltung 22 erste und zweite Vektoren A und B zusammen mit ersten bis L-ten Hilfsvektoren C&sub1; bis CL zugeführt, wobei L eine positive ganze Zahl ist. Überdies wird von der Vektorerzeugungsschaltung 22 ein fester Wert von "0" (null) der Vektorrechnerschaltung 21 zugeführt.
- Es wird vorausgesetzt, daß jeder der ersten und zweiten Vektoren A und B und der ersten bis L-ten Hilfsvektoren C&sub1; bis CL aus ersten bis n-ten Komponenten besteht, wobei n ebenfalls eine positive ganze Zahl ist. In diesem Zusammenhang werden die ersten bis n-ten Komponenten des ersten und des zweiten Vektors A und B jeweils durch (a&sub1;, a&sub2;, ..., an) und (b&sub1;, b&sub2;, ..., bn) dargestellt. Desgleichen werden die ersten bis n-ten Komponenten des ersten bis L-ten Hilfsvektoren C&sub1; bis CL insgesamt durch (cj1, cj2, ..., cjn) dargestellt, wobei j eine Variable zwischen 1 und L, beides eingeschlossen, ist.
- Die ersten bis L-ten Vektoren C&sub1; bis CL werden einer Auswahlschaltung 25 übergeben, der von der Rechensteuereinheit 23 ein Steuersignal CT zugeführt wird und die als Antwort auf das Steuersignal gesteuert wird, wie im Laufe der Beschreibung verständlich werden wird. Der Auswahlschaltung 25 wird ebenfalls ein innerer Vektor V übergeben, der aus ersten bis n-ten Komponenten v&sub1; bis vn besteht und der später beschrieben werden wird.
- Unter diesen Umständen werden zu einem ersten Zeitpunkt die ersten Komponenten des ersten bis L-ten Hilfsvektors C&sub1; bis CL und des inneren Vektors V der Auswahlschaltung 25 als ein erster Komponentensatz zusammen mit dem festen Wert von Null zugeführt. Desgleichen werden die zweiten bis n-ten Komponenten der entsprechenden Vektoren C&sub1; bis CL als zweite bis n-te Komponentensätze jeweils in zweiten bis n-ten Zeitintervallen erzeugt. Demgemäß wird ein in einem i-ten Zeitintervall erzeugter i-ter Komponentensatz insgesamt durch cji, vi und 0 dargestellt, wobei i eine Variable zwischen 1 und n, beides eingeschlossen, ist.
- Ansprechend auf das Steuersignal CT wählt die Auswahlschaltung 25 eine von cij, vi und 0 als eine ausgewählte Komponente di in einem i-ten Zeitintervall aus. Da eine derartige Auswahl nacheinander in dem ersten bis n-ten Zeitintervall ausgeführt wird, erzeugt die Auswahlschaltung 25 einen dritten Vektor D, der aus ersten bis n-ten Komponenten d&sub1; bis dn besteht, die dritter Komponentensatz genannt werden können. Auf jeden Fall wird von der Auswahlschaltung 25 eine Komponente des dritten Satzes d&sub1; bis dn als eine ausgewählte Komponente erzeugt.
- Eine erste Addierschaltung 26 ist als Antwort auf den ersten, den zweiten und den dritten Vektor A, B und D betriebsbereit und weist eine Übertragsicherungs-Addiereinrichtung zum Ausführen einer Übertragsicherungsaddition der ersten bis dritten Vektoren A, B und D auf. Zusätzlich kann die erste Addierschaltung 26 mehrere Flip-Flops wie bei der Vektoraddiereinrichtung 15 (Fig. 1) aufweisen, um den ersten bis dritten Vektor A, B und D in fortlaufender Weise zu verarbeiten.
- Insbesondere werden der ersten Addierschaltung 26 in dem ersten Zeitintervall die ersten Komponenten a&sub1;, b&sub1; und d&sub1; des ersten bis dritten Vektors A, B und D parallel übergeben. Die zweiten bis n-ten Komponenten des ersten bis dritten Vektors A, B und D werden in dem zweiten bis n-ten Zeitintervall in ähnlicher Weise parallel der ersten Addierschaltung 26 übergeben. In diesem Fall wird die i-te Komponente d&sub1; des dritten Vektors D von der Auswahlschaltung 25 als die ausgewählte Komponente übergeben, während die verbleibenden i-ten Komponenten ai und bi des ersten und des zweiten Vektors A und B von der Vektorerzeugungsschaltung 22 als erforderliche Komponenten des ersten und des zweiten Vektors A und B übergeben werden.
- Unter diesen Umständen erzeugt die erste Addierschaltung 26 ein Ergebnis der Übertragsicherungsaddition der drei parallelen Komponenten, wenn eine bestimmte Berechnungszeit von mT nach dem Empfang der drei parallelen Komponenten verstrichen ist, wie in Fig. 1, wobei T für eine Taktperiode von Takten repräsentativ ist.
- Es wird hier erwähnt, daß wie in den Fign. 2 und 3 die ersten bis i-ten Zeitintervalle jeweils durch nullte bis (i-1)-te Takte bestimmt sind.
- Das Ergebnis der Übertragsicherungsaddition, das zu dem i- ten Zeitpunkt erscheint, ist in eine lokale Summe ei und einen Übertrag fi teilbar.
- Hierbei ist eine Summe der lokalen Summe ei und des Übertrags fi gleich einer Summe der drei Komponenten ai, bi und di, und ist deshalb durch
- ei + fi = ai + bi + di (1)
- gegeben. Insbesondere, wenn jede der Komponenten ai, bi und di durch z Bits dargestellt wird, wird jedes Bit ei(q) der lokalen Summe ei und jedes Bit fi(q+1) des Übertrags fi durch
- ei(q) = ai(q) bi(q) di(q) und
- fi(q+1) = ai(q)bi(q) + bi(q)di(q) + di(q)ai(q) (2)
- bestimmt, wobei ein umschlossenes Pluszeichen eine Addition modulo 2 darstellt und q eine Variable zwischen 0 und z, beides eingeschlossen, ist.
- Folglich kann eine Folge der lokalen Summen und eine Folge der Überträge jeweils als erste und zweite Ergebnisvektoren E und F betrachtet werden, wenn von dem ersten Zeitintervall bis zu dem n-ten Zeitintervall die lokalen Summen und die Überträge der Reihe nach erzeugt werden. Der erste und der zweite Ergebnisvektor E und F werden deshalb durch
- E = (e&sub1;, e&sub2;, ..., en) und
- F = (f&sub1;, f&sub2;, ..., fn)
- dargestellt.
- Eine zweite Addierschaltung 27 ist mit der ersten Addierschaltung 26 in Kaskade geschaltet verbunden, um den ersten Ergebnisvektor E zu dem zweiten Ergebnisvektor F zu addieren und einen Hauptvektor G zu erzeugen, der aus ersten bis n-ten Hauptsummen (g&sub1;, g&sub2;, ..., gn) besteht. Aus dieser Tatsache ist es leicht verständlich, daß die i-te Hauptsumme gi durch
- gi = ei + fi
- gegeben ist.
- Einerseits wird die Hauptsumme gi schließlich als ein Ergebnis der Vektorberechnung erzeugt und andererseits zurück zu der Auswahlschaltung 25 als die Komponente vi des inneren Vektors V geführt.
- Es sollte hier bemerkt werden, daß eine derartige Kaskadenschaltung der ersten und der zweiten Addierschaltung 26 und 27 keinen zusätzlichen Takt erfordert und niemals die Berechnungszeit verlängert.
- Gemäß Fig. 5 zusammen mit Fig. 4 sei die Vektoraddition zwischen dem ersten und dem zweiten Vektor A und B und dem zweiten Hilfsvektor C&sub2; ausgeführt. In diesem Fall wird vorausgesetzt, daß jeder Vektor A, B und C&sub2; aus n Komponenten besteht, und daß jede Berechnungszeit für die drei entsprechenden Komponenten durch mT bestimmt ist, wie vorstehend erwähnt. In diesem Fall bestehen der erste und der zweite Vektor A und B jeweils aus (a&sub1;, a&sub2;, ..., an) und (b&sub1;, b&sub2;, ..., bn), während der zweite Hilfsvektor C&sub2; aus (c&sub2;&sub1;, c&sub2;&sub2;, ..., c2n) besteht.
- Zuerst wählt die Auswahlschaltung 25 als Antwort auf das Steuersignal CT nacheinander die erste bis n-te Komponente (c&sub2;&sub1;, c&sub2;&sub2;, ..., c2n) des zweiten Hilfsvektors C&sub2; aus. Die sich ergebenden Komponenten (c&sub2;&sub1;, c&sub2;&sub2;, ..., c2n) werden von der Auswahlschaltung 25 jeweils als die erste bis n-te Komponente (d&sub1;, d&sub2;, ..., dn) des dritten Vektors D der ersten Addierschaltung 26 zugeführt. Andererseits werden der ersten Addierschaltung 26 die ersten bis n-ten Komponenten a&sub1; bis an und b&sub1; bis bn des ersten und des zweiten Vektors A und B paarweise übergeben.
- In Fig. 5 sind die ersten Komponenten a&sub1;, b&sub1; und c&sub2;&sub1; der entsprechenden Vektoren A, B und C&sub2; mit dem nullten Takt synchronisiert, während die zweiten Komponenten a&sub2;, b&sub2; und c&sub2;&sub2; mit dem ersten Takt synchronisiert sind. Die ersten Komponenten a&sub1;, b&sub1; und c&sub2;&sub1; werden durch die erste und die zweite Addierschaltung 26 und 27 addiert und synchron mit dem m-ten Takt als die 10 Hauptsumme g&sub1; erzeugt. Desgleichen werden die zweiten Komponenten a&sub2;, b&sub2; und c&sub2;&sub2; bis n-ten Komponenten an, bn und c2n nacheinander addiert, um synchron mit dem (m + 1)-ten bis (n + m - 1) -ten Takt als zweite bis n-te Hauptsumme erzeugt zu werden, wie in Fig. 5 veranschaulicht ist.
- Dies zeigt, daß eine Gesamtberechnungszeit gleich (n + m - 1)T wird, um die Berechnung auf drei Vektoren auszuführen, von denen jeder aus n Komponenten besteht. Wenn n und m gleich 4 und 3 sind, kann die Gesamtberechnungszeit durch 6T dargestellt werden und ist im Vergleich zu der herkömmlichen Gesamtberechnungszeit von 12T, wie in Verbindung mit Fig. 2 beschrieben, wesentlich verkürzt.
- Gemäß Fig. 6 zusätzlich zu Fig. 4 wird die Berechnung einer Gesamtsumme aus 2n Komponenten beschrieben. Die Komponenten werden in erste und zweite Gruppen eingeteilt, die als erste und zweite Vektoren A und B betrachtet werden können. Der erste und zweite Vektor A und B bestehen jeweils aus ersten bis 2n-1- ten (nämlich r-ten) Komponenten (a&sub1;, a&sub2;, ..., ar) und (b&sub1;, b&sub2;, ..., br), wobei r gleich 2n-1 ist. Es wird wie in den Fign. 1 bis 3 angenommen, daß die Berechnungszeit mT benötigt wird, um die Vektoraddition jedes Komponentensatzes der drei Vektoren auszuführen.
- Unter diesen Umständen erscheint vor der Erzeugung des mten Taktes keine Hauptsumme von der zweiten Addierschaltung 27. Deshalb kann durch die erste und die zweite Addierschaltung 26 und 27 jedes Paar der ersten bis m-ten Komponenten des ersten und des zweiten Vektors A und B nacheinander synchron mit dem nullten bis (m - 1)-ten Takt addiert werden. Dies in Betracht ziehend, wählt die Auswahlschaltung 25 vor der Erzeugung des m- ten Taktes den festen Wert Null als die Komponenten des dritten Vektors D aus.
- Folglich führt die erste Addierschaltung 26 nacheinander die Vektoraddition der Komponenten ai und bi mit den auf "0" festgehaltenen Komponenten di aus, um die lokale Summe ei und den Übertrag fi zu erzeugen, die durch Gleichung (1) bestimmt sind. Die lokale Summe ei und der Übertrag fi werden durch die zweite Addierschaltung 27 aufsummiert, um die Hauptsumme gi zu erzeugen, die für das Ergebnis der Vektoraddition von ai, bi und 0 repräsentativ ist.
- Nachdem die Berechnungszeit von mT verstrichen ist, wird die Hauptsumme g&sub1;, g&sub2; ... der Auswahischaltung 25 als die Komponente vi des inneren Vektors V zugeführt. Folglich erscheint die erste Hauptsumme g&sub1; synchron mit dem m-ten Takt, wie in Fig. 6 veranschaulicht. Auf jeden Fall werden nach dem Erzeugen des m-ten Taktes die Hauptsummen g&sub1;, g&sub2; ... nacheinander als die (m + 1)-te, (m + 2)-te, ... Komponente des dritten Vektors D durch die Auswahlschaltung 25 ausgewählt. Folglich kann die veranschaulichte Vektorrechnerschaltung 21 die Berechnung auf drei Vektoren A, B und D ausführen, nachdem der m-te Takt erzeugt ist. Dies zeigt, daß nach Empfang des m-ten Taktes die (m + 1)-ten bis 2n-1-ten Komponentenpaare des ersten und des zweiten Vektors A und B zu den (m + 1)-ten bis 2n-1-ten Komponenten dm+1 bis dr des dritten Vektors D addiert werden. Wenn die (m + 1)-ten bis 2n-1-ten Komponenten insgesamt an einer i-ten Komponente beschrieben werden, können die Hauptsummen insgesamt durch gi-m dargestellt werden.
- Somit führt die erste Addierschaltung 26 die Übertragsicherungsaddition von ai, bi und di aus, um nacheinander die lokale Summe ei und den Übertrag fi bezüglich der (m + 1)-ten bis 2n-1-ten Komponenten des ersten und des zweiten Vektors A und B zu erzeugen.
- Die zweite Addierschaltung 27 addiert nacheinander die lokale Summe ei und den Übertrag fi, um die Hauptsumme gi zu erzeugen, die zu der Auswahlschaltung 25 als die Komponente vi-m des inneren Vektors V gesendet wird.
- Seien die Hauptsummen von dem m-ten Takt an gezählt und durch gi dargestellt. Von den Ausgabekomponenten gi werden lediglich Teilsummen der Hauptsummen, nämlich g&sub1;, g&sub2;, ... gr-m, zu der Auswahlschaltung 25 gesendet, während die verbleibenden Hauptsummen gr-m+1 bis gr als Ergebnisse der Vektorberechnungen erscheinen.
- Wie in Fig. 6 gezeigt ist, wird eine erste lokale Berechnungszeit von (2n-1 + m - 1)T benötigt, um die verbleibenden Hauptsummen, m an der Zahl, zu erhalten.
- Die Anzahl der verbleibenden Hauptsummen gr-m+1 bis gr ist gleich m und sie sind durch
- gr-m+1 = ar-m+1 + ar-2m+1 + ar-3m+1 + ...
- + br-m+1 + br-2m+1 + br-3m+1 + ...
- gr-m+2 = ar-m+2 + ar-2m+2 + ar-3m+2 + ...
- + br-m+2 + br-m+2 + br-3m+2 + ...
- .
- .
- .
- gr = ar + ar-m + ar-2m + ...
- + br + br-m + br-2m + ...
- gegeben.
- Demgemäß ist es möglich, die Gesamtsumme der 2n Komponenten zu berechnen, indem die vorstehend erwähnten Hauptsummen, deren Anzahl gleich m ist, zusammengerechnet werden.
- Hierbei werden Überlegungen über eine zweite lokale Berechnungszeit gemacht, um die Hauptsummen, m an der Zahl, zusammenzurechnen. Zuerst wird eine bestimmte positive Zahl k so ausgewählt, daß m kleiner als 2k und größer als 2k-1 ist, nämlich:
- 2k > m > 2k-1,
- In diesem Fall kann die zweite lokale Berechnungszeit durch
- {2k-1 + k(m-1)}T
- dargestellt werden.
- Eine Gesamtberechnungszeit für die Gesamtsumme ist gleich der Summe der ersten und der zweiten lokalen Berechnungszeit und deshalb durch
- (2n-1 + m-1)T + {2k-1 + k(m-1)}T
- = {2n-1 + 2k-1 + (k+1) (m-1)}T
- gegeben.
- Wenn n, m und k jeweils gleich 4, 3 und 2 sind, wird die Gesamtberechnungszeit gleich 17T.
- Gemäß Fig. 7 wird eine andere Berechnung ausgeführt, indem die in Fig. 4 veranschaulichte Vektorrechnerschaltung 21 verwendet wird, um eine Gesamtsumme des ersten und des zweiten Vektors A und B zu berechnen, von denen jeder aus Komponenten 2n-1 an der Zahl, besteht. In Fig. 7 werden erste bis m-te Hauptsummen in der vorstehend erwähnten Weise bezüglich der ersten bis p-ten Komponenten berechnet, wobei p = 2n-1 -t und t dann wieder eine positive ganze Zahl darstellt. Bezüglich der verbleibenden Komponenten, t an der Zahl, wird die Vektoraddition zweier Vektoren nach der Erzeugung eines p-ten Taktes ausgeführt, wie in Fig. 7 gezeigt ist. Folglich werden Hauptsummen, (m + r) an der Zahl, leicht berechnet und können durch gp-m+1, gp-m+2, ..., gp, ..., gr dargestellt werden. Deshalb ist es möglich, die Anzahl der Hauptsummen bei einer bestimmten Anzahl, die nicht kleiner als m ist, auszuwählen.
- Gemäß Fig. 8 werden einer Vektorrechnerschaltung 21' gemäß einer zweiten Ausführungsform dieser Erfindung von einer Vektorerzeugungsschaltung (in Fig. 8 nicht gezeigt) erste, zweite und dritte Vektoren A, B und C zugeführt, die jeweils aus ersten bis n-ten Komponenten (a&sub1;, a&sub2;, ..., an), (b&sub1;, b&sub2;, ..., bn) und (c&sub1;, c&sub2;, ..., cn) bestehen. Die ersten bis dritten Vektoren A bis C werden einer ersten Addierschaltung 26 übergeben, die in Aufbau und Betrieb der in Fig. 4 veranschaulichten ähnlich ist, während der erste und der zweite Vektor A und B ersten und zweiten Auswahleinrichtungen 31 und 32 übergeben wird.
- Die erste Addierschaltung 26 führt eine Vektoraddition der ersten bis dritten Vektoren A bis C in der in Fig. 4 veranschaulichten Weise aus, um ein Ergebnis der Übertragsicherungsaddition zu erzeugen, das in erste und zweite lokale Vektoren D und E teilbar ist. Der erste und der zweite lokale Vektor D und E bestehen aus ersten bis n-ten lokalen Komponenten (d&sub1;, d&sub2;, ... dn) und (e&sub1;, e&sub2;, ..., en), die jeweils bei der Übertragsicherungsaddition erscheinende lokale Summen und Überträge darstellen. Entsprechend den Gleichungen (1) und (2) kann die lokale Summe und der Übertrag insgesamt durch
- di + ei = ai + bi + ci,
- di(q) ai(q) bi(q) ci(q) und
- ei(q) ai(q)bi(q) + bi(q)ci(q) + ci(q)ai(q) (3)
- gegeben werden, wobei i zwischen 1 und n, beides eingeschlossen, veränderlich und q eine Variable zwischen 0 und z ist, wenn jede Komponente ai, bi und ci aus z Bits besteht.
- Der erste und der zweite lokale Vektor D und E werden der ersten und der zweiten Auswahleinrichtung 31 und 32 geliefert, denen jeweils der erste und der zweite Vektor A und B zugeführt wird. Die erste und die zweite Auswahleinrichtung 31 und 32 ist als Antwort auf ein Steuersignal (nicht gezeigt), das von einer Rechensteuerschaltung (in Fig. 8 nicht gezeigt) übergeben wird, betriebsbereit.
- Folglich wählt die erste Auswahleinrichtung 31 entweder die Komponente ai des ersten Vektors A oder die Komponente di des ersten Hilfsvektors D aus, um eine erste ausgewählte Komponente fi zu erzeugen, die einen ersten ausgewählten Vektor F bildet. Dies zeigt, daß der erste ausgewählte Vektor F aus (f&sub1;, f&sub2;, ..., fn) besteht. Desgleichen wählt die zweite Auswahleinrichtung 32 entweder die Komponente bi des zweiten Vektors B oder die Komponente ei des zweiten Hilfsvektors E aus, um eine zweite ausgewählte Komponente gi zu erzeugen, die einen zweiten ausgewählten Vektor G bildet, der aus (g&sub1;, g&sub2;, ..., gn) besteht.
- Der erste und der zweite ausgewählte Vektor F und G werden zu einer zweiten Addierschaltung 27 gesendet, die der in Fig. 4 veranschaulichten in Aufbau und Betrieb ähnlich ist. Die zweite Addierschaltung 27 addiert die erste ausgewählte Komponente fi zu der zweiten ausgewählten Komponente gi, um einen Ausgabevektor H zu erzeugen, der aus ersten bis n-ten Ausgabekomponenten (h&sub1;, h&sub2;, ..., hn) besteht. In diesem Fall ist die i-te Ausgabekomponente hi durch
- hi = fi + gi
- gegeben.
- Von neuem gemäß Fig. 9 und wieder Fig. 8 wird angenommen, daß die ersten bis dritten Vektoren erste bis n-te Komponenten (a&sub1;, a&sub2;, .., an), (b&sub1;, b&sub2;, ..., bn) und (c&sub1;, c&sub2;, ..., cn)
- besitzen, und unter Verwendung der in Fig. 8 veranschaulichten Vektorrechnerschaltung 21' addiert werden. Es wird ebenfalls angenommen, daß erste bis n-te Sätze dreier Komponenten (a&sub1;, b&sub1;, c&sub1;), (a&sub2;, b&sub2;, c&sub2;), ..., (an, bn, cn) nacheinander der Vektorrechnerschaltung 21' übergeben werden, und daß eine Berechnungszeit für jeden Satz gleich mT ist, wobei m eine positive ganze Zahl und T die Taktperiode ist.
- Jeder Satz der drei Komponenten wird insgesamt mit ai, bi und ci bezeichnet und durch die erste Addierschaltung 26 in die erste und die zweite lokale Komponente di und ei addiert.
- Bei der Vektoraddition dreier Vektoren wählen die erste und die zweite Auswahleinrichtung 31 und 32 als Antwort auf das Steuersignal jeweils den ersten und den zweiten Hilfsvektor D und E aus. Deshalb werden die ersten lokalen Komponenten di und ei durch die erste und die zweite Auswahleinrichtung 31 und 32 ausgewählt, um jeweils als die erste und die zweite ausgewählte Komponente fi und gi erzeugt zu werden. Danach werden die erste und die zweite ausgewählte Komponente fi und gi durch die zweite Addierschaltung 27 addiert, um die Ausgabekomponente hi zu erzeugen.
- Wie in Fig. 9 gezeigt ist, wird der erste Satz der Komponenten a&sub1;, b&sub1; und c&sub1; synchron mit dem nullten Takt der Vektorrechnerschaltung 21' übergeben, während die Ausgabekomponente h&sub1; synchron mit dem m-ten Takt erzeugt wird. Die Ausgabekomponente hn, die aus dem n-ten Satz von an, bn und cn folgt, wird synchron mit einem (n + m - 1)-ten Takt erzeugt. Demgemäß kann die Vektoraddition dreier Vektoren in einer Berechnungszeit von (n + m - 1)T beendet werden.
- Gemäß den Fign. 10 und 11 ist eine Vektorrechnerschaltung 21" gemäß einer dritten Ausführungsform dieser Erfindung in Aufbau und Betrieb der in Fig. 8 veranschaulichten ähnlich, außer daß der Ausgabevektor H der ersten Addierschaltung 26 als dritter Vektor C zugeführt wird. Dieser Aufbau ist hilfreich zur Berechnung einer Gesamtsumme von Komponenten, deren Anzahl gleich 2n ist, wie in Fig. 4. Die Komponenten, 2n an der Zahl, werden in erste und zweite Vektoren A und B eingeteilt, die aus ersten bis 2n-1-ten (nämlich r-ten) Komponenten (a&sub1;, a&sub2;, ..., ar) und (b&sub1;, b&sub2;, ..., br) bestehen, wobei r gleich 2n-1 ist.
- Wie in Fig. 11 gezeigt, werden die ersten bis r-ten Komponenten jeweils zeitlich abgestimmt auf den nullten bis (r - 1)-ten Takt nacheinander der Vektorrechnerschaltung 21" paarweise übergeben. Seien die i-ten Komponenten ai und bi durch die Vektorrechnerschaltung 21" addiert, wobei i zwischen 1 und 2n-1, beides eingeschlossen, veränderlich ist und während einer Berechnungszeit von mT wie in den Fign. 4 und 8 berechnet.
- Wie in Fig. 4 können nach Empfang des m-ten Taktes die Ausgabekomponenten als Komponenten des dritten Vektors C verwendet werden. Unter Berücksichtigung des Vorstehenden führt die veranschaulichte Vektorrechnerschaltung 21" die Vektoraddition des ersten und des zweiten Vektors A und B aus, wenn die ersten bis m-ten Komponenten der Vektorrechnerschaltung 21" übergeben werden. Die Vektoraddition des ersten bis dritten Vektors A, B und C wird in der Vektorrechnerschaltung 21" ausgeführt, wenn der m-te Takt erzeugt ist. Zur einfacheren Beschreibung werden die Ausgabekomponenten h&sub1; bis hr der ersten Addierschaltung 26 jeweils als (m + 1)-te bis (m + r)-te Komponenten cm+1 bis cm+r übergeben.
- Insbesondere, wenn i nicht größer als (m + 1) ist, wählen die erste und die zweite Auswahleinrichtung 31 und 32 jeweils die Komponenten ai und bi des ersten und des zweiten Vektors A und B aus. Deshalb werden von der ersten Auswahleinrichtung 31 die Komponenten ai des ersten Vektors nacheinander als die ersten ausgewählten Komponenten fi gesendet, während die Komponenten bi des zweiten Vektors B von der zweiten Auswahleinrichtung 32 als die zweiten ausgewählten Komponenten gi nacheinander gesendet werden, wobei i = 1, 2, ..., m.
- Die ersten und die zweiten ausgewählten Komponenten fi und gi werden durch die zweite Addierschaltung 27 addiert, um als die Ausgabekomponenten hi erzeugt zu werden, die nach dem Verstreichen der Berechnungszeit mT nacheinander erscheinen, wie in Fig. 11 gezeigt. In diesem Zusammenhang ist es leicht verständlich, daß die zweite Addierschaltung 27 zusätzlich zu einer Addiereinrichtung mehrere Flip-Flop-Stufen aufweist, m an der Zahl.
- Wenn i größer als m ist, nämlich i = m + 1, m + 2, 2n- 1, werden die Ausgabekomponenten hi-m nacheinander zu der ersten Addierschaltung 26 als die i-ten Komponenten des dritten Vektors C zurück gesendet. Die erste Addierschaltung 26 führt als Antwort auf die m-ten bis (r - 1)-ten Takte die Übertragsicherungsaddition dreier Komponenten, nämlich ai, bi und ci, nacheinander aus, um die ersten und die zweiten lokalen Komponenten di und ei zu erzeugen, die durch Gleichung (3) gegeben sind und die jeweils der ersten und der zweiten Auswahleinrichtung 31 und 32 übergeben werden.
- Nach dem Verstreichen der Berechnungszeit mT wählen die erste und die zweite Auswahleinrichtung 31 und 32 die ersten und die zweiten lokalen Komponenten di und ei jeweils als die ersten und die zweiten ausgewählten Komponenten fi und gi aus. Die ersten und die zweiten ausgewählten Komponenten fi und gi werden durch die zweite Addierschaltung 27 in der vorstehend erwähnten Weise nacheinander addiert, um die Ausgabekomponenten hi-m zu erzeugen.
- Aus dieser Tatsache ist es leicht verständlich, daß die Ausgabekomponenten hi-m zu der ersten Addierschaltung 26 als die Komponenten ci des dritten Vektors C für eine Dauer zurück gesendet werden, die zwischen dem m-ten Takt und dem 2n-1-ten (nämlich r-ten) Takt bestimmt ist. Gezählt von dem m-ten Takt an können die Ausgabekomponenten durch hi dargestellt und als Komponenten ci+m des dritten Vektors C übergeben werden. Unter den Ausgabekomponenten hi werden lediglich Teilkomponenten der Ausgabekomponenten, nämlich h&sub1;, h&sub2;, ..., hr-m, zu der ersten Addierschaltung 26 gesendet, während die verbleibenden Ausgabekomponenten hr-m+1 bis hr als Ergebnisse der Vektorberechnungen erscheinen.
- Die verbleibenden Ausgabekomponenten hr-m+1 bis hr sind durch
- hr-m+1 = ar-m+1 + ar-2m+1 + ar-3m+1+...
- + br-m+1 + br-2m+1 + br-3m+1 +... hr-m+2 = ar-m+2 + ar-2m+2 + ar-3m+2+...
- + br-m+2 + br-2m+2 + br-3m+2 +...
- .
- .
- .
- hr = ar + ar-m + ar-2m+..
- + br + br-m + br-2m+...
- gegeben ist.
- Wie vorstehend erwähnt, ist die Anzahl der Ergebnisse der Vektorberechnungen gleich m und diese müssen weiter aufsummiert werden, um die Gesamtsumme von 2n Komponenten zu berechnen.
- Um die Ergebnisse aufzusummieren, m an der Zahl, sei eine positive Zahl j so gewählt, daß j die folgende Bedingung erfüllt:
- 2j > m > 2j-1.
- Unter Berücksichtigung der positiven Zahl j ist eine Zeit für die Summierung der m Ergebnisse durch
- {2j - 1 + j(m - 1)}T
- gegeben.
- Deshalb ist eine Gesamtberechnungszeit durch Aufsummieren der ersten und der zweiten Summierungszeiten gegeben und durch
- (2n-1 + m - 1)T + {2j - 1 + j(m - 1)}T
- = {2n-1 + 2j - 1 + (j + 1) (m - 1)}T
- bestimmt.
- Wenn n und m jeweils gleich 4 und 3 sind, wird die Gesamtberechnungszeit gleich 17T, da j = 2.
- Gemäß Fig. 12 kann eine andere Berechnung durch die Vektorrechnerschaltung 21" (Fig. 10) in einer Weise ausgeführt werden, die zu der in Fig. 11 gezeigten verschieden ist. Wie in Fig. 12 gezeigt ist, werden die Komponenten, 2n-1 an der Zahl, jedes Vektors A und B in erste und zweite Teile eingeteilt, die jeweils aus p und t Komponenten bestehen, wobei p gleich (2n-1 - t) ist.
- Bezüglich des ersten Teils aus p Komponenten wird die Addition unter Berücksichtigung des Ausgabevektors H in der vorstehend erwähnten Weise der Reihe nach ausgeführt. Folglich werden die Berechnungsergebnisse, m an der Zahl, nach dem p-ten Takt berechnet und erscheinen als hp-m+1, hp-m+2, ..., hp.
- Andererseits werden der erste und der zweite Vektor A und B ohne den dritten Vektor C bezüglich der t Komponenten des ersten und des zweiten Vektors A und B addiert, um Berechnungsergebnisse, t an der Zahl, zu erzeugen, die als hp+1, hp+2, ..., hr erscheinen, wobei r gleich 2n-1 ist.
- Die Berechnungsergebnisse, (m + t) an der Zahl, werden in einer Weise weiter addiert, die ähnlich zu der in Fig. 11 veranschaulichten ist, um die Gesamtsumme der 2n Komponenten zu berechnen.
- Während diese Erfindung bislang in Verbindung mit einigen ihrer Ausführungsformen beschrieben worden ist, ist es für einen Fachmann leicht möglich, diese Erfindung auf verschiedene andere Weisen in die Praxis umzusetzen. Zum Beispiel kann die in den Fign. 8 und 10 veranschaulichte erste Addierschaltung 26 mit einer Auswahlschaltung 25 verbunden werden, wie in Fig. 4 gezeigt, um einen der Vektoren, der der ersten Addierschaltung 26 übergeben ist, auszuwählen. Auf jeden Fall kann die in den Fign. 8 und 10 veranschaulichte Vektorrechnerschaltung auf mehrere Vektoren antworten, deren Anzahl größer als drei ist.
Claims (4)
1. Vektorrechnerschaltung, die zum Ausführen einer Berechnung
auf Vektoren verwendet wird, um ein Ergebnis der Berechnung als
Antwort auf einen ersten Vektor, der aus einem ersten Satz
mehrerer Komponenten besteht, und einen zweiten Vektor, der aus
einem zweiten Satz mehrerer Komponenten besteht, und wahlweise
einen dritten Vektor, der aus einem dritten Satz mehrerer
Komponenten besteht, zu liefern, wobei die Vektorrechnerschaltung
aufweist:
eine auf ein Steuersignal (CT) ansprechende
Auswahleinrichtung (25) zum Auswählen einer ausgewählten Komponente des
dritten Satzes oder einen festen Wert von Null als eine
ausgewählte Komponente;
eine auf die ausgewählte Komponente und erforderliche
Komponenten des ersten und des zweiten Satzes ansprechende
Übertragsicherungs-Addiereinrichtung (26) zum Ausführen einer
Übertragsicherungsaddition zwischen der ausgewählten Komponente und
den erforderlichen Komponenten des ersten und des zweiten
Satzes, um insgesamt eine lokale Summe und einen Übertrag als
ein Ergebnis der Übertragsicherungsaddition zu erzeugen;
eine auf die lokale Summe und den Übertrag ansprechende
Zusatzaddiereinrichtung (27) zum Addieren des Übertrags zu der
lokalen Summe, um eine Hauptsumme der lokalen Summe und des
Übertrags zu erzeugen; und
eine Einrichtung zum Erzeugen der Hauptsumme als das
Ergebnis der Vektorberechnung.
2. Vektorrechnerschaltung nach Anspruch 1, die ferner aufweist:
eine Einrichtung zum Zuführen der Hauptsumme zu der
Auswahleinrichtung als eine Komponente des dritten Satzes.
3. Vektorrechnerschaltung, die zum Ausführen einer Berechnung
auf Vektoren verwendet wird, um ein Ergebnis der Berechnung als
Antwort auf einen ersten Vektor, der aus einem ersten Satz
mehrerer Komponenten besteht, und einen zweiten Vektor, der aus
einem zweiten Satz mehrerer Komponenten besteht, und wahlweise
einen festen Wert von Null oder einen dritten Vektor, der aus
einem dritten Satz mehrerer Komponenten besteht, zu liefern,
wobei die Vektorrechnerschaltung aufweist:
eine auf den ersten, zweiten und dritten Vektor
ansprechende Übertragsicherungs-Addiereinrichtung (26) zum
Ausführen einer Übertragsicherungsaddition der erforderlichen
Komponenten des ersten bis dritten Satzes, um insgesamt eine
lokale Summe und einen Übertrag als die
Übertragsicherungsaddition zu erzeugen;
eine als Antwort auf ein Steuersignal betriebsbereite
erste Auswahleinrichtung (31) zum Auswählen entweder der lokalen
Summe oder der erforderlichen Komponente des ersten Satzes als
eine erste ausgewählte Komponente;
eine als Antwort auf ein Steuersignal betriebsbereite
zweite Auswahleinrichtung (32) zum Auswählen entweder des
Übertrags oder der erforderlichen Komponente des zweiten Satzes als
eine zweite ausgewählte Komponente;
eine mit der ersten und der zweiten Auswahleinrichtung
(31, 32) verbundene Zusatzaddiereinrichtung (27) zum Addieren
der ersten ausgewählten Komponente zu der zweiten ausgewählten
Komponente, um ein Ergebnis der Vektorberechnung zu erzeugen.
4. Vektorrechnerschaltung nach Anspruch 3, die ferner aufweist:
eine Einrichtung zum Zuführen des Ergebnisses der
Vektorberechnung zu der Übertragsicherungs-Addiereinrichtung als eine
Komponente des dritten Satzes zusammen mit folgenden
Komponenten des ersten und des zweiten Satzes.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4771187 | 1987-03-04 | ||
JP4771487 | 1987-03-04 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3854608D1 DE3854608D1 (de) | 1995-11-30 |
DE3854608T2 true DE3854608T2 (de) | 1996-06-05 |
Family
ID=26387873
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE3854608T Expired - Fee Related DE3854608T2 (de) | 1987-03-04 | 1988-03-03 | Vektorrechnerschaltung, welche schnell eine Berechnung auf drei Eingangsvektoren ausführen kann. |
Country Status (5)
Country | Link |
---|---|
US (1) | US4852040A (de) |
EP (1) | EP0281132B1 (de) |
AU (1) | AU598175B2 (de) |
CA (1) | CA1281426C (de) |
DE (1) | DE3854608T2 (de) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9718080B1 (en) | 2016-05-06 | 2017-08-01 | RADCO Infusion Technologies, LLC | Linear substrate infusion compartment |
US11098445B2 (en) | 2016-05-06 | 2021-08-24 | Anderson Group, Ltd. | Continuous linear substrate infusion |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5051940A (en) * | 1990-04-04 | 1991-09-24 | International Business Machines Corporation | Data dependency collapsing hardware apparatus |
US5208770A (en) * | 1989-05-30 | 1993-05-04 | Fujitsu Limited | Accumulation circuit having a round-off function |
EP0478745A4 (en) * | 1990-04-04 | 1993-09-01 | International Business Machines Corporation | High performance interlock collapsing scism alu apparatus |
USRE35311E (en) * | 1990-04-04 | 1996-08-06 | International Business Machines Corporation | Data dependency collapsing hardware apparatus |
JPH04177462A (ja) * | 1990-11-08 | 1992-06-24 | Koufu Nippon Denki Kk | ベクトル総和演算装置 |
US5233553A (en) * | 1991-03-06 | 1993-08-03 | Chips And Technologies, Inc. | Apparatus for performing modulo arithmetic with three-port adder |
US5359718A (en) * | 1991-03-29 | 1994-10-25 | International Business Machines Corporation | Early scalable instruction set machine alu status prediction apparatus |
US5245562A (en) * | 1991-09-17 | 1993-09-14 | The Johns Hopkins University | Accumulating arithmetic memory integrated circuit |
JP2683488B2 (ja) * | 1992-06-30 | 1997-11-26 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 3−1論理演算装置 |
GB2270400B (en) * | 1992-09-08 | 1996-09-18 | Sony Corp | Digital audio mixer |
JPH06175821A (ja) * | 1992-12-10 | 1994-06-24 | Fujitsu Ltd | 演算装置 |
JP2636789B2 (ja) * | 1995-03-31 | 1997-07-30 | 日本電気株式会社 | マイクロプロセッサ |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3900723A (en) * | 1974-05-28 | 1975-08-19 | Control Data Corp | Apparatus for controlling computer pipelines for arithmetic operations on vectors |
JPS57134774A (en) * | 1981-02-13 | 1982-08-20 | Hitachi Ltd | Vector operating device |
JPS5938848A (ja) * | 1982-08-27 | 1984-03-02 | Nec Corp | アドレス演算回路 |
JPS59128670A (ja) * | 1983-01-12 | 1984-07-24 | Hitachi Ltd | ベクトル処理装置 |
JPS6069746A (ja) * | 1983-09-26 | 1985-04-20 | Fujitsu Ltd | ベクトル・デ−タ処理装置の制御方式 |
JPS60136875A (ja) * | 1983-12-26 | 1985-07-20 | Hitachi Ltd | ベクトル演算器 |
US4777592A (en) * | 1985-06-17 | 1988-10-11 | Nec Corporation | Information processing system comprising a register renewal waiting control circuit with renewal register number registering means |
-
1988
- 1988-03-03 EP EP88103280A patent/EP0281132B1/de not_active Expired - Lifetime
- 1988-03-03 CA CA000560395A patent/CA1281426C/en not_active Expired - Fee Related
- 1988-03-03 DE DE3854608T patent/DE3854608T2/de not_active Expired - Fee Related
- 1988-03-03 US US07/168,882 patent/US4852040A/en not_active Expired - Fee Related
- 1988-03-04 AU AU12718/88A patent/AU598175B2/en not_active Ceased
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9718080B1 (en) | 2016-05-06 | 2017-08-01 | RADCO Infusion Technologies, LLC | Linear substrate infusion compartment |
US11033923B2 (en) | 2016-05-06 | 2021-06-15 | RADCO Infusion Technologies, LLC | Linear substrate processing compartment |
US11098445B2 (en) | 2016-05-06 | 2021-08-24 | Anderson Group, Ltd. | Continuous linear substrate infusion |
US11298719B2 (en) | 2016-05-06 | 2022-04-12 | Southwire Company, Llc | Device for modifying a linear substrate |
US11359332B2 (en) | 2016-05-06 | 2022-06-14 | Anderson Group, Ltd. | Continuous linear substrate infusion |
Also Published As
Publication number | Publication date |
---|---|
US4852040A (en) | 1989-07-25 |
AU598175B2 (en) | 1990-06-14 |
EP0281132B1 (de) | 1995-10-25 |
EP0281132A3 (de) | 1991-03-27 |
DE3854608D1 (de) | 1995-11-30 |
AU1271888A (en) | 1988-09-08 |
EP0281132A2 (de) | 1988-09-07 |
CA1281426C (en) | 1991-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3854321T2 (de) | Populationszählung in Rechnersystemen. | |
DE3854608T2 (de) | Vektorrechnerschaltung, welche schnell eine Berechnung auf drei Eingangsvektoren ausführen kann. | |
DE19839627B4 (de) | Digitaler Signalprozessor | |
DE3485792T2 (de) | Digitale signalverarbeitungseinrichtungen. | |
DE60210494T2 (de) | Hochgeschwindigkeitsberechnung in einer arithmetik- und logikschaltung | |
EP0123921B1 (de) | Parallelverknüpfungsschaltung mit verkürztem Übertragsdurchlauf | |
DE69435034T2 (de) | Verfahren ind vorrichtung zur durchfuehrung einer schnellen hadamard transform | |
DE2619418A1 (de) | Verfahren und vorrichtung zur umwandlung einer binaerzahl in eine zahl modulo m | |
DE69116854T2 (de) | Digitales fehlerdiffusionsverfahren mit hoher geschwindigkeit zur umsetzung eines kontinuierlichen -in ein binäres- bild | |
DE1956209C3 (de) | Multipliziervorrichtung | |
DE2913327C2 (de) | Matrix-Multiplizierer | |
DE3686828T2 (de) | Hochleistungsparalleler vektorprozessor mit modifizierter register/elementprozessor konfiguration. | |
DE3400723C2 (de) | ||
DE4101004C2 (de) | Paralleler Multiplizierer mit Sprungfeld und modifiziertem Wallac-Baum | |
DE3888230T2 (de) | Einrichtung und Verfahren zur Durchführung einer Schiebeoperation mit einer Multipliziererschaltung. | |
DE4345029C2 (de) | Schaltkreis für diskrete Kosinustransformation | |
DE3788617T2 (de) | Vektordatenverarbeitungssystem mit einer E/A-Steuerung für jeden Vektordatenprozessor und einer anderen E/A-Steuerung für mindestens einen anderen Vektordatenprozessor. | |
DE69424790T2 (de) | Prozessor für schnelle Fourier-Transformation | |
DE3789819T2 (de) | Verarbeitungsschaltung für serielle Digitalsignale. | |
DE19748484A1 (de) | Schaltung und Verfahren zur Überlauferfassung bei einem digitalen Signalprozessor | |
DE69423299T2 (de) | Serien-Parallel-Umsetzer mit Pseudozufallsrauschgenerator | |
DE295464T1 (de) | Filter n-ten ranges. | |
DE3447634C2 (de) | ||
DE69129916T2 (de) | Schaltung zur Erzeugung einer Adresse eines Wahlspeichers | |
EP0779585A2 (de) | Digitale Signalprozessoranordnung zum Vergleich von Merkmalsvektoren und zugehöriges Betriebsverfahren |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |