説明

デジタル信号処理装置

【課題】フィルタ係数を格納するメモリへアクセスする際に生じる電力消費量を低減する。
【解決手段】複数のフィルタ係数を複数ビット毎に分割データとして分割記憶する部分メモリに分割され、入力されるアドレスに対応するフィルタ係数の各分割データを各部分メモリからそれぞれ出力する係数格納用メモリ2と、チップイネーブル(CE)信号を各部分メモリに伝達するか遮断するかを部分メモリ毎に指定する活性化/非活性化制御情報を付加したアドレス信号を係数格納用メモリに出力する制御部1と、活性化/非活性化制御情報に基づいて各部分メモリに対してCE信号を伝達/遮断するCE信号遮断部3と、複数の部分メモリの少なくとも一部に設けられ、活性化/非活性化制御情報に基づき、部分メモリの出力と全ビットゼロ値との何れかを選択出力する出力選択部4と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、デジタル信号処理装置に関する。
【背景技術】
【0002】
音声データや画像データなどに対して高速なフィルタ演算処理を実行するためのプロセッサとして、デジタル信号処理装置(デジタルシグナルプロセッサ;DSP)がある。DSPは、一般的に、演算対象のデータを記憶するメモリ(データ格納用メモリ)とは別にフィルタ係数を記憶するメモリ(係数格納用メモリ)を有する。DSPは、データ格納用メモリから逐次読み出した入力データに、係数格納用メモリから逐次読み出したフィルタ係数を乗じ、乗算結果を逐次アキュムレータに蓄積することにより、積和演算を行う。
【0003】
DSPの演算精度はデータや演算器のビット幅によって決まるので、通常は、32ビットなどの十分なビット幅が持たされる。ところが、一般的なフィルタ係数は、例えばシンク(sinc)関数で表すことができ、その係数データ全てが32ビット幅を必要とすることはない。つまり、係数データの有効ビット数が小さい場合であっても、無効ビットが格納されているメモリセルにも給電して常に32ビット分のデータを係数格納用メモリから読み出すようになっていたので、無効ビットに給電する分、電力削減の余地があった。
【0004】
DSPを低消費電力化する技術としては、例えば特許文献1のように、アドレスカウンタ及びメモリを夫々2個設け、桁あふれが発生すると他方のアドレスカウンタの係数値を所定値加減算してデータの書き込みを可能とし、書き込みに要する消費電力を低減する技術がある。また、特許文献2のように、フィルタ処理の実行条件に見合った演算精度で演算を実行することにより、無駄な電力消費を回避する技術がある。また、特許文献3のように、DSPの積和乗算回路にシフタを追加することにより、演算回数を減らす技術がある。しかしながら、上記3つの何れの技術も、前記した係数データ読み出しの際の無駄な電力消費を回避するものではない。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平3−262206号公報
【特許文献2】特開2008−85923号公報
【特許文献3】特開2004−362438号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明は、フィルタ係数を格納するメモリへアクセスする際に生じる電力消費量を低減したデジタル信号処理装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
本願発明の一態様によれば、複数の入力データと所定ビット幅の複数のフィルタ係数との乗算を行う乗算器を備え、前記乗算器から出力される各乗算結果を積算するデジタル信号処理装置において、前記複数のフィルタ係数を複数ビット毎に分割データとして分割記憶する部分メモリに分割され、入力されるアドレスに対応するフィルタ係数の各分割データを各部分メモリからそれぞれ出力する係数格納用メモリと、前記フィルタ係数を構成する各分割データが有効ビットを含むか否かに対応してチップイネーブル(CE)信号を前記各部分メモリに伝達するか遮断するかを前記部分メモリ毎に指定する活性化/非活性化制御情報を前記フィルタ係数毎に付加したアドレス信号を前記係数格納用メモリに出力する制御部と、前記活性化/非活性化制御情報に基づいて前記各部分メモリに対してCE信号を伝達/遮断するCE信号遮断部と、前記複数の部分メモリの少なくとも一部に設けられ、前記活性化/非活性化制御情報に基づき、前記部分メモリの出力と全ビットゼロ値との何れかを選択出力する出力選択部と、を備え、前記出力選択部の出力を用いて前記乗算器に入力する複数のフィルタ係数を形成することを特徴とするデジタル信号処理装置が提供される。
【発明の効果】
【0008】
本発明によれば、フィルタ係数を格納するメモリへアクセスする際に生じる電力消費量を低減したデジタル信号処理装置を提供することができるという効果を奏する。
【図面の簡単な説明】
【0009】
【図1】図1は、フィルタ係数の一例を説明する図である。
【図2】図2は、本発明の第1の実施の形態のDSPの構成を説明する図である。
【図3】図3は、係数格納用メモリの構成を説明する図である。
【図4】図4は、アドレス信号を説明する図である。
【図5】図5は、本発明の第1の実施の形態のDSPの動作を説明するフローチャートである。
【図6】図6は、本発明の第2の実施の形態のDSPの構成を説明する図である。
【発明を実施するための形態】
【0010】
以下に添付図面を参照して、本発明の実施の形態にかかるデジタル信号処理装置を詳細に説明する。なお、これらの実施の形態により本発明が限定されるものではない。
【0011】
(第1の実施の形態)
まず、DSPが使用するフィルタ係数について説明する。図1に、ロールオフ係数=0.1、タップ数=31、タップ重み精度=10bitのロールオフフィルタを示す。図示するように、中央のタップでのフィルタ係数が最大値の511となっている。すなわち、16ビット幅のメモリであれば、図1に示すフィルタ係数を符号込みで格納することが可能である。ここで、31点の値のうち、図中の最大値の3点以外の値は128(=2)以下であるので、符号込みで8ビット以下で表現可能である。したがって、16ビット幅のメモリを用意すると、上記3点以外の値を格納するアドレスに関しては、少なくとも上位8ビットは無効ビットとなってしまう。フィルタ係数の読み出しを実行する際、無効ビット分まで給電して読み出すことになるので、無効ビットに給電する分の消費電力が無駄となってしまう。
【0012】
本第1の実施の形態は、フィルタ係数を格納する係数格納用メモリを、各フィルタ係数を複数ビット毎の分割データとして分割記憶する複数の部分メモリに分割し、読み出し対象のフィルタ係数のうち無効ビットのみを分割記憶している部分メモリは活性化せず、有効ビットを分割記憶している部分メモリのみ活性化して給電することによって、無効ビットに給電する分の消費電力を低減したことが主たる特徴となっている。なお、以下の説明においては、係数格納用メモリのビット幅を32ビットとし、分割数は2として説明する。
【0013】
図2は、第1の実施の形態のDSPの構成を説明するブロック図である。図示するように、DSP100は、フィルタ係数を格納する係数格納用メモリ2と、チップイネーブル(CE)信号遮断部としてのOR回路3と、アドレス信号線とチップイネーブル信号線(CE線)とを制御して係数格納用メモリ2にフィルタ係数を出力させる制御部1と、を備えている。
【0014】
係数格納用メモリ2は第1部分メモリ21および第2部分メモリ22に分割されており、第1部分メモリ21は、32ビットのフィルタ係数のうちの上位桁16ビットを分割記憶し、第2部分メモリ22は下位桁16ビットを分割記憶している。図3は、係数格納用メモリ2の構成を説明する図である。第1部分メモリ21、第2部分メモリ22は夫々マトリクス状に配置された夫々1ビットの値を記憶する複数のメモリセル(図示せず)を有しており、各メモリセルにアクセスするための信号線として、アドレス選択線としてのワードラインと、データの読み出し線としてのビットラインとを有している。具体的には、図示するように、第1部分メモリ21は、32本のワードライン(WLa_0〜WLa_31)が紙面横方向に配設され、16本のビットライン(BLa_0〜BLa_15)が紙面縦方向に配設されている。同様に、第2部分メモリ22は、ワードライン(WLb_0〜WLb_31)が紙面横方向に配設され、ビットライン(BLb_0〜BLb_15)が紙面縦方向に配設されている。
【0015】
第1部分メモリ21および第2部分メモリ22がともに活性化されている状態においては、一つのアドレス信号により夫々の部分メモリ21、22から夫々一本のワードラインが選択され、選択された夫々のワードラインに給電される。第1部分メモリ21は、給電されているワードラインとBLa_0〜BLa_15との交点に位置する夫々のメモリセルから夫々1ビットの値を読み出し、読み出した合計16ビットの値をフィルタ係数の上位桁16ビットとして出力する。第2部分メモリ22は、選択されたワードラインとBLb_0〜BLb_15との交点に位置する夫々のメモリセルから夫々1ビットの値を読み出し、読み出した合計16ビットの値をフィルタ係数の下位桁16ビットとして出力する。第1部分メモリ21が活性化されず、第2部分メモリ22が活性化されている状態においては、第2部分メモリ22のワードラインにのみ給電され、第2部分メモリ22は読み出し動作を行って16ビットの値をフィルタ係数の下位桁として出力する。
【0016】
ここで、アドレス信号について説明する。図4は、本発明の第1の実施の形態のアドレス信号を説明する図である。図示するように、アドレス信号は、アドレスを格納するアドレス領域と、フィルタ係数を構成する分割データに有効ビットが含まれているか否かに対応して部分メモリ21、22を活性化するためのCE信号を伝達するか遮断するかを部分メモリ毎に指定する情報である活性化/非活性化制御情報を格納するための活性化/非活性化制御情報領域と、を備えている。ここでは、第2部分メモリ22へは常にCE信号を伝達するとし、第1部分メモリ21に対するCE信号を伝達するか遮断するかを指定する、とする。また、最上位ビット(Most Significant Bit;MSB)が活性化/非活性化制御情報領域であるとし、第1部分メモリ21を活性化するときには「0」が、第1部分メモリ21を活性化しないときには「1」が格納される、とする。つまり、制御部1は、係数格納用メモリ2から、上位桁まで有効ビットを含む場合、活性化/非活性化制御情報を0としたアドレス信号を発行して上位桁、下位桁を合わせた32ビット幅の係数データを読み出し、上位桁には有効ビットが含まれていない場合、活性化/非活性化制御情報を1としたアドレス信号を発行して下位桁16ビット幅の係数データを読み出す。
【0017】
係数格納用メモリ2を活性化するためのCE線は、一端が制御部1に接続されている。CE線の他端は2つに分岐し、分岐したうちの一つの端子は第2部分メモリ22に入力され、他の端子はOR回路3に入力されている。アドレス信号線は、一端が制御部1に接続され、他端は係数格納用メモリ2に接続されている。制御部1から出力されたアドレス信号は、第1部分メモリ21および第2部分メモリ22に入力される。CE線は、ここではローイネーブルであるとする。
【0018】
活性化/非活性化制御情報であるアドレス信号のMSBの値、すなわち活性化/非活性化制御情報は、アドレス信号線から分岐した信号線によりOR回路3および後述する選択器4に入力される。OR回路3は、入力された制御部1が発行したCE信号と活性化/非活性化制御情報とに基づいてOR演算を実行し、実行結果をCE信号として第2部分メモリ22に入力する。
【0019】
DSP100は、出力選択部としての選択器4と、乗算器5と、データ格納用メモリ6と、ALU(Arithmetic Logic Unit)7と、アキュムレータ8と、を備えている。選択器4は、アドレス信号線から分岐して入力される活性化/非活性化制御情報に基づいて、第1部分メモリ21から出力される16ビットの値と16ビットの代入値とのうちのいずれか一つを選択する。代入値は16ビットのゼロ値である。選択器4は、活性化/非活性化制御情報が「1」、すなわち第1部分メモリ21が活性化されていない場合、代入値を選択し、活性化/非活性化制御情報が「0」の場合、第1部分メモリ21からの出力を選択する。選択器4により選択された16ビットの値は第2部分メモリ22から出力された値と結合され、選択器4の出力値を上位桁16ビットとし、第2部分メモリ22からの出力値を下位桁16ビットとした合計32ビットのフィルタ係数が形成される。形成されたフィルタ係数は、乗算器5に入力される。
【0020】
データ格納用メモリ6は、フィルタ処理対象のデータ(32ビットの入力データ)が格納されており、データ格納用メモリ6から読み出された入力データは乗算器5に入力される。乗算器5は、フィルタ係数と入力データとを乗算する。乗算器5からの出力結果はALU7に入力され、ALU7は、入力された値とアキュムレータ8に蓄積された値とを合算して演算結果をアキュムレータ8に格納する。アキュムレータ8は、全てのタップの乗算値の積算値を外部にフィルタ演算処理結果として出力する。
【0021】
次に、係数格納用メモリ2の活性化/非活性化制御を行って乗算器5にフィルタ係数を入力する動作を説明する。図5は、該動作を説明するフローチャートである。
【0022】
図示するように、まず、制御部1は、CE線を0(ロー)とし、アドレス信号を送信する(ステップS1)。すると、制御部1と第2部分メモリ22とは直接接続されているので、第2部分メモリ22が活性化される(ステップS2)。
【0023】
制御部1が送信したアドレス信号のMSBの値が「0」であるか「1」であるかにより異なる動作が実行される。すなわち、制御部1が送信したアドレス信号のMSBの値が「0」である場合(ステップS3、Yes)、OR回路3は、制御部1のCE線の値としての「0」およびMSB値としての「0」が入力され、OR演算結果の「0」を第1部分メモリ21にCE信号として入力し、その結果として第1部分メモリ21が活性化される(ステップS4)。選択器4には、代入値と第1部分メモリ21の出力値とのうち、選択信号として入力されるMSB値が「0」であることに基づき、第1部分メモリ21からの出力値を選択する(ステップS5)。すると、乗算器5に、第1部分メモリ21からの出力値を上位桁とし、第2部分メモリ22からの出力値を下位桁とする32ビットのフィルタ係数が形成され、前記形成されたフィルタ係数が乗算器5に入力され(ステップS6)、フィルタ係数を係数格納用メモリ2から読み出す動作を終了する。
【0024】
制御部1が送信したアドレス信号のMSBの値が「1」である場合(ステップS3、No)、OR回路3は、制御部1のCE線の値としての「0」およびMSB値としての「1」が入力され、OR演算結果の「1」を第1部分メモリ21にCE信号として入力する。第1部分メモリ21は活性化されない。選択器4は、選択信号として入力されるMSB値が「1」であることに基づき、16ビットのゼロ値の代入値を選択する(ステップS7)。すると、乗算器5に、16ビットのゼロ値の代入値を上位桁とし、第2部分メモリ22からの出力値を下位桁とする32ビットのフィルタ係数が入力され(ステップS8)、フィルタ係数を係数格納用メモリ2から読み出す動作を終了する。
【0025】
このように、DSP100は、係数格納用メモリ2をビットラインに沿って二つに分割し、上位桁に有効ビットが含まれないフィルタ係数を読み出す際、上位桁を格納する第1部分メモリ21を活性化せず、ゼロで固定された代入値を出力する。代入値を出力する論理回路や代入値と第1部分メモリ21からの出力値とのうちの一つを選択する選択器4の消費電力は、一般的に、メモリアクセス時の消費電力に比べて非常に小さい。つまり、DSP100は、上位桁に有効ビットが含まれないフィルタ係数を読み出す際の消費電力が削減され、メモリアクセスにかかる消費電力が低減される。
【0026】
なお、以上の説明においては、係数格納用メモリ2の分割数を2として説明したが、分割数は任意であり、例えば4分割するようにしてもよい。係数格納用メモリ2を4分割する場合、活性化/非活性化制御情報を2ビットで表現するようにし、分割された夫々の部分メモリへのCE信号を制御するようにするとよい。
【0027】
また、出力選択部としての選択器4は、第1部分メモリ21にのみ設けるようにしたが、第2部分メモリ2にCE信号を伝達するか遮断するかを指定する情報を活性化/非活性化制御情報に持たせ、該情報に基づいて第2部分メモリ22からの出力と代入値とを選択するようにしてもよい。
【0028】
また、フィルタ係数の一例としてロールオフフィルタをあげたが、第1の実施の形態はロールオフフィルタ以外の一般的なデジタルフィルタに適用することができる。例えば、FIRフィルタに適用できる。
【0029】
(第2の実施の形態)
一般的に、無効ビットが多い係数データを入力データに乗算する場合、無効ビットが少ない場合に比べて、演算に係る時間が少なくて済む。演算処理量に基づいて低消費電力制御を行う技術として、演算処理量が少ないときに動作周波数を下げ、動作速度に余裕ができた分だけ電源電圧を下げることにより、消費電力を削減する手法であるDVFS(Dynamic Voltage Frequency Scaling)技術が知られている。しかしながら、この技術による電源電圧を変更するタイミングは、通常、ソフトウェアが判断するため、例えば1クロック〜数クロックの単位で消費電力の見積もりを行って、見積もり結果に応じて電源電圧を変化させるようなきめ細かい制御ができないという問題があった。第2の実施の形態は、活性化/非活性化制御情報を利用することによりきめ細かい電源電圧制御を実現する。
【0030】
図6は、第2の実施の形態のDSPの構成を説明するブロック図である。第1の実施の形態と同様の構成要素には同一の符号を付し、詳細な説明を省略する。
【0031】
図示するように、DSP200は、第1の実施の形態の構成に加え、上位桁に有効ビットが含まれないフィルタ係数を用いて演算を行う場合にDSP200の電源電圧を通常動作時の電圧よりも低くする制御を実行する電源電圧制御部9が追加された構成となっている。具体的には、電源電圧制御部9は、アドレス信号線から分岐した活性化/非活性化制御情報を伝達する信号線が入力されており、活性化/非活性化制御情報が「1」である場合、すなわち第1部分メモリ21を活性化しない場合、DSP200の動作電圧を通常動作時の電源電圧よりも低い電源電圧とする。活性化/非活性化制御情報が「0」である場合、通常動作時の電源電圧を供給する。
【0032】
なお、メモリ2、6は、論理回路(DSP200のメモリ2、6以外の構成要素)に比べて、電源電圧低下時の速度低下量が一般的に大きいので、メモリ2、6の電源回路と、その他の論理回路の電源回路は分離しておくのが望ましい。つまり、メモリ2、6と論理回路の間に電圧レベルシフタを追加し、メモリ2、6の電源電圧は変えずに(もしくは変化量を小さくし)、論理回路の電源電圧を、誤動作しない範囲で大きく下げるようにするとよい。
【0033】
電源電圧を上げたり下げたりすると、電源電圧の変化に伴って回路の静電容量に応じた充放電電流が流れるため、頻繁に電源電圧を変化させることはかえって消費電力の増加を招くことになる。しかしながら、フィルタ係数は、一般的に、アドレスの増加とともに徐々に値が減少(または増加)する性質を持つため、上位桁側のフィルタ係数を格納する部分を活性化/非活性化するとともに電源電圧を変化させる本第2の実施の形態では、頻繁に、例えば一つのフィルタ係数を読み出す毎に電源電圧を変化させるような事態にはならない。つまり、本第2の実施の形態によって低消費電力化を図ることができる。
【0034】
このように、第2の実施の形態では、活性化/非活性化制御情報に基づいて電源電圧を制御するように構成したので、制御部1が出力するアドレス信号毎に電源電圧を制御するため、ソフトウェアで処理量を見積もって電源電圧を制御する方式に比べてきめ細かく電源電圧を制御でき、消費電力削減量を大きくすることができる。
【0035】
なお、上記説明においては、係数格納用メモリ2の分割数が2の場合について説明したが、分割数は3以上であってもかまわない。分割数を3以上にする場合、電源電圧制御部9は、活性化する部分メモリの数に応じて電源電圧を変化させるようにするとよい。
【符号の説明】
【0036】
1 制御部、2 係数格納用メモリ、3 OR回路、4 選択器、5 乗算器、6 データ格納用メモリ、7 ALU、8 アキュムレータ、9 電源電圧制御部、21 第1部分メモリ、22 第2部分メモリ、100、200 DSP。

【特許請求の範囲】
【請求項1】
複数の入力データと所定ビット幅の複数のフィルタ係数との乗算を行う乗算器を備え、前記乗算器から出力される各乗算結果を積算するデジタル信号処理装置において、
前記複数のフィルタ係数を複数ビット毎に分割データとして分割記憶する部分メモリに記憶し、入力されるアドレスに対応するフィルタ係数の各分割データを各部分メモリからそれぞれ出力する係数格納用メモリと、
前記フィルタ係数を構成する各分割データが有効ビットを含むか否かに対応してチップイネーブル(CE)信号を前記各部分メモリに伝達するか遮断するかを前記部分メモリ毎に指定する活性化/非活性化制御情報を前記フィルタ係数毎に付加したアドレス信号を前記係数格納用メモリに出力する制御部と、
前記活性化/非活性化制御情報に基づいて前記各部分メモリに対してCE信号を伝達/遮断するCE信号遮断部と、
前記複数の部分メモリの少なくとも一部に設けられ、前記活性化/非活性化制御情報に基づき、前記部分メモリの出力と全ビットゼロ値との何れかを選択出力する出力選択部と、
を備え、
前記出力選択部の出力を用いて前記乗算器に入力する複数のフィルタ係数を形成することを特徴とするデジタル信号処理装置。
【請求項2】
活性化/非活性化制御情報に基づいて電源電圧を制御する電源電圧制御部をさらに備えることを特徴とする請求項1に記載のデジタル信号処理装置。
【請求項3】
前記係数格納用メモリは、ビットラインに沿って複数の部分メモリに分割されている、ことを特徴とする請求項1または2に記載のデジタル信号処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2010−220096(P2010−220096A)
【公開日】平成22年9月30日(2010.9.30)
【国際特許分類】
【出願番号】特願2009−66902(P2009−66902)
【出願日】平成21年3月18日(2009.3.18)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】