JP5082716B2 - プログラム変換装置、プログラム変換方法およびプログラム変換プログラム - Google Patents
プログラム変換装置、プログラム変換方法およびプログラム変換プログラム Download PDFInfo
- Publication number
- JP5082716B2 JP5082716B2 JP2007244312A JP2007244312A JP5082716B2 JP 5082716 B2 JP5082716 B2 JP 5082716B2 JP 2007244312 A JP2007244312 A JP 2007244312A JP 2007244312 A JP2007244312 A JP 2007244312A JP 5082716 B2 JP5082716 B2 JP 5082716B2
- Authority
- JP
- Japan
- Prior art keywords
- branch
- program
- penalty
- conversion
- 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.)
- Expired - Fee Related
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)
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 (7)
- 変換前オブジェクトプログラムを用いて生成された第1の実行形式プログラムを実行して、条件付き分岐命令の分岐成立状況に関する分岐トレース情報を取得するとともに、分岐すると予測しているときに分岐しなかった場合の第1の分岐ペナルティ、分岐すると予測しているときに分岐した場合の第2の分岐ペナルティ、分岐しないと予測しているときに分岐しなかった場合の第3の分岐ペナルティ、および分岐しないと予測しているときに分岐した場合の第4の分岐ペナルティを規定した分岐ペナルティテーブルを取得する分岐トレース情報取得手段と、
前記分岐トレース情報取得手段により取得した分岐トレース情報および分岐ペナルティテーブルを参照して、前記条件付き分岐命令の分岐成立回数および分岐不成立回数と、前記第1の分岐ペナルティおよび前記第2の分岐ペナルティと、に基づいて、分岐が成立すると予測する場合の第1の合計ペナルティを算出するとともに、前記条件付き分岐命令の分岐成立回数および分岐不成立回数と、前記第3の分岐ペナルティおよび前記第4の分岐ペナルティと、に基づいて、分岐が成立しないと予測する場合の第2の合計ペナルティを算出し、前記第1の合計ペナルティと前記第2の合計ペナルティとの差分に応じて、前記変換前オブジェクトプログラムの対応する条件付き分岐命令の成立予測ビットを、分岐成立または分岐不成立に書き換え、書き換えた変換後オブジェクトプログラムを生成するバイナリプログラム変換手段と、
前記バイナリプログラム変換手段により変換された変換後オブジェクトプログラムを用いて第2の実行形式プログラムを生成する実行形式プログラム生成手段と、
を備えることを特徴とするプログラム変換装置。 - 前記条件付き分岐命令の複数の実行経路のそれぞれから得られる分岐トレース情報を結合する分岐トレースマージ手段、
をさらに備えることを特徴とする請求項1に記載のプログラム変換装置。 - 条件付き分岐命令の分岐成立状況に関する分岐トレース情報と、分岐すると予測しているときに分岐しなかった場合の第1の分岐ペナルティ、分岐すると予測しているときに分岐した場合の第2の分岐ペナルティ、分岐しないと予測しているときに分岐しなかった場合の第3の分岐ペナルティ、および分岐しないと予測しているときに分岐した場合の第4の分岐ペナルティを規定した分岐ペナルティテーブルと、を参照して、前記条件付き分岐命令の分岐成立回数および分岐不成立回数と、前記第1の分岐ペナルティおよび前記第2の分岐ペナルティと、に基づいて、分岐が成立すると予測する場合の第1の合計ペナルティを算出するとともに、前記条件付き分岐命令の分岐成立回数および分岐不成立回数と、前記第3の分岐ペナルティおよび前記第4の分岐ペナルティと、に基づいて、分岐が成立しないと予測する場合の第2の合計ペナルティを算出し、前記第1の合計ペナルティと前記第2の合計ペナルティとの差分に応じて、変換前オブジェクトプログラムの対応する条件付き分岐命令の成立予測ビットを、分岐成立または分岐不成立に書き換え、書き換えた変換後オブジェクトプログラムを生成して、記憶装置に記憶する第1のステップと、
前記変換後オブジェクトプログラムを用いて実行形式プログラムを生成して、前記記憶装置に記憶する第2のステップと、
を含むことを特徴とするプログラム変換方法。 - 前記第1のステップにおいて、前記分岐トレース情報として、前記条件付き分岐命令の複数の実行経路のそれぞれから得られる分岐トレース情報を結合した情報を用いることを特徴とする請求項3に記載のプログラム変換方法。
- 前記第1のステップにおいて、前記分岐トレース情報として、前記変換前オブジェクトプログラムとシミュレータ用オブジェクトプログラムをリンクしてシミュレータ用実行形式プログラムを生成し、該シミュレータ用実行形式プログラムをシミュレータで実行することにより生成される情報を用いることを特徴とする請求項3または4に記載のプログラム変換方法。
- 前記第1のステップにおいて、前記シミュレータ用実行形式プログラムにおける前記条件付き分岐命令の物理アドレスと、同シミュレータ用実行形式プログラムにおける前記変換前オブジェクトプログラムのオフセットアドレスの差分から、同変換前オブジェクトプログラムにおける同条件付き分岐命令の相対アドレスを求め、該相対アドレスにより特定される条件付き分岐命令の成立予測ビットを書き換えることを特徴とする請求項5に記載のプログラム変換方法。
- 条件付き分岐命令の分岐成立状況に関する分岐トレース情報と、分岐すると予測しているときに分岐しなかった場合の第1の分岐ペナルティ、分岐すると予測しているときに分岐した場合の第2の分岐ペナルティ、分岐しないと予測しているときに分岐しなかった場合の第3の分岐ペナルティ、および分岐しないと予測しているときに分岐した場合の第4の分岐ペナルティを規定した分岐ペナルティテーブルと、を参照して、前記条件付き分岐命令の分岐成立回数および分岐不成立回数と、前記第1の分岐ペナルティおよび前記第2の分岐ペナルティと、に基づいて、分岐が成立すると予測する場合の第1の合計ペナルティを算出するとともに、前記条件付き分岐命令の分岐成立回数および分岐不成立回数と、前記第3の分岐ペナルティおよび前記第4の分岐ペナルティと、に基づいて、分岐が成立しないと予測する場合の第2の合計ペナルティを算出し、前記第1の合計ペナルティと前記第2の合計ペナルティとの差分に応じて、変換前オブジェクトプログラムの対応する条件付き分岐命令の成立予測ビットを、分岐成立または分岐不成立に書き換え、書き換えた変換後オブジェクトプログラムを生成して、記憶装置に記憶する第1のステップと、
前記変換後オブジェクトプログラムを用いて実行形式プログラムを生成して、前記記憶装置に記憶する第2のステップと、
をコンピュータに実行させることを特徴とするプログラム変換プログラム。
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 JP2009075874A (ja) | 2009-04-09 |
JP5082716B2 true 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 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS57124088A (en) | 1981-01-23 | 1982-08-02 | Mitsubishi Electric Corp | Intermittent stopping system for refrigerator |
JPS62214444A (ja) * | 1986-03-17 | 1987-09-21 | Fujitsu Ltd | シミユレ−シヨン方法 |
EP0404068A3 (en) * | 1989-06-20 | 1991-12-27 | Fujitsu Limited | Branch instruction executing device |
JPH03278241A (ja) * | 1990-03-28 | 1991-12-09 | Nec Corp | プログラムデバッグ方式 |
JPH04362745A (ja) * | 1991-06-10 | 1992-12-15 | Agency Of Ind Science & Technol | 命令トレース装置 |
JP3278241B2 (ja) | 1993-05-14 | 2002-04-30 | 富士写真フイルム株式会社 | 電子写真式製版印刷版の作成方法 |
JPH0816378A (ja) * | 1994-06-30 | 1996-01-19 | Fujitsu Ltd | プログラム・リバース解析方法および装置 |
JP3550748B2 (ja) * | 1994-09-20 | 2004-08-04 | 富士通株式会社 | コンパイラ装置 |
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 |
JP3425069B2 (ja) * | 1996-10-28 | 2003-07-07 | 富士通株式会社 | バイナリ・プログラム変換装置および方法 |
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 |
US5838962A (en) * | 1997-04-09 | 1998-11-17 | Hewlett-Packard Company | Interrupt driven dynamic adjustment of branch predictions |
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 | プログラム変換装置および方法 |
US7181728B1 (en) * | 2001-04-30 | 2007-02-20 | Mips Technologies, Inc. | User controlled trace records |
US7168066B1 (en) * | 2001-04-30 | 2007-01-23 | Mips Technologies, Inc. | Tracing out-of order load data |
US7185234B1 (en) * | 2001-04-30 | 2007-02-27 | Mips Technologies, Inc. | Trace control from hardware and software |
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 |
JP4485772B2 (ja) * | 2003-09-17 | 2010-06-23 | 財団法人福岡県産業・科学技術振興財団 | 推定装置、推定方法及び推定処理を実行させるためのコンピュータプログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体 |
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
Also Published As
Publication number | Publication date |
---|---|
JP2009075874A (ja) | 2009-04-09 |
US8352928B2 (en) | 2013-01-08 |
US20090083526A1 (en) | 2009-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3919771B2 (ja) | 機械翻訳システム、その制御装置、及びコンピュータプログラム | |
KR101027848B1 (ko) | 컴퓨터를 이용한 질의-태스크 벌크 매핑 시스템 및 방법 | |
KR100834549B1 (ko) | 번역 시스템 및 번역 서비스 제공방법 | |
JP3424520B2 (ja) | プログラム変換装置とデバッグ装置 | |
CN102148852A (zh) | 字体子集的动态流式传输 | |
JP2005108184A6 (ja) | 機械翻訳システム、その制御装置、及びコンピュータプログラム | |
JP2006252557A (ja) | コンピュータ・プログラム・コードの開発オブジェクトの管理方法および開発オブジェクトの管理システム | |
JP2004362249A (ja) | 翻訳知識最適化装置、翻訳知識最適化のためのコンピュータプログラム、コンピュータ及び記憶媒体 | |
JP4759392B2 (ja) | 検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法 | |
JP5082716B2 (ja) | プログラム変換装置、プログラム変換方法およびプログラム変換プログラム | |
US9465595B2 (en) | Computing apparatus, computing method, and computing program | |
CN104679642A (zh) | 日志分析***中的日志的与语言无关的处理方法和*** | |
US7979853B2 (en) | Compiler device, method, program and recording medium | |
US11556317B2 (en) | Instruction translation support method and information processing apparatus | |
JP2022093835A (ja) | 情報処理装置及びプログラム | |
JP5770534B2 (ja) | プロセッサ、圧縮プログラム、圧縮装置、および圧縮方法 | |
US7966474B2 (en) | System, method and computer program product for translating storage elements | |
JP5251586B2 (ja) | 検証支援プログラム、検証支援装置および検証支援方法 | |
JP5900486B2 (ja) | 関連仕様対応付けシステム、関連仕様対応付け方法およびプログラム | |
JP3943582B2 (ja) | 対訳文対応付け装置 | |
JP5431633B2 (ja) | 性能チューニングプログラム、該プログラムを記録した記録媒体、性能チューニング装置、および性能チューニング方法 | |
JP2013257670A (ja) | プロセッサ、圧縮装置、圧縮方法、および圧縮プログラム | |
WO2024062639A1 (ja) | 計算機システム及びモデルの学習方法 | |
JP2013200851A (ja) | 設計支援プログラム、設計支援方法、および設計支援装置 | |
US8473716B2 (en) | Distributed processing system, information processing apparatus, and distributed processing method |
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 |