JPH11338710A - 複数種の命令セットを持つプロセッサのためのコンパイル方法ならびに装置および同方法がプログラムされ記録される記録媒体 - Google Patents

複数種の命令セットを持つプロセッサのためのコンパイル方法ならびに装置および同方法がプログラムされ記録される記録媒体

Info

Publication number
JPH11338710A
JPH11338710A JP10147057A JP14705798A JPH11338710A JP H11338710 A JPH11338710 A JP H11338710A JP 10147057 A JP10147057 A JP 10147057A JP 14705798 A JP14705798 A JP 14705798A JP H11338710 A JPH11338710 A JP H11338710A
Authority
JP
Japan
Prior art keywords
instruction set
instruction
code
processor
compiling
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.)
Pending
Application number
JP10147057A
Other languages
English (en)
Inventor
Kenichi Michiniwa
賢一 道庭
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP10147057A priority Critical patent/JPH11338710A/ja
Priority to US09/320,730 priority patent/US6308323B1/en
Publication of JPH11338710A publication Critical patent/JPH11338710A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/47Retargetable compilers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【課題】 本発明は、効率の良い命令セットを選択する
ための情報を提供したり、効率の良い命令セットを自動
選択してコンパイルを高速に実行する、複数種の命令セ
ットを持つプロセッサのためのコンパイラを提供する。 【解決手段】 本発明は、プログラムを関数毎、あるい
は更に細かいブロック毎等のモジュール区分し(22
1)、命令セット毎にコンパイル(225)し、それぞ
れの命令セット毎コードサイズ、予測実行サイクル数等
を報告する。これにより得られた結果から、プログラム
の各部分がどの命令セットが有利か判断(223)し、
プログラムの各部分毎に命令セットを切り替えてコンパ
イルを行い、実行する命令セットの切り替えが必要な部
分には命令セット切り替え用のコードを自動挿入(22
4)する。複数の命令セットでコンパイルするとき、字
句解析、から命令セットに依存しない最適化に至る処理
を一度だけ行い、命令セットに依存する最適化、コード
生成処理のみ命令セット毎に処理する(225)ことを
特徴とする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、複数種の命令セッ
トを持つプロセッサのためのコンパイル方法ならびに装
置および同方法がプログラムされ記録される記録媒体に
関する。
【0002】
【従来の技術】半導体技術の進歩により、マイクロプロ
セッサ、メモリを含む周辺制御用LSIが安価に供給さ
れるようになり、これらを適宜組み合わせるだけで比較
的高性能なパーソナルコンピュータが構築できるように
なった。特に制御中枢となるマイクロプロセッサの性能
向上は目覚しく、16ビット、32ビット処理は勿論の
こと、最近では64ビットを越える処理幅を持ち、20
0MHzを越える周波数を使用するものまで出現するに
至った。
【0003】上述した高性能マイクロプロセッサを核
に、この種コンピュータシステムが実質標準とするOS
を搭載することにより、豊富な流通ソフトウェアが使用
できるようになった。
【0004】
【発明が解決しようとする課題】ところで、上述したマ
イクロプロセッサの中に、命令コード長が16ビットと
32ビットモードから成る、複数の命令セットを持つも
のがある。このようなマイクロプロセッサでは、いずれ
の命令セットを使用するかがコンパイルに先立ち決定し
なければならない。このため、プログラマは、コンパイ
ル前にいずれの命令セットを使用したら有利かを判断し
なければならない。
【0005】しかしながら、この決定のためにいずれの
命令セットを使用すべきか選択のための情報を持たず、
コンパイル後、性能評価したうえでいずれが有利か判断
し、期待する性能がでなければ別モードで再コンパイル
していた。従って、プログラマの負担が大きいばかり
か、システムの効率が悪く、コンパイル前にモード選択
のための情報を入手すること、あるいは自動で有利なモ
ード選択を行うための機構の出現が望まれていた。
【0006】本発明は上記事情に鑑みてなされたもので
あり、複数種の命令セットを持つプロセッサのコンパイ
ラにおいて、(1)プログラムを関数毎、あるいは更に
細かいブロック毎等のモジュール区分し、命令セット毎
にコンパイルし、それぞれの命令セット毎コードサイ
ズ、予測実行サイクル数等を報告することにより、
(2)これにより得られた結果から、プログラムの各部
分がどの命令セットが有利か判断し、プログラムの各部
分毎に命令セットを切り替えてコンパイルを行い、実行
する命令セットの切り替えが必要な部分には命令セット
切り替え用のコードを自動挿入することにより、(3)
複数の命令セットでコンパイルするとき、それぞれの命
令セット用コンパイラでコンパイルすると処理時間を多
く要するため、字句解析、構文解析、意味解析、中間コ
ード生成,命令セットに依存しない最適化に至るまでの
処理を一度だけ行い、命令セットに依存する最適化、コ
ード生成処理のみ命令セット毎に処理を行うことによ
り、効率の良い命令セットを選択するための情報を提供
したり、あるいは効率の良い命令セットを自動選択して
コンパイルを高速に実行する、複数種の命令セットを持
つプロセッサのためのコンパイル方法ならびに装置およ
び同方法がプログラムされ記録される記録媒体を提供す
ることを目的とする。
【0007】
【課題を解決するための手段】本発明の複数種の命令セ
ットを持つプロセッサのためのコンパイル方法は、プロ
グラムを所定の単位に区切り、その区切りを命令セット
の種類毎にコンパイルし、それぞれの命令セット毎評価
に要するデータを生成することを特徴とする。また、複
数種の命令セットを持ち、ソースコードから各種解析を
行って中間コードを生成し、そのコードを最適化するこ
とによってオブジェクトコードを生成するコンパイラに
おいて、ソースコードから中間コード生成,命令セット
に依存しない最適化に至る迄の処理を1回だけ行い、命
令セットに依存する最適化からオブジェクトコード生成
に至る迄の処理を命令セット毎に行うことも特徴とす
る。
【0008】本発明の複数種の命令セットを持つプロセ
ッサのためのコンパイル装置は、複数種の命令セットを
持つプロセッサにおいて、プログラムを所定の単位に区
切り、その区切り毎、それぞれの命令セットでコンパイ
ルする手段と、コンパイルの結果得られるステップ数等
から命令セットでの実行サイクル数を計算する手段と、
上記区切り毎、それぞれの命令セットでの上記計算結果
を比較して外部に通知する手段とを具備することを特徴
とする。また、複数種の命令セットを持ち、ソースコー
ドから各種解析を行って中間コードを生成し、そのコー
ドを最適化することによってオブジェクトコードを生成
するコンパイラを持つ計算機システムにおいて、ソース
コードファイルと、中間コードファイルと、命令セット
毎コンパイルされたオブジェクトコードが格納されるオ
ブジェクトファイルと、ソースコードから中間コード生
成,命令セットに依存しない最適化に至る迄の処理を1
回だけ行い、命令セットに依存する最適化からオブジェ
クトコード生成に至る迄の処理を命令セット毎に行うコ
ンパイルプロセス制御手段を具備することも特徴とす
る。
【0009】本発明の記録媒体は、複数種の命令セット
を持つプロセッサのコンパイラであって、プログラムを
所定の単位に区切り、その単位毎命令セットの種類毎に
コンパイルするコンパイラにおいて用いられ、各単位
毎、それぞれの命令セットでコンパイルするステップ
と、コンパイルの結果からそれぞれの命令セットでの実
行サイクル数を計算するステップと、上記単位毎、それ
ぞれの命令セットでの上記計算結果を比較し、外部に出
力するステップとがプログラムされ記録されることを特
徴とする。また、複数種の命令セットを持つプロセッサ
のコンパイラであって、プログラムを所定の単位に区切
り、その単位毎命令セットの種類毎にコンパイルするコ
ンパイラにおいて用いられ、所定の単位毎、ソースコー
ドを解析して中間コードを生成するステップと、上記生
成されたコードに命令セットに依存しない最適化を行う
ステップと、所定の単位毎、それぞれの命令セットで命
令セットに依存する最適化を行いオブジェクトコードを
生成するステップとがプログラムされ記録されることも
特徴とする。
【0010】このことにより、複数の異なる命令セット
のうち、効率の良い命令セットを選択するための情報を
提供したり、あるいは、効率の良い命令セットを自動的
に選択でき、プログラマの負担が軽減されると共に、高
性能なコンパイラが提供できる。
【0011】
【発明の実施の形態】図1は、本発明の複数種の命令セ
ットを持つプロセッサのためコンパイル装置の一実施形
態を示すブロック図である。図において、1は制御中枢
となるCPU、2は主記憶装置、3は大容量外部記憶装
置であり、システムバス5によって共通接続される。4
はオペレータインタフェースとなるキーボードディスプ
レイ装置である。主記憶装置2には、OS21の他にコ
ンパイラ22が割り付けられ、モジュール区分制御部2
21、演算部222、性能評価&報告部223、実行す
べき命令セットを変更する命令挿入部224、コンパイ
ラ本体&コンパイルプロセス制御部225が割り付けら
れ記憶される。
【0012】モジュール区分制御部221は、ソースコ
ードを関数、もしくは関数より細かなブロック単位に分
け、それを単位にコンパイルすることを指示する。演算
部222は、各命令セットモードでの実行サイクルを計
算する部分、性能評価部223は、それぞれの命令セッ
トでの結果を比較すると共に、GUIを介して外部に報
告する部分である。変更命令挿入部224は、上記演算
ならびに性能評価の結果、命令セットの変更が必要な個
所にモード変更命令を自動挿入する部分である。また、
コンパイラ本体&コンパイルプロセス制御部225は、
ソースコードから字句解析、構文解析、意味解析、中間
コードファイル生成、最適化、コード生成、オブジェク
ト生成に至るコンパイルのための各ステップを命令セッ
トの種類毎にコントロールする部分であり、コンパイル
の制御中枢となる。各部分についての詳細は後述する。
【0013】大容量外部記憶装置3には、非常駐のコン
パイラ31、リンケージエディタ32、ローダ33、デ
ィスパッチャ34、ソースプログラム35、データ群3
6が割り付けられ格納される。ソースコードからオブジ
ェクトコード生成までに必要なプログラム群であり、従
来から存在するため、ここでの説明は省略する。
【0014】図2乃至図7は本発明実施形態の動作を説
明するために引用した図であり、それぞれ、複数の命令
セットでのコンパイルのフローチャート、自動的に効率
の良い命令セットを選択するコンパイラのフローチャー
ト、関数毎に命令セットを変更するサンプルプログラム
の例、ブロック毎に命令セットを変更するサンプロプロ
グラムの例、複数の命令セットでのコンパイルのプロセ
スを示す図、複数の命令セットでのコンパイルのフロー
チャートを示す。
【0015】まず、図2に示すフローチャートを参照し
ながら図1に示す本発明実施形態の動作について詳細に
説明する。以降、命令セットが2種類あるものとして説
明を行う。まず、図1に示すコンピュータを使用し、主
記憶装置2に常駐するコンパイラ22は、大容量外部記
憶装置3に割り付けられ記憶されるコンパイラ31と連
携しながら、同じく割り付けられ記憶されるソースコー
ド35を適当数、即ち、コンパイラ中のモジュール区分
制御部221により分割された関数、もしくはブロック
単位で呼び出し、コンパイラ本体225の監視の下、命
令セット1でコンパイル(ステップS21)を行う。そ
して性能評価&報告部223は、ステップS22でコー
ドサイズの計算、ならびに実行サイクル数の予測を行
う。命令セットモード2についても同様の処理を行う
(ステップS23,24)。
【0016】そして、性能評価部223は、演算部22
2を使用してそれぞれの命令セットでの結果の比較を行
い、GUIを介してディスプレイ装置4に結果を表示す
る(ステップS25)。この時に効率を比較するソース
コード34の単位は、プログラム全体、関数毎、あるい
はループ等のブロック毎等、コンパイルオプションによ
り変更できるようにする。これはモジュール区分制御部
221により処理される。このことにより、命令セット
1を選択したほうが効率が良いか、あるいは、命令セッ
ト2を選択したほうが効率が良いかの判断材料を提供で
きる。
【0017】上述した方法により、性能評価&報告部2
23でどの命令セットが効率が良いかを求め(ステツプ
s31,32)、命令セット1が効率が良ければ命令セ
ット1でコンパイルを行ってオブジェクトコードを出力
(ステップS33)し、命令セット2が効率が良いなら
命令セット2でコンパイル(ステップS34)すること
をコンパイラ本体225に指示する。この時に効率を比
較するソースコードの単位は、プログラム全体、関数
毎、あるいはループ等のブロック毎、コンパイルオプシ
ョンで変えられるようにし、命令セット変更のモード切
り替えが必要な個所には、コンパイラ本体225がモー
ド変更命令挿入部224と協動してモード切り替えのた
めの命令を挿入(ステップS35)する。上述した動作
は、図3にフローチャートで示されている。
【0018】このことにより、プログラマが命令セット
を選択することなく、コンパイラが自動的に効率の良い
命令セットを選択するためプログラマの負担が軽減され
る。
【0019】図4,図5はそれぞれ関数、ブロック毎に
命令セットを変更するC言語表現のサンプルプログラム
である。図4は、最初に命令セット1を選択してコンパ
イルし、次に命令セット2を選択して評価し、評価の結
果、命令セット2の方が効率が良かった例を示してい
る。また、図5に示す例は、命令セット1を選択してコ
ンパイルした後、コンパイラ本体22が命令セット切り
替え命令を挿入して命令セット2を選択してコンパイル
する例である。
【0020】次に、図6、図7を使用して複数の命令セ
ットでのコンパイルのプロセスについて説明する。図6
中、61はソースコードファイル、62は中間コードフ
ァイル、63は命令セット1用オブジェクトファイル、
64は命令セット2用オブジェクトファイルである。プ
ログラムのコンパイルに必要な処理としては、字句解
析、構文解析、意味解析、中間コード生成、命令セット
には依存しない最適化、命令セットに依存する最適化、
コード生成の7通りに分けられる。命令セット毎にコン
パイルするときに、命令セット1でコンパイル、命令セ
ット2でコンパイルと、2回に分けると処理時間が2倍
になってしまう。このため、命令セットが変わっても処
理結果が同一である字句解析、構文解析、意味解析、中
間コード生成、命令セットには依存しない最適化までは
1回だけ行ってその結果を保持しておき、その後の命令
セットにより結果が異なる最適化、コード生成の処理は
それぞれ命令セット毎に行う。
【0021】命令セットに2種類あるものとして、ソー
スコードファイル61に対して字句解析、構文解析、意
味解析、中間コード生成、命令セットには依存しない最
適化の処理を行う(ステップS71,72)。次に、命
令セット1で命令セットに依存する最適化、コード生成
の処理(ステップS73)を行う。同様に命令セット2
でも命令セットに依存する最適化、コード生成の処理
(ステップS74)を行う。このことにより、2回のコ
ンパイルを行うよりも高速に命令セット1と命令セット
2のオブジェクトコード63,64を得ることができ
る。上記の動作はコンパイラ22中のコンパイルプロセ
ス制御部225が処理する。
【0022】尚、本発明の実施形態では、異なる2つの
命令セットを持つマイクロプロセッサのみ例示したが、
2以上の命令セットがあっても同様の方法により実現で
きることは言うまでもない。
【0023】
【発明の効果】以上説明のように本発明は、複数種の命
令セットを持つプロセッサのコンパイラにおいて、プロ
グラムを関数毎、あるいは更に細かいブロック毎等のモ
ジュール区分し、命令セット毎にコンパイルし、それぞ
れの命令セット毎コードサイズ、予測実行サイクル数等
を報告することにより、また、これにより得られた結果
から、プログラムの各部分がどの命令セットが有利か判
断し、プログラムの各部分毎に命令セットを切り替えて
コンパイルを行い、実行する命令セットの切り替えが必
要な部分には命令セット切り替え用の命令を自動挿入す
ることにより、更に、複数の命令セットでコンパイルす
るとき、それぞれの命令セット用コンパイラでコンパイ
ルすると処理時間を多く要するため、字句解析、構文解
析、意味解析、中間コード生成,命令セットに依存する
最適化までの処理を一度だけ行い、命令セットに依存し
ない最適化、コード生成処理のみ命令セット毎に処理を
行うことにより、効率の良い命令セットを選択するため
の情報を提供したり、あるいは効率の良い命令セットを
自動選択してコンパイルを高速に実行することができ
る。
【図面の簡単な説明】
【図1】本発明の実施形態を示すブロック図、
【図2】複数の命令セットでのコンパイルの処理手順を
フローチャートで示した図、
【図3】自動的に効率の良い命令セットを選択するコン
パイラの処理手順をフローチャートで示した図、
【図4】関数毎に命令セットを変更するサンプルプルプ
ログラムの例を示す図、
【図5】ブロック毎に命令セットを変更するサンプロプ
ログラムの刑を示す図、
【図6】複数の命令セットでのコンパイルのプロセスを
示す図、
【図7】複数の命令セットでのコンパイルの処理手順を
フローチャートで示す図、
【符号の説明】
1CPU、2主記憶装置、3大容量外部記憶装置、4キ
ーボードディスプレイ装置、5システムバス、21オペ
レーティングシステム(OS)、22コンパイラ本体、
31コンパイラ、32リンケージエディタ、33ローダ
ー、34ディスパッチャ、35ソースプログラム、36
データ群、61ソースコードファイル、62中間コード
ファイル、63命令セット1用オブジェクトファイル、
64命令セット2用オブジェクトファイル、221モジ
ュール区分制御部、222演算部、223性能評価&報
告部、224モード変更命令挿入部、225コンパイラ
本体&コンパイルプロセス制御部、

Claims (13)

    【特許請求の範囲】
  1. 【請求項1】 複数種の命令セットを持ち、命令により
    実行される命令セットを切り替えられるプロセッサ用コ
    ンパイラにおいて、プログラムを所定の単位に区切り、
    その区切りを命令セットの種類毎にコンパイルし、それ
    ぞれの命令セット毎評価に要するデータを生成すること
    を特徴とする複数種の命令セットを持つプロセッサのた
    めのコンパイル方法。
  2. 【請求項2】 評価データを参照してプログラムの区切
    り毎どの命令セットが有利か判断し、その区切り毎に命
    令セットを切り替えてコンパイルを行い、切り替えを要
    する部分に命令セット切り替えのための命令を挿入する
    ことを特徴とする請求項1記載の複数種の命令セットを
    持つプロセッサのためのコンパイル方法。
  3. 【請求項3】 複数種の命令セットを持ち、ソースコー
    ドから各種解析を行って中間コードを生成し、そのコー
    ドを最適化することによってオブジェクトコードを生成
    するコンパイラにおいて、ソースコードから中間コード
    生成,命令セットに依存しない最適化に至る迄の処理を
    1回だけ行い、命令セットに依存する最適化からオブジ
    ェクトコード生成に至る迄の処理を命令セット毎に行う
    ことを特徴とする複数種の命令セットを持つプロセッサ
    のためのコンパイル方法。
  4. 【請求項4】 プログラムの区切りを関数単位に設定す
    ることを特徴とする請求項1乃至3記載の複数種の命令
    セットを持つプロセッサのためのコンパイル方法。
  5. 【請求項5】 プログラムの区切りを関数より細かいブ
    ロック単位に設定することを特徴とする請求項1乃至3
    記載の複数種の命令セットを持つプロセッサのためのコ
    ンパイル方法。
  6. 【請求項6】 評価に要するデータをコードサイズとす
    ることを特徴とする請求項2記載の複数種の命令セット
    を持つプロセッサのためのコンパイル方法。
  7. 【請求項7】 評価に要するデータを予想実行サイクル
    とすることを特徴とする請求項2記載の複数種の命令セ
    ットを持つプロセッサのためのコンパイル方法。
  8. 【請求項8】 複数種の命令セットを持つプロセッサに
    おいて、プログラムを所定の単位に区切る手段と、その
    区切り毎にそれぞれの命令セットでコンパイルする手段
    と、コンパイルの結果から得られるステップ数等よりそ
    れぞれの命令セットでの実行サイクル数を計算する手段
    と、上記区切り毎、それぞれの命令セットでの上記計算
    結果を比較して外部に通知する手段とを具備することを
    特徴とする複数種の命令セットを持つプロセッサのため
    のコンパイル装置。
  9. 【請求項9】 評価データを参照してプログラムの区切
    り毎どの命令セットが有利か判断し、その区切り毎に命
    令セットを切り替えてコンパイルを行う手段と、切り替
    えを要する部分に命令セット切り替えのための命令を挿
    入する命令挿入手段とを具備することを特徴とする請求
    項8記載の複数種の命令セットを持つプロセッサのため
    のコンパイル装置。
  10. 【請求項10】 複数種の命令セットを持ち、ソースコ
    ードから各種解析を行って中間コードを生成し、そのコ
    ードを最適化することによってオブジェクトコードを生
    成するコンパイラを持つ計算機システムにおいて、ソー
    スコードファイルと、中間コードファイルと、命令セッ
    ト毎コンパイルされたオブジェクトコードが格納される
    オブジェクトファイルと、ソースコードから中間コード
    生成,命令セットに依存しない最適化に至る迄の処理を
    1回だけ行い、命令セットに依存する最適化からオブジ
    ェクトコード生成に至る迄の処理を命令セット毎に行う
    コンパイルプロセス制御手段を具備することを特徴とす
    る複数種の命令セットを持つプロセッサのためのコンパ
    イル装置。
  11. 【請求項11】 複数種の命令セットを持つプロセッサ
    のコンパイラであって、プログラムを所定の単位に区切
    り、その単位毎命令セット毎にコンパイルを行うコンパ
    イラにおいて用いられ、各単位毎、それぞれの命令セッ
    トでコンパイルするステップと、コンパイルの結果から
    それぞれの命令セットでの実行サイクル数を計算するス
    テップと、上記単位毎、それぞれの命令セットでの上記
    計算結果を比較し、外部に出力するステップとがプログ
    ラムされ記録されるコンピュータ読み取り可能な記録媒
    体。
  12. 【請求項12】 プログラムの所定の単位毎、複数種の
    命令セットモードでどの命令セットが効率良いかを比較
    するステップと、上記単位毎、効率の良い命令セットに
    従うオブジェクトコードを出力するステップと、命令セ
    ットの変更が必要な個所にモード変更命令を挿入するス
    テツプとがプログラムされ記録されるコンピュータ読み
    取り可能な請求項11記載の記録媒体。
  13. 【請求項13】 複数種の命令セットを持つプロセッサ
    のコンパイラであって、プログラムを所定の単位に区切
    り、その単位毎命令セット毎にコンパイルを行うコンパ
    イラにおいて用いられ、所定の単位毎、ソースコードを
    解析して中間コードを生成するステップと、命令セット
    に依存せずに上記生成されたコードを最適化するステッ
    プと、所定の単位毎、それぞれの命令セット毎にコード
    を最適化してオブジェクトコードを生成するステップと
    がプログラムされ記録される記録媒体。
JP10147057A 1998-05-28 1998-05-28 複数種の命令セットを持つプロセッサのためのコンパイル方法ならびに装置および同方法がプログラムされ記録される記録媒体 Pending JPH11338710A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP10147057A JPH11338710A (ja) 1998-05-28 1998-05-28 複数種の命令セットを持つプロセッサのためのコンパイル方法ならびに装置および同方法がプログラムされ記録される記録媒体
US09/320,730 US6308323B1 (en) 1998-05-28 1999-05-27 Apparatus and method for compiling a plurality of instruction sets for a processor and a media for recording the compiling method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10147057A JPH11338710A (ja) 1998-05-28 1998-05-28 複数種の命令セットを持つプロセッサのためのコンパイル方法ならびに装置および同方法がプログラムされ記録される記録媒体

Publications (1)

Publication Number Publication Date
JPH11338710A true JPH11338710A (ja) 1999-12-10

Family

ID=15421529

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10147057A Pending JPH11338710A (ja) 1998-05-28 1998-05-28 複数種の命令セットを持つプロセッサのためのコンパイル方法ならびに装置および同方法がプログラムされ記録される記録媒体

Country Status (2)

Country Link
US (1) US6308323B1 (ja)
JP (1) JPH11338710A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7254807B2 (en) 2001-12-11 2007-08-07 Matsushita Electric Industrial Co., Ltd. Program conversion apparatus, program conversion method, and computer program for executing program conversion process
WO2012105174A1 (ja) * 2011-01-31 2012-08-09 パナソニック株式会社 プログラム生成装置、プログラム生成方法、プロセッサ装置及びマルチプロセッサシステム
JP2013140513A (ja) * 2012-01-05 2013-07-18 Fuji Electric Co Ltd 組込み機器用ソフトウェア作成支援装置およびその方法、並びにプログラム

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6978450B2 (en) * 1999-01-15 2005-12-20 Hewlett-Packard Development Company, L.P. Method and system for optimizing compilation time of a program by selectively reusing object code
US6820189B1 (en) * 1999-05-12 2004-11-16 Analog Devices, Inc. Computation core executing multiple operation DSP instructions and micro-controller instructions of shorter length without performing switch operation
US7278137B1 (en) * 2001-12-26 2007-10-02 Arc International Methods and apparatus for compiling instructions for a data processor
US6988192B2 (en) * 2002-02-11 2006-01-17 Hewlett-Packard Development Company, L.P. Method and apparatus for compiling source code to configure hardware
US7228531B1 (en) * 2003-02-03 2007-06-05 Altera Corporation Methods and apparatus for optimizing a processor core on a programmable chip
WO2007143278A2 (en) 2006-04-12 2007-12-13 Soft Machines, Inc. Apparatus and method for processing an instruction matrix specifying parallel and dependent operations
US20070283336A1 (en) * 2006-06-01 2007-12-06 Michael Karl Gschwind System and method for just-in-time compilation in a heterogeneous processing environment
US8352713B2 (en) * 2006-08-09 2013-01-08 Qualcomm Incorporated Debug circuit comparing processor instruction set operating mode
EP2523101B1 (en) 2006-11-14 2014-06-04 Soft Machines, Inc. Apparatus and method for processing complex instruction formats in a multi- threaded architecture supporting various context switch modes and virtualization schemes
US8561037B2 (en) * 2007-08-29 2013-10-15 Convey Computer Compiler for generating an executable comprising instructions for a plurality of different instruction sets
US9710384B2 (en) 2008-01-04 2017-07-18 Micron Technology, Inc. Microprocessor architecture having alternative memory access paths
US20100312991A1 (en) * 2008-05-08 2010-12-09 Mips Technologies, Inc. Microprocessor with Compact Instruction Set Architecture
CN102077195A (zh) * 2008-05-08 2011-05-25 Mips技术公司 具有紧凑指令集架构的微处理器
CN103250131B (zh) 2010-09-17 2015-12-16 索夫特机械公司 包括用于早期远分支预测的影子缓存的单周期多分支预测
WO2012135050A2 (en) 2011-03-25 2012-10-04 Soft Machines, Inc. Memory fragments for supporting code block execution by using virtual cores instantiated by partitionable engines
CN103547993B (zh) 2011-03-25 2018-06-26 英特尔公司 通过使用由可分割引擎实例化的虚拟核来执行指令序列代码块
CN108376097B (zh) 2011-03-25 2022-04-15 英特尔公司 用于通过使用由可分割引擎实例化的虚拟核来支持代码块执行的寄存器文件段
US9940134B2 (en) 2011-05-20 2018-04-10 Intel Corporation Decentralized allocation of resources and interconnect structures to support the execution of instruction sequences by a plurality of engines
WO2012162189A1 (en) 2011-05-20 2012-11-29 Soft Machines, Inc. An interconnect structure to support the execution of instruction sequences by a plurality of engines
KR101703401B1 (ko) 2011-11-22 2017-02-06 소프트 머신즈, 인크. 다중 엔진 마이크로프로세서용 가속 코드 최적화기
US20150039859A1 (en) 2011-11-22 2015-02-05 Soft Machines, Inc. Microprocessor accelerated code optimizer
US10430190B2 (en) 2012-06-07 2019-10-01 Micron Technology, Inc. Systems and methods for selectively controlling multithreaded execution of executable code segments
WO2014150971A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for dependency broadcasting through a block organized source view data structure
US9886279B2 (en) 2013-03-15 2018-02-06 Intel Corporation Method for populating and instruction view data structure by using register template snapshots
US9569216B2 (en) 2013-03-15 2017-02-14 Soft Machines, Inc. Method for populating a source view data structure by using register template snapshots
US10140138B2 (en) 2013-03-15 2018-11-27 Intel Corporation Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation
KR102083390B1 (ko) * 2013-03-15 2020-03-02 인텔 코포레이션 네이티브 분산된 플래그 아키텍처를 이용하여 게스트 중앙 플래그 아키텍처를 에뮬레이션하는 방법
US9891924B2 (en) 2013-03-15 2018-02-13 Intel Corporation Method for implementing a reduced size register view data structure in a microprocessor
US10275255B2 (en) 2013-03-15 2019-04-30 Intel Corporation Method for dependency broadcasting through a source organized source view data structure
WO2014150806A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for populating register view data structure by using register template snapshots
WO2014150991A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for implementing a reduced size register view data structure in a microprocessor
US9632825B2 (en) 2013-03-15 2017-04-25 Intel Corporation Method and apparatus for efficient scheduling for asymmetrical execution units
US9904625B2 (en) 2013-03-15 2018-02-27 Intel Corporation Methods, systems and apparatus for predicting the way of a set associative cache
KR101708591B1 (ko) 2013-03-15 2017-02-20 소프트 머신즈, 인크. 블록들로 그룹화된 멀티스레드 명령어들을 실행하기 위한 방법
US9811342B2 (en) * 2013-03-15 2017-11-07 Intel Corporation Method for performing dual dispatch of blocks and half blocks
CN111324401A (zh) * 2018-12-17 2020-06-23 西门子股份公司 工件加工程序可视化方法、装置、系统及存储介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5432937A (en) * 1993-08-20 1995-07-11 Next Computer, Inc. Method and apparatus for architecture independent executable files
JP3451595B2 (ja) * 1995-06-07 2003-09-29 インターナショナル・ビジネス・マシーンズ・コーポレーション 二つの別個の命令セット・アーキテクチャへの拡張をサポートすることができるアーキテクチャ・モード制御を備えたマイクロプロセッサ
US5787285A (en) * 1995-08-15 1998-07-28 International Business Machines Corporation Apparatus and method for optimizing applications for multiple operational environments or modes
US6067575A (en) * 1995-12-08 2000-05-23 Sun Microsystems, Inc. System and method for generating trusted, architecture specific, compiled versions of architecture neutral programs
US5835773A (en) * 1996-04-17 1998-11-10 Hewlett-Packard, Co. Method for achieving native performance across a set of incompatible architectures using a single binary file
US5815721A (en) * 1996-04-25 1998-09-29 Hewlett-Packard Company Method and apparatus for optimizing complex control structures using abstract web patterns
US6085307A (en) * 1996-11-27 2000-07-04 Vlsi Technology, Inc. Multiple native instruction set master/slave processor arrangement and method thereof
US5835775A (en) * 1996-12-12 1998-11-10 Ncr Corporation Method and apparatus for executing a family generic processor specific application
US5987259A (en) * 1997-06-30 1999-11-16 Sun Microsystems, Inc. Functional unit switching for the allocation of registers
US6049668A (en) * 1998-04-13 2000-04-11 Intel Corporation Method and apparatus for supporting multiple processor-specific code segments in a single executable

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7254807B2 (en) 2001-12-11 2007-08-07 Matsushita Electric Industrial Co., Ltd. Program conversion apparatus, program conversion method, and computer program for executing program conversion process
WO2012105174A1 (ja) * 2011-01-31 2012-08-09 パナソニック株式会社 プログラム生成装置、プログラム生成方法、プロセッサ装置及びマルチプロセッサシステム
JP5875530B2 (ja) * 2011-01-31 2016-03-02 株式会社ソシオネクスト プログラム生成装置、プログラム生成方法、プロセッサ装置及びマルチプロセッサシステム
JP2013140513A (ja) * 2012-01-05 2013-07-18 Fuji Electric Co Ltd 組込み機器用ソフトウェア作成支援装置およびその方法、並びにプログラム

Also Published As

Publication number Publication date
US6308323B1 (en) 2001-10-23

Similar Documents

Publication Publication Date Title
US6308323B1 (en) Apparatus and method for compiling a plurality of instruction sets for a processor and a media for recording the compiling method
US6292940B1 (en) Program complete system and its compile method for efficiently compiling a source program including an indirect call for a procedure
US6308322B1 (en) Method and apparatus for reduction of indirect branch instruction overhead through use of target address hints
US6634017B2 (en) System LSI development apparatus and the method thereof for developing a system optimal to an application
US6289505B1 (en) Method, apparatus and computer programmed product for binary re-optimization using a high level language compiler
EP0646864B1 (en) Optimising compiler
US7966610B2 (en) Application of optimization techniques to intermediate representations for code generation
US5960198A (en) Software profiler with runtime control to enable and disable instrumented executable
US8037465B2 (en) Thread-data affinity optimization using compiler
US5854932A (en) Compiler and method for avoiding unnecessary recompilation
US20090113404A1 (en) Optimum code generation method and compiler device for multiprocessor
JP2005216177A (ja) コンフィグラブル・プロセッサの設計装置、設計方法、ライブラリの最適化方法、プロセッサ、及びプロセッサを備えた半導体装置の製造方法
JP2008040734A (ja) 実行コードの生成方法及びプログラム
JPH02217926A (ja) コード生成方法
JPH04330527A (ja) プログラムの最適化方法及びコンパイラ・システム
US6360360B1 (en) Object-oriented compiler mechanism for automatically selecting among multiple implementations of objects
JP3992102B2 (ja) コンパイラ装置、コンパイル方法、コンパイラプログラム、及び記録媒体
US6301652B1 (en) Instruction cache alignment mechanism for branch targets based on predicted execution frequencies
WO2005086017A1 (en) Method and apparatus for management of control flow in a simd device
JP3640081B2 (ja) Mpiプログラムのコンパイルにおける最適化方法
US7478376B2 (en) Computer program code size partitioning method for multiple memory multi-processing systems
CN113553057B (zh) 一种针对不同架构的gpu进行并行计算的优化系统
US20010039653A1 (en) Program conversion method, program conversion apparatus, storage medium for storing program conversion program and program conversion program
US6134708A (en) Program compilation execution system
Cooper et al. Cross-loop reuse analysis and its application to cache optimizations