(57)【要約】【課題】フィルタ係数を格納するメモリへアクセスする際に生じる電力消費量を低減する。【解決手段】複数のフィルタ係数を複数ビット毎に分割データとして分割記憶する部分メモリに分割され、入力されるアドレスに対応するフィルタ係数の各分割データを各部分メモリからそれぞれ出力する係数格納用メモリ２と、チップイネーブル（ＣＥ）信号を各部分メモリに伝達するか遮断するかを部分メモリ毎に指定する活性化／非活性化制御情報を付加したアドレス信号を係数格納用メモリに出力する制御部１と、活性化／非活性化制御情報に基づいて各部分メモリに対してＣＥ信号を伝達／遮断するＣＥ信号遮断部３と、複数の部分メモリの少なくとも一部に設けられ、活性化／非活性化制御情報に基づき、部分メモリの出力と全ビットゼロ値との何れかを選択出力する出力選択部４と、を備える。【選択図】図２
2010220096.tif 000002
【特許請求の範囲】
【請求項１】
複数の入力データと所定ビット幅の複数のフィルタ係数との乗算を行う乗算器を備え、前記乗算器から出力される各乗算結果を積算するデジタル信号処理装置において、
前記複数のフィルタ係数を複数ビット毎に分割データとして分割記憶する部分メモリに記憶し、入力されるアドレスに対応するフィルタ係数の各分割データを各部分メモリからそれぞれ出力する係数格納用メモリと、
前記フィルタ係数を構成する各分割データが有効ビットを含むか否かに対応してチップイネーブル（ＣＥ）信号を前記各部分メモリに伝達するか遮断するかを前記部分メモリ毎に指定する活性化／非活性化制御情報を前記フィルタ係数毎に付加したアドレス信号を前記係数格納用メモリに出力する制御部と、
前記活性化／非活性化制御情報に基づいて前記各部分メモリに対してＣＥ信号を伝達／遮断するＣＥ信号遮断部と、
前記複数の部分メモリの少なくとも一部に設けられ、前記活性化／非活性化制御情報に基づき、前記部分メモリの出力と全ビットゼロ値との何れかを選択出力する出力選択部と、
を備え、
前記出力選択部の出力を用いて前記乗算器に入力する複数のフィルタ係数を形成することを特徴とするデジタル信号処理装置。
【請求項２】
活性化／非活性化制御情報に基づいて電源電圧を制御する電源電圧制御部をさらに備えることを特徴とする請求項１に記載のデジタル信号処理装置。
【請求項３】
前記係数格納用メモリは、ビットラインに沿って複数の部分メモリに分割されている、ことを特徴とする請求項１または２に記載のデジタル信号処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタル信号処理装置に関する。
【背景技術】
【０００２】
音声データや画像データなどに対して高速なフィルタ演算処理を実行するためのプロセッサとして、デジタル信号処理装置（デジタルシグナルプロセッサ；ＤＳＰ）がある。ＤＳＰは、一般的に、演算対象のデータを記憶するメモリ（データ格納用メモリ）とは別にフィルタ係数を記憶するメモリ（係数格納用メモリ）を有する。ＤＳＰは、データ格納用メモリから逐次読み出した入力データに、係数格納用メモリから逐次読み出したフィルタ係数を乗じ、乗算結果を逐次アキュムレータに蓄積することにより、積和演算を行う。
【０００３】
ＤＳＰの演算精度はデータや演算器のビット幅によって決まるので、通常は、３２ビットなどの十分なビット幅が持たされる。ところが、一般的なフィルタ係数は、例えばシンク（ｓｉｎｃ）関数で表すことができ、その係数データ全てが３２ビット幅を必要とすることはない。つまり、係数データの有効ビット数が小さい場合であっても、無効ビットが格納されているメモリセルにも給電して常に３２ビット分のデータを係数格納用メモリから読み出すようになっていたので、無効ビットに給電する分、電力削減の余地があった。
【０００４】
ＤＳＰを低消費電力化する技術としては、例えば特許文献１のように、アドレスカウンタ及びメモリを夫々２個設け、桁あふれが発生すると他方のアドレスカウンタの係数値を所定値加減算してデータの書き込みを可能とし、書き込みに要する消費電力を低減する技術がある。また、特許文献２のように、フィルタ処理の実行条件に見合った演算精度で演算を実行することにより、無駄な電力消費を回避する技術がある。また、特許文献３のように、ＤＳＰの積和乗算回路にシフタを追加することにより、演算回数を減らす技術がある。しかしながら、上記３つの何れの技術も、前記した係数データ読み出しの際の無駄な電力消費を回避するものではない。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平３−２６２２０６号公報
【特許文献２】特開２００８−８５９２３号公報
【特許文献３】特開２００４−３６２４３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、フィルタ係数を格納するメモリへアクセスする際に生じる電力消費量を低減したデジタル信号処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本願発明の一態様によれば、複数の入力データと所定ビット幅の複数のフィルタ係数との乗算を行う乗算器を備え、前記乗算器から出力される各乗算結果を積算するデジタル信号処理装置において、前記複数のフィルタ係数を複数ビット毎に分割データとして分割記憶する部分メモリに分割され、入力されるアドレスに対応するフィルタ係数の各分割データを各部分メモリからそれぞれ出力する係数格納用メモリと、前記フィルタ係数を構成する各分割データが有効ビットを含むか否かに対応してチップイネーブル（ＣＥ）信号を前記各部分メモリに伝達するか遮断するかを前記部分メモリ毎に指定する活性化／非活性化制御情報を前記フィルタ係数毎に付加したアドレス信号を前記係数格納用メモリに出力する制御部と、前記活性化／非活性化制御情報に基づいて前記各部分メモリに対してＣＥ信号を伝達／遮断するＣＥ信号遮断部と、前記複数の部分メモリの少なくとも一部に設けられ、前記活性化／非活性化制御情報に基づき、前記部分メモリの出力と全ビットゼロ値との何れかを選択出力する出力選択部と、を備え、前記出力選択部の出力を用いて前記乗算器に入力する複数のフィルタ係数を形成することを特徴とするデジタル信号処理装置が提供される。
【発明の効果】
【０００８】
本発明によれば、フィルタ係数を格納するメモリへアクセスする際に生じる電力消費量を低減したデジタル信号処理装置を提供することができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、フィルタ係数の一例を説明する図である。
【図２】図２は、本発明の第１の実施の形態のＤＳＰの構成を説明する図である。
【図３】図３は、係数格納用メモリの構成を説明する図である。
【図４】図４は、アドレス信号を説明する図である。
【図５】図５は、本発明の第１の実施の形態のＤＳＰの動作を説明するフローチャートである。
【図６】図６は、本発明の第２の実施の形態のＤＳＰの構成を説明する図である。
【発明を実施するための形態】
【００１０】
以下に添付図面を参照して、本発明の実施の形態にかかるデジタル信号処理装置を詳細に説明する。なお、これらの実施の形態により本発明が限定されるものではない。
【００１１】
（第１の実施の形態）
まず、ＤＳＰが使用するフィルタ係数について説明する。図１に、ロールオフ係数＝０．１、タップ数＝３１、タップ重み精度＝１０ｂｉｔのロールオフフィルタを示す。図示するように、中央のタップでのフィルタ係数が最大値の５１１となっている。すなわち、１６ビット幅のメモリであれば、図１に示すフィルタ係数を符号込みで格納することが可能である。ここで、３１点の値のうち、図中の最大値の３点以外の値は１２８（＝２７）以下であるので、符号込みで８ビット以下で表現可能である。したがって、１６ビット幅のメモリを用意すると、上記３点以外の値を格納するアドレスに関しては、少なくとも上位８ビットは無効ビットとなってしまう。フィルタ係数の読み出しを実行する際、無効ビット分まで給電して読み出すことになるので、無効ビットに給電する分の消費電力が無駄となってしまう。
【００１２】
本第１の実施の形態は、フィルタ係数を格納する係数格納用メモリを、各フィルタ係数を複数ビット毎の分割データとして分割記憶する複数の部分メモリに分割し、読み出し対象のフィルタ係数のうち無効ビットのみを分割記憶している部分メモリは活性化せず、有効ビットを分割記憶している部分メモリのみ活性化して給電することによって、無効ビットに給電する分の消費電力を低減したことが主たる特徴となっている。なお、以下の説明においては、係数格納用メモリのビット幅を３２ビットとし、分割数は２として説明する。
【００１３】
図２は、第１の実施の形態のＤＳＰの構成を説明するブロック図である。図示するように、ＤＳＰ１００は、フィルタ係数を格納する係数格納用メモリ２と、チップイネーブル（ＣＥ）信号遮断部としてのＯＲ回路３と、アドレス信号線とチップイネーブル信号線（ＣＥ線）とを制御して係数格納用メモリ２にフィルタ係数を出力させる制御部１と、を備えている。
【００１４】
係数格納用メモリ２は第１部分メモリ２１および第２部分メモリ２２に分割されており、第１部分メモリ２１は、３２ビットのフィルタ係数のうちの上位桁１６ビットを分割記憶し、第２部分メモリ２２は下位桁１６ビットを分割記憶している。図３は、係数格納用メモリ２の構成を説明する図である。第１部分メモリ２１、第２部分メモリ２２は夫々マトリクス状に配置された夫々１ビットの値を記憶する複数のメモリセル（図示せず）を有しており、各メモリセルにアクセスするための信号線として、アドレス選択線としてのワードラインと、データの読み出し線としてのビットラインとを有している。具体的には、図示するように、第１部分メモリ２１は、３２本のワードライン（ＷＬａ＿０〜ＷＬａ＿３１）が紙面横方向に配設され、１６本のビットライン（ＢＬａ＿０〜ＢＬａ＿１５）が紙面縦方向に配設されている。同様に、第２部分メモリ２２は、ワードライン（ＷＬｂ＿０〜ＷＬｂ＿３１）が紙面横方向に配設され、ビットライン（ＢＬｂ＿０〜ＢＬｂ＿１５）が紙面縦方向に配設されている。
【００１５】
第１部分メモリ２１および第２部分メモリ２２がともに活性化されている状態においては、一つのアドレス信号により夫々の部分メモリ２１、２２から夫々一本のワードラインが選択され、選択された夫々のワードラインに給電される。第１部分メモリ２１は、給電されているワードラインとＢＬａ＿０〜ＢＬａ＿１５との交点に位置する夫々のメモリセルから夫々１ビットの値を読み出し、読み出した合計１６ビットの値をフィルタ係数の上位桁１６ビットとして出力する。第２部分メモリ２２は、選択されたワードラインとＢＬｂ＿０〜ＢＬｂ＿１５との交点に位置する夫々のメモリセルから夫々１ビットの値を読み出し、読み出した合計１６ビットの値をフィルタ係数の下位桁１６ビットとして出力する。第１部分メモリ２１が活性化されず、第２部分メモリ２２が活性化されている状態においては、第２部分メモリ２２のワードラインにのみ給電され、第２部分メモリ２２は読み出し動作を行って１６ビットの値をフィルタ係数の下位桁として出力する。
【００１６】
ここで、アドレス信号について説明する。図４は、本発明の第１の実施の形態のアドレス信号を説明する図である。図示するように、アドレス信号は、アドレスを格納するアドレス領域と、フィルタ係数を構成する分割データに有効ビットが含まれているか否かに対応して部分メモリ２１、２２を活性化するためのＣＥ信号を伝達するか遮断するかを部分メモリ毎に指定する情報である活性化／非活性化制御情報を格納するための活性化／非活性化制御情報領域と、を備えている。ここでは、第２部分メモリ２２へは常にＣＥ信号を伝達するとし、第１部分メモリ２１に対するＣＥ信号を伝達するか遮断するかを指定する、とする。また、最上位ビット（Most  Significant  Bit；ＭＳＢ)が活性化／非活性化制御情報領域であるとし、第１部分メモリ２１を活性化するときには「０」が、第１部分メモリ２１を活性化しないときには「１」が格納される、とする。つまり、制御部１は、係数格納用メモリ２から、上位桁まで有効ビットを含む場合、活性化／非活性化制御情報を０としたアドレス信号を発行して上位桁、下位桁を合わせた３２ビット幅の係数データを読み出し、上位桁には有効ビットが含まれていない場合、活性化／非活性化制御情報を１としたアドレス信号を発行して下位桁１６ビット幅の係数データを読み出す。
【００１７】
係数格納用メモリ２を活性化するためのＣＥ線は、一端が制御部１に接続されている。ＣＥ線の他端は２つに分岐し、分岐したうちの一つの端子は第２部分メモリ２２に入力され、他の端子はＯＲ回路３に入力されている。アドレス信号線は、一端が制御部１に接続され、他端は係数格納用メモリ２に接続されている。制御部１から出力されたアドレス信号は、第１部分メモリ２１および第２部分メモリ２２に入力される。ＣＥ線は、ここではローイネーブルであるとする。
【００１８】
活性化／非活性化制御情報であるアドレス信号のＭＳＢの値、すなわち活性化／非活性化制御情報は、アドレス信号線から分岐した信号線によりＯＲ回路３および後述する選択器４に入力される。ＯＲ回路３は、入力された制御部１が発行したＣＥ信号と活性化／非活性化制御情報とに基づいてＯＲ演算を実行し、実行結果をＣＥ信号として第２部分メモリ２２に入力する。
【００１９】
ＤＳＰ１００は、出力選択部としての選択器４と、乗算器５と、データ格納用メモリ６と、ＡＬＵ（Arithmetic  Logic  Unit）７と、アキュムレータ８と、を備えている。選択器４は、アドレス信号線から分岐して入力される活性化／非活性化制御情報に基づいて、第１部分メモリ２１から出力される１６ビットの値と１６ビットの代入値とのうちのいずれか一つを選択する。代入値は１６ビットのゼロ値である。選択器４は、活性化／非活性化制御情報が「１」、すなわち第１部分メモリ２１が活性化されていない場合、代入値を選択し、活性化／非活性化制御情報が「０」の場合、第１部分メモリ２１からの出力を選択する。選択器４により選択された１６ビットの値は第２部分メモリ２２から出力された値と結合され、選択器４の出力値を上位桁１６ビットとし、第２部分メモリ２２からの出力値を下位桁１６ビットとした合計３２ビットのフィルタ係数が形成される。形成されたフィルタ係数は、乗算器５に入力される。
【００２０】
データ格納用メモリ６は、フィルタ処理対象のデータ（３２ビットの入力データ）が格納されており、データ格納用メモリ６から読み出された入力データは乗算器５に入力される。乗算器５は、フィルタ係数と入力データとを乗算する。乗算器５からの出力結果はＡＬＵ７に入力され、ＡＬＵ７は、入力された値とアキュムレータ８に蓄積された値とを合算して演算結果をアキュムレータ８に格納する。アキュムレータ８は、全てのタップの乗算値の積算値を外部にフィルタ演算処理結果として出力する。
【００２１】
次に、係数格納用メモリ２の活性化／非活性化制御を行って乗算器５にフィルタ係数を入力する動作を説明する。図５は、該動作を説明するフローチャートである。
【００２２】
図示するように、まず、制御部１は、ＣＥ線を０（ロー）とし、アドレス信号を送信する（ステップＳ１）。すると、制御部１と第２部分メモリ２２とは直接接続されているので、第２部分メモリ２２が活性化される（ステップＳ２）。
【００２３】
制御部１が送信したアドレス信号のＭＳＢの値が「０」であるか「１」であるかにより異なる動作が実行される。すなわち、制御部１が送信したアドレス信号のＭＳＢの値が「０」である場合（ステップＳ３、Ｙｅｓ）、ＯＲ回路３は、制御部１のＣＥ線の値としての「０」およびＭＳＢ値としての「０」が入力され、ＯＲ演算結果の「０」を第１部分メモリ２１にＣＥ信号として入力し、その結果として第１部分メモリ２１が活性化される（ステップＳ４）。選択器４には、代入値と第１部分メモリ２１の出力値とのうち、選択信号として入力されるＭＳＢ値が「０」であることに基づき、第１部分メモリ２１からの出力値を選択する（ステップＳ５）。すると、乗算器５に、第１部分メモリ２１からの出力値を上位桁とし、第２部分メモリ２２からの出力値を下位桁とする３２ビットのフィルタ係数が形成され、前記形成されたフィルタ係数が乗算器５に入力され（ステップＳ６）、フィルタ係数を係数格納用メモリ２から読み出す動作を終了する。
【００２４】
制御部１が送信したアドレス信号のＭＳＢの値が「１」である場合（ステップＳ３、Ｎｏ）、ＯＲ回路３は、制御部１のＣＥ線の値としての「０」およびＭＳＢ値としての「１」が入力され、ＯＲ演算結果の「１」を第１部分メモリ２１にＣＥ信号として入力する。第１部分メモリ２１は活性化されない。選択器４は、選択信号として入力されるＭＳＢ値が「１」であることに基づき、１６ビットのゼロ値の代入値を選択する（ステップＳ７）。すると、乗算器５に、１６ビットのゼロ値の代入値を上位桁とし、第２部分メモリ２２からの出力値を下位桁とする３２ビットのフィルタ係数が入力され（ステップＳ８）、フィルタ係数を係数格納用メモリ２から読み出す動作を終了する。
【００２５】
このように、ＤＳＰ１００は、係数格納用メモリ２をビットラインに沿って二つに分割し、上位桁に有効ビットが含まれないフィルタ係数を読み出す際、上位桁を格納する第１部分メモリ２１を活性化せず、ゼロで固定された代入値を出力する。代入値を出力する論理回路や代入値と第１部分メモリ２１からの出力値とのうちの一つを選択する選択器４の消費電力は、一般的に、メモリアクセス時の消費電力に比べて非常に小さい。つまり、ＤＳＰ１００は、上位桁に有効ビットが含まれないフィルタ係数を読み出す際の消費電力が削減され、メモリアクセスにかかる消費電力が低減される。
【００２６】
なお、以上の説明においては、係数格納用メモリ２の分割数を２として説明したが、分割数は任意であり、例えば４分割するようにしてもよい。係数格納用メモリ２を４分割する場合、活性化／非活性化制御情報を２ビットで表現するようにし、分割された夫々の部分メモリへのＣＥ信号を制御するようにするとよい。
【００２７】
また、出力選択部としての選択器４は、第１部分メモリ２１にのみ設けるようにしたが、第２部分メモリ２にＣＥ信号を伝達するか遮断するかを指定する情報を活性化／非活性化制御情報に持たせ、該情報に基づいて第２部分メモリ２２からの出力と代入値とを選択するようにしてもよい。
【００２８】
また、フィルタ係数の一例としてロールオフフィルタをあげたが、第１の実施の形態はロールオフフィルタ以外の一般的なデジタルフィルタに適用することができる。例えば、ＦＩＲフィルタに適用できる。
【００２９】
（第２の実施の形態）
一般的に、無効ビットが多い係数データを入力データに乗算する場合、無効ビットが少ない場合に比べて、演算に係る時間が少なくて済む。演算処理量に基づいて低消費電力制御を行う技術として、演算処理量が少ないときに動作周波数を下げ、動作速度に余裕ができた分だけ電源電圧を下げることにより、消費電力を削減する手法であるＤＶＦＳ(Dynamic  Voltage  Frequency  Scaling)技術が知られている。しかしながら、この技術による電源電圧を変更するタイミングは、通常、ソフトウェアが判断するため、例えば１クロック〜数クロックの単位で消費電力の見積もりを行って、見積もり結果に応じて電源電圧を変化させるようなきめ細かい制御ができないという問題があった。第２の実施の形態は、活性化／非活性化制御情報を利用することによりきめ細かい電源電圧制御を実現する。
【００３０】
図６は、第２の実施の形態のＤＳＰの構成を説明するブロック図である。第１の実施の形態と同様の構成要素には同一の符号を付し、詳細な説明を省略する。
【００３１】
図示するように、ＤＳＰ２００は、第１の実施の形態の構成に加え、上位桁に有効ビットが含まれないフィルタ係数を用いて演算を行う場合にＤＳＰ２００の電源電圧を通常動作時の電圧よりも低くする制御を実行する電源電圧制御部９が追加された構成となっている。具体的には、電源電圧制御部９は、アドレス信号線から分岐した活性化／非活性化制御情報を伝達する信号線が入力されており、活性化／非活性化制御情報が「１」である場合、すなわち第１部分メモリ２１を活性化しない場合、ＤＳＰ２００の動作電圧を通常動作時の電源電圧よりも低い電源電圧とする。活性化／非活性化制御情報が「０」である場合、通常動作時の電源電圧を供給する。
【００３２】
なお、メモリ２、６は、論理回路（ＤＳＰ２００のメモリ２、６以外の構成要素）に比べて、電源電圧低下時の速度低下量が一般的に大きいので、メモリ２、６の電源回路と、その他の論理回路の電源回路は分離しておくのが望ましい。つまり、メモリ２、６と論理回路の間に電圧レベルシフタを追加し、メモリ２、６の電源電圧は変えずに(もしくは変化量を小さくし)、論理回路の電源電圧を、誤動作しない範囲で大きく下げるようにするとよい。
【００３３】
電源電圧を上げたり下げたりすると、電源電圧の変化に伴って回路の静電容量に応じた充放電電流が流れるため、頻繁に電源電圧を変化させることはかえって消費電力の増加を招くことになる。しかしながら、フィルタ係数は、一般的に、アドレスの増加とともに徐々に値が減少(または増加)する性質を持つため、上位桁側のフィルタ係数を格納する部分を活性化／非活性化するとともに電源電圧を変化させる本第２の実施の形態では、頻繁に、例えば一つのフィルタ係数を読み出す毎に電源電圧を変化させるような事態にはならない。つまり、本第２の実施の形態によって低消費電力化を図ることができる。
【００３４】
このように、第２の実施の形態では、活性化／非活性化制御情報に基づいて電源電圧を制御するように構成したので、制御部１が出力するアドレス信号毎に電源電圧を制御するため、ソフトウェアで処理量を見積もって電源電圧を制御する方式に比べてきめ細かく電源電圧を制御でき、消費電力削減量を大きくすることができる。
【００３５】
なお、上記説明においては、係数格納用メモリ２の分割数が２の場合について説明したが、分割数は３以上であってもかまわない。分割数を３以上にする場合、電源電圧制御部９は、活性化する部分メモリの数に応じて電源電圧を変化させるようにするとよい。
【符号の説明】
【００３６】
１  制御部、２  係数格納用メモリ、３  ＯＲ回路、４  選択器、５  乗算器、６  データ格納用メモリ、７  ＡＬＵ、８  アキュムレータ、９  電源電圧制御部、２１  第１部分メモリ、２２  第２部分メモリ、１００、２００  ＤＳＰ。
【図１】
2010220096.tif 000003
【図２】
2010220096.tif 000004
【図３】
2010220096.tif 000005
【図４】
2010220096.tif 000006
【図５】
2010220096.tif 000007
【図６】
2010220096.tif 000008