JP2009075874A - プログラム変換装置、プログラム変換方法およびプログラム変換プログラム - Google Patents
プログラム変換装置、プログラム変換方法およびプログラム変換プログラム Download PDFInfo
- Publication number
- JP2009075874A JP2009075874A JP2007244312A JP2007244312A JP2009075874A JP 2009075874 A JP2009075874 A JP 2009075874A JP 2007244312 A JP2007244312 A JP 2007244312A JP 2007244312 A JP2007244312 A JP 2007244312A JP 2009075874 A JP2009075874 A JP 2009075874A
- Authority
- JP
- Japan
- Prior art keywords
- program
- branch
- conversion
- trace information
- instruction
- 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
Links
Images
Classifications
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Advance Control (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
【解決手段】リンカ13により、変換前オブジェクトプログラム21とシミュレータ用オブジェクトプログラム22からシミュレータ用実行形式プログラム23を生成する。シミュレータ15により、シミュレータ用実行形式プログラム23を実行して分岐トレース情報27を取得する。バイナリプログラム変換ツール11により、分岐トレース情報27と分岐ペナルティテーブル28に基づいて、変換前オブジェクトプログラム21の成立予測ビットを書き換えた変換後オブジェクトプログラム29を生成する。リンカ14により、変換後オブジェクトプログラム29と実機用オブジェクトプログラム30から実機用実行形式プログラム31を生成する。
【選択図】図2
Description
まず、この発明の実施の形態にかかるプログラム変換装置のハードウェア構成について説明する。図1は、この発明の実施の形態にかかるプログラム変換装置のハードウェア構成を示すブロック図である。
次に、この発明の実施の形態にかかるプログラム変換装置の機能的構成について説明する。図2は、この発明の実施の形態にかかるプログラム変換装置の機能的構成を示す図である。図2に示すように、プログラム変換装置は、バイナリプログラム変換ツール11、分岐トレースマージツール12、リンカ13,14およびシミュレータ15を備えている。リンカ13は、変換前オブジェクトプログラム21とシミュレータ用オブジェクトプログラム22をリンクして、シミュレータ用実行形式プログラム23を生成する。
次に、この発明の実施の形態にかかるプログラム変換装置の処理手順について説明する。図3は、この発明の実施の形態にかかるプログラム変換装置の処理手順を示す図である。図3に示すように、プログラム変換処理が開始されると、まず、リンカ13により、変換前オブジェクトプログラム21とシミュレータ用オブジェクトプログラム22をリンクして、シミュレータ用実行形式プログラム23を作成する(ステップS301)。
図4は、バイナリプログラム変換ツールの構成を示す図である。図4に示すように、バイナリプログラム変換ツール11は、算出処理部41、判定処理部42、入力部43、位置処理部44、書き換え処理部45、出力部46および統計情報出力部47を備えている。算出処理部41は、分岐トレース情報27と分岐ペナルティテーブル28に基づいて、条件付き分岐命令ごとに総分岐ペナルティの差分を算出する。総分岐ペナルティの差分は、成立予測ビットの書き換えが必要であるか否かの判定を行う際の指標として用いられる。
図11は、位置処理部によるアドレス特定処理を説明する図である。図11に示すように、シミュレータ15でシミュレータ用実行形式プログラム(a.abs)23を実行することにより分岐トレース情報27が得られる。ここで、アドレス0x00200030の関数名funcS1(分岐トレース情報27に☆印で示す)の分岐命令について、変換前オブジェクトプログラム(a.obj)21におけるアドレスを特定する場合を例にして説明する。
γ=α−β ・・・(1)
図12は、成立予測ビットの書き換え処理手順の説明に用いられる分岐ペナルティテーブルを示す図である。図12に示すように、分岐すると予測しているとき(フラグ:T)に、分岐しなかった場合の分岐ペナルティをP(T:n)とし、分岐した場合の分岐ペナルティをP(T:t)とする。また、分岐しないと予測しているとき(フラグ:F)に、分岐しなかった場合の分岐ペナルティをP(F:n)とし、分岐した場合の分岐ペナルティをP(F:t)とする。
P(T)=P(T:n)×Pk(n)+P(T:t)×Pk(t) ・・・(2)
P(F)=P(F:n)×Pk(n)+P(F:t)×Pk(t) ・・・(3)
δPk=P(F)−P(T) ・・・(4)
図15は、分岐トレース情報の結合処理手順を示す図である。図15に示すように、分岐トレース情報の結合処理が開始されると、まず、分岐トレースマージツール12により、実行経路ごとの分岐トレース情報24,25,26(図2参照)を読み込む(ステップS1501)。次いで、分岐トレースマージツール12により、読み込んだ複数の分岐トレース情報をマージする。
C=ΣCm×BRm (m=1、2、…、j) ・・・(5)
C=BR1+2×BR2 ・・・(6)
組み込みシステムを搭載する機器の場合、実機環境で分岐トレース情報を取得することもできる。図17は、分岐トレース情報を実機環境から取得する装置の機能的構成を示す図である。図17に示すように、この装置は、ICEやJ−TAGなどのトレース取得専用回路51および分岐トレース情報加工ソフトウェア52を備えている。トレース取得専用回路51および分岐トレース情報加工ソフトウェア52は、分岐トレース情報取得手段としての機能を有する。
12 分岐トレースマージツール
13、14 リンカ
15 シミュレータ
21 変換前オブジェクトプログラム
22 シミュレータ用オブジェクトプログラム
23 シミュレータ用実行形式プログラム
27 分岐トレース情報
29 変換後オブジェクトプログラム
31 実機用実行形式プログラム
44 位置処理部
Claims (10)
- 変換前オブジェクトプログラムを用いて生成された第1の実行形式プログラムを実行して、条件付き分岐命令の分岐成立状況に関する分岐トレース情報を取得する分岐トレース情報取得手段と、
前記分岐トレース情報取得手段により取得した分岐トレース情報に基づいて、前記変換前オブジェクトプログラムの対応する条件付き分岐命令の成立予測ビットを書き換えた変換後オブジェクトプログラムを生成するバイナリプログラム変換手段と、
前記バイナリプログラム変換手段により変換された変換後オブジェクトプログラムを用いて第2の実行形式プログラムを生成する実行形式プログラム生成手段と、
を備えることを特徴とするプログラム変換装置。 - 前記条件付き分岐命令の複数の実行経路のそれぞれから得られる分岐トレース情報を結合する分岐トレースマージ手段、
をさらに備えることを特徴とする請求項1に記載のプログラム変換装置。 - 前記バイナリプログラム変換手段は、さらに、分岐予測が外れたときの分岐ペナルティに基づいて、前記変換前オブジェクトプログラムの条件付き分岐命令の成立予測ビットを書き換えることを特徴とする請求項1または2に記載のプログラム変換装置。
- 条件付き分岐命令の分岐成立状況に関する分岐トレース情報に基づいて、変換前オブジェクトプログラムの対応する条件付き分岐命令の成立予測ビットを書き換えた変換後オブジェクトプログラムを生成する第1のステップと、
前記変換後オブジェクトプログラムを用いて実行形式プログラムを生成する第2のステップと、
を含むことを特徴とするプログラム変換方法。 - 前記第1のステップにおいて、前記分岐トレース情報として、前記条件付き分岐命令の複数の実行経路のそれぞれから得られる分岐トレース情報を結合した情報を用いることを特徴とする請求項4に記載のプログラム変換方法。
- 前記第1のステップにおいて、前記分岐トレース情報として、前記変換前オブジェクトプログラムとシミュレータ用オブジェクトプログラムをリンクしてシミュレータ用実行形式プログラムを生成し、該シミュレータ用実行形式プログラムをシミュレータで実行することにより生成される情報を用いることを特徴とする請求項4または5に記載のプログラム変換方法。
- 前記第1のステップにおいて、前記シミュレータ用実行形式プログラムにおける前記条件付き分岐命令の物理アドレスと、同シミュレータ用実行形式プログラムにおける前記変換前オブジェクトプログラムのオフセットアドレスの差分から、同変換前オブジェクトプログラムにおける同条件付き分岐命令の相対アドレスを求め、該相対アドレスにより特定される命令が条件付き分岐命令である場合に成立予測ビットを書き換えることを特徴とする請求項6に記載のプログラム変換方法。
- 前記第1のステップにおいて、さらに、分岐予測が外れたときの分岐ペナルティに基づいて、前記変換前オブジェクトプログラムの条件付き分岐命令の成立予測ビットを書き換えることを特徴とする請求項4〜7のいずれか一つに記載のプログラム変換方法。
- 条件付き分岐命令の分岐成立状況に関する分岐トレース情報に基づいて、変換前オブジェクトプログラムの対応する条件付き分岐命令の成立予測ビットを書き換えた変換後オブジェクトプログラムを生成する第1のステップと、
前記変換後オブジェクトプログラムを用いて実行形式プログラムを生成する第2のステップと、
をコンピュータに実行させることを特徴とするプログラム変換プログラム。 - 前記第1のステップにおいて、さらに、分岐予測が外れたときの分岐ペナルティに基づいて、前記変換前オブジェクトプログラムの条件付き分岐命令の成立予測ビットを書き換えることを特徴とする請求項9に記載のプログラム変換プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007244312A JP5082716B2 (ja) | 2007-09-20 | 2007-09-20 | プログラム変換装置、プログラム変換方法およびプログラム変換プログラム |
US12/219,864 US8352928B2 (en) | 2007-09-20 | 2008-07-29 | Program conversion apparatus, program conversion method, and computer product |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007244312A JP5082716B2 (ja) | 2007-09-20 | 2007-09-20 | プログラム変換装置、プログラム変換方法およびプログラム変換プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009075874A true JP2009075874A (ja) | 2009-04-09 |
JP5082716B2 JP5082716B2 (ja) | 2012-11-28 |
Family
ID=40472969
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007244312A Expired - Fee Related JP5082716B2 (ja) | 2007-09-20 | 2007-09-20 | プログラム変換装置、プログラム変換方法およびプログラム変換プログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US8352928B2 (ja) |
JP (1) | JP5082716B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9703667B2 (en) * | 2015-02-22 | 2017-07-11 | International Business Machines Corporation | Hardware-based edge profiling |
US10209962B2 (en) * | 2017-02-06 | 2019-02-19 | International Business Machines Corporation | Reconstructing a high level compilable program from an instruction trace |
US10146530B1 (en) * | 2017-07-12 | 2018-12-04 | International Business Machines Corporation | Simulating and evaluating code branch merge |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62214444A (ja) * | 1986-03-17 | 1987-09-21 | Fujitsu Ltd | シミユレ−シヨン方法 |
JPH03278241A (ja) * | 1990-03-28 | 1991-12-09 | Nec Corp | プログラムデバッグ方式 |
JPH04362745A (ja) * | 1991-06-10 | 1992-12-15 | Agency Of Ind Science & Technol | 命令トレース装置 |
JPH0887417A (ja) * | 1994-09-20 | 1996-04-02 | Fujitsu Ltd | コンパイラ装置 |
JPH10187460A (ja) * | 1996-10-28 | 1998-07-21 | Fujitsu Ltd | バイナリ・プログラム変換装置および方法 |
JPH10283183A (ja) * | 1997-04-09 | 1998-10-23 | Hewlett Packard Co <Hp> | 分岐予測調整方法 |
JP2005092532A (ja) * | 2003-09-17 | 2005-04-07 | Fukuoka Pref Gov Sangyo Kagaku Gijutsu Shinko Zaidan | 推定装置 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS57124088A (en) | 1981-01-23 | 1982-08-02 | Mitsubishi Electric Corp | Intermittent stopping system for refrigerator |
EP0404068A3 (en) * | 1989-06-20 | 1991-12-27 | Fujitsu Limited | Branch instruction executing device |
JP3278241B2 (ja) | 1993-05-14 | 2002-04-30 | 富士写真フイルム株式会社 | 電子写真式製版印刷版の作成方法 |
JPH0816378A (ja) * | 1994-06-30 | 1996-01-19 | Fujitsu Ltd | プログラム・リバース解析方法および装置 |
JP3494489B2 (ja) * | 1994-11-30 | 2004-02-09 | 株式会社ルネサステクノロジ | 命令処理装置 |
AU3666697A (en) * | 1996-08-20 | 1998-03-06 | Idea Corporation | A method for identifying hard-to-predict branches to enhance processor performance |
US6591414B2 (en) * | 1996-10-28 | 2003-07-08 | Fujitsu Limited | Binary program conversion apparatus, binary program conversion method and program recording medium |
US5857104A (en) * | 1996-11-26 | 1999-01-05 | Hewlett-Packard Company | Synthetic dynamic branch prediction |
US6115809A (en) * | 1998-04-30 | 2000-09-05 | Hewlett-Packard Company | Compiling strong and weak branching behavior instruction blocks to separate caches for dynamic and static prediction |
US6205545B1 (en) * | 1998-04-30 | 2001-03-20 | Hewlett-Packard Company | Method and apparatus for using static branch predictions hints with dynamically translated code traces to improve performance |
US20020066081A1 (en) * | 2000-02-09 | 2002-05-30 | Evelyn Duesterwald | Speculative caching scheme for fast emulation through statically predicted execution traces in a caching dynamic translator |
JP2001273138A (ja) | 2000-03-24 | 2001-10-05 | Fujitsu Ltd | プログラム変換装置および方法 |
US7185234B1 (en) * | 2001-04-30 | 2007-02-27 | Mips Technologies, Inc. | Trace control from hardware and software |
US7168066B1 (en) * | 2001-04-30 | 2007-01-23 | Mips Technologies, Inc. | Tracing out-of order load data |
US7181728B1 (en) * | 2001-04-30 | 2007-02-20 | Mips Technologies, Inc. | User controlled trace records |
US7178133B1 (en) * | 2001-04-30 | 2007-02-13 | Mips Technologies, Inc. | Trace control based on a characteristic of a processor's operating state |
US20030005422A1 (en) * | 2001-07-02 | 2003-01-02 | Nicolai Kosche | Technique for improving the prediction rate of dynamically unpredictable branches |
US7207035B2 (en) * | 2001-08-23 | 2007-04-17 | International Business Machines Corporation | Apparatus and method for converting an instruction and data trace to an executable program |
US7159101B1 (en) * | 2003-05-28 | 2007-01-02 | Mips Technologies, Inc. | System and method to trace high performance multi-issue processors |
JP3909080B2 (ja) | 2006-03-13 | 2007-04-25 | 株式会社ルネサステクノロジ | データプロセッサ |
-
2007
- 2007-09-20 JP JP2007244312A patent/JP5082716B2/ja not_active Expired - Fee Related
-
2008
- 2008-07-29 US US12/219,864 patent/US8352928B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62214444A (ja) * | 1986-03-17 | 1987-09-21 | Fujitsu Ltd | シミユレ−シヨン方法 |
JPH03278241A (ja) * | 1990-03-28 | 1991-12-09 | Nec Corp | プログラムデバッグ方式 |
JPH04362745A (ja) * | 1991-06-10 | 1992-12-15 | Agency Of Ind Science & Technol | 命令トレース装置 |
JPH0887417A (ja) * | 1994-09-20 | 1996-04-02 | Fujitsu Ltd | コンパイラ装置 |
JPH10187460A (ja) * | 1996-10-28 | 1998-07-21 | Fujitsu Ltd | バイナリ・プログラム変換装置および方法 |
JPH10283183A (ja) * | 1997-04-09 | 1998-10-23 | Hewlett Packard Co <Hp> | 分岐予測調整方法 |
JP2005092532A (ja) * | 2003-09-17 | 2005-04-07 | Fukuoka Pref Gov Sangyo Kagaku Gijutsu Shinko Zaidan | 推定装置 |
Also Published As
Publication number | Publication date |
---|---|
US20090083526A1 (en) | 2009-03-26 |
JP5082716B2 (ja) | 2012-11-28 |
US8352928B2 (en) | 2013-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101027848B1 (ko) | 컴퓨터를 이용한 질의-태스크 벌크 매핑 시스템 및 방법 | |
JP3919771B2 (ja) | 機械翻訳システム、その制御装置、及びコンピュータプログラム | |
KR100834549B1 (ko) | 번역 시스템 및 번역 서비스 제공방법 | |
US7330962B2 (en) | Dynamic instruction sequence selection during scheduling | |
JP2006252557A (ja) | コンピュータ・プログラム・コードの開発オブジェクトの管理方法および開発オブジェクトの管理システム | |
WO2010001766A1 (ja) | 実行時間推定方法、実行時間推定プログラムおよび実行時間推定装置 | |
CN102148852A (zh) | 字体子集的动态流式传输 | |
JP3424520B2 (ja) | プログラム変換装置とデバッグ装置 | |
JP2008059279A (ja) | 文字列出力処理を最適化する技術 | |
JP4759392B2 (ja) | 検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法 | |
US9465595B2 (en) | Computing apparatus, computing method, and computing program | |
JP5082716B2 (ja) | プログラム変換装置、プログラム変換方法およびプログラム変換プログラム | |
JP2000040005A (ja) | プログラム変換装置 | |
US7979853B2 (en) | Compiler device, method, program and recording medium | |
JP2017204164A (ja) | プログラム分析方法、プログラム分析装置および分析プログラム | |
JP2022093835A (ja) | 情報処理装置及びプログラム | |
JP5251586B2 (ja) | 検証支援プログラム、検証支援装置および検証支援方法 | |
US7966474B2 (en) | System, method and computer program product for translating storage elements | |
JP2012185622A (ja) | 対訳フレーズ学習装置、フレーズベース統計的機械翻訳装置、対訳フレーズ学習方法、および対訳フレーズ生産方法 | |
JP2008041002A (ja) | 文書処理装置および文書処理プログラム | |
JP5431633B2 (ja) | 性能チューニングプログラム、該プログラムを記録した記録媒体、性能チューニング装置、および性能チューニング方法 | |
JP2013200851A (ja) | 設計支援プログラム、設計支援方法、および設計支援装置 | |
US8473716B2 (en) | Distributed processing system, information processing apparatus, and distributed processing method | |
JP2011248739A (ja) | 文書処理装置、文書処理方法、及びプログラム | |
JP2004302669A (ja) | オブジェクト表示装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100526 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120427 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120522 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120723 |
|
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: 20120807 |
|
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: 20120820 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5082716 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: 20150914 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |