JP2014531680A - デコード時間命令最適化を用いた、強化されたアプリケーション・バイナリ・インターフェース(abi)のためのコードのコンパイル - Google Patents
デコード時間命令最適化を用いた、強化されたアプリケーション・バイナリ・インターフェース(abi)のためのコードのコンパイル Download PDFInfo
- Publication number
- JP2014531680A JP2014531680A JP2014532517A JP2014532517A JP2014531680A JP 2014531680 A JP2014531680 A JP 2014531680A JP 2014532517 A JP2014532517 A JP 2014532517A JP 2014532517 A JP2014532517 A JP 2014532517A JP 2014531680 A JP2014531680 A JP 2014531680A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- toc
- code sequence
- instructions
- object file
- 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
-
- 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
-
- 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/54—Link editing before load time
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30196—Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders
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)
- Executing Machine-Instructions (AREA)
Abstract
Description
オンデマンド・セルフサービス:クラウド・コンシューマは、必要に応じて、サーバ時間及びネットワーク・ストレージ等のコンピューティング機能を、人間がサービスのプロバイダと対話する必要なく自動的に、一方的にプロビジョニングすることができる。
広範なネットワーク・アクセス:機能は、ネットワーク上で利用可能であり、異種のシン又はシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、及びPDA)による使用を促進する標準的な機構を通じてアクセスされる。
リソースのプール化:プロバイダのコンピューティング・リソースは、マルチ・テナント・モデルを用いて、異なる物理及び仮想リソースを要求に応じて動的に割り当て及び再割り当てすることにより、複数のコンシューマにサービスを提供するためにプールされる。コンシューマは、一般に、提供されるリソースの正確な位置についての制御又は知識を持たないが、より高レベルの抽象化では位置(例えば、国、州、又はデータセンタ)を特定できる場合があるという点で、位置とは独立しているといえる。
迅速な弾力性:機能は、迅速かつ弾力的に、幾つかの場合自動的に、プロビジョニングして素早くスケール・アウトし、迅速にリリースして素早くスケール・インさせることができる。コンシューマにとって、プロビジョニングに利用可能なこれらの機能は、多くの場合、無制限であり、いつでもどんな量でも購入できるように見える。
サービスの測定:クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、及びアクティブなユーザ・アカウント)に適した何らかの抽象化レベルでの計量機能を用いることによって、リソース使用を自動的に制御及び最適化する。リソース使用を監視し、制御し、報告し、利用されるサービスのプロバイダとコンシューマの両方に対して透明性をもたらすことができる。
Software as a Service(SaaS):クラウド・インフラストラクチャ上で動作しているプロバイダのアプリケーションを使用するために、コンシューマに提供される機能である。これらのアプリケーションは、ウェブ・ブラウザ(例えば、ウェブ・ベースの電子メール)などのシン・クライアント・インターフェースを通じて、種々のクライアント・デバイスからアクセス可能である。コンシューマは、限定されたユーザ固有のアプリケーション構成設定の考え得る例外として、ネットワーク、サーバ、オペレーティング・システム、ストレージ、又は個々のアプリケーション機能をも含めて、基礎をなすクラウド・インフラストラクチャを管理又は制御しない。
Platform as a Service(PaaS):プロバイダによってサポートされるプログラミング言語及びツールを用いて生成された、コンシューマが生成した又は取得したアプリケーションを、クラウド・インフラストラクチャ上に配備するために、コンシューマに提供される機能である。コンシューマは、ネットワーク、サーバ、オペレーティング・システム、又はストレージなどの基礎をなすクラウド・インフラストラクチャを管理又は制御しないが、配備されたアプリケーション、及び場合によってはアプリケーション・ホスティング環境構成に対して制御を有する。
Infrastructure as a Service(IaaS):コンシューマが、オペレーティング・システム及びアプリケーションを含み得る任意のソフトウェアを配備及び動作させることができる、処理、ストレージ、ネットワーク、及び他の基本的なコンピューティング・リソースをプロビジョニンングするために、コンシューマに提供される機能である。コンシューマは、基礎をなすクラウド・インフラストラクチャを管理又は制御しないが、オペレーティング・システム、ストレージ、配備されたアプリケーションに対する制御、及び場合によってはネットワーク・コンポーネント(例えば、ホストのファイアウォール)選択の限定された制御を有する。
プライベート・クラウド:クラウド・インフラストラクチャは、ある組織のためだけに運営される。このクラウド・インフラストラクチャは、その組織又は第三者によって管理することができ、構内又は構外に存在することができる。
コミュニティ・クラウド:クラウド・インフラストラクチャは、幾つかの組織によって共有され、共通の関心事項(例えば、任務、セキュリティ要件、ポリシー、及びコンプライアンス上の考慮事項)を有する特定のコミュニティをサポートする。クラウド・インフラストラクチャは、その組織又は第三者によって管理することができ、構内又は構外に存在することができる。
パブリック・クラウド:クラウド・インフラストラクチャは、一般公衆又は大規模な業界グループに利用可能であり、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:クラウド・インフラストラクチャは、固有のエンティティのままであるが、データ及びアプリケーションの移行性を可能にする標準化された又は専用の技術(例えば、クラウド間の負荷分散のためのクラウド・バースティング)によって結び付けられる2つ又はそれより多いクラウド(プライベート、コミュニティ、又はパブリック)の混成物である。
ld R3=R2+D1
ld R4=R3+D2
ld R3=R2+0 [Ref: Symbol “A”]
ld R4=R3+D2
Symbol = “A”
Length = 24
Alignment =8
等
ldR3=R2+0 [Ref: Symbol “A”]
ld R4=R3+D2
リンカにより、オブジェクト・コードに変換される。
b L1
L2: ld R4=R3+D2
........
L1:addis R3=R2,1
ld R3=R3+D1
b L2
addis R5, R2, 0x1234
ld R3=R5+0x5678
addis R5, R2, 0x1234
ld R3=R2+0x12345678
addis R5, R2, label@got@h
ldreg, label@got@l(R5)
addis R5, R2,label@got@h
ldreg, label@got(R2)
addis R3, R2, 0x1234
ld R3=R3+0x5678
ld R3=R2+0x12345678
有利なことに、2つの依存する操作のシーケンスの代わりに、1つのIOPしか実行する必要がない。
addis reg, R2,label@got@h
ld reg,label@got@l(reg)
ld reg,label@got(R2)
ld reg,lable@got32(R2)
は、
addis reg,lable@got@ha(R2)
ld reg,lable@got@l(reg)
と同等であるバイナリ命令及び再配置を生成する。
addis reg,R2,label@got@h
ld reg,label@got@l(reg)
addis reg,R2,label@toc@ha
addi reg,reg,label@toc@l
addireg,reg,label@toc
addis reg,R2,label@got@h
ld reg,label@got@l(reg)
ld reg,structure_offset(reg)
addisreg,R2,(label+structure_offset)@toc@h
ldreg,reg,(label+structure_offset)@toc@l
ld reg,reg,(label+structure_offset)@toc //iop
を発行することができる。
char x[BIG_SIZE], y;
y = x[BIG_OFFSET]
は、アレイ・ベースxがレジスタ5に割り当てられるとき、以下のように変換することができ、値yは、レジスタR20にロードされるはずである。
addis R20, R5 (array base),(LARGE_OFFSET*4)@ha
ld R20, R20, (LARGE_OFFSET*4)@l
ld R20, R5, (LARGE_OFFSET*4)
addis reg, R5, label@ha
ld reg, reg, label@l
NOP
ld reg, R2, label@got@l
addis reg, R5, offset@ha
addi reg, reg, offset@l
NOP
addi reg, R5, offset@l
addis reg,R5,offset@ha
Li r5, 0
ld reg,reg,offset@l
NOP
Li R5,0
ld reg,R5,offset@l
プルーニングされたコード・シーケンスがオリジナルのコード・シーケンスと等しくないため、上記のコード・シーケンスに対するプルーニングは、安全でない。
addis reg,R2,label@got@h
ld reg,label@got@l(reg)
図11のブロック1110において、リンカは、上記のコード・シーケンスを以下のコード・シーケンスに置き換える。
addisreg,R2,label@toc@h
addi reg,reg,label@toc@l
NOP
addi reg,r2,label@toc@l
addisreg,R2,label@got@h
ld reg,label@got@l(reg)
ld reg, struc_offset(reg)
NOP
addis reg,R2,(label+struc_offset)@toc@h
ld reg,reg,(label+struc_offset)@ toc@l
NOP
NOP
ld reg, R2, (label+struc_offsete)@tol@l
12:コンピュータ・システム/サーバ
14:外部デバイス
16:処理ユニット(プロセッサ)
18:バス
20:ネットワーク・アダプタ
22:I/Oインターフェース
24:ディスプレイ
28:システム・メモリ
30:ランダム・アクセス・メモリ(RAM)
32:キャッシュ・メモリ
34:ストレージ・システム
40:プログラム/ユーティリティ
42:プログラム・モジュール
50:クラウド・コンピューティング環境
54A:携帯情報端末(PDA)又は携帯電話
54B:デスクトップ・コンピュータ
54C:ラップトップ・コンピュータ
54N:自動車コンピュータ・システム
60:ハードウェア及びソフトウェア層
62:仮想化層
64:管理層
66:ワークロード層
70:強化されたコンパイラ
80:強化されたリンカ
402、904:TOC
404:データ・オブジェクト
906、908、910:アクセス・コスト
912:アドレス・レジスタ
Claims (22)
- 処理回路により読み出し可能であり、かつ、方法を実施するために前記処理回路により実行するための命令を格納する有形ストレージ媒体を含むコンピュータ・プログラム製品であって、前記方法は、
コンピュータにより、変数アドレス参照テーブル内の位置から離れたオフセットにおける変数へのアクセスを含む変数アドレス参照テーブル関数を実施するように構成されたコード・シーケンスを識別することであって、前記コード・シーケンスは、第1の命令の内部表現(IR)及び第2の命令のIRを含み、前記第2の命令は前記第1の命令に依存する、識別することと、
前記第1の命令の前記IR及び前記第2の命令の前記IRの少なくとも一方と関連したスケジューラ・コスト関数を修正することであって、前記修正することは、前記第1の命令を前記第2の命令に隣接して配置するように構成された修正されたスケジューラ・コスト関数を生成することを含む、修正することと、
前記修正されたスケジューラ・コスト関数に応答して、オブジェクト・ファイルを生成することであって、前記オブジェクト・ファイルは前記第2の命令に隣接して配置された前記第1の命令を含む、生成することと、
前記オブジェクト・ファイルを発行することと、
を含むコンピュータ・プログラム製品。 - 前記コード・シーケンスは、破壊的コード・シーケンスである、請求項1に記載のコンピュータ・プログラム製品。
- 前記コード・シーケンスは、非破壊的コード・シーケンスである、請求項1に記載のコンピュータ・プログラム製品。
- 前記変数アドレス参照テーブルは、テーブル・オブ・コンテンツ(TOC)である、請求項1〜請求項3のいずれか1項に記載のコンピュータ・プログラム製品。
- 前記変数アドレス参照テーブルは、グローバル・オフセット・テーブル(GOT)である、請求項1〜請求項3のいずれか1項に記載のコンピュータ・プログラム製品。
- 方法を実施するように構成されたプロセッサを含むシステムであって、前記方法は、
変数アドレス参照テーブル内の位置から離れたオフセットにおける変数へのアクセスを含む変数アドレス参照テーブル関数を実施するように構成されたコード・シーケンスを識別することであって、前記コード・シーケンスは第1の命令の内部表現(IR)及び第2の命令のIRを含み、前記第2の命令は前記第1の命令に依存する、識別することと、
前記第1の命令の前記IR及び前記第2の命令の前記IRの少なくとも一方と関連したスケジューラ・コスト関数を修正することであって、前記修正することは、前記第1の命令を前記第2の命令に隣接して配置するように構成された修正されたスケジューラ・コスト関数を生成することを含む、修正することと、
前記修正されたスケジューラ・コスト関数に応答して、オブジェクト・ファイルを生成することであって、前記オブジェクト・ファイルは前記第2の命令に隣接して配置された前記第1の命令を含む、生成することと、
前記オブジェクト・ファイルを発行することと、
を含む、システム。 - 前記コード・シーケンスは、破壊的コード・シーケンスである、請求項6に記載のシステム。
- 前記コード・シーケンスは、非破壊的コード・シーケンスである、請求項6に記載のシステム。
- 前記変数アドレス参照テーブルは、テーブル・オブ・コンテンツ(TOC)である、請求項6〜請求項8のいずれか1項に記載のシステム。
- 前記変数アドレス参照テーブルは、グローバル・オフセット・テーブル(GOT)である、請求項6〜請求項8のいずれか1項に記載のシステム。
- コンピュータにより、変数アドレス参照テーブル内の位置から離れたオフセットにおける変数へのアクセスを含む変数アドレス参照テーブル関数を実施するように構成されたコード・シーケンスを識別することであって、前記コード・シーケンスは第1の命令の内部表現(IR)及び第2の命令のIRを含み、前記第2の命令は前記第1の命令に依存する、識別することと、
前記第1の命令の前記IR及び前記第2の命令の前記IRの少なくとも一方と関連したスケジューラ・コスト関数を修正することであって、前記修正することは、前記第1の命令を前記第2の命令に隣接して配置するように構成された修正されたスケジューラ・コスト関数を生成することを含む、修正することと、
前記修正されたスケジューラ・コスト関数に応じて、オブジェクト・ファイルを生成することであって、前記オブジェクト・ファイルは、前記第2の命令に隣接して配置された前記第1の命令を含む、生成することと、
前記オブジェクト・ファイルを発行することと、
を含む方法。 - 前記コード・シーケンスは、破壊的コード・シーケンスである、請求項11に記載の方法。
- 前記コード・シーケンスは、非破壊的コード・シーケンスである、請求項11に記載の方法。
- 前記変数アドレス参照テーブルは、テーブル・オブ・コンテンツ(TOC)である、請求項11〜請求項13のいずれか1項に記載の方法。
- 前記変数アドレス参照テーブルは、グローバル・オフセット・テーブル(GOT)である、請求項11〜請求項13のいずれか1項に記載の方法。
- 処理回路により読み出し可能であり、かつ、方法を実施するために前記処理回路により実行するための命令を格納する有形ストレージ媒体を含むコンピュータ・プログラム製品であって、前記方法は、
コンピュータにより、変数アドレス参照テーブル内の位置から離れたオフセットにおける変数へのアクセスを含む変数アドレス参照テーブル関数を実施するように構成されたコード・シーケンスを識別することであって、前記コード・シーケンスは、待ち時間により特徴付けられる命令の内部表現(IR)を含む、識別することと、
前記命令と関連したスケジューラ・コスト関数を修正することであって、前記修正することは、前記命令が互いに隣接する複数の命令に拡張することを認識するように構成された修正されたスケジューラ・コスト関数を生成することを含み、前記複数の命令は、前記命令の前記IRの前記待ち時間により特徴付けられる、修正することと、
前記修正されたスケジューラ・コスト関数に応答して、オブジェクト・ファイルを生成することであって、前記オブジェクト・ファイルは、互いに隣接する前記複数の命令を含む、生成することと、
前記オブジェクト・ファイルを発行することと、
を含む、コンピュータ・プログラム製品。 - 前記変数アドレス参照テーブルは、テーブル・オブ・コンテンツ(TOC)である、請求項16に記載のコンピュータ・プログラム製品。
- 前記変数アドレス参照テーブルは、グローバル・オフセット・テーブル(GOT)である、請求項16に記載のコンピュータ・プログラム製品。
- 方法を実施するように構成されたプロセッサを含むシステムであって、前記方法は、
変数アドレス参照テーブル内の位置から離れたオフセットにおける変数へのアクセスを含む変数アドレス参照テーブル関数を実施するように構成されたコード・シーケンスを識別することであって、前記コード・シーケンスは、待ち時間により特徴付けられる命令の内部表現(IR)を含む、識別することと、
前記命令と関連したスケジューラ・コスト関数を修正することであって、前記修正することは、前記命令が互いに隣接する複数の命令に拡張することを認識するように構成された修正されたスケジューラ・コスト関数を生成することを含み、前記複数の命令は、前記命令の前記IRの前記待ち時間により特徴付けられる、修正することと、
前記修正されたスケジューラ・コスト関数に応答して、オブジェクト・ファイルを生成することであって、前記オブジェクト・ファイルは、互いに隣接する前記複数の命令を含む、生成することと、
前記オブジェクト・ファイルを発行することと、
を含む、システム。 - 前記変数アドレス参照テーブルは、テーブル・オブ・コンテンツ(TOC)及びグローバル・オフセット・テーブル(GOT)のうちの一方である、請求項19に記載のシステム。
- コンピュータにより、変数アドレス参照テーブル内の位置から離れたオフセットにおける変数へのアクセスを含む変数アドレス参照テーブル関数を実施するように構成されたコード・シーケンスを識別することであって、前記コード・シーケンスは、待ち時間により特徴付けられる命令の内部表現(IR)を含む、識別することと、
前記命令と関連したスケジューラ・コスト関数を修正することであって、前記修正することは、前記命令が互いに隣接する複数の命令に拡張することを認識するように構成された修正されたスケジューラ・コスト関数を生成することを含み、前記複数の命令は、前記命令の前記IRの前記待ち時間により特徴付けられる、修正することと、
前記修正されたスケジューラ・コスト関数に応答して、オブジェクト・ファイルを生成することであって、前記オブジェクト・ファイルは、互いに隣接する前記複数の命令を含む、生成することと、
前記オブジェクト・ファイルを発行することと、
を含む方法。 - 前記変数アドレス参照テーブルは、テーブル・オブ・コンテンツ(TOC)及びグローバル・オフセット・テーブル(GOT)のうちの一方である、請求項21に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/251,798 | 2011-10-03 | ||
US13/251,798 US8615745B2 (en) | 2011-10-03 | 2011-10-03 | Compiling code for an enhanced application binary interface (ABI) with decode time instruction optimization |
PCT/IB2012/054809 WO2013050892A1 (en) | 2011-10-03 | 2012-09-14 | Compiling code for enhanced application binary interface (abi) with decode time instruction optimization |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014531680A true JP2014531680A (ja) | 2014-11-27 |
JP6044968B2 JP6044968B2 (ja) | 2016-12-14 |
Family
ID=47993792
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014532517A Active JP6044968B2 (ja) | 2011-10-03 | 2012-09-14 | デコード時間命令最適化を用いた、強化されたアプリケーション・バイナリ・インターフェース(abi)のためのコードのコンパイル |
Country Status (6)
Country | Link |
---|---|
US (3) | US8615745B2 (ja) |
JP (1) | JP6044968B2 (ja) |
CN (1) | CN103858100B (ja) |
DE (1) | DE112012003714T5 (ja) |
GB (2) | GB2509438B (ja) |
WO (1) | WO2013050892A1 (ja) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130073374A (ko) * | 2011-12-23 | 2013-07-03 | 삼성전자주식회사 | 응용 프로그램의 분산형 컴파일 시스템, 장치 및 방법 |
US9348596B2 (en) | 2013-06-28 | 2016-05-24 | International Business Machines Corporation | Forming instruction groups based on decode time instruction optimization |
US9372695B2 (en) | 2013-06-28 | 2016-06-21 | Globalfoundries Inc. | Optimization of instruction groups across group boundaries |
CA2831711A1 (en) * | 2013-10-31 | 2015-04-30 | Ibm Canada Limited - Ibm Canada Limitee | Performing safe conditional-load and conditional-store operations |
US9110675B1 (en) | 2014-03-12 | 2015-08-18 | International Business Machines Corporation | Usage of TOC register as application register |
CN105224346B (zh) * | 2014-05-28 | 2019-11-29 | 腾讯科技(深圳)有限公司 | 目标函数定位方法及装置 |
US9800673B2 (en) * | 2014-08-20 | 2017-10-24 | At&T Intellectual Property I, L.P. | Service compiler component and service controller for open systems interconnection layer 4 through layer 7 services in a cloud computing system |
US9742690B2 (en) | 2014-08-20 | 2017-08-22 | At&T Intellectual Property I, L.P. | Load adaptation architecture framework for orchestrating and managing services in a cloud computing system |
US9749242B2 (en) | 2014-08-20 | 2017-08-29 | At&T Intellectual Property I, L.P. | Network platform as a service layer for open systems interconnection communication model layer 4 through layer 7 services |
US9473567B2 (en) | 2014-08-20 | 2016-10-18 | At&T Intellectual Property I, L.P. | Virtual zones for open systems interconnection layer 4 through layer 7 services in a cloud computing system |
US10291689B2 (en) | 2014-08-20 | 2019-05-14 | At&T Intellectual Property I, L.P. | Service centric virtual network function architecture for development and deployment of open systems interconnection communication model layer 4 through layer 7 services in a cloud computing system |
US9274769B1 (en) * | 2014-09-05 | 2016-03-01 | International Business Machines Corporation | Table of contents pointer value save and restore placeholder positioning |
US9940242B2 (en) | 2014-11-17 | 2018-04-10 | International Business Machines Corporation | Techniques for identifying instructions for decode-time instruction optimization grouping in view of cache boundaries |
US9733940B2 (en) | 2014-11-17 | 2017-08-15 | International Business Machines Corporation | Techniques for instruction group formation for decode-time instruction optimization based on feedback |
US9244663B1 (en) * | 2014-12-22 | 2016-01-26 | International Business Machines Corporation | Managing table of contents pointer value saves |
CA2974394C (en) | 2015-01-20 | 2023-09-05 | Ultrata, Llc | Distributed index for fault tolerant object memory fabric |
EP4012548B1 (en) | 2015-01-20 | 2024-05-01 | Ultrata LLC | Object memory data flow instruction execution |
US9886210B2 (en) | 2015-06-09 | 2018-02-06 | Ultrata, Llc | Infinite memory fabric hardware implementation with router |
US9971542B2 (en) * | 2015-06-09 | 2018-05-15 | Ultrata, Llc | Infinite memory fabric streams and APIs |
US10698628B2 (en) * | 2015-06-09 | 2020-06-30 | Ultrata, Llc | Infinite memory fabric hardware implementation with memory |
US9880833B2 (en) | 2015-06-30 | 2018-01-30 | International Business Machines Corporation | Initialization status of a register employed as a pointer |
US10248337B2 (en) | 2015-12-08 | 2019-04-02 | Ultrata, Llc | Object memory interfaces across shared links |
CA3006776A1 (en) | 2015-12-08 | 2017-06-15 | Ultrata, Llc. | Memory fabric operations and coherency using fault tolerant objects |
CA3006773A1 (en) | 2015-12-08 | 2017-06-15 | Ultrata, Llc | Memory fabric software implementation |
US10241676B2 (en) | 2015-12-08 | 2019-03-26 | Ultrata, Llc | Memory fabric software implementation |
US10175966B2 (en) * | 2017-01-09 | 2019-01-08 | International Business Machines Corporation | Linker rewriting to eliminate TOC pointer references |
US11151564B2 (en) * | 2017-01-27 | 2021-10-19 | Shawn Hutchinson | Secure authentication and financial attributes services |
US10459825B2 (en) * | 2017-08-18 | 2019-10-29 | Red Hat, Inc. | Intelligent expansion of system information collection |
US11321236B2 (en) * | 2018-01-08 | 2022-05-03 | Microsoft Technology Licensing, Llc. | Reduced instructions to generate global variable addresses |
US10740074B2 (en) * | 2018-11-30 | 2020-08-11 | Advanced Micro Devices, Inc. | Conditional construct splitting for latency hiding |
CN112148364B (zh) * | 2019-10-18 | 2024-02-06 | 广东财经大学 | 一种嵌入式微内核操作系统分区链接方法及系统 |
CN112148283B (zh) * | 2020-09-14 | 2023-09-22 | 第六镜科技(成都)有限公司 | 一种跨平台的abi兼容c++组件框架的实现方法 |
CN113111012B (zh) * | 2021-04-14 | 2023-07-25 | 景德镇市明泰精工瓷业有限公司 | 一种应用数据定位器生成方法及应用数据定位方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63201834A (ja) * | 1987-02-13 | 1988-08-19 | インターナシーナル・ビジネス・マシーンズ・コーポレーシヨン | オブジエクト・モジユール生成方法 |
JPH0391035A (ja) * | 1989-09-04 | 1991-04-16 | Hitachi Ltd | 命令列スケジューリング処理方法 |
JPH05143332A (ja) * | 1991-05-23 | 1993-06-11 | Internatl Business Mach Corp <Ibm> | 命令スケジユーラを備えたコンピユータ・システム及び入力命令シーケンスを再スケジユールする方法 |
JPH06208462A (ja) * | 1991-02-27 | 1994-07-26 | Sun Microsyst Inc | パイプラインプロセッサ用のコストを基にしてヒューリスティックに命令をスケージューリングする方法および装置 |
US5774722A (en) * | 1995-12-14 | 1998-06-30 | International Business Machines Corporation | Method for efficient external reference resolution in dynamically linked shared code libraries in single address space operating systems |
JPH10275088A (ja) * | 1997-03-31 | 1998-10-13 | Hitachi Ltd | リンク最適化方法 |
US5845118A (en) * | 1995-12-14 | 1998-12-01 | International Business Machines Corporation | Method for generating shared library executable code with lazy global offset table address calculation |
US20040128662A1 (en) * | 2002-12-31 | 2004-07-01 | International Business Machines Corporation | Reducing load instructions via global data reordering |
JP2005228047A (ja) * | 2004-02-13 | 2005-08-25 | Toshiba Corp | 言語処理装置及び言語処理プログラム |
Family Cites Families (82)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4763255A (en) | 1984-10-31 | 1988-08-09 | International Business Machines Corporation | Method for generating short form instructions in an optimizing compiler |
EP0423989A3 (en) | 1989-10-16 | 1992-09-23 | Hewlett-Packard Company | Software compiler and linker with improved line number table |
US5303358A (en) | 1990-01-26 | 1994-04-12 | Apple Computer, Inc. | Prefix instruction for modification of a subsequent instruction |
US5095526A (en) | 1990-01-26 | 1992-03-10 | Apple Computer, Inc. | Microprocessor with improved interrupt response with interrupt data saving dependent upon processor status |
US5539911A (en) | 1991-07-08 | 1996-07-23 | Seiko Epson Corporation | High-performance, superscalar-based computer system with out-of-order instruction execution |
US5469572A (en) * | 1992-12-01 | 1995-11-21 | Taylor; James M. | Post compile optimizer for linkable object code |
US5590352A (en) | 1994-04-26 | 1996-12-31 | Advanced Micro Devices, Inc. | Dependency checking and forwarding of variable width operands |
US5761514A (en) | 1995-08-31 | 1998-06-02 | International Business Machines Corporation | Register allocation method and apparatus for truncating runaway lifetimes of program variables in a computer system |
US5797014A (en) | 1995-12-14 | 1998-08-18 | International Business Machines Corporation | Method for reducing processor cycles used for global offset table address computation in a position independent shared library |
JP3711422B2 (ja) | 1995-12-20 | 2005-11-02 | セイコーエプソン株式会社 | 情報処理回路 |
US6059840A (en) | 1997-03-17 | 2000-05-09 | Motorola, Inc. | Automatic scheduling of instructions to reduce code size |
US6314511B2 (en) | 1997-04-03 | 2001-11-06 | University Of Washington | Mechanism for freeing registers on processors that perform dynamic out-of-order execution of instructions using renaming registers |
US6094719A (en) | 1997-06-25 | 2000-07-25 | Sun Microsystems, Inc. | Reducing data dependent conflicts by converting single precision instructions into microinstructions using renamed phantom registers in a processor having double precision registers |
JP3220055B2 (ja) | 1997-07-17 | 2001-10-22 | 松下電器産業株式会社 | 機械語命令列またはアセンブリ言語命令列を最適化する最適化装置、及び、高級言語で記載されたソースプログラムを機械語またはアセンブリ言語の命令列に変換するコンパイラ装置。 |
EP1071991A4 (en) | 1997-12-11 | 2002-03-13 | Digits Corp | OBJECT CODE ANALYSIS AND IMPROVEMENT SYSTEM AND METHOD |
US7565665B2 (en) | 1998-09-09 | 2009-07-21 | Microsoft Corporation | Efficient linking and loading for late binding and platform retargeting |
JP3837244B2 (ja) | 1998-10-23 | 2006-10-25 | 松下電器産業株式会社 | プログラムリンク装置及び方法 |
US20020073398A1 (en) | 1998-12-14 | 2002-06-13 | Jeffrey L. Tinker | Method and system for modifying executable code to add additional functionality |
US6189088B1 (en) | 1999-02-03 | 2001-02-13 | International Business Machines Corporation | Forwarding stored dara fetched for out-of-order load/read operation to over-taken operation read-accessing same memory location |
US6594824B1 (en) * | 1999-02-17 | 2003-07-15 | Elbrus International Limited | Profile driven code motion and scheduling |
US6408433B1 (en) | 1999-04-23 | 2002-06-18 | Sun Microsystems, Inc. | Method and apparatus for building calling convention prolog and epilog code using a register allocator |
GB2349485B (en) * | 1999-04-23 | 2003-12-10 | Ibm | Application management |
GB9920916D0 (en) | 1999-09-03 | 1999-11-10 | Sgs Thomson Microelectronics | A relocation format for linking |
GB9920911D0 (en) | 1999-09-03 | 1999-11-10 | Sgs Thomson Microelectronics | A relocation format for linking |
GB2358491A (en) | 1999-09-03 | 2001-07-25 | Sgs Thomson Microelectronics | A relocation format for linking |
US7257806B1 (en) | 1999-10-21 | 2007-08-14 | Hewlett-Packard Development Company, L.P. | System and method for efficiently passing information between compiler and post-compile-time software |
US6449710B1 (en) | 1999-10-29 | 2002-09-10 | Stmicroelectronics, Inc. | Stitching parcels |
GB2363479B (en) | 1999-11-01 | 2004-03-17 | Sgs Thomson Microelectronics | A linker using relocation sequences |
US6393579B1 (en) | 1999-12-21 | 2002-05-21 | Intel Corporation | Method and apparatus for saving power and improving performance in a collapsable pipeline using gated clocks |
US6721875B1 (en) | 2000-02-22 | 2004-04-13 | Hewlett-Packard Development Company, L.P. | Method and apparatus for implementing a single-syllable IP-relative branch instruction and a long IP-relative branch instruction in a processor which fetches instructions in bundle form |
US6748519B1 (en) | 2000-06-15 | 2004-06-08 | International Business Machines Corporation | Method and apparatus for utilizing renamed registers based upon a functional or defective operational status of the register |
US6687806B1 (en) | 2000-06-15 | 2004-02-03 | Advanced Micro Devices, Inc. | Apparatus and method for generating 64 bit displacement and immediate values |
US7168069B1 (en) | 2000-07-12 | 2007-01-23 | Stmicroelectronics, Inc. | Dynamic generation of multimedia code for image processing |
CA2321016A1 (en) | 2000-09-27 | 2002-03-27 | Ibm Canada Limited-Ibm Canada Limitee | Interprocedural dead store elimination |
EP1199629A1 (en) | 2000-10-17 | 2002-04-24 | STMicroelectronics S.r.l. | Processor architecture with variable-stage pipeline |
GB0029115D0 (en) | 2000-11-29 | 2001-01-10 | Sgs Thomson Microelectronics | Assembling an object code module |
JP2002182926A (ja) | 2000-12-12 | 2002-06-28 | Hitachi Ltd | コンパイル方法及びコンピュータ読み取り可能な記録媒体 |
US7228403B2 (en) | 2000-12-23 | 2007-06-05 | International Business Machines Corporation | Method for handling 32 bit results for an out-of-order processor with a 64 bit architecture |
US7162621B2 (en) | 2001-02-21 | 2007-01-09 | Mips Technologies, Inc. | Virtual instruction expansion based on template and parameter selector information specifying sign-extension or concentration |
US6950926B1 (en) | 2001-03-02 | 2005-09-27 | Advanced Micro Devices, Inc. | Use of a neutral instruction as a dependency indicator for a set of instructions |
US7299462B2 (en) | 2001-05-07 | 2007-11-20 | Stmicroelectronics Limited | Relocation format for linking |
US20030009750A1 (en) | 2001-07-09 | 2003-01-09 | Robert Hundt | Optimizing an executable computer program having linkage functions |
US20030079210A1 (en) | 2001-10-19 | 2003-04-24 | Peter Markstein | Integrated register allocator in a compiler |
US20030154419A1 (en) | 2002-01-10 | 2003-08-14 | Binyu Zang | Register renaming in binary translation using rollback and recovery |
JP3856737B2 (ja) | 2002-07-19 | 2006-12-13 | 株式会社ルネサステクノロジ | データ処理装置 |
US7131017B2 (en) | 2002-08-16 | 2006-10-31 | Carnegie Mellon University | Programmable pipeline fabric having mechanism to terminate signal propagation |
US6934830B2 (en) | 2002-09-26 | 2005-08-23 | Sun Microsystems, Inc. | Method and apparatus for reducing register file access times in pipelined processors |
US7500126B2 (en) | 2002-12-04 | 2009-03-03 | Nxp B.V. | Arrangement and method for controlling power modes of hardware resources |
US7543284B2 (en) | 2003-04-22 | 2009-06-02 | Transitive Limited | Partial dead code elimination optimizations for program code conversion |
US7769885B1 (en) | 2003-05-23 | 2010-08-03 | Juniper Networks, Inc. | Determining liveness of protocols and interfaces |
US7519951B2 (en) | 2003-09-30 | 2009-04-14 | International Business Machines Corporation | Multi-attribute dynamic link library packaging |
KR100531314B1 (ko) | 2004-03-16 | 2005-11-29 | 엘지전자 주식회사 | 영상표시장치 |
US20050251662A1 (en) | 2004-04-22 | 2005-11-10 | Samra Nicholas G | Secondary register file mechanism for virtual multithreading |
US7395419B1 (en) | 2004-04-23 | 2008-07-01 | Apple Inc. | Macroscalar processor architecture |
US7284092B2 (en) | 2004-06-24 | 2007-10-16 | International Business Machines Corporation | Digital data processing apparatus having multi-level register file |
US20060080682A1 (en) | 2004-10-12 | 2006-04-13 | Picsel Research Ltd. | Run time dynamic linking |
US7412710B2 (en) * | 2004-11-12 | 2008-08-12 | Red Hat, Inc. | System, method, and medium for efficiently obtaining the addresses of thread-local variables |
US20060174089A1 (en) | 2005-02-01 | 2006-08-03 | International Business Machines Corporation | Method and apparatus for embedding wide instruction words in a fixed-length instruction set architecture |
US20060190710A1 (en) | 2005-02-24 | 2006-08-24 | Bohuslav Rychlik | Suppressing update of a branch history register by loop-ending branches |
US7757218B2 (en) | 2005-03-24 | 2010-07-13 | Microsoft Corporation | Method of instrumenting code having restrictive calling conventions |
US8296550B2 (en) | 2005-08-29 | 2012-10-23 | The Invention Science Fund I, Llc | Hierarchical register file with operand capture ports |
US7873952B2 (en) | 2006-03-09 | 2011-01-18 | Oracle America, Inc. | Code transformation to optimize fragments that implement constant loading |
US7380104B2 (en) | 2006-04-25 | 2008-05-27 | International Business Machines Corporation | Method and apparatus for back to back issue of dependent instructions in an out of order issue queue |
JP2007304663A (ja) | 2006-05-08 | 2007-11-22 | Univ Nagoya | プロセッサ及びそのデータ処理方法 |
JP4884297B2 (ja) | 2006-05-26 | 2012-02-29 | パナソニック株式会社 | コンパイラ装置、コンパイル方法およびコンパイラプログラム |
CN101078994A (zh) * | 2006-05-26 | 2007-11-28 | 松下电器产业株式会社 | 编译器装置、编译器方法和编译器程序 |
US7506139B2 (en) | 2006-07-12 | 2009-03-17 | International Business Machines Corporation | Method and apparatus for register renaming using multiple physical register files and avoiding associative search |
US20080148022A1 (en) | 2006-12-13 | 2008-06-19 | Arm Limited | Marking registers as available for register renaming |
US7676653B2 (en) | 2007-05-09 | 2010-03-09 | Xmos Limited | Compact instruction set encoding |
US7818542B2 (en) | 2007-07-10 | 2010-10-19 | Globalfoundries Inc. | Method and apparatus for length decoding variable length instructions |
US7818543B2 (en) | 2007-07-10 | 2010-10-19 | Globalfoundries Inc. | Method and apparatus for length decoding and identifying boundaries of variable length instructions |
US8180964B1 (en) * | 2007-09-28 | 2012-05-15 | The Mathworks, Inc. | Optimization of cache configuration for application design |
US8108614B2 (en) | 2007-12-31 | 2012-01-31 | Eric Sprangle | Mechanism for effectively caching streaming and non-streaming data patterns |
US20090193400A1 (en) | 2008-01-30 | 2009-07-30 | Ivan Baev | Interprocedural register allocation for global variables |
KR101418969B1 (ko) | 2008-02-27 | 2014-08-13 | 삼성전자주식회사 | 프로세서 및 컴파일 방법 |
US20100312991A1 (en) | 2008-05-08 | 2010-12-09 | Mips Technologies, Inc. | Microprocessor with Compact Instruction Set Architecture |
US20100095286A1 (en) | 2008-10-10 | 2010-04-15 | Kaplan David A | Register reduction and liveness analysis techniques for program code |
JP5471082B2 (ja) | 2009-06-30 | 2014-04-16 | 富士通株式会社 | 演算処理装置および演算処理装置の制御方法 |
CN101630269B (zh) | 2009-07-03 | 2012-08-29 | 中国人民解放军国防科学技术大学 | 基于块对目标代码扫描并替换敏感指令的方法 |
US8683180B2 (en) | 2009-10-13 | 2014-03-25 | International Business Machines Corporation | Intermediate register mapper |
US8516465B2 (en) | 2009-12-04 | 2013-08-20 | Oracle America, Inc. | Register prespill phase in a compiler |
CN102109975B (zh) * | 2009-12-24 | 2015-03-11 | 华为技术有限公司 | 确定函数调用关系的方法、装置及系统 |
-
2011
- 2011-10-03 US US13/251,798 patent/US8615745B2/en not_active Expired - Fee Related
-
2012
- 2012-04-30 US US13/459,594 patent/US8615746B2/en not_active Expired - Fee Related
- 2012-09-14 JP JP2014532517A patent/JP6044968B2/ja active Active
- 2012-09-14 GB GB1405930.7A patent/GB2509438B/en active Active
- 2012-09-14 DE DE112012003714.6T patent/DE112012003714T5/de active Pending
- 2012-09-14 CN CN201280048805.2A patent/CN103858100B/zh not_active Expired - Fee Related
- 2012-09-14 GB GB1513325.9A patent/GB2525523A/en not_active Withdrawn
- 2012-09-14 WO PCT/IB2012/054809 patent/WO2013050892A1/en active Application Filing
-
2013
- 2013-08-05 US US13/958,993 patent/US8832669B2/en not_active Expired - Fee Related
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63201834A (ja) * | 1987-02-13 | 1988-08-19 | インターナシーナル・ビジネス・マシーンズ・コーポレーシヨン | オブジエクト・モジユール生成方法 |
JPH0391035A (ja) * | 1989-09-04 | 1991-04-16 | Hitachi Ltd | 命令列スケジューリング処理方法 |
JPH06208462A (ja) * | 1991-02-27 | 1994-07-26 | Sun Microsyst Inc | パイプラインプロセッサ用のコストを基にしてヒューリスティックに命令をスケージューリングする方法および装置 |
JPH05143332A (ja) * | 1991-05-23 | 1993-06-11 | Internatl Business Mach Corp <Ibm> | 命令スケジユーラを備えたコンピユータ・システム及び入力命令シーケンスを再スケジユールする方法 |
US5774722A (en) * | 1995-12-14 | 1998-06-30 | International Business Machines Corporation | Method for efficient external reference resolution in dynamically linked shared code libraries in single address space operating systems |
US5845118A (en) * | 1995-12-14 | 1998-12-01 | International Business Machines Corporation | Method for generating shared library executable code with lazy global offset table address calculation |
JPH10275088A (ja) * | 1997-03-31 | 1998-10-13 | Hitachi Ltd | リンク最適化方法 |
US20040128662A1 (en) * | 2002-12-31 | 2004-07-01 | International Business Machines Corporation | Reducing load instructions via global data reordering |
JP2005228047A (ja) * | 2004-02-13 | 2005-08-25 | Toshiba Corp | 言語処理装置及び言語処理プログラム |
Also Published As
Publication number | Publication date |
---|---|
US8615746B2 (en) | 2013-12-24 |
US8615745B2 (en) | 2013-12-24 |
US20130086369A1 (en) | 2013-04-04 |
GB201513325D0 (en) | 2015-09-09 |
JP6044968B2 (ja) | 2016-12-14 |
US8832669B2 (en) | 2014-09-09 |
GB2509438B (en) | 2015-09-09 |
US20130086563A1 (en) | 2013-04-04 |
GB2509438A (en) | 2014-07-02 |
GB201405930D0 (en) | 2014-05-14 |
WO2013050892A1 (en) | 2013-04-11 |
CN103858100B (zh) | 2017-02-15 |
CN103858100A (zh) | 2014-06-11 |
US20130318510A1 (en) | 2013-11-28 |
GB2525523A (en) | 2015-10-28 |
DE112012003714T5 (de) | 2014-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6044968B2 (ja) | デコード時間命令最適化を用いた、強化されたアプリケーション・バイナリ・インターフェース(abi)のためのコードのコンパイル | |
JP5951022B2 (ja) | デコード時間命令最適化を用いた、強化されたアプリケーション・バイナリ・インターフェース(abi)のためのコードのリンク | |
US10235144B2 (en) | Reconfiguration of address space based on loading short pointer mode application | |
US10318240B2 (en) | Read and set floating point control register instruction | |
US10585790B2 (en) | Short pointer mode applications in long pointer mode environments | |
US10732930B2 (en) | Compiler controls for program language constructs | |
US11036513B2 (en) | Executing short pointer mode applications loaded in a memory address space having one portion addressable by short pointers and a shadow copy of the one portion | |
US10481909B2 (en) | Predicted null updates | |
US20180373532A1 (en) | Fine-grained management of exception enablement of floating point controls | |
US10324715B2 (en) | Compiler controls for program regions | |
US10684852B2 (en) | Employing prefixes to control floating point operations | |
US11321236B2 (en) | Reduced instructions to generate global variable addresses | |
JP7410269B2 (ja) | テスト・ベクタを使用した高水準コンストラクトの最適化の自動検証 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20141224 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20151218 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160126 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160415 Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20160415 |
|
RD12 | Notification of acceptance of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7432 Effective date: 20160415 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20160415 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160921 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20160923 Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160923 |
|
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: 20161020 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20161025 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20161025 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20161108 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6044968 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |