DE4101928A1 - Digitalsignal-prozessor - Google Patents

Digitalsignal-prozessor

Info

Publication number
DE4101928A1
DE4101928A1 DE4101928A DE4101928A DE4101928A1 DE 4101928 A1 DE4101928 A1 DE 4101928A1 DE 4101928 A DE4101928 A DE 4101928A DE 4101928 A DE4101928 A DE 4101928A DE 4101928 A1 DE4101928 A1 DE 4101928A1
Authority
DE
Germany
Prior art keywords
data
address
value
command
coefficient 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.)
Withdrawn
Application number
DE4101928A
Other languages
English (en)
Inventor
Makio Yamaki
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.)
Pioneer Corp
Original Assignee
Pioneer Electronic 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 Pioneer Electronic Corp filed Critical Pioneer Electronic Corp
Publication of DE4101928A1 publication Critical patent/DE4101928A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Complex Calculations (AREA)

Description

Die Erfindung betrifft einen Digitalsignal-Prozessor (hier als "DSP" bezeichnet), der Digitalsignale wie digitale Audio­ signale empfängt und eine Pipeline-Bearbeitung durchführt.
Beim Ausführen eines Vorgangs gemäß den Befehlen in einem Schritt eines Programms benötigt ein DSP mindestens drei Be­ arbeitungsstufen: eine Stufe zum Auslesen der Programmbefeh­ le, eine Stufe zum Dekodieren der ausgelesenen Befehle und eine Stufe zum Ausführen der dekodierten Befehle. Die "Pipe­ line-Bearbeitung" besteht darin, eine Vielzahl von Befehlen durch diese drei Stufen der Reihe nach einzusetzen für jeden Maschinenzyklus, so daß idealerweise überschüssige Zyklen be­ seitigt werden.
Wenn jedoch bei einem üblichen DSP die Pipeline-Bearbeitung von einem Sprung-Befehl begleitet ist, der die Ergebnisse eines durch eine ALU (arithmetisch-logische Einheit) ausge­ führten arithmetischen Vorgangs benötigt, wird der Fluß der Pipeline gestört, so daß ein "Verzögerungsschlitz" genannter zusätzlicher oder überzähliger Zyklus erforderlich wird. Da das Ergebnis des Sprung-Befehls zwei Schritte später er­ scheint, wird die Programmierung beträchtlich erschwert.
Es ist deshalb ein Ziel der vorliegenden Erfindung, einen DSP zu schaffen, der keinen Verzögerungsschlitz in einem Pro­ gramm braucht, das eine Bearbeitung ausführt aufgrund des Er­ gebnisses eines durch eine ALU bei der Pipeline-Bearbeitung ausgeführten arithmetischen Vorgangs, und der die Program­ mierung erleichtern kann.
Um dieses Ziel zu erreichen, umfaßt ein erfindungsgemäßer DSP einen Koeffizientendatenspeicher, in dem eine Vielzahl von Koeffizientendatensätzen gespeichert sind; Befehlserzeu­ gungsmittel zum Erzeugen eines Befehlssignals gemäß einem Programm; Zuordnungsmittel mit Haltemitteln zum Halten eines durch eine Leseadresse des Koeffizientendatenspeichers ange­ gebenen Wertes und zum Ändern des gehaltenen Wertes durch einen besonderen Wert entsprechend dem Befehlssignal; arith­ metisches Bearbeitungsmittel zum Auslesen von Koeffizienten­ daten aus dem Koeffizientendatenspeicher an einer durch den in dem Haltemittel gehaltenen Wert angegebenen Adresse und zum Ausführen einer arithmetischen Bearbeitung unter Benut­ zung von Daten, welche die ausgelesenen Koeffizientendaten einschließen, in Abhängigkeit von dem Befehlssignal; und ein Merkerregister zum Halten von einem von zwei Werten entspre­ chend einem Ergebnis der durch das arithmetische Betätigungs­ mittel erledigten arithmetischen Bearbeitung; wobei das Zu­ ordnungsmittel enthält Bedingungs-Beurteilungsmittel für den in dem Merkerregister gehaltenen Wert, Schaltkreismittel zum wahlweisen Ausgeben von Daten, die entweder den vorbestimm­ ten Wert oder "0" darstellen, entsprechend einem Ausgangssi­ gnal von dem Bedingungs-Beurteilungsmittel, und Addiermit­ tel, damit das Haltemittel einen Wert halten kann, der durch Addieren eines durch das Ausgabedatum des Schaltkreismittels bezeichneten Wertes zu dem gehaltenen Wert in dem Haltemit­ tel erhalten ist.
Bei dem erfindungsgemäßen DSP werden Daten, die entweder einen vorbestimmten Wert oder "0" darstellen, wahlweise gemäß dem Ergebnis der Entscheidung bei einer Bedingung aus­ gegeben, die aufgrund des im Merkerregister gehaltenen Wertes getroffen wird, und ein durch Hinzufügen der Ausgabe­ daten zu dem gehaltenen Wert in dem Haltemittel erhaltener Wert wird in dem Haltemittel gehalten und so eine direkte Zu­ ordnung einer gelesenen Adresse aus dem Koeffizienten-Daten­ speicher sichergestellt, entsprechend der Bedingungsentschei­ dung und ohne Änderung des Programmflusses.
Die Erfindung wird nachfolgend anhand der Zeichnung bei­ spielsweise näher erläutert; in der Zeichnung zeigt:
Fig. 1 ein Blockschaltbild eines üblichen DSP,
Fig. 2 ein Schaubild, das den Speicherinhalt eines Koeffi­ zientendaten-RAM darstellt,
Fig. 3 ein Befehle in jedem Schritt eines Programms bezeich­ nendes Schaubild, um den Betrieb des DSP aus Fig. 1 aufzuzeigen,
Fig. 4 ein Schaubild der auszuführenden Schritte und be­ zeichneten Adreßwerte des Koeffizientendaten-RAM in jeder Stufe Zyklus um Zyklus beim Ablauf des Pro­ gramms nach Fig. 3,
Fig. 5 ein Blockschaltbild einer Ausführung der vorliegen­ den Erfindung,
Fig. 6 eine Zusammenstellung der Befehle in jedem Schritt eines Programms zur Erklärung des Betriebs des DSP nach Fig. 5, und
Fig. 7 ein Schaubild ähnlich Fig. 4 der auszuführenden Schritte und zugeordneten Adreßwerte des Koeffizien­ tendaten-RAM in jeder Stufe Zyklus um Zyklus beim Ablauf des Programms nach Fig. 6.
Die Struktur eines üblichen DSP wird zunächst mit Bezug auf die Zeichnung erläutert. Der konventionelle DSP besitzt eine Eingabe/Ausgabe-(I/O)-Schnittstelle 1, die an einer Eingangs­ klemme IN und einer Ausgangsklemme OUT für Digitalsignale an­ geschlossen ist, wie Fig. 1 zeigt. Die I/O-Schnittstelle 1 ist auch an einen Datenbus 2 angeschlossen, mit dem ein Si­ gnaldaten-RAM 3, ein Koeffizientendaten-RAM 4 und ein Puffer­ speicher 5 verbunden sind. Der Signaldaten-RAM 3 speichert Digitalsignaldaten, die empfangen wurden und solche, die einer arithmetischen Bearbeitung unterzogen wurden, während der Koeffizientendaten-RAM 4 viele Koeffizientendatensätze speichert. Der Pufferspeicher 5 speichert durch einen Multi­ plikator 7 mit den Koeffizientendaten zu multiplizierende Di­ gitalsignaldaten. Die Ausgangsklemme des Koeffizientendaten- RAM 4 ist mit einem Pufferspeicher 6 verbunden, der die aus dem Koeffizientendaten-RAM 4 ausgelesenen, durch den Multi­ plizierer 7 mit Signaldaten zu multiplizierenden Koeffizien­ tendaten speichert. Die Ausgangsklemme des Multiplizierers 7 ist mit einem Akkumulierungsmittel verbunden, das eine ALU 8 und einen Akkumulator 9 enthält. Die ALU 8 führt arithmeti­ sche Vorgänge in Abhängigkeit von einem Befehlssignal von einer Abfolgesteuerung 17 aus, z. B. addiert sie die Multipli­ kationsergebnisse von dem Multiplizierer 7 zu dem Wert der im Akkumulator 9 gehaltenen Daten. Die ALU 8 addiert auch den Wert von über den Datenbus 2 zugeführten Daten zu dem Wert von im Akkumulator 9 gehaltenen Daten, statt das Aus­ gangssignal vom Multiplizierer 7 zu addieren. Das Ergebnis der Addition der ALU 8 wird im Akkumulator 9 gehalten. Der Ausgang des Akkumulators 9 ist auch mit dem Datenbus 2 ver­ bunden. Die ALU 8 ist mit einem Merkerregister 10 verbunden, in dem das Ergebnis eines durch die ALU 8 ausgeführten Daten­ vergleichs gesetzt wird.
Eine Speichersteuerung 11 steuert das Schreiben und Lesen von Daten in bzw. aus dem Signaldaten-RAM 3. Eine Speicherzu­ griffssteuerung 12 steuert das Auslesen von Daten aus dem Koeffizientendaten-RAM 4. Eine Leseadresse für den Koeffi­ zientendaten-RAM 4 wird durch eine Speicheradreßsteuerung 13 zugeordnet. Die Speicheradreßsteuerung 13 enthält ein Koeffi­ zientendaten-Adreßregister 14, einen +1-Addierer 15 und einen Schaltkreis 16. Das Adreßregister 14 hält Adreßdaten, die wahlweise von dem Schaltkreis 16 zugeführt werden, und sendet die Daten zu dem Koeffizientendaten-RAM 4. In Überein­ stimmung mit einem Befehlssignal von der Abfolgesteuerung 17, die einen Befehl dekodiert und ihn ausführt, addiert der +1-Addierer 15 "1" zu den vom Adreßregister 14 ausgehenden Adreßdaten und führt Daten, die den Wert des addierten Ergeb­ nisses darstellen, an eine Eingangsklemme des Schaltkreises 16. Die andere Eingangsklemme des Schaltkreises 16 wird mit den von der Abfolgesteuerung 17 gesendeten Koeffizientenda­ ten versorgt. Der Schaltkreis 16 gibt wahlweise eines der beiden Eingangssignale aus, entsprechend dem durch die Abfol­ gesteuerung 17 erzeugten Befehlssignal.
Die Abfolgesteuerung 17 erzeugt verschiedene Befehlssignale, Koeffizientenadreßdaten, Referenz- oder Vergleichsdaten zur Beurteilung und Sprungadreßdaten synchron mit durch einen (nicht dargestellten) Taktgenerator erzeugten Taktimpuls und entsprechend einem in einen Programmspeicher 18 eingeschrie­ benen Programm. Die Leseadresse von Befehlsdaten des Pro­ gramms im Programmspeicher 18 wird durch eine Speicheradreß- Steuerung 19 gesteuert. Die Speicheradreß-Steuerung 19 umfaßt ein Programmspeicher-Adreßregister 20, einen +1-Addie­ rer 21 und einen Schaltkreis 22. Das Adreßregister 20 hält Adreßdaten, die wahlweise von dem Schaltkreis 22 gesendet werden, und sendet die Daten zu dem Programmspeicher 18. Der +1-Addierer 21 addiert "1" zu den ausgehenden Adreßdaten des Adreßregisters 20 synchron mit den vom Taktgenerator erzeug­ ten Taktimpulsen und führt die sich ergebenden Daten zu einer Eingangsklemme des Schaltkreises 22. Der Schaltkreis 22 erhält die Sprungadreßdaten von der Abfolgesteuerung 17 an seiner anderen Eingangsklemme. Der Schaltkreis 22 gibt wahlweise eines der beiden Eingangssignale aus in Abhängig­ keit von einem Signal, daß das Ergebnis der Beurteilung durch eine Beurteilungsschaltung 23 anzeigt.
Die Beurteilungsschaltung 23 bestimmt, ob die in dem Merker­ register 10 gehaltenen Daten mit den Daten von der Abfolge­ steuerung 17 übereinstimmen oder nicht.
Die Koeffizientendaten des Koeffizientendaten-RAM 4 und das Programm im Programmspeicher 18 werden durch einen (nicht dargestellten) externen Mikrocomputer eingeschrieben.
Bei einem solchen Aufbau werden die von dem Adreßregister 20 erzeugten Adreßdaten normalerweise synchron zum Impulstakt um "1" erhöht. Mit anderen Worten, zu dem Adreßdatenwert wird durch den +1-Addierer 21 "1" hinzugefügt und das sich ergebende Datum als Adreßdatum über den Schaltkreis 22 zum Adreßregister 20 geleitet und dort gehalten; dieser Vorgang wird synchron zu jedem Taktimpuls-Zeitpunkt wiederholt. Wenn ein Sprung in dem Programm nötig wird, leitet der Schalt­ kreis 22 die Sprungadreßdaten von der Abfolgesteurung 17 zu dem Adreßregister 20, entsprechend dem Ausgangssignal von der Beurteilungsschaltung 23.
Befehlsdaten von dem Programm an der durch die von dem Pro­ grammspeicher-Adreßregister 20 erzeugten Adreßdaten angegebe­ nen Adresse werden ausgelesen und dann zu der Abfolgesteu­ erung 17 gesendet. Die Abfolgesteuerung 17 dekodiert die aus­ gelesenen Befehlsdaten und gibt entsprechend den Befehlsda­ ten ein Befehlssignal und Daten aus.
Es gibt zwei Fälle zum Zuführen und Halten der Adreßdaten in dem Koeffizientenspeicher-Adreßregister 14. Der erste Fall besteht darin, daß die Adreßdaten von der Abfolgesteuerung 17 über den Schaltkeis 16 gesendet und in dem Adreßregister 14 gehalten werden. Der andere Fall besteht darin, daß die in dem Adreßregister 14 gehaltenen Adreßdaten durch den +1-Addierer 15 um "1" erhöht und die sich ergebenden Daten als Adreßdaten über den Schaltkreis 16 zu dem Adreßregister 14 geleitet und dort gehalten werden. In beiden Fällen werden die Vorgänge in Abhängigkeit von dem Befehlssignal von der Abfolgesteuerung 17 ausgeführt.
Die Speicherzugriffssteuerung 12 liest die an der durch die Adreßdaten von dem Koeffizientenspeicher-Adreßregister 14 an­ gegebene Adresse befindlichen Koeffizientendaten aus. Die ausgelesenen Koeffizientendaten werden direkt zum Pufferspei­ cher 6 oder über den Datenbus 2 zu der ALU 8 geleitet.
Der DSP führt eine dreistufige Pipeline-Bearbeitung so aus, daß eine Abholstufe (Befehlslesestufe), eine Dekodierstufe (Befehlsdekodierstufe) und eine Ausführungsstufe (Befehlsaus­ führungsstufe) überlappt sind.
Es wird nun eine Beschreibung bezüglich eines Arbeitsbei­ spiels gegeben zum Erläutern der Pipeline-Bearbeitung in dem DSP. Es sei angenommen, daß der Akkumulator 9 Daten hält und das Koeffizientenspeicher-Adreßregister 14 Adreßdaten hält, die eine Adresse 0 im Koeffizientendaten-RAM bezeichnen. Es sei auch angenommen, daß der Koeffizientendaten-RAM 4 an der Adresse 0 Referenzpegeldaten eingeschrieben enthält, eine Koeffizientendatengruppe A zur Realisierung eines Filters a an den Adressen 1 bis 5 eingeschrieben ist und eine Koeffi­ zientendatengruppe B zur Realisierung eines Filters b an den Adressen 6 bis 10, wie in Fig. 2 dargestellt. Zuerst werden die im Akkumulator 9 gehaltenen Daten mit dem Referenzpegel­ datum an der Adresse 0 im Koeffizientendaten-RAM 4 vergli­ chen. Falls der erstgenannte Datenwert größer als der letzt­ genannte Datenwert ist, erzeugt das Adreßregister 14 Adreßda­ ten, die eine Adresse 1 zur Realisierung des Filters a be­ zeichnen. Falls die Daten im Akkumulator 9 einen Datenwert gleich oder kleiner als dem der Referenzpegeldaten besitzen, erzeugt das Adreßregister 14 Adreßdaten, die eine Adresse 6 zur Realisierung des Filters b bezeichnen.
Fig. 3 zeigt das Programm in der Assemblersprache zur Ausfüh­ rung des Betriebs des konventionellen DSP nach Fig. 1. Fig. 4A und 4B stellen auszuführende Schritte und zugeordnete Adreßwerte im Koeffizientendaten-RAM 4 in jeder Stufe wäh­ rend des Ablaufs des Programms dar. Fig. 4A zeigt dabei den Fall einer Realisierung des Filters b mit einem durchgeführ­ ten Bedienungssprung und 4B zeigt den Fall einer Realisie­ rung des Filters a ohne Bedienungssprung.
Im Schritt N dieses Programms werden die Daten an der Adres­ se 0 in dem Koeffizientendaten-RAM (CRAM) 4 ausgelesen und zu dem Datenbus (BUS) gesendet in Reaktion auf einen MOV (move = bewege)-Befehl, die im Akkumulator 9 gehaltenen Daten werden mit zum Datenbus 2 gesendeten Daten verglichen in Reaktion auf einen CMP (compare = vergleiche)-Befehl und der Adreßdatenwert des Koeffizientenspeicher-Adreßregisters 14 wird in Reaktion auf einen CPINC-Befehl um "1" erhöht. Wie in Fig. 4A gezeigt, wird jeder Befehl im Schritt N im Zyklus 1 abgeholt, im Zyklus 2 dekodiert und im Zyklus 3 aus­ geführt. Das Ergebnis des in Reaktion auf den CMP-Befehl durchgeführten Vergleichs wird als Merkerzeichen S (sign flag) im Merkerregister (flag register) 19 gesetzt. Das einen Wert "1" bezeichnende Adreßdatum wird über den Schalt­ kreis von dem +1-Addierer 15 in Abhängigkeit von dem CPINC- Befehl zum Adreßregister 14 gesendet. Dadurch wird die be­ zeichnete Adresse im Koeffizientendaten-RAM auf "1" gesetzt. Das sich so ergebende Setzen und das Ergebnis des in Reak­ tion auf den CPINC-Befehl durchgeführten Betätigens wird vom Zyklus 4 an gültig.
Als nächstes springt im Schritt N+1, wenn der Vorzeichenmer­ ker (sign flag) S gleich "1" ist (falls das im Akkumulator 9 gehaltene Datum einen geringeren Wert als das Referenzpegel­ datum besitzt) der Programmablauf zum Schritt M in Reaktion auf einen JC (conditional jump = Entscheidungssprung)-Be­ fehl. Wenn der Vorzeichenmerker S gleich 0 ist (wenn das ge­ haltene Datum einen Wert gleich dem oder größer als das Refe­ renzpegeldatum besitzt), geht das Programm zum nächsten Schritt. Der JC-Befehl in diesem Schritt N+1 wird, wie die Befehle im Schritt N, in der Pipeline-Abfolge bearbeitet: der JC-Befehl wird im Zyklus 2 abgeholt, im Zyklus 3 deko­ diert und im Zyklus 4 ausgeführt. Wenn, wie in Fig. 4A ge­ zeigt, ein Sprung zum Schritt M durchgeführt wird, wird der Schaltkreis 22 auf die Seite des Eingangs der Sprungadressen­ daten in Zyklus 4 gesetzt in Reaktion auf das Signal von der Entscheidungsschaltung 23 im Zyklus 4. Das Adreßdatum (Schritt M) wird dann über den Schaltkreis 22 von der Abfol­ gesteuerung 17 zum Programmspeicher-Adreßregister 20 gelei­ tet und dort gehalten.
Im Schritt N+2 wird ein Sprung zum Schritt N+5 durchgeführt in Reaktion auf einen JMP (unconditional jump = bedingungs­ freier Sprung)-Befehl. Der JMP-Befehl läßt die Programmfol­ ge, die sich von der Hauptfolge abgezweigt hat, von dem Zweigablauf des Schrittes M zu dem Originalablauf zurückkeh­ ren. In anderen Worten, der JMP-Befehl wird im Zyklus 3 abge­ holt, im Zyklus 4 dekodiert und im Zyklus 5 ausgeführt, wie in Fig. 4A gezeigt. Die Sprungadreßdaten (Schritt N+5) werden deshalb über den Schaltkreis 22 zu dem Programmspei­ cher-Adreßregister 20 zugeführt, bevor der Zyklus 5 beendet ist, und die Daten werden im Register 20 gehalten. Demgemäß wird ein Filterrealisierungsbefehl im Schritt N+5 im Zyklus 6 abgeholt.
Im Schritt N+3 wird keine Betätigung durchgeführt als Reak­ tion auf einen NOP (no operation = keine Betätigung) -Befehl. Dieser Schritt ist vorgesehen, um eine mit dem JC verbundene Verschiebung oder Verspätung des Befehlausführzyklus auszu­ gleichen, oder einen Verzögerungsschlitz aufzunehmen. Dement­ sprechend wird ein Befehl im Zyklus 4 abgeholt und im Zyklus 5 dekodiert, jedoch im wesentlichen kein Befehl im Zyklus 6 ausgeführt.
Wenn in Reaktion auf den JC-Befehl ein Sprung zum Schritt M durchgeführt wird, wird der Schritt M im Zyklus 5 abgeholt, im Zyklus 6 dekodiert und im Zyklus 7 ausgeführt, wie oben beschrieben. Im Zyklus 7 wird der Schaltkreis 16 so gesetzt, daß er das Adreßdatum von der Abfolgesteuerung 17 abholt in Reaktion auf ein LOD (load = lade)-Befehl, so daß das einen Wert 6 bezeichnende Adreßdatum über den Schaltkreis 16 zum Koeffizientenspeicher-Adreßregister 14 gesendet wird. Demzu­ folge wird die zugeordnete Adresse des Koeffizientendaten- RAM 4 gleich "6".
Da der Filterrealisierungsbefehl im Zyklus 6 abgeholt wird, beginnt der Betrieb zur Realisierung des Filters im Zyklus 8. Bei diesem Filterrealisierungsbetrieb werden die Koeffi­ zientendaten von der Koeffizientendatengruppe B an den Adres­ sen 6 bis 10 Zyklus um Zyklus ausgelesen, um das Filter b zu realisieren.
Wenn kein Sprung durchgeführt wird, wird, wie in Fig. 4B ge­ zeigt, der Schritt N+4 im Zyklus 5 abgeholt. Der Schritt N+4 besitzt wie der Schritt N+3 einen NOP-Befehl. Der NOP-Befehl ist vorgesehen, um die Anzahl von Ausführungszyklen unabhän­ gig von dem Fluß des ausgeführten Programms ungeändert zu lassen. Der Filterrealisierungsbefehl im Schritt N+5 wird im Zyklus 6 geholt. Bei diesem Filterrealisierungsbetrieb wer­ den die Koeffizientendaten aus der Koeffizientendatengruppe A an den Adressen 1 bis 5 Zyklus um Zyklus ausgelesen und so das Filter a realisiert.
Dementsprechend wird dann, wenn bei dem konventionellen DSP nach der vorstehenden Beschreibung die Pipeline-Bearbeitung von einem Sprungbefehl begleitet ist, der das Ergebnis einer Arithmetik-Betätigung durch die ALU benötigt, der Pipeline- Strom gestört, so daß ein "Verzögerungsschlitz" genannter un­ nützer Zyklus erforderlich ist. Zusätzlich wird, da das Er­ gebnis des Sprungbefehls im Schritt N+1 erst zwei Schritte später erscheint, die Programmierung beträchtlich erschwert.
Es wird nun eine Ausführung der vorliegenden Erfindung be­ schrieben.
Die gleiche Einzelheiten des erfindungsgemäßen DSP nach Fig. 5 wie bei dem üblichen DSP nach Fig. 1 sind mit gleichen Be­ zugszeichen benannt. Eine Leseadresse des Koeffizientenda­ ten-RAM 4 wird durch eine Speicheradreßsteuerung 25 zugeord­ net. Die Speicheradreßsteuerung 25 enthält ein Koeffizienten­ speicher-Adreßregister 26, einen +1-Addierer 27, Schaltkrei­ se 28 und 29 und einen Addierer 30. Das Adreßregister 26 hält von dem Addierer 30 zugeleitete Adreßdaten und sendet die Daten zu dem Koeffizientendaten-RAM 4. Gemäß einem Be­ fehlssignal von der Abfolgesteuerung 17 addiert der +1-Addie­ rer 27 den Wert "1" zum Ausgangsadreßdatum des Adreßregi­ sters 14 und führt den Wert des addierten Ergebnisses reprä­ sentierende Daten zu einer Eingangsklemme des Schaltkreises 28. Die andere Eingangsklemme des Schaltkreises 28 wird mit einem "0" repräsentierenden Datum versorgt. Der Schaltkreis 28 gibt wahlweise eines der beiden Eingangssignale entspre­ chend dem Befehlssignal von der Abfolgesteuerung 17 aus. Eine Eingangsklemme des Schaltkreises 29 wird mit den Adreß­ daten von der Abfolgesteuerung 17 versorgt, und die andere Eingangsklemme mit "0" darstellenden Daten. Der Schaltkreis 29 gibt selektiv eines der beiden Eingangssignale entspre­ chend dem Signal aus, das, von der Beurteilungsschaltung 23 kommend, das Ergebnis der Entscheidung anzeigt. Der Addierer addiert die Werte der von den jeweiligen Schaltkreisen 28 und 29 erzeugten Adreßdaten und sendet den sich ergebenden Wert zu dem Adreßregister 26.
Ein Programmzähler 31 gibt einen Zählwert als Adreßdatum zu dem Programmspeicher 18 aus. Ein Befehl wird von der durch die Adreßdaten bezeichneten Adresse ausgelesen.
Die anderen Abschnitte haben den gleichen Aufbau wie bei dem in Fig. 1 gezeigten DSP.
Bei einem solchen Aufbau führt, wenn das Merkerregister 10 einen Merker hält, der das Ergebnis der durch die ALU 8 erle­ digten arithmetischen Behandlungen anzeigt, die Abfolgesteu­ erung 17 Entscheidungsdaten zur Beurteilung zur Beurteilungs­ schaltung 23. Die Entscheidungs- oder Bedingungsdaten sind in einem Befehl des Programms enthalten, wie später beschrie­ ben wird. Die Beurteilungsschaltung 23 erzeugt ein Schaltsi­ gnal, wenn der Inhalt des Merkerregisters 10 mit den Ent­ scheidungsdaten übereinstimmt. In Reaktion auf das Schaltsi­ gnal leitet der Schaltkreis 29 die Adreßdaten von der Abfol­ gesteuerung 17 weiter und gibt sie aus. Wenn die Entschei­ dungsdaten und der Inhalt des Merkerregisters 10 nicht über­ einstimmen, leitet der Schaltkreis 29 die eine Adresse "0" darstellenden Adreßdaten weiter und gibt sie aus.
Entsprechend dem Befehlssignal von der Abfolgesteuerung 17 gibt der Schaltkreis 28 wahlweise entweder die Adreßdaten von dem +1-Addierer 27 oder die Adreßdaten mit Adresse "0" aus. Der Addierer 30 addiert die Werte des Adreßdaten-Aus­ gangssignals von den jeweiligen Schaltkreisen 28 und 29. Das Koeffizientenspeicher-Adreßregister 26 hält den Wert des Ad­ ditionsergebnisses als Adreßdaten des Koeffizientendaten-RAM 4 für den nächsten Zyklus.
Es wird nun eine Ausführung eines Betriebs beschrieben, der das gleiche Ergebnis wie das in Fig. 3 gezeigte Programm er­ zielt, um die Pipeline-Bearbeitung in dem erfindungsgemäßen DSP zu erklären. Es sei angenommen, daß der Akkumulator 9 Daten hält und das Koeffizientenspeicher-Adreßregister 26 Adreßdaten CP hält, welche ein Adresse 0 im Koeffizientenda­ ten-RAM 4 bezeichnen. Es sei auch angenommen, daß der Koeffi­ zientendaten-RAM 4 eingeschriebene Daten enthält, wie sie in Fig. 2 gezeigt sind. Zuerst werden die im Akkumulator 9 ge­ haltenen Daten mit den Referenzpegeldaten an der Adresse 0 im Koeffizientendaten-RAM 4 verglichen. Falls die ersteren Daten einen größeren Wert als die letzteren besitzen, er­ zeugt das Adreßregister 26 Adreßdaten, die eine Adresse 1 zur Realisierung des Filters a bezeichnen. Falls die Daten im Akkumulator 9 einen kleineren Wert als die Referenzpegel­ daten besitzt, erzeugt das Adreßregister 26 Adreßdaten, die eine Adresse "6" zur Realisierung des Filters b bezeichnen.
Fig. 6 zeigt das Programm in der Assembler-Sprache zur Aus­ führung des Betriebs des DSP nach Fig. 5. Fig. 7A und 7B zeigen die auszuführenden Schritte und die bezeichneten Ad­ reßwerte im Koeffizientendaten-RAM 4 für jede Stufe beim Ab­ lauf des Programms. Fig. 7A zeigt den Fall der Realisierung des Filters b, wenn eine Bedingung erfüllt ist, und Fig. 7B zeigt den Fall der Realisierung des Filters a, wenn die Be­ dingung nicht erfüllt ist.
Im Schritt N dieses Programms werden Daten an der Adresse 0 im Koeffizientendaten-RAM (CRAM) 4 ausgelesen und in Abhän­ gigkeit von einem MOV (move)-Befehl zu dem Datenbus (BUS) 2 gesendet, die im Akkumulator 9 gehaltenen Daten werden mit den zum Datenbus 2 gesendeten Daten verglichen in Reaktion auf einen CMP-Befehl und die Adreßdaten des Koeffizienten­ speicher-Adreßregisters 26 um "1" erhöht in Reaktion auf einen CPINC-Befehl. Wie in Fig. 7A und 7B gezeigt, wird jeder Befehl im Schritt N im Zyklus 1 abgeholt, im Zyklus 2 dekodiert und im Zyklus 3 ausgeführt. Das Ergebnis des in Reaktion auf den CMP-Befehl durchgeführten Vergleichs wird als ein Merkerzeichen S in das Merkerregister 10 gesetzt. Die einen Wert "1" bezeichnenden Adreßdaten werden über den Schaltkreis 28 von dem +1-Addierer 27 zum Addierer 30 gesen­ det in Abhängigkeit von dem CPINC-Befehl. Da das Ausgangssi­ gnal des Schaltkreises 29 zu diesem Zeitpunkt "0" bezeich­ net, wird das Ausgangssignal des Addierers 30 "1" und die in dem Adreßregister 26 gehaltenen Adreßdaten CP bezeichnen dem­ entsprechend "1". Das Ergebnis der durch den CMP-Befehl aus­ geführten Setzung und das Ergebnis der durch den CPINC-Be­ fehl ausgeführten Addition +1 werden vom Zyklus 4 an gültig.
Der im Zyklus 2 abzuholende Schritt N+1 besitzt einen ADCP- Befehl (add conditional address = füge Bedingungsadresse hinzu)-Befehl. Falls der Vorzeichenmerker S der Vergleichsda­ ten gleich "1" ist (falls die im Akkumulator 9 gehaltenen Daten kleiner als der Wert der Referenzpegeldaten sind), werden die gerade im Adreßregister 26 gehaltenenAdreßdaten CP in Reaktion auf den ADCP-Befehl um "5" erhöht. Das bedeu­ tet, Adreßdaten, die "5" darstellen, werden von der Abfolge­ steuerung 17 zu dem Schaltkreis 29 gesendet und über den Schaltkreis 29 in Reaktion auf das Schaltsignal von der Beur­ teilungsschaltung 23 zu dem Addierer 30 geleitet. Der +1-Ad­ dierer 27 gibt die gegenwärtig gehaltenen Adreßdaten CP (=1) aus wie sie sind, und diese Daten werden über den Schalt­ kreis 28 zum Addierer 30 gesendet. Damit gibt der Addierer 30 Daten aus, die "6" darstellen, und diese werden wiederum als neue Adreßdaten CP im Adreßregister 26 gehalten (s. Fig. 7A). Falls der Vorzeichenmerker S gleich "0" ist (falls die im Akkumulator 9 gehaltenen Daten gleich oder größer als der Wert des Referenzpegeldatums sind), werden die Adreßdaten CP ungeändert weiter gehalten (s. Fig. 7B). Da diese Befehlsaus­ führung während des Zyklus 4 beendet wird, werden die Adreß­ daten CP entweder "1" oder "6".
Da der Filterrealisierungsbefehl im Zyklus 3 geholt wird, be­ ginnt der Filterrealisierungsbetrieb tatsächlich im Zyklus 5. Bei diesem Betrieb werden, wenn die Adreßdaten CP "1" sind, Koeffizientendaten aus der Koeffizientendatengruppe A von den Adressen 1 bis 5 Zyklus um Zyklus ausgelesen, um das Filter a zu realisieren. Wenn die Adreßdaten CP "6" sind, werden Koeffizientendaten aus der Koeffizientendatengruppe B an Adressen 6 bis 10 Zyklus um Zyklus zur Realisierung des Filters b ausgelesen.
Wie beschrieben, umfaßt der DSP nach der vorliegenden Erfin­ dung einen Koeffizientendatenspeicher, in dem mehrere Sätze von Koeffizientendaten gespeichert sind, und arithmetische Betätigungsmittel, die Koeffizientendaten aus dem Koeffizien­ tendatenspeicher an einer Adresse auslesen, die durch den in dem Haltemittel gehaltenen Wert angegeben ist, und führt eine arithmetische Betätigung unter Benutzung von Daten aus, welche in den ausgelesenen Koeffizientendaten enthalten sind. Weiter ist ein Merkerregister (flag register) vorgese­ hen, um einen von zwei Werten entsprechend dem Ergebnis der arithmetischen Betätigung durch das arithmetische Betäti­ gungsmittel zu halten, es werden Daten, die entweder einen vorbestimmten Wert oder "0" repräsentieren, entsprechend dem Ergebnis einer Bedingungsüberprüfung aufgrund des Inhalts des Merkerregisters wahlweise von dem Schaltmittel ausgege­ ben und die ausgegebenen Daten des Schaltmittels werden zu dem im Haltemittel gehaltenen Wert hinzugefügt und der sich ergebende Wert wird wieder in dem Haltemittel gehalten. Beim Ausführen der Pipeline-Bearbeitung kann deshalb eine Lese­ adresse des Koeffizientendatenspeichers direkt zugeordnet werden, ohne den Programmablauf (z. B. durch Springen) zu ändern. Diese Anordnung kann die Notwendigkeit eines Verzöge­ rungsschlitzes im Programm beseitigen, den das Ergebnis eines arithmetischen Vorgangs während des Ausführens der Pi­ peline-Bearbeitung sonst erforderlich macht, und so kann die Bearbeitungszeit gekürzt und die Programmierung erleichtert werden.

Claims (3)

1. Digitalsignalprozessor, welcher enthält:
einen Koeffizientendatenspeicher, in dem eine Vielzahl von Koeffizientendatensätzen gespeichert sind;
Befehlserzeugungsmittel zum Erzeugen eines Befehlssignals entsprechend einem Programm;
Zuordnungsmittel mit Haltemitteln zum Halten eines durch eine Leseadresse des Koeffizientendatenspeichers angegebe­ nen Wertes und zum Ändern des gehaltenen Wertes durch einen besonderen Wert entsprechend dem Befehlssignal;
arithmetisches Bearbeitungsmittel zum Auslesen von Koeffi­ zientendaten von dem Koeffizientendatenspeicher an einer durch den in dem Haltemitel gehaltenen Wert angegebenen Adresse und zum Ausführen einer arithmetischen Bearbei­ tung unter Benutzung von Daten, einschließlich der ausge­ lesenen Koeffizientendaten in Abhängigkeit von dem Be­ fehlssignal; und
ein Merkerregister zum Halten von einem von zwei Werten entsprechend einem Ergebnis der durch das arithmetische Betätigungsmittel erledigten arithmetischen Bearbeitung; dadurch gekennzeichnet, daß
das Zuordnungsmittel enthält Bedingungs-Beurteilungsmit­ tel für den in dem Merkerregister gehaltenen Wert, Schalt­ kreismittel zum wahlweisen Ausgeben von Daten, die entwe­ der den vorbestimmten Wert oder "0" darstellen entspre­ chend einem Ausgangssignal von dem Bedingungs-Beurtei­ lungsmittel, und Addiermittel, damit das Haltemittel einen Wert halten kann, der durch Addieren eines durch die vom Schaltkreismittel ausgegebenen Daten bezeichneten Wertes zu dem in dem Haltemittel gehaltenen Wert erhalten wird.
2. Digitalsignalprozessor nach Anspruch 1, dadurch gekenn­ zeichnet, daß der vorbestimmte Wert als Daten in dem Pro­ gramm enthalten ist.
3. Digitalsignalprozessor nach Anspruch 1 oder 2, dadurch ge­ kennzeichnet, daß das Merkerregister einen Wert hält, der das Ergebnis eines durch das arithmetische Bearbeitungs­ mittel ausgeführten Vergleichs darstellt.
DE4101928A 1990-05-11 1991-01-23 Digitalsignal-prozessor Withdrawn DE4101928A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2122252A JPH0772864B2 (ja) 1990-05-11 1990-05-11 ディジタル信号プロセッサ

Publications (1)

Publication Number Publication Date
DE4101928A1 true DE4101928A1 (de) 1991-11-14

Family

ID=14831355

Family Applications (1)

Application Number Title Priority Date Filing Date
DE4101928A Withdrawn DE4101928A1 (de) 1990-05-11 1991-01-23 Digitalsignal-prozessor

Country Status (3)

Country Link
US (1) US5142489A (de)
JP (1) JPH0772864B2 (de)
DE (1) DE4101928A1 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2834862B2 (ja) * 1990-07-13 1998-12-14 松下電器産業株式会社 プロセッサ
JPH04302522A (ja) * 1991-03-29 1992-10-26 Hitachi Ltd 演算回路及びこれを用いた適応フィルタ並びにエコーキャンセラ
US5218564A (en) * 1991-06-07 1993-06-08 National Semiconductor Corporation Layout efficient 32-bit shifter/register with 16-bit interface
JPH0537298A (ja) * 1991-07-29 1993-02-12 Rohm Co Ltd デイジタルフイルタ
JPH05167395A (ja) * 1991-12-18 1993-07-02 Pioneer Video Corp ディジタル信号プロセッサの係数データ変更処理方式
US5557227A (en) * 1994-04-07 1996-09-17 Aureal Semiconductor Economical generation of exponential and pseudo-exponential decay functions in digital hardware
US5463569A (en) * 1994-06-24 1995-10-31 General Electric Company Decimation filter using a zero-fill circuit for providing a selectable decimation ratio
US5548540A (en) * 1994-06-24 1996-08-20 General Electric Company Decimation filter having a selectable decimation ratio
JP3693367B2 (ja) * 1994-07-28 2005-09-07 富士通株式会社 積和演算器
JPH1091441A (ja) 1996-09-13 1998-04-10 Sanyo Electric Co Ltd プログラム実行方法およびその方法を利用した装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3003465C2 (de) * 1980-01-31 1981-10-01 Siemens AG, 1000 Berlin und 8000 München Einrichtung zur Erzeugung von Bedingungscodes in mikroprogrammgesteuerten Universalrechnern
US4594687A (en) * 1982-07-28 1986-06-10 Nippon Telegraph & Telephone Corporation Address arithmetic circuit of a memory unit utilized in a processing system of digitalized analogue signals

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58146969A (ja) * 1982-02-26 1983-09-01 Toshiba Corp インデツクス限定連続演算ベクトルプロセツサ
JPS59149541A (ja) * 1983-01-28 1984-08-27 Toshiba Corp 処理条件コード生成/設定方式
JPS61288226A (ja) * 1985-06-17 1986-12-18 Panafacom Ltd 外部コンデイシヨン制御方式

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3003465C2 (de) * 1980-01-31 1981-10-01 Siemens AG, 1000 Berlin und 8000 München Einrichtung zur Erzeugung von Bedingungscodes in mikroprogrammgesteuerten Universalrechnern
US4594687A (en) * 1982-07-28 1986-06-10 Nippon Telegraph & Telephone Corporation Address arithmetic circuit of a memory unit utilized in a processing system of digitalized analogue signals

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
DE-Z Elektronik, H. 18, 5. September 1986, S. 112-125 *

Also Published As

Publication number Publication date
JPH0772864B2 (ja) 1995-08-02
JPH0418635A (ja) 1992-01-22
US5142489A (en) 1992-08-25

Similar Documents

Publication Publication Date Title
DE3587277T2 (de) System fuer die umgehungssteuerung beim pipelinebetrieb eines computers.
DE4217012C2 (de) Mit einer Vielzahl von Befehlsströmen und statischer Verschachtelung arbeitender Mikroprozessor
DE68927371T2 (de) Verfahren und Vorrichtung zur Verarbeitung von mehreren Zustandscodes wie für einen Parallel-Pipeline-Rechner
DE69332458T2 (de) Vektorprozessor
DE69132675T2 (de) Parallelfliessband-Befehlsverarbeitungssystem für sehr lange Befehlswörter
DE69534113T2 (de) Kompression der Befehlswörter eines Rechners
DE3401995C2 (de)
DE69228360T2 (de) Registerlesekontrolle
DE3752280T2 (de) Mustergenerator
DE69324730T2 (de) Multiplizier-Akkumulator
DE3116100A1 (de) Sprungabschaetz-zentraleinheit
DE69632655T2 (de) Pipeline-Datenverarbeitungsanordnung zur Durchführung einer Mehrzahl von untereinander datenabhängigen Datenprozessen
DE4101928A1 (de) Digitalsignal-prozessor
DE3687237T2 (de) Verfahren und geraet zur versorgung von histogrammdaten.
DE3400723A1 (de) Vektorprozessor
DE69322566T2 (de) Datenprozessor
DE69128908T2 (de) Verfahren zum Durchführen von erlässlichen Befehlen in einem Rechner
DE3116385C2 (de) Mikroprogramm-Steuerung
DE69430034T2 (de) Digitale Signalverarbeitungseinrichtung
DE69129916T2 (de) Schaltung zur Erzeugung einer Adresse eines Wahlspeichers
DE69836751T2 (de) Dienste mit rufunabhängigen modulen
DE2245284A1 (de) Datenverarbeitungsanlage
AT396409B (de) Mikrorechner mit verbessertem befehlszyklus
DE69028224T2 (de) Mikroprozessor
DE69527253T2 (de) Signalverarbeitungsvorrichtung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8136 Disposal/non-payment of the fee for publication/grant