DE19935820B4 - Systolisches Berechnungselement für Multiplikations-Akkumulationsoperationen - Google Patents

Systolisches Berechnungselement für Multiplikations-Akkumulationsoperationen Download PDF

Info

Publication number
DE19935820B4
DE19935820B4 DE1999135820 DE19935820A DE19935820B4 DE 19935820 B4 DE19935820 B4 DE 19935820B4 DE 1999135820 DE1999135820 DE 1999135820 DE 19935820 A DE19935820 A DE 19935820A DE 19935820 B4 DE19935820 B4 DE 19935820B4
Authority
DE
Germany
Prior art keywords
modulo
operand
systolic
input
adder
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE1999135820
Other languages
English (en)
Other versions
DE19935820A1 (de
Inventor
Ansgar Drolshagen
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Priority to DE1999135820 priority Critical patent/DE19935820B4/de
Publication of DE19935820A1 publication Critical patent/DE19935820A1/de
Application granted granted Critical
Publication of DE19935820B4 publication Critical patent/DE19935820B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related 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/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/729Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic using representation by a residue number system
    • 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

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)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

Systolisches Berechnungselement für Multiplikations-Akkumulationsoperationen bei Restklassensystemen mit einem ersten Eingangsanschluß (2) zur Eingabe eines ersten Operanden (X¶in¶), einem zweiten Eingangsanschluß (3) zur Eingabe eines zweiten Operanden (a¶in¶), einem dritten Eingangsanschluß (4) zur Eingabe eines dritten Operanden (Y¶in¶), einem vierten Eingangsanschluß (5) zur Eingabe eines Modulo-Operanden (m) in Form C = 2·GAMMAldBl· - m, einer Bit-Rotationseinrichtung (7) zur bitweisen Rotation des an dem ersten Eingangsanschluß (2) anliegenden ersten Operanden (X¶in¶) und zur Ausgabe des rotierten ersten Operanden (X¶in¶) als Rotations-Ausgabe-Operand (X¶aus¶) an einen ersten Ausgangsanschluß (11), einer Entscheidungseinrichtung (9), die in Abhängigkeit von dem ersten Operanden (X¶in¶) den zweiten Operanden (a¶in¶) an einen ersten Modulo-Addierer zur Modulo-Addition mit dem dritten Operanden (Y¶in¶) anlegt, wobei der erste Modulo-Addierer (15) ein erstes Modulo-Additionssignal (Y¶aus¶) an einen dritten Ausgangsanschluß (22) abgibt, einem zweiten Modulo-Addierer (23) zur Modulo-Addition des zweiten Operanden (a¶in¶) mit sich selbst, wobei der zweite Modulo-Addierer (23) ein zweites Modulo-Additionssignal (a¶aus¶) an einen zweiten Ausgangsanschluß (30) abgibt, und mit einem vierten Ausgangsanschluß (28), der mit dem vierten Eingangsanschluß (5) verbunden ist und den eingegebenen Modulo-Operanden als Modulo-Operanden-Ausgangssignal abgibt.

Description

  • Die Erfindung betrifft eine systolische Berechnungsvorrichtung für Multiplikations-Akkumulationsoperationen, insbesondere bei Restklassensystemen, wobei die systolische Berechnungsvorrichtung kettenartig zur Bildung einer Multiplikations-Akkumulationseinrichtung mit weiteren systolischen Berechnungsvorrichtung verschaltbar ist.
  • Die US 5,928,315 A beschreibt eine Berechnungsvorrichtung zur Durchführung einer Modulo-Operation. Dabei basiert die Auswertung, ob ein Additionsergebnis (A + B) modC = D ein Ringelement ist, oder nicht, auf der Bestimmung, ob der Wert D kleiner ist als der Moduluswert C. Bei der beschriebenen Vorrichtung werden daher Komparatorschaltungen, insbesondere bei freiwählbaren Modulus C benötigt. Bei der beschriebenen Berechnungsvorrichtung wird in den Addierern jeweils ein Akkumulator eingesetzt, so dass ein Entflechtung in eine serielle systolische bzw. identische Schaltungsstruktur nicht möglich ist.
  • Die US 4,742,479 beschreibt eine arithmetische Berechnungseinheit, die einen Ausgabewert als Summe des ersten und zweiten Eingabewertes erzeugt.
  • DSP-Prozessoren (DSP: Digital Signal Processor) sind hochspezialisierte, in Großserie hergestellte Bausteine zur extrem schnellen Bearbeitung in Echtzeit einer eng begrenzten Menge von Eingangssignalen, auf deren Charakteristika der Befehlssatz des DSP-Prozessors optimiert ist. Der DSP-Prozessor ist ein auf einen bestimmten rechenintensiven Berechnungszweck hin optimierter Mikroprozessor mit speziellen Befehlssätzen. Typische Anwendungen sind dabei Sprachcodierung bei Handys oder Spracherkennung in IVR-Systemen, Bewegtbildcodierung auf Videokarten oder Datenkompression bei Modems.
  • DSP-Prozessoren können verschiedene Zahlensysteme zur Durchführung der Berechnungsoperationen verwenden. Das RNS-Zahlensystem (RNS: Residuel Number System) bzw. Restklassensystem eignet sich besonders für die Implementierung von Berechnungsalgorithmen innerhalb von DSP-Prozessoren. Das RNS-Zahlensystem ist ein nicht gewichtetes numerisches Zahlensystem, bei dem kein Zahlenübertrag erfolgt. Hierdurch wird die Datenverarbeitungsgeschwindigkeit insbesondere bei Daten mit großer Wortbreite erheblich gesteigert. Prozessoren, die auf dem RNS-Zahlensystem basieren, weisen eine Rechnungsstruktur auf, die sich durch hohe Modularität und Regelmäßigkeit auszeichnet.
  • Multiplikations-Akkumulationsoperationen in Restklassensystem MAC-Operationen (MAC: Multiply Accumulation Calculation) sind Rechenoperationen, bei denen ein Produkt a·x mit einer Variablen y in einer Modulo-Operation mit einem Modulo-Operanden m addiert wird. Die MAC-Operation wird durch folgende Gleichung dargestellt: z = (y + a·x)modm wobei z, x und y und a variabel sind. Mit der MAC-Berechnungsoperation können die meisten Transformations- und Filteralgorithmen ausgeführt werden. Die Berechnung erfolgt dabei systolisch, d.h. rhythmisch ausgehend von einem Speicher durch viele baugleiche Prozessoren, wobei der Datenfluß zu dem Speicher zurückgeführt werden kann.
  • Indem man große Integer-Zahlen in verschiedene finite Ringe Modulo m auf der Basis des RNS-Zahlensystems aufteilt, kann man durch die Verwendung kleiner systolischer Berechnungselemente einen hohen Datendurchfluß bei der Daten-Pipeline-Verarbeitung erreichen.
  • Herkömmliche systolische Berechnungselemente für RNS weisen den Nachteil auf, daß sie keine freie Modulo-Wahl erlauben und auch „a" konstant ist, wobei vorgefertigte Modulo-Berechnungsergebnisse in Tabellenform in Speicherschaltungen, wie beispielsweise ROM oder RAM abgespeichert sind. Das Vorsehen einer Vielzahl von Speichern auf einem Chip ist flächenintensiv und erhöht die Herstellungskosten einer integrierten Schaltung bzw. eines Chips erheblich. Aufgrund des festgelegten Modulo-Operanden und des Operators „a" sind derartige herkömmliche systolische Berechnungselemente zudem inflexibel und schränken die Anwendungsmöglichkeiten der integrierten Schaltung ein.
  • Es ist daher die Aufgabe der vorliegenden Erfindung, eine systolische Berechnungsvorrichtung für Multiplikations- Akkumulationsoperationen bei Restklassensystemen zu schaffen, das mit geringstem schaltungstechnischen Aufwand eine freie Wahl der beteiligten Operanden erlaubt.
  • Diese Aufgabe wird erfindungsgemäß durch ein systolische Berechnungsvorrichtung mit dem in Patentanspruch 1 angegebenen Merkmalen gelöst.
  • Weitere vorteilhafte Ausgestaltungen der Erfindung ergeben sich aus den Unteransprüchen.
  • Vorzugsweise ist die erfindungsgemäße systolische Berechnungsvorrichtung kettenartig mit weiteren gleichartigen systolischen Berechnungsvorrichtung zur Bildung einer Multiplikations-Akkumulations-Berechnungseinheit für Restklassensysteme verschaltbar.
  • Bei einer weiteren bevorzugten Ausführungsform der erfindungsgemäßen systolischen Berechnungsvorrichtung erfolgt die kettenartige Verschaltung, indem jeweils der erste bis vierte Eingangsanschluß einer nachgeschalteten systolischen Berechnungsvorrichtung mit dem jeweils ersten bis vierten Ausgangsanschluß einer gleichartigen vorgeschalteten systolischen Berechnungsvorrichtung leitend verbunden wird.
  • Dies bietet den Vorteil, daß eine übersichtliche, modular aufgebaute Schaltungsstruktur mit standardisierten gleichartigen systolischen Berechnungsvorrichtung aufgebaut wird. Dies hat den besonderen Vorteil, daß die Schaltungsstruktur einerseits flexibel ist und andererseits mit standardisierten Baugruppen kostengünstig realisiert wird.
  • Bei einer weiteren bevorzugten Ausführungsform der erfindungsgemäßen systolischen Berechnungsvorrichtung ist der systolischen Berechnungsvorrichtung jeweils ein Zwischenspeicher nachschaltbar.
  • Dies hat den besonderen Vorteil, daß bei der kettenartigen Verschaltung mehrerer systolischer Berechnungsvorrichtung die Berechnungsschritte schrittweise taktgesteuert durchgeführt werden.
  • Die erfindungsgemäße systolische Berechnungsvorrichtung weist bei einer bevorzugten Ausführungsform eine Entscheidungseinrichtung auf, die in Abhängigkeit von dem logischen Zustand eines Bits des am ersten Eingangsanschluß anliegenden ersten Operanden den zweiten Operanden an einen Eingang des ersten Modulo-Addierers anlegt.
  • Bei einer bevorzugten Ausführungsform der erfindungsgemäßen systolischen Berechnungsvorrichtung berechnet die Berechnungseinrichtung der Modulo-Addierer die Korrekturkonstante in Abhängigkeit von dem eingegebenen Modulo-Operanden.
  • Bei einer bevorzugten Ausführungsform ist die Schalteinrichtung vorzugsweise ein Multiplexer.
  • Bei einer weiteren bevorzugten Ausführungsform der erfindungsgemäßen systolischen Berechnungsvorrichtung besteht die Entscheidungseinrichtung aus einer Vielzahl von UND-Gattern, die eine Bitleitung des ersten Eingangsanschlusses jeweils logisch mit den Bitleitungen des zweiten Eingangsanschlusses verknüpfen.
  • Im weiteren wird eine bevorzugte Ausführungsform der erfindungsgemäßen systolischen Berechnungsvorrichtung zur Erläuterung erfindungswesentlicher Merkmale unter Bezugnahme auf die beigefügten Figuren beschrieben.
  • Es zeigen:
  • 1 eine systolisches Berechnungsvorrichtung für Multiplikations-Akkumulationsoperationen bei Restklassensystemen gemäß der Erfindung;
  • 2 mehrere kettenartig hintereinandergeschaltete systolische Berechnungsvorrichtung für Multiplikations-Akkumulationsoperationen bei Restklassensystemen gemäß der Erfindung;
  • 3 eine bevorzugte Ausführungsform eines Modulo-Addierers, der in der systolischen Berechnungsvorrichtung gemäß der Erfindung verwendet wird;
  • 4 eine bevorzugte Ausführungsform der erfindungsgemäßen systolischen Berechnungsvorrichtung im Detail.
  • 1 zeigt ein Blockschaltbild einer systolischen Berechnungsvorrichtung gemäß der Erfindung.
  • Die systolische Berechnungsvorrichtung 1 für Multiplikations-Akkumulationsoperationen bei Restklassensystemen, wie es in 1 dargestellt ist, weist einen ersten Eingangsanschluß 2 zur Eingabe eines ersten Operanden Xi n, einen zweiten Eingangsanschluß 3 zur Eingabe eines zweiten Operanden ai n, einen dritten Eingangsanschluß 4 zur Eingabe eines dritten Operanden Yin sowie einen vierten Eingangsanschluß 5 zur Eingabe eines Modulo-Operanden m auf. Die Eingangsanschlüsse 2, 3, 4, 5 weisen jeweils mehrere nicht dargestellte Bitleitungen auf. Der Eingangsanschluß 2 ist über Bitleitungen 6 mit einer Rotationseinrichtung 7 verbunden. Mindestens eine Steuerleitung 8 zweigt an mindestens einer der Bitleitungen 6 zur Ansteuerung einer Entscheidungseinrichtung 9 ab. Die Rotationseinrichtung 7 rotiert das an den Bitleitungen 6 anliegende Eingangssignal bitweise und gibt es als rotierten Ausgangssignal xaus über Bitleitungen 10 an einen ersten Ausgangsanschluß 11 ab.
  • Die Entscheidungseinrichtung 9 liegt eingangsseitig über Bitleitungen 12 an dem zweiten Eingangsanschluß 3 an. Die Entscheidungseinrichtung schaltet die Bitleitungen in Abhängigkeit von dem an der Steuer-Bitleitung 8 anliegenden logischen Signal auf zugehörige Bitleitungen 13 durch. Die Entscheidungseinrichtung 9 ist dabei vorzugsweise eine Schalteinrichtung, die durch mehrere UND-Gatter gebildet wird. Jede von dem zweiten Eingangsanschluß 3 ausgehende Bitleitung 12 ist an einen ersten logischen Eingang eines zugehörigen UND-Gatters innerhalb der Entscheidungseinrichtung 9 angeschlossen, wobei der jeweils andere logische Eingang des UND-Gatters an die Steuerleitung 8 angeschlossen ist und in Abhängigkeit von dem an der Steuerleitung 8 anliegenden logischen Signal das an den Bitleitungen 12 anliegende Eingangssignal zu den zugehörigen Bitleitungen 13 durchschaltet. Weist das an der Steuerleitung 8 anliegende Bit des ersten Operanden Xi n einen logisch hohen Zustand auf, sind die Bitleitungen 12 mit den zugehörigen Ausgangs-Bitleitungen 13 kurzgeschlossen. Die Bitleitungen 13 sind an einen ersten Eingang 14 eines ersten Modulo-Addierers 15 angeschlossen. Der Modulo-Addierer 15 besitzt einen zweiten Eingang 16, der über Bitleitungen 18 mit dem dritten Eingangsanschluß 4 direkt verbunden ist.
  • Weist das an der Steuerleitung 8 anliegende Steuerbit einen logisch hohen Zustand auf, wird der an dem zweiten Eingangsanschluß 3 anliegende zweite Operand ai n durch die Entscheidungs- bzw. Schalteinrichtung 9 an den ersten Eingang 14 des ersten Modulo-Addierers 15 angelegt und in einer Modulo-Addition mit dem an dem dritten Eingangsanschluß 4 anliegenden dritten Operanden Yi n addiert. Der erste Modulo-Addierer 15 besitzt zusätzlich einen Einstellanschluß 19, an dem über eine Einstelleitung 20 der Modulo-Operand für die Modulo-Addition einstellbar ist. Der erste Modulo-Addierer 15 gibt über Bitleitungen 21 das gebildete Modulo-Additionssignal an einen dritten Ausgangsanschluß 22 der erfindungsgemäßen systolischen Berechnungsvorrichtung 1 ab.
  • Die systolische Berechnungsvorrichtung 1 enthält ferner einen zweiten Modulo-Addierer 23, der eingangsseitig über Bitleitungen 24 an die von dem zweiten Eingangsanschluß 3 abgehenden Bitleitungen 12 angeschlossen ist. Über die Bitleitungen 24 erhält der zweite Modulo-Addierer 23 den zweiten Operanden ai n als Eingangssignal. Der zweite Modulo-Addierer 23 führt eine Summation des zweiten Operanden ai n mit sich selbst durch, d.h. eine Verdoppelung des zweiten Operanden. Ein Einstellanschluß 25 des zweiten Modulo-Addierers 23 ist über eine Einstelleitung 26 an Bitleitungen 27 angeschlossen, die den vierten Eingangsanschluß 5 mit einem vierten Ausgangsanschluß 28 des systolischen Berechnungselements 1 direkt verbinden. Der durch die Modulo-Addition verdoppelte zweite Operand ai n wird über Ausgangs-Bitleitungen 29 des zweiten Modulo-Addierers 23 an einen zweiten Ausgangsanschluß 30 der systolischen Berechnungsvorrichtung 1 abgegeben.
  • Die beiden in 1 dargestellten Modulo-Addierer 15, 23 führen eine Modulo-Addition Modulo m durch, wobei der Modulo-Operand m über Einstelleitungen 20, 26 einstellbar ist. Die Einstelleitungen 20, 26 der Modulo-Addierer 15, 23 sind direkt mit dem vierten Eingangsanschluß 5 der systolischen Berechnungsvorrichtung verbunden und können daher von außen eingegeben werden.
  • 2 zeigt mehrere der in 1 dargestellten erfindungsgemäßen systolischen Berechnungsvorrichtungen kettenartig hintereinandergeschaltet. Drei systolische Berechnungsvorrichtungen 1A, 1B, 1C sind hintereinandergeschaltet. Die Ausgänge der systolischen Berechnungsvorrichtungen sind jeweils über Zwischenspeicher 31, 32 an die Eingangsanschlüsse des nachgeschalteten systolischen Berechnungsvorrichtungen angeschlossen. Die Zwischenspeicher 31, 32 sind über Takteingangsleitungen 33, 34 mit einer Systemtaktleitung 35 verbunden. Die Zwischenspeicher 31, 32 sind vorzugsweise Register bzw. Verriegelungsschaltungen.
  • Das an dem ersten Ausgangsanschluß 11A anliegende Rotations-Ausgangssignal der vorgeschalteten systolischen Berechnungsvorrichtung 1A wird als erster Operand Xin an den ersten Eingangsanschluß der nachgeschalteten systolischen Berech nungsvorrichtung 1B über den Zwischenspeicher 31 systemgetaktet angelegt.
  • Das Modulo-Additionssignal aau s, das an dem zweiten Ausgangsanschluß 30A der vorgeschalteten systolischen Berechnungsvorrichtung 1A abgegeben wird, wird als zweiter Operand an den zweiten Eingangsanschluß 3B der nachgeschalteten systolischen Berechnungsvorrichtung 1B über den Zwischenspeicher 31 systemgetaktet angelegt.
  • Das Modulo-Additionssignal yaus des ersten Modulo-Addierers 15 innerhalb der systolischen Berechnungsvorrichtung 1A wird von dem Ausgangsanschluß 22A über den Zwischenspeicher 31 systemgetaktet an den dritten Eingangsanschluß 4B der nachgeschalteten systolischen Berechnungsvorrichtung 1B als dritter Operand angelegt.
  • Der Modulo-Operand, der am Ausgangsanschluß 28A der ersten systolischen Berechnungsvorrichtung 1A abgegeben wird, wird systemgetaktet über den Zwischenspeicher 31 an den vierten Eingangsanschluß 5B der nachgeschalteten systolischen Berechnungsvorrichtung 1B angelegt.
  • Die in 2 gezeigte kettenartige Verknüpfung der erfindungsgemäßen systolischen Berechnungsvorrichtung kann eine beliebig hohe Anzahl systolischer Berechnungsvorrichtung enthalten. Durch die kettenartige Verschaltung der systolischen Berechnungsvorrichtung 1 entsteht eine Multiplikations-Akkumulationsberechnungseinrichtung für Restklassensysteme, die modular aufgebaut ist und eine flexible Strukturierung zur Durchführung von MAC-Berechnungen für finite Ringe ermöglicht, wobei die Basis der Modulo-Operationen innerhalb eines Bereichs einer bestimmten Datenwortlänge B auswählbar bzw. einstellbar ist. Die Modulo-Operationen können dabei basierend auf dem RNS-Restklassen-Zahlensystem durch die verschiedenen systolischen Berechnungsvorrichtung übertragsfrei durchgeführt werden.
  • 3 zeigt eine bevorzugte Ausführungsform der beiden in 1 dargestellten Modulo-Addierer 15, 23. Der Modulo-Addierer enthält einen ersten Binär-Addierer 36 zur binären Addition zweier Eingangssignale, die an Eingangs-Bitleitungen 37, 38 anliegen. Der erste Binär-Addierer 36 führt eine binäre Addition der an den Bitleitungen 37, 38 anliegenden Eingangssignale durch und gibt ein erstes Summensignal über Bitleitungen 39 an einen ersten Eingang 40 eines zweiten Binär-Addierers 41 ab. Der zweite Binäraddierer 41 weist einen zweiten Eingang 42 auf, der über Bitleitungen 43 mit einer Berechnungseinrichtung 44 verbunden ist. Die Berechnungseinrichtung 44 erhält über eine Einstelleitung 45 den Modulo-Operanden m, mit dem die Modulo-Addition des Modulo-Addierers durchgeführt wird. Die Einstelleitung 45 in 3 entspricht den Einstelleitungen 20, 26 in 1. Die beiden Binär-Addierer 36, 41 weisen jeweils Übertrags-Ausgangsanschlüsse 46, 47 auf, die über Übertragsleitungen 48, 49 an Eingangsanschlüsse 50, 51 einer logischen Schaltung 52 angeschlossen sind. Die logische Schaltung 52 ist vorzugsweise ein ODER-Gatter, das die an den Leitungen 48, 49 anliegenden Signale logisch ODER-verknüpft. Die logische Schaltung 52 steuert über eine Steuerleitung 53 eine Schalteinrichtung 54. Die Schalteinrichtung 54 ist vorzugsweise ein Multiplexer mit einem ersten Eingang 55 und einem zweiten Eingang 56. Der erste Eingangsanschluß 55 der Schalteinrichtung 54 ist über Bitleitungen 57 mit den Ausgangsbitleitungen 39 des ersten Binär-Addierers 36 verbunden. Der zweite Eingang 56 der Schalteinrichtung 54 ist an Ausgangs-Bitleitungen 57 des zweiten Binär-Addierers angeschlossen. Die Schalteinrichtung 54 schaltet in Abhängigkeit von dem an der Steuerleitung 53 anliegenden Steuersignal entweder den Eingang 55 oder den Eingang 56 an die Ausgangsleitungen 58 des Modulo-Addierers.
  • Der in 3 gezeigte Modulo-Addierer addiert die an den Eingangsleitungen 37, 38 anliegenden Operanden x und y in einer Modulo-Addition über einen finiten Zahlenring m, wobei der Modulo-Operand m über die Einstelleitung 45 eingegeben wird.
  • Die Modulo-Addition durch den in 3 dargestellten Modulo-Addierer erfolgt gemäß der Gleichung: z = (x + y)modm
  • Dabei berechnet die Berechnungseinrichtung 44 in Abhängigkeit von dem über die Leitung 45 eingegebenen Modulo-Operanden m eine Korrekturkonstante C, wobei: C = 2B – m mit Datenwortbreite B = ⌈ld(m)⌉.
  • Die durch die Berechnungseinrichtung 44 berechnete Korrekturkonstante C wird über Bitleitungen 43 an den zweiten Eingang 42 des zweiten Binär-Addierers 41 angelegt. Der zweite Binär-Addierer 41 summiert die berechnete Korrekturkonstante C auf das an den Bitleitungen 39 anliegende Summensignal des ersten Binär-Addierers 36 und gibt ein korrigiertes zweites Summensignal an den zweiten Eingang der Schalteinrichtung 54 ab. Durch die Schalteinrichtung 54 wird entweder das nicht korrigierte Summensignal des ersten Binär-Addierers 36, welches an dem ersten Eingang 55 anliegt, oder das um den Korrekturfaktor C korrigierte zweite Summensignal des zweiten Binär-Addierers 41, welches an dem zweiten Eingang 56 anliegt, in Abhängigkeit von dem an der Steuerleitung 53 anliegenden Steuersignal als Modulo-Summenausgangssignal an die Ausgangs-Bitleitungen 58 durchgeschaltet.
  • Die beiden Binär-Addierer 36, 41 weisen jeweils Übertragsanschlüsse 46, 47 auf, die bei Auftreten eines Übertrags bzw. Carry-Bits bei der Binär-Addition einen logisch hohen Zustand einnehmen und der logischen ODER-Schaltung 52 zugeführt werden. Wird bei der Binär-Addition in einem der Binär-Addierer 36, 41 ein Übertrags- bzw. Carry-Bit erzeugt, nimmt das Ausgangssignal der logischen ODER-Schaltung 52 an der Steuerleitung 53 einen logisch hohen Zustand ein und schaltet die Schalteinrichtung 54 derart, daß das um den Korrekturfaktor C korrigierte Summensignal am Eingang 56 der Schalteinrichtung 54 auf die Ausgangs-Bitleitungen 58 des Modulo-Addierers geschaltet wird. Die Modulo-Operandenbasis, mit der die Modulo-Operation bei dem in 3 dargestellten Modulo-Addierer durchgeführt wird, ist beliebig über die Einstelleitung 45 einstellbar. Dabei kann der Modulus-Operand innerhalb des Bereichs einer bestimmten Datenwortlänge kleiner oder gleich B gewählt werden.
  • 4 zeigt eine bevorzugte Ausführungsform der erfindungsgemäßen systolischen Berechnungsvorrichtung für Modulus-Operanden der Datenwortlänge B = 5.
  • Die in 4 gezeigte bevorzugte Ausführungsform weist vier Eingangsanschlüsse 2, 3, 4, 5 sowie vier Ausgangsanschlüsse 11, 22, 28, 30 auf.
  • An dem ersten Eingangsanschluß 2 wird über eine Vielzahl von Bitleitungen ein erster Operand Xi n eingegeben, wobei die niedrigstwertige Bitleitung über die Steuerleitung 8 die Entscheidungseinrichtung 9 ansteuert. Bei der in 4 gezeigten Ausführungsform ist die Datenwortbreite der Operanden 5 Bit breit, so daß stets fünf Bitleitungen vorhanden sind. Die bitweise Rotation des an dem ersten Eingangsanschluß 2 anliegenden ersten Operanden Xin erfolgt bei der in 4 gezeigten bevorzugten Ausführungsform der erfindungsgemäßen systolischen Berechnungsvorrichtung 1 dadurch, daß die eingangsseitig niedrigstwertige Bitleitung ausgangsseitig an dem ersten Ausgangsanschluß 11 die höchstwertige Bitleitung bildet. Die bitweise Rotation kann bei weiteren nicht dargestellten Ausführungsformen durch eine andere Rotationseinrichtung, insbesondere durch ein Schieberegister erfolgen.
  • An den vierten Eingangsanschluß 5 des erfindungsgemäßen systolischen Berechnungselements wird der eingestellte Modulo-Operand m in Form der Korrekturkonstante C angelegt. Bei dieser Ausführungsform kann eine Berechnungseinrichtung 44 innerhalb des systolischen Bauelements entfallen.
  • Die in 4 dargestellte systolische Berechnungsvorrichtung 1 gemäß der Erfindung enthält drei Binär-Addierer 60, 61, 62. Jeder der Binär-Addierer weist zwei Signaleingänge und einen Signalausgang auf. Darüber hinaus geben die Binär-Addierer 60, 61, 62 jeweils über Übertragsleitungen 62, 64, 65 Carry- bzw. Übertragsbits an ODER-Gatter 66, 67 ab, die über Steuerleitungen 68, 69 Multiplexer 70, 71 steuern.
  • Das erste logische ODER-Gatter 66 verknüpft die an den Übertragsleitungen 63, 64 anliegenden Signale logisch ODER und schaltet den ersten Multiplexer 70, sobald ein Übertragsbit an einem der Binär-Addierer 60, 61 auftritt, derart, daß der Ausgang des zweiten Binär-Addierers 61 an den dritten Ausgangsanschluß 22 der systolischen Berechnungsvorrichtung 1 angelegt wird. Tritt umgekehrt an keinem der beiden Binär-Addierer 60, 61 ein Carry-Bit auf, nimmt das Ausgangssignal des ODER-Gatters 66 an der Ausgangsleitung 68 einen logisch niedrigen Zustand ein, so daß der Multiplexer 70 auf den anderen Eingang umgeschaltet wird. Dieser Eingang des Multiplexers 70 ist mit dem Ausgang des ersten Binär-Addierers 60 verbunden, so daß das an dem Ausgang des ersten Binär-Addierers 60 anliegende Ausgangssignal an den dritten Ausgang 22 der systolischen Berechnungsvorrichtung 1 gelangt.
  • Der zweite Binär-Addierer 61 addiert die am vierten Eingangsanschluß 5 anliegende berechnete Korrekturkonstante C auf das Ausgangs-Summensignal des ersten Binär-Addierers 60. Das derart korrigierte Summensignal gelangt jedoch lediglich dann zu dem dritten Ausgangsanschluß 22 der systolischen Berechnungsvorrichtung 1, wenn an einem der beiden Binär-Addierer 60, 61 ein Übertrags- bzw. Carry-Bit erzeugt wird.
  • Der erste Binär-Addierer 60 addiert den an dem dritten Eingangsanschluß 4 anliegenden dritten Operanden Yi n mit dem an dem zweiten Eingangsanschluß 3 anliegenden zweiten Operanden ain, falls das an der Steuerleitung 8 anliegende Steuer-Bitsignal einen logisch hohen Wert einnimmt. In diesem Falle wird durch die Entscheidungseinrichtung 9 der zweite Operand ain an den zweiten Eingang des Binäraddierers 60 durchgeschaltet. Falls das Steuerbit an der Steuerleitung 8 einen logisch niedrigen Wert einnimmt, wird der dritte Operand Yi n durch eine Null-Addition an den Ausgang des ersten Binär-Addierers 60 geleitet. Die Entscheidungseinrichtung 9 legt in Abhängigkeit des ersten Operanden Xi n den zweiten Operanden ain an den ersten Binär-Addierer 60 des Modulo-Addierers zur Modulo-Addition mit dem dritten Operanden Yi n an, wobei der Modulo-Addierer ein erstes Modulo-Additionssignal Yaus an den dritten Ausgangsanschluß 22 abgibt.
  • Das zweite ODER-Gatter 67 ist eingangsseitig einerseits mit der Übertragsleitung 65 des dritten Binär-Addierers 62 verbunden und andererseits über eine Leitung 72 an die höchstwertige Bitleitung des zweiten Eingangsanschlusses 3 angeschlossen. Die übrigen Bitleitungen des Eingangsanschlusses 3 werden zu dem zweiten Eingang des dritten Binäraddierers 62 geführt. Darüber hinaus wird der zweite Eingang des dritten Binäraddierers 62 über eine Leitung 73 an einen Masse-Anschluß 74 gelegt, so daß das niedrigstwertige Bit an dem zweiten Eingang des zweiten Binär-Addierer 62 stets einen logisch niedrigen Wert einnimmt. Der zweite Binär-Addierer 61 ist an seinem ersten Eingang direkt mit dem vierten Eingangsanschluß 5 der systolischen Berechnungsvorrichtung 1 verbunden. Ausgangsseitig gibt der dritte Binär-Addierer 62 ein Summensignal an einen ersten Eingang des zweiten Multiplexers 71 ab. Der zweite Multiplexer 71 ist an seinem zweiten Eingang direkt mit dem zweiten Eingang des dritten Binäraddierers 62 verbunden.
  • Das zweite logische ODER-Gatter 67 steuert über die Steuerleitung 69 den Multiplexer 71 derart, daß das Summenausgangssignal des dritten Binär-Addierers 62 an den zweiten Ausgangsanschluß 30 der systolischen Berechnungsvorrichtung 1 geschaltet wird, sobald entweder ein Übertragsbit an der Übertragsleitung 65 auftritt oder das höchstwertige des zweiten Operanden ai n an der Leitung 72 einen logisch hohen Zustand einnimmt. Umgekehrt wird der Multiplexer 71 durch das logische ODER-Gatter 67 auf den zweiten Eingang geschaltet, so daß das an dem zweiten Eingang des dritten Binär-Addierers 62 anliegende Signal an dem zweiten Ausgangsanschluß 30 anliegt.
  • Das ODER-Gatter 67, der dritte Binär-Addierer 62 und der Multiplexer 71 bilden den zweiten Modulo-Addierer innerhalb der systolischen Berechnungsvorrichtung 1, wobei der zweite Modulo-Addierer eine Modulo-Addition des zweiten an dem zweiten Eingangsanschluß 3 anliegenden Operanden ai n mit sich selbst zu dessen Verdoppelung durchführt.
  • Der erste Binär-Addierer 60, der zweite Binär-Addierer 61, das erste ODER-Gatter 66 und der erste Multiplexer 70 bilden einen ersten Modulo-Addierer innerhalb der erfindungsgemäßen systolischen Berechnungsvorrichtung 1, wobei der Modulo-Addierer ein Modulo-Additionssignal Yaus an den dritten Ausgangsanschluß 22 abgibt. Das Modulo-Additionssignal Yaus wird durch Modulo-Addition des zweiten Operanden ai n mit dem dritten Operanden Yi n gebildet, wobei die Addition in Abhängigkeit von mindestens einem Bit des ersten Operanden Xin erfolgt.
  • Der erste Modulo-Addierer führt eine Modulo-Addition gemäß folgender Gleichung aus: Yau s = (ain + Yin)modm
  • Der zweite Modulo-Addierer führt eine Modulo-Addition gemäß folgender Gleichung aus: aau s = (ain + ain)modm
  • Die in 4 gezeigte Schaltungsstruktur nutzt die Addition in binären Modulo-Addierern zur flexiblen Modulusbildung, wobei einfache Binär-Addierer 60, 61, 62, logische Gatter 66, 67 und Multiplexer 70, 71 die Modulo-Addierer bilden.
  • Die in 4 gezeigte systolische Berechnungsvorrichtung 1 gemäß der Erfindung setzt sich aus einfachen standardisierten Schaltungselementen zusammen und erlaubt gleichzeitig eine Modulo-Berechnung mit unterschiedlichen Modulo-Operanden. Die erfindungsgemäße systolische Berechnungsvorrichtung 1 ermöglicht die Berechnung unterschiedlicher Modulo-Pfade mit eine gleichartigen systolischen Berechnungsvorrichtung. Die systolische Berechnungsvorrichtung 1 kann MAC-Rechenoperationen durchführen.
  • Durch Verschaltung mehrerer systolischer Berechnungsvorrichtungen 1 ist man in der Lage, hochgenaue digitale adaptive Signalverarbeitung durchzuführen und fehlertolerante VLSI-Systeme aufzubauen. Auch programmierbare Mikroprozessoren, die auf RNS-Restklassen-Zahlensystemen basieren, können mit der erfindungsgemäßen systolischen Berechnungsvorrichtung 1 aufgebaut werden. Die systolische Berechnungsvorrichtung 1 gemäß der Erfindung enthält keine flächenintensiven Speicher, wie beispielsweise ROMs oder RAMs, so daß die Herstellungskosten bei der Integration auf einem Chip erheblich abgesenkt werden.
  • Bei einer bevorzugten Anwendung werden mehrere systolische Berechtigungsvorrichtung 1 parallel geschaltet, um den Datenfluß zu erhöhen.

Claims (11)

  1. Systolisches Berechnungsvorrichtung für Multiplikations-Akkumulationsoperationen bei Restklassensystemen mit einem ersten Eingangsanschluß (2) zur Eingabe eines ersten Operanden (Xin), einem zweiten Eingangsanschluß (3) zur Eingabe eines zweiten Operanden (ain), einem dritten Eingangsanschluß (4) zur Eingabe eines dritten Operanden (Yin), einem vierten Eingangsanschluß (5) zur Eingabe eines Modulo-Operanden (m), einer Bit-Rotationseinrichtung (7) zur bitweisen Rotation des an dem ersten Eingangsanschluß (2) anliegenden ersten Operanden (Xi n) und zur Ausgabe des rotierten ersten Operanden (Xin) als Rotations-Ausgabe-Operand (Xau s) an einen ersten Ausgangsanschluß (11), einer Entscheidungseinrichtung (9), die in Abhängigkeit von dem ersten Operanden (Xi n) den zweiten Operanden (ain) an einen ersten Modulo-Addierer (15) zur Modulo-Addition mit dem dritten Operanden (Yi n) anlegt, wobei der erste Modulo-Addierer (15) ein erstes Modulo-Additionssignal (Yaus) an einen dritten Ausgangsanschluß (22) abgibt, einem zweiten Modulo-Addierer (23) zur Modulation-Addition des zweiten Operanden (ai n) mit sich selbst, wobei der zweite Modulo-Addierer (23) ein zweites Modulo-Additionssignal (aaus) an einen zweiten Ausgangsanschluß (30) abgibt, und mit einem vierten Ausgangsanschluß (28), der mit dem vierten Eingangsanschluß (5) verbunden ist und den eingegebenen Modulo-Operanden m als Modulo-Operanden-Ausgangssignal abgibt, wobei die Modulo-Addierer (15, 23) jeweils aufweisen: einen ersten Binär-Addierer (36) zur binären Addition zweier Eingangssignale zu einem ersten Summensignal, eine Berechnungseinrichtung (44) zur Berechnung einer Korrekturkonstante (C) in Abhängigkeit von dem eingegebenen Modulo-Operanden (m), einen zweiten Binär-Addierer (41) zur binären Addition des ersten Summensignals und der berechneten Korrekturkonstante (C) zu einem zweiten Summensignal, eine Schalteinrichtung (54), die das erste Summensignal durchschaltet, falls an keinem der beiden Binär-Addierer (36, 41) ein Übertragsbit erzeugt wird und die das zweite Summensignal durchschaltet, falls einer der beiden Binär-Addierer (36, 41) ein Übertragsbit abgibt, wobei die beiden Binär-Addierer (36, 41) jeweils Übertragsleitungen (48, 49) aufweisen, die jeweils mit einem Eingangsanschluß (50, 51) eines ODER-Gatters (52) verbunden sind, wobei eine Ausgangsleitung (53) des ODER-Gatters (52) mit einem Steueranschluß der Schalteinrichtung (54) verbunden ist.
  2. Systolisches Berechnungsvorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß es kettenartig mit weiteren systolischen Berechnungsvorrichtungen zur Bildung einer Multiplikations-Akkumulationsberechnungseinheit für Restklassensysteme verschaltbar ist.
  3. Systolisches Berechnungsvorrichtung nach Anspruch 2, dadurch gekennzeichnet, daß bei der kettenartigen Verschaltung der erste bis vierte Eingangsanschluß (25) eines nachgeschalteten systolischen Berechnungsvorrichtungs jeweils mit dem ersten bis vierten Ausgangsanschluß (11, 22, 28, 30) eines vorgeschalteten systolischen Berechnungsvorrichtungs leitend verbunden ist.
  4. Systolisches Berechnungsvorrichtung nach Anspruch 2 oder 3, dadurch gekennzeichnet, daß zwischen die systolischen Berechnungsvorrichtunge jeweils Zwischenspeicher (31, 32) geschaltet sind.
  5. Systolisches Berechnungsvorrichtung nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, daß die Entscheidungseinrichtung (9) den zweiten Operanden (ai n) in Abhängigkeit von dem logischen Zustand eines bestimmten Bits des an dem ersten Eingangsanschluß (2) anliegenden ersten Operanden (Xin) an einen Eingang des ersten Modulo-Addierers (15) anlegt.
  6. Systolisches Berechnungsvorrichtung nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, daß der zweite Operand (ai n) mit dem dritten Operand (Yi n) durch den ersten Modulo-Addierer (15) zur Bildung des ersten Modulo-Additionssignals (Yaus) addierbar ist, wobei Yaus = (ain + Yin)modm.
  7. Systolisches Berechnungsvorrichtung nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, daß der zweite Operand (ai n) mit sich selbst durch den zweiten Modulo-Addierer (23) zur Bildung des zweiten Modulo-Additionssignals (aaus) addierbar ist, wobei aaus = (ain + ain) modm gilt.
  8. Systolisches Berechnungsvorrichtung nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, daß die Berechnungseinrichtung (44) die Korrekturkonstante (C) in Abhängigkeit von dem Modulo-Operanden (m) wie folgt berechnet: C = 2ld m – m.
  9. Systolisches Berechnungsvorrichtung nach Anspruch 10, dadurch gekennzeichnet, daß die Schalteinrichtung (54) ein Multiplexer ist.
  10. Systolisches Berechnungsvorrichtung nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, daß die Entscheidungseinrichtung (9) aus einer Vielzahl von UND-Gattern besteht, die eine Bitleitung des ersten Eingangsanschlusses (2) jeweils logisch mit allen Bitleitungen des zweiten Eingangsanschlusses (3) verknüpfen.
  11. Systolische Berechnungsvorrichtunge nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, daß die Berechnung des zweiten Modulo-Additionssignals aa us durch einen Binäraddierer und eine Verschiebeoperation erfolgt.
DE1999135820 1999-07-29 1999-07-29 Systolisches Berechnungselement für Multiplikations-Akkumulationsoperationen Expired - Fee Related DE19935820B4 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE1999135820 DE19935820B4 (de) 1999-07-29 1999-07-29 Systolisches Berechnungselement für Multiplikations-Akkumulationsoperationen

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE1999135820 DE19935820B4 (de) 1999-07-29 1999-07-29 Systolisches Berechnungselement für Multiplikations-Akkumulationsoperationen

Publications (2)

Publication Number Publication Date
DE19935820A1 DE19935820A1 (de) 2001-02-08
DE19935820B4 true DE19935820B4 (de) 2004-08-26

Family

ID=7916588

Family Applications (1)

Application Number Title Priority Date Filing Date
DE1999135820 Expired - Fee Related DE19935820B4 (de) 1999-07-29 1999-07-29 Systolisches Berechnungselement für Multiplikations-Akkumulationsoperationen

Country Status (1)

Country Link
DE (1) DE19935820B4 (de)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4742479A (en) * 1985-03-25 1988-05-03 Motorola, Inc. Modulo arithmetic unit having arbitrary offset and modulo values
US5928315A (en) * 1996-09-18 1999-07-27 International Business Machines Corporation Apparatus and method for calculating Bc (mod n)

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4742479A (en) * 1985-03-25 1988-05-03 Motorola, Inc. Modulo arithmetic unit having arbitrary offset and modulo values
US5928315A (en) * 1996-09-18 1999-07-27 International Business Machines Corporation Apparatus and method for calculating Bc (mod n)

Also Published As

Publication number Publication date
DE19935820A1 (de) 2001-02-08

Similar Documents

Publication Publication Date Title
DE69632978T2 (de) Multi-Operand-Addierer, der Parallelzähler benutzt
EP0308660B1 (de) Vorrichtung zur Herstellung einer testkompatiblen, weitgehend fehlertoleranten Konfiguration von redundant implementierten systolischen VLSI-Systemen
DE69838877T2 (de) Architektur eines schnellen regulären multiplizierers
EP0123921B1 (de) Parallelverknüpfungsschaltung mit verkürztem Übertragsdurchlauf
DE102020113922A1 (de) Multipliziererschaltungsanordnung mit reduzierter latenz für sehr grosse zahlen
DE3036747A1 (de) Binaere multiplikationszellenschaltung
DE3700323C2 (de)
DE102020105536A1 (de) Maschinenlerntrainingsarchitektur für programmierbare Vorrichtungen
DE112017004291T5 (de) Integrierte Schaltungen mit spezialisierten Verarbeitungsblöcken zum Durchführen von schnellen Fourier Gleitkommatransformationen und komplexer Multiplikation
DE2405858A1 (de) Normalisierendes verschiebezaehlernetzwerk
EP0231434B1 (de) In integrierter Technik hergestellter Baustein zur Erstellung integrierter Schaltungen
DE2705989C2 (de) Schaltungsanordnung zum parallelen Addieren oder Subtrahieren von mindestens zwei Eingangszahlen
DE19935820B4 (de) Systolisches Berechnungselement für Multiplikations-Akkumulationsoperationen
DE10041511C1 (de) Additionsschaltung für digitale Daten
EP0130397A1 (de) Digitales Rechenwerk
DE10305849B3 (de) Carry-Ripple Addierer
DE10117041C1 (de) Carry-Ripple Addierer
DE3933172A1 (de) Akkumulator fuer komplexe zahlen
DE10206830B4 (de) Verfahren und Anordnung zur Zusammenführung von Daten aus parallelen Datenpfaden
DE3221819A1 (de) Vorrichtung zur simulation eines schaltwerks mit hilfe eines rechners
DE4001232C2 (de) Gleitkommaeinheit
DE2947616C2 (de) Wellendigitalfilter
DE10130484B4 (de) 7-zu-3 Bit Carry-Save Addierer und Addierer damit
EP0603188B1 (de) Digitale logikschaltung zur bestimmung des minimums oder des maximums von zwei operanden
DE4223999C1 (en) Digital multiplication circuit using canonically signed digit code - has multiplexer converted and added to two's-complement value to generate reduced partial products that are added

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee