DE3485792T2 - Digitale signalverarbeitungseinrichtungen. - Google Patents

Digitale signalverarbeitungseinrichtungen.

Info

Publication number
DE3485792T2
DE3485792T2 DE8484302324T DE3485792T DE3485792T2 DE 3485792 T2 DE3485792 T2 DE 3485792T2 DE 8484302324 T DE8484302324 T DE 8484302324T DE 3485792 T DE3485792 T DE 3485792T DE 3485792 T2 DE3485792 T2 DE 3485792T2
Authority
DE
Germany
Prior art keywords
instruction
value
multiplier
processor
data
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
DE8484302324T
Other languages
English (en)
Other versions
DE3485792D1 (de
Inventor
Stephen Terepin
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.)
National Semiconductor Corp
Original Assignee
National Semiconductor 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 National Semiconductor Corp filed Critical National Semiconductor Corp
Application granted granted Critical
Publication of DE3485792D1 publication Critical patent/DE3485792D1/de
Publication of DE3485792T2 publication Critical patent/DE3485792T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Complex Calculations (AREA)

Description

  • Diese Erfindung betrifft digitale Signalverarbeitungseinrichtungen, insbesondere digitale Signalverarbeitungseinrichtungen, deren Betrieb durch vom Anwender zur Verfügung gestellte Befehlsfolgen gesteuert werden kann.
  • Bis vor kurzem wurde der größte Teil der Bearbeitung von analogen Signalen direkt an diesen Signalen unter Verwendung einer analogen Schaltungsanordnung durchgeführt. Somit wurde die gewünschte Verarbeitungsfunktion, wie z. B. das Filtern oder Gleichrichten, durch Kombinationen von elektronischen Komponenten, wie z. B. von Widerständen, Kondensatoren, Spulen und Dioden vorgesehen, wobei die Werte und die Verbindungen so festgelegt sind, daß diese auf das Signal zur Erzielung des gewünschten Ergebnisses einwirken. Die geeigneten Werte und die Schaltungsanordnungen werden im allgemeinen durch Berechnung unter Verwendung der mathematischen Modelle der Wirkungen der Komponenten erhalten.
  • Mit dem Aufkommen preiswerter digitaler Schaltungskomponenten wurde ein alternativer Lösungsweg gangbar. Bei diesem wird das analoge Signal zuerst abgetastet und die Größe jedes Abtastwertes numerisch codiert (Analog/Digital-Umwandlung). Daraufhin wird jeder numerische Wert arithmetisch entsprechend dem mathematischen Modell bearbeitet, das die gewünschte Signalverarbeitungsfunktion beschreibt. Die Folge von numerischen Ergebnissen der arithmetischen Operationen kann wieder in eine Folge von Signalabtastwerten entsprechender Größe rückgewandelt werden (Digital/Analog-Umwandlung), die dann ein Signal ausbilden, das dem entspricht, welches sich durch Anlegen des ursprünglichen analogen Eingangssignals an eine durch das mathematische Modell definierte, echte Schaltung ergeben würde.
  • Durch Anwendung einer solchen digitalen Signalverarbeitung ergeben sich verschiedene Vorteile. Die erhaltene Verarbeitungsfunktion entspricht genau der gewünschten, wobei keine Störungen infolge von Toleranzen der Baukomponentenwerte auftreten; somit liefern verschiedene Exemplare der gleichen Signalverarbeitungseinrichtung identische Ergebnisse.
  • Die Funktionen, die erhalten werden können, schließen viele ein, die, obwohl mathematisch definierbar, entweder unter Verwendung von reellen elektrischen Komponenten gar nicht oder nur mit erheblichen Schwierigkeiten und Kosten erzeugt werden können. Da die erforderlichen arithmetischen Operationen in Form eines Programmes von Befehlen definiert werden können, kann die gleiche übliche Hardware durch geeignete Wahl der Befehlsfolge dazu gebracht werden, viele verschiedene Signalverarbeitungsfunktionen durchzuführen.
  • Bekannte digitale Signalverarbeitungseinrichtungen nehmen üblicherweise die Form eines konventionellen (Mikro-) Computers an, der auf einem einzigen IC-Chip einen Speicher zum Speichern der erforderlichen Befehlsfolge und der erforderlichen Daten, eine Rechenschaltung, Eingangs- und Ausgangsschaltungen sowie eine Steuerschaltung zum Koordinieren der Operationen der Signalverarbeitungseinrichtung in Übereinstimmung mit dem Befehlsprogramm aufweist. Um eine ausreichend hohe Operationsgeschwindigkeit für typische Signalverarbeitungsanwendungen (wie z. B. Sprachfernübertragungssystemen) zu erhalten, wird gewöhnlich ein spezieller zusätzlicher Schaltkreis eingeschlossen: So kann eine Multiplikation mit Hilfe von Multiplizierern in Form von Hardware ausgeführt werden, so können das Programm, die Daten und irgendwelche Koeffizienten, die vom Programm zum Bearbeiten der Daten verwendet werden, in ihren eigenen individuellen Speichern abgespeichert werden, und so können Busse oder Kommunikationswege zur Vermeidung von Engpässen bei der Datenübertragung zwischen verschiedenen Schaltkreiselementen verdoppelt werden. Außerdem werden häufig das Programm und die Koeffizienten in Festwertspeichern, die einen Teil des IC-Chip bilden, abgespeichert, wobei ihre Werte während der Herstellung fest in den Schaltkreisaufbau aufgenommen (maskenprogrammiert) werden.
  • Obwohl ein derartiger Lösungsweg für gewisse Anwendungen (wie z. B. für Sprachfernübertragungen) zufriedenstellend ist, schließt dieser gewisse Beschränkungen ein. So ist insbesondere die Maskenprogrammierung nur für große Produktionsmengen wirtschaftlich und die Anzahl der Binärzeichen, die einen Datenwert bilden, ist typischerweise nicht größer als 16, was eine logische Begrenzung der Auflösung und der Genauigkeit der digitalen Verarbeitungsfunktion zur Folge hat.
  • Eine digitale Signalverarbeitungseinrichtung (Signalprozessor) entsprechend den Merkmalen des Oberbegriffes des unabhängigen Vorrichtungsanspruches ist in der EP-A-00 75 623 beschrieben.
  • Gemäß einem Aspekt dieser Erfindung wird ein digitaler Signalprozessor vorgesehen, der Verarbeitungselemente, welche eine Eingangsschnittstelle, eine Ausgangsschnittstelle, einen Datenspeicher und eine Recheneinheit einschließen; ein Kreuzschienenschaltnetzwerk zum selektiven Verbinden der vorgenannten Elemente miteinander; und eine Steuerschaltung, die auf jeden einer Vielzahl vorbestimmter Befehle ansprechen kann, um das Kreuzschienennetzwerk für eine Verbindung der Elemente in entsprechenden vorbestimmten Weisen zu steuern, aufweist und dadurch gekennzeichnet ist, daß der Datenspeicher ein Datenspeicher mit seriellem Zugriff und mit mindestens zwei Datenkanälen ist, daß die Recheneinheit einen Multiplizierer zum Multiplizieren zumindest dreier seriell durch entsprechende Koeffizienten dargestellter Variablen und zum Summieren der Produkte sowie eine Vorrichtung umfaßt, die einen Überlauf in dem Ausgangssignal des Multiplizierers feststellt und vorbestimmte Sättigungswerte für das Ausgangssignal ersetzt, daß zumindest zwei Schieberegister in beiden Richtungen mit dem Kreuzschienennetzwerk gekoppelt sind; und daß die Steuerschaltung auf eine ausgewählte Folge von der Steuerschaltung zugeführten Befehlen ansprechen kann, um zu bewirken, daß die Verarbeitungselemente durch das Kreuzschienennetzwerk in einer gewählten Reihenfolge miteinander verbunden werden, die ausgewählt wird, um eine gewünschte Signalverarbeitungsfunktion zu bewirken.
  • Der Prozessor verwendet serielle arithmetische Techniken, was lange Wortlängen und zugehörige hohe Auflösung ermöglicht. Der im hohen Maße parallele Charakter der Schaltkreisanordnung ermöglicht es, daß die arithmetischen Schaltungen intensiv in Betrieb gehalten werden, und die Bereitstellung eines individuellen (seriellen) Datenweges für jedes Schaltkreiselement verhindert Engpässe bei der Datenübertragung.
  • Die oben angeführte Anordnung ermöglicht die Realisierung eines beschränkten Bereiches von Signalverarbeitungsfunktionen. Der Einschluß zusätzlicher Elemente, wie z. B. eines Akkumulators, eines weiteren Schieberegisters (mit unabhängig adressierbaren Herausschiebe- und Hineinschiebepositionen) und eines anderen spezialisierten Registers steigert die Vielfalt der Funktionen, die ausgeführt werden können.
  • Ein digitaler Signalprozessor gemäß dieser Erfindung, der als ein programmierbares Digitalfilter Verwendung findet, wird nachfolgend beispielhaft mit Bezug auf die beiliegenden Zeichnungen beschrieben, bei denen:
  • Fig. 1 ein schematisches Blockdiagramm ist, das den Prozessor in Kombination mit einem typischen externen Schaltkreis zeigt;
  • Fig. 2 ein vereinfachtes schematisches Blockdiagramm ist, das die wesentlichen Schaltkreiselemente des Prozessors verdeutlicht;
  • Fig. 3 ein schematisches Diagramm des Kreuzschienennetzwerkes der Fig. 2 ist;
  • Fig. 4 ein schematisches Diagramm ist, das einen besonderen Betriebsmodus des Kreuzschienennetzwerkes verdeutlicht;
  • Fig. 5a und 5b schematische Diagramme sind, die eine biquadratische Filterfunktion und deren Realisierung mit dem Prozessor veranschaulichen;
  • Fig. 6a und 6b schematische Diagramme sind, die eine Allpol-Filter- und Glättungsfunktion und deren Realisierung mit dem Prozessor verdeutlichen; und
  • Fig. 7 ein schematisches Blockdiagramm der Substitutionsschaltung der Fig. 2 ist.
  • Der zu beschreibende digitale Signalprozessor soll neben anderen Zwecken als ein Universalfilter verwendet werden, d. h. die gleichen Komponenten können zur Realisierung einer Vielzahl von unterschiedlichen Filterfunktionen verwendet werden, wobei die von der Schaltung vorgesehene genaue Filtercharakteristik in jedem Fall von einer Folge von Befehlen abhängig ist, die vom Anwender ausgewählt wird. Typischerweise würde die Schaltung unter Verwendung von LSI-Schaltkreistechniken realisiert werden.
  • Betrachtet man die Fig. 1, so ist der Signalprozessor 10 in Kombination mit einem externen Speicher 12 dargestellt, der ein Direktzugriffsspeicher (RAM) und/oder ein (programmierbarer) Festwertspeicher (ROM oder PROM) sein kann. Der Prozessor 10 steht mit dem Speicher über einen 11-Bit-Adreßbus 14 in Verbindung, der Signale überträgt, die die im Speicher 12 vorgesehenen Adressen der die Operation des Prozessors 10 steuernden Befehle und der während einer solchen Operation verwendeten Koeffizienten spezifizieren. Der Wert des Befehls oder des Koeffizienten an der spezifizierten Adresse wird vom Speicher 12 längs eines allgemein mit dem Bezugszeichen 16 gekennzeichneten 8-Bit-Datenbusses dem Prozessor 10 zugeführt.
  • Zu verarbeitende Signale (die bereits mittels eines konventionellen Analog/Digital-Wandlers 18 in eine digitale Form überführt wurden) werden dem Prozessor 10 längs einer seriellen Eingangsleitung 20 zugeführt, wobei Datenübertragungen längs dieser Leitung mittels Quittungsbetrieb-Signalen auf einer "Daten-bereit"-Leitung 22 und einer "Daten-Anforderungs"-Leitung 24 koordiniert werden. Verarbeitete Signale werden vom Prozessor 10 längs einer seriellen Ausgangsleitung 26 abgegeben (z. B. zu einem Digital/Analog-Wandler 28), wobei die Datenübertragungen gleichfalls durch Signale auf zugehörigen "Daten-bereit"- und "Daten-Anforderungs"- Leitungen 30 und 32 gesteuert werden. Die Zeitsteuerung sowohl der Eingangs- als auch der Ausgangssignale wird mit dem Betrieb der Wandler 18 und 28 mittels eines externen Eingangs/Ausgangs-Taktsignals synchronisiert, das von einer Datentaktschaltung 34 über eine Leitung 36 zugeführt wird.
  • Die Zeitsteuerung der Operationen im Prozessor 10 selbst wird durch ein anderes Taktsignal synchronisiert, das von einer Systemtaktschaltung 40 über eine Leitung 38 zugeführt wird. Die Initialisierung des Prozessorschaltkreises wird durch ein Signal ausgelöst, das über eine Rücksetzleitung 42 angelegt wird. Typischerweise wird dies in bekannter Art und Weise vorgenommen, wenn dem Prozessor (über nicht gezeigte Verbindungen) Leistung zugeführt wird, und zwar mit einem Signal, das von den Stromzufuhrleitungen abgeleitet wird.
  • Die übrigen Verbindungen zum Prozessor 10 können verwendet werden oder nicht, und zwar abhängig von der speziellen Schaltung, in der der Prozessor verwendet wird. Ein Merker (Flag)-Eingang 44 kann überprüft werden, um auf ein durch einen externen Schaltkreis angelegtes Signal zu reagieren; ein "Nächster-Befehl"-Ausgang 46 wird aktiviert, um anzuzeigen, falls der Prozessor 10 bereit ist, mit der Ausführung des nächsten Befehls der im Speicher 12 abgespeicherten Befehlsfolge zu beginnen - dies könnte zur Steuerung einer externen Speicherauswahlschaltung verwendet werden; ein "Daten-verfügbar"-Ausgang 48 wird aktiviert, um anzuzeigen, daß von einem externen Schaltkreis zu verwendende Daten auf dem Datenbus 16 verfügbar sind; und Vorzeichen- und Überlauf-Ausgänge 50 und 52 werden aktiviert, um in konventioneller Weise das Ergebnis der arithmetischen Operationen im Prozessor 10 anzuzeigen.
  • Der Prozessor 10 muß offensichtlich die erforderlichen Verarbeitungsschritte für jeden eingegebenen Signalabtastwert abschließen, ehe der nächste Abtastwert verfügbar ist. In der Praxis würde normalerweise etwas freie Zeit zwischen dem Ende der Verarbeitung eines Abtastwertes und dem Auftreten des nächsten Abtastwertes zur Verfügung stehen. Während dieser freien Zeit aktiviert der Prozessor 10 einen Leerlauf-Ausgang 54, um anzuzeigen, daß er nicht aktiv arbeitet und somit den Adreßbus 14 und den Datenbus 16 nicht verwendet. Ein externer Schaltkreis kann, falls erforderlich, auf dieses Signal durch Aktivieren eines Halte-Eingangs 56 reagieren, wodurch die Operation bzw. der Betrieb des Prozessors 10 eingestellt und der externen Schaltung die eigene Verwendung des Adreßbusses 14 und des Datenbusses 16 ermöglicht wird. Dies könnte z. B. im Fall einer Sprachsynthese durchgeführt werden, bei der es erwünscht ist, die vom Prozessor 10 verwendeten und im Speicher 12 abgespeicherten Koeffizienten zwischen den Verarbeitungsfolgen für aufeinanderfolgende Eingangs-Abtastwerte zu ändern.
  • Der Aufbau und der Betrieb des Signalprozessors 10 wird nachfolgend mit Bezug auf die Fig. 2 detaillierter beschrieben, die ein geringfügig vereinfachtes Blockdiagramm des Prozessorschaltkreises darstellt.
  • Bezieht man sich auf Fig. 2, so wird der Betrieb des Prozessors 10 mit Hilfe einer Steuer- und Zeitgeberschaltung 100 koordiniert. Diese umfaßt eine Steuerschaltung 102, die das Systemtaktsignal über die Leitung 38 empfängt, einen Programmzähler 104, der die Speicheradreßsignale auf dem Adreßbus 14 erzeugt, einen Befehlspuffer 106, der die Daten empfängt, die Befehle auf dem Datenbus 16 repräsentieren, und einen Befehlsdecodierer 108. Dieser Decodierer, der einen Festwertspeicher aufweisen kann, der mit den erforderlichen Steuersignalen programmiert ist, die jedem möglichen Befehl entsprechen, führt die Steuersignale einen Kreuzschienenschaltnetzwerk 110 zu, das durch selektives Verbinden der verschiedenen Schaltkreisblöcke oder -elemente des Prozessors 10 entsprechend der speziellen Kombination der Steuersignale reagiert. Das Kreuzschienennetzwerk 110 weist elf Eingänge und elf Ausgänge auf und stellt im wesentlichen eine Multiplexschaltung zum Koppeln irgendeines Eingangs mit irgendeinem Ausgang dar. Somit hat das Netzwerk einhunderteinundzwanzig Schalter, die in Form einer Elfmal-Elf-Matrix angeordnet sind, und eine jedem Schalter zugeordnete Speicherzelle zur Steuerung des Ein/Aus- Zustandes dieses Schalters (siehe Fig. 3). Der Befehlsdecodierer 108 liefert ein 4-Bit-Steuerwort für jeden der elf Ausgänge, das bestimmt, welcher der elf Eingänge mit diesem Ausgang gekoppelt werden soll, indem der geeignete der elf Schalter für diesen Ausgang geschlossen wird. Für die Betriebsgeschwindigkeit wird für jeden Schalter eine doppelte Speicherzelle vorgesehen, so daß der Satz von Steuerwörtern, der durch den nächsten Befehl definiert wird, sequentiell in einen Satz von Zellen geladen werden kann, während die anderen Zellen die Schalter für den Aufbau der Verbindungen steuern, die durch den momentanen Befehl spezifiziert sind. Wird ein Taktsignal von der Steuerschaltung 102 an das Kreuzschienennetzwerk 110 angelegt, so kann das neue Verbindungsmuster für den nächsten Befehl sofort den Schaltern zugeführt werden, um die erforderlichen Verbindungen herzustellen. Somit liefert das Kreuzschienennetzwerk die geeigneten Signale als Eingangssignale an die im Prozessor 10 vorgesehenen Berechnungseinheiten und führt die resultierenden Ausgangssignale verschiedenen, nachfolgend beschriebenen Speichern und Registern zu, wie dies durch jeden auf dem Datenbus 16 empfangenen Befehl vorgeschrieben ist.
  • Eine der Berechnungseinheiten stellt einen Multiplizierer 112 dar, der drei Eingangssignale X&sub0;, X&sub1; und X&sub2; sowie drei Koeffizienten α, β und γ empfängt und das Dreifachprodukt
  • erzeugt.
  • Die Koeffizienten α, β und γ werden vom Speicher 12 über den Datenbus 16 und die Koeffizientenpuffer 114 erhalten. Da jeder Befehl vom Speicher 12 erhalten und in den Befehlspuffer 106 eingegeben wird, werden die entsprechenden Koeffizienten in die Koeffizientenpuffer 114 geladen. Wird ein neues Verbindungsmuster mit Hilfe des Kreuzschienennetzwerkes 110 in Erwiderung auf den oben beschriebenen Befehl erzeugt, so werden die in den Puffern 114 gehaltenen Werte gleichzeitig an den Multiplizierer 112 angelegt. Für einen bestimmten Wert des vom Speicher 12 erhaltenen γ-Koeffizienten wird jedoch der tatsächliche γ- Wert statt dessen von einem Multiplikanden-Register 116 erhalten, das wiederum mit Werten von anderen Schaltungen im Prozessor 10 über das Kreuzschienennetzwerk 110 geladen wird. Dies ermöglicht die Realisierung derartiger Funktionen wie z. B. adaptives Filtern, Korrelieren, Modulieren und Quadrieren.
  • Ferner kann unter Steuerung des Befehlsdecodierers 108 und des Vorzeichens der "Quellen"-Daten (die im Befehl als solche identifiziert sind) jeder der vom Kreuzschienennetzwerk 110 dem Multiplizierer 112 zugeführten Werte X&sub0;, X&sub1; und X&sub2; selektiv maskiert (d. h. durch Null ersetzt) oder invertiert werden, was die Realisierung von Vollweg- und Einweggleichrichtung und eines vorzeichenabhängigen Verstärkungsfaktors ermöglicht.
  • Der Multiplizierer 112 stellt eine Serien/Parallel- Schaltung dar, bei der die Multiplikationen ausgeführt werden, indem die Werte X&sub0;, X&sub1; und X&sub2; seriell (Bit um Bit) zugeführt werden, alle Bits der Koeffizienten jedoch parallel verfügbar sind. Diese Operationen können z. B. auf der als Booth'scher Algorithmus bekannten Technik beruhen.
  • Das Ausgangssignal R vom Multiplizierer 112 wird seriell einer Substitutionsschaltung 118 zugeführt, die, wie nachfolgend beschrieben wird, das Ergebnis selektiv in Abhängigkeit von dem Befehl, der ausgeführt wird, dem Vorzeichen des Wertes, der als "Quellen"-Datenwert identifiziert ist, dem Vorzeichen des Ergebnisses R und in Abhängigkeit davon ändert, ob das Ergebnis R einen Überlauf erzeugt hat. Dies ermöglicht, daß Überläufe korrigiert (durch Substitution des maximal zulässigen Wertes, wodurch ein Sättigungseffekt vorgesehen wird) werden können. Dies kann z. B. dazu verwendet werden, eine Mittenbeschneidung und Spitzenwertgleichrichtung vorzusehen.
  • Der Ausgang von der Substitutionsschaltung 118 weist zwei Signale auf: den Endwert V, der durch Ausführen des Befehls erzeugt wird, und ein Rückkopplungssignal F. Diese Signale werden mit Hilfe des Kreuzschienennetzwerkes 110 für die Speicherung und Verwendung während der Ausführung der folgenden Befehle geleitet. Für jeden Befehl erzeugt die Substitutionsschaltung 118 diese Ausgangssignale seriell, während der Multiplizierer 112 die betreffenden Signale bei der Ausführung des folgende Befehls empfängt. Somit kann der Signalwert V einer anderen Schaltung zum zeitweiligen Speichern zugeführt oder zum Multiplizierer 112 zur sofortigen Verwendung in dem Befehl zurückgeführt werden, der dem folgt, der ihn erzeugt hat.
  • Die andere Einheit zur Durchführung einer Berechnung ist ein Akkumulator 120. Vom Kreuzschienennetzwerk 110 ankommende Daten können entweder addiert werden oder die vorliegenden Inhalte des Akkumulators 120 ersetzten. Eine Schiebefunktion am Ausgang des Akkumulators ermöglicht, daß der Wert durch eine Zweierpotenz (z. B. zwischen 1/64 und 256) skaliert wird, während die Inhalte dem Kreuzschienennetzwerk 110 zugeführt werden.
  • Zwischenwerte bei den Signalverarbeitungsfunktionen sowie während der Ausführung der nachfolgenden Befehle erforderliche Ausgangswerte können in einem der beiden Zwischenregister 122 und 124, in eine Registerdatei 126 oder in einem Datenspeicher 128 abgespeichert werden.
  • Die Zwischenregister 122 und 124 stellen im wesentlichen 32-Bit Schieberegister dar, deren Inhalte seriell zum Kreuzschienennetzwerk 110 für jeden Befehl mit einem Taktsignal ausgelesen werden, während Daten von der zugehörigen Ausgangsklemme des Netzwerks 110 eingelesen werden. Falls die Inhalte jedes Registers für einen speziellen Befehl nicht erforderlich sind, kann das Kreuzschienennetzwerk geschaltet werden, um die Inhalte dieses Registers in dieses zurücklaufen zu lassen (siehe Fig. 4).
  • Die Registerdatei 126 kann vier Werte gleichzeitig speichern und stellt ebenso eine Form eines Schieberegisters dar. Jedoch weist es insoweit die zusätzliche Fähigkeit auf, daß der auszulesende spezielle Wert der vier Werte und der spezielle Wert, der durch den ankommenden neuen Datenwert während der Ausführung eines Befehls ersetzt wird, unter Steuerung diese Befehls unabhängig ausgewählt werden können. Demzufolge ruft im Gegensatz zu einem normalen Schieberegister das Auslesen eines Wertes nicht dessen Verlust hervor und der gleiche Wert kann mehrmals zur Verwendung bei mehreren unterschiedlichen Befehlen ausgelesen werden. In der Praxis kann die Registerdatei unter Verwendung eines RAM realisiert werden, auf das seriell Bit um Bit Zugriff ausgeübt werden kann.
  • Abhängig von dem Umfang der mit dem Prozessor 10 zu realisierenden Funktionen kann die Registerdatei 126 eine größere Kapazität als vier Werte oder eine geringere Kapazität aufweisen. Als Grenzwert könnte diese nur einen einzigen Wert speichern, wobei diese dann einfach ein drittes Zwischenregister, wie die Register 122 und 124, ausbilden würde. Jedoch ist die Fähigkeit des Speicherns mehrerer unterschiedlicher und unabhängig zugänglicher Werte von Vorteil.
  • Der Datenspeicher 128 schließt ein 2 Kilobit RAM ein, das so organisiert ist, daß es eine Verzögerung variabler Länge vorsieht, ehe die Daten, die einem seiner beiden Eingänge zugeführt werden, an dem entsprechenden Ausgang erscheinen. Das RAM ist in Form von zwei 32·32 Speicherzellengruppierungen organisiert und die Verzögerung kann in Zuwachsraten von 32 Bit variiert werden, so daß das RAM einem Zweikanalschieberegister mit einer Länge entspricht, die ein Vielfaches von 32 Bit ist. Die vom Speicher 128 vorgesehene Verzögerung wird durch den Befehlsdecodierer 108 in Erwiderung auf spezielle Befehle vom Speicher 12 gesteuert.
  • Obwohl diese serielle Anordnung die Verwendung des Prozessors auf Verarbeitungsalgorithmen beschränkt, die zu einem seriellen Speicherzugriff kompatibel sind, weist diese den Vorteil der Vereinfachung der Steuerung der Speicherschaltung auf. Im einzelnen sind die Anzahl der Wörter im Speicher 128 zu irgendeinem Zeitpunkt und ihre Länge unwichtig. Der einzige wichtige Parameter stellt die erforderliche Verzögerung dar, die als eine Anzahl von Bits ausgedrückt wird.
  • Der Hauptzweck des Speichers 128 besteht in der Speicherung der Werte von Paaren der Zustandsvariablen, die Filterfunktionen zweiter Ordnung zugeordnet sind. Die Anzahl an Werten, die aufgenommen werden kann, hängt von der gewählten Wortlänge ab (die wiederum die Auflösung der Signalverarbeitung bestimmt); für eine 20-Bit-Wortlänge können bis zu 51 Wertepaare gespeichert werden, wohingegen bei einer 32-Bit-Länge nur maximal 32 Paare gespeichert werden können.
  • Mehr Details über den Aufbau und die Arbeitsweise eines Schaltkreises, der zur Verwendung in dem Multiplizierer 112 und dem Speicher 128 geeignet ist, sind z. B. in der Veröffentlichung "A bit serial VLSI architectural methodology for signal processing" von Richard F. Lyon, erhältlich von Xerox Palo Alto Research Center, 3333 Coyote Hill Road, Palo Alto, Kalifornien, USA und den darin angeführten Referenzen zu finden.
  • Die seriellen Eingangs- und Ausgangsleitungen 20 und 26 und ihre zugehörigen Steuer- und Taktleitungen 22, 24, 30, 32 und 36 stehen mit seriellen Eingangs- und Ausgangsschnittstellen 130 und 132 in Verbindung. Diese sehen in konventioneller Weise eine Pufferung zwischen dem Betrieb der Wandler 18 und 28 und dem Betrieb des internen Schaltkreises des Prozessors 10 vor. Sie können jeweils zwei serielle Puffer aufweisen, so daß sie synchron mit dem Datentakt 34 Daten zu den Wandlern 18 und 28 hinführen oder von diesen wegführen können und gleichzeitig Daten über das Kreuzschienennetzwerk 110 synchron mit dem Systemtakt 40 zur Verfügung stellen oder empfangen können.
  • Zusätzlich zu den Verbindungen zu den verschiedenen anderen Schaltkreiselementen des in Fig. 2 gezeigten Prozessors 10 weist das Kreuzschienennetzwerk 110 auch Eingänge 134 und 136 auf, die konstante Signale zur Verfügung stellen, die die Werte 0 bzw. -1 repräsentieren.
  • Beim Betrieb werden die Befehle im Speicher 12 für jeden empfangenen Eingangsabtastwert der Reihe nach ausgeführt. Jeder Befehl bewirkt die Erstellung eines speziellen Musters von Verbindungen zwischen den Schaltkreiselementen, wie oben beschrieben, wobei die somit ausgewählten Muster und ihre Reihenfolge die vom Prozessor 10 ausgeführte Signalverarbeitungsfunktion definieren.
  • Jeder Befehl weist einen zugehörigen Haupt- oder "Quellen"- Eingangswert für die durch diesen Befehl ausgeführte Funktion auf. Der tatsächliche, innerhalb des Prozessors vorliegende Ausgangspunkt der Quellendaten ändert sich in Abhängigkeit von der zu realisierenden Funktion. Somit würde bei einer Kaskadenfilterfunktion der Quellendatenwert für den ersten Befehl in der Befehlsfolge der Eingangsabtastwert von der Eingangsschnittstelle 130 sein, während der Quellendatenwert für jeden folgenden Befehl das Ergebnis V des vorhergehenden Befehls sein würde. Bei einem Aufbau, der parallel mehrere biquadratische Filterfunktionen aufweist, würde andererseits der Eingangsabtastwert zuerst in die Registerdatei 126 kopiert und dann wiederholt als Quellendateiwert für jeden Befehl verwendet werden.
  • Bei jedem Schritt in der Befehlsfolge können die Quellendaten so gewählt werden, daß sie das Ergebnis V des vorhergehenden Befehlsschrittes, die Inhalte des Akkumulators 120, einen ausgewählten Wert von der Registerdatei 126, die Inhalte eines der Zwischenregister 122 und 124, die Inhalte jedes Kanals des Datenspeichers 128 mit seriellem Zugriff oder die den momentanen Abtastwert, der über die Eingangsschnittstelle 130 eingegeben wird, einschließen. Die Werte X&sub0;, X&sub1; und X&sub2; und in manchen Fällen die Quellendaten werden implizit durch den speziellen Befehl, der ausgeführt wird, ausgewählt.
  • Jeder Befehl kann auch den Akkumulator 120 so steuern, daß dieser keine Aktionen unternimmt, mit Ausnahme des Haltens seiner momentanen Inhalte; auf Null zurückgesetzt wird; den Ergebniswert V zu seinen momentanen Inhalten hinzuaddiert; den Wert V anstelle seiner momentanen Inhalte lädt; einen ausgewählten Wert von der Registerdatei 126 zu seinen momentanen Inhalten hinzuaddiert; einen ausgewählten Wert von der Registerdatei 126 anstelle seiner momentanen Inhalte lädt; den momentanen Eingangsabtastwert von der Schnittstelle 130 anstelle seiner momentanen Inhalte lädt; oder die Summe aus diesem Abtastwert und dem Ergebnis V vom vorhergehenden Befehlsschritt anstelle seiner momentanen Inhalte lädt.
  • Irgendein ausgewählter Speicherplatz in der Registerdatei 126 kann belegt werden mit: dem momentanen Ergebnis V; den Inhalten des Akkumulators 120; den Inhalten irgendeines ausgewählten Speicherplatzes in der Registerdatei 126 selbst; den Inhalten eines der beiden Zwischenregister 122 und 124 oder eines der beiden Kanäle im Datenspeicher 128; oder dem momentanen Eingangsabtastwert von der Schnittstelle 130. Das Multiplikanden-Register 116 kann gleichfalls mit irgendeinem dieser Werte geladen werden oder seine momentanen Inhalte beibehalten.
  • Die Ausgangsschnittstelle 132 kann mit einem Ausgangsabtastwert, der irgendeinen dieser gleichen Werte aufweist, und zwar mit Ausnahme des Eingangsabtastwertes, versorgt werden oder auch inaktiv bleiben.
  • Es ist ersichtlich, daß diese Optionen es ermöglichen, eine breite Vielfalt von Signalverarbeitungsfunktionen durch geeignete Wahl der Verbindungsmuster und ihrer Reihenfolge zu realisieren. Als Beispiel werden zwei spezielle Filterfunktionen beschrieben, um die Arbeitsweise des Prozessors 10 zu verdeutlichen.
  • Das erste Beispiel betrifft eine biquadratische Filterfunktion, die als Baustein für viele Filter, einschließlich Hochpaß-, Tiefpaß- und Bandpaßfilter verwendet wird und schematisch in Fig. 5a unter Verwendung einer Standardsignalverarbeitungsschreibweise dargestellt ist. Dies kann mit Hilfe des Prozessors 10 mit einem iterativen Befehlszyklus realisiert werden, der zwei Befehle enthält, von denen der erste Zwischenergebnisse von vorhergehenden Iterationen verwendet.
  • Während des ersten Befehls stellt das Kreuzschienennetzwerk 110 die folgenden Verbindungen her, um mit der Berechnung eines neuen Wertes zu beginnen und um auch den in der vorhergehenden Iteration berechneten Abtastwert aus zugeben. Eingang Ausgang
  • Somit wird der Eingangsabtastwert mit γ&sub1; multipliziert, das Zwischenergebnis von der vorhergehenden Iteration (das in dem Datenspeicher 128 gehalten wird) mit α&sub1; multipliziert und das Zwischenergebnis von der Iteration vor dieser (auch im Datenspeicher 128) mit β&sub1; multipliziert, wobei α&sub1;, β&sub1; und γ&sub1; vom Speicher 12 zur Verfügung gestellt wurden. Gleichzeitig werden diese früheren Zwischenergebnisse in die Zwischenregister 122 und 124 zur Verwendung während des zweiten Schrittes der Iteration kopiert.
  • Bei diesem zweiten Schritt wird der aktuelle Ausgangsabtastwert berechnet, wobei das Kreuzschienennetzwerk 110 die folgenden Verbindungen tätigt: Eingang Ausgang
  • Das Zwischenergebnis V vom ersten Befehl wird sowohl mit β&sub2; multipliziert als auch dem Datenspeicher 128 zur Verwendung bei der nächsten Iteration zugeführt; das Zwischenergebnis von der vorhergehenden Iteration wird mit α&sub2; multipliziert und ebenso zum Datenspeicher 129 zurückgeführt; und das Zwischenergebnis der Iteration vor dieser wird mit γ&sub2; multipliziert.
  • Das neue Ergebnis vom Multiplizierer 112 wird der Substitutionsschaltung 118 zugeführt, von der es als Wert V während des ersten Befehls der folgenden Iteration der Ausgangsschnittstelle 132 zugeführt wird.
  • Der erste Befehl jeder Iteration realisiert praktisch die Pole der Filterkennlinie, während der zweite die Nullen der Kennlinie realisiert (siehe Fig. 5b) Die tatsächlichen Filterwerte, wie z. B. die Bandbreite und die Mittenfrequenz des Durchlaßbereichs werden durch die Werte der Koeffizienten α, β und γ bestimmt, die bei jedem Befehl verwendet werden. Der γ-Koeffizient wird in diesem Fall einfach als Skalierungs- oder Verstärkungsfaktor verwendet. Die Werte α und β für den ersten Befehl würden gemäß folgenden Gleichungen
  • und für den zweiten Befehl gemäß den folgenden Gleichungen
  • berechnet.
  • In beiden Fällen gilt R= 2πf/Fs und r=e-π·b/Fs, wobei f die gewünschte Mittenfrequenz;
  • Fs die Frequenz, mit der das Eingangssignal vom Wandler 18 abgetastet wird; und
  • b die gewünschte Bandbreite ist.
  • Das zweite Beispiel stellt ein Allpol-Bandpaßfilter dar, dem ein Gleichrichter und eine Glättungsschaltung, wie in Fig. 6a gezeigt ist, folgt. Dies erfordert drei Befehle für deren Realisierung, wobei der erste bewirkt, daß das Kreuzschienennetzwerk die folgenden Verbindungen erstellt: Eingang Ausgang Egal
  • Der erste Zwischenwert wird berechnet aus dem Eingangsabtastwert, den beiden entsprechenden vorhergehenden Zwischenwerten (in dem Datenspeicher 128 gehalten) und den Koeffizienten α&sub1;, β&sub1; und γ&sub1; für diesen Befehl, wie für das obige erste Beispiel. Gleichzeitig wird das Ergebnis von der vorhergehenden Iteration der Ausgangsschnittstelle 132 zugeführt und ebenso dem Datenspeicher 128 zur zeitweiligen Speicherung. Der entsprechende Zwischenwert von der vorhergehenden Iteration wird (vorläufig) zu dem Zwischenregister 122 als vorbereitende Maßnahme bewegt, um diesen in den Datenspeicher 128 zur Verwendung bei diesem ersten Befehl in der folgenden Iteration zurückzustellen.
  • Der zweite Befehl stellt ein Verbindungsmuster her, das dem ersten sehr ähnlich ist: Eingang Ausgang
  • Die Hauptunterschiede bestehen darin, daß X&sub0; nun das Zwischenergebnis vom ersten Befehl ist, und daß der Datenspeicher 128 das vorhergehende erste Zwischenergebnis empfängt, das bereit zur Verwendung bei dem ersten Befehl der nächsten Iteration ist, während das Register 122 das neue Zwischenergebnis empfängt, und zwar ebenso für die nachfolgende Übertragung zum Datenspeicher 128.
  • Der dritte Befehl vollendet die Iteration und errichtet ebenso die erforderlichen Verbindungen im Kreuzschienennetzwerk 110 wobei der Befehlsdecodierer 108 den Multiplizierer 112 veranlaßt, daß an seinem X&sub2;-Eingang empfangene Signal (das Zwischenergebnis des zweiten Befehls) selektiv zu invertieren, um den Absolutwert zu erzeugen, was die Gleichrichterfunktion realisiert. Die Verbindungen sind folgende: Eingang Ausgang ABS
  • Das Endergebnis wird der Ausgangsschnittstelle 132 zugeführt und im Datenspeicher 128 während des ersten Befehls der nächsten Iteration gespeichert. Der γ&sub3;- Koeffizient für den X&sub0;-Eingang wird für den dritten Befehl auf 0 (Null) gesetzt, da das X&sub0;-Eingangssignal während dieses Befehls nicht erforderlich ist.
  • Die Werte der drei Koeffizienten werden für die drei Befehle geeignet gewählt, um die gewünschten Filterkenndaten zu erzeugen. Für die ersten beiden Befehle werden sie von der erforderlichen Filterfrequenz, dem erforderlichen Verstärkungsfaktor und der erforderlichen Bandbreite wie für den ersten (Pole) Befehl der biquadratischen Filterfunktion abgeleitet. Für den dritten Befehl ist α&sub3; gleich -r, während β&sub3; der erforderliche Verstärkungsfaktor der Tiefpaßfilter (Glättungs)-Stufe ist.
  • Falls die Realisierung einer Quadrierfunktion in der Endstufe des zweiten Beispiels als Alternative zu einer Vollweggleichrichtung erwünscht ist, kann das Multiplikanden-Register 116 verwendet werden. Der zweite Befehl würde modifiziert werden, um dieses Register (der M- Ausgang des Kreuzschienennetzwerkes 110) vom Datenspeicher 128 (D-Eingang des Netzwerkes 110) zu laden. Somit würden für den dritten Befehl das Zwischenregister 122 (B) und das Multiplikanden-Register 116 die gleichen verzögerten Zwischenwerte von dem zweiten Befehl der vorhergehenden Iteration enthalten. Bei dem dritten Befehl würde der X&sub0;- Eingang des Multiplizierers 112 so gekoppelt werden, daß die Inhalte des Zwischenregisters 122 (B) empfangen werden; der γ&sub3;-Wert würde der spezielle Wert sein, der das Substituieren bzw. Ersetzen der Inhalte des Multiplikanden- Registers 116 durch den γ-Koeffizienten bewirkt; und β&sub3; würde auf 0 gesetzt werden, um die Wirkung des X&sub2;-Einganges zu unterdrücken. Somit würden die gleichen Werte in dem Zwischenregister 122 und dem Multiplikanden-Register 116 miteinander multipliziert werden, was das Quadrat ihrer Inhalte ergeben würde. Es sollte bemerkt werden, daß diese Modifikation dazu führen würde, daß das Ausgangssignal von der Iteration um die Dauer einer Iteration im Vergleich zu dem nicht modifizierten Verfahren verzögert würde.
  • Die obigen Beispiele gehen davon aus, daß die Verzögerung im Datenspeicher geeignet festgesetzt wurde. Im ersten Fall würde diese Verzögerung eine Befehlsperiode ausmachen, während im zweiten Beispiel diese zwei Befehlsperioden ausmachen würde.
  • Die meisten der Schaltkreiselemente, die in Fig. 2 gezeigt und vorstehend beschrieben wurden, beruhen auf bekannten Techniken und Konstruktionen für logische Schaltungen, so daß diese rasch von einem Durchschnittsfachmann erstellt werden können. Sie Substitutionsschaltung 118 hingegen weist eine spezielle Konstruktion auf und wird deshalb mit Bezug auf Fig. 7 detaillierter beschrieben.
  • Betrachtet man Fig. 7, so wird das Ergebnis vom Multiplizierer 112 einem Eingang eines Vier-zu-Eins- Multiplexers 180 zugeführt, der eine Sättigungsfunktion bereitstellt. Die anderen Eingänge zu diesem Multiplexer stellen konstante Signale dar, die +1, -1 und 0 repräsentieren. Der Steuereingang des Multiplexers 180 wird durch Ausgangssignale von einem ROM 182 angesteuert, das als Eingangssignale empfängt: den Teil des Befehls vom Speicher 12, der die durch diesen Befehl zu realisierende Funktion definiert (d. h. den Teil, der auch das Kreuzschienennetzwerk 110 steuert); Signale, die das Vorzeichen des Wertes anzeigen, der als "Quellen"-Datenwert zugeführt wird; das Vorzeichen des vom Multiplizierer 112 (Leitung 50) erzeugten Ergebnisses; und das Überlaufsignal (Leitung 52). Das ROM 182 wird mit Steuersignalen geladen, die jeder möglichen Kombination von Vorzeichen- und Überlaufmerkern für jeden Befehl entsprechen und dem Sättigungs-Multiplexer 180 und zwei weiteren Multiplexern 184 und 186 zugeführt werden, um auszuwählen, welches ihrer Eingangssignale zu ihren Ausgängen gekoppelt wird. Somit hat jedes spezielle Muster von Merker (Flag)-Signalen, das dem ROM 182 für jeden möglichen Befehl zugeführt wird, eine bestimmte entsprechende Auswahl der Eingänge der Multiplexer 180, 184 und 186 zur Folge. Die Steuersignale vom ROM 182 werden den Multiplexern 180, 184 und 186 über entsprechende Signal- bzw. Zwischenspeicher 188, 190 und 192 zugeführt.
  • Der (Vier-zu-Eins-) Multiplexer 184, der das Rückkopplungssignal F erzeugt, empfängt an seinen Eingängen den Ausgang des Multiplexers 180 und drei konstante Signale, die +¼, -¼ und 0 darstellen. Der (Sechs-zu-Eins-) Multiplexer 186, der sein Ausgangssignal einem seriellen Addierer 194 zuführt, empfängt an seinen Eingängen die Inhalte der Zwischenregister 122 und 124, die Inhalte der Registerdatei 126, die komplementierten Inhalte des Zwischenregisters 124, die Inhalte der Zwischenregister 122 und 124, die gemäß C+2B oder C-2B abhängig von einem Steuersignal auf einer Leitung 196 vom ROM 182 kombiniert sind, und ein konstantes Signal, das 0 darstellt.
  • Der serielle Addierer kombiniert das Ausgangssignal vom Addier-Multiplexer 186 mit dem des Sättigungs-Multiplexers 180, um den aktuellen Wert zu erzeugen, der das Ergebnis der Ausführung eines Befehls durch den Prozessor 10 bildet. Dieser Wert wird dem Kreuzschienennetzwerk 110 nach Ausführung des Befehls zugeführt, während der Multiplizierer 112 sein Ergebnis abgibt und die neuen Daten für den nächsten Befehl empfängt.
  • Der Hauptzweck der Substitutionsschaltung 118 besteht in der Korrektur von Überläufen durch Substituieren von Sättigungswerten +1 oder -1, wie es angemessen ist. Ist somit der Überlauf-Merker gelöscht (kein Überlauf), so wird das Ergebnis des Multiplizierers durch den Sättigungs- Multiplexer 180 ausgewählt und vom Addier-Multiplexer 186 wird 0 ausgewählt, so daß der Addierer 194 das Ergebnis des Multiplizierers ungeändert zuführt. Falls der Überlauf- Merker jedoch gesetzt ist, setzt der Sättigungs-Multiplexer 180 +1 oder -1 an die Stelle des Ergebnisses des Multiplizierers, und zwar entsprechend dem Vorzeichen des Ergebnisses und dieser Wert wird dafür vom Addierer 194 ausgegeben. In jedem Fall wählt der Rückkopplungs- Multiplexer 184 das Ausgangssignal des Sättigungs- Multiplexers 180 aus.
  • Ein anderes Beispiel für die Verwendung der Substitutionsschaltung 118 stellt die Realisierung einer Nulldurchgangserfassung dar. Die Arbeitsweise der Schaltung wird in der folgenden Tabelle zusammengefaßt: Quelle Vorzeichen Ergebnis Vorzeichen Überlauf Multiplexer
  • Solange die Vorzeichen der Quelle und des Ergebnisses gleich sind, wird kein Ausgangssignal erzeugt, jedoch ein kleiner Wert mit dem gleichen Vorzeichen zurückgeführt und mit dem nächsten Eingangsabtastwert summiert. Falls sich die Vorzeichen der Quelle und des Ergebnisses unterscheiden (was einen Nulldurchgang anzeigt), so wählt der Sättigungs- Multiplexer 180 +1 oder -1 aus, um somit ein Ausgangssignal auszugeben, das entsprechend dem Vorzeichen des Quellensignals ausgewählt ist. Somit läuft eine ins Positive gehende Änderung auf einen positiven Impuls als Ausgangssignal hinaus, während eine ins Negative gehende Änderung einen negativen Impuls zur Folge hat.
  • Falls die Realisierung einer biquadratischen Filterfunktion mit Nullen bei Z=+1 und -1, wofür α=0 und β=+1 ist, erforderlich ist, kann die Substitutionsschaltung 118 zur Verringerung der Anzahl an Befehlen von zwei auf einen verwendet werden. Nachdem der Multiplizierer 112 die Berechnung für die Pole der Filterkennlinie (siehe ersten Befehl beim oben erwähnten ersten Beispiel) durchgeführt hat, würde der Addier-Multiplexer 186 vom ROM 182 so gesteuert, daß er das Signal vom Zwischenregister 124 (C) auswählt, wobei dieses zu dem Ergebnis des Multiplizierers (über den Multiplexer 180) mit Hilfe des seriellen Addierers 194 hinzuaddiert würde, um sofort den endgültigen Ausgangswert zu erzeugen, der die beiden Nullen einschließt. Gleichzeitig würde der Rückkopplungs- Multiplexer 184 so gesteuert werden, daß er das Ergebnis des Multiplizierers selbst (über den Multiplexer 180) zur Rückführung zum Datenspeicher 128 zur Verwendung bei der folgenden Iteration auswählt.
  • Viele unterschiedliche Anwendungen des Prozessors 10 unter Verwendung verschiedener Kombinationen von Verbindungsmustern werden dem Durchschnittsfachmann auf dem Gebiet der digitalen Signalverarbeitung einfallen, und zwar angesichts der erheblichen Betriebsflexibilität, die er vorsieht; z. B. rekursive Filter (sowohl in Parallel- wie auch Kaskadenform), Kettenfilter mit oder ohne Abgriffe, Filter mit endlicher Impulsantwort und Dezimatoren. Außerdem können Modifikationen und Weiterentwicklungen durchgeführt werden; so können z. B. die verschiedenen Register und Speicher Wortlängen aufweisen, die für den erforderlichen Auflösungsgrad ausgewählt sind, oder variable Wortlängen aufweisen, wobei die Länge in irgendeinem bestimmten Fall durch Befehle im Speicher 12 spezifiziert wird. Im letztgenannten Fall würde ein Paar Schieberegister mit variabler Länge in Reihe mit dem RAM im Datenspeicher 128 geschaltet sein, um zusätzliche wählbare Verzögerungen in Schritten von 4 Bit von 0 bis 28 Bit vorzusehen, so daß das Wort in Zuwachsraten von 4 Bit eingestellt werden kann.

Claims (7)

1. Ein digitaler Signalprozessor (130) mit Verarbeitungselementen, welche einschließen eine Eingangsschnittstelle, eine Ausgangsschnittstelle (132), einen Datenspeicher (128) und eine Recheneinheit; einem Kreuzschienenschaltnetzwerk (110) zur selektiven Verbindung der vorgenannten Elemente miteinander; und einer Steuerschaltung, die auf jeden einer Vielzahl vorbestimmter Befehle ansprechen kann, um das Kreuzschienennetzwerk für eine Verbindung der Elemente in entsprechenden vorbestimmten Weisen zu steuern, dadurch gekennzeichnet, daß: der Datenspeicher (128) ein Datenspeicher mit seriellem Zugriff und mit zumindest zwei Datenkanälen ist, daß die Recheneinheit einen Multiplizierer (112) umfaßt zum Multiplizieren zumindest dreier seriell durch entsprechende Koeffizienten dargestellter Variablen und zum Summieren der Produkte, und eine Vorrichtung (118), die einen überlauf in dem Ausgangssignal des Multiplizierers feststellt und vorbestimmte Sättigungswerte für das Ausgangssignal ersetzt, daß zumindest zwei Schieberegister (122, 124) in beiden Richtungen mit dem Kreuzschienennetzwerk gekoppelt sind; und daß die Steuerschaltung (108) auf eine ausgewählte Folge von der Steuerschaltung zugeführten Befehlen ansprechen kann, um zu bewirken, daß die Verarbeitungselemente durch das Kreuzschienennetzwerk in einer gewählten Folge miteinander verbunden werden, die ausgewählt wird, um eine gewünschte Signalverarbeitungsfunktion zu bewirken.
2. Ein Prozessor nach Anspruch 1, der zumindest einen Akkumulator (120) aufweist.
3. Ein Prozessor nach Anspruch 1 oder Anspruch 2, der ein drittes Schieberegister aufweist.
4. Ein Prozessor nach Anspruch 3, wobei eines der Schieberegister eine Vielzahl von Werten speichern kann, wobei die Position eines herauszuschiebenden Wertes unabhängig von der Position auswählbar ist, die einen neuen einzuschiebenden Wert empfangen soll.
5. Ein Prozessor nach einem der vorhergehenden Ansprüche, wobei die Feststell- und Substitutionsvorrichtung (118) auch das Quellenkennzeichen und Ergebnisdatensignale empfangen und das Multipliziererausgangssignal gemäß der Kombination von festgestellten Überlauf- und Kennzeichensignalen und dem ausgeführten Befehl ändern kann.
6. Ein Prozessor nach einem der vorhergehenden Ansprüche, wobei der Multiplizierer eine Eingangsschaltungsvorrichtung aufweist, die selektiv den ihr zugeführten Wert invertieren oder durch Null ersetzen kann.
7. Ein Prozessor nach einem der vorhergehenden Ansprüche, wobei die Koeffizienten in der mit der Steuerschaltung und dem Multiplizierer gekoppelten Speichervorrichtung (114) gespeichert sind, und mit einem Register (116), das mit dem Kreuzschienennetzwerk verbunden ist, um einen Wert von einem der anderen Verarbeitungselemente zu empfangen, und das selektiv den Wert eines von der Speichervorrichtung zugeführten Koeffizienten ersetzen kann.
DE8484302324T 1983-04-09 1984-04-05 Digitale signalverarbeitungseinrichtungen. Expired - Lifetime DE3485792T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB08309696A GB2137839B (en) 1983-04-09 1983-04-09 Digital signal processors

Publications (2)

Publication Number Publication Date
DE3485792D1 DE3485792D1 (de) 1992-08-06
DE3485792T2 true DE3485792T2 (de) 1993-02-25

Family

ID=10540868

Family Applications (1)

Application Number Title Priority Date Filing Date
DE8484302324T Expired - Lifetime DE3485792T2 (de) 1983-04-09 1984-04-05 Digitale signalverarbeitungseinrichtungen.

Country Status (6)

Country Link
US (1) US4633386A (de)
EP (1) EP0122117B1 (de)
JP (1) JPH0773183B2 (de)
CA (1) CA1211220A (de)
DE (1) DE3485792T2 (de)
GB (1) GB2137839B (de)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0296963A (ja) * 1988-10-03 1990-04-09 Hitachi Ltd 半導体集積回路装置
US5652910A (en) * 1989-05-04 1997-07-29 Texas Instruments Incorporated Devices and systems with conditional instructions
US5204962A (en) * 1989-11-30 1993-04-20 Mitsubishi Denki Kabushiki Kaisha Processor with preceding operation circuit connected to output of data register
US5471593A (en) * 1989-12-11 1995-11-28 Branigin; Michael H. Computer processor with an efficient means of executing many instructions simultaneously
US5278548A (en) * 1991-04-11 1994-01-11 The United States Of America As Represented By The Secretary Of The Navy Buffered feedthrough crossbar switch
US5410300A (en) * 1991-09-06 1995-04-25 International Business Machines Corporation Distributed crossbar switch architecture
JP3055316B2 (ja) * 1992-08-13 2000-06-26 ヤマハ株式会社 デジタル信号プロセッサ
JPH06337729A (ja) * 1993-05-27 1994-12-06 Fujitsu Ltd ネットワークサービスシステム
US5892631A (en) * 1995-09-08 1999-04-06 Seagate Technology, Inc. Method and an arrangement for detecting state transitions in a read signal during a bit cell timing window
US6247036B1 (en) 1996-01-22 2001-06-12 Infinite Technology Corp. Processor with reconfigurable arithmetic data path
US5905757A (en) * 1996-10-04 1999-05-18 Motorola, Inc. Filter co-processor
US5999656A (en) * 1997-01-17 1999-12-07 Ricoh Co., Ltd. Overlapped reversible transforms for unified lossless/lossy compression
US5982314A (en) * 1997-06-27 1999-11-09 Cirrus Logic, Inc. Self-timed multiplier for gain compensation and reduced latency in analog to digital converters
AUPP217798A0 (en) * 1998-03-06 1998-03-26 Liguori, Vincenzo A simple discrete cosine transform implementation
US7489779B2 (en) 2001-03-22 2009-02-10 Qstholdings, Llc Hardware implementation of the secure hash standard
US6836839B2 (en) 2001-03-22 2004-12-28 Quicksilver Technology, Inc. Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
US20040133745A1 (en) 2002-10-28 2004-07-08 Quicksilver Technology, Inc. Adaptable datapath for a digital processing system
US7653710B2 (en) 2002-06-25 2010-01-26 Qst Holdings, Llc. Hardware task manager
US7752419B1 (en) 2001-03-22 2010-07-06 Qst Holdings, Llc Method and system for managing hardware resources to implement system functions using an adaptive computing architecture
US7962716B2 (en) 2001-03-22 2011-06-14 Qst Holdings, Inc. Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
US7400668B2 (en) 2001-03-22 2008-07-15 Qst Holdings, Llc Method and system for implementing a system acquisition function for use with a communication device
US6577678B2 (en) 2001-05-08 2003-06-10 Quicksilver Technology Method and system for reconfigurable channel coding
US7046635B2 (en) 2001-11-28 2006-05-16 Quicksilver Technology, Inc. System for authorizing functionality in adaptable hardware devices
US6986021B2 (en) 2001-11-30 2006-01-10 Quick Silver Technology, Inc. Apparatus, method, system and executable module for configuration and operation of adaptive integrated circuitry having fixed, application specific computational elements
US8412915B2 (en) 2001-11-30 2013-04-02 Altera Corporation Apparatus, system and method for configuration of adaptive integrated circuitry having heterogeneous computational elements
US7602740B2 (en) 2001-12-10 2009-10-13 Qst Holdings, Inc. System for adapting device standards after manufacture
US7215701B2 (en) 2001-12-12 2007-05-08 Sharad Sambhwani Low I/O bandwidth method and system for implementing detection and identification of scrambling codes
US7403981B2 (en) * 2002-01-04 2008-07-22 Quicksilver Technology, Inc. Apparatus and method for adaptive multimedia reception and transmission in communication environments
US7493375B2 (en) 2002-04-29 2009-02-17 Qst Holding, Llc Storage and delivery of device features
US7328414B1 (en) 2003-05-13 2008-02-05 Qst Holdings, Llc Method and system for creating and programming an adaptive computing engine
US7660984B1 (en) 2003-05-13 2010-02-09 Quicksilver Technology Method and system for achieving individualized protected space in an operating system
AU2003281787A1 (en) * 2002-07-31 2004-02-23 Koninklijke Philips Electronics N.V. Data processing circuit
US8108656B2 (en) 2002-08-29 2012-01-31 Qst Holdings, Llc Task definition for specifying resource requirements
US7937591B1 (en) 2002-10-25 2011-05-03 Qst Holdings, Llc Method and system for providing a device which can be adapted on an ongoing basis
US7478031B2 (en) 2002-11-07 2009-01-13 Qst Holdings, Llc Method, system and program for developing and scheduling adaptive integrated circuity and corresponding control or configuration information
US8276135B2 (en) 2002-11-07 2012-09-25 Qst Holdings Llc Profiling of software and circuit designs utilizing data operation analyses
US7225301B2 (en) 2002-11-22 2007-05-29 Quicksilver Technologies External memory controller node
US7609297B2 (en) 2003-06-25 2009-10-27 Qst Holdings, Inc. Configurable hardware based digital imaging apparatus
US20060224653A1 (en) * 2005-04-01 2006-10-05 Kimming So Method and system for dynamic session control of digital signal processing operations
US9965251B2 (en) * 2006-04-03 2018-05-08 Blaise Laurent Mouttet Crossbar arithmetic and summation processor
US20070233761A1 (en) * 2006-04-03 2007-10-04 Mouttet Blaise L Crossbar arithmetic processor
US20070231972A1 (en) * 2006-04-03 2007-10-04 Mouttet Blaise L Manufacture of programmable crossbar signal processor
WO2011091323A1 (en) 2010-01-21 2011-07-28 Qst Holdings, Llc A method and apparatus for a general-purpose, multiple-core system for implementing stream-based computations

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4327355A (en) * 1980-06-23 1982-04-27 Burroughs Corporation Digital device with interconnect matrix
JPS58144272A (ja) * 1982-02-19 1983-08-27 Sony Corp デイジタル信号処理装置

Also Published As

Publication number Publication date
EP0122117A2 (de) 1984-10-17
JPH0773183B2 (ja) 1995-08-02
US4633386A (en) 1986-12-30
GB2137839B (en) 1986-06-04
EP0122117B1 (de) 1992-07-01
DE3485792D1 (de) 1992-08-06
JPS6022822A (ja) 1985-02-05
GB2137839A (en) 1984-10-10
CA1211220A (en) 1986-09-09
EP0122117A3 (en) 1986-12-03

Similar Documents

Publication Publication Date Title
DE3485792T2 (de) Digitale signalverarbeitungseinrichtungen.
DE3786594T3 (de) Speicherverwaltungseinheit für Digitalsignalprozessor.
DE3510660C2 (de)
DE3789116T2 (de) Prozessor zur zweidimensionalen diskreten cosinustransformation.
DE68927120T2 (de) Interpolator und Verfahren zur Interpolierung von digitalen Signalmustern
DE3044208C2 (de) Interpolator zur Erhöhung der Wortgeschwindigkeit eines digitalen Signals
DE3789171T2 (de) Mehrstufiges Multiplizier- und Addiergerät für Digitalsignale.
DE69324730T2 (de) Multiplizier-Akkumulator
DE2432594C3 (de) Rekursives Digitalfilter
DE2729912C2 (de) Anordnung zum Erzeugen digitaler Ausgangssignalwerte
DE4345029C2 (de) Schaltkreis für diskrete Kosinustransformation
DE68926154T2 (de) Pipelineprozessor zur Durchführung des LMS Algorithmus
DE69425565T2 (de) Verfahren und vorrichtung in einem transponierten digitalen fir-filter zur multiplikation eines binären eingangssignals mit filterkoeffizienten und verfahren zum entwurf eines digitalen transponierten filters
EP0344347B1 (de) Einrichtung zur digitalen Signalverarbeitung
DE69032358T2 (de) Datenverarbeitungssystem für Audiosignale
DE1909657C3 (de) Digitales Filter
DE2523625A1 (de) Digitalfilter
DE69320218T2 (de) Digitales Filter
DE2450344A1 (de) Schaltungsanordnung zur digitalfrequenz-multiplikation
DE3201088C2 (de)
DE10204647A1 (de) Matrizenrechner des Zeitteilungstyps
DE3788779T2 (de) Digitales, nicht-rekursives Filter mit Multiplizierkoeffizienten der Basis zwei.
DE3621446A1 (de) Geraet zum digitalen verarbeiten von kontinuierlichen bitstroemen
DE3050742C2 (de) Tonsyntheseverfahren
DE3633461A1 (de) Taktsignalgebervorrichtung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition