DE60035999T2 - Signalprozessor und Produkt-Summier-Vorrichtung mit Rundungsfunktion - Google Patents

Signalprozessor und Produkt-Summier-Vorrichtung mit Rundungsfunktion Download PDF

Info

Publication number
DE60035999T2
DE60035999T2 DE60035999T DE60035999T DE60035999T2 DE 60035999 T2 DE60035999 T2 DE 60035999T2 DE 60035999 T DE60035999 T DE 60035999T DE 60035999 T DE60035999 T DE 60035999T DE 60035999 T2 DE60035999 T2 DE 60035999T2
Authority
DE
Germany
Prior art keywords
data
register
rounding
multiply
bit
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 - Lifetime
Application number
DE60035999T
Other languages
English (en)
Other versions
DE60035999D1 (de
Inventor
Takahiro Kumura
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Application granted granted Critical
Publication of DE60035999D1 publication Critical patent/DE60035999D1/de
Publication of DE60035999T2 publication Critical patent/DE60035999T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Complex Calculations (AREA)

Description

  • Die vorliegende Erfindung betrifft einen Signalprozessor und eine Multiplikations-Akkumulations-Einheit mit einer Rundungsfunktion zur Verwendung in einem solchen Signalprozessor.
  • Signalprozessoren lesen Daten aus einem Speicher und verarbeiten die gelesenen Daten auf verschiedene Arten, d.h. durch Additions-, Subtraktions-, Logikoperations- und Multiplikationsprozesse. Die Verarbeitungsfähigkeit von Signalprozessoren wird durch Aufnehmen einer Multiplikations-Akkumulations-Einheit, die in einem Prozessorzyklus Multiplikations-Akkumulations-Operationen ausführen kann, welche häufig in einem Signalverarbeitungsprogramm in der Art eines Bildverarbeitungs-, Tonverarbeitungs- oder ähnlichen Programms auftreten, stark verbessert.
  • 1 der anliegenden Zeichnung zeigt einen herkömmlichen Signalprozessor mit mehreren Ausführungseinheiten, Registern und einem Speicher. Der in 1 dargestellte Signalprozessor ist in "IEEE VLSI SIGNAL PROCESSING, VI", S. 93-101, 1993, eingeführt.
  • Wie in 1 dargestellt ist, weist der herkömmliche Signalprozessor acht 40-Bit-Register (nachstehend als "Register 50" bezeichnet), eine MAC-(Multiplikations-Akkumulations)-Einheit 52, einen MUX (Multiplexer) 53, eine ALU (Rechen- und Logikeinheit) 54, eine BSFT (Barrel-Shift-Einheit) 55, einen X-Speicher 57x und einen Y-Speicher 57y auf. Der X-Speicher 57x und der Y-Speicher 57y werden nachstehend als Speicher 57x bzw. als Speicher 57y bezeichnet.
  • Der Speicher 57x und der Speicher 57y sind durch jeweilige Datenbusse 58x, 58y mit Registern 50 verbunden. Die MAC- Einheit 52, die ALU 54, der MUX 53 und die BSFT 55 sind an Ausgangsleitungen 51a, 51b und 51c von Registern 50 angeschlossen.
  • Die MAC-Einheit 52 führt Multiplikations-Akkumulations-Operationen aus. Die ALU 54 führt eine Rechen- oder Logikoperation unter Verwendung eines vom MUX 53 ausgewählten unmittelbaren Werts imm. oder eines Werts von Registern 50 aus. Die BSFT 55 führt eine Rechen- oder Logikverschiebung unter Verwendung eines vom MUX 53 ausgewählten unmittelbaren Werts imm. oder eines Werts von Registern 50 aus.
  • Multiplikations-Akkumulations-Operationen, die in einem Signalverarbeitungsprogramm häufig auftreten, sind Operationen zum Ausführen einer Multiplikation und einer Akkumulation nach der folgenden Gleichung (1): A = A + B × C (1)
  • Insbesondere wird das Produkt des Multiplikanden B und des Multiplikators C zum Addenden A auf der rechten Seite von Gleichung (1) addiert, und die Summe wird auf der linken Seite von Gleichung (1) angeordnet. In den meisten Fällen ist der Addend A auf der rechten Seite von Gleichung (1) das Ergebnis von Multiplikations-Akkumulations-Operationen, die häufig ausgeführt werden, während er in manchen Fällen aus dem Speicher ausgelesen werden kann. Operationen, die durch Gleichung (1) dargestellt werden, wobei das Symbol "+" auf der rechten Seite von Gleichung (1) durch das Symbol "–" ersetzt ist, werden auch als Multiplikations-Akkumulations-Operationen bezeichnet.
  • Im Allgemeinen werden Multiplikations-Akkumulations-Einheiten, welche numerische Festkommadaten, den Multiplikanden B und den Multiplikator C auf der rechten Seite von Gleichung (1) behandeln, aus praktischen und wirtschaftlichen Gründen mit einer Breite von 16 Bits ausgedrückt. Weil das Produkt des Multiplikanden B und des Multiplikators C maximal 32 Bits breit wird, müssen der Addend A auf der rechten Seite von Gleichung (1) und die Summe A auf der linken Seite von Gleichung (1) mit einer Breite von mindestens 32 Bits ausgedrückt werden.
  • Aus dem vorstehend erwähnten Grund haben allgemeine Signalprozessoren Register mit 32 Bits oder mehr, um die Ergebnisse von Multiplikations-Akkumulations-Operationen zu speichern. Wenn zwei 16-Bit-Daten in einem Register eines solchen Signalprozessors gehalten werden, befinden sie sich in den Bits 15-0 oder 31-16 des Registers.
  • Mit Bezug auf 2 der anliegenden Zeichnung wird die Multiplikations-Akkumulations-Operation nach Gleichung (1) beschrieben, die durch den in 1 dargestellten herkömmlichen Signalprozessor ausgeführt wird. 2 zeigt eine Sequenz zum Ausführen einer Multiplikations-Akkumulations-Operation mit den Registern 50 und der MAC-Einheit 52 des in 1 dargestellten herkömmlichen Signalprozessors.
  • Der Multiplikand B, der Multiplikator C und der Addend A auf der rechten Seite von Gleichung (1) werden aus dem mit dem Signalprozessor verbundenen Speicher in das Register 502, das Register 503 bzw. das Register 501 gelesen.
  • Der Multiplikand B und der Multiplikator C können entweder in die Bits 31-16 oder die Bits 15-0 der Register 502, 503 gegeben werden. Hier wird angenommen, dass der Multiplikand B in die Bits 31-16 des Registers 502 gegeben wird und dass der Multiplikator C in die Bits 15-0 des Registers 503 gegeben wird. Der Addend A wird in alle Bits des Registers 501 gegeben. In 2 geben Zahlen unterhalb der Register 501, 502, 503 Bitpositionen darin an.
  • Dann wird der Addend A im ACC (Akkumulator) 523 der MAC-Einheit 52 gespeichert. Der Multiplikand B und der Multiplikator C werden einer Multiplikationseinheit 521 in der MAC-Einheit 52 zugeführt, die das Produkt aus dem Multiplikand B und dem Multiplikator C berechnet. Das berechnete Produkt aus dem Multiplikand B und dem Multiplikator C wird durch einen Addierer/Subtrahierer (±) 522 zum Addenden A aus dem ACC 523 addiert. Die vom Addierer/Subtrahierer 522 er zeugte Summe wird im ACC 523 zwischengespeichert und über eine Ausgangsleitung 56 in das Register 501, worin der Addend A gespeichert ist, zurückgeschrieben.
  • Nun sei ein Prozess zum Lesen eines Addenden als 16-Bit-Daten aus dem Speicher, zum Ausführen einer bestimmten Multiplikations-Akkumulations-Operation an dem Addenden und zum Speichern des Ergebnisses als 16-Bit-Daten im Speicher an dem in 1 dargestellten herkömmlichen Signalprozessor betrachtet. In dem Prozess sind alle Eingangs- und Ausgangsdaten, unabhängig von Zwischendatengrößen, 16 Bits breit.
  • Der vorstehend erwähnte Prozess geschieht, wenn der Multiplikand oder der Multiplikator bei einer Multiplikations-Akkumulations-Operation als der Addend in einer anderen Multiplikations-Akkumulations-Operation verwendet wird. Weil bei diesem Prozess der Addend, der Multiplikand und der Multiplikator alle 16 Bits breit sind, kann das Ergebnis möglicherweise, abhängig vom Wert des Addenden, des Multiplikanden und des Multiplikators, einen Überlauf hervorrufen. Die Multiplikations-Akkumulations-Operation kann jedoch ohne einen Überlauf ausgeführt werden, falls der Addend, der Multiplikand und der Multiplikator in einem geeigneten Bereich angeordnet werden.
  • Mit Bezug auf 3 der anliegenden Zeichnung wird die Multiplikations-Akkumulations-Operation in dem vorstehend erwähnten Prozess an dem in 1 dargestellten herkömmlichen Signalprozessor beschrieben. In 3 werden der Multiplikand B, der Multiplikator C und der Addend A aus dem mit dem Signalprozessor verbundenen Speicher in die Bits 31-16 des Registers 502, in die Bits 15-0 des Registers 503 bzw. die Bits 31-16 des Registers 501 gelesen.
  • Wenn der als 16-Bit-Festkommadaten ausgedrückte Addend A in das Register 501 gelesen wird, wird das Vorzeichen des Addenden A in die Bits 39-32 eingegeben, wird der Addend A in die Bits 31-16 eingegeben und wird "0" in die Bits 15-0 eingegeben. Ein Zustand, in dem die Daten in den Registern 501, 502, 503 gespeichert sind, wird als Zustand 50n bezeichnet. Ein Zustand der Register nach der Multiplikations-Akkumulations-Operation wird als Zustand 50n1 bezeichnet. Ein Zustand der Register nach Abrunden des Ergebnisses wird als Zustand 50n2 bezeichnet.
  • Im Zustand 50n1, der dem Zustand 50n folgt, wird das Ergebnis A + B × C im Register 501 gespeichert. Im Zustand 50n2 wird das Ergebnis der Multiplikations-Akkumulations-Operation, das 40 Bits breit ist, durch die ALU 54 zu 16 Bits abgerundet, und das gerundete Ergebnis wird im Register 501 gespeichert. Schließlich wird das gerundete Ergebnis im Speicher gespeichert.
  • In der vorstehend erwähnten Verarbeitungssequenz treten zwei Probleme auf. Das erste Problem besteht darin, dass die Datengröße des aus dem Speicher gelesenen Addenden A und die Datengröße eines von der MAC-Einheit 52 benötigten Addenden voneinander verschieden sind. Weil der Addend A durch 16-Bit-Daten gegeben ist, muss er für Multiplikations-Akkumulations-Operationen zu 40-Bit-Daten erweitert werden. Daher können zwei 16-Bit-Addenden nicht in ein Register gegeben werden.
  • Das zweite Problem besteht darin, dass die Datengröße des Ergebnisses der von der MAC-Einheit ausgeführten Berechnung und die Datengröße des Ergebnisses beim Abspeichern im Speicher voneinander verschieden sind. Weil die MAC-Einheit des herkömmlichen Signalprozessors ein 40-Bit-Ergebnis ausgibt, müssen die 40 Bits beim Speichern als 16-Bit-Daten im Speicher zu 16 Bits abgerundet werden. Folglich muss ein Rundungsprozess zusätzlich zu der Multiplikations-Akkumulations-Operation ausgeführt werden.
  • Falls die Busgröße zwischen dem Speicher und dem Register zum Verbessern der Funktionsweise des herkömmlichen Signalprozessors auf 32 Bits erhöht wird, können zwei 16-Bit-Dateneinheiten gleichzeitig über jeden Datenbus gelesen werden.
  • Es werden Multiplikations-Akkumulations-Operationen mit 16-Bit-Eingangs- und Ausgangsdaten an einem solchen Signalprozessor analysiert. Weil jeder von dem Multiplikanden und dem Multiplikator als 16-Bit-Daten ausgedrückt wird, kann der Signalprozessor gleichzeitig sowohl den Multiplikanden als auch den Multiplikator lesen, indem seine 32-Bit-Datenübertragungsfähigkeit ausgenutzt wird. Die gelesenen zwei 16-Bit-Daten werden in den Bits 31-16 bzw. den Bits 15-0 eines Registers gespeichert.
  • Ähnlich können zwei Addenden gleichzeitig in ein Register gelesen werden, indem die 32-Bit-Datenübertragungsfähigkeit ausgenutzt wird. Der Leseprozess funktioniert jedoch nicht gut, weil diese beiden Addenden trotz der Tatsache, dass jeder dieser Addenden in die Bits 31-16 eines individuellen Registers gegeben werden muß und die Bits 15-0 des Registers für folgende Multiplikations-Akkumulations-Operationen mit "0" gefüllt werden müssen, in ein Register gegeben sind.
  • Insbesondere kann keine korrekte Operation ausgeführt werden, falls zwei Addenden in den Bits 31-16 und den Bits 15-0 eines Registers gespeichert werden. Folglich müssen die Addenden nacheinander einzeln in ein Register gelesen werden.
  • Falls zwei Addenden in ein Register gelesen werden, müssen sie durch Register-zu-Register-Übertragungs- oder Schiebeoperationen in bestimmte Register verschoben werden. In diesem Fall kann, wenngleich die Anzahl der Ladebefehle für das Lesen von zwei Addenden aus dem Speicher auf die Hälfte verringert werden kann, die Gesamtzahl der Befehle in Bezug auf das Lesen von zwei Addenden nicht auf die Hälfte verringert werden, weil zusätzliche Datenübertragungsbefehle erforderlich sind, um diese Addenden innerhalb eines Registers zu trennen. Dies bedeutet, dass die 32-Bit-Datenübertragungsfähigkeit zwischen Registern und dem Speicher nicht in erheblichem Maße ausgenutzt werden kann.
  • Wie vorstehend beschrieben wurde, leidet der herkömmliche Signalprozessor an einigen Problemen in Bezug auf das Behandeln von 16-Bit-Addenden. Eines der Probleme besteht darin, dass übermäßig viel Betriebsmittel bei Multiplikations-Akkumulations-Operationen belegt werden, bei denen alle Eingaben und Ausgaben 16 Bits breit sind. Ein 16-Bit-Addend muss in ein Register gegeben werden, wobei er in geeigneter Weise auf die Breite des Registers erweitert wird, um zu der von der MAC-Einheit geforderten Datengröße zu passen.
  • Weil überdies Ergebnisse von Multiplikations-Akkumulations-Operationen eine Datengröße aufweisen, die der Größe von Registern gleicht, müssen sie zu 16-Bit-Daten abgerundet werden, um sie im Speicher zu speichern. Dieses Problem ruft ein anderes Problem hervor, bei dem die Wirksamkeit der Datenübertragung zwischen dem Speicher und dem Register nicht erhöht werden kann.
  • Selbst wenn beispielsweise die Datenbusbreiten zwischen den Registern und dem Speicher in 1 auf 32 Bits verdoppelt werden, um eine 32-Bit-Dateneinheit oder zwei 16-Bit-Dateneinheiten über jeden Datenbus lesen zu können, ist es unabdingbar, Addendendaten zwischen Registern zu übertragen, um zwei 16-Bit-Addenden gleichzeitig über den verdoppelten Datenbus in Register zu lesen und diese 16-Bit-Addenden wirksam zu verarbeiten. Folglich kann die Wirksamkeit der Datenübertragung zwischen Registern und dem Speicher, welche erforderlich ist, bis die Operationen ausgeführt wurden, nicht erhöht werden.
  • In WO-98/12624 A ist ein Datenverarbeitungssystem mit einer Rechen- und Logikeinheit offenbart, welche eingegebene Operanden von M x-Bit-Registern empfängt, um Ausgangsdatenwörter zu erzeugen, die innerhalb von N Y-Bit-Registern gespeichert werden, welches insbesondere für die digitale Signalverarbeitung vorgesehen ist.
  • Eine Aufgabe der vorliegenden Erfindung besteht daher darin, einen Signalprozessor bereitzustellen, der die vorstehend erwähnten Probleme lösen kann und 16-Bit-Addenden wirksam behandeln kann, oder eine Multiplikations-Akkumulations-Einheit mit einer Rundungsfunktion zur Verwendung in einem solchen Signalprozessor bereitzustellen. Eine spezifischere Aufgabe der vorliegenden Erfindung besteht darin, einen Signalprozessor, der in der Lage ist, 16-Bit-Multiplikations- Akkumulations-Operationen durch Berücksichtigen der Position eines Addenden in einem Register wirksam auszuführen, oder eine Multiplikations-Akkumulations-Einheit mit einer Rundungsfunktion zur Verwendung in einem solchen Signalprozessor bereitzustellen. Diese Aufgabe wird mit den Merkmalen der Ansprüche gelöst.
  • Ein Signalprozessor auf der Grundlage der vorliegenden Erfindung weist eine Multiplikations-Akkumulations-Einheit mit einer Rundungsfunktion auf, die eine Multiplikations-Akkumulations-Operation an einem Addenden, einem Multiplikanden und einem Multiplikator ausführt. Der Signalprozessor weist eine Anzahl von Registern auf, die an die Multiplikations-Akkumulations-Einheit mit der Rundungsfunktion angeschlossen sind. Die Multiplikations-Akkumulations-Einheit mit der Rundungsfunktion weist auf: eine Auswahleingabeeinrichtung zum Eingeben eines selektiv von verschiedenen Positionen in einem der Register zugeführten Addenden, eine Rundungseinrichtung zum Ausführen eines Rundungsprozesses, um Daten mit einer höheren Datengröße in Daten mit einer geringeren Größe anhand des Ergebnisses der Multiplikations-Akkumulations-Operation zu konvertieren, wobei der Addend von der Auswahleingabeeinrichtung selektiv eingegeben wird, und eine Auswahlaungabeeinrichtung zum Ausgeben des von der Rundungseinrichtung gerundeten Ergebnisses der Multiplikations-Akkumulations-Operation selektiv an verschiedene Positionen in einem der Register.
  • Eine Multiplikations-Akkumulations-Einheit mit einer Rundungsfunktion auf der Grundlage der vorliegenden Erfindung beinhaltet eine Multiplikations-Akkumulations-Einheit zum Ausführen einer Multiplikations-Akkumulations-Operation an einem Addenden, einem Multiplikanden und einem Multiplikator. Die Multiplikations-Akkumulations-Einheit mit der Rundungsfunktion arbeitet mit einer Anzahl zu einer Einheit verbundener Register zusammen und weist auf: eine Auswahleingabeeinrichtung zum Eingeben eines selektiv von verschiedenen Positionen zugeführten Addenden in eines der Register, das extern damit verbunden ist, eine Rundungseinrichtung zum Ausführen eines Rundungsprozesses, um Daten mit einer höheren Datengröße in Daten mit einer geringeren Größe anhand des Ergebnisses der Multiplikations-Akkumulations-Operation auf der Grundlage des von der Auswahleusgabeeinrichtung selektiv eingegebenen Addenden zu konvertieren, und eine Auswahlausgabeeinrichtung zum Ausgeben des von der Rundungseinrichtung gerundeten Ergebnisses der Multiplikations-Akkumulations-Operation selektiv an verschiedene Positionen in einem der Register.
  • Insbesondere weist die Multiplikations-Akkumulations-Einheit mit der Rundungsfunktion auf der Grundlage der vorliegenden Erfindung eine Auswahleingabe- und Erweiterungseinrichtung, eine Rundungs- und Auswahlausgabeeinrichtung und eine Multiplikations-Akkumulations-Einheit auf. Die Multiplikations-Akkumulations-Einheit mit der Rundungsfunktion weist ihren Betriebsmodus auf, der durch zwei Arten von Signalen Runden und Position gesteuert wird. Falls das Steuersignal Runden "0" ist, arbeitet die Multiplikations-Akkumulations-Einheit mit der Rundungsfunktion auf der Grundlage der vorliegenden Erfindung als die herkömmliche Multiplikations-Akkumulations-Einheit.
  • Falls das Steuersignal Runden "1" ist, arbeitet die Multiplikations-Akkumulations-Einheit mit der Rundungsfunktion auf der Grundlage der vorliegenden Erfindung, abhängig von dem Steuersignal Position, verschieden. In diesem Fall erweitert die Auswahleingabe- und Erweiterungseinrichtung einen Addenden zu einer Dateneinheit, welche die von der Multiplikations-Akkumulations-Einheit benötigte Datengröße aufweist, auf der Grundlage des Steuersignals Position, welches die durch 16 Bits breite Daten in dem extern angeschlossenen Register dargestellte Position des Addenden angibt.
  • Die Rundungs- und Auswahlausgabeeinrichtung rundet das Ergebnis der Multiplikations-Akkumulations-Operation, dessen Datengröße der Datengröße des Registers entspricht, zu 16-Bit-Daten ab und gibt die gerundeten Daten dann an die Posi tion des Addenden in dem Register aus, welche durch das Steuersignal Position angegeben wird.
  • Mit der vorstehenden Anordnung ist es möglich, Multiplikations-Akkumulations-Operationen mit der Rundungsoperation an jedem an den Bits 31-16 oder den Bits 15-0 von Registern, die 32 Bits oder mehr breit sind und mit der Multiplikations-Akkumulations-Einheit mit der Rundungsfunktion verbunden sind, angeordneten 16-Bit-Addenden auszuführen, ohne andere Bits zu beeinflussen.
  • Die Erfindung wird weiter mit Bezug auf die Zeichnung beschrieben:
  • Es zeigen:
  • 1 ein Blockdiagramm eines herkömmlichen Signalprozessors,
  • 2 ein Blockdiagramm einer Sequenz, bei der eine Multiplikations-Akkumulations-Operation an einem Addenden von 40-Bit-Daten, einem Multiplikanden und einem Multiplikator, die jeweils 16-Bit-Daten sind, mit dem herkömmlichen Signalprozessor ausgeführt wird,
  • 3 ein Blockdiagramm von Registerzuständen in einer Sequenz zum Ausführen einer Multiplikations-Akkumulations-Operation an einem Addenden, einem Multiplikanden und einem Multiplikator, die jeweils 16-Bit-Daten sind, mit dem herkömmlichen Signalprozessor,
  • 4 ein Blockdiagramm einer Anordnung auf der Grundlage einer Ausführungsform der vorliegenden Erfindung,
  • 5 ein Diagramm, das die Art zeigt, in der eine Auswahleingabe- und Erweiterungseinrichtung in 4 arbeitet,
  • 6 ein Diagramm, das die Art zeigt, in der eine Rundungs- und Auswahlausgabeeinrichtung in 4 arbeitet,
  • 7 ein Blockdiagramm einer Multiplikations-Akkumulations-Einheit mit einer Rundungsfunktion auf der Grundlage einer Ausführungsform der vorliegenden Erfindung und
  • 8 ein Blockdiagramm von Registerzuständen in einer Sequenz zum Ausführen einer Multiplikations-Akkumulations-Operation an einem Addenden, einem Multiplikanden und einem Multiplikator, die jeweils 16-Bit-Daten sind, mit der Multiplikations-Akkumulations-Einheit mit einer in 7 dargestellten Rundungsfunktion.
  • Ausführungsformen der vorliegenden Erfindung werden nachstehend mit Bezug auf die Zeichnung beschrieben. 4 ist ein Blockdiagramm einer Anordnung, die auf einer Ausführungsform der vorliegenden Erfindung beruht. In 4 ist eine rundende MAC-Einheit 4 so eingerichtet, dass sie in der Lage ist, 16-Bit-Addenden wirksam zu behandeln. Insbesondere ist die rundende MAC-Einheit 4 so eingerichtet, dass sie in der Lage ist, Multiplikations-Akkumulations-Operationen an jedem Addenden im Register 1 auszuführen, ohne dass sie einander beeinflussen, wobei das Register 32 oder mehr Bits breit ist und sich zwei getrennte 16-Bit-Addenden in dem Register befinden.
  • Die rundende MAC-Einheit 4 arbeitet mit damit verbundenen Registern und liest drei Dateneinheiten, d.h. einen Addenden, einen Multiplikanden und einen Multiplikator, aus den Registern. Die rundende MAC-Einheit 4 weist drei Ausgaben als die Ergebnisse von Operationen auf. Die von der rundenden MAC-Einheit 4 ausgeführten Operationen werden durch zwei Arten von Signalen, nämlich Runden und Position, gesteuert.
  • Ein Addend wird entweder in den Bits 31-16 oder in den Bits 15-0 des 40-Bit-Registers 1 gespeichert, das mit der rundenden MAC-Einheit 4 verbunden ist. Ein Multiplikand und ein Multiplikator werden in anderen Registern gespeichert und in die rundende MAC-Einheit 4 eingegeben.
  • 4 zeigt das 40-Bit-Register 1, das einen Addenden speichert, sie zeigt jedoch keine Register, welche einen Multiplikanden und einen Multiplikator speichern. In den Bits 15-0 des 40-Bit-Registers 1 gespeicherte Daten, in den Bits 31-16 davon gespeicherte Daten und in den Bits 39-32 davon gespeicherte Daten werden als Eingangsdaten 46L, 46H bzw. 46E in die MAC-Einheit 4 eingegeben. Der Multiplikand wird als 16-Bit-Daten 45 in die MAC-Einheit 4 eingegeben, und der Multiplikator wird als 16-Bit-Daten 44 in die MAC-Einheit 4 eingegeben.
  • Die in den Bits 15-0 des 40-Bit-Registers 1 gespeicherten Daten 46L, die in den Bits 31-16 davon gespeicherten Daten 46H und die in den Bits 39-32 davon gespeicherten Daten 46E werden als Addenden oder Teile eines Addenden in die rundende MAC-Einheit 4 eingegeben. Der Multiplikand 45 und der Multiplikator 44 werden in die rundende MAC-Einheit 4 eingegeben.
  • Das Ergebnis einer Multiplikations-Akkumulations-Operation und eines Rundungsprozesses mit einem Addenden, einem Multiplikanden und einem Multiplikator werden als Ausgaben 47L, 47H bzw. 47E in das 40-Bit-Register 1 zurückgeschrieben. Die Ausgaben 47L, 47H werden als 16-Bit-Daten dargestellt, und die Ausgabe 47E wird als 8-Bit-Daten dargestellt. Die Ausgabe 47L wird an die Bits 15-0 des 40-Bit-Registers 1 ausgegeben. Die Ausgabe 47H wird an die Bits 31-16 des 40-Bit-Registers 1 ausgegeben. Die Ausgabe 47E wird an die Bits 39-32 des 40-Bit-Registers 1 ausgegeben.
  • Wie vorstehend beschrieben wurde, werden durch die rundende MAC-Einheit 4 ausgeführte Operationen durch zwei Steuersignale Runden und Position gesteuert. Das Steuersignal Position ist ein Signal zum Angeben der Position eines Addenden im 40-Bit-Register 1. Falls ein gewünschter Addend in die Bits 31-16 des 40-Bit-Registers 1 gegeben wird, sollte das Steuersignal Position auf "1" gesetzt werden, und falls ein gewünschter Addend in die Bits 15-0 des 40-Bit-Registers 1 gegeben wird, sollte das Steuersignal Position auf "0" gesetzt werden.
  • Das Steuersignal Runden ist ein Signal, das angibt, ob die rundende MAC-Einheit 4 einen Rundungsprozess ausführen soll oder nicht. Der Rundungsprozess ist ein Prozess zum Konvertieren von Daten mit einer höheren Datengröße zu Daten mit einer geringeren Datengröße (beispielsweise von 32-Bit-Daten zu 16-Bit-Daten). Ein umgekehrter Prozess, d.h. ein Prozess zum Konvertieren von Daten mit einer geringeren Datengröße zu Daten mit einer höheren Datengröße, wird als ein Erweiterungsprozess bezeichnet. Falls der Rundungsprozess auszuführen ist, wird das Steuersignal Runden auf "1" gesetzt, und falls der Rundungsprozess nicht auszuführen ist, wird das Steuersignal Runden auf "0" gesetzt.
  • Es sei eine interne Anordnung der in 4 dargestellten rundenden MAC-Einheit 4 beschrieben. Die rundende MAC-Einheit 4 weist eine MAC-Einheit 41, eine Auswahleingabe- und Erweiterungseinrichtung 42 und eine Rundungs- und Auswahlausgabeeinrichtung 43 auf.
  • Die Auswahleingabe- und Erweiterungseinrichtung 42 wählt Daten aus Eingangsdaten 46E, 46H, 46L im Register 1 aus, erweitert die ausgewählten Daten und gibt 40-Bit-Daten aus. Die Auswahleingabe- und Erweiterungseinrichtung 42 wird durch Steuersignale Position und Runden gesteuert. Die MAC-Einheit 41 führt eine Multiplikations-Akkumulations-Operation am Multiplikator 44, am Multiplikanden 45 und am Addenden aus, die von der Auswahleingabe- und Erweiterungseinrichtung 42 erzeugt werden.
  • Die Rundungs- und Auswahlausgabeeinrichtung 43 rundet eine von der MAC-Einheit 41 erzeugte Ausgabe von 40 Bits auf 16 Bits und gibt die 16-Bit-Daten an eine festgelegte Position im 40-Bit-Register 1 aus. Die Rundungs- und Auswahlausgabeeinrichtung 43 wird durch die Steuersignale Position und Runden gesteuert.
  • Die rundende MAC-Einheit 4, die auf der vorliegenden Ausführungsform beruht, ist eine Kombination der MAC-Einheit 41, der Auswahleingabe- und Erweiterungseinrichtung 42 und der Rundungs- und Auswahlausgabeeinrichtung 43, um die Behandlung von 16-Bit-Daten zu verbessern.
  • Das Verhalten der rundenden MAC-Einheit 4 auf der Grundlage der vorliegenden Ausführungsform wird mit Bezug auf 4 beschrieben. Die Auswahleingabe- und Erweiterungs einrichtung 42 erzeugt 40-Bit-Daten 48 auf der Grundlage der Eingangsdaten 46E, 46H, 46L, die durch die Steuersignale Runden und Position gesteuert vom 40-Bit-Register 1 eingegeben werden.
  • Falls das Steuersignal Runden "0" ist, wird kein Rundungsprozess ausgeführt. Die rundende MRC-Einheit 4 muss sich so verhalten, als ob sie die herkömmliche MAC-Einheit wäre. Gleichzeitig gibt die Auswahleingabe- und Erweiterungseinrichtung 42 vom 40-Bit-Register 1 als 40-Bit-Daten eingegebene Eingangsdaten 46E, 46H, 46L unverändert an die MAC-Einheit 41 aus.
  • Falls das Steuersignal Runden "1" ist, arbeitet die rundende MAC-Einheit 4, abhängig vom Steuersignal Position, verschieden. Falls das Steuersignal Runden "1" ist und das Steuersignal Position "0" ist, arbeitet die Auswahleingabe- und Erweiterungseinrichtung 42 unter der Annahme, dass der Addend in die Bits 15-0 des 40-Bit-Registers 1 gegeben ist. In diesem Fall erweitert die Auswahleingabe- und Erweiterungseinrichtung 42 den Addenden 46L von den Bits 15-0 des 40-Bit-Registers 1 zu 40-Bit-Daten und gibt die 40-Bit-Daten an die MAC-Einheit 41 aus.
  • Falls das Steuersignal Runden "1" ist und das Steuersignal Position "1" ist, arbeitet die Auswahleingabe- und Erweiterungseinrichtung 42 der rundenden MAC-Einheit 4 unter der Annahme, dass der Addend in die Bits 31-16 des 40-Bit-Registers 1 gegeben ist. In diesem Fall erweitert die Auswahleingabe- und Erweiterungseinrichtung 42 den Addenden 46H von den Bits 31-16 des 40-Bit-Registers 1 zu 40-Bit-Daten und gibt die 40-Bit-Daten an die MAC-Einheit 41 aus.
  • Die MAC-Einheit 41 berechnet ein Produkt von 16-Bit-Daten 44, 45, addiert das Produkt zu 40-Bit-Daten 48 und gibt die Summe als 40-Bit-Daten 49 aus. Schließlich rundet die Rundungs- und Auswahlausgabeeinrichtung 43 die das Ergebnis der von der MAC-Einheit 41 ausgeführten Multiplikations-Akkumulations-Operation darstellenden 40-Bit-Daten 49 und gibt das gerundete Ergebnis als 16-Bit-Daten an das 40-Bit- Register 1 aus. Die Rundungs- und Auswahlausgabeeinrichtung 43 bestimmt auf der Grundlage des Steuersignals Runden, ob die 40-Bit-Daten 49 abzurunden sind oder nicht. Die Rundungs- und Auswahlausgabeeinrichtung 43 bestimmt auf der Grundlage des Steuersignals Position, an welche Bitposition des 40-Bit-Registers 1 die gerundeten 16-Bit-Daten auszugeben sind. Falls das Steuersignal Runden "0" ist, rundet die Rundungs- und Auswahlausgabeeinrichtung 43 die 40-Bit-Daten 49 nicht, sondern zerlegt die 40-Bit-Daten 49 in Ausgaben 47E, 47H, 47L und gibt sie an das 40-Bit-Register 1 aus.
  • Falls das Steuersignal Runden "1" ist und das Steuersignal Position "0" ist, rundet die Rundungs- und Auswahlausgabeeinrichtung 43 die 40-Bit-Daten 49 zu 16-Bit-Daten, weil der Addend in die Bits 15-0 des 40-Bit-Registers 1 gegeben ist, und gibt die 16-Bit-Daten als Ausgabe 47L an die Bits 15-0 des 40-Bit-Registers 1 aus. Weil zu dieser Zeit die Ausgaben 47H, 47E nicht bearbeitet werden, werden die Daten in den Bits 39-16 des 40-Bit-Registers 1 nicht geändert.
  • Falls das Steuersignal Runden "1" ist und das Steuersignal Position "1" ist, rundet die Rundungs- und Auswahlausgabeeinrichtung 43 die 40-Bit-Daten 49 zu 16-Bit-Daten, weil der Addend in die Bits 31-16 des 40-Bit-Registers 1 gegeben ist, und gibt die 16-Bit-Daten als Ausgabe 47H an die Bits 31-16 des 40-Bit-Registers 1 aus. Weil zu dieser Zeit die Ausgaben 47L, 47E nicht bearbeitet werden, werden die Daten in den Bits 39-32 und die Bits 15-0 des 40-Bit-Registers 1 nicht geändert.
  • 5 zeigt die Art, in der die in 4 dargestellte Auswahleingabe- und Erweiterungseinrichtung 42 arbeitet. Das Verhalten der Auswahleingabe- und Erweiterungseinrichtung 42 wird mit Bezug auf 5 beschrieben. Die Auswahleingabe- und Erweiterungseinrichtung 42 dient dem Erzeugen von 40-Bit-Daten von dem 40-Bit-Register 1 abhängig davon, ob Daten abgerundet werden sollten oder nicht, und abhängig von der Position im 40-Bit-Register 1 des bei der Multiplikations-Akkumulations-Operation erforderlichen Addenden.
  • Ob Daten durch die Auswahleingabe- und Erweiterungseinrichtung 42 abgerundet werden sollten oder nicht, wird durch das Steuersignal Runden festgelegt, und die Position im 40-Bit-Register 1 des Addenden wird durch das Steuersignal Position festgelegt.
  • Falls das Steuersignal Runden "0" ist, erzeugt die Auswahleingabe- und Erweiterungseinrichtung 42 beispielsweise 40-Bit-Daten 48 von durch das 40-Bit-Register 1 eingegebenen Eingangsdaten 46E, 46H, 46L und gibt 40-Bit-Daten 48, unabhängig vom Steuersignal Position, aus. In diesem Fall werden die 16-Bit-Daten 46L als die Bits 15-0 der 40-Bit-Daten 48 dargestellt, die 16-Bit-Daten 46H als die Bits 31-16 der 40-Bit-Daten 48 dargestellt und die 8-Bit-Daten 46E als die Bits 39-32 der 40-Bit-Daten 48 dargestellt.
  • Falls das Steuersignal Runden "1" ist, arbeitet die Auswahleingabe- und Erweiterungseinrichtung 42, abhängig vom Steuersignal Position, verschieden. Falls das Steuersignal Runden "1" ist und das Steuersignal Position "0" ist, wird der Addend in die Bits 15-0 des 40-Bit-Registers 1 gegeben. Die Auswahleingabe- und Erweiterungseinrichtung 42 erweitert die 16-Bit-Daten 46L von den Bits 15-0 des 40-Bit-Registers 1 zu den 40-Bit-Daten 48.
  • Falls das Steuersignal Runden "1" ist und das Steuersignal Position "1" ist, wird der Addend in die Bits 31-16 des 40-Bit-Registers 1 gegeben. Die Auswahleingabe- und Erweiterungseinrichtung 42 erweitert die 16-Bit-Daten 46H von den Bits 31-16 des 40-Bit-Registers 1 zu den 40-Bit-Daten 48.
  • Falls die Auswahleingabe- und Erweiterungseinrichtung 42 numerische Festkommadaten behandelt, erweitert die Auswahleingabe- und Erweiterungseinrichtung 42 die 16-Bit-Daten 46L oder die 16-Bit-Daten 46H folgendermaßen zu 40-Bit-Daten 48: Zuerst gibt die Auswahleingabe- und Erweiterungseinrichtung 42 die zu erweiternden 16-Bit-Daten in die Bits 31-16 der 40-Bit-Daten 48.
  • Dann extrahiert die Auswahleingabe- und Erweiterungseinrichtung 42 ein Vorzeichenbit der zu erweiternden 16-Bit-Daten und gibt das Vorzeichenbit in die Bits 39-32 der 40-Bit-Daten 48. Weil das Vorzeichenbit gewöhnlich als 1-Bit-Informationen dargestellt wird, wird es wiederholt in die Bits 39-32 der 40-Bit-Daten 48 eingegeben. Schließlich gibt die Auswahleingabe- und Erweiterungseinrichtung 42 "0" in die Bits 15-0 der 40-Bit-Daten 48.
  • 6 zeigt die Art, in der die in 4 dargestellte Rundungs- und Auswahlausgabeeinrichtung 43 arbeitet. Das Verhalten der Rundungs- und Auswahlausgabeeinrichtung 43 wird mit Bezug auf 6 beschrieben. Der Rundungs- und Auswahlausgabeeinrichtung 43 wird das Ergebnis 49 der von der MAC-Einheit 41 ausgeführten Multiplikations-Akkumulations-Operation zugeführt.
  • Die Rundungs- und Auswahlausgabeeinrichtung 43 dient dem Ausgeben eingegebener 40-Bit-Daten 49 an das 40-Bit-Register 1, abhängig davon, ob Daten abgerundet werden sollten oder nicht, und abhängig von der Position im 40-Bit-Register 1 des bei der Multiplikations-Akkumulations-Operation verwendeten Addenden.
  • Ob Daten durch die Rundungs- und Auswahlausgabeeinrichtung 43 abgerundet werden sollten oder nicht, wird durch das Steuersignal Runden festgelegt, und die Position im 40-Bit-Register 1 des Addenden wird durch das Steuersignal Position festgelegt.
  • Falls das Steuersignal Runden "0" ist, rundet die Rundungs- und Auswahlausgabeeinrichtung 43 die 40-Bit-Daten 49 beispielsweise nicht ab, sondern gibt die 40-Bit-Daten 49 unverändert an das 40-Bit-Register 1 aus.
  • Zu dieser Zeit werden die ausgegebenen 16-Bit-Daten 47L als die Bits 15-0 der 40-Bit-Daten 49 dargestellt, die 16-Bit-Daten 47H als die Bits 31-16 der 40-Bit-Daten 49 darge stellt und die ausgegebenen 8-Bit-Daten 47E als die Bits 39-32 der 40-Bit-Daten 49 dargestellt.
  • Falls das Steuersignal Runden "1" ist, arbeitet die Rundungs- und Auswahlausgabeeinrichtung 43, abhängig vom Steuersignal Position, verschieden. Falls das Steuersignal Runden "1" ist und das Steuersignal Position "0" ist, wird der Addend in die Bits 15-0 des 40-Bit-Registers 1 gegeben. Die Rundungs- und Auswahlausgabeeinrichtung 43 rundet die 40-Bit-Daten 49 zu 16-Bit-Daten ab und gibt die 16-Bit-Daten als Ausgabe 47L an die Bits 15-0 des 40-Bit-Registers 1 aus. Zu dieser Zeit werden die Ausgaben 47H, 47E nicht ausgegeben.
  • Falls das Steuersignal Runden "1" ist und das Steuersignal Position "1" ist, wird der Addend in die Bits 31-16 des 40-Bit-Registers 1 gegeben. Die Rundungs- und Auswahlausgabeeinrichtung 43 rundet die 40-Bit-Daten 49 zu 16-Bit-Daten ab und gibt die 16-Bit-Daten als Ausgabe 47H an die Bits 31-16 des 40-Bit-Registers 1 aus. Zu dieser Zeit werden die Ausgaben 47L, 47E nicht ausgegeben.
  • Die vorliegende Ausführungsform kann modifiziert werden, um die Registerbreite und die Datengröße zu ändern, um zu ermöglichen, dass M-Bit-Register N-Bit-Daten behandeln, wobei N und M ganze Zahlen sind und N ≤ M/2 ist. Gemäß der Modifikation weist das Register 1 ein M-Bit-Register auf, weisen alle Daten 2, 4, 44, 45, 46H, 46L, 47H, 47L N-Bit-Daten auf, weisen alle Daten 46E, 47E (M – 2N)-Bit-Daten auf und weisen alle Daten 48, 49 M-Bit-Daten auf.
  • Die MAC-Einheit 41 berechnet das Produkt der N-Bit-Daten 44, 45 und addiert das Produkt zu von der Auswahleingabe- und Erweiterungseinrichtung 42 empfangenen M-Bit-Daten 48. Die von der MAC-Einheit 41 berechnete Summe 49 wird von der Rundungs- und Auswahlausgabeeinrichtung 43 abgerundet, welche N-Bit-Daten in das Register 1 zurückschreibt. Die 5 und 6 zeigen das Verhalten der Auswahleingabe- und Erweiterungseinrichtung 42 und der Rundungs- und Auswahlausgabeeinrichtung 43. Es sei bemerkt, dass die Zahl 39 in diesen Figuren angibt, dass eine Bitposition durch M – 1 ersetzt ist, dass 32 angibt, dass sie durch 2N ersetzt ist, dass 31 angibt, dass sie durch 2N – 1 ersetzt ist, dass 16 angibt, dass sie durch N ersetzt ist und dass 15 angibt, dass sie durch N – 1 ersetzt ist. Falls M = 2N ist, sind die Eingabe 46E und die Ausgabe 47E nicht erforderlich.
  • 7 zeigt ein Blockdiagramm, in dem die Multiplikations-Akkumulations-Einheit mit der auf der vorliegenden Ausführungsform beruhenden Rundungsfunktion und drei mit der Einheit verbundene Register dargestellt sind. In 7 sind die 40-Bit-Register 61, 62, 63 mit der rundenden MAC-Einheit 4 verbunden und werden die Bits 31-16 oder die Bits 15-0 der Register 62, 63 durch MUX (Multiplexer) 64, 65 ausgewählt und in die rundende MAC-Einheit 4 eingegeben. In 7 sind die Register 61, 62, 63 dafür eingerichtet, Daten aus einem Speicher (nicht dargestellt) zu lesen und Daten im Speicher zu speichern.
  • 8 zeigt Registerzustände in einer Sequenz zum Ausführen einer Multiplikations-Akkumulations-Operation an einem Addenden, einem Multiplikanden und einem Multiplikator, die jeweils 16-Bit-Daten sind, mit der in 7 dargestellten rundenden MAC-Einheit 4. Das Verhalten der rundenden MAC-Einheit 4 wird mit Bezug auf die 7 und 8 beschrieben.
  • In diesen Figuren wird angenommen, dass 16-Bit-Daten A, D aus dem Speicher in das Register 61 gelesen werden und dass der Addend A in den Bits 31-16 des Registers 61 gespeichert ist und dass ein anderer Addend D in den Bits 15-0 des Registers 61 gespeichert ist.
  • In diesem Zustand, der als Zustand 6n1 in 8 bezeichnet wird, wird eine durch A + B × C dargestellte Multiplikations-Akkumulations-Operation ausgeführt. Zu dieser Zeit sind das Steuersignal Runden und das Steuersignal Position, die der rundenden MAC-Einheit 4 zugeführt werden, "1" bzw. "0".
  • Die rundende MAC-Einheit 4 liest den Addenden A aus dem Register 61, führt eine Multiplikations-Akkumulations-Operation an dem Addenden A, dem vom MUX 64 aus dem Register 62 ausgewählten Multiplikanden B und dem vom MUX 65 aus dem Register 63 ausgewählten Multiplikator C aus und rundet das Ergebnis der Multiplikations-Akkumulations-Operation ab. Das gerundete Ergebnis wird in das Register 61 zurückgeschrieben. Zu dieser Zeit wird das Ergebnis in die Bits 31-16 des Registers 61 geschrieben, während die Daten in den Bits 15-0 des Registers 61 unverändert bleiben. Dieser Zustand ist in 8 als Zustand 6n2 bezeichnet.
  • Das Register 61 im Zustand 6n2 speichert in den Bits 31-16 bzw. den Bits 15-0 die Ergebnisse dieser Operationen A + B × C, D + E × F, nachdem sie zu 16-Bit-Daten abgerundet worden sind. Diese Daten können direkt im Speicher gespeichert werden.
  • In 7 ist das Register 61 fest mit den Daten 46L, 46H, 46E, 47E, 47H, 47L kombiniert, ist das Register 62 über den MUX 64 mit den 16-Bit-Daten 45 des Multiplikanden kombiniert und ist das Register 63 über den MUX 65 mit den 16-Bit-Daten 44 des Multiplikators kombiniert. Diese Gesamtanordnung kann jedoch modifiziert werden, um diese Kombinationen frei zu wählen.
  • Eine solche Modifikation ist besonders wirksam, um die rundende MAC-Einheit 4 in einem Signalprozessor mit mehreren Registern zu verwenden. Es ist auch möglich, die rundende MAC-Einheit 4 als eine Schaltung zu verwenden, die nicht in einem Signalprozessor enthalten ist.
  • Die Verwendung der rundenden MAC-Einheit 4 ermöglicht das Ausführen einer Multiplikations-Akkumulations-Operation an einem 16-Bit-Addenden, der in die Bits 31-16 oder in die Bits 15-0 eines Registers gegeben ist, ohne andere Bits zu beeinflussen, wie in 8 dargestellt ist. Dies ermöglicht es, dass verschiedene 16-Bit-Addenden zusammen in das Register gegeben werden, was zu einer Verringerung der Anzahl der Register führt, die für Multiplikations-Akkumulations-Operationen verwendet werden.
  • Falls die rundende MAC-Einheit 4 in einen Signalprozessor aufgenommen ist, der 32-Bit-Register oder größere Register aufweist, kann die rundende MAC-Einheit 4 Multiplikations-Akkumulations-Operationen selbst dann richtig ausführen, wenn sie gleichzeitig zwei 16-Bit-Addenden aus dem Speicher liest und sie zusammen in ein Register gibt. Folglich kann die 32-Bit-Datenübertragungsfähigkeit für die Datenübertragung zwischen dem Speicher und den Registern zu vollem Vorteil verwendet werden.
  • Die vorstehend erwähnten Vorteile seien in Bezug auf eine tatsächliche Anwendung eines LMS-Adaptivfilters (Adaptivfilter, der nach der Methode der kleinsten Quadrate arbeitet) betrachtet. Das LMS-Rdaptivfilter dient dazu, FIR-(Finite Impulse Response)-Filterkoeffizienten auf der Grundlage eines Gradientenverfahrens entsprechend einem Fehler ei zwischen einer Ausgabe yi von einem FIR-Filter (Koeffizienten wj (j = 0, 1, ..., T – 1)) mit T Abgriffen adaptiv zu aktualisieren, wobei xi ein Eingangssignal beim Zeitindex i darstellt und di ein gewünschtes Signal darstellt. Die Ausgabe yi wird berechnet, und die Koeffizienten wj werden nach den folgenden Gleichungen aktualisiert: yi = Σxi-j·wj (2) ei = di – yi (3) wj = wj + μei·xi-j (4)wobei Σ die Summe von j = 0 bis j = T – 1 darstellt, μ eine sehr kleine positive Konstante darstellt und j = 0, 1, ..., T – 1 ist.
  • Mit Bezug auf Gleichung (4) sei bemerkt, dass, sobald μei berechnet wurde, der gleiche Wert in Bezug auf alle Koeffizienten verwendet werden kann. Daher weist ein Grundprozess, der zum Aktualisieren von jedem der durch Gleichung (4) dargestellten Filterkoeffizienten erforderlich ist, die folgenden vier Schritte auf:
    • (1) Lesen von xi-j aus dem Speicher,
    • (2) Lesen von wj aus dem Speicher,
    • (3) Ausführen der Multiplikations-Akkumulations-Operation an dem Addenden wj, dem Multiplikanden μei und dem Multiplikator xi-j in der folgenden Weise: wj = wj + μei·xi-j,und
    • (4) Speichern von wj im Speicher.
  • Wenn die vorstehend erwähnten vier Schritte an Festkomma-Signalprozessoren ausgeführt werden, wird gewöhnlich jeder von xi-j, wj, ei durch 16-Bit-Daten dargestellt, und yi wird gewöhnlich durch 32-Bit-Daten oder längere Daten dargestellt. Die Datengröße wird durch Spezifikationen einer in Signalprozessoren enthaltenen Multiplikations-Akkumulations-Einheit vorgeschrieben. Weil xi-j, wj, ei, yi die vorstehend erwähnten Datengrößen aufweisen, ist die in Schritt (3) ausgeführte Multiplikations-Akkumulations-Operation eine Operation, bei der alle Daten 16 Bits breit sind.
  • Weil in den vorstehend erwähnten Grundschritten die Datenübertragung zwischen den Registern und dem Speicher in den Schritten (1), (2) und (4) 16-Bit-Übertragungsoperationen sind, ist ein Signalprozessor mit 32-Bit-Datenbussen in der Lage, mit einem Ladebefehl gleichzeitig zwei 16-Bit-Daten zu übertragen.
  • Falls die 32-Bit-Datenübertragungsfähigkeit zum Lesen von wj in Schritt (2) verwendet wird, werden zwei 16-Bit-Daten wj, wj+1 in die Bits 31-16 bzw. die Bits 15-0 eines Registers gegeben. Ein Prozessor mit der herkömmlichen Multiplikations-Akkumulations-Einheit ist nicht in der Lage, eine Multiplikations-Akkumulations-Operation an wj, wj in einem Register, das so unverändert angeordnet ist, auszuführen. Der Signalprozessor, der die rundende MAC-Einheit 4 auf der Grundlage der vorliegenden Ausführungsform aufweist, kann jedoch sofort die Multiplikations-Akkumulations-Operation an den so gespeicherten wj, wj-1 ausführen. Dadurch kann die 32-Bit-Datenübertragungsfähigkeit verwendet werden, wj, wj+1 in Schritt (4) unmittelbar nach der Multiplikations-Akkumulations-Operation im Speicher zu speichern.
  • Wie vorstehend beschrieben wurde, kann, wenn der Signalprozessor mit 32-Bit-Datenbussen eine Multiplikations-Akkumulations-Operation an 16-Bit-Daten ausführt, seine 32-Bit-Datenübertragungsfähigkeit zum Übertragen von Daten zwischen dem Speicher und den Registern infolge der rundenden MAC-Einheit 4 zu seinem vollen Vorteil verwendet werden.

Claims (6)

  1. Multiplikations-Akkumulations-Einheit mit einer Rundungsfunktion, welche aufweist: eine Multiplikations-Akkumulations-Einheit (41), die dafür eingerichtet ist, eine Multiplikations-Akkumulations-Operation an einem Addenden, einem Multiplikanden und einem Multiplikator auszuführen, eine Auswahleingabeeinrichtung (42), die dafür eingerichtet ist, einen Addenden, der von einer von mehreren Positionen eines ersten externen Registers selektiv zugeführt wird, einzugeben, gekennzeichnet durch: eine Rundungseinrichtung (43), die dafür eingerichtet ist, einen Rundungsprozess an dem Ergebnis der Multiplikations-Akkumulations-Operation auszuführen, um Daten mit einer höheren Datengröße in Daten mit einer Größe, die gleich der Größe des von der Auswahleingabeeinrichtung (42) selektiv eingegebenen Addenden ist, zu konvertieren, und eine Auswahlaungabeeinrichtung (43), die dafür eingerichtet ist, das von der Rundungseinrichtung abgerundete Ergebnis der Multiplikations-Akkumulations-Operation selektiv an eine von mehreren Positionen in einem der Register auszugeben.
  2. Einheit nach Anspruch 1, welche weiter aufweist: eine Erweiterungseinrichtung (42), die dafür eingerichtet ist, einen Erweiterungsprozess an dem von der Auswahleingabeeinrichtung selektiv eingegebenen Addenden auszuführen, um Daten mit einer geringeren Datengröße in Daten mit einer höheren Datengröße zu konvertieren, und die konvertierten Daten in die Multiplikations-Akkumulations-Einheit einzugeben.
  3. Einheit nach Anspruch 1 oder 2, wobei die Rundungseinrichtung (43) dafür eingerichtet ist, den Rundungsprozess auf der Grundlage eines von einer externen Quelle zugeführten Rundungsbefehls auszuführen.
  4. Einheit nach Anspruch 1, 2 oder 3, wobei die Auswahleingabeeinrichtung (42) dafür eingerichtet ist, die Position von aus dem Register oder aus einem der Register eingegebenen Daten auf der Grundlage eines von einer externen Quelle zugeführten Positionsbefehls zu bestimmen, und die Auswahlausgabeeinrichtung (43) dafür eingerichtet ist, die Position von an das Register oder an eines der Register ausgegebenen Daten auf der Grundlage des Positionsbefehls zu bestimmen.
  5. Einheit nach Anspruch 1, 2, 3 oder 4, welche weiter mehrere Register aufweist, die dafür eingerichtet sind, aus einer externen Quelle gelesene Daten zu halten.
  6. Signalprozessor, welcher aufweist: eine Anzahl von Registern, die dafür eingerichtet sind, Daten zu speichern, wobei mindestens ein erstes der Register mehrere Positionen aufweist, und die Multiplikations-Akkumulations-Einheit nach einem der Ansprüche 1 bis 5, wobei der Addend in das erste der Register eingegeben ist, der Multiplikand in ein zweites der Register eingegeben ist und der Multiplikator in ein drittes der Register eingegeben ist.
DE60035999T 1999-02-03 2000-02-03 Signalprozessor und Produkt-Summier-Vorrichtung mit Rundungsfunktion Expired - Lifetime DE60035999T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP02567499A JP3336986B2 (ja) 1999-02-03 1999-02-03 信号処理プロセッサ及びそれに用いる丸め機能付き積和演算器
JP2567499 1999-02-03
PCT/JP2000/000584 WO2000046692A1 (fr) 1999-02-03 2000-02-03 Processeur de signaux et additionneur-multiplicateur a fonction d'arrondi utilise dans ce dernier

Publications (2)

Publication Number Publication Date
DE60035999D1 DE60035999D1 (de) 2007-09-27
DE60035999T2 true DE60035999T2 (de) 2007-12-20

Family

ID=12172340

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60035999T Expired - Lifetime DE60035999T2 (de) 1999-02-03 2000-02-03 Signalprozessor und Produkt-Summier-Vorrichtung mit Rundungsfunktion

Country Status (6)

Country Link
US (1) US6792442B1 (de)
EP (1) EP1197874B1 (de)
JP (1) JP3336986B2 (de)
CA (1) CA2361451A1 (de)
DE (1) DE60035999T2 (de)
WO (1) WO2000046692A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3984790B2 (ja) * 2001-01-15 2007-10-03 日本電気株式会社 ビタビ復号処理装置
JP2006215611A (ja) * 2005-02-01 2006-08-17 Sony Corp 演算装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59197936A (ja) 1983-04-25 1984-11-09 Fujitsu Ltd デイジタル信号処理方式
US4876660A (en) * 1987-03-20 1989-10-24 Bipolar Integrated Technology, Inc. Fixed-point multiplier-accumulator architecture
US5363322A (en) * 1991-04-02 1994-11-08 Motorola, Inc. Data processor with an integer multiplication function on a fractional multiplier
JP3166781B2 (ja) 1991-07-12 2001-05-14 新日本製鐵株式会社 加算回路
FR2693287B1 (fr) 1992-07-03 1994-09-09 Sgs Thomson Microelectronics Sa Procédé pour effectuer des calculs numériques, et unité arithmétique pour la mise en Óoeuvre de ce procédé.
JPH08137669A (ja) 1994-11-04 1996-05-31 Fujitsu Ltd 演算回路
CN102073475B (zh) * 1995-08-31 2015-05-13 英特尔公司 控制移位分组数据的位校正的装置
US5862067A (en) * 1995-12-29 1999-01-19 Intel Corporation Method and apparatus for providing high numerical accuracy with packed multiply-add or multiply-subtract operations
JPH09274612A (ja) 1996-04-05 1997-10-21 Hitachi Ltd ベクトル処理装置
JP3767085B2 (ja) 1996-09-04 2006-04-19 セイコーエプソン株式会社 情報処理回路及びマイクロコンピュータ
GB2317465B (en) * 1996-09-23 2000-11-15 Advanced Risc Mach Ltd Data processing apparatus registers.

Also Published As

Publication number Publication date
WO2000046692A1 (fr) 2000-08-10
JP2000222174A (ja) 2000-08-11
US6792442B1 (en) 2004-09-14
EP1197874A1 (de) 2002-04-17
EP1197874A4 (de) 2005-02-09
EP1197874B1 (de) 2007-08-15
JP3336986B2 (ja) 2002-10-21
CA2361451A1 (en) 2000-08-10
DE60035999D1 (de) 2007-09-27

Similar Documents

Publication Publication Date Title
DE69430838T2 (de) Schaltung und Verfahren zur parallelen Verschiebung und Addition
DE60210494T2 (de) Hochgeschwindigkeitsberechnung in einer arithmetik- und logikschaltung
DE69229324T2 (de) Arithmetik-Logik-Einheit
DE69811877T2 (de) ARITHMETISCHER PROZESSOR, der endliche Felder Arithmetik und ganzzahlige modular Arithmetik kombiniert.
DE112008002158B4 (de) Verfahren und System zur Multiplikation großer Zahlen
DE60116742T2 (de) Digitaler signalprozessor mit gekoppelten multiplizier-addier einheiten
DE3875979T2 (de) Schaltung zur berechnung des quantisierten koeffizienten der diskreten cosinustransformation von digitalen signalabschnitten.
DE69033444T2 (de) Signalprozessor mit einer arithmetischen und logischen Einheit und einer Multiplizier-Akkumulatoreinheit, die gleichzeitig betrieben werden können
DE19540102C2 (de) Verfahren und Gleitkomma-Recheneinheit mit einer Logik für eine Vierfach-Präzisions-Arithmetik
DE3424962C2 (de)
DE69324730T2 (de) Multiplizier-Akkumulator
DE69435047T2 (de) Schaltung und Verfahren zur parallelen Addition und Mittelwertbildung
DE10297000T5 (de) Verfahren und Vorrichtung zur parallelen Datenverschiebung nach rechts mit Datenzusammenfügung
DE3632639C2 (de) Einrichtung zum Hochgeschwindigkeitsverarbeiten von Bilddaten durch Faltung
DE102007014808A1 (de) Multiplizier- und Multiplizier- und Addiereinheit
DE102014002510A1 (de) Präzise Ausnahmesignalisierung für Mehrfachdatenarchitektur
DE4403917A1 (de) Vorrichtung zum Berechnen einer Besetzungszählung
DE69500410T2 (de) Arithmetische und logische Rechnungseinrichtung und Steuerungsverfahren
DE69519448T2 (de) Digitale Verarbeitungsanlage mit Befehlen zum Suchen des Minimums und Maximums
DE10025249C2 (de) Verfahren zur Ausführung sowohl von Divisions- als auch Restbefehlen und Datenverarbeitungsgerät, welches das Verfahren anwendet
DE19746054B4 (de) Verfahren und Vorrichtung zum Ausführen einer Operation mit doppelter Genauigkeit
DE60035999T2 (de) Signalprozessor und Produkt-Summier-Vorrichtung mit Rundungsfunktion
DE3486073T2 (de) Vektorverarbeitungsgeraet.
DE69229212T2 (de) Datensignalverarbeitungsgerät
DE2746355A1 (de) Einrichtung und verfahren zur wahlweisen multiplikation oder division zweier als binaerzahlen vorliegender operanden

Legal Events

Date Code Title Description
8381 Inventor (new situation)

Inventor name: KUMURA, TAKAHIRO, TOKYO, JP

8364 No opposition during term of opposition