DE102007014808A1 - Multiplizier- und Multiplizier- und Addiereinheit - Google Patents

Multiplizier- und Multiplizier- und Addiereinheit Download PDF

Info

Publication number
DE102007014808A1
DE102007014808A1 DE102007014808A DE102007014808A DE102007014808A1 DE 102007014808 A1 DE102007014808 A1 DE 102007014808A1 DE 102007014808 A DE102007014808 A DE 102007014808A DE 102007014808 A DE102007014808 A DE 102007014808A DE 102007014808 A1 DE102007014808 A1 DE 102007014808A1
Authority
DE
Germany
Prior art keywords
unit
bit
csa
coupled
carry
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.)
Ceased
Application number
DE102007014808A
Other languages
English (en)
Inventor
Christian Wiencke
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Texas Instruments Deutschland GmbH
Original Assignee
Texas Instruments Deutschland GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Texas Instruments Deutschland GmbH filed Critical Texas Instruments Deutschland GmbH
Priority to DE102007014808A priority Critical patent/DE102007014808A1/de
Priority to PCT/EP2008/053724 priority patent/WO2008116933A1/en
Priority to US12/057,625 priority patent/US20080243976A1/en
Priority to EP08718316A priority patent/EP2140345A1/de
Publication of DE102007014808A1 publication Critical patent/DE102007014808A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/53Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
    • G06F7/5306Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel with row wise addition of partial products
    • G06F7/5312Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel with row wise addition of partial products using carry save adders
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods 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 for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3812Devices capable of handling different types of numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3812Devices capable of handling different types of numbers
    • G06F2207/382Reconfigurable for different fixed word lengths
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/53Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
    • G06F7/5324Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel partitioned, i.e. using repetitively a smaller parallel parallel multiplier or using an array of such smaller multipliers

Landscapes

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

Abstract

Die vorliegende Erfindung betrifft eine Multipliziereinheit für die Multiplikation eines ersten, aus na Bits bestehenden Operanden mit einem zweiten, aus nx Bits bestehenden Operanden, die eine übertragerhaltende Addier(CSA)-Einheit mit nx Zeilen, die jeweils aus na UND-Gattern zur Berechnung eines Einzelbitprodukts zweier Einzelbit-Eingabewerte bestehen, und mit Addierzellen zur betriebsbereiten Kopplung von aufeinanderfolgenden Zeilen zur Addition von Ergebnissen einer vorhergehenden Zeile zu einer folgenden Zeile und mit einer letzten Ausgangszeile zur Ausgabe eines Übertragsvektors und eines Summenvektors, wobei der CSA-Einheit eine logische Schaltungsanordnung hinzugefügt wird, die so eingerichtet ist, dass sie die Einzelbitprodukte an der höchstwertigen Stelle der nx - 1 ersten Zeilen und an den na - 1 niederwertigsten Stellen der Ausgangszeile als Reaktion auf das erste Konfigurationssignal invertiert, bevor die invertierten Einzelbitprodukte den entsprechenden Addierzellen zugeführt werden.

Description

  • Die vorliegende Erfindung betrifft eine Multiplizier- und eine Multiplizier- und Addiereinheit für die digitale Datenverarbeitung.
  • Die digitale Datenverarbeitung erfordert die Multiplikation und Addition von digitalen Daten. Zu diesem Zweck enthalten digitale Signalprozessoren (DSP) normalerweise eine Multiplizier- oder eine Multiplizier- und Addier-(MAC-)Einheit, die so eingerichtet ist, dass sie digitale Operanden (d. h. Binärzahlen) für diverse Steuerungs- und Datenverarbeitungsaufgaben multipliziert und addiert. Da die Multiplikation und Addition von digitalen Zahlen einen der grundlegenden und zentralen Datenverarbeitungsschritte in sämtlichen Arten von Datenverarbeitungsanwendungen darstellt, besteht ein allgemeines Bestreben, die Multiplizier- und Addiereinheiten so zu verbessern, dass sie schneller arbeiten und weniger komplex sind. Die Multiplikation von zwei digitalen Zahlen wird typischerweise durch eine Reihe von Einzelbitmultiplikationen und Einzelbitaddierschritten durchgeführt. Ein Einzelbitmultiplizierer wird durch Logikgatter (typischerweise UND-Gatter) realisiert, und die Summierung von zwei Bit wird durch Halb- oder Volladdierzellen durchgeführt. Eine Halbaddierzelle addiert lediglich zwei Einzelbit zweier verschiedener Operanden, während eine Volladdierzelle in der Lage ist, ein zusätzliches Übertragsbit zu verarbeiten. Ein effizienter Algorithmus für die vorzeichenbehaftete Multiplikation ist das Baugh-Wooley-Verfahren für vorzeichenbehaftete Multiplikation, der in „A two's complement parallel array multiplication algorithm" von C. R. Baugh und B. A. Wooley, IEEE Trans. Computers, Vol. 22, Seiten 1045–1047, Dezember 1973 beschrieben ist. Die allgemeine Theorie der Multiplikation und Multiplikation gemäß dem modifizierten Baugh-Wooley-Verfahren für vorzeichenbehaftete Multiplikation wird untenstehend entwickelt.
  • Tabelle 1 zeigt eine Multiplikation s(7:0) = a(3:0)·x(3:0) von zwei vorzeichenlosen 4-Bit-Operanden, basierend auf der Addition von vier 4-Bit-Zahlen. Dementsprechend besteht der erste Operand a(3:0) aus na = 4 Bit, und der zweite Operand x(3:0) besteht aus nx = 4 Bit. Für die weiteren Überlegungen wird n definiert als n = nx = na. Der Term aixj stellt das Einzelbitprodukt aus den entsprechenden Bit des ersten und des zweiten Operanden dar. Tabelle 1
    a3 a2 a1 a0
    · x3 x2 x1 x0
    a3x0 a2x0 a1x0 a0x0
    a3x1 a2x1 a1x1 a0x1
    a3x2 a2x2 a1x2 a0x2
    a3x3 a2x3 a1x3 a0x3
    = s7 s6 s5 s4 s3 s2 s1 s0
  • Tabelle 2 zeigt eine vorzeichenbehaftete Multiplikation in Zweierkomplementformat gemäß einem als modifiziertes Baugh-Wooley-Verfahren bekannten Schema. Tabelle 2
    a3 a2 a1 a0
    · x3 x2 x1 x0
    –a3x0 a2x0 a1x0 a0x0
    –a3x1 a2x1 a1x1 a0x1
    –a3x2 a2x2 a1x2 a0x2
    a3x3 –a2x3 –a1x3 –a0x3
    = s7 s6 s5 s4 s3 s2 s1 s0
  • Gemäß dem modifizierten Baugh-Wooley-Verfahren für vorzeichenbehaftete Multiplikation können die negativen Einträge in der Matrix durch bitinvertierte Einträge und einige zusätzliche Einträge ersetzt werden. Es werden die folgenden Substitutionen vorgenommen: –a3xk = (1 – a3xk) – 1 = nicht (a3xk) – 1 –akx0 = (1 – akx0) – 1 = nicht (akx0) – 1
  • Tabelle 3 zeigt die vorzeichenbehaftete Multiplikation von zwei 4-Bit-Zahlen, wenn obige Substitutionen auf Tabelle 2 angewendet werden. Tabelle 3
    a3 a2 a1 a0
    · x3 x2 x1 x0
    /a3x0 a2x0 a1x0 a0x0
    /a3x1 a2x1 a1x1 a0x1
    /a3x2 a2x2 a1x2 a0x2
    a3x3 /a2x3 /a1x3 /a0x3
    –1 –1 –1
    –1 –1 –1
    = s7 s6 s5 s4 s3 s2 s1 s0
  • In Tabelle 3 ist /aixi nicht (aixi). Die „–1" Einträge ergeben sich aus obigen Substitutionen, und jede „–1" bezieht sich auf einen /aixi – 1 Eintrag. Alle „–1" Einträge werden von dem /aixi – 1 Eintrag abgetrennt und in die letzten beiden Zeilen eingetragen. Die „–1" Einträge können zu "–112" oder "–128" + 16" zusammengefasst werden, oder die „–1" Einträge können für die Multiplikation von n-Bit-Werten wie folgt kombiniert werden: (–1 – 1)·22n–3 + ... + (–1–1)·22n–1 = –22n–2 – ... – 2n = –22n–1 + 2n
  • Somit muss in der Spalte n eine „1" hinzugefügt werden, und in der Spalte 2n – 1 der Matrix muss eine „–1" hinzugefügt werden. Da das Ergebnis das Zweierkomplementformat aufweist, ändert sich „–1" in Spalte 2n – 1 (= Vorzeichenziffer) zu „1". Tabelle 4 zeigt die vollständige Matrix für eine vorzeichenbehaftete 4-Bit-Multiplikation. Das Schema gemäß Tabelle 4 ist als modifiziertes Baugh-Wooley-Verfahren bekannt. Tabelle 4
    a3 a2 a1 a0
    · x3 x2 x1 x0
    /a3x0 a2x0 a1x0 a0x0
    /a3x1 a2x1 a1x1 a0x1
    /a3x2 a2x2 a1x2 a0x2
    a3x3 /a2x3 /a1x3 /a0x3
    1 1
    = s7 s6 s5 s4 s3 s2 s1 s0
  • Nun wird eine MAC-(Multiplizier- und Addier-)Operation s = a·x + t betrachtet. Im Vergleich zu der Multiplikation wird zu dem Schema eine zusätzliche Zeile für den Addierer t hinzugefügt. Eine vorzeichenlose MAC-Operation von zwei 4-Bit-Faktoren und eines 8-Bit Addierers sieht wie folgt aus: s(8:0) = a(3:0)·x(3:0) + t(7:0). Tabelle 5 zeigt das Schema für eine vorzeichenlose MAC-Operation zweier 4-Bit-Faktoren und eines 8-Bit-Addierers. Tabelle 5
    a3 a2 a1 a0
    · x3 x2 x1 x0
    + t7 t6 t5 t4 t3 t2 t1 t0
    a3x0 a2x0 a1x0 a0x0
    a3x1 a2x1 a1x1 a0x1
    a3x2 a2x2 a1x2 a0x2
    a3x3 a2x3 a1x3 a0x3
    t7 t6 t5 t4 t3 t2 t1 t0
    = s8 s7 s6 s5 s4 s3 s2 s1 s0
  • Für eine vorzeichenbehaftete MAC-Operation wird dasselbe modifizierte Baugh-Wooley-Verfahren wie für die Multiplikationsoperation angewendet. Das resultierende Schema ist in Tabelle 6 abgebildet. Die Vorzeichenposition des Addierers (t7) und die „1" in Spalte 7 müssen vorzeichenerweitert werden. Tabelle 6
    a3 a2 a1 a0
    · x3 x2 x1 x0
    + t7 t6 t5 t4 t3 t2 t1 t0
    /a3x0 a2x0 a1x0 a0x0
    /a3x1 a2x1 a1x1 a0x1
    /a3x2 a2x2 a1x2 a0x2
    a3x3 /a2x3 /a1x3 /a0x3
    1 1 1
    t7 t7 t6 t5 t4 t3 t2 t1 t0
    = s8 s7 s6 s5 s4 s3 s2 s1 s0
  • Da die für die vorzeichenlose und die vorzeichenbehaftete Multiplikation auszuführenden Operationen unterschiedlich sind, werden die Schemata gemäß Tabelle 1 und Tabelle 4 in einer parallelen Architektur, einschließlich der Schaltungen gemäß 1 und 2, implementiert. 1 ist ein Beispiel für einen vorzeichenlosen 4 × 4-Bit-Multiplizierer, und 2 ist ein Beispiel für einen vorzeichenbehafteten 4 × 4-Bit-Multiplizierer. Die Teilprodukte werden in einer übertragerhaltenden Addier-(CSA-)Anordnung (engl. CSA = „carry save adder") mit einem vervollständigenden Übertragsdurchlaufaddierer (CPA) (engl. CPA = „carry propagate adder") addiert. Die in den Tabellen 4 und 6 gezeigten „1"er werden in einem zusätzlichen Zyklus in der CPA-Einheit oder in einer zusätzlichen Addiereinheit addiert. Dementsprechend ist die Lösung nach dem Stand der Technik komplex, erfordert zusätzliche Taktzyklen und verbraucht bei Implementierung in einer integrierten Schaltung Fläche.
  • Es ist ein Ziel der vorliegenden Erfindung, eine Multipliziereinheit und eine MAC-Einheit zur Verarbeitung von vorzeichenbehafteten und vorzeichenlosen Operanden bereitzustellen, die eine kleinere Größe aufweist und weniger komplex ist als herkömmliche Multipliziereinheiten.
  • Dementsprechend wird eine Multipliziereinheit für die Multiplikation eines ersten, aus na Bit bestehenden Operanden mit einem zweiten, aus nx Bit bestehenden Operanden bereitgestellt. Die Multipliziereinheit enthält eine übertragerhaltende Addiereinheit mit nx Zeilen, die jeweils na Stufen von Logikgattern zur Berechnung eines Einzelbitprodukts zweier Einzelbit-Eingabewerte enthalten, und mit Addierzellen zur betriebsbereiten Kopplung von aufeinanderfolgenden Zeilen, um Ergebnisse einer vorhergehenden Zeile zu einer folgenden Zeile zu addieren, und mit einer letzten Ausgangszeile zur Ausgabe eines Übertragsvektors und eines Summenvektors. Es wird eine zusätzliche Logikschaltungsanordnung bereitgestellt, um die Einzelbitprodukte an der höchstwertigen Stelle der nx – 1 ersten Zeilen und an den na – 1 niederwertigsten Stellen der Ausgangszeile als Reaktion auf das erste Konfigurationssignal zu invertieren, bevor die invertierten Einzelbitprodukte entsprechenden Addierzellen zugeführt werden, um die CSA-Einheit selektiv zwischen der Verarbeitung von vorzeichenbehafteten Zweierkomplement-Operanden und vorzeichenlosen Operanden als Reaktion auf das erste Konfigurationssignal umzuschalten. Diese Abwandlungen der CSA-Einheit gestatten es, dieselbe CSA-Einheit für vorzeichenbehaftete und vorzeichenlose Multiplikationen zu verwenden. Die Invertierung der Einzelbitprodukte an den bestimmten Stellen der CSA-Einheit ermöglicht es, die gesamte CSA-Einheit für vorzeichenbehaftete und vorzeichenlose Multiplikationen einzusetzen, indem einfach das erste Konfigurationssignal zwischen zwei Zuständen (zum Beispiel einer logischen „1" oder einer logischen „0") umgeschaltet wird. Die Invertierung eines Einzelbitwerts kann durch ein XOR-Gatter realisiert werden. Ein Eingang des XOR-Gatters empfängt den zu invertierenden Einzelbitwert, und der andere Eingang ist so gekoppelt, dass er das erste Konfigurationssignal empfängt. Wenn das erste Konfigurationssignal eine logische ,'1' ist, erzeugt der Ausgang des XOR-Gatters den invertierten Einzelbitwert. Wenn das erste Konfigurationssignal eine logische ,0' ist, leitet das XOR-Gatter den Einzelbitwert unverändert weiter. Die Addierzellen können je nach der bestimmten Ausführung der CSA-Einheit entweder Halb- oder Volladdierzellen sein. Wenn möglich, können die Addierzellen weggelassen werden. Die erste Zeile der CSA-Einheit und die höchstwertigen Stellen jeder Zeile können zum Beispiel lediglich aus Logikgattern zur Berechnung der Einzelbitprodukte bestehen. Die spezifische Anzahl und Position von Addierzellen hängt ebenfalls davon ab, ob eine Multiplizier- oder eine MAC-Einheit implementiert ist. Da von derselben Multipliziereinheit vorzeichenbehaftete und vorzeichenlose Multiplikationen durchgeführt werden können, ist es nicht nötig, eine komplette CSA-Einheit für vorzeichenbehaftete und eine andere CSA-Einheit für vorzeichenlose Multiplikationen zu implementieren. Folglich wird die erforderliche Chipfläche auf die Hälfte der von herkömmlichen Lösungen benötigten Fläche reduziert. Da Standardlogikgatter verwendet werden können, kann die Multipliziereinheit gemäß der Erfindung basierend auf jeder beliebigen Standardbibliothek für digitale Logikzellen einer bestimmten CMOS-Technologie oder einer beliebigen anderen Technologie implementiert werden. Insbesondere ist es nicht nötig, die digitalen Gatter wie Voll- oder Halbaddierzellen abzuwandeln, um den modifizierten Baugh-Wooley-Algorithmus zu implementieren.
  • Die Multipliziereinheit kann ferner so eingerichtet sein, dass sie einen dritten Operanden zu dem Produkt des ersten und des zweiten Operanden addiert, um eine Multiplizier- und Addieroperation durchzuführen. Um den dritten Operanden zu addieren, enthält die erste Zeile der CSA-Einheit zum Beispiel zumindest na Halbaddierzellen. Wenn mehr als ein zusätzlicher Operand addiert werden soll, kann es nützlich sein, na Volladdierzellen zu verwenden. Durch eine derartige Abwandlung wird die Multipliziereinheit im Grunde in eine Multiplizier- und Addier-(MAC-)Einheit umgewandelt. Es können auch entsprechende Register zur Speicherung von Operanden und Zwischenergebnissen hinzugefügt werden. Die MAC-Einheit profitiert ebenfalls von der äußerst regelmäßigen Struktur gemäß der vorliegenden Erfindung. Sie kann in jeder beliebigen Technologie durch Standardlogikzellen implementiert werden.
  • Die Multipliziereinheit oder MAC-Einheit gemäß der vorliegenden Erfindung zur Multiplikation eines ersten, aus na Bit bestehenden Operanden und eines zweiten, aus nx Bit bestehenden Operanden kann ebenfalls eine wie obenstehend beschriebene CSA-Einheit gemäß der Erfindung oder eine beliebige herkömmliche Addiereinheit, die einen Übertragsvektor und einen Summenvektor ausgibt, enthalten. Die Multiplizier- oder MAC-Einheit enthält eine CPA-Einheit, die aus einer Zeile von na Volladdierzellen zur Addition der von der der Ausgangszeile der CSA-Einheit bereitgestellten Übertrags- und Summenvektoren besteht. Für eine bloße Multipliziereinheit kann die CPA-Einheit aus lediglich na – 1 Volladdierzellen bestehen. Sowohl für die Multiplizier- als auch für die MAC-Einheit ist der Übertragseingang der CPA-Einheit so gekoppelt, dass er ein erstes Konfigurationssignal empfangen kann, um zwischen der Verarbeitung von vorzeichenbehafteten und vorzeichenlosen Zweierkomplementoperanden umzuschalten.
  • Des Weiteren kann ein erstes XOR-Gatter an der höchstwertigen Stelle der CPA-Einheit mit der Volladdierzelle gekoppelt sein. Ein Eingang des ersten XOR-Gatters ist mit dem Übertragsausgang der Volladdierzelle gekoppelt, und der andere Eingang des ersten XOR-Gatters ist so gekoppelt, dass er das erste Konfigurationssignal empfängt. Das Ausgangssignal des ersten XOR-Gatters ist das höchstwertige Bit (MSB) des fertigen Summenvektors.
  • Für die MAC-Einheit gemäß der vorliegenden Erfindung kann die Addierzelle an der höchstwertigen Stelle der CPA-Einheit ebenfalls vorzugsweise mit einem zweiten XOR-Gatter gekoppelt sein. Ein Ausgang des zweiten XOR-Gatters ist mit einem Summiereingang der Volladdierzelle gekoppelt. Ein Eingang des zweiten XOR-Gatters ist so gekoppelt, dass es das höchstwertige Bit (MSB) des dritten Operanden empfängt, und ein anderer Eingang des zweiten XOR-Gatters empfängt das erste Konfigurationssignal, um zwischen vorzeichenbehafteten und vorzeichenlosen Operationen umzuschalten.
  • Das mit der Volladdierzelle an der höchstwertigen Stelle der CPA-Einheit gekoppelte erste und zweite XOR-Gatter implementieren die Addition von entweder einer oder zwei '1'en, die für vorzeichenbehaftete Zweierkomplementoperationen zu den höchstwertigen Stellen in der CPA-Einheit zu addieren sind (vgl. Tabelle 4 und 6 für Multiplizier- bzw. MAC-Einheiten). Der Übertragseingang der CPA-Einheit ist mit dem ersten Konfigurationssignal gekoppelt, um die Addition einer '1' an der Stelle na durchzuführen, wie in den Tabellen 4 und 6 gezeigt. Eine CPA-Einheit gemäß der vorliegenden Erfindung gestattet es, die zusätzlichen '1'er des modifizierten Baugh-Wooley-Verfahrens in einem einzelnen Schritt zu addieren. Die Verwendung des Übertragseingangs der Volladdierzelle an der niederwertigsten Stelle gestattet es, ohne jegliche Abwandlung der CPA und der in der CPA enthaltenen Volladdierzellen sowie ohne einen zusätzlichen Taktzyklus eine '1' an der korrekten Stelle zu addieren. Des Weiteren gestattet es die zusätzliche Logik, die mit der Volladdierzelle an der höchstwertigen Stelle gekoppelt ist, die notwendigen '1'er ohne zusätzliche Addierzellen, zusätzliche Schritte o. ä. zu addieren. Dementsprechend gestattet es ein Multiplizierer mit einer CPA-Einheit gemäß der vorliegenden Erfindung, mit äußerst kleinen zusätzlichen Schaltungsanordnungen von der Multiplikation von vorzeichenlosen Operanden auf vorzeichenbehaftete Operanden gemäß dem modifizierten Baugh-Wooley-Verfahren umzuschalten.
  • Die Multiplizier- bzw. MAC-Einheit gemäß der vorliegenden Erfindung kann ferner so eingerichtet sein, dass sie den ersten Operanden mit einem vierten, aus nb Bit bestehenden Operanden multipliziert. Für die vorliegende Erfindung ist nb gleich na. Gemäß dieser Ausführung enthält die Multiplizier- oder MAC-Einheit ein erstes Register für den Empfang des Übertragsvektors und ein zweites Register für den Empfang des Summenvektors von der letzten Ausgangszeile der CSA-Einheit. Des Weiteren gibt es einen ersten Multiplexer für die aufeinanderfolgende Eingabe von nx Bit breiten Teilen des vierten Operanden an die übertragerhaltende Einheit, wobei nb gleich ns Mal nx und ns eine positive ganze Zahl ist, um die gesamte Multiplikation in Slices zu verarbeiten. Ein Slice für jeden Teil des vierten Operanden wird dabei fortlaufend berechnet, um ein Produkt des ersten Operanden und des vierten Operanden zu berechnen, das nach dem letzten Slice fertigzustellen ist. Eine erste Rückkopplungsverbindung koppelt das erste Register und das zweite Register zurück an die CSA-Einheit, um den Zwischensummenvektor und den Zwischenübertragsvektor an die übertragerhaltende Addiereinheit zur Verarbeitung des entsprechenden folgenden Slice rückzukoppeln. Eine zweite Rückkopplungsverbindung koppelt die CPA-Einheit mit dem zweiten Register, um das Summierergebnis in der CPA an den höchstwertigen Teil des zweiten Registers rückzukoppeln, um das Endergebnis in dem zweiten Register bereitzustellen. Letztendlich wird eine logische Schaltungsanordnung zum selektiven Umschalten der CSA-Einheit zwischen der Verarbeitung des letzten Slice und vorhergehender Slices als Reaktion auf ein zweites Konfigurationssignal bereitgestellt. Dementsprechend werden die Einzelbitprodukte an den na – 1 niederwertigsten Stellen der letzten Zeile lediglich für das letzte Slice einer vorzeichenbehafteten Zweierkomplementoperation invertiert, und das Einzelbitprodukt an der höchstwertigen Stelle der letzten Zeile wird immer für vorzeichenbehaftete Zweierkomplementoperationen invertiert, außer bei dem letzten Slice. Dieser Aspekt der vorliegenden Erfindung gestattet es, die Operation teilweise zu serialisieren. Der vierte Operand wird in mehrere nx Bit breite Teile geteilt, und der Teil der Multiplikation, mit Ausnahme der Endaddition des Übertrags- und des Summenvektors in einer CPA wird für jeden der Teile (Slices) ausgeführt. Gemäß diesem Aspekt der Erfindung kann der Teil der Multiplikation von zwei Operanden (z. B. na = nb = 16 und nx = 4) mit Ausnahme der Endaddition des Übertrags- und des Summenvektors in einer CPA teilweise in vier Slices serialisiert werden. Da die CSA-Einheit durch das erste Konfigurationssignal so konfigurierbar ist, dass sie vorzeichenbehaftete oder vorzeichenlose Operanden verarbeiten kann, kann dieselbe CSA-Einheit für alle Slices einer vollständigen Multiplikation verwendet werden. Lediglich das letzte Slice erfordert es, die Einzelbitprodukte in der letzten Zeile zu invertieren. Somit arbeitet die letzte Zeile bei vorzeichenbehafteten Operationen ns – 1 Mal mit nx gleich konfigurierten Zeilen und nur für das letzte Slice mit einer unterschiedlich konfigurierten letzten Zeile. Die Wiederverwendbarkeit derselben CSA-Einheit für alle Slices in Kombination mit der allgemeinen Fähigkeit, zwischen vorzeichenbehafteten und vorzeichenlosen Operationen umzuschalten, sorgt für eine wesentliche Reduktion der Chipfläche.
  • Gemäß der vorliegenden Erfindung ist es allgemein möglich, dieselbe CSA-Einheit in Kombination mit der letzten CPA-Einheit für die unterschiedlichen Multiplikationsoperationen zu verwenden, wodurch ein Multiplikationsergebnis für einen vollständigen ersten und vierten Operanden bereitgestellt wird. Die Multipliziereinheit (oder MAC-Einheit) gemäß der vorliegenden Erfindung benötigt keine zusätzliche Zeile von Addierzellen oder zusätzliche Taktzyklen für die vorzeichenbehaftete Operation. Ebenfalls können auch lediglich Standardvolladdierzellen verwendet werden, die in Bibliotheken von digitalen Logikzellen normal verfügbar sind. Es sind keine Abwandlungen der Standardvolladdierzellen nötig. Die MAC-Einheit gemäß der vorliegenden Erfindung stellt auswählbare vorzeichenbehaftete und vorzeichenlose Multiplikations- oder Multiplizier- und Addieroperationen mit einer geringen Gatteranzahl bereit. Dementsprechend werden die benötigte Chipfläche und die Leistungsaufnahme verringert, und die Betriebsfrequenz kann hoch sein. Letztendlich vereinfacht die regelmäßige Struktur die Implementierung.
  • Vorzugsweise enthält jede Zeile einer CSA-Einheit gemäß der vorliegenden Erfindung dieselbe Anzahl von Volladdierzellen und UND-Gattern. Jede der Volladdierzellen ist mit einem entsprechenden UND-Gatter gekoppelt. Durch das UND-Gatter wird die Einzelbitmultiplikation realisiert. Das so erzeugte, von dem UND-Gatter ausgegebene Einzelbitprodukt wird entweder direkt an einen Summiereingang der Volladdierzelle oder indirekt, wie oben beschrieben, über ein XOR-Gatter eingegeben. Die Verwendung einer regelmäßigen Struktur für die CSA-Einheit vereinfacht die Implementierung. Die Multipliziereinheit, die lediglich für die Multiplikation, nicht aber für die Addition verwendet wird, kann einen Volladdierer weniger pro Zeile aufweisen.
  • Weitere Vorteile und Merkmale der Erfindung ergeben sich aus der folgenden Beschreibung der bevorzugten Ausführungsformen der Erfindung und aus den beigefügten Zeichnungen. Es zeigen:
  • 1 einen vorzeichenlosen 4 × 4 Bit Multiplizierer mit paralleler CSA-Anordnung,
  • 2 einen vorzeichenbehafteten 4 × 4 Bit Multiplizierer mit paralleler CSA-Anordnung,
  • 3 einen auswählbaren vorzeichenbehafteten/vorzeichenlosen 4 × 4 Bit Multiplizierer mit paralleler CSA-Anordnung,
  • 4 eine vorzeichenlose 4 × 4 Bit parallele CSA-Anordnung und MAC-Einheit,
  • 5 eine auswählbare vorzeichenbehaftete/vorzeichenlose 4 × 4 Bit parallele CSA-Anordnungs-MAC-Einheit gemäß der vorliegenden Erfindung,
  • 6 ein 16 × 4 Bit CSA-Anordnungsslice für eine auswählbare vorzeichenbehaftete/vorzeichenlose Multiplikations- und MAC-Einheit gemäß der vorliegenden Erfindung, und
  • 7 eine auswählbare vorzeichenbehaftete/vorzeichenlose, teilweise serialisierte 16 × 16 Bit Multiplizier- und MAC-Einheit gemäß der vorliegenden Erfindung.
  • 1 zeigt einen vorzeichenlosen 4 × 4 Bit Multiplizierer mit paralleler CSA-Anordnung. Die in den obigen Tabellen 1 und 4 angegebenen Schemen für vorzeichenlose und vorzeichenbehaftete Multiplikationen können für die Erzeugung von Teilprodukten in einem parallelen Multiplizierer verwendet werden. Um die Teilprodukte zu addieren, wird eine CSA-Anordnung mit einer vervollständigenden CPA-Einheit verwendet. 1 und 2 stellen entsprechende parallele Multiplizierer für eine Bitgröße von 4 dar. Ein erster Operand a(3:0), bestehend aus na = 4 Bit, und ein zweiter Operand x(3:0), bestehend aus nx = 4 Bit, werden in 1 multipliziert, um das Endprodukt s(7:0) zu erzeugen. Eine Volladdierzelle ist durch FA gekennzeichnet, und eine Halbaddierzelle ist durch HA gekennzeichnet.
  • Die Ausführung des in 2 gezeigten, vorzeichenbehafteten Multiplizierers basiert auf dem wie obenstehend unter Bezug auf Tabelle 4 beschriebenen, modifizierten Baugh-Wooley-Verfahren. Die beiden „1"er, die zu dem Ergebnis zu addieren sind, werden unter Verwendung des Übertragseingangs des vervollständigenden Übertragsdurchlaufaddierers und eines zusätzlichen XOR-Gatters zur Erzeugung des höchstwertigen Bit (MSB) des Ergebnisses addiert.
  • 3 zeigt eine Schaltung, die gemäß der vorliegenden Erfindung so eingerichtet ist, dass sie vorzeichenlose und vorzeichenbehaftete Multiplikationen von zwei 4-Bit-Operanden ausführen kann. Das Eingangssignal ist das erste Konfigurationssignal tc, das zur Auswahl zwischen vorzeichenlosen Operationen (tc = 0) und vorzeichenbehafteten Operationen (tc = 1) der Multipliziereinheit verwendet wird. Das in der vorliegenden Beschreibung zur Darstellung von vorzeichenbehafteten digitalen Zahlen verwendete Format ist das Zweierkomplementformat. Wie in 3 angezeigt, sind die höchstwertigen Stellen jeder Zeile der CSA-Einheit, mit Ausnahme der letzten Zeile, und die höchstwertige Stelle der CPA-Einheit mit dem ersten Konfigurationssignal tc betriebsbereit gekoppelt. Des Weiteren sind die Volladdierzellen FA der letzten Zeile der CSA-Einheit und die Volladdierzellen FA an der niederwertigsten Stelle der CPA-Einheit ebenfalls mit dem Eingangssignal tc gekoppelt, um selektiv vorzeichenbehaftete und vorzeichenlose Operationen auszuführen. An den Stellen na – 1 in den nx – 1 ersten Zeilen und an den na – 1 niederwertigsten Stellen der letzten Zeile wird die Kopplung durch ein mit einem Ausgang der UND-Gatter gekoppeltes XOR-Gatter ausgeführt. Die UND-Gatter erzeugen das Einzelbitprodukt an den entsprechenden Stellen. Das XOR-Gatter dient dazu, das Einzelbitprodukt für tc = 1 zu invertieren. Für die Multipliziereinheit gemäß 3 ist der Ausgang eines XOR-Gatters an den höchstwertigen Stellen jeder der nx – 1 ersten Zeilen nicht mit einem Addierer in derselben Zeile sondern in der entsprechenden folgenden Zeile gekoppelt.
  • 4 zeigt eine vorzeichenlose parallele 4 × 4 Bit CSA-Anordnung und die Mac-Einheit entsprechend dem in Tabelle 5 gezeigten Schema. Dementsprechend kann ein dritter Operand t(7:0) addiert werden, um eine vollständige Multiplizier- und Addieroperation von zwei Vierbit-Operanden und einem Achtbit-Operanden auszuführen.
  • Die in 5 gezeigte Schaltung bezieht sich auf Tabelle 6 und ist eine auswählbare vorzeichenbehaftete/vorzeichenlose 4 × 4 Bit parallele CSA-Anordnungs-MAC-Einheit, die gemäß Aspekten der vorliegenden Erfindung optimiert wurde. Die in 5 gezeigte resultierende Architektur ist eine äußerst regelmäßige Anordnung von Addierzellen mit einer ersten Zeile von Halbaddierzellen HA und mit den restlichen Zeilen von Volladdierzellen FA. Jede vorhergehende Zeile ist mit einer folgenden Zeile von Addierzellen gekoppelt. Jede Addierzelle an der höchstwertigen Stelle (d. h. bei na – 1 = 3) der na – 1 = 3 ersten Zeilen und an der höchstwertigen Stelle der CPA-Einheit ist mit dem Eingangssignal tc über ein XOR-Gatter gekoppelt. Des Weiteren ist jede Volladdierzelle FA an den na – 1 = 3 niederwertigsten Stellen der letzten Ausgangszeile der CSA-Einheit mit dem Eingangssignal tc über ein XOR-Gatter gekoppelt. Die XOR-Gatter invertieren das entsprechende, durch die UND-Gatter zur Verfügung gestellte Einzelbitprodukt. An den Stellen 7 und 8 (S7, S8) der CPA-Einheit wird eine '1' zu dem Ergebnis addiert. Der Übertragseingang der FA an der niederwertigsten Stelle der CPA-Einheit ist mit tc gekoppelt, um die Summierung einer '1' an der bestimmten Stelle (S4) durchzuführen. Die Erzeugung des Ausgangssignals 88 wurde gemäß den folgenden Gleichungen optimiert S8 = c_out7 XOR (t7 UND tc) XOR [(t7 UND tc) XOR tc] S8 = c_out7 XOR (t7 UND tc) XOR {[(t7 UND tc) UND /tc] ODER [/t7 UND tc) UND tc]} S8 = c_out7 XOR (t7 UND tc) XOR [/t7 ODER /tc) UND tc] S8 = c_out7 XOR (t7 UND tc) XOR (/t7 UND tc) S8 = c_out7 XOR tc
  • Dementsprechend ist lediglich ein XOR-Gatter nötig, um S8 zu bestimmen.
  • 6 zeigt eine 16 × 4 Bit CSA-Einheit für eine auswählbare vorzeichenbehaftete/vorzeichenlose Multiplikations- und MAC-Operation gemäß der vorliegenden Erfindung. Die Multiplizier- oder MAC-Einheit gemäß der vorliegenden Erfindung kann teilweise serialisiert sein. Eine Serialisierung kann nützlich sein, um die Chipfläche, die Leistungsaufnahme und die kritische Pfadverzögerung zu verringern. Dementsprechend wird während jedem Taktzyklus eines an der Schaltung angelegten Taktsignals lediglich ein Teil der Gesamtoperation durch dieselbe Einheit ausgeführt. Die Struktur der CSA-Einheit mit der erforderlichen Erweiterung für vorzeichenbehaftete Operationen ist höchst regelmäßig und deshalb für eine Aufteilung geeignet, ohne die Komplexität der Schaltungsanordnung oder die Chipfläche wesentlich zu erhöhen. Die Multiplikation von zwei Operanden OP1, bestehend aus na = 16 Bit, und OP4, bestehend aus nb = 16 Bit, soll in Slices mit einer Bitbreite von nx = 4 Bit aufgeteilt werden. Gemäß der vorliegenden Ausführungsform kann eine vorzeichenbehaftete/vorzeichenlose 16 × 16-Bit-Multiplizier- oder -MAC-Operation in vier 16 × 4-Bit-Slices aufgeteilt werden. Für eine vorzeichenbehaftete Operation müssen die Einzelbitprodukte an den Stellen 0 bis 14 (0 bis na – 2) der letzten Zeile (nx – 1) invertiert sein, und das Einzelbitprodukt an der Stelle 15 (na – 1) der letzten Zeile (nx – 1) ist nicht invertiert. Für die teilweise serialisierte Operation gilt dies lediglich für das letzte Slice, das, wie in 6 gezeigt, durch zusätzliche Logik unter Verwendung des zweiten Konfigurationssignals letztes_Slice implementiert wird. Des Weiteren werden die Einzelbitprodukte an den höchstwertigen Stellen der nx – 1 ersten Zeilen als Reaktion auf das erste Konfigurationssignal tc selektiv invertiert. Dementsprechend kann ein erster Operand mit na Bit (wobei na zum Beispiel 16 Bit ist) mit einem vierten Operanden OP4 mit nb Bit (wobei nb zum Beispiel 16 Bit ist) in mehreren Slices von nx (z. B. nx = 4 Bit) Bit des vierten Operanden multipliziert werden. Jeder Teil von nx Bit kann dann als zweiter Operand OP2 angesehen werden, der im Grunde wie oben beschrieben verarbeitet wird. Die vorzeichenbehaftete Multiplikation und Addition wendet das modifizierte Baugh-Wooley-Verfahren in Kombination mit einer CSA-Einheit und einer vervollständigenden CPA-Einheit an, wobei der Übertragseingang der Volladdierzelle an der niederwertigsten Stelle der CPA-Einheit zur Versorgung mit einer zusätzlichen „1" verwendet wird, um das modifizierte Baugh-Wooley-Verfahren zu implementieren. Die auf dem modifizierten Baugh-Wooley-Verfahren basierende auswählbare vorzeichenbehaftete und vorzeichenlose Multiplikation und Addition stellt in Kombination mit dieser CSA-Einheit und einer vervollständigenden CPA-Einheit mit der Besonderheit, dass der Übertragseingang der vervollständigenden CPA-Einheit und zusätzliche XOR-Gatter für die zusätzlichen „1"-Bit-Werte des modifizierten Baugh-Wooley-Verfahrens verwendet werden, ein verbessertes Ausführungsprinzip dar. Der Ansatz der teilweisen Serialisierung der CSA-Einheit und der vervollständigenden CPA-Einheit mit einer Erweiterung für das modifizierte Baugh-Wooley-Verfahren und für die zusätzliche Logik für das Auswählen zwischen vorzeichenbehafteten und vorzeichenlosen Operationen verringert die Komplexität und spart Chipfläche und Leistung ein. Gemäß der vorliegenden Erfindung werden keine zusätzlichen Addierzellenzeilen oder zusätzliche Taktzyklen für vorzeichenbehaftete Operationen benötigt. Es werden lediglich Standardvolladdierzellen verwendet, die normalerweise in Standardbibliotheken verfügbar sind. Es sind keine Abwandlungen der Standardvolladdierzellen nötig.
  • 7 zeigt ein vereinfachtes Schaubild einer auswählbaren vorzeichenbehafteten und vorzeichenlosen, teilweise serialisierten 16 × 16 Bit Multiplizier- und MAC-Einheit gemäß der vorliegenden Erfindung. Die Grundbauelemente bestehen aus der CSA-Einheit, der CPA-Einheit, den Registern REG1 und REG2 und dem Multiplizierer MUX1. Die von der letzten Ausgangszeile der CSA-Einheit ausgegebenen Zwischenübertrags- und -summenvektoren werden in einem ersten Register REG1 und in einem zweiten Register REG2 gespeichert. Um Chipfläche einzusparen, wird die CSA-Einheit vier Mal (vier Slices) verwendet, indem die Zwischenübertrags- und -summenvektoren über die Rückkopplungsleitungen FB1 an entsprechende Eingänge der CSA-Einheit rückgekoppelt werden. Der erste Operand OP1 wird den na = 16 Eingängen ai der CSA-Einheit zugeführt. Der vierte Operand OP4, bestehend aus nb = 16 Bit wird dem ersten Multiplexer MUX1 zugeführt und der Reihe nach in Teile von nx = 4 Bit aufgeteilt. Jeder dieser Teile wird als zweiter Operand OP2 weiter verarbeitet. Für jedes Slice wird der zweite Operand OP2, bestehend aus nx = 4 Bit, den Eingängen xi der CSA-Einheit zugeführt. Das Umschalten zwischen vorzeichenbehafteter und vorzeichenloser Operation wird wie folgt durchgeführt. Die Volladdierzellen FA an den höchstwertigen Stellen jeder Zeile der CSA-Einheit (d. h. auf der linken Seite jeder Zeile) und alle Volladdierzellen FA der letzten Zeile der CSA-Einheit sind betriebsbereit gekoppelt, um das erste Konfigurationssignal tc zu empfangen, das eine vorzeichenbehaftete oder vorzeichenlose Operation kennzeichnet. Die letzte Zeile der CSA-Einheit ist ebenfalls so betriebsbereit gekoppelt, dass es ein zweites Konfigurationssignal letztes_Slice empfängt, um die Berechnung von vorhergehenden Slices von dem letzte Slice zu unterscheiden. Die logische Kopplung von tc und letztes_Slice wird durch UND- und XOR-Gatter erreicht. Die XOR-Gatter werden dazu verwendet, die an den Ausgängen der UND-Gatter an den entsprechenden Stellen als Reaktion auf tc = 1 bereitgestellten Einzelbitprodukte zu invertieren. Für tc = 0 wird das Ausgangssignal des entsprechenden UND-Gatters unverändert durch das XOR-Gatter übertragen. Das UND-Gatter UND1, das tx und das zweite Konfigurationssignal letztes_Slice logisch koppelt, bewirkt, dass die vorzeichenbehaftete Operation lediglich für letztes_Slice = 1 durchgeführt wird. Das UND-Gatter UND2 sorgt dafür, dass das Einzelbitprodukt an der Stelle na – 1 = 15 lediglich dann invertiert wird, wenn letztes_Slice = 0 und tc = 1 sind, d. h. für vorzeichenbehaftete Operationen, nicht jedoch für das letzte Slice. Für hohe Durchsätze kann an Stelle einer teilweisen Serialisierung eine Fließbandverarbeitung (Pipelining) von CSA-Einheiten, ähnlich den in 7 gezeigten, mit Zwischenregistern zwischen den Einheiten implementiert werden. Des Weiteren können die Größe der CSA-Einheit und dadurch auch die Anzahl der zur Ausführung der gesamten Operation notwendigen Durchlaufe für eine bessere Berechnungsgeschwindigkeit variiert werden.
  • Die CPA-Einheit besteht aus einer Zeile von 16 Volladdierzellen FA. Die Volladdierzelle FA an der niederwertigsten Stelle ist so gekoppelt, dass sie das erste Konfigurationssignal tc empfängt, um zwischen vorzeichenbehafteter und vorzeichenloser Operation umzuschalten. Dementsprechend wird bei tc = 1 an der Stelle na = 16 des Endergebnisses eine '1' addiert. Des Weiteren ist die Volladdierzelle FA an der höchstwertigen Stelle na + nb – 1 = 2·n – 1 = 31 über ein XOR-Gatter ebenfalls mit dem ersten Eingangssignal tc gekoppelt, und der Übertragsausgang der Volladdierzelle wird über ein XOR-Gatter mit dem ersten Konfigurationssignal tc kombiniert. Die Funktion der beiden XOR-Gatter wurde in Bezug auf 5 erläutert. Sie sorgen dafür, dass an Stelle 31 und an Stelle 32 des Endergebnisses eine '1' addiert wird, wie es von dem modifizierten Baugh-Wooley-Algorithmus und der Erweiterung um ein Vorzeichen benötigt wird. Der von der CPA-Einheit bereitgestellte fertige Summenvektor kann an das zweite Register REG2, das 33 Bit aufweist, geleitet werden.
  • Der Startsummenvektor in REG2 ist der Addierer der vorhergehenden Operation, oder es kann ein bestimmter Wert (dritter Operand OP3) in das Register geschrieben werden. Für eine bloße Multiplizieroperation wird REG2 auf Null zurückgesetzt, wenn die Operation beginnt. Der Startübertragsvektor in REG1 beträgt ebenfalls Null. Die 16 × 4-Bit-CSA-Einheit wird in den ersten Operationszyklen verwendet (z. B. vier Zyklen in 7). Die Zwischenübertrags- und -summenvektoren werden in entsprechenden Übertrags- und Ergebnisregistern REG1, REG2 gespeichert. Nach jedem Slice ist der niedrige Teil der aus der CSA-Einheit ausgegebenen Summe fertig und wird direkt an das Register REG2 geleitet (hierbei handelt es sich um die vier niederwertigsten Bit der CSA-Einheit, wie in 7 gezeigt). Der fertige Summenvektor und die restlichen Addiererbit werden in REG2 um die Anzahl von Zeilen in der CSA-Einheit verschoben. Nach dem letzten Slice in der CSA-Einheit werden der Zwischenübertragsvektor und der Zwischensummenvektor in der vervollständigenden CPA-Einheit addiert. Das restliche höchstwertige Bit (MSB) des Addierers wird ebenfalls zu dem Ergebnis addiert. In der in 7 gezeigten Ausführungsform wird diese Endsummierung durch die 16-CPA-Einheit, zum Beispiel einen 16-Bit-Schnellübertragsaddierer („ripple carry adder"), in einem Zyklus durchgeführt. Diese Operation kann unter Verwendung eines kleineren Übertragsdurchlaufaddierers und mehrerer Taktzyklen auch teilweise serialisiert werden. Im Falle einer vorzeichenbehafteten Operation geschieht die Addition von „1"-Bit-Werten gemäß dem modifizierten Baugh-Wooley-Verfahren mit dem Übertragseingang der Volladdierzelle FA an der niederwertigsten Stelle der vervollständigenden CPA-Einheit und den beiden zusätzlichen XOR-Gattern, die mit der Volladdierzelle FA an der höchstwertigen Stelle gekoppelt sind. Das Ergebnis wird über den Rückkopplungspfad FB2 an den oberen Teil (17 höchstwertige Bit) von REG2 geleitet. Die 16 niederwertigsten Bit (LSB) werden während den vier Slices der CSA-Einheit direkt in REG2 gespeichert.
  • Das Konzept gemäß der vorliegenden Erfindung ist in Bezug auf Taktzyklen und Chipfläche flexibel und kann leicht angepasst werden, indem zum Beispiel die Größe der CSA-Einheit und somit die Anzahl von Taktzyklen für eine Einzelsegmentoperation angepasst werden.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • - „A two's complement parallel array multiplication algorithm" von C. R. Baugh und B. A. Wooley, IEEE Trans. Computers, Vol. 22, Seiten 1045–1047, Dezember 1973 [0002]

Claims (13)

  1. Multipliziereinheit für die Multiplikation eines ersten, aus na Bit bestehenden Operanden mit einem zweiten, aus nx Bit bestehenden Operanden, wobei die Multipliziereinheit Folgendes umfasst: eine übertragerhaltende Addier-(CSA-)Einheit mit nx Zeilen, die jeweils na UND-Gatter zur Berechnung eines Einzelbitprodukts zweier Einzelbit-Eingabewerte umfassen, und mit Addierzellen zur Addition von Ergebnissen einer vorhergehenden Zeile zu einer folgenden Zeile und mit einer letzten Ausgangszeile zur Ausgabe eines Übertragsvektors und eines Summenvektors, und eine Logikschaltungsanordnung für das selektive Invertieren der Einzelbitprodukte an der höchstwertigen Stelle der nx – 1 ersten Zeilen und an den na – 1 niederwertigsten Stellen der Ausgangszeile als Reaktion auf ein erstes Konfigurationssignal (tc), bevor die selektiv invertierten Einzelbitprodukte entsprechenden Addierzellen zugeführt werden, um die CSA-Einheit als Reaktion auf das erste Konfigurationssignal (tc) selektiv zwischen der Verarbeitung von vorzeichenbehafteten Zweierkomplementoperanden und vorzeichenlosen Operanden umzuschalten.
  2. Multipliziereinheit gemäß Anspruch 1, ferner umfassend eine Übertragsdurchlaufaddier-(CPA-)Einheit, die mit der Ausgangszeile der CSA-Einheit gekoppelt ist, wobei die CPA-Einheit aus einer Zeile von na – 1 Volladdierzellen zur Addition des Übertragsvektors und des Summenvektors, die an der Ausgangszeile der CSA-Einheit bereitgestellt werden, besteht, wobei der Übertragseingang der CPA-Einheit so gekoppelt ist, dass er das erste Signal (tc) empfängt, um zwischen der Verarbeitung von vorzeichenbehafteten und vorzeichenlosen Zweierkomplementoperanden umzuschalten.
  3. Multipliziereinheit gemäß Anspruch 2, bei der die Volladdierzelle an der höchstwertigen Stelle der CPA-Einheit mit einem ersten XOR-Gatter gekoppelt ist, das über einen ersten Eingang mit dem Übertragsausgang der Volladdierzelle und über einen zweiten Eingang so gekoppelt ist, dass es das erste Konfigurationssignal (tc) empfängt, so dass der Ausgang des ersten XOR-Gatters das höchstwertige Bit (MSB) eines fertigen Summenvektors ausgibt.
  4. Multipliziereinheit für die Multiplikation eines ersten Operanden (OP1), der aus na Bit besteht, mit einem zweiten Operanden (OP2), der aus nx Bit besteht, und für die Addition eines dritten Operanden (OP3) zu dem Produkt, wobei die Multipliziereinheit Folgendes umfasst: eine übertragerhaltende Addier-(CSA-)Einheit mit nx Zeilen, die jeweils na UND-Gatter zur Berechnung eines Einzelbitprodukts zweier Einzelbit-Eingabewerte umfassen, und mit Addierzellen zur Addition von Ergebnissen einer vorhergehenden Zeile zu einer folgenden Zeile und mit einer letzten Ausgangszeile zur Ausgabe eines Übertragsvektors und eines Summenvektors, und eine Logikschaltungsanordnung für das selektive Invertieren der Einzelbitprodukte an der höchstwertigen Stelle der nx – 1 ersten Zeilen und an den na – 1 niederwertigsten Stellen der Ausgangszeile als Reaktion auf ein erstes Konfigurationssignal (tc), bevor die selektiv invertierten Einzelbitprodukte entsprechenden Addierzellen zugeführt werden, um die CSA-Einheit als Reaktion auf das erste Konfigurationssignal (tc) selektiv zwischen der Verarbeitung von vorzeichenbehafteten Zweierkomplementoperanden und vorzeichenlosen Operanden umzuschalten, wobei die CSA-Einheit ferner so eingerichtet ist, dass sie einen dritten Operanden (OP3) zu dem Produkt des ersten und des zweiten Operanden addiert, um so eine Multiplizier- und Addier-(MAC-)Operation durchzuführen.
  5. Multipliziereinheit gemäß Anspruch 4, ferner umfassend eine Übertragsdurchlaufaddier-(CPA-)Einheit, die mit der Ausgangszeile der CSA-Einheit gekoppelt ist, wobei die CPA-Einheit aus einer Zeile von na Volladdierzellen zur Addition des Übertragsvektors und des Summenvektors, die an der Ausgangszeile der CSA-Einheit bereitgestellt werden, besteht, wobei der Übertragseingang der CPA-Einheit so gekoppelt ist, dass er das erste Signal (tc) empfängt, um zwischen der Verarbeitung von vorzeichenbehafteten und vorzeichenlosen Zweierkomplementoperanden umzuschalten.
  6. Multipliziereinheit gemäß Anspruch 2, bei der die Volladdierzelle an der höchstwertigen Stelle der CPA-Einheit mit einem ersten XOR-Gatter gekoppelt ist, das über einen ersten Eingang mit dem Übertragsausgang der Volladdierzelle und über einen zweiten Eingang so gekoppelt ist, dass es das erste Konfigurationssignal (tc) empfängt, so dass der Ausgang des ersten XOR-Gatters das höchstwertige Bit (MSB) eines fertigen Summenvektors ausgibt.
  7. Multipliziereinheit gemäß Anspruch 6, bei der die Volladdierzelle an der höchstwertigen Stelle der CPA-Einheit mit einem zweiten XOR-Gatter gekoppelt ist, wobei ein Ausgang des zweiten XOR-Gatters mit einem Summiereingang der Volladdierzelle gekoppelt ist, ein Eingang des zweiten XOR-Gatters so gekoppelt ist, dass es das höchstwertige Bit (MSB) des dritten Operanden empfängt, und ein anderer Eingang des zweiten XOR-Gatters so gekoppelt ist, dass es das erste Konfigurationssignal (tc) empfängt, um zwischen der Verarbeitung von vorzeichenbehafteten und vorzeichenlosen Operationen umzuschalten.
  8. Multipliziereinheit gemäß einem der Ansprüche 4 bis 7, bei der jede Zeile der CSA-Einheit dieselbe Anzahl von Volladdierzellen und UND-Gattern umfasst.
  9. Multipliziereinheit gemäß einem der vorhergehenden Ansprüche, die ferner so eingerichtet ist, dass sie den ersten Operanden mit einem vierten, aus nb = na Bit bestehenden Operanden multipliziert, wobei die Multipliziereinheit ein erstes Register (REG1) für den Empfang des Übertragsvektors und ein zweites Register (REG2) für den Empfang des Summenvektors von der letzten Ausgangszeile der CSA-Einheit umfasst, einen ersten Multiplexer (MUX1) für die aufeinanderfolgende Eingabe von nx Bit breiten Teilen des zweiten Operanden (OP2) in die übertragerhaltende Einheit, wobei nb gleich ns Mal nx und ns eine positive ganze Zahl ist, um die gesamte Multiplikation in ns Slices durchzuführen, je ein Slice für jeden Teil des zweiten Operanden, wodurch ein Produkt aus dem ersten Operanden (OP1) und dem zweiten Operanden (OP2), das nach dem letzten Slice fertigzustellen ist, fortlaufend berechnet wird, und eine erste Rückkopplungsverbindung (FBI), die das erste Register und das zweite Register zurück an die CSA-Einheit koppelt, um den Zwischensummenvektor und den Zwischenübertragsvektor an die CSA-Einheit zur Verarbeitung des entsprechenden folgenden Slice rückzukoppeln, und eine logische Schaltungsanordnung zum selektiven Umschalten der CSA-Einheit zwischen der Verarbeitung des letzten Slice und vorhergehender Slices als Reaktion auf ein zweites Konfigurationssignal (letztes_Slice), so dass die Einzelbitprodukte an den na – 1 niederwertigsten Stellen der letzten Zeile lediglich für das letzte Slice einer vorzeichenbehafteten Zweierkomplementoperation invertiert werden, und das Einzelbitprodukt an der höchstwertigen Stelle der letzten Zeile immer für vorzeichenbehaftete Zweierkomplementoperationen invertiert wird, außer bei dem letzten Slice.
  10. Multipliziereinheit gemäß Anspruch 9, ferner umfassend eine zweite Rückkopplungsverbindung (FB2), die die CPA-Einheit mit dem zweiten Register (REG2) koppelt, um das Summierergebnis in der CPA an den höchstwertigen Teil des zweiten Registers (REG2) rückzukoppeln.
  11. Multipliziereinheit für die Multiplikation eines ersten, aus na Bit bestehenden Operanden mit einem zweiten, aus nx Bit bestehenden Operanden, wobei die Multipliziereinheit Folgendes umfasst: eine Addiereinheit, die einen Übertragsvektor und einen Summenvektor ausgibt, und eine CPA-Einheit, die aus einer Zeile von na Volladdierzellen zur Addition der von der Ausgangszeile der CSA-Einheit bereitgestellten Übertrags- und Summenvektoren besteht, wobei der Übertragseingang der CPA-Einheit so gekoppelt ist, dass er ein erstes Konfigurationssignal (tc) empfängt, um zwischen der Verarbeitung von vorzeichenbehafteten und vorzeichenlosen Zweierkomplementoperanden umzuschalten.
  12. Multipliziereinheit gemäß Anspruch 11, bei der die Volladdierzelle an der höchstwertigen Stelle der CPA-Einheit mit einem ersten XOR-Gatter gekoppelt ist, das über einen ersten Eingang mit dem Übertragsausgang der Volladdierzelle und über einen zweiten Eingang so gekoppelt ist, dass es das erste Konfigurationssignal (tc) empfängt, so dass der Ausgang des ersten XOR-Gatters das höchstwertige Bit (MSB) eines fertigen Summenvektors ausgibt.
  13. Multipliziereinheit gemäß Anspruch 12, bei der die Volladdierzelle an der höchstwertigen Stelle der CPA-Einheit mit einem zweiten XOR-Gatter gekoppelt ist, wobei ein Ausgang des zweiten XOR-Gatters mit einem Summiereingang der Volladdierzelle gekoppelt ist, ein Eingang des zweiten XOR-Gatters so gekoppelt ist, dass es das höchstwertige Bit (MSB) des dritten Operanden empfängt, und ein anderer Eingang des zweiten XOR-Gatters so gekoppelt ist, dass es das erste Konfigurationssignal (tc) empfängt, um zwischen der Verarbeitung von vorzeichenbehafteten und vorzeichenlosen Operationen umzuschalten.
DE102007014808A 2007-03-28 2007-03-28 Multiplizier- und Multiplizier- und Addiereinheit Ceased DE102007014808A1 (de)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE102007014808A DE102007014808A1 (de) 2007-03-28 2007-03-28 Multiplizier- und Multiplizier- und Addiereinheit
PCT/EP2008/053724 WO2008116933A1 (en) 2007-03-28 2008-03-28 Multiply and multiply- accumulate unit for signed and unsigned operands
US12/057,625 US20080243976A1 (en) 2007-03-28 2008-03-28 Multiply and multiply and accumulate unit
EP08718316A EP2140345A1 (de) 2007-03-28 2008-03-28 Multiplizier- und multiplizier-akkumulier-einheit für vorzeichenbehaftete und vorzeichenlose operanden

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102007014808A DE102007014808A1 (de) 2007-03-28 2007-03-28 Multiplizier- und Multiplizier- und Addiereinheit

Publications (1)

Publication Number Publication Date
DE102007014808A1 true DE102007014808A1 (de) 2008-10-02

Family

ID=39473795

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102007014808A Ceased DE102007014808A1 (de) 2007-03-28 2007-03-28 Multiplizier- und Multiplizier- und Addiereinheit

Country Status (4)

Country Link
US (1) US20080243976A1 (de)
EP (1) EP2140345A1 (de)
DE (1) DE102007014808A1 (de)
WO (1) WO2008116933A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102011108576A1 (de) 2011-07-27 2013-01-31 Texas Instruments Deutschland Gmbh Selbstgetaktete Multipliziereinheit

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102007056104A1 (de) * 2007-11-15 2009-05-20 Texas Instruments Deutschland Gmbh Verfahren und Vorrichtung zur Multiplikation von Binäroperanden
KR100935858B1 (ko) * 2007-12-05 2010-01-07 한국전자통신연구원 재구성 가능한 산술연산기 및 이를 구비한 고효율 프로세서
JP5115307B2 (ja) * 2008-04-25 2013-01-09 富士通セミコンダクター株式会社 半導体集積回路
US9495154B2 (en) 2013-03-13 2016-11-15 Qualcomm Incorporated Vector processing engines having programmable data path configurations for providing multi-mode vector processing, and related vector processors, systems, and methods
US20140280407A1 (en) * 2013-03-13 2014-09-18 Qualcomm Incorporated Vector processing carry-save accumulators employing redundant carry-save format to reduce carry propagation, and related vector processors, systems, and methods
US9275014B2 (en) 2013-03-13 2016-03-01 Qualcomm Incorporated Vector processing engines having programmable data path configurations for providing multi-mode radix-2x butterfly vector processing circuits, and related vector processors, systems, and methods
US9391621B2 (en) 2013-09-27 2016-07-12 Silicon Mobility Configurable multiply-accumulate
US10901694B2 (en) * 2018-12-31 2021-01-26 Micron Technology, Inc. Binary parallel adder and multiplier
EP3926461A1 (de) 2020-06-17 2021-12-22 Digital Core Design Sp. Z O.O. Sp. K. Digitale multiplizierschaltung mit beschleunigter berechnung

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69416283T2 (de) * 1993-12-08 1999-06-10 Hewlett-Packard Co., Palo Alto, Calif. Überlaufsteuerung für arithmetische Operationen
WO1999034514A1 (en) * 1997-12-29 1999-07-08 Imperial College Of Science, Technology And Medicine Logic circuit
US20050165875A1 (en) * 2004-01-26 2005-07-28 Fujitsu Limited Arithmetic device
US20050198093A1 (en) * 2004-03-02 2005-09-08 Hee-Kwan Son Montgomery modular multiplier

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5113364A (en) * 1990-10-29 1992-05-12 Motorola, Inc. Concurrent sticky-bit detection and multiplication in a multiplier circuit
US5784305A (en) * 1995-05-01 1998-07-21 Nec Corporation Multiply-adder unit
US5764558A (en) * 1995-08-25 1998-06-09 International Business Machines Corporation Method and system for efficiently multiplying signed and unsigned variable width operands
JPH10143355A (ja) * 1996-10-30 1998-05-29 Texas Instr Inc <Ti> 種々の書式のオペランドを高効率で乗算する能力を有するマイクロプロセッサ及びその演算方法
US6366944B1 (en) * 1999-01-15 2002-04-02 Razak Hossain Method and apparatus for performing signed/unsigned multiplication
US6434587B1 (en) * 1999-06-14 2002-08-13 Intel Corporation Fast 16-B early termination implementation for 32-B multiply-accumulate unit
US6415311B1 (en) * 1999-06-24 2002-07-02 Ati International Srl Sign extension circuit and method for unsigned multiplication and accumulation
US20040010536A1 (en) * 2002-07-11 2004-01-15 International Business Machines Corporation Apparatus for multiplication of data in two's complement and unsigned magnitude formats
DE102007056104A1 (de) * 2007-11-15 2009-05-20 Texas Instruments Deutschland Gmbh Verfahren und Vorrichtung zur Multiplikation von Binäroperanden

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69416283T2 (de) * 1993-12-08 1999-06-10 Hewlett-Packard Co., Palo Alto, Calif. Überlaufsteuerung für arithmetische Operationen
WO1999034514A1 (en) * 1997-12-29 1999-07-08 Imperial College Of Science, Technology And Medicine Logic circuit
US20050165875A1 (en) * 2004-01-26 2005-07-28 Fujitsu Limited Arithmetic device
US20050198093A1 (en) * 2004-03-02 2005-09-08 Hee-Kwan Son Montgomery modular multiplier

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"A two's complement parallel array multiplication algorithm" von C. R. Baugh und B. A. Wooley, IEEE Trans. Computers, Vol. 22, Seiten 1045-1047, Dezember 1973

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102011108576A1 (de) 2011-07-27 2013-01-31 Texas Instruments Deutschland Gmbh Selbstgetaktete Multipliziereinheit
US9047140B2 (en) 2011-07-27 2015-06-02 Texas Instruments Incorporated Independently timed multiplier

Also Published As

Publication number Publication date
WO2008116933A1 (en) 2008-10-02
EP2140345A1 (de) 2010-01-06
US20080243976A1 (en) 2008-10-02

Similar Documents

Publication Publication Date Title
DE102007014808A1 (de) Multiplizier- und Multiplizier- und Addiereinheit
DE60318494T2 (de) Verfahren, einrichtung und system zur durchführung von kalkulationsoperationen
DE69632978T2 (de) Multi-Operand-Addierer, der Parallelzähler benutzt
DE69130652T2 (de) Digitaler paralleler Hochgeschwindigkeitsmultiplizierer
DE60116742T2 (de) Digitaler signalprozessor mit gekoppelten multiplizier-addier einheiten
DE69416283T2 (de) Überlaufsteuerung für arithmetische Operationen
DE69326797T2 (de) Akkumulierende Multiplizierschaltung mit einer Hochgeschwindigkeitsausführung einer Multiplikation doppelter Genauigkeit
DE69716331T2 (de) Schaltung für Modulo-Multiplikations- und Exponentiationsarithmetik
DE69435047T2 (de) Schaltung und Verfahren zur parallelen Addition und Mittelwertbildung
DE19540102C2 (de) Verfahren und Gleitkomma-Recheneinheit mit einer Logik für eine Vierfach-Präzisions-Arithmetik
DE69131267T2 (de) Datenverarbeitungssystem für Daten mit einfacher Präzision und mit doppelter Präzision
DE69429342T2 (de) Vereinheitlicher gleitkommadatenpfad und ganzzahldatenpfad für einen risc-prozessor
DE2911096C2 (de)
DE1956209C3 (de) Multipliziervorrichtung
DE3686681T2 (de) Parallelmultiplizierer.
DE69424329T2 (de) 4:2-Addierer und diesen verwendende Multiplizierschaltung
DE68924386T2 (de) Verfahren und Gerät zur Radix-2**n-Division mit überlappender Quotientenbitauswahl und gleichzeitiger Rundung und Korrektur des Quotienten.
EP3590078B1 (de) Neuronalnetzsystem
DE102007056104A1 (de) Verfahren und Vorrichtung zur Multiplikation von Binäroperanden
DE3036747A1 (de) Binaere multiplikationszellenschaltung
DE4101004C2 (de) Paralleler Multiplizierer mit Sprungfeld und modifiziertem Wallac-Baum
DE10357661B4 (de) Modularer Montgomery-Multiplizierer und zugehöriges Multiplikationsverfahren
DE69216760T2 (de) Digitales Multiplizier- und Akkumuliersystem
DE1549508C3 (de) Anordnung zur Übertragsberechnung mit kurzer Signallaufzeit
DE69519448T2 (de) Digitale Verarbeitungsanlage mit Befehlen zum Suchen des Minimums und Maximums

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final