(57)【要約】【課題】システムの柔軟性を失うことなく、ハードウェアの機能ブロックの連携処理を高速に実行できるようにすること。【解決手段】第二の機能ブロックにダブルバッファ回路が設けられ、領域指定データがダブルバッファリングされて、領域指定データに係る当該第二の機能ブロックの情報処理が自動的に開始される。そして、カウント回路のカウントアップがカウントダウンの回数よりも少なくとも一回多いことがカウンタ回路のカウント値により示される間、すなわち、第一の機能ブロックよりシステムメモリへのデータの書き込みが、システムメモリから第二の機能ブロックへのデータの取得よりも少なくとも一回多いことがカウンタ値に示される間のみしか、かかる自動の処理開始はされないようにしてあり、これによってオーバランを回避して連携処理を実現させる。【選択図】図１
2008112283.tif 000002
【特許請求の範囲】
【請求項１】
システムメモリと、
前記システムメモリからデータを取得し、取得されたデータに基づいて情報処理を行なって、当該情報処理の結果の出力データを前記システムメモリへ書き込む、ハードウェアによる第一および第二の機能ブロックと、
前記システムメモリ上の入力領域および出力領域を指定する領域指定データを前記各機能ブロックへそれぞれ供給して、供給する当該領域指定データの前記入力領域から前記データの取得を、前記出力領域へ前記データの書き込みを前記各機能ブロックにそれぞれさせて前記各機能ブロックを動作させ、前記第一の機能ブロックに供給する前記領域指定データの前記出力領域を、前記第二の機能ブロックに供給する前記領域指定データの前記入力領域とさせる制御コンピュータと、
前記第二の機能ブロックに設けられ、前記制御コンピュータから当該第二の機能ブロックに供給される前記領域指定データをダブルバッファリングして、バッファリングする一の領域指定データに係る当該第二の機能ブロックの処理が完了するたびに、予め前記制御コンピュータから取得してバッファリングした次の領域指定データに基づいて当該第二の機能ブロックが次に行なうべき処理を実行開始させるダブルバッファ回路と、
前記第一の機能ブロックから、当該第一の機能ブロックより前記システムメモリへの前記結果の出力データの書き込みを示す信号を取得して、カウントアップすると共に、前記第二の機能ブロックから、前記システムメモリから当該第二の機能ブロックへの、前記第一の機能ブロックの前記出力データの取得を示す信号を取得して、カウントダウンを行なうカウンタ回路と、
前記カウントアップが前記カウントダウンの回数よりも少なくとも一回多いことを前記カウンタ回路のカウント値が示す間のみ、前記第二の機能ブロックに前記領域指定データに基づく前記処理をさせる実行制御回路とを備える情報処理回路。
【請求項２】
前記制御コンピュータが前記第二の機能ブロックへ供給する領域指定データの指定する前記入力領域は複数の部分領域からなり、
前記第二の機能ブロックは、複数のチャネルを備え、当該複数のチャネルにより、前記各部分領域のデータを異なるタイミングで前記システムメモリから取得して、取得の度に前記カウンタ回路へ取得を示す信号をそれぞれ出力し、
前記カウンタ回路は、前記制御コンピュータから、当該制御コンピュータが前記第二の機能ブロックへ供給する前記領域指定データの前記部分領域の個数を取得して、取得された個数分だけ前記第二の機能ブロックから前記取得を示す信号が取得された場合に、当該カウンタ回路をカウントダウンさせるカウントダウン制御回路を備える請求項１記載の情報処理回路。
【請求項３】
前記第一の機能ブロックは複数であり、
前記制御コンピュータは、当該複数の第一の機能ブロックのうち一の前記第一の機能ブロックを指定する機能ブロック選択信号を前記カウンタ回路へ入力すると共に、当該機能ブロック選択信号により指定する前記第一の機能ブロックへの前記領域指定データの前記出力領域と、前記第二の機能ブロックへの前記領域指定データの前記入力領域とを同じにさせ、
前記カウンタ回路は、前記機能ブロック選択信号が指定する第一の機能ブロックからの前記データの書き込みを示す信号が取得された場合に、カウントアップを行なう請求項１記載の情報処理回路。
【請求項４】
前記制御コンピュータから領域指定データを供給される第三の前記機能ブロックと、
当該第三の機能ブロックに設けられ、前記制御コンピュータから当該第三の機能ブロックに供給される前記領域指定データをダブルバッファリングして、バッファリングする一の領域指定データに係る当該機能ブロックの処理が完了するたびに、予め前記制御コンピュータから取得してバッファリングされた次の領域指定データに基づいて当該第三の機能ブロックが次に行なうべき処理を実行させる第二のダブルバッファ回路とを備え、
前記制御コンピュータは、前記第二の機能ブロックへ供給する前記領域指定データの前記出力領域と同じ領域に、当該第三の機能ブロックへ供給する前記領域指定データの前記入力領域をさせ、
前記第二の機能ブロックから前記結果の出力データの書き込みを示す信号を取得してカウントアップすると共に、前記第三の機能ブロックから当該出力データの取得を示す信号を取得してカウントダウンを行なう第二のカウンタ回路と、
前記第二のカウンタ回路の前記カウントアップが当該第二のカウンタ回路の前記カウントダウンの回数よりも少なくとも一回多いことを当該第二のカウンタ回路のカウント値が示す間のみ、前記第三の機能ブロックに、当該機能ブロックに前記制御コンピュータが供給する領域指定データに基づいた前記処理をさせる第二の実行制御回路とを備える請求項１記載の情報処理回路。
【請求項５】
前記第二の機能ブロックと前記ダブルバッファ回路と前記カウンタ回路と前記実行制御回路とは２組あり、
前記第一の機能ブロックへと前記制御コンピュータから供給される前記領域指定データは、２つの前記出力領域を指定するものであり、
前記第一の機能ブロックは、当該２つの出力領域へ、それぞれ、互いに異なった２つのタイミングにて互いに異なった２つのデータを書き込み、かつ、各書き込みに際して、書き込みを示す前記信号を互いに異なった前記カウンタ回路へそれぞれ出力し、
前記制御コンピュータは、前記第一の機能ブロックへの前記領域指定データが指定する前記２つの出力領域を、当該第一の機能ブロックが各出力領域へデータ書き込みをして出力する前記信号の出力先の前記カウンタ回路と同じ組の前記第二の機能ブロックへの前記領域指定データの前記入力領域にさせる請求項１記載の情報処理回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システムメモリと、前記システムメモリからデータを取得し、取得されたデータに基づいて情報処理を行なって、当該情報処理の結果の出力データを前記システムメモリへ書き込む、ハードウェアによる第一および第二の機能ブロックとを備える情報処理回路に関する。
【背景技術】
【０００２】
従来より、ＩＣ上にハードウェアのモジュール（機能ブロック）を構成して情報処理をさせることがある（特許文献１参照）。この場合、ＩＣと共に、ＩＣに対してバスを介して接続させたＲＡＭ（システムメモリ）と、ＣＰＵとを用いる。ＩＣ上の各モジュールは、ＲＡＭから入力データを受け付け、受け付けたデータに基づいて一定の情報処理を行って、処理結果の出力データを、再びＲＡＭへと書き込む。そして、ソフトウェアを実行するＣＰＵが、各機能ブロックに対して、入力データが格納されるＲＡＭ上の記憶領域（以下、入力データ記憶領域）、および、出力データを格納させるＲＡＭ上の記憶領域（以下、出力データ記憶領域）を指定する入出力領域指示をして、ＩＣ上の機能ブロックに行なわせる情報処理の制御を行なう。これにより、ＣＰＵによる制御の下で、情報処理回路（装置）の処理が実行される。
【０００３】
ここで、かかる情報処理回路では、上述の入出力領域指示のデータが、機能ブロック内でダブルバッファリングされ、第一のバッファの入出力領域指示の処理が完了するまでの間に、他方の第二のバッファへＣＰＵから新しい入出力領域指示が予め格納され、機能ブロックがはじめの入出力領域指示の処理を完了した場合には、即座に自動的に、予め格納された次の新しい入出力領域指示に基づいて当該指示に応じた処理が開始されて、処理の高速化が図られることがある。
【０００４】
また、かかる情報処理回路では、前段モジュールがＲＡＭへ書き出した出力データを、中間データとして、後段のモジュールが読み出して、自己の入力データとして、かかる中間データに基づいて情報処理を行って、最終的な処理結果のデータをＲＡＭへ書き込む、という複数モジュールによる連携処理がされることがある。
【０００５】
かかる連携処理が行なわれる場合には、前段モジュールによるＲＡＭへの中間データの書き出しよりも、後段モジュールによるＲＡＭからの中間データの読み出しが遅くなければならない。このため、書き込みを終えた前段モジュールが発生する割り込み信号がＣＰＵに取得され、ＣＰＵが一旦それまで実行中の処理を中断させた後に、割り込みに応じて後段モジュールへ入出力領域指示を入力して、後段モジュールの実行開始タイミングを適切な遅いタイミングにするようにしていた。
【０００６】
かかる制御を行なわなければ、前段モジュールによる書き込みがまだされていない記憶領域から、無意味なデータを後段モジュールが読み出して、不適切な処理を実行してしまうことになる（いわゆるオーバラン）。
【特許文献１】特願２００５−１６０４９７号
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、かかる従来の複数モジュールの連携処理においては、書き込みを終えた前段モジュールが発生する割り込み信号に応じてＣＰＵが処理を行なって後段モジュールを起動させるまでの時間の分だけ、後段モジュールの処理の実行開始が遅延してしまう。
【０００８】
ここで、上述のダブルバッファリングにより、自動的に、ダブルバッファに予めバッファリングさせた入出力領域指示に基づいて処理を後段モジュールが自動的に実行開始するようにさせれば、前段モジュールの処理が後段モジュールの上記自動的な実行開始時より早く完了している限り、完了によりＲＡＭに書き込まれた中間データを後段モジュールは取得して適切に処理を実行開始させることができるが、かかる場合ではなく、前段モジュールからの中間データの書き込みが遅くなってしまった場合には、後段モジュールの処理実行が上述のオーバランとなってしまう。
【０００９】
したがって、連携処理の場合、前段モジュールの処理が短く、早いタイミングで書き込みが完了するなどの稀な場合でないと、自動的に後段モジュールが処理を実行開始する上述のダブルバッファリング処理により、処理の高速化を図ることはできない。
【００１０】
ここで、ＣＰＵによる制御ではなく、機能ブロック間の連携処理をハードウェア上に連携処理制御をする専用ハードウェアを設けて行なうことも考えられ、この場合には、上述した割り込み遅延を抑制でき、上述した課題を回避できる。
【００１１】
しかしながら、こうすれば、回路規模が増大するのはもちろん、ＣＰＵにより多様な制御を自由にすることができなくなる。たとえば、専用ハードウェアの構成によって決まる固定的なメモリ領域での固定的な動作モードによる連携処理しかできなくなり、ＣＰＵから自由に、アドレスや動作モードの設定をできなくなって、システムの柔軟性が失われる。つまり、連携動作の制御がハードウェアに担われることにより、ハードウェアとソフトウェアの機能分担のバランスが失われて、これにより、ハードウェアの汎用性や独立性がなくなり、この結果、この種の情報処理回路としての価値が失われてしまう。
【００１２】
本発明は、上記の点に鑑みてなされたものであり、システムの柔軟性を失うことなく、ハードウェアの機能ブロックの連携処理を高速に実行できるようにすることを目的とする。
【課題を解決するための手段】
【００１３】
請求項１記載の発明は、システムメモリと、前記システムメモリからデータを取得し、取得されたデータに基づいて情報処理を行なって、当該情報処理の結果の出力データを前記システムメモリへ書き込む、ハードウェアによる第一および第二の機能ブロックと、前記システムメモリ上の第一および出力領域を指定する領域指定データを前記各機能ブロックへそれぞれ供給して、供給する当該領域指定データの前記入力領域から前記データの取得を、前記出力領域へ前記データの書き込みを前記各機能ブロックにそれぞれさせて前記各機能ブロックを動作させ、前記第一の機能ブロックに供給する前記領域指定データの前記出力領域を、前記第二の機能ブロックに供給する前記領域指定データの前記入力領域とさせる制御コンピュータと、前記第二の機能ブロックに設けられ、前記制御コンピュータから当該第二の機能ブロックに供給される前記領域指定データをダブルバッファリングして、バッファリングする一の領域指定データに係る当該第二の機能ブロックの前記処理が完了するたびに、予め前記制御コンピュータから取得してバッファリングした次の領域指定データに基づいて当該第二の機能ブロックが次に行なうべき処理を実行開始させるダブルバッファ回路と、前記第一の機能ブロックから、当該第一の機能ブロックより前記システムメモリへの前記結果の出力データの書き込みを示す信号を取得して、カウントアップすると共に、前記第二の機能ブロックから、前記システムメモリから当該第二の機能ブロックへの、前記第一の機能ブロックの前記出力データの取得を示す信号を取得して、カウントダウンを行なうカウンタ回路と、前記カウントアップが前記カウントダウンの回数よりも少なくとも一回多いことを前記カウンタ回路のカウント値が示す間のみ、前記第二の機能ブロックに前記領域指定データに基づく前記処理をさせる実行制御回路とを備える情報処理回路である。
【００１４】
この構成であれば、第二の機能ブロックにダブルバッファ回路が設けられ、領域指定データがダブルバッファリングされて、領域指定データに係る当該第二の機能ブロックの処理が自動的に実行開始される。しかし、カウンタ回路のカウントアップがカウントダウンの回数よりも少なくとも一回多いことがカウンタ回路のカウント値により示される間、すなわち、第一の機能ブロックよりシステムメモリへの前記結果の出力データの書き込みが、システムメモリから第二の機能ブロックへの出力データの取得よりも少なくとも一回多いことがカウンタ値に示される間のみしか、かかる自動の処理開始はされないようにしてあり、これによってオーバランが回避されて、連携処理が実現される。
【００１５】
したがって、割り込み信号に応じたソフトウェアによる処理の遅延などがなく、高速に連携処理を行なわせることができる。
【００１６】
しかも、この構成であれば、制御コンピュータは、機能ブロックへ供給する領域指定データにより、多様に、連携処理を制御することができ、システムの柔軟性を損なうことがなく、ハードウェアの汎用性や独立性を確保できる。また、制御コンピュータが制御を行なうのであれば、制御コンピュータに実行させるソフトウェアの書き換えにより、容易に制御内容を変更したり、調整したりできる。
【００１７】
また、この構成であれば、各機能ブロックは、単に、制御コンピュータから供給される領域指定データに応じて、当該データに指定されたデータの読み出しや書き込みを行なうに過ぎず、情報処理回路を簡潔にできる。
【００１８】
なお、「機能ブロック」は、ハードウェアにより構成したモジュールであるものとしてもよい。また、「機能ブロック」は、ＩＰ（Intellectual Property）として用いられるものであってもよい。
【００１９】
制御コンピュータは、前記第一の機能ブロックに供給する前記領域指定データの前記出力領域の全部を、前記第二の機能ブロックに供給する前記領域指定データの前記入力領域にするものとしてもよいし、一部のみを、前記第二の機能ブロックに供給する前記領域指定データの前記入力領域にするものとしてもよいし、両者の場合を切り替えるものとしてもよい。
【００２０】
請求項２記載の発明は、前記制御コンピュータが前記第二の機能ブロックへ供給する領域指定データの指定する前記入力領域は複数の部分領域からなり、前記第二の機能ブロックは、複数のチャネルを備え、当該複数のチャネルにより、前記各部分領域のデータを異なるタイミングで前記システムメモリから取得して、取得の度に前記カウンタ回路へ取得を示す信号をそれぞれ出力し、前記カウンタ回路は、前記制御コンピュータから、当該制御コンピュータが前記第二の機能ブロックへ供給する前記領域指定データの前記部分領域の個数を取得して、取得された個数分だけ前記第二の機能ブロックから前記取得を示す信号が取得された場合に、当該カウンタ回路をカウントダウンさせるカウントダウン制御回路を備える請求項１記載の情報処理回路である。
【００２１】
この構成によれば、制御コンピュータが第二の機能ブロックへ供給する領域指定データの部分領域の個数分だけ前記第二の機能ブロックから前記取得を示す信号がカウントダウン制御回路に取得された場合に前記カウンタ回路のカウントダウンがされ、前記カウンタ回路のカウントダウンを適切に行なうことができる。
【００２２】
請求項３記載の発明は、前記第一の機能ブロックは複数であり、前記制御コンピュータは、当該複数の第一の機能ブロックのうち一の前記第一の機能ブロックを指定する機能ブロック選択信号を前記カウンタ回路へ入力すると共に、当該機能ブロック選択信号により指定する前記第一の機能ブロックへの前記領域指定データの前記出力領域と、前記第二の機能ブロックへの前記領域指定データの前記入力領域とを同じにさせ、前記カウンタ回路は、前記機能ブロック選択信号が指定する第一の機能ブロックからの前記データの書き込みを示す信号が取得された場合に、カウントアップを行なう請求項１記載の情報処理回路である。
【００２３】
この構成であれば、制御コンピュータは、複数の第一の機能ブロックから、機能ブロック選択信号により機能ブロックを選択して、選択した第一の機能ブロックと第二の機能ブロックとの間の連携処理を行なわせることができ、多様な情報処理を情報処理回路に行なわせることができる。
【００２４】
請求項４記載の発明は、前記制御コンピュータから領域指定データを供給される第三の前記機能ブロックと、当該第三の機能ブロックに設けられ、前記制御コンピュータから当該第三の機能ブロックに供給される前記領域指定データをダブルバッファリングして、バッファリングする一の領域指定データに係る当該機能ブロックの処理が完了するたびに、予め前記制御コンピュータから取得してバッファリングされた次の領域指定データに基づいて当該第三の機能ブロックが次に行なうべき処理を実行させる第二のダブルバッファ回路とを備え、前記制御コンピュータは、前記第二の機能ブロックへ供給する前記領域指定データの前記出力領域と同じ領域に、当該第三の機能ブロックへ供給する前記領域指定データの前記入力領域をさせ、前記第二の機能ブロックから前記結果の出力データの書き込みを示す信号を取得してカウントアップすると共に、前記第三の機能ブロックから当該出力データの取得を示す信号を取得してカウントダウンを行なう第二のカウンタ回路と、前記第二のカウンタ回路の前記カウントアップが当該第二のカウンタ回路の前記カウントダウンの回数よりも少なくとも一回多いことを当該第二のカウンタ回路のカウント値が示す間のみ、前記第三の機能ブロックに、当該機能ブロックに前記制御コンピュータが供給する領域指定データに基づいた前記処理をさせる第二の実行制御回路とを備える請求項１記載の情報処理回路である。
【００２５】
この構成であれば、第一の機能ブロックと第二の機能ブロックに連携処理をさせると共に、さらに、この第二の機能ブロックと、第三の機能ブロックに連携処理をさせることができる。
【００２６】
請求項５記載の発明は、前記第二の機能ブロックと前記ダブルバッファ回路と前記カウンタ回路と前記実行制御回路とは２組あり、前記第一の機能ブロックへと前記制御コンピュータから供給される前記領域指定データは、２つの前記出力領域を指定するものであり、前記第一の機能ブロックは、当該２つの出力領域へ、それぞれ、互いに異なった２つのタイミングにて互いに異なった２つのデータを書き込み、かつ、各書き込みに際して、書き込みを示す前記信号を互いに異なった前記カウンタ回路へそれぞれ出力し、前記制御コンピュータは、前記第一の機能ブロックへの前記領域指定データが指定する前記２つの出力領域を、当該第一の機能ブロックが各出力領域へデータ書き込みをして出力する前記信号の出力先の前記カウンタ回路と同じ組の前記第二の機能ブロックへの前記領域指定データの前記入力領域にさせる請求項１記載の情報処理回路である。
【００２７】
この構成であれば、第一の機能ブロックによるシステムメモリへの２つのデータの各書き込みに際して、書き込みを示す前記信号がそれぞれ前記各カウンタ回路へ第一の機能ブロックから出力されるようにしてあり、前記第一の機能ブロックへの前記領域指定データが指定する前記２つの出力領域が、当該第一の機能ブロックが各出力領域にデータ書き込みをして出力する前記信号の出力先の前記カウンタ回路と同じ組の前記第二の機能ブロックへの前記領域指定データの前記入力領域に前記制御コンピュータによりされて、第一の機能ブロックがシステムメモリへ２つのデータを書き込み、２つの第二の機能ブロックが１つずつ当該データを取得して行なわれる連携処理を、第二の機能ブロックごとに制御して、高速化に実行させることができる。
【発明の効果】
【００２８】
請求項１記載の発明によれば、割り込み信号に応じたソフトウェアによる処理の遅延などがなく、高速に連携処理をさせることができる。しかも、制御コンピュータにより、多様に、連携処理を制御することができ、システムの柔軟性を損なうことがなく、ハードウェアの汎用性や独立性を確保できる。また、簡潔に情報処理回路を構成できる。
【００２９】
請求項２記載の発明によれば、制御コンピュータが第二の機能ブロックへ供給する領域指定データの部分領域の個数分だけ前記第二の機能ブロックから前記取得を示す信号がカウントダウン制御回路に取得された場合に前記カウンタ回路のカウントダウンがされ、前記カウンタ回路のカウントダウンが適切にされる。
【００３０】
請求項３記載の発明によれば、制御コンピュータは、複数の第一の機能ブロックから、機能ブロック選択信号により機能ブロックを選択して、選択した第一の機能ブロックと第二の機能ブロックとの間の連携処理を行なわせることができ、多様な処理を情報処理回路に行なわせることができる。
【００３１】
請求項４記載の発明によれば、第一の機能ブロックと第二の機能ブロックに連携処理をさせると共に、さらに、この第二の機能ブロックと、第三の機能ブロックに連携処理をさせることができる。
【００３２】
請求項５記載の発明によれば、第一の機能ブロックがシステムメモリへ２つのデータを書き込み、２つの第二の機能ブロックが１つずつ当該データを取得して行なわれる連携処理を、第二の機能ブロックごとに制御して、高速に実行させることができる。
【発明を実施するための最良の形態】
【００３３】
以下、本発明の一実施形態に係る情報処理回路１について図面を参照して説明する。
【００３４】
図１は、情報処理回路１を示す全体構成図である。
【００３５】
情報処理回路１は、ＣＰＵ（Central Processing Unit）１００と、ＩＣ（Integrated Circuit）チップ２００と、ＤＩＭＭ（Dual Inline Memory Module）３００と、図略の、これらを接続するバスや信号線などのハードウェア資源によって構成される。
【００３６】
ＤＩＭＭ３００はこの情報処理回路１のシステムメモリであり、メインメモリである。ＤＩＭＭ３００は、ＩＣチップ２００およびＣＰＵ１００から、たとえばテンポラリメモリなどとして用いられる。
【００３７】
ＤＩＭＭ３００は、特許請求の範囲記載の「システムメモリ」の一例である。
【００３８】
ＩＣチップ２００は半導体集積回路である。ＩＣチップ２００には、機能ブロック４００，５００と、これらを接続する予約起動制御回路６００との回路が実現されている。
【００３９】
機能ブロック４００は、特許請求の範囲記載の「第一の機能ブロック」の一例である。また、機能ブロック５００は、特許請求の範囲記載の「第二の機能ブロック」の一例である。
【００４０】
機能ブロック４００，５００は、それぞれ、一定の機能を奏する機能ブロックであり、それぞれの機能を奏するための情報処理を行なうロジック回路を備える。
【００４１】
機能ブロック４００，５００は、いわゆるモジュールであるものとしてもよい。また、いわゆるＩＰ（Intellectual Property）として用いられるものでもよい。
【００４２】
以下では、機能ブロック４００を前段の機能ブロックとして、機能ブロック５００を後段の機能ブロックとして、連携した情報処理をさせることを説明する。
【００４３】
なお、ＩＣチップ２００には、機能ブロック４００，５００以外の構成が設けられていてもよいのは言うまでもなく、機能ブロック４００，５００以外の機能ブロックがあってもよい。
【００４４】
ＣＰＵ１００は、制御信号ないし制御データ等を機能ブロック４００、５００へと入力して、機能ブロック４００，５００および予約起動制御回路６００の動作制御を行なう。ＣＰＵ１００は、図示しないＲＡＭ、ＲＯＭ等と共に、コンピュータとして機能し、機能ブロック４００、５００にそれらが有する情報処理を実行させること等によって、この情報処理回路１に特有の情報処理を実現する。
【００４５】
上述のコンピュータ、または上述のコンピュータの中央演算処理回路たるＣＰＵ１００は、特許請求の範囲記載の「制御コンピュータ」の一例である。
【００４６】
ＣＰＵ１００には、ＨＷ（Hardware：ハードウェア）モジュール制御部１０１が実現される。このＨＷモジュール制御部１０１は、上述のＲＯＭに格納されたＨＷモジュール制御用プログラムがＣＰＵ１００で実行されることによってＣＰＵ１００に実現される。このＨＷモジュール制御部１０１が、機能ブロック４００，５００および予約起動制御回路６００へと制御信号等を送信して、これらの動作制御を行なう。
【００４７】
この情報処理回路１では、上述のＲＯＭに記憶させるＨＷモジュール制御用プログラムの変更のみにより、容易に、実行させる情報処理の変更をさせることができる。
【００４８】
機能ブロック４００，５００は、それぞれ、機能ブロック本体４２０，５２０と、バッファ４１０，５１０とを備える。また、前段の機能ブロック４００は、処理終了信号出力部４３０を備え、後段の機能ブロック５００は、起動制御部５３０を備える。
【００４９】
ただし、図示は省略したが、前段の機能ブロック４００にも起動制御部５３０があるものとしてもよいし、また、後段の機能ブロック５００にも処理終了信号出力部４３０があるものとしてもよい。
【００５０】
バッファ５１０は、特許請求の範囲記載の「ダブルバッファ回路」の一例である。
【００５１】
機能ブロック本体４２０，５２０は、それぞれ、ＤＩＭＭ３００からデータを読み出して機能ブロック本体４２０，５２０へ入力する入力部４２１，５２１と、入力部４２１，５２１が入力するデータに基づき、当該機能ブロック４００，５００に特有の情報処理を行なうアルゴリズムコア４２２，５２２と、アルゴリズムコア４２２，５２２がそれらの情報処理の結果として出力する出力データを、ＤＩＭＭ３００へ書き込む出力部４２３，５２３とを備える。
【００５２】
アルゴリズムコア４２２，５２２が行なう上記情報処理とは、たとえば、画像のデータ形式を変換したり、色調などを変化させたり、画像のいわゆるサムネイルを作成したりといった画像処理であり、あるいは、データ圧縮ないし解凍する処理などである。
【００５３】
入力部４２１，５２１および出力部４２３，５２３は、たとえばＤＭＡ（Direct Memory Access）によりデータの転送を行なうものであってもよい。
【００５４】
バッファ４１０，５１０は、それぞれ、入出力領域指定データをバッファリングするバッファであり、少なくとも、後段機能ブロック５００のバッファ５１０の方は、ダブルバッファリングを行なうダブルバッファとして構成されている。
【００５５】
図２は、入出力領域指定データ７００のデータ構成の一例を示す図である。
【００５６】
この実施形態における入出力領域指定データは、特許請求の範囲記載の「領域指定データ」の一例である。
【００５７】
図示するように、入出力領域指定データ７００は、入力領域指定データ７０１と、出力領域指定データ７０２とを備える。
【００５８】
入力領域指定データ７０１および出力領域指定データ７０２は、それぞれ、ＤＩＭＭ３００上の一定の記憶領域を特定する領域特定データである。前述の入力部５２１（および入力部４２１）は、バッファ５１０（バッファ４１０）に記憶された入出力領域指定データ７００の、入力領域指定データ７０１が特定するＤＩＭＭ３００の記憶領域からデータを取得し、また、出力部５２３（および出力部４２３）は、同じくバッファ５１０（バッファ４１０）に記憶された入出力領域指定データ７００の、入力領域指定データ７０１が特定するＤＩＭＭ３００の記憶領域からデータを取得する。
【００５９】
ＣＰＵ１００が入力領域指定データによって機能ブロック４００，５００に指定するＤＩＭＭ３００上の領域は、特許請求の範囲記載の「入力領域」の一例であり、また、ＣＰＵ１００が出力領域指定データによって指定するＤＩＭＭ３００上の領域は、特許請求の範囲記載の「出力領域」の一例である。
【００６０】
これにより、機能ブロック本体４２０，５２０は、それぞれ、バッファ４１０，５１０に格納された入出力領域指定データにおける入力領域指定データ７０１および出力領域指定データ７０２に基づいて、アルゴリズムコア４２２，５２２が一定の情報処理を実行することとなる。後述のように、バッファ４１０，５１０にはそれぞれＨＷモジュール制御部１０１（図１）から、次々に、多数の入出力領域指定データ７００が供給され、機能ブロック本体４２０，５２０は、入出力領域指定データ７００ごとに処理を順次、実行する。
【００６１】
以下、機能ブロック４００または５００が、ある入出力領域指定データ７００に基づいて、その入力領域指定データ７０１が示す入力領域からデータを取得すると共に、取得されたデータに基づきアルゴリズムコア４２２または５２２が情報処理を行って、結果データを、その入出力領域指定データ７００が示す出力領域へと書き込む処理を、当該入出力領域指定データ７００に係る機能ブロック４００または５００の処理と呼ぶこととする。機能ブロック４００，５００は、それぞれ、ＨＷモジュール制御部１０１から、複数の入出力領域指定データ７００の供給を受けて、供給される入出力領域指定データ７００に係る処理を、順次、実行する。ＨＷモジュール制御部１０１は、機能ブロック４００，５００にそれぞれ入出力領域指定データ７００を順次、供給して、この情報処理回路１の動作を制御する。
【００６２】
図２に示した、入力領域指定データ７０１および出力領域指定データ７０２は、基準のアドレス（ａｄｒ）と、領域の幅（Ｈ）、高さ（Ｖ）によって、データ領域を指定するデータである。なお、入力領域指定データ７０１および出力領域指定データ７０２はかかる構成のものに限定されることはない。
【００６３】
次に、図１に戻って、後段の機能ブロック５００に構成されるダブルバッファ５１０は、ＨＷモジュール制御部１０１から供給される入出力領域指定データ７００（図２）をダブルバッファリングする。この結果、バッファ５１０は、機能ブロック５００が現在、実行中の処理に係る入出力領域指定データ７００を保持すると共に、その処理が完了するまでの間に、次に機能ブロック５００が実行すべき処理の入出力領域指定データ７００の供給を予めＨＷモジュール制御部１０１から受けて、機能ブロック５００内に確保しておく。このように予め次の入出力領域指定データ７００を確保しておくことで、バッファ５１０は、機能ブロック本体５２０が現在の処理を完了すると、即座に、自動的に、予め確保する次の入出力領域指定データ７００の入力領域指定データ７０１および出力領域指定データ７０２（図２）を機能ブロック本体５２０へと与えて次の処理を機能ブロック本体５２０に開始させる。
【００６４】
なお、ダブルバッファ５１０には、上述したような処理を実現するための制御回路が含まれているものとする。
【００６５】
ＨＷモジュール制御部１０１は十分に早い速度で、次々に、ダブルバッファ５１０へと入出力領域指定データを供給し、通常は、機能ブロック本体５２０は、ある処理と次の処理との間に、停止している期間がない。
【００６６】
なお、バッファ５１０は、バッファを２つのみ設けた上述のようなダブルバッファとしてもよいが、さらにバッファを多数、設けて、いわゆるリングバッファとして構成するものとしてもよい。
【００６７】
特許請求の範囲記載の「ダブルバッファ回路」は、リングバッファ（ＦＩＦＯ（First In First Out）バッファ、キュー、ないし待ち行列）が有する先頭およびその次の２つのバッファにより構成されるものとしてもよい。
【００６８】
前段の機能ブロック４００のバッファ４１０については、１つのバッファのみを備える通常のバッファにしてもよいが、上述したような、後段の機能ブロック５００のバッファ５１０と同様のダブルバッファないしリングバッファとして構成するものとしてもよい。
【００６９】
ＨＷモジュール制御部１０１は、機能ブロック４００，５００に上述の連携処理をさせる場合、前段の機能ブロック４００の出力部４２３の出力データが、後段の機能ブロック５００の入力部５２１の入力データとなるように、前段の機能ブロック４００へ供給する入出力領域指定データ７００の入力領域指定データ７０１を、後段の機能ブロック５００へ供給する入出力領域指定データ７００の出力領域指定データ７０２と同じにさせる。
【００７０】
このようにして、ＨＷモジュール制御部１０１は、ＤＩＭＭ３００上のある記憶領域をテンポラリメモリ領域として前段の機能ブロック４００および後段の機能ブロック５００に用いさせて、前段の機能ブロック４００の処理結果に基づいて後段の機能ブロック５００の処理をさせる連携処理を機能ブロック４００，５００に行なわせる。
【００７１】
以下、かかる連携処理がされる場合において、前段の機能ブロック４００がＤＩＭＭ３００から読み出すデータを原初データ３０１と呼ぶ（図１）。また、原初データ３０１に基づく処理を行なって前段の機能ブロック４００がＤＩＭＭ３００へ書き出し、書き出されたものが後段の機能ブロック５００により読み出されるデータを中間データ３０２と呼ぶ。また、この中間データ３０２に基づいて後段の機能ブロック５００が処理を行なって、ＤＩＭ３００へ最終的に書き出すデータを最終結果データ３０３と呼ぶ。
【００７２】
連携処理がされる場合、前段機能ブロック４００がＤＩＭＭ３００に中間データ３０２を書き込む前に、後段機能ブロック５００がＤＩＭＭ３００から中間データ３０２を読み出そうとすると、中間データ３０２の受け渡しがされるＤＩＭＭ３００上のテンポラリメモリ領域から無意味なデータが、誤った中間データ３０２として、後段機能ブロック５００へ読み出され、後段機能ブロック５００が不適切な処理を行なってしまい、この結果、最終結果データ３０３も不適切なものが後段機能ブロック５００によりＤＩＭＭ３００へ書き込まれてしまう。
【００７３】
この情報処理回路１では、かかる不適切な事態（オーバーラン）を回避することができる。
【００７４】
前段の機能ブロック４００は、前述の通り、処理終了信号出力部４３０を備える。
【００７５】
処理終了信号出力部４３０は、前段機能ブロック４００が、ある１つの入出力領域指定データ７００（図２）に係る処理を終了し、その処理に係るＤＩＭＭ３００へのデータ書き込みを出力部４２３が終えるたびに、ＣＰＵ１００へ割り込み信号を送る。また、この割り込み信号と共に、処理終了信号出力部４３０は、出力部４２３がＤＩＭＭ３００へのデータ書き込みを終えると、予約起動制御回路６００へ処理終了信号を出力する。
【００７６】
この情報処理回路１では、予約起動制御回路６００の機能に基づいて、オーバランを回避することと、予約起動制御回路６００の機能を用いずにオーバランを回避することとの、２通りの方法でオーバランを回避することができる。
【００７７】
後者の場合、すなわち、予約起動制御回路６００の機能を用いずにオーバランを回避する場合には、ＨＷモジュール制御部１０１が、上述した処理終了信号出力部４３０が出力する割り込み信号を取得して、一定の処理を行なうことで、オーバランを回避する。
【００７８】
この後者のオーバラン回避技術は、これ単体としては、従来から知られている技術であるが、この情報処理回路１では、かかる技術によるオーバラン回避を行なうことが阻害されない。
【００７９】
図３は、ＨＷモジュール制御部１０１が、割り込み信号に基づいてオーバランを回避させる場合の情報処理回路１の動作を説明する図である。
【００８０】
この図では、情報処理回路１において、前段の機能ブロック４００と後段の機能ブロック５００とが連携処理を行なうに際して、ＨＷモジュール制御部１０１、前段の機能ブロック４００、および後段の機能ブロック５００が、時間経過にともなってどのような処理を行なうかを示している。
【００８１】
タイミングＴａ１は、前段機能ブロック４００が処理を終了して、出力部４２３が中間データ３０２（図１）をＤＩＭＭ３００へ書き込み終えたタイミングを示している。前段の機能ブロック４００は、処理終了信号出力部４３０により、このタイミングＴａ１で、書き込みの終了を示す割り込み信号をＨＷモジュール制御部１０１へ出力する。
【００８２】
一方、このタイミングＴａ１までは、後段機能ブロック５００が中間データ３０２の読み出しを開始すると、オーバランが発生してしまうので、後段機能ブロック５００は、連携処理を行なう後段機能ブロック５００への入出力領域指定データの供給を停止している。
【００８３】
ＨＷモジュール制御部１０１は、タイミングＴａ１で前段機能ブロック４００から割り込み信号を入力された後、それまでに実行中であった処理を中断させるなどの処理を済ませて、しばらく時間が経過した後のタイミングＴａ２で、割り込みに対応する処理を開始し、タイミングＴａ３で後段機能ブロック５００へ入出力領域指定データを出力して、後段機能ブロック５００に中間データ３０２を読み出して、読み出した中間データ３０２に基づく処理をタイミングＴａ４で実行開始させる。
【００８４】
こうして、ＨＷモジュール制御部１０１が、前段機能ブロック４００の処理終了を検知して（タイミングＴａ２）、検知までは、後段機能ブロック５００の処理を一時停止させることで、オーバランが回避される。
【００８５】
ただし、この場合には、タイミングＴａ１〜Ｔａ２における、ＣＰＵ１００の割り込みに対応する処理に長い時間がかかるなどにより、タイミングＴａ１での中間データ３０２の書き込みから、タイミングＴａ４での後段機能ブロック５００の処理開始までに時間がかかってしまう。
【００８６】
もっとも、このようにしてオーバランを回避した場合は、ＨＷモジュール制御部１０１のソフトウェアによる制御で動作制御がされるので、比較的容易に設計変更や調整が可能である利点がある。
【００８７】
この情報処理回路１では、上述のようにＨＷモジュール制御部１０１のソフトウェアによる制御でのオーバラン回避も可能であり、処理の多様性が実現されている。ただし、かかるオーバラン回避ができることは必ずしも必須ではない。
【００８８】
次に、予約起動制御回路６００（図１）の機能を用いてオーバランを回避することについて説明する。この場合には、比較的、迅速に、後段機能ブロック５００の実行開始がされ、上述したような遅延が回避される。
【００８９】
図４は、予約起動制御回路６００の詳細な構成を示す図である。
【００９０】
後段機能ブロック５００は、起動制御部５３０を備える。起動制御部５３０は、予約起動制御回路６００から、後段機能ブロック５００の起動許可信号（図４に示すpreActReady）を取得し、この起動許可信号（preActReady）がオンの場合、すなわち、予約起動制御回路６００が起動許可信号（preActReady）をアサートしている場合のみ、ダブルバッファ５１０に予め確保された次の入出力領域指定データに基づいた処理の自動起動（図１の説明を参照）を機能ブロック５００で行なわせるようにする。
【００９１】
起動制御部５３０は、起動許可信号（preActReady）がアサート状態の場合は、処理の自動起動を機能ブロック５００が行なうことを許容する。起動制御部５３０は、こうして機能ブロック本体５２０が新しい入出力領域指定データに係る処理を開始すると、起動通知信号（図４に示すpreActAccept）を予約起動制御回路６００へ出力する。
【００９２】
なお、機能ブロック５００は、起動制御有効化の設定をすることができ、この設定がオフの場合には、起動許可信号（preActReady）がアサート状態か否かに拘わらず、即座に自動起動を実行させるものとする。機能ブロック５００には、この設定を記憶する設定部を備えるものとする。
【００９３】
図５は、予約起動制御回路６００の入出力信号を示す図である。上述のように、予約起動制御回路６００は、前述の処理終了信号（preActDone）を前段機能ブロック４００から入力されると共に、起動許可信号（preActReady）を後段機能ブロック５００へ出力し、また、この後段機能ブロック５００からは起動通知信号（preActAccept）を入力される。
【００９４】
処理終了信号（preActDone）は、特許請求の範囲記載の「前記システムメモリへの前記結果の出力データの書き込みを示す信号」の一例であり、また、起動通知信号（preActAccept）は、特許請求の範囲記載の「前記システムメモリから当該第二の機能ブロックへの、前記第一の機能ブロックの前記出力データの取得を示す信号」の一例である。
【００９５】
ここで、一例としては、図５に示すように、前後段の機能ブロック４００，５００がそれぞれ予約起動制御回路６００へ入力する処理終了信号（preActDone）および起動通知信号（preActAccept）はパルスであり、もう１つの予約起動制御回路６００が後段機能ブロック５００へ出力する起動許可信号（preActReady）は、許可を示す間は継続的にオンレベルであると共に、不許可を示す間はオフレベルである信号である。
【００９６】
なお、これらの信号について、パルスが出力され、あるいは、起動許可がされる、信号がオンの状態のことをアサート（assert）状態と呼び、逆に、パルスが出力されておらず、あるいは、起動が不許可であり、信号がオフのときの状態のことをネゲート（negate）状態と呼ぶ。
【００９７】
以上のような入出力信号の入出力が、予約起動制御回路６００にはある。
【００９８】
図４に戻って、予約起動制御回路６００が備える構成としては、カウンタ（CNT）回路６１０と、判定回路６２０とがある。ここに、判定回路６２０は、稼動制御レジスタ（ＰＡＭＰ＿ＯＮ）６００Ｒ１と、非ゼロ値判定部６２１とを備える。
【００９９】
カウンタ回路６１０は、特許請求の範囲記載の「カウンタ回路」の一例である。また、判定回路６２０は、特許請求の範囲記載の「実行制御回路」の一例である。なお、カウンタ回路６１０と、処理終了信号出力部４３０および起動制御部５３０の少なくとも一部により特許請求の範囲記載の「カウンタ回路」の一例がなると考えてもよい。
【０１００】
図６は、予約起動制御回路６００が備えるレジスタセット６００Ｒを示す図である。
【０１０１】
予約起動制御回路６００は、図５では図示を省略したが、上述の稼動制御レジスタ（ＰＡＭＰ＿ＯＮ）６００Ｒ１を備える。予約起動制御回路６００は、稼動制御レジスタ（ＰＡＭＰ＿ＯＮ）６００Ｒ１にＨＷモジュール制御部１０１から設定された値に応じて動作する。ＨＷモジュール制御部１０１は、この稼動制御レジスタ（ＰＡＭＰ＿ＯＮ）６００Ｒ１に値を設定して、予約起動制御回路６００の動作を制御する機能を備える。
【０１０２】
稼動制御レジスタ（ＰＡＭＰ＿ＯＮ）６００Ｒ１（ＰＡＭＰ：Pre Activate interModule Protocol；モジュール間の予約起動プロトコル）は、ＨＷモジュール制御部１０１が予約起動制御回路６００を停止させる場合に値を０に設定し、予約起動制御回路６００を稼動させる場合には値を１に設定するレジスタである。ＨＷモジュール制御部１０１は、予約起動制御回路６００を起動する際に、この稼動制御レジスタ６００Ｒ１の値を０から１にさせる。
【０１０３】
カウンタ回路６１０は、上述の処理終了信号（preActDone）および起動通知信号（preActAccept）を取得し、前段機能ブロック４００から処理終了信号（preActDone）が取得されるとカウントアップすると共に、後段機能ブロック５００から起動通知信号（preActAccept）が取得されると、カウントダウンする。そして、このカウンタ回路６１０は、稼動制御レジスタ６００Ｒ１にＨＷモジュール制御部１０１により値１がセットされて、この予約起動制御回路６００が起動され、したがって機能ブロック４００，５００の連携処理が開始されるときに、値が０にリセットされる。
【０１０４】
カウンタ回路６１０のカウント値（計数値）は、連携処理が開始されるときに、ＨＷモジュール制御部１０１により稼動制御レジスタ６００Ｒ１に値１がセットされることをトリガとして、上記のように値０に、クリアされ、これにより、連携処理の開始前に、前段機能ブロック４００および後段機能ブロック５００は、起動通知信号（preActAccept）や処理終了信号（preActDone）のアサートを敢えて抑制する必要がなく、出力しても連携処理が開始された後のクリア後のカウンタ回路６１０の値に関係ないので、出力しても良いようになり、機能ブロック４００，５００の信号出力回路等の構成を簡潔にできる。同様に、予約起動制御回路６００の方も、連携処理開始前にカウンタ回路６１０のカウンタアップやカウントダウンを抑制する回路等を設けなくとも良くなり、その構成を簡潔にできる。なお、稼動制御レジスタ６００Ｒ１のカウント値が0の間は、カウンタ回路６１０は、カウントアップやカウントダウンを行なわないものとしてもよい。
【０１０５】
カウンタ回路６１０は、このように動作することで、次のような値を計数する。
【０１０６】
カウンタ回路６１０は、前段機能ブロック４００の処理終了信号出力部４３０が処理終了信号（preActDone）をアサートしたとき、つまり前段の機能ブロック４００がＤＩＭＭ３００へ中間データ３０２（図１参照）を書き終えたときに、カウントアップをする。したがって、前段の機能ブロック４００にＨＷモジュール制御部１０１により複数の入出力領域指定データが供給され、供給された入出力領域指定データの個数分だけ前段の機能ブロック４００が中間データ３０２ａ〜３０２ｃ（図４）を書き込むと、書き込んだ中間データ（図４中で（Ａ）により図示）の個数分だけ、カウントアップを行なう。
【０１０７】
また、カウンタ回路６１０は、後段の機能ブロック５００が、入出力領域指定データに基づいて、ＤＩＭＭ３００から、そこに書き込まれた中間データ３０２ａ〜３０２ｃを順次、読み出して処理を開始するたびに、起動通知信号（preActAccept）を取得して、カウントダウンを行ない、つまり、後段の機能ブロック５００が読み出した中間データ（図４中において（Ｂ）において図示）の個数分だけ、カウントダウンを行なう。
【０１０８】
そして、かかるカウンタ回路６１０は、上述の通り、機能ブロック４００，５００の連携処理が開始される前に、ＨＷモジュール制御部１０１が稼動制御レジスタ６００Ｒ１に値１を書き込むたときに、カウント値（計数値）が０にリセットされている。
【０１０９】
このため、カウンタ回路６１０のカウント値（計数値）は、前段の機能ブロック４００が出力した中間データ３０２ａ〜３０２ｃ等の個数（図４に示す（Ａ）のデータの個数）から、後段の機能ブロック５００が取得を終えた中間データ３０２ａ等の個数（図４に示す（Ｂ）のデータの個数）を差し引いた値となり、換言すれば、後段の機能ブロック５００による読み出しを待っているＤＩＭＭ３００上の中間データ３０２ｂ〜３０２ｃ等の個数（以下、（Ａ）−（Ｂ）の個数と略称）を計数することとなる。
【０１１０】
非ゼロ値判定部６２１は、カウンタ回路６１０に記憶されたこの（Ａ）−（Ｂ）の個数が１個以上であることを判定する。なお、非ゼロ値判定部６２１は、カウンタ回路６１０が、そのカウント値が必ず正の数である構成の場合には、単に、その値が０ではないことを判定する構成としてもよい。非ゼロ値判定部６２１は、カウンタ回路６１０の出力信号を入力とする、ＡＮＤ素子やＯＲ素子等により構成された論理演算回路として実現できる。
【０１１１】
そして、判定回路６２０は、非ゼロ値判定部６２１が（Ａ）−（Ｂ）の個数が１個以上であることを判定する間、上述の起動許可信号（preActReady）を後段の機能ブロック５００へアサートする。
【０１１２】
このため、後段の機能ブロック５００は、（Ａ）−（Ｂ）の値が１以上である間のみ上述した自動起動を実行する。つまり、ＤＩＭＭ３００上に、前段の機能ブロック４００が書き込みを完了して、かつ、読み出しが後段機能ブロック５００より未だにされていない中間データの個数が１個以上の間のみ、後段機能ブロック５００は自動起動を実行する。
【０１１３】
逆に、前段の機能ブロック４００が書き込みを完了して、かつ、読み出しが後段機能ブロック５００から未だにされていない中間データの個数が０個の場合は、後段の機能ブロック５００は自動起動することはなく、後段機能ブロック５００がオーバランを起こしてしまうことは回避される。
【０１１４】
なお、カウンタ回路６１０が計数することができるカウンタ値の上限はなるべく大きい方が、カウンタ値がその上限を超えて誤動作してしまうことを避けることができるため好ましいが、ただし、上限は、たとえば２や３といった小さな値でもよく、また、１であるものとしてもよい。つまり、カウンタ回路６１０は、（Ａ）−（Ｂ）の個数が０であるか１であるのみかを記憶するものとしてもよい。このようにしても、連携処理の性質上、（Ａ）−（Ｂ）の個数が必ず１以下である場合などには、適切な処理を情報処理回路１に行なわせることができる。
【０１１５】
特許請求の範囲記載の「カウンタ回路」は、カウント値として、２以上の値まで計数できることが好ましいが、０か１かを記憶するに過ぎないものであってもよい。この場合、「カウンタ回路」は、１ビットのレジスタとして構成するものとしてもよい。
【０１１６】
図７は、情報処理回路１における処理の流れを示す図である。
【０１１７】
図示する前段機能ブロック４００の処理（左側のフロー）と、後段機能ブロック５００の処理（右側のフロー）とは、ＨＷモジュール制御部１０１（図１）が入出力領域指定データ７００（図２）をそれぞれの機能ブロックへ入力したときに開始される処理である。各機能ブロック４００，５００は、ＨＷモジュール制御部１０１から入出力領域指定データ７００を入力されると、図示する処理をそれぞれ行なって、その入出力領域指定データに係る自己の処理を実行する。
【０１１８】
ステップＳａ１では、前段機能ブロック４００が、ＨＷモジュール制御部１０１から入出力領域指定データ７００を取得して、これをバッファ４１０（図１）へ格納する。
【０１１９】
ステップＳａ２では、前段機能ブロック４００が、バッファ４１０にステップＳａ１で格納された入出力領域指定データ７００に基づいて、原初データ３０１（図１）を取得し、アルゴリズムコア４２２により情報処理を行なって、中間データ３０２をＤＩＭＭ３００へ書き込む。
【０１２０】
ステップＳａ３では、前段機能ブロック４００は、処理終了信号出力部４３０により、処理終了信号（preActDone）を予約起動制御回路６００へ出力する（図４参照）。
【０１２１】
図７に示す、予約起動制御回路６００の処理（中央のフロー）は、このようにして予約起動制御回路６００に処理終了信号（preActDone）が入力されるか（ステップＳａ３）、または、後段機能ブロック５００から起動通知信号（preActAccept）が入力される場合に開始される（後述の、後段機能ブロック５００の処理フローのステップＳｃ４の説明を参照）。
【０１２２】
ステップＳｂ１では、予約起動制御回路６００のカウンタ回路６１０（図４）が、処理終了信号（preActDone）が前段の機能ブロック４００から入力されたのか（ステップＳｂ１：処理終了）、あるいは、後段の機能ブロック５００から起動通知信号（preActAccept）が入力されたのか（ステップＳｂ１：起動検知）、いずれであるのかを判定する。
【０１２３】
そして、ステップＳｂ２１で、カウンタ回路６１０は、処理終了信号（preActDone）が前段の機能ブロック４００から入力された場合には（ステップＳｂ１：処理終了）、カウントアップを行なう。
【０１２４】
また、ステップＳｂ２２で、カウンタ回路６１０は、起動通知信号（preActAccept）が後段の機能ブロック５００から入力されたのであれば（ステップＳｂ１：起動検知）、カウントダウンを行なう。
【０１２５】
なお、前述の通り、カウンタ回路６１０は、ＨＷモジュール制御部１０１が機能ブロック４００，５００に連携処理をさせ、それぞれへ入出力領域指定データを供給開始する前に、予め、計数するカウント値が０にリセットされている。
【０１２６】
ステップＳｂ３では、非ゼロ値判定部６２１が、カウンタ回路６１０の値が１以上かどうかを判定する。
【０１２７】
ステップＳｂ４１では、ステップＳｂ３での判定により、カウンタ回路６１０の値が１以上と非ゼロ値判定部６２１に判定された場合に（ステップＳｂ３：ＹＥＳ）、判定回路６２０が、出力する起動許可信号（preActReady）を、オン（アサート状態）にさせる。
【０１２８】
他方、ステップＳｂ４２では、ステップＳｂ３での判定により、カウンタ回路６１０の値が１以上ではなく０であると非ゼロ値判定部６２１に判定された場合に（ステップＳｂ３：ＮＯ）、判定回路６２０が、出力する起動許可信号（preActReady）を、オフ（ネゲート状態）にさせる。
【０１２９】
最後に、後段の機能ブロック５００が行なう処理（図７右側のフロー）について説明する。
【０１３０】
ステップＳｃ１では、後段の機能ブロック５００は、ＨＷモジュール制御部１０１から入出力領域指定データを取得し、取得された入出力領域指定データをダブルバッファ５１０へ格納する。
【０１３１】
ステップＳｃ２では、後段の機能ブロック５００は、ダブルバッファ５１０の順番待ちを行なう。ダブルバッファ５１０には、先のステップＳｃ１で入出力領域指定データが格納される前から、機能ブロック本体５２０が現在実行中等の、現在の入出力領域指定データが別途、通常は格納されている。つまり、先のステップＳｃ１でバッファ５１０に新たに格納された入出力領域指定データは、この予め格納されていた現在の入出力領域指定データに対して、次の入出力領域指定データである（図１のダブルバッファ５１０の説明を参照）。ステップＳｃ２で、後段の機能ブロック５００は、予めダブルバッファ５１０に格納されていたこの現在の入出力領域指定データに係る処理が、機能ブロック本体５２０において完了するのを待つ。つまり、先のステップＳｃ１でダブルバッファ５１０に格納された（次の）入出力領域指定データを機能ブロック本体５２０が実行開始できるようになるまで、ステップＳｃ２で、機能ブロック５００は待機する（ステップＳｃ２：ＮＯ）。ダブルバッファ５１０の制御回路には、機能ブロック本体５２０で実行中の処理が完了したことを検知する機能が設けられているものとする。
【０１３２】
ダブルバッファ５１０は、このようなバッファ５１０の順番待ち（ステップＳｃ２：ＮＯ）が終わると、自動的に、ステップＳｃ１に予め取得していた入出力領域指定データの入力領域指定データ７０１および出力領域指定データ７０２（図２）を機能ブロック本体５２０へと与えて次の処理を機能ブロック本体５２０に開始させる（ステップＳｃ２：ＹＥＳ、）。
【０１３３】
ステップＳｃ３では、後段の機能ブロック５００は、前述の起動制御有効化設定がオンか否かを判定する。
【０１３４】
起動制御有効化設定がオンの場合は（ステップＳｃ３：ＮＯ）、ステップＳｃ２〜Ｓｃ３の処理を行なうことなく、即座に、機能ブロック５００は、バッファ５１０から当該入出力領域指定データ（ステップＳｃ１で機能ブロック５００にＨＷモジュール制御部１０１から入力されたもの）の入力領域指定データ７０１および出力領域指定データ７０２を機能ブロック本体５２０へ入力させて、機能ブロック本体５２０に、当該入出力領域指定データに係る処理を開始させる。
【０１３５】
ＨＷモジュール制御部１０１は、後段機能ブロック５００の起動制御有効化設定をオフにした場合は、予約起動制御回路６００の動作に関わらずに自由に後段機能ブロック５００の動作を制御できる（ステップＳｃ３：ＮＯの処理を参照）。
【０１３６】
他方、起動制御有効化設定がオンの場合は（ステップＳｃ３：ＹＥＳ）、機能ブロック５００は、ステップＳｃ３，Ｓｃ４の処理を行なう。
【０１３７】
ステップＳｃ３では、機能ブロック５００の起動制御部５３０が、予約起動制御回路６００が起動許可信号（preActReady）をアサートしているか否かを判定し（図４参照）、アサートしていない場合は、アサートするまで待機する（ステップＳｃ４：ＮＯ）。起動制御部５３０は、予約起動制御回路６００が、ステップＳｂ３：ＹＥＳ、およびステップＳｂ４１の処理を行なって、起動許可信号（preActReady）をアサートを開始すると、ステップＳｃ４でＹＥＳを判定する。
【０１３８】
そして、予約起動制御回路６００が起動許可信号（preActReady）をアサートしており、あるいは、アサートするようになった場合（ステップＳｃ４：ＹＥＳ）、ステップＳｃ５で、起動制御部５３０が起動通知信号（preActAccept）を予約起動制御回路６００へアサートすると共に、ステップＳｃ５で、同じく起動制御部５３０が、ダブルバッファ５１０に格納された現在の入出力領域指定データ（ステップＳｃ１で機能ブロック５００へＨＷモジュール制御部１０１から入力されたもの）の入力領域指定データ７０１および出力領域指定データ７０２（図２）を機能ブロック本体５２０へ入力して、機能ブロック本体７２０に、当該入出力領域指定データに基づく処理を実行開始させる。
【０１３９】
上述のステップＳｃ５の処理により、起動制御部５３０が予約起動制御回路６００へ起動通知信号（preActAccept）を出力すると、予約起動制御回路６００が図７中央のフローの処理を開始し（ステップＳｂ１）、カウンタ回路６１０（図４）のカウンタ値を１減少させると共に（ステップＳｂ１：起動検知、ステップＳｂ２２）、これによりカウンタ値がゼロとなった場合には、起動通知信号（preActAccept）のアサートを中止する（ステップＳｂ３：ＮＯ、ステップＳｂ４２）。
【０１４０】
次に、図８〜１０を参照して、以上のような図７の後段機能ブロック５００の処理（ステップＳｃ１〜Ｓｃ６）における、各ステップの処理のタイミングについて説明する。
【０１４１】
図８は、情報処理回路１で処理が行なわれて、状態が変化するタイミングを示す図である。
【０１４２】
図８において、ＣＬＫとあるのは、情報処理回路１の動作クロックを示している。
【０１４３】
図８（１）において、タイミングＴｂ１〜Ｔｂ２は、前段機能ブロック４００がその処理を終了して、処理終了信号（preActDone）をアサートする期間である。（図７のステップＳａ３）。これによって、タイミングＴｂ２で、処理終了信号（preActDone）を前段機能ブロック４００から入力されたカウンタ（CNT）回路６１０がそのカウント値をカウントアップさせ（ステップＳｂ１：処理終了、ステップＳｂ２１、図８（１））、この結果として、予約起動制御回路６００は、このタイミングＴ２で、起動許可信号（preActReady）をアサートするようになる（ステップＳｂ３：ＮＯ、ステップＳｂ４１、図８（１））。
【０１４４】
この後、タイミングＴｂ３において、ＨＷモジュール制御部１０１から後段機能ブロック５００への入出力領域指定データの入力が行なわれる（図７のステップＳｃ１）。
【０１４５】
このときには、後段機能ブロック５００のバッファ５１０には、先に別の入出力領域指定データが入っていない。
【０１４６】
このため、起動許可信号（preActReady）が先のタイミングＴｂ２以来アサートされていることから、バッファ５１０から入出力領域指定データの入力領域指定データ７０１および出力領域指定データ７０２（図２）が、機能ブロック本体５２０へ、タイミングＴｂ３で入力されて（図７のステップＳｃ２：ＹＥＳ、ステップＳｃ３：ＹＥＳ、ステップＳｃ４：ＹＥＳ）、この結果、タイミングＴｂ４〜Ｔｂ５で起動通知信号（preActAccept）が後段機能ブロック５００から予約起動制御回路６００へ出力されると共に（ステップＳｃ５）、入出力領域指定データに基づいてアルゴリズムコア５２２が処理を開始させる（ステップＳｃ６）。
【０１４７】
図８（１）のようにして、前段機能ブロック４００が処理終了信号（preActDone）をアサートするタイミング（タイミングＴｂ１〜Ｔｂ２）より、後段機能ブロック５００へＨＷモジュール制御部１０１から入出力領域指定データが入力されるタイミング（タイミングＴｂ３）が遅い場合には、このように、情報処理回路１が動作する。
【０１４８】
次に、図８（２）は、上述の図８（１）の場合とは逆に、前段の機能ブロック４００が中間データ３０２をＤＩＭＭ３００へ書き込み終えて処理終了信号（preActDone）をアサートするタイミングが遅く（タイミングＴｃ４１〜Ｔｃ４２）、相対的に、ＤＩＭＭ３００からのデータ読み出しを行なう後段機能ブロック５００に、入出力領域指定データがＨＷモジュール制御部１０１から早く入力される（タイミングＴｃ３）場合について示している。
【０１４９】
この場合には、前段機能ブロック４００がＤＩＭＭ３００へ中間データ３０２を書き込み完了する前、つまりタイミングＴｃ４１より前に、書き込み領域から後段機能ブロック５００がデータを読み出し開始すれば、オーバランが生じる。
【０１５０】
図９は、かかる図８（ｂ）の動作を情報処理回路１が行なう場合における、情報処理回路１の各部が各タイミングで行なう処理を示す図である。
【０１５１】
図９では、図８（２）におけるタイミングＴｃ３〜Ｔｃ４４を含む、その前後を含めたタイミングＴｃ１〜Ｔｃ６において、ＨＷモジュール制御部１０１と、前後段の２つの機能ブロック４００，５００とが各タイミングでどのような動作をするのかを示した。
【０１５２】
図９で示すタイミングＴｃ１〜Ｔｃ２は、ＨＷモジュール制御部１０１が、入出力領域指定データを、後段機能ブロック５００へ出力する処理を行なっている期間であり、後段機能ブロック５００は、ＨＷモジュール制御部１０１がこの期間の処理の結果、出力する入出力領域指定データを、タイミングＴｃ３で取得する（図７のステップＳｃ１）。
【０１５３】
こうして、ＨＷモジュール制御部１０１が入出力領域指定データを後段機能ブロック５００へ入力して、後段機能ブロック５００を起動させる処理タイミングＴｃ３を、図８（２）でも示している。
【０１５４】
ここで、他方の前段機能ブロック４００への入出力領域指定データのＨＷモジュール制御部１０１からの入力は（図７のステップＳａ１）、タイミングＴｃ１（図９）の前に終わっており、前段機能ブロック４００は、図９のハッチング領域で示されているように、タイミングＴｃ１以前から入力された入出力領域指定データに基づく情報処理を行なっている（ステップＳａ２）。この処理は、図９に示されているように、タイミングＴｃ４まで続く。
【０１５５】
後段機能ブロック５００は、タイミングＴｃ３までの間は処理を実行させておらず（図９）、つまり、タイミングＴｃ３で入出力領域指定データが後段機能ブロック５００へ入力されるまでは（図７のステップＳｃ１が実行されるまでの間は）、バッファ５１０は空であり、このため、タイミングＴｃ３で入出力領域指定データが後段機能ブロック５００へ入力されると、図７のステップＳｃ２では、先にバッファ５１０に格納されていた入出力領域指定データに係る処理が終了するのを待機する必要なく、即座に処理がステップＳｃ２以降に移り、かつ、このときには連携処理がされるときのため、ＨＷモジュール制御部１０１は後段機能ブロック５００の起動制御有効化設定をオンにしているので、ステップＳｃ３ではＹＥＳがバッファ５１０で判定され、この結果、タイミングＴｃ３で入出力領域指定データが後段機能ブロック５００へ入力されると（図７のステップＳｃ１）、即座に、後段機能ブロック５００は、ステップＳｃ４まで処理ステップを移す。
【０１５６】
ところが、タイミングＴｃ４で前段機能ブロック４００が処理を終了するまでの間（図９）、カウンタ回路６１０のカウント値は図８に示すように継続して０であり、起動許可信号（preActReady）はネゲート状態である（タイミングＴｃ４２まで）。
【０１５７】
このため、タイミングＴｃ３で入出力域指定データが後段機能ブロック５００へ取得されても（図９）、後段機能ブロック５００はタイミングＴｃ４で前段機能ブロック４００が処理を終了するまで（図９）、待機状態を維持する（図７ステップＳｃ４：ＮＯ）。
【０１５８】
つまり、後段機能ブロック５００は、前段の機能ブロック４００が処理を終了してデータ書き込みを完了し、上述の（Ａ）−（Ｂ）の値が１に変わるタイミングＴｃ４まで、待機状態を維持する（図７ステップＳｃ４：ＮＯ）。
【０１５９】
図９のタイミングＴｃ４は、図８（２）のタイミングＴｃ４１〜Ｔｃ４４を一まとめにして示したタイミングである。
【０１６０】
図８（２）に示すように、このタイミングＴｃ４では、前段機能ブロック４００の処理終了信号出力部４３０が、自己の機能ブロック４００の処理が上述のように終了することから、処理終了信号（preActDone）をアサートさせて、これを予約起動制御回路６００へ出力する（図７のステップＳａ３）。図８（２）のタイミングＴｃ４１〜４２は、この処理終了信号（preActDone）のアサート期間を示している。
【０１６１】
この結果、処理終了信号（preActDone）を受けた予約起動制御回路６００では、タイミングＴｃ４２で（図８（２））、カウンタ（CNT）回路６１０がカウント値をカウントアップさせ（図７のステップＳｂ１：処理終了、ステップＳｂ２１）、これにより、図８（２）に示すようにカウンタ（CNT）回路６１０のカウンタ値が１となり、起動許可信号（preActReady）を予約起動制御回路６００が後段機能ブロック５００へアサート開始する（図８（２）のタイミングＴｃ４２〜、図７のステップＳｂ３：ＹＥＳ、ステップＳｂ４１）。
【０１６２】
これにより、このタイミングＴｃ４２以降、起動許可信号（preActReady）を受けた後段機能ブロック５００は、図９および図８（２）に示した上述のタイミングＴｃ３でＨＷモジュール制御部１０１から取得して（図７のステップＳｃ１）、バッファ５１０へ格納していた入出力領域指定データに基づいて、機能ブロック本体５２０による処理を開始させる（ステップＳｃ４：ＹＥＳ、図９）。
【０１６３】
この結果、このタイミングＴｃ４２の後、タイミングＴｃ４３〜Ｔｃ４４で、後段機能ブロック５００が起動通知信号（preActAccept）を予約起動制御回路６００へアサートさせ（図７のステップＳｃ５）、カウンタ（CNT）回路６１０（図４）がカウント値を１減じさせる（図７のステップＳｂ１：起動検知、ステップＳｂ２２、図８（２）のタイミングＴｃ４４）。
【０１６４】
なお、図９に示したように、かかるタイミングＴｃ４においては、前述の図３で説明した場合と同様に、前段機能ブロック４００は、自己の処理が終了したことを示す割り込み信号をＨＷモジュール制御部１０１へ出力する。この割り込み信号を受けてＨＷモジュール制御部１０１が行なう図９のタイミングＴｃ５〜Ｔｃ６の処理では、ＨＷモジュール制御部１０１は、前段機能ブロック４００の次の動作を決定する処理など、前段機能ブロック４００を含めた情報処理回路１の管理を行なう処理を実行する。
【０１６５】
こうして、ＨＷモジュール制御部１０１が、起動予約（図９のタイミングＴｃ１〜Ｔｃ２）を後段の機能ブロック５００へと行ない、入出力領域指定データを機能ブロック５００のダブルバッファ５１０へ格納させると、予約起動制御回路６００により、前段機能ブロック４００による中間データ３０２（図１）のＤＩＭＭ３００への書き込みが終わるまで（タイミングＴｃ４）、その入出力領域指定データに基づく後段機能ブロック５００の処理が開始されることは抑止されて、予約起動制御回路６００が後段機能ブロック５００の処理開始タイミングをコントロールすることで、オーバランが生じることが回避される。
【０１６６】
ここで、図８および図９の場合には、説明の便宜上から、前後段の機能ブロック４００，５００に１つずつ入出力領域指定データがＣＰＵ１００から与えられて、１つの仕事がされるときについてのみ説明したが、図４でも示していた通り、実際には、ＨＷモジュール制御部１０１は機能ブロック４００と機能ブロック５００とに、それぞれ、複数の入出力領域指定データを与えて、連携処理によって複数の仕事を行なわせ、中間データも、図４の中間データ３０２ａ〜３０２ｃに示したように複数の中間データがＤＩＭＭ３００を介して前段機能ブロック４００から後段機能ブロック５００へと受け渡される。
【０１６７】
以下では、上述の１つの仕事のみの場合（図８〜図９）の説明を踏まえて、複数の仕事が情報処理回路１でされる場合におけるこの情報処理回路１の処理を説明する。
【０１６８】
図１０は、前後段の機能ブロック４００，５００による連携処理により複数の仕事がされる場合の、情報処理回路１各部の動作を示す図である。
【０１６９】
この例では、前段機能ブロック４００へＨＷモジュール制御部１０１から４つの入出力領域指定データが供給されて、仕事１〜４が機能ブロック４００，５００の連携処理により行なわれる場合における、情報処理回路１各部の動作をタイミングＴｄ１〜Ｔｄ９にかけて時間経過に沿って示している。
【０１７０】
図１０において破線で示す、タイミングＴｄ１，Ｔｄ２，Ｔｄ４，Tｄ８は、それぞれ、前段機能ブロック４００が、仕事１〜４に係る自己の処理をそれぞれ終了して、各仕事に係る結果の出力データをＤＩＭＭ３００へ書き込み完了したタイミングを示しており、これらのタイミングでは、それぞれ、図示するように、機能ブロック４００の処理終了信号出力部４３０（図１、図４）により、予約起動制御回路６００へと、処理終了信号（preActDone）がアサートされる（図７のステップＳａ２、Ｓａ３参照）。
【０１７１】
タイミングＴｄ１は、図８（２）におけるタイミングＴｃ４１〜Ｔｄ４２に相当し、仕事１に係る処理を終えた前段機能ブロック４００からの処理終了信号（preActDone）を受けた予約起動制御回路６００において、カウンタ（CNT）回路６１０（図４）がカウント値を１増加させて、０から１にさせる（図７のステップＳｂ１：処理終了、ステップＳｂ２１）。ここで、このタイミングＴｄ１の前には、ＨＷモジュール制御部１０１が、予めカウンタ回路６１０のカウント値を前述の通り０へとリセットしているので、タイミングＴｄ１でカウンタ値を１増加させると、その値は０から１への増加をする。そして、これに伴い、このタイミングＴｄ１では、起動許可信号（preActReady）のアサートが開始される（図８のステップＳｂ３：ＹＥＳ、ステップＳｂ４１）。
【０１７２】
また、タイミングＴｄ２は、図８（２）におけるタイミングＴｃ４３〜Ｔｃ４４に相当し、先のタイミングＴｄ１で起動許可信号（preActReady）がアサート状態となったことを受けて、後段機能ブロック５００が、バッファ５１０から１つ入出力領域指定データを取り出し、そのデータに基づいて仕事１に係る自己の処理を開始させる。この実行開始に伴って、起動通知信号（preActAccept）がアサート状態となり、この結果、カウンタ（CNT）回路６１０のカウント値が１減じられて０になり（図７のステップＳｂ１：起動検知、ステップＳｂ２２）、起動許可信号（preActReady）がネゲートされる（ステップＳｂ３：ＮＯ、ステップＳｂ４２）。
【０１７３】
こうして開始された後段機能ブロック５００の仕事１の処理は、図１０に示すように、タイミングＴｄ５まで続き、タイミングＴｄ５で終了する。この間に、前段機能ブロックが、先のタイミングＴｄ１における仕事１処理の完了に続けて、タイミングＴｄ３で仕事２の処理を完了させ、また、続くタイミングＴｄ４で仕事３の処理を完了させる。
【０１７４】
これにより、タイミングＴｄ３、Ｔｄ４で、それぞれ、カウンタ（CNT）回路６１０のカウント値は、０から１、さらには１から２へとなる（図７のステップＳｂ１：処理終了、ステップＳｂ２１）。
【０１７５】
このようにカウンタ値が増加されることで、タイミングＴｄ３では、カウンタ値が０から１へ変化して、判定回路６２０（図１、図４）が、起動許可信号（preActReady）をアサート状態へと戻す（図８のステップＳｂ３：ＹＥＳ、ステップＳｂ４１）。また、タイミングＴｄ４では、判定回路６２０は、アサート状態へと変化させた起動許可信号（preActReady）を、そのままアサート状態に維持させる（図８のステップＳｂ３：ＹＥＳ、ステップＳｂ４１）。
【０１７６】
この後に、タイミングＴｄ５で、上述のように、後段機能ブロック５００は、仕事１に係る処理を終了する。これにより、後段機能ブロック５００は、予めダブルバッファ５１０に確保された次の仕事２の入出力領域指定データを、新たな「現在の入出力領域指定データ」と特定する（ステップＳｃ２：ＹＥＳ）。そして、このタイミングＴｄ５においては起動許可信号（preActReady）がアサート状態であることに基づき（ステップＳｃ４：ＹＥＳ）、起動制御部５３０が起動通知信号（preActAccept）をアサートさせると共に（ステップＳｃ５）、仕事２に係る処理を機能ブロック本体５２０が開始する（タイミングＴｄ５〜）。
【０１７７】
このタイミングＴｄ５で、起動通知信号（preActAccept）がアサート状態になることで、予約起動制御回路６００は、カウンタ回路６１０のカウント値を、２から１へと減じさせる（図７のステップＳｂ１：起動検知、ステップＳｂ２２）。ただし、カウント値はまだ０より大きいので（ステップＳｂ３：ＹＥＳ）、起動許可信号（preActReady）はそのままアサート状態に維持させる（ステップＳｂ４１）。
【０１７８】
さらに、次のタイミングＴｄ６では、後段機能ブロック５００が、タイミングＴｄ５で開始させた仕事２に係る処理を終了する。これに伴って、後段機能ブロック５００は、予めダブルバッファ５１０に確保してあった次の仕事３の入出力領域指定データを新たに「現在の入出力領域指定データ」と特定する（図７のステップＳｃ２：ＹＥＳ）。そして、このタイミングＴｄ６でも起動許可信号（preActReady）はアサート状態が続いているので、後段機能ブロック５００は即座に終了通知信号（preActDone）をアサートさせると共に（ステップＳｃ４：ＹＥＳ、ステップＳｃ５、図１０）、仕事３に係る処理を機能ブロック本体５２０に開始させる（ステップＳｃ６、タイミングＴｄ６〜）。
【０１７９】
このタイミングＴｄ６では、予約起動制御回路６００は、終了通知信号（preActDone）が後段機能ブロック５００によりアサートされたことに基づき、カウンタ回路６１０のカウント値を１から０へ減じさせることになるので（図１０、図７のステップＳｂ１：起動検知、ステップＳｂ２２）、この結果、このタイミングＴｄ６で、予約起動制御回路６００は、タイミングＴ３から継続してアサートさせてきた起動許可信号（preActReady）を、ネゲート状態に戻す（ステップＳｂ３：ＮＯ、ステップＳｂ４２）。
【０１８０】
この結果、このタイミングＴｄ６で開始された仕事３に係る処理を、後段機能ブロック５００が、つづくタイミングＴｄ７で終了するときには、バッファ５１０には仕事４の入出力領域指定データが格納されているにも関わらず（ステップＳｃ１、Ｓｃ２：ＮＯ）、起動許可信号（preActReady）がネゲート状態に先のタイミングＴｄ６以来なっているので、起動許可信号（preActReady）がアサート状態へ変化するまで、後段機能ブロック５００は、待つことになる（図１０のタイミングＴｄ７〜Ｔｄ８、ステップＳｃ４：ＮＯ）。
【０１８１】
そして、前段機能ブロック４００が、タイミングＴｄ８で仕事４の処理を終えて処理終了信号（preActDone）を出力し（ステップＳａ３）、予約起動制御回路６００が、カウンタ（CNT）回路６１０のカウント値を１増加されると共に、起動許可信号（preActReady）をアサート状態へ変化させると（ステップＳｂ１：処理終了、ステップＳｂ２１、ステップＳｂ３：ＮＯ、ステップＳｂ４１）、ステップＳｃ４で後段機能ブロック５００はＹＥＳを判定して、起動通知信号（preActAccept）をアサートしてカウンタ値を０へ、起動許可信号（preActReady）をネゲート状態へそれぞれ戻させると共に（ステップＳｃ５、ステップＳｂ１：起動検知、ステップＳｂ２２、ステップＳｂ３：ＮＯ、ステップＳｂ４２）、このタイミングＴｄ９から、仕事４の処理を実行開始する（ステップＳｃ６）。
【０１８２】
このような処理がされて、カウンタ（CNT）回路６１０は、タイミングＴｄ１，Ｔｄ３，Ｔｄ４，Ｔｄ８で終了通知信号（preActDone）がアサート状態になればカウントアップを行なうと共に、タイミングＴｄ２，Ｔｄ５，Ｔｄ６，Ｔｄ９で起動通知信号（preActAccept）がアサート状態となるとカウントダウンを行なって、常時、図４を用いて説明した「（Ａ）−（Ｂ）の個数」、つまり、後段機能ブロック５００による処理が未完了のＤＩＭＭ３００上の中間データ３０２（図１、図４参照）の個数、さらに換言すれば、後段機能ブロック５００による処理を待っている中間データの個数を保持する。そして、かかる個数を表すカウンタ（CNT）回路６１０のカウンタ値が１以上の場合のみ（図１０のタイミングＴｄ２、Ｔｄ５、Ｔ６）、後段機能ブロック５００はダブルバッファ５１０に予め取得した入出力領域指定データに基づき自動起動を行ない、このカウンタカウンタ値が０の場合には（タイミングＴｄ７〜Ｔｄ８および、タイミングＴｄ２以前）、自動起動を行なわずに、起動をカウンタ値が０より大きい値へ変化するまで、遅らせる（図７のステップＳｃ４：ＮＯ）。
【０１８３】
こうして、この情報処理回路１では、オーバランを回避して、連携処理を機能ブロック４００および５００に行なわせることができる。
【０１８４】
しかも、このとき、図３で説明した処理のときのようなＣＰＵ１００への割り込み信号に応じて、後段機能ブロック５００の処理が開始されることはなく、高速に処理をさせることができる。
【０１８５】
また、図４で詳細な構成を示したような予約起動制御回路６００を付加すること等だけで、ハードウェアを複雑にすることがないようにできる。
【０１８６】
また、ＨＷモジュール制御部１０１は、連携処理において、機能ブロック４００，５００へ入力する入出力領域指定データによって、処理態様を多様に制御できる。これにより、システムの柔軟性を確保することができ、ハードウェアの汎用性や独立性を実現することができる。
【０１８７】
なお、入出力領域指定データには、機能ブロック本体４２０，５２０の設定が含まれ、当該入出力領域指定データに係る処理が機能ブロック本体４２０，５２０でされるときには、この設定に基づいて機能ブロック本体４２０，５２０は自己の動作を制御するものとしてもよい。
【０１８８】
なお、判定回路６２０は、稼動制御レジスタ５００Ｒ１がオフである場合には、常時、起動許可信号（preActReady）をアサートするものとしてもよい（図４参照）。
【０１８９】
以下、他の実施形態について説明する。
【０１９０】
（Ａ）第二実施形態
図１１は、第二実施形態に係る情報処理回路１を示す説明図である。
【０１９１】
この情報処理回路１は、特許請求の範囲における請求項２に記載の「情報処理回路」の一例を構成する。
【０１９２】
この実施形態では、後段機能ブロック５００ａの入力部５２１ａが複数のチャネルを備える。図１１では、チャネル数が３であり、入力部５２１ａが、３つのチャネルＣｈ１〜Ｃｈ３を備える場合を示している。
【０１９３】
チャネルＣｈ１〜Ｃｈ３は、特許請求の範囲における「チャネル」の一例である。
【０１９４】
入力部５２１ａのこの３個のチャネルＣｈ１〜Ｃｈ３は、３個の異なる領域から異なる中間データ３０２（図１）をそれぞれ取得する。
【０１９５】
以下では、これら入力部５２１ａの３個のチャネルＣｈ１〜Ｃｈ３が、１つの画像データを構成する３色の画像のデータ、すなわち、赤色成分（Ｒ）のデータと、緑色成分（Ｇ）のデータと、青色成分（Ｂ）のデータとの、各色成分データをそれぞれ取得するものとして説明を行なう。
【０１９６】
この機能ブロック５００ａのアルゴリズムコアは、入力部５２１ａのこれら３個のチャネルＣｈ１〜Ｃｈ３が取得した三つの各色成分データに応じて画像処理を行なう。
【０１９７】
かかる機能ブロック５００ａに対しては、ＨＷモジュール制御部１０１は、３つの各色成分データのＤＩＭＭ３００上の領域を特定する３つの入力領域指定データ７０１を含んだ入出力領域指定データを供給する。
【０１９８】
なお、この第二実施形態における上述のような入出力領域指定データを実現するデータ形式は具体的には、さまざまなデータ形式でよい。
【０１９９】
この実施形態における、入出力領域指定データが備える上述の３つの入力領域指定データ７０１の領域は、特許請求の範囲における「部分領域」の一例である。
【０２００】
この場合、起動制御部５３０ａは、入力部５２１ａの３つのチャネルＣｈ１〜Ｃｈ３が各色成分のデータを取得開始するときに、それぞれ、起動通知信号（preActAccept）を出力する。起動通知信号（preActAccept）は３ビットの信号である。
【０２０１】
他方、この後段機能ブロック５００ａでは、黒色（Ｋ）の一色のみの画像の処理も行なう動作モードもある。この動作モードのときには、入力部５２１ａのチャネルＣｈ１が、その黒色（Ｋ）の画像の画像データをＤＩＭＭ３００から取得し、取得したデータをアルゴリズムコアが処理する。
【０２０２】
このときには、起動制御部５３０ａは、入力部５２１ａのチャネルＣｈ１がその黒色（Ｋ）の画像データをＤＩＭＭ３００から取得開始すると、Ｃｈ１に対応する起動通知信号（preActAccept）を出力し、他のチャネルＣｈ２，Ｃｈ２に対応する起動通知信号（preActAccept）は出力しない。
【０２０３】
ＨＷモジュール制御部１０１は、このように黒色だけの画像の処理を機能ブロック５００にさせる場合には、その黒色の画像の画像データのＤＩＭＭ３００上の領域を特定する１つの入力領域指定データ７０１のみを含む入出力領域指定データを機能ブロック５００へ供給する。
【０２０４】
後段の機能ブロック５００ａがこのようなものである場合でも、以下で説明する予約起動制御回路６００ａを用いて、この情報処理回路１ａでは適切な動作がされる。
【０２０５】
予約起動制御回路６００ａは、起動検知回路６３０ａを備える。
【０２０６】
起動検知回路６３０ａは、特許請求の範囲記載の「カウントダウン制御回路」の一例である。このため、この実施形態においては、この起動検知回路６３０ａとカウンタ回路６１０とを合わせた、拡張されたカウンタ回路６１０ｅが、特許請求の範囲の請求項２に記載の「カウンタ回路」の一例を構成する。
【０２０７】
そして、カウンタ回路６１０は、この起動検知回路６３０ａから起動検知信号が入力された場合に、カウントダウンを行なう。
【０２０８】
起動検知回路６３０ａは、後段機能ブロック５００ａが出力する複数の起動通知信号（preActAccept）を取得して、これに基づいて論理演算を行なって、演算結果を上述の起動検知信号としてカウンタ回路６１０へ出力する論理演算回路である。
【０２０９】
起動検知回路６３０ａは、Ｎ＋１個（Ｎ＋１≧３）の起動通知信号（preActAccept）と、チャネル選択レジスタ（ＣＨ＿ＳＥＬ）６００Ｒ３（図６）の内容とに基づいて論理演算を行なう。
【０２１０】
ここで、Ｎ＋１＞３であることが好ましい。こうすれば、この起動検知回路６３０ａは、様々な個数の起動通知信号（preActAccept）を出力する、様々な後段機能ブロックに接続させて用いることができ、予約起動制御回路６００を、様々な後段機能ブロックに接続して用いることができる汎用性が高いものにすることができる。
【０２１１】
チャネル選択レジスタ（ＣＨ＿ＳＥＬ）６００Ｒ３は、Ｎ＋１個の起動通知信号（preActAccept）に対するマスクビットがＨＷモジュール制御部１０１から入力されるレジスタである。このマスクビットはＮ＋１ビットより構成されて、各ビットの値は、１であれば、そのビットに対応する起動通知信号（preActAccept）を参照することを意味し、逆に、０であれば、そのビットに対応する起動通知信号（preActAccept）を参照しないことを意味する。つまり、マスクビットは、０であるビットをマスクして、参照しないことを意味する。
【０２１２】
起動検知回路６３０ａは、起動通知信号（preActAccept）に対して、チャネル選択レジスタ（ＣＨ＿ＳＥＬ）６００Ｒ３に記憶されたマスクビットに基づくマスクを施して、マスクビットにより参照することが指定される全てのビットが１のときに、出力値を１とする論理演算回路である。起動検知回路６３０ａは、この出力値を、起動検知信号としてカウンタ回路６１０へ出力する。
【０２１３】
以下では、上述のマスクビットのことをチャネル選択マスクビットと呼ぶ。
【０２１４】
ＨＷモジュール制御部１０１は、制御信号を後段機能ブロック５００ａへ入力することによりこのチャネル選択マスクビットを後段機能ブロック５００ａへ入力して、このマスクビットをチャネル選択レジスタ（ＣＨ＿ＳＥＬ）６００Ｒ３へセットする。
【０２１５】
ＨＷモジュール制御部１０１は、後段機能ブロック５００ａにカラー画像の処理をさせるときは、チャネルＣｈ１〜Ｃｈ３に対応する３つの起動通知信号（preActAccept）を参照することを指示するチャネル選択マスクビットをチャネル選択レジスタ（ＣＨ＿ＳＥＬ）６００Ｒ３へセットさせ、黒色だけの画像の処理を後段機能ブロック５００ａにさせる場合には、チャネルＣｈ１のみをマスクしないでおり、残りのＣｈ２およびＣｈ３はマスクするチャネル選択マスクビットをチャネル選択レジスタ（ＣＨ＿ＳＥＬ）６００Ｒ３へセットさせる。
【０２１６】
このようにすれば、後段機能ブロック５００ａがカラー画像処理を行なう際は、チャネルＣｈ１〜Ｃｈ３に対応する全ての起動通知信号（preActAccept）がアサート状態となったときにカウンタ回路６１０はカウントダウンを行ない、他方、機能ブロック５００ａが黒色画像の処理を行なう場合には、チャネルＣｈ１に対応する起動通知信号（preActAccept）がアサート状態になっただけで、カウンタ回路６１０はカウントダウンを行ない、適切にカウンタ回路６１０にカウントダウン動作を行なわせることができる。
【０２１７】
（Ｂ）第三実施形態
図１２は、第三実施形態に係る情報処理回路１ｂを示す図である。
【０２１８】
この情報処理回路１ｂは、特許請求の範囲における請求項３に記載の「情報処理回路」の一例を構成する。
【０２１９】
情報処理回路１ｂでは、ＩＣチップ２００上に、予約起動制御回路６００ｂと、予約起動制御回路６００ｂに対して前段機能ブロックとして接続するＭ＋１個（Ｍ＋１≧２）の機能ブロック４００（０）〜４００（Ｍ）と、後段機能ブロック５００ａとが実現される。
【０２２０】
図１３は、第三実施例に係る予約起動制御回路６００ｂの構成を示す図である。
【０２２１】
予約起動制御回路６００ｂは、図１１を用いて説明した第二実施形態の起動検知回路６３０ａを備える。これにより、図１２で示したように、この予約起動制御回路６００ｂに接続する後段機能ブロックは第二実施形態で説明した図１１の機能ブロック５００ａと同じものであるが、予約起動制御回路６００ｂは適切にカウンタ回路６１０（図１３）のカウントダウンを行なうことができる。
【０２２２】
予約起動制御回路６００ｂは、終了信号選択回路６４０を備える。
【０２２３】
終了信号選択回路６４０と、起動検知回路６３０ａと、カウンタ回路６１０とを備える回路６１０ｆにより、特許請求の範囲の請求項３に記載の「カウンタ回路」の一例が構成される。
【０２２４】
終了信号選択回路６４０は、Ｍ＋１個の前段機能ブロック４００（０）〜４００（Ｍ）から処理終了信号（preActDone）が入力され、これらＭ＋１個のうちから１個の処理終了信号（preActDone）を選択して、カウンタ回路６１０へ通過させる信号選択回路である。
【０２２５】
この第三実施形態では、カウンタ回路６１０は、Ｍ＋１個の前段機能ブロック４００（０）〜４００（Ｍ）のうちで、終了信号選択回路６４０が選択する処理終了信号（preActDone）がアサートされた場合に、カウントアップを行なう。
【０２２６】
終了信号選択回路６４０は、マスタ選択レジスタ（ＭＳＴ＿ＳＥＬ）６００Ｒ２（図６）と、セレクタ回路６４１とを備える。
【０２２７】
マスタ選択レジスタ（ＭＳＴ＿ＳＥＬ）６００Ｒ２は、ＨＷモジュール制御部１０１から、セレクタ回路６４１がいずれの前段機能ブロックの処理終了信号（preActDone）を通過させるべきかを指定するマスタ選択データを入力されるレジスタである。このマスタ選択データは、たとえば、前段機能ブロック４００の個数（Ｍ＋１個）のビット幅であり、セレクタ回路６４１が信号を通過させるべき前段機能ブロックに対応するビットのみが１にされる。
【０２２８】
ＨＷモジュール制御部１０１が、マスタ選択レジスタ（ＭＳＴ＿ＳＥＬ）へ、マスタ選択データを入力する信号が、特許請求の範囲記載の「機能ブロック選択信号」の一例となる。
【０２２９】
セレクタ回路６４１は、Ｍ＋１個の前段機能ブロック４００（０）〜４００（Ｍ）の処理終了信号（preActDone）のうちで、マスタ選択レジスタ（ＭＳＴ＿ＳＥＬ）６００Ｒ２に記憶されたマスタ選択データが特定する１つの機能ブロックの信号のみを、カウンタ回路６１０側へ通過させるセレクタ回路である。セレクタ回路６４１が通過させた処理終了信号（preActDone）のみが、カウンタ回路６１０へ到達し、カウンタ回路６１０をカウントアップさせる。
【０２３０】
ＨＷモジュール制御部１０１は、マスタ選択レジスタ（ＭＳＴ＿ＳＥＬ）６００Ｒ２へマスタ選択データを入力して、Ｍ＋１個の前段機能ブロック４００（０）〜４００（Ｍ）のうちでいずれの前段機能ブロックと、後段機能ブロック５００ａとを連携処理させるかを選択する。そして、ＨＷモジュール制御部１０１は、この選択をしてから、第一実施形態の場合と同様に、選択した前段機能ブロックと後段機能ブロック５００との連携処理を実行させる。つまり、前段機能ブロックと後段機能ブロック５００に入出力領域指定データを入力し、そのときに前段機能ブロックへの入出力領域指定データの出力領域指定データ７０２と、後段機能ブロック５００への入出力領域指定データの入力領域指定データ７０１とを同じものにする。
【０２３１】
かかる情報処理回路１ｂであれば、ＨＷモジュール制御部１０１は、複数の前段機能ブロック４００（０）〜４００（Ｍ）のうちから１つを選んで、後段機能ブロック５００ａと連携処理させることができる。
【０２３２】
なお、終了信号選択回路６３０にマスタ選択レジスタ（ＭＳＴ＿ＳＥＬ）６００Ｒ２が選択する前段機能ブロックから処理終了信号（preActDone）が入力されても、その処理終了信号（preActDone）を無効化して、強制的に終了信号選択回路６４０のカウンタ回路６１０への出力をネゲート状態にさせるマスクを記憶する終了無効化レジスタ（Ｓｅｌｅｃｔ  Ｑｕｅｕｅ）６４２を設けるものとしてもよい。ＨＷモジュール制御部１０１は、この終了無効化レジスタ（Ｓｅｌｅｃｔ  Ｑｕｅｕｅ）６４２に値１を設定することにより、処理終了信号（preActDone）を１個、無効化させることができる。そして、この終了無効化レジスタ（Ｓｅｌｅｃｔ  Ｑｕｅｕｅ）６４２はキューとして構成されてあり、将来、この終了信号選択回路６３０に入力される各処理終了信号（preActDone）ごとに、値１または０を複数、記憶させて、その信号を無効化させるか否かを、記憶させた値により、ＨＷモジュール制御部１０１は指定することができるようになっている。
【０２３３】
（Ｃ）第四実施形態
図１４は、第四実施形態に係る情報処理回路１ｃを示す図である。
【０２３４】
この情報処理回路１ｃは、これから詳しく説明するように、特許請求の範囲における請求項４，５の情報処理回路の一例を構成する。
【０２３５】
この実施形態において、ＩＣチップ２００には、複数の予約起動制御回路ＲＳＣ０〜ＲＳＣ６と、予約起動制御回路ではない、上述の前後段の機能ブロック４００、５００等と同じ、通常の機能ブロックＦＢ１１，ＦＢ１２，ＦＢ２，ＦＢ３１，ＦＢ３２，ＦＢ３３，ＦＢ３４，ＦＢ３５とが実現される。図１２では、予約起動制御回路を実線で、予約起動制御回路以外の通常の機能ブロックを破線で、それぞれ示している。
【０２３６】
予約起動制御回路ＲＳＣ０〜ＲＳＣ６はいずれも、第三実施形態で示した図１２，１３の予約起動制御回路６００ａの構成を備える。
【０２３７】
なお、図１４では、予約起動制御回路ＲＳＣ０〜ＲＳＣ６はいずれも、後段の機能ブロックとしては、１つの機能ブロックにのみ接続している。予約起動制御回路ＲＳＣ０〜ＲＳＣ６が接続する後段機能ブロックは、それぞれ、機能ブロックＦＢ２およびＦＢ３１〜ＦＢ３５となっている。
【０２３８】
図１４に示す機能ブロックＦＢ１１〜ＦＢ１２，ＦＢ２，ＦＢ３１〜ＦＢ３５は、いずれも、図１に示した起動制御部５３０と、処理終了信号出力部４３０との両者を備えるものとする。ただし、機能ブロックＦＢ１１，ＦＢ１２では、起動制御部５３０は必須ではなく、また、機能ブロックＦＢ３１〜ＦＢ３５では、処理終了信号出力部４３０は必ずしも必須ではない。
【０２３９】
ＨＷモジュール制御部１０１は、予約起動制御回路ＲＳＣ０〜ＲＳＣ６へ第三実施形態（図１２，１３）で説明したマスタ選択データを入力して、各予約起動制御回路のマスタ選択レジスタ（ＭＳＴ＿ＳＥＬ）６００Ｒ２に、入力したマスタ選択データを記憶させて、複数の機能ブロック間の連携関係を制御することができる。
【０２４０】
図１５は、前段の機能ブロックＦＢ１１、中段の機能ブロックＦＢ２、後段の機能ブロックＦＢ３１により、機能ブロックを３段に連携させた様子を示す図である。
【０２４１】
この実施形態における機能ブロックＦＢ１１（前段機能ブロック４００）、機能ブロックＦＢ２（中段機能ブロック５００ａ１）、機能ブロックＦＢ３１（後段機能ブロック５００ａ２）は、特許請求の範囲における請求項４における「第一の機能ブロック」、「第二の機能ブロック」、「第三の機能ブロック」の一例をそれぞれ構成する。
【０２４２】
また、予約起動制御回路ＲＳＣ０，ＲＳＣ２（第一の予約起動制御回路６００ｂ１および第二の予約起動制御回路６００ｂ２）における回路６１０ｆ（図１３）が、請求の範囲における「カウンタ回路」の一例を構成し、特に、第二の予約起動制御回路６００ｂ２の方は、「第二のカウンタ回路」の一例を構成する。また、第一および第二の予約起動制御回路６００ｂ１，６００ｂ２における判定回路６２０（図１３）が、請求の範囲における「実行制御回路」の一例を構成し、特に、第二の予約起動制御回路６００ｂ２の判定回路６２０の方は、「第二の実行制御回路」の一例となる。
【０２４３】
ＨＷモジュール制御部１０１は、予約起動制御回路ＲＳＣ０へ、機能ブロックＦＢ１１を選択するマスタ選択データを入力し、また、予約起動制御回路ＲＳＣ２へ、機能ブロックＦＢ２を選択するマスタ選択データを入力することにより、機能ブロックＦＢ１１の出力データを機能ブロックＦＢ２に取得させて、この出力データに基づいて機能ブロックＦＢ２に処理を行なわせ、さらに、機能ブロックＦＢ２の出力データを機能ブロックＦＢ３１に取得させて、この出力データに基づいて機能ブロックＦＢ３１に処理を実行させるという、３段の連携処理をさせることができる。
【０２４４】
ＨＷモジュール制御部１０１は、上述のマスタ選択データ入力の後に、３つの機能ブロックＦＢ１１，ＦＢ２，ＦＢ３１へ入出力領域指定データを入力して、これらの機能ブロックに３段連携処理をさせる。このときには、ＨＷモジュール制御部１０１は、前段機能ブロックＦＢ１１の出力領域指定データおよび中段機能ブロックＦＢ２の入力領域指定データ、および、中段機能ブロックＦＢ２の出力領域指定データおよび後段機能ブロックＦＢ３１の入力領域指定データを、それぞれ同じものとする。
【０２４５】
なお、図１４の機能ブロックＦＢ１１に示すように、機能ブロックＦＢ１１は、Done_1とDone_2との２つの処理終了信号（preActDone）を出力する。このことについては、次の第五実施形態として詳しく説明する。この実施形態では、機能ブロックＦＢ１１は、予約起動制御回路ＲＳＣ０へDone_1のみを出力するものとして説明した。
【０２４６】
機能ブロックＦＢ２も、chAとchBとの２つの処理終了信号（preActDone）を出力するが、これについても同様である。
【０２４７】
（Ｄ）第五実施形態
図１６は、情報処理回路１ｃで多重の連携処理がされる様子を示す図である。
【０２４８】
情報処理回路１ｃは、特許請求の請求項５記載の「情報処理回路」の一例を示す。
【０２４９】
そして、特許請求の範囲の請求項５において、「２組」ある「第二の機能ブロック」は、この場合における機能ブロックＦＢ２（第一系列の第二の機能ブロック５００ａＡ）および機能ブロックＦＢ３１（第二系列の第二の機能ブロック５００ａＢ）として一例が示され、また、同じく特許請求の範囲の請求項５において、「２組」ある「ダブルバッファ回路」は、機能ブロックＦＢ２（第一系列の第二の機能ブロック５００ａＡ）および機能ブロックＦＢ３１（第二系列の第二の機能ブロック５００ａＢ）のバッファ５１０（図１）として一例が示され、さらに、「２組」ある「カウンタ回路」は、予約起動制御回路ＲＳＣ０（第一系例の予約起動回路６００ｂＡ）および予約起動制御回路ＲＳＣ２（第二系例の予約起動回路６００ｂＢ）の判定回路６１０ｆにより一例が示され、また、「２組」ある「実行制御回路」は、予約起動制御回路ＲＳＣ０（第一系例の予約起動回路６００ｂＡ）および予約起動制御回路ＲＳＣ２（第二系例の予約起動回路６００ｂＢ）の判定回路６２０により一例が示される。
【０２５０】
特許請求の範囲の請求項５における「組」の一例は、上述した「系列」である。
【０２５１】
この実施形態では、機能ブロックＦＢ１１において、そのアルゴリズムコアは第一の処理と第二の処理との２つの処理を行なう。ここで、第一の処理と、第二の処理とは、終了するタイミングが異なる。たとえば、第二の処理は、第一の処理の結果に基づいて行なわれる処理であり、第一の処理に遅れて終了する。
【０２５２】
機能ブロックＦＢ１１は、第一の処理が終了すると、第一の処理の結果の出力データである第一の中間データ３０２ａを、出力部（図１の出力部４２３，５２３を参照）により、ＤＩＭＭ３００へ書き出す。そして、第一の中間データ３０２ａの出力が完了すると、機能ブロックＦＢ１１は、処理終了信号出力部４３０（図１）により、第一の処理終了信号（preActDone：Done_1）を出力する。
【０２５３】
また、機能ブロックＦＢ１１は、第二の処理が終了すると、第二の処理の結果の出力データである第二の中間データ３０２ｂをＤＩＭＭ３００へ書き出す。そして、第二の中間データ３０２ｂの出力が完了すると、機能ブロックＦＢ１１は、第二の処理終了信号（preActDone：Done_2）を出力する。
【０２５４】
ＨＷモジュール制御部１０１が機能ブロックＦＢ１１へ供給する入出力領域指定データには、第一の中間データ３０２ａを書き込むべき領域を指定する出力領域指定データと、第二の中間データ３０２ｂを書き込むべき領域を指定する出力領域指定データとの２つの出力領域指定データを含む。ＨＷモジュール制御部１０１は、これら２つの出力領域指定データを機能ブロックＦＢ１１への入出力領域指定データに含ませて、機能ブロックＦＢ１１が第一の中間データ３０２ａを書き込む領域と、第二の中間データ３０２ｂを書き込む領域とをそれぞれ機能ブロックＦＢ１１に指示する。
【０２５５】
図１６に示すように、第一の処理終了信号（Done_1）の信号線は、機能ブロックＦＢ１１から予約起動制御回路ＲＳＣ０へ接続され、また、第二の処理終了信号（Done_2）の信号線は、機能ブロックＦＢ１１から予約起動制御回路ＲＳＣ２へ接続されており、機能ブロックＦＢ１１は、第一の処理終了信号（Done_1）を予約起動制御回路ＲＳＣ０へ出力し、また、第二の処理終了信号（Done_2）を予約起動制御回路ＲＳＣ２へ出力する。
【０２５６】
そして、ＨＷモジュール制御部１０１は、予約起動制御回路ＲＳＣ０へのマスタ選択データにより、機能ブロックＦＢ１１の第一の処理終了信号（Done_1）の信号線を選択し、また、予約起動制御回路ＲＳＣ２へのマスタ選択データにより、機能ブロックＦＢ１１の第二の処理終了信号（Done_2）の信号線を選択する。
【０２５７】
この選択を行なったうえで、ＨＷモジュール制御部１０１は、入出力領域指定データを３つの機能ブロックＦＢ１１，ＦＢ２，ＦＢ３１へ供給して、機能ブロックＦＢ１１およびＦＢ２と、機能ブロックＦＢ１１およびＦＢ３１との２組の連携処理を同時に実行させる。ここに、機能ブロックＦＢ２，ＦＢ３１は、それぞれ、上述の２つの予約起動制御回路ＲＳＣ０へ後段機能ブロックとして接続する機能ブロックである。ＨＷモジュール制御部１０１が機能ブロックＦＢ１１へ与える第一の中間データ３０２ａの出力領域指定データは、機能ブロックＦＢ２へ与えられる入力領域指定データにされ、また、ＨＷモジュール制御部１０１が機能ブロックＦＢ１１へ与える第二の中間データ３０２ｂの出力領域指定データは、機能ブロックＦＢ３１へ与えられる入力領域指定データにされる。
【０２５８】
このようにすれば、機能ブロックＦＢ１１がＤＩＭＭ３００へ２つのデータを書き込み、２つの機能ブロックＦＢ３１，ＦＢ２が当該データをそれぞれ１つずつ取得して行なう連携処理を、後段の２つの機能ブロックごとに制御して、高速に実行させることができる。
【図面の簡単な説明】
【０２５９】
【図１】第一実施例に係る情報処理回路を示す全体構成図である。
【図２】入出力領域指定データのデータ構成の一例を示す図である。
【図３】ＨＷモジュール制御部が、割り込み信号に基づいてオーバランを回避させる場合の情報処理回路の動作を説明する図である。
【図４】予約起動制御回路の詳細な構成を示す図である。
【図５】予約起動制御回の入出力信号を示す表である。
【図６】予約起動制御回路が備えるレジスタセットを示す図である。
【図７】情報処理回路における処理の流れを示す図である。
【図８】情報処理回路で処理が行なわれて、状態が変化するタイミングを示す図である。
【図９】図８（ｂ）の動作を情報処理回路が行なう場合における、情報処理回路の各部が各タイミングで行なう処理を示す図である。
【図１０】前後段の機能ブロックによる連携処理により複数の仕事がされる場合の、情報処理回路各部の動作を示す図である。
【図１１】第二実施形態に係る情報処理回路を示す説明図である。
【図１２】第三実施形態に係る情報処理回路を示す図である。
【図１３】第三実施例に係る予約起動制御回路の構成を示す図である。
【図１４】第四実施形態に係る情報処理回路を示す図である。
【図１５】機能ブロックを３段に連携させた様子を概念的に示す図である。
【図１６】情報処理回路で多重の連携処理がされる様子を概念的に示す図である。
【符号の説明】
【０２６０】
１，１ａ，１ｂ，１ｃ  情報処理回路（情報処理回路）
１００  ＣＰＵ（制御コンピュータ）
１０１  ＨＷモジュール制御部
２００  ＩＣチップ
３００  ＤＩＭＭ（システムメモリ）
３０１  原初データ
３０２，３０２ａ〜３０２ｃ  中間データ
３０３  最終結果データ
４００  前段の機能ブロック（第一の機能ブロック）
４１０  バッファ
４２０  機能ブロック本体
４２１  入力部
４２２  アルゴリズムコア
４２３  出力部
４３０  処理終了信号出力部
５００，５００ａ  後段の機能ブロック（第二の機能ブロック）
５００ａ１  中段の機能ブロック（第二の機能ブロック）
５００ａ２  後段の機能ブロック（第三の機能ブロック）
５００ｂＡ  第一系列の第二の機能ブロック（第二の機能ブロック）
５００ｂＢ  第二系列の第二の機能ブロック（第二の機能ブロック）
５００Ｒ１  稼動制御レジスタ
５１０  ダブルバッファ（ダブルバッファ回路）
５２０  機能ブロック本体
５２１，５２１ａ  入力部
５２２  アルゴリズムコア
５２３  出力部
５３０，５３０ａ  起動制御部
６００，６００ａ，６００ｂ  予約起動制御回路
６００ｂ１  第一の予約起動制御回路
６００ｂ２  第二の予約起動制御回路
６００ｂＡ  第一系例の予約起動回路
６００ｂＢ  第二系例の予約起動回路
６００Ｒ  レジスタセット
６００Ｒ１  稼動制御レジスタ
６００Ｒ２  マスタ選択レジスタ
６００Ｒ３  チャネル選択レジスタ
６１０  カウンタ（CNT）回路（カウンタ回路）
６１０ｅ，６１０ｆ  拡張されたカウンタ回路（カウンタ回路）
６２０  判定回路（実行制御回路）
６２１  非ゼロ値判定部
６３０ａ  起動検知回路（カウントダウン制御回路）
６４０  終了信号選択回路
６４１  セレクタ回路
７００  入出力領域指定データ（領域指定データ）
７０１  入力領域指定データ
７０２  出力領域指定データ
Ｃｈ１〜Ｃｈ３  チャネル（）
ＲＳＣ０〜ＲＳＣ６  予約起動制御回路
ＦＢ１１，ＦＢ１２  機能ブロック（第一の機能ブロック）
ＦＢ２  機能ブロック（第一の機能ブロック，第二の機能ブロック）
ＦＢ３１，ＦＢ３２，ＦＢ３３，ＦＢ３４，ＦＢ３５  機能ブロック（第二の機能ブロック、第三の機能ブロック）
【図１】
2008112283.tif 000003
【図２】
2008112283.tif 000004
【図３】
2008112283.tif 000005
【図４】
2008112283.tif 000006
【図５】
2008112283.tif 000007
【図６】
2008112283.tif 000008
【図７】
2008112283.tif 000009
【図８】
2008112283.tif 000010
【図９】
2008112283.tif 000011
【図１０】
2008112283.tif 000012
【図１１】
2008112283.tif 000013
【図１２】
2008112283.tif 000014
【図１３】
2008112283.tif 000015
【図１４】
2008112283.tif 000016
【図１５】
2008112283.tif 000017
【図１６】
2008112283.tif 000018