DE4101928A1 - Digitalsignal-prozessor - Google Patents
Digitalsignal-prozessorInfo
- 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
Links
- 230000004044 response Effects 0.000 claims description 20
- 229940036310 program Drugs 0.000 claims description 2
- 101100328887 Caenorhabditis elegans col-34 gene Proteins 0.000 description 19
- 239000013256 coordination polymer Substances 0.000 description 9
- 238000010586 diagram Methods 0.000 description 5
- 230000005888 antibody-dependent cellular phagocytosis Effects 0.000 description 2
- 238000000034 method Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000011282 treatment Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative 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.
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.
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)
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)
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)
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 | 外部コンデイシヨン制御方式 |
-
1990
- 1990-05-11 JP JP2122252A patent/JPH0772864B2/ja not_active Expired - Fee Related
- 1990-12-31 US US07/636,457 patent/US5142489A/en not_active Expired - Fee Related
-
1991
- 1991-01-23 DE DE4101928A patent/DE4101928A1/de not_active Withdrawn
Patent Citations (2)
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)
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 |