-
Genauer gesagt, betrifft die Erfindung eine Addierkette zum
Zusammenaddieren mehrerer N Digitalwörter (X, Y, Z ...) aus n Bits, wobei N
eine natürliche Zahl größer als 2 ist, umfassend mehrere kaskadierte
Addierblöcke (2) mit einem Anfangsblock (4), der die ersten zwei
Digitalwörter (X, Y) empfängt und einem Endblock (5), der die Summe
sämtlicher Wörter präsentiert.
-
Wie bekannt ist, werden Addierkellen in einer Vielzahl von
Schaltungsanordnungen eingesetzt, die für einen Bereich unterschiedlicher
Anwendungserfordernisse ausgelegt sind.
-
Ein typisches Beispiel ihrer Einsatzmöglichkeiten bezieht sich auf FIR-
Filter (Finite Impulse Response Filter), bei denen die Addierer dazu
ausgelegt sind, einen Teil der Transferfunktion zu realisieren, die
charakterisüsch für das Filter ist.
-
Im Stand der Technik gibt es eine Reihe bekannter Vorschläge, die auf
die Schaffung von Addierketten abzielen. Die zum Stand der Technik
gehörigen Vorschläge sind allerdings mit einem gemeinsamen Nachteil
behaftet insofern, als sie sämtlich recht langsam sind bei der Bildung des
Resultats der Summenoperation.
-
Ein erste bekannte Lösung ist in der europäischen Patentanmeldung
0 391 516 offenbart, die sich auf eine binäre Addiervorrichtung bezieht,
die zum Zusammenaddieren zweier Digitalwörter benutzt wird.
-
Allerdings offenbart diese Lösung keinerlei Mechanismus zum
Empfangen eines dritten oder vierten Worts und zum effizienten Kombinieren
all dieser Wörter.
-
Ein zweite bekannte Lösung ist offenbart in dem IBM Technical
Disclosure Bulletin Vol. 17, Nr. 1, Juni 1974, auf den Seiten 118-119, das
sich auf einen Hochgeschwindigkeitsakkumulator bezieht, um die
Übertrag-Verzögerungszeit dadurch zu minimieren, daß mit drei Eingängen
versehene Volladdierer und eine Anordnung zur Übertrag-Fortpflanzung
eingesetzt werden.
-
Diese Lösung ist möglicherweise nützlich beim Addieren einer
begrenzten Anzahl von Wörtern, weil eine erhöhte Anzahl von zu addierenden
Wörtern beträchtliche Zeit für die Übertrag-Weitergabe zur
Ausgangsstufe verlorengeht.
-
Einige dieser herkömmlichen Vorgehensweisen sind detailliert
beschrieben in Joseph Cavanagh's "Digital Computer Arithmetics", veröffentlicht
von Macgraw-Hill.
-
Zur Vervollständigung der Diskussion sollen im folgenden kurz die am
meisten üblichen Lösungen des Problems angegeben werden, wie N-Bit-
Paralleladdierer mft Zweierkomplement für Festkommazahlen geschaffen
werden. Ein erster Addierer ist bekannt unter der Bezeichnung Carry
Look-Ahead, und er arbeitet so, daß gleichzeitig in jedem Block an der
Stelle jedes Bits Überträge eingegeben werden. Die Überträge werden
aus drei Zellstufen generiert, während die Summe aus zwei Stufen
gebildet wird.
-
Hieraus folgt, daß die maximale Verzögerungszeit 5 Taktimpulsen
entspricht. Allerdings erfordert der letzte Übertrag ein logisches UND-
Gatter mit N + 1 Eingängen, was sich nur durch ein Netzwerk aus
kaskadierten Gallern realisieren läßt.
-
Man kann ersehen, daß dies die Signalausbreitung zusätzlich verzögert.
-
Ein weiterer, unter der Bezeichnung Carry Select bezeichneter
Addierertyp besaß einen Aufbau, bei dem die Operanten in zwei Gruppen
unterteilt wurden, und jede Gruppe unter Verwendung der gleichen Logik wie
in dem ersten obigen Addierer realisiert wurde.
-
Dieser zweite Addierertyp ist nicht so schnell und erfordert eine stark
komplexe Schaltung.
-
Eine dritte Vorgehensweise, bezeichnet als Carry Bypass, versucht die
zum Generieren der Summe erforderliche Zeit dadurch zu reduzieren,
daß der Übertrag-Bestimmungsvorgang für den in eine gegebene Zelle
einzugebenden Übertrag beschleunigt wird. Zu diesem Zweck ist ein
Überschreitungsschritt für den Übertrag vorgesehen, um eine Kettenstufe
zu überspringen, wenn einer der Operanten bereits einen logischen Wert
von Eins an einer gegebenen Stelle aufweist. Obschon bessere Leistung
erzielt wird als bei der zuvor beschriebenen Anordnung, ist die
erreichbare Geschwindigkeit nicht besonders hoch.
-
Eine weitere Typologie von Addierern ist im Stand der Technik als
Carry-Safe-Addierer oder Pseudoaddierer bekannt und enthält ein
kombinatiorisches Netzwerk, welches, wenn drei Zahlen aus jeweils N Bits
eingegeben werden, zwei weitere Zahlen mit N Bits ausgibt, die als
Pseudosumme und Pseudoübertrag bezeichnet werden.
-
Allerdings erfordert dieser bekannte Addierer eine Endstufe, um die
Pseudosumme und den Pseudoübertrag zusammenzuaddieren, wobei der
Pseudoübertrag in geeigneter Weise um eine Position verschoben wird.
-
Zusammengefaßt: Sämtiiche Vorschläge aus dem Stand der Technik
haben den Nachteil, daß sie bei der Durchführung der Summenoperation
ziemlich langsam sind, unbeachtet ihrer verschiedenen
Ausführungsformen. Weiterhin bedingen sie eine beträchtliche Schaltungskomplexität,
was den für die Summenoperation aufzuwendenden Flächenbereich der
integrierten Schaltung beträchtlich heraufsetzt.
-
Der Erfindung liegt die Aufgabe zugrunde, eine Addierkette anzugeben,
die derartige bauliche und funktionelle Besonderheiten aufweist, daß die
Summenoperation mit sehr hoher Geschwindigkeit durchgeführt werden
kann, wobei die Anforderungen an die Silizium-Belegungsfläche
reduziert sind, um auf diese Weise die Beschränkungen der derzeitigen
Anordnungen zu überwinden.
-
Ein am gleichen Tag von der Anmelderin eingereichte, verwandte
europäische Patentveröffentlichung EP-A-0 971 693 schlägt eine alternative
Lösung der obigen technischen Aufgabe mit einem anderen
Schaltungsaufbau vor, welcher kaskadierte Addierblöcke enthält.
-
Die Lösungsidee, auf der die vorliegende Erfindung beruht, besteht
darin, daß der Übertrag nur einmal bis zu dem Ende der Addierkette
vorgetragen wird.
-
Basierend auf dieser Lösungsidee wird die technische Aufgabe durch
eine Addierkette gelöst, die im Kennzeichnungsteil des Anspruchs 1
definiert ist.
-
Weitere Merkmale und Vorteile einer erfindungsgemäßen Addierkelle
ergeben sich aus der nachfolgenden detaillierten Beschreibung eines
Ausführungsbeispiels, das nicht-beschränkend unter Bezugnahme auf die
begleitenden Zeichnungen angegeben wird. Es zeigen:
-
Figur 1 eine schematische Darstellung einer Addierkette als
Ausführungsform der Erfindung;
-
Figur 2 schematisch eine Einzelheit eines ersten Addierers oder
Summierblocks in der Kette nach Figur 1;
-
Figur 3 eine schematische Einzeldarstellung eines allgemeinen
iten Addier- oder Summierblocks in der Kette nach Figur 1;
-
Fig. 4 und 5 repräsentative Beispiele von Addierern, wie sie in den
Blöcken in den Figuren 2 und 3 enthalten sind;
-
Fig. 6 und 7 weitere Beispiele von Addierern in den Blöcken in der
Kette gemäß der Erfindung; und
-
Figur 8 eine schematische Darstellung eines Endblocks in der Kette
nach Figur 1.
Bezugnehmend auf die zeichnerischen Darstellungen ist bei 1 allgemein
und schematisch eine Addierkette als Ausführungsform der vorliegenden
Erfindung gezeigt.
-
Diese Kette 1 ist insbesondere aber nicht ausschließlich vorgesehen für
den Einbau in ein digitales Filter vom FIR-Typ, welches nicht
dargestellt, weil es an sich bekannt ist.
-
Der Aufbau der Kette I enthält mehrere N Addier- oder Summierblöcke
2 in seiner Mitte, in ihrer Anzahl entsprechend der Anzahl von zu
addierenden Wörtern. Außerdem sind ein Anfangsblock 4 und ein
Endblock 5 zum Berechnen und Präsentieren der Summe in expliziter Form
vorgesehen.
-
Der Anfangsblock 4 ist in Figur 2 dargestellt und enthält eine Gruppe
von Addierern 7, denen jeweils Wortpaare eingegeben werden, pro Wort
jeweils aus 2 Bits bestehend.
-
Insbesondere handelt es sich bei diesen Wörtern um Zwei-Bit-Abschnitte
der miteinander zu addierenden Digitalwörter, die bei der hier lediglich
als Beispiel beschriebenen Ausführungsform sich jeweils aus n = 8 Bits
zusammensetzen.
-
Damit enthält der Block 4 eine Anzahl von Addierern 7 entsprechend
n/2, die parallel angeordnet und jeweils mit entsprechenden
Eingangspaaren ausgestattet sind, um digitale Signale zu empfangen, die den
vorerwähnten Abschnitten der zu addierenden Wörter entsprechen.
-
Dementsprechend werden in jeden Addierer 7 auf der einen Seite zwei
digitale Signale Ai und Ai+1 eingegeben, die den beiden Bits eines ersten
Digitaiwortes X entsprechen und auf der anderen Seite werden zwei
weitere digitale Signale Bi und Bi+1 eingegeben, die einem weiteren Paar
von Bits eines zweiten Worts Y entsprechen, welche aus das erste Wort
addiert werden soll. Es sollte verstanden werden, daß die Bitpaare
dieselben
und homologen Positionen in den jeweiligen Wörtern X und Y
belegen.
-
Die sich auf das zweite Wort Y beziehenden Signale werden in einem
mit 3 bezeichneten Register aufgenommen. Das Wort X wird anstelle
dessen so verwendet, däß mehrere Digitalfilter mit der Kette 1 gemäß
der Erfindung in Kaskade geschaltet werden können.
-
Der Aufbau jedes Addierers 7 ist in Figur 4, 5, 6 und 7 dargestellt und
enthält jeweilige Zellen, in denen Kombinationen aus zwei Volladdierern
FA, oder aus zwei Halbaddierern HA oder sogar einem Volladdierer
und einem Halbaddierer vorgeschlagen sind.
-
Beispielsweise zeigt Figur 4 einen ersten Typ einer
HA-FA-Kombination, in den zwei Wörter A0, A1 und B0, B1 mit jeweils zwei Bits
eingegeben und aus dem zwei Summen SOM1, SOM2 sowie der
Übertrag C2 für eine zweite Zelle ausgegeben werden.
-
Stattdessen ist in Figur 5 eine Kombination aus einem Volladdierer mit
zwei jeweils 2 Bits umfassenden Eingabewörtern und einem Übertrag
CINO aus einer vorhergehenden Summe, zum Beispiel dem Übertrag C2
aus der vorhergehenden Stufe, dargestellt.
-
Ein dritter, in Figur 6 dargestellter Fall schlägt die Kombination aus
zwei Halbaddierern vor, umfassend drei Eingänge, nämlich für ein
Zwei-Bit-Wort und einen Übertrag von einer vorausgehenden Summe.
Die Ausgänge dieses Addierers sind äquivalent zu denen der obigen
Fälle.
-
Schließlich zeigt das Beispiel nach Figur 7 eine FA-HA-Kombination mit
vier Eingängen, von denen drei dasselbe "Gewicht" haben und einer zu
einem Übertrag höheren Gewichts in Beziehung steht.
-
Die letztgenannten drei Zellen bilden im wesentlichen einen parallelen
Carry-Ripple-Addierer für Zwei-Bit-Wörter.
-
Innerhalb dieser Zellen sind die Paare aus HA- und/oder FA-Addierem
so miteinander verschaltet, daß der Übertrag von der ersten
Pseudosummenoperation intern durchgeführt wird.
-
Innerhalb der Kette 1 werden die obigen Zellen in den verschiedenen
Blöcken 2, 4 und 5 in geeigneter und erforderlicher Weise eingesetzt.
-
Der Aufbau des Anfangsblocks 4 umfaßt außerdem eine Mehrzahl von
Speicherelementen 10, die im folgenden als Latch (Zwischenspeicher)
bezeichnet werden.
-
Insbesondere sind diese Latche vom sogenannten Master-Slave-Typ und
in einer Anzahl von (3n/2-1) vorhanden.
-
Ein Latch 10 ist nach jedem Ausgang SOMi oder Ci der Addierer 7 mit
Ausnahme des Ausgangs Cn-1 des letzten Addierers in jedem Block 2
oder 4 vorgesehen. Der letztgenannte Ausgang repräsentiert den n-ten
Übertrag und sollt gelöscht werden zum Verschieben des Übertrags um
eine Position in Richtung auf die höherwertigen Bits, damit das Ergebnis
korrekt ist.
-
Eine ähnliche Gruppe von (3n/2-1) Latchen 11, wiederum vom Master-
Slave-Typ, ist hinter den zuvor erwähnten Latchen 10 vorgesehen. Diese
Latche 11 sind Doppel-Auswahl-Elemente, die betriebsmäßig derart mit
einem Steuersignal Ctro gekoppelt sind, daß das Signal das Latch
überspringen kann. Die Latche 11 sind speziell im Hinblick auf die
speziellen symmetrischen FIR-Felder vorhanden.
-
Die Ausgänge der Latche 11 sind in den Zeichnungen mit den Symbolen
SOMi und Ci bezeichnet, abhängig davon, ob sie sich auf das i-te
Pseudosummen- oder Pseudoübertrag-Bit von der im Block 4 ausgeführten
Operation beziehen.
-
Der Aufbau der N Blöcke 2 in der Mitte der Kette soll nun im einzelnen
unter Bezugnahme auf Figur 3 betrachtet werden.
-
In jeden i-ten Block 2 wird auf der einen Seite ein Digitalwort Y mit n
Bits eingegeben, das aus dem Speicher 3 ausgelesen wird, und auf der
anderen Seite das digitale Ausgangswort Z von dem im vorausgehenden
Addierblock. Dies Ausgangsgröße Z umfaßt 2n-1 Bits.
-
Allerdings werden die Wörter Y und Z als Abschnitte eingegeben, die
jeweils aus zwei Bits bestehen, und die an die entsprechenden Zwei-Bit-
Addierblöcke 8 angelegt werden.
-
Jeder Block 2 enthält eine Anzahl von Addierern von mindestens gleich
n/2.
-
Der erste Addierer 8 im i-ten Block 2 enthält eine Zelle 12 der in Figur
4 dargestellten Art, während die anderen Zwei-Bit-Addierer 8 von der
bei 13 in Figur 5 dargestellten Art sind, und in die der Übertrag von der
Zwei-Bit-Summe eingegeben wird, der von dem vorhergehenden Block 2
der entsprechenden Stelle stammt.
-
Ähnlich dem Block 4 ist jeder Block 2 mit mehreren Latchen 10
ausgestattet, die hinter jedem Ausgang der Addierer 8 liegen, mit Ausnahme
des Übertrags Cn-1 am Ausgang des letzten Addierers.
-
Außerdem sind Doppel-Auswahl-Latche 11, betriebsmäßig mit einem
Steuersignal Ctrol gekoppelt, an das vorausgehende in Kaskade
angeschlossen; ihre Funktionen werden unten noch erläutert.
-
Der Aufbau muß nun noch für den Endblock 5 beschrieben werden, der
dazu ausgebildet ist, am Ausgang U die explizite Berechnung der
Summe der Digitalwörter darzustellen.
-
Wie in Figur 8 gezeigt ist, enthält der Block 5 grundsätzlich mehrere
Latche 9, die in Form paralleler Reihen in einer Ordnung in Kaskade
geschaltet sind. Die Anzahl der Reihen beträgt im wesentlichen n + 1,
wobei einige zusätzliche und Teil-Reihen vorgesehen sind, um die
verschiedenen Überträge zu speichern.
-
Die ersten zwei Reihen enthalten nur Latche 9 und übertragen an ihre
Ausgänge die Wert SOM0M, SOM1m der geringwertigsten Bits der
Pseudosumme, die im letzten Block der bei 2 dargestellten Art berechnet
wird.
-
Die zweite und die dritte Reihe enthalten stattdessen einen Addierer, der
bei 14 in Figur 6 dargestellten Art, in den das erste und das zweite Bit
der zweiten Pseudosumme sowie das erste Pseudoübertrag-Bit
eingegeben werden. Die zwei Ausgänge dieser Addierer sind an zwei
entsprechende Latche 9 angeschlossen, welche die zweite Gruppe von zwei Bits
des Ergebnisses der Summenoperation enthält, die an den Ausgang U zu
übertragen ist. Ein dritter Ausgang des Addierers 14 enthält den
Übertrag zum Anlegen an einen nachfolgenden Addierer der bei 15
angegebenen Art.
-
Von dieser Stelle an nach vom besitzt der Block 5 paarweise Reihen mit
einem Addierer 15, dessen Lage sich um eine Stelle in jeder
aufeinanderfolgenden Doppelreihe verschiebt, um als Eingangssignal den
Übertrag zu empfangen, der am Ausgang des Addierers 14 oder 15
unmittelbar davor erscheint.
-
Im wesentlichen wird der Übertrag um eine Stelle bei jedem Taktimpuls
fortgeschaltet, und jedes Bit der End- oder Partialsumme sowie jeder
Übertrag werden in den Master-Slave-Latchen 9 gespeichert.
-
Die Betriebsweise der Addierkette gemäß der Erfindung wird im
folgenden beschrieben. Es wird natürlich davon ausgegangen, däß die
Abtastgeschwindigkeit für die Übergänge, die innerhalb der Schaltung
stattfinden, durch ein Taktsignal festgelegt wird.
-
Ein Hauptvorteil der Erfindung besteht darin, daß der Übertrag von
einer elementaren Summieroperation, das heißt einer Operation, die
zwischen zwei Bits lediglich der miteinander zu addierenden Wörter
ausgeführt wird, nur einmal bis zum Kettenende durchgeschaltet wird,
bevor die Ausgabe erfolgt.
-
Die interne Lögik der Addierblöcke 2 verwendet als Daten die
Pseudosumme SOMi und den Pseudoübertrag Ci zwischen homologen Paaren
von Bits, die jeweils die zu addierenden Wörter ausmachen.
-
Wenn zum Beispiel die Binärzahl 101011 auf die weitere Binärzahl
101001 zu addieren ist, läßt sich das Ergebnis in Form von
Pseudosummen-Gruppen 00-00-00 angeben, jeweils zugehörig zu einem
entsprechenden, sogenannten Pseudoübertrag: 1-1-1. Letzterer sollte
offensichtlich um eine Stelle in Richtung der höchstwertigen Code-Ziffern oder-
Bits verschoben werden.
-
Der allgemeine i-te Block 2 empfängt Gruppen von zwei Bits, welche
die zu addierenden Wörter Z und Y zusammensetzen, sowie die
verschiedenen Pseudoüberträge von den bereits in dem vorhergehenden
Block abgeschlossenen Pseudosummen.
-
Der Endblock 5 ist hingegen dafür verantwortlich, den Pseudoübertrag
um eine Stelle in Richtung der höchstwertigen Bits der Pseudosumme zu
verschieben, in Einklang mit der Gesamt-Schaltungs-Zeitsteuerung.
-
Der Übertrag von jeder elementaren Summieroperation bezüglich 4 Bits
wird bei jedem Teilimpuls fortgeschaltet. Jedes Bit der Partialsumme
und jeder Ubertrag werden in den Master-Slave-Latchen 10 und 11
gespeichert. In einigen Fällen, insbesondere dann, wenn die Kette 1 in
linearen Digitalfeldern eingesetzt wird, können die Doppelauswahl-
Latche 11 auf Befehl seitens des Steuersignals Ctri übersprungen
werden.
-
Die Kette 1 gemäß der Erfindung stellt keine betrieblichen Probleme
aufgrund der Arbeitsgeschwindigkeit, da die Zeit, die ein Addierer FA
zum Beendigen der Summierung von zwei Bits plus dem
Eingangsübertrag benötigt, etwa 3-4 ns beträgt, während die Zeit, die ein Latch 10
benötigt, das Ergebnis der Operation aufzuzeichnen, etwa 3 ns beträgt.
Deshalb beträgt die Gesamtverzögerung 6-7 ns, das heißt weniger als die
Hälfte der Zeit, die bei konventionellen Bauelementen erforderlich ist.
-
Darüber hinaus sind die Anforderungen an die Siliziumbelegungsfläche
eines integrierten Schaltungsaufbaus gemäß der Erfindung deutlich
geringer.
-
Die erfindungsgemäße Addierkette erweist sich also als besonders
geeignet für den Betrieb bei den höchsten Frequenzen, die bei
konventionellen Digitalfeldern zu erwarten sind.
-
Darüber hinaus besteht sie aus sehr einfachen und in hohem Maße
zuverlässigen Grundkomponenten.