(57)【要約】【課題】  再構成可能コンピューティング装置のデバッギング用のトレースデータ処理技術を提供する。【解決手段】  発明の第１の態様によれば、再構成可能コンピューティング装置の第１メモリ制御器は、前記再構成可能コンピューティング装置のプロセッサがループ演算と関連した第１インストラクションを実行する第１モードで、再構成部内のプロセッシングエレメント間の連結経路を構成するための構成情報を第１メモリから読み出し、複数の並列処理可能な第２インストラクションを含むインストラクションワードがフェッチされる第２メモリにデバッギング用のトレースデータを保存する、ように制御する。【選択図】      図３
2013161484.tif 000002
【特許請求の範囲】
【請求項１】
再構成可能コンピューティング装置の第１メモリ制御器であって、前記再構成可能コンピューティング装置のプロセッサがループ演算と関連した第１インストラクションを実行する第１モードで、
再構成部内のプロセッシングエレメント間の連結経路を構成するための構成情報を第１メモリから読み出し、
複数の並列処理可能な第２インストラクションを含むインストラクションワードがフェッチされる第２メモリにデバッギング用のトレースデータを保存する、
ように制御する第１メモリ制御器。
【請求項２】
前記第２インストラクションは、ループ演算以外の一般演算と関連し、
前記第１メモリ制御器は、
前記第１モードまたは前記第２モードであるかを判断するモード判断部と、
前記モード判断部によって第１モードと判断された場合、活性化されて、前記構成情報を読み出すために前記第１メモリにアクセスする第１メモリ接続部と、
前記モード判断部によって第１モードと判断された場合、活性化されて、前記デバッギング用のトレースデータを保存するために前記第２メモリにアクセスする第２メモリ接続部と、
を更に含む請求項１に記載の第１メモリ制御器。
【請求項３】
前記第１メモリ接続部が、前記モード判断部によって第２モードと判断された場合、非活性化される、請求項２に記載の第１メモリ制御器。
【請求項４】
前記第２メモリ接続部が、前記モード判断部によって第２モードと判断された場合、非活性化される、請求項２又は３に記載の第１メモリ制御器。
【請求項５】
前記デバッギング装置によって選択されるデバッギング用のトレースデータを前記第２メモリから選択して、前記デバッギング装置に出力するデータ出力部、
をさらに含む請求項２乃至４のいずれか一項に記載の第１メモリ制御器。
【請求項６】
再構成可能コンピューティング装置の第２メモリ制御器であって、前記再構成可能コンピューティング装置のプロセッサによってループ演算以外の一般演算と関連した第２インストラクションを実行する第２モードで、
複数の並列処理可能な前記第２インストラクションを含むインストラクションワードを、第２メモリにフェッチし、
デバッギング用のトレースデータを、再構成部内のプロセッシングエレメント間の連結経路を構成するために構成情報を保存する第１メモリに保存する、
ように制御する第２メモリ制御器。
【請求項７】
ループ演算と関連した第１インストラクションを実行する第１モードであるか、または前記第２モードであるかを判断するモード判断部と、
前記モード判断部によって第２モードと判断された場合、活性化されて、複数の並列処理可能な第２インストラクションを含むインストラクションワードをフェッチするために、前記第２メモリにアクセスする第２メモリ接続部と、
前記モード判断部によって第２モードと判断された場合、活性化されて、デバッギング用のトレースデータを保存するために、前記第１メモリにアクセスする第１メモリ接続部と、
を含む請求項６に記載の第２メモリ制御器。
【請求項８】
前記第２メモリ接続部が、前記モード判断部によって第１モードと判断された場合、非活性化される、請求項７に記載の第２メモリ制御器。
【請求項９】
前記第１メモリ接続部が、前記モード判断部によって第１モードと判断された場合、非活性化される、請求項７に記載の第２メモリ制御器。
【請求項１０】
前記デバッギング装置によって選択されるデバッギング用のトレースデータを前記第１メモリから選択して、前記デバッギング装置に出力するデータ出力部、をさらに含む請求項７に記載の第２メモリ制御器。
【請求項１１】
デバッギング用のトレースデータ処理が可能な再構成可能コンピューティング装置であって、
ループ演算と関連した第１インストラクションを実行する第１モードまたはループ演算以外の一般演算と関連した第２インストラクションを実行する第２モード間の切替を制御するプロセッサと、
前記第１モードまたは第２モードによって、互いに排他的に発生する第１インストラクションまたは第２インストラクションを実行するよう構成される複数のプロセッシングエレメントを有する再構成部と、
前記再構成部のプロセッシングエレメント間の連結経路を構成するための構成情報を保存する第１メモリと、
複数の並列処理可能な前記第２インストラクションを含むインストラクションワードがフェッチされる第２メモリと、
請求項１乃至５のいずれか一項に記載の第１メモリ制御器と、
請求項６乃至１０のいずれか一項に記載の第２メモリ制御器と、
を含む再構成可能コンピューティング装置。
【請求項１２】
再構成可能コンピューティング装置のデバッギング用のトレースデータを処理する方法であって、
第１インストラクションを実行する第１モードで、複数の並列処理可能な第２インストラクションを含むインストラクションワードがフェッチされる第２メモリにデバッギング用のトレースデータを保存する段階と、
前記第２インストラクションを実行する第２モードで、再構成可能コンピューティング装置の再構成部内のプロセッシングエレメント間の連結経路を構成するために構成情報を保存する第１メモリにデバッギング用のトレースデータを保存する段階と、
を含む方法。
【請求項１３】
前記第１インストラクションはループ演算と関連し、前記第２インストラクションはループ演算以外の一般演算と関連する、ことを特徴とする請求項１２に記載の方法。
【請求項１４】
前記第１モードまたは前記第２モードであるかを判断する段階、をさらに含むことを特徴とする請求項１２又は１３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、再構成可能コンピューティング技術に係り、特に、再構成可能コンピューティング装置のデバッギング用のトレースデータを処理する技術に関する。
【背景技術】
【０００２】
再構成可能アーキテクチャーは、演算を行うコンピューティング装置のハードウェア的な構成をソフトウェア的に変更して再構成する技術であって、演算速度が速いハードウェアの長所と演算の多様性に優れたソフトウェアの長所とを組み合わせることができ、最近多くの注目を浴びている。
【０００３】
特に、再構成可能アーキテクチャーは、同一の演算が反復的に行われるループ演算時に、優れた性能を発揮する。一方、再構成可能アーキテクチャーは、１つの演算の実行を開始した後に次の演算の実行を重複することによって高速処理が可能なパイプライン技術と結合した時、さらに優れた性能を発揮する。
【０００４】
本発明者は、再構成可能コンピューティング装置で実行されるプログラムのデバッギング用のトレースデータの効率的なメモリ活用技術についての研究を行った。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、再構成可能コンピューティング装置で実行されるアプリケーションのデバッギング用のトレースデータの効率的なメモリ活用技術を提供することである。
【課題を解決するための手段】
【０００６】
発明の第１の態様によれば、再構成可能コンピューティング装置の第１メモリ制御器は、前記再構成可能コンピューティング装置のプロセッサがループ演算と関連した第１インストラクションを実行する第１モードで、再構成部内のプロセッシングエレメント間の連結経路を構成するための構成情報を第１メモリから読み出し、複数の並列処理可能な第２インストラクションを含むインストラクションワードがフェッチされる第２メモリにデバッギング用のトレースデータを保存する、ように制御する。
【０００７】
発明の第２の態様によれば、再構成可能コンピューティング装置の第２メモリ制御器は、前記再構成可能コンピューティング装置のプロセッサによってループ演算以外の一般演算と関連した第２インストラクションを実行する第２モードで、複数の並列処理可能な前記第２インストラクションを含むインストラクションワードを、第２メモリにフェッチし、デバッギング用のトレースデータを、再構成部内のプロセッシングエレメント間の連結経路を構成するために構成情報を保存する第１メモリに保存する、ように制御する。
【０００８】
発明の第３の態様によれば、デバッギング用のトレースデータ処理が可能な再構成可能コンピューティング装置は、ループ演算と関連した第１インストラクションを実行する第１モードまたはループ演算以外の一般演算と関連した第２インストラクションを実行する第２モード間の切替を制御するプロセッサと、前記第１モードまたは第２モードによって、互いに排他的に発生する第１インストラクションまたは第２インストラクションを実行するよう構成される複数のプロセッシングエレメントを有する再構成部と、前記再構成部のプロセッシングエレメント間の連結経路を構成するための構成情報を保存する第１メモリと、複数の並列処理可能な前記第２インストラクションを含むインストラクションワードがフェッチされる第２メモリと、第１の態様に記載の第１メモリ制御器と、第２の態様に記載の第２メモリ制御器と、を含む。
【０００９】
発明の第４の態様によれば、再構成可能コンピューティング装置のデバッギング用のトレースデータを処理する方法は、第１インストラクションを実行する第１モードで、複数の並列処理可能な第２インストラクションを含むインストラクションワードがフェッチされる第２メモリにデバッギング用のトレースデータを保存する段階と、前記第２インストラクションを実行する第２モードで、再構成可能コンピューティング装置の再構成部内のプロセッシングエレメント間の連結経路を構成するために構成情報を保存する第１メモリにデバッギング用のトレースデータを保存する段階と、を含む。
【００１０】
したがって、デバッギング用のトレースデータを保存するための別途のメモリ追加なしに、再構成可能コンピューティング装置の再構成部内のプロセッシングエレメント間の連結経路を構成するための構成情報を保存する第１メモリと、複数の並列処理可能な第２インストラクションを含むインストラクションワードがフェッチされる第２メモリとを活用して、デバッギング用のトレースデータを効率的に保存することができて、再構成可能コンピューティング装置の製作コストの節減及び小型化に有利である。
【図面の簡単な説明】
【００１１】
【図１】本発明による再構成可能コンピューティング装置の第１メモリ制御器の一実施形態の構成を示すブロック図である。
【図２】本発明による再構成可能コンピューティング装置の第２メモリ制御器の一実施形態の構成を示すブロック図である。
【図３】本発明によるデバッギング用のトレースデータ処理が可能な再構成可能コンピューティング装置の一実施形態の構成を示すブロック図である。
【図４】本発明によるデバッギング用のトレースデータ処理が可能な再構成可能コンピューティング装置のデバッギング用のトレースデータ処理動作の一例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、添付した図面を参照して記述される実施形態を通じて、発明を当業者が容易に理解し、再現できるように詳しく記述する。
【００１３】
発明を説明するに当って、関連した公知機能または構成についての具体的な説明が、発明の実施形態の要旨を不明にする恐れがあると判断される場合には、その詳細な説明を省略する。
【００１４】
明細書の全般に亘って使われる用語は、発明の実施形態での機能を考慮して定義された用語であって、ユーザまたは運用者の意図、慣例などによって十分に変形されうる事項であるので、この用語の定義は、明細書の全般に亘った内容に基づいて下されなければならない。
【００１５】
図１は、本発明による再構成可能コンピューティング装置の第１メモリ制御器の一実施形態の構成を示すブロック図である。本実施形態による再構成可能コンピューティング装置の第１メモリ制御器１００は、プロセッサ１０によってループ演算と関連した第１インストラクションを実行する第１モードにおいて、図３に示した再構成部２０内のプロセッシングエレメント２１間の連結経路を構成するために、第１メモリ３０に格納された構成情報を読み出し、デバッギング用のトレースデータを第２メモリ４０に保存するように制御する。第２メモリ４０からは、プロセッサ１０によって第２インストラクションが実行される第２モードのとき、ループ演算以外の一般演算と関連した複数の並列処理可能な第２インストラクションを含むインストラクションワードがフェッチされる。そして、第１メモリ制御器１００は、第２メモリ４０に保存されたデバッギング用のトレースデータをデバッギング装置５０へ出力する。
【００１６】
図１に示したように、再構成可能コンピューティング装置の第１メモリ制御器１００は、モード判断部１１０と、第１メモリ接続部１２０と、第２メモリ接続部１３０とを含みうる。
【００１７】
モード判断部１１０は、ループ演算と関連した第１インストラクションを実行する第１モードであるか、またはループ演算以外の一般演算と関連した第２インストラクションを実行する第２モードであるかを判断する。
【００１８】
プロセッサ１０は、ループ演算と関連した第１インストラクションを実行する第１モードまたはループ演算以外の一般演算と関連した第２インストラクションを実行する第２モード間の切替を制御し、これにより、第１モードでは、第１インストラクションが発生し、第２モードでは、第２インストラクションが発生する。
【００１９】
モード判断部１１０は、プロセッサ１０から第１インストラクションが発生したか、または第２インストラクションが発生したかを検出することによって、ループ演算と関連した第１インストラクションを実行する第１モードであるか、またはループ演算以外の一般演算と関連した第２インストラクションを実行する第２モードであるかを判断する。
【００２０】
第１メモリ接続部１２０は、モード判断部１１０によって第１モードと判断された場合、活性化され、第１メモリ３０にアクセスして再構成部２０内のプロセッシングエレメント２１間の連結経路を構成するために構成情報を読み出す。一方、第１メモリ接続部１２０は、モード判断部１１０によって第２モードと判断された場合、非活性化される。
【００２１】
第１メモリ３０に保存された構成情報に基づいて、再構成部２０内のプロセッシングエレメント２１間の連結経路が再構成されて、ループ演算と関連した第１インストラクションが実行される。
【００２２】
第２メモリ接続部１３０は、モード判断部１１０によって第１モードと判断された場合、活性化されて、第２メモリ４０にアクセスしてデバッギング用のトレースデータを保存する。一方、第２メモリ接続部１３０は、モード判断部１１０によって第２モードと判断された場合、非活性化される。
【００２３】
第２メモリ４０に保存されるデバッギング用のトレースデータは、アプリケーションの遂行によって発生する演算結果値またはメモリアクセス情報などのアプリケーションのデバッギングのために使われる情報であって、デバッギング装置５０を通じてプログラム開発者などに提供されて、アプリケーションのデバッギングがなされる。
【００２４】
付加的な態様によれば、再構成可能コンピューティング装置の第１メモリ制御器１００は、データ出力部１４０をさらに含みうる。データ出力部１４０は、デバッギング装置５０によって選択されるデバッギング用のトレースデータを第２メモリ４０から選択して、デバッギング装置５０に出力する。
【００２５】
例えば、プログラム開発者が開発したアプリケーションが実行されて、第２メモリ４０に当該アプリケーションのデバッギング用のトレースデータが保存された場合や、プログラム開発者がデータ出力部１４０にデバッギング装置５０を連結し、デバッギング用のトレースデータを要請した場合に、データ出力部１４０は、デバッギング装置５０に第２メモリ４０に保存されたデバッギング用のトレースデータを出力する。
【００２６】
この際、デバッギング用のトレースデータのサイズが大きい場合、デバッギング装置５０にサイズが大きなデバッギング用のトレースデータを全て出力することは、ハードウェアまたはソフトウェア資源を浪費する恐れがあって、非効率的である。したがって、デバッギング装置５０を通じて選択されたデバッギング用のトレースデータのみデータ出力部１４０が選択的に第２メモリ４０から選択して、デバッギング装置５０に出力するようにすることもできる。
【００２７】
図２は、本発明による再構成可能コンピューティング装置の第２メモリ制御器の一実施形態の構成を示すブロック図である。本実施形態による再構成可能コンピューティング装置の第２メモリ制御器２００は、プロセッサ１０がループ演算以外の一般演算と関連した第２インストラクションを実行する第２モードにおいて、複数の並列処理可能な第２インストラクションを含むインストラクションワードが、第２メモリ４０にフェッチし、デバッギング用のトレースデータを、図３に示した再構成部２０内のプロセッシングエレメント２１間の連結経路を構成するための構成情報を保存する第１メモリ３０に保存するように制御する。
【００２８】
図２に示したように、再構成可能コンピューティング装置の第２メモリ制御器２００は、モード判断部２１０と、第２メモリ接続部２２０と、第１メモリ接続部２３０とを含みうる。
【００２９】
モード判断部２１０は、ループ演算と関連した第１インストラクションを実行する第１モードであるか、またはループ演算以外の一般演算と関連した第２インストラクションを実行する第２モードであるかを判断する。
【００３０】
プロセッサ１０は、ループ演算と関連した第１インストラクションを実行する第１モードまたはループ演算以外の一般演算と関連した第２インストラクションを実行する第２モード間の切替を制御し、これにより、第１モードでは、第１インストラクションが発生し、第２モードでは、第２インストラクションが発生する。
【００３１】
モード判断部２１０は、プロセッサ１０から第１インストラクションが発生したか、または第２インストラクションが発生したかを検出することによって、ループ演算と関連した第１インストラクションを実行する第１モードであるか、またはループ演算以外の一般演算と関連した第２インストラクションを実行する第２モードであるかを判断する。
【００３２】
第２メモリ接続部２２０は、モード判断部２１０によって第２モードと判断された場合、活性化されて、複数の並列処理可能な第２インストラクションを含むインストラクションワードをフェッチするために、第２メモリ４０にアクセスする。一方、第２メモリ接続部２２０は、モード判断部２１０によって第１モードと判断された場合、非活性化される。
【００３３】
第２メモリ４０にフェッチされたインストラクションワードに基づいて、並列処理可能な第２インストラクションを再構成部２０のプロセッシングエレメント２１が並列処理して実行する。
【００３４】
第１メモリ接続部２３０は、モード判断部２１０によって第２モードと判断された場合、活性化されて、デバッギング用のトレースデータを保存するために、第１メモリ３０にアクセスする。一方、第１メモリ接続部２３０は、モード判断部２１０によって第１モードと判断された場合、非活性化される。
【００３５】
第１メモリ３０に保存されるデバッギング用のトレースデータは、アプリケーションの遂行によって発生する演算結果値またはメモリアクセス情報などのアプリケーションのデバッギングのために使われる情報であって、デバッギング装置５０を通じてプログラム開発者などに提供されて、当該アプリケーションのデバッギングがなされる。
【００３６】
付加的な態様によれば、再構成可能コンピューティング装置の第２メモリ制御器２００は、データ出力部２４０をさらに含みうる。データ出力部２４０は、デバッギング装置５０によって選択されるデバッギング用のトレースデータを第１メモリ３０から選択して、デバッギング装置５０に出力する。
【００３７】
例えば、プログラム開発者が開発したアプリケーションが実行されて、第１メモリ３０に当該アプリケーションのデバッギング用のトレースデータが保存された場合や、プログラム開発者がデータ出力部２４０にデバッギング装置５０を連結し、デバッギング用のトレースデータを要請した場合に、データ出力部２４０が、デバッギング装置５０に第１メモリ３０に保存されたデバッギング用のトレースデータを出力する。
【００３８】
この際、デバッギング用のトレースデータのサイズが大きい場合、デバッギング装置５０にサイズが大きなデバッギング用のトレースデータを全て出力することは、ハードウェアまたはソフトウェア資源を浪費する恐れがあって、非効率的である。したがって、デバッギング装置５０を通じて選択されたデバッギング用のトレースデータのみデータ出力部２４０が選択的に第１メモリ３０から選択して、デバッギング装置５０に出力するようにすることもできる。
【００３９】
図３を参照して、図１に示した第２メモリ制御器１００及び図２に示した第２メモリ制御器２００の各構成要素、及びこれらの結合関係を詳しく説明する。図３は、本発明によるデバッギング用のトレースデータの処理が可能な再構成可能コンピューティング装置の一実施形態の構成を示すブロック図である。
【００４０】
本実施形態によるデバッギング用のトレースデータの処理が可能な再構成可能コンピューティング装置は、プロセッサ１０と、再構成部２０と、第１メモリ３０と、第２メモリ４０と、第１メモリ制御器１００と、第２メモリ制御器２００とを含む。
【００４１】
プロセッサ１０は、ループ演算と関連した第１インストラクションを実行する第１モードまたはループ演算以外の一般演算と関連した第２インストラクションを実行する第２モード間の切替を制御し、プロセッサ１０は、プロセッサコア１１と、中央レジスタファイル１２とを含む。
【００４２】
プロセッサコア１１は、ループ演算と関連した第１インストラクションは第１メモリ３０に保存された構成情報に基づいて連結される再構成部２０のプロセッシングエレメント２１を通じて加速して実行する。
【００４３】
一方、プロセッサコア１１は、ループ演算以外の一般演算と関連した複数の並列処理可能な第２インストラクションを含むインストラクションワードを第２メモリ４０にフェッチして、再構成部２０のプロセッシングエレメント２１を通じて並列処理する。
【００４４】
中央レジスタファイル１２は、再構成部２０のプロセッシングエレメント２１によって実行される第１インストラクション及び第２インストラクション実行に必要な各種のデータと、第１インストラクション及び第２インストラクション実行の結果とを保存する。
【００４５】
プロセッサ１０は、高級言語で作成されたアプリケーションが実行されれば、これをコンパイルし、コンパイルされた命令をスケジューリングして、再構成部２０のプロセッシングエレメント２１間のデータ経路を構成するための構成情報を生成し、これを第１メモリ３０に保存する。
【００４６】
再構成部２０は、第１モードまたは第２モードにおいて互いに排他的に発生する第１インストラクションまたは第２インストラクションを実行するために接続経路を介して互いに接続される複数のプロセッシングエレメント２１を含む。第１モードでは、再構成部２０は、第１メモリ３０に保存された構成情報に基づいてプロセッシングエレメント２１間のデータ経路を再構成する。
【００４７】
例えば、再構成部２０は、ＣＧＡ（Ｃｏａｒｓｅ  Ｇｒａｉｎｅｄ  Ａｒｒａｙ）であり得る。ＣＧＡは、計算ユニット（ＦＵ：Ｆｕｎｃｔｉｏｎ  Ｕｎｉｔ）とローカルレジスタファイル（ＬＲＦ：Ｌｏｃａｌ  Ｒｅｇｉｓｔｅｒ  Ｆｉｌｅ）の対からなる複数のプロセッシングエレメントとからなり、例外として、中央レジスタファイル１２と連結されるプロセッシングエレメントは、計算ユニット（ＦＵ）のみ含む。
【００４８】
第１メモリ３０は、再構成部２０内のプロセッシングエレメント２１間の連結経路を構成するための構成情報を保存する。この第１メモリ３０に保存された構成情報に基づいて、再構成部２０のプロセッシングエレメント２１のデータ経路が再構成される。
【００４９】
第２メモリ４０は、複数の並列処理可能な第２インストラクションを含むインストラクションワードがフェッチされる。この第２メモリ４０にフェッチされたインストラクションワードに基づいて、並列処理可能な第２インストラクションを再構成部２０のプロセッシングエレメント２１が並列処理して実行する。
【００５０】
第１メモリ制御器１００は、プロセッサ１０によってループ演算と関連した第１インストラクションを実行する第１モードにおいて、再構成部２０内のプロセッシングエレメント２１間の連結経路を構成するための構成情報を第１メモリ３０から読み出し、デバッギング用のトレースデータを、複数の並列処理可能な第２インストラクションを含むインストラクションワードがフェッチされる第２メモリ４０に保存するように制御する。
【００５１】
第２メモリ制御器２００は、プロセッサ１０によってループ演算以外の一般演算と関連した第２インストラクションを実行する第２モードにおいて、複数の並列処理可能な第２インストラクションを含むインストラクションワードを第２メモリ４０にフェッチし、デバッギング用のトレースデータを、再構成部２０内のプロセッシングエレメント２１間の連結経路を構成するための構成情報を保存する第１メモリ３０に保存するように制御する。
【００５２】
デバッギング用のトレースデータは、アプリケーションの遂行によって発生する演算結果値またはメモリアクセス情報などのアプリケーションのデバッギングのために使われる情報であって、デバッギング装置５０を通じてプログラム開発者などに提供される情報である。
【００５３】
デバッギング用のトレースデータを保存するための別途のメモリを追加する場合、再構成可能コンピューティング装置の製作コストが上昇し、サイズも大きくなってしまう。本実施形態によるデバッギング用のトレースデータ処理が可能な再構成可能コンピューティング装置は、第１モードと第２モードとが同時に実行されず、互いに排他的に実行される特性を用いて、再構成可能コンピューティング装置の製作コストの節減及び小型化のために、別途のメモリを追加なしに、デバッギング用のトレースデータを効率的に保存する。
【００５４】
ループ演算と関連した第１インストラクションを実行する第１モードとループ演算以外の一般演算と関連した第２インストラクションを実行する第２モードは、互いに排他的に実行されるので、第１モード実行中には使われない第２メモリ４０に第１メモリ制御器１００を通じてアクセスして、デバッギング用のトレースデータを保存し、第２モード実行中には使われない第１メモリ３０に第２メモリ制御器２００を通じてアクセスして、デバッギング用のトレースデータを保存する。
【００５５】
これにより、デバッギング用のトレースデータを保存するための別途のメモリ追加なしに、再構成可能コンピューティング装置の再構成部内のプロセッシングエレメント間の連結経路を構成するための構成情報を保存する第１メモリ３０と、複数の並列処理可能な第２インストラクションを含むインストラクションワードがフェッチされる第２メモリ４０とを活用して、デバッギング用のトレースデータを効率的に保存することができて、再構成可能コンピューティング装置の製作コストの節減及び小型化が可能となる。
【００５６】
一方、付加的な態様によれば、デバッギング用のトレースデータの処理が可能な再構成可能コンピューティング装置の第１メモリ制御器１００が、モード判断部１１０と、第１メモリ接続部１２０と、第２メモリ接続部１３０とを含みうる。
【００５７】
モード判断部１１０は、ループ演算と関連した第１インストラクションを実行する第１モードであるか、またはループ演算以外の一般演算と関連した第２インストラクションを実行する第２モードであるかを判断する。
【００５８】
プロセッサ１０は、ループ演算と関連した第１インストラクションを実行する第１モードまたはループ演算以外の一般演算と関連した第２インストラクションを実行する第２モード間の切替を制御し、これにより、第１モードでは、第１インストラクションが発生し、第２モードでは、第２インストラクションが発生する。
【００５９】
モード判断部１１０は、プロセッサ１０から第１インストラクションが発生したか、または第２インストラクションが発生したかを検出することによって、ループ演算と関連した第１インストラクションを実行する第１モードであるか、またはループ演算以外の一般演算と関連した第２インストラクションを実行する第２モードであるかを判断する。
【００６０】
第１メモリ接続部１２０は、モード判断部１１０によって第１モードと判断された場合、活性化されて、再構成部２０内のプロセッシングエレメント２１間の連結経路を構成するための構成情報を読み出すために、第１メモリ３０にアクセスする。一方、第１メモリ接続部１２０は、モード判断部１１０によって第２モードと判断された場合、非活性化される。
【００６１】
第１メモリ３０に保存された構成情報に基づいて、再構成部２０内のプロセッシングエレメント２１間の連結経路が再構成されて、ループ演算と関連した第１インストラクションが実行される。
【００６２】
第２メモリ接続部１３０は、モード判断部１１０によって第１モードと判断された場合、活性化されて、デバッギング用のトレースデータを保存するために、第２メモリ４０にアクセスする。一方、第２メモリ接続部１３０は、モード判断部１１０によって第２モードと判断された場合、非活性化される。
【００６３】
第２メモリ４０に保存されるデバッギング用のトレースデータは、アプリケーションの遂行によって発生する演算結果値またはメモリアクセス情報などのアプリケーションのデバッギングのために使われる情報であって、デバッギング装置５０を通じてプログラム開発者などに提供されて、当該アプリケーションのデバッギングがなされる。
【００６４】
一方、再構成可能コンピューティング装置の第１メモリ制御器１００が、データ出力部１４０をさらに含みうる。データ出力部１４０は、デバッギング装置５０によって選択されるデバッギング用のトレースデータを第２メモリ４０から選択して、デバッギング装置５０に出力する。
【００６５】
例えば、プログラム開発者が開発したアプリケーションが実行されて、第２メモリ４０にアプリケーションのデバッギング用のトレースデータが保存された場合や、プログラム開発者がデータ出力部１４０にデバッギング装置５０を連結し、デバッギング用のトレースデータを要請した場合に、データ出力部１４０が、デバッギング装置５０に第２メモリ４０に保存されたデバッギング用のトレースデータを出力する。
【００６６】
この際、デバッギング用のトレースデータのサイズが大きい場合、デバッギング装置５０にサイズが大きなデバッギング用のトレースデータを全て出力することは、ハードウェアまたはソフトウェア資源を浪費する恐れがあって、非効率的である。したがって、デバッギング装置５０を通じて選択されたデバッギング用のトレースデータのみデータ出力部１４０が選択的に第２メモリ４０から選択して、デバッギング装置５０に出力するようにすることもできる。
【００６７】
一方、付加的な態様によれば、デバッギング用のトレースデータ処理が可能な再構成可能コンピューティング装置の第２メモリ制御器２００が、モード判断部２１０と、第２メモリ接続部２２０と、第１メモリ接続部２３０とを含みうる。
【００６８】
モード判断部２１０は、ループ演算と関連した第１インストラクションを実行する第１モードであるか、またはループ演算以外の一般演算と関連した第２インストラクションを実行する第２モードであるかを判断する。
【００６９】
プロセッサ１０は、ループ演算と関連した第１インストラクションを実行する第１モードまたはループ演算以外の一般演算と関連した第２インストラクションを実行する第２モード間の切替を制御し、これにより、第１モードでは、第１インストラクションが発生し、第２モードでは、第２インストラクションが発生する。
【００７０】
モード判断部２１０は、プロセッサ１０から第１インストラクションが発生したか、または第２インストラクションが発生したかを検出することによって、ループ演算と関連した第１インストラクションを実行する第１モードであるか、またはループ演算以外の一般演算と関連した第２インストラクションを実行する第２モードであるかを判断する。
【００７１】
第２メモリ接続部２２０は、モード判断部２１０によって第２モードと判断された場合、活性化されて、複数の並列処理可能な第２インストラクションを含むインストラクションワードをフェッチするために、第２メモリ４０にアクセスする。一方、第２メモリ接続部２２０は、モード判断部２１０によって第１モードと判断された場合、非活性化される。
【００７２】
第２メモリ４０にフェッチされたインストラクションワードに基づいて、並列処理可能な第２インストラクションを再構成部２０のプロセッシングエレメント２１が並列処理して実行する。
【００７３】
第１メモリ接続部２３０は、モード判断部２１０によって第２モードと判断された場合、活性化されて、デバッギング用のトレースデータを保存するために、第１メモリ３０にアクセスする。一方、第１メモリ接続部２３０は、モード判断部２１０によって第１モードと判断された場合、非活性化される。
【００７４】
第１メモリ３０に保存されるデバッギング用のトレースデータは、アプリケーションの遂行によって発生する演算結果値またはメモリアクセス情報などのアプリケーションのデバッギングのために使われる情報であって、デバッギング装置５０を通じてプログラム開発者などに提供されて、当該アプリケーションのデバッギングがなされる。
【００７５】
付加的な態様によれば、再構成可能コンピューティング装置の第２メモリ制御器２００が、データ出力部２４０をさらに含みうる。データ出力部２４０は、デバッギング装置５０によって選択されるデバッギング用のトレースデータを第１メモリ３０から選択して、デバッギング装置５０に出力する。
【００７６】
例えば、プログラム開発者が開発したアプリケーションが実行されて、第１メモリ３０に当該アプリケーションのデバッギング用のトレースデータが保存された場合や、プログラム開発者がデータ出力部２４０にデバッギング装置５０を連結し、デバッギング用のトレースデータを要請した場合に、データ出力部２４０が、デバッギング装置５０に第１メモリ３０に保存されたデバッギング用のトレースデータを出力する。
【００７７】
この際、デバッギング用のトレースデータのサイズが大きい場合、デバッギング装置５０にサイズが大きなデバッギング用のトレースデータを全て出力することは、ハードウェアまたはソフトウェア資源を浪費する恐れがあって、非効率的であるので、デバッギング装置５０を通じて選択されたデバッギング用のトレースデータのみデータ出力部２４０が選択的に第１メモリ３０から選択して、デバッギング装置５０に出力するようにすることもできる。
【００７８】
図４は、本発明によるデバッギング用のトレースデータの処理が可能な再構成可能コンピューティング装置のデバッギング用のトレースデータ処理動作の一例を示すフローチャートである。
【００７９】
デバッギング用のトレースデータ処理が可能な再構成可能コンピューティング装置のプロセッサが、ループ演算と関連した第１インストラクションを実行する第１モードまたはループ演算以外の一般演算と関連した第２インストラクションを実行する第２モード間の切替を制御するので、第１モードでは、第１インストラクションが発生し、第２モードでは、第２インストラクションが発生する。
【００８０】
そうすると、段階４１０で、デバッギング用のトレースデータの処理が可能な再構成可能コンピューティング装置の第１メモリ制御器と第２メモリ制御器のそれぞれが、第１モードであるか、第２モードであるかを判断する。
【００８１】
もし、段階４１０による判断の結果、第１モードである場合、段階４２０で、デバッギング用のトレースデータ処理が可能な再構成可能コンピューティング装置の第１メモリ制御器が、複数の並列処理可能な第２インストラクションを含むインストラクションワードがフェッチされる第２メモリにデバッギング用のトレースデータを保存する。
【００８２】
もし、段階４１０による判断の結果、第２モードである場合、段階４３０で、デバッギング用のトレースデータの処理が可能な再構成可能コンピューティング装置の第２メモリ制御器が、再構成部内のプロセッシングエレメント間の連結経路を構成するための構成情報を保存する第１メモリにデバッギング用のトレースデータを保存する。
【００８３】
そして、段階４４０で、デバッギング用のトレースデータの処理が可能な再構成可能コンピューティング装置の第１メモリ制御器または第２メモリ制御器が、それぞれ第２メモリまたは第１メモリに保存されたデバッギング用のトレースデータをデバッギング装置に出力する。
【００８４】
これにより、デバッギング用のトレースデータを保存するための別途のメモリ追加なしに、再構成可能コンピューティング装置の再構成部内のプロセッシングエレメント間の連結経路を構成するための構成情報を保存する第１メモリと、複数の並列処理可能な第２インストラクションを含むインストラクションワードがフェッチされる第２メモリとを活用して、デバッギング用のトレースデータを効率的に保存することができて、再構成可能コンピューティング装置の製作コストの節減及び小型化が可能となる。
【００８５】
発明は、添付した図面によって参照される望ましい実施形態を中心に記述されたが、このような記載から後述する特許請求の範囲によって包括される範囲内で、発明の範疇を外れずに多様な変形が可能であるということは明白である。
【符号の説明】
【００８６】
１０    プロセッサ
１１    プロセッサコア
１２    中央レジスタファイル
２０    再構成部
２１    プロセッシングエレメント
３０    第１メモリ
４０    第２メモリ
５０    デバッギング装置
１００  第１メモリ制御器
１１０、２１０  モード判断部
１２０、２３０  第１メモリ接続部
１３０、２２０  第２メモリ接続部
１４０、２４０  データ出力部
２００  第２メモリ制御器
【図１】
2013161484.tif 000003
【図２】
2013161484.tif 000004
【図３】
2013161484.tif 000005
【図４】
2013161484.tif 000006