(57)【要約】  低コストでメモリバンド幅の確保を行うことができる半導体集積回路を提供する。メモリバンド幅監視部１２１０がメモリバンド幅を算出し、メモリの使用状況を監視し、その使用状況に応じて、再構成部１１１０を、バスマスタ部としての論理部と各バスマスタがメモリにアクセスする際の一時バッファとをスケーラブルに構成するための情報を再構成制御部１１２０に出力する。再構成制御部１１２０が、その情報に従い再構成部１１１０を制御する。論理部に構成されるバスマスタ部は、データ記憶部１００２への高いアクセス優先度が割り当てられたバスマスタ部によるデータ記憶部へのアクセス要求が実行されていない場合であって、メモリバンド幅に空きがある場合に、その空き分のみを使用するバスマスタ部である。
2009060567.tif 000002
【特許請求の範囲】
【請求項１】
外部デバイスとの間のデータの転送を制御するデータ転送制御装置であって、
再構成可能な回路を備える再構成手段と、
データの転送を要求する内部デバイスと、
内部デバイスと外部デバイスとの間でデータ転送を中継するとともに、前記転送要求により必要とされるメモリバンド幅に応じて、データ転送を支援する回路を定める再構成情報を取得する転送制御部と、
取得された前記再構成情報に基づいて、前記再構成手段における回路の再構成を制御する再構成制御手段と
を備えることを特徴とするデータ転送制御装置。
【請求項２】
前記転送制御部は、前記メモリバンド幅が所定閾値以上である場合に、前記再構成情報を取得し、
前記再構成制御手段は、取得された前記再構成情報を用いて、前記再構成手段に対して回路を再構成するよう制御する
ことを特徴とする請求項１に記載のデータ転送制御装置。
【請求項３】
前記転送制御部は、前記転送要求に係るデータを一時的に保持するバッファ部としての回路を定める前記再構成情報を取得し、
前記再構成制御手段は、前記バッファ部としての回路を再構成するように前記再構成手段を制御する
ことを特徴とする請求項２に記載のデータ転送制御装置。
【請求項４】
前記再構成情報は、さらに、演算部又は制御部としての回路を定め、
前記再構成制御手段は、さらに、演算部又は制御部としての回路を再構成するように前記再構成手段を制御する
ことを特徴とする請求項３に記載のデータ転送装置。
【請求項５】
データ転送装置は、さらに、前記再構成手段が回路を再構成する場合、再構成直前に前記再構成手段に構築されている現回路の処理状態を保持する状態保持手段を備える
ことを特徴とする請求項４に記載のデータ転送制御装置。
【請求項６】
前記再構成手段は、さらに、前記再構成手段が前に構築された回路を再構成する場合、前記状態保持手段に保持されている回路の処理状態を用いる
ことを特徴とする請求項５に記載のデータ転送制御装置。
【請求項７】
前記転送制御部は、前記メモリバンド幅が所定閾値より小さい場合に、演算部又は制御部としての回路を定める前記再構成情報を取得し、
前記再構成制御手段は、前記メモリバンド幅が所定閾値より小さい場合に、演算部又は制御部としての回路を再構成するように前記再構成手段を制御する
ことを特徴とする請求項１に記載のデータ転送制御装置。
【請求項８】
前記転送制御部は、前記メモリバンド幅が所定閾値より小さい場合に、演算部又は制御部としての回路を定める前記再構成情報を取得し、前記メモリバンド幅が所定閾値以上である場合に、前記転送要求に係るデータを一時的に保持するバッファ部としての回路を定める前記再構成情報を取得し、
前記再構成制御手段は、前記メモリバンド幅が所定閾値より小さい場合に、演算部又は制御部としての回路を再構成するように前記再構成手段を制御し、前記メモリバンド幅が所定閾値以上である場合に、前記バッファ部としての回路を再構成するように前記再構成手段を制御し、
データ転送装置は、さらに、前記再構成手段が回路を再構成する場合、再構成直前に前記再構成手段に構築されている回路の処理状態を保持する状態保持手段を備える
ことを特徴とする請求項１に記載のデータ転送制御装置。
【請求項９】
前記再構成手段は、前記内部デバイスによるデータの転送要求が実行されていない時間帯において、メモリバンド幅に空きがあるときに、その空き分のみを使用するデバイスとしての演算部又は制御部を構成する
ことを特徴とする請求項８に記載のデータ転送制御装置。
【請求項１０】
前記転送制御部は、前記メモリバンド幅が所定閾値より小さい場合に、演算部又は制御部としての回路を定める前記再構成情報を取得し、前記メモリバンド幅が所定閾値以上である場合に、演算部又は制御部としての回路及び前記転送要求に係るデータを一時的に保持するバッファ部としての回路を定める前記再構成情報を取得し、
前記再構成制御手段は、前記メモリバンド幅が所定閾値より小さい場合に、演算部又は制御部としての回路を再構成するように前記再構成手段を制御し、前記メモリバンド幅が所定閾値以上である場合に、演算部又は制御部としての回路及び前記バッファ部としての回路を再構成するように前記再構成手段を制御する
ことを特徴とする請求項１に記載のデータ転送制御装置。
【請求項１１】
データ転送装置は、さらに、前記再構成手段がバッファ部を再構成する場合、再構成直前に前記再構成手段に構築されている回路の処理状態を保持する状態保持手段を備える
ことを特徴とする請求項１０に記載のデータ転送制御装置。
【請求項１２】
前記転送制御部は、前記メモリバンド幅が所定閾値以上である場合に取得する前記再構成情報は、前記バッファ部にアクセスする前記演算部又は制御部としての回路を定め、
前記再構成制御手段は、前記メモリバンド幅が所定閾値以上である場合に、前記バッファ部にアクセスする前記演算部又は制御部としての回路を再構成するように前記再構成手段を制御する
ことを特徴とする請求項１０に記載のデータ転送制御装置。
【請求項１３】
前記再構成手段は、内部デバイスによる転送要求に高い優先度が割り当てられ、リアルタイム応答を要求される前記内部デバイスによるデータの転送要求が実行されていない時間帯において、メモリバンド幅に空きがあるときに、その空き分のみを使用するデバイスとしての演算部又は制御部を構成する
ことを特徴とする請求項１２に記載のデータ転送制御装置。
【請求項１４】
内部のデバイス間でデータを転送するデータ転送装置であって、
再構成可能な回路を備える再構成手段と、
データの転送要求を出力する第１デバイスと、
第１デバイスによる転送要求の対象である第２デバイスと、
第１デバイスと第２デバイスとの間でデータ転送を中継するとともに、前記転送要求により必要とされるメモリバンド幅に応じて、データ転送を支援する回路を定める再構成情報を取得する転送制御部と、
取得された前記再構成情報に基づいて、前記再構成手段における回路の再構成を制御する再構成制御手段と
を備えることを特徴とするデータ転送装置。
【請求項１５】
前記データ転送装置は、リアルタイム処理を行うリアルタイム処理装置であり、
前記第２デバイスは、データを記憶するための記憶デバイスであり、
前記第１デバイスは、リアルタイム応答を要求され、前記記憶デバイスに対してデータの書き込みを要求し、又は前記記憶デバイスからデータの読み出しを要求する
ことを特徴とする請求項１４に記載のデータ転送装置。
【請求項１６】
内部デバイスと転送要求の対象である外部デバイスとの間でデータの転送を中継する半導体集積回路であって、
再構成可能な回路を備える再構成手段と、
データの転送要求を出力する内部デバイスと、
内部デバイスと外部デバイスとの間でデータ転送を中継するとともに、前記転送要求により必要とされるメモリバンド幅に応じて、データ転送を支援する回路を定める再構成情報を取得する転送制御部と、
取得された前記再構成情報に基づいて、前記再構成手段における回路の再構成を制御する再構成制御手段と
を備えることを特徴とする半導体集積回路。
【請求項１７】
再構成可能な回路を備える再構成手段を備え、データの転送要求を出力する第１デバイスと、第１デバイスによる転送要求の対象である第２デバイスとの間でデータの転送を中継する半導体集積回路において用いられるデータ転送制御方法であって、
第１デバイスと第２デバイスとの間でデータ転送を中継するとともに、前記転送要求により必要とされるメモリバンド幅に応じて、データ転送を支援する回路を定める再構成情報を取得する転送制御ステップと、
取得された前記再構成情報に基づいて、前記再構成手段における回路の再構成を制御する再構成制御ステップと
を含むことを特徴とするデータ転送制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のバスマスタ、バス及びメモリを備える半導体集積回路において、各バスマスタがバスを介してメモリとの間でデータ転送を行う技術に関し、特に、データ転送の性能の向上を図る技術に関する。
【背景技術】
【０００２】
従来、複数のバスマスタ、バス及びメモリを備える半導体集積回路において、各バスマスタがバスを介してメモリとの間でデータ転送を行う場合に、特許文献１に記載されているバス制御装置では、メモリなどのスレーブデバイスにバスアクセスデータを一時的に保持するバッファを設け、バッファの存在を前提とした上で、複数の並列バスあるいは時分割バスのアービトレーションを実行することによりシステム性能の向上を実現している。【０００３】
また、特許文献２によると、再構成回路において、メモリセルとスイッチング素子とを組み合わせた組合せ回路を多数集積したアレイを設けると共に、各組合せ回路のメモリ機能を使用するか論理機能を使用するかを制御する制御回路を開示している。
【特許文献１】特開平１０−２１４２４９号公報
【特許文献２】特開平４−２５２５１５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、前記従来の構成では、メモリバンド幅確保のための専用バッファを設けることになり、面積及びコストが増大してしまう。【０００５】
本発明は、前記従来の課題を解決するため、面積及びコストを増大させることなく、データの転送に必要なメモリバンド幅を確保して、データの転送の性能を向上させることができるデータ転送制御装置、データ転送装置、データ転送制御方法及び半導体集積回路を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明は、外部デバイスとの間のデータの転送を制御するデータ転送制御装置であって、再構成可能な回路を備える再構成手段と、データの転送を要求する内部デバイスと、内部デバイスと外部デバイスとの間でデータ転送を中継するとともに、前記転送要求により必要とされるメモリバンド幅に応じて、データ転送を支援する回路を定める再構成情報を取得する転送制御部と、取得された前記再構成情報に基づいて、前記再構成手段における回路の再構成を制御する再構成制御手段とを備えることを特徴とする。
【発明の効果】
【０００７】
この構成によると、内部デバイスと外部デバイスとの間のデータ転送により必要とされるメモリバンド幅に応じて、定められデータ転送を支援する回路を定める再構成情報に基づいて、前記再構成手段における回路の再構成を制御するので、面積及びコストを増大させることなく、再構成手段により再構成された回路により、データ転送を支援することができる。【０００８】
ここで、前記転送制御部は、前記メモリバンド幅が所定閾値以上である場合に、前記再構成情報を取得し、前記再構成制御手段は、取得された前記再構成情報を用いて、前記再構成手段に対して回路を再構成するよう制御するとしてもよい。【０００９】
この構成によると、前記メモリバンド幅が所定閾値以上である場合に、前記再構成手段に再構成された回路により、データ転送を支援することができる。【００１０】
ここで、前記転送制御部は、前記転送要求に係るデータを一時的に保持するバッファ部としての回路を定める前記再構成情報を取得し、前記再構成制御手段は、前記バッファ部としての回路を再構成するように前記再構成手段を制御してもよい。【００１１】
この構成によると、前記再構成手段には、前記バッファ部としての回路が再構成されるので、データ転送においてバッファ部を用いることができる。【００１２】
ここで、前記再構成情報は、さらに、演算部又は制御部としての回路を定め、前記再構成制御手段は、さらに、演算部又は制御部としての回路を再構成するように前記再構成手段を制御してもよい。【００１３】
ここで、データ転送装置は、さらに、前記再構成手段が回路を再構成する場合、再構成直前に前記再構成手段に構築されている現回路の処理状態を保持する状態保持手段を備えるとしてもよい。【００１４】
前記再構成手段は、さらに、前記再構成手段が前に構築された回路を再構成する場合、前記状態保持手段に保持されている回路の処理状態を用いるとしてもよい。【００１５】
ここで、前記転送制御部は、前記メモリバンド幅が所定閾値より小さい場合に、演算部又は制御部としての回路を定める前記再構成情報を取得し、前記再構成制御手段は、前記メモリバンド幅が所定閾値より小さい場合に、演算部又は制御部としての回路を再構成するように前記再構成手段を制御してもよい。【００１６】
この構成によると、前記メモリバンド幅が所定閾値より小さい場合に、前記再構成手段に演算部又は制御部としての回路を再構成するので、データ転送において用いることのない初期値としての回路を構成することができる。【００１７】
ここで、前記転送制御部は、前記メモリバンド幅が所定閾値より小さい場合に、演算部又は制御部としての回路を定める前記再構成情報を取得し、前記メモリバンド幅が所定閾値以上である場合に、前記転送要求に係るデータを一時的に保持するバッファ部としての回路を定める前記再構成情報を取得し、前記再構成制御手段は、前記メモリバンド幅が所定閾値より小さい場合に、演算部又は制御部としての回路を再構成するように前記再構成手段を制御し、前記メモリバンド幅が所定閾値以上である場合に、前記バッファ部としての回路を再構成するように前記再構成手段を制御し、データ転送装置は、さらに、前記再構成手段が回路を再構成する場合、再構成直前に前記再構成手段に構築されている回路の処理状態を保持する状態保持手段を備えるとしてもよい。【００１８】
この構成によると、前記メモリバンド幅が所定閾値以上である場合に、前記再構成手段に再構成された回路により、データ転送を支援することができるとともに、前記メモリバンド幅が所定閾値より小さい場合に、前記再構成手段に演算部又は制御部としての回路を再構成するので、データ転送において用いることのない初期値としての回路を構成することができる。【００１９】
ここで、前記再構成手段は、前記内部デバイスによるデータの転送要求が実行されていない時間帯において、メモリバンド幅に空きがあるときに、その空き分のみを使用するデバイスとしての演算部又は制御部を構成するとしてもよい。【００２０】
ここで、前記転送制御部は、前記メモリバンド幅が所定閾値より小さい場合に、演算部又は制御部としての回路を定める前記再構成情報を取得し、前記メモリバンド幅が所定閾値以上である場合に、演算部又は制御部としての回路及び前記転送要求に係るデータを一時的に保持するバッファ部としての回路を定める前記再構成情報を取得し、前記再構成制御手段は、前記メモリバンド幅が所定閾値より小さい場合に、演算部又は制御部としての回路を再構成するように前記再構成手段を制御し、前記メモリバンド幅が所定閾値以上である場合に、演算部又は制御部としての回路及び前記バッファ部としての回路を再構成するように前記再構成手段を制御するとしてもよい。【００２１】
ここで、データ転送装置は、さらに、前記再構成手段がバッファ部を再構成する場合、再構成直前に前記再構成手段に構築されている回路の処理状態を保持する状態保持手段を備えるとしてもよい。【００２２】
ここで、前記転送制御部は、前記メモリバンド幅が所定閾値以上である場合に取得する前記再構成情報は、前記バッファ部にアクセスする前記演算部又は制御部としての回路を定め、前記再構成制御手段は、前記メモリバンド幅が所定閾値以上である場合に、前記バッファ部にアクセスする前記演算部又は制御部としての回路を再構成するように前記再構成手段を制御するとしてもよい。【００２３】
ここで、前記再構成手段は、内部デバイスによる転送要求に高い優先度が割り当てられ、リアルタイム応答を要求される前記内部デバイスによるデータの転送要求が実行されていない時間帯において、メモリバンド幅に空きがあるときに、その空き分のみを使用するデバイスとしての演算部又は制御部を構成するとしてもよい。【００２４】
また、本発明は、内部のデバイス間でデータを転送するデータ転送装置であって、再構成可能な回路を備える再構成手段と、データの転送要求を出力する第１デバイスと、第１デバイスによる転送要求の対象である第２デバイスと、第１デバイスと第２デバイスとの間でデータ転送を中継するとともに、前記転送要求により必要とされるメモリバンド幅に応じて、データ転送を支援する回路を定める再構成情報を取得する転送制御部と、取得された前記再構成情報に基づいて、前記再構成手段における回路の再構成を制御する再構成制御手段とを備えることを特徴とする。【００２５】
ここで、前記データ転送装置は、リアルタイム処理を行うリアルタイム処理装置であり、前記第２デバイスは、データを記憶するための記憶デバイスであり、前記第１デバイスは、リアルタイム応答を要求され、前記記憶デバイスに対してデータの書き込みを要求し、又は前記記憶デバイスからデータの読み出しを要求するとしてもよい。【００２６】
また、本発明は、内部デバイスと転送要求の対象である外部デバイスとの間でデータの転送を中継する半導体集積回路であって、再構成可能な回路を備える再構成手段と、データの転送要求を出力する内部デバイスと、内部デバイスと外部デバイスとの間でデータ転送を中継するとともに、前記転送要求により必要とされるメモリバンド幅に応じて、データ転送を支援する回路を定める再構成情報を取得する転送制御部と、取得された前記再構成情報に基づいて、前記再構成手段における回路の再構成を制御する再構成制御手段とを備えることを特徴とする。【００２７】
以上、本発明によれば、再構成回路により、システム動作中にオーバースペックとなっている不要な演算部あるいは制御部をバッファとして活用することにより低コストでメモリバンド幅を有効活用することが出来る。
【図面の簡単な説明】
【００２８】
【図１】民生機器１０の基本構成を示す構成図である。
【図２】再構成回路１１００の構成を示す。
【図３】論理回路４０１１の構成を示す。
【図４】状態保持テーブル５０００のデータ構造を示す。
【図５】メモリバンド幅監視部１２１０の構成を示す。
【図６】閾値テーブル３０００のデータ構造を示す。
【図７】閾値テーブル３０００のデータ構造の一例を示す。
【図８】民生機器１０における動作フローの概略を示すフローチャートである。
【図９】民生機器１０における動作フローを示すフローチャートである。図１０へ続く。
【図１０】民生機器１０における動作フローを示すフローチャートである。図１１へ続く。
【図１１】民生機器１０における動作フローを示すフローチャートである。図１２へ続く。
【図１２】民生機器１０における動作フローを示すフローチャートである。図１１から続く。
【図１３】再構成情報の取得の動作フローを示すフローチャートである。
【図１４】再構成回路の再構成の動作フローを示すフローチャートである。
【図１５】再構成部１１１０の回路構成の遷移を示す。
【符号の説明】
【００２９】
１０    民生機器
１００    半導体集積回路
１０００    バスマスタ部Ａ
１００１    バスマスタ部Ｂ
１００２    データ記憶部
１００３    バス部
１００４    バス部
１００５    バス部
１００６    バス部
１００７    バス部
１１００    再構成回路
１１１０    再構成部
１１１１    論理部
１１１２    バッファ部
１１２０    再構成制御部
１１３０    状態保持部
１２００    データ転送制御部
１２１０    メモリバンド幅監視部
１２２０    バッファアクセス要求部
２０００    メモリバンド幅算出部
２００１    閾値保持部
２００２    メモリバンド幅比較部
２００３    メモリバンド幅情報通知部
４０００    バッファ制御部
４００２    状態管理部
４００５    演算データ要求部
【発明を実施するための最良の形態】
【００３０】
以下、本発明に係る一の実施の形態としての民生機器１０について、図面を参照しながら説明する。【００３１】
（実施の形態）
１．民生機器１０の構成
民生機器１０は、例えば、デジタル放送受信装置、携帯電話、ＤＶＤ再生装置などであり、民生機器１０が実行する複数の処理のうち、映像や音楽などの再生のようにリアルタイム性が要求される処理などを、他の処理に優先して、行うリアルタイム処理装置である。図１に、民生機器１０の基本的な構成を示す。【００３２】
民生機器１０は、図１に示すように、半導体集積回路１００、データ記憶部１００２及び図示していないその他の構成要素から構成されており、半導体集積回路１００とデータ記憶部１００２とは、バス部１００６を介して接続されている。半導体集積回路１００は、第一バスマスタ部１０００、第二バスマスタ部１００１、データ転送制御部１２００及び再構成回路１１００から構成されており、第一バスマスタ部１０００とデータ転送制御部１２００とは、バス部１００３を介して接続され、第二バスマスタ部１００１とデータ転送制御部１２００とは、バス部１００７を介して接続され、後述する論理部１１１１とデータ転送制御部１２００とは、バス部１００４を介して接続され、後述するバッファ部１１１２とデータ転送制御部１２００とは、バス部１００５を介して接続されている。【００３３】
なお、簡略化のため、半導体集積回路１００は、第一バスマスタ部１０００及び第二バスマスタ部１００１の２個のバスマスタ部のみを含むとしているが、半導体集積回路１００は、３個以上のバスマスタ部を含むとしてもよい。【００３４】
また、第一バスマスタ部１０００、第二バスマスタ部１００１及び及びデータ記憶部１００２をそれぞれ第１デバイス、第２デバイス及び第３デバイスと呼ぶこともある。【００３５】
１．１  第一バスマスタ部１０００及び第二バスマスタ部１００１
第一バスマスタ部１０００は、一例として、デジタル放送により放送される番組を受信し、受信した番組をデータとして蓄積するように制御するための制御回路であり、受信した放送波からユーザの所望のチャネルを選択し、選択したチャネルからユーザの所望の番組を抽出し、抽出した番組をデータ記憶部１００２に蓄積する。ここで、受信した放送波から番組を抽出して蓄積する処理は、リアルタイムに行われるべきものである。また、第二バスマスタ部１００１は、一例として、番組を再生する回路であり、データ記憶部１００２から蓄積されている番組を読み出し、読み出された番組を再生して、その映像信号及び音声信号を生成し、生成した映像信号及び音声信号を外部のモニタ装置へ出力する。ここで、番組を再生して映像信号及び音声信号を出力する処理も、リアルタイムに行われるべきものである。【００３６】
第一バスマスタ部１０００及び第二バスマスタ部１００１は、それぞれ、データ転送制御部１２００に対して、データの転送要求を出力する。ここで、データの転送要求とは、データを保持するためのデータ記憶部１００２へのデータの書込み要求又はデータ記憶部１００２からのデータの読出し要求などである。【００３７】
データ記憶部１００２へのアクセスについて、例えば、第二バスマスタ部１００１に割り当てられた優先度より高い優先度が第一バスマスタ部１０００に割り当てられている。第一バスマスタ部１０００及び第二バスマスタ部１００１それぞれから同時に発生したデータの転送要求は、前記の優先度に基づいて、データ転送制御部１２００により調停される。【００３８】
１．２  再構成回路１１００
再構成回路１１００は、民生機器１０の動作中においても動的に内部の回路構成を変更することを実現する回路である。【００３９】
図１及び図２に示すように、再構成回路１１００は、再構成部１１１０、再構成制御部１１２０及び状態保持部１１３０から構成されている。なお、再構成部１１１０は、動的に回路構成を変更することできる可変回路であり、一方、再構成制御部１１２０及び状態保持部１１３０は、回路構成を変更することができない固定回路である。【００４０】
（１）再構成部１１１０
再構成部１１１０は、動的に回路構成の変更が可能な回路であり、再構成制御部１１２０の制御により、後述する再構成情報を用いて、その内部に、演算及び制御を実行する論理部１１１１及びデータを保持するためのバッファ部１１１２を構築する。【００４１】
回路が構築された後の再構成部１１１０は、図２に示すように、論理部１１１１及びバッファ部１１１２から構成され、論理部１１１１は、状態管理部４００２、演算データ要求部４００５及び論理回路４０１１から構成され、バッファ部１１１２は、バッファ制御部４０００及びバッファ用メモリ４０２１から構成される。【００４２】
データ記憶部１００２へのアクセスについて、第二バスマスタ部１００１に割り当てられた優先度より高い優先度が第一バスマスタ部１０００に割り当てられ、第一バスマスタ部１０００が、リアルタイム応答を必要とするデータ記憶部１００２へのアクセス要求をする場合、第一バスマスタ部１０００から当該アクセス要求がまだ出力されておらず（つまり、出力されていない時間帯において）、当該アクセス要求がまだ実行されていないとき（つまり、実行されていない時間帯）であって、メモリバンド幅に空きがあるときに、再構成部１１１０は、その空き分のみを使用し、バスマスタ部として動作する演算回路又は制御回路を実現する論理部１１１１及びデータを保持するバッファ部１１１２を構築する。
（演算データ要求部４００５）
演算データ要求部４００５は、演算処理中に再構成実施要求信号１２１１により論理部１１１１の回路構成が変更され、新たに論理回路４０１１を構築するために、状態保持部１１３０に退避されたデータが必要になった場合、演算データ要求信号４００６を状態保持部１１３０へ出力し、状態保持部１１３０から指示信号４００７とともに、退避演算データ４００８を獲得する。
（論理回路４０１１）
論理回路４０１１は、ユーザの民生機器１０の利用状況に応じて、再構成すべき回路である。論理回路４０１１の一例を図３に示す。【００４３】
論理回路４０１１は、再構成された結果、一例として図３に示すように、複数の演算器６０００、演算器６００１、演算器６００２から構成されるものとする。各演算部は、一つの演算結果を持つ。演算器６０００は、その演算処理の後、演算器６０００による演算結果を演算器６００１へ出力する。演算器６００１は、演算器６０００による演算結果を用いて、演算処理をし、その演算結果をさらに演算器６００２へ出力する。演算器６００２は、演算器６００１による演算結果を用いて、演算処理をする。【００４４】
ここで、例えば、演算器６０００の演算が終了した直後であって、演算器６００１の演算が終了する前に、論理回路４０１１に、再構成情報により、別の回路が再構成され、その後、再び、論理回路４０１１に元の演算器６０００、演算器６００１、演算器６００２が再構成されたとする。このような場合には、新たに再構成された演算器６０００、演算器６００１、演算器６００２は、新たに演算処理を行うのではなく、前の演算結果を利用できると、無駄な演算をしなくて済む。このため、例えば、演算器６０００、演算器６００１、演算器６００２の途中の演算結果がそれぞれ蓄積されている必要がある。また、次に演算を再開するときに、どの演算器から開始すべきかなどの情報を蓄積されている必要がある。【００４５】
なお、簡略化のため、論理回路４０１１には、３個の演算器６０００、演算器６００１、演算器６００２が構成されるとしているが、論理回路４０１１上の構成される演算器の数は任意である。【００４６】
また、再構成部１１１０には、演算器と演算器との接続を切り換える配線制御回路なども備えられており、再構成情報に従って、演算器と演算器との接続を切り換えることにより、論理回路４０１１が構成される。
（状態管理部４００２）
状態管理部４００２は、論理部１１１１の状態を示す論理部状態信号４００１を生成し、生成した論理部状態信号４００１を状態保持部１１３０へ出力する。ここで、論理部状態信号４００１は、例えば、上記の各演算器の演算結果、次に演算を再開するときに、どの演算器から開始すべきかなどの情報などである。
（バッファ制御部４０００）
バッファ制御部４０００は、後述するバッファアクセス要求部１２２０からバッファアクセス書込要求信号１２２１を受け取る。バッファアクセス書込要求信号１２２１を受け取ると、バス部１００５を介して転送されるデータをバッファ部１１１２のバッファ用メモリ４０２１に格納する。【００４７】
また、バッファ制御部４０００は、バッファアクセス要求部１２２０からバッファアクセス読出要求信号１２２２を受け取る。バッファアクセス読出要求信号１２２２を受け取ると、バッファ部１１１２のバッファ用メモリ４０２１に格納されたデータを、バス部１００５を介して、データ転送制御部１２００へ転送する。【００４８】
このとき、バッファ部１１１２のバッファ用メモリ４０２１に格納されているデータを全て転送し、バッファ部１１１２のバッファ用メモリ４０２１が空になれば、バッファ制御部４０００は、再構成制御部１１２０に対して、バッファ空信号４００４を出力する。
（バッファ用メモリ４０２１）
バッファ用メモリ４０２１は、バッファ制御部４０００の制御により、データを一時的に記憶する。【００４９】
（２）再構成制御部１１２０
再構成制御部１１２０は、再構成部１１１０に回路を構築するよう制御する。【００５０】
再構成制御部１１２０は、メモリバンド幅監視部１２１０から再構成実施要求信号１２１１を受け取る。再構成実施要求信号１２１１を受け取ると、再構成制御部１１２０は、再構成情報１２１２及び前回の再構成時に状態保持部１１３０に保持された情報をもとに再構成部１１１０を再構成すると同時に、状態保持部１１３０に再構成実施信号４００３を出力する。【００５１】
また、再構成実施要求信号１２１１が出力されておらずメモリバンド幅が閾値を超えていない場合、バッファ空信号４００４を受け取った再構成制御部１１２０は、状態保持部１１３０により保持された情報をもとに論理部１１１１をバッファ部１１１２が構成される前の初期状態である回路Ａとして構成する。【００５２】
（３）状態保持部１１３０
状態保持部１１３０は、動的に回路構成が変更される際に、変更前の回路状態や演算途中の値を保持するための状態保持テーブル５０００を記憶している。【００５３】
状態保持テーブル５０００は、図４に示すように、複数の状態情報から構成され、各状態情報は、論理回路４０１１に構成された演算器に対応し、演算器ＩＤ、有効無効区分及び演算結果値から構成されている。演算器ＩＤは、対応する演算器を識別する識別情報である。有効無効区分は、対応する演算器が有効であるか無効であるかを示す。有効であるとは、当該演算器が論理回路４０１１の一部として機能していることを示し、無効であるは、当該演算器が論理回路４０１１の一部として機能していないことを示す。演算結果値は、対応する演算器による演算処理により得られた結果の値を示す。【００５４】
状態保持部１１３０は、状態保持テーブル５０００の他に、上述したように、演算器６０００、演算器６００１及び演算器６００２による演算を再開するときに、どの演算器から開始すべきかなどを示す情報を蓄積している。このような情報が論理回路４０１１の状態を示す情報の一例である。【００５５】
状態保持部１１３０は、再構成制御部１１２０から再構成実施信号４００３を受け取り、また、状態管理部４００２から論理部状態信号４００１を受け取る。再構成実施信号４００３を受け取ると、状態保持部１１３０は、状態管理部４００２から受け取った論理部状態信号４００１から、その時点の論理部１１１１の状態及び演算途中の値を獲得し、獲得した状態及び値を状態保持テーブル５０００に保存する。【００５６】
１．３  データ転送制御部１２００
データ転送制御部１２００は、第一バスマスタ部１０００及び第二バスマスタ部１００１から出力される複数の転送要求を調停し、調停結果に基づいてデータ記憶部１００２にアクセスする。データ転送制御部１２００は、図１に示すように、バッファアクセス要求部１２２０、メモリバンド幅監視部１２１０及び図示していない他の構成要素から構成されている。【００５７】
（１）バッファアクセス要求部１２２０
バッファアクセス要求部１２２０は、第一バスマスタ部１０００（又は第二バスマスタ部１００１）がデータ記憶部１００２へアクセスする場合に、（ａ）アクセス対象となるデータをバッファ部１１１２のバッファ用メモリ４０２１へ保持するとき、バッファ部１１１２へ、バッファ用メモリ４０２１へのデータの書込みの要求を意味するバッファアクセス書込要求信号１２２１を出力し、（ｂ）アクセス対象となるデータをバッファ部１１１２のバッファ用メモリ４０２１から読み出すとき、バッファ部１１１２へ、バッファ用メモリ４０２１からのデータの読出しの要求を意味するバッファアクセス読出要求信号１２２２を出力する。【００５８】
（２）メモリバンド幅監視部１２１０
メモリバンド幅監視部１２１０は、メモリバンド幅の使用状況を監視し、再構成制御部１１２０に対して再構成実施を要求する再構成実施要求信号１２１１、及び再構成に必要な情報である再構成情報１２１２を通知する。【００５９】
メモリバンド幅監視部１２１０は、図５に示すように、メモリバンド幅算出部２０００、閾値保持部２００１、メモリバンド幅比較部２００２及びメモリバンド幅情報通知部２００３から構成される。
（メモリバンド幅算出部２０００）
メモリバンド幅算出部２０００は、第一バスマスタ部１０００及び第二バスマスタ部１００１が発行するデータ記憶部１００２へのアクセスコマンドよりメモリバンド幅を計測する。アクセスコマンドには、データの転送サイズ（又は転送回数）が含まれており、メモリバンド幅算出部２０００は、アクセスコマンドのうち、データ転送制御部１２００により調停され、実行対象となるアクセスコマンドから、単位時間内の転送サイズの和を算出して、これをメモリバンド幅とする。次に、算出したメモリバンド幅をメモリバンド幅比較部２００２へ出力する。アクセスコマンドが取得できない場合、例えば、第一バスマスタ部１０００又は第二バスマスタ部１００１によりアクセスコマンドが発行されていない時間帯においては、メモリバンド幅を「０」として算出する。
（閾値保持部２００１）
閾値保持部２００１は、図６に示すように、メモリバンド幅の閾値情報として閾値テーブル３０００を保持している。【００６０】
メモリバンド幅の取り得る値の範囲は、複数の区間に分けられている。閾値テーブル３０００は、区間毎に、再構成部１１１０の論理部１１１１及びバッファ部１１１２として再構成すべき回路及びバッファを定めている。閾値テーブル３０００は、メモリバンド幅算出部２０００により求められたメモリバンド幅に応じて、再構成部１１１０が内部にどのような論理回路を構成するかを決定するために用いられる。【００６１】
閾値テーブル３０００は、図６に示すように、複数の閾値情報から構成され、各閾値情報は、各区間に対応している。各閾値情報は、閾値、バッファ容量情報及び論理部回路構成情報を含む。閾値は、対応する区間の上限値であり、バッファ容量情報は、再構成部１１１０に構成されるバッファ部１１１２の容量であり、論理部回路構成情報は、再構成部１１１０の論理部１１１１に構成されるべき回路の構成情報である。【００６２】
具体例として、閾値テーブル３０００は、閾値「１．６ＧＢ／ｓ」、バッファ容量情報「０ＭＢ」及び論理部回路構成情報「回路Ａ」を含む閾値情報、閾値「１．８ＧＢ／ｓ」、バッファ容量情報「６４ＭＢ」及び論理部回路構成情報「回路Ｂ」を含む閾値情報、閾値「２．０ＧＢ／ｓ」、バッファ容量情報「１２８ＭＢ」及び論理部回路構成情報「回路Ｃ」を含む閾値情報及び閾値「∞」、バッファ容量「１９２ＭＢ」及び論理部回路構成情報「回路Ｄ」を含む閾値情報から構成されている。【００６３】
ここで、「回路Ａ」は、再構成部１１１０に、論理部１１１１として、状態管理部４００２、演算データ要求部４００５及び論理回路４０１１を再構成し、バッファ制御部４０００を再構成するための回路構成情報を含むものとする。また、論理回路４０１１は、演算部、制御部、又は演算部及び制御部を含む。【００６４】
また、「回路Ｂ」、「回路Ｃ」及び「回路Ｄ」は、それぞれ、再構成部１１１０に、論理回路４０１１を再構成するための回路構成情報を含むものとし、「回路Ｂ」、「回路Ｃ」及び「回路Ｄ」の回路構成情報は、状態管理部４００２、演算データ要求部４００５及び論理回路４０１１を再構成することなく、状態管理部４００２、演算データ要求部４００５及び論理回路４０１１は、そのまま維持されるものとする。また、論理回路４０１１は、演算部、制御部、又は演算部及び制御部を含む。【００６５】
図６に一例として示す閾値テーブル３０００は、次のことを意味している。つまり、民生機器１０への電源投入あるいはリセットにより、又は、算出されたメモリバンド幅が１．６ＧＢ／ｓ未満の場合に、再構成部１１１０は、バッファ部１１１２を持たず、論理部１１１１に回路Ａを構成する。算出されたメモリバンド幅が１．６ＧＢ／ｓ以上、かつ、１．８ＧＢ／ｓ未満の場合に、６４ＭＢの容量を有するバッファ部１１１２を構成し、論理部１１１１に回路Ｂを構成する。算出されたメモリバンド幅が１．８ＧＢ／ｓ以上、かつ、２．０ＧＢ／ｓ未満の場合に、１２８ＭＢの容量を有するバッファ部１１１２を構成し、論理部１１１１に回路Ｃを構成する。算出されたメモリバンド幅が２．０ＧＢ／ｓ以上の場合に、１９２ＭＢの容量を有するバッファ部１１１２を構成し、論理部１１１１に回路Ｄを構成する。【００６６】
なお、図６に示す閾値テーブル３０００では、一つの閾値に一種の回路のみが対応しているが、一つの閾値に複数種類の回路を対応させ、再構成の都度どの回路を利用するか調停し選択する構成でもよい。具体的には、図７に示すように、閾値テーブル３０００は、閾値情報３０００ａを含み、閾値情報３０００ａは、閾値「１．８ＧＢ／ｓ」、バッファ容量情報「６４ＭＢ」及び論理部回路構成情報「回路Ｘ、回路Ｙ、回路Ｚ」を含むとしてもよい。閾値情報３０００ａは、算出されたメモリバンド幅が１．６ＧＢ／ｓ以上、かつ、１．８ＧＢ／ｓ未満の場合に、６４ＭＢの容量を有するバッファ部１１１２を構成し、論理部１１１１に回路Ｘ、回路Ｙ、回路Ｚを構成することを意味している。【００６７】
また、図６に示す閾値テーブル３０００は、簡略化のため、４個の閾値情報を含むとしているが、その数は任意であり、２個の閾値情報又は３個の閾値情報を含むとしてもよいし、閾値テーブル３０００は、さらに多くの閾値情報を含むとしてもよい。なお、この閾値情報は、本半導体集積回路の設計時にあらかじめ設定されるとしてもよいし、ソフトウェアにより変更可能としてもよい。
（メモリバンド幅比較部２００２）
メモリバンド幅比較部２００２は、メモリバンド幅算出部２０００からメモリバンド幅を受け取り、閾値保持部２００１から閾値テーブル３０００に含まれる全ての閾値情報を読み出し、上記に説明したように、メモリバンド幅算出部２０００により求められたメモリバンド幅と閾値保持部２００１に保持されている閾値の比較を行い、比較結果をメモリバンド幅情報通知部２００３へ出力する。
（メモリバンド幅情報通知部２００３）
メモリバンド幅情報通知部２００３は、メモリバンド幅比較部２００２から比較結果を受け取り、メモリバンド幅比較部２００２によりメモリバンド幅算出部２０００により求められたメモリバンド幅が閾値保持部２００１に保持されているメモリバンド幅より大きい値をとった場合に、比較結果に対応するバッファ容量情報及び論理部回路構成情報により構成されるバッファ部１１１２及び論理部１１１１が現在のバッファ部１１１２及び論理部１１１１と異なるときに限り、比較結果に対応するバッファ容量情報及び論理部回路構成情報により、再構成情報１２１２を生成し、再構成制御部１１２０に対して再構成実施要求信号１２１１及び再構成情報１２１２を出力する。比較結果に対応するバッファ容量情報及び論理部回路構成情報により構成されるバッファ部１１１２及び論理部１１１１が現在のバッファ部１１１２及び論理部１１１１と同一であるときには、再構成の必要はない。【００６８】
２．民生機器１０の動作
ここでは、民生機器１０の動作について説明する。【００６９】
（１）半導体集積回路１００における動作の概略
半導体集積回路１００における動作の概略について、図８に示すフローチャートを用いて説明する。【００７０】
半導体集積回路１００は、電源又はリセットの投入を受け付けると（ステップＳ７０００）、再構成部１１１０は、初期状態を構成する（ステップＳ７００１）。【００７１】
次に、メモリバンド幅比較部２００２は、算出されたメモリバンド幅が閾値を超えるか否かを判断し（ステップＳ７００２）、閾値を超えない場合には（ステップＳ７００２でＮ）、ステップＳ７００２に戻って比較を繰り返す。【００７２】
閾値を超える場合には（ステップＳ７００２でＹ）、再構成実施信号４００３を受けた状態保持部１１３０は、論理部状態信号４００１から再構成前の状態を獲得し保存し（ステップＳ７００３）、次に、再構成制御部１１２０は、論理部１１１１に論理回路４０１１を構成させ、バッファ部１１１２にバッファ用メモリ４０２１を構成させる（ステップＳ７００４）。【００７３】
バッファ制御部４０００が再構成制御部１１２０に対して、バッファ空信号４００４を出力していない場合に（ステップＳ７００５でＮ）、ステップＳ７００２へ戻って処理を繰り返す。【００７４】
バッファ空信号４００４を出力した場合に（ステップＳ７００５でＹ）、状態保持部１１３０により保持された情報をもとに、論理部１１１１がバッファ部１１１２を構成する前の論理部の状態に復元される（ステップＳ７００６）。【００７５】
次に、ステップＳ７００２へ戻って処理を繰り返す。【００７６】
（２）半導体集積回路１００における動作の詳細
半導体集積回路１００における動作の詳細について、図９〜図１２に示すフローチャートを用いて説明する。【００７７】
データ転送制御部１２００は、電源又はリセットの投入を受け付けると（ステップＳ１０１）、再構成情報を取得する。ここで取得した再構成情報は、電源又はリセットの投入直後に取得したものであるので、初期値である。なお、再構成情報の取得の詳細については、後述する（ステップＳ１０２）。次に、再構成実施要求信号及び取得した再構成情報（初期値）を再構成制御部１１２０へ出力する（ステップＳ１０３）。次に、再構成制御部１１２０は、再構成実施要求信号及び再構成情報（初期値）を再構成部１１１０へ出力し、再構成部１１１０は、受け取った再構成情報に従って論理部１１１１及びバッファ部１１１２を再構成する（ステップＳ１０５）。【００７８】
ここまでは、半導体集積回路１００における再構成部１１１０の初期化について説明しており、図８のステップＳ７０００〜Ｓ７００１に対応している。【００７９】
次に、第一バスマスタ部１０００は、データ転送制御部１２００に対して、第１アクセスコマンドを出力する。この第１アクセスコマンドは、データ記憶部１００２へデータを転送することを示すものであり、第１アクセスコマンドには、データの転送サイズの合計値が含まれる（ステップＳ１１１）。また、第二バスマスタ部１００１は、データ転送制御部１２００に対して、第２アクセスコマンドを出力する。この第２アクセスコマンドは、データ記憶部１００２へデータを転送することを示すものであり、第２アクセスコマンドには、データの転送サイズの合計値が含まれる（ステップＳ１１２）。ここで、第一バスマスタ部１０００による第１アクセスコマンドの出力と、第二バスマスタ部１００１による第２アクセスコマンドの出力とは、ほぼ同一時刻に行われるものとする。また、第一バスマスタ部１０００が発行する第１アクセスコマンドに対して割り当てられる優先度は、第二バスマスタ部１００１が発行する第２アクセスコマンドに対して割り当てられる優先度よりも高いものであるとする。【００８０】
データ転送制御部１２００が第一バスマスタ部１０００及び第二バスマスタ部１００１からそれぞれ第１アクセスコマンド及び第２アクセスコマンドを受け取ると、データ転送制御部１２００の調停部（図示していない）は、第１アクセスコマンド及び第２アクセスコマンドを調停する。調停は、それぞれのアクセスコマンドに割り当てられた優先度を用いて行う。ここでは、第１アクセスコマンドに割り当てられた優先度が第２アクセスコマンドに割り当てられた優先度よりも高いので、第１アクセスコマンドが、第２アクセスコマンドに優先して実行される（ステップＳ１１３）。【００８１】
次に、データ転送制御部１２００は、再構成情報を取得する。再構成情報の取得については、後述する（ステップＳ１１４）。【００８２】
データ転送制御部１２００は、現在の再構成部１１１０の構成と取得し再構成情報により構成されるべき再構成部１１１０の構成とを比較する。データ転送制御部１２００は、この比較を次のようにして行う。例えば、データ転送制御部１２００は、前回に取得し再構成に用いた再構成情報を識別する識別子を記憶しており、今回取得した再構成情報を識別する識別子と記憶している識別子とを比較する。次回の比較のために、今回取得した再構成情報を識別する識別子を記憶しておく（ステップＳ１１５）。一致していれば（ステップＳ１１５で「一致」）、再構成を実施しない。【００８３】
一致していなければ（ステップＳ１１５で「不一致」）、再構成を実施するために、取得した再構成情報及び再構成実施要求信号を再構成回路１１００へ出力し（ステップＳ１１６）、再構成回路１１００は、再構成部１１１０において、論理部１１１１及びバッファ部１１１２を再構成する（ステップＳ１１７）。【００８４】
ここまでで、再構成回路１１００における再構成部１１１０の再構成が完了する。【００８５】
次に、第一バスマスタ部１０００（又はデータ記憶部１００２）からデータ記憶部１００２（又は第一バスマスタ部１０００）へのデータ転送について説明する。なお、以下において、「第一バスマスタ部１０００」を「第二バスマスタ部１００１」と置き換えても、以下の半導体集積回路１００の動作は、成立する。【００８６】
第一バスマスタ部１０００（又はデータ記憶部１００２）は、転送すべきデータのうち、メモリバンド幅が閾値を超えた分の転送データを、データ転送制御部１２００へ出力し（ステップＳ１３１）、データ転送制御部１２００は、バッファアクセス書込要求信号をバッファ制御部４０００へ出力し（ステップＳ１３２）、転送すべきデータをバッファ制御部４０００へ出力する（ステップＳ１３３）。次に、バッファ制御部４０００は、転送すべきデータをバッファ用メモリ４０２１へ出力し（ステップＳ１３４）、バッファ用メモリ４０２１は、転送すべきデータを記憶する（ステップＳ１３５）。【００８７】
第一バスマスタ部１０００（又はデータ記憶部１００２）からデータ記憶部１００２（又は第一バスマスタ部１０００）へ転送すべきデータの総量のうち、メモリバンド幅が閾値を超えた分の転送データが、ステップＳ１３１〜Ｓ１３５により転送できる最大のデータ量よりも大きいときは、データの転送が完了するまで、ステップＳ１３１〜Ｓ１３５が繰り返される。【００８８】
次に、データ転送制御部は、バス部１００５の使用状況を監視しており、バス部１００５の使用状況が空き状態となると、つまり、バス部１００５において転送されるデータが存在しなければ（ステップＳ１４１でＹＥＳ）、バッファアクセス読出要求信号をバッファ制御部４０００へ出力し（ステップＳ１４２）、バッファ用メモリ４０２１は、バッファ制御部４００の制御により、データを読み出し（ステップＳ１４３）、読み出したデータをバッファ制御部４００へ出力し、読み出し対象のデータをバッファ用メモリ４０２１から削除する（ステップＳ１４５）。バッファ制御部４０００は、読み出されたデータをデータ転送制御部１２００へ出力し（ステップＳ１４６）、データ転送制御部１２００は、読み出されたデータをデータ記憶部１００２（又は第一バスマスタ部１０００）へ出力する（ステップＳ１４７）。【００８９】
バッファ制御部４０００は、バッファ用メモリ４０２１が空か否かを監視する（ステップＳ１４８）。【００９０】
バッファ用メモリ４０２１に蓄積されたデータの総量が、ステップＳ１４２〜Ｓ１４８により転送できる最大のデータ量よりも大きいときは、バッファ用メモリ４０２１に蓄積されたデータの総量の転送が完了するまで、ステップＳ１４２〜Ｓ１４８が繰り返される。【００９１】
以上により、第一バスマスタ部１０００からデータ記憶部１００２へのデータ転送が完了する。【００９２】
次に、バッファ制御部４０００によりバッファ用メモリ４０２１が空であると判断された場合（ステップＳ１４８でＹＥＳ）、バッファ制御部４０００は、バッファ空信号を再構成制御部１１２０へ出力する（ステップＳ１５１）。【００９３】
再構成制御部１１２０は、バッファ空信号を受け取ると（ステップＳ１５１）、再構成実施要求信号を受信しているか否かを判断し（ステップＳ１５２）、受信している場合は、その要求に従って動作する。【００９４】
メモリバンド幅監視部１２１０は、再構成情報を取得する。再構成情報の取得の詳細については、後述する。この時点において、第一バスマスタ部１０００又は第二バスマスタ部１００１からのアクセスコマンドの出力がなければ、初期値としての再構成情報が取得される（ステップＳ１５３）。メモリバンド幅監視部１２１０は、取得した再構成情報を再構成制御部１１２０へ出力する（ステップＳ１５４）。【００９５】
再構成制御部１１２０が再構成実施要求信号を受信していない場合（ステップＳ１５２で「なし」）に、メモリバンド幅監視部１２１０から再構成情報（初期値）を受け取ったときは（ステップＳ１５４）、再構成制御部１１２０は、再構成情報（初期値）及び再構成実施要求信号を再構成部１１１０へ出力し（ステップＳ１５５）、再構成部１１１０は、再構成情報（初期値）に従って、論理部１１１１とバッファ部１１１２を再構成する。つまり、再構成部１１１０は、初期化される（ステップＳ１５６）。【００９６】
（３）メモリバンド幅監視部１２１０による再構成情報の取得
次に、メモリバンド幅監視部１２１０による再構成情報の取得の動作について、図１３に示すフローチャートを用いて説明する。【００９７】
メモリバンド幅監視部１２１０は、データ転送制御部１２００の調停部による調停がされたアクセスコマンドを監視している（ステップＳ２０１）。調停されたアクセスコマンドが存在すれば（ステップＳ２０２で「有」）、調停されたアクセスコマンドから転送すべきデータのサイズの和を抽出し、抽出したサイズの和をメモリバンド幅として算出する（ステップＳ２０４）。アクセスコマンドが存在しなければ、例えば、第一バスマスタ部１０００及び第二バスマスタ部１００１の両方からアクセスコマンドが発行されていない時間帯であれば（ステップＳ２０２で「無」）、「０」をメモリバンド幅とする（ステップＳ２０３）。【００９８】
次に、メモリバンド幅監視部１２１０は、閾値テーブル３０００から先頭の閾値情報に含まれる閾値「１．６ＧＢ／ｓ」を読み出し（ステップＳ２０５）、算出したメモリバンド幅と閾値「１．６ＧＢ／ｓ」とを比較し（ステップＳ２０６）、算出したメモリバンド幅が閾値「１．６ＧＢ／ｓ」より小さければ（ステップＳ２０６でＹＥＳ）、閾値「１．６ＧＢ／ｓ」に対応するバッファ容量情報「０ＭＢ」及び論理部回路構成情報「回路Ａ」を、再構成情報として読み出し（ステップＳ２０７）、メモリバンド幅監視部１２１０による処理を終了する。【００９９】
算出したメモリバンド幅が閾値「１．６ＧＢ／ｓ」より大きいか又は等しければ（ステップＳ２０６でＮＯ）、閾値テーブル３０００から次の閾値情報に含まれる閾値「１．８ＧＢ／ｓ」を読み出し（ステップＳ２０８）、算出したメモリバンド幅と閾値「１．８ＧＢ／ｓ」とを比較し（ステップＳ２０９）、算出したメモリバンド幅が閾値「１．８ＧＢ／ｓ」より小さければ（ステップＳ２０９でＹＥＳ）、閾値「１．８ＧＢ／ｓ」に対応するバッファ容量情報「６４ＭＢ」及び論理部回路構成情報「回路Ｂ」を、再構成情報として読み出し（ステップＳ２１０）、メモリバンド幅監視部１２１０による処理を終了する。【０１００】
算出したメモリバンド幅が閾値「１．８ＧＢ／ｓ」より大きいか又は等しければ（ステップＳ２０９でＮＯ）、閾値テーブル３０００から次の閾値情報に含まれる閾値「２．０ＧＢ／ｓ」を読み出し（ステップＳ２１１）、算出したメモリバンド幅と閾値「２．０ＧＢ／ｓ」とを比較し、算出したメモリバンド幅が閾値「２．０ＧＢ／ｓ」より小さければ（ステップＳ２１２でＹＥＳ）、閾値「２．０ＧＢ／ｓ」に対応するバッファ容量情報「１２８ＭＢ」及び論理部回路構成情報「回路Ｃ」を、再構成情報として読み出し（ステップＳ２１３）、メモリバンド幅監視部１２１０による処理を終了する。【０１０１】
算出したメモリバンド幅が閾値「２．０ＧＢ／ｓ」より大きいか又は等しければ（ステップＳ２１２でＮＯ）、閾値テーブル３０００から次の閾値情報にバッファ容量情報「１９２ＭＢ」及び論理部回路構成情報「回路Ｄ」を、再構成情報として読み出し（ステップＳ２１４）、メモリバンド幅監視部１２１０による処理を終了する。【０１０２】
（４）再構成回路１１００による再構成
次に、再構成回路１１００による再構成の動作について、図１４に示すフローチャートを用いて説明する。【０１０３】
再構成制御部１１２０は、データ転送制御部１２００から再構成の指示を受け取ると、再構成実施要求信号を再構成部１１１０へ出力し（ステップＳ２５１）、再構成実施信号を状態保持部１１３０へ出力し（ステップＳ２５２）、再構成情報を再構成部１１１０へ出力する（ステップＳ２５４）。【０１０４】
再構成部１１１０は、再構成実施要求信号を受け取ると（ステップＳ２５１）、論理部状態信号を状態保持部１１３０へ出力し（ステップＳ２５３）、状態保持部１１３０は、論理部１１１１の状態、演算途中の値を獲得し（ステップＳ２５５）、論理部１１１１の状態、演算途中の値を保存する（ステップＳ２５６）。【０１０５】
次に、再構成部１１１０は、演算データ要求信号を状態保持部１１３０へ出力し（ステップＳ２５７）、状態保持部１１３０は、保存している論理部１１１１の状態、演算途中の値を読み出し（ステップＳ２５８）、指示信号を再構成部１１１０へ出力し（ステップＳ２５９）、読み出した論理部１１１１の状態、演算途中の値からなる退避演算データを再構成部１１１０へ出力し（ステップＳ２６０）、再構成部１１１０は、受け取った再構成情報と退避演算データとに従って、再構成部１１１０に論理部１１１１とバッファ部１１１２を再構成する（ステップＳ２６１）。【０１０６】
（５）半導体集積回路１００の動作
本実施形態における半導体集積回路１００の動作フローを簡略に述べると次のようになる。【０１０７】
電源あるいはリセットが投入されると、再構成制御部１１２０により論理部１１１１及びバッファ部１１１２には、初期状態の回路が構成される。【０１０８】
第一バスマスタ部１０００をはじめとする各バスマスタ部がデータ記憶部１００２へのデータ転送要求コマンドを発行すると、メモリバンド幅比較部２００２は、メモリバンド幅算出部２０００により求められるメモリバンド幅と閾値保持部２００１に保持されている閾値とを比較する。【０１０９】
比較の結果、求められたメモリバンド幅が閾値を超えた場合、メモリバンド幅情報通知部２００３は、再構成制御部１１２０に対して再構成実施要求信号１２１１及び再構成情報１２１２を出力する。【０１１０】
再構成実施要求信号１２１１及び再構成情報１２１２を受け取った再構成制御部１１２０は、再構成実施要求信号１２１１をもとに状態保持部１１３０に対して再構成実施信号４００３を出力する。再構成実施信号４００３を受け取った状態保持部１１３０は、論理部状態信号４００１から、その時点の論理部１１１１の状態を獲得し保存する。この論理部１１１１の状態とは、状態保持テーブル５０００のように演算器毎の状態および演算値である。【０１１１】
また、再構成制御部１１２０は、再構成情報１２１２及び前回の再構成時に状態保持部１１３０に保持された情報をもとに、再構成部１１１０に論理部１１１１とバッファ部１１１２とを再構成する。【０１１２】
メモリバンド幅が閾値を超えた分の転送データを、バッファアクセス書込要求信号１２２１を受けたバッファ制御部４０００がバッファ部１１１２に格納していく。【０１１３】
バス部１００５の使用状況が空き状態となると、バッファアクセス要求部１２２０は、バッファアクセス読出要求信号１２２２を出力し、バッファ部１１１２のデータがバス部１００５によりデータ転送制御部１２００へ転送され、さらにバス部１００６によりデータ記憶部１００２へと転送されていく。【０１１４】
また、閾値テーブル３０００に複数の閾値情報を持つ場合で、メモリバンド幅がある閾値を超え閾値テーブル３０００に従った回路構成をとり、構成されたバッファ部１１１２を用いてデータ転送中に、別の閾値を超えた場合、同様に閾値テーブル３０００に従った回路を再構成する。【０１１５】
バッファ部１１１２に格納されているデータを全て転送し、バッファ部１１１２が空になれば、バッファ制御部４０００が再構成制御部１１２０に対して、バッファ空信号４００４を出力する。また、再構成実施要求信号１２１１が出力されておらずメモリバンド幅が閾値を超えていない場合、バッファ空信号４００４を受け取った再構成制御部１１２０は、状態保持部１１３０により保持された情報をもとに論理部１１１１を、バッファ部１１１２が構成される前の初期状態の回路に再構成し、演算を再開する。【０１１６】
（６）再構成部１１１０のシステム動作における遷移の一例
次に、図１５を用いて、再構成部１１１０のシステム動作における遷移の一例について述べる。【０１１７】
電源投入あるいはリセットによる初期化が実行されると、再構成部１１１０は、閾値テーブル３０００に従って、論理部１１１１に回路Ａ（１１１１ａ）のみを構成する（状態８１００）。【０１１８】
その後、メモリバンド幅が１．８ＧＢ／ｓを超えたため、再構成部１１１０は、論理部１１１１に回路Ｃ（１１１１ｂ）、容量１２８ＭＢのバッファ部１１１２を構成する。バッファ部１１１２は、バッファ用メモリ１１１２ａを含む。この時、回路Ａが演算途中であれば、回路状態、演算値を状態保持部１１３０に保持する（状態８２００）。【０１１９】
その後、メモリバンド幅が１．８ＧＢ／ｓよりは小さくなり１．６ＧＢ／ｓは超えた状態になると、再構成部１１１０は、論理部１１１１に回路Ｂ（１１１１ｃ）を構成し、容量６４ＭＢのバッファ部１１１２を構成する。バッファ部１１１２は、バッファ用メモリ１１１２ｂを含む。この時、再構成制御部１１２０が論理部１１１１に回路Ｂ（１１１１ｃ）を構成する際、必要であれば状態保持部１１３０の保持情報を回路Ｂ（１１１１ｃ）に適用する。また、回路Ｃ（１１１１ｂ）が演算途中であれば、回路状態、演算値を状態保持部１１３０に保持する（状態８３００）。【０１２０】
その後、メモリバンド幅が１．６ＧＢ／ｓより小さくなり、状態８２００や状態８３００でデータが書込まれたバッファ部１１１２のデータもデータ記憶部１００２に全て転送され、バッファ部１１１２が空状態となれば、再構成部１１１０は論理部１１１１に回路Ａ（１１１１ｄ）のみを構成する（状態８４００）。【０１２１】
３．まとめ
以上説明したように、本実施形態を用いれば、各バスマスタ部のメモリバンド幅がデータ記憶部１００２のデバイス依存の最大メモリバンド幅を超える可能性がある場合に、再構成部１１１０により構成したバッファ部１１１２が、バンド幅の超過分を吸収し、メモリバンド幅の確保を可能とする。【０１２２】
なお、論理部１１１１がＤＭＡ（ダイレクトメモリアクセス）を実行中にメモリバンド幅が閾値を超える場合は、ＤＭＡによる転送データを一時的に保持する領域を前記バッファ部１１１２に設け、論理部１１１１もバッファ部１１１２にアクセスすることにより、システム破綻を防ぐ。【０１２３】
４．その他の変形例
（１）上記実施の形態では、各バスマスタ部は、データ記憶部１００２に対してアクセスするとしているが、これには限定されない。【０１２４】
半導体集積回路１００は、データ記憶部１００２に代えて、第三バスマスタ部（第４デバイスと呼ぶこともある。）を備えており、第一バスマスタ部１０００は、データ記憶部１００２に代えて、第三バスマスタ部との間でデータ転送してもよい。また、第二バスマスタ部１００１も、データ記憶部１００２に代えて、第三バスマスタ部との間でデータ転送をするとしてもよい。【０１２５】
このとき、例えば、第一バスマスタ部１０００と第三バスマスタ部との間のデータ転送は、第二バスマスタ部１００１と第三バスマスタ部との間のデータ転送に優先するものとし、データ転送制御部１２００は、２個のデータ転送を調停し、第一バスマスタ部１０００と第三バスマスタ部との間のデータ転送を優先させる。メモリバンド幅監視部１２１０は、第一バスマスタ部１０００から出力されるアクセスコマンドからメモリバンド幅を算出し、算出したメモリバンド幅とと閾値とを比較して、再構成部１１１０を再構成するか否かを決定し、再構成すると決定した場合に、再構成情報を再構成制御部１１２０へ出力し、再構成部１１１０は、再構成情報に従って回路を再構成する。【０１２６】
（２）図６に示す閾値テーブル３０００は、閾値情報として、閾値「２．０ＧＢ／ｓ」、バッファ容量情報「１２８ＭＢ」及び論理部回路構成情報「回路Ｃ」を含む閾値情報に代えて、例えば、閾値「２．０ＧＢ／ｓ」及びバッファ容量情報「２５６ＭＢ」を含む閾値情報を含むとしてもよい。この閾値情報は、論理部回路構成情報を含まない。この場合には、論理回路４０１１は、構成されず、２５６ＭＢのバッファ容量を有するバッファ用メモリ４０２１のみが構成される。【０１２７】
（３）図１に示す再構成回路１１００において、状態保持部１１３０は、存在しないものとしてもよい。また、状態管理部４００２及び演算データ要求部４００５も存在しないものとしてもよい。この場合には、以前に再構成部１１１０に構成されていた論理回路４０１１を再構成するときに、以前の論理回路４０１１の回路の状態を引き継ぐことはできない。【０１２８】
（４）上記の実施の形態において、図１に示すデータ転送制御部１２００は、調停部（図示していない）、バッファアクセス要求部１２２０及びメモリバンド幅監視部１２１０を含むとしているが、次のように構成してもよい。【０１２９】
転送制御部１２００は、調停部、バッファアクセス要求部１２２０及びメモリバンド幅監視部１２１０を含んでおらず、転送制御部１２００は、調停部、バッファアクセス要求部１２２０及びメモリバンド幅監視部１２１０がそれぞれ有する機能及び構成を有する。【０１３０】
（５）本発明は、再構成回路により、リアルタイム応答を要求されるためデータ記憶部へのアクセス時の優先度が高く、バスマスタ部のデータ記憶部へのアクセス要求が実行されていない場合であって、メモリバンド幅に空きがある場合に、その空き分のみを使用するバスマスタ部の不要な演算部あるいは制御部をバッファとして活用することにより、低コストでバンド幅の有効活用を可能とするデータ転送装置、データ転送方法及び半導体集積回路を提供する。【０１３１】
本発明は、複数のバスマスタ、バス及びメモリを備える半導体集積回路において、各バスマスタがバスを介してメモリとの間でデータ転送を行う技術であり、特に、再構成回路を利用して、各バスマスタが要求するメモリバンド幅を確保して、データ転送の性能の向上を図る技術である。【０１３２】
半導体集積回路は、転送されるデータを記憶するデータ記憶部にアクセスする複数のバスマスタ部と、前記複数のバスマスタ部が独立して発生するデータ転送要求を管理し前記データ記憶部にアクセスするデータ転送制御部と、前記複数のバスマスタ部と前記データ転送制御部とを結ぶ複数のバス部Ａと、前記データ転送制御部と前記データ記憶部とを結ぶバス部Ｂとを備え、前記複数のバスマスタ部が前記バス部Ａと前記データ転送制御部と前記バス部Ｂとを介してデータ転送を行う。前記半導体集積回路は、さらに、前記複数のバスマスタ部が前記バス部Ａと前記データ転送制御部と前記バス部Ｂとを介して前記データ記憶部にアクセスする際のメモリバンド幅を監視するメモリバンド幅監視部と、前記複数のバスマスタ部と同様に前記データ転送制御部とバス接続された再構成部と、前記メモリバンド幅監視部の出力情報をもとに前記再構成部を制御する再構成制御部とを備えていることを特徴とする。【０１３３】
この構成では、メモリバンド幅が所定の値に達したかどうかを判定し、その判定結果に応じて再構成部を最適制御することが可能となる。【０１３４】
また、前記半導体集積回路において、前記メモリバンド幅監視部により、前記複数のバスマスタ部が前記バス部Ａと前記データ転送制御部と前記バス部Ｂとを介して前記データ記憶部にアクセスする際のメモリバンド幅が所定の値に達したと判定された場合、前記再構成制御部は、前記再構成部を所定の回路構成に再構成することを特徴とする。【０１３５】
また、前記半導体集積回路において、前記メモリバンド幅監視部により、メモリバンド幅に空きがあると判断する閾値より使用メモリバンド幅が小さいと判定された時は、演算部あるいは制御部としての論理部を構成し、使用メモリバンド幅が大きいと判定された時は、前記再構成部を前記複数のバスマスタ部が前記データ記憶部にアクセスする際のアクセスデータを一時的に保持するバッファ部を構成する。前記半導体集積回路は、さらに、前記再構成部が前記バッファ部を構成する際、再構成実施直前の前記論理部の処理状態を保持する状態保持部を備えていることを特徴とする。【０１３６】
また、前記半導体集積回路において、データ記憶部へのアクセスの優先度が高く、リアルタイム応答を要求されるバスマスタ部によるデータ記憶部へのアクセス要求が実行されていない場合であって、メモリバンド幅に空きがあるときに、前記論理部は、その空き分のみを使用するバスマスタ部としての演算部あるいは制御部を構成することを特徴とする。【０１３７】
また、前記半導体集積回路において、前記再構成制御部が前記メモリバンド幅監視部により、メモリバンド幅が空いていると判断する閾値より使用メモリバンド幅が小さいと判定された時は、演算部あるいは制御部としての論理部を構成する。また、使用メモリバンド幅が前記閾値より大きいと判定された時は、前記再構成部を前記複数のバスマスタ部が前記データ記憶部にアクセスする際のアクセスデータを一時的に保持するバッファ部と前記論理部とを混在して構成することを特徴とする。【０１３８】
また、前記半導体集積回路において、前記再構成部が前記バッファ部を構成する際、再構成の実施直前の前記論理部の処理状態を保持する状態保持部を備えていることを特徴とする。【０１３９】
また、前記半導体集積回路において、前記論理部も前記バッファ部にアクセスすることを特徴とする。【０１４０】
また、前記半導体集積回路において、データ記憶部へのアクセスの優先度が高く、リアルタイム応答を要求されるバスマスタ部によるデータ記憶部へのアクセス要求が実行されていない場合であって、メモリバンド幅に空きがある場合に、前記論理部は、その空き分のみを使用するバスマスタ部としての演算部あるいは制御部を構成することを特徴とする。【０１４１】
また、又は本発明に係る半導体集積回路では、転送されるデータを記憶するデータ記憶部にアクセスする複数のバスマスタ部と、前記複数のバスマスタ部が独立して発生するデータ転送要求を管理し前記データ記憶部にアクセスするデータ転送制御部と、前記複数のバスマスタ部と前記データ転送制御部とを結ぶ複数のバス部Ａと、前記データ転送制御部と前記データ記憶部とを結ぶバス部Ｂとを備え、前記複数のバスマスタ部が前記バス部Ａと前記データ転送制御部と前記バス部Ｂとを介してデータ転送を行う半導体集積回路であって、前記複数のバスマスタ部が前記バス部Ａと前記データ転送制御部と前記バス部Ｂとを介して前記データ記憶部にアクセスする際のメモリバンド幅を監視するメモリバンド幅監視部と、前記複数のバスマスタ部と同様に前記データ転送制御部とバス接続された再構成部と、前記メモリバンド幅監視部の出力情報をもとに前記再構成部を制御する再構成制御部とを備えており、前記再構成部が、演算部あるいは制御部としての論理部と、前記複数のバスマスタ部が前記データ記憶部にアクセスする際のアクセスデータを一時的に保持するバッファとを混在して構成すること特徴としている。【０１４２】
この構成では、メモリバンド幅の状況に応じて、リアルタイム応答を要求されるためデータ記憶部アクセス時の優先度の高いバスマスタ部のデータ記憶部へのアクセス要求が実行されていない場合であるメモリバンド幅に空きがある場合に、その空き分のみを使用するバスマスタ部と、メモリバンド幅確保のために使用されるデータ記憶部へのアクセスデータの一時バッファとを、最適に構成することができ、バッファ資源の増大を防ぎ、低コストでメモリバンド幅の有効活用ができる。【０１４３】
本発明によれば、再構成回路により、システム動作中にオーバースペックとなっている不要な演算部あるいは制御部をバッファとして活用することにより低コストでメモリバンド幅を有効活用することが出来る。
【産業上の利用可能性】
【０１４４】
本発明は、システムＬＳＩにおいて、リアルタイム応答を要求され、データ記憶部へのアクセス時に高い優先度が割り当てられるバスマスタ部が備えられ、当該バスマスタ部によるデータ記憶部へのアクセス要求が実行されていない場合であって、メモリバンド幅に空きがある場合に、その空き分のみを使用するバスマスタ部を有し、再構成可能ロジックを搭載する民生機器に有用である。
【図１】
2009060567.tif 000003
【図２】
2009060567.tif 000004
【図３】
2009060567.tif 000005
【図４】
2009060567.tif 000006
【図５】
2009060567.tif 000007
【図６】
2009060567.tif 000008
【図７】
2009060567.tif 000009
【図８】
2009060567.tif 000010
【図９】
2009060567.tif 000011
【図１０】
2009060567.tif 000012
【図１１】
2009060567.tif 000013
【図１２】
2009060567.tif 000014
【図１３】
2009060567.tif 000015
【図１４】
2009060567.tif 000016
【図１５】
2009060567.tif 000017
【手続補正書】
【提出日】平成21年6月25日(2009.6.25)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のバスマスタ、バス及びメモリを備える半導体集積回路において、各バスマスタがバスを介してメモリとの間でデータ転送を行う技術に関し、特に、データ転送の性能の向上を図る技術に関する。
【背景技術】
【０００２】
従来、複数のバスマスタ、バス及びメモリを備える半導体集積回路において、各バスマスタがバスを介してメモリとの間でデータ転送を行う場合に、特許文献１に記載されているバス制御装置では、メモリなどのスレーブデバイスにバスアクセスデータを一時的に保持するバッファを設け、バッファの存在を前提とした上で、複数の並列バスあるいは時分割バスのアービトレーションを実行することによりシステム性能の向上を実現している。
【０００３】
また、特許文献２によると、再構成回路において、メモリセルとスイッチング素子とを組み合わせた組合せ回路を多数集積したアレイを設けると共に、各組合せ回路のメモリ機能を使用するか論理機能を使用するかを制御する制御回路を開示している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１０−２１４２４９号公報
【特許文献２】特開平４−２５２５１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、前記従来の構成では、メモリバンド幅確保のための専用バッファを設けることになり、面積及びコストが増大してしまう。
本発明は、前記従来の課題を解決するため、面積及びコストを増大させることなく、データの転送に必要なメモリバンド幅を確保して、データの転送の性能を向上させることができるデータ転送制御装置、データ転送装置、データ転送制御方法及び半導体集積回路を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明は、外部デバイスとの間のデータの転送を制御するデータ転送制御装置であって、再構成可能な回路を備える再構成手段と、データの転送を要求する内部デバイスと、内部デバイスと外部デバイスとの間でデータ転送を中継するとともに、前記転送要求により必要とされるメモリバンド幅に応じて、データ転送を支援する回路を定める再構成情報を取得する転送制御部と、取得された前記再構成情報に基づいて、前記再構成手段における回路の再構成を制御する再構成制御手段とを備えることを特徴とする。
【発明の効果】
【０００７】
この構成によると、内部デバイスと外部デバイスとの間のデータ転送により必要とされるメモリバンド幅に応じて、定められデータ転送を支援する回路を定める再構成情報に基づいて、前記再構成手段における回路の再構成を制御するので、面積及びコストを増大させることなく、再構成手段により再構成された回路により、データ転送を支援することができる。
【０００８】
ここで、前記転送制御部は、前記メモリバンド幅が所定閾値以上である場合に、前記再構成情報を取得し、前記再構成制御手段は、取得された前記再構成情報を用いて、前記再構成手段に対して回路を再構成するよう制御するとしてもよい。
この構成によると、前記メモリバンド幅が所定閾値以上である場合に、前記再構成手段に再構成された回路により、データ転送を支援することができる。
【０００９】
ここで、前記転送制御部は、前記転送要求に係るデータを一時的に保持するバッファ部としての回路を定める前記再構成情報を取得し、前記再構成制御手段は、前記バッファ部としての回路を再構成するように前記再構成手段を制御してもよい。
この構成によると、前記再構成手段には、前記バッファ部としての回路が再構成されるので、データ転送においてバッファ部を用いることができる。
【００１０】
ここで、前記再構成情報は、さらに、演算部又は制御部としての回路を定め、前記再構成制御手段は、さらに、演算部又は制御部としての回路を再構成するように前記再構成手段を制御してもよい。
ここで、データ転送装置は、さらに、前記再構成手段が回路を再構成する場合、再構成直前に前記再構成手段に構築されている現回路の処理状態を保持する状態保持手段を備えるとしてもよい。
【００１１】
前記再構成手段は、さらに、前記再構成手段が前に構築された回路を再構成する場合、前記状態保持手段に保持されている回路の処理状態を用いるとしてもよい。
ここで、前記転送制御部は、前記メモリバンド幅が所定閾値より小さい場合に、演算部又は制御部としての回路を定める前記再構成情報を取得し、前記再構成制御手段は、前記メモリバンド幅が所定閾値より小さい場合に、演算部又は制御部としての回路を再構成するように前記再構成手段を制御してもよい。
【００１２】
この構成によると、前記メモリバンド幅が所定閾値より小さい場合に、前記再構成手段に演算部又は制御部としての回路を再構成するので、データ転送において用いることのない初期値としての回路を構成することができる。
ここで、前記転送制御部は、前記メモリバンド幅が所定閾値より小さい場合に、演算部又は制御部としての回路を定める前記再構成情報を取得し、前記メモリバンド幅が所定閾値以上である場合に、前記転送要求に係るデータを一時的に保持するバッファ部としての回路を定める前記再構成情報を取得し、前記再構成制御手段は、前記メモリバンド幅が所定閾値より小さい場合に、演算部又は制御部としての回路を再構成するように前記再構成手段を制御し、前記メモリバンド幅が所定閾値以上である場合に、前記バッファ部としての回路を再構成するように前記再構成手段を制御し、データ転送装置は、さらに、前記再構成手段が回路を再構成する場合、再構成直前に前記再構成手段に構築されている回路の処理状態を保持する状態保持手段を備えるとしてもよい。
【００１３】
この構成によると、前記メモリバンド幅が所定閾値以上である場合に、前記再構成手段に再構成された回路により、データ転送を支援することができるとともに、前記メモリバンド幅が所定閾値より小さい場合に、前記再構成手段に演算部又は制御部としての回路を再構成するので、データ転送において用いることのない初期値としての回路を構成することができる。
【００１４】
ここで、前記再構成手段は、前記内部デバイスによるデータの転送要求が実行されていない時間帯において、メモリバンド幅に空きがあるときに、その空き分のみを使用するデバイスとしての演算部又は制御部を構成するとしてもよい。
ここで、前記転送制御部は、前記メモリバンド幅が所定閾値より小さい場合に、演算部又は制御部としての回路を定める前記再構成情報を取得し、前記メモリバンド幅が所定閾値以上である場合に、演算部又は制御部としての回路及び前記転送要求に係るデータを一時的に保持するバッファ部としての回路を定める前記再構成情報を取得し、前記再構成制御手段は、前記メモリバンド幅が所定閾値より小さい場合に、演算部又は制御部としての回路を再構成するように前記再構成手段を制御し、前記メモリバンド幅が所定閾値以上である場合に、演算部又は制御部としての回路及び前記バッファ部としての回路を再構成するように前記再構成手段を制御するとしてもよい。
【００１５】
ここで、データ転送装置は、さらに、前記再構成手段がバッファ部を再構成する場合、再構成直前に前記再構成手段に構築されている回路の処理状態を保持する状態保持手段を備えるとしてもよい。
ここで、前記転送制御部は、前記メモリバンド幅が所定閾値以上である場合に取得する前記再構成情報は、前記バッファ部にアクセスする前記演算部又は制御部としての回路を定め、前記再構成制御手段は、前記メモリバンド幅が所定閾値以上である場合に、前記バッファ部にアクセスする前記演算部又は制御部としての回路を再構成するように前記再構成手段を制御するとしてもよい。
【００１６】
ここで、前記再構成手段は、内部デバイスによる転送要求に高い優先度が割り当てられ、リアルタイム応答を要求される前記内部デバイスによるデータの転送要求が実行されていない時間帯において、メモリバンド幅に空きがあるときに、その空き分のみを使用するデバイスとしての演算部又は制御部を構成するとしてもよい。
また、本発明は、内部のデバイス間でデータを転送するデータ転送装置であって、再構成可能な回路を備える再構成手段と、データの転送要求を出力する第１デバイスと、第１デバイスによる転送要求の対象である第２デバイスと、第１デバイスと第２デバイスとの間でデータ転送を中継するとともに、前記転送要求により必要とされるメモリバンド幅に応じて、データ転送を支援する回路を定める再構成情報を取得する転送制御部と、取得された前記再構成情報に基づいて、前記再構成手段における回路の再構成を制御する再構成制御手段とを備えることを特徴とする。
【００１７】
ここで、前記データ転送装置は、リアルタイム処理を行うリアルタイム処理装置であり、前記第２デバイスは、データを記憶するための記憶デバイスであり、前記第１デバイスは、リアルタイム応答を要求され、前記記憶デバイスに対してデータの書き込みを要求し、又は前記記憶デバイスからデータの読み出しを要求するとしてもよい。
また、本発明は、内部デバイスと転送要求の対象である外部デバイスとの間でデータの転送を中継する半導体集積回路であって、再構成可能な回路を備える再構成手段と、データの転送要求を出力する内部デバイスと、内部デバイスと外部デバイスとの間でデータ転送を中継するとともに、前記転送要求により必要とされるメモリバンド幅に応じて、データ転送を支援する回路を定める再構成情報を取得する転送制御部と、取得された前記再構成情報に基づいて、前記再構成手段における回路の再構成を制御する再構成制御手段とを備えることを特徴とする。
【００１８】
以上、本発明によれば、再構成回路により、システム動作中にオーバースペックとなっている不要な演算部あるいは制御部をバッファとして活用することにより低コストでメモリバンド幅を有効活用することが出来る。
【図面の簡単な説明】
【００１９】
【図１】民生機器１０の基本構成を示す構成図である。
【図２】再構成回路１１００の構成を示す。
【図３】論理回路４０１１の構成を示す。
【図４】状態保持テーブル５０００のデータ構造を示す。
【図５】メモリバンド幅監視部１２１０の構成を示す。
【図６】閾値テーブル３０００のデータ構造を示す。
【図７】閾値テーブル３０００のデータ構造の一例を示す。
【図８】民生機器１０における動作フローの概略を示すフローチャートである。
【図９】民生機器１０における動作フローを示すフローチャートである。図１０へ続く。
【図１０】民生機器１０における動作フローを示すフローチャートである。図１１へ続く。
【図１１】民生機器１０における動作フローを示すフローチャートである。図１２へ続く。
【図１２】民生機器１０における動作フローを示すフローチャートである。図１１から続く。
【図１３】再構成情報の取得の動作フローを示すフローチャートである。
【図１４】再構成回路の再構成の動作フローを示すフローチャートである。
【図１５】再構成部１１１０の回路構成の遷移を示す。
【発明を実施するための形態】
【００２０】
以下、本発明に係る一の実施の形態としての民生機器１０について、図面を参照しながら説明する。
（実施の形態）
１．民生機器１０の構成
民生機器１０は、例えば、デジタル放送受信装置、携帯電話、ＤＶＤ再生装置などであり、民生機器１０が実行する複数の処理のうち、映像や音楽などの再生のようにリアルタイム性が要求される処理などを、他の処理に優先して、行うリアルタイム処理装置である。図１に、民生機器１０の基本的な構成を示す。
【００２１】
民生機器１０は、図１に示すように、半導体集積回路１００、データ記憶部１００２及び図示していないその他の構成要素から構成されており、半導体集積回路１００とデータ記憶部１００２とは、バス部１００６を介して接続されている。半導体集積回路１００は、第一バスマスタ部１０００、第二バスマスタ部１００１、データ転送制御部１２００及び再構成回路１１００から構成されており、第一バスマスタ部１０００とデータ転送制御部１２００とは、バス部１００３を介して接続され、第二バスマスタ部１００１とデータ転送制御部１２００とは、バス部１００７を介して接続され、後述する論理部１１１１とデータ転送制御部１２００とは、バス部１００４を介して接続され、後述するバッファ部１１１２とデータ転送制御部１２００とは、バス部１００５を介して接続されている。
【００２２】
なお、簡略化のため、半導体集積回路１００は、第一バスマスタ部１０００及び第二バスマスタ部１００１の２個のバスマスタ部のみを含むとしているが、半導体集積回路１００は、３個以上のバスマスタ部を含むとしてもよい。
また、第一バスマスタ部１０００、第二バスマスタ部１００１及び及びデータ記憶部１００２をそれぞれ第１デバイス、第２デバイス及び第３デバイスと呼ぶこともある。
【００２３】
１．１  第一バスマスタ部１０００及び第二バスマスタ部１００１
第一バスマスタ部１０００は、一例として、デジタル放送により放送される番組を受信し、受信した番組をデータとして蓄積するように制御するための制御回路であり、受信した放送波からユーザの所望のチャネルを選択し、選択したチャネルからユーザの所望の番組を抽出し、抽出した番組をデータ記憶部１００２に蓄積する。ここで、受信した放送波から番組を抽出して蓄積する処理は、リアルタイムに行われるべきものである。また、第二バスマスタ部１００１は、一例として、番組を再生する回路であり、データ記憶部１００２から蓄積されている番組を読み出し、読み出された番組を再生して、その映像信号及び音声信号を生成し、生成した映像信号及び音声信号を外部のモニタ装置へ出力する。ここで、番組を再生して映像信号及び音声信号を出力する処理も、リアルタイムに行われるべきものである。
【００２４】
第一バスマスタ部１０００及び第二バスマスタ部１００１は、それぞれ、データ転送制御部１２００に対して、データの転送要求を出力する。ここで、データの転送要求とは、データを保持するためのデータ記憶部１００２へのデータの書込み要求又はデータ記憶部１００２からのデータの読出し要求などである。
データ記憶部１００２へのアクセスについて、例えば、第二バスマスタ部１００１に割り当てられた優先度より高い優先度が第一バスマスタ部１０００に割り当てられている。第一バスマスタ部１０００及び第二バスマスタ部１００１それぞれから同時に発生したデータの転送要求は、前記の優先度に基づいて、データ転送制御部１２００により調停される。
【００２５】
１．２  再構成回路１１００
再構成回路１１００は、民生機器１０の動作中においても動的に内部の回路構成を変更することを実現する回路である。
図１及び図２に示すように、再構成回路１１００は、再構成部１１１０、再構成制御部１１２０及び状態保持部１１３０から構成されている。なお、再構成部１１１０は、動的に回路構成を変更することできる可変回路であり、一方、再構成制御部１１２０及び状態保持部１１３０は、回路構成を変更することができない固定回路である。
【００２６】
（１）再構成部１１１０
再構成部１１１０は、動的に回路構成の変更が可能な回路であり、再構成制御部１１２０の制御により、後述する再構成情報を用いて、その内部に、演算及び制御を実行する論理部１１１１及びデータを保持するためのバッファ部１１１２を構築する。
回路が構築された後の再構成部１１１０は、図２に示すように、論理部１１１１及びバッファ部１１１２から構成され、論理部１１１１は、状態管理部４００２、演算データ要求部４００５及び論理回路４０１１から構成され、バッファ部１１１２は、バッファ制御部４０００及びバッファ用メモリ４０２１から構成される。
【００２７】
データ記憶部１００２へのアクセスについて、第二バスマスタ部１００１に割り当てられた優先度より高い優先度が第一バスマスタ部１０００に割り当てられ、第一バスマスタ部１０００が、リアルタイム応答を必要とするデータ記憶部１００２へのアクセス要求をする場合、第一バスマスタ部１０００から当該アクセス要求がまだ出力されておらず（つまり、出力されていない時間帯において）、当該アクセス要求がまだ実行されていないとき（つまり、実行されていない時間帯）であって、メモリバンド幅に空きがあるときに、再構成部１１１０は、その空き分のみを使用し、バスマスタ部として動作する演算回路又は制御回路を実現する論理部１１１１及びデータを保持するバッファ部１１１２を構築する。
（演算データ要求部４００５）
演算データ要求部４００５は、演算処理中に再構成実施要求信号１２１１により論理部１１１１の回路構成が変更され、新たに論理回路４０１１を構築するために、状態保持部１１３０に退避されたデータが必要になった場合、演算データ要求信号４００６を状態保持部１１３０へ出力し、状態保持部１１３０から指示信号４００７とともに、退避演算データ４００８を獲得する。
（論理回路４０１１）
論理回路４０１１は、ユーザの民生機器１０の利用状況に応じて、再構成すべき回路である。論理回路４０１１の一例を図３に示す。
【００２８】
論理回路４０１１は、再構成された結果、一例として図３に示すように、複数の演算器６０００、演算器６００１、演算器６００２から構成されるものとする。各演算部は、一つの演算結果を持つ。演算器６０００は、その演算処理の後、演算器６０００による演算結果を演算器６００１へ出力する。演算器６００１は、演算器６０００による演算結果を用いて、演算処理をし、その演算結果をさらに演算器６００２へ出力する。演算器６００２は、演算器６００１による演算結果を用いて、演算処理をする。
【００２９】
ここで、例えば、演算器６０００の演算が終了した直後であって、演算器６００１の演算が終了する前に、論理回路４０１１に、再構成情報により、別の回路が再構成され、その後、再び、論理回路４０１１に元の演算器６０００、演算器６００１、演算器６００２が再構成されたとする。このような場合には、新たに再構成された演算器６０００、演算器６００１、演算器６００２は、新たに演算処理を行うのではなく、前の演算結果を利用できると、無駄な演算をしなくて済む。このため、例えば、演算器６０００、演算器６００１、演算器６００２の途中の演算結果がそれぞれ蓄積されている必要がある。また、次に演算を再開するときに、どの演算器から開始すべきかなどの情報を蓄積されている必要がある。
【００３０】
なお、簡略化のため、論理回路４０１１には、３個の演算器６０００、演算器６００１、演算器６００２が構成されるとしているが、論理回路４０１１上の構成される演算器の数は任意である。
また、再構成部１１１０には、演算器と演算器との接続を切り換える配線制御回路なども備えられており、再構成情報に従って、演算器と演算器との接続を切り換えることにより、論理回路４０１１が構成される。
（状態管理部４００２）
状態管理部４００２は、論理部１１１１の状態を示す論理部状態信号４００１を生成し、生成した論理部状態信号４００１を状態保持部１１３０へ出力する。ここで、論理部状態信号４００１は、例えば、上記の各演算器の演算結果、次に演算を再開するときに、どの演算器から開始すべきかなどの情報などである。
（バッファ制御部４０００）
バッファ制御部４０００は、後述するバッファアクセス要求部１２２０からバッファアクセス書込要求信号１２２１を受け取る。バッファアクセス書込要求信号１２２１を受け取ると、バス部１００５を介して転送されるデータをバッファ部１１１２のバッファ用メモリ４０２１に格納する。
【００３１】
また、バッファ制御部４０００は、バッファアクセス要求部１２２０からバッファアクセス読出要求信号１２２２を受け取る。バッファアクセス読出要求信号１２２２を受け取ると、バッファ部１１１２のバッファ用メモリ４０２１に格納されたデータを、バス部１００５を介して、データ転送制御部１２００へ転送する。
このとき、バッファ部１１１２のバッファ用メモリ４０２１に格納されているデータを全て転送し、バッファ部１１１２のバッファ用メモリ４０２１が空になれば、バッファ制御部４０００は、再構成制御部１１２０に対して、バッファ空信号４００４を出力する。
（バッファ用メモリ４０２１）
バッファ用メモリ４０２１は、バッファ制御部４０００の制御により、データを一時的に記憶する。
【００３２】
（２）再構成制御部１１２０
再構成制御部１１２０は、再構成部１１１０に回路を構築するよう制御する。
再構成制御部１１２０は、メモリバンド幅監視部１２１０から再構成実施要求信号１２１１を受け取る。再構成実施要求信号１２１１を受け取ると、再構成制御部１１２０は、再構成情報１２１２及び前回の再構成時に状態保持部１１３０に保持された情報をもとに再構成部１１１０を再構成すると同時に、状態保持部１１３０に再構成実施信号４００３を出力する。
【００３３】
また、再構成実施要求信号１２１１が出力されておらずメモリバンド幅が閾値を超えていない場合、バッファ空信号４００４を受け取った再構成制御部１１２０は、状態保持部１１３０により保持された情報をもとに論理部１１１１をバッファ部１１１２が構成される前の初期状態である回路Ａとして構成する。
（３）状態保持部１１３０
状態保持部１１３０は、動的に回路構成が変更される際に、変更前の回路状態や演算途中の値を保持するための状態保持テーブル５０００を記憶している。
【００３４】
状態保持テーブル５０００は、図４に示すように、複数の状態情報から構成され、各状態情報は、論理回路４０１１に構成された演算器に対応し、演算器ＩＤ、有効無効区分及び演算結果値から構成されている。演算器ＩＤは、対応する演算器を識別する識別情報である。有効無効区分は、対応する演算器が有効であるか無効であるかを示す。有効であるとは、当該演算器が論理回路４０１１の一部として機能していることを示し、無効であるは、当該演算器が論理回路４０１１の一部として機能していないことを示す。演算結果値は、対応する演算器による演算処理により得られた結果の値を示す。
【００３５】
状態保持部１１３０は、状態保持テーブル５０００の他に、上述したように、演算器６０００、演算器６００１及び演算器６００２による演算を再開するときに、どの演算器から開始すべきかなどを示す情報を蓄積している。このような情報が論理回路４０１１の状態を示す情報の一例である。
状態保持部１１３０は、再構成制御部１１２０から再構成実施信号４００３を受け取り、また、状態管理部４００２から論理部状態信号４００１を受け取る。再構成実施信号４００３を受け取ると、状態保持部１１３０は、状態管理部４００２から受け取った論理部状態信号４００１から、その時点の論理部１１１１の状態及び演算途中の値を獲得し、獲得した状態及び値を状態保持テーブル５０００に保存する。
【００３６】
１．３  データ転送制御部１２００
データ転送制御部１２００は、第一バスマスタ部１０００及び第二バスマスタ部１００１から出力される複数の転送要求を調停し、調停結果に基づいてデータ記憶部１００２にアクセスする。データ転送制御部１２００は、図１に示すように、バッファアクセス要求部１２２０、メモリバンド幅監視部１２１０及び図示していない他の構成要素から構成されている。
【００３７】
（１）バッファアクセス要求部１２２０
バッファアクセス要求部１２２０は、第一バスマスタ部１０００（又は第二バスマスタ部１００１）がデータ記憶部１００２へアクセスする場合に、（ａ）アクセス対象となるデータをバッファ部１１１２のバッファ用メモリ４０２１へ保持するとき、バッファ部１１１２へ、バッファ用メモリ４０２１へのデータの書込みの要求を意味するバッファアクセス書込要求信号１２２１を出力し、（ｂ）アクセス対象となるデータをバッファ部１１１２のバッファ用メモリ４０２１から読み出すとき、バッファ部１１１２へ、バッファ用メモリ４０２１からのデータの読出しの要求を意味するバッファアクセス読出要求信号１２２２を出力する。
【００３８】
（２）メモリバンド幅監視部１２１０
メモリバンド幅監視部１２１０は、メモリバンド幅の使用状況を監視し、再構成制御部１１２０に対して再構成実施を要求する再構成実施要求信号１２１１、及び再構成に必要な情報である再構成情報１２１２を通知する。
メモリバンド幅監視部１２１０は、図５に示すように、メモリバンド幅算出部２０００、閾値保持部２００１、メモリバンド幅比較部２００２及びメモリバンド幅情報通知部２００３から構成される。
（メモリバンド幅算出部２０００）
メモリバンド幅算出部２０００は、第一バスマスタ部１０００及び第二バスマスタ部１００１が発行するデータ記憶部１００２へのアクセスコマンドよりメモリバンド幅を計測する。アクセスコマンドには、データの転送サイズ（又は転送回数）が含まれており、メモリバンド幅算出部２０００は、アクセスコマンドのうち、データ転送制御部１２００により調停され、実行対象となるアクセスコマンドから、単位時間内の転送サイズの和を算出して、これをメモリバンド幅とする。次に、算出したメモリバンド幅をメモリバンド幅比較部２００２へ出力する。アクセスコマンドが取得できない場合、例えば、第一バスマスタ部１０００又は第二バスマスタ部１００１によりアクセスコマンドが発行されていない時間帯においては、メモリバンド幅を「０」として算出する。
（閾値保持部２００１）
閾値保持部２００１は、図６に示すように、メモリバンド幅の閾値情報として閾値テーブル３０００を保持している。
【００３９】
メモリバンド幅の取り得る値の範囲は、複数の区間に分けられている。閾値テーブル３０００は、区間毎に、再構成部１１１０の論理部１１１１及びバッファ部１１１２として再構成すべき回路及びバッファを定めている。閾値テーブル３０００は、メモリバンド幅算出部２０００により求められたメモリバンド幅に応じて、再構成部１１１０が内部にどのような論理回路を構成するかを決定するために用いられる。
【００４０】
閾値テーブル３０００は、図６に示すように、複数の閾値情報から構成され、各閾値情報は、各区間に対応している。各閾値情報は、閾値、バッファ容量情報及び論理部回路構成情報を含む。閾値は、対応する区間の上限値であり、バッファ容量情報は、再構成部１１１０に構成されるバッファ部１１１２の容量であり、論理部回路構成情報は、再構成部１１１０の論理部１１１１に構成されるべき回路の構成情報である。
【００４１】
具体例として、閾値テーブル３０００は、閾値「１．６ＧＢ／ｓ」、バッファ容量情報「０ＭＢ」及び論理部回路構成情報「回路Ａ」を含む閾値情報、閾値「１．８ＧＢ／ｓ」、バッファ容量情報「６４ＭＢ」及び論理部回路構成情報「回路Ｂ」を含む閾値情報、閾値「２．０ＧＢ／ｓ」、バッファ容量情報「１２８ＭＢ」及び論理部回路構成情報「回路Ｃ」を含む閾値情報及び閾値「∞」、バッファ容量「１９２ＭＢ」及び論理部回路構成情報「回路Ｄ」を含む閾値情報から構成されている。
【００４２】
ここで、「回路Ａ」は、再構成部１１１０に、論理部１１１１として、状態管理部４００２、演算データ要求部４００５及び論理回路４０１１を再構成し、バッファ制御部４０００を再構成するための回路構成情報を含むものとする。また、論理回路４０１１は、演算部、制御部、又は演算部及び制御部を含む。
また、「回路Ｂ」、「回路Ｃ」及び「回路Ｄ」は、それぞれ、再構成部１１１０に、論理回路４０１１を再構成するための回路構成情報を含むものとし、「回路Ｂ」、「回路Ｃ」及び「回路Ｄ」の回路構成情報は、状態管理部４００２、演算データ要求部４００５及び論理回路４０１１を再構成することなく、状態管理部４００２、演算データ要求部４００５及び論理回路４０１１は、そのまま維持されるものとする。また、論理回路４０１１は、演算部、制御部、又は演算部及び制御部を含む。
【００４３】
図６に一例として示す閾値テーブル３０００は、次のことを意味している。つまり、民生機器１０への電源投入あるいはリセットにより、又は、算出されたメモリバンド幅が１．６ＧＢ／ｓ未満の場合に、再構成部１１１０は、バッファ部１１１２を持たず、論理部１１１１に回路Ａを構成する。算出されたメモリバンド幅が１．６ＧＢ／ｓ以上、かつ、１．８ＧＢ／ｓ未満の場合に、６４ＭＢの容量を有するバッファ部１１１２を構成し、論理部１１１１に回路Ｂを構成する。算出されたメモリバンド幅が１．８ＧＢ／ｓ以上、かつ、２．０ＧＢ／ｓ未満の場合に、１２８ＭＢの容量を有するバッファ部１１１２を構成し、論理部１１１１に回路Ｃを構成する。算出されたメモリバンド幅が２．０ＧＢ／ｓ以上の場合に、１９２ＭＢの容量を有するバッファ部１１１２を構成し、論理部１１１１に回路Ｄを構成する。
【００４４】
なお、図６に示す閾値テーブル３０００では、一つの閾値に一種の回路のみが対応しているが、一つの閾値に複数種類の回路を対応させ、再構成の都度どの回路を利用するか調停し選択する構成でもよい。具体的には、図７に示すように、閾値テーブル３０００は、閾値情報３０００ａを含み、閾値情報３０００ａは、閾値「１．８ＧＢ／ｓ」、バッファ容量情報「６４ＭＢ」及び論理部回路構成情報「回路Ｘ、回路Ｙ、回路Ｚ」を含むとしてもよい。閾値情報３０００ａは、算出されたメモリバンド幅が１．６ＧＢ／ｓ以上、かつ、１．８ＧＢ／ｓ未満の場合に、６４ＭＢの容量を有するバッファ部１１１２を構成し、論理部１１１１に回路Ｘ、回路Ｙ、回路Ｚを構成することを意味している。
【００４５】
また、図６に示す閾値テーブル３０００は、簡略化のため、４個の閾値情報を含むとしているが、その数は任意であり、２個の閾値情報又は３個の閾値情報を含むとしてもよいし、閾値テーブル３０００は、さらに多くの閾値情報を含むとしてもよい。なお、この閾値情報は、本半導体集積回路の設計時にあらかじめ設定されるとしてもよいし、ソフトウェアにより変更可能としてもよい。
（メモリバンド幅比較部２００２）
メモリバンド幅比較部２００２は、メモリバンド幅算出部２０００からメモリバンド幅を受け取り、閾値保持部２００１から閾値テーブル３０００に含まれる全ての閾値情報を読み出し、上記に説明したように、メモリバンド幅算出部２０００により求められたメモリバンド幅と閾値保持部２００１に保持されている閾値の比較を行い、比較結果をメモリバンド幅情報通知部２００３へ出力する。
（メモリバンド幅情報通知部２００３）
メモリバンド幅情報通知部２００３は、メモリバンド幅比較部２００２から比較結果を受け取り、メモリバンド幅比較部２００２によりメモリバンド幅算出部２０００により求められたメモリバンド幅が閾値保持部２００１に保持されているメモリバンド幅より大きい値をとった場合に、比較結果に対応するバッファ容量情報及び論理部回路構成情報により構成されるバッファ部１１１２及び論理部１１１１が現在のバッファ部１１１２及び論理部１１１１と異なるときに限り、比較結果に対応するバッファ容量情報及び論理部回路構成情報により、再構成情報１２１２を生成し、再構成制御部１１２０に対して再構成実施要求信号１２１１及び再構成情報１２１２を出力する。比較結果に対応するバッファ容量情報及び論理部回路構成情報により構成されるバッファ部１１１２及び論理部１１１１が現在のバッファ部１１１２及び論理部１１１１と同一であるときには、再構成の必要はない。
【００４６】
２．民生機器１０の動作
ここでは、民生機器１０の動作について説明する。
（１）半導体集積回路１００における動作の概略
半導体集積回路１００における動作の概略について、図８に示すフローチャートを用いて説明する。
【００４７】
半導体集積回路１００は、電源又はリセットの投入を受け付けると（ステップＳ７０００）、再構成部１１１０は、初期状態を構成する（ステップＳ７００１）。
次に、メモリバンド幅比較部２００２は、算出されたメモリバンド幅が閾値を超えるか否かを判断し（ステップＳ７００２）、閾値を超えない場合には（ステップＳ７００２でＮ）、ステップＳ７００２に戻って比較を繰り返す。
【００４８】
閾値を超える場合には（ステップＳ７００２でＹ）、再構成実施信号４００３を受けた状態保持部１１３０は、論理部状態信号４００１から再構成前の状態を獲得し保存し（ステップＳ７００３）、次に、再構成制御部１１２０は、論理部１１１１に論理回路４０１１を構成させ、バッファ部１１１２にバッファ用メモリ４０２１を構成させる（ステップＳ７００４）。
【００４９】
バッファ制御部４０００が再構成制御部１１２０に対して、バッファ空信号４００４を出力していない場合に（ステップＳ７００５でＮ）、ステップＳ７００２へ戻って処理を繰り返す。
バッファ空信号４００４を出力した場合に（ステップＳ７００５でＹ）、状態保持部１１３０により保持された情報をもとに、論理部１１１１がバッファ部１１１２を構成する前の論理部の状態に復元される（ステップＳ７００６）。
【００５０】
次に、ステップＳ７００２へ戻って処理を繰り返す。
（２）半導体集積回路１００における動作の詳細
半導体集積回路１００における動作の詳細について、図９〜図１２に示すフローチャートを用いて説明する。
データ転送制御部１２００は、電源又はリセットの投入を受け付けると（ステップＳ１０１）、再構成情報を取得する。ここで取得した再構成情報は、電源又はリセットの投入直後に取得したものであるので、初期値である。なお、再構成情報の取得の詳細については、後述する（ステップＳ１０２）。次に、再構成実施要求信号及び取得した再構成情報（初期値）を再構成制御部１１２０へ出力する（ステップＳ１０３）。次に、再構成制御部１１２０は、再構成実施要求信号及び再構成情報（初期値）を再構成部１１１０へ出力し、再構成部１１１０は、受け取った再構成情報に従って論理部１１１１及びバッファ部１１１２を再構成する（ステップＳ１０５）。
【００５１】
ここまでは、半導体集積回路１００における再構成部１１１０の初期化について説明しており、図８のステップＳ７０００〜Ｓ７００１に対応している。
次に、第一バスマスタ部１０００は、データ転送制御部１２００に対して、第１アクセスコマンドを出力する。この第１アクセスコマンドは、データ記憶部１００２へデータを転送することを示すものであり、第１アクセスコマンドには、データの転送サイズの合計値が含まれる（ステップＳ１１１）。また、第二バスマスタ部１００１は、データ転送制御部１２００に対して、第２アクセスコマンドを出力する。この第２アクセスコマンドは、データ記憶部１００２へデータを転送することを示すものであり、第２アクセスコマンドには、データの転送サイズの合計値が含まれる（ステップＳ１１２）。ここで、第一バスマスタ部１０００による第１アクセスコマンドの出力と、第二バスマスタ部１００１による第２アクセスコマンドの出力とは、ほぼ同一時刻に行われるものとする。また、第一バスマスタ部１０００が発行する第１アクセスコマンドに対して割り当てられる優先度は、第二バスマスタ部１００１が発行する第２アクセスコマンドに対して割り当てられる優先度よりも高いものであるとする。
【００５２】
データ転送制御部１２００が第一バスマスタ部１０００及び第二バスマスタ部１００１からそれぞれ第１アクセスコマンド及び第２アクセスコマンドを受け取ると、データ転送制御部１２００の調停部（図示していない）は、第１アクセスコマンド及び第２アクセスコマンドを調停する。調停は、それぞれのアクセスコマンドに割り当てられた優先度を用いて行う。ここでは、第１アクセスコマンドに割り当てられた優先度が第２アクセスコマンドに割り当てられた優先度よりも高いので、第１アクセスコマンドが、第２アクセスコマンドに優先して実行される（ステップＳ１１３）。
【００５３】
次に、データ転送制御部１２００は、再構成情報を取得する。再構成情報の取得については、後述する（ステップＳ１１４）。
データ転送制御部１２００は、現在の再構成部１１１０の構成と取得し再構成情報により構成されるべき再構成部１１１０の構成とを比較する。データ転送制御部１２００は、この比較を次のようにして行う。例えば、データ転送制御部１２００は、前回に取得し再構成に用いた再構成情報を識別する識別子を記憶しており、今回取得した再構成情報を識別する識別子と記憶している識別子とを比較する。次回の比較のために、今回取得した再構成情報を識別する識別子を記憶しておく（ステップＳ１１５）。一致していれば（ステップＳ１１５で「一致」）、再構成を実施しない。
【００５４】
一致していなければ（ステップＳ１１５で「不一致」）、再構成を実施するために、取得した再構成情報及び再構成実施要求信号を再構成回路１１００へ出力し（ステップＳ１１６）、再構成回路１１００は、再構成部１１１０において、論理部１１１１及びバッファ部１１１２を再構成する（ステップＳ１１７）。
ここまでで、再構成回路１１００における再構成部１１１０の再構成が完了する。
【００５５】
次に、第一バスマスタ部１０００（又はデータ記憶部１００２）からデータ記憶部１００２（又は第一バスマスタ部１０００）へのデータ転送について説明する。なお、以下において、「第一バスマスタ部１０００」を「第二バスマスタ部１００１」と置き換えても、以下の半導体集積回路１００の動作は、成立する。
第一バスマスタ部１０００（又はデータ記憶部１００２）は、転送すべきデータのうち、メモリバンド幅が閾値を超えた分の転送データを、データ転送制御部１２００へ出力し（ステップＳ１３１）、データ転送制御部１２００は、バッファアクセス書込要求信号をバッファ制御部４０００へ出力し（ステップＳ１３２）、転送すべきデータをバッファ制御部４０００へ出力する（ステップＳ１３３）。次に、バッファ制御部４０００は、転送すべきデータをバッファ用メモリ４０２１へ出力し（ステップＳ１３４）、バッファ用メモリ４０２１は、転送すべきデータを記憶する（ステップＳ１３５）。
【００５６】
第一バスマスタ部１０００（又はデータ記憶部１００２）からデータ記憶部１００２（又は第一バスマスタ部１０００）へ転送すべきデータの総量のうち、メモリバンド幅が閾値を超えた分の転送データが、ステップＳ１３１〜Ｓ１３５により転送できる最大のデータ量よりも大きいときは、データの転送が完了するまで、ステップＳ１３１〜Ｓ１３５が繰り返される。
【００５７】
次に、データ転送制御部は、バス部１００５の使用状況を監視しており、バス部１００５の使用状況が空き状態となると、つまり、バス部１００５において転送されるデータが存在しなければ（ステップＳ１４１でＹＥＳ）、バッファアクセス読出要求信号をバッファ制御部４０００へ出力し（ステップＳ１４２）、バッファ用メモリ４０２１は、バッファ制御部４００の制御により、データを読み出し（ステップＳ１４３）、読み出したデータをバッファ制御部４００へ出力し、読み出し対象のデータをバッファ用メモリ４０２１から削除する（ステップＳ１４５）。バッファ制御部４０００は、読み出されたデータをデータ転送制御部１２００へ出力し（ステップＳ１４６）、データ転送制御部１２００は、読み出されたデータをデータ記憶部１００２（又は第一バスマスタ部１０００）へ出力する（ステップＳ１４７）。
【００５８】
バッファ制御部４０００は、バッファ用メモリ４０２１が空か否かを監視する（ステップＳ１４８）。
バッファ用メモリ４０２１に蓄積されたデータの総量が、ステップＳ１４２〜Ｓ１４８により転送できる最大のデータ量よりも大きいときは、バッファ用メモリ４０２１に蓄積されたデータの総量の転送が完了するまで、ステップＳ１４２〜Ｓ１４８が繰り返される。
【００５９】
以上により、第一バスマスタ部１０００からデータ記憶部１００２へのデータ転送が完了する。
次に、バッファ制御部４０００によりバッファ用メモリ４０２１が空であると判断された場合（ステップＳ１４８でＹＥＳ）、バッファ制御部４０００は、バッファ空信号を再構成制御部１１２０へ出力する（ステップＳ１５１）。
【００６０】
再構成制御部１１２０は、バッファ空信号を受け取ると（ステップＳ１５１）、再構成実施要求信号を受信しているか否かを判断し（ステップＳ１５２）、受信している場合は、その要求に従って動作する。
メモリバンド幅監視部１２１０は、再構成情報を取得する。再構成情報の取得の詳細については、後述する。この時点において、第一バスマスタ部１０００又は第二バスマスタ部１００１からのアクセスコマンドの出力がなければ、初期値としての再構成情報が取得される（ステップＳ１５３）。メモリバンド幅監視部１２１０は、取得した再構成情報を再構成制御部１１２０へ出力する（ステップＳ１５４）。
【００６１】
再構成制御部１１２０が再構成実施要求信号を受信していない場合（ステップＳ１５２で「なし」）に、メモリバンド幅監視部１２１０から再構成情報（初期値）を受け取ったときは（ステップＳ１５４）、再構成制御部１１２０は、再構成情報（初期値）及び再構成実施要求信号を再構成部１１１０へ出力し（ステップＳ１５５）、再構成部１１１０は、再構成情報（初期値）に従って、論理部１１１１とバッファ部１１１２を再構成する。つまり、再構成部１１１０は、初期化される（ステップＳ１５６）。
【００６２】
（３）メモリバンド幅監視部１２１０による再構成情報の取得
次に、メモリバンド幅監視部１２１０による再構成情報の取得の動作について、図１３に示すフローチャートを用いて説明する。
メモリバンド幅監視部１２１０は、データ転送制御部１２００の調停部による調停がされたアクセスコマンドを監視している（ステップＳ２０１）。調停されたアクセスコマンドが存在すれば（ステップＳ２０２で「有」）、調停されたアクセスコマンドから転送すべきデータのサイズの和を抽出し、抽出したサイズの和をメモリバンド幅として算出する（ステップＳ２０４）。アクセスコマンドが存在しなければ、例えば、第一バスマスタ部１０００及び第二バスマスタ部１００１の両方からアクセスコマンドが発行されていない時間帯であれば（ステップＳ２０２で「無」）、「０」をメモリバンド幅とする（ステップＳ２０３）。
【００６３】
次に、メモリバンド幅監視部１２１０は、閾値テーブル３０００から先頭の閾値情報に含まれる閾値「１．６ＧＢ／ｓ」を読み出し（ステップＳ２０５）、算出したメモリバンド幅と閾値「１．６ＧＢ／ｓ」とを比較し（ステップＳ２０６）、算出したメモリバンド幅が閾値「１．６ＧＢ／ｓ」より小さければ（ステップＳ２０６でＹＥＳ）、閾値「１．６ＧＢ／ｓ」に対応するバッファ容量情報「０ＭＢ」及び論理部回路構成情報「回路Ａ」を、再構成情報として読み出し（ステップＳ２０７）、メモリバンド幅監視部１２１０による処理を終了する。
【００６４】
算出したメモリバンド幅が閾値「１．６ＧＢ／ｓ」より大きいか又は等しければ（ステップＳ２０６でＮＯ）、閾値テーブル３０００から次の閾値情報に含まれる閾値「１．８ＧＢ／ｓ」を読み出し（ステップＳ２０８）、算出したメモリバンド幅と閾値「１．８ＧＢ／ｓ」とを比較し（ステップＳ２０９）、算出したメモリバンド幅が閾値「１．８ＧＢ／ｓ」より小さければ（ステップＳ２０９でＹＥＳ）、閾値「１．８ＧＢ／ｓ」に対応するバッファ容量情報「６４ＭＢ」及び論理部回路構成情報「回路Ｂ」を、再構成情報として読み出し（ステップＳ２１０）、メモリバンド幅監視部１２１０による処理を終了する。
【００６５】
算出したメモリバンド幅が閾値「１．８ＧＢ／ｓ」より大きいか又は等しければ（ステップＳ２０９でＮＯ）、閾値テーブル３０００から次の閾値情報に含まれる閾値「２．０ＧＢ／ｓ」を読み出し（ステップＳ２１１）、算出したメモリバンド幅と閾値「２．０ＧＢ／ｓ」とを比較し、算出したメモリバンド幅が閾値「２．０ＧＢ／ｓ」より小さければ（ステップＳ２１２でＹＥＳ）、閾値「２．０ＧＢ／ｓ」に対応するバッファ容量情報「１２８ＭＢ」及び論理部回路構成情報「回路Ｃ」を、再構成情報として読み出し（ステップＳ２１３）、メモリバンド幅監視部１２１０による処理を終了する。
【００６６】
算出したメモリバンド幅が閾値「２．０ＧＢ／ｓ」より大きいか又は等しければ（ステップＳ２１２でＮＯ）、閾値テーブル３０００から次の閾値情報にバッファ容量情報「１９２ＭＢ」及び論理部回路構成情報「回路Ｄ」を、再構成情報として読み出し（ステップＳ２１４）、メモリバンド幅監視部１２１０による処理を終了する。
（４）再構成回路１１００による再構成
次に、再構成回路１１００による再構成の動作について、図１４に示すフローチャートを用いて説明する。
【００６７】
再構成制御部１１２０は、データ転送制御部１２００から再構成の指示を受け取ると、再構成実施要求信号を再構成部１１１０へ出力し（ステップＳ２５１）、再構成実施信号を状態保持部１１３０へ出力し（ステップＳ２５２）、再構成情報を再構成部１１１０へ出力する（ステップＳ２５４）。
再構成部１１１０は、再構成実施要求信号を受け取ると（ステップＳ２５１）、論理部状態信号を状態保持部１１３０へ出力し（ステップＳ２５３）、状態保持部１１３０は、論理部１１１１の状態、演算途中の値を獲得し（ステップＳ２５５）、論理部１１１１の状態、演算途中の値を保存する（ステップＳ２５６）。
【００６８】
次に、再構成部１１１０は、演算データ要求信号を状態保持部１１３０へ出力し（ステップＳ２５７）、状態保持部１１３０は、保存している論理部１１１１の状態、演算途中の値を読み出し（ステップＳ２５８）、指示信号を再構成部１１１０へ出力し（ステップＳ２５９）、読み出した論理部１１１１の状態、演算途中の値からなる退避演算データを再構成部１１１０へ出力し（ステップＳ２６０）、再構成部１１１０は、受け取った再構成情報と退避演算データとに従って、再構成部１１１０に論理部１１１１とバッファ部１１１２を再構成する（ステップＳ２６１）。
【００６９】
（５）半導体集積回路１００の動作
本実施形態における半導体集積回路１００の動作フローを簡略に述べると次のようになる。
電源あるいはリセットが投入されると、再構成制御部１１２０により論理部１１１１及びバッファ部１１１２には、初期状態の回路が構成される。
【００７０】
第一バスマスタ部１０００をはじめとする各バスマスタ部がデータ記憶部１００２へのデータ転送要求コマンドを発行すると、メモリバンド幅比較部２００２は、メモリバンド幅算出部２０００により求められるメモリバンド幅と閾値保持部２００１に保持されている閾値とを比較する。
比較の結果、求められたメモリバンド幅が閾値を超えた場合、メモリバンド幅情報通知部２００３は、再構成制御部１１２０に対して再構成実施要求信号１２１１及び再構成情報１２１２を出力する。
【００７１】
再構成実施要求信号１２１１及び再構成情報１２１２を受け取った再構成制御部１１２０は、再構成実施要求信号１２１１をもとに状態保持部１１３０に対して再構成実施信号４００３を出力する。再構成実施信号４００３を受け取った状態保持部１１３０は、論理部状態信号４００１から、その時点の論理部１１１１の状態を獲得し保存する。この論理部１１１１の状態とは、状態保持テーブル５０００のように演算器毎の状態および演算値である。
【００７２】
また、再構成制御部１１２０は、再構成情報１２１２及び前回の再構成時に状態保持部１１３０に保持された情報をもとに、再構成部１１１０に論理部１１１１とバッファ部１１１２とを再構成する。
メモリバンド幅が閾値を超えた分の転送データを、バッファアクセス書込要求信号１２２１を受けたバッファ制御部４０００がバッファ部１１１２に格納していく。
【００７３】
バス部１００５の使用状況が空き状態となると、バッファアクセス要求部１２２０は、バッファアクセス読出要求信号１２２２を出力し、バッファ部１１１２のデータがバス部１００５によりデータ転送制御部１２００へ転送され、さらにバス部１００６によりデータ記憶部１００２へと転送されていく。
また、閾値テーブル３０００に複数の閾値情報を持つ場合で、メモリバンド幅がある閾値を超え閾値テーブル３０００に従った回路構成をとり、構成されたバッファ部１１１２を用いてデータ転送中に、別の閾値を超えた場合、同様に閾値テーブル３０００に従った回路を再構成する。
【００７４】
バッファ部１１１２に格納されているデータを全て転送し、バッファ部１１１２が空になれば、バッファ制御部４０００が再構成制御部１１２０に対して、バッファ空信号４００４を出力する。また、再構成実施要求信号１２１１が出力されておらずメモリバンド幅が閾値を超えていない場合、バッファ空信号４００４を受け取った再構成制御部１１２０は、状態保持部１１３０により保持された情報をもとに論理部１１１１を、バッファ部１１１２が構成される前の初期状態の回路に再構成し、演算を再開する。
【００７５】
（６）再構成部１１１０のシステム動作における遷移の一例
次に、図１５を用いて、再構成部１１１０のシステム動作における遷移の一例について述べる。
電源投入あるいはリセットによる初期化が実行されると、再構成部１１１０は、閾値テーブル３０００に従って、論理部１１１１に回路Ａ（１１１１ａ）のみを構成する（状態８１００）。
【００７６】
その後、メモリバンド幅が１．８ＧＢ／ｓを超えたため、再構成部１１１０は、論理部１１１１に回路Ｃ（１１１１ｂ）、容量１２８ＭＢのバッファ部１１１２を構成する。バッファ部１１１２は、バッファ用メモリ１１１２ａを含む。この時、回路Ａが演算途中であれば、回路状態、演算値を状態保持部１１３０に保持する（状態８２００）。
その後、メモリバンド幅が１．８ＧＢ／ｓよりは小さくなり１．６ＧＢ／ｓは超えた状態になると、再構成部１１１０は、論理部１１１１に回路Ｂ（１１１１ｃ）を構成し、容量６４ＭＢのバッファ部１１１２を構成する。バッファ部１１１２は、バッファ用メモリ１１１２ｂを含む。この時、再構成制御部１１２０が論理部１１１１に回路Ｂ（１１１１ｃ）を構成する際、必要であれば状態保持部１１３０の保持情報を回路Ｂ（１１１１ｃ）に適用する。また、回路Ｃ（１１１１ｂ）が演算途中であれば、回路状態、演算値を状態保持部１１３０に保持する（状態８３００）。
【００７７】
その後、メモリバンド幅が１．６ＧＢ／ｓより小さくなり、状態８２００や状態８３００でデータが書込まれたバッファ部１１１２のデータもデータ記憶部１００２に全て転送され、バッファ部１１１２が空状態となれば、再構成部１１１０は論理部１１１１に回路Ａ（１１１１ｄ）のみを構成する（状態８４００）。
３．まとめ
以上説明したように、本実施形態を用いれば、各バスマスタ部のメモリバンド幅がデータ記憶部１００２のデバイス依存の最大メモリバンド幅を超える可能性がある場合に、再構成部１１１０により構成したバッファ部１１１２が、バンド幅の超過分を吸収し、メモリバンド幅の確保を可能とする。
【００７８】
なお、論理部１１１１がＤＭＡ（ダイレクトメモリアクセス）を実行中にメモリバンド幅が閾値を超える場合は、ＤＭＡによる転送データを一時的に保持する領域を前記バッファ部１１１２に設け、論理部１１１１もバッファ部１１１２にアクセスすることにより、システム破綻を防ぐ。
４．その他の変形例
（１）上記実施の形態では、各バスマスタ部は、データ記憶部１００２に対してアクセスするとしているが、これには限定されない。
【００７９】
半導体集積回路１００は、データ記憶部１００２に代えて、第三バスマスタ部（第４デバイスと呼ぶこともある。）を備えており、第一バスマスタ部１０００は、データ記憶部１００２に代えて、第三バスマスタ部との間でデータ転送してもよい。また、第二バスマスタ部１００１も、データ記憶部１００２に代えて、第三バスマスタ部との間でデータ転送をするとしてもよい。
【００８０】
このとき、例えば、第一バスマスタ部１０００と第三バスマスタ部との間のデータ転送は、第二バスマスタ部１００１と第三バスマスタ部との間のデータ転送に優先するものとし、データ転送制御部１２００は、２個のデータ転送を調停し、第一バスマスタ部１０００と第三バスマスタ部との間のデータ転送を優先させる。メモリバンド幅監視部１２１０は、第一バスマスタ部１０００から出力されるアクセスコマンドからメモリバンド幅を算出し、算出したメモリバンド幅とと閾値とを比較して、再構成部１１１０を再構成するか否かを決定し、再構成すると決定した場合に、再構成情報を再構成制御部１１２０へ出力し、再構成部１１１０は、再構成情報に従って回路を再構成する。
【００８１】
（２）図６に示す閾値テーブル３０００は、閾値情報として、閾値「２．０ＧＢ／ｓ」、バッファ容量情報「１２８ＭＢ」及び論理部回路構成情報「回路Ｃ」を含む閾値情報に代えて、例えば、閾値「２．０ＧＢ／ｓ」及びバッファ容量情報「２５６ＭＢ」を含む閾値情報を含むとしてもよい。この閾値情報は、論理部回路構成情報を含まない。この場合には、論理回路４０１１は、構成されず、２５６ＭＢのバッファ容量を有するバッファ用メモリ４０２１のみが構成される。
【００８２】
（３）図１に示す再構成回路１１００において、状態保持部１１３０は、存在しないものとしてもよい。また、状態管理部４００２及び演算データ要求部４００５も存在しないものとしてもよい。この場合には、以前に再構成部１１１０に構成されていた論理回路４０１１を再構成するときに、以前の論理回路４０１１の回路の状態を引き継ぐことはできない。
【００８３】
（４）上記の実施の形態において、図１に示すデータ転送制御部１２００は、調停部（図示していない）、バッファアクセス要求部１２２０及びメモリバンド幅監視部１２１０を含むとしているが、次のように構成してもよい。
転送制御部１２００は、調停部、バッファアクセス要求部１２２０及びメモリバンド幅監視部１２１０を含んでおらず、転送制御部１２００は、調停部、バッファアクセス要求部１２２０及びメモリバンド幅監視部１２１０がそれぞれ有する機能及び構成を有する。
【００８４】
（５）本発明は、再構成回路により、リアルタイム応答を要求されるためデータ記憶部へのアクセス時の優先度が高く、バスマスタ部のデータ記憶部へのアクセス要求が実行されていない場合であって、メモリバンド幅に空きがある場合に、その空き分のみを使用するバスマスタ部の不要な演算部あるいは制御部をバッファとして活用することにより、低コストでバンド幅の有効活用を可能とするデータ転送装置、データ転送方法及び半導体集積回路を提供する。
【００８５】
本発明は、複数のバスマスタ、バス及びメモリを備える半導体集積回路において、各バスマスタがバスを介してメモリとの間でデータ転送を行う技術であり、特に、再構成回路を利用して、各バスマスタが要求するメモリバンド幅を確保して、データ転送の性能の向上を図る技術である。
半導体集積回路は、転送されるデータを記憶するデータ記憶部にアクセスする複数のバスマスタ部と、前記複数のバスマスタ部が独立して発生するデータ転送要求を管理し前記データ記憶部にアクセスするデータ転送制御部と、前記複数のバスマスタ部と前記データ転送制御部とを結ぶ複数のバス部Ａと、前記データ転送制御部と前記データ記憶部とを結ぶバス部Ｂとを備え、前記複数のバスマスタ部が前記バス部Ａと前記データ転送制御部と前記バス部Ｂとを介してデータ転送を行う。前記半導体集積回路は、さらに、前記複数のバスマスタ部が前記バス部Ａと前記データ転送制御部と前記バス部Ｂとを介して前記データ記憶部にアクセスする際のメモリバンド幅を監視するメモリバンド幅監視部と、前記複数のバスマスタ部と同様に前記データ転送制御部とバス接続された再構成部と、前記メモリバンド幅監視部の出力情報をもとに前記再構成部を制御する再構成制御部とを備えていることを特徴とする。
【００８６】
この構成では、メモリバンド幅が所定の値に達したかどうかを判定し、その判定結果に応じて再構成部を最適制御することが可能となる。
また、前記半導体集積回路において、前記メモリバンド幅監視部により、前記複数のバスマスタ部が前記バス部Ａと前記データ転送制御部と前記バス部Ｂとを介して前記データ記憶部にアクセスする際のメモリバンド幅が所定の値に達したと判定された場合、前記再構成制御部は、前記再構成部を所定の回路構成に再構成することを特徴とする。
【００８７】
また、前記半導体集積回路において、前記メモリバンド幅監視部により、メモリバンド幅に空きがあると判断する閾値より使用メモリバンド幅が小さいと判定された時は、演算部あるいは制御部としての論理部を構成し、使用メモリバンド幅が大きいと判定された時は、前記再構成部を前記複数のバスマスタ部が前記データ記憶部にアクセスする際のアクセスデータを一時的に保持するバッファ部を構成する。前記半導体集積回路は、さらに、前記再構成部が前記バッファ部を構成する際、再構成実施直前の前記論理部の処理状態を保持する状態保持部を備えていることを特徴とする。
【００８８】
また、前記半導体集積回路において、データ記憶部へのアクセスの優先度が高く、リアルタイム応答を要求されるバスマスタ部によるデータ記憶部へのアクセス要求が実行されていない場合であって、メモリバンド幅に空きがあるときに、前記論理部は、その空き分のみを使用するバスマスタ部としての演算部あるいは制御部を構成することを特徴とする。
【００８９】
また、前記半導体集積回路において、前記再構成制御部が前記メモリバンド幅監視部により、メモリバンド幅が空いていると判断する閾値より使用メモリバンド幅が小さいと判定された時は、演算部あるいは制御部としての論理部を構成する。また、使用メモリバンド幅が前記閾値より大きいと判定された時は、前記再構成部を前記複数のバスマスタ部が前記データ記憶部にアクセスする際のアクセスデータを一時的に保持するバッファ部と前記論理部とを混在して構成することを特徴とする。
【００９０】
また、前記半導体集積回路において、前記再構成部が前記バッファ部を構成する際、再構成の実施直前の前記論理部の処理状態を保持する状態保持部を備えていることを特徴とする。
また、前記半導体集積回路において、前記論理部も前記バッファ部にアクセスすることを特徴とする。
【００９１】
また、前記半導体集積回路において、データ記憶部へのアクセスの優先度が高く、リアルタイム応答を要求されるバスマスタ部によるデータ記憶部へのアクセス要求が実行されていない場合であって、メモリバンド幅に空きがある場合に、前記論理部は、その空き分のみを使用するバスマスタ部としての演算部あるいは制御部を構成することを特徴とする。
【００９２】
また、又は本発明に係る半導体集積回路では、転送されるデータを記憶するデータ記憶部にアクセスする複数のバスマスタ部と、前記複数のバスマスタ部が独立して発生するデータ転送要求を管理し前記データ記憶部にアクセスするデータ転送制御部と、前記複数のバスマスタ部と前記データ転送制御部とを結ぶ複数のバス部Ａと、前記データ転送制御部と前記データ記憶部とを結ぶバス部Ｂとを備え、前記複数のバスマスタ部が前記バス部Ａと前記データ転送制御部と前記バス部Ｂとを介してデータ転送を行う半導体集積回路であって、前記複数のバスマスタ部が前記バス部Ａと前記データ転送制御部と前記バス部Ｂとを介して前記データ記憶部にアクセスする際のメモリバンド幅を監視するメモリバンド幅監視部と、前記複数のバスマスタ部と同様に前記データ転送制御部とバス接続された再構成部と、前記メモリバンド幅監視部の出力情報をもとに前記再構成部を制御する再構成制御部とを備えており、前記再構成部が、演算部あるいは制御部としての論理部と、前記複数のバスマスタ部が前記データ記憶部にアクセスする際のアクセスデータを一時的に保持するバッファとを混在して構成すること特徴としている。
【００９３】
この構成では、メモリバンド幅の状況に応じて、リアルタイム応答を要求されるためデータ記憶部アクセス時の優先度の高いバスマスタ部のデータ記憶部へのアクセス要求が実行されていない場合であるメモリバンド幅に空きがある場合に、その空き分のみを使用するバスマスタ部と、メモリバンド幅確保のために使用されるデータ記憶部へのアクセスデータの一時バッファとを、最適に構成することができ、バッファ資源の増大を防ぎ、低コストでメモリバンド幅の有効活用ができる。
【００９４】
本発明によれば、再構成回路により、システム動作中にオーバースペックとなっている不要な演算部あるいは制御部をバッファとして活用することにより低コストでメモリバンド幅を有効活用することが出来る。
【産業上の利用可能性】
【００９５】
本発明は、システムＬＳＩにおいて、リアルタイム応答を要求され、データ記憶部へのアクセス時に高い優先度が割り当てられるバスマスタ部が備えられ、当該バスマスタ部によるデータ記憶部へのアクセス要求が実行されていない場合であって、メモリバンド幅に空きがある場合に、その空き分のみを使用するバスマスタ部を有し、再構成可能ロジックを搭載する民生機器に有用である。
【符号の説明】
【００９６】
１０    民生機器
１００    半導体集積回路
１０００    バスマスタ部Ａ
１００１    バスマスタ部Ｂ
１００２    データ記憶部
１００３    バス部
１００４    バス部
１００５    バス部
１００６    バス部
１００７    バス部
１１００    再構成回路
１１１０    再構成部
１１１１    論理部
１１１２    バッファ部
１１２０    再構成制御部
１１３０    状態保持部
１２００    データ転送制御部
１２１０    メモリバンド幅監視部
１２２０    バッファアクセス要求部
２０００    メモリバンド幅算出部
２００１    閾値保持部
２００２    メモリバンド幅比較部
２００３    メモリバンド幅情報通知部
４０００    バッファ制御部
４００２    状態管理部
４００５    演算データ要求部
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
外部デバイスとの間のデータの転送を制御するデータ転送制御装置であって、
再構成可能な回路を備える再構成手段と、
データの転送を要求する内部デバイスと、
内部デバイスと外部デバイスとの間でデータ転送を中継するとともに、前記転送要求により必要とされるメモリバンド幅に応じて、データ転送を支援する回路を定める再構成情報を取得する転送制御部と、
取得された前記再構成情報に基づいて、前記再構成手段における回路の再構成を制御する再構成制御手段と
を備えることを特徴とするデータ転送制御装置。
【請求項２】
前記転送制御部は、前記メモリバンド幅が所定閾値以上である場合に、前記再構成情報を取得し、
前記再構成制御手段は、取得された前記再構成情報を用いて、前記再構成手段に対して回路を再構成するよう制御する
ことを特徴とする請求項１に記載のデータ転送制御装置。
【請求項３】
前記転送制御部は、前記転送要求に係るデータを一時的に保持するバッファ部としての回路を定める前記再構成情報を取得し、
前記再構成制御手段は、前記バッファ部としての回路を再構成するように前記再構成手段を制御する
ことを特徴とする請求項２に記載のデータ転送制御装置。
【請求項４】
前記再構成情報は、さらに、演算部又は制御部としての回路を定め、
前記再構成制御手段は、さらに、演算部又は制御部としての回路を再構成するように前記再構成手段を制御する
ことを特徴とする請求項３に記載のデータ転送装置。
【請求項５】
データ転送装置は、さらに、前記再構成手段が回路を再構成する場合、再構成直前に前記再構成手段に構築されている現回路の処理状態を保持する状態保持手段を備える
ことを特徴とする請求項４に記載のデータ転送制御装置。
【請求項６】
前記再構成手段は、さらに、前記再構成手段が前に構築された回路を再構成する場合、前記状態保持手段に保持されている回路の処理状態を用いる
ことを特徴とする請求項５に記載のデータ転送制御装置。
【請求項７】
前記転送制御部は、前記メモリバンド幅が所定閾値より小さい場合に、演算部又は制御部としての回路を定める前記再構成情報を取得し、
前記再構成制御手段は、前記メモリバンド幅が所定閾値より小さい場合に、演算部又は制御部としての回路を再構成するように前記再構成手段を制御する
ことを特徴とする請求項１に記載のデータ転送制御装置。
【請求項８】
前記転送制御部は、前記メモリバンド幅が所定閾値より小さい場合に、演算部又は制御部としての回路を定める前記再構成情報を取得し、前記メモリバンド幅が所定閾値以上である場合に、前記転送要求に係るデータを一時的に保持するバッファ部としての回路を定める前記再構成情報を取得し、
前記再構成制御手段は、前記メモリバンド幅が所定閾値より小さい場合に、演算部又は制御部としての回路を再構成するように前記再構成手段を制御し、前記メモリバンド幅が所定閾値以上である場合に、前記バッファ部としての回路を再構成するように前記再構成手段を制御し、
データ転送装置は、さらに、前記再構成手段が回路を再構成する場合、再構成直前に前記再構成手段に構築されている回路の処理状態を保持する状態保持手段を備える
ことを特徴とする請求項１に記載のデータ転送制御装置。
【請求項９】
前記再構成手段は、前記内部デバイスによるデータの転送要求が実行されていない時間帯において、メモリバンド幅に空きがあるときに、その空き分のみを使用するデバイスとしての演算部又は制御部を構成する
ことを特徴とする請求項８に記載のデータ転送制御装置。
【請求項１０】
前記転送制御部は、前記メモリバンド幅が所定閾値より小さい場合に、演算部又は制御部としての回路を定める前記再構成情報を取得し、前記メモリバンド幅が所定閾値以上である場合に、演算部又は制御部としての回路及び前記転送要求に係るデータを一時的に保持するバッファ部としての回路を定める前記再構成情報を取得し、
前記再構成制御手段は、前記メモリバンド幅が所定閾値より小さい場合に、演算部又は制御部としての回路を再構成するように前記再構成手段を制御し、前記メモリバンド幅が所定閾値以上である場合に、演算部又は制御部としての回路及び前記バッファ部としての回路を再構成するように前記再構成手段を制御する
ことを特徴とする請求項１に記載のデータ転送制御装置。
【請求項１１】
データ転送装置は、さらに、前記再構成手段がバッファ部を再構成する場合、再構成直前に前記再構成手段に構築されている回路の処理状態を保持する状態保持手段を備える
ことを特徴とする請求項１０に記載のデータ転送制御装置。
【請求項１２】
前記転送制御部は、前記メモリバンド幅が所定閾値以上である場合に取得する前記再構成情報は、前記バッファ部にアクセスする前記演算部又は制御部としての回路を定め、
前記再構成制御手段は、前記メモリバンド幅が所定閾値以上である場合に、前記バッファ部にアクセスする前記演算部又は制御部としての回路を再構成するように前記再構成手段を制御する
ことを特徴とする請求項１０に記載のデータ転送制御装置。
【請求項１３】
前記再構成手段は、内部デバイスによる転送要求に高い優先度が割り当てられ、リアルタイム応答を要求される前記内部デバイスによるデータの転送要求が実行されていない時間帯において、メモリバンド幅に空きがあるときに、その空き分のみを使用するデバイスとしての演算部又は制御部を構成する
ことを特徴とする請求項１２に記載のデータ転送制御装置。
【請求項１４】
内部のデバイス間でデータを転送するデータ転送装置であって、
再構成可能な回路を備える再構成手段と、
データの転送要求を出力する第１デバイスと、
第１デバイスによる転送要求の対象である第２デバイスと、
第１デバイスと第２デバイスとの間でデータ転送を中継するとともに、前記転送要求により必要とされるメモリバンド幅に応じて、データ転送を支援する回路を定める再構成情報を取得する転送制御部と、
取得された前記再構成情報に基づいて、前記再構成手段における回路の再構成を制御する再構成制御手段と
を備えることを特徴とするデータ転送装置。
【請求項１５】
前記データ転送装置は、リアルタイム処理を行うリアルタイム処理装置であり、
前記第２デバイスは、データを記憶するための記憶デバイスであり、
前記第１デバイスは、リアルタイム応答を要求され、前記記憶デバイスに対してデータの書き込みを要求し、又は前記記憶デバイスからデータの読み出しを要求する
ことを特徴とする請求項１４に記載のデータ転送装置。
【請求項１６】
内部デバイスと転送要求の対象である外部デバイスとの間でデータの転送を中継する半導体集積回路であって、
再構成可能な回路を備える再構成手段と、
データの転送要求を出力する内部デバイスと、
内部デバイスと外部デバイスとの間でデータ転送を中継するとともに、前記転送要求により必要とされるメモリバンド幅に応じて、データ転送を支援する回路を定める再構成情報を取得する転送制御部と、
取得された前記再構成情報に基づいて、前記再構成手段における回路の再構成を制御する再構成制御手段と
を備えることを特徴とする半導体集積回路。
【請求項１７】
再構成可能な回路を備える再構成手段を備え、データの転送要求を出力する第１デバイスと、第１デバイスによる転送要求の対象である第２デバイスとの間でデータの転送を中継する半導体集積回路において用いられるデータ転送制御方法であって、
第１デバイスと第２デバイスとの間でデータ転送を中継するとともに、前記転送要求により必要とされるメモリバンド幅に応じて、データ転送を支援する回路を定める再構成情報を取得する転送制御ステップと、
取得された前記再構成情報に基づいて、前記再構成手段における回路の再構成を制御する再構成制御ステップと
を含むことを特徴とするデータ転送制御方法。
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2009060567.tif 000018
【図２】
2009060567.tif 000019
【図３】
2009060567.tif 000020
【図４】
2009060567.tif 000021
【図５】
2009060567.tif 000022
【図６】
2009060567.tif 000023
【図７】
2009060567.tif 000024
【図８】
2009060567.tif 000025
【図９】
2009060567.tif 000026
【図１０】
2009060567.tif 000027
【図１１】
2009060567.tif 000028
【図１２】
2009060567.tif 000029
【図１３】
2009060567.tif 000030
【図１４】
2009060567.tif 000031
【図１５】
2009060567.tif 000032
【国際調査報告】
2009060567.tif 000033
2009060567.tif 000034
2009060567.tif 000035
2009060567.tif 000036