JP5643345B2 - アグレッシブ最適化によって施された変更をロールバック可能なアグレッシブ・コード最適化を実行する装置、方法及びコンピュータ・プログラム - Google Patents
アグレッシブ最適化によって施された変更をロールバック可能なアグレッシブ・コード最適化を実行する装置、方法及びコンピュータ・プログラム Download PDFInfo
- Publication number
- JP5643345B2 JP5643345B2 JP2012556114A JP2012556114A JP5643345B2 JP 5643345 B2 JP5643345 B2 JP 5643345B2 JP 2012556114 A JP2012556114 A JP 2012556114A JP 2012556114 A JP2012556114 A JP 2012556114A JP 5643345 B2 JP5643345 B2 JP 5643345B2
- Authority
- JP
- Japan
- Prior art keywords
- code
- aggressive
- version
- code version
- transaction
- 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.)
- Active
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1489—Generic software techniques for error detection or fault masking through recovery blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1497—Details of time redundant execution on a single processing unit
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Devices For Executing Special Programs (AREA)
- Advance Control (AREA)
- Retry When Errors Occur (AREA)
Description
Claims (17)
- データ処理システムにおいて実行可能コードを実行する方法であり、
コード部分を有する実行可能コードであって、該コード部分についてアグレッシブ・コンパイル・コード・バージョン及びコンサバティブ・コンパイル・コード・バージョンが提供される実行可能コードを受け取るステップと、
前記コード部分の前記アグレッシブ・コンパイル・コード・バージョンを前記データ処理システムのプロセッサにおいて実行するステップと、
前記アグレッシブ・コンパイル・コード・バージョンの実行中に例外条件が発生するかどうかを判定するステップと、
例外条件が発生したという判定に応答して前記コード部分の状態に対する変更をロールバックするステップと、
前記コード部分の前記状態に対する変更がロールバックされたことに応答して、前記コンサバティブ・コンパイル・コード・バージョンを前記データ処理システムの前記プロセッサにおいて実行するステップと、
前記実行可能コード部分の前記アグレッシブ・コンパイル・コード・バージョンを実行することにより例外条件が発生する可能性が高いかどうかに関する予測を、前記アグレッシブ・コンパイル・コードの以前の実行履歴が記憶されたログに基づいて生成するステップと、
前記予測により、前記アグレッシブ・コンパイル・コード・バージョンを実行した場合に例外条件が発生する可能性が高いことが示されたことに応答して、前記コンサバティブ・コンパイル・コード・バージョンを前記データ処理システムの前記プロセッサにおいて実行するステップと、
を含む方法。 - 前記アグレッシブ・コンパイル・コード・バージョンは、前記データ処理システムのトランザクション・モニタによって監視される単一のトランザクションとして実行される、請求項1に記載の方法。
- 前記アグレッシブ・コンパイル・コード・バージョンの実行中に例外条件が発生するかどうかを判定する前記ステップは、前記トランザクション・モニタが、前記アグレッシブ・コンパイル・コード・バージョンを含む前記トランザクションがアボートしたのかそれとも無事コミットしたのかを判定するステップを含み、
例外条件が発生したという判定に応答して前記コード部分の状態に対する変更をロールバックする前記ステップは、前記アグレッシブ・コンパイル・コード・バージョンを含む前記トランザクションをロールバックするステップを含み、前記例外条件は前記トランザクションのアボートを発生させる、
請求項2に記載の方法。 - 前記コード部分の前記状態に対する変更がロールバックされたことに応答して、前記コンサバティブ・コンパイル・コード・バージョンを前記データ処理システムの前記プロセッサにおいて実行する前記ステップは、
前記トランザクション・モニタに関連して、前記アグレッシブ・コンパイル・コード・バージョンと前記コンサバティブ・コンパイル・コード・バージョンとをマッピングするデータ構造を維持するステップと、
前記トランザクションがアボートしたことに応答して、前記トランザクション・モニタが、前記アグレッシブ・コンパイル・コード・バージョンに基づいて、前記データ構造のルックアップ動作を実行して、対応するコンサバティブ・コンパイル・コード・バージョンを指すポインタを取得するステップと、
を含む、請求項2に記載の方法。 - 前記トランザクション・モニタが、前記アグレッシブ・コンパイル・コード・バージョンに対応する、アボートしたトランザクションを、ログ・データ構造のログに記憶するステップと、
前記ログ・データ構造に基づいて、前記アグレッシブ・コンパイル・コード・バージョンを実行することにより前記アグレッシブ・コンパイル・コード・バージョンに関連するトランザクションのアボートが発生する可能性が高いかどうかに関する予測動作を実行するステップと、
前記アグレッシブ・コンパイル・コード・バージョンを実行することにより前記関連するトランザクションのアボートが発生する可能性が高いことが予測されたことに応答して、前記アグレッシブ・コンパイル・コード・バージョンの代わりに前記コンサバティブ・コンパイル・コード・バージョンの実行を開始するステップと、
をさらに含む、請求項2に記載の方法。 - 前記アグレッシブ・コンパイル・コード・バージョンは、前記コード部分の、並列実行されるベクトル化バージョンであり、前記コンサバティブ・コンパイル・コード・バージョンは、前記コード部分の、順次実行されるスカラ・コード・バージョンである、請求項1に記載の方法。
- コンピュータ・プログラムであり、データ処理システムに、
コード部分を有する実行可能コードであって、該コード部分についてアグレッシブ・コンパイル・コード・バージョン及びコンサバティブ・コンパイル・コード・バージョンが提供される実行可能コードを受け取るステップと、
前記コード部分の前記アグレッシブ・コンパイル・コード・バージョンを前記データ処理システムのプロセッサにおいて実行するステップと、
前記アグレッシブ・コンパイル・コード・バージョンの実行中に例外条件が発生するかどうかを判定するステップと、
例外条件が発生したという判定に応答して前記コード部分の状態に対する変更をロールバックするステップと、
前記コード部分の前記状態に対する変更がロールバックされたことに応答して、前記コンサバティブ・コンパイル・コード・バージョンを前記データ処理システムの前記プロセッサにおいて実行するステップと、
前記実行可能コード部分の前記アグレッシブ・コンパイル・コード・バージョンを実行することにより例外条件が発生する可能性が高いかどうかに関する予測を、前記アグレッシブ・コンパイル・コードの以前の実行履歴が記憶されたログに基づいて生成するステップと、
前記予測により、前記アグレッシブ・コンパイル・コード・バージョンを実行した場合に例外条件が発生する可能性が高いことが示されたことに応答して、前記コンサバティブ・コンパイル・コード・バージョンを前記データ処理システムの前記プロセッサにおいて実行するステップと、
を実行させる、コンピュータ・プログラム。 - 前記アグレッシブ・コンパイル・コード・バージョンは、前記データ処理システムのトランザクション・モニタによって監視される単一のトランザクションとして実行される、請求項7に記載のコンピュータ・プログラム。
- 前記アグレッシブ・コンパイル・コード・バージョンの実行中に例外条件が発生するかどうかを判定する前記ステップは、前記トランザクション・モニタが、前記アグレッシブ・コンパイル・コード・バージョンを含む前記トランザクションがアボートしたのかそれとも無事コミットしたのかを判定するステップを含み、
例外条件が発生したという判定に応答して前記コード部分の状態に対する変更をロールバックする前記ステップは、前記アグレッシブ・コンパイル・コード・バージョンを含む前記トランザクションをロールバックするステップを含み、前記例外条件は前記トランザクションのアボートを発生させる、
請求項8に記載のコンピュータ・プログラム。 - 前記コンピュータ・プログラムは、
前記トランザクション・モニタに関連して、前記アグレッシブ・コンパイル・コード・バージョンと前記コンサバティブ・コンパイル・コード・バージョンとをマッピングするデータ構造を維持するステップと、
前記トランザクションがアボートしたことに応答して、前記トランザクション・モニタが、前記アグレッシブ・コンパイル・コード・バージョンに基づいて、前記データ構造のルックアップ動作を実行して、対応するコンサバティブ・コンパイル・コード・バージョンを指すポインタを取得するステップと、
を前記データ処理システムに実行させることにより、前記実行可能コード部分の前記状態に対する変更がロールバックされたことに応答して、前記コンサバティブ・コンパイル・コード・バージョンを前記データ処理システムの前記プロセッサにおいて実行するステップを、前記データ処理システムに実行させる、
請求項8に記載のコンピュータ・プログラム。 - 前記コンピュータ・プログラムはさらに、
前記トランザクション・モニタが、前記アグレッシブ・コンパイル・コード・バージョンに対応する、アボートしたトランザクションを、ログ・データ構造のログに記憶するステップと、
前記ログ・データ構造に基づいて、前記アグレッシブ・コンパイル・コード・バージョンを実行することにより前記アグレッシブ・コンパイル・コード・バージョンに関連するトランザクションのアボートが発生する可能性が高いかどうかに関する予測動作を実行するステップと、
前記アグレッシブ・コンパイル・コード・バージョンを実行することにより前記関連するトランザクションのアボートが発生する可能性が高いことが予測されたことに応答して、前記アグレッシブ・コンパイル・コード・バージョンの代わりに前記コンサバティブ・コンパイル・コード・バージョンの実行を開始するステップと、
を前記データ処理システムに実行させる、請求項8に記載のコンピュータ・プログラム。 - メモリ・ストアの予測型アトミック・コミットを実行する装置であり、
プロセッサと、
前記プロセッサに接続されたメモリと、
を備え、前記プロセッサは、
前記メモリにおいて、コード部分を有する実行可能コードであって、該コード部分についてアグレッシブ・コンパイル・コード・バージョン及びコンサバティブ・コンパイル・コード・バージョンが提供される実行可能コードを受け取り、
前記コード部分の前記アグレッシブ・コンパイル・コード・バージョンを実行し、
前記アグレッシブ・コンパイル・コード・バージョンの実行中に例外条件が発生するかどうかを判定し、
例外条件が発生したという判定に応答して前記コード部分の状態に対する変更をロールバックし、
前記コード部分の前記状態に対する変更がロールバックされたことに応答して、前記コンサバティブ・コンパイル・コード・バージョンを実行し、
前記実行可能コード部分の前記アグレッシブ・コンパイル・コード・バージョンを実行することにより例外条件が発生する可能性が高いかどうかに関する予測を、前記アグレッシブ・コンパイル・コードの以前の実行履歴が記憶されたログに基づいて生成し、
前記予測により、前記アグレッシブ・コンパイル・コード・バージョンを実行した場合に例外条件が発生する可能性が高いことが示されたことに応答して、前記コンサバティブ・コンパイル・コード・バージョンを実行する、
ように構成される、装置。 - 前記アグレッシブ・コンパイル・コード・バージョンは、トランザクション・モニタによって監視される単一のトランザクションとして実行される、請求項12に記載の装置。
- 前記プロセッサは、
前記トランザクション・モニタが、前記アグレッシブ・コンパイル・コード・バージョンを含む前記トランザクションがアボートしたのかそれとも無事コミットしたのかを判定することにより、前記アグレッシブ・コンパイル・コード・バージョンの実行中に例外条件が発生するかどうかを判定し、
例外条件が発生したという判定に応答して前記コード部分の状態に対する変更をロールバックすることは、前記アグレッシブ・コンパイル・コード・バージョンを含む前記トランザクションをロールバックすることを含み、前記例外条件は前記トランザクションのアボートを発生させる、
請求項13に記載の装置。 - 前記プロセッサは、
前記トランザクション・モニタに関連して、前記アグレッシブ・コンパイル・コード・バージョンと前記コンサバティブ・コンパイル・コード・バージョンとをマッピングするデータ構造を維持し、
前記トランザクションがアボートしたことに応答して、前記トランザクション・モニタが、前記アグレッシブ・コンパイル・コード・バージョンに基づいて、前記データ構造のルックアップ動作を実行して、対応するコンサバティブ・コンパイル・コード・バージョンを指すポインタを取得することにより、前記実行可能コード部分の前記状態に対する変更がロールバックされたことに応答して、前記コンサバティブ・コンパイル・コード・バージョンを実行する、
請求項13に記載の装置。 - 前記プロセッサはさらに、
前記トランザクション・モニタが、前記アグレッシブ・コンパイル・コード・バージョンに対応する、アボートしたトランザクションを、ログ・データ構造のログに記憶し、
前記ログ・データ構造に基づいて、前記アグレッシブ・コンパイル・コード・バージョンを実行することにより前記アグレッシブ・コンパイル・コード・バージョンに関連するトランザクションのアボートが発生する可能性が高いかどうかに関する予測動作を実行し、
前記アグレッシブ・コンパイル・コード・バージョンを実行することにより前記関連するトランザクションのアボートが発生する可能性が高いことが予測されたことに応答して、前記アグレッシブ・コンパイル・コード・バージョンの代わりに前記コンサバティブ・コンパイル・コード・バージョンの実行を開始する
ように構成される、請求項13に記載の装置。 - 前記アグレッシブ・コンパイル・コード・バージョンは、前記コード部分の、並列実行されるベクトル化バージョンであり、前記コンサバティブ・コンパイル・コード・バージョンは、前記コード部分の、順次実行されるスカラ・コード・バージョンである、請求項12に記載の装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/714,877 | 2010-03-01 | ||
US12/714,877 US8495607B2 (en) | 2010-03-01 | 2010-03-01 | Performing aggressive code optimization with an ability to rollback changes made by the aggressive optimizations |
PCT/US2011/026161 WO2011109230A1 (en) | 2010-03-01 | 2011-02-25 | Performing aggressive code optimization with an ability to rollback changes made by the aggressive optimizations |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013521572A JP2013521572A (ja) | 2013-06-10 |
JP5643345B2 true JP5643345B2 (ja) | 2014-12-17 |
Family
ID=44505952
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012556114A Active JP5643345B2 (ja) | 2010-03-01 | 2011-02-25 | アグレッシブ最適化によって施された変更をロールバック可能なアグレッシブ・コード最適化を実行する装置、方法及びコンピュータ・プログラム |
Country Status (6)
Country | Link |
---|---|
US (1) | US8495607B2 (ja) |
JP (1) | JP5643345B2 (ja) |
CN (1) | CN102782644A (ja) |
DE (1) | DE112011100258T5 (ja) |
GB (1) | GB2491768B (ja) |
WO (1) | WO2011109230A1 (ja) |
Families Citing this family (57)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8739138B2 (en) * | 2010-03-05 | 2014-05-27 | International Business Machines Corporation | Conflict resolution in applications |
US8639945B2 (en) * | 2010-05-25 | 2014-01-28 | Via Technologies, Inc. | Branch and switch key instruction in a microprocessor that fetches and decrypts encrypted instructions |
US9967092B2 (en) | 2010-05-25 | 2018-05-08 | Via Technologies, Inc. | Key expansion logic using decryption key primitives |
US9798898B2 (en) | 2010-05-25 | 2017-10-24 | Via Technologies, Inc. | Microprocessor with secure execution mode and store key instructions |
US9911008B2 (en) | 2010-05-25 | 2018-03-06 | Via Technologies, Inc. | Microprocessor with on-the-fly switching of decryption keys |
US9892283B2 (en) | 2010-05-25 | 2018-02-13 | Via Technologies, Inc. | Decryption of encrypted instructions using keys selected on basis of instruction fetch address |
US20140040858A1 (en) * | 2011-04-20 | 2014-02-06 | Freescale Semiconductor, Inc. | Method and apparatus for generating resource efficient computer program code |
US10466989B2 (en) | 2011-09-02 | 2019-11-05 | Microsoft Technology Licensing, Llc. | Fast presentation of markup content having script code |
WO2013089767A1 (en) | 2011-12-16 | 2013-06-20 | Intel Corporation | Method and system using exceptions for code specialization in a computer architecture that supports transactions |
US9489184B2 (en) * | 2011-12-30 | 2016-11-08 | Oracle International Corporation | Adaptive selection of programming language versions for compilation of software programs |
JP5840014B2 (ja) * | 2012-02-01 | 2016-01-06 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | コンパイル方法、プログラムおよび情報処理装置 |
US9182956B2 (en) * | 2012-07-08 | 2015-11-10 | International Business Machines Corporation | Flattening conditional statements |
US20140189330A1 (en) * | 2012-12-27 | 2014-07-03 | Ayal Zaks | Optional branches |
EP2757468A1 (en) * | 2013-01-22 | 2014-07-23 | Siemens Aktiengesellschaft | Apparatus and method for managing a software development and maintenance system |
WO2014142949A1 (en) * | 2013-03-15 | 2014-09-18 | Intel Corporation | Identification and management of unsafe optimizations |
CN103207786B (zh) * | 2013-04-28 | 2016-03-23 | 中国人民解放军信息工程大学 | 渐进式智能回溯向量化代码调优方法 |
US10061609B2 (en) | 2013-06-26 | 2018-08-28 | Intel Corporation | Method and system using exceptions for code specialization in a computer architecture that supports transactions |
US9524195B2 (en) | 2014-02-27 | 2016-12-20 | International Business Machines Corporation | Adaptive process for data sharing with selection of lock elision and locking |
US9158573B2 (en) * | 2013-12-12 | 2015-10-13 | International Business Machines Corporation | Dynamic predictor for coalescing memory transactions |
US9424071B2 (en) | 2014-01-24 | 2016-08-23 | International Business Machines Corporation | Transaction digest generation during nested transactional execution |
US9317379B2 (en) | 2014-01-24 | 2016-04-19 | International Business Machines Corporation | Using transactional execution for reliability and recovery of transient failures |
US9304935B2 (en) | 2014-01-24 | 2016-04-05 | International Business Machines Corporation | Enhancing reliability of transaction execution by using transaction digests |
US9323568B2 (en) | 2014-01-24 | 2016-04-26 | International Business Machines Corporation | Indicating a low priority transaction |
US9465746B2 (en) | 2014-01-24 | 2016-10-11 | International Business Machines Corporation | Diagnostics for transactional execution errors in reliable transactions |
US9424072B2 (en) | 2014-02-27 | 2016-08-23 | International Business Machines Corporation | Alerting hardware transactions that are about to run out of space |
US9430273B2 (en) | 2014-02-27 | 2016-08-30 | International Business Machines Corporation | Suppressing aborting a transaction beyond a threshold execution duration based on the predicted duration |
US9336097B2 (en) | 2014-02-27 | 2016-05-10 | International Business Machines Corporation | Salvaging hardware transactions |
US9645879B2 (en) | 2014-02-27 | 2017-05-09 | International Business Machines Corporation | Salvaging hardware transactions with instructions |
US9329946B2 (en) | 2014-02-27 | 2016-05-03 | International Business Machines Corporation | Salvaging hardware transactions |
US9262206B2 (en) | 2014-02-27 | 2016-02-16 | International Business Machines Corporation | Using the transaction-begin instruction to manage transactional aborts in transactional memory computing environments |
US20150242216A1 (en) | 2014-02-27 | 2015-08-27 | International Business Machines Corporation | Committing hardware transactions that are about to run out of resource |
US9442775B2 (en) | 2014-02-27 | 2016-09-13 | International Business Machines Corporation | Salvaging hardware transactions with instructions to transfer transaction execution control |
US9575890B2 (en) | 2014-02-27 | 2017-02-21 | International Business Machines Corporation | Supporting atomic accumulation with an addressable accumulator |
US9465673B2 (en) | 2014-02-27 | 2016-10-11 | International Business Machines Corporation | Deferral instruction for managing transactional aborts in transactional memory computing environments to complete transaction by deferring disruptive events handling |
US9361041B2 (en) | 2014-02-27 | 2016-06-07 | International Business Machines Corporation | Hint instruction for managing transactional aborts in transactional memory computing environments |
US9311178B2 (en) | 2014-02-27 | 2016-04-12 | International Business Machines Corporation | Salvaging hardware transactions with instructions |
US9442853B2 (en) | 2014-02-27 | 2016-09-13 | International Business Machines Corporation | Salvaging lock elision transactions with instructions to change execution type |
US9471371B2 (en) | 2014-02-27 | 2016-10-18 | International Business Machines Corporation | Dynamic prediction of concurrent hardware transactions resource requirements and allocation |
US9411729B2 (en) | 2014-02-27 | 2016-08-09 | International Business Machines Corporation | Salvaging lock elision transactions |
US9524187B2 (en) | 2014-03-02 | 2016-12-20 | International Business Machines Corporation | Executing instruction with threshold indicating nearing of completion of transaction |
US10210005B2 (en) * | 2014-03-11 | 2019-02-19 | Iex Group, Inc. | Systems and methods for data synchronization and failover management |
CA2942359C (en) * | 2014-03-11 | 2020-10-06 | Iex Group, Inc. | Systems and methods for data synchronization and failover management |
US11080139B2 (en) * | 2014-03-11 | 2021-08-03 | Iex Group, Inc. | Systems and methods for data synchronization and failover management |
US11809917B2 (en) | 2014-07-14 | 2023-11-07 | Oracle International Corporation | Systems and methods for safely subscribing to locks using hardware extensions |
US10521277B2 (en) * | 2014-07-14 | 2019-12-31 | Oracle International Corporation | Systems and methods for safely subscribing to locks using hardware extensions |
JP6331865B2 (ja) * | 2014-08-13 | 2018-05-30 | 富士通株式会社 | プログラム最適化方法,プログラム最適化プログラム及びプログラム最適化装置 |
CN104317850B (zh) * | 2014-10-14 | 2017-11-14 | 北京国双科技有限公司 | 数据处理方法和装置 |
US9921859B2 (en) * | 2014-12-12 | 2018-03-20 | The Regents Of The University Of Michigan | Runtime compiler environment with dynamic co-located code execution |
US10223268B2 (en) | 2016-02-23 | 2019-03-05 | International Business Systems Corporation | Transactional memory system including cache versioning architecture to implement nested transactions |
US20170344350A1 (en) * | 2016-05-27 | 2017-11-30 | Oracle International Corporation | Triage self-repair for statically compiled executables |
US10216496B2 (en) | 2016-09-27 | 2019-02-26 | International Business Machines Corporation | Dynamic alias checking with transactional memory |
CN110121703B (zh) * | 2016-12-28 | 2023-08-01 | 英特尔公司 | 用于向量通信的系统和方法 |
US10481876B2 (en) | 2017-01-11 | 2019-11-19 | Microsoft Technology Licensing, Llc | Methods and systems for application rendering |
CN108430084B (zh) * | 2018-05-09 | 2021-01-26 | 清华大学 | 一种基站切换方法及系统 |
CN110502317B (zh) * | 2018-05-16 | 2024-03-01 | 北京京东尚科信息技术有限公司 | 一种事务管理的方法和装置 |
WO2021107765A1 (en) * | 2019-11-29 | 2021-06-03 | Mimos Berhad | System and method for executing heterogeneous compilation |
CN111459535A (zh) * | 2020-03-19 | 2020-07-28 | 深圳木成林科技有限公司 | 一种分支合并的方法、装置、设备及计算机存储介质 |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63155264A (ja) * | 1986-12-18 | 1988-06-28 | Fujitsu Ltd | ベクトル計算機用言語チユ−ニング処理方式 |
JPH01177165A (ja) * | 1988-01-05 | 1989-07-13 | Nec Corp | 配列の定義/引用関係検査方式 |
JPH01251274A (ja) * | 1988-03-31 | 1989-10-06 | Nec Corp | コンパイラ装置 |
US5412784A (en) * | 1991-07-15 | 1995-05-02 | International Business Machines Corporation | Apparatus for parallelizing serial instruction sequences and creating entry points into parallelized instruction sequences at places other than beginning of particular parallelized instruction sequence |
WO1994007204A1 (en) * | 1992-09-21 | 1994-03-31 | Uniloc (Singapore) Private Limited | System for software registration |
US5901308A (en) * | 1996-03-18 | 1999-05-04 | Digital Equipment Corporation | Software mechanism for reducing exceptions generated by speculatively scheduled instructions |
US5930510A (en) * | 1996-11-19 | 1999-07-27 | Sun Microsystems, Inc. | Method and apparatus for an improved code optimizer for pipelined computers |
US6260191B1 (en) * | 1997-04-07 | 2001-07-10 | Hewlett-Packard Company | User controlled relaxation of optimization constraints related to volatile memory references |
US6275938B1 (en) | 1997-08-28 | 2001-08-14 | Microsoft Corporation | Security enhancement for untrusted executable code |
US6505300B2 (en) * | 1998-06-12 | 2003-01-07 | Microsoft Corporation | Method and system for secure running of untrusted content |
US6775779B1 (en) * | 1999-04-06 | 2004-08-10 | Microsoft Corporation | Hierarchical trusted code for content protection in computers |
US6880152B1 (en) * | 1999-10-13 | 2005-04-12 | Transmeta Corporation | Method of determining a mode of code generation |
US6748589B1 (en) * | 1999-10-20 | 2004-06-08 | Transmeta Corporation | Method for increasing the speed of speculative execution |
US6658656B1 (en) * | 2000-10-31 | 2003-12-02 | Hewlett-Packard Development Company, L.P. | Method and apparatus for creating alternative versions of code segments and dynamically substituting execution of the alternative code versions |
US7487330B2 (en) | 2001-05-02 | 2009-02-03 | International Business Machines Corporations | Method and apparatus for transferring control in a computer system with dynamic compilation capability |
CA2365375A1 (en) * | 2001-12-18 | 2003-06-18 | Ibm Canada Limited-Ibm Canada Limitee | Optimizing source code for iterative execution |
US7114164B2 (en) * | 2003-06-04 | 2006-09-26 | Microsoft Corporation | Systems and methods for injecting an exception into a target thread |
US20050091494A1 (en) * | 2003-10-23 | 2005-04-28 | Hyser Chris D. | Method and system for providing an external trusted agent for one or more computer systems |
US7380276B2 (en) * | 2004-05-20 | 2008-05-27 | Intel Corporation | Processor extensions and software verification to support type-safe language environments running with untrusted code |
US8381198B2 (en) * | 2005-08-15 | 2013-02-19 | Sony Ericsson Mobile Communications Ab | Systems, methods and computer program products for safety checking executable application programs in a module |
US8799882B2 (en) * | 2005-12-07 | 2014-08-05 | Microsoft Corporation | Compiler support for optimizing decomposed software transactional memory operations |
US7590806B2 (en) * | 2005-12-07 | 2009-09-15 | Microsoft Corporation | Filtering of transactional memory operations using associative tables |
US7543282B2 (en) * | 2006-03-24 | 2009-06-02 | Sun Microsystems, Inc. | Method and apparatus for selectively executing different executable code versions which are optimized in different ways |
US7865885B2 (en) * | 2006-09-27 | 2011-01-04 | Intel Corporation | Using transactional memory for precise exception handling in aggressive dynamic binary optimizations |
KR20090009612A (ko) | 2007-07-20 | 2009-01-23 | 엘지디스플레이 주식회사 | 스퍼터링을 통한 무기절연막 형성방법 |
US8370823B2 (en) * | 2007-08-27 | 2013-02-05 | International Business Machines Corporation | Device, system, and method of computer program optimization |
US7899997B2 (en) * | 2008-03-12 | 2011-03-01 | International Business Machines Corporation | Systems and methods for implementing key-based transactional memory conflict detection |
US8359587B2 (en) * | 2008-05-01 | 2013-01-22 | Oracle America, Inc. | Runtime profitability control for speculative automatic parallelization |
US8255884B2 (en) * | 2008-06-06 | 2012-08-28 | International Business Machines Corporation | Optimized scalar promotion with load and splat SIMD instructions |
JP2010050150A (ja) * | 2008-08-19 | 2010-03-04 | Panasonic Corp | 半導体装置及び半導体モジュール |
-
2010
- 2010-03-01 US US12/714,877 patent/US8495607B2/en not_active Expired - Fee Related
-
2011
- 2011-02-25 JP JP2012556114A patent/JP5643345B2/ja active Active
- 2011-02-25 CN CN2011800116712A patent/CN102782644A/zh active Pending
- 2011-02-25 GB GB1217266.4A patent/GB2491768B/en active Active
- 2011-02-25 DE DE112011100258T patent/DE112011100258T5/de not_active Ceased
- 2011-02-25 WO PCT/US2011/026161 patent/WO2011109230A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
GB2491768B (en) | 2014-08-20 |
GB2491768A (en) | 2012-12-12 |
DE112011100258T5 (de) | 2013-04-25 |
JP2013521572A (ja) | 2013-06-10 |
US20110214016A1 (en) | 2011-09-01 |
US8495607B2 (en) | 2013-07-23 |
GB201217266D0 (en) | 2012-11-14 |
CN102782644A (zh) | 2012-11-14 |
WO2011109230A1 (en) | 2011-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5643345B2 (ja) | アグレッシブ最適化によって施された変更をロールバック可能なアグレッシブ・コード最適化を実行する装置、方法及びコンピュータ・プログラム | |
TWI681333B (zh) | 可靠度提升系統、方法和電腦可讀取媒體 | |
US8990786B2 (en) | Program optimizing apparatus, program optimizing method, and program optimizing article of manufacture | |
US8544022B2 (en) | Transactional memory preemption mechanism | |
US8028133B2 (en) | Globally incremented variable or clock based methods and apparatus to implement parallel transactions | |
JP6218433B2 (ja) | トランザクションの完了を容易にするためのプロセッサ内での処理の制限 | |
EP2176763B1 (en) | Memory transaction grouping | |
US8402255B2 (en) | Memory-hazard detection and avoidance instructions for vector processing | |
JP5906325B2 (ja) | トランザクションをサポートするコンピューターアーキテクチャにおけるコード特殊化のための例外を用いるプログラム及びコンピューティングデバイス | |
KR101574007B1 (ko) | 트랜잭션 메모리를 구현하기 위한 시스템들 및 방법들 | |
US20080244544A1 (en) | Using hardware checkpoints to support software based speculation | |
US20130013899A1 (en) | Using Hardware Transaction Primitives for Implementing Non-Transactional Escape Actions Inside Transactions | |
US9208081B1 (en) | Concurrent object management | |
JP2015084251A (ja) | ソフトウェア・アプリケーションの性能向上 | |
JP2017509083A (ja) | バイナリトランザクションベースのプロセッサによるロックエリジョン | |
JP2021531555A (ja) | トランザクショナル比較及び破棄命令 | |
JP2014085839A (ja) | 並列実行機構及びその動作方法 | |
US9569185B2 (en) | Changing de-optimization guard representation during the compilation process | |
US6823445B2 (en) | Limiting concurrent modification and execution of instructions to a particular type to avoid unexpected results | |
JP4420055B2 (ja) | マルチスレッドプロセッサ及びそれに用いるスレッド間同期操作方法 | |
US9081607B2 (en) | Conditional transaction abort and precise abort handling | |
Na et al. | Javascript parallelizing compiler for exploiting parallelism from data-parallel html5 applications | |
US9229725B2 (en) | Safe conditional-load and conditional-store operations | |
Yuan et al. | Making lock-free data structures verifiable with artificial transactions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20131111 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140613 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140624 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140922 |
|
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: 20141014 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20141030 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5643345 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |