(57)【要約】【課題】半導体装置の消費電力を低減すること。【解決手段】本実施形態にかかる半導体装置は、複数の回路と、複数の回路の間の通信データを一時的に保存する複数のバッファ及び複数の回路と複数のバッファとの間のアクセスを調停する複数の調停回路とを有するバス回路と、複数の回路の間の通信における複数のバッファの使用状況に基づく情報と複数の回路のうち通信に使用されない不使用回路の指定を含む構成情報を記憶する記憶部と、構成情報に基づいて、複数のバッファのうち通信において使用されない不使用バッファ及び複数の調停回路のうち不使用回路に対応する調停回路内の少なくとも一部の構成の使用を停止するように、バス回路を制御する制御回路と、を備える。【選択図】図１
2019103013.tif 000002
【特許請求の範囲】
【請求項１】
複数の回路と、
前記複数の回路の間の通信データを一時的に保存する複数のバッファと、前記複数の回路と前記複数のバッファとの間のアクセスを調停する複数の調停回路とを有するバス回路と、
前記複数の回路の間の通信における前記複数のバッファの使用状況に基づく情報と前記複数の回路のうち前記通信に使用されない不使用回路の指定とを含む構成情報を記憶する記憶部と、
前記構成情報に基づいて、前記複数のバッファのうち前記通信において使用されない不使用バッファ及び前記複数の調停回路のうち前記不使用回路に対応する調停回路内の少なくとも一部の構成の使用を停止するように、前記バス回路を制御する制御回路と、
を備える半導体装置。
【請求項２】
前記バス回路は、
前記複数のバッファの中からアクセス対象のバッファを選択する選択回路をさらに有し、
前記制御回路は、
前記複数のバッファのうち前記不使用バッファに対して、クロック信号の供給を停止するように指示し、
前記選択回路に対して、前記不使用バッファを選択の対象外とするように指示する
請求項１に記載の半導体装置。
【請求項３】
前記構成情報は、
前記複数のバッファのうち前記通信におけるバッファの最大使用数を含み、
前記制御回路は、
前記選択回路に対して、前記複数のバッファのうち前記最大使用数以下のバッファを選択するように指示する
請求項２に記載の半導体装置。
【請求項４】
前記構成情報は、
前記複数のバッファの総数から前記最大使用数を除いた数のバッファを前記不使用バッファとしてさらに含む
請求項３に記載の半導体装置。
【請求項５】
前記不使用回路は、前記複数の回路のうち前記通信におけるマスタ回路又はスレーブ回路として使用されないものであり、
前記バス回路は、
前記複数の調停回路のうち前記マスタ回路又は前記スレーブ回路からの複数のアクセスを調停する第１の調停回路をさらに含み、
前記制御回路は、
前記指定された不使用回路に対応する前記第１の調停回路内の少なくとも一部の構成に対するクロック信号の供給を停止するように、前記バス回路を制御する
請求項１に記載の半導体装置。
【請求項６】
前記バス回路は、
前記複数の調停回路のうち前記マスタ回路又は前記スレーブ回路に対する複数のアクセスを調停する第２の調停回路をさらに含み、
前記制御回路は、
前記指定された不使用回路に対応する前記第２の調停回路に対するクロック信号の供給を停止するように、前記バス回路を制御する
請求項５に記載の半導体装置。
【請求項７】
前記構成情報は、
特定のソフトウェアの実行時における前記使用状況に基づく情報である、
請求項１に記載の半導体装置。
【請求項８】
前記構成情報は、
前記複数の回路及び前記バス回路と同等の構成を少なくとも搭載した他の半導体装置において前記特定のソフトウェアを実行した場合に取得された動作情報に基づき導出されたものである、
請求項７に記載の半導体装置。
【請求項９】
前記構成情報は、
前記特定のソフトウェアの実行時において発生する割込み処理ごとに対応付けられた情報であり、
前記制御回路は、
前記特定のソフトウェアの実行時において前記割込み処理が発生した場合に、前記記憶部の中から当該割込み処理に対応する前記構成情報を特定し、
当該特定した構成情報に基づいて、前記バス回路を制御し、
前記割込み処理の終了後に、当該割込み処理の発生前の構成情報に基づいて、前記バス回路を制御する
請求項７に記載の半導体装置。
【請求項１０】
前記構成情報は、
前記特定のソフトウェアの実行時において使用された、前記半導体装置が備える割込みコントローラによる割込み通知、ＤＭＡ（Direct Memory Access）の使用チャネル、又は、通信ポートのポートに基づいて特定される不使用回路の指定を含み、
前記制御回路は、
前記特定のソフトウェアの実行時において、前記指定された不使用回路に対応する構成に対するクロック信号の供給を停止するように、前記割込みコントローラ、前記ＤＭＡ、又は、前記通信ポートを制御する
請求項７に記載の半導体装置。
【請求項１１】
複数の回路と、前記複数の回路の間の通信データを一時的に保存する複数のバッファ及び前記複数の回路と前記複数のバッファとの間のアクセスを調停する複数の調停回路を有するバス回路と、前記複数の回路の間の通信における前記複数のバッファの使用状況に基づく情報及び前記複数の回路のうち前記通信に使用されない不使用回路の指定を含む構成情報を記憶する記憶部と、制御回路とを備える半導体装置の再構成制御方法であって、
前記制御回路が、
前記構成情報を前記記憶部から読み出し、
前記構成情報に基づいて、前記複数のバッファのうち前記通信において使用されない不使用バッファ及び前記複数の調停回路のうち前記不使用回路に対応する調停回路内の少なくとも一部の構成の使用を停止するように、前記複数のバッファを有するバス回路を制御する
半導体装置の再構成制御方法。
【請求項１２】
前記複数の回路及び前記バス回路と同等の構成を少なくとも搭載した他の半導体装置において、特定のソフトウェアを実行した際に、前記複数の回路の間の前記通信に関する動作情報を取得し、
前記動作情報に基づき前記構成情報を導出し、
前記構成情報を前記記憶部に格納し、
前記半導体装置における前記特定のソフトウェアの実行時に、前記記憶部から前記構成情報を読み出す、
請求項１１に記載の半導体装置の再構成制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体装置及びその再構成制御方法に関し、例えば、構成情報に基づき再構成を行う半導体装置及びその再構成制御方法に関する。
【背景技術】
【０００２】
近年、ＭＣＵ（Micro Control Unit）等を含む半導体装置は、搭載される周辺モジュール数が増加している。そして、周辺モジュール数の増加に伴い、各モジュール間の通信経路を網羅するためにバス回路の規模も増加している。また、半導体装置の論理構成を動的に再構成する技術として、例えば、特許文献１や２が挙げられる。
【０００３】
特許文献１にかかる技術では、まず、マイコンの初期化時に第１の通信処理方式のコンフィギュレーションデータによりプログラマブルロジックを第１の通信処理回路として構成する。そして、第１の通信処理回路による通信に対する応答がなかった場合に、第２の通信処理方式のコンフィギュレーションデータによりプログラマブルロジックを第２の通信処理回路として再構成する。一方、第１の通信処理回路による通信に対する応答があった場合には、第２の通信処理方式のコンフィギュレーションデータを用いず、マイコンは通常処理へ進む。このように、複数のコンフィギュレーションデータのうち必要のないものの使用を回避することで、プログラマブルロジックの資源の消費を抑制することができる。
【０００４】
また、特許文献２にかかる技術は、アクセスコマンドの監視により算出されたメモリバンド幅等に応じて、再構成回路内の論理部とバッファ部とを再構成するものである。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−２１９８０６号公報
【特許文献２】国際公開第２００９／０６０５６７号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
近年の半導体装置には、周辺モジュール数の増加やバス回路の規模の増加に伴い、消費電力が増加しているという問題点がある。ここで、特許文献１にかかる技術は、特定の論理回路を構成するためのコンフィギュレーションデータが必要か否かを判別できるが、必要なコンフィギュレーションデータにより再構成されたプログラマブルロジックの消費電力を低減するものではない。また、特許文献２にかかる技術は、再構成回路における論理部とバッファ部との構成比率を調整するものであり、再構成回路自体の消費電力を低減するためのものではない。
【０００７】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００８】
一実施の形態によれば、半導体装置は、複数の回路の間の通信における複数のバッファの使用状況に基づく情報と不使用回路の指定とを含む構成情報を記憶する記憶部と、前記構成情報に基づいて、前記複数のバッファのうち前記通信において使用されない不使用バッファ及び不使用回路に対応する調停回路内の少なくとも一部の構成の使用を停止するように、前記バス回路を制御する制御回路と、を備えるものである。
【発明の効果】
【０００９】
前記一実施の形態によれば、半導体装置の消費電力を低減することができる。
【図面の簡単な説明】
【００１０】
【図１】本実施形態１にかかる半導体装置の構成を示すブロック図である。
【図２】本実施形態１にかかる半導体装置の再構成制御システムの構成を示すブロック図である。
【図３】本実施形態１にかかるエミュレーションデバイスの構成を示すブロック図である。
【図４】本実施形態１にかかる動作情報と構成情報の関係を示す図である。
【図５】本実施形態１にかかるＭＣＵの構成を示すブロック図である。
【図６】本実施形態１にかかるバス回路を含む構成を示すブロック図である。
【図７】本実施形態１にかかる調停回路の構成を示すブロック図である。
【図８】本実施形態１にかかる調停回路内のFF群の構成を示すブロック図である。
【図９】本実施形態１にかかるポインタ回路の構成を示すブロック図である。
【図１０】本実施形態１にかかるバッファ回路の構成を示すブロック図である。
【図１１】本実施形態１にかかる動作情報取得処理の流れを示すフローチャートである。
【図１２】本実施形態１にかかる変換処理の流れを示すフローチャートである。
【図１３】本実施形態１にかかる再構成処理の流れを示すフローチャートである。
【図１４】本実施形態２にかかる半導体装置の再構成制御システムの構成を示すブロック図である。
【図１５】本実施形態２にかかるエミュレーションデバイスの構成を示すブロック図である。
【図１６】本実施形態２にかかる動作情報と構成情報の関係を示す図である。
【図１７】本実施形態２にかかるＭＣＵの構成を示すブロック図である。
【図１８】本実施形態３にかかる半導体装置の再構成制御システムの構成を示すブロック図である。
【図１９】本実施形態３にかかるエミュレーションデバイスの構成を示すブロック図である。
【図２０】本実施形態３にかかる動作情報と構成情報の関係を示す図である。
【図２１】本実施形態３にかかるＭＣＵの構成を示すブロック図である。
【図２２】本実施形態３にかかる動作情報取得処理の流れを示すフローチャートである。
【図２３】本実施形態３にかかる再構成処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１１】
説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００１２】
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００１３】
＜実施形態１＞
図１は、本実施形態１にかかる半導体装置１０００の構成を示すブロック図である。半導体装置１０００は、複数の回路１１０１〜１１０ｎ（ｎは２以上の自然数。）と、バス回路１２００と、記憶部１３００と、制御回路１４００とを備える。半導体装置１０００は、例えば、プロセッサ等を搭載し、特定のソフトウェアを実行するものである。回路１１０１等は、周辺モジュール、プロセッサ、メモリ、又は、通信モジュール等の回路ブロックである。
【００１４】
バス回路１２００は、回路１１０１〜１１０ｎと、記憶部１３００と、制御回路１４００とを接続し、それらの間の通信データを中継する信号経路である。バス回路１２００は、複数のバッファ１２０１、１２０２、・・・１２０ｍ（ｍは２以上の自然数。）と、複数の調停回路１２１１、１２１２、・・・１２１ｐ（ｐは２以上の自然数。）を有する。バッファ１２０１等は、回路１１０１等の間の通信データを一時的に保存する記憶領域である。調停回路１２１１等は、回路１１０１等とバッファ１２０１等との間のアクセスを調停する。
【００１５】
記憶部１３００は、構成情報１３１０を記憶する記憶回路である。構成情報１３１０は、回路１１０１等の間の通信におけるバッファ１２０１等の使用状況に基づく情報と、回路１１０１等のうち前記通信に使用されない不使用回路の指定とを含む。制御回路１４００は、構成情報１３１０に基づいて、バッファ１２０１等のうち前記通信において使用されない不使用バッファ及び調停回路１２１１等のうち不使用回路に対応する調停回路内の少なくとも一部の構成の使用を停止するように、バス回路１２００を制御する。
【００１６】
このように、本実施形態では、回路間の通信で使用されないバッファ及び通信に使用されない回路に対応する調停回路に供給されるクロック信号を停止することで、半導体装置１０００の消費電力を低減することができる。
【００１７】
ここで、半導体装置１０００は、次のような構成を有することが望ましい。すなわち、前記バス回路は、前記複数のバッファの中からアクセス対象のバッファを選択する選択回路をさらに有する。そして、前記制御回路は、前記複数のバッファのうち前記不使用バッファに対して、クロック信号の供給を停止するように指示し、前記選択回路に対して、前記不使用バッファを選択の対象外とするように指示する。これにより、バス回路内の不使用バッファのクロック供給の停止と当該不使用バッファの選択を除外することで、確実に不使用バッファの使用を停止できる。
【００１８】
さらに、前記構成情報は、前記複数のバッファのうち前記通信におけるバッファの最大使用数を含むとよい。そして、前記制御回路は、前記選択回路に対して、前記複数のバッファのうち前記最大使用数以下のバッファを選択するように指示するとよい。これにより、クロック供給を停止したバッファが選択回路により選択されないようにして、不要なアクセスを抑制できる。
【００１９】
さらに、前記構成情報は、前記複数のバッファの総数から前記最大使用数を除いた数のバッファを前記不使用バッファとしてさらに含むとよい。これにより、クロック供給を停止するバッファを的確に指示できる。
【００２０】
また、半導体装置１０００は、次のような構成を有することが望ましい。すなわち、前記不使用回路は、前記複数の回路のうち前記通信におけるマスタ回路又はスレーブ回路として使用されないものである。そして、前記バス回路は、前記複数の調停回路のうち前記マスタ回路又は前記スレーブ回路からの複数のアクセスを調停する第１の調停回路をさらに含む。そして、前記制御回路は、前記指定された不使用回路に対応する前記第１の調停回路内の少なくとも一部の構成に対するクロック信号の供給を停止するように、前記バス回路を制御する。これにより、ある回路が回路間の通信の送信元（マスタ回路）又は送信先（スレーブ回路）となり得ない場合に、当該回路からのリクエスト又はレスポンスを調停する調停回路へのクロック供給を停止できる。そして、クロック供給の停止によりＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  ＭＯＳ  （ｍｅｔａｌ−ｏｘｉｄｅ−ｓｅｍｉｃｏｎｄｕｃｔｏｒ）  ）の充放電を抑制し、動的消費電力を低減できる。
【００２１】
さらに、前記バス回路は、前記複数の調停回路のうち前記マスタ回路又は前記スレーブ回路に対する複数のアクセスを調停する第２の調停回路をさらに含むとよい。そして、前記制御回路は、前記指定された不使用回路に対応する前記第２の調停回路に対するクロック信号の供給を停止するように、前記バス回路を制御するとよい。これにより、不使用回路へのリクエスト又はレスポンスを調停する調停回路へのクロックを停止できる。そして、動的消費電力を低減できる。
【００２２】
また、前記構成情報は、特定のソフトウェアの実行時における前記使用状況に基づく情報であることが望ましい。これにより、ソフトウェアごとに特有の回路間の通信に対応させて、バス回路を最適化することができる。
【００２３】
さらに、前記構成情報は、前記複数の回路及び前記バス回路と同等の構成を少なくとも搭載した他の半導体装置において前記特定のソフトウェアを実行した場合に取得された動作情報に基づき導出されたものであることが望ましい。このように、特定のソフトウェアのエミュレーションにより得られた動作情報を用いることで、より実際の動作に近付けて、バス回路を最適化できる。
【００２４】
続いて、上述した半導体装置１０００の具体的な適用例について以下に説明する。
図２は、本実施形態１にかかる半導体装置の再構成制御システム２０００の構成を示すブロック図である。再構成制御システム２０００は、エミュレーションデバイス１００と、ＭＣＵ（Micro Control Unit）２００と、情報処理装置３００とを備える。ＭＣＵ２００は、上述した半導体装置１０００の一実施例であり、特定のソフトウェアを実行するものである。ＭＣＵ２００は、例えば、量産版の半導体装置に相当する。エミュレーションデバイス１００は、ＭＣＵ２００に搭載する特定のソフトウェアをエミュレートして、当該ソフトウェアの開発を進めるための半導体装置である。ここで、エミュレーションデバイス１００とＭＣＵ２００とは、後述するように、多くの回路構成が共通する。但し、エミュレーションデバイス１００は、ＭＣＵ２００と比べて後述する動作モニタを有する。また、ＭＣＵ２００は、エミュレーションデバイス１００と比べて後述する再構成制御回路を有する。
【００２５】
図３は、本実施形態１にかかるエミュレーションデバイス１００の構成を示すブロック図である。エミュレーションデバイス１００は、動作モニタ１１０と、ＦＬＡＳＨ１２０と、ＲＡＭ１３０と、通信モジュール１４０と、バス回路１５０と、周辺モジュール１６１〜１６ｎと、ＣＰＵ１７１〜１７ｘ（ｘは、２以上の自然数。）とを備える。ＦＬＡＳＨ１２０は、ＭＣＵ２００に搭載される予定である開発対象のソフトウェア１２１を記憶する不揮発性記憶装置の一例であるフラッシュメモリである。ＲＡＭ１３０は、各種データを一時的に記憶する揮発性記憶装置である。通信モジュール１４０は、外部との通信を行う回路である。バス回路１５０は、動作モニタ１１０、ＦＬＡＳＨ１２０、ＲＡＭ１３０、通信モジュール１４０、周辺モジュール１６１〜１６ｎ、並びに、ＣＰＵ１７１〜１７ｘを接続し、これらの間の通信データを中継する信号経路である。また、バス回路１５０は、後述するように通信データを一時的に保存する複数のバッファを有する。周辺モジュール１６１〜１６ｎは、各種処理を行う回路ブロックである。ＣＰＵ１７１〜１７ｘのうち少なくとも一つは、ＦＬＡＳＨ１２０からソフトウェア１２１を読み込み、実行することにより、所定の処理を実現する。
【００２６】
動作モニタ１１０は、ソフトウェア１２１の実行時における各回路の動作状態を観測し、動作情報１１１を取得し、内部に保存する。特に、動作モニタ１１０は、ソフトウェア１２１の実行時における回路間の通信を監視し、通信時におけるバス回路１５０の動作から動作情報１１１を取得する。そして、動作モニタ１１０は、ソフトウェア１２１の実行後に、動作情報１１１を通信モジュール１４０を介して、情報処理装置３００へ送信する。動作情報１１１は、例えば、バスルーティング情報やバッファの最大エントリ使用数等を含む。バスルーティング情報は、送信元であるマスタ回路から送信先であるスレーブ回路へバス回路１５０を介してリクエスト信号が送信される際のマスタ回路とスレーブ回路の組合せを示す情報である。また、バッファの最大エントリ使用数は、ソフトウェア１２１の実行を通じて、バス回路１５０内のバッファが同時に使用された際の最大数を示す情報である。
【００２７】
図２に戻り説明を続ける。情報処理装置３００は、エミュレーションデバイス１００から受信した動作情報を、ＭＣＵ２００を再構成するための構成情報に変換する変換ツールとして動作するものである。情報処理装置３００は、情報変換処理部３１０と、記憶部３２０とを備える。尚、情報処理装置３００は、汎用的なコンピュータ装置であり、一般的な構成の図示及び動作の説明を省略する。記憶部３２０は、不揮発性又は揮発性の記憶装置である。記憶部３２０は、動作情報３２１と、回路情報３２２と、構成情報３２３とを記憶する。動作情報３２１は、上述した動作情報１１１が格納されたものである。回路情報３２２は、ＭＣＵ２００内の回路構成を示す情報である。例えば、回路情報３２２は、マスタ回路のリスト、スレーブ回路のリスト、及び、バス回路内のバッファの総数等である。構成情報３２３は、ＭＣＵ２００内のバス回路を再構成するための情報である。
【００２８】
情報変換処理部３１０は、エミュレーションデバイス１００から動作情報１１１を受信した場合に、記憶部３２０へ動作情報３２１として保存する。また、情報変換処理部３１０は、動作情報３２１と回路情報３２２とに基づいて、所定の変換を行い、構成情報３２３を生成し、記憶部３２０に保存する。そして、情報変換処理部３１０は、変換後に、構成情報３２３をＭＣＵ２００へ送信する。
【００２９】
図４は、本実施形態１にかかる動作情報と構成情報の関係を示す図である。例えば、動作情報Ａがバス回路の使用時のルーティング情報である場合、情報変換処理部３１０は、回路情報３２２のマスタ回路及びスレーブ回路のリストのうち、動作情報Ａに出現しないマスタ回路及びスレーブ回路を不使用回路として特定し、構成情報Ａとする。また、動作情報Ｂがバッファの最大エントリ使用数である場合、情報変換処理部３１０は、当該使用数をバッファの使用上限数とする。また、情報変換処理部３１０は、回路情報３２２内のバッファ総数から最大エントリ使用数を減算して未使用数を算出する。そして、情報変換処理部３１０は、バッファエントリ番号の最大値から未使用数分の各番号を不使用のバッファエントリ番号とする。つまり、情報変換処理部３１０は、バッファの使用上限数と不使用のバッファエントリ番号とを構成情報Ｂとする。または、情報変換処理部３１０は、各バッファエントリについて使用又は不使用を示す情報を構成情報Ｂとしてもよい。その場合、最大エントリ使用数未満の番号に対応するバッファエントリについて使用とし、最大エントリ使用数以上の番号に対応するバッファエントリについて不使用とする。尚、動作情報及び構成情報の例は、これらに限定されない。
【００３０】
図５は、本実施形態１にかかるＭＣＵ２００の構成を示すブロック図である。ＭＣＵ２００は、再構成制御回路２１０と、ＦＬＡＳＨ２２０と、ＲＡＭ２３０と、通信モジュール２４０と、バス回路２５０と、周辺モジュール２６１〜２６ｎと、ＣＰＵ２７１〜２７ｘとを備える。尚、ＦＬＡＳＨ２２０と、ＲＡＭ２３０と、通信モジュール２４０と、バス回路２５０と、周辺モジュール２６１〜２６ｎと、ＣＰＵ２７１〜２７ｘとは、上述したＦＬＡＳＨ１２０と、ＲＡＭ１３０と、通信モジュール１４０と、バス回路１５０と、周辺モジュール１６１〜１６ｎと、ＣＰＵ１７１〜１７ｘと同等の構成である。
【００３１】
ＦＬＡＳＨ２２０は、情報処理装置３００から受信した構成情報２２１を記憶する。また、ＦＬＡＳＨ２２０は、上述したソフトウェア１２１と同等の機能を有するソフトウェア２２２を記憶する。ＲＡＭ２３０は、各種データを一時的に記憶する揮発性記憶装置である。再構成制御回路２１０は、ＭＣＵ２００の起動時に、ＦＬＡＳＨ２２０から構成情報２２１を読み出す。そして、再構成制御回路２１０は、読み出した構成情報２２１に基づいて、バス回路２５０内の構成に対して指示を行う。
【００３２】
図６は、本実施形態１にかかるバス回路２５０を含む構成を示すブロック図である。ここで、マスタ４０１〜４０６は、ソフトウェア２２２の実行時に、通信モジュール２４０、バス回路２５０、周辺モジュール２６１〜２６ｎ、並びに、ＣＰＵ２７１〜２７ｘの一部又は全てに対応する構成がマスタ回路として動作する場合を示す。ここでは、説明の便宜上、マスタ４０１〜４０３と、マスタ４０４〜４０６の２グループに分けているが、グループ数及び各グループ内のマスタ回路数はこれらに限定されない。
【００３３】
また、スレーブ４１１〜４１３は、ＦＬＡＳＨ２２０、ＲＡＭ２３０、通信モジュール２４０、バス回路２５０、周辺モジュール２６１〜２６ｎ、並びに、ＣＰＵ２７１〜２７ｘの一部又は全てに対応する構成がスレーブ回路として動作する場合を示す。ここでは、説明の便宜上、スレーブ４１１〜４１３の３つを１グループとして記載しているが、グループ数及び各グループ内のスレーブ回路数はこれらに限定されない。以上を踏まえ、図６では、ＦＬＡＳＨ２２０はスレーブ４１１等に含まれる可能性もあるが、説明の便宜上、別途、記載している。
【００３４】
また、図６では、バス回路２５０のうち、マスタ回路からスレーブ回路へのリクエストである通信データを中継する構成を示すものである。これとは別に、バス回路２５０は、スレーブ回路からマスタ回路へのレスポンスである通信データを中継する構成を有するが、図６と対応するものであるため、図示及び説明を省略する。
【００３５】
再構成制御回路２１０は、ＦＬＡＳＨ２２０から読み出した構成情報２２１に基づいて、バス回路２５０に対して各種指示を行う。マスタ４０１〜４０６の少なくとも一部は、バス回路２５０を介してスレーブ４１１〜４１３のいずれかに対して通信データを送信するためにリクエストを送信する。また、スレーブ４１１〜４１３の少なくとも一部は、バス回路２５０を介してマスタ４０１〜４０６のいずれかからリクエストを受信する。
【００３６】
バス回路２５０は、クロスバスイッチ５１１及び５１２と、調停回路５２１及び５２２と、バッファ回路５３１及び５３２と、クロスバスイッチ５４０と、調停回路５５１〜５５３とを有する。クロスバスイッチ５１１は、マスタ４０１〜４０３から送信先情報を含む通信データを受け付け、通信データを同時に受け付けたマスタのリストを示すリクエスト信号を調停回路５２１へ出力する。また、クロスバスイッチ５１１は、調停回路５２１からの調停結果を受け付け、調停結果で指定されたマスタからの通信データをバッファ回路５３１へ出力する。同様に、クロスバスイッチ５１２は、マスタ４０４〜４０６から送信先情報を含む通信データを受け付け、リクエスト信号を調停回路５２２へ出力する。また、クロスバスイッチ５１２は、調停回路５２２からの調停結果を受け付け、調停結果で指定されたマスタからの通信データをバッファ回路５３２へ出力する。
【００３７】
調停回路５２１は、再構成制御回路２１０から、マスタ４０１〜４０３のうち不使用回路の指定を示す活性信号Ａ０〜Ａｎを受け付け、マスタ４０１〜４０３に対応するフリップフロップ（ＦＦ）へのクロック信号の供給を停止する。また、調停回路５２１は、クロスバスイッチ５１１からのリクエスト信号と、アービトレーション選択信号とに基づいて、マスタの調停を行い、調停されたマスタを指定した調停結果信号をクロスバスイッチ５１１へ出力する。
【００３８】
図７は、本実施形態１にかかる調停回路５２１の構成を示すブロック図である。尚、調停回路５２２の構成及び動作も同様であるため、図示及び説明を省略する。ここでは、マスタ４０１〜４０３の個数がｎ＋１個であるものとする。
【００３９】
調停回路５２１は、一部の構成として、ＦＦ群５２１１と、ラウンドロビン式優先度判定回路５２１２と、固定優先度式優先度判定回路５２１３と、ＦＦ群５２１４とを備える。尚、ラウンドロビン式優先度判定回路５２１２及び固定優先度式優先度判定回路５２１３は、公知の技術で実現可能である。調停回路５２１は、ｎ＋１ビットのリクエスト信号ＲＥＱと、アービトレーション選択信号ＡＲＢＳＥＬとを受け付ける。そして、アービトレーション選択信号ＡＲＢＳＥＬに応じて、ラウンドロビン式優先度判定回路５２１２及び固定優先度式優先度判定回路５２１３のいずれかが選択され、リクエスト信号ＲＥＱのうちいずれかの優先度判定回路により優先度が高いとして選択された信号値を調停結果として出力する。その際、ＦＦ群５２１１は、ラウンドロビン方式で調停を行うために、ラウンドロビン方式で最後に選択されたリクエスト信号の情報を保持する。また、ＦＦ群５２１４は、最終的に選択されたリクエスト信号の情報を保持する。ここで、ＦＦ群５２１１及びＦＦ群５２１４は、それぞれ、ｎ＋１個、すなわち、マスタ４０１〜４０３に対応するＦＦを有する。ＦＦ群５２１１及びＦＦ群５２１４内の各ＦＦは、クロック信号ＣＬＫ＿Ｇに応じて動作する。
【００４０】
ここで、図８は、本実施形態１にかかる調停回路５２１内のＦＦ群５２１１の構成を示すブロック図である。尚、ＦＦ群５２１４の構成及び動作も同様であるため、図示及び説明を省略する。ＦＦ群５２１１内の各ＦＦには、対応するＡＮＤ回路が接続されている。各ＡＮＤ回路は、活性信号Ａ０〜Ａｎとクロック信号ＣＬＫの論理積をクロック信号ＣＬＫ＿Ｇとして出力する。例えば、再構成制御回路２１０は、構成情報２２１において不使用回路として指定されたマスタ回路に対応する活性信号を０とし、それ以外（使用される回路）のマスタ回路に対応する活性信号を１とする。そのため、ＦＦ群５２１１内の各ＦＦのうち不使用回路に対応するＦＦは、クロック信号ＣＬＫ＿Ｇにより不活性となり、消費電力が抑制される。そして、不活性とされたＦＦは、リクエスト信号の値が０となり、ラウンドロビン式優先度判定回路５２１２は、当該不活性とされたＦＦに対応するマスタ回路を選択することはない。ここで、不活性とされたＦＦに対応するマスタ回路は、ソフトウェア２２２の実行時にマスタ回路として使用されないため、調停の対象とされなくとも影響がない。また、不活性とされたＦＦに対応するリクエスト信号が常に０となるため、後段のＦＦ群５２１４における対応するＦＦも不活性として問題がない。
【００４１】
図６に戻り説明を続ける。バッファ回路５３１は、セレクタ５３１１及び５３１２と、ライトポインタ制御回路５３１３と、リードポインタ制御回路５３１４と、バッファ群５３１５とを備える。尚、バッファ回路５３２の構成及び動作は、バッファ回路５３１と同様であるため、図示及び説明を省略する。
【００４２】
セレクタ５３１１は、クロスバスイッチ５１１から通信データを受け付け、ライトポインタ制御回路５３１３から格納先のバッファの指定を受け付ける。そして、セレクタ５３１１は、バッファ群５３１５のうち指定されたバッファへ通信データを出力する。
【００４３】
バッファ群５３１５は、複数のバッファエントリを有する。ここでは、バッファ群５３１５は、４つのバッファエントリを有するが、２以上であればよい。各バッファエントリは、セレクタ５３１１からの通信データを一時的に保存する。また、各バッファエントリは、セレクタ５３１２からの読み出しに応じて通信データを出力する。但し、バッファ回路５３１は、再構成制御回路２１０から、バッファ群５３１５内のバッファ０〜３のうち不使用バッファの指定を示す活性信号Ａ０〜Ａ３を受け付け、活性信号で指定されたバッファへのクロック信号の供給を停止する。
【００４４】
セレクタ５３１２は、リードポインタ制御回路５３１４から読み出し元のバッファの指定を受け付ける。そして、セレクタ５３１２は、バッファ群５３１５のうち指定された読み出し元のバッファから通信データを読み出して、クロスバスイッチ５４０へ出力する。
【００４５】
ライトポインタ制御回路５３１３は、再構成制御回路２１０から、バッファの使用上限数を示す信号を受け付け、使用上限数未満のエントリ番号を選択して、格納先のバッファの指定としてセレクタ５３１１へ出力する。また、リードポインタ制御回路５３１４は、再構成制御回路２１０から、バッファの使用上限数を示す信号を受け付け、使用上限数未満のエントリ番号を選択して、読み出し元のバッファの指定としてセレクタ５３１２へ出力する。
【００４６】
図９は、本実施形態１にかかるライトポインタ制御回路５３１３の構成を示すブロック図である。尚、リードポインタ制御回路５３１４の構成及び動作は、これと対応するものであるため、図示及び説明を省略する。
【００４７】
ライトポインタ制御回路５３１３は、加算器５６１と、ＦＦ５６２と、比較器５６３と、セレクタ５６４と、セレクタ５６５と、ＦＦ５６６と、デコーダ５６７とを備える。Ｖａｌｉｄ信号は、書込み要求有効信号を示す。尚、リードポインタ制御回路５３１４の場合、Ｖａｌｉｄ信号は、リード完了信号を示す。セレクタ５６５は、Ｖａｌｉｄ信号が０の場合、前回選択されたエントリ番号（ポインタ）を選択してＦＦ５６６へ出力する。ＦＦ５６６は、選択されたポインタを保持する。デコーダ５６７は、ポインタをデコードし、バッファ０〜バッファ３のうちポインタに対応する信号を１にし、他を０にしてセレクタ５３１１へ出力する。加算器５６１は、ＦＦ５６６に保持されたポインタに１を加算する。ＦＦ５６２は、再構成制御回路２１０から受け付けたバッファの使用上限数を示す信号、つまり、使用可能エントリ数を保持する。比較器５６３は、加算器５６１による加算結果のポインタと、ＦＦ５６２に保持された使用可能エントリ数とを比較し、一致した場合に１を選択信号としてセレクタ５６４へ出力する。セレクタ５６４は、選択信号が０の場合、加算器５６１による加算結果であるポインタを選択し、選択信号が１の場合、ポインタの初期値である２ｂ‘００を選択し、セレクタ５６５へ出力する。例えば、使用可能エントリ数が２ｂ‘１０である場合、加算器５６１によりポインタが２ｂ‘００、２ｂ‘０１と加算された後、２ｂ‘１０となった時に、セレクタ５６４は、２ｂ‘００を選択する。
【００４８】
このように、ライトポインタ制御回路５３１３は、Ｖａｌｉｄ信号の１が通知される度にポインタをインクリメントする。そして、インクリメントされたポインタが使用可能エントリ数と一致した場合には、ポインタが０に初期化される。そのため、ライトポインタ制御回路５３１３は、常に使用可能エントリ数未満の値のポインタを出力する。よって、不活性とされたバッファがセレクタ５３１１により選択されることがなく、誤動作を防ぐことができる。
【００４９】
使用可能エントリ数がバッファ群５３１５のバッファ総数の半数である場合、図９において、加算器５６１による加算結果のポインタの上位ビットを０にマスクしてもよい。これにより、ライトポインタ制御回路５３１３は、図９の構成と比べて簡略化できる。
【００５０】
図１０は、本実施形態１にかかるバッファ回路５３１の構成を示すブロック図である。まず、上述した通り、ライトポインタ制御回路５３１３及びリードポインタ制御回路５３１４は、ＭＣＵ２００の起動時に、再構成制御回路２１０から使用可能エントリ数を示す信号を受け付ける。これに応じて、ライトポインタ制御回路５３１３及びリードポインタ制御回路５３１４は、対応するポインタをセレクタ５３１１及び５３１２へ出力する。
【００５１】
また、バッファ群５３１５は、バッファ０＿５３１５０、バッファ１＿５３１５１、バッファ２＿５３１５２、及び、バッファ３＿５３１５３を有する。そして、バッファ０＿５３１５０からバッファ３＿５３１５３には、対応するＡＮＤ回路が接続されている。各ＡＮＤ回路は、活性信号Ａ０〜Ａ３とクロック信号ＣＬＫの論理積をクロック信号ＣＬＫ＿Ｇとして出力する。例えば、再構成制御回路２１０は、構成情報２２１において不使用バッファとして指定されたエントリ番号に対応する活性信号を０とし、それ以外（使用される）のバッファに対応する活性信号を１とする。そのため、バッファ群５３１５内の各バッファのうち不使用バッファは、クロック信号ＣＬＫ＿Ｇにより不活性となり、消費電力が抑制される。ここで、不活性とされたバッファは、ソフトウェア２２２の実行時には使用されないバッファであるため、実行には影響がない。
【００５２】
図６に戻り説明を続ける。調停回路５５１〜５５３のそれぞれは、スレーブ４１１〜４１３のそれぞれに対応する。クロスバスイッチ５４０は、バッファ回路５３１及び５３２から通信データを受け付け、通信データを同時に受け付けたバッファ回路のリストを示すリクエスト信号を、送信先のスレーブに対応する調停回路５５１〜５５３へ出力する。クロスバスイッチ５４０は、調停回路５５１〜５５３のいずれかからの調停結果を受け付け、調停結果で指定されたバッファ回路からの通信データを、送信先であるスレーブ４１１〜４１３のいずれかへ出力する。
【００５３】
調停回路５５１は、再構成制御回路２１０から、対応するスレーブ４１１の不使用回路の指定を示す活性信号を受け付け、活性信号が不活性を示す場合、つまり、スレーブ４１１が不使用回路である場合、スレーブ４１１に対応する調停回路５５１へのクロック信号の供給は停止され、消費電力が抑制される。尚、調停回路５５２及び５５３についても同様である。ここで、不使用回路と指定されたスレーブ回路は、ソフトウェア２２２の実行時にスレーブ回路として使用されないため、不使用回路と指定されたスレーブ回路に対応する調停回路の調停の必要はない。そして、クロスバスイッチ５４０が受け付けた通信データの送信先とはならないため、クロスバスイッチ５４０は、不使用回路と指定されたスレーブ回路に対応する調停回路へはリクエスト信号を出力しない。よって、ソフトウェア２２２の実行時に問題が生じない。
【００５４】
続いて、本実施の形態にかかる半導体装置の再構成制御方法を説明する。当該半導体装置は、少なくとも複数の回路と、前記複数の回路の間の通信データを一時的に保存する複数のバッファ及び前記複数の回路と前記複数のバッファとの間のアクセスを調停する複数の調停回路を有するバス回路と、前記複数の回路の間の通信における前記複数のバッファの使用状況に基づく情報及び前記複数の回路のうち前記通信に使用されない不使用回路の指定を含む構成情報を記憶する記憶部と、制御回路とを備えるものである。そして、当該再構成制御方法は、少なくとも、半導体装置の制御回路が、構成情報を記憶部から読み出し、前記構成情報に基づいて、前記複数のバッファのうち前記通信において使用されない不使用バッファ及び前記複数の調停回路のうち前記不使用回路に対応する調停回路内の少なくとも一部の構成の使用を停止するように、前記複数のバッファを有するバス回路を制御する。
【００５５】
さらに、次のようにすることが望ましい。すなわち、前記複数の回路及び前記バス回路と同等の構成を少なくとも搭載した他の半導体装置において、特定のソフトウェアを実行した際に、前記複数の回路の間の前記通信に関する動作情報を取得する。そして、前記動作情報に基づき前記構成情報を導出する。そして、前記構成情報を前記記憶部に格納する。その後、前記半導体装置における前記特定のソフトウェアの実行時に、前記記憶部から前記構成情報を読み出す。
【００５６】
以下では、本実施の形態にかかる半導体装置の再構成制御方法の具体的な実施例について説明する。図１１は、本実施形態１にかかる動作情報取得処理の流れを示すフローチャートである。まず、エミュレーションデバイス１００は起動する。そして、ＣＰＵ１７１〜１７ｘのうちいずれかは、ＦＬＡＳＨ１２０から開発対象のソフトウェア１２１を読み込み、実行する（Ｓ１０１）。そして、ソフトウェア１２１の実行中の各処理において、動作モニタ１１０は、バス回路１５０へのアクセスを監視する。そして、動作モニタ１１０は、バスアクセスが発生したか否かを判定する（Ｓ１０２）。バスアクセスが発生しなければ、ステップＳ１０４へ進む。一方、バスアクセスが発生した場合、動作モニタ１１０は、バス回路１５０の動作情報１１１の取得及び保存を行う（Ｓ１０３）。例えば、動作モニタ１１０は、マスタ回路からスレーブ回路へのアクセスについてバス回路１５０におけるバスルーティング情報を取得する。また、動作モニタ１１０は、複数のアクセス時におけるバス回路１５０内のバッファの使用数を取得し、最大値であれば、バッファの最大エントリ使用数として保存する。
【００５７】
その後、エミュレーションデバイス１００は、ソフトウェア１２１の実行が終了したか否かを判定する（Ｓ１０４）。ソフトウェア１２１の実行が終了していなければ、ステップＳ１０２へ戻る。一方、ソフトウェア１２１の実行が終了していれば、動作モニタ１１０は、動作情報１１１を通信モジュール１４０を介して情報処理装置３００へ出力する（Ｓ１０５）。そして、情報処理装置３００は、動作情報１１１を受信し、動作情報３２１として記憶部３２０に保存する。
【００５８】
次に、図１２は、本実施形態１にかかる変換処理の流れを示すフローチャートである。まず、情報変換処理部３１０は、記憶部３２０から動作情報３２１及び回路情報３２２を読み出す（Ｓ１１１）。次に、情報変換処理部３１０は、動作情報３２１を構成情報３２３へ変換する（Ｓ１１２）。例えば、上述した図４のように変換する。動作情報Ｂの具体例としては、バッファの最大エントリ使用数が２個（３ｂ’０１０）の場合、情報変換処理部３１０は、構成情報Ｂを６ｂ’１０００１１へ変換する。この場合、上位２ビット（２ｂ’１０）をバッファの使用上限数とし、下位４ビット（４ｂ’００１１）を不使用のバッファエントリに対応する活性信号Ａ３、Ａ２、Ａ１及びＡ０とする。その後、情報変換処理部３１０は、変換された構成情報３２３を記憶部３２０に格納する。そして、情報変換処理部３１０は、構成情報３２３をＭＣＵ２００へ送信し、ＭＣＵ２００内のＦＬＡＳＨ２２０に構成情報３２３を格納する（Ｓ１１３）。
【００５９】
図１３は、本実施形態１にかかる再構成処理の流れを示すフローチャートである。まず、ＭＣＵ２００は起動する。そして、再構成制御回路２１０は、ＦＬＡＳＨ２２０から構成情報２２１を読み出す（Ｓ１２１）。次に、再構成制御回路２１０は、構成情報２２１に基づいてバス回路２５０へ各種設定を指示する（Ｓ１２２）。例えば、上述したように、再構成制御回路２１０は、構成情報２２１に含まれる不使用回路が示すマスタ回路及びスレーブ回路に対応する活性信号を０に設定し、調停回路５２１等へ出力する。また、再構成制御回路２１０は、構成情報２２１に含まれるバッファ使用上限数をライトポインタ制御回路５３１３及びリードポインタ制御回路５３１４へ出力する。また、再構成制御回路２１０は、構成情報２２１に含まれる不使用バッファのエントリ番号に対応する活性信号を０に設定し、不使用バッファ以外のエントリ番号に対応する活性信号を１に設定し、バッファ群５３１５へ出力する。これにより、バス回路２５０は再構成される。
【００６０】
その後、ＣＰＵ２７１〜２７ｘのうちいずれかは、ＦＬＡＳＨ２２０からソフトウェア２２２を読み込み、実行する。これにより、ソフトウェア２２２の実行時に最低限使用されるバス回路２５０の構成に対してクロック信号が供給され、不使用の構成へのクロック信号供給を抑制できる。そのため、同一のＭＣＵ２００に対して様々なソフトウェアに対応した最適な回路構成を自動的に実現でき、かつ、消費電力を低減できる。特に、エミュレーションデバイス１００を用いてソフトウェア１２１の動作を観測するため、ソフトウェア解析等だけでは困難な情報の取得を可能とし、回路構成をより最適に近付けることができる。
【００６１】
＜実施形態２＞
本実施形態２は、上述した実施形態１の改良例である。すなわち、前記構成情報は、前記特定のソフトウェアの実行時において使用された、前記半導体装置が備える割込みコントローラによる割込み通知、ＤＭＡ（Direct Memory Access）の使用チャネル、又は、通信ポートのポートに基づいて特定される不使用回路の指定を含むものとする。そして、前記制御回路は、前記特定のソフトウェアの実行時において、前記指定された不使用回路に対応する構成に対するクロック信号の供給を停止するように、前記割込みコントローラ、前記ＤＭＡ、又は、前記通信ポートを制御する。これにより、バス回路に加えて、割込みコントローラ、ＤＭＡ、又は、通信ポートに対する不使用回路への消費電力を低減できる。
【００６２】
図１４は、本実施形態２にかかる半導体装置の再構成制御システム２０００ａの構成を示すブロック図である。再構成制御システム２０００ａは、エミュレーションデバイス１００ａと、ＭＣＵ２００ａと、情報処理装置３００ａとを備える。
【００６３】
図１５は、本実施形態２にかかるエミュレーションデバイス１００ａの構成を示すブロック図である。エミュレーションデバイス１００ａは、上述したエミュレーションデバイス１００を改良したものであり、動作モニタ１１０が動作モニタ１１０ａに置き換わり、ＤＭＡ１８１、割込みコントローラ１８２、ポート１８３が追加されたものである。ＤＭＡ１８１は、ＣＰＵ１７１〜１７ｘを介さずにモジュール間のデータ転送を可能とする回路である。割込みコントローラ１８２は、ソフトウェア１２１の実行時の割込み要求を受信し、優先度やマスク制御、割込み通知などを行う。ポート１８３は、外部との入出力制御を行う。
【００６４】
動作モニタ１１０ａは、ソフトウェア１２１の実行時における各回路の動作状態を観測し、動作情報１１１ａを取得し、内部に保存する。特に、動作モニタ１１０ａは、ソフトウェア１２１の実行時におけるＤＭＡ１８１の動作から、使用ＤＭＡチャネルを取得する。また、動作モニタ１１０ａは、割込みコントローラ１８２からの割込み要求時の割込みＩＤを取得する。また、動作モニタ１１０ａは、外部との入出力時に使用されたポート経路における使用ポート番号を取得する。つまり、動作モニタ１１０ａは、上述した動作情報１１１に加えて、使用ＤＭＡチャネル、割込みＩＤ、及び、使用ポート番号の少なくともいずれかを含めて動作情報１１１ａとして保存する。
【００６５】
情報処理装置３００ａは、上述した情報処理装置３００を改良したものであり、情報変換処理部３１０ａと、記憶部３２０とを備える。記憶部３２０は、動作情報３２１ａと、回路情報３２２ａと、構成情報３２３ａとを記憶する。動作情報３２１ａは、上述した動作情報１１１ａが格納されたものである。回路情報３２２ａは、回路情報３２２に加え、ＭＣＵ２００ａが有するＤＭＡ２８１、割込みコントローラ２８２、ポート２８３の構成を含む。構成情報３２３ａは、構成情報３２３に加え、ＤＭＡ２８１、割込みコントローラ２８２、ポート２８３を再構成するための情報を含む。情報変換処理部３１０ａは、動作情報３２１ａと回路情報３２２ａとに基づいて、所定の変換を行い、構成情報３２３ａを生成し、記憶部３２０に保存し、構成情報３２３ａをＭＣＵ２００ａへ送信する。
【００６６】
図１６は、本実施形態２にかかる動作情報と構成情報の関係を示す図である。例えば、動作情報Ｃが使用ＤＭＡチャネルである場合、情報変換処理部３１０ａは、回路情報３２２ａのＤＭＡのチャネル情報のうち動作情報Ｃに含まれない不使用ＤＭＡチャネルを特定し、特定した不使用ＤＭＡチャネルに対応するＤＭＡ内の不使用回路に変換し、構成情報Ｃとする。また、動作情報Ｄが発生した割込みＩＤである場合、情報変換処理部３１０ａは、回路情報３２２ａの割込みコントローラが発生し得る割込みＩＤのうち、動作情報Ｄに含まれない不使用の割込みＩＤを特定し、特定した不使用割込みＩＤに対応する割込みコントローラ内の不使用回路に変換し、構成情報Ｄとする。また、動作情報Ｅが発生した使用ポート番号である場合、情報変換処理部３１０ａは、回路情報３２２ａのポートのポート番号のうち、動作情報Ｅに含まれない不使用のポート番号を特定し、特定した不使用ポート番号に対応するポート内の不使用回路に変換し、構成情報Ｅとする。
【００６７】
図１７は、本実施形態２にかかるＭＣＵ２００ａの構成を示すブロック図である。ＭＣＵ２００ａは、上述したＭＣＵ２００を改良したものであり、再構成制御回路２１０が再構成制御回路２１０ａに置き換わり、ＤＭＡ２８１、割込みコントローラ２８２、ポート２８３が追加されたものである。ＤＭＡ２８１、割込みコントローラ２８２、及び、ポート２８３は、上述したＤＭＡ１８１、割込みコントローラ１８２、及び、ポート１８３と同等の構成である。ＦＬＡＳＨ２２０は、情報処理装置３００ａから受信した構成情報２２１ａを記憶する。再構成制御回路２１０ａは、ＭＣＵ２００ａの起動時に、ＦＬＡＳＨ２２０から構成情報２２１ａを読み出す。そして、再構成制御回路２１０ａは、読み出した構成情報２２１ａに基づいて、バス回路２５０、並びに、ＤＭＡ２８１、割込みコントローラ２８２、及び、ポート２８３内の構成に対して指示を行う。
【００６８】
再構成制御回路２１０ａは、例えば、構成情報Ｃ，Ｄ及びＥに基づいて、対応する各構成の不使用回路を不活性にする。これにより、実施形態１と比べてさらなる消費電力を抑制することができる。
【００６９】
＜実施形態３＞
本実施形態３は、上述した実施形態１の改良例である。すなわち、前記構成情報は、前記特定のソフトウェアの実行時において発生する割込み処理ごとに対応付けられた情報である。そして、前記制御回路は、前記特定のソフトウェアの実行時において前記割込み処理が発生した場合に、前記記憶部の中から当該割込み処理に対応する前記構成情報を特定する。そして、前記制御回路は、当該特定した構成情報に基づいて、前記バス回路を制御する。前記制御回路は、前記割込み処理の終了後に、当該割込み処理の発生前の構成情報に基づいて、前記バス回路を制御する。これにより、割込み処理ごとにきめ細かい消費電力の低減を行うことができる。
【００７０】
図１８は、本実施形態３にかかる半導体装置の再構成制御システム２０００ｂの構成を示すブロック図である。再構成制御システム２０００ｂは、エミュレーションデバイス１００ｂと、ＭＣＵ２００ｂと、情報処理装置３００ｂとを備える。
【００７１】
図１９は、本実施形態３にかかるエミュレーションデバイス１００ｂの構成を示すブロック図である。エミュレーションデバイス１００ｂは、上述したエミュレーションデバイス１００を改良したものであり、動作モニタ１１０が動作モニタ１１０ｂに置き換わり、割込みコントローラ１８２が追加されたものである。
【００７２】
動作モニタ１１０ｂは、ソフトウェア１２１の実行時における各回路の動作状態を観測し、動作情報１１１ｂを取得し、内部に保存する。特に、動作モニタ１１０ｂは、割込みコントローラ１８２からの割込み要求時の割込みＩＤを取得する。そして、動作モニタ１１０ｂは、割込み処理時に取得された動作情報に、取得した割込みＩＤを対応付けて保存する。動作モニタ１１０ｂは、割込み要求が発生する度に、これを繰り返す。
【００７３】
情報処理装置３００ｂは、上述した情報処理装置３００を改良したものであり、情報変換処理部３１０ｂと、記憶部３２０とを備える。記憶部３２０は、動作情報３２１ｂと、回路情報３２２ｂと、構成情報３２３ｂとを記憶する。動作情報３２１ｂは、上述した動作情報１１１ｂが格納されたものである。回路情報３２２ｂは、回路情報３２２に加え、ＭＣＵ２００ｂが有する割込みコントローラ２８２の割込みＩＤのリストを含む。構成情報３２３ｂは、構成情報３２３を割込みＩＤごとに対応付けた情報である。情報変換処理部３１０ｂは、動作情報３２１ｂと回路情報３２２ｂとに基づいて、所定の変換を行い、構成情報３２３ｂを生成し、記憶部３２０に保存し、構成情報３２３ｂをＭＣＵ２００ｂへ送信する。
【００７４】
図２０は、本実施形態３にかかる動作情報と構成情報の関係を示す図である。ここでは、図４の動作情報Ａ及びＢのそれぞれについて、割込みＩＤ０、割込みＩＤ１及び割込みＩＤ２が対応付けられている。そのため、構成情報Ａ及びＢのそれぞれについても、割込みＩＤ０、割込みＩＤ１及び割込みＩＤ２が対応付けられている。
【００７５】
図２１は、本実施形態３にかかるＭＣＵ２００ｂの構成を示すブロック図である。ＭＣＵ２００ｂは、上述したＭＣＵ２００を改良したものであり、再構成制御回路２１０が再構成制御回路２１０ｂに置き換わり、割込みコントローラ２８２が追加されたものである。ＦＬＡＳＨ２２０は、情報処理装置３００ｂから受信した構成情報２２１ｂを記憶する。再構成制御回路２１０ｂは、ＭＣＵ２００ｂの起動時に、ＦＬＡＳＨ２２０から構成情報２２１ｂを読み出す。そして、再構成制御回路２１０ｂは、ソフトウェア２２２の実行中に、割込みが発生又は終了するごとに、読み出した構成情報２２１ｂに基づいて、バス回路２５０内の構成に対して指示を行う。
【００７６】
図２２は、本実施形態３にかかる動作情報取得処理の流れを示すフローチャートである
まず、エミュレーションデバイス１００ｂは起動する。そして、ＣＰＵ１７１〜１７ｘのうちいずれかは、ＦＬＡＳＨ１２０から開発対象のソフトウェア１２１を読み込み、実行する（Ｓ２０１）。動作モニタ１１０ｂは、割込みＩＤを０に設定する（Ｓ２０２）。つまり、動作モニタ１１０ｂは、メインプログラム実行時の割込みＩＤを０として設定する。
【００７７】
続いて、動作モニタ１１０ｂは、バス回路１５０へのアクセスと共に、割込みコントローラ１８２からの割込み信号を監視する。動作モニタ１１０ｂは、割込みが発生したか、又は、終了したかを判定する（Ｓ２０３）。割込みが発生及び終了のいずれでもない場合、ステップＳ２０５へ進む。一方、割込みが発生又は終了のいずれかであった場合、動作モニタ１１０ｂは、割込みＩＤを変更する（Ｓ２０４）。例えば、割込みが発生した場合、動作モニタ１１０ｂは、割込みコントローラ１８２から割込み要求の通知を受け付け、割込みＩＤを発生した割込み要求が示すＩＤへ変更する。また、割込みが終了した場合、動作モニタ１１０ｂは、割込みＩＤを戻り先の処理に対応した値に変更する。
【００７８】
そして、動作モニタ１１０ｂは、バスアクセスが発生したか否かを判定する（Ｓ２０５）。バスアクセスが発生しなければ、ステップＳ２０７へ進む。一方、バスアクセスが発生した場合、動作モニタ１１０ｂは、バス回路１５０の動作情報１１１ｂを取得し、割込みＩＤと取得した動作情報とを対応付けて動作情報１１１ｂとして保存を行う（Ｓ２０６）。
【００７９】
その後、エミュレーションデバイス１００ｂは、ソフトウェア１２１の実行が終了したか否かを判定する（Ｓ２０７）。ソフトウェア１２１の実行が終了していなければ、ステップＳ２０３へ戻る。一方、ソフトウェア１２１の実行が終了していれば、動作モニタ１１０ｂは、動作情報１１１ｂを通信モジュール１４０を介して情報処理装置３００ｂへ出力する（Ｓ２０８）。そして、情報処理装置３００ｂは、動作情報１１１ｂを受信し、動作情報３２１ｂとして記憶部３２０に保存する。
【００８０】
図２３は、本実施形態３にかかる再構成処理の流れを示すフローチャートである。まず、ＭＣＵ２００ｂは起動する。そして、再構成制御回路２１０ｂは、割込みＩＤを０に設定する（Ｓ２２１）。そして、再構成制御回路２１０ｂは、ＦＬＡＳＨ２２０から構成情報２２１ｂを読み出す（Ｓ２２２）。次に、再構成制御回路２１０ｂは、構成情報２２１ｂに基づいてバス回路２５０へ各種設定を指示する（Ｓ２２３）。具体的には、再構成制御回路２１０ｂは、割込みＩＤ０に対応付けられた構成情報を特定し、特定した構成情報に基づいてバス回路２５０へ各種設定を指示する。これにより、割込みＩＤ０におけるバス回路２５０の再構成ができる。
【００８１】
その後、ＣＰＵ２７１〜２７ｘのうちいずれかは、ＦＬＡＳＨ２２０からソフトウェア２２２を読み込み、実行する（Ｓ２２４）。そして、再構成制御回路２１０ｂは、割込みコントローラ２８２からの割込み信号を監視する。再構成制御回路２１０ｂは、割込みが発生したか、又は、終了したかを判定する（Ｓ２２５）。割込みが発生及び終了のいずれでもない場合、ステップＳ２２５へ戻る。一方、割込みが発生又は終了のいずれかであった場合、再構成制御回路２１０ｂは、割込みＩＤを変更する（Ｓ２２６）。例えば、割込みが発生した場合、再構成制御回路２１０ｂは、割込みコントローラ２８２から割込み要求の通知を受け付け、割込みＩＤを発生した割込み要求が示すＩＤへ変更する。また、割込みが終了した場合、再構成制御回路２１０ｂは、割込みＩＤを戻り先の処理に対応した値に変更する。
【００８２】
その後、再構成制御回路２１０ｂは、ＦＬＡＳＨ２２０から構成情報２２１ｂを読み出す（Ｓ２２７）。次に、再構成制御回路２１０ｂは、現在の割込みＩＤに対応付けられた構成情報を特定し、特定した構成情報に基づいてバス回路２５０へ各種設定を指示する（Ｓ２２８）。これにより、現在の割込みＩＤにおけるバス回路２５０の再構成ができる。そして、ステップＳ２２５へ戻る。
【００８３】
このように、本実施形態により、割込み処理ごとに回路構成が最適化できる。よって、実施形態１と比べてさらに消費電力を低減させることができる。
【００８４】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【符号の説明】
【００８５】
１０００  半導体装置
１１０１  回路
１１０ｎ  回路
１２００  バス回路
１２０１  バッファ
１２０２  バッファ
１２０ｍ  バッファ
１２１１  調停回路
１２１２  調停回路
１２１ｐ  調停回路
１３００  記憶部
１３１０  構成情報
１４００  制御回路
２０００  再構成制御システム
２０００ａ  再構成制御システム
２０００ｂ  再構成制御システム
１００  エミュレーションデバイス
１００ａ  エミュレーションデバイス
１００ｂ  エミュレーションデバイス
１１０  動作モニタ
１１０ａ  動作モニタ
１１０ｂ  動作モニタ
１１１  動作情報
１１１ａ  動作情報
１１１ｂ  動作情報
１２０  ＦＬＡＳＨ
１２１  ソフトウェア
１３０  ＲＡＭ
１４０  通信モジュール
１５０  バス回路
１６１  周辺モジュール
１６ｎ  周辺モジュール
１７１  ＣＰＵ
１７ｘ  ＣＰＵ
１８１  ＤＭＡ
１８２  割込みコントローラ
１８３  ポート
２００  ＭＣＵ
２００ａ  ＭＣＵ
２００ｂ  ＭＣＵ
２１０  再構成制御回路
２１０ａ  再構成制御回路
２１０ｂ  再構成制御回路
２２０  ＦＬＡＳＨ
２２１  構成情報
２２１ａ  構成情報
２２１ｂ  構成情報
２２２  ソフトウェア
２３０  ＲＡＭ
２４０  通信モジュール
２５０  バス回路
２６１  周辺モジュール
２６ｎ  周辺モジュール
２７１  ＣＰＵ
２７ｘ  ＣＰＵ
２８１  ＤＭＡ
２８２  割込みコントローラ
２８３  ポート
３００  情報処理装置
３１０  情報変換処理部
３２０  記憶部
３２１  動作情報
３２２  回路情報
３２３  構成情報
３００ａ  情報処理装置
３１０ａ  情報変換処理部
３２１ａ  動作情報
３２２ａ  回路情報
３２３ａ  構成情報
３００ｂ  情報処理装置
３１０ｂ  情報変換処理部
３２１ｂ  動作情報
３２２ｂ  回路情報
３２３ｂ  構成情報
４０１  マスタ
４０２  マスタ
４０３  マスタ
４０４  マスタ
４０５  マスタ
４０６  マスタ
４１１  スレーブ
４１２  スレーブ
４１３  スレーブ
５１１  クロスバスイッチ
５１２  クロスバスイッチ
５２１  調停回路
５２１１  ＦＦ群
５２１２  ラウンドロビン式優先度判定回路
５２１３  固定優先度式優先度判定回路
５２１４  ＦＦ群
５２２  調停回路
５３１  バッファ回路
５３１１  セレクタ
５３１２  セレクタ
５３１３  ライトポインタ制御回路
５３１４  リードポインタ制御回路
５３１５  バッファ群
５３１５０  バッファエントリ０
５３１５１  バッファエントリ１
５３１５２  バッファエントリ２
５３１５３  バッファエントリ３
５３２  バッファ回路
５４０  クロスバスイッチ
５５１  調停回路
５５２  調停回路
５５３  調停回路
５６１  加算器
５６２  ＦＦ
５６３  比較器
５６４  セレクタ
５６５  セレクタ
５６６  ＦＦ
５６７  デコーダ
ＲＥＱ  リクエスト信号
ＡＲＢＳＥＬ  アービトレーション選択信号
Ａ０〜Ａｎ  活性信号
【図１】
2019103013.tif 000003
【図２】
2019103013.tif 000004
【図３】
2019103013.tif 000005
【図４】
2019103013.tif 000006
【図５】
2019103013.tif 000007
【図６】
2019103013.tif 000008
【図７】
2019103013.tif 000009
【図８】
2019103013.tif 000010
【図９】
2019103013.tif 000011
【図１０】
2019103013.tif 000012
【図１１】
2019103013.tif 000013
【図１２】
2019103013.tif 000014
【図１３】
2019103013.tif 000015
【図１４】
2019103013.tif 000016
【図１５】
2019103013.tif 000017
【図１６】
2019103013.tif 000018
【図１７】
2019103013.tif 000019
【図１８】
2019103013.tif 000020
【図１９】
2019103013.tif 000021
【図２０】
2019103013.tif 000022
【図２１】
2019103013.tif 000023
【図２２】
2019103013.tif 000024
【図２３】
2019103013.tif 000025