(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0020】
図1乃至
図13に、この発明の実施の形態を示す。
【0021】
[基本構成]
図1は、この実施の形態に係る「ディジタル信号処理装置」としてのベクトル演算処理装置の概略構成を示す機能ブロック図である。
【0022】
図1に示す「ディジタル信号処理装置」としてのベクトル演算処理装置1は、プログラムの実行によって機能を実現させるための構成(例えばCPU等)を備え、各種のディジタル信号に対するフィルタ処理を行う装置に用いられる。具体的には、例えば、
図1に示すベクトル演算処理装置1は、パチンコ機、パチスロ等の遊技機(図示せず)に組み込まれ、遊技機(図示せず)に設けられたスピーカ14(
図2参照)から出力される音声を形成するディジタル音声信号に対してFIRフィルタとして機能してフィルタ処理を行う。
【0023】
図1に示す通り、このベクトル演算処理装置1はベクトルレジスタ2、「演算処理手段」としての演算器3を備えている。このベクトル演算処理装置1の備えるそれぞれの構成は、基本的にはハードウェアロジックによって構成されるが、これらの構成のうちの一部又は全部がプログラムの実行によって実現されるものであってもよい。
【0024】
ベクトルレジスタ2は、ベクトル演算処理装置1においてフィルタ処理の対象となる入力データ(音声信号)やフィルタ係数や演算器3における積和演算の結果としてのデータ(フィルタ処理された音声信号)が記録される記憶素子である。
図1に示す通り、ベクトルレジスタ2には、データ保管領域としてのN個(ただしN>1)の「第一の格納手段」としての第0レジスタ20
1、「第二の格納手段」としての第1レジスタ20
2、・・・第Mレジスタ20
M(ただしM=N−1)が設けられており、フィルタ処理が行われる前の音声信号、フィルタ処理に用いられる係数のデータ、フィルタ処理が行われた後の音声信号がそれぞれ記録される(詳しくは後述する)。
【0025】
演算器3は、加算器や乗算器を備え、入力データ(音声信号)に対する積和演算を行うことでFIRフィルタにおけるフィルタ処理を行う。
【0026】
図2は、この実施の形態に係るディジタル信号処理システムの概略構成を示す機能ブロック図である。同図に示すように、ディジタル信号処理システム10は、音声信号処理装置11、ROM12、アンプ13、スピーカ14を備えている。そして、音声信号処理装置11は、デコーダ15、ベクトル演算処理装置1、出力部16を備えている。
【0027】
音声信号処理装置11は、この実施の形態に係るベクトル演算処理装置1を備え、デコーディングによる音声信号の復元と音声信号のFIRフィルタによるフィルタ処理とを行って出力する。この音声信号処理装置11の備えるそれぞれの構成は、基本的にはハードウェアロジックによって構成されるが、これらの構成のうちの一部又は全部がプログラムの実行によって実現されるものであってもよい。
【0028】
ROM12は、記録媒体であって圧縮符号化された音声信号等の各種データが記録される。アンプ13は音声信号処理装置11から出力された音声信号を増幅する。スピーカ14は音声信号を音声に変換して外部に出力する。
【0029】
デコーダ15は、ROM12に記録された、符号化された音声信号をデコードして音声信号を復元する。デコードの結果得られた音声の振幅値をサンプリング周期毎にベクトル演算処理装置1に供給する。出力部16はアンプ13との通信インターフェース機能(例えばI2S/SPDIFなど)を備え、ベクトル演算処理装置1でフィルタ処理された音声信号をアンプ13に送信するために必要な処理を行う。
【0030】
図3は、この実施の形態に係るベクトル演算処理装置1の構成の概略を模式的に示す機能ブロック図である。同図に示す通り、この実施の形態のベクトル演算処理装置1は、ベクトルレジスタ2及び演算器3に加え、リングバッファ制御部17を備えている。
【0031】
リングバッファ制御部17は、ベクトルレジスタ2に設けられた第0レジスタ20
1、第1レジスタ20
2、・・・第Mレジスタ20
Nのうちの一部又は全部をリングバッファとして構成させるために必要な処理、即ち読み出しインデックスや書き込みインデックスの制御を行う(詳しくは後述する)。
【0032】
図4は、この実施の形態に係るベクトル演算処理装置1の構成の詳細を模式的に示す機能ブロック図である。同図に示す通り、ベクトル演算処理装置1は、ベクトル命令発行部21、としてのベクトル命令制御部22、「入出力データ制御手段」としてのベクトルレジスタ読み出し部23、「入出力データ制御手段」としてのベクトルレジスタ書き込み部24を備えている。
【0033】
ベクトル命令発行部21は、入力データ制御部211、出力データ制御部212、「入出力データ制御手段」としてのリングバッファ制御部17を備えている(これらの構成の機能については後述する)。ベクトル命令発行部21は、リングバッファ制御部17の機能により、ベクトルレジスタ2のレジスタ例えば第0レジスタ20
1をリングバッファとして機能させて各レジスタ即ち第0レジスタ20
1、第1レジスタ20
2、・・・第Mレジスタ20
Nに対するデータの読み出しインデックスや書き込みインデックスの制御を行う。具体的には、ベクトルレジスタ2に記録されたデータを用いてベクトル演算を実施するための命令を発行する。また、ベクトル命令発行部21は、リングバッファ制御部17の機能も含み、レジスタの読み出し、書き込みインデックスを制御する(詳しくは後述する。)。
【0034】
ベクトル命令制御部22は、ベクトル命令発行部21から出力された命令に基づいてベクトルレジスタ読み出し部23及びベクトルレジスタ書き込み部24を制御することで、ベクトル演算によるデータの演算を制御するために必要な処理を行う(詳しくは後述する。)。
【0035】
ベクトルレジスタ読み出し部23は、ベクトルレジスタ2の各レジスタ、例えば第0レジスタ20
1、第1レジスタ20
2、・・・第Mレジスタ20
Nの指定されたインデックスに基づくデータ格納領域、例えば、第0レジスタ20
1の、第0インデックスが付与された第0データ格納領域20
11、第1インデックスが付与された第1データ格納領域20
12、第2インデックスが付与された第2データ格納領域20
13、第3インデックスが付与された第3データ格納領域20
14(
図8〜
図13参照)に記録されたデータをベクトル演算によって読み出して演算器3に送る。
【0036】
ベクトルレジスタ書き込み部24は、演算器3において演算された結果をベクトル演算によってベクトルレジスタ2の各レジスタ第0レジスタ20
1、第1レジスタ20
2、・・・第Mレジスタ20
Nの指定されたインデックスに基づく格納領域、例えば第Mレジスタ20
Nの第0インデックスが付与された第0データ格納領域20
N1に送る。
【0037】
乗算器31は、ベクトルレジスタ読み出し部23から読み出された2つの値(具体的には、第0レジスタ20
1から読み出された音声信号と、第1レジスタ20
2から読み出されたフィルタ係数)を乗算する処理を行う。加算器32は、乗算器31における乗算の結果や、レジスタ33に一時的に記録された積和演算の結果を加算する処理を行う。レジスタ33は、加算器32により加算された結果のデータを一時的に記録する機能を有する。
【0038】
図5は、この実施の形態に係るベクトルレジスタ2の各レジスタ第0レジスタ20
1、第1レジスタ20
2、・・・第Mレジスタ20
Nの構成を模式的に示す機能ブロック図である。同図に示す通り、第0レジスタ20
1は、複数例えばN個(N>1)の第0データ格納領域20
11、第1データ格納領域20
12、・・・第Mデータ格納領域20
1M、第Nデータ格納領域20
1Nを備えている。また、同様に、第1レジスタ20
2も複数例えばN個(N>1)の第0データ格納領域20
21、第1データ格納領域20
22、・・・第Mデータ格納領域20
2M、第Nデータ格納領域20
2Nを備え、第Mレジスタ20
Mも複数例えばN個(N>1)の第0データ格納領域20
M1、第1データ格納領域20
M2、・・・第Mデータ格納領域20
MM、第Nデータ格納領域20
MNを備えている。それぞれのデータ格納領域例えばデータ格納領域20
11,20
12,20
1M,20
1Nには、音声信号やフィルタ係数等のデータが格納される。
【0039】
図6は、この実施の形態に係るベクトル命令発行部21の構成を模式的に示す機能ブロック図である。同図に示す通り、ベクトル命令発行部21は、
図4にも示す入力データ制御部211、出力データ制御部212、「インデックス制御手段」としてのリングバッファ制御部17の他に、使用レジスタ設定部213、フィルタ次数設定部214、係数設定部215を備えている。また、リングバッファ制御部17は、「インデックス制御手段」としての読み出しインデックス制御部171、「インデックス制御手段」としての書き込みインデックス制御部172を備えている。
【0040】
入力データ制御部211は、各レジスタ例えば第0レジスタ20
1、第1レジスタ20
2、・・・第Mレジスタ20
Nにデータ(音声信号やフィルタ係数の値や演算結果)を入力するための制御を行う。出力データ制御部212は、ベクトルレジスタ2の第Mレジスタ20
Nから、信号値とフィルタ係数との積和演算の結果としてのデータを出力させるための制御を行う。
【0041】
リングバッファ制御部17は、各レジスタ例えば第0レジスタ20
1をリングバッファとして機能させるための制御を行う。具体的には、各レジスタの格納領域(例えば第0レジスタ20
1の第0データ格納領域20
11に付与した第0インデックス、第1データ格納領域20
12に付与した第1インデックス、第2データ格納領域20
13に付与した第2インデックス、第3データ格納領域20
14に付与した第3インデックス、等(
図8〜
図13参照))を基準位置ないし基準として、データの読み出しや書き込みを行うための制御を行う。読み出しインデックス制御部171は、リングバッファとして構成した各レジスタ例えば第0レジスタ20
1の第0データ格納領域20
11、第1データ格納領域20
12、・・・第Mデータ格納領域20
1Nからデータを読み出すために必要な制御を行う。書き込みインデックス制御部172は、リングバッファとして構成した各レジスタ例えば第0レジスタ20
1の第0データ格納領域20
11、第1データ格納領域20
12、・・・第Mデータ格納領域20
1Nにデータを書き込むために必要な制御を行う。
【0042】
使用レジスタ設定部213は、初期設定時に、各レジスタ20
1,20
2,・・・20
Nのうち、音声信号やフィルタ計数等を格納するものを設定する。フィルタ次数設定部214は、初期設定時に、演算器3におけるフィルタ処理の際のフィルタ次数Nを設定する。係数設定部215は、初期設定時にFIRフィルタ係数を求めるために利用する係数h[0]〜h[n−1]を設定する(
図8〜
図13参照)。
【0043】
[処理手順]
図7は、この実施の形態に係るベクトル演算処理装置1の処理手順を示すフローチャートであり、
図8〜
図13は、この実施の形態に係るベクトル演算処理装置1のベクトルレジスタ2におけるデータの格納状態を模式的に示す図である。
【0044】
以下、
図7〜
図14に基づいて、この実施の形態におけるベクトル演算処理装置1の処理手順を説明する。なお、同図では、ベクトルレジスタ2の第0レジスタ20
1に入力データ、第1レジスタ20
2に係数を格納し、レジスタMに積和演算結果を格納する事例に基づいて説明する。また、説明を簡単にするため、フィルタ次数Nを4とした場合に基づき説明する。
【0045】
(1)まず、初期設定として、ベクトル命令発行部21の使用レジスタ設定部213は、入力データを格納するレジスタとして第0レジスタ20
1を設定し、フィルタ係数を格納するレジスタとして第1レジスタ20
2を設定し、積和演算結果を格納するレジスタとして第Mレジスタ20
Nを設定する(ステップS1)。ここで、使用レジスタ設定部213は、入力データを格納する第0レジスタ20
1をリングバッファとして設定する。なお、ここでは積和演算結果を格納するレジスタとしてベクトルレジスタ2の第Mレジスタ20
Nを使用するが、積和演算結果は単一の出力であるため、ベクトルレジスタ2ではなくスカラレジスタ(図示せず)を用いてもよい。
【0046】
(2)また、初期設定として、ベクトル命令発行部21のフィルタ次数設定部214は、演算器3におけるフィルタ次数N(N=4)を設定する。なお、ベクトルレジスタ2の各レジスタ、例えば第0レジスタ20
1、第1レジスタ20
2、・・・第Mレジスタ20
Mは、データを格納するデータ格納領域例えばデータ格納領域20
11,20
12,・・・20
1M,20
1Nが4つ以上ある場合は、そのうちの4つがデータの格納に用いるものとして設定される。なお、データ格納領域の数がフィルタ次数よりも少ないレジスタ例えば第Mレジスタ20
Nがこの実施の形態に用いるものとして設定されている場合は、これを、データ格納領域の数がフィルタ次数(N=4)以上ある他のレジスタ例えば第M−1レジスタ(図示せず)に変更する処理を行うことが望ましい。
【0047】
(3)また、初期設定として、ベクトル命令発行部21は、ベクトル命令制御部22に対し、上記(1)(2)でデータの格納に用いるレジスタとして設定された第0レジスタ20
1、第1レジスタ20
2、第Mレジスタ20
Nの情報と、第0レジスタ20
1、第1レジスタ20
2、第Mレジスタ20
Nの使用するデータ格納領域に付与するインデックスの情報を、ベクトル命令制御部22に対して発行する(ステップS1)。そして、ベクトル命令制御部22は、使用する第0レジスタ20
1、第1レジスタ20
2、第Mレジスタ20
Nの使用するデータ格納領域にインデックスを付与する(ステップS1)。具体的には、例えば第0レジスタ20
1の第0データ格納領域20
11には第0インデックスを、第1データ格納領域20
12には第1インデックスを、第2データ格納領域20
13には第2インデックスを、第3データ格納領域20
14には第3インデックスをそれぞれ付与する。同様に、第1レジスタ20
2の第0データ格納領域20
21には第0インデックスを、第1データ格納領域20
22には第1インデックスを、第2データ格納領域20
23には第2インデックスを、第3データ格納領域20
24には第3インデックスをそれぞれ付与する。また、同様に、第Mレジスタ20
Nの第0データ格納領域20
N1には第0インデックスを、第1データ格納領域20
N2には第1インデックスを、第2データ格納領域20
N3には第2インデックスを、第3データ格納領域20
N4には第3インデックスをそれぞれ付与する(
図8〜
図13参照)。
【0048】
(4)また、初期設定として、係数設定部215は、演算器3におけるFIRフィルタの演算に用いる係数h[0]〜h[n−1]をベクトルレジスタ2の第1レジスタ20
2の各データ格納領域20
21,20
22・・・20
2M,20
2Nに格納する。この場合、係数設定部215は、係数h[0]〜h[n−1]を格納する第1レジスタ20
2のデータ格納領域20
21,20
22・・・20
2M,20
2Nに、第0インデックスから第N−1(ここではN=4)インデックスを設定する(ステップS1)。そして、このインデックスの数字0〜N−1までの順に、データ格納領域20
21,20
22・・・20
2M,20
2Nに係数h[0]〜h[n−1]を格納する。
【0049】
(5)
図8に示すように、初期状態において、入力データを格納する前の第0レジスタ20
1のデータ格納領域20
11,20
12・・・20
1M,20
1Nには全て“0”が格納されている。また積和演算結果を格納する第Mレジスタ20
Nのデータ格納領域20
N1,20
N2・・・20
NM,20
NNにも全て“0”が格納されている。
【0050】
(6)ここで、ベクトル命令制御部22は、リングバッファ制御部17の読み出しインデックス制御部171と書き込みインデックス制御部172とに対し、下記(イ)(ロ)の規則に基づいて、第0レジスタ20
1へのデータの格納やデータの取り出しを行わせるように設定する(ステップS2)。また、ベクトル命令制御部22は、ベクトルレジスタ読み出し部23やベクトルレジスタ書き込み部24に対し、下記(ハ)(ニ)に示す規則に基づいて、第1レジスタ20
2、第Mレジスタ20
Nへのデータの格納やデータの取り出しの開始位置の設定や、格納順序、取り出し順序の設定を行う(ステップS2)。
(イ)書き込みインデックス制御部172は、リングバッファとして構成された第0レジスタ20
1のデータ格納領域20
11,20
12・・・20
1M,20
1Nに、付与されたインデックスの降順に(つまり、インデックスの数字N−1,N−2,・・・1,0の順に)新たなデータを格納する。
(ロ)読み出しインデックス制御部171は、新たにデータが格納されたデータ格納領域を読み出しの開始位置として設定し、この開始位置からインデックスを昇順に循環させる形で順次データを読み出す(ステップS2)。具体的には、例えば、第0レジスタ20
1の第2インデックスが付与された第2データ格納領域20
13に新しい入力データX1が格納された場合(
図10参照)、第2データ格納領域20
13、第3インデックスが付与された第3データ格納領域20
14、第0インデックスが付与された第0データ格納領域20
11、第1インデックスが付与された第1データ格納領域20
12、の順にデータを読み出す。
(ハ)なお、第1レジスタ20
2はリングバッファとして構成されていないので、上記(
ロ)に示す順序でのデータの読み出しは行われず、インデックスの昇順(つまり、第0インデックスが付与された第0データ格納領域20
21、第1インデックスが付与された第1データ格納領域20
22、第2インデックスが付与された第2データ格納領域20
23、第3インデックスが付与された第3データ格納領域20
23、の順)にデータを取り出して、演算器3において音声信号との乗算加算処理が行われる。
(ニ)全ての乗算処理と加算処理が行われた結果の値は、第Mレジスタ20
Nの第0インデックスが付与された第0データ格納領域20
N1に格納される。
【0051】
(7)1番目の入力データX0がベクトルレジスタ書き込み部24に入力されると、ベクトル命令発行部21の入力データ制御部211は、第0レジスタ20
1のインデックス3が付与された第4データ格納領域20
14に入力データを格納するように、ベクトル命令制御部22に命令を発行する(ステップS1)。
【0052】
(8)ベクトル命令制御部22は、上記(1)にて入力データを格納するベクトルレジスタ2として設定された第0レジスタ20
1のデータ格納領域20
11,20
12・・・20
1M,20
1Nに、上記(5)の(イ)で設定された順序に基づき入力データを格納する。
【0053】
(9)ベクトル命令発行部21は下記(A)〜(E)の処理を行う命令をベクトル命令制御部22に出力する。そして、ベクトル命令制御部22はこの命令に基づいてベクトルレジスタ読み出し部23、ベクトルレジスタ書き込み部24及び演算器3を制御する。
【0054】
(A)第0レジスタ20
1の第3インデックスが付与された第3データ格納領域20
14に格納された入力データX0と第1レジスタ20
2の第0インデックスが付与された第0データ格納領域20
21に格納された係数h[0]とを読み出し、演算器3にて乗算させる(ステップS3、
図9の(1))。その演算結果は演算器3のレジスタ33に格納される。
【0055】
(B)この段階で、N個(4個)のデータ全ての演算が完了していないので(ステップS4の“No”)、第0レジスタ20
1の読み出し位置を一つずらす(ステップS5)。すると、読み出し位置がデータを格納できる領域(第3インデックスが付与された第3データ格納領域20
23)を越えるので(ステップS6の“Yes”)、第0レジスタ20
1の読み出し位置を、第0インデックスが付与された第0データ格納領域20
11に戻す(ステップS7)。そして、第0インデックスが付与された第0データ格納領域20
11に格納されたデータ(0)と、第1レジスタ20
2の第1インデックスが付与された第1データ格納領域20
22に格納された係数h[1]とを読み出し、演算器3にて乗算させる(
図9の(2))。その演算結果と演算器3のレジスタ33に格納された演算結果とを加算し、その演算結果を再び演算器3のレジスタ33に格納する(ステップS3)。
【0056】
(C)この段階で、N個(4個)のデータ全ての演算が完了していないので(ステップS4の“No”)、第0レジスタ20
1の読み出し位置を一つずらす(ステップS5)。この場合は、読み出し位置がデータを格納できる領域(第3インデックスが付与された第3データ格納領域20
23)を越えないので(ステップS6の“No”)、第0レジスタ20
1の第1インデックスが付与された第1データ格納領域20
12に格納されたデータ(0)と、第1レジスタ20
2の第2インデックスが付与された第2データ格納領域20
23に格納された係数h[2]とを読み出し、演算器3にて乗算させる(
図9の(3))。その演算結果と演算器3のレジスタ33に格納されている演算結果との加算処理結果を再び演算器3のレジスタ33に格納する(ステップS3)。
【0057】
(D)この段階で、N個(4個)のデータ全ての演算が完了していないので(ステップS4の“No”)、第0レジスタ20
1の読み出し位置を一つずらす(ステップS5)。この場合は、読み出し位置がデータを格納できる領域(第3インデックスが付与された第3データ格納領域20
23)を越えないので(ステップS6の“No”)、第0レジスタ20
1の第2インデックスが付与された第2データ格納領域20
13に格納されたデータと、第1レジスタ20
2の第3インデックスが付与された第3データ格納領域20
24に格納された係数h[3]とを読み出し、演算器3にて乗算させる(
図9の(4))。その演算結果と演算器3のレジスタ33に格納されている演算結果とを加算し、その演算結果を再び演算器3のレジスタ33に格納する(ステップS3)。
【0058】
(E)N個(4個)のデータに関する積和演算を実行した後(ステップS4の“Yes”)、その積和演算結果である値R0を第Mレジスタ20
Nの第0インデックスが付与された第0データ格納領域20
N1に書き込む(ステップS8)。
【0059】
(10)ベクトル命令発行部21はベクトルレジスタ2の第Mレジスタ20
Nの第0インデックスが付与された第0データ格納領域20
11に格納された演算結果である値R0をFIRフィルタの出力結果として出力するよう、ベクトル命令制御部22に指示し、ベクトル命令制御部22は指示に従い、第Mレジスタ20
Nの第0インデックスが付与された第0データ格納領域20
N1に格納されたデータを出力する。
【0060】
(11)次に、2番目の入力データX1がベクトルレジスタ書き込み部24に入力されると、
図10に示すように、第0レジスタ20
1の第2インデックスが付与された第2データ格納領域20
13にデータが格納される。そして、
図10に示すように、第0レジスタ20
1の各データ格納領域20
11,20
12,・・・20
1M(20
13),20
1N(20
14)に格納されたデータと、第1レジスタ20
2に格納された係数との積和演算が行われ、その演算結果である値R1が第Mレジスタ20
Nの第0インデックスが付与された第0データ格納領域20
N1に格納される。更に、ベクトル命令発行部21が演算結果である値R1を出力するよう命令を発行し、ベクトル命令制御部22は、発行された命令に基づいてベクトル読み出し部23、ベクトル書き込み部24及び演算器3を制御する。
【0061】
(12)以下、同様に
図11、
図12に示すように、3番目の入力データX2、4番目の入力データX3が入力されると、上記と同様の第0レジスタ20
1へのデータの書き込みと演算を順次繰り返し、FIRフィルタの出力を求める。
図12に示すように、第0レジスタ20
1の全てのデータ格納領域20
11,20
12,・・・20
1M,20
1Nに値が格納された後、5番目の入力データX4が入力されると、
図13に示すように、最先にデータが格納されたデータ格納領域(この場合は第0レジスタ20
1の第3データ格納領域20
14)のデータを最新のデータに置き換える。以後、同様の処理が繰り返される。
【0062】
以上示した通り、この実施の形態のベクトル演算処理装置1においては、ベクトル演算機能とリングバッファ機能とを兼ね備えたベクトル演算処理装置1としたので、FIRフィルタの積和演算処理はベクトル演算処理装置1側で処理が行われることになる。従って、DSP(Digital Signal Processor)側の処理負荷を低減することができる。
【0063】
この実施の形態においては、リングバッファとして構成された第0レジスタ20
1から、設定に基づいて、読み出しの先頭位置を順番に替えながら第0データ格納領域20
11〜第3データ格納領域20
14に対するデータの書き込み及びデータの読み出しを行い
読み出されたデータを演算器3においてベクトル演算にて演算処理を行うことにより、リングバッファとして構成された第0レジスタ20
1において、個々のデータ格納領域即ち第0データ格納領域20
11〜第3データ格納領域20
14かのそれぞれに格納されたデータを、処理が行われるたびに他のデータ格納領域即ち第0データ格納領域20
11〜第3データ格納領域20
14に書き替えてデータの並び順とデータ格納領域即ち第0データ格納領域20
11〜第3データ格納領域20
14を管理する番号の順序を一致させること(例えば、データ格納領域20
11,20
12,20
13,20
14の昇順に入力データX0,X1,X2,X3,X4・・・を並べ直すこと)を行わなくても、データの並び順にデータを読み出してベクトル演算にて演算処理を行うことができる。これにより、複数のフィルタ次数を有するディジタルフィルタを用いたディジタル信号処理において、フィルタ次数が大きくなった場合であっても、処理負荷や処理時間が過大になることを抑止することができる。
【0064】
この実施の形態においては、リングバッファとして構成された第0レジスタ20
1の第0データ格納領域20
11〜第3データ格納領域20
14に設定されたインデックス情報即ち第0インデックス〜第3インデックスに基づいて、データの書き込み及び読み出しの先頭位置の決定とデータの書き込み及び読み出しを行うこととを実現できるので、リングバッファとしての第0レジスタ20
1において、個々のデータ格納領域即ち第0データ格納領域20
11〜第3データ格納領域20
14に格納されたデータを、処理が行われるたびに他のデータ格納領域即ち第0データ格納領域20
11〜第3データ格納領域20
14に書き替えてデータの並び順とデータ格納領域即ち第0データ格納領域20
11〜第3データ格納領域20
14を管理する番号の順序を一致させること(例えば、データ格納領域20
11,20
12,20
13,20
14の昇順に入力データX0,X1,X2,X3,X4・・・を並べ直すこと)を行わなくても、データの並び順にデータを読み出してベクトル演算にて演算処理を行うことを、簡易かつ確実に実現できる。
【0065】
この実施の形態においては、演算器3におけるFIRフィルタを用いたフィルタ処理において、フィルタ次数が高くなった場合であっても、処理負荷や処理時間が過大になることを抑止することができる。
【0066】
この実施の形態においては、音声信号のフィルタ処理において、フィルタ次数が高くなった場合であっても、処理負荷や処理時間が過大になることを抑止することができる。
【0067】
なお、上記実施の形態においては、音声信号を格納する第0レジスタ20
1をリングバッファとして構成したが、これに限定されず、フィルタ計数を格納する第1レジスタ202や、積和演算の結果を格納する第Mレジスタ20
Nをリングバッファとして構成してもよい。また、第0レジスタ20
1、第1レジスタ20
2、第Mレジスタ20
Nのうちの2つ乃至3つをリングバッファとして構成してもよい。
【0068】
上記実施の形態においては、リングバッファとして構成した第0レジスタ20
1への書き込み位置や読み出し位置を、データ格納領域20
11,20
12,20
13,20
14に付与したインデックスを基準に任意に特定できる構成としたが、これに限定されず、データ格納領域20
11,20
12,20
13,20
14の読み出し位置や書き込み位置を任意に特定できる構成、例えばデータ格納領域20
11,20
12,20
13,20
14のアドレス情報によって任意に特定するような構成など、であれば、どのようなものであってもよい。
【0069】
上記実施の形態においては、ベクトル演算処理装置1は、音声信号を処理対象として扱うものとしたが、これに限定されず、音声信号以外のどのようなディジタル信号、例えば画像信号等を処理対象とするものであってもよい。
【0070】
上記実施の形態においては、ベクトル演算処理装置1は、FIRフィルタとして機能するものとしたが、これに限定されず、FIRフィルタ以外のいかなるフィルタ、例えばIIRフィルタによってフィルタ処理を行うものであってもよい。
【0071】
上記実施の形態においては、ベクトル演算処理装置1は、遊技機(図示ぜず)に用いられるものとしたが、遊技機以外のいかなる用途に用いられるものであってもよい。
【0072】
上記実施の形態は本発明の例示であり、本発明が上記実施の形態のみに限定されることを意味するものではないことは、いうまでもない。