DE1549560C3 - Digital arbeitende Rechenanordnung zur Bildung der Korrelations- bzw. Konvolutionsfilterfunktion - Google Patents
Digital arbeitende Rechenanordnung zur Bildung der Korrelations- bzw. KonvolutionsfilterfunktionInfo
- Publication number
- DE1549560C3 DE1549560C3 DE19671549560 DE1549560A DE1549560C3 DE 1549560 C3 DE1549560 C3 DE 1549560C3 DE 19671549560 DE19671549560 DE 19671549560 DE 1549560 A DE1549560 A DE 1549560A DE 1549560 C3 DE1549560 C3 DE 1549560C3
- Authority
- DE
- Germany
- Prior art keywords
- accumulator
- data word
- data
- units
- unit
- 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
Links
- 230000015572 biosynthetic process Effects 0.000 title claims description 10
- 238000005755 formation reaction Methods 0.000 title claims description 10
- 230000000875 corresponding Effects 0.000 claims description 10
- 238000000034 method Methods 0.000 description 11
- 241001442055 Vipera berus Species 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 238000005314 correlation function Methods 0.000 description 7
- 230000000295 complement Effects 0.000 description 6
- 230000014509 gene expression Effects 0.000 description 6
- 230000003111 delayed Effects 0.000 description 4
- 230000002596 correlated Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- SHXWCVYOXRDMCX-UHFFFAOYSA-N MDMA Chemical compound CNC(C)CC1=CC=C2OCOC2=C1 SHXWCVYOXRDMCX-UHFFFAOYSA-N 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 210000004027 cells Anatomy 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000000717 retained Effects 0.000 description 1
- 210000000352 storage cell Anatomy 0.000 description 1
- 230000001360 synchronised Effects 0.000 description 1
- 230000001702 transmitter Effects 0.000 description 1
Description
Die Erfindung bezieht sich auf eine digital arbeitende Rechenanordnung der im Gattungsbegriff des Anspruchs
1 angegebenen Art.
Bei einer bekannten Rechenanordnung deiser Art (GB-PS 10 01096) wird versucht, mit Hilfe einer
Multiplikationsmatrix für Polaritätssignale und einer Multiplikationsmatrix für digitalisierte Amplitudensignale
die zur Bildung der Korrelations- bzw. Konvolutionsfilterfunktion notwendige große Anzahl von
Multiplikationen möglichst schnell auszuführen. Dabei wird jedoch jede Multiplikation einzeln und in ihrer
Gesamtheit ausgeführt, so daß die Bildung der entsprechenden Filterfunktion eine beträchtliche Zeit in
Anspruch nimmt.
Ferner ist bereits eine Korrelationsanordnung bekannt (US-PS 30 23 966), die Signale korrelieren
kann, die hinsichtlich eines Bezugspunkts spiegelsymmetrisch sind. Andere Signale können mit Hilfe dieser
Korrelationsanordnung nicht korreliert werden.
Der Erfindung liegt die Aufgabe zugrunde, die Rechengeschwindigkeit einer Anordnung zur Bildung
der Korrelations- bzw. Konvolutionsfilterfunktion weit über das bisher mögliche Maß zu erhöhen, wobei
gleichzeitig für eine erhöhte Fehlersicherheit gesorgt werden soll.
Diese Aufgabe wird mit Hilfe der im Kennzeichen des Anspruchs 1 angegebenen Merkmale gelöst.
Bei einem Betrieb der erfindungsgemäßen Rechenanordnung
zur Bildung der Korrelationsfilterfunktion wird zu Beginn das Produkt F0 X0 gebildet. Dieses
Teilergebnis wird in einen Datenumlauf gegeben, und gleichzeitig werden die Produkte F1 X1 und F0 X1 gebildet.
Nun sind beim Datenumlauf bereits drei Teilergebnisse beteiligt, und es erfolgt die Bildung der Produkte
F2 X2, F1X2 und F0X,. Diese Produktbildung
wird so lange fortgesetzt, bis alle zur Bildung des Endergebnisses notwendigen Teilergebnisse vorhanden
sind. Da die erzeugten Teilergebnisse ständig in der Anordnung umlaufen, können sie schnell jeweils zur
Bildung der erforderlichen Produktsummen herangezogen werden.
Die im Anspruch 2 gekennzeichnete vorteilhafte Ausgestaltung der Erfindung gestattet eine besonders
große Fehlersicherheit. Die angewendete Zuführung der Dreiergruppen von Informationseinheiten zu den
Multipliziereinheiten ergibt eine große Redundanz, so daß Berechnungsfehler vermieden werden und die
Möglichkeit geschaffen wird, aufgetretene. Fehler wieder zu korrigieren. ...
Ausführungsbeispiele der Erfindung werden nun an Hand der Zeichnung näher erläutert. Es zeigt
F i g. 1 zwei Wellenzüge, für die eine Konvolutionsoperation vorgenommen werden soll,
F i g. 2 eine repräsentative Konvolutionsfunktion
der beiden Wellenzüge von F i g. 1,
F i g. 3 ein Blockschaltbild einer Rechenanordnung, bei der von der Erfindung Gebrauch gemacht wird,
F i g. 4 ein Blockschaltbild der Konvolutionsmultipliziereinheit nach der Erfindung,
F i g. 5 ein Logikschaltbild einer Multipliziereinheit und - . . ■
F i g. 6 ein Blockschaltbild zur Veranschaulichung der Taktsteuerung der Konvolutionsmultipliziereinheit
von F i g. 4. . . ·
Zur Erläuterung der Ausführungsbeispiele sei zunächst auf die F i g. 1 und 2 Bezug genommen. Es sei
angenommen, daß die Korrelationsfunktion zwischen den beiden zeitveränderlichen Wellenzügen 10 und 11
der F i g. 1 physikalisch dargestellt werden soll. Die Korrelationsfunktion entspricht dem Ausdruck:
bereits die Vielzahl der Rechenoperationen, die notwendig sind, um einen Punkt der Funktion
•
h
Ym = s, Fn Xn
Ym —
,
Fn X
n + m·
Die Korrelationsfunktion läßt sich somit durch eine Reihe von Schritten erhalten, von denen der erste beispielsweise
darin bestehen kann, daß die Ordinate al des Wellenzuges 10 mit der Ordinate Al des Wellenzuges
11 multipliziert wird. Als nächster Schritt werden dann die Ordinaten al und bl miteinander multipliziert
und als Produkt mit dem Produkt der ersten Multiplikation addiert. Mit dem nächsten Schritt werden
die Ordinaten a3 und b3 multipliziert, und das dabei als Ergebnis erhaltene Produkt wird dann mit
dem letzten Summenwert addiert. Diese Schritte werden dann für die den verschiedenen Zeitpunkten des
Kurvenzuges entsprechenden Ordinaten über die ganze Länge der Wellenzüge 10 und 11 fortgesetzt. Jede resultierende
Summe wird während des ganzen Prozesses beibehalten, indem die einzelnen Ordinaten miteinander
multipliziert und dann das erhaltene'Produkt mit der vorher gewonnenen Summe addiert wird. Der
endgültig erhaltene Summenwert entspricht dann einem Punkt 13 zum Zeitpunkt r = 0 der Korrelationsfunktion
12, wie sie in Fig. 2 über τ aufgetragen
ist. Nach Abschluß dieser Rechenoperation werden die Wellenzüge 10 und 11 im Verhältnis zueinander
um einen Wert τ verschoben, worauf sämtliche bereits vorgenommene Multiplikationen und Summationen
— d. h. (al · bl) + (a3 ■ bl) usw. — wiederholt
werden müssen ,um den Punkt 14 der Korrelationsfunktion 12 zu ermitteln. Dieser Vorgang wird
dann wiederholt, bis die Wellenzüge 10, 11 in ihrer gesamten Länge in Schritten der Größe τ im Verhältnis
zueinander verschoben worden sind, wobei jede Operationsserie jeweils einen Punkt der Korrelationsfunktion liefert.
Aus den vorstehenden Ausführungen ergibt sich zu errechnen. Mit Hilfe der hier beschriebenen Rechenanordnung
können Rechenoperationen dieser Art vereinfacht werden.
In F i g. 3 ist eine für allgemeine Zwecke einsetzbare,
ίο digital arbeitende Rechenanordnung in Blockschaltbildform
wiedergegeben, die einen ersten Eingabe-Ausgabe-Kanal 15 mit einer Eingabeeinheit 16 und.
einer Ausgabeeinheit 17 aufweist. In gleicher Weise ist ein zweiter unabhängiger Eingabe-Ausgabe-Kanal 18
vorgesehen, der eine Eingabeeinheit 19 und eine Ausgabeeinheit 20 hat. Beide Kanäle 15 und 18 stehen mit
einem Kernspeicher 21 in Verbindung, der außerdem noch mit einem Datenregister 22 sowie einer Konvolutionsmultipliziereinheit
23 in Verbindung steht.
ao Das Datenregister 22 steht im übrigen auch unmittelbar mit den Kanälen 15 und 18 sowie der Konvolutionsmultipliziereinheit
23 in Verbindung. An das Datenregister 22 ist ferner ein Ausgabe-Adressenwähler
24 angeschlossen, um Daten des Datenregisters 22 über den Kanal 25 zu den Rechenwerken 26 zu
liefern. Die Ausgangskanäle 27 der Rechenwerke 26 führen zu einem Eingabe-Adressenwähler 28. Mit den
Rechenwerken 26 ist über einen Kanal 29 a unmittelbar eine Kontrolleinheit 29 gekoppelt, die mit den Adressenwählern
24 und 28 über Kanäle 30 bzw. 31 in Verbindung steht. ·
Ein Unterbrechungsspeicher 32 ist über einen Kanal 33 mit einem Unterbrechungswähler 34 gekoppelt, der
über einen Kanal 35 mit der Kontrolleinheit 29 in Verbindung steht. Das Datenregister 22 ist mit dem
Unterbrechungswähler 34 über einen Kanal 36 gekoppelt. Ein Mikro-Taktgeber steht über einen Kanal
38 mit der Kontrolleinheit 29 und über einen Kanal 39 mit dem Datenregister 22 in Verbindung.
Die mit F i g. 3 veranschaulichte Rechenanordnung ist kurz beschrieben worden, um eine Übersicht über
die Anordnung der in Verbindung mit der vorliegenden Erfindung besonders zu berücksichtigenden Rechnerkomponenten
zu vermitteln. Die MultiDlikations- und Summationsvorgänge beziehen sich in dem System der
F i g. 3 in erster Linie auf die Konvolutionsmultipliziereinheit 23.
Für die zeitlich aufeinanderfolgenden Ordinaten der Wellenzüge 10 und 11 repräsentative Eingabedaten
werden in dem Kernspeicher 21 beispielsweise als 24-Bit-Wörter gespeichert. Ausgewählte, für die
Auswertung der Funktionen wie der vorstehend erwähnten Konvolutions- und/oder Korrelationsfunktion
erforderliche Daten sind dann von dem Kernspeicher 21 für das Datenregister 22 und die Konvolutionsmultipliziereinheit
23 zugänglich.
Die Konvolutionsmultipliziereinheit 23 bildet eine synchrone Einheit, d.h., Daten werden von einer
Stelle, beispielsweise einem Register, Akkumulator od. dgl., zu einer anderen Stelle lediglich während des
Auftretens eines Zeitgeberimpulses weitergeleitet. Es wird daher davon ausgegangen, daß die einzelnen Einheiten
jeweils von den Taktimpulsen eines externen Taktimpulsgenerators gesteuert sind, jedoch sind die
entsprechenden Schaltkreise und Leitungen im Hinblick auf eine bessere Übersichtlichkeit in den Schaltbildern
nicht mit angegeben worden.
Nachdem diese Erläuterungen hinsichtlich der Zu-
Nachdem diese Erläuterungen hinsichtlich der Zu-
sammenhänge der vorliegenden Erfindung vorausgeschickt
worden sind, soll nun auf F i g. 4 Bezug genommen werden, die ein Blockschaltbild der vorliegenden
Erfindung zeigt. Der Aufbau der F i g. 4 weist eine Speicherstufe aus einem 25-Bit-Akkumulator
40 auf, der von Speicherzellen eines Kernspeichers zu diesem übertragene Datenwörter aufnehmen
kann. Die zu dem Akkumulator 40 hin zu übertragenden Datenwörter repräsentieren die zeitlich
aufeinanderfolgenden Werte der Datenwortreihe X. Ferner ist eine weitere Speicherstufe aus dem Akkumulator
41 mit einem Aufnahmevermögen von 24 Bits vorgesehen, in den die 24 Bits der die Werte der Datenwortreihe
F repräsentierenden Wörter überführt werden. . ,
Die ersten drei Speicherzellen des Akkumulators 40 sind über Signalleitungen entsprechend der Leitung
40a mit einer Multiplizierstufe 42 verbunden. Alle Bits von dem Akkumulator 41 gelangen über einen
Kanal 41 a' zu der Multiplizierstufe 42 sowie zu einem zweiten Akkumulator 41a.
Ebenso wie dem Akkumulator 41 der Akkumulator 41a nachgeschaltet ist, schließt sich an den Akkumulator
41a ein weiterer Akkumulator 41 δ an, auf den in entsprechender Weise weitere Akkumulatoren
41c ... 41k, 41/ folgen, so daß diese Akkumulatoren
tandemartig hintereinanderliegen und eine geschlossene Datenumlaufschleife bilden. Mit F i g. 4 sind zwar
lediglich vier solcher Akkumulatoren gezeigt, jedoch sind an sich im vorliegenden Ausführungsbeispiel
dreizehn solcher Akkumulatoren in der Datenschleife hintereinandergeschaltet. Über einen Ausgangskanal
56 a des Akkumulators 41 / können F-Werte zu dem Akkumulator 41 zurückgeführt werden.
Die in der Multiplizierstufe 42 miteinander multiplizierten digitalen Signale werden über eine Signalleitung
42a zu einer Addiereinheit 44 in eine zweite Datenumlaufschleife geleitet. Ein zweiter Eingangskanal führt zu der Addiereinheit 44, um 24 Bits aus
den BitrStellen 24 bis 48 eines 48-Bit-Akkumulators 43
zu übertragen. Zwei Ausgangskanäle 44a und 446 können die Summen- und Übertragwerte zu den Bit-Stellen
22 bis 48 eines 48-Bit-Akkumulators 45 und zu einem Übertrag-Akkumulator 49 leiten.
Von dem 48-Bit-Akkumulator 43 führt ein Kanal 43 a zu dem 48-Bit-Akkumulator 45. Dieser Kanal 43 a
leitet die Bit-Stellen, die nicht in die Addiereinheit 44 eingespeist worden sind, d. h. die Bit-Stellen 1 bis 23,
zu denselben Stellen des 48-Bit-Akkumulators 45.
Der Ausgang des Akkumulators 45 ist in ähnlicher Weise wie der Ausgang des Akkumulators 43 an die
Addiereinheit 44 und den Akkumulator 45 an eine Addiereinheit 100 und einen weiteren Akkumulator
101, mit einer Verschiebung von zwei Bits nach links, angeschlossen. Die 24 Bits der Stellen 22 bis 46 des
48-Bit-Akkumulators 45 werden über Kanäle 456 in die Addiereinheit 100 geleitet. Die übrigen Bit-Stellen 1
bis 21 und 47 bis 48 des Akkumulators 45 werden über Bit-Kanäle 45 c und 45 d zu denselben Bit-Stellen des
45-Bit-Akkumulators 101 geleitet. Jede folgende Addiereinheit
ist um zwei Bit-Stellen nach links verschoben.
Die Bit-Stellen 21 bis 23 des Akkumulators 40 werden über einen Kanal 40 b in eine Multiplizierstufe 58
eingeleitet und dort mit dem 24-Bit-Wert der in dem Akkumulator 41 α enthaltenen Datenwortreihe F multipliziert.
Der Ausgangswert der Multiplizierstufe 58 gelangt über einen Kanal 58b zu der Addiereinheit 100.
In die Addiereinheit 100 wird über einen Kanal 49 a außerdem der in dem Übertragakkumulator enthaltene
Ubertragwert geleitet. Der Summen-Ausgangswert der Addiereinheit 100 wird zu den Bit-Stellen 20
bis 44 des 48-Bit-Akkumulators 101 geleitet, und der Übertragwert gelangt über einen Kanal 100 a zu
einem Übertrag-Akkumulator 102.
Die 48-Bit-Akkumulatoren 43, 45, 101 ... 103 und
die Addiereinheiten 44, 100, 104 ... 52 mit ihren zugeordneten Übertrag-Akkumulatoren 49, 102 ... 105
sind abwechselnd verbunden und tandemartig gekoppelt, so daß sie eine zweite geschlossene Datenumlaufschleife
bilden. Die Stufen der ersten und der zweiten Datenumlaufschleife sind jeweils durch Teilmultiplizierstufen
miteinander verbunden, deren einer Eingang von einem Akkumulator der ersten Schleife und deren
zweiter Eingang von den drei Stellen des Akkumulators 40 gespeist wird.
An der letzten Stufe der KonvolutionsmuUipliziereinheit sind zwei Akkumulatoren 47 und 48 vorgesehen, die abwechselnd die gebildeten Korrelations-Teilprodukte aufnehmen. Ein Flip-Flop-Gatter 55 bestimmt, wann die beiden Akkumulatoren jeweils einen Wert aufnehmen. Der in der Addiereinheit 52 gebildete Summenwert wird über Kanäle 52 a in das erste Drittel des einen oder des anderen Akkumulators 47 bzw. 48 überführt, während der Übertragwert über Kanäle 52b in das letzte Drittel des einen oder des anderen Akkumulators 47 bzw. 48 gelangt. Die letzten in einem 48-Bit-Akkumulator 103 enthaltenen 24 Bits werden über Kanäle 53 a zu dem mittleren Drittel des einen oder des anderen Akkumulators 47 bzw. 48 geleitet.
An der letzten Stufe der KonvolutionsmuUipliziereinheit sind zwei Akkumulatoren 47 und 48 vorgesehen, die abwechselnd die gebildeten Korrelations-Teilprodukte aufnehmen. Ein Flip-Flop-Gatter 55 bestimmt, wann die beiden Akkumulatoren jeweils einen Wert aufnehmen. Der in der Addiereinheit 52 gebildete Summenwert wird über Kanäle 52 a in das erste Drittel des einen oder des anderen Akkumulators 47 bzw. 48 überführt, während der Übertragwert über Kanäle 52b in das letzte Drittel des einen oder des anderen Akkumulators 47 bzw. 48 gelangt. Die letzten in einem 48-Bit-Akkumulator 103 enthaltenen 24 Bits werden über Kanäle 53 a zu dem mittleren Drittel des einen oder des anderen Akkumulators 47 bzw. 48 geleitet.
Eine taktweise arbeitende Addiereinheit 50 ist an
ihren beiden Eingängen mittels Datenkanälen 47 a und 4Hb mit dem ersten bzw. letzten Drittel des Akkumulators
47 gekoppelt. In der Addiereinheit 50 wird der in dem Akkumulator 47 gespeicherte Ubertragwert
zu dem Teilprodukt des ersten Drittels addiert. In gleicher Weise ist eine taktweise arbeitende Addiereinheit
54 über Eingangskanäle 48a und 480 an das erste bzw. letzte Drittel des Akkumulators 48 angeschlossen.
Die taktweise arbeitenden Addiereinheiten 50 und 54 sind ebenfalls durch das Flip-Flop-Gatter 55
gesteuert, so daß sie die Übertragwerte abwechselnd zu dem in dem ersten Drittel des zugeordneten Akku-
, mulators enthaltenen Teilprodukt addieren.
Die in den taktweise arbeitenden Übertragern 50 und 54 gebildeten Summen gelangen über Kanäle 50 a
und 506 zu einem Wählergatter 106. Über Kanäle 50 c und 50 d werden die in dem mittleren Drittel des Akkumulators
47 bzw. 48 enthaltenen Werte ebenfalls zu dem Wählergatter 106 geleitet. Von dem Wählergatter
106 aus führen in der angegebenen Weise zur Rückführung von Wörtern dienende Kanäle zu den Stellend
und B des 48-Bit-Akkumulators 43. Über einen Ausgabekanal 51 gelangen die Korrelation zweier Funktionen
repräsentierende Wörter nach Abschluß der erforderlichen Multiplikations- und Addierzyklen innerhalb
des Systems zu dem Kernspeicher.
Die Wirkungsweise des mit F i g. 4 wiedergegebenen Aufbaues wird nachstehend an Hand des folgenden
Beispiels erläutert. Es sollen eine erste Serie von zwölf 24-Bit-Wörter-Signalen, die die digitalisierte Datenwortreihe
Fn repräsentieren, und eine zweite Serie von 24-Bit-Wörter-Signalen, die die digitalisierte Datenwortreihe
Xn+m repräsentieren, korreliert werden, um
Signale zu erhalten, die eine dritte digitalisierte Datenwortreihe Yn repräsentieren.
Die Konvolutionsmultipliziereinheit bildet gleichzeitig beim Durchlauf der Daten durch sie in jeder
Stufe ein Teilprodukt, so daß bei Verwendung von zwölf Multipiizier-Addier-Stufen zwölf Ym-Werte (beispielsweise
Y1, Y2 ... Y12) gleichzeitig verarbeitet werden
können. Der Einfachheit halber soll in der nachstehenden Beschreibung der Ausdruck »Werte« verwendet
werden und dabei die Bedeutung einer physikalischen Darstellung haben, beispielsweise mittels
einer Mehrzahl elektrischer Bits eines gegebenen Signals oder einer gegebenen Funktion.
Zu Beginn des Rechenvorgangs wird der erste 24-Bit-A'-Wert, X0, als Multiplikator von dem Kernspeicher
in den Akkumulator 40 überführt, und zwar je zwei Bits auf einmal. Die erste Bit-Stelle 25 des
Akkumulators 40 ist aus weiter unten angegebenen Gründen stets Null. Die ersten beiden Bits des .Y0-Wertes
werden daher in die zweite und dritte Bit-Stelle 23, 24 des Akkumulators 40 geleitet. Der erste 24-Bit-F-Wert,
F0, wird ebenfalls in seiner Gesamtheit als Multiplikand in den Akkumulator 41 geleitet. Beim
Hindurchleiten des F0-Wertes durch die Multipliziereinheit
wird dieser Wert an jeder Stufe mit drei Bits von AO multipliziert. Dieses Produkt wird nach Verschiebung
zu der richtigen Binärstelle mit den früheren Produkten wie bei regulärer Multiplikation addiert, so
daß an der letzten Stufe der Multipliziereinheit der Ausgangswert F0 X0 den ersten Ausdruck für Y0 bildet.
Darauf wird der X0-Wert durch den nächsten 24-Bit-X-Wert,
X1, ersetzt, und zwar wiederum in der Weise, daß jeweils zwei Bits gleichzeitig zugeführt werden.
Der Wert F0 wird, um ein Taktintervall verzögert, von dem Akkumulator 41/ zu der ersten Stufe des Multiplikators
zurückgeführt, jedoch wird das Produkt F0 X0 an der letzten Stufe um zwei Taktintervalle verzögert,
bis die Bildung des ersten Teilprodukts, nämlich F0 multipliziert mit den ersten drei Bits von X1,
abgeschlossen ist. Wenn F0 und das Teilprodukt zu der zweiten Stufe geführt werden, wird das Produkt F0 X0
zu der ersten Stufe zurückgeführt und der zweite F-Wert, F1, in die erste Multiplizierstufe 42 gebracht.
Danach werden je zwei Bits von F1 gleichzeitig mit X1
multipliziert und die dabei erhaltenen Teilprodukte mit dem zuvor gebildeten Produkt F0 X0 addiert. An
der untersten Stufe ist dann die Bildung des ersten Ausdruckes für Y1, nämlich F0 X1, abgeschlossen. Während
des nächsten Taktintervalls wird die Bildung der ersten beiden Ausdrücke von Y0 F0 X0 + F1 X1 abgeschlossen.
Dieser Vorgang wird fortgeführt, bis die endgültigen, in Tabelle 1 gezeigten Summenwörter Y0, Y1,
Y2 ... Ym erhalten worden sind.
Es sei darauf hingewiesen, daß die Daten von Stufe zu Stufe in diskreten Gruppen weiterbewegt werden.
Alle teilweise gebildeten, Ym-Werte und alle unkombinierten,
zugeordneten Werte wie Übertrag- und Funktionswerte werden in derselben Stufe alle gleichzeitig
zu der nächsten Stufe weitergeleitet. Ebenso ist zu betonen, daß eine Anzahl von erst teilweise gebildeten
7m-Werten gleichzeitig in der Multipliziereinheit mit
umläuft. Die in Tabelle 1 umrandeten Gruppen sind diejenigen, in denen die Daten während des Umlaufs
durch die Multipliziereinheit verarbeitet werden.
Wie ersichtlich, können bei dem vorliegenden Ausführungsbeispiel bis zu dreizehn Y7n-Werte gleichzeitig
verarbeitet werden. Im einzelnen werden etwa zwei Bits eines Ä'-Wertes, beispielsweise X0, von dem Kernspeicher
zu den Stellen 2 und 3 des 25-Bit-Akkumulators 40 übertragen. Gleichzeitig wird der gesamte
erste 24-Bit-F-Wert, F0, von dem Kernspeicher in den Akkumulator 41 übertragen. Als nächstes werden die
Bits der drei ersten Stellen des Akkumulators 40 (die Null der Stelle 1 und die ersten beiden Bits von X0 an
den Stellen 2 und 3) und der Inhalt des Akkumulators 41, nämlich der 24-Bit-F0-Wert, in die Multiplizierstufe
42 eingespeist, die die beiden Werte miteinander multipliziert. Das dabei gewonnene Teilprodukt wird
dann mit den an den Stellen 22 bis 46 des Akkumulators 43 enthaltenen Bits addiert. Dieser Additionsvorgang wird mit Hilfe der Addiereinheit 44 vorgenommen,
die im Gegensatz zu herkömmlichen binären Addiereinheiten lediglich eine Summe und einen Übertragwert
bildet, wobei der Ubertragwert in dem Akkumulator 49 gespeichert wird. Die Summe wird dann in
die Bit-Stellen 22 bis 46 des Akkumulators 45 geleitet. Alle dabei nicht erfaßten Bits des. Akkumulators 43
(die Bits der Stellen 1 bis 21 und 47 und 48) werden unmittelbar zu den entsprechenden Stellen des Akkumulators
45 geleitet. Gleichzeitig wird der F0-Wert des
Akkumulators 41 zu dem Akkumulator 41a transportiert, um dort mit den nächsten beiden Bits und dem
zuletzt verwendeten Bit von X0 multipliziert zu werden.
Nach dieser Multiplikation wird das Teilprodukt in der Addiereinheit 100 mit den Stellen 20 bis 44 des
Akkumulators 45 (wobei das Teilprodukt zwei Stellen nach rechts verschoben wird) und mit dem Übertragwert des Akkumulators 49 für den Übertragwert aus
der Addiereinheit 44 addiert, wobei der Ubertragwert des Akkumulators 49 verschoben wird, um seine
richtige binäre Lage aufrechtzuerhalten.
In dieser Weise werden die Weitergabe, Multiplikation und Addition der Teilprodukte weiter fortgesetzt,
bis das gesamte Produkt F0 X0 abwechselnd in
den taktweise arbeitenden Addiereinheiten 50 oder 54 gebildet worden ist. Für den Additionsvorgang der
taktweise arbeitenden Addiereinheiten 50 bzw. 54 sind zwei Taktintervalle erforderlich, während für den
Additionsvorgang mit Übertragsicherstellung nur ein Taktintervall benötigt wird. Wenn für die taktweise
arbeitenden Addiereinheiten eine schnellere Logik verwendet wird, wird die Addiereinheit 54 entfernt, so
daß der Rechenvorgang auf dreizehn Schritte mit zwölf Fm-Werten reduziert wird. Der Akkumulator
41 / würde dann ebenfalls entfernt. Das Produkt F0 X0
wird jedoch um eine Stufe gegenüber F0 verzögert, indem
sein Wert vorübergehend in einem der beiden Akkumulatoren 47 oder 48 gespeichert wird, so daß
der Wert F0AO beim Rücklauf von F0 durch die
Speicherstellen des Akkumulators 41 e zum Akkumulator 41 zurückgehalten wird. Wenn F0 zu dem
Akkumulator 41 zurückgeführt wird, werden zwei Bits des nächsten X-Wertes, X1, zu den Stellen 2 und 3
des Akkumulators 40 übertragen. Danach werden jedesmal, wenn F0 von einem Akkumulator zu dem
nächsten Akkumulator der Akkumulatorschleife 41, 41a, 41b ... 411 übertragen wird, zwei Bits des nächsten
Λ'-Wertes an die Stellen des Akkumulators 40 weitergegeben, die zu der Multiplizierstufe geführt
sind, die der Stufe zugeordnet ist, die, der den Wert F0
enthaltenden Stufe vorausgeht. Da der Wert F0 am Anfang der Liste der die Werte von Y bildenden Teilprodukte
steht, wie das in Tabelle 1 veranschaulicht ist, ist es notwendig, den Inhalt des Akkumulators 43
jedesmal auf Null einzustellen, wenn der Wert F0 in
den 24-Bit-Akkumulator 41 eingespeist wird. Das erfolgt zu Beginn der Bildung eines neuen F-Wertes.
ίο
Cl CO
Wie zuvor wird F0 in der Multiplizierstufe 42 mit
den ersten drei Bits des Akkumulators 40, der nunmehr zwei Bits von X1 enthält, multipliziert und dann in der
Addiereinheit 44 mit den Stellen 24 bis 48 des Akkumulators 43 addiert. Die resultierende Summe wird an
den Stellen 22 bis 46 des Akkumulators 45 gespeichert. Nach Speicherung dieser Summe wird F0 zu dem
Akkumulator 41a weitergeleitet, und F1 wird aus dem Kernspeicher in den Akkumulator 41 überführt. Darauf
wird das verzögerte Produkt F0X0 in den Akkumulator43
gebracht. An dieser Stelle wird F1 in der Multiplizierstufe 42 mit den ersten drei Bits des Akkumulators,
der die ersten zwei Bit-Werte von X1 enthält, multipliziert. Bei seiner weiteren Verschiebung
j wird F0 mit X1 multipliziert, so daß das Produkt F0 X1
gebildet wird. Der Wert F1, der auf den Wert F0 folgt,
wird in ähnlicher Weise mit X1 multipliziert. Das Produkt
wird mit dem Akkumulatorinhalt addiert, so daß die Produktsumme F0 X0 + Fj X1 gebildet wird.
Nach Bildung von F0 X1, dem ersten Ausdruck von
Y1, und von F0 X0 + F1 X1, den ersten beiden Ausdrücken
von F0, wird der Wert X2 in ähnlicher Weise
f mit je zwei Bits gleichzeitig aus dem Kernspeicher in die folgenden Stellen des Akkumulators 40 übertragen,
die mit der Multiplizierstufe verbunden sind, die dem F0-Wert vorausgeht. F2 wird dann auf F0 und F1 folgend
in den Akkumulator 41 eingespeist. Dieser zyklische Prozeß wird fortgesetzt, bis alle F-Werte in der Akkumulatorschleife
41, 41a, 41b... 41/ umlaufen. Sodann werden alle F-Werte zum Umlauf gebracht, bis
alle Y7n-Werte, von denen einige in Tabelle 1 gezeigt
sind, erhalten worden sind. Die so gebildeten Fm-Werte
werden dann über den Ausgabekanal 51 entnommen und in dem Kernspeicher gespeichert.
Die Speicherstellen 106 und 56b stellen Register dar,
die die relativen Lagen der Werte darin aufrechterhalten und sie aufeinanderfolgend zum Anfang der
Multipliziereinheit vorrücken. Wenn so vorgegangen wird, braucht die Anzahl der verwendeten F-Werte
nicht auf die Stufenzahl begrenzt zu sein, die in diesem Fall 12 beträgt, wie das beim Fehlen solcher Speicherelemente
notwendig wäre.
Die Verzögerungsakkumulatoren 47 und 48 sind jeweils groß genug, um die 24-Bit-Summe der Addiereinheit,
den 24-Bit-Wert der Stellen 24 bis 48 des Akkumulators 43 und den Ubertragwert der Addiereinheit
52 aufzunehmen. Jeder dieser Akkumulatoren 47 und 48 ist in drei Abschnitte unterteilt, von denen
der erste die wichtigsten Bits, der zweite die weniger wichtigen Bits und der dritte den Übertragwert enthält.
Bevor der in einem der beiden Akkumulatoren 47 oder 48 enthaltene Wert zu der Anfangsstufe zurückgeführt
wird, wird der Übertragwert des dritten Akkumulatorabschnittes mittels der dem Akkumulator 47
bzw. 48 zugeordneten taktweise arbeitenden Addiereinheit 50 bzw. 54 an der richtigen Binärstelle mit dem
Wert des Akkumulators addiert.
Der abwechselnde Durchlauf der Akkumulatoren 47 bzw. 48 wird durch ein geeignetes Gatter wie etwa das
Flip-Flop-Gatter 55 gewährleistet, das eine Kombination aus Akkumulator und taktweise arbeitender
Addiereinheit in den »Aufnahme«-Pfad und die andere entsprechende Kombination in den »Abgabe«-Pfad
schaltet und dann die Schaltung umkehrt, um den nächsten Wert aufzunehmen.
Mit F i g. 5 ist die Teil-Multiplizierschaltung wiedergegeben, wie sie für die einzelnen Teil-Multiplizierstufen
42, 58, 59 ... 60 Verwendung findet. Diese Teil-Multiplizierschaltung ist ein Logikkreis, der drei
aufeinanderfolgende Bits des Multiplikators (ein X-Wort) in jede Teil-Multiplizierstufe einspeist, aber
das letzte in der vorhergehenden Teil-Multiplizierstufe verwendete Bit wiederholt. So werden beispielsweise
Bits von den Stellen 25, 24, und 23 des Akkumulators 40 in die Teil-Multiplizierstufe 42, Bits von den Stellen
23, 22, 21 in die Teil-Multiplizierstufe 58 und Bits von den Stellen 21, 20 und 19 in die Teil-Multiplizierstufe59
überführt usf. Da jedes zweite Bit (mit Ausnahme des ersten Bits) in zwei Multiplizierstufen wiederholt wird,
ist die Bit-Stelle 25 als Null definiert, um einen durch einen nichtkorrigierenden redundanten Wert hervorgerufenen
Fehler zu eliminieren. Auf diese Weise verwendet die Multiplizierstufe, die drei Bits für die Multiplikation
benutzt, das redundante Bit als Korrekturfaktor. Der Ausgang der Teil-Multiplizierstufe bildet
daher ein selbstkorrigierendes Produkt, das für sich genommen und ohne Berücksichtigung in den anderen
Multiplizierstufen gebildeter Produkte falsch wäre. - -
Der Akkumulator40 ist auf der rechten Seite der.
F i g. 5 gezeigt und hat die Positionen 1 bis 25 (0 bis 24). Der F-Akkumulator 41 befindet sich auf der linken
Seite der F i g. 5 und hat die Positionen 1 bis 24. Die Bits von den Stellen 23 bis 25 (22 bis 24) des Akkumulators
40 werden zu jedem einzelnen von sechs UND-Gattern 111 bis 116 der Einheit 110 geleitet. Der
Ausgang des UND-Gatters 111 erscheint auf der Leitung 121. Die Ausgänge von den UND-Gattern 112
und 113 beaufschlagen eine Leitung 123 über ein ODER-Gatter 122. In ähnlicher Weise beaufschlagen
die Ausgänge der UND-Gatter 114 und 115 eine Leitung 125 über ein ODER-Gatter 124. Der Ausgang
des UND-Gatters 116 erscheint an der Leitung 126. Die Leitungen 121, 123, 125 und 126 sind mit zwölf
identischen Einheiten verbunden, von denen jedoch in F i g. 5 nur drei Einheiten 131, 132 und 133 gezeigt
sind. Die Einheit 131 umfaßt dabei vier UND-Gatter 136 bis 139. Die Ausgänge der UND-Gatter 136 bis 139
sind alle über ein ODER-Gatter 141 an eine Ausgangsleitung 140 angeschlossen. Die Leitung 121 führt
zu dem einen Eingang des UND-Gatters 137.' Die Leitung 123 führt zu dem einen Eingang des UND-Gatters
139. Die Leitung 125 führt zu dem einen Eingang des UND-Gatters 138, während die Leitung 126
zu dem einen Eingang des UND-Gatters 136 geführt ist.
.Der zweite Eingang des UND-Gatters 139 wird νοη
dem Bit der Stelle 1 des Akkumulators 41 gespeist, wobei das Komplement davon über einen Inverter 142
auf den zweiten Eingang des UND-Gatters 138 einwirkt. In ähnlicher Weise wird der zweite Eingang des
UND-Gatters 137 von dem Bit der Stelle 2 des Akku-, mulators 41 gespeist, während das Komplement dazu
den zweiten Eingang des UND-Gatters 136 über einen Inverter 143 speist.
Die Leitungen 121, 123, 125 und 126 sind in den Einheiten 132 und 133 jeweils an Einheiten angeschlossen,
die den UND-Gattern 136 bis 139 der Einheit 131 entsprechen. Die Einheit 132 wird jedoch mit
den Bits der Stellen 3 und 4 des Akkumulators 41 gespeist. Die Bits der Stellen 5 bis 22 werden zu gleichartigen
Einheiten (nicht dargestellt) geleitet, die in dem Schaltbild der F i g. 5 zwischen den Einheiten 132 und
133 in analoger Weise angeordnet wären. Die Bits der Stellen 23 und 24 des Akkumulators 41 beaufschlagen
die UND-Gatter der Einheit 133. Die Gatter
132 und 133 erzeugen in den Leitungen 144 und 145
dann entsprechende Ausgangssignale.
Wie weiter oben beschrieben, wird in dem Akku mulator'41 ein F-Wert gespeichert, während die Bits
eines X-Wertes in dem Akkumulator 40 gespeichert werden. Es werden jeweils drei Bits des X-Wertes
gleichzeitig genommen, die mit den Buchstaben a, b und c bezeichnet und durch die Einheiten 110 entsprechend
Tabelle 2 gewichtet sind. Alle möglichen Kombinationen binärer Werte der Bits a, b und c werden
verwendet. Die Spalte α der Tabelle 2 ist dem Wert —2 zugeordnet, während die Spalten b und c
jeweils dem Wert +1 zugeordnet sind. Diese Werte werden mit den Werten jeder Spalte multipliziert, und
es werden dann die Spalten horizontal summiert, um das Gewicht W zu erhalten.
Tabelle | α, b, c | 2 | b | C | W | 0 |
Bits | O | 0 | -2 | |||
a | O | 0 | 1 | |||
O | 1 | 0 | -1 | |||
1 | 1 | 0 | 1 | |||
O | O | 1 | -1 | |||
1 | O | 1 | 2 | |||
O | 1 | 1 | 0 | |||
τ—Ι | 1 | 1 | ||||
O | = 25, 24, 23 | |||||
1 | 23, 22, 21 | |||||
21, 20, 19 | ||||||
usw. | ||||||
Die Spalte W der Tabelle 2 stellt daher das Gewicht dar, das dem Satz von drei binären Zahlen a, b und c
zuzuordnen ist. In der binären Logik kann ein Gewicht der Größe »1« eine Zahl, der Größe »—1« ein
Komplement, der Größe »2« die Zahl in der zweiten Potenz und der Größe »—2« das Komplement der
Zähl in der zweiten Potenz repräsentieren. Auf diese Weise sind die Zahlensätze a, b und c mit einer Reihe
von Redundanzen kodiert, d. h., wenn a, b und c den Wert 010 oder 0 01 haben, so wird die Kombination
durch den redundanten W-Wert 1 repräsentiert. Da die Bits jedoch in Sätzen von drei Bits aufgenommen
werden, wobei zwei Bits jedes Satzes zwei verschiedenen Sätzen gemeinsam sind, korrigiert das Codiersystem
Fehler, die durch redundante Werte beim Addieren der Werte hervorgerufen worden sind. Der
Vorteil dieses Codiersystems besteht darin, daß dadurch die Anzahl der Multiplikationen auf die Hälfte
verringert wird, da ein Ausgangssignal effektiv eine Multiplikation von zwei Zahlen wiedergibt.
Dementsprechend werden die ersten drei AO-Bits der
Stellen 23, 24 und 25 des Akkumulators 40 von dem Akkumulator 40 in die Durchschalteinheit 110 überführt.
Diese Durchschalteinheit ist so ausgelegt, daß das jeweilige Gatter, das darin einen in Tabelle 2 gezeigten
Zustand (wie etwa 0 0 0, 0 0 1 oder 010) hervorgerufen
hat, das Signal 1 abgibt, während alle anderen Gatter das Signal 0 liefern. Der F-Wert
wie etwa F0 wird in die zweite Durchschalteinheit . mit den Einheiten 131, 132 ... 133, die ebenfalls
aus UND- und ODER-Gattern aufgebaut ist, eingespeist. Für je zwei Bits des F-Wertes stellen vier
UND-Gatter in den Einheiten 131 bis 133 die Logik zur Verfugung, um die Zahl, das Komplement der
Zahl, die um eine Stelle nach links (in die zweite Potenz) verschobene Zahl und das Komplement der
um eine Stelle nach links geschobenen Zahl wiederzugeben.
Die Ausgänge der Durchschalteinheit 110 sind in Übereinstimmung mit Tabelle 2 zu den entsprechenden
UND-Gattern der Einheiten oder Torschaltungen 131 bis 133 geführt, wobei die Ausgangssignale über
ίο die Leitungen 140, 144 ... 145 erhalten werden, die
den Wert F0 mal den ersten drei Bits von X0 und einen
Korrekturfaktor (im gezeigten Fall Null) darstellen.
In gleicher Weise ist das letzte, zuvor bei der ersten
Multiplikation verwendete Bit das Bit der Stelle 23 des Akkumulators 40, und die nächsten beiden Bits von
X0, d. h. die Bits an den Stellen 22 und 24 des Akkumulators
40, werden in eine ähnliche Schaltung geleitet, um ein Teilprodukt zu gewinnen, das den Wert F0
mal den Bits 21 und 22 von X0 und einen Korrekturfaktor
darstellt. Durch Aufsummierung aller dieser Teilprodukte in der oben beschriebenen Schaltung der
F i g. 4 wird das Produkt F0 X0 gebildet.
Zur weiteren Erläuterung der Datenumlaufschleife durch die Multipliziereinheiten zeigt F i g. 6 einen Teil
des Systems der F i g. 4 zusammen mit einer repräsentativen Form der Datenumlaufsteuerung. Für diese
Beschreibung sei angenommen, daß aufeinanderfolgende Werte X0, X1, X2 ... Xn zunächst in wiederauffindbarer
oder abrufbarer Form etwa in den Registern 200a, 2006, 200c ... 200« gespeichert werden. In entsprechender
Weise werden die F-Wörter in abrufbarer Form in Registern 201 α, 201 b, 201c ... bzw. 201 η
gespeichert.
Die Bit-Stellen des Registers 200 a sind mit den Bit-Stellen
des ^-Registers bzw. Akkumulators 40 über UND-Gatter 211 bis 234 verbunden. Die UND-Gatter
211 bis 234 sind durch von einem Taktgeber 240 abgegebene Impulse gesteuert. Die Taktimpulse aus dem
Taktgeber 240 beaufschlagen einen Impulsuntersetzer 241, der die Taktfrequenz um einen Faktor 14 herabsetzt,
sowie eine 13-Bit-Ringzähler-Impulsverzögerungseinheit
242. Die ersten zwölf Ausgänge der Einheit 242 sind paarweise an die Eingänge der UND-Gatter
211 bis 234 angeschlossen. Der Ausgang Nr. 1 ist an die Gatter 211 und 212 angelegt, während der
Ausgang Nr. 2 an die Gatter 213 und 214 gelegt ist. In dieser Reihenfolge sind die übrigen Ausgänge mit
den weiteren UND-Gattern verbunden, so daß der zwölfte Ausgang an die UND-Gatter 233 und 234 angeschlossen
ist. Der -dreizehnte Ausgang ist für die Übertragung in den Akkumulator 40 nicht erforderlich.
Er entspricht der Verzögerung der taktweise arbeitenden Addiereinheit.
Durch die Ausgangsimpulse der Einheit 242 werden somit die Bits 23 und 24 koinzident mit dem ersten
Impuls der Einheit 242 zu den Stellen 23 und 24 des Akkumulators 40 übertragen. Durch den zweiten, von
der Einheit 242 abgegebenen Impuls werden die Bits 21 und 22 an die Stellen 21 und 22 des Akkumulators 40
übergeben usw.
Wie ersichtlich, wird das zwölfte Ausgangssignal der Einheit 242 nicht nur zu den Gattern 233 und 234, sondern
außerdem auch zu den Gatter-Reihen 243 und 244 geleitet. Wenn die letzten Bits des Wortes X0 in den
Akkumulator 40 übertragen worden sind, werden die Wörter X1 und X2 und die folgenden Wörter in entsprechender
Reihenfolge einen Schritt in Richtung auf den Akkumulator 40 weiter vorgerückt, so daß nun-
mehr das Wort X1 das Register 200 a und das Wort X2
das Register 200 ό belegt.
Entsprechend der Steuerung durch die Einheit 242 werden die Wörter so von dem Register 200 2-Bit-weise
in den Akkumulator 40 überführt.
Wenn die Wörter F0, F1 und F2 in den Registern
201a, 2016 und 201c gespeichert sind, so können sie
durch über die Leitung 245 zugeführte Steuerimpulse abwärts durch die Serie von Registern 41 bis 41 k
weitergegeben werden. Wie aus der Zeichnung ersieht-Hch,
münden die Ausgänge der Akkumulatoren 41 bis 41 it in UND-Gatter 251 bis 262, die die Akkumulatoren
in Kaskadenschaltung miteinander verbinden. Die Gatter sind parallel aufgebaut, ι so daß sie jedes
24-Bit-Wort als Ganzes von einem Akkumulator zu einem anderen übertragen können. In ähnlicher Weise
ist auch zwischen dem Register 201 α und dem Akkumulator 41 ein UND-Gatter 263 vorgesehen. In ähnlicher
Weise sind Gatter 264 und 265 in den Pfad für die Zufuhr der aufeinanderfolgenden F-Wörter F0, F1
und F2 geschaltet.
Von dem ersten Ausgang der Einheit 242 verläuft eine Steuerleitung 270 zu den UND-Gattern 263 bis
265. Nach dem Einwirken des ersten Impulses der Einheit 242 werden somit die beiden ersten Bits des
Wortes X0 in den Akkumulator 40 übertragen, während
die Wörter F0, F1 und F2 jeweils einen Schritt vorgerückt
werden, wobei das Wort F0 von dem Akkumulator 41 aufgenommen wird. Nachdem jeder der
Taktimpulse der Leitung 271 die Gatter 251 bis 262 beaufschlagt hat, wird das Wort F0 schrittweise durch
die Register 41 bis 41 k geführt. Gleichzeitig werden die Bits 1 bis 22 2-Bit-weise in den Akkumulator 40
weitergegeben.
Der zwölfte Impuls der Verzögerungseinheit 242 sorgt für eine Übertragung der Bits 23 und 24 in den
Akkumulator 40 und gibt gleichzeitig das Wort X1 in
das Register 200 a weiter. Koinzident mit dem vierzehnten Ausgangsimpuls der Einheit 240 erscheint an
dem Ausgang Nr. 1 ein zweiter Impuls, um das erste der beiden Bits des Wortes X1 zu den Stellen 1 und 2
des Akkumulators 40 zu übertragen. Gleichzeitig betätigt ein auf der Leitung 271 erscheinender Impuls
das Gatter 262, um das Wort F0 za dem Akkumulator
41 zu übertragen. Die 1:14-Untersetzereinheit 241 beaufschlagt
die Gatter 263, 264 und 265 dann über einen Kanal 272 mit einem Impuls, so daß das Wort F1
in den Akkumulator 41 und gleichzeitig damit das Wort F0 in den Akkumulator 41a übertragen wird.
Wie ersichtlich, ist die Leitung 270 über ein UND-Gatter 273 mit den Gattern 263, 264 und 265 verbunden,
während die Leitung 272 über das Gatter 274 parallel dazu geschaltet ist. Eine Sperre 275 ist mit
ihrem Trigger-Eingang an die Leitung 270 angeschlossen, so daß nur der erste Impuls der Einheit 242
über das UND-Gatter 273 zu den Gattern 263 bis 265 gelangen kann. Danach vermag nur der über die Leitung
272 geführte Impuls die Gatter 263 bis 265 über das Gatter 274 zu erreichen.
Wie sich aus dem Vorstehenden ergibt, wird der in Tabelle 1 schematisch wiedergegebene Vorgang durch
den selektiven Einsatz von Taktgeber-Steuerimpulsen der Taktgebereinheit 240 realisiert. Zu Beginn werden
alle Akkumulatoren 40 und 41a bis 41/ auf Null gestellt. Die Bits der X-Wörter werden jeweils zu zweit
in den Akkumulator 40 weitergegeben. In einem ersten Zyklus wird das Wort F0 schrittweise durch die Akkumulatoren
41 bis 41/ geführt, so daß das Wort F0 somit ohne die Anwesenheit eines weiteren Wortes durch
die Akkumulatorenreihen gelangt.
Mit dem zweiten Zyklus, während dessen das Wort JST1 an Stelle des Wortes X0 in den Akkumulator 40 gegeben
wird, werden die Wörter F0 und F1 schrittweise
nacheinanderfolgend durch die Akkumulatoren 41 bis 41/ geführt. Wenn das dritte Wort X2 in den Akkumulator
40 eingegeben wird, werden die Wörter F0, F1
und F2 schrittweise eins nach dem anderen durch die
Akkumulatoren 41 bis 41/ geführt.
Man erkennt, daß die Speichereinheit 56 b der F i g. 4 in F i g. 6 nicht vorgesehen worden ist. Ebenso
sind der Akkumulator 43 der F i g. 4 und die davon ausgehenden Datenpfade in F i g. 6 nicht gezeigt worden.
F i g. 6 dient in erster Linie zur Veranschaulichung der Steuerung des Datenumlaufs bezüglich der Akkumulatoren
40 und 41. Die Gatter werden gleichzeitig mit den Gattern 251 bis 262 in jeder der Leitungen 43a,
43c und 436 der F i g. 4 betätigt, so daß die Daten die dritte Schleife gleichzeitig mit dem oben beschriebenen
Umlauf durch die Akkumulatoren 41 bis 41/ durchlaufen. In den Leitungen 45 c, 45 b, 45 d und 49 a und
außerdem in ähnlicher Weise in den Zwischenstufen der dritten Schleife sind gleichfalls Gatter vorgesehen.
Durch die Verwendung von Teil-Addierern kann somit eine beträchtliche Zeitersparnis erzielt werden.
Hierzu 5 Blatt Zeichnungen
Claims (3)
1. Digital arbeitende Rechenanordnung zur Bildung der Korrelations- bzw. Konvolutionsfilterfunktion
771 /ΛΒ^ΪΙ Zt 771 >
wobei Fn (n = a ... b) und Xn ± m (n = a ... b,
m = c ... d) erste und zweite Datenwortreihen aus η bzw. η ± m Datenwörtern bilden und Ym
eine dritte Datenwortreihe aus m Datenwörtern bildet, mit zur Aufnahme der Datenwörter dienenden
Speicherstufen, denen Multipliziereinheiten und Addiereinheiten zugeordnet sind, dadurch
ge kennzeichne t,.'daß zur Bildung einer
geschlossenen Schleife hintereinandergeschaltete, erste Speicherstufen (41 bis 41 fc, 41/) vorgesehen
sind, von denen eine Speicherstufe jeweils ein Datenwort der ersten Datenwortreihe F aufnehmen
kann und von denen eine bestimmte Anzahl hintereinandergeschalteter Speicherstufen (41 bis
41Ä:) mit dem ersten Eingang von der Anzahl entsprechenden
Multipliziereinheiten (42, 58 ... 60) verbunden sind, daß zur Aufnahme eines Datenworts
der zweiten Datenwortreihe X eine zweite Speicherstufe (40) vorgesehen ist, in die zeitlich
nacheinander Datenwortgruppen, in die das Datenwort unterteilt ist, einführbar sind und von der
diese Datenwortgruppen jeweils den zweiten Eingängen der Multipliziereinheiten zuführbar sind,
wobei ein oder mehrere Bits der aufeinanderfolgenden Datenwortgruppen den zweiten Eingängen der
Multipliziereinheiten mehrfach zugeführt werden, daß die Ausgänge der Multipliziereinheiten zur
Überführung der gebildeten Teilprodukte jeweils mit einer Addiereinheit (44 ... 52) verbunden
sind, welche wiederum mit zur Bildung einer Schleife hintereinandergeschalteter Akkumulatoren
(43, 45 ... 47, 48) derart verbunden sind, daß das Teilprodukt jeder Multipliziereinheit auf den Inhalt
des zugeordneten vorausgehenden Akkumulators addiert und die Summe in den zugeordneten
vorausgehenden Akkumulator eingeführt wird, wobei synchron mit dem Durchlauf eines Datenwortes
der Datenreihe F durch die ersten Speicherstufen die gebildeten Teilprodukte aufaddiert werden,
so daß nach dem Durchlauf im letzten Akkumulator (47, 48) jeweils der in den ersten Akkumulator
(43) eingeführte und um das Gesamtprodukt der beiden Datenwörter erhöhte Zwischenwert
für Datenworte Y auftritt, der für einen weiteren
Durchlauf zu dem ersten Akkumulator zurückführbar ist, daß eine Steuervorrichtung vorgesehen
ist, die nach jedem Durchlauf eines Datenwortes der ersten Datenwortreihe F den ersten Speicherstufen
jeweils ein weiteres Datenwort der ersten Datenwortreihe für den nächsten Durchlauf zuführt
oder entnimmt und ein weiteres Datenwort der zweiten Datenwortreihe X zur gruppenweisen
Einführung in die zweite Speicherstufe (40) bereitstellt, wobei entsprechend der Anzahl der eingeführten
Datenworte der zweiten Datenwortreihe und der Anzahl der Multiplizier- bzw. Addiereinheiten
gleichzeitig Zwischenwerte von mehreren Datenworten Y gebildet werden, und daß eine
Ausgangsschaltung (51) vorgesehen ist, die die
IO
Endwerte der Datenwörter Y der Akkumulatorschleife entnimmt.
2. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß die zweiten Eingänge der Multipliziereinheiten
(42, 58 bis 60) jeweils aus Dreiergruppen von Eingangskanälen bestehen, denen jeweils eine Informationseinheit aus den aus drei
Informationseinheiten bestehenden zeitlich aufeinanderfolgenden Datenwortgruppen der zweiten
Datenwortreihe (X) zugeführt werden, wobei zwei Eingangskanäle jeder Dreiergruppe mit jeweils
einem Eingangskanal einer weiteren Dreiergruppe verbunden sind.
3. Anordnung nach Anspruch 2, dadurch gekennzeichnet, daß die Multipliziereinheiten (42,
58 bis 60) derart ausgebildet sind, daß sie die an ihren Eingangskanälen zugeführten drei Informationseinheiten
so abnehmen, daß eine Informationseinheit jeder Dreiergruppe eine bereits zuvor
einer weiteren Multipliziereinheit zugeführte Informationseinheit ist.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US61625967A | 1967-02-15 | 1967-02-15 | |
US61625967 | 1967-02-15 | ||
DET0035594 | 1967-12-27 |
Publications (3)
Publication Number | Publication Date |
---|---|
DE1549560A1 DE1549560A1 (de) | 1971-03-04 |
DE1549560B2 DE1549560B2 (de) | 1975-12-18 |
DE1549560C3 true DE1549560C3 (de) | 1976-07-29 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE1956209C3 (de) | Multipliziervorrichtung | |
DE19758079A1 (de) | Verfahren und Vorrichtung zur Galoisfeld-Multiplikation | |
DE1169166B (de) | Modulí¬9 Pruefzahl-Rechner | |
DE2730918A1 (de) | Anordnung zum multiplizieren von binaerzahlen | |
DE1114050B (de) | Elektronischer Gleitkomma-Rechner | |
DE2750212A1 (de) | Einrichtung zur bildung und akkumulation von produkten | |
DE1549560C3 (de) | Digital arbeitende Rechenanordnung zur Bildung der Korrelations- bzw. Konvolutionsfilterfunktion | |
DE3424078A1 (de) | Dezimalmultiplikations-einrichtung | |
DE1051030B (de) | Elektronische Multiplikationsmaschine | |
DE2017132B2 (de) | Binärer Parallel-Addierer | |
DE2426253B2 (de) | Vorrichtung zum ziehen der quadratwurzel aus einer binaeren zahl | |
DE1549560B2 (de) | Digital arbeitende Rechenanordnung zur Bildung der Korrelations- bzw. Konvolutionsfilterfunktion | |
DE1909475A1 (de) | Im Serienbetrieb arbeitende Umlauf-Datenspeicher- und -verarbeitungseinrichtung | |
DE1549105C3 (de) | Codeprüfanordnung für die Korrektur fehlerhaft übertragener Zeichen | |
DE1574660B2 (de) | Schieberegister hoher geschwindigkeit | |
DE1094490B (de) | Verfahren und Anordnung zur Umwandlung von Binaerzahlen in Dezimalzahlen und umgekehrt | |
DE1094020B (de) | Periodisch arbeitende numerische Rechenmaschine | |
DE2142636C3 (de) | Rechenwerk für die Durchführung digitaler Multiplikationen | |
DE2554443A1 (de) | Vorrichtung zur bildung von kanaelen unter zuhilfenahme von gleichmaessig auf einer kreislinie verteilten detektoren | |
DE3634691A1 (de) | Differenzpulscodemodulator sowie dessen verwendung als demodulator | |
DE1181459B (de) | Multiplikationsschaltung fuer elektronische Zifferrechenmaschinen | |
DE1151684B (de) | Elektronisch arbeitende Rechenmaschine mit einer Programmvorrichtung | |
DE1524156B2 (de) | Digitale elektronische recheneinrichtung | |
DE1424926B1 (de) | Verfahren zur Multiplikation binaerer Zahlen in mehreren Operationsschritten | |
DE1091778B (de) | Elektronische Multiplikationsmaschine nach dem Teilproduktverfahren |