JP4600700B2 - プログラムのメモリ空間への配置方法、装置、およびプログラム - Google Patents
プログラムのメモリ空間への配置方法、装置、およびプログラム Download PDFInfo
- Publication number
- JP4600700B2 JP4600700B2 JP2009064301A JP2009064301A JP4600700B2 JP 4600700 B2 JP4600700 B2 JP 4600700B2 JP 2009064301 A JP2009064301 A JP 2009064301A JP 2009064301 A JP2009064301 A JP 2009064301A JP 4600700 B2 JP4600700 B2 JP 4600700B2
- Authority
- JP
- Japan
- Prior art keywords
- function
- instruction code
- cache
- program
- belonging
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
- G06F8/4441—Reducing the execution time required by the program code
- G06F8/4442—Reducing the number of cache misses; Data prefetching
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Devices For Executing Special Programs (AREA)
Description
12 フロー情報作成部
13 フロー情報作成記憶部
14 近傍重み情報生成部
15 近傍重み表情報記憶部
16 関数配置決定部
17 関数配置指定情報記憶部
21 フロー情報
22 近傍重み表情報
23 関数配置指定情報
101〜104 ステップ
Claims (12)
- フロー情報作成手段と、近傍重み情報作成手段と、関数配置位置決定手段と、を有するプログラムメモリ空間配置装置において、複数の関数で構成されるプログラムの前記関数を、命令キャッシュを搭載したプロセッサシステムのメモリ空間に配置する方法であって、
前記フロー情報作成手段が、ターゲットプロセッサの命令キャッシュラインサイズをCSとして、各関数をサイズがCSの命令コードブロックに分割し、各関数Fの先頭から数えてX番目の命令コードブロックを(F,X)と表現した場合に、前記プログラムの実行時に前記命令コードブロックの呼出し関係をトレースすることにより、前記プログラムの実行時の命令コードブロック間の呼出し関係を時系列に表現した、(F,X)を識別名とするノードのフロー情報を作成することと、
前記近傍重み情報作成手段が、前記ノードのフロー情報に基づいて、識別名毎に前記フロー情報におけるその出現ノード毎の近傍内に、自分と異なる関数に属する各識別名の出現頻度を考慮した情報を、自分からみた他の各識別名の近傍重みとして求めることと、
前記関数配置位置決定手段が、前記近傍重み情報に基づいて、前記命令キャッシュの競合回数が少なくなるように、前記複数の関数をメモリ空間に配置することと、
を有する、プログラムメモリ空間配置方法。 - 前記近傍重み情報作成手段は、関数iに属する命令コードブロックで識別名がixの参照から、その後、同じixが出現するまでの間に最初に参照された関数j(ただしj≠i)に属する命令コードブロックで識別名がjyの参照までの区間をixjy、前記フロー情報全体に渡るその集合をRixjyとすると、ixjy区間毎について、区間内でi以外の関数に属する命令コードブロックで相異なる識別名を持つものが、jy自身を入れ計N種類存在した場合にスコアを1÷Nとし、Rixiyに含まれる全てのixjy区間のスコアの合計値を、前記近傍重みWixjyとして求める、請求項1に記載のプログラムメモリ空間配置方法。
- 前記関数配置位置決定手段は、個々の命令コードブロックの、他関数に属する全命令コードブロックに対する近傍重みの合計値を当該命令コードブロックのノード重みとし、さらに、各関数内の全命令コードブロックの前記ノード重みの合計として関数重みを求め、該関数重みの大きい関数から順にメモリへ空間の配置を行う、請求項1または2に記載のプログラムメモリ空間配置方法。
- 前記関数配置位置決定手段は、既に配置済みの関数に対し、現在配置の対象となる配置対象関数を、各キャッシュライン番号の先頭から配置した場合に、配置対象関数に属する各命令コードブロックixと、配置済み関数に属する命令コードブロックjyが同じキャッシュラインにロードされる場合に、前記近傍重みWixjyと前記近傍重みWjyixのうち、値の大きい方をキャッシュ競合スコアとして計上していくことで計算される、配置対象関数のキャッシュライン配置毎でのキャッシュ競合スコアのうち、最小のキャッシュ競合スコアを与えるキャッシュライン配置を、当該配置対象関数のキャッシュライン配置とする、請求項1から3のいずれか1項に記載のプログラムメモリ空間配置方法。
- 複数の関数で構成されるプログラムの前記関数を、命令キャッシュを搭載したプロセッサシステムのメモリ空間に配置する装置であって、
ターゲットプロセッサの命令キャッシュラインサイズをCSとして、各関数をサイズがCSの命令コードブロックに分割し、各関数Fの先頭から数えてX番目の命令コードブロックを(F,X)と表現した場合に、前記プログラムの実行時に前記命令コードブロックの呼出し関係をトレースすることにより、前記プログラムの実行時の命令コードブロック間の呼出し関係を時系列に表現した、(F,X)を識別名とするノードのフロー情報を作成するフロー情報作成手段と、
前記ノードのフロー情報に基づいて、識別名毎に前記フロー情報におけるその出現ノード毎の近傍内に、自分と異なる関数に属する各識別名の出現頻度を考慮した情報を、自分からみた他の各識別名の近傍重みとして求める近傍重み情報作成手段と、
前記近傍重み情報に基づいて、前記命令キャッシュの競合回数が少なくなるように、前記複数の関数をメモリ空間に配置する関数配置位置決定手段と、
を有する、プログラムメモリ空間配置装置。 - 前記近傍重み情報作成手段は、前記関数iに属する命令コードブロックで識別名がixの参照から、その後、同じixが出現するまでの間に最初に参照された関数j(ただしj≠i)に属する命令コードブロックで識別名がjyの参照までの区間をixjy、前記フロー情報全体に渡るその集合をRixjyとすると、ixjy区間毎について、区間内でi以外の関数に属する命令コードブロックで相異なる識別名を持つものが、jy自身を入れ計N種類存在した場合にスコアを1÷Nとし、Rixiyに含まれる全てのixjy区間のスコアの合計値を、前記近傍重みWixjyとして求める、請求項5に記載のプログラムメモリ空間配置装置。
- 前記関数配置位置決定手段は、個々の命令コードブロックの、他関数に属する全命令コードブロックに対する近傍重みの合計値を当該命令コードブロックのノード重みとし、さらに、各関数内の全命令コードブロックの前記ノード重みの合計として関数重みを求め、該関数重みの大きい関数から順にメモリ空間への配置を行う、請求項5または6に記載のプログラムメモリ空間配置装置。
- 前記関数配置位置決定手段は、既に配置済みの関数に対し、現在配置の対象となる配置対象関数を、各キャッシュライン番号の先頭から配置した場合に、配置対象関数に属する各命令コードブロックixと、配置済み関数に属する命令コードブロックjyが同じキャッシュラインにロードされる場合に、前記近傍重みWixjyと前記近傍重みWjyixのうち、値の大きい方をキャッシュ競合スコアとして計上していくことで計算される、配置対象関数のキャッシュライン配置毎でのキャッシュ競合スコアのうち、最小のキャッシュ競合スコアを与えるキャッシュライン配置を、当該配置対象関数のキャッシュライン配置とする、請求項5から7のいずれか1項に記載のプログラムメモリ空間配置装置。
- 複数の関数で構成されるプログラムの前記関数を、命令キャッシュを搭載したプロセッサシステムのメモリ空間に配置することをコンピュータに実行させるためのプログラムであって、
ターゲットプロセッサの命令キャッシュラインサイズをCSとして、各関数をサイズがCSの命令コードブロックに分割し、各関数Fの先頭から数えてX番目の命令コードブロックを(F,X)と表現した場合に、前記プログラムの実行時に前記命令コードブロックの呼出し関係をトレースすることにより、前記プログラムの実行時の命令コードブロック間の呼出し関係を時系列に表現した、(F,X)を識別名とするノードのフロー情報を作成する手順と、
前記ノードのフロー情報に基づいて、識別名毎に前記フロー情報におけるその出現ノード毎の近傍内に、自分と異なる関数に属する各識別名の出現頻度を考慮した情報を、自分からみた他の各識別名の近傍重みとして求める手順と、
前記近傍重み情報に基づいて、前記命令キャッシュの競合回数が少なくなるように、前記複数の関数をメモリ空間に配置する手順と、
をコンピュータに実行させるためのプログラム。 - 前記のフロー情報を作成する手順は、関数iに属する命令コードブロックで識別名がixの参照から、その後、同じixが出現するまでの間に最初に参照された関数j(ただしj≠i)に属する命令コードブロックで識別名がjyの参照までの区間をixjy、前記フロー情報全体に渡るその集合をRixjyとすると、ixjy区間毎について、区間内でi以外の関数に属する命令コードブロックで相異なる識別名を持つものが、jy自身を入れ計N種類存在した場合にスコアを1÷Nとし、Rixiyに含まれる全てのixjy区間のスコアの合計値を、前記近傍重みWixjyとして求める、請求項9に記載のプログラム。
- 前記のメモリ空間に配置する手順は、個々の命令コードブロックの、他関数に属する全命令コードブロックに対する近傍重みの合計値を当該命令コードブロックのノード重みとし、さらに、各関数内の全命令コードブロックの前記ノード重みの合計として関数重みを求め、該関数重みの大きい関数から順にメモリ空間への配置を行う、請求項9または10に記載のプログラム。
- 前記のメモリ空間に配置する手順は、既に配置済みの関数に対し、現在配置の対象となる配置対象関数を、各キャッシュライン番号の先頭から配置した場合に、配置対象関数に属する各命令コードブロックixと、配置済み関数に属する命令コードブロックjyが同じキャッシュラインにロードされる場合に、前記近傍重みWixjyと前記近傍重みWjyixのうち、値の大きい方をキャッシュ競合スコアとして計上していくことで計算される、配置対象関数のキャッシュライン配置毎でのキャッシュ競合スコアのうち、最小のキャッシュ競合スコアを与えるキャッシュライン配置を、当該配置対象関数のキャッシュライン配置とする、請求項9から11のいずれか1項に記載のプログラム。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009064301A JP4600700B2 (ja) | 2009-03-17 | 2009-03-17 | プログラムのメモリ空間への配置方法、装置、およびプログラム |
EP10753409.1A EP2410432A4 (en) | 2009-03-17 | 2010-03-03 | METHOD OF ARRANGING A PROGRAM WITH RESPECT TO MEMORY SPACE, DEVICE AND RECORDING MEDIUM |
PCT/JP2010/053431 WO2010106914A1 (ja) | 2009-03-17 | 2010-03-03 | プログラムのメモリ空間への配置方法、装置、および記録媒体 |
US13/256,788 US8732687B2 (en) | 2009-03-17 | 2010-03-03 | Arrangement method of programs to memory space, apparatus, and recording medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009064301A JP4600700B2 (ja) | 2009-03-17 | 2009-03-17 | プログラムのメモリ空間への配置方法、装置、およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010218218A JP2010218218A (ja) | 2010-09-30 |
JP4600700B2 true JP4600700B2 (ja) | 2010-12-15 |
Family
ID=42739577
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009064301A Expired - Fee Related JP4600700B2 (ja) | 2009-03-17 | 2009-03-17 | プログラムのメモリ空間への配置方法、装置、およびプログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US8732687B2 (ja) |
EP (1) | EP2410432A4 (ja) |
JP (1) | JP4600700B2 (ja) |
WO (1) | WO2010106914A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5808450B1 (ja) | 2014-04-04 | 2015-11-10 | ファナック株式会社 | マルチコアプロセッサを使用して逐次プログラムを実行する制御装置 |
WO2016113869A1 (ja) * | 2015-01-14 | 2016-07-21 | 三菱電機株式会社 | キャッシュメモリにおける関数の配置装置 |
CN113608886B (zh) * | 2021-06-30 | 2024-04-26 | 北京新氧科技有限公司 | 一种函数接入缓存方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001166948A (ja) * | 1999-12-07 | 2001-06-22 | Nec Corp | プログラム変換方法、プログラム変換装置及びプログラム変換プログラムを記憶した記憶媒体 |
JP2001216140A (ja) * | 2000-01-31 | 2001-08-10 | Nec Microsystems Ltd | 命令キャッシュ関数割付装置、割付最適化方法および割付最適化手順を記録した記録媒体 |
JP2003271394A (ja) * | 2002-03-19 | 2003-09-26 | Nec Electronics Corp | 関数と基本ブロックの配置割付装置および割付最適化プログラム |
JP2005266941A (ja) * | 2004-03-16 | 2005-09-29 | Fujitsu Ltd | キャッシュカラーリング方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1061449A4 (en) | 1998-02-04 | 2005-12-21 | Hitachi Ltd | METHOD OF MANAGING ANEMATORY DISK, DISC STRUCTURE AND MEMORY |
JP3178403B2 (ja) * | 1998-02-16 | 2001-06-18 | 日本電気株式会社 | プログラム変換方法、プログラム変換装置及びプログラム変換プログラムを記憶した記憶媒体 |
US6675374B2 (en) * | 1999-10-12 | 2004-01-06 | Hewlett-Packard Development Company, L.P. | Insertion of prefetch instructions into computer program code |
JP3698949B2 (ja) | 2000-03-28 | 2005-09-21 | Necマイクロシステム株式会社 | 命令キャッシュへの関数割付最適化装置、関数割付最適化方法及び関数割付最適化手順を記録した記録媒体 |
NO313399B1 (no) | 2000-09-14 | 2002-09-23 | Fast Search & Transfer Asa | Fremgangsmate til soking og analyse av informasjon i datanettverk |
US7917646B2 (en) * | 2002-12-19 | 2011-03-29 | Intel Corporation | Speculative distributed conflict resolution for a cache coherency protocol |
US20050149916A1 (en) * | 2003-12-29 | 2005-07-07 | Tatiana Shpeisman | Data layout mechanism to reduce hardware resource conflicts |
JP4701611B2 (ja) * | 2004-01-15 | 2011-06-15 | 株式会社日立製作所 | 動的変換方式のエミュレータ向けメモリ管理方法 |
JP2009064301A (ja) | 2007-09-07 | 2009-03-26 | Oyo Denshi:Kk | リムーバブルメモリユニット |
US9459851B2 (en) * | 2010-06-25 | 2016-10-04 | International Business Machines Corporation | Arranging binary code based on call graph partitioning |
-
2009
- 2009-03-17 JP JP2009064301A patent/JP4600700B2/ja not_active Expired - Fee Related
-
2010
- 2010-03-03 EP EP10753409.1A patent/EP2410432A4/en not_active Withdrawn
- 2010-03-03 US US13/256,788 patent/US8732687B2/en active Active
- 2010-03-03 WO PCT/JP2010/053431 patent/WO2010106914A1/ja active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001166948A (ja) * | 1999-12-07 | 2001-06-22 | Nec Corp | プログラム変換方法、プログラム変換装置及びプログラム変換プログラムを記憶した記憶媒体 |
JP2001216140A (ja) * | 2000-01-31 | 2001-08-10 | Nec Microsystems Ltd | 命令キャッシュ関数割付装置、割付最適化方法および割付最適化手順を記録した記録媒体 |
JP2003271394A (ja) * | 2002-03-19 | 2003-09-26 | Nec Electronics Corp | 関数と基本ブロックの配置割付装置および割付最適化プログラム |
JP2005266941A (ja) * | 2004-03-16 | 2005-09-29 | Fujitsu Ltd | キャッシュカラーリング方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2010218218A (ja) | 2010-09-30 |
EP2410432A1 (en) | 2012-01-25 |
EP2410432A4 (en) | 2014-12-03 |
US8732687B2 (en) | 2014-05-20 |
WO2010106914A1 (ja) | 2010-09-23 |
US20120042129A1 (en) | 2012-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Blelloch et al. | Effectively sharing a cache among threads | |
TWI442235B (zh) | 記憶體交易群組 | |
US20050246700A1 (en) | Compiler with cache utilization optimizations | |
JP2011527788A5 (ja) | ||
JP6432450B2 (ja) | 並列計算装置、コンパイル装置、並列処理方法、コンパイル方法、並列処理プログラムおよびコンパイルプログラム | |
JP2016207161A (ja) | 情報処理装置、コンパイル方法およびコンパイルプログラム | |
JP2011022993A (ja) | マルチパス動的プロファイリングのためのコンピュータに実行させる方法、システム及びコンピュータ・プログラム | |
CN103092742A (zh) | 程序日志记录优化方法和系统 | |
JP4600700B2 (ja) | プログラムのメモリ空間への配置方法、装置、およびプログラム | |
Chen et al. | Flow-guided file layout for out-of-core pathline computation | |
CN102789377B (zh) | 处理指令分组信息的方法和装置 | |
US7689976B2 (en) | Compiler apparatus and linker apparatus | |
JP6098294B2 (ja) | 情報秘匿化装置、情報秘匿化方法 | |
CN107977577A (zh) | 访存指令访问检测方法及装置 | |
US20140157248A1 (en) | Conversion apparatus, method of converting, and non-transient computer-readable recording medium having conversion program stored thereon | |
US6625806B1 (en) | Language processing method and language processing system improving use efficiency of cache memory | |
JP2009032198A (ja) | キャッシュカラーリング方法 | |
JP4554241B2 (ja) | キャッシュカラーリング方法 | |
JP2003271394A (ja) | 関数と基本ブロックの配置割付装置および割付最適化プログラム | |
JP2022140995A (ja) | 情報処理装置、コンパイルプログラムおよびコンパイル方法 | |
JP3698949B2 (ja) | 命令キャッシュへの関数割付最適化装置、関数割付最適化方法及び関数割付最適化手順を記録した記録媒体 | |
JP2016162008A (ja) | データ配置決定装置、データ配置決定プログラム及びデータ配置決定方法 | |
CN106250492B (zh) | 索引的处理方法及装置 | |
CN109753389A (zh) | 保证数据一致性的方法、装置、存储介质及服务器 | |
JP5849744B2 (ja) | 関数配置装置、関数配置プログラム、関数配置方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100802 |
|
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: 20100901 |
|
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: 20100914 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131008 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |