[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP5849744B2 - 関数配置装置、関数配置プログラム、関数配置方法 - Google Patents

関数配置装置、関数配置プログラム、関数配置方法 Download PDF

Info

Publication number
JP5849744B2
JP5849744B2 JP2012019838A JP2012019838A JP5849744B2 JP 5849744 B2 JP5849744 B2 JP 5849744B2 JP 2012019838 A JP2012019838 A JP 2012019838A JP 2012019838 A JP2012019838 A JP 2012019838A JP 5849744 B2 JP5849744 B2 JP 5849744B2
Authority
JP
Japan
Prior art keywords
storage medium
functions
function
execution
execution 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
JP2012019838A
Other languages
English (en)
Other versions
JP2013161110A (ja
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.)
Ricoh Co Ltd
Original Assignee
Ricoh 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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2012019838A priority Critical patent/JP5849744B2/ja
Publication of JP2013161110A publication Critical patent/JP2013161110A/ja
Application granted granted Critical
Publication of JP5849744B2 publication Critical patent/JP5849744B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Devices For Executing Special Programs (AREA)

Description

本発明は、関数配置装置、関数配置プログラム、関数配置方法に関し、特に、関数配置装置における関数配置の最適化に関する。
近年、CPU(Central Processing Unit)等のプロセッサの高速化が急速に進み、DRAM(Dynamic Random Access Memory)等の外部メモリのアクセス時間とプロセッサとの処理速度との差は拡大する一方である。このため、プログラムの実行速度は、プロセッサの処理速度の高速化にも関わらず必ずしも高速化することができないといった問題がある。そのため、一般に、多くのコンピュータには、高速に動作するプロセッサと、アクセス速度の遅いDRAM等の外部メモリの他に、これらの速度の差を埋めるために高速にアクセスできるバッファであるキャッシュメモリがプロセッサのコア内に組み込まれて設けられている。
そして、このように構成されたコンピュータにおいて、アクセス速度の遅いDRAM等の外部メモリ上にロードされた関数の一部をそのキャッシュメモリ内にコピーすることにより、高速なプログラム実行を実現することが可能となる。これは一般に、プログラムを実行すると、一度アクセスされた外部メモリ上の関数は近いうちに再度アクセスされる可能性が高いため、一度アクセスされた関数をすぐに読み出すことができるようにアクセス速度の速いキャッシュメモリにコピーしておくことで効率的にプログラムを実行することができることによる。
しかしながら、高速なキャッシュ用のメモリはコストがかかるため、そのサイズは外部メモリと比較して小さくせざるを得ない。従って、実行するプログラムのどの部分をキャッシュに格納するかがプログラムを高速に実行する上できわめて重要となる。そこで、プログラムの実行速度を向上させるための技術として、プログラムの実行をプロファイリングし、実行頻度の高い関数同士がキャッシュコンフリクトを起こさないように、関数のアドレス配置をずらすようにプログラムをコンパイルし直し、キャッシュヒット率を向上させる技術が考案され、既に知られている(例えば、特許文献1)。
特許文献1に開示された技術によれば、実行頻度の高い関数同士が同じキャッシュライン上に配置されることを防ぐことができるので、キャッシュコンフリクトの発生を防止し、プログラムの実行速度を向上させることができる。
しかしながら、特許文献1に記載されている技術は、キャッシュメモリが組み込まれたプロセッサに関する技術であるため、例えば、安価なローエンドのマイクロコンピュータ(以下、「マイコン」とする)等のようにキャッシュメモリを備えていないプロセッサにおいては、特許文献1に記載されたような技術を適用することはできない。そこで、このようなキャッシュメモリを備えていないマイコン等においては、キャッシュメモリの代わりに、DRAMよりも高速にアクセスすることができるSRAM(Static Random Access Memory)によって構成されたメモリを備えたものがある。このようなマイコンにおいては、外部メモリとしてアクセス速度の遅いDRAMとアクセス速度の速いSRAMとを備え、その両方に関数が分配されて配置される。
このように、キャッシュメモリを備えず、外部メモリとしてアクセス速度の速いSRAMとアクセス速度の遅いDRAMの両方を備えるプロセッサにおいて、プログラムの実行速度を向上させるためには、実行回数の多い関数や実行時間の長い関数をアクセス速度の速いSRAMのメモリに配置することが望ましい。しかしながら、現状では、ユーザが手作業で関数配置を決定する必要があり効率よく行えないという問題がある。
尚、このような問題は、DRAM及びSRAMによって構成されるメモリに限るものではなく、機能とコストとの兼ね合いから、アクセス速度の速いメモリとアクセス速度の遅いメモリとで外部メモリを構成するような場合に、同様に問題となり得る。
本発明は、このような課題を解決するためになされたものであり、プロセッサからの読み込み速度が異なる複数種類のメモリを搭載したシステムにおいてプログラムを実行する場合に、ユーザに手間をかけることなくプログラムの実行速度を向上させることを目的とする。
上記課題を解決するために、第一の記憶媒体及び前記第一の記憶媒体よりもプロセッサからの読み込み速度が遅い第二の記憶媒体の何れかに複数の関数が夫々読み出されて実行される実行プログラムにおける、前記複数の関数の配置順を決定する関数配置装置であって、前記複数の関数を記述するソースコードに基づいて前記実行プログラムを生成する実行プログラム生成部と、生成された前記実行プログラムに含まれる前記複数の関数夫々のデータサイズを算出するデータサイズ算出部と、生成された前記実行プログラムに含まれる前記複数の関数夫々の実行時間を算出する実行時間算出部とを含み、前記実行プログラム生成部は、前記データサイズ、前記実行時間、前記第一の記憶媒体の記憶容量、前記第一の記憶媒体及び前記第二の記憶媒体夫々の読み込み速度に基づいて前記複数の関数の前記実行プログラム内における配置順を決定することにより、前記実行プログラムが実行される際の、前記複数の関数夫々の前記第一の記憶媒体及び前記第二の記憶媒体への読み出し状態を決定することを特徴とする。
また、本発明の他の態様は、第一の記憶媒体及び前記第一の記憶媒体よりもプロセッサからの読み込み速度が遅い第二の記憶媒体の何れかに複数の関数が夫々読み出されて実行される実行プログラムにおける、前記複数の関数の配置順を決定する関数配置プログラムであって、前記複数の関数を記述するソースコードに基づいて前記実行プログラムを生成するステップと、生成された前記実行プログラムに含まれる前記複数の関数夫々のデータサイズを算出するステップと、生成された前記実行プログラムに含まれる前記複数の関数夫々の実行時間を算出するステップと、前記データサイズ、前記実行時間、前記第一の記憶媒体の記憶容量、前記第一の記憶媒体及び前記第二の記憶媒体夫々の読み込み速度に基づいて前記複数の関数の前記実行プログラム内における配置順を決定することにより、前記実行プログラムが実行される際の、前記複数の関数夫々の前記第一の記憶媒体及び前記第二の記憶媒体への読み出し状態を決定するステップと、を実行させることを特徴とする。
また、本発明の更に他の態様は、第一の記憶媒体及び前記第一の記憶媒体よりもプロセッサからの読み込み速度が遅い第二の記憶媒体の何れかに複数の関数が夫々読み出されて実行される実行プログラムにおける、前記複数の関数の配置順を決定する関数配置方法であって、前記複数の関数を記述するソースコードに基づいて前記実行プログラムを生成し、生成された前記実行プログラムに含まれる前記複数の関数夫々のデータサイズを算出し、生成された前記実行プログラムに含まれる前記複数の関数夫々の実行時間を算出し、前記データサイズ、前記実行時間、前記第一の記憶媒体の記憶容量、前記第一の記憶媒体及び前記第二の記憶媒体夫々の読み込み速度に基づいて前記複数の関数の前記実行プログラム内における配置順を決定することにより、前記実行プログラムが実行される際の、前記複数の関数夫々の前記第一の記憶媒体及び前記第二の記憶媒体への読み出し状態を決定することを特徴とする。
本発明によれば、プロセッサからの読み込み速度が異なる複数種類のメモリを搭載したシステムにおいてプログラムを実行する場合に、ユーザに手間をかけることなくプログラムの実行速度を向上させることができる。
本発明の実施形態に係る関数配置装置のハードウェア構成を模式的に示すブロック図である。 本発明の実施形態に係る関数配置装置が各関数をSRAMかDRAMの何れかに配置する際に参照するRAM情報の一例を示す図である。 本発明の実施形態に係る関数配置装置が生成する関数情報の一例を示す図である。 本発明の実施形態に係る関数配置装置が関数配置を最適化して実行プログラムを生成する際の処理について説明するためのフローチャートである。 本発明の実施形態に係る関数配置装置が関数の総実行時間の合計が最小になるように関数配置を最適化する際の処理を説明するためのフローチャートである。 本発明の実施形態に係る関数配置装置が関数配置を最適化した結果を示す図である。
以下、図面を参照して、本発明の実施形態を詳細に説明する。本実施形態においては、プロセッサからの読み込み速度の速いSRAM(Static Random Access Memory)と読み込み速度の遅いDRAM(Dynamic Random Access Memory)とを備えるマイクロコンピュータ(以下、「マイコン」とする)等のシステムにおいてCPU(Central Processing Unit)等のプロセッサによって実行プログラムを実行する場合に、その実行プログラムに含まれる関数の配置を自動的に決定する関数配置装置を例として説明する。即ち、本実施形態において、SRAMは第一の記憶媒体として機能し、DRAMは第二の記憶媒体として機能する。
このような関数配置装置において、本実施形態に係る要旨の一つは、プロセッサからの読み込み速度の速いSRAMと読み込み速度の遅いDRAMとを備えるシステムにおいてプロセッサによって実行プログラムを実行する場合に、実行時間の長い関数を読み込み速度の速いSRAMにデータ許容量の最大限度で自動的に配置することにある。
従って、本実施形態に係る関数配置装置によれば、プログラムの実行時間を最短にするように最適な関数配置を自動的に決定することができるので、ユーザに手間をかけることなくプログラムの実行速度を向上させることができる。以下、詳細に説明する。
図1は、本実施形態に係る関数配置装置1の機能構成を模式的に示すブロック図である。図1に示すように、本実施形態に係る関数配置装置1は、コンパイラ11、リンカ12、プログラム実行部13、プロファイラ14を有する。コンパイラ11は、ソースコード2をコンパイルしてオブジェクトファイル3を生成する。生成されたオブジェクトファイル3には、本実施形態に係る関数配置装置1により配置されるべき関数が含まれる。
リンカ12は、コンパイラ11で生成されたオブジェクトファイル3をリンクして各関数をSRAM又はDRAMの何れかに配置することにより実行プログラム4を生成する。即ち、ここでは、コンパイラ11及びリンカ12は、実行プログラム生成部として機能する。また、リンカ12は、コンパイラ11で生成されたオブジェクトファイル3をリンクする際に、各関数のデータサイズを算出する。即ち、ここでは、リンカ12は、データサイズ算出部として機能する。尚、各関数のデータサイズは、リンカ12の他、専用のツールによって算出されるようにしても良い。そして、リンカ12は、算出した関数のデータサイズ、後述するRAM情報、プロファイラ14が生成したプロファイル情報5に基づいて、各関数をSRAMかDRAMの何れかに配置するかを決定する。
プログラム実行部13は、リンカ12で生成された実行プログラム4を実行する。プロファイラ14は、プログラム実行部13によるプログラム実行時の関数呼び出しをプロファイリングしてプロファイル情報5を生成する。ここで、プロファイル情報5には、各関数をDRAMに配置した場合の関数毎の総実行時間が含まれる。尚、プロファイラ14により生成されたプロファイル情報5は、図示しない記録媒体に記録されてリンカ12によるオブジェクトファイル3のリンクの際に参照される。
尚、プロファイラ14は、実行プログラム中の命令コードを1命令ずつ解釈しながら関数実行時間等を監視するソフトウェアであり、例えば、DBA(Dynamic Binary Analysis)ツール等のソフトウェアが知られている。以下では、リンカ12により算出された関数のデータサイズと、プロファイル情報5に含まれる総実行時間とをまとめて関数情報とする。
次に、本実施形態に係る関数配置装置1が各関数をSRAMかDRAMの何れかに配置する際に参照するRAM情報について図2を参照して説明する。図2は、本実施形態に係る関数配置装置1が各関数をSRAMかDRAMの何れかに配置する際に参照するRAM情報の一例を示す図である。図2に示すように、本実施形態に係る関数配置装置1が各関数をSRAMかDRAMの何れかに配置する際に参照するRAM情報は、メモリデバイス毎に、開始アドレス及び終端アドレス、読み込み速度、メモリサイズが対応付けられてテーブルとして関数配置装置1に管理されている。
「開始アドレス」及び「終端アドレス」は、関数を配置することが可能なアドレス領域を示している。「読み込み速度」は、プロセッサがメモリデバイスからデータを読み出す際の速度であり、図2に示す例では、4バイト当たりのデータを読み出す際の所要時間を示している。「メモリサイズ」は、各メモリデバイスの関数配置用に割り当てられた領域のデータサイズを示している。
次に、本実施形態に係る関数配置装置1が生成する関数情報について図3を参照して説明する。図3は、本実施形態に係る関数配置装置1が生成する関数情報の一例を示す図である。図3に示すように、本実施形態に係る関数配置装置1が生成する関数情報は、関数名毎に、関数のデータサイズと総実行時間とが対応付けられてテーブルとして関数配置装置1に管理されている。
また、総実行時間には、「SRAMに配置された場合の総実行時間」と「DRAMに配置された場合の総実行時間」とがあり、「DRAMに配置された場合の総実行時間」は、プロファイラ14が生成するプロファイル情報5に含まれる情報であって、上述したように、各関数をDRAMに配置した場合の関数毎の総実行時間である。また、「SRAMに配置された場合の総実行時間」は、図2に示したSRAMとDRAMとの読み込み速度の比により「DRAMに配置された場合の総実行時間」から算出される値である。従って、本実施形態においては、「SRAMに配置された場合の総実行時間」は、「DRAMに配置された場合の総実行時間」の半分となる。即ち、ここでは、プロファイラ14は、実行時間算出部として機能し、「SRAMに配置された場合の総実行時間」は、第一の実行時間を表し、「DRAMに配置された場合の総実行時間」は、第二の実行時間を表す。
次に、本実施形態に係る関数配置装置1が関数配置を最適化して実行プログラムを生成する際の処理について図4を参照して説明する。図4は、本実施形態に係る関数配置装置1が関数配置を最適化して実行プログラムを生成する際の処理について説明するためのフローチャートである。図4に示すように、本実施形態に係る関数配置装置1が関数配置を最適化して実行プログラムを生成する際にはまず、コンパイラ11がソースコード2を受け取ってコンパイルを行い、オブジェクトファイル3を生成し(S401)、生成したオブジェクトファイル3を関数配置装置1に備えられている記録媒体や外部記録媒体に記録する。即ち、ここでは、関数配置装置1に備えられている記録媒体や外部記録媒体は、関数記憶部として機能する。
そして、リンカ12がS401で生成されたオブジェクトファイル3をリンクすることにより各関数のデータサイズを算出し(S402)、後述するRAM情報を参照して生成した関数をメモリに配置することにより実行プログラム4を生成する(S403)。このとき、生成された関数はすべてDRAMに配置される。実行プログラム4が生成されると、プログラム実行部13が生成された実行プログラム4を実行すると同時に、プロファイラ14はプログラム実行部13によるプログラム実行時の関数呼び出しをプロファイリングしてプロファイル情報5を生成する(S404)。尚、ここで生成されたプロファイル情報5は、関数配置装置1に備えられている記録媒体や外部記録媒体に記録される。
次に、リンカ12は、S401で生成されたオブジェクトファイル3を再度リンクすることにより、S402で算出されたデータサイズ、S404で生成されたプロファイル情報5、図2において説明したRAM情報に基づいて、関数配置を最適化して実行プログラム4を生成し(S405)、本実施形態に係る関数配置装置1は、関数配置を最適化して実行プログラムを生成する際の処理を終了する。
尚、S405の処理において、リンカ12は、プログラム実行部13により実行プログラム4を実行した際の関数の総実行時間が最小になるように、生成した複数の関数をSRAMとDRAMとに配置する。また、S405の処理において、S401で生成されたオブジェクトファイル3が関数配置装置1から読み出し可能な状態になければ、コンパイラ11が再度ソースコード2を受け取ってコンパイルし、オブジェクトファイル3を再び生成するようにしても良い。
次に、本実施形態に係る関数配置装置1が関数の総実行時間の合計が最小になるように関数配置を最適化する際の処理、つまり、図4におけるS405の処理の詳細について図5を参照して説明する。図5は、本実施形態に係る関数配置装置1が関数の総実行時間の合計が最小になるように関数配置を最適化する際の処理を説明するためのフローチャートである。
図5に示すように、本実施形態に係る関数配置装置1が関数の総実行時間の合計が最小になるように関数配置を最適化する際にはまず、リンカ12は、データサイズの合計がSRAM上の関数配置用に割り当てられた領域のサイズに収まるように、生成した複数の関数から任意に選択する(S501)。尚、ここでは、SRAM上の関数配置用に割り当てられた領域のサイズと、選択された関数のデータサイズの合計との差が、選択されなかった他のどの関数のデータサイズよりも大きくならないように選択される。
リンカ12は、S501で選択した関数について、図3を参照してSRAMに配置された場合の総実行時間の合計T1を算出し、また、S501で選択しなかった関数について、図3を参照してDRAMに配置された場合の総実行時間の合計T2を算出し、T1とT2の総和を関数の総実行時間の合計Tとして算出する(S502)。即ち、S502では、マイコンにおけるプロセッサによる実行プログラム4の実行時間が算出される。
リンカ12は、取り得る全組み合わせについて(S503/NO、S504)、S501及びS502の処理と同様にして関数を選択して、関数の総実行時間の合計Tを算出する。リンカ12は、全組み合わせについて関数の総実行時間の合計Tを算出し終えたら(S503/YES)、関数の総実行時間の合計Tが最小となったときの組み合わせを最適な関数配置とする(S505)。そして、リンカ12は、その配置に従って関数をSRAMとDRAMとに配置して実行プログラムを生成し(S506)、本実施形態に係る関数配置装置1が関数の総実行時間の合計が最小になるように関数配置を最適化する際の処理を終了する。
このようにして関数配置の最適化を行った結果、図6に示すように、本実施形態においては、DRAMには、「FuncB」が配置され、SRAMには、「FuncA」、「FuncC」、「FuncD」、「FuncE」が配置され、そのときの関数の総実行時間Tの合計は、「23010(ms)」となる。
以上、説明したように、本実施形態に係る関数配置装置1は、プロセッサからの読み込み速度の速いSRAMと読み込み速度の遅いDRAMとを備えるシステムにおいてプロセッサによりプログラムを実行する場合に、実行時間の長い関数を読み込み速度の速いSRAMにデータ許容量の最大限度で自動的に配置することができる。
従って、本実施形態に係る関数配置装置1によれば、プログラムの実行時間を最短にするように最適な関数配置を自動的に決定することができるので、ユーザに手間をかけることなくプログラムの実行速度を向上させることができる。
尚、本実施形態においては、DRAM及びSRAMによって構成されるマイコンについて説明したが、DRAM及びSRAMによって構成されるマイコンに限られるものではなく、プロセッサからの読み込み速度の速いメモリと読み込み速度の遅いメモリとで外部メモリを構成するようなマイコンであっても良い。
また、本実施形態においては、DRAMとSRAMの2種類のメモリを備えるマイコンについて説明したが、更に、TCM(Tightly Coupled Memory)等のSRAMよりもプロセッサからの読み込み速度の速いメモリや、DRAMよりも読み込み速度の遅いメモリを備えるマイコンであっても良い。このような場合であっても、本実施形態において説明したように、関数の総実行時間の合計が最小になるように関数を配置することにより、同様の作用効果を得ることができる。
1 関数配置装置
2 ソースコード
3 オブジェクトファイル
4 実行プログラム
5 プロファイル情報
11 コンパイラ
12 リンカ
13 プログラム実行部
14 プロファイラ
特開2003−271394号公報

Claims (9)

  1. 第一の記憶媒体及び前記第一の記憶媒体よりもプロセッサからの読み込み速度が遅い第二の記憶媒体の何れかに複数の関数が夫々読み出されて実行される実行プログラムにおける、前記複数の関数の配置順を決定する関数配置装置であって、
    前記複数の関数を記述するソースコードに基づいて前記実行プログラムを生成する実行プログラム生成部と、
    生成された前記実行プログラムに含まれる前記複数の関数夫々のデータサイズを算出するデータサイズ算出部と、
    生成された前記実行プログラムに含まれる前記複数の関数夫々の実行時間を算出する実行時間算出部と、
    を含み、
    前記実行プログラム生成部は、前記データサイズ、前記実行時間、前記第一の記憶媒体の記憶容量、前記第一の記憶媒体及び前記第二の記憶媒体夫々の読み込み速度に基づいて前記複数の関数の前記実行プログラム内における配置順を決定することにより、前記実行プログラムが実行される際の、前記複数の関数夫々の前記第一の記憶媒体及び前記第二の記憶媒体への読み出し状態を決定することを特徴とする関数配置装置。
  2. 前記実行時間算出部は、前記実行プログラムに含まれる前記複数の関数夫々が前記第二の記憶媒体に読み出されて実行された際の前記複数の関数夫々の実行時間である第二の実行時間を算出することを特徴とする請求項1に記載の関数配置装置。
  3. 前記実行時間算出部は、前記第一の記憶媒体及び前記第二の記憶媒体夫々の読み込み速度の比に基づいて前記第二の実行時間から、前記実行プログラムに含まれる前記複数の関数夫々が前記第一の記憶媒体に読み出されて実行された際の前記複数の関数夫々の実行時間である第一の実行時間を算出することを特徴とする請求項2に記載の関数配置装置。
  4. 前記実行プログラム生成部は、前記ソースコードに基づいて前記複数の関数を生成し、
    生成された前記複数の関数を記憶する関数記憶部を備えることを特徴とする請求項1乃至3いずれか1項に記載の関数配置装置。
  5. 前記実行プログラム生成部は、前記複数の関数夫々の実行時間の合計が最も短くなるように前記複数の関数の前記実行プログラム内における配置順を決定することにより、前記実行プログラムが実行される際の、前記複数の関数夫々の前記第一の記憶媒体及び前記第二の記憶媒体への読み出し状態を決定することを特徴とする請求項1乃至4いずれか1項に記載の関数配置装置。
  6. 前記実行プログラム生成部は、前記データサイズに基づいて前記第一の記憶媒体の記憶容量の上限に可能な限り近くなるように前記第一の実行時間の長い順に前記複数の関数を前記第一の記憶媒体に配置し、前記複数の関数のうち前記第一の記憶媒体に配置されなかった関数を前記第二の記憶媒体に配置するように、前記複数の関数の前記実行プログラム内における配置順を決定することにより、前記実行プログラムが実行される際の、前記複数の関数夫々の前記第一の記憶媒体及び前記第二の記憶媒体への読み出し状態を決定することを特徴とする請求項に記載の関数配置装置。
  7. 前記配置順は、前記複数の関数を前記第一の記憶媒体及び前記第二の記憶媒体の何れかに配置する際の配置可能な全配置順の中で最も実行時間が短くなるような配置順であることを特徴とする請求項1乃至6いずれか1項に記載の関数配置装置。
  8. 第一の記憶媒体及び前記第一の記憶媒体よりもプロセッサからの読み込み速度が遅い第二の記憶媒体の何れかに複数の関数が夫々読み出されて実行される実行プログラムにおける、前記複数の関数の配置順を決定する関数配置プログラムであって、
    前記複数の関数を記述するソースコードに基づいて前記実行プログラムを生成するステップと、
    生成された前記実行プログラムに含まれる前記複数の関数夫々のデータサイズを算出するステップと、
    生成された前記実行プログラムに含まれる前記複数の関数夫々の実行時間を算出するステップと、
    前記データサイズ、前記実行時間、前記第一の記憶媒体の記憶容量、前記第一の記憶媒体及び前記第二の記憶媒体夫々の読み込み速度に基づいて前記複数の関数の前記実行プログラム内における配置順を決定することにより、前記実行プログラムが実行される際の、前記複数の関数夫々の前記第一の記憶媒体及び前記第二の記憶媒体への読み出し状態を決定するステップと、
    を実行させることを特徴とする関数配置プログラム。
  9. 第一の記憶媒体及び前記第一の記憶媒体よりもプロセッサからの読み込み速度が遅い第二の記憶媒体の何れかに複数の関数が夫々読み出されて実行される実行プログラムにおける、前記複数の関数の配置順を決定する関数配置方法であって、
    前記複数の関数を記述するソースコードに基づいて前記実行プログラムを生成し、
    生成された前記実行プログラムに含まれる前記複数の関数夫々のデータサイズを算出し、
    生成された前記実行プログラムに含まれる前記複数の関数夫々の実行時間を算出し、
    前記データサイズ、前記実行時間、前記第一の記憶媒体の記憶容量、前記第一の記憶媒体及び前記第二の記憶媒体夫々の読み込み速度に基づいて前記複数の関数の前記実行プログラム内における配置順を決定することにより、前記実行プログラムが実行される際の、前記複数の関数夫々の前記第一の記憶媒体及び前記第二の記憶媒体への読み出し状態を決定することを特徴とする関数配置方法。
JP2012019838A 2012-02-01 2012-02-01 関数配置装置、関数配置プログラム、関数配置方法 Expired - Fee Related JP5849744B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012019838A JP5849744B2 (ja) 2012-02-01 2012-02-01 関数配置装置、関数配置プログラム、関数配置方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012019838A JP5849744B2 (ja) 2012-02-01 2012-02-01 関数配置装置、関数配置プログラム、関数配置方法

Publications (2)

Publication Number Publication Date
JP2013161110A JP2013161110A (ja) 2013-08-19
JP5849744B2 true JP5849744B2 (ja) 2016-02-03

Family

ID=49173341

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012019838A Expired - Fee Related JP5849744B2 (ja) 2012-02-01 2012-02-01 関数配置装置、関数配置プログラム、関数配置方法

Country Status (1)

Country Link
JP (1) JP5849744B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016157826A1 (ja) 2015-03-30 2016-10-06 日本電気株式会社 データ配置先決定装置、方法およびプログラム記録媒体

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000003268A (ja) * 1998-06-11 2000-01-07 Mitsubishi Electric Corp メモリマップ最適化決定方法
JP2011076516A (ja) * 2009-10-01 2011-04-14 Seiko Epson Corp 配置指示情報更新プログラム

Also Published As

Publication number Publication date
JP2013161110A (ja) 2013-08-19

Similar Documents

Publication Publication Date Title
JP5473768B2 (ja) マルチパス動的プロファイリングのためのコンピュータに実行させる方法、システム及びコンピュータ・プログラム
CN104412240B (zh) 用于存储器管理的系统和方法
US9058192B2 (en) Handling pointers in program code in a system that supports multiple address spaces
JP5707265B2 (ja) 演算制御装置及び演算制御方法並びにプログラム、並列プロセッサ
JP6432333B2 (ja) 情報処理装置、データ処理方法、およびデータ処理プログラム
KR102205899B1 (ko) 메모리의 뱅크 충돌을 방지하기 위한 방법 및 장치
US11226798B2 (en) Information processing device and information processing method
JP5849744B2 (ja) 関数配置装置、関数配置プログラム、関数配置方法
JP2012247827A (ja) プログラム生成装置、プログラム生成方法及びプログラム
KR101603202B1 (ko) 이기종 멀티프로세서 시스템 온 칩에서의 rpc 데이터 배치 방법 및 장치
JP5489884B2 (ja) 命令実行装置、命令実行方法、及び命令実行プログラム
JP5278538B2 (ja) コンパイルシステム、コンパイル方法およびコンパイルプログラム
JP4592367B2 (ja) プログラムセクションレイアウト方法およびレイアウト処理プログラム
KR102574449B1 (ko) 데이터 처리 방법 및 장치
US10353708B2 (en) Strided loading of non-sequential memory locations by skipping memory locations between consecutive loads
JP5687603B2 (ja) プログラム変換装置、プログラム変換方法、および変換プログラム
US10055359B2 (en) Pinning objects in multi-level memory hierarchies
JP6464980B2 (ja) プログラム、情報処理装置及び情報処理方法
JP6519228B2 (ja) データ配置決定装置、データ配置決定プログラム及びデータ配置決定方法
JP4870956B2 (ja) 組み込み用プログラム生成方法、組み込み用プログラム開発システム、及び情報テーブル部
US20110320781A1 (en) Dynamic data synchronization in thread-level speculation
EP2434409B1 (en) Processor and method thereof
JP2014010754A (ja) プログラム開発支援装置、及びプログラム開発支援ツール
US20240193424A1 (en) Computer-readable recording medium storing distributed learning program, distributed learning method, and distributed learning device
WO2023182172A1 (ja) 情報処理方法、プログラムおよび学習方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150119

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20150122

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150831

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150901

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151009

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151117

R151 Written notification of patent or utility model registration

Ref document number: 5849744

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees