JP2008130078A - プロセッサ構造および応用の最適化のためのプロファイラ - Google Patents

プロセッサ構造および応用の最適化のためのプロファイラ Download PDF

Info

Publication number
JP2008130078A
JP2008130078A JP2007169966A JP2007169966A JP2008130078A JP 2008130078 A JP2008130078 A JP 2008130078A JP 2007169966 A JP2007169966 A JP 2007169966A JP 2007169966 A JP2007169966 A JP 2007169966A JP 2008130078 A JP2008130078 A JP 2008130078A
Authority
JP
Japan
Prior art keywords
information
program
analysis unit
profiler
static
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.)
Granted
Application number
JP2007169966A
Other languages
English (en)
Other versions
JP4489102B2 (ja
Inventor
Dong-Hoon Yoo
東 勲 劉
Soo Jung Ryu
秀 晶 柳
Jeong Wook Kim
政 ▲ウック▼ 金
Hong-Seok Kim
泓 錫 金
Hee Seok Kim
熙 錫 金
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2008130078A publication Critical patent/JP2008130078A/ja
Application granted granted Critical
Publication of JP4489102B2 publication Critical patent/JP4489102B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/177Initialisation or configuration control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2115/00Details relating to the type of the circuit
    • G06F2115/10Processors

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)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】プログラムおよび特定用途向け構造プロセッサとを考慮し、このうち少なくとも1つを最適化するために必要な情報を提供するプロファイラを提供する。
【解決手段】複数の処理要素を含む特定用途向け構造プロセッサの構造が記述された構造記述を分析して構造分析情報を生成する構造分析部と、プログラムの静的情報が記述されたプログラム静的情報を分析して静的分析情報を生成する静的分析部と、プログラムをシミュレーションして生成されたプログラムの動的情報が記述されたプログラム動的情報を分析して動的分析情報を生成する動的分析部と、構造分析情報、静的分析情報および動的分析情報のうち少なくとも1つに基づいて、プログラムを実行する際の特定用途向け構造プロセッサを最適化するための情報を生成するクロスプロファイル分析部とを含む。
【選択図】図2

Description

本発明は、特定用途向け構造プロセッサ(application specific architecture processor)に関し、より詳細には、特定用途向け構造プロセッサのためのプロファイラに関する。
最近、ASIC(Application Specific Integrated Circuit)やDSP(digital signal processor)に比べて相対的に高性能および柔軟性を同時に満たし得る特定用途向け構造プロセッサに対する関心が高まっている。特定用途向け構造プロセッサは、再構成プロセッサ(reconfigurable processor)、ASIP(application specific instruction set processor)、VLIW構造(very long instruction word architecture)などを含む。このような特定用途向け構造プロセッサの大部分は、多数の同質的または異質的な処理要素(processing element)で構成されている。この特定用途向け構造プロセッサは、ユーザの要求によって容易に変形できリリースできるという点において、関連する他のプロセッサと区別される。
関連技術のプロファイラは、関連技術の固定された構造のプロセッサのためにプログラムを最適化させることにだけ用いられてきた。例えば、ARM社のReal View(登録商標)シリーズやIntel社のThreading Toolなどのプロファイラは、固定された構造のターゲットプロセッサでソフトウェアを最適化するための実行時間情報(run-time information)のみを提供していた。
しかし、プロセッサの構造がユーザによって変形可能な特定用途向け構造プロセッサの登場により、この特定用途向け構造プロセッサおよびプログラムすべてを最適化させるのに必要な情報を提供することができるプロファイラが求められている。
特開平11-330370号公報 特開2005-172830号公報 特開2005-216177号公報 大韓民国特許出願公開第2002-66936号公報
本発明は、前述したような従来技術の問題点を解決するために案出されたものであって、プログラムをターゲットプロセッサに最適化するために必要な情報を提供するだけでなく、プログラムおよび特定用途向け構造プロセッサすべてを考慮して、両者を最適化するために必要な情報を提供することができるプロファイラを提供することを目的とする。
また、本発明は、特定用途向け構造プロセッサを最適化するために必要なプログラムの静的/動的演算スケジュール情報、静的/動的演算活用度情報、静的/動的処理要素活用度情報などを提供することができるプロファイラを提供することを目的とする。
前述したような目的を達成して従来技術の問題点を解決するために、本発明に係るプロファイラは、複数の処理要素を含む特定用途向け構造プロセッサの構造が記述された構造記述を分析して構造分析情報を生成する構造分析部と、特定用途向け構造プロセッサによって実行されるプログラムの静的情報が記述されたプログラム静的情報を分析して静的分析情報を生成する静的分析部と、前述のプログラムをシミュレーションして生成されたプログラムの動的情報が記述されたプログラム動的情報を分析して動的分析情報を生成する動的分析部と、構造分析情報、静的分析情報および動的分析情報のうち少なくとも1つに基づいて、プログラムおよび特定用途向け構造プロセッサのうち少なくとも1つを最適化するための情報を生成するクロスプロファイル分析部とを含む。
また、本発明の他の観点によるプロファイラは、クロスプロファイル分析部によって生成された特定用途向け構造プロセッサを最適化するための情報を視覚化してユーザに提供するプロファイル報告生成部をさらに含むように構成できる。
また、本発明のさらに他の観点によるプロファイラは、構造分析部が、構造記述を分析して、複数の演算グループのうち少なくとも1つを実行可能な処理要素に対する演算グループ情報を生成する演算分析部と、構造記述を分析して複数の処理要素のうち少なくとも1つの処理要素の入力ポート、少なくとも1つの処理要素の出力ポートおよび少なくとも1つの処理要素の演算グループに関する情報のうち少なくとも1つを生成するプロセスユニット分析部と、複数の処理要素の相互連結に関する情報を生成する相互連結分析部とを含む。
また、本発明のさらに他の観点によるプロファイラは、静的分析部が、プログラムの静的情報を分析して各サイクル別に複数の処理要素のそれぞれで実行される少なくとも1つの演算に関するスケジュール情報を生成する演算スケジュール分析部と、プログラム静的情報を分析してプログラムを実行するための複数の演算の少なくとも1つが複数の処理要素のうちのいずれの処理要素に割り当てられるかに関する情報を生成する配置およびルーティング分析部とを含む。
また、本発明のさらに他の観点によるプロファイラは、クロスプロファイル分析部が、複数の演算グループの少なくとも1つがプログラム内で用いられる回数に関する静的演算活用度情報と、プログラムがシミュレーションされる間に複数の演算グループの少なくとも1つが用いられた回数に関する動的演算活用度情報と、複数の処理要素のうち少なくとも1つがプログラムに用いられる少なくとも1つの演算グループに割り当てられた回数に関する静的処理要素活用度情報と、プログラムがシミュレーションされる間に少なくとも1つの演算グループが割り当てられた複数の処理要素のうち少なくとも1つで少なくとも1つの演算グループが用いられた回数に関する動的処理要素活用度情報と、プログラムがシミュレーションされる間に複数の処理要素のうち少なくとも1つの相互連結が用いられた回数に関する動的相互連結活用度情報とを生成する。
本発明によれば、プログラムおよび特定用途向け構造プロセッサすべてを考慮し、両者を最適化するために必要な情報を提供することができるプロファイラが提供される。
また、本発明のプロファイラは、特定用途向け構造プロセッサを最適化するために必要なプログラムの静的/動的動作スケジュール情報、静的/動的動作活用度情報、静的/動的処理要素活用度情報などを提供することができる。
以下、添付の図面に基づき、本発明の好適な実施の形態を詳細に説明するが、本発明がこれらの実施形態によって制限または限定されることはない。図中、同じ参照符号は同じ部材を示す。
図1は、本発明のプロファイラを説明するための特定用途向け構造プロセッサの一例を示す図である。
図1に示された特定用途向け構造プロセッサは再構成プロセッサである。再構成構造は、装置の組み立て後にも問題解決のためにカスタマイズされ、計算を実行するために空間的にカスタマイズされた計算が用いられるという特徴を有する。
コースグレインアレイ(coarse-grained array:粗粒度アレイ)120は、複数の処理要素を含む。1つの処理要素110には、計算ユニット(function unit:FU)およびレジスタファイル(register file:RF)が含まれる。計算ユニットは計算を実行するユニットであり、レジスタファイルはレジスタの集合であって、計算ユニットで用いられるデータを一時的に保存する。構成メモリ(図示せず)は、コースグレインアレイ120の構成に関する情報を保存する。構成メモリに保存された構成によって、コースグレインアレイ120は、自身に含まれた処理要素間の連結状態を変更する。
図1に示されたプロセッサは、コースグレインアレイ120の処理要素のうち一部の処理要素をホストプロセッサとして用いる。したがって、通常のインストラクションは、コースグレインアレイ120のうち選択された一部の処理要素(以下「共有処理要素」とする)で実行され、ループのように反復した実行が必要なインストラクションは、共有処理要素を含んだ全体コースグレインアレイ120で実行される。このように、コースグレインアレイの処理要素のうち一部の処理要素をホストプロセッサとして用いる構成を密結合(tightly-coupled)と呼ぶ。密結合構成には、アレイモードおよび命令セットプロセッサモードの2つすべてが存在する。アレイモードでは、構成メモリに保存された構成によってコースグレインアレイ120の計算ユニットを実行させる。したがって、アレイモードで共有された処理要素は、コースグレインアレイの一部で動作する。命令セットプロセッサモードでは、コースグレインアレイ120の計算ユニットのうちあらかじめ選定された計算ユニット(共有処理要素)を実行させる。例えば、命令セットプロセッサモードでは、コースグレインアレイ120のうちの共有処理要素のみを動作し、残りの処理要素は動作しない。
このような密結合構成を用いれば、コースグレインアレイで用いる処理要素のうち一部をホストプロセッサとして用いるため、別途のホストプロセッサを採用する必要がない。これにより、プロセッサのサイズが減少するだけでなく、プロセッサの製作費用も減少することができる。
また、コースグレインアレイ120のうち一部の処理要素をホストプロセッサとして用いるときに、VLIW(very long instruction word)構造を用いることもできる。この場合、インストラクションメモリ140、データメモリ130、中央レジスタファイル160および共有処理要素がVLIW構造150を構成する。データメモリ130はコースグレインアレイ120の外部に位置してデータを保存し、インストラクションメモリ140はインストラクションを保存する。
本発明では、特定用途向け構造プロセッサの例としてコースグレインアレイを用いた密結合構成を中心として説明しているが、本発明は他の形態の再構成構造はもちろん、他の特定用途向け構造プロセッサにも適用が可能である。
図2は、本発明に係るプロファイラの構成を示したブロック図である。
本発明に係るプロファイラ230は、構造分析部231と、静的分析部232と、動的分析部233と、クロスプロファイル分析部234と、プロファイル報告生成部235とを含む。
構造分析部231は、複数の処理要素を含む特定用途向け構造プロセッサ構造が記述された構造記述211を分析して構造分析情報を生成する。構造分析部231については、図3〜6を参照して後述する。
静的分析部232は、プログラムの静的情報が記述されたプログラム静的情報222を分析して静的分析情報を生成する。プログラム静的情報222は、XML(Extensible Markup Language)などによりユーザが作成することもでき、プログラムをコンパイラ212によってコンパイルすることによって生成することもできる。静的分析部232については、図7〜11を参照して後述する。
動的分析部233は、プログラムをシミュレーションして生成されたプログラムの動的情報が記述されたプログラム動的情報223を分析して動的分析情報を生成する。プログラム動的情報223は、シミューレータ213がプログラムをシミュレーションして、プログラムが実際に実行された場合における情報である。例えば、プログラムが条件判断であるような場合には、この条件判断の種別を静的分析部232が判断することはできないが、動的分析部233はシミュレーションによっていずれの条件になるかを判断できる。本発明の一実施形態によれば、動的分析部233はクロスプロファイル分析部234とともに具現される。本明細書では、動的分析部233とクロスプロファイル分析部234をともに具現した例について、図12〜17bを参照して後述する。
クロスプロファイル分析部234は、構造分析部231によって生成された構造分析情報、静的分析部232によって生成された静的分析情報、および動的分析部233によって生成された動的分析情報のうち少なくとも1つに基づいて、プログラムを実行するための特定用途向け構造プロセッサのうちの少なくとも1つを最適化するための情報を生成する。
プロファイル報告生成部235は、クロスプロファイル分析部234によって生成された特定用途向け構造プロセッサを最適化するための情報を視覚化してユーザに提供する。例えば、本発明の一例によれば、図14a〜17bのような形態でユーザに特定用途向け構造プロセッサを最適化するための情報が提供される。ユーザはこの情報に基づいて、特定用途向け構造プロセッサの構造を決定して特定用途向け構造プロセッサに適用することで、該当するプログラムを実行するための最適化された構造を有する特定用途向け構造プロセッサを決定することができる。プロファイル報告生成部235によって生成される情報としては、構造情報表示241および静的およびデータプロファイリング情報表示242を挙げることができる。
図3は、本発明に係るプロファイラの構造分析部を説明するためのブロック図である。
構造分析部231は、特定用途向け構造プロセッサの構造を分析するモジュールである。構造分析部231は、複数の処理要素を含む特定用途向け構造プロセッサの構造が記述された構造記述を分析して構造分析情報を生成する。
構造記述211は、複数の処理要素を含む特定用途向け構造プロセッサの構造が記述されたデータである。構造記述は、XMLまたはADL(Architecture Description Language)などの形式で記述される。
図4aおよび図4bは、本発明に係る構造記述の一例を示している。
図面符号410は、複数の処理要素のうち「fu_0」で識別される処理要素の入力ポートおよび出力ポートに関する事項を記述している。図面符号410を参照すると、処理要素「fu_0」は、32ビットの2つの入力ポートと、32ビットの1つの出力ポートとを有する。また、「fu_0」が支援する演算グループに関しては、図面符号420に記述されている。処理要素「fu_0」は、「arith」、「logic」および「mul」で識別される3つの演算グループを実行することができる。設定によって処理要素「fu_0」は、3つの動作グループのうち1つの動作を実行する処理要素で設定できることは言うまでもない。本発明に係るプロファイラを用いれば、処理要素「fu_0」をいずれの動作グループを実行するように設定すれば良いのかに関する情報を得ることができる。
図面符号430は、特定用途向け構造プロセッサに含まれた複数の処理要素の連結に関する情報を記述する。図面符号430によれば、処理要素「fu_0」のポート「dst1」は、中央レジスタファイル「vliw_int_rf」のポート「in1」に連結される。
図面符号440および図面符号450は、各動作グループが含む動作が何であるかに関する情報を記述する。図面符号440によれば、「control」で識別される動作グループは「1」クロックサイクルの遅延を有し、「mv2sr」、「mvfsr」および「halt」という3つの動作を含む。「mv2sr」は「move to special register」、「mvfsr」は「move from special register」を意味する。図面符号450によれば、「arith」で識別される動作グループは「1」クロックサイクルの遅延を有し、「mov」、「add」、「add_u」、「sub」、「sub_u」、「setlo」、「sethi」、および「mb」という8つの動作を含む。
図3に示すように、構造分析部231は、演算分析部310と、プロセスユニット分析部320と、相互連結分析部330とを含む。構造分析部231は、構造記述211を演算分析部310、プロセスユニット分析部320および相互連結分析部330を介して分析し、演算グループ情報340、プロセスユニット情報350および相互連結情報360を生成する。
演算分析部310は、構造記述211を分析して複数の演算グループのそれぞれに対して前述の演算グループを実行可能な処理要素に対する演算グループ情報340を生成する。
図6は、本発明に係る演算分析部310によって分析された演算グループ情報340の一例を示している。図6に示すように、演算グループ情報340は、各演算グループに対して演算グループに属する演算を、演算グループの実行に必要なクロックサイクル(遅延)、演算グループを実行可能な処理要素の識別子、および演算グループを実行可能な処理要素数に関する情報を含むように構成できる。例えば、「arith」演算グループは「1」クロックサイクルの遅延を有し、「mov」、「add」、「add_u」、「sub」、「sub_u」、「setlo」、「sethi」、および「mb」という8つの動作を含む。また、「arith」演算グループは、「fu_0」〜「fu_15」までの計16の処理要素で支援される。
プロセスユニット分析部320は構造記述211を分析し、複数の処理要素のそれぞれに対して、処理要素の入力ポート、処理要素の出力ポート、および処理要素の演算グループに関する情報のうち少なくとも1つを生成する。プロセスユニット分析部320は、複数の処理要素のそれぞれに対して処理要素が支援する演算グループの最大遅延に関する情報を生成することもできる。
図5は、本発明に係るプロセスユニット分析部320によって分析されたプロセスユニット情報350の一例を示している。
図5は、特定用途向け構造プロセッサに含まれた複数の処理要素のうち「fu_0」で識別される処理要素に対するプロセスユニット情報350である。図面符号501は、処理要素「fu_0」の最大遅延が「4」クロックサイクルであることを示す。すなわち、処理要素「fu_0」が支援する動作グループのうち最大の遅延を有する動作グループの遅延が「4」クロックサイクルである。図面符号502は、処理要素「fu_0」が占める面積を示す。図面符号503は、処理要素「fu_0」を設定するために必要なビット数を示す。本発明の実施形態で説明する特定用途向け構造プロセッサは再構成プロセッサであるため、各処理要素を設定するための設定ビットが必要となる。これについては図面符号503に示されている。図面符号504は、処理要素「fu_0」の入力ポートに関する情報を示す。図面符号505は、処理要素「fu_0」の出力ポートに関する情報を示す。図面符号506は、処理要素「fu_0」が支援する演算グループに関する情報を示す。
相互連結分析部330は、構造記述211を分析して特定用途向け構造プロセッサに含まれた複数の処理要素の相互連結に関する相互連結情報360を生成する。このような相互連結情報は、プロファイル報告生成部235によって図16bおよび図16cのように視覚的に認知しやすい形態でユーザに提供するように構成できる。
図7は、本発明に係るプロファイラの静的分析部を説明するためのブロック図である。
静的分析部232は、プログラムの静的情報を記述するプログラム静的情報222を分析して静的分析情報を生成する。プログラム静的情報222は、プログラムをコンパイルして生成されたアセンブリコードであっても良い。
図8は、プログラム静的情報222の一例を示している。図8は、プログラムをコンパイルしてXML形式で表現したものである。図8によれば、識別子「403」を有する動作は「add」演算を実行する。このとき、「add」演算を実行するためのソースは、「vliw_int_rf」で識別される中央レジスタファイル160の「48」番レジスタファイルおよび「38」番レジスタファイルである。中央レジスタファイル160は複数のレジスタファイルを含む。この「add」演算の結果は、「vliw_int_rf」で識別される中央レジスタファイル160の「24」番レジスタファイルに記録される。プログラム静的情報222は、プログラムの実行をシミュレーションせずにプログラムから得られる情報であって、プログラムの実行をシミュレーションして生成されるプログラム動的情報223と区別される。
図7に示すように、静的分析部232は、動作スケジュール分析部710と、配置およびルーティング分析部720とを含む。静的分析部232は、プログラム静的情報222を演算スケジュール分析部710および配置およびルーティング分析部720によって分析し、演算スケジュール情報730、相互連結スケジュール情報740、およびデータフロー情報750を生成する。
演算スケジュール分析部710は、プログラム静的情報222を分析して、各サイクル別に特定用途向け構造プロセッサに含まれた複数の処理要素のそれぞれで実行される演算のスケジュールに関する演算スケジュール情報730を生成する。演算スケジュール分析部710は、複数の処理要素のそれぞれで実行される演算間のデータ依存(data dependency)に関する情報を生成することもできる。これは、演算間のスケジューリングのための情報として用いられる。
図9および図10には、演算スケジュール分析部710によって生成された演算スケジュール情報730の一例が示されている。図9に示された演算スケジュール情報730は、プログラムを実行する各関数別にこれら関数を実行するために必要な演算グループのスケジュール情報を示したものである。例えば、「HalfDelVerNxGT8_d」という関数を実行するためには、「ARI」、「SHI」、「PRE」などの演算グループが必要となる。また、演算グループはそれぞれ7番目、2番目、1番目などとして実行される必要がある。
図10に示された動作スケジュール情報730は、各クロックサイクル別に各処理要素が実行する演算のスケジュール情報を示す。例えば、クロックサイクル「0」において、処理要素「fu_0」は「ld_uc」という演算を実行し、処理要素「fu_2」は「add」という演算を実行する。
図7に示すように、配置およびルーティング分析部720は、プログラム静的情報222を分析してプログラムを実行するための複数の演算のそれぞれが複数の処理要素のうちいずれの処理要素に割り当てられるかに関する情報を生成する。また、配置およびルーティング分析部720は、処理要素に割り当てられた演算が処理要素で何回実行されるかに関する情報を生成する。
また、配置およびルーティング分析部720は、プログラム静的情報222を分析して各サイクル別に処理要素に割り当てられた演算間のルーティングに関する相互連結スケジュール情報740を生成する。また、配置およびルーティング分析部720は、プログラム静的情報222を分析して各サイクル別に処理要素間のデータフローに関するデータフロー情報750を生成する。
図11は、本発明に係る配置およびルーティング分析部720によって生成された相互連結スケジュール情報740およびデータフロー情報750の一例を示した図である。
図7に示すように、クロックサイクル「0」において、処理要素「fu_0」の「pred」ポートは、特定用途向け構造プロセッサを構成する「loop_start」素子の「dst」ポートで連結される。また、図7は、クロックサイクル「0」で処理要素「fu_0」の「src2」ポートは特定用途向け構造プロセッサを構成する「vliw_int_rf」素子の「out2」ポートで連結され、処理要素「fu_0」の「src1」ポートは特定用途向け構造プロセッサを構成する「vliw_int_rf」素子の「out1」ポートで連結されることを示す。
動的分析部233は、プログラムをシミュレーションして生成されたプログラムの動的情報を記述するプログラム動的情報223を分析して動的分析情報を生成する。プログラム動的情報223は、シミューレータ213がプログラムをシミュレーションしてプログラムが実際に実行される場合に関する情報である。
図13には、プログラム動的情報223の一例を示す。図13のプログラム動的情報223は、プログラムの実行をシミュレーションしてこのプログラムを実行するための関数に関する内容を含む。図13に示すように、「HalfPelVerNxGT8_d」という関数は、プログラムをシミュレーションする間に「795」回呼び出されている。また、この関数を実行するための詳細な内容が含まれる。
このような動的分析部233は、後述するクロスプロファイル分析部234に統合して具現することが可能である。
図12は、本発明に係るプロファイラのクロスプロファイル分析部234を説明するためのブロック図である。クロスプロファイル分析部234は、構造分析部231で生成される構造分析情報、静的分析部232で生成される静的分析情報、動的分析部233で生成される動的分析情報にうちの少なくとも1つに基づいて、特定用途向け構造プロセッサを最適化するための情報を生成するものである。
図12に示すように、クロスプロファイル分析部234は、演算活用度分析部1210と、処理要素活用度分析部1220と、相互連結活用度分析部1230と、ソフトウェアパイプライン分析部1240とを含む。
クロスプロファイル分析部234は、構造分析部231によって生成された構造分析情報、静的分析部232によって生成された静的分析情報、および動的分析部233によって生成された動的分析情報のうちの少なくとも1つに基づいて、プログラムを実行する際に特定用途向け構造プロセッサを最適化するための情報を生成する。この生成される情報は、静的/動的動作活用度情報1250と、静的/動的処理要素活用度情報1260と、静的/動的相互連結活用度情報1270と、ソフトウェアパイプラインループ情報1280とを含む。
演算活用度分析部1210は、構造分析情報、静的分析情報、および動的分析情報に基づいて、複数の演算グループのそれぞれがプログラム内で用いられた回数に関する静的演算活用度情報を、複数の演算グループのそれぞれに対して生成する。また、演算活用度分析部1210は、構造分析情報、静的分析情報、および動的分析情報に基づいて、プログラムがシミュレーションされる間に複数の演算グループのそれぞれが用いられた回数に関する動的演算活用度情報を、複数の演算グループのそれぞれに対して生成する。
図14a、図14bおよび図14cには、演算活用度分析部1210によって生成された静的/動的演算活用度情報1250が示されている。図14aに示すように、「extended」という演算グループに関して、プログラム静的情報222上では244回用いられるが、プログラム動的情報223では、7043917回の使用(呼び出し)がなされている。これは、プログラム上では「extended」という演算グループが1回だけ登場したとしても、ループまたは呼び出しなどによって演算グループが何度も用いられるためであり、静的分析部232によって分析するときはコンパイルされた結果だけで分析するが、動的分析部233ではプログラムの実行をシミュレーションした結果で分析するためである。
図14bは、各演算グループに対して静的分析結果演算グループのそれぞれがプログラム内に登場した回数を視覚的に示したものである。また、図14cは、プログラムがシミュレーションされる間に演算グループのそれぞれが用いられた回数を視覚的に示したものである。本実施形態で、「intr02_gp」および「intr13_gp」演算は、静的動作活用度および動的動作活用度ともに低下することを確認できる。この場合、ユーザは「intr02_gp」および「intr13_gp」演算を用いずに、他の演算を用いる関数にプログラムを変更することができる。また、プロセッサ側においても、このような演算を支援する処理要素をこれら演算を支援しないように変更することができる。また、本実施形態において、「intr06_gp」演算の場合、静的動作活用度は低いが動的動作活用度は高いため、「intr06_gp」演算は必要な演算であることが分かる。
図12に示すように、処理要素活用度分析部1220は、プログラム静的情報222(図2参照)に基づいて演算グループのそれぞれに対して演算グループが割り当てられた処理要素数を静的処理要素活用度情報として生成する。また、処理要素活用度分析部1220は、プログラムがシミュレーションされる間に演算グループが割り当てられた処理要素で演算グループが用いられた回数に関する動的処理要素活用度情報を演算グループのそれぞれに対して生成する。
図15a、図15bおよび図15cは、処理要素活用度分析部1220によって生成された静的/動的処理要素活用度情報1260を示している。
図15aに示すように、「extended」という演算グループは、プログラム静的情報222上では1サイクル当たり平均1.9個の処理要素で実行され、1サイクル当たり最大7つの処理要素で実行され、全体的に465個の処理要素によって実行される。1つの処理要素が互いに異なるサイクルで「extended」という演算グループを実行した場合には重複してカウントされる。また、「extended」という演算グループは、プログラムをシミュレーションしたときに、全体的に26114389個の処理要素によって実行される。静的分析と同様、1つの処理要素がシミュレーションのうち互いに異なるサイクルで「extended」という動作グループを実行した場合には重複してカウントされる。
図15bは、プログラム静的情報222に基づいて演算グループのそれぞれに対して演算グループが割り当てられた処理要素数を視覚的に示したものである。また、図15cは、処理要素活用度分析部1220によって、プログラムをシミュレーションする間に、演算グループが割り当てられた処理要素として、演算グループが用いられた回数を視覚的に示したものである。もし、特定用途向け構造プロセッサの処理要素のうち「extended」という演算グループを支援する処理要素を6つだけ用いることができる場合には、図15bおよび図15cを参照して、活用度が最も高い6つの処理要素を選択して、処理要素に「extended」という演算グループを配置するように構成できる。
図12に示すように、相互連結活用度分析部1230は、プログラム静的情報222に基づいて、複数の処理要素の相互連結が用いられた回数に関する静的相互連結活用度情報を複数の処理要素のそれぞれに対して生成する。また、相互連結活用度分析部1230は、プログラムをシミュレーションする間に複数の処理要素の相互連結が用いられた回数に関する動的相互連結活用度情報を複数の処理要素のそれぞれに対して生成する。
図16a、図16bおよび図16cは、本発明に係るプロファイラによって生成された静的/動的相互連結活用度情報および相互連結情報を示した図である。
図16aに示すように、特定用途向け構造プロセッサに含まれた処理要素「fu_0」は、多様な相互連結を有することができる。例えば、処理要素「fu_0」の「pred」ポートは、特定用途向け構造プロセッサに含まれる「vliw_pred」の「out1」ポートと静的には429回の相互連結を有するが、動的には15225190回の相互連結を有する。したがって、静的/動的相互連結活用度情報1270を参照すると、各処理要素で使用回数が少ない相互連結を除去することで、特定用途向け構造プロセッサを最適化することができる。
図16bおよび図16cは、構造記述211を分析した情報から各処理要素の連結を互いに異なる観点で視覚化したものである。このように視覚化された情報を介して、ユーザは処理要素間の相互連結をより容易に確認することができる。
図12に示すように、ソフトウェアパイプライン分析部1240は、プログラムのループのうちソフトウェアパイプラインが可能なループに関するソフトウェアパイプラインループ情報1280を生成する。プログラムのループのうちソフトウェアパイプラインが可能な場合は、これを分析してユーザに提供することで、ユーザはプログラムを最適化することができる。
図17aおよび図17bは、本発明に係るプロファイラによって生成されたソフトウェアパイプラインループ情報を示した図である。図17aでは、各関数に対してソフトウェアパイプライニングの適用が可能な程度を「s.cycle」で表示する。図17bは、「s.cycle」(図17bでは「cycle」)の順にソーティングして示したものである。
また、本発明の実施形態は、コンピュータにより具現される多様な動作を実行するためのプログラム命令を含むコンピュータ読み取り可能な媒体を含む。この媒体は、プログラム命令、データファイル、データ構造などを単独または組み合わせて含むように構成できる。媒体およびプログラム命令は、本発明の目的のために特別に設計されて構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知であり使用可能なものであってもよい。コンピュータ読み取り可能な記録媒体の例としては、ハードディスク、フレキシブルディスクおよび磁気テープのような磁気媒体、CD−ROM、DVDのような光記録媒体、フロプティカルディスクのような磁気−光媒体、およびROM、RAM、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置が含まれる。媒体は、プログラム命令、データ構造などを保存する信号を送信する搬送波を含む光または金属線、導波管などの伝送媒体である場合も含まれる。プログラム命令の例としては、コンパイラによって生成されるもののような機械語コードだけでなく、インタプリタなどを用いてコンピュータによって実行される高級言語コードを含む。
上述したように、本発明の好ましい実施形態を参照して説明したが、該当する技術分野において熟練した当業者にとっては、特許請求の範囲に記載された本発明の思想および領域から逸脱しない範囲内で、本発明を多様に修正および変更させることができることを理解できるであろう。すなわち、本発明の技術的範囲は、特許請求の範囲に基づいて定められ、発明を実施するための最良の形態により制限されるものではない。
本発明のプロファイラを説明するための特定用途向け構造プロセッサの一例を示した図である。 本発明に係るプロファイラの構成を示したブロック図である。 本発明に係るプロファイラの構造分析部を説明するためのブロック図である。 本発明に係る構造記述の一例を示した図である。 本発明に係る構造記述の一例を示した図である。 本発明に係るプロファイラの構造分析部によって分析されたプロセスユニット情報の一例を示した図である。 本発明に係るプロファイラの構造分析部によって分析された動作グループ情報の一例を示した図である。 本発明に係るプロファイラの静的分析部を説明するためのブロック図である。 本発明に係るプログラム静的情報の一例を示した図である。 本発明に係るプロファイラの静的分析部によって生成された動作スケジュール情報の一例を示した図である。 本発明に係るプロファイラの静的分析部によって生成された動作スケジュール情報の一例を示した図である。 本発明に係るプロファイラの静的分析部によって生成された相互連結スケジュール情報およびデータフロー情報の一例を示した図である。 本発明に係るプロファイラの動的分析部を説明するためのブロック図である。 本発明に係るプログラム動的情報の一例を示した図である。 本発明に係るプロファイラによって生成された静的/動的動作活用度情報を示した図である。 本発明に係るプロファイラによって生成された静的/動的動作活用度情報を示した図である。 本発明に係るプロファイラによって生成された静的/動的動作活用度情報を示した図である。 本発明に係るプロファイラによって生成された静的/動的処理要素活用度情報を示した図である。 本発明に係るプロファイラによって生成された静的/動的処理要素活用度情報を示した図である。 本発明に係るプロファイラによって生成された静的/動的処理要素活用度情報を示した図である。 本発明に係るプロファイラによって生成された静的/動的相互連結活用度情報および相互連結情報を示した図である。 本発明に係るプロファイラによって生成された静的/動的相互連結活用度情報および相互連結情報を示した図である。 本発明に係るプロファイラによって生成された静的/動的相互連結活用度情報および相互連結情報を示した図である。 本発明に係るプロファイラによって生成されたソフトウェアパイプラインループ情報を示した図である。 本発明に係るプロファイラによって生成されたソフトウェアパイプラインループ情報を示した図である。

Claims (20)

  1. 複数の処理要素を含む特定用途向け構造プロセッサの構造が記述された構造記述を分析して構造分析情報を生成する構造分析部と、
    特定用途向け構造プロセッサによって実行されるプログラムの静的情報が記述されたプログラム静的情報を分析して静的分析情報を生成する静的分析部と、
    前記プログラムをシミュレーションして生成された前記プログラムの動的情報が記述されたプログラム動的情報を分析して動的分析情報を生成する動的分析部と、
    前記構造分析情報、前記静的分析情報、および前記動的分析情報のうちの少なくとも1つに基づいて、前記プログラムおよび前記特定用途向け構造プロセッサのうちの少なくとも1つを最適化するための情報を生成するクロスプロファイル分析部と、
    を含むことを特徴とするプロファイラ。
  2. 前記構造分析部は、
    前記構造記述を分析して、複数の演算グループの少なくとも1つを実行可能な複数の処理要素のうちの少なくとも1つに対して演算グループ情報を生成する演算分析部を含むことを特徴とする請求項1に記載のプロファイラ。
  3. 前記演算情報は、
    前記複数の演算グループの少なくとも1つのそれぞれに対して、前記複数の処理要素のうち前記複数の演算グループの少なくとも1つを実行可能な処理要素数および前記複数の演算グループの少なくとも1つを実行可能な前記処理要素の識別子を含むことを特徴とする請求項2に記載のプロファイラ。
  4. 前記構造分析部は、
    前記構造記述を分析して前記複数の処理要素のうち少なくとも1つの処理要素の入力ポート、前記少なくとも1つの処理要素の出力ポートおよび前記少なくとも1つの処理要素の演算グループに関する情報のうち少なくとも1つを生成するプロセスユニット分析部を含むことを特徴とする請求項1に記載のプロファイラ。
  5. 前記プロセスユニット分析部は、
    前記少なくとも1つの処理要素によって支援される演算グループの最大遅延に関する情報を生成することを特徴とする請求項4に記載のプロファイラ。
  6. 前記構造分析部は、
    前記複数の処理要素の相互連結に関する情報を生成する相互連結分析部を含むことを特徴とする請求項1に記載のプロファイラ。
  7. 前記プログラムの前記静的情報は、
    前記プログラムをコンパイルした結果に基づくことを特徴とする請求項1に記載のプロファイラ。
  8. 前記静的分析部は、
    前記プログラムの前記静的情報を分析して各サイクル別に前記複数の処理要素のそれぞれで実行される少なくとも1つの演算に関するスケジュール情報を生成する演算スケジュール分析部を含むことを特徴とする請求項1に記載のプロファイラ。
  9. 前記演算スケジュール分析部は、前記プログラムを遂行する少なくとも1つの関数を遂行するのに必要な少なくとも1つの演算グループに関するスケジュール情報をさらに生成し、前記少なくとも1つの演算グループは複数の演算で構成されることを特徴とする請求項8に記載のプロファイラ。
  10. 前記演算スケジュール分析部は、
    前記少なくとも1つの演算間のデータ依存に関する情報を生成することを特徴とする請求項8に記載のプロファイラ。
  11. 前記静的分析部は、
    前記プログラム静的情報を分析して前記プログラムを実行するための複数の演算の少なくとも1つが前記複数の処理要素のうちいずれの処理要素に割り当てられるかに関する情報を生成する配置およびルーティング分析部を含むことを特徴とする請求項1に記載のプロファイラ。
  12. 前記配置およびルーティング分析部は、
    前記プログラム静的情報を分析して各サイクル別に前記処理要素に割り当てられた少なくとも1つの演算間のルーティングに関する情報を生成することを特徴とする請求項11に記載のプロファイラ。
  13. 前記配置およびルーティング分析部は、
    前記対応する処理要素に割り当てられた前記少なくとも1つの演算が前記対応する処理要素で何回実行されるかに関する情報を生成することを特徴とする請求項11に記載のプロファイラ。
  14. 前記クロスプロファイル分析部は、
    複数の演算グループの少なくとも1つが前記プログラム内で用いられた回数に関する静的演算活用度情報を生成することを特徴とする請求項1に記載のプロファイラ。
  15. 前記クロスプロファイル分析部は、
    前記プログラムがシミュレーションされる間に複数の演算グループの少なくとも1つが用いられた回数に関する動的演算活用度情報を生成することを特徴とする請求項1に記載のプロファイラ。
  16. 前記クロスプロファイル分析部は、
    前記複数の処理要素のうち少なくとも1つが前記プログラムに用いられる少なくとも1つの演算グループに割り当てられた回数に関する静的処理要素活用度情報を生成することを特徴とする請求項1に記載のプロファイラ。
  17. 前記クロスプロファイル分析部は、
    前記プログラムがシミュレーションされる間に前記少なくとも1つの演算グループが割り当てられた前記複数の処理要素のうち少なくとも1つで、前記少なくとも1つの演算グループが用いられた回数に関する動的処理要素活用度情報を生成することを特徴とする請求項1に記載のプロファイラ。
  18. 前記クロスプロファイル分析部は、
    前記プログラムがシミュレーションされる間に前記複数の処理要素のうち少なくとも1つの相互連結が用いられた回数に関する動的相互連結活用度情報を生成することを特徴とする請求項1に記載のプロファイラ。
  19. 前記クロスプロファイル分析部は、
    前記プログラムのループのうちソフトウェアパイプラインが可能なループに関する情報を生成することを特徴とする請求項1に記載のプロファイラ。
  20. 前記クロスプロファイル分析部によって生成された前記特定用途向け構造プロセッサを最適化するための前記情報を視覚化してユーザに提供するプロファイル報告生成部をさらに含むことを特徴とする請求項1に記載のプロファイラ。
JP2007169966A 2006-11-17 2007-06-28 プロセッサ構造および応用の最適化のためのプロファイラ Active JP4489102B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060113588A KR100813662B1 (ko) 2006-11-17 2006-11-17 프로세서 구조 및 응용의 최적화를 위한 프로파일러

Publications (2)

Publication Number Publication Date
JP2008130078A true JP2008130078A (ja) 2008-06-05
JP4489102B2 JP4489102B2 (ja) 2010-06-23

Family

ID=39398813

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007169966A Active JP4489102B2 (ja) 2006-11-17 2007-06-28 プロセッサ構造および応用の最適化のためのプロファイラ

Country Status (3)

Country Link
US (1) US8490066B2 (ja)
JP (1) JP4489102B2 (ja)
KR (1) KR100813662B1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012168889A (ja) * 2011-02-16 2012-09-06 Canon Inc 電子回路最適化方法、電子回路最適化装置、及びプログラム
JP2013532856A (ja) * 2010-07-13 2013-08-19 アルゴトゥチップ コーポレーション アルゴリズムおよび仕様に基づく自動最適集積回路ジェネレータ
JP2013196702A (ja) * 2012-03-16 2013-09-30 Samsung Electronics Co Ltd 再構成可能プロセッサの検証支援装置及び方法

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8782613B2 (en) * 2008-08-12 2014-07-15 Hewlett-Packard Development Company, L.P. Optimizing applications using source code patterns and performance analysis
KR101571882B1 (ko) * 2009-02-03 2015-11-26 삼성전자 주식회사 재구성 가능 어레이의 인터럽트 핸들링을 위한 컴퓨팅 장치및 방법
KR101553652B1 (ko) * 2009-02-18 2015-09-16 삼성전자 주식회사 이종 프로세서에 대한 명령어 컴파일링 장치 및 방법
KR101635397B1 (ko) * 2010-03-03 2016-07-04 삼성전자주식회사 재구성 가능한 프로세서 코어를 사용하는 멀티코어 시스템의 시뮬레이터 및 시뮬레이션 방법
KR101738941B1 (ko) 2010-03-23 2017-05-24 삼성전자주식회사 재구성 가능 어레이 및 재구성 가능 어레이의 제어 방법
KR101647817B1 (ko) * 2010-03-31 2016-08-24 삼성전자주식회사 재구성 가능한 프로세서의 시뮬레이션 장치 및 방법
US8972961B2 (en) * 2010-05-19 2015-03-03 International Business Machines Corporation Instruction scheduling approach to improve processor performance
KR101704751B1 (ko) * 2010-12-21 2017-02-09 삼성전자주식회사 모듈 간의 타이밍 정보를 이용하는 멀티코어 시스템의 시뮬레이터, 및 그 시뮬레이션 방법
KR20130028505A (ko) * 2011-09-09 2013-03-19 삼성전자주식회사 재구성가능 프로세서, 재구성가능 프로세서의 코드 변환 장치 및 방법
EP2687981B1 (en) * 2012-07-18 2017-12-27 MStar Semiconductor, Inc. Automated compiler specialisation for global optimisation
US20150309813A1 (en) * 2012-08-31 2015-10-29 iAppSecure Solutions Pvt. Ltd A System for analyzing applications in order to find security and quality issues
US9727460B2 (en) * 2013-11-01 2017-08-08 Samsung Electronics Co., Ltd. Selecting a memory mapping scheme by determining a number of functional units activated in each cycle of a loop based on analyzing parallelism of a loop
KR101559651B1 (ko) * 2014-01-28 2015-10-13 한양대학교 산학협력단 동적 분석 방법 및 장치
CN112363729B (zh) * 2020-11-23 2024-05-14 北京轩宇信息技术有限公司 用于静态分析的多编译器混合编译的监控方法及装置
US20230237013A1 (en) * 2022-01-27 2023-07-27 SambaNova Systems, Inc. System of Heterogeneous Reconfigurable Processors for the Data-Parallel Execution of Applications

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11330370A (ja) * 1998-05-11 1999-11-30 Sanyo Electric Co Ltd 集積回路及びその設計製造方法並びにその情報取得方法
KR20020066936A (ko) * 2001-02-14 2002-08-21 미쓰비시덴키 가부시키가이샤 정보 제공 장치, 정보 제공 시스템 및 광고 방법
JP2005172830A (ja) * 2003-12-12 2005-06-30 Timbre Technologies Inc 集積回路構造のプロファイルを決定する方法及びシステム又はコンピュータ読取可能な記録媒体
JP2005216177A (ja) * 2004-01-30 2005-08-11 Toshiba Corp コンフィグラブル・プロセッサの設計装置、設計方法、ライブラリの最適化方法、プロセッサ、及びプロセッサを備えた半導体装置の製造方法
JP2006505057A (ja) * 2002-10-31 2006-02-09 エス・アール・シィ・コンピューターズ・インコーポレイテッド 制御データフローグラフ表現を区分化するためのシステムおよび方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5361352A (en) * 1989-11-27 1994-11-01 Hitachi, Ltd. Method for debugging in a parallel computer system and system for the same
JPH06324881A (ja) * 1993-05-18 1994-11-25 Fujitsu Ltd メモリデータの重なり判定機能を備えたコンパイラ装置
US5650938A (en) * 1995-12-13 1997-07-22 Synopsys, Inc. Method and apparatus for verifying asynchronous circuits using static timing analysis and dynamic functional simulation
US5870606A (en) * 1996-05-01 1999-02-09 International Business Machines Corp. Data triggered trace technique for debugging software programs
JPH1125134A (ja) * 1997-05-09 1999-01-29 Toshiba Corp 論理回路自動設計方法及びシステム並びにその自動設計処理を行うプログラムを記憶した媒体
WO2000046704A2 (en) 1999-02-05 2000-08-10 Tensilica, Inc. Automated processor generation system and method for designing a configurable processor
US6477683B1 (en) * 1999-02-05 2002-11-05 Tensilica, Inc. Automated processor generation system for designing a configurable processor and method for the same
US7051193B2 (en) * 2001-03-28 2006-05-23 Intel Corporation Register rotation prediction and precomputation
US6834330B2 (en) * 2002-05-21 2004-12-21 Emc Corporation Pre-fetch of records identified by an I/O trace
KR100576099B1 (ko) * 2003-08-04 2006-05-03 전주식 적응형 원격 캐쉬 구조의 공유 메모리 다중 프로세서 장치
GB2420884B (en) 2004-12-03 2009-04-15 Picochip Designs Ltd Processor architecture
US8209524B2 (en) * 2005-08-29 2012-06-26 The Invention Science Fund I, Llc Cross-architecture optimization

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11330370A (ja) * 1998-05-11 1999-11-30 Sanyo Electric Co Ltd 集積回路及びその設計製造方法並びにその情報取得方法
KR20020066936A (ko) * 2001-02-14 2002-08-21 미쓰비시덴키 가부시키가이샤 정보 제공 장치, 정보 제공 시스템 및 광고 방법
JP2006505057A (ja) * 2002-10-31 2006-02-09 エス・アール・シィ・コンピューターズ・インコーポレイテッド 制御データフローグラフ表現を区分化するためのシステムおよび方法
JP2005172830A (ja) * 2003-12-12 2005-06-30 Timbre Technologies Inc 集積回路構造のプロファイルを決定する方法及びシステム又はコンピュータ読取可能な記録媒体
JP2005216177A (ja) * 2004-01-30 2005-08-11 Toshiba Corp コンフィグラブル・プロセッサの設計装置、設計方法、ライブラリの最適化方法、プロセッサ、及びプロセッサを備えた半導体装置の製造方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013532856A (ja) * 2010-07-13 2013-08-19 アルゴトゥチップ コーポレーション アルゴリズムおよび仕様に基づく自動最適集積回路ジェネレータ
JP2012168889A (ja) * 2011-02-16 2012-09-06 Canon Inc 電子回路最適化方法、電子回路最適化装置、及びプログラム
JP2013196702A (ja) * 2012-03-16 2013-09-30 Samsung Electronics Co Ltd 再構成可能プロセッサの検証支援装置及び方法

Also Published As

Publication number Publication date
JP4489102B2 (ja) 2010-06-23
KR100813662B1 (ko) 2008-03-14
US8490066B2 (en) 2013-07-16
US20080120493A1 (en) 2008-05-22

Similar Documents

Publication Publication Date Title
JP4489102B2 (ja) プロセッサ構造および応用の最適化のためのプロファイラ
Ye et al. CHIMAERA: A high-performance architecture with a tightly-coupled reconfigurable functional unit
Ansaloni et al. EGRA: A coarse grained reconfigurable architectural template
US6219780B1 (en) Circuit arrangement and method of dispatching instructions to multiple execution units
JP4283131B2 (ja) プロセッサ及びコンパイル方法
US9292284B2 (en) Parallel arithmetic device, data processing system with parallel arithmetic device, and data processing program
KR101738640B1 (ko) 트레이스 데이터 압축 장치 및 방법
US8418154B2 (en) Fast vector masking algorithm for conditional data selection in SIMD architectures
JP2011096254A (ja) 乗累算演算を実行するための装置および方法
KR20000076285A (ko) 기계 판독가능 매체 및 초대형 인스트럭션 워드 프로세서와, 컴퓨터 프로그램의 실행 방법 및 컴파일 방법
KR101647817B1 (ko) 재구성 가능한 프로세서의 시뮬레이션 장치 및 방법
US20080263332A1 (en) Data Processing Apparatus and Method for Accelerating Execution Subgraphs
Prakash et al. Cfu playground: Full-stack open-source framework for tiny machine learning (tinyml) acceleration on fpgas
WO2023121806A2 (en) Systems and methods for processor circuits
Lakshminarayana et al. Incorporating speculative execution into scheduling of control-flow-intensive designs
US9710241B2 (en) Apparatus and method for providing instruction for heterogeneous processor
Ferreira et al. A run-time modulo scheduling by using a binary translation mechanism
US9383981B2 (en) Method and apparatus of instruction scheduling using software pipelining
KR20150051083A (ko) 재구성 가능 프로세서, 재구성 가능 프로세서의 구성 메모리의 사용을 최적화하는 방법 및 장치
US9141498B2 (en) Method for verification of reconfigurable processor
Pham-Quoc et al. Adaptable VLIW processor: The reconfigurable technology approach
KR101711388B1 (ko) 파이프라인에서 블럭을 스케줄하는 컴파일 방법 및 장치
Othman INVESTIGATION OF NEW ARCHITECTURAL FEATURES TO SUPPORT PERFORMANCE IMPROVEMENT IN EMBEDDED PROCESSORS
JP2004118518A (ja) シミュレータ、そのシミュレータをコンピュータ読み取り可能に記録した記録媒体
Park et al. Automatic generation of operation tables for fast exploration of bypasses in embedded processors

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090728

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091019

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100224

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100316

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100330

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130409

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4489102

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140409

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250