DE69800593T2 - Mehrkanalregister für Koeffizienten in Filtern - Google Patents
Mehrkanalregister für Koeffizienten in FilternInfo
- Publication number
- DE69800593T2 DE69800593T2 DE69800593T DE69800593T DE69800593T2 DE 69800593 T2 DE69800593 T2 DE 69800593T2 DE 69800593 T DE69800593 T DE 69800593T DE 69800593 T DE69800593 T DE 69800593T DE 69800593 T2 DE69800593 T2 DE 69800593T2
- Authority
- DE
- Germany
- Prior art keywords
- register file
- buffer
- channel register
- coefficient value
- memory
- 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
Links
- 230000015654 memory Effects 0.000 claims description 29
- 239000000872 buffer Substances 0.000 claims description 22
- 238000001514 detection method Methods 0.000 claims description 21
- 238000000034 method Methods 0.000 claims description 14
- 230000003044 adaptive effect Effects 0.000 claims description 7
- 230000000295 complement effect Effects 0.000 claims description 6
- 230000001960 triggered effect Effects 0.000 claims description 5
- 230000003139 buffering effect Effects 0.000 claims 1
- 230000006870 function Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 4
- 238000001914 filtration Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03H—IMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
- H03H21/00—Adaptive networks
- H03H21/0012—Digital adaptive filters
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03H—IMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
- H03H17/00—Networks using digital techniques
- H03H17/02—Frequency selective networks
- H03H17/0223—Computation saving measures; Accelerating measures
- H03H17/0227—Measures concerning the coefficients
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03H—IMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
- H03H17/00—Networks using digital techniques
- H03H17/02—Frequency selective networks
- H03H17/0248—Filters characterised by a particular frequency response or filtering method
- H03H17/0264—Filter sets with mutual related characteristics
- H03H17/0266—Filter banks
- H03H17/0269—Filter banks comprising recursive filters
Landscapes
- Complex Calculations (AREA)
- Filters That Use Time-Delay Elements (AREA)
Description
- Die vorliegende Erfindung betrifft Mehrkanalregisterfiles und Verfahren zur Verwendung eines Mehrkanalregisterfile in Verbindung mit einem adaptiven FIR-Filter.
- Adaptive Filter mit endlicher Impulsantwort (FIR-Filter) des Stands der Technik verwenden feste Verzögerungsleitungen zur Zirkulation der Koeffizienten. Solche Verzögerungsleitungen werden unter Verwendung einer Reihe flankengetriggerter Flipflops implementiert. Als Folge verbrauchen die Verzögerungsleitungen des Stands der Technik mehr Strom als wünschenswert ist.
- In der gleichzeitig anstehenden US-Patentanmeldung mit der Laufnummer 08/937665 (entsprechend BP 98307221.6) dienen Mehrkanalregisterfiles zur Implementierung der Koeffizientenspeicherung und zur Bereitstellung der Verzögerungen in den Koeffizienten, die für den Filterbetrieb notwendig sind. Ein Mehrkanalregisterfile ist ein Speicher, der in der Regel klein ist, z. B. mit einer Kapazität für vier Wörter, mit mindestens einem Leseport und einem Schreibport. In das Mehrkanalregisterfile geschriebene Daten können aus diesem in jeder beliebigen Reihenfolge herausgelesen werden. Das Mehrkanalregisterfile kann zusätzliche Ausgangsports aufweisen, aus denen darin gespeicherte Daten ebenfalls in jeder gewünschten Reihenfolge und unabhängig von der Reihenfolge jeglicher anderer Ausgangsports herausgelesen werden können. In bezug auf Koeffizienten führt jedes Mehrkanalregisterfile Daten aus einem Ausgangsport dem Multiplizier-/Addier-Teil seiner zugeordneten Stufe des FIR-Filters zu. In bezug auf ein adaptives Filter führt jedes Mehrkanalregisterfile Daten aus einem anderen Ausgang der Aktualisierungseinheit für diesen Koeffizienten zu. Man beachte, daß diese Ausgangsports gleich sein können, und andernfalls können die ihnen zugeführten Daten gleich sein. Bei der Verwendung für Koeffizienten ist es nicht notwendig, das Mehrkanalregisterfile in der Lookthrough-Betriebsart zu betreiben, die in der gleichzeitig anstehenden Anmeldung beschrieben wird.
- Wenn das FIR-Filter ein adaptives Filter mit aktualisierbaren Koeffizienten ist, ist es notwendig, über eine Aktualisierungseinheit zu verfügen, die neue Koeffizientenwerte berechnet. Eine solche Aktualisierungseinheit enthält eine Überlauf-/ Unterlauf-Erkennungs- und/oder Sättigungseinheit, mit der katastrophale Fehler in dem Filter verhindert werden, die auftreten könnten, wenn ein Überlauf oder Unterlauf stattfindet, oder ist dieser zugeordnet. Solche Fehler können aufgrund der Beschaffenheit herkömmlicher Verfahren zur Durchführung von Arithmetik unter Verwendung von Binärzahlen auftreten. Wenn zum Beispiel zwei große positive Zahlen, die unter Verwendung der Zweierkomplementdarstellung dargestellt werden, addiert werden, könnte das Ergebnis als eine negative Zahl erscheinen, was offensichtlich falsch ist. Eine Überlauf-/Unterlauf-Erkennungseinheit und/oder Sättigung verhindert dieses Problem, indem als Ausgabe abhängig von ihrer Ausführung eines von folgendem zugeführt wird: a) Flags, die anzeigen, ob ein Überlauf oder Unterlauf aufgetreten ist; b) ein Wert, der die größte darstellbare positive oder negative Zahl als einen Sättigungswert darstellt; oder c) das tatsächliche Ergebnis der Berechnung. Diese Überlauf-/Unterlauf- Erkennungs- und/oder Sättigungseinheit liegt in dem kritischen Weg der Koeffizientenaktualisierungsschaltkreise, d. h. liegt in dem Weg, der die maximale Geschwindigkeit bestimmt, mit der die Aktualisierung durchgeführt werden kann. Die Geschwindigkeit, mit der der Überlauf-/Unterlauf-Erkennungs- und/oder Sättigungsprozeß durchgeführt werden kann, begrenzt somit die Geschwindigkeit des Aktualisierungsprozesses.
- Patent Abstracts of Japan, Publikation Nr. 62284512 zeigt die Verwendung eines Mehrkanalspeichers in einem digitalen Filter.
- Gemäß einem Aspekt der vorliegenden Erfindung wird ein Mehrkanalregisterfile nach Anspruch 1 bereitgestellt.
- Gemäß einem weiteren Aspekt der vorliegenden Erfindung wird ein Verfahren nach Anspruch 5 bereitgestellt.
- Die Verfasser haben festgestellt, daß verbesserte Mehrkanalregisterfiles zur Speicherung von Koeffizienten in adaptiven FIR-Filtern verwendet werden können. Die Mehrkanalregisterfiles der gleichzeitig anstehenden Anmeldung des Stands der Technik werden dadurch verbessert, daß in sie rechnerische Fähigkeiten, z. B. die Fähigkeit zur Durchführung der Berechnung an Koeffizientenwerten oder ihren Ableitungen oder zur Steuerung der an ihnen durchgeführten Operationen integriert werden. Bei einer Ausführungsform enthält das Mehrkanalregisterfile eine Überlauf-/Unterlauf-Erkennungs- und/oder Sättigungseinheit. Bei einer anderen Ausführungsform enthält das Mehrkanalregisterfile einen speziellen Codierer, mit dem der Multiplikationsprozeß beschleunigt wird, z. B. den sogenannten "Booth"-Codierer. Bei noch einer anderen Ausführungsform enthält das Mehrkanalregisterfile einen Umsetzer zum Wechseln der Darstellung der Koeffizienten, z. B. einen Zweierkomplement/Vorzeichen- Betrag-Umsetzer. Alle in dem Mehrkanalregisterfile durchgeführten Berechnungen können außerhalb des kritischen Wegs der Filterung oder der Koeffizientenaktualisierung durchgeführt werden. Unter Verwendung solcher verbesserter Mehrkanalregisterfiles können vorteilhafterweise adaptive FIR-Filter aufgebaut werden, die schneller und mit geringerer Stromaufnahme als die der gleichzeitig anstehenden Anmeldung des Stands der Technik arbeiten.
- Es zeigen:
- Fig. 1 ein beispielhaftes Mehrkanalregisterfile, das zur Speicherung von Koeffizienten in einem Filter mit endlicher Impulsantwort (FIR-Filter) verwendet werden kann;
- Fig. 2 eine vereinfachte Ansicht des Mehrkanalregisterfiles von Fig. 1 zusammen mit einer Koeffizientenaktualisierungseinheit und einer Koeffiziententaktung;
- Fig. 3 ein Impulsdiagramm für den Betrieb der vereinfachten Ansicht des Mehrkanalregisterfiles von Fig. 1; und
- Fig. 4 eine Ausführungsform der
- Überlauf/Unterlauf-Erkennungs- und/oder Sättigungseinheit zur Verwendung in dem Mehrkanalregisterfile von Fig. 1.
- Fig. 1 zeigt ein beispielhaftes Mehrkanalregisterfile, das zur Speicherung von Koeffizienten in einer Stufe eines Filters mit endlicher Impulsantwort (FIR-Filters) verwendet werden kann.
- Ein Mehrkanalregisterfile ist ein Speicher, der in der Regel klein ist, z. B. mit einer Kapazität von vier Wörtern, mit mindestens einem Leseport und einem Schreibport. In das Mehrkanalregisterfile geschriebene Daten können aus diesem in jeder beliebigen Reihenfolge herausgelesen werden. Das Mehrkanalregisterfile kann zusätzliche Ausgangsports aufweisen, aus denen darin gespeicherte Daten ebenfalls in jeder, gewünschten Reihenfolge und unabhängig von der Reihenfolge jeglicher anderer Ausgangsports herausgelesen werden können.
- Genauer zeigt Fig. 1 ein Mehrkanalregisterfile 101 mit einem Speicher 103, der Speicherstellen 103-1 bis 103-H aufweist, einer Berechnungseinheit 105 und Zwischenspeichern 107, darunter Zwischenspeicher 107-1 bis 107-K.
- H, die Anzahl von Speicherstellen in dem Mehrkanalregisterfile ist zwar willkürlich je nach Wunsch des Filterentwicklers wählbar, ist aber in der Regel eine kleine Zahl, z. B. 4. Ein kleiner Wert von H ermöglicht effiziente FIR-Filterimplementierungen - im Vergleich zu anderen Alternativen zur Implementierung von FIR-Filtern - zur Verarbeitung von Signalen mit einer Abtastrate, die in der Größenordnung der schnellsten Taktfrequenzen in dem System liegt, wie zum Beispiel bei Modems zur Verwendung beim Breitbandzugriff.
- Daten werden über den Schreibport W, der N Datenleitungen enthält, in das Mehrkanalregisterfile 101 geschrieben. Die konkrete der Speicherstellen 103, in die an dem Schreibport W vorliegende Daten geschrieben werden, wird durch den Schreibadreßport WA angegeben.
- Daten werden über einen beliebigen von Leseports R, darunter die Leseports R&sub1; bis Rk, aus dem Mehrkanalregisterfile 101 herausgelesen. Jeder der Leseports R&sub1; bis Rk enthält eine jeweilige Anzahl von Datenleitungen M&sub1; bis Mk. Gegebenenfalls kann eine weniger präzise Darstellung eines in dem Mehrkanalregisterfile 101 gespeicherten Werts aus diesem herausgelesen werden. Die konkrete der Speicherstellen 103, aus der Daten zur Weiterleitung zu einem beliebigen der Leseports R&sub1; bis Rk herausgelesen werden, wird durch eine Adresse angegeben, die dem entsprechenden, z. B. gleich bezifferten, der Leseadreßports RA&sub1; bis RAk zugeführt wird. Es ist kein Leseaktivierungssignal notwendig, um zu bewirken, daß an einem beliebigen der Leseports R&sub1; bis Rk eine Ausgabe erscheint. Einfaches Zuführen der entsprechenden Leseadresse reicht aus, um die entsprechende Ausgabe zu erzeugen. Die Schreibadresse WA und die Leseadresse RA&sub1; bis RAk weisen in der Regel dieselbe Anzahl von Adressleitungen L auf.
- Wann und ob Daten in das Mehrkanalregisterfile 101 geschrieben werden, ist eine Funktion des Werts des Schreibfreigabesignals WE. Wenn WE einen ersten Wert aufweist, werden Daten in das Mehrkanalregisterfile 101 geschrieben. Wenn WE den komplementären Wert des ersten Werts aufweist, werden Daten nicht in das Mehrkanalregisterfile 101 geschrieben.
- Daten können gleichzeitig in das Mehrkanalregisterfile 101 geschrieben und aus diesem herausgelesen werden. Genauer können gleichzeitig Daten in dieselbe konkrete der Speicherstellen 103 geschrieben und aus dieser herausgelesen werden. Somit kann ein erster Wert in eine konkrete der Speicherstellen 103 geschrieben werden, während gleichzeitig ein anderer Wert aus dieser selben konkreten Speicherstelle herausgelesen und einem oder mehreren der Leseports R&sub1; bis Rk zugeführt werden kann.
- Die Zwischenspeicher 107 sind herkömmliche pegelempfindliche Zwischenspeicher, die zum Beispiel von N. Weste und K. Eshraghian auf Seiten 19-21 von Principles of CMOS VLSI Design, 2. Auflage, Addison Wesley, 1992, beschrieben werden. Somit kann jede beliebige der Speicherstellen 103 als ein Hauptzwischenspeicher dienen, während ein beliebiger der Zwischenspeicher 107 als ein Nebenzwischenspeicher dienen kann, um ein flankengetriggertes Flipflop zu bilden, wobei die Berechnungseinheit 105 dazwischen angeordnet ist.
- Fig. 2 zeigt eine vereinfachte Ansicht des Mehrkanalregisterfiles 101, wobei nur zwei Speicherstellen 103 mit nur einem einzigen Leseport und einem einzigen Schreibport gezeigt sind. Außerdem ist das Taktsignal (CLK) gezeigt, mit dem der Betrieb und der Datentransfer zwischen dem Speicher 103 und den Zwischenspeichern 107 und der Koeffizientenaktualisierungseinheit 109 gesteuert wird. In Fig. 2 ist der Speicher 103 positiv-pegelempfindlich, während der Zwischenspeicher 107 negativ-pegelempfindlich ist. Zusammen bilden sie ein negativ-flankengetriggertes Flipflop.
- Die Berechnungseinheit 105 nimmt mindestens einen Koeffizientenwert an und führt eine bestimmte Art von Transformation daran durch oder leitet den Koeffizientenwert unverändert weiter. Die Berechnungseinheit 105 ist zwischen den Speicherstellen 103 und den Zwischenspeichern 107 angeordnet, so daß die Berechnungseinheit 105a) Koeffizientenwerte aus den Speicherstellen 103 empfangen und b) ihre Ausgabe einem oder mehreren der Zwischenspeicher 107 zuführen kann.
- Alle in dem Mehrkanalregisterfile durchgeführten Berechnungen werden außerhalb des kritischen Wegs der Filterung oder der Koeffizientenaktualisierung durchgeführt. Die Berechnungseinheit 105 liegt außerhalb des kritischen Wegs der Filterung oder der Koeffizientenaktualisierung, da sie ihre Funktion in der sogenannten "Totzeit" zwischen der Zeit, zu der der Hauptzwischenspeicher, bei dem es sich hier um die aktuell adressierte Speicherstelle in dem Speicher 103 handelt, die gespeicherten Informationen enthält, und der Zeit, zu der der Nebenzwischenspeicher, der hier der Zwischenspeicher 107 ist, die Informationen aus dem Hauptzwischenspeicher zwischenspeichert, durchführt. Dies wird dadurch ermöglicht, daß das Leseadreßsignal früher den Leseadreßports RA&sub1; bis RAk zugeführt wird, als das Taktsignal den Zwischenspeichern 107 zugeführt wird.
- Fig. 3 zeigt ein Impulsdiagramm für den Betrieb der vereinfachten Ansicht des Mehrkanalregisterfiles 101 von Fig. 2. Fig. 3 zeigt Signale CLK, RA, WA und OUTPUT aus dem Zwischenspeicher 107. Man beachte, daß die Signale CLK, RA und WA dem Mehrkanalregisterfile 101 zugeführt werden, das das Signal OUTPUT erzeugt. Das Leseadreßsignal RA wird einen halben Zyklus vor dem Schreibadreßsignal WA dem Mehrkanalregisterfile 101 zugeführt. Als Reaktion auf das Signal RA, das sich kurz nach jeder positiven Flanke von CLK ändert, erscheinen Daten aus dem Speicher 103 und werden durch die Berechnungseinheit 105 vor der negativen Flanke von CLK verarbeitet. Man beachte, daß hier kurz bedeutet, daß genug Zeit besteht, damit die Berechnungseinheit 105 ihre erforderliche Berechnung durchführen kann.
- Auf der negativen Flanke von CLK werden in dem Zwischenspeicher 107 die verarbeiteten Daten, die als die Ausgabe der Berechnungseinheit I05 zugeführt werden, zwischengespeichert. Diese Daten werden dann als OUTPUT, die Ausgabe des Mehrkanalregisterfiles 101, zur Verfügung gestellt. Diese Daten werden der Aktualisierungseinheit 109 zugeführt, und auch dem Multiplizierer des Filters (nicht gezeigt), der unter Verwendung des Mehrkanalregisterfiles 101 implementiert wird. Kurz nach der nächsten positiven Flanke ändert sich RA, und es wird ein weiterer Koeffizient aus einer der Speicherstellen 103 herausgelesen. In der Zwischenzeit sind die Ausgangsdaten, die auf der vorherigen negativen Flanke zwischengespeichert wurden, weiterhin von dem Zwischenspeicher 107 verfügbar. Bei der nächsten negativen Flanke von CLK werden die aktualisierten Daten, die als Ausgabe der Aktualisierungseinheit 109 zugeführt werden, zurück in den Speicher 103 in eine durch WA, das sich nur eine kurze Zeit nach der negativen Flanke von CLK ändert, angegebene Speicherstelle geschrieben.
- Bei einer Ausführungsform der Erfindung ist die Berechnungseinheit 105 eine Überlauf-/Unterlauf- Erkennungs- und/oder Sättigungseinheit. Fig. 4 zeigt eine beispielhafte Ausführungsform, bei der die Berechnungseinheit 105 als eine Überlauf-/Unterlauf- Erkennungs- und/oder Sättigungseinheit 211 implementiert ist. Die Überlauf-/Unterlauf-Sättigungseinheit 211 enthält eine Überlauf-/Unterlauf- Erkennungseinheit 501, die mit einer Sättigungserkennungseinheit 601 verbunden ist.
- Die Überlauf-/Unterlauf-Erkennungseinheit 501 kann zum Beispiel auf eine herkömmliche wohlbekannte Weise wirken, wie zum Beispiel durch Bestimmen, ob eine empfangene Eingabe eine Zahl mit G Bit Genauigkeit ist, die mit Y Bit Genauigkeit dargestellt werden kann, wobei Y kleiner als G ist. Wenn die empfangene Eingabe eine Zahl mit G Bit Genauigkeit ist, und diese Eingabe mit Y Bit Genauigkeit dargestellt werden kann, wird bestimmt, daß kein Unterlauf oder Überlauf auftritt. Deshalb wird der Wert der Eingabezahl als Ausgabe der Überlauf-/Unterlauf-Erkennungs- und/oder Sättigungseinheit 211 zugeführt, aber nur unter Verwendung von Y Bit Genauigkeit. Wenn andernfalls der Betrag der Zahl zu groß ist, um mit nur Y Bit Genauigkeit dargestellt zu werden, wird bestimmt, daß ein Unterlauf oder Überlauf aufgetreten ist. Wenn ein Überlauf oder Unterlauf aufgetreten ist, wird das entsprechende Flag gesetzt und als Ausgabe zugeführt. Ob ein Überlauf oder ein Unterlauf aufgetreten ist, wird dadurch bestimmt, ob die Eingabe größer als der größte Wert ist, der mit Y Bit Genauigkeit dargestellt werden kann, oder kleiner als der kleinste Wert ist, der mit Y Bit Genauigkeit dargestellt werden kann.
- Die Sättigungserkennungseinheit 601 kann zum Beispiel auf herkömmliche wohlbekannte Weise wirken. Zum Beispiel empfängt die Sättigungserkennungseinheit 601 als Eingaben eine Zahl mit Y Bit Genauigkeit, sowie die Werte eines Überlaufflags und eines Unterlaufflags. Wenn das Überlaufflag gesetzt ist, führt die Sättigungserkennungseinheit 601 als eine Ausgabe den größten Wert zu, der mit Y Bit Genauigkeit dargestellt werden kann. Wenn das Unterlaufflag gesetzt ist, führt die Sättigungserkennungseinheit 601 als eine Ausgabe den kleinsten Wert zu, der mit Y Bit Genauigkeit dargestellt werden kann. Wenn weder das Überlaufflag noch das Unterlaufflag gesetzt ist, führt die Sättigungserkennungseinheit 601 als eine Ausgabe den Eingangswert zu, aber unter Verwendung von nur Y Bit Genauigkeit.
- Der resultierende Betrieb der Überlauf- /Unterlauf-Erkennungs- und/oder Sättigungseinheit 211 besteht darin, daß sie als Eingabe eine Zahl mit G Bit Genauigkeit empfängt und als eine Ausgabe a) den tatsächlichen Wert von G unter Verwendung von Y Bit Genauigkeit, wobei Y kleiner als G ist, wenn G mit Y Bit Genauigkeit dargestellt werden kann, oder b) den größten oder kleinsten Wert zuführt, der mit Y Bit Genauigkeit dargestellt werden kann, wenn der Betrag der Zahl zu groß ist, um mit nur Y Bit Genauigkeit dargestellt zu werden. Ob der größte oder der kleinste Wert als Ausgabe zugeführt wird, wird als Funktion davon bestimmt, ob die Eingabe größer als der größte Wert ist, der mit Y Bit Genauigkeit dargestellt werden kann, oder kleiner als der kleinste Wert ist, der mit Y Bit Genauigkeit dargestellt werden kann.
- Die Werte des Überlaufflags und/oder des Unterlaufflags können als Ausgaben aus der Berechnungseinheit 105 zugeführt werden, und sie können sogar extern als Ausgabe aus dem Mehrkanalregisterfile 101 zugeführt werden. Wenn die Werte des Überlaufflags und/oder des Unterlaufflags extern aus dem Mehrkanalregisterfile 101 zugeführt werden, dann müssen die Zwischenspeicher 107 so ergänzt werden, daß sie in der Lage sind, auch diese Informationen zu übertragen.
- Bei einer weiteren Ausführungsform der Erfindung ist die Berechnungseinheit 105 ein Datenumsetzer. Zum Beispiel kann die Berechnungseinheit 105 ein spezieller Codierer sein, mit dem der Multiplikationsprozeß beschleunigt wird, z. B. ein sogenannter "Booth"-Codierer. Booth-Codierer werden von N. Weste und K. Eshraghian auf Seiten 547-554 von Principles of CMOS VLSI Design, 2. Auflage, Addison Wesley, 1992, beschrieben.
- Man beachte, daß Booth-Codierer dort auch als Booth-Umcodierer bezeichnet werden.
- Bei einer weiteren beispielhaften Ausführungsform der Erfindung enthält das Mehrkanalregisterfile einen Umsetzer zum Wechseln der Darstellung der Koeffizienten, z. B. einen Zweierkomplement/Vorzeichen-Betrag-Umsetzer.
- Man beachte, daß die Berechnungseinheit 105 mehrere Funktionen durchführen kann, und daß diese Funktionen an verschiedenen der Koeffizienten entweder im wesentlichen zur gleichen Zeit oder sequentiell durchgeführt werden können, solange die Berechnung während der Totzeit abgeschlossen wird. Die durchgeführten Funktionen können sich auch von Taktzyklus zu Taktzyklus ändern.
- Die obigen Ausführungen illustrieren lediglich die Erfindung. Somit versteht sich, daß Fachleute in der Lage sein werden, verschiedene Anordnungen zu konzipieren, die hier zwar nicht ausführlich beschrieben oder gezeigt wurden, aber dennoch die Erfindung realisieren und in ihrem, durch die angefügten Ansprüche definierten Schutzumfang eingeschlossen sind.
Claims (11)
1. Mehrkanalregisterfile [101] zum Speichern von
Koeffizienten, umfassend:
mindestens zwei Speicherstellen [103], wobei
jede Speicherstelle einen Koeffizientenwert speichert;
wobei das Mehrkanalregisterfile durch folgendes
gekennzeichnet ist:
mindestens einen Ausgangszwischenspeicher
[107]; und
ein Rechenmittel [105] zum Durchführen von
Operationen an den Koeffizientenwerten oder ihren
Ableitungen, wobei mindestens eine der Speicherstellen
als ein Hauptzwischenspeicher wirkt und der mindestens
eine Ausgangszwischenspeicher als ein
Nebenzwischenspeicher wirkt, wobei der Hauptzwischenspeicher und der
Nebenzwischenspeicher zusammen eine Gruppe
flankengetriggerter Flipflops bilden und die Gruppe ein
Flipflop für jedes Bit der Breite eines der
Koeffizientenwerte aufweist, wobei das Rechenmittel
zwischen dem Hauptzwischenspeicher und dem
Nebenzwischenspeicher angeordnet ist.
2. Mehrkanalregisterfile nach Anspruch 1, wobei
das Rechenmittel eines aus der Gruppe bestehend aus:
mindestens einer Unterlauf-/Überlauf-Erkennungs-
und/oder Sättigungseinheit, einem Codierer, einem
Booth-Codierer, einem Umsetzer zum Umsetzen der
Koeffizienten aus einer ersten Darstellung in eine
zweite Darstellung, einem Zweierkomplement-
Vorzeichen/Betrag-Umsetzer und einem Addierer zum
Umsetzen einer Carry/Save-Formatdarstellung des
Koeffizienten in eine Zweierkomplementdarstellung
enthält.
3. Mehrkanalregisterfile nach Anspruch 1, wobei
das Rechenmittel zwischen den Speicher und den
Ausgangszwischenspeicher geschaltet ist.
4. Mehrkanalregisterfile nach Anspruch 1, wobei
der Speicher und der Zwischenspeicher ein Register
bilden.
5. Verfahren zur Verwendung eines
Mehrkanalregisterfiles [101] in Verbindung mit einem
adaptiven FIR-Filter, mit den folgenden Schritten:
Zuführen eines Koeffizientenwerts als Ausgabe
aus einem Speicher [103];
Durchführen einer Rechnung an dem
Koeffizientenwert zur Erzeugung eines transformierten
Koeffizientenwerts; und
Zwischenspeichern des transformierten
Koeffizientenwerts in einem Zwischenspeicher [107];
wobei das Verfahren dadurch gekennzeichnet ist,
daß
der Speicher als ein Hauptzwischenspeicher
wirkt und der Zwischenspeicher als ein
Nebenzwischenspeicher wirkt, wobei der Hauptzwischenspeicher und der
Nebenzwischenspeicher zusammen eine Gruppe
flankengetriggerter Flipflops bilden und die Gruppe ein
Flipflop für jedes Bit der Breite des
Koeffizientenwerts aufweist; und
ein Rechenmittel [105] zur Durchführung der
Rechnung zwischen dem Hauptzwischenspeicher und dem
Nebenzwischenspeicher angeordnet ist.
6. Verfahren nach Anspruch 5, wobei die Schritte
des Zuführens, Durchführens und Zwischenspeicherns
außerhalb eines kritischen Weges des Registerfiles
durchgeführt werden.
7. Verfahren nach Anspruch 5, mit dem Schritt des
Speicherns des zwischengespeicherten transformierten
Koeffizientenwerts in derselben Speicherstelle des
Speichers, aus dem der Koeffizientenwert bei dem
Zuführungsschritt zugeführt wurde.
8. Verfahren nach Anspruch 5, mit dem Schritt des
Speicherns des zwischengespeicherten transformierten
Koeffizientenwerts in derselben Speicherstelle des
Speichers, aus dem der Koeffizientenwert bei dem
Zuführungsschritt zugeführt wurde, und wobei die
Schritte des Zuführens, Durchführens,
Zwischenspeicherns und Speicherns außerhalb eines
kritischen Weges des Registerfiles durchgeführt werden.
9. Verfahren nach Anspruch 5, wobei die Rechnung
mindestens eine Rechnung aus der Gruppe von Rechnungen
bestehend aus Booth-Codierung, Überlauf-/Unterlauf-
Erkennung und Sättigungserkennung enthält.
10. Verfahren nach Anspruch 5, wobei der
Zuführungsschritt im wesentlichen dann durchgeführt
wird, wenn ein Taktgeber einen ersten Wert aufweist,
und das Zwischenspeichern dann durchgeführt wird, wenn
der Taktgeber einen zweiten Wert aufweist.
11. Verfahren nach Anspruch 5, wobei die Rechnung
in der Totzeit des Registers durchgeführt wird.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/996,868 US6542539B1 (en) | 1997-12-23 | 1997-12-23 | Multiported register file for coefficient use in filters |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69800593D1 DE69800593D1 (de) | 2001-04-19 |
DE69800593T2 true DE69800593T2 (de) | 2001-10-04 |
Family
ID=25543385
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69800593T Expired - Lifetime DE69800593T2 (de) | 1997-12-23 | 1998-12-04 | Mehrkanalregister für Koeffizienten in Filtern |
Country Status (8)
Country | Link |
---|---|
US (1) | US6542539B1 (de) |
EP (1) | EP0928065B1 (de) |
JP (1) | JP3540179B2 (de) |
KR (1) | KR100617388B1 (de) |
CN (1) | CN1235414A (de) |
BR (1) | BR9804969A (de) |
CA (1) | CA2254545A1 (de) |
DE (1) | DE69800593T2 (de) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6542539B1 (en) | 1997-12-23 | 2003-04-01 | Agere Systems Guardian Corp. | Multiported register file for coefficient use in filters |
US20110241744A1 (en) * | 2008-08-28 | 2011-10-06 | Aspen Acquisition Corporation | Latch-based implementation of a register file for a multi-threaded processor |
GB2580160B (en) | 2018-12-21 | 2021-01-06 | Graphcore Ltd | Hardware module for converting numbers |
US11301542B2 (en) * | 2019-05-15 | 2022-04-12 | Nxp B.V. | Methods and apparatuses involving fast fourier transforms processing of data in a signed magnitude form |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3723911A (en) | 1971-09-13 | 1973-03-27 | Codex Corp | Training adaptive linear filters |
JPH0795671B2 (ja) | 1986-06-03 | 1995-10-11 | ソニー株式会社 | デイジタルフイルタ |
US5313551A (en) | 1988-12-28 | 1994-05-17 | North American Philips Corporation | Multiport memory bypass under software control |
JPH02222317A (ja) * | 1989-02-23 | 1990-09-05 | Lsi Rojitsuku Kk | デジタルフィルタ |
US4995031A (en) * | 1989-06-19 | 1991-02-19 | Northern Telecom Limited | Equalizer for ISDN-U interface |
US5477534A (en) * | 1993-07-30 | 1995-12-19 | Kyocera Corporation | Acoustic echo canceller |
US5930231A (en) * | 1995-06-30 | 1999-07-27 | Scientific-Atlanta, Inc. | Block spectrum receiver for a broadband communications system |
US5721696A (en) * | 1995-08-28 | 1998-02-24 | Motorola Inc. | Method and system for performing an FIR filtering operation |
US5657291A (en) | 1996-04-30 | 1997-08-12 | Sun Microsystems, Inc. | Multiport register file memory cell configuration for read operation |
US5777914A (en) * | 1996-08-29 | 1998-07-07 | Lucent Technologies Inc. | Technique for reducing power consumption in digital filters |
US6542539B1 (en) | 1997-12-23 | 2003-04-01 | Agere Systems Guardian Corp. | Multiported register file for coefficient use in filters |
-
1997
- 1997-12-23 US US08/996,868 patent/US6542539B1/en not_active Expired - Lifetime
-
1998
- 1998-11-26 CA CA002254545A patent/CA2254545A1/en not_active Abandoned
- 1998-11-27 BR BR9804969-0A patent/BR9804969A/pt not_active Application Discontinuation
- 1998-12-04 EP EP98309987A patent/EP0928065B1/de not_active Expired - Lifetime
- 1998-12-04 DE DE69800593T patent/DE69800593T2/de not_active Expired - Lifetime
- 1998-12-22 JP JP36362098A patent/JP3540179B2/ja not_active Expired - Fee Related
- 1998-12-22 KR KR1019980058709A patent/KR100617388B1/ko not_active IP Right Cessation
- 1998-12-22 CN CN98123222A patent/CN1235414A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
CN1235414A (zh) | 1999-11-17 |
EP0928065B1 (de) | 2001-03-14 |
BR9804969A (pt) | 1999-11-23 |
KR19990063481A (ko) | 1999-07-26 |
KR100617388B1 (ko) | 2007-04-25 |
US6542539B1 (en) | 2003-04-01 |
JP3540179B2 (ja) | 2004-07-07 |
EP0928065A3 (de) | 1999-07-21 |
EP0928065A2 (de) | 1999-07-07 |
JPH11266142A (ja) | 1999-09-28 |
DE69800593D1 (de) | 2001-04-19 |
CA2254545A1 (en) | 1999-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3485792T2 (de) | Digitale signalverarbeitungseinrichtungen. | |
DE69033444T2 (de) | Signalprozessor mit einer arithmetischen und logischen Einheit und einer Multiplizier-Akkumulatoreinheit, die gleichzeitig betrieben werden können | |
DE69030128T2 (de) | Signalprozessor | |
DE3853805T2 (de) | Digitaler Multiplizierer und Multiplizierer-Akkumulator, welcher Zwischenergebnisse vorlädt und akkumuliert. | |
DE3751503T2 (de) | Datenprozessor in Pipelinestruktur mit der Fähigkeit mehrere Befehle parallel zu dekodieren und auszuführen. | |
DE3783072T2 (de) | Zusatzprozessorarchitektur. | |
DE69800108T2 (de) | Filterstruktur | |
DE3144015C2 (de) | ||
DE3424962C2 (de) | ||
DE69324730T2 (de) | Multiplizier-Akkumulator | |
DE3750028T2 (de) | Pipelineprozessor mit schwacher Kopplung. | |
DE69716997T2 (de) | Gleichzeitiges Lese- und Schreibeverfahren von Daten in einem RAM-Speicher | |
DE68921161T2 (de) | Programmierbares digitales Filter. | |
EP0149785B1 (de) | Verfahren und Schaltungsanordnung zur Digitalsignalverarbeitung nach Art eines vorzugsweise adaptiven Transversalfilters | |
DE68926154T2 (de) | Pipelineprozessor zur Durchführung des LMS Algorithmus | |
DE3446957C2 (de) | ||
DE69225095T2 (de) | Wirksamer Arbiter | |
DE69800593T2 (de) | Mehrkanalregister für Koeffizienten in Filtern | |
DE69521464T2 (de) | Paralleler Prozessor | |
DE19741915A1 (de) | Zwischenspeicheroptimierung in Hardware-Logikemulations-Systemen | |
DE69626609T2 (de) | Pipeline-datenverarbeitungsschaltung | |
DE68924082T2 (de) | Datenverarbeitungseinheit mit einem Umgehungsmechanismus. | |
DE3782343T2 (de) | Zustandsanpassung fuer parallele verarbeitung. | |
DE69930906T2 (de) | System zur Variation des Dynamikbereichs von Koeffizienten in einem digitalen Filter | |
DE68903280T2 (de) | Vektorschlange in computern mit vektorregister. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |