(57)【要約】【課題】  多くの種類の命令データを処理する場合でも、個々の命令データの処理の際のスイッチング電流が少なく、消費電力が低減されたデジタル信号処理装置を提供する。【解決手段】  バンク０および１は、各々特定種類の命令データを分担して処理する回路であり、各々のレジスタ１０１に記憶された命令データを処理して各部を制御するための制御信号を発生する。命令データ振り分け部３０は、プログラムメモリ１０から読み出された命令データの処理を行うバンクを判定し、そのバンクのレジスタ１０１に当該命令データを書き込み、命令データの書き込みを行わないバンクのレジスタ１０１へのクロック供給の停止制御を行う。【選択図】図１
2008123410.tif 000002
【特許請求の範囲】
【請求項１】
１または複数の命令からなる命令データを記憶するプログラムメモリと、
各々特定種類の命令データを分担して処理する複数の回路であり、各々レジスタを備え、各々のレジスタに記憶された命令データを処理して各部を制御するための制御信号を発生する複数のバンクと、
前記プログラムメモリから読み出された命令データの処理を行うバンクを判定し、そのバンクのレジスタにクロックを供給して当該命令データを書き込み、命令データの書き込みを行わないレジスタへのクロックの供給の停止制御を行う命令データ振り分け部と
を具備することを特徴とするデジタル信号処理装置。
【請求項２】
前記複数のバンクの前段には、各々の後段のバンクのレジスタにクロックを供給するか否かを切り換える複数のクロックゲーティング制御回路が配置され、
前記命令データ振り分け部は、前記プログラムメモリから読み出された命令データを処理するバンクのレジスタにクロックを供給するためのクロックゲーティング制御回路の制御を行い、前記プログラムメモリから今回読み出された命令データの処理を行うバンクが前回読み出された命令データの処理を行ったバンクから切り換わっているときには、前回読み出された命令データの処理を行ったバンクのレジスタに記憶された命令データを無効化する制御を行うとともに、前回読み出された命令データの処理を行ったバンクのレジスタに対するクロックの供給を停止するためのクロックゲーティング制御回路の制御を行うことを特徴とする請求項１に記載のデジタル信号処理装置。
【請求項３】
前記命令データは、その処理を行うバックを指定するバンク指定情報を含み、前記命令データ振り分け部は、前記プログラムメモリから読み出された命令データに含まれるバンク指定情報に基づき、当該命令データの処理を行うバンクを判定することを特徴とする請求項１または２に記載のデジタル信号処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、デジタル信号処理装置に係り、特に消費電力の低減されたデジタル信号処理装置に関する。
【背景技術】
【０００２】
周知の通り、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ；デジタル信号処理装置）は、所定時間長のサンプリング周期毎に、入力オーディオサンプル列に対して所定の係数列を畳み込むための積和演算等、各種の演算処理を繰り返し実行する機能を有している。現在、ＤＳＰは、携帯電話機等の小型携帯電子機器にも搭載されるようになってきており、このため、省電力化が求められるようになってきている。
【特許文献１】特開２００３−１２２６２８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ＤＳＰの消費電力を減らすためには、プログラムメモリから命令データを読み出して処理する回路がクロックに同期して動作する際のスイッチング電流を減らすのが有効である。しかし、ＤＳＰに複雑な処理を行わせる必要がある場合には、多くの種類の命令データを用意し、それらの命令データに応じた多彩な制御信号の発生制御を行う必要があり、そのために命令データの処理を行う回路が大規模化し、どうしても消費電力が大きくなってしまう。
【０００４】
この発明は、以上説明した事情に鑑みてなされたものであり、多くの種類の命令データを処理して多彩な制御信号を発生する場合においても、個々の命令データの処理の際に発生するスイッチング電流が少なく、消費電力が低減されたデジタル信号処理装置を提供することを目的としている。
【課題を解決するための手段】
【０００５】
この発明は、１または複数の命令からなる命令データを記憶するプログラムメモリと、各々特定種類の命令データを分担して処理する複数の回路であり、各々レジスタを備え、各々のレジスタに記憶された命令データを処理して各部を制御するための制御信号を発生する複数のバンクと、前記プログラムメモリから読み出された命令データの処理を行うバンクを判定し、そのバンクのレジスタにクロックを供給して当該命令データを書き込み、命令データの書き込みを行わないレジスタへのクロックの供給の停止制御を行う命令データ振り分け部を具備することを特徴とするデジタル信号処理装置を提供する。
かかる発明によれば、複数のバンクが命令データを分担して処理するようにしたので、１つの命令データを処理する回路の規模を小さくし、命令データの処理のために発生する消費電力を減らすことができる。また、命令データの書き込みを行わないレジスタに対するクロックの供給を停止するようにしたので、さらに消費電力を低減することができる。
なお、特許文献１は、デジタル信号処理装置の省電力化のための技術として、データメモリをバンク分けし、アクセスを行わないバンクに対するクロックの供給を停止する技術を開示している。しかし、本発明は、このようにデータメモリをバンク分けするものではなく、命令データを処理する回路をバンク分けし、バンク単位で省電力化のための制御を行うものであり、特許文献１に開示の技術とは本質的に異なる。
【発明を実施するための最良の形態】
【０００６】
以下、図面を参照し、この発明の実施の形態を説明する。
図１はこの発明の一実施形態によるデジタル信号処理装置の構成を示すブロック図である。図１において、プログラムメモリ１０は、例えばＲＡＭにより構成されており、１または複数の命令を含むｎビットの命令データ（ｎは複数）の集合体であるプログラムを記憶している。アドレスカウンタ１１は、所定周波数のクロックＣＬＫのカウントを行い、そのカウント値を読み出しアドレスとしてプログラムメモリ１０に供給し、プログラムメモリ１０から命令データを順次読み出す回路である。
【０００７】
バンク０および１は、各々特定種類の命令データを分担して処理する回路であり、各々、レジスタ１０１と、このレジスタ１０１に記憶された命令データを処理して各部を制御するための制御信号を発生する命令データ処理部１０２とを有している。バンク０および１の両レジスタ１０１のデータ入力端子には、プログラムメモリ１０から読み出されるｎビットの命令データのうちＭＳＢを除くｎ−１ビットのデータが与えられる。
【０００８】
演算部２０は、バンク０および１の命令データ処理部１０２から出力される制御信号に従って、デジタル信号処理装置の外部からの入力信号に対して、フィルタ処理等の信号処理を行い、その結果得られる信号をデジタル信号処理装置の外部へ出力する回路である。
【０００９】
図２はプログラムメモリ１０に記憶された一連の命令データを例示している。図示のように、命令データのＭＳＢは、その命令データを処理するバンクを指定するバンク指定情報となっている。本実施形態では、バンク指定情報が“０”である命令データはバンク０が処理し、バンク指定情報が“１”である命令データはバンク１が処理することになっている。
【００１０】
図１において、バンク０および１の前段には、クロックゲーティング制御回路４０および４１が各々配置されている。ここで、クロックゲーティング制御回路４０は、Ｈレベルのイネーブル信号ＥＮ０が与えられたときにクロックＣＬＫを通過させ、クロックＣＬＫ０として後段のバンク０のレジスタ１０１に供給する。また、クロックゲーティング制御回路４１は、Ｈレベルのイネーブル信号ＥＮ１が与えられたときにクロックＣＬＫを通過させ、クロックＣＬＫ１として後段のバンク１のレジスタ１０１に供給する。
【００１１】
命令データ振り分け部３０は、プログラムメモリ１０から読み出された命令データのバンク指定情報に基づき、当該命令データの処理を行うバンクを判定し、そのバンクのレジスタ１０１に当該命令データを書き込む回路であり、次の制御を行う。
ａ．プログラムメモリ１０から読み出された命令データを処理するバンク０または１のレジスタ１０１にクロックＣＬＫ０またはＣＬＫ１を供給するためのクロックゲーティング制御回路４０および４１の制御
ｂ．プログラムメモリ１０から今回読み出された命令データの処理を行うバンクが前回読み出された命令データの処理を行ったバンクから切り換わっているときに、前回読み出された命令データの処理を行ったバンクのレジスタ１０１に記憶された命令データを無効化する制御
ｃ．プログラムメモリ１０から今回読み出された命令データの処理を行うバンクが前回読み出された命令データの処理を行ったバンクから切り換わっているときに、前回読み出された命令データの処理を行ったバンクのレジスタ１０１に対するクロックＣＬＫ０またはＣＬＫ１の供給を停止するためのクロックゲーティング制御回路４０および４１の制御
【００１２】
上記ａおよびｃの制御を行うのは、命令データをバンク０または１に適切に振り分け、命令データを処理するバンクのみを動作させ、消費電力を低減するためである。また、上記ｂの制御を行うのは、この制御を行わないと、既に処理されたにも拘わらず、レジスタ１０１に無効化されずに残された命令データの悪影響により、デジタル信号処理装置が所望の機能をしなくなるからである。命令データ振り分け部３０は、以上のような制御を実現するために、Ｅ０検出部３１、Ｅ０１検出部３２、Ｅ１検出部３３、Ｅ１０検出部３４、ＯＲゲート３５および３６を有している。
【００１３】
ここで、Ｅ０検出部３１は、プログラムメモリ１０から読み出された命令データのバンク指定情報が“０”である場合（すなわち、その命令データを処理するバンクがバンク０である場合）にＨレベルの信号Ｅ０を出力し、“１”である場合（すなわち、その命令データを処理するバンクがバンク１である場合）にＬレベルの信号Ｅ０を出力する。また、Ｅ１検出部３３は、プログラムメモリ１０から読み出された命令データのバンク指定情報が“１”である場合にＨレベルの信号Ｅ１を出力し、“０”である場合にＬレベルの信号Ｅ１を出力する。
【００１４】
Ｅ０１検出部３２は、プログラムメモリ１０から読み出される命令データのバンク指定情報が“０”から“１”に変わった場合（すなわち、読み出された命令データを処理するバンクがバンク０からバンク１に切り換わった場合）にＨレベルの信号Ｅ０１を出力し、それ以外のときはＬレベルの信号Ｅ０１を出力する。また、Ｅ１０検出部３４は、プログラムメモリ１０から読み出される命令データのバンク指定情報が“１”から“０”に変わった場合（すなわち、読み出された命令データを処理するバンクがバンク１からバンク０に切り換わった場合）にＨレベルの信号Ｅ１０を出力し、それ以外のときはＬレベルの信号Ｅ１０を出力する。ここで、信号Ｅ０１は、クリア信号ＣＬＲ０（アクティブレベルはＨレベル）としてバンク０のレジスタ１０１に与えられ、信号Ｅ１０は、クリア信号ＣＬＲ１（アクティブレベルはＨレベル）としてバンク１のレジスタ１０１に与えられる。バンク０および１のレジスタ１０１は、クロック同期型の記憶内容消去動作を行う構成となっている。すなわち、クリア信号ＣＬＲ０は、クロックＣＬＫ０に同期してバンク０のレジスタ１０１に取り込まれ、これにより同レジスタ１０１の記憶内容の消去が行われる。また、クリア信号ＣＬＲ１は、クロックＣＬＫ１に同期してバンク１のレジスタ１０１に取り込まれ、これにより同レジスタ１０１の記憶内容の消去が行われる。ＯＲゲート３５は、信号Ｅ０およびＥ０１の論理和をイネーブル信号ＥＮ０として出力する。ＯＲゲート３６は、信号Ｅ１およびＥ１０の論理和をイネーブル信号ＥＮ１として出力する。
【００１５】
図３は、図２に示す一連の命令データがプログラムメモリ１０から読み出され、バンク０または１に書き込まれて処理されるまでの過程における各部の波形を示すタイムチャートである。なお、図２に示す各命令データには、それらの命令データが図３に示す期間Ｔ１〜Ｔ７のいずれにおいてプログラムメモリ１０から読み出されて処理されているかを明らかにするために、Ｔ１〜Ｔ７の表記が添えられている。以下、図３を参照し、本実施形態の動作を説明する。
【００１６】
期間Ｔ１およびＴ２では、バンク指定情報が“０”である命令データが連続してプログラムメモリ１０から読み出され、信号Ｅ０のみがＨレベル、他の信号Ｅ０１、Ｅ１およびＥ１０はＬレベルとされる。このため、イネーブル信号ＥＮ０がＨレベルとなり、クロックＣＬＫがクロックゲーティング制御回路４０を通過し、クロックＣＬＫ０としてバンク０のレジスタ１０１に供給される。この結果、期間Ｔ１およびＴ２においてプログラムメモリ１０から読み出される各命令データ（命令Ａ、命令Ｂ）は、バンク０のレジスタ１０１に書き込まれ、同バンク０の命令データ処理部１０２により処理される。この間、信号Ｅ１およびＥ１０がＬレベルであることから、イネーブル信号ＥＮ１がＬレベルとなり、バンク１のレジスタ１０１にはクロックＣＬＫ１が供給されない。これにより期間Ｔ１およびＴ２における消費電力が低減される。
【００１７】
次に期間Ｔ３になると、バンク指定情報が“１”である命令データ（命令Ｃ、命令Ｄ）がプログラムメモリ１０から読み出される。この結果、信号Ｅ０がＬレベル、信号Ｅ１がＨレベルとなる。また、プログラムメモリ１０から読み出される命令データのバンク指定情報が“０”から“１”に変わったため、信号Ｅ０１、すなわち、クリア信号ＣＬＲ０がＨレベルとなる。この場合、信号Ｅ０１およびＥ１が各々Ｈレベルであることから、イネーブル信号ＥＮ０およびＥＮ１が各々Ｈレベルとなり、バンク０および１の各レジスタ１０１に、クロックＣＬＫ０およびＣＬＫ１が供給される。バンク１では、クロックＣＬＫ１によりレジスタ１０１に命令データ（命令Ｃ、命令Ｄ）が書き込まれ、この命令データが命令データ処理部１０２により処理される。しかし、バンク０では、Ｈレベルのクリア信号ＣＬＲ０がクロックＣＬＫ０によりレジスタ１０１に取り込まれるため、レジスタ１０１の記憶内容は消去され、命令データ処理部１０２は処理対象がないので動作しない。
【００１８】
次に期間Ｔ４になると、バンク指定情報が“０”である命令データ（命令Ａ、命令Ｂ）がプログラムメモリ１０から読み出される。この結果、信号Ｅ０がＨレベル、信号Ｅ１がＬレベルとなる。また、読み出される命令データのバンク指定情報が“１”から“０”に変わったため、信号Ｅ１０、すなわち、クリア信号ＣＬＲ１がＨレベルとなる。この場合、イネーブル信号ＥＮ０およびＥＮ１が各々Ｈレベルとなり、バンク０および１の各レジスタ１０１に、クロックＣＬＫ０およびＣＬＫ１が供給される。バンク０では、クロックＣＬＫ０によりレジスタ１０１に命令データ（命令Ａ、命令Ｂ）が書き込まれ、この命令データが命令データ処理部１０２により処理される。しかし、バンク１では、Ｈレベルのクリア信号ＣＬＲ１がクロックＣＬＫ１によりレジスタ１０１に取り込まれるため、レジスタ１０１の記憶内容は消去され、命令データ処理部１０２は処理対象がないので動作しない。
【００１９】
期間Ｔ５においても、読み出されるバンク指定情報の“０”から“１”への変化があるため、期間Ｔ３と同様な動作が行われる。
【００２０】
次に期間Ｔ６になると、期間Ｔ５に引き続いて、バンク指定情報が“１”である命令データ（命令Ｃ、命令Ｄ）がプログラムメモリ１０から読み出される。また、期間Ｔ６の後の期間Ｔ７においても、バンク指定情報が“１”である命令データ（命令Ｃ、命令Ｄ）がプログラムメモリ１０から読み出される。従って、期間Ｔ６およびＴ７では、信号Ｅ１のみがＨレベル、他の信号Ｅ０、Ｅ０１およびＥ１０はＬレベルとされる。このため、イネーブル信号ＥＮ１がＨレベルとなり、クロックＣＬＫ１がバンク１のレジスタ１０１に供給される。この結果、期間Ｔ６およびＴ７においてプログラムメモリ１０から読み出される各命令データ（命令Ｃ、命令Ｄ）は、バンク１のレジスタ１０１に書き込まれ、同バンク１の命令データ処理部１０２により処理される。この間、イネーブル信号ＥＮ０はＬレベルとなり、バンク０のレジスタ１０１にはクロックＣＬＫ０が供給されず、レジスタ１０１は内容が消去された状態を維持する。従って、バンク０では命令データ処理部１０２による処理は行われない。従って、期間Ｔ６およびＴ７における消費電力が低減される。
【００２１】
以上のように、本実施形態によれば、複数のバンクが命令データを分担して処理するようにしたので、１つの命令データを処理する回路の規模を小さくし、命令データの処理のために発生するスイッチング電流を減らし、消費電力を低減することができる。また、本実施形態によれば、各バンクの前段にクロックゲーティング制御回路を設けて、命令データの処理を行うバンクの切り換えがあった場合に、切り換え前のバンクのレジスタの記憶内容の消去を行うとともにそのバンクのレジスタへのクロックの供給を停止するようにしたので、命令データを処理しないバンクへの無駄なクロックの供給を減らし、消費電力を低減することができる。また、本実施形態によれば、命令データにバンク指定情報を含ませたので、命令データの処理を行うバンクを簡単な構成により判定することができる。
【００２２】
＜他の実施形態＞
以上、この発明の一実施形態について説明したが、この発明には他にも実施形態があり得る。例えば上記実施形態では、バンクの数を２個としたが、バンクの数は３個以上であってもよい。なお、バンクの数を３個以上にする場合には、バンク指定情報として複数ビットを使用すればよい。また、上記実施形態では、レジスタ１０１にクリア信号を与えてレジスタ１０１の記憶内容を空にすることにより、レジスタ１０１に記憶された命令データの無効化を行ったが、レジスタ１０１の出力側にＡＮＤゲート等によるゲートを設け、このゲートにより命令データ処理部１０２への命令データの供給を遮断することで命令データの無効化を行うようにしてもよい。また、上記実施形態において、バンク０および１のレジスタ１０１として、クロック非同期型の記憶内容消去動作を行う構成のものを採用してもよい。その場合には、ＯＲゲート３５および３６を省略し、クロックゲーティング制御回路４０には信号Ｅ０のみを、クロックゲーティング制御回路４１には信号Ｅ１のみを供給するようにすればよい。
【図面の簡単な説明】
【００２３】
【図１】この発明の一実施形態であるデジタル信号処理装置の構成を示すブロック図である。
【図２】同実施形態におけるプログラムメモリ１０に記憶された一連の命令データを例示する図である。
【図３】同プログラムメモリ１０に記憶された一連の命令データが読み出され、バンク０または１に書き込まれて処理されるまでの過程における各部の波形を示すタイムチャートである。
【符号の説明】
【００２４】
１０……プログラムメモリ、１１……アドレスカウンタ、０，１……バンク、１０１……レジスタ、１０２……命令データ処理部、２０……演算部、４０，４１……クロックゲーティング制御回路、３０……命令データ振り分け部、３１……Ｅ０検出部、３２……Ｅ０１検出部、３３……Ｅ１検出部、３４……Ｅ１０検出部、３５，３６……ＯＲゲート。
【図１】
2008123410.tif 000003
【図２】
2008123410.tif 000004
【図３】
2008123410.tif 000005