(57)【要約】【課題】小さい回路規模でより適切なクロックゲーティングを可能とする。【解決手段】制御装置は、第１のデータを処理する第１の回路と該第１の回路による処理後のデータである第２のデータを処理する第２の回路とを含むデータ処理部に対するクロック供給を制御する。制御装置は、クロックサイクル毎に値を後段のレジスタに伝搬するよう構成された複数のレジスタを含むシフトレジスタと、第１の回路への第１のデータの入力タイミングと第２の回路に入力される第２のデータの期間とに基づいた状態信号をシフトレジスタに供給する供給手段と、クロックサイクル毎にシフトレジスタに含まれる所定の１つのレジスタの値に基づいて第２の回路へのクロック供給を制御する制御手段と、を有する。【選択図】図２
2018088096.tif 000002
【特許請求の範囲】
【請求項１】
第１のデータを処理する第１の回路と該第１の回路による処理後のデータである第２のデータを処理する第２の回路とを含むデータ処理部に対するクロック供給を制御する制御装置であって、
クロックサイクル毎に値を後段のレジスタに伝搬するよう構成された複数のレジスタを含むシフトレジスタと、
前記第１の回路への前記第１のデータの入力タイミングと前記第２の回路に入力される前記第２のデータの期間とに基づいた状態信号を前記シフトレジスタに供給する供給手段と、
クロックサイクル毎に前記シフトレジスタに含まれる所定の１つのレジスタの値に基づいて前記第２の回路へのクロック供給を制御する制御手段と、
を有することを特徴とする制御装置。
【請求項２】
前記供給手段は、前記入力タイミングを前記第２の回路に入力される前記第２のデータの期間だけ引き延ばすことにより前記状態信号を生成する
ことを特徴とする請求項１に記載の制御装置。
【請求項３】
前記供給手段は、前記入力タイミングを前記データ処理部から取得する
ことを特徴とする請求項１又は２に記載の制御装置。
【請求項４】
前記制御手段は、前記シフトレジスタに含まれる２以上のレジスタの値を参照可能に構成されており、
前記制御装置は、前記２以上のレジスタから前記所定の１つのレジスタを選択する選択手段を更に有する
ことを特徴とする請求項１乃至３の何れか１項に記載の制御装置。
【請求項５】
前記選択手段は、前記制御装置と前記第２の回路とを接続するクロックラインにおけるクロック伝搬時間に少なくとも基づいて前記所定の１つのレジスタを選択する
ことを特徴とする請求項４に記載の制御装置。
【請求項６】
前記シフトレジスタに含まれる複数のレジスタの個数は、前記第１のデータの入力タイミングから該第１のデータに対応する前記第２のデータが前記第２の回路に入力されるまでの時間に基づいて決定される
ことを特徴とする請求項１乃至５の何れか１項に記載の制御装置。
【請求項７】
前記シフトレジスタの動作周波数は、前記データ処理部の動作周波数よりも低くなるよう構成されている
ことを特徴とする請求項１乃至６の何れか１項に記載の制御装置。
【請求項８】
前記第１の回路は、複数の前記第２の回路に前記第２のデータを提供するように構成されており、
前記制御装置は、前記シフトレジスタを、前記複数の前記第２の回路に対するクロック供給の制御で共有するよう構成される
ことを特徴とする請求項１乃至７の何れか１項に記載の制御装置。
【請求項９】
ＳｏＣ（System-On-Chip）上に前記データ処理部と共に実装された
ことを特徴とする請求項１乃至８の何れか１項に記載の制御装置。
【請求項１０】
第１のデータを処理する第１の回路と該第１の回路による処理後のデータである第２のデータを処理する第２の回路とを含むデータ処理部に対するクロック供給を制御する制御装置の制御方法であって、
前記制御装置は、クロックサイクル毎に値を後段のレジスタに伝搬するよう構成された複数のレジスタを含むシフトレジスタを有しており、
前記制御方法は、
前記第１の回路への前記第１のデータの入力タイミングと前記第２の回路に入力される前記第２のデータの期間とに基づいた状態信号を前記シフトレジスタに供給する供給工程と、
クロックサイクル毎に前記シフトレジスタに含まれる所定の１つのレジスタの値に基づいて前記第２の回路へのクロック供給を制御する制御工程と、
を含むことを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クロック供給制御による消費電力削減技術に関するものである。
【背景技術】
【０００２】
近年の半導体集積回路の集積度の向上や処理能力の向上は消費電力の増大を招いている。そこで、消費電力の削減のため、対象回路のクロックを停止して電力を削減するクロックゲーティングと呼ばれる手法が利用されている。クロックゲーティングは、ソフトウェアにより実現する方法とハードウェアにより実現する方法の大きく２つの方法に大別される。
【０００３】
特許文献１では、クロックゲーティングの対象回路のクロック復帰要求が発生してから、一定時間の計測後にクロックを供給する手法が開示されている。特に、１つの対象回路に対して１個のカウンタを使用してクロック供給の状態管理を行っている。また、特許文献２では、クロック制御要求イベントの発生最大数分のカウンタを使用してクロック制御を行う手法が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４７３３８７７号公報
【特許文献２】特公平０６−０４８４５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１の手法では、クロックゲーティング対象回路において短期間に複数回の復帰要求が発生する場合に細かい粒度での復帰要求の状態管理ができない。また、特許文献２のように多数のカウンタを利用すると回路規模が大きくなるという問題がある。
【０００６】
本発明はこのような問題を鑑みてなされたものであり、小さい回路規模でより適切なクロックゲーティングを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述の問題点を解決するため、本発明に係る制御装置は以下の構成を備える。すなわち、第１のデータを処理する第１の回路と該第１の回路による処理後のデータである第２のデータを処理する第２の回路とを含むデータ処理部に対するクロック供給を制御する制御装置は、クロックサイクル毎に値を後段のレジスタに伝搬するよう構成された複数のレジスタを含むシフトレジスタと、前記第１の回路への前記第１のデータの入力タイミングと前記第２の回路に入力される前記第２のデータの期間とに基づいた状態信号を前記シフトレジスタに供給する供給手段と、クロックサイクル毎に前記シフトレジスタに含まれる所定の１つのレジスタの値に基づいて前記第２の回路へのクロック供給を制御する制御手段と、を有する。
【発明の効果】
【０００８】
本発明によれば、小さい回路規模でより適切なクロックゲーティングを可能とする技術を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】第１実施形態に係る制御装置を含む画像処理用集積回路の構成を示す図である。
【図２】データ処理装置と省電力制御装置の詳細構成を示す図である。
【図３】第１実施形態におけるクロックの供給制御を例示的に示す図である。
【図４】第２実施形態におけるクロックの供給制御を例示的に示す図である。
【発明を実施するための形態】
【００１０】
以下に、図面を参照して、この発明の好適な実施の形態を詳しく説明する。なお、以下の実施の形態はあくまで例示であり、本発明の範囲を限定する趣旨のものではない。
【００１１】
（第１実施形態）
本発明に係る制御装置の第１実施形態として、画像処理用集積回路に組み込まれた省電力制御装置を例に挙げて以下に説明する。
【００１２】
＜装置構成＞
図１は、第１実施形態に係る制御装置を含む画像処理用集積回路（以下、集積回路と呼ぶ）の構成を示す図である。集積回路は、ＣＰＵ１０、メモリコントローラ（ＭＥＭＣ）２０、データ処理部であるデータ処理装置３０、省電力制御装置４０を含んでいる。ここで、ＭＥＭＣ２０は、ＤＲＡＭ２００へのメモリアクセスを制御する機能部である。各部はバスシステム５０を介して接続され相互にデータ転送を行うことが可能となっている。この構成はＳｏＣ（System-On-Chip）とよばれる集積回路で代表的な構成である。なお、以下の説明においては、ＳｏＣ内の回路として実装する形態として説明するが、それぞれを単体のチップあるいは装置として構成してもよい。
【００１３】
図２は、データ処理装置３０と省電力制御装置４０の詳細構成を示す図である。データ処理装置３０は、データ検出回路３０００、データ処理回路３００１、データ処理回路３００２を含んでいる。以下の説明では、データ処理回路３００２をクロックゲーティングの対象として説明するが、この構成に限定されるわけではない。省電力制御装置４０は、信号延長回路４０００、シフトレジスタ回路４００１、タイミング制御回路４００２、クロック生成回路４００４で構成される。信号延長回路４０００は、以下で説明するように、入力されたデータ検出信号を延長した延長信号（状態信号）を生成する回路である。タイミング制御回路４００２は、クロック生成回路４００４でのクロックの生成タイミングを制御する回路である。シフトレジスタ回路４００１は、レジスタを数珠つなぎで接続し、各クロックサイクル毎にレジスタの出力値を伝搬させる回路である。
【００１４】
データ処理装置３０の処理の流れは、大まかに以下のとおりである。データ処理装置３０は、ＭＥＭＣ２０及びバスシステム５０を介して、ＤＲＡＭ２００からデータを読み込む。読み込みには、バスシステム５０に接続されたバスインターフェース５０２を利用する。ここで、データ検出回路３０００は、処理されるデータの入力を検出すると、外部の回路に入力タイミングの検出を通知可能に構成されている。ここでは、信号延長回路４０００にデータ検出信号３０を送信し通知することを想定している。
【００１５】
読まれたデータは、データ処理回路３００１およびデータ処理回路３００２で加工され、バスシステム５０及びＭＥＭＣ２０を介してＤＲＡＭ２００へ書き戻される。書き戻しには、バスシステム５０に接続されたバスインターフェース５０３を利用する。
【００１６】
データの読み込みから書き戻しまでの一連の処理において、データ処理回路３００２においては、データ処理回路３００１による処理結果のデータがデータ処理回路３００１から渡されるまでの期間は処理対象のデータが無い。そのため、この期間においてはデータ処理回路３００２へのクロック供給の遮断することができ、更なる省電力化を行うことが可能である。
【００１７】
ところで、各回路には、クロックラインを介してクロックが供給される。また、クロックライン上には、クロックの発生元からクロックを利用するレジスタまで、各レジスタ群への到達時間を調整するために、多数のクロックバッファが配置される。集積回路においては、クロックバッファで消費される電力が支配的である。そのため、省電力の効果を高めるためには、クロックの発生元に近い場所でクロック遮断を制御することがより望ましい。
【００１８】
データ処理回路３００２の具体的な実装例としては、例えば、データ処理回路３００１の処理後に別の画像処理を実施する回路や、データ処理後のデータをＤＲＡＭに書き戻すＤＭＡＣなどがある。なお、任意の時刻でデータ処理回路３００２へのクロック停止が行えるとは限らない。そこで、データ処理回路３００２は、データ処理回路３００２自身へのクロック停止を許可するか否かの情報を外部の回路に通知可能に構成されている。ここでは、クロック生成回路４００４にクロック停止許可信号３０１を送信し通知することを想定している。
【００１９】
省電力制御装置４０の処理の流れは、大まかに以下のとおりである。まず、信号延長回路４０００は、データの入力タイミングを示すデータ検出信号３０をデータ検出回路３０００から取得（受信）すると、シフトレジスタ回路４００１に「１」の値を供給する。ここで、データ検出信号３０に対応するデータをデータ処理回路３００１が処理する時間の状態管理を行うために、当該処理する時間に相当する期間（サイクル）分だけ「１」の値を延長した状態信号を供給する。
【００２０】
なお、シフトレジスタ回路４００１に含まれるシフトレジスタの個数は、データ処理回路３００１によるデータの処理時間（入力から出力まで）を加味して決定するとよい。例えば、データ処理回路３００１によるデータの処理時間が４０サイクルの場合は、シフトレジスタの数を４０個とするとよい。
【００２１】
タイミング制御回路４００２は、シフトレジスタ回路４００１を構成するレジスタのひとつをクロック制御の判断レジスタとして選択する。そして、タイミング制御回路４００２は、選択された特定のレジスタの出力が「１」である場合、クロック生成指示信号４００３を使用してクロック生成回路４００４にクロック生成を指示する。クロック生成回路４００４は、クロック停止許可信号３０１とクロック生成指示信号４００３の値を考慮して、データ処理回路３００２へのクロックの供給・遮断を制御する。
【００２２】
＜装置の動作＞
図３は、第１実施形態におけるクロックの供給制御を例示的に示す図である。具体的には、省電力制御装置４０内のシフトレジスタ回路４００１とゲーティングされたクロックの動作状態を示している。ここでは、データ処理回路３００１が、入力されるデータ１つに対して、処理結果のデータを４サイクルの間データ処理回路３００２に供給するケースを想定する。また、クロック生成回路４００４からデータ処理回路３００２へのクロック（ゲーティングクロック）は、３サイクルの遅延（クロック伝搬時間）があることを想定する。
【００２３】
時刻Ｔ２にて、データ検出回路３０００は、データ処理装置３０に入力されるデータを検出し、１クロックの期間（時刻Ｔ２）だけ値を「０」から「１」に変更したデータ検出信号３００を出力する。信号延長回路４０００は、データ検出信号３００を受信すると、４クロックの期間（時刻Ｔ２から時刻Ｔ５まで）「１」の値を引き延ばした延長信号４００５を生成し、シフトレジスタ回路４００１に出力する。シフトレジスタ回路４００１に入力された延長信号４００５の各サイクルの信号の値は、１サイクルごとに後段のシフトレジスタに伝搬する。
【００２４】
タイミング制御回路４００２が、シフトレジスタ（Ｘ）をクロック制御の判断レジスタとして選択した場合、４クロックの期間（時刻Ｔ１２から時刻Ｔ１５まで）の値が「１」であることがクロック生成回路４００４に伝わる。これにより、時刻Ｔ１２にて、クロック生成回路４００４は、データ処理回路３００１に供給されることになる４サイクルのクロックを生成する。生成されたクロックは、時刻Ｔ１５にて、データ処理回路３００１に到達する。
【００２５】
また、図３では、一定期間内に発生した２個目のクロック復帰要求の動作についても示している。具体的には、時刻Ｔ８において、２つ目のデータが検出され、データ検出信号３００の値が１クロックの期間（時刻Ｔ８）だけ「１」になる例を示している。１つ目のデータ同様に、信号延長回路４０００は、４クロックの期間（時刻Ｔ８から時刻Ｔ１１まで）「１」の値を引き延ばした延長信号４００５を生成し、シフトレジスタ回路４００１に出力する。タイミング制御回路４００２が、シフトレジスタ（Ｘ）において、「１」の値を検出することで、４サイクルのクロックを供給する。
【００２６】
すなわち、図３で示されるように、短期間に複数のデータが入力され、短期間に複数のクロック復帰要求が発生しても、タイミング制御回路４００２においてクロック供給が必要となる期間のみにクロックを供給し省電力化を図ることが可能となる。すなわち、シフトレジスタ回路４００１を用いることで、適切なタイミングでタイミング制御回路４００２に対してクロックを供給することが可能となる。
【００２７】
上述の説明においては、信号延長回路４０００は、データ検出信号３００を４サイクルに延長した。しかし、データ処理回路３００１の動作を鑑み一定期間引き延ばすことで所望の動作を実現すればよい。
【００２８】
なお、クロックバッファによる遅延（クロック伝搬時間）は、集積回路の設計・実装工程の中における、クロックツリーを実装する工程で決定される。そのため、設計初期の段階で実際の遅延を決定することは難しい。そのため、遅延の不確定性に柔軟に対処するために、タイミング制御回路４００２において、クロックの供給・遮断の判断に利用するシフトレジスタを選択可能に構成しておくと好適である。すなわち、２以上のレジスタの値を参照可能に構成しておき、上述の動作時に、１つのレジスタを選択し値を参照するよう構成するとよい。
【００２９】
また、データ処理回路３００２自身が複数のサイクルにわたって処理を行うために、クロックを供給する期間を更に延長する必要がある場合が存在する。その際は、信号延長回路４０００にて、クロックを供給する時間を更に延長するよう構成してもよい。また、データ処理回路３００２から、クロック停止許可信号３０１を通知して、クロック生成を制御するよう構成してもよい。
【００３０】
以上説明したとおり第１実施形態によれば、クロックゲーティングの対象回路で処理されることになるデータの当該対象回路への到着タイミングをシフトレジスタにより管理する。そして、シフトレジスタにおける所定のレジスタの値に基づいて、当該対象回路へクロックを供給する。これにより、多数のカウンタ（例えば、一定期間に発生しうる最大のクロック復帰要求の個数のカウンタ）を用意する必要が無くなり、小さい回路規模でより適切なクロックゲーティングを行うことが可能となる。
【００３１】
（第２実施形態）
第２実施形態では、シフトレジスタ回路の動作周波数とデータ処理装置の動作周波数とが異なる形態について説明する。なお、画像処理用集積回路（図１）や各装置（図２）の構成は、第１実施形態とほぼ同様であるため説明は省略する。
【００３２】
＜装置の動作＞
図４は、第２実施形態におけるクロックの供給制御を例示的に示す図である。ここでは、省電力制御装置４０内のシフトレジスタ回路４００１の動作周波数とデータ処理装置３０の動作周波数とが異なる場合を示している。ここでは、一例として、シフトレジスタ回路４００１の動作周波数が、データ処理装置３０の動作周波数の半分（周期は２倍）である場合を示している。
【００３３】
時刻Ｔ２にて、データ検出回路３０００は、データ処理装置３０に入力されるデータを検出し、１クロックの期間（時刻Ｔ２）だけ値を「０」から「１」に変更したデータ検出信号３００を出力する。信号延長回路４０００は、データ検出信号３００を受信すると、４クロックの期間（時刻Ｔ２から時刻Ｔ５まで）「１」の値を引き延ばした延長信号４００５を生成し、シフトレジスタ回路４００１に出力する。
【００３４】
シフトレジスタ回路４００１に使用されるシフトレジスタの動作周波数は、データ検出回路３０００および信号延長回路４０００で使用される動作周波数の半分である。そのため、両クロックのエッジがそろわない場合には、信号の取りこぼしが発生する可能性が存在する。そのため、信号延長回路４０００が、適宜、値を引き延ばすことにより、このような取りこぼしを防止するとよい。
【００３５】
シフトレジスタ回路４００１に入力された延長信号４００５の各サイクルの信号の値は、１サイクルごとに後段のシフトレジスタに伝搬する。ただし、上述のように、シフトレジスタ回路４００１に使用されるクロック周波数はデータ処理装置３０の動作周波数の半分である。そのため、シフトレジスタ回路４００１で必要となるレジスタの数は、第１実施形態におけるレジスタの数の半分で十分となる。すなわち、シフトレジスタ回路４００１に使用するクロック周波数を考慮することで、シフトレジスタ回路４００１に含まれるレジスタの個数を削減することが可能となる。すなわち、シフトレジスタ回路４００１の動作周波数を、データ処理装置３０の動作周波数よりも低く構成することによりレジスタの個数を削減することが可能となる。
【００３６】
以上説明したとおり第２実施形態によれば、シフトレジスタ回路の動作周波数を考慮することで、回路規模をさらに削減することが可能となる。
【００３７】
（変形例）
図２においては、データ処理回路３００１は１つのデータ処理回路３００２にデータを渡す構成となっている。しかしながら、データ処理回路３００１が複数のデータ処理回路３００２にデータを提供する構成も考えられる。その場合は、シフトレジスタ回路４００１を、複数のデータ処理回路３００２で共有するよう構成してもよい。
【００３８】
例えば、シフトレジスタ回路４００１については複数のデータ処理回路３００２で共用し、タイミング制御回路４００２及びクロック生成回路４００４については各々のデータ処理回路３００２に対応したものを持たせるよう構成してもよい。これにより、回路規模を抑えつつ省電力化を図ることが可能となる。
【符号の説明】
【００３９】
３０  データ処理装置；  ４０  省電力制御装置；  ３０００  データ検出回路；  ３００１  データ処理回路；  ３００２  データ処理回路；  ４０００  信号延長回路；  ４００１  シフトレジスタ回路；  ４００２  タイミング制御回路；  ４００４  クロック生成回路
【図１】
2018088096.tif 000003
【図２】
2018088096.tif 000004
【図３】
2018088096.tif 000005
【図４】
2018088096.tif 000006