(57)【特許請求の範囲】
【請求項１】
入力された書き込みパルスに従って設定データが書き込まれるレジスタを有し、該レジスタに書き込まれた設定データに基づいて所定の処理を実行する処理ブロックと、
第１の書き込みパルスを前記レジスタに入力するための書き込み要求信号を発行する第１の制御ブロックと、
前記第１の制御ブロックとは独立した任意のタイミングで、前記第１の書き込みパルスとは異なる第２の書き込みパルスを発行する第２の制御ブロックと、
を具備し、
前記処理ブロックは、
前記第１の制御ブロックからの書き込み要求信号に応じて前記第１の書き込みパルスを生成する書き込みパルス生成回路と、
前記第１の書き込みパルスと前記第２の書き込みパルスの何れか一方を選択して前記レジスタに入力する切り替え回路と、
を有し、
前記切り替え回路は、前記第１の書き込みパルスと前記第２の書き込みパルスの何れか一方のみが入力された場合には前記第１の書き込みパルスと前記第２の書き込みパルスとの入力されたほうを選択して前記レジスタに入力し、前記第１の書き込みパルスと前記第２の書き込みパルスとが同時に入力された場合には前記第１の書き込みパルスを選択して前記レジスタに入力することを特徴とする画像処理装置。
【請求項２】
前記第２の制御ブロックは、前記第１の制御ブロックとは異なり且つ前記処理ブロックと同一のクロックドメインで前記第２の書き込みパルスを発行することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記処理ブロックと、前記第１の制御ブロックと、前記第２の制御ブロックとは共通のバスに接続され、前記第１の制御ブロックは前記バスを介して前記処理ブロックに書き込み要求信号を発行し、前記第２の制御ブロックは前記バスを介さずに前記処理ブロックに第２の書き込みパルスを発行することを特徴とする請求項１に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置における処理の高速化技術に関する。
【背景技術】
【０００２】
従来、画像データをブロック単位で処理可能になされた画像処理装置において、当該画像処理装置を制御する制御ブロックであるＣＰＵの負荷を軽減する技術として、特許文献１の技術が提案されている。特許文献１においては、ＣＰＵとは異なる制御ブロックとして、バスを経由せずに処理ブロックにアクセス可能になされたシーケンサブロックによって、従来はＣＰＵによって行われていたブロック単位の画像データの処理を制御するようにしている。
【０００３】
ここで、このような特許文献１等の従来の画像処理装置において用いられるデータ転送のためのプロトコルの一例について説明する。なお、ここでは、ＣＰＵが処理ブロック内のレジスタにデータを書き込む際のプロトコルを例にとって説明する。
【０００４】
ＣＰＵは、アクセス対象となる処理ブロック内のレジスタのアドレスを示す信号であるレジスタアドレスを発行するとともに、レジスタ書き込みを行う処理ブロックを選択するための信号であるチップセレクト信号とレジスタ書き込みを要求するための信号であるレジスタライト信号、及び書き込むべきデータを示すライトデータ信号を発行する。ＣＰＵからのチップセレクト信号及びレジスタライト信号を受けた処理ブロックは、ＣＰＵからのレジスタ書き込みがなされることを認識して書き込みパルスを生成し、この書き込みパルスに従ってライトデータ信号を設定データとしてレジスタに書き込む。なお、設定データ自体は書き込みパルスとは別信号でＣＰＵとシーケンサの両方の設定データが処理ブロックへ入力される。実際に処理ブロックのレジスタへ書き込む設定データは、どちらの書き込みパルスを使用するかによって決定する。レジスタ書き込みが完了した後、処理ブロックは書き込み完了パルスを生成し、この書き込み完了パルスに同期したタイミングで完了通知信号をＣＰＵに対して発行する。この完了通知信号の発行を受けてＣＰＵはレジスタ書き込みの完了を認識する。これにより、一連のレジスタ書き込みに関する処理が完了する。
【０００５】
ここで、上述した一連の処理はハンドシェークプロトコルと呼ばれるプロトコルに従ったレジスタ書き込みの例である。このようなハンドシェークプロトコルに従ったレジスタ書き込みの場合には、ＣＰＵは、レジスタライト信号を発行してから完了通知信号を受け付けるまでの期間は次のレジスタ書き込みができないようになっている。したがって、ＣＰＵから見たレジスタアクセス期間は、ＣＰＵがチップセレクト信号を発行してから完了通知信号を受け付けるまでの期間となる。
またハンドシェークプロトコル以外にも、一定のサイクル数チップセレクト信号及びレジスタライト信号の発行が必要な固定ウェイトプロトコルというプロトコルがある。この場合でもある一定の期間は次のレジスタ書き込みはできない。
【０００６】
また、上述の例は、ＣＰＵと処理ブロックがともに同一のクロックドメインである（クロック周波数が同一である）ことを前提としている。近年の画像処理装置においては、ＣＰＵと処理ブロックとが同一のクロックドメインであることは殆どなく、このような場合にはＣＰＵと処理ブロックとの間での同期をとるために、上述した一連の処理の間にクロック乗り換えと呼ばれる処理を行う必要がある。このようなクロック乗り換えを伴う場合もハンドシェークプロトコルに従った処理を行う必要がある。
【０００７】
クロック乗り換えを要する場合のデータ転送のプロトコルの一例について図５を参照して説明する。上述したのと同様に、ＣＰＵはレジスタアドレスADDを発行するとともに、チップセレクト信号CS_X、レジスタライト信号WE_X、および図示しないライトデータ信号を発行する。これらの信号は何れもＣＰＵの動作クロックCLK_CPUに同期した信号である。
【０００８】
ＣＰＵからのチップセレクト信号CS_X及びレジスタライト信号WE_Xを受けた処理ブロックは、ＣＰＵの動作クロックCLK_CPUに同期した書き込みパルスcpu_wginを生成する。そして、処理ブロックは、書き込みパルスcpu_wginから処理ブロックの動作クロックCLK_BL Kに同期した書き込みパルスwginを生成し、この書き込みパルスwginに従ってライトデータをレジスタに書き込む。そして、レジスタ書き込みが完了した後、処理ブロックは、動作クロックCLK_BLKに同期した書き込み完了パルスwg_validを生成し、さらに書き込み完了パルスwg_validからＣＰＵの動作クロックCLK_CPUに同期した書き込み完了パルスcpu_validを生成する。そして、処理ブロックは、書き込み完了パルスcpu_validに同期して完了通知信号WAITをＣＰＵに対して発行する。これにより、ＣＰＵによるレジスタ書き込みが完了する。このような一連の処理により、ＣＰＵと処理ブロックのクロックドメインが異なる場合でもＣＰＵと処理ブロックとの間で正しく同期を取りつつ、レジスタ書き込みを行うことが可能である。
【０００９】
上述した一連の処理においても、ＣＰＵは、レジスタライト信号を発行してから完了通知信号を受け付けるまでの期間は次のレジスタ書き込みができないようになっている。したがって、図５の場合においても、ＣＰＵから見たレジスタアクセス期間は、ＣＰＵがチップセレクト信号CS_Xを発行してから完了通知信号WAITを受け付けるまでの期間となる。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００５−７８６０８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
特許文献１において提案されているようなＣＰＵとシーケンサとで処理ブロックを共有する構成の画像処理装置において、ＣＰＵとシーケンサとの間でレジスタ書き込みの処理が競合しないように、通常、シーケンサは、ＣＰＵから見たレジスタアクセス期間以外の期間（図５に示す非レジスタアクセス時間）で処理ブロック内のレジスタにデータの書き込みを行う。したがって、ハンドシェークプロトコル、固定ウェイトプロトコルどちらの場合でも、ＣＰＵのレジスタアクセスが完了するまではシーケンサのレジスタアクセスは待たされることになる。特に、ＣＰＵと処理ブロックのクロックドメインが異なる場合において、クロック乗り換えの期間分だけシーケンサの待ち時間が長くなり、全体としての画像処理時間が長くなりやすい。
【００１２】
本発明は、上記の事情に鑑みてなされたもので、複数の制御ブロックで処理ブロックを共有する構成の画像処理装置において、一方の制御ブロックのレジスタアクセスに時間がかかる場合（特に、それぞれの制御ブロックのクロックドメインが異なる場合）における画像処理時間を短縮することができる画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記の目的を達成するために、本発明の第１の態様の画像処理装置は、入力された書き込みパルスに従って設定データが書き込まれるレジスタを有し、該レジスタに書き込まれた設定データに基づいて所定の処理を実行する処理ブロックと、第１の書き込みパルスを前記レジスタに入力するための書き込み要求信号を発行する第１の制御ブロックと、前記第１の制御ブロックとは独立した任意のタイミングで、前記第１の書き込みパルスとは異なる第２の書き込みパルスを発行する第２の制御ブロックとを具備し、前記処理ブロックは、前記第１の制御ブロックからの書き込み要求信号に応じて前記第１の書き込みパルスを生成する書き込みパルス生成回路と、前記第１の書き込みパルスと前記第２の書き込みパルスの何れか一方を選択して前記レジスタに入力する切り替え回路とを有し、前記切り替え回路は、前記第１の書き込みパルスと前記第２の書き込みパルスの何れか一方のみが入力された場合には前記第１の書き込みパルスと前記第２の書き込みパルスとの入力されたほうを選択して前記レジスタに入力し、前記第１の書き込みパルスと前記第２の書き込みパルスとが同時に入力された場合には前記第１の書き込みパルスを選択して前記レジスタに入力することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、複数の制御ブロックで処理ブロックを共有する構成の画像処理装置において、一方の制御ブロックのレジスタアクセスに時間がかかる場合（特に、それぞれの制御ブロックのクロックドメインが異なる場合）における画像処理時間を短縮することができる画像処理装置を提供することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施形態に係る画像処理装置の一例の構成を示す図である。
【図２】切り替え回路の構成の一例を示す図である。
【図３】本発明の一実施形態における画像処理装置のレジスタ書き込みの際の処理の流れについて示すタイミングチャートである。
【図４】本発明の一実施形態における画像処理装置の効果について示す図である。
【図５】従来の画像処理装置におけるレジスタ書き込みの際の処理の流れについて示すタイミングチャートである。
【発明を実施するための形態】
【００１６】
以下、図面を参照して本発明の実施形態を説明する。  
図１は、本発明の一実施形態に係る画像処理装置の一例の構成を示す図である。図１に示す画像処理装置は、ＣＰＵ１００と、シーケンサ２００と、ＣＰＵバス３００と、処理ブロック４００、５００、６００とを有している。
【００１７】
第１の制御ブロックとしての機能を有するＣＰＵ１００は、ＣＰＵバス３００に接続されており、クロックCLK_CPUに同期して、シーケンサ２００と、処理ブロック４００、５００、６００の動作を制御する。このＣＰＵ１００は、シーケンサ２００の動作を開始させるべくＣＰＵバス３００を介してシーケンサ２００に対して開始トリガを入力する制御や、処理ブロック４００、５００、６００の動作条件等を示す設定データを設定する制御等を行う。
【００１８】
第２の制御ブロックとしての機能を有するシーケンサ２００は、ＣＰＵバス３００に接続されており、ＣＰＵ１００からの開始トリガを受けて動作を開始し、ＣＰＵ１００とは独立して処理ブロック４００、５００、６００の動作を制御する。このシーケンサ２００は、処理ブロック４００、５００、６００の動作条件等を示す設定データを設定するための第２の書き込みパルスseq_wginを処理ブロック４００、５００、６００に対して発行する制御等を行う。
【００１９】
本実施形態において、シーケンサ２００のクロックドメインはＣＰＵ１００のクロックドメインとは異なっている。即ち、本実施形態におけるシーケンサ２００はＣＰＵ１００とは異なる周波数を有するクロックCLK_BLKに同期して動作する。また、ＣＰＵ１００はＣＰＵバス３００を介して処理ブロック４００、５００、６００の制御を行うのに対し、シーケンサ２００はＣＰＵバス３００を介さずに処理ブロック４００、５００、６００の制御を行う。
【００２０】
ＣＰＵバス３００は、ＣＰＵ１００、シーケンサ２００、処理ブロック４００、５００、６００の間でデータ転送を行うためのデータ転送路である。
【００２１】
処理ブロック４００、５００、６００は、それぞれ、ＣＰＵ１００又はシーケンサ２００によって設定された設定データに従って所定の処理を行う。本実施形態において、処理ブロック４００、５００、６００のクロックドメインはシーケンサ２００と同一である。即ち、本実施形態における処理ブロック４００、５００、６００は何れもクロックCLK_BLKに同期して動作する。なお、処理ブロック４００、５００、６００において行われる所定の処理は特に限定されるものでない。また、処理ブロック４００、５００、６００はそれぞれ異なる処理を行うものであっても、同一の処理を行うものであっても良い。
【００２２】
図１に示す処理ブロック４００は、レジスタ４０１と、書き込みパルス生成回路４０２と、切り替え回路４０３と、書き込み完了パルス生成回路４０４とを有している。同様に、処理ブロック５００は、レジスタ５０１と、書き込みパルス生成回路５０２と、切り替え回路５０３と、書き込み完了パルス生成回路５０４とを有し、処理ブロック６００は、レジスタ６０１と、書き込みパルス生成回路６０２と、切り替え回路６０３と、書き込み完了パルス生成回路６０４とを有している。
【００２３】
なお、図１における処理ブロック４００、５００、６００は、所定の処理を実行する回路部分の図示を省略している。この所定の処理を実行する回路部分はそれぞれの処理ブロックの処理の内容に応じて適宜設けられるものである。図１に示すように、所定の処理を実行する回路部分以外の構成は処理ブロック４００、５００、６００で同一の構成となる。したがって、以後は処理ブロック４００の構成について説明する。
【００２４】
レジスタ４０１には、ＣＰＵ１００又はシーケンサ２００により、処理ブロック４００における所定の処理に必要な設定データが書き込まれる。このレジスタ４０１は、ｎ個のレジスタ１、…、レジスタｎを有し、クロックCLK_BLKに同期して切り替え回路４０３から入力される書き込みパルスblk_wginに従って設定データが書き込まれる。なお、設定データ自体は書き込みパルスとは別信号で、ＣＰＵとシーケンサの両方の設定データが処理ブロックへ入力される。実際に処理ブロックのレジスタへ書き込む設定データは、どちらの書き込みパルスを使用するかによって決定する。図１の例では、レジスタ４０１、５０１、６０１は個別にシーケンサ２００に接続されており、シーケンサ２００はレジスタ４０１、５０１、６０１のそれぞれに対して個別に設定データを書き込むことが可能である。レジスタ４０１、５０１、６０１を共通の信号線を介してシーケンサ２００に接続するようにすれば、シーケンサ２００によってレジスタ４０１、５０１、６０１に一括して設定データを書き込むことも可能である。
【００２５】
書き込みパルス生成回路４０２は、ＣＰＵ１００から発行されるレジスタ書き込み要求信号に応じて第１の書き込みパルスを生成する。ここで、ＣＰＵ１００において発行されるレジスタ書き込み要求信号は、レジスタ書き込みを行う処理ブロックを選択するための信号であるチップセレクト信号CS_Xとレジスタ書き込みを要求するための信号であるレジスタライト信号WE_Xとを含むものである。
【００２６】
ここで、チップセレクト信号CS_Xとレジスタライト信号WE_Xは何れもクロックCLK_CPUに同期した信号であり、これらの信号に応じて生成される書き込みパルスもクロックCLK_CPUに同期したものとなる。これに対し、レジスタ４０１はクロックCLK_CPUとは異なるクロックCLK_BLKに同期して書き込み動作を行う。したがって、書き込みパルス生成回路４０２は、チップセレクト信号CS_Xとレジスタライト信号WE_XとからクロックCLK_CPUに同期した書き込みパルスcpu_wginを生成し、さらにこの書き込みパルスcpu_wginからクロックCLK_BLKに同期した書き込みパルスwginを生成し、この書き込みパルスwginを第１の書き込みパルスとして切り替え回路４０３に入力する。このようなクロック乗り換えを行うことにより、ＣＰＵ１００と処理ブロック４００とでクロックドメインが異なっていてもレジスタ書き込みを行うことが可能である。なお、シーケンサ２００はクロックCLK_BLKに同期して動作するので、書き込みパルス生成回路４０２によるクロック乗り換えは必要ない。
【００２７】
切り替え回路４０３は、ＣＰＵ１００からのチップセレクト信号CS_Xとレジスタライト信号WE_Xとに基づいて生成された第１の書き込みパルスwginとシーケンサ２００から入力された第２の書き込みパルスseq_wginの何れかを選択し、選択した書き込みパルスに基づいて第３の書き込みパルスblk_wginを生成してレジスタ４０１の現在の書き込み対象のレジスタに設定データを書き込む。本実施形態における切り替え回路４０３は、第１の書き込みパルスwginと第２の書き込みパルスseq_wginの何れか一方のみが入力された場合には、入力されたほうの書き込みパルスに基づく第３の書き込みパルスblk_wginに従って、レジスタ４０１の現在の書き込み対象のレジスタに選択された書き込みパルスに対応した設定データを書き込む。一方、第１の書き込みパルスwginと第２の書き込みパルスseq_wginの両方が同時に入力された場合に、切り替え回路４０３は、まず、第１の書き込みパルスwginに基づく第３の書き込みパルスblk_wginを生成してレジスタ４０１の現在の書き込み対象のレジスタにＣＰＵ１００からの設定データを書き込んだ後、第２の書き込みパルスseq_wginに基づく第３の書き込みパルスblk_wginを生成してレジスタ４０１の現在の書き込み対象のレジスタにシーケンサ２００からの設定データを書き込む。
【００２８】
図２は、切り替え回路４０３の一例としての構成を示す図である。図２に示す切り替え回路４０３は、フリップフロップ（ＦＦ）４０３１、４０３２と、セレクタ４０３３と、論理和回路４０３４とを有している。
【００２９】
ＦＦ４０３１は、セット端子Setとリセット端子Rstとを有している。セット端子Setには書き込みパルス生成回路４０２で生成された第１の書き込みパルスwginが入力される。また、リセット端子Rstには書き込み完了パルス生成回路４０４において生成される書き込み完了パルスwg_valid（詳細は後述する）が入力される。このＦＦ４０３１は、クロックCLK_BLKに同期して第１の書き込みパルスwginの取り込みを行うとともに、それまで保持していた第１の書き込みパルスwginを信号wgin_dlyとして出力する。即ち、信号wgin_dlyは第１の書き込みパルスwginに対して１クロック遅れた信号となる。また、ＦＦ４０３１は、書き込み完了パルスwg_validが入力されることにより、それまで保持していた値をリセットする。
【００３０】
ＦＦ４０３２は、クロックCLK_BLKに同期して第２の書き込みパルスseq_wginの取り込みを行うとともに、それまで保持していた第２の書き込みパルスseq_wginを信号seq_wgin_dlyとして出力する。即ち、信号seq_wgin_dlyは第２の書き込みパルスseq_wginに対して１クロック遅れた信号となる。
【００３１】
セレクタ４０３３は、第２の書き込みパルスseq_wginと信号seq_wgin_dlyが入力され、信号wgin_dlyの値に応じて何れかを出力する。即ち、セレクタ４０３３は、信号wgin_dlyがローレベルである、即ち第１の書き込みパルスwginが入力されていない間は第２の書き込みパルスseq_wginを出力し、信号wgin_dlyがハイレベルとなったときに信号seq_wgin_dlyを出力する。
【００３２】
論理和回路４０３４は、第１の書き込みパルスwginとセレクタ４０３３の出力の何れかが入力された場合に第３の書き込みパルスblk_wginを出力する。
【００３３】
書き込み完了パルス生成回路４０４は、第１の書き込みパルスwginの入力を受けて書き込み完了パルスを生成し、この書き込み完了パルスからＣＰＵ１００がレジスタ書き込みの完了を認識するための信号である完了通知信号を発行する。
【００３４】
ここで、第１の書き込みパルスwginはクロックCLK_BLKに同期した信号であり、これに応じて生成される書き込み完了パルスもクロックCLK_BLKに同期したものとなる。したがって、完了通知信号をクロックCLK_CPUに同期した信号とするために、書き込み完了パルス生成回路４０４は、第１の書き込みパルスwginからクロックCLK_BLKに同期した書き込み完了パルスwg_validを生成し、この書き込み完了パルスwg_validからクロックCLK_CPUに同期した書き込み完了パルスcpu_validを生成する。そして、書き込み完了パルス生成回路４０４は、書き込み完了パルスcpu_validからクロックCLK_CPUに同期した完了通知信号WAITをＣＰＵ１００に対して発行する。
【００３５】
図１に示した画像処理装置の動作について図３を参照して説明する。なお、図３はＣＰＵ１００によるレジスタ書き込みのプロトコルにハンドシェークプロトコルを用いた場合の例を示している。
【００３６】
図３に示すように、本実施形態におけるシーケンサ２００は、ＣＰＵ１００の動作とは独立した任意のタイミングで処理ブロック４００、５００、６００へのレジスタ書き込みを行うべく、第２の書き込みパルスseq_wginを発行する。例えば処理ブロック４００、５００、６００の順でレジスタ書き込みを行う場合、シーケンサ２００からの第２の書き込みパルスseq_wginはまず処理ブロック４００の切り替え回路４０３に入力される。このとき、切り替え回路４０３において第２の書き込みパルスseq_wginに基づく第３の書き込みパルスblk_wginが生成され、この第３の書き込みパルスblk_wginに従ってレジスタ４０１の現在の書き込み対象のレジスタにシーケンサ２００からの設定データが書き込まれる。レジスタ４０１への第３の書き込みパルスblk_wginに従った設定データの書き込み後、シーケンサ２００からの第２の書き込みパルスseq_wginは処理ブロック５００の切り替え回路５０３に入力され、レジスタ５０１への第３の書き込みパルスblk_wginに従った設定データの書き込み後、シーケンサ２００からの第２の書き込みパルスseq_wginは処理ブロック６００の切り替え回路６０３に入力される。
【００３７】
一方、ＣＰＵ１００が何れかの処理ブロック（例えば処理ブロック６００とする）のレジスタへの書き込みを行う場合、ＣＰＵ１００において、レジスタ６０１内の書き込み対象のレジスタのアドレスを示すレジスタアドレスADDが発行される。その後、処理ブロック４００、５００、６００に対して処理ブロック６００を選択する旨を示すチップセレクト信号CS_Xとレジスタライト信号WE_X、及び書き込むべきデータを示すライトデータ信号が発行される。処理ブロック４００、５００、６００の書き込みパルス生成回路４０２、５０２、６０２では、チップセレクト信号CS_Xとレジスタライト信号WE_Xに基づいて書き込みパルスcpu_wginが生成され、この書き込みパルスcpu_wginから第１の書き込みパルスwginが生成される。このとき、切り替え回路４０３、５０３、６０３において第１の書き込みパルスwginと第２の書き込みパルスseq_wginとが入力される可能性がある。この場合、第１の書き込みパルスwginに基づく第３の書き込みパルスblk_wginが生成され、この第３の書き込みパルスblk_wginに従ってレジスタ６０１内のＣＰＵ１００による書き込み対象のレジスタにＣＰＵ１００からの設定データが書き込まれる。そして、第１の書き込みパルスwginに基づく第３の書き込みパルスblk_wginが生成された１クロック後に、第２の書き込みパルスseq_wginに基づく第３の書き込みパルスblk_wginが生成され、この第３の書き込みパルスblk_wginに従ってシーケンサ２００による現在のレジスタ書き込みの対象となっている処理ブロック内のレジスタにシーケンサ２００からの設定データが書き込まれる。このようにして、ＣＰＵ１００とシーケンサ２００との間のレジスタ書き込みの競合が防止される。
【００３８】
第１の書き込みパルスwginに基づく第３の書き込みパルスblk_wginがレジスタ６０１に書き込まれた後、書き込み完了パルス生成回路６０４において書き込み完了パルスwg_validが生成され、この書き込み完了パルスwg_validに基づいて書き込み完了パルスcpu_validが生成される。そして、書き込み完了パルス生成回路６０４において、書き込み完了パルスcpu_validに基づいて完了通知信号WAITが発行され、この完了通知信号WAITがＣＰＵ１００に入力されることでＣＰＵ１００はレジスタ書き込みの完了を認識する。
【００３９】
以上説明した図３のようなプロトコルに従ってレジスタの書き込みを行うことにより、シーケンサ２００は、ＣＰＵ１００が実際にレジスタ書き込みを行っているタイミングである第１の書き込みパルスwginが生成されてから書き込み完了パルスwg_validが生成されるまでの期間を除いてレジスタ書き込みを行うことが可能である。即ち、本実施形態では、書き込みパルスcpu_wginから第１の書き込みパルスwginを生成する間のクロック乗り換え期間と書き込み完了パルスwg_validから書き込み完了パルスcpu_validを生成する間のクロック乗り換え期間の間にシーケンサ２００によるレジスタ書き込みを行えるようにすることで、シーケンサ２００の処理時間を短縮することが可能である。また、クロック乗り換え期間中においてもシーケンサ２００によるレジスタ書き込みを行えるようにすることで、ＣＰＵ１００によるレジスタ書き込みとシーケンサ２００によるレジスタ書き込みとが競合する可能性がある。しかしながら、本実施形態では、ＣＰＵ１００からの書き込みパルスとシーケンサ２００からの書き込みパルスとが競合した場合には、切り替え替え回路によってＣＰＵ１００によるレジスタ書き込みの直後（１クロック後）にシーケンサ２００からの書き込みパルスを有効とすることが可能である。したがって、シーケンサ２００の処理時間が大幅に延びることはない。
【００４０】
図４は、従来の技術による処理と本実施形態の技術による処理とを比較して示した図である。例えば従来の技術では、ＣＰＵ１００から処理ブロック６００へのレジスタ書き込みが連続して実施されている場合に、シーケンサ２００は、図４（ａ）に示すように、ＣＰＵ１００による処理ブロック６００へのレジスタ書き込みが完了するまで（最後の書き込みレジスタに対する完了通知信号WAITが発行されるまで）、処理ブロック５００及び６００のレジスタ書き込みを行うことはできない。
【００４１】
これに対し、本実施形態の技術では、ＣＰＵ１００から処理ブロック６００へのレジスタ書き込みが連続して実施されていても、図４（ｂ）に示すように、シーケンサ２００は、ＣＰＵ１００からの処理ブロックへの書き込みパルスwginが発生している時以外は処理ブロック５００及び６００のレジスタ書き込みが可能である。
【００４２】
以上実施形態に基づいて本発明を説明したが、本発明は上述した実施形態に限定されるものではなく、本発明の要旨の範囲内で種々の変形や応用が可能なことは勿論である。例えば上述の実施形態はＣＰＵ１００と処理ブロック４００〜６００が異なるクロックドメインである例を示している。しかしながら、これらが同一のクロックドメインであっても良い。また、上述の実施形態はＣＰＵ１００によるレジスタ書き込みのプロトコルにハンドシェークプロトコルを用いた場合の例を示している。しかしながら、上述した実施形態はＣＰＵ１００が所定の固定期間毎にレジスタ書き込み可能となるような固定ウェイトプロトコルの場合であっても適用可能である。
【００４３】
さらに、上記した実施形態には種々の段階の発明が含まれており、開示される複数の構成要件の適当な組合せにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、上述したような課題を解決でき、上述したような効果が得られる場合には、この構成要件が削除された構成も発明として抽出され得る。
【符号の説明】
【００４４】
１００…ＣＰＵ、２００…シーケンサ、３００…ＣＰＵバス、４００，５００，６００…処理ブロック、４０１，５０１，６０１…レジスタ、４０２，５０２，６０２…書き込みパルス生成回路、４０３，５０３，６０３…切り替え回路、４０４，５０４，６０４…書き込み完了パルス生成回路
【図１】
0005489871.tif 000002
【図２】
0005489871.tif 000003
【図３】
0005489871.tif 000004
【図４】
0005489871.tif 000005
【図５】
0005489871.tif 000006