-
Die vorliegende Erfindung betrifft generell eine
Digitalsignalverarbeitungsvorrichtung zum Durchführen von
Digitalsignalverarbeitungsvorgängen, die entsprechend einem
Digitalsignalverarbeitungs-Algorithmus an einem empfangenen Signal
vorgenommen werden.
-
Digitalsignalverarbeitungsvorrichtungen werden bei zahlreichen
Arten digitaler Systeme verwendet, wie z. B. bei Rechengeräten
und Digitaltelephonen. Digitalsignalverarbeitungsvorgänge
werden generell an Mehr-Bit-Operanden vorgenommen, und zu diesen
Vorgängen zählen Operandenverschiebungen,
Operandenmaskierungen, Force-Zero-Vorgänge, Operandenaddierung,
Operandensubtraktion, Operandenmultiplikation und Überlaufdetektion und
-korrektur.
-
Digitalsignalverarbeitungsvorrichtungen müssen bei zahlreichen
Anwendungsfällen in der Lage sein, eine Digitalmultiplikation
und -akkumulation durchzuführen. Bei einem dieser
Anwendungsfälle handelt es sich um die Implementierung der Empfehlung
G.721 für den Bereich schnurloses tragbarer Telephone. Eine
gemäß der Empfehlung G.721 verlangte Funktion ist die
Durchführung acht serieller Multiplikationen acht unterschiedlicher
Paare erster und zweiter Mehr-Bit-Operanden und die
Akkumulation der Multiplikationsprodukte. Ferner verlangt die
Empfehlung G.721, daß zur Durchführung dieser Funktion ein Satz von
Operanden in einem Festkommaformat vorliegt, der zweite Satz
von Operanden in einem Festkommaformat vorliegt und das
akkumulierte Produkt in einem Festkommaformat vorliegt.
-
Digitalsignalverarbeitungsvorrichtungen führen derartige
Operationen generell unter Steuerung durch Betriebsinstruktionen
durch, die aus einem Instruktionsspeicher wie z. B. einem
Instruktions-Nurlesespeicher (IROM) empfangen werden. Jede von
dem Instruktionsspeicher ausgegebene Instruktion entspricht
einem Betriebszyklus der
Digitalsignalverarbeitungsvorrichtung. Die Anzahl der Betriebszyklen, die von einer
Digitalsignalverarbeitungsvorrichtung zur Durchführung ihrer Funktionen
verlangt werden, ist sehr wichtig und sollte auf der
niedrigstmöglichen Anzahl von Betriebszyklen gehalten werden, auf
der eine hocheffiziente Verarbeitung möglich ist.
-
Eine hocheffiziente Leistung einer
Digitalsignalverarbeitungsvorrichtung ist dann am meisten wünschenswert, wenn die
Betriebsgeschwindigkeit wichtig ist, wie z. B. bei einem
tragbareb Gerät, das aus einer erschöpfbaren Energiequelle wie etwa
eeiner Batterie gespeist wird. Wenn die Anzahl der
Betriebszyklen, die von einer Digitalsignalverarbeitungsvorrichtung
verlangt wird, damit diese ihre Operationen durchführen kann,
reduziert wird, wird entsprechend der der
Digitalsignalverarbeitungsvorrichtung zuzuschreibende Stromverbrauch der
erschöpfbaren Energiequelle reduziert. Damit wird im Ergebnis
die Betriebsdauer der tragbaren Apparatur verlängert, bevor
ein Batterieaustausch oder ein Neuladen der Batterie
erforderlich ist.
-
Im folgenden wird eine verbesserte
Digitalsignalverarbeitungsvorrichtung beschrieben, die eine Anzahl unterschiedlicher
digitaler arithmetischer Operationen auf effiziente Weise
durchführen kann und somit nur eine reduzierte Anzahl von
Betriebszyklen verlangt. Bei der bevorzugten Ausführungsform der
vorliegenden Erfindung wird die Verarbeitungsgeschwindigkeit
ferner dadurch verbessert, daß eine Multiplikationseinrichtung
und eine Begrenzungs- und Quantisierungsschaltung innerhalb
der Vorrichtung derart parallelgeschaltet sind, daß der
Betrieb der Multiplikationseinrichtung und der Begrenzungs- und
Quantisierungsschaltung parallel mit der von der Vorrichtung
durchgeführten logischen Verarbeitung ermöglicht wird. Bei
herkömmlichen Digitalsignalprozessoren müßte die Anzahl der
Instruktionsbits erhöht werden, um derartige parallele
Operationen handhaben zu können, da zusätzliche instruktionsmäßige
Information erforderlich wäre, um mehrere simultane (d. h.
parallele) Operationen zu steuern. Eine solche Vermehrung der
Instruktions-Bits wird bei der bevorzugten Ausführungsform der
vorliegenden Erfindung vermieden, in das Adress-Bus-System der
Vorrichtung mit den parallelgeschalteten Komponenten verbunden
wird und die Instruktionen an die parallelgeschalteten
Komponenten zumindest teilweise mittels vorbestimmter
Adressinformation über das Adressbus-System übermittelt werden.
-
Im folgenden wird eine Vorrichtung beschrieben, die zum
Verarbeiten empfangener Signale gemäß einem Signalverarbeitungs-
Algorithmus dient, welcher durch mehrere Instruktionen
implementiert wird. Die Vorrichtung weist eine Steuerschaltung auf,
um den Betrieb der Vorrichtung zu steuern und um die
Instruktionen gemäß einem vorbestimmten Programm auf einem
Instruktionsbussystem auszugeben. Ferner enthält die Vorrichtung eine
logische Verarbeitungsschaltung zum Ausführen der logischen
Verarbeitung des empfangenen Signals auf einem dritten Typ
zugehörige gewählte Instruktionen der mehreren Instruktionen
hin; die logische Verarbeitungsschaltung ist betriebsmäßig mit
dem Instruktionsbussystem verbunden und weist mehrere
Datenbusse auf, um Daten innerhalb der Vorrichtung zu übermitteln,
wobei das empfangene Signal von mindestens einem Datenbus der
mehreren Datenbusse empfangen wird. Die Vorrichtung weist
ferner eine Multiplikationsschaltung zum Multiplizieren von
Zahlen auf, die betriebsmäßig mit dem Instruktionsbussystem
verbunden ist; die Multiplikationsschaltung führt die
Multiplikation als Reaktion auf einen zweiten Typ gewähler Instruktionen
der mehreren Instruktionen durch. Ferner ist die
Multiplikationsschaltung betriebsmäßi mit mindestens zwei Datenbusssen
der mehreren Datenbusse derart verbunden, daß die
Multiplikationsschaltung in die Lage versetzt wird, parallel und
gleichzeitig mit der logischen Verarbeitungsschaltung zu arbeiten.
Ferner enthält die Vorrichtung mehrere Registereinheiten zum
Speichern von Information, wobei jede der Registereinheiten
auf ein Adressanzeigesignal, das die vorbestimmte
Speicherstelle identifiziert, diese Speicherung an einer vorbestimmten
Stelle durchführt. Das Adressanzeigesignal wird von jeweiligen
Registereinheiten gemäß einem vorbestimmten Programm über ein
Adressbussystem empfangen. Die mehreren Registereinheiten
reagieren auf einem dritten Typ zugehörige gewählte Instruktionen
der mehreren Instruktionen, wobei die Instruktione des dritten
Typs über das Instruktionsbussystem aus der Steuerschaltung
empfangen werden.
-
Die gewählten Instruktionen des zweiten Typs, die den Betrieb
der Multiplikationseinrichtung steuern, sind zumindest
teilweise durch gewählte Adressinformation repräsentiert, die aus
der Steuerschaltung über das Adressbussystem an die
Multiplikationseinrichtung ausgegeben wird.
-
Die Vorrichtung kann ferner eine Begrenzungs- und
Quantisierungsschaltung enthalten, um Daten zu quantisieren und die
Begrenzungen von Daten, die ihr zugeführt werden, zu
bestimmen. Die Begrenzungs- und Quantisierungsschaltung ist
betriebsmäßig mit dem Instruktionsbussystem verbunden und führt
ihre Operationen auf die dem zweiten Typ zugehörigen
Instruktionen der mehreren Instruktionen durch. Die Begrenzungs- und
Quantisierungsschaltung ist betriebsmäßig mit mindestens zwei
Datenbussen der mehreren Datenbusse derart verbunden, daß die
Begrenzungs- und Quantisierungsschaltung in der Lage ist,
parallel und gleichzeitig mit der logischen
Verarbeitungsschaltung zu arbeiten. Die gewählten Instruktionen des zweiten
Typs, die den Betrieb der Begrenzungs- und
Quantisierungs
schaltung steuern, sind zumindest teilweise durch bestimmte
Adressinformation repräsentiert, die aus der Steuerschaltung
über das Adressbussystem an die Begrenzungs- und
Quantisierungsschaltung ausgegeben wird.
-
Die Erfindung ist gemäß den beigefügten unabhängigen Anspruch
1 vorgesehen.
-
Die zugehörige Zeichnung dient lediglich als Beispiel.
-
Fig. 1 zeigt ein schematisches Blockschaltbild einer
Digitalsignalverarbeitungsvorrichtung gemäß der vorliegenden
Erfindung.
-
Fig. 1 zeigt in Form eines schematischen Blockschaltbilds eine
Digitalsignalverarbeitungsvorrichtung 10 mit einer
arithmetischen Logikeinheit 12, einem Instruktionsspeicher (IROM) 14
und einem angeschlossenen Sequenzer 16, einem Datenspeicher
18, einem Lesepuffer 20, einem Schreibpuffer 22, einem
Konstantenspeicher 24, einem Multiplikationsabschnitt 26, und
einem Begrenzungs- und Quantisierungsabschnitt 28.
-
Die Digitalsignalverarbeitungsvorrichtung 10 führt die
Digitalsignalverarbeitung unter Steuerung durch den
Instruktionsspeicher 14 durch, der während jedes Betriebszyklus der
Digitalsignalverarbeitungsvorrichtung 10 eine Betriebsinsruktion
ausgibt. Der Instruktionsspeicher 14 wird durch den
Sequenzierer 16 derart sequenziert, daß er unter Steuerung durch den
Sequenzierer 16 Betriebsinsruktionen, und zwar jedes Mal eine,
ausgibt. Die Instruktionen werden durch den
Instruktionsspeicher 14 über einen 8-Bit-Adressbus 30, einen 3-Bit-Schiebe-
/Maskierungs-Steuerbus 32, und Steuerleitungen 34 und 36
ausgegeben. Der Adressbus 30 ist verbunden mit einem
Adressdekodierer 38, der Adressen für den Datenspeicher 18 dekodiert,
einem Adressdekodierer 40, der Adressen für den
Konstantenspeicher 24 dekodiert, dem Multiplikationsabschnitt 26 und dem
Begrenzungs- und Quantisierungsabschnitt 28. Die Steuerleitung
34 gibt ein Steuersignal aus, um zu veranlassen, daß die Mehr-
Bit-Daten an dem Eingang 78 des Summierers 44
zweier-komplementiert werden, und eine Streuerleitung 36 gibt ein
Aktivierungssignal aus, das von dem Multiplexer 116 verwendet wird.
-
Der Adressbus 30 ist dem Multiplikationsabschnitt 26 und dem
Begrenzungs- und Quantisierungsabschnitt 28 verbunden, damit
der Multiplikationsabschnitt 26 und der Begrenzungs- und
Quantisierungsabschnitt 28 Adressinformation empfangen können.
Indem der Multiplikationsabschnitt 26 und der Begrenzungs- und
Quantisierungsabschnitt 28 derart konfiguriert sind, daß sie
betriebsmäßig auf bestimmten vorgewählte Adressinformation
reagieren, brauchen keine zusätzlichen Informationsbits durch
ein Instruktionsbussystem gehandhabt zu werden (nicht in
seiner Gesamtheit gezeigt; repräsentiert durch den Steuerbus 32
und die Steuerleitungen 34,36), um einen mit der
arithmetischen Logikeinheit 12 parallelen Betrieb des
Multiplikationsabschnitts 26 und des Begrenzungs- und Quantisierungsabschnitt
28 zu ermöglichen.
-
Die arithmetische Logikeinheit 12 enthält ein Schieberegister
42, einen Summierer 44, einen Überlaufdetektor 46 und eine
Überlaufkorrektureinrichtung 48. Die arithmetische
Logikeinheit 12 enthält ferner einen Akkumulator 50, einen Puffer 52,
eine Steuerung 54 für das Schieberegister 42, und erste und
zweite Busse 56 bzw. 58.
-
Der Lesepuffer 20 ist mit dem Datenspeicher 18 und den ersten
und zweiten Bussen 56 bzw. 58 durch CMOS-Übertragungsgatter 60
bzw. 62 verbunden. Derartige CMOS-Übertragungsgatter sind auf
dem Gebiet gut bekannt, und, wie weithin geläufig, erzeugen
sie bei Aktivierung einen Niedrigimpedanzweg und bei
Deaktivierung einen Hochimpedanzweg oder eine Isolation. Weitere
derartige Übertragungsgatter, die im folgenden erwähnt werden,
weeden einfach als Übertragungsgatter bezeichnet.
-
Der Schreibpuffer 22 ist mit dem Datenspeicher 18 und mit
ersten und zweiten Bussen 56 bzw. 58 durch Übertragungsgatter 64
bzw. 66 verbunden. Das Schieberegister 42 ist vorzugsweise ein
unidirektionales Schieberegister, um die Mehr-Bit-Daten als
Reaktion auf Schiebe-/Maskierungs-Steuersignale, die über den
Bus 32 ausgegeben werden, um eine Anzahl von Bits nach rechts
zu verschieben. Das unidirektionale Schieberegister 42 hat
einen Eingang 68, der durch ein Übertragungsgatter 70 mit dem
ersten Bus 56 verbunden ist. Der Eingang 68 ist ein Mehr-Bit-
Eingang zum Empfnag von Mehr-Bit-Operanden-Daten aus dem
ersten Bus 56. Das unidirektionale Schieberegister 42 hat ferner
einen ersten Steuereingang 72, der mit der Steuerung 54
verbunden ist, und einen zweiten Steuereingang 74, der mit der
Steuerung 54 verbunden ist. Schließlich hat das
unidirektionale Schieberegister 42 einen Ausgang 76, der ein
Mehr-Bit-Ausgang zum Übertragen von Mehr-Bit-Operanden-Daten an einen
ersten Eingang 78 des Summierers 44 ist.
-
Der Summierer 44 hat zusätzlich zu dem ersten Eingang 78 einen
zweiten Eingang 80, der durch ein Übertragungsgatter 82 mit
dem zweiten Bus 58 verbunden ist. Der Summierer 44 hat einen
Mehr-Bit-Ausgang 84, der mit einem Mehr-Bit-Eingang 86 einer
Überlaufkorrektureinrichtung 48 verbunden ist.
-
Der Überlaufdetektor 46 hat einen ersten Eingang 88, der mit
dem ersten Eingang 78 des Summierers 44 verbunden ist, einen
zweiten Eingang 90, der mit dem zweiten Eingang 80 des
Summierers 44 verbunden ist, und einen dritten Eingang 92, der mit
dem Ausgang 84 des Summierers 44 verbunden ist. Der
Überlaufdetektor 46 hat ferner einen Ausgang 94, der mit einem
Steuereingang 96 der Überlaufkorrektureinrichtung 48 verbunden ist.
Die Überlaufkorrektureinrichtung 48 hat einen Mehr-Bit-Ausgang
98, der durch ein Übertragungsgatter 103 mit einem Mehr-Bit-
Eingang 100 des Akkumulators 50 verbunden ist.
-
Der Akkumulator 50 ist ein Mehr-Bit-Akkumulator, wobei das Bit
höchster Signifikanz des Akkumulators vorzugsweise ein
Vorzeichen-Bit für die in diesem zu speichernden Mehr-Bit-Operanden-
Daten ist. Der Akkumulator 50 hat einen Ausgang 102, der den
Wert des Vorzeichen-Bits der in dem Akkumulator gepeicherten
Mehr-Bit-Operanden-Daten liefert, und einen Mehr-Bit-Ausgang
104, der über ein Übertragungsgatter 106 mit dem ersten Bus 56
verbunden ist.
-
Der Kurzzeitpuffer 52 hat einen Mehr-Bit-Eingang 108, der
durch ein Übertragungsgatter 110 mit dem Ausgang 98 der
Überlaufkorrektureinrichtung 48 verbunden ist. Der Kurzzeitpuffer
52 hat einen Mehr-Bit-Ausgang 112, der durch ein
Übertragungsgatter 114 mit dem zweiten Bus 58 verbunden ist. Die
arithmetische Logikeinheit 12 enthält ferner einen Multiplexer 116,
der so konfiguriert und geschaltet ist, daß einer eine Zweier-
Komplement-Inversions-Steuereinrichtung bildet. Der
Multiplexer 116 hat einen ersten Eingang 118, der mit dem Ausgang 1ß02
des Akkumulators 50 verbunden ist, einen zweiten Eingang 120,
der mit der Steuerleitung 34 verbunden ist, und einen Ausgang
122, der mit einem Eingang 124 des Summierers 44 verbunden
ist.
-
Der Multiplikationsabschnitt 26 hat zusätzlich dazu, daß er
mit dem Bus 30 verbunden ist, einen Eingang 126, der durch ein
Übertragungsgatter 128 mit dem ersten Bus 56 verbunden ist,
einen zweiten Eingang 130, der durch ein Übertragungsgatter
132 mit dem zweiten Bus 58 verbunden ist, und einen Ausgang
134, der durch ein Übertragungsgatter 136 mit dem zweiten Bus
58 verbunden ist.
-
In ähnlicher Weise hat der Begrenzungs- und
Quantisierungsabschnitt 28 zusätzlich dazu, daß er mit dem Bus 30 verbunden
ist, einen Eingang 138, der durch ein Übertragungsgatter 140
mit dem ersten Bus 56 verbunden ist, einen weiteren Eingang
142, der durch ein Übertragungsgatter 144 mit dem zweiten Bus
58 verbunden ist, und einen Ausgang 146, der durch ein
Übertragungsgatter 148 mit dem ersten Bus 56 verbunden ist.
-
Die Digitalsignalverarbeitungsvorrichtung 10 führt Operationen
an Mehr-Bit-Operanden-Daten aus, die vorzugsweise bis zu
neunzehn Bits enthalten, wobei das Bit höchster Signifikanz das
Vorzeichen-Bit der Mehr-Bit-Operanden-Daten ist und die
übrigen achtzehn Bits als Größen-Bits verfügbar sind. Ferner ist
gemäß dieser bevorzugten Ausführungsform das unidirektionale
Schieberegister 42 derart konfiguriert, daß es die Mehr-Bit-
Operanden-Daten um bis zu sieben Bits nach rechts verschiebt
und bis zu acht aufeinanderfolgende Bit der Bits niedrigster
Signifikanz der Mehr-Bit-Operanden-Daten maskiert. Zudem ist
das unidirektionale Schieberegister 42 derart konfiguriert,
daß es das Vorzeichen-Bit der Mehr-Bit-Operanden-Daten auf
einen vorbestimmten Wert von z. B. Null zwingt. Der Summierer
44 ist in Verbindung mit dem Multiplexer 116 derart
konfiguriert, daß er einen Operanden an seinem ersten Eingang 78
einem Operanden an seinem zweiten Eingang 80 hinzuaddiert, einen
Operanden an seinem ersten Eingang 78 von einem Operanden an
seinem zweiten Eingang 80 subtrahiert und eine
Zweier-Komplement-Inversions-Operation an einem Operanden an seinem ersten
Eingang 78 vornimmt. Gemäß auf dem Gebiet bekannter Techniken
führt das Schieberegister 42 ferner eine
Vorzeichen-Erweiterung auf die Bits höchster Signifikanz derjenigen Operanden
durch, die es nach rechts verschiebt.