JP3738134B2 - デジタル信号処理装置 - Google Patents

デジタル信号処理装置 Download PDF

Info

Publication number
JP3738134B2
JP3738134B2 JP17297698A JP17297698A JP3738134B2 JP 3738134 B2 JP3738134 B2 JP 3738134B2 JP 17297698 A JP17297698 A JP 17297698A JP 17297698 A JP17297698 A JP 17297698A JP 3738134 B2 JP3738134 B2 JP 3738134B2
Authority
JP
Japan
Prior art keywords
address
instruction
data
arithmetic
program
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 - Fee Related
Application number
JP17297698A
Other languages
English (en)
Other versions
JP2000010779A (ja
Inventor
文昭 長尾
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.)
Sanyo Electric Co Ltd
Original Assignee
Sanyo Electric Co Ltd
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 Sanyo Electric Co Ltd filed Critical Sanyo Electric Co Ltd
Priority to JP17297698A priority Critical patent/JP3738134B2/ja
Priority to EP99304711A priority patent/EP0965912A3/en
Priority to US09/336,075 priority patent/US6430681B1/en
Publication of JP2000010779A publication Critical patent/JP2000010779A/ja
Application granted granted Critical
Publication of JP3738134B2 publication Critical patent/JP3738134B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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, look ahead
    • G06F9/3802Instruction prefetching
    • 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/30094Condition code generation, e.g. Carry, Zero flag
    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address

Description

【0001】
【発明の属する技術分野】
本発明は、演算処理能力を向上させたデジタル信号処理装置に関する。
【0002】
【従来の技術】
デジタルオーディオ機器等においては、取り扱う信号に対して各種のフィルタリング処理を施すデジタルフィルタが用いられる。このようなデジタルフィルタは、一般的に、複数のレジスタに加算器及び乗算器を組み合わせたデジタル信号処理装置( DSP:Digital Signal Processor)により構成される。
【0003】
図8は、一般的なデジタルフィルタの構成を示す回路図である。
【0004】
デジタルフィルタは、加算器1、第1〜第3の乗算器2a〜2c、第1及び第2のラッチ3a、3bにより構成される。第1の乗算器2aは、入力されるデジタルデータX(n)に対して第1のフィルタ係数h(a)を乗算する。第1のラッチ3aは、入力されるデジタルデータX(n)をラッチし、1データ期間保持する。第2の乗算器2bは、第1のラッチ3aに保持された1つ前のデジタルデータX(n- 1)に対して第2のフィルタ係数hbを乗算する。第2のラッチ3bは、加算器1から出力されるデジタルデータY(n)を保持し、1データ期間保持する。第3の乗算器2cは、第2のラッチ3bに保持された1つ前のデジタルデータY(n-1)に対して第3のフィルタ係数hcを乗算する。そして、加算器1は、第1〜第3の乗算器2a〜2cから出力される乗算結果をそれぞれ加算し、新たなデジタルデータY(n)として出力する。従って、入力デジタルデータX(n)に対し、
Y(n)=X(n)・ha+X(n-1)・hb+Y(n-1)・hc
なる式によって出力デジタルデータY(n)が生成される。
【0005】
図9は、一般的なデジタル信号処理装置の構成を示すブロック図である。
【0006】
デジタル信号処理装置は、演算回路11、RAM12、メモリ制御回路13、ROM14、命令デコーダ15により構成される。演算回路11は、加算器及び乗算器を含み、命令デコーダ15からの指示に応答して、入力されるデジタルデータX(n)及びRAM12に記憶された中間データまたは各種係数データに対して各種の演算処理を施し、最終的に得られる演算結果をデジタルデータY(n)として出力する。RAM12は、演算回路11に入力されるデジタルデータX(n)及び出力されるデジタルデータY(n)や、演算回路11の演算過程で生成される中間データを一時的に記憶する。さらにRAM12は、各種の係数データも記憶する。メモリ制御回路13は、命令デコーダ15からの指示に応答し、演算回路11の演算動作に応じて、必要なデータをRAM12から読み出し、演算回路11へ供給する。
【0007】
ROM14は、演算回路11の演算手順を指示するプログラムを記憶し、各命令を一定周期のクロックに従って所定の順序で読み出して命令デコーダ15に供給する。命令デコーダ15は、ROM14から入力される命令を解読し、演算回路11の演算動作を制御すると共に、メモリ制御回路13の読み出し及び書き込み動作を制御する。
【0008】
ここで、図8に示すデジタルフィルタを実現する場合、ROM14には、例えば、以下の演算手順を実行させるようなプログラムが格納される。ここで、RAM12には、1つ前のデータX(n-1)、Y(n-1)及びフィルタ係数ha、hb、hcが格納されているものとする。
【0009】
▲1▼:RAM12からフィルタ係数haを読み出し、入力されるデータX(n)に乗算して、その積をRAM12に記憶する。同時に、データX(n)をRAM12に記憶する。
【0010】
▲2▼:RAM12から1つ前のデータX(n-1)及びフィルタ係数hbを読み出し、互いに乗算して、その積をRAM12に記憶する。
【0011】
▲3▼:RAM12から▲1▼の処理で記憶された積及び第2ステップで記憶された積を読み出し、互いに加算して、その和をRAM12に記憶する。
【0012】
▲4▼:RAM12から1つ前のデータY(n-1)及びフィルタ係数hcを読み出し、互いに乗算して、その積をRAM12に記憶する。
【0013】
▲5▼:RAM12から▲3▼の処理で記憶された和及び▲4▼の処理で記憶された積を読み出し、互いに加算して、その和をデータY(n)として出力する。同時に、データY(n)をRAM12に記憶する。
【0014】
以上の演算動作においては、乗算処理及び加算処理が各ステップで1回ずつとなるため、演算回路11で乗算器及び加算器を複数設ける必要がなく、回路構成が簡略化される。
【0015】
【発明が解決しようとする課題】
ROM14に記憶される制御プログラムは、一般的に、演算の順序や各データ(係数)の読み出し順序を指示する分岐命令と、乗算や加算などの具体的な演算を実行させる演算命令とによって構成される。この分岐命令及び演算命令については、それぞれが混在して所定の順序でROM14に記憶されており、ROM14から所定の順序で読み出されて命令デコーダ15へ供給されることになる。このため、信号処理が複雑化して演算手順が多くなると、制御プログラムも大きくなり、信号処理に要する時間は長くなる。
【0016】
そこで本発明は、演算手順が多くなった場合でも、信号処理に要する時間が長くなるのを防止することを目的とする。
【0017】
【課題を解決するための手段】
本発明は、上述の課題を解決するために成されたもので、その特徴とするところは、第1のデジタルデータに対して多段階の演算処理を施すことにより第2のデジタルデータを生成するデジタル信号処理装置において、上記多段階の演算処理の流れを制御する分岐命令を記憶する第1のメモリと、上記多段階の演算処理の各段の動作を制御する演算命令を記憶する第2のメモリと、上記第1及び第2のメモリに対してそれぞれ一定の順序でアドレスを指定し、上記分岐命令及び上記演算命令を読み出す第1のメモリ制御回路と、上記第1のデジタルデータに対して、上記第1及び第2のメモリから読み出される上記分岐命令及び上記演算命令に従う演算処理を施す演算回路と、を備え、上記第1のメモリ制御回路は、上記分岐命令に応答して上記第2のメモリに対するアドレスを所定のアドレスへジャンプさせることにある。
【0018】
本発明によれば、分岐命令と演算命令とが並列に処理されるようになり、短時間で多くのステップを実行することができる。
【0019】
【発明の実施の形態】
図1は、本発明のデジタル信号処理装置の構成を示すブロック図であり、図2は、その動作例のプログラムアドレスの変化を示すタイミング図である。
【0020】
デジタル信号処理装置は、演算回路21、RAM22、第1及び第2のメモリ制御回路23、24、第1及び第2の第1ROM25、26、分岐命令デコーダ27及び演算命令デコーダ28により構成される。
【0021】
演算回路21は、加算器及び乗算器を含み、演算命令デコーダ28からの指示に応答して、入力されるデジタルデータX(n)及びRAM22に記憶された中間データに対して各種の演算処理を施す。この演算回路21は、図9に示す演算回路11と同等のものであり、最終的に得られる演算結果をデジタルデータY(n)として出力する。
【0022】
RAM22は、演算回路21に入力されるデジタルデータX(n)及び出力されるデジタルデータY(n)や、演算回路21の演算過程で生成される中間データ、さらには、各種の係数データを記憶する。第2メモリ制御回路24は、後述する分岐命令デコーダ27からの指示に応答し、演算回路21の演算動作において必要となるデータを指定するデータアドレスDAをRAM22に供給する。これにより、演算回路21の各演算処理においては、所望のデータがRAM22から読み出されて取り込まれる。
【0023】
第1ROM25は、演算手順を指示するプログラムの内、主に分岐命令を記憶し、第2ROM26は、演算手順を指示するプログラムの内、主に演算命令を記憶する。第1メモリ制御回路23は、一定周期のクロック及び後述する分岐命令デコーダ27からの指示に応答して、分岐命令プログラムを指定するプログラムアドレスPA1を発生する。同時に、第1メモリ制御回路23は、プログラムアドレスPA1に同期して、演算命令プログラムを指定するプログラムアドレスPA2を発生する。これらのプログラムアドレスPA1、PA2については、それぞれ一定のクロックに応答して順次インクリメントされるものであり、その初期値が分岐命令デコーダ27の指示に応答して設定される。
【0024】
例えば、図2に示すように、プログラムアドレスPA1を順次インクリメントする過程において、「5」に達した時点でJUMP指示を発生し、プログラムアドレスPA2のインクリメント動作を開始させる。また、プログラムアドレスPA1は、プログラムアドレスPA2とのタイミングの整合を得るため、「7」に達した時点で一旦インクリメントを停止し、プログラムアドレスPA2が「4」に達してSTART指示が与えられるまで待機する。これにより、プログラムアドレスPA1が「10」に到達し、プログラムアドレスPA2に対してJUMP指示が与えられるとき、プログラムアドレスPA2が「6」まで達しているように構成される。
【0025】
分岐命令デコーダ27は、第1ROM25から読み出される分岐命令OC1を解読し、第1メモリ制御回路23に対して演算順序等を決定するための指示を与えると共に、第2メモリ制御回路24に対して各演算処理に応じたデータを指定するための指示を与える。演算命令デコーダ28は、第2ROM26から読み出される演算命令OC2を解読し、演算回路21に対して、各種の演算を実行させるための指示を与える。
【0026】
以上のデジタル信号処理装置においては、第1ROM25及び第2ROM26が分岐命令デコーダ27及び演算命令デコーダ28と共に並列に配置され、分岐命令と演算命令とが互いにタイミングの整合をとりながら並列に実行される。従って、単一のROMに分岐命令と演算命令とが混在して記憶された場合と比較して、単位時間あたりに処理できるステップ数をほぼ2倍にすることができる。
【0027】
図3は、演算回路21及びRAM22の構成例を示すブロック図であり、図4は、第1メモリ制御回路23及び第2メモリ制御回路24の構成例を示すブロック図である。
【0028】
演算回路21は、第1〜第4のレジスタ31〜34、第1〜第3のセレクタ35〜37、乗算器38及び加算器39により構成される。また、RAM22は、第1RAM41及び第2RAM42を含む。
【0029】
第1RAM41は、入力データX(n)及び出力データY(n)を記憶すると共に、演算回路21の演算処理の過程で生じる中間データを記憶する。第2RAM42は、各種の係数データを記憶する。これらのRAM41、42は、第2メモリ制御回路24から供給されるデータアドレスDA1、DA2に応答して各データの読み出し及び書き込みを行う。
【0030】
第1セレクタ35は、第1RAM41及び外部入力に接続され、第1RAM41から読み出されるデータまたは外部からの入力データX(n)の何れか一方を選択して出力する。第1レジスタ31は、第1セレクタ35に接続され、第1セレクタ35により選択されたデータを取り込んで保持する。第2レジスタ32は、第2RAM42に接続され、第2RAM42から読み出されたデータを取り込んで保持する。乗算器38は、第1レジスタ31及び第2レジスタ32に接続され、各レジスタ31、32に保持されたデータを互いに乗算し、乗算結果を出力する。第3レジスタ33は、乗算器38に接続され、乗算器3から入力される乗算結果を取り込んで保持する。第2セレクタ36は、第4レジスタ34及びデータ「0」に接続され、第4レジスタ34に保持されたデータまたは「0」の何れか一方を選択して出力する。加算器39は、第3レジスタ33及び第2セレクタ36に接続され、第3レジスタ33に保持されたデータと第2セレクタ36で選択されたデータとを加算し、加算結果を出力する。第4レジスタ34は、加算器39に接続され、加算器39から入力される加算結果を取り込んで保持する。第3セレクタ37は、1セレクタ35及び第4レジスタ34に接続され、第1セレクタ35で選択されたデータまたは第4レジスタ34に保持されたデータの何れか一方を選択して出力する。この第3セレクタ37で選択されたデータは、第1RAM1に供給され、データアドレスDA1によって指定されるアドレスに書き込まれる。
【0031】
以上の演算回路21において、各セレクタ35〜37の選択動作は、後述する演算命令デコーダ28からの指示に従い、各レジスタ31〜34の取り込み動作は、一定周期の基準クロックに従うように制御される。
【0032】
第1メモリ制御回路23は、プログラムスタック51及びプログラムポインタ52を含む。プログラムスタック51は、FIFO(First In First Out)方式のレジスタであり、分岐命令デコーダ27から供給されるプログラムアドレスPA1を2つ分記憶する2つの領域(1)、(2)を有する。ここで、第1領域(1)は、分岐命令デコーダ27から供給されるプログラムアドレスPA1を順次取り込み、所定のタイミングで第2領域(2)へ転送する。そして、第2領域(2)は、インクリメント機能を備えており、第1領域(1)から取り込んだプログラムアドレスPA1を先頭アドレスとし、演算回路21の各レジスタ31〜34の動作に同期するように、基準クロックに従う周期で「1」ずつ増加させて繰り返し出力する。プログラムポインタ52は、インクリメント機能を有するレジスタによって構成される。プログラムポインタ52は、分岐命令デコーダ27から供給されるプログラムアドレスPA2を記憶し、そのプログラムアドレスPA2を先頭アドレスとし、プログラムスタック51と同様に、基準クロックに従う周期で「1」ずつ増加させて繰り返し出力する。これにより、各ROM25、26では、分岐命令デコーダ27の指示に従い、分岐命令デコーダ27から供給されるプログラムアドレスPA1、PA2を先頭に、それぞれのアドレスに記憶されたプログラムが順次読み出されることになる。この第1メモリ制御回路23において、プログラムスタック51の第1領域(1)から第2領域(2)へのプログラムアドレスPA1の転送、プログラムアドレスPA1の更新は、分岐命令デコーダ27の指示に従うタイミングで行われる。
【0033】
第2メモリ制御回路24は、第1データポインタ53及び第2データポインタ54を含む。第1データポインタ53は、分岐命令デコーダ27から供給されるデータアドレスDA1を記憶し、第2データポインタ54は、同じく分岐命令デコーダ27から供給されるデータアドレスDA2を記憶する。これらのデータポインタ53、54は、データアドレスDA1、DA2をRAM22へ供給した後、新たに分岐命令デコーダ27から供給されるデータアドレスDA1、DA2によって内容が更新される。この第2のメモリ制御回路24において、データアドレスDA1、DA2の更新は、第1メモリ制御回路23と同様に、分岐命令デコーダ27の指示に従うタイミングで行われる。
【0034】
以上の構成によれば、第1ROM25から読み出される分岐命令が、第1メモリ制御回路23及び第2メモリ制御回路24に供給されると同時に、第2ROM26から読み出される演算命令が、演算回路21に供給される。このため、分岐処理と演算処理とが並列して進み、演算効率が向上する。
【0035】
図5は、本発明のデジタル信号処理装置を図8に示すようなデジタルフィルタとして動作させる場合の制御プログラムのリストであり、図6は、その制御プログラムに対応する中間データ及び係数データを記憶するRAM22の内容を示すリストである。
【0036】
第1ROM25は、プログラムアドレスPA1として0番地〜17番地を有し、各番地には、図5(a)に示すような分岐命令が記憶されている。これらの分岐命令は、それぞれ以下のような動作を指示するものである。
【0037】
PS<=n:プログラムスタック51にアドレス「n」を設定
Start PA2>=n:プログラムアドレスPA2が「n」になったときにプログラムスタック51からプログラムアドレスPA1を取り込んで動作を開始
DA1=n:第1データポインタ53にアドレス「n」を設定
DA2=n:第2データポインタ54にアドレス「n」を設定
PA2=n:プログラムポインタ52にアドレス「n」を設定
第2ROM26は、プログラムアドレスPA2として0番地〜14番地を有し、各番地には、図5(b)に示すような演算命令が記憶されている。これらの演算命令は、それぞれ以下のような動作を指示するものである。
【0038】
R1=M1[DA1]:第1RAM41のDA1番地からデータを読み出して第1レジスタ31へ格納
R2=M2[DA2]:第2RAM42のDA2番地からデータを読み出して第2レジスタ32へ格納
R3=R1*R2:第1レジスタ31のデータと第2レジスタ32のデータとを乗算した積を第3レジスタ33に格納
R1=X(n):第1レジスタ31に入力データX(n)を格納
R2=M2[++DA2]:DA2に「1」を加算して更新し、第2RAM42のDA2番地からデータを読み出して第2レジスタ32に格納
M1[DA1]=X(n):第1RAM41のDA1番地に入力データX(n)を書き込む
R4+=R3:第4レジスタ34のデータに第3レジスタ33のデータを加算して第4レジスタ34に格納
R1=M1[++DA1]:DA1に「1」を加算して更新し、第1RAM41のDA1番地からデータを読み出して第1レジスタ31に格納
M1[DA1]=R4:第1RAM41のDA1番地に第4レジスタ34のデータを書き込む
ここで、演算回路21において同時に実行可能な動作については、同一のアドレスに記憶されており、1ステップで全て実行される。
【0039】
第1の第1RAM41は、データアドレスDA1として0番地〜3番地を有し、各番地には、図6(a)に示すように、第1の中間データA1、B1及び第2の中間データA2、B2がそれぞれ記憶される。これらの中間データA1、B1、A2、B2については、演算命令に従って順次書き換えられる。第2の第2RAM42は、データアドレスDA2として0番地〜5番地を有し、各番地には、フィルタ係数hb1、ha1、hc1、hb2、ha2、hc2が格納される。これらのフィルタ係数については、演算命令によって書き換えられることはないが、デジタルフィルタの特性を変更するために書き換えが可能になっている。
【0040】
以上の制御プログラムに従う本発明のデジタル信号処理装置の動作を、図7に従って説明する。この動作では、第1の特性のフィルタリング処理を施した後、異なる第2の特性のフィルタリング処理を施し、さらに、第1の特性のフィルタリング処理を再度施す場合を示している。
【0041】
ステップ1では、プログラムアドレスPA1及びプログラムアドレスPA2がそれぞれ「0」となり、第1ROM25及び第2ROM26の0番地に記憶された分岐命令及び演算命令がそれぞれ実行される。これにより、プログラムスタック51には、プログラムアドレスPA1として「3」が設定される。このとき、プログラムアドレスPA2は、「0」のまま維持される。ステップ2でプログラムアドレスPA1が「1」となると、第1ROM25の1番地に記憶された分岐命令が実行され、プログラムスタック51にプログラムアドレスPA1として「」が設定される。ステップ3でプログラムアドレスPA1が「2」になると、第1ROM25の2番地に記憶された分岐命令が実行される。ここでは、プログラムアドレスPA2が「0」のまま待機しているため、待つことなくプログラムスタック51からプログラムアドレスPA1として「3」が取り出され、プログラムアドレスPA1を「3」として動作が開始される。このとき、プログラムスタック51から「3」が読み出されると、第2領域(2)に格納されている「8」が第1領域(1)へ移される。
【0042】
ステップ4〜ステップ6でプログラムアドレスPA1が「3」〜「5」まで順に変化すると、第1ROM25の3番地〜5番地に記憶された分岐命令が順次実行される。これにより、第1データポインタ53、54及びプログラムポインタ52にデータアドレスDA1、DA2及びプログラムアドレスPA2として「0」、「0」及び「1」が設定される。
【0043】
ステップ7では、プログラムアドレスPA1が「」となり、第1ROM25の7番地に記憶された分岐命令が実行されてプログラムスタック51にプログラムアドレスPA1として「3」が設定される。このとき、ステップ6でプログラムポインタ52に「1」が設定されているため、第2ROM26の1番地に記憶された演算命令が実行される。これにより、第1RAM41の0番地から読み出される中間データA1が第1レジスタ31に格納され、第2RAM42の0番地から読み出されるフィルタ係数hb1が第2レジスタ32に格納される。ここで、中間データA1は、1つ前に入力されている入力データX(n-1)である。
【0044】
ステップ8でプログラムアドレスPA1が「7」となると、第1ROM25の7番地に記憶された分岐命令が実行され、プログラムアドレスPA2が「4」になるまで動作を停止する。このとき、プログラムアドレスPA2は「2」となり、第ROM2の2番地に記憶された演算命令が実行される。これにより、第1レジスタ31に格納された中間データA1、即ち、1つ前の入力データX(n-1)と第2レジスタ32に格納されたフィルタ係数hb1との積〔hb1・X(n-1)〕が第3レジスタ33に格納される。そして、第1レジスタ31には、入力データX(n)が格納され、第2レジスタ32には、第2RAM42の1番地から読み出されるフィルタ係数ha1が格納される。さらに、第1RAM41の0番地には、次の演算処理に備えて、入力データX(n)が中間データA1として新たに書き込まれる。
【0045】
ステップ9では、プログラムアドレスPA1は停止したままであり、プログラムアドレスPA2のみが更新されて「3」となり、第2ROM26の3番地に記憶された演算命令が実行される。これにより、第1レジスタ31に格納されたデータX(n)と第2レジスタ32に格納されたフィルタ係数ha1との積〔ha1・X(n)〕が第3レジスタ33に格納される。また、それまで第3レジスタ33に格納されていた積〔hb1・X(n-1)〕は、第4レジスタ34に格納されていたデータと加算されて第4レジスタ34に格納される。第4レジスタ34には、最初「0」が格納されているため、ここでは、第3レジスタ33に格納されていた積〔hb1・X(n-1)〕がそのまま第4レジスタ34に格納される。そして、第1レジスタ31に、第1RAM41の1番地から読み出される中間データB1が格納され、第2レジスタ32に、第2RAM42の2番地から読み出されるフィルタ係数hc1が格納される。ここで、中間データB1は、1つ前に出力された出力データY(n-1)である。
【0046】
ステップ10では、プログラムアドレスPA2が「4」となり、第2ROM26の4番地に格納された演算プログラムが実行される。これにより、第1レジスタ31に格納された中間データB1、即ち、1つ前の出力データY(n-1)と第2レジスタ32に格納されたフィルタ係数hc1との積〔hc1・Y(n-1)〕が第3レジスタ33に格納される。また、それまで第3レジスタ33に格納されていた積〔ha1・X(n)〕は、第4レジスタ34に格納されていた積〔hb1・X(n-1)〕と加算され、その和〔ha1・X(n)+hb1・X(n-1)〕が第4レジスタ34に新たに格納される。また、プログラムアドレスPA2が「4」となっているため、プログラムスタック51からプログラムアドレスPA1として「8」が取り出され、プログラムアドレスPA1を「8」として動作が開始される。これにより、第1ROM25の8番地に記憶された分岐命令が実行され、第1データポインタ53にデータアドレスDA1として「2」が設定される。
【0047】
ステップ11では、プログラムアドレスPA1が「9」となり、第1ROM25の9番地に記憶された分岐命令が実行されると共に、プログラムアドレスPA2が「5」となり、第2ROM26の5番地に記憶された演算命令が実行される。これにより、第2データポインタ54にデータアドレスDA2として「3」が設定されると共に、第3レジスタ33に格納されていた積〔hc1・Y(n-1)〕が、第4レジスタ34に格納されていた和〔ha1・X(n)+hb1・X(n-1)〕と加算され、その和〔ha1・X(n)+hb1・X(n-1)+hc1・Y(n-1)〕が第4レジスタ34に新たに格納される。
【0048】
ステップ12では、プログラムアドレスPA1が「10」となり、第1ROM25の10番地に記憶された分岐命令が実行されると共に、プログラムアドレスPA2が「6」となり、第2ROM26の6番地に記憶された演算命令が実行される。これにより、プログラムポインタ52にプログラムアドレスPA2として「1」が設定されると共に、第4レジスタ34に格納されていた和〔ha1・X(n)+hb1・X(n-1)+hc1・Y(n-1)〕が、次の演算処理に備えて第1RAM41の1番地に中間データB1として書き込まれる。尚、このステップ12では、第1のデータポインタ53に設定されたデータアドレスDA1は用いず、ステップ9において中間データB1を読み出したときのデータアドレスDA1となる「1」がそのまま用いられる。
【0049】
ステップ13では、プログラムアドレスPA1が「11」となり、第1ROM25の11番地に記憶された分岐命令が実行される。これにより、プログラムスタック51にプログラムアドレスPA1として「13」が設定される。このとき、プログラムアドレスPA2は、ステップ12で設定された「1」となり、第2ROM26の1番地に記憶された演算命令が実行される。この演算命令は、ステップ7の演算命令と同一であり、第1RAM41から読み出される中間データA2が第1レジスタ31に格納され、第2RAM42から読み出されるフィルタ係数hb2が第2レジスタ32に格納される。
【0050】
以上のように、ステップ4〜ステップ8で与えられる分岐命令により設定した条件に基づいて、ステップ7〜ステップ12で与えられる演算命令に従う演算処理が施される。この結果、
Y(n)=ha1・X(n)+hb1・X(n-1)+hc1・Y(n-1)
なる式に従うフィルタリング処理が完了する。この式は、図8に示すデジタルフィルタによって達成される演算処理に一致する。
【0051】
以後同様にして、ステップ10〜ステップ14で与えられる分岐処理により設定した条件に基づいて、ステップ13〜ステップ18で与えられる演算処理に従う演算処理が施される。この結果、
Y(n)=ha2・X(n)+hb2・X(n-1)+hc2・Y(n-1)
なる式に従うフィルタリング処理が完了する。
【0052】
さらに、ステップ16〜ステップ20で与えられる分岐命令により設定した条件に基づいて、ステップ19〜ステップ24における演算命令に従う演算処理が施される。この演算処理では、ステップ12おいて完了する演算処理と同一条件のフィルタリング処理が達成される。
【0053】
ステップ22において、プログラムアドレスPA2が「4」となると、プログラムスタック51からプログラムアドレスPA1として「13」が取り込まれ、第1ROM25の13番地に記憶された分岐命令が実行される。これにより、第1データポインタ53にデータアドレスDA1として「0」が設定される。ステップ23において、プログラムアドレスPA1が「14」となり、第1ROM25の14番地に記憶された分岐命令が実行されると、第2データポインタ54にデータアドレスDA2として「0」が設定される。ステップ24において、プログラムアドレスPA1が「15」となり、第1ROM25の15番地に記憶された分岐命令が実行されると、プログラムポインタ52にプログラムアドレスPA2として「8」が設定される。
【0054】
ステップ25において、プログラムアドレスPA1が「16」となり、第1ROM25の16番地に記憶された分岐命令が実行されると、プログラムスタック51にプログラムアドレスPA1として「8」が設定される。このとき、プログラムアドレスPA2は、ステップ24で設定された「8」となるため、演算動作は行われない。
【0055】
ステップ26において、プログラムアドレスPA1が「17」となると、第1ROM25の17番地の分岐命令が実行され、プログラムアドレスPA2が「11」となるまで動作が停止される。このとき、プログラムアドレスPA2は、「9」となるが、演算動作は行われない。次にプログラムアドレスPA2が「11」となった時点(ステップ28)で、プログラムスタック51からプログラムアドレスPA1として「3」が取り出され、第1ROM25の3番地に記憶された分岐命令が実行される。このステップ28以降の動作は、ステップ4からの動作に一致する。従って、3段階のフィルタリング処理が繰り返されることになる。以上の実施形態においては、2種類のフィルタリング処理を3段階で施す場合を例示したが、分岐命令及び演算命令の制御プログラムを変更することにより、回路構成を変更することなく、さらに複雑なフィルタリング処理を施すことができる。この場合でも、分岐命令と演算命令とが並列に処理されるため、複雑なフィルタリング処理であっても効率よく処理を完了することができる。
【0056】
【発明の効果】
本発明によれば、分岐命令と演算命令とをそれぞれ独立にメモりに記憶するようにしたことで、デジタル信号処理の分岐処理と演算処理とを並列に実行させることが可能になる。従って、演算回路を効率よく動作させて演算処理に要する時間を短縮することができる。
【図面の簡単な説明】
【図1】本発明のデジタル信号処理装置の構成を示すブロック図である。
【図2】本発明のデジタル信号処理装置の動作の一例を示すタイミング図である。
【図3】演算回路及びRAMの構成の一例を示すブロック図である。
【図4】メモリ制御回路の構成の一例を示すブロック図である。
【図5】分岐命令及び演算命令のプログラムリストである。
【図6】RAMの内容を示す図である。
【図7】図5のプログラムリストに従う演算処理を説明する図である。
【図8】デジタルフィルタの構成を示す回路図である。
【図9】従来のデジタル信号処理装置の構成を示すブロック図である。
【符号の説明】
1 加算器
2a、2b、2c 乗算器
3a、3b ラッチ
11、21 演算回路
12、22 RAM
13、23、24 メモリ制御回路
14、25、26 ROM
15 命令デコーダ
27 分岐命令デコーダ
28 演算命令デコーダ
31〜34 レジスタ
35〜37 セレクタ
38 乗算器
39 加算器
41、42 RAM
51 プログラムスタック
52 プログラムポインタ
53、54 アドレスポインタ

Claims (5)

  1. 第1のデジタルデータに対して多段階の演算処理を施すことにより第2のデジタルデータを生成するデジタル信号処理装置において、上記多段階の演算処理の流れを制御する分岐命令を記憶する第1のメモリと、上記多段階の演算処理の各段の動作を制御する演算命令を記憶する第2のメモリと、上記第1及び第2のメモリに対してそれぞれ一定の順序でアドレスを指定し、上記分岐命令及び上記演算命令を読み出す第1のメモリ制御回路と、上記第1のデジタルデータに対して、上記第1及び第2のメモリから読み出される上記分岐命令及び上記演算命令に従う演算処理を施す演算回路と、を備え、上記第1のメモリ制御回路は、上記分岐命令に応答して上記第2のメモリに対するアドレスを所定のアドレスへジャンプさせることを特徴とするデジタル信号処理装置。
  2. 上記第1のメモリ制御回路は、上記第1のメモリから上記分岐命令を先読みして適数ステップ分を一時的に保持し、保持した順に上記分岐命令を出力するFIFO方式のプログラムスタックを含むことを特徴とする請求項1に記載のデジタル信号処理装置。
  3. 上記第1のメモリ制御回路は、上記演算命令の上記第2のメモリからの読み出しアドレスに応答して、上記分岐命令の上記第1のメモリからの読み出しを待機させることを特徴とする請求項1に記載のデジタル信号処理装置。
  4. 上記演算回路に接続され、上記第1及び第2のデジタルデータと共に上記演算回路の処理過程の中間データを記憶する第3のメモリと、上記分岐命令及び上記演算命令に従って上記第3のメモリのアドレスを指定する第2のメモリ制御回路と、をさらに備えたことを特徴とする請求項1に記載のデジタル信号処理回路。
  5. 上記第2のメモリ制御回路は、上記分岐命令に基づいて初期アドレスを指定すると共に、上記演算命令に基づいて初期アドレスを順次更新することを特徴とする請求項4に記載のデジタル信号処理装置。
JP17297698A 1998-06-19 1998-06-19 デジタル信号処理装置 Expired - Fee Related JP3738134B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP17297698A JP3738134B2 (ja) 1998-06-19 1998-06-19 デジタル信号処理装置
EP99304711A EP0965912A3 (en) 1998-06-19 1999-06-16 Digital signal processor
US09/336,075 US6430681B1 (en) 1998-06-19 1999-06-18 Digital signal processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP17297698A JP3738134B2 (ja) 1998-06-19 1998-06-19 デジタル信号処理装置

Publications (2)

Publication Number Publication Date
JP2000010779A JP2000010779A (ja) 2000-01-14
JP3738134B2 true JP3738134B2 (ja) 2006-01-25

Family

ID=15951863

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17297698A Expired - Fee Related JP3738134B2 (ja) 1998-06-19 1998-06-19 デジタル信号処理装置

Country Status (3)

Country Link
US (1) US6430681B1 (ja)
EP (1) EP0965912A3 (ja)
JP (1) JP3738134B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6833926B1 (en) * 1999-09-28 2004-12-21 Kabushiki Kaisha Toshiba Image processing apparatus
US20050036357A1 (en) * 2003-08-15 2005-02-17 Broadcom Corporation Digital signal processor having a programmable address generator, and applications thereof
US7489362B2 (en) 2003-03-04 2009-02-10 Broadcom Corporation Television functionality on a chip
GB2497154B (en) * 2012-08-30 2013-10-16 Imagination Tech Ltd Tile based interleaving and de-interleaving for digital signal processing
US10237782B2 (en) * 2015-12-30 2019-03-19 The Chinese University Of Hong Kong Hardware acceleration for batched sparse codes

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS54117646A (en) * 1978-03-06 1979-09-12 Toshiba Corp Computer
JPH0830971B2 (ja) * 1984-03-26 1996-03-27 株式会社日立製作所 プログラマブルコントローラ
US5450553A (en) * 1990-06-15 1995-09-12 Kabushiki Kaisha Toshiba Digital signal processor including address generation by execute/stop instruction designated
JPH07200289A (ja) * 1993-12-28 1995-08-04 Fujitsu Ltd 情報処理装置
GB2292822A (en) * 1994-08-31 1996-03-06 Hewlett Packard Co Partitioned cache memory

Also Published As

Publication number Publication date
EP0965912A2 (en) 1999-12-22
JP2000010779A (ja) 2000-01-14
US6430681B1 (en) 2002-08-06
EP0965912A3 (en) 2004-04-28

Similar Documents

Publication Publication Date Title
JP3208990B2 (ja) 信号処理装置
JP3738134B2 (ja) デジタル信号処理装置
JPH07122973A (ja) デジタル信号処理回路
JPH0418635A (ja) ディジタル信号プロセッサ
JP2000322235A (ja) 情報処理装置
JPH08172343A (ja) Iir型ディジタルフィルタの構成方法
JP3008726B2 (ja) 効果付与装置
JPH04227540A (ja) 演算処理装置及びディジタル信号処理プロセッサ
JP2000293357A (ja) マイクロプロセッサ
JP3371643B2 (ja) 信号処理装置
JPH10336785A (ja) オーディオ信号処理装置、その信号処理法及びその処理方法によるプログラムを記録した記録済媒体
JPH02264509A (ja) デジタルフィルタ
JP3453321B2 (ja) 演算処理方法及び演算処理回路
JP2001092658A (ja) データ処理回路及びデータ処理装置
JP3288074B2 (ja) アドレス生成回路
JP3277559B2 (ja) 効果付加装置
JP2511262Y2 (ja) デジタル信号処理装置
JPH01179515A (ja) デジタル信号処理装置
JP3055563B2 (ja) デジタルフィルタのフィルタ係数変更方法
JPS63298633A (ja) パイプライン処理装置における命令フェッチ制御方式
JP3536446B2 (ja) 遅延フィードバック音源
JPH09185491A (ja) 累積加算器
JPH0113244B2 (ja)
JPH08335081A (ja) 信号処理装置
JP2000286679A (ja) デジタル信号処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040601

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050621

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050805

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050913

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050930

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20051025

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20051031

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091104

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees