Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP5146134B2 - Compile processing device, access pattern change processing method, and processing program - Google Patents
[go: Go Back, main page]

JP5146134B2 - Compile processing device, access pattern change processing method, and processing program - Google Patents

Compile processing device, access pattern change processing method, and processing program Download PDF

Info

Publication number
JP5146134B2
JP5146134B2 JP2008160024A JP2008160024A JP5146134B2 JP 5146134 B2 JP5146134 B2 JP 5146134B2 JP 2008160024 A JP2008160024 A JP 2008160024A JP 2008160024 A JP2008160024 A JP 2008160024A JP 5146134 B2 JP5146134 B2 JP 5146134B2
Authority
JP
Japan
Prior art keywords
access pattern
access
processing
elements
program
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.)
Expired - Fee Related
Application number
JP2008160024A
Other languages
Japanese (ja)
Other versions
JP2010003031A (en
Inventor
智子 庄司
康太郎 瀧
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008160024A priority Critical patent/JP5146134B2/en
Publication of JP2010003031A publication Critical patent/JP2010003031A/en
Application granted granted Critical
Publication of JP5146134B2 publication Critical patent/JP5146134B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Devices For Executing Special Programs (AREA)

Description

本発明は,プログラムのコンパイル処理装置,ならびにアクセスパターン変更処理方法および処理プログラムに関するものである。より詳しくは,本発明は,プログラムのコンパイル処理またはリンク処理時に実行され,プログラムの動的データ構造の解析結果を用いてメモリアクセスを伴う構造体のアクセスパターンを取得し,該構造体の要素の配列上の位置を変更する処理を実現する処理に関する。   The present invention relates to a program compilation processing apparatus, an access pattern change processing method, and a processing program. More specifically, the present invention is executed at the time of compiling or linking a program, acquires an access pattern of a structure with memory access using the analysis result of the dynamic data structure of the program, and The present invention relates to processing for realizing processing for changing a position on an array.

プログラムのコンパイル処理やリンク処理における,配列要素の割り当て処理に関する従来技術として,ソースプログラム内の配列要素の参照順序と参照回数とを保持し,配列要素のインデックスを参照順序に合わせて入れ替え,連続領域になるように割り当てる方法が知られている(例えば,特許文献1参照)。   As a conventional technique related to array element assignment processing in program compilation processing and link processing, the reference order and reference count of array elements in the source program are maintained, and the array element indices are changed in accordance with the reference order, thereby providing a continuous area. There is known a method of assigning so as to be (see, for example, Patent Document 1).

また,プログラムを一度予備的に実行し,プログラム内の配列要素へのアクセスパターンのグラフを作成し,アクセス数の大きい配列要素を活性化レコードの基底アドレスに近い位置に配置させ,または,アクセスが時間的に接近している複数の配列要素を同一キャッシュライン上に割り付ける方法が知られている(例えば,特許文献2参照)。   Also, run the program once in advance, create a graph of access patterns to array elements in the program, place array elements with a large number of accesses close to the base address of the activation record, or access A method of allocating a plurality of array elements that are close in time on the same cache line is known (see, for example, Patent Document 2).

また,プログラム実行時にディスク・アクセスを監視し,アクセス回数の多いアドレス・ブロックをキャッシュメモリに常駐させる方法が知られている(例えば,特許文献3参照)。   In addition, a method is known in which disk access is monitored during program execution, and an address block with a large number of accesses is made resident in a cache memory (see, for example, Patent Document 3).

キャッシュメモリ(キャッシュ)は,記憶装置の中で最も高速な記憶装置であり,使用頻度の高いデータを記憶させることで,データの読み込みを最適化することができる。
特開平4−7748号公報 特開平9−212369号公報 特公平7−101402号公報
The cache memory (cache) is the fastest storage device among the storage devices, and data reading can be optimized by storing frequently used data.
Japanese Patent Laid-Open No. 4-7748 JP-A-9-212369 Japanese Patent Publication No. 7-101402

プログラムコンパイル処理装置において,例えば,図15(A)に示すFortran言語によって記述されたプログラム例のように,構造体へのポインタを要素(child1,child2)に持つ構造体へアクセスする場合を考える。   Consider a case in which a program compile processing apparatus accesses a structure having pointers to the structures (child1, child2) as in a program example described in the Fortran language shown in FIG.

このときに,構造体(struct)は,構造体の型が定義された入力プログラム[struct]ではなく,別の入力プログラム[main.f90]中で参照されるとする。図15(B)に示すように,構造体(struct)は,配列(parent)のn個分の要素としてアロケートされる。また,配列の要素となる構造体(struct)は,それぞれ,異なる構造体へのポインタを要素として持ち,定義された順に先頭の要素から順に参照するものとする。   At this time, the structure (struct) is not an input program [struct] in which the structure type is defined, but another input program [main. f90]. As shown in FIG. 15B, the structure (struct) is allocated as n elements of the array (parent). Each structure (struct) as an element of the array has a pointer to a different structure as an element, and is referred to in order of definition from the top element.

図15(B)は,構造体(struct)が割り当てられた配列(parent)例を示す図である。図15(B)に示す配列の横一列の矩形の連なりは,一つの構造体を表す。各矩形は,構造体が持つ成分(構造体要素)が割り当てられる領域を表す。   FIG. 15B is a diagram illustrating an example of an array to which a structure (struct) is assigned. A series of horizontal rows of rectangles in the array shown in FIG. 15B represents one structure. Each rectangle represents an area to which a component (structure element) of the structure is assigned.

この配列(parent)では,n個の構造体の各構造体要素child1,child2,num1の領域が,「child1_1,child2_1,num1_1,child1_2,child2_2,num1_2,…」という順序で確保される。   In this array, the areas of the structure elements child1, child2, and num1 of the n structures are secured in the order of “child1_1, child2_1, num1_1, child1_2, child2_2, num1_2,.

ここで,図15(A)のプログラム[main.f90]で,構造体要素child1の領域「child1_1,child1_2,child1_3,…,child1_n」を連続的にアクセスしようとする。   Here, the program [main. f90], the region “child1_1, child1_2, child1_3,..., child1_n” of the structure element child1 is continuously accessed.

図15(B)の配列では,構造体要素child1が連続する領域に確保されていないことから,構造体要素child1の領域が1次キャッシュにキャッシュされない可能性がある。   In the arrangement of FIG. 15B, since the structure element child1 is not secured in a continuous area, the area of the structure element child1 may not be cached in the primary cache.

このように,配列上で,連続アクセスする構造体要素が連続領域として確保されない場合には,同時にキャッシュされない状態が生じうる。そのため,キャッシュメモリの使用効率を低下させるだけでなく,プログラムの実行性能を低下させる。   In this way, when structure elements that are continuously accessed are not secured as continuous areas on the array, a state in which they are not cached at the same time may occur. Therefore, not only the use efficiency of the cache memory is lowered, but also the program execution performance is lowered.

本発明の目的は,かかる問題に鑑みてなされたものであり,その目的は,プログラムのコンパイル処理またはリンク処理の際に,プログラムの動的データ構造を解析し,メモリアクセスを行う命令の構造体へのアクセスパターンを取得し,このアクセスパターンに基づいて,該構造体の要素を割り付ける配置を変更できるようにするプログラムコンパイル処理装置を提供することである。   An object of the present invention has been made in view of such a problem. The object of the present invention is to analyze a dynamic data structure of a program and perform a memory access during program compilation processing or link processing. It is an object of the present invention to provide a program compile processing apparatus that acquires an access pattern to and that can change an arrangement for allocating elements of the structure based on the access pattern.

また,本発明の別の目的は,前記プログラムコンパイル処理装置が実行するアクセスパターン変更処理方法,および,コンピュータを前記該アクセスパターン変更処理方法によって実行される処理の処理手段を備える処理装置として機能させるためのアクセスパターン変更処理プログラムを提供することである。   Another object of the present invention is to make an access pattern change processing method executed by the program compilation processing device and a computer function as a processing device provided with processing means for processing executed by the access pattern change processing method. An access pattern change processing program is provided.

開示する処理装置は,プログラムのコンパイル処理またはリンク処理を行うコンパイル処理装置であって,入力されたプログラムの解析結果から,メモリアクセスする命令のアクセス動作を解析し,命令に関連する構造体の要素各々の配列上の配置,アクセス回数およびアクセス順序を含むアクセスパターンを取得するアクセスパターン取得部と,このアクセスパターンに基づいて,構造体の要素の配列上の配置を変更するアクセスパターン変更部とを備える。   The disclosed processing device is a compile processing device that compiles or links a program, analyzes an access operation of an instruction that accesses a memory from an analysis result of an input program, and an element of a structure related to the instruction An access pattern acquisition unit that acquires an access pattern including an arrangement on each array, the number of accesses, and an access order, and an access pattern change unit that changes the arrangement of the structure elements on the array based on the access pattern Prepare.

アクセスパターン変更部は,アクセスパターンのアクセス順序に基づいて,アクセスする構造体の要素を,配列の先頭から連続する領域に割り付けることができる。これにより,連続してアクセスする構造体要素の領域が一次キャッシュに同時にキャッシュされる可能性がより高くなり,キャッシュメモリの使用効率が向上し,プログラムの実行性能も向上する。   The access pattern changing unit can assign the elements of the structure to be accessed to a continuous area from the top of the array based on the access order of the access patterns. As a result, there is a higher possibility that areas of structure elements that are successively accessed are cached simultaneously in the primary cache, the use efficiency of the cache memory is improved, and the execution performance of the program is also improved.

また,アクセスパターン変更部は,アクセスパターンのアクセス回数に基づいて,アクセス回数の高い構造体の要素を,配列の先頭の領域から優先して割り付けることができる。これにより,高頻度でアクセスされる構造体要素が優先的に一次キャッシュにキャッシュされる可能性がより高くなる。よって,キャッシュメモリの使用効率が向上し,プログラムの実行性能も向上する。   Further, the access pattern changing unit can preferentially allocate the structure element having a high access count from the top area of the array based on the access count of the access pattern. As a result, there is a higher possibility that a frequently accessed structure element is preferentially cached in the primary cache. Therefore, the use efficiency of the cache memory is improved and the execution performance of the program is also improved.

開示する処理装置によれば,アクセス順序やアクセス回数に基づいて,アクセスする構造体の要素が一次キャッシュ上に同時にキャッシュされる可能性がきわめて高くなるため,キャッシュメモリの使用効率,ひいてはプログラムの実行性能の向上を図ることができる。   According to the disclosed processing device, it is highly likely that the structure elements to be accessed are cached simultaneously in the primary cache based on the access order and the number of accesses. The performance can be improved.

図1は,本発明の実施の形態における構成例を示す図である。   FIG. 1 is a diagram showing a configuration example in the embodiment of the present invention.

コンパイル処理装置1は,コンパイル処理手段11,リンク手段12,アクセスパターン取得部13およびアクセスパターン変更部14を備える。   The compile processing apparatus 1 includes a compile processing unit 11, a link unit 12, an access pattern acquisition unit 13, and an access pattern change unit 14.

コンパイル処理手段11は,ソース解析部111,最適化部113,およびコード生成部115を備え,ソースプログラムのコンパイル処理を行い,オブジェクトファイルを生成する。ソース解析部111,最適化部113,およびコード生成部115は既知手法による処理を実行するものであり,各処理の説明を省略する。   The compile processing unit 11 includes a source analysis unit 111, an optimization unit 113, and a code generation unit 115, and compiles the source program to generate an object file. The source analysis unit 111, the optimization unit 113, and the code generation unit 115 execute processing by a known method, and description of each processing is omitted.

リンク手段12は,コンパイル処理手段11が生成したオブジェクトファイルのリンク処理を行い,実行ファイルを生成する。   The link means 12 performs link processing of the object file generated by the compile processing means 11 and generates an execution file.

アクセスパターン取得部13は,入力されたプログラムの解析結果から,メモリアクセスする命令のアクセス動作を解析し,この命令の構造体の要素(構造体要素)各々の配列上の配置,アクセス回数およびアクセス順序を含むアクセスパターンを取得する。   The access pattern acquisition unit 13 analyzes the access operation of the instruction that accesses the memory from the analysis result of the input program, and the arrangement of the structure elements (structure elements) of this instruction, the number of accesses, and the access Get access pattern including order.

アクセスパターン変更部14は,アクセスパターンに基づいて,アクセスパターンの該構造体要素の配置を変更する。   The access pattern changing unit 14 changes the arrangement of the structure elements of the access pattern based on the access pattern.

アクセスパターン変更部14は,アクセスパターンのアクセス順序またはアクセス回数に基づいて,アクセスする構造体要素を,配列の先頭から連続する領域に割り付け,この割り付けに基づいてアクセスパターンの構造体要素の配置を変更する。   The access pattern changing unit 14 assigns the structure elements to be accessed to a continuous area from the top of the array based on the access order or the number of accesses of the access patterns, and arranges the access pattern structure elements based on this assignment. change.

例えば,アクセスパターンのアクセス順序に基づいて,アクセスする構造体要素を,配列の先頭から連続する領域に割り付ける
または,アクセスパターンのアクセス回数に基づいて,アクセス回数の高い構造体要素を,前記配列の先頭の領域から優先して割り付ける。
For example, a structure element to be accessed is allocated to a continuous area from the top of the array based on the access order of the access pattern, or a structure element with a high access count is allocated to the area of the array based on the access count of the access pattern. Prioritize the first area.

または,構造体が関連する複数の関数内で,アクセスする構造体要素に偏りがある場合に,関数各々の処理内でアクセスする構造体要素のみを,配列の先頭から連続する領域に割り付け,その関数に関連する構造体の情報の同期処理を付加する。   Or, if there is a bias in the structure elements to be accessed in multiple functions related to the structure, only the structure elements to be accessed in the processing of each function are allocated to the continuous area from the beginning of the array. Add synchronization processing of structure information related to the function.

または,構造体が関連するループ処理内で,アクセスする構造体要素に偏りがある場合に,そのループ処理内でのみ,アクセス回数が多い構造体要素を,配列の先頭から連続する領域に割り付ける。   Alternatively, if there is a bias in the structure element to be accessed in the loop process related to the structure, the structure element having a large number of accesses is allocated to the continuous area from the top of the array only in the loop process.

アクセスパターン取得部13およびアクセスパターン変更部14は,コンパイル処理手段11またはリンク手段12と協働して処理を実行することができる。   The access pattern acquisition unit 13 and the access pattern change unit 14 can execute processing in cooperation with the compile processing unit 11 or the link unit 12.

以下に,コンパイル処理装置1におけるアクセスパターン取得処理および変更処理について,より詳細に説明する。以下の例では,アクセスパターン取得処理および変更処理が,リンク手段12の最適化処理の際に実行されるものとする。   Hereinafter, the access pattern acquisition process and the change process in the compile processing apparatus 1 will be described in more detail. In the following example, it is assumed that the access pattern acquisition process and the change process are executed during the optimization process of the link unit 12.

〔第1の処理例〕
第1の処理例では,図15(A)に示すプログラムを処理対象とする。
[First processing example]
In the first processing example, the program shown in FIG.

アクセスパターン取得部13は,コンパイル処理手段11によって生成されたオブジェクトファイルの解析結果から,動的データ構造を解析し,メモリアクセスする命令を検出し,そのアクセス動作を解析してアクセスパターンを取得する。   The access pattern acquisition unit 13 analyzes the dynamic data structure from the analysis result of the object file generated by the compile processing means 11, detects a memory access instruction, analyzes the access operation, and acquires the access pattern. .

図15(A)のプログラムの「parent(i)%child1%num1」がメモリアクセスを行う命令である。この命令のアクセス動作を解析し,図15(B)に示すように,構造体structの構造体要素child1,child2,num1の配列上の配置が,配列の先頭から何バイトの位置に割り付けられるかを特定する。さらに,各構造体のアクセス回数およびアクセス順序を解析する。これらの解析情報を,アクセスパターンとして取得する。   “Parent (i)% child1% num1” of the program in FIG. 15A is an instruction for performing memory access. By analyzing the access operation of this instruction, as shown in FIG. 15B, how many bytes are allocated from the top of the array to which the structure elements child1, child2, and num1 of the structure struct are allocated. Is identified. Furthermore, the number of accesses and the access order of each structure are analyzed. These pieces of analysis information are acquired as access patterns.

次に,アクセスパターン変更部14は,アクセスパターンのアクセス順序に基づいて,連続してアクセスする構造体要素が,配列の連続する領域に割り付けられるように,構造体要素の配置を変更する。   Next, the access pattern changing unit 14 changes the arrangement of the structure elements so that the structure elements to be continuously accessed are allocated to the continuous areas of the array based on the access order of the access patterns.

図2に,構造体要素の割り付け変更例を示す。   FIG. 2 shows an example of changing the allocation of structure elements.

図2に示すように,まず,構造体structの構造体要素child1の「child1_1,child1_2,…,child1_n」の領域が,配列の先頭から順に連続的に割り付けられる。続けて,構造体要素child2の「child2_1,child2_2,…,child2_n」の領域,num1の「num1_1,num1_2,…,num1_n」の領域が,次の位置から連続的に割り付けられる。   As shown in FIG. 2, first, the areas of “child1_1, child1_2,..., Child1_n” of the structure element child1 of the structure struct are sequentially allocated from the top of the array. Subsequently, the area “child2_1, child2_2,..., Child2_n” of the structure element child2 and the area “num1_1, num1_2,..., Num1_n” of num1 are continuously allocated from the next position.

リンク手段12では,領域の割り付け位置が変更されたアクセスパターンに基づいて最適化処理を行う。   The link means 12 performs an optimization process based on the access pattern whose area allocation position has been changed.

これにより,アクセスが連続する構造体要素は,キャッシュの連続した領域に割り当てられ,一次キャッシュに同時にキャッシュされる可能性が高くなる。よって,キャッシュメモリの使用効率およびプログラムの実行性能を向上させることができる。   As a result, the structure elements that are continuously accessed are assigned to the continuous areas of the cache, and the possibility of being simultaneously cached in the primary cache increases. Therefore, the usage efficiency of the cache memory and the program execution performance can be improved.

また,第1の処理例では,後述する処理例のように処理のオーバーヘッドを生ずるおそれがない。   Further, in the first processing example, there is no possibility of causing processing overhead unlike the processing example described later.

〔第2の処理例〕
第2の処理例では,図3に示すプログラムを処理対象とする。
[Second processing example]
In the second processing example, the program shown in FIG.

アクセスパターン取得部13は,第1の処理例と同様に,図15のプログラムについて,メモリアクセスする命令のアクセスパターンを取得する。   Similarly to the first processing example, the access pattern acquisition unit 13 acquires an access pattern of a memory access instruction for the program shown in FIG.

図3に示すプログラムでは,関数「call sub1()」内の「parent(i)%child1%num1」と,関数「call sub2()」内の「parent(i)%child2%num1」がメモリアクセスを行う命令である。   In the program shown in FIG. 3, “parent (i)% child1% num1” in the function “call sub1 ()” and “parent (i)% child2% num1” in the function “call sub2 ()” are memory accesses. It is an instruction to perform.

2つの関数において,命令に対応する同一の構造体structのアクセスパターンは異なる。   In the two functions, the access pattern of the same structure struct corresponding to the instruction is different.

この場合には,各命令での構造体structのアクセスパターンを取得し,部分的に変更することによって,アクセスパターンを最適化できる。また,プログラム全体でのアクセス動作の解析が不要となる。   In this case, the access pattern can be optimized by acquiring and partially changing the access pattern of the structure struct in each instruction. In addition, it is not necessary to analyze access operations in the entire program.

しかし,構造体が多重化するため,同期処理を行う必要がある。   However, since the structure is multiplexed, it is necessary to perform synchronization processing.

アクセスパターン変更部14は,関数内で,構造体structの構造体要素のアクセスに偏りがあるかを調べる。   The access pattern changing unit 14 checks whether there is a bias in accessing the structure elements of the structure struct in the function.

関数「call sub1()」での命令「parent(i)%child1%num1」では,構造体要素child1,num1のみアクセスし,構造体要素child2にはアクセスしないという偏りがある。同様に,関数「call sub1()」での命令「parent(i)%child2%num1」では,構造体要素child2,num1のみアクセスするという偏りがある。   In the instruction “parent (i)% child1% num1” in the function “call sub1 ()”, there is a bias that only the structure elements child1 and num1 are accessed and the structure element child2 is not accessed. Similarly, the instruction “parent (i)% child2% num1” in the function “call sub1 ()” is biased to access only the structure elements child2 and num1.

そこで,アクセスパターン変更部14は,関数内で,アクセスする構造体要素のみを要素として定義する構造体を作成する。   Therefore, the access pattern changing unit 14 creates a structure that defines only the structure element to be accessed as an element in the function.

図4は,図3のプログラムの命令「parent(i)%child1%num1」と「parent(i)%child2%num1」とにおける構造体要素の偏りに基づいて,構造体structが作成された状態を示す図である。   FIG. 4 shows a state in which a structure struct is created based on the structure element bias in the instructions “parent (i)% child1% num1” and “parent (i)% child2% num1” of the program of FIG. FIG.

図4のプログラムの破線の矩形の部分p1に示すように,命令「parent(i)%child1%num1」に対応して,構造体要素child1,num1のみを要素とする構造体structの定義を作成している。また,破線の矩形の部分p2に示すように,命令「parent(i)%child2%num1」についても,同様に構造体structの定義を作成している。   As shown in the broken-line rectangle part p1 of the program in FIG. 4, the definition of the structure struct having only the structure elements children1 and num1 as elements is created in response to the instruction “parent (i)% child1% num1”. doing. Further, as shown in the broken-line rectangular portion p2, the definition of the structure struct is similarly created for the instruction “parent (i)% child2% num1”.

アクセスパターン変更部14は,これらの関数内で,作成した構造体structのアクセスパターンに基づいて,その構造体要素のみについて配列上の領域の割り付けを行う。ここで,第1の処理例と同様の処理を行って配列上の配置の割り付けを変更する。   In these functions, the access pattern changing unit 14 allocates an area on the array only for the structure element based on the access pattern of the created structure struct. Here, the processing similar to the first processing example is performed to change the allocation of the arrangement on the array.

図5(A)および(B)は,それぞれ,命令「parent(i)%child1%num1」と命令「parent(i)%child2%num1」に対応する配列の構造体要素の割り付けの変更例を示す図である。   FIGS. 5A and 5B show examples of changing the allocation of structure elements of the array corresponding to the instruction “parent (i)% child1% num1” and the instruction “parent (i)% child2% num1”, respectively. FIG.

図5(A)の配列では,構造体要素child1,num1のみを参照するため,配列の要素として,構造体要素child1の「child1_1,child1_2,…,child1_n」の領域分と構造体要素num1の「num1_1,num1_2,…,num1_n」の領域分のみが割り付けられる。   In the array of FIG. 5A, since only the structure elements child1 and num1 are referred to, as the elements of the array, “child1_1, children1_2,..., Child1_n” of the structure element child1 and “ num1_1, num1_2,..., num1_n ”are allocated.

また,図5(B)の配列では,構造体要素child2,num1のみを参照するため,配列の要素として,構造体要素child2の「child2_1,child2_2,…,child2_n」の領域分と構造体要素num1の「num1_1,num1_2,…,num1_n」の領域分のみが割り付けられる。   In the array of FIG. 5B, since only the structure elements child2 and num1 are referred to, the elements of the array “child2_1, children2_2,..., Child2_n” of the structure element child2 and the structure element num1 are used. Only “num1_1, num1_2,..., Num1_n” are allocated.

このように,定義されているがアクセスしない不要な構造体要素を除去したアクセスパターンに変更して,配列上の構造体要素の配置を変更することができるため,キャッシュメモリの無駄な領域の割り当てを止めることができる。   In this way, it is possible to change the arrangement of structure elements on the array by changing to an access pattern in which unnecessary structure elements that are defined but not accessed are removed. Can be stopped.

第2の処理例では,構造体structが多重化されるため,複数の構造体間で情報の同期をとる必要がある。   In the second processing example, since the structure struct is multiplexed, it is necessary to synchronize information among a plurality of structures.

アクセスパターン変更部14は,本来の構造体structの構造体要素を配列として保持し,作成した構造体の構造体要素の値が変化した場合に,これらの情報の同期をとる。同期処理は,以下の3つのいずれかの処理方法で行われる。   The access pattern changing unit 14 holds the structure elements of the original structure struct as an array, and synchronizes these pieces of information when the value of the structure element of the created structure changes. The synchronization process is performed by one of the following three processing methods.

図6は,第1の同期方法による同期処理例を示す図である。   FIG. 6 is a diagram illustrating an example of synchronization processing by the first synchronization method.

アクセスパターン変更部14は,第1の同期方法として,マスタ構造体struct_masterAを生成し,マスタ構造体の情報を,多重化した構造体structA1,structA2の全てに写像する。マスタ構造体struct_masterAを介して各構造体の情報の同期をとることができる。   As a first synchronization method, the access pattern changing unit 14 generates a master structure struct_masterA and maps the information of the master structure onto all of the multiplexed structures structA1 and structA2. Information of each structure can be synchronized via the master structure struct_masterA.

図7は,第2の同期方法による同期処理例を示す図である。   FIG. 7 is a diagram illustrating an example of synchronization processing by the second synchronization method.

アクセスパターン変更部14は,第2の同期方法として,構造体の更新があったときに,更新された情報を,多重化した構造体各々に写像する。構造体structA1の情報が更新された場合に,更新された情報を構造体structA2,structA3,structA4,structA5にそれぞれ写像する。また,構造体structA2の情報が更新された場合に,更新された情報を構造体structA1,structA3,structA4,structA5にそれぞれ写像する。更新のたびに全ての構造体の情報が写像され,同期をとることができる。   As a second synchronization method, the access pattern changing unit 14 maps the updated information to each multiplexed structure when the structure is updated. When the information of the structure structA1 is updated, the updated information is mapped to the structures structA2, structA3, structA4, and structA5. When the information on the structure structA2 is updated, the updated information is mapped to the structures structA1, structA3, structA4, and structA5. Every update, the information of all structures is mapped and can be synchronized.

図8は,第3の同期方法による同期処理例を示す図である。   FIG. 8 is a diagram illustrating an example of synchronization processing by the third synchronization method.

アクセスパターン変更部14は,第3の同期方法として,更新が生じた構造体をマスタとして設定し,更新された情報を他の構造体へ順次写像する。   As a third synchronization method, the access pattern changing unit 14 sets the updated structure as a master, and sequentially maps the updated information to other structures.

構造体structA1の情報が更新された場合に,構造体structA1をマスタと設定し,更新された情報を構造体structA2に写像する。次に,構造体structA2の情報が更新されるので,構造体structA2がマスタとなり,更新された情報を構造体structA3に写像する。さらに,構造体structA3の更新された情報が,同様にして,構造体structA4に写像される。   When the information of the structure structA1 is updated, the structure structA1 is set as a master, and the updated information is mapped to the structure structA2. Next, since the information of the structure structA2 is updated, the structure structA2 becomes the master, and the updated information is mapped to the structure structA3. Further, the updated information of the structure structA3 is similarly mapped to the structure structA4.

情報の更新を契機に,構造体の情報が次の構造体に写像され,全体の同期をとることができる。   When the information is updated, the information of the structure is mapped to the next structure, and the whole can be synchronized.

〔第3の処理例〕
第3の処理例では,図15に示すプログラムを処理対象とする。
[Third processing example]
In the third processing example, the program shown in FIG.

アクセスパターン取得部13は,第1の処理例と同様に,図15のプログラムについて,メモリアクセスする命令のアクセスパターンを取得する。   Similarly to the first processing example, the access pattern acquisition unit 13 acquires an access pattern of a memory access instruction for the program shown in FIG.

ループ処理内にある命令「parent(i)%child1%num1」では,対応する構造体の構造体要素child1,num1のみアクセスし,構造体要素child2へアクセスしていない。したがって,アクセスする構造体要素を配列上で優先的に割り当てることによって,最適化することができる。   In the instruction “parent (i)% child1% num1” in the loop processing, only the structure elements child1 and num1 of the corresponding structure are accessed, and the structure element child2 is not accessed. Therefore, optimization can be performed by preferentially assigning structure elements to be accessed on the array.

アクセスパターン変更部14は,図15に示すプログラムでループ処理内にある命令「parent(i)%child1%num1」の構造体のアクセスパターンから,アクセスする順に構造体要素を並べ替えて,構造体要素child1,num1,child2とする。   The access pattern changing unit 14 rearranges the structure elements in the access order from the structure access pattern of the instruction “parent (i)% child1% num1” in the loop processing in the program shown in FIG. Elements are child1, num1, and child2.

さらに,アクセスパターン変更部14は,作業用構造体として,配列parentの作業用配列parent_tmpを作成し,アクセスパターンのアクセス回数に基づいて並べ替えた構造体要素の順に,その領域分を,配列の先頭から順に連続する領域に割り付ける。   Furthermore, the access pattern changing unit 14 creates a working array parent_tmp of the array parent as a working structure, and assigns the areas in the order of the structure elements rearranged based on the access pattern access count. Allocate to consecutive areas from the top.

図9は,図15(A)のプログラムにおいて,構造体要素が並べ替えられた構造体と,配列parentの作業用配列parent_tmpとを付加した状態例を示す図である。   FIG. 9 is a diagram illustrating a state example in which a structure in which structure elements are rearranged and a working array parent_tmp of the array parent are added to the program of FIG.

作業用構造体parent_tmpでは,置き換えられた順序に従って,各構造体要素の領域分が割り付けられる。また,ループ処理の終了時には,作業用配列parent_tmpの情報が,配列parentに写像される。   In the work structure parent_tmp, the area of each structure element is allocated according to the replacement order. At the end of the loop processing, the information of the working array parent_tmp is mapped to the array parent.

図10は,作業用配列parent_tmpにおける構造体要素の割り付けの変更例を示す。   FIG. 10 shows an example of changing the allocation of structure elements in the working array parent_tmp.

図10に示すように,構造体の置き換えられた順序に従って,構造体要素child1の「child1_1,child1_2,…,child1_n」の領域分を作業用配列の先頭から連続する領域に割り付ける。続けて,構造体要素num1の「num1_1,num1_2,…,num1_n」の領域分を連続する領域に割り付ける。最後に,構造体要素child2の「child2_1,child2_2,…,child2_n」の領域分を,次の位置から連続する領域に割り付ける。   As shown in FIG. 10, according to the order in which the structures are replaced, the areas of “child1_1, child1_2,..., Child1_n” of the structure element child1 are allocated to continuous areas from the top of the work array. Subsequently, the area of “num1_1, num1_2,..., Num1_n” of the structure element num1 is allocated to continuous areas. Finally, the area of “child2_1, child2_2,..., Child2_n” of the structure element child2 is assigned to a continuous area from the next position.

ループ処理内において,構造体要素のアクセス回数が多い順に,配列の領域を割り付けることによって,アクセス回数が多い構造体要素の領域が優先して一次キャッシュにキャッシュされる可能性が高くなる。そのため,キャッシュメモリの使用効率およびプログラム実行性能を向上させることができる。   In the loop processing, by assigning the array areas in the descending order of the number of access of the structure element, the possibility that the area of the structure element having the highest access count is preferentially cached in the primary cache increases. Therefore, the cache memory usage efficiency and program execution performance can be improved.

以下に,アクセスパターン取得部13およびアクセスパターン変更部14の処理フローを説明する。   Below, the processing flow of the access pattern acquisition part 13 and the access pattern change part 14 is demonstrated.

図11は,アクセスパターン取得部13の処理フローを示す図である。   FIG. 11 is a diagram illustrating a processing flow of the access pattern acquisition unit 13.

アクセスパターン取得部13は,入力されたプログラム(オブジェクトファイル)の解析結果から,メモリアクセスする命令を検出し(ステップS1),検出した命令に関連する構造体要素の型情報を取得する(ステップS2)。さらに,各構造体要素の配列上の位置(先頭からの何バイト先にあるかという配置)を取得する(ステップS3)。プログラムの制御から動的データフローを解析し,構造体要素のアクセス順序,アクセス回数を解析する(ステップS4)。構造体要素の配置,アクセス順序,アクセス回数などを含むアクセスパターンを取得する(ステップS5)。   The access pattern acquisition unit 13 detects a memory access instruction from the analysis result of the input program (object file) (step S1), and acquires type information of a structure element related to the detected instruction (step S2). ). Further, the position of each structure element on the array (arrangement indicating how many bytes ahead from the head) is acquired (step S3). The dynamic data flow is analyzed from the control of the program, and the access order and the access count of the structure elements are analyzed (step S4). An access pattern including the arrangement of structure elements, access order, number of accesses, etc. is acquired (step S5).

図12は,第1の処理例におけるアクセスパターン変更部14の処理フローを示す図である。   FIG. 12 is a diagram illustrating a processing flow of the access pattern changing unit 14 in the first processing example.

アクセスパターン変更部14は,入力プログラムのメモリアクセスする命令を検出し(ステップS11),アクセスパターンから,命令が所定の条件を満たしているかを判断する(ステップS12)。例えば,以下の条件を設定しておく。   The access pattern changing unit 14 detects an instruction to access the memory of the input program (step S11), and determines from the access pattern whether the instruction satisfies a predetermined condition (step S12). For example, the following conditions are set.

「条件:ループ処理内に配列(構造体)のアクセスがあり,かつ,その配列のアクセスが一部分の領域にのみアクセスしている。」
この命令が,前記の条件を満たす場合にのみ(ステップS12のYES),命令の各構造体が,別の構造体へのポインタを要素として持っているかを判断する(ステップS13)。
"Condition: An array (structure) is accessed in the loop processing, and the array access is accessing only a partial area."
Only when this instruction satisfies the above conditions (YES in step S12), it is determined whether each structure of the instruction has a pointer to another structure as an element (step S13).

構造体が別の構造体へのポインタを要素として持つ場合にのみ(ステップS13のYES),アクセスパターンのアクセス順序に基づいて,アクセスする構造体要素の領域分を配列の先頭から連続して割り付ける(ステップS14)。   Only when the structure has a pointer to another structure as an element (YES in step S13), the area of the structure element to be accessed is continuously allocated from the top of the array based on the access order of the access pattern (Step S14).

図13は,第2の処理例におけるアクセスパターン変更部14の処理フローを示す図である。   FIG. 13 is a diagram illustrating a processing flow of the access pattern changing unit 14 in the second processing example.

ステップS21〜S22の処理は,図12のステップS11〜12の処理と同様であるので,説明を省略する。   The processing in steps S21 to S22 is the same as the processing in steps S11 to 12 in FIG.

アクセスパターン変更部14は,前記の条件の場合にのみ(ステップS22のYES),関数内で,アクセスする構造体要素に偏りがあるかをそれぞれ判定する(ステップS23)。関数内で,アクセスする構造体要素に偏りがあると判断した場合にのみ(ステップS33のYES),その関数内で使用する構造体要素のみを要素とする構造体を,関数内の先頭部分に作成する(ステップS24)。   The access pattern changing unit 14 determines whether there is a bias in the structure element to be accessed in the function only in the case of the above condition (YES in step S22) (step S23). Only when it is determined that the structure element to be accessed is biased in the function (YES in step S33), a structure having only the structure element used in the function as an element is placed at the beginning of the function. Create (step S24).

さらに,アクセスパターンのアクセス順序に基づいて,アクセスする構造体要素の領域分を配列の先頭から連続して割り付ける(ステップS25)。   Further, based on the access order of the access pattern, the area of the structure element to be accessed is continuously allocated from the top of the array (step S25).

さらに,多重化した構造体の情報の同期処理を付加する(ステップS26)。   Furthermore, a synchronization process of the multiplexed structure information is added (step S26).

図14は,第3の処理例におけるアクセスパターン変更部14の処理フローを示す図である。   FIG. 14 is a diagram illustrating a processing flow of the access pattern changing unit 14 in the third processing example.

ステップS31〜S32の処理は,図12のステップS11〜12の処理と同様であるので,説明を省略する。   The processing in steps S31 to S32 is the same as the processing in steps S11 to 12 in FIG.

アクセスパターン変更部14は,前記の条件の場合にのみ(ステップS32のYES),ループ処理内で,アクセスする構造体要素に偏りがあるかをそれぞれ判定する(ステップS33)。ループ処理内で,アクセスする構造体要素に偏りがあると判断した場合にのみ(ステップS33のYES),ループ処理前で,元の配列に対応する作業用配列(構造体)を作成し(ステップS34),アクセスパターンのアクセス回数に基づいて,アクセス回数が多い構造体要素の領域分を作業用配列の先頭から連続して割り付ける(ステップS35)。その後,ループ処理の終了時に,作業用配列の情報を元の配列に写像する(ステップS36)。   The access pattern changing unit 14 determines whether or not there is a bias in the structure element to be accessed in the loop processing only in the case of the above condition (YES in step S32) (step S33). Only when it is determined that the structure element to be accessed is biased in the loop process (YES in step S33), a working array (structure) corresponding to the original array is created before the loop process (step S33). S34), on the basis of the access count of the access pattern, the area of the structure element having a high access count is continuously allocated from the head of the work array (step S35). After that, at the end of the loop process, the working array information is mapped to the original array (step S36).

以上,本発明をその実施の形態により説明したが,本発明はその主旨の範囲において種々の変形が可能であることは当然である。   Although the present invention has been described above with reference to the embodiments, it is obvious that the present invention can be variously modified within the scope of the gist thereof.

また,本形態において開示するコンパイラ処理装置は,コンピュータによって読み取られ実行されるプログラムとして実施することができる。このプログラムは,コンピュータが読み取り可能な,可搬媒体メモリ,半導体メモリ,ハードディスクなどの適当な記録媒体に格納することができ,これらの記録媒体に記録して提供され,または,通信インタフェースを介して種々の通信網を利用した送受信により提供されうるものである。   Further, the compiler processing device disclosed in this embodiment can be implemented as a program that is read and executed by a computer. This program can be stored in an appropriate recording medium such as a portable medium memory, semiconductor memory, or hard disk, which can be read by a computer, provided by being recorded on these recording media, or via a communication interface. It can be provided by transmission / reception using various communication networks.

本発明の実施の形態における構成例を示す図である。It is a figure which shows the structural example in embodiment of this invention. 第1の処理例における構造体要素の割り付けの変更例を示す図である。It is a figure which shows the example of a change of allocation of the structure element in a 1st process example. 第2の処理例における処理対象のプログラム例を示す図である。It is a figure which shows the example of a program of the process target in a 2nd process example. 図3のプログラムにおいて,各命令に対応して構造体の定義が作成され,構造体が多重化された状態例を示す図である。FIG. 4 is a diagram illustrating an example of a state in which a structure definition is created corresponding to each instruction and the structures are multiplexed in the program of FIG. 3. 第2の処理例における,部分p1および部分p2に対応する配列の割り付けの変更例を示す図である。It is a figure which shows the example of a change of arrangement | positioning corresponding to the part p1 and the part p2 in a 2nd process example. 第1の同期方法による同期処理の例を示す図である。It is a figure which shows the example of the synchronization process by a 1st synchronization method. 第2の同期方法による同期処理の例を示す図である。It is a figure which shows the example of the synchronization process by a 2nd synchronization method. 第3の同期方法による同期処理の例を示す図である。It is a figure which shows the example of the synchronization process by a 3rd synchronization method. 第3の処理例において,ループ処理内に構造体要素が並べ替えられた構造体と作業用配列が作成された状態例を示す図である。FIG. 10 is a diagram illustrating a state example in which a structure in which structure elements are rearranged and a working array are created in a loop process in the third processing example. 第3の処理例における作業用配列の割り付けの変更例を示す図である。It is a figure which shows the example of a change of allocation of the arrangement | sequence for work in the 3rd process example. アクセスパターン取得部の処理フローを示す図である。It is a figure which shows the processing flow of an access pattern acquisition part. 第1の処理例におけるアクセスパターン変更部の処理フローを示す図である。It is a figure which shows the processing flow of the access pattern change part in a 1st process example. 第2の処理例におけるアクセスパターン変更部の処理フローを示す図である。It is a figure which shows the processing flow of the access pattern change part in a 2nd process example. 第3の処理例におけるアクセスパターン変更部の処理フローを示す図である。It is a figure which shows the processing flow of the access pattern change part in a 3rd process example. 入力されるプログラム例およびプログラム内のメモリアクセスを行う命令の構造体要素の配列の割り付け例を示す図である。It is a figure which shows the example of allocation of the example of the program which is input, and the structure element array of the instruction which performs the memory access in a program.

符号の説明Explanation of symbols

1 コンパイル処理装置
11 コンパイル処理手段
12 リンク手段
13 アクセスパターン取得部
14 アクセスパターン変更部
111 ソース解析部
113 最適化部
115 コード生成部
DESCRIPTION OF SYMBOLS 1 Compile processing apparatus 11 Compile process means 12 Link means 13 Access pattern acquisition part 14 Access pattern change part 111 Source analysis part 113 Optimization part 115 Code generation part

Claims (8)

プログラムのコンパイル処理またはリンク処理またはこれらの処理を行うコンパイル処理装置において,
入力されたプログラムの解析結果から,メモリアクセスする命令のアクセス動作を解析し,命令に関連する構造体の要素の配列上の配置,アクセス回数およびアクセス順序を含むアクセスパターンを取得するアクセスパターン取得部と,
前記アクセスパターンに基づいて,前記構造体の要素の配列上の配置を変更するアクセスパターン変更部とを備える
ことを特徴とするコンパイル処理装置。
In a compile processing device that performs program compile processing or link processing or these processing,
An access pattern acquisition unit that analyzes the access operation of the instruction that accesses the memory from the analysis result of the input program and acquires the access pattern including the arrangement of the elements of the structure related to the instruction, the number of accesses, and the access order When,
A compile processing apparatus comprising: an access pattern changing unit that changes an arrangement of elements of the structure on an array based on the access pattern.
前記アクセスパターン変更部は,前記アクセスパターンのアクセス順序に基づいて,アクセスする構造体要素を,前記配列の先頭から連続する領域に割り付ける
ことを特徴とする請求項1記載のコンパイル処理装置。
The compiling apparatus according to claim 1, wherein the access pattern changing unit assigns a structure element to be accessed to a continuous area from the top of the array based on an access order of the access patterns.
前記アクセスパターン変更部は,前記アクセスパターンのアクセス回数に基づいて,アクセス回数の高い構造体の要素を,前記配列の先頭の領域から優先して割り付ける
ことを特徴とする請求項1または請求項2に記載のコンパイル処理装置。
3. The access pattern change unit, according to the access count of the access pattern, assigns a structure element having a high access count preferentially from the top area of the array. The compile processing device described in 1.
前記アクセスパターン変更部は,前記構造体が関連する複数の関数内で,アクセスする構造体の要素に偏りがある場合に,該関数各々の処理内でアクセスする構造体の要素のみを前記配列の先頭から連続する領域に割り付け,該関数に関連する構造体の情報の同期処理を付加する
ことを特徴とする請求項1または請求項3のいずれか一項に記載のコンパイル処理装置。
The access pattern changing unit, when there is a bias in the elements of the structure to be accessed in a plurality of functions related to the structure, only the elements of the structure to be accessed in the processing of each of the functions are stored in the array. The compile processing device according to claim 1, wherein the compile processing device is assigned to a continuous area from the top and a synchronization process of information on a structure related to the function is added.
前記アクセスパターン変更部は,前記構造体が関連するループ処理内で,アクセスする構造体の要素に偏りがある場合に,該ループ処理内でのみ,アクセス回数が多い構造体の要素を前記配列の先頭から連続する領域に割り付ける
ことを特徴とする請求項1または請求項3のいずれか一項に記載のコンパイル処理装置。
The access pattern changing unit, when there is a bias in a structure element to be accessed in a loop process associated with the structure, only accesses the structure element that has been accessed many times within the loop process. The compile processing device according to claim 1, wherein the compile processing device is assigned to a continuous area from the top.
前記アクセスパターン取得部および前記アクセスパターン変更部は,前記コンパイル処理または前記リンク処理のいずれか一方の処理が実行されている間に起動および実行される
ことを特徴とする請求項1ないし請求項5のいずれか一項に記載のコンパイル処理装置。
6. The access pattern acquisition unit and the access pattern change unit are activated and executed while one of the compile processing and the link processing is being executed. The compile processing device according to any one of the above.
コンピュータが,プログラムのコンパイル処理またはリンク処理またはこれらの処理を行う間に実行するアクセスパターン変更処理方法であって,
入力されたプログラムの解析結果から,メモリアクセスする命令のアクセス動作を解析し,命令に関連する構造体の要素の配列上の配置,アクセス回数およびアクセス順序を含むアクセスパターンを取得するアクセスパターン取得処理過程と,
前記アクセスパターンに基づいて,前記構造体の要素の配列上の配置を変更するアクセスパターン変更処理過程とを備える
ことを特徴とするアクセスパターン変更処理方法。
An access pattern change processing method executed by a computer during program compilation processing or link processing or these processing.
Access pattern acquisition processing that analyzes the access operation of the instruction that accesses the memory from the analysis result of the input program, and acquires the access pattern including the arrangement of the elements of the structure related to the instruction, the number of accesses, and the access order Process,
An access pattern change processing method, comprising: an access pattern change process for changing an arrangement of elements of the structure on the array based on the access pattern.
プログラムのコンパイル処理またはリンク処理またはこれらの処理を行うコンピュータを,
入力されたプログラムの解析結果から,メモリアクセスする命令のアクセス動作を解析し,命令に関連する構造体の要素の配列上の配置,アクセス回数およびアクセス順序を含むアクセスパターンを取得するアクセスパターン取得部と,
前記アクセスパターンに基づいて,前記構造体の要素の配列上の配置を変更するアクセスパターン変更部とを備えるコンパイル処理装置として機能させる
ことを特徴とするアクセスパターン変更処理プログラム。
A computer that compiles or links programs or performs these processes,
An access pattern acquisition unit that analyzes the access operation of the instruction that accesses the memory from the analysis result of the input program, and acquires the access pattern including the arrangement of the elements of the structure related to the instruction, the number of accesses, and the access order When,
An access pattern change processing program comprising: an access pattern change unit that changes an arrangement of elements of the structure on an array based on the access pattern.
JP2008160024A 2008-06-19 2008-06-19 Compile processing device, access pattern change processing method, and processing program Expired - Fee Related JP5146134B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008160024A JP5146134B2 (en) 2008-06-19 2008-06-19 Compile processing device, access pattern change processing method, and processing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008160024A JP5146134B2 (en) 2008-06-19 2008-06-19 Compile processing device, access pattern change processing method, and processing program

Publications (2)

Publication Number Publication Date
JP2010003031A JP2010003031A (en) 2010-01-07
JP5146134B2 true JP5146134B2 (en) 2013-02-20

Family

ID=41584721

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008160024A Expired - Fee Related JP5146134B2 (en) 2008-06-19 2008-06-19 Compile processing device, access pattern change processing method, and processing program

Country Status (1)

Country Link
JP (1) JP5146134B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8432073B2 (en) 2009-07-16 2013-04-30 Silicon Touch Technology Inc. Power generating device

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6442967B2 (en) * 2014-10-10 2018-12-26 富士通株式会社 Information processing program, information processing apparatus, and information processing method
JP7060803B2 (en) * 2018-06-20 2022-04-27 富士通株式会社 Information processing equipment, compiler program and compilation method
FR3103590B1 (en) 2019-11-27 2023-03-24 Commissariat Energie Atomique Method for constructing a characteristic signature of the accesses, by a microprocessor, to a memory

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8432073B2 (en) 2009-07-16 2013-04-30 Silicon Touch Technology Inc. Power generating device

Also Published As

Publication number Publication date
JP2010003031A (en) 2010-01-07

Similar Documents

Publication Publication Date Title
US9946523B2 (en) Multiple pass compiler instrumentation infrastructure
KR101645035B1 (en) Apparatus and Method for controlling parallel programming
US8266416B2 (en) Dynamic reconfiguration supporting method, dynamic reconfiguration supporting apparatus, and dynamic reconfiguration system
JP5146134B2 (en) Compile processing device, access pattern change processing method, and processing program
KR101926464B1 (en) Method for compiling program running on multi-core processor, task mapping method of multi-core processor and task scheduling method of reconfigurable processor
US6360360B1 (en) Object-oriented compiler mechanism for automatically selecting among multiple implementations of objects
KR101213275B1 (en) System and method for providing monolithic image for use in a wireless device
US10223260B2 (en) Compiler-generated memory mapping hints
CN103645888A (en) System and method for automatically building operation system
US20080271021A1 (en) Multi core optimizations on a binary using static and run time analysis
JP5489884B2 (en) Instruction execution device, instruction execution method, and instruction execution program
US8769498B2 (en) Warning of register and storage area assignment errors
US7480768B2 (en) Apparatus, systems and methods to reduce access to shared data storage
KR20060035077A (en) Data processing device and register allocation method using same
US9311065B2 (en) Data splitting for multi-instantiated objects
JP2005078474A (en) Optimizing compiler, compiling method, compiler program, and recording medium
KR101670916B1 (en) Method for storing function and system device using the same
JP5551868B2 (en) Executable file creation device
JP2008003882A (en) COMPILER PROGRAM, LIST VECTOR AREA ALLOCATION OPTIMIZATION METHOD, COMPILE PROCESSING DEVICE, AND COMPUTER-READABLE RECORDING MEDIUM CONTAINING COMPILER PROGRAM
JP6349837B2 (en) Scheduler apparatus, scheduling method therefor, arithmetic processing system, and computer program
JP5660386B2 (en) Memory allocation management device, memory allocation management method, memory allocation management program, and program creation system
JP5208589B2 (en) Compiling device, compiler, and compiling method
JP5525658B2 (en) Computer, resource usage calculation method, and resource usage calculation program
CN114296699A (en) An open industrial real-time control platform
JP7239827B2 (en) Information processing device and compiler program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110315

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121002

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: 20121030

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121112

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20151207

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees