JP2013161484A - 再構成可能コンピューティング装置、その第1メモリ制御器及び第2メモリ制御器、並びにそのデバッギング用のトレースデータを処理する方法 - Google Patents
再構成可能コンピューティング装置、その第1メモリ制御器及び第2メモリ制御器、並びにそのデバッギング用のトレースデータを処理する方法 Download PDFInfo
- Publication number
- JP2013161484A JP2013161484A JP2013022500A JP2013022500A JP2013161484A JP 2013161484 A JP2013161484 A JP 2013161484A JP 2013022500 A JP2013022500 A JP 2013022500A JP 2013022500 A JP2013022500 A JP 2013022500A JP 2013161484 A JP2013161484 A JP 2013161484A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- mode
- debugging
- instruction
- trace data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2268—Logging of test results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
- Microcomputers (AREA)
- Advance Control (AREA)
Abstract
【課題】 再構成可能コンピューティング装置のデバッギング用のトレースデータ処理技術を提供する。
【解決手段】 発明の第1の態様によれば、再構成可能コンピューティング装置の第1メモリ制御器は、前記再構成可能コンピューティング装置のプロセッサがループ演算と関連した第1インストラクションを実行する第1モードで、再構成部内のプロセッシングエレメント間の連結経路を構成するための構成情報を第1メモリから読み出し、複数の並列処理可能な第2インストラクションを含むインストラクションワードがフェッチされる第2メモリにデバッギング用のトレースデータを保存する、ように制御する。
【選択図】 図3
【解決手段】 発明の第1の態様によれば、再構成可能コンピューティング装置の第1メモリ制御器は、前記再構成可能コンピューティング装置のプロセッサがループ演算と関連した第1インストラクションを実行する第1モードで、再構成部内のプロセッシングエレメント間の連結経路を構成するための構成情報を第1メモリから読み出し、複数の並列処理可能な第2インストラクションを含むインストラクションワードがフェッチされる第2メモリにデバッギング用のトレースデータを保存する、ように制御する。
【選択図】 図3
Description
本発明は、再構成可能コンピューティング技術に係り、特に、再構成可能コンピューティング装置のデバッギング用のトレースデータを処理する技術に関する。
再構成可能アーキテクチャーは、演算を行うコンピューティング装置のハードウェア的な構成をソフトウェア的に変更して再構成する技術であって、演算速度が速いハードウェアの長所と演算の多様性に優れたソフトウェアの長所とを組み合わせることができ、最近多くの注目を浴びている。
特に、再構成可能アーキテクチャーは、同一の演算が反復的に行われるループ演算時に、優れた性能を発揮する。一方、再構成可能アーキテクチャーは、1つの演算の実行を開始した後に次の演算の実行を重複することによって高速処理が可能なパイプライン技術と結合した時、さらに優れた性能を発揮する。
本発明者は、再構成可能コンピューティング装置で実行されるプログラムのデバッギング用のトレースデータの効率的なメモリ活用技術についての研究を行った。
本発明は、再構成可能コンピューティング装置で実行されるアプリケーションのデバッギング用のトレースデータの効率的なメモリ活用技術を提供することである。
発明の第1の態様によれば、再構成可能コンピューティング装置の第1メモリ制御器は、前記再構成可能コンピューティング装置のプロセッサがループ演算と関連した第1インストラクションを実行する第1モードで、再構成部内のプロセッシングエレメント間の連結経路を構成するための構成情報を第1メモリから読み出し、複数の並列処理可能な第2インストラクションを含むインストラクションワードがフェッチされる第2メモリにデバッギング用のトレースデータを保存する、ように制御する。
発明の第2の態様によれば、再構成可能コンピューティング装置の第2メモリ制御器は、前記再構成可能コンピューティング装置のプロセッサによってループ演算以外の一般演算と関連した第2インストラクションを実行する第2モードで、複数の並列処理可能な前記第2インストラクションを含むインストラクションワードを、第2メモリにフェッチし、デバッギング用のトレースデータを、再構成部内のプロセッシングエレメント間の連結経路を構成するために構成情報を保存する第1メモリに保存する、ように制御する。
発明の第3の態様によれば、デバッギング用のトレースデータ処理が可能な再構成可能コンピューティング装置は、ループ演算と関連した第1インストラクションを実行する第1モードまたはループ演算以外の一般演算と関連した第2インストラクションを実行する第2モード間の切替を制御するプロセッサと、前記第1モードまたは第2モードによって、互いに排他的に発生する第1インストラクションまたは第2インストラクションを実行するよう構成される複数のプロセッシングエレメントを有する再構成部と、前記再構成部のプロセッシングエレメント間の連結経路を構成するための構成情報を保存する第1メモリと、複数の並列処理可能な前記第2インストラクションを含むインストラクションワードがフェッチされる第2メモリと、第1の態様に記載の第1メモリ制御器と、第2の態様に記載の第2メモリ制御器と、を含む。
発明の第4の態様によれば、再構成可能コンピューティング装置のデバッギング用のトレースデータを処理する方法は、第1インストラクションを実行する第1モードで、複数の並列処理可能な第2インストラクションを含むインストラクションワードがフェッチされる第2メモリにデバッギング用のトレースデータを保存する段階と、前記第2インストラクションを実行する第2モードで、再構成可能コンピューティング装置の再構成部内のプロセッシングエレメント間の連結経路を構成するために構成情報を保存する第1メモリにデバッギング用のトレースデータを保存する段階と、を含む。
したがって、デバッギング用のトレースデータを保存するための別途のメモリ追加なしに、再構成可能コンピューティング装置の再構成部内のプロセッシングエレメント間の連結経路を構成するための構成情報を保存する第1メモリと、複数の並列処理可能な第2インストラクションを含むインストラクションワードがフェッチされる第2メモリとを活用して、デバッギング用のトレースデータを効率的に保存することができて、再構成可能コンピューティング装置の製作コストの節減及び小型化に有利である。
以下、添付した図面を参照して記述される実施形態を通じて、発明を当業者が容易に理解し、再現できるように詳しく記述する。
発明を説明するに当って、関連した公知機能または構成についての具体的な説明が、発明の実施形態の要旨を不明にする恐れがあると判断される場合には、その詳細な説明を省略する。
明細書の全般に亘って使われる用語は、発明の実施形態での機能を考慮して定義された用語であって、ユーザまたは運用者の意図、慣例などによって十分に変形されうる事項であるので、この用語の定義は、明細書の全般に亘った内容に基づいて下されなければならない。
図1は、本発明による再構成可能コンピューティング装置の第1メモリ制御器の一実施形態の構成を示すブロック図である。本実施形態による再構成可能コンピューティング装置の第1メモリ制御器100は、プロセッサ10によってループ演算と関連した第1インストラクションを実行する第1モードにおいて、図3に示した再構成部20内のプロセッシングエレメント21間の連結経路を構成するために、第1メモリ30に格納された構成情報を読み出し、デバッギング用のトレースデータを第2メモリ40に保存するように制御する。第2メモリ40からは、プロセッサ10によって第2インストラクションが実行される第2モードのとき、ループ演算以外の一般演算と関連した複数の並列処理可能な第2インストラクションを含むインストラクションワードがフェッチされる。そして、第1メモリ制御器100は、第2メモリ40に保存されたデバッギング用のトレースデータをデバッギング装置50へ出力する。
図1に示したように、再構成可能コンピューティング装置の第1メモリ制御器100は、モード判断部110と、第1メモリ接続部120と、第2メモリ接続部130とを含みうる。
モード判断部110は、ループ演算と関連した第1インストラクションを実行する第1モードであるか、またはループ演算以外の一般演算と関連した第2インストラクションを実行する第2モードであるかを判断する。
プロセッサ10は、ループ演算と関連した第1インストラクションを実行する第1モードまたはループ演算以外の一般演算と関連した第2インストラクションを実行する第2モード間の切替を制御し、これにより、第1モードでは、第1インストラクションが発生し、第2モードでは、第2インストラクションが発生する。
モード判断部110は、プロセッサ10から第1インストラクションが発生したか、または第2インストラクションが発生したかを検出することによって、ループ演算と関連した第1インストラクションを実行する第1モードであるか、またはループ演算以外の一般演算と関連した第2インストラクションを実行する第2モードであるかを判断する。
第1メモリ接続部120は、モード判断部110によって第1モードと判断された場合、活性化され、第1メモリ30にアクセスして再構成部20内のプロセッシングエレメント21間の連結経路を構成するために構成情報を読み出す。一方、第1メモリ接続部120は、モード判断部110によって第2モードと判断された場合、非活性化される。
第1メモリ30に保存された構成情報に基づいて、再構成部20内のプロセッシングエレメント21間の連結経路が再構成されて、ループ演算と関連した第1インストラクションが実行される。
第2メモリ接続部130は、モード判断部110によって第1モードと判断された場合、活性化されて、第2メモリ40にアクセスしてデバッギング用のトレースデータを保存する。一方、第2メモリ接続部130は、モード判断部110によって第2モードと判断された場合、非活性化される。
第2メモリ40に保存されるデバッギング用のトレースデータは、アプリケーションの遂行によって発生する演算結果値またはメモリアクセス情報などのアプリケーションのデバッギングのために使われる情報であって、デバッギング装置50を通じてプログラム開発者などに提供されて、アプリケーションのデバッギングがなされる。
付加的な態様によれば、再構成可能コンピューティング装置の第1メモリ制御器100は、データ出力部140をさらに含みうる。データ出力部140は、デバッギング装置50によって選択されるデバッギング用のトレースデータを第2メモリ40から選択して、デバッギング装置50に出力する。
例えば、プログラム開発者が開発したアプリケーションが実行されて、第2メモリ40に当該アプリケーションのデバッギング用のトレースデータが保存された場合や、プログラム開発者がデータ出力部140にデバッギング装置50を連結し、デバッギング用のトレースデータを要請した場合に、データ出力部140は、デバッギング装置50に第2メモリ40に保存されたデバッギング用のトレースデータを出力する。
この際、デバッギング用のトレースデータのサイズが大きい場合、デバッギング装置50にサイズが大きなデバッギング用のトレースデータを全て出力することは、ハードウェアまたはソフトウェア資源を浪費する恐れがあって、非効率的である。したがって、デバッギング装置50を通じて選択されたデバッギング用のトレースデータのみデータ出力部140が選択的に第2メモリ40から選択して、デバッギング装置50に出力するようにすることもできる。
図2は、本発明による再構成可能コンピューティング装置の第2メモリ制御器の一実施形態の構成を示すブロック図である。本実施形態による再構成可能コンピューティング装置の第2メモリ制御器200は、プロセッサ10がループ演算以外の一般演算と関連した第2インストラクションを実行する第2モードにおいて、複数の並列処理可能な第2インストラクションを含むインストラクションワードが、第2メモリ40にフェッチし、デバッギング用のトレースデータを、図3に示した再構成部20内のプロセッシングエレメント21間の連結経路を構成するための構成情報を保存する第1メモリ30に保存するように制御する。
図2に示したように、再構成可能コンピューティング装置の第2メモリ制御器200は、モード判断部210と、第2メモリ接続部220と、第1メモリ接続部230とを含みうる。
モード判断部210は、ループ演算と関連した第1インストラクションを実行する第1モードであるか、またはループ演算以外の一般演算と関連した第2インストラクションを実行する第2モードであるかを判断する。
プロセッサ10は、ループ演算と関連した第1インストラクションを実行する第1モードまたはループ演算以外の一般演算と関連した第2インストラクションを実行する第2モード間の切替を制御し、これにより、第1モードでは、第1インストラクションが発生し、第2モードでは、第2インストラクションが発生する。
モード判断部210は、プロセッサ10から第1インストラクションが発生したか、または第2インストラクションが発生したかを検出することによって、ループ演算と関連した第1インストラクションを実行する第1モードであるか、またはループ演算以外の一般演算と関連した第2インストラクションを実行する第2モードであるかを判断する。
第2メモリ接続部220は、モード判断部210によって第2モードと判断された場合、活性化されて、複数の並列処理可能な第2インストラクションを含むインストラクションワードをフェッチするために、第2メモリ40にアクセスする。一方、第2メモリ接続部220は、モード判断部210によって第1モードと判断された場合、非活性化される。
第2メモリ40にフェッチされたインストラクションワードに基づいて、並列処理可能な第2インストラクションを再構成部20のプロセッシングエレメント21が並列処理して実行する。
第1メモリ接続部230は、モード判断部210によって第2モードと判断された場合、活性化されて、デバッギング用のトレースデータを保存するために、第1メモリ30にアクセスする。一方、第1メモリ接続部230は、モード判断部210によって第1モードと判断された場合、非活性化される。
第1メモリ30に保存されるデバッギング用のトレースデータは、アプリケーションの遂行によって発生する演算結果値またはメモリアクセス情報などのアプリケーションのデバッギングのために使われる情報であって、デバッギング装置50を通じてプログラム開発者などに提供されて、当該アプリケーションのデバッギングがなされる。
付加的な態様によれば、再構成可能コンピューティング装置の第2メモリ制御器200は、データ出力部240をさらに含みうる。データ出力部240は、デバッギング装置50によって選択されるデバッギング用のトレースデータを第1メモリ30から選択して、デバッギング装置50に出力する。
例えば、プログラム開発者が開発したアプリケーションが実行されて、第1メモリ30に当該アプリケーションのデバッギング用のトレースデータが保存された場合や、プログラム開発者がデータ出力部240にデバッギング装置50を連結し、デバッギング用のトレースデータを要請した場合に、データ出力部240が、デバッギング装置50に第1メモリ30に保存されたデバッギング用のトレースデータを出力する。
この際、デバッギング用のトレースデータのサイズが大きい場合、デバッギング装置50にサイズが大きなデバッギング用のトレースデータを全て出力することは、ハードウェアまたはソフトウェア資源を浪費する恐れがあって、非効率的である。したがって、デバッギング装置50を通じて選択されたデバッギング用のトレースデータのみデータ出力部240が選択的に第1メモリ30から選択して、デバッギング装置50に出力するようにすることもできる。
図3を参照して、図1に示した第2メモリ制御器100及び図2に示した第2メモリ制御器200の各構成要素、及びこれらの結合関係を詳しく説明する。図3は、本発明によるデバッギング用のトレースデータの処理が可能な再構成可能コンピューティング装置の一実施形態の構成を示すブロック図である。
本実施形態によるデバッギング用のトレースデータの処理が可能な再構成可能コンピューティング装置は、プロセッサ10と、再構成部20と、第1メモリ30と、第2メモリ40と、第1メモリ制御器100と、第2メモリ制御器200とを含む。
プロセッサ10は、ループ演算と関連した第1インストラクションを実行する第1モードまたはループ演算以外の一般演算と関連した第2インストラクションを実行する第2モード間の切替を制御し、プロセッサ10は、プロセッサコア11と、中央レジスタファイル12とを含む。
プロセッサコア11は、ループ演算と関連した第1インストラクションは第1メモリ30に保存された構成情報に基づいて連結される再構成部20のプロセッシングエレメント21を通じて加速して実行する。
一方、プロセッサコア11は、ループ演算以外の一般演算と関連した複数の並列処理可能な第2インストラクションを含むインストラクションワードを第2メモリ40にフェッチして、再構成部20のプロセッシングエレメント21を通じて並列処理する。
中央レジスタファイル12は、再構成部20のプロセッシングエレメント21によって実行される第1インストラクション及び第2インストラクション実行に必要な各種のデータと、第1インストラクション及び第2インストラクション実行の結果とを保存する。
プロセッサ10は、高級言語で作成されたアプリケーションが実行されれば、これをコンパイルし、コンパイルされた命令をスケジューリングして、再構成部20のプロセッシングエレメント21間のデータ経路を構成するための構成情報を生成し、これを第1メモリ30に保存する。
再構成部20は、第1モードまたは第2モードにおいて互いに排他的に発生する第1インストラクションまたは第2インストラクションを実行するために接続経路を介して互いに接続される複数のプロセッシングエレメント21を含む。第1モードでは、再構成部20は、第1メモリ30に保存された構成情報に基づいてプロセッシングエレメント21間のデータ経路を再構成する。
例えば、再構成部20は、CGA(Coarse Grained Array)であり得る。CGAは、計算ユニット(FU:Function Unit)とローカルレジスタファイル(LRF:Local Register File)の対からなる複数のプロセッシングエレメントとからなり、例外として、中央レジスタファイル12と連結されるプロセッシングエレメントは、計算ユニット(FU)のみ含む。
第1メモリ30は、再構成部20内のプロセッシングエレメント21間の連結経路を構成するための構成情報を保存する。この第1メモリ30に保存された構成情報に基づいて、再構成部20のプロセッシングエレメント21のデータ経路が再構成される。
第2メモリ40は、複数の並列処理可能な第2インストラクションを含むインストラクションワードがフェッチされる。この第2メモリ40にフェッチされたインストラクションワードに基づいて、並列処理可能な第2インストラクションを再構成部20のプロセッシングエレメント21が並列処理して実行する。
第1メモリ制御器100は、プロセッサ10によってループ演算と関連した第1インストラクションを実行する第1モードにおいて、再構成部20内のプロセッシングエレメント21間の連結経路を構成するための構成情報を第1メモリ30から読み出し、デバッギング用のトレースデータを、複数の並列処理可能な第2インストラクションを含むインストラクションワードがフェッチされる第2メモリ40に保存するように制御する。
第2メモリ制御器200は、プロセッサ10によってループ演算以外の一般演算と関連した第2インストラクションを実行する第2モードにおいて、複数の並列処理可能な第2インストラクションを含むインストラクションワードを第2メモリ40にフェッチし、デバッギング用のトレースデータを、再構成部20内のプロセッシングエレメント21間の連結経路を構成するための構成情報を保存する第1メモリ30に保存するように制御する。
デバッギング用のトレースデータは、アプリケーションの遂行によって発生する演算結果値またはメモリアクセス情報などのアプリケーションのデバッギングのために使われる情報であって、デバッギング装置50を通じてプログラム開発者などに提供される情報である。
デバッギング用のトレースデータを保存するための別途のメモリを追加する場合、再構成可能コンピューティング装置の製作コストが上昇し、サイズも大きくなってしまう。本実施形態によるデバッギング用のトレースデータ処理が可能な再構成可能コンピューティング装置は、第1モードと第2モードとが同時に実行されず、互いに排他的に実行される特性を用いて、再構成可能コンピューティング装置の製作コストの節減及び小型化のために、別途のメモリを追加なしに、デバッギング用のトレースデータを効率的に保存する。
ループ演算と関連した第1インストラクションを実行する第1モードとループ演算以外の一般演算と関連した第2インストラクションを実行する第2モードは、互いに排他的に実行されるので、第1モード実行中には使われない第2メモリ40に第1メモリ制御器100を通じてアクセスして、デバッギング用のトレースデータを保存し、第2モード実行中には使われない第1メモリ30に第2メモリ制御器200を通じてアクセスして、デバッギング用のトレースデータを保存する。
これにより、デバッギング用のトレースデータを保存するための別途のメモリ追加なしに、再構成可能コンピューティング装置の再構成部内のプロセッシングエレメント間の連結経路を構成するための構成情報を保存する第1メモリ30と、複数の並列処理可能な第2インストラクションを含むインストラクションワードがフェッチされる第2メモリ40とを活用して、デバッギング用のトレースデータを効率的に保存することができて、再構成可能コンピューティング装置の製作コストの節減及び小型化が可能となる。
一方、付加的な態様によれば、デバッギング用のトレースデータの処理が可能な再構成可能コンピューティング装置の第1メモリ制御器100が、モード判断部110と、第1メモリ接続部120と、第2メモリ接続部130とを含みうる。
モード判断部110は、ループ演算と関連した第1インストラクションを実行する第1モードであるか、またはループ演算以外の一般演算と関連した第2インストラクションを実行する第2モードであるかを判断する。
プロセッサ10は、ループ演算と関連した第1インストラクションを実行する第1モードまたはループ演算以外の一般演算と関連した第2インストラクションを実行する第2モード間の切替を制御し、これにより、第1モードでは、第1インストラクションが発生し、第2モードでは、第2インストラクションが発生する。
モード判断部110は、プロセッサ10から第1インストラクションが発生したか、または第2インストラクションが発生したかを検出することによって、ループ演算と関連した第1インストラクションを実行する第1モードであるか、またはループ演算以外の一般演算と関連した第2インストラクションを実行する第2モードであるかを判断する。
第1メモリ接続部120は、モード判断部110によって第1モードと判断された場合、活性化されて、再構成部20内のプロセッシングエレメント21間の連結経路を構成するための構成情報を読み出すために、第1メモリ30にアクセスする。一方、第1メモリ接続部120は、モード判断部110によって第2モードと判断された場合、非活性化される。
第1メモリ30に保存された構成情報に基づいて、再構成部20内のプロセッシングエレメント21間の連結経路が再構成されて、ループ演算と関連した第1インストラクションが実行される。
第2メモリ接続部130は、モード判断部110によって第1モードと判断された場合、活性化されて、デバッギング用のトレースデータを保存するために、第2メモリ40にアクセスする。一方、第2メモリ接続部130は、モード判断部110によって第2モードと判断された場合、非活性化される。
第2メモリ40に保存されるデバッギング用のトレースデータは、アプリケーションの遂行によって発生する演算結果値またはメモリアクセス情報などのアプリケーションのデバッギングのために使われる情報であって、デバッギング装置50を通じてプログラム開発者などに提供されて、当該アプリケーションのデバッギングがなされる。
一方、再構成可能コンピューティング装置の第1メモリ制御器100が、データ出力部140をさらに含みうる。データ出力部140は、デバッギング装置50によって選択されるデバッギング用のトレースデータを第2メモリ40から選択して、デバッギング装置50に出力する。
例えば、プログラム開発者が開発したアプリケーションが実行されて、第2メモリ40にアプリケーションのデバッギング用のトレースデータが保存された場合や、プログラム開発者がデータ出力部140にデバッギング装置50を連結し、デバッギング用のトレースデータを要請した場合に、データ出力部140が、デバッギング装置50に第2メモリ40に保存されたデバッギング用のトレースデータを出力する。
この際、デバッギング用のトレースデータのサイズが大きい場合、デバッギング装置50にサイズが大きなデバッギング用のトレースデータを全て出力することは、ハードウェアまたはソフトウェア資源を浪費する恐れがあって、非効率的である。したがって、デバッギング装置50を通じて選択されたデバッギング用のトレースデータのみデータ出力部140が選択的に第2メモリ40から選択して、デバッギング装置50に出力するようにすることもできる。
一方、付加的な態様によれば、デバッギング用のトレースデータ処理が可能な再構成可能コンピューティング装置の第2メモリ制御器200が、モード判断部210と、第2メモリ接続部220と、第1メモリ接続部230とを含みうる。
モード判断部210は、ループ演算と関連した第1インストラクションを実行する第1モードであるか、またはループ演算以外の一般演算と関連した第2インストラクションを実行する第2モードであるかを判断する。
プロセッサ10は、ループ演算と関連した第1インストラクションを実行する第1モードまたはループ演算以外の一般演算と関連した第2インストラクションを実行する第2モード間の切替を制御し、これにより、第1モードでは、第1インストラクションが発生し、第2モードでは、第2インストラクションが発生する。
モード判断部210は、プロセッサ10から第1インストラクションが発生したか、または第2インストラクションが発生したかを検出することによって、ループ演算と関連した第1インストラクションを実行する第1モードであるか、またはループ演算以外の一般演算と関連した第2インストラクションを実行する第2モードであるかを判断する。
第2メモリ接続部220は、モード判断部210によって第2モードと判断された場合、活性化されて、複数の並列処理可能な第2インストラクションを含むインストラクションワードをフェッチするために、第2メモリ40にアクセスする。一方、第2メモリ接続部220は、モード判断部210によって第1モードと判断された場合、非活性化される。
第2メモリ40にフェッチされたインストラクションワードに基づいて、並列処理可能な第2インストラクションを再構成部20のプロセッシングエレメント21が並列処理して実行する。
第1メモリ接続部230は、モード判断部210によって第2モードと判断された場合、活性化されて、デバッギング用のトレースデータを保存するために、第1メモリ30にアクセスする。一方、第1メモリ接続部230は、モード判断部210によって第1モードと判断された場合、非活性化される。
第1メモリ30に保存されるデバッギング用のトレースデータは、アプリケーションの遂行によって発生する演算結果値またはメモリアクセス情報などのアプリケーションのデバッギングのために使われる情報であって、デバッギング装置50を通じてプログラム開発者などに提供されて、当該アプリケーションのデバッギングがなされる。
付加的な態様によれば、再構成可能コンピューティング装置の第2メモリ制御器200が、データ出力部240をさらに含みうる。データ出力部240は、デバッギング装置50によって選択されるデバッギング用のトレースデータを第1メモリ30から選択して、デバッギング装置50に出力する。
例えば、プログラム開発者が開発したアプリケーションが実行されて、第1メモリ30に当該アプリケーションのデバッギング用のトレースデータが保存された場合や、プログラム開発者がデータ出力部240にデバッギング装置50を連結し、デバッギング用のトレースデータを要請した場合に、データ出力部240が、デバッギング装置50に第1メモリ30に保存されたデバッギング用のトレースデータを出力する。
この際、デバッギング用のトレースデータのサイズが大きい場合、デバッギング装置50にサイズが大きなデバッギング用のトレースデータを全て出力することは、ハードウェアまたはソフトウェア資源を浪費する恐れがあって、非効率的であるので、デバッギング装置50を通じて選択されたデバッギング用のトレースデータのみデータ出力部240が選択的に第1メモリ30から選択して、デバッギング装置50に出力するようにすることもできる。
図4は、本発明によるデバッギング用のトレースデータの処理が可能な再構成可能コンピューティング装置のデバッギング用のトレースデータ処理動作の一例を示すフローチャートである。
デバッギング用のトレースデータ処理が可能な再構成可能コンピューティング装置のプロセッサが、ループ演算と関連した第1インストラクションを実行する第1モードまたはループ演算以外の一般演算と関連した第2インストラクションを実行する第2モード間の切替を制御するので、第1モードでは、第1インストラクションが発生し、第2モードでは、第2インストラクションが発生する。
そうすると、段階410で、デバッギング用のトレースデータの処理が可能な再構成可能コンピューティング装置の第1メモリ制御器と第2メモリ制御器のそれぞれが、第1モードであるか、第2モードであるかを判断する。
もし、段階410による判断の結果、第1モードである場合、段階420で、デバッギング用のトレースデータ処理が可能な再構成可能コンピューティング装置の第1メモリ制御器が、複数の並列処理可能な第2インストラクションを含むインストラクションワードがフェッチされる第2メモリにデバッギング用のトレースデータを保存する。
もし、段階410による判断の結果、第2モードである場合、段階430で、デバッギング用のトレースデータの処理が可能な再構成可能コンピューティング装置の第2メモリ制御器が、再構成部内のプロセッシングエレメント間の連結経路を構成するための構成情報を保存する第1メモリにデバッギング用のトレースデータを保存する。
そして、段階440で、デバッギング用のトレースデータの処理が可能な再構成可能コンピューティング装置の第1メモリ制御器または第2メモリ制御器が、それぞれ第2メモリまたは第1メモリに保存されたデバッギング用のトレースデータをデバッギング装置に出力する。
これにより、デバッギング用のトレースデータを保存するための別途のメモリ追加なしに、再構成可能コンピューティング装置の再構成部内のプロセッシングエレメント間の連結経路を構成するための構成情報を保存する第1メモリと、複数の並列処理可能な第2インストラクションを含むインストラクションワードがフェッチされる第2メモリとを活用して、デバッギング用のトレースデータを効率的に保存することができて、再構成可能コンピューティング装置の製作コストの節減及び小型化が可能となる。
発明は、添付した図面によって参照される望ましい実施形態を中心に記述されたが、このような記載から後述する特許請求の範囲によって包括される範囲内で、発明の範疇を外れずに多様な変形が可能であるということは明白である。
10 プロセッサ
11 プロセッサコア
12 中央レジスタファイル
20 再構成部
21 プロセッシングエレメント
30 第1メモリ
40 第2メモリ
50 デバッギング装置
100 第1メモリ制御器
110、210 モード判断部
120、230 第1メモリ接続部
130、220 第2メモリ接続部
140、240 データ出力部
200 第2メモリ制御器
11 プロセッサコア
12 中央レジスタファイル
20 再構成部
21 プロセッシングエレメント
30 第1メモリ
40 第2メモリ
50 デバッギング装置
100 第1メモリ制御器
110、210 モード判断部
120、230 第1メモリ接続部
130、220 第2メモリ接続部
140、240 データ出力部
200 第2メモリ制御器
Claims (14)
- 再構成可能コンピューティング装置の第1メモリ制御器であって、前記再構成可能コンピューティング装置のプロセッサがループ演算と関連した第1インストラクションを実行する第1モードで、
再構成部内のプロセッシングエレメント間の連結経路を構成するための構成情報を第1メモリから読み出し、
複数の並列処理可能な第2インストラクションを含むインストラクションワードがフェッチされる第2メモリにデバッギング用のトレースデータを保存する、
ように制御する第1メモリ制御器。 - 前記第2インストラクションは、ループ演算以外の一般演算と関連し、
前記第1メモリ制御器は、
前記第1モードまたは前記第2モードであるかを判断するモード判断部と、
前記モード判断部によって第1モードと判断された場合、活性化されて、前記構成情報を読み出すために前記第1メモリにアクセスする第1メモリ接続部と、
前記モード判断部によって第1モードと判断された場合、活性化されて、前記デバッギング用のトレースデータを保存するために前記第2メモリにアクセスする第2メモリ接続部と、
を更に含む請求項1に記載の第1メモリ制御器。 - 前記第1メモリ接続部が、前記モード判断部によって第2モードと判断された場合、非活性化される、請求項2に記載の第1メモリ制御器。
- 前記第2メモリ接続部が、前記モード判断部によって第2モードと判断された場合、非活性化される、請求項2又は3に記載の第1メモリ制御器。
- 前記デバッギング装置によって選択されるデバッギング用のトレースデータを前記第2メモリから選択して、前記デバッギング装置に出力するデータ出力部、
をさらに含む請求項2乃至4のいずれか一項に記載の第1メモリ制御器。 - 再構成可能コンピューティング装置の第2メモリ制御器であって、前記再構成可能コンピューティング装置のプロセッサによってループ演算以外の一般演算と関連した第2インストラクションを実行する第2モードで、
複数の並列処理可能な前記第2インストラクションを含むインストラクションワードを、第2メモリにフェッチし、
デバッギング用のトレースデータを、再構成部内のプロセッシングエレメント間の連結経路を構成するために構成情報を保存する第1メモリに保存する、
ように制御する第2メモリ制御器。 - ループ演算と関連した第1インストラクションを実行する第1モードであるか、または前記第2モードであるかを判断するモード判断部と、
前記モード判断部によって第2モードと判断された場合、活性化されて、複数の並列処理可能な第2インストラクションを含むインストラクションワードをフェッチするために、前記第2メモリにアクセスする第2メモリ接続部と、
前記モード判断部によって第2モードと判断された場合、活性化されて、デバッギング用のトレースデータを保存するために、前記第1メモリにアクセスする第1メモリ接続部と、
を含む請求項6に記載の第2メモリ制御器。 - 前記第2メモリ接続部が、前記モード判断部によって第1モードと判断された場合、非活性化される、請求項7に記載の第2メモリ制御器。
- 前記第1メモリ接続部が、前記モード判断部によって第1モードと判断された場合、非活性化される、請求項7に記載の第2メモリ制御器。
- 前記デバッギング装置によって選択されるデバッギング用のトレースデータを前記第1メモリから選択して、前記デバッギング装置に出力するデータ出力部、をさらに含む請求項7に記載の第2メモリ制御器。
- デバッギング用のトレースデータ処理が可能な再構成可能コンピューティング装置であって、
ループ演算と関連した第1インストラクションを実行する第1モードまたはループ演算以外の一般演算と関連した第2インストラクションを実行する第2モード間の切替を制御するプロセッサと、
前記第1モードまたは第2モードによって、互いに排他的に発生する第1インストラクションまたは第2インストラクションを実行するよう構成される複数のプロセッシングエレメントを有する再構成部と、
前記再構成部のプロセッシングエレメント間の連結経路を構成するための構成情報を保存する第1メモリと、
複数の並列処理可能な前記第2インストラクションを含むインストラクションワードがフェッチされる第2メモリと、
請求項1乃至5のいずれか一項に記載の第1メモリ制御器と、
請求項6乃至10のいずれか一項に記載の第2メモリ制御器と、
を含む再構成可能コンピューティング装置。 - 再構成可能コンピューティング装置のデバッギング用のトレースデータを処理する方法であって、
第1インストラクションを実行する第1モードで、複数の並列処理可能な第2インストラクションを含むインストラクションワードがフェッチされる第2メモリにデバッギング用のトレースデータを保存する段階と、
前記第2インストラクションを実行する第2モードで、再構成可能コンピューティング装置の再構成部内のプロセッシングエレメント間の連結経路を構成するために構成情報を保存する第1メモリにデバッギング用のトレースデータを保存する段階と、
を含む方法。 - 前記第1インストラクションはループ演算と関連し、前記第2インストラクションはループ演算以外の一般演算と関連する、ことを特徴とする請求項12に記載の方法。
- 前記第1モードまたは前記第2モードであるかを判断する段階、をさらに含むことを特徴とする請求項12又は13に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120012392A KR20130091113A (ko) | 2012-02-07 | 2012-02-07 | 재구성 기반 컴퓨팅 장치의 제1메모리 제어기 및 제2메모리 제어기와, 디버깅용 트레이스 데이터 처리가 가능한 재구성 기반 컴퓨팅 장치 |
KR10-2012-0012392 | 2012-02-07 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013161484A true JP2013161484A (ja) | 2013-08-19 |
Family
ID=48903992
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013022500A Withdrawn JP2013161484A (ja) | 2012-02-07 | 2013-02-07 | 再構成可能コンピューティング装置、その第1メモリ制御器及び第2メモリ制御器、並びにそのデバッギング用のトレースデータを処理する方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20130205171A1 (ja) |
JP (1) | JP2013161484A (ja) |
KR (1) | KR20130091113A (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130066402A (ko) * | 2011-12-12 | 2013-06-20 | 삼성전자주식회사 | 트레이스 데이터 저장 장치 및 방법 |
US9742847B2 (en) * | 2013-08-30 | 2017-08-22 | Texas Instruments Incorporated | Network node physical/communication pins, state machines, interpreter and executor circuitry |
CN110096308B (zh) * | 2019-04-24 | 2022-02-25 | 北京探境科技有限公司 | 一种并行存储运算装置及其方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080256352A1 (en) * | 2000-01-06 | 2008-10-16 | Super Talent Electronics, Inc. | Methods and systems of booting of an intelligent non-volatile memory microcontroller from various sources |
US7886195B2 (en) * | 2008-05-05 | 2011-02-08 | Infineon Technologies Ag | Apparatus, system, and method of efficiently utilizing hardware resources for a software test |
KR101738941B1 (ko) * | 2010-03-23 | 2017-05-24 | 삼성전자주식회사 | 재구성 가능 어레이 및 재구성 가능 어레이의 제어 방법 |
KR101710116B1 (ko) * | 2010-08-25 | 2017-02-24 | 삼성전자주식회사 | 프로세서, 메모리 관리 장치 및 방법 |
-
2012
- 2012-02-07 KR KR1020120012392A patent/KR20130091113A/ko not_active Application Discontinuation
-
2013
- 2013-02-07 US US13/761,431 patent/US20130205171A1/en not_active Abandoned
- 2013-02-07 JP JP2013022500A patent/JP2013161484A/ja not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
KR20130091113A (ko) | 2013-08-16 |
US20130205171A1 (en) | 2013-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10817360B2 (en) | Apparatus and methods for debugging on a memory device | |
US10388393B2 (en) | Apparatus and methods for debugging on a host and memory device | |
JP6317065B2 (ja) | 再構成可能プロセッサ及びそのコード変換装置及び方法 | |
JP5611756B2 (ja) | プログラム・フロー制御 | |
JP2016207231A (ja) | 命令エミュレーションプロセッサ、方法、およびシステム | |
JP5131188B2 (ja) | データ処理装置 | |
RU2015103934A (ru) | Процессор компьютера и система без арифметико-логического блока | |
US20150100767A1 (en) | Self-timed user-extension instructions for a processing device | |
US20170108908A1 (en) | Instruction optimization using voltage-based functional performance variation | |
KR20070107814A (ko) | 의존성 명령을 패킷으로 그룹핑하여 실행하는 프로세서 및방법 | |
Anjam et al. | A VLIW softcore processor with dynamically adjustable issue-slots | |
JP2013161484A (ja) | 再構成可能コンピューティング装置、その第1メモリ制御器及び第2メモリ制御器、並びにそのデバッギング用のトレースデータを処理する方法 | |
KR20090023418A (ko) | 프로세서 및 코프로세서를 인터페이싱하는 방법 및 장치 | |
US10409602B2 (en) | Vector operand bitsize control | |
US20130318324A1 (en) | Minicore-based reconfigurable processor and method of flexibly processing multiple data using the same | |
JP2000284964A (ja) | Vliwプロセッサにおける効率的なサブ命令エミュレーション | |
JP7377208B2 (ja) | データ処理 | |
JP2006018411A (ja) | プロセッサ | |
US11947487B2 (en) | Enabling accelerated processing units to perform dataflow execution | |
US20070011439A1 (en) | Data processing systems and methods of operating the same in which memory blocks are selectively activated in fetching program instructions | |
JP7378254B2 (ja) | マルチプロセッサデバイス | |
KR100599539B1 (ko) | 태스크 엔진 기반의 재구성가능 디지털 신호 프로세서 | |
US20140281368A1 (en) | Cycle sliced vectors and slot execution on a shared datapath | |
Anjam et al. | On the Implementation of Traps for a Softcore VLIW Processor | |
JP4151497B2 (ja) | パイプライン処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20151020 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20160905 |